Estratto del documento

L'architettura del computer

Elementi principali della macchina di Von Neumann

Gli elementi principali della macchina di Von Neumann sono:

Componenti interne

  • CPU, processore e ciò che gli serve per funzionare
  • Memoria RAM (memoria volatile)

Componenti esterne

  • Memoria secondaria, per la memorizzazione persistente delle informazioni
  • Dispositivi di input/output (stampante, monitor, scanner, tastiera, ecc.)

C'è stata un'evoluzione tecnologica, ma la funzione è sempre la medesima. La funzione della CPU è quella di elaborare i dati, è il cervello del computer: è il processore che va ad eseguire le varie funzioni. La funzione della RAM e della memoria secondaria è quella di memorizzare, si tratta però di una memorizzazione di tipo differente: la RAM è una memoria volatile, mentre la memoria secondaria è persistente (mantiene l'informazione anche quando il computer è spento, non c'è alimentazione).

I dispositivi di input/output servono all'interazione con l'utente. Quando il computer è spento, programmi e dati risiedono in memoria secondaria. Dopo aver premuto il pulsante d'avvio, il computer si accende ed è pronto per essere usato: viene avviato il software di base, il sistema operativo (Windows, iOS). Si tratta di un programma non selezionato esplicitamente ma che parte automaticamente all'avvio del computer.

Questi programmi, tra cui il software di base, risiedono in memoria secondaria, cioè nel disco. La memoria secondaria permette di mantenere le informazioni anche quando il dispositivo è spento; il sistema operativo si trova nella memoria secondaria (porzione del computer che ci permette di mantenere le informazioni anche quando questo è spento).

Al momento dell'avvio, eseguiamo dei programmi, delle operazioni. Nel momento in cui selezioniamo un programma, questo passa dalla memoria secondaria alla memoria RAM. I programmi e i dati manipolati dal programma devono risiedere nella memoria RAM per funzionare.

La CPU, il cervello del computer, esegue i programmi seguendo le istruzioni di cui sono composti. Anche i programmi più complicati (ad esempio i giochi) sono un elenco di informazioni che la CPU va ad eseguire. Dopodiché avviene l'input (dati)/output (risultati) e di conseguenza la memorizzazione su memoria secondaria. La CPU quindi interagisce con l'utente.

Componenti della RAM

La RAM (Random Access Memory) è la memoria principale. Insieme alla CPU è una componente fondamentale del calcolatore poiché permette di memorizzare sia i dati del programma sia il programma stesso (ad esempio, sulla RAM non si trova solo WhatsApp, ma si trovano anche tutte le chat e le varie informazioni contenute nell'app). All'interno del computer, la RAM è il classico esempio di componente che contiene degli interruttori che possono essere accesi o spenti (sono il corrispettivo fisico del bit), è un insieme di componenti elettronici (transistor, resistenze, condensatori) miniaturizzati.

La RAM, quindi, può essere vista come una collezione sterminata di interruttori, che corrispondono ai bit. Ogni unità elementare può trovarsi a due diversi livelli di tensione elettrica (o carica del condensatore): ecco il corrispettivo fisico del bit. La RAM è strutturata in una sequenza di celle (o locazioni) di memoria e ciascuna contiene otto bit. Ogni cella, quindi, memorizza un byte (8 bit).

Le celle sono numerate in sequenze; questi numeri che individuano le celle della memoria prendono il nome di indirizzi. Gli indirizzi di memoria ci servono per individuare le zone della memoria in cui scrivere delle informazioni o da cui leggere delle informazioni. Specificando l'indirizzo di una cella, la CPU va ad accendere o spegnere certi interruttori e si direziona verso una cella attraverso l'indirizzo della cella stessa. Gli indirizzi delle celle vengono espressi dal computer come sequenze di bit. Il numero di bit che utilizzo per specificare gli indirizzi è strettamente collegato alla dimensione della memoria RAM a disposizione.

Spazio di indirizzamento

Lo spazio di indirizzamento è l'insieme o il numero delle celle indirizzabili direttamente all'interno della memoria RAM. Il numero di celle indirizzabili è una potenza di 2; ad esempio:

  • Con 16 bit si indirizzano 216 = 65,536 celle
  • Con 32 bit si indirizzano 232 = 4,294,967,296 celle

Il numero di bit dello spazio di indirizzamento impone la dimensione massima della memoria RAM stessa: se ho due bit (4 combinazioni possibili), la memoria non può essere più grande di 4 byte. Se un sistema è a 64 bit, significa che lo spazio di indirizzamento è 264. Il numero di celle indirizzabili equivale al numero di informazioni rappresentabile con un certo numero di bit.

L'unità di misura della memoria è il byte. Si usano dei multipli:

  • Kilobyte (KB) = 1,024 byte (210 byte)
  • Megabyte (MB) = 1,024 KB (220 byte)
  • Gigabyte (GB) = 1,024 MB (230 byte)

Quindi con 16 bit si indirizzano 64 KB di memoria, con 32 bit si indirizzano 4 GB di memoria. La RAM è una memoria ad accesso casuale. Si chiama così poiché può accedere direttamente alle varie celle, una volta noto il loro indirizzo. Il tempo necessario per accedere ad una cella è lo stesso, indipendentemente dalla posizione della cella nella sequenza. Il termine random (casuale) indica proprio il fatto che non vi sono differenze nell'accesso alle varie celle della memoria.

La RAM è:

  • Veloce: il tempo di lettura/scrittura di una cella è compreso, in media, tra 5 e 30 nanosecondi (miliardesimi di secondo = 10-9 secondi)
  • Volatile: è formata da componenti elettronici; se viene tolta l'alimentazione (energia elettrica ad esempio) anche per un breve periodo di tempo (frazioni di secondo) tutto ciò che contiene viene perso, e la macchina deve ripartire.
  • Relativamente costosa: le componenti elettroniche, i circuiti costano.

Quando la macchina è spenta, la RAM è vuota. Una volta accesa, in pochi secondi compaiono tutti i programmi nella nostra macchina. Ciò è possibile poiché questi si trovano in memoria secondaria, ma per essere eseguiti devono finire all'interno della memoria centrale.

ROM: Read-Only Memory

Entra così in gioco la ROM. La ROM (Read-Only Memory) è una memoria in sola lettura; qui non possiamo scrivere nulla di nuovo ma possiamo leggere. Nella ROM si trova la parte iniziale del sistema operativo, ovvero ciò che ci serve per avviare il computer. All'accensione del computer viene eseguito in maniera autonoma e immediata il sistema operativo che si trova nella ROM, che serve per l'avvio del computer. Essa:

  • Non può essere modificata (a meno che non sia di un tipo particolare, EPROM)
  • Non è volatile
  • È veloce quasi quanto la RAM.

Solitamente viene usata per memorizzare programmi e dati necessari all'avvio dell'elaboratore:

  • Programmi di bootstrap (avvio dell'elaboratore)
  • Configurazione del sistema

La ROM non si trova nella memoria secondaria (disco), ma è una memoria a parte, si trova dall'altra parte ed è un’unità fisica, proprio come la CPU e la RAM.

Memoria cache

La memoria cache ha le stesse proprietà della RAM (è volatile), ma:

  • È più veloce (ma più piccola è costosa) della RAM
  • Localizzata fisicamente tra la CPU e la RAM
  • Memorizza i dati di uso più frequente evitando alla CPU di doverli recuperare tutte le volte dalla RAM
  • Influisce pesantemente sulle prestazioni e sul costo della CPU
  • Le dimensioni tipiche sono 512 KB, 1 MB, 2 MB

La memoria cache, quindi, mantiene parte dei dati che potrebbero stare in RAM, ma che usiamo più frequentemente. La CPU andrà perciò a prelevare le informazioni direttamente dalla memoria cache, essendo più veloce, anziché dalla RAM.

Linguaggio macchina

I programmi che vengono eseguiti all'interno del computer vengono scritti in linguaggio macchina. La CPU esegue questi programmi scritti in linguaggio macchina (sequenza di 0 e 1). Tutti i programmi (anche Word, Excel ecc.) internamente sono codificati in LM. Anche i programmi utilizzati quotidianamente sono sequenze molto lunghe di istruzioni scritte in questo linguaggio.

Le istruzioni sono comandi elementari, ad esempio: somma due numeri, leggi dalla memoria, scrivi in memoria, confronta due numeri ecc. La CPU è in grado di eseguire un numero limitato (centinaia e migliaia) di istruzioni. Le istruzioni si suddividono in:

  • Aritmetiche, logiche
  • Di salto
  • Di lettura/scrittura in memoria
  • Di lettura/scrittura verso dispositivi di 1/0

Componenti della CPU

La CPU è formata da:

  • Control Unit
  • Arithmetic Logic Unit
  • Registri

La control unit è la parte più importante del processore. Le sue funzioni sono:

  • Eseguire le istruzioni dei programmi
  • Coordina le attività del processore
  • Controlla il flusso delle istruzioni fra il processore e la memoria

Non ha il compito di controllare il risultato delle istruzioni. Esso governa il funzionamento del processore.

Ciclo Fetch-Decode-Execute

Il processore di un computer svolge ciclicamente queste tre operazioni (ciclo fetch-decode-execute):

  • Fetch (preleva): preleva dalla memoria principale la prossima istruzione da eseguire
  • Decode (decodifica): decodifica l'istruzione e preleva gli operandi specificati
  • Execute (esegui): esegue l'istruzione utilizzando la componente opportuna, memorizza i risultati e ricomincia. Esso comporta l'invio di comandi opportuni all'unità relativa: calcoli, lettura/scrittura dati (memoria), acquisizione/stampa (dispositivi 1/0)

La CPU, tramite la control unit, esegue di continuo la fetch dell'istruzione, cioè va a prelevare dalla memoria principale la prossima istruzione da eseguire. Dopodiché la decodifica, interpreta questa informazione e infine esegue l'istruzione chiedendo la collaborazione delle parti coinvolte della macchina e poi, se è necessario, memorizza i risultati e ricomincia ciclicamente.

L'esecuzione (execute) comporta l'invio di comandi opportuni all'unità relativa:

  • Se l'operazione da fare è un calcolo, interviene l'arithmetic logic unit
  • Se l'operazione da fare riguarda la lettura/scrittura dei dati, interviene la memoria (o dispositivo input/output)

La frequenza con cui è eseguito il ciclo di Fetch-decode-execute è scandita dal clock (orologio interno): ad ogni impulso di clock la CU esegue un ciclo. La velocità di elaborazione di una CPU dipende dalla frequenza del suo clock.

Arithmetic Logic Unit e registri

L'arithmetic logic unit è la componente del computer che esegue le operazioni di tipo aritmetico e logico (somme, sottrazioni, confronti). Per fare ciò, preleva gli operandi dai registri e deposita il risultato dell'operazione in uno o più registri, che sono di fatto delle zone di memoria che sono presenti nella CPU.

I registri sono piccole celle di memoria molto piccole con tempi di accesso molto più bassi rispetto alla memoria cache. Mantengono le informazioni necessarie per eseguire l'istruzione corrente. Hanno dimensione limitata. Si dividono in registri:

  • Generali: sono in numero ridotto; sono usati come celle di memoria temporanea: contengono gli operandi e i risultati delle istruzioni in esecuzione. Dipendono dal tipo di macchina in cui si trovano. In alcune architetture, alcuni registri hanno funzioni privilegiate, ad esempio l'accumulatore in genere contiene il risultato delle operazioni
  • Speciali: sono due:
    • Program Counter (PC): contiene l'indirizzo in memoria principale della prossima istruzione da eseguire (serve per fare la fetch). Quando un programma viene avviato, l'indirizzo della prima istruzione (della cella) viene caricato nel Program Counter
    • Instruction Register (IR): contiene l'istruzione attualmente in esecuzione. La CU legge l'istruzione contenuta in IR e la esegue.

Esempio di ciclo fetch-decode-execute

Esempio di ciclo fetch-decode-execute per comprendere cosa avviene davvero all'interno del computer:

Vediamo come le componenti della CPU interagiscono nell'esecuzione di un programma composto da tre istruzioni esemplificative:

  • ADD 48, 4, che somma i numeri 48 (cioè il codice ASCII di '0') e 4, per ricavare il codice ASCII di '4'. Da ciò parte tutto per attivare determinati circuiti.
  • JUMP 1, che "salta" all'indirizzo 1. Le operazioni non per forza vengono eseguite in ordine, a volte c'è l'esigenza di seguire informazioni che si trovano in un'altra memoria, a partire da una determinata cella
  • OUT 3, Accumulatore, che effettua l'output del valore contenuto nel registro accumulatore verso il dispositivo 3 (per es., la stampante), cioè stampa il carattere 4.

Ogni istruzione viene eseguita attraverso un processo di Fetch-decode-execute. Supponiamo che il nostro programma si trovi nella RAM a partire dalla posizione 5, che la nostra prima istruzione si trovi lì. La Control Unit esegue ciclicamente operazioni di fetch-decode-execute, perciò inizialmente l'indirizzo in cui si trova la prima istruzione viene inserito nel Program Counter (PC). La CU inizia a compiere il ciclo, e la prima operazione che fa è la fetch (operazione con cui si va a prelevare l'istruzione da eseguire), accade che viene preso il contenuto del PC (che contiene l'indirizzo in memoria RAM dove si trova la prossima istruzione da eseguire).

Il registro PC contiene l'indirizzo 5, quindi viene letta da RAM l'istruzione all'indirizzo 5 e memorizza nel registro IR il contenuto letto. I circuiti fanno in modo che venga selezionata la cella numero 5 di RAM (perché il PC dice di fare ciò), il valore del contenuto della cella viene copiato nell'IR poiché quella è l'istruzione che dobbiamo eseguire: l'IR contiene quindi l'istruzione in esecuzione.

La CU, che governa l'attività della macchina, incrementa l'indirizzo contenuto nel registro PC, in modo da eseguire, in seguito, l'istruzione successiva. Il PC passa da 5 (prima informazione) a 6 (seconda informazione, cella successiva); quindi la CU decodifica l'istruzione ADD, 48,4 e, dato che si tratta di un'operazione aritmetica, dà comando alla arithmetic logic unit di eseguire l'istruzione ADD 48, 4. La ALU memorizza il risultato nel registro generico Accumulatore. Termina così il primo ciclo macchina fetch-decode-execute.

La decode è una fase intermedia in cui la CU codifica l'istruzione, va a capire cosa c'è da fare riguardo quella determinata istruzione e quali componenti devono essere coinvolti.

A questo punto ricomincia tutto da capo. Il registro PC contiene l'indirizzo 6, quindi viene letta da RAM l'istruzione all'indirizzo 6 e viene memorizzata nel registro IR, questa volta l'istruzione prende il nome di JUMP 1. La CU incrementa l'indirizzo contenuto nel registro PC, in modo da eseguire, in seguito, l'istruzione successiva. La CU decodifica l'istruzione JUMP 1 e, dato che si tratta di un'istruzione di salto, la esegue memorizzando nel registro PC l'indirizzo della prossima istruzione da eseguire. L'esecuzione ha un impatto sul registro stesso: non si va a codificare l'istruzione 7, come vorrebbe l'ordine, ma la 1.

Il registro PC contiene l'indirizzo 1, quindi viene letta da RAM l'istruzione all'indirizzo 1 e memorizza nel registro IR. La CU incrementa l'indirizzo contenuto nel registro PC, apprestando la CPU all'esecuzione dell'istruzione seguente. La CU decodifica l'istruzione OUT 3, Acc e, dato che si tratta di un'istruzione di output, la esegue dando comando all'unità di output.

Memoria secondaria

La memoria secondaria è un componente fondamentale della macchina, poiché è una memoria che viene aggiunta al computer per superare le limitazioni della RAM (capiente, costosa, volatile). Le sue caratteristiche sono:

  • Capiente
  • Poco costosa
  • Non volatile
  • Lenta

La CPU può eseguire (ed elaborare) esclusivamente programmi (e dati) che risiedono in memoria principale; i programmi e i dati risiedono in memoria secondaria. Perciò devono essere copiati in memoria principale. Quando si esegue un programma, il sistema operativo lo copia da memoria secondaria (ad es. hard disk) in RAM: l'operazione prende il nome di loading o caricamento.

Composizione della memoria secondaria

La memoria secondaria è composta da:

  • Supporti di memorizzazione: componente fisico in cui vengono immagazzinati i dati (ad esempio DVD)
  • Dispositivi di memorizzazione: leggono/scrivono dati dal/sul supporto di memorizzazione (ad esempio lettore DVD)

Per avere la memoria secondaria non basta un oggetto, si ha sia il supporto (DVD fisico) sia il dispositivo (lettore DVD) dove vado ad inserire il supporto.

Tecnologie della memoria secondaria

La memoria secondaria è realizzata su tecnologie differenti:

  • Tecnologia magnetica: la registrazione magnetica viene usata di norma per memorizzare dati su dischetti, dischi rigidi e nastri
  • Tecnologia ottica: la registrazione ottica viene impiegata per i CD e DVD
  • Tecnologia magneto-ottica: la registrazione magneto-ottica serve per archiviare file di grandi dimensioni su dischi di alta capacità
  • Tecnologia flash (allo stato solido): la memoria flash (allo stato solido) è impiegata soprattutto in dispositivi di piccole dimensioni, come macchine fotografiche, telefoni, computer tascabili e schede intelligenti.

Questi dispositivi hanno caratteristiche tali per cui possono mantenere informazioni

Anteprima
Vedrai una selezione di 12 pagine su 54
Appunti Informatica Pag. 1 Appunti Informatica Pag. 2
Anteprima di 12 pagg. su 54.
Scarica il documento per vederlo tutto.
Appunti Informatica Pag. 6
Anteprima di 12 pagg. su 54.
Scarica il documento per vederlo tutto.
Appunti Informatica Pag. 11
Anteprima di 12 pagg. su 54.
Scarica il documento per vederlo tutto.
Appunti Informatica Pag. 16
Anteprima di 12 pagg. su 54.
Scarica il documento per vederlo tutto.
Appunti Informatica Pag. 21
Anteprima di 12 pagg. su 54.
Scarica il documento per vederlo tutto.
Appunti Informatica Pag. 26
Anteprima di 12 pagg. su 54.
Scarica il documento per vederlo tutto.
Appunti Informatica Pag. 31
Anteprima di 12 pagg. su 54.
Scarica il documento per vederlo tutto.
Appunti Informatica Pag. 36
Anteprima di 12 pagg. su 54.
Scarica il documento per vederlo tutto.
Appunti Informatica Pag. 41
Anteprima di 12 pagg. su 54.
Scarica il documento per vederlo tutto.
Appunti Informatica Pag. 46
Anteprima di 12 pagg. su 54.
Scarica il documento per vederlo tutto.
Appunti Informatica Pag. 51
1 su 54
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher vlessivv di informazioni apprese con la frequenza delle lezioni di Informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Torino o del prof Pozzato Gian Luca.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community