1.5 Caches Matter
前面1.4节介绍的hello程序运行流程里有很多次copy操作,这对实际程序是一个很大的负担。
对于系统设计工程师来说,要想办法加速copy操作。
从物理层面来说,读取大存储空间的设备内的内容时,速度会远低与读取小存储空间的设备。对应于register file和main memory,前者只存几百个byte的信息,所以读取前者的时间远小于读取后者。并且随着半导体技术的发展,processor-memory gap持续扩大,加速processor比加速main memory更容易实现。
为了解决processor-memory gap,系统设计工程师搞出来一个更小更快的设备,命名为cache memories(缓存),用于临时存储processor未来可能需要的信息。
下图展示了一个典型系统里面的缓存:

L1缓存位于processor芯片上,容量是数万个byte,访问速度几乎和register file一样快。
L2缓存容量数百万个byte,通过特殊的bus与processor项链,访问时间要比L1慢5倍左右,比Main memory短5~10倍。
L1和L2采用一种叫做静态随机存储器(static random access memory, sram)的技术实现。对于更强/更新的系统,它甚至有三级缓存:L1,L2,L3。
总的来说,缓存的思想是利用局部性(程序在局部区域访问数据和代码的趋势),系统可以获得较大的内存和较快的内存的效果。
------------------------------------------------------------------
1.6 Storage Devices Form a Hierarchy
在processor和main memory(较大,较慢的存储设备)之间插入一个缓存(高速存储设备)在如今是一个比较通用的想法。在每个计算机系统中都有上图金字塔式的memory层次结构。
从金字塔尖到金字塔底,整体上趋向与容量变大,速度变慢。这种结构的主要思想是,一个level的存储被用作是下一个level的缓存。
处理器与主内存间存在速度差距,为此引入了缓存,如L1和L2缓存,以提升性能。缓存利用局部性原理,提供快速访问最近使用过的数据。存储设备形成层次结构,从高速小容量到低速大容量,每个层级作为下一层的缓存,以优化整体系统性能。
9417

被折叠的 条评论
为什么被折叠?



