存储器层次结构:SRAM DRAM Flash 磁盘
access time and price
SRAM:静态RAM。SRAM中的每一位均存储在四个晶体管当中,这四个晶体管组成了两个交叉耦合反向器。这个存储单元具有两个稳定状态,通常表示为0和1。另外还需要两个访问晶体管用于控制读或写操作过程中存储单元的访问。因此,一个存储位通常需要六个MOSFET。通常单端口读写,对数据有固定的访问时间 不需要刷新,因此访问时间接近周期时间。典型的,每比特需要6-8个三极管防止读操作破坏信息。待机状态,需要很少的能量维持电荷。只要供电,数据可以维持。
DRAM:动态RAM。数据作为电荷保存在电容中。数据无法抑制保存,需要周期性的刷新。单个三极管用于访问储存的电荷,或读或重写。因为每个比特只要一个三极管,相比SRAM更便宜更密集。作为计算机内存。刷新:读回,重写,一次刷新整个ROW。电荷可以保持几微秒。
Flash:wear leveling, a type of EEPROM
Disk memory:
Caches
地址可以分为两部分:高速缓存的下标,用来选择块;标记域,用来比较高速缓存中标记域的值。
高速缓存指令缺失处理:处理器的控制部件,以及以个进行初始化主存访问和重新填充高速缓存的独立的控制器。缺失会导致流水线的堵塞。
1.当前PC-4 送到存储器中
2.指示主存进行一次读操作,并等待主存访问完成
3.写高速缓存条目,把存储器中读到的数据写入高速缓存条目的数据部分,把地址的高位写入标记域,设置有效位
4.重启第一步,将重新取指令,指令已经在高速缓存中
数据缺失处理基本一样,停止处理器工作直到存储器取回数据后响应。
写操作处理:
写通过write through
写缓冲write buffer:在数据等待被写入主存时存放数据的队列
写回write-back:写操作时只更新高速缓存中的块,党高速缓存块被替换时才将修改过的块写入底层存储器。
二级缓存:
第一级缓存:小,缺失率高
第二级缓存:大,缺失率低
虚拟存储器
允许在多个程序间有效而安全的共享内存。
虚拟存储器和高速缓存的原理是一样的。在虚拟存储器中,一个块被称为页page,虚拟存储器访问缺失称为缺页。
CPU生成一个虚拟地址,由硬件和软件结合生成一个物理地址。
地址被划分为虚页号和页内偏移
1.为了弥补很长的访问时间,页应该足够大。典型的4K-16K
2.降低缺页率的组织结构
3.缺页可以通过软件来处理,与额外访问磁盘的时间相比,这样的额外开销并不大。
4.由于写操作的时间太长,所以在虚拟存储器中使用写通过不可行。使用写回策略。