计算机组成原理(上)
一、进制基础
- 核心原理
- 计算机本质是计数转盘+进位系统,低位满圈带动高位转动
- 任意进制真值 = 各位数值 × 进制^位数 之和
- 常用进制
- 十进制:0~9,低位满10进1
- 十六进制:0~9、A~F(10~15),低位满16进1
- 二进制:0、1,低位满2进1(计算机底层使用)
- 进制转换
十进制 → 其他进制(整数)
- 除基取余,余数倒序排列
- 转二进制:÷2;转十六进制:÷16
十进制小数 → 二进制小数
- 乘2取整,整数顺序排列
二进制 ↔ 十六进制
- 二进制转十六进制:4位一组,直接换算
- 十六进制转二进制:每位转4位二进制
- 大数转换捷径:十进制→十六进制→二进制
二、逻辑门与加法器
- 基础门电路
- 与门:全1出1,有0出0
- 或门:有1出1,全0出0
- 非门:输入取反
- 组合逻辑门
- 与非门 = 与门 + 非门
- 异或门:输入不同出1,相同出0(二进制加法核心)
- 加法器实现
- 半加器:实现2个数加法,无进位输入
- 全加器:支持低位进位,可串联为多位加法器
- 先行进位:并行计算进位,大幅降低延迟
三、负数表示(机器码)
- 四种编码方式
- 原码:最高位为符号位,其余为绝对值
- 反码:正数同原码,负数按位取反
- 补码:正数同原码,负数=反码+1(计算机通用)
- 移码:真值+偏移量,符号位与补码相反
- 核心特点
- 补码:减法可直接用加法器实现
- 原码/反码:存在±0,表示范围少1个数
- 补码/移码:表示范围对称,无±0
四、加减法器与标志位
- 加减法统一实现
- 减法 = 加上减数的补码
- 用三态门+选择器实现加减切换
- 状态标志位
- 符号位:结果最高位
- 零标志:结果为0时置1
- 溢出标志:最高位进位 XOR 次高位进位
- 进位/借位标志:加法进位/减法借位
五、算术逻辑单元(ALU)
- 支持:加、减、与、或、移位等操作
- 通过操作码选择运算类型
- 字长:一次处理的数据位数(8/16/32/64位)
- 1字节 = 8位
六、寄存器与时序逻辑
- 寄存器:D触发器构成,时钟触发存储
- 组合逻辑 → 时序逻辑:可保存中间结果
- 支撑乘法、除法等多周期运算
七、移位运算
- 逻辑移位
- 左/右移,移出位舍弃,补0
- 算术移位
- 左移 = ×2;右移 = ÷2
- 补码右移补符号位,原码/反码规则不同
八、乘法器
- 无符号乘法
- 加法 + 右移 循环实现
- 二进制:乘0得0,乘1得被乘数
- 补码乘法(布斯算法)
- 按相邻位判断,直接运算补码
- 支持负数乘法,无需转原码
- 阵列乘法器
- 空间换时间,全加器阵列并行计算
- 先行进位优化延迟
九、除法器
- 原码除法
- 符号位单独处理,数值位试商
- 恢复余数法:不够减则恢复
- 加减交替法:不恢复余数,效率更高
- 补码除法
- 符号位参与运算,够减判符号位
- 负数商按反码上商
十、定点数与浮点数
- 定点数
- 小数点位置固定
- 定点整数/定点小数
- 表示范围有限
- 浮点数(科学计数法)
- 结构:数符 + 阶码 + 尾数
- IEEE 754标准
- 32位:1位符号 + 8位移码阶码 + 23位尾数
- 尾数隐藏最高位1,提升精度
- 阶码偏移量127
十一、存储器系统
- SRAM(静态随机存储器)
- 速度快,无需刷新
- 结构复杂,成本高,用于Cache
- DRAM(动态随机存储器)
- 电容存储,需定期刷新
- 结构简单,容量大,用于主存
- 刷新方式:集中/分散/异步刷新
- 内存组织
- 位扩展:增加数据位数
- 字扩展:增加存储容量
- 高位/低位交叉编址:低位交叉效率更高
- SDRAM:同步时钟,支持突发访问
- Cache(高速缓存)
- 原理:程序局部性(时间/空间)
- 映射方式
- 直接相连:位置固定,冲突高
- 全相连:位置任意,冲突低
- 组相连:折中,常用
- 替换算法:LRU(近期最少使用)最优
- 写策略:全写法/写回法
- 存储器对齐
- 变量地址 = 字节数的整数倍
- 避免跨块,提升读取速度
- 大小端存储
- 大端:高位字节存低地址
- 小端:低位字节存低地址
十二、外部存储
- 机械硬盘(HDD)
- 结构:盘片、磁头、磁道、扇区
- 读写:寻道 → 寻扇区 → 传输
- 固态硬盘(SSD)
- 核心:浮栅晶体管
- 特点:断电保存,擦除按块进行
- 磨损均衡:动态/静态,延长寿命
十三、虚拟存储器
- 本质:虚拟地址 → 物理地址映射
- 页式虚拟存储
- 地址分:虚拟页号 + 页内地址
- 页表:记录虚拟页→物理页映射
- 快表(TLB):Cache加速页表查询
- 按需调页,提升主存利用率
十四、总结
计算机从二进制开始,用逻辑门搭建运算单元,用补码处理负数,用寄存器保存数据,用多级存储器提升速度,最终形成完整的计算系统。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Frite的个人博客!