首页 / 专利库 / 电脑零配件 / 中央处理器 / 算术逻辑单元 / 基于RISC-V指令集的二级流水线架构

基于RISC-V指令集的二级流线架构

阅读:423发布:2020-05-17

专利汇可以提供基于RISC-V指令集的二级流线架构专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于RISC‑V指令集的二级流 水 线架构,包括:取指令单元、执行单元、数据读写单元、长流水线 数据处理 单元、扩展 加速 接口 协处理器 、回写整数通用寄存器和总线接口单元,取指令单元取出指令后通过IR寄存器将指令发送至执行单元,时通过PC寄存器将指令的PC值发送至执行单元,执行单元根据接收的指令和指令PC值对指令进行译码和派遣,执行单元通过译码出的操作数寄存器索引读取回写整数通用寄存器,执行单元将指令派遣给各运输模 块 进行运算,执行单元将指令运算的结果写回至回写整数通用寄存器,总线接口单元用于辅助指令传输,通过在处理器 内核 中采用两级流水线架构,以达到降低处理器内核架构成本、提高处理器性能的目的。,下面是基于RISC-V指令集的二级流线架构专利的具体信息内容。

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指令集的二级流水线架构,其特征在于,所述执行单元将指令派遣时,检查当前指令是否和之前派遣执行尚未写回的指令存在数据相关性。

说明书全文

基于RISC-V指令集的二级流线架构

技术领域

[0001] 本发明涉及低功耗处理器内核架构,具体涉及一种基于RISC-V指令集的二级流水线架构。

背景技术

[0002] 在传统的计算机体系结构分类中,处理器应用分为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等也有不错的表现。
[0003] Cotex-M是一组用于低功耗微控制器领域的32位RISC处理器系列,包括:
[0004] Cotex-M3,于2004年发布,流水线深度是3级,面向标准嵌入式市场的高性能低成本ARM处理器。
[0005] Cotex-M1,于2007年发布,流水线深度是3级,专面向FPGA中设计实现的ARM处理器。
[0006] Cotex-M0,于2009年发布,流水线深度是3级,面积最小和能耗极低的ARM处理器。
[0007] Cotex-M4,于2010年发布,流水线深度是3级,在M3基础上增加单精度浮点、DSP功能以满足数字信号控制市场的ARM处理器。
[0008] Cotex-M0+,于2012年发布,流水线深度是2级,在M0基础上进一步降低功耗的ARM处理器。
[0009] Cotex-M7,于2014年发布,流水线深度是6级,超标量设计,配备分支预测单元,不仅支持单精度浮点,还增加了硬件双精度浮点能,进一步提升计算性能和DSP处理能力,主要面向高端嵌入式市场。
[0010] Cotex-M23,于2016年发布,流水线深度是2级,可以简单理解为在Cotex-M0+的基础上增加了硬件证书除法器与安全特性(Trust Zone Security)。
[0011] Cotex-M33,于2016年发布,流水线深度是3级,可以简单理解为在Cotex-M4的基础上增加了安全特性(Trust Zone Security)。
[0012] 目前商用的超低功耗处理器内核以ARM架构的Coetex-M内核IP为主,流水线深度以2级或3级为主,仅具备紧耦合指令存储器(ITCM)和数据存储器(DTCM),不具备指令缓存(I-Cache)和数据缓存(D-Cache)。同时,该系列处理器内核还具备以下缺点:
[0013] 1.ARM商用架构内核的授权成本太高。
[0014] 2.处理器性能低下。
[0015] 3.由于没有缓存而只有ITCM,如果存放足够多的指令代码,而ITCM的SRAM过大会增加芯片成本;反之,如果ITCM的SRAM较小则无法承载足够多的指令代码。

发明内容

[0016] 为解决上述技术问题,本发明提出了一种基于RISC-V指令集的二级流水线架构,以达到降低处理器内核架构成本、提高处理器性能的目的。
[0017] 为达到上述目的,本发明的技术方案如下:一种基于RISC-V指令集的二级流水线架构,所述架构包括:取指令单元(IFU:Instruction Fetch Unit)、执行单元(EXU:Execution Unit)、数据读写单元(LSU:load store unit)、长流水线数据处理单元(Long Pipes)、扩展加速接口协处理器(EAI:Extended accleration interface协处理器)、整数通用寄存器(Regfile)和总线接口单元(BIU:bus interface unit);
[0018] 所述取指令单元与执行单元之间设置有IR寄存器和PC寄存器,所述取指令单元取出指令后通过IR寄存器将指令发送至执行单元,所述取指令单元在发送指令的同时通过PC寄存器将指令的PC值发送至执行单元,所述执行单元根据接收的指令和指令PC值对指令进行译码和派遣,所述执行单元通过译码出的操作数寄存器索引读取整数通用寄存器,所述执行单元将指令派遣给数据读写单元、长流水线数据处理单元和扩展加速接口协处理器进行运算,所述执行单元将指令运算的结果写回至整数通用寄存器,所述总线接口单元用于辅助指令传输。
[0019] 进一步地,指令的PC值为指令的地址。
[0020] 进一步地,所述取指令单元包括:Mini-Decode模、全局分支预测器(BPU:Branch Processing Unit)、PC生成模块、地址判断和ICB总线控制模块、指令传输总线(ITCM)和指令高速缓存存储器(I-cache);
[0021] 所述Mini-Decode模块用于对取回的指令进行译码;所述全局分支预测器,用于对经过Mini-Decode模块译码后发现的分支跳转指令进行分支预测;所述PC生成模块,用于生成下一个待取指令的PC值;所述地址判断和ICB总线控制模块,用于根据指令的PC值访问指令传输总线或总线接口单元;所述指令传输总线,用于辅助指令传输;所述指令高速缓存存储器,用于缓存多条指令。
[0022] 进一步地,所述译码的逻辑主要根据RISC-V指令的编码规则进行译码。
[0023] 进一步地,所述执行单元包括:译码与派遣模块、滞外指令追踪先入先出缓存模块(OITF:Outstanding Instruction Track FIFO)、算术逻辑单元(ALU:alogirithm logic unit)和写回仲裁模块;
[0024] 所述译码与派遣模块,用于对取指令单元发送来的指令进行译码并在读取操作数后将译码后的指令派遣到多个运算单元进行运算;所述滞外指令追踪先入先出缓存模块,用于检测指令的相关性;所述算术逻辑单元,用于根据指令进行运算;所述写回仲裁模块,用于将指令的运算结果写回到通用寄存器。
[0025] 进一步地,所述算术逻辑单元包括:普通算术逻辑运算模块(Regular-ALU)、访问地址生成模块(AGU:Address Generation Unit)、分支预测解析模块(BJP:Branch and Jump resolve)、CSR读写控制模块和多周期乘除法器模块;
[0026] 所述普通算术逻辑运算模块,用于逻辑运算指令、加减法指令和位移指令的执行;所述访问地址生成模块,用于Load、Store和“A”扩展指令的地址生成,以及“A”扩展指令的微操作拆分和执行;所述分支预测解析模块,用于Branch指令和Jump指令的结果分析和执行;所述CSR读写控制模块,用于CSR读写指令的执行;所述多周期乘除法器模块,用于乘法和除法的指令执行。
[0027] 进一步地,所述数据读写单元包括两组输入ICB总线接口和三组输出ICB总线接口,所述两组输入ICB总线接口分别来自于访问地址生成模块和扩展加速接口协处理器;所述三组输出ICB总线接口分别分发给总线接口单元、指令传输总线和数据传输总线(DTCM)。
[0028] 进一步地,所述执行单元将指令派遣时,检查当前指令是否和之前派遣执行尚未写回的指令存在数据相关性。
[0029] 本发明中的二级流水线划分规则如下:流水线的第一级为“取指”,由取指令单元(IFU)完成,流水线的第二级为“译码”、“执行”和“写回”,“访问”划分在第二级流水线的最后一步。
[0030] 本发明在派遣指令时,采用顺序单条发射指令的架构;执行时为乱序执行;写回时,ALU指令按顺序写回,非ALU指令按顺序写回,但两者之间乱序写回。
[0031] 本发明具有如下优点:
[0032] (1).本发明通过在处理器内核中采用两级流水线架构,有效的降低处理器内核的架构授权成本、提高了处理器内核的性能。
[0033] (2).本发明使用全局分支预测器对跳转指令进行动态预测,提高了预测的精度。
[0034] (3).本发明私有的ITCM与DTCM在实现了指令与数据分离存储的同时,能够保证实时性,提高了处理器的性能。附图说明
[0035] 为了更清楚地说明本发明实施例现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
[0036] 图1为本发明实施例公开的二级流水线架构示意图;
[0037] 图2为本发明实施例公开的取指令单元交互示意图;
[0038] 图3为本发明实施例公开的执行单元交互示意图;
[0039] 图4为本发明实施例公开的算术逻辑单元交互示意图;
[0040] 图5为本发明实施例公开的整数通用寄存器工作示意图;
[0041] 图6为本发明实施例公开的OITF模块交互示意图;
[0042] 图7为本发明实施例公开的存储器子系统的结构示意图;
[0043] 图8为本发明实施例公开的ITCM微架构示意图;
[0044] 图9为本发明实施例公开的DTCM微架构示意图。

具体实施方式

[0045] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
[0046] 本发明提供了一种基于RISC-V指令集的二级流水线架构,其工作原理是通过在处理器内核中采用两级流水线架构,以达到降低处理器内核架构成本、提高处理器性能的目的。
[0047] 下面结合实施例和具体实施方式对本发明作进一步详细的说明。
[0048] 如图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);
[0049] 所述取指令单元与执行单元之间设置有IR寄存器和PC寄存器,所述取指令单元取出指令后通过IR寄存器将指令发送至执行单元,所述取指令单元在发送指令的同时通过PC寄存器将指令的PC值发送至执行单元,所述执行单元根据接收的指令和指令PC值对指令进行译码和派遣,所述执行单元通过译码出的操作数寄存器索引读取整数通用寄存器,所述执行单元将指令派遣给数据读写单元、长流水线数据处理单元和扩展加速接口协处理器进行运算,所述执行单元将指令运算的结果写回至整数通用寄存器,所述总线接口单元用于辅助指令传输。
[0050] 其中,指令的PC值为指令的地址。
[0051] 其中,所述取指令单元包括:Mini-Decode模块、全局分支预测器(BPU:Branch Processing Unit)、PC生成模块、地址判断和ICB总线控制模块、指令传输总线(ITCM)和指令高速缓存存储器(I-cache);
[0052] 所述Mini-Decode模块用于对取回的指令进行译码;所述全局分支预测器,用于对经过Mini-Decode模块译码后发现的分支跳转指令进行分支预测;所述PC生成模块,用于生成下一个待取指令的PC值;所述地址判断和ICB总线控制模块,用于根据指令的PC值访问指令传输总线或总线接口单元;所述指令传输总线,用于辅助指令传输;所述指令高速缓存存储器,用于缓存多条指令。
[0053] 其中,全局分支预测是将32个“两比特饱和计数器”组织成PHT(Pattern History Table),其索引采用的是Gselect算法,即使用分支指令PC值的4位和共享的全局历史缓存的1位进行拼接运算后将运算结果作为PHT的索引。
[0054] 其中,指令高速缓存存储器,介于CPU和主存之间,由SRAM组成,其工作速度数倍于主存,主存到I-cache的地址变换采用的是组相关联映像的方法,即将I-cache字块分成两组,每组的块容量大小是可配置的,每块的大小为32字节,指令缓存加快了指令的执行速度,提高了处理器性能。
[0055] 其中,所述译码的逻辑主要根据RISC-V指令的编码规则进行译码。
[0056] 其中,所述执行单元包括:译码与派遣模块、滞外指令追踪先入先出缓存模块(OITF:Outstanding Instruction Track FIFO)、算术逻辑单元(ALU:alogirithm logic unit)和写回仲裁模块;
[0057] 所述译码与派遣模块,用于对取指令单元发送来的指令进行译码并在读取操作数后将译码后的指令派遣到多个运算单元进行运算;所述滞外指令追踪先入先出缓存模块,用于检测指令的相关性;所述算术逻辑单元,用于根据指令进行运算;所述写回仲裁模块,用于将指令的运算结果写回到通用寄存器。
[0058] 其中,指令译码后产生不同的指令类型信息,操作数寄存器索引等,派遣(Dispatch)发生在流水线的执行阶段,表示指令经过译码且从寄存器组中读取了操作数之后被派遣到不同的运算单元(ALU、Long Pipes、LSU和EAI)执行的过程。
[0059] 其中,通用寄存器主要用于实现RISC-V架构定义的整数通用寄存器组,RISC-V的整数指令都是单操作数或两操作数指令,且本发明属于单发射(一次发射派遣一条指令)的微架构,因此Integer-Regfile模块只需要支持最多两个读端口,同时,本发明的写回策略是具备乱序写回的能力,因此支持两个写端口。
[0060] 其中,所述算术逻辑单元包括:普通算术逻辑运算模块(Regular-ALU)、访问地址生成模块(AGU:Address Generation Unit)、分支预测解析模块(BJP:Branch and Jump resolve)、CSR读写控制模块和多周期乘除法器模块;
[0061] 所述普通算术逻辑运算模块,用于逻辑运算指令、加减法指令和位移指令的执行;所述访问地址生成模块,用于Load、Store和“A”扩展指令的地址生成,以及“A”扩展指令的微操作拆分和执行;所述分支预测解析模块,用于Branch指令和Jump指令的结果分析和执行;所述CSR读写控制模块,用于CSR读写指令的执行;所述多周期乘除法器模块,用于乘法和除法的指令执行。
[0062] 其中,CSR读写指令包括CSRRW、CSRRS、CSRRC、CSRRWI、CSRRSI以及CSRRCI指令。
[0063] 以上算术逻辑单元的5个功能子模块只负责具体指令执行的控制,他们均共享一份实际的运算数据通路,因此主要数据通路的面积开销只有一份,使处理器内核架构实现低功耗、小面积。
[0064] 其中,所述数据读写单元包括两组输入ICB总线接口和三组输出ICB总线接口,所述两组输入ICB总线接口分别来自于访问地址生成模块和扩展加速接口协处理器;所述三组输出ICB总线接口分别分发给总线接口单元、指令传输总线和数据传输总线(DTCM)。
[0065] 其中,AGU是ALU的一个子模块,根据RISC-V架构定义,读/写指令需要将第一个寄存器索引的源操作数和符号位扩展的立即数相加,得到最终的访问地址,因此理论上需要加法器。为了节省面积,本发明复用ALU的加法器用于访问地址计算。RISC-V架构对于地址非对齐(Address Misalign)的读写指令,本发明采用软件支持。AGU通过对生成的访问地址进行判断,如果地址非对齐,则产生异常标志、通过ALU传送给交付模块,交付模块则据此则产生异常。如果没有产生异常的读/写指令,则通过AGU的ICB接口发送给LSU模块。
[0066] 其中,LSU是本发明处理器内核架构的主要控制单元,LSU有两组输入LCB总线接口,分别来自于AGU模块和EAI协处理器,有3组输出ICB总线接口,分别发给BIU、DTCM和ITCM。另外,LSU通过其写回接口将果写回,两组输入ICB总线经过一个“ICB汇合”模块将其汇合成一组ICB总线,采用的是优先级仲裁,EAI总线具有更高的优先级。经过汇合之后的ICB总线通过其命令通道(Command Channel)的地址进行判断,通过其访问的地址区间产生分发信息,然后使用一个“ICB分发”模块分发给不同的存储器组件的ICB接口(包括BIU、ITCM、DTCM)。由于访问不同的存储器组件可能会出现存储器访问错误(Memory Access Fault),可以通过ICB的反馈通道(Response Channel)返回标志信号所得,如果出现错误,则产生标志通过LSU的写回接口传送给交付模块,交付模块则据此产生异常
[0067] 其中,所述执行单元将指令派遣时,检查当前指令是否和之前派遣执行尚未写回的指令存在数据相关性。
[0068] 本发明在执行阶段的一个重要职能是维护并解决流水线的冲突,包括资源冲突和数据冲突。
[0069] 资源冲突通常发生在指令派遣给不同的执行单元进行执行的过程中。主要是通过采用严谨的valid-ready握手接口的方法解决的。
[0070] 而对于数据相关性引起的数据冲突,本发明在执行阶段处理得比较巧妙。首先,本发明将所有指令分成两类,其中之一是单周期执行指令,由于本发明的交付功能和写回均处于流水线的第二级,因此单周期指令在流水线的第二级便完成了交付,同时也将结果写回了整数通用寄存器组(Regfile);另一种是多周期执行的指令,这种指令通常需要多个周期才能够执行并写回,称之为“后交付长流水线指令(Post-Commit Write-back Long-Pipes Instruction),简称为“长指令(Long-Pipes Instruction)”。
[0071] 本发明是简单的按顺序单发射(派遣)微架构,在每条指令被进行派遣时,需要检查其是否和之前派遣执行尚未写回的指令存在数据相关性。数据相关性分为三种:
[0072] WAR(Write-After-Read)相关性:由于本发明是按顺序派遣、按顺序写回的微架构,在指令的派遣时就已经从通用寄存器组中读取了源操作数。因此“后续执行的指令写回Regfile操作”不可能会发生在“前序执行的指令从Regfile中读取操作数”之前,因此不可能会发生WAR相关性造成的数据冲突。
[0073] RAW(Read-After-Write)相关性:正在派遣的指令处于流水线的第二级,假设之前派遣的指令(简称前序指令)是单周期执行指令(也处于流水线的第二级写回),则前序指令肯定已经完成了执行并且将结果写回了Regfile。因此正在派遣的指令不可能产生和前序单周期指令的RAW相关性造成的数据冲突。但是假设之前派遣的指令(简称前序指令)是长指令,由于长指令需要多个周期才能写回结果,因此正在派遣的指令有可能产生与前序长指令的RAW相关性。
[0074] WAW(Write-After-Write)相关性:正在派遣的指令处于流水线的第二级,假设之前派遣的指令(简称前序指令)是单周期执行指令(也处于流水线的第二级写回),则前序指令肯定已经完成了执行并且将结果写回了Regfile。因此正在派遣的指令不可能产生和前序单周期指令的WAW相关性造成的数据冲突。
[0075] 但是假设之前派遣的指令(简称前序指令)是长指令,由于长指令需要多个周期才能写回结果,因此正在派遣的指令有可能产生与前序长指令的WAW相关性。
[0076] 综上,在本发明的流水线中,“正在派遣的指令”只可能与“尚未执行完毕的长指令”之间产生RAW和WAW相关性。
[0077] 为了能够检测出于长指令的RAW和WAW相关性,本发明使用了一个Outstanding Instruction Track FIFO(OITF)模块。在流水线的派遣点,每次派遣一个长指令,则会在OITF中分配一个表项(Entry),在这个表项中会存储该长指令的源操作数寄存器索引和结果寄存器索引。在流水线的写回(Write-Back)点,每次按顺序写回长指令之后,就会将此指令在OITF中的表项去除,即从FIFO(先入先出)完成其历史使命。
[0078] 每条指令在派遣时,都是将本指令的源操作数索引与结果寄存器索引和OITF中的各个表项进行对比,从而判断本指令是否已经被派遣出,是否与尚未写回的长指令产生RAW和WAW相关性。若发现了数据相关性,则会将流水线派遣点阻塞,直到相关长指令执行完毕并解除相关性之后才会继续进行派遣。
[0079] RISC-V指令集架构具有指令没有条件码和所有的运算指令都不会产生异常这两个显著的特点,因此可以大幅度简化“交付”的硬件实现,无论是单周期指令还是多周期指令,在本发明处理器中都将“交付”安排在“执行”阶段。
[0080] 本发明中的二级流水线划分规则如下:流水线的第一级为“取指”,由取指令单元(IFU)完成,流水线的第二级为“译码”、“执行”和“写回”,“访问”划分在第二级流水线的最后一步。
[0081] 本发明在派遣指令时,采用顺序单条发射指令的架构;执行时为乱序执行;写回时,ALU指令按顺序写回,非ALU指令按顺序写回,但两者之间乱序写回。
[0082] 图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外部直接访问接口的反馈通道。
[0083] 如图9所示为DTCM微架构示意图,DTCM的存储器主体是由一块数据宽度为32位的单口SRAM组成。DTCM有两组输入ICB总线接口,分别来自于LSU和外部直接访问接口(DTCM External ICB Interface)。DTCM外部直接访问接口是专门为DTCM配备的外部接口,便于SOC的其他模块直接访问本发明处理器核的DTCM。2组输入ICB总线通过“ICB汇合”模块将其汇合成一组IC总线,采用的仲裁机制是优先级仲裁,LSU总线具有更高的优先级。经过汇合之后的ICB总线的命令通道进行简单处理后作为访问DTCM SRAM的接口。同时将此操作的来源信息寄存,并用寄存后的信息指示SRAM返回的数据分发给LSU、DTCM外部直接访问接口的反馈通道。
[0084] 以上所述的仅是本发明所公开的一种基于RISC-V指令集的二级流水线架构的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈