Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Informatica – a.a. 2012/13
Informatica Facoltà di Medicina Veterinaria
a.a. 2012/13
prof. Stefano CagnoniArchitettura del calcolatore (parte II)
Informatica 2012/2013
La CPU inserita nella architettura dell’elaboratore
- 2 - Memorie di Massa
• Hard Disk
• Floppy
• CD-ROM
• Tape
Dispositivi di I/O
• Tastiera
• Mouse
• Schermo
• Stampante
LAN (Local Area Network)
CPU
Cache L1 Cache L2 RAM BIOS
Controllori B U S
Motherboard
Informatica 2012/2013
Caratteristiche del collegamento a BUS
Semplicità
un’unica linea di connessione costi ridotti di produzione
Estendibilità
aggiunta di nuovi dispositivi molto semplice
Standardizzazione
stesse regole per la comunicazione fra dispositivi diversi
Lentezza
utilizzo in «mutua esclusione» del bus (un dispositivo alla volta)
Limitatà capacità
al crescere del numero di dispositivi collegati
Sovraccarico del processore (CPU) perchè funge da master sul controllo del bus
- 3 - Informatica 2012/2013
Al centro dell’architettura
- 4 -
Central Processing Unit (CPU) + Memoria
Compito della CPU: Eseguire i comandi contenuti nella memoria Architettura di Von Neumann Architettura Harvard
CPU
Memoria Istruzioni + dati
CPU Memoriadati
Memoria controlli
Informatica 2012/2013
Architettura di Von Neumann della CPU
- 5 -
ALU: Arithmetic Logic Unit:
- Esegue le operazioni aritmetico-logiche.
ACC: Accumulatore:
- Immagazzina dati in ingresso e uscita all'ALU.
M e m o r i a
CPU
Informatica 2012/2013
Architettura di Von Neumann della CPU
- 6 -
PC: Program Counter - Memorizza l'indirizzo della istruzione da eseguire.
IR: Instruction Register - Memorizza il codice dell'istruzione da eseguire.
DR: Data Register – Memorizza i dati provenienti e diretti alla memoria.
AR: Address Register - Memorizza gli indirizzi da comunicare alla memoria.
Alcuni registri importanti:
M e m o r i a
Informatica 2012/2013
Il ciclo macchina
Un ciclo in cinque passi:
1. Fetch istruzione 2. Decodifica istruzione 3. Fetch Dati
4. Esecuzione Istruzione 5. Restituzione Risultato
- 7 - Informatica 2012/2013
Unità di controllo
Implementa il ciclo macchina direttamente via hardware
I suoi circuiti recuperano un’istruzione dalla memoria ed eseguono le altre operazioni del ciclo
• un’istruzione tipica ha la forma:
ADD 2000, 2080, 4000
• quest’istruzione richiede 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
- 8 -
Informatica 2012/2013
Unità Aritmetico/Logica (ALU)
Esegue tutti i calcoli
Generalmente è utilizzata nel passo del ciclo macchina denominato Esecuzione Istruzione
Un circuito nell’ALU può sommare due numeri
Altri circuiti sono dedicati a moltiplicazione, 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 altra operazione) dall’ALU (meglio, da un accumulatore) ad un indirizzo specificato nell’istruzione
- 9 - Informatica 2012/2013
Principio del programma memorizzato
Come fare per recuperare la prossima istruzione?
Il programma deriva da un algoritmo, che elenca le operazioni in sequenza
Di solito (>90% dei casi) l’istruzione da eseguire è la prossima, quindi è sufficiente inserire le istruzioni in memoria in sequenza
Altrimenti: JUMP <indirizzo>
Questa istruzione macchina consente di saltare nell’esecuzione ad un indirizzo arbitrario in memoria
Altre istruzioni consentono di effettuare salti condizionati in base ad un risultato precedente
- 10 -
Informatica 2012/2013
Il Program Counter
Come fa il computer a determinare qual è l’istruzione successiva da eseguire? (più in dettaglio)
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
- 11 - Informatica 2012/2013
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
Il PC viene quindi sovrascritto nel passo di Esecuzione Istruzione con il dato specificato come operando
Il successivo Fetch farà riferimento alla istruzione a tale indirizzo
- 12 -
Informatica 2012/2013
Interpretazione delle istruzioni
E’ il processo di esecuzione di un programma
• il computer interpreta i comandi tradotti nel linguaggio macchina
Stato della CPU prima del fetch di una istruzione di ADD:
- 13 - Informatica 2012/2013
Interpretazione delle istruzioni
L’esecuzione comincia trasferendo dalla memoria all’unità di controllo l’istruzione contenuta all’indirizzo specificato dal PC
- 14 -
Informatica 2012/2013
Interpretazione delle istruzioni
I bit dell’istruzione sono copiati nel circuito decodificatore (IR) dell’unità di controllo
Una volta fatto questo, il PC può essere configurato per il recupero dell’istruzione successiva
- 15 - Informatica 2012/2013
Interpretazione delle istruzioni
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 apposito registro
Il decodificatore determina quali operazioni l’ALU dovrà eseguire e la configura in modo appropriato
- 16 -
Informatica 2012/2013
Decodifica istruzione e fetch dati
- 17 - Informatica 2012/2013
Interpretazione delle istruzioni
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
- 18 -
Informatica 2012/2013
Interpretazione delle istruzioni
Restituzione Risultato: restituisce il risultato
dell’elaborazione nella locazione di memoria specificata dall’indirizzo di destinazione
Una volta concluso questo passo, il ciclo ricomincia
- 19 - Informatica 2012/2013
Set di istruzioni
E’ l’insieme di istruzioni elementari di una CPU
I computer possono eseguire solo circa 100 istruzioni diverse (come ordine di grandezza)
• circa 20 tipi di operazioni distinte (ma servono istruzioni diverse per sommare byte, parole di memoria, numeri decimali ecc.)
• processori RISC (Reduced Instruction Set Computer) e CISC (Complex Instruction Set Computer)
Si tratta di operazioni estremamente elementari
Tutto ciò che chiediamo al computer deve essere ricondotto a una combinazione di queste operazioni primitive, supportate direttamente dall’hardware
- 20 -
Informatica 2012/2013
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 “traboccano”
• 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 (operazioni applicate in parallelo a tutti i bit di due parole)
• 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 e la scrittura in quelli di output
- 21 - Informatica 2012/2013
Tre tipologie di istruzioni
Istruzioni aritmetico-logiche (Elaborazione dati)
• Somma, Sottrazione, Divisione, …
• And, Or, Xor, …
• Maggiore, Minore, Uguale, Minore o uguale, …
Controllo del flusso delle istruzioni
• Sequenza
• Selezione semplice, a due vie, a n vie, …
• Ciclo a condizione iniziale, ciclo a condizione finale, …
Trasferimento di informazione
• Trasferimento dati e istruzioni tra CPU e memoria
• Trasferimento dati e istruzioni tra CPU e dispositivi di ingresso/uscita (attraverso le relative interfacce)
- 22 -