CN111538533A - 一种基于类加法器的指令请求电路及乱序指令发射架构 - Google Patents
一种基于类加法器的指令请求电路及乱序指令发射架构 Download PDFInfo
- Publication number
- CN111538533A CN111538533A CN202010264215.XA CN202010264215A CN111538533A CN 111538533 A CN111538533 A CN 111538533A CN 202010264215 A CN202010264215 A CN 202010264215A CN 111538533 A CN111538533 A CN 111538533A
- Authority
- CN
- China
- Prior art keywords
- instruction
- idle
- layer
- circuit
- addition
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 7
- 108010076504 Protein Sorting Signals Proteins 0.000 claims description 19
- 230000005540 biological transmission Effects 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000013461 design Methods 0.000 abstract description 4
- 238000012545 processing Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Images
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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- 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 Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Advance Control (AREA)
Abstract
本发明公开了一种基于类加法器的指令请求电路及乱序指令发射架构,属于处理器设计领域。所述方法通过提供一种基于类加法器的指令请求电路,在对表项空闲信号总数进行统计时,利用类加法单元对两个输入信号分别作与运算和异或运算,取代传统指令请求电路在统计空余表项信息时采用逻辑加的方式,节省了指令请求电路统计表项空闲信号总数的耗时,从而能够满足现代超标量乱序处理器中高性能功耗比、低延时、高IPC的要求,解决了现有技术中处理器无法在发射队列表项数日益增加,延迟也日益增加的问题。
Description
技术领域
本发明涉及一种基于类加法器的指令请求电路及乱序指令发射架构,属于处理器设计领域。
背景技术
众所周知,处理器在发射指令前,会预先将待发射的指令存放至发射队列的各表项中;指令被发射后,发射队列中会出现空余表项,而指令请求电路就是用于对发射队列中的空闲表项进行统计,若空闲表项数大于处理器指令发射宽度,则向物理寄存器发射指令请求信号以请求新指令,物理寄存器堆在接收到指令请求电路发送的指令请求信号后,输出合适指令给指令分配电路,指令分配电路将物理寄存器堆输出的指令重新分配至发射队列中的空闲表项中。
现代处理器的设计中,为追求高IPC(Instructions per clock,每周期执行指令数),在指令发射电路中,发射队列会设计有大量表项;传统指令请求电路在统计空余表项信息时是采用逻辑加的方式进行统计,由于大量表项的设计,这一过程就需要进行大量加法运算,这会极大影响处理器的工作主频。
因此针对以上需求和挑战,针对低延迟、高IPC等条件,迫切需要提供一种新的指令请求电路,以达到在保证处理器高IPC的同时对处理器的工作主频也提供相应的保障。
发明内容
为了解决传统指令请求电路在统计空余表项信息时采用逻辑加的方式耗时较长的问题,本发明提供了一种基于类加法器的指令请求电路。
一种指令请求电路,所述指令请求电路由两部分构成:类加法层和后log2(n/2)层移位逻辑层,n为处理器指令发射宽度;
在统计表项空闲信号总数时,将表项的空闲信号序列输入类加法层,对表示空闲信号的数量进行运算并进行特殊编码,输出经过特殊编码后的空闲信号总数;将类加法层的输出送入后log2(n/2)层移位逻辑层,最终输出统计结果,将统计结果与同样经过特殊编码的指令发射宽度进行比较,以确定是否需要发送指令请求信号。
可选的,所述类加法层由类加法计算单元构成;所述将表项的空闲信号序列输入类加法层,对表示空闲信号的数量进行运算并进行特殊编码,输出经过特殊编码后的空闲信号总数,包括:
在统计表项空闲信号总数时,将表项的空闲信号序列输入类加法层,每个类加法单元输入为空闲信号序列中的两个二进制数并分别作与运算和异或运算,然后比较二者的计算结果:
若相等,且与运算结果为1,则输出代表1的编码:“01”,表示类加法单元的两个二级制数输入的和为1,并对其编码为“01”;
若相等,且与运算结果位0,则输出代表0的编码:“10”,表示类加法单元的两个二级制数输入的和为0,并对其编码为“10”;
若不相等,则输出代表2的编码:“00”,表示类加法单元的两个二级制数输入的和为2,并对其编码为“00”;
编码位数为n。
可选的,所述后log2(n/2)层移位逻辑层由右移移位器构成;所述将类加法层的输出结果输入后log2(n/2)层移位逻辑层,与同样经过特殊编码的指令发射宽度进行比较,以确定是否需要发送指令请求信号,包括:
右移移位器把一类加法单元输出作为待移位数据输入,把另一类加法单元输出作为移位位数输入,待移位数通过右移移位器右移n位。其中n为移位位数所对应的十进制数。
可选的,所述表项的空闲信号序列为一串n位的二进制序列,n为发射队列中的表项数,空闲信号序列的每一位代表发射队列中每一个表项是否空闲,若空闲则为0,非空闲则为1。
可选的,所述后log2(n/2)层移位逻辑层呈树状结构,且层层相连。
本发明还提供一种乱序指令发射架构,所述乱序指令发射架构中包含上述指令请求电路。
可选的,所述乱序指令发射架构还包括指令分配电路、仲裁电路与唤醒电路;
指令的寄存器编号通过指令分配电路分配,进入发射队列的空闲表项,并进行暂存。仲裁电路对各表项中代表指令的寄存器标号进行选择,选出适合发射的代表指令的寄存器标号。同时,唤醒电路通过比较被仲裁电路选中的代表指令的目的寄存器编号与存在表项中的各指令的源寄存器编号,若相等,则唤醒相对应的指令。
可选的,所述指令请求电路每个时钟周期会接收表项空闲信号序列,扫描发射队列中空闲表项并通过类加法逻辑和右移移位逻辑统计空闲表项数,若空闲表项数量大于指令发射宽度,则指令请求电路会向物理寄存器堆发送请求信号,请求新的指令送入发射电路。
本发明还提供一种处理器,所述处理器包括上述乱序指令发射架构。
本发明还提供一种计算机,所述计算机采用处理器。
本发明有益效果是:
通过提供一种基于类加法器的指令请求电路,在对表项空闲信号总数进行统计时,利用类加法单元对两个输入信号分别作与运算和异或运算,取代传统指令请求电路在统计空余表项信息时采用逻辑加的方式,节省了指令请求电路统计表项空闲信号总数的耗时。指令请求电路作为CPU设计中关键路径的一部分,指令请求电路的延迟会影响到CPU的最终主频,本发明摒弃传统请求电路的空闲空余表项信息的方法,降低指令请求电路的延迟,从而达到提高CPU主频的目的。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的一种基于类加法器的指令请求电路组成示意图。
图2为本发明提供的乱序指令发射架构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一:
本实施例提供一种基于类加法器的指令请求电路,参见图1,所述指令请求电路用于统计表项空闲信号总数,并用特殊编码对空闲信号的数量进行编码,若经过该编码的空闲信号总数小于同样经过该编码的指令发射宽度,则向物理寄存器堆发出指令请求信号。
指令请求电路由两部分构成:类加法层和后log2(n/2)层移位逻辑层。类加法层的输入为空闲表项序列,第一层移位逻辑层的输入为类加法层的输出,log2(n/2)层移位逻辑层层层相连,呈树形结构,每一层的输入即为上一层的输出,最终输出一个最终结果,类加法层和移位逻辑层内部详细结构和算法如下:
所述类加法层由类加法计算单元构成,输入表项的空闲信号序列。类加法单元对空闲信号序列中的两个数进行运算,并用特殊编码表示运算结果。其运算过程如下:
类加法单元对每个类加法单元输入空闲信号序列中的两个数并分别作与运算和异或运算,然后比较两次计算结果:
若相等,且与运算结果为1,则输出代表1的编码:“01”,表示类加法单元的两个二级制数输入的和为1,并对其编码为“01”
若相等,且与运算结果位0,则输出代表0的编码:“10”,表示类加法单元的两个二级制数输入的和为0,并对其编码为“10”;
若不相等,则输出代表2的编码:“00”,表示类加法单元的两个二级制数输入的和为2,并对其编码为“00”;
其中,输出结果的编码位数为n,n为处理指令发射宽度。本类加法器的运算编码与代表数值的关系如下表1所示。
表1:类加法器的运算编码与代表数值的关系
所述移位逻辑层输入类加法器的运算结果,由右移移位器构成,右移移位器把一类加法单元器输出作为待移位数据输入,把另一类加法单元器输出作为移位位数输入,待移位数通过右移移位器右移n位。其中n为移位位数所对应的十进制数。
例如,待移位数为“01”,移位位数为“00”,则根据上述编码规则,即对“01”右移2位。其中,输出结果编码与类加法器的编码相同,编码位数为n,n为处理指令发射宽度。
现有的指令请求电路通过对空闲表项序列得各数进行累加,从而统计空闲表项数,如此需要进行多次重复的加法操作,并且这些加法操作为串行计算,延迟巨大,本发明用类加法逻辑和移位逻辑代替了传统的加法逻辑并进行了并行化的处理,大大缩短了延迟。
实施例二
本实施例提供一种乱序指令发射架构,参见图2,所述乱序指令发射架构中的指令请求电路为实施例一给出的指令请求电路。
该乱序指令发射架构包含指令分配电路、指令请求电路、仲裁电路与唤醒电路。该乱序指令发射架构为非数据捕捉型结构,即存在于物理寄存器堆的指令在被发射前不会正真进入发射队列,取而代之的是该指令的寄存器编号,当该指令被发射以后,发射电路通过指令的寄存器编号在物理寄存器堆中寻求相对应的指令送入执行部件执行。
指令的寄存器编号通过指令分配电路分配,进入发射队列的空闲表项,并进行暂存。仲裁电路对各表项中代表指令的寄存器标号进行选择,选出适合发射的代表指令的寄存器标号。同时,唤醒电路通过比较被仲裁电路选中的代表指令的目的寄存器编号与存在表项中的各指令的源寄存器编号,若相等,则唤醒相对应的指令,指令被唤醒是指令能被仲裁发射的前提条件。指令请求电路每个时钟周期会接收表项空闲信号序列,扫描发射队列中空闲表项并通过类加法逻辑和右移移位逻辑统计空闲表项数,若空闲表项数量大于指令发射宽度,则指令请求电路会向物理寄存器堆发送请求信号,请求新的指令送入发射电路。
本发明实施例中的部分步骤,可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,如光盘或硬盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种指令请求电路,其特征在于,所述指令请求电路由两部分构成:类加法层和后log2(n/2)层移位逻辑层,n为处理器指令发射宽度;
在统计表项空闲信号总数时,将表项的空闲信号序列输入类加法层,对表示空闲信号的数量进行运算并进行特殊编码,输出经过特殊编码后的空闲信号总数;将类加法层的输出送入后log2(n/2)层移位逻辑层,最终输出统计结果,将统计结果与同样经过特殊编码的指令发射宽度进行比较,以确定是否需要发送指令请求信号。
2.根据权利要求1所述的指令请求电路,其特征在于,所述类加法层由类加法计算单元构成;所述将表项的空闲信号序列输入类加法层,对表示空闲信号的数量进行运算并进行特殊编码,输出经过特殊编码后的空闲信号总数,包括:
在统计表项空闲信号总数时,将表项的空闲信号序列输入类加法层,每个类加法单元输入为空闲信号序列中的两个二进制数并分别作与运算和异或运算,然后比较二者的计算结果:
若相等,且与运算结果为1,则输出代表1的编码:“01”,表示类加法单元的两个二级制数输入的和为1,并对其编码为“01”;
若相等,且与运算结果位0,则输出代表0的编码:“10”,表示类加法单元的两个二级制数输入的和为0,并对其编码为“10”;
若不相等,则输出代表2的编码:“00”,表示类加法单元的两个二级制数输入的和为2,并对其编码为“00”;
编码位数为n。
3.根据权利要求2所述的指令请求电路,其特征在于,所述后log2(n/2)层移位逻辑层由右移移位器构成;所述将类加法层的输出结果输入后log2(n/2)层移位逻辑层,与同样经过特殊编码的指令发射宽度进行比较,以确定是否需要发送指令请求信号,包括:
右移移位器把一类加法单元输出作为待移位数据输入,把另一类加法单元输出作为移位位数输入,待移位数通过右移移位器右移n位。其中n为移位位数所对应的十进制数。
4.根据权利要求1所述的指令请求电路,其特征在于,所述表项的空闲信号序列为一串n位的二进制序列,n为发射队列中的表项数,空闲信号序列的每一位代表发射队列中每一个表项是否空闲,若空闲则为0,非空闲则为1。
5.根据权利要求1所述的指令请求电路,其特征在于,所述后log2(n/2)层移位逻辑层呈树状结构,且层层相连。
6.一种乱序指令发射架构,其特征在于,所述乱序指令发射架构中的指令请求电路为权利要求1-5任一所述的指令请求电路。
7.根据权利要求6所述的乱序指令发射架构,其特征在于,所述乱序指令发射架构还包括指令分配电路、仲裁电路与唤醒电路;
指令的寄存器编号通过指令分配电路分配,进入发射队列的空闲表项,并进行暂存。仲裁电路对各表项中代表指令的寄存器标号进行选择,选出适合发射的代表指令的寄存器标号。同时,唤醒电路通过比较被仲裁电路选中的代表指令的目的寄存器编号与存在表项中的各指令的源寄存器编号,若相等,则唤醒相对应的指令。
8.根据权利要求7所述的乱序指令发射架构,其特征在于,所述指令请求电路每个时钟周期会接收表项空闲信号序列,扫描发射队列中空闲表项并通过类加法逻辑和右移移位逻辑统计空闲表项数,若空闲表项数量大于指令发射宽度,则指令请求电路会向物理寄存器堆发送请求信号,请求新的指令送入发射电路。
9.一种处理器,其特征在于,所述处理器包括权利要求6-8任一所述的乱序指令发射架构。
10.一种计算机,其特征在于,所述计算机采用权利要求9所述的处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010264215.XA CN111538533B (zh) | 2020-04-07 | 2020-04-07 | 一种基于类加法器的指令请求电路及乱序指令发射架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010264215.XA CN111538533B (zh) | 2020-04-07 | 2020-04-07 | 一种基于类加法器的指令请求电路及乱序指令发射架构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111538533A true CN111538533A (zh) | 2020-08-14 |
CN111538533B CN111538533B (zh) | 2023-08-08 |
Family
ID=71977032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010264215.XA Active CN111538533B (zh) | 2020-04-07 | 2020-04-07 | 一种基于类加法器的指令请求电路及乱序指令发射架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111538533B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778528A (zh) * | 2021-09-13 | 2021-12-10 | 北京奕斯伟计算技术有限公司 | 指令发送方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030120898A1 (en) * | 1999-02-01 | 2003-06-26 | Fischer Timothy Charles | Method and circuits for early detection of a full queue |
CN1543603A (zh) * | 2000-10-31 | 2004-11-03 | ض� | 基于指令宽度的高效仿真调度 |
CN106990942A (zh) * | 2011-06-29 | 2017-07-28 | 上海芯豪微电子有限公司 | 分支处理方法与系统 |
-
2020
- 2020-04-07 CN CN202010264215.XA patent/CN111538533B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030120898A1 (en) * | 1999-02-01 | 2003-06-26 | Fischer Timothy Charles | Method and circuits for early detection of a full queue |
CN1543603A (zh) * | 2000-10-31 | 2004-11-03 | ض� | 基于指令宽度的高效仿真调度 |
CN106990942A (zh) * | 2011-06-29 | 2017-07-28 | 上海芯豪微电子有限公司 | 分支处理方法与系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778528A (zh) * | 2021-09-13 | 2021-12-10 | 北京奕斯伟计算技术有限公司 | 指令发送方法、装置、电子设备及存储介质 |
CN113778528B (zh) * | 2021-09-13 | 2023-03-24 | 北京奕斯伟计算技术股份有限公司 | 指令发送方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111538533B (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111538534B (zh) | 一种基于指令凋零的多指令乱序发射方法及处理器 | |
US10379816B2 (en) | Data accumulation apparatus and method, and digital signal processing device | |
Mittal et al. | A survey of encoding techniques for reducing data-movement energy | |
US20150262064A1 (en) | Parallel decision tree processor architecture | |
US20150262062A1 (en) | Decision tree threshold coding | |
US11169776B2 (en) | Decomposed floating point multiplication | |
CN111552366B (zh) | 一种动态延迟唤醒电路及乱序指令发射架构 | |
CN111258535B (zh) | 一种用于fpga实现的排序方法 | |
WO2006039610A1 (en) | An apparatus and method for address generation using a hybrid adder | |
CN109388373B (zh) | 用于低功耗内核的乘除法器 | |
US20110173421A1 (en) | Multi-input and binary reproducible, high bandwidth floating point adder in a collective network | |
CN112084139A (zh) | 一种基于数据流驱动的多发射混合粒度可重构阵列处理器 | |
CN111538533A (zh) | 一种基于类加法器的指令请求电路及乱序指令发射架构 | |
CN103995827A (zh) | MapReduce计算框架中的高性能排序方法 | |
WO2018204898A1 (en) | Fast binary counters based on symmetric stacking and methods for same | |
US20210200711A1 (en) | System and Method for Configurable Systolic Array with Partial Read/Write | |
US7827451B2 (en) | Method, system and program product for establishing decimal floating point operands for facilitating testing of decimal floating point instructions | |
CN101361278B (zh) | 奇偶校验位生成电路、计数电路以及计数方法 | |
CN102411490A (zh) | 一种针对动态可重构处理器的指令集的优化方法 | |
CN101930354A (zh) | 微处理器及其执行指令的方法 | |
JP4319533B2 (ja) | ポピュレーションカウント回路 | |
US6470374B1 (en) | Carry look-ahead for bi-endian adder | |
Brown et al. | Using internal redundant representations and limited bypass to support pipelined adders and register files | |
Norollah et al. | An efficient sorting architecture for area and energy constrained edge computing devices | |
CN117075842B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |