80386 Early Start Memory Access

When Intel designed the 80386, they gave it a trick for hiding memory latency: Early Start. Instead of waiting for an instruction to reach its memory micro-op, the 386 begins the next instruction's address work — effective address, segment relocation, the bus cycle — in the last cycle of the current instruction. Intel put it at about 9% of overall performance. It is also the source of the POPAD bug.

The z386 FPGA core I released in May ran the original 386 microcode but didn't have early start. Over the last month I added it along with a series of other optimizations, and z386 now reaches ao486-class performance:

core Doom (FPS) 3DBench Landmark
z386 0.1 (May) 16.6 33.7 147
z386 0.4 (June) 23.0 44.5 170
ao486 21.0 43.8 204
添加评论
点赞收藏
点踩分享查看原文
评论
?
参与讨论