应无所住,而生其心。

这是一篇计算机组成原理的简述,希望通过比较简单的、连贯的语言描述完成计算机组成原理的分析和复习。至于更加详尽的知识点,将在单篇文章中进行总结。计算机组成原理的教材是唐朔飞版。

# 概论

计算机组成原理是一门研究计算机底层部件的具体构造和组织形式的科目。而选用的教材则是以自顶向下的思路进行设计的,因此在接下来的叙述中也会如此进行。

# 冯・诺依曼计算机

冯・诺依曼计算机是最基本的计算机结构,其指明了计算机的五大部件为运算器存储器控制器输入设备输出设备

值得注意的是,冯・诺依曼计算机的要求不仅为由以上五部分组成,还包括了一些基本的计算机运行思想。只是由于这些思想在目前已经见怪不怪,于是往往有人将其忽略。这几点要求为:

  • 指令和数据的存储地位相等,置于存储器中,可以按地址寻访。
  • 指令和数据以二进制形式表示。
  • 指令包括操作码地址码,操作码表示操作的性质,地址码表示操作数据的位置。
  • 指令的存放具有顺序,指令通常按照存放顺序进行执行,但指令可以改变指令本身执行的数据。
  • 运算器是计算机的中心。输入设备和输出设备都可以通过运算器完成。

最后一点要求与当今的计算机不完全相同,当今的计算机将运算器和控制器合并为中央处理器 (Central Processing Unit, CPU)。并以存储器作为核心。这是因为若以 CPU 为核心,则 I/O 设备的数据传输会严重拖慢 CPU 的速度,因此使存储器与 I/O 直接交换数据,提高效率。

# 系统总线

系统总线的产生目的是提供各个部件的通用交换线路,以避免产生繁杂的连线 (例如达到 O(n2)O(n^2) 级别),并极大简化 I/O 设备的增删过程。因此,在这样的考虑下,我们需要解决几个最基本的问题:

  • 总线应在计算机内如何安放或架构?
  • 总线的统一标准是什么?如何让各个设备适应统一的总线标准?总线标准下的性能如何?
  • 设备是如何使用总线的?当多个了呗同时使用总线时发生冲突如何解决?

以上的几个问题就是我们在系统总线中讨论的基本问题。

# 总线结构

总线结构指的不是总线的内部结构,而是总线与计算机部件组成的结构,或者说计算机各个部件是如何通过总线进行有机连接的。一般情况下,总线结构分为单总线结构多总线结构。单总线结构是较早的计算机采用的结构,由于 I/O 设备的传输较慢,会严重挤占 CPU 和存储器的总线使用时间,大大降低电脑的运行效率。因此我们往往采用多总线结构。

在多总线结构中,CPU 与主存之间的总线一定是独立的,我们称为存储总线。IO 与 CPU 之间的总线称为 I/O 总线。IO 与主存之间的总线称为 DMA 总线 (Direct Memory Access, 直接存储器访问)。