Le applicazioni del mondo reale avranno mai bisogno di uno spazio di indirizzamento piatto a 128 bit?


32

Questo è un po '"un megabyte dovrebbe essere sufficiente per chiunque", ma ...

Uno spazio di indirizzi flat a 64 bit consente fino a 4,3 miliardi di volte più spazio di uno spazio di indirizzi a 32 bit. Sono 17.179.869.184 GiB.

Ovviamente, il passaggio da 8 bit a 16 bit è stato piuttosto rapido (sto visualizzando le cose in un modo da adolescente durante gli anni '80, ignorando tutti quei mainframe e minis perché non potevano gestire un porto di Elite). La transizione da 16 bit a 32 bit ha richiesto un po 'più di tempo e in realtà 32 bit sono durati un po'.

Ora abbiamo 64 bit, sarebbe stupido dire "17.179.869.184 GiB dovrebbero essere sufficienti per chiunque"?

Questa è una domanda per i programmatori perché ho davvero in mente il punto di vista della programmazione. Anche se un computer un giorno ha una quantità apparentemente infinita di memoria di lavoro, ciò non significa che le applicazioni dovranno vedere uno spazio di indirizzamento piatto apparentemente infinito.

Fondamentalmente, possiamo noi programmatori emettere un sospiro di sollievo e dire "beh, qualunque cosa interi o float possano fare, almeno non devo preoccuparmi che i miei puntatori crescano ancora?".


11
Quanti dati genera l'LHC ogni giorno?
Peter Taylor,

7
I processori a 8 bit avevano effettivamente uno spazio degli indirizzi a 16 bit - da qui la "transizione rapida" :-)
Neil Butterworth,

1
Per fornire un certo contesto, uno spazio di indirizzi a 128 bit fornisce circa tanti indirizzi quante sono le stelle nell'universo osservabile o metà degli atomi nella nostra galassia (entro un paio di ordini di grandezza).
Rein Henrichs,

5
@Rein: In altre parole, non abbastanza. Come possiamo simulare un universo con indirizzi di memoria insufficienti anche per metà degli atomi nella nostra stessa galassia. amiright
quentin-starin,

7
Penso che si possa rispondere abbastanza facilmente; Star Trek Holodeck. È stato detto abbastanza.
Dunk,

Risposte:


27

Non credo che avremo macchine con più di 2 ^ 64 byte di RAM in un futuro prevedibile, ma non è tutto ciò per cui lo spazio di indirizzi è utile.

Per alcuni scopi, è utile mappare altre cose nello spazio degli indirizzi, i file sono un esempio importante. Quindi, è ragionevole avere più di 2 ^ 64 byte di qualsiasi tipo di memoria collegata a un computer nel prossimo futuro?

Dovrei dire di si. Devono esserci ben oltre 2 ^ 64 byte di spazio di archiviazione, dato che sono solo circa 17 milioni di persone con dischi rigidi da terabyte. Da qualche anno disponiamo di database a più petabyte e 2 ^ 64 sono solo circa 17 mila petabyte.

Penso che probabilmente avremo un uso per uno spazio di indirizzi> 2 ^ 64 entro i prossimi decenni.


4
Questo mi fa pensare a un indirizzamento semplice per indirizzare qualsiasi byte di memoria disponibile su Internet. Penso di aver sentito qualcosa sui sistemi operativi che forniscono un indirizzamento semplice di tutto l'archiviazione sul sistema (non è necessario mappare i file nella memoria: sono già lì). Trasformare un indirizzo IP in parte del tuo indirizzo di memoria richiederà sicuramente più di 64 bit - IPv6 ha già bisogno di 128 bit solo per l'indirizzo. Ci sarebbe un'enorme quantità di ridondanza nello spazio degli indirizzi, ma potrebbe comunque avere senso.
Steve314,

2
Sì. Semplificherebbe la vita se si mappassero tutte le unità e i file nello spazio degli indirizzi. Un sacco di codice relativo alla manipolazione dei file su disco sarebbe molto più semplice se si avesse semplicemente un puntatore all'intero file. Un segmento: l'architettura offset sarebbe l'ideale per questo genere di cose.
Loren Pechtel,

Ciò presuppone che ogni byte di tutti i dispositivi di archiviazione di massa sia direttamente indirizzabile.
Vartec,

2
@ steve314: stai pensando al concetto di negozio a livello singolo , lanciato da IBM S / 38. Roba interessante, ma penso che sarebbe difficile integrarla con i sistemi di oggi.
TMN,

1
@TMN: beh, IBM i (aka i5 / OS, aka OS / 400) lo utilizza ancora ed è probabilmente ancora uno dei "sistemi di oggi".
Joachim Sauer,

16

A meno che i computer non inizino a utilizzare alcune tecnologie innovative che non esistono ancora nemmeno nei laboratori, avere più di 2 64 spazi indirizzabili non è fisicamente possibile con l'attuale tecnologia al silicio . La tecnologia sta colpendo i limiti fisici . Il limite di velocità (GHz) è stato raggiunto già alcuni anni fa. Anche il limite di miniaturizzazione è molto vicino. Attualmente la tecnologia più avanzata in produzione è 20nm, nei laboratori è 4nm con transistor a 7 atomi.

Giusto per mettere in prospettiva quanto tempo ci vuole per sviluppare una nuova tecnologia: i computer attuali sono basati su transistor inventati nel 1925 e l'attuale tecnologia al silicio risale al 1954.


Per quanto riguarda le tecnologie alternative:

  • calcolo ottico - potrebbe aumentare la velocità di calcolo, ma non risolve il problema della miniaturizzazione per l'archiviazione;
  • computazione quantistica - per essere utilizzato completamente, richiederà un paradigma di programmazione completamente nuovo, quindi se i puntatori saranno a 64 o 128 bit è il minimo dei tuoi dubbi. Anche le stesse limitazioni fisiche alla miniaturizzazione si applicano a questa tecnologia;
  • Elaborazione del DNA : sono giocattoli a prova di concetto, progettati per risolvere una particolare classe di problemi. Non fattibile per l'uso nella vita reale. Per ottenere calcoli che su PC normali verrebbero eseguiti in meno di un secondo, sarebbe necessario un serbatoio di DNA di dimensioni dell'Oceano Pacifico e poche migliaia di anni. Dato che è un processo naturale e biologico, non c'è modo di miniaturizzare o accelerare.

4
Quindi, in pratica, stai dicendo che non ci saranno più innovazioni tecnologiche? Saremo bloccati per sempre con la tecnologia al silicio. Cose radicalmente nuove come l'informatica quantistica o i computer DNA rimarranno per sempre nella ricerca. Lo credi davvero?
Nikie,

2
@nikie: i computer quantistici non sono magici. Usano ancora atomi. Sono ancora limitati dalla fisica. Computer DNA? Sei serio??? È totalmente inutile oltre ad essere la prova del concetto.
Vartec,

4
@Thor: beh, non è fisicamente possibile nemmeno mettere l'uomo sulla Luna nel 2011.
Vartec,

7
Perché -1? Il riassunto ha delle basi molto solide. 2 ^ 64 è un numero molto, molto, molto grande. Non è 2 ^ 32 * 2, è molto più grande e 2 ^ 128 è piuttosto folle. Ci vorrebbe un sacco di tempo solo per fare for(unsigned __int128 i=0; i<2^128; i++){}. Con la tecnologia attuale non c'è molto uso di numeri interi a 128 bit. A parte forse tornare allo spazio degli indirizzi non protetti, perché passare accidentalmente sulla memoria di altre applicazioni nello spazio degli indirizzi a 128 bit sarebbe abbastanza impossibile da fare, anche se si scrivesse a indirizzi casuali in modo casuale.
Coder

2
@nikie: I computer quantistici sono irrilevanti per queste discussioni, poiché l'uso dei modelli di memoria attuali (che sono l'argomento qui) sui computer quantistici vanifica il loro intero scopo. Oh, e sì, i computer DNA non saranno mai utili. È come usare gli automi cellulari come base per un modello di esecuzione.
back2dos,

15

Il supercomputer Thorbjoern collegato ha circa 2 ^ 47 B di memoria fisica.
Supponendo che la Legge di Moore valga per la memoria dei supercomputer, diventerà 2 ^ 64 B di memoria fisica in soli 34 anni. È come "OMG, vivremo per vederlo !!!!". Può essere. E infatti, è affascinante. Ma altrettanto irrilevante.

La domanda è: ho bisogno di uno spazio di indirizzi a 128 bit per utilizzare 2 ^ 65 B di memoria fisica?
La risposta è NO . Ho bisogno di uno spazio di indirizzi a 128 bit per indirizzare 2 ^ 65 B di memoria virtuale da un singolo processo .

Questo è un punto chiave della tua domanda: "Le applicazioni del mondo reale avranno mai bisogno di uno spazio di indirizzamento piatto a 128 bit ?". " Need ", non assolutamente, puoi cavartela con meno, rendi lo spazio degli indirizzi mappato (non piatto); ma non avresti uno "spazio di indirizzamento piatto a 128 bit".

Ad esempio, supponi di voler assegnare agli atomi sulla Terra un indirizzo di memoria fisica (per qualsiasi motivo, principalmente per fornire questo semplice esempio), inizia da zero e continua a contare (torna da me quando hai finito). Ora qualcun altro desidera fare la stessa cosa su Kepler-10c (che è a 568 metri di distanza).

Non vorrai uno scontro di indirizzi, quindi l'altra persona alloca un indirizzo di memoria alta nello spazio di memoria piatto disponibile, che consente a te, loro e le persone successive di essere indirizzate direttamente , senza mappare la memoria. Se non lo farai o non riuscirai a cavartela senza una relazione uno a uno tra la tua memoria e il suo indirizzo (sei disposto a implementare una matrice sparsa), puoi cavartela con una misera memoria a 64 bit o meno.

Ogni volta che qualcuno propone " X quantità di Y sarà sufficiente " tale previsione spesso rimane di breve durata.

Quindi la domanda è: quanto presto avremo singoli processi , che usano 2 ^ 65 B di memoria. Spero mai.

Il grande problema del nostro tempo è che la potenza di elaborazione di una singola CPU è limitata. C'è un limite di dimensioni definito dalla dimensione degli atomi, e per una data dimensione, c'è un limite nella frequenza di clock, data dalla velocità della luce, la velocità con cui le informazioni sui cambiamenti nei campi magnetici vengono propagate nel nostro universo.
E in realtà, il limite è stato raggiunto qualche anno fa e ci siamo stabiliti a frequenze inferiori a quelle precedenti. La potenza della CPU non aumenterà più in modo lineare. Le prestazioni sono ora migliorate attraverso l'esecuzione fuori ordine, la previsione delle filiali, cache più grandi, più codici operativi, operazioni vettoriali e cosa no. C'è stata ottimizzazione architettonica .
E un'idea importante è quella della parallelizzazione. Il problema con la parallelizzazione è che non si ingrandisce. Se hai scritto codice lento 20 anni fa, ha funzionato molto più velocemente 10 anni fa. Se scrivi codice lento ora, non diventerà molto più veloce in 10 anni.

I processi che usano 2 ^ 65 B di memoria sono un segno della massima stupidità. Ciò dimostra che non c'è stata ottimizzazione architettonica . Per elaborare in modo ragionevole questi dati, occorrerebbero circa 10 milioni di core, la maggior parte dei quali impiegherebbe del tempo ad attendere la disponibilità di alcune risorse, poiché quei core che hanno effettivamente acquisito la risorsa utilizzano la memoria fisica su Ethernet su una macchina completamente diversa. La chiave per affrontare problemi grandi e complessi è scomporli in problemi piccoli e semplici e non costruire sistemi sempre più grandi e sempre più complessi. È necessario il partizionamento orizzontale quando si ha a che fare con sh * tload di dati.

Ma anche supponendo, questa follia dovrebbe andare avanti, certi che a 128 bit è sufficiente :

  • La Terra ha circa 8,87e + 49 atomi , che sono 2 ^ 166 atomi che abbiamo .
  • Supponiamo che costa 2 ^ 20 atomi per contenere un bit. Ciò include anche tutto il cablaggio e la plastica e l'energia che ne deriva. Non puoi semplicemente gettare i transistor in una scatola e chiamarlo un computer. Quindi 2 ^ 20 sembra piuttosto ottimista.
  • Per utilizzare lo spazio degli indirizzi a 128 bit, abbiamo bisogno di 2 ^ 133 bit, quindi 2 ^ 152 atomi di cui abbiamo bisogno . Supponendo un'equa distribuzione degli atomi sulla terra, vediamo quanta crosta dobbiamo prendere per ottenerli:

    let
       q  := ratio of atoms needed to atoms present = 2^-14
       Vc := volume of the crust to be used
       Ve := volume of the earth
       re := the radius of the earth = 6.38e6
       tc := the required thickness of the crust
       k  := 0.75*pi
    thus
                                 Vc / Ve = q 
       (k*re^3 - k*(re-tc)^3) / (k*re^3) = q
                    1 - ((re-tc) / re)^3 = q        
                              (re-tc)/re = root3(1-q)
                                      tc = re * (1 - root3(1-q))
                                      tc = 6.38e6 * (1 - (1 - 2^-14)^(1/3))
                                      tc = 129.804073
    

    Quindi hai 130 metri da percorrere su tutta la superficie (incluso l'80% coperto di acqua, sabbia o ghiaccio). Non succederà. Anche supponendo che tu possa scavare (lol) e tutta questa faccenda è adatta per essere trasformata in chip, dove otterrai l'energia?


8
D'altra parte avresti bisogno di un computer molto grande per fare la valutazione dell'impatto ambientale per lo strip mining dell'intero pianeta, quindi forse si giustificherebbe se stesso (ottenendo un po 'Hitch Hikers qui)
Martin Beckett,

2
Un bit = 10 ^ 6 atomi. Tutta la Terra = 10 ^ 50 atomi. L'intero universo = 10 ^ 80 atomi. La notazione esponenziale è fantastica! :-)
Konamiman,

2
Il punto non è di utilizzare un intero spazio di indirizzi a 128 bit, ma di utilizzare uno spazio di indirizzi a 64 bit. Quindi, a che punto è necessario un bit di indirizzamento aggiuntivo oltre i 64 bit? Quanto spazio fisico (molecole) è necessario per 2 ^ 65 byte?
David R Tribble,

1
Quindi stai dicendo che un'architettura di memoria fisica a 128 bit richiede capacità di produzione su scala planetaria ?
Indulgere il

Sono stati ideati transistor a singolo atomo. Come si arriva a 2 ^ 20 (circa un milione) di atomi per numero di bit? en.wikipedia.org/wiki/5_nanometer
JimmyJames

8

Bene, potremmo sicuramente usare un ampio spazio di indirizzi.

Immagina questo:

  1. Lo spazio degli indirizzi non è limitato a un singolo computer. Invece, un indirizzo identifica in modo univoco una cella di memoria in uno spazio di indirizzi universale. Quindi puoi avere un puntatore a una cella di memoria su qualsiasi computer al mondo. Sarà necessario un protocollo per abilitare la lettura dalla memoria remota, ma si tratta di un dettaglio di implementazione. :-)

  2. La memoria è Scrivi una volta, Leggi molti, ovvero puoi scrivere i dati su un indirizzo di memoria solo una volta. Per un valore mutabile, dovrai allocare un nuovo pezzo di memoria ogni volta che cambia. Noi programmatori abbiamo iniziato a vedere i vantaggi dell'immutabilità e della memoria transazionale, quindi un progetto hardware che non consente nemmeno la sovrascrittura della memoria potrebbe non essere un'idea così impossibile.

Combina queste due idee e avrai bisogno di un enorme spazio per gli indirizzi.


E perché dovresti indirizzare ogni byte di ogni computer al mondo? (Suppongo che tu non sia la NSA.)
David R Tribble,

perché costruiremo il sovranità dell'intelligenza artificiale che abbraccia il mondo per condurci naturalmente alla salvezza!
Sara

7

Più i computer diventano capaci, più i problemi complessi con cui sono tenuti a lavorare.

Il più grande supercomputer elencato su top500.org è http://www.top500.org/system/10587 con circa 220 Tb RAM e 180000 core. In altre parole, questo è ciò con cui le "applicazioni della vita reale" possono funzionare su questa piattaforma.

Oggi i computer sono potenti come i supercomputer 10-15 anni fa (anche se la potenza di calcolo potrebbe essere nascosta nella scheda grafica).

Quindi un fattore 100 in memoria tra 10-15 anni significherà che lo spazio di indirizzamento a 64 bit sarà un fattore limitante in circa 100 anni (dato che log (100 milioni) / log (100) è circa 6) se la tendenza attuale è valida.


nota: matematica non verificata, probabilmente abbastanza fuori.

17
è proprio come una previsione del 1800, che se il traffico cresce così tanto, intere città saranno coperte da montagne di letame di cavallo :-P
vartec,

1
220 GB non è così tanto in questi giorni. Esistono server con 256 GB di RAM. 180000 core? Questo è qualcosa :). Lo sto solo sottolineando perché la preoccupazione principale di OP è la dimensione della RAM.
Tamás Szelei,

1
@vartec, mostra solo che l'estrapolazione cieca potrebbe non essere valida. Stessa cosa qui.

6
Tamás aveva ragione: nel link fornito, indica "229376 GB", che sarebbe più simile a 220 TB. Inoltre, supponendo 4 MB di cache L2 per core, 180K core hanno già una cache L2 da 720 GB;)
back2dos

5

Tutta questa discussione è abbastanza divertente da leggere, un'opinione molto forte a favore e contro ...

Qui qualcosa ..

Capisco dalla domanda che era tecnologia agnostica e non vincolata dal tempo. Pertanto, l'attuale sviluppo di silicio, computer quantistici o Infinite Monkey Peddling Abacus sono in effetti irrilevanti.

Anche i calcoli e le estrapolazioni sono abbastanza divertenti, anche se la risposta di back2dos funziona abbastanza bene per illustrare le dimensioni di ciò che questo numero rappresenta. quindi lavoriamo con quello.

Metti la tua mente nel futuro in cui l'uomo non è più legato al confine del suo piccolo pianeta, è stato sviluppato un mezzo di trasporto realistico per consentire il trasporto su distanze molto grandi e le strutture sociali (economiche, politiche ecc.) Si sono evolute per trascendere le generazioni. I progetti faraonici che si estendono sono diventati luoghi comuni. Concentriamoci su due aspetti di questa visione inverosimile del futuro, se si desidera dedicare del tempo a spiegare tutti i dettagli, sono certo che si potrebbe razionalizzare tutto attraverso una serie di plausibili evoluzioni sulle attuali tecnologie. In altre parole, un futuro plausibile, sebbene improbabile ... comunque ...

Il primo progetto chiamato Colosso in memoria di quel primo computer elettronico in quanto è il primo computer planetario. La Colossus Brotherhood ha davvero trovato un modo per catturare un piccolo planetoide e trasformarlo in un computer funzionante. Scoperti di recente nella cintura di Kuyper che è perticamente ricca di isotopi fusibili che la rendono energeticamente autonoma, hanno reso il processo di costruzione completamente autonomo con sonde, robot ecc. Rendendo il sistema informatico autoriparante e autocostruente. In questa condizione sarebbe concepibile che lo spazio degli indirizzi 2 ^ 64 sia in qualche modo limitato per questo progetto poiché desiderano ottenere uno spazio di indirizzi continuo per trasferire facilmente anche applicazioni già esistenti per un altro progetto.

L'altro progetto è più un esperimento di networking che un sistema fisico, tuttavia, ha rapidamente dimostrato che era necessario uno spazio di indirizzi più ampio. 540 anni fa un giovane hacker stava giocando con l'idea di creare una gigantesca rete di bot. Internet si era già espanso per includere le nascenti colonie attorno al sistema solare costruendo sui maggiori progressi fatti nel campo della fusione. Le sue idee erano fondamentalmente di avere piccoli robot sparsi nella rete, ma il payload era destinato a fornire una macchina virtuale unificata in cui il codice sarebbe stato scritto supponendo che avesse tutta la potenza di tutti i robot combinati. Nel compilatore e nella distribuzione sono stati compiuti grandi sforzi nel tentativo di ottimizzare ritardi e sofisticati algoritmi progettati per tenere conto dell'inerzia intrinseca del supporto sottostante. Una lingua è stata appositamente scritta per indirizzare questo nuovo " il nostro hacker ha creato invece una società ombrello e vendendo la potenza di calcolo al miglior offerente. Alla sua morte ha donato questa botnet e tutte le tecnologie a una fondazione. A quel punto la botnet era già in funzione da 64 anni e aveva già superato lo spazio degli indirizzi 2 ^ 64 un po 'di tempo fa, spezzando il preconcetto vecchio di 1000 anni che non avremmo mai bisogno di uno spazio di indirizzi più grande. Oggi 2 ^ 128 è la norma e ciò che verrà utilizzato per Colosso, ma è già in programma di estenderlo a 2 ^ 256. il nostro hacker ha creato invece una società ombrello e vendendo la potenza di calcolo al miglior offerente. Alla sua morte ha donato questa botnet e tutte le tecnologie a una fondazione. A quel punto la botnet era già in funzione da 64 anni e aveva già superato lo spazio degli indirizzi 2 ^ 64 un po 'di tempo fa, spezzando il preconcetto vecchio di 1000 anni che non avremmo mai bisogno di uno spazio di indirizzi più grande. Oggi 2 ^ 128 è la norma e ciò che verrà utilizzato per Colosso, ma è già in programma di estenderlo a 2 ^ 256.

Probabilmente potrei escogitare scenari più plausibili che illustrino che sì ... è abbastanza possibile, anzi, quasi certo, che un giorno avremo bisogno di uno spazio di indirizzo più grande di questo.

Detto questo, tuttavia, non credo che perderei sonno su questo, se la tua applicazione richiede un certo spazio di indirizzi per funzionare correttamente, molto probabilmente vivrà in una VM che offre tutto ciò di cui ha bisogno ...

Quindi ... risposta breve ...

SÌ, molto probabilmente

ma

Perché non affrontare questo quando si presenta il problema ... Personalmente non faccio mai ipotesi nei miei programmi, quindi non ho mai sorprese.


2
Sono divertito a livello di dettaglio nel tuo esempio fittizio. Stai scrivendo un racconto da qualche parte?
Christopher Bibbs,

2

Le posizioni degli indirizzi hanno un costo logaritmico rispetto alla larghezza degli indirizzi, quindi possiamo considerare i limiti superiori in base ai parametri in questione:

64 bit per particelle di sabbia sulla terra = 7.5x10 ^ 18
128 bit per stelle nell'universo osservabile = 10 ^ 24
256 bit per particelle nella terra = 10 ^ 50
512 bit per particelle nell'universo osservabile = 10 ^ 82
1024 -bit per lunghezze cubiche della plancia nell'universo osservabile = 4.65 × 10 ^ 185

  • La scarsità introdotta per hash, sicurezza e indicizzazione

6.6106 ... × 10 ^ 122-bit per possibili configurazioni di particelle nell'universo osservabile = 10 ^ (10 ^ 122)

Potremmo assumere le possibili configurazioni come limite superiore per il più grande indirizzo di memoria costruibile fisicamente possibile.


Per calcolare la larghezza necessaria per n indirizzi, digita wolfram alpha: 2 ^ ceil (log2 (log2 ( n )))
Timothy Swan,

1
Hai ragione sul fatto che potrebbe essere utile avere spazi di indirizzi altamente ridondanti in cui la maggior parte degli indirizzi non fa riferimento a nulla, come nel punto di hashing ecc., Ma penso che qualcuno abbia persino suggerito di codificare gli URL in indirizzi virtuali della macchina (non solo un hash), quindi davvero, non c'è limite superiore a quanto potenzialmente dannoso / ridondante potrebbe essere un futuro schema di indirizzamento virtuale. Non che codificare i dati in indirizzi (invece di cercarli in tabelle potenzialmente protette quando necessario) suona come una buona idea, ovviamente.
Steve314,

0

Beh, penso che per alcuni anni a venire probabilmente tirerai un sospiro di sollievo. Se si osserva la velocità dell'innovazione nell'hardware, si può osservare che negli ultimi anni non si sono verificati progressi significativi. Le CPU con frequenze 2.x GHz sono in circolazione da un po 'di tempo e ogni aumento della potenza di elaborazione al giorno d'oggi deriva dal confezionamento di più core sul chip. La capacità dell'unità è ancora in aumento, ma non alle stesse velocità di 10 anni fa.

Penso che la nostra attuale tecnologia si stia avvicinando ai limiti della fisica.

Cosa significa questo per il futuro? Penso che per ottenere nuovi passi da gigante nell'elaborazione delle informazioni, dovranno essere utilizzate tecnologie completamente nuove. Queste tecnologie probabilmente useranno "software", sebbene possibilmente in un contesto abbastanza estraneo a quello che è oggi. E chi sa quali requisiti di spazio di indirizzo hanno o possono fornire? O se lo spazio degli indirizzi è persino un concetto significativo in quella tecnologia?

Quindi non ritirarti su questo ancora.


la velocità della CPU è un concetto leggermente diverso rispetto alla dimensione della memoria.

Non sono sicuro che tu possa trarre la conclusione che, poiché la velocità del processore non è aumentata molto negli ultimi anni, ha a che fare con l'avvicinarsi dei limiti della fisica. È un dato di fatto che le CPU multicore sono state di gran moda negli ultimi anni e potrebbe essere che i produttori di CPU stiano investendo i loro soldi su come utilizzare al meglio tutti quei processori insieme piuttosto che spendere i loro soldi per migliorare i clock. Anche le grandi aziende hanno un limite ai loro dollari in R&S. La capacità dell'unità sta ancora aumentando abbastanza velocemente IMO. Ho appena visto un disco da 3 TB per $ 140.
Dunk,

0

Sì, ci sarà. (Giochi? Cose relative all'intelligenza artificiale?)

Una domanda più appropriata potrebbe essere se conterà per il programmatore tipico, però. Pensa a come Ruby converte automaticamente i numeri da FixNum a BigNum e viceversa quando necessario. Sarei sorpreso se altre lingue (almeno quelle dinamiche) alla fine non facessero lo stesso.


1
o si. diavolo si. voglio giocare ad un gioco così bello che deve usare l'aritmetica a 128 bit !!!!!!!!!
Chani,

1
Duke Nukem Forever Rev 2.0? O Madden Football 2025?
John R. Strohm,

0

Memorizzare questa quantità di informazioni è una cosa e fare qualcosa di utile con essa è un'altra. Dal mio punto di vista non vedo la necessità di questo spazio di archiviazione a meno che non abbiamo la potenza di elaborazione per utilizzarlo. Forse la memorizzazione nella cache di enormi database è una cosa, ma per l'elaborazione numerica penso che prima abbiamo bisogno di processori.


0

Le applicazioni avranno mai bisogno di tanta memoria? Abbastanza possibile Applicazioni come previsioni meteorologiche, simulazioni fisiche in generale o crittografia probabilmente trarranno sempre beneficio da più memoria e maggiore potenza di elaborazione. E chissà quale sarà l'app killer tra 50-100 anni? Display olografici? Tavole arcobaleno per ogni possibile password di 100 caratteri?

È fisicamente possibile rappresentare tanta memoria? Sicuramente possibile. Ad esempio, un computer quantistico da 100 qubit può rappresentare lo stesso numero di stati di un computer classico da 2 ^ 100 bit. Molto più dei 2 ^ 67 bit di spazio di indirizzi che abbiamo ora. (Lo so, un computer quantistico da 100 qubit suona come una fantascienza. Non sono convinto che sarà mai possibile costruirne uno. D'altra parte, lo stesso si potrebbe probabilmente dire su qualsiasi tecnologia che verrà utilizzata 50 o tra 100 anni.)

Ma dubito seriamente che "gli spazi di indirizzamento piatti" saranno la principale preoccupazione per allora. Forse allora svilupperemo algoritmi quantistici, in cui il concetto di "spazio di indirizzamento" non ha molto senso. Anche se i computer restano "classici", probabilmente dovremo fare i conti con un numero spaventoso di unità di elaborazione con memoria non uniforme collegata.


"Il computer quantistico a 100 qubit può rappresentare lo stesso numero di stati di un classico computer a 2 ^ 100 bit." Non è proprio così che funzionano i qubit. Un computer a 100 qubit può rappresentare lo stesso numero di stati di un computer a 100 bit. La differenza è che il computer da 100 qubit può rappresentare la sovrapposizione di tutti quegli stati in un momento. L'altra cosa sui qubit è che quando vai a leggerli, otterrai una sola risposta e sarà completamente casuale.
JimmyJames,

@JimmyJames: esattamente. Quindi, se vuoi rappresentare le stesse informazioni di un computer quantistico da 100 qubit in un singolo momento del tempo in un computer classico (ad es. Per simularlo), avresti bisogno di più di 100 bit. È quello che ho detto. (O intendevo, comunque.)
Nikie

Ancora una volta, non è così che funziona. Un registro a 2 bit può rappresentare 4 valori. Un registro a 2 qubit può rappresentare 4 valori. Entrambi sono in grado di rappresentare lo stesso intervallo di valori. Il registro qubit può rappresentare tutti e 4 contemporaneamente. Questa è la differenza
JimmyJames,

@JimmyJames: è come dire che un registro "classico" a 2 bit può rappresentare 2 valori, ma allo stesso tempo. Pensaci in questo modo: se volessi simulare un computer quantistico in un computer classico, di quanti bit avresti bisogno per memorizzare lo stato completo del computer quantistico a 2 qubit in qualsiasi momento t ?
Nikie,

Capisco, ma io, ma quello che ti manca è che non puoi recuperare un valore specifico dai qubit. Cioè, dato un qubit in sovrapposizione, quando viene letto, otterrai 1 o 0 ma non puoi recuperare entrambi i valori a causa della decoerenza: en.wikipedia.org/wiki/Quantum_decoherence
JimmyJames

0

Cosa accadrebbe se ogni posizione della memoria avesse un indirizzo univoco globale?

  • I protocolli di rete potrebbero diventare molto più semplici.
  • Gli oggetti distribuiti sarebbero interessanti: tutti gli oggetti potrebbero esistere nello stesso spazio di memoria.
  • Forse passeremmo ai ricordi "scrivere una volta" e includeremo il tempo come parte della struttura degli indirizzi. Potresti leggere oggetti che esistevano in passato.
  • Tutta la memoria secondaria sarebbe direttamente indirizzabile. Addio FILE, fopen()ecc
  • Potresti essere arrestato per aver scritto su un cattivo puntatore e aver perso la macchina di qualcun altro.
  • Gli studenti dovrebbero essere sottoposti a screening prima di frequentare la loro prima lezione di CS: pochissime persone possono resistere al vortice di prospettiva totale .

0

"Pensando ad alta voce" qui, ma mi è venuto in mente che si potrebbero fare interessanti cose semantiche con i restanti 64 bit su un, diciamo, un computer a 128 bit. Cf. il modo in cui funziona l'IP.

Sono sicuro che le persone potrebbero escogitare usi divertenti per qualcosa del genere. :) Qualcuno sa a cosa serve la PS3 per i suoi indirizzi a 128 bit? Sicuramente non sprecheresti tutta quella memoria extra (e sto parlando solo della memoria per gli indirizzi effettivi, non di ciò che indicano quegli indirizzi). Indirizzi come dati. Potresti persino codificare un ramo nell'indirizzo stesso ... vale a dire, 0x [ifAddress] [elseAddress] Anche i sistemi multi-core potrebbero trarre vantaggio da questo tipo di segmentazione. E e...


0

C'è qualche motivo per andare oltre l'architettura a 64 bit? (18.446.744.073.709.551.615 byte di memoria indirizzabile)

Utilizzando lo standard IEEE 1541-2002 relativo all'uso dei prefissi per multipli binari di unità di misura relative all'elettronica digitale e al calcolo, vediamo che:

1 byte = 8 bit, 1 Kilobyte = 1024 byte, 1 Megabyte = 1024 KB, 1 Gigabyte = 1024 MB, 1 Terabyte = 1024 GB, 1 Petabyte = 1024 TB, 1 Exabyte = 1024 PB

E così via per Zettabyte, Yottabyte, Xenottabyte, Shilentnobyte, Domegemegrottebyte, Icosebyte e Monoicosebyte.

Si stima che lo spazio di archiviazione totale dell'unità terrestre sia di circa 2.500 Exabyte a partire dal 2016.

Un registro a 64 bit può accedere direttamente a 15 Exabyte di memoria. Un registro a 128 bit può accedere direttamente a 3.40282367 × 10 ^ 35 Zettabyte. O 295.147.905.247.928.000 Monoicosebyte.

Quindi possiamo vedere che un registro a 128 bit sarebbe in una buona posizione per accedere a tutta la memoria della Terra, tutto ciò che è mai stato inviato su Internet, ogni parola mai pronunciata o scritta, ogni film e molto altro ancora, per un bel po 'di tempo a venire .

Quindi la risposta è , in attesa di un framework che possa puntare a qualsiasi cosa digitale che sia mai stata o sarà mai .


0

La migliore stima che posso trovare per il numero di neuroni in un cervello umano medio è di circa 86 miliardi. Non possiamo confrontare direttamente la RAM con i neuroni in generale, ma in una rete neurale puoi farlo. Richiede un numero di indirizzi per rappresentare lo stato del neurone o una sinapsi. Quindi lancerò un'ipotesi selvaggia e dirò che stiamo guardando qualcosa come un trilione di indirizzi per creare una rete neurale che sarebbe paragonabile a un cervello umano. Quindi, se ciò può essere fatto, non vedo perché non andrebbe molto oltre. I tipi di problemi che una simile rete potrebbe essere in grado di contemplare sarebbero al di là delle nostre capacità di comprensione, nonché del motivo per cui dovrebbero essere così grandi per poterlo fare.


0

È lo spazio degli indirizzi. Diciamo che cambiamo lo standard C in modo che a realloc non sia permesso cambiare il puntatore usato. Oggi posso allocare 2 ^ 33 blocchi di memoria (richiederei 192 GB di RAM sul mio Mac, 8 miliardi di volte 8 byte puntatore e 16 byte di spazio allocato, quindi non posso farlo ora, ma potrei comprare un Mac che può fare senza sottoscrivere un nuovo mutuo).

E posso riallocare uno di questi puntatori per contenere 2 ^ 33 byte. Tuttavia, non molti contemporaneamente :-) Se realloc non consente lo spostamento di puntatori e sono consentiti 2 ^ 33 byte, i puntatori originali devono essere separati da 2 ^ 33 byte, il che significa che sono necessari 2 ^ 66 byte di memoria.


-1

Certo, non vedo motivo per cui quella quantità di spazio non sarebbe richiesta in futuro. Se consideri lo sviluppo del gioco, non c'è limite a quanto un gioco possa essere realistico o complesso, giusto? (Dettaglio della grafica / numero di poligoni utilizzati e algoritmi che definiscono l'interazione e il comportamento degli oggetti)?

Chissà, tra 10 anni potremmo giocare a giochi da 10 TB con requisiti minimi di RAM da 12 GB e un processore a 8 core. : P


Non c'è limite ai dettagli. Ma c'è un limite al silicio.
Billy ONeal,

-1

20 anni fa, c'erano 2 miliardi di persone in meno sul pianeta e la maggior parte dei sistemi aveva una memoria indirizzabile che poteva essere misurata in kilobyte. Oggi, la popolazione mondiale aumenta alla stessa velocità e il numero di utenti di computer aumenta esponenzialmente ogni anno.

È vero che pochissimi sistemi necessitano di uno spazio di indirizzi completo di 64 byte. Alcuni sistemi archiviano ogni giorno terabyte di informazioni. Ciò è stato possibile a causa dell'aumento degli utenti di computer e della velocità di Internet. Siamo già in grado di supportare la velocità di Internet di 10 GB / s dopo soli 23 anni dall'invenzione di HTTP. Di questo passo, penso che sarebbe sciocco non aspettarsi una velocità di Internet di 1 TB / se superiore a 50 anni. Quando tutti possiamo spostare i dati così velocemente, ci saranno più dati da archiviare mentre esisteranno più persone per archiviare questi dati ed è quasi inevitabile che ci sarà bisogno di un'altra transizione diffusa in un sistema a 128 bit, e infine 256 e 512 bit.


Hai ragione sotto tutti gli aspetti, comunque ti sei perso il punto. Il settore informatico ha meno di 100 anni e se continua a crescere come negli ultimi decenni, non sarebbe solo folle supporre che in questo momento abbiamo raggiunto il nostro limite, ma ignora le richieste del futuro. Lo spazio degli indirizzi non è l'unico motivo per cui avremmo bisogno di un'architettura a 64 bit. I set di istruzioni possono diventare così grandi e che i puntatori di 128 bit di larghezza sono più efficienti e preferiti. Un altro vantaggio è lo spazio del registro della CPU che passa a un'architettura di bit superiore.
Andrew Katz,

Non so perché ho scritto tutti quei commenti - solo un cattivo umore è la mia scusa migliore. Il downvote non è mio, però.
Steve314,

-1

Sì, le app non riempiono tutti i byte di spazio virtuale. la randomizzazione del layout dello spazio di indirizzi otterrebbe il massimo beneficio.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.