Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili Sistemi Elettronici Programmabili: Riepilogo 1 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 2 FPGA: Architettura IO LE V R C HRC IM LE LE IM LE IM LE LE IM LE IM IO IM V R C IO HRC LE V R C LE HRC LE LE IM LE IM LE IM LE LE LE IO Sistemi Elettronici Programmabili: Riepilogo 3 FPGA: Logic Element (Block) S OUT IN[3:0] LUT D SET CLR Q Q CLK CLR Sistemi Elettronici Programmabili: Riepilogo 4 FPGA: LUT – Look Up Table (2 Ingressi) IN[0] IN[1] AND OR XOR 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 ADD[0] ADD[1] OUT OUT OUT Memory Words 1 Bit OUT IN[1:0] CDI D SET CLR Q Q D SET CLR Q Q D SET CLR Q Q D SET CLR CDO Q Q CLK Sistemi Elettronici Programmabili: Riepilogo 5 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 6 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 7 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 – Rn1) •Registro di indirizzo di memoria (memory address register, MAR) e registro dei dati di memoria (memory data register, MDR) Sistemi Elettronici Programmabili: Riepilogo 8 Architetture Interne dei Microprocessori Sistemi Elettronici Programmabili: Riepilogo 9 Il microcalcolatore ADD (n-1) ADD (n) Decoder nCS0 nOE CPU Flash nWE nOE nWE nCS1 nOE RAM nWE Data Sistemi Elettronici Programmabili: Riepilogo 10 Microprocessore DATA[DW:0] Data Register Index Register 0 Index Register 1 Program Caunter General Register 0 Mode Register Accumulator General Register 1 Stack Pointer General Register 2 Instruction Decoder ALU Internal Controls Index Register n Address Logic ADD[AW:0] General Register n Address Register H Instruction Register Status Sequencer Address Register L CTRL Interrupt Control Unit DMA Controls Sistemi Elettronici Programmabili: Riepilogo 11 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 12 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 NOME arg1, 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 13 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 14 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 15 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 16 Elenco dei Modi Sistemi Elettronici Programmabili: Riepilogo 17 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 18 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 19 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 20 Tipologie di Memorie allo stato solido RAM (Random Access Memory) Volatili Non Volatili SRAM (Static RAM) ROM (Read Only Memory) Masked ROM Flip-Flop Statiche Velocissime Cella Grande Costo per Bit Taglio ~ 100 Kbit Programmate in fonderia Costo per Bit OTP (One Time Programmable) Fuse - Antifuse EPROM (Electrically Programmable ROM) DRAM (Dynamic RAM) MOS Floating Gate Cancellabili mediante UV Capacità Dinamiche (Refresh) Veloci Cella piccola Costo per Bit Taglio ~ 100 Mbit EEPROM (Electrically Erasable Programmable ROM) MOS Floating Gate E-P Random Access R Lenta, E-P molto lenti Costo per Bit SDRAM (Synchronous DRAM) Capacità Accesso a burst Self Refresh Flash MOS Floating Gate P Random Access E a banchi R Lenta, P molto lenti, E lentissimo Costo per Bit Taglio ~ 100 Mbit Sistemi Elettronici Programmabili: Riepilogo 21 Comunicazione seriale I bit vengono inviati singolarmente (serialmente, uno dopo l’altro) ma fanno parte di una unità informativa più grande: la WORD • Modalità Asincrona TX data RX Gen clock Rx Gen clock Tx • Modalità Sincrona data TX clk RX Gen clock Sistemi Elettronici Programmabili: Riepilogo 22 Comunicazione Seriale: Tx Tx serializza la WORD inviando i bits che la compongono uno alla volta CLKRx CLKTx DataIn DataOut 11010011 11010011 Data Tx D SET CLR Q Q D SET CLR Q Q D SET CLR Q Q D SET CLR TX Q Q CLK Load Sistemi Elettronici Programmabili: Riepilogo 23 Comunicazione Seriale: Rx Rx ricostruisce la WORD andando a valutare il suo significato solo quando sono stati ricevuti tutti i bits di cui è composta CLKRx CLKTx DataIn DataOut 11010011 11010011 D RX D SET D Q SET D Q SET Q D SET Q CLR Q CLR Q Rx CLR SET Data Q Q /n CLR Q CLR Q CLK CLK 1 2 3 n-1 n …Sistemi… …Programmabili: Elettronici Riepilogo - 1 2 24