CSAPP translation page 9

1.5高速缓存非常重要

    这个简单的例子有重要的经验,系统花费大量的时间把信息从一个地方传送到另外一个地方. hello程序里面的机器指令最初(originally)是存储在磁盘里面的. 当程序加载(loaded), 它被复制到主存里面去. 处理器运行这个程序时, 指令从主存被复制到处理器. 类似的(Similarly), 字符串数据”hello, world\n”,最初在磁盘, 被复制到主存, 然后从主存被复制到显示器设备. 从程序员的角度(perspective), 很多的复制就是开销(overhead), 减慢了程序”真正的工作”.因此系统设计者主要的目标是让这些复制操作尽可能的运行得更快.

    根据机械原理(physical laws),大的存储(storage)设备比小的存储设备慢. 快的设备比同类(counterparts )慢的设备更加的昂贵. 例如, 典型系统上的磁盘驱动器(disk drive)可能比主存大(larger)1000倍(times),但是它从磁盘读取一个字可能会比主存慢10,000,000倍.

    类似的(Similarly ),一个典型的寄存器文件(register file)只储存(stores)几百位的信息, 相反(opposed),主存可以存储10亿(billions)字节. 然而, 处理器能够从寄存器读取数据比主存快100倍.  更麻烦的是(even more troublesome),  随着近些年来半导体(semiconductor )技术的发展, 处理器和主存之间(processor-memory)的差距(gap)在增加(increase). 使处理器运行比主存运行更容易也更便宜.

    针对(to deal with)处理器和主存之间的差距, 系统设计者采用了小而更快的存储设备,它被称为高速缓存存储器(cache memories, 简称cache,或高速缓存), 作为暂时的集结区域(temporary staging areas,暂时的集结区域), 存放处理器近期可能会需要的信息. 图1.8展示了一个典型系统的高速缓存器(cache memories). 在处理器芯片上的L1高速缓存的容量可以达到数万字节,访问(accessed)速度几乎和寄存器文件一样快(as fast as). 一个容量为数百万计到数千万计的一个大的L2高速缓存由一条特别的总线连接到处理器. 访问(access)L2高速缓存的事件可能比访问L1高速缓存的时间长5倍., 但它仍比访问主存快5到10倍. L1高速缓存和L2高速缓存是用被称为静态随机访问存储器(SRAM, static random access memory )的硬件(hardware)技术实现的(implemented). 新的更强大的系统甚至有三级(levels)高速缓存:L1,L2,L3. . 系统能够通过高速缓存的局部性(locality)原理获取一个更大存储器和更快的访问速度, 即程序有能够访问(access)本地区域的数据和代码的趋势(tendency). 通过在高速缓存中存放我们可能经常访问的数据, 大多数内存操作(memory operation)可以使用更快的高速缓存执行(perform).



你可能感兴趣的:(CSAPP translation page 9)