Cache

第K级存储设备(快,小),存放第K+1级存储设备(慢,大)的部分内容。Cache管理的主要内容是对数据分块,在第K与K+1级设备之间传输数据,判定及处理cache miss/hit。

假设我的PC的内存是M(比如32MB),那它就有32M个唯一的地址,即m位(此例为25位)。典型的Cache会组织成S个set(比如32个,即s位selection index),每个set有E个cache line(比如1个),每个cache line有B个基本数据块(比如每个cache line有4个Byte,block offset范围是0到3)。Cache的容量就是32x4=128B。一个cache line除了包含B个数据块之外,还会包含valid bit和t bits(for Tag)。t = m-s-b,此例为25-5-4=16位。Tag和selection index以及block offset唯一确定了当前被cache的byte在主存中的物理地址。

一般来说,判断cache miss/hit工作在物理地址空间(TLB除外),与虚拟地址到物理地址的转换没有关系。

 

Virtual  Memory

以最简单的一级页表为例,页表项(PTE)存放着valid bit和n-bit地址。

valid bit   n-bit地址

1           物理帧号     :物理页表在内存中

0           NULL        :virtual page has not yet been allocated

0           非零         :points to the start of the virtual page on disk

 

TLB (translation lookaside buffer)

TLB借用了cache的思想。最简单的TLB的实现可以没有selection index和block offset,tag就是虚地址帧号,内容是物理地址帧号。