CN108415728A - 一种用于处理器的扩展浮点运算指令执行方法及装置 - Google Patents

一种用于处理器的扩展浮点运算指令执行方法及装置 Download PDF

Info

Publication number
CN108415728A
CN108415728A CN201810170641.XA CN201810170641A CN108415728A CN 108415728 A CN108415728 A CN 108415728A CN 201810170641 A CN201810170641 A CN 201810170641A CN 108415728 A CN108415728 A CN 108415728A
Authority
CN
China
Prior art keywords
point
floating
register
fixed
operand
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
CN201810170641.XA
Other languages
English (en)
Other versions
CN108415728B (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.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201810170641.XA priority Critical patent/CN108415728B/zh
Publication of CN108415728A publication Critical patent/CN108415728A/zh
Application granted granted Critical
Publication of CN108415728B publication Critical patent/CN108415728B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Advance Control (AREA)

Abstract

本发明提供一种用于处理器的扩展浮点运算指令执行方法,包括下列步骤:1)取出扩展浮点运算指令,该指令中至少包括定点运算的操作数存放寄存器字段和定点运算结果存放位置字段;2)对扩展浮点运算进行译码,分解成对应于一系列微操作的控制信号;3)将步骤2)所得的控制信号派发至浮点寄存器、定点运算逻辑单元以及存放运算结果的目标寄存器;4)基于被派发的控制信号,处理器寻址到存放定点运算的操作数的浮点寄存器并将操作数取出;5)通过扩展路径将操作数从浮点寄存器传输到定点运算逻辑单元;6)定点运算逻辑单元将运算结果传输到扩展浮点运算指令中的运算结果存放位置。本发明还提供了相应的用于处理器的扩展浮点运算指令执行装置。

Description

一种用于处理器的扩展浮点运算指令执行方法及装置
技术领域
本发明涉及微处理器的体系结构技术领域,具体地说,本发明涉及一种用于处理器的扩展浮点运算指令执行方法及装置。
背景技术
随着嵌入式系统,便携式系统,和用电池供电的系统的增加,对低功耗电子系统的需求日益增加。在这些系统中,微处理器是功耗较大的部分。而在微处理器中,寄存器文件又是主要的能耗单元之一。比如:Motorola的M.CORE架构,寄存器文件的功耗占整个处理器功耗的16%,占总个数据路径功耗的42%。现有技术中,已经提出过一些在工艺、RTL设计这些较低层次运用的低功耗技术,然而,这些技术减少静态功耗的效果有限。另一方面,研究者们还提出了高抽象层次低功耗方法,目前,高抽象层次低功耗方案主要是通过减少寄存器文件的读写次数的方法来减少动态功耗。例如,一种方案是:将寄存器文件划分成两个子寄存器文件,一个尺寸较小,功耗较低,访问次数较多;另一个尺寸较大,功耗较大,访问次数较少(可参考文献:Customization of register file banking architecture for lowpower.VLSID,2007)。又例如,另一种方案中,将部分(例如45%)的操作结果作为临时值通过前推电路来使用,而不存入寄存器文件中,这样就可以减少读写寄存器文件的次数,达到减小功耗的目的(可参考文献:Selective writeback:reducing register file pressureand energy consumption.IEEE Trans.on VLSI,2008)。
综上所述,目前已存在一些通过降低寄存器文件功耗来降低微处理器功耗的方法,但人们总是期待微处理器的性能更高、功耗更低,因此,当前迫切需要一种在保持或提高处理器性能的同时能够进一步降低处理器功耗的解决方案。
发明内容
因此,本发明的任务是提供一种在保持或提高处理器性能的同时能够进一步降低处理器功耗的解决方案。
根据本发明的一个方面,提供了一种用于处理器的扩展浮点运算指令执行方法,包括下列步骤:
1)取出扩展浮点运算指令,所述扩展浮点运算指令中至少包括定点运算的操作数存放寄存器字段和定点运算结果存放位置字段;
2)对所述扩展浮点运算进行译码,将扩展浮点指令分解成对应于一系列微操作的控制信号;
3)将步骤2)所得的控制信号派发至浮点寄存器、定点运算逻辑单元以及存放运算结果的目标寄存器;
4)基于被派发的控制信号,处理器寻址到存放定点运算的操作数的浮点寄存器并将操作数取出;
5)基于被派发的控制信号,通过扩展路径将操作数从浮点寄存器传输到定点运算逻辑单元;
6)基于被派发的控制信号,定点运算逻辑单元将运算结果传输到扩展浮点运算指令中的运算结果存放位置。
其中,所述步骤2)中,所述的对应于一系列微操作的控制信号被配置为:使得当浮点运算不使能的状态下,浮点寄存器中的数据能够被作为操作数读取。
其中,所述步骤2)中,所述的对应于一系列微操作的控制信号还被配置为:使得处理器能够寻址到存放定点运算的操作数的浮点寄存器并将操作数取出;通过扩展路径将操作数从浮点寄存器传输到定点运算逻辑单元;以及使得定点运算逻辑单元将运算结果传输到扩展浮点运算指令中的运算结果存放位置。
其中,所述步骤6)中,所述运算结果的存放位置是定点寄存器或者浮点寄存器。
其中,所述步骤1)中,所述扩展浮点运算指令的格式为寄存器-寄存器类型。
其中,所述步骤1)中,浮点寄存器为64位寄存器,所述扩展浮点运算指令中,将定点运算的两个操作数分别放在同一个浮点寄存器的高低32位。
其中,所述步骤1)中,所述扩展浮点运算指令中,将原浮点运算指令中的两个指定源操作数寄存器的域中的一个作为指定扩展浮点运算指令的源操作数的域,将原浮点运算指令中的两个指定源操作数寄存器的域中的另一个作为指令扩展编码域。
其中,所述步骤1)中,所述指令扩展编码域用于指定源操作数的位宽和保存在目标浮点寄存器的位置。
根据本发明的另一个方面,还提供了一种用于处理器的扩展浮点运算指令执行装置,包括:
取指单元,用于取出扩展浮点运算指令,所述扩展浮点运算指令中至少包括定点运算的操作数存放寄存器字段和定点运算结果存放位置字段;
译码单元,用于对所述扩展浮点运算进行译码,将扩展浮点指令分解成对应于一系列微操作的控制信号;
派发单元,用于将所得的控制信号派发至浮点寄存器、定点运算逻辑单元以及存放运算结果的目标寄存器;
取操作数单元,用于基于被派发的控制信号,使处理器寻址到存放定点运算的操作数的浮点寄存器并将操作数取出;
运算单元,用于基于被派发的控制信号,通过扩展路径将操作数从浮点寄存器传输到对应的定点运算逻辑单元;以及
运算结果存放单元,用于基于被派发的控制信号,使定点运算逻辑单元将运算结果传输到扩展浮点运算指令中的运算结果存放位置。
其中,所述译码单元还用于将所述的对应于一系列微操作的控制信号配置为:使得当浮点运算不使能的状态下,浮点寄存器中的数据能够被作为操作数读取;使得处理器能够寻址到存放定点运算的操作数的浮点寄存器并将操作数取出;通过扩展路径将操作数从浮点寄存器传输到定点运算逻辑单元;以及使得定点运算逻辑单元将运算结果传输到扩展浮点运算指令中的运算结果存放位置。
与现有技术相比,本发明具有下列结束效果:
1、本发明将浮点寄存器复用为通用寄存器,相当于增加了通用寄存器数量,增加了在寄存器中保存的数据量,从而提高了运算速度,提高处理器资源利用率。
2、本发明的一个实施例中,直接将扩展浮点指令设置为短操作数指令,在指令中指定短操作数的宽度,不需要检测或预测操作数的宽度,有助于降低功耗。
3、本发明的一个实施例中,将两个源操作数放在同一个浮点寄存器中,能够减少寄存器的读写次数,达到降低功耗的目的。
4、本发明的一个实施例中,扩展浮点指令相对于原始浮点指令的修改较小,对原始处理器的改动较小,易于实现。
附图说明
以下,结合附图来详细说明本发明的实施例,其中:
图1示出了本发明一个实施例处理器指令执行的流水线结构;
图2示出了一个原始PowerPC架构浮点指令的格式;
图3示出了一个PowerPC架构原浮点加指令格式和扩展浮点加指令格式的对比图;其中,(a)部分示出了一个PowerPC架构原浮点加指令格式,(b)部分示出了一个PowerPC架构扩展浮点加指令格式;
图4示出了一种可以独立读写高32位与低32位浮点寄存器。
具体实施方式
目前常用的处理器(如:PowerPC,MIPS)都是既有定点处理单元(通用寄存器)也有浮点处理单元(浮点寄存器)。有些应用浮点处理比定点处理占优势,如视频编解码器中的DCT(离散余弦变换)是专为定点处理器运算而设计的,它只精确到位,因此用定点运算更好。而有些应用使用浮点处理更好,如军用雷达就经常使用浮点处理。而现有的处理器架构中,当不进行浮点操作时,浮点寄存器被闲置,如Book E指令集中所有的浮点指令只有在机器状态寄存器MSR[FP]=1时才能执行,否则会产生浮点不可用中断。对于MIPS架构,ABS.PS,ADD.PS,CEIL.L.D,CVT.D.L,FLOOR.L.D,MOV.PS,MUL.PS,NEG.PS,NMADD.PS,NMSUM.PS,SUB.PS,TRUNC.L等指令只能在SR[FR]=1模式下执行,否则这些指令的目的寄存器的值未知。
而另一方面,发明人研究发现,现有的处理器架构下通用寄存器却常不够用,需要用寄存器重命名去解决冲突问题,导致开销上升。
基于上述分析,发明人提出了一种通过将闲置的浮点寄存器复用为通用寄存器来减少资源浪费,进而提升处理器性能的解决方案。下面结合附图和实施例对本发明做进一步的描述。
根据本发明的一个实施例,提供了一种用于处理器的扩展浮点运算指令执行方法。本实施例中,为了实现浮点寄存器作为通用寄存器的使用,对原始PowerPC架构浮点指令进行了扩展,得到扩展浮点指令。其中,指令是计算机规定执行操作的类型和操作数的基本命令。指令是由一个字节或者多个字节组成,其中包括操作码字段、一个或多个有关操作数地址的字段以及一些表征机器状态的状态字和特征码。浮点指令又称为浮点运算指令,它是计算机规定的执行浮点运算操作的基本命令。而扩展浮点指令是在浮点运算指令的基础上进行的扩展,它基于处理器指令执行的流水线结构来执行。
图1示出了本实施例的处理器指令执行的流水线结构。本实施例中,当浮点使能位使能(即MSR[FP]=1’b1)时,浮点运算指令经过取指11,译码12,从浮点寄存器16取出数据,然发送到浮点发射队列17。这与现有技术是一致的。而与现有技术不同是,当浮点使能位不使能(即MSR[FP]=1’b0)时,且当前指令为扩展浮点指令时,该扩展浮点指令(通常是扩展浮点运算指令)经过取指11,译码12,仍然从浮点寄存器16取出数据,然后被发送到定点处理队列15中,并由定点处理单元(即通用ALU)进行运算。为实现上述流程,本实施例的处理器中增加了浮点寄存器到定点处理单元的数据路径。
进一步地,本实施的用于处理器的扩展浮点运算指令执行方法具体包括下列步骤:
步骤1:取指。即取出需要执行的指令。指令可以是各种类型的,例如定点运算指令、浮点运算指令、扩展浮点运算指令等。本实施例中,定点运算指令和浮点运算指令的处理方式与现有技术完全一致,因此不再赘述。而扩展浮点运算指令是本发明不同于现有技术的部分,它的后续处理方式与现有技术不同。本实施例中,扩展浮点运算指令本身是在原始的浮点运算指令基础上的扩展,目的是使浮点寄存器能够被利用来进行定点运算。为实现上述目的,在扩展浮点运算指令中,原浮点运算指令中的部分字段的含义将被修改为定点运算的操作数存放寄存器字段和定点运算结果存放位置字段。
步骤2:即对所取出的指令进行译码。译码通常由译码单元完成,译码单元是CPU控制部件,主要负责对指令译码,它把指令分解成一系列的微操作,然后生成各种控制信号以便执行微操作系列从而完成一条指令的执行。本实施例中,由于扩展浮点指令的具体微操作相对于与原始的浮点运算指令发生了变化,因此译码单元也会做出相应的扩展,使得这些扩展后的微操作系列能够顺利执行。
步骤3:将译码后得到的相应微操作的控制信号派发至参与当前扩展浮点运算指令执行的各个部件,包括:存放操作数的浮点寄存器、定点ALU以及存放运算结果的目标寄存器等。
步骤4:基于译码所得的控制信号,从当前扩展浮点运算指令中对应字段寻址到对应的浮点寄存器,从该浮点寄存器中取出操作数。
步骤5:基于译码所得的控制信号,将当前扩展浮点运算指令和所取出的操作数发送到定点指令队列。
步骤6:基于译码所得的控制信号,由当前扩展浮点运算指令对应的定点执行单元执行运算,获得运算结果。
步骤7:基于译码所得的控制信号,定点执行单元将运算结果存储至当前扩展浮点运算指令中相应字段对应的目标寄存器。
上述步骤1~7就构成了扩展浮点运算指令执行流水中的一个循环。基于上述指令执行方法,浮点寄存器能够被利用来进行定点运算,缓解通用寄存器数目不足的压力,从而提升处理器性能。
进一步地,在一个优选实施例中,扩展浮点运算指令执行完成后,结果既可以保存在通用寄存器中,也可以保存在浮点寄存器中,因此该优选实施例的处理器中还增加了定点处理单元到浮点寄存器的数据路径19。具体地,写入到浮点寄存器文件的值可能来源于各个ALU单元(如加法,乘法,除法,移位等),实现时用多路选择器从各个ALU单元的结果中选择一个写入到寄存器文件中,选择信号由各个ALU单元给出。在一个例子中,增加整数ALU(即定点ALU)到浮点寄存器的路径的方法是:将整数ALU的输出线路及相应的控制信号线路连接到浮点寄存器前级的多路选择器上。
在一个优选实施例中,所扩展的浮点指令的格式为R-R类型(即寄存器-寄存器类型)。图2示出了一种原始PowerPC架构浮点指令的格式。其中FRA 23与FRB 24为浮点运算的两个源操作数的存放位置,它们通常指向两个浮点寄存器。FRT 22为浮点指令执行完成后结果保存的目标浮点寄存器。
根据统计,40%的操作数可以用16位来表示,45%的操作数可以用32位来表示。只有15%的操作数需要用64位来表示,而浮点寄存器通常为64位。因此,将浮点寄存器复用为通用寄存器时,可以将两个操作数分别放在同一个浮点寄存器的高低32位中。那么对图2所示的原始浮点指令进行扩展时,只需要一个浮点寄存器域(FRA 23或FRB 24)来指定源操作数的位数。另一个域可以用于扩展指令编码,下面,以用这个域指定源操作数的位宽和保存在目标浮点寄存器的位置为例介绍指令扩展编码的方法,但需要说明,指令扩展编码的方法不限于指定源操作数的位宽和保存在目标浮点寄存器的位置。
接下来,以扩展一条PowerPC架构浮点加指令为例,说明本实施例中指令扩展的原理。如图3的(a)部分所示为PowerPC架构浮点加指令的格式,其属于R-R类型指令,其中31为浮点加指令的操作码,32为浮点加指令目标寄存器,33和34为浮点加的两个源操作数寄存器。35为浮点加指令的扩展码。如图3的(b)部分所示为PowerPC架构扩展浮点加指令的格式。扩展的指令的操作码36与原浮点加指令的操作码31相同。扩展的指令的扩展码310与原浮点加指令的扩展码35相同。扩展指令用FRB 39来指定源操作数的存放位置(该存放位置是一个浮点寄存器的位置)。而EXT_CTRL域38用于指定源操作数的宽度。EXT_CTRL[1:0]为2’b11时,操作数为32位宽,EXT_CTRL[1:0]为2’b10时,操作数为16位宽,EXT_CTRL[1:0]为2’b01时,操作数为8位宽。扩展指令执行的结果保存在37中,37既可以是浮点寄存器,也可以是通用寄存器,示例中保存在了浮点寄存器中,由EXT_CTRL[2]来指定保存在37的高32位还是低32位。上述的扩展指令的功能可用以下的式子表示:
EXT_CTRL[2]=0时,
CTRL[1:0]=11时,FRT[31:0]←FRB[63:32]+FRB[31:0]
CTRL[1:0]=10时,FRT[15:0]←FRB[47:32]+FRB[15:0]
CTRL[1:0]=01时,FRT[7:0]←FRB[39:32]+FRB[7:0]
EXT_CTRL[2]=1时,
CTRL[1:0]=11时,FRT[63:32]←FRB[63:32]+FRB[31:0]
CTRL[1:0]=10时,FRT[47:32]←FRB[47:32]+FRB[15:0]
CTRL[1:0]=01时,FRT[39:32]←FRB[39:32]+FRB[7:0]
为了与上述扩展浮点加指令相适配,浮点寄存器具有独立读写高32位与低32位的能力。图4所示为可以独立读写高32位与低32位浮点寄存器。将浮点寄存器分为高32位部分41与低32位部分42。当保存在高32位时,高32位部分的写使能有效。当保存在低32位时,低32位部分的写使能有效。
另外,除了浮点加指令以外,其它浮点运算类指令(例如浮点减、浮点乘、浮点除等指令也可以按照类似的方法进行扩展,本文中不再赘述。
进一步地,根据本发明的一个实施例,还提供了用于处理器的扩展浮点运算指令执行装置,该装置包括:取指单元、译码单元、派发单元、取操作数单元、运算单元、运算结果存放单元和用于完成数据传输的扩展路径。
其中,取指单元用于取出扩展浮点运算指令。扩展浮点运算指令中至少包括定点运算的操作数存放寄存器字段和定点运算结果存放位置字段。
译码单元用于对所取出的扩展浮点运算指令进行译码,将扩展浮点指令分解成一系列的微操作,然后生成对应的各种控制信号。这些控制信号被配置为:使得当浮点运算不使能的状态下(例如机器状态寄存器MSR[FP]=0时),浮点寄存器中的数据能够被作为操作数读取;处理器寻址到存放定点运算的操作数的浮点寄存器并将操作数取出;通过扩展路径将操作数从浮点寄存器传输到定点ALU;定点ALU将运算结果传输到扩展浮点运算指令中的运算结果存放位置。该存放位置可以是定点寄存器,也可以是浮点寄存器。当是浮点寄存器时,定点ALU将运算结果通过扩展路径进行传输。
派发单元用于将译码单元所生成的各种控制信号派发到参与当前扩展浮点运算指令执行的各个部件,包括:存放操作数的浮点寄存器、定点ALU以及存放运算结果的目标寄存器等。
取操作数单元用于基于被派发的控制信号,使处理器寻址到存放定点运算的操作数的浮点寄存器并将操作数取出。
运算单元用于基于被派发的控制信号,通过扩展路径将操作数从浮点寄存器传输到对应的定点运算逻辑单元。
运算结果存放单元用于基于被派发的控制信号,使定点运算逻辑单元将运算结果传输到扩展浮点运算指令中的运算结果存放位置。
在一个优选实施例中,扩展路径包括浮点寄存器到定点处理单元的数据路径,以及定点ALU到浮点寄存器的数据路径。
最后应说明的是,以上实施例仅用以描述本发明的技术方案而不是对本技术方法进行限制,本发明在应用上可以延伸为其它的修改、变化、应用和实施例,并且因此认为所有这样的修改、变化、应用、实施例都在本发明的精神和教导范围内。

Claims (10)

1.一种用于处理器的扩展浮点运算指令执行方法,包括下列步骤:
1)取出扩展浮点运算指令,所述扩展浮点运算指令中至少包括定点运算的操作数存放寄存器字段和定点运算结果存放位置字段;
2)对所述扩展浮点运算进行译码,将扩展浮点指令分解成对应于一系列微操作的控制信号;
3)将步骤2)所得的控制信号派发至浮点寄存器、定点运算逻辑单元以及存放运算结果的目标寄存器;
4)基于被派发的控制信号,处理器寻址到存放定点运算的操作数的浮点寄存器并将操作数取出;
5)基于被派发的控制信号,通过扩展路径将操作数从浮点寄存器传输到定点运算逻辑单元;
6)基于被派发的控制信号,定点运算逻辑单元将运算结果传输到扩展浮点运算指令中的运算结果存放位置。
2.根据权利要求1所述的用于处理器的扩展浮点运算指令执行方法,其特征在于,所述步骤2)中,所述的对应于一系列微操作的控制信号被配置为:使得当浮点运算不使能的状态下,浮点寄存器中的数据能够被作为操作数读取。
3.根据权利要求2所述的用于处理器的扩展浮点运算指令执行方法,其特征在于,所述步骤2)中,所述的对应于一系列微操作的控制信号还被配置为:使得处理器能够寻址到存放定点运算的操作数的浮点寄存器并将操作数取出;通过扩展路径将操作数从浮点寄存器传输到定点运算逻辑单元;以及使得定点运算逻辑单元将运算结果传输到扩展浮点运算指令中的运算结果存放位置。
4.根据权利要求2所述的用于处理器的扩展浮点运算指令执行方法,其特征在于,所述步骤6)中,所述运算结果的存放位置是定点寄存器或者浮点寄存器。
5.根据权利要求1所述的用于处理器的扩展浮点运算指令执行方法,其特征在于,所述步骤1)中,所述扩展浮点运算指令的格式为寄存器-寄存器类型。
6.根据权利要求5所述的用于处理器的扩展浮点运算指令执行方法,其特征在于,所述步骤1)中,浮点寄存器为64位寄存器,所述扩展浮点运算指令中,将定点运算的两个操作数分别放在同一个浮点寄存器的高低32位。
7.根据权利要求6所述的用于处理器的扩展浮点运算指令执行方法,其特征在于,所述步骤1)中,所述扩展浮点运算指令中,将原浮点运算指令中的两个指定源操作数寄存器的域中的一个作为指定扩展浮点运算指令的源操作数的域,将原浮点运算指令中的两个指定源操作数寄存器的域中的另一个作为指令扩展编码域。
8.根据权利要求7所述的用于处理器的扩展浮点运算指令执行方法,其特征在于,所述步骤1)中,所述指令扩展编码域用于指定源操作数的位宽和保存在目标浮点寄存器的位置。
9.一种用于处理器的扩展浮点运算指令执行装置,包括:
取指单元,用于取出扩展浮点运算指令,所述扩展浮点运算指令中至少包括定点运算的操作数存放寄存器字段和定点运算结果存放位置字段;
译码单元,用于对所述扩展浮点运算进行译码,将扩展浮点指令分解成对应于一系列微操作的控制信号;
派发单元,用于将所得的控制信号派发至浮点寄存器、定点运算逻辑单元以及存放运算结果的目标寄存器;
取操作数单元,用于基于被派发的控制信号,使处理器寻址到存放定点运算的操作数的浮点寄存器并将操作数取出;
运算单元,用于基于被派发的控制信号,通过扩展路径将操作数从浮点寄存器传输到对应的定点运算逻辑单元;以及
运算结果存放单元,用于基于被派发的控制信号,使定点运算逻辑单元将运算结果传输到扩展浮点运算指令中的运算结果存放位置。
10.根据权利要求9所述的用于处理器的扩展浮点运算指令执行装置,其特征在于,所述译码单元还用于将所述的对应于一系列微操作的控制信号配置为:使得当浮点运算不使能的状态下,浮点寄存器中的数据能够被作为操作数读取;使得处理器能够寻址到存放定点运算的操作数的浮点寄存器并将操作数取出;通过扩展路径将操作数从浮点寄存器传输到定点运算逻辑单元;以及使得定点运算逻辑单元将运算结果传输到扩展浮点运算指令中的运算结果存放位置。
CN201810170641.XA 2018-03-01 2018-03-01 一种用于处理器的扩展浮点运算指令执行方法及装置 Active CN108415728B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810170641.XA CN108415728B (zh) 2018-03-01 2018-03-01 一种用于处理器的扩展浮点运算指令执行方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810170641.XA CN108415728B (zh) 2018-03-01 2018-03-01 一种用于处理器的扩展浮点运算指令执行方法及装置

Publications (2)

Publication Number Publication Date
CN108415728A true CN108415728A (zh) 2018-08-17
CN108415728B CN108415728B (zh) 2020-12-29

Family

ID=63129621

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810170641.XA Active CN108415728B (zh) 2018-03-01 2018-03-01 一种用于处理器的扩展浮点运算指令执行方法及装置

Country Status (1)

Country Link
CN (1) CN108415728B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109976708A (zh) * 2019-03-28 2019-07-05 苏州中晟宏芯信息科技有限公司 一种适用于cpu浮点运算理论值提取的方法及装置
CN110245096A (zh) * 2019-06-24 2019-09-17 苏州硅岛信息科技有限公司 一种实现处理器直接连接扩展计算模块的方法
CN114721720A (zh) * 2022-06-07 2022-07-08 中科亿海微电子科技(苏州)有限公司 一种指令集扩展方法、装置、电子设备及存储介质
CN116991477A (zh) * 2023-08-03 2023-11-03 上海合芯数字科技有限公司 旋转类指令执行方法、系统及执行单元

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1655117A (zh) * 2004-02-13 2005-08-17 中国科学院计算技术研究所 Mips指令集的处理器扩展指令及其编码方法和部件
CN101216755A (zh) * 2008-01-02 2008-07-09 中国科学院计算技术研究所 Risc处理器及其浮点寄存器的非对齐访存方法
CN101256504A (zh) * 2008-03-17 2008-09-03 中国科学院计算技术研究所 一种支持x86虚拟机的risc处理器装置及方法
CN103150146A (zh) * 2013-01-31 2013-06-12 西安电子科技大学 基于可扩展处理器架构的专用指令集处理器及其实现方法
US20140188962A1 (en) * 2007-10-08 2014-07-03 International Business Machines Corporation Executing Perform Floating Point Operation Instructions
CN104090740A (zh) * 2014-05-27 2014-10-08 安徽师范大学 微控制器指令集的执行方法
CN104156195A (zh) * 2014-08-19 2014-11-19 中国航天科技集团公司第九研究院第七七一研究所 扩展双精度的80位浮点处理单元在处理器中的集成系统及方法
CN104699458A (zh) * 2015-03-30 2015-06-10 哈尔滨工业大学 定点向量处理器及其向量数据访存控制方法
CN104951283A (zh) * 2015-06-05 2015-09-30 中国航天科技集团公司第九研究院第七七一研究所 一种risc处理器的浮点处理单元集成电路及方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1655117A (zh) * 2004-02-13 2005-08-17 中国科学院计算技术研究所 Mips指令集的处理器扩展指令及其编码方法和部件
US20140188962A1 (en) * 2007-10-08 2014-07-03 International Business Machines Corporation Executing Perform Floating Point Operation Instructions
CN101216755A (zh) * 2008-01-02 2008-07-09 中国科学院计算技术研究所 Risc处理器及其浮点寄存器的非对齐访存方法
CN101256504A (zh) * 2008-03-17 2008-09-03 中国科学院计算技术研究所 一种支持x86虚拟机的risc处理器装置及方法
CN103150146A (zh) * 2013-01-31 2013-06-12 西安电子科技大学 基于可扩展处理器架构的专用指令集处理器及其实现方法
CN104090740A (zh) * 2014-05-27 2014-10-08 安徽师范大学 微控制器指令集的执行方法
CN104156195A (zh) * 2014-08-19 2014-11-19 中国航天科技集团公司第九研究院第七七一研究所 扩展双精度的80位浮点处理单元在处理器中的集成系统及方法
CN104699458A (zh) * 2015-03-30 2015-06-10 哈尔滨工业大学 定点向量处理器及其向量数据访存控制方法
CN104951283A (zh) * 2015-06-05 2015-09-30 中国航天科技集团公司第九研究院第七七一研究所 一种risc处理器的浮点处理单元集成电路及方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109976708A (zh) * 2019-03-28 2019-07-05 苏州中晟宏芯信息科技有限公司 一种适用于cpu浮点运算理论值提取的方法及装置
CN109976708B (zh) * 2019-03-28 2023-07-11 北京市合芯数字科技有限公司 一种适用于cpu浮点运算理论值提取的方法及装置
CN110245096A (zh) * 2019-06-24 2019-09-17 苏州硅岛信息科技有限公司 一种实现处理器直接连接扩展计算模块的方法
CN114721720A (zh) * 2022-06-07 2022-07-08 中科亿海微电子科技(苏州)有限公司 一种指令集扩展方法、装置、电子设备及存储介质
CN116991477A (zh) * 2023-08-03 2023-11-03 上海合芯数字科技有限公司 旋转类指令执行方法、系统及执行单元
CN116991477B (zh) * 2023-08-03 2024-01-30 上海合芯数字科技有限公司 旋转类指令执行方法、系统及执行单元

Also Published As

Publication number Publication date
CN108415728B (zh) 2020-12-29

Similar Documents

Publication Publication Date Title
US20240126545A1 (en) Systems and methods for performing 16-bit floating-point matrix dot product instructions
US10515046B2 (en) Processors, methods, and systems with a configurable spatial accelerator
CN111512298A (zh) 用于可配置空间加速器中的条件队列的装置、方法和系统
CN108415728A (zh) 一种用于处理器的扩展浮点运算指令执行方法及装置
US10469397B2 (en) Processors and methods with configurable network-based dataflow operator circuits
US10515049B1 (en) Memory circuits and methods for distributed memory hazard detection and error recovery
CN109643233B (zh) 具有带读取和读取/前进操作数编码的流引擎的数据处理设备
US11714875B2 (en) Apparatuses, methods, and systems for instructions of a matrix operations accelerator
US10747636B2 (en) Streaming engine with deferred exception reporting
US10073696B2 (en) Streaming engine with cache-like stream data storage and lifetime tracking
US11099933B2 (en) Streaming engine with error detection, correction and restart
CN111512292A (zh) 用于可配置空间加速器中的非结构化数据流的装置、方法和系统
CN109213723A (zh) 用于具有安全、功率降低和性能特征的可配置空间加速器的处理器、方法和系统
CN105247484B (zh) 利用本地分布式标志体系架构来仿真访客集中式标志体系架构的方法
US20240078285A1 (en) Systems and methods of instructions to accelerate multiplication of sparse matrices using bitmasks that identify non-zero elements
EP3798823A1 (en) Apparatuses, methods, and systems for instructions of a matrix operations accelerator
CN111566623A (zh) 用于可配置空间加速器中的集成性能监视的装置、方法和系统
EP3776229A1 (en) Apparatuses, methods, and systems for remote memory access in a configurable spatial accelerator
US10853073B2 (en) Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator
CN109952559B (zh) 具有单独可选元素及成组复制的流式传输引擎
US11068164B2 (en) Streaming engine with fetch ahead hysteresis
EP3757769A1 (en) Systems and methods to skip inconsequential matrix operations
CN108205447B (zh) 使用早期和后期地址以及循环计数寄存器来跟踪架构状态的流引擎
US10732880B2 (en) Lazy memory deduplication
US11907713B2 (en) Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator

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