CN111538533A - 一种基于类加法器的指令请求电路及乱序指令发射架构 - Google Patents

一种基于类加法器的指令请求电路及乱序指令发射架构 Download PDF

Info

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
Application number
CN202010264215.XA
Other languages
English (en)
Other versions
CN111538533B (zh
Inventor
虞致国
马晓杰
魏敬和
顾晓峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangnan University
Original Assignee
Jiangnan University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jiangnan University filed Critical Jiangnan University
Priority to CN202010264215.XA priority Critical patent/CN111538533B/zh
Publication of CN111538533A publication Critical patent/CN111538533A/zh
Application granted granted Critical
Publication of CN111538533B publication Critical patent/CN111538533B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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:类加法器的运算编码与代表数值的关系
Figure BDA0002440616060000041
所述移位逻辑层输入类加法器的运算结果,由右移移位器构成,右移移位器把一类加法单元器输出作为待移位数据输入,把另一类加法单元器输出作为移位位数输入,待移位数通过右移移位器右移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所述的处理器。
CN202010264215.XA 2020-04-07 2020-04-07 一种基于类加法器的指令请求电路及乱序指令发射架构 Active CN111538533B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113778528A (zh) * 2021-09-13 2021-12-10 北京奕斯伟计算技术有限公司 指令发送方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
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 上海芯豪微电子有限公司 分支处理方法与系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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