Sei sulla pagina 1di 30

Università degli Studi di Messina

Dipartimento di Ingegneria Elettronica, Chimica e Ingegneria Industriale



!
Corso di Laurea

Ingegneria Elettronica e Informatica

Anno Accademico 2013/2014

Calcolatori

Il sistema di I/O

Dario Bruneo
Nota

Le slide seguenti sono da intendersi come materiale didattico aggiuntivo del corso di
Architettura dei Calcolatori.

Non possono in nessun modo essere sostitutive dei libri di testo, devono quindi
essere usate esclusivamente come una guida.

Eventuali errori o segnalazioni possono essere inviati all’indirizzo dbruneo@unime.it


Alcune figure sono tratte da:


Patterson, Hennessy “Struttura e progetto dei Calcolatori” 3a edizione Zanichelli

Calcolatori a.a. 13/14 Dario Bruneo


Introduzione

Oltre al processore ed alla memoria, il terzo elemento chiave di un sistema di elaborazione è il sistema di
Input/Output (I/O)

Interrupts
! Processor

la connessione tra i dispositivi di I/O,


la memoria e il processore è
Cache

storicamente chiamata bus



Memory-I/O Interconnect
!

la comunicazione viene gestita sia


Main I/O I/O I/O
memory controller controller controller
mediante gli interrupt che mediante

protocolli specifici Graphics Network


Disk Disk output

FIGURE 6.1 A typical collection of I / O devices. The connections between the I/O devices,
processor, and memory are historically called buses, although the term means shared parallel wires and most
I/O connections today are closer to dedicated serial lines. Communication among the devices and the pro-
cessor uses both interrupts and protocols on the interconnect, as we will see in this chapter. Figure 6.9 shows
Calcolatori a.a. 13/14 Dario Bruneo
the organization for a desktop PC. Copyright © 2009 Elsevier, Inc. All rights reserved.
Caratteristiche dei dispositivi

I dispositivi di I/O sono incredibilmente diversi tra loro ma si possono classificare in base a:

comportamento

partner

Device Behavior Partner Data rate (Mbit / sec)
velocità
Keyboard Input Human 30,000.0001
Mouse Input Human 30,000.0038
Voice input Input Human 30,000.2640
Sound input Input Machine 30,003.0000
Scanner Input Human 30,003.2000
Voice output Output Human 30,000.2640
Sound output Output Human 30,008.0000
Laser printer Output Human 30,003.2000
Graphics display Output Human 800.0000–8000.0000
Cable modem Input or output Machine 0.1280–6.0000
Network/LAN Input or output Machine 100.0000–10000.0000
Network/wireless LAN Input or output Machine 11.0000–54.0000
Optical disk Storage Machine 30,080.0000–220.0000
Magnetic tape Storage Machine 005.0000–120.0000
Flash memory Storage Machine 32.0000–200.0000
Magnetic disk Storage Machine 800.0000–3000.0000

FIGURE 6.2 The diversity of I / O devices. I/O devices can be distinguished by whether they serve as
input, output, or storage devices; their communication partner (people or other computers); and their peak
Calcolatori a.a. 13/14 communication rates.DarioThe data rates span eight orders of magnitude. Note that a network can be an input or
Bruneo
Affidabilità

Nella progettazione dei sistemi di I/O un aspetto importante è dato dal grado di affidabilità

Definizione metriche di affidabilità


Reliability

è una stima della probabilità di guasto


MTTF (Mean Time To Failure)


MTTR (Mean Time To Repair)


Availability

è una stima della probabilità di trovare il dispositivo funzionante



MTTF
può essere espressa come

(MTTF + MTTR)
!

Come migliorare l’affidabilità?


Evitare il guasto

Tolleranza ai guasti

Previsione dei malfunzionamenti

Calcolatori a.a. 13/14 Dario Bruneo


Altri parametri di progetto

Parametri prestazionali

latenza d’accesso

throughput

Anche se le prestazioni hanno un peso minore nell’I/O esse sono più complesse da valutare in quanto dipendono da diversi aspetti

caratteristiche del dispositivo


connessione tra dispositivo e resto del sistema


gerarchia di memoria

sistema operativo

Inoltre, i sistemi di I/O devono essere progettati tenendo conto di


espandibilità

eterogeneità dei dispositivi


capacità di memorizzazione

Calcolatori a.a. 13/14 Dario Bruneo


Dischi magnetici

memoria non volatile


insieme di dischi (piatti) che ruotano intorno ad un asse


velocità di rotazione (tra 5400 e 15000 RPM)


testina di lettura scrittura


tracce (da 10000 a 50000 per ogni lato)


settori (da 100 a 500 settori per traccia)


ogni settore ha tipicamente una capacità di 512B


cilindro

insieme delle tracce che si trovano sotto le testine in un determinato istante


Zone Bit Recording (ZBR)



FIGURE 1.10 A disk showing 10 disk platters and the read/write heads. Copyright ©
Elsevier, Inc. All rights reserved.
numero variabile di settori per traccia

Error Correction Code (ECC)

Calcolatori a.a. 13/14 Dario Bruneo


Dischi magnetici (cont.)

Il tempo di accesso è dato da


tempo di ricerca della traccia (seek)


tempo medio compreso tra 3ms e 13ms


ottimizzazione usando riordino e principio di località


latenza di rotazione

il valore medio corrisponde a mezzo giro del disco


Latenza(5400RPM) = 0,5 / (5400/60) = 5,6 ms


Latenza(15000RPM) = 0,5 / (15000/60) = 2,0 ms


tempo di trasferimento

funzione della dimensione del settore, della velocità di rotazione e della densità di memorizzazione

ordine di centinaia di MB/s, con ottimizzazioni (utilizzo cache) si può arrivare anche all’ordine di Gb/s

tempo di controllo

ritardo introdotto dal controllore del disco


tipicamente < 0.2 ms

Calcolatori a.a. 13/14 Dario Bruneo


Dischi magnetici (cont.)


Seagate Seagate Seagate Seagate
Characteristics ST33000655SS ST31000340NS ST973451SS ST9160821AS
Disk diameter (inches) 3.50 3.50 2.50 2.50
Formatted data
147 1000 73 160
capacity (GB)
Number of disk
2 4 2 2
surfaces (heads)
Rotation speed (RPM) 15,000 7200 15,000 5400
Internal disk cache
16 32 16 8
size (MB)
External interface,
SAS, 375 SATA, 375 SAS, 375 SATA, 150
bandwidth (MB/sec)
Sustained transfer
73–125 105 79–112 44
rate (MB/sec)
Minimum seek
0.2/0.4 0.8/1.0 0.2/0.4 1.5/2.0
(read/write) (ms)
Average seek
3.5/4.0 8.5/9.5 2.9/3.3 12.5/13.0
read/write (ms)
Mean time to failure
1,400,000 @ 25°C 1,200,000 @ 25°C 1,600,000 @ 25°C —
(MTTF) (hours)
Annual failure rate
0.62% 0.73% 0.55% —
(AFR) (percent)
Contact start-stop cycles — 50,000 — >600,000
Warranty (years) 5 5 5 5
Nonrecoverable read
<1 sector per 1016 <1 sector per 1015 <1 sector per 1016 <1 sector per 1014
errors per bits read
Temperature, shock
5°–55°C, 60 G 5°–55°C, 63 G 5°–55°C, 60 G 0°–60°C, 350 G
(operating)
Size: dimensions (in.),
1.0" × 4.0" × 5.8" , 1.5 lbs 1.0" × 4.0" × 5.8" , 1.4 lbs 0.6" × 2.8" × 3.9" , 0.5 lbs 0.4" × 2.8" × 3.9" , 0.2 lbs
weight (pounds)
Power: operating/idle/
15/11/— 11/8/1 8/5.8/— 1.9/0.6/0.2
standby (watts)
GB/cu. in., GB/watt 6 GB/cu.in., 10 GB/W 43 GB/cu.in., 91 GB/W 11 GB/cu.in., 9 GB/W 37 GB/cu.in., 84 GB/W
Price in 2008, $/GB ~ $250, ~ $1.70/GB ~ $275, ~ $0.30/GB ~ $350, ~ $5.00/GB ~ $100, ~ $0.60/GB

Calcolatori a.a. 13/14 FIGURE 6.5 Characteristics of four magnetic Dario Bruneodisks by a single manufacturer in 2008. The three leftmost drives are for servers
and desktops while the rightmost drive is for laptops. Note that the third drive is only 2.5 inches in diameter, but it is a high performance drive
Dischi magnetici (cont.)

Interfacce standard

ATA (Advanced Technology Attachment)


un interfaccia standard per l’interconnessione di dispositivi di storage come hard disk, memorie a stato solido, lettori CD-ROM

la versione seriale ha ormai superato la versione parallela


SCSI (Small Computer Systems Interface)


un insieme di standard (comandi, protocolli e interfacce ottiche ed elettriche) per la connessione fisica ed il trasferimento di dati

Calcolatori a.a. 13/14 Dario Bruneo


Memorie flash

Memorie a semiconduttore non volatili con latenze 100-1000 volte inferiori a quelle dei dischi

Primo vero concorrente dei dischi magnetici


Ampio mercato (smart phone, macchine fotografiche, ecc.)


Realizzate mediante EEPROM



NOR Flash NAND Flash
Characteristics Memory Memory
NOR flash Vs. NAND flash

Typical use BIOS memory USB key
! Minimum access size (bytes) 512 bytes 2048 bytes
Read time (microseconds) 0.08 25
Numero di scritture limitato

Write time (microseconds) 10.00 1500 to erase +
250
wear leveling

Read bandwidth (MBytes/second) 10 40
! Write bandwidth (MBytes/second) 0.4 8
Wearout (writes per cell) 100,000 10,000 to 100,000
Utilizzo

Best price/GB (2008) $65 $4

schemi ibridi FIGURE 6.7 Characteristics of NOR versus NAND flash memory in 2008. These devices can
read bytes and 16-bit words despite their large access sizes. Copyright © 2009 Elsevier, Inc. All rights
reserved.

Calcolatori a.a. 13/14 Dario Bruneo


Sistemi RAID

Un aumento della ridondanza (numero di dischi) produce benefici in termini di


affidabilità

prestazioni (accesso parallelo)


Data disks Redundant check disks

Redundant Arrays of Inexpensive Disks (RAID)


RAID 0
(No redundancy)
Widely used
7 possibili configurazioni

RAID 1
(Mirroring)
RAID 0 (Striping) EMC, HP(Tandem), IBM

RAID 2
nessuna ridondanza
(Error detection and
correction code) Unused
migliori prestazioni

RAID 3
! (Bit-interleaved parity)
Storage concepts

RAID 1 (Mirroring) RAID 4


(Block-interleaving parity)
Network appliance
utilizzo del doppio dei dischi

RAID 5
configurazioni miste (RAID 1 + 0 o RAID 0 + 1) (Distributed block-
interleaved parity)
Widely used
RAID 6
(P + Q redundancy)
Recently popular

FIGURE 6.12 RAID for an example of four data disks showing extra check disks per RAID
level and companies that use each level. Figures 6.13 and 6.14 explain the difference between
Calcolatori a.a. 13/14 Dario Bruneo
RAID 3, RAID 4, and RAID 5. Copyright © 2009 Elsevier, Inc. All rights reserved.
RAID 0
Sistemi RAID (cont.)
(No redundancy)
Widely used

RAID 1
(Mirroring)
EMC, HP(Tandem), IBM
RAID 2 (riconoscimento e correzione degli errori)
RAID 2
(Error detection and
non utilizzato
correction code) Unused

RAID 3
! (Bit-interleaved parity)
Storage concepts

! RAID 4
(Block-interleaving parity)
Network appliance

RAID 3 (Bit-interleaved parity) RAID 5


(Distributed block-
interleaved parity)
aggiunta di informazioni ridondanti per il recupero dei dati
Widely used
RAID 6
(P + Q redundancy)
tempi di recupero maggiori
Recently popular

! FIGURE 6.12 RAID for an example of four data disks showing extra check disks per RAID
level and companies that use each level. Figures 6.13 and 6.14 explain the difference between
RAID 3, RAID 4, and RAID 5. Copyright © 2009 Elsevier, Inc. All rights reserved.
!

! New Data 1. Read 2. Read 3. Read New Data1. Read 2. Read


D0 D0 D1 D2 D3 P D0 D0 D1 D2 D3 P
RAID 4 (Block-interleaved parity)
+ XOR
+ XOR + XOR
parità memorizzata in blocchi

riduce il numero di letture


D0 D1 D2 D3 P D0 D1 D2 D3 P

4. Write 5. Write 3. Write 4. Write

FIGURE 6.13 SmallRAID 3


write update RAID 4for small writes
on RAID 3 versus RAID 4. This optimization
reduces the number of disk accesses as well as the number of disks occupied. This figure assumes we have
Calcolatori a.a. 13/14 Dario Bruneo
four blocks of data and one block of parity. The straightforward RAID 3 parity calculation in the left of
RAID 3

Sistemi RAID (cont.)


(Bit-interleaved parity)
Storage concepts

RAID 4
(Block-interleaving parity)
Network appliance

RAID 5 (Distributed block-interleaved parity) RAID 5


(Distributed block-
interleaved parity)
evita il collo di bottiglia dovuto al disco di parità
Widely used
RAID 6
(P + Q redundancy) Data disks Redundant check disks
! Recently popular
RAID 0
(No redundancy)
FIGURE 6.12 RAID for an example of four data disks showing extra check disks per
0 ! 1 2 3 P0 0 1 2 3 P0 level andused
Widely companies that use each level. Figures 6.13 and 6.14 explain the difference b
RAID 3, RAID 4, and RAID 5. Copyright © 2009 Elsevier, Inc. All rights reserved.
4 5 6 7 P1 4 5 6 P1 7 RAID 1
(Mirroring)
8 ! 9 10 11 P2 8 9 P2 10 11 EMC, HP(Tandem), IBM

12 13 14 15 P3 12 P3 13 14 15 RAID 2
(Error detection and
! correction code) Unused
16 17 18 19 P4 P4 16 17 18 19

20 21 22 23 P5 20 21 22 23 P5 RAID 3
! (Bit-interleaved parity)
... ... ... ... ... ... ... ... ... ... Storage concepts

RAID 4
! RAID 4 RAID 5 (Block-interleaving parity)
Network appliance
FIGURE 6.14 Block-interleaved parity (RAID 4) versus distributed block-interleaved parity
(RAID 5).
! By distributing parity blocks to all disks, some small writes can be performed in parallel. RAID 5
Copyright © 2009 Elsevier, Inc. All rights reserved. (Distributed block-
interleaved parity)
Widely used
RAID 6 (P+Q redundancy) RAID 6
(P + Q redundancy)
Recently popular
ulteriore blocco di parità

FIGURE 6.12 RAID for an example of four data disks showing extra check disks per
level and companies that use each level. Figures 6.13 and 6.14 explain the difference b
aumento della fault tolerance RAID 3, RAID 4, and RAID 5. Copyright © 2009 Elsevier, Inc. All rights reserved.

Calcolatori a.a. 13/14 Dario Bruneo


Il bus

Canale di comunicazione condiviso che utilizza un unico insieme di fili per collegare più sottosistemi

PRO: versatilità, basso costo


CONTRO: possibile collo di bottiglia, larghezza di banda condivisa


Composto da

Bus
linee di controllo

Control
linee di indirizzo

Address
linee dati

Data
La massima velocità del bus è limitata da

lunghezza del bus


numero di dispositivi connessi


Si distinguono

bus paralleli

bus seriali

Calcolatori a.a. 13/14 Dario Bruneo


Tipi di bus

Bus processore memoria (Front-side bus)


tecnologia proprietaria

corti e ad alta velocità


adattati al sistema di memoria


Bus di I/O (I/O Bus)

standard industriali (SCSI, USB, Firewire)


lunghi e lenti

in grado di gestire una larga varietà di dispositivi


sono connessi alla memoria tramite il front-side bus o il backplane bus


Bus di sistema (Backplane bus)


standard industriali (PCI express, ATA)


utilizzato come bus intermediario per connettere i bus di I/O al front-side bus

Calcolatori a.a. 13/14 Dario Bruneo


Transazioni di I/O

Una transazione di I/O è una sequenza di operazioni sul bus che comprende una richiesta (ed una eventuale risposta) e per la quale
può esserci trasporto di dati

Approccio Master/Slave (Arbitraggio)


Una transazione è iniziata da una singola richiesta e può comprendere svariate operazioni individuali sul bus

Ogni transazione di I/O è composta da due parti


invio dell’indirizzo

spedizione/ricezione dei dati


Le transazioni sono definite rispetto all’operazione effettuata sulla memoria


Lettura: i dati sono trasferiti dalla memoria al processore o ad un dispositivo di I/O


Scrittura: i dati sono trasferiti dal processore o da un dispositivo di I/O alla memoria

Rispetto al processore si definiscono operazioni di


Input: i dati sono scritti in memoria per poi essere letti dal processore

Output: i dati sono trasferiti dalla memoria al dispositivo

Calcolatori a.a. 13/14 Dario Bruneo


Bus sincroni e asincroni

Bus sincroni (es. front-side bus)


comprende un clock tra le linee di controllo


il protocollo di gestione del bus è agganciato al clock (normalmente implementato tramite una piccola FSM)

Ad es. durante il primo ciclo di clock si trasmette l’indirizzo ed il segnale di lettura ed al quinto ciclo di clock la memoria risponderà con i dati

PRO: molto veloce, poca logica di controllo


CONTRO: ogni dispositivo connesso deve funzionare alla stessa frequenza del bus, a causa del clock skew non possono essere molto
lunghi

Bus asincroni (es. I/O bus)


non è presente un segnale di clock


utilizzo di protocolli di handshacking


PRO: possono gestire una vasta gamma di dispositivi con velocità differenti, possono essere molto lunghi

CONTRO: logica di controllo più complessa, latenza causata dal protocollo

Calcolatori a.a. 13/14 Dario Bruneo


Protocolli handshacking

Esempio: lettura dati da parte di un dispositivo di I/O


!

5. Quando i dati sono pronti la memoria alza DataRdy e pone i


1. Il dispositivo alza il segnale ReadReq e fornisce l’indirizzo
dati sul bus

2. La memoria legge la richiesta e risponde alzando il segnale di 6. Il dispositivo vede DataRdt, legge i dati e alza Ack

Ack

7. La memoria vede Ack alto, rilascia le linee dati e abbassa
3. Il dispositivo vede Ack alto e rilascia ReadReq e indirizzi
DataRdy

4. La memoria vede ReadReq basso e rilascia Ack
8. Il dispositivo vede DataRdy basso e rilascia Ack
!

! ReadReq
3
! addr data
Data
! 1
4 6
! Ack 8

! 2 5

!
DataRdy 7

!
In blu le azioni relative al dispositivo di I/O

Calcolatori a.a. 13/14 Dario Bruneo


Alcuni I/O bus

Caratteristiche principali dei cinque standard di I/O principali


Bus asincroni

Serial Serial
Characteristic Firewire (1394) USB 2.0 PCI Express ATA Attached SCSI
Intended use External External Internal Internal External
Devices per
63 127 1 1 4
channel
Basic data
4 2 2 per lane 4 4
width (signals)
0.2 MB/sec (low speed),
50 MB/sec (Firewire 400) 250 MB/sec per lane (1x);
Theoretical peak 1.5 MB/sec (full speed), 300 MB/
or 100 MB/sec (Firewire PCIe cards come as 300 MB/sec
bandwidth or 60 MB/sec (high sec
800) 1x, 2x, 4x, 8x, 16x, or 32x
speed)
Hot pluggable Yes Yes Depends on form factor Yes Yes
Maximum bus
length (copper 4.5 meters 5 meters 0.5 meters 1 meter 8 meters
wire)
USB Implementors
Standard name IEEE 1394, 1394b PCI-SIG SATA-IO T10 committee
Forum

FIGURE 6.8 Key characteristics of five dominant I / O standards. The intended use column indicates whether it is designed to be
used with cables external to the computer or just inside the computer with short cables or wire on printed circuit boards. PCIe can support
simultaneous reads and writes, so some publications double the bandwidth per lane assuming a 50/50 split of read versus write bandwidth.
Copyright © 2009 Elsevier, Inc. All rights reserved.
Calcolatori a.a. 13/14 Dario Bruneo
Un tipico sistema di I/O

Due chip principali (chipset)



Intel Xeon 5300 Intel Xeon 5300
processor processor
Famiglia Intel

Front Side Bus (1333 MHz, 10.5 GB / sec)
north bridge
FB DDR2 667
Memory PCIe x16 (or 2 PCIe x8)
(5.3 GB / sec)
south bridge controller (4 GB / sec)
Main
hub
memory
(north bridge)
DIMMs
5000P
ESI PCIe x8
Serial ATA (2 GB / sec) (2 GB / sec)
(300 MB / sec)
Disk
PCIe x4
(1 GB / sec)
PCIe x4
(1 GB / sec)
Disk I/O
controller PCI-X bus
LPC hub (1 GB / sec)
(1 MB / sec) (south bridge) PCI-X bus
Keyboard, Entreprise South
mouse, ... (1 GB / sec)
Bridge 2
USB 2.0 Parallel ATA
(60 MB / sec) (100 MB / sec)
CD / DVD

Calcolatori a.a. 13/14 Dario Bruneo


FIGURE 6.9 Organization of the I / O system on an Intel server using the Intel 5000P chip
Un tipico sistema di I/O (cont.)
Intel 5000P chip set Intel 975X chip set AMD 580X CrossFiret
Target segment Server Performance PC Server/Performance PC
Front Side Bus (64 bit) 1066/1333 MHz 800/1066 MHz —
Memory controller hub (“north bridge”)
Product name Blackbird 5000P MCH 975X MCH
Pins 1432 1202
Memory type, speed DDR2 FBDIMM 667/533 DDR2 800/667/533
Memory buses, widths 4 × 72 1 × 72
Number of DIMMs, DRAM/DIMM 16, 1 GB/2 GB/4 GB 4, 1 GB/2 GB
Maximum memory capacity 64 GB 8 GB
Memory error correction available? Yes No
PCIe/External Graphics Interface 1 PCIe x16 or 2 PCIe x 1 PCIe x16 or 2 PCIe x8
South bridge interface PCIe x8, ESI PCIe x8
I / O controller hub (“south bridge”)
Product name 6321 ESB ICH7 580X CrossFire
Package size, pins 1284 652 549
PCI-bus: width, speed Two 64-bit, 133 MHz 32-bit, 33 MHz, 6 masters —
PCI Express ports Three PCIe x4 Two PCIe x16, Four PCI x1
Ethernet MAC controller, interface — 1000/100/10 Mbit —
USB 2.0 ports, controllers 6 8 10
ATA ports, speed One 100 Two 100 One 133
Serial ATA ports 6 2 4
AC-97 audio controller, interface — Yes Yes
I/O management SMbus 2.0, GPIO SMbus 2.0, GPIO ASF 2.0, GPIO

FIGURE 6.10 Two I / O chip sets from Intel and one from AMD. Note that the north bridge functions are included on the AMD
micropro
Nei cessor, as they più
processori are on the more
recenti le recent Intel Nehalem.
funzionalità Copyright
del north bridge© 2009
sonoElsevier,
incluseInc.direttamente
All rights reserved.
nel microprocessore

Calcolatori a.a. 13/14 Dario Bruneo


Interfacciamento dei dispositivi di I/O

I protocolli di transazione su bus (o su rete) definiscono come una parola od un blocco di dati possano essere trasmessi su un
insieme di piste elettriche

Si deve adesso stabilire


Come viene trasformata una richiesta di I/O in un comando per un dispositivo?


Come viene inviato tale comando?


Come vengono effettivamente trasferiti i dati?


Il sistema operativo gioca un ruolo cruciale nella gestione dell’I/O


costituisce l’interfaccia tra l’hardware e il programma che richiede un’operazione di I/O fornendo comandi ad alto livello per accedere ai dispositivi
attraverso procedure che gestiscono le operazioni di I/O di basso livello (complesse e dettagliate)

fornisce, inoltre, i livelli di sicurezza necessari (uso condiviso dell’I/O) e garantisce un accesso equo alle risorse

A tal fine:

il sistema operativo deve essere in grado di inviare comandi ai dispositivi di I/O


i dispositivi di I/O devono essere in grado di notificare al sistema operativo che un’operazione di I/O si è conclusa

occorre consentire il trasferimento dei dati tra la memoria e i dispositivi di I/O


Calcolatori a.a. 13/14 Dario Bruneo


Come impartire i comandi

Per poter inviare un comando ad un dispositivo di I/O il processore deve essere in grado di indirizzare il dispositivo

memory-mapped I/O

una porzione dello spazio di indirizzamento viene assegnata ai dispositivi di I/O


l’indirizzo codifica l’identità del dispositivo


l’invio dei comandi è equivalente alle operazioni di lettura/scrittura dalla memoria


spazio di indirizzi protetto dalla memoria virtuale (accessibile solo dalla modalità kernel)

isolated I/O

uso di istruzioni speciali per l’I/O (esempio istruzioni assembler input, output)

istruzioni bloccate in modalità utente


spazi di indirizzi separati


bisogna specificare l’id del dispositivo (ad es. tramite un registro)


utilizzate nell’architettura x86

Calcolatori a.a. 13/14 Dario Bruneo


Come comunicare con il processore

La scrittura o la lettura di dati da un dispositivo di I/O si traduce, di solito, in una sequenza di operazioni distinte

Il processore deve verificare lo stato del dispositivo nell’intervallo che intercorre tra due comandi

Due tecniche principali


Polling

Interrupt-driven I/O

Polling

Il processore periodicamente controlla lo stato del dispositivo di I/O


Ad es. le stampanti più semplici sono dotate di due registri di I/O uno per le informazioni di stato e uno per i dati, il processore invia il dato da stampare
scrivendo nel registro di stato e aspetta che la stampante sia di nuovo pronta, controllando il bit di fine operazione (presente nel registro di stato), prima
di inviare il prossimo dato. Il processore deve anche controllare il bit di errore (anch’esso presente nel registro di stato) per accertarsi di eventuali errori

metodo semplice, il controllo è affidato completamente al processore


possibilità di controllare più dispositivi ciclicamente


a causa della differenza di velocità tra processore e I/O tale metodo può risultare inefficiente

Calcolatori a.a. 13/14 Dario Bruneo


Interrupt-driven I/O

L’interrupt-driven I/O utilizza gli interrupt per segnalare al processore una richiesta da parte di un dispositivo di I/O

Il processore non deve perdere tempo a controllare lo stato dei dispositivi


Gli interrupt sono asincroni rispetto all’esecuzione delle istruzioni e non ne impediscono il completamento

Oltre alla notifica sono necessarie altre informazioni (quali ad esempio l’id del dispositivo)

interrupt vettorizzati

utilizzo del registro Causa


Necessaria una accurata gestione delle priorità


tipicamente gli interrupt di I/O hanno una priorità più bassa rispetto alle eccezioni

diversi livelli di priorità dei dispositivi di I/O e quindi degli interrupt da loro generati (legata anche alla velocità dei dispositivi stessi)

Calcolatori a.a. 13/14 Dario Bruneo


Interrupt-driven I/O (cont.)

Gestione degli interrupt nel MIPS


!

Registro Status
Registro Cause

determina chi può interrompere il processore


Il campo Pending interrupts contiene un bit per ogni livello di
interrupt

IE = 0 ➜ nessuna interruzione ammessa

Un interrupt può essere generato solo se il corrispondente bit
IE = 0 e EL = 1 ➜ exception level (si sta gestendo un’eccezione, nella Interrupt mask è posto a 1

interruzioni disabilitate)

Quando un interrupt viene generato il sistema operativo può
IE = 1 e EL = 0 ➜ interruzioni abilitate secondo la Interrupt determinarne la causa analizzando il campo Exception code

Mask

Un codice pari a 0 corrisponde ad un interrupt

Exception

Interrupt
IM ➜ 8 livelli di interruzioni (6 hw e 2 sw)

enable
mode
Valori diversi da 0 si riferiscono alle eccezioni

User

level
un livello è abilitato se il corrispondente bit è settato a 1

15 8 4 1 0
priorità da sinistra (più alta) verso destra (più bassa)

Exception
! Interrupt Interrupt
enable
mode
User

mask
level

!
15 8 4 1 0 31 15 8 6 2

!
Interrupt Branch Pending Exception
mask delay interrupts code

31 15 Status 8 6 2 FIGURE 6.11 The Cause and Status registers. Cause This version of the Cause register correspo
the MIPS-32 architecture. The earlier MIPS I architecture had three nested sets of kernel/user and int
Calcolatori a.a. 13/14 Dario Bruneo enable bits to support nested interrupts. Section B.7 in Appendix B has more details about these re
Interrupt-driven I/O (cont.)

La gestione degli interrupt avviene secondo i seguenti passi


AND logico tra il campo Pending interrupts e il campo Interrupt mask per sapere quali, tra gli interrupt abilitati, abbiano generato
l’interrupt (utilizzo istruzione mfc0)

Selezione dell’interrupt con massima priorità


Salvataggio della Interrupt mask


Modifica della Interrupt mask in modo da disabilitare tutti gli interrupt con priorità inferiore o uguale a quello che si sta servendo

Salvataggio dello stato del processore


Impostazione del bit di abilitazione degli interrupt a 1 (per abilitare interrupt a priorità più alta)

Chiamata della procedure di interrupt appropriata


Prima di ripristinare lo stato nella condizione precedente, impostazione a 0 del bit di abilitazione degli interrupt e ripristino della
maschera di interrupt

Relazione tra l’Interrupt Priority Level (IPL) associato dal sistema operativo ad ogni processo e l’Interrupt mask

Calcolatori a.a. 13/14 Dario Bruneo


Direct Memory Access

Come ridurre il carico di lavoro della CPU relativo alla gestione dell’I/O?

L’I/O interrupt driven permette al processore di compiere altro lavoro durante l’attesa di una risposta da un dispositivo di I/O

Durante il trasferimento dati, però, si potrebbe avere uno spreco di cicli di CPU dovuto alla lentezza del trasferimento

Il Direct Memory Access (DMA) è un meccanismo che fornisce al controllore di un dispositivo la possibilità di trasferire dati
direttamente alla/dalla memoria senza coinvolgere il processore

Viene ancora utilizzato il meccanismo degli interrupt ma solo per comunicare al processore il completamento del trasferimento o un
errore

Il DMA viene implementato mediante un controllore specializzato (master)


Il north bridge è un esempio di controllore DMA

Calcolatori a.a. 13/14 Dario Bruneo


Direct Memory Access (cont.)

Fasi di un trasferimento DMA


Il processore inizializza il controllore DMA (d’ora in poi DMA) fornendo l’id del dispositivo, l’operazione richiesta, l’indirizzo di memoria sorgente o
destinazione e il numero di byte

Il DMA inizia l’operazione sul dispositivo e governa la connessione.


Quando il dato è disponibile lo trasferisce.


Se la richiesta implica più di un trasferimento, il DMA genera l’indirizzo successivo e gestisce il relativo trasferimento

Terminato il trasferimento, il DMA interrompe il processore il quale può verificare (interrogando il dispositivo DMA o esaminando la memoria) l’esito
dell’operazione

Nello stesso calcolatore ci possono essere dispositivi DMA multipli (ad es. anche il south bridge ha un controllore DMA)

Durante un trasferimento DMA la memoria risulta impegnata ed un eventuale accesso da parte di un processo verrà ritardato

grazie alla cache tali ritardi vengono mascherati il più delle volte

Processore di I/O (o I/O channel)


DMA più “intelligente” (programmabile)


esegue una sequenza di operazioni memorizzate in un programma di I/O (inizializzato dal sistema operativo)

Calcolatori a.a. 13/14 Dario Bruneo

Potrebbero piacerti anche