Intel on haudannut x86S-suunnitelmat

Kaotik

Banhammer
Ylläpidon jäsen
Liittynyt
14.10.2016
Viestejä
22 653
Onko missään esitetty arvioita siitä, että paljonko nuo vanhat tuet haittaavat uusissa prosessoreissa ja miksi? GPU-piireihin lisätään kaikenlaisia enkoodereita, dekoodereita ja äänikiihdytyksiä, mutta prosessorissa muutama transistori perinteen vuoksi on jotain sellaista, mistä pitää pyrkiä eroon.
 
Onko missään esitetty arvioita siitä, että paljonko nuo vanhat tuet haittaavat uusissa prosessoreissa ja miksi? GPU-piireihin lisätään kaikenlaisia enkoodereita, dekoodereita ja äänikiihdytyksiä, mutta prosessorissa muutama transistori perinteen vuoksi on jotain sellaista, mistä pitää pyrkiä eroon.
Oma arvaus on että tuon edut liittyy enemmän tietoturvaan kun nopeuteen, eli pääsisi eroon vanhoista "väliaikaisista ratkaisuista" jotka ovat olleet hyviä ideoita 30-40v sitten.
 
GPU-piireihin lisätään kaikenlaisia enkoodereita, dekoodereita ja äänikiihdytyksiä
Näytönohjaimissa on se ero, että niitä käytetään ajurien kautta. Eli niissä riittää API-yhteensopivuus. Suorittimissa sen sijaan pitää olla käskykantayhteensopivuus, jos siis haluaa että kaikki aiemmin julkaistut ohjelmat toimivat samalla tavalla.
 
Näytönohjaimissa on se ero, että niitä käytetään ajurien kautta. Eli niissä riittää API-yhteensopivuus. Suorittimissa sen sijaan pitää olla käskykantayhteensopivuus, jos siis haluaa että kaikki aiemmin julkaistut ohjelmat toimivat samalla tavalla.
Tuosta taas päästään eroon käskykantatulkkauksella, kuten vaikkapa apple on näyttänyt todeksi. Luultavasti olisi ihan toimiva ratkaisu joidenkin vähän käytettyjen x86 käskyjen kanssa mitä tästä x86s:stä on karsittu pois. Taitaa jo suurin osa x86 käskyistä olla sellaisia että moderni prosessori mikrokoodilla pyörittää niitä johonkin settiin muita käskyjä ja ns. natiivitukea ei enää ole juuri millekkään roskalle mitä x86 käskykantaan on aikojen saatossa lisäilty. Tämä x86s olisi vaan kätevästi pakottanut tuon muunnoksen pois prossuista, samalla uudistaen jotain patentteja sun muita kivasti.
 
Viimeksi muokattu:
Ikävä kyllä x86-koodattuja softia on tehty jo 80-luvulta saakka niin järjettömiä määriä jotta x86s-idea taisi kuolla jo alkuunsa siihen. Onneksi. Kukahan newbie-neropatti Intelillä idean keksikään :(
Kaikki mikrokontrollerit, teollisuuden ohjaimet jne jne joita on käytössä uskomattomin määrin. Meneppä ehdottamaan kaikkien moisten vaihtamista vaikka kymmenien miljardien liikevaihtoa pyörittäville raaka-aineita tuottaville firmoille? Sekoitat samalla kätevästi miljoonien laitteiden yhteensopivuuden. Nice idea you moron!
Intelin ehdotus sai varmasti kylmää kyytiä niiltä firmoilta jotka oikeasti pyörittävät _fyysistä_ talouttamme. Pieninkin epäyhteensopivuus nykyisten järjestelmien kanssa olisi edellyttänyt merkittävää hyötyä verrattuna aikaisempiin järjestelmiin. Itsekin jo liian pitkään IT-hommia tehneenä "Jos se toimii - älä koske siihen!".
 
Intel kertoi viime vuonna suunnittelevansa uutta x86S-arkkitehtuuria, joka jättäisi menneiden aikojen haamujen vuoksi ylläpidetyt, ylimääräisiksi todetut ominaisuudet pois rajapinnasta ja keskittyisi nykypäivään.
Nyt yhtiö on varmistanut Tom's Hardwarelle, että nämä suunnitelmat on haudattu.

Lähde: Intel terminates x86S initiative — unilateral quest to de-bloat x86 instruction set comes to an end
Mitä vanhoja ominaisuuksia tässä olisi karsittu? Arvaan, että segmentoitu muistinosoitus olisi ollut tulilinjalla. Sitähän ei ole toteutettu 64-bittiseen tilaan oikeastaan lainkaan.

Tietoturva on oikeastaan asia, joka puoltaisi segmentoidun muistiosoituksen säilyttämistä ja laajentamista myös 64-bittiseen tilaan. Sillä voidaan toteuttaa näennäinen Harvard-arkkitehtuuri, jossa prosessien koodi ja data on eri muistiavaruuksissa. Segmentit on alusta pitäen tukeneet segmenttikohtaisia IOPL-oikeustarkistuksia (Ring 0-Ring 3), eli jos prosessi yrittää päästä käsiksi renkaille, joihin sillä ei ole oikeutta, niin yritykseksi jää - rautatasolla. Sivutetulle muistille voi määritellä vastaavaa mutta vain kaksitasoisesti User/System.
 
Mitä vanhoja ominaisuuksia tässä olisi karsittu? Arvaan, että segmentoitu muistinosoitus olisi ollut tulilinjalla. Sitähän ei ole toteutettu 64-bittiseen tilaan oikeastaan lainkaan.

Tietoturva on oikeastaan asia, joka puoltaisi segmentoidun muistiosoituksen säilyttämistä ja laajentamista myös 64-bittiseen tilaan. Sillä voidaan toteuttaa näennäinen Harvard-arkkitehtuuri, jossa prosessien koodi ja data on eri muistiavaruuksissa. Segmentit on alusta pitäen tukeneet segmenttikohtaisia IOPL-oikeustarkistuksia (Ring 0-Ring 3), eli jos prosessi yrittää päästä käsiksi renkaille, joihin sillä ei ole oikeutta, niin yritykseksi jää - rautatasolla. Sivutetulle muistille voi määritellä vastaavaa mutta vain kaksitasoisesti User/System.
Linkkejä seuraamalla olisi selvinnyt paljonkin. Suurin idea oli tehdä siitä puhtaasti 64-bittinen, eli 16- ja 32-bit tilat poistettu kokonaan myös käynnistyksestä, Ring 3 32-bit softat toimii, Ring 0 ei.
 
Linkkejä seuraamalla olisi selvinnyt paljonkin. Suurin idea oli tehdä siitä puhtaasti 64-bittinen, eli 16- ja 32-bit tilat poistettu kokonaan myös käynnistyksestä, Ring 3 32-bit softat toimii, Ring 0 ei.
Tämä tarkoittaisi mm. kuoliniskua kaikelle vanhalle raudalle, jolle ei ole kirjoitettu 64-bittistä ajuria. Samoin 16-bittisiä legacy-ohjelmia ei voisi enää ajaa edes virtuaalikoneella.

Vanhojen tilojen ylläpito voi toki tuntua turhalta mutta kuluttaako ne oikeasti merkittävästi resursseja? Arkkitehtuuri toteutettiin pitkälti jo 80286:lla ja kokonaan 80386:lla (134k/275k transistoria kaikkeen toiminnallisuuteen).
 
Samoin 16-bittisiä legacy-ohjelmia ei voisi enää ajaa edes virtuaalikoneella.
Eikö muka tuollasta "sata vuotta" vanhaa 486-rautaa voisi emuloida kokonaisuudessaan tarpeeksi nopeasti jollain QEMU:lla tms. x86S prosessorilla vaikka se itse uusi X86S ei tukisikaan/ymmärtäisi 16 bittisiä osoitteita?
 
Yli 99%:iin kaikista uusista myydyistä PC:istä ei koskaan asenneta käyttöjärjestelmää, joka mahdollistaisi siirtymisen sellaiseen toimintamoodin, joka ei toimisi x86S:llä:

16-bittinen v86-tila ei ole käytettävissä 64-bittisen käyttiksen päällä, 64-bittisen käyttiksen päällä voi x86S-prossulla ajaa kaikkea samaa kamaa kuin normaalilla x86-64-prossulla.

x86s vaan käytännössä pudottaa pois mahdollisuuden ajaa 16-bittisiä tai 32-bittisiä käyttiksiä.
 
Viimeksi muokattu:
Tämä tarkoittaisi mm. kuoliniskua kaikelle vanhalle raudalle, jolle ei ole kirjoitettu 64-bittistä ajuria.

Kuten?

Ei 32-bittiset ajurit muutenkaan toimi 64-bittisissä käyttiksissä.

Jos taas se softa mitä kutsut "ajuriksi" ei ole oikea ajuri vaan usermode-softaa , se toimii x86s-prossulla 64-bittisen käyttiksen päällä aivan samalla tavalla kuin normaalilla x86-64-prossulla 64-bittisen käyttiksen päällä.

Ne koneet joissa ajetaan 32-bittistä käyttistä sen takia että jollekin raudalle ei löyty 64-bittistä ajuria on hyvin harvinaisia.
Ne UUDET/uuden prossun sisältävät koneet joissa ajetaan 32-bittistä käyttistä sen takia että jollekin koneen sisältämälle raudalle ei löyty 64-bittistä ajuria on vielä harvinaisempia.

Ainoat merkitykselliset ja potentiaalisesti yleiset yhteensopivuusongelmat mitä keksin on, että
1) BIOSin bootloader-koodi pitää muokata toimimaan kokonaan 64-bittisessä tilassa.
2) joissain koneissa BIOSin päivitys voi vaatia boottausta DOSiin, mutta tämäkin on melko harvinaista, ja tämä ei x86s-prossulla ole mahdollista. Että joku emolevyvalmistaja voi joutua koodaamaan firmwarenpäivityssoftansa uusiksi että saa emolevynsä yhteensopiviksi x86s-prossujen kanssa.

Molemmat on lähinnä että emolevyvalmistajille (kertaluontoisesti) vähän lisätyötä, mutta kun työ on tehty, mitään ongelmia ei näistä ole.

Samoin 16-bittisiä legacy-ohjelmia ei voisi enää ajaa edes virtuaalikoneella.

16-bittisiä legacy-ohjelmia on jo vuosikaudet ajettu Dosbox-softalla, joka on ihan täysi emulaattori, ei virtuaalikone.

Vanhojen tilojen ylläpito voi toki tuntua turhalta mutta kuluttaako ne oikeasti merkittävästi resursseja? Arkkitehtuuri toteutettiin pitkälti jo 80286:lla ja kokonaan 80386:lla (134k/275k transistoria kaikkeen toiminnallisuuteen).

Ei näiden ominaisuuksien tuen hintaa lasketa niinkään transistoreissa vaan piirin kehittämisen monimutkaisuudessa, tuotekehitysajassa, luotettavuudessa ja siinä, millainen suorituskyky siihen uuteen tuotteeseen saadaan.

Kun prossua kehitettäessä pitää huomioida se, että uudenkin ytimen pitää toistaa identtisesti 45 vuotta vanhan prossun muistinosoitusbugi, koska maailmassa on paljon softaa joka väärinkäyttää tätä bugia käyttääkseen suurempaa määrää muistia kuin mitä 45 vuotta vanhalla prossulla muuten voi muuten accessoida, sitä aikaa mikä tähän prossun kehittäjältä menee ei voida käyttää jonkun uuden suorituskykyä parantavan ominaisuuden kehittämiseen ja testaamiseen.

Ja kun sen bugin toistamisen takia ei voida osoitteenlaskentayksikössä käyttää optimaalista yhteenlaskuyksikköä vaan sen sisällä pitää vetää muutama linja hassusti ja tarvitaan niiden valintaan ylimääräinen mux, pahimmillaan tästä voi tulla vaikka kellojakso lisää viivettä joihinkin latausoperaatioihin (ei toki todennäköistä).
 
Viimeksi muokattu:
Eikö muka tuollasta "sata vuotta" vanhaa 486-rautaa voisi emuloida kokonaisuudessaan tarpeeksi nopeasti jollain QEMU:lla tms. x86S prosessorilla vaikka se itse uusi X86S ei tukisikaan/ymmärtäisi 16 bittisiä osoitteita?

Juuri näin nykyäänkin tehdään; Steamissa on esim, myynnissä ziljoona vanhaa DOS-peliä jotka on paketoitu Dosbox-emulaattorin sisään. Eikä kukaan valita että ne pyörivät liian hitaasti.
 

Statistiikka

Viestiketjuista
262 233
Viestejä
4 549 308
Jäsenet
74 947
Uusin jäsen
Wilmeri

Hinta.fi

Back
Ylös Bottom