Minkä kokoinen on 128 bittiä?
Windows 7:n ollessa tulossa 32-bittisessä ja 64-bittisessä arkkitehtuurimuodossa, uskotaan, että seuraavat prosessorit ja käyttöjärjestelmät ovat 128-bittisiä. Onko se totta ja onko se seuraava luonnollinen kehitysaskel?
Mitä on 128-bittinen tietojenkäsittely? No alkaen 32-bittisestä laskennasta, CPU pystyy käsittelemään 232 bittiä tietoa, joka on 4 294 967 296 eli hieman yli 4 gigaa. 64-bittinen laskenta on vastaavasti 264 eli 18,446,744,073,709,551,616; eli yli 18 exobittiä muistia (quintillion). Tämä koskee vain 64 bittiä. Entä 128-bittinen? Se on 2128 eli 3,4028236692093846346337460743177e+38 bittiä. Se on paljon bittejä, joiden kanssa työskennellä. Onko tämä siis tarpeen? Operatiiviset bitit ja käytettävissä olevat bitit ovat kaksi eri asiaa. Voivatko tietokoneet, ja mikä tärkeämpää, ohjelmistot, käyttää tuollaista bittitilaa?
Prosessori
Edelliseen kysymykseen vastaaminen riippuu prosessorin rakenteesta. CPU:ssa on rekisterit, ALU (aritmeettis-loginen yksikkö ), joka tekee matematiikan, ja dataväylä, joka siirtää dataa välimuistista muistiin. Hae-toteuta-sykli on tärkeä käsiteltäessä sitä, miten dataa käsitellään.
Rekisterit eivät ole osa muistia, vaan ne ovat väliaikaisia tallennusalueita, ja ne toimivat ohjausyksikön suojissa. Ne ottavat vastaan ohjeita tai dataa ja suorittavat loogisia tai aritmeettisia operaatioita. Lisätietoja löytyy CPU:n eli mikroprosessoriyksikön roolista.
Rekisterit suorittimessa
Mitä rekisteri tekee?
Rekisterit vastaanottavat tietoa muistista tai suorittimesta, pitävät sitä väliaikaisesti hallussaan ja välittävät sitä eteenpäin ohjausyksikön ohjeiden mukaan. Rekisterit on sidottu kelloon, jolloin rekisterissä oleva käsky suoritetaan yhdessä kellojaksossa. Rekisterien määrä vaihtelee tietokoneesta toiseen; jokainen rekisteri on suunniteltu suorittamaan tietty tehtävä. Rekistereillä on tietty tallennuskapasiteetti, joka riippuu niiden bittien määrästä. Normaalisti mikrotietokoneessa on 14 rekisteriä.
1]Akkumulaattorirekisteri on erityinen tietorekisteri, ja siihen tallennetaan ALU:n viimeisen prosessointivaiheen tulos.
2]Käyttäjän näkyvissä olevat rekisterit jaetaan datarekistereihin ja osoite- ja osoiterekistereihin.
3]Osoiterekistereissä säilytetään muistin rekisterejä ja seuraavaa tietoa.
4]Datarekistereihin tallennetaan dataa.
5]Olosuhderekistereitä käytetään määrittämään, pitääkö käsky suorittaa vai ei.
6]Vakiorekistereihin tallennetaan pelkkiä lukuarvoja.
7]Liukulukurekistereihin tallennetaan liukulukulukuja.
8]Yleiskäyttöisiin rekistereihin tallennetaan dataa ja osoitteita.
9]Erikoiskäyttörekistereitä käytetään ohjelman tilan tallentamiseen ja se koostuu ohjelmalaskurista,
10]pino-osoittimesta ja
11]tilarekistereistä.
12]Ohjelmalaskuri pitää sisällään seuraavan suoritettavan käskyn osoitteen.
13]Käskynkäskurekisterissä säilytetään käskyn suorituksen aikana.
14]Indeksirekisteri tallentaa muistiosoitteiden indeksin.
Voit lukea aiheesta A Visual Interpretation of How a CPU Works ja oppia lisätietoa rekistereistä.
Physikaalisen osoitteen laajennus 32-bittisissä prosessoreissa
Onko siis olemassa keino, jolla 32-bittinen prosessori saadaan toimimaan 64-bittisen tavoin? Itse asiassa on olemassa. Sitä kutsutaan nimellä Physical Address Extension (PAE).
Physical Address Extension on tekniikka, jonka avulla suorittimet voivat osoitteistaa enemmän muistia kuin on suunnittelun mukaan käytettävissä. Se voidaan tehdä vain x86-järjestelmissä, joissa 32 bittiä voidaan käyttää 64 bittiin asti. Tämä onnistuu, kun osoiterekisteri jakaa koko muistin eri tilapankkeihin, jolloin se voi sallia pääsyn koko muistiin. Kun 32-bittinen datarekisteri vastaanottaa dataa, se voi jakaa datan toiseen pankkiin ja saada 64-bittisen toiminnon, ja se käsitellään yhdessä syklissä.
Kun tämä prosessi otetaan käyttöön, 32-bittiset rekisterit toimivat yhdessä jäljitellen 64-bittistä rekisteriä. Näin CPU-sykli voi työskennellä kahden rekisterin käsittelemiseksi ja lähettää ne ALU:lle käsiteltäväksi yhdessä syklissä. Tämä ei kuitenkaan ole ainoa saatavilla oleva CPU-toteutus.
Epäyhtenäinen muistin käyttö
Toinen CPU-toteutus on epäyhtenäinen muistin käyttö (NUMA), joka antaa CPU:lle mahdollisuuden käyttää muistia muistiosoitteiden etäisyydestä riippumatta. Koska jotkin muistipaikat ovat lähempänä CPU:ta, kun taas toiset ovat kauempana, CPU:lta kestää kauempana olevan muistin tietojen käsittely kauempana. Tämän ratkaisemiseksi CPU on jaettu solmuihin, joten käsittely tapahtuu solmukohtaisesti ja siten nopeammin muistin fyysisestä sijainnista riippumatta. Sovellukset voivat hyödyntää 64-bittistä prosessointia 32-bittisessä ympäristössä, jos NUMA on käytössä. Tämä herättää kysymyksen: voiko tämäntyyppinen prosessointi mahdollistaa 128-bittiset toiminnot?
64-bittinen ja 128-bittinen käyttöjärjestelmä
128-bittisten järjestelmien käyttö ei ole väistämätöntä, vaikka suorittimessa on prosesseja, joiden avulla 32-bittinen prosessori voidaan saada toimimaan 64-bittisenä ja 64-bittinen prosessori 128-bittisenä. Jos fyysisen osoitteen laajennusta, joka nyt koskee vain x86-järjestelmiä (32-bittisiä), muutettaisiin 64-bittisiin järjestelmiin, jotta ne voisivat toimia kuin 128-bittiset järjestelmät, se edistäisi 128-bittisten järjestelmien käyttöä. Sama pätee NUMA:ta käyttäviin muutoksiin, tässä tapauksessa prosessorista etäällä olevien muistipaikkojen määrän vuoksi, koska 64-bittiset prosessorit ovat luonnollisesti kooltaan suurempia kuin 32-bittiset prosessorit.
Loppujen lopuksi on joitakin sovelluksia, kuten 128-bittinen salaus tai kryptografia, jotka voivat luonnollisesti hyödyntää 128-bittistä prosessoria. Salausprosessi on nopeampi, koska salauksen tekeminen vie vain yhden prosessointisyklin. Mutta tämä osoittaa, että 128-bittisen prosessorin täyden hyödyn saamiseksi tarvitaan sovelluksia, jotka on kirjoitettu sulautumaan saumattomasti suorittimen toimintoihin.
Tässä vaiheessa tämä on yksi suurimmista epäkohdista sovelluskäytännöissä. Useimmat sovellukset on edelleen kirjoitettu vain 32-bittiselle tasolle, ne eivät ole edes 64-bittisellä tasolla. Tämä vaatii ohjelmistosuunnitteluohjelmia, jotka on kirjoitettu uudelleen 128-bittisiä sovelluksia varten. Ohjelmistosuunnitteluohjelmien, kuten Visual Studion tai .Net Frameworkin tai SQL Server 2005:n tai SQL Server 2008:n, pitäisi tuottaa 128-bittisiä sovelluksia. Mutta ne eivät ole tällä tasolla – nyt ne tuottavat 32-bittisiä sovelluksia.
Mitä 128-bittisellä prosessilla saavutetaan?
Luonnollinen vastaus tähän kysymykseen on suurempi ja nopeampi prosessointiteho. Monimutkaiset sovellukset, jotka tarvitsevat paljon prosessointitehoa, eli prosessointi, joka voidaan suorittaa yhdessä suorittimen syklissä, ovat ihanteellisia. Tällaisia ovat tekniset, tai matemaattiset, tai tieteelliset operaatiot. Tällaisia ovat kehittyneet rahoitus- tai talousmallinnukset. Näitä ovat myös monimutkaiset lääketieteelliset, biologiset tai kemialliset käsittelyt, jotka on suoritettava nopeasti. Mikä tahansa näistä sovelluksista, joiden on tuotettava tuloksia nopeasti, voi hyötyä käyttöjärjestelmästä, joka voi olla synkronissa 128-bittisen suorittimen kanssa. Voit lukea liikkua 128-bittisen arkkitehtuurin ongelmista osoitteessa Windows 128-bittinen arkkitehtuuri – Kuinka paljon RAM-muistia prosessori voi käsitellä.
Intel Micro Architecture Image: Wikimedia Commons
Intel 1820 Architecture Image: Wikimedia Commons
Numa: Kuva Wikimedia Commons
Tämä viesti on osa sarjaa: 64-bittinen tietojenkäsittely vs. 32-bittinen tietojenkäsittely
Kun suorittimet kehittyvät, kehittyvät myös niitä tukevat käyttöjärjestelmät. Näin tapahtuu nyt 64-bittisten tietokoneiden ja vanhempien 32-bittisten tietokoneiden kanssa. Tämän artikkelisarjan tavoitteena on ymmärtää, miten suorittimen koko vaikuttaa käyttöjärjestelmään.
- Windows7 X64:n ja X86:n ero
- Vertailu 32-bittisen ja 64-bittisen Windows 7:n eroista
- Voidaanko saavuttaa 128-bittisen käyttöjärjestelmän toimivuus ja mitä sillä saavutetaan?