CN101203846B - 具有可编程网络的数字信号处理器 - Google Patents
具有可编程网络的数字信号处理器 Download PDFInfo
- Publication number
- CN101203846B CN101203846B CN2006800183044A CN200680018304A CN101203846B CN 101203846 B CN101203846 B CN 101203846B CN 2006800183044 A CN2006800183044 A CN 2006800183044A CN 200680018304 A CN200680018304 A CN 200680018304A CN 101203846 B CN101203846 B CN 101203846B
- Authority
- CN
- China
- Prior art keywords
- accelerator
- instruction
- digital signal
- unit
- signal processor
- 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
- 230000006870 function Effects 0.000 claims abstract description 26
- 230000004044 response Effects 0.000 claims abstract description 24
- 238000003860 storage Methods 0.000 claims description 53
- 238000000034 method Methods 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 9
- VIEYMVWPECAOCY-UHFFFAOYSA-N 7-amino-4-(chloromethyl)chromen-2-one Chemical group ClCC1=CC(=O)OC2=CC(N)=CC=C21 VIEYMVWPECAOCY-UHFFFAOYSA-N 0.000 description 21
- 238000012545 processing Methods 0.000 description 7
- 238000005070 sampling Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000001228 spectrum Methods 0.000 description 3
- 210000000352 storage cell Anatomy 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000007493 shaping process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000255777 Lepidoptera Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000021615 conjugation Effects 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
- G06F15/7857—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers) using interleaved memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- 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/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30079—Pipeline control instructions, e.g. multicycle NOP
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
- G06F9/3891—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B1/00—Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
- H04B1/0003—Software-defined radio [SDR] systems, i.e. systems wherein components typically implemented in hardware, e.g. filters or modulators/demodulators, are implented using software, e.g. by involving an AD or DA conversion stage such that at least part of the signal processing is performed in the digital domain
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
- Logic Circuits (AREA)
- Communication Control (AREA)
Abstract
本发明涉及一种可编程数字信号处理器,其包括多个存储单元、多个加速器单元、以及处理器内核。所述数字信号处理器还包括可编程网络,该可编程网络可以被配置为选择性地提供所述存储单元、加速器单元及处理器内核之间的连接。各加速器单元可以被配置为执行一个或多个专用功能。所述处理器内核可以包括被配置为执行与数据路径流控制相关的指令的执行单元。所述可编程网络可以被配置为响应于特定指令的执行而选择性地提供连接。
Description
技术领域
本发明涉及数字信号处理器,更具体地涉及可编程数字信号处理器。
背景技术
在短短的时间内,无线设备、尤其是移动电话的使用显著地增加。无线设备在全球范围的迅速扩张导致出现了大量的无线电标准以及无线产品集中上市。由此导致对软件无线电(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解决方案相比,芯片面积(diearea)较大且性能有限。因此,希望有一种可编程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包括联结至PBBP145B的应用处理器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))。数字调制是指把比特流映射为复数采样流的过程。数字调制中第一(有时是唯一的)步骤是将比特群映射为特定的信号星座图(signalconstellation),如,二进制相移键控(BPSK)、四相移键控(QPSK)、正交调幅(QAM)。有多种将比特群映射为无线电信号的振幅和相位的方法。在一些情况下,可以采用第二步骤-域转换。在正交频分复用(OFDM)系统(即,在大量的相邻频率上同时发送信息的调制方法)中,可以对该步骤采用快速傅里叶逆变换(IFFT)。在码分多址(CDMA)这样的扩频系统中,例如,(通过向各活动用户分配单独的“码”而使多个用户能够共享RF频谱的“扩频”方法),各码元被乘以“+1”和“-1”的扩频序列。最后的步骤是码元成形,使用有限脉冲响应(finite impulse response,FIR)带通滤波器将方波转换为带限信号。由于信道编码和映射功能通常在比特级别上进行(并非码字级别),因此一般不适于在可编程处理器中实现。然而,如以下所要详细说明的,在PBBP 145的多种实施方式中,这些功能及其它功能可以使用一个或多个专用硬件加速器来实现。
PBBP 145可以执行诸如同步、信道均衡、解调、以及前向纠错之类的功能。例如,接收子系统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的可编程基带处理器的一个实施方式的框图。PBBP145通过提供动态的再配置性,以多种工作模式(如,报头接收、有效负载接收、以及传输)支持不同的无线电标准和不同的数据率。为了获得理想的再配置性,PBBP 145的多种实施方式可以包括中央处理器内核,其使用可编程连接网络控制处理器内核、多个存储单元、以及多种硬件加速器之间的互连,从而对DSP流进行管理。
参考图2,PBBP 145包括处理器内核146和多个标为0至n的数据存储单元,其中n可以是任意数。PBBP 145还包括多个标为0至m的硬件加速器,其中m可以是任意数。另外,PBBP 145包括可编程网络250,其联结在处理器内核146以及各个数据存储器和加速器之间。另外,PBBP145包括分别标为220和215的整数和系数存储单元,其分别经由可编程网络250联结至处理器内核146。最后,PBBP 145包括媒体访问层(medium access layer,MAC)接口单元225,其联结在可编程网络250和主机/MAC处理器(未示出)之间。
处理器内核
在所示出的实施方式中,处理器内核146包括控制单元260,其联结至控制寄存器CR 265并联结至可编程网络250。处理器内核146还包括复数乘加器(complex multiplier accumulator,CMAC)单元270和复数算术逻辑单元(complex arithmetic logic unit,CALU)280,其均独立地联结至可编程网络250。处理器内核146进一步包括:矢量控制器275A,其联结至CMAC 270;以及矢量控制器275B,其联结至CALU 280。
控制单元260包括ALU 261、单独的乘加器单元262、以及一组寄存器堆(register file,RF)263。在一个实施方式中,控制单元260可以作为被配置为执行整数指令的简化指令集控制器(reduced instruction setcontroller,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)步骤。另外,CMAC0和CMAC 1分别可以按N/2时钟周期对N元矢量(N-element vector)进行运算。另外,CMAC 0和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-2 FFT蝶形(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簇的执行管线(如,CMAC 270和CALU 280)和控制单元260以及发出的指令。更具体地,在第一时钟周期中,向CMAC 270发出复数矢量指令(如,CVL 256)。如图所示,矢量指令要多种周期才能完成。在下一个时钟周期中,向CALU 280发出矢量指令。在下一个时钟周期中,向控制单元260发出整数指令。在接下来的几个周期中,在执行整数指令的同时,可以向控制单元260发出任意数量的整数指令。
更一般地,处理器可以包括一个或多个执行单元,所述执行单元被配置为执行矢量指令。即,一个或多个执行单元对包含数据的矢量进行操作。这种用于执行矢量指令的执行单元的一个示例是CMAC,然而也可以采用其它类型的这种执行单元。根据本发明的架构可以包括一个或多个用于执行任意已知类型的矢量指令的执行单元及其任意组合。执行单元可被设置为对复数值矢量(即对具有实部和虚部的复数值数据进行操作的复数矢量指令)进行操作。或者,执行单元可设置为对实数进行操作。
应当注意的是在一个实施方式中,为了提供控制流同步并控制数据流,可以使用“闲置(idle)”指令来暂停控制流,直到完成了给定的矢量操作。例如,对应的SIMD执行单元执行某些矢量指令会使控制单元260执行“闲置”指令。“闲置”指令会暂停控制单元260,直到控制单元260从对应的SIMD执行单元接收到诸如标志(flag)之类的指示。
硬件加速器
如上所述,为了提供对于多种无线电标准的多模支持,可以通过与可编程内核结合使用的专用硬件加速器来提供多种基带功能。应当妥善考虑这些功能的选择以进行加速。作为一个例子,规律地执行并由几个无线电标准使用的功能是一个用以加速的不错的候选。
例如,在一个实施方式中,可以利用图2的加速器0至m实现以下各功能:间疏器(decimator)/滤波器、CDMA和DSSS调制方案中使用的四“耙指(finger)”RAKE功能、OFDM调制方案和IEEE 802.11b中使用的Radix-4 FFT/改进型Walsh变换、解映射器(demapper)、卷积/Turbo编码器-Viterbi解码器、可重配置块交织器、可重配置加扰器、以及CRC加速器。应当注意的是在其它实施方式中,可以使用加速器0至m实现其它数量和类型的功能。
在一个实施方式中,间疏器/滤波器加速器可以包括ADC和FIR滤波器等的可重配置滤波器,其被用于如IEEE 802.11a等的标准。类似地,四耙指RAKE加速器可以包括累加器单元和简单复数乘法器,所述简单复数乘法器能够将采样乘以{0+/-1和0+/-1}集合中的值。RAKE加速器还可以包括用于延迟路径存储的本地复数存储器、解扩码发生器、以及匹配滤波器(均未示出),它们执行多径搜索和信道估计功能。Radix-4 FFT/改进型Walsh变换(FFT/MWT)加速器可以包括Radix-4蝶形(未示出)和柔性地址发生器(未示出)。在一个实施方式中,FFT/MWT加速器可以在54个时钟周期中执行64点FFT,在18个时钟周期中执行支持IEEE802.11b标准的改进型Walsh变换。卷积/Turbo编码器-Viterbi解码器加速器可以包括可重配置Viterbi解码器和Turbo编码器/解码器,以对卷积和turbo纠错码提供支持。在一个实施方式中,可以通过Viterbi算法执行卷积码的解码,而可以利用软输出Viterbi算法对Turbo码进行解码。可以使用可重配置块交织器加速器来对数据重新排序,以在时间上(在OFDM的情况下,在不同频率间)对相邻数据比特进行扩展。另外,可以使用加扰器加速器来通过伪随机数据对数据进行加扰,以确保所发射的数据流中“1”和“0”的均匀分布。CRC加速器可以包括线性反馈移位寄存器(未示出)或用于产生CRC的其他算法。
存储单元
为了有效利用处理器内核146的SIMD架构,存储器的管理和分配会是重要的考虑内容。这样,数据存储系统架构包括几个相对较小的数据存储单元(如,DM0-DMn)。在一个实施方式中,可以使用数据存储器DM0-DMn在处理过程中存储复数数据。各存储器可被实现为具有两个交错的存储条(memory bank),这使得可以并行地访问两个连续的地址(矢量元素)。另外,各数据存储器DM0-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、DM 0-n、加速器0-m、等等)包括接口端口(其具有至少一个读/写端口对)。各读/写端口对包括“数据入”和“数据出”信号以及“握手(handshake)入”和“握手出”信号。在一个实施方式中,数据入/数据出信号分别可以是多位数据路径,而握手入信号可以是读请求(RR)信号,握手出信号可以是数据可用(DAV)信号。同样,可编程网络250包括多个对应的接口端口(如,接口端口0-n),这些接口端口分别具有相同的端口信号。
另外,处理器内核l46包括网络配置端口,该网络配置端口可以用于向可编程网络250发送网络配置信息。在一个实施方式中,处理器内核146使用专用的汇编指令或通过向图2的控制寄存器265等的寄存器写入配置矢量,来对网络连接进行配置。
应当注意的是由于处理器内核146可以实施为成簇SIMD架构,因此可以同时把一个以上的数据存储器DM0-DMn连接到处理器内核146。当可编程网络250如此配置时,可以把各数据存储器连接至相应的SIMD簇端口。
另外,如图5所示,可编程网络250的网络接口端口可以把加速器(如,加速器0、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个输入采样)的数据可以在PBBP 145的不同部分中进行处理)。
更具体地,在奇数码元间隔阶段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)连接至数据存储器(如,DM0)(块600)。当加速器0接收到奇数OFDM码元时,可以执行间疏及频率偏移补偿,并且可以把补偿后的采样经由可编程网络250发送至DM0。在一个实施方式中,在接收到完整的码元时,加速器0内的采样计数功能(未示出)可以向处理器内核146产生中断(块605)。响应于该中断,处理器内核146可以重新配置可编程网络250,以将加速器0连接至不同的数据存储器(如,DM1),从而可以把下一个码元的采样传送至DM1。基本上同时,可以把DM0和另一个数据存储器(如,DM2)连接至处理器内核146(块610)。加速器0现在可以接收偶数码元并对偶数码元进行操作,并且将对应的采样写入DM1(块615)。
在第二管线阶段,响应于加速器0产生的中断,处理器内核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再次连接至DM0(块620),从而加速器0可以处理下一个奇数码元,并将采样存储至DM0(块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可以对多种无线电标准和这些标准中的多种模式提供支持。
另外,本发明非常适于实现用于无线电应用的可编程基带处理器。然而,本发明可被用为媒体通信处理器,即特别设计用于生成和发布数字媒体的处理器。由此,本发明还可用于建立对声频、视频、图像、传真及调制解调器操作的任意组合进行处理的多媒体子系统。
尽管对以上实施方式进行了非常详细的描述,当本领域的技术人员完全理解以上公开内容时,多种改动和修改将变得显而易见。所附的权利要求应被解释为包括所有这些改动和修改。
Claims (34)
1.一种数字信号处理器,所述数字信号处理器包括,
多个存储单元(0、......、n),每一个所述多个存储单元(0、......、n)包括地址发生单元(405a-n);
多个加速器单元(0、......、m),其被配置为执行一个或多个专用功能;
处理器内核(146),其包括被配置为执行与数据路径流控制相关的指令的执行单元;以及
可编程网络(250),其被配置为响应于所述指令的执行而选择性地提供所述多个存储单元、所述多个加速器单元以及所述处理器内核之间的连接;
其中,所述多个存储单元(0、......、n)每一个能够经由所述可编程网络(250)独立地并动态地连接至所述多个加速器单元(0、......、m)中任意加速器单元及所述处理器内核(146),
其中,响应于第一特定指令的执行,所述可编程网络(250)被配置为将所述多个加速器单元(0、......、m)中的两个或更多个加速器单元连接在一起成为链,并且进一步将所述链中的第一个加速器单元选择性地连接到所述多个存储单元(0、......、n)中给定的一个存储单元,从而,为数据提供在没有处理器内核进一步干预的情况下从所述链中的一个加速器单元流到所述链中下一个加速器单元的数据路径。
2.如权利要求1所述的数字信号处理器,其中,响应于第二特定指令的执行,所述可编程网络(250)被配置为将所述多个存储单元(0、......、n)中所述给定的一个存储单元连接到所述多个加速器单元(0、......、m)中给定的一个加速器单元。
3.如权利要求1所述的数字信号处理器,其中,响应于第二特定指令的执行,可编程网络(250)被配置为将所述多个存储单元中的一个或多个存储单元(0、......、n)连接到所述处理器内核。
4.如权利要求1所述的数字信号处理器,其中,响应于第二特定指令的执行,可编程网络(250)进一步被配置为将所述链中的所述第一个加速器单元连接到所述处理器内核(146)。
5.如权利要求1所述的数字信号处理器,其中,所述可编程网络(250)包括多个相应的接口端口,其用于连接处理器内核(146)、连接所述多个存储单元(0、......、n)中的每一个、并且连接所述多个加速器单元(0、......、m)中的每一个。
6.如权利要求1所述的数字信号处理器,其中,所述处理器内核(146)进一步包括一个或多个被配置为执行矢量指令的执行单元,所述一个或多个执行单元对包含数据的矢量进行运算。
7.如权利要求6所述的数字信号处理器,其中,所述执行矢量指令的执行单元包括一个或多个指令执行管线,各指令执行管线被配置为每个时钟周期执行一次运算。
8.如权利要求7所述的数字信号处理器,其中,所述执行矢量指令的执行单元被配置为执行单指令多数据(SIMD)指令。
9.如权利要求7或8所述的数字信号处理器,其中,所述一个或多个指令执行管线各被设置为对所述矢量的不同数据执行相同的指令。
10.如权利要求7所述的数字信号处理器,其中,一个或多个所述执行矢量指令的执行单元的一个或多个所述指令执行管线是复数乘加器单元。
11.如权利要求6所述的数字信号处理器,其中,所述执行矢量指令的执行单元中的一个或多个是复数执行单元,所述复数执行单元被配置为执行对具有实部和虚部的复数值数据进行运算的复数矢量指令。
12.如权利要求11所述的数字信号处理器,其中,所述复数执行单元被配置为自然地把任何数据解释为复数值数据。
13.如权利要求11所述的数字信号处理器,其中,所述复数执行单元包括一个或多个指令执行管线,各指令执行管线被配置为每个时钟周期执行一次复数运算。
14.如权利要求13所述的数字信号处理器,其中,所述一个或多个指令执行管线中的一个或多个具有被配置为执行复数矢量指令的复数算术逻辑单元。
15.如权利要求1所述的数字信号处理器,其中,所述处理器内核(146)进一步包括被配置为对具有实部和虚部的复数值数据进行运算的复数乘加器单元。
16.如权利要求1所述的数字信号处理器,其中,所述一个或多个专用功能中给定的各功能与不同的无线通信标准相关。
17.如权利要求1所述的数字信号处理器,其中,所述地址发生单元被配置为响应于接收到读或写事务而生成与本地存储位置相对应的地址。
18.如权利要求1所述的数字信号处理器,其中,所述多个存储单元(0、......、n)、所述多个加速器单元(0、......、m)、所述处理器内核(146)、以及所述可编程网络(250)各被制造在单个集成电路上。
19.如权利要求1所述的数字信号处理器,其中,所述多个加速器单元(0、......、m)中的至少一部分加速器单元是与基带信号处理相关的专用功能的可配置硬件实现。
20.如权利要求1所述的数字信号处理器,其中,所述数字信号处理器被用作无线电应用的可编程基带处理器。
21.如权利要求1所述的数字信号处理器,其中,所述数字信号处理器被用作媒体处理器。
22.一种多模无线通信设备(100),所述多模无线通信设备(100)包括:
射频前端单元(130),其被配置为发射和接收射频信号;
可编程数字信号处理器,其与所述射频前端单元(130)连接,其中,所述可编程数字信号处理器包括:
多个存储单元(0、......、n),每一个所述多个存储单元(0、......、n)包括地址发生单元(405a-n);
多个加速器单元(0、......、m),各加速器单元被配置为执行一个或多个专用功能;
处理器内核(146),其包括被配置为执行与数据路径流控制相关的指令的执行单元;以及
可编程网络(250),其被配置为响应于所述指令的执行而选择性地提供所述多个存储单元(0、......、n)、所述多个加速器单元(0、......、m)以及所述处理器内核(146)之间的连接;
其中,所述多个存储单元(0、......、n)每一个能够经由所述可编程网络(250)独立地并动态地连接至所述多个加速器单元(0、......、m)中任意加速器单元及所述处理器内核(146),
其中,响应于第一特定指令的执行,所述可编程网络(250)被配置为将所述多个加速器单元(0、......、m)中的两个或更多个加速器单元连接在一起成为链,并且进一步将所述链中的第一个加速器单元选择性地连接到所述多个存储单元(0、......、n)中给定的一个存储单元,从而为数据提供在没有处理器内核进一步干预的情况下从所述链中的一个加速器单元流到所述链中下一个加速器单元的数据路径。
23.如权利要求22所述的无线通信设备,其中,响应于第二特定指令的执行,所述可编程网络被配置为将所述多个存储单元中所述给定的一个存储单元连接到所述多个加速器单元中给定的一个加速器单元。
24.如权利要求22所述的无线通信设备,其中,响应于第二特定指令的执行,所述可编程网络被配置为将所述多个存储单元中的一个或多个存储单元连接到所述处理器内核。
25.如权利要求22所述的无线通信设备,其中,响应于第二特定指令的执行,所述可编程网络被进一步配置为将所述链中的所述第一个加速器单元连接到所述处理器内核。
26.如权利要求22所述的无线通信设备,其中,所述可编程网络包括多个相应的接口端口,其用于连接所述处理器内核、连接所述多个存储单元中的每一个、并且连接所述多个加速器单元中的每一个。
27.如权利要求22所述的无线通信设备,其中,所述处理器内核进一步包括被配置为执行复数矢量指令的复数执行单元,所述复数执行单元对具有实部和虚部的复数值数据进行运算。
28.如权利要求27所述的无线通信设备,其中,所述复数执行单元包括多个指令执行管线,各指令执行管线被配置为每个时钟周期执行一次复数运算。
29.如权利要求28所述的无线通信设备,其中,所述多个指令执行管线各包括被配置为执行复数矢量指令的复数算术逻辑单元。
30.如权利要求28所述的无线通信设备,其中,所述复数执行单元被配置为执行单指令多数据(SIMD)指令。
31.如权利要求22所述的无线通信设备,其中,所述处理器内核进一步包括被配置为执行对具有实部和虚部的复数值数据进行运算的复数乘加器单元。
32.如权利要求31所述的无线通信设备,其中,所述复数乘加器单元被配置为自然地把任何数据解译为复数值数据。
33.如权利要求22所述的无线通信设备,其中,所述可编程数字信号处理器被配置为在多个无线通信标准所建立的参数内进行工作。
34.如权利要求22所述的无线通信设备,其中,所述多个加速器单元中的至少一部分加速器单元是与符合多个无线通信标准的信号的基带信号处理相关的专用功能的可配置硬件实现。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/135,964 US7415595B2 (en) | 2005-05-24 | 2005-05-24 | Data processing without processor core intervention by chain of accelerators selectively coupled by programmable interconnect network and to memory |
US11/135,964 | 2005-05-24 | ||
PCT/SE2006/000602 WO2006126943A1 (en) | 2005-05-24 | 2006-05-23 | Digital signal processor including a programmable network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101203846A CN101203846A (zh) | 2008-06-18 |
CN101203846B true CN101203846B (zh) | 2013-01-30 |
Family
ID=37452276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800183044A Active CN101203846B (zh) | 2005-05-24 | 2006-05-23 | 具有可编程网络的数字信号处理器 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7415595B2 (zh) |
EP (1) | EP1913487B1 (zh) |
JP (1) | JP5000641B2 (zh) |
KR (1) | KR101256851B1 (zh) |
CN (1) | CN101203846B (zh) |
WO (1) | WO2006126943A1 (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070198815A1 (en) * | 2005-08-11 | 2007-08-23 | Coresonic Ab | Programmable digital signal processor having a clustered SIMD microarchitecture including a complex short multiplier and an independent vector load unit |
US20070270671A1 (en) * | 2006-04-10 | 2007-11-22 | Vivometrics, Inc. | Physiological signal processing devices and associated processing methods |
US9077389B2 (en) * | 2008-01-15 | 2015-07-07 | Nxp, B.V. | Method and system for processing radio packages in a multimode software defined radio (SDR) terminal |
GB2458487B (en) * | 2008-03-19 | 2011-01-19 | Imagination Tech Ltd | Pipeline processors |
US8576955B2 (en) * | 2008-03-28 | 2013-11-05 | Qualcomm Incorporated | Architecture to handle concurrent multiple channels |
US8750091B2 (en) * | 2008-03-31 | 2014-06-10 | Qualcomm Incorporated | Apparatus and methods for update of symbol information |
US8755515B1 (en) | 2008-09-29 | 2014-06-17 | Wai Wu | Parallel signal processing system and method |
EP2341445B1 (en) * | 2009-12-30 | 2017-09-06 | Intel Deutschland GmbH | Method for high speed data transfer |
EP2341681A3 (en) * | 2009-12-30 | 2011-12-28 | Blue Wonder Communications GmbH | Modem architecture |
US8839256B2 (en) | 2010-06-09 | 2014-09-16 | International Business Machines Corporation | Utilization of special purpose accelerators using general purpose processors |
KR101785116B1 (ko) * | 2010-12-24 | 2017-10-17 | 한양대학교 산학협력단 | 모뎀 하드웨어에 독립적인 라디오 어플리케이션을 위한 소프트웨어 정의 라디오 단말 장치 |
WO2012153968A2 (ko) * | 2011-05-09 | 2012-11-15 | 한양대학교 산학협력단 | 소프트웨어 정의 라디오 단말 장치 및 라디오 어플리케이션의 배포 및 설치 방법 |
SE536462C2 (sv) * | 2011-10-18 | 2013-11-26 | Mediatek Sweden Ab | Digital signalprocessor och basbandskommunikationsanordning |
SE1150967A1 (sv) * | 2011-10-18 | 2013-01-15 | Mediatek Sweden Ab | Digital signalprocessor och basbandskommunikationsanordning |
EP2772033A4 (en) * | 2011-10-27 | 2015-07-22 | Lsi Corp | SOFTDFE SIGNAL PROCESSING |
SE536099C2 (sv) * | 2011-12-20 | 2013-05-07 | Mediatek Sweden Ab | Digital signalprocessor och basbandskommunikationsanordning |
US9310875B2 (en) | 2011-12-22 | 2016-04-12 | Intel Corporation | Instruction that specifies an application thread performance state |
JP5884578B2 (ja) | 2012-03-16 | 2016-03-15 | 富士通株式会社 | アクセラレータ管理装置、アクセラレータ管理方法および入出力装置 |
US9396020B2 (en) | 2012-03-30 | 2016-07-19 | Intel Corporation | Context switching mechanism for a processing core having a general purpose CPU core and a tightly coupled accelerator |
CN103543983B (zh) * | 2012-07-11 | 2016-08-24 | 世意法(北京)半导体研发有限责任公司 | 用于提高平衡吞吐量数据路径架构上的fir操作性能的新颖数据访问方法 |
CN103543984B (zh) * | 2012-07-11 | 2016-08-10 | 世意法(北京)半导体研发有限责任公司 | 用于特殊相关应用的修改型平衡吞吐量数据路径架构 |
US9275014B2 (en) * | 2013-03-13 | 2016-03-01 | Qualcomm Incorporated | Vector processing engines having programmable data path configurations for providing multi-mode radix-2x butterfly vector processing circuits, and related vector processors, systems, and methods |
US11768689B2 (en) | 2013-08-08 | 2023-09-26 | Movidius Limited | Apparatus, systems, and methods for low power computational imaging |
US8711921B1 (en) * | 2013-11-27 | 2014-04-29 | Redline Communications, Inc. | System and method for multi-threaded MIMO OFDM channel equalizer |
US8711920B1 (en) * | 2013-11-27 | 2014-04-29 | Redline Communications, Inc. | System and method for multi-threaded OFDM channel equalizer |
US8750365B1 (en) * | 2013-11-27 | 2014-06-10 | Redline Communications, Inc. | System and method for multi-threaded OFDM channel equalizer with coprocessor |
CN104035896B (zh) * | 2014-06-10 | 2017-01-11 | 复旦大学 | 一种适用于2.5d多核系统的融合存储器的片外加速器 |
BR112017001975B1 (pt) * | 2014-07-30 | 2023-02-28 | Movidius Limited | Imageamento computacional de baixa potência |
CN104617962B (zh) * | 2014-12-03 | 2017-09-29 | 芯原微电子(上海)有限公司 | 一种应用矢量数字信号处理器的维特比译码的实现方法 |
KR102438552B1 (ko) * | 2015-02-04 | 2022-09-01 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그 동작방법 |
EP3544275A1 (en) * | 2016-04-29 | 2019-09-25 | INTEL Corporation | Device and method for canceling noise in a received signal |
JP7087649B2 (ja) | 2018-05-08 | 2022-06-21 | 富士通株式会社 | 情報処理装置、情報処理方法および情報処理プログラム |
US20220269436A1 (en) * | 2019-07-19 | 2022-08-25 | Rambus Inc. | Compute accelerated stacked memory |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1273476A (zh) * | 1999-05-11 | 2000-11-15 | 皇家菲利浦电子有限公司 | 传输系统、接收器和互连网络 |
CN1471153A (zh) * | 2002-06-28 | 2004-01-28 | 富士通株式会社 | 集成电路,系统开发方法,和数据处理方法 |
TWI232689B (en) * | 2001-12-05 | 2005-05-11 | Quicksilver Tech Inc | Method and system for increasing availability and proximity of base stations for cellular communications via mobile base stations |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4760525A (en) * | 1986-06-10 | 1988-07-26 | The United States Of America As Represented By The Secretary Of The Air Force | Complex arithmetic vector processor for performing control function, scalar operation, and set-up of vector signal processing instruction |
US5226125A (en) * | 1989-11-17 | 1993-07-06 | Keith Balmer | Switch matrix having integrated crosspoint logic and method of operation |
US5361367A (en) * | 1991-06-10 | 1994-11-01 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Highly parallel reconfigurable computer architecture for robotic computation having plural processor cells each having right and left ensembles of plural processors |
DE69228980T2 (de) * | 1991-12-06 | 1999-12-02 | Nat Semiconductor Corp | Integriertes Datenverarbeitungssystem mit CPU-Kern und unabhängigem parallelen, digitalen Signalprozessormodul |
US5887165A (en) * | 1996-06-21 | 1999-03-23 | Mirage Technologies, Inc. | Dynamically reconfigurable hardware system for real-time control of processes |
US5805875A (en) * | 1996-09-13 | 1998-09-08 | International Computer Science Institute | Vector processing system with multi-operation, run-time configurable pipelines |
JPH10340128A (ja) * | 1997-06-10 | 1998-12-22 | Hitachi Ltd | データ処理装置及び移動体通信端末装置 |
JP2000284970A (ja) | 1999-03-29 | 2000-10-13 | Matsushita Electric Ind Co Ltd | プログラム変換装置及びプロセッサ |
US6557096B1 (en) * | 1999-10-25 | 2003-04-29 | Intel Corporation | Processors with data typer and aligner selectively coupling data bits of data buses to adder and multiplier functional blocks to execute instructions with flexible data types |
US7752419B1 (en) | 2001-03-22 | 2010-07-06 | Qst Holdings, Llc | Method and system for managing hardware resources to implement system functions using an adaptive computing architecture |
US7962716B2 (en) * | 2001-03-22 | 2011-06-14 | Qst Holdings, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
US6836839B2 (en) | 2001-03-22 | 2004-12-28 | Quicksilver Technology, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
US6667636B2 (en) * | 2001-06-11 | 2003-12-23 | Lsi Logic Corporation | DSP integrated with programmable logic based accelerators |
US20030005261A1 (en) * | 2001-06-29 | 2003-01-02 | Gad Sheaffer | Method and apparatus for attaching accelerator hardware containing internal state to a processing core |
JP4514086B2 (ja) * | 2002-04-24 | 2010-07-28 | 株式会社山武 | 演算処理装置 |
US20030212728A1 (en) * | 2002-05-10 | 2003-11-13 | Amit Dagan | Method and system to perform complex number multiplications and calculations |
US7159099B2 (en) * | 2002-06-28 | 2007-01-02 | Motorola, Inc. | Streaming vector processor with reconfigurable interconnection switch |
AU2003254126A1 (en) * | 2002-07-23 | 2004-02-09 | Gatechance Technologies Inc | Pipelined reconfigurable dynamic instruciton set processor |
US7430652B2 (en) * | 2003-03-28 | 2008-09-30 | Tarari, Inc. | Devices for performing multiple independent hardware acceleration operations and methods for performing same |
-
2005
- 2005-05-24 US US11/135,964 patent/US7415595B2/en active Active
-
2006
- 2006-05-23 EP EP06733428.4A patent/EP1913487B1/en active Active
- 2006-05-23 JP JP2008513415A patent/JP5000641B2/ja not_active Expired - Fee Related
- 2006-05-23 KR KR1020077029264A patent/KR101256851B1/ko active IP Right Grant
- 2006-05-23 WO PCT/SE2006/000602 patent/WO2006126943A1/en active Application Filing
- 2006-05-23 CN CN2006800183044A patent/CN101203846B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1273476A (zh) * | 1999-05-11 | 2000-11-15 | 皇家菲利浦电子有限公司 | 传输系统、接收器和互连网络 |
TWI232689B (en) * | 2001-12-05 | 2005-05-11 | Quicksilver Tech Inc | Method and system for increasing availability and proximity of base stations for cellular communications via mobile base stations |
CN1471153A (zh) * | 2002-06-28 | 2004-01-28 | 富士通株式会社 | 集成电路,系统开发方法,和数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
EP1913487B1 (en) | 2019-05-15 |
US20060271765A1 (en) | 2006-11-30 |
CN101203846A (zh) | 2008-06-18 |
WO2006126943A1 (en) | 2006-11-30 |
KR20080034095A (ko) | 2008-04-18 |
JP5000641B2 (ja) | 2012-08-15 |
US7415595B2 (en) | 2008-08-19 |
JP2008546072A (ja) | 2008-12-18 |
KR101256851B1 (ko) | 2013-04-22 |
EP1913487A1 (en) | 2008-04-23 |
EP1913487A4 (en) | 2010-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101203846B (zh) | 具有可编程网络的数字信号处理器 | |
CN101238454B (zh) | 包括复数短乘法器和独立的矢量加载单元的具有集群式simd微体系结构的可编程数字信号处理器 | |
CN101238455A (zh) | 包括配置为执行复矢量指令的集群式simd微体系结构的可编程数字信号处理器 | |
JP5487274B2 (ja) | ソフトウェア無線実装用ディジタル受信機 | |
CN101243423B (zh) | 具有物理层可重配置处理引擎的无线通信装置 | |
US20120173864A1 (en) | Flexible multi-processing system | |
WO2006099526A2 (en) | Fast fourier transform twiddle multiplication | |
WO2005076493A1 (en) | Post despreading interpolation in cdma systems | |
WO2010017763A1 (zh) | 一种终端设备基带处理系统中的匹配滤波电路装置及方法 | |
Declerck et al. | SDR platform for 802.11 n and 3-GPP LTE | |
Tell et al. | A low area and low power programmable baseband processor architecture | |
Tang et al. | Reconfigurable pipelined coprocessor for multi-mode communication transmission | |
Zhang et al. | Heterogeneous reconfigurable processors for real-Time baseband processing | |
Swanchara et al. | A stream-based configurable computing radio testbed | |
Rauwerda | Mapping DSP algorithms to a reconfigurable architecture Adaptive Wireless Networking (AWGN) | |
Fazal | Implementation of Communication Receivers as Multi-Processor Software |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent for invention or patent application | ||
CB02 | Change of applicant information |
Address after: Swedish Lin Keping Applicant after: MediaTek Sweden AB Address before: Swedish Lin Keping Applicant before: Coresonic AB |
|
COR | Change of bibliographic data |
Free format text: CORRECT: APPLICANT; FROM: KUONIKE COMPANY TO: MEDIATEK SWEDEN AB |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |