CN113468102A - 混合粒度的计算电路模块和计算系统 - Google Patents
混合粒度的计算电路模块和计算系统 Download PDFInfo
- Publication number
- CN113468102A CN113468102A CN202110831241.0A CN202110831241A CN113468102A CN 113468102 A CN113468102 A CN 113468102A CN 202110831241 A CN202110831241 A CN 202110831241A CN 113468102 A CN113468102 A CN 113468102A
- Authority
- CN
- China
- Prior art keywords
- unit
- instruction
- reconfigurable
- granularity
- arithmetic unit
- 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.)
- Pending
Links
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/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7885—Runtime interface, e.g. data exchange, runtime control
- G06F15/7892—Reconfigurable logic embedded in CPU, e.g. reconfigurable unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Logic Circuits (AREA)
Abstract
本发明提供一种混合粒度的计算电路模块和计算系统,该混合粒度的计算电路模块包括:运算单元,用于负责执行相关指令;取指单元,用于负责取出指令以交由所述运算单元执行;解码单元,用于负责对指令进行解码以交由所述运算单元执行;载入/存储单元,用于负责载入、存储相关信息;其中,运算单元包括:通用运算单元,用于实现通用类型的指令;细粒度可重构运算单元,用于实现bit级别的可重构指令;粗粒度可重构运算单元,用于实现byte级别的可重构指令。本发明的混合粒度的计算电路模块实现了三种基本指令类型:通用指令、细粒度可重构指令以及粗粒度可重构指令,从而通过进一步的组合,最终可以提供七种类型的指令,极大的丰富了适用的场景。
Description
技术领域
本发明涉及可重构计算电路设计领域,尤其涉及一种混合粒度的计算电路模块和计算系统。
背景技术
传统的CPU往往只包含通用的指令集,数量和功能有限,通过动态可重构技术,可以通过配置信息重构出更多种指令。单一粒度的可重构无法兼顾配置信息的复杂性和实现功能的灵活性,而混合粒度可重构CPU正好可以解决这个问题。
目前,关于混合粒度的可重构计算电路,还停留在最初的想法层面,而对于具体如何设计或实现混合粒度的计算电路模块还没有相关的技术披露。
发明内容
为了解决上述技术问题,本发明公开了一种混合粒度的计算电路模块和计算系统,基于该混合粒度的计算电路结构设计的混合粒度的CPU实现了三种基本指令类型:通用指令、细粒度可重构指令以及粗粒度可重构指令,从而通过进一步的组合,最终混合粒度的CPU可以提供七种类型的指令,从而极大的丰富了适用的场景。
为达到上述目的,本发明的技术方案提供了一种混合粒度的计算电路模块,其包括:运算单元,用于负责执行相关指令;取指单元,用于负责取出指令以交由所述运算单元执行;解码单元,用于负责对指令进行解码以交由所述运算单元执行;载入/存储单元,用于负责载入、存储相关信息;其中,所述运算单元包括:通用运算单元,用于实现通用类型的指令;细粒度可重构运算单元,用于实现bit级别的可重构指令;粗粒度可重构运算单元,用于实现byte级别的可重构指令。
在进一步的技术方案中,所述细粒度可重构运算单元包括输入寄存器、查找表LUT阵列以及输出寄存器。
在进一步的技术方案中,所述查找表LUT阵列的每一个LUT为具有4位地址线和1位输出的16×1RAM。
在进一步的技术方案中,所述粗粒度可重构运算单元包括控制单元、处理单元阵列PEA、输入寄存器以及输出寄存器。
在进一步的技术方案中,所述处理单元阵列PEA的每个处理单元PE包括算术逻辑运算单元ALU、多路选择器MUX以及输入输出寄存器,其中,所述控制单元基于配置信息实现每个处理单元PE的可重构。
在进一步的技术方案中,每个处理单元PE还包括具有16位地址线和4位输出的64×8RAM。
在进一步的技术方案中,所述细粒度可重构运算单元和所述粗粒度可重构运算单元均包括2个输入寄存器。
在进一步的技术方案中,所述计算电路模块还包括:数据存储区DCCM、指令存储区、指令缓存、可中断控制器、调试接口以及总线接口。
本发明的实施方式还提供了一种混合粒度的计算系统,其包括如上所述的计算电路模块。
附图说明
图1是本发明的混合粒度计算电路模块的整体结构示意图;
图2是本发明的细粒度可重构运算单元的结构示意图;
图3是本发明的LUT的实现方式的示意图;
图4是本发明的LUT的具体实例的示意图;
图5是本发明的粗粒度可重构运算单元的结构示意图;
图6是本发明的处理单元PE的实现方式的示意图;
图7是本发明的混合粒度计算电路模块的指令类型的示意图。
具体实施方式
下面结合具体实施例对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
如背景技术部分提到的,传统的CPU往往只提供通用指令,例如提供以下指令:
1.c=a|b
2.c=a&b
3.c=a^b
其中,a、b、c都32位的数字,uint_32,这类操作是很常见的。
但是假定某些情况下,我们要自定义一个指令,是混合按位运算的,其定义如下:
1.c[3:0]=a[3:0]|b[3:0]
2.c[7:4]=a[7:4]&b[7:4]
3.c[11:8]=a[11:8]^b[11:8]
4.c[31:12]=c[31:12]
这时,通用的指令往往就不会提供支持,必须通过细粒度可重构指令来配置定义。
另外,假定某些情况下,我们要自定义一个指令,是混合按字节运算的,其定义如下:
1.(uchar&c)[0]=(uchar&a)[0]+(uchar&b)[0]
2.(uchar&c)[1]=(uchar&a)[1]-(uchar&b)[1]
3.(uchar&c)[2]=(uchar&a)[2]*(uchar&b)[2]
4.(uchar&c)[3]=(uchar&a)[3]/(uchar&b)[3]
这时,通用的指令往往就不会提供支持,必须通过粗粒度可重构指令来配置定义。
为此,本发明的实施方式提供了一种混合粒度的计算电路模块,其能够同时实现对上述通用指令、细粒度可重构指令以及粗粒度可重构指令的定义。
具体地,参见图1,本发明的混合粒度的计算电路模块包括:运算单元ALU,又称为执行单元EXU(EXecution Unit)用于负责执行相关指令;取指单元IFU(Instruction FetchUnit),用于负责取出指令以交由所述运算单元执行;解码单元DEC(DECoder unit),用于负责对指令进行解码以交由所述运算单元执行(具体地,将指令的二进制编码转换为方便运算单元执行的电路信号);载入/存储单元LSU(Load/Store Unit),用于负责载入、存储相关信息;其中,所述运算单元ALU包括:通用运算单元ALU_A,用于实现通用类型的指令;细粒度可重构运算单元ALU_C,用于实现bit级别的可重构指令;粗粒度可重构运算单元ALU_B,用于实现byte级别的可重构指令。
另外,如图1所示,除了以上单元之外,本发明的混合粒度的计算电路模块还包括如下模块或接口:数据存储区DCCM(Instruction Closely Coupled Memory)、指令存储区(Instruction Closely Coupled Memory)、指令缓存I-Cache(Instruction Cache)、可中断控制器PIC(Programmable Interrupt Controller)、调试接口Debug、与外部电路的数据总线接口LSU Bus、与外部电路的指令总线接口IFU Bus。
在本发明的混合粒度的计算电路模块中,通用运算单元ALU_A细粒度可重构运算单元ALU_C以及粗粒度可重构运算单元ALU_B集成在一起并共用模块中的取指单元IFU、解码单元DEC、载入/存储单元LSU以及其他模块和总线接口。
在具体实施方式中,细粒度可重构运算单元ALU_C主要通过查找表LUT(Look UpTable)阵列组成,由于查找表是按输入寄存器的bit位寻址的,所以通过配置LUT的RAM表格数据项,即可实现bit级别的可重构指令。
具体地,如图2所示,细粒度可重构运算单元包括输入寄存器src_reg、查找表LUT阵列LUT[M][N]以及输出寄存器dst_reg。
在查找表LUT阵列中,每个查找表LUT本质上就是一个RAM。如图3所示,本发明的LUT为具有4位地址线和1位输出的16×1RAM。
当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。参见图4,其示出了一个4输入与门的LUT的例子。
在上述细粒度可重构运算单元中,输入寄存器的数量并没有具体限制,但是考虑到在某些情况下,有些指令可能会需要两个输入寄存器(例如加法指令:add reg_in_0,reg_in_1,reg_out)或者一个寄存器的执行效率较低,因此,在优选的实施例中,如图2所示的,细粒度可重构运算单元包括2个输入寄存器src_reg[0]和src_reg[1],整个LUT阵列共享2个输入寄存器,从而提高编码效率和执行效率,而且实现结构比较简单。
在上述实施方式中,通过配置好查找表LUT阵列,即可完成对细粒度可重构指令的定义。
在具体实施方式中,粗粒度可重构运算单元ALU_B主要由处理单元阵列PEA组成,其中,每个PE的输入是Byte为单位的,所以通过配置每个PE,即可实现Byte级别的可重构指令。
具体地,如图5所示,粗粒度可重构运算单元ALU_B包括控制单元(未示出)、处理单元阵列PEA、输入寄存器src_reg以及输出寄存器dst_reg。
处理单元PE通常由一个算术逻辑单元(ALU)、多个多路选择器(MUX)、以及输入输出寄存器(32/64位)组成。控制单元通过配置信息来选择ALU的不同功能、选择MUX的不同输入、并选择存储在不同的寄存器里,从而实现单个PE的功能重构,进一步就实现了处理单元阵列PEA的功能重构。
另外,为了保证足够的数据存放空间,如图6所示的,每个处理单元PE还包括具有16位地址线和4位输出的64×8RAM。在具体指令操作中,先将数据从RAM中加载到寄存器中,然后再由ALU进行操作。
在进行处理单元阵列PEA的设计中,需要关注的核心设计参数主要包括:PE的颗粒度、PEA的同构和异构方式、PEA的配置方式和配置深度、PEA的拓扑结构和路由策略、PEA的接口技术以及PEA的计算模型。
·PE的颗粒度选择:颗粒度指的是数据的最小位宽。颗粒度越小,则灵活性大,但配置信息多;颗粒度大,则配置信息少,但灵活性较小,对低位宽数据的运算效率低下。颗粒度在很大程度影响了重构的通信代价和计算性能。
·处理单元阵列PEA的同构、异构方式选择:同构的PEA相对规整,控制简单,实现起来容易,但灵活性小;异构的PEA相对灵活,但是控制逻辑复杂。同构还是异构,一方面影响到控制逻辑复杂程度,另一方面也影响到PEA能够支持的配置模板数量。
·处理单元阵列PEA的配置方式和编程深度选择:静态配置的方式控制逻辑简单,但无法体现实时重构的特性,灵活性小;动态配置灵活性高,但控制逻辑复杂,面积消耗大。较小的编程深度对硬件资源的要求小,但对并行运算的支持能力较低。较大的编程深度对硬件资源的要求较高,对调度能力的要求也较高。配置方式和编程深度很大程度上决定了PE阵列的计算性能。
·处理单元阵列PEA的拓扑结构和路由策略选择:复杂的拓扑和路由策略可以实现较完整的互连,但是重构的通信代价和面积开销都比较大;简单的拓扑和路由策略又不足够灵活。拓扑结构和路由策略很大程度决定了PEA的灵活程度。
·处理单元阵列PEA的接口方式选择:PEA和控制单元得过于紧密,虽然通信代价很小,但是灵活性不够;耦合得过于松散,由于通信代价太高,控制单元对PEA的控制力随之减弱。PEA和存储器的耦合程度,也取决与通信代价。PEA的接口技术对处理器的数据吞吐率有重要影响,很大程度上决定了并行操作是否能够高效的进行,对系统通信代价模型的建立也有重要意义。
另外,类似地,如图5所示的,粗粒度可重构运算单元的输入寄存器的数量优选的为2个,从而整个PEA共享2个输入寄存器,从而提高编码效率和执行效率,而且实现结构比较简单。
在上述实施方式中,通过配置好每个PE,即可实现Byte级别的可重构指令。
通过本发明的混合粒度的计算电路模块,可以提供三种基本指令类型,即:
1.通用指令;
2.细粒度可重构指令;
3.粗粒度可重构指令。
另外,这种三种基本指令类型还可以通过组合,重构出四种类型的组合类指令类型。如图7所示:
4.通用指令+细粒度可重构指令;
5.通用指令+粗粒度可重构指令;
6.细粒度可重构指令+粗粒度可重构指令;
7.通用指令+细粒度可重构指令+粗粒度可重构指令。
所以,本发明的混合粒度的计算电路模块总共可以提供7种类型的指令,极大的丰富了适用的场景。
在本发明的其他实施方式中,还提供了一种混合粒度的计算系统,其包括如上所述的计算电路模块。
以上所述的仅是本发明的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (9)
1.一种混合粒度的计算电路模块,其特征在于,包括:
运算单元,用于负责执行相关指令;
取指单元,用于负责取出指令以交由所述运算单元执行;
解码单元,用于负责对指令进行解码以交由所述运算单元执行;
载入/存储单元,用于负责载入、存储相关信息;
其中,所述运算单元包括:
通用运算单元,用于实现通用类型的指令;
细粒度可重构运算单元,用于实现bit级别的可重构指令;
粗粒度可重构运算单元,用于实现byte级别的可重构指令。
2.根据权利要求1所述的计算电路模块,其特征在于,所述细粒度可重构运算单元包括输入寄存器、查找表LUT阵列以及输出寄存器。
3.根据权利要求2所述的计算电路模块,其特征在于,所述查找表LUT阵列的每一个LUT为具有4位地址线和1位输出的16×1RAM。
4.根据权利要求3所述的计算电路模块,其特征在于,所述粗粒度可重构运算单元包括控制单元、处理单元阵列PEA、输入寄存器以及输出寄存器。
5.根据权利要求4所述的计算电路模块,其特征在于,所述处理单元阵列PEA的每个处理单元PE包括算术逻辑运算单元ALU、多路选择器MUX以及输入输出寄存器,其中,所述控制单元基于配置信息实现每个处理单元PE的可重构。
6.根据权利要求5所述的计算电路模块,其特征在于,每个处理单元PE还包括具有16位地址线和4位输出的64×8RAM。
7.根据权利要求6所述的计算电路模块,其特征在于,所述细粒度可重构运算单元和所述粗粒度可重构运算单元均包括2个输入寄存器。
8.根据权利要求1-7中任一项所述的计算电路模块,其特征在于,所述计算电路模块还包括:数据存储区DCCM、指令存储区、指令缓存、可中断控制器、调试接口以及总线接口。
9.一种混合粒度的计算系统,其特征在于,包括如权利要求1-8中任一项所述的计算电路模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110831241.0A CN113468102A (zh) | 2021-07-22 | 2021-07-22 | 混合粒度的计算电路模块和计算系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110831241.0A CN113468102A (zh) | 2021-07-22 | 2021-07-22 | 混合粒度的计算电路模块和计算系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113468102A true CN113468102A (zh) | 2021-10-01 |
Family
ID=77881800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110831241.0A Pending CN113468102A (zh) | 2021-07-22 | 2021-07-22 | 混合粒度的计算电路模块和计算系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113468102A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115878558A (zh) * | 2022-11-29 | 2023-03-31 | 白盒子(上海)微电子科技有限公司 | 一种支持混合粒度可重构的通用sdr平台 |
CN116702852A (zh) * | 2023-08-02 | 2023-09-05 | 电子科技大学 | 基于多阶段事件驱动的动态重构神经网络加速电路及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060012395A1 (en) * | 2002-05-09 | 2006-01-19 | Huppenthal Jon M | Reconfigurable processor element utilizing both course and fine grained reconfigurable elements |
CN101030191A (zh) * | 2007-04-13 | 2007-09-05 | 北京时代民芯科技有限公司 | 粗粒度可重配置计算结构中数据输入输出结构 |
CN102413036A (zh) * | 2011-08-22 | 2012-04-11 | 复旦大学 | 一种实时部分动态可重构系统 |
CN112084139A (zh) * | 2020-08-25 | 2020-12-15 | 上海交通大学 | 一种基于数据流驱动的多发射混合粒度可重构阵列处理器 |
CN112463719A (zh) * | 2020-12-04 | 2021-03-09 | 上海交通大学 | 一种基于粗粒度可重构阵列实现的存内计算方法 |
CN112732639A (zh) * | 2021-04-01 | 2021-04-30 | 南京大学 | 一种粗粒度动态可重构处理器及其数据处理方法 |
-
2021
- 2021-07-22 CN CN202110831241.0A patent/CN113468102A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060012395A1 (en) * | 2002-05-09 | 2006-01-19 | Huppenthal Jon M | Reconfigurable processor element utilizing both course and fine grained reconfigurable elements |
CN101030191A (zh) * | 2007-04-13 | 2007-09-05 | 北京时代民芯科技有限公司 | 粗粒度可重配置计算结构中数据输入输出结构 |
CN102413036A (zh) * | 2011-08-22 | 2012-04-11 | 复旦大学 | 一种实时部分动态可重构系统 |
CN112084139A (zh) * | 2020-08-25 | 2020-12-15 | 上海交通大学 | 一种基于数据流驱动的多发射混合粒度可重构阵列处理器 |
CN112463719A (zh) * | 2020-12-04 | 2021-03-09 | 上海交通大学 | 一种基于粗粒度可重构阵列实现的存内计算方法 |
CN112732639A (zh) * | 2021-04-01 | 2021-04-30 | 南京大学 | 一种粗粒度动态可重构处理器及其数据处理方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115878558A (zh) * | 2022-11-29 | 2023-03-31 | 白盒子(上海)微电子科技有限公司 | 一种支持混合粒度可重构的通用sdr平台 |
CN116702852A (zh) * | 2023-08-02 | 2023-09-05 | 电子科技大学 | 基于多阶段事件驱动的动态重构神经网络加速电路及系统 |
CN116702852B (zh) * | 2023-08-02 | 2023-10-20 | 电子科技大学 | 基于多阶段事件驱动的动态重构神经网络加速电路及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7568086B2 (en) | Cache for instruction set architecture using indexes to achieve compression | |
US6671797B1 (en) | Microprocessor with expand instruction for forming a mask from one bit | |
US6496918B1 (en) | Intermediate-grain reconfigurable processing device | |
US5968167A (en) | Multi-threaded data processing management system | |
US6351143B1 (en) | Content-addressable memory implemented using programmable logic | |
US8612726B2 (en) | Multi-cycle programmable processor with FSM implemented controller selectively altering functional units datapaths based on instruction type | |
US20130111188A9 (en) | Low latency massive parallel data processing device | |
WO2006082091A2 (en) | Low latency massive parallel data processing device | |
JP2001256038A (ja) | 柔軟な乗算ユニットを有するデータ・プロセッサ | |
CN113468102A (zh) | 混合粒度的计算电路模块和计算系统 | |
US7352205B2 (en) | Reconfigurable switching device parallel calculation of any particular algorithms | |
EP2304594B1 (en) | Improvements relating to data processing architecture | |
CN112486903A (zh) | 可重构处理单元、可重构处理单元阵列及其运行方法 | |
Miyazaki et al. | RVCoreP: An optimized RISC-V soft processor of five-stage pipelining | |
Bhagat et al. | Design and Analysis of 16-bit RISC Processor | |
Verdoscia et al. | A Data‐Flow Soft‐Core Processor for Accelerating Scientific Calculation on FPGAs | |
US7509479B2 (en) | Reconfigurable global cellular automaton with RAM blocks coupled to input and output feedback crossbar switches receiving clock counter value from sequence control unit | |
US6889320B1 (en) | Microprocessor with an instruction immediately next to a branch instruction for adding a constant to a program counter | |
JP2010117806A (ja) | 半導体装置、および、半導体装置によるデータ処理方法 | |
Parizi et al. | A reconfigurable architecture for wireless communication systems | |
US7587582B1 (en) | Method and apparatus for parallel arithmetic operations | |
Kojima et al. | Refinements in data manipulation method for coarse grained reconfigurable architectures | |
Bunyk et al. | Design of an RSFQ microprocessor | |
CN115168284B (zh) | 面向深度学习的粗粒度可重构阵列系统及计算方法 | |
Wiegand et al. | Definition of a configurable architecture for implementation of global cellular automaton |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211001 |