首页> 中国专利> 基于已知的处理器状态而选择性地启用内容可寻址存储器重命名寄存器文件中的比较器的功率节约方法和设备

基于已知的处理器状态而选择性地启用内容可寻址存储器重命名寄存器文件中的比较器的功率节约方法和设备

摘要

本发明描述一种用于节约功率的复合重命名寄存器文件。映射单元将指令寄存器号(IRN)变换为逻辑寄存器号(LRN)。所述重命名寄存器文件将LRN映射到物理寄存器号(PRN),从而存在数目大于通过直接使用所述IRN可寻址数目的物理寄存器。所述重命名寄存器文件使用内容可寻址存储器(CAM)来提供所述映射功能。所述重命名寄存器文件CAM进一步使用当前的处理器状态信息来选择性地启用标记比较器,以使存取寄存器过程中的功率最小化。当不启用标记比较器时,所述标记比较器维持在低功率状态。本发明还描述一种使用具有低功率特征的重命名寄存器文件的处理器。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-02-28

    未缴年费专利权终止 IPC(主分类):G06F 1/32 专利号:ZL2006800135962 申请日:20060303 授权公告日:20140416

    专利权的终止

  • 2014-04-16

    授权

    授权

  • 2008-06-11

    实质审查的生效

    实质审查的生效

  • 2008-04-16

    公开

    公开

说明书

技术领域

本发明大体上涉及用以减小处理器中的功率的技术,且更明确地说,涉及用于基于 已知的处理器状态而选择性地启用内容可寻址存储器(CAM)重命名寄存器文件中的比 较器的有利技术。

背景技术

为了实现高性能的程序执行,处理器实施方案可使用以高时钟速率并以短持续时间 管线级操作的管线。用于这类处理器的指令集架构还可指定待由执行单元使用的一组通 用寄存器作为数据源和结果目的地。每一指令包含位字段作为指令编码的一部分,所述 位字段指定待用作源或目的地操作数的寄存器的地址。这些寄存器说明符被称作指令寄 存器号(IRN)。依据处理器的操作状态,可由执行单元使用的通用寄存器组可发生变化。 举例来说,在特定操作模式中执行的程序可能被限制为使用仅可存取全部组通用寄存器 中的子集的指令。处理器还可支持在管线执行期间并在以编程次序完成指令之前无序地 执行指令。为了支持较深管线无序执行,处理器可实施比可由处理器的指令集架构支持 的物理寄存器数目更大数目的物理寄存器。通常将通过使用物理寄存器号(PRN)地址 来存取寄存器文件中实施的物理寄存器。但对于直接使用PRN地址的指令来说存在困难。 举例来说,可用64个物理寄存器的PRN地址空间来实施支持IRN地址空间为16个寄存 器的指令集架构的处理器。为了解决IRN地址空间与PRN地址空间之间的这种差异,处 理器可使用重命名硬件来将指令中含有的IRN地址映射到物理寄存器号(PRN)地址。 可通过使用具有标记、标记比较器和数据阵列的内容可寻址存储器(CAM)来完成这种 映射。重命名硬件可将IRN地址用作标记,以用于CAM数据阵列中存储的物理寄存器。

使用CAM用于此类目的的问题在于,一般CAM实施方案中的CAM标记比较器在 每次寄存器文件存取时都进行评估。对于高性能的实施方案,CAM比较器是动态设计, 且在它们预充电和放电时消耗功率。此外,由于寄存器文件通常是多端口结构,所以每 一端口上存在多个CAM比较器,从而进一步增加了功率汲取。

发明内容

在本发明的若干方面中,本发明认为需要一种提供受低功率内容可寻址存储器 (CAM)控制的寄存器文件的技术。在一个方面,所述控制技术使用存储在CAM中的 标记,所述标记是CAM的元件的地址,且所述标记在标记内具有描述处理器的操作状态 的属性。标记比较器将所述标记与由处理器产生的地址进行比较。操作状态比较器将所 述属性与处理器的当前操作状态进行比较,以确定是启用还是禁用所述标记比较器。

另一方面提出一种在基于内容可寻址存储器(CAM)的寄存器文件中选择寄存器地 址比较器以将其禁用的方法。在这种方法中,基于结合基于CAM的寄存器文件利用的处 理器的状态的知识,识别在给定存取时不可能匹配的寄存器地址比较器。识别出的寄存 器地址比较器经控制,以使得它们进入低功率状态。如下文进一步详细描述提出本发明 的其它方面。

从以下具体实施方式和附图中将获得对本发明的更完整理解,以及了解本发明的另 外的特征和优点。

附图说明

图1是其中可有利地采用本发明的实施例的示范性无线通信系统的说明;

图2是根据本发明的复合处理器的方框图;

图3A是根据本发明用于在复合重命名寄存器文件中将指令寄存器号(IRN)映射到 物理寄存器号(PRN)的示范性设备的说明,所述复合重命名寄存器文件具有重命名寄 存器文件、映射单元、当前处理器状态寄存器(CPSR)和执行单元;

图3B是根据本发明用于在具有多个端口地址的复合重命名寄存器文件中将IRN映 射到PRN的示范性设备的图形说明,所述复合重命名寄存器文件具有重命名寄存器文件、 多个映射单元、CPSR和执行单元;

图4是根据本发明用于选择性地启用重命名寄存器文件中的内容可寻址存储器 (CAM)标记比较器的过程的图形说明;以及

图5是根据本发明用于在复合重命名寄存器文件中将指令寄存器号(IRN)映射到物 理寄存器号(PRN)的另一示范性设备的图形说明,所述复合重命名寄存器文件具有重 命名寄存器文件(标记中具有有效位和最近使用的位)、映射单元、CPSR和执行单元。

具体实施方式

现将参看附图更充分地描述本发明,附图中展示本发明的若干实施例。然而,本发 明可以各种形式体现,且不应理解为限于本文陈述的实施例。事实上,提供这些实施例 以使得本揭示案将详尽且完整,且将向所属领域的技术人员充分传达本发明的范围。

根据本发明的教示,可用高级编程语言(例如,C、C++、JAVA、Smalltalk、 JavaScript、Visual Basic、TSQL、Perl)或用各种其它编程语言来初始编写用于操作 或用于实行操作的计算机程序代码或“程序代码“。用这些语言中的一者编写的程序被 编译到目标处理器架构。也可用本机汇编语言直接编写用于目标处理器架构的程序。本 机汇编程序使用机器层二进制指令的指令记忆表示形式。本文所使用的程序代码或计算 机可读媒体是指格式可由处理器理解的机器语言代码,例如目标代码。

图1展示其中可有利地采用本发明的实施例的示范性无线通信系统100。出于说明 的目的,图1展示三个远程单元120、130和150,以及两个基站140。将认识到,典型 的无线通信系统可具有更多的远程单元和基站。远程单元120、130和150分别包含硬件 组件125A、125B和125C,其根据本发明执行程序代码。图1展示从基站140到远程单 元120、130和150的前向链路信号180,以及从远程单元120、130和150到基站140 的逆向链路信号190。

图1中,在无线本地环路系统中,远程单元120展示为移动电话、远程单元130展 示为便携式计算机,且远程单元150展示为固定位置远程单元。举例来说,所述远程单 元可为手持式个人通信系统(PCS)单元、例如个人数据助理的便携式数据单元,或例 如仪表读数设备的固定位置数据单元。尽管图1说明根据本发明的教示的远程单元,但 本发明不限于所说明的这些示范性单元。本发明可适当地用于使用具有基于CAM的重命 名寄存器文件和指令集架构的管线处理器的任何硬件组件中,所述指令集架构依据处理 器的操作模式来限制操作数寄存器地址空间。

图2展示其中可采用本发明的实施例的复合处理器200的方框图。复合处理器200 可适当地用于硬件组件125A-C中以用于执行程序代码。复合处理器200包含管线处理器 210、层1(L1)数据高速缓冲存储器212、L1指令高速缓冲存储器(Icache)214、层2 指令和数据高速缓冲存储器(L2高速缓冲存储器)216,和系统存储器接口218。为了清 晰地论述本发明,未展示可连接到复合处理器的外围装置。处理器210直接耦合到来自 层级存储器组织的L1数据高速缓冲存储器212和L1 Icache 214,处理器210分别从所述 L1数据高速缓冲存储器212和L1 Icache 214检索数据和指令。

处理器的指令集架构可具有32位指令格式,其具有4位寄存器操作数地址字段(本 文中称为指令寄存器号(IRN)字段),所述4位寄存器操作数地址字段的每一4位IRN 识别多达十六个寄存器。指令集架构可进一步界定其中指令的4位IRN涉及不同的寄存 器的操作模式。举例来说,IRN 8-14可根据处理器的操作模式而涉及不同的寄存器。由 于解译指令中的IRN的过程中的此种变化形式,处理器中所需的寄存器的数目大于4位 IRN将会指示的寄存器的数目。举例来说,在处理器的各种操作模式中,可能必须要寄 存器文件中的32个寄存器来支持可由指令的4位IRN字段寻址的所有寄存器。同一处理 器还可支持使用3位IRN的指令格式,例如以16位指令格式。因为3位和4位IRN不 足以指定实例处理器210可承担的所有可用的32个寄存器,所以在映射功能222中使用 处理器的操作模式220的编码,以将IRN变换为5位逻辑寄存器号(LRN)。5位LRN 允许在寄存器文件中寻址所述架构的界定组的寄存器。一般来说,映射功能222并非将 操作模式位与IRN简单地串接,因为IRN空间的子集可映射到不同的寄存器。举例来说, 处理器的架构可依据操作模式而指定IRN R14以映射到多个不同的寄存器。

在典型使用中,可预期处理器210在一般用户模式中主要执行用户的应用程序代码。 较不频繁的情况是,处理器210在不同的操作模式(例如,监督模式或其它模式)中执 行代码(例如)以处置中断或异常。为频繁使用的用户模式提供有效支持对于减少功率 的操作是有利的。出于高效原因,处理器210的用户模式对具有映射到0-15范围内的LRN 的IRN的寄存器指定寄存器空间的受限使用。其它操作模式(换句话说,非用户模式) 利用LRN范围为0-31内的寄存器。因此,当处理器210处于用户模式中时不存取LRN 范围为16-31内的寄存器。一般将IRN映射到LRN需要了解处理器的操作模式,其可由 当前处理器状态寄存器(CPSR)230的位字段编码220界定。举例来说,通过使用CPSR 230将操作数地址信号224上提供的4位IRN适当地变换为5位LRN以作为读取端口地 址输出226。将认识到,虽然在特定情形中描述了本发明,但本发明将适用于其它操作 模式和不同于特定描述的寄存器分配方案的寄存器分配方案。

在管线处理器(例如,处理器210)中,所实施的物理寄存器的数目大于指令集架 构所支持的数目。在处理器210中具有大量物理寄存器的一个结果是,可在唯一物理寄 存器中同时保持同一指令指定的寄存器的多个值。通过这种方法,可解决指令之间的许 多数据相依性,从而在不需要停止管线的情况下打破了循序执行的障碍,且进而改进了 性能。

处理器210由指令对准单元232、解码单元234、重命名寄存器文件238、当前处理 器状态寄存器(CPSR)230和多个执行单元(出于清晰说明起见,仅展示单个执行单元 244)组成。在指令对准单元232中经由接口240从存储器层级接收指令。在适当地对准 指令之后,在解码单元234中对其进行解码。解码操作利用控制信号242来向执行单元 244提供控制信息。利用操作数地址信号224来向映射单元222提供源和目标操作数IRN 地址。映射单元222基于当前的处理器状态将每一操作数IRN地址映射到LRN。举例来 说,对于32位指令,4位A3-A0操作数源IRN地址被转换为5位A4-A0 LRN。类似地, 对于16位指令,如处理器的指令集架构所界定,3位IRN被转换为由当前处理器状态确 定的5位LRN。重命名寄存器文件238还从CPSR 230的CPSR输出246接收当前处理 器状态位。

重命名寄存器文件238将LRN映射到物理寄存器号(PRN)。PRN用于存取适当的 寄存器值,且在读取输出端口250上输出PRN寄存器中存储的值。并且,当发出指令时, 在重命名寄存器文件238中标记结果寄存器。在指令执行结束时(可能在许多执行管线 级之后),由执行单元244产生的结果在输出总线258上被发送到重命名寄存器文件238, 存储在先前标记的结果PRN地址处。

图3A说明用于在复合重命名寄存器文件300中将指令寄存器号(IRN)映射到物理 寄存器号(PRN)的示范性实施例,所述复合重命名寄存器文件300具有重命名寄存器 文件238、映射单元301、CPSR 240和执行单元244。重命名寄存器文件238含有CAM 物理寄存器文件(PRF)302,和用于寄存器文件的单个读取端口的CAM标记阵列304。 映射单元301基于CPSR状态307将端口A IRN输入305上提供的IRN映射到LRN输出 306上的LRN。CAM PRF 302所保持的寄存器的数目大于处理器的架构所指定的数目, 例如64个寄存器,每一者可由PRN 308寻址。CAM标记阵列保持64个标记(例如,标 记310),和与每一标记相关联的比较逻辑(例如,“或”门312),以及比较逻辑314。 标记和标记比较逻辑一起被称作标记功能316。在CAM标记阵列304中,每一标记(例 如,标记310)存储5位LRN,A4-A0。在CAM PRF 302中,标记与寄存器(例如,寄 存器i318)相关联。在典型的CAM中,用于所有标记的比较逻辑可操作以将传入的地 址与所有标记进行比较,以确定传入的地址与所存储的标记之间是否匹配。在本发明的 有利的CAM标记阵列304中,基于处理器的操作状态选择性地启用比较逻辑以用于比较。 如果未启用标记比较逻辑,那么其处于低功率状态。

解码(例如图2的解码级234所执行的解码)之后,将所产生的LRN输出306输入 到CAM标记阵列304。CPSR 240输出非用户模式信号322,所述非用户模式信号322也输入到CAM标记阵列304。非用户模式信号322和5位操作数LRN输 出306输入到每一标记功能,例如标记功能316。在每一标记功能中,信号322与存储 在标记中的5位LRN的最高有效位的反转值进行“或”运算。举例来说,在标记功能316 中,信号322和非A4324输入到“或”门312。A3-A0位存储在标记310的4 位地址区段330中。“或”门(例如,“或”门312)的用途是产生启用每一标记功能中 的比较逻辑的信号。对于本实例的处理器210来说,如果处理器不在用户模式中,那么 每一标记功能中的所有比较逻辑均可操作。

在标记功能316中,当处理器不在用户模式中时,非用户模式信号322为1且“或” 门312的输出为1,从而启用比较器314。如果处理器在用户模式中,那么信号322 将为0。如果标记地址A4的最高有效位为0,那么非A4信号334将为1,且接着“或” 门312将输出为1的启用信号332,以启用用于具有等于0的A4的LRN 0-15的比较逻 辑314。或者,如果处理器在用户模式中,那么信号322将为0,且如果LRN标记地 址A4的最高有效位为1,那么对于LRN16-31,非A4信号334将为0,且接看“或” 门312将输出为0的启用信号332,从而使比较逻辑314处于低功率状态。由以下等式 给出启用信号332逻辑函数:其中符号v代表逻辑“或”运 算。函数使用以下等式等效于“与非”实施方案:(A4^U)= 启用信号332,其中符号代表逻辑“非”运算,其反转括号中的值,且符号^代表逻辑 “与”操作。

依据比较逻辑实施方案,禁用信号可用作上述启用信号332的替代形式。可通过用 “与”门取代“或”门312并提供A4信号作为一个输入且提供用户模式U信号作为第 二输入而获得禁用信号,如以下等式给出:A4^U=禁用信号。在此情况下,禁用信号 将仅在处理器在用户模式中且标记LRN在16-31之间时有效。

当启用标记比较逻辑且在5位操作数LRN地址306与所存储的LRN标记A4 324 A3-A0 330之间存在匹配时,认为已发生命中。由命中信号340逻辑上指示的命中情形 导致从CAM PRF 302存取与所匹配的标记相关联的PRN寄存器318,且在读取端口344 上输出作为对执行单元244的输入。

图3B说明在具有多个端口地址305和355的复合重命名寄存器文件350中将IRN 映射到PRN,所述复合重命名寄存器文件350具有重命名寄存器文件358、多个映射单 元301和360、CPSR240和执行单元244。虽然在图3B中仅展示重命名寄存器文件358 的两个操作数读取端口,但应了解,复合重命名寄存器文件350可经扩展以支持额外的 操作数读取端口,例如处理器中的六个同步读取端口。

对于每一读取端口,提供单独的映射单元,例如将端口A IRN 305映射到输出306 上的LRN的映射单元301,和将端口B IRN 355映射到输出364上的LRN的映射单元 360。读取端口A(RPA)368和读取端口B(RPB)370是启用信号,其用于标记功能启 用逻辑“与”门372和374中以当不使用读取端口时分别禁用比较器314和376。

标记310将地址位A4 324和A3-A0 330供应给比较器314和376两者。如果启用信 号RPA368和RPB370是有效的,从而指示将使用读取端口,那么使用依据最高有效位A4和CPSR操作模式U而启用两个比较器,从而向两个比较器 提供与先前关于图3A的复合重命名寄存器文件300所描述的相同的功率节约特征。在每 一标记具有多个比较器的情况下,可能在许多算术运算中发生多个命中(例如,命中信 号340和380),例如当进行乘法R7*R7以获得R72时发生。在多个命中的情况下,同一 寄存器(例如,寄存器i318)输出到多个端口,例如读取端口A344和读取端口B384。

图4说明根据本发明用于选择性地启用重命名寄存器文件中的内容可寻址存储器 (CAM)标记比较器的过程400。当发出指令且所述指令指定从重命名寄存器文件(例 如,重命名寄存器文件358)读取源操作数IRN时,发生第一步骤405。在下一步骤410 中,依据由当前处理器状态寄存器(CPSR)(例如,CPSR240)提供的处理器的操作模 式,在映射单元(例如,映射单元301)中将IRN映射到LRN。在步骤415中,通过使 用CAM标记阵列(例如,CAM标记阵列304)中的读取端口启用信号来选择适当的读 取端口CAM标记功能(例如,标记功能316)。在步骤420(其在所有选定的读取端口标 记功能上并行发生)中,标记的最高有效位(msb)和来自CPSR的用户模式(U)两者 均被测试为有效,均为1。如果在标记功能中标记msb和用户模式均有效,那么在步骤 425中,标记功能禁用CAM标记比较器。在步骤430中,对于每一被禁用的CAM标记 比较器,标记功能停止,且被禁用的比较器维持在低功率状态。

如果步骤420中在标记功能中标记msb和用户模式均不有效,那么在步骤435中标 记功能禁用CAM标记比较器。在步骤440(其在所有启用的CAM标记比较器上并行发 生)中,比较器(例如,比较器314)将LRN与标记(例如,标记310)进行比较。如 果LRN不与标记匹配,那么在步骤445中标记功能停止。如果LRN确实与标记匹配, 那么发生命中(例如由命中信号340所指示),且在步骤450中,从物理寄存器文件(PRF) (例如,CAM PRF 302)中读出与标记相关联的物理寄存器。经由读取端口(例如,读 取端口344)将读出的寄存器值供应给适当的执行单元(例如,执行单元244)。

图5说明在复合重命名寄存器文件500中将指令寄存器号(IRN)映射到物理寄存器 号(PRN)的另一方面,所述复合重命名寄存器文件500具有重命名寄存器文件538(标 记(例如,标记510)中具有有效位502和最近使用(MR)位504)、映射单元301、CPSR 240和执行单元244。有效位502指示当有效位为0时与标记相关联的PRN寄存器无效。 当有效位为0时,比较逻辑不被启用且维持在低功率状态。MR位504指示与标记相关 联的PRN寄存器是否保持最近产生的值。当发出指定结果LRN的指令时,分配物理寄 存器条目以接收数据值,且用LRN写入标记。当在管线中更远处若干循环之后写入结果 数据时,通过为所述条目设定MR位而将标记标绘为最近的。并且,为先前含有所述特 定LRN地址的最近的数据值的条目重设MR位504。如果对于特定条目,MR位504为 0,那么不启用用于所述条目的比较逻辑,且将比较逻辑保持在低功率状态。

复合重命名寄存器文件500类似于图3的复合重命名寄存器文件300,但添加了有 效位502、MR位504和用于启用比较逻辑的新的逻辑。新的逻辑在“或”门312与比较 逻辑314之间采用三输入“与”门520。对“与”门520的一个输入是MR位504,第二 输入是有效位502,且第三输入是“或”门输出332。只要对“与”门520的三个输入中 的至少一者是0,比较逻辑就保持在低功率状态。为了启用比较逻辑,数据值318必须 有效,V=1,最近数据MR=1,且“或”门312输出必须为1,从而允许“与”门输出 524为1,并启用比较逻辑314。

由于平均来说用户模式是操作过程中最常使用的模式,且用户模式将寄存器地址空 间限制为0-15,所以通常不启用用于每一读取端口的CAM标记阵列304中的64个比较 逻辑函数中的48个比较逻辑函数,且所述48个比较逻辑函数保持在低功率状态。这与 不管处理器的操作模式如何每次存取时均利用所有64个比较逻辑函数的设计相比,提供 了CAM标记阵列功率的显著节约。

使用“或”门312的替代方法是在每一标记功能(例如,标记功能316)中实施模 式选择(MS)锁存器。可在处理器执行的每一模式改变时(其为相对不太频繁的事件) 设定或重设MS锁存器,且如此改变MS锁存器的状态会消耗一个循环或两个循环,从 而需要遵守较小的模式改变等待时间。一旦进入新的处理器模式,每一标记条目将评估 新的模式,并适当地设定或重设MS锁存器。因而,如果因为仅可通过除当前处理器模 式以外的模式存取条目而导致条目不能匹配,那么可使用MS锁存器输出将比较逻辑保 持在低功率状态。

虽然已在当前优选的情形下揭示了本发明,但将认识到,本发明教示可适于与本揭 示案和所附权利要求书一致的多种情形。

举例来说,在依据操作模式将寄存器文件的使用划分为专门组的寄存器的替代架构 中,可使用多个重命名寄存器文件。可用两个不同的操作模式来界定无序执行的深管线 处理器。举例来说,可采用两个操作模式(例如,用户模式和监督模式)来处置系统、 中断和异常。在处理器实施方案中,一个重命名寄存器文件可用于用户模式,且一个重 命名寄存器文件可用于监督模式。对于这种替代架构,用户模式支持指令集所指定的16 个寄存器。由于无序执行和较深管线的缘故,用户模式重命名寄存器文件将需要额外的 寄存器(例如,16个额外的寄存器)以支持运行中的指令。在监督模式中,由于无序执 行和较深管线的缘故,监督模式重命名寄存器文件将支持单独组的16个架构型寄存器, 且具有16个运行中的寄存器。将在用户模式重命名寄存器文件中使用总共32个用户模 式物理寄存器。将在监督模式重命名寄存器文件中使用总共32个监督模式物理寄存器。 在操作中,依据操作模式,仅一个重命名寄存器文件将有效,且另一重命名寄存器文件 将处于低功率状态。所属领域的一般技术人员将了解适合特定设计应用的其它此类修改 和调适。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号