




已阅读5页,还剩64页未读, 继续免费阅读
(电路与系统专业论文)基于dsp的实时算法仿真平台.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 数字信号处理器( d i g i t a ls i g n a lp r o c e s s o r ,以下简称d s p ) 的出现,是信号处理 系统发展历史上具有里程碑意义的事件。随着d s p 的功能日益强大,技术不断 升级,系统不断完善,d s p 技术的普及与应用,已成为潮流。 在新的应用领域中,嵌入式系统对算法的实时性能提出了更严格的要求;同 时算法的复杂度也不断提升。在上述背景下,本论文将建立一套基于d s p 的算 法开发平台,该平台可以充分的发挥m a t l a b 在系统级设计和数据分析过程中 的优势;支持在c 语言和汇编语言级别上针对算法结构进行自动优化,也支持 手工优化核心代码。同时可以应用该平台开发进行算法动态调试,并且对其实时 性能进行科学的评估,确保系统满足设计要求。该平台采用d s p b i o s 进行系统 资源管理和任务调度,并可以扩展u s b 2 0 、p c i 等数据接口和总线标准,从而 快速实现信号处理系统的原型化设计。 本论文讨论了实时算法开发平台的体系结构,其中主要组件的功能,以及代 码优化的准则。开发平台的建立可以整合资源,提高开发效率;同时提高代码的 可靠性和可移植性。 关键词:d s p ,m a t l a b ,c c s a b s t r a c t i o n d i g i t a ls i g n a lp r o c e s s o r ,w h i c hi sc o n s i d e r e da sa m i l e s t o n ei ns i g n a l p r o c e s s i n gs y s t e m ,h a sb e e np l a y i n gam o r ei m p o r t a n tr o l e d u r i n gt h e r e c e n tt w e n t yy e a r s ,w i t ht h er a p i dd e v e l o p m e n to fc o m p u t e rs c i e n c e ,d i g i t a l s i g n a lp r o c e s s i n gt e c h n o l o g yh a sb e e n am a i nb r a n c ho f t h ea d v a n c e d t e c h n o l o g i e s ,a n di ti sw i d e l yu s e di nm a n yi n d u s t r i e s i nn e wf i e l d s ,m o r es t r i c tr e a l - t i m er e q u i r e m e n t s ,a sw e l la sm o r ec o m p l e x i t y , h a v eb e e na p p l i e dt oe m b e d d e ds y s t e m s u n d e rt h i sc i r c u m s t a n c e ,t h i st h e s i s p r e s e n t sas o l u t i o nt oe s t a b l i s ha r e a l - t i m ea l g o r i t h m - d e v e l o p i n gp l a t f o r m m a t l a bi su s e dt ov e r i f yr e a l - t i m ec o d e ,a l s ocl a n g u a g ea n da s s e m b l e l a n g u a g ec o d ec o u l db eo p t i m i z e db o t ha u t o m a t i c a l l ya n du s i n gh u m a n l a b o r t oe v a l u a t et h er e a l t i m ep e r f o r m a n c e ,d y n a m i c a ld e b u gi ss u p p o r t e d d s p b i o sw o r k sa sar t o sc o r ea n di m p l e m e n t ss c h e d u l ea n d i n s t r u m e n t a t i o n d a t ac o u l d b ea c q u i r e dv i au s b 2 0a n dp c ib u s t h i s p l a t f o r mc o u l da c c e l e r a t et h ep r o c e s s t od e v e l o pap r o t o t y p es y s t e m i nt h i st h e s i s ,t h es t r u c t u r ea n df u n c t i o no ft h ep l a t f o r mi sd i s c u s s e d ,a sw e l l a ss o m ep r i n c i p l e st oo p t i m i z er e a l t i m ec o d e w i t ht h i sp l a t f o r m ,d s p s o f t w a r ec o u l db e c o m em o r ee f f i l c i e n ta n de f f e c t i v e k e yw o r d s :d s p ,m a t l a b ,c c s 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的 研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包 含其他人已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其 它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所 做的任何贡献均已在论文中作了明确的说明并表示了谢意。 签名: 日期 关于论文使用授权的说明 本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校 有权保留送交论文的复印件,允许论文被查阅和借阅:学校可以公布论文的 全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 签名:导师签名:日期: 竣斗f 辫 第一章绪论 第一章、绪论 随着移动通信、多媒体等技术的飞速发展,数字信号处理器( d i g i t a ls i g n a l p r o c e s s o r ) 的应用前景越来越广泛。同时,算法复杂度与算法实时性的矛盾也逐 渐突出。传统的d s p 代码往往需要手工优化以确保其执行效率,然而应用此种方 法开发d s p 软件却需要耗费大量人工成本。本文提出一种高效率的d s p 代码开发 方法,并且保证核心代码的执行效率。 传统的d s p 应用系统设计流程分为两个阶段:开发设计和产品实现。在开 发设计部分完成方案设计和算法设计与验证,一般用m a t l a b 语言进行仿真, 当仿真结果满意时,再进入产品的实现阶段。将开发设计阶段的算法用c c + + 或者汇编语言实现,在硬件d s p 目标板上调试。因此,需要集成开发环境将运 算的中间结果保存到p c 的内存空间,然后调到后台分析软件工作空间,与标准 算法的中间结果进行比较,以发现d s p 程序中由设计或精度导致的结果偏差。 如此过程反复进行, 非常不便。为了解决这个问题,出现了实时算法开发平台 的构想。该平台采用系统级设计方法将算法设计所需要的各种资源进行整合,从 而有效地将开发流程的两个部分结合在一起。进行系统级设计需要个统一的开 发环境,且在该开发环境中可以对系统结构、算法进行描述,还能够对系统不 同层次、不同组件和不同数据类型进行建模。m a t l a b l i n k f o r c c s d e v e l o p m e n t t o o l s 就是为了完成系统级设计而出现的。 一、算法实时性的概念 实时性是指信号处理系统能够在限定时间内执行完规定的功能并对外部的 异步事件做出响应的能力。实时性的强弱是以完成规定功能和做出响应时间的长 短来衡量的。一般而言,对于逐样本( s a m p l eb ys a m p l e ) 处理的系统,如果对 单次样本的处理可以在相邻两次采样的时问问隔之内完成,我们就称这个系统满 足实时性的要求。即:t _ _ p r o e s s t s a m p l e ,其中,tp r o e s s 代表系统对单次采 样样本的处理时间,ts a m p l e 代表两次采样之间的时间间隔。需要注意,tp r o e s s 还应当考虑各种系统开销,包括中断的响应时间,数据的吞吐时间等。正确理解 实时的概念是很重要的。 北京公约大掌工学硕士学位论文 信号处理系统按照对实时性的需求高低,还可以进一步划分为硬实时系统和 软实时系统。硬实时系统的时间安排是事先排定的,所以各种作业保证从外部事 件的响应起,在精确的时间限度内开始执行。硬实时系统是确定型的。软实时系 统通常会排列起始例行程序的平均时间长度,但有个小的概率,那就是最大的 时间会很长。任务要求十分严格的应用项目必须是确定型的。 二、实时性与算法复杂度 传统理论认为算法的复杂度包括:时间复杂度和空间复杂度。算法时间复杂 度定义为算法的时间耗费,即算法所求解问题规模( 求解问题的输入量) n 的函 数。时间复杂度一般用0 ( n ) 来表示,当n 达到一定规模时,时间复杂度越小, 执行效率越高,招待时间越短,系统功耗越低。算法空间复杂度定义为该算法所 耗费的存储空间,它也是问题规模n 的函数。 随着微电子技术的发展,数字信号处理器的结构和传统的c p u 结构的差异性 日益显著。现代d s p 器件大多采用多总线哈佛( h a r v a r d ) 结构,指令执行采用 流水作业( p i p e l i n e ) ,采用独立的硬件乘法加法器( m a c ) ,高端d s p 大多在 硬件上支持循环寻址( c i r c u l a ra d d r e s s i n g ) 、位倒序( b i t r e v e r s e d ) 等特 殊指令。上述特性大幅度提升了系统的实时运算性能,同时改变了传统的算法复 杂度模型。同时,诸多高性能的总线标准的产生也为海量数据的传输和实时处理 奠定了基础。 三、系统级设计方法与快速原型 系统级设计方法的核心是将算法设计和系统级设计仿真在统一的开发环境 中进行,从而有效地将开发流程的将两个部分结合在一起。进行系统级设计需要 个统一的开发环境,且在该开发环境中可以对系统结构、算法进行描述还能 够对系统不同层次,不同组件和不同数据类型进行建模;同时要有良好的移植性 能。s i m u l i n k 提供了这样一个很好的开发环境,它是基于图块的系统级仿真环 境。分级系统的描述方式,提供了真正的自顶向下的设计方法,并且通过图块的 方式实现移植。快速原型就是系统工程师在硬件平台上快速验证他们的方案。这 里快速是指无需进行漫长的针对硬件的软硬开发过程,就可以方便的使用相关硬 第一章绪论 件平台a 快速原型不需要工程师进行大量的c 或汇编编写代码的过程。同时还降 低系统工程师对硬件知识的要求,并提供了硬件在回路仿真的能力。 四、m a t l a b 与d s p 的接口 m a t hw o r k s 公司为我们提供了功能强大的d s p 系统和算法设计工具:m a t l a b 和s i m u l i n k ,t e x a si n s t r u m e n t s 提供了高性能的d s p 设备和集成开发环境。两 公司合作推出了集成开发工具d e v e l o p e r sk i tf o rt id s p ,向用户提供了三 种接口,如图1 - 1 所示。 m 骶柚s 】n 几i l 目n x p r u d e c t - f m l i l y p r o d u c t - f r o h i l y d 删e l o p 矗i sk i t f o r t e x a s 强g 帆i m 哪拓d s p l i n k f o r l i n k f o r t a r s c t f o r 象= r d xc c s 硗c c s i d e c 6 7 0 b q m c 5 7 1 t d s k r e a l - i :i l j n e 飘嗍嘲靠e o r r , r o lc o s 西囝e c i ,cc o d e 【( ;o d e c o m p o s e rs t u d i o jl r t d x : , r1 r1r a n yc s 0 0 0 c 6 0 0 0c c s 雎o j e c t c 6 柏1 融眦c 6 7 1 t a r g e t f i l ed 骤 图卜i 系统软件框架 t a r g e tf o rc c si d e c 6 7 0 1e v m 可以让用户从数字信号处理的s i m u l i n k 模 型自动生成c 6 7 0 1e v m 的c c si d e 工程文件,并可进一步自动编译下载到c 6 7 0 1 e v m 上执行。设计人员可以快速的将数字信号处理的算法模型下载到实时硬件平 台上执行,用以评估算法的性能,或者转换为一个c c si d e 工程文件,实现从 北京公约大学工学硕士学位论文 s i m u li n k 环境到c c si d e 环境的无缝连接。通过t a r g e tf o rc c si d e c 6 7 0 ie v m , 用户可以方便的利用m a t hw o r k s 公司提供的d s p 、通信和数学算法库,将主要 的精力放在设计而不是d s p 编程上,进行反复的迭代设计,直到算法满足系统性 能要求。t a r g e tf o rc c si d e c 6 7 0 1e c 6 7 1 1d s k 从以下方面方便了用户: 有助于实现d s p 算法原型 半系统级的算法验证 * j as i m u l i n k 模型到c c si d e 工程的无缝转换 木5 晕低编写d s p 代码的难度 m a t hw o r k s 公司和t i 公司联合开发m a t l a bl i n kf o rc c sd e v e l o p m e n t t o o l s ( c c sl i n k ) 提供了m a t l a b 和c c s 的接口,即把m a t l a b 和t ic c s 及目标 d s p 连接起来。利用此工具可以像操作m a t l a b 变量一样来操作t id s p 的存储器 或寄存器,即整个目标d s p 对于m a t l a b 好像是透明的,开发人员在m a t l a b 环境 中就可以完成对c c s 的操作。 m a t l a bl i n kf o rc c sd e v e l o p m e n tt o o l s 可以支持c c s 能够识别的任何目 标板,包括t i 公司的d s p ,e v m 板和用户自己开发的目标d s p ( c 2 0 0 0 ,c 5 0 0 0 , c 6 0 0 0 ) 板。c c s l i n k 主要特点总结如下:( 1 ) m a t l a b 函数可以自动完成调试、数据 传递和验证。( 2 ) 在e a t l a b 和d s p 之间实时传递数据,而不用停在d s p 中程序的 执行。( 3 ) 支持x d s 5 1 0 x d s 5 5 0 仿真器,可以高速调试硬件d s p 目标板。( 4 ) 提供 嵌入式对象,可以访问c c + + 变量和数据。( 5 ) 对测试、验证和可视化d s p 代码 提供帮助。( 6 ) 扩展了m a t l a b 和e x p r e s s d s p 工具的调试能力。( 7 ) 符合t ie x p r e s s d s p 标准。 r t d x 是一种可以在不影响目标应用程序运行的情况下让主机和目标机进行 实时数据传输的技术。r t d x 支持双向数据流,即目标机到主机的数据流和主机 到目标机的数据流。r t d x 数据流示意图如图l 所示。2 1 目标机到主机的数 据传送目标机为了向主机发送数据,必须设定一个输出通道o c h a n d a t a 。通过用 户接口可将数据送到输出通道以使这些数据随即保存到r t d x 目标机的缓存( 由 r t d x 目标函数库定义) 中,然后再将这些数据通过j t a g 接口发送到主机。r t d x 主机函数库将接收到的数据保存在l o g 文件中或主机的缓存中( 具体由r t d x 模式 来决定) 。保存在l o g 文件中或主机缓存中的数据可以通过c o ma u t o m a t i o n 第一章绪论 c 1 i e n t 重新获取,以便显示或分析。 目标机要从主机中获得数据,首先必须设定一个输入通道i c h a n c m d ,来接受 主机发出的命令,从而实现数据传输的同步。运行中,系统可通过用户接口发送 一个读取数据的请求,并将这个请求保存在r t d x 目标机的缓存中,然后通过j t a g 接口发送到主机。同时应由c o ma u t o m a t i o nc l i e n t 通过c o m 接口把要发送的数 据先写入到r t d x 主机函数库中的缓存,以等待目标机读取数据的请求。当r t d x 主机函数库收到从目标机发出的读取数据请求时,保存在r t d x 主机函数库中的 数据便可通过 - t a g 接口将数据发送到目标机,从而使该数据可以实时写入目标 机指定的存储区域。操作完成后,主机会通知r t d x 目标机函数库。 图i - 2r t d x 原理图 d s p 的实时数据交换( r t d x ) 允许系统工程师在h o s tc o m p u t e r 和t a r g e t 之闻进 行实时的数据传输且不用考虑t a r g e t 程序。这里的l i n kf o rr t d x 接口提供了 m a t l a b 和支持r t d x 的t i d s p 上运行的程序之间实时交换数据的一种方式。利用 此连接对象,可以打开、使能、关闭或禁止d s p 的r t d x 通道,利用此通道可以 实时的向硬件目标d s p 发送和取出数据,而不用停止d s p 口正在执行的程序。l i n k f o rr t d x 实现了对实时数据的自动化的高级分析和可视化,实现了对复杂d s p 程序的有效验证。例如把原始数据发送给程序进行处理,并把数据结果取回到 m a t l a b 空间中进行分析。r t d x 连接对象实际上是c c s 连接对象的一个子类,在 创建c c s 连接对象的同时创建r t d x 连接对象,他们不能分别构建。 希用r t d x 目标机函数库的用户接口可实现在目标机d s p 应用程序和主机之 间进行安全可靠的数据交换。同时可利用它完成应用程序向r t d x 主机库发送数 据、应用程序向r t d x 主机库发送数据请求以及在目标机上提供数据缓存等功能。 北京公约大学工学硕士学位论文 另外,数据发送前应先将数据拷贝到目标机缓存中,以减少对应用程序实时性的 影响。r t d x 主机库中的c o m 接口可用来确定c o ma u t o m a t i o nc l i e n t 与r t d x 主 机函数库的通信方式。而通过c o ma u t o m a t i o nc 1 i e n t 可访问保存在r t d xl o g 文件或r t d x 主机函数库缓存中的数据。同时c o ma u t o m a t i o nc l i e n t 也可通过 r t d x 主机函数库向应用利用r t d x 目标机函数库的用户接口可实现在目标机d s p 应用程序和主机之间进行安全可靠的数据交换。同时可利用它完成应用程序向 r t d x 主机库发送数据、应用程序向r t d x 主机库发送数据请求以及在目标机上提 供数据缓存等功能。另外,数据发送前应先将数据拷贝到目标机缓存中,以减少 对应用程序实时性的影响。r t d x 主机库中的c o m 接口可用来确定c o ma u t o m a t i o n c 1 l e n t 与r t d x 主机函数库的通信方式。而通过c o ma u t o m a t i o nc l i e n t 可访问 保存在r t d xl o g 文件或r t d x 主机函数库缓存中的数据。同时c o ma u t o m a t i o n c l i e n t 也可通过r t d x 主机函数库向应用程序发送数据。 d s p 的实时数据交换( r t d x ) 允许系统工程师在h o s tc o m p u t e r 和t a r g e t 之间 进行实时的数据传输且不用考虑t a r g e t 程序。这里的l i n kf o rr t d x 接口提供 了m a t l a b 和支持r t d x 的t id s p 上运行的程序之间实时交换数据的一种方式。 利用d e v e l o p e r sk i tf o rt id s p 提供的m a t l a ba c t i v e x 对象c c s d s p ,可以 建立m a t l a b 和d s p 之间通信的通道,在m a t l a b 命令窗口和d s p 应用程序之间实 时地发送和接收数据,而且无需中断程序的运行。l i n kf o rr t d x 实现了对实时 数据的自动化的高级分析和可视化,实现了对复杂d s p 程序的有效验证。 这里需要注意d e v e l o p e r sk i tf o rt id s p 的自动代码生成是面向c 6 7 1 i d s k 和 c 6 7 0 1e v m 等一些t i 产品,对于用户开发的目标板d e v e l o p e r sk i tf o rt id s p 不能直接支持,需要在外围的驱动等方面做相应的修改:对于实时的数据交换、 程序的控制等方面的应用是面向所有的c 5 0 0 0 、c 6 0 0 0 目标板的。 在 m a t l a b 环境中创建一个可以代表嵌入目标c 程序中的变量的对象。利用嵌入式 对象可以直接访问嵌入在目标d s p 的存储器和寄存器中的变量,即把目标c 程序 中的变量作为m a t l a b 的一个变量对待。在m a t l a b 中收集d s p 程序中的信息,转 变数据类型,创建函数声明,改变变量值,并把信息返回到d s p 程序中,所有这 些操作都在h a t l a b 环境下完成。 五、仿真器与目标板 第一章绪论 目前,t i 公司提供两种型号的仿真器x d s 5 6 0 和x d s 5 1 0 。x d s 5 6 0 型仿真器可 以提供高达2 m b s 的实时数据交换能力和0 5 m b s 的代码下载能力,以及高 级事件触发器功能。应用该仿真器可以在程序运行状态下提供实时事件时序服务 能力,主要功能包括: 产生一个新的任务时序; 发现并准确定位实时毛刺: 管理并显示事件的时序,进行多任务管理。 本文采用a t e m e 公司的i e k c n v d k 评估板作为目标板,下图为该板的实物图: 图l 一3 目标板实物图 第二章t m s 3 2 0 c 6 0 0 0 系列d s p 的结构以及 实时算法原代码开发和优化 德州仪器( t e x a si n s t r u m e n t ,以下简称t i ) 公司的t m s 3 2 0 c 6 0 0 0 系列d s p 是 目前国际市场上性能最高的d s p 芯片之一。t m s 3 2 0 c 6 0 0 0d s p 器件可以以较高的 速度实现特定的算法,这是和其硬件结构和工作方式密不可分的,本章第一节介 绍t i 公司的t m s 3 2 0 c 6 0 0 0 系列d s p 的硬件结构,第二节介绍开发t m s 3 2 0 c 6 0 0 0 d s p 软件的一般流程,并且着重介绍对代码进行优化的方法和原则。 第一节、t m s 3 2 0 c 6 0 0 0 系列d s p 的结构 一、t m s 3 2 0 c 6 0 0 0 系列d s p 内核结构 t m s 3 2 0 c 6 0 0 0 系列d s p 的设计采用了类似于r i s c 的结构,指令集简单、运 算速度快。8 个功自2 单元负责不同功能的运算,指令和功能单元之间存在一个映 射关系。其中,l 单元有2 3 条指令,m 单元有2 0 条指令,s 单元2 9 有条指令, d 单元有2 6 条指令。( 以6 2 0 1 为例) t m s 3 2 0 c 6 0 0 0 的大部分指令都可在单周期内完成,都可以直接对8 1 6 3 2 b i t 数据进行操作。同时,t m s 3 2 0 c 6 0 0 0 指令集针对数字信号处理算法提供了一系列 特殊指令:为复杂计算提供的4 0 b i t 的特殊操作的加法运算;有效的溢出处理和 归一化处理;简洁的位操作功能等。t m s 3 2 0 c 6 2 0 1 中最多可以有8 条指令同时并 行执行:所有指令均可条件执行。以上所有特点提高了指令的执行效率、减小了 代码长度、大大减少了因跳转指令引起的开销、提高了编码效率。 流水线操作是d s p 实现高速度、高效率的关键技术之。t m s 3 2 0 c 5 0 0 0 只有 在流水线充分发挥作用的情况下,才能达到1 6 0 0 m i p s 的速度。c 6 0 0 0 的流水线 分为三个阶段:取指、解码、执行、总共l i 级。和以前的c 3 x 、c 5 4 x 相比,有 非常大的优势,主要表现在:简化了流水线的控制以消除流水线互锁:增加流水 线的深度以消除传统流水线结构在取指、数据访问和乘法操作上的瓶颈。其中取 第二章t m s 3 2 0 c 6 0 0 0 系列i ) s p 的结构以及实时算法原代码开发和优化 指、数据访问分为多个阶段,使得c 6 0 0 0 可以高速地访问存储空间。 图2 - 1 给出了t m s 3 2 0 c 6 4 1 6d s p 的数据通道的结构。 图2 - 1t y s 3 2 0 c 6 4 1 6d s p 的数据通道的结构 在c 6 0 0 0d s p 的数据通道内有硬件乘法器,其中c 6 7 0 1 的乘法器可以完成浮 点乘法运算,用c 6 0 0 0 内的乘法器代替通用处理器中的乘法程序可以显著缩短乘 法的执行时间。多功能单元:c 6 0 0 0 内有8 个并行的功能单元,这8 个功能单元最 北京工业大学工学硕士学位论文 多可以在一个周期内同时执行8 条指令。同时大多数d s p 器件支持在同一周期内 实现乘累加操作,和位翻转寻址,这可以显著提高f f t 运算速度。 t m s 3 2 0 c 6 0 0 0d s p 采用修正的哈佛总线结构,有一套2 5 6 位程序总线、两套 3 2 位数据总线和一套3 2 位的d m a 专用总线。由于程序总线和数据总线相互独立, 能在取指的同时取操作数,大大缓解了数据瓶颈对系统性能的限制,而其2 5 6 位 程序总线一次就可以取出8 条3 2 位的指令。 随着数据量的增大,数据访问时的地址计算时间也线性增长,如不采取特殊 方法,地址计算的时间可能会大于算术操作的时间。因此,c 6 0 0 0 有专用地址计算 单元地址产生器。地址产生器与a l u 并行工作,不占用c p u 资源,可以在后台 传输数据。 为提高对存储器的访问速度,c 6 0 0 0 系列芯片集成有1 m 7 m 位的程序r a m 和 数据r a m ,当程序存放在片内r a m 时,可以减少指令传输时间,缓解总线压力,而内 部的数据r a m 没有访问速度匹配问题和总线竞争问题,可以缓解d s p 的数据瓶颈。 任何指令的处理均能分成几个子操作,每个子操作由不同的单元来完成。对 每个单元来说,每一个时钟周期都可以接受一条新指令,这样,在不同单元中可以 同时处理多条指令,这种工作方式称为“流水线”工作方式。理想情况下,一条k 段流水线能在k 十( n 一1 ) 个周期内处理n 条指令,当n 很大时,可以认为每个周期内 执行的最大指令个数为k 。图2 2 给出了流水线结构的原理。 p i p o l i n e d - i pp r d l 0 9 k 。n ,磊 p 侧i n e d - l o o pe p i l o g 图2 - 2 软件流水线结构 图2 - 3 给出了t m s 3 2 0 c 6 0 0 0d s p 的内核结构框图。 第二章删$ 3 2 0 c 6 0 0 0 系列d s p 的结构以及实时算法原代码开发和优化 图2 - 3t y s 3 2 0 c 6 0 0 0d s p 的内核结构 图2 4 给出了t m s 3 2 0 c 6 0 0 0 系列d s p 的两级片上存储器结构的原理框图。 图2 - 4t 1 s 3 2 0 c 5 0 0 0 系列d s p 的两级片上存储器结构 图2 - 5 给出了t m s 3 2 0 c 6 4 1 6d s p 的l 2c a c h e 支持的配置模式。 - 1 2 - 第二章1 m s 3 2 0 c 6 0 0 0 系列d s p 的结构以及实时算法原代码开发和优化 l 2m e m o r yb l o c kb a s ea d d r e s s ,上善渗誊 一一t 一7 鹇k b y t o s i ;,漤鬃篱簧誓o “、,2 ,- 一1 “沁o ,、 12 8 k b y t e s 6 4k b y t e s 3 2 y t e s 3 2 k b y t e s 图2 - 5t m 5 3 2 0 c 6 4 1 6d s p 的l 2c a c h e 结构 二、t m s 3 2 0 c 6 4 1 6d s p 的片上资源 o x 0 0 0 0 0 0 0 0 o x 0 0 0 c 0 0 0 0 0 妁0 0 e 0 0 0 0 o x 0 0 0 f 0 0 0 0 o x 0 0 0 f 8 0 ( ) 0 o x 0 0 1 0 0 0 。o t m $ 3 2 0 c 6 4 1 6d s p 采用0 1 2 p mc m o s 工艺,内核采用先进超长指令字( v l l w ) 结构,该器件工作频率分别是4 0 0 、5 0 0 和6 0 0 m h z 。在不计i o 情况下,整个 芯片工作在4 0 0 4 z 时,功耗为4 4 0 m w 。c 6 4 1 6 内核的8 个功能单元能够在每个周 期内执行4 组1 6 位m a c 运算或8 组8 位m a c 运算,以便在处理通信和影像算法 中获得最大的并行性。单个c 6 4 1 6d s p 能够同时完成一个通道的m p e g 4 视频编码、 一个通道的m p e g 4 视频解码、和个通道的m p e g 2 视频解码,并仍有超过5 0 的余量留给多通道语音和数据编码。c 6 4 1 6 还专门为3 g 算法集成了协处理器。 t u r b o 协处理器( t c p ) 可完成无线数据的t u r b o 解码;v it e b i 协处理器( v c p ) 完成 无线语音信道的卷积解码功能。图2 6 给出了t m s 3 2 0 c 6 4 1 6d s p 片上资源的结构 框图。 ”一5睦m倦 一 晤好瞄旰n 一 一z焉竽至 。 盯6 = 已 。| 暖惭惮障 盯慝一 洲一 臣怪m 憎隔 一一 0 - _ 一b隔隧r 。_ j n o 镕r e f er t o t h e s p e c i f i cd , d 。i c ed a t a s h e e t f o r 托p e t :p t l e f a ls e t 图2 - 6t m s 3 2 0 c 6 4 1 6d s p 片上资源的结构框图。 存储器和外设系统的主要特点如下 具有1 0 5 6 k 字节( k b ) 片上s r a m 的实时分层存储系统,用于加快超高速d s p 内核: 6 4 通道的增强型存储器直接存取( e d m ) 控制器,针对系统存储器的千兆 字节秒数据i o 的有效管理,显示出出色的并行性特点,图2 7 给出了 e d m a 的原理框图; 外部双总线提供了超过1 2 g 字节的外部存储器带宽; 3 3 m h z 3 2 位p c i 接口和针对异步传输模式( a t m ) 的u t o p i a i i 接口,简化了 在c 6 4 1 5 和c 6 4 1 6 上主机和网络的连通性。 c 6 4 1 4 上的3 2 位主机端接口方便了主机的连通性; 。,。,:! 量三i 竺:暨罂驾主翌:垩。墼塑塑坠墨耋彗三鋈墨盐2 耋誊翟j :笔。一, 3 个多通道缓冲串行口,均分别支持1 2 8 个t d m 通道及业界标准音频接口 包括a c 9 7 和i i s 。 - 1 5 - 北京工业大学工学硕士学位论文 第二节、d s p 软件开发流程 一、d s p 软件开发的一般流程 d s p 的开发工具都局限于代码生成工具( 编译器、汇编器和连接器) 和代码调 试和分析工具( 源代码调试器和分析器) 。在大多数情况下,这些工具都是分开使 用的,不能共享数据,而要求开发者不停地在不同的应用间切换。实时系统的调 试也是一个很艰巨的过程。为了了解它们在实际条件下的应用表现,开发者希望 能在不停止执行的情况下,跟踪程序的流程。但典型的调试环境只允许断点之间 单步运行的静态调试。当多个实时代码段集成在一起时,代码段之间的复杂的相 互作用会产生新的问题。图2 - 7 给出了各个开发工具在开发过程中的应用情况。 图2 7 各个开发工具在开发过程中的应用情况 第二章t m s 3 2 0 c 6 0 0 0 系列d s p 的结构以及实时算法原代码开发和优化 图2 8 给出了d s p 软件的一般开发过程 图2 - 8d s p 软件的一般开发过程 图2 - 9 给出了一个完整的编译、汇编和连接的流程图。 图2 - 9 编译、汇编和连接的流程图 在编写和调试c 6 0 0 0 程序时,为了使代码能获得最大的算法并行度,本文将 软件编程流程可以分为三个阶段,每个阶段各自完成独立的任务: 不考虑c 6 0 0 0d s p 底层的硬件结构,只是根据任务编写c 语言代码,并且 在不考虑实时性要求的情况验证算法结果的正确性。使用c c s 环境中的p r o f i l e r 功能或者c l o c k 0 函数寻找对实时性能影响最大的代码段; 优化c 语言程序,检查是否满足实时性能要求。如果不满足进入下一阶段; 将对实时性能影响最大的代码段抽出,使用汇编程序重新编写该段,直到 满足实时性要求为止。 第二章t m 5 3 2 0 c 6 0 0 0 系列d s p 的结构以及实时算 虫原代码开发和优化 上述三个阶段并非全都是必需的,如果在某阶段已经满足了实时性能要求则 不必进入下一阶段的优化过程。 第三节、实时算法原代码开发和优化 一、可移植代码设计原则 系统对d s p 算法的需求可以分为两个方面,对代码可移植性的要求和对算法 性能的要求。根据t i 公司的标准,通过对算法原代码的分析,可以将系统对代 码可移植性细化为三项规则。符合该规则的算法可以满足系统对代码一致性和可 移植性的要求。 常识性编程规则。本组规则的作用在于加强算法的便携性、可预测性以及 可移植性。由于大多数d s p 系统运行于c 环境中,因此顶层的算法必须能在c 中调用。算法不得干扰应用程序的运行时状态,并且代码必须在抢占式环境中进 行重入以支持多个通道。必须对多实例共享的存储器与全局变量进行保护。所有 代码引用必须完全可再定位,不得采用硬编码存储器寻址,否则将干扰其他代码。 由于资源可能因系统而异,因此算法不得直接访问外设。 取消任意选择。如果需要以单一强制方法进行某项工作的话,该标准指定 了应在各种不同方法中采用何种方法。为避免命名冲突,变量命名必须遵循 d s p b i o s 规则。为避免将代码移植到不同操作系统环境中时发生冲突,算法必 须封装到遵循统一命名规则的档案文件中。必须使外部引用符合来源,如c 运行 支持库函数或其他符合e x p r e s sd s p 的模块。算法实例必须根据指定的程序调 用并删除,并且它们必须能够独立地进行再定位。 资源管理。由于算法一般需要占用大量系统资源,并且必须使其可以共享, 因此本组位于该标准的核心。现在每个算法都有了强制的存储器管理界面,而且 所有算法都必须在设计时一次协调或在运行时交互协调使用存储器。本规则适用 于外部及内部存储器,以及d m a 通道等外设。本应用同控制框架一样收集所有 存储器请求,随后向算法分配存储器。算法可能不能获得其全部请求,但应用框 架能够在竞争请求问进行很好的判断,并优化地划分系统资源。 二、影响算法性能的系统级因素 第二苹1 m s 3 2 0 c 6 0 0 0 系列d s p 的结构以及实时算j 击原代码开发和优化 本部分将主要讨论影响算法性能的系统级因素以及应用d m a 提高系统性能的 方法。 处理器在存储器中存储指令和数据。尽管人们已经创建了许多具有创新性的 方法以从存储器中获取指令和数据,但访问指令和数据时总会有性能损失。这就 是纯粹的开销了。只要能够减少等待指令或数据存取的时间,不管怎么样,都能 够改善应用的整体性能。举例而言,硬件高速缓冲系统将会尽可能多的指令靠近 c p u ,从而实现快速存取,通常只需一个周期即可,这将能够改善整体性能。d s p 拥有片上存储器,其可存储数据与指令。但数据和指令不能自动放置于片上存储 器中。编程员必须对此进行管理,只要管理有效,d s p 就可以利用片上存储器显 著提高性能。 嵌入式系统存储器等级中有若干层次。第一层是芯片寄存器。这部分存储器 用于保存临时和中间数据。编译器在调度指令时使用寄存器。寄存器是速度最快、 价格最昂贵的存储器。寄存器的下一层次是高速缓冲系统。该系统用于将指令和 数据在使用指令和或数据前移至靠近c p u 处。存储器的再下一层是外部或存储 器。该存储器会比其他存储器类型的速度慢,但其容量一般较大。该类存储器一 般用来缓存暂时不需要处理的数据和指令。从该类存储器存取数据需要更多的信 号交换和控制,因此也需要更多时间。算法的实时性要求系统将即将用到的数据 和指令放置到尽可能靠近c p u 的位置。这意味着需要从外部存储器获取信息, 使其进入速度更快的存储器,并使用诸如直接存储器存取( d m a ) 等技术,以及编 译或架构技术。 直接存储器存取( d 凇) 是无c p u 介入情况下访问存储器的一种方式。外设 用于向内存直接写入并导出数据,这就减轻了c p u 的负担。d 姒就是另一种类 型的c p u ,其唯一作用就是快速移动数据,其优势则在于c p u 可以向d m a 发出 一些指令移动数据,随后就可以再进行原本的工作。d 姒在c p u 运行的同时移 动数据。这实际就是另一种利用器件内置并行功能的方法。d m a 在复制大量数据 时非常有用。较小的数据块无法受益,因为还要考虑到d 1 9 i a 的设置和开销时间。 由于访问外部存储器会带来很大的性能损失,且占用c p u 的代价不菲,因此只 要有可能,就应采用d m a 。最好是在实际需要数据之前就启动d m a 操作。这让 c p u 同时也有工作可做,且不用强制应用等待数据的移动。随后,当确实需要数 北京工业大学工学硕士学位论文 据时,数据就已经就位了。应用应当进行检查,以确认操作成功,这将要求检查 寄存器。如果操作提前完成,这将对寄存器进行一次查询,但不会产生大量工作, 占用宝贵的处理时间。图2 1 0 给出了6 4 1 6d s p 的e d m a 结构框图。 图2 1 06 4 1 6d s p 的e d f f d l 结构 d m a 的常见用法是将数据移入或移出芯片。c p u 访问片上存储器的速度大大 快于其访问片外或外部存储器的速度。将尽可能多的数据放于芯片上是提高性能 的最佳途径。如果被处理的数据不能全部同时放于芯片上( 如大型阵列) ,那么数 据可使用d h i a 成块地移入或移出芯片。所有数据传输都可在后台进行,同时c p u 对数据进行实际处理。片上存储嚣的智能管理和布局可以减少数据必须移入、移 出存储器的次数。就如何使用片上存储器开发出智能计划,在这项工作上投入时 间和精力是值得的。总体而言,规则就是使用d m a 将数据移入、移出片上存储 器并在芯片上生成结果。由于成本和空间原因,大多数d s p 不具备很多芯片上 存储器。这要求编程人员协调算法,以高效利用现有的片上存储器。大量使用d m a 的代码确实会产生一些性能损失。根据应用使用d m a 的多少,代码大小会上升。 使用d m a 还增加了复杂性和应用的同步化。只有在要求高吞吐量的情况下刊应 使用d 姒。但是,片上存储器的智能布局和使用以及明智地使用d 舭能够消除 第二章t m s 3 2 0 c 6 0 0 0 系列d s p 的结构以及实时算法原代码开发和优化 皇置i e 置曼e e 墨鼍e e ! _ _ 暑詈曼曼墨墨罩蕾皇芒墨_ 皇晕量詈置舅| 鼻墨矗鼍! 置鼍囊暑量量詈曼量量毫罡皇鼍曼量量墨墨量_ e 大多数访问片外存储器所带来的性能损失。在d m a 操作进行过程中,系统可以等 待i ) m a 传输完成,也可以继续处理应用程序的另一部分,直到数据传输完成为止。 每种方法都有其优势和劣势。如果系统等待d 眦传输完成,那么它必须探询d m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论