Calcolatori Elettronici Prof. Gian Luca Marcialis. Capitolo 4 Unità Centrale di Elaborazione Istruzioni Macchina

Documenti analoghi
Richiami sull architettura del processore MIPS a 32 bit

Modi di indirizzamento

Indirettezza. Fetch/Execute. Fetch/Execute. Introduzione della Indirettezza (indirect)

Struttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU:

Macchina di von Neumann/Turing

Architettura dei Calcolatori elettronici

Richiami sull architettura del processore MIPS a 32 bit

Architettura di una CPU

Componenti e connessioni. Capitolo 3

Sommario FONDAMENTI DI INFORMATICA. Architettura di Von Neumann. Algoritmi e programmi ESERCITAZIONE PYTHON ARCHITETTURA DEI CALCOLATORI

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Elementi di informatica

Componenti principali

L insieme delle istruzioni (6)

Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A.

Architettura degli Elaboratori

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Architettura hardware

Architettura di un elaboratore. Il modello di von Neumann

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

DEC PDP8, III Generazione, '65-'75

Elementi di informatica

L'architettura del processore MIPS

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni

Architettura di un calcolatore: Introduzione parte 2

Sistemi e reti CPU Concetti di base

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Un quadro della situazione. Lezione 6 Aritmetica in virgola mobile (2) e Codifica dei caratteri. Dove siamo nel corso. Organizzazione della lezione

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003

Macchina di Riferimento: argomenti

Capitolo 5 Elementi architetturali di base

Architettura degli Elaboratori

Architettura di von Neumann

Architettura di von Neumann

Architettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf

Linguaggio Assembly e linguaggio macchina

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Architettura degli Elaboratori

INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo

La macchina di Von Neumann

Lezione 15. L elaboratore Elettronico

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

Il Modello di von Neumann (2) Prevede 3 entità logiche:

Architettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H

Il modello di von Neumann

Sottosistemi ed Architetture Memorie

Corso di Alfabetizzazione Informatica 2001/2002. La CPU. F. Tortorella Università degli Studi. di Cassino

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 13 Luglio 2004

Architettura dei Calcolatori. Macchina di von Neumann /2. Macchina di von Neumann /1. Architettura dei Calcolatori

Componenti di un processore

Architettura dei computer

INFORMATICA GENERALE

Linguaggio Assembly e linguaggio macchina

Architettura degli Elaboratori

ARCHITETTURA DI UN ELABORATORE

Linguaggio Assembly e linguaggio macchina

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2

Elementi di Architettura

Architettura dei calcolatori

ARCHITETTURA DI UN CALCOLATORE ELETTRONICO

Macchine Astratte. Luca Abeni. February 22, 2017

Architettura dei calcolatori

Ciclo del Processore. Memoria

Capitolo 5 Struttura di base del processore

G L O S S A R I O. Fondamenti di Informatica I - Università degli Studi di Trento Dott. Roberti Pierluigi

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS)

Corso di Informatica

Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore

Sistemi di numerazione

2. Architettura di un calcolatore

Architettura dei calcolatori. Architettura dei calcolatori. Cos'è un computer?

Architettura dei Calcolatori Elettronici

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Istruzioni di trasferimento dati

Corso di Fondamenti di Informatica Elementi di Architettura

Il processore: unità di elaborazione

Corso di Calcolatori Elettronici I Istruzioni macchina ing. Alessandro Cilardo

Struttura di un elaboratore

Corso di Laurea in Ingegneria Elettronica

I formati delle istruzioni

Il linguaggio macchina

Lezione 15 Il Set di Istruzioni (1)

Architettura hardware

Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis. Corso di Laurea in Ingegneria Elettronica

ARCHITETTURA DI UN ELABORATORE

Calcolatori Elettronici A a.a. 2008/2009

Architettura dei sistemi di elaborazione: La CPU: Architettura (parte1)

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

LA GESTIONE DELLA I/O

Architettura del processore. Modello di calcolatore. Caratteristiche del processore. Caratteristiche del processore. Fondamenti di Informatica

Programmazione A.A Architettura dei Calcolatori. ( Lezione V ) Componenti hardware e loro schema funzionale

Sistemi di Elaborazione delle Informazioni

Il processore: unità di controllo

Corso di Laurea in Informatica

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Università degli Studi di Cassino

Il Processore: l unità di controllo

Corso di Architettura (Prof. Scarano) 09/04/2002

Transcript:

Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria Elettronica Capitolo 4 Unità Centrale di Elaborazione Istruzioni Macchina Fonti Principali: Stallings, W., "Architettura e organizzazione dei calcolatori, progetto e prestazioni", Pearson Education Italia Srl, 2004 (ISBN: 88-7192-201-8), Capp. 10, 11, 12. Il set di istruzioni di macchina Il progetto e l implementazione di una CPU riguarda in gran parte la definizione, la progettazione e l implementazione del set di istruzioni che la CPU deve realizzare Il set delle istruzioni è una parte dell architettura del calcolatore che non risulta trasparente all utente Il set delle istruzioni è quasi interamente accessibile all utente che programma in assembly eccetto istruzioni riservate al Sistema Operativo Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 2 Principali elementi di un istruzione di macchina Codice operativo ( Op code ) specificacosa deve essere fatto Indirizzo degli operandi di ingresso l operazione richiede uno o più operandi e ne deve specificare la posizione Indirizzo del risultato il risultato dell operazione deve essere memorizzato da qualche parte Riferimento alla prossima istruzione di solito implicito Memorizzazione di operandi e risultato In memoria, principale o virtuale In registri della CPU se ci sono più registri, a ognuno è assegnato un indirizzo In dispositivi di I/O Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 3 Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 4

Rappresentazione dell istruzione Un istruzione di macchina è rappresentata mediante una stringa di bit Tale stringa è suddivisa in campi che ne definiscono il formato In generale, non esiste un unico formato per tutte le istruzioni Rappresentazione simbolica dell istruzione macchina E difficile sapere interpretare a prima vista una stringa di bit Per cui si ricorre a una rappresentazione simbolica dell istruzione di macchina Es. ADD R, Y R è un registro della CPU Y è l indirizzo di una locazione di memoria ADD è l op code Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 5 Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 6 Linguaggi di alto e basso livello Riferendosi a un programma scritto in istruzioni simboliche di solito si parla di assembly Oggi è raro trovare codice scritto direttamente in assembly, mentre è consuetudine utilizzare linguaggi di alto livello (C, C++, Java) E necessario dunque un traduttore da un linguaggio di alto livello a uno di basso livello, l unico veramente comprensibile al calcolatore Es. istruzione di alto livello: X = X + Y Corrispondenti istruzioni di macchina: LOAD R, X ADD R, Y STORE R, X Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 7 Classi di istruzioni Data processing (elaborazione dati) istruzioni logiche e aritmetiche Memorizzazione istruzioni di trasferimento dati da/a memoria a/da registri I/O trasferimento dati e programmi da/a dispositivi di I/O a/da memoria Controllo del flusso di esecuzione salto chiamata a procedura Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 8

Numero di indirizzi per istruzione Specificano il numero di operandi (in ingresso e in uscita) supportati dall istruzione Sono realizzate istruzioni a: tre indirizzi: due operandi di input, uno di output due indirizzi: due operandi di input, uno dei quali è considerato anche di output un indirizzo: un solo operando di input, quello di output ed il secondo operando sono impliciti, e di solito sono contenuti in un registro detto accumulatore zero indirizzi: gli operandi si trovano in un area di memoria detta stack o pila da cui vengono prelevati e immessi Numero di indirizzi: vantaggi e svantaggi Tre indirizzi determinano istruzioni lunghe Due indirizzi devono essere trattati con cautela per evitare sovrascritture indesiderate Tre e due indirizzi possono lavorare solo su registri Un indirizzo richiede un registro di appoggio Zero indirizzi richiedono un area di memoria dedicata e un numero maggiore di istruzioni di macchina, ma una CPU più semplice Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 9 Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 10 Esempio di set istruzioni a zero, uno e due indirizzi Realizzazione dell operazione desiderata nei tre casi Z = (A + B) / (C + D) * E Si voglia implementare nei tre casi l istruzione di alto livello: Z = (A + B) / (C + D) * E All aumentare della complessità del set di istruzioni, diminuisce il numero di istruzioni necessarie, tuttavia l interpretazione di ciascuna delle singole istruzioni diventa più onerosa. Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 11 Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 12

Specifiche di progetto del set di istruzioni Repertorio delle operazioni quante e quali operazioni la CPU deve sapere compiere complessità delle operazioni Tipi di dati supportati indirizzati dagli operandi Formato delle istruzioni lunghezza (in bit), numero di indirizzi, lunghezza dei singoli campi, etc Registri numero di registri che possono essere indirizzati da un istruzione, e loro uso Metodi di indirizzamento modo di interpretare i campi degli indirizzi dell istruzione Tipi di operandi Principali: indirizzi numeri caratteri logici (livello bit) Ci sono poi altri tipi di operandi più o meno complessi detti strutture dati come: stringhe liste Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 13 Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 14 Tipi di operandi: i Numeri La rappresentazione numerica in un calcolatore è fisicamente limitata: in termini di ampiezza dell intervallo di valori in termini di singoli valori Conseguenze: arrotondamento, overflow, underflow Tipi di dati numerici: interi virgola fissa virgola mobile conversione da decimale a binario alternativa: Extended Binary Coded Decimal (EBCD) Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 15 Tipi di operandi: caratteri e dati logici I caratteri sono rappresentati con una stringa di bit primo esempio storico: l alfabeto Morse standard attuale: codice ASCII (American Standard Code for Information Interchange) ogni carattere: stringa di 7 bit (128 caratteri possibili) un ottavo bit viene aggiunto per un controllo di parità I dati logici sono stringhe di bit in cui ciascun bit viene considerato come dato utili per test di verità memoria usata in modo più efficiente alcune operazioni sono rese più semplici dalla manipolazione del singolo bit (es. virgola mobile) Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 16

Tipi di operazioni Nonostante il numero di opcode vari da macchina a macchina, possiamo identificare una categorizzazione molto generale dei tipi di operazioni: trasferimento aritmetiche logiche conversioni I/O controllo di sistema trasferimento del controllo Operazioni di trasferimento dati Specifiche: locazioni o registri da/a cui trasferire i dati lunghezza dei dati da trasferire modo di indirizzamento degli operandi Architetture notevoli IBM S/370 diverse istruzioni di trasferimento VAX un unica istruzione con varianti nel formato Trasferimento da registro a registro Trasferimento da/a locazioni di memoria calcolare l indirizzo di memoria eventualmente convertirlo da virtuale a fisico verificare se il dato si trova in cache Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 17 Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 18 Operazioni aritmetiche Somma, sottrazione, prodotto, divisione virgola fissa e virgola mobile Coinvolgono il trasferimento dati Operazioni logiche Basate sull algebra booleana Operazioni di scorrimento ( shift ) logico Es. destro aritmetico Es. destro ciclico Es. destro Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 19 Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 20

Operazioni di trasferimento del controllo Alterano la normale sequenza delle istruzioni loop, salti, ecc. esecuzione di parti diverse del programma fisicamente lontane Istruzioni di salto ( branch instruction ) condizionato e non condizionato e.g. BR X salta alla locazione X Istruzioni di skip Es. ISZ R1 incrementa il valore di R1 salta l istruzione successiva se R1 vale zero Es. ciclo for 300 LOAD -10, R1 301 309 ISZ R1 310 BR 301 Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 21 Esempio di istruzioni di salto condizionato e non condizionato Salta alla locazione 211 se il risultato di SUB X,Y è uguale a zero Salta alla locazione 235 se contenuto di R1=R2 Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 22 Trasferimento del controllo: istruzioni di chiamata a procedura Una procedura è un programma incorporato in un programma più grande Il controllo passa alla procedura invocata Al termine della procedura il controllo ritorna al programma principale Utilità delle procedure (o sottoprogrammi): economia: possono implementare funzionalità che vengono richiamate più volte nel corso del programma modularità: un programma può essere suddiviso in più sottoprogrammi ciascuno dei quali risolve un particolare problema Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 23 Metodi di indirizzamento Servono per interpretare il contenuto del campo indirizzi... quindi per calcolare dove effettivamente sono memorizzati gli operandi dell istruzione Opcode diversi presentano diverse modalità di indirizzamento In qualche caso all opcode viene aggiunto un bit che, a parità di operazione, specifica la modalità di indirizzamento ( mode field ) Un altro problema è stabilire se l indirizzamento si riferisce a una locazione fisica della memoria ( effective address ), o a una locazione virtuale Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 24

Categorizzazione dei metodi di indirizzamento Metodi di indirizzamento senza riferimenti alla memoria immediato attraverso registro Metodi di indirizzamento con riferimenti alla memoria diretto indiretto attraverso registro in modalità indiretta attraverso registro indice ( displacement ) stack Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 25 Metodi di indirizzamento senza riferimenti alla memoria Indirizzamento immediato l operando è contenuto nel campo indirizzo Indirizzamento attraverso registro l operando è contenuto in un registro Vantaggi: accesso molto rapido il campo indirizzi occupa poco spazio se indirizza un registro Svantaggi: dimensione dell operando limitata l indirizzamento a registro presenta un numero limitato di registri indirizzabili e richiede un uso efficiente degli stessi Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 26 Metodi di indirizzamento con riferimenti alla memoria Indirizzamento diretto Indirizzamento indiretto Metodi di indirizzamento con riferimento alla memoria: il displacement L istruzione presenta almeno due campi indirizzo, uno dei quali esplicito Vantaggi semplicità implementativa dimensione dell operando Svantaggi dimensione limitata del campo indirizzi Vantaggi maggior numero di operandi indirizzabili Svantaggi accesso più lento Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 27 Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 28

Formato delle istruzioni Il formato di un istruzione è dato da: codice operativo uno o più operandi indicazione esplicita o implicita della modalità di indirizzamento Questi elementi sono fondamentali nel progetto del formato delle istruzioni Nelle prossime diapositive vediamo meglio gli elementi chiave in questa fase del progetto dell Unità Centrale Elementi chiave nel progetto del formato delle istruzioni Lunghezza dell istruzione è determinata dal numero di bit che essa richiede idealmente si vorrebbe un istruzione più lunga possibile, per garantire il massimo potere espressivo numerosità dei codici operativi numerosità degli operandi supportati da ogni istruzione numerosità dei modi di indirizzamento in realtà la lunghezza di un istruzione è fortemente limitata da diversi fattori capacità e organizzazione della memoria struttura del bus complessità e velocità del processore stesso Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 29 Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 30 La lunghezza dell istruzione: motivi di compromesso Non è detto che la lunghezza dell istruzione sia proporzionale alla sua effettiva utilità (CISC rispetto a RISC) Una istruzione di 32 bit occupa uno spazio doppio di una a 16 bit, ma è improbabile che la sua utilità sia doppia La lunghezza di un istruzione dovrebbe essere pari alla capacità di trasferimento dalla memoria (bus dati) Inoltre è molto probabile che il processore esegua un istruzione molto più velocemente di quanto impieghi a prelevarla dalla memoria, creando così un collo di bottiglia Un istruzione di 16 bit può venire prelevata nella metà del tempo di un istruzione di 32 bit, ma è improbabile che venga eseguita nella metà del tempo La lunghezza della istruzione è infine vincolata a multipli del byte (8 bit) e in genere alla lunghezza di una parola di memoria ( word ) Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 31 Allocazione dei bit entro il formato dell istruzione Un maggior numero di opcode richiede più bit Ma ciò significa sottrarre bit al campo indirizzi Possibile soluzione: opcode di lunghezza variabile più bit per specificare operazioni addizionali all opcode iniziale Il campo indirizzi è invece legato a: numero dei modi di indirizzamento (espliciti/impliciti) numero degli operandi ognuno richiede l indicazione del proprio modo di indirizzamento impiego di registri registri dedicati possono essere indirizzati implicitamente intervallo di indirizzamento è sempre conveniente allocare quanti più bit possibile granularità degli indirizzi indirizzare il byte anziché la parola è utile ma richiede più bit Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 32

Ciclo base per l esecuzione di una istruzione Due fasi principali: Fetch ( prelievo ) Execute ( esecuzione ) Schema Semplificato di un Calcolatore Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 33 Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 34 Fetch Cycle (Ciclo di Prelievo) Con riferimento alla Figura di pagina 34: Il registro Program Counter (PC) contiene l indirizzo della prossima istruzione da prelevare Il calcolatore preleva l istruzione dalla locazione di memoria indirizzata dal Program Counter Il Program Counter viene incrementato A meno che non sia specificato diversamente dall istruzione appena prelevata L istruzione viene caricata nel Instruction Register (IR) Il calcolatore interpreta l istruzione ed esegue le azioni richieste Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 35 Esempio di Esecuzione di Istruzioni Prendiamo come riferimento una semplice architettura di principio con le seguenti caratteristiche: Architettura con un unico registro dati detto accumulatore (AC) Istruzioni e dati a 16 bit Formato istruzioni: 4 bit di codice operativo, 12 bit di indirizzo. 0001 (1) = Load AC from Memory 0010 (2) = Store AC to Memory 0101 (5) = Add to AC from Memory Interi a 16 bit in modulo e segno Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 36

Esempio di Esecuzione di Istruzioni 1. PC contiene l indirizzo 300. L istruzione è caricata in IR 2. L Opcode di IR indica che AC deve essere caricato con la locazione di indirizzo 940 3. Incremento PC e Fetch 4. Eseguo l addizione 5. Incremento PC e Fetch 6. Il contenuto di AC è trasferito alla locazione di memoria 941 Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 37 Esecuzione istruzioni (senza interruzioni ) Il funzionamento base della CPU è fatto dei seguenti passi: Fetch delle istruzioni La CPU legge un istruzione dalla memoria. Interpretazione delle istruzioni L istruzione viene decodificata per determinare quale azione è stata richiesta. Fetch dei dati L esecuzione dell istruzione potrebbe richiedere dei dati dalla memoria o da un dispositivo di I/O. Elaborazione dei dati Può essere richiesta l esecuzione di operazioni aritmetiche o logiche sui dati. Scrittura dei dati Si può richiedere di trasferire i dati elaborati in memoria o ad un modulo di I/O. Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 38 Diagramma degli stati per il ciclo di una istruzione Ciclo di un istruzione con interruzione E costituito dai seguenti sotto-cicli: Fetch Lettura dell istruzione successiva dalla memoria. Esecuzione Interpretazione del codice operativo e conseguente esecuzione. Può comprendere Trasferimento di dati tra registri. Lettura/Scrittura in/da memoria o periferica. Utilizzo della ALU. Interrupt Se è stato abilitato un interrupt, si deve salvare lo stato del processo per eseguirlo. Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 39 Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 40

Ciclo indiretto Ciclo dell istruzione con sotto-ciclo indiretto Se per eseguire l istruzione è necessario effettuare un fetch degli operandi con indirizzamento indiretto, questo ulteriore accesso alla memoria è visto come un sottociclo dell istruzione. Questo sotto-ciclo interrompe la normale esecuzione delle istruzioni. Dopo l esecuzione di un istruzione può essere eseguito un interrupt. Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 41 Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 42 Diagramma di stato con interrupt Una volta effettuata la fase di fetch di un istruzione, si devono identificare gli indirizzi degli operandi. Il fetch degli operandi può richiedere l indirizzamento indiretto. Dopo l esecuzione dell istruzione può essere necessario effettuare un ulteriore indirizzamento indiretto per trasferire i risultati in memoria. Flusso dei dati: ciclo di fetch Il contenuto del PC è trasferito al MAR. Si effettua la lettura della locazione di memoria puntata, ponendo il risultato nel MBR e poi in IR. Il PC viene incrementato di 1 per il fetch dell istruzione successiva. Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 43 Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 44

Flusso dei dati: ciclo indiretto L unità di controllo verifica dall IR se gli operandi usano l indirizzamento indiretto. Se sì, il riferimento dell indirizzo viene trasferito dal MBR al MAR. Si effettua la lettura dell indirizzo richiesto dalla memoria. Flusso dei dati: ciclo di interrupt Il contenuto del PC viene posto nel MBR per essere salvato in memoria. L unità di controllo pone nel MAR un indirizzo di locazioni di memoria riservate per questo scopo (es.: lo stack). Nel PC viene caricato l indirizzo della routine dell interrupt richiesta. Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 45 Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 46 La pipeline Si eseguono contemporaneamente le seguenti sei fasi per sfruttare il più possibile la CPU: Fetch dell istruzione Trasferimento in un buffer (MBR) dell istruzione successiva. Decodifica dell istruzione Si determina il codice operativo e gli specificatori degli operandi. Calcolo degli operandi Calcolo dell indirizzo effettivo degli operandi. Fetch degli operandi Lettura degli operandi dalla memoria. Esecuzione dell istruzione Scrittura del resultato Salvataggio del risultato in memoria. Temporizzazione della pipeline Con la pipeline si riduce il tempo di esecuzione di 9 istruzioni da 54 unità di tempo a 14. Si assume che: Le sei fasi abbiano la stessa durata. Non ci siano conflitti nell accesso alla memoria tra le varie fasi. Vengano sempre eseguite tutte e sei le fasi. Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 47 Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 48

Temporizzazione di un salto condizionato in una pipeline L istruzione 3 è un salto condizionato all istruzione 15. Non si può predire il salto prima della sua esecuzione (unità di tempo 7). Si continua ad eseguire le istruzioni immediatamente successive. All istante n. 8 si inizia a caricare l istruzione 15. Le fasi delle istruzioni successive alla 3 già eseguite vanno perse. Fattore di speedup E il rapporto tra il tempo di esecuzione di un istruzione senza e con pipeline: Fatt_speedup = T 1 /T k k è il numero di stadi (fasi) della pipeline. Più aumenta il numero di stadi, maggiore è il fattore di speedup, ma aumentano costi e ritardi tra stadi. Valori tipici: da 6 a 9 stadi. Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 49 Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 50 Pipeline nel PC Intel 80486 (1) E usata una pipeline a 5 livelli: 1. Fetch Dalla cache o dalla memoria esterna. Si usano uno o due buffer da 16 byte. Lo scopo è riempire i buffer con nuovi dati man mano che i vecchi sono usati. Media di 5 fetch di istruzione per caricamento. Fase indipendente dagli altri stadi per tenere pieno il buffer. 2. Stadio di decodifica 1 Informazioni sul codice operativo ed il metodo di indirizzamento. Le informazioni richieste sono incluse in al più 3 byte di istruzione. 3. Stadio di decodifica 2 Si espande il codice operativo in segnali di controllo. Calcolo dell indirizzo in caso di modi complessi. Pipeline nel PC Intel 80486 (2) 4. Esecuzione Operazioni con la ALU. Accesso alla cache. Aggiornamento dei registri. 5. Scrittura Aggiornamento dei registri e dei flag. I risultati vengono mandati alla cache e allo stesso tempo l interfaccia del bus scrive nei buffer. Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 51 Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 52

Esempio di istruzioni in pipeline del 80486 Per saperne di più Capp. 10, 11, 12 del libro di testo Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 53 Calcolatori Elettronici CPU Prof. Ing. G.L. Marcialis 54