Il Linguaggio Macchina I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone mpavone@dmi.unict.it http://www.dmi.unict.it/mpavone/ AA. 2012/2013
Linguaggio Macchina Insieme delle istruzioni decodificate ed eseguite dall’unità di elaborazione Istruzioni possono essere operazioni: elaborazione dell’informazione trasferimento dell’informazione Istruzioni linguaggio macchina: Istruzioni aritmetico-logiche Istruzioni di trasferimento dati Istruzioni di controllo
Tipologia delle operazioni svolte Operazioni di manipolazione/elaborazione Somma Moltiplicazione Operazioni di trasferimento Da periferica-input a MM Da MM a CPU Da CPU a MM Da MM a periferica-output
Es.: valutazione di espressione Vogliamo calcolare il valore dell’espressione: (a+b) x (c+d) leggendo i valori delle variabili a, b, c, d dal dispositivo di ingresso e scrivendo il risultato della valutazione sul dispositivo di uscita.
Un algoritmo generale Leggi dal dispositivo di ingresso il valore delle variabili a, b, c, d Somma il valore di a al valore di b Salva il risultato parziale ottenuto Somma il valore di c al valore di d Moltiplica il risultato parziale appena ottenuto con quello precedentemente salvato Scrivi sul dispositivo di uscita il risultato della valutazione complessiva Termina l’esecuzione del programma.
L’algoritmo (1) Scrivi nella cella di memoria centrale riservata al valore della variabile a il valore letto dal dispositivo di ingresso (disponibile nel registro dati della periferica). Fai la stessa cosa per b, c, d Somma il valore di a al valore di b Copia il contenuto della cella di memoria riservata ad a nel registro A Copia il contenuto della cella di memoria riservata a b nel registro B Somma il contenuto dei registri A e B Salva il risultato parziale, contenuto nel registro A, in una cella di memoria predisposta per il risultato (z)
L’algoritmo (2) Somma il valore di c al valore di d Copia il contenuto della cella di memoria riservata a c nel registro A Copia il contenuto della cella di memoria riservata a b nel registro B Somma il contenuto dei registri A e B Moltiplica il risultato parziale appena ottenuto con quello precedentemente salvato Copia il contenuto della cella riservata a z nel registro B (z e B contengono ora a+b, mentre A contiene c+d) Moltiplica il contenuto dei registri A e B.
L’algoritmo (3) Scrivi sul dispositivo di uscita il risultato della valutazione complessiva Memorizza il risultato appena calcolato (e disponibile nel registro A) nella cella di memoria riservata a z Copia il contenuto della cella di memoria riservata a z nel registro dati della periferica di uscita Termina l’esecuzione del programma
Codifica delle istruzioni Sono codificate mediante stringhe binarie di bit Un’istruzione è suddivisa in codice operativo: operazione da eseguire (opcode) operandi: dove reperire i dati dove scrivere il risultato Il codice operativo e gli operandi sono anch’essi codificati in forma binaria
Es: esecuzione di programmi campo codice operativo: operazione elementare richiesta. codifica di un’istruzione campo operando: forniscono informazioni dettagliate sull’operazione richiesta.
No. istruzione descrizione 1 1 RXY Carica (LOAD) nel registro R la configurazione di bit trovata nella cella di memoria il cui indirizzo è XY 2 2 RXY Carica (LOAD) nel registro R la configurazione di bit XY 3 3 RXY Memorizza (STORE) nella cella di memoria di indirizzo XY il contenuto del registro R 4 4 0RS Sposta (SHIFT) la configurazione di bit del registro S e copiala nel registro R 5 5 RST Somma (ADD) le configurazioni di bit dei registri S e T e pone il risultato nel registro R (rappr. in comlemento a due) 6 6 RST Somma (ADD) le configurazioni di bit dei registri S e T e pone il risultato nel registro R (rappr. in virgola mobile) 7 7 RST Applica l’operatore OR alle configurazione di bit dei registri S e T e memorizza il risultato nel registro R 8 8 RST Applica l’operatore AND alle configurazione di bit dei registri S e T e memorizza il risultato nel registro R 9 9 RST Applica l’operatore XOR alle configurazione di bit dei registri S e T e memorizza il risultato nel registro R 10 A R0X Ruota (ROTATE) di un bit a destra X volte la configurazione di bit memorizzata nel registro R 11 B RXY Salta (JUMP) all’istruzione nella cella di memoria XY se il contenuto del registro R è uguale a quello del registro 0 12 C 000 Termina (HALT) l’esecuzione
Es: decodifica istruzione Decodifica dell’istruzione 35A7: memorizza nella cella di memoria A7 il contenuto del registro 5
Il Ciclo Macchina
Fasi di esecuzione L’unità di controllo svolge le sue attività ripetendo ciclicamente un algoritmo in un processo detto ciclo della macchina, costituito da tre fasi: Reperimento (fetch); Decodifica (decode); Esecuzione (execute).
Decodifica la configurazione di bit nel registro delle istruzioni Ciclo della macchina Reperisce l’istruzione successiva dalla memoria (come indicato dal contatore di programma) e poi incrementa il contatore di programma Decodifica la configurazione di bit nel registro delle istruzioni Esegui l’operazione indicata dall’istruzione nel registro delle istruzioni
Tempi del ciclo della macchina Istruzione 1 Istruzione 2 Istruzione 3 Ordine di esecuzione delle istruzioni Tempo Lettura Decodifica Esecuzione
Componenti fondamentali della CPU Data Path & Unità di controllo Data path (o percorso dei dati) è la parte che si occupa dell’effettiva elaborazione dei dati; comprende dispositivi diversi una o più unità aritmetico-logiche, dette ALU (Arithmetic Logic Unit); alcune unità di memorizzazione temporanea, i registri, memoria ad alta velocità usata per risultati temporanei e informazioni di controllo (il valore massimo memorizzabile in un registro è determinato dalle dimensioni del registro).
Componenti fondamentali della CPU Unità di controllo: gestione dei collegamenti tra registri e ALU coordina le operazioni di tutto il processore (anche quelle del data path!); regola il flusso dei dati e indica quali registri debbano essere collegati agli ingressi e all’uscita dell’ALU; invia all’ALU il codice dell’operazione da eseguire; riceve indicazioni sull’esito dell’operazione appena eseguita dall’ALU e gestisce opportunamente queste informazioni; comprende alcuni registri di uso specifico Program Counter (PC) – qual è l’istruzione successiva; Instruction Register (IR) – istruzione in corso d’esecuzione; …
Data path Registri A L U Registri ingresso ALU Registro uscita ALU X X Istruzione (e.g. add) Registri esito Registri ingresso ALU R00 R01 R02 R03 … … … … Registro uscita ALU X X Y Y X A L U X + Y X + Y Y
Esempio: si consideri l’istruzione A A + B + C (assegna alla variabile A la somma del contenuto delle variabili A, B e C); le variabili A, B e C si trovino rispettivamente nelle celle di memoria 4000 (A), 4004 (B) e 4008 (C)
Esempio (contd): Num Istruzione Commento ... ... ... ... 789 load R02,4000 trasferisce il contenuto della cella 4000 (A) nel registro R02 790 load R03,4004 trasferisce il contenuto della cella 4004 (B) nel registro R03 791 add R01,R02,R03 somma il contenuto dei registri R02 e R03 e scrive il risultato in R01 792 load R02,4008 trasferisce il contenuto della cella 4008 (C) nel registro R02 793 add R01,R01,R02 somma il contenuto dei registri R01 e R02 e scrive il risultato in R01 794 store R01,4000 trasferisce il contenuto del registro R01 nella cella 4000 (A)
Collegamenti per il trasferimento dati Mari, Buonanno, Sciuto – Informatica e cultura dell’informazione – McGraw-Hill 3/27/2017 PSW Data path Unità di controllo CPU Registri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria Bus dati Bus indirizzi Bus controllo … … … … … 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 Collegamenti di controllo Collegamenti per il trasferimento dati Collegamenti per il trasferimento istruzioni … … … … … 4000 1492 4004 1918 4008 2006 0789 Capitolo 5 – La formalizzazione dell'informazione 22
Capitolo 5 – La formalizzazione dell'informazione Mari, Buonanno, Sciuto – Informatica e cultura dell’informazione – McGraw-Hill 3/27/2017 PSW Data path Unità di controllo CPU Registri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria Bus dati Bus indirizzi Bus controllo lettura lettura … … … … … 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 load R02,4000 … … … … … 4000 1492 4004 1918 4008 2006 0789 +1 Capitolo 5 – La formalizzazione dell'informazione 23
Capitolo 5 – La formalizzazione dell'informazione Mari, Buonanno, Sciuto – Informatica e cultura dell’informazione – McGraw-Hill 3/27/2017 Bus dati Bus indirizzi Bus controllo PSW Data path Unità di controllo CPU Registri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria lettura … … … … … 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 4000 load R02,4000 … … … … … 4000 1492 4004 1918 4008 2006 0790 1492 Capitolo 5 – La formalizzazione dell'informazione 24
Capitolo 5 – La formalizzazione dell'informazione Mari, Buonanno, Sciuto – Informatica e cultura dell’informazione – McGraw-Hill 3/27/2017 PSW Data path Unità di controllo CPU Registri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria Bus dati Bus indirizzi Bus controllo lettura … … … … … 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 load R02,4000 load R03,4004 … … … … … 4000 1492 4004 1918 4008 2006 0790 0790 + 1 1492 Capitolo 5 – La formalizzazione dell'informazione 25
Capitolo 5 – La formalizzazione dell'informazione Mari, Buonanno, Sciuto – Informatica e cultura dell’informazione – McGraw-Hill 3/27/2017 Bus dati Bus indirizzi Bus controllo PSW Data path Unità di controllo CPU Registri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria lettura … … … … … 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 4004 load R03,4004 … … … … … 4000 1492 4004 1918 4008 2006 1918 0791 1492 Capitolo 5 – La formalizzazione dell'informazione 26
Capitolo 5 – La formalizzazione dell'informazione Mari, Buonanno, Sciuto – Informatica e cultura dell’informazione – McGraw-Hill 3/27/2017 PSW Data path Unità di controllo CPU Registri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria Bus dati Bus indirizzi Bus controllo lettura … … … … … 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 add R01,R02,R03 load R03,4004 … … … … … 4000 1492 4004 1918 4008 2006 1918 0791 + 1 1492 Capitolo 5 – La formalizzazione dell'informazione 27
Capitolo 5 – La formalizzazione dell'informazione Mari, Buonanno, Sciuto – Informatica e cultura dell’informazione – McGraw-Hill 3/27/2017 PSW Data path Unità di controllo CPU Registri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria Bus dati Bus indirizzi Bus controllo … … … … … 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 esito add add R01,R02,R03 … … … … … 4000 1492 4004 1918 4008 2006 1918 0792 1492 3410 Capitolo 5 – La formalizzazione dell'informazione 28
Capitolo 5 – La formalizzazione dell'informazione Mari, Buonanno, Sciuto – Informatica e cultura dell’informazione – McGraw-Hill 3/27/2017 PSW Data path Unità di controllo CPU Registri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria Bus dati Bus indirizzi Bus controllo lettura … … … … … 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 add R01,R02,R03 load R02,4008 … … … … … 4000 1492 4004 1918 4008 2006 1918 0792 + 1 1492 3410 Capitolo 5 – La formalizzazione dell'informazione 29
Capitolo 5 – La formalizzazione dell'informazione Mari, Buonanno, Sciuto – Informatica e cultura dell’informazione – McGraw-Hill 3/27/2017 PSW Data path Unità di controllo CPU Registri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria Bus dati Bus indirizzi Bus controllo lettura … … … … … 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 4008 load R02,4008 … … … … … 4000 1492 4004 1918 4008 2006 1918 0793 1492 2006 3410 Capitolo 5 – La formalizzazione dell'informazione 30
Capitolo 5 – La formalizzazione dell'informazione Mari, Buonanno, Sciuto – Informatica e cultura dell’informazione – McGraw-Hill 3/27/2017 PSW Data path Unità di controllo CPU Registri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria Bus dati Bus indirizzi Bus controllo lettura … … … … … 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 add R01,R01,R02 load R02,4008 … … … … … 4000 1492 4004 1918 4008 2006 1918 0793 + 1 2006 3410 Capitolo 5 – La formalizzazione dell'informazione 31
Capitolo 5 – La formalizzazione dell'informazione Mari, Buonanno, Sciuto – Informatica e cultura dell’informazione – McGraw-Hill 3/27/2017 PSW Data path Unità di controllo CPU Registri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria Bus dati Bus indirizzi Bus controllo … … … … … 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 esito add add R01,R01,R02 … … … … … 4000 1492 4004 1918 4008 2006 1918 0794 2006 5416 3410 Capitolo 5 – La formalizzazione dell'informazione 32
Capitolo 5 – La formalizzazione dell'informazione Mari, Buonanno, Sciuto – Informatica e cultura dell’informazione – McGraw-Hill 3/27/2017 PSW Data path Unità di controllo CPU Registri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria Bus dati Bus indirizzi Bus controllo lettura … … … … … 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 store R01,4000 add R01,R01,R02 … … … … … 4000 1492 4004 1918 4008 2006 1918 0794 + 1 2006 5416 Capitolo 5 – La formalizzazione dell'informazione 33
Capitolo 5 – La formalizzazione dell'informazione Mari, Buonanno, Sciuto – Informatica e cultura dell’informazione – McGraw-Hill 3/27/2017 PSW Data path Unità di controllo CPU Registri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria Bus dati Bus indirizzi Bus controllo scrittura … … … … … 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 4000 store R01,4000 … … … … … 4000 1492 4004 1918 4008 2006 1918 0795 X X 5416 2006 5416 Capitolo 5 – La formalizzazione dell'informazione 34
THAT’S ALL !! (for today)