Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Windows 7, XP
  • Fizička i logička organizacija memorije računarskih sistema. Organizacija memorije u računarima

Fizička i logička organizacija memorije računarskih sistema. Organizacija memorije u računarima

Poglavlje 11

Organizacija računarstvo memorije sistemima

U računarskim sistemima koji kombinuju mnoge paralelne procesore ili mašine, zadatak korektna organizacija pamćenje je jedno od najvažnijih. Razlika između brzine procesora i memorije oduvijek je bila kamen spoticanja kod jednoprocesorskih VM-ova. VS multiprocesiranje dovodi do drugog problema - problema istovremenog pristupa memoriji sa više procesora.

U zavisnosti od toga kako je memorija višeprocesorskih (višeračunarskih) sistema organizovana, računarski sistemi se razlikuju sa zajednička memorija(zajednička memorija) i VS sa distribuiranom memorijom. V zajednički memorijski sistemi(često se naziva i zajednička ili zajednička memorija) Memorija Sunca se smatra resursom zajednice, a svaki od procesora ima pun pristup na cijeli adresni prostor. Sistemi dijeljene memorije se nazivaju čvrsto vezan(usko povezani sistemi). Slična konstrukcija računarskih sistema odvija se iu klasi SIMD iu klasi MIMD. Ponekad, da bi se naglasila ova činjenica, uvode se posebne podklase, koristeći skraćenice SM-SIMD (Shared Memory SIMD) i SM-MIMD (Shared Memory MIMD) za njihovo označavanje.

U opciji sa distribuiranom memorijom svakom od procesora je dodeljena sopstvena memorija. Procesori se spajaju v mreže i mogu po potrebi razmjenjivati ​​podatke pohranjene u njihovoj memoriji, prenoseći jedni drugima tzv poruke. Ova vrsta aviona se zove labavo spojeno(labavo spregnuti sistemi). Slabo srodni sistemi se takođe nalaze i u SIMD klasi iu MIMD klasi, a ponekad da se naglasi ovu funkciju, uvesti podklase DM-SIMD (Distributed Memory SIMD) i DM-MIMD (Distributed Memory MIMD).

U nekim slučajevima se pozivaju računarski sistemi sa zajedničkom memorijom multiprocesori, i sistemi sa distribuiranom memorijom - mtsltcomputers.

Razlika između dijeljene i distribuirane memorije je razlika u strukturi virtuelna memorija, odnosno kako memorija izgleda sa strane procesora. Fizički, gotovo svaki memorijski sistem je podijeljen na samostalne komponente kojima se može pristupiti nezavisno. Način na koji memorijski podsistem tumači adresu ćelije primljenu od procesora je odvojen od dijeljene memorije. Na primjer, pretpostavimo da procesor izvršava naredbu load RO, i, što znači "Učitaj registar R0 sa sadržajem ćelije i". U slučaju dijeljene memorije, i je globalna adresa i ukazuje na istu lokaciju za bilo koji procesor. V distribuirani sistem memorija ja je lokalna adresa Ako dva procesora izvrše naredbu load RO, i, tada svaki od njih pristupa i-ta ćelija u svojoj lokalnoj memoriji, tj različite ćelije, a nejednake vrijednosti se mogu učitati u registre R0.

Programer mora imati na umu razliku između dva memorijska sistema, jer ona određuje način na koji dijelovi paralelnog programa međusobno djeluju. U varijanti sa zajedničkom memorijom, dovoljno je kreirati strukturu podataka u memoriji i prenijeti reference na tu strukturu u paralelne potprograme. U sistemu distribuirane memorije, morate imati kopiju zajedničkih podataka u svakoj lokalnoj memoriji. Ove kopije se kreiraju ugnježđivanjem zajedničkih podataka u poruke poslane drugim procesorima.

Memorija sa naizmjenično adrese

Fizički, memorija računarskog sistema se sastoji od nekoliko modula (banka), a bitno je pitanje kako je u ovom slučaju raspoređen adresni prostor (skup svih adresa koje procesor može formirati). Jedan od načina za distribuciju virtuelnih adresa po memorijskim modulima je podjela adresnog prostora u sekvencijalne blokove. Ako se memorija sastoji od NS banke, zatim ćelija sa adresom i u slučaju dijeljenja bloka, bit će u banci sa brojem ja /n. U sistemu interleaved memorija(interleaved memory) uzastopne adrese se nalaze u različitim bankama: ćelija sa adresom i je u banci sa brojem i mod NS. Neka se, na primjer, memorija sastoji od četiri banke, po 256 bajtova u svakoj. U šemi blok adresiranja, prva banka će biti dodijeljena virtuelne adrese 0-255, druga - 256-511, itd. U šemi sa naizmjeničnim adresama, uzastopne ćelije u prvoj banci će imati virtualne adrese 0, 4, 8, .... u drugoj banci - 1, 5, 9 itd. (Slika 11.1, a).

Distribucija adresnog prostora među modulima omogućava simultanu obradu zahtjeva za pristup memoriji, ako odgovarajuće adrese pripadaju različitim bankama, procesor može zatražiti pristup ćeliji u jednom od ciklusa i a u sledećem ciklusu - do ćelije j. Ako ja ij su u različitim bankama, informacije će se prenositi u uzastopnim ciklusima. Ovdje se ciklus odnosi na ciklus procesora, dok potpuni memorijski ciklus traje nekoliko ciklusa procesora. Dakle, u ovom slučaju, procesor ne mora čekati dok se ne završi puni ciklus pristupa ćeliji. i. Razmatrana tehnika vam omogućava da povećate propusnost: ako se memorijski sistem sastoji od

https://pandia.ru/text/78/264/images/image002_61.jpg "width =" 62 "height =" 15 "> Razmak između elemenata se naziva korak po indeks ili Stride(korak). Jedan od zanimljive aplikacije ovo svojstvo može poslužiti kao pristup matricama. Ako je korak indeksa jedan veći od broja redova u matrici, jedan zahtjev za pristup memoriji će vratiti sve dijagonalne elemente matrice (slika 11.1, b). Odgovornost za osiguravanje da se svi preuzeti elementi matrice nalaze u različitim bankama leži na programeru.

Modeli memorijske arhitekture računarskih sistema

Unutar dijeljene i distribuirane memorije implementirano je nekoliko modela arhitektura memorijskog sistema.

DIV_ADBLOCK84 ">

Rice. 11.3. Zajednička memorija: a - kombinovanje procesora pomoću magistrale; b - sistem sa lokalnim keš memorijama; v- performanse sistema kao funkcija broja procesora na magistrali; d - višeprocesorski VS sa zajedničkom memorijom, koji se sastoji od odvojenih modula

Alternativni način konstrukcija višeprocesorskog VS-a sa zajedničkom memorijom zasnovanom na NML-u prikazana je na Sl. 11.3, G. Ovdje je šiljak zamijenjen prekidačem koji usmjerava zahtjeve procesora na jedan od nekoliko memorijskih modula. Uprkos činjenici da postoji nekoliko memorijskih modula, svi oni pripadaju jednom virtuelnom adresnom prostoru. Prednost ovog pristupa je u tome što komutator može paralelno opsluživati ​​više zahtjeva. Svaki procesor se može povezati na svoj memorijski modul i imati pristup njemu pri maksimalnoj dozvoljenoj brzini. Rivalstvo između procesora može nastati kada pokušavate pristupiti istom memorijskom modulu u isto vrijeme. U ovom slučaju, samo jedan procesor dobija pristup, a ostali su blokirani.

Nažalost, UMA arhitektura nije dobro skalirana. Najčešći sistemi sadrže 4-8 procesora, mnogo rjeđe 32-64 procesora. Osim toga, takvi sistemi se ne mogu klasificirati kao otporni na greške, jer kvar jednog procesora ili memorijskog modula povlači kvar cijelog aviona.

Drugi pristup izgradnji zajedničke memorije VS je neujednačen pristup memoriji, označen kao NUM A (Neuniformni pristup memoriji), još uvijek postoji jedan adresni prostor, ali svaki procesor ima lokalnu memoriju. Procesor direktno pristupa svojoj lokalnoj memoriji, što je mnogo brže od pristupa udaljenoj memoriji preko prekidača ili mreže. Takav sistem se može dopuniti globalnom memorijom, a onda lokalni uređaji za skladištenje deluju kao brza keš memorija za globalnu memoriju. Takva šema može poboljšati performanse aviona, ali nije u stanju da u nedogled odloži izjednačavanje direktnih performansi. Ako svaki procesor ima lokalnu keš memoriju (slika 11.3.6), postoji velika vjerovatnoća (p> 0.9) da se tražena komanda ili podaci već nalaze u lokalnoj memoriji. Razumna vjerovatnoća pogađanja lokalne memorije značajno smanjuje broj poziva procesora To globalno pamćenje i na taj način dovodi do povećane efikasnosti. Mesto preloma krive performansi (gornja kriva na sl.11.3, v), tačka u kojoj je dodavanje procesora i dalje efektivno sada se pomera u procesorsko područje 20, a tanja, gde kriva postaje horizontalna, u region procesora 30.

U okviru koncepta NUMA implementirano je nekoliko različitih pristupa, označenih skraćenicama SOMA,CC-NUMA i NCC-NUMA.

V arhitektura samo za keš memoriju(SOMA, arhitektura samo keš memorije) Lokalna memorija svakog procesora je izgrađena kao velika keš memorija za brz pristup sa strane "vlastitog" procesora. Keš memorije svih procesora zajedno se smatraju globalnom memorijom sistema. Ne postoji stvarna globalna memorija. Osnovna karakteristika SOMA koncepta je izražena u dinamici. Ovdje podaci nisu statički vezani za određeni memorijski modul i nemaju jedinstvenu adresu koja ostaje nepromijenjena za cijeli životni vijek varijable. U SOMA arhitekturi, podaci se prenose u keš memoriju procesora koji ih je posljednji zatražio, dok varijabla nije fiksirana jedinstvenom adresom i u svakom trenutku može se nalaziti u bilo kojoj fizičkoj ćeliji. Premještanje podataka iz jedne lokalne keš memorije u drugu ne zahtijeva učešće u ovom procesu operativni sistem ali podrazumijeva složen i skup hardver za upravljanje memorijom. Za organizaciju takvog režima tzv cache direktorije. Imajte na umu i da se posljednja kopija stavke nikada ne uklanja iz keša.

Budući da se u arhitekturi SOMA podaci premeštaju u lokalnu keš memoriju procesora vlasnika, takvi avioni imaju značajnu prednost u performansama u odnosu na druge arhitekture NUM A. S druge strane, ako jedna varijabla ili dvije različite varijable pohranjuju istu keš memoriju u jednu linija je potrebna za dva procesora, ova linija keša mora se pomicati naprijed-nazad između procesora svaki put kada se pristupi podacima. Takvi efekti mogu ovisiti o detaljima dodjele memorije i dovesti do nepredvidivih situacija.

Model cache-koherentan neuniformni pristup memoriji(CC-NUMA, Sache Coherent Non-Uniform Memory Architecture) se fundamentalno razlikuje od SOMA modela. CC-NUMA sistem ne koristi keš memoriju, već uobičajenu fizički dodijeljenu memoriju. Ne dolazi do kopiranja stranica ili podataka između memorijskih lokacija. Nema softverskih poruka. Postoji samo jedan memorijski stick, sa dijelovima fizički povezanim bakrenim kablom i pametnim hardverom. Koherentnost keš memorije zasnovana na hardveru znači da nije potreban softver za skladištenje više kopija ažuriranih podataka ili njihovo prenošenje. Hardverski nivo rješava sve ovo. Pristup lokalnim memorijskim modulima u različitim čvorovima sistema može se obavljati istovremeno i brži je nego udaljenim memorijskim modulima.

Razlika između modela sa keš nekoherentan neujednačen pristup memoriji(NCC-NUMA, Non-Cache koherentna neuniformna memorijska arhitektura) iz CC-NUMA očigledno je iz imena. Arhitektura memorije pretpostavlja jedan adresni prostor, ali ne pruža hardversku konzistentnost globalnih podataka. Upravljanje korištenjem takvih podataka u potpunosti zavisi od softvera (aplikacija ili kompajlera). Uprkos ovoj okolnosti, koja se čini kao nedostatak arhitekture, ispostavlja se da je veoma korisna u povećanju performansi računarskih sistema sa memorijskom arhitekturom tipa DSM, koja se razmatra u odeljku „Modeli distribuiranih memorijskih arhitektura“.

Općenito se nazivaju AC-ovi sa zajedničkom memorijom izgrađenom prema NUMA shemi arhitekture virtualne dijeljene memorije(virtuelne arhitekture dijeljene memorije). Ova vrsta arhitekture, posebno CC-NUMA, u novije vrijeme smatra se nezavisnim i prilično obećavajućim tipom računarskih sistema MIMD klase, stoga će se o takvim avionima detaljnije govoriti u nastavku.

Modeli arhitekture distribuirane memorije

U distribuiranom memorijskom sistemu, svaki procesor ima svoju memoriju i može samo da joj se obrati. Neki autori ovu vrstu sistema nazivaju višekompjuterski avion ili multiračunar, naglašavajući činjenicu da su gradivni blokovi sistema sami mali računarski sistemi sa procesorom i memorijom. Modeli arhitektura distribuirane memorije obično se označavaju kao arhitekture bez direktan pristup u udaljenu memoriju(NORMA, Nema pristupa daljinskoj memoriji). Ovo ime proizilazi iz činjenice da svaki procesor ima pristup samo svojoj lokalnoj memoriji. Pristup udaljenoj memoriji (lokalna memorija drugog procesora) moguć je samo razmjenom poruka sa procesorom koji posjeduje adresabilnu memoriju.

Ova organizacija ima niz prednosti. Prvo, kada se pristupa podacima, nema konkurencije za sabirnicu ili prekidače - svaki procesor može u potpunosti koristiti propusni opseg komunikacijske staze sa vlastitom lokalnom memorijom. Drugo, odsustvo dijeljene magistrale znači da ne postoje povezana ograničenja za broj procesora: veličina sistema je ograničena samo mrežom procesora. Treće, otklanja se problem koherentnosti keša. Svaki procesor ima pravo da samostalno mijenja svoje Podatke bez brige o usklađivanju kopija podataka u svojoj lokalnoj keš memoriji sa keš memorijama drugih procesora.

Glavni nedostatak računara s distribuiranom memorijom je složenost razmjene informacija između procesora. Ako nekom od procesora trebaju podaci iz memorije drugog procesora, on mora razmjenjivati ​​poruke s ovim procesorom. To dovodi do dvije vrste troškova:

· Potrebno je vrijeme da se formira i proslijedi poruka od jednog! procesor drugom;

· Da bi pružio odgovor na poruke od drugih procesora, procesor primatelj mora primiti zahtjev za prekid i izvršiti proceduru za rukovanje ovim prekidom.

Struktura distribuiranog memorijskog sistema prikazana je na Sl. 11.4. Na lijevo! dijelovi (sl.11.4, a) prikazan je jedan procesni element (PE). Uključuje) sam procesor (P), lokalnu memoriju (M) i dva I/O kontrolera (Ko i KD sa desne strane (Sl.11.4, b) prikazan je sistem sa četiri procesora koji ilustruje kako se poruke šalju sa jednog procesora na drugi. U odnosu na svaki PE, svi ostali procesni elementi se mogu posmatrati jednostavno kao ulazno/izlazni uređaji. Za slanje poruke drugom PE, procesor formira blok podataka u svojoj lokalnoj memoriji i obavještava ga lokalni kontroler o potrebi prijenosa informacija na vanjski uređaj. Preko interkonektivne mreže, ova poruka se prosljeđuje prijemnom I/O kontroleru prijemnog PE. Potonji pronalazi prostor za poruku u vlastitoj lokalnoj memoriji i obavještava izvorni procesor da je poruka primljena.

DIV_ADBLOCK89 ">

Zanimljiva varijanta distribuiranog memorijskog sistema je; model distribuiranu zajedničku memoriju(DSM, Distribute Shared Memory), poznat i pod drugim imenom arhitektura sa heterogenimpristup memoriji i usklađenost softvera(SC-NUMA, softversko koherentna neuniformna arhitektura memorije). Ideja ovog modela je da BC, kao fizički sistem sa distribuiranom memorijom, zahvaljujući operativnom sistemu izgleda korisniku kao sistem sa zajedničkom memorijom. To znači da operativni sistem korisniku nudi jedan adresni prostor, uprkos činjenici da je stvarni pristup memoriji "stranog" avionskog računara i dalje omogućen razmjenom poruka.

Multiprocesorkoherentnost skladiste- memorija

Višeprocesorski sistem dijeljene memorije sastoji se od dva ili više nezavisnih procesora, od kojih svaki izvršava dio velikog programa ili neovisni program. Svi procesori pristupaju uputstvima i podacima pohranjenim u zajedničkoj glavnoj memoriji. Budući da je memorija zajednički resurs, postoji konkurencija između procesora kada joj pristupaju, što povećava prosječnu latenciju pristupa memoriji. Da bi se smanjilo ovo kašnjenje, svakom procesoru se dodjeljuje lokalna predmemorija, koja, služeći pristupima lokalnoj memoriji, u mnogim slučajevima sprječava potrebu za pristupom zajedničkoj glavnoj memoriji. Zauzvrat, opremanje svakog procesora lokalnom keš memorijom dovodi do tzv problem koherentnosti ili pružanje u dogovorukeš memorija. Prema sistemu, sistem je koherentan ako svaka operacija čitanja na nekoj adresi, koju je izvršio bilo koji od procesora, vraća vrijednost unesenu tokom posljednje operacije pisanja na ovoj adresi, bez obzira na to koji je procesor posljednji upisao.

V najjednostavniji oblik problem koherentnosti keša može se objasniti na sljedeći način (slika 11.5). Neka dva procesora Rg i Pr su povezani na zajedničku memoriju preko magistrale. Prvo, oba procesora čitaju varijablu NS. Kopije blokova koji sadrže ovu varijablu se prenose iz glavne memorije u lokalne keš memorije oba procesora (slika 11.5, a). Tada procesor Pt izvodi operaciju povećanja vrijednosti varijable NS po jedinici. Pošto se kopija varijable već nalazi u kešu ovog procesora, doći će do cache hita i vrijednost će biti promijenjena samo u kešu 1. Ako sada procesor P2 ponovo izvrši operaciju čitanja NS, tada će se desiti i cache hit i P2 će primiti "staru" vrijednost pohranjenu u njegovoj keš memoriji NS(sl.11.5, b).

Održavanje konzistentnosti zahtijeva da kada se stavka podataka promijeni od strane jednog od procesora, odgovarajuće promjene se izvrše u keš memoriji drugih procesora, gdje se nalazi kopija promijenjene stavke podataka, kao iu zajedničkoj memoriji. Sličan problem se javlja, inače, u jednoprocesorskim sistemima, gdje postoji nekoliko nivoa keš memorije. Ovdje je potrebno uskladiti sadržaje keša različitih nivoa.

Postoje dva pristupa rješavanju problema koherentnosti: softverski i hardverski. Neki sistemi koriste strategije koje kombinuju oba pristupa.

Softver načine rješenjaProblemi koherentnost

Softverske tehnike za rješavanje problema koherentnosti omogućavaju bez njih dodatna oprema ili ga svesti na minimum.

ProtokolBerkeley. Berkeley protokol je primijenjen na Berkeley višeprocesorski sistem baziran na RISC procesorima.

Opterećenje promašaja keš memorije ublaženo je idejom protokola o vlasništvu nad linijom keša. Generalno, glavna memorija se smatra vlasnikom svih blokova podataka. Prije izmjene sadržaja reda u njegovoj keš memoriji, procesor mora steći vlasništvo nad redom. Ova prava se stiču posebnim operacijama čitanja i pisanja. Ako se prilikom pristupa bloku čiji vlasnik u ovog trenutka nije glavna memorija, dolazi do promašaja keš memorije, procesor koji posjeduje red sprječava čitanje iz glavne memorije i hrani procesor koji traži podatke iz svoje lokalne keš memorije.

Još jedno poboljšanje je uvođenje zajedničke države. Kada procesor upisuje u jednu od linija svoje lokalne keš memorije, obično generiše signal za odbacivanje kopija promjenjivog bloka u drugim keš memorijama. U Berkeley protokolu, signal odbacivanja se generira samo ako postoje takve kopije u drugim kešovima. Ovo može značajno smanjiti neproduktivan autobuski saobraćaj. Mogući su sljedeći scenariji.

Prije svega, svaki put kada procesor upiše u svoju keš memoriju, promjenjivi niz se stavlja u privatno prljavo (PD) stanje. Dalje, ako je niz zajednički, signal za poništavanje se šalje na sabirnicu, a u svim lokalnim kešovima gdje postoji kopija ovog bloka podataka, ove kopije se stavljaju u "nevažeće" stanje (I, Invalid). Ako dođe do promašaja pisanja, procesor dobiva kopiju bloka iz keš memorije trenutnog mastera traženog bloka. Tek nakon ovih radnji procesor upisuje u svoju keš memoriju.

U slučaju promašaja keš memorije za čitanje, procesor šalje zahtjev vlasniku bloka kako bi dobio najnoviju verziju potonjeg, a njegovu novu kopiju stavlja u stanje samo za čitanje (RO, Read Only). Ako je red bio u vlasništvu drugog procesora, on označava njegovu kopiju bloka kao Shared Dirty (SD).

Dijagram stanja Berklijevog protokola prikazan je na Sl. 11.10.

Upoređujući protokole za jednokratno upisivanje i Berkeley, može se primijetiti sljedeće. Oba protokola koriste strategiju pisati natrag, u kojem se promijenjeni blokovi zadržavaju u keš memoriji što je duže moguće. Glavna memorija se ažurira samo kada se red izbriše iz keša. Gornja granica za ukupan broj transakcija pisanja na sabirnici određena je onim dijelom protokola za jednokratno upisivanje gdje je implementirano pisanje, budući da potonja strategija generiše operaciju pisanja na sabirnici sa svakom promjenom koju inicira procesor. Budući da je prva operacija pisanja u protokolu za jednokratno upisivanje prolazna, ona se izvodi čak i ako se podaci ne dijele. Ovo podrazumeva dodatni promet magistralu, koja se povećava sa povećanjem kapaciteta keš memorije. Dokazano je da protokol jednom pisanja rezultira većim prometom sabirnice u odnosu na Berkeley protokol .







Čitajući pogodak

Rice. 11.10. Berkeley protokol

Čitljiva i ažurirana linija u protokolu za jednokratno upisivanje zahtijeva da se linija pročita u keš memoriju, lokalno modificira u keš memoriji i zapiše natrag u memoriju. Cijela procedura zahtijeva dvije operacije na magistrali: čitanje iz glavne memorije (RAM) i upisivanje natrag u RAM. Berkeley protokol se, s druge strane, odnosi na stjecanje dozvola za redove. Zatim se blok modificira u kešu. Ako se redu nije pristupilo prije brisanja iz keša, ciklusi sabirnice će biti isti kao u protokolu za jednokratno upisivanje. Međutim, vjerovatnije je da će linija biti ponovo zatražena, tada sa stanovišta jedne keš memorije, ažuriranje keš linije zahtijeva samo jednu operaciju čitanja na magistrali. Prema tome, Berkeley protokol prenosi linije direktno između keš memorija, dok protokol za jednokratno upisivanje prenosi blok iz izvorne keš memorije u glavnu memoriju, a zatim iz OP-a u keš memorije koji zahtijeva, što rezultira ukupnim kašnjenjem memorijskog sistema. .

ProtokolIllinois. Protokol iz Ilinoisa, koji je predložio Marc Papamarcos, takođe ima za cilj da smanji saobraćaj sa magistrale, a time i vremensko ograničenje procesora za pristup magistrali. Ovdje je, kao iu Berkeley protokolu, ideja o vlasništvu nad blokovima dominantna, ali malo izmijenjena. U Illinois protokolu, vlasništvo ima svaka keš memorija koja sadrži ispravnu kopiju bloka podataka. U ovom slučaju, isti blok može imati više vlasnika. Kada se to dogodi, svakom procesoru se dodjeljuje određeni prioritet i vlasnik s višim prioritetom postaje izvor informacija.

Kao iu prethodnom slučaju, signal za poništenje se generira samo kada su kopije ovog bloka dostupne u drugim kešovima. Mogući scenariji za Illinois protokol prikazani su na sl. 11.11.

Rice. 11.11. Illinois Protocol

Svaki put kada procesor upiše u svoju keš memoriju, modificirani niz se stavlja u privatno prljavo (PD) stanje.Ako je blok podataka zajednički, signal za ukidanje se šalje na sabirnicu i u svim lokalnim kešovima postoji kopija ovog bloka , ove kopije se prenose u "nevažeće" stanje (I, Invalid). Ako dođe do promašaja pisanja, procesor preuzima kopiju iz keš memorije trenutnog vlasnika traženog bloka. Tek nakon navedenih radnji, procesor upisuje u svoju keš memoriju. Kao što vidite, u ovom dijelu postoji potpuna podudarnost sa Berkeley protokolom.

U slučaju propusta čitanja keš memorije, procesor šalje zahtjev vlasniku bloka kako bi dobio najnoviju verziju potonjeg, a njegovu novu kopiju stavlja u "isključivo" (E, Exclusive) stanje, pod uvjetom da je jedini vlasnik reda. U suprotnom, status se mijenja u "dijeljeno" (S, Shared).

Od suštinskog je značaja da je protokol proširiv i blisko vezan i za omjer promašaja keša i za količinu podataka koja je zajedničko svojstvo višeprocesorskog sistema.

ProtokolFirefly. Protokol su predložili Tucker i drugi i implementiran u Firefly Multiprocessor Workstation, višeprocesorski sistem razvijen u istraživačkom centru Digital Equipment Corporation.

Firefly protokol koristi zapis ažuriranja. Moguća stanja keš linije su ista kao stanja protokola Illinois (Slika 11-12). Razlika je u tome što se strategija povratnog upisivanja primjenjuje samo na redove u PD ili E stanju, dok se prepisivanje primjenjuje na redove u S stanju. Predmemorije Watcher-a koriste prepisivanje za ažuriranje svojih kopija. Osim toga, posmatranje keš memorija koje pronađu kopiju linije u njima pozivaju posebnu "dijeljenu" liniju magistrale tako da kontroler pisanja može odlučiti u koje stanje će staviti liniju u koju je napisana. "Zajednička" linija na promašaju keš memorije za čitanje služi da informiše lokalni keš kontroler odakle je došla kopija linije: iz glavne memorije ili druge keš memorije. Dakle, S stanje se primjenjuje samo na podatke koji se stvarno dijele.

https://pandia.ru/text/78/264/images/image018_2.jpg "width =" 491 visina = 316 "height =" 316 ">

Rice. 11.13. Dragon Protocol

ProtokolMESI. Naravno, među poznatim protokolima za nadzor, najpopularniji je MESI (Modified / Exclusive / Shared / Invalid) protokol. MESI protokol se naširoko koristi u komercijalne svrhe mikroprocesorski sistemi, na primjer baziran na Pentium i PowerPC mikroprocesorima. Dakle, može se naći u internom kešu i kontroleru eksterna keš memorija i82490 Pentium mikroprocesora, u i860 procesoru i MC88200 keš kontroleru iz Motorola.

Protokol je dizajniran za predmemoriju s povratnim upisivanjem. Jedan od glavnih ciljeva MESI protokola je da odgodi povratni upis inkapsuliranih podataka u glavnu memoriju BC što je duže moguće. Ovo poboljšava performanse sistema minimizirajući potrebne prijenose informacija između keš memorije i glavne memorije. MESI protokol svakoj liniji keš memorije dodjeljuje jedno od četiri stanja, koja su kontrolirana sa dva MESI bita stanja u oznaci te linije. Status keš linije može promijeniti i procesor, za koji je ova keš memorija lokalna, i drugi procesori višeprocesorske "šeme". Upravljanje stanjem keš linija može se dodijeliti vanjskim logičkim uređajima. Jedna od verzija protokola predviđa korištenje prethodno razmatrane šeme za jednokratno upisivanje.

Shared(S, Shared) - linija keša odgovara sličnoj liniji u glavnoj memoriji (podaci su važeći) i može biti prisutna u jednom ili više drugih keša.

Nevažeći(I, Invalid) - Red keš memorije označen kao nevažeći ne sadrži važeće podatke i postaje logički nedostupan.

Rice. 11.15. Redoslijed promjena stanja u MESI protokolu: a - procesor 1 čita x;

b- procesor 2 čita x; c - procesor 1 pravi prvi zapis u x;

G- procesor 1 pravi još jedan zapis u x

Redoslijed kojim keš linija prelazi iz jednog stanja u drugo ovisi o: trenutnom statusu linije, operaciji koja se izvodi (čitanje ili pisanje), rezultatu cache poziva (pogodan ili promašen) i, ​​konačno, da li linija je zajednička ili ne. Na sl. 11.14 prikazuje dijagram glavnih prelaza bez uzimanja u obzir režima jednokratnog upisivanja.

Pretpostavimo da jedan od procesora napravi zahtjev za čitanje iz linije koja se trenutno ne nalazi u njegovoj lokalnoj keš memoriji (promašaj čitanja). Zahtjev će se emitovati preko autobusa. Ako nijedan od predmemorija ne sadrži kopiju tražene linije, tada neće biti odgovora od nadzornih kontrolora drugih procesora, linija će biti pročitana u keš procesora koji traži iz glavne memorije, a kopija će biti dodijeljena status E. Ako bilo koja od lokalnih predmemorija sadrži kopiju koju tražite, odgovor će biti primljen od odgovarajućeg kontrolera za praćenje koji ukazuje na pristup zajedničkom nizu. Sve kopije dotične linije u svim keš memorijama bit će prebačene u S stanje, bez obzira u kojem su stanju prije bile (I, E ili S).

Kada procesor uputi zahtjev za pisanje nizu koji nije u njegovoj lokalnoj keš memoriji (promašaj pisanja), niz mora biti pročitan iz glavne memorije (RAM) i ažuriran prije nego što se učita u keš memoriju. Prije nego što procesor može učitati red, mora osigurati da je važeća verzija podataka zapravo u glavnoj memoriji, odnosno da nijedna modificirana kopija reda nije u drugim keš memorijama. Redoslijed operacija formiran u ovom slučaju se zove čita sa namjerom da se modificiracije(RWITM, čitanje s namjerom izmjene). Ako je kopija tražene linije pronađena u jednoj od keš memorija, i to u stanju M, tada procesor sa ovom kopijom prekida RWITM sekvencu i ponovo upisuje liniju u OP, nakon čega mijenja stanje linije u svojoj keš memoriji do I. Zatim se RWITM sekvenca nastavlja i vrši ponovni pristup glavnoj memoriji da bi se pročitao ažurirani red. Konačno stanje linije će biti M, u kojem nema njegove pouzdanije kopije ni u OP-u ni u drugim kešovima. Ako je kopija linije postojala u drugoj keš memoriji i nije imala stanje M, tada se takva kopija odbacuje i odmah se vrši pristup glavnoj memoriji.

Keš memorija za čitanje ne mijenja status linije koja se čita. Ako procesor izvrši pristup za pisanje na postojeću liniju u stanju S, on emituje na sabirnicu kako bi obavijestio druge keš memorije, ažurira liniju u svojoj keš memoriji i postavlja je u status M. Sve ostale kopije linije se premještaju u stanje I. Ako procesor vrši pristup upisivanju u liniju u stanju E, jedino što treba da uradi je da upiše u liniju i promeni njeno stanje u M, pošto u sistemu nema drugih kopija linije.

Na sl. 11.15 prikazuje tipičan slijed događaja u sistemu od dva procesora koji traže pristup ćeliji x. Pristup bilo kojoj ćeliji u liniji keša smatra se pristupom cijeloj liniji.

Ilustrujmo faze kada procesor 2 pokušava da pročita sadržaj ćelije x" (slika 11.16). Prvo, postoji promašaj keš memorije čitanja i procesor pokušava da pristupi glavnoj memoriji. Procesor 1 nadgleda magistralu, detektuje pristup ćelije, čija se kopija nalazi u njenoj keš memoriji i nalazi se u njoj




Rice. 11.16. Prijelaz iz stanja E u stanje S u MESI protokolu: a- procesor 2

čita x; b - procesor 1 upisuje nazad x "u glavnu memoriju;

i - procesor 2 čita x "iz glavne memorije

stanje M, tako da blokira operaciju čitanja iz procesora 2. Zatim procesor 1 prepisuje red koji sadrži x "u OP i oslobađa procesor 2 tako da može ponoviti pristup glavnoj memoriji. Sada procesor 2 prima red koji sadrži x" i učitava ga u vašu keš memoriju. Oba primjerka su označena kao S.

Do sada je razmatrana verzija MESI protokola za jednokratno upisivanje. Uzimajući u obzir jedno upisivanje, dijagram stanja prikazan na Sl. 11.14, neznatno izmijenjeno. Svi promašaji keša čitanja uzrokuju prijelaz u stanje S. Nakon prvog pogotka pisanja slijedi prijelaz u stanje E (tzv. prijelaz za jednokratno upisivanje). Sljedeći pogodak tokom pisanja podrazumijeva promjenu statusa linije u M.

Protokoli bazirani na imeniku

Protokoli koherentnosti zasnovani na direktorijumu tipično za složene višeprocesorske sisteme sa zajedničkom memorijom, gde su procesori ujedinjeni višestepenom hijerarhijskom mrežom međusobnog povezivanja. Složenost topologije čini upotrebu nadzornih protokola sa njihovim mehanizmom emitovanja skupom i neefikasnom.

Protokoli bazirani na imeniku prikupljaju i prate informacije o sadržaju svih lokalnih predmemorija. Takvi protokoli se obično implementiraju sa centraliziranim kontrolerom koji je fizički dio glavnog memorijskog kontrolera. Sama referentna knjiga pohranjena je u glavnoj memoriji. Kada lokalni keš kontroler uputi zahtjev, kontrolor direktorija detektuje takav zahtjev i generira upute potrebne za prijenos podataka iz glavne memorije ili iz druge lokalne keš memorije koja sadrži najnoviju verziju traženih podataka. Centralni kontroler je odgovoran za ažuriranje informacija o stanju lokalnih predmemorija, tako da mora biti obaviješten o svakoj lokalnoj akciji koja bi mogla utjecati na stanje bloka podataka.

Direktorij sadrži mnogo unosa koji opisuju svaku keširanu memorijsku lokaciju koju mogu dijeliti sistemski procesori. Referenca se vrši svaki put kada jedan od procesora promijeni kopiju takve ćelije u svojoj lokalnoj memoriji. U ovom slučaju, informacije iz direktorija su potrebne kako bi se poništile ili ažurirale kopije promijenjene ćelije (ili cijelog reda koji sadrži ovu ćeliju) u drugim lokalnim predmemorijama gdje su takve kopije dostupne.

Za svaki zajednički niz, čija se kopija može staviti u keš memoriju, jedan unos se dodjeljuje u direktorij koji pohranjuje pokazivače na kopiju ovog niza. Pored toga, u svakom zapisu je istaknut jedan modifikacioni bit (D), koji pokazuje da li je kopija prljava (D = 1 - prljava) ili čista (D = 0 - čista), odnosno da li je sadržaj reda u kešu su promijenili memoriju nakon što je tamo učitana. Ovaj bit pokazuje da li je procesor ovlašten za pisanje u ovaj niz.

Trenutno postoje tri poznata načina implementacije protokola koherentnosti keša baziranih na direktoriju: potpuna referenca, ograničena referenca i spojena referenca.

U protokolu kompletna referenca jedan centralizirani direktorij održava informacije o svim predmemorijama. Referenca je pohranjena u glavnoj memoriji.


Rice. 11.17. Full Reference Cache Coherency Protocol

U sistemu od N procesora, svaki unos direktorija će sadržavati N jednobitni pokazivači. Ako postoji kopija podataka u odgovarajućoj lokalnoj keš memoriji, bit pokazivača se postavlja na 1, u suprotnom - na 0. Dijagram sa kompletnom referencom je prikazan na Sl. 11.17. Ovo pretpostavlja da postoji kopija linije u svakoj keš memoriji. Svakoj liniji su dodijeljena dva indikatora statusa: važeći bit (V, Valid) i bit vlasništva (P, Private). Ako su informacije u liniji tačne, njegov V-bit je postavljen na 1. Jedna vrijednost P-bita označava da dati procesor ima pravo upisivanja u odgovarajuću liniju svoje lokalne keš memorije.

Pretpostavimo da procesor 2 upisuje na lokaciju x. U početku, procesor još nije dobio dozvolu za takvo snimanje. Formira zahtjev kontroloru direktorija i čeka dozvolu za nastavak operacije. Kao odgovor na zahtjev za sve keš memorije u kojima postoje kopije reda koji sadrži ćeliju x, izdaje se signal za odbacivanje postojećih kopija. Svaka keš memorija koja primi ovaj signal resetuje bit validnosti niza (V-bit) koji se može nulirati na 0 i vraća signal potvrde kontroleru direktorija. Nakon primanja svih signala potvrde, kontroler imenika postavlja modifikacijski bit (D-bit) odgovarajućeg unosa direktorija na jedan i šalje signal procesoru 2 da omogući pisanje u ćeliju x. Od ovog trenutka, procesor 2 može nastaviti pisati u svoju kopiju ćelije x, kao iu glavnu memoriju, ako je shema pisanja implementirana u keš memoriju.

Glavni problemi kompletnog protokola imenika odnose se na veliki broj unosa. Za svaku ćeliju u sistemskoj referenci od N procesora, potrebno je N + 1 bit, odnosno sa povećanjem broja procesora, koeficijent složenosti raste linearno. Kompletan protokol direktorija omogućava svakoj lokalnoj predmemoriji da ima kopije svih zajedničkih ćelija. U praksi, takva mogućnost ne ostaje uvijek tražena - u svakom trenutku obično je relevantan samo jedan ili više primjeraka. V protokolsa ograničenom referencom kopije jednog reda mogu biti samo u ograničenom broju keš memorija - ne može biti više od NS kopije niza, dok je broj pokazivača u unosima direktorija smanjen na n (n< N ). Za jedinstvenu identifikaciju keš memorije koja pohranjuje kopiju, pokazivač umjesto jednog bita trebao bi se sastojati od log2 N bita i ukupne dužine pokazivača u svakom unosu direktorija, umjesto od N bitova biće jednaki NSlog2N bit. Sa konstantnom vrijednošću NS stopa rasta faktora složenosti ograničenog direktorija kako se veličina sistema povećava je niža nego u slučaju linearne veze.

Kada više od NS kopija, kontrolor odlučuje koju od kopija će zadržati, a koju poništiti, nakon čega se vrše odgovarajuće promjene u indeksima unosa u imeniku.

Metoda povezani direktoriji takođe ima za cilj da sažima obim priručnika. Koristi povezanu listu za pohranjivanje zapisa, koja se može implementirati kao jedna povezana (jednosmjerna) i dvostruko povezana (dvosmjerna).

Rice. 11.18. Konkatenirani protokol koherencije predmemorije direktorija

U jednostruko povezanoj listi (slika 11.18), svaki unos u direktorijum sadrži pokazivač na kopiju niza u jednoj od lokalnih predmemorija. Kopije linija istog imena u različitim sistemskim kešovima čine jednosmjerni lanac. Da bi to učinili, njihove oznake pružaju posebno polje u koje se unosi pokazivač na keš memoriju koja sadrži sljedeću kopiju lanca. U oznaku zadnji primjerak poseban znak za razgraničenje se stavlja u lanac. Povezana referenca dozvoljava nizove dužine N, odnosno podržava N kopije ćelije. Prilikom kreiranja druge kopije, lanac se mora uništiti, a umjesto toga se mora formirati novi. Pretpostavimo, na primjer, da procesor 5 nema kopiju ćelije x i da se za nju okreće glavnoj memoriji. Pokazivač u direktoriju se mijenja tako da pokazuje na keš broj 5, a pokazivač u keš 5 - tako da pokazuje na keš 2. Za to glavni memorijski kontroler, zajedno sa traženim podacima, mora prenijeti i pokazivač u keš memoriju u keš memoriju 5 - memorija sa brojem 2. Tek nakon što se formira cjelokupna struktura lanca, procesor 5 će dobiti dozvolu za pristup ćeliji x. Ako procesor piše u ćeliju, signal za poništenje se šalje stazom definiranom odgovarajućim lancem pokazivača. Lanac se mora ažurirati kada se kopija obriše iz bilo koje keš memorije.

Dvostruko povezana lista podržava pokazivače naprijed i nazad. To vam omogućava da efikasnije ubacite nove pokazivače u lanac ili iz njega izbrišete koji više nisu potrebni, ali zahtijeva pohranjivanje većeg broja pokazivača.

Šeme bazirane na direktorijumu pate od zagušenja u centraliziranom kontroleru, kao i komunikacijskih prekomjernih opterećenja na stazama između lokalnih keš kontrolera i centralnog kontrolera. Ipak, pokazali su se veoma efikasnim u višeprocesorskim sistemima sa složenom topologijom međusobnog povezivanja između procesora, gde se protokoli za praćenje ne mogu implementirati.

Ispod je kratak opis trenutno relevantnih protokola za osiguranje koherentnosti keš memorije na osnovu referentne knjige. Za detaljnije upoznavanje sa ovim protokolima date su veze ka odgovarajućim književnim izvorima.

ProtokolTang. Postoji centralizirani globalni direktorij koji sadrži potpunu kopiju svih informacija direktorija za svaku od lokalnih predmemorija. To dovodi do problema uska grla i također zahtijeva traženje odgovarajućih unosa.

ProtokolCensier. Referentna shema Censier koristi vektor bita pokazivača da naznači koji procesori drže lokalnu kopiju datog bloka memorije. Za svaki memorijski blok postoji takav vektor. Nedostaci ove metode su njena neefikasnost veliki broj procesore, a također zahtijeva pristup glavnoj memoriji za ažuriranje keš linija.

ProtokolArchibald. Archibaldova referentna shema je par zamršenih šema za hijerarhijski organizirane procesorske mreže. WITH Detaljan opis ovaj protokol se može naći u.

ProtokolStenstrom. Stenstrom priručnik pruža šest važećih stanja za svaki blok podataka. Ovaj protokol je relativno jednostavan i pogodan za bilo koju topologiju međupovezivanja procesora. Referenca je pohranjena u glavnoj memoriji. U slučaju promašaja predmemorije za čitanje, pristupa se glavnoj memoriji, koja šalje poruku kešu koji posjeduje blok, ako postoji. Po prijemu ove poruke, vlasnik keša šalje tražene podatke, a također prosljeđuje poruku svim ostalim procesorima koji dijele te podatke kako bi ažurirali svoje bit vektore. Šema nije vrlo efikasna s velikim brojem procesora, ali je trenutno najzreliji i najčešće korišteni protokol baziran na direktoriju.

Kontrola pitanja

1. Analizirati uticaj karakteristika AC sa zajedničkom memorijom i AC sa distribuiranom memorijom na razvoj softvera. Zašto se ovi VS nazivaju, odnosno, jako spregnuti, odnosno slabo povezani?

2. Objasnite ideju naizmjeničnih memorijskih adresa. Koja su razmatranja pri odabiru mehanizma za dodjelu adresa? Kako je to povezano sa klasom arhitekture BC?

3. Dajte uporedni opis homogenih i heterogenih pristupa
na pamćenje.

4. Koje su prednosti SOMA arhitekture?

5. Potrošite komparativna analiza modeli sa keš-koherentnim i keš-nekoherentnim pristupom heterogenoj memoriji.

6. Formulirajte prednosti i nedostatke arhitekture bez direktnog pristupa udaljenoj memoriji.

7. Objasnite značenje distribuirane i dijeljene memorije.

8. Razvijte svoj primjer kako biste ilustrirali problem koherentnosti keša.

9. Opisati karakteristike softverskih rješenja za problem koherentnosti, istaći njihove prednosti i slabosti.

10. Uporedite tehnike pisanja i pisanja naspram otpisa i pisanja u emitiranje, naglašavajući njihove prednosti i nedostatke.

11. Dajte uporedni opis metoda za održavanje koherentnosti u višeprocesorskim sistemima.

12. Izvršite komparativnu analizu protokola posmatranja koje poznajete.

13. Koji je od protokola posmatranja najpopularniji? Obrazložite razloge povećanog interesovanja za njega.

14. Dajte detaljan opis koherentnih protokola na osnovu priručnika i metode njihove implementacije. Koje su razlike između ovih protokola i protokola posmatranja?

Klasifikacija MKMD sistema

U MCMD sistemu, svaki procesni element (PE) izvršava svoj program sasvim nezavisno od drugih PE. Istovremeno, elementi obrade moraju na neki način komunicirati jedni s drugima. Razlika u načinu takve interakcije određuje uslovnu podelu MCMD sistema na AC sa deljenom memorijom i sisteme sa distribuiranom memorijom (slika 5.7).

U sistemima sa zajedničkom memorijom, koji se karakterišu kao čvrsto povezani, postoji zajednička memorija podataka i instrukcija koja je dostupna svim procesnim elementima koji koriste zajedničku sabirnicu ili mrežu veza. Takvi sistemi se nazivaju multiprocesori. Ovaj tip uključuje simetrične višeprocesore (UMA (SMP), Symmetric Multiprocessor), sisteme sa neujednačenim pristupom memoriji (NUMA, Non-Uniform Memory Access) i sisteme sa takozvanom lokalnom memorijom umesto keš memorije (COMA, Cache Only Memory Access). ).

Ako svi procesori imaju jednak pristup svim memorijskim modulima i svim I/O uređajima, a svaki procesor je zamjenjiv s drugim procesorima, onda se takav sistem naziva SMP sistem. U sistemima sa zajedničkom memorijom, svi procesori imaju jednake mogućnosti pristupa jednom adresnom prostoru. Jedna memorija može biti izgrađena kao jedan blok ili modularna, ali ovo drugo je obično slučaj.

SMP sistemi pripadaju UMA arhitekturi. Računalni sistemi Zajednička memorija, gdje bilo koji procesor ravnomjerno pristupa memoriji i zauzima isto vrijeme, nazivaju se Uniform Memory Access (UMA) sistemi.

Sa stanovišta nivoa korišćene memorije u UMA arhitekturi, razmatraju se tri opcije za izgradnju multiprocesora:

Classic (samo sa zajedničkom glavnom memorijom);

Sa dodatnom lokalnom keš memorijom za svaki procesor;

Sa dodatnom lokalnom bafer memorijom za svaki procesor (slika 5.8).

Sa stanovišta načina na koji procesori komuniciraju sa zajedničkim resursima (memorijom i CBV), u opštem slučaju, razlikuju se sledeće vrste UMA arhitektura:

Sa zajedničkom sabirnicom i vremenskom podjelom (7.9);

Sa prekidačem za poprečnu šipku;

Zasnovan na višestepenim mrežama.

Upotreba samo jedne magistrale ograničava veličinu UMA multiprocesora na 16 ili 32 procesora. Da biste dobili veću veličinu, potrebna je drugačija vrsta komunikaciona mreža... Najjednostavnija shema povezivanja je preklopni prekidač (slika 5.10). Prekidači se koriste decenijama za nasumično povezivanje grupe dolaznih linija sa većim brojem odlaznih linija.

Prečka je mreža koja ne blokira. To znači da će procesor uvijek biti povezan s ispravnim blokom memorije, čak i ako je neka linija ili čvor već zauzet. Štaviše, nije potrebno preliminarno planiranje.


Prekidači su prilično pogodni za sisteme srednje veličine (slika 5.11).


Na osnovu 2x2 prekidača, možete graditi višestepene mreže. Jedna moguća opcija je omega mreža (slika 5.12). Za n procesora i n memorijskih modula potrebno je log 2 n koraka, n / 2 prekidača za svaki korak, odnosno ukupno (n / 2) log 2 n prekidača za svaki korak. Ovo je mnogo bolje od n 2 čvora (tačke preseka), posebno za velika n.

UMA multiprocesori sa jednom magistralom obično su ograničeni na nekoliko desetina procesora, dok koordinatni multiprocesori ili multiprocesori sa prekidačima zahtevaju skupe Hardver i nisu mnogo veći. Da biste dobili više od 100 procesora, potreban vam je drugačiji pristup memoriji.

Za veću skalabilnost multiprocesora prilagođena je arhitektura s neuniformnim pristupom memoriji NUMA (NonUniform Memory Access). Kao i UMA multiprocesori, oni obezbeđuju jedan adresni prostor za sve procesore, ali za razliku od UMA mašina, lokalnim memorijskim modulima se pristupa brže od udaljenih memorijskih modula.

U okviru NUMA koncepta implementirani su pristupi označeni skraćenicama NC-NUMA i CC-NUMA.

Ako vrijeme pristupa udaljenoj memoriji nije skriveno (jer nema keš memorije), onda se takav sistem naziva NC-NUMA (No Caching NUMA - NUMA bez keširanja) (Sl.5.13).

Ako postoje koherentne keš memorije, sistem se naziva CC-NUMA (Arhitektura koherentne keš neuniformne memorije – NUMA sa koherentnom keš memorijom) (7.14).

Glavna memorija

Glavna memorija je uređaj za skladištenje koji je direktno povezan sa procesorom i dizajniran za skladištenje izvršnih programa i podataka direktno uključenih u operacije. Ima dovoljne performanse, ali ograničenu zapreminu. Glavna memorija je podijeljena na različite tipove, od kojih su glavne memorija sa slučajnim pristupom (RAM) i memorija samo za čitanje (ROM) (slika 1).

RAM je dizajniran za skladištenje informacija (programa i podataka) u koje su direktno uključene računarski proces u trenutnoj fazi funkcionisanja.

RAM se koristi za primanje, pohranjivanje i izdavanje informacija. Upravo u njemu procesor "uzima" programe i početne podatke za obradu, u koje upisuje rezultate. Ova memorija je dobila naziv "operativna" jer radi vrlo brzo, tako da procesor praktično ne mora čekati dok čita podatke iz memorije i upisuje u memoriju. Međutim, podaci koje sadrži zadržavaju se samo dok je računar uključen. Kada isključite računar, sadržaj RAM memorije se briše. Dakle, RAM je nestabilna memorija.

Rice. 1. Glavni tipovi glavne memorije

Često je oznaka RAM (Memorija sa slučajnim pristupom, tj. memorija sa slučajni pristup). Nasumični pristup se podrazumijeva kao mogućnost direktnog pristupa bilo kojoj (proizvoljnoj) specificiranoj memorijskoj ćeliji, a vrijeme pristupa za bilo koju ćeliju je isto.

RAM je baziran na velikim integrisana kola koji sadrže matrice poluvodičkih skladišnih elemenata (okidača). Elementi za skladištenje se nalaze na preseku vertikalnih i horizontalnih sabirnica matrice; snimanje i čitanje informacija vrši se primjenom električnih impulsa kroz one kanale matrice, koji su povezani sa elementima koji pripadaju odabranoj memorijskoj ćeliji.

Količina RAM-a instalirane u računar ne utiče samo na sposobnost rada sa programima koji zahtevaju velike resurse, već i na njegove performanse, jer kada nema dovoljno memorije, kao logička ekstenzija se koristi hard disk, kojem je vreme pristupa neuporedivo duže. Pored količine RAM-a, na performanse računara utiču i njegova brzina i način koji se koristi za razmenu podataka između mikroprocesora i memorije.

OP je implementiran na DRAM čipovima (dinamički OP), koji se, u poređenju sa drugim tipovima memorije, odlikuju niskom cijenom i visokim specifičnim kapacitetom, ali velikom potrošnjom energije i nižim performansama. Svaki bajt podataka (0 i 1) u DRAM memoriji se kao napunjenost kondenzatora. Zbog prisutnosti struja curenja, punjenje kondenzatora mora se obnavljati u redovnim intervalima. Zbog stalne potrebe za ažuriranjem, takva memorija se naziva dinamička memorija. Regeneracija sadržaja memorije zahtijeva dodatno vrijeme, a upisivanje informacija u memoriju tokom regeneracije nije dozvoljeno.

Troškovi RAM-a su nedavno naglo pali (od ljeta 1995. do ljeta 1996. - više od 4 puta), pa su veliki zahtjevi mnogih programa i operativnih sistema za RAM-om s finansijske tačke gledišta postali manje opterećujući.

Da bi se ubrzao pristup RAM-u na brzim računarima, koristi se stabilna keš memorija ultra velike brzine, koja se nalazi, takoreći, "između" mikroprocesora i RAM-a i pohranjuje kopije najčešće korištenih dijelova RAM. Kada mikroprocesor pristupi memoriji, prvo traži tražene podatke iz keš memorije. Budući da je vrijeme pristupa keš memoriji nekoliko puta manje nego običnoj memoriji, a u većini slučajeva podaci potrebni mikroprocesoru već su pohranjeni u keš memoriji, prosječno vrijeme pristupa memoriji se smanjuje. Keš memorija je implementirana na SRAM čipu (statička RAM memorija).

Za računare zasnovane na Intel-386DX ili 80386SX, dovoljna je veličina keš memorije od 64 KB, a dovoljna je 128 KB. Intel-80486DX, DX2, DX4 i Pentium računari obično imaju 256 KB keš memorije.

Mikroprocesori serije 486 i Pentium sadrže malu internu keš memoriju, pa se za nedvosmislenu terminologiju, ponekad u tehničkoj literaturi, keš memorija koja se nalazi na matičnoj ploči naziva L2 keš memorija.

U Pentium Pro mikroprocesoru, L2 keš memorija je sadržana u jednom paketu sa samim procesorom (može se reći da je ugrađen u mikroprocesor).

Nije potrebno imati svu memoriju u kojoj se informacije moraju mijenjati. Bolje je da neke od najvažnijih informacija trajno čuvate u memoriji računara. Ova memorija se naziva perzistentna. Podaci su uneseni u trajnu memoriju prilikom izrade. Ti podaci se po pravilu ne mogu mijenjati, programi koji rade na računaru mogu samo da ih čitaju. Ova vrsta memorije se obično naziva ROM (memorija samo za čitanje) ili ROM (memorija samo za čitanje).

Na IBM PC-u - kompatibilan računar trajna memorija pohranjuje programe za testiranje opreme, računara, pokretanje učitavanja operativnog sistema (OS) i obavljanje osnovnih funkcija za servisiranje računarskih uređaja. Budući da je većina ovih programa vezana za I/O servis, sadržaj memorije samo za čitanje se često naziva BIOS (Basic Input - Output System).

Mnogi računari instaliraju BIOS zasnovan na FLASH memoriji. Ova memorija se može promijeniti programima, što vam omogućava da ažurirate BIOS pomoću posebnih programa, bez zamjene matične ploče ili BIOS čipa.

Svi računari, osim veoma starih, takođe sadrže program za konfiguraciju računara (SETUP) u BIOS-u. Omogućava vam da podesite neke karakteristike računarskih uređaja (vrste video kontrolera, tvrdi diskovi i floppy disk drajvovi, neki i načini rada sa RAM memorijom, traženje lozinke pri pokretanju itd.). Tipično, konfiguracijski program se poziva ako korisnik, tijekom bootstrapće pritisnuti određeni ključ ili kombinaciju tastera (najčešće taster Del).

Kapacitet FLASH memorije od 32 kbajta do 2 megabajta, vrijeme pristupa čitanju 0,06 μs, vrijeme pisanja jednog bajta približno 10 μs; FLASH memorija - nepromjenjiva memorija.

Pored obične memorije sa slučajnim pristupom i memorije samo za čitanje, računar ima mali deo memorije za skladištenje parametara konfiguracije računara. Često se naziva CMOS memorija jer se ova memorija obično proizvodi CMOS tehnologijom male potrošnje energije (komplementarni metal-oksidni poluvodič). Sadržaj CMOS memorije se ne mijenja kada se računar isključi, jer se za napajanje koristi posebna baterija.

Dakle, kapacitet glavne memorije se sastoji od miliona pojedinačnih memorijskih ćelija sa kapacitetom od 1 bajta svaka. Ukupni kapacitet glavne memorije modernih računara obično se kreće od 1 do 4 GB. Kapacitet RAM-a je jedan dva reda veličine veći od kapaciteta ROM-a: ROM zauzima do 2 MB na novim matičnim pločama), ostalo je RAM.

ORGANIZACIJA MEMORIJE U RAČUNARSKIM MAŠINAMA

Namjena, osnovni parametri i

Klasifikacija tipova memorije

Memorijski uređaji (uređaji za skladištenje) VM dizajnirani su za snimanje, pohranjivanje i čitanje informacija predstavljenih u digitalni oblik/ 2,3 /. Memorijski uređaji, poput procesora, rade s dvije vrste informacija – programi i podaci, pa karakteristike memorije u velikoj mjeri određuju performanse i funkcionalnost VM.

Memorijski uređaji rade na dva načina - pristupi memoriji i skladištenje... U načinu pristupa memoriji, informacije se snimaju ili čitaju iz memorije. Ako se memoriji ne pristupi, ona prelazi u način skladištenja.

Glavni parametri koji karakteriziraju memorijske uređaje su kapacitet informacija (volumen), performanse, potrošnja energije i cijena /2,5,8/.

Informacijski kapacitet (volumen) memorijski uređaj je definiran maksimalan broj pohranjene informacije i mjere se u bajtovima, KBytes, MBytes, GBytes i TBytes.

1 KB = 2 10 bajtova; 1MB = 2 20 bajtova; 1GB = 230 bajtova i 1TB = 240 bajtova.

Memorijske performanse karakteriziraju sljedeći glavni parametri:

vrijeme uzorkovanja (pristupa) t B, određen vremenskim intervalom između trenutaka signala uzorkovanja (početak ciklusa čitanja) i prijema očitanih podataka na memorijskom izlazu;

trajanje ciklusa t C, koji je određen minimalnim dozvoljenim vremenskim intervalom između uzastopnih pristupa memoriji. S obzirom da pristup memoriji znači pisanje ili čitanje, ponekad se razdvajaju trajanje ciklusa čitanja t C.RT... i trajanje ciklusa snimanja t Ts.ZP. za tipove memorije u kojima su ova vremena ciklusa različita, tj. t CH. ≠ t C.ZP .

U opštem slučaju, ciklus pristupa se sastoji od faze preuzimanja (pristupa) i faze regeneracije (oporavka) memorije, stoga t C> t V.

Performanse memorije se takođe mogu okarakterisati brzinom prenosa podataka upisanih ili pročitanih i izmerenih u MB/s.

Potrošnja energije za mnoge tipove memorije u pristupnom režimu je znatno veća nego u režimu skladištenja. Nehlapljiva memorija u načinu skladištenja uopće ne troši energiju. Ali brojne vrste memorije, na primjer, elektronička dinamička memorija, zahtijevaju cikluse regeneracije u načinu skladištenja, tako da je potrošnja energije u ovom načinu uporediva s potrošnjom energije u načinu pristupa.

Za poređenje različite vrste memoriju, pogodno je koristiti smanjenu na jednu ćeliju (tj. specifičnu) potrošnju energije i troškove memorijskih uređaja.

Važan memorijski parametar je također širina sabirnice memorijski podaci, definiranje broja bajtova s ​​kojima se operacija čitanja ili pisanja može izvršiti istovremeno.

VM memorijski uređaji se mogu klasifikovati prema različitim kriterijumima: po fizičkom principu rada, po funkcionalnoj namjeni, po načinu organizacije, potrebi za napajanjem u skladišnom režimu itd.

Prema fizičkom principu rada, memorija se dijeli na elektronsku, magnetsku, optičku, magnetsko-optičku.

Elektronska memorija izvedeno na poluvodičkim elementima i implementirano u obliku LSI. Elektronska memorija se dijeli na statički i dinamičan.

U LSI statičke memorije, statički okidači na bipolarnom ili tranzistori sa efektom polja... Kao što znate, broj stabilnih stanja okidača je dva, što ga čini mogućim za pohranjivanje jedinice informacija - bita. Memorijske ćelije za pohranjivanje bajtova i riječi koriste 8 i 16 okidača, respektivno.

U dinamičkoj memoriji LSI, električni kondenzatori se koriste kao elementarne memorijske ćelije. Prisustvo naboja odgovara pohranjivanju logičke "1", odsustvo naboja odgovara skladištenju logičke "0". Kao kondenzatori za skladištenje koriste se ili interelektrodni kapaciteti MOS tranzistora ili kondenzatori posebno kreirani u LSI kristalu. Fragment blok dijagrama dinamičke memorije, koji sadrži dvije ćelije 1 i 2, prikazan je na slici 6.1.

Svaka elementarna memorijska ćelija sadrži memorijski MOS kondenzator C (desetinke pF) i tranzistorski prekidač T, koji povezuje ovaj kondenzator sa sabirnicom podataka. Gejt tranzistorskog MOS prekidača je povezan na odgovarajući izlaz dekodera adrese. Kada je ćelija odabrana, ključ T se otvara i spaja kondenzator C na sabirnicu podataka. Nadalje, ovisno o vrsti naredbe: write (WR) ili read (RD) - preko odgovarajućeg pojačala se upisuju ulazni podaci (DI) ili se čitaju izlazni podaci (DO).

U poređenju sa statičkom memorijom, dinamička memorija je mnogo jednostavnija, jeftinija i pruža veoma visok stepen integracije, tj. veći specifični kapacitet. Ali u poređenju sa statičkom dinamičkom memorijom, ona je sporija i zahtijeva periodičnu regeneraciju (restauraciju) informacija u elementarnim ćelijama. Drugim riječima, potrebno je periodično obnavljati punjenje na kondenzatorima za skladištenje C, koji se s vremenom samopražnjavaju, tj. “Izgubiti” informacije. Da biste to učinili, svakih nekoliko milisekundi (msec) čitaju informacije iz memorijskih ćelija, a zatim ponovo upisuju informacije, što vam omogućava da vratite napunjenost kondenzatora za skladištenje C. Potreba za organiziranjem periodičnih ciklusa osvježavanja donekle komplikuje dinamičko upravljanje memorijom.

Za tipične elektronske memorijske module, vrijeme uzorkovanja t B je jedinice - desetine nanosekundi ( nsec), a kapacitet informacija je desetine - stotine megabajta.

Statička i dinamička elektronska memorija je volatile, tj. kada je napajanje isključeno, informacije u ćelijama se ne pohranjuju. Tu je i neisparljiv elektronska memorija - memorija samo za čitanje (ROM), informacije iz koje se tokom rada VM mogu samo čitati. O lokacijama ROM memorije će se raspravljati u nastavku.

Magnetna memorija na osnovu prisustva niza magnetnih materijala (na primjer, željeznog oksida) dva stabilna stanja remanentne magnetizacije suprotnog predznaka. Takve magnetnih materijala karakterizirana pravokutnom histerezisnom petljom B = f (H), a od njih se nanosi radni magnetni sloj koji se nanosi na površinu raznih pokretnih nosača - magnetnih diskova. Za pisanje i čitanje informacija koriste se magnetne glave, koje su minijaturni induktori namotani na magnetsko jezgro s razmakom. Tokom snimanja, magnetna glava magnetizira dio magnetskog sloja koji prolazi ispod radnog zazora u smjeru određenom smjerom struje koja teče. Tokom očitavanja, magnetizirane površine prolaze u blizini induktivne glave za očitavanje i indukuju emf impulse u njoj. Memorijski uređaji koji koriste ovaj princip imaju vrlo nisku specifičnu cijenu pohranjivanja informacija, nepostojani su, ali, budući da su elektromehanički, znatno su inferiorniji od elektroničke memorije u pogledu brzine, pouzdanosti i potrošnje energije. Za hard diskove, brzina prijenosa podataka doseže desetine MB / s, a kapacitet informacija je stotine GB.



V optička memorija za pohranjivanje informacija koristi se promjena optičkih svojstava (uglavnom stepena refleksije) površine nosača. Optički medij je u obliku diska ( Compact Disk- CD), čiji je reflektirajući sloj (metalno raspršivanje) prekriven slojem organske boje. Prilikom snimanja, laserski snop se modulira strujom snimljenih bitova i spaljuje rupice u sloju boje na određenim tačkama staze. Zbog razlike u koeficijentu refleksije udubljenja i nesagorenih područja površine tokom očitavanja, dolazi do modulacije svjetline reflektiranog snopa, koji kodira informaciju pročitanu sa CD-a. Proizvedeno Razne vrste optički CD diskovi: CD-ROM (Memorija samo za čitanje) - omogućava samo čitanje informacija napisanih na matrični način, CD-R (Recordable) - omogućava najmanje jedno pisanje na disk i višestruko čitanje, CD-RW (Rewritable) - omogućavajući višestruko prepisivanje na disk (i naravno čitanje). Optički diskovi su jeftini i imaju značajan (do jednog GB) informacijski kapacitet, nepostojani su i lako zamjenjivi, ali su po brzini, pouzdanosti i potrošnji energije, poput magnetnih diskova, znatno inferiorniji od elektronske memorije.

U smislu funkcionalnosti, memorijski uređaji se mogu klasificirati na memoriju sa slučajnim pristupom (SRAM), memoriju sa slučajnim pristupom (RAM), memoriju samo za čitanje (ROM) i eksterne uređaje za skladištenje (VCD).

RAM namijenjeno za pohranjivanje programa (sistema, aplikacije) i podataka koje direktno koristi CPU u trenutnom trenutku. Vremena ciklusa čitanja i pisanja za RAM su obično ista. Obično se kao RAM koristi dinamička memorija zapremine do jedinica GB, ovisno o namjeni i obimu MS-a.

Pozu ili Cache memorija- ovo je mala količina memorije velike brzine, u kojoj je trajanje ciklusa pristupa t C manje od trajanja strojnog ciklusa procesora. Stoga, kada se pristupa keš memoriji, nema potrebe da se ciklusi čekanja procesora uvode u cikluse pristupa memoriji mašine. Keš memorija je bafer memorija između RAM-a i CPU-a i zasniva se na statičkoj memoriji. Keš memorija pohranjuje kopije blokova (stranica) programa i podataka onih područja RAM-a kojima je izvršen posljednji pristup, kao i direktorij - listu njihove trenutne korespondencije s područjima RAM-a. Prilikom svakog pristupa glavnoj memoriji, kontrolor keša direktorija provjerava da li postoji važeća kopija traženog bloka (stranice) u kešu. Ako postoji kopija, onda je to slučaj. cache hits, i samo se keš memoriji pristupa za podatke ili kod. Ako valjana kopija ne postoji, onda je to slučaj. cash miss, a traženi blok (stranica) iz RAM-a se upisuje u keš memoriju, a upis se vrši na mjesto najmanjeg stvarnog bloka (stranice) koji je prethodno izbrisan iz keša u RAM-u, tj. blok informacija, broj poziva na koji je bio najmanji. Zbog inherentnih programa i podataka kao što su fundamentalna svojstva, kako prostorni i privremeni lokalitet/ 2,7,13 / broj keš pogodaka je višestruko veći od broja promašaja keš memorije, čak i sa malom (jedinice - desetine KB) keš memorije. Stoga korištenje keš memorije značajno poboljšava performanse VM-a. Obično se keš memorija implementira prema šemi od tri nivoa: primarni keš (L1 Cache), veličine desetine KB, i sekundarni keš (L2 Cache), stotine KB, smješten u MP kristalu, treći nivo keš memorije (L3 Cache), jedinice MB su instalirane na matičnoj ploči ili u zgradi MP.

ROM Je elektronska nepromjenjiva memorija koja se koristi za pohranjivanje informacija koje su nepromijenjene ili se rijetko mijenjaju tokom rada VM-a: sistemski softver (BIOS), aplikativni softver za ugrađene i ugrađene VM-ove, setovi tabela, konfiguracijski parametri raznih sistemi itd. Glavni način rada ROM-a je čitanje, što dovodi do drugog uobičajenog naziva za takav memorijski ROM (Read Only Memory). Zapisivanje informacija u ROM, koje se naziva programiranje, obično je mnogo teže, zahtijeva više vremena i energije nego čitanje.

VCU dizajniran za trajno skladištenje velikih količina na određeni način strukturirane informacije: fajlovi, baze podataka, arhive. Karakteristična karakteristika eksterna memorija je da njeni uređaji rade sa blokovima informacija, a ne bajtovima ili riječima, kao što RAM dozvoljava. Osim toga, procesor može pristupiti OVC-u samo preko RAM-a. Disk (HDD, CD) uređaji se obično koriste kao VCU-ovi, koji mogu pohraniti stotine GB informacija.

Bufer elektronska memorija uključeni u kontrolere raznih eksternih uređaja, rješavanje problema prikaz i unos informacija, komunikacioni zadaci, konverzija signala, itd. Prisustvo bafer memorije omogućava koordiniranje značajno različitih brzina prenosa podataka sistemske magistrale i eksternih uređaja, smanjenje vremena provedenog od strane svakog od eksternih uređaja na sistemskoj magistrali i povećanje performansi VM-a.

Način organiziranja pamćenja određen je načinom postavljanja i traženja informacija u memoriji. Na osnovu toga napravite razliku između adresne, asocijativne i organizacije memorije steka.

V adresnu memoriju za pristup memorijskim ćelijama se koriste adrese, koji se shvataju kao kodovi brojeva memorijskih ćelija. Adresabilna organizacija memorije omogućava pristup memorijskim ćelijama po njihovim adresama u proizvoljnom redoslijedu, a trajanje ciklusa pristupa je isto za sve ćelije, bez obzira na adresu. Stoga se za imenovanje takve memorije koristi i termin "Memorija sa slučajnim pristupom (RAM)" ili RAM (Memorija sa slučajnim pristupom). Na primjer, RAM i ROM imaju adresabilnu organizaciju memorije.

V asocijativno pamćenje(ADS) informacije se ne traže prema adresama memorijskih ćelija, već prema njihovom sadržaju ili njegovom dijelu. U opštem slučaju, zahtjev za asocijativnom memorijom se izvodi specificiranjem liste bitova po kojima se traži memorijska ćelija i specificiranjem sadržaja dodijeljenih bitova. Postavljena je lista cifara za pretragu registar-maska. Ovaj registar ima istu širinu bita kao i CAM memorijska ćelija i sadrži jedinice samo u onim bitovima koji se traže. V kontekst slučaja sadržaj ovih bitova je postavljen, a njegova bitna širina je jednaka širini bita registra maske.

Ako se pronađe ćelija sa datom kombinacijom nula i jedinica, CAM generiše pozitivan odgovor koji ukazuje na adresu pronađene ćelije. Zatim se adresa prenosi u dekoder adrese i čitav sadržaj takve ćelije se može pročitati ili u nju upisati novi sadržaj. U suprotnom, AMS generira negativan odgovor na zahtjev.

Pretraživanje informacija po kontekstu u CAM-u vrši se istovremeno u svim memorijskim ćelijama, stoga je CAM mnogo puta brži od RAM-a, ali je i mnogo skuplji. U modernim računarskim sistemima, CAM se koristi, na primjer, kao dio keš memorije.

Stack memorija(Stack), kao i asocijativna, je neadresirana. Stog se može posmatrati kao kolekcija ćelija koje formiraju jednodimenzionalni niz, u kojem su susjedne ćelije povezane jedna s drugom lancima prijenosa bitnih riječi. U ovoj memoriji pisanje i čitanje se obavljaju po pravilu "posljednji upisani se prvi čita" ili "Posljednji unos prvi izlaz (LIFO)". Stoga se stek naziva "push" memorija sa obrnutim redosledom očitavanje. Obično je stog organiziran u RAM-u. Broj riječi u steku je određen pokazivačem steka SP, a upisivanje u stog i čitanje iz steka se vrši pomoću PUSH i POP komandi, respektivno. Memorija steka se široko koristi, kao što je već diskutovano gore, prilikom rukovanja prekidima i pozivanja potprograma.

Zajedno sa stack memorijom, rasprostranjena je memorija kupljena u prodavnici sa direktnim redosledom čitanja, tj. "Prvo napisano se prvo čita" ili "Prvi ulaz prvi izlaz (FIFO)". Ova memorija se naziva bafer memorija i, poput steka, organizirana je u RAM-u.

Organizacija memorijskog podsistema u PC-u

Memorije memorijskog podsistema računara mogu se rasporediti u sledećoj hijerarhiji (tabela 9.1):

Tabela 9.1. Hijerarhija memorijskog podsistema računara
Vrsta memorije 1985 godina 2000 godina
Vrijeme uzorkovanja Tipična zapremina Cijena / bajt Vrijeme uzorkovanja Tipična zapremina Cijena / bajt
Super-operativna memorija (registri) 0,2 5 ns 16/32 bit $ 3 - 100 0,01 1 ns 32/64/128 bit $ 0,1 10
Skladištenje bafera velike brzine (keš memorija) 20 100 ns 8Kb - 64Kb ~ $ 10 0,5 - 2 ns 32Kb 1Mb $ 0,1 - 0,5
Operativna (glavna) memorija ~ 0,5 ms 1MB - 256MB $ 0,02 1 2 ns 20 ns 128MB - 4GB $ 0,01 0,1
Eksterna pohrana (masovna pohrana) 10 - 100 ms 1MB - 1GB $ 0,002 - 0,04 5 - 20 ms 1GB - 0,5TB $ 0,001 - 0,01

Registri procesora čine njegov kontekst i pohranjuju podatke koje koriste instrukcije procesora koje trenutno izvršavaju. Procesorskim registrima se obično pristupa njihovim mnemoničkim oznakama u instrukcijama procesora.

Keš memorija se koristi za usklađivanje brzine CPU-a i glavne memorije. Računalni sistemi koriste keš memoriju na više nivoa: nivo I keš memorije (L1), nivo II keš memorije (L2) itd. Desktop sistemi obično koriste dvoslojnu keš memoriju, dok serverski sistemi koriste troslojnu keš memoriju. Keš memorija pohranjuje instrukcije ili podatke koji će vjerovatno biti poslani procesoru na obradu u bliskoj budućnosti. Rad keša je transparentan za softver, tako da keš obično nije softverski dostupan.

RAM skladišta su, u pravilu, funkcionalno kompletna softverski moduli(jezgro operativnog sistema, izvršni programi i njihove biblioteke, drajveri uređaja, itd.) i njihovi podaci, koji su direktno uključeni u rad programa, a koriste se i za čuvanje rezultata proračuna ili druge obrade podataka prije slanja vanjskom memoriju, na izlaz podataka uređaja ili komunikacijska sučelja.

Svakoj memorijskoj ćeliji je dodijeljena jedinstvena adresa. Metode organizacijske dodjele memorije daju programerima mogućnost da efektivna upotreba ceo kompjuterski sistem. Ove metode uključuju model kontinuirane ("ravne") memorije i model segmentirane memorije. Kada se koristi ravni model memorije, program radi sa jednim neprekidnim adresnim prostorom, linearnim adresnim prostorom, u kojem se memorijske ćelije numeriraju uzastopno i kontinuirano od 0 do 2n-1, gdje je n kapacitet procesora na adresi. Kada se koristi segmentirani model za program, memorija je predstavljena grupom nezavisnih adresnih blokova koji se nazivaju segmenti. Za adresiranje bajta memorije, program mora koristiti logičku adresu koja se sastoji od selektora segmenta i ofseta. Selektor segmenata odabire određeni segment, a pomak pokazuje na određenu ćeliju u adresnom prostoru odabranog segmenta.



Organizacijske metode alokacije memorije omogućavaju organizovanje računarskog sistema u kojem radni adresni prostor programa premašuje veličinu RAM-a koji je stvarno dostupan u sistemu, dok nedostatak RAM-a popunjava spoljna sporija ili jeftinija memorija (tvrdi disk). , fleš memorija, itd.) ) Ovaj koncept se naziva virtuelna memorija. U ovom slučaju, linearni adresni prostor se može preslikati na fizički adresni prostor ili direktno (linearna adresa je fizička adresa) ili korištenjem mehanizma straničenja. U drugom slučaju, linearni adresni prostor je podijeljen na stranice jednake veličine koje čine virtualnu memoriju. Paging pruža mapiranje potrebnih stranica virtualne memorije u fizički adresni prostor.

Pored implementacije sistema virtuelne memorije, koriste se eksterni uređaji za skladištenje podataka dugotrajno skladištenje programa i podataka u obliku datoteka.

Keš memorija

Keš memorija je uređaj za skladištenje velike brzine koji se nalazi na istoj matrici kao i CPU ili izvan CPU-a. Keš memorija služi kao bafer velike brzine između CPU-a i relativno spore glavne memorije. Ideja keš memorije zasniva se na predviđanju najvjerovatnijih CPU pristupa RAM-u. Ovaj pristup se zasniva na principu vremenske i prostorne lokalnosti programa.



Ako je CPU pristupio objektu u RAM-u, vrlo je vjerovatno da će se CPU uskoro ponovo pozvati na taj objekt. Primjer ove situacije bi bio kod ili podaci u petljama. Ovaj koncept je opisan principom privremene lokacije, prema kojem često korišteni objekti glavne memorije trebaju biti "bliži" CPU-u (u kešu).

Za usklađivanje sadržaja keš memorije i RAM-a koriste se tri metode pisanja:

  • Write through - istovremeno sa keš memorijom, RAM se ažurira.
  • Buffered write through - informacije se odlažu u baferu keš memorije prije nego što se upisuju u RAM i ponovno upisuju u RAM u onim ciklusima kada im CPU ne pristupa.
  • Write back - koristi se bit promjene u polju oznake, a linija se ponovo upisuje u RAM samo ako je bit promjene 1.

Po pravilu, sve metode pisanja, osim prolaznog, dozvoljavaju odlaganje i grupisanje upisa u RAM radi povećanja performansi.

U strukturi keš memorije razlikuju se dvije vrste blokova podataka:

  • memorija za prikaz podataka (zapravo sami podaci, duplirani iz RAM-a);
  • tag memorija (znakovi koji ukazuju na lokaciju keširanih podataka u RAM-u).

Memorijski prostor za prikazivanje podataka u keš memoriji razbijen je na linije - blokove fiksne dužine (na primjer, 32, 64 ili 128 bajtova). Svaka linija keša može sadržavati neprekidni poravnati blok bajtova iz glavne memorije. Koji blok RAM-a je mapiran u datu liniju keš memorije određeno je oznakom linije i algoritmom mapiranja. Prema algoritmima za mapiranje RAM-a u keš memoriju, postoje tri tipa keš memorije:

  • potpuno asocijativni keš;
  • direktan prikaz predmemorije;
  • višestruki asocijativni keš.

Za potpuno asocijativnu keš memoriju je karakteristično da keš kontroler može smjestiti bilo koji blok RAM-a u bilo koju liniju keš memorije (slika 9.1). U ovom slučaju, fizička adresa je podijeljena na dva dijela: pomak u bloku (keš linija) i broj bloka. Kada se blok stavi u keš memoriju, broj bloka se pohranjuje u oznaku odgovarajuće linije. Kada CPU pristupi kešu za neophodan blok, promašaj keša će se otkriti tek nakon upoređivanja oznaka svih linija sa brojem bloka.

Jedna od glavnih prednosti ovu metodu displej - dobra iskorišćenost RAM memorije, tk. ne postoji ograničenje koji blok može biti mapiran na određenu liniju keša. Nedostaci uključuju složenu hardversku implementaciju ove metode, koja zahtijeva veliku količinu kola (uglavnom komparatora), što dovodi do povećanja vremena pristupa takvom kešu i povećanja njegove cijene.

Uvećaj sliku
Rice. 9.1. Potpuno asocijativna 8x8 keš memorija za 10-bitnu adresu

Alternativni način mapiranja RAM-a u keš memoriju je unaprijed mapirana keš memorija (ili jednosmjerna asocijativna keš memorija). U ovom slučaju, memorijska adresa (broj bloka) jedinstveno određuje keš liniju u koju će ovaj blok biti smješten. Fizička adresa je podijeljena na tri dijela: pomak bloka (linija keš memorije), broj keš linije i oznaka. Ovaj ili onaj blok će uvijek stati u strogo definiranu liniju keša, zamjenjujući drugi blok koji je tamo pohranjen ako je potrebno. Kada CPU pristupa kešu za blok koji mu je potreban, treba samo provjeriti jedan red oznaka da bi odredio pogodak ili promašaj keša.

Očigledne prednosti ovog algoritma su jednostavnost i niska cijena implementacije. Nedostaci uključuju nisku efikasnost takve keš memorije zbog vjerovatno čestih ponovnih učitavanja linije. Na primjer, kada se govori o svakoj 64. memorijskoj ćeliji u sistemu na sl. 9.2, keš kontroler će biti prisiljen stalno preopteretiti istu liniju keša, potpuno bez korištenja ostatka.

Uvećaj sliku
Rice. 9.2. 8x8 keš mapiranja naprijed za 10-bitnu adresu

Uprkos očiglednim nedostacima, ovu tehnologiju pronašao uspešnu aplikaciju, na primer, u MP Motorola MC68020, za organizovanje keša instrukcija prvog nivoa (slika 9.3). Ovaj mikroprocesor implementira direktnu predmemoriju prikaza od 64 reda od 4 bajta. Oznaka stringa, pored 24 bita koji specificiraju adresu keširanog bloka, sadrži bit značajnosti koji određuje valjanost niza (ako je bit značajnosti 0, dati niz smatra se nevažećim i neće uzrokovati pogotke u keš memoriji). Pristup podacima nije keširan.

Uvećaj sliku
Rice. 9.3. Dijagram organizacije keš memorije u MP Motorola MC68020

Kompromis između prva dva algoritma je višestruki asocijativni keš ili parcijalni asocijativni keš (slika 9.4). Ovom metodom organizovanja keš memorije, linije se kombinuju u grupe, koje mogu uključivati ​​2, 4,: reda. U skladu sa brojem linija u takvim grupama razlikuju se 2-ulazni, 4-ulazni itd. asocijativni keš. Prilikom pristupa memoriji, fizička adresa se dijeli na tri dijela: pomak u bloku (keš linija), broj grupe (skupa) i tag. Memorijski blok čija adresa odgovara određenoj grupi može se staviti u bilo koji red ove grupe, a odgovarajuća vrijednost se stavlja u oznaku linije. Očigledno je da se unutar odabrane grupe poštuje princip asocijativnosti. S druge strane, ovaj ili onaj blok može pasti samo u strogo definiranu grupu, što odražava princip organiziranja keša direktnog prikaza. Da bi procesor mogao da identifikuje promašaj keša, moraće da proveri oznake samo jedne grupe (2/4/8 /: redovi).

Uvećaj sliku
Rice. 9.4. Asocijativna keš memorija sa dva ulaza 8x8 za 10-bitnu adresu

Ovaj algoritam prikaza kombinuje prednosti potpuno asocijativnog keš memorije (dobro korištenje memorije, velika brzina) i keš memorije s direktnim pristupom (jednostavnost i niska cijena), samo malo inferiorniji u ovim karakteristikama u odnosu na originalne algoritme. Zbog toga je višestruki asocijativni keš najrašireniji (tabela 9.2).

Tabela 9.2. IA-32 Specifikacije podsistema keš memorije
Intel486 Pentium Pentium MMX P6 Pentium 4
L1 keš instrukcija
Vrstu 4-in. vanr. 2-in. vanr. 4-in. vanr. 4-in. vanr. 8-in. vanr.
Veličina linije, bajtovi -
Ukupna zapremina, KB 8/16 8/16 12Kmops
L1 keš podataka
Vrstu Dijeljeno s kešom instrukcija 2-in. vanr. 4-in. vanr. 2/4-in. vanr. 4-in. vanr.
Veličina linije, bajtovi
Ukupna zapremina, KB 8/16
L2 keš memorija
Vrstu Eksterni vanjski 4-in. vanr. 4-in. vanr. 8-in. vanr.
Veličina linije, bajtovi
Ukupna zapremina, KB 256/512 128-2048 256/512

Napomene: Intel-486 koristi jednu L1 instrukciju i keš memoriju podataka. U Pentium Pro L1, keš memorija podataka je 8 kbajta 2-smjerna asocijativna, u ostalim modelima P6 je 16 kbajta 4-smjerna asocijativna. U Pentiumu 4, umjesto L1 keša instrukcija, koristi se L1 mikro-op keš (keš memorija praćenja).

Da biste organizovali keš memoriju, možete koristiti Princeton arhitekturu (mešoviti keš za uputstva i podatke, na primer, u Intel-486). Ovo očigledno (i neizbežno za von Neumann sisteme sa keš memorijom van CPU-a) nije uvek najefikasnije rešenje. Odvajanje keš memorije na predmemoriju instrukcija i keš podataka (keš memorije Harvardske arhitekture) poboljšava efikasnost keš memorije iz sljedećih razloga:

  • Mnogi moderni procesori imaju cevovodnu arhitekturu u kojoj blokovi cevovoda rade paralelno. Stoga se dohvaćanje instrukcija i pristup podacima instrukcija izvode u različitim fazama cjevovoda, a korištenje odvojene keš memorije omogućava da se ove operacije izvode paralelno.
  • Keš instrukcija se može implementirati kao samo za čitanje i stoga ne zahtijeva nikakve algoritme povratnog upisivanja, što ovu keš memoriju čini jednostavnijom, jeftinijom i bržom.

Zbog toga svi najnoviji modeli IA-32, počevši od Pentiuma, koriste arhitekturu Harvarda za organizaciju L1 keša.

Kriterijumom za efikasan rad keš memorije može se smatrati smanjenje prosečnog vremena pristupa memoriji u poređenju sa sistemom bez keš memorije. U ovom slučaju, prosječno vrijeme pristupa se može procijeniti na sljedeći način:

T cf = (T pogodak x R pogodak) + (T promašaj x (1 R pogodak))

gdje je T pogodak vrijeme pristupa keš memoriji u slučaju pogotka (uključuje vrijeme za identifikaciju promašaja ili pogodaka), T promašaj je vrijeme potrebno za učitavanje bloka iz glavne memorije u keš liniju u slučaju promašaj keš memorije, a zatim isporuči tražene podatke procesoru, R hit-hit rate.

Očigledno, što je bliža vrijednost R pogodaka 1, to je bliža vrijednost T cf T pogodaka. Stopa pogodaka prvenstveno je određena arhitekturom i veličinom keša. Uticaj prisustva i odsustva keš memorije i njene veličine na povećanje performansi procesora prikazan je u tabeli. 9.3.

Top srodni članci