(电路与系统专业论文)视频dsp并行处理与运动估计ip核设计.pdf_第1页
(电路与系统专业论文)视频dsp并行处理与运动估计ip核设计.pdf_第2页
(电路与系统专业论文)视频dsp并行处理与运动估计ip核设计.pdf_第3页
(电路与系统专业论文)视频dsp并行处理与运动估计ip核设计.pdf_第4页
(电路与系统专业论文)视频dsp并行处理与运动估计ip核设计.pdf_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 本论文的设计工作来源于国家8 6 3 预研项目( 8 6 3 s o c y 一2 1 6 ) ,研究视频通 用数字信号处理器的口软核设计,其最终成果为设计研制了视频通用数字信号处 理器芯片x y v d s p 的i p 软核。 论文首先介绍了数字视频压缩和处理器内部结构的有关知识,然后在对x y v d s p 的软硬件系统设计进行了介绍,而论文的主要部分集中在x y v d s p 的并 行处理器阵列设计和运动估计协处理器的设计部分,包括阵列的构架、单个阵列 处理器内部的数据通路和寄存器堆的设计以及运动估计协处理器原理及其设计说 明。 作者在本次项目中的主要研究任务在于并行处理器阵列设计和运动估计协处 理器设计。 x y v d s p 芯片p 软核的研制采用硬件描述语言v e r i l o g 进行自顶向下的设 计,使用a l t e r a 公司的f p g a a p e x 2 0 k e l 0 0 0 e 对设计进行了验证。在论文的最 后,对f p g a 的设计方法以及设计的仿真测试方法进行了说明。 关键词:并行处理运动估计数据通路流水线 a b s t r a c t t h i sp a p e ri sb a s e do nt h ep r e p a r ep r o j e c to fn a t i o n a l8 6 3 h i g ht e c h n o l o g yp r o j e c t ( 8 6 3 一s o c y 一2 1 6 ) t h i sp a p e rs t u d i e st h ei pc o r ed e s i g na n dh a r d w a r er e a l i z a t i o no f v i d e o d i g i t a ls i g n a lp r o c e s s o rx y v d s p f i r s t ,t h eo u t l i n eo fv i d e oc o m p r e s sp r i n c i p l ea n dn o r m a lp r o c e s s o rs t r u c t u r ea r e i n t r o d u c e di n t h i s p a p e r t h e n ,w ep r e s e n tt h es y s t e ms c h e m eo fi n s t r u c t i o na n d h a r d w a r es t r u c t u r e a n dp a r a l l e lp r o c e s s o ra r r a yc o n s t r u c t i o n ,p a r a l l e lp r o c e s s o rd a t a p a t hd e s i g n ,p a r a l l e lp r o c e s s o rr e g i s t e rb a n kd e s i g na n dm o t i o ne s t i m a t i o nc o p r o c e s s o r d e s i g na r ed e s c r i b e di nd e t a i li nt h i sp a p e r i nt h ep r o j e c t ,a u t h o r sw o r k e m p h a s i z e so nt h ep a r a l l e lp r o c e s ss e c t i o nd e s i g na n d m o t i o ne s t i m a t i o nd e s i g n x y - v d s pi s d e s i g n e dw i t hv e r i l o gh a r d w a r ed e s c r i p t i o nl a n g u a g e w eu s e a l t e r af p g aa p e x 2 0 k e l 0 0 0 et o i m p l e m e n t o u rd e s i g n t h ef p g ad e s i g na n d h a r d w a r et e s to f t h e d e s i g ni sp r e s e n t e di nt h ee n do f t h i sp a p e l k e y w o r d :p a r a l l e lp r o c e s s m o t i o ne s t i m a t i o n d a t ap a t h p i p el i n e 绪论 随着网络技术和计算机体系结构以及微电子技术的迅速发展,对视频信号的 实时处理提出了更高的要求。特别是近几年集成电路的深亚微米制造技术、设计技 术的迅速发展,在一个芯片上集成一个大规模的复杂系统已成为可能。在本次国家 8 6 3 预研项目( 8 6 3 s o c y 2 1 6 ) 中,我们将视频压缩技术与先进的计算机技术相结 合,设计出了一种通用v d s p ( 视频数字信号处理器,v i d e od i g i t a ls i g n a lp r o c e s s o r ) 的软核。它具有先进的并行处理体系结构,包括并行处理s i m d ( s i n g l e i n s t r u c t i o n m u l t id a t a ,单指令多数据) 体系结构技术、流水线技术以及运动估计协处理技术 等。另外,作为软核( 包括逻辑描述、网表和测试文档) ,它具有极高的可重用性, 对提高今后的设计效率具有重大意义。需要指出的是,在此次国家8 6 3 预研项目中, 我们的芯片i p 内核,通过了验收小组专家评审,也通过了f p g a 验证。 v d s p 是专用于图象处理的d s p 。因为它是用户可编程的,它所适合的图象处 理的应用范围就非常广泛,所以它又是在图象处理领域的通用的芯片。在设计视频 d s p 芯片的基础上,可以根据具体的视讯产品很快构成视讯通信系统单片i c ,这些 单片i c 能够独立承担视频编码、音频编码、数据复用( 除视频、音频通道外还提 供附加的透明数据通道) 、通信控制以及系统主控等核心任务。我国现在用于图象 处理的产品都是采用进口通用d s p 芯片,这就极大地限制了应用产品的性能提高 和价格的降低。在国外,也是刚刚出现这种产品。本芯片x y v d s p 软核的设计成 功必将大大地促进我国视讯产品的应用和发展,为使我国的视讯产品进一步应用并 走向世界创造条件,同时必将产生巨大的经济和社会效益。 在此项目中,本人主要从事并行处理部分和运动估计部分的设计,包括流水 线分析、并行处理s i m d 处理器阵列的构建、阵列中单个处理器的数据通路和寄存 器堆设计以及运动估计协处理器的设计。本文对视频数字信号处理器芯片的原理, 主要包括并行计算机硬件原理和视频压缩在x y v d s p 中的实现原理给予介绍,并 针对视频数字信号处理器的并行部分,包括并行处理器阵列及其在流水线中的实现 以及运动估计协处理器的设计作出详细的说明,最后对于在f p g a 阶段中的一些使 用经验及其仿真方法和结果给出了详细的描述。总体安排列出如下: 第一章通用数字视频处理器原理及其体系结构。简单介绍视频压缩原理和普 通处理器的内部结构以及并行处理器一些概念。 !视频d s p 一并行处理和运动估计部分i p 核设计 第二章视频数字信号处理器系统软硬件设计。对x y v d s p 从指令分析、流水 线分析、并行p a u 阵列及其结构上说明了x y v d s p 并行处理部分的整体框架。 第三章并行指令分解分析及其流水线设计。在前半部分对并行指令进行了系 统和详细的分析,后半部分则对并行指令在流水线实现问题进行了分析,从控制单 元向p a u 所发出的控制信号角度对流水线进行的描述。 第四章并行阵列处理器设计。主要对单个p a u 中的数据通路和寄存器堆的设 计进行了详细的说明。 第五章运动估计协处理器设计。在讨论运动估计原理,特别是块匹配法的基 础上,对x y v d s p 中运动估计协处理器部分的设计给出了详细的说明。 第六章f p g a 验证设计。对f p g a 设计思路和设计方法进行了说明,对在f p g a 设计中积累的一些经验进行了总结。 第七章仿真与测试。说明了本人在设计过程中的仿真与测试的思路与实现方 法。 第一章通用数字视频处理器原理及其体系结构! 第一章通用数字视频处理器原理及其体系结构 1 1 数字视频压缩原理 视频是时变图像序列,是时空( s p a t i a l t e m p o r a l ) 信号,与静态图像相比不 仅在空间上存在冗余,而且在时间上存在冗余。视频的压缩一方面可以利用图像 本身的空间相关性,还可以利用时间上的相关性。视频编码需要将帧内 ( i n t r a f r a m e ) 编码和帧间( i n t e r f r a m e ) 编码混合起来达到高的压缩率。帧内编 码即单幅图像本身的编码过程,通常采用d c t 变换编码方法。帧间编码可分为无 运动补偿和有运动补偿的的两种。帧内编码通常是以宏块为单位的d c t 编码,帧 间编码是在帧内编码的基础上进行的,在不同帧之间以对应的宏块为对象进行编 码。所谓运动补偿是指对宏块在下一帧的位置做运动估计,将该运动估计用于确 定下一帧对应宏块的位置,再进行编码,使编码考虑了图像的运动分量,即对运 动做了补偿,提高编码效率。 运动估计是序列图像编码和计算机视觉领域中的一项关键技术,是运动补偿 技术的核心部分,在目前已成为国际标准的电视图像编码方法中,从h 2 6 1 、h 2 6 3 到m p e g 一1 、m p e g 一2 和m p e g 一4 ,都无一例外用到了“简单帧间预测+ 运动补偿”的 技术框架。 一国际数字化视频压缩标准 数字化视频压缩格式的标准化简化了用计算机数据的形式对全运动视频进行 的处理和存储,以及在现有和未来计算机网络上或者通过地球上的广播信道进行 的传播。数字化视频压缩标准可想象到的应用范围包括全数字化t v 、视频会议、 可视电话、视频邮件、多媒体工作站、数字化电影、视频游戏、其他形式的娱乐 和教育。在视频会议、多媒体和全数字化t v 场合中,国际视频压缩标准h 2 6 1 、 m p e g 一1 、m p e g 一2 和m p e g 一4 得到广泛应用。 二编码器预测环 编码器预测环是视频压缩系统的核心,如下页图1 - 1 所示:其中 a 象素间预测误差 b 预测误差传输块( d c t 系数) c预测误差c t 系数的量化形式 d量化预测误差d c t 系数的标准形式 e象素间预测误差,存在量化失真 f重建象素值,存在量化失真 第一章通用数字视频处理器原理及其体系结构! 第一章通用数字视频处理器原理及其体系结构 1 1 数字视频压缩原理 视频是时变图像序列,是时空( s p a t i a l t e m p o r a l ) 信号,与静态图像相比不 仅在空间上存在冗余,而且在时间上存在冗余。视频的压缩一方面可以利用图像 本身的空间相关性,还可以利用时间上的相关性。视频编码需要将帧内 ( i n t r a f r a m e ) 编码和帧间( i n t e r f r a m e ) 编码混合起来达到高的压缩率。帧内编 码即单幅图像本身的编码过程,通常采用d c t 变换编码方法。帧间编码可分为无 运动补偿和有运动补偿的的两种。帧内编码通常是以宏块为单位的d c t 编码,帧 间编码是在帧内编码的基础上进行的,在不同帧之间以对应的宏块为对象进行编 码。所谓运动补偿是指对宏块在下一帧的位置做运动估计,将该运动估计用于确 定下一帧对应宏块的位置,再进行编码,使编码考虑了图像的运动分量,即对运 动做了补偿,提高编码效率。 运动估计是序列图像编码和计算机视觉领域中的一项关键技术,是运动补偿 技术的核心部分,在目前已成为国际标准的电视图像编码方法中,从h 2 6 1 、h 2 6 3 到m p e g 一1 、m p e g 一2 和m p e g 一4 ,都无一例外用到了“简单帧间预测+ 运动补偿”的 技术框架。 一国际数字化视频压缩标准 数字化视频压缩格式的标准化简化了用计算机数据的形式对全运动视频进行 的处理和存储,以及在现有和未来计算机网络上或者通过地球上的广播信道进行 的传播。数字化视频压缩标准可想象到的应用范围包括全数字化t v 、视频会议、 可视电话、视频邮件、多媒体工作站、数字化电影、视频游戏、其他形式的娱乐 和教育。在视频会议、多媒体和全数字化t v 场合中,国际视频压缩标准h 2 6 1 、 m p e g 一1 、m p e g 一2 和m p e g 一4 得到广泛应用。 二编码器预测环 编码器预测环是视频压缩系统的核心,如下页图1 - 1 所示:其中 a 象素间预测误差 b 预测误差传输块( d c t 系数) c预测误差c t 系数的量化形式 d量化预测误差d c t 系数的标准形式 e象素间预测误差,存在量化失真 f重建象素值,存在量化失真 !视频d s p 一并行处理和运动估计部分i p 核设计 g 运动补偿预测象素值 f 运动矢量 图1 - 1 编码器预测环示意图 1 2 常用处理器体系结构 一处理机构成和工作过程 计算机主要包含处理机、存储器和i o 接口。计算机在执行程序时,首先把 要执行的程序和数据放入存储器。处理机从存储器中取指令并加以执行,一个简 单的处理机的如图卜2 所示。 j f l i :卜 峒k 卜小蛔 l 一制怿 、l 存储 t t t 。 l 器 i17 l 南 lff 叫rr _ 一 控制部件 l l l 图卜2 普通处理器简图 处理机中有一个指令计数器p c ( p r o g r a mc o u n t e r ) ,处理机使用p c 的内容作 !视频d s p 一并行处理和运动估计部分i p 核设计 g 运动补偿预测象素值 f 运动矢量 图1 - 1 编码器预测环示意图 1 2 常用处理器体系结构 一处理机构成和工作过程 计算机主要包含处理机、存储器和i o 接口。计算机在执行程序时,首先把 要执行的程序和数据放入存储器。处理机从存储器中取指令并加以执行,一个简 单的处理机的如图卜2 所示。 j f l i :卜 峒k 卜小蛔 l 一制怿 、l 存储 t t t 。 l 器 i17 l 南 lff 叫rr _ 一 控制部件 l l l 图卜2 普通处理器简图 处理机中有一个指令计数器p c ( p r o g r a mc o u n t e r ) ,处理机使用p c 的内容作 第一章通用数字视频处理器原理及其体系结构! 为存储器的地址,读存储器中的指令。这一步骤称为取指令。取出指令后,p c 的内容自动调整,指向下一条指令。如一条典型的指令a d dr 4 ,r 5 ,r 6 。即除了 操作码,还有3 个地址域:两个源地址和一个目的地址。这条指令的意思是把r 4 和r 5 中的内容相加,结果放入寄存器r 6 中。这样的指令被称为三地址指令。寄 存器在处理机内部,用于存放计算机的中间结果。与存储器相比,寄存器的访问 速度是相当快的。所有的数据寄存器合在一起,称为寄存器堆。处理机把指令从 存储器取出来后,放入指令寄存器i r ,然后判断指令的意义,并做出相应的动作。 这一步骤称为译码。例如对上面的指令,处理机将从寄存器堆读寄存器r 4 和r 5 的内容。读出两个寄存器的内容后,处理机的控制部件将命令a l u 做加法操作。 a l u 是处理机的运算器,执行算术和逻辑操作。这一阶段称为执行。处理机也可 以从存储器取数据或往存储器存数据。在这种情况下,执行的结果将被用作存储 器地址来访问存储器。这一过程称为存储器访问。执行存储器访问指令时,存储 器的地址不是由p c 提供,而是a l u 的计算结果。因此,如果处理机只有一个存 储器接口的话,我们应该使用一个多路器来选择其中的一个送到存储器的地址总 线。 象a l u 、寄存器堆以及其它一些为指令执行服务的电路被称为处理机的数据 路径。处理机由数据路径和控制部件组成。控制部件控制指令的操作。另外,为 了加快存储器的访问速度,现代处理机往往在片内设计有指令c a c h e 和数据 c a c h e 。 二并行性 我们把问题中具有可以同时进行运算或操作的特征,称为并行性。例如,在 相同延迟时间的条件下,采用n 位运算器进行n 位并行运算的速度,几乎是用一 位运算器进行n 位串行运算的1 3 倍,这就是传统机器由串行到并行的典型实例。 但是,对并行性的理解不能只限于这种靠器件资源的简单重复实现的并行,应当 有更广义的理解。例如,单处理机内采用的重叠、流水方式工作,操作系统采用 的多道程序分时共行,都是更广意义上的并行。 为了提高计算机系统的并行性,可以通过各种各样的技术途径来达到,如时 间重叠、资源重复和资源共享等。 时间重叠是在并行性概念中引入时间因素,让多个处理过程在时问上相互错 开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。 流水线就是这种方式的最典型的例子。 资源重复是在并行性概念中引入空间因素,通过重复设置硬件资源来提高可 靠性或性能。阵列处理机是这种方式的典型例子。 !视频d s p 一并行处理和运动估计部分i p 核设计 资源共享就是利用软件的方法让多个用户按一定时间顺序轮流地使用同一套 资源,以提高其利用率,这样相应地也可以提高整个系统的性能。例如,多道程 序分时系统就是利用共享c p u 、主存资源,以降低系统价格,提高设备利用率的 典型例子。 三并行处理系统: 并行处理计算机是强调并行处理的系统,除了分布处理系统外,按其基本结 构特征,可以分为流水线计算机、阵列处理机、多处理机系统和数据流计算机四 种不同结构。在这我们的设计中,我们主要用到了流水线计算机技术来获得时间 并行性,用阵列处理机技术来获得空间并行性。 1 流水线计算机 流水线是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代 处理机设计中最为关键的技术。流水线处理机把一条指令的执行分成几个步骤, 或称级。每一级在一个时钟周期内完成。在每个时钟周期,处理机启动执行一条 指令。如果处理机的流水线有m 级,则同时可重叠执行的指令数将为m ,每条指 令处在不同的执行阶段。如果分级分得好的话,那么每一级都没有时间上的浪费。 这是最理想的情况。流水线处理机在这种理想的情况下,与非流水线处理机的性 能加速比为 - ,i x c p i x tc p f 。p i c p i ,tc 研。m 其中,i 为一个程序被执行的总的指令条数。它在流水线处理机和非流水线处理 机中是相等的。c p i 是每条指令总体平均所需的时钟周期数。c p i ( n p ) 是非流水 线处理机的c p i ,c p i ( p ) 是流水线处理机的c p i 。因为流水线处理机把一条指 令的执行时间理想地分成了m 级,有m 条指令在同时( 重叠) 执行。最后的加速 比为m ,即等于流水线的级数。但实际情况往往要受到很多条件的限制,如:指 令间的数据相关、中断、程序分支及其它因素的影响,最大加速比是从来不可能 完全达到的。很多流水线周期浪费在由于执行顺序外指令所引起的等待状态中。 2 阵列处理机 阵列处理机是操作级并行的s i m d ( s i n g l ei n s t r u c t i o na n dm u l t i p l ed a t a ,单指 令多数据) 计算机。通过重复设置大量相同的处理单元p e ( p r o c e s se l e m e n t ) , 将它们互连成阵列,在单一控制部件c u ( c o n t r o lu n i t ) 控制下,对各自分配的数 据并行执行同一指令所规定的操作。处理单元p e 是不带控制部件或只含少量控 制单元的算术逻辑单元。 阵列处理机由于存储器的组成方式不同,有分布式存储器和集中式共享存储 第一章通用数字视频处理器原理及其体系结构: 器两种不同的基本构形。在x y v d s p 中采用的是前一种构形。 阵列处理机的单指令流多数据流处理方式和由它产生的特殊结构是以诸如有 限差分、矩阵、信号处理、线性规划等一系列计算问题为背景发展起来的。这些 计算问题的共同特点是可以通过各种途径把它们转化成为对数组或向量的处理, 而阵列处理机正好利用多个处理单元对向量或数组所包含的各个分量同时计算, 从而获得很高的处理速度。与同样擅长于向量处理的流水线处理机相比,阵列处 理机利用的是资源重复,而不是时问重叠:利用并行性中的同时性,而不是并发 性。它的每个处理单元要同等地负担起各种运算功能,但其设备利用率却可能没 有多个单功能流水线部件那样高。因此,只有在硬件价格有了大幅度下降及系统 结构有了较大改进的条件下,阵列处理机才能具有较好的性能价格比。在阵列处 理机中,互联网络的结构形式限定了阵列处理机适用的解题算法类型,也会对整 个系统的多种性能指标产生明显的影响。因此,互联网络的设计是重点之一。在 x y v d s p 中,交叉网络在控制单元的控制下,可以将1 2 8 位的数据信号按各种数 据类型的要求分别分配到3 2 个处理单元中,具体的分配方式我们将在指令分析 中进行详细介绍。 1 3 小结 由于视频处理的特殊特点,即:实时性、处理重复性、数据规律性。结合处 理数字处理器中计算机的体系结构分析,我们可以看出,如何将并行计算机体系 结构与视频压缩算法紧密结合是视频数字处理器设计的关键,也是本次设计中的 主导思想。 第一章通用数字视频处理器原理及其体系结构: 器两种不同的基本构形。在x y v d s p 中采用的是前一种构形。 阵列处理机的单指令流多数据流处理方式和由它产生的特殊结构是以诸如有 限差分、矩阵、信号处理、线性规划等一系列计算问题为背景发展起来的。这些 计算问题的共同特点是可以通过各种途径把它们转化成为对数组或向量的处理, 而阵列处理机正好利用多个处理单元对向量或数组所包含的各个分量同时计算, 从而获得很高的处理速度。与同样擅长于向量处理的流水线处理机相比,阵列处 理机利用的是资源重复,而不是时问重叠:利用并行性中的同时性,而不是并发 性。它的每个处理单元要同等地负担起各种运算功能,但其设备利用率却可能没 有多个单功能流水线部件那样高。因此,只有在硬件价格有了大幅度下降及系统 结构有了较大改进的条件下,阵列处理机才能具有较好的性能价格比。在阵列处 理机中,互联网络的结构形式限定了阵列处理机适用的解题算法类型,也会对整 个系统的多种性能指标产生明显的影响。因此,互联网络的设计是重点之一。在 x y v d s p 中,交叉网络在控制单元的控制下,可以将1 2 8 位的数据信号按各种数 据类型的要求分别分配到3 2 个处理单元中,具体的分配方式我们将在指令分析 中进行详细介绍。 1 3 小结 由于视频处理的特殊特点,即:实时性、处理重复性、数据规律性。结合处 理数字处理器中计算机的体系结构分析,我们可以看出,如何将并行计算机体系 结构与视频压缩算法紧密结合是视频数字处理器设计的关键,也是本次设计中的 主导思想。 !视频d s p 一并行处理和运动估计部分i p 核设计 第二章视频数字信号处理器系统软硬件设计 视频数字信号处理器的结构是多种多样的,在这里我主要对我们设计的s i m d 并行阵列信号处理器( 以下简称x y v d s p ) 从软硬件两方面给予介绍。 2 1 软件系统及指令集分析 x y v d s p 拥有比较复杂的指令体系,但总体上来讲,它仍是一种r i s c 集。 在控制、标量和矢量指令相结合的情况下,可以完成标量运算、矩阵乘、矩阵转 置、卷积、卷积对和运动估计的相应运算,这些是图象处理算法中d c t 、f f t 、小 波变换和运动估计等的基础。下面我们就功能、分类以及流水线的角度着重对矢 量指令进行分析。 一指令分析 1 指令形式: 一条指令一般为3 2 位,其中o 到1 3 位为标量部分,1 4 到3 1 位为矢量部分。 标量部分分为标量操作数a ( s r a ,1 3 到9 位) 、标量操作数b ( s r b ,8 到4 位) 和标量操作码( s 操作码,3 到0 位) 。矢量部分分为操作识别码( 3 1 到2 8 位) 、 矢量操作数a ( v r a ,2 7 到2 3 位) 、矢量操作数b ( v r b ,2 2 到1 8 位) 和矢量操 作码( v 操作码,1 7 到1 4 位) 。如下图所示。 b i t3 1 2 82 7 2 32 2 1 81 7 1 41 3 98 43 0 2 功能类型: 结合本次芯片设计任务,所要完成的运算功能分成以下七类( 注:下列运算 中数据可以从并行处理器阵列中的局部寄存器取得,也可以通过交换网络从主存 中实时读取) 。 基本算术逻辑运算: 本类运算中,各个p a u 的动作一样。可以完成的操作数为8 位和1 6 位的加减 以及各种逻辑运算。操作数可为两个寄存器和一个内存操作数或一个寄存器和一 个内存操作数,但必须保证对内存操作数不存在既读又写。单操作数时,目的可 为内存,具体运算类型由操作码指定。如:va n d ( 矢量与) ,vx o r ( 矢量异或) ,vo r ( 矢量或) ,vm o v e ( 矢量移动) ,va n d n s ( n o t aa n d b ) ,vx n o r ( 同或) ,vo m s ( a 反或b ) ,vm m ,e n ( a 反移动到b ) ,va d d s c ( a 加符号位) ,va d d c ( a 加b 加符号 位) ,vs u b s d c ( a 加b 反加符号位) ,vd e c ( a 减一) ,va d d ( a 加b ) ,vs u b s d ( a 减b ) ,vs u b d s ( b 减a ) ,vs a t 。 矢量乘和矢量乘加运算: !视频d s p 一并行处理和运动估计部分i p 核设计 第二章视频数字信号处理器系统软硬件设计 视频数字信号处理器的结构是多种多样的,在这里我主要对我们设计的s i m d 并行阵列信号处理器( 以下简称x y v d s p ) 从软硬件两方面给予介绍。 2 1 软件系统及指令集分析 x y v d s p 拥有比较复杂的指令体系,但总体上来讲,它仍是一种r i s c 集。 在控制、标量和矢量指令相结合的情况下,可以完成标量运算、矩阵乘、矩阵转 置、卷积、卷积对和运动估计的相应运算,这些是图象处理算法中d c t 、f f t 、小 波变换和运动估计等的基础。下面我们就功能、分类以及流水线的角度着重对矢 量指令进行分析。 一指令分析 1 指令形式: 一条指令一般为3 2 位,其中o 到1 3 位为标量部分,1 4 到3 1 位为矢量部分。 标量部分分为标量操作数a ( s r a ,1 3 到9 位) 、标量操作数b ( s r b ,8 到4 位) 和标量操作码( s 操作码,3 到0 位) 。矢量部分分为操作识别码( 3 1 到2 8 位) 、 矢量操作数a ( v r a ,2 7 到2 3 位) 、矢量操作数b ( v r b ,2 2 到1 8 位) 和矢量操 作码( v 操作码,1 7 到1 4 位) 。如下图所示。 b i t3 1 2 82 7 2 32 2 1 81 7 1 41 3 98 43 0 2 功能类型: 结合本次芯片设计任务,所要完成的运算功能分成以下七类( 注:下列运算 中数据可以从并行处理器阵列中的局部寄存器取得,也可以通过交换网络从主存 中实时读取) 。 基本算术逻辑运算: 本类运算中,各个p a u 的动作一样。可以完成的操作数为8 位和1 6 位的加减 以及各种逻辑运算。操作数可为两个寄存器和一个内存操作数或一个寄存器和一 个内存操作数,但必须保证对内存操作数不存在既读又写。单操作数时,目的可 为内存,具体运算类型由操作码指定。如:va n d ( 矢量与) ,vx o r ( 矢量异或) ,vo r ( 矢量或) ,vm o v e ( 矢量移动) ,va n d n s ( n o t aa n d b ) ,vx n o r ( 同或) ,vo m s ( a 反或b ) ,vm m ,e n ( a 反移动到b ) ,va d d s c ( a 加符号位) ,va d d c ( a 加b 加符号 位) ,vs u b s d c ( a 加b 反加符号位) ,vd e c ( a 减一) ,va d d ( a 加b ) ,vs u b s d ( a 减b ) ,vs u b d s ( b 减a ) ,vs a t 。 矢量乘和矢量乘加运算: 第二章视频数字信号处理器系统软硬件设计! vm u l ,vm u l a d d 本类运算中,各个p a u 的动作一样,可以完成的操作数为1 6 位的乘法,其最后结果存放于本p a u 的a c o 寄存器中。 矩阵乘和矩阵乘加运算: vm v m ,vm v m a d d 与上一类指令相区别的是,这种乘法用于矩阵相乘,以一 行的四个p a u 为单位动作,各行的动作一样,为乘法,其操作数之一可为内存操 作数,最后将一行的四个结果相加,结果再根据指令与目的a c x ( 注:这里行 的a c 寄存器统一编号为o 到7 ) 相加( 或不加) 后结果放入a c x 中。 卷积乘和卷积乘加以及卷积对乘和卷积对乘加运算: 此类指令与上一种运算相同,区别在于对内存操作数的读取方式和将其对并 行处理器阵列的分配方式。 运动估计指令: 利用一行的p a u 算得的结果输入到专用的运动估计协处理器,经过运动估计 处理结果保存在运动估计协处理器中的扩展寄存器中,标量处理器可以通过标量 总线对其进行访问,取得运动矢量。 测试指令: 在每个p a u 中有个使能位,而测试指令则是根据特定的条件对这个使能位 进行设置。 调入和读取指令: 对p a u 的寄存器的读写是通过c r o s s b a r 的t 2 8 位的数据总线进行的,】2 8 位的数据通过调入和读取指令可以进行最大四行和两列的读写。这类指令可以用 参数的读写以及矩阵的转置。 3 流水线: x y v d s p 中所有的指令在c p u 时钟驱动下工作,指令的执行周期定义为取址、 译码、标量执行、矢量执行第一级和矢量执行第二级共五级流水。对于并行处理 部分所涉及的流水线主要集中于后三级。在这里先将这三级的功能简要说明如 下,在后续章节中我们将对流水线的实现和流水线在数据通路中的具体操作作详 细的描述。 在标量执行级,利用标量指令中寄存器的寻址从标量寄存器堆中取出标量操 作数,进行a l u 运算,结果返回到标量寄存器堆中。在指令的开始阶段,前条 指令中标量目的寄存器中的内容放入d c a c h e 控制器。它将作为这条指令中矢量 的内存入口地址或保持到下一周期作为内存写入地址。标量数据在这个周期结尾 处根据前一条标量指令在数据缓存中保持的地址进行写入。在这里可能存在流水 线相关的问题,主要是对同一个寄存器操作的相关性,我们目前采用的是简单的 单纯的处理方法,在控制单元中判断相关性,给出相关直联控制信号,利用控制 塑视频d s p 一并行处理和运动估计部分i p 核设计 运算结果的流向来处理相关问题,具体描述我们将在后续章节中给出。进一步对 矢量数据类型进行译码,向交叉开关和数据缓存给出控制信号,从而为并行处理 阵列提供相应的内存操作数。利用由控制单元给出的矢量控制信号,从矢量寄存 器堆中取操作数。 在矢量执行第一级,控制单元给出并行处理器中运算单元入口的操作数选择 信号,选择适当的操作数进入运算单元( 根掘指令不同,有a l u 和乘法器两种) 。 如果有内存操作数参与运算,则这时的内存操作数已是在上个周期中交叉开关和 数据缓存根据控制信号给出的稳定的数据。在本周期结尾,利用数据缓存中保持 的地址数据对内存进行矢量写入。 在矢量执行第二级,进一步完成乘法和运动估计的控制信号译码,给出相应 的控制信号,主要有行累加器操作数选择,累加结果的寄存器写入。运动估计协 处理器的累加树动作,比较器进行比较得到运动矢量。 2 2 硬件系统及系统结构 1 x y - v d s p 芯片的结构 x y v d s p 芯片是一种高速的图象处理d s p 芯片,完成1 6 x 1 6 的运动估计平均 需要四个时钟周期。它具有高度并行的处理器结构以及巧妙的指令系统。在每个 x y v d s p 芯片中,有一个标量处理器和八行四列的矢量处理器,每行的并行处理 单元后有一个运动协处理器专用于运动估计。在长度为3 2 位的指令中,包含标 量操作部分和矢量操作部分,标量操作的重要用途之一就是为流水线的下一级的 矢量运算提供内存操作数地址。结构简图如图2 - 1 所示。 图2 - 1x y v d s p 芯片结构简图 塑视频d s p 一并行处理和运动估计部分i p 核设计 运算结果的流向来处理相关问题,具体描述我们将在后续章节中给出。进一步对 矢量数据类型进行译码,向交叉开关和数据缓存给出控制信号,从而为并行处理 阵列提供相应的内存操作数。利用由控制单元给出的矢量控制信号,从矢量寄存 器堆中取操作数。 在矢量执行第一级,控制单元给出并行处理器中运算单元入口的操作数选择 信号,选择适当的操作数进入运算单元( 根掘指令不同,有a l u 和乘法器两种) 。 如果有内存操作数参与运算,则这时的内存操作数已是在上个周期中交叉开关和 数据缓存根据控制信号给出的稳定的数据。在本周期结尾,利用数据缓存中保持 的地址数据对内存进行矢量写入。 在矢量执行第二级,进一步完成乘法和运动估计的控制信号译码,给出相应 的控制信号,主要有行累加器操作数选择,累加结果的寄存器写入。运动估计协 处理器的累加树动作,比较器进行比较得到运动矢量。 2 2 硬件系统及系统结构 1 x y - v d s p 芯片的结构 x y v d s p 芯片是一种高速的图象处理d s p 芯片,完成1 6 x 1 6 的运动估计平均 需要四个时钟周期。它具有高度并行的处理器结构以及巧妙的指令系统。在每个 x y v d s p 芯片中,有一个标量处理器和八行四列的矢量处理器,每行的并行处理 单元后有一个运动协处理器专用于运动估计。在长度为3 2 位的指令中,包含标 量操作部分和矢量操作部分,标量操作的重要用途之一就是为流水线的下一级的 矢量运算提供内存操作数地址。结构简图如图2 - 1 所示。 图2 - 1x y v d s p 芯片结构简图 第二章视频数字信号处理器系统软硬件设计旦 2 并行处理部分 一、p p u ( 并行处理单元,p a r a l l e lp r o c e s su n i t ) 功能介绍: p p u 为x y v d s p 芯片中的并行阵列处理机部分的总称,其基本构形是操作级 并行的s i m d 计算机。在整个p p u 中,我们设置了3 2 个相同的p a u ( 并行算术单 元,f a r m l e la r i t h m e t i c a lu n i t ) 阵列和8 个m e ( 运动估计协处理器,m o t i o n e s t i m a t i o n ) ,在单一控制部件控制下,对各自分配的数据进行执行同一指令所 规定的操作。x y v d s p 中,我们采用了分布式存储器的阵列构形,各p a u 内部设 有局部存储器,包括3 6 个g p ( 通用寄存器) ,即3 2 个窗口寄存器( w r x ) 和四个 固定寄存器( f r x ) ,用来存放被分布的数据,它们只能被本处理单元直接访问。 除此之外,还有1 2 个专用寄存器用于存放本p a u 的状态以及特殊功能指示。在 控制部件内还设有一个存放程序和数据的主存储器,整个系统是在控制单元控制 下运行用户程序的。在执行主存贮器中的用户程序时,所有的指令都在控制部件 下进行译码。译码后把只适合串行处理的标量或控制类指令留给控制部件自己执 行,而把适合于并行处理的向量指令“译码播送”给各个p a u ,控制让处于“活 跃”的那些p a u 去并行的执行。控制部件中的指令基本是一种单指令流的形式, 但从某种意义上讲,标量、控制类指令与向量类指令也在重叠地执行。p p u 的结 构简图如图2 2 所示。 图2 2p p u 结构简图 如图,整个并行处理部分相对独立,由译码控制单元来的控制信号分别到p a u 阵列,c r o s s b a r 和运动估计协处理器控制其根据指令完成相应的动作。整个并行 单元与数据c a c h e 的数据宽度为1 2 8 位,c r o s s b a r 按译码信号的要求将1 2 8 位数 据分配到指定的p a u 中。同时,c r o s s b a r 可以按译码信号的要求从p a u 阵列中提 取相应数据。标量处理器可以通过标量总线与p p u 中的某些寄存器交换数据,主 里视频d s p 一并行处理和运动估计部分i p 核设计 要有s b p 广播寄存器、运动估计寄存器等。 在p a u 阵列中由8 行( r o w o r o w 7 ) ,每行4 个共3 2 个p a u 组成,3 2 个p a u 中的任何一个处理器都可以对多达1 2 8 位( 1 6 个字节) 数据中的任何一个8 位( 一 个字节) 或1 6 位( 一个字) 并行操作数进行处理。对于某一个矢量处理器而言, 选择1 6 个字节中的哪些数据( 一个字节或一个字) 进行处理则由程序决定。 在每一行p a u 后跟有一个运动估计协处理器和行累加器。每一行中的四个矢 量处理器与该行的运动估计协处理器一起配合操作,可以完成8 对象素点的差的 绝对值求和,从而可以进一步实现运动估计功能。而利用一行的四个p a u 和行累 加器配合操作可以完成乘积和的操作,。从而可以进一步完成矩阵想乘功能。 通过标量i 0 总线,标量算术单元可对任何一个运动估计协处理器或任何一 个矢量处理器进行访问。 在前面我们已经分析了矢量运算所要完成的七类功能,可以看出,整个d s p 芯片的并行处理部分的操作一般来讲是分为两个部分的,一部分是什么操作,另 一部分是如何准备操作数。第一部分则基本全部在p a u 单元内部完成。后一部分 则分为寄存器操作数和内存操作数,寄存器操作数在p a u 完成,而内存部分则主 要依靠译码单元和交叉开关部分来完成。 二、p a u : 在并行单元中共有3 2 个p a u 单元,它们组成一个) t a t 四列的阵列,一行有四 个p a u ,每行后有一个运动估计协处理器和一个四输入的3 2 位行加法器。来自存 储器或寄存器的操作数被送往a l u 或乘法器。a l u 的运算结果被存储在一个通用 寄存器中,乘法器的运算结果存储在累加器中。来自寄存器的操作数经桶式移位 寄存器或饱和逻辑处理后送到存储器保存。 在每个p a u 中的主要功能模块有: 寄存器堆 1 6 位算术逻辑单元( a l u ) 1 6 位乘法器 两输入的3 2 位加法器 桶型移位器 1 、寄存器堆: 每个p a u 有一个3 2 个地址的寄存器组。寄存器组主要是在图像处理和图像识 别时保存图像数据和中间运算结果,从而增快处理速度。寄存器组是用一个三端 口s r a m 来实现的,这个三端口s r a m 有两个读口a 、b 和一个写口。a 和b 口的信 号根据a 、b 的读地址来选择数据,对寄存器的写入是利用写地址和专用的写时 钟信号来完成的。在寄存器堆中有通用寄存器:窗口寄存器组和四个固定寄存器。 除这两种通用寄存器之外,以下几种专用寄存器: 第二章视频数字信号处理器系统软硬件设计旦 a c 寄存器组: 1 :a c c u m o l 累加器0 的低十六位有效位。 2 :a c c u m o m 累加器0 的高十六位有效位。 3 :a c c u m l l 累加器l 的低十六位有效位。 4 :a c c u m l m 累加器1 的高十六位有效位。 标量广播寄存器: 通过3 2 位标量i o 总线对其进行读写,标量处理器可对p a u 单元的此寄存器 进行读写,而不用管p a d 的使能位状态,但p a u 对其读写则必须此处理器被使能。 索引寄存器: 与v i m 相结合,使v i m 对i n d e x 的窗口寄存器进行读写,在指令v r o y t t o 中, 此寄存器的低五位作为所要移动的位数。 屏蔽寄存器: 只读,高八位为高位符号扩展,低八位为低位符号扩展,作为目的操作数时, 矢量处理器完成空操作。 矢量处理器状态字寄存器,如图2 - 3 l l i r : l s1 41 31 2l i i i 98764j 10 r ,1 51 5( i jo fv p 】) i -0 【z t7( 7 ( ) 】+01 ) i i0【 1 5i i 【: , ?】 图2 - 3 状态字寄存器示意图 z 1 5 :对于1 6 位a l u 操作的零标志,对于s b c s 数据类型操作数的b 1 5 8 的 零标志。 n 1 5 :位1 5 的负数标志。 c 1 5 :位1 5 的进位标志。 。 o f l 5 :位1 5 的溢出标志。 v p e :p a l ) 的使能位。 d e u :( 用于测试,暂未用) 。 c 7 :位7 的进位,用于s b c s 数据类型。 n 7 :位7 的负数标志,用于s b c s 数据类型。 z 7 :低八为运算的零标志,用于s b c s 数据类型 o f 7 :低八位的溢出标志。 d e l :( 用于测试,暂未用) 。 0 :零,只读。 2 、算术逻辑单元: 每个p a u 有一个1 6 位的算术逻辑单元,可以支持般的算术和布尔操作。另 外,可以根据指令运算要求以字或字节方式进行运算。对于字节操作,一个1 6 旦视频d s p 一并行处理和运动估计部分1 p 核设计 位操作数被作为两个八位操作数运算。a l u 对它们进行独立和同时的操作。如图

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论