计算机组成原理虚拟实验室-Cache模块的设计+源程序(2)

虚拟实验室简化了实验操作,屏蔽了传统实验方式在时间和空间的限制,并且节约了高校的资金[3]。虚拟实验室具备许多传统的仪器实验没有的优点: 1


虚拟实验室简化了实验操作,屏蔽了传统实验方式在时间和空间的限制,并且节约了高校的资金[3]。虚拟实验室具备许多传统的仪器实验没有的优点:

1) 具备良好的开放性,没有时间和空间的限制,能够缩短实验的周期;

2) 节约实验经费,节省了物理实验设备,虚拟实验室的设备一般不存在故障;

3) 交互性强,可以根据自身需求对实验设备进行改造,用以满足自身的需求;

4) 安全性高,避免了传统实验中,由操作失误导致的严重危害;

5) 抗干扰性强,屏蔽了接触不良、仪器故障等外界原因对实验结果造成的影响。

上述计算机组成原理中Cache部分的难点问题,都可以使用虚拟实验室的技术解决,研制一套针对Cache模块的可视化计算机组成原理实验平台,模拟Cache的工作环境和内容,构建“计算机组成原理虚拟实验室-Cache模块”,用软件的方式模拟硬件的行为方式,使计算机组成原理课程Cache部分的实验可以在一台装有操作系统的计算机上完成。

1.2 国内外研究状况

高速缓冲存储器(Cache)技术是为了解决中央处理单元(Central Processing Unit,CPU)和主存储器(Memory)之间速度匹配的问题而采用的一项关键技术,这一技术可以提高系统性能,并降低系统成本。在现代微处理器设计中,Cache技术为精简指令集计算机(Reduced Instruction Set Computing,RISC)技术广泛应用提供重要的技术支撑,与流水线技术一起构成RISC成功的支柱[4]。至今Cache技术仍将对计算机应用的发展起到重要的推动作用。随着计算机技术和微电子技术的发展,Cache技术主要往多级、多核的方向发展。

多级Cache在现代处理器系统中被广泛应用,与早期的Cache技术不同,多级Cache技术是为了更好的解决Cache设计中出现的未命中、带宽及延时等问题[5]。多级Cache技术存在多个层次的Cache设计,使得不同层级的Cache可以使用不同的技术,实现系统的最优配置。由于多级Cache中存在不同层次Cache的命中率差异,离处理器最近一级的Cache命中几率大,所以低一级的Cache存在空闲时间,因此设计时可以用这一时间安排将来可能出现Cache未命中所需做的准备工作[6]。

Cache本身的发展带动着计算机系统性能的提升,未来更将有令人瞩目的成果,以往Cache的研究重点集中在站在设计的角度上研究Cache的结构,以及如何提高性能上。除了Cache的研究者,大多数的计算机从业者对于Cache与计算机系统的关联没有确切的认知。随着Cache技术的进一步发展,更加需要计算机从业者掌握深入理解Cache的基本工作原理、实现方法,从而在实际工作中应用来提升系统性能[7]。目前正缺少一款用于教学的Cache虚拟仿真软件,用来帮助学习者站在使用的角度,克服Cache学习难度及掌握深度的问题,深入掌握Cache如何在计算机系统中发挥其作用。

2 Cache系统分析

2.1 Cache理论知识

2.1.1 Cache的基本原理

高速缓冲存储器采用高速的半导体存储器件制造,存取速度远高于主存。由于Cache造价昂贵,一般容量远小于主存。Cache中仅保存主存中最活跃的若干块的副本,因此在工作过程中经常发生与主存之间的数据交换。

CPU需要读取主存中一个字时,便发送该字的地址到地址总线上,在Cache和主存上查找该字。主存到Cache的地址映射由映射策略实现。此时Cache的控制逻辑根据总线上的地址和映射方式查找此字是否存放在Cache中:若Cache命中,将此字通过地址总线立即传送到CPU;若Cache未命中,则启用主存的读周期将该字读出经过地址总线送到CPU,与此同时将包含该字的整个主存数据块从主存中读出送到Cache中[1],使用替换策略将Cache行中原有内容替换。与CPU读操作流程相似,不同的是CPU对主存中一个字进行写操作时,使用写回策略判断Cache中修改的内容是否立刻写回主存