Influenza dell' I/O sulle prestazioni (globali) di un sistema

Documenti analoghi
Dispositivi di I/O. Dispositivi di I/O

Dispositivi di I/O. Dispositivi di I/O. Prestazioni degli hard disk. Dispositivi di I/O (2) Architetture dei Calcolatori (lettere A-I)

Esercizi vari. CPI e influenza cache

verso espandibili eterogenei tempo di accesso tempo di risposta throughput

Input / Output. M. Dominoni A.A. 2002/2003. Input/Output A.A. 2002/2003 1

Elettronica per l informatica. Cosa c è nell unità A. Unità A: Bus di comunicazione. A.1 Architetture di interconnessione A.2 Esempi commerciali

ESERCIZI e DOMANDE: I/O

aumenta il tempo di accesso; aumenta la capacità di memorizzazione; ma diminuisce il costo per bit.

Sottosistemi ed Architetture Memorie

Dischi e CPU. Alcuni esercizi sulle prestazioni

Mari, Buonanno, Sciuto Informatica e cultura dell informazione McGraw-Hill 3/1/2010

Organizzazione di un Calcolatore. Architetture dei Calcolatori (Lettere. Dispositivi di I/O. Dispositivi di I/O. Device Controller

Input / Output. Input e Output

Arch. Elab. - S. Orlando 2. Progetto del sottosistema di I/O influenzato da vari fattori (oltre alle. componenti del calcolatore: processore e memoria

Livello logico digitale bus e memorie

Elementi di informatica

La memoria secondaria

I bus. Sommario. Prof. Alberto Borghese Dipartimento di Scienze dell Informazione Università degli Studi di Milano

La memoria secondaria

Il bus. Bus di sistema: insieme di collegamenti (solitamente in rame) che connette tutti i componenti di un architettura

Confronto fra bus sincrono e bus asincrono: esempio.

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Dischi: Esercizio 1. Ora t.elab = n.cicli impiegati / Frequenza = / ( ) = 20ms

Componenti e connessioni. Capitolo 3

La memoria secondaria

Architettura dei calcolatori

Componenti principali

Memoria Centrale. Memoria Centrale. Memoria Centrale. Interazione CPU-memoria centrale 16/04/2008. Indirizzamento

Input e Output. Input / Output. Performance. Misure di banda e tempi di trasferimento

Architettura hardware

ELETTRONICA II. Prof. Dante Del Corso - Politecnico di Torino

DISCHI MAGNETICI: HARD DISK

Input/Output. bus, interfacce, periferiche

La memoria secondaria

Input / Output. M. Dominoni A.A. 2004/2005. Input/Output A.A. 2004/2005 1

Input/Output. bus, interfacce, periferiche

RIASSUNTO La codifica delle informazioni

I dischi magnetici. Informatica di Base -- Rossano Gaeta 33

I dischi ottici. Fondamenti di Informatica -- Rossano Gaeta

Superfici ad elevata permeabilità magnetica (m) ed elevato magnetismo residuo (B r ).

Il Sottosistema di Memoria

LA GESTIONE DELLA I/O

Criteri di caratterizzazione di una memoria

Pipeline. Esempio pipeline lineare a 5 stadi. Tempificazione S1 S2 S3 S4 S5. Istruzioni. Istruzione 4. Istruzione 3. Istruzione 2. tempo.

La memoria secondaria

Esame di INFORMATICA Lezione 4

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Periferiche: Memorie di massa, Ingresso/Uscita e reti. Mariagiovanna Sami

Periferiche. Fondamenti di informatica

I dischi ottici. Istituzioni di Informatica -- Rossano Gaeta 43

Memoria Virtuale e I/O

Valutazione delle prestazioni dei. Calcolatori Elettronici. Calcolatori Elettronici

Elementi di informatica

Strutture dei sistemi di calcolo

Esame di INFORMATICA ARCHITETTURA DI VON NEUMANN. Lezione 4 ARCHITETTURA DI VON NEUMANN

Abilità Informatiche e Telematiche

Corso di Calcolatori Elettronici I

memoria PSW R1 R2 CPU Struttura logica dell elaboratore unità di controllo ALU unità di ingresso unità organo coordinatore clock di uscita

Calcolatori Elettronici

Le Memorie. Si distinguono per: Supporti sui quali le informazioni vengono fisicamente memorizzate.

Il Sottosistema di Memoria

Gli Archivi. Prof. Francesco Accarino IIs Altiero Spinelli Sesto San Giovanni

Mari, Buonanno, Sciuto Informatica e cultura dell informazione McGraw-Hill

Sommario. Memorie di massa: tecnologie. Memorie di massa: memorie atte a memorizzare dati in modo non volatile. Tecnologie:

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 13 Luglio 2004

Capitolo 2: Strutture dei sistemi di calcolo

Architettura dei sistemi di elaborazione (La memoria parte 4)

Memoria Secondaria o di Massa

Calcolatori Elettronici

Esercitazione di Calcolatori Elettronici Ing. Battista Biggio. Corso di Laurea in Ingegneria Elettronica. Capitolo 7 Input/Output

Architettura del. Calcolatori (1) Calcolatori (2) L architettura di Von Neumann. CPU RAM Memoria I/O. secondaria. bus

A controllo di programma diretto A controllo di programma con polling Ad interruzione Ad accesso diretto alla memoria (DMA)

Architettura. Argomenti. Modello di Von Neumann. Corso di Laurea in Ingegneria Biomedica aa 2003/2004. Ing. Antonio Coronato. Modello di Von Neumann

Capitolo 7: Input/Output. Es.1 - Bus sincrono. Es.1 - Risposta (a)

Architettura hardware

Memoria Interna. Memoria Principale. Memoria Secondaria

Lezione 22 La Memoria Interna (1)

Corso di Calcolatori Elettronici I. Memorie. Prof. Roberto Canonico

Sistemi Operativi Esercizi Ricapitolazione. Docente: Claudio E. Palazzi

= 0, 098 ms. Da cui si ricava t 2 medio

Secondo biennio Articolazione Informatica Sistemi e Reti Prova Terza

Prestazioni & Co: CPU, Memoria, I/O

Architetture dei Calcolatori (Lettere

Informatica 3. LEZIONE 20: Ordinamento esterno. Modulo 1: Organizzazione della memoria Modulo 2: Ordinamento esterno

L input/output. Architettura degli Elaboratori e delle Reti

Architettura del calcolatore. Prima parte

MEMORIA CENTRALE MEMORIA CENTRALE INTERAZIONE CPU-MEMORIA CENTRALE

G L O S S A R I O. Fondamenti di Informatica I - Università degli Studi di Trento Dott. Roberti Pierluigi

Registri. Mem. cache. Mem. centrale. Dischi magnetici e/o ottici. Nastri magnetici. Memoria principale (o RAM) Memoria secondaria (o di massa)

Architettura dei calcolatori

VERIFICA DI SISTEMI. 5 Domanda [1 punto] Calcolare la velocità di trasferimento dei seguenti hard disk:

Blocchi di più parole

Introduzione Definizioni

Il Sottosistema di Memoria

Transcript:

Influenza dell' I/O sulle prestazioni (globali) di un sistema Tempo totale per l'esecuzione di un programma = tempo di CPU + tempo di I/O Supponiamo di avere un programma che viene eseguito in 100 secondi e che 90 di questi secondi siano di CPU, 10 siano dedicati ad operazioni di I/O. Supponiamo inoltre che le prestazioni della CPU possano migliorare nei prossi 5 anni del 50% ogni anno ma che la gestione dell' I/O rimanga immutata. Di quanto sara' più veloce il nostro programma tra 5 anni? -------------------------------------------------------------------------------- Miglioramento del tempo di CPU del 50% : Performance anno(i+1) CPU anno(i) Speedup = --------------------------- = ----------------- = 3/2 Performance anno(i) CPU anno(i+1) CPU anno(i) = CPU anno(i+1) + 1/2 CPU CPU anno(i+1) = 3/2 CPU anno(i+1)

tempo di CPU iniziale = CPU anno(0) = 90 sec. tempo di CPU dopo 1 anno = CPU anno(1) = 2/3 90 = 60 sec. tempo di CPU dopo 2 anni = CPU anno(2) = 2/3 60 = 40 sec. tempo di CPU dopo 3 anni = CPU anno(3) = 2/3 40 ~ 27sec. tempo di CPU dopo 4 anni = CPU anno(4) = ~18 sec. tempo di CPU dopo 5 anni = CPU anno(5) = ~12 sec. Dopo 5 anni lo speedup per il tempo di CPU e' tempo di CPU iniziale 90 -------------------------------- = ----- = 7.5 tempo di CPU dopo 5 anni 12 Poiché il tempo di I/O non varia, il tempo totale passa da 100 a 22 secondi. Lo speedup totale è quindi tempo totale iniziale 100 -------------------------------- = ------ = 4.5 tempo totale dopo 5 anni 22 La percentuale di tempo di I/O rispetto al tempo totale è aumentata negli anni: % I/0 iniziale = tempo I/O / tempo (anno 0) = 10/100=10% % I/0 dopo 1 anno = tempo I/O / tempo (anno 1) = 10/70 = 14% % I/0 dopo 2 anni = tempo I/O / tempo (anno 2) = 10/50 = 20% % I/0 dopo 3 anni = tempo I/O / tempo (anno 3) = 10/37 = 27% % I/0 dopo 4 anni = tempo I/O / tempo (anno 4) = 10/28 = 36% % I/0 dopo 5 anni = tempo I/O / tempo (anno 5) = 10/22 = 45%

Dischi magnetici o Hard disk Parametri significativi Numero di piatti. Diametro dei piatti (unità di misura: inch) Numero delle tracce Numero dei settori Dimensione del settore (unità di misura: byte) Frequenza di rotazione (unità di misura: RPM - numero di rotazioni al minuto) Cilindro: tutte le tracce sotto la testina di lettura in un dato istante. I tempi di accesso al disco dipendono dai tempi dedicati alle tre operazioni necessarie per accedere ad un dato: Tempo di posizionamento (seek time). Seek: è l'operazione di posizionamento della testina di lettura/scrittura sulla traccia desiderata. (Tempo medio: tra gli 8 e i 20 ms) Ritardo di rotazione (rotational latency o rotational delay). Quando la testina è posizionata sulla traccia corretta si deve attendere che la rotazione del disco porti il settore desiderato sotto la testina. Chiaramente dipende dalla frequenza di rotazione e dalla distanza del settore considerato. Come tempo medio si considera il tempo di una mezza rotazione, può essere tra 4 e 8 ms. Tempo di trasferimento. E' il tempo impiegato nel trasferimento di un blocco di bit (generalmente un settore). Questo dato dipende dalla dimensione del settore e dalla frequenza di trasferimento. Questa può variare tra 2 e 15 MB/sec. Considerando anche il controllo, ai tempi precedenti si deve aggiungere un'ulteriore componente: tempo del controllo.

Esempio Si supponga di avere un disco con settori di 512 byte, che ruota a 5400 RPM, con tempo medio di posizionamento (seek time) = 12 ms, frequenza di trasferimento pari a 5 MB/sec ed un tempo di controllo di 2 ms. Il tempo medio di posizionamento è dato dal problema = 12 ms. Il ritardo medio di rotazione, con una rotazione di 5400 RPM è 0.5 rotazione 0.5 60 sec 3 sec ----------------------------- = ------------------- = --------- = 5.6 ms 5400 rotazione /minuto 5400 540 Il tempo di trasferimento si ottiene considerando la dimensione del settore (512 byte) e la frequenza di trasferimento (5 MB/sec). 512 byte 0.5 KB ------------ = ----------- = 0.1 ms 5 MB/sec 5 KB/ ms Il tempo di controllo è dato dal problema: 2 ms. Sommando: (12 + 5.6 + 0.1 + 2 =) 19.7 ms

Osservazione Di norma quando si considera la banda di trasmissione nell I/O (bandwidth) la misurazione si fa in base 10. Esempio: 100 KB/sec = 100 000 =100 103 byte/sec 20 MB/sec = 20 000 000 =20 106 byte/sec Diversamente, quando si considerano le capacità di memoria si considerano le potenze di 2. Esempio: 1 KB = 1024 byte = 210 byte 2 KB = 2048 byte = 211 byte 4 KB = 4096 byte = 212 byte 1 MB = 1 048 576 byte = 220 byte Questo puo introdurre degli errori ma normalmente si accetta l approssimazione. ============= Esempio: Quanto tempo serve per trasferire 1 MB di dati con una frequenza di trsferimento di 1 MB/sec? 1 MB di dati = 1 048 576 byte trasferimento di 1 MB /sec = 1 000 000 byte/sec 1 048 576 / 1 000 000 = 1. 048 576 ~ 1

I BUS Collegamenti tra dispositivi I/O e CPU/ Un bus è un canale di comunicazione condiviso che offre il vantaggio di un facile estensione delle interconnessioni (è facile aggiungere nuovi dispositivi) ma anche lo svantaggio di essere un collo di bottiglia per le comunicazioni (e quindi influire negativamente sulle prestazioni del sistema di I/O). Fattori fisici limitanti: lunghezza del bus e numero di dispositivi collegati. Linee di controllo Linee Dati Processore Le linee di controllo vengono usate per segnalare delle richieste, confermare la ricezione o indicare il tipo di dato che sta transitando sulle linee dei dati. Le linee dei dati trasportano dati, comandi complessi, indirizzi

Una tipica transazione sul bus si compone delle due parti: invio dell indirizzo trasmissione (spedizione o ricezione) dei dati e si distingue nei due tipi: di read: dalla memoria al processore o ad un dispositivo di I/O di write: scrittura dei dati in memoria ma si usano anche i termini: di input (per il processore): dai dispositivi I/O alla memoria di output (per il processore): dalla memoria ai dispositivi I/O

Esempio: input da disco alla memoria Linee di controllo richiesta scrittura Linee Dati - indirizzo Processore Richiesta di scrittura (nella memoria) Linee di controllo Linee Dati Processore Trasferimento dei dati

Esempio: output dalla memoria a disco Linee di controllo: richiesta lettura Linee Dati : indirizzo Processore Richiesta di lettura (dalla memoria) Linee di controllo Linee Dati Processore Accesso ai dati in memoria Linee di controllo dati disponibili Linee Dati Processore Trasferimento dei dati

Tipi di Bus Bus processore-memoria: sono caratterizzati dal fatto d essere corti, ad alta velocità e progettati tenendo conto delle caratteristiche della memoria. Sono in genere progettati per un singolo calcolatore. Bus di I/O: sono generalmente lunghi, devono essere utilizzabili da molti dispositivi diversi. Sono in genere utilizzabili su macchine diverse. Normalmente non si interfacciano direttamente alla memoria. CPU Bus CPU- adattatore adattatore adattatore Bus I/O Bus I/O Bus I/O Bus generici di sistema (backplane): possono essere adottati per tutti gli scopi. Come i bus di I/O hanno caratteristiche standard che permettono il loro utilizzo su macchine diverse.

Bus sincroni e bus asincroni I bus sincroni includono un clock tra le linee di controllo. C e un protocollo prefissato (es: richiesta lettura dalla memoria al primo ciclo e scrittura dati su disco al quinto ciclo). Svantaggi: la stessa frequenza di clock deve valere per tutti i dispositivi collegati; i bus sincroni non possono essere troppo lunghi per non incorrere in problemi di sfasamento. Sono spesso sincroni i bus CPU- (collegano dispositivi con frequenze di clock molto elevate, non a grandi distanze) Nei bus asincroni il coordinamento per la trasmissione NON avviene tramite un clock ma si basa su di un protocollo detto handshaking (stretta di mano) che stabilisce una serie di passi che devono compiere mittente e destinatario, con il vincolo che ciascuno inizi il passo successivo solo con l' accordo di entrambi (stretta di mano). Per la realizzazione di questo protocollo servono alcuni segnali e linee di controllo.

Esempio: Richiesta di lettura di una parola di memoria. Assumiamo le seguenti tre segnali di controllo (e quindi tre linee di controllo) ReadReq. Indica una richiesta di lettura dalla memoria (viene inviato assieme all indirizzo) DataRdy. Indica che i dati richiesti sono pronti per essere trasferiti. Ack. Indica che un partner ha ricevuto il segnale (di lettura o di ready) inviato dall altro partner. E il segnale che permette all altro partner di procedere con il passo successivo.

ReadReq Ack DataRdy 1 2 2 3 4 5 6 7 Dati 1. Quando la memoria osserva il segnale ReadReq attivo, legge l indirizzo sul bus dei dati ed abilita il segnale Ack. 2. Quando il dispositivo di I/O vede il segnale Ack attivo, disabilita il segnale ReadReq e rilascia la linea dei dati. 3. Quando la memoria vede che ReadReq è stato disabilitato, disabilita Ack per dare un riscontro di ciò. 4. Quando la memoria ha i dati pronti attiva il segnale DataRdy e pone i dati sulle linee dei dati. 5. Quando il dispositivo di I/O vede il segnale DataRyd attivo legge i dati dal bus e segnala che ha prelevato i dati attivando Ack. 6. Quando la memoria vede il segnale Ack attivo, disabilita il segnale DataRdy e rilascia le linee dati. 7. Quando il dispositivo di I/O vede il segnale DataRdy disattivato, disattiva anche Ack e la trasmissione si conclude.

Dispositivo I/O indirizzo su bus dati; ReadReq:on Ack rilascia bus dati; ReadReq:off DataRdy Legge bus dati; Ack: on DataRdy 7: Ack: off 1 2 4 5 6 ReadReq legge l'indirizzo dal bus dati; Ack:on ReadReq 3: Ack: off Legge i dati e li mette sul bus; DataRdy: on Rilascia il bus dati; DataRdy:off Ack