Optimizing open-source FPGA 80386 for performance gains

whiteblossom1 pts0 comments

Performance Improvements For Open-Source 80386 | Hackaday

Skip to content

The Intel 80386 is a rather fascinating slice of computer history. It marked the first 32 bit X86 processor, and was a staple of early desktop computing. Like all chips, it has a number of quirks, one of which being the fact that all commands are executed in microcode. By this nature, it was a rather excellent prospect to be re-implemented in an FPGA core called the z386. However, it was lacking a feature native to the original 386, early start memory access. If you haven’t been c, [nand2mario] went forth to fully implement this feature for FPGA 80386s.

Instead of taking a cycle to find and allocate the memory required for executing the next instruction, the 386 would start this in the previous cycle. This is achieved in hardware by nature of having a separate memory management unit. In the FPGA, the key difficulty proved to be in getting the computation fast enough to execute within a single cycle. This change netted an approximate 9% performance benefit. However, for [nand2mario] this was too small a performance uplift.

Some rewrites of the store cue allowed for cutting a cycle out of the process further improving the performance. However, more performance required slight deviations from the design of the original 386. Because code-branches are performance critical, the z386 project now computes the branch memory jump several cycles earlier than the 386, reducing the cycle time for the jumps from 9.25 to a mere 6. Some final changes to the microcode decode frontend rounded out the optimizations covered in this latest blog post.

The net result is an approximate 39% increase in performance in the all important DOOM benchmark. The z386 still not a complete project, the performance is still lacking compared to the 386, and it remains unable to boot Windows. X86 is complicated, which will take time, so make sure to stay tuned for more coverage! While you wait, make sure to check out our original writeup of the z386 project.

Pauli Rautakorpi, CC BY 3.0.

One thought on “Performance Improvements For Open-Source 80386”

" If you haven’t been c," I challenge you to name someone who has. It’s not just the Comments that need and Edit button.

Report comment

Reply

Leave a ReplyCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)<br>This site uses Akismet to reduce spam. Learn how your comment data is processed.

Search

Search for:

Never miss a hack

Follow on facebook<br>Follow on twitter<br>Follow on youtube<br>Follow on rss<br>Contact us

Subscribe

If you missed it

Ultra-Long Range Flights To Ease Australian Air Travel

30 Comments

Know Your Food: Organic Production

32 Comments

UDP Broadcasting And Easily Finding Network Services

21 Comments

How Airspeed Sensors Work

28 Comments

The Teenage Angst Of 3D Printing: Solidoodle, Printrbot, And Bridges

40 Comments

More from this category

Our Columns

Hackaday Europe 2026: Is Your Blood Pressure Monitor Lying To You?

17 Comments

Hackaday Links: July 5, 2026

7 Comments

Yesterday’s Technology, Re-engineered Today

12 Comments

Hackaday Podcast Episode 376: Modern Retro Projects, Retro Modern Projects, And The Teen Years For 3D Printing

2 Comments

This Week In Security: Windows 10 Gets Another Year, SmartTV Botnets, Hiding Payloads, And LastPass Customer Leak

6 Comments

More from this category

Search

Search for:

Never miss a hack

Follow on facebook<br>Follow on twitter<br>Follow on youtube<br>Follow on rss<br>Contact us<br>Subscribe

If you missed it

Ultra-Long Range Flights To Ease Australian Air Travel

30 Comments

Know Your Food: Organic Production

32 Comments

UDP Broadcasting And Easily Finding Network Services

21 Comments

How Airspeed Sensors Work

28 Comments

The Teenage Angst Of 3D Printing: Solidoodle, Printrbot, And Bridges

40 Comments

More from this category<br>Categories<br>Categories<br>Select Category<br>3d Printer hacks<br>Android Hacks<br>Arduino Hacks<br>ARM<br>Art<br>Artificial Intelligence<br>Ask Hackaday<br>ATtiny Hacks<br>Battery Hacks<br>Beer Hacks<br>Biography<br>blackberry hacks<br>Business<br>car hacks<br>Cellphone Hacks<br>chemistry hacks<br>classic hacks<br>clock hacks<br>cnc hacks<br>computer hacks<br>cons<br>contests<br>cooking hacks<br>Crowd Funding<br>Curated<br>Current Events<br>Cyberdecks<br>digital audio hacks<br>digital cameras hacks<br>downloads hacks<br>drone hacks<br>Engine Hacks<br>Engineering<br>Fail of the Week<br>Featured<br>Fiction<br>firefox hacks<br>FPGA<br>g1 hacks<br>Games<br>google hacks<br>gps hacks<br>green hacks<br>Hackaday Columns<br>Hackaday links<br>Hackaday Store<br>Hackerspaces<br>HackIt<br>handhelds hacks<br>hardware<br>High Voltage<br>History<br>Holiday Hacks<br>home entertainment hacks<br>home hacks<br>how-to<br>Interest<br>internet hacks<br>Interviews<br>iphone hacks<br>ipod hacks<br>Kindle hacks<br>Kinect hacks<br>laptops hacks<br>Laser Hacks<br>LED Hacks<br>Lifehacks<br>Linux Hacks<br>lockpicking hacks<br>Mac Hacks<br>Machine Learning<br>Major Tom<br>Medical Hacks<br>Microcontrollers<br>Misc Hacks<br>Multitouch Hacks<br>Musical Hacks<br>Netbook Hacks<br>Network Hacks<br>News<br>Nintendo DS Hacks<br>Nintendo Game...

hacks comments performance hackaday follow fpga

Related Articles