(通信与信息系统专业论文)专用集成电路并行结构研究及其在视频解码芯片设计中的实践.pdf_第1页
(通信与信息系统专业论文)专用集成电路并行结构研究及其在视频解码芯片设计中的实践.pdf_第2页
(通信与信息系统专业论文)专用集成电路并行结构研究及其在视频解码芯片设计中的实践.pdf_第3页
全文预览已结束

下载本文档

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

文档简介

浙江大学硕士学位论文摘要 摘要 目 前, 随着多媒体和宽带网络技术的发展, 对多媒体数据压缩效率和应用 的实时性要求越高。高清晰度电视的不断推广,使得实时处理高清海量级数据 的要求成为必须。 高速视频解码器是高清晰度电视接收机芯片的一个关键部分。 高速视频解码器要实现对海量级数据作实时的解码,其关键是如何提高视频解 码器的并行性。本文着重从并行处理技术为切入点对高速视频解码器并行结构 的设计方法进行了深入的研究。并以变字长解码器和去块滤波器这两种不同计 算类型模块的设计为例分析各种并行技术在细粒度开发中的应用。 任务的并行分为空间并行和时间并行。 在高速视频解码器的并行结构研究 中,首先对各种并行处理技术进行了深入的调研,对它们的特点和性能进行了 比较,指出了 各种并行处理技术在视频处理器的应用。硬件结构的并行性只有 和算法的并行性相匹配才能发挥最大效用, 通过分析当前流行的以离散余弦变 换或者整数变换和运动估计为框架的混合编码算法为基础的视频压缩算法本身 蕴涵的并行性,以及对解码任务的分析,提出了高速视频解码的多层次并行框 架。 从粗粒度到细粒度,从时间和空间两个方面对解码任务进行了并行划分。 在视频解码的各项任务中, 变字长码解码属于串行运算,分支判断运算较 多。对于这类运算,可以采用查表策略,将各种操作数的组合所产生的结果先 计算出来, 列成表格,存在存储器中。这样,串 行的运算就可用简单的并行查 表操作来代替。 在查表实现时,还可以利用并行查表,将大码表分割成几个小 的码表并行查表, 进一步提高解码的并行度。并行查表的实现还需要数据能够 并行准备,这通过对变字长码进行了改造和桶形移位器的设计来实现。所有这 些措施使得每个时钟周期能够解码一个变字长码,达到实时解码要求。 去块滤波器除了具有较多的分支判断, 还具有计算复杂性特点。分支判断 是由环内滤波器的自 适应性带来的。环内去块滤波器的自 适应性从高到低分别 体 现在块边界 级( e d g e l e v e l ) 、 条带 级( s l i c e - l e v e l ) 和样点 级( s a m p l e - l e v e l ) . 多判断多分支不利于用通用处理器可编程方式来实现。在专用滤波器电 路的设 计中可以从多个层次利用时间和空间并行设计策略进行优化。一维边缘滤波器 是环内去块滤波器的核心计算部件,通过适当的数据存储和调度使得水平滤波 和垂直滤波复用一个一维滤波器,降低了资源开销。 关键词:并行结构 高速视频解码器 变字长解码器 环内去块滤波器 浙江大学硕士学位论文 abs tr act abs tract wi t h t h e c o n t in u i n g d e v e l o p m e n t s o f m u lt i m e d i a a n d w i d e - b a n d n e t w o r k t e c h n o l o g y , m u c h h i g h e r e ff i c i e n c y i n m u lt i m e d i a d a d a c o m p r e s s i o n a n d r e a l - t i m e a p p l i c a t i o n s a r e r e q u i r e d . h i g h - s p e e d v i d e o d e c o d e r i s a k e y c o m p o n e n t o f h i g h d e f i n i t i o n t e l e v i s i o n r e c e i v e r . t h e t a r g e t o f h i g h - s p e e d v i d e o d e c o d e r i s t o d e c o d e r v e ry h i g h - s p e e d b i t s r e a l t i m e , a n d t h e k e y i s h o w t o i m p r o v e t h e p a r a l l e l i s m o f v i d e o d e c o d e r . t h i s p a p e r s t u d i e s t h e p a r a l l e l a r c h i t e c t u r e o f h i g h - s p e e d v i d e o d e c o d e r b y t h e f o r c e o f p a r a l l e l p r o c e s s i n g t e c h n i c . t h e r e a r e t w o k i n d s o f p a r a ll e l i s m : s p a t i a l a n d t e m p o r a l . i n t h e p a rt o f p a r a l l e l a r c h i t e c t u r e o f h i g h - s p e e d v i d e o d e c o d e r , w e s t u d y a n d a n a l y z e t h e p a r a l l e l p r o c e s s i n g t e c h n i q u e s in d e p t h , c o m p a re t h e d i ff e r e n c e s a n d p e r f o r m a n c e , a n d p o i n t o u t t h e i r a p p l i c a t i o n s i n v i d e o p r o c e s s o r s . o n l y w i t h t h e m a t c h o f t h e p a r a l l e l i s m o f a l g o r it h m c a n t h e p a r a l l e l a r c h i t e c t u r e w o r k b e s t . t h i s p a p e r g i v e s a m u l t i - l e v e l p a r a ll e l s t r u c t u r e o f v i d e o d e c o d e r b y a n a ly z i n g t h e p a r a l l e l i s m o f v i d e o c o m p r e s s i n g a l g o r i t h m b a s e d o n h y b r i d c o d i n g w h i c h i s w i d e l y a c c e p t e d场 m o s t v i d e o c o m p r e s s i n g s t a n d a r d , a n d d e c o d in g m i s s i o n s . fr o m t w o s i z e s , c o a r s e - g r a i n e d a n d f i n e - g r a i n e d , w e p a r t i t i o n t h e d e c o d i n g m i s s i o n s p a t i a l a n d t e m p o r a l . i n t h e a l l k i n d s t a r g e t s o f v i d e o d e c o d i n g , s e r ia l o p e r a t i n g w it h m a n y j u d g e b r a n c h e s . t h i s k i n d o f o p e r a t i n g w e l l b y c a l c u la t in g v a r ia b l e le n g t h d e c o d in g b e l o n g s t o t h e m i n m e m o ry b y t a b l e f o r m a t . a s a t a b l e l o o k - u p c a n b e u s e d t o a c c o m p l i s h a ll t h e p o s s i b l e r e s u l t s f i r s t a n d s t o r i n g p a r a l l e l t a b l e l o o k - u p o p e r a t i n g . r e s u l t , s e r i a l o p e r a t i n g c a n b e r e p l a c e d b y p a rt it i o n i n g l a r g e t a b l e s i n t o s e v e r a l s m a l l t a b l e s a n d l o o k i n g u p t h e s e t a b l e s t a b l e l o o k - u p r e a u i r e s t h a t s i m u l t a n e o u s l y c a n r a i s e p a r a l l e l i s m t h e i n p u t d a t a m u s t b ep r e p a r e d p re c o n d i t i o n c a n b e a c c o m p l i s h e d b y r e c o n s t r u c t i n g t h e v a r i a b le f u rt h e r . p a r a l l e l p a r a l l e l . t h i s a n d b a r r e l s h i ft e r . al l t h e a b o v e me a s u r e s e n s u r e t h a t l e n g t h c o d e t a b l e d e c o d e d i n o n e c l o c k , w h i c h me e t t h e d e m a n d o n e v a r i a b l e l e n g t h c o d e c a n b e s o f r e a l t i m e d e c o d i n g . d e b l o c k i n g f i l t e r . a d a p t i v i t y o f a d a p t iv i t y a p p e a r s i n t h r e e l e v e l s : c o m p l e x c o m p u t i n g i s a n o t h e r c h a r a c t e r i s t i c o f d e b l o c k i n g f i l t e r b r i n g s j u d g e b r a n c h e s . t h e b r a n c h e s a r e n t a d v a n t a g e o u s e l s : e d g e l e v e l , s l i c e - l e v e l a n d s a m p l e - l e v e l . j u d g e f o r g e n e r a l p r o c e s s o r . b u t w e c a n d o t h e s e b e tt e r b y u s e b o th te m p o r a l a n d s p a tia l p a r a lle l te c h n o lo g ie s d u r in g d e d ic a te d f ilte r c ir c u it d e s i g n . 1 - d e d g e f i l t e r i s t h e k e r n e l o f d e b l o c k i n g f i l t e r . o n l y o n e e d g e f i l t e r i s u s e d i n o u r d e s i g n b y p ro p e r d a t a s t o r a g e a n d s c h e d u l i n g , w h i c h f a c i l i t a t e s t h e re d u c i n e o f r e s o u r c e e x p e n s e s . k e y w o r d s : p a r a ll e l a r c h i t e c t u r e , i n - l o o p d e b l o c k i n g f i l t e r v i d e o d e c o d e r , v a r i a b l e l e n 口h d e c o d e r , 浙江大学硕士学位论文 第一章 绪论 第一章 绪论 第一节 并行处理技术概述 1 . 1 . 1并行性的概念 无论是数值计算、数据处理、 信息处理还是人工智能问题求解, 其中 可能包含有能同 时进行运算或者操作的成分。我们把问题中具有可以同时进行运算或操作的特性,称之为 并行性 ( p a r a l l e l i s m ) 。 开发并行性的目 的是为了 能予以 并行处理,以 提高 计算机求解问 题 的 速度。 对于并行性的 理解不能只局限于靠器件资 源的简单重复实现的并行, 应当 有更广 义的理解。比 如,当处理机内 采用的重叠, 流水工方式工作, 操作系统中 采用的多道程序 分时共行,都是广义上的并行。也就是说,只要在同 一时刻或者是同一时间间隔内 完成两 种或两种以 上性质相同 或不同的工作, 他们在时间上互相重叠,都体现了 并行性。 所以, 并 行性 包括同 时 性和并发性, 同 时性 ( s i m u lt a n e i ty ) 指的 是二个 或多 个时 间 在同 一时 刻发 生。 并发 性( c o n c u r r e n c y ) 指的 是二个或多个事 件在同 一时间 间隔内 发生。 并 行处理是指 对一种相对于串行处理的处理方式,它着重开发计算过程中存在的并发事件。 并行性可以划分为不同的等级,从不同的角度出发,等级的划分方法也不一样。典型 的从系统内部执行程序的角度划分,可分为四级,从低到高分别是: .指令内 部一条指令内 部各种操作之间的并行。 .指令之间 多条指令在某一时刻或同 一时间间隔内 并行执行。 .任务或进程之间 多个任务或者程序断之间的并行执行。 .作业或者程序之间 多个作业或多道程序之间的并行执行。 作业或程序的并行的 关键在于并行算法,即怎么将有限的 硬件、软件资源有效地同时 分配给正在用于求解一个大题目 地多个程序。 任务或进程的并行主要讨论如何进行任务分 解。 指令之间的并行主要解决和处理好指令之间 存在地相互关联。 指令内 部的并行主要取 决于硬件和组成的设计。总之,并行性由高到低反映了 硬件实现的比 例在增大。 所以,并 行性的实现也是软硬功能分配问 题。往往需要折中权衡。随着v l s i 技术的不断发展使得 硬件成本的 不断降低和软件成本的相对上升, 硬件实现的比列有增大的 趋势。 除了以 上的 划分方法, 还可以依据处理数据的并行角度或者从计算机信息的各个步骤 和阶段来划分,这里不再赘述,详见参考文献 1 1 2 3 1 . 1 . 1 . 2提高并行性的技术途径 实现并行处理的技术途径有多种多样, 方 法 2 i1k 时, t p 二 1 / 4 t , 即每个时钟周期输出 一个结果。 当流水线中 各段的执行时间不相等的情况下, 实际吞吐率为: t p= k 一一 艺 + ( n 一 1 ) x m a x ( a t , , a t , , . a t . ) ( 3一1 ) 浙江大学硕士学位论文第二章 高速视频解码器的并行结构研究 这样就会存在 “ 瓶颈” ,当n ;k 时, t p , i / m a x e t , 其中m a x a t 是各个处理时间中的 最大值。 ( 2 )加速比 为了完成一批任务, 不使用流水线所需要的时间与 使用流水线所需要的时间之比 称为 流水线的加速比。 如果流水线各个功能段的执行时间 都相等, 则一条k 段流水线完成n 个连续任务所需 要的时间为( k + n - 1 ) a t , 而如果不采用流水线, 则顺序执行完这n 个任务需要的时间是: n k a t .因 此它完成n 个连续 任务的 实际 加 速比 是: ( k x n ) / ( k + n - 1 ) . 当n k时, 在流水线的各段执行时间均相等的清况下,流水线的加速比等于流水线 的段数。 当流水线的各个功能段的 执行时间不相等时, 一条k 段流水线完成n 个连续任务的实 际加速比为: 。 、 y, a t , s=二一一一一一一一1= l 艺a t , + ( n 一 1 ) x m a x ( a t , a t z , . , * ) ( 3一2 ) 虽然流水线的段数越多,加速比会越大,但这并不意味着段数越多就越好。因为当流 水线的段数很多时,为了使流水线能够充分发挥效率,要求连续输入的任务数n 也很多。 由于这些任务之间存在数据相关、转移和中断等情况以及各单元之间的处理速度不同,连 续输入的任务数n 受到很大的限制。另一方面,由于控制的复杂性、占用硬件资源等方面 的限制,流水线的段数也不可能很多。 ( 3 )效率 流水线的效率是指流水线的设备利用率。 在时空图上,流水线的效率定义为n 个任务 占 用的时空区与k 个功能段总的时空区之比。因此, 流水线的效率包含有时间和空间两方 面的因素。 当流水线的各段执行时间均相等,输入给流水线的任务是连续的情况下,流水线的最 高效率是1 。 此时,流水线的各段均处于忙碌状态。 如果流水线的各段执行时间不相等,则连续执行n 个任务时的流水线效率为: n x 艺4 t , 二 二一一 k x 艺 , + ( 。 一 i ) x m a x ( a t , , 4 t , ,二 , * ) ( 3 一 3 ) 2 . 1 . 1 . 4流水线的设计要点 下面从结构和控制两方面来讨论流水线的设计方法。 在流水线结构设计方面,要考虑以下几点 在流水线的 每个功能单元部件的 后面都要有一个锁存器, 即 流水线寄存器, 用来 保存本段的 处理结果。 这是因为流水线中 每一段的延迟时间一般不可能都相等, 因此在段与段之间传送子任务时, 必须通过锁存器。 当某一个处理单元的执行时 间变化范围比较大时,要设置多个锁存器: 将一个任务分解成几个有联系的 子任务, 现 。因此, 每个子任务由 一个专门的处理单元来实 流水线实际上是把一个大的功能部件分解为多个独立的功能部件,并 浙江大学硕士学位论文第二章 高速视频解码器的并行结构研究 依靠多个功能部件并行工作来缩短程序的 执行时间。 在流水线中, 一个子任务通 常称为一个子过程, 或流水线中的一个功能段: 流水线最佳段数选择。通过增加流水线的段数可以提高流水线的吞吐率和加速 比。 但是,由于每个功能段的段数增多时, 锁存器总的延迟时间也将增加, 甚至 有可能出 现锁存器的总延迟时间 超过流水线本身的延迟时间。 另外, 增加锁存器 数量必然会增加流水线的价格。 因此, 在设计流水线结构时, 要综合各方面因素, 根据最佳性价比的要求来选择流水线的最佳段数; 根据 对流水线性能的分析, 可知流水线中各段的 处理时间应尽量相等, 否则会引 起 “ 断流” 、 “ 阻 塞” 等。 其中, 执行时间长的一段将成为整个流水线的“ 瓶颈, , 这时,流水线中的各个处理单元将不能充分发挥作用。解决瓶颈的 方法有两种: 1 ) 对流水线的“ 瓶颈” 部分再作细分; 2 ) 通过重复设置瓶颈功能单元,让多个 瓶颈功能段并行工作。 设计流水线的控制机制要考虑以下儿个方面: 在流水线中被处理的 任务必须是连续。 从流水线的原理来看, 它提高的是整体的 处理能力, 而没有提高单个处理单元的 处理能力。 因此只有连续不断地提供任务 才能充分发挥流水线的效率。 流水线控制的一个主要任务是尽量为流水线提供连 续的任务,以提高流水线的效率。 流水线需要有 “ 装入时间”和 “ 排空时间” , 只有流水线完全充满时,整个流水 线的效率才能得到充分发挥。 一般来说, “ 断流” 、“ 阻塞”是不可避免的,因此流水线的控制器要在发生断流 或阻塞时,尽量使流水线效率的降低幅度最小。 互 2 . 1 . 2 指令级并行技术 2 . 1 .2 . , 指令级并行的基本概念 能 并行处 理的 单 位称为 粒 度, 并 行性有 粗粒 度并 行性( c o a r s e - g r a i n e d p a r a l l e l i s m ) 和 细 粒 度并 行 性( f i n e - g r a i n e d p a r a l l e l i s m ) 之 分 6 6 6 7 。 所 谓粗 粒 度 并 行 性 是 在多 处 理 机上分别运行多个进程,由 多个处理机合作完成一个程序。细粒度并行性则是指在一个进 程中进行指令一级或操作以及的并行处理。据此, ( i n t e r - p r o c e s s o r p a r a l l e l p r o c e s s i n g ) 和处理器内 并行( i n n e r - 层次。 大规模并行处理系统n i p p . 并行处理可分为处理器间并行 p r o c e s s o r p a r a l l e l p r o c e s s i n g ) 两个 对称多处理机系统s mp 、 可扩展机群系统等都属于处理 器间并行处理系统。指令级并行处理是指处理器内的并行处理,它是处理器体系结构和相 应编译技术的结合产物。 指令级并 行的体 系结 构主 要有 超标量( s u p e r s c a la r ) 、 超流水线( s u p e r p ip e l i n e ) 和 超长指 令 字 ( v e r y l o n g i n s tr u c t io n w o r d ,v l i w ) 三 种。 超 标 量结 构是 通过 设 置多 个 功 能 部 件实 现 操 作的并行性; 超流水线结构采用时间交错的 方式进行并行操作; v l i w结构则是将多个指令 合并到一个长指令字中并行执行。 大部分r i s c c p u采用的是超标量和超流水线结构, 可编 程 媒体处理器多采用v l i w的结构。 与处理器间并行处理相比 , 指令级并行处理属于弱并行 方 式, 性能也不如大规模处理器间并行处理系统。 但只要充分利用资源, 有效组织数据流, 仍 然可以 得到很高的加速比。开发这种并行性能的前提是要对处理器的内 部结构、数据流组 织以 及指令配对规则等有很清楚的了 解。只有较好地解决数据冲突、资源冲突和转移预测 等问 题, 才能有效地提高性能。 塑坚查兰堡主兰垡堡苎 苎三皇壹堕塑塑堡塑茎堑堕塑里堕 依靠多个功能部件并行工作来缩短程序的执行时间。在流水线中,一个子任务通 常称为一个子过程,或流水线中的一个功能段; 流水线最佳段数选择。通过增加流水线的段数可以提高流水线的吞吐率和加速 比。但是,由于每个功能段的段数增多时,锁存器总的延迟时间也将增加,甚至 有可能出现锁存器的总延迟时间超过流水线本身的延迟时间。另外,增加锁存器 数量必然会增加流水线的价格。因此,在设计流水线结构时,要综合各方面因素, 根据最佳性价比的要求来选择流水线的最佳段数; 根据对流水线性能的分析,可知流水线中各段的处理时间应尽量相等,否则会引 起“断流”、“阻塞”等。其中,执行时间长的一段将成为整个流水线的“瓶颈”, 这时,流水线中的各个处理单元将不能充分发挥作用。解决瓶颈的方法有两种: 1 ) 对流水线的“瓶颈”部分再作细分;2 ) 通过重复设置瓶颈功能单元,让多个 瓶颈功能段并行工作。 设计流水线的控制机制要考虑以下几个方面; 在流水线中被处理的任务必须是连续。从流水线的原理来看,它提高的是整体的 处理能力,而没有提高单个处理单元的处理能力。因此只有连续不断地提供任务 才能充分发挥流水线的效率。流水线控制的一个主要任务是尽量为流水线提供连 续的任务,以提高流水线的效率。 流水线需要有“装入时间”和“排空时间”,只有流水线完全充满时,整个流水 线的效率才能得到充分发挥。 一般来说,“断流”、“阻塞”是不可避免的,因此流水线的控制器要在发生断流 或阻塞时。尽量使流水线效率的降低幅度最小。 2 1 2 指令级并行技术 2 1 _ 2 - 1 指令级并行的基本概念 能并行处理的单位称为粒度,并行性有粗粒度并行性( c o a r s e g r a i n e dp a r a l l e l i s m ) 和细粒度并行性( f i n e g r a i n e dp a r a l l e l i s m ) 之分( 6 6 1 1 64 ”。所谓粗粒度并行性是在多处理 机上分别运行多个进程,由多个处理机合作完成一个程序。细粒度并行性则是指在一个进 程中进行指令一级或操作以及的并行处理。据此,并行处理可分为处理器间并行 ( i n t e r - p r o c e s s o rp a r a l l e lp r o c e s s i n g ) 和处理器内并行( i n n e r - p r o c e s s o rp a r a l l e lp r o c e s s i n g ) 两个 层次。大规模并行处理系统m p p 、对称多处理机系统s m p 、可扩展机群系统等都属于处理 器间并行处理系统。指令级并行处理是指处理器内的并行处理,它是处理器体系结构和相 应编译技术的结合产物。 指令级并行的体系结构主要有超标量- ( s u p e r s c a l a r ) 、超流水线( s u p e rp i p e l i n e ) 和超长指 令孚( v e r yl o n gi n s t r u c t i o nw o r d ,w i w ) 三种。超标量结构是通过设置多个功能部件实现操 作的并行性;超流水线结构采用时间交错的方式进行并行操作;v l i w 结构则是将多个指令 合并到一个长指令字中并行执行。大部分i l i s cc p u 采用的是超标量和超流水线结构,可编 程媒体处理器多采用。1 w 的结构。与处理器间并行处理相比,指令级并行处理属于弱并行 方式,性能也不如大规模处理器间并行处理系统。但只要充分利用资源,有效组织数据流,仍 然可以得到很高的加速比。开发这种并行性能的前提是要对处理器的内部结构、数据流组 织以及指令配对规则等有很清楚的了解。只有较好地解决数据冲突、资源冲突和转移预测 等问题,才能有效地提高性能。 1 7 塑笙查兰堡主兰垡丝壅 苎三兰堕坠型型塑墅塑里丝堑! 塑! 堕 衡量指令级并行性的一个重要指标是c p i ( 2 ”,它定义为流水线中执行一条指令所需要 的机器周期数。在r i s c 处理机中,大多数指令的c p i = i ,但是有些复杂指令需要几个机 器周期才能完成,它们的c p i 1 。显然提高指令并行性,追求c p i i 成为人们努力的目标。 指令流水处理机比传统的串行处理机由较高吞吐率,其原因在于多条指令可以在流水 线的不同段中同时运行。如果要进一步提高流水线的吞吐率,必须使得c p i i ,也即需要 开发指令级并行度( i n s t r u c t i o nl e v e lp a r a l l i s m ,i l p ) 瑚,它是定义为在一个时钟周期内流 水线e 流出的指令数。 ( a ) 理想r i s c 机( 基准标量机)( b ) 超标量机 ( c ) 超级流水机( d ) 超标量超流水机 图2 4四种不同类型处理机的时空图和i l p 不能使c p i i 的直接原因是流水线每次只能流出一条指令。要做到c p i i 。如果用一台k 段流水线的普 通r i s c 标量流水处理机做比较基准,则四种不同类型的处理机的时空图和i l p 如图2 4 所示,其主要性能比较见表2 1 。 表2 1四种不同类型处理机的性能比较 、机器类型普通标量 超标量 超流水线超标量超流水 性能处理机处理机处理机线处理机 机器流水线周期t 个时钟周期l n 个时钟周期1 n 个时钟周期1 n 个时钟周期 同时发射指令条数1 条 1 条1 条 1 条 指令并行度( i l p ) ln 国际上自9 0 年代以来计算机体系结构方面如超标量、v l i w , s i m d 、超级流水线、多级 高速缓存技术得到了迅猛的发展。在目前的微处理机中,大多数都属于超标量处理机。例 如,i n t e l 公司的i 8 6 0 、p e n t i u m ,m o t o r o l a 公司的m c 8 8 1 1 0 i b m 公司的p o w e r6 0 0 0 等 都是超标量处理机。s g i 公司的m i p sr 5 0 0 0 、r 1 0 0 0 0 等都是超流水线处理机。d e c 公司的 1 8 塑翌查兰堡圭堂鱼堡奎 篁三童壹望塑塑坚里矍堕苎堡堕塑型堕 a 1 p h a 是超标量超流水线处理机。大部分r i s cc p u 采用的是超标量和超流水线结构,可编 程媒体处理器多采用v l i w 的结构。 2 1 2 2 影响指令级并行处理的主要因素 理想状态的标量指令流水线,各个指令的取指、译码、执行和回写等步骤可以没有间 断地重叠操作,达到每个时钟周期流出流水线一条指令。但实际的执行情况会因为多种原 因造成流水线出现停顿( s t a l l ,也称为阻塞) ,被称为流水线冒险( h a z a r d ) ,也就是指在指令 流中一条指令不能在指定的时钟周期内执行的情况。所以,殴计指令流水线的一个土要问 题就是要保持流水线具有稳定的指令流出率。造成标量指令流水线停顿的原因同样出现在 超标量处理器中,同时由于有多条指令被并行处理,这些问题更加严重、解决起来更加困 难。总的来说,影响指令级并行处理的主要要原因是数据相关、控制相关和资源冲突;另 外,当前随着处理器工作速度与主存储器读写速度的差距加大。存储器访问也成了进一步 提高指令级并行度的瓶颈。 1 1 数据相关( d a t ad e p e n d e n c e ) 采用指令流水线后,改变了指令对操作数的读写顺序,使得不再是非流水线所见到的 串行执行顺序。数据相关就是指由于指令的并行执行,引起的一条指令的执行需要依靠前 面指令执行结果的情况。换句话说,在执行本条指令的过程中,如果用到的操作数、变址 偏移量等正好是前面指令的执行结果,则必须等待前面的指令执行完成,并把结果写到主 存或通用寄存器中之后,本条指令才能开始执行。这种相关就称为数据相关( 数据依赖) , 也被称为数据冒险( d a t ah a z a r d ) 。 解决数据相关的最直接的办法是采用后推法,即遇到数据相关时,就停顿后继指令的 执行,直到前面指令的结果已经生成。另一种方法就是采用定向技术( 旁路技术:就是使用 专门设景的通路将产生的结果直接送往需要它的地方而不是通过寄存器再访问) 数据相关冲突可分为r a w ( r e a da h e a do f w r i t e ) w a r 、w a w 三种类型。在按序流 动的流水线中,只可能出现r a w 相关。可通过定向传送的方法解决。在非按序流动的流 水线中,则各种相关都可能发生。在r i s c 机流水线中,还存在一种装入延迟。解决这种 装入延迟的办法是采用硬件联锁或重排指令的优化编译方法。 2 ) 控制相关( c o n t r o ld e p e n d e n c e ) 控制相关是指由无条件转移指令、条件转移指令、子程序调用和返回指令,中断等引 起的前后指令的互相依赖关系,也被称为过程相关( p r o c e d u r a ld e p e n d e n c e ) 或控制冒险 ( c o n t r o lh a z a r d ) 。例如,在条件转移指令之后的指令就“控制相关”于转移指令,必须等 到转移指令执行结束才能执行。这种控制相关影响标量流水线,但对于超标量流水线来说, 问题就更严重,因为它将使大量的并行执行机会丧失。 转移指令,尤其是条件转移指令是影响超标量处理器性能的关键。尽量减少转移指令 所带来的损失,是当前高性能处理器设计中的关键问题。为了尽可能发掘程序中的并行性, 提高处理器性能,研究人员提出了很多分支( b r a n c h ) 处理策略。 3 ) 资源相关( r e s o u r c ed e p e n d e n c e l 资源冲突是指两个或多个指令同时使用( 竞争) 同一个资源,例如存储器、c a e h e 、总线、 寄存器和功能单元。由于存在资源冲突,硬件就无法支持所有里叠执行的指令组合,某条 或某几条指令就必须等待功能单元( 即资源) 可以使用才能执行下去。这种情况也被称为 结构冒险( s t r u c t u r a lh a z a r d ) 。 1 9 浙江大学硕士学位论文 第二章高速视频解码器的并行结构研究 资源冲突的原因一是某些功能单元没有完全流水化,使得使用未流水线化功能单元的 指令不能以每个时钟周期的速率执行:二是某些功能单元没有被复制足够数量,使得有些 指令组合无法同时操作;例如处理器只有一个寄存器写端口,而需要同时执行两个写操作, 就会产生资源冲突。在超标量处理器中,通常设置多个独立的执行部件,例如整数计算单 元、浮点计算单元、存储数据单元等,这样可以减少资源冲突。同时,这些执行部件可以 采用流水线结构,进一步降低冲突的可能性。 由于一般标量应用程序能够将相同操作的指令均匀分布在程序中,因此只要超标v 处 理器中指令流水线的条数和执行部件的个数等设计合理。一般标斌应用程序能够在超标最 处理器上得到高效率的运行。 2 1 2 3 超标量流水处理机 1 9 8 7 年提出的超标量( s u p e r s c a l a r ) 超标量指令流水线,是改善基本指令流水性能的 一条重要途径,它依赖于空间的并行度。从提出到至今为止,具有多指令发送能力的超标 量处理器获得了广泛的应用,目前大多数的计算机用于仍是基于标量运算,因此超标量方 法代表了高性能通用处理器的发展方向。 在一个时钟内对多条指令进行并行处理的流水线技术称之为超标量流水线处理器简称 超标量技术或超标量处理器。一般超标量处理器,在一个时钟内可以发射1 ,8 条指令。通 常要求指令是不相关的,并要满足一些约束条件,例如每个时钟存储器访问不能多于一个。 如果指令流中某些指令是相关的或不符合发射标准,则必须依次发射指令,因此,发射的 速率是可变化的。与此相反,后文将要讲述的v l i w 结构孛,由编译完成建立一个指令包, 它们被同时发射且硬件不能作任何有关多发射的动态修改。这样我们可以认为超标量处理 器具有动态发射能力,而v l i w 处理器只有静态发射能力,因而超标量技术可以采用静态 和动态调度。 在2 1 2 2 中已经指出限制指令级并行性的三种因素:结构相关、数据相关和控制相 关。在超标量流水中,上述相关的存在,使得问题变得更加复杂化。因此超标量流水线的 调度,即指令发射和完成策略,对于充分利用指令级的并行度,提高超标量处理器的性能 非常重要。 指令发射( i n s t r u c t i o ni s s u e ) 是指启动指令进入执行段的过程。指令发射策略是指指 令发射所用的协议或规则。当指令按程序的次序发射时,称之为按序发射。为改善流水性 能,可以将存在相关性的指令推后发射,而将后面无相关的指令提前发射,即不按程序原 有次序发射指令,称之为无序发射。类似的,指令的完成也有按序完成和无序完成之分。 一般而言,无序发射总导致无序完成。超标流水共有三种调度策略:1 ) 按序发射按序完成: 2 ) 按序发射无序完成;3 ) 无序发射无序完成。无论那种调度策略,都要保证程序运行的 最终结果是正确的。这里不予讨论,有兴趣可见文献【1 】【2 3 】。 2 1 2 4 超流水线处理机 超流水线是指把一条指令的流水线段再细分成更多的流水线段。这样原时钟周期的几 分之一的时间间隔就可以发射条指令,并从流水线流出一个结果。这种在一个时钟周期 内能够分时发射多条指令的处理机称为超流水线处理机。另外,一般也把指令流水线的段 数大于8 的流水线处理机称为超流水线处理机。总之,超流水线处理机仍然是基于时阃并 行性原理,只增加少量的硬件,通过各部分硬件的充分重叠工作来提高处理机的性能。典 2 0 浙江大学硕士学位论文 第二章高速视频解码器的并行结构研究 型的超流水线处理机的时空图如图2 4 ( c ) 。 与2 1 2 3 讨论的超标量流水处理机不同,超标量设计主要依靠开发空间并行性,让 多个操作并发地在分离地硬件上运行,用复制硬件资源地办法来实现。而超流水线设计则 是着重开发时间并行一胜,在共享硬件部件上重叠多个操作,可通过使用较快时钟周期地流 水线执行部件来实现。通常超标量处理机要用更多地晶体管,而超流水线设计需要更快地 晶体管以及更优地电路设计。使时钟错位地影响减低到最少。由于微电子技术在晶体管尺 寸上地技术改进和突破都要快于在速度上地技术进步,晶体管地尺寸也越来越小,集成度 越来越高,现在已经达到了6 5 纳米技术。因此,超标量技术更适合现代集成技术,主流微 处理器基本上都是采用超标量流水线技术。把二者有机结合起来地超流水线超标量处理机, 能更大限度地开发计算机地并行性,同时也对硬件在速度和集成优化上提出了更高的要求。 2 1 2 5 超长指令字处理机 1 9 8 3 年,f i s h e r 受水平微代码思想启示,提出了超长指令字( v e r yl o n gi n s t r u c t i o nw o r d v l i w ) 体系结构。它以一条长指令来实现多个操作的并行执行,以减少对存储器的访问, 从而达到很高的运行效率。这种体系结构既可以提高较高的指令并行度,同时又具有简单的 硬件译码和控制逻辑等优点。 图2 5 v l l w 处理机结构模型 图2 - 6 v l i w 处理机的时空图 v l i w 结构是将水平微码和超标量处理这两种普遍采用的概念结合起来产生的, v u w 方法的思路是:由编译程序在编译时找出指令潜在的并行性,进行适当的调度安排, 把多个能并行执行的操作组合在一起,成为一条具有多个操作断的超长指令。这条超长指令 去控制v l l w 处理机中多个互相独立工作的功能部件,每个操作段控制一个功能部件,相当 于同时执行多条指令。典型地v l l w 机的机器指令长度由数百位,如图2 ,5 和圈2 6 分别给出 了v l l w 处理机的机构模型和流水线时空图。它是把一个足够长的指令分割成多个字段,没 2 1 塑堡查兰堡主兰堡堡茎 蔓三童童望堡塑堡墨塑茎堑笙塑堕塞 个字段可以独立的控制各自的运算器、寄存器、互联网罗和存储器等。虽然这种字段控制方 式是水平微指令方式派生出来的,但是比水平微指令控制的运算器多,所以字段指令的功能 也强。v l i w i 作方式与前面提到的超标量处理很相似,但是又与超标量处理有区别的。 从指令系统上看,v l i w 的设计思想与水平微代码类似。v u w 机器具有较长的机器指 令字,机器指令字具有固定的格式( 一种或者多种) ,每条指令字中包含多个独立的字段用 以控制不同的操作。通常,编译过程需要将能够执行的操作拼装成超长指令字,这是v l i w 编译系统实现过程中的一个重要任务。 从结构上讲,v l i w 与超标量的r i s c 处理机类似,机器内部提供多个可以并行的冗余的 功能部件,所有功能部件共享使用大型寄存器堆,c p u 在一个时钟周期内执行一条机器指令, 但是可以同时发射其中的多个操作。与传统的r i s c 技术不同的是v l i w 采用静态指令调度技 术,它的流水线是非保护的,没有用于防止资源冲突和隐藏流水线延时的硬件互锁机制。它 完全依赖编译系统静态地分析程序中指令的依赖关系,来决定指令是否可以并行执行以及执 行顺序。而超标量的r i s c 处理机是在指令运行时由硬件来进行并行检测和指令调度。因此 v l i w 机并行性能的发挥很到程度上依赖预1 w 编译系统的实现,支持此结构的编译系统 应该在保证并行执行的操作不会超过机器提供的并行资源最大限度的前提下,尽可能地提高 指令地并行度,这是v l r w t a 译系统实现地又一个重要任务。 综上所述,v l i w 体系结构的特点主要包括: 1 ) 超长指令的生成是由编译器来完成,由它将串行的操作顺序合并为可并行执行的指 令序列,以最大限度的实现操作并行性。 2 )简单的硬件结构。由于并行性的抽出是在编译时进行的,那么在运行时就不需要复 杂的控制,所以硬件结构可咀简单。所以v l i w 与超标量结构处理机相比较硬件 相对简单、廉价。 3 )单一的控制流,只有一个控制器,每个时钟周期启动一条超长指令。 4 ) 超长指令被分成多个控制字段,每个字段直接独立的控制每个功能部件。 5 )适合细粒度的并行处理。在v l i w 中,有多条总线连着运算器,因此可以用指令字 段直接控制这些总线控制器且通信开销可以很小。v l i w 方式适合与面向功能级的 低级运算的细粒度并行处理。 在视频处理应用中,

温馨提示

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

最新文档

评论

0/150

提交评论