Esercizio 9memorie esterne, wait-state, FLASH e cache (temi d'esame 2004, novembre 2020 e gennaio 2026)
In questa pagina 7
Testo (prova del 28 giugno 2004 problema 10; esercizi del 27 novembre 2020 problema 6; gennaio 2026 problema P6).
(i) La memoria programmi (esterna) di un DSP contiene 2048 locazioni a 32 bit. Determinare: la dimensione in byte; il numero di wait-state se il tempo di accesso è 50 ns e il clock della CPU 33 MHz; la massima frequenza di clock che permette di accedere in un solo ciclo.
(ii) Stessa richiesta per 8192 locazioni a 32 bit, tempo di accesso 6 ns e clock 300 MHz; inoltre il massimo numero di istruzioni ospitabili se la parola di istruzione è di 16 bit. Quali tra le seguenti caratteristiche ha una memoria FLASH: programmabile una sola volta; programmabile e cancellabile all'infinito; cancellabile solo per blocchi?
(iii) Una memoria con tempo di accesso 30 ns è collegata a un µC con ns (). Confrontare l'inserimento di un wait-state con l'aumento del periodo di clock.
(iv) Una cache con tempo di accesso ns affianca una memoria da ns. Calcolare lo speed-up per , l'hit ratio necessario per e il tempo medio di un ciclo se la CPU usa la memoria solo il 60% del tempo, con ns, ns e ns.
(v) In una cache a mappatura diretta con indirizzi a 16 bit, linee da 4 parole () e 64 linee (), quanti bit ha il TAG? Quanto è grande la sezione DATA e quella TAG?
(vi) Vero/falso (gennaio 2026): a. una memoria OTP è un tipo particolare di memoria FLASH; b. la cancellazione di una FLASH sfrutta l'iniezione di elettroni caldi; c. la scrittura di una FLASH sfrutta l'effetto tunnel (Fowler-Nordheim); d. le SRAM richiedono meno dispositivi MOS per bit delle FLASH; e. le SRAM sono volatili; f. le DRAM richiedono frequenti refresh dei dati.
Teoria usata: Memorie esterne e cache - wait state e speed-upUna memoria con tempo di accesso $T_A$ è accessibile in $N$ cicli di clock se $T_A<N,T_{clk}$; altrimenti servono $N_w$ cicli di attesa (wait-state) con $T_A<(N+N_w)T_{clk}$. Un wait-state costa molto (+100% se $N=1$): spesso conviene abbassare il clock. La cache è una memoria piccola e veloce con le informazioni più richieste: se l'hit ratio è $h$, lo speed-up è $S=\dfrac{t_{acc}}{h,t_c+(1-h),t_{acc}}$ (massimo $t_{acc}/t_c$ per $h=1$, tipico $h\approx0{,}95$). Organizzazioni: a mappatura diretta (TAG, linea, word; la più semplice), associativaorganizzazione in cui ogni linea può stare in qualunque posizione della cache (qualunque linea ovunque, costosa), parzialmente associativa (più cache dirette in parallelo). Nei DSP la cache è spesso solo per le istruzioni.Memorie esterne e cache - wait state e speed-up →, Memorie - gerarchia, SRAM, DRAM, ROM e FLASHNei µC e DSP si usa solo memoria a stato solido ad accesso immediato, interna (on chip) o esterna. Parametri: dimensione, velocità (tempo di accesso, latenza, banda), consumo, integrazione. La memoria è gerarchica (registri → cache → SRAM interna → esterna) grazie alla localitàtendenza dei programmi a riusare gli stessi dati e a usare dati vicini in memoria spaziale e temporale. Tipi: SRAM (veloce, 4-6 transistori per cella, volatile, nessun refresh), DRAM (carica in un MOS, serve il refresh, più densa e a minor consumo), ROM/OTP/EPROM/EEPROM e FLASH (gate flottante: scrittura per elettroni caldi, cancellazione per effetto tunnel, solo per blocchi, $>10^5$ cicli). Una "RAM" è qualunque memoria con tempo di accesso indipendente dalla posizione.Memorie - gerarchia, SRAM, DRAM, ROM e FLASH →.
(i) 2048 locazioni a 32 bit
- Dimensione: byte.
- ns. La memoria è accessibile in ciclo se : , no. Con un wait-state ns ✓. Quindi 1 wait-state (il rapporto chiede 2 cicli totali).
- Massimo clock a 1 ciclo: ns, cioè .
(ii) 8192 locazioni a 32 bit
- Dimensione: byte (32 kbyte).
- ns: 1 wait-state ( ns).
- Massimo clock a 1 ciclo: .
- Con IW da 16 bit: istruzioni.
- FLASH: programmabile una sola volta — No; programmabile e cancellabile all'infinito — No (oltre cicli); cancellabile solo per blocchi — Sì.
(iii) Wait-state o clock più lento
Con ns e ns serve un wait-state: ogni accesso dura ns, il doppio (penalità del 100% sugli accessi). Portando ns, ✓ senza attese: l'accesso dura 33 ns invece di 25: penalità del 32%. La seconda scelta è migliore per il tempo di accesso, ma rallenta anche le istruzioni che non usano la memoria (il clock cala del 24%): la convenienza dipende dalla frazione di accessi in memoria.
(iv) Cache
- : tempo apparente ns; (massimo ).
- : .
- con (tempo senza accessi): ns, contro ns senza cache.
(v) Cache a mappatura diretta
Indirizzo a 16 bit: con , : bit di TAG. La sezione DATA contiene linee da parole: 256 parole. La sezione TAG contiene un TAG per linea: bit. L'accesso: il campo linea (6 bit) indirizza DATA e TAG; il TAG letto (8 bit) è confrontato con i 8 bit alti dell'indirizzo: se uguali, hit e la parola è scelta dal campo word (2 bit); altrimenti miss.
(vi) Vero o falso
- a. Falso: una OTP (PROM) è una memoria a fusibili, strutturalmente diversa dalla FLASH (gate flottante).
- b. Falso: la cancellazione usa l'effetto tunnel; l'iniezione di elettroni caldi serve alla scrittura.
- c. Falso: la scrittura usa gli elettroni caldi (si è scambiato con b).
- d. Falso: la SRAM ha 4 o 6 transistori per bit, la FLASH uno solo (con gate flottante).
- e. Vero: la SRAM perde i dati senza alimentazione.
- f. Vero: la DRAM conserva il bit come carica che si disperde e va rinfrescata (periodo dell'ordine del ms).
Errori comuni
- Confrontare con ignorando (il numero di cicli previsti per l'accesso).
- Dimenticare che 1 wait-state con raddoppia il tempo di accesso.
- Calcolare lo speed-up senza usare l'hit ratio.
- Scambiare scrittura e cancellazione della FLASH, o credere che si possa cancellare cella per cella.
Versione ripasso
Testo. Memorie esterne e wait-state (2048×32 bit a 33 MHz; 8192×32 bit a 300 MHz), FLASH, cache e speed-up, TAG, vero/falso (2004, novembre 2020, gennaio 2026).
- (i) 8192 byte; ns a 33 MHz: 1 wait-state; clock max 20 MHz. (ii) 32768 byte; 6 ns a 300 MHz: 1 wait-state; 166,7 MHz; 16384 istruzioni; FLASH: solo per blocchi.
- (iii) 30 ns su 25 ns: +100% con wait-state, +32% con ns.
- (iv) ; per : ; ns contro 26 ns.
- (v) TAG bit; DATA 256 parole; TAG 512 bit.
- (vi) a F, b F, c F, d F, e V, f V (Memorie - gerarchia, SRAM, DRAM, ROM e FLASHNei µC e DSP si usa solo memoria a stato solido ad accesso immediato, interna (on chip) o esterna. Parametri: dimensione, velocità (tempo di accesso, latenza, banda), consumo, integrazione. La memoria è gerarchica (registri → cache → SRAM interna → esterna) grazie alla localitàtendenza dei programmi a riusare gli stessi dati e a usare dati vicini in memoria spaziale e temporale. Tipi: SRAM (veloce, 4-6 transistori per cella, volatile, nessun refresh), DRAM (carica in un MOS, serve il refresh, più densa e a minor consumo), ROM/OTP/EPROM/EEPROM e FLASH (gate flottante: scrittura per elettroni caldi, cancellazione per effetto tunnel, solo per blocchi, $>10^5$ cicli). Una "RAM" è qualunque memoria con tempo di accesso indipendente dalla posizione.Memorie - gerarchia, SRAM, DRAM, ROM e FLASH →).
- Errori: contro con ; wait-state trascurabile; speed-up senza ; scrittura/cancellazione scambiate (Memorie esterne e cache - wait state e speed-upUna memoria con tempo di accesso $T_A$ è accessibile in $N$ cicli di clock se $T_A<N,T_{clk}$; altrimenti servono $N_w$ cicli di attesa (wait-state) con $T_A<(N+N_w)T_{clk}$. Un wait-state costa molto (+100% se $N=1$): spesso conviene abbassare il clock. La cache è una memoria piccola e veloce con le informazioni più richieste: se l'hit ratio è $h$, lo speed-up è $S=\dfrac{t_{acc}}{h,t_c+(1-h),t_{acc}}$ (massimo $t_{acc}/t_c$ per $h=1$, tipico $h\approx0{,}95$). Organizzazioni: a mappatura diretta (TAG, linea, word; la più semplice), associativaorganizzazione in cui ogni linea può stare in qualunque posizione della cache (qualunque linea ovunque, costosa), parzialmente associativa (più cache dirette in parallelo). Nei DSP la cache è spesso solo per le istruzioni.Memorie esterne e cache - wait state e speed-up →).