Tempo di accesso medio

Un processore ha la cache di primo livello on chip con tempo di accesso di 1Tck e hit rate del 90%; in caso di miss d eve andare in memoria centrale dove per caricare una linea di 32 byte sono necessari 10 clock con il clock di sistema a 500Mhz e il clock del processore a 1Ghz. Quale e’ il tempo di accesso medio?

Non ho la risposta, pero’ volevo ringraziarti per i tuoi quesiti… Quando li leggo mi sento ringiovanito, mi sembra di essere tornato indietro nel tempo, quando andavo alla statale… :slight_smile:

[quote=zod]
Non ho la risposta, pero’ volevo ringraziarti per i tuoi quesiti… Quando li leggo mi sento ringiovanito, mi sembra di essere tornato indietro nel tempo, quando andavo alla statale… :-)[/quote]

Sta a vedere che fra un po’ farete anche i supplenti…

Che ne dite di fare un corso di programmazione online ?
Ritenetemi già inscritto. :smiley:

Non son sicuro di capire cosa si intenda per tempo medio ma rispondo secondo mia interpetazione.

Se ci vogliono 10 colpi di clock del bus dati, per sapere quanti colpi perde il processore (che di norma è molto più veloce):

#cicli persi CPU = #cicli persi sul BUS * (freq.CPU/freq.BUS) = 10 * (10^9 / (5 * 10^8)) = 20

quindi per ogni miss la CPU perde 20 cicli di clock per aspettare che il dato sia disponibile. Dato che frequenza= 1/ periodo => periodo= 1/ frequenza = 10^-9 = 1 nano secondo, che corrisponde ad un ciclo di clock, quindi se perde 20 cicli, dovrà aspettare 20ns per avere il dato.

Tutto ciò avviene solo per le miss in L1 che corrispondono solo al 10% dei casi.

In caso di hit in L1 spreca 1 ciclo di clock di CPU, quindi un solo nano secondo.

Se dobbiam fare una media generale del sistema facciamo una media pesata con le loro probabilità:

#tempo medio= prob.hit * tempo_hit + prob.miss * tempo_miss = 0.91+0.120 = 2.9ns

quindi mediamente un accesso alla memoria costa 2.9ns

La risposta è giusta, però non riesco a capire perché nella formula usi freq.CPU/freq.BUS…cmq sei veramente un fenomeno:-)…per curiosità: sei un ing. informatico?

Rispondo dal fondo:

  • sì sono un ingegnere informatico

  • fenomeno deriva più che altro dal personaggio degli x-man :smiley:

  • faccio il rapporto perché così trovo quante volte in più devo contare i tempi di clock.

Se ho una CPU che gira a 1Ghz e un Bus dei dati che va a 500Mhz vuol dire che la CPU è 2 volte più veloce del BUS. Come scopro che è 2 volte più veloce?
freq.CPU/freq.BUS=(10^9)/(5*10^8)=10/5=2

quindi se in termini di BUS spreco X colpi di clock, in termini di CPU ne spreco due volte tanti perché la CPU è veloce il doppio.

Grazie…cmq sto aprendo tutti questi topic perché a pochi giorni avrò il compito di Calcolatori Elettronici…

In bocca al lupo :slight_smile: