Macchina di von Neumann



Documenti analoghi
Architettura del calcolatore

CPU. Maurizio Palesi

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Architettura di un calcolatore: introduzione

Corso di Calcolatori Elettronici I A.A Il processore Lezione 18

Architettura hardware

Calcolo numerico e programmazione Architettura dei calcolatori

Struttura del calcolatore

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

Architettura di tipo registro-registro (load/store)

Lezione 3: Architettura del calcolatore

C. P. U. MEMORIA CENTRALE

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4

Il Processore: i registri

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Esame di INFORMATICA

L architettura del calcolatore (Prima parte)

L architettura di riferimento

Lezione n.19 Processori RISC e CISC

Ing. Paolo Domenici PREFAZIONE

CALCOLATORI ELETTRONICI 29 giugno 2011

che vengano generati nell ordine corretto i sistema (es., la memoria, l unità aritmetico-

Introduzione all'architettura dei Calcolatori

Laboratorio di Informatica

CALCOLATORI ELETTRONICI

Lezione n.9. Introduzione al linguaggio macchina

Parte II.2 Elaboratore

UNITÀ DI ELABORAZIONE (CPU) UNITÀ DI ELABORAZIONE (CPU) Opcode OpCode Operazione

LABORATORIO DI SISTEMI

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6

CALCOLATORI ELETTRONICI 15 aprile 2014

Informatica - A.A. 2010/11

Architettura del computer (C.Busso)

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

La microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico pagina 1

Architettura dei computer

Lezione 8. La macchina universale

ARCHITETTURA DI UN PERSONAL COMPUTER

La macchina programmata Instruction Set Architecture (1)

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Architettura dei calcolatori

L organizzazione interna della memoria e del banco di registri prevedono generalmente che le uscite di 2 o più componenti

Architettura degli elaboratori (A)

La memoria centrale (RAM)

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Architettura di un computer

Elementi di Informatica e Programmazione. # Memoria di massa. Problema: comprare un PC. Architettura del calcolatore. Architettura di Von Neumann

Unità Periferiche. Rete Di Controllo

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1

La Macchina Virtuale

Esercitazione sulle CPU pipeline

L unità di controllo di CPU multi-ciclo

CALCOLATORI ELETTRONICI 29 giugno 2010

Il processore - CPU (CENTRAL PROCESSING UNIT)

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

Programmazione dello Z80

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Richiami di informatica e programmazione

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

Architettura di un calcolatore

Architettura di un Elaboratore

Von Neumann. John Von Neumann ( )

Architettura dei calcolatori I parte Introduzione, CPU

CALCOLATORI ELETTRONICI 31 marzo 2015

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

Interfacciamento con memorie Pagina 1 di 9

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN

Prelievo di un istruzione. Istruzioni macchina. Tipi di istruzioni. Registri principali della CPU e loro ruolo

Interpreti e compilatori La macchina di Von Neumann

Funzionalità di un calcolatore

Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati e collegati

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino

La macchina di Von Neumann. Archite(ura di un calcolatore. L unità di elaborazione (CPU) Sequenza di le(ura. Il bus di sistema

Il memory manager. Gestione della memoria centrale

ARCHITETTURA DEL CALCOLATORE

Categorie di sistemi Digitali

Capitolo. Interfacciamento di periferiche I/O con il PC. 1.1 Il BUS di espansione del PC

Calcolatori Elettronici. La Pipeline Criticità sui dati Criticità sul controllo Cenni sull unità di controllo

Il processore - CPU. PDF created with pdffactory trial version

La Comunicazione tra i dispositivi

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

Hazard sul controllo. Sommario

Lezione 7 Sommatori e Moltiplicatori

DMA Accesso Diretto alla Memoria

Dispensa di Informatica I.1

Testi di Esercizi e Quesiti 1

Programma ARCHITETTURA DI UN ELABORATORE MACCHINA DI VON NEUMANN CPU & MEMORIA UNITÀ DI ELABORAZIONE (CPU) Questa settimana:

Appunti sulla Macchina di Turing. Macchina di Turing

Transcript:

Il processore PD32

Macchina di von Neumann Unità di Ingresso Memoria di lavoro Unità di Uscita Unità di Calcolo Unità di Controllo

Suddivisione SCA-SCO Unità di Ingresso Memoria di lavoro Unità di Uscita Unità di Calcolo SCA Unità di Controllo SCO Segnali di controllo/condizione Flusso dati

Modifica macchina di Von Neumann con CPU Unità di Ingresso Memoria di lavoro Unità di Uscita Unità di Calcolo Unità di Controllo CPU

Dal linguaggio ad alto livello al linguaggio macchina Forma molto astratta (linguaggio C->lisp) Non dipende dalla macchina HW Programma in Linguaggio alto Livello Compilatore a:=b+c Dipende dalla macchina hw Insieme istruzioni del macchina hw (simboliche) Commenti Riferimenti simbolici Programma in Linguaggio Assembly Assemblatore movw b,r1 movw c,r2 addw R2,R1 movw R1,a Insieme Istruzioni della macchina hw Programma in Linguaggio Macchina Macchina HW 000101..010100 1011101..010100 01011..11101010 010..1110101010

Un semplice esempio Consideriamo l istruzione aritmetica a:=a+b, espressa in un linguaggio di alto livello (ex. Pascal). Essa ha il seguente significato Memorizza nella variabile di nome a, la somma dei valori contenuti nelle variabili di nome a e b Le variabili sono i contenitori delle informazioni, e sono individuati da un nome simbolico deciso precedentemente nel programma.. a b 15 a 24 9 a:=a+b b 9 Prima Dopo

Un semplice esempio (2) Come può il calcolatore eseguire questa istruzione? E necessario stabilire Dove sono memorizzati i valori da sommare Dove va scritto il risultato dell operazione Quale operazione svolgere Ad esempio, nel PD32, gli operandi devono essere memorizzati nei registri interni alla CPU (registri visibili al programmatore) Il formato dell istruzione che esegue la è ADDs <sorgente><destinazione> (s può essere B,W,L) Il campo destinazione è un registro che contiene anche il valore iniziale di un operando e che andrà riscritto ADDW R2,R1 #somma R1 con R2 e poni il risultato in R1

Ciclo istruzione Indirizzo PC 100 adds R2,R1 100.. MEMORIA PC=Program Counter

Ciclo istruzione Indirizzo PC 100 adds R2,R1 100 IR adds R2,R1.. MEMORIA PC=Program Counter IR= Instruction Register

Ciclo istruzione Indirizzo PC 100 adds R2,R1 100 IR adds R2,R1.. MEMORIA Controllo

Ciclo istruzione Indirizzo PC 100 adds R2,R1 100 IR adds R2,R1.. Controllo Risorse di calcolo MEMORIA

CPU come interprete Il comportamento della CPU può essere specificato come la ripetizione continua del seguente insieme di operazioni (Ciclo Istruzione) atte ad interpretare le istruzioni di un programma contenuto in memoria. La notazione (PC) indica il contenuto della locazione di memoria con indirizzo PC fetch: (PC) IR incrementa PC esegui istruzione in IR vai al passo fetch La CPU cioè interpreta le istruzioni che man mano sono presenti nel suo Instruction Register Tale schema è semplificato poiché per interagire con l esterno, o gestire situazioni anomale, tale ciclo deve poter essere interrotto.

PD32 Processore virtuale dotato di registri da 32 bit Non esiste nella realtà, ma le sue funzionalità sono simulate tramite un programma. Nel seguito sarà usato per approfondire alcuni aspetti legati alle architetture dei calcolatori. Sistema multiciclo. No pipeline.

R0 R1.. R7. struttura di interconnessione MDR MAR memoria di lavoro TEMP1 TEMP2 I/ODR I/OAR dispositivi ingresso/uscita PC ALU SR SHIFTER IR UNITA' DI CONTROLLO CPU N.B. non sono indicati i segnali di controllo che dal SCO vanno verso i registri interni, le unità di calcolo e la struttura di interconnessione

PD32- Sottosistema di Calcolo (SCA) Registri (basati su Flip-Flop D con segnale di Enable) speciali generali Shifter ALU (somma e sottrazione) MUX Decodificatori Struttura di interconnessione: BUS

PD32- BUS interno Usato per il collegamento dei registri interni Operazioni che caratterizzano il bus Ricezione dati i bit presenti sul bus sono memorizzati in un registro Trasmissione dati Il contenuto di un registro è posto sul bus Al più un solo registro può scrivere sul bus segnali di controllo opportunamente generati Il segnale di abilitazione alla scrittura di un registro corrisponde alla ricezione dei dati presenti sul bus in quel momento Il segnale di abilitazione sul buffer three-state permette di trasferire sul bus il contenuto del registro

PD32- BUS interno, segnali di controllo W R0 W R1 W R7 R 0 R 1 R 7 B R0 B R1 B R7 W i =1, leggi dal bus B i =1 scrivi sul bus 32 Una sola scrittura per volta (controllo mediante Bi) 2n segnali di controllo (n numero dei registri)

PD32- BUS interno, esempio R1 -> R0 Per eseguire il trasferiemento da R1 ad R0 (simbolicamente (R1)->R0) devono essere affermati solamente i seguenti segnali: B R1 = 1, W R0 = 1 W R0 W R1 W R7 R 0 R 1 R 7 B R0 B R1 B R7 32

PD32- Banco dei registri Insieme di 8 registri generali indicati da R0 ad R7 Sono controllati mediante Segnali di abilitazione per scrittura del registro (W M ) lettura e conseguente invio sul bus interno del contenuto del registro (R M ) Indirizzo W M R M BUS interno

PD32- Banco dei registri Decoder Indirizzo registro W M R M R 0 R 1 R 7 w 0 w 1 w 7 B 0 B 1 B 7 w i =1, scrivi valore sul bus in Ri B i = 1, invia sul bus valore di Ri 2 + log 2 n segnali di controllo (n = numero registri) BUS

PD32- esempio: R7 ->BUS notare che non si può scrivere contemporaneamente su un registro del banco Decoder 1 1 1 Indirizzo registro Address W M R M R 0 R 1 R 7 w 0 w 1 w 7 B 0 B 1 B 7 Address=111, RM=1 BUS

PD32- ALU Esegue le operazioni aritmetiche e logiche dei valori memorizzati in due registri tampone (non visibili al programmatore) Temp1 e Temp2 Il risultato è posto in un registro generale Ri 32 W T1 TEMP1 TEMP2 W T2 OpCode ALU B A

PD32- ALU, esempio: addw R2,R1 W M R M 3 Address REGISTRI W T1 TEMP1 TEMP2 W T2 ALU OpCode B A 32

PD32- ALU, esempio: addw R2,R1 1. R1 -> Temp1 R M =1, Address = 001, W T1 =1 W M R M 3 Address REGISTRI W T1 TEMP1 TEMP2 W T2 ALU OpCode B A 32

PD32- ALU, esempio: addw R2,R1 1. R1 -> Temp1 R M =1, Address = 001, W T1 = 1 2. R2 -> Temp2 R M =1, Address = 010, W T2 = 1 W M R M 3 Address REGISTRI W T1 TEMP1 TEMP2 W T2 ALU OpCode B A 32

PD32- ALU, esempio: addw R2,R1 1. R1 -> Temp1 R M =1, Address = 001, W T1 = 1 2. R2 -> Temp2 R M =1, Address = 010, W T2 = 1 3. ALU-OUT(Temp1+Temp2)->R1 W M =1, Address = 001, OpCode = addw, B A =1 W M R M 3 Address REGISTRI W T1 TEMP1 TEMP2 W T2 ALU OpCode B A 32

Osservazioni Per eseguire l istruzione (senza considerare la fase di fetch) sono state necessarie 3 operazioni elementari Ogni operazione viene eseguita durante un ciclo di clock In generale il numero di cicli di clock richiesti per completare una istruzione è variabile e dipende dall istruzione. Tale paramentro viene indicato con CPI (Clock per Instruction) La velocità di esecuzione di un programma dipende dal numero medio di CPI

PD32- Shifter Usato per eseguire operazioni di scorrimento di k posizioni, nonché per lo spostamento di dati tra registri interni (i registri tampone non possono scrivere sul bus mentre i segnali di controllo valgono per tutti i registri) 32 W T1 TEMP1 TEMP2 W T2 OpCode ALU SHIFTER OpCode B A B S

Shifter (background) Spostamento logico a destra di k posti. bn-i = 0 (per 0 i < k) bi = ai+k (per 1 i n - k) C = ak 0...0 a.. a a a... a n k+2 k+1 k 1 b b b b b C n n-k+1 n-k 2 1

Barrel shifter a n a a a a n-1 n-2 n-3 1 d 1... c 1 2... c 2 registro 3 log n -1.................. di controllo... c c 3 log n -1 log n c log n...... bn b n/2 b 1

Schema di una cella Ci d

PD32- Status Register Contiene informazioni sull esito dell ultima operazione (ex. zero, overflow). Usato anche come ingresso per alcune operazioni (ex. Salti condizionati) 32 W T1 TEMP1 TEMP2 W T2 OpCodeALU ALU SHIFTER OpCodeSHIFTER B A SR B S B SR

Wt1 Wt2 R0 TEMP1 TEMP2 AND AND opcode ALU shifter opcode R1 BA B SR B BS AND AND B SR...... decoder M U X I R R7 S MUX W IR AND AND PC INC(N=1,2,4) R M W M W PC R PC singola linea linee multiple N.B. non sono evidenziate le variabili di condizione che da SR e IR vanno al SCO

PC INC 4 INC 2 INC 1 W PC R PC

PD32- Interazione con la memoria La memoria contiene sia i dati che le istruzioni e può essere sia letta che scritta. E necessario quindi: Prelevare istruzioni Leggere dati Scrivere dati E necessario inoltre instradare opportunamente i dati ricevuti dalla memoria verso i registri e viceversa.

Memoria: organizzazione logica a a a a 3 2 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 Organizzazione logica a vettore di 16 celle di memoria a a a a 3 2 1 0 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 a a a a 3 2 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 a a a a 3 2 1 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1 a a a a 3 2 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 Un organizzazione a 4 moduli di 16 celle di memoria

linea singola linee multiple Memoria RAM statica RD 1 2 amplificatore di uscita al DB decoder di riga... m matrice m x m bit amplificatore di scrittura CS dal DB 1 2... m WR decoder di colonna indirizzi dall'ab

Memoria comportamento esterno Funzionalmente è caratterizzata dai seguenti segnali Indirizzo della parola da leggere/scrivere MR, affermato se si vuole leggere MW, affermato se si vuole scrivere CS, Abilita l intero modulo (Chip Select) Dati Tempo di accesso MR MW CS Dati Indirizzo n bit m bit MR Indirizzo valido Dato valido

Memoria organizzazione in moduli Data BUS (32 bit) d 31 d 24 d 23 d 16 d 15 d 8 d 7 d 0 MR MW MR MW MR MW MR MW CS CS CS CS a 2 a 31 a 2 a 31 a 2 a 31 a 2 a 31 Mb 3 Mb 2 Mb 1 Mb 0 Address BUS (30 bit)

Memoria: spazio di indirizzamento Locazione 00000000 Spazio di indirizzamento del PD32 e monodimensionale e Composto da 2 32 locazioni (byte) Byte (8 bit) Word (16 bit) Longword (32 bit) Locazione FFFFFFFF

Memoria: disallineamento a a a a 3 2 1 0 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 a a a a 3 2 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 a a a a 3 2 1 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1 a a a a 3 2 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 Esempio di memorizzazione di una informazione di quattro byte allineati sullo stesso indirizzo di riga. a a a a 3 2 1 0 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 a a a a 3 2 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 a a a a 3 2 1 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1 a a a a 3 2 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 Esempio di memorizzazione di una informazione di quattro byte disallineati a a a a 3 2 1 0 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 a a a a 3 2 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 a a a a 3 2 1 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1 a a a a 3 2 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 Esempio di memorizzazione di una informazione di due byte disallineati

Data BUS (32 bit) Memoria: byte allineati d 31 d 24 d 23 d 16 d 15 d 8 d 7 d 0 MR MW MR MW MR MW MR MW CS CS CS CS a 2 a 31 a 2 a 31 a 2 a 31 a 2 a 31 Mb 3 Mb 2 Mb 1 Mb 0 Address BUS (30 bit)

Memoria: byte non allineati (1) Data BUS (32 bit) d 31 d 24 d 23 d 16 d 15 d 8 d 7 d 0 MR MW MR MW MR MW MR MW CS CS CS CS a 2 a 31 a 2 a 31 a 2 a 31 a 2 a 31 Mb 3 Mb 2 Mb 1 Mb 0 Address BUS (30 bit)

Memoria: byte non allineati (2) Data BUS (32 bit) d 31 d 24 d 23 d 16 d 15 d 8 d 7 d 0 MR MW MR MW MR MW MR MW CS CS CS CS a 2 a 31 a 2 a 31 a 2 a 31 a 2 a 31 Mb 3 Mb 2 Mb 1 Mb 0 Address BUS (30 bit)

Memoria: interfaccia del PD32 Registro Memoria Dati (MDR) Registro Indirizzo (MAR) Segnali di Controllo (MR,MW, Mb 3, Mb 2, Mb 1, Mb 0 ) W MDR SCO B MDR Segnali di Controllo MDR dati Memoria Di Lavoro MAR indirizzi Bus interno W MAR

Memoria: interfaccia SCA del PD32 Bus Interno del PD32 B MDR M D R W MDR M A R DIR B DB Data Bus Address Bus W MAR B AB SCA del PD32

Interfaccia dispositivi di I/O INTERFACCIA indirizzi dati segnali di controllo Indipendente dal dispositivo Decoder Registro Dipendente dal dispositivo Device Control segnali di controllo dati BUS

Dispositivi di I/O: interfaccia del PD32 Registro Dati (I/ODR) Registro Indirizzo (I/OAR) Segnali di Controllo (I/OR,I/OW, Start,.) W MDR SCO B I/ODR Segnali di Controllo I/ODR dati Dispositivo di I/O I/0AR indirizzi Bus interno W MAR

I/O: interfaccia SCA del PD32 Bus Interno del PD32 B I/ODR I/O D R W I/ODR I/O A R DIR B I/ODB I/O Data Bus I/O Address Bus W B I/OAR I/OAB SCA del PD32

PD32 Interconnesione del PD32 30 32 Memory address bus Memory control bus Memory data bus 8 32 Modulo di memoria Modulo di memoria Interfaccia I/O dispositivo di I/O Interfaccia I/O dispositivo di I/O I/O address bus I/O control bus I/O data bus

I/O Memory mapped In altri sistemi (no PD32) i dispositivi sono visti come locazioni di memoria nello spazio di memoria normale (memory-mapped I/O) CPU n m address bus control bus data bus Interfaccia I/O Interfaccia I/O. Modulo di memoria Modulo di memoria

Sottosistema di controllo (SCO) Data In SCA (SLAVE) Data Out Stato o variabili di condizionamento TASK Variabili Condizionamento esterne SCO (MASTER) Uscite esterne

Sottosistema di controllo (SCO) start microprogramma relativo alla fase di fetch codice della classe dell' istruzione XXX YYY ZZZ microprogramma relativo alle istruzione la cui classe è XXX microprogramma relativo alle istruzione la cui classe è YYY... microprogramma relativo alle istruzione la cui classe è ZZZ

PD32- Interazione con l esterno Ogni fase che comporta l interazione con le unità esterne viene detta ciclo macchina. Ogni ciclo macchina può essere costituito da uno o due cicli di bus; per esempio la lettura di una parola memorizzata su due byte non allineati sullo stesso indirizzo di riga necessita di due accessi in memoria (cioè di due cicli di bus).

SCO: schema di Mealy variabili di condizione circuito di selezione ROM reg. SEL CK micro ordini codice classe load CK spostamento base reset

SCO: schema di Moore load reset codice classe spostamento base ROM micro ordini SEL CK SS1 SS2... SSm multiplexer circuito di selezione variabili di condizione

Interazione con la memoria: ciclo di scrittura T1 T2 T3 CLOCK BUS INDIRIZZI indirizzo MWR BUS DATI dato

Interazione con la memoria: ciclo di lettura T1 T2 T3 CLOCK BUS INDIRIZZI indirizzo MRD BUS DATI dato

Passi elementari per eseguire il Fetch (ipotesi: 4 byte allineati in memoria) 1. PC -> MAR; /* trasferimento del contenuto del PC nel MAR */ W MDR W PC INC 4 W IR PC IR R PC B MDR MDR MAR DIR B DB Data Bus Address Bus Memoria Di Lavoro W MAR B AB

Fetch 1. PC -> MAR; /* trasferimento del contenuto del PC nel MAR */ 2. (MAR)->MDR /* trasferimento istruzione da eseguire in MDR*/ W PC W MDR INC 4 PC R PC B MDR MDR DIR B DB Data Bus Memoria Di Lavoro W IR IR MAR Address Bus W MAR B AB

Fetch 1. PC -> MAR; /* trasferimento del contenuto del PC nel MAR */ 2. (MAR) -> MDR /* trasferimento istruzione da eseguire in MDR*/ 3. MDR -> IR /* trasferimento istruzione da eseguire nell IR*/ PC+4->PC /* e predisposizione PC per prelievo prossima istruzione*/ W PC W MDR INC 4 PC R PC B MDR MDR DIR B DB Data Bus Memoria Di Lavoro W IR IR MAR Address Bus W MAR B AB

Fetch: micro-ordini 1. PC -> MAR; /* trasferimento del contenuto del PC sul MAR */ 1. R PC = 1, W MAR = 1 2. (MAR) -> MDR /* trasferimento istruzione da eseguire in MDR*/ 1. B AB = 1 /* T1 */ 2. B AB = 1, MRD = 1 /* T2 */ 3. B AB = 1, MRD = 1, W MDR = 1 /* T3*/ 3. MDR -> IR /* trasferimento istruzione da eseguire in IR e 1. B MDR = 1, W IR = 1, INC 4 = 1 predisposizione PC per prelievo prossima istruzione*/

Ciclo Istruzione - Decode RESET reset fetch1 fetch2 fetch3 fetch4 fetch5 I = ADD IR I = MOV add1 SCO addx add2

Esecuzione dell istruzione Nel PD32 la fase di esecuzione di un ciclo istruzione consiste in un numero variabile di cicli macchina dipendente dal numero di accessi in memoria necessari (oltre al fetch) ADDW R1, R2 Entrambi gli operandi sono contenuti in registri interni del PD32 (indirizzamento a registro) 1. PC -> MAR; 2. (MAR) -> MDR 3. MDR -> IR, PC+4->PC 4. R1 -> Temp1 5. R2 -> Temp2 6. OUT_ALU -> R2 ADDW #20h, R2 Uno degli operandi (0x20) è memorizzato nei due byte successivi a quelli contenente l istruzione (indirizzamento immediato) 1. PC -> MAR; 2. (MAR) -> MDR 3. MDR -> IR, PC+4->PC 4. R2 -> Temp1 5. PC -> MAR 6. (MAR) ->MDR 7. MDR -> Temp2, PC+2->PC 8. OUT_ALU -> R2