Parte III Logica Digitale, Memorie, Microprocessori e Bus

Parte III
Logica Digitale, Memorie,
Microprocessori e Bus
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.1
Circuiti Digitali
i1
INGRESSI
in
CIRCUITO
DIGITALE
o1
USCITE
om
• Circuiti elettronici i cui ingressi e le
cui uscite assumono solo due livelli
• Al circuito sono associate le funzioni
che calcolano le uscite a partire dagli
ingressi
o1 = f1( i1,….,in )
..
.
om = fm( i1,….,in )
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.2
Funzioni Logiche (Booleane)
y, x1,…, xn ∈ { 0,1 }
y = f (x1,…,xn)
f
{ 0,1 } → { 0,1 }
n
• Variabili con due soli valori possibili:
{ 0,1 }
FALSO
VERO
{ F,T }
FALSE
TRUE
x2 …… x n-1 xn
0 …….. 0 0
0 …….. 0 1
..
.. ..
.
. .
1 …….. 1 1
f
0
1
..
.
0
Tavola di verità
x1
0
0
..
.
1
• 2n combinazioni di ingresso
•
n
2
2
funzioni distinte di n variabili
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.3
Funzioni Booleane (Esempi)
• Con n=1 si hanno 4 funzioni:
x1
0
1
f0
0
0
f1
0
1
f2 f3
1 1
0 1
• La funzione f2 è detta NOT
• Con n=2 si hanno 16 funzioni, tra cui:
x1
0
0
1
1
x2
0
1
0
1
f0
0
0
0
0
f1
0
0
0
1
f2
0
0
1
0
f3
0
0
1
1
f4
0
1
0
0
f5
0
1
0
1
f6
0
1
1
0
• La funzione f1 è nota come AND
• La funzione f7 è nota come OR
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.4
f7
0
1
1
1
Algebra Circuitale (Booleana)
• È una struttura algebrica (insieme più
operatori)
• Reticolo distributivo complementato
Insieme: I = { 0,1 }
Operatori: AND , OR
Complementazione: NOT
Notazione
• Se x e y sono due variabili booleane:
– L’ AND di x e y si indica con x · y
– L’ OR di x e y si indica con x + y
– Il NOT di x si indica con x
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.5
Proprietà dell’Algebra Booleana
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.6
Espressioni Algebriche
Teor.: ogni funzione booleana è
algebrica, cioè rappresentabile
con un’espressione dell’algebra
Prima Forma Canonica
f = Σj=1..m
Π
i=1..n
xij*
• xij* vale xi oppure xi
• f è espressa come OR delle combinazioni per cui la funzione è vera
(somma di mintermini)
Qualsiasi funzione booleana può
essere messa in questa forma
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.7
Funzioni Booleane (Esempio)
ES
• Tre variabili booleane A, B, C
• Funzione di maggioranza M: è vera
solo se almeno due delle tre variabili
sono vere
ABC
ABC
ABC
ABC
M = ABC + ABC + ABC + ABC
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.8
Circuiti Logici
• Porte Logiche: circuiti elementari che
realizzano gli operatori dell’algebra
Qualsiasi funzione booleana può essere
calcolata con un circuito realizzato con
sole porte AND, OR e NOT
• Le porte logiche vengono realizzate
con circuiti elettronici:
NOT
NAND
NOR
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.9
Circuiti Logici: (Esempio)
(Funzione di Maggioranza)
M = ABC + ABC + ABC + ABC
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.10
Porte NAND e NOR
È possibile simulare AND, OR e NOT,
e quindi realizzare qualsiasi circuito,
usando soli NAND oppure soli NOR
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.11
Porte XOR
• Calcola la funzione OR Esclusivo: dà
uscita 1 (vero) quando uno solo degli
ingressi (ma non entrambi) vale 1
• Facilmente realizzabile con porte AND,
OR e NAND
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.12
Circuiti Integrati
• Molte porte realizzate sulla stessa
piastrina di silicio (chip)
• Contenitori da 14 a 68 piedini
• Vari livelli di integrazione:
– SSI (Small Scale)
1-10 porte
– MSI (Medium Scale) 10-100 ”
– LSI (Large Scale)
102-105 ”
– VLSI (Very Large Sc.) > 105 ”
• Tempi di commutazione 1-20 nsec
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.13
Circuiti Combinatori
Circuiti in cui l’uscita dipende solo
dagli ingressi, e non dallo stato cioè
dalla storia passata
ES
n
2
INGRESSI CONTROLLATI
n INGRESSI DI
CONTROLLO
….
…………...
MULTIPLEXER
UNA USCITA
• Gli ingressi di controllo selezionano
quale degli ingressi controllati viene
mandato in uscita
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.14
Multiplexer (circuito)
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.15
Calcolo di funzioni booleane
tramite multiplexer
• Con un multiplexer ad n si può calcolare qualsiasi funzione di n variabili
• Gli ingressi controllati corrispondono
ai mintermini
• Si cablano a 0 o 1, a seconda che il
mintermine compaia o meno nella
forma canonica
ES
(Funzione di maggioranza)
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.16
Decodificatore
n
• Circuito a n ingressi e 2 uscite
• Una ed una sola delle n uscite assume
valore vero in corrispondenza a ciascun
na delle 2 configurazioni di ingresso
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.17
Comparatore
• Compara i bit omologhi di due stringhe
• L'uscita vale 1 se e solo se Ai=Bi ¹ i
• Se Ai=Bi allora Ai XOR Bi = 0
• Il NOR da uscita 1 solo quando tutti i
suoi ingressi valgono 0
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.18
Programmable Logic Arrays
(PLA)
• Permette di realizzare una ‘qualsiasi’
funzione (in prima forma canonica)
• Circuito configurabile tramite bruciatura (interruzione) di connessioni
• Permette di calcolare più funzioni
• Due sezioni nel circuito:
A) Generazione di un insieme di
mintermini
B) Selezione dei mintermini da
inviare a ciascuna delle uscite
• Limitazioni
– Numero limitato di mintermini
n
generati << 2
– Numero limitato di mintermini in
ingresso a ciascuno degli OR di
uscita
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.19
PLA: realizzazione circuitale
• Genera 6 funzioni di 12 variabili
• Massimo 50 mintermini (su 4096)
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.20
Semiaddizionatore
(Half Adder)
• Circuito a 2 ingressi e 2 uscite:
somma e riporto (carry)
• Non può essere usato per la somma
di numerali a più bit, dove occorre
sommare anche il riporto della cifra
precedente
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.21
Addizionatore Completo (Full Adder)
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.22
• Circuito a 3 ingressi e 2 uscite
• Riceve il riporto dalla cifra precedente
ALU a 1 bit (bit slice)
• A e B sono bit omologhi degli operandi
• F0 e F1 selezionano la funzione (00: AND),
(01: OR), (10: NOT), (11: SUM)
• ENA ed ENB sono segnali di enable
• INVA permette di negare A
• Default ENA=ENB=1 e INVA=0
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.23
ALU ad n bit
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.24
• Realizzata connettendo n ALU ad 1 bit (bit slices)
• Problema: propagazione dei riporti
• Ciascuno stadio deve attendere il riporto dal precedente
• Tempo di addizione lineare con n
• INC incrementa la somma di 1 (A+1, A+B+1)
Circuiti Sequenziali
o1
i1
s1 …. sr
INGRESSI
in
STATO
USCITE
om
oi = fi( i1,...,in ,s1,…,sr)
i=1,…,m
s’i =gi( i1,...,in ,s1,…,sr)
j=1,…,r
• Le uscite del circuito dipendono dagli
ingressi e dalla storia passata
• La storia passata è riassunta nello stato
• Lo stato è codificato nelle variabili di
stato booleane s1,…,sr
• Le variabili di stato sono memorizzate
in elementi di memoria binari
• Circuiti combinatori calcolano le
uscite e il nuovo valore dello stato
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.25
Clock
• Tutti i cambiamenti di stato vengono
sincronizzati da un segnale (clock)
• Da un clock primario ne vengono
ricavati per sfasatura, sottrazione ecc.
• Le transizioni di stato del circuito
possono avvenire:
A) In corrispondenza dei livelli
B) In corrispondenza dei fronti
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.26
Latch
• Dispositivo di memoria elementare
• Due stati stabili Q=0 e Q=1
S (SET): forza Q a 1
R (RESET): forza Q a 0
• Con S=R=0 il circuito mantiene lo
stato
• Il circuito commuta sui livelli cioè
quando S o R passano a 1
• S ed R non devono mai andare insieme
ad 1
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.27
Latch con Clock, Latch D
• R ed S vengono trasferiti sugli ingressi
del latch solo quando il clock è ad 1
• Quando il clock è a 0 vengono ignorati
• Il latch D (Delay) quando il clock va
ad 1 registra nello stato Q il valore
dell’ingresso D
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.28
Latch e Flip-Flop
a)
b)
• I Latch commutano sui livelli del clock
( a) alto, b) basso)
a)
b)
• I Flip-Flop commutano sui fronti del
clock:
a) Commuta sul fronte di salita
b) Commuta sul fronte di discesa
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.29
Registri
• I Flip-Flop sono gli elementi base di
memorizzazione nel computer
• Molti Flip-Flop possono essere messi su
un unico chip
• Occorrono in genere da 6 a 10 transistor
per ogni Flip-Flop
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.30
Organizzazione della Memoria
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.31
Dispositivi a 3 stati
• In base ad un segnale di controllo C
si comporta:
(b) C=1: come circuito chiuso
(c) C=0: come circuito aperto
• Tempo di commutazione: pochi nsec
• Consente di usare gli stessi piedini sia
per la lettura che per scrittura
• Usato anche per la connessione ai bus
e a qualsiasi linea bidirezionale
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.32
Chip di Memoria
CS
n× m
OE
…….
CHIP DI MEMORIA
log2 n
LINEE
INDIRIZZO
WE
…….
m
LINEE DATI IN/OUT
• Chip da n × m bit complessivi
• m linee dati bidirezionali
• log2 n linee di indirizzo
• Segnali di controllo:
– CS (Chip Select)
– OE (Output Enable)
– WE (Write Enable)
Problema: numero limitato di piedini
del contenitore
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.33
Matrice di selezione
log2n
1/2 log2n
1/2 log2n = log2 √ n
DECODER 1/2 log n → √ n
DECODER 1/2 log n → √ n
• Si risparmia nella complessità della logica di
decodifica
• Un decoder m → 2m richiede 2m porte AND
ES
– 4M parole → 22 linee
– 1 decoder a 22 → 4M porte AND
– 2 decoder a 11 → 2⋅211= 4k porte AND
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.34
Chip di Memoria (Esempi)
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.35
• RAS (Row Address Strobe), CAS (Column Address Strobe)
• Indirizzi di riga e di colonna multiplexati sugli stessi piedini
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
Schede di Memoria
III.36
• La scheda memorizza parole di n byte
• Si usano n+1 se si vuole il controllo di parità
• Bit di parità gestito dal controller della memoria
Organizzazione della memoria
• SIMM (Single Inline Memory Module)
– 72 piedini, 32 bit, 8-16 chip, 32 MByte
– A coppie nel Pentium (bus dati 64 bit)
• DIMM (Double Inline Memory Module)
– 168 piedini, 64 bit, 16 chip, 128 MByte
• Il controller gestisce più SIMM (o DIMM)
• Ogni SIMM informa il controller della sua
dimensione (segnali su certi piedini)
• Il controller determina al momento del boot
il tipo di RAM (e.g. EDO)
• Dall’indirizzo e dalla configurazione il
controller calcola a quale SIMM mandare il
segnale di Chip Select
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.37
Tassonomia delle RAM e ROM
• RAM (Random Access Memory)
• ROM (Read Only Memory)
• SRAM (Static RAM): a Flip-Flop,
molto veloce (~5nsec)
• DRAM (Dynamic RAM): basata su
capacità parassite; richiede refresh, alta
densità, basso costo (~70 nsec)
– FPM: selezione a matrice
– EDO: (Extended Data Output)
lettura in pipeline, più banda
• SDRAM (Synchronous DRAM)
– Sincrona, prestazioni migliori
• PROM (Programmable ROM)
• EPROM (Erasable PROM) raggi UV
• EEPROM: cancellabile elettricamente
• Flash Memory: tipo di EEPROM,
ciclo 100nsec, max 10.000 riscritture
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.38
Tipi di RAM e di ROM e loro impieghi
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.39
Refresh nelle DRAM
• Necessario rinfrescare, cioè riscrivere,
tutta la DRAM con periodo T
• Possibile scrivere in un solo ciclo una
riga o una colonna
• Refresh simultaneo di tutti i chip e
tutte le schede
ES
– T : periodo di refresh
– n : dimensione
(4 ms)
(4MB)
– τ : durata ciclo refresh
(40ns)
– η : overhead
η=(√ n⋅ τ) / T
η=(2048 ⋅ 40 ⋅10-9) / (4 ⋅10-3)≈2%
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.40
Pinout Logico del µP
• Indirizzamento
• Dati
• Controllo
– Controllo del ciclo di bus
– Gestione delle interruzioni
– Arbitraggio del bus
– Gestione del coprocessore
– Segnalazione di stato
– Vari (alimentazione etc.)
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.41
Architettura a più Bus
• Diversi bus, interni ed esterni al chip
• Soddisfano diverse esigenze:
– Velocità di trasferimento
– Numero di linee
– Più trasferimenti paralleli
– Compatibilità all’indietro
• Nei primi PC c’era un unico bus
• Negli attuali PC almeno tre bus esterni
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.42
Comunicazione sul Bus
• La comunicazione sul bus è regolata
da un protocollo di bus
• In ciascun ciclo comunicano due soli
dispositivi il master e lo slave
• Lo stesso dispositivo può avere ruoli
diversi a seconda dei casi
• I dispositivi sono connessi al bus
tramite un bus transceiver
• La connessione al bus avviene tramite
dispositivi a tre stati oppure è di tipo
open collector
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.43
‘Larghezza’ del Bus
• Larghezza = numero di linee
• Linee dati: banda di trasferimento
• Linee indirizzo: dimensione dello
spazio (di memoria) indirizzabile,
2n locazioni con n bit di indirizzo
Problema: al crescere del numero di
linee aumenta il bus skew (differenza
nella velocità di propagazione dei
segnali
Soluzione: multiplexamento di più
segnali sulla stessa linea
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.44
Segnali asseriti e negati
• In alcuni casi ( a seconda delle scelte di
progetto) un segnale provoca l’azione
corrispondente quando la sua tensione
è alta, in altri quando è bassa
• Per evitare confusione si parla di:
– Segnale asserito: quando assume il
valore che provoca l’azione
– Segnale negato: altrimenti
• Si adotta la seguente notazione:
– S: segnale che è asserito alto
– S: segnale che è asserito basso
• Ulteriore notazione (usata da Intel):
– S: segnale che è asserito alto
– S#: segnale che è asserito basso
( adatta al set di caratteri ASCII)
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.45
Bus Sincroni: ciclo di lettura
T=25 nsec
• Tutte le azioni avvengono sui fronti
• Se la memoria mantiene asserito WAIT
il ciclo si prolunga
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.46
Bus Sincrono: Temporizzazione
ES
• Frequenza 40 MHz, periodo 25 nsec
• Tempo a disposizione della memoria fra:
a) la comparsa dell’indirizzo sul Bus
b) la disponibilità dei dati sul Bus
τ1 = 2.5⋅T-TAD-TDS = 62.5-16 = 46.5 nsec
• Tempo a disposizione della memoria fra:
a) l’asserzione di MREQ e RD
b) la disponibilità dei dati sul Bus
τ2 = 2⋅T-TM-TDS = 50-13 = 37 nsec
• Una memoria da 40 nsec ce la fa di sicuro
• Altrimenti mantiene asserito il segnale di
WAIT, per introdurre stati di wait, cioè cicli
di bus addizionali
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.47
Bus Asincrono: ciclo di lettura
• Accoppiamento di dispositivi con
velocità diverse
• Gli eventi avvengono in risposta ad
altri eventi (rapporto di causa ed effetto)
FULL HANDSHAKE
1) MSYN asserito
2) SSYN asserito in risposta a MSYN
3) MSYN negato in risposta a SSYN
4) SSYN negato in risposta a ¬MSYN
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.48
Arbitraggio del Bus
• Permette di decidere quale dispositivo
sarà il prossimo Bus Master risolvendo
eventuali conflitti
• Spesso l’arbitro è nel chip del µP
• Linea di richiesta condivisa
• Il Bus grant è propagato dall’arbitro
poco prima dell’inizio del ciclo
• Viene intercettato dal futuro master
NB Favoriti i dispositivi situati vicino
all’arbitro
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.49
Livelli Multipli di priorità
• Diverse linee di richiesta associate a
diversi livelli di priorità
• In caso di conflitto favorite le catene a
priorità più alta
• All’interno di ciascuna catena vale la
posizione
• In genere se c’è un solo bus con anche
la memoria la CPU ha priorità più bassa
dei dispositivi di I/O (e.g. dischi)
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.50
Block Transfers
• Permette di leggere più parole consecutive
• Usato per trasferire blocchi di cache
• Numero di parole specificato durante T1
• Dopo la prima viene trasferita una word
ogni ciclo (invece di una ogni tre cicli)
• Per leggere quattro word occorrono 6 cicli
invece di 12
• Il segnale BLOCK viene asserito per chiedere
un block transfer
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.51
Gestione delle Interruzioni
• Chip controllore di interruzioni Intel
8259A usato dal PC IBM e successori
• Gestisce 8 linee di interrupt
– INT: interruzione inviata alla CPU
– INTA: aknowledge della CPU
– Vettore di Interrupt passato sul Bus
– IR0-IR7: linee di interrupt sul Bus
• Il vettore di interrupt è usato dalla CPU
per saltare alla relativa routine
• Registri all’interno del chip scrivibili
dalla CPU per programmare lo 8259A
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.52
Il Pentium II
• Architettura a 32 bit completamente
compatibile con i predecessori
• Aritmetica Floating-point IEEE 754
• Bus di memoria a 64 bit
• Cache 1o livello 16KB dati +16KB istr.
• Cache 2o livello 512 KB nel package (a
metà della frequenza della CPU)
• SEC (Single Edge Cartridge) a 242 pin
• Dissipa oltre 55W!
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.53
Pentium II: Pinout Logico
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.54
Pentium II: Pinout Logico (2)
• 242 connetori sul SEC:
– 170 segnali
– 27 connessioni di alimentazione
– 35 connessioni di massa
– 10 per ‘uso futuro’
• Indirizzi a 36 bit (64 GB), ma sempre in
blocchi di 8 byte (solo 33 bit di indirizzo)
• 64 linee dati; segnali: D# (richiesta dati),
DRDY# (data ready), DBSY# (data busy)
• Segnali di Snoop per la coerenza di cache
• Gestione delle interruzioni sia come l’8088
che con APIC (Adv. Progr. Interr. Contr.)
• VID: per la scelta della tensione
• Power Management: permette di mettere
la CPU in stato di sleep e deep sleep
• 11 linee di diagnosi secondo lo standard
IEEE 1149.1 JTAG
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.55
Pentium II: Memory Bus
• Bus gestito con pipelining: è possibile
sovrapporre più transazioni
• Fasi di una transazione (usano gruppi di
linee indipendenti):
1) Bus arbitration phase (non mostrata)
2) Request phase
3) Error reporting phase
4) Snoop phase
5) Response phase
6) Data phase
• Non sempre si usano tutte le fasi
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.56
Il Bus ISA del PC/AT
• ISA (Indunstry Standard Architecture)
derivato dal bus del PC/AT
• Compatibile con il bus del PC a 62 linee
• 62+36 linee: 16 dati e 24 indirizzi
• Edge Connectors (molto economici)
• Tutt'oggi presente in tutti i PC per l’uso
di carte legacy
• Estensione EISA di poco successo
• Sincrono a 8.33 MHz: 16.7 MB/sec
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.57
Il Bus PCI: architettura complessiva
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.58
Il Bus PCI: specifiche
• PCI (Peripheral Component Interconnect)
• Introdotto da Intel per applicazioni video
• Video 1024×768×3 Byte a 30 frame/sec
richiede una banda di 67.5 MB/sec
• Standard non propietario, adottato da molti,
(ma Intel vende i chip di gestione….)
• Versione base a 32 bit, 33 MHz: 133 MB/sec
• Estensione a 64 bit e 66 MHz: 528 MB/sec
• Local Bus e Memory Bus separati (più veloci)
• Connessione tramite chip PCI bridge
• Varie opzioni di tensione (5 V e 3.3 V)
• Carte con 120 e 120+64 contatti
• Bridge ISA (include doppio controller IDE)
• Controllori addizionali SCSI e USB
• Bus sincrono, transazioni tra initiator e target
• Linee indirizzo e dati multiplexate
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.59
Il Bus PCI: arbitraggio
• Arbitraggio centralizzato (nel Bridge)
• Ogni PCI device ha due linee dedicate
• Il device fa la richiesta tramite REQ#
• Il grant viene concesso tramite GNT#
• Diversi algoritmi di arbitraggio:
– Round Robin
– Priorità
– Altro
• Transazioni su piu cicli separate da
cicli di idle
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.60
Il Bus PCI: Segnali Obbligatori
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.61
Il Bus PCI: Segnali Opzionali
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.62
Bus PCI: Segnali
• Bus a 120 o 180 linee
• Oltre ai segnali sono distribuiti anche
alimentazioni e masse
• 32(+32) linee AD multiplexate tra dati e
indirizzo con 1(+1) bit di parità PAR
• C/BE# (in cicli diversi) invia comandi e
specifica quanti e quali byte leggere
• FRAME# e IRDY (lettura) usati dal master
• DEVSEL# e TRDY# usati dallo slave
• IDSEL indirizza nel configuration space
di un device invece che in memoria (usato
per gestire il Plug and Play)
• STOP# e PERR# segnalano errori
• RST# induce un reset nella CPU e in tutti
i device sul bus
• SBO e SDONE segnali di cache snooping
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.63
Bus USB (Universal Serial Bus)
• Bus economico concordato da varie
aziende per la gestione di device di I/O
a bassa velocità (~ 1995)
• Obiettivi:
1) Evitare switch, jumpers
2) Installazione di tipo esterno
3) Cavo di connessione unificato
4) Alimentazione fornita dal cavo
5) Fino a 127 dispositivi collegabili
6) Supporto di dispositivi real-time
7) Installazione a PC acceso
8) Reboot non necessario
9) Bus e dispositivi economici
• Tutti gli obiettivi sono di fatto rispettati
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.64
USB: Specifiche Fondamentali
• Banda complessiva 1.5 MB/sec
• Limitata per ragioni di costo
• Root hub di connessione al bus PCI
• Connessione di dispositivi e di altri hub
• Struttura complessiva ad albero con
massima ramificazione di 16
• Connettori ai capi del cavo diversi
• Cavo a 4 fili: +5V, GND, 2 di segnale
• Alla connessione di un dispositivo:
– Interrupt: intervento del SO
– Richiesta di banda
– Assegnazione di indirizzo
• Indirizzo 0 usato per inizializzazione
• Logicamente connessione tra root hub
e ciascun device con bit pipe dedicata
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.65
USB: Struttura dei Frame
• Frame emessi ogni 1.00±0.05 msec
• Idle frame se non c’è comunicazione
• Contenuto del frame:
– SOF: Start of Frame
– IN / OUT: richiesta in lettura/scrittura
– DATA: payload fino a 64 byte più
controllo e codice di errore
– ACK / NACK: acknowledge o errore
• Polling usato invece delle interruzioni
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.66
Chip di I/O: UART, USART e PIO
• UART (Univ. Async. Rec. Transm.)
• USART (… Sync. Async. ……)
• Usati in interfacce parallelo/seriale
• PIO (Parallel Input/Output)
– Configurabile dalla CPU
– 3 Porti indipendenti da 8 bit con latch
– La CPU legge e scrive nei porti
– Possibile gestire anche semplici
protocolli di handshaking CPU-device
– Per gestire device TTY-compatible
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.67
Decodifica degli Indirizzi
• Spazio separato di I/O, oppure unico
spazio (Memory-Mapped I/O)
• Alcuni indirizzi riservati ai porti di I/O
• Problema: ricavare i segnali di chip select
ES
– EPROM:
0-2K
00000XXXXXXXXXXX
00000XXXXXXXXXXX
– RAM: 32K-34K
10000XXXXXXXXXXX
10000XXXXXXXXXXX
– PIO: FFFC-FFFF
1111111111111100
1111111111111111
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.68
Decodifica Completa
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.69
Decodifica Parziale
Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01
III.70