Esercitazione

Transcript

Esercitazione
Esercitazione di Calcolatori Elettronici
Ing. Gian Luca Marcialis
Corso di Laurea in Ingegneria Elettronica
Capitolo 7: Input/Output
Capitolo 7
Input/Output
Esercizi sul BUS:
1. Bus sincrono
2. Arbitraggio del Bus
Es.1 - Bus sincrono
•
Es.1 - Risposta (a)
Un bus sincrono presenta le seguenti caratteristiche:
–
–
–
–
Frequenza di clock: 100 MHz
Durata di una trasmissione sul bus: 2 cicli di clock
Ampiezza linea dati: 32 bit
Tempo di ciclo della memoria: 70 ns
•
•
La durata di un ciclo di clock è pari a 1/(100 MHz) = 10 ns
Il segnale di READ sulla linea di controllo e contemporaneamente
l’indirizzo della locazione in cui risiede il dato sulla linea indirizzi
(ADDRESS):
•
Lettura parola dalla memoria:
•
Trasferimento della parola dalla memoria
– 2 cicli di clock = 20 ns
a. Si mostri chiaramente il protocollo di lettura di un bus sincrono
(utilizzando l’apposito grafico);
b. Si calcoli la velocità di trasferimento durante una operazione di
lettura di un dato dalla memoria, sapendo che la memoria
principale ha un tempo di ciclo pari a 70 ns nei seguenti due
casi:
– 70 ns, cioè 7 cicli di clock
1. Parole di memoria di dimensione pari a 32 bit;
2. Parole di memoria di dimensione pari a 64 bit.
Calcolatori Elettronici
3
Calcolatori Elettronici
4
Es.1 - Risposta (b)
Es.1 - Risposta (a)
•
Vista grafica del protocollo di lettura su bus sincrono:
1. Se la parola da leggere ha ampiezza pari a 32 bit, è sufficiente
un trasferimento:
–
–
–
Trasferimento dei 32 bit della parola: 20 ns
Tempo
totale
per
leggere
una
20 ns + 70 ns + 20 ns = 110 ns
Velocità di trasferimento: 4 B/110 ns ≈ 34.68 MB/s
parola:
2. Se la parola da leggere ha ampiezza pari a 64 bit occorre
effettuare due trasferimenti successivi:
–
–
–
–
Calcolatori Elettronici
5
Trasferimento dei primi 32 bit della parola: 20 ns
Trasferimento dei restanti 32 bit della parola: 20 ns
Tempo totale per leggere una parola di 64 bit:
20 ns + 70 ns + 2*20 ns = 130 ns
Velocità di trasferimento: 8 B/130 ns ≈ 58.69 MB/s
Calcolatori Elettronici
Es.2 - Arbitraggio BUS (28/9/2004)
Es.2 - Risposta (a)
Si consideri il caso di un Bus di I/O sul quale devono essere
collegate 8 periferiche esterne.
a. Si ipotizzi che sulla parte di controllo del Bus si abbiano solo 2
segnali di controllo liberi da poter utilizzare per gestire
l’arbitraggio delle 8 periferiche da collegare. Descrivere la
tecnica di arbitraggio utilizzabile in una tale situazione,
disegnando un possibile schema di collegamento delle
periferiche e spiegando chiaramente le implicazioni del suo
utilizzo sulla gestione delle richieste di I/O delle periferiche.
b. Nelle ipotesi di cui al punto precedente, sarebbe utilizzabile la
tecnica di arbitraggio centralizzato con richieste indipendenti
per ciascuna periferica? In caso di risposta negativa, cosa
sarebbe necessario modificare per renderla utilizzabile?
•
Calcolatori Elettronici
Calcolatori Elettronici
•
7
6
Con soli 2 segnali liberi è possibile utilizzare la tecnica “daisy
chain” che ha solo 2 segnali: request e grant. Ovviamente
questa tecnica implica una gestione rigida delle priorità, che
sono definite una volta per tutte.
8
Es.2 - Risposta (b)
•
Non è ovviamente possibile. Per renderla utilizzabile,
bisognerebbe avere almeno 8x2=16 segnali di controllo liberi, 2
per ogni periferica. Si tratta infatti dell’estensione del concetto
di bus centralizzato con richieste, visualizzato nello schema
sottostante, in cui il numero di festoni coincide con il numero di
periferiche.
Capitolo 7: Input/Output
Richiami su modalità e indirizzamento I/O
Esercizi:
1. Programmed I/O e DMA
2. DMA “furto di ciclo”
Calcolatori Elettronici
9
Es.1 - Programmed I/O e DMA
I/O: Richiami
•
•
Modalità di I/O:
– Programmed I/O
– Interrupt Driven I/O
– Direct Memory Access (DMA)
a. Elencare le 4 istruzioni di CPU necessarie ad effettuare il
trasferimento dati da una periferica alla memoria nel caso in cui i
trasferimenti periferica-calcolatore vengano gestiti mediante I/O da
programma.
b. Calcolare la massima velocità di trasferimento (in bit/s) fra periferica
e calcolatore che è possibile raggiungere effettuando i trasferimenti
mediante I/O da programma.
c. Calcolare la massima velocità di trasferimento dati (in bit/s) fra
periferica e calcolatore nel caso in cui il trasferimento avvenga in
DMA.
• Transparent DMA
• Block Transfer DMA
• Cycle Stealing DMA (“furto di ciclo”)
•
Modalità di indirizzamento:
– Memory-mapped I/O
– Isolated I/O
Calcolatori Elettronici
L'ampiezza della linea dati del bus di un calcolatore è pari a 32
bit. La frequenza del clock della CPU è di 15 MHz. Tutte le
istruzioni vengono eseguite alla velocità di 1 ciclo di clock,
tranne le istruzioni di "LOAD" o "STORE" che hanno una durata
pari a 2 cicli di clock. L'indirizzamento delle periferiche è
realizzato mediante la tecnica del "memory-mapped I/O".
11
Calcolatori Elettronici
12
Es.1 - Risposta (b)
Es.1 - Risposta (a)
•
•
L'indirizzamento mediante "memory-mapped I/O”
implica che per la lettura/scrittura sulla periferica
si utilizzino le stesse istruzioni per la
lettura/scrittura da memoria principale. Pertanto
le istruzioni di LOAD e STORE vengono usate sia
per leggere/scrivere sulla memoria che sulla
periferica.
Il trasferimento dati da periferica a memoria
mediante I/O da programma ha bisogno dei
seguenti 4 passi:
1.
2.
3.
4.
•
– (32 x 15 x 106)/6 bit/s = 8 x 107 bit/s.
LOAD dalla periferica al registro CPU (2 cicli di clock)
STORE da registro CPU a memoria (2 cicli di clock)
generazione indirizzo successivo (1 ciclo di clock)
conteggio dati da trasferire (1 ciclo di clock)
Calcolatori Elettronici
13
Es.1 - Risposta (c)
•
In totale dunque sono necessari 6 cicli di clock per trasferire un
blocco di 32 bit, cioè si trasferisce un blocco con la frequenza di
15/6 MHz. La massima velocità di trasferimento è dunque pari a:
Calcolatori Elettronici
Es.2 - Programmed I/O e DMA
In DMA è possibile trasferire un blocco per ogni ciclo di clock in
modalità “block transfer”. Pertanto la massima velocità di
trasferimento è pari a:
•
– (32 x 15 x 106) bit/s = 48 x 107 bit/s.
•
Si consideri un calcolatore in cui la CPU esegue 105 istruzioni/s.
L’esecuzione di una istruzione richiede 5 cicli di clock, 3 dei
quali tengono occupato il bus di sistema. Si ipotizzi che l’85%
dell’Instruction Rate sia usato dalla CPU per eseguire programmi
che non contengono trasferimenti di I/O. L'ampiezza della linea
dati del bus è pari a 32 bit.
Si consideri il caso in cui il trasferimento dei dati avvenga
mediante I/O da programma, con le seguenti 4 istruzioni:
1.
2.
3.
4.
Calcolatori Elettronici
14
15
LOAD parola dalla periferica al registro CPU;
STORE parola da registro CPU a memoria;
generazione indirizzo di memoria successivo;
conteggio dati da trasferire.
Calcolatori Elettronici
16
Es.2 - Programmed I/O e DMA (a)
Es.2 - Programmed I/O e DMA (b)
a. Calcolare la massima frequenza di trasferimento dati ottenibile (espressa
in KB/s) fra una periferica collegata al bus di sistema e la memoria
principale.
Soluzione
• Nel caso di trasferimento mediante I/O da programma, per trasferire
una parola occorrono 4 istruzioni. La CPU è impegnata per l'85% del
tempo a eseguire istruzioni che non coinvolgono l'I/O, dunque può usare
solo il 15% del tempo per eseguire istruzioni di trasferimento dati con
periferiche. In termini di istr./sec questo tempo è pari a:
b. Calcolare la massima frequenza di trasferimento dati ottenibile (espressa
in KB/s) nel caso in cui si usi la modalità “transparent DMA”. Si ipotizzi
che una operazione di lettura/scrittura della memoria richieda un ciclo di
clock.
Soluzione
• Nel caso di “transparent DMA” posso trasferire i dati tutte le volte che il
bus di sistema è libero. Nel caso in esame questo tempo è pari alla
somma del 15% del tempo lasciato libero dall'esecuzione di istruzioni
che non coinvolgono I/O, più i 2 cicli/istruzione in cui il bus è libero.
Pertanto durante l'85% del tempo posso trasferire 2 parole/istr.:
–
•
–
•
–
0.15 x 105 istr./s = 1.5 x 104 istr./s.
Dal momento che per trasferire una parola servono 4 istruzioni, la
velocità di trasferimento è pari a:
1.5 x
104
istr./s / (4 istr./parola) = 3750 parole/s.
Nel restante 15% del tempo posso trasferire 5 parole/istr.:
•
In totale, nel caso di trasferimento con DMA, la velocità totale di
trasferimento è pari a:
–
La dimensione di una parola è pari a 32 bit (4 byte), da cui si ricava la
velocità di trasferimento di:
–
–
–
3750 parole/s x 4 B/parola = 15000 B/s = 14.65 KB/s
(N.B.: 1 KB = 1024 B)
Calcolatori Elettronici
17
0.85 x 2 parole/istr. x 105 istr./s = 1.7 x 105 parole/s
•
0.15 x 5 parole/istr. x 105 istr./s = 0.75 x 105 parole/s
(1.7 + 0.75) x 105 parole/s = 2.45 x 105 parole/s
2.45 x 105 parole/s x 4 B/parola = 9.8 x 105 B/s = 957.03 KB/s
Calcolatori Elettronici
18
Es.2 - Programmed I/O e DMA (c)
Es.3 - DMA “furto di ciclo” (13/4/2000)
c. Spiegare quali ‘passi’ sostituiscono le istruzioni nel caso DMA.
Risposta
• Il ‘controller’ DMA esegue le operazioni di generazione indirizzi
e conteggio dati trasferiti usando registri interni al controller
oltre, ovviamente, a trasferire i dati dalla periferica alla memoria.
•
Calcolatori Elettronici
Calcolatori Elettronici
19
•
•
Un modulo DMA trasferisce blocchi di dimensione 1 byte da una
periferica alla memoria alla velocità di 9600 bps, usando la
tecnica del furto di ciclo.
Si considerino 6 cicli per l’esecuzione di ogni istruzione.
Se il microprocessore esegue istruzioni alla velocità di 1 MIPS, di
quanto viene rallentato il microprocessore dai trasferimenti
DMA?
20
Es.3 - Risposta
Es.4 – DMA “furto di ciclo”
•
I dati vengono trasferiti dalla periferica alla memoria
intercalando i trasferimenti DMA con il normale flusso di
trasferimento delle istruzioni dalla memoria al processore (con
velocità 1.000.000 istr/s).
Il problema ci dice che un’istruzione viene eseguita in 6 cicli di
clock.
Il DMA trasferisce i dati con una frequenza pari a:
•
•
Pertanto in 1 secondo vi sono 1200 furti di ciclo.
L’equivalente numero di istruzioni è dato da:
•
•
La velocità di esecuzione scende dunque a 999800 istr/s
Ciò corrisponde ad un rallentamento pari a:
•
•
Un modulo DMA trasferisce blocchi della dimensione di 1 byte da
una periferica alla memoria usando la tecnica del furto di ciclo. La
durata di un ciclo di clock del bus e del processore coincidono. Si
consideri la suddivisione in fasi mostrata in figura con gli istanti in
cui è possibile fare un furto di ciclo (DMA breakpoints):
– (9600 bit/s)/8 bit = 1.2 kHz
– 1200/6 = 200 istruzioni
– 200/1000000 = 0.0002, ovvero dello 0.02%
Calcolatori Elettronici
DMA Breakpoints
21
Es.4 – DMA “furto di ciclo”
•
22
Es.4 - Soluzione
Sapendo che il microprocessore esegue istruzioni alla velocità di
1 MIPS:
1. Calcolare il massimo numero di furti di ciclo al secondo.
2. Se la velocità di trasferimento effettiva è di 28800 bps, calcolare
di quanto viene rallentato il microprocessore dai trasferimenti
DMA.
Calcolatori Elettronici
Calcolatori Elettronici
23
1. Il massimo numero è calcolabile ipotizzando che i 3 istanti in cui
è possibile fare un furto di ciclo vengano usati sistematicamente.
Quindi il numero di cicli per eseguire un’istruzione passa da 6 a
9, causando un decremento dell’instruction rate pari a 1/3 MIPS.
Per calcolare il numero dei cicli rubati è sufficiente considerare il
numero iniziale di cicli/istruzione richiesto e moltiplicarlo per il
decremento dell’instruction rate.
N(furti/s) = (6 cicli/istr.)*(0.33 M istr/s) = 2*106 cicli/s
Calcolatori Elettronici
24
Es.4 - Soluzione
2. Il numero di furti al secondo è facilmente calcolabile
considerando che in ogni furto di ciclo viene trasferito 1B:
28800 bit/s = 3600 B/s = 3600 furti/s
Poiché ci sono 6 cicli/istr. il numero di istruzioni al secondo
sottratto al processore vale:
N(istr./s) = 3600 / (6 cicli/istr.) = 600 istr./s
Il decremento sarà quindi di (600 istr./s) / (1000000 istr./s) =
= 0.0006 = 0.06 %
Calcolatori Elettronici
25