一、数制
一、基础知识
1、控制复杂性的艺术
现代数字系统由上百万,甚至数十亿的晶体管构成。没有人能通过为每个晶体管的电子运动建立并求解方程的方法来理解这样的系统。我们必须学会如何控制复杂性,从而理解如何构造微处理器系统,而不陷入繁琐的细节。
1.1、抽象
管理复杂的关键技术在于抽象(abstraction)隐蔽不重要的细节。一个系统可以从多个不同层面抽象。
下图给出了一个电子计算机系统的抽象层次,其中在每个层次中都包含了典型的模型。最底层的抽象是物理层,即电子的运动。电子的特征由量子力学和麦克斯韦方程描述。我们的系统由晶体管或先前的真空等电子器件构造。这些器件都有明确定义的外部连接点,称为端子(terminal),并建立了每个端子上电压和电流之间的关系模型。通过器件级的抽象,我们可以忽略单个单的电子。更高一级抽象为模拟电路(analogy circuit)。在这一级中,期间组合在一起构造成放大器等组件。模拟电路的输入输出都是连续的电压值。逻辑门等数字电路(digital circuit)则将电压控制在离散的范围内,以表示0和1.在逻辑设计中,我们将使用数字电路构造更复杂的组件,例如加法器或存储器。
图1-1
微结构将逻辑器件和体系结构层次的抽象连接在一起。体系结构(architecture)层描述了程序员观点的计算机抽象。微结构将逻辑组件组合在一起以实现体系结构中定义的指令。一个特定的体系结构可以有不同的微结构实现方式,以取得在价格、性能和功耗等方面的不同折中。
进入软件层面后,操作系统负责处理底层的抽象,例如访问硬盘或管理存储器。最后,应用软件使用操作系统提供的这些功能以解决用户的问题。
1.2、约束
约束(discipline)是对设计选择的一种内在限制,通过这种限制可以更有效地在更高的抽象层次上工作。对数字电路的约束很重要,不同于模拟电路,数字电路使用离散电压,所以数字电路可以看作是模拟电路的一个子集,而且某种意义上其能力要弱于模拟电路。但是数字电路设计简单。通过数字电路的约束规则,可以很容易的将元件组合成复杂的系统。
1.3、三条原则
除了抽象与约束外,设计者还需使用三条准则来处理系统的复杂性:
- 层次化:将系统划分为若干模块,然后更进一步划分每个模块知道这些模块可以很容易理解。
- 模块化:所有模块有定义好的功能和接口,以便于它们之间可以很容易的相互连接而不会产生意料之外的副作用。
- 规整化: