在数字信号处理器中执行二进制补码运算的系统和方法

文档序号:6568132阅读:353来源:国知局
专利名称:在数字信号处理器中执行二进制补码运算的系统和方法
技术领域
本发明大体上涉及数字信号处理器和使用此类处理器的装置。更明确地说,本发明 涉及在数字信号处理器内执行二进制补码运算。
背景技术
技术进步已产生更小且功能更强大的个人计算装置。举例来说,当前存在多种便携 式个人计算装置,包含无线计算装置,例如小型、重量轻并容易由用户携带的便携式无 线电话、个人数字助理(PDA)和寻呼装置。更明确地说,便携式无线电话(例如,蜂 窝式电话和IP电话)可在无线网络上传递语音和数据包。此外,许多此类无线电话包含 并入在其中的其它类型的装置。举例来说,无线电话还可包含数字静态相机、数字视频 相机、数字记录器和音频文件播放器。并且,此类无线电话可包含可用于访问因特网的 网络接口。因此,这些无线电话包含重要的计算能力。提供并入在无线电话内的不同装置的功能性的一些程序包含需要二进制补码运算的 指令。举例来说,绝对差和可能需要负的差值的二进制补码。可通过反转字节内的每一 位并向经反转的结果添加1来确定特定字节值的二进制补码。使用二进制补码运算可增 加数字信号处理器内的硬件。因此,提供一种用于在数字信号处理器内执行二进制补码运算的改进的系统和方法 将是有利的。 发明内容本发明揭示一种完成二进制补码运算的方法,其包含接收多个字节值,和将所述多 个字节值划分为第一部分和第二部分。此外,所述方法包含将所述第一部分输入到第一 4:2压縮器的第一段,对所述第一部分执行第一 4:2压縮运算以产生具有第一行和从所述 第一行偏移一个位的第二行的第一组结果,以及进位输入(carry in)第一值1以完成第 一二进制补码运算。在特定实施例中,所述方法还包含将所述第二部分输入到第二4:2压縮器的第二段, 和将两个值1直接添加到所述第二部分的右侧以便将第二值1进位输入到所述第二部分, 从而完成第二二进制补码运算。此外,在特定实施例中,所述方法包含对所述第二部分执行第二 4:2压縮运算以产生具有第一行和从所述第一行偏移一个位的第二行的第二组 结果。在另一特定实施例中,所述方法包含将第三值1输入到第一组结果的第二行的偏移 位以便完成第三二进制补码运算。另外,所述方法可包含将第四值1输入到第二组结果 的第二行的偏移位以便完成第四二进制补码运算。所述方法还可包含将第一组结果连同 第一累加器值一起输入到第一 3:2压縮器,以及对第一组结果和累加器值执行第一 3:2压 縮运算以产生具有第一行和从所述第一行偏移一个位的第二行的第三组结果。在又一特定实施例中,所述方法包含将第二组结果连同第二累加器值一起输入到第 二 3:2压縮器,以及对第二组结果和累加器值执行第二 3:2压縮运算以产生具有第一行和 从所述第一行偏移一个位的第二行的第四组结果。并且,所述方法包含将第五值1插入 到第三组结果的第二行的偏移位以便完成第五二进制补码运算。此外,所述方法包含将 第六值1插入到第四组结果的第二行的偏移位以便完成第六二进制补码运算。在另一特定实施例中,所述方法包括将第三组结果输入到第一进位传送加法器 (CPA),和对第三组结果执行第一CPA运算。此外,所述方法包含进位输入第七值1以 便完成第七二进制补码运算,和产生第五组结果。另外,在特定实施例中,所述方法包 含将第四组结果输入到第二进位传送加法器(CPA),和对第四组结果执行第二CPA运算。 并且,所述方法可包含进位输入第八值1以便完成第八二进制补码运算,和产生第六组 结果。所述方法还可包含将第五组结果写入到寄存器的第一部分,和将第六组结果写入 到寄存器的第二部分。在另一实施例中,揭示一种完成一个或一个以上二进制补码运算的方法,其包含确 定八个子字差字节值,确定每一子字差字节值的符号,和反转负的八个子字差字节值的 每一者以产生一组经反转的子字差字节值。此外,在此实施例中,所述方法包含将正的 八个子字差字节值的每一者输入到约简树(reduction tree),和将所述组经反转的子字差 字节值的每一者输入到约简树。在又一实施例中,提供一种指令执行单元,其包含第一 4:2压縮器和耦合到所述第 一 4:2压縮器的控制模块。在此实施例中,控制模块包含用于将八个字节值划分为第 一组四个字节值和第二组四个字节值的逻辑;用于使用第一 4:2压縮器将第一组四个字 节值压縮为具有第一行和第二行的第一组结果的逻辑;用于在压縮第一组四个字节值的 同时进位输入第一值1以便完成第一二进制补码运算的逻辑和用于将第二值1输入到 第一组结果内的第二行的偏移位以便完成第二二进制补码运算的逻辑。在又一实施例中,提供一种数字信号处理器,其包含存储器、响应于所述存储器的 定序器、耦合到所述存储器的寄存器堆,和响应于所述定序器的指令执行单元。在此实 施例中,指令执行单元包含第一4:2压縮器、第二4:2压縮器、耦合到第一 4:2压縮器的 第一3:2压缩器、耦合到第二4:2压缩器的第二3:2压縮器、耦合到第一 3:2压縮器的第 一进位传送加法器,和耦合到第二 3:2压縮器的第二进位传送加法器。此外,控制模块 耦合到第一4:2压缩器、第二4:2压缩器、第一3:2压縮器、第二3:2压縮器、第一进位 传送加法器和第二进位传送加法器。控制模块包含用于将八个字节值划分为第一组四 个字节值和第二组四个字节值的逻辑;用于使用第一 4:2压縮器将第一组四个字节值压 縮为具有第一行和第二行的第一组结果的逻辑;用于在压縮第一组四个字节值的同时进 位输入第一值1以便完成第一二进制补码运算的逻辑;和用于将第二值1输入到第一组 结果内的第二行的偏移位以便完成第二二进制补码运算的逻辑。在又一实施例中,揭示一种便携式通信装置,其包含数字信号处理器。所述数字信 号处理器包含存储器、响应于所述存储器的定序器、耦合到所述存储器的寄存器堆,和 响应于所述定序器的指令执行单元。指令执行单元包含第一 4:2压縮器、第二 4:2压縮器、 耦合到第一4:2压缩器的第一3:2压缩器、耦合到第二 4:2压缩器的第二 3:2压缩器、耦 合到第一 3:2压縮器的第一进位传送加法器,和耦合到第二 3:2压縮器的第二进位传送加 法器。控制模块耦合到第一4:2压縮器、第二4:2压縮器、第一3:2压缩器、第二3:2压 縮器、第一进位传送加法器和第二进位传送加法器。控制模块包含用于在使用第一 4:2 压缩器、第二4:2压縮器、第一3:2压縮器、第二 3:2压縮器、第一进位传送加法器和第 二进位传送加法器处理八个字节值的同时完成多达八个二进制补码运算的逻辑。在另一实施例中,揭示一种处理器装置,其包含用于接收多个字节值的装置、用于 将所述多个字节值划分为第一部分字节值和第二部分字节值的装置、用于将所述第一部 分字节值输入到第一 4:2压縮器的下半部的装置、用于对所述第一部分字节值执行第一 4:2压縮运算以产生具有第一行和从所述第一行偏移一个位的第二行的第一组结果的装 置,以及用于进位输入值1以完成第一二进制补码运算的装置。在又一实施例中,提供一种处理器装置,其包含用于确定八个子字差字节值的装置、 用于确定每一子字差字节值的符号的装置、用于反转每一负的子字差字节值以产生经反 转的子字差字节值的装置、用于将每一正的子字差字节值输入到约简树的装置、用于将 每一经反转的子字差字节值输入到约简树的装置,以及用于通过在对八个子字差字节值 执行多个约简运算的同时添加多达八个1来完成多达八个二进制补码运算的装置。本文揭示的一个或一个以上实施例的一个优点可包含在数字信号处理器内执行多个 字节约简运算的同时完成多达八个二进制补码运算。另一优点可包含大大减少了在数字信号处理器内执行二进制补码运算所必需的硬件。在审阅整个申请案(包含以下部分


具体实施方式
和权利要求书)之后 将了解本发明的其它方面、优点和特征。

结合附图,参看以下具体实施方式
,将更容易了解本文描述的实施例的各方面和附 随的优点,附图中图1是示范性数字信号处理器的概括示图;图2是说明示范性指令执行单元的示图;图3是说明对多个指令字执行绝对差和的方法的流程图;图4是说明输入完成多达八个二进制补码运算所必需的多达八个粘着1 (sticky one)的方法的流程图;图5是并入有数字信号处理器的便携式通信装置的概括示图图6是并入有数字信号处理器的示范性蜂窝式电话的概括示图;图7是并入有数字信号处理器的示范性无线因特网协议电话的概括示图;图8是并入有数字信号处理器的示范性便携式数字助理的概括示图;以及图9是并入有数字信号处理器的示范性音频文件播放器的概括示图。
具体实施方式
图1说明数字信号处理器(DSP) 100的示范性、非限定性实施例的框图。如图1中 所说明,DSP100包含经由总线106耦合到定序器104的存储器102。如本文所使用,词 汇"耦合"可指示两个或两个以上组件直接耦合或间接耦合。在特定实施例中,总线106 是六十四(64)位总线,且定序器104经配置以从存储器102检索长度为三十二 (32) 位或六十四(64)位的指令。总线106耦合到第一指令执行单元108、第二指令执行单 元110、第三指令执行单元112和第四指令执行单元114。图1指示每一指令执行单元108、 110、 112、 114可经由第一总线118耦合到通用寄存器堆116。通用寄存器堆116还可经 由第二总线120耦合到定序器104和存储器102。在特定实施例中,存储器102包含第一指令高速缓冲存储器122、第二指令高速缓 冲存储器124、第三指令高速缓冲存储器126、第四指令高速缓冲存储器128、第五指令高速缓冲存储器130和第六指令高速缓冲存储器132。在操作期间,指令高速缓冲存储 器122、 124、 126、 128、 130、 132可由定序器104彼此独立地存取。另外,在特定实施 例中,每一指令高速缓冲存储器122、 124、 126、 128、 130、 132包含多个指令、用于每 一指令的指令操纵数据,和用于每一指令的指令预解码数据。如图1中所说明,存储器102可包含指令队列134,其包含用于每一指令高速缓冲 存储器122、 124、 126、 128、 130、 132的指令队列。明确地说,指令队列134包含与第 一指令高速缓冲存储器122相关联的第一指令队列136、与第二指令高速缓冲存储器124 相关联的第二指令队列138、与第三指令高速缓冲存储器126相关联的第三指令队列140、 与第四指令高速缓冲存储器128相关联的第四指令队列142、与第五指令高速缓冲存储 器130相关联的第五指令队列144,和与第六指令高速缓冲存储器132相关联的第六指 令队列146。在操作期间,定序器104可经由指令队列134从每一指令高速缓冲存储器122、 124、 126、 128、 130、 132提取指令。在特定实施例中,定序器104以从第一指令队列136到 第六指令队列146的次序而从指令队列136、 138、 140、 142、 144、 146提取指令。从第 六指令队列146提取指令之后,定序器104返回第一指令队列136,并继续依次从指令 队列136、 138、 140、 142、 144、 146提取指令。在特定实施例中,定序器104作为双向超标量定序器而在支持超标量指令的第一模 式下操作。此外,在特定实施例中,定序器还在支持超长指令字(VLIW)指令的第二模 式下操作。明确地说,定序器可作为四向VLIW定序器操作。在特定实施例中,第一指 令执行单元108可执行加载指令、存储指令和算术逻辑单元(ALU)指令。第二指令执 行单元IIO可执行加载指令和ALU指令。并且,第三指令执行单元可执行相乘指令、相 乘-累加指令(MAC)、 ALU指令、程序重定向构造和转移寄存器(CR)指令。图l进一 步指示第四指令执行单元114可执行移位(S)指令、ALU指令、程序重定向构造和CR 指令。在特定实施例中,程序重定向构造可以是零开销环路、分支指令、跳转(J)指令 等。如图1中所描绘,通用寄存器116包含第一统一寄存器堆148、第二统一寄存器堆 150、第三统一寄存器堆152、第四统一寄存器堆154、第五统一寄存器堆156和第六统 一寄存器堆158。每一统一寄存器堆148、 150、 152、 154、 156、 158对应于存储器102 内的指令高速缓冲存储器122、 124、 126、 128、 130、 132。此外,在特定实施例中,每 一统一寄存器堆148、 150、 152、 154、 156、 158具有相同构造且包含若干数据操作数和若干地址操作数。在数字信号处理器100的操作期间,指令由定序器104从存储器102提取、发送到 指定的指令执行单元108、 110、 112、 114,并在指令执行单元108、 110、 112、 114处执 行。此外,从通用寄存器116 (例如,统一寄存器堆148、 150、 152、 154、 156、 158中 的一者)检索一个或一个以上操作数并在执行指令期间使用。每一指令执行单元108、110、 112、 114处的结果可写入到通用寄存器116,即写入到统一寄存器堆148、 150、 152、 154、 156、 158中的一者。参看图2,展示指令执行单元的示范性、非限定性实施例,且其大体表示为200。在 特定实施例中,指令执行单元200可并入到图1所示的系统100中。举例来说,图2所 示的指令执行单元200可代替第四指令执行单元114。如图2中所描绘,指令执行单元 200包含耦合到移位/符号扩展单元204的向量区块202。此外,第一 4:2压縮器206和第 二4:2压縮器208耦合到移位/符号扩展单元204。在特定实施例中,第一3:2压缩器210 耦合到第一4:2压縮器206。此外,在特定实施例中,第二 3:2压縮器212可耦合到第二 4:2压缩器208。图2还指示第一进位传送加法器(CPA) 214可耦合到第一3:2压縮器210。并且, 第二CPA216可耦合到第二3:2压縮器212。如图2中所描绘,在说明性实施例中,饱和 /充填/截取单元218耦合到第一 CPA 214和第二 CPA 216。控制模块220可耦合到移位/ 符号扩展单元204、第一4:2压縮器206、第二 4:2压縮器208、第一3:2压縮器210、第 二3:2压缩器212、第一CPA214和第二 CPA216。并且,如图2中所指示,指令执行单 元200可耦合到寄存器220,且压縮运算和CPA运算的结果可写入到寄存器220。图2 进一步展示反相器224可耦合到控制模块222。图3展示在数字信号处理器的指令执行单元(例如,图2所示的指令执行单元200) 内执行多个二进制补码运算的方法的示范性、非限定性实施例。在框300处开始,计算 多个子字差。在特定实施例中,所述多个子字差的每一者是八位宽的字节。此外,每一 子字差表示第一字的第一部分与第二字的第一部分之间的差或第一字的第二部分与第二 字的第二部分之间的差。移动到决策步骤304,移位/符号扩展单元确定每一子字差的符 号为正还是负。在框304处,反转每一负的子字差。随后,在框306处,将每一经反转的子字差(例 如)从耦合到移位/符号扩展单元的向量块传送到移位/符号扩展单元。所述方法接着进行 到框308。返回决策步骤302,如果子字差的符号为正,那么所述方法进行到框310,且将原始子字差传送到移位/符号扩展单元。随后,逻辑进行到框308。在框308处,移位/符号扩展单元将每一原始子字差和每一经反转子字差符号扩展为 32位。移动到框312,符号/移位扩展器将经符号扩展的原始子字差和经符号扩展的经反 转子字差输入到约简树,所述约简树包含一对4:2压縮器、 一对3:2压縮器和一对进位传 送加法器。在框314处,约简树对输入至其的子字差执行32位字节约简,同时针对每一 经反转子字差添加"粘着"1以便完成每一经反转子字差的二进制补码运算。接着,在 框316处,约简树将字节约简的结果写入到寄存器。所述方法接着结束于状态318。参看图4,展示在约简树内添加多达八个粘着1以完成多达八个二进制补码运算的 方法,所述方法开始于框400。在框400处,移位/符号扩展单元接收多个字节。在特定 实施例中,移位/符号扩展单元接收八个字节,且每一字节包含八个位。在特定实施例中, 每一字节对应于两个字之间的子字差。在框402处,移位/符号扩展单元将每一字节划分 为第一部分和第二部分。在特定实施例中,第一部分包含第一组四个位(例如,字节0 到字节3),且第二部分包含第二组四个位(例如,字节4到字节7)。移动到框404,移位/符号扩展单元将第一部分字节值输入到第一 4:2压縮器。在特 定实施例中,第一4:2压縮器是包含四行64个位(例如,0到63)的64位压縮器。此 外,在特定实施例中,移位/符号扩展单元将第一部分字节值输入到第一4:2压縮器的第 一段,例如第一4:2压縮器的最低有效位。在特定实施例中,第一4:2压縮器的最低有效 位包含第一 4:2压縮器的每一行的最低有效32位,例如每一行的位0到位31 。进行到框406,移位/符号扩展单元将第二部分字节值输入到第二 4:2压縮器。在特 定实施例中,第二4:2压縮器是64位压縮器,且移位/符号扩展单元将第二部分字节值输 入到第二4:2压縮器的第二部分,例如第二4:2压縮器的最高有效位。第二4:2压縮器的 最高有效位包含第二 4:2压缩器的每一行的最高有效32位,例如每一行的位32到位63。在框408处,第一 4:2压縮器执行第一 4:2压缩并进位输入由耦合到第一 4:2压縮器 的控制模块提供的第一粘着1位。在特定实施例中,第一粘着1位完成第一二进制补码 运算。接着,在框410处,第二 4:2压縮器执行第二 4:2压縮并在其中产生第二粘着1位。 在特定实施例中,通过添加紧密邻近于第二4:2压縮器内(例如,行1的位31内和行2 的位31内)的字节值中的两者的开头的两个l来产生第二粘着l位。因而,将第二粘着 l位移入4:2压縮的结果中。第二粘着完成第二二进制补码运算。进行到框412,第一4:2压縮器产生第一组结果。在特定实施例中,第一组结果包含 第一行和第二行。此外,在特定实施例中,第二行从所述第一行偏移一个位,即第一组结果内的第二行向左偏移一个位。因而,第二行在第二行的位0前包含偏移位,且偏移 位是第二行内的最低有效位。移动到框414,第二4:2压縮器产生第二组结果。在特定实 施例中,第二组结果包含第一行和第二行。此外,在特定实施例中,第二行从所述第一 行偏移一个位,即第二组结果内的第二行向左偏移一个位。移动到框416,控制模块将第三粘着1位输入到第一组结果的第二行,例如输入到 第一组结果的第二行内的偏移位,以便完成第三二进制补码运算。在框418处,控制模 块将第四粘着1位输入到第二组结果的第二行,例如输入到第二组结果的第二行内的偏 移位,以便完成第四二进制补码运算。继续到框420,第一4:2压縮器将包含第三粘着1 位的第一组结果输入到第一3:2压缩器。在框422处,第二 4:2压縮器将包含第四粘着1 位的第二组结果输入到第二 3:2压縮器。在框424处,第一 3:2压縮器对第一组结果和从控制模块输入的第一累加器值执行 第一3:2压縮。此外,在框426处,第二 3:2压縮器对第二组结果和从控制模块输入的第 二累加器值执行第二3:2压縮。进行到框428,第一 3:2压縮器产生第三组结果,在特定 实施例中,第三组结果包含第一行和向第一行的左侧偏移一个位的第二行。在框430处, 第二 3:2压縮器产生第四组结果,在特定实施例中,第四组结果包含第一行和相对于第 一行的左侧偏移一个位的第二行。进行到框432,控制模块将第五粘着1位添加到第一组结果的第二行以便完成第五 二进制补码运算。随后,在框434处,控制模块将第六粘着l位添加到第四组结果的第 二行以便完成第六二进制补码运算。移动到框436,第一3:2压缩器将第三组结果输入到 第一进位传送加法器(CPA)。在框438处,第二 3:2压縮器将第四组结果输入到第二 CPA。继续到框440,第一CPA对第三组结果执行第一CPA运算,并进位输入由控制模块 提供的第七粘着l位以便完成第六二进制补码运算。在框442处,第二CPA对第四组结 果执行第二CPA运算,并进位输入第八粘着l位以便完成第八二进制补码运算。接着, 在框444处,第一CPA产生第五组结果。在框446处,第二 CPA产生第六组结果。进行 到框448,第一CPA将第五组结果写入到64位寄存器的第一部分,例如64位寄存器的 前32位或64位寄存器的下半部。在框450处,第二CPA将第六组结果写入到64位寄 存器的第二部分,例如64位寄存器的后32位或64位寄存器的前半部。所述方法接着结 束于状态452。图5说明一般表示为520的便携式通信装置的示范性、非限定性实施例。如图5中 所说明,便携式通信装置包含片上系统522,所述片上系统522包含数字信号处理器524。在特定实施例中,数字信号处理器524是图l所示且本文所描述的数字信号处理器。此 外,在特定实施例中,数字信号处理器524可包含如图2中所说明的指令执行单元。图 5还展示耦合到数字信号处理器524和显示器528的显示器控制器526。此外,输入装置 530耦合到数字信号处理器524。如图所示,存储器532耦合到数字信号处理器524。另 外,编码器/解码器(CODEC) 534可耦合到数字信号处理器524。扬声器536和麦克风 538可耦合到CODEC 534。图5还指示无线控制器540可耦合到数字信号处理器524和无线天线542。在特定 实施例中,电源544耦合到片上系统522。此外,在特定实施例中,如图5中所说明, 显示器528、输入装置530、扬声器536、麦克风538、无线天线542和电源544在片上 系统522外部。然而,每一者耦合到片上系统522的一组件。在特定实施例中,数字信号处理器524利用交错多线程技术来处理与执行便携式通 信装置520的各个组件所需的功能性和操作所必要的程序线程相关联的指令。举例来说, 当经由无线天线建立无线通信对话时,用户可向麦克风538中讲话。表示用户的语音的 电子信号可发送到CODEC 534以进行编码。数字信号处理器524可为CODEC 534执行 数据处理以对来自麦克风的电子信号进行编码。此外,经由无线天线542接收到的传入 信号可由无线控制器540发送到CODEC 534以进行解码,并发送到扬声器536。数字信 号处理器524还可在CODEC 534解码经由无线天线542接收到的信号时为CODEC 534 执行数据处理。此外,在无线通信对话之前、期间或之后,数字信号处理器524可处理从输入装置 530接收到的输入。举例来说,在无线通信对话期间,用户可能正使用输入装置530和 显示器528经由内嵌在便携式通信装置520的存储器532内的网络浏览器在因特网上冲 浪。数字信号处理器524可如本文所描述交错输入装置530、显示器控制器526、显示器 528、 CODEC 534和无线控制器540所使用的各个程序线程,以有效地控制便携式通信 装置520和其中的各个组件的操作。与各个程序线程相关联的指令中的许多指令在一个 或一个以上时钟周期期间同时执行。因而,大大减少由于浪费的时钟周期而引起的功率 和能量消耗。参看图6,展示蜂窝式电话的示范性、非限定性实施例,其一般表示为620。如图所 示,蜂窝式电话620包含片上系统622,其包含耦合在一起的数字基带处理器624和模 拟基带处理器626。在特定实施例中,数字基带处理器624是数字信号处理器,例如图l 所示且本文所描述的数字信号处理器。此外,在特定实施例中,模拟基带处理器626也可以是数字信号处理器,例如图l所示的数字信号处理器。在特定实施例中,数字信号 处理器的每一者可包含如图2中所说明的指令执行单元。如图6中所说明,显示器控制 器628和触摸屏控制器630耦合到数字基带处理器624。处于片上系统622外部的触摸 屏显示器632又耦合到显示器控制器628和触摸屏控制器630。图6进一步指示视频编码器634 (例如,逐行倒相(PAL)编码器、顺序传送彩色与 存储(SECAM)编码器或国家电视系统委员会(NTSC)编码器)耦合到数字基带处理 器624。此外,视频放大器636耦合到视频编码器634和触摸屏显示器632。并且,视频 端口 638耦合到视频放大器636。如图6中所描绘,通用串行总线(USB)控制器640 耦合到数字基带处理器624。并且,USB端口 642耦合到USB控制器640。存储器644 和订户识别模块(SIM)卡646也可耦合到数字基带处理器624。此外,如图6所示,数 字相机648可耦合到数字基带处理器624。在示范性实施例中,数字相机648是电荷耦 合装置(CCD)相机或互补金属氧化物半导体(CMOS)相机。如图6中进一步说明,立体声音频CODEC 650可耦合到模拟基带处理器626。此外, 音频放大器652可耦合到立体声音频CODEC 650。在示范性实施例中,第一立体声扬声 器654和第二立体声扬声器656耦合到音频放大器652。图6展示麦克风放大器658也 可耦合到立体声音频CODEC 650。另外,麦克风660可耦合到麦克风放大器658。在特 定实施例中,调频(FM)无线电调谐器662可耦合到立体声音频CODEC 650。并且, FM天线664耦合到FM无线电调谐器662。此外,立体声耳机666可耦合到立体声音频 CODEC 650。图6进一步指示射频(RF)收发器668可耦合到模拟基带处理器626。 RF开关670 可耦合到RF收发器668和RF天线672。如图6所示,键盘674可耦合到模拟基带处理 器626。并且,带有麦克风的单声道头戴受话器676可耦合到模拟基带处理器626。此外, 振动装置678可耦合到模拟基带处理器626。图6还展示电源680可耦合到片上系统622。 在特定实施例中,电源680是直流电(DC)电源,其向蜂窝式电话620的需要电力的各 个组件提供电力。此外,在特定实施例中,所述电源是可再充电DC电池或DC电源,其 从交流电(AC)导出到连接到AC电源的DC变压器。在特定实施例中,如图6中所描绘,触摸屏显示器632、视频端口 638、 USB端口 642、相机648、第一立体声扬声器654、第二立体声扬声器656、麦克风660、 FM天线 664、立体声耳机666、 RF开关670、 RF天线672、键盘674、单声道头戴受话器676、 振动装置678和电源680处于片上系统622外部。此外,在特定实施例中,数字基带处理器624和模拟基带处理器626可使用本文描述的交错多线程技术来处理与和蜂窝式电 话620相关联的不同组件的一者或一者以上相关联的各种程序线程。参看图7,展示无线因特网协议(IP)电话的示范性、非限定性实施例,其一般表示 为700。如图所示,无线IP电话700包含片上系统702,所述片上系统702包含数字信 号处理器(DSP) 704。在特定实施例中,DSP 704是图l所示且本文所描述的数字信号 处理器。此外,在特定实施例中,数字信号处理器704可包含如图2中所说明的指令执 行单元。如图7中所说明,显示器控制器706耦合到DSP 704,且显示器708耦合到显 示器控制器706。在示范性实施例中,显示器708是液晶显示器(LCD)。图7进一步展 示键盘710可耦合到DSP704。如图7中进一步描绘,快闪存储器712可耦合到DSP 704。同步动态随机存取存储 器(SDRAM) 714、静态随机存取存储器(SRAM) 716和电可擦除可编程只读存储器 (EEPROM) 718也可耦合到DSP 704。图7还展示发光二极管(LED) 720可耦合到DSP 704。另外,在特定实施例中,语音CODEC 722可耦合到DSP 704。放大器724可耦合 到语音CODEC 722,且单声道扬声器726可耦合到放大器724。图7进一步指示单声道 头戴受话器728也可耦合到语音CODEC 722。在特定实施例中,单声道头戴受话器728 包含麦克风。图7还说明无线局域网(WLAN)基带处理器730可耦合到DSP704。 RF收发器732 可耦合到WLAN基带处理器730,且RF天线734可耦合到RF收发器732。在特定实施 例中,蓝牙控制器736也可耦合到DSP704,且蓝牙天线738可耦合到控制器736。图7 还展示USB端口 740也可耦合到DSP 704。此外,电源742耦合到片上系统702,并经 由片上系统702将电力提供到无线IP电话700的各个组件。在特定实施例中,如图7中所指示,显示器708、键盘710、 LED 720、单声道扬声 器726、单声道头戴受话器728、 RF天线734、蓝牙天线738、 USB端口 740和电源742 处于片上系统702外部。然而,这些组件中的每一者耦合到片上系统的一个或一个以上 组件。此外,在特定实施例中,数字信号处理器704可使用本文描述的交错多线程技术 来处理与IP电话700相关联的不同组件的一者或一者以上相关联的各种程序线程。图8说明一般表示为800的便携式数字助理(PDA)的示范性、非限定性实施例。 如图所示,PDA800包含片上系统802,所述片上系统802包含数字信号处理器(DSP) 804。在特定实施例中,DSP804是图l所示且本文所描述的数字信号处理器。此外,在 特定实施例中,数字信号处理器804可包含如图2中所说明的指令执行单元。如图8中所描绘,触摸屏控制器806和显示器控制器808耦合到DSP 804。此外,触摸屏显示器 810耦合到触摸屏控制器806并耦合到显示器控制器808。图8还指示键盘812可耦合到 DSP 804。如图8中进一步描绘,快闪存储器814可耦合到DSP 804。并且,只读存储器(ROM) 816、动态随机存取存储器(DRAM) 818和电可擦除可编程只读存储器(EEPROM) 820 可耦合到DSP804。图8还展示红外数据协会(IrDA)端口 822可耦合到DSP804。另夕卜, 在特定实施例中,数字相机824可耦合到DSP804。如图8所示,在特定实施例中,立体声音频CODEC 826可耦合到DSP 804。第一立 体声放大器828可耦合到立体声音频CODEC 826,且第一立体声扬声器830可耦合到第 一立体声放大器828。另外,麦克风放大器832可耦合到立体声音频CODEC 826,且麦 克风834可耦合到麦克风放大器832。图8进一步展示第二立体声放大器836可耦合到 立体声音频CODEC 826,且第二立体声扬声器838可耦合到第二立体声放大器836。在 特定实施例中,立体声耳机840也可耦合到立体声音频CODEC 826。图8还说明802.11控制器842可耦合到DSP 804,且802.11天线844可耦合到802.11 控制器842。此外,蓝牙控制器846可耦合到DSP 804,且蓝牙天线848可耦合到蓝牙控 制器846。如图8中所描绘,USB控制器850可耦合到DSP 804,且USB端口 852可耦 合到USB控制器850。另夕卜,智能卡854 (例如,多媒体卡(MMC)或安全数字卡(SD)) 可耦合到DSP804。此外,如图8所示,电源856可耦合到片上系统802,并可经由片上 系统802将电力提供到PDA 800的各个组件。在特定实施例中,如图8中所指示,显示器810、键盘812、 IrDA端口 822、数字相 机824、第一立体声扬声器830、麦克风834、第二立体声扬声器838、立体声耳机840、 802.11天线844、蓝牙天线848、 USB端口 852和电源850处于片上系统802外部。然而, 这些组件中的每一者耦合到片上系统802上的一个或一个以上组件。另外,在特定实施 例中,数字信号处理器804可使用本文描述的交错多线程技术来处理与和便携式数字助 理800相关联的不同组件的一者或一者以上相关联的各种程序线程。参看图9,展示音频文件播放器(例如,移动图片专家组音频层-3 (MP3)播放器) 的示范性、非限定性实施例,且其一般表示为900。如图所示,音频文件播放器900包 含片上系统902,所述片上系统902包含数字信号处理器(DSP) 904。在特定实施例中, DSP 904是图1所示且本文所描述的数字信号处理器。此外,在特定实施例中,数字信 号处理器904可包含如图2中所说明的指令执行单元。如图9中所说明,显示器控制器906耦合到DSP904,且显示器908耦合到显示器控制器906。在示范性实施例中,显示 器卯8是液晶显示器(LCD)。图9进一步展示键盘910可耦合到DSP904。如图9中进一步描绘,快闪存储器912和只读存储器(ROM)914可耦合到DSP 904。 另外,在特定实施例中,音频CODEC 916可耦合到DSP 904。放大器918可耦合到音频 CODEC 916,且单声道扬声器920可耦合到放大器918。图9进一步指示麦克风输入922 和立体声输入924也可耦合到音频CODEC 916。在特定实施例中,立体声耳机926也可 耦合到音频CODEC 916。图9还指示USB端口 928和智能卡930可耦合到DSP904。另外,电源932可耦合 到片上系统902,并可经由片上系统902将电力提供到音频文件播放器900的各个组件。在特定实施例中,如图9中所指示,显示器908、键盘910、单声道扬声器920、麦 克风输入922、立体声输入924、立体声耳机926、 USB端口 928和电源932处于片上系 统902外部。然而,这些组件中的每一者耦合到片上系统902上的一个或一个以上组件。 并且,在特定实施例中,数字信号处理器904可使用本文描述的交错多线程技术来处理 与音频文件播放器900相关联的不同组件的一者或一者以上相关联的各种程序线程。利用本文揭示的结构的配置,本文描述的系统和方法提供一种在同时执行多个字节 约简运算的同时完成多达八个二的补码运算的方式。因而,避免了需要额外硬件来完成 二进制补码运算。技术人员将进一步了解,结合本文所揭示的实施例而描述的各种说明性逻辑块、配 置、模块、电路和算法步骤可实施为电子硬件、计算机软件或两者的组合。为了清楚地 说明硬件与软件的这种可交换性,上文已大体上依照各种说明性组件、区块、配置、模 块、电路和步骤的功能性对其进行了描述。此功能性实施为硬件还是软件取决于特定应 用和施加于整个系统的设计约束。熟练的技术人员可针对每一特定应用以不同方式实施 所描述的功能性,但这些实施决策不应解释为导致与本发明范围的偏离。结合本文所揭示的实施例而描述的方法或算法的步骤可直接用硬件、由处理器执行 的软件模块或所述两者的组合来实施。软件模块可驻存在RAM存储器、快闪存储器、 ROM存储器、PROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移 动磁盘、CD-ROM或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦 合到处理器,使得处理器可从存储媒体读取信息并向存储媒体写入信息。在替代实施例 中,存储媒体可与处理器成一体式。处理器和存储媒体可驻存在ASIC中。ASIC可驻存 在计算装置或用户终端中。在替代实施例中,处理器和存储媒体可作为离散组件而驻存在计算装置或用户终端中。提供对所揭示的实施例的先前描述以使所属领域的技术人员能够制造或使用本发 明。所属领域的技术人员将易于了解对这些实施例的各种修改,且本文定义的一般原理 可在不偏离本发明精神或范围的情况下应用于其它实施例。因此,不希望本发明限于本 文展示的实施例,而是本发明应符合与由所附权利要求书定义的原理和新颖特征一致的 最广泛范围。
权利要求
1.一种完成二进制补码运算的方法,其包括接收多个字节值;将所述多个字节值划分为第一部分和第二部分;将所述第一部分输入到第一4:2压缩器的第一段;对所述第一部分执行第一4:2压缩运算以产生具有第一行和第二行的第一组结果,所述第二行从所述第一行偏移一个位;以及进位输入第一值1以完成第一二进制补码运算。
2. 根据权利要求l所述的方法,其进一步包括将所述第二部分输入到第二 4:2压縮器的第二段;将两个值1直接添加到所述第二部分的右侧以便将第二值1进位输入到所述第二 部分,从而完成第二二进制补码运算;以及对所述第二部分执行第二 4:2压縮运算以产生具有第一行和第二行的第二组结 果,所述第二行从所述第一行偏移一个位。
3. 根据权利要求2所述的方法,其进一步包括将第三值l输入到所述第一组结果的所 述第二行的偏移位以便完成第三二进制补码运算。
4. 根据权利要求3所述的方法,其进一步包括将第四值1输入到所述第二组结果的所 述第二行的偏移位以便完成第四二进制补码运算。
5. 根据权利要求4所述的方法,其进一步包括将所述第一组结果连同第一累加器值一起输入到第一 3:2压缩器;以及 对所述第一组结果和所述累加器值执行第一 3:2压縮运算以产生具有第一行和第 二行的第三组结果,所述第二行从所述第一行偏移一个位。
6. 根据权利要求5所述的方法,其进一步包括.-将所述第二组结果连同第二累加器值一起输入到第二 3:2压縮器;以及 对所述第二组结果和所述累加器值执行第二 3:2压縮运算以产生具有第一行和第 二行的第四组结果,所述第二行从所述第一行偏移一个位。
7. 根据权利要求6所述的方法,其进一步包括将第五值1插入到所述第三组结果的所 述第二行的偏移位以便完成第五二进制补码运算。
8. 根据权利要求7所述的方法,其进一步包括将第六值l插入到所述第四组结果的所 述第二行的偏移位以便完成第六二进制补码运算。
9. 根据权利要求8所述的方法,其进一步包括将所述第三组结果输入到第一进位传送加法器(CPA);以及 对所述第三组结果执行第一 CPA运算。
10. 根据权利要求9所述的方法,其进一步包括-进位输入第七值1以便完成第七二进制补码运算;以及 产生第五组结果。
11. 根据权利要求IO所述的方法,其进一步包括-将所述第四组结果输入到第二进位传送加法器(CPA);以及 对所述第四组结果执行第二 CPA运算。
12. 根据权利要求ll所述的方法,其进一步包括进位输入第八值I以便完成第八二进制补码运算;以及 产生第六组结果。
13. 根据权利要求12所述的方法,其进一步包括将所述第五组结果写入到寄存器的第一部分;以及 将所述第六组结果写入到所述寄存器的第二部分。
14. 一种完成一个或一个以上二进制补码运算的方法,所述方法包括确定八个子字差字节值; 确定每一子字差字节值的符号;反转负的所述八个子字差字节值的每一者以产生一组经反转的子字差字节值; 将正的所述八个子字差字节值的每一者输入到约简树;以及 将所述组经反转的子字差字节值的每一者输入到所述约简树。
15. 根据权利要求14所述的方法,其进一步包括通过在对所述八个子字差字节值执行 多个约简运算的同时输入多达八个1来完成多达八个二进制补码运算。
16. 根据权利要求15所述的方法,其进一步包括在相对于所述组经反转的子字差字节 值中的至少一者执行约简运算的同时进位输入值1。
17. 根据权利要求15所述的方法,其进一步包括将值1输入到通过所述多个约简运算 的至少一者产生的一组结果的偏移位。
18. 根据权利要求15所述的方法,其进一步包括在所述多个约简运算的至少一者期间 向彼此添加两个1以将值1进位输入到通过所述约简运算产生的所述结果。
19. 一种指令执行单元,其包括第一4:2压縮器;控制模块,其耦合到所述第一4:2压縮器,其中所述控制模块包括用于将八个字节值划分为第一组四个字节值和第二组四个字节值的逻辑; 用于使用所述第一 4:2压縮器将所述第一组四个字节值压縮为具有第一行和第二行的第一组结果的逻辑;用于在压縮所述第一组四个字节值的同时进位输入第一值1以便完成第一二进制补码运算的逻辑;以及用于将第二值l输入到所述第一组结果内的所述第二行的偏移位以便完成第二二进制补码运算的逻辑。
20. 根据权利要求19所述的指令执行单元,其进一步包括第二4:2压縮器,其耦合到所述控制模块,其中所述控制模块进一步包括用于使用所述第二 4:2压縮器将所述第二组四个字节值压缩为具有第一行和第二行的第二组结果的逻辑;用于在压縮所述第二组四个字节值的同时在所述第二 4:2压縮器内向彼此添加两个1以便将第三值1进位输入到所述第二组四个字节值从而完成第三二进制补码运算的逻辑;以及用于将第四值1输入到所述第二组结果内的所述第二行的偏移位以便完成第四二进制补码运算的逻辑。
21. 根据权利要求20所述的指令执行单元,其进一步包括第一3:2压縮器,其耦合到所述控制模块;以及第二3:2压縮器,其耦合到所述控制模块,其中所述控制模块进一步包括用于使用所述第一 3:2压縮器来压缩所述第一组结果和第一累加器值以产生具 有第一行和第二行的第三组结果的逻辑;以及用于使用所述第二 3:2压縮器来压縮所述第二组结果和第二累加器值以产生具 有第一行和第二行的第四组结果的逻辑;用于将第五值1输入到所述第三组结果内的所述第二行的偏移位以便完成第五 二进制补码运算的逻辑;以及用于将第六值1输入到所述第四组结果内的所述第二行的偏移位以便完成第六 二进制补码运算的逻辑。
22. 根据权利要求21所述的指令执行单元,其进一步包括-第一进位传送加法器;以及第二进位传送加法器,其中所述控制模块进一步包括用于使用所述第一进位传送加法器将所述第三组结果的所述第一行与第二行 相加的逻辑;用于在将所述第三组结果的所述第一行与所述第二行相加的同时进位输入第 七值1以便完成第七二进制补码运算的逻辑;用于使用所述第二进位传送加法器将所述第四组结果的所述第一行与第二行 相加的逻辑;以及用于在将所述第四组结果的所述第一行与所述第二行相加的同时进位输入第 八值1以便完成第八二进制补码运算的逻辑。
23. —种数字信号处理器,其包括存储器;定序器,其响应于所述存储器; 寄存器堆,其耦合到所述存储器;以及指令执行单元,其响应于所述定序器,其中所述指令执行单元包括 第一4:2压縮器; 第二4:2压縮器;第一3:2压縮器,其耦合到所述第一4:2压縮器; 第二3:2压縮器,其耦合到所述第二4:2压縮器; 第一进位传送加法器,其耦合到所述第一3:2压縮器;以及 第二进位传送加法器,其耦合到所述第二3:2压縮器;以及 控制模块,其耦合到所述第一4:2压缩器、所述第二4:2压縮器、所述第一 3:2 压縮器、所述第二 3:2压縮器、所述第一进位传送加法器和所述第二进位传送加 法器,其中所述控制模块包括用于将八个字节值划分为第一组四个字节值和第二组四个字节值的逻辑; 用于使用所述第一 4:2压縮器将所述第一组四个字节值压缩为具有第一行和 第二行的第一组结果的逻辑;用于在压縮所述第一组四个字节值的同时进位输入第一值1以便完成第一二 进制补码运算的逻辑;以及用于将第二值1输入到所述第一组结果内的所述第二行的偏移位以便完成第 二二进制补码运算的逻辑。
24. 根据权利要求23所述的数字信号处理器,其中所述控制模块进一步包括-用于使用所述第二 4:2压縮器将所述第二组四个字节值压縮为具有第一行和从所述第一行偏移一个位的第二行的第二组结果的逻辑;用于在压縮所述第二组四个字节值的同时在所述第二 4:2压縮器内向彼此添加两个1以便将第三值1进位输入到所述第二组四个字节值从而完成第三二进制补码运算的逻辑;以及用于将第四值1输入到所述第二组结果内的所述第二行的偏移位以便完成第四二 进制补码运算的逻辑。
25. 根据权利要求24所述的数字信号处理器,其中所述控制模块进一步包括-用于使用所述第一 3:2压缩器来压縮所述第一组结果和第一累加器值以产生具有 第一行和第二行的第三组结果的逻辑;以及用于使用所述第二 3:2压縮器来压縮所述第二组结果和第二累加器值以产生具有 第一行和第二行的第四组结果的逻辑;用于将第五值1输入到所述第三组结果内的所述第二行的偏移位以便完成第五二 进制补码运算的逻辑;以及用于将第六值1输入到所述第四组结果内的所述第二行的偏移位以便完成第六二 进制补码运算的逻辑。
26. 根据权利要求25所述的数字信号处理器,其中所述控制模块进一步包括用于使用所述第一进位传送加法器将所述第三组结果的所述第一行与第二行相 加的逻辑;用于在将所述第三组结果的所述第一行与所述第二行相加的同时进位输入第七 值1以便完成第七二进制补码运算的逻辑;用于使用所述第二进位传送加法器将所述第四组结果的所述第一行与第二行相 加的逻辑;以及用于在将所述第四组结果的所述第一行与所述第二行相加的同时进位输入第八 值1以便完成第八二进制补码运算的逻辑。
27. —种便携式通信装置,其包括数字信号处理器,其中所述数字信号处理器包括 存储器;定序器,其响应于所述存储器; 寄存器堆,其耦合到所述存储器;以及指令执行单元,其响应于所述定序器,其中所述指令执行单元包括 第一4:2压缩器;第二4:2压縮器;第一3:2压縮器,其耦合到所述第一4:2压縮器; 第二3:2压縮器,其耦合到所述第二4:2压縮器; 第一进位传送加法器,其耦合到所述第一3:2压縮器;以及 第二进位传送加法器,其耦合到所述第二3:2压縮器;控制模块,其耦合到所述第一4:2压縮器、所述第二4:2压缩器、所述第一 3:2 压縮器、所述第二 3:2压縮器、所述第一进位传送加法器和所述第二进位传送加 法器,其中所述控制模块包括-用于在使用所述第一 4:2压縮器、所述第二 4:2压縮器、所述第一 3:2压縮器、 所述第二 3:2压缩器、所述第一进位传送加法器和所述第二进位传送加法器处 理八个字节值的同时完成多达八个二进制补码运算的逻辑。
28. —种处理器装置,其包括用于接收多个字节值的装置;用于将所述多个字节值划分为第一部分字节值和第二部分字节值的装置; 用于将所述第一部分字节值输入到第一 4:2压縮器的下半部的装置; 用于对所述第一部分字节值执行第一 4:2压縮运算以产生具有第一行和从所述第 一行偏移一个位的第二行的第一组结果的装置;以及 用于进位输入值1以完成第一二进制补码运算的装置。
29. —种处理器装置,其包括用于确定八个子字差字节值的装置; 用于确定每一子字差字节值的符号的装置;用于反转每一负的子字差字节值以产生经反转的子字差字节值的装置;用于将每一正的子字差字节值输入到约简树的装置; 用于将每一经反转的子字差字节值输入到所述约简树的装置;以及用于通过在对所述八个子字差字节值执行多个约简运算的同时添加多达八个1来 完成多达八个二进制补码运算的装置。
全文摘要
一种完成二进制补码运算的方法,其包含接收多个字节值,以及将所述多个字节值划分为第一部分和第二部分。此外,所述方法包含将所述第一部分输入到第一4∶2压缩器的第一段,对所述第一部分执行第一4∶2压缩运算以产生具有第一行和从所述第一行偏移一个位的第二行的第一组结果,以及进位输入第一值1以完成第一二进制补码运算。所述方法还包含将所述第二部分输入到第二4∶2压缩器的第二段,和将两个值1直接添加到所述第二部分的右侧以便将第二值1进位输入到所述第二部分,从而完成第二二进制补码运算。
文档编号G06F7/509GK101223501SQ200680025600
公开日2008年7月16日 申请日期2006年5月25日 优先权日2005年5月25日
发明者克里斯托弗·爱德华·科布, 尚卡尔·克里蒂瓦桑 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1