深入理解CPU微架构设计:从二进制表示到CMOS电路实现

深入理解CPU微架构设计:从二进制表示到CMOS电路实现

archbase 教科书《计算机体系结构基础》(胡伟武等,第三版)的开源版本 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位十六进制。

定点数表示

定点数表示需要解决小数点位置和符号表示问题,主要有两种编码方式:

  1. 原码表示

    • 最高位为符号位(0正1负)
    • 其余位表示绝对值
    • 优点:直观,乘除运算简单
    • 缺点:存在±0,加减运算复杂
  2. 补码表示

    • 最高位仍为符号位
    • 正数补码与原码相同
    • 负数补码=原码符号位不变,数值位取反加1
    • 优点:统一加减运算,无±0问题
    • 现代计算机普遍采用补码表示整数

补码的本质是模运算系统,使得减法可以转换为加法实现。例如在4位二进制系统中:

  • 计算5-3可转换为5+(-3的补码)
  • -3的补码为1101
  • 0101+1101=0010(即2)

浮点数表示

浮点数采用科学记数法表示实数,解决定点数表示范围有限的问题。IEEE 754标准定义了浮点数的通用表示格式:

  1. 基本格式

    • 单精度(32位):1位符号+8位阶码+23位尾数
    • 双精度(64位):1位符号+11位阶码+52位尾数
  2. 规格化表示

    • 尾数采用1.xxxx形式,隐含最高位1
    • 阶码采用移码表示(偏置常量127/1023)
  3. 特殊值处理

    • 无穷大(阶码全1尾数全0)
    • 非数NaN(阶码全1尾数非0)
    • 非规格化数(阶码全0尾数非0)
    • 零(阶码全0尾数全0)

非规格化数的引入填补了最小规格化数与零之间的空隙,提高了小数的表示精度。

MOS晶体管与CMOS电路实现

MOS晶体管工作原理

现代CPU主要采用CMOS(互补金属氧化物半导体)工艺实现。MOS晶体管的基本结构包括:

  1. 半导体基础

    • 纯净硅掺杂V族元素(如磷)形成N型材料(多电子)
    • 掺杂III族元素(如硼)形成P型材料(多空穴)
  2. MOS管结构

    • NMOS:P型衬底+N型有源区
    • PMOS:N型衬底+P型有源区
    • 栅极电压控制源漏极间导电沟道形成
  3. 开关特性

    • NMOS:栅极高电平导通
    • PMOS:栅极低电平导通
    • CMOS电路利用两者互补特性实现低功耗

CMOS逻辑电路实现

  1. 基本逻辑门

    • 非门:P管和N管串联,输入控制两管交替导通
    • 与非门:P管并联+N管串联
    • 或非门:P管串联+N管并联
  2. 特殊电路

    • 传输门:P管和N管并联,完美传递0和1
    • D触发器:利用传输门和反相器构建时序存储单元
  3. 时序特性

    • 建立时间:时钟变化前输入必须稳定的时间
    • 保持时间:时钟变化后输入必须保持的时间
    • Clock-to-Q时间:时钟边沿到输出稳定的延迟

CMOS电路的关键优势在于静态功耗极低,因为稳定状态下总有一端MOS管处于关闭状态。通过组合这些基本电路模块,可以构建出完整的CPU运算器和控制逻辑。

总结

从二进制表示到物理电路实现,CPU微架构设计展现了计算机科学的精妙之处。理解这些基础知识对于深入学习计算机体系结构至关重要。foxsen/archbase项目中对这些核心概念进行了系统梳理,为读者构建了完整的知识框架。后续可以在此基础上进一步探讨算术逻辑单元(ALU)、流水线等更复杂的微架构设计主题。

archbase 教科书《计算机体系结构基础》(胡伟武等,第三版)的开源版本 archbase 项目地址: https://gitcode.com/gh_mirrors/ar/archbase

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐天铭Paxton

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值