用以执行快速旋转运算的系统及方法

文档序号:6593986阅读:231来源:国知局
专利名称:用以执行快速旋转运算的系统及方法
技术领域
本发明大体上涉及执行快速旋转运算。
背景技术
技术上的进步已产生更小且更强大的计算装置。举例来说,当前存在各种各样的 便携型个人计算装置,包括无线计算装置,例如,小巧、轻便且易于由用户携带的便携型无 线电话、个人数字助理(PDA)及寻呼装置。更具体地说,例如蜂窝式电话及IP电话的便携 型无线电话可经由无线网络传达语音及数据包。接收经由无线链路传达的数据包括数据解码功能。数据解码功能可涉及使用乘法 运算的一个或一个以上向量旋转运算。举例来说,可将无线数据编码为包括具有复值的向 量(例如,同相分量及正交分量)之间的角位移的一系列符号。从这些符号中检索数据可 能需要旋转向量(例如)以补偿在解码期间累积的相位。这些向量运算可能会消耗有限的 处理资源,尤其在便携型装置处。

发明内容
揭示执行快速向量旋转运算的系统及方法。可按经由一个或一个以上控制值指定 的旋转度或角位移围绕坐标原点旋转由端点坐标数据识别的向量。所揭示的实施例可结合 编码或解码无线数据(例如,在调制解调器装置或处理器处)或结合其它应用而操作。在特定实施例中,揭示一种包括在处理器处执行单一向量旋转指令的方法。单一 向量旋转指令包括接收指示第一坐标及第二坐标的第一数据、接收指示选自九十度倍数集 合的第一旋转值的第一控制值及将输出数据写入到数据存储元件,其中所述输出数据对应 于按所述第一旋转值旋转的所述第一数据。在另一特定实施例中,揭示一种处理器,其包括用以响应于控制值选择性地交换 第一坐标数据与第二坐标数据的装置。所述处理器还包括用以对所述第一坐标数据求反以 产生第一经求反的坐标数据及对所述第二坐标数据求反以产生第二经求反的坐标数据的 装置。所述处理器进一步包括用以响应于所述控制值选择性地输出所述第一坐标数据或所 述第一经求反的坐标数据及选择性地输出所述第二坐标数据或所述第二经求反的坐标数 据的装置。所述控制值指示由所述第一坐标数据及所述第二坐标数据表示的向量的旋转 度。在特定实施例中,揭示一种系统,其包括调制解调器,所述调制解调器适于执行快 速向量旋转运算。所述系统包括收发器,所述收发器经配置以耦合到天线。所述调制解调器 经耦合以从所述收发器接收无线信号数据。所述无线信号数据包括可对应于坐标位置(例 如,向量端点的位置)的符号数据。调制解调器包括纵横制装置,所述纵横制装置经配置以 响应于控制值选择性地交换与所述符号数据相关联的第一坐标数据与第二坐标数据。所述 调制解调器还包括向量加法器装置,所述向量加法器装置经配置以对所述纵横制装置的输 出求反。所述调制解调器进一步包括多路复用器,所述多路复用器经耦合以响应于所述控制值选择性地输出所述向量加法器装置的输出或所述纵横制装置的输出。所述控制值指示 由所述第一坐标数据及所述第二坐标数据表示的第一向量的旋转度。在另一特定实施例中,揭示一种可由处理器执行以在单一执行循环中执行向量旋 转的处理器指令。所述处理器指令包括指令名及包括第一坐标及第二坐标的第一字段。所 述处理器指令还包括第二字段,所述第二字段包括指示旋转所述第一及第二坐标数据的第 一量的第一控制值。在所述处理器指令的执行后,所述处理器即刻将经旋转的数据存储到 存储器中。所述经旋转的数据对应于按由所述第一控制值指示的所述第一量旋转的所述第 一及第二坐标数据。由所揭示的实施例提供的一个特定优势为由快速向量旋转运算实现的无线数据 的较高速解码。在审阅整个申请案之后,本发明的其它方面、优势及特征将变得显而易见, 整个申请案包括以下部分“


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

图1为经配置以执行快速向量旋转运算的便携型通信装置的特定说明性实施例 的框图;图2为用以执行快速向量旋转指令的系统的特定说明性实施例的框图;图3为用以执行向量坐标旋转的系统的第一说明性实施例的框图;图4为用以产生快速向量旋转运算的系统的特定说明性实施例的框图;图5为用以执行向量坐标旋转的系统的第二说明性实施例的框图;图6为向量坐标旋转系统的第一说明性实施例的数据流程图;图7为向量坐标旋转系统的第二说明性实施例的数据流程图;图8为用以执行快速向量旋转运算的方法的第一说明性实施例的流程图;及图9为用以执行快速向量旋转运算的方法的第二说明性实施例的流程图。
具体实施例方式参看图1,其描绘经配置以执行快速向量旋转运算的电子装置的特定说明性实施 例的框图且将其大体表示为100。装置100包括处理器(例如,数字信号处理器(DSP) 110), 所述处理器耦合到存储器132且还耦合到经配置以执行快速向量旋转运算190的调制解调 器 140。图1还展示显示器控制器126,其耦合到数字信号处理器110及耦合到显示器 128。编码器/解码器(CODEC) 134还可耦合到数字信号处理器110。扬声器136及麦克风 138可耦合到CODEC 134。调制解调器140可耦合到收发器146。收发器146可经配置以耦合到无线天线 142。收发器146可经配置以产生对应于当收发器146耦合到天线142时接收的无线信号 的坐标数据(例如,符号相位数据)。调制解调器140经配置以将快速向量旋转运算190应 用到从收发器146接收的坐标数据,作为用以从无线信号中检索经编码数据的解码过程的 一部分。举例来说,符号相位数据可表达为具有在坐标原点处的一端的向量(例如,在(X, y)坐标系统中的坐标(0,0)),且可由向量的另一端的坐标描述(例如,在从正χ轴四十五度角度处的向量的坐标(1,1))。作为说明性实例,在坐标平面内按九十度的旋转度(即, 角位移)执行(1,1)向量的向量旋转产生经旋转的向量(_1,1)。按一百八十度执行(1,1) 向量的向量旋转产生经旋转的向量(_1,_1)。按二百七十度执行(1,1)向量的向量旋转产 生经旋转的向量(1,_1)。在特定实施例中,DSP 110、显示器控制器126、存储器132、CODEC 134、调制解调 器140及收发器146包括于系统级封装或芯片上系统装置122中。在特定实施例中,输入 装置130及电源144耦合到芯片上系统装置122。此外,在特定实施例中,如图1中说明,显 示器128、输入装置130、扬声器136、麦克风138、无线天线142及电源144在芯片上系统装 置122外部。然而,显示器128、输入装置130、扬声器136、麦克风138、无线天线142及电 源144中的每一者可耦合到芯片上系统装置122的组件(例如,接口或控制器)。在操作期间,可在天线142处接收包括经编码数据的无线信号,且可经由收发器 146将对应坐标数据提供到调制解调器140。举例来说,坐标数据可表示向量的X及Y坐 标。调制解调器140可使用快速向量旋转运算190实施坐标数据的旋转作为解码过程的一 部分。快速向量旋转运算190可实现调制解调器140的每一处理循环的多个坐标旋转,从 而实现数据的高速解码。此外,快速向量旋转运算190可使坐标旋转能够在不使用乘法或 表查找的情况下执行,从而减少了解码过程的功率消耗。在特定实施例中,调制解调器140包括管线式处理器,所述管线式处理器经配置 以执行执行快速向量旋转运算190以在单一处理器执行循环期间执行多个向量坐标旋转 的指令。举例来说,调制解调器140可从收发器146接收包括符号数据的无线信号数据,符 号数据包括由第一坐标识别的第一向量及由第二坐标识别的第二向量。调制解调器140可 经配置以通过执行单一处理器指令而在单一执行循环期间执行对第一向量及对第二向量 的同时旋转运算。举例来说,在说明性实施例中,调制解调器140包括管线式处理器,所述管线式处 理器具有包括图4的系统400的执行单元,即,包括纵横制装置,其经配置以响应于控制值 选择性地交换第一向量的第一坐标数据与第二坐标数据;向量加法器装置,其经配置以对 所述纵横制装置的输出求反;及多路复用器,其经耦合以响应于所述控制值选择性地输出 所述向量加法器装置的输出或所述纵横制装置的输出。控制值可指示由第一坐标数据及第 二坐标数据表示的第一向量的所要旋转度(例如,九十度的倍数)。在特定实施例中,调制解调器140可不包括专用硬件组件及电路,且可替代地为 在处理器110处执行的调制解调器应用(例如,交错的多线程管线式处理器的处理线程), 其中快速向量旋转运算190经执行以在处理器110的单一处理循环期间执行多个向量坐标 旋转。在又一实施例中,快速向量旋转运算190可由专用硬件、固件、一个或一个以上其它 处理器或其任何组合执行。参看图2,其描绘用以执行快速向量旋转运算指令的系统且将其大体表示为200。 系统200包括处理器202,处理器202包括寄存器堆204。处理器202经配置以接收旋转指 令206。在特定实施例中,系统200包括于图1的调制解调器140中,且旋转指令206对应 于图1中描绘的快速向量旋转运算190的一部分。在特定实施例中,旋转指令206为可由处理器202执行以在单一执行循环中执行 向量旋转的处理器指令。旋转指令206包括描绘为名称!^stRotate (快速旋转)的指令名260。旋转指令206还包括第一字段(Rss) 262及第二字段(Rt) 264。旋转指令206将值(例 如,从执行向量旋转运算产生的经旋转的向量)返回到地址(Rdd) 266。在特定实施例中,第一字段I ss262包括对应于寄存器堆204的第一寄存器208的 地址。第二字段Rt262包括对应于寄存器堆204的第二寄存器222的地址。返回地址Iidd 266对应于寄存器堆204的第三寄存器对0。在特定实施例中,处理器202经配置以响应于接收到旋转指令206而存取第一数 据210及第一控制值2 (C1)。第一数据210 (例如,第一向量)可包括来自源寄存器Rss208 的向量的第一坐标(Xl)212及第二坐标(yi)214。在旋转指令206的执行后,处理器202即 刻将经旋转的数据242存储到存储器(例如,寄存器堆204的第三寄存器M0)中。经旋转 的数据242对应于按由第一控制值2M指示的第一量旋转的第一数据210,且可将经旋转的 数据242作为经旋转的坐标A 244及B 246的集合存储于目的地寄存器Rdd 240处。在特 定实施例中,处理器202包括多个执行单元270及272,其各自可适于在处理器202的单一 处理循环期间执行旋转指令206。在特定实施例中,处理器202进一步经配置以在旋转指令206的执行后即刻从第 一寄存器208读取第二数据216 (例如,第二向量),第二数据216包括第三坐标(X2) 218 及第四坐标(y2) 220。处理器202可进一步经配置以从第二寄存器222读取第二控制值 (C2) 2沈。第二控制值2 指示旋转第二数据216的第二量。处理器202可将第二经旋转的 数据248返回到寄存器堆204的第三寄存器M0。第二经旋转的数据248包括对应于按由 第二控制值2 指示的第二量旋转的第二数据216的经旋转的坐标数据,例如,坐标C 250 及D 252的集合。在特定实施例中,处理器202经配置以在旋转指令206的执行后即刻同时读取第 一数据210及第二数据216。处理器202可进一步经配置以分别与第一数据210及第二数 据216同时读取第一控制值2M及第二控制值2 两者。处理器202可经配置以根据第一 控制值2M对第一数据210执行第一旋转运算以产生经旋转的数据M2,以及根据第二控制 值2 对第二数据216执行第二旋转以产生第二经旋转的数据M8。可在具有由旋转指令 206的返回地址266指示的地址的第三寄存器240处将经旋转的数据242及第二经旋转的 数据M8同时写入到寄存器堆204。可使用单一执行单元702或272在单一处理器执行循环中执行读取第一数据210、 第二数据216、第一控制值2M及第二控制值226以及产生并存储经旋转的数据242及第二 经旋转的数据对4。因此,系统200使处理器202能够在处理器202的每一执行循环内执行 多个向量旋转。举例来说,作为非限制性说明性实例,第一数据210及第二数据216可对应 于与在调制解调器处从收发器接收的连续符号值相关联的向量(例如,与无线接收器的正 交解码循环有关)。在特定实施例中,可根据所说明的用于如下指示的伪码指令vcrotate的旋转逻 辑来执行旋转指令的执行Rdd = vcrotate (Rss, Rt)tmp = Rt [1:0];if (tmp == 0) {Rdd. h
= Rss. h

Rdd. h[l] = Rss. h[l];}else if (tmp == 1) {Rdd. h
= Rss. h[l];Rdd. h[l] = sat_16 (-Rss. h
);} else if (tmp == 2) {Rdd. h
= sat_16 (-Rss. h [1]);Rdd. h[l] = Rss. h
;}else{Rdd. h
= sat_16 (-Rss. h
);Rdd. h[l] = sat_16 (-Rss. h [1]);};tmp = Rt [3:2];if (tmp == 0) {Rdd. h[2] = Rss. h[2];Rdd. h[3] = Rss. h[3];}else if (tmp == 1) {Rdd. h[2] = Rss. h[3];Rdd. h[3] = sat_16 (-Rss. h [2]);} else if (tmp == 2) {Rdd. h[2] = sat_16 (-Rss. h [3]);Rdd. h[3] = Rss. h[2];}else{Rdd. h[2] = sat_16 (-Rss. h [2]);Rdd. h[3] = sat_16 (-Rss. h [3]);};在以上伪码中,Rss. h[n]指代源寄存器Rss的第η个半字。举例来说,Rss可包括 具有四个十六位半字的六十四位值,所述六十四位值对应于分别在第一半字Rss. h
及 第二半字Rss.h[l]中的第一χ及y数据,及分别在第三半字Rss. h[2]及第四半字Rss. h[3] 中的第二 χ及y数据。Rt指代存储控制值的寄存器,控制值包括在位[1:0]处的第一旋转 指示符及在位[3:2]处的第二旋转指示符。每一旋转指示符由表示四个值的集合中的一者 的两个位表示。“零”控制值表示零度旋转。“一”控制值表示负九十度或二百七十度旋转。 “二”控制值表示九十度旋转。“三”控制值表示一百八十度旋转。函数sat_16校正从对零 值求反产生的饱和状况,且Rdd表示含有四个十六位半字的目的地寄存器。参看图3,其描绘用以执行坐标旋转的系统的第一说明性实施例且将其大体表示 为300。系统300包括用以响应于控制值C1 3M选择性地交换第一坐标数据& 320与第 二坐标数据Y1 322的装置,其经说明为交换电路302。系统300进一步包括用以对第一坐 标数据320求反以产生第一经求反的坐标数据及对第二坐标数据322求反以产生第二经求 反的坐标数据的装置,其在图3中经说明为求反电路304。系统300还包括用以响应于控制 值C1 348选择性地输出第一坐标数据或第一经求反的坐标数据及选择性地输出第二坐标数据或第二经求反的坐标数据的装置,其经描绘为选择电路308。饱和逻辑电路306耦合到 求反电路304。在特定实施例中,系统300经配置以接收第一坐标数据320及第二坐标数据322, 且执行由第一坐标数据320及第二坐标数据322表示的向量的旋转。举例来说,第一坐标 数据320可表示向量的X坐标,且第二坐标数据322可表示所述向量的Y坐标。控制值C1 3M可表示待对向量应用的旋转度。在特定实施例中,控制值C1指示90度旋转的倍数。举 例来说,C1可为可经设定为指示0度旋转的第一值、指示90度旋转的第二值、表示180度旋 转的第三值及表示270度旋转的第四值的二位数据项。应认识到,归因于旋转的对称性,大 于270度的90度的倍数及小于0度的90度的倍数等效于本文中描述的倍数中的一者。在特定实施例中,交换电路302经配置以接收第一坐标数据320及第二坐标数据 322,以及控制值324,且输出第一经交换的输出3 及第二经交换的输出328。第一经交 换的输出3 可响应于控制值3M而对应于第一坐标数据320或第二坐标数据322。类似 地,第二经交换的输出3 可取决于控制值3M而对应于第一坐标数据320或第二坐标数 据322。分别将第一经交换的坐标数据输出3 及第二经交换的坐标数据输出3 作为输 入340及342提供到选择电路308。还分别将第一交换坐标数据输出3 及第二交换坐标 数据输出3 作为输入330及332提供到求反电路304。在特定实施例中,求反电路304经配置以在第一输入330处接收第一经交换的数 据3 且将第一经交换的数据326的求反的值提供到选择电路308的第一经求反的输入 344。求反电路304进一步经配置以在第二输入332处接收第二经交换的数据3 且将第 二经交换的数据328的求反的值提供到选择电路308的第二经求反的输入346。在特定实 施例中,饱和逻辑电路306经配置以校正因求反电路304的运算引起的溢出状况。举例来 说,在某些二进制数表示中,当对“0”值求反时,可能会将所得负“0”值翻译成不正确的结 果。因此,饱和逻辑电路306经配置以检测并校正这些负饱和状况。在特定实施例中,选择电路308经配置以在控制输入348处接收控制值C1,且在第 一坐标输出Xout 350及第二坐标输出Y。ut352处选择性地输出对应于按由控制值C1指示的 量旋转的第一坐标数据320及第二坐标数据322的值。因此,选择电路308可在第一交换 坐标输入340处接收第一经交换的输出3 及在第一经求反的输入344处接收第一经交换 的输出3 的经求反的值。选择电路308可选择性地将在第一交换坐标输入340及第一经 求反的输入344中的一者处接收的值提供到第一坐标输出X。ut 350。此外,选择电路308可 接收第二交换坐标输入342及第二经求反的输入346,且可选择性地将在第二交换坐标输 入342及第二经求反的输入346中的一者处接收的值输出到第二坐标输出Y。ut 352。应认识到,第一坐标输出X。ut350及第二坐标输出Y。ut352表示在由第一坐标数据 320及第二坐标数据322指示的输入向量按由控制值C1表示的90度的倍数旋转后所述输 入向量的旋转的结果。在不执行表查找的情况下且进一步在不执行乘法运算的情况下产生 从选择电路308的输出。实情为,采用二维向量旋转所固有的对称性以使用交换、求反及选 择电路产生90度的倍数的旋转。因此,系统300提供快速向量旋转的硬件实施方案,例如, 可用于图1中描绘的调制解调器140中、图2中描绘的处理器202的执行单元270及272 中的一者或一者以上中、其它调制解调器或处理器或其任何组合中。举例来说,系统300可 包括于图形处理单元中。作为另一实例,系统300可包括于适于处理调制解调器应用及图形应用的管线式处理器的执行单元中。作为一实例,系统300可实施于多线程处理器的执行单元中。另外,可将系统300 实施为管线式处理器的管线执行过程的一部分。举例来说,交换电路302可包括处理器的 多路复用器、纵横制装置、其它开关装置或电路或其任何组合中的一者或一者以上。求反电 路304可包括算术逻辑单元(ALU)、加法器、处理器的适于对输入值求反的其它电路或装置 或其任何组合。选择电路308可包括处理器的多路复用器、开关或适于选择性地输出在一 个或一个以上输入处接收的值的其它电路或装置或其任何组合中的一者或一者以上。参看图4,其描绘用以产生快速向量旋转运算的系统经描绘且将其大体表示为 400。系统400包括耦合到纵横开关(crossbar) 408的寄存器堆402。纵横开关408经耦合 以将输出提供到向量加法器410及到多路复用器412两者。向量加法器410将输出提供到 多路复用器412。多路复用器412经耦合以将输出值提供到输出寄存器414。在特定实施例中,寄存器堆402包括第一寄存器404及第二寄存器406。第一寄存 器404可包括对应于第一坐标Xl422及第二坐标yi4M的第一数据。第一寄存器堆404还可 包括对应于第三坐标&似6及第四坐标y2428的第二数据。第二寄存器406可存储第一控 制值Q430及第二控制值C2432。在特定实施例中,第一寄存器404中的坐标数据422-4 以及第二寄存器406中的控制值430及432对应于与无线发射或在调制解调器、处理器或 其任何组合处接收的数据相关联的符号数据。纵横开关408经配置以将在第一输入434处接收的数据选择性地提供到多路复用 器412的第一输入446及第二输入448中的一者。纵横开关408进一步经配置以将在第二 输入436处接收的数据选择性地提供到多路复用器412的第一输入446及第二输入448中 的另一者。类似地,纵横开关408经配置以将在第三输入438处接收的数据选择性地提供 到多路复用器412的第三输入450及第四输入452中的一者。纵横开关408还经配置以将 在第四输入440处接收的数据提供到多路复用器412的第三输入450及第四输入452中的 另一者。在特定实施例中,纵横开关408选择性地确定是否交换对应于第一坐标数据Xl422 及第二坐标数据yi424的在第一输入434及第二输入436处接收的数据值。纵横开关408 基于在第一控制输入442处接收的第一控制值Q430选择性地交换X1与yi。纵横开关408 进一步经配置以基于在第二控制输入444处接收的第二控制值C2432的值选择性地交换在 第三输入438处的数据值与在第四输入440处接收的数据值。在特定实施例中,纵横开关 408以大体上类似于图3中描绘的交换电路302的方式操作。在特定实施例中,向量加法器410在第一输入4M及第二输入456处接收对应于 提供到多路复用器412的第一输入446及到第二输入448的数据的数据。此外,向量加法器 410在第三输入458及第四输入460处接收对应于分别在多路复用器412的第三输入450 及第四输入452处接收的数据的数据。向量加法器410经配置以对在输入妨4、456、458及 460中的每一者处接收的数据求反。经由第一经求反的输入462、第二经求反的输入464、第 三经求反的输入466及第四经求反的输入468将经求反的数据提供到多路复用器412。多路复用器412经耦合以分别在第一输入446及第二输入448处接收由纵横开关 408提供的数据xls、yls,且分别在第三输入450及第四输入452处接收数据^及y2s。多路 复用器412经进一步耦合以分别在第一经求反的输入462及第二经求反的输入464处接收 来自向量加法器410的经求反的数据-Xls及_yls,且分别在第三经求反的输入466处及在第四经求反的输入468处接收来自向量加法器410的经求反的数据-&s&_y2s。多路复用 器412在第一控制输入470处接收第一控制值Q430且在第二控制输入472处接收第二控 制值C2432。多路复用器412经配置以基于第一控制输入470选择性地提供来自第一输入446 或第一经求反的输入462的第一输出474及来自第二输入448或第二经求反的输入464的 第二输出476。第一输出474与第二输出476经耦合以将第一经旋转的坐标)(1(^490及第 二经旋转的坐标Ylrat 492分别提供到输出寄存器414。举例来说,在控制值Q430指示零度 旋转(其不需要经求反的值)的情况下,多路复用器412选择未经求反的输入446及448 以分别提供到第一输出474及第二输出476。在控制值(^430指示一百八十度旋转(需要 两个坐标的求反)的情况下,多路复用器412选择来自向量加法器410的经求反的输入462 及464。在控制值指示九十度旋转或二百七十度旋转的情况下,多路复用器可选择一个未经 求反的输入446或448及一个经求反的输入462或464。多路复用器412还经配置以基于第二控制输入472将第三坐标输入450及第三经 求反的输入466中的一者选择性地提供到第三输出478。多路复用器412进一步经配置以 基于第二控制输入472将第四坐标输入452或第四经求反的输入468选择到第四输出480。 第三输出478及第四输出480经耦合到输出寄存器414以分别提供第二向量经旋转的输出 数据)(2。ut 494 及 A。ut496。在特定实施例中,系统400进一步包括耦合到向量加法器410的饱和逻辑电路 411。饱和逻辑电路411可经配置以检测在向量加法器410的输出处的饱和状况(例如,可 由在二的补码二进制表示中的“零”值的求反造成),且提供经校正的值用于在向量加法器 410处的输出。在特定实施例中,饱和逻辑电路411可包括一个或一个以上“异或”门,且可 将待交换的一个或一个以上硬连线的值(hardwired value)提供到向量加法器410中。在特定实施例中,系统400可实施于处理器管线的一部分处,例如,在交错的多线 程处理器的执行单元处。举例来说,纵横开关408可为路由单元的一部分以在处理器的执 行单元处对准数据,且向量加法器410及多路复用器412还可为执行单元内的元件。在另 一特定实施例中,系统400可实施于无线装置的调制解调器(例如,图1的调制解调器140) 中。在特定实施方案中,系统400可实施于管线式交错的多线程处理器的一个或一个以上 执行单元处以执行调制解调器操作。此外,在说明性实施例中,纵横开关408可对应于交换 电路320的具体实施方案,向量加法器410可对应于求反电路304的具体实施方案,且多路 复用器412可充当选择电路308的具体实施方案(如图3中所描绘),且进一步适于执行多 个向量的同时旋转,如由具有对应于第一数据422及424的坐标的第一向量及具有对应于 第二数据似6及428的坐标的第二向量所指示。参看图5,其描绘用以执行坐标旋转的系统的第二说明性实施例且将其大体表示 为500。系统500包括用以响应于控制值CjM选择性地交换第一坐标数据&520与第二 坐标数据A522的装置,其被说明为交换电路502。系统500进一步包括用以对第一坐标数 据520求反以产生第一经求反的坐标数据及对第二坐标数据522求反以产生第二经求反的 坐标数据的装置,其在图5中被说明为向量乘法器504。系统500还包括用以响应于控制值 Q548选择性地输出第一坐标数据或第一经求反的坐标数据及选择性地输出第二坐标数据 或第二经求反的坐标数据的装置,其被描绘为选择电路508。系统500大体对应于图3的系统300且根据图3的系统300使用向量乘法器504代替求反电路304进行操作。在特定实施例中,系统500经配置以接收第一坐标数据520及第二坐标数据522, 且执行由第一坐标数据520及第二坐标数据522表示的向量的旋转。举例来说,第一坐标数 据520可表示向量的X坐标,且第二坐标数据522可表示所述向量的Y坐标。控制值Q524 可表示待对向量应用的旋转度。在特定实施例中,交换电路502经配置以接收第一坐标数据520及第二坐标数据 522以及控制值524,且输出第一经交换的输出5 及第二经交换的输出528。分别将第一 经交换的坐标数据输出5 及第二经交换的坐标数据输出5 作为输入540及542提供到 选择电路508。还分别将第一交换坐标数据输出5 及第二交换坐标数据输出5 作为输 入530及532提供到向量乘法器504。在特定实施例中,向量乘法器504经配置以在第一输入530处接收第一经交换的 数据5 且将第一经交换的数据5 的经求反的值提供到选择电路508的第一经求反的输 入M4。向量乘法器504进一步经配置以在第二输入532处接收第二经交换的数据5 且 将第二经交换的数据528的经求反的值提供到选择电路508的第二经求反的输入M6。在 特定实施例中,向量乘法器504包括选择性地将在第一输入530、第二输入532或两者处接 收的数据乘以负一的控制逻辑。在特定实施例中,选择电路508经配置以在控制输入548处接收控制值C1,且在第 一坐标输出X。ut550及第二坐标输出Y。ut552处选择性地输出对应于按由控制值C1指示的量 旋转的第一坐标数据520及第二坐标数据522的值。因此,选择电路508可在第一交换坐 标输入540处接收第一经交换的输出5 及在第一经求反的输入544处接收第一经交换的 输出5 的经求反的值。选择电路508可选择性地将在第一交换坐标输入540及第一经求 反的输入M4中的一者处接收的值提供到第一坐标输出X。ut550。此外,选择电路508可接 收第二交换坐标输入542及第二经求反的输入M6,且可选择性地将在第二交换坐标输入 542及第二经求反的输入M6中的一者处接收的值输出到第二坐标输出Y。ut 552。参看图6,其描绘向量坐标旋转系统的第一说明性实施例的数据流且将其大体表 示为600。交换电路602经耦合以接收输入向量(Xl,yi)601且将输出提供到求反电路604。 交换电路602可响应于控制值Q6M选择性地交换输入向量601的坐标以产生输出向量
(X1, Y1)或(Y1, X1)。求反电路604响应于控制值C1SM选择性地对从交换电路602接收的数据求反且 产生输出向量(x。ut,y。ut)610。举例来说,求反电路604可接收第一向量坐标及第二向量坐 标,且可基于控制值Q6M选择性地对仅第一坐标、仅第二坐标、两个坐标求反或不对任一 坐标求反。输出向量610对应于在围绕坐标原点旋转由控制值Q6M指示的九十度的倍数 后的输入向量601。因为求反电路604响应于控制值C1SM选择性地对所接收的数据求反, 所以系统600操作以在无输出选择电路(例如,图3的选择电路308)的情况下执行向量坐 标旋转运算。在特定实施例中,系统600表示经编程以实施快速向量旋转算法的处理器,所述 快速向量旋转算法包括当旋转量为九十度或二百七十度时选择性地交换第一坐标与第二 坐标、接着为当旋转量为九十度时选择性地对第一坐标求反、当旋转量为二百七十度时选 择性地对第二坐标求反及当旋转量为一百八十度时选择性地对两个坐标求反。可使用纵横制装置、多路复用器装置、经配置以选择性地交换两个或两个以上输入值的另一装置、在处 理器执行单元处执行的交换运算、固件、硬件或其任何组合来实施交换电路602。可使用向 量加法器、向量乘法器、经配置以选择性地对两个或两个以上输入值求反的另一装置、在处 理器执行单元处执行的求反运算、固件、硬件或其任何组合来实施求反电路604。参看图7,其描绘向量坐标旋转系统的第二说明性实施例的数据流且将其大体表 示为700。求反电路704经耦合以接收输入向量(Xl,yi)701且将输出提供到交换电路702。 求反电路704可响应于控制值CJM选择性地对输入向量701的坐标求反以产生输出向量
(X1, Y1)、(X1, "Y1)、(-X1, Y1)或(-X1, "Y1)。交换电路702响应于控制值CJM选择性地交换从求反电路704接收的数据且产 生输出向量(x。ut,y。ut)710。输出向量710对应于在围绕坐标原点旋转由控制值CJM指示 的九十度的倍数后的输入向量701。在特定实施例中,系统700表示经编程以实施快速向量旋转算法的处理器,所述 快速向量旋转算法包括接收第一及第二坐标、当旋转量为九十度时选择性地对第二坐标求 反、当旋转量为一百八十度时选择性地对第一及第二坐标求反、当旋转量为二百七十度时 选择性地对第一坐标求反及接着当旋转量为九十度或二百七十度时选择性地交换两个坐 标。可使用纵横制装置、多路复用器装置、经配置以选择性地交换两个或两个以上输入值的 另一装置、在处理器执行单元处执行的交换运算、固件、硬件或其任何组合来实施交换电路 702。可使用向量加法器、向量乘法器、经配置以选择性地对两个或两个以上输入值求反的 另一装置、在处理器执行单元处执行的求反运算、固件、硬件或其任何组合来实施求反电路 704。参看图8,其描绘用以执行快速旋转运算的方法的第一说明性实施例且将其大体 表示为800。方法800包括在处理器处执行单一指令。在特定实施例中,可在图1到图7中 描绘的系统中的一者或一者以上处执行所述方法。执行单一指令包括在802处接收指示第一坐标及第二坐标的第一数据。在特定 实施例中,第一坐标及第二坐标识别向量的X及Y分量。移到804,接收指示选自九十度倍 数集合的第一旋转值的第一控制值。在特定实施例中,九十度倍数集合包括零度、九十度、 一百八十度及二百七十度。继续到806,在特定实施例中,执行单一指令进一步包括当第一旋转值对应于九十 度或二百七十度时交换第一坐标与第二坐标。前进到808,当第一旋转值对应于九十度、 一百八十度或二百七十度时,对第一坐标及第二坐标中的至少一者求反。继续前进到810,在特定实施例中,应用饱和逻辑以防止对第一坐标或第二坐标求 反时的溢出状况。移到812,将输出数据写入到数据存储元件。举例来说,数据存储元件可 包括一个或一个以上锁存器、正反器装置、寄存器、高速缓冲存储器、存储器或用以存储数 据的任一其它装置或系统。输出数据对应于按第一旋转值旋转的第一数据。举例来说,第 一数据可识别从坐标原点延伸到第一及第二坐标处的端点的向量,且输出数据可识别按由 第一旋转值指示的量围绕坐标原点的旋转后的向量的端点。在特定实施例中,在不执行乘 法运算或表查找的情况下确定输出数据,从而实现比通过使用乘法运算或表查找所达到功 率低及速度高的运算。可在处理器的单一执行循环中执行单一旋转指令。举例来说,可在包括实施图4的系统400的执行单元的处理器处执行单一旋转指令以在单一执行循环中执行向量旋转运算。在特定实施例中,第一控制值可对应于接收的无线信号的符号值。举例来说,无线 信号的每一符号值可表示相对于累积的相位的角偏移,且第一控制值可指示需要用来基于 累积的相位调整向量以确定与符号相关联的角偏移的旋转度。在特定实施例中,可结合无 线接收器的正交解码循环来执行单一旋转指令。举例来说,在所接收的无线数据具有同相 分量(I)及与所述同相分量异相九十度的正交分量⑴)的情况下,可按九十度的倍数旋转 正交分量以用于通过同相分量来解码。在特定实施例中,单一指令为微指令。举例来说,在适于将接收的指令翻译成一个 或一个以上可执行微指令的微码处理器中,单一指令可为微指令,即,直接可执行且不可翻 译成多个其它可执行指令的指令。在另一实施例中,可在非微码处理器处执行单一指令, 即,在不首先将指令翻译成多个可执行微指令的情况下执行所接收的指令的处理器处执 行。在实施例中,可在不支持微码的管线处执行单一指令,其中管线作为单一管线运算确定 向量旋转输出,而不执行对应于微指令的一序列子运算。参看图9,其描绘用以执行快速旋转运算的方法的第二说明性实施例且将其大体 表示为900。可在图1到图7中描绘的系统中的一者或一者以上处或根据图8中描绘的方 法800或其任何组合来执行方法900。方法900包括执行单一指令,其包括在902处接收指示第一坐标及第二坐标的第 一数据。移到904,接收指示选自九十度倍数集合的第一旋转值的第一控制值。在特定实施 例中,九十度倍数集合包括零度、九十度、一百八十度及二百七十度。在特定实施例中,执行单一指令还包括在906处接收指示第三坐标及第四坐标的 第二数据。在908处,可接收指示选自九十度倍数集合的第二旋转值的第二控制值。可与 确定对应于按第二旋转值旋转的第二数据的第二输出数据同时确定对应于按第一旋转值 旋转的第一数据的输出数据。在912处,可将输出数据及第二输出数据写入到数据存储元 件。在特定实施例中,在将输出数据或第二输出数据中的任一者写入到寄存器堆前, 可在处理器的单一执行单元处确定输出数据及第二输出数据。举例来说,如关于图2的系 统200描述,可与确定输出数据同时确定第二输出数据。在说明性实施例中,处理器的执行 单元包括图4的系统400,且纵横开关408、向量加法器410及多路复用器412可并行地对 第一输入数据及第二输入数据进行运算,且可大体上同时将输出数据及第二输出数据写入 到输出寄存器414。所属领域的技术人员将进一步了解,结合本文所揭示的实施例所描述的各种说明 性逻辑块、配置、模块、电路及算法步骤可实施为电子硬件、计算机软件或两者的组合。为了 清晰地说明硬件与软件的此可互换性,各种说明性组件、块、配置、模块、电路及步骤已在上 文大体按其功能性加以了描述。将此功能性实施为硬件还是软件视特定应用及强加于整个 系统上的设计约束而定。所属领域的技术人员可以变化的方式针对每一特定应用实施所描 述的功能性,但是这些实施决策不应被解释为会导致脱离本发明的范围。结合本文中所揭示的实施例所描述的方法或算法的步骤可直接体现于硬件中、由 处理器执行的软件模块中或两者的组合中。软件模块可驻留于随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、可编程只读存储器(PR0M)、可擦除可编程只读存储器(EPROM)、 电可擦除可编程只读存储器(EEPROM)、寄存器、硬盘、可装卸盘、压缩光盘只读存储器 (CD-ROM)或此项技术中已知的任何其它形式的存储媒体中。将示范性存储媒体耦合到处理 器,使得处理器可从存储媒体读取信息及将信息写入到存储媒体。在替代方案中,存储媒体 可与处理器成一体式。处理器及存储媒体可驻留于专用集成电路(ASIC)中。ASIC可驻留 于计算装置或用户终端中。在替代方案中,处理器及存储媒体可作为离散组件驻留于计算 装置或用户终端中。 提供对所揭示的实施例的先前描述,以使所属领域的技术人员能够制作或使用所 揭示的实施例。对于所属领域的技术人员来说,对这些实施例的各种修改将易于显而易见, 且在不脱离本发明的范围的情况下,本文中界定的一般原理可应用于其它实施例。因此,本 发明并不希望限于本文中所展示的实施例,而应符合与如所附权利要求书界定的原理及新 颖特征相一致的最广泛的可能范围。
权利要求
1.一种方法,其包含在处理器处执行单一指令,其中执行所述单一指令包括接收指示第一坐标及第二坐标的第一数据;接收指示选自九十度倍数集合的第一旋转值的第一控制值;以及将输出数据写入到数据存储元件,所述输出数据对应于按所述第一旋转值旋转的所述第一数据。
2.根据权利要求1所述的方法,其中执行所述单一指令进一步包含在不执行乘法运算 或表查找的情况下确定所述输出数据。
3.根据权利要求1所述的方法,其中在处理器的单一执行循环期间执行所述单一指令。
4.根据权利要求1所述的方法,其中所述九十度倍数集合包括零度、九十度、一百八十 度及二百七十度,且其中执行所述单一指令进一步包含当所述第一旋转值对应于九十度或二百七十度时交换所述第一坐标与所述第二坐标;以及当所述第一旋转值对应于九十度、一百八十度或二百七十度时,对所述第一坐标及所 述第二坐标中的至少一者求反。
5.根据权利要求4所述的方法,其中执行所述单一指令包括在对所述第一坐标或所述 第二坐标求反之前交换所述第一坐标与所述第二坐标。
6.根据权利要求4所述的方法,其中执行所述单一指令包括在交换所述第一坐标与所 述第二坐标之前对所述第一坐标或所述第二坐标求反。
7.根据权利要求4所述的方法,其中执行所述单一指令进一步包含应用饱和逻辑以防 止对所述第一坐标及所述第二坐标中的至少一者求反时的溢出状况。
8.根据权利要求1所述的方法,其中所述第一控制值对应于所接收的无线信号的符号值。
9.根据权利要求8所述的方法,其中执行所述单一指令是结合无线接收器的正交解码 循环执行。
10.根据权利要求1所述的方法,其中执行所述单一指令进一步包含 接收指示第三坐标及第四坐标的第二数据;接收指示选自所述九十度倍数集合的第二旋转值的第二控制值;以及 写入对应于按所述第二旋转值旋转的所述第二数据的第二输出数据。
11.根据权利要求10所述的方法,其进一步包含与确定所述输出数据同时确定所述第 二输出数据。
12.根据权利要求11所述的方法,其中在将所述输出数据写入到所述数据存储元件之 前在处理器的单一执行单元处确定所述输出数据及所述第二输出数据,所述数据存储元件 在寄存器堆内。
13.根据权利要求1所述的方法,其中所述单一指令是在不支持微码的管线中执行。
14.一种处理器指令,其可由处理器执行以在单一执行循环中执行向量旋转,所述处理 器指令包含指令名;第一字段,其中所述第一字段包括第一数据,所述第一数据包括第一坐标及第二坐标;以及第二字段,其中所述第二字段包括指示用以旋转所述第一数据的第一量的第一控制值,其中在所述处理器指令的执行后所述处理器即刻将经旋转的数据存储到存储器中,所 述经旋转的数据对应于按由所述第一控制值指示的所述第一量旋转的所述第一数据。
15.根据权利要求14所述的处理器指令,其中所述第一字段进一步包括第二数据,所 述第二数据包括第三坐标及第四坐标。
16.根据权利要求15所述的处理器指令,其中所述第二字段进一步包括指示用以旋转 所述第二数据的第二量的第二控制值。
17.根据权利要求16所述的处理器指令,其中所述处理器指令进一步返回对应于按由 所述第二控制值指示的所述第二量旋转的所述第二数据的第二经旋转的数据。
18.一种处理器,其包含用以响应于控制值选择性地交换第一坐标数据与第二坐标数据的装置; 用以对所述第一坐标数据求反以产生第一经求反的坐标数据及对所述第二坐标数据 求反以产生第二经求反的坐标数据的装置;以及用以响应于所述控制值选择性地输出所述第一坐标数据或所述第一经求反的坐标数 据及选择性地输出所述第二坐标数据或所述第二经求反的坐标数据的装置,其中所述控制值指示由所述第一坐标数据及所述第二坐标数据表示的向量的旋转度。
19.根据权利要求18所述的处理器,其中所述用以选择性地切换的装置包括纵横制装置。
20.根据权利要求18所述的处理器,其中所述用以求反的装置包括向量加法器或向量 乘法器。
21.根据权利要求20所述的处理器,其进一步包含饱和逻辑电路,所述饱和逻辑电路 用以校正所述向量加法器处的负溢出状况。
22.根据权利要求18所述的处理器,其中所述用以选择性地输出的装置包括多路复用器,
23.根据权利要求19所述的处理器,其进一步包含调制解调器,所述调制解调器经耦 合以接收所述第一坐标数据或所述第一经求反的坐标数据且接收所述第二坐标数据或所 述第二经求反的坐标数据。
24.一种系统,其包含收发器,其经配置以耦合到天线;以及调制解调器,其经耦合以从所述收发器接收无线信号数据,所述无线信号数据包括符 号数据,其中所述调制解调器包括纵横制装置,其经配置以响应于控制值选择性地交换第一坐标数据与第二坐标数据; 向量加法器装置,其经配置以对所述纵横制装置的输出求反;以及 多路复用器,其经耦合以响应于所述控制值选择性地输出所述向量加法器装置的输出 或所述纵横制装置的所述输出,其中所述控制值指示由所述第一坐标数据及所述第二坐标数据表示的第一向量的旋 转度。
25.根据权利要求M所述的系统,其中所述调制解调器包括处理器,所述处理器经配 置以通过执行单一处理器指令而在单一执行循环期间对所述第一向量及对第二向量执行 同时的旋转运算,其中所述符号数据包括所述第一向量及所述第二向量。
全文摘要
本发明揭示用以执行快速旋转运算的系统及方法。在特定实施例中,一种方法包括执行单一指令。所述方法包括接收指示第一坐标及第二坐标的第一数据、接收指示选自九十度倍数集合的第一旋转值的第一控制值,及写入对应于按所述第一旋转值旋转的所述第一数据的输出数据。
文档编号G06F7/548GK102067082SQ200980123391
公开日2011年5月18日 申请日期2009年6月17日 优先权日2008年6月26日
发明者卢奇安·科德雷斯库, 埃里克·詹姆斯·普隆德克, 尚卡尔·克里提瓦桑, 曾贸, 雷米·乔纳森·古尔斯基 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1