《计算机组成与系统结构》第五章ppt课件

上传人:资****亨 文档编号:141881334 上传时间:2020-08-13 格式:PPT 页数:89 大小:1.81MB
返回 下载 相关 举报
《计算机组成与系统结构》第五章ppt课件_第1页
第1页 / 共89页
《计算机组成与系统结构》第五章ppt课件_第2页
第2页 / 共89页
《计算机组成与系统结构》第五章ppt课件_第3页
第3页 / 共89页
《计算机组成与系统结构》第五章ppt课件_第4页
第4页 / 共89页
《计算机组成与系统结构》第五章ppt课件_第5页
第5页 / 共89页
点击查看更多>>
资源描述

《《计算机组成与系统结构》第五章ppt课件》由会员分享,可在线阅读,更多相关《《计算机组成与系统结构》第五章ppt课件(89页珍藏版)》请在金锄头文库上搜索。

1、Ch5: Instruction Set指令系统,第1讲:指令系统的设计 第2讲:程序的机器级表示,第一讲 指令系统设计,一条指令必须指定的信息 指令中的地址码个数 指令系统设计的基本原则 指令类型 数据类型 寄存器组织 存储器组织 操作数的寻址方式 立即 / 寄存器 / 寄存器间接 / 直接 / 间接 / 堆栈 / 偏移 操作码的编码 定长编码法 变长扩展编码法 条件码和标志寄存器 指令设计风格 指令系统举例,主 要 内 容,Instruction Set Design,回顾:冯.诺依曼结构机器对指令规定: 用二进制表示,和数据一起存放在主存中 由两部分组成:操作码和操作数(或其地址码) O

2、peration Code: defines the operation type Operands: indicate operation source and destination,指令系统处在软/硬件交界面,能同时被硬件设计者和系统程序员看到 硬件设计者角度:指令系统为CPU提供功能需求(易于硬件设计) 系统程序员角度:通过指令系统来使用硬件,要求易于编写编译器) 指令系统设计的好坏还决定了:计算机的性能和成本,Instruction Set Architecture,ADD SUBTRACT AND OR COMPARE . . .,01010 01110 10011 10001 1

3、1010 . . .,CPU,Memory,I/O,Princeton (Von Neumann) Architecture,- 数据和指令存放在同一个存储器中 - 存储空间利用率高 - 统一的访问接口,Harvard Architecture,- 数据和指令存放在不同存储器 - 存储访问效率高 - 有利于流水线执行,一条指令须包含的信息,一条指令必须明显或隐含地包含以下信息: 操作码:指定操作类型 (操作码长度:固定可变) 源操作数参照:一个或多个源操作数所在的地址 (操作数来源:主(虚)存/寄存器/I/O端口/指令本身) 结果值参照:产生的结果存放何处 (结果地址:主(虚)存/寄存器/I/

4、O端口) 下一条指令地址:下条指令存放何处 (下条指令地址 :主(虚)存) (正常情况隐含在PC中,改变顺序时由指令给出),地址码字段的个数,据上述分析知,一条指令包含个操作码和多个地址码 零地址指令 (1) 无需操作数如:空操作停机等 (2) 所需操作数为默认的如:堆栈累加器等 形式: 一地址指令 其地址既是操作数的地址,也是结果的地址 (1) 单目运算:如:取反取负等 (2) 双目运算:另一操作数为默认的如:累加器等 形式:,二地址指令(最常用) 分别存放双目运算中两个操作数,并将其中一个地址作为结果的地址。 形式: 三地址指令(RISC风格) 分别作为双目运算中两个源操作数的地址和一个结

5、果的地址。 形式: 多地址指令 大中型机中用于成批数据处理的指令,如:向量 / 矩阵等,从指令执行周期看指令设计涉及的问题,Instruction Fetch,Instruction Decode,Operand Fetch,Execute,Result Store,Next Instruction,Obtain instruction from program storage,Determine required actions,Locate and obtain operand data,Compute result value or status,Deposit results in s

6、torage for later use,Determine successor instruction,指令地址、指令长度(定长/变长),指令格式、操作码编码、操作数类型,地址码格式、寻址方式、操作数格式和存放方式,操作类型、标志或条件码,结果数据位置,下条指令地址(顺序 / 转移),指令格式的选择应遵循的几条基本原则: 应尽量短 要有足够的操作码位数 指令编码必须有唯一的解释,否则是不合法的指令 指令字长应是字节的整数倍 合理地选择地址字段的个数 指令尽量规整 与指令集设计相关的重要方面 操作码的全部组成:操作码个数/种类/复杂度 LD/ST/INC/BRN 四种指令已足够编制任何可计算程

7、序,但程序会很长 数据类型:对哪几种数据类型完成操作 指令格式:指令长度/地址码个数/各字段长度 通用寄存器:个数/功能/长度 寻址方式:操作数地址的指定方式 下条指令的地址如何确定:顺序,PC+1;条件转移;无条件转移;,指令格式的设计,一般通过对操作码的不同编码定义不同的含义,操作码相同时,再由功能码定义不同的含义!,Typical Operations(典型的操作),Data Movement,Load (from memory) Store (to memory) memory-to-memory move register-to-register move push, pop (to

8、/from stack),Arithmetic,integer (binary + decimal) or FP Add, Subtract, Multiply, Divide adc(带进位加),sbb (带借位减),Logical,not, and, or, set, clear,Shift,(arithmatic,logic,rotate)left/right shift,Exec-Seq control,Jump, branch,Subroutine Linkage,call, return,Interrupt,trap, interrupt return,Synchronizatio

9、n,test 11111 (00000 00001) 零地址指令: 11111 (00010 11111) (000000 11111) 故零地址指令最多有 30 x26=15x27 种,PDP-11中典型指令格式,采用专门的寻址方式字段,Methods of Testing Condition (条件测试方式), 条件转移指令通常根据Condition Codes (条件码 / 状态位 / 标志位)转移 通过执行算术指令或显式地由比较和测试指令来设置 ex: sub r1, r2, r3 ;r2和r3相减, 结果在r1中,并生成标志位ZF、CF等 bz label ;标志位ZF=1时,转移到

10、label处执行 常用的标志有四种: NF(SF) - negative VF(OF) - overflow CF - carry ZF - zero 标志位可存放在标志(Flag)寄存器(条件码CC寄存器 / 状态Status寄存器 / 程序状态字PSW寄存器)中 也可由指定的通用寄存器来存放状态位 Ex:cmp r1, r2, r3 ;比较r2和r3, 标志位存储在r1中 bgt r1, label ;判断r1是否大于0,是则转移到label处 可以将两条指令合成一条指令,即:计算并转移 Ex:bgt r1, r2, label ;根据r1和r2比较结果,决定是否转移,不同处理器,对标志位

11、的处理不同!,指令设计风格 - 按操作数位置指定风格来分,Accumulator: (earliest machines) 累加器型 特点:其中一个操作数总在累加器中 1 address add A acc - acc + memA 1(+x) address add x A acc - acc + memA + x Stack: (e.g. HP calculator, Java virtual machines) 堆栈型 特点:总是将栈顶两个操作数进行运算,指令无需指定操作数地址 0 address add tos - tos + next General Purpose Register

12、: (e.g. IA-32, Motorola 68xxx) 通用寄存器型 特点:操作数可以是寄存器或存储器数据 2 address add A B EA(A) - EA(A) + EA(B) 3 address add A B C EA(A) - EA(B) + EA(C) Load/Store: (e.g. SPARC, MIPS, PowerPC) 装入/存储型 特点:操作数只能是寄存器数据,只有load/store能访问存储器 3 addressadd Ra Rb Rc Ra - Rb + Rc load Ra Rb Ra - memRb store Ra Rb memRb - Ra,

13、Comparing Instructions,Comparison:,Bytes per instruction? Number of Instructions? Cycles per instruction?,复杂表达式时,累加器型风格指令条数变多,因为所有运算都要用累加器,使得程序中多出许多移入 / 移出累加器的指令!,75年开始,寄存器型占主导地位 ( Java Virtual Machine 采用Stack型) 寄存器速度快,使用大量通用寄存器可减少访存操作 表达式编译时与顺序无关(相对于Stack),Examples of Register Usage,每条典型ALU指令中的存储器地

14、址个数,每条典型ALU指令中的最多操作数个数,Examples,0,3,SPARC, MIPS, Precision Architecture, Power PC,1,2,Intel 80 x86, Motorola 68000,2,2,VAX (also has 3-operand formats),3,3,VAX (also has 2-operand formats),In VAX(CISC):ADDL (R9), (R10), (R11) memR9 - memR10 + memR11,In MIPS(RISC): lw R1, (R10) #load a word lw R2, (R

15、11) add R3, R1, R2 #R3 - R1+R2 sw R3, (R9) #store a word,一条指令!,哪一种风格更好呢?学了第6和第7章后会有更深的体会!,指令设计风格 按指令格式的复杂度来分,早期CISC设计风格的主要特点 (1) 指令系统复杂 指令多 / 寻址方式多 / 指令格式多 (2) 指令周期长 绝大多数指令需要多个时钟周期才能完成 (3) 各种指令都能访问存储器 除了专门的存储器读写指令外,运算指令也能访问存储器 (4) 采用微程序控制 (5) 有专用寄存器 (6) 难以进行编译优化来生成高效目标代码,例如,VAX-11/780小型机 16种寻址方式;9种数

16、据格式;303条指令; 一条指令包括12个字节的操作码和下续N个操作数说明符。一个说明符的长度达1 10个字节。,按指令格式的复杂度来分,有两种类型计算机: 复杂指令集计算机CISC (Complex Instruction Set Computer) 精简指令集计算机RISC (Reduce Instruction Set Computer),复杂指令集计算机CISC,对CISC进行测试,发现一个事实: 在程序中各种指令出现的频率悬殊很大,最常使用的是一些简单指令,这些指令占程序的80%,但只占指令系统的20%。而且在微程序控制的计算机中,占指令总数20%的复杂指令占用了控制存储器容量的80%。 1982年美国加州伯克利大学的RISC,斯坦福大学的MIPS,IBM公司的IBM801相继宣告完成,这些机器被称为第一代RISC机。,CISC的缺陷 日趋庞大的指令系统不但使计算机的研制周期变长,而且难以保证设计的正确性,难以调试和维护

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号