verso espandibili eterogenei tempo di accesso tempo di risposta throughput

Documenti analoghi
verso espandibili eterogenei tempo di accesso tempo di risposta throughput

verso espandibili eterogenei tempo di accesso tempo di risposta throughput

Input/Output. bus, interfacce, periferiche

Input/Output. bus, interfacce, periferiche

Input/Output. bus, interfacce, periferiche

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

L input/output. Architettura degli Elaboratori e delle Reti

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

Dispositivi di I/O. Dispositivi di I/O

Input/Output: bus, interfacce, periferiche

Input/Output (I/O) bus, interfacce, periferiche

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

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

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

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

I/O: tecniche di controllo Memorie di massa

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

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

Le interconnessioni tra i dispositivi. Sommario

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

I/O: tecniche di controllo Memorie di massa

I/O: tecniche di controllo Memorie di massa

Corso di Calcolatori Elettronici I

Struttura dei Sistemi di Calcolo

Le interconnessioni tra i dispositivi

Metodo di arbitraggio

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

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

Componenti principali

Componenti e connessioni. Capitolo 3

Tipi di Bus. Bus sincrono. Comunicazioni nell elaboratore (e oltre) Bus sincroni e asincroni Standard commerciali (PCI,SCSI,USB)

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

ISA Input / Output (I/O) Data register Controller

Sistemi Operativi. Sottosistema di I/O

Il problema dello I/O e gli Interrupt. Appunti di Sistemi per la cl. 4 sez. D A cura del prof. Ing. Mario Catalano

LA GESTIONE DELLA I/O

Architettura dei sistemi di elaborazione (Input/Output parte 1)

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

La gestione dell I/O (Cap. 5, Tanenbaum)

Input/Output (Cap. 7, Stallings)

IO 1 Input Output a livello Hardware

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

Architettura di un elaboratore. Il modello di von Neumann

Sistemi Operativi SISTEMI DI INPUT/OUTPUT. D. Talia - UNICAL. Sistemi Operativi 10.1

I/O. Interfacciamento di una periferica. Architettura di un elaboratore. L input/output Parte VI. Architettura degli Elaboratori e delle Reti

Un semplice commutatore a pacchetto

Università degli Studi di Cassino

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

Caratteristiche di un PC

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

Architettura del calcolatore: gerarchia delle memorie, coprocessori, bus (cenni)

PD-32. Connessione di dispositivi esterni (periferiche)

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

Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel

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

Il sistema di I/O. Calcolatori Elettronici

Input/Output. Input/Output

Secondo biennio Articolazione Informatica Sistemi e Reti Prova Terza

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

Il sistema di I/O. Sistemi Operativi 13.1

Strutture dei sistemi di calcolo

Università degli Studi di Cassino e del Lazio Meridionale

Calcolatori Elettronici Parte V: Bus. Prof. Riccardo Torlone Universita di Roma Tre

ARCHITETTURA DEL CALCOLATORE

ESERCIZI e DOMANDE: I/O

Architettura hardware

Livelli del sottosistema di I/O

Tecniche di gestione dell I/O

Sottosistemi ed Architetture Memorie

Principali periferiche

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

Elementi di informatica

I dispositivi di input/output

Gestione software Il meccanismo delle interruzioni - 3

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

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

Bootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO:

Cenni sull architettura del calcolatore

Modulo: Elementi di Informatica

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Esame di INFORMATICA Lezione 4

Capitolo 2: Strutture dei sistemi di calcolo

AXO Architettura dei Calcolatori e Sistema Operativo. gestione di IO e interfacciamento a bus

Architettura di von Neumann

Architettura dei sistemi di elaborazione (Input/Output parte 2)

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.

Architettura hardware

Informatica di Base - 6 c.f.u.

Il modello di Von Neumann

4 La gestione dell I/O Indice. 4.2 Modelli di funzionamento Modello di coda - 1. I/O come collo di bottiglia. Misura delle prestazioni.

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Il Processore. Informatica di Base -- R.Gaeta 27

Livello logico digitale bus e memorie

Gestione dell Input / Output. Prof. Alberto Borghese Dipartimento di Informatica Università degli Studi di Milano

Il Sottosistema di Memoria

Corso di Informatica

Architettura del calcolatore: gerarchia delle memorie, coprocessori, bus (cenni)

Transcript:

I/O Un calcolatore è completamente inutile senza la possibile di caricare/ salvare dati e di comunicare con l esterno Input / Output (I/O): insieme di architetture e dispositivi per il trasferimento di informazione da (Out) e verso (In) l elaboratore I dispositivi di I/O devono essere espandibili eterogenei I dispositivi di I/O sono molto vari e la tipologia di prestazione è diversa In alcuni caso interessa il tempo di accesso (la latenza) e il tempo di risposta Es. dispositivi interattivi come tastiere o mouse In altri casi siamo interessati al throughput Es. dischi o interfacce di rete

Classificazione dispositivi I/O I dispositivi di I/O sono di vario tipo e possono essere classificati in vari modi Comportamento: Che operazioni posso effettuare con il dispositivo (R/W) Partner: può essere un uomo o una macchina Velocità di trasferimento: tipicamente misurata in Mbit/s

Classificazione dispositivi I/O

Bus Come collegare CPU e periferiche? Connessione completa? Bus: percorso comune che connette i diversi dispositivi Vantaggi: elevata flessibilità, semplicità, basso costo Svantaggi: gestione complessa del canale condiviso

Tipologie di Bus Esistono tre tipi di bus: Bus processore/memoria: specializzati, corti e veloci (es. northbridge/southbridge) Bus di sistema: Servono per far coesistere la memoria, il processore e i dispositivi di I/O su di un unico bus (es. PCI, ISA) Bus IO: possono essere lunghi e permettono il collegamento con periferiche eterogenee (es. USB, Ethernet) i bus di IO non sono tipicamente collegati alla memoria in maniera diretta ma richiedono un bus processore/memoria o un bus di sistema Nelle prime architetture avevamo un unico grosso bus parallelo che collegava tutto Per problemi di clock e frequenze ora si usano architetture di comunicazione più complesse fatte di bus paralleli condivisi e di bus seriali punto/punto

Anatomia di un Bus Bus: infrastruttura di comunicazione tra diverse unità dell elaboratore. Suddivisione logica in tre sezioni: Bus dati: le linee per trasferire dati e istruzioni da/verso i dispositivi. Bus indirizzi: su cui la CPU trasmette gli indirizzi di memoria (o di periferica) che identificano il dato, in lettura/scrittura dalla memoria (o ingresso/uscita da periferica). Bus di controllo: trasporta informazioni ausiliarie per la definizione delle operazioni da compiere e per la sincronizzazione tra i dispositivi. Esempio: lettura dalla memoria 1. La CPU fornisce l indirizzo della parola desiderata sul bus indirizzi 2. Viene richiesta l operazione di lettura attivando il bus di controllo 3. Quando la memoria ha reso disponibile la parola richiesta, il dato viene trasferito sul bus dati e la CPU può prelevarlo dal bus dati ed utilizzarlo nelle sue elaborazioni

Esempio: Pentium 4

Comunicazioni su Bus Problematiche da risolvere nella comunicazione tramite BUS: Sincronizzazione Il bus è condiviso, quindi si può trasmettere sul bus soltanto uno alla volta Necessario un meccanismo di sincronizzazione per coordinare la comunicazione Comunicazione sincrona bus sincrono Comunicazione scandita da un segnale di clock comune Comunicazione asincrona bus asincrono Non esiste un clock; sincronizzazione mediante dialogo fra i partecipanti Controllo di flusso I dispositivi collegati al bus hanno differenti velocità e tempistiche di risposta e di comunicazione. Solitamente all interno dei dispositivi sono presenti buffer, per memorizzare temporaneamente l informazione e non essere limitati dal dispositivo più lento. Dimensionamento del buffer: Buffer grossi Aumenta la velocità di trasferimento Buffer piccoli Riduce i tempi di risposta (latenza)

Bus Sincrono Il bus è dotato di un segnale di sincronizzazione (bus clock) Comunicazione scandita dai cicli di bus clock in generale diverso da quello della CPU, ma sincronizzato con esso Vantaggi I protocolli sincroni permettono di ottenere bus molto veloci Svantaggi Ogni device deve essere sincronizzato complessità, alto costo Tutti i dispositivi devono potere lavorare alla frequenza imposta dal bus clock Lunghezza massima limitata (i ritardi nei fronti dovuti alla propagazione producono disallineamenti) I bus processore-memoria sono in genere sincroni: hanno dimensioni ridotte, pochi elementi connessi e devono essere veloci Ciclo di bus (bus cycle): n. cicli per effettuare una transazione (2 5 CC)

Bus Sincrono: lettura mem CPU

Bus Asincrono Un bus asincrono non è dotato di clock La comunicazione avviene mediante un protocollo di handshaking Vantaggi: possono avere lunghezza elevata e connettere molti dispositivi (spesso i bus esterni sono asincroni) Svantaggi: in genere, bassa velocità di trasferimento dati Esempio: comunicazione Master/Slave: Master controlla la comunicazione Segnali: Master_Sync: 0: master ready, 1: master release Slave_Sync: 0: slave ready, 1: slave release

Bus Asincrono: lettura mem CPU

Condivisione del bus Cosa succede quando si hanno più di 2 dispositivi connessi al bus? L architettura più semplice: Master/Slave un unico bus master ( padrone del BUS) tutti gli altri dispositivi sono slaves Tutte le comunicazioni vengono dirette dal master Questo può creare un collo di bottiglia, per esempio nel caso di trasferimento di dati da I/O a memoria. Architetture con più dispositivi master: occorre definire e rispettare una politica che coordini i diversi bus master arbitraggio del bus questo è il principale inconveniente dei bus a nodo comune.

Arbitraggio Occorre stabilire quale master autorizzare all utilizzo del bus Arbitraggio centralizzato: arbitro unico, che decide per gli altri Arbitraggio distribuito: decisione distribuita nel sistema Meccanismo di accesso al bus: 1. Richiesta del bus BUS REQUEST 2. Assegnamento del bus BUS GRANT Problema: assicurare sia fairness che efficienza Qualità contrastanti si cerca un compromesso

Esempi

Periferica: dispositivo per ingresso/uscita di informazioni, collegato alla CPU mediante bus e/ o interfacce Interfaccia: procedura standardizzata (hw/sw: circuiti/protocolli) per la comunicazione. hardware: controllore della periferica software: driver Periferiche

Classificazione delle interfacce Modalità di trasferimento dati: Seriale: 1 bit alla volta (RS-232, Ethernet, USB, Firewire) Parallela: più bit alla volta (SCSI, IDE) Topologia del collegamento Punto-punto (RS-232, Firewire,...) A canale condiviso (bus) (Ethernet, Bluetooth, USB,...) Mezzo trasmissivo Via cavo Cavi in rame, Fibre ottiche Wireless Infrarossi (IrDA) Onde radio (Bluetooth, WiFi, ZigBee, NFC)

Struttura di un interfaccia Interfaccia di I/O Registro di stato Registro dati Unità di controllo dell interfaccia Periferica Bus indirizzi Bus dati Bus di controllo

Indirizzamento I/O Come si accede alle periferiche da programma? Due modalità fondamentali: Memory-mapped: Come se si accedesse a celle della memoria principale Necessità di distinguere tra indirizzi di memoria e indirizzi di I/O Mediante istruzioni speciali di I/O: Istruzioni appartenente alla ISA che indirizzano direttamente il dispositivo Nell istruzione è contenuto: Numero identificativo del dispositivo Parola di comando (o indirizzo della parola di comando)

Indirizzamento Memory-mapped I registri dell interfaccia sono considerati come celle di memoria RAM. I loro indirizzi saranno diversi da quelli delle celle di memoria. Il processore esegue operazioni di I/O come se fossero operazioni di lettura/scrittura in memoria. Esempio: sw $s0, indirizzo lw $s0, indirizzo dove indirizzo è al di fuori dallo spazio fisico della memoria

Indirizzamento Memory-mapped I controller ascoltano tutti i segnali in transito sul bus (bus snooping) e si attivano solamente quando riconoscono sul bus indirizzi l indirizzo corrispondente alla propria locazione di memoria. Gestione indirizzi di I/O in modalità memory-mapped Gli indirizzi riservati ai registri dell interfaccia corrispondono di norma a porzioni di memoria riservate al SO Non sono accessibili quindi al programma utente. I programmi utente devono quindi passare dal S.O. per accedere a questi indirizzi riservati (modalità kernel) Questo è quanto viene fatto ricorrendo alle: syscall

Trasmissione/ricezione dati Tecniche di controllo I/O a controllo di programma diretto a controllo di programma con polling ad interruzione (interrupt) ad accesso diretto alla memoria (DMA)

I/O a controllo di programma La periferica ha un ruolo passivo. La CPU si occupa sia del controllo, sia del trasferimento dati. La CPU, dopo avere predisposto l interfaccia all esecuzione dell I/O, si ferma e si mette ad interrogare il registro di stato della periferica in attesa che il ready bit assuma un determinato valore. while (ready_bit == 0) {} Vantaggio: risposta veloce al ready bit Svantaggio: CPU bloccata in stato di busy waiting o spin lock

Prestazioni Tastiera a controllo di programma Tastiera gestita a controllo di programma che opera a 10 byte/s. Frequenza di clock: 50 MHz Determinare il tempo in cui verrebbe effettivamente utilizzata la CPU per trasferire 1 word (32 bit), tenendo conto che ci vogliono 20 cicli di clock per ogni byte Tempo di trasferimento T = 4 byte/word / 0.01 KB/sec = 0.4 sec/word CC/word = 50 x 10 6 x 0.4 = 2 x 10 7 In realtà utilizziamo solo: 20 x 4 = 80 CC per trasferire 1 word Sfruttamento CPU: (80 / 2 x10 7 ) = 4 x 10 6 = 0.0004 % Prestazioni I/O a controllo di programma: + Risposta molto veloce (bassa latenza) Alta probabilità di spin lock

Polling Interrogazione ciclica (non bloccante) dello stato di tutte le periferiche Interrogazione del registro di stato della periferica In presenza di uno stato di busy waiting su una periferica, si esegue il polling sulle altre periferiche di I/O Se la periferica interrogata necessita di intervento: si soddisfa la richiesta quindi si prosegue il ciclo di polling sulle altre periferiche LOOP: if (ready_bit(tastiera) == 1) { read(tastiera)}; if (ready_bit(mouse) == 1) { read(mouse)}; if (ready_bit(video) == 1) { write(video)}; goto LOOP;

Prestazioni Data una CPU con clock f = 500 MHz, e polling che impiega 400 CC, determinare l impatto del polling per 3 dispositivi diversi: Mouse: deve essere interrogato almeno 30 volte al secondo per non perdere alcun movimento dell utente. Floppy disk: trasferisce dati al processore in parole da 16 bit ad una velocità di 50 KB/s Hard disk: trasferisce dati al processore in blocchi di 4 word alla velocità di 4 MB/s Mouse: 30 x 400 = 12,000 CC/sec 12,000 / 500,000,000 = 0.000024 = 0.0024% Piccolo impatto sulle prestazioni Floppy disk: Per ogni accesso possiamo trasferire 2 Bytes A 50 KB/sec occorrono 25,600 accessi/sec ~ 25,000 accessi/sec In termini di cicli di clock: 25,000 x 400 = 10,000,000 CC/sec 10,000,000 / 500,000,000 = 0.02 = 2% Medio impatto sulle prestazioni

Prestazioni Hard disk: Per ogni accesso possiamo trasferire 16 Byte A 4 MB/sec occorrono 262,144 accessi/sec ~ 250,000 accessi/ sec In termini di cicli di clock: 250,000 x 400 = 100,000,000 CC/sec 100,000,000 / 500,000,000 = 0.2 = 20% Alto impatto sulle prestazioni Polling dura più del controllo da programma, ma non è bloccante! + Risolve il problema dello spin lock Risposta meno veloce che nel controllo di programma (maggiore latenza)

Controllo a interruzione La periferica segnala alla CPU di avere bisogno di attenzione mediante un apposito segnale (nel bus di controllo) Funzionamento del meccanismo di interrupt: 1. La periferica che necessita di attenzione avvisa il processore, attivando il segnale: interrupt request 2. Quando il processore se ne accorge (fase di fetch), informa di averlo ricevuto mediante il segnale: interrupt acknowledge 3. Il processore abbandona l esecuzione del programma corrente e passa ad eseguire la procedura di risposta all interrupt 4. Terminata la procedura di risposta, il processore riprende l esecuzione del programma interrotto Il programma utente deve in seguito poter procedere dal punto in cui è stato interrotto è necessario effettuare un salvataggio del contesto

Esempio Esempio: gestione di una stampa mediante interrupt 1. Invio del comando print alla periferica di stampa 2. Se la periferica è in stato busy, la CPU torna alla sua attività, ma prima scrive nel registro di controllo la richiesta di output 3. Quando la periferica diventa ready, viene inviato un interrupt: interrupt request 4. Il programma di risposta all interrupt provvederà a trasferire alla periferica il dato che si vuole stampare 5. Terminato di servire l interrupt, riprende l esecuzione del programma originario, dal punto di interruzione

Interrupt multipli possono essere gestiti in due modi: Accodamento degli interrupt FIFO Annidamento degli interrupt LIFO Occorre definire una priorità! Maschere di interrupt Ad ogni interrupt viene associato un livello Il livello corrente è associato allo stato del sistema Interrupts allo stesso livello sono accodati FIFO La maschera dell interrupt viene memorizzata nello status register (registro di stato del sistema 8 livelli in MIPS) La maschera degli interrupt pending viene caricata nel cause register. Per ogni bit a 1, c è un interrupt pending per quel livello Codifica di priorità Interruzioni multiple

Direct Memory Access Limiti della gestione interrupt-driven: la gestione mediante interrupt non svincola il processore dal dovere eseguire le operazioni di trasferimento [PERIFERICA CPU] [CPU MEMORIA] Per periferiche veloci, le operazioni di trasferimento dati occupano un tempo preponderante rispetto al tempo speso in spin-lock Per evitare l intervento della CPU nella fase di trasferimento dati, è stato introdotto il protocollo di trasferimento: Direct Memory Access (DMA)

Controllore DMA Processore specializzato nel trasferimento dati tra dispositivi di I/O e memoria centrale Per attivare il trasferimento, viene la CPU invia al controllore DMA le seguenti informazioni: il tipo di operazione richiesta l indirizzo da cui iniziare a leggere/scrivere i dati il numero di bytes riservati in memoria centrale Il DMA controller gestisce il trasferimento dei dati: la CPU si svincola completamente dall operazione di I/O Dopo avere trasferito tutti i dati, il DMA controller invia un interrupt request alla CPU per segnalare il completamento del trasferimento.

Prestazioni I/O da hard disk con DMA Frequenza di clock: 500 Mhz Trasferimento di blocchi di 8 KB per ogni DMA Trasferimento a 4 MB/s Il costo dell inizializzazione del DMA è di 1000 CC Il costo dell interruzione al termine del DMA è di 500 CC Per ciascun trasferimento DMA occorre: 1000 + 500 CC (tempo di inizio + tempo di fine) Numero di DMA/sec: 4 MB/s / 8 KB = 500 DMA/sec Numero CC richiesti: 1500 CC/DMA x 500 DMA/sec = 750 x 10 3 CC/sec Frazione del processore utilizzata: 750 x 10 3 CC/sec / 500 x 10 6 sec/cc = 0.2 %