CN109144573A - 基于risc-v指令集的二级流水线架构 - Google Patents
基于risc-v指令集的二级流水线架构 Download PDFInfo
- Publication number
- CN109144573A CN109144573A CN201810933214.2A CN201810933214A CN109144573A CN 109144573 A CN109144573 A CN 109144573A CN 201810933214 A CN201810933214 A CN 201810933214A CN 109144573 A CN109144573 A CN 109144573A
- Authority
- CN
- China
- Prior art keywords
- instruction
- unit
- module
- execution
- write
- 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
- 238000012545 processing Methods 0.000 claims abstract description 11
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims abstract description 9
- 238000004364 calculation method Methods 0.000 claims abstract description 4
- 238000012546 transfer Methods 0.000 claims description 11
- 238000000034 method Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 5
- 238000003860 storage Methods 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 3
- 238000006073 displacement reaction Methods 0.000 claims description 3
- 238000000465 moulding Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 11
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000010304 firing Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000032696 parturition Effects 0.000 description 2
- 241000554155 Andes Species 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
Classifications
-
- 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/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
Abstract
本发明公开了一种基于RISC‑V指令集的二级流水线架构,包括:取指令单元、执行单元、数据读写单元、长流水线数据处理单元、扩展加速接口协处理器、回写整数通用寄存器和总线接口单元,取指令单元取出指令后通过IR寄存器将指令发送至执行单元,时通过PC寄存器将指令的PC值发送至执行单元,执行单元根据接收的指令和指令PC值对指令进行译码和派遣,执行单元通过译码出的操作数寄存器索引读取回写整数通用寄存器,执行单元将指令派遣给各运输模块进行运算,执行单元将指令运算的结果写回至回写整数通用寄存器,总线接口单元用于辅助指令传输,通过在处理器内核中采用两级流水线架构,以达到降低处理器内核架构成本、提高处理器性能的目的。
Description
技术领域
本发明涉及低功耗处理器内核架构,具体涉及一种基于RISC-V指令集的二级流水线架构。
背景技术
在传统的计算机体系结构分类中,处理器应用分为3个领域,分别为:服务器领域、PC领域和嵌入式领域。目前在服务器领域和PC领域,x86架构是当之无愧的巨无霸,没有指令集架构可撼动其垄断地位。近年来,随着各种新技术的进一步发展,嵌入式领域本身也被发展成了几个不同的子领域。首先是伴随智能手机(Mobile Smart Phone)和手持设备(Mobile Device)的发展,移动领域逐渐发展成了规模可匹敌甚至超过PC领域的一个独立领域,其主要由ARM的Cotex-A系列处理器架构所垄断。由于其对软件生态的严重依赖,使得其他的处理器架构很难再进入该领域。其次是实时(Real Time)嵌入式领域,虽然其对软件生态的的依赖性相对没有那么严重,但是由于ARM处理器IP商业推广的成功,其处理器架构占据了大多数的市场份额,其他处理器架构如Synopsys ARC等也有不错的市场成绩。最后是深嵌入式领域,该领域更类似传统嵌入式领域。该领域的需求量非常之大,但往往注重低功耗、低成本和高能效比,同时该领域对软件生态的依赖性相对比较低,在该领域很难形成绝对的垄断,然而由于ARM处理IP商业推广的成功,目前以ARM的Cotex-M处理器占据了大多数的市场份额,其他的架构如Synopsys ARC和Andes等也有不错的表现。
Cotex-M是一组用于低功耗微控制器领域的32位RISC处理器系列,包括:
Cotex-M3,于2004年发布,流水线深度是3级,面向标准嵌入式市场的高性能低成本ARM处理器。
Cotex-M1,于2007年发布,流水线深度是3级,专门面向FPGA中设计实现的ARM处理器。
Cotex-M0,于2009年发布,流水线深度是3级,面积最小和能耗极低的ARM处理器。
Cotex-M4,于2010年发布,流水线深度是3级,在M3基础上增加单精度浮点、DSP功能以满足数字信号控制市场的ARM处理器。
Cotex-M0+,于2012年发布,流水线深度是2级,在M0基础上进一步降低功耗的ARM处理器。
Cotex-M7,于2014年发布,流水线深度是6级,超标量设计,配备分支预测单元,不仅支持单精度浮点,还增加了硬件双精度浮点能力,进一步提升计算性能和DSP处理能力,主要面向高端嵌入式市场。
Cotex-M23,于2016年发布,流水线深度是2级,可以简单理解为在Cotex-M0+的基础上增加了硬件证书除法器与安全特性(Trust Zone Security)。
Cotex-M33,于2016年发布,流水线深度是3级,可以简单理解为在Cotex-M4的基础上增加了安全特性(Trust Zone Security)。
目前商用的超低功耗处理器内核以ARM架构的Coetex-M内核IP为主,流水线深度以2级或3级为主,仅具备紧耦合指令存储器(ITCM)和数据存储器(DTCM),不具备指令缓存(I-Cache)和数据缓存(D-Cache)。同时,该系列处理器内核还具备以下缺点:
1.ARM商用架构内核的授权成本太高。
2.处理器性能低下。
3.由于没有缓存而只有ITCM,如果存放足够多的指令代码,而ITCM的SRAM过大会增加芯片成本;反之,如果ITCM的SRAM较小则无法承载足够多的指令代码。
发明内容
为解决上述技术问题,本发明提出了一种基于RISC-V指令集的二级流水线架构,以达到降低处理器内核架构成本、提高处理器性能的目的。
为达到上述目的,本发明的技术方案如下:一种基于RISC-V指令集的二级流水线架构,所述架构包括:取指令单元(IFU:Instruction Fetch Unit)、执行单元(EXU:Execution Unit)、数据读写单元(LSU:load store unit)、长流水线数据处理单元(LongPipes)、扩展加速接口协处理器(EAI:Extended accleration interface协处理器)、整数通用寄存器(Regfile)和总线接口单元(BIU:bus interface unit);
所述取指令单元与执行单元之间设置有IR寄存器和PC寄存器,所述取指令单元取出指令后通过IR寄存器将指令发送至执行单元,所述取指令单元在发送指令的同时通过PC寄存器将指令的PC值发送至执行单元,所述执行单元根据接收的指令和指令PC值对指令进行译码和派遣,所述执行单元通过译码出的操作数寄存器索引读取整数通用寄存器,所述执行单元将指令派遣给数据读写单元、长流水线数据处理单元和扩展加速接口协处理器进行运算,所述执行单元将指令运算的结果写回至整数通用寄存器,所述总线接口单元用于辅助指令传输。
进一步地,指令的PC值为指令的地址。
进一步地,所述取指令单元包括:Mini-Decode模块、全局分支预测器(BPU:BranchProcessing Unit)、PC生成模块、地址判断和ICB总线控制模块、指令传输总线(ITCM)和指令高速缓存存储器(I-cache);
所述Mini-Decode模块用于对取回的指令进行译码;所述全局分支预测器,用于对经过Mini-Decode模块译码后发现的分支跳转指令进行分支预测;所述PC生成模块,用于生成下一个待取指令的PC值;所述地址判断和ICB总线控制模块,用于根据指令的PC值访问指令传输总线或总线接口单元;所述指令传输总线,用于辅助指令传输;所述指令高速缓存存储器,用于缓存多条指令。
进一步地,所述译码的逻辑主要根据RISC-V指令的编码规则进行译码。
进一步地,所述执行单元包括:译码与派遣模块、滞外指令追踪先入先出缓存模块(OITF:Outstanding Instruction Track FIFO)、算术逻辑单元(ALU:alogirithm logicunit)和写回仲裁模块;
所述译码与派遣模块,用于对取指令单元发送来的指令进行译码并在读取操作数后将译码后的指令派遣到多个运算单元进行运算;所述滞外指令追踪先入先出缓存模块,用于检测指令的相关性;所述算术逻辑单元,用于根据指令进行运算;所述写回仲裁模块,用于将指令的运算结果写回到通用寄存器。
进一步地,所述算术逻辑单元包括:普通算术逻辑运算模块(Regular-ALU)、访问地址生成模块(AGU:Address Generation Unit)、分支预测解析模块(BJP:Branch andJump resolve)、CSR读写控制模块和多周期乘除法器模块;
所述普通算术逻辑运算模块,用于逻辑运算指令、加减法指令和位移指令的执行;所述访问地址生成模块,用于Load、Store和“A”扩展指令的地址生成,以及“A”扩展指令的微操作拆分和执行;所述分支预测解析模块,用于Branch指令和Jump指令的结果分析和执行;所述CSR读写控制模块,用于CSR读写指令的执行;所述多周期乘除法器模块,用于乘法和除法的指令执行。
进一步地,所述数据读写单元包括两组输入ICB总线接口和三组输出ICB总线接口,所述两组输入ICB总线接口分别来自于访问地址生成模块和扩展加速接口协处理器;所述三组输出ICB总线接口分别分发给总线接口单元、指令传输总线和数据传输总线(DTCM)。
进一步地,所述执行单元将指令派遣时,检查当前指令是否和之前派遣执行尚未写回的指令存在数据相关性。
本发明中的二级流水线划分规则如下:流水线的第一级为“取指”,由取指令单元(IFU)完成,流水线的第二级为“译码”、“执行”和“写回”,“访问”划分在第二级流水线的最后一步。
本发明在派遣指令时,采用顺序单条发射指令的架构;执行时为乱序执行;写回时,ALU指令按顺序写回,非ALU指令按顺序写回,但两者之间乱序写回。
本发明具有如下优点:
(1).本发明通过在处理器内核中采用两级流水线架构,有效的降低处理器内核的架构授权成本、提高了处理器内核的性能。
(2).本发明使用全局分支预测器对跳转指令进行动态预测,提高了预测的精度。
(3).本发明私有的ITCM与DTCM在实现了指令与数据分离存储的同时,能够保证实时性,提高了处理器的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例公开的二级流水线架构示意图;
图2为本发明实施例公开的取指令单元交互示意图;
图3为本发明实施例公开的执行单元交互示意图;
图4为本发明实施例公开的算术逻辑单元交互示意图;
图5为本发明实施例公开的整数通用寄存器工作示意图;
图6为本发明实施例公开的OITF模块交互示意图;
图7为本发明实施例公开的存储器子系统的结构示意图;
图8为本发明实施例公开的ITCM微架构示意图;
图9为本发明实施例公开的DTCM微架构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明提供了一种基于RISC-V指令集的二级流水线架构,其工作原理是通过在处理器内核中采用两级流水线架构,以达到降低处理器内核架构成本、提高处理器性能的目的。
下面结合实施例和具体实施方式对本发明作进一步详细的说明。
如图1-图7所示,一种基于RISC-V指令集的二级流水线架构,所述架构包括:取指令单元(IFU:Instruction Fetch Unit)、执行单元(EXU:Execution Unit)、数据读写单元(LSU:load store unit)、长流水线数据处理单元(Long Pipes)、扩展加速接口协处理器(EAI:Extended accleration interface协处理器)、整数通用寄存器(Regfile)和总线接口单元(BIU:bus interface unit);
所述取指令单元与执行单元之间设置有IR寄存器和PC寄存器,所述取指令单元取出指令后通过IR寄存器将指令发送至执行单元,所述取指令单元在发送指令的同时通过PC寄存器将指令的PC值发送至执行单元,所述执行单元根据接收的指令和指令PC值对指令进行译码和派遣,所述执行单元通过译码出的操作数寄存器索引读取整数通用寄存器,所述执行单元将指令派遣给数据读写单元、长流水线数据处理单元和扩展加速接口协处理器进行运算,所述执行单元将指令运算的结果写回至整数通用寄存器,所述总线接口单元用于辅助指令传输。
其中,指令的PC值为指令的地址。
其中,所述取指令单元包括:Mini-Decode模块、全局分支预测器(BPU:BranchProcessing Unit)、PC生成模块、地址判断和ICB总线控制模块、指令传输总线(ITCM)和指令高速缓存存储器(I-cache);
所述Mini-Decode模块用于对取回的指令进行译码;所述全局分支预测器,用于对经过Mini-Decode模块译码后发现的分支跳转指令进行分支预测;所述PC生成模块,用于生成下一个待取指令的PC值;所述地址判断和ICB总线控制模块,用于根据指令的PC值访问指令传输总线或总线接口单元;所述指令传输总线,用于辅助指令传输;所述指令高速缓存存储器,用于缓存多条指令。
其中,全局分支预测是将32个“两比特饱和计数器”组织成PHT(Pattern HistoryTable),其索引采用的是Gselect算法,即使用分支指令PC值的4位和共享的全局历史缓存的1位进行拼接运算后将运算结果作为PHT的索引。
其中,指令高速缓存存储器,介于CPU和主存之间,由SRAM组成,其工作速度数倍于主存,主存到I-cache的地址变换采用的是组相关联映像的方法,即将I-cache字块分成两组,每组的块容量大小是可配置的,每块的大小为32字节,指令缓存加快了指令的执行速度,提高了处理器性能。
其中,所述译码的逻辑主要根据RISC-V指令的编码规则进行译码。
其中,所述执行单元包括:译码与派遣模块、滞外指令追踪先入先出缓存模块(OITF:Outstanding Instruction Track FIFO)、算术逻辑单元(ALU:alogirithm logicunit)和写回仲裁模块;
所述译码与派遣模块,用于对取指令单元发送来的指令进行译码并在读取操作数后将译码后的指令派遣到多个运算单元进行运算;所述滞外指令追踪先入先出缓存模块,用于检测指令的相关性;所述算术逻辑单元,用于根据指令进行运算;所述写回仲裁模块,用于将指令的运算结果写回到通用寄存器。
其中,指令译码后产生不同的指令类型信息,操作数寄存器索引等,派遣(Dispatch)发生在流水线的执行阶段,表示指令经过译码且从寄存器组中读取了操作数之后被派遣到不同的运算单元(ALU、Long Pipes、LSU和EAI)执行的过程。
其中,通用寄存器主要用于实现RISC-V架构定义的整数通用寄存器组,RISC-V的整数指令都是单操作数或两操作数指令,且本发明属于单发射(一次发射派遣一条指令)的微架构,因此Integer-Regfile模块只需要支持最多两个读端口,同时,本发明的写回策略是具备乱序写回的能力,因此支持两个写端口。
其中,所述算术逻辑单元包括:普通算术逻辑运算模块(Regular-ALU)、访问地址生成模块(AGU:Address Generation Unit)、分支预测解析模块(BJP:Branch and Jumpresolve)、CSR读写控制模块和多周期乘除法器模块;
所述普通算术逻辑运算模块,用于逻辑运算指令、加减法指令和位移指令的执行;所述访问地址生成模块,用于Load、Store和“A”扩展指令的地址生成,以及“A”扩展指令的微操作拆分和执行;所述分支预测解析模块,用于Branch指令和Jump指令的结果分析和执行;所述CSR读写控制模块,用于CSR读写指令的执行;所述多周期乘除法器模块,用于乘法和除法的指令执行。
其中,CSR读写指令包括CSRRW、CSRRS、CSRRC、CSRRWI、CSRRSI以及CSRRCI指令。
以上算术逻辑单元的5个功能子模块只负责具体指令执行的控制,他们均共享一份实际的运算数据通路,因此主要数据通路的面积开销只有一份,使处理器内核架构实现低功耗、小面积。
其中,所述数据读写单元包括两组输入ICB总线接口和三组输出ICB总线接口,所述两组输入ICB总线接口分别来自于访问地址生成模块和扩展加速接口协处理器;所述三组输出ICB总线接口分别分发给总线接口单元、指令传输总线和数据传输总线(DTCM)。
其中,AGU是ALU的一个子模块,根据RISC-V架构定义,读/写指令需要将第一个寄存器索引的源操作数和符号位扩展的立即数相加,得到最终的访问地址,因此理论上需要加法器。为了节省面积,本发明复用ALU的加法器用于访问地址计算。RISC-V架构对于地址非对齐(Address Misalign)的读写指令,本发明采用软件支持。AGU通过对生成的访问地址进行判断,如果地址非对齐,则产生异常标志、通过ALU传送给交付模块,交付模块则据此则产生异常。如果没有产生异常的读/写指令,则通过AGU的ICB接口发送给LSU模块。
其中,LSU是本发明处理器内核架构的主要控制单元,LSU有两组输入LCB总线接口,分别来自于AGU模块和EAI协处理器,有3组输出ICB总线接口,分别发给BIU、DTCM和ITCM。另外,LSU通过其写回接口将果写回,两组输入ICB总线经过一个“ICB汇合”模块将其汇合成一组ICB总线,采用的是优先级仲裁,EAI总线具有更高的优先级。经过汇合之后的ICB总线通过其命令通道(Command Channel)的地址进行判断,通过其访问的地址区间产生分发信息,然后使用一个“ICB分发”模块分发给不同的存储器组件的ICB接口(包括BIU、ITCM、DTCM)。由于访问不同的存储器组件可能会出现存储器访问错误(Memory AccessFault),可以通过ICB的反馈通道(Response Channel)返回标志信号所得,如果出现错误,则产生标志通过LSU的写回接口传送给交付模块,交付模块则据此产生异常
其中,所述执行单元将指令派遣时,检查当前指令是否和之前派遣执行尚未写回的指令存在数据相关性。
本发明在执行阶段的一个重要职能是维护并解决流水线的冲突,包括资源冲突和数据冲突。
资源冲突通常发生在指令派遣给不同的执行单元进行执行的过程中。主要是通过采用严谨的valid-ready握手接口的方法解决的。
而对于数据相关性引起的数据冲突,本发明在执行阶段处理得比较巧妙。首先,本发明将所有指令分成两类,其中之一是单周期执行指令,由于本发明的交付功能和写回均处于流水线的第二级,因此单周期指令在流水线的第二级便完成了交付,同时也将结果写回了整数通用寄存器组(Regfile);另一种是多周期执行的指令,这种指令通常需要多个周期才能够执行并写回,称之为“后交付长流水线指令(Post-Commit Write-back Long-Pipes Instruction),简称为“长指令(Long-Pipes Instruction)”。
本发明是简单的按顺序单发射(派遣)微架构,在每条指令被进行派遣时,需要检查其是否和之前派遣执行尚未写回的指令存在数据相关性。数据相关性分为三种:
WAR(Write-After-Read)相关性:由于本发明是按顺序派遣、按顺序写回的微架构,在指令的派遣时就已经从通用寄存器组中读取了源操作数。因此“后续执行的指令写回Regfile操作”不可能会发生在“前序执行的指令从Regfile中读取操作数”之前,因此不可能会发生WAR相关性造成的数据冲突。
RAW(Read-After-Write)相关性:正在派遣的指令处于流水线的第二级,假设之前派遣的指令(简称前序指令)是单周期执行指令(也处于流水线的第二级写回),则前序指令肯定已经完成了执行并且将结果写回了Regfile。因此正在派遣的指令不可能产生和前序单周期指令的RAW相关性造成的数据冲突。但是假设之前派遣的指令(简称前序指令)是长指令,由于长指令需要多个周期才能写回结果,因此正在派遣的指令有可能产生与前序长指令的RAW相关性。
WAW(Write-After-Write)相关性:正在派遣的指令处于流水线的第二级,假设之前派遣的指令(简称前序指令)是单周期执行指令(也处于流水线的第二级写回),则前序指令肯定已经完成了执行并且将结果写回了Regfile。因此正在派遣的指令不可能产生和前序单周期指令的WAW相关性造成的数据冲突。
但是假设之前派遣的指令(简称前序指令)是长指令,由于长指令需要多个周期才能写回结果,因此正在派遣的指令有可能产生与前序长指令的WAW相关性。
综上,在本发明的流水线中,“正在派遣的指令”只可能与“尚未执行完毕的长指令”之间产生RAW和WAW相关性。
为了能够检测出于长指令的RAW和WAW相关性,本发明使用了一个OutstandingInstruction Track FIFO(OITF)模块。在流水线的派遣点,每次派遣一个长指令,则会在OITF中分配一个表项(Entry),在这个表项中会存储该长指令的源操作数寄存器索引和结果寄存器索引。在流水线的写回(Write-Back)点,每次按顺序写回长指令之后,就会将此指令在OITF中的表项去除,即从FIFO(先入先出)完成其历史使命。
每条指令在派遣时,都是将本指令的源操作数索引与结果寄存器索引和OITF中的各个表项进行对比,从而判断本指令是否已经被派遣出,是否与尚未写回的长指令产生RAW和WAW相关性。若发现了数据相关性,则会将流水线派遣点阻塞,直到相关长指令执行完毕并解除相关性之后才会继续进行派遣。
RISC-V指令集架构具有指令没有条件码和所有的运算指令都不会产生异常这两个显著的特点,因此可以大幅度简化“交付”的硬件实现,无论是单周期指令还是多周期指令,在本发明处理器中都将“交付”安排在“执行”阶段。
本发明中的二级流水线划分规则如下:流水线的第一级为“取指”,由取指令单元(IFU)完成,流水线的第二级为“译码”、“执行”和“写回”,“访问”划分在第二级流水线的最后一步。
本发明在派遣指令时,采用顺序单条发射指令的架构;执行时为乱序执行;写回时,ALU指令按顺序写回,非ALU指令按顺序写回,但两者之间乱序写回。
图8所示为ITCM微架构示意图,ITCM的主体是一块数据宽度为位的单口SRAM组成,采用位数据宽度是为了取的更低的功耗消耗,ITCM有一组输入ICB总线接口(数据宽度为32位)来自LSU的访问,也就是说ITCM所在的地址区间同样能够通过Load和Store指令访问到,从而用于存储数据。ITCM还有另外两组输入ICB总线接口,数据宽度为位的IFU专用ICB接口和数据宽度为32位的外部直接访问接口(ITCM External ICB Interface)是专门为ITCM配备的外部接口,便于SOC的其他模块直接访问本发明处理器核的ITCM。3组输入ICB总线通过“ICB汇合”模块将其汇合成一组IC总线,采用的仲裁机制是优先级仲裁。IFU具有更高的优先级、LUS次之、外部直接访问接口最低。经过汇合之后的ICB总线的命令通道进行简单处理后作为访问ITCM SRAM的接口。同时将此操作的来源信息寄存,并用寄存后的信息指示SRAM返回的数据分发给IFU、LSU和ITCM外部直接访问接口的反馈通道。
如图9所示为DTCM微架构示意图,DTCM的存储器主体是由一块数据宽度为32位的单口SRAM组成。DTCM有两组输入ICB总线接口,分别来自于LSU和外部直接访问接口(DTCMExternal ICB Interface)。DTCM外部直接访问接口是专门为DTCM配备的外部接口,便于SOC的其他模块直接访问本发明处理器核的DTCM。2组输入ICB总线通过“ICB汇合”模块将其汇合成一组IC总线,采用的仲裁机制是优先级仲裁,LSU总线具有更高的优先级。经过汇合之后的ICB总线的命令通道进行简单处理后作为访问DTCM SRAM的接口。同时将此操作的来源信息寄存,并用寄存后的信息指示SRAM返回的数据分发给LSU、DTCM外部直接访问接口的反馈通道。
以上所述的仅是本发明所公开的一种基于RISC-V指令集的二级流水线架构的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (6)
1.一种基于RISC-V指令集的二级流水线架构,其特征在于,所述架构包括:取指令单元、执行单元、数据读写单元、长流水线数据处理单元、扩展加速接口协处理器、整数通用寄存器和总线接口单元;
所述取指令单元与执行单元之间设置有IR寄存器和PC寄存器,所述取指令单元取出指令后通过IR寄存器将指令发送至执行单元,所述取指令单元在发送指令的同时通过PC寄存器将指令的PC值发送至执行单元,所述执行单元根据接收的指令和指令PC值对指令进行译码和派遣,所述执行单元通过译码出的操作数寄存器索引读取整数通用寄存器,所述执行单元将指令派遣给数据读写单元、长流水线数据处理单元和扩展加速接口协处理器进行运算,所述执行单元将指令运算的结果写回至整数通用寄存器,所述总线接口单元用于辅助指令传输。
2.根据权利要求1所述的基于RISC-V指令集的二级流水线架构,其特征在于,所述取指令单元包括:Mini-Decode模块、全局分支预测器、PC生成模块、地址判断和ICB总线控制模块、指令传输总线和指令高速缓存存储器;
所述Mini-Decode模块用于对取回的指令进行译码;所述全局分支预测器,用于对经过Mini-Decode模块译码后发现的分支跳转指令进行分支预测;所述PC生成模块,用于生成下一个待取指令的PC值;所述地址判断和ICB总线控制模块,用于根据指令的PC值访问指令传输总线或总线接口单元;所述指令传输总线,用于辅助指令传输;所述指令高速缓存存储器,用于缓存多条指令。
3.根据权利要求1或2所述的基于RISC-V指令集的二级流水线架构,其特征在于,所述执行单元包括:译码与派遣模块、滞外指令追踪先入先出缓存模块、算术逻辑单元和写回仲裁模块;
所述译码与派遣模块,用于对取指令单元发送来的指令进行译码并在读取操作数后将译码后的指令派遣到多个运算单元进行运算;所述滞外指令追踪先入先出缓存模块,用于检测指令的相关性;所述算术逻辑单元,用于根据指令进行运算;所述写回仲裁模块,用于将指令的运算结果写回到通用寄存器。
4.根据权利要求3所述的基于RISC-V指令集的二级流水线架构,其特征在于,所述算术逻辑单元包括:普通算术逻辑运算模块、访问地址生成模块、分支预测解析模块、CSR读写控制模块和多周期乘除法器模块;
所述普通算术逻辑运算模块,用于逻辑运算指令、加减法指令和位移指令的执行;所述访问地址生成模块,用于Load、Store和“A”扩展指令的地址生成,以及“A”扩展指令的微操作拆分和执行;所述分支预测解析模块,用于Branch指令和Jump指令的结果分析和执行;所述CSR读写控制模块,用于CSR读写指令的执行;所述多周期乘除法器模块,用于乘法和除法的指令执行。
5.根据权利要求4所述的基于RISC-V指令集的二级流水线架构,其特征在于,所述数据读写单元包括两组输入ICB总线接口和三组输出ICB总线接口,所述两组输入ICB总线接口分别来自于访问地址生成模块和扩展加速接口协处理器;所述三组输出ICB总线接口分别分发给总线接口单元、指令传输总线和数据传输总线。
6.根据权利要求1所述的基于RISC-V指令集的二级流水线架构,其特征在于,所述执行单元将指令派遣时,检查当前指令是否和之前派遣执行尚未写回的指令存在数据相关性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810933214.2A CN109144573A (zh) | 2018-08-16 | 2018-08-16 | 基于risc-v指令集的二级流水线架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810933214.2A CN109144573A (zh) | 2018-08-16 | 2018-08-16 | 基于risc-v指令集的二级流水线架构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109144573A true CN109144573A (zh) | 2019-01-04 |
Family
ID=64789546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810933214.2A Pending CN109144573A (zh) | 2018-08-16 | 2018-08-16 | 基于risc-v指令集的二级流水线架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109144573A (zh) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857460A (zh) * | 2019-02-20 | 2019-06-07 | 南京华捷艾米软件科技有限公司 | 基于risc-v架构的矩阵卷积计算方法、接口、协处理器及系统 |
CN109918130A (zh) * | 2019-01-24 | 2019-06-21 | 中山大学 | 一种具有快速数据旁路结构的四级流水线risc-v处理器 |
CN110007961A (zh) * | 2019-02-01 | 2019-07-12 | 中山大学 | 一种基于risc-v的边缘计算硬件架构 |
CN110058884A (zh) * | 2019-03-15 | 2019-07-26 | 佛山市顺德区中山大学研究院 | 用于计算型存储指令集运算的优化方法、系统及存储介质 |
CN110134441A (zh) * | 2019-05-23 | 2019-08-16 | 苏州浪潮智能科技有限公司 | Risc-v分支预测方法、装置、电子设备及存储介质 |
CN110245096A (zh) * | 2019-06-24 | 2019-09-17 | 苏州硅岛信息科技有限公司 | 一种实现处理器直接连接扩展计算模块的方法 |
CN110348249A (zh) * | 2019-05-22 | 2019-10-18 | 上海埃络科技有限公司 | 一种基于存储器内计算的处理器结构 |
CN110502278A (zh) * | 2019-07-24 | 2019-11-26 | 福州瑞芯微电子股份有限公司 | 基于RiscV扩展指令的神经网络协处理器及其协处理方法 |
CN110806899A (zh) * | 2019-11-01 | 2020-02-18 | 西安微电子技术研究所 | 一种基于指令扩展的流水线紧耦合加速器接口结构 |
CN110928832A (zh) * | 2019-10-09 | 2020-03-27 | 中山大学 | 异步流水线处理器电路、装置及数据处理方法 |
CN111124496A (zh) * | 2019-12-25 | 2020-05-08 | 合肥中感微电子有限公司 | 一种多周期指令处理方法、处理器和电子设备 |
CN111143038A (zh) * | 2019-12-31 | 2020-05-12 | 江苏金智科技股份有限公司 | Risc-v架构微处理器内核信息模型建模及生成方法 |
CN111177067A (zh) * | 2019-12-13 | 2020-05-19 | 广东高云半导体科技股份有限公司 | 一种片上系统 |
CN111400986A (zh) * | 2020-02-19 | 2020-07-10 | 西安智多晶微电子有限公司 | 一种集成电路计算设备及计算处理系统 |
CN111915003A (zh) * | 2019-05-09 | 2020-11-10 | 深圳大普微电子科技有限公司 | 一种神经网络硬件加速器 |
CN112256330A (zh) * | 2020-11-03 | 2021-01-22 | 中国人民解放军军事科学院国防科技创新研究院 | 用于加速数字信号处理的risc-v指令集扩展方法 |
CN112347032A (zh) * | 2020-09-24 | 2021-02-09 | 深圳市紫光同创电子有限公司 | 基于fpga的嵌入式指令缓存系统 |
CN113157636A (zh) * | 2021-04-01 | 2021-07-23 | 西安邮电大学 | 协处理器、近数据处理装置和方法 |
CN113779755A (zh) * | 2021-08-05 | 2021-12-10 | 中科联芯(广州)科技有限公司 | 一种硅基多光谱集成电路芯片的设计方法和集成电路芯片 |
CN113946368A (zh) * | 2021-10-29 | 2022-01-18 | 西安微电子技术研究所 | 一种基于risc-v指令集的三级流水线架构、处理器及数据处理方法 |
CN114721724A (zh) * | 2022-03-07 | 2022-07-08 | 电子科技大学 | 一种基于risc-v指令集的六级流水线处理器 |
CN116991477A (zh) * | 2023-08-03 | 2023-11-03 | 上海合芯数字科技有限公司 | 旋转类指令执行方法、系统及执行单元 |
CN113946368B (zh) * | 2021-10-29 | 2024-04-30 | 西安微电子技术研究所 | 一种基于risc-v指令集的三级流水线架构、处理器及数据处理方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108287730A (zh) * | 2018-03-14 | 2018-07-17 | 武汉市聚芯微电子有限责任公司 | 一种处理器流水线结构 |
-
2018
- 2018-08-16 CN CN201810933214.2A patent/CN109144573A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108287730A (zh) * | 2018-03-14 | 2018-07-17 | 武汉市聚芯微电子有限责任公司 | 一种处理器流水线结构 |
Non-Patent Citations (1)
Title |
---|
胡振波: "《手把手教你设计CPU——RISC-V处理器》", 30 June 2018 * |
Cited By (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918130A (zh) * | 2019-01-24 | 2019-06-21 | 中山大学 | 一种具有快速数据旁路结构的四级流水线risc-v处理器 |
CN110007961A (zh) * | 2019-02-01 | 2019-07-12 | 中山大学 | 一种基于risc-v的边缘计算硬件架构 |
CN110007961B (zh) * | 2019-02-01 | 2023-07-18 | 中山大学 | 一种基于risc-v的边缘计算硬件架构 |
CN109857460A (zh) * | 2019-02-20 | 2019-06-07 | 南京华捷艾米软件科技有限公司 | 基于risc-v架构的矩阵卷积计算方法、接口、协处理器及系统 |
CN109857460B (zh) * | 2019-02-20 | 2021-09-21 | 南京华捷艾米软件科技有限公司 | 基于risc-v架构的矩阵卷积计算方法、接口、协处理器及系统 |
CN110058884A (zh) * | 2019-03-15 | 2019-07-26 | 佛山市顺德区中山大学研究院 | 用于计算型存储指令集运算的优化方法、系统及存储介质 |
CN110058884B (zh) * | 2019-03-15 | 2021-06-01 | 佛山市顺德区中山大学研究院 | 用于计算型存储指令集运算的优化方法、系统及存储介质 |
CN111915003B (zh) * | 2019-05-09 | 2024-03-22 | 深圳大普微电子科技有限公司 | 一种神经网络硬件加速器 |
CN111915003A (zh) * | 2019-05-09 | 2020-11-10 | 深圳大普微电子科技有限公司 | 一种神经网络硬件加速器 |
CN110348249A (zh) * | 2019-05-22 | 2019-10-18 | 上海埃络科技有限公司 | 一种基于存储器内计算的处理器结构 |
WO2020232904A1 (zh) * | 2019-05-23 | 2020-11-26 | 苏州浪潮智能科技有限公司 | Risc-v分支预测方法、装置、电子设备及存储介质 |
CN110134441A (zh) * | 2019-05-23 | 2019-08-16 | 苏州浪潮智能科技有限公司 | Risc-v分支预测方法、装置、电子设备及存储介质 |
CN110245096A (zh) * | 2019-06-24 | 2019-09-17 | 苏州硅岛信息科技有限公司 | 一种实现处理器直接连接扩展计算模块的方法 |
CN110502278A (zh) * | 2019-07-24 | 2019-11-26 | 福州瑞芯微电子股份有限公司 | 基于RiscV扩展指令的神经网络协处理器及其协处理方法 |
CN110928832A (zh) * | 2019-10-09 | 2020-03-27 | 中山大学 | 异步流水线处理器电路、装置及数据处理方法 |
CN110806899A (zh) * | 2019-11-01 | 2020-02-18 | 西安微电子技术研究所 | 一种基于指令扩展的流水线紧耦合加速器接口结构 |
CN111177067A (zh) * | 2019-12-13 | 2020-05-19 | 广东高云半导体科技股份有限公司 | 一种片上系统 |
CN111177067B (zh) * | 2019-12-13 | 2023-09-19 | 广东高云半导体科技股份有限公司 | 一种片上系统 |
CN111124496B (zh) * | 2019-12-25 | 2022-06-21 | 合肥中感微电子有限公司 | 一种多周期指令处理方法、处理器和电子设备 |
CN111124496A (zh) * | 2019-12-25 | 2020-05-08 | 合肥中感微电子有限公司 | 一种多周期指令处理方法、处理器和电子设备 |
CN111143038B (zh) * | 2019-12-31 | 2023-09-12 | 江苏金智科技股份有限公司 | Risc-v架构微处理器内核信息模型建模及生成方法 |
CN111143038A (zh) * | 2019-12-31 | 2020-05-12 | 江苏金智科技股份有限公司 | Risc-v架构微处理器内核信息模型建模及生成方法 |
CN111400986A (zh) * | 2020-02-19 | 2020-07-10 | 西安智多晶微电子有限公司 | 一种集成电路计算设备及计算处理系统 |
CN111400986B (zh) * | 2020-02-19 | 2024-03-19 | 西安智多晶微电子有限公司 | 一种集成电路计算设备及计算处理系统 |
CN112347032A (zh) * | 2020-09-24 | 2021-02-09 | 深圳市紫光同创电子有限公司 | 基于fpga的嵌入式指令缓存系统 |
CN112256330B (zh) * | 2020-11-03 | 2021-11-09 | 中国人民解放军军事科学院国防科技创新研究院 | 用于加速数字信号处理的risc-v指令集扩展方法 |
CN112256330A (zh) * | 2020-11-03 | 2021-01-22 | 中国人民解放军军事科学院国防科技创新研究院 | 用于加速数字信号处理的risc-v指令集扩展方法 |
CN113157636A (zh) * | 2021-04-01 | 2021-07-23 | 西安邮电大学 | 协处理器、近数据处理装置和方法 |
CN113779755B (zh) * | 2021-08-05 | 2023-11-17 | 中科联芯(广州)科技有限公司 | 一种硅基多光谱集成电路芯片的设计方法和集成电路芯片 |
CN113779755A (zh) * | 2021-08-05 | 2021-12-10 | 中科联芯(广州)科技有限公司 | 一种硅基多光谱集成电路芯片的设计方法和集成电路芯片 |
CN113946368A (zh) * | 2021-10-29 | 2022-01-18 | 西安微电子技术研究所 | 一种基于risc-v指令集的三级流水线架构、处理器及数据处理方法 |
CN113946368B (zh) * | 2021-10-29 | 2024-04-30 | 西安微电子技术研究所 | 一种基于risc-v指令集的三级流水线架构、处理器及数据处理方法 |
CN114721724A (zh) * | 2022-03-07 | 2022-07-08 | 电子科技大学 | 一种基于risc-v指令集的六级流水线处理器 |
CN116991477B (zh) * | 2023-08-03 | 2024-01-30 | 上海合芯数字科技有限公司 | 旋转类指令执行方法、系统及执行单元 |
CN116991477A (zh) * | 2023-08-03 | 2023-11-03 | 上海合芯数字科技有限公司 | 旋转类指令执行方法、系统及执行单元 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144573A (zh) | 基于risc-v指令集的二级流水线架构 | |
US10445250B2 (en) | Apparatus, methods, and systems with a configurable spatial accelerator | |
CN102750133B (zh) | 支持simd的32位三发射的数字信号处理器 | |
Chen et al. | Xuantie-910: A commercial multi-core 12-stage pipeline out-of-order 64-bit high performance RISC-V processor with vector extension: Industrial product | |
US10445234B2 (en) | Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features | |
US10776110B2 (en) | Apparatus and method for adaptable and efficient lane-wise tensor processing | |
US10891240B2 (en) | Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator | |
TWI599949B (zh) | 實施動態無序處理器管線的方法與設備 | |
Kumar | The hp pa-8000 risc cpu | |
JP4927840B2 (ja) | 可変長命令の固定数を持つ命令キャッシュ | |
KR101744081B1 (ko) | 이진 변환된 자가 수정 코드 및 교차 수정 코드의 처리 | |
CN106293626B (zh) | 持久性提交处理器、方法、装置、制品和电子设备 | |
US10915328B2 (en) | Apparatus and method for a high throughput parallel co-processor and interconnect with low offload latency | |
CN104050023A (zh) | 用于实现事务存储器的系统和方法 | |
KR20130141396A (ko) | 루프 버퍼 패킹 | |
CN103154846A (zh) | 基于指令的类型和内容的处理器功率管理 | |
US11048516B2 (en) | Systems, methods, and apparatuses for last branch record support compatible with binary translation and speculative execution using an architectural bit array and a write bit array | |
US6115730A (en) | Reloadable floating point unit | |
Omondi | The microarchitecture of pipelined and superscalar computers | |
CN105183697B (zh) | 嵌入式rsic‑dsp处理器系统及构建方法 | |
Shum et al. | Design and microarchitecture of the IBM System z10 microprocessor | |
US10261909B2 (en) | Speculative cache modification | |
US11126438B2 (en) | System, apparatus and method for a hybrid reservation station for a processor | |
WO2018005095A1 (en) | Apparatuses, methods, and systems for granular and adaptive hardware transactional synchronization | |
Maruyama | SPARC64™ X: Fujitsu's new generation 16 core processor for the next generation UNIX servers |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190329 Address after: 430000 Room 120, Zhongchuang Building, No. 2 Darui Road, Guandong Industrial Park, Donghu New Technology Development Zone, Wuhan City, Hubei Province Applicant after: Xinlai Technology (Wuhan) Co.,Ltd. Address before: Room 402, Room 67, Lane 4, 1467, Caobao Road, Minhang District, Shanghai, 201100 Applicant before: Hu Zhenbo |
|
TA01 | Transfer of patent application right | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190104 |