深入理解CPU微架构设计:从二进制表示到CMOS电路实现
archbase 教科书《计算机体系结构基础》(胡伟武等,第三版)的开源版本 项目地址: https://gitcode.com/gh_mirrors/ar/archbase
计算机中数的表示方法
计算机内部所有数据都采用二进制编码,这主要基于两点原因:一是二进制编码规则简单,便于逻辑电路实现算术运算;二是二进制状态稳定,易于物理器件实现。在计算机系统中,数值数据的表示需要考虑三个关键要素:进位制、定点/浮点表示和编码规则。
二进制基础
二进制与十进制原理相同,区别仅在于基数不同。任意R进制数A可以表示为: $$A=a_{n}a_{n-1}...a_{1}a_{0}.a_{-1}a_{-2}...a_{-m}$$ 其值为: $$Value(A)=\sum_{i=-m}^{n}a_i×R^i$$
二进制运算遵循"逢二进一"规则。例如4位二进制计算5+9:
- 5表示为0101
- 9表示为1001
- 结果为1110(即14)
由于二进制书写较长,实践中常使用十六进制作为中间表示,因为每4位二进制可直接转换为1位十六进制。
定点数表示
定点数表示需要解决小数点位置和符号表示问题,主要有两种编码方式:
-
原码表示:
- 最高位为符号位(0正1负)
- 其余位表示绝对值
- 优点:直观,乘除运算简单
- 缺点:存在±0,加减运算复杂
-
补码表示:
- 最高位仍为符号位
- 正数补码与原码相同
- 负数补码=原码符号位不变,数值位取反加1
- 优点:统一加减运算,无±0问题
- 现代计算机普遍采用补码表示整数
补码的本质是模运算系统,使得减法可以转换为加法实现。例如在4位二进制系统中:
- 计算5-3可转换为5+(-3的补码)
- -3的补码为1101
- 0101+1101=0010(即2)
浮点数表示
浮点数采用科学记数法表示实数,解决定点数表示范围有限的问题。IEEE 754标准定义了浮点数的通用表示格式:
-
基本格式:
- 单精度(32位):1位符号+8位阶码+23位尾数
- 双精度(64位):1位符号+11位阶码+52位尾数
-
规格化表示:
- 尾数采用1.xxxx形式,隐含最高位1
- 阶码采用移码表示(偏置常量127/1023)
-
特殊值处理:
- 无穷大(阶码全1尾数全0)
- 非数NaN(阶码全1尾数非0)
- 非规格化数(阶码全0尾数非0)
- 零(阶码全0尾数全0)
非规格化数的引入填补了最小规格化数与零之间的空隙,提高了小数的表示精度。
MOS晶体管与CMOS电路实现
MOS晶体管工作原理
现代CPU主要采用CMOS(互补金属氧化物半导体)工艺实现。MOS晶体管的基本结构包括:
-
半导体基础:
- 纯净硅掺杂V族元素(如磷)形成N型材料(多电子)
- 掺杂III族元素(如硼)形成P型材料(多空穴)
-
MOS管结构:
- NMOS:P型衬底+N型有源区
- PMOS:N型衬底+P型有源区
- 栅极电压控制源漏极间导电沟道形成
-
开关特性:
- NMOS:栅极高电平导通
- PMOS:栅极低电平导通
- CMOS电路利用两者互补特性实现低功耗
CMOS逻辑电路实现
-
基本逻辑门:
- 非门:P管和N管串联,输入控制两管交替导通
- 与非门:P管并联+N管串联
- 或非门:P管串联+N管并联
-
特殊电路:
- 传输门:P管和N管并联,完美传递0和1
- D触发器:利用传输门和反相器构建时序存储单元
-
时序特性:
- 建立时间:时钟变化前输入必须稳定的时间
- 保持时间:时钟变化后输入必须保持的时间
- Clock-to-Q时间:时钟边沿到输出稳定的延迟
CMOS电路的关键优势在于静态功耗极低,因为稳定状态下总有一端MOS管处于关闭状态。通过组合这些基本电路模块,可以构建出完整的CPU运算器和控制逻辑。
总结
从二进制表示到物理电路实现,CPU微架构设计展现了计算机科学的精妙之处。理解这些基础知识对于深入学习计算机体系结构至关重要。foxsen/archbase项目中对这些核心概念进行了系统梳理,为读者构建了完整的知识框架。后续可以在此基础上进一步探讨算术逻辑单元(ALU)、流水线等更复杂的微架构设计主题。
archbase 教科书《计算机体系结构基础》(胡伟武等,第三版)的开源版本 项目地址: https://gitcode.com/gh_mirrors/ar/archbase
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考