Qual è la differenza tra conflitto perdere e perdere la capacità di

Capacità di perdere si verifica perché i blocchi sono di essere eliminato dalla cache perché cache non può contenere tutti i blocchi necessari per l’esecuzione del programma (programma di lavoro impostato è molto più grande capacità di cache).

Conflitto miss si verifica nel caso di set associative o direct mapped blocco strategie di posizionamento, il conflitto manca verificarsi quando i blocchi vengono mappati sullo stesso set o il blocco telaio, detto anche di collisione manca o interferenze manca.

Sono in realtà strettamente correlati?

Per esempio, se tutte le linee di cache sono pieni e si dispone di una richiesta di lettura per memoria B, per il quale è necessario rimuovere la memoria di A.

Così dovrebbe essere considerato come una capacità di perdere dal momento che non abbiamo abbastanza spazio? E poi, se vogliamo, ad Una memoria, e poiché è sfrattato prima, è considerato come un conflitto di perdere.

Sono io la comprensione di questo correttamente? Grazie

InformationsquelleAutor xiaodong | 2015-10-24

 

3 Replies
  1. 43

    L’importante distinzione è tra la cache fallimenti causati dalla dimensione del set di dati e la cache fallimenti causati dal modo in cui la cache e i dati di allineamento sono organizzati.

    Supponiamo che hai una 32k direct mapped cache, e prendere in considerazione i seguenti 2 casi:

    1. Ripetutamente scorrere una 128k array. Non c’è modo i dati possono rientrare in tale cache, pertanto, tutte le manca sono capacità di quelli (tranne che per il primo accesso di ogni riga che è obbligatorio perdere, e sarebbe rimasto, anche se si potrebbe aumentare la vostra cache infinitamente).

    2. Si hanno 2 piccoli 8k matrici, ma purtroppo entrambi sono allineati e la mappa per la stessa imposta. Questo significa che, mentre si potrebbe teoricamente montare in cache, se si corregge l’allineamento), non utilizzare l’intera dimensione della cache e invece di competere per lo stesso gruppo di imposta e thrash ogni altro. Questi sono in conflitto manca, dal momento che i dati potrebbero andare bene, ma ancora si scontra dovuti all’organizzazione. Lo stesso problema può verificarsi con associative cache, anche se meno spesso (diciamo la cache è a 2 vie, ma si hanno 4 allineati insiemi di dati…).

    I 2 tipi sono, infatti, legati, si potrebbe dire che, dati gli alti livelli di associatività, impostare l’inclinazione, dati corretti allineamenti e le altre tecniche, è possibile ridurre i conflitti, fino a quando sei andato via con la vera capacità di un soffio che sono inevitabili.

    • Esempio eccellente, grazie
    • tu sei l’uomo! 😉
  2. 12

    Il mio preferito definizione di conflitto manca da Riduzione Obbligatoria e fallimenti di Capacità da Norman P. Jouppi:

    Conflitto manca sono fallimenti che non si sarebbe verificato se la cache erano
    completamente associativa, con sostituzione LRU.

    Vediamo un esempio. Abbiamo un direct-mapped cache di dimensione di 4. L’accesso sequenze sono

    0(obbligatoria perdere), 1(obbligatoria perdere), 2(obbligatorio perdere), 3(obbligatoria perdere), 4(obbligatoria
    miss), 1(hit), 2(hit), 3(hit), 0(capacità di perdere), 4(capacità di perdere), 0(conflitto perdere)

    Il penultimo 0 è una capacità di perdere perché, anche se la cache erano completamente associativa, con LRU cache, sarebbe comunque causa di un perdere perché 4,1,2,3 sono utilizzati prima dell’ultimo 0. Tuttavia l’ultimo 0 è un conflitto perdere perché in una cache completamente associativa ultimi 4 dovrebbe sostituire 1 nella cache invece di 0.

    • sir perché avete preso in considerazione di 4 come obbligatori perdere? non è un conflitto perdere perché c’è un concorso per uno stesso blocco?Voglio dire 0 è nel blocco 0 e 4 troppo vuole essere nel blocco 0
    • perché anche se è 0 non c’era, 4 vorresti ancora essere una miss. Facciamo un passo alla volta: un infinitamente grande cache completamente associativa è obbligatoria solo manca; ora andiamo a impostare un limite per la dimensione della cache e il nuovo manca sono considerati la capacità di perdere, infine, consentire la cache di essere una cache set associativa e il nuovo manca sono considerati conflitto manca.
    • Ho ricevuto poco equivoco sulla vostra risposta e controllato con un simulatore di cache. ecs.umass.edu/ece/koren/architecture/Cache/frame1.htm Trovato questa risposta, che è un po ‘ diverso da urs: 0(obbligatoria perdere), 1(obbligatoria perdere), 2(obbligatorio perdere), 3(obbligatoria perdere), 4(capacità di perdere), 1(hit), 2(hit), 3(hit), 0(capacità di perdere), 4(capacità di perdere), 0(hit) non ho visto conflitto perdere qui, potete per favore spiegare circa il conflitto di perdere?
    • Ho usato la cache di dimensione 4 e numero di set, 1, Se uso il numero di set di 2 tutte le capacità di miss sarà diventato un conflitto perdere.
    • nel mio esempio l’impostazione è corrispondenza diretta ( solo 1) Nel tuo primo esempio, è completamente cache associativa
    • Anche con 1-way set associative(direct mapped) impostazione nel simulatore, mostra solo 4 obbligatoria infortuni e 4 conflitto manca, e nessuna capacità di manca. È il simulatore di sbagliato?
    • Ho la tua spiegazione fino 0(compulsory miss), 1(compulsory miss), 2(compulsory miss), 3(compulsory miss), 4(compulsory miss), 1(hit), 2(hit), 3(hit), Ora non riesco a capire perché 0(capacity miss) è ora? È già possibile accedere una volta in partenza. Analogamente, per la 4(capacity miss). Potrebbe spiegare? Grazie in anticipo.
    • Penso che il simulatore è sbagliato. Primi 4 è sicuramente un freddo miss (obbligatoria perdere), poiché non ha mai avuto prima.

  3. 4

    Obbligatoria perdere: quando un blocco di memoria principale è il tentativo di occupare fresca riga vuota la cache e il primo accesso a un Blocco di memoria che deve essere messa in cache è chiamato obbligatoria perdere.

    Conflitto perdere: quando ancora ci sono righe vuote nella cache, blocco di memoria principale è in conflitto con il già riempito linea di cache di ie., anche quando il vuoto è disponibile, blocco cercando di occupare già riempito di linea. si chiama conflitto di perdere.

    Capacità di perdere: miss si è verificato quando tutte le linee di cache sono pieni.

    conflitto perdere, si verifica solo in direct mapped cache set-associative cache. Perché in associative mapping, nessun blocco della memoria principale, tenta di occupare già riempito di linea.

Lascia un commento