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

上传人:ni****g 文档编号:568538102 上传时间:2024-07-25 格式:PPT 页数:109 大小:1,016.50KB
返回 下载 相关 举报
教学课件第4章指令系统和控制器部件_第1页
第1页 / 共109页
教学课件第4章指令系统和控制器部件_第2页
第2页 / 共109页
教学课件第4章指令系统和控制器部件_第3页
第3页 / 共109页
教学课件第4章指令系统和控制器部件_第4页
第4页 / 共109页
教学课件第4章指令系统和控制器部件_第5页
第5页 / 共109页
点击查看更多>>
资源描述

《教学课件第4章指令系统和控制器部件》由会员分享,可在线阅读,更多相关《教学课件第4章指令系统和控制器部件(109页珍藏版)》请在金锄头文库上搜索。

1、第第4 4章章 指令系统和控制器部件指令系统和控制器部件4.1 4.1 指令系统指令系统4.2 4.2 控制器部件控制器部件指令:指令: 是指示计算机执行基本操作的命令是指示计算机执行基本操作的命令。指令也是用户使用计算机的最小功能单指令也是用户使用计算机的最小功能单位。位。 从计算机组成的层次结构来说,计从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指算机的指令有微指令、机器指令和宏指令之分。令之分。 微指令:微指令:是微程序级的命令,它属于硬件;是微程序级的命令,它属于硬件;宏指令:宏指令:是由苦干条机器指令组成的软件指令,是由苦干条机器指令组成的软件指令,它属于软件;它属

2、于软件; 机器指令:机器指令:则介于微指令与宏指令之间,通常则介于微指令与宏指令之间,通常简称为指令。每一条指令可完成一个独立的算简称为指令。每一条指令可完成一个独立的算术运算或逻辑运算操作。术运算或逻辑运算操作。 本章所讨论的指令是机器指令。本章所讨论的指令是机器指令。 指令系统:指令系统:一台计算机支持一台计算机支持( (或称使用或称使用) )的全部指令的的全部指令的集合构成该计算机的指令系统。集合构成该计算机的指令系统。由于指令与计算机的性能以及硬件结构密由于指令与计算机的性能以及硬件结构密切相关,所以不同系列、不同型号的计算机其切相关,所以不同系列、不同型号的计算机其指令系统是不一样的

3、。指令系统是不一样的。4.1 4.1 指令系统指令系统指令的基本格式指令的基本格式指令格式的优化指令格式的优化寻址方式寻址方式指令系统举例指令系统举例 ThTh-union-union汇编语言程序设计汇编语言程序设计一、指令的格式一、指令的格式 任何一条机器指令由一组有意义的二进制任何一条机器指令由一组有意义的二进制代码构成,称为一个指令字。代码构成,称为一个指令字。 1 1、机器指令、机器指令0000000000000000000100010010001000000001000000010001000100100010 用机器指令编写的程序是计算机惟一能够用机器指令编写的程序是计算机惟一能够

4、直接识别并执行的程序,称为机器语言程序。直接识别并执行的程序,称为机器语言程序。机器语言程序被称为目标程序机器语言程序被称为目标程序( (目标代码)。目标代码)。 机器直接执行,速度快。机器直接执行,速度快。 缺点:缺点:与机器硬件直接相关,通用性差与机器硬件直接相关,通用性差;编程不直观、难以记忆、使用很不方便。编程不直观、难以记忆、使用很不方便。机器语言的特点机器语言的特点为了克服机器语言的缺点,人们采用助记为了克服机器语言的缺点,人们采用助记符表示机器指令的操作码,用符号代替操作数符表示机器指令的操作码,用符号代替操作数的存放地址等,这样就形成了汇编指令。的存放地址等,这样就形成了汇编指

5、令。 例:例:机器指令:机器指令: 汇编指令:汇编指令: MVRR R2MVRR R2,R1R1 用汇编指令编写的程序称为汇编源程序。用汇编指令编写的程序称为汇编源程序。一条机器指令对应一条汇编指令。一条机器指令对应一条汇编指令。用汇编用汇编指令编写程序就直观方便得多。指令编写程序就直观方便得多。用汇编语言编写程序及执行的过程用汇编语言编写程序及执行的过程程序员程序员MVRRR0,R1ADDR0,R3汇编程序汇编程序1000100111011000执行执行汇编语言指令汇编语言指令机器指令代码机器指令代码(翻译)(翻译)高级语言高级语言 汇编语言虽然较机器语言直观,但仍然烦汇编语言虽然较机器语言

6、直观,但仍然烦琐难懂。于是人们研制出了高级程序设计语言。琐难懂。于是人们研制出了高级程序设计语言。高级程序设计语言接近于人类自然语言的语法高级程序设计语言接近于人类自然语言的语法习惯,与习惯,与计算机硬件无关,易被用户掌握和使计算机硬件无关,易被用户掌握和使用。用。(1) (1) 用语言实现:用语言实现: Main()inta,b,sum;a=123;b=456;sum=a+b 例如:编程实现例如:编程实现 123123 加加 456456 求和求和(2)(2)用用80868086汇编语言实现:汇编语言实现: adw123bdw456sumdw?CodesegmentassumeCS:Code

7、,DS:DataMain:movax,datamovds,axmovax,a addax,bmovsum,axmovax,4c00hint21hMainendpCodeendsendmain(3)(3)用机器语言实现:用机器语言实现: 键入代码:键入代码:-ecs:100A10F0103061101A31301B8004CCD21 为数据分配空间:为数据分配空间:-eds:10F7B00C8010000三种语言编写程序占用字节数三种语言编写程序占用字节数程序设计语言程序设计语言可执行程序占用字节数可执行程序占用字节数 高级语言高级语言( C ( C ) )CSUM.EXE 43304330 汇

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

9、机器指令的机器指令 汇编指令汇编指令 例如:例如:00000000000000000001000100100010 ADDADD R1 R1,R2R200000001000000010001000100100010 SUBSUB R1 R1,R2R200001001000010010011001100000000 INCINC R3 R310001000100010000001000100000000 MVRDMVRD R1 R1,0 00 05 55 500000000000000000101010101010101指令的操指令的操作码字段作码字段指令的操指令的操作数字段作数字段 0 0 5

10、 5 1 1)操作码)操作码定长操作码定长操作码变长操作码变长操作码 在指令系统中,在指令系统中,每一条指令都有唯一确定每一条指令都有唯一确定的操作码。的操作码。 分二种形式:分二种形式: a. a. 定长操作码形式定长操作码形式在指令字中,操作码字段的位数和在指令字中,操作码字段的位数和位置是固定的。位置是固定的。早期的计算机一般采用定长操作码早期的计算机一般采用定长操作码的设计,控制简单,且对操作码的译码的设计,控制简单,且对操作码的译码实现容易。实现容易。 IBM 360/370 IBM 360/370 操作码是操作码是八位八位的:的:00000000000000001111111111

11、111111 该指令系统最多可有多少条指令?该指令系统最多可有多少条指令? ThTh-union-union操作码是操作码是八位八位的:的: 00000000000000001111111111111111 该指令系统最多可有该指令系统最多可有256256条指令条指令。 例如:例如:256256RRRR型型 OPCOPC R1 R2R1 R2 8 4 4 RSRS型型 OPCOPC Rn Rm B DRn Rm B D 8 4 4 4 12RXRX型型 OPCOPC R1 X2 B2 D2R1 X2 B2 D2 8 4 4 4 12SISI型型 OPCOPC I2 B1 D2I2 B1 D2

12、8 4 4 12SSSS型型 OPCOPC L B1 D1 B2 D2L B1 D1 B2 D2 8 8 4 12 4 12IBM 360/370 IBM 360/370 计算机的指令格式计算机的指令格式RiRi:通用寄存器:通用寄存器XiXi:变址寄存器:变址寄存器BiBi:基址寄存器:基址寄存器DiDi:位移量:位移量I I: 立即数立即数L L: 数据的长度数据的长度定长操作码的特点定长操作码的特点 优点:有利于简化硬件设计,提高指优点:有利于简化硬件设计,提高指令译码的速度和指令执行的速度。令译码的速度和指令执行的速度。 缺点:限制了指令系统的扩充、缺点:限制了指令系统的扩充、 不不利

13、于缩短指令的长度,存在有很大程度利于缩短指令的长度,存在有很大程度的信息冗余的信息冗余 。 b. b. 变长操作码形式变长操作码形式指令系统中,各指令的操作码字段位数指令系统中,各指令的操作码字段位数不等长。不等长。例:例:PDP-11PDP-11小型机的指令系统小型机的指令系统 其指令长度为其指令长度为1616位,操作码字段的长度位,操作码字段的长度有有、1010、1313、1616等不同的情况。等不同的情况。 ModModRiRi ModModRjRj OPOP 四位四位 六位六位 六位六位RiRi ModModRjRjOPOP(7 7) ModModRjRjOPOP(1010)RjRjO

14、POP(1313)OPOP(1616)为增加操作码长度,采用为增加操作码长度,采用 操作码逐段扩展技术操作码逐段扩展技术 变长操作码的特点变长操作码的特点 优点:可方便扩充指令系统有利于缩短指令优点:可方便扩充指令系统有利于缩短指令操作码的平均长度。操作码的平均长度。 缺点:指令译码的控制复杂,硬件电路复杂。缺点:指令译码的控制复杂,硬件电路复杂。 2) 2) 地址码的设计和安排地址码的设计和安排按照指令中按照指令中地址码字段地址码字段给出的给出的地址的个地址的个数数的不同,的不同,无地址指令(零地址指令)无地址指令(零地址指令)一地址指令(单地址指令)一地址指令(单地址指令)双地址指令双地址

15、指令多地址指令多地址指令有四种情况有四种情况: :Th-unionTh-union的机器指令的机器指令 汇编指令汇编指令00000000000000000001000100100010 ADD R1ADD R1,R2R200000001000000011000100010011001 SUB R8SUB R8,R9R900001001000010010011001100000000 INC R3INC R310001000100010000001000100000000 MOV R1 MOV R1,0055H0055H00000000000000000101010101010101a. a.

16、无地址指令无地址指令( (零地址指令零地址指令) )有二种情况:有二种情况: 指令不需要任何操作数。指令不需要任何操作数。 例:例:例:例:NOPNOPNOPNOP、HALTHALTHALTHALT 操作数为隐含的,或操作数操作数为隐含的,或操作数地址是默认的。地址是默认的。 例:例:例:例:PUSHFPUSHFPUSHFPUSHF、POPFPOPFPOPFPOPF 操作码操作码格式格式: : b. b. 一地址指令一地址指令( (单地址指令单地址指令) )操作码操作码操作码操作码地地地地 址址址址 码码码码只有一个地址码,用于单操作数指令。只有一个地址码,用于单操作数指令。 例:例:INCI

17、NC、SHLSHL、JMPJMP、CALLCALL或者双操作数指令,但其中一个操作数的或者双操作数指令,但其中一个操作数的地址为默认值。地址为默认值。 例:例:MULMUL、DIVDIV格式格式: : c. c. 双地址指令双地址指令 地址码地址码地址码地址码2 2 2 2 地址码地址码地址码地址码1 1 1 1 操作码操作码操作码操作码 地址码既是地址码既是源操作数源操作数的地址,也是的地址,也是目目的操作数的操作数的地址。的地址。 双操作数在运算类、传送类指令中使用双操作数在运算类、传送类指令中使用较多。较多。 ADD DR, SRADD DR, SR 格式格式: : d. d. 多地址指

18、令多地址指令 地址码地址码地址码地址码3 3 3 3 地址码地址码地址码地址码2 2 2 2 地址码地址码地址码地址码1 1 1 1 操作码操作码操作码操作码 地址码地址码地址码地址码4 4地址码地址码地址码地址码3 3地址码地址码地址码地址码2 2 地址码地址码地址码地址码1 1操作码操作码操作码操作码 特点:特点:操作完成后操作完成后源操作数源操作数的内容不被破坏,的内容不被破坏,用户编程方便。严重的缺点是指令字较长。用户编程方便。严重的缺点是指令字较长。格式格式: :格式格式: : 3) 3) 指令字长度指令字长度 机器指令的二进制序列的位数。机器指令的二进制序列的位数。 定长指令定长指

19、令变长操作码变长操作码 变长指令变长指令定长操作码定长操作码例:例:某机指令系统,指令字为某机指令系统,指令字为1616位固定长,位固定长,要求有要求有地址指令、地址指令、地址指令、地址指令、地址指地址指令和令和地址指令,每个地址码地址指令,每个地址码位。应如何位。应如何设计?设计? a. a. 定长指令变长操作码定长指令变长操作码 该种形式是将操作码的设计与地址码的该种形式是将操作码的设计与地址码的设计作为一个整体考虑,以形成高效合理的设计作为一个整体考虑,以形成高效合理的指令编码。指令编码。设计方案为:设计方案为: 三地址指令采用三地址指令采用位操作码位操作码 00000000 11101

20、110 双地址指令采用双地址指令采用位操作码位操作码 1111111100000000 1111111111101110 一地址指令采用一地址指令采用1212位操作码位操作码 111111111111111100000000 111111111111111111101110 无地址指令采用无地址指令采用1616位操作码位操作码 11111111111111111111111100000000 111111111111111111111111111111110000000000000000 XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX4 4

21、 4 4位操位操位操位操作码作码作码作码(3(3地址指令地址指令1515条条) )1110111011101110 XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX8 8 8 8位操位操位操位操作码作码作码作码(2(2地址指令地址指令1515条条) )1111111111111111 0000000000000000 XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX1111111111111111 1110111011101110 XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX(1(1地址指令地址指令15

22、15条条) )1111111111111111 1111 00001111 00001111 00001111 0000 XXXXXXXXXXXXXXXX1111111111111111 1111 11101111 11101111 11101111 1110 XXXXXXXXXXXXXXXX12121212位操位操位操位操作码作码作码作码(0(0地址指令地址指令1616条条) )1111111111111111 1111 1111 00001111 1111 00001111 1111 00001111 1111 00001111111111111111 1111 1111 11111111

23、 1111 11111111 1111 11111111 1111 111116161616位操位操位操位操作码作码作码作码练习:练习:设某机为定长指令字结构,指令长度设某机为定长指令字结构,指令长度1212位,位,每个地址码占位,试提出一种方案,使该系每个地址码占位,试提出一种方案,使该系统包含条三地址指令,条二地址指令,统包含条三地址指令,条二地址指令,180 180 条单地址指令。条单地址指令。另:能否构成三地址指令条,单地址指另:能否构成三地址指令条,单地址指令令 255 255条,零地址指令条,零地址指令6464条呢?条呢?指令字的长度与机器字长没有固定的关系。指令字的长度与机器字长

24、没有固定的关系。 b. b. 变长指令定长操作码变长指令定长操作码例:例:IBM360/370IBM360/370 指令的操作码是指令的操作码是位的,位的, 指令字为指令字为1616位、位、3232位、位、4848位。位。 TH-unionTH-union 指令的操作码是指令的操作码是8 8位的,位的, 指令字为指令字为1616位位. . Th-unionTh-union的指令格式的指令格式 单字指令仅用一个指令字。单字指令仅用一个指令字。 双字指令要用两个指令字双字指令要用两个指令字, , 此时第二个指此时第二个指令字的内容可能是立即数、一个绝对地址或令字的内容可能是立即数、一个绝对地址或一

25、个变址位移量。一个变址位移量。 I/OI/O端口地址端口地址端口地址端口地址 条件转移指令的偏移量条件转移指令的偏移量条件转移指令的偏移量条件转移指令的偏移量 直接数直接数直接数直接数/内存地址内存地址内存地址内存地址/指令中变址偏移量指令中变址偏移量指令中变址偏移量指令中变址偏移量 操操操操 作作作作 码码码码目的寄存器目的寄存器目的寄存器目的寄存器源寄存器源寄存器源寄存器源寄存器 8 8 8 8位位位位 4 4 4 4位位位位 4 4 4 4位位位位Th-unionTh-union的机器指令的机器指令 汇编指令汇编指令00000000000000000001000100100010 ADD

26、ADD R1R1,R2R200000001000000010001000100100010 SUBSUB R1R1,R2R200001001000010010011001100000000 INCINC R3R310001000100010000001000100000000 MVRDMVRD R1R1,0 00 05 55 500000000000000000101010101010101 二、指令格式的优化二、指令格式的优化定义定义: : 缩短指令字的长度缩短指令字的长度方法方法: : 地址码优化地址码优化 操作码优化操作码优化( (这是本节主要讨论的这是本节主要讨论的) )优化目标优化目

27、标: : 节省程序的存储空间节省程序的存储空间 指令格式规整指令格式规整, ,易于译码易于译码 保持指令的执行速度保持指令的执行速度Huffman Huffman 编码法编码法码长码长理论值:理论值:其中,其中,P Pi i表示第表示第i i种操作码在程序中出现的概率种操作码在程序中出现的概率( (使用频度使用频度) ),n n为操作码的种数。为操作码的种数。H = pi log2 pini=11 1若采用位固定长度操作码,信息冗余量:若采用位固定长度操作码,信息冗余量:R = ( 3-R = ( 3-1.951.95 ) / 3 35 %) / 3 35 %其中:其中:1.95 1.95 为

28、哈夫曼编码法的理论值为哈夫曼编码法的理论值模型机的指令操作码哈夫曼编码法模型机的指令操作码哈夫曼编码法指令指令PiPi Huffman Huffman编码编码 码长码长 I1 I10.450.450 01 1 I2 I20.300.3010102 2 I3 I30.150.151101103 3 I4 I40.050.05111011104 4 I5 I50.030.0311110111105 5 I6 I60.010.011111101111106 6 I7 I70.010.011111111111116 6L L = = 0.450.45 X X 1 1 + + 0.300.30 X X

29、2 2 + + 0.150.15 X X 3 3 + + 0.050.05 X X 4 4 + + 0.030.03 X X 5 5 + + 0.010.01 X X 6 6 + + 0.010.01 X X 6 6 = = 1.971.97( (位位) )所以,平均码长接近理论值!所以,平均码长接近理论值!信息冗余量:信息冗余量:R=1.97-1.951.97=1.02%35%例:某计算机有例:某计算机有例:某计算机有例:某计算机有10101010条指令,它们的使用频率分别为条指令,它们的使用频率分别为条指令,它们的使用频率分别为条指令,它们的使用频率分别为: : : :0.30, 0.20

30、, 0.16, 0.09, 0.08,0.30, 0.20, 0.16, 0.09, 0.08,0.30, 0.20, 0.16, 0.09, 0.08,0.30, 0.20, 0.16, 0.09, 0.08, 0.07, 0.04, 0.03, 0.02, 0.010.07, 0.04, 0.03, 0.02, 0.010.07, 0.04, 0.03, 0.02, 0.010.07, 0.04, 0.03, 0.02, 0.01。用用用用HuffmanHuffmanHuffmanHuffman编码对它们的操作码进行编码,并计算平编码对它们的操作码进行编码,并计算平编码对它们的操作码进行编

31、码,并计算平编码对它们的操作码进行编码,并计算平均代码长度。均代码长度。均代码长度。均代码长度。 Huffman Huffman编码通过采用编码通过采用huffmanhuffman树进行,如树进行,如下所示:下所示:Huffman Huffman 树结构树结构1 11 11 11 11 11 11 11 11 100 000 000 00 00 00 0HuffmanHuffman编码的结果以及各编码的长度如下所示:编码的结果以及各编码的长度如下所示:0.300.200.160.090.080.070.040.030.020.010.300.200.160.090.080.070.040.03

32、0.020.01 110110100110011000000100001000001000000110110100110011000000100001000001000000 22334445662233444566平均代码长度为平均代码长度为平均代码长度为平均代码长度为 (0.30+0.20) (0.30+0.20) (0.30+0.20) (0.30+0.20)2 2 2 2 1.001.001.001.00 + + + +(0.16+0.09)(0.16+0.09)(0.16+0.09)(0.16+0.09)3 3 3 3 0.750.750.750.75 + + + +(0.08+0.

33、07+0.04)(0.08+0.07+0.04)(0.08+0.07+0.04)(0.08+0.07+0.04)4 4 4 4 0.760.760.760.76 + + + + 0.03 0.03 0.03 0.035 5 5 5 0.15 0.15 0.15 0.15 + + + +(0.02+0.01)(0.02+0.01)(0.02+0.01)(0.02+0.01)6 6 6 6 0.180.180.180.18= = = = 1 + 0.75 + 0.76 + 0.15 + 0.18 1 + 0.75 + 0.76 + 0.15 + 0.18 1 + 0.75 + 0.76 + 0.1

34、5 + 0.18 1 + 0.75 + 0.76 + 0.15 + 0.18 = = = = 2.842.842.842.84 哈夫曼编码的优点哈夫曼编码的优点: :平均长度最短平均长度最短信息冗余量最小信息冗余量最小 哈夫曼编码的缺点哈夫曼编码的缺点: : 操作码种类多,译码复杂。操作码种类多,译码复杂。模型机的指令操作码扩展编码法模型机的指令操作码扩展编码法指令指令PiPi 1-2-3-5 1-2-3-52-42-4 I1 I1 I1 I10.450.450.450.45 0 0 0 000000000 I2 I2 I2 I20.300.300.300.301010101001010101

35、 I3 I3 I3 I30.150.150.150.1511011011011010101010 I4 I4 I4 I40.050.050.050.05111001110011100111001100110011001100 I5 I5 I5 I50.030.030.030.03111011110111101111011101110111011101 I6 I6 I6 I60.010.010.010.01111101111011110111101110111011101110 I7 I7 I7 I70.010.010.010.0111111111111111111111111111111111

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

37、5 2 + 0.3 2L = 0.45 2 + 0.3 2 + 0.15 2 + 0.05 4 + 0.15 2 + 0.05 4 + 0.03 4 + 0.01 4 + 0.03 4 + 0.01 4 + 0.01 4 + 0.01 4 = 2.20 = 2.20与哈夫曼编码法相比,信息冗余量:与哈夫曼编码法相比,信息冗余量:R = (2.2-1.95)/2.2 = 11.4%R = (2.2-1.95)/2.2 = 11.4% 设某机型需设计设某机型需设计 100 100条指令。试确定条指令。试确定以下两种操作码设计方案的操作码长度。以下两种操作码设计方案的操作码长度。1)1)采用定长操作

38、码格式。采用定长操作码格式。2)2)采用扩展操作码法。采用扩展操作码法。( (设设1010的指令使的指令使用频度为用频度为90)90)思考:思考: 三、寻址方式三、寻址方式寻址方式:寻址方式:指的是确定本条指令的数据地址指的是确定本条指令的数据地址及及下一条要执行的指令地址的方法。下一条要执行的指令地址的方法。 不同的计算机系统,使用数目和功能不同不同的计算机系统,使用数目和功能不同的寻址方式,其实现的复杂程度和运行性能也的寻址方式,其实现的复杂程度和运行性能也各不相同。各不相同。1、指令寻址、指令寻址顺序顺序(PC)+1PC跳跃跳跃由转移指令指出由转移指令指出LDA1000ADD1001DE

39、C1200JMP7LDA2000SUB2001INCSTA2500LDA1100.0123456789PC+1指令地址寻址方式指令地址寻址方式指令地址指令地址指令指令顺序寻址顺序寻址1顺序寻址顺序寻址2顺序寻址顺序寻址3跳跃寻址跳跃寻址7顺序寻址顺序寻址82、数据寻址、数据寻址约定约定指令字长指令字长=存储字长存储字长=机器字长机器字长形式地址形式地址A操作码操作码寻址特征寻址特征 通常需要在指令中为每一个操作数专设一个地址字通常需要在指令中为每一个操作数专设一个地址字段,用来表示数据的来源或去向的地址。段,用来表示数据的来源或去向的地址。 在指令中给出的操作数的地址被称为形式地址,使在指令中

40、给出的操作数的地址被称为形式地址,使用形式地址信息并按一定的规则计算出来的一个数值用形式地址信息并按一定的规则计算出来的一个数值才是数据(或指令)的实际地址。才是数据(或指令)的实际地址。 运算器中寄存器的编号或专用寄存器名称(编号)运算器中寄存器的编号或专用寄存器名称(编号) 输入输入/ /输出指令中输出指令中I/O I/O 设备的输入输出端口地址设备的输入输出端口地址 内存储器的一个存储单元内存储器的一个存储单元( (或一或一I/OI/O设备设备) )的地址的地址 在指令的操作数地址字段,可能要指出:在指令的操作数地址字段,可能要指出: 在计算机的指令系统中,会有多种在计算机的指令系统中,

41、会有多种基本寻基本寻址方式址方式和某些和某些复合寻址方式复合寻址方式, ,简介如下简介如下: :1)1)直接寻址直接寻址 在指令的地址码字段直接给出所需的操作数在指令的地址码字段直接给出所需的操作数( (或指令或指令) )在存储器中的地址。在存储器中的地址。 存储器地址为操作数在存储器地址为操作数在存储器中的地址。或转移存储器中的地址。或转移指令等用到的指令地址。指令等用到的指令地址。内内存存储储器器操作数操作数操作数操作数 操作码操作码操作码操作码 存储器地址存储器地址存储器地址存储器地址例:例:MOVR1,08000000100000000000操作码 0001 不用特点是什么?特点是什么

42、?简单直观,执行速度快。简单直观,执行速度快。编程不灵活,访问空间有限。编程不灵活,访问空间有限。2)2)寄存器寻址寄存器寻址操作码操作码操作码操作码 寄存器编号寄存器编号寄存器编号寄存器编号例如:例如: 000011 00001100001000100010011001 SUBSUB R8R8,R9R9 011101 01110100000011001100000000 INCINC R3R3 指令地址码字段给出某一通用寄存器的指令地址码字段给出某一通用寄存器的编号编号( (地址地址) ),且所需的操作数就在这个寄存,且所需的操作数就在这个寄存器中,这就是寄存器寻址方式。器中,这就是寄存器寻

43、址方式。执行阶段不访存,只访问寄存器,执行速度快。执行阶段不访存,只访问寄存器,执行速度快。寄存器个数有限,可缩短指令字长。寄存器个数有限,可缩短指令字长。3)3)间接寻址方式间接寻址方式 若寄存器中存放的是操作数在内存中所在若寄存器中存放的是操作数在内存中所在单元的地址,这就是寄存器间接寻址方式。单元的地址,这就是寄存器间接寻址方式。a.通过通过寄存器的间接寻址方式寄存器的间接寻址方式 Reg NoReg No寄存器间接寻址示意图寄存器间接寻址示意图 010101010000000000000111R5R50007H 操作数操作数操作数操作数000700070006000600080008F

44、FFFFFFF00000000(1)(1)寄存器寻址与寄存器间接寻址的不同点寄存器寻址与寄存器间接寻址的不同点 操作数所在位置不同操作数所在位置不同 指令执行的速度不同指令执行的速度不同思考题思考题(2)(2)设计寄存器间接寻址的必要性设计寄存器间接寻址的必要性 可有效缩短指令的长度可有效缩短指令的长度 可方便程序处理的需要可方便程序处理的需要b.通过存储通过存储器的间接寻址方式器的间接寻址方式 指令的地址码字段给出的内容既不是操作指令的地址码字段给出的内容既不是操作数,也不是操作数的地址,而是操作数(或指数,也不是操作数的地址,而是操作数(或指令)地址的地址,这被称为存储器间接寻址方令)地址

45、的地址,这被称为存储器间接寻址方式。式。操作数操作数Addr1特点:特点: 比直接寻址灵活,并且比直接寻址灵活,并且可用指令中的短地址访问大的内可用指令中的短地址访问大的内存空间;取操作数需二次访问主存空间;取操作数需二次访问主存,降低了指令执行的速度。存,降低了指令执行的速度。 Addr4)4)基址寻址方式基址寻址方式 在计算机中设置一个专用的基址寄存器,在计算机中设置一个专用的基址寄存器,操作数(或指令)的地址通过基址寄存器的内操作数(或指令)的地址通过基址寄存器的内容和指令中的地址码相加得到。容和指令中的地址码相加得到。基址寄存器基址寄存器基址寄存器基址寄存器加法器加法器加法器加法器操作

46、数操作数存存储储器器 dispdisp例:例:disp = 18Hdisp = 18H,BS = 5700HBS = 5700H 则操作数地址则操作数地址 = 5718H = 5718H 主要用于为程序或数据分配存储区,对主要用于为程序或数据分配存储区,对多道程序或浮动程序很有用,解决了程序在多道程序或浮动程序很有用,解决了程序在存储器中的定位和扩大寻址空间等问题。存储器中的定位和扩大寻址空间等问题。5)5)变址寻址方式变址寻址方式 操作数的地址由指定的变址寄存器(由操作数的地址由指定的变址寄存器(由RegReg指定)的内容和指令中的地址码(指定)的内容和指令中的地址码(DispDisp)相加

47、)相加得到。得到。通用寄存器通用寄存器通用寄存器通用寄存器加法器加法器加法器加法器存存储储器器操作数操作数操作数操作数 RegReg DispDisp例:例:Disp=18HDisp=18H,Reg=5Reg=5,R5)=5700HR5)=5700H 则操作数地址则操作数地址 = 5718H = 5718H 便于对数组元素进行处理,此方式是便于对数组元素进行处理,此方式是计算机中常用的一种寻址方式。计算机中常用的一种寻址方式。6)6)块块( (串串) )寻址方式寻址方式 为了对数组运算提供更好的支持,采用该为了对数组运算提供更好的支持,采用该种寻址方式的指令中,要对整个数组实现某种种寻址方式的

48、指令中,要对整个数组实现某种运算,只需给出数组的首地址和末地址,这条运算,只需给出数组的首地址和末地址,这条指令执行一次,可对数组的全部元素完成某种指令执行一次,可对数组的全部元素完成某种运算操作。运算操作。 此方式是现代计算机中广泛采用的一种寻此方式是现代计算机中广泛采用的一种寻址方式。址方式。7)7)隐含寻址方式隐含寻址方式 对于双操作数指令,如果事先约定参与运对于双操作数指令,如果事先约定参与运算的一个操作数固定存放在某个寄存器或某个算的一个操作数固定存放在某个寄存器或某个存储单元中。指令中不直接给出某个操作数的存储单元中。指令中不直接给出某个操作数的地址,被称为隐含寻址方式。地址,被称

49、为隐含寻址方式。ADDA操作数操作数主存主存寻址特征寻址特征AACC暂存暂存ALU另一个操作数另一个操作数隐含在隐含在ACC中中如如8086MUL指令指令被乘数隐含在被乘数隐含在AX(16位)或位)或AL(8位)中位)中MOVS指令指令源操作数的地址隐含在源操作数的地址隐含在SI中中目的操作数的地址隐含在目的操作数的地址隐含在DI中中指令字中少了一个地址字段,可缩短指令字长。指令字中少了一个地址字段,可缩短指令字长。8)8)立即寻址方式立即寻址方式 所需的一个操作数在指令的地址码部分直所需的一个操作数在指令的地址码部分直接给出。接给出。特点:特点:在取指令的同时取出了操作数,不必访问主在取指令

50、的同时取出了操作数,不必访问主存,提高了指令的执行速度存,提高了指令的执行速度; ;灵活性差。灵活性差。 NumNum 操作数操作数( (或指令或指令) )的地址由程序计数器的地址由程序计数器PCPC的的内容内容( (即当前执行指令的地址即当前执行指令的地址) )和指令的地址码和指令的地址码相加得到。相加得到。例如:例如:disp = 48Hdisp = 48H(PC) = 5600H(PC) = 5600H则实际地址则实际地址 = disp + (PC) = 5648H = disp + (PC) = 5648H 主要用于转移指令,对缩短指令长度很有主要用于转移指令,对缩短指令长度很有用。位

51、移量可正可负,通常用补码表示。用。位移量可正可负,通常用补码表示。9)9)相对寻址方式相对寻址方式 主存空间主存空间主存空间主存空间20002000PCPCJMP+30+30+30+30现行指令现行指令JMPNEXTNEXTADD AXADD AX,BXBX200120012001200120312031PCPC在指令中不指定,是隐含在指令中不指定,是隐含的,所以可以缩短指令长度。的,所以可以缩短指令长度。 例题:设相对转移指令占两个字节,第一个字例题:设相对转移指令占两个字节,第一个字节是操作码,其地址是节是操作码,其地址是 2000H 2000H,第二个字节是相对,第二个字节是相对位移量,

52、那么:位移量,那么:(PC)=2002H(PC)=2002H(1)(1)若第二个字节的内容为若第二个字节的内容为06H06H,则转移到的地址为,则转移到的地址为_ _ 。 2008H2008H 2009H 1FFCH FFBH 2009H 1FFCH FFBH(2)(2)若转移到的地址为若转移到的地址为1FFDH1FFDH,则第二个字节的内容,则第二个字节的内容为为_。 05H 05H FBFBH FDH FFHH FDH FFH 堆栈是内存储器中一块按堆栈是内存储器中一块按“后进先出后进先出”原原则进行读写的存储区,并通过一个专用的寄存则进行读写的存储区,并通过一个专用的寄存器器( (堆栈指

53、针堆栈指针SPSP) )给出堆栈的栈顶地址,完成数给出堆栈的栈顶地址,完成数据的读写操作,故不必在指令中用操作数地址据的读写操作,故不必在指令中用操作数地址字段给堆栈地址。通常在读写操作的前后伴随字段给堆栈地址。通常在读写操作的前后伴随有计算机自动有计算机自动( (不是用户通过指令不是用户通过指令) )修改修改SPSP内容内容的动作,以确保按正确的的动作,以确保按正确的“后进先出后进先出”原则读原则读写堆栈区。写堆栈区。 四、堆栈结构及寻址四、堆栈结构及寻址 如何在指令中表示寻址方式呢?如何在指令中表示寻址方式呢?1.1.用操作码区分用操作码区分2.2.在指令中划分专用的字段来说明在指令中划分

54、专用的字段来说明问题问题: :下图所指的寻址方式的名称是什么?下图所指的寻址方式的名称是什么? 操作操作码码 操作数操作数操作码操作码寄存器寄存器操作数操作数R立即寻址立即寻址寄存器寻址寄存器寻址操作码操作码存储器存储器指令指令操作数操作数A问题问题: :下图所指的寻址方式的名称是什么?下图所指的寻址方式的名称是什么?存储器直接寻址存储器直接寻址操作码操作码操作数操作数A存储器存储器寄存器寄存器R存储器存储器操作码操作码操作数操作数AA问题问题: :下图所指的寻址方式的名称是什么?下图所指的寻址方式的名称是什么?存储器间接寻址存储器间接寻址寄存器间接寻址寄存器间接寻址操作码操作码操作数操作数P

55、C存储器存储器A问题问题: :下图所指的寻址方式是什么?下图所指的寻址方式是什么?相对寻址相对寻址 寻址方式寻址方式 有效地址有效地址EAEA的计算公式的计算公式 寻址范围寻址范围 立即寻址立即寻址 直接寻址直接寻址 间接寻址间接寻址 变址寻址变址寻址 相对寻址相对寻址 解:因为解:因为OPOP字段长字段长5 5位,所以指令能定义位,所以指令能定义2 25 5=32=32种指令。种指令。 例:某机字长为例:某机字长为1616位,存储器按字编址,访内存指令格式如下:位,存储器按字编址,访内存指令格式如下: 15 11 10 8 7 0 15 11 10 8 7 0OPOPMMA A其中其中OPO

56、P是操作码,是操作码,M M定义寻址方式,定义寻址方式,A A为形式地址。设为形式地址。设PCPC和和RxRx分分别为程序计数器和变址寄存器,字长别为程序计数器和变址寄存器,字长1616位。位。 (1 1)该指令能定义多少种指令?)该指令能定义多少种指令? (2 2)表中各种寻址方式的寻址范围为多少?)表中各种寻址方式的寻址范围为多少? (3 3)写出表中各种寻址方式的有效地址)写出表中各种寻址方式的有效地址EAEA的计算公式。的计算公式。EA=EA=(PCPC)11个字,即指令自身个字,即指令自身个字,即指令自身个字,即指令自身EA=A256EA=A256个字个字个字个字EA=EA=(A A

57、)64K64K字字字字EA=EA=(RxRx)+A64K+A64K字字字字EA=EA=(PCPC)+A256+A256个字个字个字个字(PC(PC附近附近附近附近) )练习题:练习题: 某机字长某机字长1616位,内存容量为位,内存容量为64K64K字,指令格字,指令格式为单字长单地址,其有式为单字长单地址,其有6464条指令,问:条指令,问: 1 1)若只采用直接寻址方式,指令能访问多)若只采用直接寻址方式,指令能访问多少内存单元?少内存单元? 2 2)为了扩充指令的寻址范围,可采用直接)为了扩充指令的寻址范围,可采用直接/ /间接寻址方式,若只增加一位直接间接寻址方式,若只增加一位直接/

58、/间接标志,间接标志,指令可寻址范围为多少?指令直接寻址的范围指令可寻址范围为多少?指令直接寻址的范围为多少?为多少? 一个完善的指令系统应满足如下四方一个完善的指令系统应满足如下四方面的要求:面的要求: 完备性完备性完备性完备性有效性有效性有效性有效性规整性规整性规整性规整性兼容性兼容性兼容性兼容性 五、指令系统举例五、指令系统举例完备性完备性是指用汇编语言编写各种程序时,指令是指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件系统直接提供的指令足够使用,而不必用软件来实现。完备性要求指令系统丰富、功能齐全、来实现。完备性要求指令系统丰富、功能齐全、使用方便。使用方便。

59、 有效性有效性是指利用该指令系统所编写的程序能够是指利用该指令系统所编写的程序能够高效率地运行。高效率主要表现在程序占据存高效率地运行。高效率主要表现在程序占据存储空间小、执行速度快。储空间小、执行速度快。 规整性规整性包括指令系统的对称性、匀齐性、指令包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性格式和数据格式的一致性。1.1.对称性是指在指令系统中所有的寄存器和存对称性是指在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用储器单元都可同等对待,所有的指令都可使用各种寻址方式;各种寻址方式;2.2.匀齐性是指一种操作性质的指令可以支持各匀齐性是指一种操作性质的指令

60、可以支持各种数据类型;种数据类型;3.3.指令格式和数据格式的一致性是指指令长度指令格式和数据格式的一致性是指指令长度和数据长度有一定的关系,以方便处理和存取。和数据长度有一定的关系,以方便处理和存取。 兼容性兼容性 要能做到要能做到“向上兼容向上兼容”,即低档机上运行的,即低档机上运行的软件可以在高档机上运行。软件可以在高档机上运行。 要能做到要能做到“向后兼容向后兼容”,即先生产机器上运,即先生产机器上运行的软件可以在后生产的机器上运行。行的软件可以在后生产的机器上运行。 指令系统举例指令系统举例 Intel8086Intel8086指令系统指令系统指令系统指令系统 指令分类指令分类指令分

61、类指令分类 指令名称指令名称指令名称指令名称 指令助记符指令助记符指令助记符指令助记符 指令功能指令功能指令功能指令功能传传送送类类指指令令传送指令传送指令 MOV Ri/M , Ri RR , RM 堆栈指令堆栈指令 PUSH Ri Ri入栈入栈 输入输出指令输入输出指令 IN AL/AH ,端口号端口号 端口端口累加器累加器 算算术术与与逻逻辑辑运运算算类类指指令令加法指令加法指令 ADD Ri , Ri R+R R 加加1 1指令指令 INC Ri /M R+1R 逻辑与指令逻辑与指令 AND Ri, Rj 指令分类指令分类指令分类指令分类 指令名称指令名称指令名称指令名称 指令助记符指

62、令助记符指令助记符指令助记符 指令功能指令功能指令功能指令功能 程程序序控控制制类类指指令令无条件转移指令无条件转移指令 JMP A APC 条件转移指令条件转移指令 JRNZ A Z=1 时时APC 循环指令循环指令 LOOP 指令分类指令分类指令分类指令分类 指令名称指令名称指令名称指令名称 指令助记符指令助记符指令助记符指令助记符 指令功能指令功能指令功能指令功能Pentium指令格式指令格式字节字节:1或或20或或10或或10,1,2或或40,1,2或或4 OP MOD/RM SIB Disp ImmMod Reg/Op R/MSSIndexBase 7 6 5 4 3 2 1 0 7

63、 6 5 4 3 2 1 0 指令格式复杂指令格式复杂; ;寻址方式多样寻址方式多样; ;通用寄存器较少通用寄存器较少; ;编译系统复杂编译系统复杂; ;典型典型CISC CISC 指令集指令集. .指令流水实现复杂指令流水实现复杂; ;MIPS指令格式指令格式指令格式简单指令格式简单; ;寻址方式较少寻址方式较少; ;通用寄存器较多通用寄存器较多; ;编译系统简单高效编译系统简单高效; ;典型典型RISC RISC 指令集指令集. .容易实现流水操作容易实现流水操作; ;TH-union指令系统的寻址方式指令系统的寻址方式 1. 1. 立即寻址立即寻址 例:例: MVRD R0 MVRD R

64、0,00AA00AA 2. 2. 寄存器寻址寄存器寻址 例:例: ADD R0 ADD R0,R1R1 3. 3. 寄存器间址寄存器间址 例:例: MVRR R1 MVRR R1,R0R0 六、指令系统的发展六、指令系统的发展当前的计算机指令系统,从其构成的复当前的计算机指令系统,从其构成的复杂和完备程度,或者说设计中追求的不同的杂和完备程度,或者说设计中追求的不同的目标,区分为:目标,区分为:复杂指令系统复杂指令系统 CISCCISC精简指令系统精简指令系统 RISCRISC精确并行指令计算技术精确并行指令计算技术 EPICEPICCISC CISC 复杂指令集计算机复杂指令集计算机(C C

65、omplex omplex I Instruction nstruction S Set et C Computeromputer)1)1)指令系统复杂庞大,指令数目一般多达指令系统复杂庞大,指令数目一般多达500500条以上。条以上。2)2)寻址方式多。寻址方式多。3)3)指令格式多,功能强。指令格式多,功能强。4)4)指令字长不固定。指令字长不固定。5)5)各种指令的使用频度相差很大。各种指令的使用频度相差很大。6)6)各种指令的执行时间相差很大。各种指令的执行时间相差很大。7)7)大多数采用微程序控制器。大多数采用微程序控制器。指令系统内容丰富指令系统内容丰富对用户来说程序设计方便对用户

66、来说程序设计方便程序短小功能强大程序短小功能强大编译简单编译简单提高机器性能只能以提高处理器频率提高机器性能只能以提高处理器频率庞大的指令系统导致硬件结构更加复杂庞大的指令系统导致硬件结构更加复杂由于多采用微程序控制,使微程序更加庞大由于多采用微程序控制,使微程序更加庞大由于指令长短不一,不易使用先进的流水技术由于指令长短不一,不易使用先进的流水技术执行速度和性价比难以提高。执行速度和性价比难以提高。精简指令集计算机是精简指令集计算机是7070年代提出的一种新年代提出的一种新的设计思想。的设计思想。8080年代出现了第片年代出现了第片RISCRISC微处理微处理器芯片。目前,大多处理机都采用了

67、器芯片。目前,大多处理机都采用了RISCRISC体系体系结构结构RISCRISC精简指令集计算机精简指令集计算机(R Reduced educed I Instruction nstruction S Set et C Computeromputer)1. 1. 1. 1. 选取使用频率最高的一些简单指令,以及很有用但不选取使用频率最高的一些简单指令,以及很有用但不选取使用频率最高的一些简单指令,以及很有用但不选取使用频率最高的一些简单指令,以及很有用但不复杂的指令。复杂的指令。复杂的指令。复杂的指令。2. 2. 2. 2. 指令长度固定,指令格式种类少,寻址方式种类少。指令长度固定,指令格式

68、种类少,寻址方式种类少。指令长度固定,指令格式种类少,寻址方式种类少。指令长度固定,指令格式种类少,寻址方式种类少。3. 3. 3. 3. 只有取数只有取数只有取数只有取数/ / / /存数指令访问存储器,其余指令的操作都存数指令访问存储器,其余指令的操作都存数指令访问存储器,其余指令的操作都存数指令访问存储器,其余指令的操作都在寄存器之间进行。在寄存器之间进行。在寄存器之间进行。在寄存器之间进行。4. CPU4. CPU4. CPU4. CPU中通用寄存器数量相当多。中通用寄存器数量相当多。中通用寄存器数量相当多。中通用寄存器数量相当多。5. 5. 5. 5. 采用组合逻辑控制器,不用或少用

69、微程序控制。采用组合逻辑控制器,不用或少用微程序控制。采用组合逻辑控制器,不用或少用微程序控制。采用组合逻辑控制器,不用或少用微程序控制。6. 6. 6. 6. 采用指令流水调度,以减少程序执行时间。采用指令流水调度,以减少程序执行时间。采用指令流水调度,以减少程序执行时间。采用指令流水调度,以减少程序执行时间。 RISC RISC指令系统要求使用大量的通用寄存器,提高指令系统要求使用大量的通用寄存器,提高了处理器的速度,同时也增加了任务切换时的开销。了处理器的速度,同时也增加了任务切换时的开销。 RISC RISC简化了控制器的设计,但同时需要靠编译器简化了控制器的设计,但同时需要靠编译器的

70、优化来提高性能,这对编译器的设计提出了很高的的优化来提高性能,这对编译器的设计提出了很高的要求。要求。 RISC RISC不够标准,指令代码难以理解,与传统的不够标准,指令代码难以理解,与传统的CISCCISC不兼容等都给不兼容等都给RISCRISC的设计、使用带来不少问题。的设计、使用带来不少问题。 因此因此RISCRISC开始引入开始引入CISCCISC的一些优点以提高性能。的一些优点以提高性能。与此同时,与此同时,CISCCISC也开始吸取也开始吸取RISCRISC的优点,如:的优点,如:Pentium Pentium 就溶入了就溶入了RISCRISC技术。技术。随着时间的推移,技术进步

71、,要实现随着时间的推移,技术进步,要实现高性能高性能计算机已不是传统上的计算机已不是传统上的CISCCISC或或RISCRISC所能胜任的。所能胜任的。INTEL 64INTEL 64位位CPUCPU主要设计目标就是克服当今主要设计目标就是克服当今CPUCPU系系统构架的瓶颈,开发一个全新的系统构架,最大统构架的瓶颈,开发一个全新的系统构架,最大程度地开发指令级并行操作。因此程度地开发指令级并行操作。因此INTEL INTEL 提出了提出了创新的设计理念创新的设计理念精确并行指令计算精确并行指令计算(EPICEPIC) 按照这种思想设计的按照这种思想设计的6464位位CPUCPU,INTELI

72、NTEL称之为称之为IA-64IA-64结构。结构。EPICEPIC精确并行指令计算技术精确并行指令计算技术硬件功能软件化硬件功能软件化:复杂的并行指令打包交给软件处理,复杂的并行指令打包交给软件处理,硬件只需按序高速并行处理指令和数据。硬件只需按序高速并行处理指令和数据。128128位指令束位指令束:IA-64IA-64将指令打包处理,指令束将指令打包处理,指令束128128位位长,含有长,含有3 3个个4141位指令和位指令和1 1个个5 5位模板。位模板。编译程序:编译程序:对编译程序提出了更高要求,对编译程序提出了更高要求,IA-64IA-64将指将指令流的优化交给了编译程序。令流的优

73、化交给了编译程序。分支判定技术:分支判定技术:可以同时指令两条分支,分支中每条可以同时指令两条分支,分支中每条指令都有标志位。(指令都有标志位。(6464个分支预测寄存器)个分支预测寄存器)数据推测装载技术:数据推测装载技术:IA-64IA-64结构允许编译器来管理控结构允许编译器来管理控制指令的推测和使用数据的推测,从而大大降低了某制指令的推测和使用数据的推测,从而大大降低了某些操作的执行时间。些操作的执行时间。INTEL指令系统的发展指令系统的发展. .技术技术 ( ( M Multi ulti M Media eedia eX Xtension )tension ) MMX MMX MM

74、X MMX指令集针对多媒体信息处理中的特点,新增了指令集针对多媒体信息处理中的特点,新增了57575757条多媒体指令。条多媒体指令。 条数学运算指令、条数学运算指令、条数学运算指令、条数学运算指令、条数据比较指令、条数据比较指令、条数据比较指令、条数据比较指令、条压缩数据还原指令、条压缩数据还原指令、条压缩数据还原指令、条压缩数据还原指令、条逻辑运算指令、条逻辑运算指令、条逻辑运算指令、条逻辑运算指令、条移位指令、条移位指令、条移位指令、条移位指令、条数据转换指令、条数据转换指令、条数据转换指令、条数据转换指令、条条条条FP/MMXFP/MMXFP/MMXFP/MMX状态转换指令,状态转换指

75、令,状态转换指令,状态转换指令,和若干分支指令和若干分支指令和若干分支指令和若干分支指令MMX的一个关键技术是单指令多数据技术的一个关键技术是单指令多数据技术SIMDSIMD,即能够利用一条多媒体指令同时处理,即能够利用一条多媒体指令同时处理,即能够利用一条多媒体指令同时处理,即能够利用一条多媒体指令同时处理多对数据,以提高处理器的性能。多对数据,以提高处理器的性能。多对数据,以提高处理器的性能。多对数据,以提高处理器的性能。例如处理声音数据的左右声道、图象数据的例如处理声音数据的左右声道、图象数据的例如处理声音数据的左右声道、图象数据的例如处理声音数据的左右声道、图象数据的RGBRGB色彩混

76、合等。色彩混合等。色彩混合等。色彩混合等。MMXMMXMMXMMX采用了采用了采用了采用了64646464位位位位“压缩整型数据压缩整型数据压缩整型数据压缩整型数据”,可将,可将,可将,可将64646464位数据置位数据置位数据置位数据置于单个寄存器中,使处理器能够同时处理于单个寄存器中,使处理器能够同时处理于单个寄存器中,使处理器能够同时处理于单个寄存器中,使处理器能够同时处理8 8 8 8个字节的个字节的个字节的个字节的数据,从而达到使用一条指令处理多个数据的目的。数据,从而达到使用一条指令处理多个数据的目的。数据,从而达到使用一条指令处理多个数据的目的。数据,从而达到使用一条指令处理多个

77、数据的目的。SIMDSIMDSIMDSIMD, S S S Single ingle ingle ingle I I I Instruction nstruction nstruction nstruction M M M Multiple ultiple ultiple ultiple D D D Dataataataata单指令多数据单指令多数据单指令多数据单指令多数据新型数据结构63 56 48 40 32 24 16 8 0 63 56 48 40 32 24 16 8 0 字节字节字节字节字节字节字节字节字节字节字节字节字节字节字节字节8 8个的个的8 8位字位字63 48 32 1

78、6 0 63 48 32 16 0 1 1个压缩的字个压缩的字1 1个压缩的字个压缩的字1 1个压缩的字个压缩的字1 1个压缩的字个压缩的字4 4个的个的1616位字位字63 32 0 63 32 0 1 1个压缩的双字数据个压缩的双字数据1 1个压缩的双字数据个压缩的双字数据2 2个的个的3232位字位字63 0 63 0 1 1个压缩的个压缩的4 4字数据字数据1 1个的个的6464位字位字这种数据结构具有连续的内存地址这种数据结构具有连续的内存地址技术技术技术技术 ( ( ( ( S S S Streaming treaming treaming treaming S S S SIMD

79、IMD IMD IMD E E E Extensions )xtensions )xtensions )xtensions )SSE1SSE1指令集共有指令集共有7070条指令。条指令。 Pentium 3Pentium 3Pentium 3Pentium 3 8 8 8 8 条优化内存指令、条优化内存指令、条优化内存指令、条优化内存指令、 50 50 50 50条提高条提高条提高条提高3D3D3D3D图形运算效率的图形运算效率的图形运算效率的图形运算效率的SIMDSIMDSIMDSIMD浮点浮点浮点浮点运算指令、运算指令、运算指令、运算指令、 12 12 12 12条条条条MMXMMXMMX

80、MMX整数运算增强指令。整数运算增强指令。整数运算增强指令。整数运算增强指令。 SSE SSE SSE SSE兼容兼容兼容兼容MMXMMXMMXMMX指令,它可以通过指令,它可以通过指令,它可以通过指令,它可以通过SIMDSIMDSIMDSIMD和和和和单时钟周期并行处理多个浮点数据来有单时钟周期并行处理多个浮点数据来有单时钟周期并行处理多个浮点数据来有单时钟周期并行处理多个浮点数据来有效的提高浮点运算速度。效的提高浮点运算速度。效的提高浮点运算速度。效的提高浮点运算速度。SSE2SSE2指令集共有指令集共有144144条指令。条指令。 Pentium 4Pentium 4Pentium 4P

81、entium 4包括:包括:包括:包括: 浮点浮点浮点浮点SIMDSIMDSIMDSIMD指令、指令、指令、指令、 整型整型整型整型SIMDSIMDSIMDSIMD指令、指令、指令、指令、 SIMD SIMD SIMD SIMD浮点和整型数据之间转换等指令。浮点和整型数据之间转换等指令。浮点和整型数据之间转换等指令。浮点和整型数据之间转换等指令。 SSE2 SSE2 SSE2 SSE2重要的改进包括引入新的数据格式,如重要的改进包括引入新的数据格式,如重要的改进包括引入新的数据格式,如重要的改进包括引入新的数据格式,如128128128128位的位的位的位的SIMDSIMDSIMDSIMD整数

82、运算和整数运算和整数运算和整数运算和64646464位双精度浮点运算等。位双精度浮点运算等。位双精度浮点运算等。位双精度浮点运算等。SIMDSIMDSIMDSIMD, S S S Single ingle ingle ingle I I I Instruction nstruction nstruction nstruction M M M Multiple ultiple ultiple ultiple D D D Data ata ata ata 单指令多数据单指令多数据单指令多数据单指令多数据SISDSISDSISDSISD, S S S Single ingle ingle ingle

83、 I I I Instruction nstruction nstruction nstruction S S S Single ingle ingle ingle D D D Data ata ata ata 单指令单数据单指令单数据单指令单数据单指令单数据适用适用适用适用CPUCPU发表日期发表日期发表日期发表日期新增指令新增指令新增指令新增指令指令总数指令总数指令总数指令总数80861978.689条8989条条8087197877条166166条条802861982.2新增24条190190条条803861985.10新增14条204204条条803871985新增7条211211条条

84、804861989.8新增5条216216条条Pentium1993.3新增6条222222条条Pentium ProPentium Pro1995.111995.11新增新增新增新增8 8条条条条230230条条条条Pentium MMX1997.1新增MMX指令 57条287287条条Pentium II1997.5新增4条291291条条Pentium III1999.2新增SSE1指令 70条361361条条Pentium 42001.7新增SSE2指令144条505505条条条条Itanium2000.8未公布INTEL X86INTEL X86INTEL X86INTEL X86指

85、令数量一览表指令数量一览表指令数量一览表指令数量一览表指令名称指令名称适用适用CPU发表日期发表日期新增指令新增指令3DNow!AMD K6-2199821条条3DNow!+AMD Athlon XP2001.1052条条AMD 3DNow!AMD 3DNow!AMD 3DNow!AMD 3DNow!指令数量指令数量指令数量指令数量AMD 3DNow!AMD 3DNow!AMD 3DNow!AMD 3DNow!指令与指令与指令与指令与MMXMMXMMXMMX指令的用途不完全相同。指令的用途不完全相同。指令的用途不完全相同。指令的用途不完全相同。MMXMMXMMXMMX指令指令指令指令:主要侧重

86、于整数运算,主要针对图形描绘、:主要侧重于整数运算,主要针对图形描绘、:主要侧重于整数运算,主要针对图形描绘、:主要侧重于整数运算,主要针对图形描绘、数据压缩与解压缩、音频处理等。数据压缩与解压缩、音频处理等。数据压缩与解压缩、音频处理等。数据压缩与解压缩、音频处理等。3DNow!3DNow!3DNow!3DNow!指令指令指令指令:侧重于浮点运算,主要针对三维建摸、:侧重于浮点运算,主要针对三维建摸、:侧重于浮点运算,主要针对三维建摸、:侧重于浮点运算,主要针对三维建摸、坐标变换、效果渲染等三维图形应用场合。坐标变换、效果渲染等三维图形应用场合。坐标变换、效果渲染等三维图形应用场合。坐标变换

87、、效果渲染等三维图形应用场合。 在在在在Pentium ProPentium ProPentium ProPentium Pro CPU CPU CPU CPU推出后,推出后,推出后,推出后,INTELINTELINTELINTEL将将将将X86X86X86X86指令系指令系指令系指令系统和寄存器组称为统和寄存器组称为统和寄存器组称为统和寄存器组称为INTELINTELINTELINTEL结构(结构(结构(结构(IAIAIAIA)也称)也称)也称)也称IAIAIAIA指令系统。指令系统。指令系统。指令系统。 许多许多许多许多X86X86X86X86指令本质上非常复杂,需要额外的译码指令本质上非

88、常复杂,需要额外的译码指令本质上非常复杂,需要额外的译码指令本质上非常复杂,需要额外的译码和执行电路。例如一条和执行电路。例如一条和执行电路。例如一条和执行电路。例如一条X86X86X86X86指令可能需要一次或多次指令可能需要一次或多次指令可能需要一次或多次指令可能需要一次或多次的内存读写,指令的长度可能是的内存读写,指令的长度可能是的内存读写,指令的长度可能是的内存读写,指令的长度可能是1 1 1 113131313个字节。个字节。个字节。个字节。 从从从从Pentium ProPentium ProPentium ProPentium Pro CPU CPU CPU CPU开始,开始,开始,开始,INTELINTELINTELINTEL将将将将长度不定长度不定长度不定长度不定的的的的X86X86X86X86指令解码成为指令解码成为指令解码成为指令解码成为长度固定长度固定长度固定长度固定的的的的RISCRISCRISCRISC指令,或称为微操指令,或称为微操指令,或称为微操指令,或称为微操作指令。作指令。作指令。作指令。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

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