950 likes | 1.04k Views
DSP. 赵 峰 2008.05.20. 主要 内容. DSP 运算的特点 DSP 芯片生产厂商 DSP 的体系结构 TI C6x DSP 硬件结构与应用 VLIW 体系结构 汇编语言/线性汇编/编程特点 CCS 简介 硬件仿真器. TMS320C5000. DSP 是什么?. Digital signal processing Digital signal processor. CPU 按应用分类. 服务器: Intel Itanium/ Sun UltraSPARC/IBM Power 桌面系统: 嵌入式系统 MCU MPU
E N D
DSP 赵 峰 2008.05.20
主要内容 • DSP运算的特点 • DSP芯片生产厂商 • DSP的体系结构 • TI C6x DSP硬件结构与应用 • VLIW体系结构 • 汇编语言/线性汇编/编程特点 • CCS简介 • 硬件仿真器
TMS320C5000 DSP是什么? • Digital signal processing • Digital signal processor
CPU按应用分类 • 服务器: • Intel Itanium/Sun UltraSPARC/IBM Power • 桌面系统: • 嵌入式系统 MCU MPU DSP RISC + DSP ARM? 是否会替代DSP?
DSP不同于arm • 特殊指令 • FFT • 最小均方运算LMS • Viterbi译码指令DADST、DSADT、CMPS • 特殊寻址方式 • 位反寻址 • 循环寻址
DSP • DSP ( Digital Signal Processor ) • 应用特点: • 特定的运算、流式数据(运算密集型) • 高数据吞吐量 • QCIF / CIF(352*288) / D1 • 高实时性要求
DSP运算的特点 • 流式处理 • 任务单一/不需要操作系统(OS) • 工程师与教师的区别
ADC EMIF DAC Supervisor Total System Concept Ser Pt DSP Memory TMS320 Ser Pt 3.3v 1.8v Reset Regulator Power Supply
主要内容 • DSP运算的特点 • DSP芯片生产厂商 • DSP的体系结构 • TI C6x DSP硬件结构与应用 • VLIW体系结构 • 汇编语言/线性汇编/编程特点 • CCS简介 • 硬件仿真器
主要DSP厂商 • TI • ADI • MOTOROLA • LUCENT • PHILIPS • Equator
主要内容 • DSP运算的特点 • DSP芯片生产厂商 • DSP的体系结构 • TI C6x DSP硬件结构与应用 • VLIW体系结构 • 汇编语言/线性汇编/编程特点 • CCS简介 • 硬件仿真器
DSP的体系结构 • 从体系结构角度分析,DSP设计可以采用哪种结构? • CISC ? • RISC ? • SuperScalar ? • VLIW ?
DSP的体系结构 • CISC: TMS320C5000 • SuperScalar: LSI ZSP400(200/500/600) • Static SuperScalar: ADI TS201S • VLIW: TMS320C6000/PHILIPS TM1000 • ReConfigurable:Tensilica Xtensa LX架构 • Vectra LX定点向量DSP引擎 • 中科院声学所: 可配置的 4发射 VLIW • SuperV
ADI TigerSharc • 静态超标量体系结构支持1、8、16和32位定点和浮点数据处理 • 高性能600 MHz、1.67 ns指令速率DSP核 • 24 Mbit片上SRAM,使用用户定义的分区,内部分为6个区 • 增强的通信指令集,用于无线基础结构应用,使得TigerSHARC可以提供完整的基带处理 • 4个内部128-bit宽内部总线,提供每秒38.4 Gbyte的总存储带宽 • 单指令多数据(SIMD)操作,由2个计算模块支持,每个都具有ALU、乘法器、移相器和32字寄存器文件
ZSP600 特点 每个周期可处理6条指令,4 MAC/6 ALU DS核 可通过Z.turbo端口定制指令集 广泛的32位和40位的支持 16/32位指令集 在指令和数据内存上都含有24比特数据寻址空间 正交的,Load -store指令集 硬件控制的流水线保护 具有嵌入追踪和性能评测(profiling)能力 可综合的,单相的时钟设计 可完全支持AMBA 与其他型号ZSP核代码完全兼容
主要内容 • DSP运算的特点 • DSP芯片生产厂商 • DSP的体系结构 • TI C6x DSP硬件结构与应用 • VLIW体系结构 • 汇编语言/线性汇编/编程特点 • CCS简介 • 硬件仿真器
TI C6x DSP硬件结构与应用 • C1x、C2x、C3x、C4x、C5x、C8x • C24x/C28X、C54x/C55x、C62x/C67/C64 • OMAP ( arm7tdmi + C55x ) • 达芬奇( arm921 + C64x + 低功耗 )
TMS320C5000™ TMS320C6000™ TMS320C2000™ Highest-Performance DSPs in the World Most Control-Optimized DSPs in the World Lowest Power/MIPS DSPs in the World TMS320™ DSP Platforms Achieve Unequivocal Leadership
TMS320™ DSP Family Overview fastest TI DSPs running at clock speeds up to 1.1 GHz Tms320 C6416 • from 1200 to 8000 MIPS for fixed-point • From 600 to 1350 MFLOPS for floating point
TMS320C6000 DSPs ROADMAPs C6201 C6203 C6204 C6205 C6416 DM642
Compare C6000 DSPs • C6x0x:标准版 • C6x1x:廉价cache存储结构
32 DMA EMIF Program Memory 64 Kbytes 32 XBUS McBSP 0 McBSP 1 Timer 0 Timer 1 Data Memory 64 Kbytes JTAG functional and CPU block diagram C6204 CPU 200Mhz TMS320C6204 Digital Signal Processors
C6201的结构框图 • 一级CACHE • 直接映射式(direct map) • DSP软件人员的惯用手法: • DMA • Ping-pong • 函数重定位
C6211的结构框图 • L1P: 直接映射式(direct map) • L1D: 2路组关联(2-way set associative) • L2: 4路组关联(4-way set associative)
C64x的结构框图 • 置换算法都是最近最少使用(LRU)法
6000 DSP Architecture and Core • The TMS320C62x™ and TMS320C67x™ devices are based on VelociTI™, an advanced Very Long Instruction Word (VLIW) architecture. • The C64x™ DSP generation features TI's VelociTI.2™ VLIW architecture
VelociTI • Two general-purpose register files (A and B) 32×32bit • Eight functional units (.L1, .L2, .S1, .S2, .M1, .M2, .D1, and .D2) • Two load-from-memory paths (LD1 and LD2) 32bit • Two store-to-memory paths (ST1 and ST2) 32bit • Two register file cross paths (1X and 2X) • Two data address paths (DA1 and DA2)
VelociTI.2 • Two general-purpose register files (A and B) 64×32bit • Eight functional units (.L1, .L2, .S1, .S2, .M1, .M2, .D1, and .D2) • Two load-from-memory paths (LD1 and LD2) 64bit • Two store-to-memory paths (ST1 and ST2) 64bit • Two register file cross paths (1X and 2X) • Two data address paths (DA1 and DA2)
TI DSP的应用领域 • 电机控制 • 通信 • 图像/视频
蓬勃兴起的视频监控领域 • 数字化 • 网络化:压缩算法(编码与解码) MPEG1/MPEG2/MPEG4/H.263/H.264/AVS • 智能化:生物识别技术 人脸识别 虹膜识别 指纹识别 掌形识别 声音识别
Video Security solutionsIP Nodes • 2 TI TMS320DM642 DSPs • 4 x 4 inch • 32 Mbytes per DSP SDRAM • 8 GPIO Signals per DSP I/O • 4 Composite Inputs • 4 Stereo Inputs
人脸识别器 • 人脸检测功能的演示: 基于规则的算法:快速算法 基于学习的算法:adaboost算法 • TMS320C6204: 4~7 frame/sec • TMS320DM642:25 frame/sec
信号处理板结构图 一个问题:设备启动过程?(加载再加载)
信号处理板实物图 如果由DM642实现相同功能会怎样?(节省7chip) 开发过程 高性能信号处理板 dsp上的操作系统
3X MIPS performance 1/2 the power consumption 2X performance DM642 4800 MIPS Application Performance MPEG-2 Video Decode: MP@ML 30 fps (720x480) Texas InstrumentsDM642 4 1600 MIPS 2X 3 2 # of Channels Equator BSP-15 900 MIPS 1 PhilipsTriMediaTM-1300 0 Equator MAP Processors(333 MHz) TI DM642 (600 MHz) 3种著名的媒体处理器均属VLIW 600 500 400 Performance/Clock Speed (MHz) 300 200 100 0 1.5 w 2.5 w 3.5 w Typical Power Consumption (Watts)
主要内容 • DSP运算的特点 • DSP芯片生产厂商 • DSP的体系结构 • TI C6x DSP硬件结构与应用 • VLIW体系结构 • 汇编语言/线性汇编/编程特点 • CCS简介 • 硬件仿真器
TMS320C6X的编程特点 • 软件优化的工作量很大 • 一个PC上有经验的C语言程序员实现的算法 • 到C6x上最后优化好的算法 • 性能上存在10倍到100倍的差异!!! 人脸识别: 9sec/frame -> 7frame/sec 小目标检测:8sec/frame -> 100frame/sec
Why? • CISC: 生成体积小的代码,节省存储 • RISC 高效实现流水线,指令级并行(ILP) • 要提高ILP,该怎么办?(多发射提高理想IPC) SuperScalar:动态的、依赖硬件的方法 多用于PC与服务器 VLIW:静态的、依赖软件的办法 多用于嵌入式CPU
相关与冲突小结 • 资源冲突 功能单元冲突 总线冲突 存储冲突 • 数据相关与数据冲突 数据相关 与 写读冲突 反相关 与 读写冲突 输出相关 与 写写冲突 • 控制相关 异常行为 数据流
提高指令级并行性的软件方法 • 1.基本编译技术 • 2.静态分支预测 • 3.静态多发射:VLIW方法 • 4.软件流水 • 5.条件执行指令
Software Scheduling(软件调度) to Avoid Load Hazards Try producing fast code for a = b + c; d = e – f; assuming a, b, c, d ,e, and f in memory. Slow code: LW Rb,b LW Rc,c ADD Ra,Rb,Rc SW a,Ra LW Re,e LW Rf,f SUB Rd,Re,Rf SW d,Rd Fast code: LW Rb,b LW Rc,c LW Re,e ADD Ra,Rb,Rc LW Rf,f SW a,Ra SUB Rd,Re,Rf SW d,Rd