La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "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"— Transcript della presentazione:

1 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 AA. 2012/2013

2 Linguaggio Macchina Insieme delle istruzioni decodificate ed eseguite dallunità di elaborazione Istruzioni possono essere operazioni: elaborazione dellinformazione elaborazione dellinformazione trasferimento dellinformazione trasferimento dellinformazione Istruzioni linguaggio macchina: Istruzioni aritmetico-logiche Istruzioni aritmetico-logiche Istruzioni di trasferimento dati Istruzioni di trasferimento dati Istruzioni di controllo Istruzioni di controllo

3 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

4 Es.: valutazione di espressione Vogliamo calcolare il valore dellespressione: (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.

5 Un algoritmo generale a, b, c, d Leggi dal dispositivo di ingresso il valore delle variabili a, b, c, d ab Somma il valore di a al valore di b Salva il risultato parziale ottenuto cd 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 lesecuzione del programma.

6 Lalgoritmo (1) a b, c, d 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 ab Somma il valore di a al valore di b a 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 z Salva il risultato parziale, contenuto nel registro A, in una cella di memoria predisposta per il risultato ( z )

7 Lalgoritmo (2) cd Somma il valore di c al valore di d c Copia il contenuto della cella di memoria riservata a c nel registro A b 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 z 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.

8 Lalgoritmo (3) Scrivi sul dispositivo di uscita il risultato della valutazione complessiva z 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 lesecuzione del programma

9 Codifica delle istruzioni Sono codificate mediante stringhe binarie di bit Unistruzione è suddivisa in opcode codice operativo: operazione da eseguire (opcode) operandi: dove reperire i dati dove scrivere il risultato forma binaria Il codice operativo e gli operandi sono anchessi codificati in forma binaria

10 Es: esecuzione di programmi codifica di unistruzione campo codice operativo: operazione elementare richiesta. campo operando: forniscono informazioni dettagliate sulloperazione richiesta.

11 No.istruzionedescrizione 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 loperatore OR alle configurazione di bit dei registri S e T e memorizza il risultato nel registro R 8 8 RST Applica loperatore AND alle configurazione di bit dei registri S e T e memorizza il risultato nel registro R 9 9 RST Applica loperatore 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) allistruzione nella cella di memoria XY se il contenuto del registro R è uguale a quello del registro 0 12 C 000 Termina (HALT) lesecuzione

12 Es: decodifica istruzione Decodifica dellistruzione 35A7: memorizza nella cella di memoria A7 il contenuto del registro 5

13 Il Ciclo Macchina

14 Fasi di esecuzione ciclo della macchina Lunità di controllo svolge le sue attività ripetendo ciclicamente un algoritmo in un processo detto ciclo della macchina, costituito da tre fasi: Reperimentofetch Reperimento (fetch); Decodificadecode Decodifica (decode); Esecuzioneexecute Esecuzione (execute).

15 Ciclo della macchina Reperisce listruzione 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 loperazione indicata dallistruzione nel registro delle istruzioni

16 Tempi del ciclo della macchina Istruzione 1 Istruzione 2 Istruzione 3 Ordine di esecuzione delle istruzioni Tempo Lettura Decodifica Esecuzione DecodificaEsecuzione

17 Componenti fondamentali della CPU

18 Unità di controllo 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 alluscita dellALU; invia allALU il codice delloperazione da eseguire; riceve indicazioni sullesito delloperazione appena eseguita dallALU e gestisce opportunamente queste informazioni; comprende alcuni registri di uso specifico Program Counter (PC) – qual è listruzione successiva; Instruction Register (IR) – istruzione in corso desecuzione; …

19 Data path Registri ingresso ALU R00R01R02R03………… Registri ALUALU Registro uscita ALU X Y X+YX+YX+YX+Y Istruzione (e.g. add) esito X Y X+YX+YX+YX+Y X Y

20 si consideri listruzione A A + B + C (assegna alla variabile A la somma del contenuto delle variabili A, B e C); 4000 (A)4004 (B) 4008 (C) le variabili A, B e C si trovino rispettivamente nelle celle di memoria 4000 (A), 4004 (B) e 4008 (C) Esempio:

21 Esempio (contd): NumIstruzioneCommento load R02,4000 trasferisce il contenuto della cella 4000 (A) nel registro R02 790load R03,4004 trasferisce il contenuto della cella 4004 (B) nel registro R03 791add R01,R02,R03 somma il contenuto dei registri R02 e R03 e scrive il risultato in R01 792load R02,4008 trasferisce il contenuto della cella 4008 (C) nel registro R02 793add R01,R01,R02 somma il contenuto dei registri R01 e R02 e scrive il risultato in R01 794store R01,4000 trasferisce il contenuto del registro R01 nella cella 4000 (A)

22 0789 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria Collegamenti di controllo Collegamenti per il trasferimento dati Collegamenti per il trasferimento istruzioni

23 0789 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria load R02, lettura

24 0790 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria load R02, lettura

25 0790 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria + 1 load R02, lettura load R03,4004

26 0791 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria load R03, lettura 1492

27 0791 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria + 1 load R03, lettura 1918 add R01,R02,R03

28 0792 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria add R01,R02,R add esito 3410

29 0792 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria + 1 add R01,R02,R lettura load R02,4008

30 0793 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria load R02, lettura

31 0793 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria + 1 load R02, lettura add R01,R01,R02

32 0794 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria add R01,R01,R add esito

33 0794 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria + 1 add R01,R01,R lettura store R01,4000

34 … … … … … … … … 0795 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … Memoria store R01, scrittura X X 5416

35 THATS ALL !! (for today)


Scaricare ppt "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"

Presentazioni simili


Annunci Google