1. 程序的局部性原理
– 时间的局部性
• 如果一个数据块被访问,则在短时间内这个数据块很可能被再访问;
– 空间的局部性
• 如果一个数据块被访问,则与其相邻数据块也会不久被访问。
2. 存储器组织结构概念(Memory hierarchy)
使用多级不同速度和容量的存储器,存储器与处理器距离越远,则存储时间越长和容量就越大。
基本结构:
3. 主存储器(main memory),cache,磁盘
主存储器(main memory)由DRAM来实现。
紧挨着处理器的存储器称之为cache,由SRAM来实现,介于主存储器(DRAM)和处理器之间的高速存储器。
离处理器最远,访问时间最长,容量最大的由磁盘来实现。
DRAM与SRAM相比成本低,容量大,访问时间长。
SRAM具有成本高,容量小,访问时间短。
磁盘容量巨大,成本最低,访问时间长。
4. 存储器访问的一些概念
存储器的组织结构包含多级存储器,但数据的复制仅发生在相邻的2级之间。
• 通常,上一级存储器比下一级存储器容量小,速度快。
• Block 块(或行):
– Block是两级存储器中交换的最小信息单元,其中或存信息或不存信息。
• hit(命中)
– 在当前级的存储器中找到目标。
• Miss (缺失)
– 在当前级存储器中没找到。
• Hit rate (命中率)
– 在cache中命中(hit)的比例。
• Miss rate(缺失率)
– 在一个存储层次结构中未找到的比例。
• Hit time (命中时间)
– 访问某层存储器的时间,包括判断访问是否命中的时间。
• Miss penalty(缺失弥补时间)
– 发生缺失时,将目的块从底层取出传送到发生缺失的层,并插入到发生缺失的层所花的时间。
5. 在Cache中数据定位
Cache 中的每个数据单元都有固定的位置并编址。
编址的一种方法称为直接映射:即(Block address)modulo (Number of cache block in the cache。
Cache中数据项的个数通常是2的幂次方。
因此直接映射的方式就是取地址的低位部分。
由于从大空间到小空间的映射,会导致多个地址映射到cache中同一个单元,怎样区分呢?
解决方案:
• 增加标志位tag
– Tag标志位中含有数据项的高位地址;
• 增加有效位V (valid)
– 有效位V表示数据项的地址是否有效;
– 在处理器上电reset或初始化时,用v指明tag地址位的有效或无效。
6. Cache的宽度和容量计算