1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica...

26
M.MezzalamaM. Rebaudengo, M. Sonza Reor Politecnico di Torino Dip. di Automatica e Informatica zzalama - M. Rebaudengo - M. Sonza Re BUS DI CPU

Transcript of 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica...

Page 1: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

Politecnico di TorinoDip. di Automatica e Informatica

M. Mezzalama - M. Rebaudengo - M. Sonza Reorda

BUS DI CPU

Page 2: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

2 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

Ciclo di Bus

È la sequenza di eventi attraverso la quale la CPU comunica con la memoria, con un dispositivo di I/O, con l’Interrupt Controller.

In funzione dei processori può essere costituito da 2 o 4 cicli di clock di sistema.

Internamente esistono sempre 4 periodi

Si compone di almeno 4 fasi, denominate T1, T2, T3, T4.

• T1: sull’address bus viene scritto l’indirizzo

• T2, T3, T4: sul data bus viene messo il dato.

Se la CPU non deve accedere all’esterno, i segnali di controllo del bus sono inattivi ed i relativi piedini sono in alta impedenza.

Se nessun altro dispositivo utilizza il bus, questo si trova allora nello stato di idle.

Page 3: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

3 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

Ciclo di Bus

Nel 8086 il ciclo interno (4 CLK) è identico al ciclo esterno di bus

Nei processori tipo pentium o nei bus di sistema (es. PCI) il ciclo di bus è di 2 CLK

Ad esempio nel bus del pentium (host bus o memory bus) a 100MHz il trasferimento avviene in 2 CLK, cioè in 20ns.

In generale si indica la capacità di trasferimento del bus espressa in MBps (Mega Byte per secondo)

Esempio: pentium con DBUS a 64 bit e 100MHz si ha:

(64/8)*100M/2 = 400MBps

Essendo 2 i periodi di clock per ciclo di bus

Page 4: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

4 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

PCI CLK = 66MHz, 32 bit DBUSAGPx4 = &&MHz x 4

Page 5: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

5 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

Ciclo di Lettura

• T1: sull’address bus viene scritto l’indirizzo

• T2: la CPU forza sul data bus il valore Z

• T3, T4: la memoria scrive il dato sul data bus.

Page 6: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

6 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

Ciclo di Scrittura

• T1: sull’address bus viene scritto l’indirizzo

• T2: la CPU scrive il dato sul data bus

• T3, T4: la memoria legge il dato dal data bus.

Page 7: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

7 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

Cicli di Idle

Vengono inseriti dalla CPU quando necessario, ossia quando:

• la CPU non necessita di nuovi dati e

• la coda interna delle istruzioni è piena, e non può essere eseguita alcuna fase di prefetch.

Page 8: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

8 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

Cicli di Wait

Se la memoria non è sufficientemente veloce, lo segnala alla CPU, e questa inserisce tra T3 e T4 una serie di stati di attesa (wait states) fino a che la memoria risponde.

Per comunicare all'8086 la necessità di uno o più cicli di wait, la memoria esterna invia un segnale sul pin READY.

Page 9: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

9 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

Ciclo di Bus

Bus Cycle

T1 T2 T3 T4 T1 T2 T3 T4

Address Buffer Data Address Buffer Data

Page 10: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

10 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

Connessione Maximum-Mode

8086

8289Bus

Arbiter

8288Bus

Controller

QS1, QS0ReadyRD*BHE*D0-D15A0-A19

ALE

DT/R*

DENS0S1S2

Segnali diControlloBus Multibus

Page 11: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

11 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

Segnali di stato

S0* S1* S2*

0 0 0 Interrupt Acknowledge

0 0 1 Read I/O Port

0 1 0 Write I/O Port

0 1 1 Halt

1 0 0 Instruction Fetch

1 0 1 Read Memory

1 1 0 Write Memory

1 1 1 Inactive - Passive

Page 12: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

12 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

Segnali di Controllo (I)

ALE: il fronte di salita segnala durante T1 che sull’address bus è pronto un indirizzo.

IO/M*: indica se il ciclo di bus fa riferimento alla memoria o a un dispositivo di I/O; questo segnale è complementato nell'8088.

DT/R*: indica se si tratta di un ciclo di lettura o scrittura.

Page 13: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

13 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

Segnali di Controllo (III)

RD* e WR* segnalano la direzione del trasferimento e forniscono le relative informazioni temporali.

WR* segnala che il dato è pronto sul data bus e può essere prelevato dalla memoria.

DEN* (Data Enable) segnala al dispositivo esterno che può mettere sul data bus il dato durante le operazioni di lettura.

Page 14: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

14 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

HOLD e HLDA

Costituiscono l’interfaccia verso il controllore di DMA.

Quando un dispositivo desidera acquisire il controllo del bus, porta a 1 il segnale HOLD.

A questo punto il processore, terminato il corrente ciclo di bus, pone in alta impedenza i segnali AD0-AD7, A8-A15, A16/S3-A19/S6, SS0*, IO/M*, DT/R*, RD*, WR*, DEN* e INTR e forza a 1 il segnale HLDA.

Quando il dispositivo rilascia il bus, riporta a 0 il segnale HOLD.

Page 15: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

15 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

Segnali di Interrupt

Sono:

• INTR (input): richiesta di interrupt da parte di un dispositivo esterno

• INTA* (output): accettazione della richiesta da parte della CPU, e temporizzazione del trasferimento del codice di interrupt

• NMI (input): richiesta di interrupt non mascherabile.

Page 16: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

16 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

READY

READY rappresenta un segnale di sincronizzazione con l'esterno.

All'esecuzione dell'istruzione WAIT, il processore testa il segnale READY e, se vale 1, inizia ad eseguire dei cicli di idle; quando READY torna a 0, il processore esegue l'istruzione successiva alla WAIT.

Page 17: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

17 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

BHE

Nell’8086 il segnale BHE* (Bank Enable High) durante T1 determina, insieme con A0, la dimensione e l’allineamento del tipo trasferito:

BHE* A0

0 0 Parola Intera

0 1 Byte superiore da/per indirizzo dispari

1 0 Byte inferiore da/per indirizzo pari

1 1 Nulla

Page 18: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

18 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

Segnali di Stato della Coda

I segnali QS0 e QS1 segnalano all’esterno che tipo di dato è stato appena estratto dalla coda:

QS0 QS1

0 0 Nulla

0 1 Primo Byte

1 0 Coda Vuota (istruz. di salto)

1 1 Byte successivo al primo

Page 19: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

19 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

LOCK*

Indica che un’istruzione con il prefisso LOCK e’ in corso di esecuzione e conseguentemente il bus non puo’ essere utilizzato da un altro potenziale master.

Page 20: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

20 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

Request/Grant

Nei sistemi multiprocessore, sono utilizzati per eseguire il passaggio del controllo del bus da un processore ad un altro.

Page 21: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

21 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

PENTIUM

ABUS (A31-A3, BE7-BE0)

DBUS (64 bit)

ADS

Stato (D/C, W/R,M/IO)

READY

BIT PARITA’ (DP/-DP0)

DMA

INTERRUPT

L1/L2 cacheControl (MESI)

MULTIPROC.SYNCR

Page 22: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

22 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

Page 23: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

23 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

PENTIUM BUS CYCLE

Nel pentium esistono due tipi di cicli:

•single transfert: trasferimento di un solo dato

•Burst cycle: trasferimento di 4*64 bit (32 byte) effettuato per aggiornamento della L1 cache nei casi di cache miss

Page 24: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

24 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

CICLO DI BUS CON DATA BUS A 32 BIT

(ciclo lettura)

Con bus a 32 bit, ABUS è costituito dai seguenti segnali:

A31-A2

BE3-BE0 (4 byte)

Page 25: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

25 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

CICLO DI BUS CON DATA BUS A 32 BIT

(ciclo scrittura)

Page 26: 1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo - M. Sonza Reorda BUS DI.

26 M.MezzalamaM. Rebaudengo, M. Sonza Reorda

CICLO DI BUS CON DATA BUS A 32 BIT

(ciclo scrittura con wait)