mirror of
https://github.com/dbalsom/x86_microcode.git
synced 2026-06-09 13:04:17 +03:00
Upload initial 8087 microcode extraction
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
13111222121131220022311212211113223222212221221221230122323212213122222312111212231212211322122222221202222212113222122222222321122312321332222222222302122122122222220212112222332312222112222212112222031211
|
||||
22123222222121012210201221212311112011121122113212211211132213122221222113213112113022112332220222223322222012222100021322220212122322223322222212232212132212212122131222122221321122222221002220221221223222
|
||||
31212201222202112211212332221301121222222231222312132111231211211332122111212222211211232321122112113202122221122211222122222211311223212322112122232212122122223222222223220102022212222211221221321112132132
|
||||
02223201212122012220111221121312322112222312222111231122222232122221322132222112222211212211311222222220211212202222132221223221120222223202222202221232312222221232112132102110212202232212112232003113311211
|
||||
12222212222222022311121121122121112332121121122212212222222222222111332111222112221312132121111222132131122221121221112122222202223201122321212221201221221112122122223202122222212112322212222321232122111321
|
||||
12222111332210321221232211221122211111213323222112313321232112212232112312121121311221123222322121222321122232122333122222132223221212212222211110220322222222112201222212222112221123201122222210022212223111
|
||||
22012121221331222222121222222232121312112121321231312123211113122221122121111112112113221122222221322302122223102112212211223122212122322111221112113122222211112222212232123012112232021332222233211120322210
|
||||
11212110312222211131221212122123112122220212121332231121132112121321012321221121223301111112222122102231023222211222202122123220232322212322211012223231211222122212221232101122221212222222222222021121202232
|
||||
01312123000202131033200302100012100001200200023201320100122223132321100200203302023210200110002221131022303233220222032132000002020212312011020313222022131000213210022232232330203130201022012013120023120302
|
||||
33113002221122200000212122001020000222312100200020231002301112023310022021230123332212000003123001120030000222112330031023112233211330222212203100002300021011202002012230323312132130220002001000200031102033
|
||||
30000230200023312100201102220220013001200002210013322200020000232322100231112202311102122102013000221212333202032302212132102300101130020200000010223022120200213313200331202202000002021302022031112220003203
|
||||
20221022023202203322223030202220303330122023000002232000102000023102220200033331200220020012133001100121022122203311301021120322010111312021333002330222333312300233023110220023322320201200120221012102233330
|
||||
22320023100100302210000312133200203330023220302231020300203003222010200123022003132201002201200110101022023022030330222221230220003110021231200110222022212100013330103013122212003103220221101222330221123020
|
||||
23111220232120220012002211121313101221200230000323132002320200103222110021133232122210023231033113000231010200212030311021120202013032210202222030012220202121001333002202201322223302020011023020002230102022
|
||||
23002130322022332223230021220210002001100320130130230200032013113120002010212030022030122220320101212223222010010013323321122220200212222020120000010202211023211103003022223011123010302100210011100221121202
|
||||
20302001022323221101222000011322302200103022132012221022202202002302103203120311323222012001130120201030200000323331211221122001212023200220000322233130220020302222011221232020201030030001221022123000122230
|
||||
20122002322123212202222030222112330310023021331002101233231101202133023220223220221311232000233012202030201001323220220210222031201311100121003331133222020320112333000223212022220232030320113321322000220220
|
||||
32221200232232232222130022122012222221201220210032212322113210203022232133122022012221221002222322221320223322320003223010222223330001111012010010022112120123212233032032123332223300302231320231030223312202
|
||||
03222102322203220022022023022111302330300301000323213211321211032223223223022221021332010223122221020233310200003121022010233322332023223201223030212122222130202322221203203302022232012032211002302200302002
|
||||
22030223200110232222000221202220212222222222202332221120233003223311132312222003032223312202100320232222012022220102203001030122003002022130230030112022322202213230201103122330002022220023222221222203322023
|
||||
10222022013203230022213021023132120113221211100023312003003020222311220210322332122211200102133000120222323212203302302202212223203002101012033222221132321122110322021002110012221223220120213213022202033023
|
||||
20222033202223022203202003323223131112110302300122122211222220232303121120202203322101222022002302222122313103102101201231202330223020020320211120333013022212013333300222203222232030221001001300212200033003
|
||||
23220232122222302003222022002020212222222301322010211132312330122102131131220223223112031230222033220000220230222230332033220223222331110222201213110100212212122022022112111332232023221001030003120323302023
|
||||
02212322032111332003202322312112310100320222222200121112203222222113111001223232031012222323022232232230203222223323020123032222110221121300021322032012211202223220032112130320102030220220323232313223220222
|
||||
02322223112022022032230222202232220230222022202220222202202222222322020302222332020002122222320220323201332232222212331022012222033322222033322022222022200302230123222222200213032023222312202321222012000122
|
||||
22321232222322032333332033030010202222222232222030103221223222202202222222220222222221022221231322323233023222232223322322220122221220221220200220221203223202222321023032323021222002222222020322220212231321
|
||||
20222222212223022231222002222222022222022232000222021202222220222200020020202202123332222322200202033002232012233323201222102221222020320023222221220122022022300232200222112222201003220202122212222133332102
|
||||
23022022322000030322322022322222221032222220233322222302030030222222110220222222222120230202222320023203212222202202202222212222202012301122122222222232232202023331323022223301122222220223022122023203322320
|
||||
11021202200023312220000212212123202222222122232212212233222012232232322202202001022222222202300203333220022002203222001200121222003002321230230300222032133332312323222322320320003032223222222222121232022022
|
||||
22322210222320323332102202022032202220200212330222302222212222322212222222002222022222000222222222002230233202232322322020212221020323221203222023112202221320203223223131133032321222123322222322203130223021
|
||||
21220303322222322233200012322302222222202223221022222222200021202022222222020032022230220322210223230020112122333013322020122212220202222122003320022122230222001222202321222222332201212122013322200222223232
|
||||
22202302322212300332202020222221223000022022222002200222123303201020022221222220210022322200213302332330233300222213320220232120232133000030000222222122303120223222301222220222020022223223222222222000032330
|
||||
21122112321120322122132011322320000002021321322302203032021202200330030022220023003013102131223032031131121201021020130220101120211311120131022202222233312123112201212222232322330212022122120132220113130030
|
||||
22120032222132302213220232021203303302233220223311202301330323203320303201323011033312222222202321203221310223000023021320122313012201131013011222221222210322102112002221021311301001212223332332230123310221
|
||||
21022123001232121100022232022330102033213223103102230300213211312201211223130203022033022103100211021231033220103123031120322231231123123121221011112321223221233221232223102032221003131220121222210033212022
|
||||
11222211203010222221000022232030332222310121132322110010333222202230321030222002122230132202100232003222222132201202211200231113031002022230203310332232312322110212032302333012302001322222120212201233022130
|
||||
30112322222133331112121003312333233233220320112312332002131000220333010230320112311002320232211221030220132212311210013222323231211011232232302202003232211132332212122022222130221022220102322222320220000301
|
||||
11202001100223322220232003101221000331321133211110320323101113212023032223102222222303230322002113001012132132313313201222221221133322122322120321221212121013331121122322301232212000220102222322222220211101
|
||||
02123212222112221212130010110100300022220132121120133233322002320013313322220221220323002330212222121233322212032211313021321113222121232220123023331122211202212201322221313211202022222302120212220023311302
|
||||
02120200321223311020233302102233033223210310312110333213113220022111202201231032123033203011132232132102221230221211221002003323113303223202121212001312230031233322122312220101110002220322222112220001331332
|
||||
01220113020232221030002231031322221322213231232110323202133111321200322021232121222123231301332232222030323221222223131213022332122233323222233332331330120220012312223332332321211002323233323230330223132320
|
||||
13222021321211220231321022221123330302110033311330222332330331321323313222210221222322333130212231212320222231321131123132121013212221232223102323111132031302300212312220231233103022230230100220330222222112
|
||||
11312002121300222320022000032011333220232302121111203222130002221312332212021102210233333312320313222232223222320033201203231332333323222212311313331332230203232023321121031120003021323223133330331232033102
|
||||
32232021212220212332312002232322332223123312100212231332221123210333313120320232303232202332222232022121302112022323003333323220223013332231202213332122221321232222112020332022221123230022203233332233100213
|
||||
32222322303010320032000123122213222111310123300301322323333122222322121330121002220123120000200222022002232111020321211322232303023002323330233223332332322020210232123222222112003020322202332200020122122222
|
||||
13113122113021323321121122022223132333211222131312023223222011321230101113231113003223323113110033022012222202323223111000323230333312122131223033111330033122322222132123032110212023132233033223012221013012
|
||||
22021132223332300023320130320033333332222123032320031330323122003313303333321023032302213211222322122202201213311021212130212303013201333333021113330212320322202312322222103333222000312203212223000203102122
|
||||
22122222022320323222121321301332031330223021323100312032323303103223233310211023122213231222122223221312221200013122330100120233223312330221320200032333222023312203232022032102220222332332000330320223223230
|
||||
32213210333203222210120121322330333002222322233100332333032202200230233032302312202033131212222220122211111101302212130030212032022313220221333333333222031131221332122032031213220223031202233233202333222120
|
||||
31223121131230221122320112033323332333323231232223033332320232203213232332211022030310012212012233012212213223223021202310200313332002222223021322223023330333321223223131302322212301310132221121130113322011
|
||||
12120221322123101123310123033223210332311323111233123333203022222002222312232022003333122122223223012112202032222032222030303331222312132121302023112323001232022301220111121221102223131123212110331223322012
|
||||
01232022001322221102000213123031000112222132221222203311233222313323232322220002230133330002200311121212233122223322231122030223012003232320331232333223131112312121323023001222202021301123202013123022300122
|
||||
32320200123323232220122023223333332222233322223133331113221212302233011130202223232030332323322122322222213223212323303010303002322032320221233331002223332222231111121012331221102203030221132032221133333222
|
||||
11033232123003200012121002202013033332232220221222200003202221320330230222220033221213020223223212311220203223222322001032212330222232232221223222332223212322022212223132132231232023302211212321110233332302
|
||||
23332230302312212112111021222101303003223223222220022330231331222323323333320103333320133322021132302222121321320221223322233113321231020032133332222221231023321131121013022221232023032233130123300212231322
|
||||
02333232323232222023131230202320332322320123322120303213233112300222230322322320232323033323221021321222212312302312221221022330121233333222212220001120223323012121231323320211232031330111311121133212322121
|
||||
03322320002022023002003023322202320202222322213200222222303002303023022002222003020002222332023023303200002232202233002222000222201002232022002030222123302302330330020223202231002020322332232322222032000300
|
||||
22330203203322002010133003000121222232332302322100200222223331202222232222230302333222122220003023330000320321303321022022220222233222222030200320220210223023220023130202220032321002232002120002200230003020
|
||||
31022022202030000000003002322302232223020202021232032222222221223202222032323302033012022222020212333000222002200000002022013222322231020020222230220022202322220202300333303220201000222012022202223000002002
|
||||
20330003022300000020122022022232220002322220200122320112202030232222221020202223222222200222222002200300232322212223202020222223222003022023022220222202232203020033130002220003302202220200320222003300022020
|
||||
23020002001220000000000232303221220002232222200203222231222002232202022302203000223023223303000230303200023103200202002202222232010002021200201200222103130302322320302202223030000002320022300022210300000102
|
||||
12330203223300101102033102023002310332211202111222303222222322223223332202202322032332100222222332030010220000022232022020222222120030230212203020223202303222000203222301300000030223223023222000203000000010
|
||||
23220300320220020000200133222022222222302321320222322322202020302202222232031002022232000012030223330000032032000001032020032322221202222022001021102223230222323322003023232223032202220322000322200100020311
|
||||
20232010033222000000203121233222220220222032222103200232220000202022222220332232220222330012300200303011102002232232120320233222022020010002000222222112230231220222020322323002000022220202222222202000000300
|
||||
@@ -0,0 +1,43 @@
|
||||
# The Intel 8087 Microcode
|
||||
|
||||

|
||||
|
||||
|
||||
Extraction of the 8087 Microcode was made possible by die photography performed by [Ken Shirriff](https://righto.com).
|
||||
|
||||
See [Ken's excellent article analyzing the 8087 Microcode ROM](https://www.righto.com/2018/09/two-bits-per-transistor-high-density.html).
|
||||
|
||||
This ROM is unique in that it is quad-level - rather than storing 0's and 1's directly, three sizes of transistor
|
||||
(along with no transistor) provide four logic levels which can be decoded into pairs of two bits.
|
||||
|
||||
This presents a challenge for traditional ROM extraction tools, so a CNN was employed to extract the bit positions.
|
||||
|
||||
I'm looking for help verifying the correctness of the ROM extraction due to the ambiguity of small and medium transistors.
|
||||
You can view the full microcode ROM image and report issues using the [8087 microcode web viewer](https://8087.martypc.net).
|
||||
|
||||
## 8087_microcode_rom_01.txt
|
||||
|
||||
The extracted literal content of the 8087 microcode ROM.
|
||||
|
||||
- 0: No transistor
|
||||
- 1: Small transistor
|
||||
- 2: Medium transistor
|
||||
- 3: Large transistor
|
||||
|
||||
## /images/8087_microcode_rom_01.png
|
||||
|
||||
A graphical representation of the 8087 microcode ROM as an 2bpp indexed color PNG.
|
||||
|
||||

|
||||
|
||||
Word extraction has not yet been performed. It will be tricky as the 8:1 row multiplexing logic is inverted every 8 rows
|
||||
and the exact 8087 word format is unknown.
|
||||
|
||||
|
||||
## /images/upper-decoder.jpg
|
||||
|
||||
A die photo by Ken Shirriff of the upper microcode decoder circuitry.
|
||||
|
||||
## /images/lower-decoder.jpg
|
||||
|
||||
A die photo by Ken Shirriff of the lower microcode decoder circuitry.
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 4.7 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 988 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 18 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 13 MiB |
@@ -8,6 +8,8 @@
|
||||
A decoding of the NEC V20/V30 microcode was recently made possible via the imaging work of [InfoSecDJ](https://infosec.exchange/@infosecdj):
|
||||
<img width="800" height="697" alt="The NEC V20 Die" src="images/v20_die_shot_01.jpg" />
|
||||
|
||||
See the full die shot mosaic on [siliconprawn](https://siliconprawn.org/archive/doku.php?id=infosecdj:sharp:lh70108).
|
||||
|
||||
NEC used unified microcode for both the NEC V20 and V30, which differ only in their metal layer interconnects.
|
||||
|
||||
The only difference between the microcode for either version of CPU is in the microcode routine that handles hardware
|
||||
|
||||
Reference in New Issue
Block a user