Www.bupt.edu.cn
This presentation is the property of its rightful owner.
Sponsored Links
1 / 45

DSP 技术基础 / 认识 DSP PowerPoint PPT Presentation


  • 151 Views
  • Uploaded on
  • Presentation posted in: General

Why DSP Processor? DSP 处理器结构特点 DSP 指令集特点 特殊的片内外设及存储器设计. DSP 技术基础 / 认识 DSP. WHY DSP Processor ?. 数字信号处理过程:. 数字信号处理特点 大量(特殊)的数学运算(如 MAC ) 高数据吞吐量( I/O ) 高负荷的数据流处理(多操作数) 实时性要求. 标准微处理器的体系结构设计不符合 DSP 特点:标准微处理器虽然可以提供数据处理和数学运算的能力,但没有为支持 DSP 特殊数学运算进行专门设计。. WHY DSP Processor ?. DSP 处理器

Download Presentation

DSP 技术基础 / 认识 DSP

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Dsp dsp

www.bupt.edu.cn


Dsp dsp

Why DSP Processor?

DSP处理器结构特点

DSP指令集特点

特殊的片内外设及存储器设计

DSP技术基础/认识DSP

信息技术研究室(InfoTech Group)


Why dsp processor

WHY DSP Processor?

  • 数字信号处理过程:

  • 数字信号处理特点

    • 大量(特殊)的数学运算(如MAC)

    • 高数据吞吐量(I/O)

    • 高负荷的数据流处理(多操作数)

    • 实时性要求

  • 标准微处理器的体系结构设计不符合DSP特点:标准微处理器虽然可以提供数据处理和数学运算的能力,但没有为支持DSP特殊数学运算进行专门设计。

信息技术研究室(InfoTech Group)


Why dsp processor1

WHY DSP Processor?

  • DSP处理器

    • 其体系结构和指令集设计都是专门为DSP运算进行裁剪的,可以高效地实现DSP算法

    • DSP处理器的主要特点:

      • 一到多个硬件乘法器,支持单周期的乘加运算(MAC);

      • 采用独立的程序和数据存储器总线,即所谓的Harvard结构,支持取指和执行的并行处理和高数据吞吐能力;

      • 特殊设计的的指令集,支持:

        • 零开销的分支和循环处理;

        • 减少复杂DSP数学运算的指令周期

        • 定点DSP支持零开销的溢出处理

      • 多运算单元,支持并行运算

      • 流水线机制,提高运算速度

      • 高速指令周期(ns级)

一般地,DSP处理器指的是通用的可编程数字信号处理器,包括基于

可编程DSP的ASIC,但不包括硬件实现的DSP ASIC,如基于FPGA技术

的DSP ASIC。

信息技术研究室(InfoTech Group)


Dsp dsp

DSP处理器结构特点

  • 数据通道(Data Path)

    • 定点算术(定点运算、溢出处理)

    • 乘加运算单元(MAC)

  • 存储器结构

    • 哈佛结构(Harvard Architecture)

    • 多数据存储器(Multiple data memories)

  • 特殊的寻址模式

    • 比特翻转寻址(Bit-reversed addressing)

    • 循环寻址(Circular buffers)

  • 特殊的指令集和执行控制

    • 零开销循环(Zero-overhead loops)

    • MAC、NORM、EXP、MIN、MAX、FIRS、CSVD

  • 特殊的硬件外设

信息技术研究室(InfoTech Group)


Data path 1

Data Path(1)

  • 定点DSP的算术运算(Fixed Point DSP)

    • 定点数的表示

Bit16 Bit15 ……………Bit1 Bit0

符号位 整数部分 小数点位置 尾数部分

Bit16 Bit15 ……………Bit1 Bit0

数的范围:(-1,0.9999695)

Bit16 Bit15 ……………Bit1 Bit0

数的范围:(-32768,32767)

信息技术研究室(InfoTech Group)


Data path 2

Data Path(2)

  • 溢出处理(Overflow--Saturation)

    • Automatic Saturation

溢出处理的TI C54x中的硬件实现

溢出处理的ANSI C处理函数

Word16 sature(Word32 L_var1)

{

Word16 var_out;

if (L_var1 > 0X00007fffL) {

Overflow = 1;

var_out = MAX_16;

}

else {

if (L_var1 < (Word32)0xffff8000L) {

Overflow = 1;

var_out = MIN_16;

}

else {

Overflow = 0;

var_out = extract_l(L_var1);

}

}

return(var_out);

}

在DSP中,定点算法的饱和处理在硬件中自动实现,不需要专门的指令运算。

1.通过设置OVM模式,控制累加器进行自动饱和处理;

2.通过设置SMUL模式,控制乘法器结果自动饱和处理。

信息技术研究室(InfoTech Group)


Data path 3

Data Path(3)

  • 硬件乘法器(Multiplier)

    • DSP通过设计特殊的硬件支持所有的算术运算在一个指令周期内完成(不包括除法运算)

    • 50%的指令与乘法器有关

    • 通常乘运算和加运算成对出现

    • DSP支持单周期MAC指令,即在一个指令周期内完成两个数的乘法运算,并将结果累加到累加器中。

    • 两个n比特的数相乘产生2n比特的结果

    • 硬件乘法器支持

      • 零开销的饱和处理

      • 两个有符号位相乘时,零开销的移位操作,消除多余的符号位

信息技术研究室(InfoTech Group)


Data path 4

Multiplier

ALU

Guard

Accumulator

Data Path(4)

  • 累加器(Accumulator)

    • DSP支持两个甚至多个累加器;

    • 累加器提供保护比特(Guard bits)防止溢出,如16位定点处理器的ACC为40位(8bits Guard),24位DSP的ACC为56比特;

    • 累加器提供零开销的移位操作

    • 累加器提供零开销的溢出处理

基本结构

信息技术研究室(InfoTech Group)


Dsp dsp

存储器结构(1)

GP(General-purpose Processor)与DSP的存储器结构区别

  • DSP存储器特点:

  • 采用多总线Harvard结构

  • 支持 >2~4存储器访问/Cycle

  • 大容量的片内SRAM

  • 片内SRAM可以配置成程序存储空间或数据存储空间

  • 没有或较小的片内指令Cache

  • GP存储器特点:

  • 采用单总线Von Neumann结构

  • 只支持1次存储器访问/Cycle

  • 一般没有较大的片内SRAM

  • 较大的片上Cache Memory

信息技术研究室(InfoTech Group)


Von neumann

Multiplier

Z-1

Z-1

Z-1

ALU

C0

C1

CN

Guard

Accumulator

Von Neumann结构

  • 单总线结构

  • 程序和数据存储器共享一套总线

Processor

Data Bus

Addr Bus

Data&Program

Memory

例:实现FIR滤波器的一个Tap,需要以下4各步骤:

(1)读MAC指令;(2)读输入数据x(i);(3)读Tap系数;(4)写延迟数据。

至少4Cycles/Tap

信息技术研究室(InfoTech Group)


Harvard

Multiplier

ALU

Guard

Accumulator

基本Harvard结构

Program

Memory

Data

Memory

程序和数据存储器采用独立总线

Instruction

Unit

Multiply

&

Accumulator

信息技术研究室(InfoTech Group)


Harvard1

Program

Memory

Data

Memory

Multiplier

Instruction

Unit

Multiply

&

Accumulator

ALU

Guard

Accumulator

改进Harvard结构

  • 程序存储器总线直接连接到运算单元

  • 程序存储器总线可以用于指令读取,也

  • 可以用于读取系数。

  • 在流水线配合下,FIR的一个Tap运算

  • 可以在一个指令周期内完成。

  • RPTK 49

  • MACD Smem,Pmem, Src

信息技术研究室(InfoTech Group)


Ti tms320c3x

TI TMS320C3x存储器结构

信息技术研究室(InfoTech Group)


Tms320c54x core architecture

TMS320C54x Core Architecture

信息技术研究室(InfoTech Group)


Specialized addressing modes

特殊的数据寻址方式Specialized Addressing Modes

高效的寻址方式是DSP的重要特征之一,在常规的直接寻址、间接寻址、立即数寻址的基础上,还专门为各种特殊的数字信号处理运算增加了专门的寻址方式(地址发生器硬件):

  • 比特翻转寻址( Bit-reversed addressing)

  • 循环寻址( Circular buffers)

  • 程序存储器寻址(Program Space Addressing)

  • 双操作数寻址(Dual Operand Addressing)

  • 等等

什么是寻址

(Addressing)?

信息技术研究室(InfoTech Group)


Bit reversed addressing

比特反转寻址Bit-Reversed Addressing

  • FFT是数字信号处理技术中最经典,也是最有效的算法,在各种领域的应用中仍然被广泛使用。

  • FFT算法的特征:输入数据和输出数据的排列存在一种蝶形交错的关系,如下图所示:

    0 (000)=> 0 (000)

    1 (001)=> 4 (100)

    2 (010)=> 2 (010)

    3 (011)=> 6 (110)

    4 (100)=> 1 (001)

    5 (101)=> 5 (101)

    6 (110)=> 3 (011)

    7 (111)=> 7 (111)

  • 因此,很多DSP都为基2(Radix-2)设计了比特反转(Bit Reverse addressing)寻址方式,来避免的FFT算法实现中地址检查的额外指令开销。

输入和输出数据的地址成

比特反转的关系。

信息技术研究室(InfoTech Group)


Bit reversed addressing1

比特反转寻址Bit-Reversed Addressing

WN0

-1

DIT:时间抽取

Decimation in Time

DIF:频率抽取

Decimation in Frequency

蝶形因子:

WN=e-j2∏/N

WN0

-1

WN0

-1

WN0

-1

复乘次数:N²Nlog2N

8点基2 DIT FFT的信号流图

信息技术研究室(InfoTech Group)


Bit reversed addressing2

比特反转寻址Bit-Reversed Addressing

  • TMS320C5000 DSP 比特反转寻址的实现:

    • 辅助寄存器AR0=N/2,N为FFT点数

    • 在比特反转寻址模式下,通过辅助寻址寄存器加上AR0的值,并按照右移进位的模式产生比特反转地址

    • 例:

      • N=16

      • AR0=8

      • Initialized AR2=0110 0000, 存储器的初始地址

信息技术研究室(InfoTech Group)


Circular buffer addressing

Start_reg

Xxxx000

Pointer

Pointer

Buf_size

End_reg

When Pointer==xxxx0000+Buf_size

pointer = xxxx0000

循环寻址Circular Buffer Addressing

  • 在连续(实时)数据的FIR、相关/卷积等运算处理中,常常要用到存储器的循环使用和数据的循环使用等操作,常规处理方法:

    • 采用两个寄存器,Start_reg存储起始存储器地址,End_reg存储器存储终止地址,自动增量寻址指针到达End _reg时,复位到Start_reg;

    • 采用一个寄存器存储Buffer的长度,并设定Buffer的起始地址的低位比特为0,当缓冲区指针到达尾地址时,复位低位比特。

pointer

When Pointer==End_reg

pointer = Start_reg

信息技术研究室(InfoTech Group)


Circular buffer addressing1

循环寻址Circular Buffer Addressing

  • DSP都设计了循环寻址的方式,采用第二种常规处理方法,用硬件来实现地址指针的边界检测和复位。环形寻址的算法:

    • 环形缓冲区大小BK寄存器

    • 环形缓冲区的最低地址放在2N边界上,2N大于缓冲区大小

    • 使用一个小于或等于缓冲区大小的步幅(Step)来寻址

    • 当第一次寻址时,辅助寄存器必须指向缓冲区中的一个元素,如*AR3+%

      • 环形寻址算法为:

        如果0≤索引+Step<BK:索引=索引+步幅;

        否则如果索引+Step≥BK:索引=索引+步幅―BK;

        否则如果索引+Step<=0:索引=索引+步幅+BK

信息技术研究室(InfoTech Group)


Circular buffer addressing2

存储区

存储区

存储的值

存储的值

地址

地址

20039

20039

20040

20040

-0.225767

-0.225767

x[n-3]

x[n-4]

20041

-0.269847

20041

-0.269847

x[n-2]

x[n-3]

20042

20042

-0.228918

-0.228918

x[n-1]

x[n-2]

20043

最新采样

20043

最新采样

-0.113940

-0.113940

x[n]

x[n-1]

最老采样

最老采样

20044

20044

0.048679

-0.062222

x[n-7]

x[n]

20045

20045

0.222977

0.222977

x[n-6]

x[n-7]

20046

20046

0.371370

0.371370

x[n-5]

x[n-6]

20047

20047

0.462791

0.462791

x[n-4]

x[n-5]

20048

20048

a.在某时刻的环形存储区

b.在下一时刻的环形存储区

循环寻址Circular Buffer Addressing

信息技术研究室(InfoTech Group)


Dsp dsp

程序存储器寻址

  • 滤波器系数、矢量量化码本、信号发生器表格等常数一般存储在程序存储器中。

  • 改进Harvard结构支持直接访问程序存储器,从程序存储器中获得常数操作数。

  • 累加器寻址(Accumulator Addressing)利用累加器内容作为程序空间地址进行寻址。

    • READA Smem

    • WRITEA Smem

信息技术研究室(InfoTech Group)


Dsp dsp

PROGRAM

MEMORY

Y MEMORY

X MEMORY

GLOBAL

P DATA

X DATA

Y DATA

双操作数寻址

  • 双操作数寻址用在同时读取两个操作数或在读一个操作数的同时并行写一个操作数。

  • 在指令中,一般用Xmem和Ymem来代表双数据存储器操作。

  • 在TI’s C5000系列中,这些指令都只有一个字长,只能用间接寻址实现。

信息技术研究室(InfoTech Group)


Dsp dsp

DSP指令和执行控制特点

  • MAC指令

  • 特殊指令(如FIRS/DSADT)

  • 并行指令(LD|MAC/ST|LD/…)

  • 零开销循环和条件跳转

  • 流水线

  • 扩展并行机制

    • SIMD

    • VLIW

常规微处理器:

  • 常规目的的指令

  • 每条指令支持单一的操作

  • mov *r0,x0

  • mov *r1,y0mpy x0, y0, a

  • add a, b

  • inc r0

  • inc rl

DSP 指令特点:

  • 特殊的、复杂的指令

  • 每条指令可以支持多个操作

    mac x0,y0,a x: (r0) + ,x0 y: (r1) + ,y0

信息技术研究室(InfoTech Group)


Zero overhead loop and branch

Zero-Overhead Loop and Branch

  • 重复指令

    • 单指令重复(RPT)

    • 块重复(RPTB)

      重复指令实现零开销循环,每次循环中减少数个用于循环条件判断和跳转的指令周期

  • 条件指令

    • 条件跳转(BC)

      • 满足条件跳转,否则继续执行

    • 条件执行(XC)

      • 满足条件,执行随后的指令;否则跳过随后的指令

  • 延迟指令(BD,CALLD,RETD)

    • 利用程序跳转的空隙执行1~2个Cycles的指令

信息技术研究室(InfoTech Group)


Dsp dsp

A

B

C

D

流水线

Pipelining: Its Natural!

概念:

  • Laundry Example

  • Ann, Brian, Cathy, Dave each have one load of clothes to wash, dry, and fold

  • Washer takes 30 minutes

  • Dryer takes 40 minutes

  • “Folder” takes 20 minutes

到洗衣房洗一次衣服总共需要90分钟,假设洗衣房一天开12小时,最多能提供多少人次服务?

信息技术研究室(InfoTech Group)


Sequential laundry

6 PM

Midnight

7

8

9

11

10

Time

30

40

20

30

40

20

30

40

20

30

40

20

T

a

s

k

O

r

d

e

r

A

B

C

D

Sequential Laundry

  • Sequential laundry takes 6 hours for 4 loads

  • If they learned pipelining, how long would laundry take?

信息技术研究室(InfoTech Group)


Pipelined laundry start work asap

6 PM

Midnight

7

8

9

11

10

Time

30

40

40

40

40

20

T

a

s

k

O

r

d

e

r

A

B

C

D

Pipelined Laundry:Start work ASAP

  • Pipelined laundry takes 3.5 hours for 4 loads

信息技术研究室(InfoTech Group)


Pipelining lessons

30

40

40

40

40

20

A

B

C

D

Pipelining Lessons

  • Pipelining doesn’t help latency of single task, it helps throughput of entire workload

  • Pipeline rate limited by slowest pipeline stage

  • Multiple tasks operating simultaneously

  • Potential speedup = Number pipe stages

  • Unbalanced lengths of pipe stages reduces speedup

  • Time to “fill” pipeline and time to “drain” it reduces speedup

6 PM

7

8

9

Time

T

a

s

k

O

r

d

e

r

生产一辆汽车需要5天不等于每个车间5天才生产一辆汽车!

汽车生产线可以每5分钟生产一辆汽车!

信息技术研究室(InfoTech Group)


Dsp dsp

DSP指令执行流水线

1Cycle

  • 流水线大大降低了指令的平均执行时间

    • 8031单片机至少12个机器周期才能完成在一个机器周期内完成一条单周期指令操作

  • 单周期指令不是指从取指到执行完成只需要一个机器周期,而是指指令的平均执行时间

  • 流水线很难被完全利用,即流水线冲突:

    • 跳转指令打断流水线(用延时跳转弥补)

    • 存贮器冲突会影响流水线

信息技术研究室(InfoTech Group)


Ti c5000dsp

TI C5000DSP的流水线

六级流水线机制

信息技术研究室(InfoTech Group)


Ti c5000dsp1

TI C5000DSP的流水线:例,一般跳转

一般跳转指令,浪费两个机器周期

信息技术研究室(InfoTech Group)


Ti c5000dsp2

TI C5000DSP的流水线:例,延迟跳转

利用延迟跳转,在跳转执行过程中,执行两条单周期指令

或一条双周期指令,充分利用机器周期。

信息技术研究室(InfoTech Group)


Processor architecture simd vliw superscalar

Processor Architecture:SIMD & VLIW & Superscalar

DSP处理器结构设计的趋势—采用并行处理机制:

  • 增加每个机器周期执行的指令数量

  • 增加每条指令完成的操作数量

  • SIMD Architecture:Single Instruction Multiple Data

    • 增加每条指令内支持的操作数

  • VLIW Architecture:Very Large/Long Instruction Word

    • 采用超长指令字机制,配合多个并行处理单元,实现单机器周期内执行多条指令

  • Superscalar Architecture:

    • 指令级并行机制,增加每个指令周期的执行指令数,采用多执行单元、多指令并行执行

      三种方法的根本点:多数据路径、多执行单元、多指令并行处理

      在最新的DSP架构中,这些提高DSP处理器性能的手段往往被综合采用,有代表性的Infrastructure DSPs :ADI的TigerSHARC、TI的C6000系列、Motorola的StarCore等等。

  • 信息技术研究室(InfoTech Group)


    Simd architecture

    program

    memory

    Control Unit

    . . .

    inter-

    connection

    network

    PE0

    PE1

    PEn

    data mem

    data mem

    data mem

    True Distributed Memory SIMD Model

    SIMD Architecture

    • organization

      • program memory common to all PEs

      • data memory distinct in each PE

      • ICN for PEs to exchange data values

      • all operations synchronous

    信息技术研究室(InfoTech Group)


    Simd architecture cont d

    SIMD Architecture(Cont’d)

    • designed with a configurable association between the PE and the memory modules(M)

    True Shared Memory-SIMD Model

    信息技术研究室(InfoTech Group)


    Vliw superscalar

    VLIW&Superscalar

    VLIW describes an instruction-set philosophy in which the compiler packs a number of simple , noninterdependent operations into the same instruction word. When fetched from cache or memory into the processor,these word are easily broken up and the operation dispatched to independent execution units.

    A SuperScalar architecture is a uniprocessor that can execute two or more scalar operations in parallel. Some definitions include superpipeline and VLIW architecture; others do not. Superscalar architectures require multiple functional units which may or maynot be identical to each other. In some superscalar processors the order of instruction execution is determined statically (purely at compile-time ), in others it is determined dynamically(partly at run time).

    VLIW can perhaps best be described as a software or compiler-based

    Superscalar technology.

    信息技术研究室(InfoTech Group)


    Ti tms320c6201 processor architecture

    TI TMS320C6201 Processor Architecture

    Instruction

    Fetch

    8×32bit

    信息技术研究室(InfoTech Group)


    Processor architecture motoroa starcore

    Processor Architecture(Motoroa StarCore)

    信息技术研究室(InfoTech Group)


    Processor architecture adi tigersharc

    Processor Architecture (ADI TigerSHARC)

    信息技术研究室(InfoTech Group)


    Dsp dsp

    DSP片内外设:

    Synchronous serial ports

    Parallel ports

    Timers

    Host ports

    Bit I/O ports

    On-chip DMA controller

    Clock generators

    On-chip A/D, D/A converters(Option)

    片内外设和存储器

    • On-chip peripherals often designed for “background” operation, even when core is powered down.

    • DSP片内存储器:

      • 为了支持SIMD、VLIW、Superscalar结构,DSP都设计了大量的片内存储器

      • 支持可配置的片内程序和数据存储器

    信息技术研究室(InfoTech Group)


    Tms320c203 lc203 block diagram dsp core approach 1995

    TMS320C203/LC203 BLOCK DIAGRAM DSP Core Approach - 1995

    片内存储器

    片内外设

    信息技术研究室(InfoTech Group)


    Sumary

    Sumary

    • Data path configured for DSP

      • Fixed-point arithmetic

      • MAC- Multiply-accumulate

    • Multiple memory banks and buses -

      • Harvard Architecture

      • Multiple data memories

    • Specialized addressing modes

      • Bit-reversed addressing

      • Circular buffers

    • Specialized instruction set and execution control

      • Zero-overhead loops

      • Support for MAC

    • Specialized Architecture Design

      • Pipeline

      • SIMD、VLIW and Superscalar

    • Specialized peripherals for DSP

    信息技术研究室(InfoTech Group)


    Dsp dsp

    信息技术研究室(InfoTech Group)


  • Login