首页> 中国专利> 使用可动态选择的冗余共享链路物理路径在基于开放核心协议的互连网络中改善数据吞吐量的方法

使用可动态选择的冗余共享链路物理路径在基于开放核心协议的互连网络中改善数据吞吐量的方法

摘要

本发明描述了采用点对点链路使用动态可选择路由在互连织状结构中促进数据吞吐量改善的方法和装置。发起方和目标操作上耦合到第一织状结构和第二织状结构。第一织状结构和第二织状结构包括多个点对点内部链路,且经由多个织状结构到织状结构的链路通信上相互耦合,这些链路包括从第一织状结构到第二织状结构的第一链路和第二链路。在操作期间,检测第一织状结构到织状结构的链路上的业务量以判断它是否繁忙,且取决于该判断,经由第一织状结构到织状结构的链路或第二织状结构到织状结构的链路有选择地路由从耦合到第一织状结构的发起方去往耦合到第二织状结构的目标的数据传输。

著录项

  • 公开/公告号CN103748837A

    专利类型发明专利

  • 公开/公告日2014-04-23

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN201180072996.1

  • 发明设计人 K·S·洛;P·M·尤尔特;

    申请日2011-08-22

  • 分类号H04L12/28;H04L29/06;G06F13/14;

  • 代理机构上海专利商标事务所有限公司;

  • 代理人何焜

  • 地址 美国加利福尼亚州

  • 入库时间 2024-02-19 23:54:05

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-08-15

    授权

    授权

  • 2014-05-21

    实质审查的生效 IPC(主分类):H04L12/28 申请日:20110822

    实质审查的生效

  • 2014-04-23

    公开

    公开

说明书

发明领域

本发明的领域通常涉及计算机系统接口,且具体地但不排他地涉及用于增 强片上系统(SoC)及类似物上的互连的数据吞吐量性能的技术。

背景信息

计算机系统通常采用一个或多个互连来促进在系统组件之间(例如在处理 器和存储器之间)的通信。互连和/或扩展接口也可以用来支持内建设备和外加 设备,例如IO(输入/输出)设备和扩展卡等等。在引入个人计算机之后的多 年,主要的互连形式是并行总线。并行总线结构用于内部数据传输和扩展总线 两者,例如ISA(工业标准体系结构)、MCA(微通道体系结构)、EISA(扩 展工业标准体系结构)和VESA局部总线。在20世纪90年代的早期,英特尔 公司引入PCI(外围部件互连)计算机总线。通过不仅增加总线速度而且也引 入了使用共享地址和数据线的自动配置和基于事务的数据传输,PCI改善了早 期总线技术。

随着时间推移,计算机处理器时钟频率以比并行总线时钟频率更快的速度 增加。其结果是,计算机工作量受到互连瓶颈而非处理器速度限制。尽管并行 总线支持每一周期传输大量数据(例如,32位,或者在PCI-X下甚至是64位), 但它们的时钟频率受到时序偏差考虑的限制,引起对最大总线速度的实际限 制。为了克服这一问题,开发了高速串行互连。早期的串行互连的示例包括串 行ATA、USB(通用串行总线)、火线和RapidIO。

另一种广泛使用的标准串行互连是也称为PCIe的PCI Express(PCI高速), 2004年在PCIe1.0标准下引入。PCIe被设计为代替老旧的PCI和PCI-X标准, 但提供旧版本支持。PCIe采用点对点串行链路而非共享并行总线体系结构。使 用一个或多个通路(lane)(其中每一通路包括双向串行链路),每一链路支 持在两个PCIe端口之间的点对点通信信道。使用支持同时在多个设备之间的 通信的交叉开关交换体系结构,物理上路由各通路。作为其固有优点的结果, PCIe已经代替了PCI,成为现今的个人计算机中最流行的互连。PCIe是由 PCI-SIG(特别兴趣小组)管理的行业标准。因而,PCIe板可从多个ASIC和 芯片销售商购得。

近来,英特尔引入快速通道互连(QuickPath)(QPI)。QPI 最初被实现为代替使用高性能处理器(例如和处理器) 的平台上的前端总线的点对点处理器互连。QPI是可扩展的,且尤其有利于具 有采用共享存储器资源的多个处理器的系统。QPI事务采用使用多层协议体系 结构的基于分组的传输。在其特征中,支持一致事务(例如,存储器一致性)。

近来还引入的是开放核心协议,这是一个开放授权的以核心为中心的协 议,旨在满足现代系统级集成挑战。OCP定义用于片上子系统通信的总线无关 的、可配置的和可扩展的接口。OCP规范的当前版本是OCP3.0规范(更新先 前版本OCP2.2),两者都可以在ocpip.org下载。

其他近来的进展包括多核心处理器、多功能SoC和更高密度的核心和管 芯。与此同时,在减少功耗尤其是移动平台的功耗上投入了努力。为了利用由 这些进展所提供的可扩展性,需要解决各种各样的和有时存在的冲突约束。例 如,当在SoC中实现交叉开关互连(又名织状结构(fabric))时,延迟时间和功 耗根据连接到织状结构的IP块的数量而增加。与此同时,由这样的交叉开关互 连促进的点对点虚拟链路可以提供大量IP块间通信吞吐量。因此,实现无需相 应的功耗增加就支持增强吞吐量的可扩展体系结构是有益的。

附图简述

将更容易明白前述各方面和本发明的多种附带优点,这是由于当结合附图 阅读时,通过参考下列详细描述,将更好地理解前述各方面和本发明的多种附 带优点,在附图中,贯穿各视图,除非以另外方式指定,否则相同的标号指代 相同的部分:

图la示出SoC体系结构,其包括一组分层织状结构和相应的织状结构到 织状结构的链路;

图lb示出图la的SoC体系结构的实现,进一步示出多个共享的织状结构 到织状结构的链路;

图lc示出图la的SoC体系结构的实现,进一步示出支持在织状结构之间 的数据的动态路由的多个冗余的织状结构到织状结构的链路;

图2是阐释开放核心协议所使用的基本对象的框图;

图3a示出在一对OCP织状结构内的各种单向链路和在OCP织状结构之间 的一对织状结构到织状结构的链路,并且还叙述OCP织状结构中的每一个的地 址映射;

图3b示出图3a的织状结构配置,还包括在OCP织状结构之间的冗余的织 状结构到织状结构的链路;

图3c示出图3b的配置的变种,还包括用于将数据从发起方动态地路由到 目标的选择器逻辑,且进一步示出织状结构地址映射的相应修改;

图4是阐释根据一种实施例的图3c的选择器的实现的细节的图;以及

图5是示例性SoC的框图,其中在南复合体中实现桥层次结构。

详细描述

在此描述用于使用动态可选择的冗余共享链路促进互连织状结构中的数 据吞吐量改善的方法和装置的实施例。在下列描述中,阐释众多特定的细节(例 如采用OCP互连的实现),以提供对本发明的各实施例的透彻理解。然而,相 关领域中的技术人员将认识到,无需一个或多个特定细节,或借助于其他方法、 组件、材料等等,就可以实践本发明。在其他实例中,不详细示出或描述公知 的结构、材料或操作,以避免模糊本发明的各方面。

贯穿本说明书,对“一种实施例”或“一个实施例”的引用意味着本发明 的至少一种实施例中包含结合该实施例描述的具体的特征、结构或特性。因而, 贯穿本说明书,短语“在一种实施例中”或“在一个实施例中”在各种场合的 出现并不必定都是指相同的实施例。此外,在一个或多个各实施例中,具体的 特征、结构或特性可以以任何合适的方式组合。

为清晰起见,各图中的个体组件在此也可以由图中它们的标签而非具体的 标号指代。例如,各种图中节点或框的标记提供标识节点/框和/或其功能的信 息;这样的信息不能单独用分离的标号来表达。另外,指代具体类型的组件(与 具体的组件相对)的标号可以被示出为后面跟随着“(typ)”的标号(含义为 “典型”)。应理解,这些组件的配置将是可能存在但出于简单和清晰起见在 附图中没有示出的类似组件的典型。

如以上所描述的,计算机体系结构正从分立组件体系结构向基于SoC的体 系结构发展。模块性也是SoC体系结构的关键方面。通常,系统设计者将整合 各种功能块,包括在本行业中通常称为知识产权(IP)核、IP块或简单地称为 IP的功能块。对于本文的目的,这些功能块通常被称为IP块或简单地称为“IP”; 应理解,术语IP块或IP也覆盖IP核和通常称为IP的任何其他组件或块,正 如SoC开发和制造行业中的那些技术人员所理解的一样。这些IP块通常提供 一种或多种专用功能,且常常包括从各种销售商得到授权或内部开发的现有电 路设计块。为了集成这些IP块,在SoC中设计各种接口。

图la示出示例性SoC体系结构100,其采用以分层方式配置的多个互连织 状结构102。术语分层意味着包括一组互连的子网络的互连网络,这些互连的 子网络通常被称为互连织状结构或简单地称为织状结构。为方便起见,将通常 用它们的标签指代织状结构(例如,织状结构1、织状结构2等等),而不是 每一织状结构有一个独立的标号。因此,SoC体系结构包括织状结构1-5,每 一个都作为独立的子网操作,这些独立子网互连到其他织状结构以便促进跨越 多个子网的通信,如下面所解释的。各种IP块(OCP规范也称之为IP核)104 被示出为连接到SoC体系结构100中的相应织状结构;这些IP块标记为A-V, 且为方便起见将用它们的字母标签来指代。各种IP块表示SoC设计中通常采 用的组件或功能单元(即,功能块),包括但不限于处理器核心、存储器高速 缓存组件和代理、存储器控制器、I/O控制器和接口、外围设备和外围接口、 视频和音频组件和接口、平台管理组件等等。

互连织状结构,例如图la中用织状结构1-5阐释的互连织状结构使用相应 的连线和协议支持在各IP块之间的通信。通常,给定的互连织状结构的结构可 以包括全交叉开关“网格”,它是一种包括多个点对点链路、共享总线型体系 结构或环型拓扑的松散填充的织状结构。在一种实施例中,SoC体系结构100 被一般化为使得可以以这些拓扑中的任何一种来配置织状结构1-5中的每一 个。而且,具体的互连结构和协议也被一般化在SoC体系结构100中,使得各 种织状结构可以采用相同的或不同的互连结构和协议。例如,可以期望将支持 高速缓存一致性协议(例如,QPI)的互连用于在处理器核心和存储器高速缓 存相关IP块之间的通信,但也可以将其他结构和诸如OCP之类的协议用于该 体系结构中的其他织状结构。可选地,单个协议可以被用于整个体系结构,或 者,图la中所叙述的织状结构可以描绘SoC的一部分。例如,在一种实施例中, SoC体系结构100对应于SoC体系结构中的南复合体,例如图5中所示出和下 面所描述的南复合体。

在一种实施例中,织状结构1-5中的每一个包括OCP织状结构。在开放核 心协议下,通信由发起方(I)发起,并在织状结构上定向到目标(T),如下 面详细描述的。因此,图1中在各自的IP块A-V中描绘了发起方块106(I) 和目标块108(T)。通常,发起方块I或目标块T描绘接口电路用于促进在IP 块和它所耦合到的织状结构之间的通信,且因此,发起方和目标块也可以是指 在此叙述的IP块中的发起方接口和目标接口。

SoC体系结构100中还叙述了多个织状结构到织状结构的链路110,织状 结构到织状结构的链路110用于耦合进行通信的多对织状结构。这些被标记为 FF n-m,其中n表示所耦合的织状结构中的一个,且m表示另一个。举例来 说,织状结构到织状结构的链路FF1-2促进在织状结构1和织状结构2之间的 通信。尽管被称为织状结构到织状结构的链路,但在所连接的织状结构采用不 同的结构和协议(例如,QPI到OCP的桥接)的实例中,或者在采用相同的协 议的一对所连接的织状结构的时钟速度不相同的实例中,这些链路也可以充当 织状结构到织状结构的桥接。

在图la中,各种IP块104被叙述为包括发起方块I和/或目标块T两者, 表示用于各种IP块的OCP织状结构的接口能力可以不同。例如,诸如音频输 入(话筒)和输出(扬声器)等的外围设备可以仅要求与其他IP块进行单向通 信,然而应注意,相应的音频接口组件可以支持双向通信或单向通信。以类似 的方式,织状结构到织状结构的链路110中的每一个被描绘为双箭头以便指示 支持跨越链路的双向通信。然而,在此对双向通信的引用不要求双向物理链路 (即是说,跨越其线路支持双向通信的物理链路)。相反,如下面进一步详细 解释的,可以通过使用以相反方向操作的单向链路促进在IP块或织状结构之间 的双向通信。替代地,双向数据传输可以发生在单个单向链路上(即,相应的 一组线路被用来支持双向数据传输),例如当发起方对目标执行读和写操作时。

在此公开的各实施例的各方面可以有利地被部署在诸如智能电话和平板 等的移动平台中。对于这些类型的平台,功耗很受重视,且因而功率的任何减 少都是有益的。根据在此的教导,可以通过跨越冗余共享物理链路使用分层互 连织状结构体系结构和通过使用动态可选择路由来减少功耗。

与共享总线或完全填充交叉开关互连相比,分层网络通常具有以下方面的 优点:[1]功率效率,这是由于选定结构在不需要时可以被电源门控,以及[2] 芯片面积,这是由于织状结构的复杂性(被实现为交叉点)随着所连接的单元 的数量的平方而增长。通常,使用任何活动的晶体管操作或引起在SoC电路上 的电力负载的任何操作都引起消耗功率。而且,用于诸如互连等的电路的操作 频率(例如,时钟周期或频率)越高,功耗就越高。鉴于这一点,可以通过使 用较少的物理互连结构(即,较少的“线路”和相应的接口电路,例如缓冲器 和交换逻辑)和/或工作在较低的频率来降低功率。然而,在这两种情况中,在 功耗和吞吐量性能之间存在折衷。

解决折衷的一种方式是对SoC体系结构的不要求较高速率(较高频率通常 与处理器和存储器操作或视频操作相关联)的一些部分使用较低的频率时钟频 率。例如,通常被分类为低速的音频组件以及外围设备和I/O组件可以被配置 为连接到工作在较低的时钟频率的相应互连织状结构块。由于SoC体系结构 100的分层性质支持实现分离织状结构,可以工作在较低的频率的各个织状结 构可以被置于“待机”状态或“关闭”状态。例如,如果音频IP块被耦合到独 立的织状结构,则在不要求音频功能时可以关闭该织状结构或将其置于待机状 态,从而延长电池寿命。

本公开内容的另一发明方面是使用冗余物理链路,这些冗余物理链路可以 动态地被配置为在某些操作条件下支持较高的传输速率,但与此同时减少在要 求较低的传输率的操作条件下的功耗。在下列实施例中,使用开放核心协议兼 容的织状结构来阐释这些特征的实现方面。然而,应注意,也可以部署使用其 他协议的织状结构实现,以便获得数据吞吐量和功率减少方面的类似提高。

开放核心协议定义在诸如IP核和总线接口模块(总线封装器)等的两个 通信实体之间的点对点接口,在此也称为代理。一个实体充当OCP实例的主设 备,且另一个充当从设备。仅主设备可以给出命令,且它是控制实体。从设备 通过从接受来自主设备的数据或向主设备提交数据,来响应于向其给出的命 令。对于以对等方式通信的两个实体,需要由两个OCP实例连接它们——其中 第一实体是主设备的OCP实例,以及其中第一实体是从设备的OCP实例。

图2示出包含已封装总线和三个IP核实体的简单系统,三个IP核实体中, 一个是系统目标,一个是系统发起方,且一个实体既是发起方又是目标。应理 解,通常“主设备”和“发起方”是同义词,且因而,在此可以可互换地使用 这些术语。同样地,“从设备”和“目标”是同义词,且可以可互换地使用。

IP核的特性确定了该核是需要OCP的主设备、从设备还是OCP的双方; 封装器接口模块必须充当用于每一连接的实体的OCP的互补方。跨越这一系统 的传输如下发生。系统发起方(作为OCP主设备)向其已连接的从设备(总线 封装器接口模块)给出命令、控制且可能给出数据。接口模块跨越片上总线系 统进行请求。OCP不指定嵌入式总线的功能性。相反,接口设计者将OCP请 求转换成嵌入式总线传输。接收总线封装器接口模块(作为OCP主设备)将嵌 入式总线操作转换成合法的OCP命令。系统目标(OCP从设备)接收命令并 采取所请求的动作。

基于已连接的实体的要求配置OCP的每一实例(通过选择信号或具体信 号的位宽)且独立于其他实例。举例来说,系统发起方可以在它们的OCP实例 中要求比系统目标更多的地址位数;嵌入式总线可以使用额外的地址位数来选 择由系统发起方寻址哪一总线目标。

OCP是灵活的。存在现有的IP核相互如何通信的多种有用模型。一些模 型采用流水线化来改善带宽和延迟时间特性。其他模型使用多周期访问模型, 其中在若干时钟周期内将信号保持为静态以便简化时序分析并减少实现面积。 通过使用允许主设备和从设备两者都控制何时允许信号改变的同步握手信号, 对这种广泛行为的支持是可能的。

下面的表1列出基本的OCP信号。通常,在开放核心协议规范2.2(或3.0) 中提供涉及OCP的各种方面的细节。除了基本OCP之外,还存在可以按由OCP 规范定义的实现的各种可选信号。

表1

Clk

输入用于OCP时钟的时钟信号。OCP时钟的上升沿被定义为采样已断言 EnableClk的Clk的上升沿。Clk的下降沿和不采样所已断言(asserted)EnableClk 的任何Clk上升沿不构成OCP时钟的上升沿。

EnableClk

EnableClk指示Clk的哪些上升沿是OCP时钟的上升沿,即是说,Clk的 哪些上升沿应采样并改变接口状态。使用enableclk参数来配置这一信号。 EnableClk由第三实体驱动,且充当主设备和从设备两者的输入。

当enableclk被置为0(默认值)时,该信号不存在,且OCP如同EnableClk 被恒定断言的那样动作。在这种情况中,Clk的所有上升沿都是OCP时钟的上 升沿。

MAddr

传输地址,MAddr指定当前的传输所针对的依赖于从设备的资源地址。为 了将这一字段配置到OCP中,使用addr参数。为了配置这一字段的宽度,使 用addr_wdth参数。MAddr是必须与OCP字长(data_wdth)一致的字节地址。 data_wdth定义基于数据总线字节宽度的最小addr_wdth值,且被定义为:

min_addr_wdth=max(l,f1oor(log2(data_wdth))-2)

如果OCP字尺寸大于单个字节,则在OCP字对齐的地址处定址该集合体, 且最低地址位硬连接为0。如果OCP字长不是2的幂,则该地址与具有等于2 的下一较大幂的字长的OCP接口的情况下的该地址相同。

MCmd

传输命令。这一信号指示主设备正在请求的OCP传输的类型。每一非空 闲命令要么是读类型的请求,要么是写类型的请求,这取决于数据流的方向。

MData

写数据。这一字段把写数据从主设备运载到从设备。使用mdata参数来该 字段配置成OCP,且使用data_wdth参数来配置其宽度。其宽度不限于8的倍 数。

MDataValid

写数据有效。当设置为1时,这一比特指示MData字段上的数据有效。使 用datahandshake参数来将这一字段配置到OCP中。

MRespAccept

主设备响应接受。主设备以MRespAccept信号上的1值指示,它接受来自 从设备的当前响应。使用respaccept参数来在OCP中启用这一字段。

SCmdAccept

从设备接受传输。SCmdAccept信号上的1值指示,从设备接受主设备的 传输请求。为了将这一字段配置到OCP中,使用cmdaccept参数。

SData

这一字段将所请求的读数据从从设备运载到主设备。使用sdata参数来将 该字段配置到OCP中,且使用data_wdth参数来配置其宽度。其宽度不限于8 的倍数。

SDataAccept

从设备接受写数据。从设备通过SDataAccept上的1值指示它接受来自主 设备的流水线化写数据。仅在使用了datahandshake时这一信号才是有意义的。 使用dataaccept参数来把这一字段配置到OCP中。

SResp

来自从设备的对来自主设备的传输请求的响应字段。使用resp参数来把该 字段配置到OCP中。

如以上可见,给定的OCP链路可以支持双向数据业务量(例如,从主设 备到从设备写入,以及由主设备从从设备读取)。然而,在此为清晰起见,给 定链路的方向是从其发起方(即,在OCP下的主设备)到其目标(即,在OCP 下的从设备),且被称为单向链路。

图lb示出在OCP织状结构之间使用共享OCP物理链路的示例。这些链路 中的每一个包括带有根据适用的OCP协议信令实现的数据传输的一组OCP线 路。每一织状结构到织状结构的链路被标记为FF m-s,其中,m对应于作为主 设备操作的织状结构,且s对应于作为从设备操作的织状结构。例如,在织状 结构1和2之间的一对链路被标记为FF1-2和FF2-1。

图lb也描述由被连接到织状结构1的IP块IP-B和IP-D发起的两个数据 传输,且这两个数据传输分别针对被连接到织状结构2的IP块IP-J和被连接 到织状结构4的IP块IP-O。如图可见,这些数据传输两者均采用由织状结构 到织状结构的链路FF1-2界定的相同的物理数据路径,因而被称为“共享链路”。 尽管促进被耦合到各种织状结构的IP块之间的通信是有利的,但它引起业务量 拥堵,要求仲裁共享链路引起带宽瓶颈,从而减少整体吞吐量。

根据在此的教导,实现一个或多个冗余的织状结构到织状结构的链路以便 减少业务量拥堵并增强整体吞吐量。这样的冗余的织状结构到织状结构的链路 的示例性实现的细节在图lc、3b和3c中示出。例如,在图lc的SoC体系结构 l00C中,一组冗余的织状结构到织状结构的OCP链路(每个方向一个)已经 被添加到图lb的体系结构100b。如先前一样,每一织状结构到织状结构的链 路被标记为FF m-s,且增加了“R”以便指示链路是冗余的。应注意,在图lc 中包括了在织状结构之间增加一对单向链路仅仅是示例性的,这是由于不是必 然要求在任何特定一对织状结构之间添加冗余的织状结构到织状结构的链路, 并且在给定方向添加的链路的数量不必匹配在相反方向添加的链路的数量(如 果有的话)。此外,该一般性概念可以扩展到在给定的一对织状结构之间添加 进一步的织状结构到织状结构的链路(如果期望如此)。

图3a和3b描绘在织状结构1和2内部的各种OCP链路以及在织状结构1 和2之间的织状结构到织状结构的链路200和202。为简单和清晰起见,在图 3a-c中仅示出来自图la-c中所示出的那些的已选择的发起方和目标。图3a-c中 的发起方被标记为Ix-y,其中x标识织状结构且y标识该织状结构上的特定发 起方。类似地,图3a-c中的目标被标记为Tx-y。而且,为了避免混乱,图3a-c 不示出对应于这些发起方和目标的IP块;然而,应理解,在实际的实现中,这 样的IP块将被耦合到合适的织状结构。

图3a和3b两者均描绘共同的发起方、目标和相应的OCP点对点链路。图 3b还叙述了在织状结构1的目标代理(TA)306和织状结构2的发起方代理(IA) 308之间增加冗余的织状结构到织状结构的OCP链路304。通过在织状结构1 中实现链路目标代理(被标记为TA的块)逻辑的第二实例且在织状结构2中 实现链路发起方代理(被标记为IA的块)逻辑的第二实例,并根据要实现的 具体OCP链路宽度,用(物理)线路连接这些代理,实现冗余链路。因此,如 果织状结构到织状结构的链路302和304两者的配置相同,则原始链路和冗余 链路的OCP总线的性质相同。还所示出的是在发起方11-1、11-2和11-3及目 标代理306中的每一个之间以及在发起方代理308和目标T2-4和T2-5之间的 附加OCP链路。正如所阐释的,增加冗余的织状结构到织状结构的OCP链路 304向原始共享织状结构到织状结构的OCP链路302提供了并行数据通道。

也对两种织状结构的地址映射做出修改。进行修改是为了允许在使用原始 共享链路的那些织状结构和使用冗余链路的那些织状结构之间合理划分数据 路径。在图3b中,所示出的示例划分是去往目标T2-1、T2-2和T2-3的通路继 续使用原始共享链路,而去往目标T2-4和T2-5的通路使用冗余共享链路。(注 意,借助于这种划分,图3a中所示出的两个示例通路现在将使用不同的共享链 路且不相互施加延时。)

图3a-c中的每一个的下部示出织状结构1和2中的目标的目标地址映射。 在OCP下,在发起方和目标之间路由点对点单向链路,且因而对每一织状结构 预定义目标的目的地地址范围。给每一目标指派固定范围的地址,且由于给定 目标可以由多个发起方访问,一些目标的地址范围可以较大和/或占据多个片 段。对于对应于织状结构到织状结构的OCP共享链路的目标地址来说,尤其如 此。例如,注意,织状结构1中的目标Tl-4的地址范围包括四个分段范围,包 括具有比目标Tl-1、Tl-2和Tl-3的可比拟片段更长的长度的三个片段。

图3a中所示出的编址方案对应于使用常规共享织状结构到织状结构的 OCP链路,而图3b中的地址方案对应于增加所添加的织状结构到织状结构的 链路204。为了适应新的目标Tl-5,图3a中Tl-4的最高两个地址范围已经被重 新分配为图3b中的Tl-5,但剩余的地址范围映射保持相同。注意,与此同时, 这在跨越原始共享织状结构到织状结构的链路202和添加的冗余织状结构到织 状结构的链路204的传输之间的通路中产生了划分。例如,现在在织状结构到 织状结构的链路204上路由起源于织状结构1中的发起方并对应于织状结构2 中的目标T2-4和T2-5的传输。

图3c示出可以被实现为进一步改善数据吞吐量的可选增强。在原始链路 忙于服务先前的命令而冗余链路空闲的情况下,该增强寻求机会性地重新路由 通路(该通路原本通常会使用原始共享链路而不是使用冗余链路)(从而避免 了与清除先前命令相关联的等待时间)。该增强的细节如下所示:选择使用原 始链路(例如,织状结构到织状结构的链路302)的目标。在这种情况中是目 标T2-3。检查被指派给目标的地址映射区域。注意该区域的起始地址。在这种 情况中该地址是T2_3_StartAddr。注意该区域的大小,且从这推导出地址位的 有效数字是N。(N意味着该区域的大小少于或等于2N字节。)搜索该地址映 射以便得到合适的别名区域。别名区域的大小必须等于T2-3区域的大小,且处 于(先前)未使用的空间中(地址映射中的灰色区域)。在图2c中,这样的区 域是具有起始地址T2_3_AliasStartAddr的T2-3-alias。然后,更新两个织状结 构的地址映射,以使得如果别名区域中的地址被给出(由织状结构1发起方给 出),则通过冗余链路(织状结构到织状结构的链路304)将该通路路由到目 标T2-3(使用用虚线标记的动态路径)。最终,(对于每一织状结构-1发起方) 添加标记为选择器310的(完全地组合的)逻辑块。如果合适的话,选择器的 作用是将(起初源自发起方的)T2-3地址的别名版本复用到织状结构-1中。

通常,别名寻址方案(和关联的动态路由)的使用对发起方和目标两者来 说都是透明的。因此,由IP块的发起方接口用来在发起方和目标之间传输数据 的目标地址保持未经改变。而且,重新路由不限于从原始链路到路由到冗余链 路。相反,重新路由也可以适用于默认将使用冗余链路但可以替代地动态地切 换到原始链路的命令。

图4示出根据一种实施例的选择器310的示例性实现细节。通常,经由逻 辑框400实现由选择器310执行的大多数逻辑,逻辑框400示出被用来判断是 使用别名地址还是原始地址的逻辑。图3中所示出的示例性实现假设织状结构 具有32位地址范围,且对于大多数输入通常采用标准OCP信号,如上面所介 绍的。然而,应注意,Tl_4_active和Tl_5_active不是OCP标准化信号而是通 常在典型织状结构实现中可得到的信号。它们指示(在织状结构1中)的各自 的目标代理何时忙于服务先前的请求(即仍然等待先前的命令完全完成)。在 活动信号不可用但OCP信号SThreadBusy(和/或SDataThreadBusy)可用的情 况中,可以改为使用这种繁忙信号。替代地,如果OCP信号SCmdAccept可用 且如果该信号的静止/空闲状态为高,则可以使用OCP信号SCmdAccept(反转)。 通常可以使用标准嵌入式逻辑设计技术来实现逻辑框400中所示出的逻辑,例 如使用ASIC或FPGA逻辑设计工具、编程逻辑工具等等。

如以上所描述的,在此讨论的织状结构体系结构可以表示SoC中所使用的 织状结构中的全部或部分。图5中叙述稍后的示例,其示出包括北复合体502 和南复合体100d的SoC体系结构500。北复合体可以通常包括经由一致性织状 结构耦合到高速缓存和存储器组件的处理器核心。因此,北复合体502被叙述 为包括含有多个处理器核心506的中央处理单元(CPU)505,这些核心中的每 一个耦合到一致性织状结构508,例如QPI织状结构。还示出存储器块510耦 合到一致性织状结构508——这一存储器框旨在一般地描绘可以存在于该体系 结构中的各种存储器相关组件,例如高速缓存、缓存代理、存储器控制器等等。 通常,SoC体系结构将包括一个或多个级别的片上高速缓存,且可具有芯片上 的某种大容量存储级别的存储器或具有到片外存储器的一个或多个接口;存储 器框510旨在表示所有这些配置。

北复合体也包括另一织状结构,例如INTEL片上可扩展织状结构(IOSF) 或操作上经由织状结构到织状结构的桥514耦合到一致性织状结构508的OCP 织状结构512。多个IP块516通信上耦合到织状结构512。除了图5中所叙述 的组件之外,北复合体502还可以包括本领域中的技术人员将认识到的其它组 件和织状结构。

南复合体100d通常阐释以上所描述的SoC体系结构100和100c。相比于 Soc体系结构100c,南复合体100d仅包括对在织状结构2和织状结构3之间以 及在织状结构4和织状结构5之间的单个单向链路。如以上所描述的,这仅仅 阐释可以根据在此教导实现的分层织状结构中的各种链路配置。

体系结构500中还叙述的是IOSF/OCP到OCP的桥518。这通常阐释可以 在北复合体的织状结构512和南复合体的织状结构1之间实现的桥接。在这种 配置中,该桥接将包括OCP织状结构(且织状结构512包括IOSF或OCP织 状结构)。在各织状结构协议不相同的情况中,将实现织状结构协议桥。如果 织状结构512和织状结构1两者都是OCP织状结构,那么,可以使用OCP织 状结构到织状结构的桥,或可以使用OCP织状结构到织状结构的链路,这取决 于适用的设计参数。例如,如果织状结构512的时钟频率显著不同于织状结构 1的时钟频率,则该桥将支持跨时钟域功能,但仍然在到该桥的两种接口上实 现OCP信号。

通常可以在包括使用公知的设计和制造技术的半导体芯片的集成电路中 实现以上所描述的本公开内容的实施例。在一种实施例中,可以实现来自Sonics 公司的织状结构生成工具以便促进设计实现。而且,尽管被叙述为是在SoC上 实现,但可以在其他类型的组件上实现使用带有可选动态路由的冗余的织状结 构到织状结构的链路,这些组件包括I/O芯片、外围芯片、控制器和其他类型 的集成电路。

另外,不仅可以在半导体芯片内而且也可以在机器可读介质内实现本描述 的各实施例。例如,以上所描述的设计可以被存储在与用于设计半导体设备的 设计工具相关联的机器可读介质上和/或被嵌入在该机器可读介质内。各示例包 括按VHSIC硬件描述语言(VHDL)语言、Verilog语言或SPICE语言格式化 的连线表(netlist)。一些连线表的示例包括:行为级连线表、寄存器传输级(RTL) 连线表、门级连线表和晶体管级连线表。机器可读介质也包括具有诸如GDS-II 文件等的布局信息的介质。此外,连线表文件或用于半导体芯片设计的其他机 器可读介质可以用于仿真环境中,以便执行以上所描述的教导的方法。

本发明的所阐释的实施例的以上描述,包括摘要中所描述的内容,不旨在 是详尽的或将本发明限制为所公开的确切形式。尽管出于说明性目的在此描述 了本发明的特定的实施例和示例,但相关领域中的技术人员将认识到,在本发 明的范围内的各种等效修改是可能的。

根据上述详细描述,可以对本发明进行这些修改。在下面的权利要求书中 使用的术语不应当被解释为将本发明限制为在本说明书中公开的具体实施例 和附图。相反,本发明的范围将完全由下列权利要求书确定,下列权利要求书 应根据权利要求解释的既定原则来解释。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号