CN101882127B - 一种多核心处理器 - Google Patents
一种多核心处理器 Download PDFInfo
- Publication number
- CN101882127B CN101882127B CN2010101895580A CN201010189558A CN101882127B CN 101882127 B CN101882127 B CN 101882127B CN 2010101895580 A CN2010101895580 A CN 2010101895580A CN 201010189558 A CN201010189558 A CN 201010189558A CN 101882127 B CN101882127 B CN 101882127B
- Authority
- CN
- China
- Prior art keywords
- processor
- bus
- data
- input
- output port
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Multi Processors (AREA)
Abstract
本发明提供了一种多核心处理器,包括多个按照行列分布的处理器集合和一个调试配置单元,所述处理器集合中有一个主处理器和多个从处理器,所述主处理器和从处理器都是超长指令字处理器;处理器集合为M*N个,组成多个处理器集合的M*N阵列;共有M*N个交换单元与M*N个处理器集合一一对应;且M*N阵列的每一个节点处设有一个所述的交换单元;上下或左右相邻的交换单元之间以及处理器集合与对应的交换单元之间均通过全局总线连接;M*N个交换单元中的第一行交换单元均与调试配置单元通过全局总线连接。本发明能实现让每一个处理器集合中的多个处理器之间能够无缝的协作。
Description
技术领域
本发明属于计算机与数字通信领域,涉及一种多核心处理器,,该多核心处理器中的所有主处理器和从处理器都是超长指令字处理器。
技术背景
数字通信尤其是无线通信的快速发展对数字信号处理的能力提出了越来越高的要求。依靠提高主频来提高数字信号处理能力的方法受限于芯片功耗,散热和制造工艺,扩展能力有限。超长指令字(VLIW)和多核心的处理器结构能够很好地扩展数字信号处理器的能力。
我们知道,并行计算机或者是超长计算机就是用网络把一些通用的处理器或计算机连接在一起提供强大的处理器能力,并行计算机的架构和编程的模式都影响并行处理的能力。由于数字信号处理多是并行的处理运算,尤其是矢量运算,所以我们可以在嵌入式的数字信号处理器中采用类似超长计算机的结构,即在一块芯片上集成很多个处理器核心,这些处理器核心通过芯片上的总线互相通信协作,这样能够有效的提高处理器的能力,这类处理器我们叫做多核心处理器或者处理器阵列。多核处理器的关键是多个核心之间的通信和协作。多核心处理器按照多核之间的通信方式可以划分为三种:第一种是共享内存的多核心处理器,多核心处理器中不同的核心可以访问同一块公共内存(Share memory),这样多核心之间通过共享内存来通信。第二种是分布式内存(Distributed memory)的多核心处理器,多核心之间通过消息传递来通信。第三种是前两种模式的混合,整个处理器阵列划分成处理器集合(Cluster),每个处理器集合内部的多个核心之间是通过共享内存方式通信,处理器集合之间是通过消息传递来通信。在并行计算机或者超长计算机结构中,无论是共享内存还是分布式内存或者是混合式结构,多个处理器之间的协作除了与并行计算机的结构有关外,还与编程模式比如是MPI还是OpenMP或者是MPI+OpenMP有很大的关系。对嵌入式的多核心处理器,很难应用复杂的编程模式,所以多核心之间的协作更多的依赖硬件结构。
发明内容
本发明的目的就是在采用上述第三种混合式多核心架构的基础上,设计一种具有超长指令字处理器阵列的多核心处理器,让每一个处理器集合中的多个处理器以及不同的处理器集合之间能够无缝的协作,从而更好地完成单指令多数据(SIMD)或者多指令多数据(MIMD)的并行处理工作。
本发明的技术解决方案如下:
一种多核心处理器,包括多个按照行列分布的处理器集合和一个调试配置单元,所述处理器集合中有一个主处理器和多个从处理器,所述的多个从处理器之间以及从处理器和主处理器之间通过局部总线连接,其特征为,所述主处理器和从处理器都是超长指令字处理器;处理器集合为M*N个,组成多个处理器集合的M*N阵列;M、N分别为行数和列数,且均为大于1的自然数;共有M*N个交换单元与M*N个处理器集合一一对应;且M*N阵列的每一个节点处设有一个所述的交换单元;上下或左右相邻的交换单元之间以及处理器集合与对应的交换单元之间均通过全局总线连接;M*N个交换单元中的第一行交换单元均与调试配置单元通过全局总线连接。
所述调试配置单元有N套输入输出端口通过全局总线分别连接到多核心处理器的N列处理器集合,每套全局总线的输入端都连接到一个FIFO缓冲器上,FIFO缓冲器的宽度等于总线宽度,N个FIFO缓冲器的非空状态线组合在一起连接到调试控制状态机,调试控制状态机与所述N个FIFO缓冲器的使能端之间通过读使能控制信号线相接,每个FIFO缓冲器的输出端连接到有N个输入端口的复用器的一个输入端口;调试控制状态机分别与调试寄存器与JTAG接口相连接;控制状态机与JTAG接口相连。控制状态机主要有三个状态:发送程序控制命令(执行,停止,单步执行等),写数据到处理器集合,读取处理器集合的数据。状态机的切换由JTAG接口输入的信息,调试寄存器中的内容和N个FIFO缓冲器的状态来控制。
调试控制状态机向所述N个FIFO缓冲器发出读使能信号,FIFO缓冲器的输出端连接到有N个输入端口的复用器的输入端口。处理器集合向调试配置单元发送控制信息一股都是因为调试配置单元发出了读取控制信息命令,在这种情况下,某一时刻只可能有一个处理器集合向调试配置单元发送控制消息。如果处理器集合有突发控制信息要发送到调试配置单元,比如遇到中断,错误,在这种情况下,有可能有多个处理器集合向调试配置单元同时发送控制信息,这时FIFO缓冲器会缓存这些控制信息,调试配置单元依次检查并读取N个FIFO缓冲器中缓存的控制信息。在非调试模式下,在整个多核心处理器复位以后,调试配置单元从非易失性存储器读取程序并且配置到相应的处理器集合。在调试模式下,调试配置单元从调试端口获取开发工具发出的消息数据,配置或者控制整个多核心处理器的运行,同时收集从各处理器集合返回的调试跟踪等控制信息,并且通过调试端口发送到开发工具。当调试配置单元要配置控制处理集合中的从处理器时,调试配置单元只与处理器集合中的主处理器通信,通过主处理器间接配置控制从处理器,因为从处理器的指令执行由主处理器控制并且主处理器可以读取从处理器的存储和配置单元。
所述的交换单元包括X套输入输出端口;每一套输入输出端口的输出端口接一个多输入与门的输出端;所述多输入与门的X-1路输入端对应另外X-1套输入输出端口的输入端口;每一套输入输出端口的输入端口均接有一个交换路由控制器;每一个交换路由控制器输出端接和该交换路由控制器对应的输入输出端口之外的X-1套输入输出端口中的输出端复用器的控制端,输出端复用器的的一个输入端是全‘1’,另一个输入端是总线输入,输出端复用器的输出端口连接到多输入与门的输出端口,X取值为5。
路由控制器检测全局数据总线输入的数据类型,如果总线中传输的是路由信息,路由控制器取出路由信息中和本交换单元对应的X-1比特路由信息,X-1对应全局交换单元中除和路由控制器对应的输入输出端口之外的X-1套输入输出端口中的输出端。每1比特的路由信息控制一个复用器,复用器的一个输入端是全‘1’,另一个输入端是总线输入。复用器的输出端口连接到多输入与门的输入端口,路由控制器通过控制复用器来控制与之对应的输入端口连接到其它的X-1套输入输出端口的输出端口。
所述的全局数据总线的输出总线及输入总线的总线宽度都是D+T比特,其中D比特用来传输数据信息,D取值为32,另外T比特用来传输数据信息的类型,T取值为3。其中D比特用来传输数据信息,另外T比特用来传输数据信息的类型,用来区分全局总线中传输的是数据,读写地址还是路由信息等。调试配置单元通过全局总线发送调试或配置等控制信息到处理器集合及处理器集合返回控制信息给调试配置单元的时,首先发送路由信息,路由信息是固定的,因为调试配置单元和处理器集合之间的物理位置是固定的。然后发送地址信息,不同的地址空间对应不同的控制信息。当处理器集合之间通过全局总线进行普通的数据通信时,首先发送路由信息,然后发送数据信息,路由信息是由应用程序开发工具编译用户程序后自动生成,并且存储在处理器集合的主处理器中。
所述的主处理器包括控制使能信号输入端口、全局总线端口、局部总线接口、配置与控制模块、延迟匹配单元、主处理器复用器、程序存储器,数据存储器、寄存器文件、取指令单元、指令译码单元、读寄存器单元、执行单元和写寄存器单元;主处理器的配置和控制模块依次通过第一主处理器复用器和数据写总线与从处理器通信连接;取指令单元与程序存储器连接,主处理器通过局部总线中的数据写总线和数据读总线与从处理器通信连接;主处理器通过全局总线与另外的处理器集合通信;全局总线输入的如果是从调试配置单元来的控制信息,经过延迟匹配单元后进入配置与控制模块,如果需要配置从处理器,主处理器通过局部数据写总线配置从处理器,因为主处理器可以读取从处理器的所有存储单元。主处理器的配置和控制模块发送到从处理器的控制信号经过复用器和数据写总线发送到从处理器;全局总线输入的如果是从另外的处理器集合来的数据信息,数据信息将被执行单元处理。控制信息和数据信息由控制使能信号区分,在各自不同的时隙里面传输。取指令单元从程序存储器读取指令然后根据程序流控制发送指令到指令译码单元或者通过指令总线发送到从处理器。主处理器通过局部总线中的数据写总线发送数据到从处理器。然后通过数据读总线把从处理器处理之后的数据读取到主处理器或者通过全局总线发送到另外的处理器集合。
所述的从处理器包括局部总线接口和一些处理器通用的结构如数据存储器,寄存器文件,指令译码单元,读寄存器单元,执行单元和写寄存器单元等。从处理器可以没有程序存储器和取指令单元。主处理器经数据写总线发送数据到从处理器。主处理器经指令总线发送超长指令字到从处理器,然后直接经过指令译码单元译码然后被执行单元执行。编码在超长指令字中的程序流控制指令可以告知从处理器是否要执行主处理器发送来的超长指令字,这样主处理器就可以控制超长指令字是否在从处理中执行,可以控制超长指令是在所有从处理器中执行或者仅在指定的从处理器中执行。数据读总线把一个处理器集合中的所有从处理器按顺序串起来,前一个从处理器的数据读总线输出连接到当前从处理器的数据读总线输入,当前从处理器的数据读总线输出连接到下一个从处理器的数据读总线输入,这样处理器集合中的从处理器发送到主处理器的数据复用在一起,连接到主处理器的数据读总线输入端。
所述局部总线包括用于主处理器读写从处理器的数据存储器的数据读总线和数据写总线、用于主处理器发送超长指令字到从处理器的指令总线,还包括将处理器集合中的多个从处理器连成一个双向拓扑环的寄存器通信总线,第一寄存器通信总线传输来自于拓扑环中左边相邻从处理器的寄存器通信数据,第二寄存器通信总线传输来自于拓扑环中右边相邻从处理器的寄存器通信数据,第三寄存器通信总线发送寄存器通信数据到拓扑环中左右相邻的从处理器。拓扑环中的左右关系就是按照逆时针方向的前后关系。
所述主处理器和所述从处理器都是超长指令字处理器(VLIW),有F个并行的功能单元,每个指令周期可以同时执行P条指令,P条指令分别在F个功能单元中的P个功能单元中执行,F可能远远大于P。
所述局部总线中的指令总线的宽度是V+1比特,其中V比特用来传输超长指令字,与超长指令字的最大长度相同,为64比特,另外的1比特为指令有效位;所述局部总线中的数据写总线及数据读总线的宽度为D+T比特,其中D比特用来传输数据信息,D取值为32,另外T比特用来传输数据信息的类型,T取值为3。
5套输入输出端口分别连接上边相邻交换单元的输入输出端口、连接下边相邻交换单元的输入输出端口、连接左边相邻交换单元的输入输出端口、连接右边相邻交换单元的输入输出端口和连接相邻主处理器单元的输入输出端口。
所述超长指令字中每个功能单元中指令的编码格式和长度可能不同,比如某一些功能单元中指令的长度可能是16,另一些功能单元中指令的长度可能是21,这样超长指令字的编码和长度是灵活可变的,比如超长指令字的长度可能是64比特、48比特、32比特、16比特、8比特等。
所述主处理器和所述从处理器中F个功能单元通过交换网络访问寄存器文件的P个读写端口,读写端口的数量P与超长指令字中可同时执行的指令数相同。读寄存器返回的结果与功能单元的执行结果通过交换网络重定向到功能单元作为操作数。
有益效果:
与现有的技术相比,本发明在采用混合式多核心架构的基础上,设计一种具有超长指令字处理器阵列的多核心处理器,让每一个处理器集合中的多核心之间能够无缝的协作,从而更好地完成单指令多数据(SIMD)或者多指令多数据(MIMD)的并行处理工作。传统的多核心处理器架构中处理器集合中的处理器单元互相之间通过访问同一块共享内存来互相协作,这样不容易改变处理器集合中处理器单元的个数,同时处理器集合中处理器单元之间的同步也比较困难,而且如果要处理数字信号处理中的单指令多数据运算,各个处理器单元都要存储同样的指令,这样浪费了程序存储器。本发明在一个处理器集合中设置一个主处理器和若干从处理器,主处理器和从处理器之间及从处理器和从处理器之间通过固定的总线结构连接,从处理器的个数很容易扩展。从处理器执行的指令和数据都来自于主处理器。主处理器可以读写从处理器的数据存储器。对于单指令多数据的运算,主处理器发送不同的数据到不同的从处理器上,发送同样的超长指令字到各从处理器上,从处理器之间还可以通过寄存器通信总线快速的交换数据,这样处理器集合中的各从处理器执行同样的超长指令字,处理不同的数据,数据处理完之后,主处理器把从处理器处理完之后的数据收集起来,发送到另外的处理器集合,由此可见处理器集合中各从处理器的协作是无缝的,不同处理器单元之间的同步很容易。另外传统的多核心处理器中的配置和控制信息往往通过专门的配置和控制总线传输,然而配置和控制通信往往和普通的数据通信不是同时发生,所以普通的数据通信和控制通信可以时分复用,这样节省了总线资源,本发明的多核心处理器就是用数据总线来传输控制信息,这样在保证功能完整性的同时节省了总线资源。本发明中的超长指令字的编码方法和与之对应的多功能单元访问寄存器文件的方法相比较传统的方法更灵活,这样带来更好的并行处理器能力。传统的方法是把多个功能单元分成几组,每组连接一个寄存器文件读写端口,这样同组中的不同功能单元中的指令就不能同时执行。本发明中多个功能单元通过交换网络来访问寄存器文件,这样任意的多个功能单元中的指令都能编码在同一个超长指令字中,即可同时执行,指令译码单元通过译码超长指令字中的配置信息很容易来控制寄存器文件访问交换网络。
附图说明
图1为多核心处理器的方框图;
图2为图1中总线连接关系的局部放大图;
图3为调试配置单元的内部结构示意图;
图4为全局总线交换单元的内部结构示意图;
图5为主处理器内部结构示意图;
图6为从处理器内部结构示意图;
图7为主处理器和从处理器共同采用的寄存器文件访问及功能单元执行结果重定向交换网络的简化框图;
图8为处理器的超长指令字的编码方法示意图;
图9为图7中功能单元访问寄存器文件的交换网络的示意图;
图10为图7中功能单元读寄存器文件返回结果与功能单元执行结果重定向到功能单元作为指令操作数的交换网络示意图。
具体实施方式
以下将结合图和具体实施过程对本发明做进一步详细说明。
实施例1:
图1中包括多个处理器集合1,所述处理器集合包括一个主处理器2及若干从处理器3,主处理器和从处理器及从处理器和从处理器之间由局部总线4连接,处理器集合之间以及处理器集合与调试配置单元之间由全局总线5及交换单元(SWITCH)6连接,在多核心处理器上可能还集成了一些外设或者硬件加速单元,图1中没有示出,这些外设或者硬件加速单元也可以通过全局总线5与调试配置单元和处理器集合相连。
主处理器2控制从处理器3执行的指令及数据,从处理器可以没有程序存储器和取指令单元,主处理器经局部总线4中的指令总线发送超长指令字到从处理器3,数据由主处理器2的数据存储器经局部总线4中的数据总线到达从处理器3,数据或者由全局数据总线5经主处理器2及局部总线4中的数据总线到达从处理器3。一个处理器集合1中的所有从处理器3在主处理器2的控制和协调下一起完成单指令多数据(SIMD)或者多指令多数据(MIMD)的任务。比如我们要计算x1,x2,x3,x4,x5,x6,x7,x8奇偶相邻位置的和,即x1+x2,x3+x4,x5+x6,x7+x8。主处理器通过局部总线中的数据写总线把x1,x2发送到第一个从处理器中,x3,x4发送到第二个从处理器中,x5,x6发送到第三个从处理器中,x7,x8发送到第四个从处理器中,然后通过局部总线中的指令总线发送加法指令到所有从处理器执行,这样四个从处理器同时计算出四个结果,四个结果通过数据总线返回给主处理器,这样我们就完成了单指令多数据计算。如果我们要同时计算x1+x2,x3+x4,x5+x6,x7+x8和x1*x2,x3*x4,x5*x6,x7*x8,和前面类似,首先主处理器分发数据到从处理器,然后主处理器发送超长指令字到从处理器,超子指令字中含有并行执行的加法指令和乘法指令,这样就可以完成多指令多数据的任务。如果我们要计算x1+x2,x2+x3,x3+x4,x4+x5,x5+x6,x6+x7,x7+x8,和前面类似,首先主处理器分发数据到从处理器,然后主处理器发送加发指令到各从处理器,得到x1+x2,x3+x4,x5+x6,x7+x8,然主处理器发送寄存器通信指令到从处理器,从处理之间通过局部总线中的寄存器通信总线交换数据,交换之后,第一个从处理器中的数据是x2,x3,第二个从处理器中的数据是x4,x5,第三个从处理器中的数据是x6,x7,第四个从处理器中的数据是x8,x1,主处理器然后发送加发指令到各从处理器,从处理器执行加法指令后得到结果x2+x3,x4+x5,x6+x7,x8+x1,然后从处理器把计算结果x1+x2,x2+x3,x3+x4,x4+x5,x5+x6,x6+x7,x7+x8返回给主处理器。
图2是图1中总线连接关系的放大图,示出了处理器集合1内部及处理器集合之间总线连接关系。主处理器2-A可以通过全局数据总线中的输出总线5-1向外发送数据信息,也可以通过全局数据总线中的输入总线5-2从外部接收数据信息。主处理器2-A可以通过局部总线中的指令总线4-1发送超长指令字到从处理器3-A、...、3-D。局部总线中指令总线4-1的宽度是65比特,其中64比特用来传输超长指令字,另外1比特为指令有效位。局部总线中的数据写总线4-2和数据读总线4-3以及全局总线5的总线宽度都是35比特,其中32比特用来传输数据信息,另外3比特用来传输数据信息的类型,表中给出数据写总线4-2和数据读总线4-3及全局总线所传输的数据信息的类型:
传输的数值 | 数据信息的类型 |
000 | 数据无效 |
001 | 数据有效 |
010 | 写数据地址 |
011 | 读数据地址 |
100 | 预留 |
101 | 预留 |
110 | 预留 |
111 | 全局总线交换路由信息 |
当全局总线中传输的是地址时,地址的具体格式是0到3比特是处理器集合所在的行;4到7比特是处理器集合所在的列;8到11比特是处理器集合中处理器的编号(主处理器编号是0,其它从处理器从1开始依次累加);12到15代表配置的类型,有程序存储器,数据存储器,寄存器文件,特殊寄存器等存储单元或者是发送消息或命令;16到31是存储或配置单元的地址,如果不是配置存储单元而是发送消息或命令,这16比特代表消息或命令的类型。
局部总线中的地址的格式和全局总线中地址的格式不同。局部总线中数据写总线中传输的32位写地址或读地址的格式一样:0到1比特是代表写数据类型,“00”代表32位写数据中只有低8位有效,“01”代表只有低16位有效,“10”代表32位数据有效;2到3比特代表数据分发的模式,“00”代表广播模式,“01”代表分布模式,“10”代表选择模式;4到7比特代表从处理器在处理器集合中的编号;8到15代表采用分布式数据分发时,数据分发的单位,是写数据类型的倍数;16到31比特代表从处理器中存储单元的地址。
主处理器2-A可以通过局部总线中的数据写总线4-2存储数据到从处理器3-A、...、3-D的数据存储器。主处理器首先通过数据写总线4-2发送写地址信息到各从处理器,各从处理器解析地址的具体含义,从处理器首先解析地址信息中的2-3位,如果数据分发是广播模式,表示接下来数据写总线中传输的每一个写数据,从处理器都要存储到地址信息中16到31位所指定的地址。如果数据分发是分布模式,每个从处理器中有一个写数据计数器,计数器从零开始计数,如果计数器的当前输出和从处理器的编号一样(从处理器3-A的编号是0,从处理器3-B的编号是1,依此类推),表明数据写总线的数据要存储到当前从处理器的数据存储器,否则不存储,因为数据写总线的数据是要存储到别的从处理器上。不管数据写总线上的有效数据是不是要存储到当前从处理器的存储器,一旦数据写总线上收到一个数据分发的单位,所有从处理的计数器都要加1并且模上处理器集合中从处理器的总数。如果数据分发的模式是选择模式,主处理器发送过来的数据只存储到地址信息的4到7比特所指定的从处理器。
主处理器2-A也可以通过局部总线中的数据读总线4-3读出从处理器3-A、...、3-D的数据存储器中的数据,数据读总线4-3的宽度是也是35比特,其中32个比特返回读出的数据,3个比特代表数据类型。读数据的地址通过数据写总线4-2发送到所有从处理器。数据读总线4-3把从处理器3-A、...、3-D从按顺序串起来,从处理器3-A是头,从处理器3-D是尾,然后连接到主处理器2-A,这样除从处理器3-A之外,其它从处理器的数据读总线的输入端4-3-1连接到前一丛处理器数据读总线的输出端4-3-2,除从处理器3-D之外,数据读总线的输出端连接到下一个从处理器数据读总线的输入端。读数据只有两种模式,分布模式和选择模式。如果是分布模式,和写数据类似有一个读数据计数器,从零开始计数,如果计数器的当前输出和从处理器的编号一样,则从存储器中读取一个数据单位,然后输出到数据读总线的输出端4-3-2,如果计数器的当前输出和从处理器的编号不一样,则把数据读总线输入端4-3-1的数据直接输出到数据读总线的输出端4-3-2,不管读数据计数器的当前输出和从处理器的编号是不是一样,只要经过了一个数据单位传送的时间,所有从处理器中的读数据计数器都增加1并且模上处理器集合中从处理器的总数。读数据的选择模式和写数据的选择模式一样,比较简单,只有读数据地址所选择的从处理器才向数据读总线上发送数据。
所述处理器集合中的所有从处理器3-A、...、3-D通过寄存器通信总线4-4...4-6连接成一个双向拓扑环,寄存器通信总线的宽度是32比特。从处理器可以和拓扑环中左右相邻(即拓扑环中按逆时针方向的前后关系)的从处理器交换数据信息。例如从处理器3-A左边相邻的从处理器3-D通过寄存器通信总线4-4发送数据到从处理器3-A,从处理器3-A右边相邻的从处理器3-B通过寄存器通信总线4-5发送数据到从处理器3-A,从处理器3-A通过寄存器通信总线4-6发送数据到左相邻的从处理器3-D和右相邻的从处理器3-B。主处理器2-A和主处理器2-B之间通过全局总线5以及全局总线交换单元6通信。
图3示出了调试配置单元的简化框图。调试配置单元9有N套输入输出端口通过全局总线5分别连接到多核心处理器的N列处理器集合,每套全局总线的输入端都连接到一个FIFO 9-5上,FIFO的宽度等于总线宽度,N个FIFO的非空(not empty)状态线9-6组合在一起连接到调试控制状态机9-3,调试控制状态机9-3向N个FIFO发出读使能信号9-7,FIFO的输出端连接到有N个输入端口的复用器9-4的输入端口。处理器集合向调试配置单元发送控制信息一股都是因为调试配置单元发出了读取处理器集合的命令,在这种情况下,某一时刻只可能有一个处理器集合向调试配置单元发送控制消息。如果处理器集合有突发控制信息要发送到调试配置单元,比如遇到中断,错误,在这种情况下,有可能有多个处理器集合向调试配置单元同时发送控制信息,这时FIFO会缓存这些控制信息,调试控制状态机9-3依次检查并读取N个FIFO中缓存的控制信息。在非调试模式下,在整个多核心处理器复位以后,调试配置单元从非易失性存储器读取程序并且配置到相应的处理器集合。在调试模式下,调试配置单元从调试端口10获取开发工具发出的消息数据,配置或者控制整个多核心处理器的运行,同时收集从各处理器集合返回的调试跟踪等控制信息,并且通过调试端口发送到开发工具。调试配置单元的某些配置和状态信息存储在调试寄存器9-2中.当调试配置单元要配置控制处理集合中的从处理器时,调试配置单元只与处理器集合中的主处理器通信,通过主处理器间接配置控制从处理器,因为从处理器的指令执行由主处理器控制并且主处理器可以读取从处理器的存储和配置单元。
图4示出全局总线交换单元的一种实现方案。对从上下左右全局总线交换单元和主处理器来的输入分别进行交换路由控制,比如对主处理器来的输入5-1,交换路由控制6-1将控制四个复用器6-3、...、6-6,复用器有两个输入端口,每个端口的位宽和全局总线宽度一样,是35位,一个端口接全局总线输入,另一个端口接全‘1’,即35个‘1’。每1比特路由信息来控制一个复用器,路由信息是‘0’选择输出全‘1’,路由信息是‘1’选择输出全局总线输入5-1。复用器的输出端接一个与门6-2的输入端,与门有4个输入端口,每个端口位宽和全局总线宽度一样是35位。1比特路由信息控制复用器6-3代表是否选择输出到上边全局总线交换单元,1比特路由信息控制复用器6-4代表是否选择输出到下边全局总线交换单元,1比特路由信息控制复用器6-5代表是否选择输出到左边全局总线交换单元,1比特路由信息控制复用器6-6代表是否选择输出到右边全局总线交换单元,这样需要4个比特的交换路由信息,如果全局总线上的控制信息或数据信息要跨越N个全局总线交换单元,那么总共需要4N个比特的全局总线交换路由信息,控制信息和数据信息每经过一个全局总线交换单元,和全局总线输入端相连的路由控制器首先取出针对本全局总线交换单元的交换路由信息,然后传输剩下的4N-4个比特交换路由信息到下一个全局总线交换单元。表中示出不同输入总线来源的控制,U代表上边全局总线交换单元,D代表下边全局总线交换单元,L代表左边全局总线交换单元,R代表右边全局总线交换单元,M代表主处理器。
当处理器集合之间发送数据信息时,路由信息由应用程序开发工具编译用户应用程序自动生成。当调试配置单元发送控制信息到处理器集合时,经过所有全局总线交换单元的交换路由信息总是“1001”,因为控制信息总是从总线交换单元的上方到达,然后输出到同列下方的总线交换单元,同时输出到主处理器。当处理器集合向调试配置单元发送控制信息时,经过所有全局总线控制单元的交换路由信息总是“1000”,因为控制信息总是由主处理器来,然后从交换单元的上边输出。
图5示出主处理器一种实现方案。主处理器包括控制使能信号输入端口、全局总线接口、局部总线接口、配置与控制模块2-1、延迟匹配单元2-2和复用器2-3、2-4和一些处理器通用的结构如程序存储器2-5,数据存储器2-6,寄存器文件2-7,取指令单元2-8,指令译码单元2-9,读寄存器单元2-10,执行单元2-11和写寄存器单元2-12等。主处理器中的配置与控制模块2-1负责与调试配置单元9的通信以及配置和控制主处理器和从处理器。调试配置单元9通过发送控制使能信号11到主处理器告知全局总线5-1中传输的是数据信息还是控制信息,控制使能信号输入是1比特,调试配置单元引出N列控制使能信号线,每一根控制使能信号线对应一列处理器集合,处理器集合中的主处理器与控制信号线相连。当控制使能信号11为高电平时,配置和控制模块2-1从全局总线5-1上读取信息并且解读为控制信息,根据控制信息的具体内容来决定如何配置和控制主处理器。由于处理器阵列中主处理器与调试配置单元的距离远近不同,所以通信的延迟也不一样,为了使调试配置单元到所有主处理器的控制信息同时到达,处理器中有一个延迟匹配单元2-2,根据主处理器的物理位置和总线5-1中传输的是控制信息与否来配置匹配延迟单元中的延迟,如果总线5-1中传输的是数据信息,不需要匹配延迟,即匹配延迟是0。对于M*N的处理器集合阵列。假设全局总线每跨越一个全局总线交换单元延迟是1,那么每一列处理器集合中的最后一行的匹配延迟是0,倒数第二行的匹配延迟是1,依此类推,第一行的匹配延迟是M-1。主处理器中的配置控制模块2-1可以经过全局总线5-2返回控制信息给调试配置单元。全局数据总线5-2可以传输主处理器的数据或控制信息,传输的具体信息通过复用器2-3来选择,如果控制使能信号输入为‘1’,表示正在进行控制通信,那么复用器选择控制信息,控制使能信号输入为‘0’选择数据。主处理器的配置控制模块2-1还负责配置控制从处理器,配置控制从处理器和读写从处理器的存储单元的过程一样。取指令单元2-8从程序存储器2-5读取指令然后根据程序流控制发送指令到指令译码单元2-9或者通过指令总线4-1发送到从处理器。主处理器通过局部总线中的数据写总线4-2发送数据到从处理器。然后通过数据读总线4-3把从处理器处理之后的数据读取到主处理器或者通过全局总线5-2发送到另外的处理器集合。
图6示出从处理器的一种实现方案。从处理器包括局部总线接口和一些处理器通用的结构如数据存储器3-6,寄存器文件3-7,指令译码单元3-9,读寄存器单元3-10,执行单元3-11和写寄存器单元3-12等。从处理器可以没有程序存储器和取指令单元。主处理器经数据写总线4-2发送数据到从处理器。主处理器经指令总线4-1发送超长指令字到从处理器,然后直接经过指令译码单元3-9译码然后被执行单元3-11执行。编码在超长指令字中的程序流控制指令可以告知从处理器是否要执行主处理器发送来的超长指令字,这样主处理器就可以控制超长指令字是否在从处理中执行,可以控制超长指令是在所有从处理器中执行或者仅在指定的从处理器中执行。数据读总线4-3把一个处理器集合中的所有从处理器按顺序串起来,前一个从处理器的数据读总线输出连接到当前从处理器的数据读总线输入4-3-1,当前从处理器的数据读总线输出4-3-2连接到下一个从处理器的数据读总线输入,这样处理器集合中的从处理器发送到主处理器的数据复用在一起,连接到主处理器的数据读总线输入端。
图7示出了主处理器和从处理器共同采用的寄存器文件访问及功能单元执行结果重定向交换网络的简化框图。超长指令字处理器中可能有多个功能单元7-1、...、7-5,可能分别对应算术逻辑单元(ALU),数据存取单元(LSU),乘累加单元(MAC),通信单元(COM)和程序流控制单元(FCU)。多个功能单元中7-1、...、7-5可以并行执行多条指令,即超长指令字中包含多条可并行执行的指令。由于指令总线7-7的宽度可能受限,超长指令字的最大长度一股就是指令总线7-7的宽度,所以超长指令字的长度也可能受限,虽然处理器中有F个并行的功能单元,但是超长指令字中最多有P条可并行执行的指令,F有可能远远大于P。这样处理器中虽然有F个独立的功能单元,但是每个机器周期同时只有P个功能单元可并行执行指令,这样也就可能最多只有P个功能单元需要同时访问寄存器文件,这样寄存器文件可以只有P个读写端口。处理器中的多个功能单元7-1、...、7-5通过一个交换网络7-8连接到寄存器文件7-9的读写端口7-10。指令译码单元7-6根据超长指令字中所包含的指令可以控制交换网络7-8。读寄存器文件7-9的返回结果和功能单元7-1、...、7-5的执行结果一起通过交换网络7-8重定向到功能单元7-1、...、7-5作为指令操作数。
图8示出了超长指令字处理器结构的超长指令字的编码方法。超长指令字8-1最多可包含V个比特。超长指令字中最多包含P条指令8-3。超长指令字中P条指令可能有不同的指令格式和长度。超长指令字8-1中包含一个配置和控制区域8-2,配置区域可能包含F+1个比特,这样F+1个配置比特可以表明超长指令字中包含了F个功能单元中的那些功能单元的指令以及是否有一个指令带长立即操作数。8-4、...、8-10示出了一个具有超长指令字编码格式8-1的编码实例,其中指令总线的宽度是64比特,5个功能单元可能是算术逻辑单元(ALU),数据存取单元(LSU),乘累加单元(MAC),通信单元(COM)和程序流控制单元(FCU),这些功能单元的指令格式分为两种,一种是21比特,6比特是操作码(OPCODE),5比特是第一个源操作数(SRCA),5比特是第二个源操作数(SRCB),5比特是目标操作数(DST);一种是16比特,6比特是操作码(OPCODE),5比特是第一个源操作数(SRCA),5比特是第二个源操作数,也是目标操作数(DST);长立即数是16比特。超长指令字中最多可编码3条并行指令。根据超长指令字中并行指令的多少不同,超长指令字的长度可以是64比特,48比特,32比特,16比特和8比特。
图9示出了图7中寄存器文件访问交换网络的实现方案。如果处理器中有5个功能单元7-1、...、7-5,但是只有3个寄存器文件读写端口7-10A,7-10B,7-10C,根据表格中三个典型的交换控制我们可以得出寄存器文件访问交换控制算法:功能单元7-1、...、7-3可以访问端口7-10A,功能单元7-2、...、7-4可以访问端口7-10B,功能单元7-3、...、7-5可以访问端口7-10C。指令译码单元通过译码超长指令字的配置信息8-2可以生成寄存器访问交换控制信息。
超长指令字经过指令译码后指令执行可能至少经过三级流水线(Pipeline):读寄存器流水(EX0/RR),执行流水(EX1),写寄存器流水(EX2/RW)。7-1-0、...、7-5-0代表功能单元7-1、...、7-5的读寄存器流水,7-1-1、...、7-5-1代表功能单元7-1、...、7-5执行流水,7-1-2、...、7-5-2代表功能单元7-1、...、7-5的写寄存器流水。功能单元读寄存器流水7-1-0、...、7-5-0输出的读寄存器控制信息7-11经过选择器7-12连接到寄存器文件7-9的读端口7-13上,7-14是读寄存器文件的返回结果。功能单元写寄存器流水7-1-2、...、7-5-2输出的写寄存器控制信息7-15经过选择器7-16连接到寄存器文件的写端口7-17上。
图10示出了图7中读寄存器返回结果和功能单元执行结果重定向交换网络的实现方案。根据寄存器文件访问控制的算法,相应的读寄存器结果返回交换控制算法是:控制单元7-1的读寄存器结果可能来自于端口7-10A,控制单元7-2的读寄存器结果可能来自于端口7-10A和7-10B,控制单元7-3的读寄存器结果可能来自于端口7-10A和7-10B及7-10C,控制单元7-4的读寄存器结果可能来自于端口7-10B和7-10C,控制单元7-5的读寄存器结果可能来自于端口7-10C。读寄存器文件7-9的返回结果7-14与功能单元执行流水7-1-1、...、7-5-1输出的结果7-18和功能单元写寄存器流水7-1-1、...、7-5-1输出的结果7-19一同经过选择器7-20后到达功能单元作为指令操作数7-21。
实施例2
图1中全局总线5既可以传输处理器集合之间多点对多点的数据通信,也可以传输调试配置单元与处理器集合之间的配置、调试及跟踪等控制信息。多核心处理器系统可以工作在调试模式和非调试模式两种模式。不管是调试模式还是非调试模式,在多核心处理器开始运行代码之前,调试配置单元9负责配置整个多核心处理器上所有处理器集合中主处理器的程序存储器,即把需要在处理器集合中执行的代码载入到主处理器的程序存储器中。同时调试配置单元还有可能需要初始化处理器集合中主处理器和从处理器的寄存器文件,数据存储器或其它特殊寄存器。
在多核心处理器上电复位之后,进入空闲状态。如果是调试模式,调试配置单元可以开始从调试端口10接收从开发工具来的消息并向处理器集合转发。如果是非调试模式,调试配置单元从片外或者片内集成的非易失性存储器中读取程序等配置信息配置处理器集合。这里把配置信息和调试跟踪信息都称作控制信息,是为了和处理器集合之间传递的数据信息区分。调试配置单元在向处理器集合发送控制信息的过程中,控制使能信号置‘1’,发送控制信息的过程如下:
步骤d1.交换路由信息,值总是“10011001100110011001100110011001”,每经过一个全局总线交换单元需要4比特,如果经过的总线交换单元的个数大于8,可能要重复多次步骤d1。
步骤d2.写地址(包含处理器集合所在的行和列,处理器集合中的主处理器还是从处理,配置存储单元还是发送消息命令,存储单元的地址或消息命令的类别等信息)。如果调试配置单元希望读出处理器集合中存储单元的内容,这里则发送读地址。然后调试配置单元等待处理器集合的反馈。处理器集合中的主处理器执行步骤u1到步骤u4。
步骤d3.写数据(配置程序存储器的代码,配置其它存储单元的数据,消息和命令的具体内容)
步骤d4.跳转到步骤d3,重复多次,直到此项配置结束
步骤d5.跳转到步骤d2,重复多次,直到所有需要配置的处理器集合配置结束。
如果图5中控制使能信号11为高,则表示调试配置单元目前正在往处理器集合发送控制信息,主处理器进入配置或者调试等待状态,如果全局总线5-1发送的是写地址并且指向本主处理器则主处理器进入配置或者调试状态,等待配置数据或者命令。如果地址指向同一处理器集合中的从处理器,则主处理器也负责配置从处理器,因为主处理器可以读写从处理器所有的存储配置单元。
整个多核心处理器配置结束之后,如果是非调试模式,多核心处理器则进入运行状态。如果是调试模式,多核心处理器进入空闲等待状态。调试配置单元可能还会发送设置软中断指令到处理器集合,发送过程如同步骤d1到步骤d2。调试配置单元然后可能发送执行指令(RUN)或者单步执行指令(STEP)到处理器集合,发送过程如同步骤d1到步骤d2。如果某个处理器集合中的主处理器执行程序的过程中碰到了软中断,则停在软中断位置,然后向调试配置单元发送消息告知碰到了软中断,处理器集合向调试配置单元发送控制信息的过程是:
步骤u1.交换路由信息,值总是“10001000100010001000100010001000”,每经过一个全局总线交换单元需要4比特,如果经过的总线交换单元的个数大于8,可能要重复多次步骤u1。
步骤u2.读地址(这里是表明控制信息来源的地址)
步骤u3.读数据
步骤u4.根据步骤u2中地址信息的具体含义,可能重复多次步骤u3
主处理器发送完控制信息之后重新进入空闲等待状态。这时调试配置单元可能需要读出处理器集合中的存储单元,这时调试配置单元执行步骤d1和步骤d2,主处理器执行步骤u1到步骤u4。这样调试配置单元只要执行步骤d1到步骤d5,处理器集合中的主处理器执行步骤u1到步骤u4,就可以完成了调试配置单元和处理器集合之间的所有可能的控制通信。
实施例3
按照图2中所示的总线设置方式包括全局总线5,全局总线交换单元6和局部总线4。一个处理器集合1-A中的所有从处理器3-A、...、3-D在主处理器2-A的控制和协调下共同来完成单指令多数据或者多指令多数据的任务,同时不同的处理器集合可以处理不同的任务。为了使多核心处理器的处理能力增加,或者增加每个处理器集合中的从处理器的个数,也可以增加处理器集合的个数。处理器集合中从处理器个数的增加不改变总线的结构和主处理器及从处理器的总线输入输出端口。增加处理器集合的个数不改变全局总线和全局总线交换单元的结构,所以本发明的多核心处理器的处理器能力很容易扩展。
假如要对数字信号进行滤波,并且调整增益,数学表达式如下
假定输入数据x和增益调整系数g及滤波器系数c都是16比特的整数,共有8个抽头,即L=8,数据x的长度是64。下面说明本发明的多核心处理器如何进行这样的数字信号处理器。
我们可以把这个运算分成两个任务,任务1是进行滤波,任务2是计算乘法。当编译器编译这两个任务时会自动选择两个处理器集合来完成,当然也可以由程序员明确指定处理器集合。假如这两个任务将在处理器器集合1-A和处理器集合1-B中分别完成,数据都已经存储在主处理器2-A的数据存储器当中。任务1和任务2的代码分别存储在主处理2-A和主处理器2-B的程序存储器中,主处理器负责从程序存储器当中取出超长指令字,根据编码在超长指令字中的程序流控制指令来控制超长指令字在主处理中或者是发送到从处理器执行。以下是任务1和任务2可能的伪代码
任务1的伪代码:
步骤1.通过局部数据写总线4-2分发滤波输入数据x到从处理器3-A、...、3-D,数据类型是16比特,分布式,数据单位是1,即1个16比特,从处理器数据存储器的起始地址是0。
步骤2.通过局部数据写总线4-2分发滤波器系数c到从处理器3-A、...、3-D,数据类型是32比特,广播式,从处理器数据存储器的起始地址是256。
步骤3.经全局总线5-1发送增益调整系数g到处理器集合1-B,路由信息是“00010100”,“0100”是经过交换单元6-A用到的路由信息,“0001”是经过交换单元6-B用到的路由信息。
以上数据通信都可以设置专门的直接内存访问DMA来完成。
步骤5.经指令总线4-1发送超长指令字到所有从处理器。超长指令字是EXEB/LOADDxaddr,0,r[0:1],本条超长指令字中有两条指令,分别来自程序流控制单元(FCU)和存取单元(LSU)。指令EXEB是程序流控制指令,代表本条超长指令字及接下来的超长指令字都在所有从处理器中执行(广播执行模式);LOADD从基地址xaddr,地址偏移量为0,读取两个16比特数到寄存器r0和r1,这里假定每个寄存器是16位比特。这样从处理器3-A读取了x[0]和x[4],从处理3-B读取了x[1]和x[5],从处理器3-C读取了x[2]和x[6],从处理3-D读取了x[3]和x[7]。
步骤7.发送超长指令字到所有从处理器。超长指令字是ADD xaddr,6,xaddr/LOADWxaddr,2,r2,本条超长指令字中有两条指令,分别来自算术逻辑单元(ALU)和数据存取单元(LSU),LOADW从基地址xaddr,地址偏移量为2,读取一个16比特数到寄存器r2。这样从处理器3-A读取了x[8],从处理3-B读取了x[9],从处理器3-C读取了x[10],从处理3-D读取了x[11]。加法指令更新基地址xaddr
步骤8.发送超长指令字到所有从处理器。超长指令字是ADD caddr,2,caddr/LOADWcaddr,0,r10,本条超长指令字中有两条指令,分别来自算术逻辑单元(ALU),和存取单元(LSU)。从处理器读取滤波器系数c[l],并且更新基地址caddr。
步骤9.发送超长指令字到所有从处理器。超长指令字是MUL r0,r10,acc,本条超长指令字中只有一条指令,来自乘累加单元(MAC),数据乘上滤波器系数,结果存到累加寄存器acc。
步骤10.发送超长指令字到所有从处理器。超长指令字是COPY r2,r0/EXES 0,本条超长指令字中有两条指令,分别来自算术逻辑单元(ALU)和程序流控制单元(FCU)。程序流控制指令EXES代表本超长指令字及接下来的超长指令字都只在从处理器0中执行。COPY指令拷贝r2的内容到r0。
步骤10.发送超长指令字到所有从处理器。超长指令字是EXEB/RCOML r2,本条超长指令字中有两条指令,分别来程序流控制单元(FCU)和通信单元(COM)。RCOML指令代表通过寄存器通信总线4-6向拓扑环中左边相邻的从处理器发送r2,然后读取拓扑环中右边相邻的从处理器通过寄存器通信总线发来的数据,存储在r2中。EXEB指令代表本条超长指令字及接下来的超长指令字都在所有从处理器中执行
步骤11.发送超长指令字到所有从处理器。超长指令字是LOAD caddr,0,r10/RCOML2mod,r[0:1],本条超长指令字中有两条指令,分别来自存取单元(LSU)和通信控制单元(COM)。寄存器通信指令RCOML2按照mod指定的模式通过寄存器通信总线4-6向拓扑环中左边相邻的从处理器发送r[0:1]的内容,然后读取拓扑环中右边相邻的从处理器通过寄存器通信总线发来的数据,存储在r[0:1]中。发送的模式mod可以定义很多种,比如在特定的从处理器中或者所有的从处理器中,当存储接收到的寄存器通信数据时,r0和r1的内容互相交换等。这里我们指定从处理器3-D存储右边相邻从处理器3-A发来的数据时,r0和r1的内容互相交换。
步骤12.发送超长指令字到所有从处理器。超长指令字是MAC r0,r10,acc,数据乘上滤波器系数,结果累加到累加寄存器acc
步骤13.程序跳转指令,在主处理器中执行。跳到步骤10,循环步骤10到步骤13总共7次。所有程序流控制单元中的程序跳转指令比如无条件跳转JMP和其它有条件跳转等都只能在主处理器中执行。当遇到跳转指令时,意味着跳转指令及接下来的超级指令字都在主处理器上执行,不需要发送到从处理器。当然如果超长指令字中有EXEB和EXES指令则要把超长指令字发送到从处理器。
步骤14.发送超长指令字到所有从处理器。超长指令字是EXEB\RDACC r[4:5],读取累加寄存器到寄存器r4和r5中,
步骤15.发送超长指令字到所有从处理器。超长指令字是ADD yaddr,4,yaddr\STOREr[4:5],yaddr,0,存储结果到数据存储器,存储的起始地址是512,地址偏移量是0。
步骤16.跳到步骤5,循环步骤5到步骤16总共14次。每个循环产生4个滤波输出,即总共有56个滤波输出。
步骤17.主处理器读取从处理的数据存储器,地址512,分布模式,数据类型是32比特,数据单位是1。读取数据之后,马上通过全局总线5-1发送到处理器集合1-B。发送过程与步骤3类似。
主处理器2-B上运行的任务2的伪代码相对任务1来说比较简单。首先就是从全局数据总线5-2读取增益调整系数g并以分布模式分发到本处理器集合中的所有从处理器3-E、...、3-H。然后从全局数据总线5-2读取滤波器输出并以分布模式分发到本处理器集合中的所有从处理。然后分发读取指令,乘法指令及存储指令到所有从处理器,这样循环14次,即完成了56个滤波输出的增益调整。
综上所述,由于数据处理由处理器集合中的S个从处理并行处理完成,所以可以提高速度S倍。同时也可以把数据处理分成多个任务,然后映射到不同的处理器集合中完成,进一步提高处理的速度。根据数据处理能力的需要,可以增加处理器集合中从处理器的个数,或者增加处理器集合的个数。
Claims (4)
1.一种多核心处理器,包括多个按照行列分布的处理器集合(1)和一个调试配置单元(9),所述处理器集合(1)中有一个主处理器(2)和多个从处理器(3),所述的多个从处理器(3)之间以及从处理器(3)和主处理器(2)之间通过局部总线(4)连接,其特征为,所述主处理器(2)和从处理器(3)都是超长指令字处理器;处理器集合为M*N个,组成多个处理器集合的M*N阵列;M、N分别为行数和列数,且均为大于1的自然数;共有M*N个交换单元(6)与M*N个处理器集合一一对应;且M*N阵列的每一个节点处设有一个所述的交换单元(6);上下或左右相邻的交换单元(6)之间以及处理器集合(1)与对应的交换单元之间均通过全局总线(5)连接;M*N个交换单元(6)中的第一行交换单元(6)均与调试配置单元(9)通过全局总线(5)连接;
调试配置单元包括调试控制状态机、调试寄存器、JTAG接口、复用器、FIFO缓冲器以及N套输入输出端口;所述调试配置单元(9)有N套输入输出端口通过全局总线(5)分别连接到多核心处理器的N列处理器集合,通过全局总线(5)分别连接的每套输入输出端口的输入端都连接到一个FIFO缓冲器(9-5)上,FIFO缓冲器的宽度等于总线宽度,N个FIFO缓冲器的非空状态线(9-6)组合在一起连接到调试控制状态机(9-3),调试控制状态机(9-3)与所述N个FIFO缓冲器的使能端之间通过读使能控制信号线(9-7)相接,每个FIFO缓冲器的输出端连接到有N个输入端口的复用器(9-4)的一个输入端口;调试控制状态机(9-3)分别与调试寄存器(9-2)以及JTAG接口相连接;复用器的输出端口连接到调试控制状态机;
所述的交换单元(6)包括X套输入输出端口、交换路由控制器(6-1)、多输入与门和输出端复用器;每一套输入输出端口的输出端口接一个多输入与门(6-2)的输出端;所述多输入与门的X-1路输入端对应另外X-1套输入输出端口的输入端口;每一套输入输出端口的输入端口均接有一个交换路由控制器(6-1);每一个交换路由控制器(6-1)输出端接和该交换路由控制器对应的输入输出端口之外的X-1套输入输出端口中的输出端复用器的控制端,输出端复用器的一个输入端是全‘1’,另一个输入端是全局总线输入,输出端复用器的输出端口连接到多输入与门的输入端口,X取值为5。
2.根据权利要求1所述的多核心处理器,其特征在于,所述的全局总线(5)的输出总线(5-1)及输入总线(5-2)的总线宽度都是D+T比特,其中D比特用来传输数据信息,D取值为32,另外T比特用来传输数据信息的类型,T取值为3;
所述的主处理器包括控制使能信号输入端口、全局总线接口、局部总线接口、配置与控制模块(2-1)、延迟匹配单元(2-2)、主处理器复用器、程序存储器(2-5)、数据存储器(2-6)、寄存器文件单元(2-7)、取指令单元(2-8)、指令译码单元(2-9)、读寄存器单元(2-10)、执行单元(2-11)和写寄存器单元(2-12);主处理器的配置与控制模块(2-1)依次通过主处理器复用器(2-4)和局部总线中的数据写总线(4-2)与从处理器通信连接;取指令单元(2-8)与程序存储器(2-5)连接,主处理器通过局部总线中的数据写总线(4-2)和数据读总线(4-3)与从处理器通信连接;主处理器通过全局总线(5-2)与另外的处理器集合通信;
所述局部总线(4)包括用于主处理器(2)读写从处理器(3)的数据存储器的数据读总线(4-3)和数据写总线(4-2)、用于主处理器(2)发送超长指令字到从处理器(3)的指令总线(4-1),还包括将处理器集合(1)中的多个从处理器(3)连成一个双向拓扑环的寄存器通信总线,第一寄存器通信总线(4-4)传输来自于拓扑环中左边相邻从处理器的寄存器通信数据,第二寄存器通信总线(4-5)传输来自于拓扑环中右边相邻从处理器的寄存器通信数据,第三寄存器通信总线(4-6)发送寄存器通信数据到拓扑环中左右相邻的从处理器。
3.根据权利要求2所述的多核心处理器,其特征在于,所述局部总线(4)中的指令总线(4-1)的宽度是V+1比特,其中V比特用来传输超长指令字,与超长指令字的最大长度相同,为64比特,另外的1比特为指令有效位;所述局部总线(4)中的数据写总线(4-2)及数据读总线(4-3)的宽度为D+T比特,其中D比特用来传输数据信息,D取值为32,另外T比特用来传输数据信息的类型,T取值为3。
4.根据权利要求1所述的多核心处理器,其特征在于,5套输入输出端口分别连接上边相邻交换单元的输入输出端口、连接下边相邻交换单元的输入输出端口、连接左边相邻交换单元的输入输出端口、连接右边相邻交换单元的输入输出端口和连接与该5套输入输出端口的所述交换单元一一对应的处理器集合中的主处理器单元的输入输出端口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101895580A CN101882127B (zh) | 2010-06-02 | 2010-06-02 | 一种多核心处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101895580A CN101882127B (zh) | 2010-06-02 | 2010-06-02 | 一种多核心处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101882127A CN101882127A (zh) | 2010-11-10 |
CN101882127B true CN101882127B (zh) | 2011-11-09 |
Family
ID=43054143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101895580A Expired - Fee Related CN101882127B (zh) | 2010-06-02 | 2010-06-02 | 一种多核心处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101882127B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102141975B (zh) * | 2011-04-01 | 2013-10-09 | 华为技术有限公司 | 计算机系统 |
CN102306139A (zh) * | 2011-08-23 | 2012-01-04 | 北京科技大学 | 用于ofdm无线通信系统的异构多核数字信号处理器 |
CN103428217B (zh) * | 2013-08-19 | 2016-05-25 | 中国航空动力机械研究所 | 分布式并行计算的作业分配方法及分配系统 |
US20170177362A1 (en) * | 2015-12-22 | 2017-06-22 | Intel Corporation | Adjoining data element pairwise swap processors, methods, systems, and instructions |
FR3057127B1 (fr) * | 2016-10-05 | 2019-04-19 | Airbus Operations | Processeur adapte pour un reseau ethernet commute deterministe |
KR102322740B1 (ko) * | 2017-04-24 | 2021-11-09 | 에스케이하이닉스 주식회사 | 복수의 프로세서를 포함하는 컨트롤러 및 컨트롤러의 동작방법 |
CN107577562B (zh) * | 2017-09-19 | 2021-02-09 | 南京南瑞继保电气有限公司 | 一种数据交互的方法、设备及计算机可读存储介质 |
CN109542830B (zh) * | 2018-11-21 | 2022-03-01 | 北京灵汐科技有限公司 | 一种数据处理系统及数据处理方法 |
CN111258632B (zh) * | 2018-11-30 | 2022-07-26 | 上海寒武纪信息科技有限公司 | 数据选择装置、数据处理方法、芯片及电子设备 |
CN111258546B (zh) * | 2018-11-30 | 2022-08-09 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
WO2020108486A1 (zh) * | 2018-11-30 | 2020-06-04 | 上海寒武纪信息科技有限公司 | 数据处理装置、方法、芯片及电子设备 |
CN110378477B (zh) * | 2019-08-30 | 2023-09-08 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
CN110378478B (zh) * | 2019-08-30 | 2023-09-08 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
CN111866069B (zh) * | 2020-06-04 | 2024-07-26 | 西安万像电子科技有限公司 | 数据处理方法及装置 |
CN111427826B (zh) * | 2020-06-11 | 2020-11-03 | 杭州万高科技股份有限公司 | 一种总线连接调整的异构多核处理器 |
CN115599459B (zh) * | 2022-12-13 | 2023-04-07 | 成都启英泰伦科技有限公司 | 一种跨电源域多处理器运行装置及其通信方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101145147A (zh) * | 2007-10-10 | 2008-03-19 | 山东大学 | 三维多处理器系统芯片 |
CN101320364A (zh) * | 2008-06-27 | 2008-12-10 | 北京大学深圳研究生院 | 一种阵列处理器结构 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7581079B2 (en) * | 2005-03-28 | 2009-08-25 | Gerald George Pechanek | Processor composed of memory nodes that execute memory access instructions and cooperate with execution nodes to execute function instructions |
-
2010
- 2010-06-02 CN CN2010101895580A patent/CN101882127B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101145147A (zh) * | 2007-10-10 | 2008-03-19 | 山东大学 | 三维多处理器系统芯片 |
CN101320364A (zh) * | 2008-06-27 | 2008-12-10 | 北京大学深圳研究生院 | 一种阵列处理器结构 |
Also Published As
Publication number | Publication date |
---|---|
CN101882127A (zh) | 2010-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101882127B (zh) | 一种多核心处理器 | |
US7840914B1 (en) | Distributing computations in a parallel processing environment | |
EP0726532B1 (en) | Array processor communication architecture with broadcast instructions | |
CN100447738C (zh) | 含有多级寄存器文件的数字数据处理设备 | |
US8151088B1 (en) | Configuring routing in mesh networks | |
CN113424168A (zh) | 可重配置的数据处理器的虚拟化 | |
US9294551B1 (en) | Collective engine method and apparatus | |
EP2372530A1 (en) | Data processing method and device | |
JP5425074B2 (ja) | マルチスレッドプロセッサにおける複合命令 | |
CN101833441B (zh) | 并行向量处理引擎结构 | |
US7430631B2 (en) | Access to a wide memory | |
US6269440B1 (en) | Accelerating vector processing using plural sequencers to process multiple loop iterations simultaneously | |
US7673118B2 (en) | System and method for vector-parallel multiprocessor communication | |
TW200405208A (en) | A scalar/vector processor | |
JPH07152722A (ja) | Simdマルチプロセッサ用動的再構成可能スイッチ装置 | |
US8949576B2 (en) | Arithmetic node including general digital signal processing functions for an adaptive computing machine | |
EP1121634A2 (en) | Forwarding paths and operand sharing in a digital signal processor | |
US7383419B2 (en) | Address generation unit for a processor | |
CN111159094A (zh) | 一种基于risc-v的近数据流式计算加速阵列 | |
CN108874730A (zh) | 一种数据处理器及数据处理方法 | |
CA2689248C (en) | Multi-processor systems communicating using data and control tokens | |
US11561926B2 (en) | Data exchange pathways between pairs of processing units in columns in a computer | |
US20110047353A1 (en) | Reconfigurable device | |
CN101281513A (zh) | 基于Avalon总线的流处理器IP核 | |
WO2008108005A1 (en) | A data transfer network and control apparatus for a system with an array of processing elements each either self- or common controlled |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111109 Termination date: 20130602 |