CN102067082B - 用以执行快速旋转运算的系统及方法 - Google Patents
用以执行快速旋转运算的系统及方法 Download PDFInfo
- Publication number
- CN102067082B CN102067082B CN200980123391.3A CN200980123391A CN102067082B CN 102067082 B CN102067082 B CN 102067082B CN 200980123391 A CN200980123391 A CN 200980123391A CN 102067082 B CN102067082 B CN 102067082B
- Authority
- CN
- China
- Prior art keywords
- coordinate
- data
- controlling value
- output data
- rotation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49905—Exception handling
- G06F7/4991—Overflow or underflow
- G06F7/49921—Saturation, i.e. clipping the result to a minimum or maximum value
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/768—Data position reversal, e.g. bit reversal, byte swapping
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明揭示用以执行快速旋转运算的系统及方法。在特定实施例中,一种方法包括执行单一指令。所述方法包括接收指示第一坐标及第二坐标的第一数据、接收指示选自九十度倍数集合的第一旋转值的第一控制值,及写入对应于按所述第一旋转值旋转的所述第一数据的输出数据。
Description
技术领域
本发明大体上涉及执行快速旋转运算。
背景技术
技术上的进步已产生更小且更强大的计算装置。举例来说,当前存在各种各样的便携型个人计算装置,包括无线计算装置,例如,小巧、轻便且易于由用户携带的便携型无线电话、个人数字助理(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可驻留于计算装置或用户终端中。在替代方案中,处理器及存储媒体可作为离散组件驻留于计算装置或用户终端中。
提供对所揭示的实施例的先前描述,以使所属领域的技术人员能够制作或使用所揭示的实施例。对于所属领域的技术人员来说,对这些实施例的各种修改将易于显而易见,且在不脱离本发明的范围的情况下,本文中界定的一般原理可应用于其它实施例。因此,本发明并不希望限于本文中所展示的实施例,而应符合与如所附权利要求书界定的原理及新颖特征相一致的最广泛的可能范围。
Claims (22)
1.一种用以执行快速旋转运算的方法,其包含:
在处理器处执行单一指令,其中执行所述单一指令包括:
接收第一数据和第二数据,其中所述第一数据包含第一坐标及第二坐标,并且其中所述第二数据包含第三坐标及第四坐标;
接收第一控制值和第二控制值,其中所述第一控制值指示选自九十度倍数集合的第一旋转值并且所述第二控制值指示选自所述九十度倍数集合的第二旋转值;以及
在单一执行循环期间在所述处理器的单一执行单元处确定第一输出数据和第二输出数据,其中所述单一执行单元包括向量加法器电路,其中确定所述第一输出数据和第二输出数据包括由所述向量加法器电路执行求反操作,以及,其中所述第一输出数据对应于按所述第一旋转值旋转的所述第一数据并且所述第二输出数据对应于按所述第二旋转值旋转的所述第二数据。
2.根据权利要求1所述的方法,其中在没有乘法运算以及没有表查找的情况下执行对所述第一输出数据和所述第二输出数据的确定。
3.根据权利要求1所述的方法,其中执行所述单一指令进一步包含将所述第一输出数据和所述第二输出数据写入到数据存储元件。
4.根据权利要求1所述的方法,其中所述九十度倍数集合包括零度、九十度、一百八十度及二百七十度,且其中执行所述单一指令进一步包含:
当所述第一控制值对应于九十度或二百七十度时交换所述第一坐标与所述第二坐标;以及
当所述第一控制值对应于九十度、一百八十度或二百七十度时,对所述第一坐标及所述第二坐标中的至少一者求反。
5.根据权利要求4所述的方法,其中所述向量加法器电路是这样的向量加法器:所述向量加法器经配置以接收所述第一坐标、所述第二坐标、所述第三坐标和所述第四坐标,并且其中所述向量加法器经配置以基于所述第一控制值而选择性地对所述第一坐标与所述第二坐标求反,并基于所述第二控制值而选择性地对所述第三坐标与所述第四坐标求反。
6.根据权利要求1所述的方法,其中确定所述第一输出数据和所述第二输出数据包含:通过纵横制装置基于所述第一控制值选择性地交换所述第一坐标和所述第二坐标而产生第一经交换坐标;通过所述纵横制装置基于所述第二控制值选择性地交换所述第三坐标和所述第四坐标而产生第二经交换坐标;通过所述向量加法器电路对所述第一经交换坐标求反而产生第一经求反坐标并对所述第二经交换坐标求反而产生第二经求反坐标;基于所述第一控制值而通过多路复用器从所述第一经交换坐标和所述第一经求反坐标选择所述第一输出数据;以及基于所述第二控制值而通过所述多路复用器从所述第二经交换坐标和所述第二经求反坐标选择所述第二输出数据。
7.根据权利要求4所述的方法,其中执行所述单一指令进一步包含应用饱和逻辑以防止对所述第一坐标及所述第二坐标中的至少一者求反时的溢出状况。
8.根据权利要求1所述的方法,其中所述第一控制值对应于所接收的无线信号的符号值,并且其中所述单一指令的执行与无线接收器的正交解码循环有关。
9.根据权利要求1所述的方法,其中所述单一指令单元包括纵横开关,所述纵横开关经配置以在所述单一执行循环期间将所述第一坐标、所述第二坐标、所述第三坐标和所述第四坐标提供给所述单一执行单元的至少一个多路复用器。
10.根据权利要求9所述的方法,其中所述单一纵横开关从单一寄存器堆接收所述第一坐标、所述第二坐标、所述第三坐标和所述第四坐标。
11.根据权利要求1所述的方法,其进一步包含同时确定所述第一输出数据和所述第二输出数据。
12.根据权利要求1所述的方法,其中在将所述第一输出数据和所述第二输出数据写入到寄存器堆内的数据存储元件之前确定所述第一输出数据及所述第二输出数据。
13.根据权利要求1所述的方法,其中所述单一指令是在不支持微码的管线中执行。
14.根据权利要求1所述的方法,其中所述第一坐标、所述第二坐标、所述第三坐标和所述第四坐标中的每一者与对应于接收自天线的无线信号的符号相位数据相关,其中所述第一坐标和所述第二坐标对应于第一坐标对并且其中所述第三坐标和所述第四坐标对应于第二坐标对。
15.一种用以执行快速旋转运算的处理器,其包含:
用以接收第一数据与第二数据的装置,其中所述第一数据包含第一坐标和第二坐标并且所述第二数据包含第三坐标和第四坐标;
用以接收第一控制值和第二控制值的装置,其中所述第一控制值指示选自九十度倍数集合的第一旋转值并且所述第二控制值指示选自所述九十度倍数集合的第二旋转值;以及
用以在单一执行循环期间在所述处理器的单一执行单元处确定第一输出数据和第二输出数据的装置,
其中用以确定的所述装置包括用以使用一个或者多个操作对所述第一数据和所述第二数据执行向量加法的装置,执行向量加法的所述装置集成在所述单一执行单元中,并且,其中所述第一输出数据对应于按所述第一旋转值旋转的所述第一数据并且所述第二输出数据对应于按所述第二旋转值旋转的所述第二数据。
16.根据权利要求15所述的处理器,其中用以确定第一输出数据和所述第二输出数据的装置包括纵横制装置,所述纵横制装置经配置以选择性地切换所述第一坐标和所述第二坐标。
17.根据权利要求15所述的处理器,其中所述一个或多个操作包括至少一个执行于所述第一坐标和所述第二坐标的至少一者上的求反操作。
18.根据权利要求17所述的处理器,其进一步包含饱和逻辑电路,所述饱和逻辑电路经配置以校正与所述用以执行向量加法的所述装置相关的负溢出状况。
19.根据权利要求15所述的处理器,其进一步包含用以将所述第一输出数据和所述第二输出数据输出到存储器的装置。
20.根据权利要求19所述的处理器,其中用以输出的所述装置包括响应于所述第一控制值和所述第二控制值的多路复用器。
21.一种用以执行快速旋转运算的系统,其包含:
收发器,其耦合到天线;以及
调制解调器,其经配置以:
从所述收发器接收无线信号数据,所述无线信号数据包含:
第一数据和第二数据,其中所述第一数据包含第一坐标及第二坐标,并且其中所述第二数据包含第三坐标及第四坐标;以及
第一控制值和第二控制值,其中所述第一控制值指示选自九十度倍数集合的第一旋转值并且所述第二控制值指示选自所述九十度倍数集合的第二旋转值;以及
在单一执行循环期间在处理器的单一执行单元处确定第一输出数据和第二输出数据,其中所述单一执行单元包括经配置以执行求反操作的向量加法器,以及,其中所述第一输出数据对应于按所述第一旋转值旋转的所述第一数据并且所述第二输出数据对应于按所述第二旋转值旋转的所述第二数据。
22.根据权利要求21所述的系统,其中所述单一执行单元包含纵横制装置,所述纵横制装置经配置以响应于所述第一控制值而选择性地交换所述第一坐标和所述第二坐标,并且,其中所述向量加法器经配置以响应于所述第一控制值而对所述纵横制装置的输出求反。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/146,825 | 2008-06-26 | ||
US12/146,825 US8243100B2 (en) | 2008-06-26 | 2008-06-26 | System and method to perform fast rotation operations |
PCT/US2009/047671 WO2009158254A1 (en) | 2008-06-26 | 2009-06-17 | System and method to perform fast rotation operations |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102067082A CN102067082A (zh) | 2011-05-18 |
CN102067082B true CN102067082B (zh) | 2014-07-09 |
Family
ID=41058690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980123391.3A Active CN102067082B (zh) | 2008-06-26 | 2009-06-17 | 用以执行快速旋转运算的系统及方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8243100B2 (zh) |
EP (1) | EP2310939B1 (zh) |
JP (2) | JP5607040B2 (zh) |
KR (1) | KR101334860B1 (zh) |
CN (1) | CN102067082B (zh) |
TW (1) | TW201013522A (zh) |
WO (1) | WO2009158254A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9335997B2 (en) | 2008-08-15 | 2016-05-10 | Apple Inc. | Processing vectors using a wrapping rotate previous instruction in the macroscalar architecture |
US8549265B2 (en) | 2008-08-15 | 2013-10-01 | Apple Inc. | Processing vectors using wrapping shift instructions in the macroscalar architecture |
US9335980B2 (en) | 2008-08-15 | 2016-05-10 | Apple Inc. | Processing vectors using wrapping propagate instructions in the macroscalar architecture |
US8527742B2 (en) | 2008-08-15 | 2013-09-03 | Apple Inc. | Processing vectors using wrapping add and subtract instructions in the macroscalar architecture |
US8555037B2 (en) | 2008-08-15 | 2013-10-08 | Apple Inc. | Processing vectors using wrapping minima and maxima instructions in the macroscalar architecture |
US8583904B2 (en) | 2008-08-15 | 2013-11-12 | Apple Inc. | Processing vectors using wrapping negation instructions in the macroscalar architecture |
US8539205B2 (en) | 2008-08-15 | 2013-09-17 | Apple Inc. | Processing vectors using wrapping multiply and divide instructions in the macroscalar architecture |
US8560815B2 (en) | 2008-08-15 | 2013-10-15 | Apple Inc. | Processing vectors using wrapping boolean instructions in the macroscalar architecture |
US9342304B2 (en) | 2008-08-15 | 2016-05-17 | Apple Inc. | Processing vectors using wrapping increment and decrement instructions in the macroscalar architecture |
US20120278591A1 (en) * | 2011-04-27 | 2012-11-01 | Advanced Micro Devices, Inc. | Crossbar switch module having data movement instruction processor module and methods for implementing the same |
CN102555550B (zh) * | 2011-12-30 | 2014-04-16 | 浙江大学 | 一种基于多核处理器的高速印花机图像数据旋转处理系统及方法 |
US9389860B2 (en) | 2012-04-02 | 2016-07-12 | Apple Inc. | Prediction optimizations for Macroscalar vector partitioning loops |
JP6049358B2 (ja) * | 2012-08-31 | 2016-12-21 | キヤノン株式会社 | 画像処理装置、画像処理方法、およびプログラム |
US9817663B2 (en) | 2013-03-19 | 2017-11-14 | Apple Inc. | Enhanced Macroscalar predicate operations |
US9348589B2 (en) | 2013-03-19 | 2016-05-24 | Apple Inc. | Enhanced predicate registers having predicates corresponding to element widths |
KR101753866B1 (ko) * | 2013-05-10 | 2017-07-04 | 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 | 메모리 액세스의 가속 |
US9691181B2 (en) * | 2014-02-24 | 2017-06-27 | Sony Interactive Entertainment Inc. | Methods and systems for social sharing head mounted display (HMD) content with a second screen |
US10496407B2 (en) * | 2017-12-21 | 2019-12-03 | Intel Corporation | Apparatus and method for adding packed data elements with rotation and halving |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5019968A (en) * | 1988-03-29 | 1991-05-28 | Yulan Wang | Three-dimensional vector processor |
US5737253A (en) * | 1995-08-30 | 1998-04-07 | Pentomics, Inc. | Method and apparatus for direct digital frequency synthesizer |
WO1998027663A2 (en) * | 1996-12-17 | 1998-06-25 | Ericsson Inc. | System for improving the quality of a received radio signal |
US5973664A (en) * | 1998-03-19 | 1999-10-26 | Portrait Displays, Inc. | Parameterized image orientation for computer displays |
EP1394673A1 (en) * | 2002-08-30 | 2004-03-03 | STMicroelectronics S.r.l. | Method and circuit for incrementing, decrementing or two complementing a bit string |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE59010674D1 (de) | 1990-04-20 | 1997-04-17 | Siemens Ag | CORDIC-Prozessor für Vektordrehungen in Carry-Save-Architektur |
US5202847A (en) * | 1990-07-31 | 1993-04-13 | Inmos Limited | Digital signal processing |
JP2001202242A (ja) * | 2000-01-24 | 2001-07-27 | Canon Inc | マイクロプロセッサ |
KR20010112690A (ko) * | 2000-06-12 | 2001-12-21 | 이형원 | 컴퓨터 프로그램 개발 자원을 네트워크 상에서 연동하는방법 |
JP3466173B2 (ja) * | 2000-07-24 | 2003-11-10 | 株式会社ソニー・コンピュータエンタテインメント | 画像処理システム、デバイス、方法及びコンピュータプログラム |
US7031992B2 (en) * | 2000-09-08 | 2006-04-18 | Quartics, Inc. | Hardware function generator support in a DSP |
US20060154625A1 (en) * | 2003-03-31 | 2006-07-13 | Quorum Systems, Inc. | Direct conversion transmitter system and method with quadrature balancing and low lo feed through |
US20060200510A1 (en) | 2005-01-31 | 2006-09-07 | Wang Cindy C | Precision cordic processor |
DE102005045519A1 (de) | 2005-09-23 | 2007-03-29 | Newlogic Technologies Ag | Verfahren und Vorrichtung zur FFT Berechnung |
US7818357B2 (en) | 2005-11-23 | 2010-10-19 | Rambus Inc. | Systems and methods for implementing CORDIC rotations for projectors and related operators |
US7889820B2 (en) * | 2006-01-05 | 2011-02-15 | Qualcomm Incorporated | Phase compensation for analog gain switching in OFDM modulated physical channel |
US20070266070A1 (en) | 2006-05-12 | 2007-11-15 | Chung Hua University | Split-radix FFT/IFFT processor |
US7870179B2 (en) * | 2006-09-21 | 2011-01-11 | Samsung Electronics Co., Ltd. | Apparatus and method for optimal implementation of the CORDIC algorithm for wireless RFIC digital down-conversion |
EP2069947A4 (en) * | 2006-09-26 | 2013-10-09 | Qualcomm Inc | APPLICATION OF MATRIX INVERSION SOFTWARE IN A WIRELESS COMMUNICATION SYSTEM |
-
2008
- 2008-06-26 US US12/146,825 patent/US8243100B2/en active Active
-
2009
- 2009-06-17 WO PCT/US2009/047671 patent/WO2009158254A1/en active Application Filing
- 2009-06-17 EP EP09770788.9A patent/EP2310939B1/en active Active
- 2009-06-17 JP JP2011516455A patent/JP5607040B2/ja active Active
- 2009-06-17 CN CN200980123391.3A patent/CN102067082B/zh active Active
- 2009-06-17 KR KR1020117002010A patent/KR101334860B1/ko active IP Right Grant
- 2009-06-26 TW TW098121714A patent/TW201013522A/zh unknown
-
2014
- 2014-07-04 JP JP2014138995A patent/JP2014238847A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5019968A (en) * | 1988-03-29 | 1991-05-28 | Yulan Wang | Three-dimensional vector processor |
US5737253A (en) * | 1995-08-30 | 1998-04-07 | Pentomics, Inc. | Method and apparatus for direct digital frequency synthesizer |
WO1998027663A2 (en) * | 1996-12-17 | 1998-06-25 | Ericsson Inc. | System for improving the quality of a received radio signal |
US5973664A (en) * | 1998-03-19 | 1999-10-26 | Portrait Displays, Inc. | Parameterized image orientation for computer displays |
EP1394673A1 (en) * | 2002-08-30 | 2004-03-03 | STMicroelectronics S.r.l. | Method and circuit for incrementing, decrementing or two complementing a bit string |
Also Published As
Publication number | Publication date |
---|---|
US20090327667A1 (en) | 2009-12-31 |
TW201013522A (en) | 2010-04-01 |
KR101334860B1 (ko) | 2013-12-02 |
JP2011526041A (ja) | 2011-09-29 |
EP2310939B1 (en) | 2017-07-19 |
CN102067082A (zh) | 2011-05-18 |
JP2014238847A (ja) | 2014-12-18 |
WO2009158254A1 (en) | 2009-12-30 |
EP2310939A1 (en) | 2011-04-20 |
JP5607040B2 (ja) | 2014-10-15 |
US8243100B2 (en) | 2012-08-14 |
KR20110025222A (ko) | 2011-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102067082B (zh) | 用以执行快速旋转运算的系统及方法 | |
CN101501634B (zh) | 使用标量/向量指令处理数据的系统和方法 | |
US6968445B2 (en) | Multithreaded processor with efficient processing for convergence device applications | |
RU2009114818A (ru) | Инструкция и логическая схема для выполнения операции скалярного произведения | |
JP5920226B2 (ja) | 複素演算処理用コプロセッサ及びプロセッサシステム | |
US11474825B2 (en) | Apparatus and method for controlling complex multiply-accumulate circuitry | |
KR20080094813A (ko) | 부스 곱셈 방법들 및 시스템들을 위한 전력-효율적인 부호 확장 | |
TWI681300B (zh) | 在64位元資料路徑上實行128位元simd操作之方法、系統及電腦可讀取媒體 | |
US20120191766A1 (en) | Multiplication of Complex Numbers Represented in Floating Point | |
WO2006102379A2 (en) | Processor and method of grouping and executing dependent instructions in a packet | |
CN101986259A (zh) | 无符号定点除法及无符号定点除法器 | |
CN112650471A (zh) | 用于处理掩蔽数据的处理器和方法 | |
WO2013095558A1 (en) | Method, apparatus and system for execution of a vector calculation instruction | |
CN111459546B (zh) | 一种实现操作数位宽可变的装置及方法 | |
CN109478199B (zh) | 分段线性逼近的系统及方法 | |
US20140188967A1 (en) | Leading Change Anticipator Logic | |
EP1984810B1 (en) | A booth multiplier with enhanced reduction tree circuitry | |
US9207941B2 (en) | Systems, apparatuses, and methods for reducing the number of short integer multiplications | |
CN111814093A (zh) | 一种乘累加指令的处理方法和处理装置 | |
Kim et al. | MDSP-II: A 16-bit DSP with mobile communication accelerator | |
Verbauwhede et al. | A low power DSP engine for wireless communications | |
Verbauwhede et al. | Wireless digital signal processors | |
CN109960486B (zh) | 二进制数据处理方法及其装置、介质和系统 | |
Yile et al. | An area efficient modular arithmetic processor | |
CN100359506C (zh) | 能够高效处理汇聚设备应用的多线程处理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |