CN113095026A - 一种支持乱序多读写的寄存器组电路装置 - Google Patents
一种支持乱序多读写的寄存器组电路装置 Download PDFInfo
- Publication number
- CN113095026A CN113095026A CN202110272316.6A CN202110272316A CN113095026A CN 113095026 A CN113095026 A CN 113095026A CN 202110272316 A CN202110272316 A CN 202110272316A CN 113095026 A CN113095026 A CN 113095026A
- Authority
- CN
- China
- Prior art keywords
- write
- port
- register
- instruction
- read
- 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
- 238000000034 method Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 2
- 230000007246 mechanism Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 14
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 208000019775 Back disease Diseases 0.000 description 1
- 125000004122 cyclic group Chemical class 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
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
- G06F30/373—Design optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (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为本发明所述超标量处理器流水线的结构及设计方法图。由于多个执行单元的结束时间各不相同,所以即使是同时发射的指令,在执行后也会产生乱序的写回结果。特别是,某条指令经过较长的执行耗时后,存在其指令的标识与其他标识的数值距离也带有随机性的可能,从而会破坏写端口优先级判断的规律,或者大大增加判断的复杂度。
在一个实施例中,设计如图3的本发明所述指令标识符产生的逻辑流程。在标识符产生器中,采用循环累加的形式生成新的标识符,同时并行分发给并行发射的指令。当暂停控制信号有效时进行等待,保证标识符的顺序产生和分发。
基于以上设计,标识是循环累加产生的,则不同的指令标识会形成两种情况:一种是两个指令标识都是位于0~标识符容量-1之间的范围内;另一种情况是两个指令标识位于循环点两边,即一个还在标识符容量之前,而另一个已经是下一次循环累加得到的。图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 (7)
1.一种支持乱序多读写的寄存器组电路装置,其特征在于,包括:
多个写端口,用于接收写入数据;
多端口乱序写选择控制器,根据每个端口的标识号来处理多个写端口共同访问时的优先权,产生各个端口的写使能的生成信号;
多端口写选择阵列,受控于写选择信号,以一种与或门的设计形式,输出写数据;
写指令队列,该队列的深度为流水线级数乘以指令并发数;
其他构成寄存器组文件装置的必要组件,包括:多个寄存器窗构成的寄存器组文件的存储主体,其中每个寄存器窗包括多个具有一定数据宽度的寄存器,用于存储写入的数据;多端口读选择器,每个对应一个读端口,根据每个读端口的读地址以及寄存器窗的控制选择信号,将对应窗中对应地址的寄存器数据输出,也包括多个与或门的设计形式。
2.根据权利要求1所述的多端口写选择控制装置,其特征在于,对多个端口乱序的写同一个寄存器地址的情况,采取一套标识符设计方法,对等待执行的写指令分配标识符。
3.根据权利要求1所述的写指令队列,其特征还在于,保存了写指令对应的寄存器端口和标识符。
4.根据权利要求1所述的寄存器组文件的存储装置,其特征在于,通过与或门的组合数字电路设计形式实现。
5.根据权利要求2所述的一套标识符设计方法,其特征在于,标识符容量需要大于流水线所允许存在的最大指令条数。
6.根据权利要求2所述的一套标识符设计方法,其特征还在于,该标识符的生成是从0开始顺序生成;并以标识符容量为边界,进行Round-Robin回绕。
7.根据权利要求2所述的一套对同一地址“写后写”判断方法,其特征在于,应用权利要求4所述方法设计的标识符进行判断,当发生下述情况时:后发射的指令标识符被清零、先发射的指令还未执行完毕,这样的两条指令在同一个寄存器写端口发生写行为顺序颠倒,这两个指令标识符的差值与根据特定规律推导的边界值进行比较,从而得出对相撞的两次写操作先后执行次序的正确判断。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110272316.6A CN113095026A (zh) | 2021-03-12 | 2021-03-12 | 一种支持乱序多读写的寄存器组电路装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110272316.6A CN113095026A (zh) | 2021-03-12 | 2021-03-12 | 一种支持乱序多读写的寄存器组电路装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113095026A true CN113095026A (zh) | 2021-07-09 |
Family
ID=76667973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110272316.6A Pending CN113095026A (zh) | 2021-03-12 | 2021-03-12 | 一种支持乱序多读写的寄存器组电路装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113095026A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114025032A (zh) * | 2022-01-06 | 2022-02-08 | 深圳市聚能优电科技有限公司 | Ems与bms的传输协议方法、系统、设备及存储介质 |
CN115878190A (zh) * | 2023-03-08 | 2023-03-31 | 北京工业大学 | 一种应用于发射队列间指令调度填充的方法 |
-
2021
- 2021-03-12 CN CN202110272316.6A patent/CN113095026A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114025032A (zh) * | 2022-01-06 | 2022-02-08 | 深圳市聚能优电科技有限公司 | Ems与bms的传输协议方法、系统、设备及存储介质 |
CN115878190A (zh) * | 2023-03-08 | 2023-03-31 | 北京工业大学 | 一种应用于发射队列间指令调度填充的方法 |
CN115878190B (zh) * | 2023-03-08 | 2023-04-21 | 北京工业大学 | 一种应用于发射队列间指令调度填充的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6272520B1 (en) | Method for detecting thread switch events | |
JP2007529833A (ja) | アウト・オブ・オーダーのdmaコマンドキューにおけるコマンド順序の設定に関する技術 | |
US20130042089A1 (en) | Word line late kill in scheduler | |
CN113095026A (zh) | 一种支持乱序多读写的寄存器组电路装置 | |
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 | |
CN104461758A (zh) | 一种容忍cache缺失快速清空流水线的异常处理方法及其处理结构 | |
US20150234687A1 (en) | Thread migration across cores of a multi-core processor | |
CN108845829A (zh) | 一种系统寄存器访问指令的执行方法 | |
CN106445472B (zh) | 一种字符操作加速方法、装置、芯片、处理器 | |
CN109062604A (zh) | 一种面向标量和向量指令混合执行的发射方法及装置 | |
US20080244224A1 (en) | Scheduling a direct dependent instruction | |
CN112559403B (zh) | 一种处理器及其中的中断控制器 | |
CN103207776A (zh) | 一种gene乱序发射处理器内核 | |
US20120144393A1 (en) | Multi-issue unified integer scheduler | |
JP3558001B2 (ja) | 命令バッファ及びバッファキュー制御 | |
WO2023129386A1 (en) | Leveraging processing-in-memory (pim) resources to expedite non-pim instructions executed on a host | |
US20050015552A1 (en) | System for supporting unlimited consecutive data stores into a cache memory | |
US10366049B2 (en) | Processor and method of controlling the same | |
CN101819608B (zh) | 一种微处理器指令级随机验证中加速取指的装置和方法 | |
CN112540789B (zh) | 一种指令处理装置、处理器及其处理方法 | |
CN110737406A (zh) | 一种支持乱序的多端口寄存器组文件的实现方法 | |
CN113946368A (zh) | 一种基于risc-v指令集的三级流水线架构、处理器及数据处理方法 | |
US20080282050A1 (en) | Methods and arrangements for controlling memory operations | |
US9983932B2 (en) | Pipeline processor and an equal model compensator method and apparatus to store the processing result | |
CN111857830A (zh) | 一种提前转发指令数据的通路设计方法、系统及存储介质 |
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 |