Fondamen( di Informa(ca CPU, Linguaggio Macchina e Fasi dell Esecuzione di un Programma Prof. Arcangelo Cas=glione A.A. 217/18
Outline Architettura di von Neumann (Seconda Parte) Linguaggio Macchina Come viene eseguito un programma: Ciclo Fetch-Decode-Execute
Outline Archite(ura di von Neumann (Seconda Parte) Linguaggio Macchina Come viene eseguito un programma: Ciclo Fetch-Decode-Execute
Archite(ura di Von Neumann: Rappresentazione Funzionale È il modello conce+uale secondo cui è organizzata la maggior parte dei moderni elaboratori Tale modello perme+e di rappresentare, memorizzare, elaborare e scambiare le informazioni Mediante opportune componen9 de+e <<So+osistemi>> Sottosistema di interfaccia Sottosistema di memorizzazione Sottosistema di elaborazione Connessione/comunicazione
Archite(ura di Von Neumann: Rappresentazione Funzionale È il modello conce+uale secondo cui è organizzata la maggior parte dei moderni elaboratori Tale modello perme+e di rappresentare, memorizzare, elaborare e scambiare le informazioni Mediante opportune componen9 de+e <<So+osistemi>> Sottosistema di interfaccia Sottosistema di memorizzazione Sottosistema di elaborazione Connessione/comunicazione
Archite(ura di Von Neumann: Componen5 L archite*ura di Von Neumann è cos5tuita da qua*ro componen5 principali (o funzionali) Memoria Centrale So/osistema di memorizzazione Memorizza e fornisce l accesso a da5 e programmi Unità Centrale di Elaborazione (CPU) So/osistema di elaborazione Esegue istruzioni per l elaborazione dei da5 Svolge anche funzioni di controllo Interfacce di Ingresso ed Uscita (o periferiche) So/osistema di Interfaccia Componen5 di collegamento con le periferiche del calcolatore Bus So/osistema di Connessione/Comunicazione Trasferisce da5 ed informazioni di controllo tra le componen5 sudde*e
Archite(ura di Von Neumann: Componen5 L architettura di Von Neumann è costituita da quattro componenti principali (o funzionali) Memoria Centrale Sottosistema di memorizzazione Memorizza e fornisce l accesso a dati e programmi Unità Centrale di Elaborazione (CPU) Sottosistema di elaborazione Esegue istruzioni per l elaborazione dei dati Svolge anche funzioni di controllo Interfacce di Ingresso ed Uscita (o periferiche) Sottosistema di Interfaccia Componenti di collegamento con le periferiche del calcolatore Bus Sottosistema di Connessione/Comunicazione Trasferisce dati ed informazioni di controllo tra le componenti suddette
Archite(ura di Von Neumann
Archite(ura di Von Neumann
Elaborazione L elaborazione nella macchina di Von Neumann è svolta dalla Central Processing Unit (CPU) De9a anche Processore Le istruzioni di un programma corrispondono ad operazioni elementari di elaborazione Ad esempio Operazioni aritme>che Operazioni relazionali (confronto tra da>) Operazioni su cara9eri e valori di verità Altre operazioni numeriche
Elaborazione
La CPU 1/4 La Central Processing Unit (o CPU) è l unità centrale di elaborazione 1. 2. Esegue le istruzioni dei programmi e ne regola il flusso Esegue i calcoli
La CPU 2/4 La CPU è un disposi&vo sincrono Regolato da una sorta di orologio (o clock) Il clock stabilisce quante istruzioni al secondo possono essere eseguite dalla CPU (Velocità di clock o Frequenza di clock, misurata in Hertz) Alla ricezione di un impulso di clock è eseguita una nuova istruzione (più precisamente è eseguito un nuovo ciclo macchina Maggiori defagli in seguito) Una moderna CPU Gpicamente lavora a! GHz Segue un ritmo di! miliardi di impulsi al secondo Esempio: Una CPU che lavora a 3 GHz riceve 3 miliardi di impulsi al secondo
La CPU 3/4 La frequenza di clock determina la velocità di elaborazione del computer Più alta è la frequenza di clock, maggiore è la velocità di elaborazione
La CPU 3/4 La frequenza di clock determina la velocità di elaborazione del computer Più alta è la frequenza di clock, maggiore è la velocità di elaborazione La velocità e la potenza di un computer dipendono anche dalla dimensione (o larghezza) del bus Quan@tà di da@ (ampiezza del singolo dato, misurata in numero di bit) che il processore è in grado di ricevere ed elaborare simultaneamente «ConceDo» di ArchiteDure a 32 o 64 bit (Maggiori de6agli nella prossima lezione)
La CPU 3/4 La frequenza di clock determina la velocità di elaborazione Dall inglese del computer binary digit. Unità di Più alta è la frequenza base utilizzata di clock, maggiore per la è la velocità di elaborazione rappresentazione e l elaborazione dell informazione La velocità e la potenza di un computer dipendono anche dalla dimensione (o larghezza) del bus Quan@tà di da@ (ampiezza del singolo dato, misurata in numero di bit) che il processore è in grado di ricevere ed elaborare simultaneamente ArchiteCure a 32 o 64 bit
La CPU 4/4 Schema Logico della CPU CPU Registri PC IR ALU CU
La CPU 4/4 La CPU è cos+tuita da 3 elemen* fondamentali: Unità Aritme*co- Logica (ALU), Registri e Unità di Controllo (CU) CPU Registri PC IR ALU CU
La CPU Elemen, Fondamentali: ALU La CPU è cos(tuita da tre elemen( fondamentali Unità Aritme(co-Logica (ALU)
La CPU Elementi Fondamentali: ALU La ALU (Arithme,c-Logic Unit), de'a anche Unità Aritme2co-Logica, si occupa di eseguire operazioni aritme,che e logiche su 2 operandi Oltre al risultato dell operazione stessa, la ALU può res2tuire in output ulteriori informazioni (segnali di stato) Tali segnali sono di solito usa2 per indicare il verificarsi di situazioni anomale (errori, etc) ALU operation a ALU Status Result b
La CPU Elemen, Fondamentali: Registri La CPU è cos(tuita da tre elemen( fondamentali Unità Aritme(co-Logica (ALU) Registri
Gerarchie di Memoria Registri della CPU Cache di primo, secondo e terzo livello Memoria Centrale (RAM) Dischi interni Velocità d Accesso Capacità In base ai parametri di capacità e velocità d accesso, le memorie possono essere collocate a diversi livelli di una gerarchia I registri della CPU sono la tipologia di memoria con la maggiore velocità di accesso e rappresentano quindi il vertice della gerarchia di memorie Dischi esterni
Gerarchie di Memoria
La CPU Elemen, Fondamentali: Registri I registri sono disposi*vi di memorizzazione che consentono un accesso molto veloce ai da. contenu. Hanno dimensioni prefissate
La CPU Elementi Fondamentali: Registri Le operazioni di le-ura e scri-ura dalla/nella memoria centrale u4lizzano il Registro Da, (DR) Le.ura: copia il contenuto della cella di memoria nel registro da4 Essa «carica» (in inglese, Load) nel registro da4 il contenuto di una cella di memoria Scri.ura: copia il contenuto del registro da4 in una cella di memoria Essa «deposita» (in inglese, Store) il contenuto del registro da4 in una cella di memoria
La CPU Elemen, Fondamentali: Registri I registri sono disposi*vi di memorizzazione che consentono un accesso molto veloce ai da. contenu. Hanno dimensioni prefissate Alcuni registri hanno funzioni specifiche
La CPU Elementi Fondamentali: Registri I registri sono disposi*vi di memorizzazione che consentono un accesso molto veloce ai da. contenu. Hanno dimensioni prefissate Alcuni registri hanno funzioni specifiche Il registro Program Counter (PC)à Individua (tramite indirizzo) la prossima istruzione da eseguire
La CPU Elementi Fondamentali: Registri I registri sono disposi*vi di memorizzazione che consentono un accesso molto veloce ai da. contenu. Hanno dimensioni prefissate Alcuni registri hanno funzioni specifiche Il registro Program Counter (PC) à Individua (tramite indirizzo) la prossima istruzione da eseguire Il registro Instruc*on Register (IR) à Con.ene l istruzione da eseguire
La CPU Elemen, Fondamentali: Registri Lo stato della CPU è rappresentato dalle informazioni memorizzate negli opportuni registri Da4 da elaborare Contenu4 nei Registri Da (DR) Istruzione da eseguire Contenuta nel registro InstruconRegister (IR) Indirizzo in memoria della prossima istruzione da eseguire Contenuto nel registro Program Counter (PC) Eventuali anomalie o even4 verifica4si durante l elaborazione Contenu4 nei Registri di Stato o Flag
La CPU Elementi Fondamentali: Unità di Controllo La CPU è costituita da tre elementi fondamentali Unità Aritmetico-Logica (ALU) Registri Unità di Controllo (CU)
La CPU Elemen, Fondamentali: Unità di Controllo Il coordinamento tra le varie parti del calcolatore è svolto dall unità di controllo (CU) È una componente dell unità centrale di elaborazione Ogni componente del calcolatore esegue solo le azioni che gli vengono richieste dall unità di controllo
La CPU Elemen, Fondamentali: Unità di Controllo Il coordinamento tra le varie par del calcolatore è svolto dall unità di controllo (CU) È una componente dell unità centrale di elaborazione Ogni componente del calcolatore esegue solo le azioni che gli vengono richieste dall unità di controllo Il controllo consiste nel coordinamento dell esecuzione temporale delle operazioni Sia internamente alla CPU sia negli altri elemen funzionali
Istruzioni Base della CPU 1/2 1. Istruzioni di base (eseguite dalla ALU) Somma (da cui so+razione) Scorrimento (shi1) Operazioni logiche Operazioni di confronto
Istruzioni Base della CPU 1/2 1. Istruzioni di base (eseguite dalla ALU) Somma (da cui so+razione) Scorrimento (shi1) Operazioni logiche Operazioni di confronto Tramite le operazioni di somma e shi= è possibile ricavare le operazioni di mol>plicazione e divisione (Maggiori debagli nelle prossime lezioni)
Istruzioni Base della CPU 2/2 2. Operazioni di accesso alla memoria (Non eseguite dalla ALU) Trasferimento di un dato da una locazione di memoria ad un altra Trasferimento da Memoria à Registro della CPU Registro della CPU à Memoria
Outline Archite(ura di von Neumann (Seconda Parte) Linguaggio Macchina Come viene eseguito un programma: Ciclo Fetch-Decode-Execute
Da# e Istruzioni in Memoria Centrale Indirizzi Memoria 11 1 111 2 111 3 1111 4 1 15 111 halt 16 11 17 11 18 1 Istruzioni Dati
Da# e Istruzioni Dati e istruzioni di un programma sono codificati in forma binaria, cioè mediante sequenze finite di bit Un istruzione codificata si compone di due parti Codice Operativo (CO) Uno o più operandi (Op. i) Istruzione à CO Op. 1 Op. n
Da# e Istruzioni Da# e istruzioni di un programma sono codifica# in forma binaria, cioè mediante sequenze finite di bit Un istruzione codificata si compone di due par# Codice Opera1vo (CO) Uno o più operandi (Op. i) Istruzione à CO Op. 1 Op. n Il codice operativo specifica l istruzione da eseguire. In ogni architettura è definito un certo insieme di istruzioni (set di istruzioni) con gli associati CO
Dati e Istruzioni Da# e istruzioni di un programma sono codifica# in forma binaria, cioè mediante sequenze finite di bit Un istruzione codificata si compone di due par# Codice Opera1vo (CO) Uno o più operandi (Op. i) Istruzione à CO Op. 1 Op. n Gli operandi contengono le informazioni necessarie a reperire i da# sui quali l istruzione deveoperare
Dati e Istruzioni Dati e istruzioni di un programma sono codificati in forma binaria, cioè mediante sequenze finite di bit Un istruzione codificata si compone di due parti Codice Operativo (CO) Uno o più operandi (Op. i) Istruzione à CO Op. 1 Op. n Un istruzione è stre:amente legata all archite:ura della macchina
Linguaggio (o Codice) Macchina Definizione Insieme di istruzioni eseguite dire/amente dalla CPU Ogni istruzione svolge un compito specifico Istruzioni piu/osto rudimentali, codificate in binario Il numero di operandi è limitato (in genere non più di due) Il numero di operazioni previste è rido/o Ogni @po di processore è in grado di eseguire un numero limitato di istruzioni Combinando in modo diverso sequenze anche molto lunghe di istruzioni (i programmi) si può istruire l elaboratore a fare tan@ssime cose, anche completamente diverse tra loro
Il Linguaggio Macchina Un programma in esecuzione risiede nella memoria centrale È rappresentato da una serie di numeri binari che codificano le istruzioni eseguibili dalla CPU Semplice programma composto da 5 istruzioni 11111 11111111 111111 111111111 111111111 Osservando esclusivamente il contenuto della memoria, il programma non è distinguibile dai dati Le istruzioni sono individuate dai valori assunti dal registro PC durante l esecuzione del programma PC
Il Set di Istruzioni Macchina L insieme delle istruzioni eseguibili e la rela3va codifica sono generalmente diverse per modelli diversi di processore Le categorie di istruzioni normalmente disponibili sono Trasferimento da. Spostano da3 tra registri, memoria principale e disposi3vi di ingresso/uscita (I/O) Aritme.co-logiche Eseguono i calcoli nella ALU Sal. (condiziona. e incondiziona.) Prendono decisioni e alterano la normale esecuzione sequenziale delle istruzioni
Esempio di Programma in Linguaggio Macchina 11 leggi un valore in ingresso e ponilo nella cella numero 16 (variabile x) 111 leggi un valore e ponilo nella cella numero 17 (variabile y) 111 leggi un valore e ponilo nella cella numero 18 (variabile z) 1111 leggi un valore e ponilo nella cella numero 19 (variabile r) 1 carica il registro A con il contenuto della cella 16 111 carica il registro B con il contenuto della cella 17 11 somma i contenuti dei dei registri A e B 111 copia il contenuto del registro A nella cella 2 (risultato, variabile s) 11 carica il registro A con il contenuto della cella 18 1111 carica il registro B con il contenuto della cella 19 11 somma i contenuti dei registi A e B 111 carica il registro B con il contenuto della cella 2 1 moltiplica i contenuti dei registri A e B 111 copia il contenuto del registro A nella cella numero 2 1111 scrivi in output il contenuto della cella numero 2 111 arresta l esecuzione (HALT) spazio per la variabile x (cella 16) spazio per la variabile y (cella 17) spazio per la variabile z (cella 18) spazio per la variabile r (cella 19) spazio per la variabile s (cella 2)
Outline Archite(ura di von Neumann (Seconda Parte) Linguaggio Macchina Come viene eseguito un programma: Ciclo Fetch-Decode-Execute
Come si Eseguono i Programmi? Programma: sequenza di istruzioni da eseguire per ottenere lasoluzione adunadataclasse diproblemi
Come si Eseguono i Programmi? Programma: sequenza di istruzioni da eseguire per ottenere lasoluzione adunadataclasse diproblemi Il processore esegue ciascuna istruzione mediante la seguente sequenza di operazioni, detta ciclo di istruzione o ciclo macchina 1. Estrazione diun istruzione: fase difetch 2. Interpretazione di un istruzione: fase di decode 3. Esecuzione dell istruzione: fase diexecute
Ciclo Fetch-Decode-Execute 1/2
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruction Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzodell istruzione successiva (fetch)
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruc;on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) Memoria CPU Istruzione 1 Istruzione 2 Istruzione 3 111 11 111 111 111 1111 P C CU IR
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruc;on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) Istruzione 1 Istruzione 2 Istruzione 3 Memoria NOTA Schema logico del so@oinsieme della CPU coinvolto 111 11 nella fase di 111 111 Fetch 111 1111 P C CPU CU IR
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruc;on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) Memoria CPU Istruzione 1 Istruzione 2 Istruzione 3 111 11 111 111 111 1111 Indirizzi: 1 1 P C CU IR
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruc<on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) PC à Registro Program Counter CPU Memoria Istruzione 1 Istruzione 2 Istruzione 3 111 11 111 111 111 1111 Indirizzi: 1 1 P C CU IR
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruc<on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) Memoria CPU Istruzione 1 Istruzione 2 Istruzione 3 111 11 111 111 111 1111 Indirizzi: 1 1 P C CU IR
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruc<on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) Il PC individua l Istruzione 1 CPU (contiene l indirizzo Memoria dell Istruzione 1) Istruzione 1 Istruzione 2 Istruzione 3 111 11 111 111 111 1111 Indirizzi: 1 1 P C CU IR
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruction Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzodell istruzione successiva (fetch) Memoria CPU Istruzione 1 Istruzione 2 Istruzione 3 111 11 111 111 111 1111 Indirizzi: 1 1 P C CU IR
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruc;on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) Memoria CPU Istruzione 1 Istruzione 2 Istruzione 3 111 11 111 111 111 1111 Indirizzi: 1 1 P C CU IR
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruc;on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) Memoria CPU Istruzione 1 Istruzione 2 Istruzione 3 111 11 111 111 111 1111 UDlizziamo il BUS Indirizzi: 1 1 P C CU IR
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruc;on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) Memoria CPU Istruzione 1 Istruzione 2 Istruzione 3 111 11 111 111 111 1111 Indirizzi: 1 1 P C CU IR
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruc>on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) Memoria CPU Istruzione 1 Istruzione 2 Istruzione 3 111 11 111 111 111 1111 Indirizzi: 1 1 P C CU IR
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruction Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzodell istruzione successiva (fetch) Memoria CPU Istruzione 1 Istruzione 2 Istruzione 3 111 11 111 111 111 1111 Indirizzi: 1 1 P C CU IR
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruc>on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) Memoria CPU Istruzione 1 Istruzione 2 Istruzione 3 111 11 111 111 111 1111 Indirizzi: 1 1 P C CU IR
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruc>on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) Memoria CPU Istruzione 1 Istruzione 2 Istruzione 3 111 11 111 111 111 1111 Utilizziamo ancora il BUS Indirizzi: 1 1 P C CU IR
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruction Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzodell istruzione successiva (fetch) Memoria CPU Istruzione 1 Istruzione 2 Istruzione 3 111 11 111 111 111 1111 Indirizzi: 1 1 P C CU IR
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruction Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzodell istruzione successiva (fetch) Memoria CPU Istruzione 1 Istruzione 2 Istruzione 3 111 11 111 111 111 1111 Indirizzi: 1 1 P C CU IR 111 11
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruction Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzodell istruzione successiva (fetch) Memoria CPU Istruzione 1 Istruzione 2 Istruzione 3 111 11 111 111 111 1111 Indirizzi: 1 1 Adesso l IR conterrà l Istruzione 1 P CU C IR 111 11
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruction Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzodell istruzione successiva (fetch) Memoria CPU Istruzione 1 Istruzione 2 Istruzione 3 111 11 111 111 111 1111 Indirizzi: 1 1 P C CU IR 111 11
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruc>on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) Memoria CPU Istruzione 1 Istruzione 2 Istruzione 3 111 11 111 111 111 1111 Indirizzi: 1 1 P C CU IR 111 11
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruc>on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) Il PC individuava CPU Memoria l Istruzione 1 Istruzione 1 Istruzione 2 Istruzione 3 111 11 111 111 111 1111 Indirizzi: 1 1 P C CU IR 111 11
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruc>on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) Memoria CPU Istruzione 1 Istruzione 2 Istruzione 3 111 11 111 111 111 1111 Indirizzi: 1 1 P C CU Il PC verrà incrementato e punterà all Istruzione 2 IR 111 11
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruc>on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) Memoria CPU Istruzione 1 Istruzione 2 Istruzione 3 111 11 111 111 111 1111 Indirizzi: 1 1 P C 1 CU IR 111 11 Il PC individua adesso l Istruzione 2
Ciclo Fetch-Decode-Execute 2/2 La Il CPU PC individua esegue solo la prossima istruzioni istruzione codificate da eseguire in linguaggio (ovvero, l indirizzo macchina, dell Istruzione mediante 2) il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruc>on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) Memoria CPU Istruzione 1 Istruzione 2 Istruzione 3 111 11 111 111 111 1111 Indirizzi: 1 1 P C 1 CU IR 111 11
Ciclo Fetch-Decode-Execute 2/2 La CPU Il PC individua esegue solo la prossima istruzioni istruzione codificate da eseguire in linguaggio (ovvero, l indirizzo macchina, dell Istruzione mediante 2) il ciclo Fetch-Decode-Execute 1. Prendi l istruzione L IR con)ene corrente l istruzione dalla memoria da eseguire (individuata (ovvero, l Istruzione dal contenuto 1) del PC). Salvala nell IR (Instruc>on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) Memoria CPU Istruzione 1 Istruzione 2 Istruzione 3 111 11 111 111 111 1111 Indirizzi: 1 1 P C 1 CU IR 111 11
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruc;on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) FASE DI FETCH
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruction Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzodell istruzione successiva (fetch) 2. Determina iltipo diistruzionedaeseguire
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruc;on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) 2. Determina ilapo diistruzionedaeseguire L istruzione da eseguire si trova nel registro IR
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruction Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzodell istruzione successiva (fetch) 2. Determina iltipo diistruzionedaeseguire Se l istruzione usa dati presenti in memoria, determinane la posizione Carica tali dati nei registri della CPU
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruction Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzodell istruzione successiva (fetch) 2. Determina iltipo diistruzionedaeseguire (decode) Se l istruzione usa dati presenti in memoria, determinane la posizione Carica tali dati nei registri della CPU FASE DI DECODE
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruc;on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) 2. Determina ilapo diistruzionedaeseguire (decode) Se l istruzione usa daa presena in memoria, determinane la posizione Carica tali daa nei registri della CPU 3. Esegui l istruzione
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruc;on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) 2. Determina ilapo diistruzionedaeseguire (decode) Se l istruzione usa daa presena in memoria, determinane la posizione Carica tali daa nei registri della CPU 3. Esegui l istruzione (execute) FASE DI EXECUTE
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruc;on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) 2. Determina ilapo diistruzionedaeseguire (decode) Se l istruzione usa daa presena in memoria, determinane la posizione Carica tali daa nei registri della CPU 3. Esegui l istruzione (execute) 4. Torna alpunto1. ed iniziaad elaborare l istruzione successiva
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruction Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzodell istruzione successiva (fetch) 2. Determina iltipo diistruzionedaeseguire (decode) Se l istruzione usa dati presenti in memoria, determinane la posizione Carica tali dati nei registri della CPU 3. Esegui l istruzione (execute) 4. Torna al punto 1. ed iniziaad elaborare l istruzione successiva
Ciclo Fetch-Decode-Execute 2/2 La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante il ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell IR (Instruc;on Register) e contemporaneamente incrementa il PC in modo che contenga l indirizzo dell istruzione successiva (fetch) 2. Determina ilapo diistruzionedaeseguire (decode) Se l istruzione usa daa presena in memoria, determinane la posizione Carica tali daa nei registri della CPU 3. Esegui l istruzione (execute) 4. Torna alpunto1. ed iniziaad elaborare l istruzione successiva Mediante il passo 4., i passi precedena vengono eseguia ciclicamente (ciclo Fetch-Decode-Execute)