小土刀

【计算机系统导论】第四章 记忆之层 存储器

速度越快的存储,价格也就越贵。但在这个信息爆炸的时代,我们不仅需要速度快,还需要容量大。不可思议的是,这种『既要马儿跑又要马儿不吃草』的需求,居然在计算机系统中实现了!


速度越快的存储,价格也就越贵。但在这个信息爆炸的时代,我们不仅需要速度快,还需要容量大。不可思议的是,这种『既要马儿跑又要马儿不吃草』的需求,居然在计算机系统中实现了!计算机系统的设计者们是如何能在控制成本的前提条件下,兼顾速度与容量呢?本章我们就来一探究竟。

前面我们介绍了冯诺依曼架构中的处理器,而具体指令的存储,则需要依赖于各类存储器。从最初的打孔卡片到以磁为介质的磁鼓与磁带,再到光存储的光盘,最终从机械硬盘到固态硬盘,存储设备的发展其实远没有我们想象中的快。对芯片起作用的摩尔定律,并未在存储器上生效,于是处理器和存储器之间的速度差异便越来越大。

计算机系统特别符合木桶理论,处理器再快,没有同样快速的存储器,性能还是上不去。于是人们在硬盘和处理器之间加入了一层又一层的存储介质,从包含在处理器芯片中的寄存器到一级/二级缓存,然后才到内存和硬盘。离处理器越远,速度越慢,容量也越大,也越便宜;离处理器越近,速度越快,容量越小,也越昂贵。

因为人们的需求不同,存储器也在发展过程中分成了几种不同的类型。从是否需要通电来维持数据看,分为易失性与非易失性存储。从介质来看,分为磁存储、光存储与闪存。不同类型的存储器又有其对应的接口与性能评价标准,。我们在完成本章的学习之后,可以根据实际需求选择最合适的存储器组合。

除了了解存储的原理之外,本章另一个非常重要的内容是缓存原理,其中局部性原理是存储器层次结构的根本原因,也充分体现了设计中权衡与妥协的艺术,即带着镣铐跳舞的最高境界。通过存储器层次结构,计算机系统能够以最快的速度访问最多的数据,而不用承担容量所对应的高昂成本,要知道,最快的存储的单位成本可能是最慢存储的成千上万倍。

为了充分利用局部性原理,计算机系统的存储在采用层次结构的同时,应用了一套非常简洁却强大的缓存机制,能够在大多数情况下保证最常用的数据在最快的存储器中,能够在最短的时间内被处理器读取与写入。我们会仔细探究每一层中这种缓存机制的具体实现,从中可以看到计算机科学家细腻且缜密的思维。

另外,随着并行时代的到来,一些新的问题也涌现了出来,其中最重要的便是存储器中的一致性问题和数据竞争问题,这和处理器中的数据冒险、控制冒险等有着相同的深层原因:因为资源是有限的,而人们为了提高效率采用平行/竞争的方式来获取数据,把原来的顺序访问变为乱序之后,难免会出现因为数据相关而导致的问题。

好了,让我们从古秘鲁的结绳计数讲起,来聊聊计算机系统中的存储器吧。

捧个钱场?

热评文章