




已阅读5页,还剩75页未读, 继续免费阅读
(计算机应用技术专业论文)视频数字信号处理芯片XYVDSP的C编译器开发.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 本文的研究内容是“视频数字信号处理芯片x y v d s p 的c 编译器开发”。 x y v d s p 是采用阵列结构的s i m d 处理机。x y v d s p 在硬件结构和指令级上 采用高度并行,使其可以高效处理视频应用。课题采用的开发工具一可重定义 编译器开发工具,是一种编译器快速开发平台。它使用定义和描述机器体系结构 的信息文件描述硬件,采用树模式匹配的原则,为有特殊硬件结构和指令的目标 机器高效开发高级语言编译器。 首先,本文将分析x y v d s p 的软硬件结构特点和开发工具的工作原理。在 此基础上,将二者有机结合,提出设计思路,并分析x y v d s p 的完整指令集的 编译器的前端和后端的开发,包括串行指令集和矢量指令集。分析并解决了编译 实现过程中的问题,如x y v d s p 特有的优化指令的编译,流水线相关问题和指 令级的并行等问题。文章的最后是对工作的分析总结和一些问题的讨论。 关键词:可重定义目标编译器开发平台并行嵌入式系统 摘要 a b s t r a c t t 撼s p a p e rd e a l s 畦融c o m p i l e rd e v e l o p m e n tf o r v i d e o d i g i t a ls i g n a l p r o c e s s o rc h i px y v d s p a r r a ys t n l c t u r ei su s e di nv i d e od i a i t a ls i g n a lp r o c e s s o r c h i px y - v d s p , a ns i m dp r o c e s s o r i nx y v d s p , v i d e oa p p l i c a t i o nc a l lb ed o n e e f f i c i e n t l yb e c a u s e o ft h eh i g h p a r a l l e l i s m i nh a r d w a r es t r u c t u r ea n di n s t r u c t i o nl e v e l 。 a r a p i dc o m p i l e rd e v e l o p m e n tp l a t f o r m r e t a r 2 r e t a b l ec o m p i l e rd e v e l o p m e n tt o o l s 。 a d o p t i n g t h e p r i n c i p l e o f p a t t e r nm a t c h i n g o nf l e e sa n d u s i n g t w om a c h i n e i n f o r m m i o nf i l e s t o d e s c r i b e h a r d w a r e ,m a k e si tp o s s i b l et oh i 蛳e f f i c i e n t l y d e v e l o p ah i g hl e v e l l a n g u a g ec o m p i l e rf o rt a r g e t m a c h i n e sw h i c hc o n t m n a p p l i c a t i o n - s p e c i f i ch a r d w a r ea n di n s t r u c t i o n s r e t a r g e t a b l ec o m p i l e rd e v e l o p m e n t t o o l si sa d o p t e dt od e v e l o pc c o m p i l e r f o rx y v d s b f i r s to fa l l 。i nt h i sp a p e r , t h ef e a t h e r so fx y 二v d s pi nh a r d w a r ea n ds o f t w a r ei s i n t r o d u c c da n dt h ep r i n c i p l eo ft h ed e v e l o p m e n tt o o l si s a n a l y z e d t h e n ,t h ed e s i g n i d e aw i l lb es e tf o r t ha n dt l l ecf r o n t - e n da n db a c k - e n d c o m p i l e ri m p l e m e n t a t i o nf o r t h ef u l li n s t r u c t i o ns e 醴x y v d s pw i l lb ea n a l y z e di nt h i sp a p e r , i n c l u d i n gt h e s c a l a ri n s t a u c t i o n ss e ta n d 也ev e c t o ri n s t r u c t i o n ss e t 硼艟p r o b l e m sd u r i n gc o m p i l i n g a l ea n a l y z e da n ds o l v e d ,s u c ha st h em e t h o do f c o m p i l i n gt h eo p t i m i z e di n s t r u c t i o n s p e c i a lf o rx y v d s p 。氆ec o r r e l a t i o np r o b l e mo fs t r e a m l i n ei n s t r u c t i o na n dt h e p a r a l l e l i s m i ni n s t r u c t i o nl e v e l a tl a s t 。t h es u m m a r i z a t i o no ft h ew o r ka n dt h e d i s c u s s i o no fs o m e p r o b l e m s w i l lb e g i v e n k e y w o r d :r e t a r g e t a b l ec o m p i l e rd e v e l o p m e n tp l a t f o r mp a r a l l e l i s m e m b e d d e d s y s t e m 创新性声明及使用说明 论文创新性声明 本人声明,所呈交的论文是我个人在导师的指导f 进行的研究工作及取得的 研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文 一 t 丌i 包含其他人l ! 经发表或撰1 j 过的研究成果;也不包含为获得曲安f 乜f 科技人 学或其他教育机构的学位或证书而使用过的教材。与我一同】:作的同志对本研究 所做的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名痞卫许 期:塑! ! :! :z 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属于西安电子科技大学。本人保证 毕业离校后,发表论文或使用论文工作成果时署名单位仍然是西安电子科技大学。 学校有权保留送交沦文的复印件,允以:鱼阅和借阅论文;学校- ,j 以公如论文的全 部内容或部分内容,町以允许采刚t 影| = | j 、缩j = | j 或其它复制于段保存论义。( 侏密的 论文在解密后遵守此规定) 本人签名 导师签名 日期:塑! :! :生 r 期:垒亟:! :五 第一章前言 第一章前言 伴随着2 1 世纪的曙光,计算机技术已迈入了另一个充满机遇的阶段后p c 时代,形式多样的数字化智能产品已经开始继p c 机之后成为信息处理的一大主 力。后p c 时代的到来,使得人们开始越来越多地接触到一个新的概念嵌入式 系统,如手机、p d a 、d v d 、机顶盒、g p s 和p l c 等都是嵌入式系统的产品川。 嵌入式系统是一个硬件设备和软件的综合体,它包括芯片本身,还包括一套相关 的软件来支持其工作。软件包括:面向特定处理器的编译器、汇编器;嵌入式操 作系统:实时在线仿真系统:源程序模拟器;以及应用软件。一个成功的硬件系 统( 如c p u 、并行计算系统等) 不仅要有很好的硬件特性而且要有丰富的软件 支持,否则就不可能在市场上有很好的发展。目前,这些软件的开发,除了极少 的核心部分可能使用汇编语言外,绝大部分的程序是用高级语言开发的,如果将 这些高级语言程序翻译成f 确的、高效的、能够在目标系统上运行的目标程序, 就必须依赖于编译器强有力的支持旺3 。 编译,代表从面向人的源语言表示的算法到面向硬件的目标语言表示的算法 的一个等价变换【3 】。编译器与处理器的研发必须协调统一地进行,因为只有编译器 的设计充分利用了处理器架构的优势,才能使处理器达到最大的效能;同时,一 个好的编译器可为软件开发和维护提供更有力的支持,可以构造出各种程序分析、 理解和开发工具,这些工具对于新的软件开发模式的实践也有很好的支持。由于 编译系统具有上述两个重要意义,因此一个硬件系统如果缺乏一个良好的编译系 统的支持,一方面不能充分发挥它的性能,另一方面,相关的各种软件也无法有 效地开发。 本论文的取材来源于项国家八六三计划( 8 6 3 一s o c y - 2 卜6 ) “视频数 字信号处理芯片x y - v d s p 的核设计”的一部分,论文命名为“视频信号处理芯片 x y - v d s p 的c 编译器开发”。x y - v d s p 是编译器开发的目标机器,编译器的开发 工具采用了美国a r c h e l o n 公司开发的可重定义编译器开发工具r e t a 唱e t a b i e c o m p i l e rd e v e l o p m e n t t o o l s 。论文将介绍目标机器的硬件结构和特性,深入分析 开发工具的工作原理,提出x y - v d s p 的c 编译器开发的设计思想,并给出具体实 现过程。 1 1 国内外发展动态 嵌入式系统成为后p c 和后网络时代的新秀;嵌入式零统是以应用为中心,以 一4 视频数字信号处理芯片x y - v d s p 的c 编译器开发 计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、 体积、功耗有严格要求的专用计算机系统【4 】。目前嵌入式系统已广泛应用于信息家 电、移动通讯、手持信息设备以及工业控制等领域。国外许多大处理器生产厂商 纷纷推出各种嵌入式微处理器,如m o t o r o l a 的p o w e r p c 系列,i n t e l 的s t r o n g a r m 系列,其他如a m d 、n e c 等各大厂商也纷纷推出主流嵌入式处理器。 目前嵌入式系统的趋势是新一代由r i s c 与d s p 双核复合而成的3 2 位微处理 器形成的计算机系统。新一代嵌入式计算机的主要特征是:继承了整个p c 机时期 的技术成就,特别是进入9 0 年代后的全球万维网技术( 产品有可接入万维网的手持 式p d a 设备等) 和多媒体技术( 产品有商质量数字音响、数字视盘播放器,数码静 态相机、数码视频摄像机等) 的成就。这类嵌入式的目标是把桌面p c 机上成熟的 技术拆解下来,放入手持设备或移动设备,供用户随时随地应用。全球万维网技 术中行之有效的众多通信协议,多媒体的m p 3 、j p e g 、m p e g 等所采用的标准数 据格式及各种库函数都使用3 2 位格式和3 2 位的编程软件,因此嵌入式系统也注 定要使用3 2 位的微处理器以更好支持以上应用1 5 1 。 x y - v d s p 就是一种嵌入式3 2 位微处理器,它的基本系统是由处理单元阵列 及带有程序存储器的主控器共同组成,处理单元阵列与存储器是通过缓冲器实现 数据通信的哺1 。x y - v d s p 采用了并行处理。并行处理是指多个处理单元互相通信、 协调工作、共同超高速地解决问题的方法。实现并行处理的技术途径是各种各样 的,其中主要有时间重叠、资源重复、资源共享等方法。 时间重叠是在并行性概念中引入了时间因素,使多个处理过程在时问上错丌, 轮流重叠地使用同一套硬件设备的不同部件。最典型的时间重叠就是流水线工作 方式。流水线方式是根据多级流水作业的原理构成的并行处理技术,采用重叠和 流水方法,同时解释两条、多条以至整段程序,从而加快整个机器语言程序的解 释陪3 。本课题的目标机器x y - v d s p 采用指令流水线工作方式,它的独特性在于其 指令为超标量( s u p e rs c a l a r ) 指令,即一条指令由标量指令和矢量指令两部分组 成,标量指令和矢量指令在不同的处理器上执行,从而实现指令级的并行。并行 指令通过指令流水线工作方式得以并行处理。 资源重复是在并行性概念中引入空间因素,通过重复设置硬件资源,来达到 大幅度提高可靠性和处理速度的目的。采用资源重复的并行处理方法有两个发展 方向,一个是细粒度的s i m d 阵列机,另一种是中粒度的m i m d 并行多处理机及 多计算机。s i m d 并行机和m i m d 并行机的最主要的区别是控制器的个数不同a s i m d 只有一个控制器,m i m d 则有和处理机个数相等的控制器p j 。所以s i m d 并 行机又叫阵列机。x y - v d s p 采用s i m d 阵列结构,只有一个存储器,因此属于共 享存储器式的并行体系结构。硬件并行结构使得x y - v d s p 具有快速运算的能力。 同时,x y - v d 静采用r i s c ( m 筒指令集计算机) 指令系统,r i s c 克服了c i s c ( 复 第一章前言 杂指令集计算机) 过予庞大和复杂而降低效率和速度的缺点,r i s c 着眼于简化指令 集毂竣少指令熬孰行髑期数,麸嚣侵诗冀掇续孛句更热会理,整体运行速度褥到提 高【0 1 。 综金看来,x y - v d s p 具有先进黪嵌入式微处理爨的特点,因此,它具蠢先进 性和商效性。因为嵌入式系统本身不其备自举开发能力【,因此必须有一套开发 工具秘环境才能进行开发,缡译器就是赐予抒发的张环境。编译嚣的开发工具 有很多,迅遽开发商质量的编译器对于计冀机系统结构,程序设计语言和程序设 计环境研究有重要意义”,丽用传统的方法手工开发编译器,开发速度慢,开发 周期一般以年来计冀。这很难达到迅速开发的要求。对予传统的方法,即便是体 系结构的一小部分发生了变化,也耀要修改整个编译器,并且经常还需要针对具 体体系结构作相应的优化。所以,一套能快速开发蹴编译器的方法或平台怒非常 必要的。快速开发编译器的平台能够将编译器分成相对独立的部分,每次只需要 替换或修改岛具体体系结构相关的部分。这样,w 以显藩地缩短编译器研究和 开发的周期,减少程序错误,并且能够很好地共享他人的研究成果。荚国a r c h e l o n 公司歼发的研重定义编译器歼发工其r e t a r g e t a b l ec o m p i l e rd e v e l o p m e n t t o o l s , 实际上是一神编译器豹快速汗发平螽,它的独特之处在于它不需要编写词法分析 器、语法分率斥器、语义分析嚣、代确生成嚣等传统编译器所需的各阶段程序, 其工作原理煺采用数模式匹配的原则,通过定义和描述机器体系结构的信息文件 实琥对多种类型霞栎祝器的编译器开发,弗可良同时歼发编译器的虢端构佟和后 端构件 ts o 因此这种编译器的开发方法是独特而高效的。 l 。2 论文选题弱主要王 睾及论文安排 论文题强为“视频数字信号处理芯片x y - v d s p 的c 编译器开发”。编译器丌 发的目标丰凡器x y - v d s p 是具有先进的嵌入式徽处理器特点的完全可用c 编程 的视频数字值号处理芯片,硬件结构级和指令级的并行结构使其具有高速处理视 频应用的能力。所以为x y - v d s p 这样的徽鲶理器歼发编译器是有意义的。编译器 开发王具采用的是荛国a r c h e l o n 公词研发的可重定义编译器开发系统。该可重定 义编译器开发系统稠对于箕 也开发系统有懿下优越髋:它不仅支持标准c ,黹盈还 有许多扩展,特别是对并彳予结构的支持能力很强:通过编写描述硬件具体特性的 信意文侔实现对多萃枣类垄霞标辊器的编译嚣汗发。瓣诧,该开发王其为硬静结擒 和指令级具商特殊蚀的x y - v d s p 的编译器歼发提供了一个藏活的乎段,应用该工 其为x y - v d s p 开发编译器怒完全哥行靛。 经过长时间的研究,我理解了x y - v d s p 的硬件结构,深入分析了x y - v d s p 皇视频数字信号处理芯片x y o v d s p 的c 编译器开发 的指令集特点,同时研究并掌握了可重定义编译器开发工具的原理和方法。在此 基础上,把二者有机的结合起来,开发了x y - v d s p 完整指令集的c 编译器。 论文的安排如下: 论文的第二章介绍了目标机器x y - v d s p 的软硬件结构特点和其特殊性,对目 标机器特点和结构的分析是开发编译器的基础。第三章分析了可重定义编译器开 发工具的工作原理。它的工作原理是比较特殊的,开发手段也比较新颖,利用可 重定义开发工具可以在较短的周期内高效开发编译器。开发工具的特殊性在于要 为目标机器编写两个信息文件c i f 和m d f 。c i f 的编写和高级语言、目标机器、 编译器的中间【l6 j 表示是密切相关的,而m d f 的编写和编译器的中问表示及硬件相 关。因此c i f 的编写过程中遇到的问题较多,论文的第四、五、六章都和c i f 有 关。第四章结合x y - v d s p 和可重定义开发工具的特点提出了设计思路,同时由于 存储器访问的编译实现是对整个指令集进行编译的基础,并考虑到开发工具的特 殊性所以较为详细的说明了存储器访问的编译实现过程,第五、六章分析标量 指令和矢量指令的编译实现中所遇到的问题,并提出解决的方法。第七章介绍前 端生成的结果如何转换为机器汇编代码的问题,即m d f 的设计和编写。最后一 章是对所做工作进行了总结,并对所存在的问题和将来的研究方向进行了探讨。 第二章视频数字信号处理芯片x y o v d s p 第二章视频数字信号处理芯片x y v d s p x y - v d s p 是编译器开发的目标机器。x y - v d s p 是可高速进行视频处理的3 2 位r i s c 嵌入式微处理器。它具有很多先进的嵌入式微处理器的特点使其具有高性 能。x y - v d s p 的最大特点之一是在硬件级和指令级都具有高度并行性。硬件结构 上,采用共享储存器并行体系结构,即多个处理器共享一个存储器,多个处理器 形成s i m d 阵列结构处理机【】:在指令级上,采用超标量指令结构【l 引、r i s c 指令 系统和流水线工作方式,这些特点使其具有快速运算的能力,能够实时地进行图 象处理。x y v d s p 的另一个重要特点就是完全可用c 编程,无须嵌入式的汇编语 言。此外,x y - v d s p 还采用了三个接发数据的d m a 端口及优化的数据c a c h e 等 结构。以上特点使x y - v d s p 具有较高性能,如能够在1 0 0 m h z 的c p u 时钟频率 下正常工作,运动估计性能达到5 0 ,0 0 0r i s cm i p s 和3b i l l i o nm a c s 。视频数字 信号处理芯片的应用也是非常广泛的,如m p e g 4 、j p e g 2 0 0 0 、小波的图像压缩 编码,实时图像捕捉,多媒体和i n t e r n e t 视频应用等【l 。本章将从硬件结构和指令 集上介绍x y - v d s p ,因为目标机器的硬件特性和指令集的分析是编译器开发的基 础。 2 1x y - v d s p 的硬件结构 x y - v d s p 的基本硬件系统由处理单元阵列及带有程序存储器的主控器组成。 处理单元阵列与存储器是通过缓冲器实现数据通信的【2 0 】。主控器进行程序和数据 的加载,串行计算部分由主控器执行,并行计算部分由处理器阵列在主控器的控 制下完成,最后计算结果由主控器取回。 2 1 1x y - v d s p 的高度模块化设计 x y - v d s p 采用高度模块化设计,整体结构由以下几个模块组成: s d r a m 存储器接口 负责与外部s d r a m 的接1 3 逻辑控制,并且负责内部内存总线的优先级控制。 x y - v d s p 有一个3 2 m b 的同时存放数据和代码的线性地址空间。 左并行、右并行和主并行d m a 端口 三个并行端1 3 采用d m a 传送方式,负责系统启动时初始化程序的装入,数据 的输入输出,及把处理过的数据从s d r a m 传输到外部处理器。d m a 方式使得外 苎视频数字信号处理芯片x y - v d s p 的c 编译器开发 部设备和存储器之间可以直接进行高速的数据传输操作【2 l 】,这样c p u 和输入输出 接口可并行操作。 d a t ac a c h e 与i n s t r u c t i o nc a c h e c a c h e ,即高速缓存,是为了解决系统前后级数据读写速度不匹配的问题而设 置的介于c p u 与主内存之间的高速缓冲器。x y - v d s p 中设置了d a t ac a c h e 和 i n s t r u c t i o nc a c h e ,指令单元读取i n s t r u c t i o nc a c h e 的内容进行译码,d a t ac a c h e 则 处理存储器中除指令外的所有操作数。d a t ac a c h e 为8 k b = 1 2 8 6 4 b ,是完全非对 界的,意味着n 字节的操作数可放在非n 字节地址对界的位置上,但仍在一个c p u 时钟内完成操作数的访问。i n s t r u c t i o nc a c h e 大小为4 k b = 6 4 6 4 b 。指令都按4 字 节的边界存放。同时x y o v d s p 的d a t ac a c h e 是写回( w r i t eb a c k ) 的,非写通( w r i t e t h r o u g h ) 的。写回和写通是当c p u 向c a c h e 写入新的数据时解决c a c h e 与主内存之 间数据不一致的两种方法【2 2 1 。写回即当c p u 对c a c h e 进行写入操作时,只把数据 写入c a c h e ,而不直接写入主内存,当c a c h e 中的“不一致”数据块将要被替代时, 再把数据写回主内存,这样做的好处是避免了重复写入,因而具有较高的效率。 标量矢量处理器 标量矢量处理器是根据指令译码结果处理数据的部件。标量处理器是一个3 2 位的r i s c 处理器。3 2 个矢量处理器组成一个并行处理单元,阵列结构快速提高 了运算速度。 外部接口设备 外部接口设备有以下几种:低速率串行设备,如图象传感器、视频译码解码芯 片:高速串行设备,如闪存卡、由全双工立体声音频d m a 端口控制的数字音频接 口等。 2 1 2x y - v d s p 整体结构及工作流程 x y - v d s p 采用哈佛总线结构【2 3 】,高度模块化设计,结构框图如图2 1 所示。 主并行接口外面接的e p r o m 中装有系统引导程序和系统应用程序,当系统 启动或系统复位时,引导程序通过主并行口从e p r o m 中调入到存储器s d r a m 中,这样系统就可以通过引导程序里的指令,指挥系统进行工作。经过x y - v d s p 处理过的数据又在主并行口的控制下从存储器s d r a m 送入外部处理器。左并行 接口负责接收图象数据,并将这些数据存放在s d r a m 的循环、多帧的输入缓冲 池里,指令单元接收到帧结束中断信号,从s d r a m 的输入缓冲池里读取最新接 收到的图象数据帧,经过处理,保存到s d r a m 的循环输出缓冲池。右并行端口 读取s d r a m 中输出缓冲池的数据,送入外部输出设备。左右并行端口都以d m a 传送方式将视频信号送入或送出存储器,不受c p u 的控制。并行处理单元和标量 第二鬻我额数字偿鸯妊璎棼拷x * v b 始 9 处臻嚣是掇撼搬令译鹞熊暴处壤数据的部件。3 2 钕的栋爨她邂器执 子标鼙嚣术逻 霉遮嚣,为菸抒处理单元积爨势摄暇逯算掰籁簧魏内存翘犍鄂程垮掰鬟要鹪控铡 枫制,丽时负责稷侉漉肉稻中断处理。并孬鲶理攀元执行并幸亍运箨。交叉歼关 c r o s s b a r 负爨数据c a c h e 每辩章予处骥单元翻标嚣始壤嚣之瓣传邀数攒。 枣 3 2 b 韩撵s d p a m 尊钱 际磊磊订 运旗 供 十 娃理 单元 搏 亍处 理攀 8 b 1 6 b 弗符芯筑l 一 嚷塞并行黼 1 3 卜2 b r 4 _ q h _ w “_ 一 数撬 c a c h e o 8 b 1 6 b 并杼总线 3 孙r _ 1 蜒骞势稽b 融 _ 内簿3 2 b 慧线 拯令c a c h e 串酝控簸器 搬专肇j 嚣整怒鬻器 3 2 b3 2 b 檬爨蕊线 霉释l 赫并释瑟蠛t 一- i 圭势帮潞限 潮2 tx y - v d s p 模块纯结构蠖强 2 ,t ,3 x y - v d s p 豹簿列续掩 x y v 羚s p 采溺薄弼楚邂祝缝擒+ 辫刭鲶趱瓠臻泌燕潆襻绂辨嚣豹s i m d ( s i n g l e 琢s 抒n 蘸i o nm u t i p l ed a t a ) t 簿襁,遮燕蒸予空霹熬藤囊藤矮,簿诲多蹙蠢耦爨凌赣 帮瞧瑷畿力鹣处臻箍按一嫩黢强磐结构互撩逸接瓣橡残躲泓l 。逮涟羹复裁置大量 稳秘懿薤臻攀元p 嚣,游它嬲遘揍蔽簿裂,在摹一控裁藻嵇c u 蕊控舞下,瓣器鑫 分鬻豹数辫并行魏嚣鬻一掰令掰勰定豹揉终。楚毽肇蠢p 萎楚不赘糖令控测龆辖兹 冀术逶辑运冀肇元器鼙。 薅列处壤撬熟遮耱肇搬令多数搂漉( s i m d ) 她壤方或濑它产黛豹特秣结橱是 戳谱舞毒限差凳、楚箨、蕊孽嫠壤等一系弼毒幸募闯蓬冀鹜最发蓑起寒魏嘲。逮些 镊辫溺蘧躺共懑患楚遁过麓耱途强怒它们转缘残海瓣数缀躐 楚量驰处理,蓦蠡躲列 楚璞蘸爱好瓣熏多今楚瑷蕈嚣霹离囊藏数缀繇毽禽抟套努夔矮对诗冀,默薅获褥 镶嶷夔处壤速度。 一1 0 视频数字信号处理芯片x y - v d s p 的c 编译器开发 并行处理单元( p p u ) 使x y - v d s p 在硬件结构上实现了并行。图2 2 是并行 处理单元的逻辑框图。 r o w o r o w l s c a l a ri ob u sd a t ac a c h e c r o s s b a rb u s 3 2 b1 2 8 b 1 2 8 b1 2 8 b1 2 8 b 衄 厂_ j r -广- l l剖 - t v p 2 i_ v p il- 4 v p o l 厂t _ 一。1 _ 厂一il ill 曲 广_ l 厂l | r l 1 _ 1 v p 3 l 1 v p 2 i - 1 v p i i 1 v p o i ll 。r 广 。一l 1 lll l l l 。0 l i 曲 旧_ 1 v p 2 l 下一llll ilji ll 曲 ll _ 1v p ,|1v p z 1 v p t l lllllll lll li 旧 1 v r s i- 1 v p z l _ 1v p - i il ilil l 1 一 l ll l _ 1 m l _ 1 v p 3 l1 v r z i v p ll ll l _ j ll illl l 耐 l l v p 3l- i v p 2 l1v p ll l i l liill llll fi l i 曲 l l _ 1 v p 3 i , - t v p 2 i _ 1 v p - l il i il ilii i 图2 2 并行处理单元逻辑图 并行处理器单元由8 x 4 个矢量处理器( v p ) 组成。矢量处理器又称为并行算 术单元( p a u ) 。每个p a u 有一个乘法器,可进行1 6 x1 6 位的运算:笮f 2 4 - 3 2 位的累加器,作为图像处理指令的结果的存放处,每个累加器可分成高低1 6 位的 累加器;有3 6 个1 6 位的通用寄存器,其中有3 2 个窗口寄存器,这样,并行处理 单元共有1 1 5 2 个1 6 位通用寄存器,这样使得许多系数和运动估计查找目标能立 第二章视频数字信号处理芯片x y - v d s p 即被存储和访问。 每行四个p a u 组成一个运动估计协处理器,即x y - v d s p 共有八个协处理器。 每一行的四个p a u 与该行对应的运动估计协处理器同时处理八对像素的比较,一 起实现运动估计模式匹配以及乘积和的操作。 通过i o 总线,标量处理器可以对任何一个运动估计协处理器或任何一一个矢 量处理器进行访问。 整个并行处理单元和数据c a c h e 的数据宽度为1 2 8 位。交叉开关c r o s s b a r 负 责在数据c a c h e 与矢量处理器和标量处理器之间传送数据。c r o s s b a r 按译码信号的 要求将并行数据分配到指定的p a u 中,或是从p a u 阵列中提取相应数据。 2 2x y - v d s p 的指令分析 指令是一个处理器的重要组成部分,它的结构直接关系到硬件的控制设备、 译码电路、控制电路等的结构和功能1 2 ”。x y - v d s p 有一个独特的、强人高效的处 理指令集结构,它为直接用c 编写的程序设计。它的高效性表现之一是指令集采 用r i s c 结构,每周期执行一条指令【28 1 ,简单的单指令周期不需要微代码,机器指 令能以硬连线方式实现,这样指令执行起来相对较快;大多数操作是寄存器到寄 存器的,只以简单的l o a d 和s t o r e 操作访问存储器,简化了指令集,进而简化 了控制器;几乎所有的指令都使用寄存器寻址方式,其他复杂的寻址方式可由这 些简单方式用软件合成,这个设计特点简化了指令集和控制器;指令长度固定并 且在字边界上对齐,字段位置,特别是操作码字段位置是固定的。对于固定的字 段,操作码的译码和寄存器操作数的访问能同时出现。简化的格式也简化了控制 器。 x y - v d s p 的高效性表现之二是指令为超标量指令结构1 2 。一条3 2 位的指令 可同时执行标量指令和矢量指令,二者可以相关或不相关,若矢量指令需要访问 存储器,则二者相关,否则不相关。因为标量处理器为并行处理单元和自身提供 运算所需要的内存地址。关于指令的相关性问题及解决会在后文讲述。 2 2 1 指令编码结构 x y - v d s p 的指令长度有三种,1 6 位的标量指令、3 2 位的基本指令和6 4 位的 扩展指令。长度为3 2 位的基本指令可同时表示标量操作和矢量操作:扩展指令为 6 4 位,高3 2 位为立即数;若指令无须进行矢量处理,则为1 6 位的标量指令,可 进一步减小代码空间。3 2 位的指令格式如下,其中,s x 、s y 表示标量操作数, o p s 表示标量操作;v x 、v y 、v z 表示矢量操作数。o p v 表示矢量操作。 - j 旦 视频数字信号处理芯片x y - v d s p 的c 编译器开发 矢量标量逻辑和算术运算 格式: 标量( s x o p s s y - + s y ) 矢量( v x o p v v v y ) 矩阵矢量乘、卷积、运动估计 格式: 标量( s x o p s s + s y ) 矢量( v xo p v v y ) + v 盈+ v z 可见,标量指令的操作数一般是两个,用标量寄存器a 和标量寄存器b 表示, 而矩阵矢量乘、卷积、运动估计等专用于图像处理的并行指令的操作数则有三个, 其中,目的操作数一定是某个累加器,而源操作数之一缺省情况下是存储器操作 数,否则指明为某个非通用寄存器;源操作数之二是并行算术单元中3 2 个窗口寄 存器中的一个。特殊并行指令的多个源操作数则通过设置矢量寄存器a 的不同位 来表示。 以基本指令为例,其格式如图2 3 所示。 b i t :3 i2 82 72 32 2 1 81 71 41 398430 l 操作码矢量寄矢量寄矢量标量寄标量寄标量 l 修正码存器a存器b操作码存器a存器b操作码 图2 3 基本指令格式示意图 标量操作码表明标量处理器进行的算术或逻辑运算,矢量操作码表明并行算 术单元进行的算术或逻辑运算,标量运算和矢量运算有1 6 个相同的a l u 函数。 标量寄存器a 、b 指明标量运算的源操作数和目的操作数,a 、b 都是标量处理器 中的寄存器;矢量寄存器a 、b 指明矢量操作的源操作数和目的操作数,a 、b 都 是矢量处理器中的寄存器。x y - v d s p 的指令集采用r i s c 结构,操作一般都用寄 存器表示,如标量操作数的类型用寄存器表示,一些特殊函数如存储器访问、累 加器操作等也用寄存器指明;但并行操作数的类型及使用并行操作数的并行指令 则用指令操作码指明。 编译器需把c 源程序代码经过编译生成的代码进一步的用汇编器转化为机器 指令。如编译生成的代码为: s - m o v es r l ,s r l ;v _ a d d _ s b p sv m ,v r o 其中,sm o v e 为标量转移指令,s r l 为标量处理器中的寄存器;v _ a d d _ s b p s 为矢量 加法指令,s b p s 说明该矢量指令使用的并行数据类型是1 6 字节连续有符型;v m 表示操作数进行存储器访问( 此为读操作) ,v r o 为矢量处理器中的寄存器。该代 码的意义为:s r l 为矢量指令访存提供地址;1 6 个在存储器中连续存放的带符号的 字节从存储器中取出,带符号扩展为1 6 位;1 6 个扩展字节分布到3 2 个并行算术 单元中,第1 个扩展字节与第1 个和第1 6 个并行算术单元的v r o 相加,第2 个扩 展字节与第2 个和第1 7 个并行算术单元的v r o 相加,以此类推。则汇编生成的指 第二章视频数字信号处理芯片x y - v d s p 令如图2 4 所示( 此只表示为助记符) 。 指令i 矢量寄1 矢量寄i 矢量1 标量寄1 标量寄l 标量 操作码i 存器ai 存器bl 操作码l 存器ai 存器bi 操作码 _ s b p s v mv r o v a d d 2 2 2 指令流水线结构 图2 4 汇编指令助记符 x y - v d s p 还属于流水线结构s i m d 处理机。流水线技术是目前广泛应用于微 处理芯片中的一项关键技术。流水线结构是基于时问重复原理,把每条指令分成 若干个操作,每个操作分别由不同的部件执行,以此达到同时处理多条指令的目 的,其实质就是以时问换取空间口0 1 。x y - v d s p 和般处理器的不同之处在于它采 用指令级并行的指令口“,并行指令通过指令流水线结构得以并行处理。 x y - v d s p 采用r i s c 结构,每周期执行一条指令。指令流水线有血级: 取指令( i f ) 指令译码( i d ) 标量指令执行( s c a l a r e x e ) 矢量指令执行第一级( v e c t o r e x e 1 “) 矢量指令执行第二级( v e c t o r e x e 2 “) 指令单元的执行流程: ( 1 ) 程序计数器p c 中存放的是卜一条指令的地址,p c 加 :卜一条指令在译码 阶段得到的指令长度,即得到本条指令的地址,其值放入指令c a c h e 控制器中, 同时更新p c 为此值。 ( 2 ) 指令c a c h e 的低3 2 位即为当前指令,高3 2 位为下一条指令。译码寄存器 的内容被部分译码以决定接下来要译码的是一条3 2 位基本指令还是带立即数 的6 4 位扩展指令。当前指令的长度被指令流第一级获取以确定下条指令地 址。指令译码的结果放到标量指令寄存器中。标量存储器读操作在这一级执行, 地址由上一条指令提供。更新标量指令寄存器,完成取标量操作数。 ( 3 ) 标量指令寄存器的内容由标量处理器执行,访问标量寄存器,执行标量 a l u 操作,返回a l u 操作的结果到标量寄存器。标量寄存器b 在未更新前送 入数据c a c h e 寄存器,为本时钟周期末矢量存储器读提供地址,或为下一级矢 量存储器写提供地址。时钟周期结束时,矢量执行控制信号的内容被装入矢量 指令寄存器。 一1 4 视频数字信号处理芯片x y - v d s p 的c 编译器开发 ( 4 ) 根据矢量指令寄存器的内容,矢量寄存器被访问,执行矢量a l u 操作, 将结果返回到矢量寄存器。需要访问存储器时,在此时钟周期末,用上一时钟 周期确定的地址将并行操作数写入存储器。 ( 5 ) 矢量处理器中乘法累加和运动估计操作延时较长,用二级流水线完成。 第二条指令的取指级在第一条指令的译码级进行,依次重叠。于是在理想情 况下,指令l 的第5 级、指令2 的第4 级、指令3 的第3 级、指令4 的第2 级、 指令5 的第1 级能够被指令单元中的不同部件重叠进行,从而实现指令的流水线 结构。指令流水线会产生的指令相关问题,其分析及解决将在第七章x y - v d s p 的 m d f 的编写的有关章节中讲述。 2 2 3 指令分类 根据各指令的功能,x y - v d s p 的指令集可以分为以下几类: 控制指令:控制程序执行及循环的指令: 标量操作指令:主要为标量a l u 指令,还包括存储器访问指令等; 堆栈指令; 测试指令:进行标量、矢量处理器的一些测试: 矢量基本操作指令:用束指示矢量处理器的操作; 特有的用于图像处理的指令:矢量乘法、卷积、运动估计指令; 矢量数据装入存储指令:用于内存和并行处理单元之间装入或存储数据。 第三章编译器开发下具 第三章编译器开发工具 快速高效地开发编译器对体系结构研究有着重要的意义。上一章从硬件结构、 软件结构上分析了x y o v d s p 。硬件结构是软件结构的基础,而软件结构的分析是 编译器生成的基础和检验的目标。由上可知,x y - v d s p 是一个具备特殊性的目标 机器。采用的开发工具是可重定义编译器开发工具一一r e t a r g e t a b l ec o m p i l e r d e v e l o p m e n tt o o l s 。该开发工具是一个自动编译集成环境【j “,作为编译器的jr 发 人员,不需要编写传统的词法分析、语法分析、语义分析、中问代码生成、代码 生成等各阶段程序,而只需要根据目标机器的硬件特性、指令结构编写两个信息 文本文件。可重定义编译器的配置接口根据这些信息文件生成面向于这种机器的 编译器,实现可重定目标口”。这两个文本文件的编写有一定的语法格式,语义规 则,即是该开发工具使用的语言。灵活的语苦适合于x y v d s p 的特殊性描述。其 次,该开发工具不拘泥于标准c 语言的开发,可有许多扩展,这对于x y v d s p 特有的并行数据类型和并行指令的编译实现提供了方便之门。第三,该开发工具 可以根据需要开发高级语言编译器:汇编语言编译器和机器微代码编译器。若只 需丌发汇编编译器,则无需设计将高级语言转换为汇编语言的编译器。丌发c 语 言编译器就需要同时开发汇编语言编译器,d 能生成可执行的目标代码。本章将 介绍该开发工具的构成、原理,重点是分析该开发工具的工作原理。 3 1 可重定义编译器开发系统的组成 编译器是将源代码翻译成可以在计算机上执行的代码的软件开发工具,它的 特点是目标语言比源语言低级。编译器的工作可以分成若干阶段,每个阶段把源 程序从一种裹达形式变换成另一种表达形式,直到生成可执行的目标机器代码p 。 可重定义编译器开发工具将一个高级语言编写的源程序转化为可执行的目标机器 代码经过的完整步骤如图3 1 所示。 此开发系统可开发c 和f o r t r a n 高级语言编译器,此以开发c 编译器为例。此 编译器集成开发环境由以下的部分组成: m c p p 一标准c 和宏预处理器; m c c 一标准c 编译器; m c p e e p 一优化器; m c p a c k 一汇编解释及优化器; m c a s r 一可熏定义徽代码器: 视频数字信号处理薜片x y - v d s p 的c 编译器开发 m c l i n k 一连接器 图3 1 源程序转化为目标代码流程图 以上都是运行在d o s 下的将源程序转换为目标代码所需的有关程序,以下简 单介绍各组成部分的功能。 m c p p 是预处理器程序。是在真正的翻译开始之前由编译器调用的独立程序。 预处理器可以删除注释、执行源程序中的宏( 宏m a c r o 是一段重复文字的简短描 写) ,替代和扩展包含文件。若宏的定义或使用有错,或找不到所包含的文件,就 会提示错误。语法、语义错误交给余下的程序处理p ”。 m c c 是编译程序,是可重定义编译器开发工具的重要组成部分之一。它使用 编译信息文件( c o m p i l e r i n f o r m a t i o nf i l e ,以下简称c i f ) ,将经过预处理程序的源文 件转化为目标机器的串行操作文件( v e r t i c a lo p e r a t i o n 文件,以下简称v o p 文件) 。 v o p 类似于汇编代码,它相当于一种中间语吉。的形式。v o p 文件在输入给m c p a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 购买液压拖车合同范本
- 帮带宠物出境合同范本
- 合伙开火锅店合作协议书2篇
- 高压注水泵房配电设备维修技术协议3篇
- 考勤工作心得体会怎么写(范文10篇)
- 指导性案例的题目及答案
- 八月一日讲话参考
- 旅游行业活动策划攻略
- 2025年事业单位工勤技能考试考试题库及参考答案
- CN222980410U 一种静簧与线圈架装配结构及拍合式继电器 (四川宏发电声有限公司)
- 文化政策与法规课件
- 社区社群团购新团长培训案例课件
- 外科学教学课件:食管癌
- 露天矿开采技术课件汇总全套ppt完整版课件最全教学教程整套课件全书电子教案
- 部编人教版九年级上册初中历史 第1课 古代埃及 教案(教学设计)
- 钢结构钢梁计算(PPT33张)
- 幼儿教师——散文诗
- 创伤骨折院前急救ppt课件(PPT 50页)
- DB3302_T 1130-2022建筑垃圾运输管理规范(高清-可复制)
- 锚杆、锚索锚固力计算
- 日语话剧展演策划
评论
0/150
提交评论