Memoria e archiviazione
Con indirizzi a 32 bit un processore può indicare 4 294 967 296 byte, esattamente 4 GiB. Togli la corrente e la RAM dimentica tutto.
«Il mio portatile ha 16 GB di memoria, quindi può contenere 16 GB di foto.» Questa frase confonde due parti diverse, e lo stesso annuncio del portatile mostra perché. Elenca due dimensioni, per esempio 16 GB di memoria e 512 GB di archiviazione. La memoria, o RAM, contiene i programmi e i dati che la CPU sta usando in quel momento. L'archiviazione, un'unità a stato solido (SSD) o un vecchio disco rigido, conserva i tuoi file quando la corrente è spenta. Le foto stanno dalla parte dei 512 GB. I 16 GB sono lo spazio di lavoro dove va una foto mentre la stai modificando.
Perché la RAM dimentica quando manca la corrente
La maggior parte della RAM memorizza ogni bit come una minuscola carica che si disperde se non viene rinfrescata molte volte al secondo, quindi tutto quello che contiene si perde quando manca la corrente. È questo che significa «volatile». L'archiviazione conserva i dati senza corrente. Un SSD intrappola la carica in celle di memoria flash che la mantengono per anni, e un disco rigido registra i bit come punti magnetizzati su piatti che girano. L'archiviazione è molto più grande ed economica per byte, ma molto più lenta da raggiungere, quindi i programmi vengono copiati dall'archiviazione alla RAM prima di essere eseguiti. È questa copia che sta avvenendo mentre un'app dice che sta caricando.
Come la CPU trova un byte tra miliardi
La memoria è una lunga fila di celle, ognuna con un byte, e ogni cella ha un numero chiamato indirizzo, a partire da 0. Per leggere o scrivere, la CPU mette un indirizzo su un gruppo di fili e riceve il byte memorizzato lì. Il numero di bit di indirizzo stabilisce quanta memoria si può raggiungere. Quattro bit di indirizzo, come nel computer giocattolo, danno 2 alla 4 = 16 celle. Sedici bit ne danno 65 536. Trentadue bit danno 4 294 967 296 byte, cioè esattamente 4 GiB, ed è per questo che i vecchi sistemi a 32 bit non potevano usare più di 4 GiB di RAM. I processori a 64 bit di oggi possono indicarne molta di più.
Una cella non ha idea di che cosa significhino i suoi bit. Nel computer giocattolo gli 8 bit 00000100 in una cella di dati sono il numero 4, ma letti come istruzione gli stessi bit significano HALT 4. Decide solo il modo in cui la CPU arriva alla cella, come prossima istruzione o come dato indicato da un'istruzione. Questo deriva direttamente dall'idea di von Neumann di tenere entrambi in un'unica memoria. È anche il motivo per cui un bug che scrive all'indirizzo sbagliato può rovinare un intero programma.
Trascina per ruotare. Scorri o avvicina le dita per lo zoom.
Ogni livello più in basso è più grande e più lento
La memoria veloce costa cara, quindi i computer usano più livelli. I più vicini ai circuiti sono i registri, qualche decina di valori su cui la CPU lavora direttamente, come l'accumulatore del giocattolo. Poi vengono le cache, piccoli blocchi di memoria veloce sullo stesso chip del processore, di solito chiamati L1, L2 e L3, che tengono copie delle parti della RAM usate di recente. Poi la RAM, poi l'SSD o il disco rigido, e oltre ancora la rete. Ogni livello più in basso è più grande e più lento. Un programma è veloce quando quasi tutto ciò che gli serve è già nei livelli alti. Per questo leggere i dati in ordine di solito è più rapido che saltare qua e là.
| RAM | Memoria di lavoro; volatile |
| SSD | Archiviazione flash; conserva i dati senza corrente |
| Indirizzo | Il numero di una cella di memoria |
| Cache | Piccola memoria veloce sul chip della CPU con i dati recenti |
| Registro | Un valore dentro la CPU stessa |
| Indirizzo a 32 bit | 4 294 967 296 byte = 4 GiB |
- «Più RAM rende la CPU più veloce.» La quantità di RAM non cambia né il clock né il lavoro fatto in ogni colpo. Decide quanto si può tenere a portata di mano. Se i programmi e i dati che usi ci stanno già, più RAM cambia poco. Se non ci stanno, il computer continua a tornare all'archiviazione, molto più lenta, e allora più RAM aiuta.
- «16 GB di memoria significa spazio per 16 GB di file.» I file sono conservati nell'archiviazione, i 512 GB dell'annuncio. La RAM è lo spazio di lavoro per ciò che è aperto in quel momento, e si svuota quando manca la corrente.
- «Se è sullo schermo, è al sicuro dentro il computer.» Un documento aperto sta nella RAM. Finché non viene salvato nell'archiviazione, un blackout o una batteria scarica lo cancellano, perché la RAM è volatile.
- Che cosa significa «volatile» per la RAM?
- Perde il contenuto quando la corrente è spenta
- È molto veloce
- Si può scrivere una sola volta
- È memorizzata su un disco che gira
- Quanti byte possono indicare gli indirizzi a 32 bit?
- Quanti GiB sono?
- Quante celle di memoria possono raggiungere 16 bit di indirizzo?
- Il computer giocattolo ha 16 celle da 8 bit. Quanti bit di memoria sono in tutto?
- Che cosa conserva i tuoi file quando la corrente è spenta?
- SSD
- RAM
- Cache
- Registri
- Metti in ordine dal più veloce al più lento.
- Quando il programma 4 × 3 si ferma, che numero c'è nella cella 13?
- Nel giocattolo, una cella di dati contiene 00000100. Letta come istruzione, che cosa significherebbe?
- HALT 4
- LOAD 4
- STORE 4
- ADD 4
- Perché i programmi vengono copiati dall'archiviazione alla RAM prima di essere eseguiti?
- La CPU raggiunge la RAM molto più in fretta
- L'archiviazione non può contenere programmi
- La RAM conserva i dati quando la corrente è spenta
- L'SSD si consumerebbe subito
- La memoria è fatta di celle numerate; n bit di indirizzo raggiungono 2ⁿ celle (32 bit = 4 GiB).
- Gli stessi bit possono essere un'istruzione o un dato; decide il modo in cui la CPU li raggiunge.
- La RAM è memoria di lavoro volatile; SSD e dischi rigidi conservano i dati senza corrente.
- Registri, cache, RAM, archiviazione: ogni livello più in basso è più grande e più lento.
Fonti di questo corso (9)
- (checked 2026-10-17; reordered 2026-10-19: standards first, then official documentation, then the teaching model and calculations, history sources last)
- Standards: NIST, "Prefixes for binary multiples" (physics.nist.gov/cuu/Units/binary.html: IEC approved kibi, mebi, gibi in December 1998; 1 B = 8 bit; 1 MiB = 1 048 576 B; 1 MB = 1 000 000 B; 1 GiB = 1 073 741 824 B; historical note: memory makers usually mean 2²⁰ bytes by megabyte, storage makers 1 000 000, and the "1.44 MB" diskette uses a megabyte of 1 024 000 bytes)
- IETF RFC 20 "ASCII format for Network Interchange" (1969, 7-bit codes, A = 65, a = 97, 0 = 48)
- IETF RFC 3629 "UTF-8, a transformation format of ISO 10646" (2003: 1 to 4 octets per character, ASCII unchanged, code points up to U+10FFFF, U+0800 to U+FFFF take three octets, "the first octet of a multi-octet sequence indicates the number of octets", example U+D55C U+AD6D U+C5B4 = ED 95 9C EA B5 AD EC 96 B4)
- Official documentation: MDN Web Docs, "<color>" (hexadecimal colour notation #RRGGBB)
- Intel, "Intel Chips" timeline poster (2012: Intel 4004 of 1971 with 2,300 transistors; 2nd generation Core 2010 with 1.16 billion)
- Claude E. Shannon, "A Symbolic Analysis of Relay and Switching Circuits", Transactions of the AIEE vol. 57 (1938)
- abstract of his MIT master's thesis. Computer History Museum, The Silicon Engine, "1947: Invention of the Point-Contact Transistor" (Bardeen and Brattain, December 1947, germanium)
- John von Neumann, "First Draft of a Report on the EDVAC" (30 June 1945, Moore School, reprinted in IEEE Annals of the History of Computing 15:4, 1993).
Consultato il: 2026-10-17