计算机组成与体系结构
计算机系统组成
存储器系统
前言
存储器用来存放程序和数据的部件,是一个记忆装置,也是计算机能够实现"存储程序控制"的基础。在计算机系统中,规模较大的存储器往往分成若干级,称为存储器系统。
传统存储器系统一般分为 高速缓冲存储器(Cache)、主存、辅存 三级。
- 主存:可由CPU直接访问,存取速度快,但容量小,一般用来存放当前正在执行的程序和数据。
- 辅存:在主机外部,存储容量大,价格较低,但存取速度较慢,一般用来存放暂时不参与运行的程序和数据,CPU不可以直接访问辅存,辅存中的程序和数据在需要时才传送到主存,因此它是主存的补充和后援;
- Cache:存取速度比主存更快,但容量更小,用来存放当前最急需处理的程序和数据,以便快速地向CPU提供指令和数据。
因此,计算机采用多级存储器体系 ,确保能够获得尽可能高的存取速率,同时保持较低的成本 。而多层次存储体系之所以能用低投入换来较高的存取速率,得益于局部性原理。
局部性原理 是指程序在执行时呈现出局部性规律,即在一较短的时间内,程序的执行仅局限于某个部分。相应地,它所访问的存储空间也仅局限于某个区域。程序局部性包括时间局部性 和空间局部性。
- 时间局部性:是指程序中的某条指令一旦执行,不久以后该指令可能再次执行。产生时间局部性的典型原因是由于程序中存在着大量的循环操作;
- 空间局部性:是指一旦程序访问了某个存储单元,不久以后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址可能集中在一定的范围内,典型情况就是程序顺序执行。
存储器中数据常用的存取方式 有顺序存储、直接存取、随机存取、相联存取四种。
- 顺序存取:存储器的数据以记录的形式进行组织,对数据的访问必须按照特定的线性顺序进行。存取时间是固定的 。磁带存储器采用的就是顺序存取的方式。
- 直接存取:使用一个共享的读写装置对所有的数据进行访问,与顺序存取相似 。但是,每个数据块都拥有唯一的地址标志,读写装置可以直接移动到目的数据块所在位置进行访问。存取时间也是可变的 。磁盘存储器采用直接存取的方式。
- 随机存取:存储器的每一个可寻址单元都有唯一的地址和读写装置,系统可以在相同的时间内对任意一个存储单元的数据进行访问 ,而与先前的访问序列无关。存取时间是固定的 。主存储器采用随机存储的方式。
- 相联存取:也是一种随机存取的形式,但是选择某一个单元进行读写是取决于内容而不是其地址 。与普通的随机存取方式一样,每个单元都有自己的读写装置,读写时间也是一个常数 。使用相联存取方式,可以对所有的存储单元的特定位进行比较,选择符合条件的单元进行访问。为提高地址映射的速度,Cache 采用相联存取的方式。
ps: 随机存取和相联存取由于每个单元都有唯一的读写装置 ,因此存取时间是固定的;顺序存取访问路线是确定的 ,因此存取时间也是固定的;直接存取由于磁头起始位置不同等因素,存取时间可变。
主存储器
由于CPU 要频繁访问主存,主存的性能在很大程度上影响了整个计算机系统的性能。根据工艺和技术的不同,主存可分为随机存取存储器 和 只读存储器。
- 随机存取存储器(Random Access Memory,RAM):既可以写入也可以读出,但断电不保存 ,因此只能用于暂存数据。RAM 又可分为DRAM (Dynamic RAM,动态RAM)和SRAM(Static RAM,静态RAM)两种:
- DRAM :信息会随时间逐渐消失,因此需要定时对其进行刷新维持信息不丢失;
- SRAM:在不断电情况下信息能够一直保持而不会丢失。
DRAM 密度大于SRAM,且更加便宜,但SRAM速度快,电路简单(不用刷新电路),然而容量小,价格高。
- 只读存储器(Read Only Memory,ROM):可以看作RAM一种特殊的形式,存储器内容只能随机读出而不能写入 。常用来存放那些不需要改变的信息 。由于信息一旦写入存储器就固定不变了,即使断电,写入的内容也不会丢失 ,所以又称为固定存储器。ROM一般用于存放系统程序BIOS(Basic Input Output System,基本输入输出系统)。
存储器存储数量(计算)
不同计算机存储器编址方式不同,主要有字编址和字节编址。内存一般以字节(8位)为单位,或者以字为单位(字的长度可大可小,例如16位或32位)。
例如:内存地址从AC000H 到C7FFFH,则共有C7FFFH-AC000H=1BFFFH个地址单元(转换为十进制为 112KB)。如果该内存地址按字(16bit)编址,则共有112KB * 16 位。假设该内存由28片存储器芯片构成,已知构成此内存的芯片每片有16KB 个存储单元,则该芯片每个存储单元存储(112KB * 16) /(28 * 16KB)=4位
辅助存储器(以磁盘为例)
硬盘存储器在硬盘中,信息分布呈以下层次:记录面、圆柱面、磁道、扇区。
一台硬盘驱动器中有多个磁盘片,每个盘片有2个记录面 ,每个记录面对应一个磁头,所以记录面号就是磁头号 ,如图1-2(a)。所有的磁头安装在一个公用的传动设备或支架上,磁头一致地沿盘面径向移动,单个磁头不能单独移动。在记录面上,一条条磁道形成一组同心圆,最外圈的磁道为0号 ,往内侧磁道号逐渐增加,如图1-2(b)。在一个盘组中,各记录面上相同编号(位置)的各磁道构成一个柱面,如图1-2(c)。
若每个磁道片有m个磁道,则该硬盘有m个柱面 。引入柱面的概念是为了提高硬盘的存储速度 。当主机要存入一个较大的文件时,若一条磁道存不完,就需要存放在几条磁道上。这时应该将一个文件尽可能存到同一个柱面上,如果仍存放不完,再存入相邻的柱面内。
ps: 同一柱面,磁头不用移动。
通常将一条磁道划分若干段,每段称为一个扇区或扇段,每个扇区存放一个定长信息块。具体怎么划分一般由操作系统 决定。磁道上扇区编号从1开始。
在磁盘上进行信息读写时,首先需要定位到目标磁道 ,这个过程称为寻道 。寻道消耗时间为寻道时间,定位到目标磁道后,需要定位到目标扇 区,此过程通过旋转盘片 完成,平均旋转半圈可到目标位置。故磁道访问时间为:
磁盘访问时间(存取时间) = 寻道时间 + 旋转延迟时间。