SISTEMI A MICROPROCESSORE N. 03 UNITÀ di MEMORIA La MEMORIA e` un dispositivo che ha la funzione di conservare nel tempo le diverse informazioni (istruzioni, dati, risultati), opportunamente codificate. MEMORIA DI MASSA : unità di memoria in cui vengono salvati i programmi, o memorizzati gli archivi dei dati. Queste memorie sono generalmente realizzate con materiali magnetici (dischi) e sono non volatili, conservano cioè l' informazione anche in assenza di tensione di alimentazione. MEMORIA CENTRALE : memoria di lavoro del sistema, in cui sono memorizzati i programmi da eseguire, i dati su cui operare e i risultati. Di seguito faremo sempre riferimento a questo tipo di memoria, chiamandola genericamente col nome di "memoria". Queste memorie sono generalmente realizzate con elementi a semiconduttore. La MEMORIA e` suddivisa in locazioni di uguale lunghezza (stesso numero di bit) e le operazioni di lettura o scrittura sono generalmente relative ad una singola locazione alla volta. Ad ogni locazione di memoria è associato un INDIRIZZO, espresso da un numero binario. Per individuare ed accedere ad una locazione di memoria è necessario fornire il suo INDIRIZZO Schema di una MEMORIA: DATI : canale di collegamento al bus dati, in cui transitano le informazioni da leggere e da scrivere. DATI INDIRIZZO UNITÀ DI MEMORIA INDIRIZZO : canale collegato all’address bus, in cui transita l’indirizzo della locazione su cui scrivere o leggere. ENABLE : attiva o disattiva l’unità di memoria. ENABLE RD/WR: segnale di controllo che stabilisce se l’ operazione da svolgere è di lettura o di scrittura. RD/WR Quando ENABLE e RD sono attivi, sul bus dati viene inviato il contenuto della locazione di memoria indirizzata. Quando ENABLE e WR sono attivi, nella locazione di memoria indirizzata viene memorizzata l' informazione binaria presente sul bus dati. 1 SCHEMA A BLOCCHI DI UNA MEMORIA INDIRIZZO MATRICE DELLE LOCAZIONI DI MEMORIA SISTEMA DI DECODIFICA DEGLI INDIRIZZI CONTROLLO DI INPUT-OUTPUT DEI DATI DATI WR/RD CS PARAMETRI CARATTERISTICI DI UNA MEMORIA : . Grado di parallelismo : numero di bit di cui e` composta la parola di memoria (valori tipici : 1, 4, 8, 16 bit) Coincide col numero di bit del canale DATI. . Indirizzabilità : numero di locazioni presenti nella memoria (è uguale a 2^N, con N = numero di bit del canale INDIRIZZO) . Capacità: numero di locazioni * grado di parallelismo Ad esempio una memoria con un bus degli indirizzi di 10 bit e un bus dei dati di 4 bit ha una CAPACITÀ di 1024 * 4 = 4096 BIT. CARATTERISTICHE ELETTRICHE DI UNA MEMORIA Le caratteristiche statiche fondamentali sono : valori ammessi per la tensione di alimentazione valori di tensione di ingresso considerati a livello logico alto o basso correnti assorbite o erogate dagli ingressi a tali livelli di tensione analoghi valori per le tensioni di uscita valori di corrente erogati o assorbiti con l’uscita nello stato di alta impedenza Le caratteristiche dinamiche indicano i legami temporali fra i diversi segnali in gioco e forniscono informazioni sulla sequenza con cui gli ingressi della memoria devono essere attivati per effettuare operazioni richieste. Tali caratteristiche si desumono dai diagrammi temporali che descrivono i cicli di lettura e scrittura delle memorie. Per informazioni più dettagliate esaminare il Data Sheet di una memoria. 2 LE MEMORIE SI SUDDIVIDONO IN DUE CATEGORIE FONDAMENTALI : RAM Memorie che permettono di eseguire sia l'operazione di lettura che quella di scrittura : in esse vengono memorizzati i dati, i risultati e i programmi in fase di messa a punto. Sono memorie di tipo volatile, cioè per conservare l'informazione hanno bisogno di energia elettrica. A seconda di come viene conservata l'informazione, le RAM vengono classificate in : STATICHE : RAM costituite di flip-flop; in esse l'informazione è mantenuta finché è presente la tensione di alimentazione. DINAMICHE : RAM costituite di condensatori la cui carica tende progressivamente a disperdersi. In questo caso per conservare l'informazione è necessario ripristinare periodicamente le cariche sui condensatori. Questa operazione e` chiamata di rinfresco e viene svolta dal microprocessore. ROM Memorie che permettono solo la lettura della informazione. Queste memorie sono di tipo non volatile e vengono utilizzate per memorizzare programmi o dati che non devono subire modificazioni. Le ROM si suddividono in : ROM vere e proprie : ROM il cui contenuto viene fissato all' atto della costruzione, dopo di ché non possono più subire modifiche. PROM (ROM Programmabili) : ROM il cui contenuto può essere programmato dall'utilizzatore con opportune tecniche. Le PROM sono però programmabili una volta sola; perciò dopo essere state programmate la prima volta non possono più subire modifiche. EPROM (ROM Programmabili e Cancellabili) : ROM il cui contenuto può essere programmato più volte dall' utilizzatore, previa precedente operazione di cancellazione (con radiazioni ultraviolette). La modifica anche di una sola parola comporta però la cancellazione e la riprogrammazione dell' intera memoria. L' operazione di programmazione delle EPROM si attua mediante l' impiego di appositi strumenti chiamati : programmatori di eprom. EEPROM : vengono programmate dallo stesso microcomputer, con l' aggiunta di uno specifico circuito. In questo caso è possibile la modifica anche di una sola parola alla volta (non vanno però confuse con le RAM). 3 DECODIFICA DI UN BANCO DI MEMORIA Generalmente le linee di indirizzamento delle singole unità di memoria (RAM o ROM) sono in numero inferiore a quelle dell' Address Bus del Microprocessore. Pertanto la memoria centrale di un sistema a microprocessore può essere costituita da varie RAM e ROM. L'insieme delle RAM e delle ROM del sistema prende il nome di BANCO DI MEMORIA. L’indirizzamento delle locazioni di un banco di memoria avviene nel seguente modo : . le linee di maggior peso dell' Address bus, opportunamente decodificate, vengono utilizzate per selezionare le varie unità di memorie (RAM o ROM) presenti nel banco; . le linee di peso inferiore dell' Address bus vengono collegate alle linee di indirizzo di ciascuna RAM o ROM e servono a selezionare le singole locazioni. ESEMPIO N. 1 A15 A14 A13 BANCO DI MEMORIA CON UNA SOLA RAM (locazioni con indirizzo 0000H - 1FFFH) OR CE A12 BUS DATI RAM A0 R/W ESEMPIO N. 2 R/W BANCO DI MEMORIA CON 7 RAM E 1 ROM DI CAPACITÀ 8K * 8 BIT (locazioni con indirizzo 0000H - FFFFH) Da disegnare per esercizio. MICROP.03 4