专利名称:一种嵌入式异构多核体系片上通信的实现方法
技术领域:
本发明涉及嵌入式异构多核技术领域,特别是涉及一种嵌入式异构多核体系 片上通信的实现方法。
背景技术:
随着集成电路工艺发展到深亚微米的阶段,当代处理器体系结构的研究正在 朝着多核的方向发展。无论对于提高处理器性能,还是考虑单位计算性能的能 耗因素,多核体系结构都是目前的热点研究方向。
在产业界,Intel、 IBM、 AMD、 SUN等国际顶级芯片公司都已经在市场上 发布了多核处理器。这里面既有同构多核处理器,也有异构多核处理器。
目前多核处理器的发展还处于起步阶段,有很多问题还亟待解决。其中,一 个主要的方面就是设计高效的片上通信架构。这里的通信不仅包括多个片上处 理核之间的通信,也包括处理核对于内存数据的存取。
当前,单核处理器的处理能力己经达到了非常高的水平。为了充分发挥单个 芯片上多个处理核的性能,片上的通信架构必须在反应时间、带宽等方面都能 有非常好的表现而传统的片外总线和其他通信方式并不能直接适应片上通信的 需求,因此多核处理器的设计者必须针对片上多核的特点重新设计合适的片上 通信架构。
进一步,当面对嵌入式异构多核这一类多核体系时,片上通信架构的设计又 需要新的考虑。异构多核处理器的特点是面向应用,结构多变,经常是一个处 理芯片上集成有几类不同的处理核。这要求片上通信的设计需充分考虑片上各 个不同种类处理核的通信需求与特点,并结合相应应用的特点、内存架构的设 置等。面向嵌入式领域,对于处理器的设计、实现、使用的代价都有更加严格 的要求,而且嵌入式异构多核处理器大多应用在多媒体处理、信号编解码、数 据比对等领域中,要求片上通信能够在有限的代价下提供更好的片内数据传输 性能。
这一方面表明了片上通信在嵌入式异构多核处理器设计中的重要性,也展示 了设计一个能充分发挥出处理器中各个处理核心性能的片上通信架构的艰难。 总的来说,嵌入式异构多核体系的片上通信研究才刚刚起步,面向嵌入式系统、 面向应用的定制也才刚刚出现,很多问题还有待解决。当前,多核架构已经成为处理器体系发展的主要方向,并发展出了同构多核
与异构多核两个主要分支。同构多核体系的如IBM的Power4、 Power5, Intel 的Core微架构,Sun的UltraSPARC等,而异构多核的典型有IBM的CELL, TI的OMAP。这些多核体系的设计架构代表了当前多核处理器领域的主要方向。
然而,目前多核处理器的发展还处于起步阶段,许多方面的研究还需要进一 步的开展。多核的片上通信就是其中的一个主要研究难点。当前,单核处理器 的处理能力已经达到了非常高的水平。为了充分发挥单个芯片上多个处理核的 性能,片上的通信架构必须在反应时间、带宽等方面都能有非常好的表现。因 而片上通信的设计是否优良直接关系到芯片内各个处理核的性能发挥。
目前,主流的片上高效通信机制有两种, 一是基于总线共享存储媒介(主要 是Cache)的结构, 一种是基于片上的互连结构。
总线共享Cache的结构是指芯片上的各个处理器核通过片上的互连总线共 享一个二级或三级Cache,进而达到对数据的共享和相互间通信。核间要传递的 数据一般都通过共享的Cache做一个中转。典型的总线共享Cache架构如斯坦 福大学的Hydra多核处理器。
正如上文所述,目前多核处理器正在成为处理器发展的焦点,而片上通信则 是这个焦点的重心。嵌入式异构多核体系中片上通信架构设计的研究难点主要 体现在嵌入式异构多核体系片上通信设计与实现。
异构多核体系中各个处理核的指令集、存储层次、实现细节、功能特性都可 能各不相同,如何为各个处理核设计一种高效的协作方式就成了首要的难题。 另一方面,由于片上通信架构的功能不仅包括各个处理核之间的数据传输,也 包括为各个处理核提供高效的内存数据存取性能。各个处理核如何合理的存取 内存数据也就成了一个非常重要的问题。上述这些都要求设计者针对不同的多 核架构以及所面向的应用不同而综合地设计片上通信架构方式。
嵌入式异构多核体系片上通信的设计应考虑软件在多核处理器上运行的便 捷性的问题。软件在多核处理器上的运行主要包括软件如何在多个核上加载, 不同处理核上的软件如何进行内存数据存储和如何进行相互通信等三个方面。 软件执行的方便与否决定了多核处理器能否以最低的代价提供最高的性能。
发明内容
本发明的目的在于提供一种嵌入式异构多核体系片上通信的实现方法。 本发明解决其技术问题采用的技术方案如下 l)构建通信模型以主-辅控制模型作为该嵌入式异构多核处理器的通信架构;主核将任务分 配给辅助核,辅助核自行建立该任务的执行环境并处理该任务;主核将任务的 属性信息,主要包括任务在内存中的起始地址、长度,在辅助核本地存储的地 址等,发送给信息控制单元;然后,信息控制单元根据这些属性信息自行将任 务主体信息从系统内存中搬运到辅助核的本地存储中;同时,对于辅助核处理 完成的结果数据,这些结果数据存于本地存储中,也由其将控制信息发送给通 信控制单元,并由其搬运到系统内存中;
主核和辅助核之间还需要进行一些消息类的通信与数据同步;这种消息传 递类通信的数据量很小,且一般都是从各个核中直接发出的;这将由信息控制 单元进行处理;
2) 构建信息控制单元
信息控制单元ICU处于辅助处理单元内部,作为辅助处理核与系统其他成 员的通信接口;其主要负责本地存储与系统主存之间的数据交换以及辅助处理 核与系统的主核、其他辅助核,系统其它设备之间的通信;
ICU位于SPU与总线接口之间;ICU中主要包含两大部分信箱通信模块 和数据搬运模块,分别完成消息传递类通信和数据搬运类通信;信息控制单元 分别和两个片内互连总线的接口相连,分别是MPBIU, Message Passing, Bus Interface Unit,即消息传递总线接口 ,和DT BIU, Data Transfer, Bus Interface Unit, 即数据传输总线接口;
ICU内部按照功能分为信箱通信模块和数据搬运模块两大部分。其中,信 箱通信模块主要包括通信输入队列InQueue、通信输出队列Out Queue,外部命 令队列External Command Queue和内部命令队歹U Inner Command Queue 4个缓冲 队列和一个队列管理单元Queue Management Unit;而数据搬运模块则包括解码 单元Decoder、 DMA和内存管理单元MMU;
3) 实现通信过程
基本的通信类型可分为4类,分别为主核向辅助核发起通信、辅助核向
主核发起通信、主核发起数据搬运类通信、辅助核发起数据搬运类通信。
本发明与背景技术相比,具有的有益的效果是
本发明是一种嵌入式异构多核体系片上通信的实现方法,其主要功能是结 合嵌入式异构多核体系结构的特点,提出了"主-辅"控制模型的构建方法,由主 核将任务分配给辅助核,辅助核自行建立该任务的执行环境并处理该任务,以 此为基本的核间协作方式。(1) 高效性。实现了主辅核间的通信以及辅助核中的本地存储与系统内存之 间的数据交换,提供了高效的核间协作以及数据传输性能。
(2) 实用性。面向嵌入式多核领域的较常见的多媒体处理、数据比对、信号
编解码、模式匹配等计算密集型处理,具有很强的实用性。
图1是本发明的实施过程示意图。
图2是本发明所面向的嵌入式异构多核体系结构图。 图3是本发明信息控制单元(ICU)基本架构图。
具体实施例方式
本发明是一种嵌入式异构多核体系片上通信的实现方法,下面结合图1说 明其具体实施过程。
l)构建通信模型
本发明所面向的嵌入式异构多核体系结构如图2所示,是一个典型的嵌入
式异构多核体系结构。这样的处理器中主要包含了主处理单元MPE (Main Processor Element)和辅助处理单元SPE (Synergistic Processor Element)两种处
理核心。其中,主处理器单元主要负责运行系统操作系统、应用软件的控制和 简单运算部分等通用处理;而辅助处理单元负责数据比对、模式匹配等计算密
集型运算。每个主处理器单元亦即主核拥有一级缓存,每个辅助处理单元亦即 辅助核或者复核,SPE主要包括了两大部分,第一部分是辅助核(Synergistic Processor Unit, SPU),其内部包含执行单元(Executing Unit, EU)和本地存储 (Local Store, LS)两个子部件;第二部分是信息控制单元(Information Control Unit, ICU)。其中信息控制单元为本发明的实现,将在本发明的步骤3)中具体 实现。
本发明以"主-辅"控制模型作为该嵌入式异构多核处理器的通信架构。主核 将任务分配给辅助核,辅助核自行建立该任务的执行环境并处理该任务。主核 将任务的属性信息(主要包括任务在内存中的起始地址、长度,在辅助核本地 存储的地址等)发送给信息控制单元;然后,信息控制单元根据这些属性信息 自行将任务主体信息从系统内存中搬运到辅助核的本地存储中。同时,对于辅 助核处理完成的结果数据(存于本地存储中),也由其将控制信息发送给通信控 制单元,并由其搬运到系统内存中。
主核和辅助核之间还需要进行一些消息类的通信与数据同步。这种消息传 递类通信的数据量很小,且一般都是从各个核中直接发出的。这将由信息控制单元进行处理。
2)构建信息控制单元
信息控制单元ICU处于辅助处理单元(SPE)内部,作为辅助处理核(SPU) 与系统其他成员的通信接口 。其主要负责本地存储(LS)与系统主存之间的数据交 换以及辅助处理核与系统其它成员(包括主核、其他辅助核,系统其它设备) 之间的通信。
ICU位于SPU与总线接口之间,虚线框内的部分即为其内部的主要模块。 ICU中主要包含两大部分信箱通信模块和数据搬运模块,分别完成消息传递 类通信和数据搬运类通信。这两类通信对于总线的要求各不相同,信箱通信模 块实际上是一个被动接收消息的模块,而数据搬运模块可以在系统中主动发出 数据传输请求。因而,信息控制单元分别和两个片内互连总线的接口相连,分 别是MP BIU (Message Passing, Bus Interface Unit),即消息传递总线接口,和 DTBIU (Data Transfer, Bus Interface Unit),即数据传输总线接口。
ICU内部按照功能分为信箱通信模块和数据搬运模块两大部分。其中,信 箱通信模块主要包括通信输入队列(InQueue)、通信输出队列(Out Queue), 外部命令队列(External Command Queue)和内部命令队列(Inner Command Queue)等4个缓冲队列和一个队列管理单元(Queue Management Unit);而数 据搬运模块则包括解码单元(Decoder)、 DMA和内存管理单元(MMU)。
信箱通信模块中的4个队列,就是MPE与SPE之间通信的信箱,用于中转 两者发送的消息通信信息。
每个队列有4个缓冲槽,即最多可以缓存4组数据。每个缓冲槽的宽度为 64bit,即可以存储64bit的信息。同时,每个队列还有一个Queue Empty (队列 空)寄存器和一个Queue Full (队列满)寄存器,用以表示队列的当前状态。其 中Queue Empty寄存器可以且仅可以被读口所读取,而Queue Full寄存器则只 能被写口所读取。4条队列形成4个通信信箱,分别面向不同的消息通信功能。
通信输入队列负责传递系统其他设备(主要是MPE)发送给此SPE的通信 信息。这些信息可以直接被SPU通过通道指令经由通道接口读取。因而,通信 输入队列与QMU连接的接口只有写功能,而与SPU连接的接口只有读功能。
通信输出队列负责传递SPU向系统其他设备(主要是MPE)发送的通信信 息。这些信息可以由目标设备经由MPBIU通过QMU读取。因此,通信输出队 列与QMU连接的接口只有读功能,而与SPU连接的接口只有写功能。与其他 队列不同的是,通信输出队列还有一个中断端口 Out—Queue—Write—INT,直接与系统中断控制器相互连接,以向其发出中断。该中断端口也就是完成辅助核向 主核发起通信时的信箱模块的中断功能当SPU向通信输出队列中写入新的信 息时,该队列就向系统发出一个中断,以提示MPE及时读取新的信息。
外部命令队列,顾名思义,负责传递"外部"的系统其他设备(主要是MPE) 发送的控制信息(命令)。外部命令队列与QMU连接的接口只有写功能,而其 与信息的接收者~~Decoder连接的接口只有读功能。
相应的,内部命令队列负责传递SPE中的SPU通过通道接口发送的控制信 息。这条队列主要是为满足SPU在必要时,如处理完任务,需要将结果数据搬 出,自主发起本地存储和系统内存之间的数据交换。SPU可以通过通道接口访 问该队列。因而,内部命令队列与SPU连接的接口只有写功能,与Decoder连 接的接口只有读功能。
综上所述,只有通信输入队列和通信输出队列是真正用于核间消息通信的 信箱。其主要是完成通信模型中所列的第一类通信功能——消息传递类通信; 而两条命令队列主要是用以传递各方发送的数据搬运控制命令,因而其完成的 是第二类通信——数据搬运类通信的第一步功能。
队列管理单元(QMU)是输入队列、输出队列、外部命令队列与MP BIU 相互连接的统一接口,负责对队列信息与总线接口传递的数据之间进行编解码 转换。QMU内部主要是一个编解码部件和两个接口寄存器输入寄存器和输出 寄存器。MP BIU接收到来自总线的数据之后就将其发送给QMU的输入寄存器。 QMU解码该数据,并根据其内容对相应的队列执行相应的操作。最后,QMU 将操作的反馈信息写入其输出寄存器中,以等待外界读取该信息。
由于QMU完成的是外界与信箱队列之间数据的编解码以及相应操作,外界 传递给QMU的数据信息需按照特定格式编写才能被QMU正确识别,队列反馈 给外界的数据信息也将被QMU按照特定格式编码之后外界才能够识别。同时, 这种数据编解码格式必须与QMU的内部编解码部件的具体编解码算法相对应。 由于该数据编解码格式可以根据不同实现进行灵活的设计,本文并未对其进行 具体限定。
以上是信箱通信模块中的主要部件,而数据搬运模块中的核心部件则是 DMA。它能够根据其控制信号完成对LS的访问,并将其中的数据搬运到系统 外界的存储区域(主要是系统内存)中,或执行相反的操作。
辅助DMA工作的是数据搬运模块中的Decoder和MMU。 Decoder的主要 功能是接收外部命令队列和内部命令队列中的控制信息,经过解码之后根据其内容设置相应的DMA控制信号或者设置相应的特殊寄存器。由于有两个队列 源,因而解码单元也对两个队列进行基于优先级的仲裁选择。在解码命令的同 时,对整个SPE的控制也集中在这里,Decoder可以根据控制信息设置一些特殊 寄存器SPR (Special Purpose Register),从而决定启动SPE/SPU、清空LS、是 否使用MMU以及设置MMU相关的页表基址寄存器等。通过设定SPR, ICU 可以控制整个SPE的工作。
与QMU中的情况类似,两个命令队列中控制信息也具有特定的格式,其与 Decoder中的解码算法相对应。在架构设计中,本文也未对该格式进行具体限定, 而是在架构实现中根据具体情况再进行相应的设计。
ICU里的MMU是一个负责虚地址/实地址转换和内存访问保护的部件,能 够支持不同的处理器模式和更好的配合操作系统。在本发明中,ICU的MMU 是一个可选的单元。若在其中配置了 MMU,则ICU中DMA与系统主内存或其 他设备之间的数据交换就可以使用虚地址。这将有利于用户程序对于地址的统 一操作,即在系统全局地址空间内都使用虚拟地址进行访问。由于主处理单元 中已经有一个专属于其的MMU,这就使得体系结构中出现了多个MMU。这种 情况下,多个MMU之间必须进行一致性设计, 一致性设计可以使用已经成熟 的技术进行。
3)实现通信过程
基本的通信类型可分为4类,分别为主核向辅助核发起通信、辅助核向 主核发起通信、主核发起数据搬运类通信、辅助核发起数据搬运类通信。通过 这4类基本通信可以组成所有的通信需求。通信过程分别为
1. 主核向辅助核发起通信 该类型通信的主要过程如下
a) 主核将通信信息发送给信息控制单元的信箱模块;
b) 信箱模块接收并存储该信息;
c) 辅助核通过信息控制单元的信箱模块获取该信息;
辅助核并不知道主核何时会发送信息。因而,在通信过程中,步骤c)的辅 助核采用轮询的方式,不断访问信箱模块以及时获得信息。
2. 辅助核向主核发起通信 该类型通信的主要过程如下-
a) 辅助核将通信信息发送给信息控制单元的信箱模块;
b) 信箱模块接收并存储该信息,同时向主核发出一个中断信号;c)主核接收到中断信号后从信息控制单元的信箱模块中获取通信信息;
该通信过程中信箱模块在接收到辅助核发给主核的通信信息时会先向主核 发出一个中断信号。通过该中断信号的导引,主核可以及时的获取通信信息。 由于主核主要负责系统的控制,其本身拥有中断功能。利用中断的方式来获取 信息,主核就可以不用轮询信息控制单元。这一方面降低了系统运行时的通信 量,也使得主核不用运行轮询程序,其处理器资源可以更好的被其他任务所利 用。
3. 主核发起数据搬运类通信 该类型通信的主要过程如下
a) 主核将数据搬运控制信息发送给信息控制单元的信箱模块;
b) 信箱模块接收并存储该控制信息;
C)数据搬运模块从信箱模块中获取该信息,处理后发起数据搬运操作; 在这个过程中,步骤c)中的数据搬运模块实际上是在不停地查询信箱模块 中有无控制信息,从而及时进行相应的数据搬运操作。由于数据搬运模块是全 硬件模块,且只负责接收控制信息并执行,则其采用这种轮询的方式来获取控 制信息并不会引起自身运行效率的降低。同时,数据搬运模块和信箱模块同属 于信息控制单元,两者通过内部通路直接连接,而不走片内通信通道,因而也 不会增加系统运行时的通信量。
4. 辅助核发起数据搬运类通信 该类型通信的主要过程如下
a) 辅助核核将数据搬运控制信息发送给信息控制单元的信箱模块;
b) 信箱模块接收并存储该控制信息;
c) 数据搬运模块从信箱模块中获取该信息,处理后发起数据搬运操作; 在这个过程中,步骤c)中的数据搬运模块实际上是在不停地查询信箱模块
中有无控制信息,从而及时进行相应的数据搬运操作。由于数据搬运模块是全 硬件模块,且只负责接收控制信息并执行,则其采用这种轮询的方式来获取控 制信息并不会引起自身运行效率的降低。同时,数据搬运模块和信箱模块同属 于信息控制单元,两者通过内部通路直接连接,而不走片内通信通道,因而也 不会增加系统运行时的通信量。
权利要求
1.一种嵌入式异构多核体系片上通信的实现方法,其特征在于1)构建通信模型以主-辅控制模型作为该嵌入式异构多核处理器的通信架构;主核将任务分配给辅助核,辅助核自行建立该任务的执行环境并处理该任务;主核将任务的属性信息,主要包括任务在内存中的起始地址、长度,在辅助核本地存储的地址等,发送给信息控制单元;然后,信息控制单元根据这些属性信息自行将任务主体信息从系统内存中搬运到辅助核的本地存储中;同时,对于辅助核处理完成的结果数据,这些结果数据存于本地存储中,也由其将控制信息发送给通信控制单元,并由其搬运到系统内存中;主核和辅助核之间还需要进行一些消息类的通信与数据同步;这种消息传递类通信的数据量很小,且一般都是从各个核中直接发出的;这将由信息控制单元进行处理;2)构建信息控制单元信息控制单元ICU处于辅助处理单元内部,作为辅助处理核与系统其他成员的通信接口;其主要负责本地存储与系统主存之间的数据交换以及辅助处理核与系统的主核、其他辅助核,系统其它设备之间的通信;ICU位于SPU与总线接口之间;ICU中主要包含两大部分信箱通信模块和数据搬运模块,分别完成消息传递类通信和数据搬运类通信;信息控制单元分别和两个片内互连总线的接口相连,分别是MP BIU,Message Passing,BusInterface Unit,即消息传递总线接口,和DT BIU,Data Transfer,Bus Interface Unit,即数据传输总线接口;ICU内部按照功能分为信箱通信模块和数据搬运模块两大部分。其中,信箱通信模块主要包括通信输入队列In Queue、通信输出队列Out Queue,外部命令队列External Command Queue和内部命令队列Inner Command Queue 4个缓冲队列和一个队列管理单元Queue Management Unit;而数据搬运模块则包括解码单元Decoder、DMA和内存管理单元MMU;3)实现通信过程基本的通信类型可分为4类,分别为主核向辅助核发起通信、辅助核向主核发起通信、主核发起数据搬运类通信、辅助核发起数据搬运类通信。
全文摘要
本发明公开了一种嵌入式异构多核体系片上通信的实现方法。本发明的方法结合嵌入式异构多核体系结构的特点,提出了主-辅控制模型的构建方法,由主核将任务分配给辅助核,辅助核自行建立该任务的执行环境并处理该任务,以此为基本的核间协作方式。本发明实现了主辅核间的通信以及辅助核中的本地存储与系统内存之间的数据交换,提供了高效的核间协作以及数据传输性能;面向嵌入式多核领域的较常见的多媒体处理、数据比对、信号编解码、模式匹配等计算密集型处理,具有很强的实用性。
文档编号G06F15/163GK101303687SQ20081006216
公开日2008年11月12日 申请日期2008年6月3日 优先权日2008年6月3日
发明者严力科, 冯德贵, 施青松, 章铁飞, 威 胡, 蒋冠军, 斌 谢, 陈天洲, 项凌祥, 黄江伟 申请人:浙江大学