WEBVTT

00:00.120 --> 00:00.990
Narratore: In questa

00:00.990 --> 00:03.390
lezione parleremo della memoria ad accesso casuale,

00:03.390 --> 00:05.760
chiamata semplicemente memoria all'interno del sistema,

00:05.760 --> 00:07.920
e di come ci si rivolge a tale memoria.

00:07.920 --> 00:10.800
Prima di parlare di come indirizzare la memoria, dobbiamo

00:10.800 --> 00:12.150
capire meglio cos'è la memoria

00:12.150 --> 00:13.230
e cosa fa per noi all'interno

00:13.230 --> 00:16.200
del nostro sistema informatico.

00:16.200 --> 00:18.270
Quando abbiamo parlato di processori,

00:18.270 --> 00:20.190
abbiamo detto che il processore esegue

00:20.190 --> 00:21.960
tutti i calcoli, ma deve avere

00:21.960 --> 00:24.000
un posto dove memorizzare i dati e le

00:24.000 --> 00:24.990
istruzioni prima

00:24.990 --> 00:27.210
di eseguire i calcoli.

00:27.210 --> 00:28.800
All'interno del processore stesso

00:28.800 --> 00:30.720
è presente una memoria ad altissima velocità,

00:30.720 --> 00:32.310
nota come cache.

00:32.310 --> 00:34.650
Questa cache occupa una quantità di spazio molto

00:34.650 --> 00:36.780
ridotta, ma è estremamente veloce.

00:36.780 --> 00:38.730
Ora, quando si esaurisce lo spazio della cache,

00:38.730 --> 00:40.890
il successivo tipo di memoria disponibile nel sistema

00:40.890 --> 00:42.900
è quella che chiamiamo memoria ad accesso casuale

00:42.900 --> 00:44.640
o memoria di sistema.

00:44.640 --> 00:46.470
Ora, questa memoria è ancora

00:46.470 --> 00:49.380
veloce, ma non quanto la memoria cache.

00:49.380 --> 00:51.300
Ora, ciò che accade è che il processore

00:51.300 --> 00:53.370
utilizza prima la memoria cache e, man mano

00:53.370 --> 00:55.860
che utilizza i dati dalla memoria cache, nuove informazioni

00:55.860 --> 00:59.160
si spostano dalla memoria di sistema alla cache.

00:59.160 --> 01:01.710
E continua a muoversi come un processo di pipeline,

01:01.710 --> 01:03.780
passando dalla memoria di sistema alla

01:03.780 --> 01:05.700
cache, per poi essere elaborato ed

01:05.700 --> 01:07.470
eseguito dalla CPU.

01:07.470 --> 01:09.270
Ora, oltre alla memoria di sistema, abbiamo anche

01:09.270 --> 01:11.340
una cosa nota come memoria di archiviazione.

01:11.340 --> 01:13.680
L'archiviazione è costituita da

01:13.680 --> 01:15.900
dischi rigidi, unità USB, CD-ROM,

01:15.900 --> 01:17.190
DVD e simili.

01:17.190 --> 01:18.990
Questi dispositivi di archiviazione

01:18.990 --> 01:21.030
di massa sono in grado di contenere molti

01:21.030 --> 01:22.320
più dati rispetto alla memoria,

01:22.320 --> 01:24.360
ma sono molto più lenti.

01:24.360 --> 01:27.690
Quindi, se voglio caricare un nuovo PowerPoint sul mio sistema, di solito

01:27.690 --> 01:29.520
è memorizzato sul disco rigido, che è un dispositivo

01:29.520 --> 01:31.410
di archiviazione di massa.

01:31.410 --> 01:32.430
Quando dico al mio computer:

01:32.430 --> 01:33.600
"Voglio leggere questo",

01:33.600 --> 01:35.580
il processore invia un segnale al disco

01:35.580 --> 01:36.600
rigido e dice: "Dove

01:36.600 --> 01:38.610
sono questi dati?

01:38.610 --> 01:40.830
I dati passano quindi dal disco rigido alla

01:40.830 --> 01:42.120
memoria di sistema.

01:42.120 --> 01:43.470
E dalla memoria di sistema,

01:43.470 --> 01:44.790
piccoli pezzi possono

01:44.790 --> 01:46.410
essere portati nella cache

01:46.410 --> 01:48.600
e lavorati dal processore.

01:48.600 --> 01:50.160
Ecco come funziona il tutto

01:50.160 --> 01:51.960
all'interno del sistema.

01:51.960 --> 01:53.580
Quindi, voglio che lo teniate a mente quando

01:53.580 --> 01:55.080
pensate ai diversi luoghi in cui i dati

01:55.080 --> 01:56.850
vengono memorizzati nel sistema.

01:56.850 --> 01:58.320
Abbiamo dispositivi di archiviazione di massa,

01:58.320 --> 02:00.390
che sono più che altro un'area di archiviazione permanente.

02:00.390 --> 02:01.680
Quando si spegne il computer, i dati

02:01.680 --> 02:03.510
contenuti nei dispositivi di archiviazione di

02:03.510 --> 02:04.830
massa rimangono comunque.

02:04.830 --> 02:07.470
Ma c'è anche un'area di archiviazione temporanea

02:07.470 --> 02:09.750
chiamata RAM, o memoria di sistema, che è considerata

02:09.750 --> 02:10.680
un'area di archiviazione

02:10.680 --> 02:12.960
non persistente, perché quando si spegne il

02:12.960 --> 02:14.580
computer, tutto ciò che si trova

02:14.580 --> 02:17.010
nella RAM va perso.

02:17.010 --> 02:19.140
Quindi, mentre lavoriamo con i vari file, li

02:19.140 --> 02:21.810
collochiamo temporaneamente nella RAM, in modo da poter

02:21.810 --> 02:24.270
lavorare con loro in modo molto più veloce, e poi, quando

02:24.270 --> 02:25.500
abbiamo finito, li salviamo

02:25.500 --> 02:27.240
sul disco rigido, che è il dispositivo

02:27.240 --> 02:29.700
di archiviazione permanente.

02:29.700 --> 02:31.110
Quindi, quando si pensa alla memoria

02:31.110 --> 02:32.610
di sistema o alla memoria ad accesso

02:32.610 --> 02:33.600
casuale, nota come RAM,

02:33.600 --> 02:36.330
si tratta di un'area dinamica e in continua evoluzione, che

02:36.330 --> 02:37.950
opera in modo molto rapido rispetto

02:37.950 --> 02:39.900
ai dispositivi di memoria di massa, come

02:39.900 --> 02:42.300
i dischi rigidi e i CD-ROM.

02:42.300 --> 02:44.040
Per dare un'analogia di come si presenta

02:44.040 --> 02:45.210
questo aspetto nel mondo fisico,

02:45.210 --> 02:46.950
pensate al vostro ufficio.

02:46.950 --> 02:48.690
In ufficio c'è una scrivania e nella scrivania

02:48.690 --> 02:51.030
c'è solo un po' di spazio, ma quando le cose sono sopra

02:51.030 --> 02:52.650
la scrivania, si possono raggiungere

02:52.650 --> 02:53.940
rapidamente, perché sono già

02:53.940 --> 02:55.440
all'aperto e si possono raggiungere

02:55.440 --> 02:57.180
e toccare.

02:57.180 --> 02:58.950
Ora, oltre ai tre o quattro fascicoli

02:58.950 --> 03:00.600
aperti sulla scrivania, probabilmente

03:00.600 --> 03:01.433
avete anche centinaia

03:01.433 --> 03:04.170
di fascicoli in uno schedario.

03:04.170 --> 03:05.220
Ora, lo schedario è più

03:05.220 --> 03:06.570
simile al disco rigido, è il dispositivo

03:06.570 --> 03:08.220
di archiviazione di massa, mentre

03:08.220 --> 03:10.560
il desktop è più simile alla RAM.

03:10.560 --> 03:11.970
Quindi, quando le cose sono nella RAM,

03:11.970 --> 03:13.110
è più facile accedervi, è più

03:13.110 --> 03:13.950
veloce accedervi e si

03:13.950 --> 03:16.350
può lavorare con esse in quel determinato momento.

03:16.350 --> 03:17.550
Ma quando avete finito, dovreste

03:17.550 --> 03:19.530
ripiegare quel file e riporlo nello schedario,

03:19.530 --> 03:21.090
in modo da averlo a disposizione quando

03:21.090 --> 03:22.950
ne avrete bisogno tra una settimana, due

03:22.950 --> 03:24.720
settimane o un anno, liberando così più

03:24.720 --> 03:29.400
spazio sulla scrivania per estrarre altri file e lavorare con quelli.

03:29.400 --> 03:31.080
La RAM serve proprio a questo,

03:31.080 --> 03:32.550
è uno spazio temporaneo che

03:32.550 --> 03:34.830
cambia ed evolve continuamente.

03:34.830 --> 03:37.950
Quindi, poiché i nostri dispositivi di memoria di massa sono

03:37.950 --> 03:40.440
così lenti, spesso vogliamo mettere più cose nella

03:40.440 --> 03:41.970
RAM, ma la RAM è limitata.

03:41.970 --> 03:43.380
Se consideriamo il disco rigido,

03:43.380 --> 03:45.120
potremmo avere un dispositivo di archiviazione

03:45.120 --> 03:48.870
di massa da 500 gigabyte, o da un terabyte, o addirittura da quattro terabyte,

03:48.870 --> 03:54.600
ma se consideriamo la memoria, potremmo avere otto gigabyte, o 16 gigabyte, o, se siamo fortunati, forse anche

03:54.600 --> 03:57.180
32 gigabyte di spazio.

03:57.180 --> 03:58.680
Ciò significa che avete a disposizione

03:58.680 --> 04:01.650
molta, molta meno RAM rispetto a un disco rigido.

04:01.650 --> 04:03.330
Quindi, la memoria funge

04:03.330 --> 04:05.520
da cache del disco.

04:05.520 --> 04:07.890
In questo modo, è possibile estrarre i file dal disco

04:07.890 --> 04:09.420
alla memoria, lavorarci sopra e

04:09.420 --> 04:10.440
poi rimetterli sul dispositivo

04:10.440 --> 04:11.850
di memoria di massa quando si è

04:11.850 --> 04:12.960
finito.

04:12.960 --> 04:16.020
In questo modo la RAM funge da area di archiviazione temporanea più

04:16.020 --> 04:18.780
veloce per i dati utilizzati di recente e di uso comune, provenienti

04:18.780 --> 04:19.980
dal disco rigido, per consentire

04:19.980 --> 04:22.230
operazioni più rapide.

04:22.230 --> 04:23.520
Questo perché la RAM è in

04:23.520 --> 04:25.800
grado di cercare i dati molto, molto velocemente,

04:25.800 --> 04:26.760
mentre un disco rigido

04:26.760 --> 04:27.990
tradizionale deve far

04:27.990 --> 04:29.340
girare il disco finché non

04:29.340 --> 04:30.720
trova la parte giusta, per

04:30.720 --> 04:32.280
poi estrarre i dati, e questo è

04:32.280 --> 04:34.110
molto più lento.

04:34.110 --> 04:36.120
Questo è un sistema meccanico, mentre quando

04:36.120 --> 04:37.230
usiamo la RAM, stiamo usando

04:37.230 --> 04:39.030
un sistema elettronico che può accedere

04:39.030 --> 04:40.770
a qualsiasi parte della RAM con una

04:40.770 --> 04:43.050
velocità quasi istantanea.

04:43.050 --> 04:44.880
Questo perché la RAM è considerata un dispositivo

04:44.880 --> 04:46.260
a stato solido e non comporta tempi

04:46.260 --> 04:48.210
di caricamento eccessivi, come invece accade

04:48.210 --> 04:50.760
con i dispositivi meccanici, quali un disco rigido, un

04:50.760 --> 04:53.700
DVD, un CD o persino un disco Blu-ray.

04:53.700 --> 04:55.980
Ciò significa che possiamo operare molto velocemente

04:55.980 --> 04:57.420
in termini di nanosecondi,

04:57.420 --> 04:59.490
ovvero miliardi di secondi, mentre i dischi

04:59.490 --> 05:03.210
rigidi e altri supporti magnetici sono considerati molto lenti e operano

05:03.210 --> 05:06.990
in migliaia di secondi, noti come millisecondi.

05:06.990 --> 05:09.120
Come si può notare, c'è un'enorme differenza di velocità,

05:09.120 --> 05:11.130
ed è per questo che vogliamo mettere i nostri file nella

05:11.130 --> 05:12.540
RAM mentre ci lavoriamo.

05:12.540 --> 05:13.620
Quindi, come tecnico,

05:13.620 --> 05:14.490
una delle cose

05:14.490 --> 05:16.380
più comuni da fare per aggiornare

05:16.380 --> 05:17.580
un sistema è aggiornare

05:17.580 --> 05:19.320
la RAM, portandola da quattro

05:19.320 --> 05:21.863
gigabyte a otto gigabyte, o da otto gigabyte

05:21.863 --> 05:23.880
a 16 gigabyte, o da 16 gigabyte a 32

05:23.880 --> 05:26.340
gigabyte.

05:26.340 --> 05:27.660
Aumentando la quantità di RAM,

05:27.660 --> 05:29.700
si può accelerare seriamente il sistema,

05:29.700 --> 05:31.200
perché si elimina la barriera di

05:31.200 --> 05:32.940
dover leggere e scrivere tanti dati

05:32.940 --> 05:34.080
dal disco rigido, potendo

05:34.080 --> 05:35.850
avere più file aperti ed essere in grado

05:35.850 --> 05:38.550
di fare più lavoro in qualsiasi momento.

05:38.550 --> 05:39.630
Bene, ora che abbiamo trattato

05:39.630 --> 05:40.920
le basi della RAM e il motivo per

05:40.920 --> 05:43.020
cui dobbiamo usare questa memoria di sistema,

05:43.020 --> 05:45.360
invece di affidarci al disco rigido per tutto, è importante

05:45.360 --> 05:49.680
parlare delle limitazioni della RAM, basate sul suo indirizzamento.

05:49.680 --> 05:50.850
Ora, quando il processore

05:50.850 --> 05:53.280
deve raggiungere la RAM per ottenere qualcosa,

05:53.280 --> 05:55.860
si parla di indirizzamento della memoria.

05:55.860 --> 05:57.750
Questo perché all'interno della RAM e dello

05:57.750 --> 05:59.490
spazio di archiviazione, ognuno di

05:59.490 --> 06:01.650
essi ha un indirizzo univoco diverso, ed è così

06:01.650 --> 06:03.750
che si fa riferimento al pezzo di dati memorizzato

06:03.750 --> 06:06.180
in quel particolare pezzo di RAM.

06:06.180 --> 06:07.410
Ora, tra il processore,

06:07.410 --> 06:09.210
o CPU, e la memoria, c'è una cosa

06:09.210 --> 06:11.550
nota come controller di memoria, e tra

06:11.550 --> 06:13.020
il controller di memoria

06:13.020 --> 06:14.070
e il processore c'è

06:14.070 --> 06:15.420
un bus.

06:15.420 --> 06:17.160
Ora, un bus è semplicemente un percorso per

06:17.160 --> 06:18.330
il trasferimento dei dati.

06:18.330 --> 06:19.440
Il controller di memoria

06:19.440 --> 06:21.060
è quasi come un vigile urbano, che

06:21.060 --> 06:23.790
dirige il traffico e dice alla CPU e al processore come

06:23.790 --> 06:26.550
accedere alle diverse parti della memoria.

06:26.550 --> 06:27.630
Quando si guarda l'autobus,

06:27.630 --> 06:29.490
in realtà ci sono due parti dell'autobus.

06:29.490 --> 06:31.200
C'è un percorso utilizzato per

06:31.200 --> 06:33.300
i dati, per inviare e ricevere informazioni,

06:33.300 --> 06:35.220
e c'è un percorso di indirizzi che ci

06:35.220 --> 06:37.170
aiuta a determinare la posizione dei

06:37.170 --> 06:38.970
dati nella memoria.

06:38.970 --> 06:41.310
Quindi, se si considera la larghezza del percorso

06:41.310 --> 06:42.630
dei dati, o del bus dati, si determina

06:42.630 --> 06:44.370
la quantità di informazioni che possono

06:44.370 --> 06:47.340
essere trasferite a ogni ciclo di clock.

06:47.340 --> 06:49.890
Ora, se si utilizzano controller di memoria a canale

06:49.890 --> 06:53.250
singolo, il bus di dati è solitamente largo 64 bit, come avviene

06:53.250 --> 06:55.950
nella maggior parte dei computer moderni.

06:55.950 --> 06:56.783
Inoltre, se consideriamo

06:56.783 --> 06:58.650
il bus degli indirizzi, c'è anche

06:58.650 --> 07:00.720
una larghezza associata a questo,

07:00.720 --> 07:04.140
che può essere di 32 o 64 bit.

07:04.140 --> 07:06.570
Ciò è determinato dal numero di locazioni di cui la CPU

07:06.570 --> 07:07.770
può tenere traccia ed essere

07:07.770 --> 07:09.240
in grado di accedere ai dati indirizzandoli

07:09.240 --> 07:11.010
correttamente.

07:11.010 --> 07:13.290
Ora, se si utilizza una CPU a 32 bit,

07:13.290 --> 07:15.540
o una CPU basata su x86, si potrà utilizzare

07:15.540 --> 07:18.300
un indirizzo a 32 bit per accedere ai dati

07:18.300 --> 07:21.210
su quel bus di memoria.

07:21.210 --> 07:22.043
Ora, a causa di ciò,

07:22.043 --> 07:24.900
si hanno circa 4 miliardi di elementi che possono essere

07:24.900 --> 07:27.690
indirizzati, il che è noto come quattro gigabyte di

07:27.690 --> 07:30.690
dati, perché si hanno a disposizione da due a 32 bit per poter

07:30.690 --> 07:33.060
indirizzare le informazioni.

07:33.060 --> 07:35.190
Se invece si utilizza una CPU a 64

07:35.190 --> 07:36.180
bit, si ha a disposizione

07:36.180 --> 07:39.210
due delle 64 possibili locazioni di indirizzo,

07:39.210 --> 07:40.200
il che equivale

07:40.200 --> 07:44.340
a circa 184 quintilioni di opzioni possibili.

07:44.340 --> 07:45.480
In termini di memoria,

07:45.480 --> 07:48.450
si parla di 16 exabyte di dati, il che significa che

07:48.450 --> 07:50.610
possiamo indirizzare molti dati se

07:50.610 --> 07:53.160
utilizziamo un processore a 64 bit.

07:53.160 --> 07:54.510
La maggior parte dei nostri sistemi

07:54.510 --> 07:56.820
al giorno d'oggi non utilizzerà 16 exabyte di RAM, perché

07:56.820 --> 07:58.740
i costi sarebbero proibitivi e sulla maggior

07:58.740 --> 08:00.960
parte delle schede madri non c'è spazio sufficiente

08:00.960 --> 08:02.700
per inserire tutta quella memoria, ma questo

08:02.700 --> 08:05.100
è il nostro limite massimo.

08:05.100 --> 08:06.240
La cosa veramente importante

08:06.240 --> 08:08.190
è che se si utilizza un processore x86, o

08:08.190 --> 08:09.870
a 32 bit, è possibile indirizzare solo

08:09.870 --> 08:11.160
un massimo di quattro gigabyte

08:11.160 --> 08:13.470
di memoria, e questa è una limitazione enorme per

08:13.470 --> 08:15.030
l'informatica moderna, perché

08:15.030 --> 08:16.230
la maggior parte dei sistemi

08:16.230 --> 08:18.000
operativi moderni richiede almeno

08:18.000 --> 08:20.790
quattro gigabyte di RAM, come minimo, per poter funzionare

08:20.790 --> 08:23.250
in modo sufficiente.

08:23.250 --> 08:24.083
D'altra parte,

08:24.083 --> 08:25.710
se si utilizza un processore a

08:25.710 --> 08:27.930
64 bit o un'architettura x64, questo significa

08:27.930 --> 08:30.870
che si può accedere a più di quattro gigabyte di RAM alla

08:30.870 --> 08:31.860
volta, ed è per questo

08:31.860 --> 08:33.540
che lo si vede utilizzato nei sistemi

08:33.540 --> 08:35.370
che hanno 8, 16, 32 o 64 gigabyte di

08:35.370 --> 08:37.290
RAM, perché hanno accesso a tutta la

08:37.290 --> 08:41.460
RAM, il che offre prestazioni molto migliori.

08:41.460 --> 08:42.540
Questo è un altro motivo

08:42.540 --> 08:44.700
per cui è preferibile scegliere un processore

08:44.700 --> 08:46.470
a 64 bit rispetto a uno a 32 bit per la maggior

08:46.470 --> 08:49.233
parte dei computer e delle applicazioni moderne.
