Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili
Sistemi Elettronici Programmabili: Riepilogo 2 Logic Devices ASIC (Application Specific Integrated Circuit) Standard Cell Gate Array PLD (Programmable Logic Devices) SPLD (Simple PLD) –PLA (Programmable Logic Array) –PAL (Programmable Array Logic) –GAL (Generic Array Logic) CPLD (Complex PLD) FPGA
Sistemi Elettronici Programmabili: Riepilogo 3 FPGA: Architettura
Sistemi Elettronici Programmabili: Riepilogo 4 FPGA: Logic Element (Block)
Sistemi Elettronici Programmabili: Riepilogo 5 FPGA: LUT – Look Up Table (2 Ingressi)
Sistemi Elettronici Programmabili: Riepilogo 6 Unità (Sottosistemi) del Calcolatore Processore, per eseguire il programma Unità di ingresso-uscita (o di input-output, I/O), per introdurre dati ed emettere risultati Unità di memoria, per contenere e conservare informazioni (dati e programmi Sistema di collegamento: bus
Sistemi Elettronici Programmabili: Riepilogo 7 Istruzione e Dato L’elemento di informazione minimo trattato dal calcolatore è la parola: –parola: sequenza di bit 0 o 1 (p. es. 8, 16, 32 o 64 bit) Sia il dato (intero, carattere, ecc) sia l’istruzione macchina sono codificati in parole, secondo varie rappresentazioni. Dati e istruzioni complessi sono codificati mediante sequenze di più parole. Il processore elabora parole e la memoria contiene parole (e anche il sistema di I/O scambia parole).
Sistemi Elettronici Programmabili: Riepilogo 8 Processore e Memoria Processore e memoria sono i due sistemi fondamentali del calcolatore (e sempre necessariamente presenti). Il processore contiene svariati registri interni, per comunicare con la memoria: Contatore di programma (program counter, PC) Registro di istruzione (instruction register, IR) Registri di uso generale o banco di registri (register file, R0 – Rn 1) Registro di indirizzo di memoria (memory address register, MAR) e registro dei dati di memoria (memory data register, MDR)
Sistemi Elettronici Programmabili: Riepilogo 9 Architetture Interne dei Microprocessori
Sistemi Elettronici Programmabili: Riepilogo 10 Il microcalcolatore CPU Decoder Flash RAM ADD (n) ADD (n-1) nCS0 nCS1 nOE nWE Data nOE nWE nOE nWE
Sistemi Elettronici Programmabili: Riepilogo 11 Microprocessore
Sistemi Elettronici Programmabili: Riepilogo 12 Linguaggio macchina Il linguaggio macchina in forma simbolica è chiamato anche linguaggio assemblatore o assembly language. L’istruzione macchina è il compito elementare eseguibile da parte del processore. Il processore preleva (fetch) da memoria centrale l’istruzione macchina da eseguire correntemente. Il processore decodifica (decode) l’istruzione, cioè la analizza e ne determina il significato. Il processore esegue (execute) l’istruzione, elaborando i dati opportuni e producendo il risultato.
Sistemi Elettronici Programmabili: Riepilogo 13 Dati e istruzioni in memoria La memoria contiene istruzioni macchina (programma) e dati (da elaborare). L’istruzione macchina, in forma numerica cioè eseguibile da parte del processore, è contenuta in una o più parole di memoria consecutive, come il dato. L’istruzione macchina in forma simbolica, facilmente leggibile, come per esempio NOMEarg1, arg2, …commento indica con “NOME” (o codice mnemonico) l’operazione: MOVE (carica, memorizza o copia dato), ADD (addiziona dato), SUB (sottrai), ecc. e con “arg1, arg2, ecc. i dati su cui l’istruzione deve operare (sorgente) o dove scrivere il risultato (destinazione), o anche, nelle istruzioni di salto, dove reperire la prossima istruzione da eseguire (salto). Istruzioni a due, tre o un argomento. Normalmente gli argomenti sorgente precedono quelli destinazione..
Sistemi Elettronici Programmabili: Riepilogo 14 Formalismo RTL L’operatore freccia verso sinistra “ ” funziona in sostanza come operatore di assegnamento: destinazione valore origine valore Tipicamente l’origine del valore è una costante, un numero contenuto in un registro, una parola di memoria o un’espressione aritmetica tra oggetti di tale genere. L’indirizzo è un numero (positivo o al minimo nullo) e anche il dato lo è, o lo si può facilmente ridurre a numero (carattere – codice ASCII). Indirizzo in parentesi quadra
Sistemi Elettronici Programmabili: Riepilogo 15 Classi di Istruzione Istruzioni di trasferimento (caricamento, memorizzazione e copia) Istruzioni aritmetiche e logiche Istruzioni di ingresso e uscita (lettura o scrittura di dato da o su periferica) Istruzioni di confronto (confronto tra due dati (uguale, diverso, minore, maggiore, minore o uguale, maggiore o uguale) o di un dato con zero, esame di bit o di gruppo di bit Istruzioni di manipolazione dati complessi (gestione della pila) Istruzioni di controllo del flusso di esecuzione del programma (salto condizionato e incondizionato, salto a conteggio (per ciclo) salto a sottoprogramma (routine)) Istruzioni di controllo del processore (p. e. gestione del meccanismo di interruzione)
Sistemi Elettronici Programmabili: Riepilogo 16 Modi di indirizzamento Il modo di indirizzamento è un insieme di regole secondo cui denotare nell’istruzione macchina come: –reperire il dato da elaborare o la posizione dove andare a scrivere il risultato dell’elaborazione – modo di dato –individuare la prossima istruzione da eseguire, quando non si deve andare di seguito (caso dell’istruzione di salto) – modo di istruzione
Sistemi Elettronici Programmabili: Riepilogo 17 Elenco dei Modi
Sistemi Elettronici Programmabili: Riepilogo 18 Polling Collegamento delle periferiche con Polling No Hardware aggiuntivo No controllo aggiuntivo Controllo I/O sincrono con programma Ottimizzazione del codice Grande flessibilità Spreco di tempo di CPU per interrogazione periferiche
Sistemi Elettronici Programmabili: Riepilogo 19 Collegamento con Interrupt La CPU controlla lo stato di IINTR Il registro IE abilita gli Interrupt (può essere controllato via software) Tutti gli interrupt possono essere mascherati tramite il registro IE (interrupt enable) tranne i NMI (interrupt non mascherabili)
Sistemi Elettronici Programmabili: Riepilogo 20 Controllore di DMA L’accesso diretto alla memoria consente (solo) di scambiare dati tra una periferica e la RAM senza l’intervento della CPU Quando c’è una richiesta di DMA il controllore genera una richiesta alla CPU (DMAREQ) La CPU risponde con DMAACK e lascia il controllo del BUS al controllore di DMA (address BUS e data BUS = Z) Il controllore genera gli indirizzi per la memoria La CPU continua l’esecuzione del programma principale Occorre fornire: 1.Indirizzo di partenza 2.Lunghezza del blocco 3.Direzione del trasferimento
Sistemi Elettronici Programmabili: Riepilogo 21 Tipologie di Memorie allo stato solido Volatili Non Volatili RAM (Random Access Memory) SRAM (Static RAM) Flip-Flop Statiche Velocissime Cella Grande Costo per Bit Taglio ~ 100 Kbit DRAM (Dynamic RAM) Capacità Dinamiche (Refresh) Veloci Cella piccola Costo per Bit Taglio ~ 100 Mbit ROM (Read Only Memory) Programmate in fonderia Costo per Bit EEPROM (Electrically Erasable Programmable ROM) MOS Floating Gate E-P Random Access R Lenta, E-P molto lenti Costo per Bit Masked ROM MOS Floating Gate Cancellabili mediante UV Fuse - Antifuse OTP (One Time Programmable) EPROM (Electrically Programmable ROM) Flash MOS Floating Gate P Random Access E a banchi R Lenta, P molto lenti, E lentissimo Costo per Bit Taglio ~ 100 Mbit SDRAM (Synchronous DRAM) Capacità Accesso a burst Self Refresh
Sistemi Elettronici Programmabili: Riepilogo 22 RX Gen clock Rx Gen clock data clk Comunicazione seriale TX data Modalità Asincrona TX RX Modalità Sincrona Gen clock Tx I bit vengono inviati singolarmente (serialmente, uno dopo l’altro) ma fanno parte di una unità informativa più grande: la WORD
Sistemi Elettronici Programmabili: Riepilogo 23 Comunicazione Seriale: Tx Tx CLK Tx CLK Rx DataInDataOut Tx serializza la WORD inviando i bits che la compongono uno alla volta
Sistemi Elettronici Programmabili: Riepilogo 24 Comunicazione Seriale: Rx CLK Tx CLK Rx DataInDataOut Rx 123 ……… n - 1n -12 CLK Rx ricostruisce la WORD andando a valutare il suo significato solo quando sono stati ricevuti tutti i bits di cui è composta