讲述了六个计算机体系结构的问题以及解决方案

# Lecture02 - 计算机顶层视图

image-20230206203541964

image-20230206203856891

# 冯诺依曼最重要的思想 —— 存储程序

image-20230206204011284

任何要计算机完成的工作都要先被编写成程序,然后将程序和原始数据送入主存并启动执行。一旦程序被启动,计算机应能在不需要操作人员干预下,自动完成逐条取出指令和执行指令的任务。

image-20230206204116283

# CPU 中央处理单元

image-20230206204411527

区分中央处理单元(CPU)和处理器。

CPU 由一个 ALU,一个控制单元和多个寄存器构成

image-20230206204556909

PC program counter register 程序计数器

IR Instruction Register 指令寄存器

MAR Memory address register 存储器地址寄存器

MBR Memory buffer register 存储器缓冲寄存器

IO AR Address Register

IO BR Buffer Register

image-20230206204612845

image-20230206204628242

CPU 的制作工艺逐渐在提高,几乎不变的是 CPU 的大小,一直在增加的是晶体管的数量。

目前,苹果 M2 以及可以集成 200 亿的晶体管。

image-20230206204639210

image-20230206204650829

# 问题与解决思路

# 可以通过无限增加 CPU 的大小来增加性能嘛?

不可以,面积越大,意味着互联延迟越大。一个时钟周期需要大于最长互联延迟。存在物理极限。

# 问题 1:CPU 的频率不能无限提高

image-20230206205403774

MOS 管开关、脉冲通过门电路需要时间

为了信号同步,每个脉冲信号需要持续一定的时间

面积大,连线延迟大;

频率越高,开关损耗高,CPU 耗电和散热提高;

# 解决 1:改变 CPU 芯片结构

image-20230206205514143

  1. 采用各种技术,对芯片体系结构进行优化:指令流水线、每周期多条指令、cache、更长流水线和双速算术

  2. 领域定制,如面向人工智能的芯片

指令流水线(Lecture15):一条指令的处理过程分成若干个阶段,每个阶段由响应的功能部件完成

# 问题 2:内存墙的存在 memory wall

image-20230206210033288

主存和 CPU 之间传输数据的速度跟不上 CPU 的速度

# 解决 2:采用高速缓存(cache)

image-20230206210044831

  1. 添加一级或多级缓存以减少存储器访问频率并提高数据传输速率
  2. 增大总线的数据宽度,来增加每次所能取出的位数

# 问题 3:CPU 等待 I/O 传输数据

image-20230206210320460

CPU 在等待 I/O 设备时保持空闲

# 解决 3:中断

image-20230206210348500

其他模块(例如 IO)可以中断正常处理顺序的机制

中断周期加入指令周期中

image-20230206210444919

多重中断:顺序中断处理、嵌套中断处理

# 问题 4:兼顾存储容量、速度和成本

image-20230206210725752

image-20230206210502649

约束

  • 容量:越大越好
  • 速度:跟上处理器
  • 成本:相较于其他组件合理

约束之间的关系

​ 更短的访问时间,更高的每比特成本

# 解决 4:层次式存储结构

image-20230206210511936

需求

  • 大容量数据存储
  • 高速性能

解决方案

  • 使用存储器层次结构而不是依赖单个存储器组件

寄存器 ——cache—— 主存 —— 磁盘 —— 磁带

存储量越来越大,速度越来越慢,离 CPU 越来越远

# 问题 5:I/O 设备传输速率差异大

image-20230206210740950

image-20230206210753577

I/O 性能跟不上 CPU 速度的提升

# 解决 5:采用缓冲区和改进 I/O 操作技术

image-20230206211018561

# 问题 6:计算机部件互连复杂

image-20230206211040491

总线:共享、分时

image-20230206211102521

image-20230206211110556

# 解决 6:采用总线

image-20230206211405966

# 总线

目前,对通用计算机而言,各种点对点互连结构逐渐取代总线互连的方式。但是总线结构依然普遍用于嵌入式系统。

# 共享

所有部件都通过总线传递数据

# 分时

只有一个部件能够传输数据

# 功能组

控制线 —— 控制对数据线路与地址线路的访问和使用,控制信号传递命令和定时信息

地址线 —— 指定数据总线上数据的源或目的,地址总线的宽度决定了系统可能的最大内存容量

数据线 —— 为系统模块之间的数据传输提供路径,一般而言,线路的条数决定了一次能传输的位数,数据总线的宽度是决定系统整体性能的一个关键因素

image-20230206211430759