用于计算硬件预提取地址及算术运算值的双功能加法器的制作方法

文档序号:6592999阅读:188来源:国知局
专利名称:用于计算硬件预提取地址及算术运算值的双功能加法器的制作方法
技术领域
本文所揭示的发明概念的实施例大体上涉及数据处理系统的领域。更确切地说, 本文所揭示的发明概念的实施例涉及一种双功能加法器。
背景技术
在一些常规计算系统中,由处理器执行的操作包括加载/存储、硬件预提取及算 术运算。加载/存储是将来自存储器(例如,同步动态随机存取存储器)的值加载到寄存 器堆或将来自寄存器堆中的寄存器的值存储到存储器的操作。硬件预提取是将来自存储器 的数据预先加载到寄存器堆中以便在被请求之前预备好数据。预提取减少了与存储器读取 相关联的等待时间,因为如果已经将操作数预先加载到寄存器堆中则处理器不等待操作数 被载入。算术运算为整数运算,其包括(例如)两个操作数之间的加法及减法。在执行加载/存储操作时,处理器可计算一加载/存储地址。加载/存储地址是 从其加载一值到寄存器堆或将来自寄存器堆的值存储到其的存储器地址。在执行硬件预提 取时,处理器可计算一硬件预提取地址。硬件预提取地址是在数据被请求用于线程执行之 前将从其预先加载数据的存储器地址。在执行算术运算时,处理器可计算一算术运算值,其 为算术运算的结果(例如,操作数A加操作数B的和)。图1的现有技术示意图说明一常规系统100。如所说明,常规系统100可包括至 少三个加法器(106、112及114),其中一个加法器用于计算加载/存储地址(地址产生加 法器106),第二加法器用于计算硬件预提取地址(硬件预提取加法器112),且第三加法器 用于计算算术运算值(算术逻辑单元{ALU}加法器114)。参看图1,地址产生加法器106 在计算加载/存储地址时可接收一来自寄存器堆的存储器地址操作数102及一立即操作数 104(例如,常数)。立即操作数可为由操作的操作数列出的常数值,而非列出地址的操作 数。加法器106将存储器地址操作数102与立即操作数104求和以产生加载/存储地 址,其被发送到多路复用器108。如果执行加载/存储操作,则多路复用器108将加载/存 储地址发送到多路复用器110。另一方面,如果正在执行算术运算,则多路复用器108可将 来自寄存器堆的第一 ALU操作数102转发到ALU加法器114,而非将加载/存储地址转发到 多路复用器108。如果除执行加载/存储操作外或替代于执行加载/存储操作要执行硬件 预提取,则多路复用器108可将来自地址产生加法器106的加载/存储地址转发到硬件预 提取加法器112,以便确定硬件预提取地址。如图1的示意图中所说明,硬件预提取加法器112进一步经配置以确定算后增量 地址。算后增量地址是等于先前执行循环中使用的存储器地址加上一常数的地址。举例来 说,在当前执行循环中的操作执行之后或期间,可将直接或间接地指向操作的操作数的地 址递增一常数以产生所述算后增量地址。所述算后增量地址可直接或间接地指向要在随后 执行循环中处理的操作的操作数。在图1的示意图中,加法器112通过将加载/存储地址与多路复用器116的输出相加来确定算后增量地址,当计算算后增量地址时,多路复用器116选择算后增量常数 (pconstant)1180 pconstant 118可经预定义及/或由系统100硬连线或存储。当加法器 112确定一硬件预提取地址时,则多路复用器116在硬件预提取减量地址120与硬件预提取 增量地址122之间选择,通过所述硬件预提取减量地址120及所述硬件预提取增量地址122 来使加载/存储地址递增或递减。加法器112输出算后增量地址或硬件预提取地址124, 其可在当前执行循环被发送到寄存器堆,或在下一执行循环被发送到多路复用器110的输 入。在下一执行循环输入到多路复用器110的硬件预提取地址124可用以存取数据高速缓 冲存储器136,以用于预提取在存储器地址134处的值。因此,多路复用器110视正在执行 加载/存储操作还是硬件预提取而在当前执行循环的加载/存储地址与先前执行循环的硬 件预提取地址之间选择。如果要计算一算术运算,则除多路复用器108将第一 ALU操作数102发送到ALU加 法器114的输入外,多路复用器126视所述算术运算而发送从来自寄存器堆的第二 ALU操 作数128及立即ALU操作数130 (亦即,常数)中所选择的输出。举例来说,一算术运算可 将存储于寄存器堆中的两个值相加。因此,指令的输入操作数可指向寄存器堆的存储要相 加的值的两个寄存器。在另一实例中,一个操作数可指向一存储于寄存器堆中的值,而另一 操作数列出一预定义的常数。加法器114接着将多路复用器126的输出与ALU第一操作数 102相加以输出一算术运算值132。系统100的一个问题是需要三个加法器来处理操作,因此增加了电路面积及处理 器的功率消耗。

发明内容
在一实施例中,描述一种包括双功能加法器的系统。在一项实施例中,所述系统包 括加法器。所述加法器经配置以针对第一指令在所述第一指令为硬件预提取指令的情况下 确定用于硬件预提取的地址。所述加法器进一步经配置以针对所述第一指令在所述第一指 令为算术运算指令的情况下确定来自算术运算的值。本文所揭示的一个或一个以上实施例的优点可包括减少硅中用于处理器的面积 及功率节省。提及此说明性实施例并不是要限制或界定本文所揭示的发明概念,而是为了提供 实例以辅助对其的理解。在审阅整个申请案之后,本发明的其它方面、优点及特征将变得显 而易见,整个申请案包括以下部分


具体实施方式
及权利要求书。

当参看随附图式阅读以下具体实施方式
时将更好地理解本文所揭示的本发明的 概念的这些及其它特征、方面及优点,其中图1为说明用于计算加载/存储地址、硬件预提取地址及算术运算值的常规电路 的现有技术示意图。图2为说明包括经配置以计算硬件预提取地址及算术运算值的双功能加法器的 示范性系统的示意图。图3为说明经配置以在不存取寄存器堆的情况下使用由图2的示意图中的双功能加法器所计算的算后增量地址的示范性系统的示意图。图4为说明包括经配置以计算硬件预提取地址及加载/存储值的双功能加法器的 示范性系统的示意图。图5为说明经配置以在不存取寄存器堆的情况下使用由图4的示意图中的双功能 加法器所计算的算后增量地址的示范性系统的示意图。图6为说明多线程处理器的指令管线的图。图7为说明用于通过图2及图3的示意图中所说明的系统执行硬件预提取、加载 /存储或算术运算的示范性方法的流程图。图8为说明用于通过图4及图5的示意图中所说明的系统执行硬件预提取、加载 /存储或算术运算的示范性方法的流程图。图9为说明用于通过图3及图5的示意图中所说明的系统计算并使用算后增量地 址的示范性方法的流程图。图10为说明并入有可包括双功能加法器的数字信号处理器的实例便携式通信装 置的总图。图11为说明并入有可包括双功能加法器的数字信号处理器的实例蜂窝式电话的 总图。图12为说明并入有可包括双功能加法器的数字信号处理器的实例无线因特网协 议电话的总图。图13为说明并入有可包括双功能加法器的数字信号处理器的实例便携式数字助 理的总图。图14为说明并入有可包括双功能加法器的数字信号处理器的实例音频文件播放 器的总图。
具体实施例方式在以下描述中,为解释的目的,阐述众多特定细节以便提供对本文中所揭示的发 明概念的全面理解。然而,所属领域的技术人员将显而易见本文中所揭示的发明概念可在 无这些特定细节中的一些的情况下来实践。在其它情况中,众所周知的结构及装置以框图 的形式来展示以避免模糊本文中所揭示的发明概念的基本原理。本文中所揭示的发明概念的实施例涉及一种双功能加法器。在一项实施例中,所 述双功能加法器经配置以针对处理器中的系统计算用于硬件预提取的硬件预提取地址及 从执行算术运算而计算算术运算值。因此,所述加法器(例如,来自图1的加法器112、114) 中的一者可从系统中移除,从而减少系统的大小及功率消耗。为了移除加法器,将到两个加 法器112及114的输入组合以输入到一个加法器中。在一项实施例中,双功能加法器为与 两个常规加法器中的一者相同类型的加法器。共享一用于硬件预提取地址计算及算术运算值计算的加法器的优点在于未常规 地在同一执行循环期间执行所述两个计算。举例来说,硬件预提取常规地在不执行算术运 算的执行循环中发生。结果,一加法器可在不由双功能加法器产生显著定时损失的情况下 执行所述两种类型的操作。除了从系统中移除一加法器外,在一项实施例中,系统还经配置以在当前执行循环中使用来自先前执行循环的所计算的算后增量地址(例如,由图1中的加法器112计算) 而无需存取寄存器堆以加载算后增量地址。常规地,算后增量地址存储于寄存器堆中,接着 在稍后时间被检索。来自先前执行循环的算后增量地址可指向要在当前执行循环中执行的 操作的操作数。为了不需要存取寄存器堆以加载先前计算的算后增量地址,系统包含一反 馈路径,其经配置以将先前计算的算后增量地址输入到多路复用器108 (图1)中以供当前 执行循环中使用以存取数据高速缓冲存储器136。结果,来自先前执行循环的算后增量地址 是可用的,因为其被输入回到系统中以用于当前执行循环。在不存取寄存器堆的情况下使用算后增量地址的优点在于节省了处理器将暂停 执行以读取寄存器堆以获得算后增量地址的时间。因此,包含系统的处理器的速度得以提
尚ο双功能加法器的说明件实施例图2到图5中的示意图说明包括一双功能加法器的电路的示范性实施例。图2的 示意图说明一包括双功能加法器224的示范性系统200,双功能加法器224经配置以计算硬 件预提取地址226并计算算术运算值226。在一项实施例中,系统200在处理器的执行单元 及/或加载/存储单元中。图3的示意图说明一经配置以在不存取寄存器堆的情况下使用 由双功能加法器224计算的算后增量地址的示范性系统300。图4的示意图说明一包括双 功能加法器414的示范性系统400,双功能加法器414经配置以计算硬件预提取地址并计算 加载/存储地址。图5的示意图说明一经配置以在不存取寄存器堆的情况下使用由图4中 的示意图的加法器422计算的算后增量地址的示范性系统500。参看图2,到两个单独加法器(图1中的112及114)的输入经组合且输入到一个 加法器224中。如图1的示意图所说明,到两个加法器112、114(图1)的一个输入源自多 路复用器108。因此,到共享加法器224的第一输入耦合到多路复用器208的输出。在一 项实施例中,多路复用器126 (图1)由多路复用器218替代以在以下两者之间切换(i)用 于硬件预提取及算后增量地址计算的多路复用器210的输出;及(ii)来自寄存器堆的第二 ALU操作数222或用于算术运算的立即ALU操作数220。多路复用器218的输出耦合到共 享加法器224的第二输入。在图2的示意图中,加载/存储地址的计算类似于图1的示意图中的内容。为了 由系统200对硬件预提取地址进行计算,系统200可包括经配置以视计算算后增量地址还 是硬件预提取地址而切换的多路复用器210。多路复用器218接收多路复用器210的输出, 且经配置以视正计算硬件预提取/算后增量地址还是算术运算值234而切换。由系统200 进行的算术运算值的计算可用与图1的示意图中相同的方式计算,除以下内容除外经配 置以在来自寄存器堆的第二 ALU操作数222与立即ALU操作数220之间选择的多路复用器 218进一步接收由多路复用器210输出的算后增量或硬件预提取信息,以便视要执行什么 操作而将信息输出到共享加法器224。在计算硬件预提取或算后增量地址234后,可在随后执行循环中经由反馈环路 226将所述地址输入到多路复用器228中。多路复用器228为用于在当前执行循环的加载 /存储地址或先前执行循环的硬件预提取地址之间选择以便存取数据高速缓冲存储器232 的控制逻辑的一项实施例。其它实施例可包括(但不限于)比较器、切换器或用于在加载 /存储地址与硬件预提取地址之间选择的其它数字逻辑。
参看图3,与图2的示意图中一样,系统300包括双功能加法器224。系统300进 一步包括在先前执行循环中所计算的算后增量地址到多路复用器302的输入的反馈环路 226。在一项实施例中,多路复用器302经配置以用于第三输入,以便接收算后增量地址 234。因此,多路复用器302可经配置以视正由处理器执行的操作而在算后增量地址234、 ALU第一运算204及来自加法器206的加载/存储地址之间选择。举例来说,如果处理器使 用算后增量地址以存取数据高速缓冲存储器232以获得一值,则多路复用器302将算后增 量地址输出到多路复用器228以输出存储器地址230以存取数据高速缓冲存储器232。参看图4,系统400包括一经配置以计算硬件预提取地址并计算加载/存储地址 的双功能加法器414。在一项实施例中,多路复用器410在用以计算加载/存储地址的信 息(立即操作数408)与用以计算硬件预提取地址的信息(多路复用器406的输出)之间 选择。为了计算加载/存储地址,多路复用器412将来自寄存器堆的存储器地址432输出 到双功能加法器414。多路复用器410可选择立即操作数408以用于到加法器414中的第 二输入。接着可通过加法器414来计算加载/存储地址,并将其输出到多路复用器416。在 一项实施例中,多路复用器416可进一步从加法器414接收硬件预提取地址。当处理器正 执行加载/存储操作时,多路复用器416可选择加载/存储地址。接着将加载/存储地址 作为存储器地址418从多路复用器416输出以用于存取数据高速缓冲存储器420。为了计算硬件预提取地址,首先在第一执行循环中由加法器414计算加载/存储 地址,接着在第二执行循环中由多路复用器412来选择在第一执行循环中所计算的加载存 储地址并将其输入到地址产生加法器414中。用于计算硬件预提取地址的到加法器414的 其它输入为硬件预提取减量地址402或硬件预提取增量地址404。多路复用器406在硬件 预提取减量地址402与硬件预提取增量地址404404之间选择。在系统400中,ALU加法器422计算算后增量地址。因此,因为双功能加法器414 并不计算算后增量地址,所以多路复用器406不需要算后增量426。当加法器414正计算硬 件预提取地址时,多路复用器410可选择多路复用器406的输出。加法器414接着将增量 地址/减量地址402、404与加载/存储地址相加以产生硬件预提取地址,其被输出到多路 复用器416。因为硬件预提取地址及加载/存储地址由双功能加法器414来计算且由多路复用 器416来输出,所以系统400不需要多路复用器以在加载/存储地址与硬件预提取地址之 间选择。在一项实施例中,将由多路复用器416输出的地址用作存储器地址418以存取数 据高速缓冲存储器420而与所述地址是硬件预提取地址还是加载/存储地址无关。为了计算算术运算值,加法器422可在第一输入处接收来自寄存器堆的第一操作 数432,并在第二输入处接收来自寄存器堆的立即操作数(亦即,常数)428或第二操作数 430。为了接收来自寄存器堆的第一操作数432,多路复用器412将操作数432输出到多路 复用器416。因为双功能加法器414可接收两种不同类型的输入(亦即,来自寄存器堆的存 储器操作数432或先前由加法器414计算的加载/存储地址),所以系统400包含多路复用 器412。因此,多路复用器412视系统正在处理(i)加载/存储或算术运算还是(ii)硬件 预提取而选择来自寄存器堆的操作数(存储器或ALU) 432或加载/存储地址。除了计算算术运算值外,ALU加法器422可进一步计算算后增量地址。为了计算算 后增量地址,加法器422还可接收算后增量426。因此,多路复用器424视加法器422正在计算算后增量地址还是算术运算值而在ALU操作数428及430与算后增量426之间选择。参看图5,与图4的示意图中一样,系统500包括双功能加法器414。系统500进 一步包括一在先前执行循环中由ALU加法器422计算的算后增量地址到多路复用器502的 输入的反馈环路。在一项实施例中,多路复用器502经配置以用于第三输入,以便接收算后 增量地址。因此,多路复用器502经配置以视正由处理器执行的操作而在算后增量地址、来 自寄存器堆的存储器或ALU操作数414与所计算的加载/存储地址之间选择。举例来说, 如果处理器使用算后增量地址以存取数据高速缓冲存储器420以获得一值,则多路复用器 502将算后增量地址作为存储器地址418输出以存取数据高速缓冲存储器420。在图2到图5的示意图中所说明的每一实施例中,包含两个加法器(其中一者为 双功能加法器)的系统经配置以计算硬件预提取地址、加载/存储地址及来自算术运算的 值。已关于单线程处理器架构描述图2到图5的示意图,但如下文所描述,所述示意图可用 于多线程处理器中。多线稈处理器中的说明件实施例的操作在一示范性实施例中,图2到图5的示意图中所说明的系统200、300、400、500可 在多线程处理器架构中操作。图6为一说明多线程处理器的指令管线600的图。参看图6, 所述图说明在六个线程618-628的时钟602循环X到X+6 (604-616)上的管线600。在所 述实例中,指令(亦即,指令循环)的处理被分成六个操作循环解码(DE)、寄存器堆存取 (RF)、第一执行循环(XI)、第二执行循环(X2)、第三执行循环(X3)及回写(WB)。管线中的 另一可能存在但未展示的操作循环为提取。在所述实例中,每一操作循环可在一个时钟循 环中执行。在一项实施例中,一个指令循环为用以完成一个指令的每一操作循环的时间。举 例来说,线程0618的一个指令循环可为时钟循环X(604)到X+5 (614),或六个时钟循环。如 果管线包括一提取操作循环,则所述指令循环可为七个时钟循环。因此,对于系统200到 300(图2到图3),一个指令循环可包括管线的每一操作循环,例如,解码(DE)、寄存器堆存 取(RF)、第一执行循环(XI)、第二执行循环(X2)、第三执行循环(X3)及回写(WB)。在描述实例加载指令的指令循环中包括的操作循环时,提取操作循环(未图示) 可为一管线操作循环,其中处理器检索并加载指令以用于执行。举例来说,关于图2到图3 的示意图中所说明的系统200及300,可提取线程0 618的用以执行存储器地址A加某常数 的加载的实例指令,以便由处理器执行。DE(630、644、656、666、674、680)为处理器将加载指 令解码成操作数的操作循环。因此,在先前加载指令实例中,处理器在DE 630期间将指令 解码以收集立即操作数及/或寄存器堆的存储操作数的寄存器堆地址。RF(632、646、658、 668、676、682)为处理器从寄存器堆检索操作数的操作循环。因此,处理器可从寄存器堆检 索存储器操作数204(图2到图3)。XI、X2 及 X3(634-638、648-2652、660-664、670-672、678)为处理器分别完成指令 的执行的第一部分、第二部分及第三部分的操作循环。对于加载操作指令,操作循环X1634 可包括由地址产生加法器206 (图2到图3)计算加载/存储地址。操作循环X2636可包括 由多路复用器208、302及多路复用器228 (图2到图3)将加载/存储地址选择为存储器地 址230以用于存取数据高速缓冲存储器232(图2到图3)。X3638可包括存取数据高速缓 冲存储器232以执行加载。WB(640、654)为可将操作数回写到寄存器堆的操作循环。举例来说,如果计算算后增量地址或算术运算值,则在管线操作循环WB期间将算后增量地址或 算术运算值写入到寄存器堆。对于加载指令,处理器可在所述指令的WB期间不将值回写到 寄存器堆。再次参看图2到图3的示意图及图6的图中所说明的管线600,地址产生加法器 206可在管线操作循环Xl期间操作,多路复用器208、210、218、228及302可在管线操作循 环X2期间操作,且在管线操作循环X3期间加法器224可操作且可存取数据高速缓冲存储 器232。举例来说,在系统200 (图2)中,为了计算硬件预提取地址,在管线操作循环Xl期 间由加法器206计算加载/存储地址,在管线操作循环X2期间由多路复用器208将加载/ 存储地址发送到加法器224的第一输入,还在管线操作循环X2期间由多路复用器210、218 将硬件预提取减量地址212或硬件预提取增量地址214发送到加法器224的第二输入,且 在管线操作循环X3期间由加法器224计算硬件预提取地址。在多线程架构中,可同时对来自不同线程的指令执行不同管线操作循环。如所说 明,在时钟循环X+2 608期间,线程0 618可在操作循环Xl 634中,线程1 620可在操作循 环RF 646中,且线程2 622可在操作循环DE 656中。结果,用于多个线程的数据可同时在 系统200、300、400、500中。因为数据可从单个线程的一个操作循环持续到另一操作循环 (例如,可在下一操作循环中将硬件预提取地址或算后增量地址输入回到系统中)且来自 不同线程的多个数据可同时存在于系统中,所以系统200、300、400、500可包括在系统的不 同位置中的临时存储设备,以便存储线程的值,直到线程的下一执行循环为止。举例来说, 当多路复用器228可选择硬件预提取地址以存取数据高速缓冲存储器136时,可存储在操 作循环X3 638(时钟循环X+4 612)期间在线程0中由图3的示意图中的加法器224所计 算的硬件预提取地址,直到下一操作循环X2 (例如,时钟循环X+9)。在一项实施例中,将触 发器插入到系统中,且触发器经配置以存储预定数目的时钟循环的值(例如,存储五个时 钟循环的一硬件预提取地址)。存储设备的其它实施例包括缓冲器、存储器或其它存储装 置。结果,图2到图5的示意图中所说明的系统的示范性实施例可经配置以在单线程 架构及多线程架构中执行。说明性实施例的操作的示范性方法图7到图9为说明图2到图5的示意图中所说明的系统200、300、400、500的操作
的示范性方法的流程图。图7的流程图说明一用于由图2及图3的示意图中所说明的系统 200,300执行硬件预提取、加载/存储或算术运算的示范性方法700。图8的流程图说明一 用于由图4及图5的示意图中所说明的系统400、500执行硬件预提取、加载/存储或算术运 算的示范性方法800。图9的流程图说明用于由图3及图5的示意图中所说明的系统300、 500计算并使用算后增量地址的示范性方法900。参看图7,流程图说明由双功能加法器224 (图2到图3)计算硬件预提取地址及算 术运算值的方法700。在702处开始,处理器确定是否要执行加载/存储操作。如果要执行 加载/存储操作,则在704中加法器206通过将来自寄存器堆的存储器操作数204与立即 操作数220相加而计算加载/存储地址。在于704中计算加载/存储地址后,在706中多 路复用器208及228 (图2)或302及228 (图3)选择加载/存储地址作为存取数据高速缓 冲存储器232时的存储器地址230。
如果在702中处理器确定不将执行加载/存储,则在708中处理器确定是否要执 行硬件预提取。如果要执行硬件预提取,则在710中加法器206通过将来自寄存器堆的存 储器操作数204与立即操作数204相加来计算加载/存储地址。在计算加载/存储地址 后,在712中多路复用器210及218选择要与所计算的加载/存储地址相加的硬件预提取 减量地址212或硬件预提取增量地址214。进行到714,双功能加法器224将来自712的选 定值与加载/存储地址相加以产生硬件预提取地址。在于714中计算硬件预提取地址后, 在716中多路复用器228可选择硬件预提取地址以存取数据高速缓冲存储器232。如先前 所述,可在随后执行循环中执行由多路复用器228进行的硬件预提取地址的选择及硬件预 提取的继续执行。如果在708中处理器确定不将执行硬件预提取,则过程流到718。在718中,多路 复用器218从来自寄存器堆的第二 ALU操作数222或立即ALU操作数220中选择。在一项 实施例中,操作列出所述操作数是要从寄存器堆检索(例如,通过列出操作数的寄存器堆 地址)还是为常数(例如,操作数为常数,而非寄存器堆地址)。多路复用器208选择来自 寄存器堆的第一 ALU操作数204。在选择要被相加以用于算术运算的不同操作数后,在720 中双功能加法器224将来自多路复用器218的选定操作数与来自寄存器堆的操作数204相 加以执行算术运算并产生算术运算值。参看图8,流程图说明其中由双功能加法器414(图4到图5)计算硬件预提取地址 及加载/存储地址的方法800。在802处开始,处理器确定是否要执行加载/存储操作。如 果要执行加载/存储操作,则在804中多路复用器412选择来自寄存器堆的存储器操作数 432,且多路复用器410选择立即操作数428。进行到806,双功能加法器414将多路复用器 412的输出与多路复用器410的输出(分别为存储器操作数432及立即操作数428)相加以 产生加载/存储地址。在于806中计算加载/存储地址后,在808中多路复用器416 (图4) 或502 (图5)选择加载/存储地址作为存取数据高速缓冲存储器420时的存储器地址418。如果在802中处理器确定将不执行加载/存储,则在810中处理器确定是否要执 行硬件预提取。如果要执行硬件预提取,则在812中多路复用器412选择来自寄存器堆的 存储器操作数432且多路复用器410选择立即操作数428。进行到814,双功能加法器414 将多路复用器412的输出与多路复用器410的输出(分别为存储器操作数432及立即操作 数428)相加以产生加载/存储地址。在计算加载/存储地址后,在816中多路复用器406 及410选择要与所计算的加载/存储地址相加的硬件预提取减量地址402或硬件预提取增 量地址404。在一项实施例中,多路复用器412选择所计算的加载/存储地址。可在随后执 行循环中执行在计算加载/存储地址后由多路复用器412进行的加载/存储地址的选择及 继续执行硬件预提取。进行到818,双功能加法器414将来自816的选定硬件增量/减量地 址与加载/存储地址相加以产生硬件预提取地址。在于818中计算硬件预提取地址后,在 820中多路复用器416 (图4)或502 (图5)可选择硬件预提取地址以存取数据高速缓冲存 储器420。如果在810中处理器确定不将执行硬件预提取,则过程流到822。在822中,多路 复用器424从来自寄存器堆的第二 ALU操作数128或立即ALU操作数130中选择。在一项 实施例中,操作列出所述操作数是要从寄存器堆检索(例如,通过列出操作数的寄存器堆 地址)还是为常数(例如,操作数为常数,而非寄存器堆地址)。多路复用器412及416 (图4)或502(图5)选择来自寄存器堆的第一 ALU操作数102。在选择要相加以用于算术运算 的不同操作数后,在824中ALU加法器422将来自多路复用器424的选定操作数与来自寄 存器堆的操作数102相加以执行算术运算并产生算术运算值。参看图9,流程图说明系统300 (图3)及系统500 (图5)包括用于算后增量地址的 反馈环路以便在不存取寄存器堆以读取算后增量地址的情况下计算并使用算后增量地址 的方法900。在902处开始,加法器224 (图3)或加法器422 (图5)计算要写入到寄存器堆 的算后增量地址。处理器接着可将所计算的算后增量地址存储于寄存器堆中。在计算算后 增量地址后,在904中处理器确定算后增量地址是否指向要从存储器加载或要用于随后执 行循环的值。举例来说,如果算后增量地址指向存储器中的用于随后指令的输入操作数,则 输入操作数为要被加载以供随后执行循环期间使用的值。如果算后增量地址指向要加载的操作数,则在906中使用所计算的算后增量地址 以在不存取寄存器堆的情况下存取数据高速缓冲存储器232 (图3)或420 (图5)。因此,处 理器通过使用在系统300或500中持续的算后增量地址而略过从寄存器堆读取算后增量地 址。对于系统300 (图3),将在先前执行循环期间由加法器224所计算的算后增量地址输入 到多路复用器302中,以由多路复用器302及228选择以存取数据高速缓冲存储器232以 检索所需的操作数。对于系统500 (图5),将在先前执行循环期间由加法器422所计算的算 后增量地址输入到多路复用器502中,以由多路复用器502选择以存取数据高速缓冲存储 器420以检索所需的操作数。如果在904中所计算的算后增量地址不指向要加载的操作数,则系统300 (图3) 或500 (图5)视要执行的操作的类型而在下一执行循环中无需算后增量地址且因此存取寄 存器堆以获得所需的操作数。包括上文描述的特征的实例装置包括双功能加法器及算后增量地址反馈环路的系统可包括于任何处理器中,例 如,数字信号处理器。图10到图14的总图说明可并入双功能加法器及/或算后增量反馈 环路以辅助执行加载/存储操作及硬件预提取、硬件预提取及算术运算或在不存取处理器 的寄存器堆的情况下使用算后增量地址的实例装置。所述图被说明为在实例装置的处理器 中包括双功能加法器。图10为说明便携式通信装置1000的示范性实施例的图。如图10的总图中所说 明,便携式通信装置包括一包括数字信号处理器(DSP) 1004的芯片上系统1002。图10的总 图还展示一耦合到数字信号处理器1004及显示器1008的显示器控制器1006。此外,输入 装置1010耦合到DSP 1004。如图所示,存储器1012耦合到DSP 1004。另外,编码器/解 码器(CODEC) 1014可耦合到DSP 1004。扬声器1016及麦克风1018可耦合到CODEC 1014。图10的总图进一步说明一耦合到数字信号处理器1004及无线天线1022的无线 控制器1020。在一特定实施例中,电力供应1024耦合到芯片上系统602。此外,在一特定 实施例中,如图6中所说明,显示器626、输入装置630、扬声器1016、麦克风1018、无线天线 1022及电力供应1024在芯片上系统1002的外部。然而,每一者耦合到芯片上系统1002的 一组件。在一特定实施例中,DSP 1004包括一双功能加法器1080以计算硬件预提取地址 与算术运算值两者或硬件预提取地址与加载/存储地址两者,如先前所描述。图11为说明蜂窝式电话1100的示范性实施例的图。如图所示,蜂窝式电话1100包括一包括耦合在一起的数字基带处理器1104及模拟基带处理器1106的芯片上系统 1102。在一特定实施例中,数字基带处理器1104为数字信号处理器。如图11的总图中所 说明,显示器控制器1108及触摸屏幕控制器1110耦合到数字基带处理器1104。接着,在芯 片上系统1102外部的触摸屏幕显示器1112耦合到显示器控制器1108及触摸屏幕控制器 1110。图11的总图进一步说明视频编码器1114(例如,逐行倒相(PAL)编码器、顺序传 送彩色与记忆制(sequential couleur a memo ire, SECAM)编码器或美国国家电视制式委 员会(NTSC)编码器)耦合到数字基带处理器1104。此外,视频放大器1116耦合到视频编 码器1114及触摸屏幕显示器1112。又,视频端口 1118耦合到视频放大器1116。如图11 的总图中所描绘,通用串行总线(USB)控制器1120耦合到数字基带处理器1104。又,USB 端口 1122耦合到USB控制器1120。存储器1124及用户身份模块(SIM)卡1126还可耦合 到数字基带处理器1104。此外,如图11的总图中所示,数字相机1128可耦合到数字基带处 理器1104。在示范性实施例中,数字相机1128为电荷耦合装置(CXD)相机或互补金属氧化 物半导体(CMOS)相机。如图11的总图中所进一步说明,立体声音频CODEC 1130可耦合到模拟基带处理 器1106。此外,音频放大器1132可耦合到立体声音频CODEC 1130。在一示范性实施例中, 第一立体声扬声器1134及第二立体声扬声器1136耦合到音频放大器1132。麦克风放大器 1138还可耦合到立体声音频CODEC 1130。另外,麦克风1140可耦合到麦克风放大器1138。 在特定实施例中,调频(FM)无线电调谐器1142可耦合到立体声音频CODEC 1130。又,FM天 线1144耦合到FM无线电调谐器1142。此外,立体声耳机1146可耦合到立体声音频CODEC 1130。图11的总图进一步说明射频(RF)收发器1148,其可耦合到模拟基带处理器 1106。RF切换器1150可耦合到RF收发器1148及RF天线1152。小键盘1154可耦合到模 拟基带处理器1106。又,具有麦克风1156的单声道耳机可耦合到模拟基带处理器1106。此 外,振动器装置1158可耦合到模拟基带处理器1106。图11的总图还展示一可耦合到芯片 上系统1102的电力供应1160。在特定实施例中,电力供应1160为将电力提供到蜂窝式电 话1100的各种组件的直流(DC)电力供应。此外,在特定实施例中,电力供应为可充电DC 电池或源自耦合到交流(AC)电源的AC到DC变压器的DC电源。如图11的总图中所描绘,触摸屏幕显示器1112、视频端口 1118、USB端口 1122、相 机1128、第一立体声扬声器1134、第二立体声扬声器1136、麦克风1140、FM天线1144、立体 声耳机1146、RF切换器1150、RF天线1152、小键盘1154、单声道耳机1156、振动器1158及 电力供应1160可在芯片上系统1102的外部。在特定实施例中,数字基带处理器1104包括 一用以计算硬件预提取地址与算术运算值两者或硬件预提取地址与加载/存储地址两者 的双功能加法器1180,如先前所描述。图12为说明无线因特网协议(IP)电话1200的示范性实施例的图。如图所示,无 线IP电话1200包括一包括数字信号处理器(DSP) 1204的芯片上系统1202。显示器控制器 1206可耦合到DSP 1204,且显示器1208耦合到显示器控制器1206。在示范性实施例中,显 示器1208为液晶显示器(IXD)。图12进一步展示小键盘1210可耦合到DSP 1204。快闪存储器1212可耦合到DSP 1204。同步动态随机存取存储器(SDRAM) 1214、静
13态随机存取存储器(SRAM) 1216及电可擦除可编程只读存储器(EEPROM) 1218也可耦合到 DSP 1204。图12的总图还展示发光二极管(LED) 1220可耦合到DSP 1204。另外,在特定 实施例中,语音CODEC 1222可耦合到DSP 1204。放大器1224可耦合到语音CODEC 1222, 且单声道扬声器1226可耦合到放大器1224。图12的总图进一步说明一耦合到语音CODEC 1222的单声道耳机1228。在特定实施例中,单声道耳机1228包括麦克风。无线局域网(WLAN)基带处理器1230可耦合到DSP 1204。RF收发器1232可耦合 到WLAN基带处理器1230,且RF天线1234可耦合到RF收发器1232。在特定实施例中,蓝牙 控制器1236还可耦合到DSP 1204,且蓝牙天线1238可耦合到控制器1236。图12的总图 还展示USB端口 1240也可耦合到DSP 1204。此外,电力供应1242耦合到芯片上系统1202 且将电力提供到无线IP电话1200的各种组件。如图12的总图中所指示,显示器1208、小键盘1210、LED 1220、单声道扬声器 1226、单声道耳机1228、RF天线1234、蓝牙天线1238、USB端口 1240及电力供应1242可在 芯片上系统1202的外部且耦合到芯片上系统1202的一个或一个以上组件。在特定实施例 中,DSP 1204包括双功能加法器1280以计算硬件预提取地址与算术运算值两者或硬件预 提取地址与加载/存储地址两者,如先前所描述。图13为说明便携式数字助理(PDA)900的示范性实施例的图。如图所示,PDA 1300 包括一包括数字信号处理器(DSP) 1304的芯片上系统1302。触摸屏幕控制器1306及显示 器控制器1308耦合到DSP 1304。此外,触摸屏幕显示器1310耦合到触摸屏幕控制器1306 并耦合到显示器控制器1308。图13的总图还指示小键盘1312可耦合到DSP1304。在特定实施例中,立体声音频CODEC 1326可耦合到DSP 1304。第一立体声放大器 1328可耦合到立体声音频CODEC 1326,且第一立体声扬声器1330可耦合到第一立体声放 大器1328。另外,麦克风放大器1332可耦合到立体声音频CODEC 1326,且麦克风1334可 耦合到麦克风放大器1332。图13的总图进一步展示第二立体声放大器1336可耦合到立体 声音频CODEC 1326且第二立体声扬声器1338可耦合到第二立体声放大器1336。在特定实 施例中,立体声耳机1340还可耦合到立体声音频CODEC 1326。图13的总图还说明802. 11控制器1342可耦合到DSP 1304且802. 11天线1344 可耦合到802. 11控制器1342。此外,蓝牙控制器1346可耦合到DSP 1304,且蓝牙天线1348 可耦合到蓝牙控制器1346。USB控制器1350可耦合到DSP 1304,且USB端口 1352可耦合 到USB控制器1350。另外,智能卡1354 (例如,多媒体卡(MMC)或安全数字卡(SD))可耦合 到DSP 1304。此外,电力供应1356可耦合到芯片上系统1302且可将电力提供到PDA 1300 的各种组件。如图13的总图中所指示,显示器1310、小键盘1312、IrDA端口 1322、数字相机 1324、第一立体声扬声器1330、麦克风1334、第二立体声扬声器1338、立体声耳机1340、 802. 11天线1344、蓝牙天线1348、USB端口 1352及电力供应1350可在芯片上系统1302外 部且耦合到芯片上系统上的一个或一个以上组件。在特定实施例中,DSP 1304包括双功能 加法器1380以计算硬件预提取地址与算术运算值两者或硬件预提取地址与加载/存储地 址两者,如先前所描述。图14为说明音频文件播放器(例如,MP3播放器)1400的示范性实施例的图。如 图所示,音频文件播放器1400包括一包括数字信号处理器(DSP) 1404的芯片上系统1402。显示器控制器1406可耦合到DSP 1404,且显示器1408耦合到显示器控制器1406。在示范 性实施例中,显示器1408为液晶显示器(IXD)。小键盘1410可耦合到DSP 1404。如图14的总图中进一步描绘,快闪存储器1412及只读存储器(ROM) 1414可耦合 到DSP 1404。另外,在特定实施例中,音频CODEC 1416可耦合到DSP 1404。放大器1418可 耦合到音频CODEC 1416,且单声道扬声器1420可耦合到放大器1418。图14的总图进一步 指示麦克风输入1422及立体声输入1424也可耦合到音频CODEC 1416。在特定实施例中, 立体声耳机1426也可耦合到音频CODEC 1416。USB端口 1428及智能卡1430可耦合到DSP 1404。另外,电力供应1432可耦合到 芯片上系统1402,且可将电力提供到音频文件播放器1400的各种组件。如图14的总图中所指示,显示器1408、小键盘1410、单声道扬声器1420、麦克风 输入1422、立体声输入1424、立体声耳机1426、USB端口 1428及电力供应1432在芯片上系 统1402的外部且耦合到芯片上系统1402上的一个或一个以上组件。在特定实施例中,DSP 1404包括双功能加法器1480以计算硬件预提取地址与算术运算值两者或硬件预提取地址 与加载/存储地址两者,如先前所描述。鐘已仅出于说明及描述的目的而呈现对本文所揭示的发明概念的实施例的前述描 述,且所述描述并不希望是详尽的或将本文所揭示的发明概念限于所揭示的精确形式。在 不脱离本文所揭示的发明概念的精神及范围的情况下,所属领域的技术人员将显而易见众 多修改及调适。
权利要求
一种系统,其包含经配置以针对第一指令确定以下内容的第一加法器在所述第一指令为硬件预提取指令的情况下,确定用于硬件预提取的地址;以及在所述第一指令为算术运算指令的情况下,确定来自算术运算的值。
2.根据权利要求1所述的系统,其进一步包含可通信地耦合到所述第一加法器的第二 加法器,其中所述第二加法器经配置以确定用于加载/存储操作的地址。
3.根据权利要求2所述的系统,其进一步包含控制逻辑,其可通信地耦合到所述第一加法器及所述第二加法器,其中所述控制逻辑 经配置以从先前执行循环期间所述第一加法器的输出及当前执行循环期间所述第二加法 器的输出中选择。
4.根据权利要求3所述的系统,其进一步包含可通信地耦合到所述控制逻辑的数据高 速缓冲存储器,其中所述控制逻辑进一步经配置以使用所述第一加法器的所述输出或所述 第二加法器的所述输出中的一者来存取所述数据高速缓冲存储器。
5.根据权利要求1所述的系统,其中所述第一加法器进一步经配置以确定算后增量地址。
6.根据权利要求5所述的系统,其进一步包含可通信地耦合到所述第二加法器的旁 路,其中所述旁路经配置以将在所述先前执行循环期间由所述第一加法器输出的所述算后 增量地址发送到所述当前执行循环期间所述第二加法器的输入。
7.根据权利要求3所述的系统,其进一步包含可通信地耦合到所述第一加法器及所述 第二加法器的寄存器堆,其中所述寄存器堆经配置以接收来自所述第一加法器的所述输出; 将存储器操作数发送到所述第二加法器;以及 将算术逻辑单元(ALU)操作数发送到所述第二加法器。
8.根据权利要求3所述的系统,其中所述系统是在多线程架构中。
9.根据权利要求8所述的系统,其中所述系统经配置以存储在线程的先前时钟循环期 间确定的所述第二加法器的所述输出,直到所述线程的所述当前时钟循环为止。
10.一种方法,其包含在第一指令为硬件预提取指令的情况下,由第一加法器确定用于硬件预提取的地址;以及在所述第一指令为算术运算指令的情况下,由所述第一加法器确定来自算术运算的值。
11.根据权利要求10所述的方法,其进一步包含由可通信地耦合到所述第一加法器的第二加法器确定用于加载/存储操作的地址;以及由可通信地耦合到所述第一加法器及所述第二加法器的控制逻辑从先前执行循环期 间所述第一加法器的输出及当前执行循环期间所述第二加法器的输出中选择。
12.根据权利要求11所述的方法,其进一步包含使用所述第一加法器的所述输出或所 述第二加法器的所述输出中的一者来存取可通信地耦合到所述控制逻辑的数据高速缓冲 存储器。
13.根据权利要求12所述的方法,其进一步包含由所述第一加法器确定算后增量地址。
14.根据权利要求13所述的方法,其进一步包含将在所述先前执行循环期间由所述第 一加法器输出的所述算后增量地址发送到所述当前执行循环期间所述第二加法器的输入。
15.根据权利要求11所述的方法,其进一步包含由可通信地耦合到所述第一加法器的 寄存器堆存储从所述第一加法器接收的输出。
16.一种系统,其包含用于确定以下内容的装置在第一指令为硬件预提取指令的情况下,确定用于硬件预提取的地址;以及在所述第 一指令为算术运算指令的情况下,确定来自算术运算的值。
17.根据权利要求16所述的系统,其进一步包含用于确定用于加载/存储操作的地址的装置;以及用于从在当前执行循环期间确定的所述加载/存储操作的所述地址及在先前执行循 环期间确定的所述硬件预提取的所述地址中选择的装置。
18.根据权利要求17所述的系统,其进一步包含用于使用选定地址存取数据高速缓冲 存储器的装置。
19.根据权利要求17所述的系统,其中所述用于确定用于所述加载/存储操作的所述 地址的装置进一步包含用于确定算后增量地址的装置。
20.根据权利要求19所述的系统,其进一步包含用于将在所述先前执行循环期间由所 述第一加法器输出的所述算后增量地址发送到所述当前执行循环期间所述第二加法器的 输入的装置。
全文摘要
本发明描述一种包括双功能加法器的系统。在一项实施例中,所述系统包括加法器。所述加法器经配置以针对第一指令在所述第一指令为硬件预提取指令的情况下确定用于硬件预提取的地址。所述加法器进一步经配置以针对所述第一指令在所述第一指令为算术运算指令的情况下确定来自算术运算的值。
文档编号G06F9/38GK101960422SQ200980107479
公开日2011年1月26日 申请日期2009年2月23日 优先权日2008年3月4日
发明者卢奇安·科德雷斯库, 埃里克·J·普隆德克, 阿贾伊·A·英格尔 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1