随着科技的进度,CPU、内存、IO设备都在不断的迭代,不断朝着更快的方向努力。但是在快速发展的过程中,有一个核心矛盾一直存在,就是这三者的速度差异。
CPU和内存的速度差异可以形象描述为:CPU是天上一天,内存是地上一年(假设CPU执行一条普通指令需要一天,那么CPU读写内存就得等待一年时间)。
内存和I/O设备的速度差异可以形象描述为:内存是天上一天,I/O设备是地上10年。
程序里大部分语句都要访问内存,有些还要访问I/O,根据木桶理论(一只木桶能装多少水取决于它最短的那块木板),程序整体的性能取决于最慢的操作——读写I/O设备,也就是单方面提高CPU性能是无效的。
那么如何均衡这三者的速度差异,才能合理利用CPU的高性能?
计算机体系、操作系统、编译程序作出了以下贡献:
1.CPU增加了缓存,以均衡与内存的速度差异;
2. 操作系统增加了进程、线程,以分时复用CPU,进而均衡CPU/IO设备的速度差异;
3. 编译程序优化指令执行次序,使得缓存能够得到更加合理的利用。