Salta al contenuto
Note per Studenti Esercizio 9 · memorie esterne, wait-state, FLASH e cache (temi d'esame 2004, novembre 2020 e gennaio 2026)

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 Tclk=25T_{clk}=25 ns (N=1N=1). Confrontare l'inserimento di un wait-state con l'aumento del periodo di clock.

(iv) Una cache con tempo di accesso tc=10t_c=10 ns affianca una memoria da tacc=50t_{acc}=50 ns. Calcolare lo speed-up per h=0,95h=0{,}95, l'hit ratio necessario per S=4S=4 e il tempo medio di un ciclo se la CPU usa la memoria solo il 60% del tempo, con Tclk=5T_{clk}=5 ns, tc=5t_c=5 ns e tacc=40t_{acc}=40 ns.

(v) In una cache a mappatura diretta con indirizzi a 16 bit, linee da 4 parole (W=2W=2) e 64 linee (L=6L=6), 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: 2048⋅328=2048⋅4=81922048\cdot\frac{32}8=2048\cdot4=\mathbf{8192} byte.
  • Tclk=133 MHz=30,3T_{clk}=\frac1{33\text{ MHz}}=30{,}3 ns. La memoria è accessibile in N=1N=1 ciclo se TA<TclkT_A<T_{clk}: 50>30,350>30{,}3, no. Con un wait-state TA<2⋅30,3=60,6T_A<2\cdot30{,}3=60{,}6 ns ✓. Quindi 1 wait-state (il rapporto 5030,3=1,65\frac{50}{30{,}3}=1{,}65 chiede 2 cicli totali).
  • Massimo clock a 1 ciclo: Tclk>50T_{clk}>50 ns, cioè fclk<150 ns=20 MHzf_{clk}<\frac1{50\text{ ns}}=\mathbf{20\ MHz}.

(ii) 8192 locazioni a 32 bit

  • Dimensione: 8192⋅4=327688192\cdot4=\mathbf{32768} byte (32 kbyte).
  • Tclk=1300 MHz=3,33T_{clk}=\frac1{300\text{ MHz}}=3{,}33 ns: 63,33=1,8⇒\frac6{3{,}33}=1{,}8\Rightarrow 1 wait-state (2⋅3,33=6,67>62\cdot3{,}33=6{,}67>6 ns).
  • Massimo clock a 1 ciclo: 16 ns=166,7 MHz\frac1{6\text{ ns}}=\mathbf{166{,}7\ MHz}.
  • Con IW da 16 bit: 32768 byte2 byte=16384\frac{32768\text{ byte}}{2\text{ byte}}=\mathbf{16384} istruzioni.
  • FLASH: programmabile una sola volta — No; programmabile e cancellabile all'infinito — No (oltre 10510^5 cicli); cancellabile solo per blocchi — Sì.

(iii) Wait-state o clock più lento

Con Tclk=25T_{clk}=25 ns e TA=30T_A=30 ns serve un wait-state: ogni accesso dura 2⋅25=502\cdot25=50 ns, il doppio (penalità del 100% sugli accessi). Portando Tclk=33T_{clk}=33 ns, TA=30<33T_A=30<33 ✓ 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

  • h=0,95h=0{,}95: tempo apparente 0,95⋅10+0,05⋅50=9,5+2,5=120{,}95\cdot10+0{,}05\cdot50=9{,}5+2{,}5=12 ns; S=5012=4,17S=\frac{50}{12}=\mathbf{4{,}17} (massimo 50/10=550/10=5).
  • S=4S=4: 5010h+50(1−h)=4⇒10h+50−50h=12,5⇒40h=37,5⇒h=0,9375\frac{50}{10h+50(1-h)}=4\Rightarrow10h+50-50h=12{,}5\Rightarrow40h=37{,}5\Rightarrow h=\mathbf{0{,}9375}.
  • Tciclo=q Tclk+(1−q)(h tc+(1−h)tacc)T_{ciclo}=q\,T_{clk}+(1-q)\big(h\,t_c+(1-h)t_{acc}\big) con q=0,4q=0{,}4 (tempo senza accessi): =0,4⋅5+0,6 (0,95⋅5+0,05⋅40)=2+0,6⋅6,75=6,05=0{,}4\cdot5+0{,}6\,(0{,}95\cdot5+0{,}05\cdot40)=2+0{,}6\cdot6{,}75=\mathbf{6{,}05} ns, contro 0,4⋅5+0,6⋅40=260{,}4\cdot5+0{,}6\cdot40=26 ns senza cache.

(v) Cache a mappatura diretta

Indirizzo a 16 bit: B+L+W=16B+L+W=16 con W=2W=2, L=6L=6: B=16−6−2=8B=16-6-2=\mathbf8 bit di TAG. La sezione DATA contiene 2L=642^L=64 linee da 2W=42^W=4 parole: 256 parole. La sezione TAG contiene un TAG per linea: 64⋅8=51264\cdot8=\mathbf{512} 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 TAT_A con TclkT_{clk} ignorando NN (il numero di cicli previsti per l'accesso).
  • Dimenticare che 1 wait-state con N=1N=1 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).

Teoria collegata