02信息表示
同一串比特按编码解释。补码、无符号和 IEEE 754 不要共用一套「溢出」说法。
整数
n 位补码范围 −2n−1~2n−1−1。加减走同一加法器;溢出是同号得异号,不是「最高位有进位」。无符号进位是另一套。
浮点
单精度 1+8+23,偏置 127,与教材里偏置 2n−1 的移码不是同一个数。规格化隐含前导 1。阶码全 0 且尾数非 0 是非规格化数。阶码上溢时,结果取决于符号与舍入方向,可能是 Inf,也可能是最大有限数。
S→EXP→FRAC→对阶 / 舍入
易错:不要写「阶码全 0 就是 0」。也不要把 6.25 的阶码 129 写成 128+2 却声称那是 IEEE 字段。
04处理器体系结构
书里的教学处理器把指令拆成 IF ID EX MEM WB 五个阶段。阶段内部才是寄存器传送级的微操作。
顺序与流水
单周期:由当前指令组合译码产生控制信号,经传播延迟后在本周期有效窗口内稳定供数据通路使用。流水线把五个阶段重叠;ALU–ALU 的 RAW 可转发,load-use 仍要停一拍。
IF→ID→EX→MEM→WB
经典按序五级中 WAR/WAW 不出现,关键是按序发射/完成、读在 ID、写在 WB 且写回按程序序。微程序实现里,一条机器指令由一串微指令完成,需逐条访问控存。
易错:加速比不等于级数。控制信号不是「整个时钟内保持不变」这句话能概括的;异常进入规定的特权上下文,原已在相应高特权级则未必再提升。
06存储层次
局部性让小而快的层有效。Cache 按块映射;命中看有效位与标记。
映射与写
直接映射每块只有一个位置,谈不上选哪一行替换。组相联/全相联组满才替换。写回/写直达是写策略,不是映射方式。换入一块叫装入或覆盖,不要把「写回」用在「把新块放进这一行」上。
AMAT = 命中时间 + 缺失率 × 缺失惩罚。TLB 未命中、Cache 未命中和缺页是三种不同层次的事件:前两者不等于缺页异常,也不要写成同一个 miss。TLB 未命中后查页表;Cache 未命中向下一级取块;合法页未驻留才缺页。
章末自测
本页:表示、机器级、处理器、存储层次。对面:异常控制流、虚存、系统 I/O、并发。不要两头重复抄同一章。
五个阶段。微操作是阶段内部的寄存器传送。add 在 MEM 阶段不访问数据存储器,只把 ALU 结果继续往后传。
不能。那是换入/装入(覆盖)。写回专指把脏块写到下一级。