O introducere generală la coerența cache
Rezumat: Conceptul de coerență a memoriei cache poate fi relativ nou pentru dvs., dar este un concept relativ important în domeniul computerului. Așadar, astăzi, această pagină vă va oferi o introducere generală asupra coerenței cache-ului.
Cuprins
Prezentare generală
În arhitectura computerului, coerența cache-ului este consistența datelor de resurse partajate, care sunt în cele din urmă stocate în mai multe cache-uri locale. Pot apărea probleme cu datele incoerente atunci când clienții mențin cache-urile resurselor de memorie comune, în special pentru procesoarele din sistemele cu multiprocesare.
Fiecare procesor are o memorie cache separată într-un sistem multiprocesor cu memorie partajată. Este probabil să aibă multe copii ale datelor partajate: o copie în memoria primară și una în memoria cache locală a fiecărui procesor care o solicită.
Dacă una dintre copiile datelor se modifică, celelalte copii trebuie să reflecte modificarea. Coerența cache-ului este o disciplină și asigură că schimbările în valorile operanzilor partajați (date) se propagă rapid în întregul sistem.
Următoarea parte listează cerințele pentru coerența cache-ului.
- Scrie Propagare: Modificările datelor din orice cache trebuie propagate către alte copii din memoria cache echivalentă.
- Serializarea tranzacțiilor: Toate procesoarele trebuie să vizualizeze Citirile/Scrierile într-o singură locație de memorie, în aceeași ordine.
Teoretic, coerența poate fi implementată la granularitatea de încărcare/stocare. Cu toate acestea, în practică, este de obicei executat la granularitatea blocului cache.
Definiţie
Coerența definește comportamentul de citire și scriere la o singură locație de adresă. Un tip de date care apar simultan în diferitele memorie cache se numește coerență cache. Se mai numește și memorie globală în unele sisteme.
Într-un sistem multiprocesor, mai multe procesoare au stocat în cache o copie a locației de memorie X. Pentru a obține coerența cache-ului, este necesar să se îndeplinească următoarele condiții.
- Când procesorul P citește locația X după scrierea de către același procesor Pto X și scrierea pe X de către alt procesor nu apare între instrucțiunea de scriere și citire de către P, X trebuie să returneze întotdeauna o valoare scrisă de P.
- Când procesorul P1 citește locația X, un alt procesor scrie de la P2 la X și orice alt procesor scrie pe X are loc între două accesări, iar citirile și scrierile sunt suficient de separate. X trebuie să returneze întotdeauna o valoare scrisă de P2. Această condiție definește conceptul de vedere coerentă a memoriei. Propagarea scrierilor în locații de memorie partajată asigură că toate cache-urile au o vedere coerentă asupra memoriei. Dacă procesorul P1 citește valoarea veche a lui X, putem spune că memoria este incoerentă chiar și după ce P2 este scris.
Condițiile de mai sus îndeplinesc condițiile de propagare a scrierii necesare pentru coerența cache-ului. Dar nu sunt adecvate, deoarece nu îndeplinesc criteriile de Serializare a Tranzacțiilor.
Mecanisme de coerență
Există două mecanisme cele mai comune pentru asigurarea coerenței:cofiind şi bazate pe directoare, fiecare cu avantajele și dezavantajele sale. Dacă este disponibilă suficientă lățime de bandă, protocoalele bazate pe Snooping tind să fie mai rapide, deoarece toate tranzacțiile sunt cereri/răspunsuri pe care le văd toți procesoarele.
Dezavantajul este că snoopingul nu are scalabilitate. Fiecare solicitare trebuie difuzată către toate nodurile din sistem, ceea ce înseamnă că pe măsură ce sistemul crește, dimensiunea magistralei și lățimea de bandă pe care o furnizează trebuie să crească.
Pe de altă parte, directoarele tind să aibă o latență mai mare, cu trei solicitări/redirecționări/răspunsuri. Cu toate acestea, directoarele folosesc mult mai puțină lățime de bandă, deoarece mesajele sunt mai degrabă punct la punct decât difuzate. Ca rezultat, multe sisteme mari adoptă acest tip de coerență a cache-ului.
Protocoale de coerență
Protocolul de consistență aplică consistența cache-ului în sistemele multiprocesor. Scopul este de a se asigura că doi clienți nu trebuie să vadă valori diferite în aceleași date partajate.
Protocolul trebuie să atingă cerințele de bază de coerență, adaptate sistemelor sau aplicațiilor țintă.
Protocoalele pot fi, de asemenea, clasificate ca snoopy sau bazate pe directoare. De obicei, primele sisteme au adoptat protocoale bazate pe directoare, în care directorul urmărește datele partajate și distribuitorii. Solicitările de tranzacție sunt trimise tuturor procesoarelor într-un protocol snoopy. Toți procesatorii monitorizează cererile și răspund în mod corespunzător.
Articolul precedent
[2022] Cel mai bun software de filigran pe Windows Rezumat: Conceptul de coerență a memoriei cache poate fi relativ nou pentru dvs., dar este un concept relativ important în domeniul computerului. Asa ca astazi, asta...Articolul următor
Cel mai bun software OCR online pe Windows/iOS/Android Rezumat: Conceptul de coerență a memoriei cache poate fi relativ nou pentru dvs., dar este un concept relativ important în domeniul computerului. Asa ca astazi, asta...Despre Bitwar Data Recovery
3 pași pentru a recupera peste 500 de tipuri de documente șterse, formatate sau pierdute, fotografii, videoclipuri, audio, fișiere de arhivă din diferite scenarii de pierdere de date.
Află mai multe