用于分支预测的多模式寄存器堆的制作方法

文档序号:6593617阅读:222来源:国知局
专利名称:用于分支预测的多模式寄存器堆的制作方法
用于分支预测的多模式寄存器堆技术领域
本文中所揭示的发明性概念的实施例大体上涉及数据处理系统的领域。更明确地 说,本文中所揭示的发明性概念的实施例涉及多模式寄存器堆。
背景技术
为在处理器中处理指令,处理的各个级可包括提取(用以获得所述指令)、解码 (用以将所述指令分解成运算和操作数,例如操作数A加操作数B)、从寄存器堆检索操作 数、执行所述指令和回写结果(例如,操作数A加操作数B的和)。在管线化之前,处理器 在进行到下一指令之前将执行一个指令的所有级。为提高计算速度,曾在处理器中实施管 线,以便分开处理指令的不同级。因此,可执行处理指令的一个级,同时在同一时钟周期期 间执行处理后续指令的另一级。举例来说,当在第一时钟周期期间对第一指令进行解码的 同时,可在第一时钟周期期间提取第二指令。接着,当在第二时钟周期期间针对第一指令从 寄存器堆检索操作数的同时,在第二时钟周期期间可对第二指令进行解码且可提取第三指 令。经由管线化而进行的多个指令的同时处理可提高处理器的计算速度。
分支指令可指示处理器在程序中的不同位置处开始计算指令。举例来说,作为分 支指令的第五指令可使处理器跳转以开始处理第二十指令。然而,通过使用管线化,处理器 可在执行所述分支指令之前开始检索后续指令(例如,第六指令、第七指令和第八指令)并 对其进行解码。因此,如果采用分支,那么正在处理中的指令被移除,且分支到的新指令被 处理。处理不应被处理的指令耗费时间且因此影响处理速度。此外,误推测的指令也浪费 能量°
因此,处理器可包括分支预测逻辑,以便供处理器预测应提取分支指令之后的哪 一指令(即,确定是否应采用分支)。所述分支预测逻辑减少了处理器因遗漏的分支而错误 地提取指令的次数。分支预测逻辑可包括分支历史表和/或分支目标高速缓冲存储器。所 述分支历史表存储待预测的每一分支指令的分支历史的某一变化。分支历史是针对分支指 令的每次执行而采用分支还是不采用分支的记录。所述分支历史表可为2Xn位表,其中η 个行中的每一者对应于程序的不同分支指令,且用于η个行中的每一者的两个位由处理器 用来预测针对对应于所述行的分支指令是否采用分支。行越多,表示可预测越多的分支指 令。所述两个位可充当计数器,其中等于1-1可表示预测采用分支,0-0可表示预测不采用 分支,且1-0或0-1可表示不确定。通过观察待预测的每一分支指令的分支历史来训练所 述位。如果采用分支,那么使所述计数器递增(直到达到1-1为止)。如果不采用分支,那 么使所述计数器递减(直到达到0-0为止)。
所述分支目标高速缓冲存储器存储待预测的每一分支指令的目的地。在一个实施 例中,所述分支目标高速缓冲存储器可存储数目等于所述分支目标高速缓冲存储器的行或 寄存器的数目(例如,每分支目标一个行或寄存器)的分支指令的目的地。所述分支目标 高速缓冲存储器可存储分支指令的分支所指向的指令的地址。将分支历史表和/或分支目 标高速缓冲存储器包括在处理器中的一个问题在于所述分支历史表和所述分支目标高速4缓冲存储器是额外逻辑,因此增大了处理器的面积以及处理器的电力消耗。 发明内容
在一实施例中,描述一种多模式寄存器堆。所述多模式寄存器堆在第一模式期间 包括一操作数。所述多模式寄存器堆在第二模式中进一步包括代替所述操作数的辅助信息ο
本文中所揭示的一个或一个以上实施例的优点可包括对用于包括分支预测逻辑 的电路的最小大小增加以及电力节省。
提到此说明性实施例不是为了限制或界定本文中所揭示的发明性概念,而是为了 提供辅助理解所述概念的实例。在回顾整个申请案之后,本发明的其它方面、优点和特征将 变得显而易见,整个申请案包括以下部分“


”、“具体实施方式
”和“权利要求书”。

当参看附图阅读以下“具体实施方式
”时,会更好地理解本文中所揭示的本发明性 概念的这些和其它特征、方面和优点,其中
图1是说明用于实施分支预测的处理器内的示范性电路的示意图。
图2是说明图1中的示意图的示范性寄存器堆单元的示意图。
图3是说明图1中的示意图的示范性寄存器堆单元的替代示意图。
图4是说明用于第一模式中或用于第二模式中的图3中的示意图的寄存器堆的示 范性分离的示意图。
图5是说明用于将信息存储在一个多模式寄存器堆中的示范性方法的流程图。
图6是说明用于依据多个多模式寄存器堆中的每一者的模式而将信息存储在所 述多模式寄存器堆中的示范性方法的流程图。
图7是说明并入有可包括多模式寄存器堆的数字信号处理器的实例便携式通信 装置的总图。
图8是说明并入有可包括多模式寄存器堆的数字信号处理器的实例蜂窝式电话 的总图。
图9是说明并入有可包括多模式寄存器堆的数字信号处理器的实例无线因特网 协议电话的总图。
图10是说明并入有可包括多模式寄存器堆的数字信号处理器的实例便携式数字 助理的总图。
图11是说明并入有可包括多模式寄存器堆的数字信号处理器的实例音频文件播 放器的总图。
具体实施方式
遍及整个描述内容,出于阐释的目的,陈述众多特定细节以便提供对本文中所揭 示的发明性概念的透彻理解。然而,所属领域的技术人员将明白,可在不具有这些特定细节 中的一些细节的情况下实践本文中所揭示的发明性概念。在其它情况下,以框图形式展示 众所周知的结构和装置,以避免模糊本文中所揭示的发明性概念的基本原理。
本文中所揭示的发明性概念的实施例涉及用于分支预测的多模式寄存器堆。处理 器的每一线程可具有其自己的寄存器堆。举例来说,六线程处理器可具有六个寄存器堆。在 线程的执行期间,寄存器堆存储已由所述处理器收回以用于所述线程的操作数。举例来说, 对于指令/运算“操作数A加操作数B”,所述寄存器堆可存储总和以供稍后检索。
在多线程架构中,并非所有线程均可同时执行。举例来说,收听音频文件可致使一 个线程进行运算,但可能不需要其它线程。因此,在一个实施例中,与非活动线程相关联的 寄存器堆可用以存储不对应于相应活动线程的辅助信息,例如分支预测信息。所述分支预 测信息可由处理器用来预测活动指令流的分支。因此,多线程架构的寄存器堆可处于第一 模式中,从而存储用于其相应线程的操作数,或处于第二模式中,从而存储例如分支预测信 息等辅助信息。
分支预测信息可包括分支历史表和/或分支目标高速缓冲存储器。当多模式寄存 器堆处于第二模式中且存储分支预测信息时,所述寄存器堆可存储用于活动线程的分支历 史表和分支目标高速缓冲存储器中的一者或两者。因此,存储在所述寄存器堆中的表用以 预测不与所述寄存器堆相关联的活动线程中的分支。一旦对应于处于第二模式的寄存器堆 的线程将再次变成活动的(即,所述线程的指令将由处理器执行),所述寄存器堆就从第二 模式切换到第一模式,以便存储用于新活动的线程的操作数。在一个实施例中,当寄存器堆 切换到第一模式时,存储在所述寄存器堆中的任何辅助信息可被传送到用于多线程架构中 的当前非活动线程的一个或一个以上寄存器堆。在另一实施例中,存储在寄存器堆中的辅 助信息中的全部或一部分可能丢失。虽然分支预测信息的丢失可能导致处理器重新编译分 支预测信息,但当处理器重新编译此信息时,分支预测的正确性得以确保。
如果多线程架构的所有线程均为活动的,那么所有寄存器堆均处于存储用于其相 应线程的操作数的第一模式。因此,由于无寄存器堆处于第二模式以存储分支预测信息,所 以可不执行分支预测。另一方面,多个线程可为非活动的,且可能不需要所有用于非活动线 程的寄存器堆来存储分支预测信息。因此,处理器可包括用以确定哪些寄存器堆将优先处 于第二模式(例如,以存储分支预测信息)的逻辑。此外,所述处理器可包括用以确定哪些 线程将执行指令流且哪些线程将为非活动,因此确定指令执行在多个线程间的优先级的逻 辑。
图1到图4的示意图说明用于实施分支预测的处理器内的示范性电路的实施例。 图1的示意图说明用于分支预测的处理器100内的示范性电路。图2的示意图说明图1中 的示意图的示范性寄存器堆单元102,其中寄存器堆单元102包括多个寄存器堆。图3的示 意图说明包括多个寄存器堆及其相应的寄存器堆寄存器的图1中的示意图的示范性寄存 器堆单元102。图4的示意图说明用于第一模式中或用于第二模式中的图3中的寄存器堆 单元102的寄存器堆的示范性分离。
处理器100(图1)可包括用于预测分支的分支预测逻辑,其中分支预测信息104 存储在寄存器堆单元102中。所述逻辑可为除包括于处理器100中的其它运算电路之外的 电路。如先前所陈述,分支预测信息104可为分支历史表和分支目标高速缓冲存储器中的 一者或两者。在另一实施例中,分支预测信息可为允许处理器尝试预测分支的任何信息。在 图1中,分支预测信息104为分支目标高速缓冲存储器。寄存器堆单元102包括读取端口 106,其用于从寄存器堆单元102读取数据;写入数据端口 108,其用于将数据写入到寄存器堆单元102 ;以及地址总线110,其用于识别待存取(读取或写入)的寄存器堆单元102的 特定地址。如所说明,寄存器堆单元102可耦合到控制逻辑112。
在一个实施例中,控制逻辑112确定在处理来自指令管线114的指令时是否遇到 分支指令,以及针对所遇到的分支指令是否将预测分支。在一个实施例中,在管线中的指 令的解码期间确定分支指令。在确定是否遇到分支时,控制逻辑112可确定所遇到的指令 的地址是否与分支指令的已知地址匹配。在一个实施例中,可从指令的程序计数器116中 抽出所遇到的指令的地址。可从分支预测信息104或从单独的列表存取已知分支指令的地 址。如果所遇到的指令的地址与分支指令的地址匹配,那么控制逻辑112假定所遇到的指 令为分支指令。
处理器100可接着通过存取分支历史信息104来确定分支的目的地。在一个实施 例中,处理器100针对将在地址总线110上发送的分支指令从程序计数器116产生地址,以 存取寄存器堆单元102而寻找预测信息118。由于分支预测信息104包括分支存取表(其 包括分支的目标地址),所以预测信息118包括所遇到的分支指令的目标地址。如果将采用 所述分支,那么在采用所述分支时使用来自预测信息118的目标地址。
多路复用器120可确定是否将采用所述分支,其中对多路复用器120的控制输入 可为分支历史信息。对多路复用器120的一个输入可为来自预测信息118的目标地址。在 一个实施例中,进入多路复用器中的另一输入为逻辑零(例如,接地),使得多路复用器在 将不采用所述分支的情况下将逻辑零输出到分支预测1 上。在另一实施例中,多路复用 器120经配置以在将不采用所述分支的情况下将高阻抗信号输出到分支预测IM上。
在图1的示意图中,分支历史信息可存储在程序计数器116中。举例来说,所遇到 的分支的二位分支历史(如先前针对分支历史表所描述)可存储在程序计数器116中。因 此,所述电路可将来自程序计数器116的分支历史信息输出到控制器122上,以便控制多路 复用器120将是否应采用所述分支的预测输出到分支预测IM上。举例来说,如果程序计 数器中的分支历史的两个位为1-1,那么控制器122包括用以切换多路复用器120的信号, 以便将关于采用所述分支的预测输出在分支预测1 上。
在一个实施例中,如果将采用分支(例如,分支历史等于1-1),那么将目标地址发 送到分支预测124,以便将其反馈到控制逻辑112。控制逻辑112接着根据所述信号来确定 将采用所述分支且使流跳转到位于目标地址处的指令。在另一实施例中,可经由分支预测 124将逻辑一发送到控制逻辑112,以便供控制逻辑112确定将采用分支。如果将不采用分 支(例如,分支历史等于0-0),那么控制逻辑112可经由分支预测IM接收逻辑零或高阻 抗。控制逻辑接着根据所述信号来确定流应在不采用所述分支的情况下,继续进行到处理 所述分支指令之后的指令。
在另一实施例中且如先前所陈述,分支历史可作为分支历史表存储在寄存器堆单 元102中。因而,寄存器堆单元102中的分支历史表可视情况从读取数据端口 106输出到 控制器122上,以便控制多路复用器120的输出。在一个实施例中,分支指令的分支历史和 目标地址可存储在一个寄存器中,从而对分支历史表信息与分支目标高速缓冲存储器信息 进行组合。
参看图2,寄存器堆单元102可包括存储区202,所述存储区202包括多个寄存器 堆204到214。在所说明的实施例中,说明六个寄存器堆,其中处理器可为六线程架构。在其它实施例中,寄存器堆的数目可为大于一的任一数目(例如,二 ),其中所述寄存器堆中 的至少一者可处于第一模式,且所述寄存器堆中的至少一者可处于第二模式。寄存器堆204 到214中的每一者与六线程架构处理器的相应线程相关联。举例来说,寄存器堆1 204可 与处理器的第一线程相关联。寄存器堆204到214可经由总线216而互连。因此,用于处 于第二模式的寄存器堆的分支预测信息可在处于第二模式的寄存器堆间划分。在另一实施 例中,寄存器堆中的一部分可为单一模式寄存器堆(仅存储操作数),而其余寄存器堆为多 模式寄存器堆。
再次参看图2,存储区202连接到提取单元218和回写单元220。提取单元218将 地址222发送到存储区202,以便存取并提取寄存器堆204到214中的一者的寄存器值。将 所存取的值发送到寄存器堆数据接口 224,其从寄存器堆单元102输出所述值。回写单元 220发送存储区202中数据将写入和存储到的寄存器的地址222。在一个实施例中,提取单 元218和回写单元220可存取来自/去往处于第一模式的寄存器堆的操作数,以及来自/ 去往处于第二模式的寄存器堆的辅助信息(例如,分支预测信息)。
参看图3,寄存器堆单元102可进一步包括寄存器堆寄存器302到312 (例如,在存 储区202中)。在一个实施例中,每一寄存器堆寄存器302到312与一寄存器堆204到214 相关联。举例来说,RFl寄存器302与寄存器堆1 204相关联,RF2寄存器304与寄存器堆 2 206相关联,依此类推。寄存器堆寄存器302到312可包括关于其相应的寄存器204到 214的信息,包括关于何时将寄存器切换到第二模式的优先级信息、关于寄存器何时将处于 第一模式的优先级信息或关于对应寄存器与哪一线程相关联的信息。举例来说,RFl寄存 器302可包括以下信息寄存器堆1 204与线程0相关联,寄存器堆1 204是将处于第一模 式以便存储操作数的第一寄存器和/或寄存器堆1 204是将处于第二模式以存储辅助信息 的最后一个寄存器。在另一实施例中,寄存器堆寄存器可包括关于对应寄存器是处于第一 模式还是第二模式的信息。
在一个实施例中,由于每一寄存器204到214的寄存器堆寄存器302到312包括 关于相应寄存器堆何时将处于第一模式以及相应寄存器堆何时将切换到第二模式的优先 级的信息,所以处理器100可使用所述信息以便控制哪些寄存器堆处于第一模式以及哪些 寄存器堆处于第二模式。举例来说,处理器可通过经由总线214控制寄存器堆寄存器302 到312来将寄存器堆从第一模式切换到第二模式/从第二模式切换到第一模式。
图4的示意图说明一个实例,其中寄存器堆204到208处于第一模式,且寄存器 堆210到214处于第二模式。如先前所描述,寄存器堆寄存器302到312可包括寄存器堆 204到214何时将处于第一模式的优先级信息。举例来说,所述优先级信息可为寄存器堆1204为将处于第一模式的第一寄存器堆(即,其相关联线程第一个执行指令),寄存器堆2206为将处于第一模式的第二寄存器堆(即,其相关联线程第二个执行指令),寄存器堆3208为将处于第一模式的第三寄存器堆(即,其相关联线程第三个执行指令),寄存器堆4210为将处于第一模式的第四寄存器堆(即,其相关联线程第四个执行指令),寄存器堆5212为将处于第一模式的第五寄存器堆(即,其相关联线程第五个执行指令),且寄存器 堆6 214为将处于第一模式的第六且最后一个寄存器堆(即,其相关联线程第六个执行指 令)。因此,如果五个线程将执行指令,那么寄存器堆204到212将处于第一模式(例如,存 储用于其相应线程的操作数),且寄存器堆6 214无需处于第一模式。8
也如先前所描述,寄存器堆寄存器302到312可包括寄存器堆204到214何时将 处于第二模式的优先级信息。举例来说,所述优先级信息可为寄存器堆1 204为将处于第 二模式的第六且最后一个寄存器堆(例如,以存储用于活动线程的分支预测信息),寄存器 堆2 206为将处于第二模式的第五且倒数第二个寄存器堆,寄存器堆3 208为将处于第二 模式的第四寄存器堆,寄存器堆4 210为将处于第二模式的第三寄存器堆,寄存器堆5 212 为将处于第二模式的第二且正数第二寄存器堆,且寄存器堆6 214为将处于第二模式的第 一寄存器堆。因此,如果两个线程正执行指令,那么寄存器堆208到214可处于第二模式。 如果两个寄存器堆将处于第二模式,那么寄存器堆212到214处于第二模式。在一个实施 例中,寄存器堆是否处于第一模式(即,相应线程为活动的/正执行指令)相较于寄存器堆 是否将切换到第二模式具有优先级。
再次参看图4,在所述实例中,三个线程将为活动的,且三个寄存器堆将处于第二 模式。因此,寄存器堆204到208处于第一模式,进而存储用于活动线程的操作数。寄存器 堆210到214处于第二模式以存储(例如)用于所述三个活动线程的分支预测信息。在一 个实施例中,所述分支预测信息可在第二模式中在整个存储区402之中划分或展开。因此, 当越多的寄存器堆204到214处于第二模式时,存在越多存储区用于存储分支预测信息,因 此允许分支历史表和分支目标高速缓冲存储器更大(例如,每一表中有更多的行)以便允 许预测更多分支指令。
图5是说明用于将信息存储在图1到图3的一个多模式寄存器堆中的示范性方法 500的流程图。在502处开始,处理器100确定多模式寄存器堆(例如,图3中的寄存器堆 1 204)是否处于第一模式。在确定寄存器堆1 204是否处于第一模式的一个实施例中,处 理器100存取RFl寄存器302,所述RFl寄存器302与寄存器堆1 204相关联,且可包括关 于寄存器堆1 204处于哪一模式的信息。在另一实施例中,处理器100可检查RFl寄存器 302的优先级信息以及活动线程的数目,以确定寄存器堆1 204是否处于第一模式。在另一 实施例中,处理器100可确定寄存器堆1 204的相应线程(例如,线程0),且确定所述相应 线程是否为活动的。如果寄存器堆1 204处于第一模式,那么寄存器堆1 204的相应线程 为活动的,且寄存器堆1 204可在504中从回写单元220(图幻接收操作数。刚一接收到 操作数,寄存器堆就可将所述操作数存储在由回写单元220识别的寄存器位置中(506)。
如果处理器100在502中确定寄存器堆不处于第一模式,那么处理器100可在508 中确定多模式寄存器堆1 204是否处于第二模式。在一个实施例中,处理器100可假定在 寄存器堆1 204不处于第一模式的情况下,寄存器堆1 204处于第二模式。在另一实施例 中,寄存器堆1 204可为非活动的,且因此既不处于第一模式也不处于第二模式。因此,如 果处理器100确定寄存器堆1 204不处于第二模式,那么寄存器堆1 204既不处于第一模 式也不处于第二模式,且当时可能不在接受信息。如果多模式寄存器堆处于第二模式,那么 寄存器堆1 204在510中从回写单元220(图3)接收辅助信息(例如,分支预测信息)。刚 一接收到所述辅助信息,寄存器堆1 204就可将所述辅助信息存储在由回写单元220识别 的寄存器位置中(506)。
图6的流程图说明用于依据图1到图3中的寄存器堆单元102的多个多模式寄存 器堆204到214中的每一者的模式将信息存储在所述多模式寄存器堆204到214中的示范 性方法600。在602处开始,处理器100确定寄存器堆单元102的哪些多模式寄存器堆2049到214处于第一模式。在一个实施例中,处理器100确定哪些线程为活动的,且从寄存器堆 寄存器302到312确定哪些寄存器堆204到214与活动线程相关联。在另一实施例中,处 理器100可从相关联的寄存器堆寄存器读取寄存器堆是否处于第一模式的信息。
刚一确定哪些寄存器堆204到214处于第一模式,处理器100就可在604中确定 哪些寄存器堆204到214处于第二模式。在一个实施例中,处理器100可读取不处于第一 模式的寄存器堆204到214的相应寄存器堆寄存器302到312,以确定寄存器堆是否处于第 二模式。在另一实施例中,处理器100假定不处于第一模式的所有寄存器204到214均处 于第二模式。在另一实施例中,处理器100确定将处于第二模式的寄存器堆204到214的 数目,且从寄存器堆204到214的相应寄存器堆寄存器302到312读取针对第二模式的优 先级信息。
进行到606,处理器100将操作数发送到处于第一模式的寄存器堆204到214。举 例来说,如果线程0包括由被执行的指令引起的操作数,那么处理器100将所述操作数发送 到寄存器堆1 204(图;3)以存储。接着在608中,处于第一模式的接收寄存器堆204到214 存储所述操作数。
进行到610,处理器100将辅助信息发送到处于第二模式的寄存器堆204到214。 举例来说,处理器100可发送用于最近执行的分支指令的分支预测信息,其可稍后用于预 测相同分支。在一个实施例中,处理器100确定处于第二模式的哪一寄存器堆204到214将 存储哪一条辅助信息。举例来说,再次参看图4,处理器100可确定,寄存器堆210到212将 存储分支目标高速缓冲存储器,且寄存器堆6 214将存储正执行的指令流的分支历史表。 再次参看图6,接着在612中,处于第二模式的接收寄存器堆204到214存储所述辅助信息。
包括上文所描述的特征的实例装置
多模式寄存器堆可包括于例如数字信号处理器等包括寄存器堆的任何处理器中。 图7到图11的总图说明可并入有用于在第一模式中存储(例如)操作数且在第二模式中 存储分支预测信息以便用于预测正执行的分支指令的分支的多模式寄存器堆的实例装置。
图7是说明便携式通信装置700的示范性实施例的图。如图7的总图中所说明, 便携式通信装置包括芯片上系统702,所述芯片上系统702包括数字信号处理器(DSP) 704。 图7的总图还展示耦合到数字信号处理器704和显示器708的显示器控制器706。此外,输 入装置710耦合到DSP 704。如图所示,存储器712耦合到DSP 704。另外,编码器/解码 器(编解码器)714可耦合到DSP 704。扬声器716和麦克风718可耦合到编解码器714。
图7的总图进一步说明耦合到数字信号处理器704和无线天线722的无线控制器 720。在特定实施例中,电力供应7M耦合到芯片上系统702。此外,在特定实施例中,如图 7中所说明,显示器708、输入装置710、扬声器716、麦克风718、无线天线722和电力供应 724在芯片上系统702的外部。然而,显示器708、输入装置710、扬声器716、麦克风718、无 线天线722和电力供应7M每一者均耦合到芯片上系统702的一组件。
在特定实施例中,DSP 704包括一个或一个以上多模式寄存器堆726,以便在寄存 器堆不处于第一模式(不存储活动线程的操作数)时存储(例如)分支预测信息。举例来 说,当处理器704遇到分支指令且多模式寄存器堆7 正存储分支预测信息时,处理器704 接着使用多模式寄存器堆726中的所述分支预测信息来确定应将分支预测为采用还是不 采用。处理器704接着开始处理来自分支预测的下一个所预测的指令。
图8是说明蜂窝式电话800的示范性实施例的图。如图所示,蜂窝式电话800包 括芯片上系统802,所述芯片上系统802包括耦合在一起的数字基带处理器804和模拟基带 处理器806。在特定实施例中,数字基带处理器804为数字信号处理器。如图8的总图中所 说明,显示器控制器808和触摸屏控制器810耦合到数字基带处理器804。在芯片上系统 802外部的触摸屏显示器812又耦合到显示器控制器808和触摸屏控制器810。
图8的总图进一步说明视频编码器814(例如,逐行倒相(PAL)编码器、顺序传送 色彩与存储(SECAM)编码器或国家电视制式委员会(NTSC)编码器)耦合到数字基带处理 器804。另外,视频放大器816耦合到视频编码器814和触摸屏显示器812。而且,视频端 口 818耦合到视频放大器816。如图8的总图中所描绘,通用串行总线(USB)控制器820耦 合到数字基带处理器804。而且,USB端口 822耦合到USB控制器820。存储器拟4和订户 身份模块(SIM)卡826也可耦合到数字基带处理器804。另外,如图8的总图中所展示,数 字相机拟8可耦合到数字基带处理器804。在示范性实施例中,数字相机拟8为电荷耦合装 置(CXD)相机或互补金属氧化物半导体(CM0Q相机。
如图8的总图中进一步说明,立体声音频编解码器830可耦合到模拟基带处理器 806。此外,音频放大器832可耦合到立体声音频编解码器830。在示范性实施例中,第一立 体声扬声器834和第二立体声扬声器836耦合到音频放大器832。麦克风放大器838也可 耦合到立体声音频编解码器830。另外,麦克风840可耦合到麦克风放大器838。在特定实 施例中,调频(FM)无线电调谐器842可耦合到立体声音频编解码器830。而且,FM天线844 耦合到FM无线电调谐器842。另外,立体声耳机846可耦合到立体声音频编解码器830。
图8的总图进一步说明射频(RF)收发器848可耦合到模拟基带处理器806。RF开 关850可耦合到RF收发器848和RF天线852。小键盘邪4可耦合到模拟基带处理器806。 另外,振动器装置858可耦合到模拟基带处理器806。图8的总图还展示电力供应860可耦 合到芯片上系统802。在特定实施例中,电力供应860为向蜂窝式电话800的各种组件提供 电力的直流(DC)电力供应。另外,在特定实施例中,电力供应为可再充电DC电池或得自耦 合到AC电源的交流(AC)到DC变压器的DC电力供应。
如图8的总图中所描绘,触摸屏显示器812、视频端口 818、USB端口 822、相机828、 第一立体声扬声器834、第二立体声扬声器836、麦克风840、FM天线844、立体声耳机846、 RF开关850、RF天线852、小键盘854、振动器858和电力供应860可在芯片上系统802的 外部。在特定实施例中,数字基带处理器804可包括一个或一个以上多模式寄存器堆862, 以便在寄存器堆862不处于第一模式(不存储活动线程的操作数)时存储(例如)分支预 测信息。
图9是说明无线因特网协议(IP)电话900的示范性实施例的图。如图所示,无线 IP电话900包括芯片上系统902,所述芯片上系统902包括数字信号处理器(DSP) 904。显 示器控制器906可耦合到DSP 904,且显示器908耦合到所述显示器控制器906。在示范性 实施例中,显示器908为液晶显示器(IXD)。图9进一步展示小键盘910可耦合到DSP 904。
快闪存储器912可耦合到DSP 904。同步动态随机存取存储器(SDRAM)914、静态随 机存取存储器(SRAM) 916和电可擦除可编程只读存储器(EEPROM) 918也可耦合到DSP 904。 图9的总图还展示发光二极管(LED)920可耦合到DSP 904。另外,在特定实施例中,语音 编解码器922可耦合到DSP 904。放大器拟4可耦合到语音编解码器922,且单声道扬声器11926可耦合到放大器924。图9的总图进一步说明耦合到语音编解码器922的单声道头戴 耳机928。在特定实施例中,单声道头戴耳机拟8包括麦克风。
无线局域网(WLAN)基带处理器930可耦合到DSP 904。RF收发器932可耦合到 WLAN基带处理器930,且RF天线934可耦合到RF收发器932。在特定实施例中,蓝牙控制 器936也可耦合到DSP 904,且蓝牙天线938可耦合到控制器936。图9的总图还展示USB 端口 940也可耦合到DSP 904。此外,电力供应942耦合到芯片上系统902,且向无线IP电 话900的各种组件提供电力。
如图9的总图中所指示,显示器908、小键盘910、LED 920、单声道扬声器926、单声 道头戴耳机928、RF天线934、蓝牙天线938、USB端口 940和电力供应942可在芯片上系统 902的外部,且耦合到芯片上系统902的一个或一个以上组件。在特定实施例中,DSP 904 可包括一个或一个以上多模式寄存器堆960,以便在寄存器堆960不处于第一模式(不存储 活动线程的操作数)时存储(例如)分支预测信息。
图10是说明便携式数字助理(PDA)900的示范性实施例的图。如图所示,PDA 1000 包括芯片上系统1002,所述芯片上系统1002包括数字信号处理器(DSP) 1004。触摸屏控制 器1006和显示器控制器1008耦合到DSP 1004。另外,触摸屏显示器1010耦合到触摸屏 控制器1006,且耦合到显示器控制器1008。图10的总图还指示小键盘1012可耦合到DSP 1004。
在特定实施例中,立体声音频编解码器10 可耦合到DSP 1004。第一立体声放 大器10 可耦合到立体声音频编解码器1026,且第一立体声扬声器1030可耦合到第一立 体声放大器1(^8。另外,麦克风放大器1032可耦合到立体声音频编解码器1(^6,且麦克风 1034可耦合到麦克风放大器1032。图10的总图进一步展示第二立体声放大器1036可耦合 到立体声音频编解码器10 ,且第二立体声扬声器1038可耦合到第二立体声放大器1036。 在特定实施例中,立体声耳机1040也可耦合到立体声音频编解码器1(^6。
图10的总图还说明802. 11控制器1042可耦合到DSP 1004,且802. 11天线1044 可耦合到802. 11控制器1042。另外,蓝牙控制器1046可耦合到DSP 1004,且蓝牙天线1048 可耦合到蓝牙控制器1046。USB控制器1050可耦合到DSP 1004,且USB端口 1052可耦合 到USB控制器1050。另外,智能卡IOM (例如,多媒体卡(MMC)或安全数字卡(SD))可耦合 到DSP 1004。另外,电力供应1056可耦合到芯片上系统1002,且可向PDA 1000的各种组 件提供电力。
如图10的总图中所指示,显示器1010、小键盘1012、IrDA端口 1022、数字相机 1024、第一立体声扬声器1030、麦克风1034、第二立体声扬声器1038、立体声耳机1040、 802. 11天线1044、蓝牙天线1048、USB端口 1052和电力供应1056可在芯片上系统1002的 外部,且耦合到所述芯片上系统上的一个或一个以上组件。在特定实施例中,DSP 1004可 包括一个或一个以上多模式寄存器堆1060,以便在寄存器堆1060不处于第一模式(不存储 活动线程的操作数)时存储(例如)分支预测信息。
图11是说明音频文件播放器(例如,MP3播放器)1100的示范性实施例的图。如 图所示,音频文件播放器1100包括芯片上系统1102,所述芯片上系统1102包括数字信号处 理器(DSP) 1104。显示器控制器1106可耦合到DSP 1104,且显示器1108耦合到显示器控 制器1106。在示范性实施例中,显示器1108为液晶显示器(IXD)。小键盘1110可耦合到DSP 1104。
如图11的总图中进一步描绘,快闪存储器1112和只读存储器(R0M)1114可耦合 到DSP 1104。另外,在特定实施例中,音频编解码器1116可耦合到DSP 1104。放大器1118 可耦合到音频编解码器1116,且单声道扬声器1120可耦合到放大器1118。图11的总图进 一步指示麦克风输入1122和立体声输入IlM也可耦合到音频编解码器1116。在特定实施 例中,立体声耳机11 也可耦合到音频编解码器1116。
USB端口 11 和智能卡1130可耦合到DSP 1104。另外,电力供应1132可耦合到 芯片上系统1102,且可向音频文件播放器1100的各种组件提供电力。
如图11的总图中所指示,显示器1108、小键盘1110、单声道扬声器1120、麦克风输 入1122、立体声输入1124、立体声耳机1U6、USB端口 11 和电力供应1132在芯片上系统 1102的外部,且耦合到芯片上系统1102上的一个或一个以上组件。在特定实施例中,数字 信号处理器1104可包括一个或一个以上多模式寄存器堆1160,以便在寄存器堆1160不处 于第一模式(不存储活动线程的操作数)时存储(例如)分支预测信息。

本文中所揭示的发明性概念的实施例的以上描述已仅出于说明和描述的目的而 呈现,且无意为详尽的或将本文中所揭示的发明性概念限于所揭示的精确形式。在不脱离 本文中所揭示的发明性概念的精神和范围的情况下,众多修改和适应对于所属领域的技术 人员来说是显而易见的。
权利要求
1.一种多模式寄存器堆,其包含 操作数,其在第一模式中被存储;以及辅助信息,其中在第二模式中,所述辅助信息代替所述操作数。
2.根据权利要求1所述的多模式寄存器堆,其中所述辅助信息为分支预测信息。
3.根据权利要求2所述的多模式寄存器堆,其中所述分支预测信息包含 分支目标高速缓冲存储器;以及分支历史表。
4.根据权利要求2所述的多模式寄存器堆,其中所述寄存器堆是在多线程架构中的多 个寄存器堆中。
5.根据权利要求4所述的多模式寄存器堆,其中所述操作数是来自将由所述多线程架 构执行的运算管线中的运算。
6.根据权利要求5所述的多模式寄存器堆,其中所述多线程架构经配置以 确定所述多模式寄存器堆是否处于所述第一模式;且在确定所述多模式寄存器堆不处于所述第一模式的情况下,确定所述多模式寄存器堆 是否处于所述第二模式。
7.根据权利要求4所述的多模式寄存器堆,其中所述多个寄存器堆中的每一者为多模 式寄存器堆。
8.根据权利要求7所述的多模式寄存器堆,其中所述多线程架构经配置以确定所述寄 存器堆进入所述第二模式的优先级。
9.根据权利要求8所述的多模式寄存器堆,其中所述多个寄存器堆经配置以在处于所 述第二模式的多个寄存器堆之间划分所述分支预测信息。
10.一种方法,其包含在第一模式期间由多模式寄存器堆存储操作数;以及在第二模式中由所述多模式寄存器堆用辅助信息来代替所述操作数。
11.根据权利要求10所述的方法,其中所述辅助信息为分支预测信息。
12.根据权利要求11所述的方法,其中所述分支预测信息包含 分支目标高速缓冲存储器;以及分支历史表。
13.根据权利要求11所述的方法,其进一步包含 确定所述多模式寄存器堆是否处于所述第一模式;以及在确定所述多模式寄存器堆不处于所述第一模式的情况下,确定所述多模式寄存器堆 是否处于所述第二模式。
14.根据权利要求11所述的方法,其中所述寄存器堆是在多线程架构中的多个多模式 寄存器堆中。
15.根据权利要求14所述的方法,其进一步包含确定所述多个寄存器堆中的每一者是否处于所述第一模式;以及 对于所述多个寄存器堆中的不处于所述第一模式的每一者,确定每一寄存器堆是否处 于所述第二模式。
16.根据权利要求15所述的方法,其进一步包含在处于所述第二模式的多个寄存器堆之间划分所述分支预测信息。
17.一种多模式寄存器堆,其包含用于在第一模式期间存储操作数的装置;以及 用于在第二模式中用辅助信息来代替所述操作数的装置。
18.根据权利要求17所述的多模式寄存器堆,其中所述辅助信息为分支预测信息。
19.根据权利要求18所述的多模式寄存器堆,其进一步包含 用于确定所述多模式寄存器堆是否处于所述第一模式的装置;以及用于在确定所述多模式寄存器堆不处于所述第一模式的情况下确定所述多模式寄存 器堆是否处于所述第二模式的装置。
20.根据权利要求19所述的多模式寄存器堆,其进一步包含用于确定多个多模式寄存器堆中的每一者进入所述第二模式的优先级的装置,其中所 述多模式寄存器堆是所述多个多模式寄存器堆中的一者。
21.—种多线程系统,其包含用于所述多线程系统的每一线程的多模式寄存器堆,其中所述多模式寄存器堆经配置 以在第一模式中存储用于所述线程的操作数,且在第二模式中存储用于不同线程的分支历 史表;以及用于每一多模式寄存器堆的多模式寄存器堆寄存器,其用以确定所述多模式寄存器堆 是处于所述第一模式还是所述第二模式。
全文摘要
本发明描述一种用于多线程系统的每一线程的多模式寄存器堆。在一个实施例中,所述多模式寄存器堆在第一模式中包括用于所述线程的操作数。所述多模式寄存器堆在第二模式中进一步包括代替所述操作数的分支预测信息。
文档编号G06F9/38GK102037443SQ200980118152
公开日2011年4月27日 申请日期2009年5月8日 优先权日2008年5月21日
发明者卢奇安·科德雷斯库 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1