Microcode inside the Intel 8087 floating-point chip: register exchange
2 days ago
- 1980年推出的英特尔8087浮点芯片使用协处理器将浮点运算速度提升多达100倍,其浮点标准至今仍在使用。
- 8087的微码存储在大容量ROM中,执行低级微指令来实现复杂算法,如平方根和正切函数。
- FXCH指令交换栈顶寄存器与指定栈寄存器,由于需要处理空寄存器和异常情况,需要14条微指令。
- 该芯片使用八个栈寄存器和两个临时寄存器(tmpA、tmpB),每个寄存器都有标签位指示有效、特殊、零或空状态。
- FXCH的微码包括条件跳转以处理异常,例如在检测到无效操作时用NaN(非数字)替换空寄存器。
- 8087的异常系统允许屏蔽中断或触发中断,微码和硬件协作管理溢出、下溢或除零等错误。
- 逆向工程微码涉及对ROM进行高分辨率成像,使用神经网络对晶体管进行分类,并解码16位微指令。