具有可编程网络的数字信号处理器的制作方法

文档序号:6567557阅读:284来源:国知局
专利名称:具有可编程网络的数字信号处理器的制作方法
技术领域
本发明涉及数字信号处理器,更具体地涉及可编程数字信号处理器。
背景技术
在短短的时间内,无线设备、尤其是移动电话的使用显著地增加。 无线设备在全球范围的迅速扩张导致出现了大量的无线电标准以及无线
产品集中上市。由此导致对软件无线电(Software Defined Radio) (SDR) 的关注度不断增高。
如SDR论坛所描述的,SDR是"硬件和软件技术的集合,其使得能 够实现无线网络和用户终端的可配置系统架构。SDR对于建立能够利用 软件升级来增强的多模、多频带、多功能无线设备的问题,提供了一种 有效并相对廉价的解决方案。这样,SDR可以被认为一种能够在无线领 域中的广泛范围内应用的有用技术"。
很多无线通信设备都使用无线电收发器,该无线电收发器具有一个 或多个数字信号处理器(DSP)。无线电中使用的DSP中的一种是基带处 理器(BBP),该基带处理器可以具有与接收无线电信号的处理和准备发 射信号相关的多种信号处理功能。例如,BBP可以提供调制和解调、以 及信道编码和同步功能。
很多现有的BBP被实现为专用集成电路(ASIC)器件,其支持单个 无线电标准。在很多情况下,ASIC BBP可以提供优异的性能。然而, ASIC解决方案限于在片上硬件(on-chip hardware)所针对的无线电标准 内工作。
为了提供SDR解决方案,需要无线电基带处理器具有更好的灵活性 以满足上市时间、成本及产品寿命的要求。为了应对诸如无线局域网 (LAN)、第三代/第四代移动电话、以及数字视频广播等的需求,需要在基带处理器中具有高度的并行性。
为此,提出了多种可编程BBP (PBBP)解决方案,它们通常基于很复杂的超长指令字(VLIW)和/或多处理器内核机。这些现有的PBBP 解决方案通常具有一些缺点,比如与ASIC解决方案相比,芯片面积(die area)较大且性能有限。因此,希望有一种可编程DSP架构,其能够支 持多种不同的调制技术、带宽和移动性需要,并且具有可接受的面积和 功耗。

发明内容
公开了具有可编程网络的可编程基带数字信号处理器的多种实施方 式。在一个实施方式中,数字信号处理器具有多个存储单元、多个加速 器单元、以及处理器内核。所述数字信号处理器还包括可编程网络,该 可编程网络可以被配置为选择性地提供这多个存储单元、多个加速器单 元、以及处理器内核之间的连接。各加速器单元可以被配置为与处理器 内核无关地执行一个或多个专用功能。所述处理器内核可以具有被配置 为执行与数据路径流控制相关的指令的执行单元。所述可编程网络可以 被配置为响应于特定指令的执行而选择性地提供连接。通过本发明,提 供了更强的处理性能,并且这是在保持灵活性的同时实现的。
在一个具体实施方式
中,响应于特定指令的执行,可编程网络可以被配置为将所述多个存储单元中给定的一个存储单元联结到所述多个加 速器单元中给定的一个加速器单元。
在另一个具体实施方式
中,响应于特定指令的执行,可编程网络可 以被配置为将一个或多个存储单元联结到所述处理器内核。
在又一个具体实施方式
中,响应于特定指令的执行,可编程网络被 配置为将两个或更多个加速器单元联结在一起成为链,并且进一步将所 述链中的第一个加速器单元联结到所述多个存储单元中给定的一个存储 单元与所述处理器内核的其中之一。
在又一个实施方式中, 一种无线通信设备具有被配置为发射并接收 射频信号的射频前端单元和与所述射频前端单元联结的可编程数字信号处理器。这种数字信号处理器可以为基带数字信号处理器。所述可编程 数字信号处理器具有多个存储单元、多个加速器单元和处理器内核。所 述可编程数字信号处理器还具有被配置为选择性地提供多个存储单元、 多个加速器单元、以及处理器内核之间的连接的可编程网络。
各加速器单元可以被配置为与处理器内核无关地执行一个或多个专 用功能。所述处理器内核可以具有被配置为执行与数据路径流控制相关 的指令的执行单元。所述可编程网络可以被配置为响应于指令的执行而 选择性地提供连接。


图1为具有可编程基带处理器的多模无线通信设备的一个实施方式 的框图。
图2为图1的可编程基带处理器的一个实施方式的框图。
图3为示出了图2的处理器内核的一个实施方式的指令发出管线的 视图。
图4为示出了图2的可编程基带处理器的另一方面的实施方式的视图。
图5为示出了图2和图4的可编程基带处理器的一个实施方式中的 示例性网络连接的视图。
图6A是示出了与图2和图4的可编程网络的一个实施方式连接的各单元之间的示例性定时特性的时序图。
图6B是示出了与图2和图4的可编程网络的一个实施方式连接的各 单元之间的另 一示例性定时特性的时序图。
图7为说明图1、图2和图4的可编程基带处理器的实施方式的示 例性操作的管线流程图。
尽管本发明可以有多种改进和修改形式,然而在附图中以示例的方 式示出了其特定的实施例,并在下文中进行详细的说明。但应当理解, 附图和详细说明并非旨在将本发明限制于所公开的特定形式,而是相反, 本发明覆盖所有落入到所附权利要求书限定的本发明的精神和范围中的所有改进、等同和替换。要注意的是,说明书中的标题仅仅是为了组织 的目的,而并非用于对说明书或权利要求书进行限制或解释。此外,要 注意的是,在整个申请文件中使用的词"可以"为容许的含义(即,具有 可能性、能够),而非强制的含义(即,必须)。"包括"一词及其派生意 味着"包括,但不限于"。"连接"一词意味着"直接或间接连接",并且"联 结"一词意味着"直接或间接联结"。
具体实施例方式
现参考图1,图1示出了包括可编程基带处理器的多模无线通信设 备的一个实施方式的框图。
在所示出的实施方式中,示出了从功能和硬件的方面出发对无线电 通信系统进行的基本划分。更具体地,多模无线通信设备100包括接收子系统110和发射子系统120,其分别联结至天线125。应当注意的是在 多种实施方式中,多模无线通信设备可以是手持式移动电话设备等。还 应当注意的是对于具有包括数字和字母两者的标号的部件,在适当的情 况下可仅通过数字来表示。
接收子系统110包括部分RF前端130的部分,其联结至模拟数字转 换器(ADC) 140。 ADC 140联结至可编程基带处理器(PBBP) 145A, 而PBBP 145A联结至应用处理器150。发射子系统120包括联结至PBBP 145B的应用处理器160,所述PBBP 145B联结至数字模拟转换器(DAC) 170。DAC 170还联结至RF前端130的一部分。应当注意的是PBBP 145A 和145B由一个可编程处理器实现,并在一些实施方式中PBBP 145A和 145B可以在一个集成电路上制造。还应当注意的是在一些实施方式中, ADC 140可以是PBBP 145A的一部分。
PBBP 145在发射子系统120和接收子系统110中执行多种功能。在 发射子系统120中,PBBP 145B可以将来自应用源的数据转换至适于无 线电信道的格式。例如,发射子系统120可以执行诸如信道编码、数字 调制、以及码元成形(symbol shaping)等的功能。信道编码是指使用不 同的纠错方法(如,巻积编码)和检错(如,使用循环冗余码(CRC))。数字调制是指把比特流映射为复数采样流的过程。数字调制中第一 (有时是唯一的)步骤是将比特群映射为特定的信号星座图(signal constellation),如,二进制相移键控(BPSK)、四相移键控(QPSK)、正 交调幅(QAM)。有多种将比特群映射为无线电信号的振幅和相位的方法。 在一些情况下,可以采用第二步骤一域转换。在正交频分复用(OFDM) 系统(即,在大量的相邻频率上同时发送信息的调制方法)中,可以对 该步骤采用快速傅里叶逆变换(IFFT)。在码分多址(CDMA)这样的扩 频系统中,例如,(通过向各活动用户分配单独的"码"而使多个用户能够 共享RF频谱的"扩频"方法),各码元被乘以"+l"和"-l"的扩频序列。最后 的步骤是码元成形,使用有限脉冲响应(finite impulse response, FIR)带 通滤波器将方波转换为带限信号。由于信道编码和映射功能通常在比特 级别上进行(并非码字级别),因此一般不适于在可编程处理器中实现。 然而,如以下所要详细说明的,在PBBP145的多种实施方式中,这些功 能及其它功能可以使用一个或多个专用硬件加速器来实现。
PBBP145可以执行诸如同步、信道均衡、解调、以及前向纠错之类 的功能。例如,接收子系统110由失真的模拟基带信号恢复码元,并以 可接受的比特误差率(bit error rate, BER)将其转换为比特流,以用于在 应用处理器150中运行的应用。
同步可被分为几个步骤。第一步骤可以包括检测输入信号或帧,并 有时被称为"能量检测"。与此相关,还可以进行诸如天线选择和增益控 制之类的操作。下一个步骤是码元同步,其旨在发现输入码元的准确定 时。所有之前的这些操作通常基于复数自相关或互相关。
在许多情况下,接收子系统110必须对无线电信道中的缺陷进行一 些补偿。这种补偿被称为信道均衡。在OFDM系统中,信道均衡可以包 括在执行FFT后对各子载波进行简单的缩放及旋转。在CDMA系统中, 经常使用"瑞克(rake)"接收机对来自多个信号路径的输入信号与不同的 路径延迟进行组合。在一些系统中,可以使用最小均方(least mean square, LMS)自适应滤波器。与同步类似,信道估计和均衡中所涉及到的大多 数操作可以采用基于巻积的算法。这些算法一般不足以类似到可以在现有的ASIC实现中共用相同的固定硬件。因此ASIC方案并不够灵活。然
而,它们可以在PBBP 145等的可编程DSP处理器上充分地实现。
解调被认为是调制的反操作。解调通常涉及到在OFDM系统中执行 FFT、在CDMA系统中与扩频序列进行相关或"解扩"。解调的最后一个 步骤可以是根据信号星座图将复数信号转换为比特。与信道编码类似, 去交织和信道解码并不适于固件实现。然而,如以下所要详细说明的, 用于巻积码的Viterbi解码或Turbo解码是要求很高的功能,可以实施为 一个或多个硬件加速器。
可编程基带处理器架构
图2示出了图1的可编程基带处理器的一个实施方式的框图。PBBP 145通过提供动态的再配置性,以多种工作模式(如,报头接收、有效负 载接收、以及传输)支持不同的无线电标准和不同的数据率。为了获得 理想的再配置性,PBBP 145的多种实施方式可以包括中央处理器内核, 其使用可编程连接网络控制处理器内核、多个存储单元、以及多种硬件 加速器之间的互连,从而对DSP流进行管理。
参考图2, PBBP 145包括处理器内核146和多个标为0至n的数据 存储单元,其中n可以是任意数。PBBP 145还包括多个标为0至m的硬 件加速器,其中m可以是任意数。另外,PBBP 145包括可编程网络250, 其联结在处理器内核146以及各个数据存储器和加速器之间。另外,PBBP 145包括分别标为220和215的整数和系数存储单元,其分别经由可编程 网络250联结至处理器内核146。最后,PBBP 145包括媒体访问层 (medium access layer, MAC)接口单元225,其联结在可编程网络250 和主机/MAC处理器(未示出)之间。
处理器内核
在所示出的实施方式中,处理器内核146包括控制单元260,其联 结至控制寄存器CR265并联结至可编程网络250。处理器内核146还包 括复数乘加器(complex multiplier accumulator, CMAC)单元270和复数 算术逻辑单元(complex arithmetic logic unit, CALU) 280,其均独立地联 结至可编程网络250。处理器内核146进一步包括矢量控制器275A,其联结至CMAC 270;以及矢量控制器275B,其联结至CALU280。
控制单元260包括ALU 261、单独的乘加器单元262、以及一组寄 存器堆(register file, RF) 263。在一个实施方式中,控制单元260可以作 为被配置为执行整数指令的简化指令集控制器(reduced instruction set controller, RISC)而工作。
CALU 280包括四个ALU,各ALU分别包括累加器(未示出),并 被标为282A至282D。 CALU 280还包括矢量存储单元283和矢量加载 单元284。应当注意的是在一个实施方式中,矢量存储单元283和矢量加 载单元284可以由四个ALU共享,但其可以使得四个ALU并行地工作。 还应当注意的是在一个实施方式中,矢量控制器275A和275B可以实现 为一个在CMAC 270和CALU280之间共享的共享单元。
对CMAC 270进行优化以对复数矢量进行运算。因而,CMAC 270 包括多个复数数据路径,它们可一起或单独地运行。在一个实施方式中, 数据路径CMAC 0和CMAC 1可以分别包括两个复数数据路径,所述复 数数据路径包括乘法器、加法器、以及累加寄存器(均未示出)。由此, CMAC 270可被称为四路CMAC数据路径。除了乘法和加法外,CMAC 0 和CMAC 1还可以分别执行取整和缩放操作,并支持饱和。在一个实施 方式中,CMAC 270的工作被分为三个管线(pipeline)步骤。另夕卜,CMAC 0和CMAC 1分别可以按N/2时钟周期对N元矢量(N-element vector) 进行运算。另外,CMAC O和CMAC 1可以对存储在累加寄存器中的复 数值进行运算(即,复数加、减、共轭,等等)。例如,CMAC 270可以 在一个时钟周期中计算(AR+jAI) * (BR+jBI)这样的复数乘法,在一 个时钟周期中执行复数累加,并支持复数矢量计算(如,复数巻积、共 轭复数巻积、以及复数矢量点积)。
在一个实施方式中,处理器内核146作为具有多个单指令多数据 (single-instruction multiple-data, SIMD)执行单元的DSP处理器而工作。 更具体地,可以把数据路径集合成SIMD簇(cluster),其中各个簇可以 使用矢量控制器275A和275B、矢量存储单元283、以及矢量加载单元 284。这些簇可以执行不同的任务,而一个簇中的每个数据路径可以在各
时钟周期中对多个数据执行一个指令。具体而言,四路CALU 280和四 路CMAC 270可以作为SIMD簇进行工作而执行四个并行的操作,如并 行地执行四个不同码的关联或解扩。类似地,CMAC 270可以执行两个 并行的Radix-2FFT蝶形(butterfly)或一个Radix-4 FFT蝶形。
指令集架构
在一个实施方式中,处理器内核146的指令集架构可以包括三类的 复合指令。第一类指令是RISC指令,其对16位整数操作数进行操作。 RISC指令类包括了大多数的面向控制的指令,并可在处理器内核146的 控制单元260中执行。下一类的指令是DSP指令,其对具有实部和虚部 的复数值数据进行操作。DSP指令可以在一个或多个SIMD簇上执行。 第三类的指令是矢量指令。由于矢量指令对大数据集进行操作,并且利 用高级寻址方式和矢量环支持,因此矢量指令被认为是DSP指令的扩展。 除了少数的例外,矢量指令级对复数数据类型进行操作。
很多基带接收算法可以分解为任务链,其中在任务之间只有很小的 向后依赖性。这种性质不仅使得SIMD执行单元可以并行地执行不同的 任务,还可以采用上述指令集架构而对这种性质加以利用。矢量运算可 以对大矢量进行操作,因此可以每个时钟周期发出一个指令,从而减小 了控制路径的复杂性。另外,由于矢量SIMD指令在长矢量上运行,因 此可以在矢量运算的过程中执行很多RISC指令。这样,在一个实施方式 中,处理器内核146可以是每时钟周期发出一个指令的机器,各SIMD 簇和控制单元可以按照管线的方式每时钟周期执行一个指令。由此, PBBP 145可被认为是并行地运行两个线程。第一个线程包括程序流和使 用控制单元260的各种处理。第二个线程包括对SIMD簇执行的复数矢 量计算。图3示出了图2的处理器内核的一个实施方式的指令执行管线。
参考图2和图3,图3的左列表示时间(执行时钟周期)。其余的列 表示复数SIMD簇的执行管线(如,CMAC270和CALU280)和控制单 元260以及发出的指令。更具体地,在第一时钟周期中,向CMAC270 发出复数矢量指令(如,CVL 256)。如图所示,矢量指令要多种周期才 能完成。在下一个时钟周期中,向CALU 280发出矢量指令。在下一个时钟周期中,向控制单元260发出整数指令。在接下来的几个周期中,在执行整数指令的同时,可以向控制单元260发出任意数量的整数指令。
更一般地,处理器可以包括一个或多个执行单元,所述执行单元被 配置为执行矢量指令。即, 一个或多个执行单元对包含数据的矢量进行 操作。这种用于执行矢量指令的执行单元的一个示例是CMAC,然而也 可以采用其它类型的这种执行单元。根据本发明的架构可以包括一个或 多个用于执行任意已知类型的矢量指令的执行单元及其任意组合。执行 单元可被设置为对复数值矢量(即对具有实部和虚部的复数值数据进行 操作的复数矢量指令)进行操作。或者,执行单元可设置为对实数进行 操作。
应当注意的是在一个实施方式中,为了提供控制流同步并控制数据 流,可以使用"闲置(idle)"指令来暂停控制流,直到完成了给定的矢量 操作。例如,对应的SIMD执行单元执行某些矢量指令会使控制单元260 执行"闲置"指令。"闲置"指令会暂停控制单元260,直到控制单元260从 对应的SIMD执行单元接收到诸如标志(flag)之类的指示。
硬件加速器
如上所述,为了提供对于多种无线电标准的多模支持,可以通过与 可编程内核结合使用的专用硬件加速器来提供多种基带功能。应当妥善 考虑这些功能的选择以进行加速。作为一个例子,规律地执行并由几个 无线电标准使用的功能是一个用以加速的不错的候选。
例如,在一个实施方式中,可以利用图2的加速器0至m实现以下 各功能间疏器(decimator) /滤波器、CDMA和DSSS调制方案中使用 的四"耙指(fmger) ,,RAKE功能、OFDM调制方案和正EE 802.lib中使 用的Radix-4FFT/改进型Walsh变换、解映射器(demapper)、巻积/Turbo 编码器-Viterbi解码器、可重配置块交织器、可重配置加扰器、以及CRC 加速器。应当注意的是在其它实施方式中,可以使用加速器0至m实现 其它数量和类型的功能。
在一个实施方式中,间疏器/滤波器加速器可以包括ADC和FIR滤 波器等的可重配置滤波器,其被用于如IEEE 802.11a等的标准。类似地,
四耙指RAKE加速器可以包括累加器单元和简单复数乘法器,所述简单 复数乘法器能够将釆样乘以{0+/-1和0+AU集合中的值。RAKE加速器还 可以包括用于延迟路径存储的本地复数存储器、解扩码发生器、以及匹 配滤波器(均未示出),它们执行多径搜索和信道估计功能。Radix-4FFT/ 改进型Walsh变换(FFT/MWT)加速器可以包括Radix-4蝶形(未示出) 和柔性地址发生器(未示出)。在一个实施方式中,FFT/MWT加速器可 以在54个时钟周期中执行64点FFT,在18个时钟周期中执行支持IEEE 802.11b标准的改进型Walsh变换。巻积/Turbo编码器-Viterbi解码器加速 器可以包括可重配置Viterbi解码器和Turbo编码器/解码器,以对巻积和 turbo纠错码提供支持。在一个实施方式中,可以通过Vitei"bi算法执行巻 积码的解码,而可以利用软输出Viterbi算法对Turbo码进行解码。可以 使用可重配置块交织器加速器来对数据重新排序,以在时间上(在OFDM 的情况下,在不同频率间)对相邻数据比特进行扩展。另外,可以使用 加扰器加速器来通过伪随机数据对数据进行加扰,以确保所发射的数据 流中"1"和"0"的均匀分布。CRC加速器可以包括线性反馈移位寄存器(未 示出)或用于产生CRC的其他算法。
存储单元
为了有效利用处理器内核146的SIMD架构,存储器的管理和分配 会是重要的考虑内容。这样,数据存储系统架构包括几个相对较小的数 据存储单元(如,DM0-DMn)。在一个实施方式中,可以使用数据存储 器DM0-DMn在处理过程中存储复数数据。各存储器可被实现为具有两 个交错的存储条(memory bank),这使得可以并行地访问两个连续的地 址(矢量元素)。另外,各数据存储器DMO-DMn可以包括地址发生单元 (如,图4示出的405A-405n),所述地址发生单元可以被配置为执行模 数寻址以及FFT寻址。如将在以下进一步描述的,各DM0-DMn可以经 由可编程网络250独立地并动态地连接至任意加速器及处理器内核146。 可以使用系数存储215来存储FFT和滤波器系数、查询表、以及其它未 由加速器处理的数据。可以使用整数存储器220来作为分组缓存器,其 存储MAC接口 225的比特流。系数存储器215和整数存储器220均经由
可编程网络250联结至处理器内核146。
可编程网络
可编程网络250被配置为对数据路径、存储器、加速器、以及外部 接口进行互连。由此,可编程网络250的作用类似于交叉开关(crossbar), 其中从一个输入(写)端口至一个输出(读取)端口建立连接,并且可 以在NxM结构中把任意输入端口连接至任意输出端口 。尽管在一些实施 方式中, 一些存储器和一些计算单元之间的连接并非必须的。这样,可 编程网络250可被优化为仅仅允许特定的存储结构,由此简化了可编程 网络250。具有可编程网络250这样的互连可以使得无需判定器(arbiter) 和寻址逻辑,由此减小了网络和加速器接口的复杂性,同时还允许进行 并行通讯。应当注意的是在一个实施方式中,可以使用多路复用器或与 或(And-Or)结构等的组合逻辑结构来实现可编程网络250。在进行测试 时,相比于包括多路复用器的实现方式,与或结构具有更小的网络硬件。
在一个实施方式中,可编程网络250实施为两个子网络。第一个子 网络可以被用于基于采样的传输,而第二个子网络可以是用于基于比特 的传输的串行网络。由于基于比特的传输需要对数据宽度与网络不相等 的数据块进行繁琐的成帧及解帧,因此划分成两个网络可以提高网络的 吞吐量。在这种实施方式中,各子网络可实施为单独的交叉开关(其由 处理器内核146进行配置)。可编程网络250还可被配置为使得具有相关 功能的加速器能够直接地相互连接成链,并与存储器连接。这种类型的 网络结构可以使数据在加速器单元之间无缝地流动,而无需处理器内核 146的干预,由此使处理器内核146仅仅在建立和解除网络连接的过程中 与网络发生关系。
如上所述,并不需要将所有的存储器连接至所有的计算元件,并且 可以把可编程网络250优化为仅仅允许特定的存储结构。在这些实施方 式中,可编程网络250可以被称为"部分网络(partial network)”。为了 在这些部分网络之间传输数据,可以把一个或多个数据存储单元(如, DMO)内的几个存储块同时分配给两个子系统。这些存储块可以用作任 务之间的乒乓缓存(ping-pong buffer)。通过在运算元件之间"交换"存储块,可以避免高成本的存储器移动。这种策略可以提供有效及可预测的数据 流,而无需进行高成本的存储器移动操作。
图4示出了图2的可编程网络的实施方式的另一特征。在示出的实
施方式中,连接至可编程网络250的各单元(如,处理器内核146、DM0-n、 加速器O-m、等等)包括接口端口 (其具有至少一个读/写端口对)。各读 /写端口对包括"数据入"和"数据出"信号以及"握手(handshake)入"和"握
手出"信号。在一个实施方式中,数据入/数据出信号分别可以是多位数据 路径,而握手入信号可以是读请求(RR)信号,握手出信号可以是数据 可用(DAV)信号。同样,可编程网络250包括多个对应的接口端口 (如, 接口端口 0-n),这些接口端口分别具有相同的端口信号。
另外,处理器内核146包括网络配置端口,该网络配置端口可以用 于向可编程网络250发送网络配置信息。在一个实施方式中,处理器内 核146使用专用的汇编指令或通过向图2的控制寄存器265等的寄存器 写入配置矢量,来对网络连接进行配置。
应当注意的是由于处理器内核146可以实施为成簇SIMD架构,因 此可以同时把一个以上的数据存储器DMO-DMn连接到处理器内核146 。 当可编程网络250如此配置时,可以把各数据存储器连接至相应的SIMD 簇端口 。
另外,如图5所示,可编程网络250的网络接口端口可以把加速器 (如,加速器O、 2、 3)连接成链,这个加速器链可以自动地同步并在它 们之间进行通信,并且与处理器内核146无关地(即不进行任何交互)、 而且在没有任何类型的判定器或网络主机单元的情况下进行工作。如上 所述,这种协议可以允许处理器内核146和任意数量的加速器的同时工 作,而在处理器内核146内没有同步的额外负担,由此使处理器内核146 能够执行有用的基带处理。另外,由于在加速器之间发送数据时不需要 进行中间存储,因此可以减少存储器访问次数。
可编程网络250可以被配置为允许给定的单元(如,处理器内核146、 加速器2,等等)独占地进行存储器访问以存储算法输出,由此可消除由 于访问冲突而造成的不工作(stall)周期。在完成一个任务之后,可以通过可编程网络250的重配置,把含有输出数据的整个存储器"移交"给加 速器或接口,从而消除了存储器之间的数据移动。
图6A和图6B是示出了连接至可编程网络250的一个实施方式的单 元之间定时的时序图。图6A示出了示例性的存储器请求定时,而图6B 示出了对于比请求方慢的单元(如,加速器)的数据请求的示例性定时。 图6A的时序图包括时钟信号、读请求信号(RR)、数据可用信号(DAV) 以及数字信号,而图6B包括附加的不工作信号。
在一个实施方式中,可编程网络250内以及各处理器内核14、加速 器0-m及数据存储器0-n内的接口端口逻辑可以被配置为在单元之间自 动地同步。因而,当可编程网络250被处理器内核146配置为连接两个 设备(如,处理器内核146和DMO)时,请求数据的设备的RR信号只 要信号可用就不会是闲置。更具体地,如果发送单元被配置为与请求方 的请求一样快地提供数据,只要请求方需要数据,RR信号就不会变成闲 置。如图6A所示,请求方在三个时钟周期中发出RR信号。在发出RR 之后的下一个时钟周期,发送方在三个时钟周期中发出DAV,同时发送 数据。因而,在三个时钟周期中发送三个"块"或单位的数据。在解除RR 之后的两个周期中,请求方再次在两个周期中发出RR。对发出RR之后 的一个周期中,发送方在两个周期中发出DAV,并且在这两个周期中发 送数据。
然而, 一些发送方并不能与请求方的请求一样快地向请求方提供数 据。这样,请求方可以被配置为如果存在两个以上的未完成读请求周期, 则停止RR信号。例如,在图6B中,在两个周期中发出RR,而发送方 未发出DAV。
相应地,请求方停止RR信号,直到在一个周期中发出了DAV并发 送了数据。由于仅发送了一个数据周期,因此随后再次发出RR信号,但 仅有一个周期,然后又是两个待处理的请求。由此,当请求方从较慢的 发送方请求数据时,请求方可以交替地发出和停止RR信号,以使发送方 能够赶上。然而应当注意的是,在其它实施方式中,可以考虑请求方在 少于或多于两个待处理请求之后停止。
图7示出了在与IEEE 802.11a标准相关的有效负载处理操作的过程 中、图2和图4的可编程基带处理器的一个实施方式的示例性管线操作。 在一个实施方式中,处理流程可以包括在三个管线阶段接收及处理偶数 和奇数码元(即,在任意给定的时间、来自三个不同OFDM码元(分别 包括80个输入采样)的数据可以在PBBP145的不同部分中进行处理)。
更具体地,在奇数码元间隔阶段1中,由ADC前端/滤波器接收奇 数码元,而采样被存储至DMO。在奇数码元间隔阶段2中,处理器内核 146对存储在DM1中的偶数采样进行操作,并将结果存储至DM3。在奇 数码元间隔阶段3中,加速器链独立地对存储在DM2中的结果进行操作, 并将结果传送至MAC层接口。类似地,在偶数码元间隔阶段1中,由 ADC前端/滤波器接收偶数码元,而采样被存储至DM1。在偶数码元间 隔阶段2中,处理器内核146对存储在DM0中的奇数采样进行操作,并 将结果存储至DM2。在偶数码元间隔阶段3中,加速器链独立地对存储 在DM3中的结果进行操作,并将结果传送至MAC层接口。
如上所述,可以在工作过程中对可编程网络250进行动态配置,以 便于数据在加速器、数据存储器以及处理器内核146之间流动。另外, 可以使用闲置指令、中断以及标志在运行的处理之间提供流控制。
参考图2和图7,在第一管线阶段,处理器内核146配置可编程网 络250以将间疏器/滤波器加速器(如,滤波器1)连接至数据存储器(如, DMO)(块600)。当加速器O接收到奇数OFDM码元时,可以执行间疏 及频率偏移补偿,并且可以把补偿后的采样经由可编程网络250发送至 DMO。在一个实施方式中,在接收到完整的码元时,加速器O内的采样 计数功能(未示出)可以向处理器内核146产生中断(块605)。响应于 该中断,处理器内核146可以重新配置可编程网络250,以将加速器O连 接至不同的数据存储器(如,DM1),从而可以把下一个码元的釆样传送 至DM1。基本上同时,可以把DMO和另一个数据存储器(如,DM2) 连接至处理器内核146 (块610)。加速器0现在可以接收偶数码元并对 偶数码元进行操作,并且将对应的采样写入DM1 (块615)。
在第二管线阶段,响应于加速器O产生的中断,处理器内核146可
以对存储在DM0内的釆样进行操作。在一个实施方式中,处理器内核146 可以对DM0中目前可用的码元执行FFT以及信道补偿,以及一些相位和 信道跟踪任务(块635)。可以把补偿后的频域采样从处理器内核146经 由可编程网络250传送至DM2 (块640)。
当处理器内核146完成将结果发送至DM2时,处理器内核146可以 通过将链中另外的加速器(如,加速器1-4)和DM2连接至链的输入端, 对可编程网络250进行重新配置(块645)。例如,对于加速器链的存储 包括将DM2连接至解映射器,该解映射器可以连接至去交织器,该去交 织器可以被连接至Viterbi解码器,该Viterbi解码器可以被连接至MAC 层接口。基本上同时,如果加速器0完成了将偶数采样发送至DM1,则 处理器内核146还可以使可编程网络250将加速器0再次连接至DMO(块 620),从而加速器O可以处理下一个奇数码元,并将采样存储至DMO(块 625)。
当加速器0完成下一个奇数码元时,如上所述在块605中产生中断。 响应于该中断,处理器内核146可以重新配置可编程网络250。以将加速 器0连接至DM1,并将处理器内核146连接至DM0和DM2 (块630)。 应当注意的是当处理器内核146可能会闲置。例如,处理器内核146会 等待加速器0完成将采样存储到一个数据存储器中。
第三管线阶段包括加速器链独立于处理器内核146所执行的操作而 对存储在DM2中的结果进行操作。例如,加速器链可以执行解映射和信 道解码操作,以及将所得到的比特流传送至MAC层接口 (块660)。当 加速器链完成了对DM2中的数据进行的操作时,加速器链可以向处理器 内核146产生中断。当结果在DM3中准备就绪时,处理器内核146可以 对可编程网络250进行重新配置,以将DM3连接至加速器链的输入端(块 665)。加速器链对存储在DM3中的结果进行操作,并将所得到的比特流 传送至MAC层接口 (块670)。
由于上述架构和微架构的灵活性,PBBP 145可以对多种无线电标准 和这些标准中的多种模式提供支持。
另外,本发明非常适于实现用于无线电应用的可编程基带处理器。
然而,本发明可被用为媒体通信处理器,即特别设计用于生成和发布数 字媒体的处理器。由此,本发明还可用于建立对声频、视频、图像、传 真及调制解调器操作的任意组合进行处理的多媒体子系统。
尽管对以上实施方式进行了非常详细的描述,当本领域的技术人员 完全理解以上公开内容时,多种改动和修改将变得显而易见。所附的权 利要求应被解释为包括所有这些改动和修改。
权利要求
1.一种数字信号处理器,其特征在于,多个存储单元(0、......、n);多个加速器单元(0、......、m),其被配置为执行一个或多个专用功能;处理器内核(146),其包括被配置为执行与数据路径流控制相关的指令的执行单元;以及可编程网络(250),其被配置为响应于所述指令的执行而选择性地提供所述多个存储单元、所述多个加速器单元以及所述处理器内核之间的连接。
2. 如权利要求1所述的数字信号处理器,其中,响应于特定指令的执行,所述可编程网络(250)被配置为将所述多个存储单元(0........n)中给定的一个存储单元联结到所述多个加速器单元(0........ m)中给定的一个加速器单元。
3. 如权利要求1所述的数字信号处理器,其中,响应于特定指令的 执行,可编程网络(250)被配置为将所述多个存储单元中的一个或多个 存储单元(0........ n)联结到所述处理器内核。
4. 如权利要求1-3中任意一项所述的数字信号处理器,其中,响应 于特定指令的执行,可编程网络(250)被配置为将所述多个加速器单元(0........ m)中的两个或更多个加速器单元联结在一起成为链,并且进一步将所述链中的第一个加速器单元联结到所述多个存储单元(0........ n)中给定的一个存储单元与所述处理器内核(146)中的其中之一。
5. 如权利要求4所述的数字信号处理器,其中,所述多个加速器单元(0........ m)中的各加速器单元在所述链中与另一个加速器单元相连时,被配置为不经所述处理器内核的干预而与其所连接的加速器单元 进行通讯。
6. 如前述权利要求中任意一项所述的数字信号处理器,其中,所述可编程网络(250)包括多个相应的接口端口,其用于连接处理器内核(146)、连接所述多个存储单元(0........ n)中的每一个、并且连接所述多个加速器单元(0、 ....... m)中的每一个。
7. 如权利要求6所述的数字信号处理器,其中,各个相应的接口端 口包括读写端口对,其中,各读写端口对包括读请求信号、数据可用信 号和多个数据线。
8. 如前述权利要求中任意一项所述的数字信号处理器,其中,所述 处理器内核(146)进一步包括一个或多个被配置为执行矢量指令的执行 单元,所述一个或多个执行单元对包含数据的矢量进行运算。
9. 如权利要求8所述的数字信号处理器,其中,所述执行单元包括 一个或多个指令执行管线,各指令执行管线被配置为每个时钟周期执行 一次运算。
10. 如权利要求9所述的数字信号处理器,其中,所述执行单元被 配置为执行单指令多数据(SIMD)指令。
11. 如权利要求9或IO所述的数字信号处理器,其中,所述一个或多个执行管线各被设置为对所述矢量的不同数据执行相同的指令。
12. 如权利要求9所述的数字信号处理器,其中, 一个或多个所述执行单元的一个或多个所述执行管线是复数乘加器单元。
13. 如权利要求8所述的数字信号处理器,其中,所述执行单元中 的一个或多个是复数执行单元,所述复数执行单元被配置为执行对具有 实部和虚部的复数值数据进行运算的复数矢量指令。
14. 如权利要求13所述的数字信号处理器,其中,所述复数执行单元被配置为自然地把任何数据解释为复数值数据。
15. 如权利要求13所述的数字信号处理器,其中,所述复数执行单 元包括一个或多个指令执行管线,各指令执行管线被配置为每个时钟周期执行一次复数运算。
16. 如权利要求15所述的数字信号处理器,其中,所述一个或多个指令执行管线中的一个或多个具有被配置为执行复数矢量指令的复数算 术逻辑单元。
17. 如权利要求1所述的数字信号处理器,其中,所述处理器内核(146)进一步包括被配置为对具有实部和虚部的复数值数据进行运算的 复数乘加器单元。
18. 如前述权利要求中任意一项所述的数字信号处理器,其中,所 述一个或多个专用功能中给定的各功能与不同的无线通信标准相关。
19. 如前述权利要求中任意一项所述的数字信号处理器,其中,所述多个存储单元(0........ n)各具有地址发生单元,所述地址发生单元被配置为响应于接收到读或写事务而生成与本地存储位置相对应的地 址。
20. 如前述权利要求中任意一项所述的数字信号处理器,其中,所述多个存储单元(0、 ......、 n)、所述多个加速器单元(0、 ....... m)、所述处理器内核(146)、以及所述可编程网络(250)各被制造在单个集 成电路上。
21. 如前述权利要求中任意一项所述的数字信号处理器,其中,所述多个加速器单元(0.......、 m)中的至少一部分加速器单元是与基带信号处理相关的专用功能的可配置硬件实现。
22. 如前述权利要求中任意一项所述的数字信号处理器,其中,所述数字信号处理器被用作无线电应用的可编程基带处理器。
23. 如权利要求1-21中任意一项所述的数字信号处理器,其中,所述数字信号处理器被用作媒体处理器。
24. —种多模无线通信设备(100),其特征在于 射频前端单元(130),其被配置为发射和接收射频信号;可编程数字信号处理器,其与所述射频前端单元(130)联结,其中,所述可编程数字信号处理器包括 多个存储单元(0、 ....... n)-,多个加速器单元(0........ m),各加速器单元被配置为执行一个或多个专用功能;处理器内核(146),其包括被配置为执行与数据路径流控制相关的 指令的执行单元;以及可编程网络(250),其被配置为响应于所述指令的执行而选择性地提供所述多个存储单元(0.......、 n)、所述多个加速器单元(0........m)以及所述处理器内核(146)之间的连接。
25. 如权利要求24所述的无线通信设备,其中,响应于特定指令的 执行,所述可编程网络被配置为将所述多个存储单元中给定的一个存储 单元联结到所述多个加速器单元中给定的一个加速器单元。
26. 如权利要求24所述的无线通信设备,其中,响应于特定指令的 执行,所述可编程网络被配置为将所述多个存储单元中的一个或多个存 储单元联结到所述处理器内核。
27. 如权利要求24所述的无线通信设备,其中,响应于特定指令的 执行,所述可编程网络被配置为将所述多个加速器单元中的两个或更多 个加速器单元联结在一起成为链,并且进一步将所述链中的第一个加速 器单元联结到所述多个存储单元中给定的一个存储单元与所述处理器内 核中的其中之一。
28. 如权利要求27所述的无线通信设备,其中,所述多个加速器单 元中的各加速器单元在所述链中与另一个加速器单元相连接时,被配置 为不经所述处理器内核的干预而与其所连接的加速器单元进行通讯。
29. 如权利要求24所述的无线通信设备,其中,所述可编程网络包 括多个相应的接口端口,其用于连接所述处理器内核、连接所述多个存 储单元中的每一个、并且连接所述多个加速器单元中的每一个。
30. 如权利要求29所述的无线通信设备,其中,各个相应的接口端 口包括读写端口对,其中,各读写端口对包括读请求信号、数据可用信 号和多个数据线。
31. 如权利要求24所述的无线通信设备,其中,所述处理器内核进一步包括被配置为执行复数矢量指令的复数执行单元,所述复数执行单 元对具有实部和虚部的复数值数据进行运算。
32. 如权利要求31所述的无线通信设备,其中,所述复数执行单元 包括多个指令执行管线,各指令执行管线被配置为每个时钟周期执行一 次复数运算。
33. 如权利要求32所述的无线通信设备,其中,所述多个指令执行 管线各包括被配置为执行复数矢量指令的复数算术逻辑单元。
34. 如权利要求32所述的无线通信设备,其中,所述复数执行单元 被配置为执行单指令多数据(SIMD)指令。
35. 如权利要求24所述的无线通信设备,其中,所述处理器内核进 一步包括被配置为执行对具有实部和虚部的复数值数据进行运算的复数 乘加器单元。
36. 如权利要求35所述的无线通信设备,其中,所述复数乘加器单 元被配置为自然地把任何数据解译为复数值数据。
37. 如权利要求24所述的无线通信设备,其中,所述可编程数字信 号处理器被配置为在多个无线通信标准所建立的参数内进行工作。
38. 如权利要求24所述的无线通信设备,其中,所述多个加速器单 元中的至少一部分加速器单元是与符合多个无线通信标准的信号的基带 信号处理相关的专用功能的可配置硬件实现。
全文摘要
本发明涉及一种可编程数字信号处理器,其包括多个存储单元、多个加速器单元、以及处理器内核。所述数字信号处理器还包括可编程网络,该可编程网络可以被配置为选择性地提供所述存储单元、加速器单元及处理器内核之间的连接。各加速器单元可以被配置为执行一个或多个专用功能。所述处理器内核可以包括被配置为执行与数据路径流控制相关的指令的执行单元。所述可编程网络可以被配置为响应于特定指令的执行而选择性地提供连接。
文档编号G06F15/78GK101203846SQ200680018304
公开日2008年6月18日 申请日期2006年5月23日 优先权日2005年5月24日
发明者埃里克·特尔, 安德斯·尼尔松, 达克·刘 申请人:科莱索尼克公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1