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就是虚地址帧号,内容是物理地址帧号。
转载于:https://blog.51cto.com/zyapp2005/410676