1 / 109

第 4 章 指令系统和控制器部件

第 4 章 指令系统和控制器部件. 4.1 指令系统. 4.2 控制器部件. 指令:. 是指示计算机执行基本操作的命令 。 指令也是用户使用计算机的最小功能单位。. 从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分。. 微指令: 是微程序级的命令,它属于硬件; 宏指令: 是由苦干条机器指令组成的软件指令,它属于软件; 机器指令: 则介于微指令与宏指令之间,通常简称为指令。每一条指令可完成一个独立的算术运算或逻辑运算操作。 本章所讨论的指令是机器指令。. 指令系统:.

quang
Download Presentation

第 4 章 指令系统和控制器部件

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第4章 指令系统和控制器部件 4.1 指令系统 4.2 控制器部件

  2. 指令: 是指示计算机执行基本操作的命令。指令也是用户使用计算机的最小功能单位。 从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分。

  3. 微指令:是微程序级的命令,它属于硬件; 宏指令:是由苦干条机器指令组成的软件指令,它属于软件; 机器指令:则介于微指令与宏指令之间,通常简称为指令。每一条指令可完成一个独立的算术运算或逻辑运算操作。 本章所讨论的指令是机器指令。

  4. 指令系统:   一台计算机支持(或称使用)的全部指令的集合构成该计算机的指令系统。   由于指令与计算机的性能以及硬件结构密切相关,所以不同系列、不同型号的计算机其指令系统是不一样的。

  5. 4.1 指令系统 • 指令的基本格式 •  指令格式的优化 •  寻址方式 • 指令系统举例 • Th-union汇编语言程序设计

  6. 一、指令的格式 1、机器指令   任何一条机器指令由一组有意义的二进制代码构成,称为一个指令字。 0000000000010010 0000000100010010 用机器指令编写的程序是计算机惟一能够直接识别并执行的程序,称为机器语言程序。机器语言程序被称为目标程序(目标代码)。

  7. 机器语言的特点 • 机器直接执行,速度快。 • 缺点:与机器硬件直接相关,通用性差;编程不直观、难以记忆、使用很不方便。

  8. 为了克服机器语言的缺点,人们采用助记符表示机器指令的操作码,用符号代替操作数的存放地址等,这样就形成了汇编指令。为了克服机器语言的缺点,人们采用助记符表示机器指令的操作码,用符号代替操作数的存放地址等,这样就形成了汇编指令。 例:机器指令:0000011100100001 汇编指令:MVRR R2,R1 用汇编指令编写的程序称为汇编源程序。   一条机器指令对应一条汇编指令。用汇编指令编写程序就直观方便得多。

  9. 汇编语言指令 机器指令代码 MVRR R0,R1 ADD R0,R3 … … 1000100111011000 … … … 汇编程序 执行 (翻译) 程序员 用汇编语言编写程序及执行的过程

  10. 汇编语言虽然较机器语言直观,但仍然烦琐难懂。于是人们研制出了高级程序设计语言。高级程序设计语言接近于人类自然语言的语法习惯,与计算机硬件无关,易被用户掌握和使用。 汇编语言虽然较机器语言直观,但仍然烦琐难懂。于是人们研制出了高级程序设计语言。高级程序设计语言接近于人类自然语言的语法习惯,与计算机硬件无关,易被用户掌握和使用。 高级语言

  11. (1) 用C语言实现: Main () { int a, b, sum; a=123; b=456; sum=a+b } 例如:编程实现 123加 456→ 求和

  12. (2)用8086汇编语言实现: a dw 123 b dw 456 sum dw ? Code segment assume CS: Code, DS:Data Main:mov ax,data mov ds,ax mov ax, a add ax, b mov sum , ax mov ax, 4c00h int 21h Main endp Code ends end main

  13. (3)用机器语言实现: 键入代码: -e cs:100A1 0F 01 03 06 11 01 A3 13 01 B8 00 4C CD 21 为数据分配空间: -e ds:10F 7B 00 C8 01 00 00

  14. 三种语言编写程序占用字节数

  15. 操作数地址码 操作码 2. 指令的基本格式   任何一条机器指令由一组有意义的二进制代码构成,称为一个指令字。 其基本格式可划分成二个部分: 表明操作数存放的位置,以便找到操作数完成指令的功能。 规定指令完成何种功能。

  16. 指令的操作码字段 指令的操 作数字段 例如: Th-union的机器指令 汇编指令 0000000000010010ADD R1,R2 0000000100010010SUB R1,R2 0000100100110000INC R3 1000100000010000MVRD R1,0055 0000000001010101 0055

  17. 1)操作码 在指令系统中,每一条指令都有唯一确定的操作码。   分二种形式: 定长操作码 变长操作码

  18. a. 定长操作码形式   在指令字中,操作码字段的位数和位置是固定的。   早期的计算机一般采用定长操作码的设计,控制简单,且对操作码的译码实现容易。

  19. 例如: • Th-union操作码是八位的: • 00000000~11111111 • 该指令系统最多可有256条指令。 • IBM 360/370 操作码是八位的: • 00000000~11111111 • 该指令系统最多可有多少条指令? 256

  20. IBM 360/370 计算机的指令格式 8 4 4 Ri:通用寄存器 Xi:变址寄存器 Bi:基址寄存器 Di:位移量 I: 立即数 L: 数据的长度 RR型 OPCR1 R2 8 4 4 4 12 RX型 OPCR1 X2 B2 D2 8 4 4 4 12 RS型 OPCRn Rm B D 8 4 4 12 SI型 OPCI2 B1 D2 8 8 4 12 4 12 SS型 OPCL B1 D1 B2 D2

  21. 定长操作码的特点 • 优点:有利于简化硬件设计,提高指令译码的速度和指令执行的速度。 • 缺点:限制了指令系统的扩充、 不利于缩短指令的长度,存在有很大程度的信息冗余 。

  22. b. 变长操作码形式   指令系统中,各指令的操作码字段位数不等长。 例:PDP-11小型机的指令系统 其指令长度为16位,操作码字段的长度有4、7、10、13、16等不同的情况。

  23. OP Mod Ri Mod Rj 四位 六位 六位 OP(7) Ri Mod Rj OP(10) Mod Rj OP(13) Rj 为增加操作码长度,采用 ——操作码逐段扩展技术 OP(16)

  24. 变长操作码的特点 • 优点:可方便扩充指令系统有利于缩短指令操作码的平均长度。 • 缺点:指令译码的控制复杂,硬件电路复杂。

  25. 2) 地址码的设计和安排 按照指令中地址码字段给出的地址的个数的不同, 无地址指令(零地址指令) 一地址指令(单地址指令) 有四种情况: 双地址指令 多地址指令

  26. Th-union的机器指令 汇编指令 0000000000010010ADD R1,R2 0000000110001001SUB R8,R9 0000100100110000INC R3 1000100000010000 MOV R1,0055H 0000000001010101

  27. 操作码 a. 无地址指令(零地址指令) 格式: • 指令不需要任何操作数。 • 例:NOP、HALT 有二种情况: • 操作数为隐含的,或操作数地址是默认的。 • 例:PUSHF、POPF

  28. b. 一地址指令(单地址指令) 格式: 操作码 地 址 码 • 只有一个地址码,用于单操作数指令。 例:INC、SHL、JMP、CALL • 或者双操作数指令,但其中一个操作数的 • 地址为默认值。 • 例:MUL、DIV

  29. 操作码 地址码1 地址码2 c. 双地址指令 格式: 地址码1既是源操作数的地址,也是目的操作数的地址。 双操作数在运算类、传送类指令中使用较多。 ADD DR, SR

  30. 操作码 地址码1 地址码2 地址码3  操作码 地址码1 地址码2 地址码3 地址码4 d. 多地址指令 格式1: 格式2: 特点:操作完成后源操作数的内容不被破坏,用户编程方便。严重的缺点是指令字较长。

  31. 3) 指令字长度 机器指令的二进制序列的位数。 • 定长指令变长操作码 • 变长指令定长操作码

  32. a. 定长指令变长操作码 该种形式是将操作码的设计与地址码的设计作为一个整体考虑,以形成高效合理的指令编码。 例:某机指令系统,指令字为16位固定长,要求有3地址指令、2地址指令、1地址指令和0地址指令,每个地址码4位。应如何设计?

  33. 设计方案为: • 三地址指令采用4位操作码 • 0000~ 1110 • 双地址指令采用8位操作码 • 11110000~ 11111110 • 一地址指令采用12位操作码 • 111111110000~ 111111111110 • 无地址指令采用16位操作码 • 1111111111110000~ 1111111111111111

  34. 0000XXXXXXXXXXXX 4位操作码 (3地址指令15条) ~ 1110XXXXXXXXXXXX 11110000XXXXXXXX 8位操作码 (2地址指令15条) ~ 11111110XXXXXXXX 11111111 0000XXXX 12位操作码 (1地址指令15条) ~ 11111111 1110XXXX 11111111 1111 0000 16位操作码 (0地址指令16条) ~ 11111111 1111 1111

  35. 练习: 设某机为定长指令字结构,指令长度12位,每个地址码占3位,试提出一种方案,使该系统包含4条三地址指令,8条二地址指令,180 条单地址指令。 另:能否构成三地址指令4条,单地址指令 255条,零地址指令64条呢?

  36. b. 变长指令定长操作码 指令字的长度与机器字长没有固定的关系。 例:IBM360/370 指令的操作码是8位的, 指令字为16位、32位、48位。 TH-union 指令的操作码是8位的, 指令字为16位.

  37. Th-union的指令格式 8位 4位 4位 操 作 码 目的寄存器 源寄存器 I/O 端口地址 条件转移指令的偏移量 直接数 / 内存地址 / 指令中变址偏移量 单字指令仅用一个指令字。 双字指令要用两个指令字, 此时第二个指令字的内容可能是立即数、一个绝对地址或一个变址位移量。

  38. Th-union的机器指令 汇编指令 0000000000010010ADDR1,R2 0000000100010010SUBR1,R2 0000100100110000INCR3 1000100000010000MVRDR1,0055 0000000001010101

  39. 二、指令格式的优化 定义: 缩短指令字的长度 方法: 地址码优化 操作码优化(这是本节主要讨论的) 优化目标: • 节省程序的存储空间 • 指令格式规整,易于译码 • 保持指令的执行速度

  40. 1 n H = ∑pi •log2 pi i=1 Huffman 编码法码长理论值: 其中,Pi表示第i种操作码在程序中出现的概率(使用频度),n为操作码的种数。

  41. 若采用3位固定长度操作码,信息冗余量: R = ( 3-1.95) / 3 ≈ 35 % 其中:1.95 为哈夫曼编码法的理论值

  42. 模型机的指令操作码哈夫曼编码法 指令 Pi Huffman编码 码长 I1 0.45 0 1 I2 0.30 102 I3 0.15 110 3 I4 0.05 1110 4 I5 0.03 11110 5 I6 0.01 111110 6 I7 0.01 1111116

  43. L=0.45X1+0.30X2 +0.15X3+0.05X4 +0.03X5+0.01X6 +0.01X6 =1.97(位) 所以,平均码长接近理论值!

  44. 1.97-1.95 << 35% R = = 1.02% 1.97 信息冗余量:

  45. 例:某计算机有10条指令,它们的使用频率分别为: 0.30, 0.20, 0.16, 0.09, 0.08,0.07, 0.04, 0.03, 0.02, 0.01。 用Huffman编码对它们的操作码进行编码,并计算平均代码长度。 Huffman编码通过采用huffman树进行,如下所示:

  46. 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 0 Huffman 树结构

  47. Huffman编码的结果以及各编码的长度如下所示:Huffman编码的结果以及各编码的长度如下所示: 0.30 0.20 0.16 0.09 0.08 0.07 0.04 0.03 0.02 0.01 11 01 101 001 1001 1000 0001 00001 000001 000000 2 2 3 3 4 4 4 5 6 6 平均代码长度为 (0.30+0.20)×2 1.00 +(0.16+0.09)×3 0.75 +(0.08+0.07+0.04)×4 0.76 + 0.03×5 0.15 +(0.02+0.01)×6 0.18 = 1 + 0.75 + 0.76 + 0.15 + 0.18=2.84

  48. 哈夫曼编码的优点: • 平均长度最短 • 信息冗余量最小 • 哈夫曼编码的缺点: • 操作码种类多,译码复杂。

  49. 模型机的指令操作码扩展编码法 指令 Pi 1-2-3-5 2-4 I1 0.45 000 I2 0.30 1001 I3 0.15 11010 I4 0.05 111001100 I5 0.03 111011101 I6 0.01 111101110 I7 0.01 111111111

  50. 例子中1-2-3-5编码法码长平均值 L = 0.45 × 1 + 0.30 × 2 + 0.15 × 3 + 0.05 × 5 + 0.03 × 5 + 0.01 × 5 + 0.01 × 5 = 2.00 与哈夫曼编码法相比,信息冗余量: R = (2-1.95)/2.00 = 2.5%

More Related