首页 / 专利库 / 资料储存系统 / 大容量存储 / 只读存储器 / 计算机指令的执行方法以及使用此方法的装置

计算机指令的执行方法以及使用此方法的装置

阅读:331发布:2020-05-08

专利汇可以提供计算机指令的执行方法以及使用此方法的装置专利检索,专利查询,专利分析的服务。并且本 发明 的 实施例 提出一种执行计算机指令的方法,至少包括以下步骤:译码计算机指令以产生包括操作码及紧缩操作数的微操作,其中的紧缩操作数包含计算机指令对应的全部n个输入参数;依据操作码以及紧缩操作数产生对应n个输入参数的n个地址;以及从查找表读取n个地址所对应的n个近似值。,下面是计算机指令的执行方法以及使用此方法的装置专利的具体信息内容。

1.一种计算机指令的执行方法,其特征在于,包括:
译码所述计算机指令产生包括操作码和紧缩操作数的微操作,所述紧缩操作数包括所述计算机指令对应的全部n个输入参数;
依据所述操作码以及所述紧缩操作数产生对应所述n个输入参数的n个地址,其中n为大于1的整数;以及
从查找表读取所述n个地址所对应的n个近似值;
所述依据所述操作码以及所述紧缩操作数产生对应所述n个输入参数的n个地址的步骤,包括:针对每一所述输入参数,依据所述操作码决定所述对应地址的区段编号,以及依据所述输入参数决定所述对应地址的偏移量。
2.根据权利要求1所述的计算机指令的执行方法,其特征在于,所述操作码来自码寄存器,所述紧缩操作数来自来源寄存器。
3.根据权利要求1所述的计算机指令的执行方法,其特征在于,n为4且所述输入参数为单精度浮点数,或者n为2且所述输入参数为双精度浮点数。
4.根据权利要求1所述的计算机指令的执行方法,其特征在于,所述操作码指示计算所述n个输入参数的倒数或n个输入参数平方根的倒数。
5.根据权利要求1所述的计算机指令的执行方法,其特征在于,还包括:
合并所述n个近似值以产生所述微操作的结果;以及
存所述结果至目的地寄存器。
6.根据权利要求1所述的计算机指令的执行方法,其特征在于,所述n个近似值通过所述查找表的n个输出端口并行输出。
7.根据权利要求1所述的计算机指令的执行方法,其特征在于,所述n个近似值通过所述查找表串行输出。
8.根据权利要求1所述的计算机指令的执行方法,其特征在于,所述从所述查找表读取所述n个地址所对应的n个近似值的步骤还包括:
依序发送所述n个地址至所述查找表;以及
依序接收所述查找表返回的所述n个近似值,
其中所述n个发送和接收步骤构成流线作业。
9.根据权利要求1所述的计算机指令的执行方法,其特征在于,所述查找表位于微处理器的执行单元中。
10.一种执行计算机指令的装置,其特征在于,包括:
译码单元,译码所述计算机指令以产生包括操作码和紧缩操作数的微操作,所述紧缩操作数包括所述计算机指令对应的全部n个输入参数;
只读存储器,储存查找表;
只读存储器控制器,耦接所述只读存储器;
地址产生器,耦接所述只读存储器控制器;以及
控制器,耦接所述地址产生器,
其中,所述控制器驱动所述地址产生器用以根据所述操作码及所述紧缩操作数产生对应所述n个输入参数的n个地址至所述只读存储器控制器,所述只读存储器控制器从所述查找表读取所述n个地址所对应的n个近似值,其中n为大于1的整数;
所述地址产生器依据所述操作码决定所述n个地址的每一个的区段编号,以及依据所述n个输入参数决定所述n个地址的n个偏移量。
11.根据权利要求10所述的执行计算机指令的装置,其特征在于,还包括码寄存器和来源寄存器,所述操作码来自所述码寄存器,所述紧缩操作数来自所述来源寄存器。
12.根据权利要求10所述的执行计算机指令的装置,其特征在于,还包括结果产生器和目的地寄存器,所述结果产生器合并所述n个近似值以产生所述微操作的结果,所述目的地寄存器锁存所述结果。
13.根据权利要求10所述的执行计算机指令的装置,其特征在于,所述只读存储器连接解多工器,所述n个近似值从所述解多工器并行输出。
14.根据权利要求10所述的执行计算机指令的装置,其特征在于,所述只读存储器连接解多工器,所述n个近似值从所述解多工器串行输出。
15.根据权利要求14所述的执行计算机指令的装置,其特征在于,所述解多工器连接多个结果寄存器。
16.根据权利要求10所述的执行计算机指令的装置,其特征在于,所述操作码指示计算所述n个输入参数的倒数或所述n个输入参数平方根的倒数。
17.根据权利要求10所述的执行计算机指令的装置,其特征在于,n为4且所述输入参数为单精度浮点数,或者n为2且所述输入参数为双精度浮点数。
18.根据权利要求10所述的执行计算机指令的装置,其特征在于,所述只读存储器控制器、所述只读存储器、所述控制器以及所述地址产生器集成于微处理器执行单元中。

说明书全文

计算机指令的执行方法以及使用此方法的装置

技术领域

[0001] 本发明涉及一种处理器技术,特别是一种计算机指令执行的方法以及使用此方法的装置。

背景技术

[0002] 计算器的中央处理单元中,微操作(称为micro-operation或μop)为底层指令,用以实现复杂机器指令(也称为宏指令micro-instruction或计算机指令)。通常,微操作是执行一或多个寄存器中数据的基本操作,包括于寄存器间、或寄存器及中央处理单元的外部总线间传递资料,以及执行寄存器中数据的数学运算或逻辑操作。传统的提取-译码-执行周期中,于执行时解构宏指令中的每一级,使得中央处理单元决定及执行一连串的微操作。
[0003] 计算机指令可用于执行数学运算操作。对于执行较为复杂数学运算操作的指令,例如操作数为紧缩操作数(packed operand)的计算机指令,译码单元(decode unit)会将一条这样的计算机指令译码为多个微操作,并且将产生的多个微操作送入微处理器的执行单元(execution unit)以执行。在乱序执行(out-of-order execution)的微处理器中,微操作的执行是乱序的,要执行完该计算机指令对应的所有微操作,耗时会很长。因此,需要一种执行计算机指令的方法以及使用此方法的装置,用以优化这种计算机指令的执行。

发明内容

[0004] 本发明的实施例提出一种微操作的执行方法,至少包括以下步骤:译码计算机指令以产生包括操作码及紧缩操作数的微操作,其中的紧缩操作数包含计算机指令对应的全部n个输入参数;依据操作码以及紧缩操作数产生对应n个输入参数的n个地址;以及从查找表读取n个地址所对应的n个近似值。
[0005] 本发明的实施例提出一种集成微操作的倒数计算装置,至少包括译码单元、只读存储器只读存储器控制器、地址产生器及控制器。译码单元译码计算机指令以产生包含操作码和紧缩操作数的微操作,其中的紧缩操作数包含计算机指令对应的全部n个输入参数。只读存储器控制器耦接只读存储器,而只读存储器储存查找表。地址产生器耦接码寄存器及来源寄存器。控制器耦接地址产生器,驱动地址产生器用以根据操作码及操作数产生对应所述n个输入参数的n个地址至只读存储器控制器,以及只读存储器控制器从查找表读取所述n个地址所对应的n个近似值。
[0006] 本发明所披露的执行计算机指令的装置和方法可有效地提高指令的执行效率,在本发明中,包含多个输入参数的计算机指令直接经译码单元被译码为单一一条包含紧缩操作数的微指令,若输入参数为四个单精度浮点数,紧缩操作数包含四个单精度浮点数,执行单元经过5个阶段即可完成4个单精度浮点数的倒数近似值或平方根的倒数近似值的查表操作,并返回结果,因此大大提高了此种计算机指令的执行效率。附图说明
[0007] 图1为依据本发明实施例的执行计算机指令的系统架构图。
[0008] 图2为依据本发明实施例的执行微操作的方图。
[0009] 图3为依据本发明实施例的只读存储器控制器及只读存储器间的信息流的示意图。
[0010] 图4为依据本发明实施例的执行微操作的方块图。
[0011] 图5为依据本发明实施例的只读存储器控制器及只读存储器间的信息流的示意图。
[0012] 图6为依据本发明实施例的执行计算机指令方法的流程图

具体实施方式

[0013] 以下说明是为完成发明的较佳实现方式,其目的在于描述本发明的基本精神,但并不用以限定本发明。实际的发明内容必须参考之后的权利要求范围。
[0014] 必须了解的是,使用于本说明书中的“包含”、“包括”等词,用以表示存在特定的技术特征、数值、方法步骤、作业处理、组件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。
[0015] 于权利要求中使用如“第一”、“第二”、“第三”等词用来修饰权利要求中的组件,并非用来表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。
[0016] 图1为依据本发明实施例的流级(pipe-stage)精简指令集计算器的系统架构图。实现该流水级的系统可包括指令提取单元(IF,Instruction Fetch)111、指令存取单元(IA,Instruction Access)112、译码单元(DU,Decode Unit)113、执行单元(EU,Execution Unit)114及回写单元(WB,Write Back)115。程序计数器(PC,未显示)以寄存器实施,负责存放目前指令的地址。指令提取单元111可从程序计数器读取地址。指令存取单元112依据此地址从指令高速缓存(instruction cache)提取一或多个计算机指令(或宏指令)及其操作数(operand),每一计算机指令可用以执行其操作数的逻辑运算和/或算术运算。在一实施例中,计算机指令可用以计算一个或多个数值的倒数近似值(approximate reciprocal of value)或一个或多个数值的平方根(又称为开方)的倒数近似值(approximate reciprocal of square root of value)。在一实施例中,上述数值,作为该计算机指令对应的输入参数(以下称为输入参数),可以是32比特(bit)的单精度浮点数(single-precision float-point value),该计算机指令实现计算四个单精度浮点数的倒数或平方根倒数的近似值,或者上述输入参数可以是64比特双精度浮点数(double-precision float-point value),该计算机指令实现计算两个双精度浮点数的倒数或平方根倒数的近似值。上述输入参数一共占128比特的存储空间。译码单元113译码这样的计算机指令以产生微操作,该微操作包括操作码及其对应的紧缩操作数(packed operand)。在一实施例中,译码单元113包含译码器(translator),上述译码器将计算机指令译码为微操作。在一实施例中,上述紧缩操作数包含该计算机指令对应的全部n个(例如4个或2个)输入参数。执行单元114读取译码单元产生的微操作中的紧缩操作数并依据其操作码产生对应全部n个输入参数的n个地址,然后从查找表读取n个地址所对应的n个近似值。具体而言,执行单元114依据操作码将紧缩操作数切分成n个单一操作数,藉由查表获得每一单一操作数所对应的数值以获得结果,上述结果对应紧缩操作数的数值。在一实施例中,每一单一操作数是指n个输入参数之一,单一操作数所对应的数值可以是每一单一操作数倒数的近似值或每一单一操作数的平方根倒数的近似值。回写单元115将结果写入寄存器,在一实施例中,寄存器可能是临时寄存器,如寄存器文件(register file)。在一实施例中,计算机指令可为精简指令集计算机指令。
[0017] 图2为依据本发明实施例的执行微操作的执行单元的方块图。执行单元114包含控制器210、地址产生器230、只读存储器控制器240及只读存储器(ROM,Read Only Memory)250,只读存储器250中储存查找表251。表1描述查找表251的范例:
[0018] 表1
[0019]
[0020] 查找表251以10比特进行寻址,可储存1K字节(byte)的数据。地址2’b1000000000至地址2’b1011111111的存储空间储存数值的倒数近似值(单精度浮点数),以及地址2’b0100000000至地址2’b0111111111的记忆空间储存数值的平方根的倒数近似值(单精度浮点数)。总的来说,查找表251分为多个区段(segment),以高比特(significant bit)作为区段编号,例如,比特9至10。于此须注意的是,查找表251中数值的倒数近似值及数值的平方根的倒数近似值的存储空间配置只为范例,本领域技术人员可根据不同的设计需要改变,本发明并不因此受限。例如,地址2’b0100000000至地址2’b0111111111的存储空间储存数值的倒数近似值,以及地址2’b0000000000至地址2’b0011111111的存储空间储存数值的平方根的倒数近似值。
[0021] 在一实施例中,译码单元113产生微操作后,存(latch)操作码(operation code,opcode)至码寄存器(code register)290,以及锁存紧缩操作数至来源寄存器(source register)220。例如,操作码“RCPPS”指示计算紧缩操作数所对应的n个(例如4个)输入参数的倒数,输出结果为单精度浮点数;操作码“RSQRT”指示计算紧缩操作数所对应的n个(例如4个)输入参数平方根的倒数,输出结果为单精度浮点数。来源寄存器220可为128比特寄存器,以上紧缩操作数可被切割为四个32比特的单一操作数,其中的每单一操作数可对应一个32比特的输入参数。例如,译码单元113默认以比特i0至比特i0+7储存相应第一单一操作数的第一输入参数,i0为0至24之间的任意数值;比特i1至比特i1+7储存相应第二单一操作数的第二输入参数,i1为32至56之间的任意数值;比特i2至比特i2+7储存相应第三单一操作数的第三输入参数,i2为64至88之间的任意数值;及比特i3至比特i3+7储存相应第四单一操作数的第四输入参数,i3为96至120之间的任意数值。例如,码寄存器290及来源寄存器220的内容指示计算1/100.5、1/200.5、1/300.5及1/400.5。又例如,码寄存器290及来源寄存器220的内容指示计算1/(100.5)1/2、1/(200.5)1/2、1/(300.5)1/2及1/(400.5)1/2。
[0022] 在一实施例中,控制器210驱动地址产生器230用以根据操作码及单一操作数产生并输出四个地址至只读存储器控制器240,使得只读存储器控制器240从查找表251读取以上四个地址所对应的四个近似值,以及输出以上四个近似值至结果产生器260。此外,控制器210驱动结果产生器260用以合并四个近似值以产生合并结果,以及锁存合并结果至目的地寄存器280。在一实施例中,控制器210驱动地址产生器230用以根据码寄存器290及来源寄存器220的内容产生并输出四个地址至只读存储器控制器240,使得只读存储器控制器240据此从查找表251读取指定地址的内容并输出到解多工器(DEMUX,demultiplexer)255。
解多工器255的输入端连接只读存储器控制器240和/或只读存储器250,解多工器255具有一或多个输出端,输出端可以连接一或多个结果寄存器(如270a至270c)和/或结果产生器
260。地址产生器230可根据码寄存器290及来源寄存器220的内容产生地址的区段编号及偏移量,也可由地址产生器230依据计算机指令被译码成的微操作的操作码类型和操作数产生地址的区段编号及偏移量(offset)。控制器210控制解多工器255用以将只读存储器控制器240连接至结果寄存器270a至270c及结果产生器260中的其中一个,使得读取结果可传送到连接上的组件,在一实施例中,结果寄存器270a至270c为32比特寄存器。
[0023] 图3为依据本发明实施例的只读存储器控制器及只读存储器间的信息流的示意图。假设只读存储器控制器240及只读存储器250使用一个数据线传收数据:只读存储器控制器240可以经过五个阶段取得四个输入参数的倒数近似值,其中输入参数可以是单精度浮点数。地址Addr0、地址Addr1、地址Addr2和地址Addr3可由地址产生器230依据码寄存器290的操作码及来源寄存器220的输入参数产生,也可由地址产生器230依据计算机指令被译码成的微操作的操作码类型和操作数产生。地址产生器230可同时产生地址Addr0、地址Addr1、地址Addr2和地址Addr3,也可以先后产生地址Addr0、地址Addr1、地址Addr2和地址Addr3。在阶段I,地址产生器230将地址Addr0传送至只读存储器控制器240,在一实施例中,地址Addr0=“2’b10/01”+Src[i0:i0+7],其中,Src[i0:i0+7]代表来源寄存器220中比特i0至比特i0+7的值。例如,当操作码为“RCPPS”,地址Addr0=“2’b10”+Src[i0:i0+7]。当操作码为“RSQRT”,地址Addr0=“2’b01”+Src[i0:i0+7]。只读存储器控制器240将地址Addr0传送给只读存储器250。在阶段II,地址产生器230将地址Addr0传送至只读存储器控制器240,在一实施例中,地址Addr1=“2’b10/01”+Src[i1:i1+7],其中,Src[i1:i1+7]代表来源寄存器220中比特i1至比特i1+7的值。只读存储器控制器240将地址Addr1传送给只读存储器250,接收从只读存储器250查找到的地址Addr0所对应的近似值Data0并输出数据Data0至解多工器
255,以及传送信息给控制器210用以通知地址Addr0的近似值Data0已输出。控制器210控制解多工器255将只读存储器控制器240连接至结果寄存器270a用以锁存(latch)近似值Data0。在阶段III,地址产生器230将地址Addr0传送至只读存储器控制器240,在一实施例中,地址Addr2=“2’b10/01”+Src[i2:i2+7],其中,Src[i2:i2+7]代表来源寄存器220中比特i2至比特i2+7的值。只读存储器控制器240将地址Addr2传送给只读存储器250,接收从只读存储器250查找到的地址Addr1所对应的近似值Data1并输出近似值Data1至解多工器255,以及传送信息给控制器210用以通知地址Addr1的近似值Data1已输出。控制器210控制解多工器255将只读存储器控制器240连接至结果寄存器270b用以锁存近似值Data1。在阶段IV,地址产生器230将地址Addr0传送至只读存储器控制器240,在一实施例中,地址Addr3=“2’b10/01”+Src[i3:i3+7],其中,Src[i3:i3+7]代表来源寄存器220中比特i3至比特i3+7的值。
只读存储器控制器240将地址Addr3传送给只读存储器250,接收从只读存储器250查找到的地址Addr2所对应的近似值Data2并输出近似值Data2至解多工器255,以及传送信息给控制器210用以通知地址Addr2的近似值Data2已输出。控制器210控制解多工器255将只读存储器控制器240连接至结果寄存器270c用以锁存近似值Data2。在阶段V,只读存储器控制器
240接收从只读存储器250查找到的地址Addr3所对应的近似值Data3并输出数据Data3至解多工器255,以及传送信息给控制器210用以通知地址Addr3的近似值Data3已输出。控制器
210控制解多工器255将只读存储器控制器240连接至结果产生器260并指示结果产生器260产生计算结果。结果产生器260合并结果寄存器270a中的近似值Data0、结果寄存器270b中的近似值Data1、结果寄存器270c中的近似值Data2及从只读存储器控制器240接收到的近似值Data3,用以产生128比特的合并结果,以及锁存合并结果至目的地寄存器
(destination register)280。在一实施例中,目的地寄存器280的比特0至比特31储存第一单精度浮点数的查表结果,比特32至比特63储存第二单精度浮点数的查表结果,比特64至比特95储存第三单精度浮点数的查表结果,以及比特96至比特127储存第四单精度浮点数的查表结果。在一实施例中,只读存储器250具备四个输出端,可并行输出以上四个近似值(Data0、Data1、Data2及Data3)至解多工器255,解多工器255将以上四个近似值分别输出至结果寄存器(如270a至270c)和结果产生器260,结果寄存器270a至270c再将三个近似值输出至结果产生器260,结果产生器260将以上四个近似值合并以产生结果。在一实施例中,只读存储器250并行输出以上四个近似值(Data0、Data1、Data2及Data3)至解多工器255,解多工器255将以上四个近似值分别输出至一或多个结果寄存器(如2个结果寄存器),再经结果寄存器输出至结果产生器260以合并以上四个近似值产生结果。图4为依据本发明实施例的执行计算机指令的方块图。执行单元114包含只读存储器450,用于储存查找表451。本领域技术人员可修改表1的范例,使用更大的内存空间来储存双精度浮点数的倒数近似值。译码单元113产生微操作后,锁存操作码至码寄存器490,以及锁存操作数至来源寄存器420。例如,操作码“DRCPPS”指示计算紧缩操作数所对应的n个(例如2个)输入参数的倒数,输出结果为双精度浮点数;操作码“DRSQRT”指示计算紧缩操作数所对应的n个(例如2个)输入参数的平方根的倒数,输出结果为双精度浮点数。来源寄存器420为128比特寄存器,可切割为2个64比特,其中的每64比特储存一个输入数值。例如,码寄存器490及来源寄存器420的内容指示计算1/100.5及1/400.5。又例如,码寄存器490及来源寄存器420的内容指示计算1/(100.5)1/2及1/(400.5)1/2。控制器410驱动地址产生器430用以根据操作码及操作数产生并输出二个地址至只读存储器控制器440,使得只读存储器控制器440从只读存储器450中的查找表451中读取以上二个地址所对应的二个近似值。在一实施例中,只读存储器450输出以上二个近似值至只读存储器控制器440,只读存储器控制器440将以上二个近似值输出至解多工器455,解多工器455输出以上二个近似值至结果产生器460以合并二个近似值产生结果。在一实施例中,只读存储器450通过其具备的二个输出端并行输出以上二个近似值至解多工器455,解多工器455将以上二个近似值分别输出至结果寄存器470和结果产生器
460,结果寄存器470再将其所存储近似值输出至结果产生器460,结果产生器460将以上二个近似值合并以产生结果。
[0024] 控制器410驱动结果产生器460用以合并二个近似值以产生合并结果,以及锁存合并结果至目的地寄存器480。在一实施例中,控制器410驱动地址产生器430产生并输出二个地址至只读存储器控制器440,使得只读存储器控制器440据此读取查找表451中指定地址的内容。地址产生器430可根据码寄存器490及来源寄存器420的内容产生地址的区段编号及偏移量,也可由地址产生器430依据计算机指令被译码成的微操作的操作码类型和操作数产生地址的区段编号及偏移量。解多工器455的输入端连接只读存储器控制器440,解多工器455的二个输出端分别连接结果寄存器470及结果产生器460。在一些实施例中,解多工器455的二个输出端可以连接两个结果寄存器460及470用于接受查找表451中指定地址的内容。控制器410控制解多工器455用以将只读存储器控制器440连接至结果寄存器470及结果产生器460中的其中一个,使得读取结果可传送到连接上的组件,其中,结果寄存器470为64比特寄存器。
[0025] 图5为依据本发明实施例的只读存储器控制器及只读存储器间的信息流的示意图。在一实施例中,只读存储器控制器440及只读存储器450使用一个数据线传收数据,只读存储器控制器440可以经过三个阶段取得二个输入参数的倒数近似值,其中输入参数可以是双精度浮点数。地址Addr0和地址Addr1可由地址产生器430依据码寄存器490的操作码及来源寄存器420的输入参数产生,也可由地址产生器430依据计算机指令被译码成的微操作的操作码类型和操作数产生。地址产生器430可同时产生地址Addr0和地址Addr1,也可以先后产生地址Addr0和地址Addr1。在阶段I,地址产生器430将地址Addr0传送至只读存储器控制器440。只读存储器控制器440将地址Addr0传送给只读存储器450。在阶段II,地址产生器430将地址Addr1传送至只读存储器控制器440。只读存储器控制器440将地址Addr1传送给只读存储器450,接收从只读存储器450查找到的地址Addr0所对应的近似值Data0并输出近似值Data0至解多工器455,以及传送信息给控制器410用以通知地址Addr0的近似值Data0已输出。通过查找只读存储器450中的查找表451中的数据得到地址Addr0所对应的近似值Data0。控制器410控制解多工器455将只读存储器控制器440连接至结果寄存器470用以锁存近似值Data0。在阶段III,只读存储器控制器440从只读存储器450接收地址Addr1所对应的近似值Data1并输出近似值Data1至解多工器455,以及传送信息给控制器410用以通知地址Addr1所对应的近似值Data1已输出。通过查找只读存储器450中的查找表451中的数据得到地址Addr1所对应的近似值Data1。控制器410控制解多工器455将只读存储器控制器440连接至结果产生器460并指示结果产生器460产生计算结果。结果产生器460合并结果寄存器470的近似值Data0及从只读存储器控制器440接收到的近似值Data1,用以产生128比特的计算结果,以及储存计算结果至目的地寄存器480。在一实施例中,目的地寄存器480的比特0至比特63储存第一双精度浮点数的查表结果,以及比特64至比特127储存第二双精度浮点数的查表结果。
[0026] 图6为依据本发明实施例的执行计算机指令的流程图。在步骤S600,译码计算机指令产生包括操作码和紧缩操作数的微操作所述紧缩操作数包括该计算机指令对应的全部n个输入参数。在一实施例中,所述步骤S600所产生的操作码和紧缩操作数分别存储于码寄存器290或490以及来源寄存器220或420。在步骤S610,依据所述操作码及紧缩操作数产生对应前述n个输入参数的n个地址。在一实施例中,前述操作码及紧缩操作数分别来自码寄存器290或490以及来源寄存器220或420。在一实施例中,前述n个地址的每一个地址包含区段编号加上偏移量详细来说,针对每一输入参数,依据码寄存器290或490的操作码决定地址的区段编号,以及依据来源寄存器220或420的输入参数决定地址的偏移量。在步骤S620,从查找表251或451读取n个地址所对应的n个近似值。在一实施例中,近似值可为相应于输入参数的数值的倒数近似值或数值平方的倒数近似值。近似值可为单精度浮点数或双精度浮点数。在一实施例中,近似值以并行的方式输出至结果产生器260或460,具体而言,查表所得的多个近似值从只读存储器250或450或者查找表251或451经由只读存储器控制器240或440并行输出至结果寄存器(例如结果寄存器270a、270b、270c或470)以及结果产生器(例如结果产生器260或460)。在一实施例中,近似值以串行的方式输出至结果产生器260或460,具体而言,查表所得的每个近似值从只读存储器250或450或者查找表251或451经由只读存储器控制器240或440输出至解多工器(例如解多工器255或455),再由控制器410控制解多工器(例如解多工器255或455)分别输出至结果寄存器(如结果寄存器270a、270b、270c或470)以及结果产生器(例如结果产生器260或460)。在步骤630,合并n个近似值以产生结果。在一实施例中,产生的结果被锁存至一寄存器,例如目的地寄存器280或480。在一实施例中,n为4,操作码指示计算n个数值的倒数或n个数值平方根的倒数近似值,近似值可能为单精度浮点数。在一实施例中,n为2,操作码指示计算n个数值的倒数或n个数值平方根的倒数,近似值可能为双精度浮点数。
[0027] 本发明所披露的执行计算机指令的装置和方法可有效地提高指令的执行效率,在现有技术中,包含多个输入参数的计算机指令会被译码为多条微指令,例如,当输入参数为四个单精度浮点数,计算机指令会被译码为三条微操作,至少经过七个阶段(或时钟周期)才可完成四个单精度浮点数的倒数近似值或平方根的倒数近似值的查表操作,并返回结果,此外,在乱序执行的微处理器中,执行单元可能无法连续执行上述三条微操作,可能被其他的微操作插入,导致执行该计算机指令所需的时间再被延长。而在本发明中,包含多个输入参数的计算机指令直接经译码单元被译码为单一一条包含紧缩操作数的微指令,若输入参数为四个单精度浮点数,紧缩操作数包含四个单精度浮点数,执行单元经过五个阶段即可完成四个单精度浮点数的倒数近似值或平方根的倒数近似值的查表操作,并返回结果,因此大大提高了此种计算机指令的执行效率。虽然图2及图4中包含了以上描述的组件,但不排除在不违反发明的精神下,使用更多其他的附加组件,以达成更佳的技术效果。虽然图6的处理步骤采用特定的顺序来执行,但是在不违反发明精神的情况下,本领域技术人员可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,图6的处理步骤可采用诸如图2或图4所示的硬件装置来实现,也可以采用软件方法来实现。
[0028] 虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用以限缩本发明。相反地,此发明涵盖了本领域技术人员显而易见的修改与相似设置。所以,申请权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈