Architettura dei computer
Motori per l’esecuzione di istruzioni
• Quello che i computer possono fare
– eseguire deterministicamente istruzioni per elaborare
informazione
– il computer deve ricevere una serie di istruzioni da seguire
• Quello che i computer non possono fare
–
–
–
–
non hanno immaginazione né creatività
non hanno alcun intuito
non sono crudeli né vendicativi (almeno in molti casi …)
non hanno alcuna forma di libero arbitrio
Il ciclo macchina
•
Un ciclo in cinque passi:
1. Fetch istruzione
2. Decodifica istruzione
3. Fetch Dati
4. Esecuzione Istruzione
5. Restituzione Risultato
3
Anatomia di un computer
• I computer sono costituiti da cinque parti:
– memoria, unità di controllo, unità aritmetico/logica
(ALU), unità di input e unità di output
4
Memoria
• La memoria contiene il programma in esecuzione e i
dati su cui il programma stesso opera
• Caratteristiche della memoria:
– locazioni discrete. Ogni locazione è pari a 1 byte
– indirizzi. Ogni locazione di memoria ha un indirizzo
(un numero intero a partire da 0)
– valori. Le locazioni di memoria memorizzano valori
– capacità finita. Le locazioni di memoria hanno una capacità
finita—i programmatori devono tenere presente che la
quantità di dati che è possibile scrivere è limitata
5
Locazioni di memoria da un byte
• Generalmente un diagramma della memoria
di un computer rappresenta le locazioni
discrete come piccoli rettangoli
• L’indirizzo delle locazioni è indicato sopra il
rettangolo.
• I valori delle locazioni sono riportati nel
rettangolo corrispondente.
6
7
Locazioni di memoria da un byte
(cont.)
• Ogni locazione contiene 1 byte che
memorizza un carattere ASCII o un numero
compreso tra 0 e 256
• I programmatori utilizzano una sequenza di
locazioni di memoria adiacenti, ignorando il
fatto che hanno differenti indirizzi
– i blocchi di 4 byte sono usati come singola unità
così frequentemente che hanno preso il nome di
"parole di memoria“ (word)
8
Memoria ad accesso casuale
• "ad accesso casuale" significa che il
computer può accedere a qualsiasi
locazione di memoria
• Spesso è misurata in megabyte (MB)
• Avere tanta memoria è preferibile per
non avere problemi di spazio per i
programmi e i dati
9
Unità di controllo
• Implementa il ciclo macchina direttamente via
hardware
• I suoi circuiti recuperano un’istruzione dalla memoria
ed eseguono altre operazioni del ciclo
– un’istruzione tipica ha la forma
ADD 2000, 2080, 4000
– quest’istruzione chiede che i numeri memorizzati nelle
locazioni 2000 e 2080 siano sommati e che il risultato sia
inserito nella locazione 4000
– il passo di Fetch Dati deve estrarre i due valori; dopo aver
effettuato la somma il passo Restituzione Risultato inserirà
la somma nella locazione 4000
10
Unità Aritmetico/Logica
• Esegue tutti i calcoli
• Generalmente è responsabile del passo del ciclo macchina
denominato Esecuzione Istruzione
• Un circuito nell’ALU può sommare due numeri
• Ci sono anche circuiti dedicati alla moltiplicazione, al confronto
ecc.
• Le istruzioni di puro trasferimento dei dati non usano l’ALU
• Il passo del ciclo macchina Fetch Dati recupera i valori
necessari all’ALU (operandi)
• Quando l’ALU ha completato l’operazione, il passo Restituzione
Risultato trasferisce il risultato (somma o prodotto o qualche
altro valore) dall’ALU in un indirizzo di memoria specificato
nell’istruzione
11
Unità di input e output
• Le piste e i circuiti attraverso cui
l’informazione entra ed esce dal computer
• Le periferiche: si collegano alle porte di
input/output del computer. Non sono
considerate parti vere e proprie del computer,
ma terminali specializzati che
codificano/decodificano l’informazione
scambiata tra computer e mondo fisico.
12
Le periferiche
• La tastiera trasforma le battute sui tasti in un
formato binario
• Il monitor rappresenta l’informazione
contenuta nella memoria del computer
visualizzandola su uno schermo a colori
• Chiavi USB e hard disk sono utilizzati sia
come input che come output. Sono dispositivi
di memorizzazione in cui il computer può
archiviare permanentemente informazioni per
poi recuperarle al momento del bisogno
13
Un driver per ogni periferica
• Le periferiche sono "stupide” perché
forniscono solo un servizio base di traduzione
da fenomeno fisico a segnale binario
• Ogni ulteriore informazione è demandata al
computer che deve aggiungere ogni
comportamento “intelligente”
• Ad es., quando il computer riceve la
segnalazione che l’utente ha premuto
contemporaneamente shift e q converte
l’input nella lettera maiuscola Q. Il software
che opera la conversione è chiamato driver.
14
Il Program Counter: un “PC” nel PC
• Come fa il computer a determinare qual è l’istruzione
successiva da eseguire?
• L’indirizzo dell’istruzione successiva è memorizzato
nell’unità di controllo ed è chiamato Program Counter
(PC)
• Dato che le istruzioni occupano 4 byte di memoria,
l’istruzione successiva dovrebbe essere PC + 4
• Il PC è incrementato di 4, così, quando il ciclo
macchina ritornerà al passo Fetch Istruzione, il PC
starà già "puntando" all’istruzione successiva
15
Istruzioni di salto
• L’istruzione può includere l’indirizzo
dell’istruzione successiva. Questo modifica il
PC che invece di aggiungere 4
automaticamente, "salta" alla locazione
specificata
16
Interpretazione delle istruzioni
• Processo di esecuzione di un
programma
– il computer interpreta i nostri comandi, ma
espressi nel suo proprio linguaggio
• Prima che il ciclo macchini inizi, qualche
locazione di memoria e il PC sono
visibili nell’unità di controllo
17
18
19
Interpretazione delle istruzioni (cont.)
• L’esecuzione comincia trasferendo dalla
memoria all’unità di controllo l’istruzione
contenuta all’indirizzo specificato dal PC
20
Interpretazione delle istruzioni (cont.)
• I bit dell’istruzione sono copiati nel
circuito decodificatore dell’unità di
controllo
• Una volta fatto questo, il PC può essere
configurato per il recupero
dell’istruzione successiva
21
Interpretazione delle istruzioni (cont.)
• Nel passo Decodifica Istruzione, l’ALU è configurata per
eseguire l’operazione desiderata
• Il decodificatore troverà gli indirizzi dei dati in ingresso (operandi
sorgente)
– la maggior parte delle istruzioni contiene gli indirizzi di due operandi
sorgente (come ADD)
– questi indirizzi sono passati al circuito che li recupera durante il
passo successivo, Fetch Dati
• Il decodificatore estrae l’indirizzo di destinazione per il passo
Restituzione Risultato e lo inserisce in un circuito RR
• Il decodificatore determina quali operazioni l’ALU dovrà
eseguire e la configura in modo appropriato
22
23
Interpretazione delle istruzioni (cont.)
• Esecuzione Istruzione: è il passo in cui
sono effettivamente eseguiti i calcoli.
Nel caso dell’istruzione ADD, il circuito
effettua la somma dei due operandi
sorgente
24
25
Interpretazione delle istruzioni (cont.)
• Restituzione Risultato: restituisce il
risultato dell’elaborazione nella
locazione di memoria specificata
dall’indirizzo di destinazione
• Una volta concluso questo passo, il
ciclo ricomincia
26
27
28
Moltissime operazioni semplici
• I computer possono eseguire solo circa 100
istruzioni diverse
– circa 20 tipi di operazioni distinte (ma servono
istruzioni diverse per sommare byte, parole di
memoria, numeri decimali ecc.)
• Tutto ciò che chiediamo al computer deve
essere ricondotto a una combinazione di
queste operazioni primitive, supportate
direttamente dall’hardware
29
Esempi di altre istruzioni
• Oltre ad ADD, MULT (moltiplicazione) e DIV
(divisione), altri esempi di istruzioni includono:
– lo spostamento (shift) dei bit di una parola di memoria verso
destra o verso sinistra, riempiendo gli spazi che si vengono
a creare con degli zeri e buttando via i bit che “strabordano”
– il calcolo dell’AND logico, che verifica se due bit valgono
entrambi 1, o dell’OR logico, che verifica se almeno uno di
essi vale 1
– il test che appura se un singolo bit vale zero o no, e salta a
un nuovo blocco di istruzioni a seconda del risultato
– lo spostamento dei dati da un’area all’altra della memoria
– la ricezione di segnali dai dispositivi di input/output
30
Quanto è veloce il ciclo macchina?
• L’impressionante capacità dei computer
deriva dalla loro possibilità di eseguire in un
secondo un enorme numero di istruzioni
• Il clock del computer determina la velocità del
ciclo macchina
– misurato in megahertz, o milioni di cicli al
secondo
31
32
Quanto è importante la velocità
del clock?
• I computer moderni tentano di cominciare
un’istruzione a ogni tick del clock
• I circuiti si passano l’istruzione l’un l’altro (pipelining)
– possono essere processate 5 istruzioni simultaneamente
• Un clock a 1 GHz può veramente eseguire un
miliardo di istruzioni al secondo?
– in realtà i computer non possono cominciare cominciare
un’istruzione a ogni tick, ma possono eseguire più istruzioni
alla volta
33
34
Software
• Il software visto dal computer
– la macchina vede un oggetto binario, una lunga
sequenza di parole (gruppi di 4 byte)
• Il linguaggio assembler
– forma alternativa del linguaggio macchina che usa
lettere e numeri in modo che le persone lo
possano comprendere più facilmente
– il computer esamina il programma in assembler e
quando incontra le parole le cerca in una tabella
per trovare la corrispondente cifra binaria; quindi
converte in binario e assembla i pezzi
“costruendo” l’istruzione macchina completa
35
Software (cont.)
• Linguaggi di programmazione di alto livello
– oggi la maggior parte del software è scritta in un
linguaggio di alto livello che è compilato (tradotto)
in linguaggio assembler, che viene a sua volta
assemblato per ottenere un file binario
– I linguaggi includono strutture speciali che aiutano
i programmatori a esprimere istruzioni complicate
• Esempio: un blocco if è composto di tre parti
– una domanda a cui si può rispondere sì e no (il test)
– le istruzioni che il computer dovrà eseguire se il test risulta
vero
– le istruzioni che il computer dovrà eseguire se il test risulta
falso.
36
37
38
Sistemi operativi
• Offrono le operazioni base necessarie per
l’uso efficace del computer, ma non
supportate direttamente dall’hardware
• I tre più usati sono:
– Microsoft Windows
– MacOSX di Apple
– Unix
• Il sistema operativo (OS) esegue il boot,
gestisce la memoria, le periferiche, i file e la
connessione a Internet
39
Programmazione avanzata
• I programmatori riutilizzano software
precedentemente sviluppato per
rendere più facile il loro lavoro
• Esempio: la GUI (interfaccia utente)
– i bordi delle finestre, le barre di
scorrimento, i pulsanti, i puntatori, ecc.
sono “impacchettati” per i programmatori e
forniti con l’OS
40
Circuiti integrati
• Miniaturizzazione
– la velocità del clock è così alta perché il
microprocessore è piccolissimo (i segnali
elettrici percorrono circa 30 centimetri in un
nanosecondo)
41
Circuiti integrati
• Fotolitografia
– Processo di stampa. Invece di collegare i
circuiti a mano, si usa una tecnica
fotografica applicata più volte consecutive
– Il costo del circuito è indipendente dalla
sua complessità
42
La tecnologia dei semiconduttori
• Integrazione
– I componenti attivi e le piste che li collegano
sono costruiti insieme, in un singolo
processo e con gli stessi materiali
– Si risparmia spazio e si producono
componenti monolitici, più affidabili
• Il silicio è un semiconduttore
– La capacità di controllare il passaggio di
corrente in un semiconduttore è
fondamentale per la costruzione dei
computer
43
Dall’applicazione agli elettroni
• Riepilogo:
– Partiamo da un processo di elaborazione dell’informazione
– Il processo è svolto da un’applicazione, implementata sotto
forma di programma in un linguaggio di alto livello come C o
Java
– Il programma esegue operazioni specifiche; i servizi
standard come stampa o salvataggio su disco sono messi a
disposizione dal sistema operativo
– I comandi del programma sono compilati, cioè tradotti in
istruzioni in linguaggio assembler
44
Dall’applicazione agli elettroni (cont.)
– Le istruzioni assembler sono tradotte in codice macchina
binario
– Le istruzioni binarie sono registrate sull’hard disk
– Le istruzioni macchina vengono trasferite dal disco nella
memoria RAM
– Il ciclo macchina esegue le istruzioni una dopo l’altra
– Tutte le istruzioni del computer sono eseguite dai circuiti
contenuti nell’ALU, utilizzando il modello descritto
precedentemente
45
Scarica

Lez08-ArchitetturaCo..