CN113703845B - 一种基于risc-v的可重构嵌入式处理器微架构及其工作方法 - Google Patents
一种基于risc-v的可重构嵌入式处理器微架构及其工作方法 Download PDFInfo
- Publication number
- CN113703845B CN113703845B CN202110941734.XA CN202110941734A CN113703845B CN 113703845 B CN113703845 B CN 113703845B CN 202110941734 A CN202110941734 A CN 202110941734A CN 113703845 B CN113703845 B CN 113703845B
- Authority
- CN
- China
- Prior art keywords
- instruction
- cgra
- immediate
- instructions
- information
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 239000000872 buffer Substances 0.000 claims description 67
- 238000001514 detection method Methods 0.000 claims description 37
- GVVPGTZRZFNKDS-JXMROGBWSA-N geranyl diphosphate Chemical compound CC(C)=CCC\C(C)=C\CO[P@](O)(=O)OP(O)(O)=O GVVPGTZRZFNKDS-JXMROGBWSA-N 0.000 claims description 32
- 230000008569 process Effects 0.000 claims description 22
- 238000011010 flushing procedure Methods 0.000 claims description 11
- 230000001133 acceleration Effects 0.000 abstract description 11
- 230000007246 mechanism Effects 0.000 abstract description 3
- 238000012545 processing Methods 0.000 abstract description 3
- 238000004364 calculation method Methods 0.000 abstract description 2
- 230000005540 biological transmission Effects 0.000 abstract 1
- 238000013461 design Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000012546 transfer Methods 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 or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- 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 or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
- G06F9/381—Loop buffering
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本发明涉及一种基于RISC‑V的可重构嵌入式处理器微架构及其工作方法,本发明将指令的模式分为RISC‑V的R和I型指令以及其它指令;本发明依赖于CGRA的运行时的并行性和可重构性,使用CGRA对具备本发明模式特征的RISC‑V指令块进行加速,从而绕过流水线执行这些指令;本发明不会影响通用处理模式下指令的执行,也无需编译器额外支持,能够利用可重构特性在运行时实现对程序的加速。本发明特别适合于边缘计算的应用场景,根据用户应用特点而具有高度的灵活性,使用该处理器架构可对程序中常见指令块进行加速,缩减了复杂的流水线和多发射机制,在CGRA数目配置与应用场景匹配的情况下,能够在低功耗的同时对程序加速。
Description
技术领域
本发明涉及一种基于RISC-V指令集架构的具有动态可重构特性的低功耗嵌入式处理器微架构及其工作方法,属于集成电路处理器层次结构设计技术领域。
背景技术
提升处理器的性能一直是处理器时代的重要目标,设计者往往使用流水线技术(Pipelining)和多发射技术(Multi-issuing)增加处理器的吞吐量(Throughput)来提高处理器的性能,然而这种技术手段已经趋于饱和,也常常伴随着巨大的面积和功耗的开销。在如今的物联网时代,对嵌入式和边缘计算系统的处理能力和功耗提出了巨大的挑战,在要求处理器具备满足一定的人工智能算法加速和常规应用操作的同时,也要求处理器具备较低的功耗和面积,依靠传统的多流水线和多发射的超标量设计手段已经不能够满足这一需要,设计者需要一种手段满足物联网时代对于边缘计算的功耗和性能的双重要求。
使用CGRA(Cross Grained Reconfigurable Array)来增加处理器吞吐量,相较于传统的处理器设计手段能够获得性能与功耗的平衡。与FPGA不同,CGRA是一种粗粒度的可重构阵列,在指令层次直接对CGRA生成配置信息,配置时间为纳秒级,而FPGA使用比特流文件进行配置,配置时间往往多达数秒甚至几分钟;使用ASIC芯片进行特定领域的加速更加高效,但是ASIC几乎不具有可重用性和可编程性;使用GPU进行加速性能会有很大提升,但是往往局限于在一些并行的循环程序里,且对于嵌入式应用场合无法承担其面积和功耗的开销。
CGRA配置方法有静态和动态两种,静态配置方法是在程序配置阶段通过编译器嵌入特殊的CGRA指令,在机器码中生成配置位信息,采用静编译的方法能够使要加速的指令与CGRA的加速PE单元获得最佳匹配,但是编译器复杂度太大,且要求对处理器及CGRA的硬件架构有深入的理解,因此静态配置的方法中,CGRA对于编译器、操作系统和用户程序来说是不透明的,另外程序一旦改动要对所有程序重新进行编译;采用动态配置的方法,使用硬件电路根据指令的操作码(opcode)、源寄存器(sourceregister)和目的寄存器(destination register)产生CGRA的配置信息,因此CGRA对于编译器、操作系统和用户程序来说是透明的,采用硬件电路实现CGRA的动态配置不会影响到编译器层面。
RISC-V是一种新兴精简指令集,使用RISC-V指令集以及基于硬件设计的CGRA加速单元设计处理器架构,能够在处理器运行时对部分指令进行加速,提升处理器吞吐量的同时有利于缩减处理器设计复杂度,在处理器性能和功耗层面都有改善,这将使得RISC-V指令集处理器在嵌入式和边缘计算系统中具有更强的竞争力。
发明内容
针对现有技术中设计处理器的复杂性问题,以及CGRA静态配置中对于编译器和设计人员过高的要求,本发明提出了一种能够在运行时动态配置的加速RISC-V处理器微架构,以期在RISC-V嵌入式处理器架构中进一步降低设计复杂度的同时获得功耗、性能和面积的平衡。
本发明还给出了上述RISC-V处理器微架构的工作方法;
在RISC-V基准处理器中,处理器工作在GPP模式下,处理器的工作流水线为取指、译码、执行、访存和写回;在扩展模式中,取指阶段对适合于使用CGRA模块进行加速的指令(RISC-V中的R型指令和部分I型指令,包含基本算数指令和一些逻辑操作指令,如加法和移位操作等,对于不符合条件的指令,如跳转指令和访存指令,将不会被存入)使用FIFO进行缓存,接下来从缓存的指令中检测指令的相关性并依据指令的信息生成CGRA的配置信息,将这种识别出来的模式存储在Cache中,在计算密集型任务中有大量使用的函数或者循环程序段会被识别成这种模式,在下一次执行时候,处理器将会绕过流水线中的ALU而使用CGRA执行该模式中的数条指令,因此在扩展模式下执行过程为从Cache中取模式数据、寄存器访问、CGRA执行和写回,不需要GPP模式下的访存阶段,在配置好CGRA后能够减少处理器访问存储的延迟。
术语解释:
1、FIFO Buffer,即指令缓冲器,用于在扩展模式下给后续模块提供指令输入。
2、GPP模式,即General Purpose Processor模式,通用处理器模式。
3、PC+4,PC是程序计数器,是下一条要执行的机器代码的地址,每次有一条机器码进入CPU,PC就增加,变成下一条要执行的机器代码的地址。例如MIPS32位CPU,一条指令32bit=4Byte,寻址方式为按字节寻址(每个字节加1),结果就是PC+4。
4、Extend信号,即扩展模式选择信号,该信号有效时处理器工作在扩展模式下。
5、Cache,即缓存,为一高速数据交换存储器。
本发明的技术方案为:
一种基于RISC-V的可重构嵌入式处理器微架构,包括:RISC-V处理器架构平台、FIFO Buffer、指令仲裁模块、CGRA模块;
该微架构工作在两种模式下,包括GPP模式和扩展模式;
GPP模式依赖于RISC-V处理器架构平台;在GPP模式下,通过PC+4连续取指,直到指令仲裁模块检测到之前配置的相关性模式,该微架构进入扩展模式;
扩展模式由指令仲裁模块中生成的Extend信号进行控制;在扩展模式下指令的执行方式为模式取址、寄存器堆访问、CGRA执行和写回,模式取址是从Cache中取得CGRA配置值指令信息,寄存器堆访问用于取得CGRA配置值指令信息中的操作数,CGRA执行使用CGRA执行单元一周期完成CGRA配置值指令信息中包含的指令块,写回用于将CGRA执行后的结果写入寄存器堆或者存储器中;
所述FIFO Buffer用于:连续地检测流水线中从指令存储器中取出的指令;根据指令的opcode和function字段判断指令的类型;存储PC执行过程中最近的连续N条有效指令,包括RISC-V处理器架构平台的R型指令和I型指令;生成CGRA配置指令信息后对FIFOBuffer进行冲刷;
所述指令仲裁模块用于:对来自FIFO Buffer中的指令进行解码;指令解码后,判断指令的相关性;生成相应的CGRA配置位;使用识别的到的含有N条指令的指令段的第一条指令的PC地址,将CGRA配置信息记录在Cache中,CGRA配置信息以相关性指令块的第一条指令的PC值作为标号,同时包括该指令块最后一条指令的PC地址和操作以及立即数信息;在处理器运行过程中,当PC值等于存储在Cache中的配置信息的索引PC值即CGRA配置信息中的标号时,生成扩展信号Extend,在扩展模式下不需要从存储介质中连续取值,处理器使用CGRA记录的CGRA配置信息一周期执行上次指令块中的N条指令,N为该CGRA配置信息中指令相关性模式包含的指令数目,PC将暂停加4的操作直至CGRA执行完毕,PC值将跳转到指令块中的最后一条指令地址再执行PC+4的操作。
根据本发明优选的,所述RISC-V处理器架构平台为32位RISC-V基准处理器架构;
GPP模式依赖于32位RISC-V基准处理器架构;
所述32位RISC-V基准处理器架构为一四流水线结构,包括取指单元、译码单元、执行单元、访存单元和写回单元,取指单元用于连续的从存储介质中根据地址取出指令信息,译码单元用于翻译取得的指令的字段得到该指令包含的微操作,执行单元包括指令执行过程中的通用运算单元,访存单元用于从存储器中取得指令需要的操作数,写回单元用于将指令执行结果写到寄存器堆或者存储器中;每条指令就按照取指、译码、执行、访存和写回的方式顺序的完成相应的操作。
根据本发明优选的,所述FIFO Buffer包括若干级联的寄存器,FIFO Buffer中的数据在每个寄存器端口读出,读出内容包括每个寄存器中指令的内容和指令的有效性信号,以寄存器为单元进行传递;在每个FIFO Buffer入口处设有检测单元,使用指令的opcode检测指令是否可被映射到CGRA模块,有效指令包括32位RISC-V基准处理器架构中的部分R型指令和I型指令,具体包括整型算术指令、逻辑操作指令和移位操作指令;当指令为有效指令时,检测单元输出指令的有效信号和非有效信号,有效信号随指令内容在时钟信号驱动下进入FIFO Buffer,非有效信号用于对FIFO Buffer中寄存器的内容进行冲刷。
根据本发明优选的,所述指令仲裁模块包括六个部分,即:解码部分、立即数检测单元、指令标识编码部分、相关性检测单元、CGRA配置信息生成部分及用于存储配置信息的Cache,解码部分包括第一层和第二层;
在解码部分的第一层中,输入为来自FIFO Buffer的指令,第一层包括N+1个解码单元,N为该CGRA配置信息中指令相关性模式包含的指令数目,用于将指令内容分别解码出来,存在立即数(Imm)时,还要解码出立即数;
在解码部分的第二层中,输入为来自解码部分的第一层中N+1条指令的解码信息,包括目的寄存器和源寄存器,使用比较器和逻辑门判断指令相关性信息,解码部分比指令相关性模式数目多出来的一个寄存器用于缓冲;
在解码部分的第二层包括一个立即数检测单元,立即数检测单元用于检测在N+1条指令的解码信息中是否存在立即数,分为三种情况:没有立即数;存在一个立即数字段;存在一个以上的立即数字段;设置两个信号:立即数存在信号和立即数使能信号;如果在N+1条指令中不存在立即数段,那么将立即数存在信号置零,立即数使能信号置一;如果存在一个立即数段,那么将立即数存在信号和立即数使能信号都置一,并将该立即数的值从解码部分的第二层中输出;如果存在一个以上的立即数段,那么该指令为不受支持的S型指令或者SB型指令,立即数存在信号和立即数使能信号都为低电平,生成FIFO Buffer的强制冲刷信号,FIFO Buffer中的内容随着时钟一次次冲刷,指令仲裁模块则放弃该条指令使用下一条指令继续检测指令的相关性;
在解码部分的第二层中,指令标识编码部分用于对来自FIFO Buffer的N个寄存器的信息进行编码,输入为每个寄存器的指令有效位信息,编码后生成N个寄存器中有效指令的数目;
在解码部分的第二层包括一个相关性检测单元,该相关性检测单元判断出存储在FIFO Buffer中的指令的相关性的模式,并生成三个输出,包括输入寄存器的数目、输出寄存器的数目和相关性模式代码;
在解码部分的第二层中,CGRA配置信息生成部分用于产生CGRA的配置信息位,CGRA配置信息生成部分还用于检查:立即数有效信号是否为高电平;指令标识编码部分输出的指令数目是否在2~N之间;相关性检测单元输出的输入和输出寄存器数目是否和CGRA输入输出匹配;检测指令间的依赖是否有效;如果上述条件全部满足,CGRA配置信息生成部分依据相关性检测单元的输出生成CGRA配置信息;
CGRA配置信息生成部分生成的CGRA配置信息包括三个主体部分,如图6所示,第一主体部分包括相关性模式信息,所述相关性模式信息包括相关性指令块的第一条指令的PC值、该指令块最后一条指令的PC地址和操作以及立即数信息,所述指令相关性信息用来确定相关的指令数以及输入输出数目信息来配置CGRA端口;第二主体部分用于表明该指令块中的一些操作,一些操作包含操作代码OP和涉及到的指令中的寄存器,第二主体部分的信息用于确定具体调用CGRA的操作类型和传入数据,第三主体部分为指令块所用到的立即数信息;
根据本发明优选的,CGRA模块的输入端接收CGRA配置信息,使用CGRA配置信息的第一主体部分即相关性模式信息来确定当前相关性模块需要的I/O数目,配置输出口的MUX;
CGRA模块还包括若干执行单元PE,PE中包括若干运算单元,用于接收来自CGRA配置信息中的第二主体部分,明确了指令块中运算的操作类型和操作数信息,同时如果中间的某个指令用到了立即数,第三主体部分提供对应的立即数信息。
根据本发明优选的,指令仲裁模块生成两个信号,包括冲刷信号和CGRA配置信号;
冲刷信号用于对FIFO Buffer进行冲刷,存在下面三种情况将对其冲刷:第一,当有不支持的指令时,立即数检测单元对其进行冲刷以获取新指令;第二,当指令仲裁模块的N条指令存在相关性时,当把CGRA配置信息保存在Cache中后,对FIFO Buffer进行冲刷以获取新指令;第三,当有不支持的相关性模式或者独立的指令时,指令仲裁模块对FIFOBuffer进行冲刷以获取新指令;
CGRA配置信号在检测到上述所有指令模式中所持支的相关性模式时,该CGRA配置信号有效,CGRA配置信号用于将识别好的指令模式和CGRA配置位以指令段第一条指令的PC值为索引存储在Cache中。
根据本发明优选的,相关性检测单元中,指令相关性信息是通过比较产生的,比较内容包括三个部分:指令的rs、rd;来自立即数检测单元的立即数存在信号和立即数的值;来自指令标识编码部分的有效指令数目;定义三种基本的相关性模式:1)第一条指令的目的寄存器rt是第二条指令的两个源寄存器rs之一,即RAW;2)第一条指令和第二条指令的rt是第三条指令的的源寄存器rs;3)三条指令为连续的RAW;
相关性检测单元检测指令的有效性和指令的编号来标识指令,通过比较rs,rd以及立即数的相等关系判定指令间的相关性,输出内容包括N条指令组成的相关性模式,具体包括:输入寄存器的数目,即相关性模式指令段中的输入寄存器数目;输出寄存器的数目,即相关性模式指令段中输出寄存器的数目;相关性模式代码,用来标志该微架构支持的相关性模式。
上述基于RISC-V的可重构嵌入式处理器微架构的工作方法,包括步骤如下:
(1)在GPP模式下,执行流程为四级流水线的取指、译码、执行、访存和写回,通过PC+4连续从存储介质中取指;
(2)在GPP模式下,FIFO Buffer和指令仲裁模块连续检测指令的相关性,如果存在指令的相关性,则生成对应的CGRA配置指令信息并存储在Cache中,每检测到一个相关性模式就生成一条对应的CGRA配置指令信息,每个CGRA配置指令信息的第一主体部分记录了该相关性指令块的第一条指令的PC值、该指令块最后一条指令的PC地址和操作以及立即数信息,如此循环下去,直到指令仲裁模块检测到当前PC值等于存储在Cache中的配置信息的索引PC值即CGRA配置信息中的标号时,指令仲裁模块就判断出Cache中已经记录了该指令为第一条指令的相关性指令块,指令仲裁模块生成扩展信号Extend;
(3)指令仲裁模块发出Extend信号后,处理器退出GPP模式,下一个周期PC值将不加4,在这个周期中CGRA完成了对指令块的全部操作并将指令结果写回;
(4)CGRA模块执行相当于一周期执行了存在相关性的N条指令,下一个周期PC的值为CGRA配置信息指令块中最后一条指令的PC+4;
(5)在CGRA模块执行完的下一个周期,Extend无效,处理器同时退出扩展模式,继续在GPP模式下运行;
(6)处理器运行中再次检测相关性,重复步骤(2)至步骤(5)。
本发明的有益效果为:
1、本发明没有复杂的通过增加流水线级数或使用多发射机制来增加IPC(Instruction Per Clock)和吞吐量,而是用并行可重构硬件来缩短通用处理器执行指令块的时间。
2、本发明使用单独的硬件电路对加速指令进行解码和识别,因此不会影响通用处理模式下指令的执行,也无需编译器额外支持,能够利用可重构特性在运行时实现对程序的加速。
3、本发明特别适合与边缘计算的应用场景,根据用户应用特点而具有高度的灵活性,使用该处理器架构可对程序中常见指令块(如循环和经常调用的函数)进行加速,缩减了复杂的流水线和多发射机制。
4、本发明在CGRA数目配置与应用场景匹配的情况下,能够在低功耗的同时对计算机加速,实现高性能。
5、本发明最大创新点在与打破了传统的流水线结构,使用并行硬件穿插在流水线执行过程中,利用并行硬件的优势在一个周期完成相关的数条指令的执行。
6、本发明从加速常用指令的角度出发,对程序执行过程中指令相关性进行实时的判定,把存在相关性的指令保存在Cache中,将具有相关性的指令快作为一个整体送入CGRA执行,提高指令执行的效率。
7、本发明中的扩展模式并不依赖于32为的RISC-V流水线处理器,具有很好的适应性,可以移植到其他的RISC-V平台中对指令执行进行加速。
8、本发明的相关性模式识别不依赖于特定的程序范式,二是实时灵活的识别程序中的指令相关性,因此对于不同的应用程序代码都会有相应的加速效果。
附图说明
图1为本发明基于RISC-V的可重构嵌入式处理器微架构示意图;
图2为本发明FIFO Buffer的架构示意图;
图3为本发明基于RISC-V的可重构嵌入式处理器微架构两种工作模式下指令执行过程示意图;
图4为本发明指令仲裁模块的解码部分的第一层的示意图;
图5为本发明三种基本的相关性模式的示意图;
图6为本发明CGRA配置信息格式示意图;
图7为本发明指令仲裁模块的解码部分第二层的示意图;
图8为本发明CGRA模块示意图;
具体实施方式
下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。
实施例1
一种基于RISC-V的可重构嵌入式处理器微架构,包括:RISC-V处理器架构平台、FIFO Buffer、指令仲裁模块、CGRA模块;
该微架构工作在两种模式下,包括GPP模式和扩展模式;
GPP模式依赖于RISC-V处理器架构平台;在GPP模式下,通过PC+4连续取指,直到指令仲裁模块检测到之前配置的相关性模式,该微架构进入扩展模式;
扩展模式由指令仲裁模块中生成的Extend信号进行控制;在扩展模式下指令的执行方式为模式取址、寄存器堆访问、CGRA执行和写回,模式取址是从Cache中取得CGRA配置值指令信息,寄存器堆访问用于取得CGRA配置值指令信息中的操作数,CGRA执行使用CGRA执行单元一周期完成CGRA配置值指令信息中包含的指令块,写回用于将CGRA执行后的结果写入寄存器堆或者存储器中;相较于GPP模式,该模式下不包含访存阶段,所有配置信息以及所需立即数均已在之前阶段存储;图3为两种工作模式下指令执行过程示意图;在GPP模式下指令的执行过程为取指、译码、执行、访存和写回寄存器,在扩展模式下对应的流程为取(CGRA)配置信息、读寄存器、CGRA执行、空操作和写回寄存器,在扩展模式下指令块已经记录指令信息只需要在CGRA执行前读寄存器,相较于GPP模式,访存阶段也不存在了,用空操作代替;
FIFO Buffer用于:连续地检测流水线中从指令存储器中取出的指令;根据指令的opcode和function字段判断指令的类型;存储PC执行过程中最近的连续N+1条有效指令,包括RISC-V处理器架构平台的R型指令和I型指令;生成CGRA配置信息即CGRA配置值指令信息后对FIFO Buffer进行冲刷;
指令仲裁模块用于:对来自FIFO Buffer中的指令进行解码;指令解码后,判断指令的相关性;依据上述信息生成相应的CGRA配置位;使用识别的到的含有N条指令的指令段的第一条指令的PC地址,将CGRA配置信息记录在Cache中,CGRA配置信息以相关性指令块的第一条指令的PC值作为标号,同时包括该指令块最后一条指令的PC地址和操作以及立即数信息;以供在扩展模式下直接跳转到该指令块位置执行,PC值标号用于退出扩展模式后恢复PC此前执行位置,配置信息内容见图6,在处理器运行过程中,当PC值等于存储在Cache中的配置信息的索引PC值即CGRA配置信息中的标号时,生成扩展信号Extend,在扩展模式下不需要从存储介质中连续取值,处理器使用CGRA记录的CGRA配置信息一周期执行上次指令块中的N条指令,N为该CGRA配置信息中指令相关性模式包含的指令数目,由于指令块在CGRA中执行不需要从存储介质中取值,因此PC将暂停加4的操作直至CGRA执行完毕,PC值将跳转到指令块中的最后一条指令地址再执行PC+4的操作。
在生成配置信息的过程中,由于生成配置信息采用单独硬件电路,这一过程和基准RISC-V处理器流水线是并行执行的,因此不会干预正常情况下的操作;
指令仲裁模块用于检测N+1条指令的相关性,相对于FIFO Buffer冗余的一条指令是为了检测相关性的方便,能够解码N+1条指令的指令仲裁模块最多可以检测出种指令的相关性模式,但是实际操作中只取程序中最常用的几种指令间的相关性模式进行加速,例如WAR(Write After Read)和RAW(Read After Write)。因为对所有指令段模式加速不现实,这不但会增加面积开销和设计负担,臃肿的设计导致的延迟也会违背加速设计这一初衷。
该架构只需要在基本的RISC-V流水线处理器中增加本发明FIFO Buffer和指令仲裁模块,对PC和ALU执行的逻辑增加对于扩展模式的控制信号,即可使本架构在GPP模式和扩展模式下进行正常切换,由于在扩展模式下使用硬件电路的方式对加速指令实时的进行解码和识别,对GPP模式下的RISC-V执行不会产生影响,也不需要编译器的额外支持。
实施例2
根据实施例1所述的一种基于RISC-V的可重构嵌入式处理器微架构,其区别在于:
RISC处理器架构平台为32位RISC-V基准处理器架构;GPP模式依赖于32位RISC-V基准处理器架构;32位RISC-V基准处理器架构为一四流水线结构,包括取指单元、译码单元、执行单元、访存单元和写回单元,取指单元用于连续的从存储介质中根据地址取出指令信息,译码单元用于翻译取得的指令的字段得到该指令包含的微操作,执行单元包括指令执行过程中的通用运算单元,访存单元用于从存储器中取得指令需要的操作数,写回单元用于将指令执行结果写到寄存器堆或者存储器中;每条指令就按照取指、译码、执行、访存和写回的方式顺序的完成相应的操作。流水线的结构保证基准处理器的执行效率;
该处理器微架构如图1所示,本发明改进的部分包括FIFO Buffer、指令仲裁模块和CGRA模块,除此以外的结构为通用32位RISC-V基准处理器架构,本发明并不依赖于此架构,可将改进部分的架构移植到其他RISC-V处理器架构平台,仅需更改ALU和CGRA的控制部分,控制部分的修改非常简单,仅需要使用本发明的Extend扩展模式信号使ALU在扩展模式下暂停执行即可,因此本发明内容重点介绍FIFO Buffer、指令仲裁模块和CGRA模块,其他部分不属于本发明改进的内容。
FIFO Buffer包括若干级联的寄存器(取决于具有相关性的指令的数目N),该FIFOBuffer的架构如图2所示,FIFO Buffer中的数据在每个寄存器端口读出,读出内容包括每个寄存器中指令的内容和指令的有效性信号(Valid),以寄存器为单元进行传递;在每个寄存器端口读出是为了保证对指令中才模块读取的并行性。在每个FIFO Buffer入口处设有检测单元,使用指令的opcode检测指令是否可被映射到CGRA模块,有效指令包括32位RISC-V基准处理器架构中的部分R型指令和I型指令,具体包括整型算术指令(ADD,SUB)、逻辑操作指令(AND,OR,NOT,XOR)和移位操作指令(SLL,SRL,SRA);当指令为有效指令时,检测单元输出指令的有效信号和非有效信号,有效信号随指令内容在时钟信号驱动下进入FIFOBuffer,非有效信号用于对FIFO Buffer中寄存器的内容进行冲刷。另外,指令仲裁模块在某些情况下(例如不支持的Float,必须访存或者指令段第一次执行时必须的memoryaccess,还有jump等)会对FIFO Buffer生成强制冲刷信号;
指令仲裁模块包括六个部分,即:解码部分、立即数检测单元(ImmArbitor)、指令标识编码部分(Enconder)、相关性检测单元(Dependency Checker)、CGRA配置信息生成部分(Configuration Generator)及用于存储配置信息的Cache,解码部分包括第一层和第二层;
解码部分第一层如图4所示,在解码部分的第一层中,输入为来自FIFO Buffer的指令,第一层包括相似的N+1个解码单元,N为该CGRA配置信息中指令相关性模式包含的指令数目,用于将指令内容分别解码出来,例如opcode(op),source register(rs1,rs2),destination register(ds),function code(func3,func7),存在立即数(Imm)时,还要解码出立即数(立即数在指令中的存储可能不连续);
在解码部分的第二层中,输入为来自解码部分的第一层中N+1条指令的解码信息,包括目的寄存器(rd)和源寄存器(rs1、rs2),使用比较器(Cmp)和逻辑门(OR)判断指令相关性信息;以三条指令相关性判定为例,如图7所示,Dep1_2(DependencybetweenInstruction 1andInstrution 2,即指令1和2之间的相关性)是用来判断第一条指令的目的寄存器和第二条指指令的两个源寄存器是否存在相关性的,上半部分的比较器是用来判断指令之间的目的寄存器是否存在相关性的;
在解码部分的第二层包括一个立即数检测单元,立即数检测单元用于检测在N+1条指令的解码信息中是否存在立即数,分为三种情况:没有立即数;存在一个立即数字段;存在一个以上的立即数字段;为此,设置两个信号:立即数存在信号和立即数使能信号;如果在N+1条指令中不存在立即数段,那么将立即数存在信号置零,立即数使能信号置一;如果存在一个立即数段,那么将立即数存在信号和立即数使能信号都置一,并将该立即数的值从解码部分的第二层中输出;如果存在一个以上的立即数段,那么该指令为不受支持的S型指令或者SB型指令(不包括长立即数指令U型),立即数存在信号和立即数使能信号都为低电平,并且如果是这种情况,如前所述,会生成FIFO Buffer的强制冲刷信号,FIFOBuffer中的内容随着时钟一次次冲刷,指令仲裁模块则放弃该条指令使用下一条指令继续检测指令的相关性;
在解码部分的第二层中,指令标识编码部分用于对来自FIFO Buffer的N个寄存器的信息进行编码,输入为每个寄存器的指令有效位信息(如图7所示,即Valid信号,该信号来自于FIFO Buffer有效信号的输出),编码后生成N个寄存器中有效指令的数目;
在解码部分的第二层包括一个相关性检测单元,该相关性检测单元判断出存储在FIFO Buffer中的指令的相关性的模式,并生成三个输出,包括输入寄存器的数目、输出寄存器的数目和相关性模式代码;
在解码部分的第二层中,CGRA配置信息生成部分用于产生CGRA的配置信息位,CGRA配置信息生成部分还用于检查:立即数有效信号是否为高电平;指令标识编码部分输出的指令数目是否在2~N+1之间;相关性检测单元输出的输入和输出寄存器数目是否和CGRA输入输出匹配;检测指令间的依赖是否有效;如果上述条件全部满足,CGRA配置信息生成部分依据相关性检测单元的输出生成CGRA配置信息;
CGRA配置信息生成部分生成的CGRA配置信息包括三个主体部分,如图6所示,第一主体部分包括相关性模式信息(Pattern Info),相关性模式信息包括相关性指令块的第一条指令的PC值、该指令块最后一条指令的PC地址和操作以及立即数信息,指令相关性信息用来确定相关的指令数以及输入输出数目信息来配置CGRA端口;第二主体部分用于表明该指令块中的一些操作(OP),一些操作包含操作代码OP和涉及到的指令中的寄存器(rd)和源寄存器(rs),第二主体部分的信息用于确定具体调用CGRA的操作类型(如ADD,SUB和移位操作)和传入数据,第三主体部分为指令块所用到的立即数信息(Imm Num);
这三个部分信息组成了CGRA配置指令内容,CGRA配置信息生成部分生成的CGRA配置信息存储在Cache中,在扩展模式下将该指令送入CGRA对其进行配置。
CGRA模块的总体结构如图8所示,CGRA模块的输入端接收CGRA配置信息,使用CGRA配置信息的第一主体部分即相关性模式信息来确定当前相关性模块需要的I/O(Input/Output)数目,配置输出口的MUX(多选器);
CGRA模块还包括若干执行单元PE(Process Element),PE中包括若干运算单元(如ADD、SUB和逻辑运算),用于接收来自CGRA配置信息中的第二主体部分,明确了指令块中运算的操作类型和操作数信息,同时如果中间的某个指令用到了立即数,第三主体部分提供对应的立即数信息。
CGRA模块的输入输出端口数应当与所识别指令模式中输入和输出寄存器数目兼容,例如,规定了N的值,输入寄存器最大数和输出寄存器最大数随之确定,则CGRA的输入和输出数应当大于或者至少等于输入和输出寄存器的最大值;
除此以外,CGRA模块还应当满足以下特征:
1)能够实现所有支持的数据相关性模式;
2)尽可能的简单以缩小面积和功耗开销;
3)N个PE(Process Element)能够实现N个具有相关性的指令在一个周期内执行;
4)CGRA的输出端无寄存器,直接与处理器的寄存器堆相连。
指令仲裁模块生成两个信号,包括冲刷信号和CGRA配置信号;
冲刷信号用于对FIFO Buffer进行冲刷,存在下面三种情况将对其冲刷:第一,当有不支持的指令时,立即数检测单元对其进行冲刷以获取新指令;第二,当指令仲裁模块的N+1条指令存在相关性时,当把CGRA配置信息保存在Cache中后,对FIFO Buffer进行冲刷以获取新指令;第三,当有不支持的相关性模式或者独立的指令时,指令仲裁模块对FIFOBuffer进行冲刷以获取新指令;
CGRA配置信号在检测到上述所有指令模式中所持支的相关性模式时,该CGRA配置信号有效,CGRA配置信号用于将识别好的指令模式和CGRA配置位以指令段第一条指令的PC值为索引存储在Cache中。
相关性检测单元中,指令相关性的检测依赖于来自FIFO Buffer和解码部分的第一层的信息,指令相关性信息是通过比较产生的,比较内容包括三个部分:指令的rs、rd;来自立即数检测单元的立即数存在信号和立即数的值;来自指令标识编码部分的有效指令数目;
N+1条指令相关性的模式多达种,本发明只针对某些最常用的相关性模式,定义三种基本的相关性模式:1)第一条指令的目的寄存器rt是第二条指令的两个源寄存器rs之一,即RAW;2)第一条指令和第二条指令的rt是第三条指令的的源寄存器rs;3)三条指令为连续的RAW;由这三种基本的相关性模式可以类推得到三个及三个指令的所有相关性模式;图5为三种基本的相关性模式的示意图;其中,图5中的1)中,第一条指令的目的寄存器rt是第二条指令的两个源寄存器rs之一,即RAW;图5中的2)中,第一条指令和第二条指令的rt是第三条指令的的源寄存器rs;图5中的3)中,三条指令为连续的RAW。
以基本的指令相关性模式中的3)为例:在第一个时钟周期,第一条指令进入FIFOBuffer中;在第二个时钟周期,第二条指令进入FIFO Buffer中,指令仲裁模块检测出基本相关性模式中的1)这时CGRA配置信息生成并存储在Cache中;在第三个时钟周期,第三条指令进入FIFO Buffer中,指令仲裁模块检测出基本指令相关性模式中的3),这时生成的配置信息同样存储在Cache中,由于这时1)和3)中的配置信息的索引PC值一样,所以3)中的配置信息会重写1)中的信息,当第三条指令时独立于第二条指令的时候,会保留1)中的信息;
和上述情况类似,如果第四条指令和第三条指令存在相关性,那么新的配置信息会重写覆盖以前的配置信息;即如果下一条指令和相邻的前一条指令存在相关性,而如果这种累计的相关性又是支持的相关性模式,新的配置信息会重写之前的配置信息,之前的配置信息不会被重写,在这种情况下,之前的指令模式配置结束,指令仲裁模块会以新的一条指令的PC地址为索引,继续检测接下来指令之间的相关性模式,同样也是知道检测到独立的指令为止,如此往复,生成CGRA的配置信息。
相关性检测单元检测指令的有效性和指令的编号来标识指令,通过比较rs,rd以及立即数的相等关系判定指令间的相关性,输出内容包括N条指令组成的相关性模式,具体包括:输入寄存器的数目,即相关性模式指令段中的输入寄存器数目;输出寄存器的数目,即相关性模式指令段中输出寄存器的数目;相关性模式代码,用来标志该微架构支持的相关性模式。
实施例3
实施例1或2所述的基于RISC-V的可重构嵌入式处理器微架构的工作方法,包括步骤如下:
(1)在GPP模式下,执行流程为四级流水线的取指、译码、执行、访存和写回,通过PC+4连续从存储介质中取值;
(2)在GPP模式下,FIFO Buffer和指令仲裁模块连续检测指令的相关性,如果存在指令的相关性,则生成对应的CGRA配置指令信息并存储在Cache中,每检测到一个相关性模式就生成一条对应的CGRA配置指令信息,每个CGRA配置指令信息的第一主体部分记录了该相关性指令块的第一条指令的PC值、该指令块最后一条指令的PC地址和操作以及立即数信息,如此循环下去,直到指令仲裁模块检测到当前PC值等于存储在Cache中的配置信息的索引PC值即CGRA配置信息中的标号时,指令仲裁模块就判断出Cache中已经记录了该指令为第一条指令的相关性指令快,指令仲裁模块生成扩展信号Extend;
(3)指令仲裁模块发出Extend信号后,处理器推出GPP模式,下一个周期PC值将不加4,在这个周期中CGRA完成了对指令块的全部操作并将指令结果写回;
(4)CGRA模块执行相当于一周期执行了存在相关性的N条指令,因此为保证程序的正常执行,下一个周期PC的值为CGRA配置信息指令块中最后一条指令的PC+4,这样程序就能够正常按序执行;
(5)在CGRA模块执行完的下一个周期,Extend无效,处理器同时退出扩展模式,继续在GPP模式下运行;
(6)处理器运行中再次检测相关性,重复步骤(2)至步骤(5)。
Claims (8)
1.一种基于RISC-V的可重构嵌入式处理器,它包括一钟微架构,其特征在于,包括:RISC-V处理器架构平台、FIFO Buffer、指令仲裁模块、CGRA模块;
该微架构工作在两种模式下,包括GPP模式和扩展模式;GPP模式依赖于RISC-V处理器架构平台;在GPP模式下,通过PC+4连续取指,直到指令仲裁模块检测到之前配置的相关性模式,该微架构进入扩展模式;
扩展模式由指令仲裁模块中生成的Extend信号进行控制;在扩展模式下指令的执行方式为模式取址、寄存器堆访问、CGRA执行和写回,模式取址是从Cache中取得CGRA配置值指令信息,寄存器堆访问用于取得CGRA配置值指令信息中的操作数,CGRA执行使用CGRA执行单元一周期完成CGRA配置值指令信息中包含的指令块,写回用于将CGRA执行后的结果写入寄存器堆或者存储器中;
所述FIFO Buffer用于:连续地检测流水线中从指令存储器中取出的指令;根据指令的opcode判断指令的类型;存储PC执行过程中最近的连续N条有效指令,包括RISC-V处理器架构平台的R型指令和I型指令;生成CGRA配置信息即CGRA配置值指令信息后对FIFO Buffer进行冲刷;
所述指令仲裁模块用于:对来自FIFO Buffer中的指令进行解码;指令解码后,判断指令的相关性;生成相应的CGRA配置位;使用识别的到的含有N条指令的指令段的第一条指令的PC地址,将CGRA配置信息记录在Cache中,CGRA配置信息以相关性指令块的第一条指令的PC值作为标号,同时包括该指令块最后一条指令的PC地址和操作以及立即数信息;在处理器运行过程中,当PC值等于存储在Cache中的配置信息的索引PC值即CGRA配置信息中的标号时,生成扩展信号Extend,在扩展模式下不需要从存储介质中连续取值,处理器使用CGRA记录的CGRA配置信息一周期执行上次指令块中的N条指令,N为该CGRA配置信息中指令相关性模式包含的指令数目,PC将暂停加4的操作直至CGRA执行完毕,PC值将跳转到指令块中的最后一条指令地址再执行PC+4的操作。
2.根据权利要求1所述的一种基于RISC-V的可重构嵌入式处理器,其特征在于,所述RISC-V处理器架构平台为32位RISC-V基准处理器架构;GPP模式依赖于32位RISC-V基准处理器架构;
所述32位RISC-V基准处理器架构为一四流水线结构,包括取指单元、译码单元、执行单元、访存单元和写回单元,取指单元用于连续的从存储介质中根据地址取出指令信息,译码单元用于翻译取得的指令的字段得到该指令包含的微操作,执行单元包括指令执行过程中的通用运算单元,访存单元用于从存储器中取得指令需要的操作数,写回单元用于将指令执行结果写到寄存器堆或者存储器中;每条指令就按照取指、译码、执行、访存和写回的方式顺序的完成相应的操作。
3.根据权利要求1所述的一种基于RISC-V的可重构嵌入式处理器,其特征在于,所述FIFO Buffer包括若干级联的寄存器FIFO Buffer中的数据在每个寄存器端口读出,读出内容包括每个寄存器中指令的内容和指令的有效性信号,以寄存器为单元进行传递;在每个FIFO Buffer入口处设有检测单元,使用指令的opcode检测指令是否可被映射到CGRA模块,有效指令包括32位RISC-V基准处理器架构中的部分R型指令和I型指令,具体包括整型算术指令、逻辑操作指令和移位操作指令;当指令为有效指令时,检测单元输出指令的有效信号和非有效信号,有效信号随指令内容在时钟信号驱动下进入FIFO Buffer,非有效信号用于对FIFO Buffer中寄存器的内容进行冲刷。
4.根据权利要求1所述的一种基于RISC-V的可重构嵌入式处理器,其特征在于,所述指令仲裁模块包括六个部分,即:解码部分、立即数检测单元、指令标识编码部分、相关性检测单元、CGRA配置信息生成部分及用于存储配置信息的Cache,解码部分包括第一层和第二层;
在解码部分的第一层中,输入为来自FIFO Buffer的指令,第一层包括N+1个解码单元,N为该CGRA配置信息中指令相关性模式包含的指令数目,用于将指令内容分别解码出来,存在立即数时,还要解码出立即数;
在解码部分的第二层中,输入为来自解码部分的第一层中N+1条指令的解码信息,包括目的寄存器和源寄存器,使用比较器和逻辑门判断指令相关性信息;
在解码部分的第二层包括一个立即数检测单元,立即数检测单元用于检测在N+1条指令的解码信息中是否存在立即数,分为三种情况:没有立即数;存在一个立即数字段;存在大于一个的立即数字段;设置两个信号:立即数存在信号和立即数使能信号;如果在N+1条指令中不存在立即数段,那么将立即数存在信号置零,立即数使能信号置一;如果存在一个立即数段,那么将立即数存在信号和立即数使能信号都置一,并将该立即数的值从解码部分的第二层中输出;如果存在大于一个的立即数段,那么该指令为不受支持的S型指令或者SB型指令,立即数存在信号和立即数使能信号都为低电平,生成FIFO Buffer的强制冲刷信号,FIFO Buffer中的内容随着时钟一次次冲刷,指令仲裁模块则放弃该条指令使用下一条指令继续检测指令的相关性;
在解码部分的第二层中,指令标识编码部分用于对来自FIFO Buffer的N个寄存器的信息进行编码,输入为每个寄存器的指令有效位信息,编码后生成N个寄存器中有效指令的数目;
在解码部分的第二层包括一个相关性检测单元,该相关性检测单元判断出存储在FIFOBuffer中的指令的相关性的模式,并生成三个输出,包括输入寄存器的数目、输出寄存器的数目和相关性模式代码;
在解码部分的第二层中,CGRA配置信息生成部分用于产生CGRA的配置信息位,CGRA配置信息生成部分还用于检查:立即数有效信号是否为高电平;指令标识编码部分输出的指令数目是否在2~N之间;相关性检测单元输出的输入和输出寄存器数目是否和CGRA输入输出匹配;检测指令间的依赖是否有效;如果上述条件全部满足,CGRA配置信息生成部分依据相关性检测单元的输出生成CGRA配置信息;
CGRA配置信息生成部分生成的CGRA配置信息包括三个主体部分,第一主体部分包括相关性模式信息,所述相关性模式信息包括相关性指令块的第一条指令的PC值、该指令块最后一条指令的PC地址和操作以及立即数信息,所述指令相关性信息用来确定相关的指令数以及输入输出数目信息来配置CGRA端口;第二主体部分用于表明该指令块中的一些操作,一些操作包含操作代码OP和涉及到的指令中的寄存器,第二主体部分的信息用于确定具体调用CGRA的操作类型和传入数据,第三主体部分为指令块所用到的立即数信息。
5.根据权利要求4所述的一种基于RISC-V的可重构嵌入式处理器,其特征在于,CGRA模块的输入端接收CGRA配置信息,使用CGRA配置信息的第一主体部分即相关性模式信息来确定当前相关性模块需要的I/O数目,配置输出口的MUX;
CGRA模块还包括若干执行单元PE,PE中包括若干运算单元,用于接收来自CGRA配置信息中的第二主体部分,明确了指令块中运算的操作类型和操作数信息,同时如果中间的某个指令用到了立即数,第三主体部分提供对应的立即数信息。
6.根据权利要求4所述的一种基于RISC-V的可重构嵌入式处理器,其特征在于,指令仲裁模块生成两个信号,包括冲刷信号和CGRA配置信号;
冲刷信号用于对FIFO Buffer进行冲刷,存在下面三种情况将对其冲刷:第一,当有不支持的指令时,立即数检测单元对其进行冲刷以获取新指令;第二,当指令仲裁模块的N+1条指令存在相关性时,当把CGRA配置信息保存在Cache中后,对FIFO Buffer进行冲刷以获取新指令;第三,
当有不支持的相关性模式或者独立的指令时,指令仲裁模块对FIFO Buffer进行冲刷以获取新指令;
CGRA配置信号在检测到上述所有指令模式中所持支的相关性模式时,该CGRA配置信号有效,CGRA配置信号用于将识别好的指令模式和CGRA配置位以指令段第一条指令的PC值为索引存储在Cache中。
7.根据权利要求4所述的一种基于RISC-V的可重构嵌入式处理器,其特征在于,相关性检测单元中,指令相关性信息是通过比较产生的,比较内容包括三个部分:指令的rs、rd;来自立即数检测单元的立即数存在信号和立即数的值;来自指令标识编码部分的有效指令数目;定义三种基本的相关性模式:1)第一条指令的目的寄存器rt是第二条指令的两个源寄存器rs之一,即RAW;2)第一条指令和第二条指令的rt是第三条指令的的源寄存器rs;3)三条指令为连续的RAW;
相关性检测单元检测指令的有效性和指令的编号来标识指令,通过比较rs, rd以及立即数的相等关系判定指令间的相关性,输出内容包括N条指令组成的相关性模式,具体包括:输入寄存器的数目,即相关性模式指令段中的输入寄存器数目;输出寄存器的数目,即相关性模式指令段中输出寄存器的数目;相关性模式代码,用来标志该微架构支持的相关性模式。
8.权利要求1-7任一所述的基于RISC-V的可重构嵌入式处理器的工作方法,其特征在于,包括步骤如下:
(1)在GPP模式下,执行流程为四级流水线的取指、译码、执行、访存和写回,通过PC+4连续从存储介质中取值;
(2)在GPP模式下,FIFO Buffer和指令仲裁模块连续检测指令的相关性,如果存在指令的相关性,则生成对应的CGRA配置指令信息并存储在Cache中,每检测到一个相关性模式就生成一条对应的CGRA配置指令信息,每个CGRA配置指令信息的第一主体部分记录了该相关性指令块的第一条指令的PC值、该指令块最后一条指令的PC地址和操作以及立即数信息,如此循环下去,直到指令仲裁模块检测到当前PC值等于存储在Cache中的配置信息的索引PC值即CGRA配置信息中的标号时,指令仲裁模块就判断出Cache中已经记录了该指令为第一条指令的相关性指令快,指令仲裁模块生成扩展信号Extend;
(3)指令仲裁模块发出Extend信号后,处理器推出GPP模式,下一个周期PC值将不加4,在这个周期中CGRA完成了对指令块的全部操作并将指令结果写回;
(4)CGRA模块执行相当于一周期执行了存在相关性的N条指令,下一个周期PC的值为CGRA配置信息指令块中最后一条指令的PC+4;
(5)在CGRA模块执行完的下一个周期,Extend无效,处理器同时退出扩展模式,继续在GPP模式下运行;
(6)处理器运行中再次检测相关性,重复步骤(2)至步骤(5)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110941734.XA CN113703845B (zh) | 2021-08-17 | 2021-08-17 | 一种基于risc-v的可重构嵌入式处理器微架构及其工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110941734.XA CN113703845B (zh) | 2021-08-17 | 2021-08-17 | 一种基于risc-v的可重构嵌入式处理器微架构及其工作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113703845A CN113703845A (zh) | 2021-11-26 |
CN113703845B true CN113703845B (zh) | 2023-08-22 |
Family
ID=78652972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110941734.XA Active CN113703845B (zh) | 2021-08-17 | 2021-08-17 | 一种基于risc-v的可重构嵌入式处理器微架构及其工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113703845B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117193861B (zh) * | 2023-11-07 | 2024-03-15 | 芯来智融半导体科技(上海)有限公司 | 指令处理方法、装置、计算机设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184092A (zh) * | 2011-05-04 | 2011-09-14 | 西安电子科技大学 | 基于流水线结构的专用指令集处理器 |
CN112269581A (zh) * | 2020-12-24 | 2021-01-26 | 北京清微智能科技有限公司 | 一种可重构芯片的内存耦合编译方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10768930B2 (en) * | 2014-02-12 | 2020-09-08 | MIPS Tech, LLC | Processor supporting arithmetic instructions with branch on overflow and methods |
-
2021
- 2021-08-17 CN CN202110941734.XA patent/CN113703845B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184092A (zh) * | 2011-05-04 | 2011-09-14 | 西安电子科技大学 | 基于流水线结构的专用指令集处理器 |
CN112269581A (zh) * | 2020-12-24 | 2021-01-26 | 北京清微智能科技有限公司 | 一种可重构芯片的内存耦合编译方法及系统 |
Non-Patent Citations (1)
Title |
---|
一种针对大规模CGRA的编译器后端设计;叶鹏飞;;现代计算机(第06期);论文全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113703845A (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6418527B1 (en) | Data processor instruction system for grouping instructions with or without a common prefix and data processing system that uses two or more instruction grouping methods | |
Brooks et al. | Dynamically exploiting narrow width operands to improve processor power and performance | |
US6839828B2 (en) | SIMD datapath coupled to scalar/vector/address/conditional data register file with selective subpath scalar processing mode | |
US6279100B1 (en) | Local stall control method and structure in a microprocessor | |
US6490673B1 (en) | Processor, compiling apparatus, and compile program recorded on a recording medium | |
JP3662258B2 (ja) | X86・dspコアを有しかつx86命令をdsp命令へマッピングするdspファンクションデコーダを備える中央処理装置 | |
Brooks et al. | Value-based clock gating and operation packing: dynamic strategies for improving processor power and performance | |
US5619664A (en) | Processor with architecture for improved pipelining of arithmetic instructions by forwarding redundant intermediate data forms | |
US20040205326A1 (en) | Early predicate evaluation to reduce power in very long instruction word processors employing predicate execution | |
US20030056088A1 (en) | Processor, compiler and compilation method | |
WO2000033183A9 (en) | Method and structure for local stall control in a microprocessor | |
KR20010109354A (ko) | 프로세서내의 기록 트래픽을 감소시키는 시스템 및 방법 | |
US5799180A (en) | Microprocessor circuits, systems, and methods passing intermediate instructions between a short forward conditional branch instruction and target instruction through pipeline, then suppressing results if branch taken | |
KR100316078B1 (ko) | 파이프라인방식프로세서 | |
US11726912B2 (en) | Coupling wide memory interface to wide write back paths | |
CN113703845B (zh) | 一种基于risc-v的可重构嵌入式处理器微架构及其工作方法 | |
US6799266B1 (en) | Methods and apparatus for reducing the size of code with an exposed pipeline by encoding NOP operations as instruction operands | |
GB2317724A (en) | Multiple instruction parallel issue/execution management system | |
CN112182999B (zh) | 一种基于mips32指令系统的三级流水线cpu设计方法 | |
US5812812A (en) | Method and system of implementing an early data dependency resolution mechanism in a high-performance data processing system utilizing out-of-order instruction issue | |
JP5989293B2 (ja) | 多重命令語処理装置におけるフィードバック接続の実行時間選択 | |
US20070271449A1 (en) | System and method for dynamically adjusting pipelined data paths for improved power management | |
JP5122277B2 (ja) | データ処理方法、処理装置、多重命令ワードセット生成方法、コンパイラプログラム | |
CN113779755A (zh) | 一种硅基多光谱集成电路芯片的设计方法和集成电路芯片 | |
US11782719B2 (en) | Reconfigurable multi-thread processor for simultaneous operations on split instructions and operands |
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 | ||
GR01 | Patent grant |