内容正文:
《计算机原理》考前概念梳理与常考题选讲
专题四 存储系统 ( 2 )
1、 教材要求
1.掌握半导体存储器的分类及主存的主要性能指标。
2.理解RAM存储器的特点、组成结构,了解单译码方式和双译码方式。
3.理解ROM存储器的分类、工作原理及特点。
4.掌握堆栈的工作原理、特点及进出堆栈示意图。
5.掌握存储器的扩展方式,计算地址线的根数、芯片的个数以及芯片地址的范围。
6.掌握Cache存储器的功能、结构、工作原理,理解Cache的地址映射方式及特点,了解Cache的替换算法和写入策略。
7.了解虚拟存储器,理解虚拟地址、实存地址的概念。
2、 概念梳理
4.3 8088系统的存储器
8088系统是准16位系统,内部结构是16位并行运算,外部数据只有8条引脚,它对存 储器的读写只能以字节为单位。其地址线有20条,寻址范围是1MB。
4.3.1 8088系统存储器的结构
1. 存储器的组织
8088系统是一个准16位系统,它只有8根数据线,它一次只能访问一个字节,所以8088 系统的1MB 空间是一个线性的单一存储体,它与总线之间的连接方式如图4.17所示。
2. 存储器分段
8088系统是16位机,它的所有寄存器都是16位的。所以,它的最大存储访问空间是 2¹⁶=64KB 。 但8088系统有20根地址线,可以寻址的空间是220=1MB 。显然,采用常规 的方法,8088是不能访问1MB 空间的。那么,怎样才能实现8088系统访问1MB 地址空 间呢?可以将20位地址信号存放在两个寄存器中,用两个寄存器去控制访问。
8088 系统将存储器分为若干逻辑段,每一个逻辑段都是64 KB, 可以用16位地址寻址 各个逻辑段,可以在实际的存储空间中完全分开,也可以部分重叠,甚至可以完全重叠。每 一个逻辑地址的起始地址都是从小段 (paragraph, 或称为“节”)的首地址。也就是从0地址开始,每16个字节为一小段。
存储器在系统中的实际地址(用20位表示)称为物理地址。
将逻辑段的起始地址称为段地址(也称段基址,共16位),而将逻辑段中相对于段地址 的偏移量称为偏移地址(也是16位)。 一个存储单元的物理地址可以由段地址和偏移地址组 成,计算方法如下:
16D× 段地址+偏移地址=物理地址
也就是把段地址左移4位再加上偏移地址就形成物理地址。通过这个计算方法也可以看 出, 一个物理地址可以有不同的段地址和偏移地址。
3. 存储器堆栈
堆栈是以“后进先出”方式工作的一个存储区。8088的堆栈操作是在存储器中实现的。 8088中的堆栈段寄存器 SS 存放段地址,堆栈指针寄存器 SP 存放当前的栈顶。堆栈的栈底是在逻辑段的最高位置处(假设堆栈空 间是64 KB) 。 当堆栈空的时候,SP 指向栈底,即逻辑段的最大偏移地址处。特别要指出的是 ,SS 存放的不是栈底,而是段地址(段基址),如图4.18 (a) 所示。SS 中存放的是段地 址 ,SP 中存放的是最大偏移地址。
8088的堆栈为16位宽,堆栈操作时是以16位为单位进行的。
压栈的工作过程是:先将 SP 的内容减2,然后将16位信息的高8位存入新栈顶的高地 址,低8位压入低地址。假设 (AX)=1234H,(BX)=5678H,则将AX 压栈,再将BX 压栈,情况如图4.18 (b) 所示。
出栈的工作过程是:先将现在栈顶的16位信息复制到POP 指令指定的目的寄存器中(如 AX、BX 等),然后将SP 的内容加2,使SP 指向新的栈顶。如图4.18 (b) 所示栈顶地址弹 出后,变为如图4.18 (c) 所示的情况。从图4.18(c) 可以看出,5678H还存在于存储器中, 并没有受到破坏。
4. 存储器的专用和保留区
在整个存储器空间中,有些地址是不能使用的,这些地址包括低端的物理地址00000H~0007FH 的128个字节单元和高端OFFFFOH~OFFFFFH的16个字节单元。
4.3.2 8088系统存储器的具体分配
8088系统的存储器将1MB 的地址空间分为两部分:00000H~OBFFFFH 范围内的768KB 是RAM 存储区,0C0000H~0FFFFFH范围内是 ROM存储区。具体分配情况如表4.9所示。 存储器的连接示意图如图4.19所示。
RAM 存储区的前640KB空间存放的是部分系统程序和用户程序,称为基本内存。
在基本内存中,00000H~003FFH 存放的是中断向量表,即入口地址;00400H~004FFH 范围内存储的是BIOS 中断向量的有关数据;00500H~9FFFFH 范围内的是用户程序。
4.4存储器的扩展技术
4.4.1 高速缓冲存储器
在计算机系统体系设计的过程中,采用高速