Niin ja mitä tulee tuohon AVX512:nsta vaativaan layouttiin - jos layoutin laskenta kestää tolkuttoman kauan ei itse prosessorin testaamiselle jää yhtä paljoa aikaa. Nythän muuan ranskalainen ex-intel Insinööri on paljastanut että Skylake on äärimmäisen buginen ja Icelakessakin vaikuttaa olevan pahoja ongelmia, kaatuilevat perhanat totaalisesti sopivilla käskysarjoilla - ja on huhuja että Intel on muuttanut prosessoriensa testaustyyliä eli mahdollisesti tuottavat prosessoreja jo ennenkuin layout on valmis jotta testaus voidaan aloittaa aikaisemmin. Mutta 512-bittisen vektorien poistaminen voisi yksinkertaistaa layouttia ja helpottaa tilannetta.
Nyt mennään kyllä jälleen todella korkealle Dunning-Krueger-käyrän alkuhuipulla.
Ennenkuin layout on valmis, ei ole mitään mitä voitaisiin valmistaa.
Ja layout voidaan tehdä (ja isoilla piireillä myös aina tehdään) hierarkisena.
Siellä voidaan tehdä myös layout esim. yhden 64-bittisen linjan ALUista, ja monistaa tätä. Siellä voidaan tehdä layout rekisterifileen tietyistä biteistä, ja monistaa tätä. Korkean tason layout on sitten näiden isompien palikoiden sijoittelemista paikoilleen.
Ja kaikkein korkeimman tason layout on sitten se, että siellä on monta (samalla layoutilla) olevaa ydintä, sekä muita logiikkapalasia joiden layout on tehty alemmilla tasoilla, ja nämä vaan sijoitellaan sille koko piirille.
Testaamisesta:
Testausta tehdään todella monella tasolla ja todella monessa vaiheessa. Ensin on joku korkean malli siitä, miten prossun pitäisi toimia (jonka pitäisi periaatteessa toimia myös käskykantasimulaattorina/jonka pohjalta voidaan myös autogeneroida käskykantasimulaattori). Ja tällä voidaan sitten simuloida joitain ohjelmia ja katsoa, että se toimii niillä oikein.
Sitten tästä väsätään (tai joskus/osittain tehdään automatisoiduilla työkaluilla) laitteistunkuvauskielinen RTL-koodi, jota voidaan testata RTL-simulaattoreilla.
RTL-palikat voi myös syntetisoida FPGA-piireille, kokonaista monen miljardin logiiikkaportin piirin designia ei toki millekään FPGAlle saada mahtumaan mutta esim. yhden ison ytimen voi saada mahtumaan, erityisesti jos käytetään usean FPGA-piirin yhteisjärjestelmää (joissain FPGA-piireissä on hyvin nopeat ja leveät väylät muutaman sellaisen liittämiseksi yhteen tällaista varten). FPGAlla kuitenkin saavutetaan vain n. kymmenesosa tai alle lopullisen piirin kellotaajuudesta.
Ja lopulta sitten syntetisoidaan se RTL-koodi kohdeprosessille, tehdään sille layout, valmistetaan prototyyppejä, ja testataan niitä.
Ja melkein kaikki "tyypilliset bugit" jotka on selviä virheitä alkup mallissa tai RTL-koodissa on kyllä teoriassa mahdollista löytää jo niissä simulaatioissa ilman mitään lopullisia piirejä - ongelmana vaan on, että simulaatiot on todella hitaita ja FPGA-prototyyppikin aika hidas.