CN103106175A - 基于共享寄存器和流水处理的处理器阵列 - Google Patents
基于共享寄存器和流水处理的处理器阵列 Download PDFInfo
- Publication number
- CN103106175A CN103106175A CN2013100277556A CN201310027755A CN103106175A CN 103106175 A CN103106175 A CN 103106175A CN 2013100277556 A CN2013100277556 A CN 2013100277556A CN 201310027755 A CN201310027755 A CN 201310027755A CN 103106175 A CN103106175 A CN 103106175A
- Authority
- CN
- China
- Prior art keywords
- pipelining
- stage
- register file
- register
- processor
- 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
Images
Landscapes
- Multi Processors (AREA)
- Advance Control (AREA)
Abstract
本发明提供了一种基于共享寄存器和流水处理的处理器阵列,包括:多个处理器单元,划分在多个流水级内,每一流水级包括一个或多个处理器单元,不同流水级之间的处理器单元相互独立;多个寄存器文件,分布在所述多个流水级内,每一流水级包含一个寄存器文件,同一流水级内的处理器单元通过本流水级内的寄存器文件进行数据交互,各流水级内的寄存器文件将数据逐级推移至下一流水级内的寄存器文件。本发明能够使多个处理器单元协同工作,有利于提高处理器阵列的计算效率。
Description
技术领域
本发明涉及多处理器阵列技术,尤其涉及一种基于共享寄存器和流水处理的处理器阵列。
背景技术
多处理器***采用两个或多个计算处理单元,各计算处理单元可以通过总线或互联网络进行通信。处理器阵列则是由更多的处理器单元构成的阵列,用单一的控制部件来控制整个处理器阵列中每一处理器单元对各自的数据进行相关的运算和操作。
目前,对于实时复杂运算的需求不断增长,特别是视频以及人工智能方面的需求,因而要求更大规模的计算资源。但传统的单个或是多处理器单元无法满足如此大规模的计算需求,同时也无法满足快速实时反应的要求。
因此,需要利用处理器阵列这样的并行计算机硬件来提升计算效率,但是,在处理器阵列中包含的处理器单元较多时,需要一种更优的方案来使各个处理器单元协同工作。
发明内容
本发明要解决的技术问题是提供一种基于共享寄存器和流水处理的处理器阵列,能够使多个处理器单元协同工作,有利于提高处理器阵列的计算效率。
为解决上述技术问题,本发明提供了一种基于共享寄存器和流水处理的处理器阵列,包括:
多个处理器单元,划分在多个流水级内,每一流水级包括一个或多个处理器单元,不同流水级之间的处理器单元相互独立;
多个寄存器文件,分布在所述多个流水级内,每一流水级包含一个寄存器文件,同一流水级内的处理器单元通过本流水级内的寄存器文件进行数据交互,各流水级内的寄存器文件将数据逐级推移至下一流水级内的寄存器文件。
根据本发明的一个实施例,所述处理器阵列还包括:初始寄存器文件,与所述多个流水级中第一个流水级内的寄存器文件相连,用于存储待处理的原始数据,在所述处理器阵列启动时将所述原始数据推移至所述第一个流水级内的寄存器文件。
根据本发明的一个实施例,所述处理器阵列还包括:结果寄存器文件,与所述多个流水级中最后一个流水级内的寄存器文件相连,所述最后一个流水级内的寄存器文件将数据推移至所述结果寄存器文件。
根据本发明的一个实施例,所述处理器阵列还包括:全局流水级控制单元,用于控制所述多个流水级的启动以及各流水级之间的转换。
根据本发明的一个实施例,所述处理器阵列还包括:所述多个流水级具有相同的流水级时间。
根据本发明的一个实施例,相邻流水级内的寄存器文件通过寄存器空间复制的方式传递数据。
根据本发明的一个实施例,所述处理器单元包括MIPS核、ARM核或DSP核。
与现有技术相比,本发明具有以下优点:
本发明实施例的处理器阵列采用多个流水级的方式组织各个处理器单元,同一流水级内的处理器单元通过本流水级的寄存器文件进行数据交互,不同流水级内的处理器单元彼此之间并不直接进行通信,相邻流水级之间通过寄存器文件进行数据的传递,使得整个处理器阵列能够很好地协同工作,有利于提高运算处理效率。
附图说明
图1是本发明实施例处理器阵列的结构示意图。
具体实施方式
下面结合具体实施例和附图对本发明作进一步说明,但不应以此限制本发明的保护范围。
参考图1,本实施例的处理器阵列包括多个处理器单元PU,处理器单元PU可以是一般意义上由程序控制的逻辑单元,可以完成各种算术、逻辑、移位、乘加等运算,例如可以是MIPS核、ARM核或DSP核,但并不限于此。
各个处理器单元PU被划分成多个流水级(Stage),分别为流水级1、流水级2……流水级N,其中N为正整数。不同流水级的处理器单元PU是相互独立的,不能直接进行数据交互,换言之,不同流水级的处理器单元PU之间不具有直接的通信连接。
采用多个流水级的方案可以有效降低运算处理时间,能够将需要多个周期完成的计算工作有效拆分为较短时间周期的多个流水级来处理,每个流水级同时并行、独立工作。
每一流水级内包含一个寄存器文件,例如,流水级1内设置有流水级1寄存器文件,流水级2内设置有流水级2寄存器文件,……,流水级N内设置有流水级N寄存器文件。各个流水级之间通过寄存器文件来实现数据的传递。每一流水级的执行时间是启动之前设置确定的,并且作为一个优选的实施例,所有流水级具有相同的流水级时间。统一的流水级时间可以保证流水级不会出现溢出现象。
同一流水级内的处理器单元PU通过本流水级内的寄存器文件进行数据交互,同一流水级内的所有数据存放都在本流水级内的寄存器文件中进行,包括中间变量以及结果的存放。例如,流水级1内的各个处理器单元PU都与流水级1寄存器文件相连,流水级1内的各个处理器单元PU都将需要交互的数据存入流水级1寄存器文件,以供流水级1内的其他处理器单元PU共享。
各流水级内的寄存器文件将数据逐级推移至下一流水级内的寄存器文件,当前流水级完成数据处理后,将本流水级的寄存器文件中的内容推移至下一流水级内的寄存器文件。例如,流水级1中的各个处理器单元PU完成各自的操作运算,到达流水级时间时,流水级1内的流水级1寄存器文件的内容将被推移至流水级2内的流水级2寄存器文件。作为一个非限制性的例子,相邻流水级内寄存器文件采用寄存器空间复制的方式传递数据。
此外,本实施例的处理器阵列还包括初始寄存器文件,与第一个流水级内的寄存器文件相连,在本实施例中具体是和流水级1寄存器文件相连,用于存储待处理的原始数据,在处理器阵列启动时将存储的原始数据推移至流水级1寄存器文件中。之后,流水级1由启动控制指令触发,其中的各个处理器单元PU开始按照预设的指令对原始数据进行运算操作。
本实施例的处理器阵列还包括结果寄存器文件,与最后一个流水级内的寄存器文件相连,在本实施例中具体是和流水级N寄存器文件相连,流水级N寄存器文件将运算结果推移至结果寄存器文件中。另外,结果寄存器文件还可以通知外部器件取走运算结果。
本实施例的处理器阵列还包括全局流水级控制单元(图1中未示出),用于控制各个流水级的启动以及各个流水级之间的转换。在处理器阵列启动时,全局流水级控制单元接收到上一级流水级启动指令后,控制并启动下一级流水级内的全部处理器单元PU同时开始工作。全局流水级控制单元中还可以包括计数时钟,在计数到预设的周期数(即流水级时间)后,触发各流水级内的寄存器文件将数据推移至下一流水级内的寄存器文件。
仍然参考图1,下面对本实施例的处理器阵列的工作过程进行详细描述。
首先,本领域技术人员应当理解,图1所示的处理器阵列***还可以包裹用于装载指令和数据的存储部件。为了保证处理器阵列能够高速处理重复运算数据,通常可以将每一处理器单元PU所需的指令预先装载至各个处理器单元PU中。
准备处理器阵列所需要处理的原始数据,将其装载至初始寄存器文件中,完成装载后即可启动处理器阵列的各个流水级。首先启动流水级1,初始寄存器文件中的原始数据被推移至流水级1寄存器中,流水级1内的全部处理器单元PU开始工作,对流水级1寄存器文件中的原始数据进行相应的运算处理,处理过程中如果流水级1中的各个处理器单元PU需要进行数据交互,则可以将相应数据传输至流水级1寄存器中。在流水级1进行相关处理时,初始寄存器文件还可以装载新的待处理文件。
流水级1处理完成后,将启动下一流水级,即流水级2,该过程可以由全局流水级控制单元进行全局的调度控制。此时,流水级1寄存器文件中的全部或部分内容推移至流水级2寄存器文件中,继续后续的处理,保证整个***流水工作,提高效率。
在最后一个流水级(即流水级N)完成处理操作之后,最终的结果数据被推移至结果寄存器文件中。此时,***的数据读写部件就可以从结果寄存器文件读出相关的结果数据。
如此,则实现了整个处理器阵列的高速、并行、流水工作。
需要说明的是,为了尽可能高效地利用处理器阵列,在不考虑数据装载和存储所需的时间的情况下,需要合理安排每一流水级执行的指令数,以尽可能提高整体的工作效率。
综上,本实施例的处理器阵列具有如下优点:
通过同一流水级共享寄存器文件,可以使同一流水级内的多个处理器单元在同一寄存器文件内实现数据共享,同时每个处理器单元又能并行完成各自不同的运算。
通过多个流水级的并行运行,可以有效降低运算处理时间,将需要多周期完成的计算工作,有效的拆分成较短时间周期的多个流水级来处理。每个流水级同时独立工作,流水级之间可以通过寄存器空间复制的方法来传递计算数据。
基于以上两种手段,由同一流水级中的多个处理器单元以及多个流水级形成了本实施例的处理器阵列,该处理器阵列中所有的处理器单元都可以在同一时间点独立工作,有效地提升了整体处理能力。
本发明虽然以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保护范围应当以本发明权利要求所界定的范围为准。
Claims (7)
1.一种基于共享寄存器和流水处理的处理器阵列,其特征在于,包括:
多个处理器单元,划分在多个流水级内,每一流水级包括一个或多个处理器单元,不同流水级之间的处理器单元相互独立;
多个寄存器文件,分布在所述多个流水级内,每一流水级包含一个寄存器文件,同一流水级内的处理器单元通过本流水级内的寄存器文件进行数据交互,各流水级内的寄存器文件将数据逐级推移至下一流水级内的寄存器文件。
2.根据权利要求1所述的处理器阵列,其特征在于,还包括:
初始寄存器文件,与所述多个流水级中第一个流水级内的寄存器文件相连,用于存储待处理的原始数据,在所述处理器阵列启动时将所述原始数据推移至所述第一个流水级内的寄存器文件。
3.根据权利要求1所述的处理器阵列,其特征在于,还包括:
结果寄存器文件,与所述多个流水级中最后一个流水级内的寄存器文件相连,所述最后一个流水级内的寄存器文件将数据推移至所述结果寄存器文件。
4.根据权利要求1至3中任一项所述的处理器阵列,其特征在于,还包括:
全局流水级控制单元,用于控制所述多个流水级的启动以及各流水级之间的转换。
5.根据权利要求1至3中任一项所述的处理器阵列,其特征在于,所述多个流水级具有相同的流水级时间。
6.根据权利要求1至3中任一项所述的处理器阵列,其特征在于,相邻流水级内的寄存器文件通过寄存器空间复制的方式传递数据。
7.根据权利要求1至3中任一项所述的处理器阵列,其特征在于,所述处理器单元包括MIPS核、ARM核或DSP核。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310027755.6A CN103106175B (zh) | 2013-01-23 | 2013-01-23 | 基于共享寄存器和流水处理的处理器阵列 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310027755.6A CN103106175B (zh) | 2013-01-23 | 2013-01-23 | 基于共享寄存器和流水处理的处理器阵列 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103106175A true CN103106175A (zh) | 2013-05-15 |
CN103106175B CN103106175B (zh) | 2015-12-23 |
Family
ID=48314045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310027755.6A Active CN103106175B (zh) | 2013-01-23 | 2013-01-23 | 基于共享寄存器和流水处理的处理器阵列 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103106175B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678781A (zh) * | 2016-08-01 | 2018-02-09 | 北京百度网讯科技有限公司 | 处理器以及用于在处理器上执行指令的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1072788A (zh) * | 1991-11-27 | 1993-06-02 | 国际商业机器公司 | 动态多方式并行处理器阵列体系结构的计算机*** |
US20020174319A1 (en) * | 2001-05-15 | 2002-11-21 | International Business Machines Corporation | Method and apparatus for reducing logic activity in a microprocessor |
US20050149660A1 (en) * | 2004-01-07 | 2005-07-07 | International Business Machines Corporation | Multiprocessor data processing system having a data routing mechanism regulated through control communication |
CN101021830A (zh) * | 2007-03-29 | 2007-08-22 | 中国人民解放军国防科学技术大学 | 一种流处理器中多核扩展的方法 |
CN101526897A (zh) * | 2009-01-22 | 2009-09-09 | 杭州中天微***有限公司 | 嵌入式处理器高速协处理器接口 |
CN101944013A (zh) * | 2008-12-31 | 2011-01-12 | 英特尔公司 | 用于执行安全嵌入式容器的处理器扩展 |
-
2013
- 2013-01-23 CN CN201310027755.6A patent/CN103106175B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1072788A (zh) * | 1991-11-27 | 1993-06-02 | 国际商业机器公司 | 动态多方式并行处理器阵列体系结构的计算机*** |
US20020174319A1 (en) * | 2001-05-15 | 2002-11-21 | International Business Machines Corporation | Method and apparatus for reducing logic activity in a microprocessor |
US20050149660A1 (en) * | 2004-01-07 | 2005-07-07 | International Business Machines Corporation | Multiprocessor data processing system having a data routing mechanism regulated through control communication |
CN101021830A (zh) * | 2007-03-29 | 2007-08-22 | 中国人民解放军国防科学技术大学 | 一种流处理器中多核扩展的方法 |
CN101944013A (zh) * | 2008-12-31 | 2011-01-12 | 英特尔公司 | 用于执行安全嵌入式容器的处理器扩展 |
CN101526897A (zh) * | 2009-01-22 | 2009-09-09 | 杭州中天微***有限公司 | 嵌入式处理器高速协处理器接口 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678781A (zh) * | 2016-08-01 | 2018-02-09 | 北京百度网讯科技有限公司 | 处理器以及用于在处理器上执行指令的方法 |
CN107678781B (zh) * | 2016-08-01 | 2021-02-26 | 北京百度网讯科技有限公司 | 处理器以及用于在处理器上执行指令的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103106175B (zh) | 2015-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10095657B2 (en) | Processor, accelerator, and direct memory access controller within a core reading/writing local synchronization flag area for parallel | |
CN101387952B (zh) | 单芯片多处理器任务调度管理方法 | |
CN109002659B (zh) | 一种基于超级计算机的流体机械仿真程序优化方法 | |
CN102122275A (zh) | 一种可配置处理器 | |
CN105487838A (zh) | 一种动态可重构处理器的任务级并行调度方法与*** | |
WO2022161318A1 (zh) | 数据处理装置、方法及相关产品 | |
CN105183698A (zh) | 一种基于多核dsp的控制处理***和方法 | |
CN101504599A (zh) | 适于数字信号处理应用的专用指令集微处理*** | |
CN104317770A (zh) | 用于众核处理***的数据存储结构及数据访问方法 | |
Tang et al. | Dynamic slot allocation technique for MapReduce clusters | |
CN102360281B (zh) | 用于微处理器的多功能定点乘加单元mac运算装置 | |
CN112199173A (zh) | 双核cpu实时操作***数据处理方法 | |
CN100489830C (zh) | 面向科学计算的64位流处理器芯片 | |
CN112527729A (zh) | 一种紧耦合异构多核处理器架构及其处理方法 | |
CN101751373A (zh) | 基于单一指令集微处理器运算单元的可配置多核/众核*** | |
Wei et al. | Multi-core-, multi-thread-based optimization algorithm for large-scale traveling salesman problem | |
CN103106175B (zh) | 基于共享寄存器和流水处理的处理器阵列 | |
Stepchenkov et al. | Recurrent data-flow architecture: features and realization problems | |
CN111008042B (zh) | 基于异构流水线的高效通用处理器执行方法及*** | |
CN111078286B (zh) | 数据通信方法、计算***和存储介质 | |
CN110262884B (zh) | 一种基于申威众核处理器的核组内多程序多数据流分区并行的运行方法 | |
CN102023846B (zh) | 基于单片多处理器***的共享前端流水线结构 | |
CN114706813B (zh) | 多核异构片上***、非对称同步方法、计算设备和介质 | |
CN202281998U (zh) | 一种标量浮点运算加速器 | |
CN102129495B (zh) | 一种降低可重构算子阵列结构功耗的方法 |
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 |