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

文档序号:6497741阅读:183来源:国知局
数字信号处理器和基带通信设备的制作方法
【专利摘要】本发明涉及一种数字信号处理器(200),其包括:处理器内核(201),整数执行单元(212)和多个向量执行单元(203,205),所述数字信号处理器包括设置为用以为执行单元(211,203,205)保存指令的程序存储器(211),以及用于发出指令的发布逻辑。数字信号处理器包括用于选择将在同一时刻接收并执行相同指令的至少两个执行单元的发布控制单元(705),以及用于向所述至少两个执行单元发送指令的逻辑。
【专利说明】数字信号处理器和基带通信设备
【技术领域】
[0001]本发明涉及一种数字信号处理器(DSP),例如基于SMT的DSP。
【背景技术】
[0002]许多移动通信设备使用包括了一个或多个数字信号处理器(DSP)的无线电收发器。
[0003]为了提高性能和可靠性,许多移动终端目前使用一类称为基带处理器(BBP)的DSP,以用于操控与接收的无线电信号的处理以及要发送的信号的准备相关联的许多信号处理功能。由于这些功能与时序高度相关并且可能需要实时操作系统,因此将这些功能从主处理器中分离出来是有利的。期望这种基带处理器应当尽可能地灵活,以适应不断发展的标准并允许硬件再利用。因此,已经研发出可编程基带处理器,即PBBP。
[0004]此类处理器中频繁执行的许多功能对大量的数据样本执行操作。因此,称为单指令多数据(SMD)处理器的一类处理器较为有用,因为它能够使单个指令操作多个数据项,而不是一次仅操作一个数据项。多个数据项可设置在向量中,并且适于操作数据向量的处理单元在本文中将称为向量执行单元。
[0005]随着SMD架构的进一步发展,已经研发出单指令流-多任务(SMT)体系架构。通常,SMT架构中已具有与作为内核处理器一部分的整数执行单元相关的一个或两个SMD类向量执行单元。
[0006]国际专利申请W02007/018467公开了一种根据SMT架构的DSP,其具有包括整数处理器和程序存储器的处理器内核,以及与内核连接但未集成在内核中的两个向量执行单元。该向量执行单元可以为复杂算法逻辑单元(Complex Arithmetic Logic Units, CALU)或复杂乘法累加单元(CMAC, Complex Multiply-Accumulate Units)。该内核具有向执行单元分配指令的程序存储器。在W02007/018467专利文献中,每一向量执行单元具有单独的指令解码器。这可以有效地方式实现向量执行单元的使用在彼此之间独立,以及与处理器的其他部分之间独立。

【发明内容】

[0007]本发明的目的在于使SMT处理器更加灵活并且能够更有效地使用程序存储器、发布基带和执行单元。
[0008]根据本发明,该目的通过如下数字信号处理器来实现,其包括:
[0009]-处理器内核,其包括配置为执行整数指令的整数执行单元;和
[0010]-至少第一和第二向量执行单元,所述第一和第二向量执行单元与所述处理器内核分开并与所述处理器内核耦合,所述向量执行单元分别具有第一数目和第二数目的数据路径,所述向量执行单元配置为执行指令,所述指令包括对向量形式的多个数据进行操作的向量指令;
[0011]-所述数字信号处理器包括设置为用以为所述第一和第二向量执行单元保存指令的程序存储器,以及用于向所述第一和第二向量执行单元发出包括向量指令的指令的发布逻辑。
[0012]所述数字信号处理器的特征在于:所述处理器包括用于选择将在同一时刻接收并执行相同指令的至少两个执行单元的发布控制单元,以及用于向所述至少两个执行单元发送指令的逻辑。
[0013]在上述定义的处理器中,相同的指令可用来控制多个执行单元。这大大减少了在向多个执行单元发送相同指令时的控制开销。这还能够在多个执行单元上并行执行相同指令。同时开启几个执行单元的可能性使得对指令的处理非常高效。执行单元可以是向量执行单元、标量执行单元或整数执行单元。标量执行单元设置为用以一次处理一个数据项,但该数据项可以是整数或复数值。例如,可将相同的向量指令发送给要对不同的数据集执行操作的两个或多个向量执行单元。通常发送到多于一个向量执行单元的非向量指令的示例是clear和star。例如,可以具有一个包括所有向量执行单元的发布组。
[0014]在一优选实施例中,每个向量执行单元包括向量控制器,其设置为用以确定指令是否是向量指令,如果是,则通知设置为用以保存向量长度的计数寄存器,所述向量控制器还设置为用以控制指令的执行。
[0015]该处理器还包括一个或多个本领域已知的加速器。术语功能单元,当其使用在本文中时表示执行单元或加速器。
[0016]优选地,定义了多个发布组,每个发布组包括至少一个执行单元,并且至少一个发布组包括多于一个的执行单元,并且所述控制单元设置为用以通过选择发布组来选择所述至少两个执行单元。这可以硬编码在内核中。
[0017]备选地,在一优选实施例中,发布控制单元进一步包括与至少一个发布组相关联的至少一个掩码,所述掩码表明所述发布组中的哪个或哪些执行单元应当接收并执行所述指令。这使得可以改变对发布组的定义,并且针对每个发布组改变对执行单元的选择,由此使得处理器更加灵活。
[0018]发布组可包括至少一个整数执行单元和/或至少一个向量执行单元。根据需要,发布组可定义为仅包括相同类型的执行单元,或者是不同类型的执行单元的组合。适当的是,可定义包括所有的执行单元的发布组,例如针对发出clear命令。
[0019]指令可涉及从处理器中的其他单元读取数据以及向其写入数据。当将相同指令发送给发布组的多个执行单元时,通常每个执行单元应当与其自身集合中的其他单元一起工作,以避免几个执行单元试图对同一单元进行读取或写入。因此,在一优选实施例中,至少一个执行单元包括映射表,该映射表用于解释指令中含有的、表明应当与执行单元进行交互的至少一个其他单元的信息,例如,应当从哪个存储器读取数据。两个或多个执行单元仍然可设置为用以从处理器中的相同存储器单元或功能单元接收数据,例如当发布组中的一个执行单元要执行函数A = sum(X*Y),而另一执行单元要执行函数B = sum(X*Z)时,其中X、Y和Z是从处理器的其他单元得到的数据向量。
[0020]对来自发布组的结果进行处理的一个方法涉及将来自发布组的每个执行单元的结果写入到相同向量寄存器单元中,并让向量寄存器单元执行那些处理该结果所需要的指令。
[0021]优选地,指令解码器设置为用以通知向量寄存器单元任何给定时刻执行的指令。[0022]对于要选择哪个发布组来执行某特定指令可通过不同方式来处理。通常,在内核中提取发布信号并将其发送给相关执行单元。在这种情况下,将发布组的至少一个执行单元进一步设置为用以接收发布信号并基于该发布信号来控制指令的执行。备选地,每个向量执行单元可设置为用以从接收的指令字中提取发布信号并基于该发布信号来确定它是否应当参与指令字的执行。
[0023]优选地,向量控制器基于从内核接收的发布信号来控制指令的执行。备选地,发布信号可通过执行单元本身在本地进行处理。本领域已知如何对此进行实现的方式。
[0024]通过使两个执行单元能够以一条指令同时对两个不同的数据集进行处理的做法,使得根据本发明的处理更为高效。如果同一数据集的不同部分存储在不同的存储器中,那么还可以让两个执行单元处理同一数据集的不同部分。与现有技术实现的效果相比,这能够在不采用更大型的向量执行单元的情况下更有效地处理大型数据集。作为备选方案,向量执行单元的容量可通过增加包括在该向量执行单元中的数据路径的数目来增大,但是这种高容量向量执行单元对大多数命令而言是不必要的,因此效率不高。因此,本发明提供了一种更灵活且具有成本效益的解决方案,而不旨在提供具有大容量的单个向量执行单元。
[0025]一次性地向/从几个单元分发指令和数据允许极为高效地对指令进行处理,因为在若干个单元之间发送相同信号实际上能够达到与在两个单元之间的信号往来相同的成本。
[0026]通常,程序存储器布置在处理器内核中并且还设置为用以为整数执行单元保存指令。
[0027]本发明还涉及一种适用于多模式有线通信及无线通信的基带通信设备,包括:
[0028]-前端单元,其配置为发送和/或接收通信信号;
[0029]-耦合到所述前端单元的可编程数字信号处理器,其中所述可编程数字信号处理器是如上所述的数字信号处理器。
[0030]在一优选实施例中,本文通篇所提及的向量执行单元是设置为用以操作数据向量的SMD型向量执行单元或可编程协处理器。
[0031]根据本发明实施例的处理器对数字信号处理器特别是基带处理器极为有用。前端单元可以是设置为用以发送和/或接收无线电频率或基带信号的模拟前端单元。
[0032]这种处理器广泛用于不同类型的通信设备中,诸如移动电话、电视接收器和缆线调制解调器。因此,基带通信设备可用于蜂窝通信网络(例如,移动电话或移动数据通信设备)的通信中。基带通信设备也可用于根据其他无线标准(如蓝牙或WiFi)的通信中。它也可以是电视接收机、缆线调制解调器、WiFi调制解调器或者能够向其处理器传送基带信号的任何其他类型的通信设备。应当理解,术语“基带”仅指代在处理器内部处理的信号。实际接收和/或发送的通信信号可以是基于有线或无线连接接收的任何合适类型的通信信号。通信信号由该设备的前端单元以适当的方式转换为基带信号。
【专利附图】

【附图说明】
[0033]下面,参考附图,通过示例的方式对本发明作出更详细说明。
[0034]图1是根据本发明实施例的基带处理器的框图。
[0035]图2示出了可用于选择特定的发布组的指令格式。[0036]图3示出了 SMT处理器中的指令发布逻辑。
[0037]图4A示出了发布逻辑功能。
[0038]图4B示出了可用于规定发布组的掩码。
[0039]图5是示出了图2的处理器内核的一个实施例的指令发布管线的示意图。
[0040]图6示出了处理发布组中空闲信号的方式。
【具体实施方式】
[0041]图1示出了根据SMT架构的基带处理器200的示例。处理器200包括控制器内核201以及第一向量执行单元203和第二向量执行单元205,这将在下文中进行更详细地讨论。如图1中所示的FEC单元206连接到片上网络。当然,在一具体实现中,FEC单元206可包括若干不同的单元。
[0042]主机接口单元207提供了与主机处理器(未示出)的连接。如果存在MAC处理器,则将MAC处理器连接在主机接口单元207与主机处理器之间。数字前端单元209以本领域公知的方式提供与ADC/DAC单元的连接。
[0043]如本领域中所常见的,控制器内核201包括程序存储器,以及指令发布逻辑和用于支持多上下文(mult1-context)的功能。就每个所支持的执行上下文或线程而言,这包括程序计数器、堆栈指针以及寄存器文件(未在图2中明确示出)。通常,支持2-3个线程。这允许使用称为fork的函数,该函数例如能够在向量执行单元正执行向量指令的同时让内核执行某些指令。因此,不期望在不同线程之间具有重叠的发布组。由此,每个线程优选具有其自身的一组向量执行单元,以避免两个线程在同一时刻试图使用同一向量执行单元的情况。通常,在系统中可以在多于一个的线程中使用同一向量执行单元,但如果一个线程试图通过另一线程向已被使用的向量执行单元发送发布信号,那么将会发出错误消息。
[0044]控制器内核201还包括整数执行单元212,该整数执行单元包括寄存器文件RF、内核整数存储器ICM、乘法单元MUL以及算术与逻辑/移位单元(ALSU)。这些单元在本领域均为已知的并且未在图1中示出。
[0045]片上网络244与处理器的所有单元互连,这些单元包括控制器内核201、数字前端单元209、主机接口单元207、向量执行单元203,205、存储体230,232、整数存储体238和加速器242。
[0046]在本示例中,第一向量执行单元203和第二向量执行单元205中的每一个执行单元均属于CMAC向量执行单元,各个执行单元包括向量控制器213、向量加载/存储单元215以及多个数据路径217。加载功能用于从与片上网络244相连的其他单元(如存储体)提取数据,并且存储功能用于将来自执行单元203,205的数据通过片上网络244存储于如存储器单元230,231中。也可以从其他向量执行单元获得数据,和/或可以将计算结果转发到其他向量执行单元以供进一步处理。每个向量执行单元还包括用于从程序存储器211接收指令的向量控制器213,223。
[0047]该第一向量执行单元的向量控制器经由发布逻辑连接到控制器内核201的程序存储器211上,以接收与来自程序存储器的指令有关的发布信号。在以上描述中,发布逻辑对指令字进行解码以获得发布信号,并将该发布信号作为独立信号发送给向量执行单元。也可以让向量执行单元的向量控制器在本地生成发布信号。在这种情况下,发布信号由向量控制器基于指令字以与其在发布逻辑中相同的方式来创建。
[0048]备选地,向量执行单元203,205是一类本领域已知的CALU向量执行单元,其包括向量控制器223、向量加载/存储单元225和多个数据路径227。该第二向量执行单元的向量控制器223还经由发布逻辑连接到控制器内核201的程序存储器211上,以接收与来自程序存储器的指令有关的发布信号。
[0049]向量执行单元203,205也可以是任何类型的向量执行单元。尽管示出并讨论了两个向量执行单元,但是本发明的方法可扩展为向三个或更多个向量执行单元发送相同指令。
[0050]除了图1所示的两个向量执行单元之外,还可以存在任意数目的向量执行单元。可以只有CMAC单元、只有CALU单元,或者每个类型各有合适数目。也可以存在不是CMAC和CALU的其他类型向量执行单元。如上所述,向量执行单元是能够处理向量指令的处理器,这意味着单个指令对多个数据单元执行相同功能。数据可以是复数或实数,并划分为字节或字封装到待由向量执行单元操作的向量中。在本文中,CALU和CMAC单元用作示例,但应当注意,向量执行单元可用于对数据向量执行任何合适的功能。
[0051]为了实现若干个同时的向量操作,处理器优选具有分布式存储器系统,其中存储器划分为若干存储体,如图1所示的存储体0230至存储体N231。每个存储体230,231分别具有自身的复数存储器232,233和地址生成单元AGU234,235。图1中的PBBP还包括一个或多个整数存储体238,该整数存储体包括存储器239和地址生成单元240。
[0052]如本领域已知的那样,通常连接有多个加速器242,因为它们能够高效地实现某些基带功能,例如信道编码及交织。这种加速器是本领域所熟知的,因此这里将不再进行任何详细讨论。加速器可以配置为可由多种不同标准来重用。
[0053]第一和第二向量执行单元203,205显示为具有可同时或单独运行四条复数数据路径的四路CMAC单元。四条复数数据路径包括乘法器、加法器和累加寄存器(均未在图1中示出)。因此,在本实施例中,CMAC203可称为四路CMAC数据路径。除了乘法和加法之夕卜,如本领域已知的那样,CMAC203还可以执行舍入和缩放(scaling)操作并支持饱和模式(saturation)。
[0054]在一个实施例中,针对处理器内核201的指令集体系可包括三类复合指令。第一类指令是对16位整数操作数进行操作的RISC指令。RISC指令类包括大部分的面向控制的指令,并且可在处理器内核201的整数执行单元212中执行。下一类指令是对具有实部和虚部的复数数据进行操作的DSP指令。DSP指令可在向量执行单元203,205中的一个或多个单元上执行。第三类指令是向量指令。由于向量指令对大型数据集进行操作并可利用先进的寻址模式和向量支持,因此它们可视为DSP指令的扩展。向量指令可对复数或实数数据类型进行操作。
[0055]在现有技术中,CMAC单元203,205可单独操作,每个单元一次针对一组数据处理一个指令。根据本发明,为加快处理,包括能够使CMAC单元203,205同时对同一组数据进行处理的控制器。
[0056]为便于说明,在现有技术中每个向量执行单元都具有名称。命令
[0057].cmacO
[0058]<instr>[0059]表示应当将后续所有的CMAC指令发送到编号O的CMAC单元中。此类信息在指令本身中被发现,并在内核201中的发布逻辑中进行解码,或者通过向量执行单元本身来解码。
[0060]根据本发明,指定执行单元组(称为发布组),其中每个发布组包括一个或多个相同类型或不同类型的执行单元。正如要结合图4A和4B所讨论的那样,当发出指令时,指令字中的单元字段不直接对执行单元中的一个进行编码,而是指示出发布组中的一个发布组。可以将每个发布组中关于包括了哪些执行单元的信息保存在任何合适的单元中,例如保存在处理器内核201中的专用存储器中,诸如图3中的发布逻辑单元705。这将结合图4A和4B进行更详细的讨论。可以在指令中以与现有技术中的单个向量执行单元相同的方式指示出发布组。
[0061]根据本发明,将新命令定义为:应该将所有特定类型的指令发送给特定的发布组,而不是发送给单个向量执行单元。如果已经发出如下命令:
[0062].1ssuegroup<cmac>0
[0063].1ssuegroup<calu>5
[0064]那么这表示应当将所有的cmac指令发送给编号O的发布组并且应当将所有的calu指令发送给编号5的发布组。如果发出了诸如cacc x, y的cmac指令,那么将它发送给编号O的发布组。如果发出了诸如vadd z, b的calu指令,那么将它发送给编号5的发布组。在一个发布组中的量执行单元可以具有相同数目的数据路径,或不同数目的数据路径。
[0065]图2示出了指令格式的示例。在本示例中,称为发布组O的发布组由发布组编码001来表示。在图2所示的示例中,整数执行单元具有自己的条目,并且不包括在任何发布组中。可以将发布组(例如,发行组编号O的发布组)定义为包括整数执行单元。在此备选实施例中,发布组将用于处理整数指令。在图2的示例中,将3个比特位用于发布组编号,因此可以指定8个不同的发布组。如果需要更大数目的发布组,那么用于指示发布组的比特位数必须相应增加。图中的字母X表示数据项。
[0066]如上面结合图1所述的那样,内核通常支持两个或多个线程或上下文。在使用单个向量执行单元的情况下,不希望将相同的功能单元包含在两个或多个线程中,因为存在冲突风险。因此,优选将附加的比特位添加到图2的发布字段中,以指示可与哪些线程或上下文一起使用发布组。
[0067]图3示出了现有技术的基带处理器700中的指令发布逻辑,其可用作本发明的起点。基带处理器包括内核701和程序流程控制单元703,其中,内核701具有为处理器的各种执行单元保存指令的程序存储器PM702。程序流程控制单元703设置为用以指出应当从中读取程序存储器702中的指令的下一地址。从程序存储器702将指令送往发布逻辑单元705,该发布逻辑单元705由所有执行单元共用,并设置为用以控制向何处发送每条具体指令。在此示例中,发布逻辑单元705与多个向量执行单元710,712,714连接,并经由多路复用器715与整数执行单元716连接。如上所述,在一个实施例中,将包括实际指令的指令字发送给所有执行单元,然而仅将对应于特定指令的发布信号发送给将要执行该指令的执行单元。在一备选实施例中,发布信号由每个向量执行单元本地处理。
[0068]图4A示出了根据本发明与图3的单元705相对应的发布控制单元的示例。如前所述,内核包括为向量执行单元保存指令的程序存储器211。预解码单元321设置为用以确定从程序存储器读取的每个指令应当由哪个执行单元来接收。将指令字从程序存储器211直接发送给所有执行单元。这并未在图4A中示出,图4A仅示出了控制信号。携带了关于哪个或哪些功能单元应当执行该指令的信息的发布信号经由多路分离器324发送。发布信号可如所示的从多路分离器至内核的箭头那样发送给内核中的整数执行单元。备选地,发布信号可专门用于发布组。在这种情况下,可将发布信号以与发送给此发布组中的所有功能单元的方式来进行发送。
[0069]然而,在一优选实施例中,为了提供更大的灵活性,如图4A所示,可以将掩码与发布信号结合使用。在这种情况下,设置了多个掩码单元326,328,330,其中每个掩码单元针对一个发布组。逻辑运算单元332,334从多路分离器324接收用于发布组的发布信号。该逻辑运算单元332,334还从对应于该发布组的掩码单元326,328,330接收信息,并确定出发布组中的哪些功能单元应当接收该指令。下面,将对掩码单元的功能进行更详细的讨论。当逻辑运算单元已基于发布信号和来自掩码的信息确定出哪个或哪些功能单元应当执行该指令时,将发布信号发送给这些向量执行单元。通过这种方式,在配置期间可以动态地改变包含在发布组中的功能单元,而不是将功能单元硬编码到系统中。
[0070]图4B示出了根据上述实施例的掩码单元325的示例。掩码单元包括标识一组向量执行单元中应当实际接收该指令的那些向量执行单元的掩码。实际中,针对每个向量执行单元,掩码具有I比特位,其可以设置为O或1,以表示该向量执行单元是否应当包括在发布组中。将该信息与保存在发布信号中的信息结合,以确定哪些向量执行单元将接收该指令。
[0071]在本示例中,掩码单元326,328,330均用于同一发布组。如另一掩码单元340所指示的那样,还可以存在针对多个其他发布组中的一个发布组的掩码单元。具有针对一个发布组的多个掩码寄存器的主要目的是为了允许每个上下文都具有自身单独的掩码寄存器。
[0072]在图4B的示例中,发布组可能包括9个向量执行单元。存储于筛选单元(filterunit)的信息表示:这些执行单元中的第一个和最后一个执行单元实际上应当参与执行该指令。如根据上文所理解的那样,可以无需掩码单元而对发布组进行定义,但是掩码单元能够在预先定义的执行单元组内动态定义发布组。
[0073]图5示出了在特定发布组中如何从两个CMAC单元203,205同时对存储器单元230进行访问。如从存储器230指向两个CMAC单元203,205的叉形箭头所示出的那样,可以由两个CMAC单元203,205从存储器230读取数据,或者由两个CMAC单元203,205向存储器230写入数据。从CMAC单元203,205至存储器单元230的联结箭头显示出来自CMAC单元的控制信号可发送到存储器单元230的同一控制输入端。两个CMAC单元203,205均可以在同一时刻接收来自存储器单元的相同数据。对于对存储器单元的写入操作,它们通常得轮流进行。本领域技术人员知晓,这可以多种方式来进行设置。当然,CMAC单元203,205仅作为示例;它们可以是任何执行单元。此外,搭接式连接(split and joint connection)实际上在片上网络244中实现,这实现了处理器中所有单元之间的连接。
[0074]图5还包括向量寄存器单元902,其设置成用以接收并组合发布组中的两个或所有的执行单元的结果。向量寄存器单元902还直接连接到片上网络244,从而能够与处理器中的所有其他单元进行数据交换。如果设置了向量寄存器单元,那么向量寄存器单元将执行结语程序。结语程序涉及将结果按所需的方式组合,例如将结果一起相加。[0075]在注重使两个CMAC单元在完全相同的时刻开启并以同步的方式工作的情况下,发布组功能是极为有用的。通常,使用多发布(mult1-1ssue)功能,以使得几个向量执行单元能够执行相同的指令,也就是,当期望向几个向量执行单元传输同一指令时使用多发布功能。这既适用于注重执行同步的情况,又适用于几个向量执行单元应当接收相同指令但不必同步的情况。后者的示例是clear指令,其用于清空向量执行单元。为了清空所有的向量执行单元,发布组可以定义为包括所有的向量执行单元,并且指令可以发送给该发布组。
[0076]下面将基于具有任意数目的执行单元的SIMT DSP,对如下示例进行讨论。为方便起见,假设在本例中的所有单元均为CMAC向量执行单元,但在实际中,数字信号处理器将具有不同类型的单元。
[0077]在许多基带处理算法及程序中,可将算法分解成多个DSP任务,每个任务由“序言”、向量操作和“结语”组成。序言主要用于在能执行向量操作之前清空累加器、设定寻址模式和指针等。当向量操作已完成时,向量操作的结果可通过任务的“结语”部分中的代码来进一步处理。在SMT处理器中,通常只需要一条向量指令来执行向量操作。
[0078]通过下面的示例性任务,对根据本发明的一个DSP任务的典型布局进行例举:
[0079]该示例中的代码段执行了基于512个复数值的复数点乘计算,然后将结果再次存储到存储器中。该例程需要由处理器内核获取的如下指令。
[0080].1ssuegroup cmac I ;假设选择了发布组I用于cmac操作
[0081]prolog:;地址设定
[0082]ldi#0, r0
[0083]out r0, cdm0_addr
[0084]out rO, cdml_addr
[0085]out rO, cdm2_addr
[0086]setcmvl.512 ;设置向量长度为512
[0087]vectorop:cmac[0], [I], [2];基于〈向量长度〉样本,执行 cmac 操作
[0088]idle#cmac0 ;直到cmacO就绪才停止程序获取
[0089]epilog: star [3];存储累加器
[0090]在上面的示例中,发出setcmvl、cmac和star指令并在CMAC向量执行单元上执行,而ld1、out和idle指令在整数内核(“核”)上执行。star指令的参数[3]指示所得数据应发往的那个单元的间接网络端口地址。
[0091]向量指令的向量长度表示向量执行单元应当对多少个数据字(样本)进行操作。向量长度可以任何合适的方式设置,例如以如下方式的一种:
[0092]I)通过专用指令,如上述示例中的setcmvl.123 ;
[0093]2)由指令本身来携带,例如按照格式:cmac.123,如图4所示;
[0094]3)通过控制寄存器来设置,例如根据格式out rO, cmac_vector_length。
[0095]指令idle#cmac0指示内核程序流控制器直到CMACO单元完成它的向量操作才会停止获取新指令。当空闲函数释放并允许读取新指令之后,获取“star”指令并发送给CMACO向量执行单元。star指令指示CMAC向量执行单元将累加器存储到存储器中。
[0096]有三种可能的方式对来自发布组的执行单元的输出进行处理。最简单且最常用的是:执行单元分开对数据集进行处理,并且分别结束每个指令或者指令序列。在这种情况下,可以本领域的惯用方式来处理结果。
[0097]第二备选方式是:应当一起处理来自构成发布组的两个或多个执行单元的结果。如图5所示,实现这一方式的方法之一是提供向量寄存器文件902,其设置为用以接收来自整个发布组的输出并执行结语。结语涉及了以所需的方式对结果进行组合,例如将结果相加在一起。
[0098]第三种选择是仅让执行单元中的一个单元来执行结语。在这种情况下,针对发布组中的所有而不是其中一个执行单元而言,最后一条指令用于使执行单元将它的数据发送给发布组中要执行最终结果组合的那个执行单元中。
[0099]在上面的示例中,指令
[0100]vectorop: cmac [O], [I], [2]
[0101]中的参数[O]、[I]、[2]指示出为了操作而分别要读取和写入的存储器的间接网络端口地址,其中在这种情况下假设:从两个存储器读取数据,并将结果写入一个存储器中。由此,将相同的存储器信息赋予所有有关的向量执行单元。显然,通常不期望发布组中的所有向量执行单元都参与对相同数据的处理。为了解决这个问题,每个向量执行单元均具有网络端口映射表,以将参数[O]、[I]、[2]准确地转送给该向量执行单元所要读取或写入的网络端口。通常,发布组中的每个向量执行单元均具有唯一的映射表。正如从图5所理解的那样,向量执行单元可以处理来自同一存储器单元的数据,或来自不同存储器单元的数据。例如,两个向量执行单元203,205可以分别执行函数ΣΧ.y和ΣΧ.z,其中X、y和z是分别从第一、第二和第三存储器获取的数据向量。
[0102]在SIMT架构中使用idle指令,从而直到某特定向量执行单元结束其指令时才会停止从程序存储器中获取指令。当向量执行单元结束时,返回一信号以表明内核准备就绪。这个信号可能会启动中断信号。当使用发布组时,优选的是idle指令直到发布组中所有的向量执行单元都结束时才会停止获取指令。因此,内核应当以协调的方式来处理来自发布组的所有向量执行单元的就绪信号。通常,当发布组中的执行单元运行相同的指令并且执行单元未出现停顿的情况下,同一发布组内的所有执行单元应当在同一时刻释放它们的中断信号。为实现灵活性,可以规定是否应使用“与”或“或”逻辑以形成相应的输出信号。例如,标准可以是:已从所有的向量单元接收到就绪信号,即,发布组中的所有向量执行单元应当已结束。或者,标准也可以是:向量单元中的一个单元发出就绪信号。图6示出了处理这种情况的实际方法。逻辑单元904设置为用以接收来自发布组中的每个向量执行单元O、
1、2的就绪信号。逻辑单元904还具有来自发布组掩码900 (其结合图3B进行讨论)的信息,其设置为用以执行例如OR、AND或XOR的适当逻辑功能以实现期望的结果。
【权利要求】
1.一种数字信号处理器(200),包括: -处理器内核(201),其包括配置为执行整数指令的整数执行单元(212);和 -至少第一和第二向量执行单兀(203,205, 520, 530),所述第一和第二向量执行单兀与所述处理器内核(201)分开并与所述处理器内核耦合,所述向量执行单元分别具有第一数目和第二数目的数据路径,所述向量执行单元配置为执行指令,所述指令包括对向量形式的多个数据进行操作的向量指令; -所述数字信号处理器包括设置为用于为所述第一和第二向量执行单元保存指令的程序存储器(211),以及用于向所述第一和第二向量执行单元(203,205,520,530)发出包括向量指令的指令的发布逻辑,所述数字信号处理器的特征在于:所述处理器包括用于选择将在同一时刻接收并执行相同指令的至少两个执行单元的发布控制单元(705),以及用于向所述至少两个执行单元发送指令的逻辑。
2.根据权利要求1所述的处理器,其中,定义多个发布组,每个发布组包括至少一个执行单元(212,203, 205),并且至少一个发布组包括多于一个的执行单元,并且所述发布控制单元(705)设置为用以通过选择发布组来选择所述至少两个执行单元。
3.根据权利要求1或2所述的处理器,其中,所述发布控制单元(705)还包括与至少一个发布组相关联的至少一个掩码(900),所述掩码表明所述发布组中的哪个或哪些执行单元应当接收并执行所述指令。
4.根据上述权利要求中任一项所述的处理器,其中,发布组包括至少一个整数执行单元(212)和/或至少一个向量执行单元(203,205,520,530)。
5.根据上述权利要求中任一项所述的处理器,其中,至少一个执行单元包括映射表,所述映射表用于解释指令中所含有的、表明应当与执行单元进行交互的至少一个其他单元的信息,例如,执行单元应当从哪个存储器读取数据。
6.根据上述权利要求中任一项所述的处理器,其中,每个向量执行单元包括向量控制器,其设置为用以确定指令是否是向量指令,如果是,则通知设置为用以保存向量长度的计数寄存器,所述向量控制器进一步设置为用以控制指令的执行。
7.根据上述权利要求中任一项所述的处理器,还包括向量寄存器文件单元(902),其中发布组中的执行单元被命令将指令执行的结果写入到所述向量寄存器文件单元中。
8.根据上述权利要求中任一项所述的处理器,其中,指令解码器(723)设置为用以通知向量控制器(720,720’ )任何给定时刻执行的指令。
9.根据权利要求1所述的处理器,其中,将发布组中的至少一个执行单元(203,205,212)进一步设置为用以接收发布信号并基于该发布信号来控制指令的执行。
10.根据权利要求1所述的处理器,其中,每个向量执行单元(203,205,520,530)设置为用以从所接收的指令字中提取发布信号并基于所述发布信号来确定此向量执行单元是否应当参与指令字的执行。
11.一种适用于多模式有线通信及无线通信的基带通信设备,包括: -前端单元(7),其配置为发送和/或接收通信信号;和 -耦合到模拟前端单元上的可编程数字信号处理器(3),其中所述可编程数字信号处理器是根据权利要求1-10中任一项所述的数字信号处理器。
12.根据权利要求11所述的基带通信设备,其中,前端单元(7)是设置为用以发送和/或接收无线电频率或基带信号的模拟前端单元。
13.根据权利要求11或12所述的基带通信设备,其中,所述基带通信设备用于无线通信网络的通信中,如蜂窝通信网络的通信中。
14.根据权利要求11所述的基带通信设备,其中,所述基带通信设备是电视接收机。
15.根据权利要求11所述的基带通信设备,其中,所述基带通信设备是缆线调制解调器。
【文档编号】G06F9/38GK104040493SQ201280063355
【公开日】2014年9月10日 申请日期:2012年11月28日 优先权日:2011年12月20日
【发明者】安德斯·尼尔森, 埃里克·特尔 申请人:联发科技瑞典有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1