Il processore PD32

67
Il processore PD32

description

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. - PowerPoint PPT Presentation

Transcript of Il processore PD32

Page 1: Il processore PD32

Il processore PD32

Page 2: Il processore PD32

Macchina di von Neumann

Unità di Calcolo

Unità di Controllo

Memoria dilavoro

Unità di Ingresso

Unità di Uscita

Page 3: Il processore PD32

Unità di Calcolo

Unità di Controllo

Memoria dilavoro

Unità di Ingresso

Unità di Uscita

SCO

Suddivisione SCA-SCO

SCA

Segnali di controllo/condizione Flusso dati

Page 4: Il processore PD32

Modifica macchina di Von Neumanncon CPU

Unità di Calcolo

Unità di Controllo

Memoria dilavoro

Unità di Ingresso

Unità di Uscita

CPU

Page 5: Il processore PD32

Dal linguaggio ad alto livello al linguaggio macchina

Programma in Linguaggio alto Livello

Compilatore

Programma in Linguaggio Assembly

Assemblatore

Programma in Linguaggio Macchina

a=b+c

movw b,R1movw c,R2addw R2,R1movw R1,a

000101..0101001011101..01010001011..11101010010..1110101010

Non dipende dalla macchina HW

• Insieme istruzioni che dipendono dalla macchina hw (simboliche)• Commenti• Riferimenti simbolici

• Insieme Istruzioni della macchina hw• Riferimenti indirizzi fisici

Macchina HW

Page 6: Il processore PD32

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, no memoria cache

Page 7: Il processore PD32

. .

.R0 R1 R7

MDR

MAR

I/ODR

I/OAR

PC

IR

struttura di interconnessione

TEMP1 TEMP2

ALUSR

SHIFTER

UNITA' DI CONTROLLO

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

CPU

mem

ori

a

di la

voro

d

isposi

tivi

ingre

sso/u

scit

a

R0,R1... registri

ALU, shifter unità di calcolo

Collega-menti con memoria e I/O

Page 8: Il processore PD32

PD32- Sottosistema di Calcolo (SCA)

• Registri (basati su Flip-Flop D con segnale di Enable)– speciali – generali

• Dispositivi di calcolo – Shifter– ALU (somma e sottrazione)

• MUX • Decodificatori• Struttura di interconnessione: BUS

Page 9: Il processore PD32

Esecuzione dell’istruzione

L’esecuzione dell’istruzione prevede tre fasifetch, decodifica e esecuzione-La decodifica è fatta dal sistema di controllo (SCO); le altre da SCA-SCA utilizza le risorse del processore -La fase di esecuzione di un ciclo istruzione consiste in un numero variabile (dipende dall’istruzione) di operazioni elementari (cicli macchina)- Ciascun ciclo esegue un’operazione elementare (ad esempio trasferimento di un dato da un registro)

Page 10: Il processore PD32

Un semplice esempio

Consideriamo l’istruzione a=a+b, espressa in un linguaggio di alto livello

• “Memorizza nella variabile di nome a, la somma dei valori contenuti nelle variabili di nome a e b”

• Nota: Le variabili sono individuate da un nome simbolico deciso precedentemente nel programma..

15a

9b

24

9

a

b

Prima Dopo

a =a+b

Page 11: Il processore PD32

Un semplice esempio (2)Per eseguire questa istruzione è necessario

– Stabilire dove sono memorizzati i valori da sommare– Stabilire dove va scritto il risultato dell’operazione– Quale operazione svolgere

• Nel PD32, gli operandi sono memorizzati nei registri interni alla CPU (registri visibili al programmatore)

• Il formato dell’istruzione è (s può essere B,W,L)ADDs <sorgente><destinazione>

Il campo destinazione è un registro che contiene il valore iniziale di un operando e che sarà modificato

ADDW R2,R1 #somma R1 con R2 (32 bit) e poni il risultato in R1

Page 12: Il processore PD32

Esecuzione istruzione

100PC adds R2,R1

.

.

100

Indirizzo

MEMORIAPC=Program Counter

contatore di programma (memorizza indirizzo

dell’ istruzione in esecuzione)

Page 13: Il processore PD32

Istruzione: fase di fetch

100PC adds R2,R1

.

.

100

Indirizzo

adds R2,R1IR

MEMORIAPC=Program CounterIR= Instruction Register(memorizza istruzionein esecuzione)

Page 14: Il processore PD32

Istruzione: decodifica

100PC adds R2,R1

.

.

100

Indirizzo

adds R2,R1IR

Controllo

MEMORIA

Decodifica istruzione: predispone i comandi per la sua esecuzione

Page 15: Il processore PD32

Istruzione: fase di esecuzione

100PC adds R2,R1

.

.

100

Indirizzo

adds R2,R1IR

ControlloRisorse di

calcolo

MEMORIA

Esecuzione dell’istruzione (consiste di diversi passi)

Page 16: Il processore PD32

CPU come interpreteLa CPU può essere specificato come la ripetizione continua

del seguenti passi (Ciclo Istruzione) che interpretano le istruzioni di un programma contenuto in memoria.

fetch: (PC)IRincrementa PC

esegui istruzione in IR vai al passo fetch

• La CPU interpreta le istruzioni che man mano sono presenti nel suo Instruction Register (nota che l’esecuzione istr. puo’ modificare PC)

• Tale schema è semplificato poiché per interagire con l’esterno, o gestire situazioni anomale, tale ciclo deve poter essere interrotto.

La notazione (PC) indica il contenuto della locazione di memoria con indirizzo PC

Page 17: Il processore PD32

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

Page 18: Il processore PD32

PD32- BUS interno, segnali di controllo

32 bit

R0 R1 R7

WR0 WR1 WR7

BR0 BR1 BR7

Una sola scrittura per volta (controllo mediante Bi)2n segnali di controllo (n numero dei registri)

Wi=1, leggi dal bus Bi =1 scrivi sul bus

Page 19: Il processore PD32

PD32- BUS interno, esempio R1 -> R0

Per eseguire il trasferiemento da R1 ad R0 (simbolicamente (R1)->R0) devono essere affermati solamente i seguenti segnali: BR1 = 1, WR0 = 1

32 bit

R0 R1 R7

WR0 WR1 WR7

BR0 BR1BR7

Page 20: Il processore PD32

PD32- Banco dei registri

• Insieme di 8 registri generali indicati da R0 ad R7• Sono controllati mediante

– Segnali di abilitazione per • scrittura del registro (WM)

• lettura e conseguente invio sul bus interno del contenuto del registro (RM)

Indirizzo

BUS interno

WM

RM

Page 21: Il processore PD32

R0 R1 R7

w0w1

w7

B0 B1 B7

BUSwi =1, scrivi valore sul bus in RiBi = 1, invia sul bus valore di Ri

Decoder

WM

RM

Indirizzo registro

PD32- Banco dei registri

Page 22: Il processore PD32

PD32- esempio: R7 ->BUS

R0 R1 R7

w0w1

w7

B0 B1 B7

BUS

Decoder

Indirizzo registro

111

WM

RM

Address=111, RM=1Address

nota: non si può leggere e scrivere contemporaneamente

Page 23: Il processore PD32

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

TEMP1 TEMP2

OpCode (specifica operazione da eseguire)BA

WT1

WT2

ALU

32

Page 24: Il processore PD32

PD32- ALU, esempio: esecuzione addw R2,R1

TEMP1 TEMP2

OpCode

BA

WT1

WT2

ALU

REGISTRI

WM RM

3

32

Address

Page 25: Il processore PD32

PD32- ALU, esempio: esecuzione addw R2,R1

1. R1 -> Temp1 RM=1, Address = 001, WT1=1

TEMP1 TEMP2

OpCode

BA

WT1

WT2

ALU

REGISTRI

WM RM

3

32

Address

Page 26: Il processore PD32

PD32- ALU, esempio: esecuzione addw R2,R1

1. R1 -> Temp1 RM=1, Address = 001, WT1 = 12. R2 -> Temp2 RM=1, Address = 010, WT2 = 1

TEMP1 TEMP2

OpCode

BA

WT1

WT2

ALU

REGISTRI

WM RM

3

32

Address

Page 27: Il processore PD32

PD32- ALU, esempio: esecuzione addw R2,R1

1. R1 -> Temp1 RM=1, Address = 001, WT1 = 12. R2 -> Temp2 RM=1, Address = 010, WT2 = 13. ALU-OUT(Temp1+Temp2)->R1 WM=1, Address = 001, OpCode

= addw, BA=1

TEMP1 TEMP2

OpCode

BA

WT1

WT2

ALU

REGISTRI

WM RM

3

32

Address

Page 28: Il processore PD32

Osservazioni

• Per l’esecuzione dell’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 anche dal numero medio di CPI

Page 29: Il processore PD32

PD32- Shifter

Usato per eseguire operazioni di scorrimento di 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)

TEMP1 TEMP2

OpCode

BA

WT1

WT2

ALU

32 bit

SHIFTEROpCode

BS

Page 30: Il processore PD32

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

Page 31: Il processore PD32

Barrel shifter

. . .

. . .

. . .

.

.

.

.

.

.

. . .. . .

bn bn/2 b1

. . .. . .

an a a a an-2 1

.

.

.

.

.

.

registro di controllo

1

2

3

c

c

c

log nc

n-1 n-3

log nc

-1

1

2

3

log n -1

log n

d

Page 32: Il processore PD32

Schema di una cella

Ci

d

Page 33: Il processore PD32

PD32- Status Register

Contiene informazioni sull’esito dell’ultima operazione (ex. zero, overflow). Usato anche come ingresso per alcune operazioni (ex. Salti condizionati)

TEMP1 TEMP2

OpCodeALU

BA

WT1

WT2

ALU

32

SHIFTEROpCodeSHIFTER

BS

SR

BSR

Page 34: Il processore PD32

singola linea

linee multiple

N.B. non sono evidenziate le variabili di condizione che da SR e IR vanno al SCO

opcode

B BBA BSS R

PC

RPC

PCW

M U X

I R

B SR

.

.

.

R WMM

dec

oder

AND

R0

R1

R7

AND

AND AND

ANDAND

. . .

shifterALU

TEMP1 TEMP2

Wt1 Wt2

opcode

W IRS MUX

INC(N=1,2,4)

Page 35: Il processore PD32

Incremento PC

PC

RPC

INC2INC1WPC

Il PC deve essere incrementato (se non si eseguono istruzione di salto)

NOTA: le istruzioni PD-32 possono avere lunghezza diversa; quindi incremento PC è variabile

Page 36: Il processore PD32

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

• Le operazioni di lettura/scrittura avvengono fra una locazione di memoria e un registro (registro dati, RI, PC)

• E’ necessario quindi instradare opportunamente i dati ricevuti dalla memoria verso i registri e viceversa.

Page 37: Il processore PD32

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

a a a a 3 2 1 0

0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0

a a a a a a a a 3 2 1 0

a a a a 3 2 1 00 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1

3 2 1 0

0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0

0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1

Organizzazione logica a vettore di 16 celle di memoria

Un’organizzazione a 4 moduli di 16 celle di memoria

Page 38: Il processore PD32

Memoria RAM

.

.

.

decoder di colonna

deco

der

di

rig

a

indirizzi

amplificatore di uscita

amplificatore di scrittura

RD

WR

CS

al DB

dal DB

dall'AB

matrice m x m bit

1

2

m

1 2 m. . .

linea singola

linee multiple

Page 39: Il processore PD32

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

Indirizzo

Dati

MRMWCS

m bit

n bitIndirizzo valido

Dato valido

Tempo di accesso

MR

Page 40: Il processore PD32

Memoria organizzazione in moduli

Address BUS (30 bit)

Data BUS (32 bit)

a2…a31

a2…a31

d23…d16d31…d24

a2…a31

d15…d8

a2…a31

d7…d0

Mb3

Mb2

Mb1

Mb0

MRMW

CS

MRMW

CS

MRMW

CS

MRMW

CS

Page 41: Il processore PD32

Lo spazio di indirizzamento del PD32 e’ monodimensionale eComposto da 232 locazioni (byte)

Locazione00000000

LocazioneFFFFFFFF

Byte (8 bit)

Word (16 bit)

Longword (32 bit)

Memoria: spazio di indirizzamento

Page 42: Il processore PD32

Memoria: disallineamento

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 0 0 0 1 0 0 1 0 0 0 1 1 0 0

a a a a a a a a 3 2 1 0

a a a a 3 2 1 00 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1

3 2 1 0

0 0 1 0 0 1 1 0 1 0 1 0 1 1 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 0 0 0 1 0 0 1 0 0 0 1 1 0 0

a a a a a a a a 3 2 1 0

a a a a 3 2 1 00 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1

3 2 1 0

0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0

0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1

Esempio di memorizzazione di una informazione di quattro byte disallineati

Esempio di memorizzazione di una informazione di due byte disallineati

a a a a 3 2 1 0

0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0

a a a a a a a a 3 2 1 0

a a a a 3 2 1 00 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1

3 2 1 0

0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0

0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1

Page 43: Il processore PD32

Memoria: byte allineati

Address BUS (30 bit)

Data BUS (32 bit)

a2…a31

a2…a31

d23…d16d31…d24

a2…a31

d15…d8

a2…a31

d7…d0

Mb3

Mb2

Mb1

Mb0

MRMW

CS

MRMW

CS

MRMW

CS

MRMW

CS

Page 44: Il processore PD32

Memoria: byte non allineati (1)

Address BUS (30 bit)

Data BUS (32 bit)

a2…a31

a2…a31

d23…d16d31…d24

a2…a31

d15…d8

a2…a31

d7…d0

Mb3

Mb2

Mb1

Mb0

MRMW

CS

MRMW

CS

MRMW

CS

MRMW

CS

Page 45: Il processore PD32

Memoria: byte non allineati (2)

Address BUS (30 bit)

Data BUS (32 bit)

a2…a31

a2…a31

d23…d16d31…d24

a2…a31

d15…d8

a2…a31

d7…d0

Mb3

Mb2

Mb1

Mb0

MRMW

CS

MRMW

CS

MRMW

CS

MRMW

CS

Page 46: Il processore PD32

Memoria: interfaccia del PD32

• Registro Memoria Dati (MDR)• Registro Indirizzo (MAR)

• Segnali di Controllo (MR,MW, Mb3, Mb2, Mb1, Mb0)

MD

RM

AR

MemoriaDi

Lavoro

WMAR

WMDR

Bus interno

dati

indirizzi

SCOSegnali di Controllo

BMDR

Page 47: Il processore PD32

Memoria: interfaccia SCA del PD32

Address BusBu

s In

tern

o d

el P

D3

2

M D R

M A R

Data Bus

SCA del PD32

BMDR MDRWBDIR

DB

BAB

WMAR

Page 48: Il processore PD32

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).

Page 49: Il processore PD32

Interfaccia dispositivi di I/O

DeviceControl

Dipendente dal dispositivo

Indipendente dal dispositivo

INTERFACCIA

BUS

Decoder

Registro

indirizzi

dati

segnali di controllo

dati

segnali di controllo

Page 50: Il processore PD32

Dispositivi di I/O: interfaccia del PD32

• Registro Dati (I/ODR)• Registro Indirizzo (I/OAR)• Segnali di Controllo (I/OR,I/OW, Start, ……….)

I/O

DR

I/0 A

RDispositivo

di I/O

WMAR

WMDR

Bus interno

dati

indirizzi

SCOSegnali di Controllo

BI/ODR

Page 51: Il processore PD32

I/O: interfaccia SCA del PD32

I/O Address Bus

Bu

s In

tern

o d

el P

D3

2 I/O Data Bus

SCA del PD32

B WBDIR

BW

I/O D R

I/O A R

I/ODR I/ODRI/ODB

I/OABI/OAR

Page 52: Il processore PD32

Interconnesione del PD32

PD32Memory address busMemory control busMemory data bus

Modulo dimemoria

Modulo dimemoria

30

32

I/O address busI/O control busI/O data bus

8

Inte

rfacc

iaI/O

Inte

rfacc

iaI/O

32

dispositivodi I/O

dispositivodi I/O

Page 53: Il processore PD32

Sottosistema di controllo (SCO)

SCA(SLAVE)

SCO(MASTER)

TASK

Data In Data Out

Stato o variabili di condizionamento

Variabili Condizionamento

esterne

Uscite esterne

Page 54: Il processore PD32

Sottosistema di controllo (SCO)

microprogramma relativo alla fase di

fetch

. . .

XXX YYY

start

codice della classe dell' istruzione

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

Decodifica

Page 55: Il processore PD32

SCO: schema di Mealy

spostamento base

load

reset

codice classe

micro ordini

reg. SELci

rcui

to d

i se

lezi

one

ROM

variabili di condizione

CK

CK

Page 56: Il processore PD32

SCO: schema di Moore

. . .

ROMmicro ordini

circuito di selezionemultiplexer

spos

tam

ento

base

load reset

codice classe

SS1 SS2 SSm

CK

SEL

variabili di condizione

Cod. Classe: codice istruzione

Load: segnale di caricamento nuova istruzione (a fine fetch)

Reset: azzera cod. classe (inizia fetch)

variab. di cond.: influenzano esecuzione istr. (ad es. var. in SR)

Micrordini: comandi per SCA

CK: clock

Page 57: Il processore PD32

Interazione con la memoria: ciclo di scrittura

T1 T2 T3

CLOCK

MWR

BUS INDIRIZZI

indirizzo

datoBUS DATI

Page 58: Il processore PD32

Interazione con la memoria: ciclo di lettura

T1 T2 T3

CLOCK

BUS INDIRIZZI

MRD

BUS DATI

indirizzo

dato

Page 59: Il processore PD32

Passi elementari per eseguire il Fetch(ipotesi: 4 byte allineati in memoria)

1. PC -> MAR; /* trasferimento del contenuto del PC nel MAR */

MD

RM

AR

MemoriaDi

Lavoro

WMAR

WMDR

PC RPC

IRWIR

WPC

Address Bus

Data Bus

BDIR DB

BAB

INC4

BMDR

Page 60: Il processore PD32

Fetch1. PC -> MAR; /* trasferimento del contenuto del PC nel MAR */

2. (MAR)->MDR /* trasferimento istruzione da eseguire in MDR*/

MD

RM

AR

MemoriaDi

Lavoro

WMAR

WMDR

PC RPC

IRWIR

WPC

Address Bus

Data Bus

BDIRDB

BAB

INC4

BMDR

Page 61: Il processore PD32

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*/

MD

RM

AR

MemoriaDi

Lavoro

WMAR

WMDR

PC RPC

IRWIR

WPC

Address Bus

Data Bus

BDIR DB

BAB

INC4

BMDR

Page 62: Il processore PD32

Fetch: micro-ordini

1. PC -> MAR; /* trasferimento del contenuto del PC sul MAR */

1. RPC = 1, WMAR = 1

2. (MAR) -> MDR /* trasferimento istruzione da eseguire in MDR*/

1. BAB = 1 /* T1 */

2. BAB = 1, MRD = 1 /* T2 */

3. BAB = 1, MRD = 1, WMDR = 1 /* T3*/

3. MDR -> IR /* trasferimento istruzione da eseguire in IR e

predisposizione PC per prelievo prossima istruzione*/

1. BMDR = 1, WIR = 1, INC4 = 1

Page 63: Il processore PD32

Ciclo Istruzione - Decode

IR

SCO

reset

RESET

fetch2

I = ADD

I = MOV

fetch3

add1

fetch4

add2addx

fetch1 fetch5

fetch5: decodifica istr. utilizzando IR e dopo esecuzione delle diverse istruzioni, add, mov, sub, jump...

Page 64: Il processore PD32

Ciclo Istruzione

Page 65: Il processore PD32

PC

Il registro “Program Counter” contiene l’indirizzo da cui prelevare l’istruzione da eseguire.Il SCO lo incrementa di 4 ad ogni fetch

IR = Instruction Register

Segnali di comando per la SCA e per lo SCO

Fetch1) PC -> MAR2) (MAR) -> MDR3) MDR -> IR, PC + 4 -> PC

Bus memoria

MEMORIA

Istruzione 1

Istruzione 2

Istruzione 3

Ciclo Istruzione - Fetch

Si assume che ogni istruzione sia di 4 byte

Page 66: Il processore PD32

Esecuzione dell’istruzioneNel PD32 la fase di esecuzione di un ciclo istruzioneconsiste in un numero variabile di cicli macchina dipendente dal numero di accessi in memoria necessari (oltre al fetch)

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

Entrambi gli operandi sono contenuti in registri interni del PD32(indirizzamento a registro)

Uno degli operandi (0x20) è memorizzato nei due byte successivi a quelli contenente l’istruzione (indirizzamento immediato)

ADDW #20h, R2ADDW R1, R2

1. PC -> MAR;

2. (MAR) -> MDR

3. MDR -> IR , PC+4->PC

4. R1 -> Temp1

5. R2 -> Temp2

6. OUT_ALU -> R2

Page 67: Il processore PD32

Esercizi

Con riferimento alla parte SCA della CPU, rispondere• Cosa succede se elimino il buffer temp2? discutere

l’efficienza del sistema (vantaggi e svantaggi)• Modificare la struttura SCA inserendo due bus dati• Se ci sono due bus dati come migliora l’efficienza del

sistema? su quali operazioni?• Nel PD32 ci sono 8 registri dati; discutere vantaggi e

svantaggi di avere molti registri dati (ad es. cento)• Nel fetch si incrementa il PC per tutte le istruzioni.

Perché è corretto anche per i salti; migliora l’efficienza?

• Dare il microdice per le istruzioni di salto del PD32