计算机系统中的主存与Cache之间数据调动是由硬件自动进行,对所有程序员而言,这一过程是透明的。与此相对,主存与辅存之间的数据调动则需硬件与操作系统协同完成,对应用程序员而言同样透明。MDR与MAR逻辑上存在于主存中,实际上则位于CPU内部。地址译码器则实际位于主存内。
半导体随机存取存储器包括基本结构与随机存储器RAM,其中Cache使用静态随机存取SRAM实现,而主存则采用动态随机存储器DRAM。这两者都是易失性存储器。
SRAM基于双稳态触发器,存取速度快但集成度低,功耗较大。DRAM则基于电荷,利用地址复用技术,存取速度慢于SRAM,但集成度高、价格低、容量大、功耗低。DRAM在没有持续电源的情况下,信息会自动消失,需要每2ms刷新一次,每次刷新占用一个存储周期。刷新方式有集中刷新、分散刷新和异步刷新三种。集中刷新在特定时间对所有行刷新,访存速度快,但在此时间不能访问存储器;分散刷新将刷新操作分散到各个工作周期中,访存速度慢,但没有集中刷新的时间限制;异步刷新通过逻辑电路定时刷新,避免了CPU长时间等待,减少刷新次数,提高了整体工作效率。
刷新操作需注意以下几点:刷新对CPU透明,不依赖外部访问;刷新单位是行,仅需行地址;刷新类似读操作,但不涉及信息输出;刷新时不需要选片,所有芯片同时刷新。SRAM与DRAM在工作原理、容量与功耗上存在差异。
只读存储器ROM具有简单结构和高位密度,具备非易失性,因此可靠性高。ROM的升级版包括各种形式的存储器。
主存储器与CPU的连接包括主存容量的扩展、存储器与CPU的连接方式、片选原理、地址线和数据线的连接等。通常,ROM用于存放系统程序,RAM则用于组成用户区。地址线用于选择地址空间,高位用于片选,数据线对应数据位数,读写控制线用于区分读写操作。
片选信号的产生方式包括线选法和译码片选法。线选法线路简单,无需地址译码器,但地址空间不连续,选片的地址线必须分时为低电平,造成地址资源浪费。译码片选法则能充分利用地址资源。
并行技术主要包括双端口RAM和多模块存储器,双端口RAM允许在不同端口同时进行读写操作,但同一存储器的写操作互斥。多模块存储器则能实现空间并行或时间并行访问,提高存储器的带宽和工作速度。
高速缓存(Cache)使用SRAM实现,通过程序访问局部性原理,将正在使用的数据存放在高速缓存中,以加速CPU访问速度。Cache工作原理包括命中率和平均访问时间,以及与主存的映射方式。标记用于指示数据来自主存哪一块,有效位表示数据是否有效。映射方式有直接映射、全相联映射和组相联映射三种。
虚拟存储器利用程序局部性原理,解决了系统速度和主存容量问题。虚拟存储器包括缓存写策略、页式虚拟存储器、快表、段式虚拟存储器和段页式虚拟存储器,以及虚拟存储器的访存过程。
Cache写策略分为写命中和写不命中两种情况。页式虚拟存储器将虚拟空间与主存空间划分为相同大小的页,通过页表进行转换。快表用于减少页虚拟存储器访存次数,通过查找快表进行页转换。段式虚拟存储器根据逻辑结构划分段,段页式虚拟存储器结合页式与段式优点,提高共享和保护能力。
附录包含王道课后题笔记,包括SRAM芯片引脚数目计算、四体并行低位交叉存储器性能、地址映射表大小计算、Cache单元调入Tag计算、主存地址与Cache地址映射结果计算、指令与数据Cache分离目的、虚拟地址变换结果等实际应用题目。