用于浮点寄存器高速缓存的方法及设备转让专利

申请号 : CN201180059045.0

文献号 : CN103262028B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : J·雷普利

申请人 : 先进微装置公司

摘要 :

本发明提供一种用于浮点寄存器高速缓存的方法及设备。本方法的一实施例包含将通过第一指令集所定义的第一架构寄存器集映射至位于多个实体寄存器外的存储器。该多个实体寄存器是配置成用以映射至该第一架构寄存器集、通过第二指令集所定义的第二架构寄存器集、及重命名寄存器集。本方法的实施例也包含将对应于该第一架构寄存器集的该实体寄存器增加至该重命名寄存器集。

权利要求 :

1.一种用以制造半导体装置的方法,包括:

将通过第一指令集所定义的第一架构寄存器集映射至位于多个实体寄存器外的存储器,其中,该多个实体寄存器是配置成用以映射至该第一架构寄存器集、通过第二指令集所定义的第二架构寄存器集、及重命名寄存器集;以及将对应于该第一架构寄存器集的该些实体寄存器增加至该重命名寄存器集以响应所述映射。

2.如权利要求1所述的方法,其中,映射该第一架构寄存器集的方法包括将该些实体寄存器至该第二架构寄存器集与该重命名寄存器集的映射初始化、将该第一架构寄存器集至位于该多个实体寄存器外的高速缓存的映射初始化、将该第一架构寄存器集重新映射至该些实体寄存器以响应关于来自该第一指令集的指令所需的使用、以及将对应于该重新映射的第一架构寄存器集的该些实体寄存器从该重命名寄存器集删除。

3.如权利要求1所述的方法,其中,将该第一架构寄存器集映射至存储器的方法包括将该第一架构寄存器集映射至位于该多个实体寄存器外的高速缓存。

4.如权利要求1所述的方法,其中,将该第一架构寄存器集映射至存储器的方法包括将该第一架构寄存器集从该些实体寄存器重新映射至该存储器来响应关于来自该第一指令集的指令的使用需求的减少。

5.如权利要求1所述的方法,包括将该第一架构寄存器集从该存储器重新映射至该些实体寄存器,并从该重命名寄存器集删除对应于该重新映射的第一架构寄存器集的该些实体寄存器以响应关于来自该第一指令集的指令的使用需求的增加。

6.一种用于基于处理器的设备,包括:

多个实体寄存器,配置成用以映射至通过第一指令集所定义的第一架构寄存器集、通过第二指令集所定义的第二架构寄存器集、及重命名寄存器集,其中,该第一架构寄存器集是配置成映射至位于该些实体寄存器外的存储器,且其中,该对应的该些实体寄存器是增加至该重命名寄存器集以响应所述映射。

7.如权利要求6所述的设备,其中,该多个实体寄存器是配置成使该些实体寄存器至该第二架构寄存器集与该重命名寄存器集的映射初始化,且其中,该第一架构寄存器集是被映射至位于该些实体寄存器外的存储器,且其中,该些实体寄存器是配置成使该第一架构寄存器集重新映射至该些实体寄存器以响应关于来自该第一指令集的指令的使用需求,且其中,对应于该重新映射的第一架构寄存器集的该些实体寄存器是从该重命名寄存器集删除以响应关于来自该第一指令集的指令的使用需求。

8.如权利要求6所述的设备,包括高速缓存,且其中,该些实体寄存器是配置成使该第一架构寄存器集映射至高速缓存。

9.如权利要求6所述的设备,其中,该些实体寄存器是配置成使该第一架构寄存器集从该些实体寄存器重新映射至该存储器以响应关于来自该第一指令集的指令的使用需求的减少,且其中,该些实体寄存器是配置成使该第一架构寄存器集从该存储器重新映射至该些实体寄存器以响应关于来自该第一指令集的指令的使用需求的增加,以及对应于该重新映射的第一架构寄存器集的该些实体寄存器从该重命名寄存器集删除以响应关于来自该第一指令集的指令的使用需求的增加,且其中,该些实体寄存器是配置成使该第二架构寄存器集从该些实体寄存器重新映射至该存储器以响应关于来自该第二指令集的指令的使用需求的减少,以及对应于该重新映射的第二架构寄存器集的该些实体寄存器映射至该重命名寄存器集以响应关于来自该第二指令集的指令的使用需求的减少。

10.一种用以制造半导体装置且包括如权利要求6至9中的任一项所述的设备的基于处理器的系统。

说明书 :

用于浮点寄存器高速缓存的方法及设备

技术领域

[0001] 本发明一般是关于基于处理器的系统,且更特别是关于在基于处理器的系统中的寄存器缓存(register caching)。

背景技术

[0002] 传统的基于处理器的系统典型地包含一个或多个处理组件,例如中央处理单元(中央处理器)、图形处理单元(GPU)、加速处理单元(APU)等等。该处理单元包含一个或多个处理器核心,该处理器核心是配置成用以读取存储在主存储器中的指令及/或数据,然后执行该指令及/或操作该数据。各处理器核心包含浮点单元,该浮点单元是使用来通过通过执行该指令而在浮点数(floating point number)上执行数学运算。举例而言,传统浮点单元是典型地设计成执行例如加、减、乘、除、及平方根等运算。某些系统也可执行例如指数函数或三角函数计算的各种超越函数(transcendental function)。浮点运算可从在整数上的整数运算分别处理。该浮点单元也可具有用于存储浮点数的特定浮点寄存器集。浮点单元可支持多浮点指令集。举例而言,x86架构指令集包含称为x87的浮点相关的指令子集。该x87指令集包含用于例如加、减及比较的基本浮点运算,以及例如正切与反正切函数的更复杂的数值运算的指令。在x87指令集中的浮点指令可使用架构寄存器集(现有为MMX寄存器),该架构寄存器集可映射至在浮点单元中的实体寄存器(physical register)。对于另一例子而言,包含多处理器核心的计算机可支持单指令、多数据(SIMD)指令集。该x86架构SIMD指令集支持另一浮点相关的指令子集,该指令子集称为单指令多数据流扩展(streaming SIMD extension,SSE)指令集。在SSE指令集中的浮点指令可使用另一架构寄存器集(现有为XMM寄存器),该另一架构寄存器集也可映射至在浮点单元中的实体寄存器。
[0003] 在处理器单元上执行的不同应用程序因此可使用x87浮点指令集、SSE浮点指令集、或该二指令集的组合。因此,用于该二指令集的架构寄存器是映射至在浮点单元中的实体寄存器,以使该二者的架构寄存器集对在处理器单元上执行的应用程序是可用的。将用于二指令集的架构寄存器映射至在浮点单元中的实体寄存器消耗了芯片面积、时间资源、以及电力。随不同应用程序所使用的指令集而定,分配给不同种类的指令集的资源可能未被使用,从而降低该处理器单元的效率。

发明内容

[0004] 本揭示的标的是针对克服或至少降低一个或多个前述问题的影响。为了提供本案一些态样的基本理解,以下提出本发明的简化概要。此概要并非本发明的详尽概述。也非企图识别本发明的关键或重要组件或是描述本发明的范围。其惟一目的是在以简化形式表示一些概念来作为以下讨论的具体描述的前言。
[0005] 在一实施例中,提供一种用于浮点寄存器高速缓存的方法。该方法的一实施例包含将通过第一指令集所定义的第一架构寄存器集映射至位于多个实体寄存器外的存储器。该多个实体寄存器是配置成用以映射至该第一架构寄存器集、通过第二指令集所定义的第二架构寄存器集、及重命名寄存器集。本方法的实施例也包含将对应于该第一架构寄存器集的该实体寄存器增加至该重命名寄存器集。
[0006] 在另一实施例中,提供一种用于浮点寄存器高速缓存的设备。该设备的一实施例包含多个实体寄存器,配置成用以映射至通过第一指令集所定义的第一架构寄存器集、通过第二指令集所定义的第二架构寄存器集、及重命名寄存器集,其中,该第一架构寄存器集该第一架构寄存器集是配置成映像至位于该些实体寄存器外的存储器,且其中,该对应的该些实体寄存器是增加至该重命名寄存器集。
[0007] 其它实施例包含一种计算机可读取媒体。该计算机可读取媒体包含指令,当该指令执行时可配置用以制造可用于浮点寄存器高速缓存的半导体装置的制造工序。所制造的半导体装置包含多个实体寄存器,配置成用以映射至通过第一指令集所定义的第一架构寄存器集、通过第二指令集所定义的第二架构寄存器集、及重命名寄存器集,其中,该第一架构寄存器集该第一架构寄存器集是配置成映像至位于该些实体寄存器外的存储器,且其中,该对应的该些实体寄存器是增加至该重命名寄存器集。在另一个实施例中,提供一种用于浮点寄存器高速缓存的设备。该设备的一个实施例包含浮点单元,配置成用以执行在浮点数上的数值运算;以及多个实体寄存器,实现在该浮点单元中并配置成用以存储浮点数。该设备的实施例也包含存储器,位于该实体寄存器外,其中,该存储器是配置成用以存储浮点数。通过第一指令集所定义的第一架构寄存器集、通过第二指令集所定义的第二架构寄存器集、及重命名寄存器集映射至该多个实体寄存器。该第一架构寄存器集映射至位于该些实体寄存器外的存储器,以使该对应的该实体寄存器增加至该重命名寄存器集。

附图说明

[0008] 本揭示的标的将通过参照与附图结合所得到的下面的详述描述而清楚明白,其中类似的参考编号是用以表示类似的组件,且其中:
[0009] 图1概念性地说明一半导体装置的第一范例实施例;
[0010] 图2A概念性地说明将架构寄存器映射至实体寄存器的第一范例实施例;
[0011] 图2B概念性地说明将架构寄存器映射至实体寄存器以及高速缓存的第二范例实施例;
[0012] 图3概念性地说明用于将架构寄存器映射至实体寄存器的方法的第一范例实施例;
[0013] 图4概念性地说明用于将架构寄存器映射至实体寄存器的方法的第二范例实施例;以及
[0014] 图5概念性地说明用于将架构寄存器映射至实体寄存器的方法的第三范例实施例;
[0015] 虽然本发明可容易作出各种的修改和替代形式,但是在此是由图式中的范例来显示及详细说明本发明的特定实施例。然而,应暸解到此处特定实施例的图式及详细说明并不想要用来限制本发明为所揭示的特定形式,相反的,本发明将涵盖所有落于如所附申请专利范围内所界定的本发明的精神和范围内的修改、等效和替代的内容。
[0016] 符号说明
[0017] 100 半导体装置
[0018] 105 中央处理器
[0019] 110 主存储器
[0020] 115 中央处理器核心
[0021] 120 二级高速缓存
[0022] 125 一级高速缓存
[0023] 130 一级-指令高速缓存
[0024] 135 一级-数据高速缓存
[0025] 140 程序
[0026] 145 译码器
[0027] 150 加载/存储单元
[0028] 155 存储序列
[0029] 160 加载序列
[0030] 165 模拟存储器
[0031] 170 转译后备缓冲区
[0032] 175 浮点单元
[0033] 180 寄存器结构
[0034] 185 实体寄存器
[0035] 200,200(1),200(2),200(3) 架构寄存器
[0036] 205 实体寄存器
[0037] 210 高速缓存
[0038] 300,400,500 方法
[0039] 305,310,315 步骤
[0040] 405,410,415,420 步骤
[0041] 505,510,515,520 步骤
[0042] S1,S2 存储指令
[0043] L1 加载指令。

具体实施方式

[0044] 下面将说明本发明的说明实施例。为达简单易懂的目的,本说明书并未描述在实际执行时的所有特征。然而应理解的是任何如此实际的实施例、多种特定执行结论的发展均必须完成以达成研发者的特定目标,如遵守随着不同执行而改变的系统相关与企业相关的限制。此外,也应理解的是,如此的发展成果可能颇为复杂与费时,但对于可因此受益的本技术领域中具有通常知识者而言却可成为一例行工作。现将参考附图来说明本发明所揭露的主题。各种结构、系统和装置是以示意方式描绘于各图式中而仅用于说明的目的,以便不会被本领域中具有通常知识者所熟知的细节而模糊本发明内容。不过,附图是被包括用来说明与解释本发明的说明性范例。应以本领域的普通技术人员所认定的意义来理解本文中的字与短语。本文前后一致使用的术语以及短语并无暗示特别的定义,特别定义是指与本领域的普通技术人员认知的普通惯用的定义所不同的定义。如果一个术语或短语具有特别定义,也即非为本领域的普通技术人员可理解的意义时,本说明书将会直接且明确的提供其定义。一般而言,本发明是描述其可执行来自多浮点指令集指令的基于处理器的系统的实施例。举例而言,该系统可能可执行来自x87浮点指令集的指令以及来自SSE浮点指令集的指令。各指令集是分配有当执行各种浮点运算时可被指令所使用的一些架构寄存器。该架构寄存器可被映射至实现在基于处理器的系统中或被该基于处理器的系统所使用的实体寄存器集。该实体寄存器也可包含重命名寄存器,该重命名寄存器可被使用来重新命名一个或多个该架构寄存器以使多指令可平行地被执行(例如,同时地),即使该些指令可能涉及相同的架构寄存器。然而,大部分在基于处理器的系统中执行的时间应用程序及/或程序代码使用一个指令集或另一指令集中的任何一个。只有少数的单一应用程序使用该二浮点指令集的组合。关于该些指令集的任一者(较佳的是为预期会最少被使用的指令集)的架构寄存器可卸载至例如高速缓存(cache)或其它寄存器结构的外部存储器。关于该卸载的架构寄存器的实体寄存器可增加至该重命名寄存器集。
[0045] 图1概念性地说明其可形成在半导体晶圆(或晶粒)中或上的一半导体装置100的第一范例实施例。该半导体装置100可使用现有的工序(例如沉积、成长、光刻、蚀刻、平坦化、研磨、退火等)而形成在半导体晶圆中或上。在所说明的实施例中,该装置100包含中央处理器(CPU)105,该中央处理器105是配置成用以存取存储在主存储器110中的指令及/或数据。在所说明的实施例中,该中央处理器105包含至少一个中央处理器核心115,该中央处理器核心115是使用来执行该指令及/或操作该数据。许多基于处理器的系统包含多个中央处理器核心115。该中央处理器105也实现阶层式(或多层次)的高速缓存系统,该高速缓存系统是使用来通过通过在该高速缓存内存储所选择的指令及/或数据,以快速存取该指令及/或数据。然而,受益于本发明的本领域的普通技术人员应了解到该装置100的其它实施例可实现该中央处理器105的不同配置,例如使用外部高速缓存的配置。此外,本发明所描述的技术可应用于其它处理器,例如图形处理单元(GPU)、加速处理单元(APU)等等。
[0046] 所说明的高速缓存系统包含用于存储其是存储于主存储器110中的指令及/或数据的副本的二级(level2,L2)高速缓存120。在所说明的实施例中,该二级高速缓存120是与该主存储器110结合的16路(16-way),以使该主存储器110中的各行(line)可潜在地复制到该二级高速缓存120中并在该二级高速缓存120中形成16条特定的行(其传统上被称为「路」)。然而,受益于本发明的本领域的普通技术人员应了解到该主存储器110及/或二级高速缓存120的其它实施例可使用任何组合而实现。相对于主存储器110,该二级高速缓存120可使用较小或较快的存储器组件而实现。该二级高速缓存120也可逻辑上地及/或实体上地设置成较接近该中央处理器核心115(相对于该主存储器110),以可更快速及/或以更少的潜时(latency)而在该中央处理器核心115及该二级高速缓存120间交换信息。
[0047] 所说明的高速缓存系统也包含一级高速缓存125,该一级高速缓存125是用于存储其为存储于该主存储器110及/或该二级高速缓存120中的指令及/或数据的副本。相对于该二级高速缓存120,该一级高速缓存125可使用较小或较快的存储器组件而实现,以使该中央处理器105可更快速地撷取存储在该一级高速缓存125的行中的信息。该一级高速缓存125也可逻辑上地及/或实体上地设置成较接近该中央处理器核心115(相对于该主存储器110及该二级高速缓存120),以可更快速及/或以更少的潜时而在该中央处理器核心115及该二级高速缓存120间交换信息(相对于与该主存储器110及与该二级高速缓存120的沟通)。受益于本发明的本领域的普通技术人员应了解到该一级高速缓存125及该二级高速缓存120代表一种多层阶层式高速缓存系统的范例实施例。其它实施例可使用不同的多层高速缓存,该等多层高速缓存包含例如零级高速缓存、一级高速缓存、二级高速缓存、三级高速缓存等等的组件。
[0048] 在说明的实施例中,该一级高速缓存125是区分成分别用于存储指令及数据的一级高速缓存,其分别称为一级-指令高速缓存130及一级-数据高速缓存135。将该一级高速缓存125区分或分割为仅用于存储指令的该一级-指令高速缓存130以及仅用于存储数据的该一级-数据高速缓存135,该分割可允许该些高速缓存设置成较接近其可能分别需要指令及/或数据的实体。因此,此配置可降低争用(contention)、行延迟、以及普遍地减少关于该指令及数据的潜时。在一实施例中,交换策略规定在该一级-指令高速缓存130中的行是被来自于该二级高速缓存120的指令所替代,以及在该一级-数据高速缓存135中的行是被来自于该二级高速缓存120的数据所替代。然而,本领域的普通技术人员应了解到该一级高速缓存125的其它实施例可能不会分割成区分的仅指令(instruction-only)及仅数据(data-only)高速缓存130、135。该高速缓存120、125、130、135可通过通过回写(writing back)经修改的(或“脏的”)高速缓存行至该主存储器110而刷新(flushed)并将在该高速缓存120、125、130、135中的其它行无效化。针对通过该中央处理器105所执行的某些指令可能需要高速缓存刷新,例如重置(RESET)或回写无效化(write-back-invalidate,WBINVD)指令。基于处理器的系统使用两种基础存储器存取指令:存储指令,其在例如寄存器的存储器位置中送入(或存储)信息,以及加载(load)指令,其是从存储器位置中读出信息。该中央处理器核心115可执行使用例如加载及存储的指令所形成的程序。在说明的实施例中,程序是存储在该主存储器110中,并且该指令是保持在程序次序中,该次序指出用于该指令的执行的逻辑次序以令该程序正确地运作。举例而言,该主存储器110可存储用于程序140的指令,该些指令包含在程序次序中的存储指令S1、S2以及加载指令L1。受益于本发明的本领域的普通技术人员应了解到该程序140也可包含可在该程序140的程序次序中较早或较晚执行的其它指令。
[0049] 该中央处理器核心115所说明的实施例包含译码器145,该译码器145选择并译码程序指令以使该中央处理器核心115可执行该程序指令。在说明的实施例中,该中央处理器核心115是无序(out-of-order)的处理器,其可以与在相关程序中的指令的程序次序不同的次序来执行指令。举例而言,该译码器145可以L1、S1、S2的次序选择及/或译码来自程序140的指令,该次序是不同于该程序140的程序次序,因为该加载指令L1是在该存储指令S1、S2前被挑选。该译码器145可分送、传送、或提供解碼的指令至加载/存储单元150。在所说明的实施例中,该加载/存储单元150实施一个或多个存储及/或加载序列155、160,该等加载序列是使用来保留该存储指令以及相关数据。在一实施例中,该加载/存储单元150也可实施模拟存储器(emulated memory,E-MEM)165,其可模拟或仿效在该系统100中的其它存储器组件的运作。
[0050] 显示在所说明的实施例中的该存储序列155是使用来保留该存储指令以及相关数据。各存储指令的数据位置是表示为线性地址,该地址可被该中央处理器核心115转译为实体地址以使数据可从该主存储器110及/或该高速缓存120、125、130、135中存取。该中央处理器核心115可因此电性及/或可沟通地耦接至转译后备缓冲区(translation look aside buffer,TLB)170,该转译后备缓冲区保留用来将该线性地址转译为实体地址的信息。当挑选存储指令(例如S1及S2)时,该存储指令确认该转译后备缓冲区170及/或该高速缓存120、125、130、135中该存储指令所使用的数据,然后替代在该存储序列155中的存储指令以等待数据。显示在所说明的实施例中的该加载序列160是使用来保留该加载指令以及相关数据。加载指令的数据也可表示为线性地址,故该中央处理器核心115可使用存储在该转译后备缓冲区170中的数据来将用于加载指令数据的线性地址转译为实体地址。在所说明的实施例中,当挑选加载指令(例如L1)时,该加载指令确认该转译后备缓冲区170及/或该高速缓存120、125、130、135中该加载指令所使用的数据。该加载指令也可使用该实体地址以确认用于地址匹配的该存储序列155。或者,线性地址可使用来确认用于地址匹配的该存储序列155。若在该存储序列155中的地址(线性或实体是取决于实施例而定)匹配通过该加载指令所使用的数据,则后来的存储-至-加载的转发可使用来从该存储序列155将该数据转发至位在该加载序列160中的加载指令。
[0051] 该中央处理器核心115也可实施其它功能组件。在所说明的实施例中,该中央处理器核心115包含浮点单元175,该浮点单元175是在由所执行的指令要求时,使用来执行在浮点数上的数学运算。举例而言,该浮点单元175是设计成带有例如加、减、乘、除、及平方根等运算。该浮点单元175的其它实施例也可实施各种超越函数(例如指数函数或三角函数计算)。该浮点单元175实施包含多个实体寄存器185(仅有一者以可识别的编号指出)的寄存器结构180,该寄存器结构180是用以保留浮点数。该些实体寄存器185可映像至关于或由不同浮点指令集所定义的架构寄存器。在所说明的实施例中,该些实体寄存器185的一部分可映像至由该x87浮点指令集所定义的架构寄存器(MMX),且该些实体寄存器
185的另一部分可映像至由该SSE浮点指令集所定义的架构寄存器(XMM)。该些实体寄存器185的剩余部分可使用作为重命名寄存器(REN),例如,用于支持在无序处理环境中指令的平行及/或同时执行。
[0052] 在一实施例中,由第一指令集所定义的第一架构寄存器集(例如,由该x87浮点指令集所定义的架构寄存器(MMX))可映射至位于该些实体寄存器185外的存储器位置,例如该高速缓存120、125、130、135中的一个或多个或该模拟存储器165。对应于该第一架构寄存器集的该些实体寄存器185可随后增加至该重命名寄存器集。将一些架构寄存器映射至位于该些实体寄存器185外的存储器位置,因而释放额外的寄存器来使用作为重命名寄存器。该额外的重命名寄存器允许系统使用额外的重新命名,该重新命名可通过通过允许同时执行额外的指令以增加该环境的平行性。增加重新命名的数目可能因此增加无序的窗口(window)并增进该系统100的性能。
[0053] 图2A概念性地说明架构寄存器200(1-3)至实体寄存器205的映射的第一范例实施例。在所说明的实施例中,该架构寄存器200包含由该x87浮点指令集所定义的架构寄存器200(1)、配置为用于微编码(microcode)的临时寄存器的架构寄存器200(2)、以及由该SSE浮点指令集所定义的架构寄存器200(3)。举例而言,该架构寄存器200可定义为配置成用以提供位8架构寄存器200(1)、8位架构寄存器200(2)、以及32位架构寄存器200(3)。在所说明的实施例中,该实体寄存器205包含可映射至该架构寄存器200及/或使用作为重命名寄存器的实体,如黑色箭号所指示。举例而言,该实体寄存器205可能包含88个实体,故48个实体可映射至该架构寄存器200,并且其它40个实体可使用作为重命名寄存器。
然而,该架构寄存器200的数目及/或该实体寄存器205的数目是设计选择的问题,并且在其它实施例中可能不同。
[0054] 图2B概念性地说明将架构寄存器映射至实体寄存器以及高速缓存的的第二范例实施例。在所说明的实施例中,该架构寄存器200的一部分被映射至存储器及/或位于该实体寄存器205外的寄存器结构。举例而言,该架构寄存器200的一部分可映射至高速缓存210。如此处所述,该外部的存储器可包含在处理器系统中实施的各种高速缓存、模拟存储器等等。在其它实施例中,映射至该高速缓存210的该架构寄存器200的一部分可包含关于一特定指令集的该架构寄存器200的一部分或全部。举例而言,如图2B所示,由该x87浮点指令集所定义的架构寄存器200(1)可映射至该高速缓存210。
[0055] 然而,受益于本发明的本领域的普通技术人员应了解到该映射仅意图作为说明的用途。在其它实施例中,关于不同指令集的该架构寄存器200可映射至该高速缓存210。此外,一个或多个该架构寄存器200的一部分(包含少于关于特定指令集之全部实体)可映射至该高速缓存210。
[0056] 显示在图2A及2B中的寄存器映射的第一及第二范例实施例可代表该架构寄存器200、该实体寄存器205、及该高速缓存210的两种状态。在一实施例中,该处理器系统可成该些状态中的任一者,例如,取决于关于不同的寄存器及/或指令集的所需使用而定。再者,在一些实施例中,该系统可在该二状态中动态地转换。举例而言,该系统可初始化成说明在图2B中的状态,以使当用于与该架构寄存器200(1)相关的该x87指令集使用需求(demand usage)是比预期小时,额外的重命名存储器是可使用的。为使然而,若该处理器系统判定用于该x87浮点指令集的使用需求已经增加时,则该架构寄存器200的映射可改变以使该系统转换成在图2A中所说明的状态。
[0057] 受益于本发明的本领域的普通技术人员应了解到该寄存器状态的特定集合,以及图2A与图2B所述的状态转变仅意图作为说明的用途。在其它实施例中,可使用表示其它在该架构寄存器200、该实体寄存器205、及该高速缓存210间的映射的状态,并可定义用于在该些状态间转换的其它准则。举例而言,图2A及2B所述的映射是相对有序并可为连续的(sequential)或以区块为基础的(block-based),该映射是从该架构寄存器200至该实体寄存器205及/或该高速缓存210。然而,在其它实施例中,可使用其它映射。举例而言,在该架构寄存器200中的任何实体可映射至在该实体寄存器205及/或该高速缓存210中的任何实体。在某些例子中,该映射可为随机的或基于其它准则。
[0058] 图3概念性地说明用于将架构寄存器映射至实体寄存器的方法300的第一范例实施例。在所说明的实施例中,该实体寄存器是配置成使关于两个或多个不同浮点指令集的架构寄存器可映射至该实体寄存器,并于当该处理器系统执行指令时使用。该实体寄存器也包含可使用作为重命名寄存器的额外的实体。该映射可初始化以使一些该架构寄存器是映射至位于该实体寄存器外的存储器。在所说明的实施例中,可将第一架构寄存器集(从由第一浮点指令集所定义的架构寄存器中提取)映射至高速缓存(在305),该高速缓存是逻辑上及/或实体上位于该实体寄存器外。之后,可将第二架构寄存器集映射至该实体寄存器(在310)。最后,可将未映射的实体寄存器随后增加至该重命名寄存器集(在315),该未映射的实体寄存器是倾向于映射至该第一架构寄存器集,并且该重命名寄存器集是由该实体寄存器所支持。
[0059] 图4概念性地说明用于将架构寄存器映射至实体寄存器的方法400的第二范例实施例。在所说明的实施例中,第一架构寄存器集是卸载至位于该实体寄存器外的存储器。举例而言,该架构寄存器集的映射可已经依据图3所述的技术的实施例而初始化。可监控用于通过不同浮点指令集所定义的指令的使用需求(在405)。只要没有在针对关于该第一架构寄存器集的该第一指令集中的指令的需求,或该使用需求保持在阀值下(在410),该系统可保持该初始及/或目前的映射并持续监控用于不同指令集的使用需求(在405)。
当用于在该第一指令集中的指令的使用需求上升(在410)至阀值上时,可修正该寄存器的映射。在一实施例中,该阀值可设为零以令使用来自该第一指令集的任何指令可触发重新映射。或者,该阀值可设为非零数值,其表示可触发重新映射的一定水平的使用需求。当该使用需求是大于该阀值(在410)时,该第一架构寄存器集可映射或重新映射(在415)至该实体寄存器。举例而言,关于该第一指令集的使用需求可触发错误,例如微编码错误,该微编码错误允许该架构寄存器集从外部高速缓存映射回(在415)该实体寄存器。存储在该外部高速缓存中的该架构寄存器的内容也可写入该实体寄存器中的适当位置。该已经映射或重新映射(在415)至该第一架构寄存器集的该实体寄存器可随后从该实体寄存器所支持的重命名寄存器集中删除(在420)。在该浮点单元中使用例如E-MEM的侧边寄存器(side register)结构的其它实施例中,可能不会触发错误或休眠(rest)。相反地,通过通过具有较少扰乱的浮点架构可内部处理该重新映射(在415)。举例而言,浮点单元可强加一些暂停并直接复制在该实体寄存器及该区域性侧边寄存器结构间的信息。图5概念性地说明用于将架构寄存器映射至实体寄存器的方法500的第三范例实施例。该方法500的第三范例实施例可配独立使用、结合、同时、及/或附加在图4所述的该方法400的第二范例实施例而使用。在该第三范例实施例中,用于两种不同浮点指令集的架构寄存器已经映射至该实体寄存器。举例而言,该架构寄存器可能已经依据图3所述的技术的实施例而初始化,并随后被重新映射至该实体寄存器以响应如图4所述的使用需求的变化。然而,该架构寄存器至该实体寄存器的映像不需要对应于该图4所讨论的状态,该系统也不需要跟随在图3至4中所讨论的路线以达到可利用该方法500的实施例的状态。在其它实施例中,不管该架构寄存器至该实体寄存器的特定映射为何,该方法500可被使用。
[0060] 可监控用于通过不同浮点指令集所定义的指令的使用需求(在505)。只要用于关于该第一架构寄存器集的该第一指令集中的指令的使用需求保持高于阀值(在510),该系统可保持目前的映射并持续监控用于不同指令集的使用需求(在405)。在一实施例中,该阀值可设为零以令当使用需求落到零以下时可触发重新映射。或者,该阀值可设为非零数值,其表示可触发重新映射的一定水平的使用需求。在另一实施例中,当该使用需求是落到该阀值下的一段选定的时间或周期数目时,可触发重新映射。举例而言,若经过所选定的时间周期的数目(例如10K个周期),并且配置给该x87指令集的寄存器或配置给该SSE指令集的寄存器没有正在使用,这样可强迫产生错误,而现在没有正在使用的寄存器是从类型保存,并随后可继续处理。然而,若该浮点单元并未正在执行任何指令,则不须权衡性能并因此可不需要强迫保存。当该使用需求已落到该阀值下(可能是一段选定的时间间隔)时,该第一架构寄存器集可映射至位于该实体寄存器外的存储器(在515),例如为高速缓存。存储在该重新映射的实体寄存器中的信息也可从该实体寄存器复制或写入至通过该映像(在515)所指定的高速缓存实体。关于缓存的第一集合的实体寄存器可随后增加至可用的重命名寄存器集(在520)。用于未正在使用(或正使用在相对低的使用需求)的指令集的重新映射(在515)的架构寄存器可因此增加重命名寄存器的可用数目,造成该系统的整体表现提升。举例而言,当重命名寄存器的可用数目增加时,可增加可实施无序执行的用于处理器的无序窗口。
[0061] 可依据各种处理器设计而在半导体制造工具中制造支持如本文所述的浮点寄存器高速缓存的处理器系统的实施例(例如该处理器系统100)。在一实施例中,处理器设计成可表示为存储在计算机可读取媒体中的编码。可使用来定义及/或表示该处理器设计的范例编码可包含HDL、Verilog等等。该编码可由工程人员撰写、由其它处理装置合成、以及使用来产生该处理器设计的中介表示法,例如,netlist、GDSII等等。该中介表示法可存储在计算机可读取媒体中并用来配置及控制在半导体加工设备中执行的制造/加工工序。该半导体加工设备可包含用于执行沉积、光刻、蚀刻、研磨/平坦化、量测、及其它用以在半导体基板上形成的晶体管及其它电路的工序的工序工具。可配置并使用该中介表示法(例如,透过使用从该GDSII数据所产生的屏蔽)来操作该工序工具。
[0062] 本发明的一部分和相关描述是以软件或是对计算机存储器内的数据位进行运算的符号表示法与算法表示。这些描述和表示法可让本领域的普通技术人员将其工作本质有效地传递至另一本领域的普通技术人员。在此广泛使用的术语-算法,其通常认为是导致期望结果的自相一致(self-consistent)次序的步骤。该等步骤是这些物理量所需的物理操作方式。通常,尽管非必要,但这些量是可采用可存储、传送、组合、比较或操作的光学、电子、磁性讯号的形式。大部分就惯用情况而言可以证明,将这些讯号称为位、数值、组件、符号、特性、术语、数字或类似者有时是便利的。
[0063] 然而,应谨记在心的是,这些或类似术语是与适当物理量相关联以及仅为应用在这些量的便利标记。除非明确陈述或从讨论中显而易知,例如术语“处理”、“运算”、“计算”、“决定”、“存取”、“显示”或其它类似涉及计算机系统或类似电子运算装置的动作和程序,其将计算机系统的寄存器和存储器内表示为物理、电子数量的数据予以操控并转换为类似在计算机系统存储器或寄存器,或在其它此种信息存储、传送或显示装置内同样表示为物理量的其它数据。
[0064] 也应注意本发明的软件实作态样的典型编码是在某些形式的程序存储媒介上或是通过某些类型的传输媒介而予以实作。该程序存储媒介可以是磁性的(如软盘片或硬盘)或光学的(如只读光盘“CDROM”),也可以是只读或随机存取。类似地,传输媒介可以是双绞线、同轴缆线、光纤或所属领域已知的一些其它适当传输媒介。本发明并不受限于任何给定实作的这些态样。
[0065] 以上所揭示的特定实施例仅为说明,因为对于受惠于此处的揭示内容的本领域的普通技术人员而言,本发明可以不同但等效的方式进行修饰或实施是显而易见的。再者,除了如所附的权利要求所描述的,并未意图对在此显示的架构或设计的细节进行任何限制。因此,显然以上所揭露的特定实施例可以改变或修饰,而所有此等变化都是视为落于本发明的范围与精神内。因此,在此所想要保护的范围是与所附的权利要求所提出的相同。