用于灵活数据类型的方法和设备的利记博彩app

文档序号:6611313阅读:254来源:国知局
专利名称:用于灵活数据类型的方法和设备的利记博彩app
技术领域
本发明一般涉及处理器的指令集结构(ISA)。更特别的,本发明 涉及用于数字信号处理器的操作数数据类型.
背景技术
为了在计算设备中处理数据,定义了指令集。具有一个或多个指 令的指令集被需要用于如微处理器、计算机或者单一芯片DSP设备等 的计算设备.在为计算设备定义指令集时,将被计算的操作数的数据 类型通常基于要被利用的数字表示法以及提供的硬件类型被预先定 义.指令集结构(ISA)的数据类型本质上通过计算设备将处理哪些类 型的数字数据以及如何处理被定义.
为数据类型利用的数字表示法包括数的基或基数,无论其是否将 被编码(如BCD的二进制编码),以及数字格式.通常被用于计算机 的基是二进制或者为2的基数.被用于计算机中的其他基是八进制(8 为基),十进制(IO为基)以及十六进制(16为基).如果选择不是 2的基数,则通常需要二进制编码因此是数字逻辑可识别的.例如,如 果使用IO为基数,数字是利用四位二进制数字编码的二进制,其被称
为二进制编码的十进制(BCD).
数字格式与数字是具有定点还是具有浮点表示、整数或小数格式 以及其相关表示、标准化还是非标准化格式、以及表示数字的位是压 缩的还是复原的相关.在浮点表示中通常包括指数.在定点表示中, 小数点(对于基为IO的小数点)是在关于位或数据的数字的固定位置. 如果小数点在所有数字的右边,则是整数格式.如果小数点在所有数 字的左边,则是小数格式.浮点数据格式的一个例子是在IEEE754规 范中规定的单精度和双精度浮点数据类型.
标准化和非标准化格式是浮点表示和小数格式专用的.如果一个
数是标准化的,则该数将以小数形式表示并且在小数点右边紧接着的 位是l。如果是非标准化格式,则该数将以小数形式表示并且在小数点 右边紧接着的位是l或者0.
如果要被处理的数据可以是正的或者负的,则数字表示需要有编 码方案来提供正值和负值两者的表示.用于整数格式的典型的编码方 法是符号大小、根值减一的补码(一个数对于二进制或者基为2的补 码)以及补码(两个数对于二进制或者基为2的补码).如果使用浮 点格式,则小数值和指数值可以类似于整数编码方法被编码.而且,
依赖值的范围和/或想要的精度,需要考虑数字表示的比特(也就是数 字)、字节和字的数量,例如,表示一个数的比特的数重可以固定为
一个32比特值或者四个8位字节。作为另一个例子,表示一个数的比
特的数量可以是对于小数格式为32比特并且对于指数为3比特.
除此之外,除了数字表示之外,指令集结构的数据类型可包括字 符串或数据的文本类型.这种情况下的字符通常被编码为如美国信息 交换标准码(ASCII)的二进制格式.编码的另一种形式是扩充的二进 制编码的十进制交换码(EBCDIC).这些编码格式还可以被从其二进 制格式压缩为压缩的十进制格式以便减少其表示所需要的比特数量.
用于数字信号处理器(DSP)的指令集结构的数据类型非常重要. DSP通常与通用微处理器的区别在于DSP通过包括用于执行数字数的 乘法的专门的乘法器和累加器(MAC)典型地支持加速算法运算.典型 的DSP设备的指令集通常仅包括一个DSP指令、 一个MAC指令,用于 执行新操作数的乘法以及与存储在累加器寄存器里的预先累加值的加 法.现有技术DSP设备中MAC指令的操作数的数据类型通常依赖于执
行其MAC运算部分的乘法器硬件.典型地数据类型对于DSP是固定的. 如果想要在具有与数据类型不一致格式的数据的搮作数上执行MAC运 算,需要执行其他指令来格式化该数据,因此其可以通过具有给定数 据类型的给定MAC指令来被处理.这些其他指令包括向存储器中读和 写数据以便选择在其上执行MAC指令的操作数的数据的合适的比特.
DSP被应用的一个领域是在电信系统中.在电信系统中DSP的一个 用途是数字滤波.在这种情况下DSP典型地被用指令编程以便实现数 字或时间域中的某个过滤功能.用于典型的有限脉冲响应(FIR)滤波 器的数学算法看上去象等式Yn-h。X。 + h丄+ hi + " + h山,其中 hn是编号从1到N的固定滤波器系数并且Xn是数据采样.等式L可以 利用软件程序被估算.但是在有些应用中,等式必须被尽可能快地估 算。这样做的一种方式是利用硬件组件如被编程来计算等式L的DSP 设备来执行计算.为了进一步加快处理,想要矢量化该等式并且将计 算分布在多个DSP中因此可以更快地获得最终结果.多个DSP并行运 算来加速计算过程.这样,各项的乘法被均衡地扩展到DSP的乘法器 用于各项的同时计算。各项的加法类似地被均衡地扩展到DSP的加法 器用于同时计算。在矢量化处理中,因为组合是结合的,所以处理项 的顺序并不重要.如杲各项的处理顺序被改变,对函数的矢量化处理 中预计的最终结果没有影响.在被用于执行矢量化处理的DSP设备中, 希望考虑在指令集结构的数据类型里考虑矢量化处理的类型以便提高 数据处理效率.
通常在通信系统中使用的滤波类型不同.不同类型的滤波系统使 用不同类型的操作数和滤波器系数.在这些情况下希望在DSP指令如 何处理不同的操作数方面有灵活性.还希望提高使用计算资源的效率 来加速DSP指令的执行.

发明内容
本发明在权利要求书中被简要地概括并且包括其中所述的方法、 i殳备和系统.
附困说明 图IA是利用本发明的系统的框困.
图IB是在困1A的系统的网关中利用本发明的印制电路板的框图.
图2是本发明的应用专用信号处理器(ASSP)的框困.
图3是在本发明的ASSP里的核心处理器的实例的框图.
困4是在困3的核心处理器中的RISC处理单元的框困.
困5A是在图3的核心处理器里的信号处理单元的实例的框困.
围5B是说明信号处理单元的总线结构的困5A的更详细的框困,
图6是用于本发明的指令集结构的操作数的通用数据类型格式.
困7是用于控制寄存器的说明操作数的数据打字(typing)和置 换的示例位图.
图8是可以被选择的可能数据类型的操作数的示例围,
图9是操作数的可能的置换以及其对于信号处理单元各自的方位 的示例图.
图IO是图3的每个信号处理单元的数据打字机(typer)和对准 器的横截面的框图.


图11是在图10的每个信号处理单元的数据打字机和对准器中包 含的总线多路复用器的框图。
图12A是用于信号处理单元的加法器的实数类型及其对齐的困表。
图12B是用于信号处理单元的乘法器的实数类型及其对齐的困表.
图12C是用于信号处理单元的加法器的复数类型及其对齐的第一 个图表.
图12D是用于信号处理单元的加法器的复数类型及其对齐的第二 个图表.
困12E是用于信号处理单元的乘法器的复数类型及其对齐的困表.
图12F是用于信号处理单元的乘法器的复数类型及其对齐的笫二 个图表.
困13A是说明与一对实数搮作数匹配的数据类型的困表. 图13B是说明与一对复数操作数匹配的数据类型的图表. 图13C是说明与一个实数操作数和一个复数操作数匹配的数据类 型的困表,
困14是说明与信号处理单元的乘法器匹配的数据类型的示例困表.
图15A是说明用于标童加法的信号处理单元的加法器匹配的数据 类型的示例困表.
困15B是说明用于矢量加法的信号处理单元的加法器匹配的数据 类型的示例困表。
图16是在每个信号处理单元的数据打字机和对准器中包含的总线
多路复用器的控制的框困.
附图中相同的参考数字和名称指示提供类似功能的元件.参考指 示符数字后面的字母表示具有该参考指示符数字的元件的一个实例.
具体实施例方式
在本发明下面的详细描述中,提出许多特定细节以便提供对本发
明的彻底理解.但是,对于本领域的技术人员很显然本发明可以在没
有这些特定细节的情况下实行.在其他实例中众所周知的方法、过程、
组件和电路没有被详细描述以便不使得不必要地使本发明的方面变得
模糊。而且,本发明将在特定实施方案中被描述但是可在硬件、软件、
固件或者其组合中实现。
具有本发明的指令集结构的多个应用专用信号处理器(ASSP)包
括操作数的灵活的数据打字、置换以及类型匹配.操作数的灵活的数
据打字、置换以及类型匹配提供编程的灵活性以便支持具有不同类型
滤波器系数或数据采样的不同的滤波和DSP算法.支持通信系统的网
关里不同的DSP算法的灵活性提供分组化网络上改善的语音和数据通
信。每个ASSP包括串口、援存和四个核心处理器以便同时处理多个语
音或数据信道.每个核心处理器优选的包括精简指令集计算机(RISC)
处理器以及四个信号处理单元(SP).每个SP包括多个算法块来同时
处理多个语音和数据通信信号采样用于在IP、 ATM、帧中继或其他分组
化网上通信.四个信号处理单元可以并行执行数字信号处理算法.每
个ASSP是灵活的并且可以被简单地通过改变控制ASSP执行的命令的
软件程序而编程来执行许多网络功能或者数据/语音处理功能,包括电
信系统(如CODEC),特别是分组化电信网中的语音和数据压缩/解压缩。
ASSP的指令集结构适合于包括如压缩/解压缩和回声消除的音频 和语音处理的数字信号处理应用.利用ASSP实现的指令集结构适合于DSP算法结构,本发明的ISA对DSP算法结构的这种适应平衡了易于 实现、处理效率以及DSP算法的可编程性.指令集结构可以被看作为 两个组件部分, 一个(RISC ISA )对应于RISC控制单元并且另 一个(DSP ISA)对应于信号处理单元300的DSP数据路径.RISC ISA是在寄存 器文件413中包括16寄存器的基于寄存器的结构,而DSPISA是具有 有效数字信号处理指令的基于存储器的结构.ASSP的指令字典型地是 20位,但是可以被扩展到40位来控制两个指令串行或并行地执行,如 两个RISC控制指令和扩展DSP指令.ASSP的指令集结构有四种不同 类型的指令来优化DSP运算混合.这些是(1)使用控制寄存器(也就 是模式寄存器)中的模式位的20位DSP指令,(2)具有可以取代模 式寄存器的控制扩展的40位DSP指令,(3)20位二元DSP指令,(4) 40位二元DSP指令。这些指令是用于加速该类型的核心处理器里的计 算的指令,其中D=[ (A opl B) op2 C]并且每个"opl"和"op2"可 以是三个操作数A、 B、 C上的乘、加或极值(最小/最大)运算类.加 速这些计算的ASSP的ISA允许操作的不同组合的有效链接.
ASSP的指令集结构的所有DSP指令是在一个指令中利用一个周期 处理量执行两个运算的二元DSP指令。二元DSP指令是在一个指令中 两个DSP指令或运算的组合并且包括主DSP运算(MAIN OP)以及子 DSP运算(SUB OP)。 一般的,本发明的指令集结构可被概括为组合 任何一对基本的DSP运算以便提供非常强大的二元指令组合.优选实 施方案中的DSP算法运算包括乘法指令(MULT)、加法指令(ADD)、 也被称为极值指令的最小/最大指令(MIN/MAX),以及空搮作指令 (NOP),每个有相关的运算代码("opcode").
本发明利用应用专用信号处理器的指令集结构以及硬件结构来有 效地执行这些二元DSP指令。
现在参见图1A,说明了语音和数据通信系统100.系统100包括 是分组化或分组交换网,如IP、 ATM或帧中继的网络101.网络101 允许在系统100的端点之间利用分组进行语音/话音和数据通信.数据 可以是包括音频、视频、电子邮件和其他一般数据形式的任何类型. 在系统100的每一端,当通过网络101收发时,语音或数据需要分组 化.系统100包括网关104A、 104B以及104C以便将接收的信息进分 组化用于在网络101上发送.网关是用于连接使用不同协议的多个网
络和设备的设备.语音和数据信息可以从多个不同的源以各种数字格
式提供给网关104,在系统100中,模拟语音信号由电话108收发. 在系统100中,数字语音信号在耦合到多个电话、传真机或数据调制 解调器的公共分支交换机(PBX) 112A和112B处被收发.数字语音信 号在PBX 112A和PBX 112B之间分别通过网关104A和104C收发.数 字数据信号还可以在数字调制解调器114和网关104A之间直接收发. 数字调制解调器114可以是数字用户线(DSL )调制解调器或者电缆调 制解调器.数据信号还可以利用无线地将数字信号或模拟信号收发到 基站116的移动单元118来通过无线通信系统耦合到系统100.基站 116将模拟信号转换为数字信号或者直接将数字信号传递到网关 104B,数据可以利用调制解调器110在普通老式电话系统(POTS)107B 上利用调制解调器信号收发.在POTS 107B上通信的调制解调器信号 传统地实际上是模拟的并且輛合到公共交换电话网(PSTN)的交换机 106B.在交换机106B,来自POTS 107B的模拟信号被数字化并且通过 时分复用(TDM)被收发到网关104B,每个时隙表示一个信道和到网 关104B的一个DSO输入.在网关104A、 104B和104C的每个,进入信 号被分组化用于在网络IOI上发送。由网关104A、 104B和104C从网 络101接收的信号被去分组化并且转换代码以便发送到合适的目的 地。
现在参见图1B,说明了网关104的网络接口卡(NIC)130,NIC130 包括一个或多个应用专用信号处理器(ASSP)150A-150N,网关中ASSP 的数量是可扩展的以便处理额外的信道.NIC 130的线路接口设备131 向连接到网关的各种设备,包括网络101提供接口,在对网络101接 口中,线路接口设备将数据分组化用于在网络101上发送出去并且将 要被ASSP设备接收的数据去除分组化,线路接口设备131处理由网关 在接收总线134上接收的信息并且将其提供给ASSP设备.来自ASSP 设备150的信息在发送总线132上通信用于发送到网关之外.传统的 线路接口设备是多信道串行接口或UTOPIA设备.NIC 130耦合到网关 104里的网关底板/网络接口总线136.桥逻辑138在总线136和NIC 130之间收发信息.桥逻辑138将NIC 130和底板/网络接口总线136 之间的信号收发到主总线139上用于通信到ASSP设备150A-150N的一 个或多个、主处理器140或者主存储器142.任选地耦合到一个或多个
ASSP设备150A到150N (—般称为ASSP 150)的每个的分别是可选的 本地存储器145A到145N ( —般称为可选本地存储器145 ).接收总线 134和发送总线132上的数字数据优选地以位宽的形式通信.虽然每个 ASSP里的内部存储器足够大到被用做暂时存储器,但是如果額外的存 储器空间是必要的,则可选本地存储器145可由每个ASSP150使用.
每个ASSP 150为网关提供信号处理功能.因为每个ASSP可执行 不同的信号处理程序,所以提供的信号处理类型是灵活的.ASSP的典 型的信号处理和相关的语音分组化功能包括(a)回声消除;(b)视 频、音频、以及语音/话音压缩/解压缩(语音/话音编码和解码);(c ) 延迟处理(分组,帧);(d)丟失处理;(e)连接性(LAN和WAN); (f )保密性(加密/解密);(g)电话接通性;(h)协议处理(保 留和传输协议,用于IP的RSVP、 TCP/IP、 RTP、 UDP、以及用于ATM 的AAL2、 AAL1、 AAL5) ; ( i )过滤;(j)无声抑制;(k )长度处 理(帧、分组);以及与通倌系统上语音和数据通信相关的其他数字 信号处理功能.每个ASSP 150可以执行其他功能以便在分组化网上将 分组数据流中的语音和数据发送到系统100的各种端点.
现在参见图2,说明了 ASSP 150的框图。在ASSP 150的中心是 四个核心处理器200A-200D.核心处理器200A-200D的每个通过总线 203A-203D分别耦合到数据存储器202A-202D,核心处理器200A-200D 的每个还分别通过总线205A-205D分别輛合到程序存储器204A-204D。核心处理器200A-200D的每个通过多信道串口 206、多信道存 储器移动引擎208、緩存210和数据存储器202A-202D与外部信道通 信。ASSP 150还包括外部存储器接口 212来耦合到外部可选本地存储 器145. ASSP 150包括外部主机接口 214用于接口到困1B的外部主处 理器140.在ASSP 150中还包括定时器216、时钟生成器和锁相环218、 杂项控制逻辑220以及用于边界扫描测试的联合测试行动组(JTAG) 测试接入端口 222.对于如ATM的某些应用,多信道串行接口 206可 被UTOPIA并行接口替换.ASSP 150还包括微控制器223以便执行对 于核心处理器200A-200D的处理时序安排以及在ASSP里数据移动的协 调,还有中断控制器224来辅助中断处理以及ASSP 150的控制,
现在参见困3,说明了通过总线203耦合到其相应的数据存储器 202以及通过总线205耦合到程序存储器204的核心处理器200的框
闺.核心处理器200是核心处理器200A-200D的每个的框闺.数据存 储器202和程序存储器204指数据存储器202A-202D和程序存储器 204A-204D的各自的一个实例.总线203和205分别指总线203A-203D 和205A-205D各自的实例.核心处理器200包括四个信号处理单元SPO 300A、 SP1 300B、 SP2 300C以及SP3 300D.核心处理器200还包括 精简指令集计算机(RISC)控制单元302和管道控制单元304.信号 处理单元30OA-300D在数据上执行信号处理任务而RISC控制单元302 和管道控制单元304执行与由SP 300A-300D执行的信号处理功能相关 的控制任务.由RISC控制单元302提供的控制在管道层与SP 300A-300D耦合以便生成紧密集成的核心处理器200来保持在一个非常高的 水平上利用信号处理单元200.
程序存储器204耦合到包括指令緩存作为本地循环緩存的管道控 制304 优选实施方案中的指令緩存有保留四个指令的功能.管道控制 304的指令緩存减少了在程序循环执行期间访问主存储器以便取指令 方面所消耗的能量。
信号处理任务在信号处理单元300A-300D里的数据路径上被执 行。DSP算法的特性是它们是在数据流上固有的矢量运算,具有最小的 临时位置(数据重用).因此,不使用具有请求页式调度的数据緩存, 因为其不能很好地起作用并且会降低操作性能.因此,在没有发布许 多负栽并且将指令存储在存储器中的情况下,信号处理单元300A-300D 被允许从数据存储器202直接访问矢量元素(操作数),导致非常高 效的数据处理.因此,具有可以扩展为40位指令字的20位指令字的 本发明的指令集结构,通过使ISA适合DSP算法结构,比利用256位 或更高的指令宽度的VLIW结构获得了更好的效率.适合的ISA导致可 以调整为更髙计算需要的非常紧凑并且低功率的硬件.ASSP可以容纳 的操作数的数据类型和数据大小可以改变.数据类型可以是实数或复 数、整数或分数,具有不同大小的多个元素的矢重.在优选实施方案 中数据大小是64位但是通过正确的指令编码可以容纳更大的数据大 小。
现在参见困4,说明了 RISC控制单元302的详细框田,RISC控制 单元302包括数据对准器和格式器402、存储器地址生成器404、三个 加法器406A-406C、算法逻辑单元(ALU) 408、乘法器410、桶形移
位器412、以及寄存器文件413.寄存器文件413指向开始存储器位置, 从此存储器地址生成器404可以将地址生成到数据存储器202中.RISC 控制单元302负责将地址提供给数据存储器因此正确的数据流被送入 信号处理单元300A-300D. RISC控制单元302是寄存具有负栽的组织 并且存储指令的寄存器以便将数据移入或移出数据存储器202.数据存 储器寻址由RISC控制单元执行,其利用32位寄存器作为指针确定地 址、修改后偏移、以及类型和置换域.类型域允许各种固有的DSP数 据被支持作为结构中的"头等公民".例如,复数类型允许在存储在 存储器中的复数数据上直接运算,去掉了许多簿记指令.这在高效地 支持数据调制解调器中的QAM解调器中非常有用.
现在参见图5A,说明了信号处理单元300的框困,其代表SP 300A-300D的一个实例.每个信号处理单元300包括数据打字机和对 准器502、第一乘法器M1 504A、压缩器506、第一加法器Al 510A、 第二加法器A2 510B、累加寄存器512、第三加法器A3 510C、以及第 二乘法器M2 504B。加法器510A-510C在结构上是类似的并且一般称 为加法器510。乘法器504A和504B在结构上是类似的并且一般称为 乘法器504。乘法器504A和504B的每个在其输入阶段分别有多路复 用器514A和514B将来自不同总线的不同输入多路复用到乘法器中. 地址510A、 510B、 510C的每个在其输入阶段也分别具有多路复用器 520A、 520B、 520C将来自不同总线的不同输入多路复用到加法器中, 这些多路复用器和其他控制逻辑允许加法器、乘法器和信号处理单元 300A-300C中的其他组件通过多路复用器正确的选择灵活地互连.在 优选实施方案中,乘法器M1 504A、压缩器506、加法器A1510A和加 法器A2 510B,以及累加器512,可以通过数据打字机和对准器502 直接从外部数据总线接收输入.在优选实施方案中,加法器510C和乘 法器M2 504B接收来自累加器512的输入或者来自执行单元乘法器Ml 504A、压缩器506、加法器A1 510A以及加法器A2 510B的榆出.
现在参见图5B,说明了信号处理单元300的功能块和总线结构的 更详细的框困.因为在每个信号处理单元中提供了结构和功能性,所 以灵活的数据打字是可能的.到数据存储器202的总线203包括Z输 出总线532和X输入总线531以及Y输入总线533.输出信号通过数 据打字机和对准器502在Z输出总线532上被耦合到信号处理器300
之外.输入信号通过数据打字机和对准器502在X输入总线531和Y 输入总线533上被耦合到信号处理器300里.两个搮作数可以被一起 从数据存储器202并行加栽到信号处理器300中,X总线531和Y总 线533每个上一个.
信号处理器300内部,SXM总线552和SYM总线556分别在数据 打字机和对准器502以及乘法器M1 504A之间輛杏用于来自X总线531 和Y总线533的两个操作数源.SXA总线550和SYA总线554分别在 数据打字机和对准器502和加法器Al 510A之间以及数据打字机和对 准器502和加法器A2 510B之间耦合用于来自X总线531和Y总线533 的两个操作数源.在优选实施方案中,X总线531和Y总线533是64 位宽而SXA总线550和SYA总线554是40位宽并且SXM总线552和 SYM总线556是16位宽.另一对内部总线在数据打字机和对准器502 和压缩器506之间以及数据打字机和对准器502和累加寄存器AR 512 之间耦合。虽然数据打字机和对准器502可以有耦合到加法器A3 510C 和乘法器M2 504B的数据总线,在优选实施方案中其没有这样,以便 避免外部数据线以及保存集成电路的区域使用。输出数据被在另一总 线上从累加寄存器AR 512耦合到数据打字机和对准器502。乘法器Ml 504A有总线将其输出耦合到压缩器506、加法器A1 510A、加法器A2 510B、以及累加寄存器AR512的输入,压缩器506有总线将其输出耦 合到加法器A1 510A和加法器A2 510B的输入.加法器A1 510A有总 线将其输出耦合到累加寄存器512.加法器A2 510B有总线将其输出 耦合到累加寄存器512.累加寄存器512有总线将其输出輛合到乘法器 M2 504B、加法器A3 510C、以及数据打字机和对准器502.加法器A3 510C有总线将其输出辆合到乘法器M2 504B、累加寄存器512.乘法 器M2 504B有总线将其输出耦合到加法器A3 510C和累加寄存器AR 512 的输入.
指令集结构
ASSP 150的指令集结构适合于包括音频和语音处理,如压缩/解 压缩和回声消除的数字信号处理应用.本质上,利用ASSP150实现的 指令集结构适合于DSP算法结构.本发明的ISA对DSP算法结构的这 种适应是易于实现、处理效率以及DSP算法的可编程性之间的平衡. 本发明的ISA提供了数据移动运算、DSP/算法/逻辑运算、程序控
算(如功能调用/返回、无条件/条件跳转和分支)、以及系统运算(如 特权、中断/陷阱/危除处理以及存储器管理控制).
ASSP 150的指令集结构可被看作是两个组件部分, 一个(RISC ISA)对应于RISC控制单元并且另一个(DSP ISA)对应于信号处理单 元300的DSP数据路径.RISC ISA是基于寄存器的结构,在寄存器文 件413中包括十六个寄存器,而DSP ISA是具有有效数字信号处理指 令的基于存储器的结构.ASSP的指令字典型的是20位但是可以被扩展 到40位以便控制两个RISC或DSP指令来被串行或并行地执行,如RISC 控制指令被与DSP指令、或者40位扩展RISC或者DSP指令并行执行.
ASSP150的指令集结构有四种不同类型的指令来优化DSP运算混 合。这些是(1)使用控制寄存器(也就是模式寄存器)中的模式位的 20位DSP指令,(2)具有可以取代模式寄存器的控制扩展的40位DSP 指令,(3) 20位二元DSP指令,(4) 40位二元DSP指令.这些指令 是用于加速该类型的核心处理器里的计算,其中D=[(AoplB)op2C] 并且每个"opl"和"op2"可以是三个搮作数A、 B、 C上的乘、加、 极值(最小/最大)或者其他基本的运算类.加速这些计算的ASSP的 ISA允许操作的不同组合的有效链接。这些运算类型需要三个操作数, 其对于要执行该运算的处理器需要可用.集成电路的大小在总线结构 上加有限制,其将带宽限制为每个周期从数据存储器202中读出两个 矢量和向数据存储器写入一个矢量.因此三个操作数之一,如B或C, 需要来自核心处理器200的另一个源.笫三个操作数可以被放入累加 器512或者RISC寄存器文件413的寄存器之一.为了在核心处理器 200里实现这一点,有两个20位DSP指令的子类(1)由4位说明 符指定的A和B,以及由1位说明符指定的C和D以及(2 )由4位说 明符指定的A和C,以及由l位说明符指定的B和D.
ASSP的指令总是一次从程序存储器中取出40位,位39和19指 示指令类型.取出之后,该指令被分组成每个20位的两部分用于执行 运算.在20位控制指令并行执行的情况下(位39-0,位19-0),两 个20位部分是被同时执行的控制指令.在20位控制指令串行执行的 情况下(位39 0,位19-1),两个20位部分是被连续执行的控制指 令.在20位DSP指令串行执行的愔况下(位39-1,位19-1),两个 20位部分是被连续执行的DSP指令.在40位扩展DSP指令的情况下 (位39-1,位19-0),两个20位部分形成一个被同时执行的扩展DSP 指令.
ASSP 150的ISA被完全预测提供执行预测.在20位RISC控制指 令字和40位扩展DSP指令字中,每个指令有两位指定RISC控制羊元 302里的四个预测寄存器之一,依赖于预测寄存器的情况,指令执行可 以基于其内容有条件地改变.
为了访问数据存储器202中的操作数或者累加器512的寄存器或 寄存器文件413,在DSP扩展指令中使用6位说明符来访问存储器和寄 存器中的操作数.在扩展的DSP指令中使用的六位说明符的MSB(位5 ) 指示访问是存储器访问还是寄存器访问.在优选实施方案中,如果位5 被设置为逻辑一,则其表示搮作数的存储器访问.如果位5被设置为 逻辑零,则其表示操作数的寄存器访问.如杲位5被设置为1,则指定 寄存器的内容(rX其中X: 0-7)被用于获得有效的存储器地址并且由 在指定的rX寄存器之一中指定的两个可能的偏移之一来后修改指针 域。如果位5被设置为0,则位4确定什么寄存器设置有想要的操作数 的内容。如果位4被设置为0,则剩余的指定位3: O控制对寄存器文 件413里的寄存器、或者信号处理羊元300的寄存器的访问,
DSP指令
ASSP 150主要有四类DSP指令
1) 乘法(MULT):控制从存储器连接到数据总线的主乘法器的 执行.
控制舍入,乘法符号
在通过地址寄存器中的类型域指定的矢量数据上运算 第二运算矢量或标量模式的Add、 Sub、 Min、 Max
2) 加法(ADD):控制主加法器的执行 控制,.输入的绝对值控制,限制结果 第二运算Add、 add-sub、 mult、 mac、迈in、 max
3) 极值(MIN/MAX):控制主加法器的执行
控制输入的绝对值控制,通过T寄存器、TR寄存器记录控制的 全局或运行max/min
第二运算add、 sub、 mult、 mac、 min、 max 4) 杂类类型匹配和置换运算
ASSP 150可以以矢量或者标量方式执行这些DSP算法运算.在标 量执行中,减少或合并运算在矢量结果上执行以便生成标量结果.在 DSP应用中通常执行标量运算,其可以被ASSP 150高效地执行,
20位DSP指令字有可以利用RISC控制单元302的寄存器文件413 里的8个地址寄存器(r0-r7 )直接访问数据存储器的4位操作数说明 符,20位DSP指令字的寻址方法是定期地间接地址寄存器将指针指定 到存储器、后修改值、访问的数据类型以及高效执行该算法所需的数 据的置换。所有的DSP指令控制乘法器504A-504B、加法器510A-510C、压缩器506和累加器512、每个信号处理单元300A-300D的功 能单元.
在40位指令字中,从20位指令字的类型扩展分成五类
1) 取代模式寄存器中的控制位的控制和说明符扩展
2) 取代使地址寄存器中的类型说明符的类型扩展
3) 取代使地址寄存器中矢量数据的置换说明符的置换扩展
4) 替换或者扩展在地址寄存器中规定的偏移的偏移扩展
5) 控制信号处理单元300里较低的行以便加速块处理的DSP扩展。
带有20位扩展的40位控制指令还允许在指令和强大的位处理指 令中规定一个大的立即值(16到20位).
通过笫一个20位控制上面功能单元(加法器501A和510B、乘法 器504A、压缩器506 )与来自存储器的数据总线接口以及笫二个20位 控制下面的功能单元(加法器510C和乘法器504B)使用内部或本地 数据作为操作数,利用2x20位DSP指令提供了高效的DSP执行.
通过本发明的硬件结构也改善了高效的DSP执行.这样,效率以 数据被提供给或来自数据存储器202以便供给四个信号处理单元300 以及其中的DSP功能单元的方式被改善.数据总线由包括分别用于X 和Y源操作数的X总线531和Y总线533的总线203以及用于结果写 的Z总线532构成.包括X总线531、 Y总线533和Z总线532的所有
的总线都优选地是64位宽.总线是单向的以便简化物理设计以及减少 数据通过时间.在优选实施方案中,当在20位DSP模式时,如果X和 Y总线都携带从存储器中读出的操作数来在信号处理单元300中并行 执行,则并行加栽域可以仅访问RISC控制单元302的寄存器文件413 里的寄存器.除此之外,四个信号处理单元300A-300D并行地提供可 以进行同时计算的四个并行MAC单元(乘法器504A,加法器510A,以 及累加器512).这使循环计数从执行四个MAC通常需要的4个循环减 少到仅需一个循环。
数据打字、对齐以及置换 本发明为了适合不同的DSP算法结构,提供了灵活的数据打字和 对齐、数据类型匹配以及操作数置换.不同的DSP算法可使用具有变 化位宽,如4位、8位、16位、24位、32位或40位的数据采样.除 此之外,数据采样可以是实数或复数.在本发明的优选实施方案中, 信号处理单元中的乘法器是16位宽并且信号处理单元中的加法器是 40位宽。操作数被通过数据总线X和Y从数据存储器中读入信号处理 单元,在优选实施方案中它们每个都是64位宽。这些位宽的选择考虑 被处理的DSP算法类型、操作数/数据采样、集成电路里的物理总线宽 度,以及实现加法器和乘法器所需的电路面积.为了灵活地处理各种 数据类型,操作数分别被本发明自动调整(也就是对齐)为适合加法 器和乘法器.如果操作数的数据类型不同,则需要类型匹配.本发明 提供自动类型匹配来处理全异的操作数.而且,可能需要操作数的各 种置换,如用常数缩放一个矢量.在这种情况下,本发明提供操作数 的灵活置换.
现在参见困6,说明了用于本发明的操作数的数据类型的通用格 式,在本发明中,操作数的数据类型可以以对于实数类型用N x SR或 者对于复数或虚数数据类型用N x SC的格式表示.N指这个给定操作 数应该被传送到的信号处理单元300的数量.S指示搮作数按位为单位 的大小.R指实数数据类型.C指复数或具有实部和虚部的数字部分的 虚部的数据类型.在本发明的一个实施方案中,乘法单元的大小是16 位宽度并且加法器的大小是40位宽度.在本发明的一个实施方案中, 存储器总线是64位宽度因此被从存储器传送的搮作数有从0到64位 的宽度范围.
对于被乘数,操作数优选地有4、 8、 16和32的乘法位宽度.对 于被减数,减数和加数,40位加法器优选的有具有4、 8、 16、 32和 40的乘法的位宽度.在数据类型是复数操作数的情况下,操作数有实 搮作数和虚搮作数.为了指明选择的搮作数的类型,控制寄存器和指 令集结构的指令包括用于指明被用户选择的操作数的类型的数据类型 域.
现在参见图7,说明了本发明的指令集结构的示例控制寄存器.在 图7中,说明了用于控制从数据存储器202到信号处理单元300的操 作数的选择的存储器地址寄存器700.存储器地址寄存器700说明由指 针rX在指令中指明的多个不同的存储器地址寄存器.每个存储器地址 寄存器700包括类型域701、用于循环和位反转寻址支持的CB位702、 置换域703、第一地址偏移704、第二个O地址偏移705、以及指针706. 类型域701指明被选择的操作数的数据类型.下面详细解释存储器地 址寄存器700的置换域703,
现在参见图8,说明了要被选择作为操作数的一组示例数据类型. 数据类型被编码为如存储器地址寄存器700的控制寄存器里的四位 域,或者是直接从寄存器或存储器位置选择操作数的DSP指令.例如, 对于具有值0000的数据类型域701,操作数有1 x 16实数的数据类 型。作为另一个例子,对于具有值0111的数据类型域701,操作数有 2 x 16复数的数据类型。
作为另一个例子,对于具有值1001的数据类型域701,操作数的 数据类型是2 x 32复数搮作数.数据类型由知道要被信号处理单元300 并行一起处理的运算的数量(也就是数据类型的N )以及採作数的位宽 度(也就是数据类型的S)的用户选择.
如存储器地址寄存器700的控制寄存器中的置换域,以及指令允 许在信号处理单元300之间广播和交换搮作数.暂时返回参见困3,数 据存储器202和信号处理单元300之间的X数据总线531、 Y数据总线 533以及Z数据总线532是64位宽度.因为有四个信号处理单元 300A-300D,时常想要每个通过到数据存储器202的一个存储器访问来 接收操作数.在其他情况下,想要每个信号处理单元300A-300D访问 相同的操作数因此其被广播给每个.
现在参见图9,说明了为信号处理单元选择採作数的一组示例置
换.在优选实施方案中的置换被编码为控制寄存器中的五位域,如存
储器地址寄存器700中的置换域702,或者DSP指令.置换域提供指 明64位数据总线的16位增量如何被耦合到每个信号处理单元300A-300D的功能。在困9中,X数据总线531/Y数据总线533 (在困2-3 中被标记为数据总线203 )的64位可以在上部从右到左被指明为0-15、 16-31、 32-47以及48-63.在数据总线上对于给定置換域的搮作 数的置换在中心而置换类型被列在右边.在中心的数据总线置换被标 记为置换203A-203L,
虽然在各个数据总线上的数据不改变位置,但是在64位数据总线 的左边说明的五位置换域重新安排在各个数据总线上16位数据域(标 记为A、 B、 C和D)如何被每个信号处理单元300A-300D接收,这是 想要的置换类型如何被选择.也就是在最右边的16位列可被认为在置 换上被耦合到SP3 300D,从右边的笫二列可被认为在置换上被耦合到 SP2 300C。从右边的第三列可被认为在置换上被耦合到SP1 300B.最 左边的,从右边的第四列可被认为在置换上被耦合到SPO 300A.
在没有对应于数据总线203A的任何置换的常规访问中,数据总线 的位0-15被指明为D,位16-31被指明为C,位32-47被指明为B, 并且位48-63被指明为A.这对应于困9中的图表的第一行,置换203A 中为00000的置换域,通过为每个信号处理单元300A-300D选择的到 64位数据总线的常规访问,例如,标记为A的16位被辆合到SP3 3001). 标记为D的16位被耦合到SP2 300C.标记为C的16位被耦合到SP1 300B。标记为D的16位被耦合到SPO 300A.
在置换域,最高有效位(困9中的位26 )控制数据总线的上半半 字的位和下半半字的位是否可交换地被榆入信号处理单元300.例如从 信号处理单元300A-300D的观点看来,与置换203A相比,数据总线看 来象数据总线置换203B.在这种情况下组合的数据域A和B与組合数 据域C和D交换作为跨过信号处理单元的置换.置换域的下两位(置 换域702的位25和24 )确定上半半字的数据域A和B如何被跨过数字 处理单元置换.置换域的最低两位(置换域702的位23和22 )确定下 半半字的数据域C和D如何被跨过数字处理单元置换.
考虑例如置换域703是00100的情况,其对应于置换203C.在这 种情况下置换类型是在数据域A和B的上部位的半字上的置换.与置
换203A相比,信号处理单元SP1 300B接收A数据域并且信号处理单 元SPO 300A接收置换203C中的B数据域.
考虑置换域703是00001位模式的另一个例子,其对应于置换 203D.在这种情况下置换类型是在数据域C和D的下部位的半字上的 置换.数据总线域C和D被交换以便置换数据总线的下部位的半字. 与置换203A相比,信号处理单元SP3 300D接收C数椐域并且信号处 理单元SP2 300C接收置换203D中的D数据域.
根据本发明,上面的位和下面的位两组可以被一起置换.考虑置 换域703是00101位模式的情况,对应于置换203E,在这种情况下, 置换类型为上面的和下面的位置换半字因此A和B被交换位置并且C 和D被交换位置.与置换203A相比,信号处理单元SP3 300D接收C 数据域,信号处理单元SP2 300C接收D数据域,信号处理单元SPl 300B 接收A数据域并且信号处理单元SPO 300A接收置换203E中的B数据 域。
在本发明中半字的置换同样可与上面和下面位的交换组合,现在 参见置换203F,置换域703是10100位模式。在这种情况下,上面的 和下面的位相互交换并且在上面位的半字上的置换被执行因此A和B 以及C和D被互换并且因此C和D被在半字上置换。与置换203A相比, 信号处理单元SP3 300D接收B数据域,信号处理单元SP2 300C接收 A数据域,信号处理单元SPl 300B接收C数据域并且信号处理单元SPO 300A接收置换203F中的D数据域.现在参见置換203G,置换域703 是10001位模式.在这种情况下,数据总线域被相互交换并且在下面 位上的半字的置换被执行,导致如置换203G所示的数据总线域的重新 定向.现在参见置换203H,置换域703是10101位模式.在这种愔况 下,数据总线域被相互交換并且在上面位和下面位上的半字的置换发 生,导致如置换203H所示的数据总线域的重新定向。
如置换2031、 203J、 203K和203L所说明的广播也由置换域提供. 例如考虑对应于01001位模式的置换域的置换2031.在这种情况下, 数据域A被广播到每个信号处理单元300A-300D,每个信号处理单元 300A-300D将数据域A从数据总线读出作为操作数.对于具有01100 位模式的置换域的置换203J,数据域B被广播到每个信号处理单元. 对于具有00010位模式的置换域的置换203K,数据域C被广播到每个
信号处理单元300A-300D.对于置换203L,置换域是00011组合并且 数据域D被广播到每个信号处理单元300A-300D.以这种方式,里换 的各种组合以及数据总线上的数据总线域的互相交换可以被选择用于 重新定向到各个信号处理单元300A-300D,
Z输出总线532将结果从执行单元传送回存储器.在Z输出总线 532上的数据在返回存储器时不被置换或者打字,各个信号处理单元 300A-300D依赖于运算类型将合适数量的数振位(16、 32或64 )驱动 到Z输出总线532上.存储器利用由该数据驱动的半字选通脉冲写从Z 输出总线532接收的数据以便指示合法性.
现在参见图10,横截面框困分别说明信号处理单元300A、 300B、 300C以及300D的数据打字和对准器502A、 502B、 502C和502D.数 据打字和对准器502A、 502B、 502C和502D的每个包括对于X总线531 的总线多路复用器1001以及对于Y总线533的总线多路复用器1002 的实例.例如,信号处理单元SPO 300A的数据打字和对准器502A包 括总线多路复用器1001A和总线多路复用器1002A.多路复用器100U 有耦合到X总线531的输入以及耦合到SXO总线1005A的榆出.总线 多路复用器1002A有耦合到Y总线533的输入以及耦合到SYO总线 1006A的输出。控制总线1011被耦合到总线多路复用器1001的每个 实例,其提供每个的独立控制来执行到信号处理单元的为X总线531 选择的数据打字对齐和任何置换.控制信号总线1011被耦合到总线多 路复用器1001A-1001D的每个.控制信号总线1012被輛合到总线多路 复用器1002A-1002D的每个,控制信号总线1011和1012提供每个总 线多路复用器的独立控制来执行到信号处理单元300的分别为X总线 531和Y总线533选择的数据打字对齐和任何置换.来自总线多路复用 器1001和1002的每个的输出SXO总线1005和SYO总线1006耦合到 各个信号处理单元300里的加法器和乘法器的多路复用器中分别用于 X和Y操作数的选挣.
现在参见闺11,说明了分别标记为1001和1002的总线多路复用 器1001和1002的每个的实例.总线多路复用器1001的每个实例包括 多路复用器1101和1102来在每个信号处理单元300里将来自X总线 531的数据分别复用到每个SXA总线550和SXM总线552.总线多路复 用器1002的每个实例包括多路复用器1104和1106来在每个信号处理
单元300里将来自Y总线533的数据分别复用到每个SYA总线554和 SYM总线556.在优选实施方案中,X总线531是64位宽,其所有的 被耦合到多路复用器1101和1102用于选择.在优选实施方案中,Y 总线533是64位宽,其所有的被耦合到多路复用器1104和1106用于 选择.优选实施方案中的多路复用器1101的输出SXA 550以及多路复 用器1104的输出SYA 554每个是40位宽,用于将每个辆合到加法器 Al 510A和加法器A2 510B.优选实施方案中的多路复用器1102的输 出SXM 552以及多路复用器1106的输出SYM 556每个是16位宽,用 于将每个辆合到乘法器M1 504A.对于每个信号处理单元300,输出总 线SXA 550和SXM 552组成在图10中说明的SX总线1005.
控制信号总线1011有耦合到每个多路复用器1101的控制信号总 线1011A和耦合到每个多路复用器1102的控制信号总线1011B用于每 个的独立控制。控制信号总线1012有耦合到每个多路复用器1104的 控制信号总线1012A和耦合到每个多路复用器1106的控制信号总线 1012B用于每个的独立控制.
每个信号处理单元的每个数据打字机和对准器502中的多路复用 器1101和1102接收X总线531的整个数据总线宽度.每个信号处理 单元的每个数据打字机和对准器502中的多路复用器1104和1106接 收Y总线533的整个数据总线宽度.通过每个数据总线的所有位变得 可用,多路复用器1101、 1102、 1104和1106可以执行灵活的数据打 字、数据对齐以及操作数的置换.响应控制信号总线1011和1012上 的控制信号,多路复用器1101、 1102、 1104和1106的每个独立地挑 选将X总线531或Y总线533的哪些位用于其各个信号处理单元300 的各个操作数,将位分别对齐到输出总线SXA 550、 SXM 552、 SYA 554 以及SYM 556上正确的位位置供16位乘法器(Ml 504A)和40位加法 器(Al 510A和A2 510B)使用.
在对齐过程中,多路复用器1101、 1102、 1104和1106还在合适 的位位置插入逻辑0或逻辑1以便正确地对齐和提供符号和保护位扩 展.例如信号处理羊元300A的多路复用器1101A可选择X总线531的 64位的位0-15作为加法器的操作数并且将这些位复用到位位置31-16 并且在位位置0-15中插入零以及在位位置32-39中插入符号扩展位 31,来在SXA总线550上形成40位搮作数.为执行置换,多路复用器
选择X总线和Y总线的64位的哪16位(A、 B、 C或D)被各个信号处 理单元300接收,例如为乘法运算考虑Y总线533上A的广播,对于 每个信号处理单元300的每个多路复用器1106将从Y总线533选择位 0-15 (对应于A)在其各自的SYM总线556上被所有的信号处理单元 300接收.
多路复用器1101、 1102、 1104和1105响应合适的控制信号,自 动将来自数据总线的数据位的数量转换为加法器可以利用的搮作数的 数据位的合适数量.而且响应合适的控制信号,多路复用器1101、 1102、 1104和1105从X总线和Y总线选择合适的数据.为了这样做, 每个信号处理单元中的多路复用器1101、 1102、 1104和1105更象交 叉点交换机一样运行,其中X或Y总线的任何位可以被输出到SXA、 SXM、 SYA或SYM总线的任何位并且逻辑0/1可以被输出到SXA、 SXM、 SYA或SYM总线的任何位,以这种方式,多路复用器1101、 1102、 1104、 1106可以执行置换功能并且相应地对齐位,供40位加法器或16位乘 法器使用,
现在参见图12A-12G,说明了用于本发明的优选的实施方案的16 位乘法器和40位加法器的实和虚的灵活的数据类型的对齐的困表,在 每个图表的每行,在最左边的列说明数据类型,在中间的列说明到 SXA、 SYA、 SXM或SYM数据总线的一个或多个上的输出并且最右边的 列说明核心处理器200的信号处理器300A-300D的等价信号处理配置 以便执行运算。利用变量N来表示矢量数或操作数被使用的次数的矢 量化格式说明了数据类型。当变量N是1时,预计将用一组X和Y操 作数执行一个运算.当变量N是2时,预计将在两组X和Y操作数上 在一个周期里一起执行两个运算.在任何情况下,两个操作数数据类 型需要被规定并且如果不匹配,也就是数据类型不匹配,则需要发生 数据类型匹配,这将在下面参考困13A-13C、 14和15讨论,
例如数据类型lx4R、 lx8R、 lxl6R、 lx32R、 2x4R、 2x8R、 2xl6R、 1X4C、 lx8C、 lxl6C、 lx32C、 2x4C、 2x8C以及2xl6C都可以通过被 打包成4个或8个16位域越过64位X和/或Y总线被并行加栽到信号 处理单元.如果X和Y总线的64位都被用于在相同的周期加栽两个操 作数,则数据类型2x32R、 lx40R以及lx40C可以在一个周期中被一起 加戴到信号处理单元中.数据类型2x32C或者高阶(higher order)
需要多个周期来越过64位X和/或Y总线加栽操作数.除此之外,32 或40位操作数的上半字(也就是16位)可被用于匹配例如16位乘法 器.在这种情况下较低的位可作为对运算无意义而被丢弃.半字的其 他位宽度可以被提供来匹配给定位宽度的其他硬件组件.利用半字, 数据类型2x32R、lx40R以及lx40C允许搮作数被加栽到更少的信号处 理单元并且避免了否则可能需要的进位路径.
现在参见图12A,说明了将数据类型lx4R、 lx8R、 lxl6R、 lx32R 以及lx40R对齐到40位加法器中的示例困表.除了 40位数据类型 lx40R之外,在每种情况下的符号位都位于40位数据字的位31并且 被耦合到40位加法器.在每种情况下的数据域来自X或Y总线上的存 储器或者来自离开不同总线的寄存器.
来自X或Y总线的lx4R数据类型的四位数据域被对齐到位位置 28-31,其符号位在SXA或SYA总线的位31.符号位被包括作为4、 8、 16或32位字的搮作数的最高有效位(MSB).零被打包或者插入SXA 总线或者SYA总线的位0-27的最低有效位(LSB)以便填满.包含扩 展符号位31的保护位,被分配给SXA或SYA的位32-39.以这种方式, lx4R数据类型被转换为40位字,由信号处理单元300中的40位加法 器之一用于加法、减法或最小/最大运算,
来自X或Y总线的lx8R数据类型的8位数据域被对齐到SXA或SYA 的位24-31,在位31是符号位.零被打包或者插入位0-23的LSB.包 含扩展符号位31的保护位,被分配到位32-39.以这种方式,lx8R数 据类型被转换为40位字,由信号处理单元300中的40位加法器之一 用于加法、减法或最小/最大运算.对于lxl6R数据类型,来自X或Y总线的16位数据域被对齐到SXA 或SYA总线上的位16-31,在位31包括符号位.零被打包或者插入位 0-15的LSB而保护位被分配到位32-39.以这种方式,lxl6R数据类 型被转换为40位字,由信号处理单元300中的40位加法器之一用于 加法、减法或最小/最大运算.
对于lx32R数据类型,来自X或Y总线的32位数据域被对齐到位 0-31,在位31包括符号位.包含扩展符号位31的保护位被一起打包 成位32-39以便使40位字完整,以这种方式,lx32R数据类型被转换 为40位字,由信号处理单元300中的40位加法器之一用于加法、减
法或最小/最大运算.
对于lx40R数据类型,来自X或Y总线的所有40位数据域被分配 到SXA或SYA总线的位0-39,因此信号处理单元的一个加法器可以每 次利用数据域的所有40位执行加法、减法或最小/最大运算.
如前面所谈论的,多路复用器1101和1104促进了实数数据类型 到40位域的转换供信号处理单元里的40位加法器使用.这些多路复 用器的每个将数据域转换到包括符号位的合适的位位置并且将零填充 到未使用的LSB并且按SXA总线550和SYA总线554所需要的分配保 护位,
现在参见图12B,说明了将数据类型lx4R、 lx8R、 lxl6R、 lx32R 以及lx40R对齐到16位字用于16位乘法器的示例田表.对于lx4R数 据类型,来自X或Y总线的四位数据域的位0-3被分别对齐到SXM或 SYM总线的位位置12-15.零被打包或者插入SXA总线或者SYA总线的 位0-11的低有效位(LSB)以便填满.以这种方式,lx4R数据类型的 一个数据采样被转换为16位字,由信号处理单元300中的16位乘法 器之一用于乘法或MAC运算.
对于lx8R数据类型,来自X或Y总线的8位数据域的位0-7分别 位于SXM或SYM的位8-15,零被打包到位0-7.以这种方式,lx8R数 据类型被转换为16位字,由信号处理单元300中的16位乘法器使用.
对于lxl6R数据类型,来自X或Y总线的16位数据域的位0-15 被对齐到SXM或SYM总线的位0-15里,因此一个信号处理单元可以每 次乘以所有的16位.
对于lx32R数据类型,来自X或Y总线的数据域的位0-32被分成 两个16位的半字.位16-31被对齐到信号处理单元300的SXM或SYM 总线的位0-15,在一个实施方案中,操作数的位0-15的下半字因为 无意义所以被丢弃.在这种情况下, 一个信号处理单元被利用来处理 每个操作数的上半字的信息的16位.在替代实施方案中,位0-15的 低半字可以被对齐到另一个信号处理单元300的SXM或SYM总线的位 0-15.在这种情况下,两个信号处理单元被利用来为每个半字乘以信 息的16位并且低阶信号处理单元有到高阶信号处理单元的进位信号路 径以便处理32位数据域。但是,通过利用信号处理单元之间没有进位 信号路径的实施方案,减少了处理时间.
对于lx40R数据类型,在一个实施方案中来自X或Y总线的40位 数据域的位0-39通过丢弃掉8个最高有效位(MSB)以及16个最低有 效位(LSB)被减少到16位半字。在这种情况下,原始搮作数的40位 的位16-31被选择作为一个信号处理单元的乘法採作数.
如前面所谈论的,多路复用器1102和1106促进了实数数据类型 到16位域的转换,供信号处理单元里的16位加法器使用.这些多路 复用器的每个将数据域转换到合适的位位置,包括按照SXM总线 552A/552B和SYM总线556A/556B所需要的,将零填充到未使用的 LSB。多路复用器1102和1106的每个为信号处理单元300A-30OD的 每个中的各个乘法器执行置换运算、对齐运算以及零插入.
现在参见12C,说明了为一个或多个40位加法器将复数数据类型 lx4C、 lx8C、 lxl6C、 lx32C以及lx40C对齐到一个或多个40位字中 的示例图表,
对于复数数据类型,至少两个信号处理单元被用于执行实项和虚 项的复数计算.对于40位加法器,典型地一个信号处理单元接收复数 数据类型操作数的实数部分而另 一个信号处理单元接收虚数部分。
对于lx4C数据类型,实数域的位0-4被分别对齐到笫一个40位 字的位28-31,符号位在位位置31.保护位被加到位域32-39而零被 插入第一个40位字的位0-27。类似的,虚数域的位0-4被分别对齐 到笫二个40位字的位28-31,符号位在位位置31.保护位被分配到笫 二个40位字的位32-39而零被打包到位0-27.以这种方式,lx4C复 数数据类型被转换成两个40位字作为两个信号处理单元中两个40位 加法器的搮作数.
对于lx8C数据类型,来自X或Y总线的实数域的位0-7被位于在 SXA或SYA总线之一上的第一个40位搮作数的位位置24-31,符号位 在位位置31。保护位被分配到笫一个40位搮作数的位位置32-39而 零被打包到位0-23.来自X或Y总线的复数数据域的位0-7被对齐到 在SXA或SYA总线中另一条上的笫二个40位字的位24-31,符号位在 位位置31。已经被初始化为零的保护位被分配到位32-39而零被打包 到第二个40位搮作数的位0-23,以这种方式,lx8C复数数据类型被 转换成两个40位字作为两个信号处理单元中两个40位加法器的搮作 数.
对于lxl6C数据类型,来自X或Y总线的实数域的位0-16被对齐 到在SXA或SYA总线之一上的笫一个40位搮作数的位位置16-31,符 号位在位位置31.保护位被分配到笫一个40位操作数的位位置32-39 而零被打包到位(Kl5.类似的,对于SXA或SYA总线中另一条上用于 第二个40位搮作数来自X或Y总线的虚数数椐域的位0-16被对齐到 位16-31,包括位31的符号位.保护位被分配到SXA或SYA总线上第 二个40位操作数的位32-39而零被打包到位0-15.
对于lx32C数据类型,32位实数的位0-31被分别对齐到在SXA 或SYA总线之一上的第一个40位操作数的位0-31,符号位被包括在 位位置31.保护位被分配到第一个40位操作数的位位置32-39.类似 的,虚数数据域的位0-31被对齐到SXA或SYA总线中另一个上的笫二 个40位操作数的位位置0-31,符号位是位位置31.保护位被插入到 第二个40位搮作数的位32-39.因此,lx32C数据类型被转换成两个 40位操作数由两个信号处理单元300的两个40位加法器用于在一个周 期里处理虚项和实項两者。
对于lx40C复数数据类型,来自X或Y总线的实数域的位0-39被 对齐到SXA或SYA总线之一上笫一个40位操作数的位0-39供一个信 号处理单元使用。来自X或Y总线的虚数域的位0-39被对齐到SXA或 SYA总线中的另一条上的第二个40位操作数的位位置0-39供笫二个 信号处理单元使用,因此两个信号处理单元被用于在一个周期里处理 两个40位数据域.
现在参见12D,说明了为四个40位加法器将复数数据类型2xl6C、 2x32C以及2x40C对齐到四个40位字中的示例图表.在这种情况下, 具有灵活位宽度的两组操作数(DATA1和DATA 2)在相同周期里被引 入。
对于2xl6C复数类型,来自X或Y总线的四个16位数据域被对齐 到四个40位操作数,每个信号处理单元300A-300D—个.来自X或Y 总线的DATA 1的实数域的位0-15被分别对齐到对于第一个信号处理 单元在SXA或SYA总线之一上的第一个40位操作数的位16-31,包括 在位位置31的符号位.来自X或Y总线的DATA 1的复数域的位0-15 被分别对齐到对于第二个信号处理单元的在SXA或SYA总线中另一条 上的第二个40位操作数的位16-31,包括在位位置31的符号位.来
自X或Y总线的DATA 2的实数域的位0-15被分别对齐到对于第三个 信号处理单元在SXA或SYA总线中另一条上的笫三个40位操作数的位 16-31,包括在位位置31的符号位,来自X或Y总线的DATA2的复数 域的位0-15被分别对齐到对于第四个信号处理单元的在SXA或SYA总 线中另一条上的笫四个40位操作数的位16-31,包括在位位置31的 符号位。零被打包到如困12D所示的四个SXA或四个SYA总线上的每 个40位操作数中的位置0-15并且保护位被分配到位32-39。因此, 2xl6C复数数据类型被对齐到四个40位操作数由四个信号处理单元中 的四个40位加法器使用,
2x32C复数数据类型和2x40C复数数据类型类似于2x16数据类型 被对齐到四个操作数但是有不同的位对齐和零插入或者保护位的分 配。这些位对齐和零打包/插入以及保护位的分配如图12D中说明的所 示。
以这种方式,其中S由加法器的宽度所限制的两个2xSC复数数据 类型,可以被对齐到四个操作数中,供四个信号处理单元300中的四 个加法器用于在一个周期中处理复数数据类型。
现在参见困12E,说明了为一个或多个16位乘法器将复数数据类 型lx4C、 lx8C、 lxl6C、 lx32C以及lx40C对齐到一个或多个16位字 中的示例图表.
对于lx4C复数数据类型,如图12E所示,来自X或Y总线的实数 域的位0-3被分别对齐到SXM或SYM总线之一上的笫一个16位操作数 的位12-15。来自X或Y总线的虚数域的位0-3被分别对齐到SXM或 SYM总线中另一条上的第二个16位操作数的位12-15.笫一个和笫二 个16位操作数的每个的位0-11被用零打包.以这种方式,lx4C复数 数据类型的每个复数项被转换成两个16位字作为两个信号处理单元中 两个16位乘法器的操作数.lx8C数据类型和lxl6C数据类型如lx4C 一样被类似地转换为两个16位操作数,但是有如困12B中说明和显示 的不同的位对齐.困12E中的复数数据类型lx4C、 lx8C以及lxl6C 利用两个信号处理单元并且将其各个数据位域对齐到两个16位字,供 在一个周期中两个信号处理单元中的两个16位乘法器使用.
对于操作数具有位0-31的lx32C复数数据类型,在一个实施方案 中,每个操作数的实部和虚部的位16-31的上半字被选择并且从总线
SXM或SYM复用到两个16位乘法器中,而下半字被丢弃.在替代实施 方案中,实部和虚部的上半字和下半字被复用到四个16位乘法器中, 用于与从下半字乘法器到上半字乘法器的进位相乘.
对于操作数具有位0-39的lx40C复数数据类型,在一个实施方案 中,每个操作数的实部和虚部的位16-31的中间半字被选择并且从总 线SXM或SYM复用到两个16位乘法器中,而上面的位32-39以及下半 字位0-15被丢弃.在替代实施方案中,为复数数据类型的实部和虚部, 该字被多路复用器利用从低位乘法器到高位乘法器的进位从多个乘法 器中分离。
现在参见12F,说明了为四个16位乘法器将复数数据类型2x32C 或2x40C以及2xl6C对齐到四个16位字中的示例图表。
对于2x32C数据类型,对于第一个信号单元,X或Y总线上笫一个 操作数的实数(RHWu)的上半字的位0-15被分别对齐到SXM或SYM总 线之一上笫一个16位操作数的位0-15,并且对于第一个信号单元,X 或Y总线上第二个操作数的实数域的上半字的位0-15被分别对齐到 SXM或SYM总线中另一条上的第二个16位操作数的位0-15.对于笫二 个信号单元,X或Y总线上第一个操作数的虚数的上半字(IHWu )的位 0-15被对齐到另一条SXM或SYM总线上的第三个16位操作数的位0-15,并且对于第二个信号单元,X或Y总线上笫二个操作数的虚数域的 上半字的位0-15被分别对齐到SXM或SYM总线中另一条上的第四个16 位操作数的位0-15.因此,2x32C复数数据类型使用两个信号处理单 元并且将32位实数和虚数域转换为16位搮作数,供两个信号处理单 元中的16位乘法器使用,
对于2xl6C数据类型,两个复数操作数可以被指定并且作为一个 通过64位数据总线复用到两个乘法器.在这种情况下,对于一个信号 处理单元,来自X或Y总线的笫一个操作数的实数域的位0-15被对齐 到在SXM或SYM总线之一上的第一个16位操作数的位0-15,而对于 笫二个信号处理单元,X或Y总线上的笫一个操作数的虚数的位0-15 被对齐到在SXM或SYM总线中另一条上的第二个16位操作数的位0-15.对于第一个信号处理单元,X或Y总线上的笫二个操作数的实数域 的位0-15被对齐到第三个16位操作数的位0-15,并且对于第二个信 号处理单元,X或Y总线上的笫二个採作数的虚数域的位0-15被对齐
到SXM或SYM总线中另一条上的笫四个16位操作数的位0-15.因此, 2xl6C数据类型使用四个信号处理单元来在一个周期中处理四个16位 乘法器中四个16位操作数的每个.
现在参见图13A、 13B和13C,说明了用于两个搮作数的类型匹配 的通用规則, 一般的,数据类型匹配指将两个不同数据类型的两个操 作数匹配到一起,因此其可以被给定的数字信号处理运算正确地处 理.在图13A中,笫一个搮作数,操作数l,有N,xS,实数的数据类型 并且第二个操作数,操作数2,有N2xS2实数的数据类型.两个实数数 据类型的操作数类型匹配的通用规则是确定并且选择N,或者N2的最大 值以及S,或者S2的最大值,替代的,可以确定并且丟弃N,或者N2的最 小值以及S,或者S2的最小值来提供操作数类型匹配.操作数类型匹配 提供了可以处理操作数的信号处理单元的数量(N,或者N,的最大值) 以及两个操作数的位宽(S,或者S2的最大值)的指示.对于不同的搮 作数类型,信号处理单元的乘法器和加法器被提供两个不同操作数类 型的最佳操作数类型匹配,以便获得结果.来自全异操作数上执行的 运算的输出结果采用匹配的数据类型形式.
现在参见图13B,第一个操作数,操作数l以及笫二个操作数,操 作数2都是复数类型,两个复数类型的操作数的操作数类型匹配的通 用规则类似于匹配两个实数数据类型但是导致复数数据类型.复数类 型的操作数数据类型匹配是确定并且选择N'或者N2的最大值以及S,或 者S2的最大值。
现在参见图13C,第一个操作数,操作数l是实数类型而第二个操 作数,操作数2是复数类型.用于实数类型和复数类型的操作数类型 匹配的通用规则是选摔有复数类型匹配的N,或者N,的最大值以及S,或 者S2的最大值.N,或者N2的最大值表示处理实部或虚部所需的信号处 理单元的数量,并且S,或者S2的最大值表示要被对齐到信号处理单元 的操作数的位宽度.在数据打字机和对准器502的每个实例中的多路 复用器1101、 1102、 1104和1106,响应合适的多路复用器控制信号 来执行来自X总线531或Y总线533的操作数1和操作数2之间的数 据类型匹配,置换和对齐被各个核心处理器200自动选择以便通过总
理单元中.
除了自动数据类型匹配之外,本发明响应要被执行的运算(ADD、 SUB、 MULT、 DIVIDE等)、功能单元(加法器和乘法器)的数量以及 在每个信号处理单元300A-300D中其各个位宽度、两个操作数的自动 数据类型匹配的位宽度、以及是否涉及实数或复数数据类型以及是否 要执行标量或矢量功能来操作地匹配数据类型.信号处理单元300A-300D的每个有两个乘法器和三个加法器.在本发明的优选实施方案 中,每个乘法器是16位宽并且每个加法器是40位宽.在设置标称数 据类型并且读取新数据作为新操作数并且重复乘法、加法或者其他类 型的信号处理运算之后,相同数据类型的多个操作数可以被简单地处 理。
现在参见图14、 15A和15B,说明了显示本发明提供的数据类型 可操作匹配的示例图表.在困14、 15A和15B的每个中,第一个操作 数的数据类型被沿上面的行指示并且笫二个操作数的数据类型被沿最 左边的列指示,在每个困中最上边的行和最左边的列之间的矩阵指示 由本发明的实施方案提供的可操作匹配.
在图14中,说明了显示用于信号处理单元的乘法器进行的乘法运算的 数据类型匹配的示例图表.具有四位和八位数据类型的操作数在图14 中没有说明,其被理解为这些数据类型被转换成16位操作数.在图14 中,对于其中描述的实施方案空的单元不被允许运算.但是,如果信 号处理单元的数量从4扩展并且乘法器的数据位宽度从16位扩展,则 对于其他操作数数据类型组合额外的运算可以被执行.在图14的每个 完全(completed)的单元中,运算对于矢量运算需要两个周期并且对 于实数数据类型标量运算需要三个周期.因为两个值,实数和虚数总 是保留作为结果,因此复数操作数与另一个操作数的标量乘法不被执 行。每个完全的单元指示用于执行乘法运算的信号处理单元的数量. 例如,lxl6C操作数和lxl6C搮作数的乘法指示利用了四个信号处理 单元.在复数乘法的情况下,操作数是(rl+jil)和(r2+ji2),其中 rl和r2是实项并且il和i2是虚项.复数乘法的结果对于实项是 [(rlxr2) -(ilxi2)]并且对于虚项是[(rlxi2) +(r2xil)].因此, 四个信号处理单元在相同周期里一起处理圃括号的乘法.实項和虚项 的剩余的加法和减法运算则分别在下一个周期中在两个信号处理单元 中一起被执行以便获得最终结果.考虑另一个例子,lxl6R操作数与lx32C操作数的乘法.在这种情况下,困14指示利用四个信号处理单 元。操作数是rl和(r2+ji2 ),其中rl和r2是实数并且i2是虚数. 运算结果对于结果的实数部分将是[(rlxr2 )]并且对于结果的虚数部 分将是[(rlxi2)].因为复数搮作数是32位宽,实项和虚项被分为 半字.因此运算变成对于实部是[(rlxr2UHW) + (rlx"LHW)]以及虚 部是[(rlxi2隨)+(rlxi2LHW),其中UHW与LHW分别是每个值的 上半字与下半字.因此,四个信号处理单元的每个在一个周期一起执
行圆括号的乘法而项的加法在下一个周期里在两个信号处理单元中被 执行。
现在参见图15A,说明了显示用于由信号处理单元的加法器进行的 标量加法的数据类型匹配的示例图表.在图15A中没有说明具有4和8 位的数据类型的操作数,被理解为这些数据类型被转换为16位操作 数.注意因为两个值,实数和虚数,总是导致涉及复数操作数的运算 的事实,利用复数操作数没有执行标量加法.在图15A中,对于其中 所述的实施方案空的单元不被允许运算.但是,如果信号处理单元的 数量从4扩展并且加法器的数据位宽度从40位扩展,则对于其他操作 数数据类型组合额外的运算可以被执行.在图15A的每个完全的单元 中,如果两个操作数很容易可用,则标量加法运算可以在一个周期里 完成。每个完全的单元指示用于执行标量加法运算的信号处理单元的 数量。
考虑例如lx32R操作数和2xl6R操作数,其中rl是32位宽的笫 一个操作数并且r2和r3是每个16位宽的笫二组操作数。困15A的困 表指示利用两个信号处理单元.标量结果是(rl+r2)+(rl+r3)].两 个信号处理单元利用其两个40位加法器在一个周期里执行圆括号中的 加法运算而在两个信号处理单元之一中的第二个加法在第二个周期里 合并中间结果.
现在参见困15B,说明了显示用于由信号处理单元的加法器进行的 矢量加法的数据类型匹配的示例图表,在图15B中没有说明具有4和8 位数据类型的操作数,被理解为这些数据类型被转换为16位操作数. 在图15B中,对于其中所述的实施方案,空的单元不被允许运算.但 是,如果信号处理单元的数量从4扩展并且加法器的数据位宽度从40 位扩展,则对于其他操作数数据类型组合,额外的运算可以被执行.在图15B的每个完全的单元中,如果两个操作数很容易可用,则矢童 加法运算可以在一个周期里完成.每个完全的单元指示用于执行矢量 加法运算的信号处理单元的数量.具有复数数据类型的操作数可被用 于执行矢量加法.
考虑例如lxl6R操作数和lx32C搮作数,其中rl是16位宽的笫 一个操作数并且r2和i2是每个32位宽的第二操作数.困15B的图表 指示利用两个信号处理单元.实数lxl6R搮作数被转换成具有零虚部 的lxl6C复操作数。在一个信号处理单元中,实部被加在一起执行 (rl+r2),而在另一个信号处理单元中,虚部i2被加到0执行(0+i2 ). 矢量结果是[(rl+r2)]作为实部并且i2作为虚部,信号处理单元利 用40位加法器执行圃括号中的加法运算.
考虑另一个例子lxl6C操作数和lx32C搮作数。对于lxl6C操作 数,rl和il分别是第一个操作数的实部和虚部,每个是16位宽,并 且r2和i2是第二个操作数的实项和虚项,每个是32位宽。困15B的 图表指示利用两个信号处理单元。矢量结果是[(rl+r2)]作为实分量 并且[(il+i2)]作为虚分量。两个信号处理单元利用40位加法器执 行圆括号中的加法运算.
现在参见图16,框困说明对于每个信号处理单元的每个数据打字 机和对准器里包括的总线多路复用器的控制信号生成.为每个数据打
来执行自动数据打字和对齐以及用户选择的置换.对于每个数据打字 机和对准器中的X总线,总线多路复用器的多路复用器1101和1102 的控制信号将选择用于一个操作数到每个信号处理单元中的数据类型 和对齐.对于每个数据打字机和对准器中的Y总线,总线多路复用器 的多路复用器1104和1106的控制信号将选择用于第二个操作数到每 个信号处理单元中的数据类型和对齐.响应对与来自控制寄存器或指 令本身的每个採作数相关的数据类型域解码,通过每个信号处理器中 的总线多路复用器的控制提供自动数据类型匹配.来自每个信号处理 单元的每个总线多路复用器的结果操作数输出如困5B所示被耦合到每 个信号处理单元中的乘法器504A的多路复用器514A、加法器510A的 多路复用器520A、以及加法器510B的多路复用器520B.
在困16中, 一个或多个DSP指令1600被辆合到指令预解码器1602
中.指令预解码器1602可包括一个或多个控制寄存器("CR" ) 1604, 其包括数据类型域和置换域以便通知预解码器1602操作数的数据类型 以及其如何被读到每个信号处理单元中(SPO 300A、SP1 300B、SP2 300C 和SP3 300D).直接或间接地通过一个或多个控制寄存器1604A的一 个或多个DSP指令1600,指示两个数据类型域中两个操作数的每个数 据类型以及两个置换域中数据总线的任何置换.指令预解码器1602通 过为每个操作数比较两个数据类型自动确定最佳数据类型匹配,指令 预解码器1602还读取每个操作数的置换域.响应每个操作数的置换域 和数据类型,指令预解码器1602生成预解码的控制信号1606用于数 据打字多路复用控制。预解码的控制信号1606因此用于每个信号处理 单元300中的每个数据打字机和对准器502 (数据打字机和对准器 502A、 502B、 502C和502D)中的总线多路复用器1001和1002的控 制。这些预解码的控制信号被耦合到每个信号处理单元的最终解码器 1610A中,以便为每个信号处理单元300中的每个数据打字机和对准 器502的每个总线多路复用器1001和1002分别生成多路复用器控制 信号1011和1012,指令预解码器1602还为每个信号处理单元300的 其他多路复用器1620B、 1620C到1620N生成预解码的控制信号,最终 解码器1610B、1610C到1610N接收预解码控制信号来为每个信号处理 单元300的每个多路复用器1620B、1620C到1620N生成多路复用器控 制信号,以这种方式,X总线和Y总线上的操作数可以被对齐、匹配、 置换和选择用于执行数字信号处理运算.
如本领域的技术人员所认识到的,本发明有许多优点.本发明的
一个优点是用于不同数字信号处理应用的各种数据类型的操作数可以 在本发明的应用专用信号处理器中被处理.本发明的另一个优点是提 供了自动数据类型匹配.本发明的另一个优点是通过使用指令或控制 寄存器中的置换域,操作数可以被自动置换,因此不需要额外的指令 来执行到信号处理器的想要的置换。本发明的另一个优点是信号处理 单元的数据类型功能可以通过增加額外的信号处理单元被容易地扩 展.
因此描述了本发明的优选实施方案.虽然在附困中已经描述和显 示了本发明的某些示例实施方案,应该理解这些实施方案对于本发明 上仅是说明性的并且不是限制性的,并且本发明不限于显示和描述的
特定的结构和方案,因为对于本领域的普通技术人员可以有各种其他 的修改.例如,数据打字和对齐的本发明已经参考用于从存储器访问 操作数的存储器访问寄存器被描述,但是搮作数可以从寄存器被访问 并且还可以通过本发明被适当地数据打字和对齐.虽然在本发明的优
选实施方案中利用了 16位乘法器,具有更大位宽的乘法器也可以被利 用并且提供更大的数据类型灵活性,除此之外,数据存储器和信号处 理单元之间的数据总线的大小可以从例如64位增加到80位并且提供 更大的数据类型灵活性.而且,可以提供额外的信号处理单元因此也 可以满足更大位宽的操作数或更大量的操作数在一个周期中一起处 理。
除此之外,本发明可以被在硬件、软件、固件或其组合中实现并 且在系统、子系统、组件或其子组件中被利用.当在软件中实现时, 本发明的元件基本上是用于执行必要的任务的代码段。程序或代码段 可被存储在处理器可读介质中或者被传输介质或通信链路上的栽波中 具体化的计算机数据信号发送。"处理器可读介质"可包括可以存储 或发送信息的任何介质。处理器可读介质的例子包括电路、半导体存 储器设备、R0M、闪存、可擦除ROM (ER0M)、软盘、CD-R0M、光盘、 硬盘、光纤介质、射频(RF)链路等。计算机数据信号包括可以在如 电子网络信道、光纤、空气、电磁、RF链路等传输介质上传播的任何 信号.代码段可以通过如互联网、内联网等的计算机网下栽.在任何 情况下,本发明不应该被解释为由这些实施方案所限制,而应该根据 所附权利要求被解释.
权利要求
1.一种在数字信号处理器中的方法,所述方法包括接收数字信号处理(DSP)指令以及与DSP指令相关的灵活数据类型指示器;解码灵活数据类型指示器,以便指示至少一个操作数具有复数数据类型;读取由所述灵活数据类型指示器规定的、包含实数值和虚数值的一对存储器位置,所述一对存储器位置是第一个操作数;读取至少再多一个存储器位置作为第二个操作数;以及响应所述灵活数据类型指示器,利用第一个操作数和第二个操作数在所述的数字信号处理器中执行DSP运算,以便获得具有实数值和虚数值的结果。
2. 如权利要求l的方法,其中DSP运算是乘法、加法、极值和空 操作的运算的组中的一种运算。
3. 如权利要求l的方法,其中第二个操作数是实数值.
4. 如权利要求1的方法,其中笫二个操作数包括实数值和虚数值。
5. 如权利要求l的方法,还包括执行DSP运算之前,将第一个操作数的复数数据类型与第二个操 作数的数据类型加以匹配.
6. 如权利要求5的方法,其中第二个操作数的数据类型是复数数 据类型。
7. 如权利要求5的方法,其中第二个操作数的数据类型是实数数 据类型.
8. 如权利要求5的方法,还包括执行DSP运算之前,将第一个操作数和笫二个操作数向多个数字 信号处理单元置换.
9. 如权利要求l的方法,还包括执行DSP运算之前,将第一个操作数和第二个搮作数向多个数字 信号处理单元置换.
10. —种利用复数数据类型操作数执行数字信号处理(DSP)运算 的方法,所述方法包括在数字信号处理器集成电路中接收复数DSP指令,以便处理一个或多个复数操作数;响应第一灵活数据类型指示器,为复数DSP指令提取具有实数值 和虚数值的第一个操作数;响应笫二灵活数据类型指示器,为所述的复数DSP指令提取笫二 个操作数;将第一个操作数的第一数据类型与第二个操作数的第二数据类型 进行比较;如果所述比较确定笫一个操作数的第一数据类型与笫二个操作数 的第二数据类型匹配,就利用第一个操作数和笫二个操作数在所述的数字信号处理器集成 电路中执行所述的复数DSP指令.
11. 如权利要求10的方法,还包括如果所述比较确定笫 一个操作数的第 一数据类型与笫二个操作数 的第二数据类型未匹配,就执行类型匹配以寻找第一个操作数和第二个搮作数的匹配的数据 类型,以及,响应找到第一个操作数和第二个操作数的匹配的数据类型,将第 一个和第二个操作数根据匹配的数据类型一起对齐,并利用已对齐的 第一个和第二个操作数来执行所述的复数DSP指令。
12. 如权利要求ll的方法,还包括对于多个信号处理器,确定第一个搮作数的置换、第二个操作数 的置换、或笫一个操作数和笫二个搮作数两者的置换,从而执行所述 的复数DSP指令.
13. 如权利要求ll的方法,其中笫一个操作数具有复数数据类型NlxSl,这里Nl为矢重的第一数 量而SI为第一比特宽度,第二个操作数具有数据类型N2xS2,这里N2为矢量的笫二数重而 S2为第二比特宽度,并且通过选择Nl或N2的最大值以及SI或S2的最大值作为匹配的数 据类型而找到匹配的数据类型.
14. 如权利要求ll的方法,其中, 笫一个操作数具有复数数据类型NlxSl,这里Nl为矢量的笫一数 量而Sl为笫一比特宽度,笫二个操作数具有数据类型N2xS2,这里N2为矢量的笫二数重而 S2为第二比特宽度,并且通过选择和丢弃Nl或N2的最小值以及Sl或S2的最小值以便匹 配的数据类型保留而找到匹配的数据类型.
15. 如权利要求10的方法,其中, 第二个操作数具有用于复数DSP指令的实数值.
16. 如权利要求10的方法,其中, 第二操作数具有用于复数DSP指令的实数值和虚数值.
17. 如权利要求10的方法,其中,DSP指令包括笫一个操作数的 第一灵活数据类型指示器以及第二个搮作数的第二灵活数据类型指示 器,
18. 如权利要求10的方法,其中,DSP指令规定至少一个用来读 取的寄存器,以获取笫一个操作数的第一灵活数据类型指示器以及第 二个操作数的笫二灵活数据类型指示器.
19. 如权利要求12的方法,其中,第一个操作数的实数值和虚数 值都置换到所述的多个信号处理器。
20. 如权利要求12的方法,其中,第二个操作数的实数值和虚数 值都置换到所述的多个信号处理器。
21. 如权利要求12的方法,其中,第二个操作数的实数值被置换 到所述的多个信号处理器。
22. 如权利要求13的方法,其中,第二数量的矢量都是有实数值 的实数矢量.
23. 如权利要求13的方法,其中,第二数量的矢重都是有实数值 和虚数值的复数矢量.
24. 如权利要求13的方法,还包括对于多个信号处理器,确定笫一个操作数的置换、第二个操作数 的置换、或第一个操作数和笫二个操作数两者的置换,从而执行复数 DSP指令.
25. 权利要求14的方法,其中,第二数重的矢量都是有实数值的 实数矢量.
26. 如权利要求14的方法,其中,第二数重的矢量都是有实数值 和虚数值的复数矢量.
27. 如权利要求14的方法,还包括对于多个信号处理器,确定第一个操作数的置换、第二个操作数 的置换、或第一个操作数和第二个操作数两者的置换,从而执行复数 DSP指令.
28. —种在数字信号处理器集成电路中执行复数数字信号处理 (DSP)指令的方法,所述方法包括在数字信号处理器集成电路中接收复数DSP指令,以便处理一个 或多个复数操作数;提取笫一数据类型的第一个操作数,具有复数数据类型的该第一 个操作数具有实数值和虚数值;提取笫二数据类型的笫二个操作数;而且利用笫一个操作数和第二个操作数在所述的数字信号处理器集成 电路中执行一个DSP运算来获得结果,该结果具有复数数据类型的实 数值和虚数值。
29. 如权利要求28的方法,其中DSP运算是乘法、加法、极值和 空操作的运算的组中的一种运算。
30. 如权利要求28的方法,其中第二个操作数是实数数据类型, 并具有不带虚数值的实数值,
31. 如权利要求28的方法,其中笫二个操作数是复数数据类型, 并具有实数值和虚数值。
32. 如权利要求28的方法,还包括 在执行所述DSP运算之前,确定第一个操作数的置换、笫二个操作数的置换、或笫一个操作 数和第二个操作数两者的置换,并且,将第一个操作数、第二个操作数、或第一个操作数和第二个操作数两者的示例进行置换,从而执行DSP运算.
33. 如权利要求28的方法,还包括 执行DSP运算之前,确定第一个操作数和第二个操作数的匹配的数据类型,以及 响应所述的匹配的数据类型,将笫一个和笫二个操作数对齐,而且利用已对齐的第一个和第二个操作数执行DSP运算.
34. 如权利要求33的方法,其中笫一个操作数具有复数数据类型NlxSl,这里Nl为矢量的笫一数 量而Sl为第一比特宽度,第二个操作数具有数据类型N2xS2,这里N2为矢量的笫二数量而S2为笫二比特宽度,并且通过选择Nl或N2的最大值以及Sl或S2的最大值作为匹配的数据类型而找到匹配的数据类型.
35. 如权利要求33的方法,其中,第一个操作数具有复数数据类型NlxSl,这里N1为矢量的第一数 量而Sl为第一比特宽度,第二个操作数具有数据类型N2xS2,这里N2为矢量的笫二数量而 S2为第二比特宽度,并且通过选择和丢弃Nl或N2的最小值以及Sl或S2的最小值以便匹配的数据类型保留而找到匹配的数据类型.
36. 如权利要求32的方法,其中,第一个操作数的实数值和虚数值都置换到多个信号处理器*
37. 如权利要求32的方法,其中,第二个操作数的实数值和虚数值都置换到多个信号处理器.
38. 如权利要求32的方法,其中,第二个操作数的实数值被置换到多个信号处理器.
39. 如权利要求34的方法,其中,第二数量的矢量都是有实数值 的实数矢量.
40. 如权利要求34的方法,其中,笫二数量的矢量都是有实数值 和虚数值的复数矢量.
41. 如权利要求34的方法,还包括 在执行所述DSP运算之前,确定第一个操作数的置换、第二个操作数的置换、或笫一个操作 数和第二个操作数两者的置换,并且,将第一个操作数、第二个操作数、或笫一个搮作数和笫二个操作数两者的示例进行置换,从而执行DSP指令.
42. 如权利要求35的方法,其中,笫二数量的矢量都是有实数值 的实数矢量.
43. 如权利要求35的方法,其中,第二数量的矢量都是有实数值 和虚数值的复数矢童.
44. 如权利要求35的方法,还包括 在执行所述DSP运算之前,确定笫一个操作数的置换、第二个操作数的置换、或第一个搮作 数和笫二个操作数两者的置换,并且,将第一个操作数、第二个操作数、或第一个操作数和笫二个操作 数两者的示例进行置换,从而执行DSP运算.
全文摘要
用于应用专用信号处理器(ASSP)的指令集结构(ISA)适合于数字信号处理应用。用ASSP实现的ISA适合于DSP算法结构。本发明的ISA包括灵活的数据打字、置换以及类型匹配运算(1101、1102、1104和1106)。操作数的灵活的数据打字、置换和类型匹配提供编程灵活性以便支持具有不同类型滤波器系数或数据采样的不同的滤波和DSP算法。ASSP里的每个信号处理单元里的数据打字机和对准器支持指令集结构的操作数的灵活的数据打字、置换和类型匹配。
文档编号G06F9/302GK101101540SQ200710138160
公开日2008年1月9日 申请日期2001年8月16日 优先权日2000年8月31日
发明者K·加纳帕蒂, R·卡纳帕蒂皮莱 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1