Circuiti logici di base Decoder: decodificatore • n ingressi — 2n uscite • Primo passo nella costruzione di circuiti • l’ingresso seleziona una delle uscite complessi. • Funzione di utilita ` universale. • Progettazione (e descrizione) strutturata dei un circuito. • Breve rassegna dei piu ` significativi: comportamento — implementazione — uso. • l’uscita selezionata ha valore 1 tutte le altre 0. 3 Decoder Out0 Out1 Out2 Out3 Out4 Out5 Out6 Out7 a. A 3-bit decoder (Architettura degli Elaboratori) Circuiti combinatori, memorie 1 / 73 (Architettura degli Elaboratori) Circuiti combinatori, memorie Implementazione 2 / 73 Uso D0 D1 A A D2 A D3 B B Selezionare uno tra molti dispositivi, ogni dispositivo contiene un segnale di attivazione. D4 Esempio: selezionare un chip di memoria, tra gli 2n presenti nel calcolatore D5 Nessuna parentela con il decoder televisivo. B C C C D6 D7 (Architettura degli Elaboratori) Circuiti combinatori, memorie (Architettura degli Elaboratori) 3 / 73 Circuiti combinatori, memorie Multiplexer Implementazione D0 Due tipi di ingressi: • n ingressi di controllo — 2n ingressi segnale • un unica uscita; il controllo seleziona quale segnale d’ingresso mandare in uscita A B 0 M u x 1 4 / 73 D1 D2 D3 F D4 D5 D6 A C D7 C A A B B C C B S S (Architettura degli Elaboratori) A Circuiti combinatori, memorie 5 / 73 B C (Architettura degli Elaboratori) Circuiti combinatori, memorie Uso 6 / 73 Comparatore 2 × n ingressi — 1 uscita controlla se i 2 ingressi sono uguali • trasformazione parallelo ⇒ seriale • realizzare una tabella di verita ` EXCLUSIVE OR gate VCC A0 B0 D0 D0 D1 D1 D2 D2 D3 F D4 A1 D3 D5 D5 D6 D6 D7 D7 B1 F D4 A=B A2 B2 A B C (a) A B C (b) A3 Demultiplexer: un ingresso, n linee di controllo, 2n uscite. (Architettura degli Elaboratori) Circuiti combinatori, memorie B3 Uso: confronto di valori 7 / 73 (Architettura degli Elaboratori) Circuiti combinatori, memorie 8 / 73 Circuiti aritmetici L’aritmetica dei calcolatori • come vengono rappresentati i numeri naturali. • come vengono eseguite le operazioni Presenteremo i seguenti circuiti: • mezzo sommatore • sommatore completo • shifter • ALU premessa, come viene realizzata l’aritmetica nel calcolatore. aritmetiche. Notazione posizionale: il peso di una cifra dipende dalla sua posizione: … dn 100's place 10's place 1's place d2 d1 d0 . .1's place .01's place .001's place d–1 d–2 d–3 … d–k n Number = Σ di × 10i i = –k (Architettura degli Elaboratori) Circuiti combinatori, memorie 9 / 73 (Architettura degli Elaboratori) Circuiti combinatori, memorie Notazione posizionale con basi diverse Binary 1 1 1 1 1 0 1 0 0 Notazione binaria 0 1 1 × 210 + 1 × 29 + 1 × 28 + 1 × 27 + 1 × 26 + 0 × 25 + 1 × 24 + 0 × 23 + 0 × 22 + 0 × 21 + 1 × 20 +0 + 16 +0 +0 +0 +1 1024 + 512 + 256 + 128 + 64 3 Octal 7 2 1 3 × 83 + 7 × 82 + 2 × 81 + 1 × 80 1536 + 448 + 16 + 1 2 Decimal 0 0 10 / 73 Il calcolatore utilizza base 2, motivi: • un segnale rappresenta una cifra; • semplificazione dell’hardware. 1 2 × 103 + 0 × 102 + 0 × 101 + 1 × 100 2000 + 0 +0 +1 Hexadecimal 7 D . 1 7 × 162 + 13 × 161 + 1 × 160 1792 + 208 +1 (Architettura degli Elaboratori) Circuiti combinatori, memorie 11 / 73 (Architettura degli Elaboratori) Circuiti combinatori, memorie Operazione aritmetiche: 12 / 73 Circuiti aritmetici Mezzo sommatore Gli algoritmi per base dieci, possono essere utilizzati anche per base 2. Exclusive OR gate Algoritmo per la somma: • si sommano le cifre di pari peso, • a partire dalle meno significative, • eventualmente si generano un riporti. Per motivi di efficienza, l’hardware usa algoritmi piu` sofisticati di quelli classici. A B Sum Carry 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 A Sum B Carry (Architettura degli Elaboratori) Circuiti combinatori, memorie 13 / 73 (Architettura degli Elaboratori) Circuiti combinatori, memorie Sommatore completo 14 / 73 Shifter D0 D1 D2 D3 D4 D5 D6 D7 S0 S1 S2 S3 S4 S5 S6 S7 Carry in C Carry Carry Sum in out A B 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 A Sum B Operazione di traslazione delle cifre. Significato aritmetico: moltiplicazione (divisione) per una potenza di 2. Carry out (a) (Architettura degli Elaboratori) (b) Circuiti combinatori, memorie 15 / 73 (Architettura degli Elaboratori) Circuiti combinatori, memorie 16 / 73 Memorie Latch sincronizzato Dispositivi con stato: ricordano gli ingressi passati, la storia dell’input. Il piu` semplice circuito con memoria: Latch S–R, (Set–Reset) usa la retroazione. 0 S 1 Q S 0 0 0 0 0 Q R 1 0 (a) Q (b) (Architettura degli Elaboratori) S Q Q 1 1 R 0 Segnale di clock (enable, strobe) per l’abilitazione alla scrittura. A B NOR 0 0 1 0 1 0 1 0 0 1 1 0 Clock Q R (c) Circuiti combinatori, memorie 17 / 73 (Architettura degli Elaboratori) Circuiti combinatori, memorie Latch di tipo D 18 / 73 Flip-flop Diversi dai latch per il comportamento rispetto al clock: cambiano stato nell’istante in cui il clock cambia valore. Differisce per i segnali di controllo D Q Esempio di comportamento: D Q C ricorda il segnale D. Q (Architettura degli Elaboratori) Circuiti combinatori, memorie 19 / 73 (Architettura degli Elaboratori) Possibile implementazione Circuiti combinatori, memorie 20 / 73 Flip-flop completo Si sfruttano i ritardi delle porte logiche si genera un segnale brevissimo: D Q d ∆ a b b AND c d c Q c (a) b a Time (Architettura degli Elaboratori) Circuiti combinatori, memorie (b) 21 / 73 (Architettura degli Elaboratori) Flip-flop Master-Slave Circuiti combinatori, memorie 22 / 73 Latch e Flip-flop • Latch level triggered (azionato dal livello) D D C D latch Q D Q D latch _ C Q Q • Flip-Flop edge triggered (azionato dal fronte) _ Q Vari tipi di flip-flop: • D • S-R: Set Reset • J-K: (come S-R ma cambia stato con J=1, K=1) • T: (un solo ingresso, cambia stato con T = 1) C (Architettura degli Elaboratori) Circuiti combinatori, memorie 23 / 73 (Architettura degli Elaboratori) Circuiti combinatori, memorie 24 / 73 Rappresentazione grafica D Q D CK Q D CK (a) Q CK (b) (c) D Registri elementi di memoria per sequenze di cifre binarie (bit — binary digit) implementazione: una sequenza di n flip-flop, (con il segnale di clock in comune) Q CK (d) • (a) (b) latch: con diversa risposta al segnale di clock • (c) (d) flip-flop: (Architettura degli Elaboratori) Circuiti combinatori, memorie 25 / 73 (Architettura degli Elaboratori) Circuiti sequenziali Circuiti combinatori, memorie 26 / 73 Funzionamento Il comportamento dipende dalla storia passata. Struttura tipica di un semplice circuito sequenziale: • una serie di passaggi da uno stato a quello successivo, • passaggi determinati dall’impulso di clock: forza Outputs la scrittura nel registro, • il segnale di clock e ` periodico, • il passaggio di stato puo ` avvenire solo quando il circuito si e` stabilizzato (ritardi). • variazioni dell’input sincronizzate con il segnale di clock Combinational logic Next state State register Inputs (Architettura degli Elaboratori) Circuiti combinatori, memorie 27 / 73 (Architettura degli Elaboratori) Segnale di clock 28 / 73 Periodo di clock Segnale periodico che cadenza il funzionamento dei circuiti. Falling edge Rising edge Clock period Circuiti combinatori, memorie Periodico: cambia stato a in intervalli costanti. Frequenza di clock = 1/ periodo. Due esigenze contrapposte: • per migliori prestazioni: periodo di clock piu ` breve possibile; • ogni circuito ha un tempo di commutazione: il periodo di clock deve essere superiore. Ordini di grandezza del periodo: ∼ 1 – 10 ns, frequenza: ∼ 100MHz – 1GHz. In un calcolatore vari segnali di clock clock: processore, scheda grafica, bus di sistema, . . . (Architettura degli Elaboratori) Circuiti combinatori, memorie 29 / 73 Progettazione di circuiti sequenziali Circuito sequenziale tipico: circuito combinatorio + memoria Outputs Combinational logic Next state State register Inputs Esistono circuiti piu` complessi, con svariati registri e31 / 73 (Architettura degli Elaboratori) Circuiti combinatori, memorie (Architettura degli Elaboratori) Circuiti combinatori, memorie 30 / 73 Comportamento Con input constante: ad ogni ciclo di clock il registro cambi stato di conseguenza cambia: • il valore di uscita • il prossimo stato. Il circuito cicla. L’input variabile: modifica questa evoluzione. Per un corretto funzionamento: input sincrono con il segnale di clock. (Architettura degli Elaboratori) Circuiti combinatori, memorie 32 / 73 Macchina a stati finiti E` conveniente descrivere un circuito sequenziale come ad una macchina a stati finiti. Stato: entita` astratta, trascuro l’esatto contenuto del registro. • In ogni istante si trova in un determinato stato, in base a: • • stato, valore d’ingresso, Circuiti combinatori, memorie 33 / 73 Grafo di una macchina a stati finiti Circuiti combinatori, memorie (Architettura degli Elaboratori) Circuiti combinatori, memorie 34 / 73 Grafo di una macchina a stati finiti Che comportamento ha? Copia, in ritardo, l’ingresso nell’uscita. (Architettura degli Elaboratori) uno (o piu` valori) di input, un valore di output. Rappresentazione del comportamento piu` intuitiva. Utile nella progettazione. valore d’uscita, stato da assumere nell’istante successivo. (Architettura degli Elaboratori) La macchina a stati finiti viene rappresentata da un grafo • nodi del grafo: stati • archi etichettati: transizioni tra stati, ad ogni arco si associa • • si determina: • • Rappresentazione grafica MSF 35 / 73 Progettazione In questo caso, l’uscita dipende solo dallo stato: macchina di Moore. Il valore dell’uscita associato allo stato. (Architettura degli Elaboratori) Circuiti combinatori, memorie Se l’uscita dipende dall’input: macchina di Mealy. 36 / 73 Esempi di progettazione • Dalla descrizione del problema si determina una macchina a stati finiti che lo risolve, • • • Circuito per il controllo di un semaforo, definisco gli stati (nodi), le transazioni, • associa ad ogni stato nodo una sequenza binari, • si costruiscono le mappe di Karnaugh per le uscite del circuito combinatorio, (prossimo stato, uscita) • si sintetizza il circuito combinatorio (insieme di espressioni) (Architettura degli Elaboratori) Circuiti combinatori, memorie 37 / 73 il semaforo cambia stato ad ogni ciclo di clock (ciclo di clock di 30 secondi), ha solo due luci: rosso - verde. • circuito per il controllo di un semaforo con tempo del verde diverso nelle due strade, • circuito di controllo di un vero semaforo. (Architettura degli Elaboratori) Circuiti combinatori, memorie Esempi di progettazione Segnali Circuito per il controllo di un semaforo, con rivelatori di presenza di traffico. Comportamento: • il semaforo puo ` cambiare stato in corrispondenza al segnale di clock, • il semaforo cambia stato solo se sono presenti dei mezzi in attesa, Semplificazione: due sole luci complementari, non esiste la luce arancio. (Architettura degli Elaboratori) Circuiti combinatori, memorie 38 / 73 39 / 73 • 2 ingressi: presenza di traffico sulla strade NS, presenza di traffico sulla strada EO. • 1 uscita: determina lo stato del semaforo (dall’unica uscita e` possibile determinare le 4 luci del semaforo) 2 stati • luce verde sulla strada NS • luce rossa sulla strada NS (Architettura degli Elaboratori) Circuiti combinatori, memorie 40 / 73 Dal diagramma al circuito Dal diagramma al circuito • gli stati vengo codificati con un registro di lunghezza opportuna, Associo a ciascuno stato un dato nel registro • • associazione arbitraria il numero degli stati determina la dimensione del registro (Architettura degli Elaboratori) Circuiti combinatori, memorie Progetto del circuito combinatorio. • In base alla funzione di transizione costruisco delle mappe di Karnaugh, • • una mappa per ogni input del registro (flip-flop) una mappa per ogni uscita • Dalle mappe di Karnaugh ricavo le espressione logiche (la descrizione algebrica) del circuito sequenziale. 41 / 73 (Architettura degli Elaboratori) Esercizi Circuiti combinatori, memorie 42 / 73 Osservazioni I • Circuito sequenziale con: • 1 ingresso, trasmessi numeri a gruppi di 3 bit; • 2 uscite: 00 corrispondenza al primo e al secondo bit di ingresso, il numero (in binario) degli 1 ricevuti in ingresso. • Contatore “up/down” a 2 bit: • 2 ingressi: x abilitazione al conteggio, ud ordine di conteggio; • 2 uscite: numero binario. • Circuito sequenziale per riconoscere una stringa Il metodo sopra mostrato non necessariamente fornisce l’implementazione piu` semplice, si trascurano eventuali fattorizzazioni. Non tutte le MSF sono realizzate in questo modo: processore. Il metodo puo` realizzare qualsiasi MSF, ma funzione bene per MSF non troppo complicate. (1100) (Architettura degli Elaboratori) Circuiti combinatori, memorie 43 / 73 (Architettura degli Elaboratori) Osservazioni II Circuiti integrati ( Integrated Circuit, IC, chip): unita` contenenti insiemi di porte logiche: transistor e resistenze. Concetto ricorrente in informatica. Utilizzato per descrivere in diversi oggetti: • parti del calcolatore, • linguaggi (insiemi di parole), • strutture biologiche. Circuiti combinatori, memorie 44 / 73 Tecnologia dei circuiti integrati Macchina a stati finiti come calcolatore con una memoria limitata. (Architettura degli Elaboratori) Circuiti combinatori, memorie • Piastrina quadrata di cristallo di silicio, lato ∼ 1 cm. • Sulla superficie vengono creati: transistor, resistenze, collegamenti. 45 / 73 (Architettura degli Elaboratori) Memorie EPROM Circuiti combinatori, memorie 46 / 73 Lavorazioni sul silicio • transistor ottenuti drogando: inserendo atomi estranei (boro, arsenico, fosforo), nella struttura cristallina del silicio, si espone il silicio, in forno, ai vapori di altre sostanze; • collegamenti tra le componenti del chip ottenuti depositando uno strato di materiale conduttore (rame o alluminio); • isolamenti elettrici ottenuti ossidando in silicio: esponendo, in forno, all’ossigeno. (Architettura degli Elaboratori) Circuiti combinatori, memorie 47 / 73 (Architettura degli Elaboratori) Circuiti combinatori, memorie 48 / 73 Tecniche di fotolitografia Wafer • si copre il silicio con uno strato di materiale fotosensibile, • che viene illuminato in maniera differenziata, • la parte illuminata solidifica, la parte in ombra viene rimossa, si espone parte del chip ad una lavorazioni selettiva, • anche 50 diverse lavorazioni per singolo chip. (Architettura degli Elaboratori) Circuiti combinatori, memorie 49 / 73 (Architettura degli Elaboratori) Circuiti combinatori, memorie Package 50 / 73 Package Ogni chip inglobato in un supporto di plastica: package. Connessioni mediante piedini, • Chip di memoria e chip semplici: due file di piedini (dual in line package) • Chip con processori: centinaia di connessioni, due file di piedini non sufficienti, pedinatura piu` complessa. (Architettura degli Elaboratori) Circuiti combinatori, memorie 51 / 73 (Architettura degli Elaboratori) Circuiti combinatori, memorie Circuiti di memoria Circuiti di memoria Contengono un notevole numero di registri. I singoli registri non possono essere collegati all’esterno individualmente. Per accedere ai dati • si seleziona il registro su cui operare, specificando il suo indirizzo (numero associato) • si definisce l’operazione da eseguire (lettura – scrittura). (Architettura degli Elaboratori) Circuiti combinatori, memorie 53 / 73 Segnali I/O: • indirizzo (specifica il registro su cui operare), • dati in ingresso (da scrivere nel registro), • segnali di controllo: CS chip select (per attivare il chip di memoria), RD read (specifica se vogliamo leggere o scrivere in memoria • OE output enable • • • dati in uscita (Architettura degli Elaboratori) Implementazione Circuiti combinatori, memorie Write I1 I0 Write gate D Q D Q Word 0 select line Word 1 select line Word 2 select line D Q Word 0 CK CK D Q D Q D Q CK CK CK D Q D Q D Q C 0 CK Word 1 Register number Register 0 1 D n-to-1 decoder C Register 1 D n–1 Word 2 CK CK CK D Q D Q D Q CK CK CK n Word 3 C Register n – 1 D CS • RD CS C O1 RD Register n O2 D Register data O3 OE 54 / 73 Schema strutturato: input Data in I2 A1 A0 52 / 73 Output enable = CS • RD • OE (Architettura degli Elaboratori) Circuiti combinatori, memorie 55 / 73 (Architettura degli Elaboratori) Circuiti combinatori, memorie 56 / 73 Output Buffer non invertenti, circuiti a tre stati Read register number 1 Register 0 Register 1 Register n – 1 Register n M u x Read data 1 M u x Read data 2 Per connettere tra di loro diverse uscire sono necessari buffer non invertenti possono lasciare l’uscita indeterminata, non forzano un valore di tensione Read register number 2 (Architettura degli Elaboratori) Circuiti combinatori, memorie 57 / 73 (Architettura degli Elaboratori) Circuiti combinatori, memorie Memorie RAM RAM Dinamiche I circuiti di memoria vengono chiamati RAM (Random Access Memory). Un singolo transistor per memorizzare un bit: si posso inserire molte piu` celle di memoria in un singolo chip. Due tipi: • RAM statiche (SRAM): i singoli bit vengono memorizzati con latch, veloci e costose, sei transistor per memorizzare un bit. • RAM dinamiche (DRAM): usano un diverso meccanismo di memorizzazione, lente e capienti. Costituiscono la memoria principale del calcolatore. (Architettura degli Elaboratori) Circuiti combinatori, memorie 58 / 73 Word line Pass transistor Capacitor Bit line 59 / 73 (Architettura degli Elaboratori) Circuiti combinatori, memorie RAM Dinamiche 60 / 73 DRAM L’accumulo di carica rappresenta lo stato. Difetti: • piu ` lente delle SRAM (difetto principale) • i condensatori perdono velocemente la loro carica: e` necessario un meccanismo di refresh, ogni ∼ 1ms, circuiti dedicati, 10% del tempo speso nel refresh. Row decoder 11-to-2048 2048 × 2048 array Column latches Address[10–0] Mux Dout (Architettura degli Elaboratori) Circuiti combinatori, memorie 61 / 73 DRAM 62 / 73 I miglioramenti nei tempi di risposta delle DRAM sono inferiori a quelli del processore: la velocita` relativa diminuisce. Nuove tecnologie per le DRAM: migliorano piu` la banda passante rispetto al tempo d’accesso • banda passante: quantita ` di dati consecutivi leggibili nell’unita` di tempo. • tempo d’accesso: tempo necessario per un singola operazione in memoria. • RAS (Row Access Strobe) • CAS (Column Access Strobe) Circuiti combinatori, memorie Circuiti combinatori, memorie Tecnologie per le DRAM Accesso alla memoria in due fasi, • nella prima fase il contenuta di un intera riga viene copiato in un registro (latch), • nella seconda vengono letti i bit selezionati della riga. Accesso veloce a locazioni consecutive: non si ripete la prima fase, si usa il registro. (Architettura degli Elaboratori) (Architettura degli Elaboratori) 63 / 73 (Architettura degli Elaboratori) Circuiti combinatori, memorie 64 / 73 Diverse tecnologie di DRAM Chip di memoria . Circuiti integrati contenenti un dispositivo di memoria • FPM RAM (Fast page mode) • Capacita: ` 4n , la crescita segue la legge di • EDO RAM (Extended data output) Moore, • le memorie piu ` capienti sono piu` costose (per unita` di memoria), • una stessa quantita ` di memoria puo` essere distribuita su un numero variabile di locazioni • SDRAM (Synchronous DRAM) • DDR3 SDRAM (Double Data Rate SDRAM) • RDRAM (Rirect Rambus DRAM) • GDDR4 (Graphic Double Data Rate, schede grafiche) • ... (Architettura degli Elaboratori) Circuiti combinatori, memorie 65 / 73 (Architettura degli Elaboratori) Circuiti combinatori, memorie Esempio Esempi A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18 Un memoria da 1 Gbit. • 1 G di locazioni di 1 bit • 512 M di locazioni da 2 bit • 256 M di locazioni da 4 bit • 128 M di locazioni da 8 bit Distribuzioni diverse portano a diversi numeri di piedini. Capacita` = 2indirizzi × dati. (Architettura degli Elaboratori) Circuiti combinatori, memorie 66 / 73 67 / 73 512K 3 8 Memory chip (4 Mbit) D0 D1 D2 D3 D4 D5 D6 D7 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 4096K 3 1 Memory chip D (4 Mbit) RAS CAS CS WE OE CS WE OE (a) (b) (Architettura degli Elaboratori) Moduli di memoria Circuiti combinatori, memorie 68 / 73 Moduli di memoria Schede di memoria: • circuito stampato contenente la RAM dinamica, • distribuita su piu ` chip, • si innesta in appositi slot (prese) sulla scheda madre: ` per maggiore flessibilita, • diversi tipi di connessioni (moduli): • • DIMM Double Inline Memory Module SO-DIMM Small Outline DIMM Diverse, incompatibili, versioni per ogni tipo. (Architettura degli Elaboratori) Circuiti combinatori, memorie 69 / 73 (Architettura degli Elaboratori) Memorie permanenti Circuiti combinatori, memorie 70 / 73 Memorie permanenti Le RAM perdono i dati se non alimentate. Memorie permanenti necessarie per: • calcolatori embedded che eseguono sempre lo stesso codice, non memorizzano dati in modo permanente, • calcolatori embedded a sostituzione del disco magnetico: palmari, telefonini, • calcolatori: memorizzare il programma di avvio del calcolatore (bios). (Architettura degli Elaboratori) Circuiti combinatori, memorie 71 / 73 • ROM (Read Only Memory) di sola lettura • PROM (Programmable ROM) scrivibili un unica volta — fusibili, scrittura distruttiva, • EPROM (Erasable PROM) cancellabili, mediante esposizione a raggi ultravioletti. Bit — carica elettrica. • EEPROM (Electrically EPROM) cancellabili elettricamente (singolo bit) • Memoria flash: particolari EEPROM cancellabili a banchi. (Architettura degli Elaboratori) Circuiti combinatori, memorie 72 / 73 Classificazione delle memoria (Architettura degli Elaboratori) Circuiti combinatori, memorie 73 / 73
© Copyright 2024 Paperzz