Title: 8086/8088: l'interfaccia verso il bus
1BUS DI CPU
M. Mezzalama - M. Rebaudengo - M. Sonza Reorda
Politecnico di Torino Dip. di Automatica e
Informatica
2Ciclo di Bus
- È la sequenza di eventi attraverso la quale la
CPU comunica con la memoria, con un dispositivo
di I/O, con lInterrupt 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 sulladdress bus viene scritto lindirizzo
- T2, T3, T4 sul data bus viene messo il dato.
- Se la CPU non deve accedere allesterno, 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.
3Ciclo 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
4PCI CLK 66MHz, 32 bit DBUS AGPx4 MHz x 4
5Ciclo di Lettura
- T1 sulladdress bus viene scritto lindirizzo
- T2 la CPU forza sul data bus il valore Z
- T3, T4 la memoria scrive il dato sul data bus.
6Ciclo di Scrittura
- T1 sulladdress bus viene scritto lindirizzo
- T2 la CPU scrive il dato sul data bus
- T3, T4 la memoria legge il dato dal data bus.
7Cicli 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.
8Cicli 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.
9Ciclo di Bus
T1
T2
T3
T4
T1
T2
T3
T4
Bus Cycle
Address
Data
Address
Data
Buffer
Buffer
10Connessione Maximum-Mode
8289 Bus Arbiter
Segnali di Controllo Bus Multibus
8288 Bus Controller
8086
S2
S1
S0
D0-D15
BHE
RD
Ready
11Segnali 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
12Segnali di Controllo (I)
- ALE il fronte di salita segnala durante T1 che
sulladdress 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.
13Segnali 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.
14HOLD e HLDA
- Costituiscono linterfaccia 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.
15Segnali 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.
16READY
- 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.
17BHE
- Nell8086 il segnale BHE (Bank Enable High)
durante T1 determina, insieme con A0, la
dimensione e lallineamento 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
18Segnali di Stato della Coda
- I segnali QS0 e QS1 segnalano allesterno 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
19LOCK
- Indica che unistruzione con il prefisso LOCK e
in corso di esecuzione e conseguentemente il bus
non puo essere utilizzato da un altro potenziale
master.
20Request/Grant
- Nei sistemi multiprocessore, sono utilizzati per
eseguire il passaggio del controllo del bus da un
processore ad un altro.
21PENTIUM
ABUS (A31-A3, BE7-BE0)
DMA
INTERRUPT
DBUS (64 bit)
BIT PARITA (DP/-DP0)
L1/L2 cache Control (MESI)
ADS
Stato (D/C, W/R,M/IO)
MULTIPROC. SYNCR
READY
22(No Transcript)
23PENTIUM BUS CYCLE
- Nel pentium esistono due tipi di cicli
- single transfert trasferimento di un solo dato
- Burst cycle trasferimento di 464 bit (32 byte)
effettuato per aggiornamento della L1 cache nei
casi di cache miss
24CICLO 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)
25CICLO DI BUS CON DATA BUS A 32 BIT (ciclo
scrittura)
26CICLO DI BUS CON DATA BUS A 32 BIT (ciclo
scrittura con wait)