L’esecuzione dei programmi

Slides:



Advertisements
Presentazioni simili
Informatica Generale Marzia Buscemi
Advertisements

La struttura fisica e logica di un elaboratore
Dalla scrittura all’esecuzione
Introduzione allarchitettura dei calcolatori 2/ed Carl Hamacher, Zvonko Vranesic, Safwat Zaky Copyright © 2007 – The McGraw-Hill Companies srl Versione.
Elaboratore e Sistemi Operativo
Algoritmi e Programmazione
Informatica Generale Susanna Pelagatti
La struttura hardware.
Architettura di un sistema informatico Hardware
CdL Ingegneria Informatica n.o. Anno Accademico 2007/08 Fondamenti di Informatica I – corso A Giacomo Piscitellipag. 1/30 Architettura dei calcolatori.
Il Linguaggio Macchina
Architetture dei Calcolatori (Lettere j-z) Il Processore (2)
2 Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione dati memorizzazione dati trasferimento.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Caratteristiche principali dell’architettura del processore MIPS
Caratteristiche principali dell’architettura del processore MIPS
Il processore PD32.
Il livello Microarchitetturale
Il Linguaggio Macchina
Com’è fatto un elaboratore?
Codifica di algoritmi linguaggio macchina vs programmazione strutturata Lab Programmazione - turno /2006.
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
Lezione 4 informatica di base per le discipline umanistiche vito pirrelli Istituto di Linguistica Computazionale CNR Pisa Dipartimento di linguistica Università
Architettura di un calcolatore
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per lambiente e il territorio Il calcolatore Stefano Cagnoni e Monica Mordonini Dipartimento.
La macchina di von Neumann
L’Architettura del Sistema di Elaborazione
Architettura dell’elaboratore
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Informatica: il trattamento automatico dell’informazione
Architetture dei Calcolatori (Lettere j-z ) Il Processore
Architettura del calcolatore
ARCHITETTURA DI UN ELABORATORE
Unità centrale di processo
Informatica Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
Architettura di una CPU
Architettura del calcolatore
3  Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione  elaborazione dati  memorizzazione dati 
Informatica A.A. 2009/2010 Parte 2 L’Elaboratore Corso A: Prof. Stefano Berardi Corso B: Prof. Ugo de’ Liguoro
Calcolatori Elettronici Il Processore
Luglio 2004Generalità Hardware1 Luglio Generalità Hardware2 MACCHINA DI VON NEUMAN (1947) BUS Processore Elaborazione Controllo Memoria Ingresso.
Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Calcolatori Elettronici Il Processore (2)
Corsi di Laurea in Biotecnologie
CALCOLATORI ELETTRONICI
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata Instruction Set Architecture (2) Istruzioni I-type Indirizzamento.
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda L’Assembler 8086 Istruzioni per.
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Architettura di un calcolatore e linguaggio macchina.
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Informatica Generale Marzia Buscemi
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Il calcolatore Stefano Cagnoni e Monica Mordonini
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
Esercizi.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Informatica Lezione 4 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Struttura Fondamentale degli Elaboratori Elaboratore –È un sistema numerico –È un sistema automatico –È un sistema a programamzione registrabile –Ha una.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il sistema di elaborazione Marco D. Santambrogio – Ver. aggiornata al 15 Maggio.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il sistema di elaborazione Marco D. Santambrogio – Ver. aggiornata al 20 Maggio.
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo.
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata (3) Istruzioni J-type Istruzioni di salto Istruzioni.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Dalla macchina di Von Neumann …
Presentazione di sistemi Ambrosio Federica Anna Esposito 3C inf.
Click to add text L’ Unità di Elaborazione. Struttura : Unità di controllo: coordina attività CPU ALU: unità aritmetico-logica, esegue operazioni tra.
Università degli Studi di Roma – Tor Vergata Facoltà di Ingegneria – Corso di Laurea in Ingegneria Medica Azione delle istruzioni.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Architettura degli elaboratori
Transcript della presentazione:

L’esecuzione dei programmi Il “linguaggio” (della) macchina

L’esecuzione dei programmi L’esecuzione dei programmi in un computer richiede meccanismi per Eseguire varie operazioni Coordinare la sequenza delle operazioni Le CPU sono progettate in modo da riconoscere un insieme di istruzioni codificate come configurazioni di bit. L’insieme di queste istruzioni è chiamato linguaggio macchina

Linguaggio macchina e assembler linguaggio comprensibile direttamente dal processore della macchina (binario) Assembler : versione simbolica del linguaggio macchina in cui i nomi delle operazioni e degli operandi sono indicati con codici simbolici Assemblatori : programmi che traducono il codice simbolico in sequenze di 0 e 1

La Struttura della CPU celle (dati/istruzioni) indirizzi

La struttura della CPU ALU (Arithmetic-logic Unit): effettua operazioni di tipo aritmetico/logico Registri: celle di memoria interne alla CPU Unità di controllo: coordina le varie unità nell’esecuzione dei programmi

I registri Registri nella UNITA’ di CONTROLLO: Altri registri: PC (Program Counter): contiene l’indirizzo di memoria della prossima istruzione da eseguire IR (Instruction Register): contiene copia dell’istruzione da eseguire PSW (Processor Status Word): contiene informazioni di controllo Altri registri: MAR (Memory Address Register) o registro di indirizzamento in memoria: contiene indirizzo di memoria per individuare cella contenente un dato (è collegato al bus indirizzi) MDR (Memory Data Register) o registro dati di memoria: contiene una copia del dato da scrivere nella memoria o letto dalla memoria (è collegato al bus dati)

Il ciclo fetch-decode-execute La CPU è un dispositivo che opera in modo ciclico ripetendo per ogni istruzione del programma (dalla prima all’ultima): Lettura (fetch): acquisizione della memoria di un’istruzione del programma (e incremento del PC) Decodifica (decode): identificazione del tipo di istruzione da eseguire Esecuzione (execute): esecuzione delle operazioni necessarie per il completamento dell’istruzione

L’elaborazione delle informazioni: le istruzioni della CPU Alcune tipi di istruzioni Istruzioni aritmetiche Istruzioni di trasferimento dati Istruzioni di confronto Istruzioni di salto Il funzionamento della CPU è determinato dall’insieme delle istruzioni che essa esegue

Istruzioni di trasferimento dati Operazioni che spostano dei dati da una posizione all’altra Cella di memoria  Registro Registro  Cella di memoria Cella di memoria  Cella di memoria Registro  Registro Esempi: Carica il Registro R con il contenuto della cella di memoria X Memorizza il contenuto del registro R nella cella di memoria X Copia il contenuto della cella di memoria X nella cella di memoria Y

Operazioni aritmetiche Innescano un calcolo da parte dell’unità aritmetico logica . comprendo operazioni aritmetiche + - • /, e operazioni logiche: AND, OR NOT A secondo del set di istruzioni gli operandi possono risiedere in memoria o essere in un registro dell’ALU Esempi Somma il contenuto della cella X al contenuto della cella X e metti il risultato nella cella Z Somma il contenuto della cella X al contenuto della cella Y e metti il risultato nella cella Y Somma il contenuto della cella X al contenuto del registro R e metti il risultato nel registro R

Operazioni di confronto Confrontano due valori e sistemano un indicatore sulla base del risultato del confronto La maggior parte dei sistemi hanno un registro speciale nel processore dove vengono registrati i bit di operazioni di confronto Esempio Confronta il contenuto della cella di memoria X con il contenuto della cella Y e poni i codici a valori opportuni

Salto (controllo del flusso di programma) Il normale modo di operare ella macchina di von Neumann è sequenziale: istruzione all’indirizzo i istruzione all’indirizzo i+1 ... N.B. Se ogni istruzione occupa 1 parola di memoria Esistono operazioni che possono alterare il normale flusso di controllo sequenziale Esempio Prendi la prossima istruzione incondizionamente dalla parola di memoria X

Il linguaggio macchina e la codifica delle istruzioni assembler 1° A ciascuna istruzione macchina viene associato un intero senza segno (codice operativo) 2° L’istruzione può coinvolgere uno o più operandi 3° Tipicamente la codifica di una istruzione e’ lunga come una parola o multipli della parola per poterla leggere dalla memoria in modo più efficiente : es : con parole di 4 byte (32 bit) Codice operativo Modo1 Op1 Modo2 Op2 4bit 2bit 12bit 2bit 12bit

Esempio: come si realizza in assembler l’operazione x=y+2 LOAD Y, R1 ADD 2, R1 STORE R1, X assembler memoria Legge il valore in Y e lo scrive in R1 Y 34 X 222 17 R1 Indirizzi di due parole di memoria che rappresentano le variabili intere x e y Registro interno del processore (variabile temporanea su cui lavorare)

Esempio: come si realizza in assembler l’operazione x=y+2 LOAD Y, R1 ADD 2, R1 STORE R1, X assembler memoria Aggiunge 2 a R1 Y 34 X 222 34 R1 Indirizzi di due parole di memoria che rappresentano le variabili intere x e y Registro interno del processore (variabile temporanea su cui lavorare)

Esempio: come si realizza in assembler l’operazione x=y+2 LOAD Y, R1 ADD 2, R1 STORE R1, X assembler memoria Y 34 Scrive il contenuto di R1 nella parola di indirizzo X X 222 36 R1 Indirizzi di due parole di memoria che rappresentano le variabili intere x e y Registro interno del processore (variabile temporanea su cui lavorare)

Esempio: come si realizza in assembler l’operazione x=y+2 LOAD Y, R1 ADD 2, R1 STORE R1, X assembler memoria Y 34 X 36 36 R1 Situazione finale della memoria

il linguaggio macchina Traduzione binaria (in linguaggio macchina) di LOAD Y, R1 ADD 2, R1 STORE R1, X Prima di tutto dobbiamo decidere quale è il vero indirizzo di X e Y memoria Y ..01101 ..11100 X

Il linguaggio macchina Codifica binaria di LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 Ogni operazione si codifica secondo un formato stabilito da chi costruisce l’hw un esempio di formato semplificato è Codice operativo Modo 1 Op1 Modo 2 Op2

Il linguaggio macchina i campi del formato : Codice operativo Modo1 Op1 Modo2 Op2 È la codifica dell’operazione da eseguire es: ADD 0001: AGGIUNGE IL VALORE INDICATO DA OP1 IN OP2 LOAD 0110: CARICA IN OP2(dest) IL VALORE IN OP1(sorg) STORE 0111: SALVA IN OP2(dest) IL VALORE IN OP1(sorg)

Il linguaggio macchina Vediamo i vari campi del formato : Codice operativo Modo1 Op1 Modo2 Op2 È la codifica primo operando, MODO1 dice a cosa si riferisce OP1 (modalità di indirizzamento) es: se MODO1 = 00 l’operando è nel registro interno del processore (e OP1 è il numero del registro) se MODO1 = 01 l’operando è in memoria (e OP1 è l’indirizzo) se MODO1 = 10 l’operando è immediato, cioè OP1 è direttamente il valore dell’operando Lo stesso vale per il secondo operando!

Il linguaggio macchina Tipicamente la codifica di una istruzione e’ lunga come una parola o multipli della parola per poterla leggere dalla memoria in modo più efficiente : es : con parole di 4 byte (32 bit) Codice operativo Modo1 Op1 Modo2 Op2 4bit 2bit 12bit 2bit 12bit

Il linguaggio macchina Problema ….. es : con 12 bit posso indirizzare ‘solo’ 212 parole di memoria centrale (RAM) ! Cioè posso avere al massimo una RAM di 4K parole … se ne ho di più devo inventarmi codifiche diverse…. Codice operativo Modo1 Op1 Modo2 Op2 4bit 2bit 12bit 2bit 12bit

E’ possibile combinare semplici istruzioni in linguaggio macchina per portare a termine alcune operazioni algoritmiche di alto livello MODI 00 registro 01 memoria 10 immediato CODICI OPERATIVI ADD 0001 LOAD 0110 STORE 0111 Codifica binaria di LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 Codice operativo Modo1 Op1 Modo2 Op2 4bit 2bit 12bit 2bit 12bit 0110 01 ..01101 00 ..00001 load 0001 10 ..00010 00 ..00001 add 0111 00 ..00001 01 ..11100 store

E’ possibile combinare semplici istruzioni in linguaggio macchina per portare a termine alcune operazioni algoritmiche di alto livello Notazione algoritmica memoria ..00001 LOAD ..01101, R1 Legge il valore da Y e lo scrive in R1 x=y+2 ..00010 ADD 2, R1 Aggiunge 2 a R1 ..00011 STORE R1, ..11100 ... Scrive il contenuto di R1 nella parola di indirizzo X y ..01101 34 … … x ..11100 36 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 LOAD ..01101,R1 Spaz ind (12bit) Memoria (32bit) FETCH Codop - mod1 – op1 - mod2- op2 12 bit ..00001 PC ..00001 0110-01-...01101-00-...00001 12 bit ..00010 0001-10-...00010-00-...00001 ... MAR ..00011 0111-00-...00001-01-...11100 32 bit ... ... MDR ..01101 34 32 bit … ... IR … 32 bit ... R1 ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 LOAD ..01101,R1 Spaz ind (12bit) Memoria (32bit) FETCH Codop - mod1 – op1 - mod2- op2 12 bit ..00001 PC ..00001 0110-01-...01101-00-...00001 leggi 12 bit ..00010 0001-10-...00010-00-...00001 ..00001 MAR ..00011 0111-00-...00001-01-...11100 32 bit ... ... MDR ..01101 34 32 bit … ... IR … 32 bit ... R1 ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 LOAD ..01101,R1 Spaz ind (12bit) Memoria (32bit) FETCH Codop - mod1 – op1 - mod2- op2 12 bit ..00001 PC ..00001 0110-01-...01101-00-...00001 12 bit ..00010 0001-10-...00010-00-...00001 scrivi ..00001 MAR ..00011 0111-00-...00001-01-...11100 32 bit ... 0110-01-...01101-00-...00001 MDR ..01101 34 32 bit … ... IR … 32 bit ... R1 ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 LOAD ..01101,R1 Spaz ind (12bit) Memoria (32bit) FETCH Codop - mod1 – op1 - mod2- op2 12 bit ..00001 PC ..00001 0110-01-...01101-00-...00001 12 bit ..00010 0001-10-...00010-00-...00001 ..00001 MAR ..00011 0111-00-...00001-01-...11100 32 bit ... 0110-01-...01101-00-...00001 MDR ..01101 34 32 bit … 0110-01-...01101-00-...00001 IR … 32 bit ... R1 ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 LOAD ..01101,R1 Spaz ind (12bit) Memoria (32bit) FETCH Codop - mod1 – op1 - mod2- op2 12 bit ..00010 PC ..00001 0110-01-...01101-00-...00001 12 bit ..00010 0001-10-...00010-00-...00001 ..00001 MAR ..00011 0111-00-...00001-01-...11100 32 bit ... 0110-01-...01101-00-...00001 MDR ..01101 34 32 bit … 0110-01-...01101-00-...00001 IR … 32 bit ... R1 ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 LOAD ..01101,R1 Spaz ind (12bit) Memoria (32bit) DECODE 32 bit Codop - mod1 – op1 - mod2- op2 0110-01-...01101-00-...00001 IR ..00001 0110-01-...01101-00-...00001 ..00010 0001-10-...00010-00-...00001 MODI 00 registro 01 memoria 10 immediato CODICI OPERATIVI ADD 0001 LOAD 0110 STORE 0111 ..00011 0111-00-...00001-01-...11100 LOAD ..01101,R1 ... ..01101 34 … … ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 LOAD ..01101,R1 Spaz ind (12bit) Memoria (32bit) EXECUTE Codop - mod1 – op1 - mod2- op2 12 bit ..00010 PC ..00001 0110-01-...01101-00-...00001 12 bit ..00010 0001-10-...00010-00-...00001 ..01101 MAR ..00011 0111-00-...00001-01-...11100 32 bit ... 0110-01-...01101-00-...00001 MDR ..01101 34 32 bit … 0110-01-...01101-00-...00001 IR … 32 bit ... R1 ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 LOAD ..01101,R1 Spaz ind (12bit) Memoria (32bit) EXECUTE Codop - mod1 – op1 - mod2- op2 12 bit ..00010 PC ..00001 0110-01-...01101-00-...00001 12 bit ..00010 0001-10-...00010-00-...00001 ..01101 MAR leggi ..00011 0111-00-...00001-01-...11100 32 bit ... 0110-01-...01101-00-...00001 MDR ..01101 34 32 bit … 0110-01-...01101-00-...00001 IR … 32 bit ... R1 ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 LOAD ..01101,R1 Spaz ind (12bit) Memoria (32bit) EXECUTE Codop - mod1 – op1 - mod2- op2 12 bit ..00010 PC ..00001 0110-01-...01101-00-...00001 12 bit ..00010 0001-10-...00010-00-...00001 ..01101 MAR ..00011 0111-00-...00001-01-...11100 32 bit ... 34 MDR scrivi ..01101 34 32 bit … 0110-01-...01101-00-...00001 IR … 32 bit ... R1 ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 LOAD ..01101,R1 Spaz ind (12bit) Memoria (32bit) EXECUTE Codop - mod1 – op1 - mod2- op2 12 bit ..00010 PC ..00001 0110-01-...01101-00-...00001 12 bit ..00010 0001-10-...00010-00-...00001 ..01101 MAR ..00011 0111-00-...00001-01-...11100 32 bit ... 34 MDR scrivi ..01101 34 32 bit … 0110-01-...01101-00-...00001 IR … 32 bit 34 R1 ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 ADD 2,R1 Spaz ind (12bit) Memoria (32bit) FETCH Codop - mod1 – op1 - mod2- op2 12 bit ..00010 PC ..00001 0110-01-...01101-00-...00001 12 bit ..00010 0001-10-...00010-00-...00001 ... MAR ..00011 0111-00-...00001-01-...11100 32 bit ... ... MDR ..01101 34 32 bit … ... IR … 32 bit 34 R1 ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 ADD 2,R1 Spaz ind (12bit) Memoria (32bit) FETCH Codop - mod1 – op1 - mod2- op2 12 bit ..00010 PC ..00001 0110-01-...01101-00-...00001 leggi 12 bit ..00010 0001-10-...00010-00-...00001 ..00010 MAR ..00011 0111-00-...00001-01-...11100 32 bit ... ... MDR ..01101 34 32 bit … ... IR … 32 bit 34 R1 ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 ADD 2,R1 Spaz ind (12bit) Memoria (32bit) FETCH Codop - mod1 – op1 - mod2- op2 12 bit ..00010 PC ..00001 0110-01-...01101-00-...00001 12 bit ..00010 0001-10-...00010-00-...00001 scrivi ..00010 MAR ..00011 0111-00-...00001-01-...11100 32 bit ... 0001-10-...00010-00-...00001 MDR ..01101 34 32 bit … ... IR … 32 bit 34 R1 ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 ADD 2,R1 Spaz ind (12bit) Memoria (32bit) FETCH Codop - mod1 – op1 - mod2- op2 12 bit ..00010 PC ..00001 0110-01-...01101-00-...00001 12 bit ..00010 0001-10-...00010-00-...00001 ..00010 MAR ..00011 0111-00-...00001-01-...11100 32 bit ... 0001-10-...00010-00-...00001 MDR ..01101 34 32 bit … 0001-10-...00010-00-...00001 IR … 32 bit 34 R1 ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 ADD 2,R1 Spaz ind (12bit) Memoria (32bit) FETCH Codop - mod1 – op1 - mod2- op2 12 bit ..00011 PC ..00001 0110-01-...01101-00-...00001 12 bit ..00010 0001-10-...00010-00-...00001 ..00010 MAR ..00011 0111-00-...00001-01-...11100 32 bit ... 0001-10-...00010-00-...00001 MDR ..01101 34 32 bit … 0001-10-...00010-00-...00001 IR … 32 bit 34 R1 ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 ADD 2,R1 Spaz ind (12bit) Memoria (32bit) DECODE 32 bit Codop - mod1 – op1 - mod2- op2 0001-10-...00010-00-...00001 IR ..00001 0110-01-...01101-00-...00001 ..00010 0001-10-...00010-00-...00001 MODI 00 registro 01 memoria 10 immediato CODICI OPERATIVI ADD 0001 LOAD 0110 STORE 0111 ..00011 0111-00-...00001-01-...11100 ... ADD 2,R1 ..01101 34 … … ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 ADD 2,R1 Spaz ind (12bit) Memoria (32bit) EXECUTE Codop - mod1 – op1 - mod2- op2 12 bit ..00011 PC ..00001 0110-01-...01101-00-...00001 12 bit ..00010 0001-10-...00010-00-...00001 ..00010 MAR ..00011 0111-00-...00001-01-...11100 32 bit ... 0001-10-...00010-00-...00001 MDR ..01101 34 32 bit … 0001-10-...00010-00-...00001 IR … 32 bit 36 R1 ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 STORE R1, ..11100 Spaz ind (12bit) Memoria (32bit) FETCH Codop - mod1 – op1 - mod2- op2 12 bit ..00011 PC ..00001 0110-01-...01101-00-...00001 12 bit ..00010 0001-10-...00010-00-...00001 ... MAR ..00011 0111-00-...00001-01-...11100 32 bit ... ... MDR ..01101 34 32 bit … ... IR … 32 bit 36 R1 ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 STORE R1, ..11100 Spaz ind (12bit) Memoria (32bit) FETCH Codop - mod1 – op1 - mod2- op2 12 bit ..00011 PC ..00001 0110-01-...01101-00-...00001 12 bit ..00010 0001-10-...00010-00-...00001 ..00011 MAR leggi ..00011 0111-00-...00001-01-...11100 32 bit ... ... MDR ..01101 34 32 bit … ... IR … 32 bit 36 R1 ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 STORE R1, ..11100 Spaz ind (12bit) Memoria (32bit) FETCH Codop - mod1 – op1 - mod2- op2 12 bit ..00011 PC ..00001 0110-01-...01101-00-...00001 12 bit ..00010 0001-10-...00010-00-...00001 ..00011 MAR ..00011 0111-00-...00001-01-...11100 scrivi 32 bit ... 0111-00-...00001-01-...11100 MDR ..01101 34 32 bit … ... IR … 32 bit 36 R1 ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 STORE R1, ..11100 Spaz ind (12bit) Memoria (32bit) FETCH Codop - mod1 – op1 - mod2- op2 12 bit ..00011 PC ..00001 0110-01-...01101-00-...00001 12 bit ..00010 0001-10-...00010-00-...00001 ..00011 MAR ..00011 0111-00-...00001-01-...11100 32 bit ... 0111-00-...00001-01-...11100 MDR ..01101 34 32 bit … 0111-00-...00001-01-...11100 IR … 32 bit 36 R1 ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 STORE R1, ..11100 Spaz ind (12bit) Memoria (32bit) FETCH Codop - mod1 – op1 - mod2- op2 12 bit ..00100 PC ..00001 0110-01-...01101-00-...00001 12 bit ..00010 0001-10-...00010-00-...00001 ..00011 MAR ..00011 0111-00-...00001-01-...11100 32 bit ... 0111-00-...00001-01-...11100 MDR ..01101 34 32 bit … 0111-00-...00001-01-...11100 IR … 32 bit 36 R1 ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 STORE R1, ..11100 Spaz ind (12bit) Memoria (32bit) DECODE 32 bit Codop - mod1 – op1 - mod2- op2 0111-00-...00001-01-...11100 IR ..00001 0110-01-...01101-00-...00001 ..00010 0001-10-...00010-00-...00001 MODI 00 registro 01 memoria 10 immediato CODICI OPERATIVI ADD 0001 LOAD 0110 STORE 0111 ..00011 0111-00-...00001-01-...11100 ... STORE R1, ..11100 ..01101 34 … … ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 STORE R1, ..11100 Spaz ind (12bit) Memoria (32bit) EXECUTE Codop - mod1 – op1 - mod2- op2 12 bit ..00100 PC ..00001 0110-01-...01101-00-...00001 12 bit ..00010 0001-10-...00010-00-...00001 ..00010 MAR ..00011 0111-00-...00001-01-...11100 32 bit ... 36 MDR ..01101 34 32 bit … 0111-00-...00001-01-...11100 IR … 32 bit 36 R1 ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 STORE R1, ..11100 Spaz ind (12bit) Memoria (32bit) EXECUTE Codop - mod1 – op1 - mod2- op2 12 bit ..00010 PC ..00001 0110-01-...01101-00-...00001 12 bit ..00010 0001-10-...00010-00-...00001 ..11100 MAR ..00011 0111-00-...00001-01-...11100 32 bit ... 36 MDR ..01101 34 32 bit … 0111-00-...00001-01-...11100 IR … 32 bit 36 R1 ... ..11100 ...

cosa succede effettivamente a livello di esecuzione LOAD ..01101, R1 ADD 2, R1 STORE R1, ..11100 STORE R1, ..11100 Spaz ind (12bit) Memoria (32bit) EXECUTE Codop - mod1 – op1 - mod2- op2 12 bit ..00100 PC ..00001 0110-01-...01101-00-...00001 12 bit ..00010 0001-10-...00010-00-...00001 ..11100 MAR ..00011 0111-00-...00001-01-...11100 32 bit ... 36 MDR ..01101 34 32 bit scrivi … 0111-00-...00001-01-...11100 IR … 32 bit 36 R1 36 ..11100 ...