包含组合的选择和数据对齐或数据复制的多级多路复用运算的制作方法

文档序号:6359323阅读:235来源:国知局
专利名称:包含组合的选择和数据对齐或数据复制的多级多路复用运算的制作方法
技术领域
本发明一般来说涉及多级多路复用运算。
背景技术
技术的进步已产生较小型且较强大的计算装置。举例来说,当前存在多种便携式个人计算装置,包含无线计算装置,例如便携式无线电话、个人数字助理(PDA)和寻呼装置,所述装置体积小、重量轻且易于由用户携带。更具体来说,便携式无线电话(例如,蜂窝式电话和因特网协议(IP)电话)可经由无线网络传递语音和数据包。另外,许多此些无线电话包含并入于其中的其它类型的装置。举例来说,无线电话还可包含数字静态相机、数字摄像机、数字记录器和音频文件播放器。而且,此些无线电话可处理可执行指令,包含可用以接入因特网的软件应用程序(例如,web浏览器应用程序)。因而,这些无线电话可包含显著的计算能力。 例如无线电话的电子装置通常包含例如存储器的数据存储装置。在电子装置处执行对驻留在存储器中的数据进行运算的指令(例如,处理器指令)大体上涉及三个单独阶段。在第一阶段中,从存储器中选择和检索所要数据。在第二阶段中,操纵(例如,对齐、正负号或零填补、正负号或零扩展,或复制)选定的数据。在第三阶段中,根据指令对经操纵的数据进行运算。第一阶段和第二阶段可能花费多个处理器周期。因此,在一些情况下,检索和准备待进行运算的数据可能花费比对所述数据进行运算所用的时间更长的时间(即,更多处理器周期),以获得所述指令的所要结果。

发明内容
揭示一种提供数据加载和存储过程的系统、方法和计算机可读存储媒体,在所述数据加载和存储过程中,可与数据操纵同时地执行数据选择。数据操纵可包含数据复制(例如,复制数据的一个或一个以上字、半字,或字节)或数据对齐(例如,将数据向左移位、将数据向右移位、对数据进行正负号或零扩展,或对数据进行正负号或零填补)。用以从存储器中检索数据的多级多路复用运算的一个或一个以上级可同时地从多个数据源之间选择以及(例如,经由数据复制或数据对齐)修改来自所述选定的数据源的数据。因此,可集成数据检索与数据操纵,从而产生存储器相关运算中的潜在性能改进。在特定实施例中,揭示一种方法,所述方法包含在多级多路复用运算的第一级期间,从多个数据源中选择第一数据源。所述方法还包含在所述第一级期间,对从所述选定的第一数据源中所检索的第一数据执行第一数据对齐运算和第一数据复制运算中的至少一者。在另一特定实施例中,一种设备包含存储器,所述存储器包含多个数据源。所述设备还包含负载对齐器,所述负载对齐器经配置以对从所述多个数据源中的一者中所检索的双字的多个段选择性地执行数据对齐运算和数据复制运算中的至少一者。还对所述多个数据源执行多路复用运算。所述数据对齐运算或所述数据复制运算与所述多路复用运算同时地执行。在另一特定实施例中,一种设备包含正负号或零扩展逻辑,所述正负号或零扩展逻辑经配置以对从多个数据源中的一者中所检索的双字的多个段选择性地进行正负号或零扩展。所述正负号或零扩展与多路复用运算同时地执行。在另一特定实施例中,一种设备包含用于存储数据的多个装置。所述设备还包含负载对齐器装置,所述负载对齐器装置用于与对用于存储数据的所述多个装置执行多路复用运算并行地,对从用于存储数据的所述多个装置中的一者中所检索的双字的多个段选择性地执行数据对齐运算和数据复制运算中的至少一者。所述设备还包含扩展装置,所述扩展装置用于与所述多路复用运算并行地,对所述双字的多个段选择性地进行正负号扩展或零扩展。所述设备进一步包含填补装置,所述填补装置用于与所述多路复用运算并行地,对所述双字的所述多个段选择性地进行正负号填补或零填补。在另一特定实施例中,揭示一种计算机可读媒体。所述计算机可读媒体包含微处理器指令,所述微处理器指令在由微处理器执行时使得所述微处理器执行多级多路复用运 算的第一级。执行所述第一级包含执行第一部分多路复用运算,所述第一部分多路复用运算包含从第一多个数据源中选择第一数据源。执行所述第一级还包含对从所述选定的第一数据源所接收的第一数据执行第一数据对齐运算和第一数据复制运算中的至少一者。所述第一数据对齐运算或所述第一数据复制运算关于所述第一数据以字层级执行。通过所揭示实施例中的至少一者提供的一个特定优点在于在多级多路复用运算的单级期间选择和操纵(例如,经由对齐或复制)数据的能力。通过所揭示实施例中的至少一者提供的另一特定优点在于用以检索、选择和准备待由执行单元根据微处理器指令进行运算的数据的处理器周期的减少。在审阅整个申请案之后,本发明的其它方面、优点和特征将变得显而易见,所述整个申请案包含以下章节[


]、[具体实施方式
]和[权利要求书]。

图I是执行多级多路复用(MUX)运算的系统的特定说明性实施例的框图,所述多级多路复用(MUX)运算包含具有组合的数据对齐或数据复制的(多个)级;图2是图I的多级MUX逻辑的特定说明性实施例的框图;图3是用以说明图2的逻辑的运算的框图;图4是电路的特定说明性实施例的电路层级图,所述电路包含图I的多级MUX逻辑和图2的逻辑;图5是用以说明如图3中所描绘的图2的逻辑的运算的电路层级图;图6是用以说明图I的多级MUX逻辑、图2的逻辑和图4的电路所支持的数据存取模式的特定实施例的图;图7是方法的特定说明性实施例的流程图,所述方法执行包含组合的数据选择和数据对齐或数据复制的多级多路复用运算;以及图8是无线装置的框图,所述无线装置包含一包含组合的数据选择和数据对齐或数据复制的多级多路复用运算。
具体实施例方式参看图1,揭示一种系统的特定说明性实施例且大体上将所述系统表示为100,所述系统执行包含具有组合的数据对齐、数据复制和数据选择的多个级的多级多路复用(MUX)运算。系统100包含存储器110和多级多路复用(MUX)逻辑120,所述多级多路复用(MUX)逻辑120经配置以检索和操纵(例如,经由对齐和复制)存储在存储器110处的数据。逻辑120还经配置以将经操纵的数据存储到存储器110和存储到寄存器堆130。在特定实施例中,存储器110可经由加载和存储指令102而存取。举例来说,加载和存储指令102可为微处理器的微处理器指令,且系统100可集成到所述微处理器的执行单元中。加载和存储指令102可包含待检索的数据的存储器地址、待检索的数据的存储器偏移、待检索的数据的大小(例如,字节或位的数目)、正负号或零扩展位、正负号或零填补位、左或右移位位,或其任何组合。举例来说,特定加载指令可请求检索存储在存储器110的特定地址处的数据且将所述数据存储在寄存器堆130的特定寄存器中。在特定实施例 中,将存储器110划分成若干存储器组。举例来说,如图I中所说明,可将存储器110划分成四个存储器组111、112、113和114。在特定实施例中,存储器组111-114中的每一者存储64位双字。每一 64位双字可包含两个32位字,每一 32位字可包含两个16位半字,且每一 16位半字可包含两个8位字节。逻辑120经配置以执行关于从存储器110中所检索的数据的多级MUX运算。所述多级MUX运算包含两个或两个以上级。在特定实施例中,所述多级MUX运算包含三个级,且所述三个级中的每一者包含数据选择运算与数据操纵运算两者。逻辑120还经配置以将从存储器110中所检索的数据存储回到存储器110和存储到寄存器堆130。因此,在特定实施例中,逻辑120可用以将来自存储器110处的第一地址的数据重新定位到存储器110处的相同或第二地址。参看图2和图4进一步描述逻辑120的特定实施例。寄存器堆130可包含经配置以存储数据的一个或一个以上寄存器。举例来说,寄存器堆130可为包含多个64位寄存器的64位寄存器堆,每一寄存器经配置以存储64位数据项。在特定实施例中,寄存器堆130用以在对从存储器110中所检索的数据执行微处理器运算(例如,加法、减法、逻辑“与”(logical AND)、逻辑“或”(logical OR))之前存储所检索的数据。寄存器堆130还可用以存储微处理器运算的结果。在运算中,一个或一个以上加载或存储指令102可触发关于存储在存储器110处的数据的多级MUX运算。举例来说,在所述多级MUX运算的第一级期间,逻辑120可在从第一存储器组111中所检索的第一双字(例如,64位)与从第二存储器组112中所检索的第二双字之间选择。逻辑120还可在从第三存储器组113中所检索的第三双字与从第四存储器组114中所检索的第四双字之间选择。逻辑120可进一步与数据选择并行地对选定的数据执行字层级(例如,32位)数据操纵运算(例如,正负号扩展、零填补和对齐)。因此,所述多级MUX运算的第一级可产生来自第一存储器组111或第二存储器组112的第一选定双字,以及来自第三存储器组113或第四存储器组114的第二选定双字,其中第一选定双字与第二选定双字两者已经历数据操纵。在所述多级MUX运算的第二级期间,逻辑120可从在第一级期间所产生的第一选定双字与第二选定双字之间选择。逻辑120还可对选定的数据执行半字层级(例如,16位)数据操纵运算(例如,正负号扩展、零填补和对齐)。因此,所述多级MUX运算的第二级可产生来自四个存储器组111-114中的一者的双字,其中所述双字已经历以字层级与半字层级两者进行的选择性数据操纵。数据操纵可包含数据复制(例如,复制数据的一个或一个以上字、半字或字节)或数据对齐(例如,将数据向左移位、将数据向右移位、对数据进行正负号或零扩展,或对数据进行正负号或零填补)。应注意,在某些情形下,数据对齐可能不涉及变更数据的原始对齐。举例来说,从存储器110中所检索的数据可能已在所要字边界处对齐。参看图6进一步描述说明性数据操纵运算。在所述多级MUX运算的第三级期间,逻辑120可以字节层级对由第二级产生的双字或双字的选定部分执行进一步的数 据操纵(例如,正负号或零扩展、正负号或零填补和对齐)。举例来说,所得最终数据可包含两个经复制字、至少两个经复制半字、至少一个正负号扩展字节、至少一个零填补字节、至少两个经复制字节、至少一个经重新对齐的字节或其组合。在第三级结束后,便可如加载或存储指令102所请求将所得最终数据存储回到存储器110或存储到寄存器堆130。应了解,图I的系统100可启用在多级MUX运算的单级期间的组合的数据选择和数据操纵(例如,经由对齐或复制)。因此,应了解,图I的系统100可减少用以检索、选择和准备待根据微处理器指令进行运算的数据的处理器周期。参看图2,说明图I的多级MUX逻辑120的特定说明性实施例的框图且将所述实施例表示为200。逻辑200包含一包含字层级对齐和复制的第一部分MUX 221、包含字层级对齐和复制的第二部分MUX 222、包含半字层级对齐和复制的最终MUX 223,以及经配置以执行字节层级对齐、复制和变换的数据操纵逻辑224。逻辑200可接收来自四个存储器组211、212、213、214中的每一者的64位数据且可产生64位数据作为输出。在说明性实施例中,存储器组211-214为图I的存储器组111-114。第一部分MUX 221可接收来自第一存储器组211的第一 64位数据和来自第二存储器组212的第二 64位数据。举例来说,可将第一 64位数据(按照从最高有效字节到最低有效字节的次序)表示为字节B7-B0,且可将第二 64位数据表示为字节B15-B8。第一部分MUX 221可在第一 64位数据与第二 64位数据之间选择。第一部分MUX 221还可对选定的64位数据的多个段执行字层级(即,32位)对齐和复制。因此,第一部分MUX 221可产生第一选定64位双字231作为第一部分MUX 221的输出,第一选定64位双字231为来自第一存储器组211的字节B7-B0或来自第二存储器组212的字节B15-B8的经字对齐/复制的表示。在特定实施例中,第一部分MUX 221集成在负载对齐器、正负号或零扩展逻辑、正负号或零填补逻辑或其任何组合中。在另一特定实施例中,第一部分MUX 221包含负载对齐器、正负号或零扩展逻辑、正负号或零填补逻辑或其任何组合。第二部分MUX 222可与第一部分MUX 221并行地(例如,在第一级期间)进行运算。第二部分MUX 222可接收来自第三存储器组213的第三64位数据和来自第四存储器组214的第四64位数据。举例来说,可将第三64位数据表示为字节B23-B16,且将第四64-位数据表示为字节B31-B24。第二部分MUX 222可在第三64位数据与第四64位数据之间选择。第二部分MUX 222还可对选定的64位数据的多个段执行字层级(B卩,32位)对齐和复制。因此,第二部分MUX 222可产生第二选定64位双字232,第二选定64位双字232为来自第三存储器组213的字节B23-B16或来自第四存储器组214的字节B31-B24的经字对齐/复制的表示。在特定实施例中,第二部分MUX 222集成在负载对齐器、正负号扩展逻辑、零填补逻辑或其任何组合中。在另一特定实施例中,第二部分MUX 222包含负载对齐器、正负号扩展逻辑、零填补逻辑或其任何组合。最终MUX 223可接收第一选定64位双字231和第二选定64位双字232,且在第一选定64位双字231与第二选定64位双字232之间选择。最终MUX 223还可执行半字层级(即,16位)对齐和复制。因此,最终MUX 223可产生输出为64位双字233,64位双字233为字节B7-B0、字节B15-B8、字节B23-B16或字节B31-B24中的一者的经字/半字对齐/复制的表示。数据操纵逻辑224接收来自最终MUX 223的64位双字233,且可对64位双字233执行字节层级对齐、复制和变换以产生64位的最终输出数据234。可将最终输出数据234的8个字节表示为字节D7-D0。可参看图3来说明逻辑200的运算的特定实施例。在说明性实施例中,存储器组311、312、313、314 为图 2 的存储器组 211、212、213、214,部分 MUX 321、322 为图 2 的部分 MUX 221、222,最终MUX 323为图2的最终MUX 223,且数据操纵逻辑324为图2的数据操纵逻辑224。在特定实例中,微处理器指令可执行在字节运算数与存储在第一存储器组311处的数据的特定字节302 “E1”之间的逻辑“或”运算。如图3中所说明,特定字节302可为第一 64位双字301 "F0E1D2C3B4A59687"的部分。在特定实施例中,在发生所述逻辑“或”运算之前检索特定字节301,且将特定字节301零填补到最低有效位置。举例来说,在执行逻辑“或”之前的零填补可使得运算数的非本质位能够不变地“通过”逻辑“或”运算。在多级MUX运算的第一级期间,第一部分MUX 321可接收来自第一存储器组311的第一 64位双字301,且可接收来自第二存储器组312的第二 64位双字。因为所要字节302处于第一 64位双字301的第一字“F0E1D2C3”中,所以第一部分MUX 321选择第一 64 位双字301且执行关于第一 64位双字301的第一字的字层级复制。第一部分MUX 321可产生第一选定 64 位双字 331 “R)E1D2C3R)E1D2C3”。在所述多级MUX运算的第二级期间,最终MUX 323可接收来自第一部分MUX 321的第一选定64位双字331和来自第二部分MUX 322的第二选定64位双字(未图示)。因为所要字节302处于第一选定64位双字331的第三半字“F0E1”中,所以最终MUX 323选择第一选定64位双字331且执行关于第一选定64位双字331的第三半字的半字层级复制。最终MUX 323可产生64位双字333 “Η)Ε1Η)Ε1Η)Ε1Η)ΕΓ’作为输出。在所述多级MUX运算的第三级期间,数据操纵逻辑324可执行关于64位双字333的其它必要的数据变换。举例来说,数据操纵逻辑324可对64位双字333进行零填补以产生最终输出数据334 “00000000000000Ε1”。最终输出数据334可接着用于逻辑“或”运算中。应了解,图2和图3中所说明的逻辑可集成数据检索/选择逻辑与数据操纵逻辑。因此,应了解,在根据微处理器指令(例如,逻辑“或”)对图2的最终输出数据234(图3中的334)进行运算之前,最终输出数据234(图3中的334)可能不需要进一步的操纵。参看图4,说明图I的多级MUX逻辑120和图2的多级MUX逻辑200的特定说明性实施例的电路层级图且大体上将所述实施例表示为400。
在特定实施例中,如图4中所说明,可使用“与/或”MUX来实施包含组合的数据选择和数据对齐/复制的多级MUX逻辑。举例来说,可使用八个四输入“与/或”MUX 401、402、403、404、405、406、407和408来实施图2的第一部分MUX 221。可使用八个四输入“与/ 或,IUX 411、412、413、414、415、416、417 和 418 来实施图 2 的第二部分 MUX 222。应注意,来自各种存储器组的输入字节可跨越所述各种“与/或”MUX401-418散布。举例来说,“与/或"MUX 401可接收来自图2的第一存储器组211的字节BO与B4和来自图2的第二存储器组212的字节B8与B12。作为另一实例,“与/或”MUX 418可接收来自图2的第三存储器组213的字节B19与B23和来自图2的第四存储器组214的字节B27与B31。还可使用“与/或’IUX来实施图2的最终MUX 22 3和图2的数据操纵逻辑224。举例来说,可使用八个四输入“与/或’IUX 421、422、423、424、425、426、427和428来实施图2的最终MUX 223。“与/或’IUX 421-428中的每一者的每一输入可为“与/或’IUX 401-418中的一者的输出。可使用八个四输入“与/或”MUX 431、432、433、434、435、436、437和438来实施图2的数据操纵逻辑224。“与/或”MUX 431-438的每一输入可为“与/或”MUX421-428中的一者的输出或所述输出的经正负号或零扩展/正负号或零填补(“SZ”)的版本。“与/或”MUX 431-438中的每一者可产生一个字节的最终数据D7-D0。应注意,为了清晰起见,并未描绘电路400的所有连接。举例来说,虽然在图4的说明中未连接,但“与/或”MUX 408的输出“A”输入到“与/或”MUX 428和“与/或”MUX426两者中。应进一步注意,图4中所描绘的每一字节层级“与/或” MUX可包含八个位层级“与/或”MUX。S卩,图4中所描绘的每一字节层级“与/或”MUX可表示八个位层级“与/或”MUX,且可将每一输入位应用到不同的位层级四输入“与/或”MUX。当使用“与/或”MUX来实施图I的多级MUX逻辑120时,可通过停用或取消确认(例如,设置到零)特定“与/或”MUX的所有选择来执行零扩展和零填补,借此产生零值作为所述特定“与/或”MUX的输出。可通过以下各者来执行正负号扩展将到8位宽的四输入“与/或”MUX的输入中的一者表示为正负号位,且将所述正负号位连接到特定输入的所有8个位。可接着选择(例如,经由正负号扩展器选择)那些8个位以跨越“与/或”MUX的输出扩展所述正负号位。应注意,可改为使用其它逻辑元件来实施如本文中所描述的多级多路复用运算或多级多路复用运算的一部分。举例来说,可改为使用通过门四对一MUX(代替“与/或"MUX)来实施第一和第二级MUX。如果不需要零填补和零扩展,那么可使用通过门四对一 MUX来实施第三级MUX。如果需要零填补或零扩展,那么可改为通过五对一 MUX (其中五个输入中的一者设置为零)来实施第三级MUX。可通过以下各者来执行正负号扩展将到8位宽通过门四对一 MUX的输入中的一者表示为正负号位,且将所述正负号位连接到特定输入的所有8个位。可选择(例如,经由正负号扩展器选择)那些8个位以跨越所述通过门MUX的输出扩展正负号位。应注意,对于通过门MUX而言,输入中的一者始终得以确认(例如,一)。因此,为产生零作为通过门MUX的输出(例如,用于零填补或零扩展),可将零连接到所述通过门MUX的输入中的一者。在另一特定实施例中,可仅使用四对一“与/或” MUX来实施第三级,且可使用通过门四对一 MUX来实施前两级。可参看图5来说明图4的电路400的运算的特定实施例。在说明性实施例中,“与/ 或”MUX 511-518、521-528、531-538 和 541-548 分别为图 4 的“与 / 或”MUX 411-418、421-428,431-438 和 441-448。举例来说,如参考图3的实例所描述,微处理器指令可执行在字节运算数与存储在存储器中的64位双字(例如,“R)E1D2C3B4A59687”)处的特定字节(例如,“E1”)之间的逻辑“或”运算。可通过电路500来检索、选择所述特定字节且对所述特定字节进行零填补。如果将双字“F0E1D2C3B4A59687”的字节表示为B7-B0,那么所要字节“E1”处于B6位置中。因此,在多级MUX运算的第一级期间,可通过如图5中所说明的“与/或” MUX501-508来选择和复制字“R)E1D2C3”,从而产生第一结果双字“R)E1D2C3R)E1D2C3”。在所述多级MUX运算的第二级期间,可通过如图5中所说明的“与/或” MUX521-528来选择和复制第一结果双字“R)E1D2C3R)E1D2C3”中的半字“R)E1”。因此 可产生第二结果双字“Η)Ε1Η)Ε1Η)Ε1Η)ΕΓ’。在所述多级MUX运算的第三级期间,可通过如图5中所说明的“与/或”MUX531-538来对第二结果双字“F0E1F0E1F0E1F0E1”进行零填补,借此产生最终输出双字“00000000000000Ε1”。应了解,如图4-5中所说明的“与/或”MUX的使用可简化微处理器处的逻辑。举例来说,可仅将一个经复制门结构放置在微处理器的64位数据路径中,以用于所述数据路径中的三个多路复用级中的每一者。参看图6,说明关于输入双字600 “R)E1D2C3B4A59687”的数据存取模式的特定实施例。如图6中所说明,可将输入双字600划分成八个字节B0-B7610-617、四个半字H0-H3620-623,或两个字 W0-W1630-631。如参看图4-5所描述,可在多级MUX过程期间产生输入双字600“F0E1D2C3B4A59687”的许多不同变体。举例来说,可产生经字复制的变体。为了说明,关于字W0630来字复制双字641,且关于字W1631来字复制双字642。还可产生输入双字600的经半字复制的变体。为了说明,关于半字H1621来半字复制双字643,且关于半字H2622来半字复制双字644。通过在半字复制之后接着进行字复制来产生双字645。还可产生输入双字600的经零填补和正负号扩展的变体。举例来说,双字646描绘关于半字H0620以半字层级进行零填补的输入双字600,且双字647描绘关于半字H0620以半字层级进行正负号扩展的输入双字600。作为另一实例,双字648描绘关于字节B0610以字节层级进行零填补的输入双字600,且双字649描绘关于字节B0610以字节层级进行正负号扩展的输入双字600。还可个别地重新对齐输入双字600的特定字节。举例来说,双字650描绘关于字W1631的个别字节的零填补和重新对齐,且双字651描绘关于字W1631的个别字节的正负号扩展和重新对齐。作为另一实例,双字652描绘关于半字H0620的个别字节的零填补和重新对齐,且双字653描绘关于半字H0620的个别字节的正负号扩展和重新对齐。应了解,可通过将数据向左移位、将数据向右移位或其组合来实施如图6中所说明的数据操纵。还应了解,可以双字层级、字层级、半字层级或字节层级中的一者或一者以上执行如图6中所说明的数据操纵。因此,可通过如本文中所揭示的多级MUX运算来支持许多不同的数据存取模式。参看图7,描绘方法700的特定说明性实施例的流程图,方法700执行包含组合的数据选择和数据对齐或数据复制的多级多路复用运算。在说明性实施例中,可通过图I的系统100、图2的逻辑200或图4的电路400来执行方法700。方法700包含在710执行多级多路复用运算的第一级。在711执行第一级包含从第一多个数据源中选择第一数据源,以及在712对从选定的第一数据源所接收的第一数据执行第一数据对齐运算和第一数据复制运算中的至少一者。举例来说,在图2中,第一部分MUX 221可选择第一存储器组211,且可对从第一存储器组211所接收的数据执行字层级对
齐/复制。在713,执行第一级还包含从第二多个数据源中选择第二数据源,以及在714对从选定的第二数据源所接收的第二数据执行第二数据对齐运算和第二数据复制运算中的至少一者。举例来说,在图2中,第二部分MUX 222可选择第三存储器组213,且可对从第三存储器组213所接收的数据执行字层级对齐/复制。方法700还包含,在720,在第一级之后的所述多级多路复用运算的第二级期间, 对第三数据执行第三数据对齐运算和第三数据复制运算中的至少一者。第三数据选自第一数据和第二数据中的一者。举例来说,在图2中,最终MUX 223选择从第一部分MUX221所接收的第一选定双字231且对所述第一选定双字231执行半字层级对齐/复制。方法700进一步包含,在730,在第二级之后的所述多级多路复用运算的第三级期间,对第三数据执行数据对齐运算、数据复制运算、正负号或零扩展运算和正负号或零填补运算中的至少一者以产生最终数据。举例来说,在图2中,数据操纵逻辑224可执行字节层级对齐、复制和变换以产生最终输出数据234。方法700包含,在740将最终数据存储在寄存器堆处,或在750将最终数据存储在存储器处。存储器可包含第一多个数据源和第二多个数据源。举例来说,在图2中,可将最终输出数据234存储在寄存器堆处或存储在存储器处。在说明性实施例中,将最终输出数据234存储在寄存器堆处(如参看图I的寄存器堆130所描述)或存储在存储器处(如参看图I的存储器110所描述)。应了解,图7的方法700可启用在多级MUX运算的各种级期间的组合的数据选择和数据操纵(例如,经由对齐或复制)。因此,应了解,图7的方法700可减少用以检索、选择和准备待根据微处理器指令进行运算的数据的处理器周期。参看图8,描绘电子装置的特定说明性实施例的框图且大体上将所述电子装置表示为800,所述电子装置可操作以执行包含具有组合的对齐/复制/选择的(多个)级的多级MUX运算。装置800包含耦合到存储器832的处理器,例如,数字信号处理器(DSP) 810。数字信号处理器810包含多级MUX逻辑864,多级MUX逻辑864包含具有组合的对齐/复制/选择的一个或一个以上级。在说明性实施例中,逻辑864包含图I的逻辑120、图2的逻辑200和图4的电路400中的一者或一者以上。图8还图示耦合到数字信号处理器810且耦合到显示器828的显示控制器826。编码器/解码器(CODEC) 834还可耦合到数字信号处理器810。扬声器836和麦克风838可耦合到CODEC 834。图8还指示无线控制器840可耦合到数字信号处理器810且耦合到无线天线842。在特定实施例中,DSP 810、显示控制器826、存储器832、C0DEC 834和无线控制器840包含在系统级封装或系统级芯片装置822中。在特定实施例中,输入装置830和电力供应器844耦合到系统级芯片装置822。此外,在特定实施例中,如图8中所说明,显示器828、输入装置830、扬声器836、麦克风838、无线天线842和电力供应器844位于系统级芯片装置822外部。然而,显示器828、输入装置830、扬声器836、麦克风838、无线天线842和电力供应器844中的每一者可耦合到系统级芯片装置822的组件(例如,接口或控制器)。在特定实施例中,装置800为通信装置(例如,无线电话)、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理(PDA)或计算机。在运算期间,DSP 810可执行包含从存储器832中检索数据和操纵所述数据的指令。多级MUX逻辑864可包含同时地选择和操纵数据(例如,经由正负号扩展、零填补,和字/半字/字节复制)的一个或一个以上级。在所述多级MUX运算完成后,便可根据指令来对数据进行运算,且可将结果存储到存储器832或存储到DSP的寄存器堆。

所属领域的技术人员应进一步了解,结合本文中所揭示的实施例而描述的各种说明性逻辑区块、配置、模块、电路和算法步骤可实施为电子硬件、计算机软件或两者的组合。上文已大体上在功能性方面描述各种说明性组件、区块、配置、模块、电路和步骤。此功能性实施为硬件还是软件取决于特定应用和强加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以变化方式实施所描述的功能性,但此些实施决策不应被解释为会引起偏离本发明的范围。结合本文中所揭示的实施例而描述的方法或算法的步骤可直接体现于硬件中、由处理器执行的软件模块中,或两者的组合中。软件模块可驻留在以下各者中随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、寄存器、硬盘、可移除磁盘、压缩光盘只读存储器(CD-ROM),或此项技术中已知的任何其它形式的存储媒体。将示范性存储媒体耦合到处理器,使得所述处理器可从所述存储媒体读取信息和将信息写入到所述存储媒体。在替代例中,可将存储媒体集成到处理器。处理器和存储媒体可驻留在专用集成电路(ASIC)中。ASIC可驻留在计算装置或用户终端中。在替代例中,处理器和存储媒体可作为离散组件驻留在计算装置或用户终端中。提供所揭示实施例的先前描述以使得所属领域的技术人员能够进行或使用所揭示实施例。所属领域的技术人员将容易显而易见对这些实施例的各种修改,且可在不偏离本发明的范围的情况下将本文中所定义的原理应用于其它实施例。因此,本发明不既定限于本文中所图示的实施例,而应符合可能与如由以下权利要求书界定的原理和新颖特征一致的最宽范围。
权利要求
1.一种方法,其包括 在多级多路复用运算的第一级期间 从第一多个数据源中选择第一数据源;以及 对来自所述选定的第一数据源的第一数据执行第一数据对齐运算和第一数据复制运算中的至少一者。
2.根据权利要求I所述的方法,其中所述第一数据包括第一64位双字,且其中所述第一数据对齐运算和所述第一数据复制运算中的所述至少一者关于所述第一数据的32位字而执行。
3.根据权利要求I所述的方法,其进一步包括在所述多级多路复用运算的所述第一级期间 从第二多个数据源中选择第二数据源;以及 对来自所述选定的第二数据源的第二数据执行第二数据对齐运算和第二数据复制运算中的至少一者。
4.根据权利要求3所述的方法,其中所述第二数据包括第二64位双字,且其中所述第二数据对齐运算和所述第二数据复制运算中的所述至少一者关于所述第二数据的32位字而执行。
5.根据权利要求3所述的方法,其进一步包括在所述多级多路复用运算的在所述第一级之后的第二级期间 对第三数据执行第三数据对齐运算和第三数据复制运算中的至少一者, 其中所述第三数据选自所述第一数据和所述第二数据中的一者。
6.根据权利要求5所述的方法,其中所述第三数据包括64位双字,且其中所述第三数据对齐运算和所述第三数据复制运算中的所述至少一者关于所述第三数据的16位半字而执行。
7.根据权利要求5所述的方法,其进一步包括在所述多级多路复用运算的在所述第二级之后的第三级期间 对所述第三数据执行以下各者中的至少一者以产生最终数据数据对齐运算、数据复制运算、正负号扩展运算、零扩展运算、正负号填补运算和零填补运算。
8.根据权利要求7所述的方法,其进一步包括在所述多级多路复用运算的所述第三级期间 将所述最终数据存储在寄存器堆和存储器中的至少一者中。
9.根据权利要求8所述的方法,其中所述存储器包括所述第一多个数据源和所述第二多个数据源中的一者或一者以上。
10.根据权利要求7所述的方法,其中所述最终数据包括以下各者中的一者或一者以上双字、两个经复制字、至少两个经复制半字、至少一个正负号扩展字节、至少一个零扩展字节、至少一个正负号填补字节、至少一个零填补字节、至少两个经复制字节,和至少一个经重新对齐的字节。
11.根据权利要求I所述的方法,其中所述第一多个数据源中的至少一个数据源为第一存储器组,且所述第二多个数据源中的至少一个数据源为第三存储器组。
12.—种设备,其包括存储器,所述存储器包括多个数据源;以及 负载对齐器,所述负载对齐器经配置以与对所述多个数据源执行多路复用运算同时地,对从所述多个数据源中的一者中所检索的双字的多个段选择性地执行数据对齐运算和数据复制运算中的至少一者。
13.根据权利要求12所述的设备,其中所述负载对齐器经进一步配置以通过将数据向左移位或向右移位来执行所述数据对齐运算。
14.根据权利要求12所述的设备,其中所述多个数据源中的每一者为多字节数据源,且其中所述负载对齐器经进一步配置以在逐个字节基础上执行所述数据对齐运算和所述数据复制运算中的所述至少一者。
15.根据权利要求12所述的设备,其中与执行所述多路复用运算同时地选择性地执行所述数据对齐运算和所述数据复制运算中的所述至少一者包括将所述双字的每一位输入至刚输入“与-或”多路复用器中。
16.—种设备,其包括 存储器,所述存储器包括多个数据源;以及 正负号扩展逻辑,所述正负号扩展逻辑经配置以对从所述多个数据源中的一者中所检索的双字的多个段选择性地进行正负号扩展,其中所述正负号扩展与对所述多个数据源进行的多路复用运算同时地执行。
17.根据权利要求16所述的设备,其进一步包括零填补逻辑,所述零填补逻辑经配置以与所述多路复用运算并行地对所述双字的所述多个段选择性地进行零填补。
18.根据权利要求17所述的设备,其中所述多个数据源中的每一者为多字节源,其中所述正负号扩展逻辑经进一步配置以在逐个字节基础上对所述双字的所述多个段进行正负号扩展,且其中所述零填补逻辑经进一步配置以在逐个字节基础上对所述双字的所述多个段中的每一者进行零填补。
19.根据权利要求16所述的设备,其中与所述多路复用运算并行地对所述双字的多个段选择性地进行正负号扩展包括将所述双字的每一位输入到四输入“与-或”多路复用器中。
20.根据权利要求16所述的设备,其中所述双字包括64个位。
21.—种设备,其包括 用于存储数据的多个装置; 负载对齐器装置,所述负载对齐器装置用于与对用于存储数据的所述多个装置执行多路复用运算并行地,对从用于存储数据的所述多个装置中的一者中所检索的双字的多个段选择性地执行数据对齐运算和数据复制运算中的至少一者; 扩展装置,所述扩展装置用于与所述多路复用运算并行地对所述双字的多个段选择性地进行正负号扩展或零扩展;以及 填补装置,所述填补装置用于与所述多路复用运算并行地对所述双字的所述多个段选择性地进行正负号填补或零填补。
22.根据权利要求21所述的设备,其进一步包括选自由以下各者组成的群组的装置音乐播放器、视频播放器、娱乐单元、导航装置、通信装置、个人数字助理PDA和计算机,所述负载对齐器装置、所述正负号扩展装置和所述零填补装置集成到所述装置中。
23.一种计算机可读媒体,所述计算机可读媒体包括一个或一个以上微处理器指令,所述一个或一个以上微处理器指令在由微处理器执行时使所述微处理器 执行多级多路复用运算的第一级,所述执行包括 执行第一部分多路复用运算,所述第一部分多路复用运算包括从第一多个数据源中选择第一数据源;以及 对从所述选定的第一数据源所接收的第一数据执行第一数据对齐运算和第一数据复制运算中的至少一者,其中所述第一数据对齐运算和所述第一数据复制运算中的所述至少一者关于所述第一数据以字层级执行。
24.根据权利要求23所述的计算机可读媒体,其中执行所述多级多路复用运算的所述第一级进一步包括 执行第二部分多路复用运算,所述第二部分多路复用运算包括从第二多个数据源中选择第二数据源;以及 对从所述选定的第二数据源所接收的第二数据执行第二数据对齐运算和第二数据复制运算中的至少一者,其中所述第二数据对齐运算和所述第二数据复制运算中的所述至少一者关于所述第二数据以字层级执行。
25.根据权利要求24所述的计算机可读媒体,其中执行所述一个或一个以上微处理器指令进一步使所述微处理器 在执行所述第一级之后执行所述多级多路复用运算的第二级,所述执行包括执行多路复用运算,所述多路复用运算包括从所述第一数据和所述第二数据中的一者选择第三数据;以及 对所述第三数据执行第三数据对齐运算和第三数据复制运算中的至少一者,其中所述第三数据对齐运算和所述第三数据复制运算中的所述至少一者关于所述第三数据以半字层级执行。
26.根据权利要求25所述的计算机可读媒体,其中执行所述一个或一个以上微处理器指令进一步使所述微处理器 在执行所述第二级之后执行所述多级多路复用运算的第三级,所述执行包括 关于所述第三数据以字节层级执行以下各者中的至少一者以产生最终数据数据对齐运算、数据复制运算、正负号扩展运算和零填补运算;以及 将所述最终数据存储在寄存器堆和存储器中的至少一者中。
27.根据权利要求26所述的计算机可读媒体,其中所述存储器包括所述第一多个数据源和所述第二多个数据源。
28.根据权利要求23所述的计算机可读媒体,其中所述一个或一个以上微处理器指令包含加载指令、存储指令或其任何组合。
29.根据权利要求28所述的计算机可读媒体,其中所述一个或一个以上微处理器指令中的至少一者包含以下各者待检索的数据的存储器地址、待检索的数据的存储器偏移、待检索的数据的大小、正负号扩展位、零扩展位、正负号填补位、零填补位、左移位位、右移位位,或其任何组合。
全文摘要
揭示一种包含组合的选择和数据对齐或数据复制的多级多路复用运算。在特定实施例中,一种方法包含执行多级多路复用运算的第一级。在所述第一级期间,从第一多个数据源中选择第一数据源。在所述第一级期间,还对来自所述选定的第一数据源的第一数据执行第一数据对齐运算和第一数据复制运算中的至少一者。
文档编号G06F13/16GK102713875SQ201180005892
公开日2012年10月3日 申请日期2011年1月14日 优先权日2010年1月15日
发明者拉胡尔·R·托莱, 林任从, 阿贾伊·阿南特·英格尔 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1