|
|
本章主要内容包括:存储器的分类、存储器的分层结构、半导体随机存取存储器的组织、只读存储器、主存储器与CPU的连接、多体交叉编址存储器、高速缓冲存储器Cache的基本原理、Cache和主存之间的地址映射、替换算法、虚拟存储器的基本概念、页表结构、缺页异常、转换后援缓冲器TLB等。具体总结如下: (1)存储器的分类 ①按存取方式分:随机、顺序、直接、相联 ②按存储介质分:半导体、磁表面、激光盘 ③按信息可更改性:可读可写、只读 ④按断电后可否保存:易失、非易失 ⑤按功能/容量/速度分:寄存器、Cache、主存(内存)、辅存(外存) (2)存储器的分层结构:速度从快到慢、容量从小到大、价格从贵到便宜,按与CPU连接的距离由近到远的顺序,构成的分层次结构为: (3)半导体随机存取存储器的组织 (4)只读存储器:MROM、PROM、EPROM、EEPROM、Flash ROM (5)存储器芯片与CPU的连接 a)地址线的连接:考虑芯片在字方向上扩展,低位用于芯片内地址、高位用于片选逻辑,送到片选信号译码器,译码输出连到芯片的片选信号引脚上。 b)数据线的连接:考虑芯片在位方向上扩展,分别连到位扩展的芯片上 c)控制线的连接:读/写信号、主存/IO访问信号等经过组合连到芯片相应的引脚。 (6)主存的主要技术指标 (7)多体交叉编址存储器 a)连续编址:按高位地址划分模块 b)交叉编址:按低位地址划分模块 (8)Cache的基本原理:利用程序访问的局部性特点,把主存中的一块数据复制到Cache a)时间局部性:某个单元在一个集中的时间段被重复访问的可能性很大 b)空间局部性:某个单元被访问后,其周围单元不久也将被访问的可能性很大 (9)Cache和主存间的映射 a)直接映射:每个主存块只能存放到一个固定的Cache块(槽)中 b)相联映射:每个主存块可以存放到任何一个Cache块(槽)中 c)组相联映射:Cache分成若干组,每组有多个块(槽),每个主存块存放到一个固定组的任意块(槽)中 (10)替换算法 a)FIFO:总是把最先调到Cache的那个主存块淘汰掉。 b)LRU:总是把最近最少用到的那个主存块淘汰掉。 (11)写策略 a)写回法:暂时只写入Cache有,直到从Cache中替换出来时,才一次写入主存。 b)写直达法:每次写入Cache时也同时写入主存,一般在Cache和主存之间加一个Witre Buffer。 (12)虚拟存储器的基本原理:程序员在一个独立的极大的虚拟地址空间中写程序,每个程序按照等长的页或变长的段来划分,主存也按等长的页框或段帧来划分,当程序启动运行后,当前用到的程序快(代码或数据)装入到主存的页框或段帧中,其他暂时不用的部分放在磁盘上,通过页表或段表把程序块和主存页框(或段帧)建立对应关系。不在主存的页则在页表中记录其在磁盘上的地址。在指令执行过程中,由特殊的硬件(MMU)和操作系统一起实现存储访问的操作。虚拟存储器的引入,使得程序员写程序时不受主存空间大小的限制;也便于主存空间的利用,因为无需分配连续的页框给连续的虚页;此外,更方便存储保护。 (13)虚拟存储器的实现方案:分页式、分段式、段页式 (14)地址转换:根据逻辑地址中的虚页号,找到对应的页表项。通过页表项得到对应虚页的页框号,再和页内地址相加得到物理地址。 (15)页表和页表项:每个进程有一个页表,每个页表项由有效位、使用位、修改位、存取权限位、主存页框号或磁盘地址等组成。 (16)“缺页”:在执行执行时可能发生缺页,是一种程序性中断。操作系统的缺页处理程序从磁盘读入一个页面到主存,并修改页表。缺页处理完后,要回到原来发生缺页的指令重新执行。 (17)TLB(快表):是用来存放若干常用页表项的Cache。目的是为了减少到主存访问页表的次数。 (18)存储保护:访问越界和存取方式违例 |