CN110737406A - 一种支持乱序的多端口寄存器组文件的实现方法 - Google Patents
一种支持乱序的多端口寄存器组文件的实现方法 Download PDFInfo
- Publication number
- CN110737406A CN110737406A CN201910979228.2A CN201910979228A CN110737406A CN 110737406 A CN110737406 A CN 110737406A CN 201910979228 A CN201910979228 A CN 201910979228A CN 110737406 A CN110737406 A CN 110737406A
- Authority
- CN
- China
- Prior art keywords
- write
- port
- register
- design
- identifier
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明是一种支持乱序多端口寄存器组文件的实现方法,用于构成处理器微架构设计的基础,优化顺序或乱序架构的多发射多执行处理器对寄存器组文件的乱序多读多写问题。本发明所述寄存器组文件中包含一个特定的写选择控制器。本发明所述实现方法还包括一个特定的基于标识符的流水线控制机制。
Description
技术领域
本发明属于计算机硬件、超标量处理器设计领域,数字集成电路设计领域,具体涉及一种处理器核心微架构及寄存器组文件装置。
背景技术
超标量处理器拥有多发射指令的硬件装置以及多个执行单元并行执行所发射的指令,多个执行单元分别适应不用的指令功能,而各个执行过程时间也不一样,导致同时发射的代码,其执行结束的次序不同,造成执行后的写回乱序现象。
还有的超标量处理器设计在指令发射阶段就会引入发射的乱序,结合多执行的不同结束时间,也更普遍的造成写回的乱序现象。
专利CN1501292A给出了比较完整的多端口寄存器组文件及其设计方法。但是该发明对于写选择生成器的设计过于简单,不能处理多个写端口同时命中同一个一般寄存器地址时的冲突问题。
专利US20110161616A1发明了一种寄存器重命名的办法,用于多线程处理器对寄存器的管理控制,还不能完全解决单线程多执行的设计所需要的乱序处理问题。专利US20130151818A1只是对寄存器的指针进行管理,不能解决指令的乱序执行问题。
发明内容
本发明提供一种支持乱序的多端口寄存器组文件的实现方法,主要解决对于可乱序执行的超标量处理器中,多端口同时写同一个寄存器,以及任意一个寄存器的“写后写”的问题。
为实现处理上述多端口乱序写冲突的目的,本发明实施例结合处理器流水线微架构设计,提供了一种乱序多端口写选择控制器装置,该多端口写选择控制装置包括若干相互耦合的写使能产生器,以及写优先级比较器,将低优先级的写使能关闭,从而令高优先级的数据写入寄存器。
写优先级比较器将对应多个端口与当前端口之间的写地址和标识进行特定的判断。所需判断方法与要素还包括标识的大小与数值距离,该方法是基于本发明所提出的一套特定的标识产生机制而设计的。
本发明的效果在于:
1、简化了超标量处理器乱序多写回的控制复杂度
2、提高了超标量处理器性能
3、更适合在低成本嵌入式ASIC芯片上实现
附图说明
图1为本发明一种支持乱序的多端口寄存器组文件的硬件结构图;
图2为本发明所述超标量处理器流水线的结构及设计方法图;
图3为本发明所述指令标识符产生的逻辑流程图;
图4为本发明所述指令标识符大小与指令先后判断说明图;
图5为本发明所述写使能产生器的一个具体的实施例结构图;
图6为本发明所述写优先比较器的一个具体的实施例结构图;
图7为写使能产生器简图和乱序多端口与每个端口的写使能产生器之间的连接示意图;
图8为本发明所述的写端口数据选择器。
附图标记说明
i同时可并行发射的指令数目
m执行单元数目,读端口数目
n写端口数目
id本发明所述的指令标识符,当读写寄存器时也作为端口输入信息,作为写使能产生器中写优先级比较器的输入
A,B比较器两个输入端口的地址信息
idA,idB比较器两个输入端口的标识符信息
boundary本发明所述的标识符数值距离边界
idMAX标识符的最大值
具体实施方式
下面通过附图和实施例,对本发明进一步详细描述。
图1为本发明一种支持乱序的多端口寄存器组文件的硬件结构图,所述硬件装置包括:
多个写端口,每个用于接收写入数据;
多端口乱序写选择控制器,用于根据每个端口的标识号来处理多个写端口共同访问时的优先级别,产生各个端口的写使能的生成信号;
多端口写选择阵列,受控于写选择信号,以一种与或门的设计形式,输出写数据;
其他构成寄存器组文件装置的必要组件,包括:多个寄存器窗构成的寄存器组文件的存储主体,其中每个寄存器窗包括多个具有一定数据宽度的寄存器,用于存储写入的数据;多端口读选择器,每个对应一个读端口,根据每个读端口的读地址以及寄存器窗的控制选择信号,将对应窗中对应地址的寄存器数据输出,也包括多个与或门的设计形式;
在处理器流水线微架构的层面,本发明采取一套标识符设计方法,令乱序执行后写回乱序的情况得到标识。图2为本发明所述超标量处理器流水线的结构及设计方法图。在指令发射阶段,标识被产生并随着指令一同被分发到译码和执行阶段,定义为最多i条指令在同一时间被发出,则每条指令被分配到一个唯一的指令标识。在接下来的流水线通路上,包括译码、执行到写回,每一数据通路都包括有数据地址、数据操作信息、数据本身和相应的指令标识符。定义可以并行的执行单元为m个,则最多同时需要写回寄存器的写端口也为m个端口。在寄存器组文件的写端口处,被聚合为n个写端口,其中n<=m。寄存器组文件就是一个n写口、m读口的动态存储装置。当n<m时,存在写端口产生操作排队的可能,在这种情况下,写回单元向前发出暂停控制信号,等待排队完成。
由于多个执行单元的结束时间各不相同,所以即使是同时发射的指令,在执行后也会产生乱序的写回结果。特别是,某条指令经过较长的执行耗时后,存在其指令的标识与其他标识的数值距离也带有随机性的可能,从而会破坏写端口优先级判断的规律,或者大大增加判断的复杂度。这样的执行单元包括除法器、某些特殊计算单元、存取执行单元等等。因此在可能发生长时间执行的单元都设计一个计时器。每个长执行单元的计时器针对每一次当前长执行单元执行指令进行过程的计时,定义最长的计时溢出上限为Tmax。每个计时器当达到及时上限时触发超时溢出电平,该电平将会与暂停控制信号进行逻辑和,从而暂停流水线,等待最长执行单元的完成,从而令其指令的标识与其他标识的数值距离在数值距离边界boundary内。
还有一些执行单元的执行时间很短,这样的单元包括传统设计中的ALU,例如负责移位、累加或跳转指令的执行等等。定义最短的执行耗时为Tmin。
根据以上定义,标识符的数值距离边界计算规律为:
boundary>=(Tmin+Tmax)/clock_cycle_time+m
标识符产生器以及标识符信息所能支持的最大标识符为
idMAX=max{m*(Tmax-Tmin)/clock_cycle_time,boundary}
在一个实施例中,标识符最大值也会选取为boundary*m。
在一个实施例中,设计如图3的本发明所述指令标识符产生的逻辑流程。在标识符产生器中,采用循环累加的形式生成新的标识符,同时并行分发给并行发射的指令。当暂停控制信号有效时进行等待,保证标识符的顺序产生和分发。
基于以上设计,标识是循环累加产生的,则不同的指令标识会形成两种情况:一种是两个指令标识都是位于0ˉidMAX-1之间的范围内;另一种情况是两个指令标识位于循环点两边,即一个还在idMAX之前,而另一个已经是下一次循环累加得到的。图4是本发明所述指令标识符大小与指令先后判断说明图,图中的循环箭头表示循环累加方向,y表示上界,x表示下届。假设有A、B两条指令,分别分配了idA和idB的标识符,这两条指令的先后顺序,可以通过以下伪代码说明:
if((idA<x)&(idB>y))then
A指令比B指令更晚
else if(idA>idB)then
if(|idA-idB|<Boundary)then
A指令比B指令更晚
else
B指令比A指令更晚
else
B指令比A指令更晚
基于所述标识符产生方法、长执行单元计时器与流水线微架构设计,端口的写优先级判断逻辑可以得到设计简化。如图5所示,为写使能产生器的一个具体的实施例结构图。图中包括多个并行的写优先级比较器,其中一个实施例如图6所示。该比较器对两个输入端口的地址信息和标识信息进行比较。当两个端口的地址相等时,意味着写操作发生碰撞,需要进一步判断优先级;同时,判断两个端口的标识;综合给出判断后写使能的结果。
图7为写使能产生器简图和乱序多端口与每个端口的写使能产生器之间的连接示意图。如图所示,每个接口都需要与其他接口进行一对一的比较。
在架构层面设计的前提下,在写选择信号的逻辑电路层面,采取本发明特定的上述电路,使得对同一地址“写后写”的情况中,只有最近的数据会被选择写入寄存器。
图8为本发明所述的写端口数据选择器。根据由写使能产生器生成的对应各个端口的写使能,可以低功耗的特点设计出可选择得到最终写数据的电路,该电路如图所示,为第一级逻辑与和第二季逻辑或组成。这之后的写数据通路、寄存器设计、读数据通路等等,都可以遵循已有的设计进行集成。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种支持乱序的多端口寄存器组文件装置,其特征在于,所述硬件装置包括:
多个写端口,每个用于接收写入数据;
多端口乱序写选择控制器,用于根据每个端口的标识号来处理多个写端口共同访问时的优先级别,产生各个端口的写使能的生成信号;
多端口写选择阵列,受控于写选择信号,以一种与或门的设计形式,输出写数据;
其他构成寄存器组文件装置的必要组件,包括:多个寄存器窗构成的寄存器组文件的存储主体,其中每个寄存器窗包括多个具有一定数据宽度的寄存器,用于存储写入的数据;多端口读选择器,每个对应一个读端口,根据每个读端口的读地址以及寄存器窗的控制选择信号,将对应窗中对应地址的寄存器数据输出,也包括多个与或门的设计形式。
2.根据权利要求1所述的多端口写选择控制装置,其特征在于,可处理多个端口乱序的写同一个寄存器地址的情况,这是从两个不同设计层面共同设计的一套机制:包括在处理器流水线微架构的层面,采取一套标识符设计方法,令乱序执行后写回乱序的情况得到标识;在架构层面设计的前提下,在写选择信号的逻辑电路层面,采取特定的电路,使得对同一地址“写后写”的情况中,只有最近的数据会被选择写入寄存器。
3.根据权利要求1所述的寄存器组文件的存储装置,其特征在于,通过与或门的组合数字电路设计形式实现。
4.根据权利要求2所述的一套标识符设计方法,其特征在于,标识符容量设计与同事发射的指令数目、执行单元数目、最长执行时间等因素以特定的函数规律推导得出。
5.根据权利要求2所述的一套对同一地址“写后写”判断方法,其特征在于,应用权利要求4所述方法设计的标识符进行判断,当发生标识符咬尾情况时(后发射的指令标识符被清零、先发射的指令还未执行完毕,这样的两条指令在寄存器写端口发生地址碰撞),其差值与根据特定规律推导的边界值进行比较,从而得出对相撞的两次写操作先后执行次序的正确判断。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910979228.2A CN110737406A (zh) | 2019-10-15 | 2019-10-15 | 一种支持乱序的多端口寄存器组文件的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910979228.2A CN110737406A (zh) | 2019-10-15 | 2019-10-15 | 一种支持乱序的多端口寄存器组文件的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110737406A true CN110737406A (zh) | 2020-01-31 |
Family
ID=69269017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910979228.2A Withdrawn CN110737406A (zh) | 2019-10-15 | 2019-10-15 | 一种支持乱序的多端口寄存器组文件的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110737406A (zh) |
-
2019
- 2019-10-15 CN CN201910979228.2A patent/CN110737406A/zh not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10437594B2 (en) | Apparatus and method for transferring a plurality of data structures between memory and one or more vectors of data elements stored in a register bank | |
US7197590B2 (en) | Method and apparatus for connecting LPC bus and serial flash memory | |
CN112230992A (zh) | 一种包含分支预测循环的指令处理装置、处理器及其处理方法 | |
JPH0581016A (ja) | プログラム実行制御方式 | |
CN113095026A (zh) | 一种支持乱序多读写的寄存器组电路装置 | |
CN116661870A (zh) | 一种基于risc-v架构的高性能嵌入式处理器 | |
CN114201219A (zh) | 指令调度方法、指令调度装置、处理器及存储介质 | |
CN109062604A (zh) | 一种面向标量和向量指令混合执行的发射方法及装置 | |
EP1861765B1 (en) | Power saving methods and apparatus to selectively enable comparators in a cam renaming register file based on known processor state | |
CN112559403B (zh) | 一种处理器及其中的中断控制器 | |
CN110737406A (zh) | 一种支持乱序的多端口寄存器组文件的实现方法 | |
CN113946368B (zh) | 一种基于risc-v指令集的三级流水线架构、处理器及数据处理方法 | |
US20120144393A1 (en) | Multi-issue unified integer scheduler | |
CN111857830B (zh) | 一种提前转发指令数据的通路设计方法、系统及存储介质 | |
JPH11316681A (ja) | 命令バッファへのロ―ド方法、装置およびプロセッサ | |
KR100322150B1 (ko) | 부동 소수점 상태 및 제어 레지스터 인스트럭션을 단일 사이클 | |
CN110750943A (zh) | 一种具有同步多端口的寄存器组文件的实现方法 | |
US9495316B2 (en) | System and method for an asynchronous processor with a hierarchical token system | |
RU2816094C1 (ru) | Vliw-процессор с дополнительным подготовительным конвейером и предсказателем перехода | |
CN113095028A (zh) | 一种支持多读多写的寄存器组电路装置 | |
US8677099B2 (en) | Reconfigurable processor with predicate signal activated operation configuration memory and separate routing configuration memory | |
RU2427883C2 (ru) | Окончание инструкции с учетом потребляемой энергии | |
CN108255587B (zh) | 一种同步多线程处理器 | |
CN112947999B (zh) | 一种精简指令集计算机指令功能扩展的方法及装置 | |
US20050147036A1 (en) | Method and apparatus for enabling an adaptive replay loop in a processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200131 |