文章摘要
z386是一款基于英特尔原始微码的开源80386处理器FPGA实现,能够运行DOS系统和保护模式程序,性能接近70MHz的386或低端486。其代码量和资源占用优于ao486,时钟频率达85MHz,可流畅运行《毁灭战士》等游戏。该项目旨在通过还原硬件架构来支持原始控制ROM运行。
文章总结
标题:z386:基于原始微码的开源80386处理器
核心内容概述: 1. 项目背景 - z386是基于英特尔原始微码构建的386级CPU开源项目 - 已实现运行真实软件的能力,包括DOS 6/7、DOS/4GW等保护模式程序 - 性能表现相当于约70MHz带缓存的386或低端486
- 技术架构
- 采用8大功能单元设计,与原始386架构高度一致:
- 预取单元(16字节代码队列)
- 解码器(双PLA结构解码)
- 微码序列器(2560条37位宽微指令)
- ALU与移位器
- 分段单元
- 保护单元
- 分页单元(32项TLB)
- 总线接口单元
- 关键技术
- 16KB 4路组相联VIPT缓存设计
- 微码执行采用双周期最小流水线
- 保护模式PLA验证机制
- 支持实模式/保护模式/VM86模式切换
- 测试验证
- 开发了实模式/保护模式单步测试套件
- 通过SeaBIOS、FreeDOS等系统级测试
- 支持《毁灭战士》等经典游戏运行
- 项目意义
- 验证了基于原始微码重建历史处理器的可行性
- 揭示了386架构在x86演进中的关键地位
- 为计算机架构考古提供了实践案例
当前状态: - 已在Cyclone V等多款FPGA平台实现 - 运行频率达85MHz - 3D性能达到原装机70%水平
(注:原文中约30%的调试细节和技术参数对比表格等内容因与核心主题关联较弱,在概述中进行了适当精简)
评论总结
以下是评论内容的总结:
关于微码分析的疑问
- 主要观点:询问是否发现无需开盖就能读取微码的后门方法
- 引用:
"Did the microcode disassembly find any useful backdoors to read microcode without decapping?"
("微码反汇编是否发现了无需开盖就能读取微码的有用后门?")
386处理器的实际应用
- 主要观点:讨论386处理器是否仍在某些特定场景中使用
- 引用:
"Are there today any 386 instances running somewhere in the basement to do some productive stuff?"
("现在还有386实例在地下室运行并处理某些生产性任务吗?")
"Around 98/99... it was still in use while we had already ethernet/USB/3.5 floppies etc."
("大约在98/99年...它仍在使用,而我们已经有了以太网/USB/3.5软盘等")
FPGA实现的规模
- 主要观点:对仅需18K LUTs的FPGA实现表示惊讶
- 引用:
"Kind of surprised this only takes 18K LUTs. That's a fairly small FPGA these days."
("有点惊讶这只需要18K LUTs。这在当今是一个相当小的FPGA。")
相关技术讨论
- 主要观点:提及386处理器运行Linux和Doom的可能性
- 引用:
"Of course they tested Doom :-D"
("当然他们测试了Doom :-D")
"They might also run Linux kernel 3.7, that supported i386."
("他们可能还运行支持i386的Linux内核3.7。")