Autronica LEZIONE N° 16 • Memorie – – – – – – • Reti sequenziali sincronizzate complesse – – – – – • • • • Definizioni Memoria RAM Organizzazione Temporizzazione Cella base Tipi di indirizzamento Macchina di Mealy ritardata Registro di stato Registro operativo Parte operativa Parte di controllo ALU Registri interni Architetture della parte di controllo Architetture di un processore AUTRONICA 16.1 Richiami • Reti sequenziali, concetto di memoria, anelli di reazione • Esempio, Flip-Flop R-S • Tecniche di descrizione – Grafo orientato – Diagramma di flusso • Altri Flip –Flop • Flip – Flop D trasparente • Flip – Flop D edge-triggered AUTRONICA 16.2 Definizioni MEMORIE • Memoria = elemento in grado di conservare un’informazione • Memorie Volatili = in grado di conservare l’informazione solo se alimentate • Memorie Non Volatili = non perdono l’informazione anche se non alimentate AUTRONICA 16.3 Definizioni MEMORIE NON VOLATILI • ROM = Read Only Memory • Programmata in fabbrica • PROM = Programmable Read Only Memory • Programmabile una sola volta dall’utente [OTP] • EPROM =Erasable Programmable ROM • Prog. elettricamente, Cancellazione UV • E2PROM = Electrical Erasable PROM • Programmazione e cancellazione elettrica AUTRONICA 16.4 Definizioni MEMORIE VOLATILI • RAM = Random Access Memory • Memoria nella quale e possibile – Scrivere – Leggere WRITE READ (W) (R) • RAM Statica = se alimentata, conserva l’informazione per un tempo infinito • RAM Dinamica = anche se alimenta, dopo un certo tempo perde l’informazione AUTRONICA 16.5 Organizzazione di una RAM • Memoria RAM di “H” parole di “N” bit – H è una potenza del 2 – N solitamente può valere 1, 4, 8 • Osservazione • 210 = 1,024 • 220 = 1,048,576 • 230 = 1,073,741,824 AUTRONICA 1K 1M 1G (Kilo) (Mega) (Giga) 16.6 Descrizione ai terminali • Memoria RAM 64K x 4 A0 D0 64K x 4 D3 A15 CS R/W AUTRONICA 16.7 Legenda • A0 : A15 = indirizzi (ADDRESS) • D0 : D3 = dati • CS • R/W (DATE) = Attivatore (Chip Select) [attivo basso] = scrittura / lettura (Read/Write) [1 = legge, 0 = scrive] AUTRONICA 16.8 Temporizzazzione • Ciclo di lettura A0:A15 CS R/W D0:D3 • Ciclo di scrittura A0:A15 CS R/W D0:D3 AUTRONICA 16.9 Cella di Memoria RAM STATICA Word select Q R Write S Din AUTRONICA Dout 16.10 Parola (Word) Ws R Q S Din-3 R Dout-3 Q S R Din-2 Dout-2 Q S Din-1 R Dout-1 Q S Din-0 Dout-0 Write AUTRONICA 16.11 Organizzazione Ws-0 R Q S R Q S R Q S R Q S R Q S R Q S R Q S R Q S Write Ws-1 Write Din-3 Dout-3 Din-2 Dout-2 AUTRONICA Din-1 Dout-1 Din-0 16.12 Dout-0 Tecniche di accesso • La singola word ha • N ingressi = Data In • N uscite =Data Out • 1 selettore di parola • All’esterno sono necessari • N Data I/O (bidirezionale) • Chip Select (CS) • Selezione Read/ Write (R/W) • K indirizzi AUTRONICA 16.13 Osservazione • Gli indirizzi sono codificati in binario • È necessario un decodificatire K – 2K K D E C . . . . . 0 2K AUTRONICA 16.14 0 16 A0:A16 D E C Schema completo M M M M M M M M M M M M 1 216-1 W R D3 D2 D1 AUTRONICA D0 16.15 Osservazioni • Architettura non quadrata • Complessità del Decoder N = 2N • occorrono 2N AND a N ingressi – Esempio: Memoria da 1Mbit (220) – Complessità del Decoder 21 milioni di Transistori !! • Si ricorre a memorie a singolo bit e a struttura a matrice AUTRONICA 16.16 Organizzazione a Matrice • Celle di memoria organizzate a quadrato 1 X RAM 2N/2 N/2 1 2N/2 Y AUTRONICA N/2 16.17 Osservazioni • Sono presenti due decodificatori – Decodificatore di riga – decodificatore di colonna • A ciascun decodificatore arriva N/2 indirizzi • Complessità totale dei Decoder 2 decodificatori N/2 – 2N/2 occorrono 2x2N/2 AND a N/2 ingressi [per memoria da 1 Mbit (220) occorrono 2 x 210 x 11 =22528 transistori ] AUTRONICA 16.18 Reti Sequenziali Complesse Vantaggi delle soluzioni euristiche • Esempio – Moltiplicatore di interi positivi 16 x 16 – Rete combinatoria con 32 ingressi e 32 uscite • Tutte le possibili combinazioni degli ingressi sono necessarie – Risultato della sintesi automatica • una memoria ROM con 32 bit di indirizzo e parole di 32 bit • Complessità globale • 4 G parole da da 32 bit ( 16 G BYTE !!!!!) AUTRONICA 16.19 Macchina di MEALY • Le variabili d’uscita, in un determinato istante, sono funzione del valore degli ingressi e delle variabili di stato R X1 Xn a1 s1 sk an z1 z1 R’ zm an+1 zm+1 an+k zm+k s’1 s’k zm La rete R’ è una rete combinatoria AUTRONICA 16.20 Macchina di Mealy sincronizzata • Le uscite sono funzioni delle variabili di stato e degli ingressi z1 X1 a1 Xn zm an s R’ an+1 zm+1 n1 snk zm+k an+k sp1 R sPk z1 zm Ck AUTRONICA 16.21 Macchina di MOORE • Le variabili d’uscita, in un determinato istante, sono funzione del sole variabili di stato R X1 a1 z1 s’1 z1 CN2 Xn s1 sk an an+1 an+k CN1 z m zW zm+1 zk s’k Ck AUTRONICA 16.22 Macchina di Mealy Ritardata • Le uscite sono funzioni delle variabili di stato e degli ingressi, ma risultano sincronizzate z1 X1 a1 Xn zm an s R’ an+1 zm+1 n1 snk zm+k an+k sp1 R sPk z1 zm Ck AUTRONICA 16.23 Interpretazione diversa • Il registro può essere visto come più registri che svolgono funzioni diverse DR0 IN R C DRn OUT X SR Ck AUTRONICA 16.24 Osservazioni 1 • Registro SR (Status Register) – Contiene le variabili di stato • Registro DR0 (Data Register) – Contiene parte delle variabili d’uscita (Dati) • ….. • Registro RDn (Data Register) – Contiene parte delle variabili d’uscita (Dati) • NOTE • La suddivisione in vari “registri dati” è funzionale al progetto • Non tutti gli RD servono per le variabili d’uscita AUTRONICA 16.25 Osservazione 2 • La suddivisione dei registri è funzionale al fatto di ridurre considerevolmente gli stati interni della macchina (solo SR da luogo a variabili di stato) • Anche la rete combinatoria può essere interpretata come più reti combinatorie AUTRONICA 16.26 Scomposizione della “RC” DR0 IN Parte Operativa DRn OUT X C B SR Parte di Controllo Ck AUTRONICA 16.27 Osservazioni • La parte operativa esegue determinate operazioni sulle variabili d’ingresso, in funzione delle variabili d’uscita e delle informazioni fornite dalla parte di controllo (B) microistruzioni • Genera le variabili di condizionamento (C) e le nuove uscita • La parte di controllo determina i vari passi da eseguire, in funzione delle variabili di stato e delle variabili di controllo AUTRONICA 16.28 Ulteriore suddivisione • La parte operativa può essere ulteriormente suddivisa in due parti RC Operativa IN RC Condizionamento Parte Operativa C B AUTRONICA Ck 16.29 Osservazioni • La suddivisione vista è dettata da: – Le reti sequenziali complesse sono difficili ad essere gestite – Le funzioni della parte operativa solitamente sono. • • • • OPERAZIONI ARITMETICHE OPERAZIONI LOGICHE SHIFT MULTIPLEX – Una soluzione “guidata” è solitamente più veloce e più efficiente – (i criteri d’ottimizzazione sono scelti dal progettista) AUTRONICA 16.30 Requisiti della Parte OperativaRichiami • Funzioni che deve eseguire fra 2 parole di k bit – – – – – – – Somma Differenza Negazione And Or Shift …… • Possibilità di essere “PROGRAMMATA” • Eventuale memorizzazione del risultato AUTRONICA 16.31 Parte Operativa Shift A Shift B MUX A Reg. A MUX B R0 R1 Reg. B A L U Reg. U R31 AUTRONICA 16.32 Architettura di Rete sequenziale complessa X RC 2 SR Parte di Controllo RC 1 DR B C RC Op Z RC Con Parte Operativa AUTRONICA 16.33 Osservazioni • La parte operativa ha una soluzione generale – Rete combinatoria operativa (ALU) – Rete combinatoria di condizionamento (Carry etc.) • Soluzione non ottimizzata per la particolare esigenza • La parte di controllo è ottimizzata • Si può trovare soluzioni più generali non ottimizzate • Una rete combinatoria si può sempre realizzare con una ROM AUTRONICA 16.34 Parte di controllo • Microaddress-based SR R O M microcodice B eff microindirizzo T microindirizzo F microindirizzo C AUTRONICA 16.35 Parte di controllo • Microinstruction-based R O M microcodice SR B eff microindirizzo T microindirizzo F microindirizzo C AUTRONICA 16.36 Osservazioni • Microaddress-based – il registro di stato è piccolo – la ROM è in serie alla parte operativa • Microinstruction-based – il registro di stato è grande – fra ROM e parte operativa c’è il registro di stato • Consente la presenza di un solo blocco di decisione fra due stati contigui AUTRONICA 16.37 Architettura Tot. R O M B Shift A Shift B SR MUX A MUX B Reg. A Reg. B R0 R1 A L U C Reg. U R31 Parte di controllo Parte operativa AUTRONICA 16.38 Osservazioni • L’architettura della parte di controllo Microinstruction-based evita di avere due reti combinatorie in cascata • La parte operativa è general purpose • La parte di controllo ha una architettura generale, ma è progettata per la particolare applicazione • L’elemento che personalizza l’applicazione è la ROM AUTRONICA 16.39 Architettura modificata R O M B Shift A Shift B SR MUX A MUX B Reg. A Reg. B R0 R1 A L U C Reg. U R31 Parte di controllo Parte operativa AUTRONICA 16.40 Osservazioni 1 – La nuova architettura consente di personalizzare il sistema per varie applicazioni • Inconvenienti – La memoria di personalizzazione, la ROM, presenta una lunghezza di parola eccessiva • • • • Microcodice Microindirizzi T Microindirizzi F Condizionamento eff (> di 100 bit) (> di 10 bit) (> di 10 bit) (8 bit) AUTRONICA 16.41 Osservazione 2 • Tecniche di realizzazione di una rete logica – Logica cablata • Viene progettata una particolare architettura (ottimizzata) per la risoluzione dello specifico problema • Si usano blocchi base standard, le interconnessioni (cablaggio) realizzano la particolare architettura – Logica a controllo di programma • Viene progettata una architettura che è in grado di svolgere varie funzioni • La personalizzazione è ottenuta mediante la particolare sequenza di operazioni svolte dalla macchina • Programma AUTRONICA 16.42 Osservazione 3 • Si mappano nella ROM di microprogramma tutte le funzioni possibili della parte operativa • Si codificano in modo compatto le varie funzioni in una ROM di mappatura • Il programma di personalizzazione dell’applicazione, scritto in un linguaggi opportuno (ASSEMBLER), risiede in una memoria esterna • Sono necessari alcuni altri registri e una opportuna rete di controllo (SEQUENZIALIZZATORE) AUTRONICA 16.43 Architettura a controllo di programma D In P R O G R A M R O M I A I n s t M a p R e g R O M P r o g C o u n M i c r o M i c r o C o d C o d R O M R e g Sequenzer (control logic) Parte operativa SHIFT SHIFT MUX A MUX B REG. A REG. A R0 R1 A L U C REG. U R e g R31 Parte di controllo D Out AUTRONICA 16.44 Osservazioni • Sequenzializzatore – Gestisce sia il microprogramma, sia il programma • Program Counter – Contiene l’indirizzo successivo della locazione di memoria di programma • Status Register – Contiene informazioni sulle funzioni eseguite dalla parte operativa • Inconveniente – Elevato numero di terminali (PED) AUTRONICA 16.45 Architettura a controllo di programma D In P R O G R A M R O M I A I n s t M a p R e g R O M P r o g C o u n M i c r o M i c r o C o d C o d R O M R e g Sequenzer (control logic) Parte operativa SHIFT SHIFT MUX A MUX B REG. A REG. A R0 R1 A L U C REG. U R e g R31 Parte di controllo D Out AUTRONICA 16.46 Osservazioni • Sequenzializzatore – Gestisce sia il microprogramma, sia il programma • Program Counter – Contiene l’indirizzo successivo della locazione di memoria di programma • Status Register – Contiene informazioni sulle funzioni eseguite dalla parte operativa • Inconveniente – Elevato numero di terminali (PED) AUTRONICA 16.47 BUS • Utilizzando porte TRE STATE bidirezionali si può utilizzare lo stesso Filo per collegare, in istanti diversi, vari componenti • BUS Percorso informatico condiviso fra più unità AUTRONICA 16.48 Architettura von Neumann Unità Aritmetica Dati Memoria B U S Stato Istruzioni Unità di Controllo Indirizzi Istruzioni AUTRONICA 16.49 Descrizione • Unita Aritmetica: • ALU – Blocco che “esegue” le operazioni richieste • Unita di Controllo: • MSF (+ eventuali registri) • Memoria • Unica per Dati e Programma (RAM) AUTRONICA 16.50 Osservazioni • Macchina di ridotta complessità ======================================== = • Criterio di valutazione di una architettura • Individuazione dei blocchi “congestionati” ======================================== = • Limiti – Unica memoria – Unico BUS (Collo di Bottiglia) AUTRONICA 16.51 Architettura Harvard Unità Aritmetica Dati Memoria Dati Stato Istruzioni Unità di Controllo Istruzioni Indirizzi AUTRONICA Memoria Istruzioni 16.52 Descrizione • Memoria Dati » Accesso diretto alla ALU » Realizzazione: RAM • Memoria Istruzioni » Il contenuto rimane invariato » Realizzazione con memoria non volatile: ROM AUTRONICA 16.53 Osservazioni • Non presenta particolari “Colli di bottiglia” • Può essere migliorata per aumentarne la conccorrenzialità • Architettura alla quale si ispirano gli attuali microprocessori e DSP AUTRONICA 16.54 Architettura di un Microprocessore Data Bus ROM di Mappatura MUX 1 Sequenzializzatore Microprogramma MUX 2 A L U Memoria ROM Microprogramma DEMUX Address Control AUTRONICA 16.55 Descrizione (1) • ROM di Mappatura – Converte il codice macchina in codice interno • Sequenzializzatore – Rete di controllo effettiva • Memoria di Microprogramma – Converte il codice interno nei codici di controllo dei vari blocchi AUTRONICA 16.56 Descrizione (2) • ALU – Unità Logica Aritmetica • MUX 1 e MUX 2 – Multiplex di scelta su gli ingressi della ALU • DEMUX – Gestisce l’indirizzamento del risultato AUTRONICA 16.57 Osservazioni • Funzionamento totalmente in sequenza • Interpretazione Esecuzione • Assenza di registri interni • Contatore di programma, Registro di stato • Accumulatori • Generazione degli indirizzi mediante ALU • Collo di bottiglia DATA BUS AUTRONICA 16.58 PIPE-LINE • Alcune operazioni possono essere fatte in parallelo – Necessità di disporre di REGISTRI intermedi • Mentre la ALU esegue le operazioni richieste, il Sistema di controllo può decodificare l’istruzione successiva • Aggiungere una ALU per il calcolo degli indirizzi AUTRONICA 16.59 Architettura di un Microprocessore (2) Data Bus Istruc. Reg. MUX + Register ROM 1 Sequenzializzatore Microprog. ROM A L U DEMUX +Reg. MUX + Register Mcropog. Reg. Address Control R E G A L U DEMUX +Reg. AUTRONICA 16.60 Osservazioni • Possibilità di sovrapposizione fra fase di interpretazione ed esecuzione dell’istruzione • Possibilità di memorizzazione di risultati intermedi • Salvataggio dei registri di controllo – Possibili ulteriori modifiche in funzione delle esigenze AUTRONICA 16.61 Architettura di un calcolatore DATA BUS ADDRESS BUS CONTROL BUS I/O DATA (RAM) PROG (ROM) AUTRONICA CPU 16.62 Tipi di architetture in funzione delle istruzioni • RISC => Reduced Instructions Set Computer – ridotto numero di istruzioni – si effettuano in un numero ridotto di cicli • CISC => Complex Instructions Set Computer – Istruzioni di elevata capacità – si effettuano in un numero grande di cicli AUTRONICA 16.63 Conclusioni • Parte di controllo programmabile – – – – • • • • Mapping ROM Instruction Register Sequenzializzatore di microprogramma Sequenzializzatore di programma Bus Architettura Von Neuman Architettura Harvard Architettura di un CALCOLATORE AUTRONICA 16.64