(一)计算机体系结构的发展
1.计算机系统结构概述
- 计算机体系结构。指计算机的概念性结构和功能属性。
- 计算机组织。指计算机体系结构的逻辑实现,包括机器内的数据流和控制流的组成及逻辑设计等(常称为计算机组成原理)。
- 计算机实现。指计算机组织的物理实现。
2.计算机体系结构分类
计算机体系结构分类可以从宏观和微观上进行分类。
- 宏观上按处理机的数量进行分类:
- 单处理系统,利用一个处理单元与其他外部设备结合起来,实现存储、计算、通信、输入与输出等功能的系统。
- 并行处理与多处理系统,将两个以上的处理机互联起来,彼此进行通信协调,以便共同求解一个大问题的计算机系统。
- 分布式处理系统,远距离而松耦合的多计算机系统。
- 微观上按并行程度分类:
- Flynn分类法,按指令流和数据流的多少进行分类(指令流为机器执行的指令序列,数据流是由指令调用的数据序列)。分为单指令流、单数据流(SISD),单指令流、多数据流(SIMD),多指令流、单数据流(MISD),多指令流、多数据流(MIMD)。
- 冯泽云分类法,按并行度对各种计算机系统进行结构分类(最大并行度是指计算机系统在单位时间内能够处理的最大二进制位数)。分为字串行位串行(WSBS)计算机、字并行位串行(WPBS)计算机、字串行位并行(WSBP)计算机、字并行位并行(WPBP)计算机。
- Handler分类法,基于硬件并行程度计算并行度的方法,把计算机的硬件结构分为3个层次:处理机级、每个处理机中的算逻单元级、每个算逻单元中的逻辑门电路级。分别计算这三级中可以并行或流水处理的程序,即可算出某系统的并行度。
- Kuck分类法,用指令流和执行流及其多重性来描述计算机系统控制结构的特征。分为单指令流单执行流(SISE)、单指令流多执行流(SIME)、多指令流单执行流(MISE)、多指令流多执行流(MIME)。
3.指令系统
一个处理器支持的指令和指令的字节级编码称为其指令集体系结构,不同的处理器族支持不同的指令集体系结构,因此,一个程序被编译在一种机器上运行,往往不能再另一种机器上运行。
(1)指令集体系结构的分类
对指令集的分类分为两种,一种是从体系结构上分类,一种是按暂存机制分类。
1)按指令集体系结构分类
- 操作数再
cpu
中的存储方式,即操作数从主存中取出后保存在什么地方。 - 显示操作数的数量,即在典型的指令中有多少个显示命名的操作数。
- 操作数的位置,即任一个
ALU
指令的操作数能否放在主存中,如何定位。 - 指令的操作,即在指令集中提供哪些操作。
- 操作数的类型与大小。
2)按暂存机制分类
- 堆栈
- 累加器
- 寄存器组
(2)CISC和RISC
CISC
和RISC
是指令集发展的两种途径。
CISC
(复杂指令集计算机)的基本思想是进一步增强原有指令的功能,用更为复杂的新指令取代原先由软件子程序完成的功能,实现软件功能的硬化,导致机器的指令系统越来越庞大、复杂。目前使用的绝大数计算机都属于此类型。
CISC
的弊端:
- 指令集过分庞杂。
- 每条复杂指令都要通过执行一段解释性程序才能完成,这就需要多个
CPU
周期,从而降低了机器的处理速度。 - 由于指令系统过分庞大,使高级程序语言选择目标指令的范围很大,使得编译程序冗长、复杂。
- 由于强调完善的中断控制,导致动作繁多、设计复杂、研制周期长。
- 给芯片设计带来困难,使得芯片种类增多,出错几率增大。
RISC
(精简指令集计算机)的基本思想是通过减少指令总数和简化指令功能降低硬件设计的复杂度,使指令能单周期执行,并通过优化编译提高指令的执行速度,采用硬布线控制逻辑优化编译程序。
RISC
的关键技术:
- 重叠寄存器窗口技术。
- 优化编译技术。
- 超流水及超标量技术。
- 硬布线逻辑与微程序相结合在微程序技术中。
(3)指令的流水处理
1)指令控制方式
- 顺序方式,指各条机器指令顺序串行地执行。优点是控制简单;缺点是速度慢,机器各部件的利用率低。
- 重叠方式,指在解释第
K
条指令的操作完成之前就开始解释第K+1
条指令。优点是速度有所提高,控制也不算复杂;缺点是会出现冲突、转移和相关等问题。 - 流水方式,仿照工业生产过程的流水线的一种指令控制方式。
2)流水的相关处理
由于流水时机器同时解释多条指令,这些指令可能有对同一主存单元或同一寄存器的“先写后读”的要求,这就出现了相关。
相关包括:指令相关、访存操作数相关、通用寄存器组相关等。
3)吞吐率和流水建立时间
吞吐率是指单位时间内流水线处理机流出的结果数。对指令而言,就是单位时间内执行的指令数。如果流水线的子过程所用时间不一样,则吞吐率为最长子过程的倒数。
流水建立时间是指流水线开始工作,到达最大吞吐率的时间。
4.阵列处理机、并行处理机和多处理机
(1)阵列处理机
阵列处理机将重复设置的多个处理单元按一定方式连成阵列,在单个控制部件控制下,对分配给自己的数据进行处理,并行地完成一条指令所规定的操作。
(2)并行处理机
- 共享存储器
- 分布式存储器
(3)多处理机
多处理机系统是由多台处理机组成的系统,每台处理机有属于自己的控制部件,可以执行独立的程序,共享一个主存储器和所有的外部设备。
(二)存储系统
1.存储器的层次结构
计算机系统中包括各种存储器,如CPU
内部的通用寄存器组、CPU
内的Cache(高速缓存)
、CPU
外部的Cache
、主板上的主存储器、主板外的联机磁盘存储器及脱机的磁带存储器和光盘存储器。
2.存储器的分类
- 按存储器所处的位置分类
- 内存,也称主存,设在主机内或主机板上,用来存放机器当前运行所需要的程序和数据。容量小,速度快。
- 外存,也称辅存,如磁盘、磁带、光盘等。
- 按存储器的构成材料分类
- 磁存储器
- 半导体存储器
- 光存储器
- 按存储器的工作方式分类
- 读/写存储器(RAM),既能读取数据也能存入数据。
- 只读存储器(ROM),技能读取的存储器。
- 按访问方式分类
- 按地址访问的存储器
- 按内容访问的存储器
- 按寻址方式分类
- 随机存储器
- 顺序存储器
- 直接存储器
3.相联存储器
是一种按内容访问的存储器。
工作原理是把数据或数据的某一部分作为关键字,按顺序写入信息,读出时并行地将该关键字与存储器中的每一单元进行比较,找出存储器中所有关键字相同的数据字,适合信息的检索和更新。
相联存储器可用在高速缓冲存储器中,在虚拟存储器中用来作为段表、页表或快表存储器,用在数据库和知识库中。
4.高速缓存
用来存放当前最活跃的程序和数据。
位于CPU
与内存之间,容量一般在几千字节到几兆字节之间,速度一般比主存快5~10倍,由快速半导体存储器构成,其内容是主存局部域的副本,对程序员来说是透明的。
(1)组成及作用
高速缓存的存储部分用来存放内存的部分副本信息,控制部分的功能是判断CPU
要访问的信息是否在Cache
中,若在则命中,CPU
直接对Cache
存储器寻址;若不在则没有命中,按照替换原则决定内存的一块信息放到Cache
存储器的哪一块里。
在多级Cache
的计算机中,Cache
分为一级(L1 Cache
)、二级(L2 Cache
)、三级(L3 Cache
)等。CPU
访问时首先查找L1 Cache
,如果不命中,则访问L2 Cache
,直到所有级别的 Cache
都不命中,才访问内存。
通常L1 Cache
的速度足够快,以赶上CPU
的主频。
(2)地址映像方法
CPU
在工作时,送出的是主存单元的地址,并且从Cache
存储器中读写数据,这就需要将内存地址转换成Cache
存储器的地址,这种地址的转换称为地址映像。
Cache
的地址映像有三种方法:
- 直接映像,内存的块域
Cache
块的对应关系是固定的; - 全相联映像,内存与
Cache
存储器均分成大小相同的块,内存的任一块可以调入Cache
存储器的任何一块的空间中; - 组相联映像,将
Cache
中的块和内存中的块再分成组,规定组采用直接映像方式,而块采用全相联映像方式。
1)直接映像
内存中的块只能存放在Cache
存储器的相同块号中,因此,只要内存地址中的内存区号与Cache
中记录的内存区号相同,则表名访问Cache
命中。一旦命中,由内存地址中的区内块号立即可得到要访问的Cache
存储器中的块,而块内地址就是内存地址中给出的低位地址。
优点是地址变换简单,缺点是灵活性差。
2)全相联映像
若内存为64MB
,Cache
为32KB
,块的大小为4KB
,那么内存分为0~16383
共16384
块, Cache
分为0~7
共8块。在地址变换时,利用内存地址高位表示的主存块号与Cache
中相联存储器所有单元中记录的主存块号进行比较,若相同即为命中。这时相联存储器单元的编号就对应要访问Cache
的块号,从而在相应的Cache
块中根据块内地址访问到相应的存储单元。
优点是内存的块调入Cache
的位置不受限制,十分灵活,缺点是无法从内存块号中直接获得Cache
的块号,变换比较复杂,速度比较慢。
3)组相联映像
组相联映像是前面两种方式的折中,假定Cache
有16块,再将每两块分为1组,则Cache
就分为8组;内存同样分区,每区16块,再将每两块分为一组,则每区就分为8组。规定组采用直接映像方式,而块采用全相联映像方式。即,内存任何区的0组只能存到Cache
的0组中,1组只能存到Cache
的1组中,以此类推。组内的块则采用全相联映像方式,即,一组内的块可以任意存放。
(3)替换算法
替换算法的目标是使Cache
获得尽可能高的命中率。
常用算法:
- 随机替换算法,用随机数发生器产生一个要替换的块号,将该块替换出去;
- 先进先出算法,将最先进入
Cache
的信息块替换出去; - 近期最少使用算法,将近期最少使用的
Cache
中的信息块替换出去; - 优化替换算法,先统计
Cache
的替换情况,在下一次执行程序时用最有效的方式来替换。
(4)性能分析
Cache
设计的目标是在成本允许的条件下达到较高的命中率,使存储系统具有最短的平均访问时间。
选择合适恰当的块容量,提高Cache
的容量和提高Cache
的相联度等都可以降低Cache
失效率。
5.虚拟存储器
虚拟存储器实际上是一种逻辑存储器,实质是对物理存储设备进行逻辑化的处理,并将统一的逻辑视图呈现给用户。
虚拟存储是使用虚拟地址(由CPU
生成),来访问内存,使用专门的MMU
将虚拟地址转换为物理地址后访问内存。
6.外存储器
外存储器用来存放暂时不用的程序和数据,并且以文件的形式存储。CPU
不能直接访问外存中的程序和数据,只有将其以文件为单位调入内存才可以访问。
外存储器构成:
- 磁表面存储器(磁盘、磁带)
- 光盘存储器
- 固态硬盘
(1)磁表面存储器
磁盘是最常见的磁表面存储器。
磁盘存储器的特点:
- 存取速度快
- 存储容量大
- 应用广泛
磁盘存储器的组成:
- 盘片,存储信息,有多个,组成盘片组;
- 驱动器,驱动磁头沿盘面径向运动以寻找目标磁道位置,驱动盘片以额定速率稳定旋转,并且控制数据的写入和读出;
- 控制器,接收主机发来的命令,将其转成磁盘驱动器的控制命令;
- 接口,主机和磁盘存储器之间的连接逻辑。
圆柱面:所有记录面上相同序号的磁道构成一个圆柱面,其编号与磁道编号相同。
磁道:将盘片划分成许多同心圆,从外到里编号,最外圈为0道,往内道号依次增加。
道密度:沿径向的单位距离的磁道数,单位为tpi(每英寸磁道数)
。
扇段(扇区):将每一个磁道沿圆周等分为若干段,每段称为一个扇区,每个扇区内可存放一个固定长度的数据块。
位密度:磁道上单位距离可记录的位数称为位密度,单位为bpi(每英寸位数)
。
硬盘寻址信息:
- 磁盘驱动号
- 圆柱面号
- 磁头号(记录面号)
- 数据块号(扇区号)
- 交换量
(2)光盘存储器
光盘存储器是一种采用聚焦激光束在盘式介质上非接触地记录高密度信息的新型存储装置。
根据性能和用途分:
- 只读型光盘
- 只写一次型光盘
- 可擦除型光盘
(3)固态硬盘
固态硬盘的存储介质分为两种,一是采用闪存(FLASH芯片
)作为存储介质,另外一种是采用DRAM
作为存储介质。
基于闪存的固态硬盘是主要类别,主体是一块PCB
板,板上最基本配件:
- 控制芯片,固态硬盘的大脑,作用:一是合理调配数据在各个闪存芯片上的负荷,二是承担数据中转的作用
- 缓存芯片
- 用于存储数据的闪存芯片
特点:
- 读写快速
- 质量轻
- 能耗低
- 体积小
缺点:
- 价格昂贵
- 容量低
- 硬件损坏,数据较难恢复
7.磁盘阵列技术
磁盘阵列是由多台磁盘存储器组成的一个快速、大容量、高可靠的外存子系统。
现在常见的磁盘阵列是廉价冗余磁盘阵列(RAID
)。
RAID
的级别说明:
RAID级别 | 说明 |
---|---|
RAID-0 | 不具备容错能力,但传输速率是单个磁盘存储器的n倍 |
RAID-1 | 采用镜像容错改善可靠性 |
RAID-2 | 采用海明码进行错误检测 |
RAID-3 | 减少用于检验的磁盘存储器个数,从而提高了磁盘阵列的有效容量 |
RAID-4 | 可独立地对组内各磁盘进行读/写的磁盘阵列 |
RAID-5 | 是对RAID-4的改进,同一个磁盘上既记录数据,也记录检验信息 |
RAID-6 | 采用两级数据冗余和新的数据编码以解决数据恢复问题 |
8.存储域网络
把一个或多个服务器与多个存储设备连接起来,构成一个网络。
每个存储设备可以是RAID
,磁带备份系统,磁带库和CD-ROM
库等,构成了存储域网络(SAN
)。
不仅解决了服务器对存储容量的要求,还可以使多个服务器之间共享文件系统和辅助存储空间,避免数据和程序代码的重复存储,提高辅助存储器的利用率。
(三)输入/输出技术
1.微型计算机中最常用的内存与接口的编址方法
(1)内存与接口地址独立编址方法
内存地址和接口地址是完全独立、相互隔离的两个地址空间。
访问数据使用的指令完全不同,用于接口的指令只用于接口的读/写,其余的指令全都用于内存。
缺点:
- 用于接口的指令太少
- 功能太弱
(2)内存与接口地址统一编址方法
内存地址和接口地址统一在一个公共的地址空间里。
优点:
- 原则上用于内存的指令全都可以用于接口
- 增强了对接口的操作功能
- 在指令上也不再区分内存或接口指令
缺点:
- 整个地址空间被分为两部分,一部分分配给接口使用,剩余的为内存所用,会导致内存地址不连续
- 用于内存的指令和用于接口的指令完全一样,在维护程序时需要根据参数定义表仔细辨认
2.直接程序控制
直接程序控制是指外设数据的输入/输出过程是在CPU
执行程序的控制下完成的。分为无条件传送和程序查询方式两种情况。
(1)无条件传送
- 外设总是准备好的
- 可以无条件地随时接收
CPU
发来的输出数据 - 可以无条件地随时向
CPU
提供需要输入的数据
(2)程序查询方式
通过CPU
执行程序来查询外设的状态,判断外设是否准备好接收数据或是否准备好向CPU
输入数据。
缺点:
- 降低了
CPU
的效率 - 对外部的突发事件无法做出实时响应
3.中断方式
当采用程序查询方式控制I/O
时,CPU
需要定期地去查询I/O
系统的状态,因此整个系统的性能严重下降。
采用中断方式完成数据的输入/输出过程,使得CPU
无须等待而提高了效率。
中断方式的工作过程:
- 当
I/O
系统与外设交换数据时,CPU
无须等待,也不用去查询I/O
的状态 - 当
I/O
系统准备好后,则发出中断请求信号通知CPU
-
CPU
接收到中断信号后,保存正在执行程序的现场,转入I/O
中断服务程序的执行,完成与I/O
系统的数据交换 - 返回被打断的程序继续执行
(1)中断处理方法
- 多中断信号线法,每个中断源都有属于自己的一根中断请求信号线
- 中断软件查询法,当
CPU
检测到一个中断请求信号后,转入到中断服务程序去轮询每个中断源以确定是谁发出了中断请求信号 - 菊花链法,是一种硬件查询法,所有的
I/O
模块共享一根共同的中断请求线,中断确认信号以链式在各模块间相连 - 总线仲裁法,一个
I/O
设备在发出中断请求前,必须先获得总线控制权,由总线仲裁机制来裁定谁可以发出中断请求信号 - 中断向量表法,中断向量表保存各个中断源的中断服务程序的入口地址。当外设发出中断请求信号后,中断控制器确定其中断号,根据中断号去中断向量表中查找中断服务程序的入口地址,并把中断请求信号提交给
CPU
(2)中断优先级控制
- 当不同优先级的多个中断源同时提出中断请求时,
CPU
应优先响应优先级最高的中断源 - 当
CPU
正在对某一个中断源服务时,又有比它优先级更高的中断源提出中断请求,CPU
应能暂时中断正在执行的中断服务程序而转去对优先级更高的中断源服务,服务结束后再回到原先被中断的优先级较低的中断服务程序继续执行
4.直接存储器存取方式
直接内存存取无须CPU
的干预,只是在过程开始启动与过程结束时进行处理,实际操作由硬件直接执行完成。
过程:
- 外设向控制器提出内存存取传送的请求
- 控制器向
CPU
提出请求,其请求信号通常加到CPU
的保持请求输入端HOLD
上 -
CPU
在完成当前的总线周期后立即对此请求做出响应 - 控制器获得对系统总线的控制权,开始对系统总线进行控制,同时向外设发送响应信号,开始准备进行数据的传送
- 控制器发送地址信号和控制信号,实现数据的高速传送
- 当控制器将规定的字节数传送完成后,将
HOLD
信号变为无效并加到CPU
上,撤销对CPU
的请求
5.输入/输出处理机(IOP)
通道,又称为输入输出处理器(IOP
),分担了CPU
的部分功能,实现对外围设备的统一管理,完成外围设备与主存之间的数据传送。
外围处理机(PPU
)根据主机的I/O
命令,完成对外设数据的输入输出。
(四)总线结构
总线(Bus),是指计算机设备和设备之间传输信息的公共数据通道。
总线是连接计算机硬件系统内多种设备的通信线路,它的一个重要特征是由总线上的所有设备共享,因此可以将计算机系统内的多种设备连接到总线上。
1.总线的分类
- 数据总线(
DB
),用来传送数据,双向 - 地址总线(
AB
),用于传送CPU
发出的地址信息,单向 - 控制总线(
CB
),用来传送控制信号、时序信号、状态信息等,双向
2.常见总线
- ISA总线
- EISA总线
- PCI总线
- PCI Express总线
- 前端总线
- RS-232C
- SCSI总线
- SATA
- USB
- IEEE-1394
- IEEE-488总线