(微电子学与固体电子学专业论文)32位risc微处理器模块设计.pdf_第1页
(微电子学与固体电子学专业论文)32位risc微处理器模块设计.pdf_第2页
(微电子学与固体电子学专业论文)32位risc微处理器模块设计.pdf_第3页
(微电子学与固体电子学专业论文)32位risc微处理器模块设计.pdf_第4页
(微电子学与固体电子学专业论文)32位risc微处理器模块设计.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

(微电子学与固体电子学专业论文)32位risc微处理器模块设计.pdf.pdf 免费下载

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

文档简介

北京工业大学硕士学位论文 摘要 随着信息技术的飞速发展,嵌入式微处理器以其高性能、低功耗、便携式的 优点,越来越广泛的应用于各种电子设备中。其中r j s c ( r e d u c e di n s 仃u c t i o ns e t c o m d u t e r l 即缩减指令集合计算机,作为计算机设计策略的一种类型己越来越多 地应用于计算机的体系设计中。论文在对嵌入式微处理器通用结构研究的基础 上,参考m i p s 3 2 指令系统,实现了微处理器的基本结构。本课题所设计的微处 理器共包括两部分:整数单元和浮点单元。整数单元采用五级流水线结构分别为 指令提取( i n s t r u c t i o nf e t c h ) 级、指令译码( i n s t r u c t i o nd e c o d e ) 级、指令执行 ( e x e c u t i o n ) 级、存储器访问( m e m o r ya c c e s s ) 级、写回( w r j t eb a c k ) 级。论文详细阐 述了流水线设计过程,对流水线的结构相关,控制相关和数据相关问题进行分析 并提出了解决方法。传统的微处理器的运算单元对于浮点数规格化问题是由软件 部分来完成,硬件部分只实现规格化数据的计算。因本课题意在实现微处理器的 基本结构,并未涉及到编译器,因此在对微处理器的浮点处理单元的规格化算法 进行深入分析的基础上提出了用硬件实现浮点单元规格化的方法。在浮点单元中 实现了浮点的加、减、乘三种运算。根据浮点单元承担的任务及延迟信息,采用 三级流线实现:前规格化级( p r e - n o r r r i a l i z a t i o ns t a g e ) 、计算级( c a l c u l a t i o ns t a g e ) 、 后规格化级( p o s t n o n n a l i z a t i o ns t a g e ) ,每一级的工作量和延迟近似相等。 本课题所设计的微处理器的整数单元和浮点单元均采用硬件描述语言 v h d l 进行建模,为降低芯片面积,将资源共享这一e d a 工具的综合优化方法 应用于设计中,并在现有条件下进行了简单的f p g a 验证,考虑到今后的a s i c 设计,本文给出了基于f p g a 和基于a s l c 的两种综合网表。 关键词:微处理器,流水线,规格化,嵌入式系统 北京工业大学硕士学位论文 a b s t r a c t e m b e d e dm j c r o p r o c e s s o rh a sb e e na p p j j e dw j d e j yt om a n yk j n d so fe l e c t r o n i c e q u i p m e n t sb e c a u s eo fl t sa d v a n t a g e s ,s u c ha s ,h i 曲p e r f o r m a n c e ,l o w e rp o w e r c o s t a n d p o r t a b l e c h a r a c t e r i s t i c d e v e l o p m e n t e s p e c i a l ly , a sa s t r a t e g y , r e d u c e d i n s t r u c t i o ns e tc o m p u t e r ( r i s c ) i sb e c o m i n gm o r ep o p u l a ri nt h e d e s i g l l i n go f c o m p u t e r a r c h i t e c t u r e t h e p r o j e c ti m p l e m e n t e d ab a s i ca r c h i t e c t u r eo f m i c r o p r o c e s s o ro nt h e b a s eo fm i c m p r o c e s s o rg e n e r a ia r c h i t e c t u r ea n dm i p s 3 2 i n s t r u c t i o ns y s t e m 1 nt h ep r o j e c t ,t h em i c r o p r o c e s s o ri s c o m p o s e do fi n t e g e ru n i ta n df l o a t i n g p o i n t u n “t h ei n t e g e ru n i ti sd e s i g n e dw i t | lf i v e s t a g ep i p e l i n e ,i n c i u d i n gi n s t r u c t i o nf e t c h , i n s t r u c t i o nd e c o d e , e x e c u t i o n ,m e m o r ya c c e s sa n dw r i t eb a c k t h em e t h o di n d e s i g n i n gp i p e l i n e ,s t r u c t u r eh a z a r d ,c o n 打o l h a z a r da n dd a t ah a z a r dw e r ed e s c m e d i nd e t a i li nt h e p a p e n d i f r e r e n tw i t ht r a d i t i o n a l m i c r o p f o c e s s o rw h i c hs o l v c s n o a t i n g - p o i n tn o r m a l i z a t i o nw i t hs o f tw a r e ,t h ep r o j e c ti m p l e m e n 把dn o a t i n g - p o i n t n o m l a l i z a t i o nw i t h h a r dw a r e t h er e s e a r c hf o c u s e do nt h e a r c h i t c c t u r eo f m i c r o p r o c e s s o rm a i n l y a c c o r d i n g t ot h et a s ka n d d e l a y i n f o m a t i o no ft h e f l o a t i n g - p o i n t u n i t , i tw a s i m p l e m e n t e d w i t h t h r e e - s t a g ep i p e l i n e ,i n c l u d i n g p r c n o r m a “z a t i o ns t a g e , c a t c u k 洒n s t a g e a n d p o s t - n o m i a h z a t i o ns 切曙e a p p r o x i m a t e iy t h e d e i a y o fe a c h s t a g e i s e q u a l w i t he a c ho m e n a l s 0 , f l o a t j n g - a d d i t i o n ,n o a t i n g s u b t r a c t i o n a n d f l o a t i n g - m u l t i p l i c a t i o n c a nb e e n i m p l e m e n t e db y t i l ef l o a t i n g p o i mu n i t t h ei n t c g e ru n i ta n dn o a t i n g p o i n tu n i tw e r cd e s c r i b e d 柚dm o d c l e di nv h d l t o d e c r e a s et h ea r e ao ft h ec h i p ,r c s o u r c e s h 盯i n g ,w h i c hi s as y n t l l e s i z e d0 p t i m i z e d m e t h o do fe d a t o o l s ,w a su s c dj nt h ep r o j e c c t h ec o d ew a sv e r i f i e di nf p g as o n w a r ee n v i r o n m e n t s y n t l l e s i z e dn e t l i s t sb a s e do nf p g aa n da s l cw e r c g i v e ni nt h e p a p e rf o rf u t u r ew o r k k e y 、) i ,0 r d s :m i c r o p r o c e s s o r ;p i p e l i n e ;n o h n l i z a t i o n ;e m b e d e ds y s t e m i i 第1 章绪论 第l 章绪论 1 1 课题背景与来源 随着大规模集成电路技术日益成熟,微处理器的应用越来越广泛。目前,国 际上微处理器按应用领域的不同可分为三类:一是通用高性能微处理器,追求高 性能,主要应用于工作站和高性能个人计算机系统;二是嵌入式微处理器,主要 用于运行面向特定领域的专用程序,配备轻量级操作系统,比如手机、v c d 、机 顶盒;三是微控制器,主要用于汽车空调、自动机械等领域的自控设备。 展望2 l 世纪前5 0 年,微电子技术对我们既是一个重大的机遇,也是一个严 峻的挑战,随着“后p c 时代”到来,数字化产品层出不穷,嵌入式微处理器以 其低功耗、高性能的特点成为市场新宠。由于嵌入式微处理器还处于起步阶段, 市场潜力巨大,而且没有形成垄断,如果我们能够抓住这个机遇,立足创新,则 有可能使我国微电子技术实现腾飞,在新一代微电子技术中拥有自己的知识产 权,促进我国微电子产业的发展。本课题是我校“2 1 1 ”工程重点建设学科一一 “v l s i 与系统集成”的重要组成部分,开展嵌入式微处理器的研究是本学科建 设的基础。 1 2 嵌入式微处理器简介 嵌入式微处理器的基础是通用计算机中的c p u 。在应用中,将微处理器及 其辅助设备集成在同一块电路板上,只保留和嵌入式应用有关的母板功能,这样 可以大幅度减小系统体积和功耗。为了满足嵌入式应用的特殊要求,嵌入式微处 理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、 可靠性等方面一般都做了各种增强。 和工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可 靠性高的优点,但是在电路板上必须包括r o m 、r a m 、总线接口、各种外设等 器件,从而降低了系统的可靠性,技术保密性也较差。 嵌入式微处理器一般就具备以下4 个特点:1 ) 对实时多任务有很强的支持 能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核 北京工业大学工学硕士学位论文 的执行时间减少到最低限度。2 ) 具有功能很强的存储区保护功能。这是由于嵌 入式系统的软件结构己模块化,而为了避免在软件模块之间出现错误的交叉作 用,需要设计强大的存储区保护功能,同时也有利于软件诊断。3 ) 可扩展的处 理器结构,以能最迅速地开展出满足应用的最高性能的嵌入式微处理器。4 ) 嵌 入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和通信设备 中靠电池供电的嵌入式系统更是如此,如需要功耗只有m w 甚至uw 级。 1 3 研究内容及目标 本课题首先对r i s c 微处理器体系结构进行研究,采用m i p sr 4 0 0 0 指令系统, 实现微处理器的基本结构,并在此基础上提出课题做初步的改进。 m i p sr 4 0 0 0 是m i p s 公司生产的m i p s 3 2 系列中的一个高性能嵌入式微处理器, 兼容m i p si i 3 2 位指令集,并且能够有效执行d s p 的算法。本课题采用部分指令 实现微处理器的基本结构,整个设计包括整数处理部分和浮点处理部分。 论文共分六章,第一章介绍课题的背景和来源并对嵌入式微处理器作简要的 介绍:第二章介绍本课题所采用的五级流水线结构,分析了流水线的操作原理、 指令流水线操作和数据路径的流水线结构,这是本课题的重要组成部分;第三章 简要介绍m i p s 3 2 指令系统,并对课题中实现的指令格式和指令机器码进行分析; 第四章详细阐述了整数单元的设计过程,对流水线相关问题进行分析,提出解决 方法并加以实现;第五章描述浮点单元的设计过程,对i e e e7 5 4 标准进行分析 后,区别于传统的软件方法,用硬件实现浮点规格化,减轻了编译器的负担,更 方便用户编程。第六章介绍了本文将资源共享这一e d a 工具的综合优化方法应用 于设计中,通过分析a l u 的功能,做了一系列的等价变换,从中推导、设计出资 源共享型a l u 结构,从而减小了占用的硅片面积、降低了功耗。 第2 章刚s c 处理器的流水线结构 第2 章对s c 处理器的流水线结构 2 1r j s c 体系结构简介 r i s c ( r e d u c e di n s t r u c t i o ns e tc o m p 吐e r ) 即缩减指令集合计算机,产生于 8 0 年代中期,其主要思想是简化指令格式和寻址方式,从而提高指令的运行速 度。相对于原来具有复杂指令c i s c ( c o m p l c x i n s t r u c t i o ns e tc o m p u t c r ) 系统的 处理器来说,r i s c 体系结构大大减少了指令的数量,采用固定长度的指令系统, 优化编译程序,寻址方式简单等等,这些使r j s c 体系结构具有较高的性能和较 小的芯片面积。同时采用对s c 技术的处理器更容易实现流水线操作,从而使处 理器在每个周期能执行的指令条数接近于1 。它作为计算机设计策略的一种类型 已愈来愈多地应用于计算机的体系设计中。国际上出现了多种以r i s c 体系结构 设计的计算机,如s u n 公司的u l t r a s p a r c ,s g i m i p s 公司的r 1 0 0 0 0 , l b m ,m o t o r o l “a p p l e 公司的p o w e r p c ,d e c 公司的a l p h a 2 1 2 6 4 和h p 公司的 p a 。8 0 0 0 等等。 随着对计算机功能要求的目益增强,设计师们逐渐设计出更为复杂的机器。 而r i s c 体系结构的出现是基于以下几点:一是经过统计发现,各种编译程序基 本上都愿意用比较简单的指令,几乎不使用附加给微程序中那些十分复杂的指 令,编译程序最优化更进一步倾向于使用简单指令;二是采用r i s c 技术后大大 简化了芯片内的控制电路部分,有效地减少了芯片设计的复杂程度,节约了芯片 面积。若采用同样的芯片面积,就可在芯片上集成更多的功能单元( 如寄存器, 超高速缓冲存储器) ,这样就可减少访问内存的频度,使各种处理过程的执行速 度都大大加快。简而言之,r i s c 的设计思想就是简单性与有效性,即r i s c 是通 过有效地简化处理机指令集合语义以及指令集合的编码来获得芯片资源的有效 利用。 r i s c 微处理器是微电子技术发展到现阶段的产物。根据我国微计算机技术 与微电子技术发展的现状及我室科研工作的安排适时开展了r i s c 微处理器的研 发,这是我室的基础科研工作。 北京工业大学工学硕士学位论文 2 2 流水线处理机 2 _ 21 流水线操作 流水线( p i p e l i n e ) 是一种能够使多条指令重叠操作的处理机的实现技术, 它已成为现代处理器设计中最为关键的技术。 流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前, 流水线技术已被广泛应用于工业生产中了。尤其是现在,几乎所有的现代化工厂 的生产线都采用流水线技术。一件产品往往需要几道工序才能完成。每道工序只 完成生产过程中的一小部分操作,即送往下一道工序。如果单从一件产品从开始 到完成来看,生产所需要的时间,与非流水线相比,似乎没有缩短。但从整体来 看,产品的出产率却大大提高了。流水线处理机也是这样,单条指令的执行时间 没有缩短,但每个时钟周期都会有一条指令执行完毕。假如,非流水线多周期处 理机执行一条指令平均要花费大约4 个时钟周期。如果执行l 万条指令,就要用 4 万个时钟周期。而流水线处理机执行一条指令可能需要5 个时钟周期,但由于 多条指令,例如5 条,可以重叠操作,总体上,平均每条指令所花费的时间大致 为1 个时钟周期,总共只需要大约1 万个时钟周期,即“吞吐率( 1 1 1 r o u g h p u t ) ” 提高了。 下面用一个例子来说明流水线操作。 在一个洗衣店里,利用流水线操作将大大的减少工作时间,提高效率。对于 非流水线的方法由以下几个步骤: 1 把一件脏衣物放入洗衣机 2 当洗衣机完成操作,把湿的衣物放入甩干机 3 当甩干机完成操作,把衣物放在枭上熨烫收拾叠好 4 最后,让工作人员将衣物送走 当工作人员将衣物送走之后再开始下一件脏衣物的处理。 使用流水线操作将大大减小工作时间,请参见图2 - l 。一旦洗衣机完成第一 件衣物,把它放入甩干机之后,就可以把第二件衣物放入洗衣机里了。当第一件 衣物甩干完,并放在桌上熨烫的时候,就可以在甩干机中放入下一件衣物,同时 在洗衣机里放入再下一件的衣物。当工作人员把第一件衣物送走的时候,第二件 放在桌上熨烫,第三件衣物放入甩干机,第四件衣物放入洗衣机。这样的操作就 第2 章r j s c 处理器的流水线结构 叫做流水线操作,所有这些同时操作的步骤在流水线操作中叫做“级”。 流水线操作之所以快,是因为它把洗衣,甩于,熨烫和送货这些步骤在同一 时刻对不同衣物进行并行处理。所以流水线操作使得单位时间内的工作量提高。 如果每一级所用的时间一样,那么流水线上各级时刻都在工作。可以看出洗衣店 利用流水线的工作方式后,洗四件衣服的时间由原来的8 个小时提高到3 5 个小 时,有2 3 倍的速度提高。 因此,使用流水线操作是提高在单位时间工作量的有效的方法。 图2 一l 洗衣店中流水线和非流水线工作的比较 f 培u r e2 _ lt h ec o 唧a r a s i o nb e t w e e np i p c l i l l i n ga n dn o n _ p i p e l i l l i i l gi i ll 姗d r y 北京工业大学工学硕士学位论文 2 2 2 指令流水线 流水线处理机把一条指令的执行分成几个步骤,或称级( s t a g e ) 。每一级在 个时钟周期内完成。在每个时钟周期,处理机启动执行一条指令。如果处理机 的流水线有m 级,则同时可重叠执行的指令总条数将为m ,每条指令处在不同 的执行阶段。流水线处理机在理想情况下,每一级都没有时间上的浪费,与非流 水线处理机的性能加速比为: s :! ! 咝! :坠:。 i x c p i ,x tc p i 。| m 其中,为一个程序被执行的总的指令条数。它在流水线处理机和非流水线处理 机中是相等的。c 是每条指令总体平均所需的时钟周期数。c p 是非流水线 处理机的c 尸,c p 厶是流水线处理机的c p ,。因为流水线处理机把一条指令的执 行时间理想地分成了m 级,有条指令在重叠执行,则c p 厶= e p ,钿。丁是每 个时钟周期的时间长度,假设它在两种处理机中也是相同的。最后总的加速比为 m ,即等于流水线的级数。 通常的m i p s 微处理器的流水线分为五级。 1 从指令存储器取指令( i n s t c t i o nf e t c h ,i f ) 2 解码指令的同时读取寄存器中的值( i n s t m c t i o nd e c o d e r ,i d ) 3 执行操作,以及计算地址( e x e c u t e ,e x e ) 4 访问数据存储器中的操作数( m e m o r ya c c e s s ,m e m ) 5 把结果写回寄存器( w r i t cb a c k ,w b ) 假设流水线的每一级花费的时间一样,如下图2 2 所示。这样流水线将比非 流水线达到最大的加速比,在这种理想情况下,每一条指令之间的时间为: 非流水线中指令之间的时间 流水线中指令之间的时间= 流水线的级数 第2 章r l s c 处理器的流水线结构 图2 2m i p s 处理器5 级流水线工作示意图 f i g u r e2 25 一s t a g ep i p e l i l l e de x e c u t i o ni i lm i p sp r o c e s s o r 可以看出图2 2 中每条指令在流水线中占用2 n s 的时间。如果流水线的每一 级的时间花费不一样的话,那么流水线的时钟长度要大于等于流水线各级中的最 大延时。图2 3 中给出了这个规律。需要指出,这个约束条件很大程度上对处理 器的性能造成很大的影响。流水线处理机性能提高的关键在于每个时钟周期处理 机都能启动一条指令的执行,理想情况下流水线每级中的执行部件都能在每个时 钟周期接收一条新的指令。 图2 - 3 流水线各级的时序关系 f i g l 】r e2 31 1 l es e q u e n c eb e t w e e np i p e l i i l e ds 协g e s 2 2 3 数据路径的流水线结构 微处理器主要包括两部分:数据路径和控制部件。在流水线处理器的设计中 需要把控制部件嵌入到数据路径中,适时准确的产生数据路径所需的控制信号。 五级流水线处理器数据路径如图2 4 所示: 北京工业大学工学硕士学位论文 图2 4 数据路径的流水线结构 f i g i l r e2 - 4t h ea r c h i t c c t u r eo f m ep i p l j l l e dd a t 印a t l l 流水线处理器的最大特点是每一个时钟周期取出一条指令来执行。所有指令 按取出的先后次序通过图2 4 中的数据路径。在第一级,i f 级,指令计数器p c 中的内容作为访问指令存储器的地址,送到指令存储器的地址输入端。第二级, i d 级,对指令进行译码,根据译码的结果访问寄存器堆,取出相应的寄存器单 元中的数据或者对1 6 位立即数进行扩展作为下一级运算单元的输入。第三级, e x e 级,这一级根据i d 级输入的数据完成算术逻辑的运算。第四级,m e m 级, 存储器访问,根据e x e 级计算结果和相应的控制信号,对存储器进行读或写操 作,读出存储器中相应地址的数据或将结果写入相应的地址单元。第五级,w b 级,将a l u 计算结果或从存储器中取出的数据写回至寄存器堆中暂存,作为后 续指令的源操作数。 为保证指令在流水线中可靠的执行,需要在流水线的各级之间安排一组寄存 器,用以保存当前时钟周期运算的结果,以便为下一个周期使用,即流水线寄存 器。图2 4 中的流水线寄存器为i m d 、i d ,e x 、e ) ( ,m e m 、m e m ,、b 。 第2 章对s c 处理器的流水线结构 2 3 本章小结 本章首先对r i s c 微处理器的体系结构作简要的介绍,指出r i s c 指令系统和 流水线结构以它们结构规整、解码简单和提高指令执行的并行性的优点已被广泛 采用。接着以一个洗衣服的例子介绍流水线的操作原理,由浅入深逐步介绍了指 令流水线操作和数据路径的流水线结构。流水线结构的设计将在第四章中详细介 绍。 北京工业大学工学硕士学位论文 第3 章m i p s 3 2 指令系统 3 1m i p s 3 2 指令集概述 计算机指令格式有固定长度和可变长度两种。r i s c 处理机一般采用固定长 度的指令格式。定长指令格式的好处在于指令译码和流水线执行比较容易。r i s c 处理机指令系统的共同特点就是指令种类少而精,寻址方式简单,指令格式固 定,只有l o a d s t o r e 指令访问存储器,而运算指令的操作数全部来自于快速寄 存器堆。m i p s 3 2 属于r i s c 家族中的一员,支持3 2 位和6 4 位指令,本课题采 用m i p s 3 23 2 位指令系统。 3 1 1 指令分类 m i p s 3 2 指令分为如下几类: 存储器访问指令( l 0 a d s t o r e ) :用于在存储器和通用寄存器之间传递数 据,r j s c 体系结构的共同特点是所谓的l o a d s t o r e 结构,即访问存储 器的指令只有l o a d ,s t o r c 两种。它们访问存储器的地址是由寄存器的内容 和1 6 位立即数偏移量相加的结果,因此都属于立即数类型指令( i 句p c ) 。 运算指令:完成算术、逻辑、移位运算。操作对象既可以是寄存器中存 储的3 2 位数据,也可以是1 6 位立即数扩展成的3 2 位数据。运算指令既 可以是寄存器类型( r - t y p e ) 也可以是立即数类型( i t y p e ) 。 跳转转移指令( j u m p b r a n c h ) :跳转转移控制指令用于改变程序的顺 序执行次序。转移指令( b r 柚c h ) 用程序计数器( p c ) 加偏移量的寻址方 式令程序计数器指向目的地址。跳转指令( j u m p ) 类似于寄存器间接寻址 的方法,把某个寄存器的内容写入p c 。这样的指令通常被用于从程序散 转表中取到目标地址,再跳转。j u m p 指令由单纯2 6 位字地址( j - t y p e ) 或 寄存器地址( r 电p e ) 组成。b r a n c h 指令则包括了相对于p c 的1 6 位偏移 量,属于立即数类型。 协处理器指令:用于完成协处理器中的操作,本设计中主要用到了 l o a d s t o r e 、f p u 的加、减、乘指令。 第3 章m i p s 3 2 指令系统 特殊指令:用于执行一些特殊任务,包括在特殊寄存器和通用寄存器间 传递数据,陷阱指令,设置断点等。这些指令都属于寄存器类型指令。 3 1 2 指令格式 体系结构设计的结果一般是以一种符号表示的形式一汇编语言,提交给用 户使用的,特别是嵌入式微处理器有许多系统特定的输入与输出。对于通用寄 存器体系结构,指令格式可以有三操作数与两操作数两种选择,还有操作数有 一些是从存储器访问的,从而可以形成多种组合,最常用的是r e g i s t e 卜r e g i s t e r 、 r e g i s t e r - m e m o r y 与m e m o r y m e m o r y 等三种。m i p s 采用的是r e g i s t e r r e g i s t e r , 又叫做l o a d s t o r c 格式,所有指令的长度均为3 2 位。基本的指令格式如图3 1 所示: i t y p e ( i m m ed i a t e ) j j y p e ( j u m p ) r t y p e ( r e g i s t e r ) 图3 1m i p s 指令格式 f i g u r e3 lt h ef o n n 氆t o f l em i p s i n s 廿u c t i o n s 每一字段符号的解释如下: 一l - t y p e :立即数类型 一j 哪p e :跳转类型 一r t y p e :寄存器类型 _ o p :6 位,指令的基本操作码( o p c o d e ) 一r s 5 位,第一源操作数寄存器。 北京工业大学工学硕士学位论文 _ n :5 位,第二源操作数寄存器,或b r a n c h 指令条件寄存器。 一r d :5 位,目的操作数寄存器,用来存储操作结果。 一i m m e d i a t e :1 6 位立即数。 - t a r g e t :2 6 位,j u m p 指令目标地址。 s h a m t ( s h ma m o u n t ) :5 位,移位数。除移位指令外,此字段为o 。 _ f u n c t :6 位,功能操作数,选择o p 字段定义的操作的特殊变量。 虽然指令的多种格式增加了硬件的复杂性,但可利用指令格式的相似性降 低硬件复杂性。例如,寄存器类型和立即数类型指令前三个字段同名且长度相 等:立即数类型的第四个字段与寄存器类型的后三个字段长度相等。每一条指 令的o p 字段都有明确的值,决定了硬件应该进行何种操作,如何处理后续字段, 是作为三个字段处理( 寄存器类型) 还是作为个字段处理( 立即数类型) 。 表3 - l 以a d d 、s u b ( s u b t r a c t ) 、j ( j u m p ) 、1 w ( 1 0 a d w o r d ) 、s w ( s t o r ew o r d ) 指令的编码,说明了m i p s 指令格式: 表3 im l p s 指令编码 t a b i e3 1t h ee n c o d i n go f t l l em i p s 曲s 仃u c t i o n s i n s t r u c t i o nf 0 舶a t o p r snr ds h m tf h n c tc o m m e n t s a d dr01 81 91 7o3 2a d d $ s i ,$ s 2 ,$ s 3 s u br01 81 91 703 4s u b $ s 1 ,$ s 2 ,$ s 3 1 wi3 51 81 71 0 0 1 w $ s l ,l o o ( $ s 2 ) s wi4 31 81 71 0 0 s w $ s l ,1 0 0 ( $ s 2 ) j j22 5 0 jl o o o ( 2 5 0 4 ) 3 2m i p s 3 2 寄存器 寄存器能够最快的读写数据,因此在设计中希望尽可能多得使用寄存器。 m i p s 3 2 中规定了3 2 个寄存器,其中软件中用到如下几种: $ a 0 一$ a 3 :4 个传递参数的变量指针寄存器 $ v 0 一$ v l :2 个返回值寄存器 第3 章m i p s 3 2 指令系统 $ r a :1 个返回地址寄存器 $ t o 一$ t 9 :l o 个l 临时寄存器,用来暂存数据或地址,在调用过程中可 以被随时代替 $ s o 一$ s 7 :8 个保存寄存器,在一次调用过程中,数据必须被保存 $ s d :1 个堆栈指针寄存器 $ f d :1 个帧指针寄存器,用来指出一帧中的第一个字 $ g p :1 个全局指针寄存器 $ z er o _ 1 个o 值寄存器,寄存器中的值永远为零 3 2 个寄存器列表如表3 - 2 所示: 表3 2m i p s 3 2 寄存器寄存器2 6 2 7 ,留给操作系统使用 t a b l e3 2m i p s 3 2 r e g i s t e r sr e g i s 把n 2 6 2 7 批陀s 州e df o r t h eo p e i 1 1 9s y s l e m 寄存器名寄存器号用途 是否保存 $ z e r oo常数0n a $ v o 。$ v l2 3结果或表达式的值n o $ a 0 $ a 3 4 7 变量 y e s $ t 0 一$ t 78 一1 5临时寄存器 n o $ s 0 一$ s 7 1 6 2 3 保存寄存器y e s $ t 8 一$ t 92 4 2 5临时寄存器n o $ g p 2 8全局指针 y e s $ s p 2 9堆栈指针 y e s $ 印 3 0 帧指针y e s $ r a3 l返回地址 y e s 3 3 存储器访问指令 存储器访问指令是每个处理机都必须具备的。最基本的存储器访问指令包 括取数据( 1 0 a d ) 和存数据( s t o r e ) 两种。取数据是从存储器读出数据,把它 北京工业大学工学硕士学位论文 写入寄存器中:存数据是把寄存器中的数据写入存储器中。 把数据从存储器中取出并存入寄存器中的数据传输指令称为1 0 a d ,实际的 m i p s 指令名是1 w ( 即l o a dw o r d ) 。l o a d 指令的格式: 1 wr t ,o f f s e t ( r s ) r t 目的寄存器,是将要把数据存入的寄存器:r s 源寄存器,r s 中的数据 与1 6 位偏移量( o f f s e t ) 相加得存储器地址。 1 w 指令的编码格式如下: 3 12 6 2 52 12 01 6 1 50 与l o a d 相对的指令称为s t o r e ,这一指令完成把寄存器中的数据存到存储器中 m i p s 指令中的名字是s w ( 即s t o r ew o r d ) 。s w 的指令格式与1 w 相似: s wr t ,o f f s e t ( r s ) 将寄存器r t 中的数据存储到r s 中的内容与1 6 偏移量相加得出的存储器地址 中。s w 的编码格式如下: 3 l2 62 52 l2 01 6 1 5o 3 4a l u 指令 a l u 指令共分为4 类:逻辑运算指令、算术运算指令、移位指令、比较指 令。 逻辑运算指令包括寄存器操作类型和立即数操作类型。寄存器操作类型是 对两个寄存器中的内容进行逻辑运算,结果存到寄存器中,如a n d 、0 r 、x 0 r 、 n o r 等;立即数操作类型是对寄存器中的内容和3 2 位扩展立即数进行逻辑运算, 结果存到寄存器中,如a n d i 、0 r i 、x o r i 、n o r i 等。逻辑运算指令的编码格式 和操作如表3 3 所示: 第3 奄m i p s 3 2 指令系统 表3 3 a l u 逻辑运算指令 t a b i e3 - 3t h ea l u l o g i c 叩e r a t i o ni i l s t n l c t i o n s i n s t r u c t i o n o p r sr tr ds h a m t缸n c tc 0 m m e n t s a n d0 0 0 0 0 00 0 0 0 0l 0 0 1 0 0a n dr d ,r s ,r t 0 r0 0 0 0 0 00 0 0 0 01 0 0 1 0 lo rr d r s n x o r0 0 0 0 0 00 0 0 0 0】0 0 】0x o r r d ,r s ,n n o ro o o o o oo o 0 0 0l o o l l in o r r d ,r 8 ,r t a n d l0 0 1 1 0 0嘶e d i a t ea n d i r t ,r s ,i m m e d i a t e 0 r 10 0 1 1 0 1i m m e d i a t eo r jr t b ,i m m e d i a t e x o r i0 0 l l l 0i m m e d i a t e x o f un ,r s ,i m m e d i a t e 算术运算指令与逻辑运算指令类似,不同的是算术运算指令还包含了有符 号数和无符号数。a d d 、a d d i 、s u b 、m u l t 表示参与运算是有符号数,立即 数作有符号扩展;a d d u 、a d d i u 、s u b u 、m u l l u 表示参与运算的是无符号 数,立即数作无符号扩展。乘法器采用b o o t h 编码完成1 6 1 6 位乘法。算术运 算指令的编码格式和操作如表3 4 所示 移位指令包括左移指令和右移指令s l l 、s l l v 、s r a 、s r a v 、s r l 、s r l v 等。 s l l ( s h i f t1 e f t1 0 9 i c a l ) 逻辑左移,指令格式:s l lr d ,r t ,s a 。将寄存器 r t 中的数据左移s a 位,低位补o ,结果存入寄存器r d 中;s l l v ( s h i f tl e f t l o g i c a lv a r i a b l e ) 变量逻辑左移,指令格式:s l l vr d ,r t ,r s 。将寄存器中r t 中的数据左移,低位补o ,移位数由寄存器r s 低5 位确定,结果存入寄存器r d 中。逻辑右移指令与逻辑左移指令相似,在此不再详述,s r l ( s h i f tr i g h t l o g i c a l ) 、s r l v ( s h i f tr i g h tl o g i c a lv a r i a b l e ) 指令格式为:s r lr d ,r t s a : s r l vr d ,r t ,r s 。s r a ( s h i f tr i g h ta r i t h m e t i c ) 算术右移,指令格式: s r ar d ,r t ,s a 。寄存器r t 中的数据右移s a 位,高位作符号扩展,结果存入寄 存器r d 中。s r a v ( s h i f tr i g h ta r i t h m e t i cv a r i a b l e ) 变量算术右移,指令格 式:s r a vr d ,r t ,r s 。寄存器r t 中的数据右移,移位数由寄存器r s 的低五位决 定,高位作符号扩展,结果存入寄存器r d 中。 北京工业大学工学硕士学位论文 移位指令的编码格式和操作如表3 5 所示: 表3 4a l u 算术运算指令 t a b l e3 4t h ea l ua r i t h m e t i co p e r a t i o nm s t r u c t i o n s l n s t r u c t i o n o p r s r tr ds h a m tf h n c tc o m m e n t s a d d0 0 0 0 0 00 0 0 0 01 0 0 0 0 0a d d r d ,r s ,n a d d u0 0 0 0 0 00 0 0 0 01 0 0 0 0 】a d d u r d ,r s ,r t s u b0 0 0 0 0 00 0 0 0 01 0 0 0 1 0s u br d ,r s ,r t s u b u 0 0 0 0 0 00 0 0 0 01 0 0 0 1 1s u b u r d ,r s ,r t m u l t0 0 0 0 0 00 0 0 0 00 1 1 0 0 0m u u l r d ,r s ,n m u 【t u0 0 0 0 0 00 0 0 0 00 1 1 0 0 lm u u u r d ,r t ,r s a d d i0 0 1 0 0 0i m m e d i a t ea d d lr t ,r s ,i m m e d i a t e a d d i u0 0 1 0 0 1i m m e d i a t ea d d i u r t ,r s , i m m e d i a t e 表3 5a l u 移位指令 1 h b l e3 - 5t h ea l us h i n i l l gi i l s t m c t i o n s i n s t r u c t i o n o p r sr tr ds h m tf u n c tc o m m e n t s s l l0 0 0 0 0 00 0 0 0 0r tr do o o 0 0 0s l l r d ,r t ,s a s l l 0 0 0 0 0 0f sr tr d0 0 0 0 00 0 0 1 0 0 s l l 、,r d ,吨f s s r a0 0 0 0 0 00 0 0 0 0r tr ds a0 0 0 0 l ls r a r d , s a s r a v0 0 0 0 0 0r sr tr d0 0 0 0 0o 0 0 1 1 1s r a v r d ,r t ,r s s r l0 0 0 0 0 0o o 0 0 0r tr d 0 0 0 0 1 0s r l r d ,r t ,s a s r l v0 0 0 0 0 0 r sr tr d0 0 0 0 00 0 0 1 1 0 s r l r d ,r t ,r s 比较指令比较两个的大小,以1 和0 标识。比较指令同样涉及寄存器类型 和立即数类型,有符号数和无符号数,包括s l t ( s e to nl e s st h a n ) 、s l t i ( s e t o nl e s st h a ni m e d i a t e ) 、s l t i u ( s e to nl e s st h a ni 哪e d i a t eu n s i g n e d ) 、 - 1 6 第3 章m i p s 3 2 指令系统 s l t u ( s e t0 nl e s st h a nu n s i g n e d ) 。 s l t 指令格式:s l tr d ,r t ,r s 。寄存器r s 、r t 中均为有符号数,如果r s 中的数小于r t 中的数结果为l ,否则为o ,结果存入目的寄存器r d 中。s l t i 指令格式:s l t ir t ,r s i m m e d i a t e 。1 6 位立即数作符号扩展至3 2 位,如果r s 中的数据小于立即数结果为1 ,否则为0 ,结果存入r d 中。s l t u 和s l t i u 与s l t 和s l t i 类似,不同的是s l t u 和s l t i u 是对无符号数操作。 比较指令的编码格

温馨提示

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

评论

0/150

提交评论