Tämä Adoben blogiartikkeli kertoo hyvin, miksi 64-bittinen koodi ei ole mitenkään automaattisesti tehokkaampaa kuin 32-bittinen. 64-bittiset opcodet, pointterit ja rekisteripinot täyttävät prosessorin sisäisen cachen paljon nopeammin, joten 64-bittisen koodin suoritus voi olla hitaampaa kuin 32-bittisen. Pääasiallinen etu saadaan vain silloin, kun yksittäinen sovellus tarvitsee yli 4GB muistia.

Toinen tekniikkaa tuntematonta väkeä hämmentävä seikka on se, että 64-bittiset kernelit tarvitsevat 64-bittiset laiteajurit. Monessa blogissa on ihmetelty, miksi Mac OS X Snow Leopard käynnistyy oletuksena 32-bittisellä kernelillä, vaikka siinä olisi 64-bittinenkin. Syy on yksinkertaisesti se, että lukemattomilla ihmisillä on käytössään vanhoja oheislaitteita, joille on saatavilla ainoastaan 32-bittiset ajurit, eivätkä nämä laitteet toimisi 64-bittisessä kernelissä.

Kernelin 32-bittisyydellä on sinänsä hyvin vähän vaikutusta 64-bittisten sovellusten toimivuuteen. Vaikka koodi on 32-bittistä, se voi silti allokoida normaaliin tapaan muistia koko 64-bitin alueelta sovellusten käyttöön. Prosessorihan ajaa eri koodisegmenttejä niiden CS.L-bitin perusteella joko 64- tai 32-bittisessä tilassa, ja tämä switchailu eribittisten sovellusten ja kernelin välillä hoidetaan hyvin matalalla tasolla prosessorin sisässä.

Oleellista lienee lähinnä se, että 64-bittisessä kernelissä laiteajurit ja kernelin muut komponentit pääsevät vihdoin pyörimään 64-bittisessä tilassa, eli hyödyntämään laajempia rekistereitä ja niin edelleen. Tämä on tietysti tulevaisuuden suunta, mutta Applella on selvästi käyttäjäystävällisempi lähestymistapa 64-bittisyyteen siirtymiseen kuin esimerkiksi Microsoftilla. Windowsistahan pitää edelleen valita asennusvaiheessa joko 32- tai 64-bittinen versio, ja 64-bittisessä laiteajurit toimivat vähän miten sattuu, jos niitä nyt edes on olemassa. Snow Leopardissa taas bittisyys määräytyy automaattisesti jokaisen käynnistyksen yhteydessä, ja halutessa sen voi pakottaa 64-bittiseksi painamalla '6'- ja '4'- näppäimet pohjaan.

Published 24.8.2009