《5_6_指系统设计.ppt》由会员分享,可在线阅读,更多相关《5_6_指系统设计.ppt(98页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构1计计 算算 机机 系系 统统 结结 构构指令系统设计指令系统设计重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构2 计算机系统结构的主要组成部分 软件与硬件分界面的一个主要标志 软件与硬件之间互相沟通的桥梁指令系统指令系统硬件硬件软件软件指令系统指令系统重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构3 完整性完整性是指应该具备的是指应该具备的5 5类类基本指令种类基本指令种类 规整性规整性包括对称性和均匀性包括对称性和均匀性 对称性:对称性:所有通用寄存器要同等对待所有通用寄存器要同等对待
2、 操作码的设置等都要对称,操作码的设置等都要对称,指令对称设置指令对称设置 如:如:A AB B与与B BA A 均匀性:均匀性:不同数据类型、字长、存储设备、操作不同数据类型、字长、存储设备、操作 种类等,指令的设置要同等对待种类等,指令的设置要同等对待 高效率:高效率:指令的执行速度要快指令的执行速度要快 指令的使用频度要高指令的使用频度要高 各类指令之间要有一定的比例各类指令之间要有一定的比例 兼容性:兼容性:在同一系列机内指令系统兼容在同一系列机内指令系统兼容指令系统性能指令系统性能重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构4指令系统的设计思路指令系统的设计思路
3、确定应用的需求,系统的定位确定应用的需求,系统的定位 通通用用/专用专用计算机的定量设计原则计算机的定量设计原则对实际计算机指令系统的测量数据对实际计算机指令系统的测量数据考虑对编译器、操作系统的支持考虑对编译器、操作系统的支持基本思想:基本思想:计算机系统中的一些基本操作(包括计算机系统中的一些基本操作(包括操作系统和高级语言的操作)应由硬件实现还是操作系统和高级语言的操作)应由硬件实现还是由软件实现;某些复杂操作是由一条指令实现还由软件实现;某些复杂操作是由一条指令实现还是由一串指令实现。是由一串指令实现。重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构5操作类型及地址码
4、个数操作类型及地址码个数数数据类型和大小据类型和大小指令格式及编码指令格式及编码寻址技术寻址技术指令格式的优化设计指令格式的优化设计RISCRISC指令系统指令系统主要内容主要内容重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构6确定提供指令种类确定提供指令种类设计原则:设计原则:最频繁使用指令,也即最简最频繁使用指令,也即最简单的指令,单的指令,因此在实现的时候也应该因此在实现的时候也应该尽可能高速实现这些最常用的指令。尽可能高速实现这些最常用的指令。测量统计数据测量统计数据用基准测试程序测量各种指令使用频度用基准测试程序测量各种指令使用频度重庆大学计算机学院重庆大学计算机
5、学院 计算机系统结构计算机系统结构7基本指令:基本指令:供用户使用的最常用的指令供用户使用的最常用的指令算术逻辑运算类算术逻辑运算类数据传输类数据传输类控制类控制类专用指令:专用指令:针对特殊应用领域需要而设计的指令针对特殊应用领域需要而设计的指令 浮点指令(科学计算)浮点指令(科学计算)十进制指令(商用)十进制指令(商用)字符串指令(事务)字符串指令(事务)图象指令图象指令特权指令:特权指令:仅供系统操作员使用的指令仅供系统操作员使用的指令虚存管理、系统调用虚存管理、系统调用指令操作种类指令操作种类重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构8 地址码个数通常有三个、两
6、个、一个及个四种地址码个数通常有三个、两个、一个及个四种情况情况 评价地址码个数应该取多少的标准主要有两个:评价地址码个数应该取多少的标准主要有两个:一是程序的存储容量,包括操作码和地址码一是程序的存储容量,包括操作码和地址码 二是程序的执行速度,以程序执行过程中访问主二是程序的执行速度,以程序执行过程中访问主存的信息量代表存的信息量代表地址码个数的选择地址码个数的选择重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构9用用三地址指令编写的程序三地址指令编写的程序三地址指令编写的程序三地址指令编写的程序如下:如下:MUL X,A,B MUL X,A,B ;X X单元暂时用来存放
7、中间运算结果单元暂时用来存放中间运算结果 ADD X,X,CADD X,X,C SUB X,X,D SUB X,X,D ;X X单元中存放的是分子运算的结果单元中存放的是分子运算的结果 ADD Y,E,F ADD Y,E,F ;计算分母;计算分母 DIV X,X,Y DIV X,X,Y ;最后运算结果在;最后运算结果在X X单元中单元中 通过一个典型例子来分析通过一个典型例子来分析:例如:计算算术表达式例如:计算算术表达式:重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构10MOVE X,A MOVE X,A ;复制一个临时变量到;复制一个临时变量到X X单元中单元中MUL
8、X,BMUL X,BADD X,CADD X,CSUB X,D SUB X,D ;X X单元中存放的是分子运算的结果单元中存放的是分子运算的结果MOVE Y,E MOVE Y,E ;复制一个临时变量到;复制一个临时变量到Y Y单元中单元中ADD Y,F ADD Y,F ;Y Y单元中存放的是分母运算的结果单元中存放的是分母运算的结果DIV X,Y DIV X,Y ;最后运算结果在;最后运算结果在X X单元中单元中普通二地址指令编写的程序:普通二地址指令编写的程序:普通二地址指令编写的程序:普通二地址指令编写的程序:重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构11MOVE
9、R1,A MOVE R1,A ;把操作数;把操作数a a取到取到R1R1通用寄存器中通用寄存器中MUL R1,BMUL R1,BADD R1,CADD R1,CSUB R1,D SUB R1,D ;通用寄存器;通用寄存器R1R1中存放分子运算结果中存放分子运算结果MOVE R2,EMOVE R2,EADD R2,F ADD R2,F ;通用寄存器;通用寄存器R2R2中存放分母运算结果中存放分母运算结果DIV R1,R2 DIV R1,R2 ;最后运算结果在通用寄存器;最后运算结果在通用寄存器R1R1中中MOVE X,R1 MOVE X,R1 ;把最后运算结果存入;把最后运算结果存入X X单元中
10、单元中通用寄存器结构的二地址指令编写的程序通用寄存器结构的二地址指令编写的程序通用寄存器结构的二地址指令编写的程序通用寄存器结构的二地址指令编写的程序:重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构12LOAD E ;先计算分母,取一个操作数到累加器中ADD F ;分母运算结果在累加器中STORE X ;保存分母运算结果,腾出累加器LOAD A ;取分子的一个操作数到累加器中MUL BADD CSUB D ;累加器中是分子运算结果DIV X ;最后运算结果在累加器中STORE X ;保存最后运算结果到X单元中一地址指令编写的程序一地址指令编写的程序一地址指令编写的程序一地址
11、指令编写的程序:重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构13用零地址指令编写的程序:用零地址指令编写的程序:用零地址指令编写的程序:用零地址指令编写的程序:首先转换成逆波兰表达式:首先转换成逆波兰表达式:ab*c+d-ef+/ab*c+d-ef+/PUSH A PUSH A ;操作数;操作数a a压入堆栈压入堆栈PUSH B PUSH B ;操作数;操作数a a压入堆栈压入堆栈MUL MUL ;栈顶的两个操作数做乘法,结果压回堆顶;栈顶的两个操作数做乘法,结果压回堆顶PUSH CPUSH CADDADDPUSH DPUSH DSUB SUB ;栈顶是分子运算的结果;栈
12、顶是分子运算的结果PUSH EPUSH EPUSH FPUSH FADDADDDIV DIV ;栈顶是最后运算的结果;栈顶是最后运算的结果POP X POP X ;保存最后运算结果;保存最后运算结果重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构145 5个用不同地址数编写的程序的有关参数:个用不同地址数编写的程序的有关参数:地址数目地址数目指令条数指令条数访存次数访存次数程序存储量程序存储量执行速度执行速度(访存信息量访存信息量)三地址三地址5 520205P5P15A15A65B65B5P5P15A15A15D15D185B185B二地址二地址7 726267P7P14A
13、14A63B63B7P7P14A14A19D19D215B215B一地址一地址9 918189P9P 9A9A45B45B9P9P 9A 9A 9D9D117B117B零地址零地址1212414112P12P7A7A40B40B12P12P7A7A29D29D272B272B二地址二地址R R型型8 815158P+7A+9R8P+7A+9R40B40B8P+7A+9R+7D8P+7A+9R+7D96B96B注:注:P P表示操作码长度,表示操作码长度,A A表示地址码长度,表示地址码长度,D D表示数据长度,表示数据长度,R R表示通用表示通用寄存器的地址码长度,寄存器的地址码长度,B B表
14、示字节数。并取:表示字节数。并取:D D2A2A8P8P16R16R8B8B重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构15地址数地址数目目指令长度指令长度程序存储程序存储量量程序执行程序执行速度速度适用场合适用场合三地址短最大一般向量,矩阵运算为主二地址一般很大很低一般不宜采用一地址较长较大较快连续运算,硬件结构简单零地址最长最小最低嵌套,递归,变量较多二地址R型一般最小最快多累加器,数据传送较多各种不同地址数指令的特点及适用场合各种不同地址数指令的特点及适用场合重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构161 1、对于一般处理机,采用通用寄存器
15、结构二地址指对于一般处理机,采用通用寄存器结构二地址指令是最理想,其程序存储器容量最省,指令执行速度令是最理想,其程序存储器容量最省,指令执行速度最快。最快。2 2、如果强调硬件结构简单,并且以连续运算(如求如果强调硬件结构简单,并且以连续运算(如求累加和等)为主,宜采用一地址结构。累加和等)为主,宜采用一地址结构。3 3、对于以向量、矩阵运算为主的计算机系统,最好对于以向量、矩阵运算为主的计算机系统,最好采用三地址结构。采用三地址结构。4 4、对于解决以递归问题为主的计算机系统,宜采用对于解决以递归问题为主的计算机系统,宜采用零地址结构。零地址结构。地址码个数结论地址码个数结论:重庆大学计算
16、机学院重庆大学计算机学院 计算机系统结构计算机系统结构17操作类型及地址码个数操作类型及地址码个数数据类型和大小数据类型和大小指令格式及编码指令格式及编码寻址技术寻址技术指令格式的优化设计指令格式的优化设计RISCRISC指令系统指令系统重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构18数据类型和大小数据类型和大小操作数的类型如何说明操作数的类型如何说明在在opcodeopcode中编码说明中编码说明操作数带标志操作数带标志(tag)(tag)(自定义数据表示自定义数据表示)一般结构支持的数据类型一般结构支持的数据类型位、位串、整数、十进制数、字符位、位串、整数、十进制数、
17、字符(1B)(1B)、单精度浮点单精度浮点(4B)(4B)、双精度浮点、双精度浮点(8B)(8B)重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构19操作数大小的使用概率操作数大小的使用概率重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构20支持如下数据大小和类型:8位、16位、32位整数以及32位和64位IEEE 754 浮点数重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构21操作类型及地址码个数操作类型及地址码个数数据类型和大小数据类型和大小指令格式及编码指令格式及编码寻址技术寻址技术指令格式的优化设计指令格式的优化设计RISCRIS
18、C指令系统指令系统重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构22例 C=A+B 累加器型累加器型 堆栈型堆栈型Load A Push AAdd B Push BStore C AddPop C通用寄存器型通用寄存器型R-R型 R-M型 M-M型Load R1,A Load R1,A Add C,A,BLoad R2,B Add R1,BAdd R3,R1,R2 Store R1,CStore R3,C指令格式指令格式重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构23三种类型的优缺点比较注:表中(m,n)表示指令的n个操作数中有m个存储器操作重庆大学计
19、算机学院重庆大学计算机学院 计算机系统结构计算机系统结构24指令系统的编码程序代码的大小程序代码的大小,影响到,影响到CPUCPU的实现(译码的难易、繁的实现(译码的难易、繁简)简)编码考虑编码考虑编译角度看:尽量多的寄存器,尽量多的寻址方式编译角度看:尽量多的寄存器,尽量多的寻址方式平均指令长度、平均代码长度平均指令长度、平均代码长度是否易于实现(指令的规整性)是否易于实现(指令的规整性)编码关键编码关键寻址方式种类寻址方式种类opcodeopcode与寻址方式的独立性与寻址方式的独立性重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构25三种指令编码方式三种指令编码方式可变
20、长指令编码可变长指令编码定长指令编码定长指令编码混合指令编码混合指令编码P58重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构26三种指令编码方式比较三种指令编码方式比较可变长指令编码:可变长指令编码:操作种类多,寻址方式多操作种类多,寻址方式多代码空间小,代码密度高,单条指令变化大代码空间小,代码密度高,单条指令变化大定长指令编码:定长指令编码:操作种类少,寻址方式少操作种类少,寻址方式少代码空间大,代码密度低,但格式固定,实代码空间大,代码密度低,但格式固定,实现简单。现简单。混合指令编码混合指令编码重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构27
21、如果代码大小至关重要 使用可变长度指令 如果性能至关重要 使用固定长度指令重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构28操作类型及地址码个数操作类型及地址码个数数据类型和大小数据类型和大小指令格式及编码指令格式及编码寻址技术寻址技术指令格式的优化设计指令格式的优化设计RISCRISC指令系统指令系统重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构29寻找操作数及其地址的技术称为寻址技术。寻找操作数及其地址的技术称为寻址技术。主要内容:主要内容:编址方式、寻址方式和定位方式编址方式、寻址方式和定位方式 主要对象:主要对象:寄存器、主存储器、堆栈和输入寄存
22、器、主存储器、堆栈和输入输出设备输出设备 方法:方法:分析各种寻址技术的优缺点,如何选分析各种寻址技术的优缺点,如何选择和确定寻址技术择和确定寻址技术寻址技术寻址技术重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构30 定义:定义:编址方式是指对各种存储设备进行编码的方法。编址方式是指对各种存储设备进行编码的方法。主要内容:主要内容:编址单位、零地址空间个数、并行存储器的编编址单位、零地址空间个数、并行存储器的编址技术、输入输出设备的编址技术址技术、输入输出设备的编址技术1 1、编址单位、编址单位 常用的编址单位:常用的编址单位:字编址、字节编址、位编址、块编址等字编址、字节
23、编址、位编址、块编址等 编址单位与访问字长编址单位与访问字长 一般:字节编址,字访问一般:字节编址,字访问 部分机器:位编址,字访问部分机器:位编址,字访问 辅助存储器:块编址,位访问辅助存储器:块编址,位访问 字节编址字访问的优点:字节编址字访问的优点:有利于信息处理有利于信息处理 字节编址字访问的缺点:字节编址字访问的缺点:(1)(1)地址信息浪费。地址信息浪费。对于对于3232位机器,浪费位机器,浪费2 2位地址位地址(最低最低2 2位地址位地址)对于对于6464位机器,浪费位机器,浪费3 3位地址位地址 (2)(2)存储器空间浪费。存储器空间浪费。(3)(3)读写逻辑稍复杂读写逻辑稍复
24、杂 (4)(4)0 0字节位置引起的问题字节位置引起的问题编址方式编址方式重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构31(b)从一个存从一个存储储字的起始位置开始字的起始位置开始访问访问(2 2)存储器空间浪费。)存储器空间浪费。重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构32(c)从地址的整倍数位置开始从地址的整倍数位置开始访问访问重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构33读一个字节读一个字节用多路选择器用多路选择器写一个字节写一个字节先读后写先读后写(3)(3)读写逻辑复杂读写逻辑复杂重庆大学计算机学院重庆大学计算机
25、学院 计算机系统结构计算机系统结构34(4)(4)0 0字节位置引起的问题字节位置引起的问题 (大端大端(Big Endian)(Big Endian)与小端与小端(Little Endian)(Little Endian)问题问题)重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构35需要编址的设备主要有通用寄存器、主存储器和输需要编址的设备主要有通用寄存器、主存储器和输入输出设备。入输出设备。三个零地址空间:三个零地址空间:通用寄存器、主存储器和输入通用寄存器、主存储器和输入输出设备均独立编址输出设备均独立编址 两个零地址空间:两个零地址空间:主存储器与输入输出设备统一主存
26、储器与输入输出设备统一编址编址 一个零地址空间:一个零地址空间:所有存储设备统一编址所有存储设备统一编址 最低端是通用寄存器,最高端是输入输出设备,最低端是通用寄存器,最高端是输入输出设备,中间为主存储器中间为主存储器 隐含编址方式:隐含编址方式:实际上没有零地址空间实际上没有零地址空间 堆栈、堆栈、CacheCache等等2 2、零地址空间个数、零地址空间个数重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构36一台设备一个地址一台设备一个地址一台设备两个地址一台设备两个地址一台设备多个地址一台设备多个地址4 4、并行存储器的编址技术、并行存储器的编址技术 高位交叉编址,主要
27、目的是用来扩大存储器容量。高位交叉编址,主要目的是用来扩大存储器容量。低位交叉编址,主要目的是提高存储器速度。低位交叉编址,主要目的是提高存储器速度。3 3、输入输出设备的编址、输入输出设备的编址重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构37 定义:定义:寻找操作数及数据存放单元的方法称为寻址方式寻找操作数及数据存放单元的方法称为寻址方式 立即数寻址方式立即数寻址方式 用于数据比较短。且为源操作数的场合用于数据比较短。且为源操作数的场合寄存器寻址寄存器寻址 主要优点:主要优点:(1 1)指令字长短)指令字长短 (2 2)指令执行速度快)指令执行速度快 (3 3)支持向量
28、、矩阵运算)支持向量、矩阵运算 主要缺点:主要缺点:(1 1)不利于优化编译)不利于优化编译 (2 2)现场切换困难)现场切换困难 (3 3)硬件复杂)硬件复杂寻址方式寻址方式重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构38 主要优点:主要优点:支持高级语言,有利与编译程序支持高级语言,有利与编译程序节省存储空间节省存储空间支持程序的嵌套和递归调用支持程序的嵌套和递归调用支持中断处理支持中断处理 主要缺点:主要缺点:运算速度比较低运算速度比较低 堆堆栈栈寻址方式寻址方式重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构391.1.存储方式存储方式大数端大数
29、端(Big Endian)(Big Endian):最低字节存储在高地址最低字节存储在高地址小数端小数端(Little Endian)(Little Endian):最低字节存储在低地址最低字节存储在低地址存储器寻址方式存储器寻址方式当在具有不同定义的机器之间,传输存储字时,必须当在具有不同定义的机器之间,传输存储字时,必须变换字节的顺序,以保证数据的成功复制变换字节的顺序,以保证数据的成功复制重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构402.2.边界对齐问题边界对齐问题对齐访问地址 字节 XXXXXXXXXXX 半字 XXXXXXXXXX0 字 XXXXXXXXX00
30、 双字 XXXXXXXX000要求对象只能安放于其大小的倍数的地址上存储器中字的对齐情况(a)字不对齐161612128844003210(b)字对齐地址字节3201重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构41寻址方式寻址方式种类种类寄存器寻址寄存器寻址Add R4,R3Add R4,R3立即数立即数 Add R4,#3Add R4,#3位移寻址(基址)位移寻址(基址)Add R4,100(R1)Add R4,100(R1)索引(变址)索引(变址)Add R3,(R1+R2)Add R3,(R1+R2)寄存器间接寻址寄存器间接寻址 Add R4,(R1)Add R4,
31、(R1)直接寻址(绝对)直接寻址(绝对)Add R1,(1000)Add R1,(1000)存储器间接寻址存储器间接寻址 Add R1,(R3)Add R1,(R3)自增自减寻址自增自减寻址 Add R1,(R2)+Add R1,(R2)+比例寻址比例寻址 Add Add R1,100(R2)R3R1,100(R2)R3重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构42测量统计数据测量统计数据寻址方式对指令系统的影响寻址方式对指令系统的影响有效减少指令系统的指令条数有效减少指令系统的指令条数可能增加制造计算机的复杂度可能增加制造计算机的复杂度也可能会增大平均也可能会增大平均
32、CPICPI测量各种寻址方式测量各种寻址方式在实际应用中的情况对于在实际应用中的情况对于寻址方式的选择就非常重要。寻址方式的选择就非常重要。重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构43寻址方式使用频度统计重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构44寻址方式使用情况说明未统计寄存器寻址模式,因为寄存器寻址与存储未统计寄存器寻址模式,因为寄存器寻址与存储器寻址各占一半;器寻址各占一半;PCPC相对寻址总是用于转移指令,所以不再统计;相对寻址总是用于转移指令,所以不再统计;位移量寻址包括了所有位移量长度(位移量寻址包括了所有位移量长度(8 8.16
33、.3216.32位)位)在存储器寻址方式中最常用的是在存储器寻址方式中最常用的是位移寻址位移寻址 42%42%立即数寻址立即数寻址33%33%寄存器间接寻址寄存器间接寻址13%13%重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构45位移量的范围位移量的范围X轴的单位是2的幂重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构46位移量使用情况说明测量数据是在测量数据是在1616位位移量的机器上测得的,所以位位移量的机器上测得的,所以不反映大位移量的情况。不反映大位移量的情况。测量数据与编译策略是相关的。测量数据与编译策略是相关的。图中给出的不反映位移的符号。一
34、般绝大多数位图中给出的不反映位移的符号。一般绝大多数位移量为正值,而大部分大位移量移量为正值,而大部分大位移量(14(14位位)为负值。为负值。位移所需位数:位移所需位数:12 12 bitbit 75%75%16 bit16 bit 99%99%161631 bit 31 bit%重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构47立即数寻址立即数寻址立即数寻址常用于:算术运算指令,比较指令以立即数寻址常用于:算术运算指令,比较指令以及数据传送指令;及数据传送指令;作为常数,则值小,作为地址,则值大;作为常数,则值小,作为地址,则值大;决定:支持所有的指令类型决定:支持所有
35、的指令类型/支持部分类型?支持部分类型?-测量哪些运算类指令提供立即数寻址测量哪些运算类指令提供立即数寻址整数整数ALU ALU (58%78%)(58%78%)整数比较整数比较(77%87%)(77%87%)-测量立即数的值的范围测量立即数的值的范围立即数位立即数位50%70%50%70%立即数位立即数位75%80%75%80%重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构48各类指令使用立即数的频度重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构49立即数域段的大小重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构50寻址方式小结至少提
36、供种存储器寻址模式至少提供种存储器寻址模式寄存器间接寻址,位移量寻址,立即数寻址寄存器间接寻址,位移量寻址,立即数寻址位移量域段的位数:位移量域段的位数:1216位位立即数域段的位数:立即数域段的位数:816位位重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构5180X86机器10条最常使用的指令重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构52控制类指令无条件转移无条件转移 jumpjump条件转移条件转移 branchbranch过程调用过程调用 callcall过程返回过程返回 return return 转移指令的使用频度转移指令的使用频度重庆大学
37、计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构53转移目标地址的说明对于控制流指令,绝大多数情况下都要显式对于控制流指令,绝大多数情况下都要显式说明转移目标地址。说明转移目标地址。只有过程返回指令是个例外,因为编译时无法确只有过程返回指令是个例外,因为编译时无法确切知道转移地址。,切知道转移地址。,PCPC相对寻址相对寻址距当前指令近,位移量小距当前指令近,位移量小使程序运行具有位置无关性使程序运行具有位置无关性寄存器间接寻址(其他寻址方式)寄存器间接寻址(其他寻址方式)case/switchcase/switch动态共享库函数动态共享库函数虚函数虚函数重庆大学计算机学院重庆大学计
38、算机学院 计算机系统结构计算机系统结构54绝大部分位移量在绝大部分位移量在2 27 7位,位,7 7位:位:93%93%短偏移量域段短偏移量域段 短转移指令短转移指令 高代码密度高代码密度确定偏移量长度确定偏移量长度重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构55大部分控制指令是条件转移指令,所以确定转移条件的大部分控制指令是条件转移指令,所以确定转移条件的说明方式是转移指令设计的重要内容。说明方式是转移指令设计的重要内容。三种条件说明方式三种条件说明方式条件码:由条件码:由ALUALU操作设置特殊位,程序可控。操作设置特殊位,程序可控。条件寄存器:把比较指令的结果放在寄
39、存器中,然后条件寄存器:把比较指令的结果放在寄存器中,然后测试寄存器的值。测试寄存器的值。比较并转移:一条指令既做比较又执行转移,比较是比较并转移:一条指令既做比较又执行转移,比较是branchbranch指令的一部分。指令的一部分。转移指令的条件说明方式重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构56三种条件说明方式的优缺点比较重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构57条件转移种类分析重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构58转移中比较类型分析等于等于/不等于不等于 比较占多数比较占多数 (78.8%78.8%)与
40、与0 0比较占多数:比较占多数:50%50%的整数比较是的整数比较是“=0=0”简单比较简单比较 有些机器就设置一些指令:比较并转有些机器就设置一些指令:比较并转移指令移指令特殊的特殊的branchbranch指令:既完成比较,又做转指令:既完成比较,又做转移移重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构59条件转移成功率的分析约约75%75%是正向转移(偏移量是正向转移(偏移量=0=0)条件转移成功率条件转移成功率 =65%=65%反向转移成功率高,反向转移成功率高,looploop转移成功率可达转移成功率可达90%90%正向转移成功率低(约正向转移成功率低(约40%4
41、0%)-优化编译的重要依据优化编译的重要依据重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构60小结优先考虑最常用指令:优先考虑最常用指令:LoadLoad、storestore、addadd、subsub、move R-Rmove R-R、andand、shiftshift、branchbranch等等条件转移:偏移量约条件转移:偏移量约 100=2100 CPI ,指令越复杂,指令越复杂,CPICPI越大。越大。重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构86CISCCISC的主要缺点的主要缺点指令使用频度不均衡指令使用频度不均衡高频度使用的指令占据
42、了绝大部分的执行时间,扩充的复高频度使用的指令占据了绝大部分的执行时间,扩充的复杂指令往往是低频度指令。杂指令往往是低频度指令。CISCCISC指令系统过于复杂,指令规模过于庞大。不符合指令系统过于复杂,指令规模过于庞大。不符合20%20%80%80%的规律。的规律。大量复杂指令的控制逻辑不规整,大量复杂指令的控制逻辑不规整,不适于不适于VLSIVLSI工艺工艺VLSIVLSI的出现,使单芯片处理机希望采用规整的硬联逻辑实的出现,使单芯片处理机希望采用规整的硬联逻辑实现,而不希望用微程序,因为微程序的使用制约了速度提现,而不希望用微程序,因为微程序的使用制约了速度提高。高。复杂指令增加硬件的复
43、杂度,使指令执行周期大大加长,复杂指令增加硬件的复杂度,使指令执行周期大大加长,直接访存次数增多,数据重复利用率低。直接访存次数增多,数据重复利用率低。不利于先进指令级并行技术的采用不利于先进指令级并行技术的采用根本原因:在于软硬件功能分配不妥。根本原因:在于软硬件功能分配不妥。重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构87是是8080年代提出的一种新的设计思想。年代提出的一种新的设计思想。目前许多处理机都采用了目前许多处理机都采用了RISCRISC指令系统。指令系统。例:例:SunSun、ultra sparcultra sparc、SGISGI、PowerPCPow
44、erPC、PentiumPentium、PP、PP等。等。RISCRISC指令产生的背景指令产生的背景重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构88RISCRISC基本设计思想基本设计思想减小减小CPI:CPUtime=Instr_Count*CPI*CPI:CPUtime=Instr_Count*CPI*Clock_cycleClock_cycle精简指令集:保留最基本的,去掉复杂、使用精简指令集:保留最基本的,去掉复杂、使用频度不高的指令频度不高的指令采用采用Load/StoreLoad/Store结构,有助于减少指令格式,结构,有助于减少指令格式,统一存储器访问方
45、式统一存储器访问方式采用硬接线控制代替微程序控制采用硬接线控制代替微程序控制重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构89RISCRISC思想精华思想精华:减少减少CPI(CPI(指令平均执行周期数指令平均执行周期数)减少减少CPICPI的主要途径:的主要途径:采用硬件布线控制逻辑;采用硬件布线控制逻辑;减少指令和寻址方式的种类;减少指令和寻址方式的种类;使用固定的指令格式;使用固定的指令格式;采用采用load/store load/store 结构;结构;设置多级设置多级pipelinepipeline;强调编译优化。强调编译优化。例如:例如:8048680486的的
46、CPICPI为为2 2,而,而pentiumpentium的的CPICPI在在1 1以以下,使下,使1 1个个CPUCPU周期内可执行多条指令。周期内可执行多条指令。重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构90ICICRISCRISC IC IC CISCCISC,30%-40%,30%-40%CCCCRISCRISC CC CCCISCCISC,CPICPIRISCRISC CPI CPICISCCISC 差距在缩小差距在缩小超标量、超流水线、超标量、超流水线、VLIWVLIW等系统结构,目标在等系统结构,目标在于减小于减小CPICPI,可使可使CPI1CPIR3A
47、DDR3,R4,R5;(R3)+(R4)-R5MULR6,R7,R3;(R6)*(R7)-R3MULR3,R8,R9;(R3)*(R8)-R9调整指令后调整指令后ADDR1,R2,R3;MULR6,R7,R0;ADDR3,R4,R5;MULR0,R8,R9;调整指令后,速度可以提高一倍调整指令后,速度可以提高一倍重庆大学计算机学院重庆大学计算机学院 计算机系统结构计算机系统结构985 5、硬件为主、固件为辅、硬件为主、固件为辅采用微程序实现的主要优点是:便于实现复杂指令,便于修改指令系统,增加了机器的灵活性和适应性。主要缺点是:执行速度低。解决方法:RISC 主要采用硬件逻辑实现,部分软件采用固件的方法实现。固件+硬件