前言
前一篇文章介绍了冯诺依曼体系结构的计算机的基本工作原理,其中主要介绍了CPU的结构和工作原理。这一篇主要来介绍存储区,总线,以及IO设备等其他几大组件,来了解整个计算机是如何工作的。 这些东西都是看得见摸得着的硬件,平时我们买电脑时最关注的就是CPU的速度,内存的大小,主板芯片等等的参数。
1. 存储器
前面我们以一个简单通用的计算机模型来介绍了CPU的工作方式,CPU执行指令,而存储器为CPU提供指令和数据。 在这个简单的模型中,存储器是一个线性的字节数组。CPU可以在一个常数的时间内访问每个存储器的位置,虽然这个模型是有效的,但是并不能完全反应现代计算机实际的工作方式。
1.1 存储器系统层次结构
在前面介绍中,我们一直把存储器等同于了内存,但是实际上在现代计算机中,存储器系统是一个具有不同容量,不同访问速度的存储设备的层次结构。整个存储器系统中包括了寄存器、Cache、内部存储器、外部存储。下图展示了一个计算机存储系统的层次图。层次越高速度越快,但是价格越高,而层次越低,速度越慢,价格越低。
相对于CPU来说,存储器的速度是相对比较慢的。无论CPU如何发展,速度多块,对于计算机来说CPU总是一个稀缺的资源,所以我们应该最大程度的去利用CPU。其面我们提到过CPU周期,一个CPU周期是取1条指令的最短的时间。由此可见,CPU周期在很大程度上决定了计算机的整体性能。你想想如果当CPU去取一条指令需要2s,而执行一个指令只需要2ms,对于计算机来说性能是多么大的损失。所以存储器的速度对于计算机的速度影响是很大的。
对于我们来说,总是希望存储器的速度能和CPU一样或尽量的块,这样一个CPU周期需要的时钟周期就越少。但是现实是,这样的计算机可能相当的昂贵。所以在计算机的存储系统中,采用了一种分层的结构。速度越快的存储器容量越小,这样就能做到在性能和价格之间的一个很好的平衡。