L' interfaccia tra una periferica e un modulo di I/O può essere parallela o seriale. Nel primo caso, ci sono linee multiple che collegano il modulo di I/O e la periferica, quindi possono essere trasferiti più bit contemporaneamente; di solito questa interfaccia è impiegata per periferiche ad alta velocità, ad esempio dischi. L'interfaccia seriale, invece, dispone di una sola linea per il trasferimento dati e quindi viene trasmesso un bit alla volta; è utilizzata per le stampanti e le tastiere.

Vediamo ora in che modo il modulo di I/O dialoga con una periferica. Nel caso di un'operazione di scrittura, avviene la seguente sequenza di passi:

  • il modulo di I/O manda un segnale di controllo per richiedere il permesso di inviare dati.
  • la periferica conferma l'avvenuta ricezione della richiesta
  • il modulo di I/O invia i dati
  • la periferica conferma la ricezione dei dati.
Un'operazione di lettura si svolge in modo simile.

In figura

%DRAWING{modulo}%

si vede il buffer interno del modulo di I/O, in cui vengono memorizzati i dati che passano tra la periferica il resto del sistema, e permette così al modulo di I/O di compensare la differenza di velocità tra il bus di sistema e le linee esterne.


Inoltre, il collegamento tra modulo di I/O e i dispositivi esterni può essere punto-punto o a punti multipli. Il primo caso prevede una sola linea dedicata al trasferimento dei dati, ed è la soluzione tipicamente usata per le tastiere, le stampanti e i modem. Le interfacce esterne a punti multipli, invece, pur non essendo bus veri e propri, assomigliano molto a questi ultimi, e vengono usate, ad esempio, per i dispositivi multimediali (cd-rom, video, audio).


La memoria di un calcolatore è organizzata in una gerarchia, come in figura

%DRAWING{gerarchia}%

Man mano che si scende nella gerarchia di memoria, si riscontra una diminuzione del rapporto costo/bit e del tempo di accesso, ma un aumento della capacità. Ora proveremo a classificare i sistemi di memoria in base alle seguenti caratteristiche fondamentali.

  • posizione può essere interna o esterna. Quella interna, oltre alla memoria principale, comprende i registri e la cache. Quella esterna comprende invece i dispositivi periferici di memorizzazione, come i dischi e i nastri, a cui il processore può accedere tramite i moduli di I/O.
  • capacità espressa di solito in termini di byte (8 bit), ma anche in parole (8-16-32 bit).
  • unità di trasferimento che, per la memoria interna, corrisponde al numero di linee di dati utilizzate per il trasferimento da e verso il modulo di memoria. Va fatta la distinzione tra:
    • parola cioè l'unità in cui è organizzata la memoria, che ha di solito (ma non mancano le eccezioni) lunghezza pari ai bit utilizzati per rappresentare un numero oppure un'istruzione
    • unità indirizzabile: spesso è uguale alla parola, ma non mancano i sistemi che indirizzano in altri modi (ad esempio il MIPS R4000 simulato da Spim, ha una parola di 32 bit ma indirizza al byte).
    • unità di trasferimento il numero di bit letti o scritti contemporaneamente in memoria; non è richiesto che sia uguale alla parole, né all'unità indirizzabile.
  • metodo di accesso
    • sequenziale la memoria è organizzata in unità di dati dette record e gli accessi devono essere fatti secondo una sequenza lineare; è il metodo di accesso alle unità a nastro.
    • diretto si accede ad un record posizionandosi nelle sue vicinanze e poi procedendo con una ricerca sequenziale, un conteggio oppure un'attesa; tipico per le unità a disco.
    • casuale ogni locazione ha un unico meccanismo di indirizzamento cablato, quindi il tempo di accesso ad una data posizione è costante; al contrario, nei casi precedenti il tempo di accesso era molto variabile; è il metodo di accesso alla memoria principale.
    • associativo una parola viene recuperata in base ad una porzione del suo contenuto piuttosto che per il suo indirizzo; inoltre, così come per la memoria ad accesso casuale, ogni locazione ha un proprio meccanismo di indirizzamento quindi il tempo di accesso è costante; può essere utilizzato nelle memorie cache.
  • prestazioni
    • tempo di accesso per le memorie ad accesso casuale, questo valore coincide con l'intervallo di tempo a partire dal momento in cui viene presentato un indirizzo alla memoria al momento in cui i dati di quella locazione sono memorizzati, nel caso della scrittura, oppure resi disponibili, nel caso della lettura. Per le memorie ad accesso non casuale, invece, è il tempo di posizionamento del dispositivo sulla posizione indicata.
    • tempo di ciclo di memoria concetto legato soprattutto alla memoria ad accesso casuale; è dato dalla somma del tempo di accesso con il tempo richiesto prima di cominciare un eventuale accesso successivo.
    • velocità di trasferimento indica la velocità con cui i dati possono essere trasferiti da o verso l'unità di memoria; nelle memorie ad acceso casuale, councide con il valore 1/(tempo di ciclo). Per le memorie ad accesso casuale, invece, vale la formula
      • T_n = T_a + n/R, dove
        • T_n è il tempo medio per leggere o scrivere n bit
        • T_a è il tempo medio di accesso
        • R è la velocità di trasferimento in bit al secondo (bps).
  • organizzazione la disposizione dei bit che formano la parola
  • tipo fisico a semiconduttore (silicio), per la memoria interna; magnetico, per hard disk e floppy; supporto ottico, per i cd-rom.
  • caratteristiche fisiche in una memoria volatile, le informazioni scompaiono in assenza di corrente elettrica, (supporti a semiconduttore); in una memoria non volatile, invece, non è richiesto il passaggio di corrente elettrica per la conservazione dell'informazione (tutti gli altri supporti).


I problemi di progettazione della memoria derivano principalmente dal dover ottenere contemporaneamente buone prestazioni in termini di

  • dimensione
  • velocità
  • costo
Esistono molte teconologie con cui si può implementare una memoria; pur essendo differenti tra di loro, in tutte valgono le seguenti relazioni:
  • minore è il tempo di accesso e maggiore è il costo per bit
  • maggiore è la dimensione e minore è il costo per bit
  • maggiore è la dimensione e maggiore è il tempo di accesso.

Per soddisfare tutte queste esigenze, non viene impiegata una sola tecnologia di memoria, ma una gerarchia di memoria.

In realtà la soluzione al problema non si ferma alla gerarchia di memoria, infatti vengono studiate tecniche per:

  • sviluppare metodi di allocazione al fine di ottenere un uso efficiente della memoria
  • liberare l'utente dalla gestione della memoria con tecniche di memoria virtuale
  • interconnettere i dispositivi in modo da collegare facilmente memoria e CPU, al fine di consentire al processore di lavorare alla massima velocità.

-- GiuseppeMacario - 15 Oct 2002
Topic attachments
I Attachment History Action Size Date Who Comment
GIFgif 468-60.gif r1 manage 12.3 K 2003-05-30 - 18:49 GiuseppeMacario  
Unknown file formatdraw gerarchia.draw r1 manage 1.7 K 2002-10-15 - 14:28 GiuseppeMacario  
GIFgif gerarchia.gif r1 manage 3.0 K 2002-10-15 - 14:28 GiuseppeMacario  
GIFgif join.gif r1 manage 1.6 K 2003-05-30 - 18:49 GiuseppeMacario  
Unknown file formatdraw modulo.draw r3 r2 r1 manage 2.1 K 2002-10-15 - 14:40 GiuseppeMacario  
GIFgif modulo.gif r3 r2 r1 manage 2.5 K 2002-10-15 - 14:40 GiuseppeMacario  
Edit | Attach | Watch | Print version | History: r6 < r5 < r4 < r3 < r2 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r6 - 2003-05-30 - GiuseppeMacario






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback