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

文档序号:7978264阅读:260来源:国知局
使用可动态选择的冗余共享链路物理路径在基于开放核心协议的互连网络中改善数据吞 ...的制作方法
【专利摘要】本发明描述了采用点对点链路使用动态可选择路由在互连织状结构中促进数据吞吐量改善的方法和装置。发起方和目标操作上耦合到第一织状结构和第二织状结构。第一织状结构和第二织状结构包括多个点对点内部链路,且经由多个织状结构到织状结构的链路通信上相互耦合,这些链路包括从第一织状结构到第二织状结构的第一链路和第二链路。在操作期间,检测第一织状结构到织状结构的链路上的业务量以判断它是否繁忙,且取决于该判断,经由第一织状结构到织状结构的链路或第二织状结构到织状结构的链路有选择地路由从耦合到第一织状结构的发起方去往耦合到第二织状结构的目标的数据传输。
【专利说明】使用可动态选择的冗余共享链路物理路径在基于开放核心协议的互连网络中改善数据吞吐量的方法
发明领域
[0001]本发明的领域通常涉及计算机系统接口,且具体地但不排他地涉及用于增强片上系统(SoC)及类似物上的互连的数据吞吐量性能的技术。
[0002]背景信息
[0003]计算机系统通常采用一个或多个互连来促进在系统组件之间(例如在处理器和存储器之间)的通信。互连和/或扩展接口也可以用来支持内建设备和外加设备,例如10(输入/输出)设备和扩展卡等等。在引入个人计算机之后的多年,主要的互连形式是并行总线。并行总线结构用于内部数据传输和扩展总线两者,例如ISA (工业标准体系结构)、MCA(微通道体系结构)、EISA (扩展工业标准体系结构)和VESA局部总线。在20世纪90年代的早期,英特尔公司引入PCI (外围部件互连)计算机总线。通过不仅增加总线速度而且也引入了使用共享地址和数据线的自动配置和基于事务的数据传输,PCI改善了早期总线技术。
[0004]随着时间推移,计算机处理器时钟频率以比并行总线时钟频率更快的速度增加。其结果是,计算机工作量受到互连瓶颈而非处理器速度限制。尽管并行总线支持每一周期传输大量数据(例如,32位,或者在PC1-X下甚至是64位),但它们的时钟频率受到时序偏差考虑的限制,引起对最大总线速度的实际限制。为了克服这一问题,开发了高速串行互连。早期的串行互连的示例包括串行ATA、USB (通用串行总线)、火线和RapidIO。
[0005]另一种广泛使用的标准串行互连是也称为PCIe的PCI Express (PCI高速),2004年在PCIel.0标准下引入。PCIe被设计为代替老旧的PCI和PC1-X标准,但提供旧版本支持。PCIe采用点对点串行链路而非共享并行总线体系结构。使用一个或多个通路(lane)(其中每一通路包括双向串行 链路),每一链路支持在两个PCIe端口之间的点对点通信信道。使用支持同时在多个设备之间的通信的交叉开关交换体系结构,物理上路由各通路。作为其固有优点的结果,PCIe已经代替了 PCI,成为现今的个人计算机中最流行的互连。PCIe是由PC1-SIG (特别兴趣小组)管理的行业标准。因而,PCIe板可从多个ASIC和芯片销售商购得。
[0006]近来,英特尔引入快速通道互连(QuickPath Interconnect?) (QPI)。QPI最初被实现为代替使用高性能处理器(例如Intel? Xeon^Hl Itanium?处理器)的平台上的前端总线的点对点处理器互连。QPI是可扩展的,且尤其有利于具有采用共享存储器资源的多个处理器的系统。QPI事务采用使用多层协议体系结构的基于分组的传输。在其特征中,支持一致事务(例如,存储器一致性)。
[0007]近来还引A的是开放核心协议,这是一个开放授权的以核心为中心的协议,旨在满足现代系统级集成挑战。OCP定义用于片上子系统通信的总线无关的、可配置的和可扩展的接口。OCP规范的当前版本是0CP3.0规范(更新先前版本0CP2.2),两者都可以在ocpip.0rg下载。
[0008]其他近来的进展包括多核心处理器、多功能SoC和更高密度的核心和管芯。与此同时,在减少功耗尤其是移动平台的功耗上投入了努力。为了利用由这些进展所提供的可扩展性,需要解决各种各样的和有时存在的冲突约束。例如,当在SoC中实现交叉开关互连(又名织状结构(fabric))时,延迟时间和功耗根据连接到织状结构的IP块的数量而增加。与此同时,由这样的交叉开关互连促进的点对点虚拟链路可以提供大量IP块间通信吞吐量。因此,实现无需相应的功耗增加就支持增强吞吐量的可扩展体系结构是有益的。
[0009]附图简述
[0010]将更容易明白前述各方面和本发明的多种附带优点,这是由于当结合附图阅读时,通过参考下列详细描述,将更好地理解前述各方面和本发明的多种附带优点,在附图中,贯穿各视图,除非以另外方式指定,否则相同的标号指代相同的部分:
[0011]图1a示出SoC体系结构,其包括一组分层织状结构和相应的织状结构到织状结构的链路;
[0012]图1b示出图1a的SoC体系结构的实现,进一步示出多个共享的织状结构到织状结构的链路;
[0013]图1c示出图1a的SoC体系结构的实现,进一步示出支持在织状结构之间的数据的动态路由的多个冗余的织状结构到织状结构的链路;
[0014]图2是阐释开放核心协议所使用的基本对象的框图;
[0015]图3a示出在一对OCP织状结构内的各种单向链路和在OCP织状结构之间的一对织状结构到织状结构的链路,并且还叙述OCP织状结构中的每一个的地址映射;
[0016]图3b示出图3a的织状结构配置,还包括在OCP织状结构之间的冗余的织状结构到织状结构的链路;
[0017]图3c示出图3b的配置的变种,还包括用于将数据从发起方动态地路由到目标的选择器逻辑,且进一步示出织状结构地址映射的相应修改;
[0018]图4是阐释根据一种实施例的图3c的选择器的实现的细节的图;以及
[0019]图5是示例性SoC的框图,其中在南复合体中实现桥层次结构。
[0020]详细描述
[0021]在此描述用于使用动态可选择的冗余共享链路促进互连织状结构中的数据吞吐量改善的方法和装置的实施例。在下列描述中,阐释众多特定的细节(例如采用OCP互连的实现),以提供对本发明的各实施例的透彻理解。然而,相关领域中的技术人员将认识到,无需一个或多个特定细节,或借助于其他方法、组件、材料等等,就可以实践本发明。在其他实例中,不详细示出或描述公知的结构、材料或操作,以避免模糊本发明的各方面。
[0022]贯穿本说明书,对“一种实施例”或“一个实施例”的引用意味着本发明的至少一种实施例中包含结合该实施例描述的具体的特征、结构或特性。因而,贯穿本说明书,短语“在一种实施例中”或“在一个实施例中”在各种场合的出现并不必定都是指相同的实施例。此外,在一个或多个各实施例中,具体的特征、结构或特性可以以任何合适的方式组合。
[0023]为清晰起见,各图中的个体组件在此也可以由图中它们的标签而非具体的标号指代。例如,各种图中节点或框的标记提供标识节点/框和/或其功能的信息;这样的信息不能单独用分离的标号来表达。另外,指代具体类型的组件(与具体的组件相对)的标号可以被示出为后面跟随着“(typ)”的标号(含义为“典型”)。应理解,这些组件的配置将是可能存在但出于简单和清晰起见在附图中没有示出的类似组件的典型。[0024]如以上所描述的,计算机体系结构正从分立组件体系结构向基于SoC的体系结构发展。模块性也是SoC体系结构的关键方面。通常,系统设计者将整合各种功能块,包括在本行业中通常称为知识产权(IP)核、IP块或简单地称为IP的功能块。对于本文的目的,这些功能块通常被称为IP块或简单地称为“IP” ;应理解,术语IP块或IP也覆盖IP核和通常称为IP的任何其他组件或块,正如SoC开发和制造行业中的那些技术人员所理解的一样。这些IP块通常提供一种或多种专用功能,且常常包括从各种销售商得到授权或内部开发的现有电路设计块。为了集成这些IP块,在SoC中设计各种接口。
[0025]图1a示出示例性SoC体系结构100,其采用以分层方式配置的多个互连织状结构102。术语分层意味着包括一组互连的子网络的互连网络,这些互连的子网络通常被称为互连织状结构或简单地称为织状结构。为方便起见,将通常用它们的标签指代织状结构(例如,织状结构1、织状结构2等等),而不是每一织状结构有一个独立的标号。因此,SoC体系结构包括织状结构1-5,每一个都作为独立的子网操作,这些独立子网互连到其他织状结构以便促进跨越多个子网的通信,如下面所解释的。各种IP块(OCP规范也称之为IP核)104被示出为连接到SoC体系结构100中的相应织状结构;这些IP块标记为A-V,且为方便起见将用它们的字母标签来指代。各种IP块表示SoC设计中通常采用的组件或功能单元(即,功能块),包括但不限于处理器核心、存储器高速缓存组件和代理、存储器控制器、I/O控制器和接口、外围设备和外围接口、视频和首频组件和接口、平台管理组件等等。
[0026]互连织状结构,例如图1a中用织状结构1-5阐释的互连织状结构使用相应的连线和协议支持在各IP块之间的通信。通常,给定的互连织状结构的结构可以包括全交叉开关“网格”,它是一种包括多个点对点链路、共享总线型体系结构或环型拓扑的松散填充的织状结构。在一种实施例中,SoC体系结构100被一般化为使得可以以这些拓扑中的任何一种来配置织状结构1-5中的每一个。而且,具体的互连结构和协议也被一般化在SoC体系结构100中,使得各种织状结构可以采用相同的或不同的互连结构和协议。例如,可以期望将支持高速缓存一致性协议(例如,QPI)的互连用于在处理器核心和存储器高速缓存相关IP块之间的通信,但也可以将其他结构和诸如OCP之类的协议用于该体系结构中的其他织状结构。可选地,单个协议可以被用于整个体系结构,或者,图1a中所叙述的织状结构可以描绘SoC的一部分。例如,在一种实施例中,SoC体系结构100对应于SoC体系结构中的南复合体,例如图5中所示出和下面所描述的南复合体。
[0027]在一种实施例中,织状结构1-5中的每一个包括OCP织状结构。在开放核心协议下,通信由发起方(I)发起,并在织状结构上定向到目标(T),如下面详细描述的。因此,图1中在各自的IP块A-V中描绘了发起方块106 (I)和目标块108 (T)0通常,发起方块I或目标块T描绘接口电路用于促进在IP块和它所耦合到的织状结构之间的通信,且因此,发起方和目标块也可以是指在此叙述的IP块中的发起方接口和目标接口。
[0028]SoC体系结构100中还叙述了多个织状结构到织状结构的链路110,织状结构到织状结构的链路110用于耦合进行通信的多对织状结构。这些被标记为FF n-m,其中η表示所耦合的织状结构中的一个,且m表示另一个。举例来说,织状结构到织状结构的链路FF1-2促进在织状结构I和织状结构2之间的通信。尽管被称为织状结构到织状结构的链路,但在所连接的织状结构采用不同的结构和协议(例如,QPI到OCP的桥接)的实例中,或者在采用相同的协议的一对所连接的织状结构的时钟速度不相同的实例中,这些链路也可以充当织状结构到织状结构的桥接。
[0029]在图1a中,各种IP块104被叙述为包括发起方块I和/或目标块T两者,表示用于各种IP块的OCP织状结构的接口能力可以不同。例如,诸如音频输入(话筒)和输出(扬声器)等的外围设备可以仅要求与其他IP块进行单向通信,然而应注意,相应的音频接口组件可以支持双向通信或单向通信。以类似的方式,织状结构到织状结构的链路110中的每一个被描绘为双箭头以便指示支持跨越链路的双向通信。然而,在此对双向通信的引用不要求双向物理链路(即是说,跨越其线路支持双向通信的物理链路)。相反,如下面进一步详细解释的,可以通过使用以相反方向操作的单向链路促进在IP块或织状结构之间的双向通信。替代地,双向数据传输可以发生在单个单向链路上(即,相应的一组线路被用来支持双向数据传输),例如当发起方对目标执行读和写操作时。
[0030]在此公开的各实施例的各方面可以有利地被部署在诸如智能电话和平板等的移动平台中。对于这些类型的平台,功耗很受重视,且因而功率的任何减少都是有益的。根据在此的教导,可以通过跨越冗余共享物理链路使用分层互连织状结构体系结构和通过使用动态可选择路由来减少功耗。
[0031]与共享总线或完全填充交叉开关互连相比,分层网络通常具有以下方面的优点:
[I]功率效率,这是由于选定结构在不需要时可以被电源门控,以及[2]芯片面积,这是由于织状结构的复杂性(被实现为交叉点)随着所连接的单元的数量的平方而增长。通常,使用任何活动的晶体管操作或引起在SoC电路上的电力负载的任何操作都引起消耗功率。而且,用于诸如互连等的电路的操作频率(例如,时钟周期或频率)越高,功耗就越高。鉴于这一点,可以通过使用较少的物理互连结构(即,较少的“线路”和相应的接口电路,例如缓冲器和交换逻辑)和/或工作在较低的频率来降低功率。然而,在这两种情况中,在功耗和吞吐量性能之间存在折衷。
[0032]解决折衷的一种方式是对SoC体系结构的不要求较高速率(较高频率通常与处理器和存储器操作或视频操作相关联)的一些部分使用较低的频率时钟频率。例如,通常被分类为低速的音频组件以及外围设备和I/o组件可以被配置为连接到工作在较低的时钟频率的相应互连织状结构块。由于SoC体系结构100的分层性质支持实现分离织状结构,可以工作在较低的频率的各个织状结构可以被置于“待机”状态或“关闭”状态。例如,如果音频IP块被耦合到独立的织状结构,则在不要求音频功能时可以关闭该织状结构或将其置于待机状态,从而延长电池寿命。
[0033]本公开内容的另一发明方面是使用冗余物理链路,这些冗余物理链路可以动态地被配置为在某些操作条件下支持较高的传输速率,但与此同时减少在要求较低的传输率的操作条件下的功耗。在下列实施例中,使用开放核心协议兼容的织状结构来阐释这些特征的实现方面。然而,应注意,也可以部署使用其他协议的织状结构实现,以便获得数据吞吐量和功率减少方面的类似提高。
[0034]开放核心协议定义在诸如IP核和总线接口模块(总线封装器)等的两个通信实体之间的点对点接口,在此也称为代理。一个实体充当OCP实例的主设备,且另一个充当从设备。仅主设备可以给出命令,且它是控制实体。从设备通过从接受来自主设备的数据或向主设备提交数据,来响应于向其给出的命令。对于以对等方式通信的两个实体,需要由两个OCP实例连接它们——其中第一实体是主设备的OCP实例,以及其中第一实体是从设备的OCP实例。
[0035]图2示出包含已封装总线和三个IP核实体的简单系统,三个IP核实体中,一个是系统目标,一个是系统发起方,且一个实体既是发起方又是目标。应理解,通常“主设备”和“发起方”是同义词,且因而,在此可以可互换地使用这些术语。同样地,“从设备”和“目标”是同义词,且可以可互换地使用。
[0036]IP核的特性确定了该核是需要OCP的主设备、从设备还是OCP的双方;封装器接口模块必须充当用于每一连接的实体的OCP的互补方。跨越这一系统的传输如下发生。系统发起方(作为OCP主设备)向其已连接的从设备(总线封装器接口模块)给出命令、控制且可能给出数据。接口模块跨越片上总线系统进行请求。OCP不指定嵌入式总线的功能性。相反,接口设计者将OCP请求转换成嵌入式总线传输。接收总线封装器接口模块(作为OCP主设备)将嵌入式总线操作转换成合法的OCP命令。系统目标(0CP从设备)接收命令并采取所请求的动作。
[0037]基于已连接的实体的要求配置OCP的每一实例(通过选择信号或具体信号的位宽)且独立于其他实例。举例来说,系统发起方可以在它们的OCP实例中要求比系统目标更多的地址位数;嵌入式总线可以使用额外的地址位数来选择由系统发起方寻址哪一总线目标。
[0038]OCP是灵活的。存在现有的IP核相互如何通信的多种有用模型。一些模型采用流水线化来改善带宽和延迟时间特性。其他模型使用多周期访问模型,其中在若干时钟周期内将信号保持为静态以便简化时序分析并减少实现面积。通过使用允许主设备和从设备两者都控制何时允许信号改变的同步握手信号,对这种广泛行为的支持是可能的。
[0039]下面的表1列出基本的OCP信号。通常,在开放核心协议规范2.2 (或3.0)中提供涉及OCP的各种方面的细节。除了基本OCP之外,还存在可以按由OCP规范定义的实现
的各种可选信号。
[0040]`
【权利要求】
1.一种集成电路,包括: 第一织状结构,多个发起方通信地耦合到所述第一织状结构; 第二织状结构,多个目标通信地耦合到所述第二织状结构; 第一织状结构到织状结构链路和第二织状结构到织状结构链路,每一个均支持所述第一织状结构和第二织状结构之间的通信;以及 路由电路和关联逻辑,操作地耦合到所述第一织状结构到织状结构链路和第二织状结构到织状结构链路, 其中,所述路由电路和逻辑被配置为,通过有选择地使用所述第一织状结构到织状结构链路或第二织状结构到织状结构链路中的一个来路由从所述至少一个发起方到所述目标的所述数据,动态地路由源自至少一个发起方且去往目标的数据。
2.如权利要求1所述的集成电路,其特征在于,所述路由电路被配置为默认使用所述第一织状结构到织状结构链路在通信上耦合到所述第一织状结构的发起方与通信上耦合到所述第二织状结构的目标之间路由数据,且其中,所述路由电路被配置为检测对所述第一织状结构到织状结构链路的使用,且在检测到与发起方发起到通信上耦合到所述第二织状结构的目标的数据传输并发地使用所述第一织状结构到织状结构链路时,使用所述第二织状结构到织状结构链路在所述第一织状结构与第二织状结构之间路由所述数据传输。
3.如权利要求1所述的集成电路,其特征在于,所述路由电路操作上耦合到至少一个发起方织状结构接口,相应的发起方通信地耦合到所述至少一个发起方织状结构接口,且其中,通过选择引起经由所述第一织状结构到织状结构链路或第二织状结构到织状结构链路中的一个路由所述数据的地址,实现使用所述第一或第二织状结构到互连织状结构的动态路由。
4.如权利要求3所述的集成电路,其特征在于,所述地址对应于所述第一织状结构的目标代理接口的别名地址。
5.如权利要求1所述的集成电路,其特征在于,所述第一织状结构和第二织状结构中的每一个包括多个单向点对点互连,且其中,所述第一织状结构到织状结构链路和第二织状结构到织状结构链路中的每一个包括单向点对点互连。
6.如权利要求5所述的集成电路,其特征在于,所述第一织状结构和第二织状结构包括开放核心协议(OCP)织状结构,且所述第一织状结构到织状结构链路和第二织状结构到织状结构链路中的每一个包括OCP链路。
7.如权利要求1所述的集成电路,进一步包括: 第三织状结构,至少一个目标通信地耦合到所述第三织状结构;以及 第三织状结构到织状结构链路,所述第三织状结构到织状结构链路支持所述第二织状结构与第三织状结构之间的通信, 其中,所述路由电路被配置为经由所述第一织状结构到织状结构链路和第二织状结构到织状结构链路中的一个将源自通信地耦合到所述第一织状结构的发起方的数据有选择地路由到通信上耦合到所述第三织状结构的目标。
8.一种方法,包括: 在通信地耦合到第一织状结构的发起方处发起数据传输,所述数据传输去往通信地耦合到第二织状结构的目标,所述第一织状结构和第二织状结构经由第一织状结构到织状结构链路和第二织状结构到织状结构链路通信地耦合;以及 经由所述第一织状结构到织状结构链路和第二织状结构到织状结构链路中的一个,将对应于来自所述发起方的所述数据传输的数据有选择地路由到所述目标。
9.如权利要求8所述的方法,其特征在于,所述织状结构包括开放核心协议(OCP)织状结构,且所述织状结构到织状结构链路包括OCP链路。
10.如权利要求8所述的方法,其特征在于,所述织状结构采用单向点对点链路,且所述织状结构到织状结构链路中的每一个包括单向点对点链路。
11.如权利要求8所述的方法,其特征在于,用于将来自所述发起方的数据传输到所述目标的所述选择性路由操作对所述发起方来说是透明的。`
12.如权利要求8所述的方法,进一步包括使用包括多个逻辑门的嵌入式逻辑来实现所述选择性路由。
13.如权利要求8所述的方法,进一步包括: 在所述第一织状结构的发起方代理处接收数据传输请求,所述数据传输请求标识所述目标的地址; 基于所述目标的所述地址,确定所述第一织状结构和耦合到所述第二织状结构到织状结构链路中的别名目标代理的地址;以及 在所述第一织状结构内将所述数据传输从所述发起方代理内部路由到对应于所述别名地址的所述目标代理。
14.如权利要求8所述的方法,进一步包括: 检测所述第一织状结构到织状结构的链路是否繁忙;以及 如果所述第一织状结构到织状结构的链路繁忙,则经由所述第二织状结构到织状结构链路路由所述数据传输,否则,经由所述第一织状结构到织状结构链路路由所述数据传输。
15.一种片上系统(SoC),包括: 多个开放核心协议(OCP)织状结构,其具有与所述开放核心协议兼容的接口,且包括至少第一 OCP织状结构和第二 OCP织状结构; 多个知识产权(IP)块,每一个都通信地耦合到所述多个OCP织状结构中的一个,所述IP块的至少一部分包括用于经由它通信地耦合到的所述OCP织状结构与其他IP块通信的接口,用于这样的IP块中的每一个的所述接口包括发起方接口、目标接口或发起方接口和目标接口两者的其中之一; 第一织状结构到织状结构OCP链路和第二织状结构到织状结构OCP链路,每一个都支持在所述第一 OCP织状结构与第二 OCP织状结构之间的通信; 路由电路和关联逻辑,所述路由电路和关联逻辑操作地耦合到所述第一织状结构到织状结构OCP链路和第二织状结构到织状结构OCP链路, 其中,所述路由电路和逻辑被配置为,通过有选择地使用所述第一织状结构到织状结构OCP链路或第二织状结构到织状结构OCP链路中的一个,来路由源自通信地耦合到所述第一 OCP织状结构的第一 IP块的发起方且去往通信地耦合到所述第二 OCP织状结构的第二 IP块的目标接口的数据,以将所述数据从所述第一 IP块路由到所述第二 IP块。
16.如权利要求15所述的SoC,其特征在于,使用多个链路来互连所述多个织状结构以便形成分层织状结构。
17.如权利要求15所述的SoC,其特征在于,所述第一OCP织状结构和第二 OCP织状结构中的每一个包括多个单向点对点互连,且其中,所述第一织状结构到织状结构OCP链路和第二织状结构到织状结构OCP链路中的每一个包括单向点对点互连。
18.如权利要求15所述的SoC,其特征在于,所述SoC包括北复合体和南复合体,且在所述南复合体中实现所述多个OCP织状结构。
19.如权利要求15所述的SoC,其特征在于,所述路由电路被配置为按默认使用所述第一织状结构到织状结构OCP链路将在包括通信地耦合到所述第一织状结构的发起方接口的IP块之间的数据路由到包括通信地耦合到所述第二织状结构的目标接口的IP块,且其中所述路由电路被配置为,如果所述第一织状结构到织状结构OCP链路被判断为繁忙,则使用所述第二织状结构到织状结构OCP链路来路由所述数据。
20.如权利要求15所述的SoC,其特征在于,所述路由电路操作地耦合到至少一个发起方织状结构接口,IP块的相应发起方接口通信地耦合到所述发起方织状结构接口,且其中,通过选择使得经由所述第一织状结构到织状结构OCP链路或第二织状结构到织状结构OCP链路中的一个路由所述 数据的地址来实现使用所述第一或第二织状结构到织状结构OCP链路的动态路由。
【文档编号】H04L29/06GK103748837SQ201180072996
【公开日】2014年4月23日 申请日期:2011年8月22日 优先权日:2011年8月22日
【发明者】K·S·洛, P·M·尤尔特 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1