ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:495.90KB ,
资源ID:9371447      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9371447.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(DSP复习资料.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

DSP复习资料.docx

1、DSP复习资料第二章 DSP核和DSP处理器的新发展* 2.1 DSP核与DSP处理器实现高速运算的途径硬件乘法器及乘加单元:满足最常见的乘法及乘积累加的运算,实现卷积、向量和矩阵、傅里叶变换等算法的运算。通用CPU通过移位和加法运算实现,需多个时钟周期。多个执行单元:多个独立执行单元,并行处理。如:并行的多个MAC,ALU,移位器和数据地址发生器(DAG)。高效的存储器访问:支持单周期内实现从存储器中提取指令、数据样本及滤波器系数,要有良好的存储器宽度与访问速度,这也是采用哈佛结构的原因。此外,DSP算法中的存储器访问具有很强的可预测性,方便为下一次运算做准备。数据格式:分为定点格式和浮点格

2、式,在精度与其它要求之间达成平衡,满足需求。零开销循环:为高效循环提供专门支持,无需消耗任何始终周期进行循环。数据流的线性I/O:设置1个或多个专门的串口与并口,采用线性处理机制,使得数据传输不影响CPU的工作。专门的指令集:早期DSP指令集需要达成两个目标;最大限度使用硬件,提高效率;最小限度使用存储器,降低成本。因此,DSP指令集允许在单个指令中并行完成多个操作,并且使用短指令。使得DSP指令具有高度专门化、复杂且不规则的特点,但使得编写高效的汇编语言软件复杂化。* 2.2 当前DSP处理器结构的发展趋势传统的DSP处理器于1980年代出现的传统DSP结构具有以下特点:每个时钟周期执行一条

3、指令,使用复杂的、多操作类型的指令;往往包括操作一个乘法器或MAC(乘加器),一个ALU和若干个其他的执行单元;2050MHz频率,低功耗与存储器的条件下提供不错能服务(光盘/硬盘驱动器等)。增加了一些硬件,如桶形移位器、指令高速缓存(cache)、指令流水线、提供时钟频率等,工作在100150MHz, 保持在低功耗与能耗时,提供较好性能服务。(无线通信,高速modem).强化的传统结构DSP处理器在不提高时钟频率和不显著改变硬件的条件下改善性能: 在传统的DSP结构上增加并行的执行单元,如增加第二个或更多的乘法器和加法器等;伴随着指令集的扩展,以充分利用增加的硬件,并行更多的操作;强化的传统

4、结构DSP具有更宽的数据总线,以便在每个周期内为增加的执行单元提供数据;还使用更宽的指令字,以便在单个指令内进行附加的并行操作;(见p.29 图2.2.1)并行结构为了实现高性能与高效使用编译器的目的:有别于传统结构DSP,并行性处理器使用非常简单的指令,即同时执行一组并行的指令,而不是一次执行一条指令;简化指令的编写与执行,处理器在高时钟下运行;如TI公司1996年推出了TMS320C62xx而传统结构的DSP的并行依靠复杂指令,即单个指令可对应多个操作,如TI的C5400,C5500系列等并行执行多指令的处理器的结构又分为两类,即超长指令字(VLIW,Very Long Instructi

5、on Word)和超标量(superscalar)结构;主要区别是并行执行的指令如何分组;在VLIW结构中,将48条指令打包成一条很长的指令执行,代码产生工具决定哪些指令要并行执行,在汇编时才打包,执行时不改变分组;超标量处理器则只打包24条指令,有专门的硬件来决定哪些指令将并行地执行,基于数据的关联与资源的情况进行决定,故其是动态决定并行操作。较难准确预测给定程序的执行时间,故给实时处理带来严重问题。在VLIW结构中,指令字很简单,但是采用更宽的指令字,由16 bit 变为32 bit. 有利于使用大量的规格统一的寄存器,也让指令组更加规则一致,进而提高性能与效率。但简单指令会增加存储器的需

6、求,提高成本。一般来说,VLIW与超标量处理器的功耗更大,其应用目标是要求性能好,但对成本与功耗不敏感的移动基站等系统。单指令多数据(SIMD)单指令多数据(SIMD,Single Instruction Multiple Data)并不属于结构本身,作为一种结构技术,可以在任何结构中使用。它通过使处理器并行地用不同的数据,执行多次同样的操作,来改善处理器的性能。例如,SIMD乘法指令,可以在单周期内用不同的输入数据执行两次或多次乘法,但需要对存储器中数据做专门安排。其它形式高性能CPU:扩展基于SIMD的指令集,将CPU的资源分为多个小的资源并行使用,提高性能。如,一个具有64-bit数据总

7、线、64-bit寄存器和64-bit ALU的CPU,可以当成4个16-bit的数据总线、寄存器和ALU,也就可以同时执行4个16-bit的数据运算。DSP/MCU的混合:MCU有良好管理性能,DSP具有好的数据处理性能,满足既要控制又要使用DSP软件的应用。例如,包含MCU核和DSP核的SoC,在其MCU里强化DSP功能,从而只使用一个处理器来取代原来的两个。2.3 新近推出的DSP核与DSP处理器LUCENT 和MOTOROLA 联合开发的STARCORE,1998年开始研发,目前已到第三代SC3850,主要用于数据通信、移动通信和家庭影院。ADI 和INTEL 联合开发的DSP 核Bla

8、ckfin, 组合了一个32 bit RSIC (reduced instruction set computer) 指令集和双16 bit MAC功能,成为一种VLIW的媒体处理器。TI 新的系列DSP 核C64+和C66XARM (Advanced RISC Machines) 核:已经和DSP 核密不可分,协同工作;同时,ARM 的数字信号处理能力大幅度地提升。Iphone/智能电话都在使用。该公司只设计,不生产,占有90%市场份额。2.4 新近推出的多核DSP处理器同构多核DSP处理器所谓同构多核,是指在一个处理器芯片内,包含了多个同样结构的DSP核,有极高性能,应用于高性能要求场所。

9、如:雷达、声纳、导引、LTE系统基站、大型医疗诊断设备。Freescale 基于StarCore 的多核DSP处理器MCS8256,采用45 nm工艺的高度集成的SoC,集成了6个SC3850核,每核运行于1GHz,整体达到6GHz,性能高功耗低。TI 基于C66x 核的多核处理器TMS320C6678,是一种高性能定点/浮点DSP处理器,基于KeyStone多核体系构架,集成8核,累计到10GHz,有一套完整开发工具。Qualcomm 基于Scorpion核的Snapdragon处理器,Scorpion基于ARMv7结构,是一种超标量,双流程的机器,始于2005年,65nm工艺,1GHz.

10、Snapdragon已成为许多先进智能手机的处理器。Freescale 基于ARM 技术的i.MX 系列应用处理器,其优化了性能与电池寿命之间的平衡,使用了基于ARM9、ARM11和ARM Cortex-A8的核技术。集成了DSP核的异构多核SoC处理器以上介绍的是基于单核或者多核的ARM技术的SoC处理器。基于ARM核和DSP核,被称为异构多核的SoC 处理器,具有非常优越的性能,更早得到应用。TI 的OMAP(Open Multimedia Application Platform)处理器,已到第五代,包含处理器、套装软件和电源管理技术,主要应用于无线连接、电源管理、智能电话、移动设备。T

11、I 应用于数字视频的DaVinci(达芬奇)技术,专注于数据视频处理,提供API,不用写DSP代码,包含数百种芯片的庞大体系。第3章 DSP的开发环境和工具3.1 集成开发环境CCSCCS的功能CCS的功能十分强大,它集成了代码的编辑、编译、链接和调试等诸多功能,而且支持C/C+和汇编的混合编程,其主要功能如下: 具有集成可视化代码编辑界面,用户可通过其界面直接编写C、汇编、.cmd文件等; 含有集成代码生成工具,包括汇编器、优化C编译器、链接器等,将代码的编辑、编译、链接和调试等诸多功能集成到一个软件环境中; 高性能编辑器支持汇编文件的动态语法加亮显示,使用户很容易阅读代码,发现语法错误;

12、工程项目管理工具可对用户程序实行项目管理。在生成目标程序和程序库的过程中,建立不同程序的跟踪信息,通过跟踪信息对不同的程序进行分类管理; 基本调试工具有装入执行代码、查看寄存器、存储器、反汇编、变量窗口等功能,并支持C源代码级调试; 断点工具,能在调试程序的过程中,完成硬件断点、软件断点和条件断点的设置; 探测点工具,可用于算法的仿真,数据的实时监视等; 分析工具,包括模拟器和仿真器分析,可用于模拟和监视硬件的功能、评价代码执行的时钟; 数据的图形显示工具,可以将运算结果用图形显示,包括显示时域/频域波形、眼图、星座图、图像等,并能进行自动刷新; 提供GEL(General Extension

13、 Language)工具。利用GEL扩展语言,用户可以编写自己的控制面板/菜单,设置GEL菜单选项,方便直观地修改变量,配置参数等; 支持多DSP的调试; 支持RTDX (Real-Time Data Ex-change)技术,可在不中断目标系统运行的情况下,实现DSP与其他应用程序的数据交换; 提供DSP/BIOS工具,增强对代码的实时分析能力。 代码生成工具每个DSP系列都提供代码生成工具C编译器(C compiler):将C源程序代码编译成为320系列对应汇编语言源代码。编译包中包括一个外壳程序(shell program)、一个优化器(optimizer)和一个内部列表公用程序(int

14、erlist utility)。汇编器(assembler):将汇编语言源文件转变为基于公用目标文件格式(COFF)的机器语言目标文件。连接器(linker):将目标文件连接起来产生一个可执行模块。它能调整并解决外部符号参考。连接器的输入是可重新定位的COFF目标文件和目标库文件。归挡器(archiver): 将一组文件归入一个归挡文件,也叫归档库。另外,归档器允许通过删除、替代、提取或增加文件来调整库。归档器最有用的应用之一是建立目标文件库。助记符到代数语言的转换公用程序(mnemonic-to-algebraic translator utility): 转换汇编语言源文件。该程序接收含有

15、助记符(MOV,ADD)的指令,并将其转换为代数指令,产生一个含有代数指令的汇编语言源文件。运行支持库公用程序(runtime-support utility): 建立用户的C语言运行支持库。标准运行支持库函数在rts.src里提供源代码,在rts.lib里提供目标代码。运行支持库(runtime-support library): 包含ANSI标准运行支持函数、编译器公用程序函数、浮点算术函数和被C54x编译器支持的C输入/输出函数。绝对列表器(absolute lister):接收已经连接的目标文件作为输入,并产生.abs文件作为输出。汇编.abs文件产生后含有绝对地址的列表。十六进制转化

16、公用程序(hex conversion utility):将COFF目标文件转化为TI-Tagged,ASCII-hex,Intel,Motorola-S,Tektronix等目标格式,从而可以将转化文件装载在可擦除程序存储器里。TI DSP的调试器接收可执行的COFF文件作为输入,但大多可擦除存储器却不支持COFF文件。同时该转换工具还可以自动生成BOOTLOADER程序所需要的引导信息。交叉引用列表(Cross-Reference Lister): 用目标文件来产生一个交叉引用列表,列出符号、符号的定义、以及它们在已连接的源文件中的引用。探针(probe points)工具使用在CCS环境

17、下可以设置探针,探针实际上是一种特殊的断点。当程序运行到探针位置时,CCS中断目标系统的DSP程序的运行,然后从与该探针连接的数据文件(存放在PC机)中读出数据或输出结果,当完成数据的传输后自动恢复目标系统的DSP程序的运行。探针工具特别适用于算法的仿真。探针工具可以运行在软仿真(Simulator)下。探测点在算法开发过程中是一个有用的工具,可用来与PC主机进行数据通信。利用探测点可以进行以下工作: 从PC主机的文件中,传输输入数据至目标系统的缓冲区,作为算法开发的模拟数据; 从目标系统的缓冲区中,输出数据至PC主机的文件中,以便进行数据分析; 更新窗口,例如图形、数据等。 图形工具的使用C

18、CS提供了多种绘图工具,能将内存中的数据以各种图形方式显示,帮助用户直观地了解数据的意义。图形工具在数字信号处理中非常有用,可以从总体上分析处理前和处理后的数据,以观察程序运行的效果。需要注意的是图形窗口只有在断点时才刷新,所以应增加断点,并使用Animate方式运行。这样可以显示动画效果。能提供的显示有:时域/频域波形,眼图,星坐图,图象。 CCS提供了四大类共九种图形显示方式。 CCS提供有显示多种功能图形。每一种功能都有相应的图形属性对话框,用来设置显示图形的各种参数。打开图形属性对话框的方法:在查看菜单“Tools”中,选择“Graph(图形)”选项,弹出命令子菜单(Debug之后才会

19、出现);子菜单中有六项图形命令。选择四项命令可以分别打开各自的图形属性对话框。 选择Single Time命令,打开的对话框。剖析工具(profile points)的使用在CCS中,你可以利用代码剖析工具,计算代码执行了多少个机器时钟。剖析工具报告的时钟个数是从前一个剖析点开始或程序起始处。统计CPU执行某程序所用的时钟周期数、程序分支数、子程序调用数、中断发生次数等统计信息。 基本方法是在程序的适当位置设置断点(软断点或评价点),当程序执行通过断点时,收集并统计有关程序的执行信息。用户通过统计信息评估其性能。 你可以使用鼠标右键单击某个行,选择“Breakpoint- Profile Co

20、ntrol Point - Resume Profiling”可以设置剖析点。然后在“Profile Control Point”中选“Pause Profiling”。剖析点是一种特殊的断点,是专门用来在程序的特殊位置获取评价信息。在每个评价点上,CCS记录该剖析点命中次数以及距上次剖析点之间的指令周期数等信息。与断点不同,CPU在通过剖析点统计数据后,继续执行程序。 CMD内存定位文件的使用段的由来与PC中的应用程序不同,TI的DSP应用程序是一段在固定地址运行的程序。其在加载时,会写入到指定的存储器中。由.cmd文件提供,包括系统中可用内存块;程序代码和数据将被安排到哪个内存中。段的定义

21、为了有效利用DSP的内部或外部存储器,目标文件中的代码和数据被存放在不同的段中。这些数据段或代码段在内存中可以是分开的,也可以是连续的。在生成的OUT文件中包括三个缺省段: .text,.data,.bss 段有两种基本的类型已初始化的段:包括数据和代码。例如.text 和.data段都是已初始化段。在汇编语言中自己定义的用于存放代码的.sect段也是已初始化段。未初始化的段:是为未初始化数据保留的内存空间。例如,.bss段是未初始化的,用于为变量保留空间。在汇编语言中还可以使用.usect指令说明一个未初始化段还可以在汇编语言中自己定义的用于存放代码的段,如.sect(代码), .usect

22、 、 .buffer (数据)等连接器如何使用段汇编器和连接器允许创建、命名和连接已经命名的段。连接器有两个与段有关的功能:一个是在建立输出OUT文件时,连接器要使用OBJ目标文件中的段,合并输入段(当被连接的文件多于一个时)。另一个是连接器为输出段选择存储器地址。这些连接器可以根据用户提供的CMD定位文件,来安排段的实际地址。这个CMD定位文件一般有两个部分:MEMORY和SECTIONS。在MEMORY中,主要说明目标系统中哪些存储器可以使用,它们的起始地址是多少,大小如何。在SECTIONS部分中,主要完成段的具体地址的分配。例如,我们将.text段存放在1800h开始的程序空间中,将.

23、bss段存放在c00h开始的数据空间中,将.vect段存放在程序空间的200h开始的地方。存储器指令(memory directive) 定义目标系统的存储器图。用户可以给部分存储器命名,定义它的起始地址和长度。段指令(sections directive) 告诉连接器如何将输入段合并到输出段中,及将这些输出段放在存储器的什么地方。用户可以用连接器的SECTIONS指令指定子段,如不特别指定,子段将和同基段名的段合并在一起。定位CMD文件可以包含参数将连接器使用的参数添加到内存定位CMD文件中,这样整个连接器命令可以简化为(以C5000系列为例,使用LNK500):C:C54XLNK500 a

24、smlnk.cmd3.2 DSP/BIOS的应用DSP/BIOS的功能DSP/BIOS是CCS提供的一套工具,用于支持系统实时分析。它本身仅占用极少的CPU资源。使用线程来管理程序,如硬件中断服务子程序,软件中断服务子程序,周期函数,idle函数等。线程(thread)是操作系统能够进行运算调度的最小单位。一条线程指的是进程中一个单一顺序的控制流,是进程中的实际运作单位,一个进程中可以并发多个线程,每条线程并行执行不同的任务。提供多种分析工具,评估代码。如图形化显示各个线程占用的CPU时间,代码执行时间统计,显示输出信息等。可以修改各个线程的优先级。CCS中的DSP/BIOS工具已经具有实时操

25、作系统的很多功能特点,如任务的调度管理、任务间的同步和通讯、内存管理、实时时钟管理、中断服务管理等等。DSP/BIOS(v5.4)以后的版本SYS/BIOS!当然,你也可以不使用DSP/BIOS工具,而使用传统的汇编和C编写DSP应用程序。DSP/BIOS应用程序的结构DSP/BIOS API提供可伸缩的实时核,还提供了有优先级的多线程处理。它是专为那些需要实现实时调度、同步以及通讯的应用程序而设计。在一个包含DSP/BIOS内核的应用程序按优先级从低到高有四种主要线程: 不使用DSP/BIOS时的程序结构 DSP/BIOS应用程序的结构DSP/BIOS的大小对于C62x,最小需要程序存储空间

26、的150字,数据存储空间575字。以C6201为例:占有的程序空间0.9%和数据空间3.5%最多需要6500字,占C6201存储空间的20%。所以多数应用中是可接受的。DSP/BIOS的可裁减性:只把直接或间接调用的模块和API连接到目标文件中DSP/BIOS支持的平台支持C5000和C6000,C2000的DSP:支持的平台:EVM, DSK, 第三方开发的目标板, 用户自己开发的板子 和 Simulator 配置模板(Configuration template)使用配置工具配置生成用户自己的.cdb文件 Simulator 中使用DSP/BIOS片上时钟,CLK and PRD modu

27、les;Pin Connect tool配置中断管脚,仿真硬件中断。DSP/BIOS提供的应用程序接口(API)模块CLK模块:用于片上的定时器管理,设置定时器中断的间隔时间。HST模块:用于实现主机与目标系统间数据的输入或输出。HWI模块:用于硬件中断管理,可设置相应的中断服务子程序。IDL模块:用于管理idle函数,该类函数具有最低优先级。DSP/BIOS提供的模块LOG模块:用于事件的记录显示。例如,你可以通过该API输出调试信息。MEM模块:用于定义目标系统的内存使用。系统根据此信息自动产生.cmd文件。PIP模块:用于管道管理,可以实现线程间的数据交换。PRD模块:用于实现周期性的函数。该类函数的执行频率可以由CLK模块或自己调用PRD_tick决定。RTDX模块:用于主机与DSP目标系统间的实时数据传递。STS模块:用于状态统计管理,你可以在CCS下查看这些统计参数。SWI模块:用于管理软件中断。CCS将运行队列中的软件中断,并可以设置15个优先级,但都比硬件中断低。第四章 DSP方案工程实现* 4.4 DSP最小系统设计 (了解内容,没有PPT,见书) 4.6 DSP中定点数和浮点数的运算 (P228和实验)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1