微处理器设计/简介
计算机和计算机系统是现代世界中无处不在的一部分。除了常见的台式电脑之外,还有许多其他类型的专用计算机系统出现在许多不同的地方。这些计算机和计算机系统的核心组件是微处理器,或称为 CPU。CPU(“中央处理器”的缩写)本质上是计算机系统的“大脑”,它是“计算”的组件。本书将讨论微处理器单元的作用,它们的工作原理以及它们的设计方法。
本书将讨论微处理器单元的设计,但不会讨论完整计算机系统的设计,也不会讨论其他计算机组件或外围设备的设计。一些微处理器设计将在硬件描述语言(如 Verilog 或 VHDL)中实现和综合。本书将按照从简单的设计和概念开始,随着书籍的进展,将初始设计扩展到包括更复杂的概念的顺序进行组织。
本书将尝试从抽象层面讨论微处理器设计的基本概念和理论,并在必要时给出实际示例。本书不会集中研究任何特定的处理器体系结构,尽管一些最常见的体系结构将在示例和注释中频繁出现。
本书的第一部分将回顾计算机体系结构,并简要概述计算机的组件、微处理器的组件以及现代微处理器的一些基本体系结构。
第二部分将详细讨论微控制器的各个组件,它们的作用以及它们的设计方法。
第三部分将重点放在 ALU 和 FPU 上,并讨论特定数学运算的实现。
第四部分将讨论各种设计范式,从最简单的单周期机器开始,到更复杂的奇特体系结构,例如向量机和 VLIW 机。
额外的章节将作为前四个部分中讨论的概念的扩展和支持章节。
本书将依赖一些重要的背景信息,这些信息目前在其他一些本地维基教科书中有所介绍。本书的读者会发现以下先决条件对于理解本书的内容很重要。
所有读者**必须熟悉二进制数**以及十六进制数。这些符号将在整本书中使用,无需事先解释。本书的读者应该熟悉至少一种汇编语言,也应该熟悉一种硬件描述语言。本书将在文本的主要叙述中使用这两种类型的语言,事先不会提供解释。附录中可能包含关于这些材料的入门知识。
本书的读者还会发现一些软件片段有助于理解示例。具体来说,汇编程序和汇编语言模拟器将有助于理解许多示例。同样,HDL 编译器和模拟器在设计示例中也将很有用。如果能找到这些软件程序的免费版本,将在附录中添加链接。
本书旨在作为微处理器设计领域高级本科或研究生学习的补充。电气工程、计算机工程或计算机科学专业的学生可能会发现本书最有用。本书将涵盖该领域的基本科目,并将根据作者的精通程度包含更高级的主题。本书中考虑的许多主题将适用于许多不同类型数字硬件的设计,包括 ASIC。但是,本书的主要叙述以及本书的最终目标将集中在微控制器和微处理器上,而不是其他 ASIC 上。
本书仅介绍微控制器和微处理器的设计。本书不会详细介绍以下主题,尽管可能会提及其中一些主题作为兴趣点。
- 晶体管机制、半导体或集成电路制造(微技术)
- 数字电路逻辑、设计或布局(可编程逻辑)
- 设计或与其他计算机组件或外围设备接口(嵌入式系统)
- 设计或实现用于计算机组件之间通信的通信协议(串行编程)
- 设计或创建计算机软件(计算机编程)
- 片上系统硬件的设计或创建,或任何具有集成微控制器的设备
- 如何选择现成的 CPU(如何组装台式电脑/选择零件/CPU)
在整本书中,“微处理器”、“微控制器”、“处理器”和“CPU”这些词通常可以互换使用,表示能够执行算术运算和定量比较的数字处理单元。我们可能会在各个部分区分这些术语,但始终会提供差异说明。