Architetture I
Lez. 21-22
Il sistema di I/O
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Dispositivi di I/O
• I dispositivi di I/O hanno:
• Una componente meccanica
• Una componente elettronica
• La componente elettronica chiamata device controller
impartisce comandi al dispositivo fisico (drive/device)
e ne controlla la corretta esecuzione
• L’insieme dei comandi impartiti dal controller al
device, il loro formato, i codici di errore riportati
definiscono l’interfaccia tra il device ed il dispositivo
• Un controller può controllare più device purché
abbiano la stessa interfaccia
• Interfacce famose: IDE (Integrated Device electronics,
SCSI (Small Computer System Interface), USB
(Universal Serial BUS
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Tipi di Device
• I dispostivi possono essere suddivisi in due
grosse categorie in funzione delle modalità con
cui “manipolano” i dati su cui operano:
• Dispositivi a blocchi: memorizzano e trasferiscono le
informazioni in blocchi di dimensione fissa, e ciascun
con un suo indirizzo. La dimensione del blocco varia
da 512-32,768 byte
• Dispositivi a carattere: memorizzano e trasferiscono
stringhe di byte senza riferimento ad alcuna struttura
di blocco
• Il clock è un dispositivo di I/O che non ricade in
nessuna delle due predette categorie
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Tipi di device
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Device Controller
• Sono l’interfaccia di comunicazione tra la periferica e
la CPU, e sono composti da registri ed in alcuni casi
data buffer
• Caricando opportune sequenze di bit all’interno di
questi registri, il sistema operativo può richiedere
l’esecuzione di comandi il cui risultato può essere
prelevato sempre attraverso questi registri
• L’insieme di comandi usati per comunicare con il
controller, il loro formato, ed i codici di errore
costituiscono l’interfaccia del controller verso il
sistema operativo, questa interfaccia è devicedependent
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
La comunicazione tra controller e CPU
•
Come si programmano i registri dei
controller?
• I/O port: ad ogni registro è assegnato un
numero di 8/16 bit, che specifica la porta di I/O
corrispondente a cui ci si riferisce usando
istruzioni di I/O
•
Es. mov al, 0x20
out 0x20, al
• Memory mapped: Registri di I/O come indirizzi
qualunque di memoria
• Sistema ibrido: Buffer dati mappati in
memoria, registri di controllo come I/O port
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
I/O port INTEL
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Controllo programma
• I dati sono scambiati direttamente tra il
controller e la CPU
• La CPU ha il diretto controllo
dell’operazione di I/O
• La CPU inoltra un comando al controller e
poi si mette in attesa della sua
terminazione
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Interrupt
• I registri di controllo di un device controller posseggono
almeno uno status bit che indica se un’operazione di
ouputè stata completata oppure se c’è un nuovo dato da
consumare
• Nelle periferiche più sofisticate questo inisme a questi bit
viene asserita una linea di IRQ sul bus di sistema
• Quindi ogni volta che si inserisce un nuovo controller su
un sistema va indicato l’IRQ di riferimento, per evitare
conflitti questa scelta viene spesso demandata al BIOS
in fase di boot
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
DMA
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Un sistema di calcolo
• Un sistema di calcolo è costituito da tre
tipologie di dispositivi:
• Cpu
• Memorie
• Periferiche di I/O
• Tra questi dispositivi devono però essere
stabilite degli opportuni collegamenti
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Componenti
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Primo tentativo
• Una prima soluzione
potrebbe essere quella di
collegare i vari
componenti tra di loro
singolarmente ( modalità
di connessione puntopunto) ma ciò comporta:
• complessità dell’hardware
• costo realizzativo
• struttura poco flessibile
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Secondo tentativo
Alternativa: utilizzare un canale
di comunicazione condiviso dai vari
componenti
CPU
Cache
Bus
Memory
A.A. 09/10
Disk
Network
USB
DVD
…
Architetture degli Elaboratori I
© Danilo Bruschi
BUS
•
Linee di Controllo:
•
•
•
Linee Indirizzi:
•
•
trasportano segnali di richiesta e di acknowledgment
indicano che tipo di transazione si sta svolgendo
trasportano gli indirizzi dei dati da trasferire
Linee Dati:
•
trasportano i dati da trasferire (anche comandi complessi per alcune periferiche)
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Vantaggi - Svantaggi
• Vantaggi
• Basso costo:lo stesso canale di comunicazione è
utilizzato in modi diversi per diverse esigenze
• Versatilità: facile aggiungere o rimuovere dispositivi
e periferiche
• Svantaggi
• Poco performante: Il bus può operare a velocità
limitata a causa della necessità di supportare un
insieme di dispositivi che operano a velocità diverse
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Alternativa
• Per ovviare alle carenze del modello a
singolo bus si introducono diversi tipi di
bus, che meglio si adattano alle
caratteristiche delle periferiche collegate
• Bus diversi sono collegati tra loro da
opportuni moduli di interfaccia
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Esempio
Memory
I/O
module
CPU
“CPU bus”
or
“System bus”
A.A. 09/10
“Bus
interface”
I/O
device
“I/O
bus”
Architetture degli Elaboratori I
© Danilo Bruschi
I/O Hierarchy
CPU
Cache
Memory Bus
Memory
Disk
I/O
Controller
I/O Bus
Network
A.A. 09/10
USB
DVD
…
Architetture degli Elaboratori I
© Danilo Bruschi
Tipi di Bus
•
Processor-Memory bus
• corti ed ad alta velocità
• progettati solo per il memory system (massimizzano la banda passante
tra
• memoria e processore)
• sono connessi direttamente al processore
• ottimizzati per il trasferimento a blocchi della cache
•
I/O Bus (standard: SCSI, USB, ISA, IDE)
• di solito lunghi e più lenti
• devono adattarsi a un vasto insieme di dispositivi I/O
• si connettono al processor-memory bus o al backplane bus
•
Backplane Bus o Expansion bus (standard o proprietario, es. PCI)
• backplane: una struttura di interconnessione nello chassis
• Usato come intermediario per collegare I/O bus al processor-memory
bus
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Expansion Bus
• Si tratta di “slot” presenti sulla motherboard
• Esempi:
•
•
•
•
•
•
•
•
•
ISA – Industry Standard Architecture
PCI – Personal Component Interconnect
EISA – Extended ISA
SIMM – Single Inline Memory Module
DIMM – Dual Inline Memory Module
MCA – Micro-Channel Architecture
AGP – Accelerated Graphics Port
VESA – Video Electronics Standards Association
PCMCIA – Personal Computer Memory Card International
Association (not just memory!)
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
3 ISA
slots
5 PCI slots
A.A. 09/10
Pentium CPU
6 SIMM
slots
2 DIMM
slots
Architetture degli Elaboratori I
© Danilo Bruschi
I/O Bus
• Esempi
•
•
•
•
•
•
•
•
Tutte le interfacce disco (IDE, SCSI, ATA, ecc.)
Porta Parallela – chiamata anche LPT (“line printer”)
Seriale – tipicamente RS232C
PS/2 – per tastiere e mouse
USB – Universal Serial Bus
IrDA – Infrared Device Attachment
FireWire – nuova, ad alta velocità, developed by IEEE
Ethernet
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Confronto
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Connettere i bus
• Per connettre tra loro bus diversi si usano
degli appositi moduli di I/O, in particolare
un modulo di I/O:
• Connette un I/O bus a un system bus
• Connette un I/O ad un altro I/O bus
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Ethernet Adapter - PCI
Addtron
AEF-360TX
RJ-45
connector
BNC
connector
A.A. 09/10
PCI
bus interface
Architetture degli Elaboratori I
© Danilo Bruschi
PCMCIA
bus
Motherboard
PCMCIA
slot
I/O
module
PCMCIA
serial card
I/O
module
RS232C
bus
Modem
§
Memory
PCMCIA
slot
CPU
CPU/system
bus
A.A. 09/10
I/O
module
PCMCIA
bus
PCMCIA
SCSI card
I/O
module
Disk
SCSI
bus
Disk
Architetture degli Elaboratori I
© Danilo Bruschi
Example: The Pentium
4’s
System
BusBuses
(“Front Side Bus”):
Memory Controller Hub
(“Northbridge”)
64b x 800 MHz (6.4GB/s), 533
MHz, or 400 MHz
Graphics output:
2.0 GB/s
DDR SDRAM
Main Memory
Gbit ethernet: 0.266 GB/s
Hub Bus: 8b x 266 MHz
2 serial ATAs:
150 MB/s
PCI:
32b
x 33 MHz
2 parallel ATA:
100 MB/s
8 USBs:
60 MB/s
I/O Controller Hub
(“Southbridge”)
Lec 09
Systems Architecture II
Architetture degli Elaboratori I
28
© Danilo Bruschi
Comunicazioni sul bus
• La comunicazione sul bus non è paritetica.
• Bus Master: ha la capacità di controllare il bus, inizia la
transazione
• Bus Slave: modulo attivato in seguito alla transazione
• Un dispositivo sul bus può fare solo master (CPU), solo
slave (memoria) o entrambi (DMA controller)
• La comunicazione tra master e slave avviene in base ad
una sequenza precisa di azioni realizzate dai partner
(transazione).
• Il Protocollo di Comunicazione del Bus precisa la
sequenza di eventi e le specifiche di tempificazione con
cui avviene la transazione.
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Una transazione
• Si compone di tre fasi:
• Arbitraggio: per guadagnare l’accesso al bus
• Richiesta: per inoltrare comando e indirizzo
• Azione: trasferimento dei dati
• Nei sistemi più semplici:
• Il processore è l’unico master di bus
• Unico problema: deve essere coinvolto in ogni transazione
Control: Master initiates requests
Bus
Master
A.A. 09/10
Data can go either way
Bus
Slave
Architetture degli Elaboratori I
© Danilo Bruschi
Esempio di transazione semplice
• Tutte le richieste per accedere al bus devono transitare
dal processore
Step 1: il disco deve utilizzare il bus ed invia la richiesta al processor
Control
Memory
Processor
Data
Step 2: il processore risponde e genera gli opportuni segnali di controllo
Control
Memory
Processor
Data
Step 3: il processore concede i diritti di bus slave al disco, che potrà usare il bus
Control
Memory
Processor
Data
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Transazione con più bus master
•
•
•
•
Nel caso ci siano più master a richiedere il bus, bisogna decidere a
quale di questi assegnarlo tramite un arbitraggio del bus, gestito da
un apposito dispositivo (Arbitration Unit o arbitro di bus).
Il dispositivo che intende controllare il bus segnala un bus request
all’arbitro di bus; il controllo viene eventualmente concesso tramite
un bus grant (molti bus request un unico bus grant).
A seguito del bus grant, il dispositivo (master) può iniziare la
transazione
La tecnica di arbitraggio deve bilanciare due fattori:
• priority
• fairness
•
Diverse tecniche di arbitraggio:
• Centralizzate
• Distribuite
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Bus Sincrono
• Le operazioni sul bus sono tempificate da un segnale di
sincronizzazione (clock) e gli istanti in cui sono validi i
segnali sulle linee sono fissati dal clock (tipicamente sul
fronte di salita o di discesa)
• In relazione al clock, si definiscono anche la durata dei
segnali e gli intervalli temporali di separazione dei
segnali (tipicamente in termini di periodi o semiperiodi
del clock)
• Vantaggi:
• semplicità di progettazione del sistema (circuiti sincroni più facili
da progettare degli asincroni)
• Svantaggi:
• la velocità del bus deve adeguarsi ai dispositivi più lenti
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Bus sincrono
Legenda:
Breq: bus request
BG: bus grant
R/W Address: comandi
indirizzo
Wait: Dati non ancora
pronti
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Bus asincrono
• Nei bus asincroni manca un segnale di clock principale e
le operazioni avvengono sulla base di un colloquio
(handshake) tra master e slave basato su apposite linee
di sincronizzazione (DATA READY, DATA REQUEST,
ACK, ecc.)
• Il tempo impiegato dalle singole operazioni è legato
esclusivamente alle velocità esibite dai dispositivi
coinvolti.
• Vantaggi:
• possibilità di connettere periferiche con velocità diverse
• Svantaggi:
• al tempo necessario per una transazione bisogna aggiungere il
tempo dell’handshake
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Bus Asincrono (write)
•
•
•
•
•
•
t0 : Il master predispone indirizzo, direzione del trasferimento e dati
Attende un certo intervallo di tempo (necessario perché gli slave
leggano l’indirizzo)
t1: Il master asserisce la linea di richiesta (REQ)
t2: Lo slave asserisce ack (dato ricevuto)
t3: Il master abbassa la linea di richiesta
t4: Lo slave abbassa l’ack
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Bus asincrono (read)
•
•
•
•
•
•
t0 : Il master predispone indirizzo e direzione del trasferimento
Attende un certo intervallo di tempo (necessario perché gli slaves
leggano l’indirizzo)
t1: Il master asserisce la linea di richiesta (REQ)
t2: Lo slave asserisce ack (dato disponibile)
t3: Il master abbassa la linea di richiesta (dato ricevuto)
t4: Lo slave abbassa l’ack
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Long
Asynchronous is better
Short
Clock skew (function of bus length)
Quale bus?
Synchronous
is better
Similar
A.A. 09/10
Mixture of I/O device speeds
Varied
Architetture degli Elaboratori I
© Danilo Bruschi
Esercizio
• Operazione di lettura in memoria di una parola
da 32 bit
• Tempo per la lettura in memoria: 200 ns
• Bus sincrono
• Periodo di clock: 50 ns
• Un periodo di clock per ogni trasmissione sul bus
• Bus asincrono
• 40 ns per ogni trasmissione di dato di “controllo”
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Bus sincrono
•
•
•
•
•
50 ns per inviare indirizzo alla memoria
200 ns per la lettura in memoria
50 ns per inviare il dato
300 ns per l’intera transazione
Banda del bus:
• 32 bit / 300 ns = 13.3 Mbyte/sec
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Bus asincrono
• Master prepara indirizzo e R/W
• 40 ns master asserisce REQ
• 200 ns per la lettura in memoria
•
•
•
•
Slave asserisce ACK
40 ns master abbassa REQ
40 ns slave abbassa ACK
Banda del bus:
• 32 bit / 320 ns = 10 Mbyte / sec
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Velocizzare il bus
• Oltre alla scelta della tecnica di tempificazione,
altri parametri influiscono sulla velocità di
trasferimento del bus:
• parallelismo del data bus Æ aumento del
numero di linee
• linee dati ed indirizzi separate Æaumento del
numero di linee
• trasferimento dati a blocchi Æ accresciuto tempo
di risposta
• split transaction Æ tempi di transazione più
lunghi
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Split-transaction
• split-transaction: una transazione di bus è
divisa in due transazioni separate:
• Transazione di ”request”
• Transazione di ”reply”
• Entrambe devono competere per
l’accesso al bus
• I vantaggi della split transaction sono
eveidenti nel caso di richieste con tempi di
risposta variabili
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Backplane, I/O bus
S-bus
MicroChannel
PCI
IPI
SCSI 2
Data width
(bits)
32
32
32-64
16
8-16
Clock rate
(Mhz)
16-25
Async
33
Async
10 or
async
Bus
masters
Multiple Multiple
Multiple
Single
Multiple
Bandwidth
(32 bit
reads)
33
20 MB/sec
MB/sec
33
MB/sec
25 MB/sec
20 or 6
MB/sec
Bandwidth
(peak)
89
75 MB/sec
MB/sec
132
MB/sec
25 MB/sec
20 or 6
MB/sec
Standard
None
-
ANSI
X3.129
A.A. 09/10
-
ANSI
Architetture
degli Elaboratori I
X3.131
© Danilo Bruschi
CPU-memory bus
HP summit
SGI Challenge Sun XDbus
Data width
(bits)
Clock rate
(MHz)
Bus masters
128
256
144
60
48
66
Multiple
Multiple
Multiple
Bandwidth
(peak)
Standard
960 MB/sec
1200 MB/sec
1056 MB/sec
None
None
None
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Scarica

Slides - Computer and Network Security Lab (LaSER)