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

上传人:r5 文档编号:1032908 上传时间:2018-03-27 格式:PDF 页数:24 大小:634.31KB
返回 下载 相关 举报
摘要
申请专利号:

CN200980123391.3

申请日:

2009.06.17

公开号:

CN102067082A

公开日:

2011.05.18

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 9/30申请日:20090617|||公开

IPC分类号:

G06F9/30; G06F9/315; G06F7/548

主分类号:

G06F9/30

申请人:

高通股份有限公司

发明人:

尚卡尔·克里提瓦桑; 埃里克·詹姆斯·普隆德克; 卢奇安·科德雷斯库; 曾贸; 雷米·乔纳森·古尔斯基

地址:

美国加利福尼亚州

优先权:

2008.06.26 US 12/146,825

专利代理机构:

北京律盟知识产权代理有限责任公司 11287

代理人:

宋献涛

PDF下载: PDF下载
内容摘要

本发明揭示用以执行快速旋转运算的系统及方法。在特定实施例中,一种方法包括执行单一指令。所述方法包括接收指示第一坐标及第二坐标的第一数据、接收指示选自九十度倍数集合的第一旋转值的第一控制值,及写入对应于按所述第一旋转值旋转的所述第一数据的输出数据。

权利要求书

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: 一种处理器指令, 其可由处理器执行以在单一执行循环中执行向量旋转, 所述处理 器指令包含 : 指令名 ; 2 第一字段, 其中所述第一字段包括第一数据, 所述第一数据包括第一坐标及第二坐标 ; 以及 第二字段, 其中所述第二字段包括指示用以旋转所述第一数据的第一量的第一控制 值, 其中在所述处理器指令的执行后所述处理器即刻将经旋转的数据存储到存储器中, 所 述经旋转的数据对应于按由所述第一控制值指示的所述第一量旋转的所述第一数据。
15: 根据权利要求 14 所述的处理器指令, 其中所述第一字段进一步包括第二数据, 所 述第二数据包括第三坐标及第四坐标。
16: 根据权利要求 15 所述的处理器指令, 其中所述第二字段进一步包括指示用以旋转 所述第二数据的第二量的第二控制值。
17: 根据权利要求 16 所述的处理器指令, 其中所述处理器指令进一步返回对应于按由 所述第二控制值指示的所述第二量旋转的所述第二数据的第二经旋转的数据。
18: 一种处理器, 其包含 : 用以响应于控制值选择性地交换第一坐标数据与第二坐标数据的装置 ; 用以对所述第一坐标数据求反以产生第一经求反的坐标数据及对所述第二坐标数据 求反以产生第二经求反的坐标数据的装置 ; 以及 用以响应于所述控制值选择性地输出所述第一坐标数据或所述第一经求反的坐标数 据及选择性地输出所述第二坐标数据或所述第二经求反的坐标数据的装置, 其中所述控制值指示由所述第一坐标数据及所述第二坐标数据表示的向量的旋转度。
19: 根据权利要求 18 所述的处理器, 其中所述用以选择性地切换的装置包括纵横制装 置。
20: 根据权利要求 18 所述的处理器, 其中所述用以求反的装置包括向量加法器或向量 乘法器。
21: 根据权利要求 20 所述的处理器, 其进一步包含饱和逻辑电路, 所述饱和逻辑电路 用以校正所述向量加法器处的负溢出状况。
22: 根据权利要求 18 所述的处理器, 其中所述用以选择性地输出的装置包括多路复用 器。
23: 根据权利要求 19 所述的处理器, 其进一步包含调制解调器, 所述调制解调器经耦 合以接收所述第一坐标数据或所述第一经求反的坐标数据且接收所述第二坐标数据或所 述第二经求反的坐标数据。
24: 一种系统, 其包含 : 收发器, 其经配置以耦合到天线 ; 以及 调制解调器, 其经耦合以从所述收发器接收无线信号数据, 所述无线信号数据包括符 号数据, 其中所述调制解调器包括 : 纵横制装置, 其经配置以响应于控制值选择性地交换第一坐标数据与第二坐标数据 ; 向量加法器装置, 其经配置以对所述纵横制装置的输出求反 ; 以及 多路复用器, 其经耦合以响应于所述控制值选择性地输出所述向量加法器装置的输出 或所述纵横制装置的所述输出, 3 其中所述控制值指示由所述第一坐标数据及所述第二坐标数据表示的第一向量的旋 转度。
25: 根据权利要求 24 所述的系统, 其中所述调制解调器包括处理器, 所述处理器经配 置以通过执行单一处理器指令而在单一执行循环期间对所述第一向量及对第二向量执行 同时的旋转运算, 其中所述符号数据包括所述第一向量及所述第二向量。

说明书


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

    【技术领域】
     本发明大体上涉及执行快速旋转运算。背景技术 技术上的进步已产生更小且更强大的计算装置。举例来说, 当前存在各种各样的 便携型个人计算装置, 包括无线计算装置, 例如, 小巧、 轻便且易于由用户携带的便携型无 线电话、 个人数字助理 (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)), 且可由向量的另一端的坐标描述 ( 例如, 在从正 x 轴四十五度角度处的向量的坐标 (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 包括描绘为名称 FastRotate( 快速旋转 ) 的指令名
     260。旋转指令 206 还包括第一字段 (Rss)262 及第二字段 (Rt)264。旋转指令 206 将值 ( 例 如, 从执行向量旋转运算产生的经旋转的向量 ) 返回到地址 (Rdd)266。
     在特定实施例中, 第一字段 Rss262 包括对应于寄存器堆 204 的第一寄存器 208 的 地址。第二字段 Rt262 包括对应于寄存器堆 204 的第二寄存器 222 的地址。返回地址 Rdd 266 对应于寄存器堆 204 的第三寄存器 240。
     在特定实施例中, 处理器 202 经配置以响应于接收到旋转指令 206 而存取第一数 据 210 及第一控制值 224(C1)。 第一数据 210( 例如, 第一向量 ) 可包括来自源寄存器 Rss208 的向量的第一坐标 (x1)212 及第二坐标 (y1)214。在旋转指令 206 的执行后, 处理器 202 即 刻将经旋转的数据 242 存储到存储器 ( 例如, 寄存器堆 204 的第三寄存器 240) 中。经旋转 的数据 242 对应于按由第一控制值 224 指示的第一量旋转的第一数据 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)226。第二控制值 226 指示旋转第二数据 216 的第二量。处理器 202 可将第二经旋转的 数据 248 返回到寄存器堆 204 的第三寄存器 240。第二经旋转的数据 248 包括对应于按由 第二控制值 226 指示的第二量旋转的第二数据 216 的经旋转的坐标数据, 例如, 坐标 C 250 及 D 252 的集合。
     在特定实施例中, 处理器 202 经配置以在旋转指令 206 的执行后即刻同时读取第 一数据 210 及第二数据 216。处理器 202 可进一步经配置以分别与第一数据 210 及第二数 据 216 同时读取第一控制值 224 及第二控制值 226 两者。处理器 202 可经配置以根据第一 控制值 224 对第一数据 210 执行第一旋转运算以产生经旋转的数据 242, 以及根据第二控制 值 226 对第二数据 216 执行第二旋转以产生第二经旋转的数据 248。可在具有由旋转指令 206 的返回地址 266 指示的地址的第三寄存器 240 处将经旋转的数据 242 及第二经旋转的 数据 248 同时写入到寄存器堆 204。
     可使用单一执行单元 702 或 272 在单一处理器执行循环中执行读取第一数据 210、 第二数据 216、 第一控制值 224 及第二控制值 226 以及产生并存储经旋转的数据 242 及第二 经旋转的数据 244。因此, 系统 200 使处理器 202 能够在处理器 202 的每一执行循环内执行 多个向量旋转。举例来说, 作为非限制性说明性实例, 第一数据 210 及第二数据 216 可对应 于与在调制解调器处从收发器接收的连续符号值相关联的向量 ( 例如, 与无线接收器的正 交解码循环有关 )。
     在特定实施例中, 可根据所说明的用于如下指示的伪码指令 vcrotate 的旋转逻 辑来执行旋转指令的执行 :
     Rdd = vcrotate(Rss, Rt)
     tmp = Rt[1:0] ;
     if(tmp == 0){
     Rdd.h[0] = Rss.h[0] ;Rdd.h[1] = Rss.h[1] ;
     }else if(tmp == 1){
     Rdd.h[0] = Rss.h[1] ;
     Rdd.h[1] = sat_16(-Rss.h[0]) ;
     }else if(tmp == 2){
     Rdd.h[0] = sat_16(-Rss.h[1]) ;
     Rdd.h[1] = Rss.h[0] ;
     }else{
     Rdd.h[0] = sat_16(-Rss.h[0]) ;
     Rdd.h[1] = 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 的第 n 个半字。举例来说, Rss 可包括 具有四个十六位半字的六十四位值, 所述六十四位值对应于分别在第一半字 Rss.h[0] 及 第二半字 Rss.h[1] 中的第一 x 及 y 数据, 及分别在第三半字 Rss.h[2] 及第四半字 Rss.h[3] 中的第二 x 及 y 数据。Rt 指代存储控制值的寄存器, 控制值包括在位 [1:0] 处的第一旋转 指示符及在位 [3:2] 处的第二旋转指示符。每一旋转指示符由表示四个值的集合中的一者 的两个位表示。 “零” 控制值表示零度旋转。 “一” 控制值表示负九十度或二百七十度旋转。 “二” 控制值表示九十度旋转。 “三” 控制值表示一百八十度旋转。函数 sat_16 校正从对零 值求反产生的饱和状况, 且 Rdd 表示含有四个十六位半字的目的地寄存器。
     参看图 3, 其描绘用以执行坐标旋转的系统的第一说明性实施例且将其大体表示 为 300。系统 300 包括用以响应于控制值 C1 324 选择性地交换第一坐标数据 X1 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 324 可表示待对向量应用的旋转度。在特定实施例中, 控制值 C1 指示 90 度旋转的倍数。举 例来说, C1 可为可经设定为指示 0 度旋转的第一值、 指示 90 度旋转的第二值、 表示 180 度旋 转的第三值及表示 270 度旋转的第四值的二位数据项。应认识到, 归因于旋转的对称性, 大 于 270 度的 90 度的倍数及小于 0 度的 90 度的倍数等效于本文中描述的倍数中的一者。
     在特定实施例中, 交换电路 302 经配置以接收第一坐标数据 320 及第二坐标数据 322, 以及控制值 324, 且输出第一经交换的输出 326 及第二经交换的输出 328。第一经交 换的输出 326 可响应于控制值 324 而对应于第一坐标数据 320 或第二坐标数据 322。类似 地, 第二经交换的输出 328 可取决于控制值 324 而对应于第一坐标数据 320 或第二坐标数 据 322。分别将第一经交换的坐标数据输出 326 及第二经交换的坐标数据输出 328 作为输 入 340 及 342 提供到选择电路 308。还分别将第一交换坐标数据输出 326 及第二交换坐标 数据输出 328 作为输入 330 及 332 提供到求反电路 304。 在特定实施例中, 求反电路 304 经配置以在第一输入 330 处接收第一经交换的数 据 326 且将第一经交换的数据 326 的求反的值提供到选择电路 308 的第一经求反的输入 344。求反电路 304 进一步经配置以在第二输入 332 处接收第二经交换的数据 328 且将第 二经交换的数据 328 的求反的值提供到选择电路 308 的第二经求反的输入 346。在特定实 施例中, 饱和逻辑电路 306 经配置以校正因求反电路 304 的运算引起的溢出状况。举例来 说, 在某些二进制数表示中, 当对 “0” 值求反时, 可能会将所得负 “0” 值翻译成不正确的结 果。因此, 饱和逻辑电路 306 经配置以检测并校正这些负饱和状况。
     在特定实施例中, 选择电路 308 经配置以在控制输入 348 处接收控制值 C1, 且在第 一坐标输出 Xout 350 及第二坐标输出 Yout352 处选择性地输出对应于按由控制值 C1 指示的 量旋转的第一坐标数据 320 及第二坐标数据 322 的值。因此, 选择电路 308 可在第一交换 坐标输入 340 处接收第一经交换的输出 326 及在第一经求反的输入 344 处接收第一经交换 的输出 326 的经求反的值。选择电路 308 可选择性地将在第一交换坐标输入 340 及第一经 求反的输入 344 中的一者处接收的值提供到第一坐标输出 Xout 350。此外, 选择电路 308 可 接收第二交换坐标输入 342 及第二经求反的输入 346, 且可选择性地将在第二交换坐标输 入 342 及第二经求反的输入 346 中的一者处接收的值输出到第二坐标输出 Yout 352。
     应认识到, 第一坐标输出 Xout350 及第二坐标输出 Yout352 表示在由第一坐标数据 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 可包括对应于第一坐标 x1422 及第二坐标 y1424 的第一数据。 第一寄存器堆 404 还可 包括对应于第三坐标 x2426 及第四坐标 y2428 的第二数据。第二寄存器 406 可存储第一控 制值 C1430 及第二控制值 C2432。在特定实施例中, 第一寄存器 404 中的坐标数据 422-428 以及第二寄存器 406 中的控制值 430 及 432 对应于与无线发射或在调制解调器、 处理器或 其任何组合处接收的数据相关联的符号数据。 纵横开关 408 经配置以将在第一输入 434 处接收的数据选择性地提供到多路复用 器 412 的第一输入 446 及第二输入 448 中的一者。纵横开关 408 进一步经配置以将在第二 输入 436 处接收的数据选择性地提供到多路复用器 412 的第一输入 446 及第二输入 448 中 的另一者。类似地, 纵横开关 408 经配置以将在第三输入 438 处接收的数据选择性地提供 到多路复用器 412 的第三输入 450 及第四输入 452 中的一者。纵横开关 408 还经配置以将 在第四输入 440 处接收的数据提供到多路复用器 412 的第三输入 450 及第四输入 452 中的 另一者。在特定实施例中, 纵横开关 408 选择性地确定是否交换对应于第一坐标数据 x1422 及第二坐标数据 y1424 的在第一输入 434 及第二输入 436 处接收的数据值。纵横开关 408 基于在第一控制输入 442 处接收的第一控制值 C1430 选择性地交换 x1 与 y1。纵横开关 408 进一步经配置以基于在第二控制输入 444 处接收的第二控制值 C2432 的值选择性地交换在 第三输入 438 处的数据值与在第四输入 440 处接收的数据值。在特定实施例中, 纵横开关 408 以大体上类似于图 3 中描绘的交换电路 302 的方式操作。
     在特定实施例中, 向量加法器 410 在第一输入 454 及第二输入 456 处接收对应于 提供到多路复用器 412 的第一输入 446 及到第二输入 448 的数据的数据。 此外, 向量加法器 410 在第三输入 458 及第四输入 460 处接收对应于分别在多路复用器 412 的第三输入 450 及第四输入 452 处接收的数据的数据。向量加法器 410 经配置以对在输入 454、 456、 458 及 460 中的每一者处接收的数据求反。 经由第一经求反的输入 462、 第二经求反的输入 464、 第 三经求反的输入 466 及第四经求反的输入 468 将经求反的数据提供到多路复用器 412。
     多路复用器 412 经耦合以分别在第一输入 446 及第二输入 448 处接收由纵横开关 408 提供的数据 x1s、 y1s, 且分别在第三输入 450 及第四输入 452 处接收数据 x2s 及 y2s。多路 复用器 412 经进一步耦合以分别在第一经求反的输入 462 及第二经求反的输入 464 处接收 来自向量加法器 410 的经求反的数据 -x1s 及 -y1s, 且分别在第三经求反的输入 466 处及在
     第四经求反的输入 468 处接收来自向量加法器 410 的经求反的数据 -x2s 及 -y2s。多路复用 器 412 在第一控制输入 470 处接收第一控制值 C1430 且在第二控制输入 472 处接收第二控 制值 C2432。
     多路复用器 412 经配置以基于第一控制输入 470 选择性地提供来自第一输入 446 或第一经求反的输入 462 的第一输出 474 及来自第二输入 448 或第二经求反的输入 464 的 第二输出 476。第一输出 474 与第二输出 476 经耦合以将第一经旋转的坐标 X1out490 及第 二经旋转的坐标 Y1out 492 分别提供到输出寄存器 414。 举例来说, 在控制值 C1430 指示零度 旋转 ( 其不需要经求反的值 ) 的情况下, 多路复用器 412 选择未经求反的输入 446 及 448 以分别提供到第一输出 474 及第二输出 476。在控制值 C1430 指示一百八十度旋转 ( 需要 两个坐标的求反 ) 的情况下, 多路复用器 412 选择来自向量加法器 410 的经求反的输入 462 及 464。 在控制值指示九十度旋转或二百七十度旋转的情况下, 多路复用器可选择一个未经 求反的输入 446 或 448 及一个经求反的输入 462 或 464。
     多路复用器 412 还经配置以基于第二控制输入 472 将第三坐标输入 450 及第三经 求反的输入 466 中的一者选择性地提供到第三输出 478。多路复用器 412 进一步经配置以 基于第二控制输入 472 将第四坐标输入 452 或第四经求反的输入 468 选择到第四输出 480。 第三输出 478 及第四输出 480 经耦合到输出寄存器 414 以分别提供第二向量经旋转的输出 数据 X2out 494 及 Y2out496。 在特定实施例中, 系统 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 的坐标的第一向量及具有对应于 第二数据 426 及 428 的坐标的第二向量所指示。
     参看图 5, 其描绘用以执行坐标旋转的系统的第二说明性实施例且将其大体表示 为 500。系统 500 包括用以响应于控制值 C1524 选择性地交换第一坐标数据 X1520 与第二 坐标数据 Y1522 的装置, 其被说明为交换电路 502。系统 500 进一步包括用以对第一坐标数 据 520 求反以产生第一经求反的坐标数据及对第二坐标数据 522 求反以产生第二经求反的 坐标数据的装置, 其在图 5 中被说明为向量乘法器 504。 系统 500 还包括用以响应于控制值 C1548 选择性地输出第一坐标数据或第一经求反的坐标数据及选择性地输出第二坐标数据 或第二经求反的坐标数据的装置, 其被描绘为选择电路 508。 系统 500 大体对应于图 3 的系
     统 300 且根据图 3 的系统 300 使用向量乘法器 504 代替求反电路 304 进行操作。
     在特定实施例中, 系统 500 经配置以接收第一坐标数据 520 及第二坐标数据 522, 且执行由第一坐标数据 520 及第二坐标数据 522 表示的向量的旋转。 举例来说, 第一坐标数 据 520 可表示向量的 X 坐标, 且第二坐标数据 522 可表示所述向量的 Y 坐标。控制值 C1524 可表示待对向量应用的旋转度。
     在特定实施例中, 交换电路 502 经配置以接收第一坐标数据 520 及第二坐标数据 522 以及控制值 524, 且输出第一经交换的输出 526 及第二经交换的输出 528。分别将第一 经交换的坐标数据输出 526 及第二经交换的坐标数据输出 528 作为输入 540 及 542 提供到 选择电路 508。还分别将第一交换坐标数据输出 526 及第二交换坐标数据输出 528 作为输 入 530 及 532 提供到向量乘法器 504。
     在特定实施例中, 向量乘法器 504 经配置以在第一输入 530 处接收第一经交换的 数据 526 且将第一经交换的数据 526 的经求反的值提供到选择电路 508 的第一经求反的输 入 544。向量乘法器 504 进一步经配置以在第二输入 532 处接收第二经交换的数据 528 且 将第二经交换的数据 528 的经求反的值提供到选择电路 508 的第二经求反的输入 546。在 特定实施例中, 向量乘法器 504 包括选择性地将在第一输入 530、 第二输入 532 或两者处接 收的数据乘以负一的控制逻辑。
     在特定实施例中, 选择电路 508 经配置以在控制输入 548 处接收控制值 C1, 且在第 一坐标输出 Xout550 及第二坐标输出 Yout552 处选择性地输出对应于按由控制值 C1 指示的量 旋转的第一坐标数据 520 及第二坐标数据 522 的值。因此, 选择电路 508 可在第一交换坐 标输入 540 处接收第一经交换的输出 526 及在第一经求反的输入 544 处接收第一经交换的 输出 526 的经求反的值。选择电路 508 可选择性地将在第一交换坐标输入 540 及第一经求 反的输入 544 中的一者处接收的值提供到第一坐标输出 Xout550。此外, 选择电路 508 可接 收第二交换坐标输入 542 及第二经求反的输入 546, 且可选择性地将在第二交换坐标输入 542 及第二经求反的输入 546 中的一者处接收的值输出到第二坐标输出 Yout 552。
     参看图 6, 其描绘向量坐标旋转系统的第一说明性实施例的数据流且将其大体表 示为 600。交换电路 602 经耦合以接收输入向量 (x1, y1)601 且将输出提供到求反电路 604。 交换电路 602 可响应于控制值 C1624 选择性地交换输入向量 601 的坐标以产生输出向量 (x1, y1) 或 (y1, x1)。
     求反电路 604 响应于控制值 C1624 选择性地对从交换电路 602 接收的数据求反且 产生输出向量 (xout, yout)610。举例来说, 求反电路 604 可接收第一向量坐标及第二向量坐 标, 且可基于控制值 C1624 选择性地对仅第一坐标、 仅第二坐标、 两个坐标求反或不对任一 坐标求反。输出向量 610 对应于在围绕坐标原点旋转由控制值 C1624 指示的九十度的倍数 后的输入向量 601。因为求反电路 604 响应于控制值 C1624 选择性地对所接收的数据求反, 所以系统 600 操作以在无输出选择电路 ( 例如, 图 3 的选择电路 308) 的情况下执行向量坐 标旋转运算。
     在特定实施例中, 系统 600 表示经编程以实施快速向量旋转算法的处理器, 所述 快速向量旋转算法包括当旋转量为九十度或二百七十度时选择性地交换第一坐标与第二 坐标、 接着为当旋转量为九十度时选择性地对第一坐标求反、 当旋转量为二百七十度时选 择性地对第二坐标求反及当旋转量为一百八十度时选择性地对两个坐标求反。 可使用纵横制装置、 多路复用器装置、 经配置以选择性地交换两个或两个以上输入值的另一装置、 在处 理器执行单元处执行的交换运算、 固件、 硬件或其任何组合来实施交换电路 602。可使用向 量加法器、 向量乘法器、 经配置以选择性地对两个或两个以上输入值求反的另一装置、 在处 理器执行单元处执行的求反运算、 固件、 硬件或其任何组合来实施求反电路 604。
     参看图 7, 其描绘向量坐标旋转系统的第二说明性实施例的数据流且将其大体表 示为 700。求反电路 704 经耦合以接收输入向量 (x1, y1)701 且将输出提供到交换电路 702。 求反电路 704 可响应于控制值 C1724 选择性地对输入向量 701 的坐标求反以产生输出向量 (x1, y1)、 (x1, -y1)、 (-x1, y1) 或 (-x1, -y1)。
     交换电路 702 响应于控制值 C1724 选择性地交换从求反电路 704 接收的数据且产 生输出向量 (xout, yout)710。输出向量 710 对应于在围绕坐标原点旋转由控制值 C1724 指示 的九十度的倍数后的输入向量 701。
     在特定实施例中, 系统 700 表示经编程以实施快速向量旋转算法的处理器, 所述 快速向量旋转算法包括接收第一及第二坐标、 当旋转量为九十度时选择性地对第二坐标求 反、 当旋转量为一百八十度时选择性地对第一及第二坐标求反、 当旋转量为二百七十度时 选择性地对第一坐标求反及接着当旋转量为九十度或二百七十度时选择性地交换两个坐 标。 可使用纵横制装置、 多路复用器装置、 经配置以选择性地交换两个或两个以上输入值的 另一装置、 在处理器执行单元处执行的交换运算、 固件、 硬件或其任何组合来实施交换电路 702。可使用向量加法器、 向量乘法器、 经配置以选择性地对两个或两个以上输入值求反的 另一装置、 在处理器执行单元处执行的求反运算、 固件、 硬件或其任何组合来实施求反电路 704。
     参看图 8, 其描绘用以执行快速旋转运算的方法的第一说明性实施例且将其大体 表示为 800。方法 800 包括在处理器处执行单一指令。在特定实施例中, 可在图 1 到图 7 中 描绘的系统中的一者或一者以上处执行所述方法。
     执行单一指令包括在 802 处接收指示第一坐标及第二坐标的第一数据。在特定 实施例中, 第一坐标及第二坐标识别向量的 X 及 Y 分量。移到 804, 接收指示选自九十度倍 数集合的第一旋转值的第一控制值。在特定实施例中, 九十度倍数集合包括零度、 九十度、 一百八十度及二百七十度。
     继续到 806, 在特定实施例中, 执行单一指令进一步包括当第一旋转值对应于九十 度或二百七十度时交换第一坐标与第二坐标。前进到 808, 当第一旋转值对应于九十度、 一百八十度或二百七十度时, 对第一坐标及第二坐标中的至少一者求反。
     继续前进到 810, 在特定实施例中, 应用饱和逻辑以防止对第一坐标或第二坐标求 反时的溢出状况。移到 812, 将输出数据写入到数据存储元件。举例来说, 数据存储元件可 包括一个或一个以上锁存器、 正反器装置、 寄存器、 高速缓冲存储器、 存储器或用以存储数 据的任一其它装置或系统。输出数据对应于按第一旋转值旋转的第一数据。举例来说, 第 一数据可识别从坐标原点延伸到第一及第二坐标处的端点的向量, 且输出数据可识别按由 第一旋转值指示的量围绕坐标原点的旋转后的向量的端点。在特定实施例中, 在不执行乘 法运算或表查找的情况下确定输出数据, 从而实现比通过使用乘法运算或表查找所达到功 率低及速度高的运算。
     可在处理器的单一执行循环中执行单一旋转指令。举例来说, 可在包括实施图 4的系统 400 的执行单元的处理器处执行单一旋转指令以在单一执行循环中执行向量旋转 运算。
     在特定实施例中, 第一控制值可对应于接收的无线信号的符号值。 举例来说, 无线 信号的每一符号值可表示相对于累积的相位的角偏移, 且第一控制值可指示需要用来基于 累积的相位调整向量以确定与符号相关联的角偏移的旋转度。在特定实施例中, 可结合无 线接收器的正交解码循环来执行单一旋转指令。举例来说, 在所接收的无线数据具有同相 分量 (I) 及与所述同相分量异相九十度的正交分量 (Q) 的情况下, 可按九十度的倍数旋转 正交分量以用于通过同相分量来解码。
     在特定实施例中, 单一指令为微指令。 举例来说, 在适于将接收的指令翻译成一个 或一个以上可执行微指令的微码处理器中, 单一指令可为微指令, 即, 直接可执行且不可翻 译成多个其它可执行指令的指令。在另一实施例中, 可在非微码处理器处执行单一指令, 即, 在不首先将指令翻译成多个可执行微指令的情况下执行所接收的指令的处理器处执 行。 在实施例中, 可在不支持微码的管线处执行单一指令, 其中管线作为单一管线运算确定 向量旋转输出, 而不执行对应于微指令的一序列子运算。
     参看图 9, 其描绘用以执行快速旋转运算的方法的第二说明性实施例且将其大体 表示为 900。可在图 1 到图 7 中描绘的系统中的一者或一者以上处或根据图 8 中描绘的方 法 800 或其任何组合来执行方法 900。 方法 900 包括执行单一指令, 其包括在 902 处接收指示第一坐标及第二坐标的第 一数据。 移到 904, 接收指示选自九十度倍数集合的第一旋转值的第一控制值。 在特定实施 例中, 九十度倍数集合包括零度、 九十度、 一百八十度及二百七十度。
     在特定实施例中, 执行单一指令还包括在 906 处接收指示第三坐标及第四坐标的 第二数据。在 908 处, 可接收指示选自九十度倍数集合的第二旋转值的第二控制值。可与 确定对应于按第二旋转值旋转的第二数据的第二输出数据同时确定对应于按第一旋转值 旋转的第一数据的输出数据。在 912 处, 可将输出数据及第二输出数据写入到数据存储元 件。
     在特定实施例中, 在将输出数据或第二输出数据中的任一者写入到寄存器堆前, 可在处理器的单一执行单元处确定输出数据及第二输出数据。举例来说, 如关于图 2 的系 统 200 描述, 可与确定输出数据同时确定第二输出数据。在说明性实施例中, 处理器的执行 单元包括图 4 的系统 400, 且纵横开关 408、 向量加法器 410 及多路复用器 412 可并行地对 第一输入数据及第二输入数据进行运算, 且可大体上同时将输出数据及第二输出数据写入 到输出寄存器 414。
     所属领域的技术人员将进一步了解, 结合本文所揭示的实施例所描述的各种说明 性逻辑块、 配置、 模块、 电路及算法步骤可实施为电子硬件、 计算机软件或两者的组合。 为了 清晰地说明硬件与软件的此可互换性, 各种说明性组件、 块、 配置、 模块、 电路及步骤已在上 文大体按其功能性加以了描述。 将此功能性实施为硬件还是软件视特定应用及强加于整个 系统上的设计约束而定。 所属领域的技术人员可以变化的方式针对每一特定应用实施所描 述的功能性, 但是这些实施决策不应被解释为会导致脱离本发明的范围。
     结合本文中所揭示的实施例所描述的方法或算法的步骤可直接体现于硬件中、 由 处理器执行的软件模块中或两者的组合中。 软件模块可驻留于随机存取存储器 (RAM)、 快闪
     存储器、 只读存储器 (ROM)、 可编程只读存储器 (PROM)、 可擦除可编程只读存储器 (EPROM)、 电可擦除可编程只读存储器 (EEPROM)、 寄存器、 硬盘、 可装卸盘、 压缩光盘只读存储器 (CD-ROM) 或此项技术中已知的任何其它形式的存储媒体中。 将示范性存储媒体耦合到处理 器, 使得处理器可从存储媒体读取信息及将信息写入到存储媒体。 在替代方案中, 存储媒体 可与处理器成一体式。处理器及存储媒体可驻留于专用集成电路 (ASIC) 中。ASIC 可驻留 于计算装置或用户终端中。在替代方案中, 处理器及存储媒体可作为离散组件驻留于计算 装置或用户终端中。
     提供对所揭示的实施例的先前描述, 以使所属领域的技术人员能够制作或使用所 揭示的实施例。 对于所属领域的技术人员来说, 对这些实施例的各种修改将易于显而易见, 且在不脱离本发明的范围的情况下, 本文中界定的一般原理可应用于其它实施例。 因此, 本 发明并不希望限于本文中所展示的实施例, 而应符合与如所附权利要求书界定的原理及新 颖特征相一致的最广泛的可能范围。

用以执行快速旋转运算的系统及方法.pdf_第1页
第1页 / 共24页
用以执行快速旋转运算的系统及方法.pdf_第2页
第2页 / 共24页
用以执行快速旋转运算的系统及方法.pdf_第3页
第3页 / 共24页
点击查看更多>>
资源描述

《用以执行快速旋转运算的系统及方法.pdf》由会员分享,可在线阅读,更多相关《用以执行快速旋转运算的系统及方法.pdf(24页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102067082A43申请公布日20110518CN102067082ACN102067082A21申请号200980123391322申请日2009061712/146,82520080626USG06F9/30200601G06F9/315200601G06F7/54820060171申请人高通股份有限公司地址美国加利福尼亚州72发明人尚卡尔克里提瓦桑埃里克詹姆斯普隆德克卢奇安科德雷斯库曾贸雷米乔纳森古尔斯基74专利代理机构北京律盟知识产权代理有限责任公司11287代理人宋献涛54发明名称用以执行快速旋转运算的系统及方法57摘要本发明揭示用以执行快速旋转运算的系统及方法。

2、。在特定实施例中,一种方法包括执行单一指令。所述方法包括接收指示第一坐标及第二坐标的第一数据、接收指示选自九十度倍数集合的第一旋转值的第一控制值,及写入对应于按所述第一旋转值旋转的所述第一数据的输出数据。30优先权数据85PCT申请进入国家阶段日2010122086PCT申请的申请数据PCT/US2009/0476712009061787PCT申请的公布数据WO2009/158254EN2009123051INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书12页附图8页CN102067092A1/3页21一种方法,其包含在处理器处执行单一指令,其中执行所述单一指令包。

3、括接收指示第一坐标及第二坐标的第一数据;接收指示选自九十度倍数集合的第一旋转值的第一控制值;以及将输出数据写入到数据存储元件,所述输出数据对应于按所述第一旋转值旋转的所述第一数据。2根据权利要求1所述的方法,其中执行所述单一指令进一步包含在不执行乘法运算或表查找的情况下确定所述输出数据。3根据权利要求1所述的方法,其中在处理器的单一执行循环期间执行所述单一指令。4根据权利要求1所述的方法,其中所述九十度倍数集合包括零度、九十度、一百八十度及二百七十度,且其中执行所述单一指令进一步包含当所述第一旋转值对应于九十度或二百七十度时交换所述第一坐标与所述第二坐标;以及当所述第一旋转值对应于九十度、一百。

4、八十度或二百七十度时,对所述第一坐标及所述第二坐标中的至少一者求反。5根据权利要求4所述的方法,其中执行所述单一指令包括在对所述第一坐标或所述第二坐标求反之前交换所述第一坐标与所述第二坐标。6根据权利要求4所述的方法,其中执行所述单一指令包括在交换所述第一坐标与所述第二坐标之前对所述第一坐标或所述第二坐标求反。7根据权利要求4所述的方法,其中执行所述单一指令进一步包含应用饱和逻辑以防止对所述第一坐标及所述第二坐标中的至少一者求反时的溢出状况。8根据权利要求1所述的方法,其中所述第一控制值对应于所接收的无线信号的符号值。9根据权利要求8所述的方法,其中执行所述单一指令是结合无线接收器的正交解码循。

5、环执行。10根据权利要求1所述的方法,其中执行所述单一指令进一步包含接收指示第三坐标及第四坐标的第二数据;接收指示选自所述九十度倍数集合的第二旋转值的第二控制值;以及写入对应于按所述第二旋转值旋转的所述第二数据的第二输出数据。11根据权利要求10所述的方法,其进一步包含与确定所述输出数据同时确定所述第二输出数据。12根据权利要求11所述的方法,其中在将所述输出数据写入到所述数据存储元件之前在处理器的单一执行单元处确定所述输出数据及所述第二输出数据,所述数据存储元件在寄存器堆内。13根据权利要求1所述的方法,其中所述单一指令是在不支持微码的管线中执行。14一种处理器指令,其可由处理器执行以在单一。

6、执行循环中执行向量旋转,所述处理器指令包含指令名;权利要求书CN102067082ACN102067092A2/3页3第一字段,其中所述第一字段包括第一数据,所述第一数据包括第一坐标及第二坐标;以及第二字段,其中所述第二字段包括指示用以旋转所述第一数据的第一量的第一控制值,其中在所述处理器指令的执行后所述处理器即刻将经旋转的数据存储到存储器中,所述经旋转的数据对应于按由所述第一控制值指示的所述第一量旋转的所述第一数据。15根据权利要求14所述的处理器指令,其中所述第一字段进一步包括第二数据,所述第二数据包括第三坐标及第四坐标。16根据权利要求15所述的处理器指令,其中所述第二字段进一步包括指示。

7、用以旋转所述第二数据的第二量的第二控制值。17根据权利要求16所述的处理器指令,其中所述处理器指令进一步返回对应于按由所述第二控制值指示的所述第二量旋转的所述第二数据的第二经旋转的数据。18一种处理器,其包含用以响应于控制值选择性地交换第一坐标数据与第二坐标数据的装置;用以对所述第一坐标数据求反以产生第一经求反的坐标数据及对所述第二坐标数据求反以产生第二经求反的坐标数据的装置;以及用以响应于所述控制值选择性地输出所述第一坐标数据或所述第一经求反的坐标数据及选择性地输出所述第二坐标数据或所述第二经求反的坐标数据的装置,其中所述控制值指示由所述第一坐标数据及所述第二坐标数据表示的向量的旋转度。19。

8、根据权利要求18所述的处理器,其中所述用以选择性地切换的装置包括纵横制装置。20根据权利要求18所述的处理器,其中所述用以求反的装置包括向量加法器或向量乘法器。21根据权利要求20所述的处理器,其进一步包含饱和逻辑电路,所述饱和逻辑电路用以校正所述向量加法器处的负溢出状况。22根据权利要求18所述的处理器,其中所述用以选择性地输出的装置包括多路复用器。23根据权利要求19所述的处理器,其进一步包含调制解调器,所述调制解调器经耦合以接收所述第一坐标数据或所述第一经求反的坐标数据且接收所述第二坐标数据或所述第二经求反的坐标数据。24一种系统,其包含收发器,其经配置以耦合到天线;以及调制解调器,其经。

9、耦合以从所述收发器接收无线信号数据,所述无线信号数据包括符号数据,其中所述调制解调器包括纵横制装置,其经配置以响应于控制值选择性地交换第一坐标数据与第二坐标数据;向量加法器装置,其经配置以对所述纵横制装置的输出求反;以及多路复用器,其经耦合以响应于所述控制值选择性地输出所述向量加法器装置的输出或所述纵横制装置的所述输出,权利要求书CN102067082ACN102067092A3/3页4其中所述控制值指示由所述第一坐标数据及所述第二坐标数据表示的第一向量的旋转度。25根据权利要求24所述的系统,其中所述调制解调器包括处理器,所述处理器经配置以通过执行单一处理器指令而在单一执行循环期间对所述第一。

10、向量及对第二向量执行同时的旋转运算,其中所述符号数据包括所述第一向量及所述第二向量。权利要求书CN102067082ACN102067092A1/12页5用以执行快速旋转运算的系统及方法技术领域0001本发明大体上涉及执行快速旋转运算。背景技术0002技术上的进步已产生更小且更强大的计算装置。举例来说,当前存在各种各样的便携型个人计算装置,包括无线计算装置,例如,小巧、轻便且易于由用户携带的便携型无线电话、个人数字助理PDA及寻呼装置。更具体地说,例如蜂窝式电话及IP电话的便携型无线电话可经由无线网络传达语音及数据包。0003接收经由无线链路传达的数据包括数据解码功能。数据解码功能可涉及使用乘。

11、法运算的一个或一个以上向量旋转运算。举例来说,可将无线数据编码为包括具有复值的向量例如,同相分量及正交分量之间的角位移的一系列符号。从这些符号中检索数据可能需要旋转向量例如以补偿在解码期间累积的相位。这些向量运算可能会消耗有限的处理资源,尤其在便携型装置处。发明内容0004揭示执行快速向量旋转运算的系统及方法。可按经由一个或一个以上控制值指定的旋转度或角位移围绕坐标原点旋转由端点坐标数据识别的向量。所揭示的实施例可结合编码或解码无线数据例如,在调制解调器装置或处理器处或结合其它应用而操作。0005在特定实施例中,揭示一种包括在处理器处执行单一向量旋转指令的方法。单一向量旋转指令包括接收指示第一。

12、坐标及第二坐标的第一数据、接收指示选自九十度倍数集合的第一旋转值的第一控制值及将输出数据写入到数据存储元件,其中所述输出数据对应于按所述第一旋转值旋转的所述第一数据。0006在另一特定实施例中,揭示一种处理器,其包括用以响应于控制值选择性地交换第一坐标数据与第二坐标数据的装置。所述处理器还包括用以对所述第一坐标数据求反以产生第一经求反的坐标数据及对所述第二坐标数据求反以产生第二经求反的坐标数据的装置。所述处理器进一步包括用以响应于所述控制值选择性地输出所述第一坐标数据或所述第一经求反的坐标数据及选择性地输出所述第二坐标数据或所述第二经求反的坐标数据的装置。所述控制值指示由所述第一坐标数据及所述。

13、第二坐标数据表示的向量的旋转度。0007在特定实施例中,揭示一种系统,其包括调制解调器,所述调制解调器适于执行快速向量旋转运算。所述系统包括收发器,所述收发器经配置以耦合到天线。所述调制解调器经耦合以从所述收发器接收无线信号数据。所述无线信号数据包括可对应于坐标位置例如,向量端点的位置的符号数据。调制解调器包括纵横制装置,所述纵横制装置经配置以响应于控制值选择性地交换与所述符号数据相关联的第一坐标数据与第二坐标数据。所述调制解调器还包括向量加法器装置,所述向量加法器装置经配置以对所述纵横制装置的输出求反。所述调制解调器进一步包括多路复用器,所述多路复用器经耦合以响应于所述控说明书CN10206。

14、7082ACN102067092A2/12页6制值选择性地输出所述向量加法器装置的输出或所述纵横制装置的输出。所述控制值指示由所述第一坐标数据及所述第二坐标数据表示的第一向量的旋转度。0008在另一特定实施例中,揭示一种可由处理器执行以在单一执行循环中执行向量旋转的处理器指令。所述处理器指令包括指令名及包括第一坐标及第二坐标的第一字段。所述处理器指令还包括第二字段,所述第二字段包括指示旋转所述第一及第二坐标数据的第一量的第一控制值。在所述处理器指令的执行后,所述处理器即刻将经旋转的数据存储到存储器中。所述经旋转的数据对应于按由所述第一控制值指示的所述第一量旋转的所述第一及第二坐标数据。0009。

15、由所揭示的实施例提供的一个特定优势为由快速向量旋转运算实现的无线数据的较高速解码。在审阅整个申请案之后,本发明的其它方面、优势及特征将变得显而易见,整个申请案包括以下部分“附图说明”、“具体实施方式”及“权利要求书”。附图说明0010图1为经配置以执行快速向量旋转运算的便携型通信装置的特定说明性实施例的框图;0011图2为用以执行快速向量旋转指令的系统的特定说明性实施例的框图;0012图3为用以执行向量坐标旋转的系统的第一说明性实施例的框图;0013图4为用以产生快速向量旋转运算的系统的特定说明性实施例的框图;0014图5为用以执行向量坐标旋转的系统的第二说明性实施例的框图;0015图6为向量。

16、坐标旋转系统的第一说明性实施例的数据流程图;0016图7为向量坐标旋转系统的第二说明性实施例的数据流程图;0017图8为用以执行快速向量旋转运算的方法的第一说明性实施例的流程图;及0018图9为用以执行快速向量旋转运算的方法的第二说明性实施例的流程图。具体实施方式0019参看图1,其描绘经配置以执行快速向量旋转运算的电子装置的特定说明性实施例的框图且将其大体表示为100。装置100包括处理器例如,数字信号处理器DSP110,所述处理器耦合到存储器132且还耦合到经配置以执行快速向量旋转运算190的调制解调器140。0020图1还展示显示器控制器126,其耦合到数字信号处理器110及耦合到显示器。

17、128。编码器/解码器CODEC134还可耦合到数字信号处理器110。扬声器136及麦克风138可耦合到CODEC134。0021调制解调器140可耦合到收发器146。收发器146可经配置以耦合到无线天线142。收发器146可经配置以产生对应于当收发器146耦合到天线142时接收的无线信号的坐标数据例如,符号相位数据。调制解调器140经配置以将快速向量旋转运算190应用到从收发器146接收的坐标数据,作为用以从无线信号中检索经编码数据的解码过程的一部分。0022举例来说,符号相位数据可表达为具有在坐标原点处的一端的向量例如,在X,Y坐标系统中的坐标0,0,且可由向量的另一端的坐标描述例如,在从。

18、正X轴四十五说明书CN102067082ACN102067092A3/12页7度角度处的向量的坐标1,1。作为说明性实例,在坐标平面内按九十度的旋转度即,角位移执行1,1向量的向量旋转产生经旋转的向量1,1。按一百八十度执行1,1向量的向量旋转产生经旋转的向量1,1。按二百七十度执行1,1向量的向量旋转产生经旋转的向量1,1。0023在特定实施例中,DSP110、显示器控制器126、存储器132、CODEC134、调制解调器140及收发器146包括于系统级封装或芯片上系统装置122中。在特定实施例中,输入装置130及电源144耦合到芯片上系统装置122。此外,在特定实施例中,如图1中说明,显示。

19、器128、输入装置130、扬声器136、麦克风138、无线天线142及电源144在芯片上系统装置122外部。然而,显示器128、输入装置130、扬声器136、麦克风138、无线天线142及电源144中的每一者可耦合到芯片上系统装置122的组件例如,接口或控制器。0024在操作期间,可在天线142处接收包括经编码数据的无线信号,且可经由收发器146将对应坐标数据提供到调制解调器140。举例来说,坐标数据可表示向量的X及Y坐标。调制解调器140可使用快速向量旋转运算190实施坐标数据的旋转作为解码过程的一部分。快速向量旋转运算190可实现调制解调器140的每一处理循环的多个坐标旋转,从而实现数据的。

20、高速解码。此外,快速向量旋转运算190可使坐标旋转能够在不使用乘法或表查找的情况下执行,从而减少了解码过程的功率消耗。0025在特定实施例中,调制解调器140包括管线式处理器,所述管线式处理器经配置以执行执行快速向量旋转运算190以在单一处理器执行循环期间执行多个向量坐标旋转的指令。举例来说,调制解调器140可从收发器146接收包括符号数据的无线信号数据,符号数据包括由第一坐标识别的第一向量及由第二坐标识别的第二向量。调制解调器140可经配置以通过执行单一处理器指令而在单一执行循环期间执行对第一向量及对第二向量的同时旋转运算。0026举例来说,在说明性实施例中,调制解调器140包括管线式处理器。

21、,所述管线式处理器具有包括图4的系统400的执行单元,即,包括纵横制装置,其经配置以响应于控制值选择性地交换第一向量的第一坐标数据与第二坐标数据;向量加法器装置,其经配置以对所述纵横制装置的输出求反;及多路复用器,其经耦合以响应于所述控制值选择性地输出所述向量加法器装置的输出或所述纵横制装置的输出。控制值可指示由第一坐标数据及第二坐标数据表示的第一向量的所要旋转度例如,九十度的倍数。0027在特定实施例中,调制解调器140可不包括专用硬件组件及电路,且可替代地为在处理器110处执行的调制解调器应用例如,交错的多线程管线式处理器的处理线程,其中快速向量旋转运算190经执行以在处理器110的单一处。

22、理循环期间执行多个向量坐标旋转。在又一实施例中,快速向量旋转运算190可由专用硬件、固件、一个或一个以上其它处理器或其任何组合执行。0028参看图2,其描绘用以执行快速向量旋转运算指令的系统且将其大体表示为200。系统200包括处理器202,处理器202包括寄存器堆204。处理器202经配置以接收旋转指令206。在特定实施例中,系统200包括于图1的调制解调器140中,且旋转指令206对应于图1中描绘的快速向量旋转运算190的一部分。0029在特定实施例中,旋转指令206为可由处理器202执行以在单一执行循环中执行向量旋转的处理器指令。旋转指令206包括描绘为名称FASTROTATE快速旋转的。

23、指令名说明书CN102067082ACN102067092A4/12页8260。旋转指令206还包括第一字段RSS262及第二字段RT264。旋转指令206将值例如,从执行向量旋转运算产生的经旋转的向量返回到地址RDD266。0030在特定实施例中,第一字段RSS262包括对应于寄存器堆204的第一寄存器208的地址。第二字段RT262包括对应于寄存器堆204的第二寄存器222的地址。返回地址RDD266对应于寄存器堆204的第三寄存器240。0031在特定实施例中,处理器202经配置以响应于接收到旋转指令206而存取第一数据210及第一控制值224C1。第一数据210例如,第一向量可包括来自。

24、源寄存器RSS208的向量的第一坐标X1212及第二坐标Y1214。在旋转指令206的执行后,处理器202即刻将经旋转的数据242存储到存储器例如,寄存器堆204的第三寄存器240中。经旋转的数据242对应于按由第一控制值224指示的第一量旋转的第一数据210,且可将经旋转的数据242作为经旋转的坐标A244及B246的集合存储于目的地寄存器RDD240处。在特定实施例中,处理器202包括多个执行单元270及272,其各自可适于在处理器202的单一处理循环期间执行旋转指令206。0032在特定实施例中,处理器202进一步经配置以在旋转指令206的执行后即刻从第一寄存器208读取第二数据216例。

25、如,第二向量,第二数据216包括第三坐标X2218及第四坐标Y2220。处理器202可进一步经配置以从第二寄存器222读取第二控制值C2226。第二控制值226指示旋转第二数据216的第二量。处理器202可将第二经旋转的数据248返回到寄存器堆204的第三寄存器240。第二经旋转的数据248包括对应于按由第二控制值226指示的第二量旋转的第二数据216的经旋转的坐标数据,例如,坐标C250及D252的集合。0033在特定实施例中,处理器202经配置以在旋转指令206的执行后即刻同时读取第一数据210及第二数据216。处理器202可进一步经配置以分别与第一数据210及第二数据216同时读取第一控。

26、制值224及第二控制值226两者。处理器202可经配置以根据第一控制值224对第一数据210执行第一旋转运算以产生经旋转的数据242,以及根据第二控制值226对第二数据216执行第二旋转以产生第二经旋转的数据248。可在具有由旋转指令206的返回地址266指示的地址的第三寄存器240处将经旋转的数据242及第二经旋转的数据248同时写入到寄存器堆204。0034可使用单一执行单元702或272在单一处理器执行循环中执行读取第一数据210、第二数据216、第一控制值224及第二控制值226以及产生并存储经旋转的数据242及第二经旋转的数据244。因此,系统200使处理器202能够在处理器202的。

27、每一执行循环内执行多个向量旋转。举例来说,作为非限制性说明性实例,第一数据210及第二数据216可对应于与在调制解调器处从收发器接收的连续符号值相关联的向量例如,与无线接收器的正交解码循环有关。0035在特定实施例中,可根据所说明的用于如下指示的伪码指令VCROTATE的旋转逻辑来执行旋转指令的执行0036RDDVCROTATERSS,RT0037TMPRT10;0038IFTMP00039RDDH0RSSH0;说明书CN102067082ACN102067092A5/12页90040RDDH1RSSH1;0041ELSEIFTMP10042RDDH0RSSH1;0043RDDH1SAT_16。

28、RSSH0;0044ELSEIFTMP20045RDDH0SAT_16RSSH1;0046RDDH1RSSH0;0047ELSE0048RDDH0SAT_16RSSH0;0049RDDH1SAT_16RSSH1;0050;0051TMPRT32;0052IFTMP00053RDDH2RSSH2;0054RDDH3RSSH3;0055ELSEIFTMP10056RDDH2RSSH3;0057RDDH3SAT_16RSSH2;0058ELSEIFTMP20059RDDH2SAT_16RSSH3;0060RDDH3RSSH2;0061ELSE0062RDDH2SAT_16RSSH2;0063RDDH。

29、3SAT_16RSSH3;0064;0065在以上伪码中,RSSHN指代源寄存器RSS的第N个半字。举例来说,RSS可包括具有四个十六位半字的六十四位值,所述六十四位值对应于分别在第一半字RSSH0及第二半字RSSH1中的第一X及Y数据,及分别在第三半字RSSH2及第四半字RSSH3中的第二X及Y数据。RT指代存储控制值的寄存器,控制值包括在位10处的第一旋转指示符及在位32处的第二旋转指示符。每一旋转指示符由表示四个值的集合中的一者的两个位表示。“零”控制值表示零度旋转。“一”控制值表示负九十度或二百七十度旋转。“二”控制值表示九十度旋转。“三”控制值表示一百八十度旋转。函数SAT_16校正。

30、从对零值求反产生的饱和状况,且RDD表示含有四个十六位半字的目的地寄存器。0066参看图3,其描绘用以执行坐标旋转的系统的第一说明性实施例且将其大体表示为300。系统300包括用以响应于控制值C1324选择性地交换第一坐标数据X1320与第二坐标数据Y1322的装置,其经说明为交换电路302。系统300进一步包括用以对第一坐标数据320求反以产生第一经求反的坐标数据及对第二坐标数据322求反以产生第二经求反的坐标数据的装置,其在图3中经说明为求反电路304。系统300还包括用以响应于控制值C1348选择性地输出第一坐标数据或第一经求反的坐标数据及选择性地输出第二坐标说明书CN102067082。

31、ACN102067092A6/12页10数据或第二经求反的坐标数据的装置,其经描绘为选择电路308。饱和逻辑电路306耦合到求反电路304。0067在特定实施例中,系统300经配置以接收第一坐标数据320及第二坐标数据322,且执行由第一坐标数据320及第二坐标数据322表示的向量的旋转。举例来说,第一坐标数据320可表示向量的X坐标,且第二坐标数据322可表示所述向量的Y坐标。控制值C1324可表示待对向量应用的旋转度。在特定实施例中,控制值C1指示90度旋转的倍数。举例来说,C1可为可经设定为指示0度旋转的第一值、指示90度旋转的第二值、表示180度旋转的第三值及表示270度旋转的第四值的。

32、二位数据项。应认识到,归因于旋转的对称性,大于270度的90度的倍数及小于0度的90度的倍数等效于本文中描述的倍数中的一者。0068在特定实施例中,交换电路302经配置以接收第一坐标数据320及第二坐标数据322,以及控制值324,且输出第一经交换的输出326及第二经交换的输出328。第一经交换的输出326可响应于控制值324而对应于第一坐标数据320或第二坐标数据322。类似地,第二经交换的输出328可取决于控制值324而对应于第一坐标数据320或第二坐标数据322。分别将第一经交换的坐标数据输出326及第二经交换的坐标数据输出328作为输入340及342提供到选择电路308。还分别将第一交。

33、换坐标数据输出326及第二交换坐标数据输出328作为输入330及332提供到求反电路304。0069在特定实施例中,求反电路304经配置以在第一输入330处接收第一经交换的数据326且将第一经交换的数据326的求反的值提供到选择电路308的第一经求反的输入344。求反电路304进一步经配置以在第二输入332处接收第二经交换的数据328且将第二经交换的数据328的求反的值提供到选择电路308的第二经求反的输入346。在特定实施例中,饱和逻辑电路306经配置以校正因求反电路304的运算引起的溢出状况。举例来说,在某些二进制数表示中,当对“0”值求反时,可能会将所得负“0”值翻译成不正确的结果。因此。

34、,饱和逻辑电路306经配置以检测并校正这些负饱和状况。0070在特定实施例中,选择电路308经配置以在控制输入348处接收控制值C1,且在第一坐标输出XOUT350及第二坐标输出YOUT352处选择性地输出对应于按由控制值C1指示的量旋转的第一坐标数据320及第二坐标数据322的值。因此,选择电路308可在第一交换坐标输入340处接收第一经交换的输出326及在第一经求反的输入344处接收第一经交换的输出326的经求反的值。选择电路308可选择性地将在第一交换坐标输入340及第一经求反的输入344中的一者处接收的值提供到第一坐标输出XOUT350。此外,选择电路308可接收第二交换坐标输入342。

35、及第二经求反的输入346,且可选择性地将在第二交换坐标输入342及第二经求反的输入346中的一者处接收的值输出到第二坐标输出YOUT352。0071应认识到,第一坐标输出XOUT350及第二坐标输出YOUT352表示在由第一坐标数据320及第二坐标数据322指示的输入向量按由控制值C1表示的90度的倍数旋转后所述输入向量的旋转的结果。在不执行表查找的情况下且进一步在不执行乘法运算的情况下产生从选择电路308的输出。实情为,采用二维向量旋转所固有的对称性以使用交换、求反及选择电路产生90度的倍数的旋转。因此,系统300提供快速向量旋转的硬件实施方案,例如,可用于图1中描绘的调制解调器140中、图。

36、2中描绘的处理器202的执行单元270及272中的一者或一者以上中、其它调制解调器或处理器或其任何组合中。举例来说,系统300可包括于图形处理单元中。作为另一实例,系统300可包括于适于处理调制解调器应用及图说明书CN102067082ACN102067092A7/12页11形应用的管线式处理器的执行单元中。0072作为一实例,系统300可实施于多线程处理器的执行单元中。另外,可将系统300实施为管线式处理器的管线执行过程的一部分。举例来说,交换电路302可包括处理器的多路复用器、纵横制装置、其它开关装置或电路或其任何组合中的一者或一者以上。求反电路304可包括算术逻辑单元ALU、加法器、处理。

37、器的适于对输入值求反的其它电路或装置或其任何组合。选择电路308可包括处理器的多路复用器、开关或适于选择性地输出在一个或一个以上输入处接收的值的其它电路或装置或其任何组合中的一者或一者以上。0073参看图4,其描绘用以产生快速向量旋转运算的系统经描绘且将其大体表示为400。系统400包括耦合到纵横开关CROSSBAR408的寄存器堆402。纵横开关408经耦合以将输出提供到向量加法器410及到多路复用器412两者。向量加法器410将输出提供到多路复用器412。多路复用器412经耦合以将输出值提供到输出寄存器414。0074在特定实施例中,寄存器堆402包括第一寄存器404及第二寄存器406。第。

38、一寄存器404可包括对应于第一坐标X1422及第二坐标Y1424的第一数据。第一寄存器堆404还可包括对应于第三坐标X2426及第四坐标Y2428的第二数据。第二寄存器406可存储第一控制值C1430及第二控制值C2432。在特定实施例中,第一寄存器404中的坐标数据422428以及第二寄存器406中的控制值430及432对应于与无线发射或在调制解调器、处理器或其任何组合处接收的数据相关联的符号数据。0075纵横开关408经配置以将在第一输入434处接收的数据选择性地提供到多路复用器412的第一输入446及第二输入448中的一者。纵横开关408进一步经配置以将在第二输入436处接收的数据选择性。

39、地提供到多路复用器412的第一输入446及第二输入448中的另一者。类似地,纵横开关408经配置以将在第三输入438处接收的数据选择性地提供到多路复用器412的第三输入450及第四输入452中的一者。纵横开关408还经配置以将在第四输入440处接收的数据提供到多路复用器412的第三输入450及第四输入452中的另一者。在特定实施例中,纵横开关408选择性地确定是否交换对应于第一坐标数据X1422及第二坐标数据Y1424的在第一输入434及第二输入436处接收的数据值。纵横开关408基于在第一控制输入442处接收的第一控制值C1430选择性地交换X1与Y1。纵横开关408进一步经配置以基于在第二。

40、控制输入444处接收的第二控制值C2432的值选择性地交换在第三输入438处的数据值与在第四输入440处接收的数据值。在特定实施例中,纵横开关408以大体上类似于图3中描绘的交换电路302的方式操作。0076在特定实施例中,向量加法器410在第一输入454及第二输入456处接收对应于提供到多路复用器412的第一输入446及到第二输入448的数据的数据。此外,向量加法器410在第三输入458及第四输入460处接收对应于分别在多路复用器412的第三输入450及第四输入452处接收的数据的数据。向量加法器410经配置以对在输入454、456、458及460中的每一者处接收的数据求反。经由第一经求反的。

41、输入462、第二经求反的输入464、第三经求反的输入466及第四经求反的输入468将经求反的数据提供到多路复用器412。0077多路复用器412经耦合以分别在第一输入446及第二输入448处接收由纵横开关408提供的数据X1S、Y1S,且分别在第三输入450及第四输入452处接收数据X2S及Y2S。多路复用器412经进一步耦合以分别在第一经求反的输入462及第二经求反的输入464处接收来自向量加法器410的经求反的数据X1S及Y1S,且分别在第三经求反的输入466处及在说明书CN102067082ACN102067092A8/12页12第四经求反的输入468处接收来自向量加法器410的经求反的。

42、数据X2S及Y2S。多路复用器412在第一控制输入470处接收第一控制值C1430且在第二控制输入472处接收第二控制值C2432。0078多路复用器412经配置以基于第一控制输入470选择性地提供来自第一输入446或第一经求反的输入462的第一输出474及来自第二输入448或第二经求反的输入464的第二输出476。第一输出474与第二输出476经耦合以将第一经旋转的坐标X1OUT490及第二经旋转的坐标Y1OUT492分别提供到输出寄存器414。举例来说,在控制值C1430指示零度旋转其不需要经求反的值的情况下,多路复用器412选择未经求反的输入446及448以分别提供到第一输出474及第二。

43、输出476。在控制值C1430指示一百八十度旋转需要两个坐标的求反的情况下,多路复用器412选择来自向量加法器410的经求反的输入462及464。在控制值指示九十度旋转或二百七十度旋转的情况下,多路复用器可选择一个未经求反的输入446或448及一个经求反的输入462或464。0079多路复用器412还经配置以基于第二控制输入472将第三坐标输入450及第三经求反的输入466中的一者选择性地提供到第三输出478。多路复用器412进一步经配置以基于第二控制输入472将第四坐标输入452或第四经求反的输入468选择到第四输出480。第三输出478及第四输出480经耦合到输出寄存器414以分别提供第二。

44、向量经旋转的输出数据X2OUT494及Y2OUT496。0080在特定实施例中,系统400进一步包括耦合到向量加法器410的饱和逻辑电路411。饱和逻辑电路411可经配置以检测在向量加法器410的输出处的饱和状况例如,可由在二的补码二进制表示中的“零”值的求反造成,且提供经校正的值用于在向量加法器410处的输出。在特定实施例中,饱和逻辑电路411可包括一个或一个以上“异或”门,且可将待交换的一个或一个以上硬连线的值HARDWIREDVALUE提供到向量加法器410中。0081在特定实施例中,系统400可实施于处理器管线的一部分处,例如,在交错的多线程处理器的执行单元处。举例来说,纵横开关408。

45、可为路由单元的一部分以在处理器的执行单元处对准数据,且向量加法器410及多路复用器412还可为执行单元内的元件。在另一特定实施例中,系统400可实施于无线装置的调制解调器例如,图1的调制解调器140中。在特定实施方案中,系统400可实施于管线式交错的多线程处理器的一个或一个以上执行单元处以执行调制解调器操作。此外,在说明性实施例中,纵横开关408可对应于交换电路320的具体实施方案,向量加法器410可对应于求反电路304的具体实施方案,且多路复用器412可充当选择电路308的具体实施方案如图3中所描绘,且进一步适于执行多个向量的同时旋转,如由具有对应于第一数据422及424的坐标的第一向量及具。

46、有对应于第二数据426及428的坐标的第二向量所指示。0082参看图5,其描绘用以执行坐标旋转的系统的第二说明性实施例且将其大体表示为500。系统500包括用以响应于控制值C1524选择性地交换第一坐标数据X1520与第二坐标数据Y1522的装置,其被说明为交换电路502。系统500进一步包括用以对第一坐标数据520求反以产生第一经求反的坐标数据及对第二坐标数据522求反以产生第二经求反的坐标数据的装置,其在图5中被说明为向量乘法器504。系统500还包括用以响应于控制值C1548选择性地输出第一坐标数据或第一经求反的坐标数据及选择性地输出第二坐标数据或第二经求反的坐标数据的装置,其被描绘为选。

47、择电路508。系统500大体对应于图3的系说明书CN102067082ACN102067092A9/12页13统300且根据图3的系统300使用向量乘法器504代替求反电路304进行操作。0083在特定实施例中,系统500经配置以接收第一坐标数据520及第二坐标数据522,且执行由第一坐标数据520及第二坐标数据522表示的向量的旋转。举例来说,第一坐标数据520可表示向量的X坐标,且第二坐标数据522可表示所述向量的Y坐标。控制值C1524可表示待对向量应用的旋转度。0084在特定实施例中,交换电路502经配置以接收第一坐标数据520及第二坐标数据522以及控制值524,且输出第一经交换的输。

48、出526及第二经交换的输出528。分别将第一经交换的坐标数据输出526及第二经交换的坐标数据输出528作为输入540及542提供到选择电路508。还分别将第一交换坐标数据输出526及第二交换坐标数据输出528作为输入530及532提供到向量乘法器504。0085在特定实施例中,向量乘法器504经配置以在第一输入530处接收第一经交换的数据526且将第一经交换的数据526的经求反的值提供到选择电路508的第一经求反的输入544。向量乘法器504进一步经配置以在第二输入532处接收第二经交换的数据528且将第二经交换的数据528的经求反的值提供到选择电路508的第二经求反的输入546。在特定实施例。

49、中,向量乘法器504包括选择性地将在第一输入530、第二输入532或两者处接收的数据乘以负一的控制逻辑。0086在特定实施例中,选择电路508经配置以在控制输入548处接收控制值C1,且在第一坐标输出XOUT550及第二坐标输出YOUT552处选择性地输出对应于按由控制值C1指示的量旋转的第一坐标数据520及第二坐标数据522的值。因此,选择电路508可在第一交换坐标输入540处接收第一经交换的输出526及在第一经求反的输入544处接收第一经交换的输出526的经求反的值。选择电路508可选择性地将在第一交换坐标输入540及第一经求反的输入544中的一者处接收的值提供到第一坐标输出XOUT550。此外,选择电路508可接收第二交换坐标输入542及第二经求反的输入546,且可选择性地将在第二交换坐标输入542及第二经求反的输入546中的一者处接收的值输出到第二坐标输出YOUT552。0087参看图6,其描绘向量坐标旋转系统的第一说明性实施例的数据流且将其大体表示为600。交换电路602经耦合以接收输入向量X1,Y1601且将输出提供到求反电路604。交换电路602可响应于控制值C1624选择性地交换输入向量601的坐标以产生输出向量X1,Y1或Y1,X1。0088求反电路604响应于控制值C1。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1