一、数据的表示格式与机器码数据分数值型定点、浮点与非数值型字符、汉字。机器字长、存储字长、数据通路宽度三者可以不等。定点数的小数点隐含固定、不占存储位8 位补码整数范围是 -128~127比原码多一个数原因是补码中 ±0 合并为同一编码省出的编码给了 -128。浮点数按表示尾数定精度、阶码定范围、基数恒为 2 不存储。常见设计是阶码用移码保持单调性可直接按无符号数比较便于对阶、尾数用补码便于加减。规格化要求尾数最高数值位与符号位不同不满足则左规尾数溢出则右规。IEEE 754 单精度为 1 符号8 阶码23 尾数真值双精度 11152、偏置 1023规格化数尾数最高位的 1 不存储。阶码全 1 且尾数全 0 为 ±∞尾数非 0 为 NaN阶码全 0 且尾数非 0 为非规格化数。浮点范围宽但无法精确表示 0.1财务计算须用定点。正数的原码、反码、补码完全相同负数反码是数值位取反补码是反码末位加 1移码是补码符号位取反由补码反推原码是符号位不变、数值位取反加 1。补码的本质是模 2ⁿ 运算相当于把数轴首尾接成圆环故减法可化为加法、符号位可直接参与运算、零的表示唯一、溢出易检测——这是它成为标准的四个理由。第二篇 汉字的表示和编码汉字量大且为二维字形须用 2 字节以上。四种编码分工输入码面向人、方式多样不唯一需码表映射国标码用于系统间交换机内码是机内实际存储处理的编码字形码描述视觉形状。GB2312 用 94 区×94 位收 6763 汉字与 682 符号一级汉字 3755 个按拼音排16—55 区二级 3008 个按部首笔画排56—87 区。转换链区位码十进制先转十六进制加 2020H 得国标码避开 ASCII 控制字符区再加 8080H 得机内码两字节最高位置 1与最高位恒为 0 的 ASCII 区分消除歧义一步公式为区位码十六进制加 A0A0H。国标码最高位为 0机内码为 1。点阵字模占用字节 行×列/816×16 为 32 字节、24×24 为 72、32×32 为 128缺点是放大失真、每种字号需单独存。矢量字模用曲线方程描述轮廓任意缩放不失真、一套数据支持所有字号但需实时计算。后续 GBK 收 21003 字GB18030 用单双四字节变长并兼容 UnicodeUTF-8 中汉字通常占 3 字节。第三篇 校验码数据会因电磁干扰、器件老化、宇宙射线软错误、信道噪声发生位翻转校验码用冗余位换可靠性。最小码距 d 决定能力检 e 位错需纠 t 位错需 d≥2t1以各合法码字为心、t 为半径画球球不重叠才能唯一判定归属同时纠 t 检 e 需 d≥te1。码率 有效信息位/总长。奇偶校验只加 1 位d2仅检奇数位错、不能纠错偶数位同时出错完全漏检二维校验行列同做可纠 1 位但矩形四角错漏检。海明码用多个校验位交叉覆盖d3 可纠 1 检 1校验位数由定4 位信息需 3 位、8 位需 4 位校验位须放在位号为 2 的幂次处P_i 校验所有位号二进制第 i 位为 1 的位校验子的二进制值直接等于出错位号取反即纠正。再加一位全校验位使 d4成 SEC-DED纠 1 检 2是服务器内存 ECC 的基础。CRC 不纠错但检错极强用模 2 除法不进位借位加减皆等于异或信息位后补 r 个 0r 是生成多项式最高次幂不是位数除以 G 得 r 位余数发送信息位拼余数接收端再除余数为 0 即无错能检出全部单双比特错和长度 ≤r 的突发错。硬件用线性反馈移位寄存器实现只需移位与异或故广泛用于磁盘、以太网、ZIP、PNG。四、补码加减法与溢出检测[xy]补 [x]补 [y]补 (mod 2ⁿ)符号位与数值位一同运算最高位进位直接丢弃。[x-y]补 [x]补 [-y]补求 [-y]补 须对 [y]补连同符号位取反加 1只取反数值位是常见错误故硬件只需一套加法器。溢出指结果超出表示范围本质是在补码圆环上走过头绕到对面。只有同号相加或异号相减才可能溢出正加负绝不溢出。溢出不同于进位溢出针对有符号数、标志 OF、是错误进位针对无符号数、标志 CF、是正常现象同一串二进制按两种解释结论可能相反故 CPU 须设两个独立标志。检测方法一是进位异或法 VC₀⊕C₁C₀ 为符号位产生的进位、C₁ 为最高数值位向符号位的进位相同无溢出、不同则溢出。方法二是双符号位法变形补码、模 4 补码正数写 00、负数写 11运算后 00 为正无溢出、11 为负无溢出、01 正溢出、10 负溢出口诀相同无溢出、不同有溢出VS₁⊕S₂。此法只需扩一位加一个异或门判断直观且能区分方向考试首选。五、行波进位加法器全加器有三输入 Aᵢ、Bᵢ、Cᵢ₋₁ 与两输出 Sᵢ、Cᵢ比半加器多一个低位进位。SᵢAᵢ⊕Bᵢ⊕Cᵢ₋₁CᵢAᵢBᵢ(Aᵢ⊕Bᵢ)Cᵢ₋₁前项是本位自己生成进位后项是把低位进位向上传递。令 GᵢAᵢBᵢ、PᵢAᵢ⊕Bᵢ则 SᵢPᵢ⊕Cᵢ₋₁、CᵢGᵢPᵢCᵢ₋₁。行波进位加法器把 n 个全加器串联进位像水波逐级传递故又称串行进位。单个全加器进位延迟约 2 级门n 位总延迟约 2nt即 O(n)32 位需约 64 级门严重限制主频。优点是结构简单、面积小、成本低、易扩展。用加法器实现减法只需两处改动每个 B 输入前接异或门另一端接控制信号 M利用 B⊕0B、B⊕1B̄ 实现取反同时把最低位进位输入 C₋₁ 接到 MM1 时自动加 1。故 M0 做加法、M1 做减法n 个异或门就省掉了整个减法器。运算器还输出 Z零、N符号、V有符号溢出、C无符号进位四个标志送入 PSW作为条件转移指令的判断依据。六、先行进位加法器CLA瓶颈在 CᵢGᵢPᵢCᵢ₋₁ 的递推依赖。先行进位把递推式完全展开消去中间进位使每个 Cᵢ 只依赖 G、P 与初始进位 C₋₁G、P 只由 A、B 决定可并行算出于是所有进位同时得到。4 位展开后 C₃G₃P₃G₂P₃P₂G₁P₃P₂P₁G₀P₃P₂P₁P₀C₋₁进位延迟约 3 级门且与位数无关比行波的 8t 快约 2.3 倍。为便于级联定义组内生成函数 G*G₃P₃G₂P₃P₂G₁P₃P₂P₁G₀ 与组内传递函数 P*P₃P₂P₁P₀则 C₄G*P*C₋₁形式与单级完全相同故可把一组 4 位当作一个大位再做一次先行进位——这是多级分组的理论基础。直接把 32 位展开会有 32 项、最长项需 32 输入与门超出门电路扇入限制而无法实现故必须分组组内先行、组间也先行。16 位分 4 组×4 位两级延迟约 5~8t行波约 32t32 位分 8 组两级约 6t行波约 64t加速超 10 倍64 位可三级分组约 7~8t。位数增 16 倍延迟只增 2 倍多即 O(log n)。经典芯片是 74LS1814 位 ALU与 74LS182先行进位发生器。取舍是行波用时间换面积、CLA 用面积换时间。现代 CPU 多用前缀加法器Kogge-Stone、Brent-Kung、Han-Carlson核心是逐级合并 (G,P) 对与 CLA 同源多操作数连加则用进位保留加法器 CSA。七、总结本章从数据表示讲到运算实现。前两篇解决编码问题补码凭模运算特性成为机器码标准IEEE 754 统一了浮点数格式汉字须经输入码、国标码、机内码、字形码四重转换奇偶、海明、CRC 三种校验码以冗余换可靠性码距决定检错纠错能力。后三篇解决运算问题补码把减法化为加法溢出只在同号相加时发生双符号位法判断最直观行波进位结构简单但延迟随位数线性增长先行进位借 G、P 函数并行生成进位把延迟压到对数级。学完这一章才算真正看见了 CPU 内部。 SEO 优化官网定制响应式建站教育培训建站