主存储器的组成和工作方式
目录
1.存储系统的结构层次
- Cache — 主存结构
- 主存 — 辅存结构
mooc上一张图可以比较好的表现这两个结构层次
缓存 — 主存结构主要是用来解决CPU和主存之间的速度差异的问题,而主存 — 辅存结构主要是为了解决主存容量不够大的问题。
在实现缓存 — 主存结构时,采用的是硬件的实现方法,而在实现主存 — 辅存结构时,采用的是软硬件结合的实现方法。这是因为前者更注重速度的匹配问题,只能使用硬件来实现,而后者更加注重容量的问题,对于速度的提高并没有过多的要求,所以可以允许软硬件结合的实现方法。
CPU可以和Cache、主存直接进行信息交换,辅存只能通过主存来和CPU交互。对于Cache — 主存结构和主存 — 辅存结构,前者的内容是后者的内容副本。
2.主存储器的组成(DRAM)
主存储器实际上是高速的随机存取存储器,随机存取存储器RAM按照数据能否在存储器中长时间保存,分为SRAM和DRAM两种,主存储器是由DRAM(动态随机存取存储器构成的)。
保存在主存储器中的数据、指令等在断电、计算机崩溃之类的情况下会直接丢失。
3.DRAM的工作方式
DRAM不同于SRAM,SRAM由触发器构成,不会由于断电导致数据的丢失,DRAM是通过电容上存储电荷来存储数据信息的,所以即使没有发生断电等情况,电容的电荷也会慢慢流逝(2ms),所以需要在2ms的刷新周期内对DRAM的数据进行刷新,保持原有的数据。
常见的刷新方式包括:集中刷新、分散刷新、异步刷新(经典的折中方案)
- 集中刷新:在一个刷新周期(2ms)里,留出一段时间对DRAM中的数据进行刷新操作,这段时间内不允许对主存的读出和写入,称为"死区"
- 分散刷新:每次对某一行存储单元(这里我们假设采用的存储单元是128*128,类似矩阵布置)进行刷新操作,这些刷新操作分散到各个工作周期里,前半部分读写,后半部分刷新,没有死区,但延长了工作周期。
- 异步刷新:这是前两种方法的折中,先通过刷新周期/行数得到行与行之间数据刷新的时间间隔,然后每个这个时间间隔下产生刷新请求,对某行执行刷新操作,一方面减少了死区时间,另一方面降低了刷新次数。