不同浮点格式的浮点加法的制作方法

文档序号:6570676阅读:219来源:国知局
专利名称:不同浮点格式的浮点加法的制作方法
技术领域
一般来说,本公开涉及电子领域。更具体来说,本发明的一个实 施例涉及用于在计算机系统中执行浮点加法的技术。
背景技术
在对实数执行算术运算时,数值的浮点表示可用来提供效率。根 据精度要求,可利用不同的浮点表示格式。例如,可将实数表示为单 精度浮点数、双精度浮点数或扩展双精度浮点数。为了提高计算效率, 一些处理器或计算机系统可包括一个以上浮点加法器以便对具有不同 浮点格式的数值进行运算。具有用于不同浮点格式的不同浮点加法器 会导致在处理器上耗用更多管芯面积以及附加功率。


参照附图来提供详细描述。附图中,附图标记最左边的数字标识 首次出现该附图标记的附图。不同附图中使用相同的附图标记来表示 相似或相同的项。
图1、图8和图9示出可用来实现本文论述的各种实施例的计算
系统的实施例的框图。
图2示出根据本发明的 一 个实施例的处理器核的部分的框图。 图3a-b和图4示出根据本发明的各种实施例的浮点加法器的部分
的框图。
图5和图6示出根据本发明的各种实施例的操作数格式。
图7示出根据本发明的一个实施例的方法的一个实施例的流程图。
具体实施例方式
在以下描述中,阐明大量具体细节,以便提供对各种实施例的透 彻了解。但是,即使没有这些具体细节,也可实施一些实施例。在其 它情况下,没有详细描述众所周知的方法、过程、组件和电路,以免 影响对具体实施例的理解。可使用诸如集成半导体电路("硬件")、 组织成一个或多个程序的计算机可读指令("软件")或者硬件和软件
开的目的,提到"逻辑,,时应表示硬件、软件或者它们的某种组合。
本文论述的一些实施例可提供用于将浮点数相加的有效机制。在 一个实施例中,加法和/或减法可使用相同的逻辑。例如,相反符号的 浮点数的加法可对应于减法运算。另外,在一个实施例中,用不同的 浮点表示格式表示的浮点数(例如,单精度、双精度和/或扩展双精度浮 点数)的加法(和/或减法)可使用相同的浮点加法器逻辑。此外,这样一
种浮点加法器可在处理器核(例如,参照图1-9论述的处理器核)中使 用。更具体来说,图1示出根据本发明的一个实施例的计算系统100 的框图。系统100可包括一个或多个处理器102-1至102-N(本文中一 般称作"处理器102")。处理器102可经由互连或总线104进行通信。 每个处理器都可包括各种组件,为了清楚起见,仅参照处理器102-1 来论述其中一些组件。因此,其余每个处理器102-2至102-N可包括 与参照处理器102-1论述的组件相同或相似的组件。
在一个实施例中,处理器102-1可包括一个或多个处理器核106-1 至106-M(本文中称作"核106")、高速緩存108(在各种实施例中,它 可以是共享高速緩存或专用高速緩存)和/或路由器110。处理器核106 可在单个集成电路(IC)芯片上实现。另外,该芯片可包括一个或多个 共享和/或专用高速緩存(例如高速緩存108)、总线或互连(例如总线或 互连112)、存储器控制器(例如,参照图8和图9论述的存储器控制器) 或其它组件。在一个实施例中,路由器110可用于在处理器102-1和/或系统100 的各个组件之间进行通信。另外,处理器102-1可包括一个以上路由 器110。另外,这些路由器(110)可进行通信,以便使得能够在处理器 102-1的内部或外部的各个组件之间路由数据。
高速緩存108可存储供处理器102-1的一个或多个组件(如核106) 使用的数据(例如,包括指令)。例如,高速緩存108可本地緩存存储在 存储器114中的数据,以便由处理器102的组件进行更快速的访问。 如图1所示,存储器114可经由互连104与处理器102进行通信。在 一个实施例中,高速緩存108(可以#皮共享)可包括中间级高速》爰存和/ 或最后一级高速缓存(LLC)。并且,每个核106还可包括1级(L1)高速 緩存(116-1)(本文中一般称作"L1高速緩存116")。处理器102-1的各 个组件可直接、或通过总线(例如总线112)和/或存储器控制器或集线 器来与高速緩存108进行通信。
图2示出根据本发明的一个实施例的处理器核106的部分的框图。 在一个实施例中,图2中示出的箭头说明指令在核106中的流向。一 个或多个处理器核(例如处理器核106)可在单个集成电路芯片(或管芯) 上实现,例如参照图1所论述的。另外,该芯片可包括一个或多个共 享和/或专用高速緩存(例如,图1中的高速緩存108)、互连(例如,图 1中的互连104和/或112)、存储器控制器或其它组件。
如图2所示,处理器核106可包括用于提取指令以供核106执行 的提取单元202。可从诸如存储器114和/或参照图8和图9论述的存 储器装置的任何存储装置中提取指令。核106还可包括用于对所提取 的指令进行解码的解码单元204。例如,解码单元204可将提取的指 令解码为多个pop(微操作)。此外,核106可包括调度单元206。调度 单元206可执行与存储解码指令(例如,从解码单元204接收的指令) 关联的各种操作,直到指令准备好用于分发为止,例如直到解码指令 的所有源值变为可用为止。在一个实施例中,调度单元206可向执行 单元208调度和/或发出(或分发)解码指令以用于执行。执行单元208可在指令被解码(例如,由解码单元204解码)和分发(例如,由调度单 元206分发)之后执行分发的指令。在一个实施例中,执行单元208可 包括一个以上执行单元,例如存储器执行单元、整数执行单元、浮点 执行单元或其它执行单元。执行单元208还可寺丸行各种算术运算,例 如加法、减法、乘法和/或除法,并且可包括一个或多个算术逻辑单元 (ALU)。在一个实施例中,协处理器(未示出)可结合执行单元208来执 行各种算术运算。
如图2所示,执行单元208可包括浮点(FP)加法器209,用于对可 用不同的浮点表示格式表示的浮点数执行加法、减法、比较和/或才各式 转换。在一个实施例中,相加和/或相减的浮点数可具有任何格式,例 如包括单精度、双精度和/或扩展双精度浮点数格式(例如,参照图5 和图6论述的格式)。在一个实施例中,加法器209可响应单指令多数 据(SIMD)指令而进行操作。 一般来说,SIMD指令可导致同时(例如, 并行地)对多个数据片段执行相同操作。另外,根据至少一个指令集架 构,SIMD指令可对应于SIMD流技术扩展(SSE)或其它形式的SIMD 流技术实现(例如,SIMD流技术扩展2(SSE2))。本文将参照例如图3-7 进一步论迷与加法器209的各种实施例有关的其它细节。而且,执行 单元208可包括一个以上浮点加法器209。另外,^L行单元208可无 序地执行指令。因此,在一个实施例中,处理器核106可以是无序处 理器核。核106还可包括引退(retirement)单元210。引退单元210可在 提交执行指令之后引退执行指令。在一个实施例中,执行指令的引退 可导致从指令的执行中提交处理器状态、解除对指令所用的物理寄存 器的分配等。
此外,核106还可包括跟踪高速緩存或微代码只读存储器 OROM)212,它用于存储所提取(例如由提取单元202提取)的指令的微 代码和/或踪迹。存储在pROM212中的微代码可用来配置核106的各 种硬件组件。在一个实施例中,可从与处理器核106通信的另一个组 件(例如,参照图8和图9论述的计算机可读介质或其它存储装置)中加载存储在[iROM 212中的微代码。核106还可包括总线单元220,它 用于使得能够经由一条或多条总线(例如,总线104和/或112)而在处 理器核106的组件与其它组件(例如,参照图1论述的组件)之间进4亍通 信。核106还可包括一个或多个寄存器222,用于存储供核106的各 个组件访问的数据。
图3a-b示出根据本发明的一个实施例的浮点加法器(209)的各部 分的框图。图3a-b中的浮点加法器209可以与参照图2论述的浮点加 法器209相同或相似。根据本发明的一个实施例,加法器209的各种 信号通路的宽度如图3a-b所示。而且,如图3a-b所示,加法器209可 包括指数Cexponent)通路302和尾数通路304,用于执行与两个操作数 306和308的加法(或减法)对应的各种运算。
如图3a-b所示,加法器209可包括包咱"寸齐部分305在内的多个 部分。对齐部分305可包括操作数格式转换逻辑310,用于例如将操 作数306和308中的一个或多个操作数从第一才各式(例如,如图5所示 的格式)修改为第二格式(例如,如图6所示的格式)。指数通路302可 接收与算术运算(例如,加法或减法)对应的操作码312。逻辑314可确 定(例如,从包含预定义数据的表或存储单元中查找)与转换指令的操 作码312对应的指数。 一般来说,转换指令可对单个操作数(例如操作 数308)进行运算,而向另一个操作数(例如操作数306)提供零值。因此, 在一个实施例中,来自逻辑314的预定义指数可用来计算所得指数, 并在需要时对齐数据,这将参照图3a-b进一步论述。为此,复用器316 可接收和选择来自逻辑314的指数之一以及与操作数之一(例如操作数 306)对应的指数。在一个实施例中,复用器316可根据操作码312来 选择它的输入之一。指数差逻辑318可接收和比较来自复用器316的 所选指数以及与操作数308对应的指数。逻辑318可根据比较(在一个 实施例中,可以是一个或多个减法运算)的结果来生成一个或多个信 号,并将生成的信号(例如,减法结果和进位输出)提供给加法器209 的各个组件,以便例如提供尾数对齐,例如参照图3a-b所述和所示。尾数通路304可包括逻辑320和322,它们用于从逻辑310 4妄收 格式转换的操作数,并根据例如从逻辑318进行的指数差计算中生成 的进位输出信号来交换尾数(或提取尾数的一部分)。使用旋转器(例如 逻辑324和326)和掩码生成器(例如掩码生成器336和338)来执行与具 有较小指数的操作数对应的尾数的对齐。在一个实施例中,可使用由 逻辑318生成的一个或多个信号来确定移位码对齐,以便例如使得能 够通过旋转器324和326来将对应于具有较小指数的操作数的尾数向 右循环移位。而且,在一个实施例中,逻辑318向逻辑324和326提 供的移位码信号可以是五位宽。对于双精度和扩展双精度操作数,在 一个实施例中,提供给逻辑324和326的移位码(和/或进位输出)信号 可以相同。另外,逻辑320和322可向反相器328和330以及复用器 332和334提供具有较大指数的操作数306和308的尾数。另外,掩 码生成器336和338可根据来自逻辑318的移位码信号来生成掩码, 以便使得能够将逻辑324和326的输出移动一个或多个位。
如图3a-b所示,逻辑324和326的输出可分别通过逻辑340和342 向左移一个位。具体来说,操作数分析器344可分析操作数306和308, 并且如果操作数之一是不规则的,则生成一个或多个信号以便使得能 够在逻辑340和342中移位。逻辑346在逻辑上组合(例如,通过使用 "与,,运算)掩码生成器336和逻辑340的输出。类似地,逻辑348在 逻辑上组合(例如,通过使用"与"运算)掩码生成器338和逻辑342 的输出。复用逻辑350接收逻辑346和348的输出,并向加法器209 的加法部分355中的每个加法器352和354的输入端之一提供信号。 将参照图4进一步论述与逻辑346、 348和350的一个实施例有关的其 它细节。
如图3a-b所示,加法器352和354还可从复用器332和334接收 输入信号。复用器332和334可根据基于操作码(312)和操作数(例如, 操作数306和308)的符号生成的信号356(Compl一Hi)和358(Compl—Lo) 来选择它们的输入之一,以便由操作码解码器逻辑(未示出)来提供(真正的)减法(例如,相同符号的操作数的减法或者不同符号的操作数的 加法)或(真正的)加法(例如,不同符号的操作数的减法或者相同符号的
操作数的加法)运算。因此,加法器352和354可分别通过例如复用器 332和334来接收对齐和非对齐的尾数,而复用器332和334又可提 供通过逻辑320和322选择的非反相或反相(例如通过反相器328和 330反相)的尾数。加法器352和354还接收进位输入(cany in)信号。 例如,加法器354接收信号358作为进位输入信号,以便例如为真正 的减法情况提供全二的补码。加法器352接收通过复用器362根据操 作码312的精度格式提供的来自加法器354的进位输出(cany out)信号 360或信号356作为其进位输入信号。将加法器352和354的输出提 供给反相器364和366以及复用器368和370。复用器368和370可 分别根据由加法器352和复用器371生成的选择信号来选择它们的输 入信号之一作为输出。在一个实施例中,由于对于真正的减法情况,
可对具有较大或相等指数的操作数的尾数进行二的补码,所以加法的 结果可以为负,并且可进行二的补码。可通过反演加法器352和354 的结果,并使用舍入器硬件(例如逻辑397)将二进制一("1")相加,来 才丸4亍二的补码(two,s complementing)。由于例如力口法器209可支持渐进 下溢,所以加法部分355的指数通路302还可包括用于生成归一化用 的限制器移位值的逻辑372。
将复用器368和370以及逻辑372的输出提供给(加法器209的) 归一化部分373,它包括前导零检测(LZD)逻辑374和376。更具体来 说,通过例如检测由加法器352和354通过复用器368和370提供的 加法结果中的前导零,逻辑374和376可确定用于归一化的移位码。 可将来自逻辑374和376的输出信号连同来自复用器368和370的输 出信号一起提供给逻辑378和380。逻辑378和380可根据逻辑374 和376的输出来执行向左循环移位,以便提供对加法结果的归一化。 如图3a-b所示,可将逻辑374和376的输出提供给指数调节逻辑382 以及掩码生成器384和386。掩码生成器384和386可根据来自逻辑374和376的移位码信号来生成掩码,以便使得能够分别通过逻辑388 和390来对逻辑378和380的输出进行归一化(normalization)。在一个 实施例中,逻辑388和390可在逻辑上组合它们的输入(例如,通过利 用逻辑"与"运算),例如参照逻辑346和348所论述的。可通过复用 逻辑392(例如,在一个实施例中参照逻辑350所论述的)来选择来自逻 辑388和390的输出信号,以便将输出提供给加法器209的舍入部分 393。根据一个实施例,逻辑392可向舍入部分393提供保护位和/或 舍入位。
在一个实施例中,在加法器209的加法部分355中,通过例如在 逻辑上组合(例如,通过逻辑"或"运算)由逻辑346和348提供的移位 输出位,逻辑394和395可计算粘着位(stickybit),这将参照图4进一 步进行^仑述。而逻辑396又可组合逻辑394和395的输出,以便为两 个单精度操作数提供两个粘着位以及为双精度和扩展双精度操作数提 供单个粘着位。将来自逻辑396和392的输出信号提供给舍入器逻辑 397,以便对尾数的加法(或减法)执行舍入。此外,逻辑398可接收来 自逻辑382的指数,并且通过例如在发生上舍入时添加一来修改(或固 定)上舍入情况的指数。另外,逻辑382可根据归一化用的移位码(例如, 由逻辑374和376提供)来调节指数(例如,从逻辑318接收的)。在一 个实施例中,逻辑382可将由逻辑318提供的较大指数减去从逻辑374 和376接收的移位码。因此,在一个实施例中,可对于归一化(例如, 通过逻辑382)和上舍入(round up)情况(例如,通过逻辑398)来校正由 逻辑318提供的较大指数。
在一个实施例中(例如,如图3a-b所示),尾数通路304可包括两 个独立通路,用于处理操作数306和308的最高有效(MS)32位和最低 有效(LS)36位。例如,第一MS32位通路(例如,包括逻辑320、 324、 352和/或378)可对第一组数据(例如, 一对单精度浮点尾数,例如参照 图6中的操作数602所论述)进行操作,而第二 LS 36位通路(例如,包 括逻辑322、 326、 354和/或380)可对第二组数据(可以是一对不同的单精度浮点尾数)进行操作。因此,可在这两个通路中单独处理两^"单 精度尾数。并且,可使用第一和笫二通路的组合来对双精度或扩展双
精度操作数(例如,图6中的操作数630和/或650)进行操作。如图3a-b 所示,逻辑350和392可实现这两个尾数通路之间的信号的组合。
图4示出根据本发明的一个实施例的图3a-b中的加法器209的各 部分的其它细节的框图。如图4所示,可将由逻辑318生成的信号 402-410提供给复用器412-416。可通过根据操作码312的精度格式生 成的信号来选择复用器412-416的输入。分别将复用器412、 414和416 的输出提供给逻辑320、逻辑336和324、以及逻辑338和326。在各 种实施例中,信号402可对应于用于在单精度情况对齐MS 32位的移 位码;信号404可对应于用于在双精度或扩展双精度情况对齐的移位 码;信号406可对应于用于在单精度情况对齐LS 36位的移位码;信 号408可对应于来自第二对单精度数据的指数差的进位输出信号;以 及信号410可对应于来自双精度或扩展双精度数据的指数差的进位输 出信号。
如图4所示,在一个实施例中,逻辑346可包括用于将逻辑340 和336的输出组合的"与"门424和426。类似地,逻辑348可包括 用于将逻辑338和342的输出组合的"与"门428和430。可将门426 和430的输入之一反演(invert),例如如图4所示。另外,"或(OR)" 门434可将门426和428的输出组合(例如,通过在逻辑上对门426和 428的输出进行"或"运算)。此外,逻辑350可包括复用器436-440。 如图所示,复用器436-440的输入可通过信号442来选择,信号442 由逻辑(例如,根据操作码312的精度格式以及来自图3中的318的信 号)生成以指示如何将对齐的尾数与来自存储单元441(在一个实施例 中,它可以是硬件寄存器)以及逻辑424、 434和428的信号进行组合。 此外,复用器436-440可接收来自存储单元441的信号(例如,包含全 零),以便对于指数差大于32位的情况采用零来填充逻辑350的输出 的前32位,或者对于指数差大于64位的情况采用零来填充逻辑350的输出的前64位。逻辑350可釆用68位格式444(在一个实施例中, 它包括最高有效(MS)32位部分446、中间32位部分448和最低有效 (LS)4位部分450)来将复用器436-440的输出提供给加法器352和354, 例如如图4所示。
在各种实施例中,可按照下列情况中的一种或多种情况来提供各 部分446、 448和450:
-如果操作码312对应于单精度格式,并且第二对单精度操作数 (306和308)的指数差(318)小于24,则可由逻辑424通过逻辑436来提 供部分446。类似的情况也可适用于第一对操作数(306、 308);即,可 由逻辑428通过逻辑438来提供部分448。另外,在一个实施例中(例 如,参照图5和图6所论述),每个操作数(306和308)可包括两个单精 度数(例如,opl={xl,xO}, JLop2={yl, yO},其中"{},,表示并置)。 在这样一个实施例中,第一对可对应于xO和yO,而第二对可对应于 xl和yl;
-如果操作码312对应于双精度或扩展双精度格式,并且指数差 (318)小于32,则可由逻辑424来提供部分446,并且可由逻辑434来 提供部分448;
-如果操作码312对应于双精度或者扩展双精度格式,并且指数 差(318)小于64但大于32,则可由存储单元441来提供部分446,并且 可由逻辑424来提供部分448;
-如果操作码312对应于双精度或扩展双精度格式,并且指数差 (318)大于64,则可从存储单元441来提供部分446,可由存储单元441 来提供部分448,并且可由逻辑424来提供部分450。
图5示出#>据本发明的一个实施例的图3a-b中的才喿作数306和308 的示例操作数格式500。图6示出在通过图3a-b中的逻辑310格式转 换图5中的操作数之后、与图5中的格式500对应的格式转换的浮点 加法器操作数格式600。根据本发明的一些实施例来说明图5和图6 中示出的操作数的每个字段的宽度。参照图5,单精度操作数502(在一个实施例中,它可表示两个单 精度浮点数)可包括符号字段504和506、指数字段508和510、以及 尾数字段512和514。并且,双精度操作数520也可包括符号字段522、 指数字段524和尾数字段526。另外,扩展双精度操作数530可包括 符号字段532、指数字段534、 J字段536(它可指示尾数是否是归一化 的)和尾数字段538。 一般来说,J位(536)可对应于尾数的整数部分, 它在单精度和双精度格式中可隐藏。另外,对于不规则数,可将J位 设置为零。
参照图6,单精度操作数602可包括符号字段604(它可对应于符 号字段504)、指数字段606和608(在一个实施例中,它们可对应于字 段508和510)、零字段610(它可对应于符号字段506)、上溢字段612 和614(例如,指示加法器209的通路中的上溢条件)、J字段616和 618(例如,指示对应浮点数是规则的)、以及尾数字段620和622(在一 个实施例中,它们可对应于字段512和514)。并且,双精度操作数630 可包括符号字段632(在一个实施例中,它可对应于字段522)、指数字 段634(在一个实施例中,它可对应于字段524)、上溢字段636(例如, 指示上溢条件)、J字段638(例如,指示对应浮点数是规则的)、以及尾 数字段640(在一个实施例中,它可对应于字段526)。另外,扩展双精 度操作数650可包括符号字段652(在一个实施例中,它可对应于字段 532)、指数字段654(在一个实施例中,它可对应于字段534)、上溢字 段656(例如,指示上溢条件)、J字段658(例如,指示对应浮点数是规 则的)、以及尾数字段660(在一个实施例中,它可对应于字段538)。如 图6所示,操作数602、 630和650的其它字段可以不使用(例如具有 全零)。在一个实施例中,逻辑310可分别将操作数502、 520和530 格式转换为操作数602、 630和650。
图7示出根据本发明的一个实施例用于将浮点数相加和/或相减的 方法的一个实施例的流程图。在一个实施例中,可用不同的浮点表示 格式来表示相加和/或相减的浮点数,例如两个单精度、双精度和/或扩展双精度浮点数(例如,参照图5和图6所论述的浮点数)。在一个实施 例中,可利用参照图l-6和图8-9论述的各种组件来执行参照图7论述 的一个或多个操作。例如,方法700可用于将由诸如高速緩存108、 高速緩存116、存储器114和/或寄存器222的存储单元存储(和/或从其 中读取)的浮点数相加和/或相减。
参照图1-7,在操作702,加法器209可接收操作码312和操作数 306-308。在操作704,逻辑310可将操作数306-308格式转换,例如 参照图3a-b所论述的。在操作706,逻辑318可比较指数,例如参照 图3a-b所论述的。在操作708,可通过对齐部分305来对齐格式转换 后的操作数的尾数。在操作710,可将对齐的尾数进行组合(例如相加 或相减),例如参照图3a-b中的加法部分355所论述的。在操作712, 可通过归一化部分373来将加法器209的加法部分355的结果进行归 一化。然后,在操作714,可通过例如参照图3a-b论述的舍入部分393 来对来自加法器209的归一化部分373的结果进行舍入。
图8示出根据本发明的一个实施例的计算系统800的框图。计算 系统800可包括一个或多个中央处理单元(CPU)802或处理器,它们经 由互连网络(或总线)804进行通信。处理器802可包括通用处理器、网 络处理器(用于处理通过计算机网络803传递的数据)或其它类型的处 理器(包括精筒指令集计算机(RISC)处理器或复杂指令集计算机(CISC) 处理器)。另外,处理器802可具有单核或多核设计。具有多核设计的 处理器802可将不同类型的处理器核集成在同一个集成电路(IC)管芯 上。而且,具有多核设计的处理器802可实现为对称或不对称的多处 理器。在一个实施例中,其中一个或多个处理器802可以与图1中的 处理器102相同或相似。例如,其中一个或多个处理器802可包括一 个或多个核106(例如,包括加法器209)和/或高速緩存108。并且,可 由系统800的一个或多个组件来执行参照图l-7论述的操作。
芯片组806也可与互连网络804进行通信。芯片组806可包括存 储器控制器集线器(MCH)808。 MCH 808可包括与存储器114进行通信的存储器控制器810。存储器114可存储数据,包括供CPU 802或 计算系统800中包含的任何其它装置执行的指令序列。在本发明的一 个实施例中,存储器114可包括一个或多个易失性存储(或存储器)装 置,例如随机存取存储器(RAM)、动态RAM(DRAM)、同步 DRAM(SDRAM)、静态RAM(SRAM)或其它类型的存储装置。还可使 用非易失性存储器,例如硬盘。附加装置可经由互连网络804进行通 信,例如多个CPU和/或多个系统存储器。
MCH 808还可包括与图形加速器816进行通信的图形接口 814。 在本发明的一个实施例中,图形接口 814可经由加速图形端口(AGP) 与图形加速器816进行通信。在本发明的一个实施例中,显示器(例如 平板显示器)可通过例如信号转换器与图形接口 814进行通信,其中信 号转换器用于将存储在诸如视频存储器或系统存储器的存储装置中的 图像的数字表示转换成可由显示器解释和显示的显示信号。由显示装 置产生的显示信号可经过各种控制装置,然后由显示器进行解释并且 随后在显示器上显示。
集线器接口 818可允许MCH 808和输入/输出控制器集线器 (ICH)820进行通信。ICH 820可提供到与计算系统800进行通信的I/O 装置的接口。 ICH 820可通过诸如外围组件互连(PCI)桥、通用串行总 线(USB)控制器或其它类型的外围桥或控制器的外围桥(或控制器)824 来与总线822进行通信。桥824可提供CPU 802与外围装置之间的数 据通路。可使用其它类型的拓朴。而且,多条总线可通过例如多个桥 或控制器来与ICH 820进行通信。另外,在本发明的各种实施例中, 与ICH 820进行通信的其它外围设备可包括集成驱动电子装置(IDE)或 小型计算机系统接口(SCSI)硬盘驱动器、USB端口、键盘、鼠标、并 行端口、串行端口、软盘驱动器、数字输出支持装置(例如数字视频接 口(DVI))或其它装置。
总线822可与音频装置826、 一个或多个磁盘驱动器828和网络 接口装置830(它与计算机网络803通信)进行通信。其它装置可经由总线822进行通信。而且,在本发明的一些实施例中,各种组件(例如网 络#~口装置830)也可与MCH 808进行通信。此外,可将处理器802 和MCH808组合以形成单个芯片。另外,在本发明的其它实施例中, 图形加速器816可包含在MCH808中。
另外,计算系统800可包括易失性和/或非易失性存储器(或存储装 置)。例如,非易失性存储器可包括下列存储器中的一种或多种存储器 只读存储器(ROM),可编程ROM(PROM),可擦除PROM(EPROM), 电EPROM(EEPROM),磁盘驱动器(例如828),软盘,致密盘 ROM(CD-ROM),数字多功能盘(DVD),闪速存储器,磁-光盘,或者 能够存储电子数据(例如包括指令)的其它类型的非易失性机器可读介 质。
图9示出根据本发明的一个实施例按照点对点(PtP)酉己置布置的计 算系统900。具体来说,图9示出其中处理器、存储器和输入/输出装 置通过多个点对点接口互连的系统。可通过系统900的一个或多个组 件来执行参照图l-8论述的操作。
如图9所示,系统900可包括若干个处理器,为了清楚起见,仅 示出其中两个处理器,即处理器902和904。处理器902包括用于实 现与存储器910的通信的本地存储器控制器集线器(MCH)906,处理器 904包括用于实现与存储器912的通信的本地存储器控制器集线器 (MCH)908。存储器910和/或912可存储各种数据,例如参照图8中 的存储器114论述的数据。
在一个实施例中,处理器902和904可以是参照图8论述的其中 一个处理器802。处理器902和904可分别使用点对点(PtP)接口电路 916和918经由PtP接口 914来交换数据。并且,处理器902可使用点 对点接口电路926、 930经由单独PtP接口 922来与芯片组920交换数 据,处理器904可使用点对点接口电路928、 932经由单独PtP接口 924 来与芯片组920交换数据。芯片组920还可使用例如PtP接口电路937 经由高性能图形接口 936来与高性能图形电路934交换数据。可在处理器902和904中提供本发明的至少一个实施例。例如, 图1中的一个或多个核106(例如包括加法器209)和/或高速緩存108可 设置在处理器902和904中。但是,本发明的其它实施例可存在于图 9的系统900的其它电路、逻辑单元或装置中。另外,本发明的其它 实施例可分布在若干个如图9所示的电路、逻辑单元或装置上。
芯片组920可使用PtP接口电路941来与总线940进行通信。总 线940可具有与其通信的一个或多个装置,例如总线桥942和I/O装 置943。经由总线944,总线桥943可与诸如键盘/鼠标945、通信装置 946(例如,调制解调器、网络接口装置或可与计算机网络803进行通 信的其它通信装置)、音频I/O装置和/或数据存储装置948的其它装置 进行通信。数据存储装置948可存储可供处理器902和/或904执行的 代码949。
在本发明的各种实施例中,本文中参照例如图1-9论述的操作可 实现为硬件(例如电路)、软件、固件、微代码或者它们的组合,它们 可作为计算机程序产品来提供,包括例如其中存储了用于将计算机编 程为执行本文论述的过程的指令(或软件过程)的机器可读或计算机可 读介质。并且,举例来说,术语"逻辑"可包括软件、硬件或者软件 和硬件的组合。机器可读介质可包括例如针对图l-9论述的存储装置。 此外,这类计算机可读介质可作为计算机程序产品来下载,其中,程 序可通过在载波或其它传播介质中实施的数据信号、经由通信链路(例 如,总线、调制解调器或网络连接)从远程计算机(例如服务器)传递到 请求计算机(例如客户机)。因此,在本文中,应将载波视为是包括机
器可读介质。
说明书中提到"一个实施例"时表示,结合该实施例描述的特定 特征、结构或特性包含在至少一个实现中。在本说明书的各个位置中 出现短语"在一个实施例中"时可能或者可能不是全部指同一个实施例。
而且,在本描述和权利要求中,可使用术语"耦合"和"连接"及其派生词。在本发明的一些实施例中,"连接"可用来指示两个或 两个以上元件相互直接物理或电接触。"耦合"可表示两个或两个以 上元件直接物理或电接触。但是,"耦合"也可表示两个或两个以上 元件可能不是相互直接接触,而是可能仍然相互配合或交互。
因此,虽然上文用结构特征和/或方法动作特有的语言描述了本发 明的实施例,但是应理解,要求权利的主题可不局限于所描述的特定 特征或动作。确切地说,这些特定特征和动作是作为实现要求权利的 主题的示例形式来公开的。
权利要求
1. 一种处理器,包括第一逻辑(310),用于将第一操作数(306,308)从第一格式(502,520,530)转换成第二格式(602,630,650);以及第二逻辑(352,354),用于将转换后的第一操作数的一部分与所述第二格式的第二操作数的一部分进行组合。
2. 如权利要求1所述的处理器,还包括第三逻辑(318),用于将对 应于所述第一操作数的第一指数与所述第二操作数的第二指数进行比 较。
3. 如权利要求1所述的处理器,其中,所述第二逻辑在与双精度 指数或扩展双精度通路相同的通路(304)中组合多个单精度操作数。
4. 如权利要求1所述的处理器,还包括第三逻辑(310),用于将所 述第二操作数从第三格式转换成所述第二格式。
5. 如权利要求1所述的处理器,其中,所述第二逻辑通过加法运 算或减法运算来组合转换后的第一操作数的所述部分和所述第二操作 数的所述部分。
6. 如权利要求1所述的处理器,还包括第三逻辑(397),用于对通 过所述第二逻辑进行的所述组合的结果进行舍入。
7. 如权利要求1所述的处理器,还包括第三逻辑(344),用于分析 转换后的第 一操作数和所述第二操作数的一部分,以便确定所述第一 或第二操作数其中之一是否对应于不规则操作数。
8. 如权利要求1所述的处理器,还包括一个或多个处理器核 (106),其中所述一个或多个处理器核中的至少一些处理器核包括所述 第 一逻辑或所述第二逻辑中的 一个或多个逻辑。
9. 如权利要求8所述的设备,其中,所述一个或多个处理器核(106) 中的至少一个处理器核、所述第一逻辑和所述第二逻辑在相同管芯上。
10. —种方法,包括将多个操作数修改(704)成相同格式;以及 组合(710)与所修改的多个操作数对应的多个尾数。
11. 如权利要求IO所述的方法,还包括比较(706)所修改的多个 操作数的部分。
12. 如权利要求IO所述的方法,还包括对齐(708)所述多个尾数 的部分。
13. 如权利要求IO所述的方法,还包括对所述多个尾数的组合 结果进行归一化(712)。
14. 如权利要求IO所述的方法,还包括对所述多个尾数的组合 结果进行舍入(714)。
15. —种系统,包括存储器(108, 114, 116),用于存储数据;第一逻辑(202),用于从所述存储器中提取操作码(312)、第一操作 数(306)和第二操作数(308);第二逻辑(310),用于将所述第一操作数和所述第二操作数修改成 相同格式;以及第三逻辑(324, 326),用于根据对应于所述第一操作数的笫一指 数与对应于所述第二操作数的第二指数的比较(318)来对齐所述第一 或第二操作数其中之一。
16. 如权利要求15所述的系统,还包括第四逻辑(352, 354),用 于将所述第一操作数的一部分与所述第二操作数的一部分进行组合。
17. 如权利要求15所述的系统,还包括第四逻辑(344),用于分析所述第一操作数和所述第二操作数的一部分,以便确定所述第一或第 二操作数其中之一是否对应于不规则操作数。
18. 如权利要求15所述的系统,其中,所述存储器包括l级高速 緩存、中间级高速緩存或最后一级高速緩存中的一个或多个高速緩存。
19. 如权利要求15所述的系统,还包括用于访问存储在所述存储 器中的数据的多个处理器核(106)。
20.如权利要求15所述的系统,还包括音频装置(947)。
全文摘要
描述用于执行浮点加法的方法和设备。在一个实施例中,将多个操作数(306,308)格式转换(310)为共有格式(602,630,650)并进行组合(例如,相加或相减)。
文档编号G06F7/48GK101438232SQ200680054583
公开日2009年5月20日 申请日期2006年5月16日 优先权日2006年5月16日
发明者A·Y·西夫特索夫, V·Y·戈什泰因 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1