CN113704169A - 一种面向嵌入式的可配置众核处理器 - Google Patents
一种面向嵌入式的可配置众核处理器 Download PDFInfo
- Publication number
- CN113704169A CN113704169A CN202110924960.7A CN202110924960A CN113704169A CN 113704169 A CN113704169 A CN 113704169A CN 202110924960 A CN202110924960 A CN 202110924960A CN 113704169 A CN113704169 A CN 113704169A
- Authority
- CN
- China
- Prior art keywords
- output
- input
- unit
- event
- routing
- 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.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 claims description 119
- 238000004458 analytical method Methods 0.000 claims description 60
- 238000012545 processing Methods 0.000 claims description 23
- 230000003068 static effect Effects 0.000 claims description 21
- 238000012546 transfer Methods 0.000 claims description 14
- 230000002457 bidirectional effect Effects 0.000 claims description 7
- 238000000034 method Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 9
- 238000013461 design Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000000348 solid-phase epitaxy Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种面向嵌入式的可配置众核处理器,包括:内部数据总线系统、事件总线系统、数据连接线、路由单元和处理器核;内部数据总线系统包括若干条横、纵向数据线;若干条横、纵向数据线横纵交错排列,形成N个交叉点,每个交叉点对应放置一个路由单元,相邻路由单元之间通过横向数据线或纵向数据线连接;事件总线系统包括:事件控制单元、事件总线和事件信号线;各处理器核与对应的路由单元之间通过数据连接线连接;各事件控制单元一方面与事件总线连接,另一方面通过事件信号线与对应的处理器核和路由单元连接。本发明可满足嵌入式、高实时性、芯片内部处理器核之间高同步性、芯片内部通信并行性和高吞吐量的需求。
Description
技术领域
本发明属于处理器设计技术领域,尤其涉及一种面向嵌入式的可配置众核处理器。
背景技术
众核处理器芯片上集成了大量的处理器核,旨在通过运算部件的聚合提供超高计算性能。1994年,斯坦福的研究小组第一次提出了片上多核的概念。国内外从上世纪九十年代开始嵌入式多核/众核芯片的设计,目前具有代表性的产品有申威众核处理器26010、GPGPU(通用图形处理器)、PC202、RAW、CELL。
(1)申威众核处理器26010:采用片上融合异构的体系结构和统一的指令集系统,集成4个控制核心和256个运算核心,是多核和众核结构的结合体。处理器实际上是将4个独立的处理器核组集成在一起,每个处理器核组包含1个控制核心和64个运算核心,处理器核组拥有独立的内存空间,带宽完全独享。
(2)GPGPU:计算核心为简单计算部件,多个核心按照组或簇的形式进行组织,可通过单指令多线程流等数据流并行的方式,提供强大的并行计算能力。GPGPU中的线程是由硬件自动管理的超轻量级线程,因此在GPGPU上完成线程切换几乎不需要任何开销。当一个GPGPU线程因执行存储访问被暂停后,硬件能够立即切换到另一个就绪线程,继续针对不同的数据元素进行计算,以此来实现存储访问延迟的隐藏。对于计算密集度较高的应用程序,存储访问延迟可以被大量交叉执行的GPU线程有效隐藏。典型代表主要产品包括NVIDIA的GPGPU系列处理器,如Fermi,Kepler;AMD的GPU系列等。
(3)PC202:是英国PicoChip公司开发的一种大规模并行阵列处理器件,采用多指令多数据结构,属于中等粒度的异构阵列处理器,由于在结构上针对高性能无线通信数字信号处理算法作了优化,所以可以通过软件实现移动通信中全部物理层信号处理和控制。PC202本身是一个整体上并行的处理器阵列,由一个确定的高速互连总线连接,集中了248个处理器核心。由于每个核心都能并行操作或相互连接,提供超强的处理能力。
(4)RAW:MIT(麻省理工学院)研究的可重构RAW处理芯片在单个芯片上将数十个非常简单的处理单元通过路由单元连接起来,实现高度并行的体系结构。这种结构设计简单,单元内部和单元之间的互连线很短,充分地支持流水线并行性。RAW的一个重要特点在于指令执行前的读寄存器操作,除了常规从寄存器中取出的操作数和从功能部件刚算出的操作数外,还有通过路由网络从相邻处理单元那里传递过来的操作数。在灵活的互连网络的配合下,这个机制把多个处理单元的功能部件耦合在一起,构成功能复杂的并行处理系统。
(5)CELL:是由IBM、索尼和东芝共同研发的高性能处理芯片。CELL由一个相对比较简单的支持同时双线程并行的双发射64位PowerPC内核(称为PPE)和八个SIMD型向量协处理器(称为SPE)构成。片内有一个高带宽的环状高速总线把PowerPC内核、向量协处理器和存储器总线(RAMBUS)、内存接口控制器以及Flex输入/输出总线接口控制器连接起来。PowerPC内核主要负责控制并执行操作系统,向量协处理器完成主要的计算任务。
然而,上述众核处理器产品的研究重点都集中在通过片内总线有效集成上,但在下面两方面存在不足:
(1)缺乏快速硬件同步机制。现在的众核处理器的处理器核是通过指令发出一类特殊的同步包实现的,包中附带了各个处理器核的同步信息。同步包通过处理器片内网络进入同步控制模块,同步控制模块收到同一个同步事件中所有需要同步的处理器核同步包后,向同步包涉及的处理器核返回同步完成信号。这种利用同步包的软同步的方式,效率很低,不适合对实时性要求很高的嵌入式系统应用。
(2)缺乏灵活的数据移动和片上布局。现有的众核处理器内部的处理器核,只是实现了芯片内部处理器核之间的互访和能够直接访问主存空间,还无法支持片上存储的高效使用和数据在处理器核之间的灵活分配,无法支持灵活的数据移动和片上布局,无法支持数据在处理器内存储空间高效的数据传输。
发明内容
本发明的技术解决问题:克服现有技术的不足,提供一种面向嵌入式的可配置众核处理器,可满足嵌入式、高实时性、芯片内部处理器核之间高同步性、芯片内部通信并行性和高吞吐量的需求。
为了解决上述技术问题,本发明公开了一种面向嵌入式的可配置众核处理器,包括:内部数据总线系统、事件总线系统、数据连接线、N个路由单元和N个处理器核;
内部数据总线系统,包括:若干条横向数据线和若干条纵向数据线;其中,若干条横向数据线和若干条纵向数据线横纵交错排列,形成N个交叉点,每个交叉点对应放置一个路由单元,相邻路由单元之间通过横向数据线或纵向数据线连接;
事件总线系统,包括:N个事件控制单元、事件总线和事件信号线;
一个处理器核对应一个路由单元和一个事件控制单元;其中,各处理器核与对应的路由单元之间通过数据连接线连接;各事件控制单元一方面与事件总线连接,另一方面通过事件信号线与对应的处理器核和路由单元连接,事件控制单元用于实现事件总线与事件信号线间的信号选通和逻辑连接。
在上述面向嵌入式的可配置众核处理器中,横向数据线、纵向数据线和数据连接线均为包含输入和输出的双向数据线。
在上述面向嵌入式的可配置众核处理器中,事件总线是传输信号的一组信号线,每一根信号线上传输表征不同含义的脉冲信号,每个表征不同含义的脉冲信号称为一个事件。
在上述面向嵌入式的可配置众核处理器中,处理器核,包括:输入事件寄存器、输出事件寄存器、控制逻辑单元、第一存储单元、运算逻辑单元和网络接口单元;
网络接口单元与当前处理器核对应的路由单元相匹配,包括:输入报文解析模块和输出报文解析模块;
输入事件寄存器的输入与当前处理器核对应的事件控制单元的输出相连接,输入事件寄存器的输出与控制逻辑单元的输入相连接;
控制逻辑单元的输出分别与第一存储单元的输入和运算逻辑单元的输入相连接;
第一存储单元与运算逻辑单元之间通过双向数据线相连接;
输出事件寄存器的输入与运算逻辑单元的输出相连接,输出事件寄存器的输出与当前处理器核对应的事件控制单元的输入相连接;
输入报文解析模块的输入与当前处理器核对应的路由单元的输出相连接,输入报文解析模块的输出与运算逻辑单元的输入相连接;
输出报文解析模块的输入与运算逻辑单元的输出相连接,输出报文解析模块的输出与当前处理器核对应的路由单元的输入相连接。
在上述面向嵌入式的可配置众核处理器中,
输入事件寄存器,用于寄存当前处理器核对应的事件控制单元的输出;
控制逻辑单元,用于对当前处理器核执行的指令进行译码,生成完成每条指令所要执行的各个操作的第一控制信号,并输出;
第一存储单元,用于暂存第一控制信号、等待处理和/或处理完成的数据;
运算逻辑单元,用于根据控制逻辑单元的输出、输入报文解析模块的输出和第一存储单元的输出,执行相应的算术运算和/或逻辑运算,并将算术运算和/或逻辑运算的运算结果输出至输出报文解析模块、第一存储单元和输出事件寄存器;
网络接口单元,用于对当前处理器核与相对应的路由单元之间的报文数据进行组装和解析;
输入报文解析模块,用于对路由单元传递进来的报文数据进行解析,判断报文数据是否是针对当前处理器核的报文,若是,则去掉报文数据的报头,提取得到有效数据,并发送给运算逻辑单元;输出报文解析模块,用于按照规定的报文格式,对运算逻辑单元输出的运算结果进行组装后输出至路由单元;
输出事件寄存器,用于寄存运算逻辑单元的输出。
在上述面向嵌入式的可配置众核处理器中,
事件总线,包括:一组单向传输的正向事件总线和一组单向传输的反向事件总线;其中,正向事件总线和反向事件总线的传输方向相反,正向事件总线和反向事件总线分别由K条信号线构成;
事件信号线,包括:P条输出事件信号线和Q条输入事件信号线。
在上述面向嵌入式的可配置众核处理器中,事件控制单元,包括:L个输出配置寄存器、L′个输入配置寄存器和J*(L+L′)个传输门;其中,J个传输门为一组,共计(L+L′)组传输门;一组传输门对应一个输出配置寄存器或一个输入配置寄存器;
每个输出配置寄存器通过引出的J根引线分别与对应的一组传输门下的J个传输门的控制端连接;
每个输入配置寄存器通过引出的J根引线分别与对应的一组传输门下的J个传输门的控制端连接;
与输出配置寄存器对应的一组传输门下的J个传输门的输入端分别与正向事件总线下的K条信号线和反向事件总线下的K条信号线连接;与输出配置寄存器对应的一组传输门下的J个传输门的输出端连接在一起,与对应的一条输出事件信号线连接;即,J=2K,P=L;
与输入配置寄存器对应的一组传输门下的J个传输门的输出端分别与正向事件总线下的K条信号线和反向事件总线下的K条信号线连接;与输入配置寄存器对应的一组传输门下的J个传输门的输入端连接在一起,与对应的一条输入事件信号线连接;即,Q=L′。
在上述面向嵌入式的可配置众核处理器中,传输门的栅极为控制端、源极为输入端、漏极为输出端;其中,当控制端所加电压使传输门的MOS管导通时,传输门呈现低导通电阻,允许电流向两个方向中的任何一个方向流通;当控制端加电压使MOS管截止时,传输门呈现高的截止电阻,不允许任何方向的电流流通。
在上述面向嵌入式的可配置众核处理器中,路由单元,包括:路由配置表、第一配置寄存器、第二配置寄存器、第三配置寄存器、第二存储单元、报文组装模块、静态路由模块、动态路由模块、路由单元输入数据线、路由单元输出数据线、路由输入事件信号线和路由输出事件信号线;
路由单元输入数据线,包括:上、下、左、右和处理器核5个方向的5条DMA输入数据线,以及上、下、左、右和处理器核5个方向的5条变量输入数据线;
路由单元输出数据线,包括:上、下、左、右和处理器核5个方向的5条DMA输出数据线,以及上、下、左、右和处理器核5个方向的5条变量输出数据线;
静态路由模块,包括:报文解析模块Ⅰ~Ⅴ、第一交叉条逻辑单元、多路选择器Ⅰ~Ⅴ和五路选择器;其中,各报文解析模块的输入分别连接路由配置表的输出和相应的1条DMA输入数据线,各报文解析模块的输出分别连接第一交叉条逻辑单元的一路输入和五路选择器的一路输入;五路选择器的输出连接至第二存储单元的输入;第一交叉条逻辑单元的五路输出分别与多路选择器Ⅰ~Ⅴ的输入连接;5条DMA输出数据线分别与多路选择器Ⅰ~Ⅴ的输出连接;第一配置寄存器的输出与第一交叉条逻辑单元的输入连接;第二配置寄存器的输出分别与多路选择器Ⅰ~Ⅴ的控制端连接;
动态路由模块,包括:报文解析模块Ⅵ、先入先出单元Ⅰ~Ⅴ、第二交叉条逻辑单元和多路选择器Ⅵ~Ⅹ;其中,报文解析模块Ⅵ的输入分别连接路由配置表和先入先出单元Ⅰ~Ⅴ的输出,报文解析模块Ⅵ的输出连接第二交叉条逻辑单元的输入;各先入先出单元的输入分别连接相应的1条变量输入数据线,各先入先出单元的输出分别连接报文解析模块Ⅵ的输入和第二交叉条逻辑单元的一路输入;第二交叉条逻辑单元的6路输出分别连接第二存储单元的输入和多路选择器Ⅵ~Ⅹ的输入;5条变量输出数据线分别与多路选择器Ⅵ~Ⅹ的输出连接;第三配置寄存器的输出分别与多路选择器Ⅵ~Ⅹ的控制端连接;
报文组装模块的输出分别与多路选择器Ⅰ~Ⅹ的输入连接;
第二存储单元分别与五路选择器的输出、报文组装模块的输入、第二交叉条逻辑单元的一路输出、路由输入事件信号线和路由输出事件信号线连接。
在上述面向嵌入式的可配置众核处理器中,
静态路由模块,用于控制DMA数据流传递路径;
动态路由模块,用于控制变量数据传递;
路由配置表,用于保存路由单元的物理坐标和逻辑坐标的对应关系、地址空间与路由单元逻辑坐标的对应关系,以供路由仲裁选择时使用;
第一配置寄存器,用于预设第一交叉条逻辑单元的5路输出与5路输入之间的对应关系;
第二配置寄存器,用于控制多路选择器Ⅰ~Ⅴ的输出选择;
报文解析模块Ⅰ~Ⅴ为一时序逻辑模块,用于对输入路由单元的报文进行解析,得到报文解析结果;根据报文解析结果,对输入路由单元的报文的类型进行判定,以确定输入路由单元的报文是DMA数据流传输还是DMA变量传输;根据报文解析结果和路由配置表中保存的对应关系,对输入路由单元的报文的目的地址进行判定,以确定输入路由单元的报文的目的地址是与当前路由单元相匹配还是需要继续沿路由传递;当确定输入路由单元的报文是DMA数据流,且报文的目的地址与当前路由单元不匹配时,继续沿路由传递报文,确定报文解析模块Ⅰ~Ⅴ与第一交叉条逻辑单元的输出连接有效;当确定输入路由单元的报文是DMA数据流,且报文的目的地址与当前路由单元不匹配时,确定报文解析模块Ⅰ~Ⅴ与五路选择器的输出连接有效;
第一交叉条逻辑单元为一组合逻辑模块,用于在第一交叉条逻辑单元的5个输入和5个输出之间建立交叉传输通路,即第一交叉条逻辑单元的任意一个输出可与任意一个输入连通;
报文解析模块Ⅵ为一时序逻辑模块,用于依据设定的优先级,分别对先入先出单元Ⅰ~Ⅴ输出的报文按照先后顺序进行解析,并输出路由方向仲裁信号,将路由方向仲裁信号作为第二交叉条逻辑单元的控制信号,使得先入先出单元Ⅰ~Ⅴ读出的报文能够继续传递;
第二交叉条逻辑单元为一组合逻辑模块,用于在第二交叉条逻辑单元的5个输入和5个输出之间建立交叉传输通路,即第二交叉条逻辑单元的任意一个输出可与任意一个输入连通;
第二存储单元,用于暂存从上、下、左、右和处理器核5个方向输入的DMA数据和变量数据,作为共享存储器供处理器核访问;
报文组装模块为一时序逻辑模块,用于将从第二存储单元中读出的数据,按照设定规则和格式组装成可在众核处理器的路由单元中传递的报文;
第三配置寄存器,用于控制多路选择器Ⅵ~Ⅹ在报文组装模块和第二交叉条逻辑单元的一路输出之间进行选择。
本发明具有以下优点:
(1)众核处理器在运行之前,需要进行结构配置。这些配置是通过多个配置寄存器实现的,能够对众核处理器的同步关系、共享存储空间、数据流传递路径进行配置。本发明通过配置,重塑众核处理器内部架构,形成对当前应用程序的最优匹配结构,达到高性能、低功耗的目的。
(2)本发明公开了一种面向嵌入式的可配置众核处理器,内部集成的处理器核通过事件建立直接的联系,实现处理器核之间的快速同步功能。其中,事件既可以表征到来数据的有效性、处理任务的结束,也可以表征外部触发信号、定时器/计数器触发信号等;处理器核既能够发送事件,又能够接收并判断事件;既能够接收一个或多个事件,又能够发送一个或多个事件。由于承载事件的信号线能够跨越多个处理器核,并在多个处理器核之间建立联系,因此,本发明采用的同步方式更直接、更高效
(3)本发明公开了一种面向嵌入式的可配置众核处理器,内部的路由单元集成了存储单元,并且随着片内路由系统构成了柔性的片内分布式共享存储系统。片内分布式共享存储系统,能够通过预先定义和配置,支持容量动态划分和分组。由于此共享存储系统与处理器核之间不存在耦合,消除了访问共享存储空间对其它处理器核的影响。本发明采用软硬件结合的方法,使片上存储管理柔性灵活,实现灵活的数据布局、可重构的局部数据存储空间。
(4)本发明公开了一种面向嵌入式的可配置众核处理器,内部的路由单元集成了支持DMA数据流传递的静态路由和支持变量传递的动态路由两种功能,支持灵活的数据移动。静态路由保证了高吞吐数据流的传递,在传递过程中,无需判断路由方向,按照预先配置的方向直接传递;动态路由保证了低延迟轻量化数据的传递,在传递过程中,根据包头自动判断路由方向,简化上层应用软件开发的难度。由于在路由单元中集成了存储单元,可以实现静态路由将DMA数据写入存储单元,再通过动态路由系统多播给不同的处理器核;也可以实现多个处理器核将数据写入路由单元中的存储单元,再通过静态路由从存储器将数据读出进行传递。
附图说明
图1是本发明实施例中一种面向嵌入式的可配置众核处理器的架构图;
图2是本发明实施例中一种处理器核的结构图;
图3是本发明实施例中一种事件控制单元的结构图;
图4是本发明实施例中一种路由单元的结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明公开的实施方式作进一步详细描述。
本发明的核心思想之一在于:设计一种适用于嵌入式应用的可配置众核处理器(架构),以达到如下几个目的:
(1)众核处理器中众多的处理器核能够实现很好的组织性。目前依靠同步数据包实现众核同步的方式,不适合嵌入式应用,原因有二:第一由于数据包传递会导致延迟过大,丧失同步的及时性;第二由于处理器核需要不断的发送、接收和分析同步数据包,会导致系统性能下降。因此,建立以事件为中心的众核处理器同步机制,是本专利的核心。事件以信号线为载体,集成在处理器芯片内部,通过可控传输门与处理器核心相连接。这些信号线上传递的高、低电平脉冲,称为事件,它是预先被定义的、具有特殊含义的信号。每个处理器核心都可以发送或者接收一个或者多个事件。通过事件,建立多个处理器核心之间的联系,由于采用专用的信号线直连方式,延迟小,既可以实现一对多发送、也可以实现多对一发送,拓扑结构具有灵活性。
(2)众核处理器芯片上的存储资源达到更好的自适应性和共享性。目前的众核处理器,普遍采用分布式共享存储系统。这种分布式共享存储系统,每个处理器核心具有私有的寄存器、私有一级缓存和二级缓存结构,这里每个处理器核的二级缓存可作为其它处理器核的共享三级缓存。这种分布式共享存储系统,由于一个处理器核在访问其它处理器核上的共享存储空间时,必然对被访问处理器核正常的执行产生影响,且影响的大小、时间具有很大的随机性,当众核处理器中存在大量的这种共享访问时,众核处理器的整体执行将具有一定的不确定性,不适合嵌入式应用。因此,在众核处理器的片上路由系统中,为每个路由单元增加一定容量的存储模块,在系统运行之前,这些存储模块会进行划分与组合,分属不同的处理器核。这样,处理器核在访问共享存储空间时,不会对其它处理器核的正常执行产生影响。
(3)众核处理器芯片内部的数据传递的高效性。这些数据传递,即可能传递的是一个变量或几个数据,也可能是以DMA方式传递一段数据。如果片内统一按照一种格式或协议完成这些类型的数据传递,无疑不会是高效的。因此,从数据传递高效性的角度出发,需要针对每一种数据传递类型,设计相应传输方案和硬件实现,然后将不同传输方案融合,形成众核处理器高效的数据传递网络。
在本发明实施例中,该面向嵌入式的可配置众核处理器(架构)具体可以包括:内部数据总线系统、事件总线系统、数据连接线、N个路由单元和N个处理器核。
内部数据总线系统具体可以包括:若干条横向数据线011和若干条纵向数据线012。其中,若干条横向数据线011和若干条纵向数据线012横纵交错排列,形成N个交叉点。一个交叉点对应放置一个路由单元,相邻路由单元之间通过横向数据线011或纵向数据线012连接。
事件总线系统具体可以包括:N个事件控制单元、事件总线161和事件信号线162。
一个处理器核对应一个路由单元和一个事件控制单元。其中,各处理器核与对应的路由单元之间通过数据连接线013连接;各事件控制单元一方面与事件总线161连接,另一方面通过事件信号线162与对应的处理器核和路由单元连接,事件控制单元可用于实现事件总线与事件信号线间的信号选通和逻辑连接。
如图1,以N=16为例进行说明。N=16,也即有16个处理器核(100#~115#处理器核)、16个事件控制单元(120#~135#事件控制单元)和16个路由单元(140#~155#路由单元)。则有:
100#处理器核与120#事件控制单元通过事件信号线162连接,100#处理器核与140#路由单元通过数据连接线013(双向数据线)连接。
101#处理器核与121#事件控制单元通过事件信号线162连接,101#处理器核与141#路由单元通过数据连接线013连接。
102#处理器核与122#事件控制单元通过事件信号线162连接,102#处理器核与142#路由单元通过数据连接线013连接。
103#处理器核与123#事件控制单元通过事件信号线162连接,103#处理器核与143#路由单元通过数据连接线013连接。
104#处理器核与124事件控制单元#通过事件信号线162连接,104#处理器核与144#路由单元通过数据连接线013连接。
105#处理器核与125#事件控制单元通过事件信号线162连接,105#处理器核与145#路由单元通过数据连接线013连接。
106#处理器核与126#事件控制单元通过事件信号线162连接,106#处理器核与146#路由单元通过数据连接线013连接。
107#处理器核与127#事件控制单元通过事件信号线162连接,107#处理器核与147#路由单元通过数据连接线013连接。
108#处理器核与128#事件控制单元通过事件信号线162连接,108#处理器核与148#路由单元通过数据连接线013连接。
109#处理器核与129#事件控制单元通过事件信号线162连接,109#处理器核与149#路由单元通过数据连接线013连接。
110#处理器核与130#事件控制单元通过事件信号线162连接,110#处理器核与150#路由单元通过数据连接线013连接。
111#处理器核与131#事件控制单元通过事件信号线162连接,111#处理器核与151#路由单元通过数据连接线013连接。
112#处理器核与132#事件控制单元通过事件信号线162连接,112#处理器核与152#路由单元通过数据连接线013连接。
113#处理器核与133#事件控制单元通过事件信号线162连接,113#处理器核与153#路由单元通过数据连接线013连接。
114#处理器核与134#事件控制单元通过事件信号线162连接,114#处理器核与154#路由单元通过数据连接线013连接。
115#处理器核与135#事件控制单元通过事件信号线162连接,115#处理器核与155#路由单元通过数据连接线013连接。
120#~135#事件控制单元通过事件信号线162分别与事件总线161连接。
140#路由单元与141#路由单元通过横向数据线011连接,与144#路由单元通过纵向数据线012连接。
141#路由单元与140#路由单元、142#路由单元通过横向数据线011连接,与145#路由单元通过纵向数据线012连接。
142#路由单元与141#路由单元、143#路由单元通过横向数据线011连接,与146#路由单元通过纵向数据线012连接。
143#路由单元与142#路由单元通过横向数据线011连接,与147#路由单元通过纵向数据线012连接。
144#路由单元与140#路由单元、148#路由单元通过纵向数据线012连接,与145#路由单元通过横向数据线011连接。
145#路由单元与144#路由单元、146#路由单元通过横向数据线011连接,与141#路由单元、149#路由单元通过纵向数据线012连接。
146#路由单元与145#路由单元、147#路由单元通过横向数据线011连接,与142#路由单元、150#路由单元通过纵向数据线012连接。
147#路由单元与146#路由单元通过横向数据线011连接,与143#路由单元、151#路由单元通过纵向数据线012连接。
148#路由单元与149#路由单元通过横向数据线011连接,与144#路由单元、152#路由单元通过纵向数据线012连接。
149#路由单元与148#路由单元、150#路由单元通过横向数据线011连接,与145#路由单元、153#路由单元通过纵向数据线012连接。
150#路由单元与149#路由单元、151#路由单元通过横向数据线011连接,与146#路由单元、154#路由单元通过纵向数据线012连接。
151#路由单元与150#路由单元通过横向数据线011连接,与147#路由单元、155#路由单元通过纵向数据线012连接。
152#路由单元与153#路由单元通过横向数据线011连接,与148#路由单元通过纵向数据线012连接。
153#路由单元与152#路由单元、154#路由单元通过横向数据线011连接,与149#路由单元通过纵向数据线012连接。
154#路由单元与153#路由单元、155#路由单元通过横向数据线011连接,与150#路由单元通过纵向数据线012连接。
155#路由单元与154#路由单元通过横向数据线011连接,与151#路由单元通过纵向数据线012连接。
其中,需要说明的是,横向数据线011、纵向数据线012和数据连接线013均为包含输入和输出的双向数据线。事件总线161是传输信号的一组信号线,每一根信号线上传输表征不同含义的脉冲信号,每个表征不同含义的脉冲信号称为一个事件。
处理器核
在本实施例中,如图2,各处理器核结构相同,均包括:输入事件寄存器201、输出事件寄存器202、控制逻辑单元203、第一存储单元204、运算逻辑单元205和网络接口单元206。其中,网络接口单元206与当前处理器核对应的路由单元相匹配,具体可以包括:输入报文解析模块207和输出报文解析模块208。输入事件寄存器201的输入与当前处理器核对应的事件控制单元的输出相连接,输入事件寄存器201的输出与控制逻辑单元203的输入相连接。控制逻辑单元203的输出分别与第一存储单元204的输入和运算逻辑单元205的输入相连接。第一存储单元204与运算逻辑单元205之间通过双向数据线相连接。输出事件寄存器202的输入与运算逻辑单元205的输出相连接,输出事件寄存器202的输出与当前处理器核对应的事件控制单元的输入相连接。输入报文解析模块207的输入与当前处理器核对应的路由单元的输出相连接,输入报文解析模块207的输出与运算逻辑单元205的输入相连接。输出报文解析模块208的输入与运算逻辑单元205的输出相连接,输出报文解析模块208的输出与当前处理器核对应的路由单元的输入相连接。
优选的,输入事件寄存器201,用于寄存当前处理器核对应的事件控制单元的输出。控制逻辑单元203,用于对当前处理器核执行的指令进行译码,生成完成每条指令所要执行的各个操作的第一控制信号,并输出。第一存储单元204,用于暂存第一控制信号、等待处理和/或处理完成的数据。运算逻辑单元205,用于根据控制逻辑单元203的输出、输入报文解析模块207的输出和第一存储单元204的输出,执行相应的算术运算和/或逻辑运算,并将算术运算和/或逻辑运算的运算结果输出至输出报文解析模块208、第一存储单元204和输出事件寄存器202。网络接口单元206,用于对当前处理器核与相对应的路由单元之间的报文数据进行组装和解析。输入报文解析模块207,用于对路由单元传递进来的报文数据进行解析,判断报文数据是否是针对当前处理器核的报文,若是,则去掉报文数据的报头,提取得到有效数据,并发送给运算逻辑单元205;输出报文解析模块208,用于按照规定的报文格式,对运算逻辑单元205输出的运算结果进行组装后输出至路由单元。输出事件寄存器202,用于寄存运算逻辑单元205的输出。
事件总线、事件信号线
在本实施例中,事件总线161具体可以包括:一组单向传输的正向事件总线和一组单向传输的反向事件总线。其中,正向事件总线和反向事件总线的传输方向相反,正向事件总线和反向事件总线分别由K条信号线构成。事件信号线162具体可以包括:P条输出事件信号线和Q条输入事件信号线。
事件控制单元
在本实施例中,事件控制单元具体可以包括:L个输出配置寄存器、L′个输入配置寄存器和J*(L+L′)传输门。其中,J个传输门为一组,共计(L+L′)组传输门;一组传输门对应一个输出配置寄存器或一个输入配置寄存器。
每个输出配置寄存器通过引出的J根引线分别与对应的一组传输门下的J个传输门的控制端连接。每个输入配置寄存器通过引出的J根引线分别与对应的一组传输门下的J个传输门的控制端连接。与输出配置寄存器对应的一组传输门下的J个传输门的输入端分别与正向事件总线下的K条信号线和反向事件总线下的K条信号线连接;与输出配置寄存器对应的一组传输门下的J个传输门的输出端连接在一起,与对应的一条输出事件信号线连接;即,J=2K,P=L。与输入配置寄存器对应的一组传输门下的J个传输门的输出端分别与正向事件总线下的K条信号线和反向事件总线下的K条信号线连接;与输入配置寄存器对应的一组传输门下的J个传输门的输入端连接在一起,与对应的一条输入事件信号线连接;即,Q=L′。
优选的,传输门的栅极为控制端、源极为输入端、漏极为输出端;其中,当控制端所加电压使传输门的MOS管导通时,传输门呈现低导通电阻,允许电流向两个方向中的任何一个方向流通;当控制端加电压使MOS管截止时,传输门呈现高的截止电阻,不允许任何方向的电流流通。
如图3,以L=L′=2,J=8为例进行说明。也即,两个输出配置寄存器为:308#输出配置寄存器和318#输出配置寄存器;两个输入配置寄存器为:328#输入配置寄存器和338#输入配置寄存器;四组传输门分别为:300#~307#传输门、310#~317#传输门、320#~327#传输门、330#~337#传输门;正向事件总线对应的4条信号线为:340#~343#信号线;反向事件总线对应的4条信号线为:350#~353#信号线;两条输出事件信号线为:360#输出事件信号线和361#输出事件信号线;两条输入事件信号线为:362#输入事件信号线和363#输入事件信号线;308#输出配置寄存器、318#输出配置寄存器、328#输入配置寄存器和338#输入配置寄存器的引线均为8。则有:
308#输出配置寄存器的8根引线分别与300#~307#传输门的控制端连接。
318#输出配置寄存器的8根引线分别与310#~317#传输门的控制端连接。
328#输入配置寄存器的8根引线分别与320#~327#传输门的控制端连接。
338#输入配置寄存器的8根引线分别与330#~337#传输门的控制端连接。
300#~307#传输门的输入端分别与340#~343#信号线、350#~353#信号线连接;300#~307#传输门的的输出端连接在一起,与360#输出事件信号线连接。
310#~317#传输门的输入端分别与340#~343#信号线、350#~353#信号线连接;310#~317#传输门的输出端连接在一起,与361#输出事件信号线连接。
320#~327#传输门的输出端分别与340#~343#信号线、350#~353#信号线连接;320#~327#传输门的输入端连接在一起,与362#输入事件信号线连接。
330#~337#传输门的输出端分别与340#~343#信号线、350#~353#信号线连接;330#~337#传输门的输入端连接在一起,与363#输入事件信号线连接。
其中,需要说明的是,在举例时,仅定义了:两组事件总线(正向事件总线和反向事件总线)、每组事件总线由4条信号线构成、两条输出事件信号线、两条输入事件信号线、两个输出配置寄存器、两个输入配置寄存器、每个输出配置寄存器控制8个传输门的开/关、每个输入配置寄存器控制8个传输门的开/关等。在具体实施时,事件总线的组数、每组事件总线的信号线的根数、输出事件信号线的数量、输入事件信号线的数量、输出配置寄存器的数量、输入配置寄存器的数量、输出配置寄存器控制的传输门的数量、输入配置寄存器控制的传输门的数量等均可根据实际情况可进一步扩展。
路由单元
在本实施例中,如图4,路由单元具体可以包括:路由配置表400、第一配置寄存器401、第二配置寄存器402、第三配置寄存器469、第二存储单元430、报文组装模块431、静态路由模块436、动态路由模块468、路由单元输入数据线、路由单元输出数据线、路由输入事件信号线434和路由输出事件信号线435。其中,路由单元输入数据线具体可以包括:上、下、左、右和处理器核5个方向的5条DMA输入数据线(420#~424#DMA输入数据线),以及上、下、左、右和处理器核5个方向的5条变量输入数据线(447#~451#变量输入数据线)。路由单元输出数据线具体可以包括:上、下、左、右和处理器核5个方向的5条DMA输出数据线(425#~429#DMA输出数据线),以及上、下、左、右和处理器核5个方向的5条变量输出数据线(463#~467#变量输出数据线)。
静态路由模块436具体可以包括:报文解析模块Ⅰ403、报文解析模块Ⅱ404、报文解析模块Ⅲ405、报文解析模块Ⅳ406、报文解析模块Ⅴ407、第一交叉条逻辑单元408、多路选择器Ⅰ409、多路选择器Ⅱ410、多路选择器Ⅲ411、多路选择器Ⅳ412、多路选择器Ⅴ413和五路选择器419。其中,各报文解析模块的输入分别连接路由配置表400的输出和相应的1条DMA输入数据线,各报文解析模块的输出分别连接第一交叉条逻辑单元408的一路输入和五路选择器419的一路输入;五路选择器419的输出连接至第二存储单元430的输入;第一交叉条逻辑单元408的五路输出分别与多路选择器Ⅰ~Ⅴ的输入连接;5条DMA输出数据线分别与多路选择器Ⅰ~Ⅴ的输出连接;第一配置寄存器401的输出与第一交叉条逻辑单元408的输入连接;第二配置寄存器402的输出分别与多路选择器Ⅰ~Ⅴ的控制端连接。
动态路由模块468具体可以包括:报文解析模块Ⅵ440、先入先出单元Ⅰ442、先入先出单元Ⅱ443、先入先出单元Ⅲ444、先入先出单元Ⅳ445、先入先出单元Ⅴ446、第二交叉条逻辑单元441、多路选择器Ⅵ458、多路选择器Ⅶ459、多路选择器Ⅷ460、多路选择器Ⅸ461和多路选择器Ⅹ462。其中,报文解析模块Ⅵ440的输入分别连接路由配置表400和先入先出单元Ⅰ~Ⅴ的输出,报文解析模块Ⅵ440的输出连接第二交叉条逻辑单元441的输入;各先入先出单元的输入分别连接相应的1条变量输入数据线,各先入先出单元的输出分别连接报文解析模块Ⅵ440的输入和第二交叉条逻辑单元441的一路输入;第二交叉条逻辑单元441的6路输出分别连接第二存储单元430的输入和多路选择器Ⅵ~Ⅹ的输入;5条变量输出数据线分别与多路选择器Ⅵ~Ⅹ的输出连接;第三配置寄存器469的输出分别与多路选择器Ⅵ~Ⅹ的控制端连接。
报文组装模块431的输出分别与多路选择器Ⅰ~Ⅹ的输入连接;第二存储单元430分别与五路选择器419的输出、报文组装模块431的输入、第二交叉条逻辑单元441的一路输出、路由输入事件信号线434和路由输出事件信号线435连接。
进一步的,在本实施例中,静态路由模块436,用于控制DMA数据流传递路径。动态路由模块468,用于控制变量数据传递。路由配置表400,用于保存路由单元的物理坐标和逻辑坐标的对应关系、地址空间与路由单元逻辑坐标的对应关系,以供路由仲裁选择时使用。第一配置寄存器401,用于预设第一交叉条逻辑单元408的5路输出与5路输入之间的对应关系。第二配置寄存器402,用于控制多路选择器Ⅰ~Ⅴ的输出选择。报文解析模块Ⅰ~Ⅴ为一时序逻辑模块,用于对输入路由单元的报文进行解析,得到报文解析结果;根据报文解析结果,对输入路由单元的报文的类型进行判定,以确定输入路由单元的报文是DMA数据流传输还是DMA变量传输;根据报文解析结果和路由配置表400中保存的对应关系,对输入路由单元的报文的目的地址进行判定,以确定输入路由单元的报文的目的地址是与当前路由单元相匹配还是需要继续沿路由传递;当确定输入路由单元的报文是DMA数据流,且报文的目的地址与当前路由单元不匹配时,继续沿路由传递报文,确定报文解析模块Ⅰ~Ⅴ与第一交叉条逻辑单元408的输出连接有效;当确定输入路由单元的报文是DMA数据流,且报文的目的地址与当前路由单元不匹配时,确定报文解析模块Ⅰ~Ⅴ与五路选择器419的输出连接有效。第一交叉条逻辑单元408为一组合逻辑模块,用于在第一交叉条逻辑单元408的5个输入和5个输出之间建立交叉传输通路,即第一交叉条逻辑单元408的任意一个输出可与任意一个输入连通。报文解析模块Ⅵ为一时序逻辑模块,用于依据设定的优先级,分别对先入先出单元Ⅰ~Ⅴ输出的报文按照先后顺序进行解析,并输出路由方向仲裁信号,将路由方向仲裁信号作为第二交叉条逻辑单元441的控制信号,使得先入先出单元Ⅰ~Ⅴ读出的报文能够继续传递。第二交叉条逻辑单元441为一组合逻辑模块,用于在第二交叉条逻辑单元441的5个输入和5个输出之间建立交叉传输通路,即第二交叉条逻辑单元441的任意一个输出可与任意一个输入连通。第二存储单元430,用于暂存从上、下、左、右和处理器核5个方向输入的DMA数据和变量数据,能够作为共享存储器供处理器核访问。报文组装模块431为一时序逻辑模块,用于将从第二存储单元430中读出的数据,按照设定规则和格式组装成可在众核处理器的路由单元中传递的报文。第三配置寄存器469,用于控制多路选择器Ⅵ~Ⅹ在报文组装模块和第二交叉条逻辑单元441的一路输出之间进行选择。
综上所述,本发明公开了一种可配置众核处理器,可在运行之前通过多个配置寄存器实现结构配置(包括但不仅限于众核处理器的同步关系、共享存储空间、数据流传递路径等),通过结构配置,众核处理器内部重塑,形成对当前应用程序的最优匹配结构,达到高性能、低功耗的目的。
其次,可配置众核处理器内部集成的处理器核,通过事件建立直接的联系,实现处理器核之间的快速同步功能。这些事件既可以表征到来数据的有效性、处理任务的结束,也可以表征外部触发信号、定时器/计数器触发信号等等。处理器核既能够发送事件,又能够接收并判断事件;既能够接收一个或多个事件,又能够发送一个或多个事件。由于承载事件的信号线能够跨越多个处理器核,并在多个处理器核之间建立联系,因此,这种同步方式更直接、更高效。
进一步的,可配置众核处理器内部的路由单元集成了存储单元,并且随着片内路由系统构成了柔性的片内分布式共享存储系统。片内分布式共享存储系统,能够通过预先定义和配置,支持容量动态划分和分组。由于此共享存储系统与处理器核之间不存在耦合,消除了访问共享存储空间对其它处理器核的影响。采用软硬件结合的方法,使片上存储管理柔性灵活,实现灵活的数据布局、可重构的局部数据存储空间。
此外,可配置众核处理器内部的路由单元集成了支持DMA数据流传递的静态路由和支持变量传递的动态路由两种功能,支持灵活的数据移动。静态路由保证了高吞吐数据流的传递,在传递过程中,无需判断路由方向,按照预先配置的方向直接传递;动态路由保证了低延迟轻量化数据的传递,在传递过程中,根据包头自动判断路由方向,简化上层应用软件开发的难度。由于在路由单元中集成了存储单元,可以实现静态路由将DMA数据写入存储单元,再通过动态路由系统多播给不同的处理器核;也可以实现多个处理器核将数据写入路由单元中的存储单元,再通过静态路由从存储器将数据读出进行传递。
在本实施例中,可基于上述面向嵌入式的可配置众核处理器的方案设计众核处理器芯片,在众核处理器芯片设计中,主要有以下实施方式:
(1)在众核处理器中,构建二维网格架构,在水平横向总线和水平纵向总线的交点处放置路由单元。每个路由单元对应一个处理器核,处理器核即可以是微处理器,也可以是完成特定功能的DSP加速引擎。每个处理器核对应一个事件控制单元,事件控制单元一端与事件总线连接,另一端的输入/输出事件与处理器核和路由单元连接。处理器中的事件总线分布在芯片内部,多个处理器核和路由单元即可分享同一事件,也可拥有独立的事件。这些事件,本质是事件总线中传递的脉冲信号,能够以广播方式向外发送。
(2)在众核处理器中,构建三维网格架构,在水平横向总线、水平纵向总线、以及垂直纵向总线的两两交点处放置路由单元。每个路由单元对应一个处理器核,处理器核即可以是微处理器,也可以是完成特定功能的DSP加速引擎。每个处理器核对应一个事件控制单元,事件控制单元一端与事件总线连接,另一端的输入/输出事件与处理器核和路由单元连接。处理器中的事件总线分布在芯片内部,多个处理器核和路由单元即可分享同一事件,也可拥有独立的事件。这些事件,本质是事件总线中传递的脉冲信号,能够以广播方式向外发送。
(3)在众核处理器中,构建线性阵列、环形、树形、星性等拓扑结构,在每个结点处放置路由单元。每个路由单元对应一个处理器核,处理器核即可以是微处理器,也可以是完成特定功能的DSP加速引擎。每个处理器核对应一个事件控制单元,事件控制单元一端与事件总线连接,另一端的输入/输出事件与处理器核和路由单元连接。处理器中的事件总线分布在芯片内部,多个处理器核和路由单元即可分享同一事件,也可拥有独立的事件。这些事件,本质是事件总线中传递的脉冲信号,能够以广播方式向外发送。
(4)在众核处理器中集成的处理器核和路由单元,具备接收和发送事件的功能。配置寄存器通过控制选通器的开、关,建立事件的传输通道。与处理单元和路由单元相连的事件数量,可以是一个,也可以是多个,不同事件分别代表不同的含义,实现对处理单元和路由单元功能的控制。
(5)在众核处理器中集成多个路由单元,这些路由单元主要由能够传递高吞吐、DMA数据流的静态路由模块和传递高并发、自寻址的动态路由模块组成。路由单元中集成的静态路由模块和动态路由模块数量可以是一个,也可以是多个。路由单元内部集成存储单元,能够缓存静态路由模块接收的数据或者动态路由模块接收的数据;并在事件控制下,将这些数据再通过静态路由模块或者动态路由模块传递出去。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。
Claims (10)
1.一种面向嵌入式的可配置众核处理器,其特征在于,包括:内部数据总线系统、事件总线系统、数据连接线、N个路由单元和N个处理器核;
内部数据总线系统,包括:若干条横向数据线和若干条纵向数据线;其中,若干条横向数据线和若干条纵向数据线横纵交错排列,形成N个交叉点,每个交叉点对应放置一个路由单元,相邻路由单元之间通过横向数据线或纵向数据线连接;
事件总线系统,包括:N个事件控制单元、事件总线和事件信号线;
一个处理器核对应一个路由单元和一个事件控制单元;其中,各处理器核与对应的路由单元之间通过数据连接线连接;各事件控制单元一方面与事件总线连接,另一方面通过事件信号线与对应的处理器核和路由单元连接,事件控制单元用于实现事件总线与事件信号线间的信号选通和逻辑连接。
2.根据权利要求1所述的面向嵌入式的可配置众核处理器,其特征在于,横向数据线、纵向数据线和数据连接线均为包含输入和输出的双向数据线。
3.根据权利要求1所述的面向嵌入式的可配置众核处理器,其特征在于,事件总线是传输信号的一组信号线,每一根信号线上传输表征不同含义的脉冲信号,每个表征不同含义的脉冲信号称为一个事件。
4.根据权利要求1所述的面向嵌入式的可配置众核处理器,其特征在于,处理器核,包括:输入事件寄存器、输出事件寄存器、控制逻辑单元、第一存储单元、运算逻辑单元和网络接口单元;
网络接口单元与当前处理器核对应的路由单元相匹配,包括:输入报文解析模块和输出报文解析模块;
输入事件寄存器的输入与当前处理器核对应的事件控制单元的输出相连接,输入事件寄存器的输出与控制逻辑单元的输入相连接;
控制逻辑单元的输出分别与第一存储单元的输入和运算逻辑单元的输入相连接;
第一存储单元与运算逻辑单元之间通过双向数据线相连接;
输出事件寄存器的输入与运算逻辑单元的输出相连接,输出事件寄存器的输出与当前处理器核对应的事件控制单元的输入相连接;
输入报文解析模块的输入与当前处理器核对应的路由单元的输出相连接,输入报文解析模块的输出与运算逻辑单元的输入相连接;
输出报文解析模块的输入与运算逻辑单元的输出相连接,输出报文解析模块的输出与当前处理器核对应的路由单元的输入相连接。
5.根据权利要求4所述的面向嵌入式的可配置众核处理器,其特征在于,
输入事件寄存器,用于寄存当前处理器核对应的事件控制单元的输出;
控制逻辑单元,用于对当前处理器核执行的指令进行译码,生成完成每条指令所要执行的各个操作的第一控制信号,并输出;
第一存储单元,用于暂存第一控制信号、等待处理和/或处理完成的数据;
运算逻辑单元,用于根据控制逻辑单元的输出、输入报文解析模块的输出和第一存储单元的输出,执行相应的算术运算和/或逻辑运算,并将算术运算和/或逻辑运算的运算结果输出至输出报文解析模块、第一存储单元和输出事件寄存器;
网络接口单元,用于对当前处理器核与相对应的路由单元之间的报文数据进行组装和解析;
输入报文解析模块,用于对路由单元传递进来的报文数据进行解析,判断报文数据是否是针对当前处理器核的报文,若是,则去掉报文数据的报头,提取得到有效数据,并发送给运算逻辑单元;输出报文解析模块,用于按照规定的报文格式,对运算逻辑单元输出的运算结果进行组装后输出至路由单元;
输出事件寄存器,用于寄存运算逻辑单元的输出。
6.根据权利要求1所述的面向嵌入式的可配置众核处理器,其特征在于,
事件总线,包括:一组单向传输的正向事件总线和一组单向传输的反向事件总线;其中,正向事件总线和反向事件总线的传输方向相反,正向事件总线和反向事件总线分别由K条信号线构成;
事件信号线,包括:P条输出事件信号线和Q条输入事件信号线。
7.根据权利要求6所述的面向嵌入式的可配置众核处理器,其特征在于,事件控制单元,包括:L个输出配置寄存器、L′个输入配置寄存器和J*(L+L′)个传输门;其中,J个传输门为一组,共计(L+L′)组传输门;一组传输门对应一个输出配置寄存器或一个输入配置寄存器;
每个输出配置寄存器通过引出的J根引线分别与对应的一组传输门下的J个传输门的控制端连接;
每个输入配置寄存器通过引出的J根引线分别与对应的一组传输门下的J个传输门的控制端连接;
与输出配置寄存器对应的一组传输门下的J个传输门的输入端分别与正向事件总线下的K条信号线和反向事件总线下的K条信号线连接;与输出配置寄存器对应的一组传输门下的J个传输门的输出端连接在一起,与对应的一条输出事件信号线连接;即,J=2K,P=L;
与输入配置寄存器对应的一组传输门下的J个传输门的输出端分别与正向事件总线下的K条信号线和反向事件总线下的K条信号线连接;与输入配置寄存器对应的一组传输门下的J个传输门的输入端连接在一起,与对应的一条输入事件信号线连接;即,Q=L′。
8.根据权利要求7所述的面向嵌入式的可配置众核处理器,其特征在于,传输门的栅极为控制端、源极为输入端、漏极为输出端;其中,当控制端所加电压使传输门的MOS管导通时,传输门呈现低导通电阻,允许电流向两个方向中的任何一个方向流通;当控制端加电压使MOS管截止时,传输门呈现高的截止电阻,不允许任何方向的电流流通。
9.根据权利要求1所述的面向嵌入式的可配置众核处理器,其特征在于,路由单元,包括:路由配置表、第一配置寄存器、第二配置寄存器、第三配置寄存器、第二存储单元、报文组装模块、静态路由模块、动态路由模块、路由单元输入数据线、路由单元输出数据线、路由输入事件信号线和路由输出事件信号线;
路由单元输入数据线,包括:上、下、左、右和处理器核5个方向的5条DMA输入数据线,以及上、下、左、右和处理器核5个方向的5条变量输入数据线;
路由单元输出数据线,包括:上、下、左、右和处理器核5个方向的5条DMA输出数据线,以及上、下、左、右和处理器核5个方向的5条变量输出数据线;
静态路由模块,包括:报文解析模块Ⅰ~Ⅴ、第一交叉条逻辑单元、多路选择器Ⅰ~Ⅴ和五路选择器;其中,各报文解析模块的输入分别连接路由配置表的输出和相应的1条DMA输入数据线,各报文解析模块的输出分别连接第一交叉条逻辑单元的一路输入和五路选择器的一路输入;五路选择器的输出连接至第二存储单元的输入;第一交叉条逻辑单元的五路输出分别与多路选择器Ⅰ~Ⅴ的输入连接;5条DMA输出数据线分别与多路选择器Ⅰ~Ⅴ的输出连接;第一配置寄存器的输出与第一交叉条逻辑单元的输入连接;第二配置寄存器的输出分别与多路选择器Ⅰ~Ⅴ的控制端连接;
动态路由模块,包括:报文解析模块Ⅵ、先入先出单元Ⅰ~Ⅴ、第二交叉条逻辑单元和多路选择器Ⅵ~Ⅹ;其中,报文解析模块Ⅵ的输入分别连接路由配置表和先入先出单元Ⅰ~Ⅴ的输出,报文解析模块Ⅵ的输出连接第二交叉条逻辑单元的输入;各先入先出单元的输入分别连接相应的1条变量输入数据线,各先入先出单元的输出分别连接报文解析模块Ⅵ的输入和第二交叉条逻辑单元的一路输入;第二交叉条逻辑单元的6路输出分别连接第二存储单元的输入和多路选择器Ⅵ~Ⅹ的输入;5条变量输出数据线分别与多路选择器Ⅵ~Ⅹ的输出连接;第三配置寄存器的输出分别与多路选择器Ⅵ~Ⅹ的控制端连接;
报文组装模块的输出分别与多路选择器Ⅰ~Ⅹ的输入连接;
第二存储单元分别与五路选择器的输出、报文组装模块的输入、第二交叉条逻辑单元的一路输出、路由输入事件信号线和路由输出事件信号线连接。
10.根据权利要求9所述的面向嵌入式的可配置众核处理器,其特征在于,
静态路由模块,用于控制DMA数据流传递路径;
动态路由模块,用于控制变量数据传递;
路由配置表,用于保存路由单元的物理坐标和逻辑坐标的对应关系、地址空间与路由单元逻辑坐标的对应关系,以供路由仲裁选择时使用;
第一配置寄存器,用于预设第一交叉条逻辑单元的5路输出与5路输入之间的对应关系;
第二配置寄存器,用于控制多路选择器Ⅰ~Ⅴ的输出选择;
报文解析模块Ⅰ~Ⅴ为一时序逻辑模块,用于对输入路由单元的报文进行解析,得到报文解析结果;根据报文解析结果,对输入路由单元的报文的类型进行判定,以确定输入路由单元的报文是DMA数据流传输还是DMA变量传输;根据报文解析结果和路由配置表中保存的对应关系,对输入路由单元的报文的目的地址进行判定,以确定输入路由单元的报文的目的地址是与当前路由单元相匹配还是需要继续沿路由传递;当确定输入路由单元的报文是DMA数据流,且报文的目的地址与当前路由单元不匹配时,继续沿路由传递报文,确定报文解析模块Ⅰ~Ⅴ与第一交叉条逻辑单元的输出连接有效;当确定输入路由单元的报文是DMA数据流,且报文的目的地址与当前路由单元不匹配时,确定报文解析模块Ⅰ~Ⅴ与五路选择器的输出连接有效;
第一交叉条逻辑单元为一组合逻辑模块,用于在第一交叉条逻辑单元的5个输入和5个输出之间建立交叉传输通路,即第一交叉条逻辑单元的任意一个输出可与任意一个输入连通;
报文解析模块Ⅵ为一时序逻辑模块,用于依据设定的优先级,分别对先入先出单元Ⅰ~Ⅴ输出的报文按照先后顺序进行解析,并输出路由方向仲裁信号,将路由方向仲裁信号作为第二交叉条逻辑单元的控制信号,使得先入先出单元Ⅰ~Ⅴ读出的报文能够继续传递;
第二交叉条逻辑单元为一组合逻辑模块,用于在第二交叉条逻辑单元的5个输入和5个输出之间建立交叉传输通路,即第二交叉条逻辑单元的任意一个输出可与任意一个输入连通;
第二存储单元,用于暂存从上、下、左、右和处理器核5个方向输入的DMA数据和变量数据,作为共享存储器供处理器核访问;
报文组装模块为一时序逻辑模块,用于将从第二存储单元中读出的数据,按照设定规则和格式组装成可在众核处理器的路由单元中传递的报文;
第三配置寄存器,用于控制多路选择器Ⅵ~Ⅹ在报文组装模块和第二交叉条逻辑单元的一路输出之间进行选择。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110924960.7A CN113704169B (zh) | 2021-08-12 | 2021-08-12 | 一种面向嵌入式的可配置众核处理器 |
PCT/CN2021/117738 WO2023015656A1 (zh) | 2021-08-12 | 2021-09-10 | 一种面向嵌入式的可配置众核处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110924960.7A CN113704169B (zh) | 2021-08-12 | 2021-08-12 | 一种面向嵌入式的可配置众核处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113704169A true CN113704169A (zh) | 2021-11-26 |
CN113704169B CN113704169B (zh) | 2024-05-28 |
Family
ID=78652450
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110924960.7A Active CN113704169B (zh) | 2021-08-12 | 2021-08-12 | 一种面向嵌入式的可配置众核处理器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113704169B (zh) |
WO (1) | WO2023015656A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114297097A (zh) * | 2021-12-01 | 2022-04-08 | 北京时代民芯科技有限公司 | 一种众核可定义分布式共享存储结构 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063408A (zh) * | 2010-12-13 | 2011-05-18 | 北京时代民芯科技有限公司 | 一种多核处理器片内数据总线 |
US20120089985A1 (en) * | 2010-10-12 | 2012-04-12 | International Business Machines Corporation | Sharing Sampled Instruction Address Registers for Efficient Instruction Sampling in Massively Multithreaded Processors |
WO2016159765A1 (en) * | 2015-03-27 | 2016-10-06 | Recore Systems B.V. | Many-core processor architecture and many-core operating system |
CN107562549A (zh) * | 2017-08-21 | 2018-01-09 | 西安电子科技大学 | 基于片上总线和共享内存的异构众核asip架构 |
CN110096475A (zh) * | 2019-04-26 | 2019-08-06 | 西安理工大学 | 一种基于混合互连架构的众核处理器 |
CN110347635A (zh) * | 2019-06-28 | 2019-10-18 | 西安理工大学 | 一种基于多层总线的异构多核微处理器 |
CN112650705A (zh) * | 2020-12-31 | 2021-04-13 | 清华大学 | 路由控制方法及人工智能处理器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591759B (zh) * | 2011-12-29 | 2014-08-13 | 中国科学技术大学苏州研究院 | 片上众核处理器时钟精确并行仿真系统 |
US9471537B2 (en) * | 2013-03-14 | 2016-10-18 | Altera Corporation | Hybrid programmable many-core device with on-chip interconnect |
-
2021
- 2021-08-12 CN CN202110924960.7A patent/CN113704169B/zh active Active
- 2021-09-10 WO PCT/CN2021/117738 patent/WO2023015656A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120089985A1 (en) * | 2010-10-12 | 2012-04-12 | International Business Machines Corporation | Sharing Sampled Instruction Address Registers for Efficient Instruction Sampling in Massively Multithreaded Processors |
CN102063408A (zh) * | 2010-12-13 | 2011-05-18 | 北京时代民芯科技有限公司 | 一种多核处理器片内数据总线 |
WO2016159765A1 (en) * | 2015-03-27 | 2016-10-06 | Recore Systems B.V. | Many-core processor architecture and many-core operating system |
CN107562549A (zh) * | 2017-08-21 | 2018-01-09 | 西安电子科技大学 | 基于片上总线和共享内存的异构众核asip架构 |
CN110096475A (zh) * | 2019-04-26 | 2019-08-06 | 西安理工大学 | 一种基于混合互连架构的众核处理器 |
CN110347635A (zh) * | 2019-06-28 | 2019-10-18 | 西安理工大学 | 一种基于多层总线的异构多核微处理器 |
CN112650705A (zh) * | 2020-12-31 | 2021-04-13 | 清华大学 | 路由控制方法及人工智能处理器 |
Non-Patent Citations (5)
Title |
---|
KEXIN ZHANG; YIFENG CHU: ""Design of Distributed Storage Multi-core System Based on NoC Architecture"", 2019 3RD INTERNATIONAL CONFERENCE ON ELECTRONIC INFORMATION TECHNOLOGY AND COMPUTER ENGINEERING (EITCE), 18 May 2020 (2020-05-18), pages 905 - 908 * |
宋立国;胡承秀;亓洪亮;: "面向SAR雷达信号处理的异构多核SoC研究", 《电子技术应用》, vol. 43, no. 1, 31 December 2017 (2017-12-31), pages 50 - 52 * |
汪健;张磊;王少轩;赵忠惠;陈亚宁;: "多核处理器核间高速通讯架构的研究", 《电子与封装》, vol. 11, no. 6, 20 June 2011 (2011-06-20), pages 41 - 48 * |
计卫星: "《稀疏矩阵计算优化》", 31 May 2021, 北京理工大学出版社, pages: 40 - 43 * |
郑方;许勇;李宏亮;谢向辉;陈左宁;: "一种面向高性能计算的自主众核处理器结构", 《中国科学:信息科学》, vol. 45, no. 4, 20 April 2015 (2015-04-20), pages 523 - 534 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114297097A (zh) * | 2021-12-01 | 2022-04-08 | 北京时代民芯科技有限公司 | 一种众核可定义分布式共享存储结构 |
CN114297097B (zh) * | 2021-12-01 | 2023-04-14 | 北京时代民芯科技有限公司 | 一种众核可定义分布式共享存储结构 |
WO2023097970A1 (zh) * | 2021-12-01 | 2023-06-08 | 北京微电子技术研究所 | 一种众核可定义分布式共享存储结构 |
Also Published As
Publication number | Publication date |
---|---|
CN113704169B (zh) | 2024-05-28 |
WO2023015656A1 (zh) | 2023-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yang et al. | Recursive diagonal torus: an interconnection network for massively parallel computers | |
CN103345461B (zh) | 基于fpga的带有加速器的多核处理器片上网络系统 | |
US20170220499A1 (en) | Massively parallel computer, accelerated computing clusters, and two-dimensional router and interconnection network for field programmable gate arrays, and applications | |
CN101808032B (zh) | 面向静态XY路由算法的二维网格NoC路由器优化设计方法 | |
CN102135949B (zh) | 基于图形处理器的计算网络系统、方法及装置 | |
CN109302357B (zh) | 一种面向深度学习可重构处理器的片上互联结构 | |
CN102521201A (zh) | 多核数字信号处理器片上系统及数据传输方法 | |
JP2001511326A (ja) | 大きな網目状接続コストを伴う大容量データを管理するための、2次元または多次元プログラマブルセル構造を有するモジュール並びにdfpに対する内部バスシステム | |
EP1590835A4 (en) | INTERCONNECTION ON ASYNCHRONOUS SYSTEM CHIP | |
Chen et al. | Reducing wire and energy overheads of the SMART NoC using a setup request network | |
CN105207957B (zh) | 一种基于片上网络多核架构的系统 | |
CN113114593B (zh) | 一种片上网络中双信道路由器及其路由方法 | |
CN103595627A (zh) | 基于多播维序路由算法的NoC路由器及其路由算法 | |
CN109271138A (zh) | 一种适用于大维度矩阵乘的链式乘法结构 | |
CN103106173A (zh) | 多核处理器核间互联的方法 | |
US20020018470A1 (en) | Datapipe routing bridge | |
CN113704169B (zh) | 一种面向嵌入式的可配置众核处理器 | |
Yan et al. | A DSP/FPGA-based parallel architecture for real-time image processing | |
CN111090611A (zh) | 一种基于fpga的小型异构分布式计算系统 | |
Huang et al. | Accelerating NoC-based MPI primitives via communication architecture customization | |
CN112486905A (zh) | 可重构异构化pea互连方法 | |
May | The next generation transputers and beyond | |
Pande et al. | Performance optimization for system-on-chip using network-on-chip and data compression | |
Mishra et al. | Custom Network on Chip architecture for map generation in autonomous navigating robots | |
Nishi et al. | The JUMP-1 Router Chip: A versatile router for supporting a distributed shared memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |