INTRODUCTION 导论:
A. Overview 概述:
a. Definition 定义:
- Definition 定义:
Computer Organization 计算机组成, 研究运算器、控制器、寄存器、存储器与输入输出部件如何连接和协同, 将机器指令落实为数据传送、运算和状态变化
- Core Question 核心问题:
给定一条指令或一次数据传输, 解释数据经过哪些部件、控制信号如何选择路径、状态何时更新
b. Boundaries and Connections 边界与联系:
- Digital Logic 数字逻辑:
DIGITAL LOGIC 数字逻辑 解释门电路、组合模块、寄存器、FSM 与时序约束
- Computer Architecture 计算机架构:
COMPUTER ARCHITECTURE 计算机架构 解释 ISA、先进微架构、并行组织与性能取舍
- Operating System 操作系统:
OS 操作系统 解释进程、页表管理、缺页处理与设备驱动
B. System View 系统视角:
a. Execution and Communication 执行与通信:
- Stored Program 存储程序:
指令与数据以比特形式存储, CPU 依据 PC 取指并更新寄存器、存储器或控制流;不同系统可使用分离的指令与数据路径
- Machine State 机器状态:
用 PC、架构寄存器和存储器等描述执行状态;指令语义规定哪些状态应改变, 数据通路和控制器实现这些变化
- Execution Model 执行模型:
本页以 RISC-V 基础整数指令和简化教学数据通路解释机制;具体时序、控制信号及地址转换按各小节条件理解

<aside>
Running Example 贯穿示例:
- Conditions 条件:
采用 RV32I、字节编址、小端且访问有效的模型, 执行
lw x3, 8(x1)
- Input 输入:
x1 = 0x1000, 地址 0x1008 至 0x100B 的字节依次为 78、56、34、12
- Path 路径:
寄存器堆提供基址, ALU 加上立即数 8 得到地址
0x1008, 存储接口读取 4 个字节, 写回选择器将 0x12345678 送入 x3
- Connections 衔接:
采用虚拟地址时加入 MMU/TLB 转换, Cache 未命中时请求下一层;数据表示、数据通路与存储系统共同完成这条指令
</aside>
I. DATA REPRESENTATION 数据表示:
A. Integers and Instructions 整数与指令:
a. Representation Review 表示回顾:
- Basic Encoding 基本编码:
n 位无符号范围为 0 到 2ⁿ − 1, 补码范围为 −2ⁿ⁻¹ 到 2ⁿ⁻¹ − 1;数制、补码、取负、扩展截断及进位与溢出原理见 DIGITAL LOGIC 数字逻辑 的 DATA REPRESENTATION 数据表示与 COMBINATIONAL LOGIC 组合逻辑
- Interpretation 解释:
比特串本身不携带有符号、无符号或浮点类型, 解释由指令及软件约定决定;同一二进制加法电路可服务不同数值解释
- Load Extension 加载扩展:
加载宽度小于寄存器宽度时, 指令可规定符号扩展或零扩展;例如 RISC-V
lb 与 lbu 分别把字节按有符号与无符号方式扩展到 XLEN
- Overflow Behavior 溢出行为:
保留模位宽结果、设置条件码或触发异常由 ISA 决定;RISC-V 基础整数加法不设置通用条件码或触发算术溢出异常
- Shifts 移位:
逻辑移位补 0, 算术右移复制符号位;左移可能丢失高位, 算术右移对负数的舍入通常不同于向零取整的整数除法;电路实现见数字逻辑
B. Floating Point 浮点数:
a. Finite Precision 有限精度:
- Fields 字段:
IEEE 754 binary32 使用 1 位符号、8 位指数和 23 位小数字段;正规数的有效数具有隐含前导 1
- Normal Values 正规数:
binary32 正规数为 $(-1)^s(1.f)_2\times2^{E-127}$;E 为指数编码, f 为小数字段;指数全 0 或全 1 时按特殊规则解释
- Special Values 特殊值:
E = 0 且 f = 0 表示正负零;E = 0 且 f ≠ 0 表示次正规数, 数值为 $(-1)^s(0.f)_2\times2^{-126}$;E = 255 且 f = 0 表示正负无穷, f ≠ 0 表示 NaN
- Rounding 舍入:
浮点数只能表示有限集合, 0.1 等十进制小数通常不能精确表示;舍入可使 (a + b) + c 与 a + (b + c) 不同
C. Byte Layout 字节布局:
a. Endianness and Alignment 字节序与对齐:
- Byte Addressing 字节编址:
一个地址通常标识一个字节;字长、数据宽度和地址宽度是不同概念
- Endianness 字节序:
多字节数值在递增地址上的字节排列规则;字节序改变存储排列, 不改变数值本身
- Alignment 对齐:
自然对齐通常要求数据起始地址为其大小的整数倍;非对齐访问的支持、性能和异常行为取决于系统
<aside>
Bit Interpretation 比特解释:
- Same Bits 相同比特:
8 位
0xFF 按无符号解释为 255, 按补码解释为 −1
- Extension 扩展:
扩到 32 位时, 零扩展为
0x000000FF, 符号扩展为 0xFFFFFFFF
- Instruction Effect 指令效果:
RV32I 中对字节
0xFF 执行 lbu 得到 255, 执行 lb 得到 −1;指令决定扩展规则
</aside>
<aside>
Binary32 Example 单精度示例:
- Normalization 规格化:
1.5 = (1.1)₂ × 2⁰, 符号 s = 0, 指数编码 E = 127, 小数字段为 1 后接 22 个 0
- Encoding 编码:
字段为
0 | 01111111 | 10000000000000000000000, 合并得到 0x3FC00000
- Precision 精度:
binary32 正规数含隐含位共有 24 位有效二进制精度;次正规数没有隐含前导 1
</aside>
Byte Layout Example 字节布局示例:
- Value and Address 数值与地址:
将 32 位数值
0x12345678 存在起始地址 0x1000
| 地址 |
小端字节 |
大端字节 |
| 0x1000 |
78 |
12 |
| 0x1001 |
56 |
34 |
| 0x1002 |
34 |
56 |
| 0x1003 |
12 |
78 |
- Alignment 对齐:
0x1000 是 4 的整数倍, 满足 4 B 自然对齐;0x1001 不满足, 具体处理依系统规定
II. PROCESSOR ORGANIZATION 处理器组成:
A. Core Components 核心部件:
- Model Conditions 模型条件:
示例采用 RV32I, 固定 32 位指令且不含压缩扩展;单周期模型假设存储器在本周期内返回结果, 五级流水线模型另行说明访存与旁路条件;这些是教学假设, 不是全部 RISC-V 实现的要求
a. Datapath Components 数据通路部件:
- Register File 寄存器堆:
通过读端口提供源操作数, 通过写端口按控制信号更新目标寄存器;通用寄存器与 PC、控制状态寄存器用途不同
- ALU 算术逻辑单元:
执行整数加减、逻辑、移位与比较等选定操作;乘除可由独立单元或多周期机制实现, 浮点运算通常由 FPU 处理
- Multiplexers and Immediate Generator 选择器与立即数生成器:
选择寄存器、立即数、访存结果及下一 PC 的来源;立即数字段按指令格式重组并扩展
- PC and Instruction Storage PC 与指令保存:
PC 用于指令地址选择;多周期教学模型可用 IR 保存当前指令, 流水线使用各级寄存器保存对应指令与控制信息
- Control Unit 控制单元:
依据指令和当前执行状态生成读写使能与路径选择;Cache 和主存通过访存接口提供指令与数据

b. Processor Types 处理器类型:
- CPU and MCU CPU 与微控制器:
CPU 面向通用指令执行;MCU 通常在芯片内集成处理器、存储器和外设, 面向设备控制
- GPU and Accelerators GPU 与加速器:
GPU、NPU/TPU 面向高并行或特定计算;DSP 面向数字信号处理;其组织与设计取舍见计算机架构
- System Performance 系统性能:
程序速度同时受处理器执行、访存、I/O 与软件影响, 不能仅由主频、核心数或缓存容量判断
III. PIPELINING 流水线:
IV. MEMORY SYSTEM 存储系统: