1. 课程计划

“我们从接收 0 和 1 作为输人, 产生 0 和 1 作为输出的逻辑门开始本课程。接着, 我们将研究如何利用这些逻辑门构成加法器、存储器等比较复杂的模块。随后,我们将学习使用微处理器的语言 (汇编语言) 进行程序设计。最后, 我们将上述内容结合起来构造一个能执行汇编程序的微处理器。” (戴维·莫尼·哈里斯和L.哈里斯, 2016, p. 1)

2. 控制复杂性的艺术

“与非专业人员相比, 计算机科学家或工程师的一个重要特征是掌握了系统地控制复杂性的方法。” (戴维·莫尼·哈里斯和L.哈里斯, 2016, p. 1)

[! note] 系统地控制复杂性的方法。或许这个是学习的终极目标

后面就会具体讲述如何去系统性地控制复杂性。

2.1. 抽象

抽象

管理复杂性的关键技术在于抽象:隐蔽不重要的细节。一个系统可以从多个不同的层面进行抽象。

指向原始笔记的链接

对于一个电子计算机系统能进行以下层次的抽象。

2.2. 约束

约束

约束是对设计选择的一种内在限制,通过这种限制可以更有效地在更高的抽象层次上工作。

例如,使用统一的接口或者定义。

指向原始笔记的链接

2.3. 三 Y 原则

三 Y 原则

除了抽象和约束外, 设计者还使用另外三条准则来处理系统的复杂性: 层次化模块化规整化 (regularity) 。这些原则对于软硬件的设计都是通用的。

  • 层次化

    层次化

    层次化将系统划分为若干模块,然后更进一步划分每个模块,直到这些模块可以很容易理解。

    指向原始笔记的链接
  • 模块化

    模块化

    模块化就是将所有模块都定义好功能和接口, 以便于它们之间可以很容易地相互连接而不会产生意想不到的副作用。

    指向原始笔记的链接
  • 规整化

    规整化

    在模块之间寻求一致,通用模块可以重复使用多次,以便减少设计不同模块的数量。

    指向原始笔记的链接
指向原始笔记的链接

3. 数字抽象

数字抽象就是将连续的物理量抽象为高电压(“1”)和低电压(“0”),这样就只需要关注 0 和 1 而忽略掉特定的电压。

4. 数制

第一章 数制和码制

字节

8 位的一组二进制数称为字节 (byte) ,它能表示 个数字。在计算机内存中存储数据习惯用字节作单位, 而不用位。

指向原始笔记的链接

半字节

4 位的一组或者半个字节称为半字节,它能表示 个数字。一个十六进制数占用 1 个半字节, 两个十六进制数占用一个字节。半字节已经不是一个常用的单位, 但这个术语很吸引人。

指向原始笔记的链接

微处理器处理的一块数据称为字。字的大小取决于微处理器的结构。

在写作本书的 2012 年, 很多计算机都采用 64 位处理器, 说明它们对 64 位的字进行操作。那时, 处理 32 位字的旧计算机也广泛应用。比较简单的微处理器, 特别是应用在烤面包机等小设备中的处理器, 使用 8 位或 16 位字。

在一组位中,权为 1 的那位称为最低有效位(least significant bit,lsb),另一端的就是最高有效位(most siglificant bit,msb)。同样,对字节而言,也有最低有效字节(LSB)和最高有效字节(MSB)。

指向原始笔记的链接

5. 逻辑门

逻辑门

逻辑门是在集成电路上的基本组件,是实现基本运算、复合运算的单元电路。输入通常在左边,输出在右边。通常用字母表开始的部分表示输入,用 Y 表示门的输出。输入输出之间的关系可以用真值表布尔表达式来表示。

高、低电平可以分别代表逻辑上的“真”与“假”或二进制当中的 1 和 0,从而实现逻辑运算。

  • 正逻辑:高电平表示 1,低电平表示 0
  • 负逻辑:高电平表示 0,低电平表示 1

种类

基础逻辑门

非门缓冲器与门或门

复合逻辑门

与非门或非门与或非门异或门同或门

指向原始笔记的链接

6. 数字抽象

数字抽象是一种将连续变量和离散变量联系起来的方法。

6.1. 电源电压

假设系统中的最低电压为 , 称为地 (ground, GND) 。系统中的最高电压来自电源, 常称为

6.2. 逻辑电平

逻辑电平

通过定义逻辑电平,可以将连续的变量映射到离散的二进制变量。

第一个门被称为驱动源(driver),第二个门接收端(receiver)。

驱动源产生高电压,输出则在 之间;产生低电压,输出则在 之间。

接收端的输入电压在 之间,则是输入为高电压;输入电压为 之间,则输入为低电压。 之间为禁止区域(forbidden zone)。

为输出高/低电平; 为输入高/低电平。

指向原始笔记的链接

6.3. 噪声容限

噪声容限

可以加在最坏情况输出上,但是依然能使得接收端正确解释为有效输入的噪声值为噪声容限。

输入为高电平的噪声容限:

输入为低电平的噪声容限:

提高噪声容限的方法

CMOS 器件可以通过提高 来提高噪声容限,但是 的提高也会使得功耗的增加。

指向原始笔记的链接

6.4. 直流电压传输特性

传输特性

门的直流电压传输特性描述了当输入电压变化足够慢且保证输出能跟上输入的变化时, 输出电压随输入电压变化的函数关系。这个函数称为传输特性, 因为它描述了输入和输出电压之间的关系。

理想情况下,例如对于反相器而言,输入电压达到门限 的时候会发生跳变,但是事实是两个「端点」之间的电压变化是平滑的。由此导致如何定义逻辑电平成为了需要考虑的问题。

一种方法是选择在传输特征曲线斜率 的位置。这两个位置称为单位增益点。在这里选择逻辑电平能最大化噪声容限。

指向原始笔记的链接

6.5. 静态约束

为了避免输入落到禁止区域,数字逻辑门的设计需要遴循静态约束。静态约束要求, 对于给定的有效逻辑输入,每个电路元件应该能产生有效的逻辑输出。

和逻辑电平可以任意选择,但是所有相互通信的逻辑门必须保持兼容的逻辑电平。因此,逻辑门可以按照逻辑系列 (logic family) 来区分, 其中同一逻辑系列的所有门都遵循相同的静态约束。同一逻辑系列中的逻辑门像积木一样组合在一起, 使用相同的电源电压和逻辑电平。

20 世纪 70 年代~ 90 年代有 4 种主流的逻辑系列: TIL (Transistor-Transistor Logic, 晶体管 -晶体管逻辑), CMOS (Complementary Metal- Oxide- Semiconductor Logic, 互补性金属-氧化物 -半导体逻辑)、 LVTIL (Low Voltage TIL, 低电压 TIL) 和 LVCMOS (Low Voltage CMOS, 低电压 CMOS) 。

7. CMOS 晶体管*

* 的章节对理解《数字设计和计算机体系结构》的核心内容不重要。

《Chapter 3 CMOS 逻辑电路》笔记