Vlákno názorů k článku Čtyřicet let existence architektury 386: revoluce přinesla Doom a Linux od ventYl - Akurat vcera som docital Oral History of 386,...

  • 7. 10. 2025 11:05

    ventYl

    Akurat vcera som docital Oral History of 386, koho by to zaujimalo, prepis je dostupny tu:

    https://www.computerhistory.org/collections/catalog/102702019/

    Kazdopadne, v clanku su nejake nepresnosti. 4004 a 8080 su uplne nezavisle procesory vyvinute ako nezavisle externe zakazky. 8080 nie je evolucia 4004, ale konverzia cipovej sady spomenuteho terminalu Datapoint do jedneho kusu kremika vo forme mikroprocesora. 4004 vnikol ako externa zakazka na procesor snad pre kalkulacky.

    Intel sa k 8080 dostal tak, ze dostal zakazku na vyrobu tychto cipov. Cipy 8080 implementovali instrukcnu sadu cipovej sady terminualu Datapoint (ktoru navrhli v IBM este o nejaky ten piatok skor). Kym bol vyvoj dokonceny, trh sa posunul a zakaznik uz o cip nemal zaujem. Aby nemusel Intelu za vyvoj zaplatit plnu sumu, cast platby vyriesili tym, ze Intelu predali prava na cip.

    Intel v tej dobe fakt neveril, ze procesory su buducnost, doslova padlo: "Preco by som do pocitaca predal jeden procesor, ked mozem predat X pamati?". Intel bol este do zaciatku 80. rokov vyznamnym vyrobcom pamati.

    Ostatne procesory v 80-tkovej rade su potom s 8080 viac alebo menej spatne kompatibilne. 8085 je kompatibilna snad aj na binarnej urovni a pre 8088 slo spravit transliteraciu kodu, kedy sa instrukcie 8080/8085 prelozili do instrukcii 8088. 8086 jakbysmet.

    Tiez by som povedal, ze ta situacia 8086 vs. ostatne pokusy Intelu o procesor boli tak trocha naopak. 8086 je jedna z mala veci, co im na tomto poli vysla. Samotne 8086 bol projekt, ktory mal preklenut obdobie, kym intel dokonci micromainframe - Intel 432. To bol extremne komplexny projekt, ktory mal - celkom neprekvapivo - tie iste problemy ako Itanium o dve dekady neskor a do znacnej miery podobne problemy ako Intel 860 o dekadu neskor. Bol pomaly, drahy a neefektivny.

    Preto Intel vobec 8086 nasadil ako docasne riesenie. Potom nanho nalepili 286tku, ktoru ako produkt aj v Inteli povazovali za nutne zlo a neskor spustili aj vyvoj 386tky z rovnakych dovodov.

    Projekt Intel 432 sa dostal do tak mizerneho stavu, ze ho v Intelu interne restartovali ako projekt P6 (?). Spociatku mala byt 386tka s P6 kompatibilna, co znamenalo, ze by bola porusena spatna kompatibilita s 286tkou a IBM PC.

    Preco si nieco take v Inteli dovolili? V dobe, ked sa 386tka zacala vyvijat (1981-1982) vlastne este nikto nevedel, co s IBM PC bude. Predaje sa este len spustali a nikto si neuvedomoval hodnotu existujuceho kodu. Spatna kompatibilita nebola temou. Zaroven si ale uvedomovali, ze dizajn 8086tky s iba 8mimi pracovnymi registrami (do znacnej miery podedeny od 8080) a segmentovymi registrami je gula na nohe. Intel strasil Zilog MMU.

    Az feedback z trhu sposobil, ze sa vyvojovy tim priklonil ku kompatibilite s 8086. Marketaci Intelu 8086tky a 286tky predavali so slovami: "napiste vas software pre 286tku dnes a zajtra pobezi bez zmeny na 386tke". Az toto sposobilo, ze boli zahodene vylepsenia, ktore by zvysili pocet pracovnych registrov a bola dodrzana binarna kompatibilita s 8086/286. Co dnes vyzera ako samozrejmost vtedy samozrejmostou vobec nebolo.

    Dalsim pomocnym faktorom bolo to, ze aj projekt P6 sa dostal do sklzu a obvody pre zbernicu v 386tke nebolo mozne navrhnut, pretoze neexistoval stabilny navrh samotnej zbernice.

    To, ze Intel nebol ziadny expert v navrhu procesorov ilustrovala aj interna situacia vyvojovych timov. Samotni clenovia vyvojoveho timu 386 priznali ze v dobe, ked do Intelu nastupovali bol Intel na tom po stranke vyvoja tragicky. V inych firmach zaoberajucich sa vyvojom cipov (vtedy dost dominovali ASIC pred programovatelnymi obvodmi) fungovala riadna dokumentacia, formalne specifikacie, automatizovane nastroje na vyvoj a testovanie cipov.

    V Inteli nic z toho nemali. K 8086 ani neexistovala formalna specifikacia, 286tka na tom bola iba o trocha lepsie, stale bola cela navrhnuta a testovana manualne. 386tka bola vlastne prvy procesor, ktory bol v Inteli vyvinuty state of the art procesom za pouzitia automatizacie. Do znacnej miery bez vedomia a ciastocne aj proti voli vedenia Intelu: "ak by vedeli co tu robime (a akymi nastrojmi to robime), urcite by nam to nedovolili".

    To, ze v tej dobe bola pre Intel priorita v procesore 432 a P6 znamenalo, ze 386tka bola outsider s minimalnym financovanim a podporou. Takze niektore nastroje, ktore sa pri vyvoji 386tky pouzivali boli pokutneho povodu. Napr. autorouter na procesory bol napisany a spravovany studentom. To sa zmenilo az ked si Intel uvedomil, ze ako 432 tak P6 nemaju na trhu sancu uspiet a sustredili sa na 386tku. To nastalo az takmer ku koncu jej vyvoja.

    Ani 386tka nebola schopna ukoncit nastup RISCov. Az zhruba pri 486tke sa podarilo dosiahnut paritu 486 s RISCovymi procesormi vo vykone a dosiahnut aspon ciastocne toho, ze procesor dokazal vykonat jednu instrukciu v jednom takte. Ani to ale nepomohlo a s Pentium Pro sa z Intelu vlastne stal frontend k RISCovemu procesoru. Tym padom CISCy prezili iba v mikrokontrolleroch a to este zhruba tri dalsie dekady. Dnes sice existuju, ale su to vsetko vybehove produkty s minimom dalsieho vyvoja a ustupuju RISCovym rieseniam.

    7. 10. 2025, 11:09 editováno autorem komentáře

  • 7. 10. 2025 11:27

    Pavel Tišnovský
    Zlatý podporovatel

    jj 4004 vzniklo pro kalkulacky, chtel to puvodne Busicom (dneska uz neexistuji).

    Nicmene je to prvni generace CPU od Intelu, do historie to patri, i kdyz to neni mikroprocesor pro pocitace.

    (jinak pozor na to, ze to Oral history jsou skutecne vzpominky jednotlivych akteru, oni schvalne moc nekomentuji rozhodnuti na nejvyssi urovni - treba dohody s AMD- , protoze tam treba jako inzenyri nebyli pritomni)

  • 7. 10. 2025 11:35

    ventYl

    Oral history of 386 existuje ako tri separatne nahravky, jedna z nich riesi aj multi-source, resp. rozhodnutie od multi-source u 386tky upustit. Tu som ale zatial nedocital.

    A je tam este tretia, ktora riesi marketing. Tu som ani citat nezacal.

    4004 do genezy patri, akurat clanok (ak som ho spravne sparsoval) uvadza ze 4004 bola uvazovana do terminalov Datapoint, co nie je pravda.

  • 7. 10. 2025 12:11

    Pavel Tišnovský
    Zlatý podporovatel

    ajo to opravim, jestli to tak vyznelo. Datapoint prisel az s 8008 (ja to zminoval asi hlavne proto, ze syntaxe Inteliho assembleru z toho vychazi, vlastne az dodnes ;)

    Jinak ten dil o multi-source je zajimavej. Sice jsou tam nektere veci, ktere jinych zdroju probehly jinak, ale jako celek je to pekny.

  • 7. 10. 2025 12:26

    atarist

    hele to casove nevychazi. 432 zarizli uz v roce 1981 ne? A prace na 386 zacaly pozdeji AFAIK, takze se to vubec neprekryvalo. Jako jestli to myslis tak, ze predtim se do x86 neinvestovalo, mozny to je, ale v 1985 uz urcite na 432 nikdo nedelal ani nemyslel.

  • 7. 10. 2025 13:21

    ventYl

    Oni prace na 432 nezarezali uplne, oni ten projekt rebootli do projektu P6, ci ako to volali. Nakoniec sa to tusim zhmotnilo ako i860.

    Kazdopadne vtedy si este v Inteli mysleli, ze 432 bolo izolovane zlyhanie a ze koncept komplexneho "objektoveho" procesora ako taky je zivotaschopny. Takze cela linia procesorov 80x86 bola brana ako gap filler az cca do 1984, kedy jednak IBM PC nabral trakciu a druhak sa ukazalo, ze micromainframe nie je konkurencieschopny koncept.

  • 7. 10. 2025 18:56

    Pavel Tišnovský
    Zlatý podporovatel

    tam je zajímavý i to, jak dlouho to Intelu trvalo navrhnout a dodat. V porovnání s MIPSem nebo i ARMem (což byla v podstatě one man show). Prostě původní jednoduché RISCy byly fakt jednoduché, žádný složitý řadič nebo dekodér instrukcí... (další generace s prediktory skoků, registrovými okny atd. už byly horší).

  • 7. 10. 2025 20:55

    ventYl

    Niektore z prvych RISCov boli dost drsne masiny. Chybajuce nasobicky, alebo implementovana instrukcia iba na "jeden krok z operacie nasobenia" a nutnost vkladat delay sloty pri skokoch su famozne.

    Cast z toho sa ale zachovala do dnesnej doby, napr. este POWER 4 (a mozno aj novsie) ma v specke napisane, ze data s ktorymi pracuje vektorova jednotka musia byt zarovnane. Ak zarovnane nie su, procesor bude ignorovat dolnych 5 bitov adresy a bude pracovat s datami ako keby zarovnane boli. Takze bude pracovat s inymi datami nez programator uvazuje.

    Nevygeneruje to chybu, interrupt, trap ani nic. Proste procesor urobi nejaku uplne neocakavanu operaciu :) Je zodpovednostou programatora aby pracoval so zarovnanymi datami.

    Na druhej strane sa veci ako prediktory skoku, register renaming a spekulativne vykonavanie implementovali podstatne lahsie ako na zlozitych architekturach. To bude zrejme aj dovod toho, ze vela z tychto technik sa prvy krat objavilo v mikroprocesoroch prave na RISCoch.

  • 8. 10. 2025 13:07

    Pavel Tišnovský
    Zlatý podporovatel

    Tak původně násobičky do RISCů nepatřily, pokud nedokončí výpočet v jednou cyklu :-) Proto to vlastně všude dolepili formou "koprocesoru". Původní RISCy byly v tomto dost čisté, ale samozřejmě praktické důvody později vedly ke změně.