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 |
评论
?
参与讨论