1 计算机体系结构的发展
概述
1964年,阿姆达尔(Amdahl)在介绍IBM360系统时指出:计算机体系结构是站在程序员的角度所看到的计算机属性,即程序员要能编写出可在机器上正确运行的程序所必须了解的概念性结构和功能特性;
1982年,梅尔斯(Myers)在其所著《计算机体系结构的进展》一书中,定义了组成计算机系统的若干层次,每一层次都提供一定的功能支持它上面的一层,并把不同层之间的界面定义为某种类型的体系结构;
1984年,拜尔(Bear)在一篇题为“计算机体系结构”的文章中,给出了一个含义更加广泛的定义:体系结构是由结构、组织、实现、性能4个基本方面组成;
关于计算机体系结构、计算机组织、计算机实现,三者的关系如下:
(1)计算机体系结构,是指计算机的概念性结构和功能属性;
(2)计算机组织,是指计算机体系结构的逻辑实现,包括机器内的数据流和控制流的组成以及逻辑设计等;
(3)计算机实现,是指计算机组织的物理实现;
分类
宏观上按处理机的数量分类,单处理系统、并行处理与多处理系统、分布式处理系统;
微观上按并行程序分类,有Flynn分类法、冯泽云分类法、Handler分类法、kuck分类法;
指令系统
指令集体系结构分类
从体系结构的观点对指令集进行分类,可以根据下述5种尺度:
(1)操作数在CPU中的存储方式;
(2)显示操作数的数量;
(3)操作数的位置;
(4)指令的操作;
(5)操作数的类型与大小;
按暂存机制分类,根据在CPU内部存储操作数的区别,可以把指令集体系分为三类:堆栈、累加器、寄存器集;
指令格式及其优化
对指令码进行优化表示,使用频度高的指令采用短编码,反之可采用长编码;
指令集的复杂化
CISC(Complex Instruction Set
Computer,复杂指令集计算机)的基本思想:进一步增强原有指令的功能,用更加复杂的新指令取代原先由软件子程序完成的功能,实现软件功能的硬件化,导致机器的指令系统越来越庞大而复杂;
事实上,目前使用的绝大多数计算机都属于CISC类型;
CISC的主要弊病如下:
(1)指令集过分庞杂;
(2)微程序技术是CISC的重要支柱,每条复杂指令都要通过执行一段解释性微程序才能完成,这就需要多个CPU周期,从而降低了机器的处理速度;
(3)由于指令系统过分庞大,使高级语言编译程序选择目标指令的范围很大,并使编译程序本身冗长而复杂,从而难以优化编译使之生成真正高效的目标代码;
(4)强调完善的中断控制,势必导致动作繁多,设计复杂,研制周期长;
(5)给芯片设计带来很多困难,使芯片种类增多,出错几率增大,成本提高而成品率降低;
RISC(Reduced Instruction Set
Computer,精简指令集计算机)的基本思想:通过减少指令总数和简化指令功能,降低硬件设计的复杂度,使指令能单周期执行,并通过优化编译,提高指令的执行速度,采用硬布线控制逻辑,优化编译程序;在20世纪70年代末开始兴起,导致机器的指令系统进一步精炼而简单;
RISC的关键技术如下:
(1)重叠寄存器窗口技术;
(2)优化编译技术;
(3)超流水及超标量技术;
(4)硬布线逻辑与微程序相结合在微程序技术中;
面向目标代码的优化
对程序中出现的各种指令以及指令串进行统计得到的百分比称为静态使用频度;
在程序执行过程中,对出现的各种指令以及指令串进行统计得到的百分比称为动态使用频度;
按静态使用频度来改进目标代码可以减少目标程序所占的存储空间,按动态使用频度来改进目标代码可以减少目标程序运行的执行时间;
面向高级语言的优化
尽可能缩小高级语言与机器语言之间的语义差距,以利于支持高级语言编译系统,缩短编译程序的长度和编译所需的时间;
面向操作系统的优化
进一步缩小操作系统与体系结构之间的语义差距,以利于减少操作系统运行所需的辅助时间,节省操作系统软件所占用的存储空间;
指令的流水处理
指令控制方式;有顺序方式、重叠方式、流水方式;
RISC中采用的流水技术有三种:
超流水线:是RISC采用的一种并行处理技术;它通过细化流水、增加级数、提高主频,使得在每个机器周期内能完成一个甚至两个浮点操作;其实质是以时间换空间;
超标量:是RISC采用的又一种并行处理技术;它通过内装多条流水线来同时执行多个处理,其时钟频率虽然与一般流水接近,却有更小的CPI;其实质是以空间换时间;
超长指令字:充分发挥软件的作用来实现并行处理的调度,使硬件简化,性能提高;
阵列处理机、并行处理机、多处理机
并行性包括同时性、并发性两个侧面;其中,同时性是指两个或两个以上的事件在同一时刻发生,并发性是指两个或两个以上的事件在同一时间间隔内连续发生;
2 存储系统
层次结构:寄存器、高速缓存、主存、辅存;
存储器分类
按存储器所处的位置分,内存、外存;
按存储器的构成材料分,磁存储器、半导体存储器、光存储器;
按存储器的工作方式分,读写存储器、只读存储器;只读存储器可分为:ROM、PROM、EPROM、EEPROM、闪存;
按访问方式分,按地址访问的存储器、按内容访问的存储器;
按寻址方式分,随机存储器(RAM)、顺序存储器(SAM)、直接存储器(DAM);
相联存储器
相联存储器是一种按内容访问的存储器;其工作原理就是把数据或数据的某一部分作为关键字,将关键字与存储器中的每一单元进行比较,找出存储器中所有与关键字相同的数据字;
相联存储器可用在高速缓冲存储器中;在虚拟存储器中用来作段表、页表或快表存储器;用在数据库和知识库中;
高速缓冲存储器
高速缓冲存储器用来存放当前最活跃的程序和数据,作为主存局部域的副本,其特点是:容量一般在几千字节到几兆字节之间;速度一般比主存快5~10倍,由快速半导体存储器构成;其内容是主存局部域的副本,对程序员来说是透明的;
高速缓存由控制部分、存储器部分组成;
地址映像:CPU工作时,需要将主存地址转换成高速缓存地址,这种地址转换叫地址映像;
高速缓存地址映像有如下三种:
(1)直接映像:主存的块与Cache中的块大小相等且对应关系是固定的;优点是地址变换简单,缺点是灵活性差;
(2)全相映像:主存的快与Cache中的块大小相等且对应关系是任意的;优点是灵活性好,缺点是地址变换复杂,速度慢;
(3)组相联映像:是对全相联与直接映像的一种折中的处理方案;既不在主存和Cache之间实现字块的完全随意对应,也不在主存和Cache之间实现字块的多对一的硬性对应,而是实现一种有限度地随意对应;
特点是:组间全相联,组内直接映像;
替换算法
替换算法的目标是使Cache获得最高的命中率;常用的算法有:(1)随机替换算法;(2)先进先出算法;(3)近期最少使用算法;(4)优化替换算法;
虚拟存储器
虚拟存储技术的概念:把很大的程序分成许多较小的块,全部存储在辅存中;运行时,把要用到的程序块先调入主存,并且把马上就要用到的程序块从主存调入高速缓存;这样一边运行,一边进行所需程序块的调进调出;
虚拟存储器管理方式如下:
(1)页式虚拟存储器:优点是页表硬件少,查表速度快;主存碎片少;缺点是分页无逻辑意义,不利于存储保护;
(2)段式虚拟存储器:缺点是段的长度不一,主存利用率不高,产生大量内存碎片,造成浪费;段表庞大,查表速度慢;
(3)段页式虚拟存储器:是页式与段式两者的结合方式,兼有两者优点,只是地址变换速度比较慢;
外存储器
外存储器用来存放暂时不用的程序或者数据并且以文件的形式存储;CPU不能直接访问外存储器,只有将其以文件为单位调入主存方可访问;外存主要有以下两种存储器:
(1)磁盘存储器
硬盘
盘片:一块硬盘有若干盘片,每个盘片有可以存储数据的上、下两盘面;这些盘面堆叠在主轴上高速旋转,它们从上至下从0开始依次编号;
磁道:每个盘面被划分成许多同心圆,这些同心圆轨迹叫做磁道;磁道从外向内从0开始顺序编号;
扇区:将一个盘面划分为若干内角相同的扇形,这样盘面上的每个磁道就被分为若干段圆弧,每段圆弧叫做一个扇区;每个扇区中的数据作为一个单元同时读出或写入;
读写磁头:每个盘面上一个读写磁头,盘面号即磁头号;所有磁头在磁头臂作用下同时内外移动,即任意时刻,所有磁头所处的磁道号是相同的;
柱面:所有盘面上的同一磁道构成一个圆柱,称作柱面;
数据的读写按柱面从外向内进行,而不是按盘面进行;定位时,首先确定柱面,再确定盘面,然后确定扇区;之后所有磁头一起定位到指定柱面,再旋转盘面使指定扇区位于磁头之下;写数据时,当前柱面的当前磁道写满后,开始在当前柱面的下一个磁道写入,只有当前柱面全部写满后,才将磁头移动到下一个柱面;在对硬盘分区时,各个分区也是以柱面为单位划分的,即从什么柱面到什么柱面;不存在一个柱面同属于多个分区;
硬盘容量=柱面数×盘面数×扇区数×扇区大小
(2)光盘存储器
根据性能和用途,可分为只读型光盘(CD-ROM)、只写一次型光盘(WORM)、可擦除型光盘;
光盘存储器由光学、电学、机械部件等组成;其特点是记录密度高、存储容量大;采用非接触式读写信息;信息可以长期保存;采用多通道记录时数据传送率可超过200mb/s;制造成本低;对机械结构的精度要求不高;存取时间较长;
磁盘阵列技术
磁盘阵列是由多台磁盘存储器组成的一个快速、大容量、高可靠的外存子系统;现在常见的称为廉价冗余磁盘阵列;
存储域网络
在大型服务器系统的背后都有一个网络,把一个或多个服务器与多个存储设备连接起来,每个存储设备可以是RAID、磁带备份系统、磁带库或CD-ROM库等,构成了存储域网络(SAN);
3 输入输出技术
微型计算机中最常用的内存与接口的编址方式
(1)内存与接口地址独立编址方法
内存与接口地址独立编址方式下,内存地址和接口地址是完全独立的两个地址空间,它们是完全独立的并且是相互隔离的;这种编址方式的缺点就是用于接口指令太少、功能太弱;
(2)内存与接口地址统一编址方法
在这种编址方法中,内存地址和接口地址统一在一个公共的地址空间里,即内存单元和接口共用地址空间;
这种编址方法的优点是原则上用内存的指令全都可以用于接口,大大增强了对接口的操作功能,而且在指令上也不再区分内存或接口指令;
缺点是整个地址空间被分成两部分,一部分分配给接口使用,一部分分配给内存使用,这经常会导致内存地址不连续;
直接程序控制
直接程序控制是指外设数据的输入输出过程是在CPU执行程序的控制下完成的;这种方式分为:
无条件传送:在此情况下,外设总是准备好的,它可以无条件地随时接受CPU发来的输出数据,也能够无条件地随时向CPU提供需要输入的数据;
程序查询方式:在这种方式下,利用查询方式进行输入输出,就是通过CPU执行程序来查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据;
缺点:降低了CPU效率;对外部的突发事件无法做出实时响应;
中断方式
是指I/O系统主动通知CPU交换是否完成,无需CPU主动查询,这样提高了效率;
中断处理方法:
(1)多中断信号线法;
(2)中断软件查询法;
(3)菊花链法;
(4)总线仲裁法;
(5)中断向量表法;中断向量表用来保存各个中断源的中断服务程序的入口地址;当外设发出中断请求信号(INTR)以后,由中断控制器(INTC)确定其中断号,并根据中断号查询中断向量表来取得其中断服务程序的入口地址,同时INTC把中断请求信号提交给CPU;中断源的优先级由INTC来控制;
中断优先级控制
CPU按照优先等级来响应中断源,允许嵌套(暂停当前中断处理,转去执行优先级更高的中断源);
直接存储器存取方式
直接内存存取(DMA)是指数据在内存与I/O设备间的直接成块传送,即在内存与I/O设备间传送一个数据块的过程中,不需要CPU的任何干涉,只需要CPU在过程开始启动(即向设备发出“传送一块数据”的命令)与过程结束(CPU通过轮询或中断得知过程是否结束和下次操作是否准备就绪)时的处理,实际操作由DMA硬件直接执行完成,CPU在此过程中可作别的事情;
根据占用总线的方法不同,DMA可以分为中央处理器停止法、总线周期分时法、总线周期挪用法等;
输入输出处理机(IOP)
输入输出处理机是一个专用处理机,接在主计算机上,主机的输入输出操作由它来完成;它根据主机的I/O命令,完成对外设数据的输入输出,这样工作效率就提高了;
输入输出处理机的数据传送方式有三种:字节多路方式、选择传送方式、数组多路方式;
4 总线结构
广义地讲,任何连接两个以上电子元器件的导线都可以称为总线;通常分为如下三类总线:
(1)内部总线;用于芯片一级的互连,分为芯片内总线和元件级总线;
(2)系统总线;用于插件板一级的互连,用于构成计算机各组成部分(CPU、内存、接口)的连接;
(3)外部总线;又称通信总线,用于设备一级的互连,通过该总线和其他设备进行信息与数据交换;
系统总线
系统总线有时也称为内总线,其性能直接影响到计算机的性能;
(1)ISA总线;ISA总线主要包括24条地址线,16条数据线,以及控制总线等;
(2)EISA总线;该总线是在ISA总线基础上发展起来的32位总线;该总线定义32位地址线、32位数据线以及其他控制信号线、电源线、地线等共196个接点;
(3)PCI总线;PCI总线是目前微型机上广泛采用的内总线;PCI总线有适于32位机的124个信号的标准和适于64位机的188个信号的标准;
外部总线
下面简要列举几种:
RS-232C;
SCSI总线;
USB;
IEEE-1394;
IEEE-488总线;