在程序员备考计算机组成原理的强化阶段(第3 - 4个月),存储系统层次结构是一个重要的知识点。这一板块涵盖了主存与Cache层次、主存与外存区别以及虚拟存储器等内容。
一、主存与Cache层次
1. 高速缓存工作原理
- Cache(高速缓存)位于CPU和主存之间。它基于局部性原理工作,局部性原理包括时间局部性和空间局部性。时间局部性是指如果一个数据项被访问了,那么它在不久的将来可能再次被访问;空间局部性是指如果一个数据项被访问了,那么与它相邻的数据项在不久的将来也可能被访问。
- 当CPU需要读取数据时,首先会在Cache中查找。如果找到(称为Cache命中),就直接从Cache中读取,速度非常快;如果找不到(称为Cache未命中),则从主存中读取数据,并将相关的数据块(包括当前读取的数据以及周边的一些数据)调入Cache中,以便后续可能的访问。
2. 替换算法
- 有几种常见的替换算法。FIFO(先进先出)算法是最简单的,它按照数据进入Cache的先后顺序进行替换,当Cache满了时,最先进入的元素被替换出去。但是这种算法可能会把经常使用的元素替换掉。
- LRU(最近最少使用)算法则是根据数据的访问历史来决定替换哪个元素。它认为最近没有被使用过的元素在未来被使用的概率较小,所以在Cache满时,优先替换最近最少使用的元素。这种算法相对更合理,但实现起来稍微复杂一些。学习这些算法时,可以通过画图或者编写简单的代码模拟Cache的操作过程来加深理解。
二、主存与外存区别
1. 存储速度
- 主存(内存)的速度比外存(如硬盘、光盘等)快很多。主存的读写速度通常以纳秒为单位,而外存的读写速度以毫秒为单位。例如,CPU访问内存中的数据可能在几个纳秒内就能完成,而访问硬盘上的数据可能需要几毫秒甚至更长时间。
2. 存储容量
- 外存的存储容量通常远远大于主存。现在的硬盘可以达到数TB甚至数十TB的容量,而内存常见的容量有8GB、16GB等。
3. 存储性质
- 主存是易失性存储器,当计算机断电后,主存中的数据会丢失;而外存是非易失性存储器,即使断电,外存中的数据仍然保存。
三、虚拟存储器概念及组成
1. 概念
- 虚拟存储器是为了给用户提供一种连续的、大容量的内存空间而设计的。它将主存和外存结合起来,通过地址映射等机制,使得程序员可以像使用一个很大的内存一样编写程序。
2. 组成
- 它包括页表等重要的组成部分。页表用于记录虚拟地址和物理地址之间的映射关系。当CPU产生一个虚拟地址时,通过页表将其转换为实际的物理地址,然后再从内存或者外存中读取数据。
在备考这一知识点时,要注重理解概念的本质。对于高速缓存工作原理和替换算法,多做一些练习题,分析不同场景下的操作过程。对于主存与外存区别,可以通过对比表格的方式进行记忆。而对于虚拟存储器,要深入理解地址映射的原理,结合实际的操作案例来掌握相关知识。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!