Hasty Briefsbeta

Z8086: Rebuilding the 8086 from Original Microcode

9 hours ago
  • #x86
  • #microcode
  • #FPGA
  • z8086是一个使用原始英特尔微代码重建8086/8088核心的项目
  • 该核心通过加载恢复的512x21 ROM来重建微架构,避免了手动编码指令
  • z8086具有FPGA友好特性,采用单时钟域运行,在60MHz时钟频率下约消耗2500个LUT
  • 研究8086主要因其基础性x86特性,如分段寻址和ModR/M机制
  • 逆向工程资源(如Ken Shirriff的博客和Andrew Jenner的微代码反汇编)实现了高度还原
  • 项目核心目标包括精确性、教育价值及FPGA项目的实用性
  • 8086流水线包含预取队列、加载器、微码序列器及EU/BIU数据通路
  • 相比6502和68000等CPU,8086微码能以更少晶体管高效处理复杂CISC指令集
  • 实施过程中修正了原始8086专利中FC/SC公式的若干差异
  • z8086精确复现了8086原始中断漏洞(影响MOV SS/POP SS指令)
  • 预取队列的8位总线设计形成性能瓶颈,该问题在386等后续CPU中得到改进
  • 未来计划包括更多FPGA测试、启动DOS系统,以及可能通过WebAssembly编译实现浏览器可视化