La domanda a 64 bit

C'è un computer a 64 bit nel tuo futuro?





Con tutto il clamore che circonda i processori a 64 bit, probabilmente presumi che la mia risposta sarebbe un inequivocabile sì, e anche dannatamente presto! Ma metti da parte le spacconate di marketing su chip come Athlon64 di AMD; in effetti, avere 64 bit è molto meno importante di quanto l'industria dei computer possa pensare. In effetti, a meno che tu non sia un utente Macintosh, potresti non trovarti ad acquistare un computer a 64 bit per un altro decennio, se, in effetti, ne comprerai uno.

Innanzitutto, un po' di background. I processori nella stragrande maggioranza dei computer desktop e laptop di oggi sono chip a 32 bit. La maggior parte di essi si basa sull'architettura IA32 di incredibile successo di Intel, nota anche come x86 (come in 286, 386, 486). Le macchine Intel Celeron e Pentium sono tutte IA32, così come i chip Athlon di AMD.

Ma all'improvviso le macchine a 64 bit hanno una sorta di cachet. Da due anni AMD vende processori in grado di eseguire contemporaneamente codice a 32 e 64 bit; i computer costruiti con questi chip possono eseguire Linux o una versione speciale a 64 bit di Windows XP che Microsoft ha rilasciato all'inizio di quest'anno. Apple, nel frattempo, fornisce tutti i suoi computer Power Mac con il microprocessore G5, un cervello a 64 bit creato da IBM. E in un certo senso, tutti questi sistemi desktop stanno recuperando terreno: Nintendo ha effettuato la transizione a 64 bit nel 1996 quando ha lanciato la sua console di gioco Nintendo64.



Per capire perché tutto questo è importante, devi prima capire che la frase 32 bit è una specie di scorciatoia usata dai progettisti di computer. Questo numero si riferisce a due cose all'interno dell'architettura del computer. Innanzitutto, indica quanti bit utilizzano questi computer quando specificano la posizione in memoria in cui è archiviata un'informazione. In secondo luogo, indica la dimensione dei registri all'interno del microprocessore che vengono utilizzati per eseguire operazioni matematiche. Ogni bit può essere un 1 o uno 0, quindi 32 bit possono essere usati per rappresentare 232 o 4.294.967.296 valori diversi. Pertanto, l'ovvia differenza tra le macchine a 32 bit e quelle a 64 bit è che i sistemi a 64 bit sono macchine molto più grandi: possono indirizzare più memoria e possono fare calcoli con numeri più grandi.

Ma di più non significa necessariamente meglio, dipende da cosa stai ottenendo di più.

Giù per la memoria



Il passaggio da 32 bit a 64 bit è più importante quando si tratta della capacità di questi computer di indirizzare la memoria. Un programma in esecuzione su un computer a 32 bit può facilmente indirizzare 4 gigabyte di memoria richiamata, 232 sono circa 4,3 miliardi. D'altra parte, un programma in esecuzione su una macchina a 64 bit può indirizzare 264, ovvero 4 miliardi di volte 4 miliardi di byte, un numero sorprendentemente grande. Basta fare i numeri ed è chiaro che c'è molto più margine su un sistema a 64 bit. Ma questi due fatti sono in realtà responsabili di molta confusione, come vedremo.

Il personal computer originale di IBM utilizzava il microprocessore Intel 8088, un piccolo chip divertente pieno di strani compromessi ingegneristici. Nel suo cuore, l'8088 era un processore a 16 bit: aveva registri matematici a 16 bit, che gli permettevano di rappresentare facilmente numeri tra 0 e 65.535 (o tra -32.768 e 32.767) e registri di indirizzo a 16 bit, che gli permettevano di comunicare facilmente con 64 kilobyte di memoria principale. Ora, 64K non erano sufficienti per fare molto, anche nel 1981 quando il PC è stato spedito per la prima volta, quindi l'8088 aveva una serie di registri di segmento che venivano spostati a sinistra di 4 bit e aggiunti al registro degli indirizzi prima che gli indirizzi di memoria fossero effettivamente letto o scritto. Di conseguenza, l'8088 potrebbe accedere facilmente fino a un megabyte di memoria. Un megabyte era un sacco di RAM nel 1981. In effetti, i progettisti di computer di allora non potevano immaginare che un tipico utente domestico o aziendale avrebbe avuto bisogno di così tanta memoria, per non parlare di potersela permettere, per molti anni a venire. Quindi i progettisti di IBM hanno tracciato una linea sulla mappa della memoria del computer e hanno posizionato la memoria per il display video proprio nel mezzo della metà superiore, limitando effettivamente i primi PC a non più di 640 kilobyte di RAM. Questa è stata la genesi del limite di 640K imposto dal computer IBM sul suo sistema operativo DOS.

Alcuni anni dopo, Intel introdusse il suo successivo microprocessore, l'80286. (L'80186 non è mai stato realmente utilizzato per i personal computer). Il 286 era la base del PC/AT di IBM. Aveva una modalità di emulazione (chiamata modalità reale) che consentiva al 286 di eseguire lo stesso software dell'8088, ma aveva anche una modalità avanzata e protetta che gli permetteva di funzionare con un massimo di 16 megabyte di RAM. La stragrande maggioranza di queste macchine funzionava in modalità reale in modo da poter eseguire il DOS di Microsoft e tutti gli altri programmi scritti per il PC IBM originale. In effetti, il 286 era molto più popolare nell'esecuzione del software 8088 di quanto non lo fosse mai stato l'8088, perché il 286 era molto più veloce. Quando arrivi al punto, pochissimi chip 286 sono stati effettivamente eseguiti nella loro modalità protetta.



Nel 1985 Intel ha introdotto il chip 80386, il primo processore a 32 bit della famiglia x86. Ancora una volta questo microprocessore aveva una cosiddetta modalità reale in modo da poter eseguire DOS e il resto della base software dell'8088. Queste macchine potevano girare intorno all'8088 originale, non perché fossero macchine a 32 bit, ma perché avevano frequenze di clock più veloci e un design interno più sofisticato. C'erano anche un certo numero di aziende che vendevano estensori DOS che consentivano ai programmi caricati in DOS di sfruttare l'intero spazio degli indirizzi a 32 bit. Questi extender hanno portato il computer in modalità a 32 bit per la matematica, ma hanno riportato la macchina in modalità a 16 bit ogni volta che il programma aveva bisogno di accedere al disco rigido del computer. Tuttavia, i programmi a 32 bit in esecuzione su questi processori a 32 bit erano l'eccezione, non la regola.

Non è stato fino a quando le macchine a 32 bit sul campo hanno superato di gran lunga quelle a 16 bit che Microsoft ha iniziato a distribuire il suo primo vero sistema operativo a 32 bit, Windows 95. A quel tempo Intel aveva prodotto altre due generazioni di sistemi x86 basati su macchine: l'80486 e il Pentium. Sì, Microsoft avrebbe potuto fornire un sistema operativo a 32 bit anni prima della spedizione di Windows 95. Ma farlo sarebbe stato probabilmente un errore: perché vendere un sistema operativo che non funziona sulla maggior parte dei PC in commercio?

Tutta questa storia è tornata improvvisamente rilevante mentre consideriamo il prossimo grande salto nell'architettura dei PC: il passaggio dall'elaborazione a 32 bit a quella a 64 bit. Ma mentre il vantaggio che passa da uno spazio di indirizzi a 16 bit (o 20 bit, se si considera l'architettura segmentata dell'8088) a 32 bit è stato enorme, il passaggio da 32 bit a 64 bit verrà notato a malapena dalla maggior parte degli utenti di computer. Il motivo è che 32 bit sono in realtà abbastanza grandi da risolvere la stragrande maggioranza delle attività di elaborazione, non solo di oggi, ma anche di domani.



È improbabile che il passaggio da 32 bit a 64 porti lo stesso tipo di salto quantico in velocità o capacità che abbiamo ottenuto passando da 16 bit a 32. Sì, 64 bit di indirizzo sono davvero enormi, ma 32 bit non sono niente di cui starnutire.

Oggi sono poche le applicazioni che richiedono realmente più di 4 gigabyte di memoria. Se quello che stai facendo è l'elaborazione di testi, fogli di calcolo, posta elettronica e navigazione sul Web, 32 bit forniranno spazio di indirizzi sufficiente per il futuro concepibile. Il mio computer desktop Windows è una copia di memoria di Internet Explorer che si gonfia regolarmente fino a 64 megabyte. Ma è ancora un sessantaquattresimo delle dimensioni della mappa di memoria di 4 gigabyte della macchina. Non riesco a immaginare di poter eseguire un browser Web che richiederebbe una mappa di memoria di 4 gigabyte: ci vorrebbero quasi 10 ore solo per scaricare così tante informazioni sulla mia linea DSL!

Potresti pensare che il multitasking con altre applicazioni di dimensioni simili causerebbe una pressione della memoria sempre maggiore, al punto che una fa preoccuparsi dell'utilizzo dello spazio degli indirizzi. Ma non è così. Windows, Unix e altri sistemi operativi moderni utilizzano una tecnica chiamata memoria virtuale per assegnare a ciascun programma la propria mappa di memoria isolata. Su un computer a 32 bit ciò significa che ogni programma in esecuzione ottiene i propri 4 gigabyte di memoria virtuale con cui giocare. Quindi, mentre una singola istanza di un programma in esecuzione non può accedere a più di 4 gigabyte, una macchina a 32 bit che esegue Windows XP con 10 o 20 gigabyte di memoria non avrebbe problemi a condividere quella memoria tra un browser gonfio, una copia gonfia di Word 2003 e una copia gonfia di Access.

Laddove lo spazio degli indirizzi a 64 bit fa la grande differenza è quando un singolo programma deve accedere a più di 4 gigabyte di memoria contemporaneamente. Ad esempio, se stai eseguendo un data warehouse per una multinazionale con 10 terabyte di spazio di archiviazione online, il tuo server di database potrebbe trarre grandi vantaggi dall'avere 10 o 20 gigabyte di file di indice archiviati in memoria. Una simulazione su larga scala potrebbe trarre vantaggio allo stesso modo dall'avere molta RAM a disposizione per fare cose come modellare il tempo per dopodomani.

Con aziende come Dell che spediscono computer di casa con 512 megabyte di RAM e computer Windows XP che utilizzano abitualmente 1,5 gigabyte di memoria per contenere tutti i loro programmi, i marketer che spingono l'elaborazione a 64 bit diranno che hai bisogno di una macchina a 64 bit per superare il limite di 4 gigabyte che si avvicina rapidamente. Non crederci. In effetti, Dell vende già computer a 32 bit con 8, 16 e 32 gigabyte di RAM. I marketer vogliono che tu acquisti macchine a 64 bit perché questi sistemi costano di più.

L'altro modo in cui le macchine a 64 bit superano i sistemi a 32 bit di oggi è quando si tratta di fare matematica. Mentre le odierne macchine a 32 bit hanno processori che possono rappresentare qualsiasi numero intero compreso tra 0 e 4.294.967.295 (ovvero 232-1), una macchina a 64 bit può rappresentare numeri interi tra 0 e 18.446.744.073.709.551.615 (264-1).

Ancora una volta, essere in grado di fare matematica con questi enormi numeri in una singola istruzione può essere un enorme vantaggio in un piccolo numero di applicazioni scientifiche. Ma si scopre che per la maggior parte delle attività quotidiane d'ufficio la matematica a 64 bit non è poi così utile. Per cominciare, è perché abbiamo già macchine che possono fare 64 bit: le macchine di oggi lo fanno solo con unità di elaborazione in virgola mobile speciali, oppure lo fanno con più istruzioni a 32 bit. Per la maggior parte delle operazioni, semplicemente non è necessario uno speciale hardware matematico a 64 bit.

Non devi credermi sulla parola. Basta guardare la storia di altre architetture a 64 bit. Sebbene il 64 bit sia una novità nel mondo x86, altri microprocessori sono passati a 64 bit negli anni '90. Alpha, MIPS64 e Sparc64 sono tutte macchine a 64 bit. Eppure la maggior parte dei programmi in esecuzione su questi computer ignora effettivamente i primi 32 bit di ogni numero, perché quelle cifre sono invariabilmente 0.

Il vero profitto a 64 bit: design più recenti

Tutti questi argomenti contro le macchine a 64 bit si fondono nel legno, tuttavia, quando ti siedi davanti al nuovo computer G5 di Apple: non importa se stai modificando video o semplicemente navighi sul Web, la macchina si sente notevolmente più veloce di quella a 32 bit. cugini G4. Quindi cosa dà?

Con la notevole eccezione del processore Itanium di Intel, le odierne macchine a 64 bit generalmente eseguono il codice a 32 bit più velocemente dei loro cugini a 32 bit per lo stesso motivo per cui l'Intel 80386 a 32 bit eseguiva il codice a 16 bit più velocemente dell'8088 e dell'80286 Il motivo è che le CPU a 64 bit sono semplicemente dispositivi più moderni. Questi chip sono realizzati con processi al silicio più avanzati, hanno frequenze di clock più elevate e contengono più transistor. L'Athlon64 di AMD e il G5 di IBM non hanno solo registri più ampi: hanno anche unità più funzionali all'interno dei loro cervelli di silicio. Questi chip fanno un lavoro migliore in cose come l'esecuzione di più istruzioni contemporaneamente, l'esecuzione fuori ordine e la previsione del ramo. Quel PowerMac G5 a 64 bit in esecuzione nell'Apple Store esegue in gran parte codice a 32 bit. L'impressionante velocità della macchina deriva dalla combinazione di due processori, frequenze di clock più elevate, una cache più grande e un bus di memoria migliore.

Sì, AMD e IBM avrebbero potuto inserire la stessa tecnologia in un nuovo design a 32 bit. Ma di questi tempi, progettare un nuovo chip costa miliardi di dollari. Un processore a 64 bit può avere un prezzo più elevato rispetto a una CPU a 32 bit, quindi è nel migliore interesse di queste aziende inserire la loro tecnologia più recente e migliore nei loro prodotti a 64 bit.

Guardando al futuro, l'elaborazione a 64 bit prenderà davvero piede perché le macchine a 64 bit faranno un lavoro migliore eseguendo il codice a 32 bit di oggi rispetto ai processori a 32 bit di oggi. Ma il mercato potrebbe facilmente evolvere in un'altra direzione. Quei 32 bit in più consumano molta energia, quindi le aziende che costruiscono CPU per laptop e palmari potrebbero semplicemente ripiegare i trucchi sviluppati per macchine a 64 bit nei loro dispositivi a 32 bit.

La stessa cosa è successa nelle console di gioco. Sebbene alcuni anni fa ci sia stata molta eccitazione quando Nintendo ha deciso di utilizzare il processore R4300i a 64 bit per il suo sistema Nintendo 64, i giocatori di videogiochi non hanno davvero beneficiato dei 32 bit extra di indirizzo o matematica. L'R4300i era un chip veloce all'epoca perché implementava molte altre tecniche all'avanguardia per accelerare l'esecuzione del programma. Avrebbe potuto fornire lo stesso livello di prestazioni se quei trucchi fossero stati applicati a un processore a 32 bit. Erano i trucchi che portavano la velocità, non i bit.

vincolato a 128 bit?

Avendo vissuto il salto da 8 a 16 bit, poi da 16 a 32 e ora da 32 a 64, è naturale pensare che in un lontano futuro faremo la transizione dai sistemi a 64 bit a 128 bit. Non trattenere il respiro.

La cosa importante da ricordare qui è che i bit sono esponenziali. Un sistema a 32 bit può indirizzare 65 mila volte più memoria di un sistema a 16 bit, mentre un sistema a 64 bit ha uno spazio di indirizzi di memoria teorico 4 miliardi volte più grande di quello di un sistema a 32 bit. Potresti effettivamente creare un singolo sistema di memoria che contenga 264 byte di spazio di archiviazione con l'hardware di oggi, ma dovresti utilizzare più di 200 milioni di dischi rigidi, ognuno con 256 gigabyte di informazioni. È più spazio di archiviazione di quello fornito dall'intero settore dei dischi rigidi del mondo nel 2003. Quindi, sebbene sia concepibile che tu possa costruire un sistema di memoria con 264 byte di spazio di archiviazione oggi, probabilmente dovresti usare tutti i computer nel mondo che sono connessi a Internet .

Sebbene sia possibile immaginare un futuro in cui i computer accederanno a database da 264 byte, è difficile concepire un singolo problema che richiederebbe a un programma di avere così tanta memoria accessibile in un singolo spazio di indirizzi. Uno dei motivi per cui un sistema così incredibilmente grande non ha senso è che non costruiresti un sistema del genere con un singolo processore e un unico spazio di indirizzi unificato: useresti invece milioni o miliardi di elementi di elaborazione, tutti con memoria sovrapposta e responsabilità. In questo modo, se un processore o un blocco di memoria si guastava, gli altri sistemi avrebbero preso il sopravvento senza problemi.

Dati tali argomenti, è piuttosto irragionevole immaginare che avresti bisogno di 2128 bit di archiviazione, non nella nostra vita, non nella vita di nessuno.

D'altra parte, potrei sbagliarmi completamente su tutto questo: 64 bit potrebbero essere la cosa giusta per fare la realtà virtuale di tutto il corpo con capacità di morphing della mente-incontra-la. O più probabilmente, aziende come Dell potrebbero scegliere di seguire l'esempio di Apple e smettere di vendere macchine di fascia bassa con processori a 32 bit, affidandosi invece al clamore di marketing delle macchine a 64 bit per giustificare i margini di profitto più elevati.

Ma ricorda, c'è sempre spazio in fondo. E poiché è probabile che le macchine a 32 bit siano utili per almeno un decennio a venire, se non di più, sarei sorpreso di vedere Dell cedere questo mercato a un'altra società. Basta guardare Apple: mentre tutte le macchine desktop PowerMac vendute da Apple sono dotate di processori G5, l'azienda utilizza ancora G4 nei suoi computer iMac, eMac e PowerBook.

Personalmente, penso che i sistemi a 32 bit rimarranno con noi per molto tempo a venire.

nascondere