1、计算机体系结构全册配套最 完整精品课件1 2021-8-26 2021-8-26 计算机系统结构计算机系统结构 Computer Architecture 2021-8-26 一、一、课程介绍课程介绍 二、二、课程目标课程目标 三、三、教学要求教学要求 四、四、教材及参考资料教材及参考资料 2021-8-26 一、课程介绍一、课程介绍 u课程名称课程名称:计算机系统结构计算机系统结构 u英文名称英文名称:Computer Architecture 二、课程性质与教学目的课程性质与教学目的 本课程是计算机科学与技术专业的一门专业必本课程是计算机科学与技术专业的一门专业必 修课。修课。课程内容课程
2、内容为:计算机系统结构的基本概念为:计算机系统结构的基本概念 、数据表示、指令系统的设计和改进,、数据表示、指令系统的设计和改进,CISC和和 RISC指令系统的设计风格,流水线技术、存储指令系统的设计风格,流水线技术、存储 体系、虚拟存储器,体系、虚拟存储器,Cache存储器,输入输出技存储器,输入输出技 术,多处理机系统。术,多处理机系统。 1、计算机系统结构概论、计算机系统结构概论 2、数据表示、寻址方式与指令系统、数据表示、寻址方式与指令系统 3、中断、总线与、中断、总线与I/O系统系统 4、存储体系、存储体系 5、流水和指令级高度并行的超级计算机、流水和指令级高度并行的超级计算机 6
3、、阵列处理机、阵列处理机 7、多处理机、多处理机 三、教材及参考资料三、教材及参考资料 教材:教材:计算机系统结构计算机系统结构 李学干李学干 西安电子科技大学出版社西安电子科技大学出版社 参考资料:参考资料:Internet资源资源 计算机系统结构计算机系统结构 郑伟民郑伟民 清华大学清华大学 计算机体系结构计算机体系结构李勇李勇,刘恩林刘恩林 国防科大国防科大 计算机组织与结构计算机组织与结构性能设计性能设计 第五版第五版 William Stallings 电子工业出版社电子工业出版社 2021-8-26 系统(系统(System)部分组成整体部分组成整体 为完成特定任务由相关部件或要素
4、为完成特定任务由相关部件或要素 组成的有机的整体。组成的有机的整体。 计算机系统(计算机系统(Computer System) 2021-8-26 计算机系统结构(计算机系统结构(Computer Architecture) 源于建筑领域,意为建筑物的源于建筑领域,意为建筑物的设计设计和和样式样式 建筑物设计建筑物设计 在有限造价且满足功能要求情形下,在有限造价且满足功能要求情形下, 尽可能美观,突出特色尽可能美观,突出特色 强调建筑风格不惜代价强调建筑风格不惜代价 2021-8-26 编写出能够在机器上正确运行的程序所必须编写出能够在机器上正确运行的程序所必须 了解到的计算机属性了解到的计算
5、机属性 计算机系统软硬件的交界面计算机系统软硬件的交界面 机器语言程序员所看到的计算机的属性机器语言程序员所看到的计算机的属性 Computer Architecture 从外部来研究计算机系统从外部来研究计算机系统 使用者所看到的物理计算机的抽象使用者所看到的物理计算机的抽象 2021-8-26 2021-8-26 第第1章章 计算机系统结构概论计算机系统结构概论 第第2章章 数据表示、寻址方式与指令系统数据表示、寻址方式与指令系统 第第3章章 存储、总线、中断与存储、总线、中断与I/O系统系统 第第4章章 存存 储储 体体 系系 第第5章章 重叠、重叠、 流水和超级计算机流水和超级计算机
6、第第6章章 阵列处理机阵列处理机 第第7章章 多多 处处 理理 机机 第第 1 1 章章 计算机系统结构概论计算机系统结构概论 1.1 计算机系统的多级层次结构计算机系统的多级层次结构 1.2 计算机系统结构、组成与实现计算机系统结构、组成与实现 1.3 软硬取舍、性能评测及定量设计原理软硬取舍、性能评测及定量设计原理 1.4 软件、应用、器件对系统结构的影响软件、应用、器件对系统结构的影响 1.5 系统结构中的并行性发展及计算机系统的分类系统结构中的并行性发展及计算机系统的分类 本章的重点本章的重点 本章的重点是:本章的重点是:计算机系统结构、计算计算机系统结构、计算 机组成、计算机实现三者
7、的定义及所包机组成、计算机实现三者的定义及所包 含的内容,有关含的内容,有关透明性问题的判断透明性问题的判断;软;软 件和硬件的功能分配原则;软件可移植件和硬件的功能分配原则;软件可移植 性的途径、方法、适用场合、存在问题性的途径、方法、适用场合、存在问题 和对策;有关并行性的概念,系统结构和对策;有关并行性的概念,系统结构 中开发并行性的途径和类型等。中开发并行性的途径和类型等。 计算机性能的高速增长受益于计算机性能的高速增长受益于 电路技术的发展电路技术的发展 体系结构技术的发展体系结构技术的发展 计算机系统中的层次概念计算机系统中的层次概念 1. 1. 计算机系统计算机系统软件硬件软件硬
8、件/ /固件固件 2. 2. 计算机语言由低级向高级发展计算机语言由低级向高级发展 高一级语言的语句相对于低高一级语言的语句相对于低 级语言功能更强,更便于应用,级语言功能更强,更便于应用, 但又都以低级语言为基础。但又都以低级语言为基础。 3. 3. 从计算机语言的角度,把计算机从计算机语言的角度,把计算机 系统按功能划分成系统按功能划分成多级层次结构多级层次结构。 1.1 计算机系统的多级层次结构计算机系统的多级层次结构 图图 1.1 计算机系统的多级层次结构计算机系统的多级层次结构 (1) (1) 虚拟机:虚拟机:由软件实现的机器。由软件实现的机器。(不一定全由(不一定全由 软件实现,有
9、些操作可用固件或硬件实现。)软件实现,有些操作可用固件或硬件实现。) (2) (2) 语言实现的两种基本技术语言实现的两种基本技术 翻译:翻译: 解释:解释: (3 3)固件:)固件: 1.2 计算机系统结构、组成与实现计算机系统结构、组成与实现 1.2.1 结构、组成与实现结构、组成与实现 系统结构系统结构(System Architecture)是对计是对计 算机系统中各级机器间界面的划分和定义,算机系统中各级机器间界面的划分和定义, 以及对各界面上、下的功能进行分配。以及对各界面上、下的功能进行分配。 计算机系统结构计算机系统结构或或计算机体系结构计算机体系结构 (Computer Ar
10、chitecture)只是系统结构中只是系统结构中 的一部分。的一部分。它指的是层次结构中传统机器它指的是层次结构中传统机器 级的系统结构,其界面之上的功能包括操级的系统结构,其界面之上的功能包括操 作系统级、汇编语言级、高级语言级和应作系统级、汇编语言级、高级语言级和应 用语言级中所有软件的功能。用语言级中所有软件的功能。 界面之下的界面之下的 功能包括所有硬件和固件的功能。功能包括所有硬件和固件的功能。 系统结构设计系统结构设计就是要研究对某级,哪些应该是就是要研究对某级,哪些应该是 透明,哪些不应当透明。透明,哪些不应当透明。 透明性透明性 在计算机技术中,对这种本来是存在的事在计算机技
11、术中,对这种本来是存在的事 物或属性,但从某种角度看又好象不存在。物或属性,但从某种角度看又好象不存在。 计算机系统结构研究的是计算机系统结构研究的是软、硬件之间的功能软、硬件之间的功能 分配以及对传统机器级界面的确定,提供机器分配以及对传统机器级界面的确定,提供机器 语言、汇编程序设计者、编译程序生成系统为语言、汇编程序设计者、编译程序生成系统为 使其设计或生成的程序能在机器上正确运行应使其设计或生成的程序能在机器上正确运行应 看到和遵循的计算机属性。看到和遵循的计算机属性。 就目前的通用机来说,就目前的通用机来说,计算机系统结构的属性计算机系统结构的属性应包括:应包括: 1.硬件能直接识别
12、和处理的数据类型及格式等的数据表示;硬件能直接识别和处理的数据类型及格式等的数据表示; 2.最小可寻址单位、最小可寻址单位、 寻址种类、地址计算等的寻址方式;寻址种类、地址计算等的寻址方式; 3.通通/专用寄存器的设置、数量、字长、使用约定等的寄存器组织;专用寄存器的设置、数量、字长、使用约定等的寄存器组织; 4.二进制或汇编级指令的操作类型、二进制或汇编级指令的操作类型、 格式、格式、 排序方式、排序方式、 控制机构等的控制机构等的 指令系统;指令系统; 5.内存的最小编址单位、编址方式、容量、最大可编址空间等的存储内存的最小编址单位、编址方式、容量、最大可编址空间等的存储 系统组织;系统组
13、织; 6.中断的分类与分级、中断处理程序功能及入口地址等的中断机构;中断的分类与分级、中断处理程序功能及入口地址等的中断机构; 7.系统机器级的管态和用户态的定义和切换;系统机器级的管态和用户态的定义和切换; 8.输入输出设备的连接、输入输出设备的连接、 使用方式、使用方式、 流量、流量、 操作结束、操作结束、 出错指示等出错指示等 的机器级的机器级I/O结构;结构; 9.系统各部分的信息保护方式和保护机构;系统各部分的信息保护方式和保护机构; 计 算 机 组 成计 算 机 组 成 ( ( C o m p u t e r C o m p u t e r OrganizationOrganiza
14、tion) )指的是计算机系统结构的指的是计算机系统结构的 逻辑实现逻辑实现, 包括机器级内的数据流和控包括机器级内的数据流和控 制流的组成以及逻辑设计等制流的组成以及逻辑设计等。它着眼于。它着眼于 机器级内各事件的排序方式与控制机构、机器级内各事件的排序方式与控制机构、 各部件的功能及各部件间的联系。计算各部件的功能及各部件间的联系。计算 机组成设计要解决的问题是在所希望达机组成设计要解决的问题是在所希望达 到的性能和价格下,怎样最佳、最合理到的性能和价格下,怎样最佳、最合理 地把各种设备和部件组织成计算机,以地把各种设备和部件组织成计算机,以 实现所确定的系统结构。实现所确定的系统结构。
15、近近 40 40 年里,年里, 计算机组成设计主要是围绕提高速度,计算机组成设计主要是围绕提高速度, 着重从提高操作的并行度、重叠度,以着重从提高操作的并行度、重叠度,以 及分散功能和设置专用功能部件来进行及分散功能和设置专用功能部件来进行 的。的。 计算机组成设计要确定的方面一般应计算机组成设计要确定的方面一般应 包括:包括: 数据通路宽度数据通路宽度( (在数据总线上一次并在数据总线上一次并 行传送的信息位数多少行传送的信息位数多少) ); 专用部件的设置专用部件的设置( (设置哪些专用部件,设置哪些专用部件, 如乘除法专用部件、如乘除法专用部件、 浮点运算部件、浮点运算部件、 字符处理部
16、件、字符处理部件、 地址运算部件等,每种地址运算部件等,每种 专用部件设置的数量,专用部件设置的数量, 这些都与机器所这些都与机器所 需达到的速度、专用部件的使用频度高需达到的速度、专用部件的使用频度高 低及允许的价格等有关低及允许的价格等有关) ); 各种操作对部件的共享程度各种操作对部件的共享程度( (共享程共享程 度高,度高, 即使操作在逻辑上不相关也只能即使操作在逻辑上不相关也只能 分时使用,限制了速度,分时使用,限制了速度, 但价格便宜。但价格便宜。 可以设置多个部件降低共享程度,提高操可以设置多个部件降低共享程度,提高操 作并行度来提高速度,但价格也将提高作并行度来提高速度,但价格
17、也将提高) ); 功能部件的并行度功能部件的并行度( (功能部件的控制功能部件的控制 和处理方式是采用顺序串行,和处理方式是采用顺序串行, 还是采用还是采用 重叠、重叠、 流水或分布处理流水或分布处理) ); 控制机构的组成方式控制机构的组成方式( (事件、操作的事件、操作的 排序机构是采用硬联控制还是用微程序控排序机构是采用硬联控制还是用微程序控 制,是采用单机处理还是用多机处理或功制,是采用单机处理还是用多机处理或功 能分布处理能分布处理) ); 缓冲和排队技术缓冲和排队技术( (在不同部件之间怎在不同部件之间怎 样设置及设置多大容量的缓冲器来弥补样设置及设置多大容量的缓冲器来弥补 它们的
18、速度差异;是采用随机方式,还它们的速度差异;是采用随机方式,还 是先进先出、先进后出、优先级或循环是先进先出、先进后出、优先级或循环 方式来安排等待处理事件的先后顺序方式来安排等待处理事件的先后顺序) ); 预估、预估、 预判技术预判技术( (为优化性能和优为优化性能和优 化处理,化处理, 采用什么原则来预测未来的行采用什么原则来预测未来的行 为为) ); 可靠性技术可靠性技术( (采用什么样的冗余技术采用什么样的冗余技术 和容错技术来提高可靠性和容错技术来提高可靠性) ); 计算机实现计算机实现指的是计算机组成的指的是计算机组成的物理实物理实 现现,包括处理机、主存等部件的物理结,包括处理机
19、、主存等部件的物理结 构,器件的集成度和速度,器件、模块、构,器件的集成度和速度,器件、模块、 插件、底板的划分与连接,专用器件的插件、底板的划分与连接,专用器件的 设计,微组装技术,信号传输,电源、设计,微组装技术,信号传输,电源、 冷却及整机装配技术等。冷却及整机装配技术等。 着眼于器件技术和微组装技术,器件技着眼于器件技术和微组装技术,器件技 术在实现技术中起着主导作用。术在实现技术中起着主导作用。 系列机系列机 如:如:IBM 370系列有系列有370/115、125、135、 145、158、168等一系列从低速到高速等一系列从低速到高速 的各种型号。的各种型号。 IBM PC系列机
20、系列机 (处理器、处理器字宽、主要(处理器、处理器字宽、主要I/O总总 线、存储空间、线、存储空间、 主要操作系统和计算机结构)主要操作系统和计算机结构) 计算机计算机 PCPC和和PC XTPC XT PC AT PC AT 80386 PC 80386 PC 80486 PC 80486 PC Pentium PC Pentium PC Pentium II PCPentium II PC Pentium III PCPentium III PC Pentium 4 PCPentium 4 PC 时间时间 19811981 19821982 19851985 19891989 199319
21、93 19971997 19991999 20002000 处理器处理器 80888088 8028680286 8038680386 8048680486 PentiumPentium Pentium IIPentium II Pentium IIIPentium III Pentium 4Pentium 4 字宽字宽 1616位位 1616位位 3232位位 3232位位 3232位位 3232位位 3232位位 3232位位 主要主要I/OI/O总线总线 PCPC总线总线 ATAT(ISAISA) ISA/EISAISA/EISA ISA+VLISA+VL ISA+PCIISA+PCI
22、ISA+PCI+AGPISA+PCI+AGP PCI+AGP +USBPCI+AGP +USB PCI-X+AGP +USBPCI-X+AGP +USB 存储空间存储空间 2020位位 2424位位 3232位位 3232位位 3232位位 3232位位 3232位位 3232位位 主要操作系统主要操作系统 DOSDOS DOSDOS、XENIXXENIX DOSDOS、Windows 3.0 Windows 3.0 DOSDOS、Windows 3.1Windows 3.1 DOSDOS、Windows 3.1Windows 3.1 Windows 95Windows 95 Windows
23、98Windows 98、20002000 Windows MeWindows Me、XPXP PCPC系列机典型特性比较系列机典型特性比较 IBM 370 系列机的概念性结构系列机的概念性结构 IBM 370系列机字长、数的表示和数据通路宽度系列机字长、数的表示和数据通路宽度 1.2.2 计算机系统结构、组成和实现三者的相互影响计算机系统结构、组成和实现三者的相互影响 结构不同会使可能采用的组成技术不同。结构不同会使可能采用的组成技术不同。 例如,为实现例如,为实现 A = B+C D = E*F 如果采用面向寄存器的系统结构,如果采用面向寄存器的系统结构, 其程序可以是其程序可以是 LOA
24、D LOAD R1, BR1, B ADD R1, CADD R1, C STORE STORE R1, AR1, A LOADLOADR2, ER2, E MPYMPYR2, FR2, F STORESTORE R2, D R2, D 而对面向主存的具有三地址寻址方式的系统结构,其程序可以是而对面向主存的具有三地址寻址方式的系统结构,其程序可以是 ADDADDB, C, A;B, C, A; MPYMPYE, F, D E, F, D 组成也影响结构组成也影响结构,微程序控制就是一个例子。,微程序控制就是一个例子。 通过改变控制存储器中的微程序,就可改变系通过改变控制存储器中的微程序,就可改
25、变系 统的机器指令,改变结构。统的机器指令,改变结构。 组成设计向上决定于结构,向下受限于实现技组成设计向上决定于结构,向下受限于实现技 术。术。 着眼于软、硬件功能分配和确定程序设计者所着眼于软、硬件功能分配和确定程序设计者所 看到的机器级界面的计算机系统结构称为看到的机器级界面的计算机系统结构称为从程从程 序设计者序设计者看到的看到的计算机系统结构计算机系统结构;把着眼于如;把着眼于如 何更好、更合理地实现分配给硬件的功能的计何更好、更合理地实现分配给硬件的功能的计 算机组成称为从算机组成称为从计算机设计者计算机设计者看到的看到的计算机系计算机系 统结构统结构。 1.3 软硬取舍、性能评测
26、及定量设计原理软硬取舍、性能评测及定量设计原理 1.3.1 软硬取舍的基本原则软硬取舍的基本原则 计算机系统的软、计算机系统的软、 硬件功能分配硬件功能分配 无论是硬件实现,还是软件实现,无论是硬件实现,还是软件实现,实实 现费用现费用都应包括都应包括研制费用和重复生产费用研制费用和重复生产费用。 尽管目前软件的设计效率低,但用硬件实尽管目前软件的设计效率低,但用硬件实 现的设计费用还是明显地大于用软件实现现的设计费用还是明显地大于用软件实现 的费用,尤其是大规模、超大规模专用集的费用,尤其是大规模、超大规模专用集 成电路片子的设计费用是比较高的。成电路片子的设计费用是比较高的。 设某功能的软
27、、硬件实现的每次设计设某功能的软、硬件实现的每次设计 费用分别为费用分别为Ds和和Dh,则,则Dh100Ds是完全可是完全可 能的。能的。 至于重复生产费用,硬件实现的也比至于重复生产费用,硬件实现的也比 软件实现的贵得多,后者只是软件的复制软件实现的贵得多,后者只是软件的复制 费用加上存放该软件的存贮介质费用加上存放该软件的存贮介质( (如盘片如盘片) ) 的价格。的价格。 设该功能软、硬件实现的每次重设该功能软、硬件实现的每次重 复生产费用分别为复生产费用分别为M Ms s和和M Mh h, , 则则M Mh h100 100 M Ms s也也 是可能的。是可能的。 用硬件实现一个功能用硬
28、件实现一个功能( (如子程序调用的如子程序调用的 全部操作全部操作) ),往往只需设计一次;而用软件,往往只需设计一次;而用软件 实现时,每用到该功能往往要重新设计。实现时,每用到该功能往往要重新设计。 设设C C为该功能在为该功能在软件实现时需重新设计的次软件实现时需重新设计的次 数数,则该功能用,则该功能用软件实现的设计费用软件实现的设计费用就为就为 C CD Ds s( (由于重新设计时可利用原设计进行由于重新设计时可利用原设计进行 修改或简单搬用,使设计费用修改或简单搬用,使设计费用D Ds s要低得多要低得多) )。 同一功能的软件在存贮介质上有可能多次同一功能的软件在存贮介质上有可
29、能多次 出现,每出现一次都需要有复制和存贮费出现,每出现一次都需要有复制和存贮费 用。用。 设该功能在存贮介质上出现了设该功能在存贮介质上出现了R R次,次, 软件实现此功能的重复生产费用就为软件实现此功能的重复生产费用就为R RM Ms s。 假定该计算机系统共生产了假定该计算机系统共生产了V台,每台,每 台计算机若用硬件实现该功能的费用就为台计算机若用硬件实现该功能的费用就为 Dh/V+Mh 改用软件实现则为改用软件实现则为 CDs/V+RMs 只有只有 Dh/V+MhCDs/V+RMs 时,时,用硬件实现才是适宜的用硬件实现才是适宜的。将上述。将上述Dh与与 Ds、Mh与与Ms的比值代入
30、,得的比值代入,得 100Ds/V+100MsCDs/V+RMs 软件设计费用远比软件的重复生产软件设计费用远比软件的重复生产 费用高,费用高,Ds104Ms是完全可能的。如是完全可能的。如 果将此关系式代入上式,果将此关系式代入上式, 得得 106/V+1002 的的 可表示浮点数个数与可表示浮点数个数与rm=2 的可表示浮点的可表示浮点 数个数之比数个数之比。 由于采用的由于采用的rm2 时,可表示的最大时,可表示的最大 值总比值总比rm=2 的可表示的最大值要大,总的可表示的最大值要大,总 可以找到一个其最大尾数值为可以找到一个其最大尾数值为1-2-m,阶,阶 值为值为 q, 使得使得
31、)21 (2)21 ( 12mmq m p r 即即 , 从而得出此时的从而得出此时的q值为值为 12 2 p q m r m p r q 2 log 12 ) 1()1 (2 2 ) 1()1 (2 11 1 1 qr qr e m p mp m m 将将q=(2p-1)/log2 rm代入上式得代入上式得 m p m p r re 2 11 log 12 1)1 (2 实际机器中阶码位数实际机器中阶码位数p一般都较大,一般都较大, 至少至少p=8,这时若,这时若rm取取 16, 则表示比则表示比 47. 0 4 12 1 16 1 12 8 81 e rm越大,在与越大,在与rm=2的浮点
32、数相重叠的的浮点数相重叠的 范围内,数的密度分布要稀的多。范围内,数的密度分布要稀的多。 (4) 可表示数的精度。由于可表示数的精度。由于rm愈大,愈大, 数在数轴上的分布变稀,已可得出数的数在数轴上的分布变稀,已可得出数的 表示精度下降的结论。从另一个角度分表示精度下降的结论。从另一个角度分 析,由于析,由于机器尾数位数机器尾数位数m相同情况下相同情况下, 规格化十六进制尾数最高数位中可能出规格化十六进制尾数最高数位中可能出 现现 4 位机器位中的左面位机器位中的左面 3 位均为位均为 0, 即即 rm=2 的可能比的可能比rm=16 的有多的有多 3 位机器位位机器位 的精度。若的精度。若
33、rm=2k,则最坏情况下,尾数,则最坏情况下,尾数 中只用到中只用到m-k+1 位机器位来表示,所以,位机器位来表示,所以, 可表示数的精度随可表示数的精度随rm增大而单调下降增大而单调下降。 (5) 运算中的精度损失。运算中的精运算中的精度损失。运算中的精 度损失是指由于运算过程中尾数右移出度损失是指由于运算过程中尾数右移出 机器字长使得有效数字丢失后所造成的机器字长使得有效数字丢失后所造成的 精度损失,因此精度损失,因此它与可表示数的精度是它与可表示数的精度是 两个不同的概念两个不同的概念。由于尾数基值。由于尾数基值rm取大取大 后,对阶移位的机会和次数要少,且由后,对阶移位的机会和次数要
34、少,且由 于数的表示范围扩大,也使出现尾数溢于数的表示范围扩大,也使出现尾数溢 出需右规的机会减少,这从表出需右规的机会减少,这从表 2.4 对大对大 量指令执行后统计得出的浮点加法移位量指令执行后统计得出的浮点加法移位 距离和所占百分比情况可以看出。因此距离和所占百分比情况可以看出。因此 rm愈大,尾数右移的可能性愈小,精度愈大,尾数右移的可能性愈小,精度 的损失就越小。的损失就越小。 (6) 运算速度。由于运算速度。由于rm大大时发生因对时发生因对 阶或尾数溢出需右移及规格化需左移的阶或尾数溢出需右移及规格化需左移的 次数显著减少,因此次数显著减少,因此运算速度可以提高运算速度可以提高。
35、2. 浮点数尾数的下溢处理方法浮点数尾数的下溢处理方法 (1)截断法。截断法。 (2) 舍入法。舍入法。 (3) 恒置恒置“1”法。法。 (4) 查表舍入法。查表舍入法。 图图 2.9 2.9 r rm m=2,=2, m m=2 =2 时,各种下溢处理方法的误差曲线时,各种下溢处理方法的误差曲线 图图 2.10 2.10 k k位位ROMROM查表舍入查表舍入 2.2 寻寻 址址 方方 式式 2.2.1 寻址方式分析寻址方式分析 大多数计算机都将主存、通用寄存器、大多数计算机都将主存、通用寄存器、 堆栈分类编址,因此就有分别堆栈分类编址,因此就有分别面向寄存器、面向寄存器、 堆栈和主存的寻址
36、方式堆栈和主存的寻址方式。 面向寄存器的寻面向寄存器的寻 址方式操作数可以取自寄存器或主存,结址方式操作数可以取自寄存器或主存,结 果大多保存在寄存器中,少量的送入主存。果大多保存在寄存器中,少量的送入主存。 面向堆栈的寻址方式主要访问堆栈,少量面向堆栈的寻址方式主要访问堆栈,少量 访问主存或寄存器。面向主存的寻址方式访问主存或寄存器。面向主存的寻址方式 主要访问主存,少量访问寄存器。主要访问主存,少量访问寄存器。 指明方式:指明方式:占用操作码某些位指明占用操作码某些位指明;设置寻址方式字设置寻址方式字 段段。 2.2.2 逻辑地址与主存物理地址逻辑地址与主存物理地址 图图 2.11 逻辑地
37、址空间到物理地址空间的变换逻辑地址空间到物理地址空间的变换 图图 2.12 基址寻址基址寻址 各种信息在存贮器中存放的各种信息在存贮器中存放的 地址必须是:地址必须是: 字节信息地址为字节信息地址为 半字信息地址为半字信息地址为 0 0 单字信息地址为单字信息地址为 0 0 0 0 双字信息地址为双字信息地址为 0 0 0 0 0 0 按整数边界储存。按整数边界储存。 图图 2.13 2.13 各种宽度信息的存贮各种宽度信息的存贮 指令系统设计基本原则指令系统设计基本原则 步骤:步骤: 初拟指令分类和具体指令;初拟指令分类和具体指令; 试编出用该指令系统的编译程序;试编出用该指令系统的编译程序
38、; 测试程序进行模拟,看效能;测试程序进行模拟,看效能; 根据频度选择软硬件实现;根据频度选择软硬件实现; 2.3 指令系统的设计与优化指令系统的设计与优化 编译程序设计者编译程序设计者要求:要求: 规整性规整性 对称性对称性 独立和全能性独立和全能性 正交性正交性 可组合性可组合性 可扩充性可扩充性 系统结构设计者系统结构设计者希望:希望: 指令码密度适中指令码密度适中 兼容性兼容性 适应性适应性 兼顾编译程序设计者和系统结构兼顾编译程序设计者和系统结构 设计者的要求。设计者的要求。 指令操作码的优化指令操作码的优化 表表 2.4 某模型机指令使用频度举例某模型机指令使用频度举例 现设一台模
39、型机,共有现设一台模型机,共有 7 7 种不种不 同的指令,使用频度如表所示。若操作同的指令,使用频度如表所示。若操作 码用定长码表示需要码用定长码表示需要 3 3 位。按信息论位。按信息论 观点,当各种指令的出现是相互独立的观点,当各种指令的出现是相互独立的 ( (实际情况并不都是如此实际情况并不都是如此) )时候,操作码时候,操作码 的信息源熵的信息源熵( (信息源所包含的平均信息信息源所包含的平均信息 量量) )H H为为-p pi i loglog2 2 p pi i ,按表,按表 2.4 2.4 的数的数 据,据, 得得 H=0.401.32+0.301.74+0.152.74+0.
40、 054.32 +0.044.64+0.035.06+0.035.06 =2.17 说明表示这说明表示这 7 7 种指令,操作码平种指令,操作码平 均只需均只需 2.17 2.17 位就够了。位就够了。 采用采用 3 3 位定位定 长操作码表示的信息冗余量长操作码表示的信息冗余量 %)28(28. 0 3 17. 23 即 操作码的实际平均长度 操作码的实际平均长度 H 相当大。相当大。 为减少信息冗余,为减少信息冗余, 可改用哈夫曼编码。可改用哈夫曼编码。 图图 2.14 哈夫曼树举例哈夫曼树举例 表表 2.5 操作码的哈夫曼编码及扩展操作码编码操作码的哈夫曼编码及扩展操作码编码 只要采用全
41、哈夫曼编码,操作码的只要采用全哈夫曼编码,操作码的 平均码长平均码长肯定是肯定是唯一唯一的。如此例,操作的。如此例,操作 码的码的平均码长平均码长 )(20. 2 503. 0503. 0504. 0 505. 0315. 0230. 0140. 0 7 1 位 i i i lp 非常接近于可能的最短位数非常接近于可能的最短位数(H)2.17位。这种编码的信息冗余为位。这种编码的信息冗余为 %36. 1 20. 2 17. 220. 2 扩展操作码编码是一种实际可用的优化编码。扩展操作码编码是一种实际可用的优化编码。 B1700 操作码编码方式比较操作码编码方式比较 图图 2.15 15/15
42、/15 编码法和编码法和 8/64/512 编码法编码法 指令字格式的优化指令字格式的优化 图图 2.16 任意长指令字在按位编址主存中存贮的情况任意长指令字在按位编址主存中存贮的情况 等长地址码发挥不出操作码等长地址码发挥不出操作码 优化表示的作用优化表示的作用 如如IBM 370 的指令中为访存,的指令中为访存, 采采 用基址寻址,用基址寻址, 地址码可有如下形式:地址码可有如下形式: 又如将访存地址空间分为若干个段,又如将访存地址空间分为若干个段, 这样,访存地址就由段号和段内地址这样,访存地址就由段号和段内地址 两部分组成:两部分组成: 段 号 段内地址 在定长指令字内实现多种地址制在
43、定长指令字内实现多种地址制 图图 2.19 2.19 同种地址制下的多种地址形式和长度同种地址制下的多种地址形式和长度 如果让最常用的操作码最短,其地如果让最常用的操作码最短,其地 址码字段个数越多,就越能使指令的功址码字段个数越多,就越能使指令的功 能增强,越可以从宏观上减少所需的指能增强,越可以从宏观上减少所需的指 令条数。令条数。 例如,为实现例如,为实现A+BCA+BC,采用单,采用单 地址指令需经取地址指令需经取A A、加、加B B、 送送C 3 C 3 条指条指 令完成,令完成, 而采用而采用 3 3 地址指令地址指令 加ABC 则只需一条指令即可完成。这不仅进一则只需一条指令即可
44、完成。这不仅进一 步缩短了程序的占用空间,也会因为减步缩短了程序的占用空间,也会因为减 少了访存取指令次数而加快程序执行的少了访存取指令次数而加快程序执行的 速度。速度。 指令字格式化优化措施指令字格式化优化措施: 采用扩展码,合适编码方式,缩短平均码 长; 采用多种寻址方式,缩短地址码长度; 多种地址制,增强指令功能; 多种地址形式,长短地址码进行组配; 整数边界储存下,多种不同指令字长度。 2.4 2.4 指令系统的发展和改进指令系统的发展和改进 ( (指令集结构功能设计问题指令集结构功能设计问题) ) 两种截然不同的方向:两种截然不同的方向: 复杂指令集计算机(复杂指令集计算机(CISC
45、CISC) 强化指令功能,实现软件功能强化指令功能,实现软件功能 向硬件功能转移。向硬件功能转移。 精简指令集计算机(精简指令集计算机(RISCRISC) 尽可能地降低指令集结构的复尽可能地降低指令集结构的复 杂性,以达到杂性,以达到 简化实现,提高性能的目的。简化实现,提高性能的目的。 当今指令集结构功能设计的当今指令集结构功能设计的 一个主要趋势一个主要趋势, ,有将有将CISCCISC与与RISCRISC相结相结 合的思想。合的思想。 按增强指令功能的方向发展与改进指令系统按增强指令功能的方向发展与改进指令系统 1. 面向目标程序面向目标程序的优化实现来改进的优化实现来改进 IBM 37
46、0 IBM 370 机上增设了用单条指令来机上增设了用单条指令来 完成多个数据传送的功能。完成多个数据传送的功能。 如如“成组取成组取” 指令形式为指令形式为 成组取R1R3B2D2 “成组传送成组传送”指令可以实现字符行指令可以实现字符行( (即字节向量即字节向量) )的传送,的传送, 其形式为其形式为 成组传送LB1D1B2D2 0812162031 08 1620323647 控制型指令中的条件转移指令总共控制型指令中的条件转移指令总共 只需要两种形式,分别是只需要两种形式,分别是 条件转移 M1R2 和和 081215 条件转移M1X2B2D2 0812162031 47 2. 面向高
47、级语言面向高级语言的优化实现来改进的优化实现来改进 面向用户所用语言,通过源程序面向用户所用语言,通过源程序 中各种高级语言语句的使用频度进中各种高级语言语句的使用频度进 行统计来分析改进行统计来分析改进 面向编译,优化代码生成来改进面向编译,优化代码生成来改进 设法改进指令系统,缩小各语言设法改进指令系统,缩小各语言 间的语义差距间的语义差距 机器具有分别面向各种高级语言机器具有分别面向各种高级语言 的多种指令系统、多种系统结构的多种指令系统、多种系统结构 发展高级语言计算机(高级语言发展高级语言计算机(高级语言 机器)机器) 各种语言与传统机器指令系统结构的语义差距各种语言与传统机器指令系
48、统结构的语义差距 B B1700 1700 具有多种系统结构具有多种系统结构 各种机器的语义差距各种机器的语义差距 3. 面向操作系统面向操作系统的优化实现来改进的优化实现来改进 缩短操作系统与计算机系统结构间缩短操作系统与计算机系统结构间 的语义差距。减少运行操作系统的时间的语义差距。减少运行操作系统的时间 和节省操作系统软件所占用的储存空间。和节省操作系统软件所占用的储存空间。 通过操作系统中常用指令和指令串的使通过操作系统中常用指令和指令串的使 用频度进行统计来分析改进用频度进行统计来分析改进 增设操作系统新命令增设操作系统新命令 “测试与置定测试与置定” “比较与交换比较与交换” 把操
49、作系统由软件子程序实现的某些把操作系统由软件子程序实现的某些 功能进行硬化或固化,改用硬件和固件实功能进行硬化或固化,改用硬件和固件实 现现。例如,例如,VAXVAX11/78011/780,专门为进程切换,专门为进程切换 设置有关设置有关“保存进程关联信息保存进程关联信息”和和“恢复恢复 进程关联信息进程关联信息”的指令;将原先由子程序的指令;将原先由子程序 实现的功能进行硬化。堆栈型机器实现的功能进行硬化。堆栈型机器HPHP 3 0 0 0 3 0 0 0 设 置 了 功 能 性 很 强 的设 置 了 功 能 性 很 强 的 PCAL(PROCEDURE CALLPCAL(PROCEDUR
50、E CALL, 程序调用程序调用) )和和 EXIT(EXIT(出口返回出口返回) )两条专用指令来支持程序两条专用指令来支持程序 嵌套和递归调用,简化子程序工作区的分嵌套和递归调用,简化子程序工作区的分 配管理,这两条指令的语义非常接近于高配管理,这两条指令的语义非常接近于高 级语言级语言CALLCALL和和RETURNRETURN语句的语义,它将原语句的语义,它将原 由软件实现的调用、返回功能改为用微程由软件实现的调用、返回功能改为用微程 序固件解释实现,序固件解释实现, 这实际上也是对操作这实际上也是对操作 系统存贮管理的有力支持。系统存贮管理的有力支持。 发展让操作系统由专门的处理机来