第10讲_RISC.ppt_第1页
第10讲_RISC.ppt_第2页
第10讲_RISC.ppt_第3页
第10讲_RISC.ppt_第4页
第10讲_RISC.ppt_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机组成原理,Principles of Computer Organization,广义双语教学课程,09/skyclass25/,青岛理工大学 校级精品课程,2,第5章 指令系统,(2),Chapter 5 Instruction Sets,A complex instruction set computer (CISC) is a computer instruction set architecture (ISA) in which each instruction can execute several low-level operations,

2、 such as a load from memory, an arithmetic operation, and a memory store, all in a single instruction.,3,5.3 寻址方式 Addressing Modes,Addressing modes are an aspect of the instruction set architecture in most central processing unit (CPU) designs. The various addressing modes that are defined in a give

3、n instruction set architecture define how machine language instructions in that architecture identify the operand (or operands) of each instruction.,由于指令字长的限制,指令中的地址码不可能很长,地址码的位数往往小于实际存储空间的地址位数,而程序又需要能访问整个存储空间,这是寻址方式设计要解决的问题。,存放指令的地址称为指令地址;存放数据的地址称为操作数地址。寻址就是寻找操作数的地址,其最终目的是寻找所需的操作数。,形成操作数地址的过程称为寻址过程

4、。寻址方式就是寻找操作数地址的方法,或者说,是操作数地址的形成方式。,4,An addressing mode specifies how to calculate the effective memory address of an operand by using information held in registers and/or constants contained within a machine instruction or elsewhere.,为了能够在指令中用较短的地址码访问较大的存储空间,以及为了便于编程,就产生出多种的寻址方式。在指令的地址码字段给出的不是操作数的直

5、接地址,而是与操作数地址有关的一些特征信息,称为形式地址;还要经过一系列的计算、变换才能得到存放操作数的有效地址Effective Address 。,寻址方式 Addressing Modes,There are many type of addressing modes such as direct addressing, indirect addressing, immediate addressing, index addressing, based addressing, based-index addressing, implied addressing, etc.,5,1. 直接

6、寻址方式 Direct Addressing,指令的地址码部分给出的就是操作数在主存储器的地址,这种方式称为直接寻址方式。,根据指令地址码部分给出的直接地址Addr就可以从存储器中读出所需要的操作数。,直接寻址方式简单、直观,便于硬件实现。但所需的地址码很长,加长了指令的长度。操作数的地址是指令的一部分,不能修改,只能用来访问固定的存储器单元。,6,2. 间接寻址方式 Indirect Addressing,在指令的地址码部分直接给出的既不是操作数,也不是操作数的地址,而是操作数的地址的地址,这种方式称为间接寻址。,间接寻址分为一次间址和多次间址。,间接寻址方式至少要两次访存(一次读操作数的地

7、址,另一次读操作数)才能取得操作数,降低指令执行速度,间接寻址比直接寻址灵活。当需要改变操作数地址时,不必修改指令,只需修改存放有效地址的那个单元(称为间接指示器)的内容。,7,3. 寄存器寻址 Register Addressing,若指令地址码部分给出的是某通用寄存器号Ri,操作数就存放在该寄存器中,则称为寄存器寻址(寄存器直接寻址)。,由于通用寄存器的数目较少,一般只有几个到十几个,因而地址码很短;而且从CPU内部寄存器中存取数据比从存储器中快得多,所以采用寄存器寻址方式可以缩短指令的长度,节省存储空间,提高指令的执行速度。,8,4. 寄存器间接寻址 Register Indirect

8、Addressing,指令中给出的地址码是寄存器号,所指定的寄存器中存放的是操作数在主存储器的地址,这种寻址方式称为寄存器间接寻址。,在寄存器间接寻址方式中,寄存器的内容为操作数的有效地址,寄存器作为指示器,操作数在主存而不在寄存器中。,寄存器间接寻址方式不需访存取有效地址。寄存器能给出全字长的地址码。,9,5. 变址寻址 Indexing,变址寻址的基本操作是把变址寄存器的变址值与指令的地址码提供的形式地址相加得到操作数的有效地址。,变址寄存器的内容每使用一次就应改变一次,以实现变址的目的,变址寻址的典型用法是在遇到需要连续修改数据地址时,不必修改指令,只需修改变址值。形式地址A一般是不变的

9、。,变址寻址在字符串处理、向量运算等成批数据处理中很有用。,10,6. 基址寻址 Base-Register Addressing,基址寻址方式是将基址寄存器的内容与指令中的形式地址相加,形成操作数的有效地址。,基址寄存器的内容称为基地址,形式地址部分是一个位移量。,11,基址寻址与变址寻址在形式和操作数地址的形成上是相似的,但二者的概念和应用场合不同。,基址寻址面向系统,主要用于逻辑地址到物理地址的变换,用以解决程序在存储器中的定位和扩大寻址空间等问题;基址寄存器提供基准值(固定的),指令提供位移量(可变的)。,变址寻址是面向用户的,用于访问字符串、向量和数组等成批数据,不具有逻辑地址到物理

10、地址的变换功能;变址寄存器提供修改量(可变的)。,相对寻址、基址寻址和变址寻址都属于: Displacement Addressing,7. 相对寻址 Relative Addressing,把程序计数器PC当前的内容与指令地址码字段给出的形式地址(位移量)之和作为操作数的地址,称为相对寻址。,相对寻址方式的寻址范围是以程序计数器PC的当前内容作为基准向正或向负浮动一个形式地址的范围。位移量通常用补码表示。,有效地址E=(PC)+D。操作数的地址不是固定的,随程序装入的位置而变化,并与寻址时的PC值保持一个固定的差值。无论程序装入存储器的什么位置,只要这个差值不变,均能正确运行。,主要用于相对

11、转移指令,13,8. 立即寻址 Immediate Addressing,所需的操作数由指令的地址码部分直接给出,就称为立即寻址方式。包含在指令中的操作数称为立即数。,立即寻址方式的特点是取指令时操作码和一个操作数同时被取出,不必再次访问存储器,提高了指令的执行速度。,由于这一操作数是指令的一部分,不能修改。操作数的大小也受指令地址码长度的限制。,这种方式灵活性较差,只能适用于操作数固定的情况。通常用于某一寄存器或存储器单元赋初值或提供一个常数等。,14,9. 堆栈寻址 Stack Addressing,堆栈(Stack)是一种特殊的数据结构,它是一个数据序列,其元素的个数和内容是动态变化的。

12、堆栈中元素的存取按“后进先出(Last In First Out)”的原则进行。,软堆栈(存储器堆栈)是在内存中开辟一块存储区域作为堆栈,其位置和数量都可由程序员设定,堆栈深度几乎是“无限的”。,通常用一个寄存器指出栈顶的位置,该寄存器称为堆栈指示器或堆栈指针SP(Stack Pointer)。SP总是指向栈顶。,堆栈中的一个元素称为“栈项”。栈项按顺序进入堆栈称为压栈或压入。最后压入堆栈的元素称为栈顶元素。,栈项按与进栈相反的顺序从堆栈中取出称为出栈或弹出。最先弹出的是栈顶元素。,当堆栈中没有元素时,称为空栈,此时SP指向栈底。,任何堆栈操作只能在栈顶进行。,15,堆栈有两种工作方式:,(1

13、)向下生成方式,堆栈从高地址向低地址扩展,栈底的地址总是大于或等于栈顶的地址。,在执行压入操作时,首先把堆栈指针SP减量,每压入一个字节SP减1,然后把数据送入SP指向的单元。,在执行弹出操作时,首先把SP指向的单元(即栈顶)的数据取出,然后根据数据的字节数对SP增量,每弹出一个字节SP加1。,16,堆栈有两种工作方式:,(2)向上生成方式,堆栈从低地址向高地址扩展,栈顶的地址总是大于或等于栈底的地址。进栈是按从低地址向高地址顺序存放。出栈是从高地址向低地址依次取出。,堆栈操作使用一种特殊的数据传送指令,压入指令PUSH和弹出指令POP。,堆栈在中断和子程序调用过程中广泛用于保存返回地址、状态

14、标志及现场信息。堆栈还用于子程序调用时参数的传递。,10. 页面寻址 Page Addressing,页面寻址是把计算机的主存划分成若干块,每块称为一页。页的编号称为页面地址,页的大小(每页中存储单元的个数)在不同的机器中有不同的规定,如256、512或1024字节等,应与指令地址码字段中的形式地址的位数一致。,指令的地址码字段中的形式地址称为页内地址,有效地址是由页内地址和页面地址寄存器中的内容拼接而成的。,页面寻址方式用较短的指令地址码表示较长的地址,寻址过程不需要计算,指令的执行速度快。,18,11. 隐含寻址 Implicit Addressing,Either the source

15、(if any) or destination effective address (or sometimes both) is implied by the opcode.,The implied addressing mode, also called the implicit addressing mode, does not explicitly specify an effective address for either the source or the destination (or sometimes both).,隐含寻址方式是把指令的某个操作数或操作数的地址隐含在某个通用

16、寄存器或者指定的存储单元中,而在指令中不直接给出。,隐含寻址方式可缩短指令长度。,Note that there is no generally accepted way of naming the various addressing modes. In particular, different authors and computer manufacturers may give different names to the same addressing mode, or the same names to different addressing modes.,19,注意: 1每种寻

17、址方式的寻址机制,操作数的有效地址是怎样形成的? 2指令的地址码字段(形式地址)中是什么? 3操作数的位置在哪里?,寻址方式的设计是指令系统设计的重要内容。计算机寻址方式与其硬件结构紧密相关,而且对指令格式和功能都有很大影响。,机器能够为用户提供的寻址方式的数目与类型,对于程序设计方便与否、能否减少访存次数和程序存储空间等都起着重要作用。,在指令的执行过程中,操作数可能在存储器的某个单元中,也可能在CPU的通用寄存器中,或者在指令中,在I/O端口等。,20,零地址、一地址和两地址指令具有指令短,执行速度快,硬件实现简单等特点,常见于结构较简单,字长较短的小型、微型机的指令中。,而三地址和多地址

18、指令具有功能强,便于编程等特点,多见于字长较长的大型机、巨型机。,指令格式与机器的字长、存储器的容量及指令的功能有关。,从便于程序设计、增加基本操作的并行性、提高指令的功能的角度来看,指令中所包含的信息越多越好,但这将造成指令过长;从节省存储空间、减少访问存储器次数、提高指令执行速度的角度看,指令中所包含的信息以少为宜,但这又会减弱指令的功能。,设计指令格式应考虑的因素,21,5.1 指令系统的发展,In the early days of the computer industry, programming was done in assembly language or machine c

19、ode, which encouraged powerful and easy to use instructions.,CPU designers therefore tried to make instructions that would do as much work as possible.,With the advent of higher level languages, computer architects also started to create dedicated instructions to directly implement certain central m

20、echanisms of such languages.,Another general goal was to provide every possible addressing mode for every instruction, known as orthogonality, to ease compiler implementation.,22,指令系统是随着计算机体系结构的完善和性能的提高而发展起来的。早期的计算机结构简单,指令条数少,指令系统功能弱,计算机的性能较差。,随着VLSI技术的迅速发展,硬件成本不断下降,软件成本不断上升,促使人们在指令系统中增加更多的指令和更复杂的指令

21、,以适应不同应用领域的需要。,系列机问世之后,为了能做到程序兼容,新设机型或高档机除了要继承老机器的指令系统中的全部指令外,还要增加若干新的指令,导致同一系列计算机的指令系统越来越复杂,机器结构也越来越复杂。大多数计算机的指令系统多到几百条指令。,这就体现了计算机性能越高,其指令系统应越复杂的传统设计思想。这类计算机称为“复杂指令系统计算机”,简称CISC(Complex Instruction Set Computer)。,例如,DEC公司的VAX/780机有303条指令,18种寻址方式。,23,对CISC指令系统的合理性的研究表明,CISC存在以下缺点:, CISC指令系统中各种指令使用频

22、率相差悬殊。,对CISC指令系统的运行所作的统计分析结果表明,仅占指令总数20的一些较简单的指令,在程序中使用的频率却占80。其余80的指令只是在20的运行时间内才有用。, CISC指令系统的复杂性带来了计算机体系结构的复杂性。,这不但增加了计算机的研制周期和成本(例如32位的微处理器80386的开发费时三年多,耗资一亿五千万美元),还增加了设计失误的可能性。, CISC的许多复杂指令有很复杂的微码操作,因而速度很慢。, CISC指令系统的复杂性给VLSI设计增加很大负担。,5.5 精简指令系统计算机,24,1975年IBM公司的John Cocke提出了精简指令系统的想法,后来出现了各种各样

23、的“精简指令系统计算机”,简称RISC(Reduced Instruction Set Computer。,RISC技术的实质是要求指令系统简化,尽量使用寄存器-寄存器操作指令,指令操作在一个周期内完成,指令格式力求一致,以利于提高编译的效率。,RISC处理器通常只有几十条指令,大多数指令的功能都是简单的。,5.5.2 RISC的产生和发展,25,5.5.3 RISC的特点,精简指令系统计算机不仅是要简化指令系统,而且要通过简化指令系统使计算机的硬件结构变得简单合理,以提高运算速度。最有效的办法是减少指令的执行周期数。,若设高级语言程序经编译后在机器上运行的机器指令数为I,,P = ICT,每

24、条机器指令执行时所需要的平均机器周期数为C,,每个机器周期的执行时间为T,,则计算机执行程序所需的时间P可用下式计算:,26,RISC的主要特点,P = ICT,RISC指令比较简单,CISC机中比较复杂的指令可用RISC 中 一段子程序来代替,因此,RISC的机器指令数 I 比CISC的多2040。,表中I、T为比值,C为实际周期数,RISC的大多数指令只用一个机器周期实现,平均机器周期数C的值比CISC的小得多。,RISC结构简单,完成一个操作所经过的数据通路较短,因此,每个机器周期的执行时间 T值大为减少。,总之,RISC的程序执行时间要比CISC的短。,27,RISC的设计原则,(1)

25、 选取使用频率最高的少数指令,并补充一些最有用的指令。,(2) 每条指令应在一个机器周期内完成。,(3) 所有指令长度都相同。,(4) 只有取数和存数指令才访问存储器,其余指令的操作都在寄存器之间进行。,(5) 以简单有效的方式支持高级语言。,28,RISC的技术特点,(1) 在逻辑实现上采用以硬件为主,固件为辅的技术,(2) 流水线组织,(3) 延迟转移技术,(4) 重叠寄存器窗口技术,A1,A2,A3,B1,B2,B3,C1,C2,C3,D1,D2,D3,存放B的 工作数据,存放与A交换 的参数,存放与C交换 的参数,29,RISC的技术特点,(1) 在逻辑实现上采用以硬件为主,固件为辅的

26、技术,(2) 流水线组织,(3) 延迟转移技术,(4) 重叠寄存器窗口技术,RISC既继承了 CISC的成功技术,又克服了 CISC的缺点,就使得机器速度更快,程序运行时间缩短。,二十世纪八十年代RISC处理器首先转向硬布线技术。九十年代,高性能的CISC处理器也开始部分采用硬布线技术。例如,Pentium II处理器将简单指令的解释用硬布线技术实现(即所谓RISC内核),缩短了这些简单指令的执行时间。复杂指令(需4条以上微指令)的解释仍然用微程序控制技术。,30,5.6 指令系统举例,SPARC,Pentium,31,计算机组成原理设计性作业,课题2 指令系统设计,设计一个简单的(没有中断功

27、能)16位RISC定点处理器的指令系统。 指令系统设计的任务包括设计:指令功能、指令格式、寻址方式、全部指令的助记符、指令编码等。 试分析一个简单的计算机至少需要哪些指令就能够完成最基本的运算?对于RISC机,适当增加一些功能比较强的更有用的指令有利于编程。,提示:指令系统设计与寄存器结构、标志寄存器、等有关。可以参考“定点运算器设计”的通用寄存器组、标志寄存器。,第6周周末完成,32,Homework,5 - 2, 3, 8, 9,There are many ways through which data can be read or stored in the memory. Each

28、method is an addressing mode, and has its own advantages and limitations.,An addressing mode specifies how to calculate the effective memory address of an operand by using information held in registers and/or constants contained within a machine instruction or elsewhere.,The various addressing modes

29、 that are defined in a given instruction set architecture define how machine language instructions in that architecture identify the operand (or operands) of each instruction.,33,一. (10分) 求X补、 X/2补、 X/4补、 2X补=? X= -43/64,X=( -43/64)10=( -0.101011)2 (2分),X补= 1.010101 (2分),解:,X/2补= 1.101010 或 X/2补= 1.

30、101011 (2分),X/4补= 1.110101 (2分),2X补= 溢出 (2分),测验1参考答案,注意;概念准确,方法正确,步骤清晰完整,,34,25位小数原码的表示范围: +(12-24) -(12-24),二. (12分) 定点数的表示范围。 32位整数原码。 25位小数原码。 28位整数补码。 27位小数补码。,32位整数原码的表示范围:+(2311) -(2311),解:,28位整数补码的表示范围: +(2271) -227,27位小数补码的表示范围: +(12-26) -1.0,测验1参考答案,注意;概念准确,方法正确,步骤清晰完整,,N+1位的机器数,三(16分) 定点补码

31、加减法。求X+Y, XY X= -0.5625,Y= +39/64,解:,X=(-0.5625)10=(-0.1001)2,Y=(+39/64)10=(+0.100111)2,采用7位机器数(N=6),X补= 1.011100,X+Y补=X补+Y补= 11.011100+ 00.100111,X+Y= +0.000011,=00.000011,Y补= 0.100111,XY补=X补+-Y补= 11.011100+11.011001,-Y补= 1.011001,= 溢出,取双符号位运算,注意;概念准确,方法正确,步骤清晰完整,测验1参考答案,36,四. (8分)浮点数表示范围。尾数12位原码,阶

32、码8位补码。,写出该浮点数能表示的:最大正数,绝对值最大负数,最小正数,绝对值最小负数。,解:,最大正数,绝对值最大负数,最小正数,绝对值最小负数,规格化,非规格化,测验1参考答案,37,五 (16分)移码加减法。求X+Y, XY X= -69,Y= +57,,解:,X=(-69)10=(-1000101)2,Y=( +57)10=(+111001)2,X补 = 10111011 X移 = 00111011 (N=7),Y补 = 00111001 Y移 = 10111001,X+Y移 = X移+Y补,= 000111011+000111001,= 00111011+00111001,= 001110100,取双符号位运算,X+Y补 =11110100,X+Y= (-1100)2=(-12)10,测验1参考答案,38,-Y补 = 11000111,X-Y移 = X移+-Y补,= 00111011+11000111,= 000111011+111000111,= 000000010,X-Y补 =10000010,X-Y= (-1111110)2=(-126)10,移码加减法。X= -69,Y= +57, 求X+Y, XY,取双符号位运算,测验1参考答案,六 (23分) 浮点数,尾数8位补码,阶码6位移码(都包括符号位)。 X= -4.75, Y=+28.75, (

温馨提示

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

评论

0/150

提交评论