已阅读5页,还剩54页未读, 继续免费阅读
(电路与系统专业论文)微处理器多媒体部件的设计与验证.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 论文题目:微处理器多媒体部件的设计与验证 学科专业:电路与系统 研究生:李洁 指导教师:余宁梅教授 答辩日期: 摘要 基于多媒体技术的多媒体部件己被广泛地应用到各种新型的微处理器中,由于 多媒体指令数据并行运算的特点,要求微处理器在对多媒体信息的处理时能够增强处理的 并行性。因此设计满足要求的多媒体部件是微处理器设计的关键。 本文首先对多媒体部件的所有指令进行了功能分析,确定了多媒体部件各个模 块的实现方案,最后对设计的多媒体部件进行了功能验证与时序综合。论文具体研 究工作如下: 1 ) 本文在经过充分分析多媒体指令功能的基础上,选择了一种合理的算法,确定了 各个模块的实现方案。 2 ) 多媒体部件各个模块的r t l 代码实现及v c s 的功能仿真。 3 ) 完成多媒体部件的c m o d u l e 的编写。 4 ) 完成多媒体部件的模块级简单功能验证及基于功能覆盖率的测试。 本文所设计的多媒体部件分成5 级流水站,使用d e s i g nc o m p i l e r 工具进行逻辑综合, 结果显示其工作频率能达到3 0 0 m h z ,达到了设计初预定的目标。在第五章对浮点数进行 了研究,并且设计实现了浮点比较指令。 关键词:多媒体部件;m m x 技术;功能覆盖率;d c 综合; 2 一,c 8 一盐 恻 砸 洲4_ 一1 2 雪旦、i i釜 名名 签签 a b s t r a c t t i t l e :t h ed e s i g na n dv a l i d a t i o no ft h em u l t i m e d i ac o m p o n e n t m a j o r :c i r c u i t sa n ds y s t e m s n a m e :l ij i e s i g n a t u r e :l 丁 e s u p e n r i s o r :p r o f n i n g m e iy u s i g n a t u 代:席i l 拟盼协 a b s t r a c t m u l t i m e d i ap a r t sb a s e do nm u l t i m e d i at e c h n o l o g yh a sb e e nw i d e l ya p p l i e dt oa l lk i n d so f n e wm i c r o p r o c e s s o r s ,b e c a u s eo ft h ep a r a l l e lc o m p u t i n gf e a t u r eo fm u l t i m e d i ai n s t r u c t i o nd a t a r e q u e s t st oe n h a n c et h ep a r a l l e lp r o c e s s i n gw h e nm u l t i m e d i ai n f o r m a t i o no fm i c r o p r o c e s s o ri s p r o c e s s i n g s od e s i g i n gam u l t i m e d i ap a r tm e a tt h er e q u i r e m e n t si st h ek e yo fm i c r o p r o c e s s o r d e s i g n t h i sp a p e ra n a l y s i st h ef u n c t i o no fa l lt h em u l t i m e d i ai n s t r u c t i o n sf i r s t ,t h e nd e t e r m i n e d e a c hm o d u l ei m p l e m e n t a t i o ns c h e m eo ft h em u l t i m e d i ap a r t s ,t h el a s ti sv a l i d a t ea n dt i m i n g c o m p r e h e n s i v et h ef u n c t i o nd e s i g no ft h em u l t i m e d i ap a r t s t h ep a p e rc o n c r e t er e s e a r c hw o r k a r ea sf o l l o w s : 1 ) t h i sp a p e ri naf u l la n a l y s i st h ef u n c t i o no fm u l t i m e d i ai n s t r u c t i o n , a n dm a k ea r e a s o n a b l ec h o i c eo ft h ea l g o r i t h ma n dd e t e r m i n e dt h em o d u l e ss c h e m e 2 ) t h er t lc o d eo ft h em u l t i m e d i ap a r t sw e r er e a l i z e da n dm a d eu s eo fv c sf o r f u n c t i o n a ls i m u l a t i o n 3 ) c - m o d u l ef o rm u l t i m e d i ap a r t sw a sp r e p a r e d 4 ) w ec a r d e do u tt h em o d u l e - l e v e lv e r i f i c a t i o na n dt e s tf o rm u l t i m e d i ap a r t sb a s i n go n f u n c t i o n a lc o v e r a g e t h eo fm u l t i m e d i ap a r t st h i sa r t i c l ei sd e s i g n e di n t of i v ep i p e l i n es t a t i o n s ,s y n o p s y sd ci s u s e df o rl o g i cs y n t h e s i sa n dt h er e s u l t ss h o w e dt h a tt h eo p e r a t i n gf r e q u e n c yc a nr e a c h3 0 0 m h z , a c h i e v i n gt h ei n t e n d e dg o a lo ft h ee a r l yd e s i g n i nt h ef i f t hc h a p t e r ,f l o a t i n g p o i n tn u m b e ra r e s t u d i e d ,d e s i g na n dr e a l i z et h ef l o a t i n g - p o i n tc o m p a r i s o ni n s t r u c t i o n s k e yw o r d s :m u l t i m e d i ac o m p o n e n t ;m m xt e c h n o l o g y ;f u n c t i o n a lc o v e r a g et e s t ;d cf o rl o g i c s y n t h e s i s 西安理工大学硕士学位论文 i v 第一章绪论 1 绪论 1 1 课题研究背景与意义 随着通信、计算机与网络技术的迅速发展,多元化的信息技术在我国经济发展 中占据了非常重要的地位。微处理器作为通信、计算机、网络等领域技术发展的代 表,其应用也越来越广泛。无论是普通的电子产品还是高性能的网络处理器,或是 在航空航天等国防技术的特殊领域,高性能微处理器的设计已经成为大规模集成电 路设计的核心内容。 微处理器的设计是一个与超大规模集成电路、半导体工艺、计算机体系结构等 都密切相关的重要技术【2 】。但是在我国这几个方面都还有待发展,与世界领先水平 还有很大差距。到目前为止几乎所有的国产c p u 在交通监控、银行、网络计算机等 领域的研究水平还远远不如国外i n t e r 和a m d 。因此我国的高性能通用微处理器芯 片还要依赖进口,这意味着我国信息产业技术的发展仍然要受制于国外。因此为了 适应市场需求我们必须研发具有自主知识产权的高性能微处理器。2 0 0 3 年数字多媒 体芯片“星光五号 由中星微电子发布,并且宣称已被惠普、三星、罗技等国际知名 品牌应用,这是中国芯片行业历史性的突破。2 0 0 4 年清华大学公布了其研发的3 2 位微处 理器t h u m p 芯片,功耗1 1 7 m w m h z ,芯片颗粒4 0 片,最高工作频率可达5 0 0 m h z ,这 意味着我国在c p u 自主研发领域迈出了实质性的一大步【3 l 。还有中科院研究的三代龙芯, 龙芯一号c p u 其i p 核是具有嵌入式的3 2 位处理器内核,采用m i p s 指令集,可对3 2 位 整数单元和6 4 位浮点数单元实现了七级流水操作1 4 】。龙芯二号c p u 采用先进的四发射超 标量超流水线结构,最高工作频率可达到1 0 0 0 m h z ,其功耗为3 - 5 瓦,在性能方面远低 于国外的同类芯片,但是在国内却是威盛处理器的2 3 倍,已达到中等p e n t i u m 4 水平p j 。 龙芯三号是一款4 核微处理器,采用6 5 n m 的工艺,其主频为1 g h z ,晶体管数目可达到 4 2 5 亿个1 6 1 。2 0 1 0 年4 月,国内第一个万亿次高性能计算机“k i ) 6 0 ”诞生了,它是由中国 科学技术大学和深圳大学将“龙芯3a 和国内其他设备与技术联合研制成功,它的成功 确立了我国高性能处理器在高端行业的重要地位1 7 j 。 近年来由于人们对c p u 高性能和工艺技术发展的不懈追求,不断的推出了新的微处 理器体系结构、新算法和新工艺下的逻辑电路。随着多媒体信息技术、3 d 图象技术的 飞速发展,微处理器在处理多媒体信息方面的性能也在日益增强。多媒体处理通常指 对多媒体信息如文本,2 d 3 d 图形,音频和视频对象等数据的捕捉、运算、存储、传输等 操作i 引。多媒体标准一般有m p e g l ,m p e g 2 、m p e g 4 ,m p e g 7 ,h 2 6 3 ,以及j p e g 都 要求对复杂的媒体信息进行实时处理,对大量的动态视频数据进行并行计算。多媒体数据 的实时处理一般都采用专用的芯片和可编程芯片构成的加速卡,例如可编程信号处理器 ( d s p ) 1 9 】,媒体加速器,还有一些专业芯片( m p e g 编解码芯片) ,以及由这些专用处 西安理工大学硕士学位论文 理器构成的插板( 卡) ,如音频卡、视频卡、电影回放卡、3 d 图形加速卡和网络卡等。随 着计算机中的芯片和插卡越加越多,不仅降低了可靠性,而且由于地址和中断等的冲突, 反而使得机器在使用和安装方面逐渐复杂。m m x ( m u l t i m e d i a e x t e n s i o n ) 技术的提出, 首次将s i m d ( s i n g l ei n s t r u c t i o nm u l t i p l ed a t a ,单指令多数据) 的设计思想引入了处理器, 增强了c p u 处理多媒体数据并行处理的能力。它利用多媒体数据精度低,字长短的特点 把6 4 位的数据分为8 组8 位、4 组1 6 位和2 组3 2 位的数据同时处理,实现了数据的并 行计算【l o 】。目前几乎所有的处理器制造商都在他们的处理器中增加了多个多媒体部件, 以提高微处理器在多媒体处理方面的能力。这些多媒体部件中的核心代码具有高度并行 性,且对数据的计算精度要求低。因此这些多媒体部件都是在已有的处理器资源基础上, 通过一系列整合形成了向量部件。 增加了多媒体部件的微处理器和一般的通用微处理器的功能基本一样,由于多媒体指 令要求数据并行运算的特点,因此要求微处理器在对媒体信息的处理时能够增强处理的并 行性,使得对多媒体处理的速度得到提高。那么如何设计出高性能的多媒体部件,又成为 微处理器设计的关键。本论文为研究室课题应用于视频编码芯片的6 4 位r i s c 微处理 器设计的一个子课题。研究目的意在设计满足时序约束和设计约束的高性能多媒体部件。 1 2m m x 技术的发展 1 9 9 7 年i n t e r 公司推出的m m x 多能奔腾处理器芯片,它的时钟频率从初始的1 6 6 m h z 到最后达到2 0 0 m h z i l 】。主要用作提升多媒体数据的处理能力,但是由于m m x 指令集 与x 8 7 浮点运算指令不能同时执行,必须做密集式的交错切换才可以,因此当时这 款芯片的应用并不是很广泛。 1 9 9 8 年,a m d 公司购买了m m x 指令集并进行了扩展,扩展后的指令集定义 为3 d n o w ! 1 2 】,它的特点是增加了2 l 条浮点运算指令,并且首次应用在k 6 2 处理器上。 1 9 9 9 年i n t e l 公司首次推出了s s e ( s t r e a m i n gs i m de x t e n s i o n s ,单指令多数据流扩展 指令系统) 指令集,并将它应用于p e n t i u m 处理器中,这个指令集的推出不仅提升了多媒 体信息的处理能力,尤其是对电脑对高级图形的操作、三维动画的处理、和视频音频语音 识别这几个方面,更重要俄是解决了m m x 指令集不能与浮点运算指令同时操作的困难 【1 3 】。因此这款芯片的设计在图像处理、浮点运算、3 d 运算、视频处理、音频处理等 诸多方面都对多媒体应用起到强化作用。 1 9 9 9 年,m o t o r o l a 公司在m o t o r o l a7 4 0 0 ( 0 4 ) 处理器上加入了a l t i v e c 指令集【1 4 儿1 5 j , 这个指令集一共有1 6 2 条指令,它不仅能够更快速的处理多媒体信息,而且可以加速几乎 全部数据的并行性操作。 2 0 0 0 年,i n t e l 公司在奔腾处理器中,实现了s s e 2 指令集,共1 4 4 条指令,该 指令集首次将6 4 位的定点指令s i m d 指令和2 个6 4 位双精度浮点指令扩展为1 2 8 位 1 6 1 。 2 0 0 4 年i n t e l 首次将s s e 3 ( s t r e a m i n gs i m de x t e n s i o n s3 ) 指令集用以p r e s c o t t 为 2 第一章绪论 核心的p e n t i u m4 处理器。它比s s e 2 指令集多了1 3 条s i m d 指令。主要用来改进线程同 步和特定应用程序领域。不见能够大量执行d s p 和3 d 性质的操作,而且在多媒体游戏 方面有更出色的表现。新增的指令主要强化了浮定转换功能、复杂运算、视频编码、及其 动画游戏的能力。 目前具有m m x 技术的微处理器都可以满足许多应用程序例如高级媒体、通讯和图 像处理中对段数据实现循环操作的复杂算法的需求。一条m m x 指令可以同时对8 个字 节进行运算,特别适合数据量大的图像处理、三维动画、m p e g 视频、音乐合成、语音 识别和虚拟图像数据的处理,极大的提高了多媒体处理的功能。除在性能方面得到提升外, m m x 技术还为其他功能增加了附加的处理器周期,使过去依赖额外硬件的应用,现在用 软件就可以执行【1 7 】。对于某些特殊功能,m m x 技术可以使处理器性能改进的程度,相当 于一个新一代的处理器所带来的性能提高。 1 3m m x 指令的特点 m m x 技术的基础是单指令多数据流s i m d 技术。其主要特点体现在数据类型上,多 媒体指令的操作对象为8 * 8 位宽,4 1 6 位宽,2 * 3 2 位宽,“位宽的数据,因此属于多类 型操作数。图1 1 是多媒体指令的数据结构图。在数据处理上要求并行处理,但其运算精 度却不高。根据指令的不同,可以对这些8 * 8 位宽,4 1 6 位宽,2 * 3 2 位宽,6 4 位宽的数 据同时操作,图像处理中可以同时处理8 个像素( 8 位色,r g b ,每像素一个字节) ,音 频系统中可以同时处理4 组数据。 从多媒体指令的后缀可以明显区分指令数据的位宽: b - b y t e8 位宽 h h a l f - w o r d1 6 位宽 w - - w o r d3 2 位宽 d 一d o u b l e - w o r d6 4 位宽 u u n s i g n无符号数据 s s i g n e d 或s a t r a t i o n有符号数或饱和算法 3 西安理工大学硕士学位论文 2 奉3 2 6 4 图l 一1 多媒体指令的数据结构 f i g 1 一ld a t as t r u c t u r eo ft h em u l t i m e d i ai n s t r u c t i o n 1 4 论文的主要工作 本课题所研究的微处理器,是一个通用6 4 位r i s c 结构,四发射的超标量和超流水 线的微处理器,采用乱序执行和先进的c a c h e 设计等技术来提高流水线的速度。处理器共 包括5 个功能部件,除完全兼容m i p s 定点和浮点指令集外,还通过复用浮点部件及其浮 点寄存器增加了6 4 位定点的多煤体指令集。本文分别从算法设计、逻辑结构、验证与综 合这三个方面对多媒体部件进行了研究。主要研究内容有以下几点: ( 1 ) 算法设计 在多媒体部件进行电路设计之前首先要研究算法,算法设计是整个设计的核心内容, 决定着整个设计的命脉。先进的算法是提高整个部件性能最优、最高效的方法。本文所涉 及的多媒体指令一共8 0 条,按照多媒体指令的功能将多媒体部件分为四个模块设计,最 后再由一个t o p 模块完成四个模块的打包。再对每个模块的指令进行分析后,分别采用优 化的算法结构确定了每个模块的设计流程。 一 ( 2 ) 逻辑结构 逻辑结构是整个设计的核心。优化的电路结构在对微处理器的延迟、面积方面都起到 决定性作用。在确定了有效的算法后,就需要考虑模块的逻辑结构。由于指令繁多,不同 的指令具有相同的基本功能,根据这一特点,对指令进行了电路复用。并且在复用电路里 设计了指令的o p c o d e 即指令编码,用以区分不同的指令,利用这些指令编码的某一位或者 某些位作为复用电路里的控制信号。 ( 3 ) 代码实现 4 第一章绪论 采用v e r i l o gh d l 语言实现了每个模块的r t l 代码。并且完成了每条指令的c m o d u l e , 实现了指令的c 建模。用c 语言编写了测试向量集,利用嵌入式汇编实现了指令的编译工 作。 ( 4 ) 验证与综合 本文对多媒体部件的每个模块的指令功能先进行简单的功能验证,再嵌入功能覆盖率 代码对每个模块进行功能覆盖率测试,确保每个测试通道的覆盖率达到1 0 0 。在确保模 块功能测试完备的条件下对每个模块进行了d c 综合,查看d c 综合报告,对不满足时许 约束条件的模块进行了延迟调优。最后协调多媒体部件与其他部件的端e l 连接,并于其它 部件一起进行联调。 1 5 论文的结构安排 本章阐述了课题的研究背景与意义,总结了微处理器的发展现状,分析了多媒体部 件设计的必要性,在此基础上提出了研究课题,并且给出了本课题的主要研究工作和论文 的结构安排。 第二章介绍多媒体部件的结构和连接端口,分析了多媒体指令的特点,列出了本文所 要实现的多媒体指令,并对指令的功能进行了分析。 第三章分为四部分,每部分一个模块,对每个模块的指令按照其功能和数据特点制订 了o p c o d e ,并且对每个模块的实现算法进行了介绍,最后确定每个模块的实现策略和逻 辑结构。 第四章对每个模块的r t l 代码进行了验证与综合。验证工作分为两方面:一是利用 一些简单的测试激励对模块的基本功能进行验证。二是对模块进行通道划分,编写覆盖率 代码,并进行功能覆盖率测试。最后对每个模块进行d c 综合,查看是否满足时许约束要 求,并进行关键路径的延迟调优。 第五章对浮点比较指令的功能进行了分析,确定了其实现方案,并且对r t l 代码进 行了v c s 仿真及d c 综合。 第六章是对本论文的总结。 西安理工大学硕士学位论文 6 第二章多媒体部件相关技术研究 2 多媒体部件相关技术研究 在高性能通用微处理器中,多媒体部件是一个必不可少的功能运算单元。它不仅能够 提高微处理器在多媒体信息方面的处理速度和效率,还增强了微处理器的通用性,满足了 人们在2 d 3 d 图形、图像处理、视频压缩、语音采集等方面的需求。本章首先对微处理 器作了简要的介绍,然后介绍了微处理器的多媒体部件的整体结构和流水线结构,最后介 绍了微处理器多媒体部件所支持的m m x 指令。 2 1 微处理器的简单介绍 本文研究所设计的微处理器是一款高性能的通用微处理器,采用o 1 3 u m 的c m o s 工 艺库,最高工作频率3 0 0 m h z ,主要采用r i s c 体系结构,除完全兼容6 4 位m i p s 指令 集外,还增加了8 0 条6 4 位定点多媒体指令。包含了多种微处理器的主要技术特征,并且 采用了许多性能提升措施: ( 1 ) 多取值多译码; ( 2 ) 多发射超标量结构; ( 3 ) 5 级流水线; ( 4 ) 乱序执行顺序写回; ( 5 ) 分开的1 6 k 指令c a c h e 和1 6 k 数据c a c h e : ( 6 ) 6 4 位数据总线; ( 7 ) 流水线总线操作周期: 微处理器流水线结构如图2 1 所示。主要由以下功能部件组成: a l u l l ja l u 2i - f 舢l - 写回 i 访存i : 7 l :l 多媒体部件 二= 图2 - 1 微处理器流水线结构 f i g 2 - 1p i p e l i n es t r u c t u r emi c r o p r o c e s s o r 取址:根据p c 中存放的指令地址,将指令由内存取到指令寄存器中,与此同时,p c 中的地址或自动加l 或由转移指针给出下一条指令的地址,p c 是用来存放下一条指令的 7 西安理工大学硕士学位论文 地址。 译码:根据取址模块取出来的指令,按照指令定义格式分别译出每条指令的操作码、 源操作数、目的操作数、跳转指令的目标地址、移位情况及执行怎样的功能函数。 发射:主要是将当拍译码出来的数据准确的送往相应的计算单元进行计算。其中包括: 判断当前数据是否该传送,是否准确的送往f u 入口寄存器。 a l u l :执行所有的分支指令,跳转指令。 a l u 2 :指令所有的定点运算类指令,包括加法指令,移位指令,前导指令等。 f a l u :执行所有的浮点的转换指令,比较指令。 访存( m e m ) :访存模块接受来自发射模块的访存请求,它要处理除了运算指令之外 的所有指令。 多媒体部件:执行所有的多媒体指令,包括加减法、比较、移位、逻辑类的指令。 写回:将经由f u 计算出的数值,按照一定的顺序送往寄存器堆,这些值的类型既包 含地址类型也有数值类型 从上图可以看出多媒体部件和其他部件一样也要经过取指、译码、发射、写回,这四 个操作。这五个功能部件中只有多媒体部件执行的是多媒体指令,其他四个功能部件执行 的是m i p s 指令。将多媒体部件与其他部件区别开来,加速了多媒体信息的处理速度,从 而提高处理器的性能。 2 2 多媒体部件的结构 本文所实现的多媒体指令一共8 0 条。多媒体指令按功能分包括:打包解包指令, 加法指令,减法指令,比较指令,乘法指令,逻辑指令,移位指令,交换指令。这 些指令使用的都是一些简单的定点数类型,每种功能的指令都需要对不同位宽的数 据进行操作。图2 2 是多媒体部件的组成结构。多媒体部件按照指令功能的不同分为4 个模块,分别是打包解包模块,加法模块,移位模块,乘法模块,每一个模块分别完成各 自的功能。在完成所有模块的设计后,用一个t o p 模块对所有模块的端口连接线进行打包。 8 图2 2 多媒体部件的组成 f i g 2 2 t h ec o m p o s i t i o no ft h em u l t i m e d i ac o m p o n e n t s 第二章多媒体部件相关技术研究 2 2 1 多媒体部件的接口 发射模块输出的b u s 总线包括地址线和数据线,作为多媒体部件的输入。t o p 模块是 对输入的b u s 总线进行解包,并且按照指令的分类输送到各个功能模块中,在对指令执行 完后,再将各个模块输出的结果打包作为多媒体部件的输出总线送入写回模块。多媒体部 件的输入输出端口如图2 3 所示,多媒体部件采用同步时钟c l k ,当r e s e t = 0 时,所有寄存 器复位,当r e s e t = l 且c l k 处于上升沿时,执行指令。v a l u e l 、是多媒体部件 的输入操作数。:指令控制输入。 一 寄存器_ i 的n 有v 效a l u 位e 2 。i n o p i n v a l i di n :a e l v a l i d o u t :出口寄 存器的有效位。w be n 与v a l i d 同时有效时,才可以往寄存器打值。d e s t :写回地址。i d : 标记指令顺序。p c :译码出来指令的地址。c c 0 浮点寄存器的条件位。r e s u l to u t :输出 的结果。 2 2 3 多媒体寄存器 图2 3 多媒体部件的! o 接口 f i g 2 - 3i oi n t e r f a c eo fm u l t i m e d i ap a r t s 本文中采用浮点寄存器f p r 作为多媒体寄存器m m r ,这样设计不仅可以使m m x 技术 与现有的操作系统和软件完全兼容,又可以节约电路资源。因为m m x 技术的限制,不能 引入新的存储寄存器,如状态寄存器、控制寄存器和条件码。所以在设计时我们没有为多 媒体部件专门构造寄存器,而是使用浮点寄存器作为多媒体寄存器。多媒体寄存器m m r 与通用寄存器g p r 之间的数据传送需要使用d m t c l ,d m f c l 这类指令。而m m r 与内存之间 的数据交换则要使用l d c l ,s d c l 这类指令。一般用于g p r 的指令不能施加于m m r 上,先要 把m m r 中的数据移至u g p r 中,运算完了再移回,对于一些常用的指令这样做会影响指令 的操作效率,因此本设计在多媒体指令中增加一些用于g p r 的常用操作指令,可以直接使 用多媒体寄存器,不再需要适应别的指令进行交互,提高了多媒体性能。具有m m x 技术 的处理器在不运行m m x 指令时,与现有的操作系统和应用软件完全兼容。不仅如此, m m x 技术也可以使用浮点体系用来与操作系统的( 软) 接口。m m x 技术不会引进任何新的 异常或状态,因此,现有的操作系统也可支持使用m m x 指令的应用软件,这样设计可以 提高处理器的性能。 9 西安理工大学硕士学位论文 2 3 多媒体部件各模块指令分析 本节按模块对所有指令的功能进行了分析,列出了所有指令,详细给出了指令的操作 示意图,并对一些指令的应用做了简单的介绍。 2 3 1 打包解包模块指令分析 打包解包模块包括打包解包指令9 条,交换指令7 条,位运算指令5 条。一共2 1 条 指令,表2 1 是所有的打包解包指令。打包解包类指令能够完成各种精度的数据转换。广 泛用于:在每对像点之间插入新像点的插值操作、矩阵的转置( 行列转换) 等,以及r g b 与 y u v 的彩色空间转换等。 表2 - 1 打包解包指令列表 指令功能描述 p u n p c k l b h p u n p c k h b h 对包数据进行取低位解包 p u n p c k l h w p u n p c k h h w p u n p c k l w d 对包数据进行取高位解包 p u n p c k h w d p a c k s s h b对有符号数据使用饱和算法打包 p a c k s s w h p a c k u s h b 对无符号数据使用饱和算法打包 p m o v m s k b将数据的低八位与每个包数据的最高位交换 p e x t r h对半字包数据进行交换,其余拼零 p s h u f h对半字包数据进行交换 p i n s r h0对半字包数据低1 6 位相互交换 p i n s r hl对半字包数据的低1 6 位与( 3 1 1 6 ) 位交换 p i n s r h 2对半字包数据的低1 6 位与( 4 7 3 2 ) 位交换 p i n s r h3对半字包数据的低1 6 位与( 6 3 - 4 8 ) 位交换 ( 1 ) 解包类指令 解包指令分为取低位解包和取高位解包两类指令。按操作数位宽分为字节包、半字包、 字包这三种。例如p u n p c k l b h 指令是对包数据进行取低位解包。图2 - 4 是p u n p c k l b h 指令 的操作示意图,s r c l 和s r c 2 为两个输入的操作数,d e s t 为结果,图中x 0 、x l 、) 【2 、x 3 、 ) ,o 、y l 、y 2 、y 3 分别表示8 位宽的数据,把这些数据交叉组合就是最终结果。p t m p c k h b h 指令和p u n p c k l h w 指令的操作与p u n p c k l b h 相同,只是操作数的位宽不同。 l o 第二章多媒体部件相关技术研究 o 图2 - 4p u n p c k l b h 指令操作示恿图 f i g 2 - 4o p e r a t i o ns c h e m a t i cd r a w i n go fp u n p c k l b hi n s t r u c t i o n s ( 2 ) 打包类指令 打包类指令分为有符号数据打包和无符号数据打包。p a c k s s h b 指令是对有符号包数据 使用饱和算法打包,指令操作示意图如2 - 5 图所示,x 0 、x l 、x 2 、x 3 、y o 、y l 、y 2 、y 3 在图中表示1 6 位宽的数据,打包后变为8 位宽的数据。所谓有符号包数据是指操作数的 每个包数据都是有符号数,进行打包以后还是有符号数据。p a c k s s w h 指令与上述指令的 操作相同,只是包数据的位宽不同。这个模块中只有p a c k u s h b 这一条无符号数据的打包 指令,这条指令的实现操作与有符号数据的操作一样,不同的是这条指令实现的是无符号 半字包数据的打包,结果中每个半字包数据也是无符号数。 图2 5p a c k s s h b 指令操作示意图 f i g 2 - 5o p e r a t i o n s c h e m a t i cd r a w i n go fp a c k s s h bi n s t r u c t i o n s ( 3 ) 包数据交换类指令 p m o v m s k b 指令是包数据交换类指令中最简单的,指令操作如图2 6 所示,这条指令 的操作是把操作数的字节数据最高位依次拼接起来存入结果的最低8 位,而结果的其余位 拼零。 1 6 3 5 5 4 73 93 l 2 3 1 5 7 蓬一 5 6 ,b o7 6 54 32 10 图2 - 6p m o v m s k b 指令操作示意图 f i g 2 5o p e r a t i o ns c h e m a t i cd r a w i n go fp m o v m s k bi n s t r u c t i o n s p e x t r h 和p s h u f h 指令的操作基本相同,唯一的区别是前一条指令只实现下述操作的 第一条,结果的其余位拼接零。而后一条指令要实现下述所有操作。 d e s t 1 5 :0 】- ( s r c 2 ( s r c i 【l :o 】1 6 ) ) 1 5 :0 】 d e s t 3 1 :1 6 】_ ( s r c 2 ( s r c l 【3 :2 】1 6 ) ) 1 5 :0 】 西安理工大学硕士学位论文 d e s t 4 7 :3 2 】= ( s r c 2 ( s r c l 【5 :4 】1 6 ) ) 1 5 :0 】 d e s t 6 3 :4 8 】- ( s r c 2 ( s r c l 【7 :6 】1 6 ) ) 1 5 :0 】 ( 4 ) 位运算指令 表2 2 是位运算指令列表,一共5 条只对操作数进行简单的门级操作,功能简单。图 2 7 是位运算的操作示意图。 表2 - 2 位运算指令列表 t a b l e2 2b i ta r i t h m e t i ci n s t r u c t i o n sl i s t 指令功能描述 p a n d n对包数据按位与或 f o r按位或 f x o r按位异或 f n o r按位或非 f a n d按位与 图2 7 位运算操作示意图 f i g 2 7o p e r a t i o ns c h e m a t i cd r a w i n go fb i ta r i t h m e t i ci n s t r u c t i o n s 2 3 2 加法模块指令分析 加法模块一共3 9 条指令,其中有比较类指令1 6 条,加减类指令2 2 条。如下表2 3 所示 为加减类指令列表。表2 _ 4 是比较类指令。由于这些指令都具备一个共同的功能即加法, 因此本设计中把这些指令进行了复用,这样做提高了多媒体部件的资源利用率,从而增强 了处理器的性能。 ( 1 ) 加减类指令 1 2 第二章多媒体部件相关技术研究 表2 3 加减类指令列表 t a b l e 2 3a d d a n ds u b t r a c ti n s t r u c t i o ni i s t 指令指令描述 p a d d b p a d d hp a d d wp a d d d对包数据同时相加( 回绕模式) p a d d s b p a d d s h对有符号数包数据进行有符号饱和相加 p a d d u s b p a d d u s h对无符号包数据进行无符号饱和相加 p a u b b p s u b hp s u b wp s u b d对包数据同时相减( 回绕模式) p s u b s b p s u b s h对有符号包数据进行有符号饱和相减 p s u b u s b p s u b u s h对无符号包数据进行无符号饱和相减 f a d d 有符号低位字数据相加,高位填充结果的最高位 f a d d u 无符号低位字数据相加,高位填充结果的最高位 f s u b 有符号低位字数据相减,高位填充结果的最高位 f s u b u 无符号低位字数据相减,高位填充结果的最高位 p a v g bp a v g h对无符号包数据求平均值 例如p a d d b ,有符号字节数据回绕模式相加。s r c i 和s r c 2 分别为两个6 4 位加数,d e s t 为 结果,这条指令的操作示意图如图2 8 所示。对于减法指令相当于加上减数的补码,因此 可以用同一个加法器实现。上面的指令操作也适用于减法。回绕模式即对于两个数相加或 相减,只考虑全加和的结果,而不考虑溢出,而饱和相加或饱和想减则要考虑结果的溢出 情况。f a d d 指令,s r c l 和s r c 2 分别为两个6 4 位操作数,取低位字数据相加,得到的结果也 为3 2 为字数据,高位填充结果的最高位,相当于有符号数据的符号扩展。 s r ct e 丑三工互正三e 丑三工三 丑 s r e 2 d e s t o oo o oo i l 6 3 5 65 5 - 镐 4 7 - 4 0 3 9 3 2 3 1 - 2 4 2 3 - 1 6 1 5 87 - o i lll上 弋7 弋乡 弋7弋7 i 6 3 - 5 65 5 4 84 7 4 03 9 3 23 1 - 2 42 3 - 1 61 5 87 _ 0 i ( 2 ) 比较类指令 图2 8p a d d b 指令操作示意图 f i g 2 - 8o p e r a t i o ns c h e m a t i cd r a w i n go fp a d d bi n s t r u c t i o n 指令指令描述 p c m p e q bp c m p e q hp c m p e q w对包数据进行比较,相等则包内的所有位置l ,否则置o p c m p g t b p c m p g t hp c m p g t w对包数据进行比较,大于则包内的所有位置1 ,否则置0 p m a x s h对有符号半字包数据进行比较,取较大的值 p m a x u b对无符号字节包数据进行比较,取较大的值 p m i n s h对有符号半字包数据进行比较,取较小的值 西安理工大学硕士学位论文 p m i n u b对无符号字节包数据进行比较,取较小的值 p a s u b u b对无符号字节包数据做减法运算,结果取绝对值 f s e q相等则置浮点控制寄存器的条件位为l ,否则置0 f s l t 有符号数比较,小于则对c c o 黄位 f s l t u 无符号数比较,小于则对c c o 置位 f s i e 有符号数比较,小于等于则对c c o 置位 f s l e u 无符号数比较,小于等于则对c c o 置位 所谓比较类指令是指这些指令的基本功能是对两数的大小进行比较。输入操作数是同 等位宽的数据,对于字节包数据、半字包数据、字数据和双字数据要对每组包数据分别比 较,比较结果也应该是包数据。比较结果分为三种:大于、小于、等于。一部分指令要求 写回比较结果。例如图2 9 是p c m p e q h 与p c m p g t h 指令操作示意图。s r e l 和s r e 2 分别是两个输 入的操作数,d e s t l 是p c m p e q h 指令比较的结果,d e s t 2 是p c m p g t h 指令比较的结果,s r c l 与 s r c 2 的第一组与第三组的比较结果是相等,第二组的比较结果是大于,第四组的比较结果 是小于,p c m p e q h 指令要求包数据比较结果相等时d e s t l 置o x f f f f ,p c m p g t h 指令要求比较结 果大于时d e s t 2 置o x f f f f ,否则置为o x 0 0 0 0 。 s r c - 三二 三二 三二 三 慨t 三二 三二 三二 至丑 d e s t 2 图2 - 9p c m p e q h 与p c m p g t h 指令操作示意图 f i g 2 - 9o p e r a t i o ns c h e m a t i cd r a w i n go fp e m p e q ha n dp c m p g t hi n s t r u c t i o n 利用p e m p e q b 这条指令很容易计算一个图像的屏蔽图,即颜色相同的地方为l ,否则 为o 。我们可以这样假设,有两个图a 图是人,b 图是景,想要将人放入这个场景中,如果 使用一般的指令则会有如下过程: i f ( 图a 当前像素颜色i s 屏蔽色) t h e n 图d _ 图b 对应的像素颜色 e l s e 图d o , 则结果d e s t = s u m ;若s 啪= 0 ,则结果d e s t = s u m ;若s u m 2 5 5 ) g = 2 5 5 : e l s e i f ( ( k 0 ) 删蚴嘲湖旧m 心 地以 训毗 一一一一 删嘲埘溯 旧m 眦邺 也以 以池 一一一一 删锄埘潮 一一 删锄蚓湖 一一 第三章多媒体部件的设计 g = o : 在多媒体信息的处理中,需要大量用到这种溢出处理方法,这种方法也叫饱和算法: 即对产生溢出的运算将累积至固定单元可容纳的最大( 或最小) 值。如上述指令中 p a c k s s h b ,对有符号数据使用饱和算法打包,那么被打包数据按照饱和算法的要求,其范 围应该是1 2 8 1 2 7 之间。如果包数据是有符号字包,其范围应该是3 2 7 6 8 3 2 7 6 7 :而对于 p a c k u s h b ,对无符号数据使用饱和算法打包,就如上面的颜色运算用n 8 位无符号饱和, 那么其范围应该是0 2 5 5 ,同样对于无符号字包数据,其范围应该是0 - - , 6 5 5 3 5 。即当结果 上溢时取固定位宽能表示的最大值,当结果下溢时取固定位宽所能表示的最小值。不只在 打包解包模块终会遇到需要饱和算法来处理的指令,在后面的加法模块中也有对所得结果 运用饱和算法处理溢出,处理方法一样。图3 2 是p a c k s s h b 指令的一部分饱和算法实现电路。 首先要判断被打包数据的的正负,如果是正数则看它的前8 位是否全为0 ,若不全为o n 说 明这个数据大于1 2 7 ,那么结果为1 2 7 ( 7 f ) ;若全为。贝e j 需要要判断第7 位,若为o 则说明结 果结果小于1 2 7 ,只需输出被打包数据的的低8 位,若为1 则说明结果大于1 2 7 ,则需输出1 2 7 ( 7 f ) 。 例如:s r c l :
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年初级经济师之初级建筑与房地产经济过关检测试卷B卷附答案
- 2020-2025年高级经济师之工商管理每日一练试卷A卷含答案
- 《制造执行系统实施与应用》 课件 3.2生产优化调度技术
- 大疱性表皮松解症的护理
- 雨课堂学堂在线学堂云《病理生理学(贵州医大 )》单元测试考核答案
- 2025湖南省社会科学院(湖南省人民政府发展研究中心)第二批高层次人才招聘3人参考题库带答案解析
- 2026年机械员之机械员专业管理实务考试题库200道含完整答案(易错题)
- 2026建研院检测中心有限公司校园招聘12人历年真题汇编及答案解析(夺冠)
- 洪雅县关于2025年从服务基层项目等人员中考核招聘乡镇事业单位工作人员历年真题汇编带答案解析
- 2026年劳务员之劳务员基础知识考试题库200道及答案
- 低温等离子体-洞察及研究
- 田径项目规则讲解
- 产程干预的医学指征课件
- 2025智能眼镜市场洞察报告-大数跨境-202508
- 史记蒙恬列传课件
- 2024NICU压力伤防控指南
- 口腔门诊年度述职报告
- 成功销售的八种武器-大客户销售策略
- 电子技术课程思政说课
- 妊娠合并急性Stanford-A型主动脉夹层围术期护理体会
- 铁路委外管理办法
评论
0/150
提交评论