嵌入式异构多核体系片上通信互连组织层次的实现方法

文档序号:6460486阅读:172来源:国知局
专利名称:嵌入式异构多核体系片上通信互连组织层次的实现方法
技术领域
本发明涉及嵌入式异构多核技术领域,特别是涉及一种嵌入式异构多核体系 片上通信互连组织层次的实现方法。
技术背景随着集成电路工艺发展到深亚微米的阶段,当代处理器体系结构的研究正在 朝着多核的方向发展。无论对于提高处理器性能,还是考虑单位计算性能的能 耗因素,多核体系结构都是目前的热点研究方向。在产业界,Intel、 IBM、 AMD、 SUN等国际顶级芯片公司都己经在市场上 发布了多核处理器。这里面既有同构多核处理器,也有异构多核处理器。目前多核处理器的发展还处于起步阶段,有很多问题还亟待解决。其中,一 个主要的方面就是设计高效的片上通信架构。这里的通信不仅包括多个片上处 理核之间的通信,也包括处理核对于内存数据的存取。当前,单核处理器的处理能力已经达到了非常高的水平。为了充分发挥单个 芯片上多个处理核的性能,片上的通信架构必须在反应时间、带宽等方面都能 有非常好的表现而传统的片外总线和其他通信方式并不能直接适应片上通信的 需求,因此多核处理器的设计者必须针对片上多核的特点重新设计合适的片上 通信架构。进一步,当面对嵌入式异构多核这一类多核体系时,片上通信架构的设计又 需要新的考虑。异构多核处理器的特点是面向应用,结构多变,经常是一个处 理芯片上集成有几类不同的处理核。这要求片上通信的设计需充分考虑片上各 个不同种类处理核的通信需求与特点,并结合相应应用的特点、内存架构的设 置等。面向嵌入式领域,对于处理器的设计、实现、使用的代价都有更加严格 的要求,而且嵌入式异构多核处理器大多应用在多媒体处理、信号编解码、数 据比对等领域中,要求片上通信能够在有限的代价下提供更好的片内数据传输 性能。这一方面表明了片上通信在嵌入式异构多核处理器设计中的重要性,也展示 了设计一个能充分发挥出处理器中各个处理核心性能的片上通信架构的艰难。 总的来说,嵌入式异构多核体系的片上通信研究才刚刚起步,面向嵌入式系统、 面向应用的定制也才刚刚出现,很多问题还有待解决。当前,多核架构已经成为处理器体系发展的主要方向,并发展出了同构多核
与异构多核两个主要分支。同构多核体系的如IBM的Power4、 Power5, Intel 的Core微架构,Sun的UltraSPARC等,而异构多核的典型有IBM的CELL, TI的OMAP。这些多核体系的设计架构代表了当前多核处理器领域的主要方向。
然而,目前多核处理器的发展还处于起步阶段,许多方面的研究还需要进一 步的开展。多核的片上通信就是其中的一个主要研究难点。当前,单核处理器 的处理能力已经达到了非常高的水平。为了充分发挥单个芯片上多个处理核的 性能,片上的通信架构必须在反应时间、带宽等方面都能有非常好的表现。因 而片上通信的设计是否优良直接关系到芯片内各个处理核的性能发挥。
目前,主流的片上高效通信机制有两种, 一是基于总线共享存储媒介(主要 是Cache)的结构, 一种是基于片上的互连结构。
总线共享Cache的结构是指芯片上的各个处理器核通过片上的互连总线共 享一个二级或三级Cache,进而达到对数据的共享和相互间通信。核间要传递的 数据一般都通过共享的Cache做一个中转。典型的总线共享Cache架构如斯坦 福大学的Hydra多核处理器。
正如上文所述,目前多核处理器正在成为处理器发展的焦点,而片上通信则 是这个焦点的重心。嵌入式异构多核体系中片上通信架构设计的研究难点主要 体现在嵌入式异构多核体系片上通信设计与实现。
目前,片上通信设计中出现了种类繁多的组织层次。比如在基于共享Cache 的多核体系中,有用交叉总线来连接各个处理核的本地Cache和共享Cache的, 也有用片上网络(Network on chip) [9]来连接的;而在基于共享总线的多核体系 中,总线架构又可以分为普通单总线、多层次总线、环形总线以及交叉总线和 片上网络等等。这些一方面丰富了片上通信的设计选择,同时也增加了片上通 信设计的自由度和复杂度。
同时,现有的组织层次都没有较好的考虑片上各个处理核的不同特性及需 求。对于集成到单一芯片上的多个处理核,如果是同构配置,则只需考虑一类 处理核的特性;而如果是异构配置,则需综合考虑多种需求特征。这就要求设 计者充分了解其所用片上处理核的各项技术特征,并为这些参数寻求合适的片 上通信设计方案。特别是对于嵌入式异构多核处理器,片上通信互连层次的设 计者还应考虑不同的处理核对于内存访问的不同需求,并为计算密集型处理提 供高效的数据传输性能。

发明内容
本发明的目的在于提供一种嵌入式异构多核体系片上通信互连组织层次的 实现方法。
本发明解决其技术问题采用的技术方案如下
1) 对处理器核分类
根据嵌入式异构多核体系中处理器核功能特性的不同,将片上处理核分成 控制密集型处理核和计算密集型处理核两类,控制密集型处理核主要功能为系 统控制,计算密集型处理核功能主要是对大规模数据的计算处理;
2) 构建统一通信模型
构建统一通信模型做为,统一通信模型是基于片上总线的架构,主要由两 条片上总线, 一个总线互连桥和一个共享Cache构成;
其中, 一条总线被命名为控制总线,其主要为控制密集型处理核而设;另 一条总线被称为计算总线,是计算密集型处理核的连接平台;总线间的桥构成 了两条总线之间的连接通路。在控制总线上还连接有一个共享Cache,它主要是 作为连接在控制总线上的控制密集型处理核的存储层次之一;
3) 构建通信通道
对于多核片上通信的不同需求,构建五种不同的通信通道,包括控制-控 制通道、控制-内存通道、计算-计算通道、计算-内存通道,控制-计算通道;在 这五条通道中,控制-控制通道、计算-计算通道和控制-计算通道属于处理核之 间的通信路径,而控制-内存通道和计算-内存通道是处理核与内存之间的数据交 换路径;通过这五条通道,能够为异构多核处理器上的各个处理核提供完善且 高性能的片上通信互连结构。
本发明与背景技术相比,具有的有益的效果是
本发明是一种嵌入式异构多核体系片上通信互连组织层次的实现方法S,其 主要功能是结合嵌入式异构多核体系结构的特点,设计了两条核间总线,分别 为负责连接计算密集型核的计算总线与负责控制密集型核的控制总线。同时, 内存控制器被看作处理核连接在计算总线上,从而统一了片内的处理核间、处 理核与内存间的控制通信与数据存取通信。
(1) 高效性。实现了主辅核间以总线形式进行的通信,有效提高了核间协 作以及数据传输性能。
(2) 实用性。面向嵌入式多核领域的较常见的多媒体处理、数据比对、信 号编解码、模式匹配等计算密集型处理,具有很强的实用性。


图1是本发明的实施过程示意图。
图2是本发明统一通信模型的组织架构图。 图3是本发明控制-控制通道结构图。 图4是本发明控制-内存通道结构图。 图5是本发明计算-计算通道结构图。 图6是本发明计算-内存通道结构图。 图7是本发明控制-计算通道结构图。
具体实施例方式
本发明是一种嵌入式异构多核体系片上通信互连组织层次的实现方法,下 面结合图1说明其具体实施过程。 l)对处理器核分类
根据嵌入式异构多核体系中处理器核功能特性的不同,将片上处理核分成 控制密集型处理核和计算密集型处理核两类。
控制密集型处理核意味着其主要功能为系统控制。这类处理核的指令集 (Instruction Set Architecture, ISA)都不是面向计算为主的。操作系统、服务器 应用、1/0密集的应用等都是这类处理核比较适合的领域。因而控制密集的特点 是数据计算仅是其应用中的一小部分,而大多数都是I/0控制类的操作。同时, 控制密集型处理核的计算一般需要的数据量都较少,其计算任务本身也较小。
而对于数据传输通路,最适合控制密集型处理核的存储层次是高速缓存 (Cache)。这主要是由于Cache能提供高效的小规模、高频率的数据存取。由 上文提到的控制密集型处理核的特性可知,其存取数据的频率较高,但大多数 数据都具有较高的重用性。Cache正好能对这些需求提供很好的支持,其内部存 储的数据较少,但具有很高的重用性。
计算密集型处理核也就意味着其功能主要是对大规模数据的计算处理。它 们的指令集一般都针对数据处理而进行专门的设计,添加了诸如多参数、SIMD、 矩阵处理等指令功能。这类处理核的典型应用领域如多媒体数据处理、数据库 数据处理、科学计算等。因而,可知计算密集的特点就是任务的巨大部分都是 数据计算。同时任务的数据需求量较大,且一般数据的重用性都较低。
在存储层次上,计算密集型处理核与控制密集型处理核也不相同, 一般最 适合计算密集型处理核的是本地存储(Local Memoiy)。这主要是因为本地存储 支持快速的数据存取操作,并能够提供大量连续的数据。通过上文描述的特性可知,计算密集型处理核由于绝大部分时间都在进行数据处理运算,因而其需 要快速的存取数据。并且由于其数据需求量大、重用性低,计算密集型处理核
需要存储层次能够提供连续大量的数据。面对这些需求,Cache已经不能够胜任, 因为其内部存储的数据量较小,且一般都不连续,再加上内部控制逻辑的复杂 造成了数据存取较慢。而本地存储内部控制逻辑简单,存取操作快,且能够与 系统内存进行快速的大规模数据交换,以提供大量连续的数据,因而能够很好 的满足计算密集型处理核对存储层次的需求。
2) 构建统一通信模型
统一通信模型主要是基于片上总线的架构。如图2所示,它主要由两条片 上总线, 一个总线互连桥和一个共享Cache (Shared-Cache)构成。
其中, 一条总线被命名为控制总线(Control-Bus),其主要为控制密集型处 理核而设。另一条总线被称为计算总线(Computation-Bus),是计算密集型处理 核的连接平台。总线间的桥(Bridge)构成了两条总线之间的连接通路。在控制 总线上还连接有一个共享Cache (Shared-Cache)。它主要是作为连接在控制总线 上的控制密集型处理核的存储层次之一。
由于现在的异构多核处理器一般都将内存控制器连接在核间总线上以提高 数据存取速度,而在统一通信模型中,系统中有两条核间总线,内存控制器应 该被连接在计算总线上。这主要是计算总线上的处理核对于内存数据的存取需 求较控制总线上的大。
统一通信模型主要是对控制密集型处理核进行了基于总线的共享Cache设 计,而对计算密集型处理核则进行了共享总线的设计。同时,通过总线桥(Bridge) 连接两条总线以完成两类核之间的通信通路。
3) 构建通信通道
对于多核片上通信的不同需求,构建五种不同的通信通道,包括控制-控 制通道(通道1)、控制-内存通道(通道2)、计算-计算通道(通道3)、计算-内存通道(通道4),控制-计算通道(通道5)。
1、控制-控制通道
控制-控制通道也就是两个控制密集型处理核之间的通信路径,其结构如图 3中的通道1 (Pathl)所示。控制核1 (CtrlPUl)和控制核2 (CtrlPU2)是两 个控制密集型处理核,且每一个都拥有一个本地Cache作为其本地存储层次。
CtrlPUl和CtrlPU2之间的通信需求主要是两者之间共享的数据以及同步的 信号等。例如CtrlPUl和CtrlPU2共享一个同步数据。本发明采用的一种基于共享Cache的改进的写无效一致性协议下,若CtrlPU2更改了该同步数据,则其 向Control-Bus发送一个写无效请求;Control-Bus控制器仲裁该请求后将该请求 转向CtrlPUl和Shared-Cache致使两者里的该同步数据无效。这样,当CtrlPUl 需要该同步数据时,其本地Cache发出的该同步数据失效的信号会引导 Control-Bus从CtrlPU2处获得新的同步数据并返回给CtrlPUl ,从而形成一条从 CtrlPU2到CtrlPUl的通道(实际上,该数据也会同时到达Shared-Cache并引起 其数据的更新)。当然,不同的一致性协议下通信的细节会有所不同。不过总体 的通信通路是不变的,就是最终在Control-Bus上形成控制密集型处理核之间的 通信通道。
总的来说,这条通信路径比较短且比较简单。它仅影响需要通信的处理核、 Control-Bus及其上的Shared-Cache。系统中的Computation-Bus及其上的计算密 集型处理核都不受任何影响而可以正常工作。如果在这同时还有针对通道3或 通道4的请求,由于其与通道1无直接关联,则通信层还可继续满足其通信的 要求,即同时建立一条通道1和一条通道3或者通道4。这极大的提高了系统的 整体通信带宽。
2、控制-内存通道
控制-内存通道主要是完成控制密集型处理核与系统内存之间的数据"通信" 的路径。图4中的通道2 (Path2)就是控制-内存通道。本文将该通道分为高层 和低层两个部分。通道2的高层主要是连接了控制核1 (CtrlPUl)、控制总线 (Control-Bus)和共享Cache (Shared-Cache),而其底层则连接了 Shared-Cache、 Control-Bus、总线桥(Bridge)、计算总线(Computation-Bus)和内存控制器(图 中直接用内存表示)。同上文所述,CtrlPUl是一个控制密集型处理核。
当一个内存数据存取请求从CtrlPUl发出后,Control-Bus控制器仲裁该请 求并将其发送给Shared-Cache,从而形成通道2的高层部分。Shared-Cache在其 内部查找该操作数据的地址,若Cache命中则执行操作并将信息通过Control-Bus 反馈给CtrlPUl;否则,Shared-Cache发出 一个Cache失效信号并请求访问内存 控制器以获得该数据。若是后一种情况,它首先向Control-Bus发出一个内存访 问请求;由于内存控制器在Computation-Bus上,Control-Bus处理该请求后将其 通过Bridge转给了 Computation-Bus; Computation-Bus控制器仲裁该请求并将 其发给了内存控制器,从而形成了通道2的底层部分。最后,数据从内存控制 器经过通道2的底层部分到达Shared-Cache,再从Shared-Cache经由通道2的 高层部分到达CtrlPUl 。可以看出,通道2相对通道1要复杂的多,其通信路径也较长。但是,由 于本发明对该通道进行了划分,从而可以大大减少通信层的负担。这主要是由 于控制密集型处理核所需的数据访问操作一般都有较好的局部性,因而在本地
Cache以及Shared-Cache中的数据都有较高的重用性。基于这个原因,CtrlPUl 的内存数据访问操作大部分时间只会需要通道2的高层部分,而其底层部分则 仅在Shared-Cache失效这一极小部分时期才需要。这一划分的设计使得大多数 情况下Computation-Bus以及其上的计算密集型处理核的通信都不受影响,可以 大大减少控制密集型处理核与计算密集型争抢内存控制器的几率,从而能够为 计算密集型处理核提供更好的内存数据存取环境。
3、 计算-计算通道
正如控制-控制通道是专为控制密集型处理核之间通信的路径,计算-计算通 道也就是专为计算密集型处理核之间通信的路径。如图5所示,两个计算密集 型处理核CptPUl和CptPU2之间通过Computation-Bus进行核间数据通信。
计算密集型处理核之间的通信过程如下CptPUl需要CptPU2中的一段数 据,则其首先将数据访问请求发送给Computation-Bus; Computation-Bus控制器 仲裁该请求后将其传递给CptPU2,形成通道3; CptPU2接受该请求,进行相应 的操作之后将反馈发送到Computation-Bus上,再由其传回给CptPUl。
与通道1类似,通道3也是一条短且简单的路径。在这条通道被请求而形 成时,Computation-Bus被占用,而Control-Bus则可以继续正常的工作。从而, 系统可以同时再接受对于通道1的通信请求。
4、 计算-内存通道
另一条只影响Computation-Bus的通道就是计算-内存通道,也就是计算密 集型处理核对内存控制器的访问通信。如图6所示,计算-内存通道(通道4, Path4)主要包括计算密集型处理核(CptPUl)、 Computation-Bus和内存控制器 (图中直接用内存表示)。
这条通信通道的通信过程如下CptPUl向Computation-Bus发送一个内存 访问请求;Computation-Bus控制器仲裁该请求之后将其转发给Memory,形成 通道4; Memory接受该请求并执行相应操作,并将反馈信息发送回 Computation-Bus;最终,Computation-Bus将反馈信息传回CptPUl 。
通道4结构简单,路径也很短,却十分的重要。计算密集型处理核由于其 本身特性需要大量的数据,而且数据重用性很低。这就要求其与系统内存之间 的通信通道能提供便捷快速的数据存取性能。而在统一通信模型设计中,针对这一点做了特别的考虑其一,通过将内存控制器与计算密集型处理核一同连
接在Computation-Bus上以縮短计算密集型处理核的内存访问路径;其二,采取 双总线的设计并在Control-Bus上加上Shared-Cache以尽量减少控制密集型处理 核的内存访问影响计算密集型处理核的内存访问,将内存控制器尽可能的供给 数据需求量大的计算密集型处理核使用。 5、控制-计算通道
控制-计算通道(通道5, Path5)完成的是控制密集型处理核与计算密集型 处理核之间的通信。
如图7所示,控制密集型处理核CtrlPUl与计算密集型处理核CptPUl通过 Control-Bus、 Bridge禾口 Computation-Bus进4亍相互通f言。
控制-计算通道的典型通信过程如下CtrlPUl需要向CptPUl发送一个数据 信息,其首先向Control-Bus发出请求;Control-Bus控制器仲裁后将该请求通过 Bridge转到Computation-Bus; Computation-Bus控制器仲裁该请求并将其传递给 CptPUl,通道5形成;CptPUl接受该操作请求,执行相应操作后反馈操作信息。
这条路径要经由两条总线以及中间的Bridge,相对较长且复杂。当这条通 路的通信形成之后,系统中所有片上通信资源都被占用,其他通信路径全都无 法与通道5同时存在。
在这五条通道中,通道l、通道3和通道5属于处理核之间的通信路径,而 通道2和通道4是处理核与内存之间的数据交换路径。通过这五条通道,"统一 通信"层能够为异构多核处理器上的各个处理核提供完善且高性能的片上通信 互连结构。
权利要求
1.一种嵌入式异构多核体系片上通信互连组织层次的实现方法,其特征在于1)对处理器核分类根据嵌入式异构多核体系中处理器核功能特性的不同,将片上处理核分成控制密集型处理核和计算密集型处理核两类,控制密集型处理核主要功能为系统控制,计算密集型处理核功能主要是对大规模数据的计算处理;2)构建统一通信模型构建统一通信模型做为,统一通信模型是基于片上总线的架构,主要由两条片上总线,一个总线互连桥和一个共享Cache构成;其中,一条总线被命名为控制总线,其主要为控制密集型处理核而设;另一条总线被称为计算总线,是计算密集型处理核的连接平台;总线间的桥构成了两条总线之间的连接通路。在控制总线上还连接有一个共享Cache,它主要是作为连接在控制总线上的控制密集型处理核的存储层次之一;3)构建通信通道对于多核片上通信的不同需求,构建五种不同的通信通道,包括控制-控制通道、控制-内存通道、计算-计算通道、计算-内存通道,控制-计算通道;在这五条通道中,控制-控制通道、计算-计算通道和控制-计算通道属于处理核之间的通信路径,而控制-内存通道和计算-内存通道是处理核与内存之间的数据交换路径;通过这五条通道,能够为异构多核处理器上的各个处理核提供完善且高性能的片上通信互连结构。
全文摘要
本发明公开了一种嵌入式异构多核体系片上通信互连组织层次的实现方法。本发明的方法结合嵌入式异构多核体系结构的特点,设计了两条核间总线,分别为负责连接计算密集型核的计算总线与负责控制密集型核的控制总线。同时,内存控制器被看作处理核连接在计算总线上,从而统一了片内的处理核间、处理核与内存间的控制通信与数据存取通信。本发明实现了主辅核间以总线形式进行的通信,有效提高了核间协作以及数据传输性能;面向嵌入式多核领域的较常见的多媒体处理、数据比对、信号编解码、模式匹配等计算密集型处理,具有很强的实用性。
文档编号G06F15/80GK101290610SQ20081006216
公开日2008年10月22日 申请日期2008年6月3日 优先权日2008年6月3日
发明者严力科, 冯德贵, 施青松, 章铁飞, 威 胡, 斌 谢, 剑 陈, 陈天洲, 项凌祥, 黄江伟 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1