0%

MIT 6.004:L02 数字抽象

整理自 MIT OCW 6.004 Computation Structures(Spring 2017)L02 注解幻灯片。

源网页:2.1 Annotated Slides | The Digital Abstraction

讲师:Chris Terman。图片直接引用 OCW 原站链接。

L02:数字抽象(The Digital Abstraction)

上一讲讨论了如何把信息编码成比特序列。本讲转向:为比特寻找有用的物理表示,这是构建信息处理器件的第一步。

1. 编码信息(Encoding Information)

Encoding Information

好的比特表示应具备哪些性质?

  • 小且便宜:随身携带数十亿比特(如音乐文件),网上还有海量比特可供访问,因此比特必须体积小、成本低。
  • 长期稳定:一旦是 0,就应长期保持为 0。罗塞塔石碑(Rosetta Stone,约公元前 196 年)近 2000 年后仍可辨读——但石刻稳定却难改写。
  • 便于操作:能快速访问、变换、组合、传输与存储所编码的信息。

自然界的启发:DNA 用腺嘌呤(Adenine)、胸腺嘧啶(Thymine)、鸟嘌呤(Guanine)、胞嘧啶(Cytosine)编码遗传信息,分子尺度满足“小”的要求,也有人研究用生命化学做大规模计算。但我们既不想提着黏糊糊的 DNA,也不想带着石凿——那么该用什么表示比特?

2. 电来救急(Electricity to the Rescue)

Electricity to the Rescue

可用带电粒子相关的电现象表示信息:

  • 电荷造成电势差 → 电压(voltage)
  • 电荷流动 → 电流(current)
  • 电磁场的相位与频率 → 无线通信的基础

本课程用电压表示比特。例如 0V0\,\mathrm{V} 表示 0,1V1\,\mathrm{V} 表示 1;比特序列可用多根线上的多路电压,或单线上随时间变化的电压序列。

电压表示的优点:市电与电池供应相对便宜可靠;百余年积累的工程知识使我们能造出极小、极低功耗的存取与处理电路——稳态下信息不变时,功耗可接近零。

挑战:电压易受环境电磁场影响;远距离传输需导线;改变线上电压需时间,由导线的电阻与电容决定 RC 时间常数(现代集成电路中很小,但非零)。这些问题有成熟工程对策。

3. 用电压表示信息(Representing Information with Voltage)

Representing Information with Voltage

考虑用电压表示黑白图像:每个 (x,y)(x,y) 点有强度(黑最弱、白最强)。可把强度映到电压,如 0V0\,\mathrm{V} 为黑、1V1\,\mathrm{V} 为白,中间强度用中间电压。

每个点含多少信息?取决于能区分多少强度(电压)。若能分辨任意小差异,则每点信息量理论上无穷;工程上可分辨的差异存在下界。

要用 NN 比特表示的信息量,需在 0V0\,\mathrm{V}1V1\,\mathrm{V} 内区分 2N2^N 个电压。例如 N=2N=2 需区分四个电平(如 001/31/32/32/31V1\,\mathrm{V}),廉价电压表即可。NN 任意大在理论上可行,但微伏乃至纳伏级精度既昂贵又慢,热噪声等还会模糊“瞬时电压”的含义。

因此,电压编码能力受限于能否可靠、快速地区分某一时刻的电压。

4. 用电压编码一幅图(Using Voltages to Encode a Picture)

Using Voltages to Encode a Picture

按约定光栅顺序(如左→右、上→下)扫描图像,把强度转为电压,得到随时间变化的电压序列。早期电视即如此:画面编成在黑白表示之间变化的电压波形,并扩展电压范围以携带行同步、帧同步等同步信号(sync signals)。这种可取指定范围内任意值的波形称为连续波形(continuous waveform)。

5. 信息处理 = 计算(Information Processing = Computation)

Information Processing = Computation

用两个简单处理模块搭系统:

  • COPY:输出复现输入电压 → 图像不变
  • INVERTING:输入为 VV 时输出 1V1-V → 黑白反转

使用预封装模块是构建大电路的常见方式:按规则连接即可,无需理解每个模块内部细节;不同配置下也可根据模块行为预测系统行为——像搭积木一样组装,即使不熟悉模拟电路细节的程序员也能搭建处理任务。前提是:组件正确、连接遵守规则时,系统行为应可预期。

6. 动手搭一个系统!(Let’s Build a System!)

Let's Build a System

用若干 COPY 与 INVERTING 模块组成图像处理系统。COPY 不改图像,INVERTING 为偶数个,理论上输出应与输入相同。

实际上输出略糊:强度有偏差,剧烈变化被抹平。出了什么问题?

7. 系统为何失败?(Why Did Our System Fail?)

Why Did Our System Fail

COPY / INVERTING 很难严格服从数学描述:制造偏差与环境差异使 COPY 对 VV 输入输出 V+εV+\varepsilon,INVERTING 同理。在连续值强度表示下,V+εV+\varepsilon 仍是合法输出——只是对应另一幅略不同的合法图像。我们无法区分“略受损的信号”与“略不同图像的完美信号”。

更致命的是:误差会沿链路累积。系统越大,累积误差越大。若必须限制“还能做多少次计算才结果不可用”,系统将很难扩展。

噪声与不精确不可避免;无法可靠复现无限信息。必须设计系统在允许一定误差时仍能可靠处理信息——要能察觉处理引入的误差,并在误差累积前恢复正确值。这就是下一主题。

8. 数字抽象(The Digital Abstraction)

The Digital Abstraction

引入数字抽象(digital abstraction):用连续的电压世界表示一个小的有限值集合——此处即二进制的 0 与 1。世界本身并非天生数字;我们是用连续物理现象去工程出数字行为。

旁注:有些物理量天然离散(如电子自旋);量子计算正研究如何利用量子物理做计算。本课程聚焦于如何用经典连续现象构建数字系统。

9. 用电压做数字表示(Using Voltages Digitally)

Using Voltages Digitally

核心:约定信令,每次只编码 1 比特(0 或 1),系统中各组件与导线使用统一表示。到达可用方案需三轮尝试。

第一版:用阈值 VthV_{\mathrm{th}} 把电压范围一分为二——V<VthV < V_{\mathrm{th}} 为 0,VVthV \ge V_{\mathrm{th}} 为 1。数学上简洁,但阈值附近的电压极难可靠判读:电路需精密元件与严格受控环境,与低成本、多环境使用目标不符。→ 不可行(大红叉)

第二版:引入两个阈值 VLV_{\mathrm{L}}VHV_{\mathrm{H}}

  • VVLV \le V_{\mathrm{L}} → 解释为 0
  • VVHV \ge V_{\mathrm{H}} → 解释为 1
  • VLV_{\mathrm{L}}VHV_{\mathrm{H}} 之间为禁区(forbidden zone):系统可将该区电压解为 0 或 1,不必一致,甚至可不给出解释

这样可用高增益运放加禁区内粗略参考电压做“快而糙”的电压→比特转换;参考不必极准(如 10% 精度电阻分压),温度与电源漂移也可容忍——只需保证在 VLV_{\mathrm{L}} 以下或 VHV_{\mathrm{H}} 以上时行为正确。→ 暂给绿勾;稍后再做一次小修正。

10. 组合器件(Combinational Devices)

Combinational Devices

满足以下四条的器件称为组合器件(combinational device):

  1. 数字输入:按信令约定,VVLV \le V_{\mathrm{L}} 为 0,VVHV \ge V_{\mathrm{H}} 为 1
  2. 数字输出:输出 0 时电压 VL\le V_{\mathrm{L}},输出 1 时电压 VH\ge V_{\mathrm{H}}
  3. 功能规格:对每种可能的数字输入组合,规定各输出的值(例:三输入有 23=82^3=8 种组合,可用 8 行真值表)
  4. 时序规格:至少给出传播延迟(propagation delay)tPDt_{\mathrm{PD}}——从输入到达稳定有效数字值,到输出保证稳定有效的时间上界

合称静态纪律(static discipline),所有组合器件必须遵守。

11. 组合数字系统(A Combinational Digital System)

A Combinational Digital System

由组合组件组成更大组合系统的规则:

  1. 每个组件本身是组合器件
  2. 每个组件的每个输入:接系统输入、恰好接另一器件的一个输出,或接表示 0/1 的恒定电压
  3. 互连无有向环——从系统输入到输出的路径中,任一组件最多出现一次

主张:按此规则构建的系统本身也是组合器件;系统可任意大,仍服从静态纪律(不同于本节开头脆弱的模拟链路)。

12. 这是组合器件吗?(Is This a Combinational Device?)

Is This a Combinational Device

以由组合器件 A、B、C 组成的系统为例,验证整体是否服从静态纪律:

  1. 数字输入? 是——系统输入即某些组件的输入,组件组合 ⇒ 系统输入数字。
  2. 数字输出? 是——同理由组件继承。
  3. 功能规格? 可——无环,按拓扑顺序用各组件功能规格逐步求出内部信号与输出。
  4. tPDt_{\mathrm{PD}} 可——枚举输入到输出的有限路径,路径延迟为沿途各组件 tPDt_{\mathrm{PD}} 之和;系统 tPDt_{\mathrm{PD}} 取所有路径中的最大值(最长路径)。

因此整体是组合器件。可用组合规则构建任意复杂度的组合器件。

13. 应对噪声(Dealing With Noise)

Dealing With Noise

定稿信令前还有问题:上游器件输出略低于 VLV_{\mathrm{L}} 的合法 0;线上噪声使下游看到略高于 VLV_{\mathrm{L}} 的电压——不再是有效数字输入,下游组合行为不再有保证。

对策:让输出约束严于输入——合法输出可叠加一定噪声后,仍落在合法输入范围内。能否靠“消灭噪声”一劳永逸?用电学组件时做不到。

14. 噪声从哪来?(Where Does Noise Come From?)

Where Does Noise Come From

电压噪声(偏离标称电压)来源包括:

  • 电学效应:导体 IR 压降(欧姆定律)、导体间电容耦合、引线电感与变电流引起的 L(dI/dt)L(\mathrm{d}I/\mathrm{d}t)
  • 制造偏差:器件参数相对标称值的偏差导致器件间电学行为差异
  • 环境因素:热噪声、外部电磁场等

许多噪声来自电路正常工作或材料/工艺固有性质,无法消除;但可估计幅度并相应调整信令规格。

15. 噪声容限(Noise Margins)

Noise Margins

最终信令:输入与输出使用不同阈值。

输出

  • 送出 0:电压 VOL\le V_{\mathrm{OL}}
  • 送出 1:电压 VOH\ge V_{\mathrm{OH}}

输入

  • 电压 VIL\le V_{\mathrm{IL}} → 解释为 0
  • 电压 VIH\ge V_{\mathrm{IH}} → 解释为 1

约束:VILV_{\mathrm{IL}} 严格大于 VOLV_{\mathrm{OL}}VIHV_{\mathrm{IH}} 严格小于 VOHV_{\mathrm{OH}}。输入与输出阈值之间的间隙称为噪声容限(noise margins):

  • 低噪声容限:VILVOLV_{\mathrm{IL}} - V_{\mathrm{OL}}
  • 高噪声容限:VOHVIHV_{\mathrm{OH}} - V_{\mathrm{IH}}

二者中较小者称为该信令规格的噪声免疫(noise immunity)。服从该规格的组合器件会在误差累积前“清洗”输入噪声——数字信令不再重蹈前文模拟例子的覆辙。

16. 电压传输特性(Voltage Transfer Characteristic)

Voltage Transfer Characteristic

以最简单的组合器件——缓冲器(buffer,单输入单输出,输出经传播延迟后复现输入数字值)为例测量。它服从静态纪律,并使用含高低噪声容限的修订信令。

测量:将输入设为从 0V0\,\mathrm{V} 到电源电压的一系列值,每次等待输出稳定(即等满 tPDt_{\mathrm{PD}}),在横轴 VINV_{\mathrm{IN}}、纵轴 VOUTV_{\mathrm{OUT}} 上描点,得到电压传输特性(voltage transfer characteristic, VTC)。

静态纪律约束合法组合器件的 VTC:有效输入必须产生有效输出(“valid in, valid out”)。图上可标出禁区——有效数字输入却对应无效数字输出;合法器件的 VTC 不得落入这些区域。缓冲器的实测曲线(黑线)不穿过阴影区,符合要求。这些测量刻画的是静态行为,不直接给出速度。

17. VTC 推论(VTC Deductions)

VTC Deductions

关于 VTC 的两点观察:

  1. 中心白色区域对应输入在 VILV_{\mathrm{IL}}VIHV_{\mathrm{IH}}(禁区)。静态纪律只约束有效输入,禁区输入下输出可任意。
  2. 由正噪声容限,VOHVOLV_{\mathrm{OH}} - V_{\mathrm{OL}} 严格大于 VIHVILV_{\mathrm{IH}} - V_{\mathrm{IL}},故中心白区高大于宽。穿过该区的曲线必有一段斜率绝对值 大于 1——输入小变化引起输出更大变化,即器件增益(gain)>1>1<1<-1

若组件可互连,则 VINV_{\mathrm{IN}}VOUTV_{\mathrm{OUT}} 范围相同,VTC 图画在正方形内。因存在 斜率>1|\text{斜率}|>1 的区段,又不能全程 斜率>1|\text{斜率}|>1,曲线斜率必须改变——这种器件称为非线性器件(nonlinear devices)。

结论:仅用电阻、电容、电感等线性器件无法构成组合器件;需要增益 >1>1 的非线性器件。寻找这类器件是下一讲主题。

18. VTC 实例(VTC Example)

VTC Example

给定某器件的 VTC,能否选 VOLV_{\mathrm{OL}}VILV_{\mathrm{IL}}VIHV_{\mathrm{IH}}VOHV_{\mathrm{OH}} 使其成为合法组合反相器?

反相器:数字 0 入 → 数字 1 出,反之亦然。该器件低输入时输出高,有希望。

选取示例:

  • 器件最低输出约 0.5V0.5\,\mathrm{V} ⇒ 取 VOL0.5VV_{\mathrm{OL}} \ge 0.5\,\mathrm{V}(取 0.5V0.5\,\mathrm{V}
  • 输入高于约 3V3\,\mathrm{V} 时输出 VOL\le V_{\mathrm{OL}} ⇒ 取 VIH=3VV_{\mathrm{IH}} = 3\,\mathrm{V}(尽量低以留高噪声容限)
  • 设噪声容限 N=0.5VN = 0.5\,\mathrm{V},则 VIL=VOL+N=1VV_{\mathrm{IL}} = V_{\mathrm{OL}} + N = 1\,\mathrm{V}VOH=VIH+N=3.5VV_{\mathrm{OH}} = V_{\mathrm{IH}} + N = 3.5\,\mathrm{V}

在图上标出阈值与禁区后,VTC 合法。因此可用规格 VOL=0.5VV_{\mathrm{OL}}=0.5\,\mathrm{V}VIL=1VV_{\mathrm{IL}}=1\,\mathrm{V}VIH=3VV_{\mathrm{IH}}=3\,\mathrm{V}VOH=3.5VV_{\mathrm{OH}}=3.5\,\mathrm{V} 把该器件当作组合反相器。

19. 小结(Summary)

Summary

本讲要点:

  • 用电压表示信息可行,但连续模拟链路中误差会累积,难以扩展
  • 数字抽象:用连续电压只表示有限符号(0/1),并引入禁区与统一信令
  • 组合器件服从静态纪律:数字 I/O、功能规格、传播延迟 tPDt_{\mathrm{PD}}
  • 组合组件按规则(无环等)互连 → 更大组合系统
  • 输入/输出分离阈值 → 噪声容限,抗噪声累积
  • 合法组合器件的 VTC 避开禁区,且必含增益 >1>1 的非线性区段;下一讲寻找可用的物理器件(CMOS)