80386 Memory Pipeline

Retro 386 on FPGA runs DOS and Doom — commenters debate genius, deja vu, and 4GB dreams

TLDR: A DIY 386 rebuilt on a modern chip now boots DOS and plays Doom, while explaining how old hardware sped up memory checks. The crowd splits between applause, “we knew this already” vibes, bold 4GB dreams, and pleas for an RSS feed—proof that retro tech still sparks fresh debate.

A vintage 386 CPU rebuilt on a reprogrammable chip now boots DOS, opens Norton Commander, and yes, plays Doom at 75MHz. The author’s deep dive into how the old chip sped up memory access—squeezing checks into about “1.5 clocks”—has hardware nerds swooning over microcode and pipelines in the post. But the comment section? It’s chaos, in the best way.

One camp is all heart-eyes emojis for the engineering flex, tossing roses at the idea that clever overlapping and parallel checks made a supposedly slow memory system fast. Another camp stirs the pot: user blueybingo basically asks, “didn’t we know this 20 years ago?”, invoking that classic internet mood: cool work, but not new. Meanwhile, mrlonglong goes full fantasy mode with “Voodoo mode,” dreaming of 4GB memory in old-school “real mode”—like asking a cassette player to stream Spotify. It’s wild, it’s charming, it’s peak comment section.

There’s also the retro sleuths, like rep_lodsb, flexing their decoder ring on the 80286, while an impatient chorus begs “Mr GitHub” for an RSS feed because they simply cannot hit refresh one more time. The memes wrote themselves: “Doom runs on everything” jokes, “1.5 clocks” becoming “1.5 claps,” and a friendly skirmish between nostalgia, nitpicking, and big-brain tinkering. Internet, never change.

Key Points

  • An FPGA-based 80386-compatible core runs DOS, Norton Commander, and Doom at 75 MHz on a DE10-Nano board.
  • The article analyzes the 80386 memory access pipeline, focusing on efficient address translation, microcode control, and RTL timing.
  • Intel’s 1986 paper by Jim Slager reports a ~1.5-clock common-case address path; the 80386 achieves this via overlap, pipelining, and parallelism.
  • Microcode uses RD/WR to initiate memory transfers and DLY to wait, so a fast dedicated address path is essential to avoid stalls.
  • Segmentation is always active (protected and real modes); in protected mode, segment bases are fetched from GDT/LDT as part of translation.

Hottest takes

"Voodoo mode is the ultimate test" — mrlonglong
"wasn't this basically the consensus among numerical analysts like 20 years ago?" — blueybingo
"How hard would it be for Mr Github to add rss/atom feeds" — andyjohnson0
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.