Hackers brengen zelf microcode van Intel i386-processor in kaart

Een groep hackers heeft de volledige microcode van de Intel i386 in kaart gebracht. Dat deden ze op basis van beelden van de die van de processor, op dezelfde manier als waarop de hackers eerder de microcode van de 8086 wisten te achterhalen.

Hacker Andrew Jenner beschrijft op zijn blog hoe hij samen met een andere groep programmeurs de microcode van de i386, die ooit de Intel 80386 heette, wist te achterhalen. De 80386 kwam in 1985 uit als de eerste 32bit-processor van Intel. Jenner heeft al die microcode in een GitHub-repo gezet. Jenner doet dit niet voor het eerst; in 2023 bracht hij ook al de microcode van de nog oudere 8086 in kaart.

De i386 had echter heel wat meer voeten in de aarde, schrijft Jenner. Zo is de rom 94.720 bits in tegenstelling tot de 10.752 bits van de 8086. Dat maakt het 'extreem vervelend' om de hele codearchitectuur in kaart te brengen.

Maar belangrijker is dat Jenner helemaal geen informatie over de chip had. Bij het samenstellen van de 8086-microcode kon hij uitgaan van een patent, maar dat was er niet voor de 80386. Hij en een paar vrienden kregen het toen voor elkaar om met 'verschillende delen beeldverwerking, neurale netwerken en mensgestuurde automatisering' een binary blob uit een afbeelding van de die van de 80386 te halen.

Het grootste deel van het werk zat in het uitzoeken hoe de accelerators werkten. In de 8086 werden veel rekencycli door algoritmes aangestuurd, maar de 80386 gebruikt veel meer transistors die Jenner in kaart moest brengen. "Het zoeken hoe de interfaces tussen de accelerators, zoals de hardware om te vermenigvuldigen en te delen en de barrel shifter, was veel werk", schrijft hij.

Op de GitHub-pagina van Jenner staat meer informatie over hoe de microcode is opgesteld, maar andere hackers hebben inmiddels ook eigen blogposts geschreven waarin ze uitleggen hoe bijvoorbeeld de geheugenpipeline in de processor werkt.

Intel i386

Door Tijs Hofmans

Nieuwscoördinator

24-05-2026 • 13:37

116

Submitter: Radiant

Reacties (116)

Sorteer op:

Weergave:

De 80386 kwam in 1985 uit als de eerste 32bit-processor van Intel
Dit verdient wel een kleine nuance. Intern waren alle 80386's inderdaad 32-bits, maar extern was alleen de 80386DX 32-bits, de goedkopere 80386SX had namelijk 'slechts' een 16-bits databus om de prijs te drukken. Deze was vooral voor lower-end PC's bedoeld, de duurdere DX richtte zich meer op het high end segment.

Door die smallere databus kon de 80386SX maar 16 MB RAM adresseren (wat in die tijd overigens meer dan voldoende was). De 80386DX kon theoretisch tot 4 GB aansturen (wat in die tijd een absurde hoeveelheid was die je eigenlijk nooit tegen kwam).

Om die reden waren ook de optionele co-processoren anders, de 80387 werkte ook alleen maar met de 80386DX. Had je een 80386SX, moest je specifiek de 80387SX coprocessor hebben.
De SX werd veel later dan de DX gelanceerd, dus tekst artikel is correct.

Kan de Intel release data zo snel niet vinden, maar op Wikipedia staan wel systeem release data:

"The first PC based on the Intel 80386 was the Compaq Deskpro 386, introduced in September 1986"

"The first computer system sold with the 386SX was the Compaq Deskpro 386S, released in July 1988"

Komt iig overeen met mijn herinnering.
wow, nostalgie. Ik kan mijn nog herinneren dat ik povray draaide op de compaq van 'de baas' (sterrekundige) met copro. 24 uur voor 1 plaatje 1024x768
en nu renderen we 60 van die plaatjes per seconde op 4K ofzo...
bizar hè, maar wel relatief. Op dit moment draai ik analyses die 3-9 dagen nemen op een HPC node (192 cores, 384 GB geheugen) en nog krijg ik af en toe 'out of memory' errors. Ik zo'n kleine 800 van dat soort analyses nog liggen. En zelfs dat is nog peanuts vergeleken bij allerlei natuurkundige analyses
Wat voor analyses doe je even uit interesse en beeldvorming?
ik denk dat je er nog wel veel meer per seconde kan maken. Di plaatjes van vroeger met POV warden nog wel redelijk simpel.
Of 3 uur muziek opnemen van de radio in WAV waarbij een deel van de HDD vol liep en achteraf converteren naar mp3 .... dat ook 3 uur of langer duurde. 😆
De breedte van een databus heeft niets te maken met het kunnen aanspreken van een bepaalde hoeveelheid geheugen.

Zowel de 386SX als DX konden theoretisch 4 GB aanspreken. Beiden hadden namelijk intern een 32 bit adresbus.

Dat de DX een 32 bit databus had, betekent alleen dat hij sneller data kan uitwisselen.

De SX werd door Intel met een externe adresbus van 24 bit uitgebracht (goedkopere moederborden) waardoor het daadwerkelijk maximum fysiek geheugen op 16 MB ligt. Bij de DX was dat de volledige 32 bit adresbus.
Het gaat inderdaad niet om de databus maar om de adresbus die bepaald hoeveel geheugen er geadresseerd kan worden. Intern werken beiden met dezelfde adresbereik maar als er geen lijntjes naar buiten gaan kan je er niets mee. Minder datalijnen betekend nog steeds intern met dezelfde aantal databits rekenen maar het uit het geheugen of IO lezen moet in twee keer, één keer de lage en één keer de hoge 16 bits.
De 386 had nog een andere belangrijke vernieuwing die je hier vergeet. Dat is de ring-architectuur. Het OS kon in ring 0 draaien en zo virtueel geheugen mogelijk maken. Die 32 bits address space was dus zeker relevant. Ook al had je 16 MB RAM, virtueel kon je veel meer hebben.
Die "ring-architectuur" heet Protected Mode, en die is geïntroduceerd in de 80286, niet de 80386 ;)
[...]


Dit verdient wel een kleine nuance. Intern waren alle 80386's inderdaad 32-bits, maar extern was alleen de 80386DX 32-bits, de goedkopere 80386SX had namelijk 'slechts' een 16-bits databus om de prijs te drukken. Deze was vooral voor lower-end PC's bedoeld, de duurdere DX richtte zich meer op het high end segment.

Door die smallere databus kon de 80386SX maar 16 MB RAM adresseren (wat in die tijd overigens meer dan voldoende was). De 80386DX kon theoretisch tot 4 GB aansturen (wat in die tijd een absurde hoeveelheid was die je eigenlijk nooit tegen kwam).

Om die reden waren ook de optionele co-processoren anders, de 80387 werkte ook alleen maar met de 80386DX. Had je een 80386SX, moest je specifiek de 80387SX coprocessor hebben.
De databus was inderdaad 16 bit, maar 2^16 is slechts 64K. De reden dat de 386SX slechts 16MB kon addresseren is omdat de 386SX een 24bits databus had. (en 2^24 is inderdaad de welbekende 16 miljoen)

Dus de 386SX was op 2 punten de goedkopere uitvoering van de DX; de DX had zowel een 32bit adresbus als een 32bits databus.
Van die SX had ik destijds snel spijt toen ik doom ging spelen. Dat liep op de DX van een vriend een stuk beter. Maar ik vond het toen veel te duur om van mijn krantenwijkje te bekostigen.
Toen de 486 uit kwam behelste SX iets anders. In plaats van een kleinere databus miste de 486SX een coprocessor die in de DX wel aanwezig was. Weer trapte ik in de val. Een coprocessor vond ik niet nodig. Toen kwam Quake.
Dan kan ik je nu geruststellen: ik had een 486dx2-66 en daarop was Quake ook niet lekker speelbaar. Je had eigenlijk een Pentium nodig. Wat je wil gemist hebt uit de 486dx generatie is denk ik is de Second Reality demo. Of draaide dat ook op je je SX?

Quake begon pas echt voor mij bij Quake 2 op een Pentium II. En op de 486 was het vooral frustratie. Naast dat ik het omhoog moeten kijken en richten maar onhandig vond 😄
De pentium was toch die CPU die, weliswaar zeldzame, fouten maakte bij floating point berekeningen?

Wikipedia: Pentium FDIV bug
Dat was onder andere de 90 mhz versie van de Pentium die getroffen was.
Ik had toen een 90 mhz Pentium tower van Escom, ik kon mijn tower inleveren op een middag en de volgende morgen weer ophalen met een goed werkende Chip erin.
Uiteraard meteen een check programmaatje gedraaid.
Nou volgens mij waren dat alleen de (5V (!))60MHz en 66MHz Pentiums.

De Pentiums daarna hedden er geen last meer van.
Klop deze dat in de vroeg 60 en 66 Mhz versies, Er is zelfs een omruilactie voor geweest meen ik me te herinneren. Het werd ook wel de div bug genoemd.
Het zat zeker ook in de 90Mhz versie.

Ik heb destijds bij de omruil een nieuwe van Intel gekregen.
Het ondekt met de 60 en de 66 Mhz,


Maar hier staan de werkelijk getroffen pentium CPU's https://dfarq.homeip.net/the-pentium-fdiv-bug-and-recall/
Ja klopt, maar volgens mij voornamelijk de pentium 90MHz.
Quake begon bij mij op een 100mhz Pentium clone van Cyrix. Was een gekke tijd.
Ahhh Cyrix....dat waren nog eens tijden ! Ik had een 486SLC op 50Mhz. Cyrix was mooi omdat zij de mensen op Budget bedienden, en daarmee het hele speelveld competief maakten.
De 486SLC was een 386SX met 486 instructieset. De 486DLC was een 386DX met 486 instructieset. Beide inferieur tov de echte 486 van Intel en AMD.
Ik plaatste daarna een 486DX2-66 en daarna nog een 486DX4-120. Maar de beste upgrade voor Quake was uiteraard de voodoo 3dfx. Maar ik weer niet meer of dat nog in de 486 was of in de pentium 150 die ik daarna via een pc prive project via het werk verkreeg.
Dat waren nog tijden waarin de pc verouderd was als je ermee de winkel uit liep.
Een 3dfx kaart was volgens mij PCI wat vrij ongewoon was op een 486 moederbord. In de overgangstijd waren ze er wel, maar meestal waren de 486 moederborden nog vesalocalbus maximaal en vanaf Pentium werd PCI normaal. Ook zou een 3dfx op een 486 aardig beperkt worden door die 486.
Ik herinner me nog een upgrade bijbaan via Randstad waar er 486 vervangen werden door Pentiums, 386 kregen vervolgens die 486 na een opschoonbeurt en de 386 werden opgestapeld. "Mag ik wat geheugen hebben voor thuis? Tuurlijk, maar neem niet alles mee he?" De IT draaide zelf Pentium Pro's op 200Mhz en ik stond totaal begeistert aan de grond genageld van die power.
Second Reality draaide ook op mijn 386DX, het was een van de eerste programma's die ik draaide toen ik een geluidskaart had gekocht.

Nog leuker is dat ie ook voor de C64 gemaakt is.
Maar draaide dat ook nog een beetje soepel dan met alle geluid erbij?
Voor zover ik me kan herinneren wel
Daar had je de Voodoo voor (als je een 486 mobo met PCI had natuurlijk)
Die Penitum 2's waren toen wel lekker te overclocken...
Doom op een 386 en dat liep ok? Dat lijkt me best sterk. In die tijd hadden wij thuis een 386DX (25 als ik het me goed herinner), maar daar draaide Wolfenstein niet eens echt lekker op. Doom op een 386 kan ik me niet eens voorstellen :P

Edit: nm het was waarschijnlijk een SX ipv DX, vandaar I guess.

[Reactie gewijzigd door Snowdog op 24 mei 2026 16:58]

Dat liep opzich wel als je de viewport een tandje kleiner maakte. Wolfenstein was echt geen probleem op een SX.
Hmm, vreemd, in mijn herinneringen liep Wolfenstein echt vrij bagger zonder het scherm een stuk kleiner te maken. Had dat in eerste instantie niet eens door tot ik het ooit bij een vriendje op een snellere PC speelde en het daar allemaal een stuk vloeiender liep. Na wat nader gegoogled te hebben gok ik overigens dat hjet een 386SX was ipv DX. Dacht dat die turbo mode alleen op de DX-modellen zat, maar dat was blijkbaar zowel SX en DX.
Als bv de videokaart in het verkeerde slot zat of bv de jumpers verkeerd stonden kon de performance dus ook flink minder zijn. Ik had ooit een tweedehands 386DX en kreeg een 486DX +moederbord kado als vervanging. Verwachtend dat dit toch beter zou zijn had ik dus al de jumpers van het 386DX moederbord opnieuw gebruikt, maar van beide moederborden was er dus geen handleiding beschikbaar. (ook niet online) Enfin dat betekende dus dat ik flink in performance inboette met verder dezelfde hardware. Dat ik bv de ISA videokaart op het achterste slot kon zetten wist ik ook niet. Na een jaar of 12 Atari ST was ik een complete leek in het PC wereldje. Gelukkig vrij vlot daarna van iemand een P233MMX (die ik als P225MMX draaide) inclusief moederbord gekregen.
Oh, de tijd van de fysieke jumpers en dipswitches op het moederbord.
Dit soort moederborden met lang verdwenen en vergeten producenten hadden meestal geen dipswitches als ik me het goed herinner. Pinnetjes + jumpers was uiteraard goedkoper. Dipswitches waren meestal de XT-AT tijd denk ik?
Ik kan me herinneren dat het moederbord van mijn Commodore PC 60 III, 386 DX dipswitches had om o.a. de onboard videokaart uit te schakelen.
Commodore is dan ook nog niet vergeten. Er staat zelfs nog van alles over dit moederbord van Chips online. Incluis bios
https://theretroweb.com/motherboards/s/commodore-pc-60-iii
(En ik moet ook bekennen dat dus de kennis over PC moederborden uit die tijd niet erg groot was. Dipswitches herinner ik me dus vooral kaarten (vaak bv op videokaarten) bedoeld voor de XT en AT computers, maar dat zegt dus niet zo veel)

[Reactie gewijzigd door AtariXLfanboy op 25 mei 2026 10:58]

Geeft toch niet, het was wel een bizar groot moederbord in een behuizing die als een tank was gebouwd.
Ik vond het idd al een groot moederbord toen ik het moederbord op de plaatjes zag. Ook wel erg veel ISA slots terwijl er voor die tijd best al wel veel IO op het moederbord zelf zat waaronder inderdaad een onboard videokaart.
en turbo knoppen op de kast. Die op de pc thuis was verkeerd aangesloten, pas na een half jaar erachter gekomen dat onze 386SX25 de hele tijd op 16MHz draaide.
Het was in die tijd dan ook niet altijd makkelijk omdat soort info te krijgen. Daar waren wel (shareware)systeemtooltjes voor. Meestal waren de tijdschriften dan heel nuttig voor informatie. Het heeft best wel een tijd geduurd dat bv Tweakers zulke goede informatie gaf zoals bv C'T had. Tom's hardware was een van de eerste bronnen waar ik online informatie vandaan haalde. Maar dat was natuurlijk ver na de 386 natuurlijk.
Als bv de videokaart in het verkeerde slot zat of bv de jumpers verkeerd stonden kon de performance dus ook flink minder zijn.
Of gewoon een vage videokaart met traag VRAM. De verschillen waren in die tijd vrij groot en er was nog geen internet met reviews waar games werden vergeleken inclusief fps. Heb ooit een Tseng Labs ET3000 door een ET4000 vervangen en ondanks dat DOS games in die tijd volledig in software werden gerenderd gaf dat een aanzienlijke snelheidsverbetering vanwege het snellere geheugen.
In mijn geval ging de Diamond Speedstar videokaart (dus ook ET4000) mee over dus daar kon de performance drop niet door komen. Maar zeker beter geheugen op de videokaart kon ook een flink verschil maken. Zo gauw er in bv windows wel wat hardware acceleratie was dan was de slome ISA bus (DMA ca 400Kb/s) minder een probleem.

[Reactie gewijzigd door AtariXLfanboy op 24 mei 2026 21:41]

Zo sloom is de ISA bus ook weer niet, afhankelijk van breedte tussen de 8 en 16Mb per seconde wat meer dan genoeg is om low-resolutie VGA op 60fps te updaten (64Kb per scherm). De beperking zit volgens mij vooral bij de snelheid waarmee de CPU data aan kan leveren en de snelheid van het VRAM.

DMA werd volgens mij vrij weinig gebruikt voor video, meer voor trage devices als disks en geluidskaarten die onafhankelijk van de CPU met een heel regelmatig tempo data uit het geheugen moesten halen. Videogeheugen werd doorgaans direct door de CPU geschreven (evt naar een dubbele buffer om frames te kunnen wisselen zonder tearing).
Aha ik vond het ook al wat weinig. Bedankt voor de uitleg! Waar dus bij andere soorten computers DMA nogal eens snelheidwinst oplevert tov het sturen via de cpu is dat dus niet zo bij de x86 vandaar de vergissing want ik had naar de DMA snelheid van ISA gekeken. Dubbel buffers zijn ervoor om het daadwerkelijk schrijven naar het schermgeheugen te verstoppen achter een inmiddels getekend schern,
DMA zou best snelheidswinst opgeleverd kunnen hebben, maar niet op de manier waarop dit op de ISA bus geïmplementeerd is. Op modernere bus systemen zoals PCI is de snelheid gewoon in orde.

Dubbel bufferen is een mogelijke oplossing voor het scherm update probleem, veel antieke PC games gebruikten allerlei trucs om de hoeveelheid data die verstuurd moest worden te verminderen. Grote statische borders om het spelscherm, alleen bewegende sprites updaten, geen scrolling maar van scherm naar scherm lopen. Het was vooral indrukwekkend om te zien welke oplossingen voor bepaalde problemen gevonden werden ;)
Het ging hier specifiek over de performanceverlies die ik kreeg met een ISA Videokaart overzetten van een 386 naar een 486. Met PCI was uiteraard veel meer mogelijk en daarbij was de AGP een welkome aanvulling. Zelfs met PCI videokaart kon ander dataverkeer over de PCI bus zoals de geluidskaart de boel nog flink in het honderd laten lopen.

Ik kan wat dat soort truukjes betreft de uitleg van bv de 8088MPH demo daarbij aanraden. De PC met een relatief groot geheugen (zowel RAM als disk space) blonk eerste instantie vooral uit in Strategy, Adventure en RPG achtige spellen. Voor de gemiddelde Atari of Amiga bezitter was het iig tot dat de '386' en VGA betaalbaar werd een inferieur systeem voor actiespellen.

[Reactie gewijzigd door AtariXLfanboy op 26 mei 2026 01:40]

Ik heb Wolfenstein altijd met veel plezier gespeeld oo een 286-16
Dat kon ook wel. Er is nu zelfs een AtariST versie van Wolfenstein 3D. Maar bv dus een verkeerd ingesteld videokaart kon het verhinderen.
Haha, was echt een top spel!
Ik ook! Zelf vanaf diskette, maar dan moest je om de zoveel stappen pauze nemen! (Deed ik voor de gein)
De 33MHz DX met coprocessor en 8MB ram die ik had daar liep het prima. Wel singeplayer. Multiplayer via IPX was teveel gevraagd...
Doom draaide op mijn 386DX40 maar wel wat sluggish. Viewport wat kleiner en soms op F5 drukken voor de low res mode.
Ik heb urenlang probleemloos Wolfenstein (en klonen zoals Corridor 7 en Blakestone 3D) op mijn 386DX gespeeld.

Doom draaide helaas niet omdat ik maar 2mb geheugen had. Het geheugen van die pc (van Commodore) kon alleen met, uiteraard nergens verkrijgbare, uitbteidingskaarten worden uitgebreid.

Toen ik mijn moederbord en processor naar een 486 DX4 100 mhz had geupgraded, heb ik heel veel uren Doom gespeeld.
Draaide ook dramatisch op mijn pentium 75 :)

Maar @Fuga was het niet zo dat intel alleen maar 386sx uitgebracht heeft? De 386dx40 was een amd chip als ik het goed heb en die was inderdaad een heel stuk sneller dan mijn 386sx.
Ik weet zeker dat er een AMD 386SX40 bestond, die had ik namelijk. Achteraf een beetje spijt van omdat ik later pas begreep dat een DX een stukje krachtiger was. Had ook met prijsverschil te maken denk ik.

[Reactie gewijzigd door Tjeerd op 24 mei 2026 18:11]

Nee, zowel Intel als AMD hebben zowel SX als DX versies van de 386 geproduceerd, op diverse kloksnelheden.

Sterker nog, de Am386SX was de eerste CPU die AMD zelf ontworpen heeft (via reverse engineering), daarvoor bouwden ze alleen Intel-cpus in licentie.
In 1991 AMD also introduced advanced versions of the 386SX processor – again not as a second source production of the Intel chip, but as a reverse engineered pin compatible version. In fact, it was AMD's first entry in the x86 market other than as a second source for Intel.
Zie Wikipedia: Am386
De 386 DX 25 mhz was zeker weten van Intel.
Ik had zelf toentertijd een 386SX40, volgens mij toen nog opgewaardeerd naar 4 megabyte werkgeheugen, de tijd dat ik vanuit een dorpje onder Rotterdam met mijn grote broer een keer naar Delft ging omdat ESCOM daar honderd (?) gulden per reepje van één megabyte verkocht. Ik had geen idee waar ik het anders moest halen, wist niet eens dat er in Rotterdam ook veel computerzaken zaten. Totaal andere belevingswereld voor mij als kind.

Doom was inderdaad wel de meetlat waar ik ondanks de 4 MB werkgeheugen erachter kwam dat het redelijk tegenviel qua speelbaarheid met wat ik bij anderen had gezien (486DX33 volgens mij ging lekker). Een oom van mij had een 486SX25 en in mijn herinnering ging dat ook wel, maar net lekker genoeg, niet helemaal vloeiend?

Na een aantal jaar gefrustreerd zijn dat steeds meer spellen en zeker Doom niet lekker speelde was ik er helemaal klaar mee en wilde ik het ruigste wat er was en kocht een 486DX4-100. Daar heb ik veel jaren plezier van gehad. Daarna is allemaal nog meer geschiedenis hoe vaak ik wel niet opgewaardeerd heb zo snel dat het toen jaren ging. :X
Ja dat was echt absurd. Als je met je gloednieuwe pc thuis kwam van de Dixons ofzo, was hij al verouderd :P

Tegenwoordig is dat niet meer vergelijkbaar.

Wij kochten destijds, 1996, een AMD K6-166mhz met MMX, 16mb ram en een Diamond videokaart van 2mb. Wist nog dat we binnen het jaar de ram moesten verdubbelen en een 4mb Voodoo 3dfx erin. 2gb hdd was ook al snel krap.

Ik heb nu nog een Thinkpad T410 uit 2010 ofzo. Die van 8gb ram voorzien en een SSD en daar kan ik nog prima dagelijks simpele taken mee doen.
Weans, in Den Haag. Waar je een stapel dozen meekreeg als je een PC kocht. Mocht je die zelf in elkaar zetten.

En dan de opluchting als je de aan-uit-knop omzette en het in een keer bootte zonder doorbranden.
De databus was inderdaad 16-bits, maar de reden waarom de 386SX 'slechts' 16MB kon aanspreken, was de adresbus: die was 24-bits breed in plaats van 32-bits. Bij de DX waren zowel de data- als de adresbus 32-bits.

Dat trucje deed Motorola een paar jaar eerder met de 68000, waardoor er relatief goedkope computers met die CPU gebouw konden worden.
Was mijn eerste eigen echte ibm pc. Een highscreen 386SX. Nostalgie.
Ja, dat was nog eens wat die losse coprocessors. Ik had zelf een 33Mhz 80386DX met zo'n 80387 coprocessor met 8MB werkgeheugen die ik doorgeschoven had gekregen van mijn vader toen hij zelf een 486 aanschafte. Doom liep uitstekend op deze 386. Bij de 25MHz 80386SX met 4MB ram van de buren was dat een ander verhaal...
[...]

Door die smallere databus kon de 80386SX maar 16 MB RAM adresseren (wat in die tijd overigens meer dan voldoende was). .
En dat is geen uitzondering, ik zou eerder zeggen 'common practice' om CPUs uit te voeren met kleinere databus. Ik denk dat één van de grootste innovaties de introductie van een MMU is geweest.

Vergeet ook niet dat ISA/harddisk in die tijd ook 16bit was, DOS en applicaties vrijwel volledig 16bit en echt rekenwerk alleen voor specifieke programma's die dan ook graag een 387 fpu wilden.

Pas met de 486 begon de kentering te komen, de 386SX voldeed eigenlijk prima en als deze te traag was had je 'em te laat gekocht of te laat vervangen :)
Ik had trouwens ooit een 387 emulator. Die gebruikte ik om "yagimax" te draaien. Een antenne ontwerp programma voor het optimaliseren van mijn 5 element yagi antenne voor 105Mhz, kuch kuch piraten zend tijdperk ahum.
Volgens mij draaide dat ook zonder co processor, ik weet niet hoe, maar met de 387 emulator die ik had liep het een stuk sneller.
[...]


Dit verdient wel een kleine nuance. Intern waren alle 80386's inderdaad 32-bits, maar extern was alleen de 80386DX 32-bits, de goedkopere 80386SX had namelijk 'slechts' een 16-bits databus om de prijs te drukken. Deze was vooral voor lower-end PC's bedoeld, de duurdere DX richtte zich meer op het high end segment.
Wat overigens niet anders was dan de 8086 tov. de 8088. De 8086 is een 16-bit processor maar de 8088 heeft maar een 8-bits databus. IBM heeft met de PC/XT voor die versie van de processor gekozen om de kosten te drukken. En dat gaf ze gelijk een mooi excuus om de 80286 in te zetten voor de AT, die wel voorzien was van een 16-bit databus.

De 4GB adresruimte van de 386DX werd overigens wel degelijk gebruikt - niet als direct aanspreken van fysiek geheugen, maar wel samen met de MMU voor het virtueel mappen van procesgeheugen naar fysiek geheugen. Daarom kon de 80386 ook dingen doen zoals pre-emptive multitasking waardoor Windows 95 mogelijk werd.

[Reactie gewijzigd door Stoney3K op 26 mei 2026 09:43]

Ook leuk: op basis van deze microcode heeft iemand een 386-compatibele processor ontworpen die je op een FPGA kan draaien: de z386.
Bedankt voor de link. Ik kan het in grote lijnen het verhaal daar wel volgen. Ik heb net een Mr Fpga besteld dus het zal benieuwen hoe deze core uitpakt :)
@TijsZonderH

Er staat twee keer dezelfde soort fout in de tekst:

- Dat deden ze op basis van beelden van de die van de processor
- Hij en een paar vrienden kregen het toen voor elkaar om met 'verschillende delen beeldverwerking, neurale netwerken en mensgestuurde automatisering' een binary blob uit een afbeelding van de die van de 80386 te halen.
Dat is geen fout. Er zijn vast tweakers die het beter kunnen uitleggen, maar een "die" is volgens mij heel simpel gezegd de daadwerkelijk "chip" op een cpu-package. Correct me if I'm wrong...
Een die is een stukje wafer. Een wafer 'dice' (snij) je in stukjes, een stukje is een 'die'. Deze 'die' is klein en fragiel, dus die stop je in een behuizing met pinnen/pads zodat je hem makkelijker kunt gebruiken. Het complete ding is een 'chip'. Tegenwoordig kan een chip ook uit meerdere 'dies' bestaan, zoals bij HBM geheugen op je nVidia AI-accelerator chip.

eheijnen maakt de claim dat de foto's van de 'die' zijn en niet van de 'chip'. Zoals je aangeeft zit een 'die' in de 'chip' dus de foto's zijn van de 'die' in de 'chip'. Hoewel ik er zelf niet over zou vallen is de 'die' wel specifieker omdat wat aan geeft wat het interessante deel was van de foto. Foto's van de behuizing zouden in dit geval nooit iets kunnen zeggen over de microcode.

Als je dan toch heel specifiek wilt zijn, in een 80386 zit een vast ROM deel met de microcode erin. Tegenwoordig is microcode niet meer 'hardcoded' in de chip. Deze ROM vind je dan rechtsonder op deze foto: https://static.righto.com/images/386-clock/386-die-labeled.jpg

Op de foto zie je geen condensatoren, en ook geen NAND/NOR flash (transistor). Je zie een array van transistoren, waar ze de transistor niet aansluiten als het een 0 waarde is. Je kunt dus, als je een hoge resolutie foto hebt, zien waar de transistor is aangesloten en waar niet. Als je een beetje handig bent kun je AI iedere aansluiting laten beoordelen en zo dus de ROM uitlezen.

[Reactie gewijzigd door tedades op 24 mei 2026 15:03]

Dank voor de verduidelijking.
Leuke afbeelding om je eerste alinea te illustreren: https://en.wikipedia.org/wiki/Pin_grid_array#/media/File:80486_open.jpg. Is wel van een 80486, maar het gaat om het principe...
"Correct me if I'm wrong..."

Nee je hebt gelijk....!
"die" is ook Engels voor "chip" :Y)
Niet helemaal, "chip" is het eind product, "die" is het stukje uit de wafer dat in de "chip" gaat.
De "die" is een woord voor een onderdeel van de processor en word dus in dit geval niet gebruikt als het Nederlandse aanwijzend voornaamwoord "die".
edit:
spelfout

[Reactie gewijzigd door GoingToaster299 op 24 mei 2026 14:11]

Nee hoor. Das geen fout.
Wikipedia: Die (integrated circuit)
;)

Ik ben het wel met je eens dat het op het eerste gezicht wat onduidelijk is, en dat een Engels woord wat ook bestaat in de Nederlandse taal iets duidelijker gemarkeerd mag zijn.. bijvoorbeeld cursief of zo. Of met een linkje eronder.
De 80386 kwam in 1985 uit als de eerste 32bit-processor van Intel.
Onwaar. Intel bracht diens eerste 32-bit processor uit in 1981.

[Reactie gewijzigd door The Zep Man op 24 mei 2026 13:44]

Maar die 432 CPU waar HCQd het over heeft had intern toch 16bit componenten, en de 80386 was toch de eerste volledig 32bit cpu?

Anyway. Ik denk dat het beter beschreven kan worden als de eerste 32bit x86 CPU van Intel 😊.
Inderdaad ... Maar het is niet zo dat er niet al eerder CPU's 32 bits of meer waren. Vaak niet op een chip en natuurlijk niet bedoeld voor de Personal Computer. Er zijn volgens mij geen voorlopers van de x86 in die categorie en daarom is het dus toch een goede beschrijving
Google AI meldt iig de IBM System/360 en de General Electric GE-600 Series die beschikbaar kwamen in 1965 met een 32bit CPU. CPU is niet meer of minder dan de Central Processing Unit en dat is simpelweg in elke von Neumann architectuur aanwezig of het nou bv buizentechnologie, TTL of een chips is maakt daarbij dus niet uit

[Reactie gewijzigd door AtariXLfanboy op 24 mei 2026 20:49]

Link dan direct naar de processor zelf: Intel iAPX 432.
@TijsZonderH

Waarom een afbeelding van een socket A cpu bij dit artikel? Een 80386 is een PGA132 cpu, dat ziet er zo uit: https://thandor.net/data/object/472/1016.jpg
Uit de tijd dat de pinnetjes nog enigszins telbaar waren. Onvoorstelbaar hoe de techniek gegroeid is en hoe klein de aansluitingen nu zijn, soms zelfs in de vorm van bolletjes tegenwoordig.
Klopt, maar die moderne aansluitingen zijn imho toch echt wel een vooruitgang te noemen. Niet elke verandering is per se een verbetering, maar imho is dit er wel één van. De CPU-sockets van nu zijn relatief fool-proof.

Die pennetjes op die oude 80386's (en ook de 80486 had die pennetjes nog) waren dat niet echt, ze waren namelijk best wel fragiel.

Je moest ze in dit soort sockets proppen: https://www.s100computers...Board-II/CPU%20Socket.jpg

En je zou de eerste niet zijn die één (of meer...) pennetjes verboog (of zelfs afbrak...) als je hem niet precies goed in het socket stopte. Dat zijn nu al dure geintjes, maar processoren waren destijds (relatief gezien) aanzienlijk duurder..
Ik heb tientallen pc's in elkaar geschroeft en je moest best lomp zijn om een cpu te verkloten. Ze vielen gewoon in de socket. Zo niet, zat er iets niet goed. Duwen was het verkeerde instinct om dat op te lossen.
Je moest wel kracht zetten om ze vast te zetten. Er was toen nog geen handeltje aan de socket om je daar bij te helpen. Dus inderdaad cpu op de plek laten glijden, en dan met je duim recht naar beneden aandrukken. Om ze los te krijgen, moest je met een platte schroevendraaier wrikken :). Het was dus wel zaak om dat alles met enig beleid te doen...
Ja je hebt gelijk. Mijn punt was meer dat je kon weten dat de cpu op z'n plek zat. Anyhow, blij dat die tijden voorbij zijn. 😊
ZIF (zero insertion force) sockets waren echt een verademing. Geen verbogen pootjes meer
Exact dit. Ik ging een keer een nieuwe AMD Duron als upgrade in een PC duwen met een vriend. Die gleed er niet helemaal lekker in, hij gewoon duwen: wel 10 pinntjes naar de haaien: Zat een kwartslag verkeerd. Uiteindelijk met heel veel geduld de CPU er wel goed ingekregen.
En toch, áls je dan 1 of meerdere pinnetjes verboog, dan kon je ze met wat geduld ook wel weer rechtbuigen. Als er met de huidige sockets 1 van die veercontactjes verbogen raakt, is het praktisch onmogelijk om dat nog weer te herstellen...
Ik weet ook nog wel dat ik heeeeel lang geleden per ongeluk eentje verboog. Met een pinpas weer recht weten te buigen en gewoon weer gaan met de banaan! Dat hoef je met een i7 7700k bijvoorbeeld niet te proberen (wat ik door een stomme fout van mijzelf ook ooit een keer gehad heb…)…
Ik had een socket A koeler op socket 7 geprakt, ook met van die mooie kleverige zooi ertussen. Bij het loshalen van de koeler wilde de klem niet van de socket aan 1 kant, die trok de koeler met CPU en al over z'n kant met de socket nog dicht.
Hele rij pinnen krom, allemaal rechtgebogen met pasje en nog jaren plezier gehad van die K6/3+.
Het voelt als de dag van gisteren: na twee jaar door weer en wind, dag in dag uit sinds mijn dertiende mijn krantenwijk lopen, honden uitlaten en de katten van de buren eten geven als ze op vakantie waren. Toen was eindelijk de dag aangebroken dat ik alles compleet had voor mijn game-pc-build en in alle vreugde alles zelf had gemonteerd, totdat het moment aanbrak waarop ik koelpasta had aangebracht en rustig de cpu probeerde te installeren. Het ging moeizaam, maar ik dacht dat dat normaal was, en opeens: knak. Een pin afgebroken. Sindsdien ben ik nooit meer dezelfde geweest.
Dat is een mooie foto :P .

De CPU op de foto is een 16MHz 386 uit 1987. Toen was er nog geen differentiatie tussen SX en DX omdat de SX nog niet was geïntroduceerd. Op de voorkant van de eerste 386 CPU’s zul je niet zien dat het om een DX gaat omdat DX toen nog geen term was :) .
Is dit bericht bewust om 13:37 gepubliceerd ? ;)


Verder interessant om te lezen, toch knap hoe mensen dit kunnen.
.Geek wordt (volgens mij) om 13:37 geplubiceerd.


Toch maar even nagekeken, blijkt dat mijn bovenstaande reactie onjuist is.
Doch weet ik dat sommige nieuws items wel bewust om 13:37 gepost worden. Waar dat precies vanaf hangt, geen idee.

[Reactie gewijzigd door WeirdScience op 24 mei 2026 13:51]

Categorie Geek. 1337 = leet in leetspeak, leet is afgeleid van elite, internetjargon voor elite dus. De ‘gemiddelde geek zal dit wel begrijpen. :Y)
Dit is zoiets als mansplaining uitleggen
Even afgezien van "gaaf dat ze dit voor elkaar hebben gekregen", zit hier voor hackers nog een praktische toepassing aan? Zou je nu alles kunnen uitlezen wat er door een i386 heengaat en zo aan kunnen sturen?
Het maakt bv hele nauwkeurige emulatie mogelijk. Maar het belangrijkste is dat de kennis hierover een voordeel oplevert in de ontwikkeling van nieuwe systemen. Juist in het historische perspectief van een processor die dus lang gebruikt is kan exacte kennis waardevol zijn voor nieuwe ontwerpen. Daarom komt Intel er denk ik zelf ook niet mee terwijl ik niet verwacht dat ze de zogenaamde Tape-out (dwz de tape met het definitieve ontwerp die naar de chipfabriek is gestuurd) van de i386 hebben weggegooid.
Je kunt al simpelweg met een oscilloscoop de stroom van de pinnen analyseren om te kijken wat er door de processor gaat. Dit zijn volgens mij bij de i386 ongecodeerde signalen. Er zijn youtubers die dat soms laten zien hoe ze hiermee problemen met chips weten op te sporen (Usagi Electric is daar een voorbeeld van en ook Adrian's digital basement gebruikt dit om stukke computers te maken)

[Reactie gewijzigd door AtariXLfanboy op 24 mei 2026 18:26]

een binary blob uit een afbeelding van de die van de 80386 te halen.
een binary blob is gecompileerde code, die was nooit in de afbeelding opgeslagen :X
The 80386 was a complete black box. I knew what it did and had a rough idea of how it might work but that turning that into something that I could search for in a big blob of binary seemed like an insurmountable challenge.

Some years later, I was talking to GloriousCow and Smartest Blob (possibly amongst others) on Discord and they mentioned that it would be interesting to get high resolution images of the 80386 die and try to extract the microcode from it. I mentioned that the first part had already been done but that turning the image into a binary blob and a binary blob into intelligible microcode seemed too hard. Well, they may have taken that as a bit of a challenge - they threw various bits of image processing, neural networks, and human-aided automation at the problem and a few days later had the binary blob extracted from the image and cross-checked.
Ze wisten dus ongeveer wat het eindresultaat moest zijn en op basis van afbeeldingen hebben ze er zelf een afleiding uit gemaakt. Het is alsof je een montagehandleiding maakt voor een toestel waarvan je weet welke onderdelen er in zouden moeten zitten.
Het zou Intel sieren om nu de 'Tape out' van de i386 online te zetten zoals Microsoft met oa oude versies van MS Basic en MS Dos heeft gedaan. Het is nu toch niet meer geheim meer en het is educatief mogelijk waardevol materiaal en waarschijnlijk wat makkelijker te volgen dan wat deze hackers er van hebben gemaakt?
Toch was de latere QX serie 3 met dynamische burst pipe de chip die de nieuwe generatie aankondigde...

Op dit item kan niet meer gereageerd worden.