Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
1. L’Unità di controllo si occupa di controllare tutte le operazioni del
calcolatore, interpretare le istruzioni prelevate dalla memoria e inviare alle
altre unità i segnali per l'esecuzione delle operazioni
2. L’Unità aritmetico-logica, detta ALU (Arithmetic & Logic Unit), permette di effettuare operazioni aritmetiche di base
(somme, sottrazioni, ecc.) e di prendere decisioni
Queste due unità sono spesso integrate in una CPU, Central Processing Unit – Unità di Elaborazione Centrale (che contiene
anche una serie di registri, simili alla memoria)
3. La Memoria conserva le istruzioni e i dati da elaborare e i risultati ottenuti dalle elaborazioni*;
4. L’Unità di ingresso (Input) immette le informazioni nel calcolatore per farle elaborare;
5. L’Unità di uscita (Output) riceve le informazioni dalla memoria del calcolatore per renderle pronte all’uso; le unità di
ingresso e uscita sono anche dette periferiche
6. Il Bus, vero e proprio canale di comunicazione che consente ai dati di transitare fra diversi componenti del calcolatore.
7. Registri della CPU
La CPU contiene diversi registri
• Registro Istruzione (IR): memorizza l’istruzione da eseguire
• Contatore di Programma (PC): memorizza l’indirizzo in memoria della prossima istruzione da eseguire
• Registri Dati (in numero variabile): contengono dati utilizzati per i calcoli
I registri della CPU sono aggiornati dall’esecuzione dell’istruzione
Funzionamento della CPU
Tipi di istruzioni
• aritmetiche e logiche —> es. somma di due registri, risultato in un terzo
• lettura e scrittura da memoria: –
– mem reg reg mem
→ →
• input/output: – dispositivo reg – reg dispositivo
→ →
• salti (condizionati e non) Istruzioni di controllo: di norma, dopo una istruzione si
esegue la successiva
– alterano l'esecuzione lineare del programma es. dopo l'istruzione alla locazione 133 si esegue quella
– permettono di implementare condizioni, cicli, ecc. alla locazione 134
esistono solo due tipi di istruzioni per alterare quest'ordine:
– salti incondizionati
– salti condizionati
entrambi scrivono un valore in PC
Il Programma
• nell'architettura di Von Neumann, si trova in memoria assieme ai dati
• è rappresentato da una sequenza di codici numerici (e.g., 56 = somma)
• vengono letti ed eseguiti uno per volta
Esecuzione del programma (esempio):
la sequenza 1921 - 992 - 10063 - 56 rappresenta un programma di quattro istruzioni
(codificate, per comodità, in base 10)
l'unità centrale legge 1921 e la esegue poi legge 992 e la esegue
poi legge 10063 e la esegue
poi legge 56 e la esegue
PC = l'indirizzo (132, 133, 134,...)
IR = l'istruzione (1921, 992, 10063, ...)
• Nota: se l’istruzione da eseguire è una istruzione di “salto”, il PC viene aggiornato
all’indirizzo di memoria che contiene l’istruzione a cui saltare
Esecuzione generale del programma in pseudocodice
sequenza di passi:
PC=132 IR=...
lettura da memoria della locazione 132 incremento PC
PC=133 IR=1921
controllo esegue l'istruzione 1921 lettura da memoria della locazione 133 incremento PC
PC=134 IR=992
controllo esegue l'istruzione 992
...
! Nota: se l’istruzione da eseguire è una istruzione di “salto”, il PC viene aggiornato all’indirizzo di memoria che contiene
l’istruzione a cui saltare
Il linguaggio della macchina
• La CPU è in grado di eseguire solo istruzioni molto semplici.
• Queste sono espresse in linguaggio macchina (o codice binario), dipendente dall’elaboratore.
• Il linguaggio assemblativo consente di esprimere istruzioni in forma simbolica (comprensibile da un umano). Queste
sono in corrispondenza 1-1 con le istruzioni in linguaggio macchina.
• Nel seguito consideriamo un esempio di processore semplice (non esistente nella realtà), con quattro registri (R1, R2,
R3, R4) ed un insieme semplificato di istruzioni, espresse in forma simbolica.
Nota: Linguaggi come Python, Java, C, C++,.. sono linguaggi di alto livello: si basano su costrutti non elementari,
comprensibili da un umano. Ogni istruzione corrisponde in genere a molte istruzioni in linguaggio macchina. In larga
misura questi linguaggi sono indipendenti dallo specifico elaboratore.