La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci.

Presentazioni simili


Presentazione sul tema: "Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci."— Transcript della presentazione:

1 Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci

2 Memoria1 Clocking  Il segnale di Clock definisce quando i segnali possono essere letti e quando possono essere scritti Fronte di discesa (negativo) Falling edge Fronte di salita (positivo) Rising edge Periodo di clock Freq. clock = 1/(Periodo di Clock) e.g., Periodo di 10 nsec  100 MHz e.g., Periodo di 10 nsec  100 MHz Periodo di 1 nsec  1 GHz Periodo di 1 nsec  1 GHz  Opzioni per gli elementi di memoria  Latch sensibili al livello  Flip-Flop master-slave/edge-triggered

3 Memoria2 Elementi di Memoria  Latch Set-reset  Latch D sensibile al livello m Il latch e’ transparente quando il clock e’ alto (l’ingresso e’ copiato in uscita) R S Q !QRSQ(t+1)!Q(t+1) Q(t)!Q(t) 11-- clock D Q !Q clock D Q

4 Memoria3 Periodo del Ciclo di Clock  Il periodo T deve essere scelto lungo abbastanza da garantire che l’output della rete combinatoria sia stabilizzato m Deve esserlo prima del periodo di apertura di del flip-flop (set-up time) m Deve rimanere stabile per un certo tempo (hold-time)  Determina il limite superiore alla frequenza di clock T

5 Memoria4 Elementi di Memoria  Problemi con i latch: corse critiche …  Elementi di memoria usati come input ed output nello stesso ciclo  Il clock deve rimanere ad 1 per un tempo sufficiente da garantire che l’ingresso sia memorizzato  …ma tale da non permettere il propagarsi del nuovo valore attraverso la rete combinatoria  Difficile garantire entrambe le condizioni m Dipende dai tempi di propagazione e dalla presenza di diversi percorsi attraverso la rete combinatoria Elemento di Memoria Logica Combinatoria

6 Memoria5 Elementi di Memoria  Soluzione: Flip-Flops che cambiano lo stato (Q) solo sui fronti del segnale di clock (master-slave) m Master (primo D-latch) copia in Q l’ingresso quando il clock e’ alto (lo slave (secondo D-latch) e’ bloccato e non cambia stato ) m Slave copia il valore del master quando il clock va a 0 (il master e’ bloccato nel suo stato di memoria ed eventuali cambi all’ingresso non vengono letti) D clock Q !Q D-latch D clock Q !Q D-latch Q !Q D clock D Q Setup e hold time per un flip-flop D

7 Memoria6 Assunzioni  Metodologia edge-triggered  Comportamento tipico m Leggere il contenuto di elementi di memoria m I valori sono input di una o piu’ reti combinatorie m Scrivere i risultati in uno o piu’ elementi di memoria  Si assume che gli elementi di memoria siano scritti ad ogni ciclo di clock m Altrimenti si aggiunge un esplicito segnale di write In AND con il clock In AND con il clock m La scrittura avviene solo quando occorre la transizione di livello attiva ed il segnale di controllo e’ affermato State element 1 State element 2 Combinational logic clock one clock cycle

8 Memoria7 Registro  Registro m Simile ad un flip flop D eccetto n bit di ingresso e uscita n bit di ingresso e uscita Input Write Input Write m Write: Se negato (0): i dati in uscita (Data Out) non cambiano Se negato (0): i dati in uscita (Data Out) non cambiano Se affermato (1): i dati in uscita (Data Out) divengono uguali ai dati in ingresso (Data In) Se affermato (1): i dati in uscita (Data Out) divengono uguali ai dati in ingresso (Data In) clock D Q !Q Flip-FlopD D0D0 Q0Q0 D clock Q !Q D1D1 Q1Q1 D clock Q !Q D n-1 Q n-1 Write Flip-FlopD

9 Memoria8 Banco di registri (register file)  Banco di registri ad accesso rapido per memorizzare temporaneamente gli operandi usati nelle istruzioni  Nel MIPS il banco dei registri è composto da 32 registri generali m Due porte in lettura da 32 bit Read data 1/2 Read data 1/2 m Una porta in scrittura da 32 bit Write data Write data m Tre porte per selezionare i registri da 5 bit Read register #1 (#2) : primo (secondo) registro da leggere Read register #1 (#2) : primo (secondo) registro da leggere Write register: registro da scrivere Write register: registro da scrivere  Write: segnale di controllo m In AND con il clock (non mostrato) m Solo se Write=1 il valore in Write data e’ scritto nel registro indicato da Write Reg.

10 Memoria9 Banco di registri (2)  Un banco di registri può essere implementato con un multiplexer per ciascuna porta read, un decoder per ciascuna porta write ed un array di registri costruiti partendo da flip- flop D  Esempio: implementazione di due porte read per un banco di registri composto da n registri M u x Register 0 Register 1 Register n – 1 Register n M u x Read data 1 Read data 2 Read register number 1 Read register number 2

11 Memoria10 Banco di registri (3)  Esempio: implementazione di una porta write per un banco di registri composto da n registri Log 2 n to n

12 Memoria11 Principali tecnologie per RAM  Le memorie RAM sono di due tipi m Memorie statiche: Static Random Access Memory (SRAM) m Memorie dinamiche: Dynamic Random Access Memory (DRAM)  Memorie statiche m Il singolo elemento corrisponde ad un latch  Memorie dinamiche m Il singolo elemento corrisponde ad un condensatore ed un transistor m L’informazione è memorizzata sotto forma di carica del condensatore m Richiedono un refresh periodico dell’informazione  Le memorie statiche sono (rispetto a quelle dinamiche) m Più veloci (5ns vs ns) m Più costose (6 transistor per bit) m Persistenti (non è richiesto il refresh) m Più affidabili

13 Memoria12 Memoria Principale, Cache e Tecnologie  Prestazioni della memoria principale m Latenza Tempo di accesso: tempo tra quando arriva la richiesta e la parola Tempo di accesso: tempo tra quando arriva la richiesta e la parola Tempo di ciclo: tempo tra richieste Tempo di ciclo: tempo tra richieste m Banda  La memoria principale è DRAM m Dinamica in quanto ha bisogno di essere rinfrescata periodicamente (8 ms)  La memoria cache usa SRAM m No refresh (6 transistor/bit vs. 1 transistor) Dimensione: SRAM/DRAM = 4-8 Costo/Tempo di Ciclo: SRAM/DRAM = 8-16

14 Memoria13 Obiettivo: Illusione di una Memoria Grande, Veloce ed Economica  Osservazioni: m Le memorie di grandi dimensioni sono lente m Le memorie veloci hanno dimensioni piccole  Come creare una memoria che sia grande, economica e veloce (per la maggior parte del tempo)? m Gerarchia m Parallelismo

15 Memoria14 Gerarchia di memoria  La memoria di un calcolatore è implementata come una gerarchia di memorie m Differenti tempi di accesso e di costo corrispondenti ai diversi livelli di memoria... Livello 1 Livello 2 Livello n CPU Aumenta il tempo di accesso Aumenta la capacità di memorizzazione Diminuisce il costo per bit Dimensione della memoria ad ogni livello

16 Memoria15 Gerarchia di memoria (2)  Obiettivi della gerarchia di memoria: m Fornire all’utente una quantità di memoria pari a quella disponibile nella tecnologia più economica m Fornire una velocità di accesso pari a quella garantita dalla tecnologia più veloce Control Datapath Secondary Storage (Disk) Processor Registers Main Memory (DRAM) Second Level Cache (SRAM) On-Chip Cache 110,000,000 (10 ms) Speed (ns):10100 GSize (bytes):KM Tertiary Storage (Tape) 10,000,000,000 (10 sec) T

17 Memoria16 Gerarchia di memoria: Esempio del Pentium

18 Memoria17 Memoria Cache  La memoria principale (DRAM) è sempre più lenta del processore e tende a rallentarlo  Sono disponibili memorie più veloci (SRAM) ma solo per dimensioni limitate  La cache opera alla velocità del processore, e quindi nasconde la “lentezza” della memoria m Scopo della cache: disaccoppiare le velocità di processore e RAM  Contiene le ultime porzioni di memoria acceduta: se il processore richiede l’accesso ad una di esse evita un accesso alla memoria  Funziona bene sfruttando il principio di località dei riferimenti

19 Memoria18 Strategia di Utilizzo della Cache  La prima volta che il processore richiede dei dati si ha un cache miss m I dati vengono caricati dalla memoria principale e vengono copiati anche nella cache Si legge un blocco di parole contigue Si legge un blocco di parole contigue  Le volte successive, quando il processore richiede l’accesso ad una cella di memoria m Se il dato è presente in un blocco contenuto nella cache, la richiesta ha successo ed il dato viene passato direttamente al processore Si verifica un cache hit Si verifica un cache hit m Altrimenti la richiesta fallisce ed il blocco contenente il dato viene anche caricato nella cache e passato al processore Si verifica un cache miss Si verifica un cache miss  Obiettivo: aumentare quanto più possibile il tasso di cache hit

20 Memoria19 Principio di località  Osservazione: i programmi accedono ad una porzione relativamente piccola del loro spazio di indirizzamento  Esistono due tipi differenti di località 1. Località temporale (nel tempo): se un elemento (dato o istruzione) è stato acceduto, tenderà ad essere acceduto nuovamente in un tempo ravvicinato 2. Località spaziale (nello spazio): se un elemento (dato o istruzione) è stato acceduto, gli elementi i cui indirizzi sono vicini tenderanno ad essere acceduti in un tempo ravvicinato Esempio Esempio m I programmi contengono cicli: le istruzioni ed i dati saranno acceduti ripetutamente (località temporale) m Gli accessi agli elementi di un array presentano un’elevata località spaziale; nell’esecuzione di un programma è altamente probabile che la prossima istruzione sia contigua a quella in esecuzione Spazio di indirizzamento 02 n -1 Probabilità di riferimento

21 Memoria20 Principio di località (2)  Come sfruttare la: 1. Località temporale m Tenendo gli elementi acceduti più frequentemente vicino al processore 2. Località spaziale m Spostando blocchi contigui di parole al livello superiore


Scaricare ppt "Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci."

Presentazioni simili


Annunci Google