CN102063290B - 一种系统化risc cpu流水线控制方法 - Google Patents
一种系统化risc cpu流水线控制方法 Download PDFInfo
- Publication number
- CN102063290B CN102063290B CN 201010601890 CN201010601890A CN102063290B CN 102063290 B CN102063290 B CN 102063290B CN 201010601890 CN201010601890 CN 201010601890 CN 201010601890 A CN201010601890 A CN 201010601890A CN 102063290 B CN102063290 B CN 102063290B
- Authority
- CN
- China
- Prior art keywords
- production line
- level production
- instruction
- streamline
- level
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Advance Control (AREA)
Abstract
本发明揭示了一种RISC CPU流水线控制方法,系统化地分析流水线每一级停顿因素,该级流水线是否刷新中间寄存器数据的操作决定于两个因素:该条指令是否需要刷新寄存器以及后级执行的指令是否阻止该操作,即流水线停顿;并且提出了控制逻辑的递推公式:本发明流水线的逻辑控制系统化,只需单独考虑每一类指令的执行流程控制,即该条是否需要执行下一级流水线以及该条指令是否需要停顿前一级流水线,而无需考虑指令之间的关系,使系统指令设计简单化,适合于向更深流水线扩展。
Description
技术领域
本发明涉及一种RISC CPU中的流水线逻辑控制方法,该方法系统化地提出了每一级流水线刷新寄存器的条件,以及控制信号的递推公示,适用于具类似电路结构且任意高深度的流水线控制。
背景技术
随着集成电路技术的发展,目前市场上大量流行着嵌入式32位RISC CPU微处理器。近年来,国家通过科技部863超大规模集成电路重大专项,大力扶持我国自主知识产权的通用和专用微处理器的研制和开发,成绩显著。RISC(Reduced Instruction Set Computer)是一种执行较少类型计算机指令的微处理器,流水线以及常用指令均通过硬件实现,采用了大量的寄存器,使大部分指令都在寄存器之间进行,提高处理速度。
RISC CPU通过指令流水线设计提高性能,流水线深度越深,系统时钟频率相应地越高,RISC CPU能以更快的速度执行操作(每秒执行多达百万条指令,即MIPS)。但随着流水线深度提高,在指令执行过程中,每级流水线出现空状态(NOP)或者流水线冒险(HAZARD)的情况的就会更加复杂,很大程度上增加了流水线控制逻辑电路设计的难度。很有必要开发一种适合于高深度流水线控制逻辑来管理流水线的异常。
发明内容
鉴于上述现有技术存在的缺陷,本发明的目的是提出一种系统化的RISCCPU流水线逻辑控制方法,该方法对流水线深度不敏感,可适用于任何深度流水线设计;解决RISC CPU流水线的设计难度,并提高RISC CPU系统的整体性能。
本发明上述目的,其技术解决方法是:
一种系统化RISC CPU流水线控制方法,所述RISC CPU每一级流水线均包括逻辑运算单元、寄存器、控制刷新本级流水线寄存器的控制电路U和控制前级流水线停顿的控制电路S,其特征在于:设当前为第i级流水线,输入指令置位前级流水线的使能信号Ei-1、本级流水线的自锁信号Li和后级流水线的停顿信号Si+1,按控制逻辑的递推公式Ⅰ计算得出本级流水线的刷新寄存器信号Ui和停顿前级流水线信号Si,并按所得的Ui和Si执行刷新本级流水线寄存器和停顿前级流水线的操作,其中所述控制逻辑的递推公式Ⅰ为:
进一步地,上述流水线控制方法,其中所述各级流水线的逻辑运算单元具有不等的延时,通过增加流水线长度能匹配所述延时。
本发明RISC CPU流水线控制方法,其突出效果为:流水线的逻辑控制系统化,只需单独考虑每一类指令的执行流程控制,即该条是否需要执行下一级流水线以及该条指令是否需要停顿前一级流水线,而无需考虑指令之间的关系,降低了设计难度,适合于向更深流水线扩展。
附图说明
图1是本发明系统化流水线控制电路结构示意图;
图2是本发明流水线控制方法一实施例的五级流水线结构示意图;
图3是流水线F级异常的流水线执行示意图;
图4是流水线D级异常的流水线执行示意图;
图5是流水线E级多周期执行异常的流水线执行示意图;
图6是流水线E级分支跳转异常的流水线执行示意图;
图7是流水线M级异常的流水线执行示意图;
图8是流水线W级异常的流水线执行示意图。
具体实施方式
如图1所示,该RISC CPU流水线指令控制的电路结构示意图。其中每一级流水线均包括逻辑运算单元、寄存器、控制刷新本级流水线寄存器的控制电路U和控制前级流水线停顿的控制电路S。其中每一级的寄存器均接入同一时钟频率。其中控制电路U的三个输入端分别连接前一级流水线的使能信号Ei- 1、本级流水线的自锁信号Li和后一级的停顿信号Si+1(如图1中间部分所示),其输出端直接向寄存器输出控制信号Ui。另外控制电路S的三个输入端分别连接前一级流水线寄存器是否存储着指令数据的判别输出Ni-1、本级流水线的自锁信号Li和后一级的停顿信号Si+1(如图1中间部分所示),其输出端直接指向前一级控制电路S输出控制信号Si。从图示可见,第i-1级、第i级和第i+1级的电路结构相类似,无论流水线深度的不断增加,该RISC CPU流水线的系统结构同一性较强,硬件结构上设计简单、合理。
流水线异常是指使流水线平衡破坏的各种因素,这些因素决定着每级流水线是否置位流水线使能信号Ei-1、流水线自锁信号Li、流水线停顿信号Si+1以及控制信号Ni,经系统化分析每一级流水线刷新寄存器的条件,指出该级流水线刷新寄存器以及停顿前级流水线的控制信号决定于相邻级流水线的指令,并提出了控制逻辑的递推公式Ⅰ:
其中Ei-1表示保存在第i-1级流水线中间寄存器的指令指示第i级流水线是否刷新寄存器,保存该指令数据;Si+1表示第i+1级流水线正在执行的指令指示第i级流水线寄存器数据是否能被刷新,若不能则会发生流水线停顿;Li表示上一个时钟周期在第i级流水线执行的指令是否继续占据该级流水线,刷新寄存器数据。流水线停顿控制电路输出信号Si=(Li+Si+1)·Ni-1,其中Ni-1表示第i-1级流水线寄存器是否存储着指令数据。流水线每一级寄存器数据能被刷新的条件必须满足:
1、前一级指令指示刷新该级寄存器,并且不被停顿,即控制信号Ei-1=1,Si+1=0;
2、该级流水线指令发生自锁占据另一时钟周期,即Li=1。
以下便以传统五级流水线的RISC CPU作为实施例并结合其附图,对本发明的具体实施方式作进一步的详述,以使本发明技术方案更易于理解、掌握,优点更突出。
如图2所示,是传统五级流水线的结构示意图。从图示可见,该五级流水线由F取指令(Instruction Fetch),D译码(Instruction Decoder),E执行(Execution),M内存访问(Memory Access)和W写回(Write Back)构成。在统一的时钟频率下,按F-D-E-M-W顺序逐级运行指令,执行操作。每一级流水线产生异常的原因各不相同,而应用本发明的流水线控制方法,可有效克服各种破坏因素。
实施例一
如图3所示,针对F级异常的流水线执行示意图可见:当指令缓存没有击中时,取指令操作失败,即该周期无指令,F级插入气泡,只是下一时钟周期不执行D级流水线;只需将流水线使能信号E1置0,N1置1(空状态)。
实施例二
如图4所示,针对D级异常的流水线执行示意图可见:由于寄存器组只有三个读端口,当指令需要读四个寄存器数时,流水线停顿;只需将流水线自锁信号L1置1。
实施例三
如图5所示,针对E级多周期执行异常的流水线执行示意图可见:当指令为乘法等多周期执行结束指令时,将使前级流水线停顿,后级流水线在最后一个周期开始执行,乘法指令在流水线E级执行需要1~5个时钟周期。当非最后一个时钟周期时,使能信号E3置0,自锁信号L3置1,否则根据递推公式求解;
再如图6所示,针对E级分支跳转异常的流水线执行示意图可见:当指令为分支、跳转指令时,在该指令之前的指令正常运行,但该指令之后的执行指令为错误指令,即F、D正在执行的指令。流水线控制逻辑将通过置E2、E1为0来撤销F、D正在执行的指令。流水线F选择跳转地址开始执行跳转程序。
实施例四
如图7所示,针对M级异常的流水线执行示意图可见:当两条指令使用同一硬件资源,将使流水线停顿,即自锁信号L4置位为1。
实施例五
如图8所示,针对W级异常的流水线执行示意图可见,当一条指令要写回两个寄存器,但只能在单时钟周期内写回一个寄存器。只需将自锁信号L5置1即可。
除上述实施例之外,当外界有中断信号打断流水线时,可以令流水线里的指令执行结束,保存被中断指令的执行地址,等待中断处理程序结束后返回该地址继续执行,并不影响流水线的控制。并且,RISC CPU支持32位乘法指令,对于传统流水线而言,该指令在流水线E设计为一个时钟周期完成操作,最长延时为32位×32位的乘法加32位数据选择,最大系统时钟频率决定于该延迟路径,而其余各级流水线逻辑单元延时远小于该最大延时,也即各级流水线的数据在时钟沿到来之前已经保持一段很长的时间,造成不必要的浪费。在实施例三中,通过流水线E多周期执行,降低该级最大延迟路径,可以很好地将该级延迟与流水线各级逻辑单元延迟相匹配,提高时钟频率。如将32位乘法以32位×8位乘法单元在1~4个周期内实现(周期数取决于乘数、被乘数以及乘法类型),因而通过增加流水线长度,可以很好地匹配各级流水线逻辑单元延迟,提高性能,减少面积。
本发明的控制方法系统化地提出了影响流水线刷新寄存器的因素,指出流水线控制设计的递推公式,为每一级流水线所设计的控制电路结构相近,且控制电路S与U内部结构非常简单,逻辑时延很小,适用于深流水线。
Claims (2)
1.一种系统化RISC CPU流水线控制方法,所述RISC CPU每一级流水线均包括逻辑运算单元、寄存器、控制刷新本级流水线寄存器的控制电路U和控制前级流水线停顿的控制电路S,其特征在于:设当前为第i级流水线,输入指令置位前级流水线的使能信号Ei-1、前级流水线寄存器是否存储指令数据信号Ni-1、本级流水线的自锁信号Li和后级流水线的停顿信号Si+1,按控制逻辑的递推公式Ⅰ计算得出本级流水线的刷新寄存器信号Ui和停顿前级流水线信号Si,并按所得的Ui和Si执行刷新本级流水线寄存器和停顿前级流水线的操作,其中所述控制逻辑的递推公式Ⅰ为:
2.根据权利要求1所述的一种系统化RISC CPU流水线控制方法,其特征在于:所述各级流水线的逻辑运算单元具有不等的延时,通过增加流水线长度能匹配所述延时。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010601890 CN102063290B (zh) | 2010-12-23 | 2010-12-23 | 一种系统化risc cpu流水线控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010601890 CN102063290B (zh) | 2010-12-23 | 2010-12-23 | 一种系统化risc cpu流水线控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102063290A CN102063290A (zh) | 2011-05-18 |
CN102063290B true CN102063290B (zh) | 2013-08-07 |
Family
ID=43998581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010601890 Expired - Fee Related CN102063290B (zh) | 2010-12-23 | 2010-12-23 | 一种系统化risc cpu流水线控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102063290B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111008042B (zh) * | 2019-11-22 | 2022-07-05 | 中国科学院计算技术研究所 | 基于异构流水线的高效通用处理器执行方法及系统 |
CN116450570B (zh) * | 2023-06-19 | 2023-10-17 | 先进能源科学与技术广东省实验室 | 基于fpga的32位risc-v处理器及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6671798B1 (en) * | 1993-08-25 | 2003-12-30 | Advanced Micro Devices, Inc. | Configurable branch prediction for a processor performing speculative execution |
CN101021780A (zh) * | 2007-03-19 | 2007-08-22 | 中国人民解放军国防科学技术大学 | 基于缓冲的流水线无停顿控制机制 |
-
2010
- 2010-12-23 CN CN 201010601890 patent/CN102063290B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6671798B1 (en) * | 1993-08-25 | 2003-12-30 | Advanced Micro Devices, Inc. | Configurable branch prediction for a processor performing speculative execution |
CN101021780A (zh) * | 2007-03-19 | 2007-08-22 | 中国人民解放军国防科学技术大学 | 基于缓冲的流水线无停顿控制机制 |
Also Published As
Publication number | Publication date |
---|---|
CN102063290A (zh) | 2011-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10515046B2 (en) | Processors, methods, and systems with a configurable spatial accelerator | |
CN103150146B (zh) | 基于可扩展处理器架构的专用指令集处理器及其实现方法 | |
US6304955B1 (en) | Method and apparatus for performing latency based hazard detection | |
CN109918130A (zh) | 一种具有快速数据旁路结构的四级流水线risc-v处理器 | |
US7609582B2 (en) | Branch target buffer and method of use | |
US11797473B2 (en) | Accelerator architecture on a programmable platform | |
CN110109859B (zh) | 可编程平台上的加速器架构 | |
CN100451951C (zh) | Risc cpu中的5+3级流水线设计方法 | |
CN102063290B (zh) | 一种系统化risc cpu流水线控制方法 | |
US7681022B2 (en) | Efficient interrupt return address save mechanism | |
US7693926B2 (en) | Modular multiplication acceleration circuit and method for data encryption/decryption | |
US7346737B2 (en) | Cache system having branch target address cache | |
CN102436781B (zh) | 基于隐式相关性和隐式旁路的微处理器指令拆分装置 | |
Reaz et al. | A single clock cycle MIPS RISC processor design using VHDL | |
CN102779026B (zh) | 一种高性能dsp处理器中的指令多发射方法 | |
CN111124360B (zh) | 一种可配置矩阵乘法的加速器 | |
US10445099B2 (en) | Reconfigurable microprocessor hardware architecture | |
Hadizadeh et al. | Parallel processor architecture with a new algorithm for simultaneous processing of mips-based series instructions | |
CN104112032A (zh) | 时钟控制电路与方法 | |
CN203164952U (zh) | 一种单发射流水线处理器 | |
CN105183697A (zh) | 嵌入式rsic-dsp处理器系统及构建方法 | |
CN101615114B (zh) | 完成两次乘法两次加法两次位移的微处理器实现方法 | |
GB2416412A (en) | Branch target buffer memory array with an associated word line and gating circuit, the circuit storing a word line gating value | |
JP2006293741A (ja) | プロセッサ | |
RU2427883C2 (ru) | Окончание инструкции с учетом потребляемой энергии |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130807 Termination date: 20161223 |