首页> 中国专利> 使用非架构的数据格式的快速浮点结果的转送

使用非架构的数据格式的快速浮点结果的转送

摘要

本发明提供一种微处理器,具有一指令集架构,其用以指明适用于多个浮点操作数的至少一架构的数据格式(architected data format,ADF)。该微处理器包括多个浮点单元,每一个浮点单元包括一算术单元,用以接收多个非架构的数据格式(non-ADF)的来源操作数,且对该等非架构的数据格式的来源操作数执行一浮点运算以产生一非架构的数据格式的结果。该微处理器也包括多个转送总线,用以转送由该等浮点单元的每一个算术单元产生的该非架构的数据格式的结果给该等浮点单元的每一个,该非架构的数据格式的结果作为该等非架构的数据格式的来源操作数之一,用以被选择地使用。

著录项

  • 公开/公告号CN101916182A

    专利类型发明专利

  • 公开/公告日2010-12-15

    原文格式PDF

  • 申请/专利权人 威盛电子股份有限公司;

    申请/专利号CN201010270067.9

  • 发明设计人 G·葛兰·亨利;泰瑞·派克斯;

    申请日2010-08-30

  • 分类号G06F9/315;

  • 代理机构北京市柳沈律师事务所;

  • 代理人钱大勇

  • 地址 中国台湾台北县

  • 入库时间 2023-12-18 01:26:38

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-08-20

    授权

    授权

  • 2011-02-02

    实质审查的生效 IPC(主分类):G06F9/315 申请日:20100830

    实质审查的生效

  • 2010-12-15

    公开

    公开

说明书

技术领域

本发明关于一种管线微处理器(pipelined microprocessor)的架构的领域,特别是将浮点运算结果从一个指令到另一个指令的转送(forwarding)。

背景技术

x86架构明确地指明了适用于多个浮点操作数(floating point operand)的多种数据格式,亦即单倍精度(single-precision),双倍精度(double-precision)以及延伸双倍精度(extended double-precision)。这暗示了多个浮点单元对每一个架构的数据格式(architected data format)具有一不同的乘法器,加法器等等。这对空间(space)与功率(power)来说都是一个不有效的使用。因此,为了减少乘法器,加法器等等元件的数量,该等浮点单元包含了一单一的乘法器,加法器等等的元件,每一个都可以运作在一单一非架构的数据格式(single non-architected data format)的多个操作数上。该等浮点单元转换接收到来自其架构的数据格式到非架构的数据格式的多个来源操作数,执行在非架构的数据格式的多个操作数的运算以产生在非架构的数据格式的一结果,接着转换该结果回该架构的数据格式。该架构的数据格式的多个结果接着被转送到该等浮点运算单元作为多个来源操作数,如通过图4中所示的已知的浮点运算单元112。

发明内容

本发明的一实施例为一种微处理器,具有一指令集架构(instructionset architecture),其用以指明适用于多个浮点操作数(floating-pointoperand)的至少一架构的数据格式(architected data format,ADF)。该微处理器包括多个浮点单元,每一个浮点单元包括一算术单元,用以接收多个非架构的数据格式(non-ADF)的来源操作数,且对该等非架构的数据格式的来源操作数执行一浮点运算以产生一非架构的数据格式的结果。该微处理器也包括多个转送总线,用以转送由该等浮点单元的每一个算术单元产生的该非架构的数据格式的结果给该等浮点单元的每一个,该非架构的数据格式的结果作为该等非架构的数据格式的来源操作数之一,用以被选择地使用。

本发明的另一实施例为一种处理浮点运算指令的方法,适用于一微处理器,该处理器具有一第一浮点单元与一第二浮点单元,每一个浮点单元都具有一算术单元,其中该微处理器具有一指令集架构,其用以指明适用于多个浮点操作数的至少一架构的数据格式,该方法包括通过该第一浮点单元的该算术单元对多个第一与第二non-ADF来源操作数执行一浮点运算用以产生一第一non-ADF结果。该方法也包括通过该第二浮点单元的该算术单元对多个第三与第四non-ADF来源操作数执行一浮点运算用以产生一第二non-ADF结果。该方法也包括通过该第一浮点单元转送该第一non-ADF结果给该第二浮点单元。该方法也包括通过该第二浮点单元转送该第二non-ADF结果给该第一浮点单元。该方法也包括通过该第一浮点单元的该算术单元对该第二non-ADF结果与一第五操作数以产生一第三non-ADF结果。该方法也包括通过该第二浮点单元的该算术单元对该第一non-ADF结果与一第六操作数以产生一第三non-ADF结果。

本发明的另一实施例为一种微处理器,具有一指令集架构,其用以指明适用于多个浮点操作数的至少一架构的数据格式,该微处理器包括一第一浮点单元与一第二浮点单元。该第一浮点单元用以转送由该第一浮点单元产生的一non-ADF结果至该第二浮点单元,其中该non-ADF结果与一第一指令相关。该第二浮点单元用以使用与该第一指令有关的转送的该non-ADF结果作为一来源操作数以产生该第二指令的一结果。该第二浮点单元还用以转换该non-ADF结果为一ADF结果,且判断在转换时,是否发生一例外情况。在该non-ADF结果转换时ADF结果,判断到发生该例外情况时,该微处理器取消该第二指令。

本发明的另一实施例为一种处理浮点运算指令的方法,适用于一微处理器,该处理器具有一第一浮点单元与一第二浮点单元,其中该微处理器具有一指令集架构,其用以指明适用于多个浮点操作数的至少一架构的数据格式,该方法包括从该第一浮点单元转送由该第一浮点单元产生的一non-ADF结果至该第二浮点单元,其中该non-ADF结果与一第一指令相关。该方法也包括该第二浮点单元使用与该第一指令有关的转送的该non-ADF结果作为一来源操作数以产生该第二指令的一结果。该方法也包括判断在转换该non-ADF结果为一ADF结果时,是否发生一例外情况。该方法也包括当发生该例外情况时,取消该第二指令。

附图说明

图1为根据本发明的一微处理器的实施例的方块示意图,该微处理器包含了降低延迟的非架构的数据格式结果的转送。

图2为图1中的多个浮点单元的较详细的功能方块示意图。

图3为图1的微处理器的一运作实施例的流程图。

图4为一浮点单元的相关技术的方块示意图,该浮点单元并不会转送非架构的数据格式结果。

[主要元件标号说明]

112A、112B~浮点运算单元

118~通用暂存器

116~多工器

172、174~例外信号

162、164~ADF结果

114~重新排序缓冲器

152~ADF操作数

222~转换器

272、274~NADF操作数

224、234~多工器

226~NADF乘法器

236~NADF加法器

252、254~NADF结果

228、238~转换器

具体实施方式

有关于图4的前述的多个该架构的数据格式的结果的转送,假使结果产生(result-generating)与结果消耗(result-consuming)的指令是被安排着背靠背(back to back)的执行,或更明确地指的是该数据格式的转换被执行,这样是浪费时间(time-wasteful),因为加了额外的延迟时间(latency)。为了减少延迟,本说明书描述的实施例包括了多个浮点单元,其可转送非架构的数据格式(non-architected data format,以下简称NADF)的结果,而不用转变为架构的数据格式(architected data format,以下简称ADF),而且可以接收并直接对NADF的操作数运作,而不用将其从ADF转换为NADF。如此一来便通过移除浮点单元输入或输出的转换时间来减少延迟时间。当有一个序列是将结果产生(result-generating)与结果消耗(result-consuming)的指令安排成背靠背(back to back)的形式,减少的延迟时间会特别明显,如此一来,修改过的浮点单元可以直接转送NADF结果。在一实施例中,NADF包括了多个额外的指数位,位于由最大的ADF所表示的多个指数位的数目之后。举例来说,在一实施例中,最大的ADF为80位双倍精度格式,其中包括了15个位的指数域,且该NADF包括一个17位的指数域,以便容纳往上溢位(overflow)与往下溢位(underflow)。在一实施例中,该非架构的数据格式包括比架构的数据格式较多数量的位数,用以指明一浮点操作数指数。

图1为根据本发明的一微处理器的实施例的方块示意图,其中微处理器100结合了如前所述的降低延迟时间的NADF转送机制。微处理器100包括多个浮点单元(floating point units,FPU)112。每一浮点单元包括一算术单元(例如一乘法器或是一加法器),用以接收多个非架构的数据格式(non-ADF)的来源操作数,且每一浮点单元对该等非架构的数据格式的来源操作数执行一浮点运算以产生一非架构的数据格式的结果。

在一实施例中,该等浮点单元112包括一第一浮点单元112A与一第二浮点单元112B,该第一浮点单元112A包括用以产生一第一ADF结果162的一浮点乘法器(floating point multiplier)226(请参考图2),该第二浮点单元112B包括用以产生一第二ADF结果164的一浮点加法器236(请参考图2)。该等浮点单元112接收来自一多工器116与一重新排序缓冲器(reorderbuffer,ROB)114的多个暂时暂存器(temporary registers)的多个ADF来源操作数152,该多工器116接收来自多个通用暂存器(general purposeregisters,GPRs)118的多个ADF来源操作数。该等浮点单元112接收来自该等该等浮点单元112本身的ADF结果162/164。此外,该等浮点单元112产生各自的例外指示(exception indications),例外信号172与174,给重新排序缓冲器114,以指出一个指令发生一个例外情况(exceptioncondition),如往上溢位或往下溢位,这部分会在后文有更详细的说明。

在一实施例中,该微处理器100是一x86(也被称为IA-32)架构的微处理器100,然而,其它处理器架构也可能可以被应用。如果微处理器可以正确地执行大多数被设计给一x86架构的微处理器上执行的应用程序,那么该处理器就是一个x86架构的微处理器。如果应用程序的执行可以得到预期的结果,那表示该应用程序可以被正确地执行。特别地,该微处理器100包括该x86使用者可见暂存器(user visible registers)且执行x86指令集中的多个指令。

参考图2。图2为图1中多个浮点单元112的方块示意图,说明了多个浮点单元112较详细的内容。浮点单元112A包括一转换器222,耦接至一多工器224,多工器224耦接至一NADF乘法器226而NADF乘法器226耦接至一第二转换器228。浮点单元112B包括一转换器232,耦接至一多工器234,多工器234耦接至一NADF加法器236而NADF加法器236耦接至一第二转换器238。

转换器222转换多个ADF操作数152为多个NADF操作数272,并提供给多工器224。多工器224也接收由NADF乘法器226转送的一NADF结果252与由NADF加法器236转送的一NADF结果254。多工器224会自其多个输入中,选择多个NADF操作数266至NADF乘法器226,乘法器226对该等操作数266相乘以产生该NADF结果252。转换器228转换NADF结果252为图1的ADF结果162。在一实施例中,该微处理器100包含多个转送总线(forwarding buses),用以转送由每一浮点单元的算术单元产生的该非架构的数据格式的结果给该等浮点单元的每一个,该非架构的数据格式的结果作为该等非架构的数据格式的来源操作数之一,用以被该等浮点单元的每一个选择地使用。此外,当检测到ADF结果162发生一个例外情况,如往上溢位或往下溢位时,转换器228产生图1的例外信号172。亦即,该NADF可能容纳(accommodate)结果252,而不会造成往上溢位或往下溢位;然而,较小的ADF可能无法充分地容纳结果252,如此由该NADF到ADF的转换发生一个例外情况。

该转换器232转换该等ADF操作数152为该等NADF操作数274,该等NADF操作数274被提供给多工器234。该多工器234也接收由NADF乘法器226转送的NADF结果252与由NADF加法器236转送的NADF结果254。多工器234会自其多个输入中,选择多个NADF操作数268至NADF加法器236,加法器236对该等操作数268相加以产生该NADF结果254。转换器238转换NADF结果254为图1的ADF结果164。此外,当检测到ADF结果164发生一个例外情况,如往上溢位或往下溢位时,转换器238产生图1的例外信号174。

观察图2与图4可能发现到,图2的该等浮点单元112通过直接转送彼此的NADF结果252与254,有助于可能地降低指令执行的延迟。与图4的已知浮点运算单元112对照,图4的浮点运算单元112可能会因为下列动作导致延迟:将该等NADF结果转换成该等ADF结果,转送转换后的该等ADF结果以及接着转换为NADF操作数。

浮点运算可能导致多个例外情况,如往上溢位或往下溢位。该NADF的一个副作用是有些可能在ADF会往上溢位或往下溢位的结果,在NADF中可能不会如此,举例来说,可能是因为如前所述的较大的指数。因此,NADF结果252/254的转送是预测性(speculative)的,因为程序开发者(programmer)可能不希望接收到转送的NADF结果252/254的指令,会与一个值一起执行,该值在转换为ADF时可能会造成一个例外。因此,与预测性的NADF结果252/254的转送平行地,该转换器228/238也会对ADF执行转换,且如果该转换产生(yield)一个往上溢位或往下溢位的情况,接着会产生例外172/174在转送指令上,且该微处理器100取消(kill)使用该预测性的转送的NADF结果的该指令,详细的说明请参考图3。

接着请参考图3,图3是图1的微处理器100的一个运作的范例的流程图。流程从步骤302开始。

在步骤302,浮点运算单元112A接收一指令B来执行。多工器224检测到多个来源操作数中的一个是前一指令A的NADF结果254,并因此选择转送的NADF结果254,而NADF结果254是从NADF加法器236转送过来。多工器224也可能选择由NADF乘法器226转发的NADF结果252或该转换过的NADF操作数272。接着执行步骤304。

在步骤304中,NADF乘法器226乘上该等NADF操作数266以产生指令B的NADF结果252。接着,流程从步骤304同时进入步骤306与322。

在步骤306中,该等多个转送总线转送该指令B的NADF结果252至NADF加法器236。流程接着进行到步骤308。

在步骤308中,浮点单元112B接收要被执行的一指令C。该多工器234检测当多个来源操作数中的一个为在步骤306中由该NADF乘法器226转送的指令B的NADF结果252,且因此选择该NADF结果252。该多工器234也可能选择其它操作数,例如从该NADF加法器236产生的该NADF结果254或该转换过的该等NADF操作数274。流程接着进行到步骤312。在一实施例中,浮点单元112B转送与指令C相关的NADF结果254至浮点单元112B的多工器234,且同时(concurrently)浮点单元112A转送与指令B相关的NADF结果252至浮点单元112B的多工器234。

在步骤312中,该NADF加法器236加总(add)该等NADF操作数268以产生指令C的NADF结果254。本流程在步骤312停止。虽然可以了解到,该等NADF结果254且/或254的转送可能有助于一长序列(long sequence)的多个指令的运作,因此与图4的已知浮点运算单元112相较之下,可以减少长序列的多个指令的延迟且加速其执行速度。图4的已知浮点运算单元112是在该等转送路径上包括了ADF至NADF的转换与NADF至ADF的转换。

在步骤322中,转换器228转换指令B的NADF结果为ADF结果162。流程接着进入到步骤324。

在步骤324中,该转换器228判断指令B的NADF结果在转换为ADF时是否发生一个例外情况。如果有,则流程进入步骤326,如果没有,则流程进入步骤328。

在步骤326中,转换器228设置(assert)该例外信号172给重新排序缓冲器114。因此,微处理器100会产生(take)一个例外,且重新排序缓冲器114会清除(flush)指令C,因为指令C在程序序列(program sequence)中较指令B新。这是有必要的,因为指令B的NADF结果252是被预测性的转送到NADF加法器236而不需要先将NADF结果252转换为ADF结果后,判断为一个好的操作数(例如,该NADF结果252是否是一个非往下溢位或非往上溢位的值),再进行转送。也就是程序开发者可能不希望指令C与一个不好的操作数执行。然而,该等NADF结果252/254被预测性的转送是有助于减少指令执行的延迟,并且在大多数的情况下,转送与接收指令都可以被成功地完成。流程接着进入到步骤328。

在步骤328,浮点单元112A提供该ADF结果162给重新排序缓冲器114,用以储存在其暂时暂存器中。流程接着进入步骤332。

在步骤332中,重新排序缓冲器114从暂时暂存器中释出(retire)ADF结果162给适合的通用暂存器118。流程在步骤332结束。

虽然本发明在此已经描述了多个实施例,但要理解到的是这些实施例只是用来作为例子说明,并非将本发明限制于此。对于计算机相关的已知技术人员来说,本发明是明显的可以在本发明的范畴内,可以在形式上做不同的变化且其详细内容也可以被得知。举例来说,软件可以致能本说明书中描述的装置或方法的功能、制造、模型化、仿真、描述且/或测试。这可以通过使用通用的程序语言来完成,如C与C++,或是硬件描述语言来完成,硬件描述语言包括Verilog硬件描述语言、VHDL与其它可应用的程序语言。这样的软件可以被配置在任何已知的计算机可使用的媒介,如磁带、半导体、磁盘或光盘(如CD-ROM、DVD-ROM等等)、一网络、电线、无线或其它通信媒体。说明书中描述的方法与装置的实施例可能被包括在一半导体智慧财产权核心内,如一微处理器核心(如以HDL体现),且在集成电路的制造内转换为硬件。此外,说明书中描述的装置与方法可能被体现(embodied)为软件与硬件的结合。因此,本发明不当被限制在前述的任何实施例中,而应该以上文所述的权利要求范围来界定本发明与其均等物。特别地是本发明可能被实现在一微处理器装置内,其可能被使用在一通用的计算机中。最后,本领域技术人员应当体会到使用本说明书中揭露的核心与特别的实施例做为一个基础,在本发明的权利要求范围界定的范畴内,用以设计或修改结构以实现其特定的目的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号