数字信号处理器以及基带通信设备的制作方法

文档序号:6496859阅读:132来源:国知局
数字信号处理器以及基带通信设备的制作方法
【专利摘要】本发明公开了一种具有向量执行单元的数字信号处理器,其设置为用以执行向量形式的多个数据的指令,包括:本地队列(730),其设置为用以从程序存储器接收指令并在本地队列中保存该指令,直到满足预定条件为止。所述本地队列(730)配置为在某时间上从程序存储器接收指令序列,并存储最后的N条指令,N为整数。向量执行单元中的向量控制器包括队列控制装置(732,721,744),其设置用以使本地队列将存储在本地队列中的具有M条指令的序列重复K次,其中M为小于等于N的整数。由于具有程序存储器中的IDLE命令,因此可减少向量执行单元继续等待的时间。
【专利说明】数字信号处理器以及基带通信设备
【技术领域】
[0001]本发明涉及基于SMT的数字信号处理器。
【背景技术】
[0002]多数移动通信设备使用包括一个或多个数字处理器(DSP)的射频收发器。
[0003]这种处理器中频繁执行的多数功能是针对大量采样数据而完成的。因此,采用一种称为单指令多数据流(Single Instruction Multiple Data, SIMD)处理器的处理器,因为它可以实现单个指令操作多个数据项,而不是每次操作一个整数。这种处理器能够处理向量指令,这意味着单一指令对多个数据单元执行相同功能。因此,它们可称为向量执行单元。数据被分组为字节或字,并封装为要操作的向量。
[0004]作为SIMD架构的进一步改进,已经开发出单指令流多任务流(SingleInstruction Multiple Tasks, SIMT)架构。通常,SIMT架构中已具有与作为内核处理器一部分的整数执行单元相关的一个或两个SIMD类向量执行单元。
[0005]国际专利申请W02007/018467公开了一种根据SMT架构的DSP,其具有包括整数处理器和程序存储器的处理器内核,以及与内核连接但未集成在内核中的两个向量执行单元。该向量执行单元可以为复杂算法逻辑单元(Complex Arithmetic Logic Units, CALU)或复杂乘法累加单元(CMAC,Complex Multiply-Accumulate Units)。该内核具有向执行单元分配指令的程序存储器。在W02007/018467专利文献中,每一向量执行单元具有单独的指令解码器。这可以有效地方式实现向量执行单元的使用在彼此之间独立,以及与处理器的其他部分之间独立。
[0006]因此,在SMT架构中具有若干执行单元。通常每个时钟周期里,可由程序存储器向执行单元中的一个单元发出一条指令。由于向量运算通常处理大向量,因此,在一个时钟周期里一个向量执行单元中接收的指令将要花费数个时钟周期来进行处理。因此,在随后的时钟周期里,可向处理器的其他计算单元发出指令。由于向量指令运行在长向量上,因此许多RISC指令可在向量操作期间执行。
[0007]多种基带算法可分解为更小的基带任务链,其中在任务之间几乎没有后向依赖性。该属性不仅容许在向量执行单元上并行执行不同任务,它也可通过使用上述指令集架构而加以利用。
[0008]为提供控制流同步并控制该数据流,“空闲”指令通常可用于中止控制流直到给定的向量操作完成。“空闲”指令将中止进一步的指令提取直到满足特定条件。该条件可以是向量执行单元中的向量指令的完成。
[0009]DSP任务通常包括具有两至三条指令的序列,下文将对其进行更详细地讨论。这表明向量执行单元将接收向量指令来进行运算,并在提供的数据向量上执行该向量指令直到整个向量完成为止。下一条指令将是处理该结果并将其存储在存储器中,理论上这可在对整个向量执行计算后随即发生。然而,向量执行单元通常得等待几个时钟周期才能得到它的下一条指令,因为处理器内核忙于等待其他向量单元完成操作,这导致向量执行单元的低效利用。随着向量执行单元数量的增长,向量执行单元处于非活动状态的可能性增大。
【发明内容】

[0010]由同一 申请人:与本申请同日提交的、名称为“数字信号处理器和基带通信设备”的共同未决专利申请涉及增强这种处理器中的并行程度。根据该共同未决专利申请,该问题是通过在每个向量执行单元中提供本地队列而解决的。特定向量执行单元的本地队列能够存储用于该向量执行单元的多条命令,并将其反馈至与程序存储器的状态无关的向量执行单元。
[0011]因此,根据此共同未决专利申请的处理通过提高处理器中的并行度而变得更有效。本发明基于如下认知:在现有技术中,已完成向量指令的向量执行单元通常不能立即接收下一指令。当向量执行单元准备好接收新指令而程序存储器中的第一条命令用于另一处于繁忙状态的向量执行单元时,上述情况将会发生。在此情况下,没有一个向量执行单元能接收新命令直到其他向量执行单元准备好接收其下一命令为止。由于为各个向量执行单元提供本地队列,因此可同时为向量单元提供针对一个向量单元的包括数条指令的一批指令。SYNC指令暂停从本地队列读取指令直到满足条件为止,该条件通常为数据通路准备好接收并执行另一指令。这两个特征共同使得指令序列能够即刻发送到指令执行单元,存储在本地队列中,并在向量执行单元中依序处理,以使得向量执行单元一旦完成一条指令就能开始下一条指令。采用这种方式,每一向量执行单元可在最少的非活动时间情况下工作。
[0012]本发明的目的在于使处理器内部的通信尽可能有效。
[0013]根据本发明通过在数字信号处理器中使用向量执行单元来实现所述发明目的,所述向量执行单元设置为用以执行包括针对向量形式的多数据进行操作的向量指令的指令,其中,向量执行单元包括
[0014]向量控制单元(向量控制器),其设置为用以判断指令是否为向量指令,若是,通知用以保存该向量长度的计数寄存器,所述向量控制器进一步设置并控制指令的执行,其中,所述向量执行单元包括
[0015]-设置为用以接收来自程序存储器的至少第一指令和第二指令的本地队列,并在本地队列中保存第二指令直到预定条件满足为止
[0016]-所述本地队列设置为用以在某时间从程序存储器接收指令序列,并存储最后的N条指令,N为整数,
[0017]-其中,所述向量控制器包括设置为用以按照将存储在本地队列中的M条指令的序列重复K次的方式控制所述本地队列的队列控制装置,其中,M为小于等于N的整数。
[0018]优选的是,向量控制器基于从内核接收的发出信号来控制指令的执行。或者,该发出信号可由向量执行单元本身在本地处理。
[0019]队列控制装置优选包括:
[0020]-缓冲管理器,其设置为用以记录要重复的M条指令,以及指令应当重复的次数K,其中M和K为整数;
[0021]-重复控制装置,其设置为用以监测指令序列的重复执行,以判断指令的重复何时
应当停止;
[0022]-指令计数寄存器,其设置为用以保存要重复的指令数M及其在队列中的位置。[0023]根据本发明,本地队列设置为例如循环缓冲器的形式,以存储最后的N条指令,其中N为整数。可配置为任意合适的整数,例如16。向量执行单元则具有用以将队列中最后M条指令重复K次的重复指令,其中M和K同样为合适的整数。K可以从控制寄存器文件、指令字或者其他来源获取。在此情况下,向量执行单元还包括对重复次数进行计数到K次的重复计数器。重复功能设置为用以在停止指令重复前,递减(或递增)重复计数器K次。
[0024]根据本发明,由于同一指令集合可从存储器发送一次,并在向量执行单元中执行多次,因此节省了控制通路中的带宽。这与现有技术的解决方案相反,在现有技术中,每次将要执行的时候,通过从程序存储器中发送同一指令序列获得指令循环。对于K值很大的情况,这尤其有利。
[0025]缓冲管理器可设置为用从控制寄存器文件中或者指令字本身获取整数K。
[0026]在优选实施例中,重复控制装置为用以记录K次重复的计数器。
[0027]根据本发明实施例的处理器特别用于数字信号处理器,特别是基带处理器。因此,本发明还涉及一种数字信号处理器,包括:
[0028]-处理器内核,包括配置为用以执行整数指令的整数执行单元;以及
[0029]-与处理器内核分开并与之耦合的至少第一和第二向量执行单元,其中,每一向量执行单元分别为如上所述的向量执行单元;
[0030]-所述数字信号处理器包括程序存储器和发出逻辑,其中,程序存储器设置为用以保存用于第一和第二向量执行单元的指令,发出逻辑用于向第一和第二向量执行单元发出包括向量指令的指令。
[0031]通常,程序存储器可设置在处理器内核中,并可设置为用以为整数执行单元保存指令。
[0032]本发明还涉及一种适于多模有线和无线通信的基带通信设备,包括:
[0033]-前端单元,设置为用以发送和/或接收通信信号;
[0034]-耦合至模拟前端单元的可编程数字信号处理器,其中可编程数字信号处理器为如上所述的数字信号处理器。
[0035]在优选的实施例中,本文通篇提及的向量执行单元为SIMD类向量执行单元或者为用以操作向量数据的可编程协处理器。
[0036]根据本发明实施例的处理器对于数字信号处理器尤其是基带处理器而言特别有用。前端单元可以为模拟前端单元,其设置为用以发送和/或接收射频或基带信号。
[0037]这种处理器广泛用于不同类型的通信设备中,例如移动电话、电视接收器和线缆调制解调器。因此,基带通信设备可设置用于无线通信网络中的通信,例如作为移动电话或者移动数据通信设备。基带通信设备也可设置用于根据其他无线标准例如蓝牙或者WiFi的通信。它也可以为电视接收器、线缆调制解调器、WiFi调制解调器,或者能够向其处理器发送基带信号的任意其他类型的通信设备。应该理解术语“基带”仅指处理器内部处理的信号。实际接收和/或发送的通信信号可以为在有线或无线连接上接收的任意合适类型的通信信号。这些通信信号通过该设备的前端单元以适当的方式转换为基带信号。
【专利附图】

【附图说明】
[0038]以下通过举例并参照附图对本发明进行更详细的说明。[0039]图1为根据本发明实施例的基带处理器的框图;
[0040]图2为显示图1中处理器内核的一个实施例的指令发出管线的示意图;
[0041]图3显示了 SMT处理器内的指令发出逻辑;
[0042]图4显示了根据现有技术的向量执行单元;
[0043]图5显示了具有本地队列的向量执行单元;
[0044]图6显示了根据本发明总体实施例的具有本地队列的向量执行单元;
[0045]图7显示了根据本发明的本地队列。
【具体实施方式】
[0046]图1为根据本发明的实施例的基带处理器PBBP500的框图。PBBP500包括处理器内核,其包括RISC类型的执行单元,并用RISC数据通路510表示。PBBP还具有多个向量执行单元520,530,各个单元分别包括向量控制单元275和SMD数据通路525,535。如本领域常见的,各条数据通路525,535可包括若干数据通路。例如,数据通路535通常可具有四条并行的CMAC数据通路,它们共同构成数据通路525。
[0047]为了对多个向量执行单元进行控制,内核硬件500包括耦合至程序计数器502的程序流控制单元501,该程序计数器502又耦合至程序存储器(PM)503。PM503耦合至复用器504、单元字段提取器508。复用器504耦合至指令寄存器505,其耦合至指令解码器506。指令解码器506进一步耦合至控制信号寄存器(CSR)507,其又耦合至RISC数据通路510的剩余部分。
[0048]类似地,向量执行单元520和530中的每一个还设置为用以接收来自位于内核中的程序存储器503的指令。向量执行单元包括各自的向量长度寄存器521,531、指令寄存器522,532、指令解码器523,533以及CSR524,534,它们耦合至各自的数据通路525和535。以下结合图3将会更详细地就与本发明相关的方面说明这些单元及其功能。
[0049]图2为现有技术中处理从程序存储器到不同向量执行单元的指令的示例,用以说明本发明的基本问题。图2左列表示时间(单位为执行时钟周期)。其余列从左向右依次表示第一和第二向量执行单元(更确切地说是CMAC203和CALU205的数据通路)和整数执行单元的执行管线以及发到此处的指令。更具体地说,在第一时钟周期内,复向量指令(如CMAC256)被发到CMAC203。如图所示,向量指令需要多个周期来完成。在下一时钟周期里,向量指令被发到CALU205。在下一时钟周期里,整数指令被发到整数执行单元510。在随后的几个周期内,当执行向量指令时,可将任意数量的整数指令发到整数执行单元510。要注意的是,尽管图中未示出,其余向量执行单元也可以相似的方式同时执行指令。
[0050]在某些情况下,“空闲(idle)”指令可包括在指令序列中,以阻止内核程序流控制器从程序存储器提取指令。例如,为了使程序流与向量指令的完成同步,“空闲”指令可用于将指令的提取挂起直到特定条件已满足为止。该条件通常是涉及的向量执行单元已执行完在先的向量指令并能接收新的指令。在此情况下,涉及的向量执行单元520,530的向量控制器275向程序流控制器501发送诸如标志的指示,表示该向量执行单元准备好接收另一指令。
[0051]空闲指令可在同一时刻用于多个向量执行单元。在此情况下,不再从程序存储器503发送进一步的指令,直到涉及的向量执行单元520,530中的每一个单元已发送了指示其准备好接收新指令的标志为止。
[0052]在图2的示例中,“空闲”指令在上述整数指令之后发出。在本示例中,空闲指令用于中止控制流直到由CMAC203执行的向量操作完成为止。
[0053]接下来将基于具有任意数量的执行单元的SIMT DSP来讨论随后的示例。为简单起见,本示例中假设全部单元为CMAC向量执行单元,但实际上不同类型的单元可混合并一起使用。
[0054]在许多基带处理算法和程序中,算法可分解为若干DSP任务,分别包括“前言(Prolog)”、向量操作和“结语(epilog)”。前言主要用于在向量操作可执行之前清空累加器、设定寻址模式和指针以及类似操作。当向量操作已完成时,向量操作的结果可进一步由任务中“结语”部分的代码处理。在SMT处理器中,通常只需要一条向量指令来完成向量操作。
[0055]以下通过根据现有技术的示例性任务来举例说明一个DSP任务的典型布局:
[0056]本示例中的代码片段执行超过512个复数数值的复数点积运算,然后再次将结果
存储到存储器中。该例程要求由处理器内核提取如下指令。
[0057]
【权利要求】
1.一种用于数字信号处理器的向量执行单元(520,530),所述向量执行单元设置为用以执行包括针对向量形式的多数据进行操作的向量指令的指令,所述向量执行单元包括向量控制器(275,720),其设置为用以判断指令是否为向量指令,若是,通知用以保存该向量长度的计数寄存器(531),所述向量控制器(275,720)进一步设置并控制指令的执行,其中,所述向量执行单元包括 -设置为用以接收来自程序存储器的至少第一指令和第二指令的本地队列(730),并在本地队列中保存第二指令直到预定条件满足为止 -所述本地队列(730)设置为用以同时从程序存储器接收指令序列,并存储最后的N条指令,N为整数, -其中,所述向量控制器(275,720 )包括设置为用以按照将存储在本地队列(730 )中的M条指令的序列重复K次的方式控制所述本地队列的队列控制装置(732,721,744),其中,M为小于等于N的整数。
2.根据权利要求1所述的向量执行单元,其中,所述向量控制单元(275,720)设置为用以接收发出信号并基于此 发出信号控制指令的执行。
3.根据权利要求1或2所述的向量执行单元,其中,所述队列控制装置包括 -缓冲管理器(744),其设置为用以记录要重复的M条指令,以及指令应当重复的次数K,其中M和K为整数; -重复控制装置(746),其设置为用以监测指令序列的重复执行,以判断指令的重复何时应当停止; -指令计数寄存器(748),其设置为用以保存要重复的指令数M及其在队列(901)中的位置。
4.根据权利要求3所述的向量执行单元,其中,所述缓冲管理器(744)设置为用以从控制寄存器文件中获取整数K。
5.根据权利要求3所述的向量执行单元,其中,所述缓冲管理器(744)设置为用以从指令字中获取整数K。
6.根据权利要求3-5中任一项所述的向量执行单元,其中,所述重复控制装置为设置用以记录K次重复的计数器。
7.一种数字信号处理器,包括: -处理器内核(500),其包括配置为执行整数指令的整数执行单元(510);以及 -与处理器内核分开并与之I禹合的至少第一和第二向量执行单兀(520,530),其中,每一向量执行单元为如上述任一项权利要求所述的向量执行单元; 所述数字信号处理器包括程序存储器(503 )和发出逻辑(705 ),其中,程序存储器配置为用以保存用于第一和第二向量执行单元的指令,发出逻辑用于向所述第一和第二向量执行单元(520,530)发出包括向量指令的指令。
8.根据权利要求7所述的数字信号处理器,其中,所述程序存储器(503)还设置为用以为所述整数执行单元(510)保存指令。
9.根据权利要求7或8所述的数字信号处理器,其中,所述程序存储器(503)设置在所述处理器内核(500)中。
10.一种适用于多模有线和无线通信的基带通信设备,包括-配置为发送和/或接收通信信号的前端单元; -耦合至所述模拟前端单元的可编程数字信号处理器,其中所述可编程数字信号处理器为如权利要求1-6中任一项所述的数字信号处理器。
11.根据权利要求10所述的基带通信设备,其中,所述前端单元为模拟前端单元,其设置为用以发送和/或接收射频或基带信号。
12.根据权利要求11所述的基带通信设备,其中,所述基带通信设备设置为用以用于在蜂窝通信网络中的通信。
13.根据权利要求10所述的基带通信设备,其中,所述基带通信设备为电视接收器。
14.根据权利要求10所述的基带通信设备,其中,所述基带通信设备为线缆调制解调器。`
【文档编号】G06F9/38GK103890719SQ201280051536
【公开日】2014年6月25日 申请日期:2012年9月17日 优先权日:2011年10月18日
【发明者】安德斯·尼尔森 申请人:联发科技瑞典有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1