用于提供高能效寄存器堆的方法及系统的制作方法

文档序号:6569155阅读:241来源:国知局
专利名称:用于提供高能效寄存器堆的方法及系统的制作方法
技术领域
本发明大体来说涉及寄存器堆,且更具体来说涉及用于提供高能效寄存器堆的方 法及系统。
背景技术
嵌入式处理器设计通常包括临时存储装置,例如指令高速缓冲存储器、数据高速 缓冲存储器及寄存器堆等。这些存储组件为通过减少所述处理器必需存取更慢的外部 存储器的次数来增加所述处理器的速度的相对小、高速存储器。遗憾的是,由于切换 电容负载,这些存储组件趋于消耗大量功率。更大组件趋于比更小组件切换更多的电 容负载,且因此消耗更多功率。举例来说,在指令及数据高速缓存之后,用作通用寄 存器的寄存器堆通常趋于比嵌入式处理器设计中的多数其它更小组件消耗更多的功 率。当执行指令时,首先从对应的寄存器堆检索适当的源操作数。在已执行所述指令 之后,结果(如果有)被回写到所述寄存器堆中。然而,在这些结果被回写到所述寄 存器堆中之前,后续指令经常需要这些结果中的一个或多个作为源操作数且因此所述 结果被转发网络取走用于进一步处理。管线越长所述源操作数越有可能将被传递到所 述转发网络而不是所述寄存器堆;此外,所述转发网络越频繁地取走所述结果,所述 对应的寄存器堆在被用所述最新数据更新之前而必须等待的时间就越长。 一种后果是 无效数据在所述寄存器堆中停留更长的时间段。如果在具有无效数据的寄存器上实施 后续读取操作,那么所述读取操作将产生不正确的结果(如果用于指令执行)。此外, 花费在所述操作上的功率将被浪费。因此,提供高能效装置以防止无效读取操作将是 期望的。发明内容本发明揭示一种寄存器堆。所述寄存器堆包括多个寄存器,及经配置以接收所述 寄存器中的任一者的地址,且在所述被寻址寄存器中的数据无效时停用对所述被寻址 寄存器的读取操作的解码器。本发明揭示另一种寄存器堆。所述寄存器堆包括多个寄存器,用于接收所述寄存 器中的任一者的地址的装置,及用于在所述被寻址寄存器中的数据无效时停用对所述 被寻址寄存器的读取操作的装置。一种存取具有多个寄存器的寄存器堆的方法包括接收所述寄存器中的一者的地 址,及响应于所述被寻址寄存器中的数据无效而停用对所述被寻址寄存器的读取操作。应了解,所属领域的技术人员将从以下详细阐述中易于明了本发明的其它实施 例,其中以例示的方式显示且阐述本发明的各种实施例。应了解,本发明能够具有其 它及不同的实施例,且能够在各其它方面对其若干细节予以修改,此均不背离本发明 的精神及范围。因此,应将图式及详细阐述视为本质上为例示性而非限制性。


在附图中,以实例方式而非限定方式图解说明本发明的方面,附图中-图1是图解说明具有根据本发明的高能效寄存器堆的系统的简化方块图; 图2是图解说明根据本发明的高能效寄存器堆的一个实施例的简化方块图。
具体实施方式
以下结合附图论述的详细阐述打算作为对本发明的各种实施例的阐述,而非打算 仅代表其中可实践本发明的实施例。所述详细阐述包括出于提供对本发明的透彻了解的目的的具体细节。然而,所属领域的技术人员将明了可在没有这些具体细节的情况 下实践本发明。在某些实例中,以方块图的形式显示已知结构及组件以避免遮掩本发 明的概念。图1是图解说明能够处理、检索且存储信息的数据处理系统100的实例的概念方 块图。数据处理系统100可以是独立组件,或另一选择为,数据处理系统ioo可嵌入 在例如移动电话、PDA、 PC、膝上型计算机、数码相机、游戏控制台或任何其它适合 装置的装置中。数据处理系统100可包括处理器102,例如微处理器、数字信号处理 器、视频图形处理器或任何其它适合的处理器。数据处理系统100还可包括存储器104, 其保存处理器102需要的程序指令及数据以实施其功能。可将处理器102配置为管线处理器。还可针对最近存取的指令及数据的存储提供 指令及数据高速缓冲存储器108。可提供寄存器堆106以存储管线110针对指令的执 行需要的操作数。当要执行指令时,可从寄存器堆106检索所述指令的源操作数且然 后将所述源操作数用于管线110中以执行所述指令。在完成所述指令后,然后可将任 何结果回写到寄存器堆106中以用作后续指令的源操作数,或将所述结果提供到转发 网络用于进一步处理。处理器102还可包括外围装置,或处置计算过程或数据移动的 任何其它类型的装置。图2是图解说明处理器如何存取其内部寄存器堆的实例的示意性方块图。寄存器 堆106可包括多个寄存器200a-m。每一寄存器200可用于存储数据。所述数据可用作 指令的操作数。寄存器堆106还可包括多个其它组件,包括(例如)解码器202及逻 辑装置204a-m。在图2中显示解码器202及逻辑装置204a-m以图解说明处理器从所述寄存器堆读取的方式。向单元写入所需要的电路在所属领域中众所周知,且因此未 显示所述电路。寄存器200a-m的每一者可包括多个单元206a-m及多个开关210a-m。单元206a 的内部电路及逻辑细节在所属领域中众所周知,且因此将不再讨论所述内部电路及逻 辑细节。显示所述开关为场效晶体管(FET),但也可以是任何类型的适合开关。当启用 其寄存器时,将两个开关与每一单元一起使用以将所存储的位及其补码耦合到差分位 线216a-216n的对。可通过其对应的逻辑装置204a-204m启用所述寄存器。逻辑装置 204a-204m用于在所述字线- WLm中的一者上产生选择所述对应的寄存器的启用 信号。在图2中以AND功能性构建逻辑装置204a-204m,但可以任何适合方式予以构 建。可将来自每一单元206a-m的操作数就绪信号212a-212m作为输入提供到其对应 的逻辑装置204a-m。下文将进一步阐述对操作数就绪信号212a-m的使用。还可将时 钟信号218作为输入提供到逻辑装置204a-m以基于电路定时控制其启动。由于一次仅 选择一个寄存器,因此所述多个寄存器的每一位位置的差分位线可共享相同的读出放 大器。读出放大器208a-208m基于其对应的差分位线提供输出。如下进一步阐述寄存器堆106的操作。在读取操作上,将寄存器堆地址214提子共 到来自所述处理器管线中的寄存器存取级215的解码器202。解码器202通过向对应 的逻辑装置提供适当的控制信号来启动目标寄存器。对应于目标寄存器的逻辑装置还 接收(作为输入)来自与目标寄存器相关联的单元中的一者的就绪信号212a-m。所述 逻辑装置使用就绪信号212a-m的状态来确定是否启用与目标寄存器相关联的单元。根 据所述就绪信号的状态,然后所述逻辑装置可借助于通过目标寄存器单元的相应开关 将目标寄存器单元连接到所述差分位线来启用目标寄存器,从而允许经由读出放大器 208a-n读出所述单元中含有的数据。就绪信号212的状态指示存储在寄存器200a-m中的数据是有效还是无效。当写 至目标寄存器200a-m的指令存在于所述管线中但还未将从所述指令的执行产生的数 据回写到目标寄存器200a-m中时,所述数据无效。在所述周期期间,可将所述就绪信 号切换到"关断"状态以防止所述管线中的读取指令(其在所述写入指令之后)存取 所述目标寄存器。可以多种方式控制就绪信号212的状态。举例来说,当所述管线提取将更新所述 寄存器的指令时可将就绪信号212切换到"关断"状态以指示资料无效,且当从所述 写入指令的执行产生的数据已被回写到所述寄存器中时将就绪信号212切换到"接通" 状态以指示数据有效。图2中显示更新所述就绪信号的方法的实例。解码器222可经配置而向每一寄存 器中的保存所述就绪信号的单元提供"设定"及"重设"信号。在此实例中,所述"设 定"信号用于将所述就绪信号切换到所述"接通"状态,且所述"重设"信号用于将 所述就绪信号切换到所述"关断"状态。根据字线WLx选通逻辑,所述极性在其它实 施例中可不相同。根据特定应用及总体设计约束,可从所述管线中的各种级控制解码器222。在处理器的至少一个实施例中,当所述管线提取写入指令时就绪信号被"重 设"。也就是说,将针对所述写入指令的寄存器堆的地址连同"重设"控制信号从所 述管线中的提取指令级224提供到解码器222。 一旦所述写入指令前进通过所述管线 且到达回写级226,那么可将所述寄存器堆的地址及"设定"控制信号提供到解码器 222。此导致所述解码器在所述寄存器堆中"设定"所述就绪信号。用于更新所述就绪信号的另一种方法是以类似于如何写入其它单元的方式使用 位线216a。基于本文中提供的本发明及教示,所属领域的技术人员将了解如何使用适 当的逻辑、电路及/或其它组件以根据本发明实施操作数就绪信号212。当操作数就绪信号212的状态指示存储在目标寄存器中的数据无效时,选通关断 对应的逻辑装置(即,来自所述逻辑的对应字线WLx输出不启动与目标寄存器相关联 的开关)。因此,防止了位线216a-n切换,此又意味着也防止了读出放大器208a-n 切换。因此,存储在目标寄存器中的数据未经由读出放大器208a-n输出。以下是进一步图解说明寄存器堆106的操作的实例。假设所述寄存器堆地址识别 寄存器200a依据指令用于读取操作。解码器202对所述信息进行解码且将适当的控制 信号发送到逻辑装置204a以指示已将寄存器200a锁定为所述读取操作的目标。还可 通过解码器202向其它逻辑装置204b-m发送其它控制信号以指示此特定读取操作不 需要其它寄存器200b-m。逻辑装置204a还接收来自与寄存器200a相关联的单元206a中的一者的操作数就 绪信号212a。如果操作数就绪信号212a指示寄存器200a中的数据无效,那么选通关 断逻辑装置204a,即,逻辑装置204a在字线WLo上输出防止开关210a接通的控制信 号。因此,位线216a-n未切换且存储在单元206a中的数据未经由读出放大器208a-n 输出。另一选择为,如果操作数就绪信号212a指示存储在寄存器200a中的数据有效, 那么逻辑装置204a在字线WLo上输出开启开关210a的控制信号。因此,来自目标寄 存器200a的数据被置于位线216a-n上且经由读出放大器208a-n从寄存器堆106输出。结合本文所揭示实施例阐述的各种例示性逻辑块、模块、电路、元件及/或组件可 用下列装置构建或实施通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、 现场可编程门阵列(FPGA)或其它可编程逻辑组件、离散门或晶体管逻辑、离散硬件组 件或其设计用于实施本文所述功能的任一组合。通用处理器可以是微处理器,但另一 选择为,所述处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还 可构建为计算组件的组合,例如DSP与微处理器的组合、多个微处理器的组合、 一个 或多个微处理器与DSP核心的联合或任何其它此类配置。结合本文所揭示实施例阐述的方法或算法可以控制逻辑、编程指令或其它指示的 形式直接体现在硬件、可由处理器执行的软件模块或两者的组合中。软件模块可驻存 在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄 存器、硬盘、可抽换式磁盘、CD-ROM或所属技术中已知的任何其它形式的存储媒体 中。存储媒体可耦合到处理器,使得处理器可从所述存储媒体读取信息及向所述存储媒体写入信息。另一选择为,所述存储媒体可以是处理器的组成部分。提供对所揭示实施例的以上阐述以使所属领域的技术人员能够制造或使用本发 明。所属领域的技术人员将易于得出对这些实施例的各种修改,且本文所界定的一般 原理可在不背离本发明的范围的精神的情况下适用于其它实施例。因此,并非打算将 本发明限定为本文所示实施例,而是要赋予其与权利要求书相一致的全部范围,其中 以单数形式提及一元件并非打算意味"一个及仅一个"(除非明确如此述及),而是 "一个或多个"。所有为所属领域的技术人员所熟知或以后将熟知的阐述于整个本发 明中的各种实施例的元件的结构及功能等效物均以引用的方式明确并入本文中并打算 涵盖于权利要求书中。此外,本文所揭示的内容均非打算奉献给公众,无论是否在权 利要求书中明确陈述此表达。权利要求书要素均不依据35 U.S.C.§112第六段的规定加 以解释,除非使用措词"用于...的装置"明确陈述所述要素,或在方法项的情况下使 用措词"用于...的步骤"陈述所述要素。
权利要求
1、一种寄存器堆,其包含多个寄存器;及解码器,其经配置以接收所述寄存器中的任一者的地址,且在所述被寻址寄存器中的数据无效时停用对所述被寻址寄存器的读取操作。
2、 如权利要求1所述的寄存器堆,其中所述寄存器中的每一者经配置以存储指 示其数据是否无效的就绪信号。
3、 如权利要求2所述的寄存器堆,其中所述寄存器中的每一者包含多个单元, 所述单元中的一者经配置以存储所述就绪信号。
4、 如权利要求3所述的寄存器堆,其中所述解码器进一步经配置以响应于所述 接收的地址来产生寄存器启用信号,且用以自所述被寻址寄存器的所述就绪信号来选 通所述寄存器启用信号,所述被选通的寄存器启用信号用于在所述被寻址寄存器中的 所述数据有效时启用所述被寻址寄存器处的读取操作。
5、 如权利要求4所述的寄存器堆,其中所述解码器进一步经配置以使用AND功能用所述就绪信号来选通所述寄存器启用信号。
6、 如权利要求4所述的寄存器堆,其中所述寄存器堆进一步经配置以在所述被 选通的寄存器启用信号指示所述被寻址寄存器中的所述数据有效时,响应于所述被选 通的寄存器启用信号将来自所述被寻址寄存器的所述单元的数据提供到所述寄存器堆 的输出。
7、 如权利要求2所述的寄存器堆,其进一步包含第二解码器,所述第二解码器 经配置以接收所述寄存器中任一者的地址及控制信号,且基于所述控制信号改变所述 寄存器中的所述任一者的所述就绪信号。
8、 一种寄存器堆,其包含-多个寄存器;接收装置,其用于接收所述寄存器中的任一者的地址;及停用装置,其用于在所述被寻址寄存器中的数据无效时,停用对所述被寻址寄存 器的读取操作。
9、 如权利要求8所述的寄存器堆,其中所述寄存器中的每一者经配置以存储指 示其数据是否无效的就绪信号。
10、 如权利要求9所述的寄存器堆,其中所述寄存器中的每一者包含多个单元, 所述单元中的一者经配置以存储所述就绪信号。
11、 如权利要求10所述的寄存器堆,其中所述用于停用对所述被寻址寄存器的 读取操作的装置进一步经配置以响应于所述接收的地址产生寄存器启用信号,且用以 自所述被寻址寄存器的所述就绪信号来选通所述寄存器启用信号,所述被选通的寄存器启用信号用于在所述被寻址寄存器中的数据有效时启用所述被寻址寄存器处的读取 操作。
12、 如权利要求9所述的寄存器堆,其进一步包含用于接收所述寄存器中任一者 的地址及控制信号且基于所述控制信号来改变所述寄存器中所述任一者的所述就绪信 号的装置。
13、 一种存取具有多个寄存器的寄存器堆的方法,其包含 接收所述寄存器中的一者的地址;及响应于所述被寻址寄存器中的数据无效,停用对所述被寻址寄存器的读取操作。
14、 如权利要求13所述的方法,其中所述寄存器中的每一者经配置以存储指示 其数据是否无效的就绪信号,且其中响应于所述被寻址寄存器中的所述就绪信号停用 对所述被寻址寄存器的所述读取操作。
15、 如权利要求14所述的方法,其中所述寄存器中的每一者包含多个单元,所 述单元中的一者经配置以存储所述就绪信号。
16、 如权利要求15所述的方法,其中通过用以自所述被寻址寄存器的所述就绪 信号来选通关断从所述接收的地址中解码的寄存器启用信号来拒绝对所述被寻址寄存 器的读取操作。
17、 如权利要求16所述的方法,其中用AND功能选通关断所述寄存器启用信号。
18、 如权利要求14所述的方法,其进一步包含改变所述被寻址寄存器中的所述 就绪信号以指示其数据无效。
19、 如权利要求18所述的方法,其中在接收所述被寻址寄存器的所述地址之前 改变所述被寻址寄存器中的所述就绪信号以指示其数据无效。
20、 如权利要求19所述的方法,其进一步包含在停用对所述被寻址寄存器的所 述读取操作之后,改变所述被寻址寄存器中的所述就绪信号以指示所述数据有效。
全文摘要
本发明揭示一种寄存器堆。所述寄存器堆包括多个寄存器及一解码器。所述解码器可经配置以接收所述寄存器中的任一者的地址,且在所述被寻址寄存器中的数据无效时停用对所述被寻址寄存器的读取操作。
文档编号G06F9/30GK101278258SQ200680036745
公开日2008年10月1日 申请日期2006年8月9日 优先权日2005年8月10日
发明者托马斯·安德鲁·萨托里乌斯, 杰弗里·托德·布里奇斯, 格雷戈里·克里斯托弗·布尔达, 詹姆斯·诺里斯·迪芬德尔费尔, 迈克尔·斯科特·麦基尔文 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1