Il processore PD32 - PowerPoint PPT Presentation

About This Presentation
Title:

Il processore PD32

Description:

Title: Il processore PD32 Author: consip Last modified by: bruno ciciani Created Date: 11/28/2002 2:03:11 PM Document presentation format: On-screen Show – PowerPoint PPT presentation

Number of Views:107
Avg rating:3.0/5.0
Slides: 69
Provided by: consip
Category:
Tags: pd32 | processore

less

Transcript and Presenter's Notes

Title: Il processore PD32


1
Il processore PD32
2
Macchina di von Neumann
Memoria di lavoro
Unità di Ingresso
Unità di Uscita
Unità di Calcolo
Unità di Controllo
3
Suddivisione SCA-SCO
Memoria di lavoro
Unità di Ingresso
Unità di Uscita
Unità di Calcolo
SCA
Unità di Controllo
SCO
Segnali di controllo/condizione Flusso dati
4
Modifica macchina di Von Neumanncon CPU
Memoria di lavoro
Unità di Ingresso
Unità di Uscita
Unità di Calcolo
Unità di Controllo
CPU
5
Dal linguaggio ad alto livello al linguaggio
macchina
Programma in Linguaggio alto Livello
Non dipende dalla macchina HW
abc
Compilatore
  • Insieme istruzioni che
  • dipendono dalla
  • macchina hw (simboliche)
  • Commenti
  • Riferimenti simbolici

movw b,R1 movw c,R2 addw R2,R1 movw R1,a
Programma in Linguaggio Assembly
Assemblatore
000101..010100 1011101..010100 01011..11101010 010
..1110101010
Programma in Linguaggio Macchina
  • Insieme Istruzioni della
  • macchina hw
  • Riferimenti indirizzi fisici

Macchina HW
6
PD32
  • Processore virtuale dotato di registri da 32
    bit
  • Non esiste nella realtà, ma le sue funzionalità
    sono simulate tramite un programma
  • Set delle istruzioni sottoinsieme dei processori
    Motorola
  • Nel seguito sarà usato per approfondire alcuni
    aspetti legati alle architetture dei calcolatori
  • Sistema multiciclo
  • No pipeline, no memoria cache

7
R0, R1... registri
Collega-menti con memoria e I/O
ALU, shifter unità di calcolo
8
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

9
Processamento dellistruzione
  • Il processamento dellistruzione (ciclo
    istruzione)prevede tre fasi fetch, decodifica e
    esecuzione
  • Il fetch serve per prelevare listruzione dalla
    memoria
  • La decodifica serve per identificare quale
    micro-programma del sottosistema di controllo
    (SCO) attivare
  • Lesecuzione serve ad implementare la semantica
    dellistruzione. Può richiedere uno o più cicli
    macchina (interazioni con la memoria o i
    dispositivi di I/O)

10
Un semplice esempio
  • Consideriamo listruzione aab, 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..

a
a
15
24
a ab
b
b
9
9
Prima
Dopo
11
Un semplice esempio (2)
  • Per eseguire questa istruzione è necessario
  • Stabilire dove sono memorizzati i valori da
    sommare
  • Stabilire dove va scritto il risultato
    delloperazione
  • Quale operazione svolgere
  • Nel PD32, gli operandi sono memorizzati nei
    registri interni alla CPU (registri visibili al
    programmatore)
  • Il formato dellistruzione è (s può essere B,W,L)
  • ADDs ltsorgentegtltdestinazionegt
  • Il campo destinazione è un registro che contiene
    il valore iniziale di un operando e che sarà
    modificato
  • ADDW R2,R1
  • (somma R1 con R2 (16 bit) e poni il risultato in
    R1)

12
Esecuzione istruzione
Indirizzo
100
adds R2,R1
PC
100



. .

PCProgram Counter contatore di programma
(memorizza indirizzo dell istruzione in
esecuzione)
MEMORIA
13
Istruzione fase di fetch
Indirizzo
100
adds R2,R1
PC
100



IR
adds R2,R1
. .

PCProgram Counter IR Instruction
Register (memorizza istruzione in esecuzione)
MEMORIA
14
Istruzione decodifica
Indirizzo
100
adds R2,R1
PC
100



IR
adds R2,R1
. .

MEMORIA
Controllo
Decodifica istruzione identifica il
microprogramma per lesecuzione dellistruzione
15
Istruzione fase di esecuzione
Indirizzo
100
adds R2,R1
PC
100



IR
adds R2,R1
. .

MEMORIA
Controllo
Risorse di calcolo
Esecuzione dellistruzione (il SCO comanda il SCA)
16
CPU come interprete
  • Lesecuzione di un programma può essere visto
    come la ripetizione continua dei seguenti passi
    (Ciclo Istruzione) che interpretano le
    istruzioni del programma contenuto in memoria.
  • fetch (PC)?IR
  • incrementa 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
    lesecuzione puo modificare il PC)
  • Tale schema è semplificato poiché per interagire
    con lesterno, o gestire situazioni anomale, tale
    ciclo deve poter essere interrotto.

La notazione (PC) indica il contenuto della
locazione di memoria con indirizzo PC
17
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

18
PD32- BUS interno, segnali di controllo
Una sola scrittura per volta (controllo mediante
Bi) 2n segnali di controllo (n numero dei
registri)
WR0
WR1
WR7
R0
R1
R7
BR0
BR1
BR7
32 bit
Wi1, leggi dal bus Bi 1 scrivi sul bus
19
PD32- BUS interno, esempio R1 -gt R0
  • Per eseguire il trasferiemento da R1 ad R0
    (simbolicamente (R1)-gtR0) devono essere affermati
    solamente i seguenti segnali BR1 1, WR0 1

WR0
WR1
WR7
R0
R1
R7
BR0
BR7
BR1
32 bit
20
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)

WM
Indirizzo
RM
BUS interno
21
PD32- Banco dei registri
Indirizzo registro
Decoder
WM
RM
R0
R1
R7
w7
w1
w0
B0
B1
B7
wi 1, scrivi valore sul bus in Ri Bi 1, invia
sul bus valore di Ri
BUS
22
PD32- esempio R7 -gtBUS
Indirizzo registro
Address111, RM1
Decoder
1 1 1
Address
WM
RM
R0
R1
R7
w7
w1
w0
B0
B1
B7
BUS
nota non si può leggere e scrivere
contemporaneamente
23
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
WT2
WT1
32
OpCode (specifica operazione da eseguire)
ALU
BA
24
PD32- ALU, esempio esecuzione addw R2,R1
WM
RM
REGISTRI
TEMP1
TEMP2
WT2
WT1
3
Address
OpCode
ALU
BA
32
25
PD32- ALU, esempio esecuzione addw R2,R1
  • R1 -gt Temp1 RM1, Address 001, WT11

WM
RM
REGISTRI
TEMP1
TEMP2
WT2
WT1
3
Address
OpCode
ALU
BA
32
26
PD32- ALU, esempio esecuzione addw R2,R1
  • R1 -gt Temp1 RM1, Address 001, WT1 1
  • R2 -gt Temp2 RM1, Address 010, WT2 1

WM
RM
REGISTRI
TEMP1
TEMP2
WT2
WT1
3
Address
OpCode
ALU
BA
32
27
PD32- ALU, esempio esecuzione addw R2,R1
  • R1 -gt Temp1 RM1, Address 001, WT1 1
  • R2 -gt Temp2 RM1, Address 010, WT2 1
  • ALU-OUT(Temp1Temp2)-gtR1 WM1, Address 001,
    OpCode addw, BA1

WM
RM
REGISTRI
TEMP1
TEMP2
WT2
WT1
3
Address
OpCode
ALU
BA
32
28
Osservazioni
  • Per lesecuzione dellistruzione (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 dallistruzione. Tale paramentro viene
    indicato con CPI (Clock per Instruction)
  • La velocità di esecuzione di un programma dipende
    anche dal numero medio di CPI

29
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
WT2
WT1
32 bit
OpCode
OpCode
SHIFTER
ALU
BA
BS
30
Shifter (background)
Spostamento logico a destra di k posti. bn-i
0 (per 0 i lt k) bi aik (per 1 i n -
k) C ak      
31
Barrel shifter
32
Schema di una cella
33
PD32- Status Register
  • Contiene informazioni sullesito dellultima
    operazione (ex. zero, overflow). Usato anche come
    ingresso per alcune operazioni (ex. Salti
    condizionati)

TEMP1
TEMP2
WT2
WT1
32
OpCodeALU
OpCodeSHIFTER
SHIFTER
ALU
BA
BS
SR
BSR
34
Wt1
Wt2
R0
TEMP1
TEMP2
opcode
AND
opcode
AND
shifter
ALU
B
B
BA
BS
R1
S R
B
SR
AND
AND
decoder
M
.
I R
. . .
U
.
X
.
S
W
MUX
IR
R7
AND
AND
INC(N1,2,4)
PC
W
PC
R
W
M
M
R
PC
N.B. non sono evidenziate le variabili di
condizione che da SR e IR vanno al SCO
35
Incremento PC
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
INC4
INC2
PC
INC1
WPC
R
PC
36
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.

37
Memoria organizzazione logica
Organizzazione logica a vettore di 16 celle di
memoria
Unorganizzazione a 4 moduli di 16 celle di
memoria
38
Organizzazione di una RAM statica (4 x 3 bit)
39
Memoria RAM
40
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 lintero modulo (Chip Select)
  • Dati

Tempo di accesso
n bit
Indirizzo valido
Dati
MR
MR MW CS
Dato valido
Indirizzo
m bit
41
Memoria organizzazione in moduli
Data BUS (32 bit)
d23d16
d31d24
d15d8
d7d0
MR MW CS
MR MW CS
MR MW CS
MR MW CS
a2a31
a2a31
a2a31
a2a31
Mb3 Mb2 Mb1 Mb0
Address BUS (30 bit)
42
Memoria spazio di indirizzamento
Lo spazio di indirizzamento del PD32 e
monodimensionale e Composto da 232 locazioni
(byte)
Locazione 00000000
Byte (8 bit)

Word (16 bit)
Locazione FFFFFFFF
Longword (32 bit)
43
Memoria disallineamento
Esempio di memorizzazione di una informazione di
quattro byte allineati sullo stesso indirizzo di
riga.
Esempio di memorizzazione di una informazione di
quattro byte disallineati
Esempio di memorizzazione di una informazione di
due byte disallineati
44
Memoria byte allineati
Data BUS (32 bit)
d23d16
d31d24
d15d8
d7d0
MR MW CS
MR MW CS
MR MW CS
MR MW CS
a2a31
a2a31
a2a31
a2a31
Mb3 Mb2 Mb1 Mb0
Address BUS (30 bit)
45
Memoria byte non allineati (1)
Data BUS (32 bit)
d23d16
d31d24
d15d8
d7d0
MR MW CS
MR MW CS
MR MW CS
MR MW CS
a2a31
a2a31
a2a31
a2a31
Mb3 Mb2 Mb1 Mb0
Address BUS (30 bit)
46
Memoria byte non allineati (2)
Data BUS (32 bit)
d23d16
d31d24
d15d8
d7d0
MR MW CS
MR MW CS
MR MW CS
MR MW CS
a2a31
a2a31
a2a31
a2a31
Mb3 Mb2 Mb1 Mb0
Address BUS (30 bit)
47
Memoria interfaccia del PD32
  • Registro Memoria Dati (MDR)
  • Registro Indirizzo (MAR)
  • Segnali di Controllo (MR,MW, Mb3, Mb2, Mb1, Mb0)

WMDR
Memoria Di Lavoro
SCO
dati
BMDR
MDR
Segnali di Controllo
MAR
indirizzi
Bus interno
WMAR
48
Memoria interfaccia SCA del PD32
49
PD32- Interazione con lesterno
  • Ogni fase che comporta linterazione 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).

50
Interfaccia dispositivi di I/O
INTERFACCIA
Indipendente dal dispositivo
Dipendente dal dispositivo
indirizzi
Decoder
segnali di controllo
segnali di controllo
Device Control
dati
dati
BUS
51
Dispositivi di I/O interfaccia del PD32
  • Registro Dati (I/ODR)
  • Registro Indirizzo (I/OAR)
  • Segnali di Controllo (I/OR,I/OW, Start, .)

WMDR
Dispositivo di I/O
SCO
dati
BI/ODR
I/ODR
Segnali di Controllo
I/0AR
indirizzi
Bus interno
WMAR
52
I/O interfaccia SCA del PD32
53
Interconnesione del PD32
30
Memory address bus Memory control bus Memory data
bus
PD32
32
Modulo di memoria
Modulo di memoria
8
32
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
54
Sottosistema di controllo (SCO)
55
Sottosistema di controllo (SCO)
Decodifica
56
SCO schema di Mealy
CK
reg. SEL
variabili di
condizione
circuito di
selezione
ROM
micro ordini
codice
classe
load
CK

spostamento
base
reset
57
SCO schema di Moore
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
58
Interazione con la memoria ciclo di scrittura
T1
T2
T3
CLOCK
MWR
59
Interazione con la memoria ciclo di lettura
T1
T2
T3
CLOCK
BUS
indirizzo
INDIRIZZI
MRD
dato
BUS
DATI
60
Passi elementari per eseguire il Fetch(ipotesi
4 byte allineati in memoria)
  1. PC -gt MAR / trasferimento del contenuto del
    PC nel MAR /

61
Fetch
  1. PC -gt MAR / trasferimento del contenuto del
    PC nel MAR /
  2. (MAR)-gtMDR / trasferimento istruzione da
    eseguire in MDR/

WMDR
Memoria Di Lavoro
WPC
RPC
PC
Data Bus
INC4
MDR
DIR
B
B
MDR
DB
WIR
IR
Address Bus
MAR
WMAR
B
AB
62
Fetch
  • PC -gt MAR / trasferimento del contenuto del PC
    nel MAR /
  • (MAR) -gt MDR / trasferimento istruzione da
    eseguire in MDR/
  • MDR -gt IR / trasferimento istruzione da
    eseguire nellIR/
  • PC4-gtPC / e predisposizione PC per prelievo
    prossima istruzione/

WMDR
Memoria Di Lavoro
WPC
RPC
PC
Data Bus
INC4
MDR
DIR
B
B
MDR
DB
WIR
IR
Address Bus
MAR
WMAR
B
AB
63
Fetch micro-ordini
  • PC -gt MAR / trasferimento del contenuto del PC
    sul MAR /
  • RPC 1, WMAR 1
  • (MAR) -gt MDR / trasferimento istruzione da
    eseguire in MDR/
  • BAB 1 / T1 /
  • BAB 1, MRD 1 / T2 /
  • BAB 1, MRD 1, WMDR 1 / T3/
  • MDR -gt IR / trasferimento istruzione da eseguire
    in IR e
  • predisposizione PC per prelievo prossima
    istruzione/
  • BMDR 1, WIR 1, INC4 1

64
Ciclo Istruzione - Decode
fetch5 decodifica istr. utilizzando IR e dopo
esecuzione delle diverse istruzioni, add, mov,
sub, jump...
RESET
reset
fetch2
fetch3
fetch4
fetch1
fetch5
IR
add1
I MOV
I ADD
add2
addx
SCO
65
Ciclo Istruzione
66
Ciclo Istruzione - Fetch
Il registro Program Counter contiene
lindirizzo da cui prelevare listruzione da
eseguire. Il SCO lo incrementa di 4 ad ogni fetch
MEMORIA
  • Fetch
  • PC -gt MAR
  • (MAR) -gt MDR
  • MDR -gt IR, PC 4 -gt PC

PC
Istruzione 1
Istruzione 2
IR Instruction Register
Istruzione 3
Nellesempio si assume che ogni istruzione sia di
4 byte
Segnali di comando per la SCA e per lo SCO
Bus memoria
67
Esecuzione dellistruzione
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 20h, R2
ADDW R1, R2
Uno degli operandi (0x20) è memorizzato nei due
byte successivi a quelli contenente listruzione
(indirizzamento immediato)
Entrambi gli operandi sono contenuti in registri
interni del PD32 (indirizzamento a registro)
  • PC -gt MAR
  • (MAR) -gt MDR
  • MDR -gt IR , PC4-gtPC
  • R2 -gt Temp1
  • PC -gt MAR
  • (MAR) -gtMDR
  • MDR -gt Temp2, PC2-gtPC
  • OUT_ALU -gt R2
  1. PC -gt MAR
  2. (MAR) -gt MDR
  3. MDR -gt IR , PC4-gtPC
  4. R1 -gt Temp1
  5. R2 -gt Temp2
  6. OUT_ALU -gt R2

68
Esercizi
  • Con riferimento alla parte SCA della CPU,
    rispondere
  • Cosa succede se elimino il buffer temp2?
    discutere lefficienza del sistema (vantaggi e
    svantaggi)
  • Modificare la struttura SCA inserendo due bus
    dati
  • Se ci sono due bus dati come migliora
    lefficienza 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 lefficienza?
  • Dare il microdice per le istruzioni di salto del
    PD32
Write a Comment
User Comments (0)
About PowerShow.com