Folia
← 返回头版

Intel 8087浮点芯片中FSCALE指令的微代码实现获深入分析

Opcode Collective团队通过高分辨率显微镜成像和微代码逆向工程,详细揭示了Intel 8087浮点协处理器芯片中FSCALE指令的复杂实现方式。1虽然该指令的功能相对简洁——将浮点数按2的N次方进行缩放,但其微代码实现却出人意料地复杂,采用超过140条微指令和三级子程序调用来处理零值、特殊值、溢出和下溢等多种边界条件。1

8087采用80位浮点格式,由1位符号位、15位指数和64位尾数组成,指数偏差为16383,范围从-16382到16383。1芯片内部数据路径分为16位指数路径和64位尾数路径两部分。1FSCALE指令在处理常规情况时需要约22条微指令执行。1整个8087微代码ROM包含1648条微指令,用以控制芯片的各项操作。1此外,8087支持四种舍入模式:向最近有效值舍入、向-∞舍入、向+∞舍入和向零舍入。1


评论