CN101236548B - 数字信号处理器 - Google Patents
数字信号处理器 Download PDFInfo
- Publication number
- CN101236548B CN101236548B CN2007100061397A CN200710006139A CN101236548B CN 101236548 B CN101236548 B CN 101236548B CN 2007100061397 A CN2007100061397 A CN 2007100061397A CN 200710006139 A CN200710006139 A CN 200710006139A CN 101236548 B CN101236548 B CN 101236548B
- Authority
- CN
- China
- Prior art keywords
- register
- functional block
- unit
- digital signal
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
Abstract
本发明提出一种数字信号处理器,包含至少一运算核心。每一运算核心中有至少两个功能块,各专属处理不同类型的指令串。每一功能块有专属的专用寄存器,供各自运算功能使用。一乒乓寄存器提供所述功能块轮流存取。运算核心中有一公用寄存器,包含至少两个读取端口各对应耦接一功能块,供所述功能块同时读取该公用寄存器,以及一写入端口耦接所述功能块其中之一,供其写入数据至该公用寄存器。
Description
技术领域
本发明涉及一种数字信号处理器,特别涉及一种数字信号处理器核心运算单元中可共享的寄存器结构。
背景技术
图1是一现有的平行式核心(PAC)数字信号处理器(DSP)结构。典型的数字信号处理器中包含有多个运算核心(Cluster)200,每个运算核心200中有各种不同的功能块(function unit)负责执行不同类型的指令串,例如加载存储(Load/Store)单元212和数学运算(Arithmetic)单元222。一程控单元108负责所有指令串的获取、分派以及程序控管。该程控单元108从一指令内存106中获取各种不同类型的指令串,然后依照类型各别发派至所述运算核心200中的加载存储单元212或数学运算单元222以供执行。在运算核心200中,每一功能块拥有对应的专用寄存器(register file),供其专属使用。例如加载存储单元212耦接一地址寄存器214,而该数学运算单元222则耦接一累加寄存器224。如果加载存储单元212和数学运算单元222之间有数据要交换,则是通过一乒乓寄存器210来传送。该乒乓寄存器210中包含多个寄存单元,等分为乒寄存单元202和乓寄存单元204两部份,供所述功能块轮流存取。当该加载存储单元212存取乒寄存单元202时,该数学运算单元222只能存取乓寄存单元204,而反之亦然。藉此加载存储单元212和数学运算单元222可以共享和交换数据。
这样的结构称为分布式寄存器结构,多半应用于极长指令集(very longinstruction word;VLIW)的数字信号处理器。优点是,多个分散的寄存器可以减少功率的消耗以及连结所需的端口(port)数。然而缺点是当多个功能块需要使用同一份数据时,数据的交换会显得不方便。即使是乒乓寄存器210的结构,其中的乒寄存单元202和乓寄存单元204也没办法同时被加载存储单元212和数学运算单元222存取,必须轮流使用,或是将同一份数据复制两份各放一边,造成空间上的浪费。此外,在某些特定应用的运算中,经常需要存取大量连续地址的数据,例如有限脉冲响应(FIR)、无限脉冲响应(IIR)和快速傅立叶(FFT)算法。为了处理这些连续地址的数据,需要执行大量相同功能而不同地址参数的程序代码。这种重复性很高的程序代码占去了很多的存储空间。有鉴于此,这种分布式寄存器结构是有待改良的。
发明内容
本发明提出一种数字信号处理器,包含至少一运算核心。每一运算核心中有至少两个功能块,各专属处理不同类型的指令串。每一功能块有专属的专用寄存器,供各自运算功能使用。一乒乓寄存器提供所述功能块轮流存取。运算核心中有一公用寄存器,包含至少两个读取端口各对应耦接一功能块,供所述功能块同时读取该公用寄存器,以及一写入端口耦接所述功能块其中之一,供其写入数据至该公用寄存器。
每一运算核心进一步包含至少两个指针寄存器,各专属于一对应的功能块,存储一指标值和一位移值。每一指针寄存器中,该指针值每被读取一次,就被加上该位移值成为更新的指标值。每一功能块支持一指位器指令,以对应的指针寄存器中的指针值为执行参数。
本发明的数字信号处理器中,进一步包含一数据存储器,通过一内存接口供每一运算核心存取。一指令内存存储不同类型的指令串。一程控单元读取该指令内存中的指令串,并根据指令串的类型将所述指令串发派给所述功能块。
所述功能块至少包含一加载存储单元,用以执行加载指令和存储指令。所述专用寄存器则包含一地址寄存器,专属于该加载存储单元使用,包含多个寄存单元,用以产生地址值供存取该数据存储器。
所述功能块中另包含一数学运算单元,用以执行数学运算指令。而所述专用寄存器中包含一累加寄存器,专属于该数学运算单元使用,包含多个寄存单元,用以暂存数学运算结果。
该乒乓寄存器包含多个寄存单元,等分为一乒寄存单元和一乓寄存单元,供所述功能块轮流存取。当该加载存储单元使用该乒寄存单元时,该数学运算单元只能使用该乓寄存单元,而反之亦然。
附图说明
图1是一现有的平行式核心数字信号处理器结构;
图2是本发明实施例之一的平行式核心数字信号处理器结构;
图3是指针寄存器的示意图;以及
图4是应用指针寄存器的流程图。
附图符号说明
104~数据存储器
106~指令内存
108~程控单元
200~运算核心
202~乒寄存器
204~乓寄存器
210~乒乓寄存器
212~加载存储单元
214~地址寄存器
222~数学运算单元
224~累加寄存器
300~运算核心
310~公用寄存器
312~加载存储单元
313~写入端口
314~地址寄存器
315~读取端口
316~指针寄存器
322~数学运算单元
324~累加寄存器
325~读取端口
326~指针寄存器
具体实施方式
图2是本发明实施例之一的平行式核心数字信号处理器结构。在图2的数字信号处理器中,运算核心300是一改良结构,通过一内存接口存取该数据存储器104。指令内存106存储由外界输入的各种不同类型的指令串,而程控单元108读取该指令内存106,根据指令串的类型将所述指令串发派给所述功能块。加载存储单元312执行加载指令和存储指令,而数学运算单元314执行数学运算指令。地址寄存器322专属于该加载存储单元312使用,可包含8或16个32位的寄存单元,用以产生地址值供存取该数据存储器104。而累加寄存器324专属于该322使用,可包含多个个40位的寄存单元,用以暂存数学运算结果。每一运算核心300中,除了原有的乒乓寄存器210之外,尚提供了一公用寄存器310,包含了两个读取端口315和325,以及一个写入端口313。藉此,加载存储单元312和数学运算单元322可以各别通过该读取端口315和325同时读取该公用寄存器310,而通过写入端口313,该加载存储单元312可以写入数据至该公用寄存器310。在本结构中,公用寄存器310尤其适合存储数值固定且同时被多个功能块需要的数据,例如FIR、IIR或FFT的运算系数,其中,可包含多个个32位的寄存单元连续排列,各对应一指标值。所以该公用寄存器310具体来说就是一种系数寄存器,只有在初始化的时候需要写入数据,之后只提供读取的功能。
如果该公用寄存器310中的寄存单元数为8个,则其每一寄存单元所对应的指针值以3位来表示。在本实施例中,公用寄存器310支持二读一写,但本发明并不限定于此,也可以是多读一写,视功能块的个数而定。
图3是一指针寄存器的示意图。在每一运算核心300中,另具备了两个指针寄存器316和326,各专属于该加载存储单元312和322。指针寄存器以零传输相位(CP0)寄存器实作,分为两个字段,CP0[n-1:0]和CP0[2n:n],各用以存储一指标值和一位移值。其中,指标值每被读取一次,就自动被加上位移值成为更新的指标值。以图3为例,指标值存储在CP0[n-1:0]中共n位,而位移值存储在CP0[2n:n]中为n+1位。这意味着位移值具有正负号,在更新指标值的时候可以累加也可以累减。同时本发明的每一功能块额外支持一种独特的指位器指令,在执行的时候以指针寄存器中的指针值为执行参数。举例来说,一连串传统的加载指令表示如下:
LW D0,A0,4+
LW D1,A0,4+
LW D2,A0,4+
……
上述八行程序代码所执行的功能是将寄存单元D0到D7的值载入至寄存单元A0中。若是使用本发明的指位器指令,则程序代码可以改写如下:
LOOP:
LW[CP0],A0,4+
假设D0到D7对应的指标值是0到7,而CP0[n-1:0]是一3位的栏值,初始值为0。CP0[n-1:0]则是4位,其值为1。接着两者相加并存储在CP0[n-1:0]中:
CP0[n-1:0]=CP0[n-1:0]+CP0[2n:n]
因此第二次执行时指标值为1,指向寄存单元D1。依此类推,第八次时指标值为7,指向寄存单元D7。藉此,原本需要八行程序代码,通过本发明的指针寄存器316只需要一行循环程序代码即可,大大的节省了程序代码占用的空间。
图4是应用指针寄存器的流程图。在步骤402中,进入循环,开始递归的执行指位器指令。步骤404中,指位器指令根据CP0[n-1:0]字段中的指针值,读取对应寄存器的值进行运算。步骤406中,在该CP0[n-1:0]字段被读过之后,其中的值根据CP0[2n:n]的值而更新。在步骤408中,判断循环是否结束。如果否,跳回步骤404继续执行。如果循环结束,步骤410跳出循环。
综上所述,本发明实施例中的运算核心300提出了公用寄存器310以改良原结构,并使用以CP0寄存器实作的指针寄存器316和326来增进程序代码的效率。然而数字信号处理器的结构并不限定于本实施例所述,而专利性则以申请专利范围所限定为准。
Claims (7)
1.一种数字信号处理器,包括:
至少一运算核心,包含:
至少两个功能块,各专属处理不同类型的指令串;
至少两个专用寄存器,各专属于一对应的功能块,供各自运算功能使用;
一乒乓寄存器,耦接所述功能块,供所述功能块轮流存取;
一公用寄存器,具有两个读取端口和一个写入端口,其中:
该两个读取端口各对应耦接一功能块,供所述功能块同时读取该公用寄存器,以及
该写入端口耦接所述功能块其中之一,供其写入数据至该公用寄存器,其中:
每一运算核心进一步包含至少两个指针寄存器,各专属于一对应的功能块,存储一指标值和一位移值;以及
每一指针寄存器中,该指针值每被读取一次,就被加上该位移值成为更新的指标值。
2.如权利要求1所述的数字信号处理器,其中,每一功能块支持一指位器指令,以对应的指针寄存器中的指针值为执行参数。
3.如权利要求1所述的数字信号处理器,进一步包含一数据存储器,通过一内存接口供每一运算核心存取。
4.如权利要求3所述的数字信号处理器,进一步包含:
一指令内存,用以存储不同类型的指令串;以及
一程控单元,耦接该指令内存和所述运算核心,读取该指令内存中的指令串,并根据指令串的类型将所述指令串发派给所述功能块。
5.如权利要求4所述的数字信号处理器,其中:
所述功能块包含一加载存储单元,用以执行加载指令和存储指令;以及
其中,所述专用寄存器包含一地址寄存器,专属于该加载存储单元使用,包含多个寄存单元,用以产生地址值供存取该数据存储器。
6.如权利要求4所述的数字信号处理器,其中:
所述功能块包含一数学运算单元,用以执行数学运算指令;以及
所述专用寄存器包含一累加寄存器,专属于该数学运算单元使用,包含多个寄存单元,用以暂存数学运算结果。
7.如权利要求4所述的数字信号处理器,其中:
该乒乓寄存器包含多个寄存单元,等分为一乒寄存单元和一乓寄存单元,供所述功能块轮流存取;
当该加载存储单元使用该乒寄存单元时,该数学运算单元只能使用该乓寄存单元;以及
当该加载存储单元使用该乓寄存单元时,该数学运算单元只能使用该乒寄存单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100061397A CN101236548B (zh) | 2007-01-31 | 2007-01-31 | 数字信号处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100061397A CN101236548B (zh) | 2007-01-31 | 2007-01-31 | 数字信号处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101236548A CN101236548A (zh) | 2008-08-06 |
CN101236548B true CN101236548B (zh) | 2010-08-25 |
Family
ID=39920171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007100061397A Expired - Fee Related CN101236548B (zh) | 2007-01-31 | 2007-01-31 | 数字信号处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101236548B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110096307B (zh) * | 2018-01-29 | 2022-02-01 | 北京思朗科技有限责任公司 | 通信处理器 |
CN112752194B (zh) * | 2020-12-22 | 2022-06-28 | 江西创成微电子有限公司 | 音频数据处理方法、dsp音频架构、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6081783A (en) * | 1997-11-14 | 2000-06-27 | Cirrus Logic, Inc. | Dual processor digital audio decoder with shared memory data transfer and task partitioning for decompressing compressed audio data, and systems and methods using the same |
CN1135468C (zh) * | 1996-09-23 | 2004-01-21 | Arm有限公司 | 对存储设备中信号数据字执行数字信号处理的方法和装置 |
-
2007
- 2007-01-31 CN CN2007100061397A patent/CN101236548B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1135468C (zh) * | 1996-09-23 | 2004-01-21 | Arm有限公司 | 对存储设备中信号数据字执行数字信号处理的方法和装置 |
US6081783A (en) * | 1997-11-14 | 2000-06-27 | Cirrus Logic, Inc. | Dual processor digital audio decoder with shared memory data transfer and task partitioning for decompressing compressed audio data, and systems and methods using the same |
Non-Patent Citations (2)
Title |
---|
Tay-Jyi Lin, Chen-Chia Lee, Chih-Wei Liu, Chein-Wei Jen.A novel register organization for VLIW digital signalprocessors.VLSI Design, Automation and Test, 2005. (VLSI-TSA-DAT). 2005 IEEE VLSI-TSA International Symposium on.2005,337-340. * |
US 2004/0006681 A1,说明书第61-64段,附图5. |
Also Published As
Publication number | Publication date |
---|---|
CN101236548A (zh) | 2008-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10108417B2 (en) | Storing narrow produced values for instruction operands directly in a register map in an out-of-order processor | |
CN100507886C (zh) | 一种对非易失性存储器进行直接存储访问的方法及其装置 | |
CN104699459B (zh) | 用于在单个指令中执行移位和异或运算的方法和装置 | |
JP4887313B2 (ja) | 複雑な非線形データの転送制御システム | |
US20200004549A1 (en) | Multi-threaded instruction buffer design | |
WO2018174935A1 (en) | Systems, methods, and apparatus for matrix operations | |
JP2008507034A5 (zh) | ||
CN101379481A (zh) | 处理元件、混合模式并行处理器系统、处理元件方法、混合模式并行处理器方法、处理元件程序、以及混合模式并行处理器程序 | |
JP2001273277A (ja) | 演算処理システム、演算処理方法およびそのプログラム格納装置 | |
JP2002509312A (ja) | 不整列データ・アクセスを実行するためのデータ整列バッファを有するディジタル信号プロセッサ | |
JP2010530591A5 (zh) | ||
CN1175037A (zh) | 多媒体信号处理器内的多处理器操作装置 | |
CN1220150C (zh) | 具有可配置的高速缓存/静态随机存取存储器的系统 | |
CN104520817A (zh) | 使用单端口存储器装置的多端口存储器仿真 | |
CN101243416A (zh) | 在具有至少两个处理单元和用于数据和/或指令的至少一个第一存储器或存储器区域的计算机系统中存储数据和/或指令的设备和方法 | |
CN101236548B (zh) | 数字信号处理器 | |
US20080172546A1 (en) | Digital signal processor | |
CN101398784A (zh) | 一种二维寻址方法及装置 | |
JP3876033B2 (ja) | 順不同に命令を実行するコンピュータのためのシステム | |
NZ231766A (en) | Pipelined cpu system; memory retrieval | |
CN101470600B (zh) | 一种超长指令字处理的方法和装置 | |
EP3929732A1 (en) | Matrix data scatter and gather by row | |
US8631173B2 (en) | Semiconductor device | |
US20090235010A1 (en) | Data processing circuit, cache system, and data transfer apparatus | |
JP2003517684A (ja) | 複数の独立の専用プロセッサを有するデジタル信号プロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100825 Termination date: 20220131 |
|
CF01 | Termination of patent right due to non-payment of annual fee |