在简单的模型中,存储器系统是一个线性的字节数组,CPU 能够在一个常数时间内访问每个存储器位置。
但这并没有反映现代系统实际工作的方式,实际的存储系统是一个具有不同容量、成本和访问时间的存储设备层次结构。
磁盘属于外部 I/O 设备,其特点是存储容量大,速度慢,价格便宜。其利用磁性材料被磁化后,会形成两个稳定的剩磁状态的性质,就像触发器的双稳态一样。
在程序中,程序倾向于引用邻近与其他最近引用过的数据项的数据项,或者最近引用过的数据项本身。这种倾向性,被称为局部性原理。
这是一个持久的概念,对硬件和软件系统的设计和性能都有着极大的影响。
局部性通常有两种不同的形式,时间上,空间上。
在一个具有良好时间局部性的程序中,如果一个内存位置被引用了一次,那么程序很可能在不远的将来引用附近的一个内存位置。
不同存储技术的访问时间差异很大。速度较快的技术每字节的成本要比速度较慢的技术高,而且容量较小。CPU 和主存之间的速度差距在增大。
一个编写良好的程序倾向于展示出良好的局部性。
缓存的理念,简单来说就是,最常用的数据就那么点,将其放到读取速度最快的存储区域,将大大提高运行效率。