Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Windows 7, XP
  • Fizička i logička organizacija memorije računalnih sustava. Organizacija memorije u računalima

Fizička i logička organizacija memorije računalnih sustava. Organizacija memorije u računalima

Poglavlje 11

Organizacija memorijsko računanje sustava

U računalnim sustavima koji kombiniraju mnoge paralelne procesore ili strojeve, zadatak ispravna organizacija pamćenje je jedno od najvažnijih. Razlika između brzine procesora i memorije oduvijek je bila kamen spoticanja u jednoprocesorskim VM-ovima. VS multiprocesiranje dovodi do drugog problema - problema istovremenog pristupa memoriji s više procesora.

Ovisno o tome kako je organizirana memorija višeprocesorskih (višeračunarskih) sustava, računalni sustavi se razlikuju od zajednička memorija(zajednička memorija) i VS s distribuiranom memorijom. V sustavi zajedničke memorije(često se naziva i zajednička ili zajednička memorija) Memorija Sunca se smatra resursom zajednice, a svaki od procesora ima puni pristup na cijeli adresni prostor. Sustavi dijeljene memorije nazivaju se čvrsto vezan(usko povezani sustavi). Slična konstrukcija računalnih sustava odvija se i u klasi SIMD iu klasi MIMD. Ponekad se, kako bi se naglasila ova okolnost, uvode posebne podklase, koje označavaju skraćenicama SM-SIMD (Shared Memory SIMD) i SM-MIMD (Shared Memory MIMD).

U opciji s distribuiranom memorijom svakom od procesora dodijeljena je vlastita 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 zrakoplova tzv labavo spojeni(labavo spojeni sustavi). Slabo srodni sustavi također se nalaze iu klasi SIMD i klasi MIMD, a ponekad i da se naglasi ovu značajku, uvesti podklase DM-SIMD (Distributed Memory SIMD) i DM-MIMD (Distributed Memory MIMD).

U nekim slučajevima nazivaju se računalni sustavi sa zajedničkom memorijom multiprocesori, i sustavi s distribuiranom memorijom - mtsltračunala.

Razlika između dijeljene i distribuirane memorije je razlika u strukturi virtualna memorija, odnosno kako memorija izgleda sa strane procesora. Fizički se gotovo svaki memorijski sustav dijeli na samostalne komponente kojima se može samostalno pristupiti. Način na koji memorijski podsustav tumači adresu ćelije primljenu od procesora odvaja se 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 isto mjesto za bilo koji procesor. V distribuirani sustav sjećanje jesam lokalna adresa Ako dva procesora izvrše naredbu load RO, i, tada svaki od njih pristupa i-ta ćelija u svojoj lokalnoj memoriji, tj. da različite stanice, a nejednake vrijednosti mogu se učitati u registre R0.

Programer mora imati na umu razliku između dvaju memorijskih sustava, jer ona određuje način na koji dijelovi paralelnog programa međusobno djeluju. U varijanti sa zajedničkom memorijom dovoljno je stvoriti strukturu podataka u memoriji i prenijeti reference na tu strukturu u paralelne potprograme. U sustavu distribuirane memorije morate imati kopiju zajedničkih podataka u svakoj lokalnoj memoriji. Te se kopije stvaraju ugniježđenjem zajedničkih podataka u poruke poslane drugim procesorima.

Memorija S naizmjenično adrese

Fizički se memorija računalnog sustava sastoji od nekoliko modula (banka), a bitno je pitanje kako je u tom slučaju raspoređen adresni prostor (skup svih adresa koje procesor može formirati). Jedan od načina za distribuciju virtualnih adresa po memorijskim modulima je dijeljenje adresnog prostora u sekvencijalne blokove. Ako se sjećanje sastoji od P banke, zatim ćelija s adresom i u slučaju cijepanja bloka, bit će u banci s brojem ja /n. U sustavu isprepletena memorija(interleaved memory) uzastopne adrese nalaze se u različitim bankama: ćelija s adresom i nalazi se u banci s brojem i mod P. Neka se, na primjer, memorija sastoji od četiri banke, po 256 bajtova u svakoj. U shemi blok adresiranja, prva banka će biti dodijeljena virtualne adrese 0-255, drugi - 256-511, itd. U shemi s izmjeničnim adresama, uzastopne ćelije u prvoj banci imat će virtualne adrese 0, 4, 8, .... u drugoj banci - 1, 5, 9 , itd. (Slika 11.1, a).

Raspodjela adresnog prostora među modulima omogućuje istovremenu 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 sljedeć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 omogućuje povećanje propusnosti: ako se memorijski sustav sastoji od

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

Modeli memorijske arhitekture računalnih sustava

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

DIV_ADBLOCK84 ">

Riža. 11.3. Zajednička memorija: a - kombiniranje procesora pomoću sabirnice; b - sustav s lokalnim predmemorijama; v- performanse sustava kao funkcija broja procesora na sabirnici; d - višeprocesorski VS sa zajedničkom memorijom, koji se sastoji od zasebnih modula

Alternativni način konstrukcija višeprocesorskog VS-a sa zajedničkom memorijom temeljenom 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. Unatoč činjenici da postoji nekoliko memorijskih modula, svi oni pripadaju jednom virtualnom adresnom prostoru. Prednost ovog pristupa je u tome što preklopnik može poslužiti više zahtjeva paralelno. Svaki procesor može biti spojen na vlastiti memorijski modul i imati mu pristup maksimalnom dopuštenom brzinom. Suparništvo između procesora može nastati kada se pokuša pristupiti istom memorijskom modulu u isto vrijeme. U tom slučaju samo jedan procesor dobiva pristup, a ostali su blokirani.

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

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 izravno pristupa vlastitoj lokalnoj memoriji, što je mnogo brže od pristupa udaljenoj memoriji preko prekidača ili mreže. Takav se sustav može nadopuniti globalnom memorijom, tada lokalni uređaji za pohranu djeluju kao brza cache memorija za globalnu memoriju. Takva shema može poboljšati performanse zrakoplova, ali nije u stanju beskonačno odgoditi izjednačavanje izravne izvedbe. Ako svaki procesor ima lokalnu predmemoriju (slika 11.3.6), postoji velika vjerojatnost (p> 0.9) da se tražena naredba ili podaci već nalaze u lokalnoj memoriji. Razumna vjerojatnost pogađanja lokalne memorije značajno smanjuje broj poziva procesora Do globalno pamćenje i time dovodi do povećane učinkovitosti. Mjesto prijeloma krivulje performansi (gornja krivulja na slici 11.3, v), točka u kojoj je dodavanje procesora još uvijek učinkovito sada se premješta u procesorsko područje 20, a tanja, gdje krivulja postaje horizontalna, u procesorsko područje 30.

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

V arhitektura samo predmemorije(SOMA, arhitektura samo predmemorije) Lokalna memorija svakog procesora izgrađena je kao velika predmemorija za brzi pristup sa strane "vlastitog" procesora. Predmemorije svih procesora zajedno se smatraju globalnom memorijom sustava. Ne postoji stvarna globalna memorija. Temeljna značajka SOMA koncepta izražena je u dinamici. Ovdje podaci nisu statički vezani za određeni memorijski modul i nemaju jedinstvenu adresu koja ostaje nepromijenjena tijekom cijelog životnog vijeka varijable. U SOMA arhitekturi podaci se prenose u cache memoriju procesora koji ih je zadnji zatražio, dok varijabla nije fiksna s jedinstvenom adresom i može se u bilo kojem trenutku nalaziti u bilo kojoj fizičkoj ćeliji. Premještanje podataka iz jedne lokalne predmemorije u drugu ne zahtijeva sudjelovanje u ovom procesu operacijski sustav ali podrazumijeva složen i skup hardver za upravljanje memorijom. Za organiziranje takvog režima tzv direktorije predmemorije. Također imajte na umu da se posljednja kopija stavke nikada ne uklanja iz predmemorije.

Budući da se u arhitekturi SOMA podaci premještaju u lokalnu cache memoriju vlasničkog procesora, takvi zrakoplovi 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 predmemoriju u jednu liniju zahtijevaju dva procesora, ovaj red predmemorije mora se pomicati naprijed-natrag između procesora svaki put kada se pristupi podacima. Takvi učinci 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) bitno se razlikuje od SOMA modela. CC-NUMA sustav ne koristi cache memoriju, već uobičajenu fizički dodijeljenu memoriju. Ne dolazi do kopiranja stranica ili podataka između memorijskih mjesta. Nema softverskih poruka. Postoji samo jedan memorijski stick, s dijelovima fizički povezanim bakrenim kabelom i pametnim hardverom. Koherentnost predmemorije temeljena na hardveru znači da nije potreban softver za pohranu više kopija ažuriranih podataka ili njihov prijenos. Razina hardvera rješava sve to. Pristup lokalnim memorijskim modulima u različitim čvorovima sustava može se obavljati istovremeno i brži je nego udaljenim memorijskim modulima.

Razlika između modela sa cache-inkoherentan neujednačen pristup memoriji(NCC-NUMA, Non-Cache Coherent Non-Uniform Memory Architecture) iz CC-NUMA očito je iz imena. Arhitektura memorije pretpostavlja jedan adresni prostor, ali ne osigurava hardversku konzistentnost globalnih podataka. Upravljanje korištenjem takvih podataka u potpunosti ovisi o softveru (aplikacijama ili kompajlerima). Unatoč ovoj okolnosti, koja se čini kao nedostatak arhitekture, pokazuje se vrlo korisnom u povećanju performansi računalnih sustava s memorijskom arhitekturom tipa DSM, razmatranom u odjeljku "Modeli distribuiranih memorijskih arhitektura".

Općenito se nazivaju AC-ovi sa zajedničkom memorijom izgrađenom prema NUMA shemi arhitekture virtualne dijeljene memorije(virtualne dijeljene memorije arhitekture). Ova vrsta arhitekture, posebno CC-NUMA, u U posljednje vrijeme smatra se neovisnom i prilično obećavajućom vrstom računalnih sustava klase MIMD, stoga će se o takvim zrakoplovima detaljnije raspravljati u nastavku.

Modeli arhitekture distribuirane memorije

U distribuiranom memorijskom sustavu, svaki procesor ima vlastitu memoriju i može je samo adresirati. Neki autori ovu vrstu sustava nazivaju višeračunalni zrakoplov ili višeračunala, ističući činjenicu da su građevni blokovi sustava sami po sebi mali računalni sustavi s procesorom i memorijom. Modeli arhitektura distribuirane memorije obično se označavaju kao arhitekture bez Direktni pristup u udaljenu memoriju(NORMA, Nema pristupa daljinskoj memoriji). Ovaj naziv proizlazi iz činjenice da svaki procesor ima pristup samo svojoj lokalnoj memoriji. Pristup udaljenoj memoriji (lokalna memorija drugog procesora) moguć je samo razmjenom poruka s procesorom koji posjeduje adresabilnu memoriju.

Ova organizacija ima niz prednosti. Prvo, pri pristupu podacima nema konkurencije za sabirnicu ili sklopke - svaki procesor može u potpunosti koristiti propusnost komunikacijskog puta sa svojom vlastitom lokalnom memorijom. Drugo, odsutnost dijeljene sabirnice znači da nema povezanih ograničenja na broj procesora: veličina sustava ograničena je samo mrežom procesora. Treće, otklanja se problem koherentnosti predmemorije. Svaki procesor ima pravo samostalno mijenjati svoje Podatke bez brige o usklađivanju kopija podataka u vlastitoj lokalnoj cache memoriji s predmemorijama drugih procesora.

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

· Potrebno je vrijeme za formiranje i prosljeđivanje poruke od jednog! procesor drugome;

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

Struktura distribuiranog memorijskog sustava 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 na desnoj strani (Sl.11.4, b) prikazan je četveroprocesorski sustav koji ilustrira kako se poruke šalju s jednog procesora na drugi. U odnosu na svaki PE, svi ostali procesni elementi mogu se promatrati jednostavno kao ulazno/izlazni uređaji. Za slanje poruke drugom PE, procesor formira podatkovni blok u svojoj lokalnoj memoriji i obavještava ga lokalni kontrolor o potrebi prijenosa informacija na vanjski uređaj. Kroz međuveznu mrežu, ova se poruka prosljeđuje prijemnom I/O kontroleru PE primatelja. Potonji pronalazi prostor za poruku u vlastitoj lokalnoj memoriji i obavještava izvorni procesor da je poruka primljena.

DIV_ADBLOCK89 ">

Zanimljiva varijanta distribuiranog memorijskog sustava je; model distribuirana zajednička memorija(DSM, Distribute Shared Memory), također poznat pod drugim imenom arhitektura s heterogenimpristup memoriji i usklađenost softvera(SC-NUMA, softversko-koherentna neuniformna memorijska arhitektura). Ideja ovog modela je da se BC, budući da je fizički sustav s distribuiranom memorijom, zahvaljujući operativnom sustavu korisniku prikaže kao sustav sa zajedničkom memorijom. To znači da operativni sustav korisniku nudi jedan adresni prostor, unatoč činjenici da je stvarni pristup memoriji "stranog" zrakoplovnog računala i dalje omogućen razmjenom poruka.

Višeprocesorkoherentnost cache- memorija

Višeprocesorski sustav dijeljene memorije sastoji se od dva ili više neovisnih procesora, od kojih svaki izvršava dio velikog programa ili neovisni program. Svi procesori pristupaju uputama i podacima pohranjenim u zajedničkoj glavnoj memoriji. Budući da je memorija zajednički resurs, postoji konkurencija između procesora prilikom pristupanja, što povećava prosječnu latencija pristupa memoriji. Kako bi se smanjila ova latencija, 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 cache memorijom dovodi do tzv problem koherentnosti ili pružanje u dogovorucache memorija. Sustav je prema sustavu koherentan ako svaka operacija čitanja na nekoj adresi, koju izvodi bilo koji od procesora, vraća vrijednost unesenu tijekom posljednje operacije pisanja na ovoj adresi, bez obzira na to koji je procesor zadnji napisao.

V najjednostavniji oblik problem koherencije predmemorije može se objasniti na sljedeći način (slika 11.5). Neka dva procesora Rg i Pr su spojeni na zajedničku memoriju preko sabirnice. Prvo, oba procesora čitaju varijablu X. Kopije blokova koji sadrže ovu varijablu prenose se iz glavne memorije u lokalne predmemorije oba procesora (slika 11.5, a). Tada procesor Pt izvodi operaciju povećanja vrijednosti varijable x po jedinici. Budući da je kopija varijable već u predmemoriji ovog procesora, dogodit će se pogodak u predmemoriji i vrijednost će se promijeniti samo u predmemoriji 1. Ako sada procesor P2 ponovo izvrši operaciju čitanja X, tada će se također dogoditi pogodak u predmemoriji i P2 će primiti "staru" vrijednost pohranjenu u svojoj cache memoriji x(slika 11.5, b).

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

Postoje dva pristupa rješavanju problema koherencije: softverski i hardverski. Neki sustavi koriste strategije koje kombiniraju oba pristupa.

Softver načine rješenjaProblemi koherentnost

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

ProtokolBerkeley. Berkeley protokol korišten je u višeprocesorskom sustavu Berkeley baziranom na RISC procesorima.

Opterećenje promašaja predmemorije ublaženo je idejom protokola o vlasništvu nad linijom predmemorije. Općenito, glavna memorija se smatra vlasnikom svih blokova podataka. Prije izmjene sadržaja retka u njegovoj predmemoriji, procesor mora steći vlasništvo nad redom. Ta se prava stječu posebnim operacijama čitanja i pisanja. Ako se prilikom pristupa bloku čiji vlasnik u ovaj trenutak nije glavna memorija, dolazi do promašaja predmemorije, procesor koji posjeduje red sprječava čitanje iz glavne memorije i hrani procesor koji je tražio podatke iz svoje lokalne predmemorije.

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

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

U slučaju promašaja predmemorije čitanja, 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 redak bio u vlasništvu drugog procesora, on označava svoju kopiju bloka kao Dijeljeno prljavo (SD).

Dijagram stanja Berkeley protokola prikazan je na Sl. 11.10.

Uspoređ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 cache memoriji što je dulje moguće. Glavna memorija se ažurira samo kada se redak izbriše iz predmemorije. Gornja granica ukupnog broja transakcija pisanja na sabirnici određena je onim dijelom protokola za jednokratno upisivanje koji implementira pisanje, budući da potonja strategija generira operaciju pisanja na sabirnici sa svakom promjenom koju pokreće procesor. Budući da je prva operacija pisanja u protokolu za jednokratno upisivanje prolazna, izvodi se čak i ako se podaci ne dijele. To podrazumijeva dodatni promet sabirnice, koja se povećava s povećanjem kapaciteta predmemorije. Protokol za jednokratno pisanje dokazano rezultira većim prometom sabirnice u usporedbi s Berkeley protokolom .







Čitajući pogodak

Riža. 11.10. Berkeley protokol

Čitljiv i ažuriran redak u protokolu za jednokratno pisanje zahtijeva da se redak pročita u predmemoriju, lokalno modificira u predmemoriji i zapiše natrag u memoriju. Cijeli postupak zahtijeva dvije operacije na sabirnici: č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 mijenja u predmemoriji. Ako se retku nije pristupilo prije brisanja iz predmemorije, ciklusi sabirnice bit će isti kao u protokolu za jednokratno upisivanje. Međutim, vjerojatnije je da će linija biti ponovno zatražena, tada sa stajališta jedne cache memorije, ažuriranje linije predmemorije zahtijeva samo jednu operaciju čitanja na sabirnici. Dakle, Berkeley protokol prenosi linije izravno između predmemorije, dok protokol za jednokratno upisivanje prenosi blok iz izvorne predmemorije u glavnu memoriju, a zatim iz OP-a u predmemoriju koja zahtijeva, što rezultira ukupnim kašnjenjem memorijskog sustava. .

ProtokolIllinois. Protokol iz Illinoisa, koji je predložio Marc Papamarcos, također ima za cilj smanjiti promet sabirnice, a time i timeout procesora za pristup sabirnici. Ovdje je, kao iu Berkeley protokolu, ideja o vlasništvu nad blokovima dominantna, ali malo modificirana. U Illinois protokolu, vlasništvo ima svaka predmemorija koja sadrži valjanu kopiju bloka podataka. U tom slučaju isti blok može imati nekoliko 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 generira se samo kada su kopije ovog bloka dostupne u drugim predmemorijama. Mogući scenariji za Illinois protokol prikazani su na sl. 11.11.

Riža. 11.11. Illinois protokol

Svaki put kada procesor upiše u svoju predmemoriju, izmijenjeni niz se stavlja u privatno prljavo (PD) stanje. Ako je podatkovni blok zajednički, signal za ukidanje šalje se na sabirnicu i u svim lokalnim predmemorijama postoji kopija ovog bloka , ove kopije se prenose u "nevažeće" stanje (I, Nevažeći). Ako dođe do promašaja pisanja, procesor dohvaća kopiju iz predmemorije trenutnog vlasnika traženog bloka. Tek nakon naznačenih radnji, procesor upisuje u svoju predmemoriju. Kao što vidite, u ovom dijelu postoji potpuna podudarnost s Berkeley protokolom.

U slučaju promašaja predmemorije čitanja, 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. Inače, status se mijenja u "dijeljeno" (S, Shared).

Bitno je da je protokol proširiv i usko vezan i za omjer promašaja predmemorije i za količinu podataka koja je zajedničko svojstvo višeprocesorskog sustava.

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

Protokol Firefly koristi zapis ažuriranja. Moguća stanja linije predmemorije ista su kao stanja protokola Illinois (Slika 11-12). Razlika je u tome što se strategija povratnog upisivanja primjenjuje samo na retke u PD ili E stanju, dok se prepisivanje primjenjuje na retke u S stanju. Predmemorije promatrača koriste prepisivanje za ažuriranje svojih kopija. Osim toga, promatranje predmemorije koje pronađu kopiju retka u sebi pozivaju posebnu "dijeljenu" liniju sabirnice tako da kontroler pisanja može odlučiti u koje stanje staviti liniju u koju je napisana. "Zajednička" linija na promašaju predmemorije čitanja služi za informiranje lokalnog kontrolora predmemorije odakle je došla kopija retka: iz glavne memorije ili druge predmemorije. 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 ">

Riža. 11.13. Protokol o zmaju

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

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

Podijeljeno(S, Shared) - linija predmemorije odgovara sličnoj liniji u glavnoj memoriji (podaci su valjani) i može biti prisutna u jednoj ili više drugih predmemorija.

Nevažeći(I, Nevažeći) - Redak predmemorije označen kao nevažeći ne sadrži valjane podatke i postaje logički nedostupan.

Riža. 11.15. Slijed 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 linija predmemorije prelazi iz jednog stanja u drugo ovisi o: trenutnom statusu retka, operaciji koja se izvodi (čitanje ili pisanje), rezultatu pristupa predmemoriji (pogodan ili promašen) i, ​​konačno, da li linija je zajednička ili ne. Na sl. 11.14 prikazuje dijagram glavnih prijelaza bez uzimanja u obzir načina rada za jednokratno upisivanje.

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

Kada procesor uputi zahtjev za pisanje nizu koji nije u njegovoj lokalnoj predmemoriji (promašaj pisanja), niz se mora pročitati iz glavne memorije (RAM) i ažurirati prije nego što se učita u predmemoriju. Prije nego što procesor može učitati redak, mora osigurati da je valjana verzija podataka zapravo u glavnoj memoriji, odnosno da nijedna modificirana kopija retka nije u drugim predmemorijama. Slijed operacija formiran u ovom slučaju zove se čita s namjerom izmjenecije(RWITM, čitanje s namjerom izmjene). Ako je kopija tražene linije pronađena u jednoj od predmemorija, iu stanju M, tada procesor s ovom kopijom prekida RWITM slijed i ponovno upisuje redak u OP, nakon čega mijenja stanje linije u svojoj predmemoriji do I. Zatim se RWITM slijed nastavlja i vrši ponovni pristup glavnoj memoriji kako bi se pročitao ažurirani redak. Konačno stanje linije bit će M, u kojem nema njegove pouzdanije kopije ni u OP-u ni u drugim predmemorijama. Ako je kopija retka postojala u drugoj predmemoriji i nije imala stanje M, tada se takva kopija odbacuje i odmah se vrši pristup glavnoj memoriji.

Predmemorija za čitanje ne mijenja status reda koji se čita. Ako procesor izvrši pristup pisanju postojećoj liniji u stanju S, on emitira na sabirnicu kako bi obavijestio druge predmemorije, ažurira liniju u svojoj predmemoriji i postavlja je u status M. Sve ostale kopije linije se premještaju u stanje I. Ako procesor vrši pristup pisanju na liniju u stanju E, jedino što treba učiniti je upisati u liniju i promijeniti njeno stanje u M, budući da u sustavu nema drugih kopija linije.

Na sl. 11.15 prikazuje tipičan slijed događaja u sustavu od dva procesora koji traže pristup ćeliji x. Pristup bilo kojoj ćeliji u retku predmemorije smatra se pristupom cijelom retku.

Ilustrirajmo faze u kojima procesor 2 pokušava pročitati sadržaj ćelije x "(slika 11.16). Prvo dolazi do promašaja predmemorije čitanja i procesor pokušava pristupiti glavnoj memoriji. Procesor 1 nadzire sabirnicu, detektira pristup ćelije, čija se kopija nalazi u njezinoj cache-memoriji i nalazi se u




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

glasi x; b - procesor 1 upisuje natrag 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 redak koji sadrži x "u OP-u i oslobađa procesor 2 tako da može ponoviti pristup glavnoj memoriji. Sada procesor 2 prima redak koji sadrži x" i učitava ga u vašu predmemoriju. 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, malo izmijenjeno. Svi promašaji predmemorije čitanja uzrokuju prijelaz u stanje S. Nakon prvog pogotka pisanja slijedi prijelaz u stanje E (tzv. prijelaz jednom upisivanja). Sljedeći pogodak tijekom pisanja podrazumijeva promjenu statusa linije u M.

Protokoli temeljeni na imeniku

Protokoli usklađenosti temeljeni na imeniku tipično za složene višeprocesorske sustave sa zajedničkom memorijom, gdje su procesori ujedinjeni višestupanjskom hijerarhijskom mrežom međusobnog povezivanja. Složenost topologije čini korištenje nadzornih protokola s njihovim mehanizmom emitiranja skupim i neučinkovitim.

Protokoli temeljeni na imeniku prikupljaju i prate informacije o sadržaju svih lokalnih predmemorija. Takvi se protokoli obično implementiraju s centraliziranim kontrolerom koji je fizički dio glavnog memorijskog kontrolera. Sama priručnik je pohranjena u glavnoj memoriji. Kada lokalni kontroler predmemorije postavi zahtjev, kontroler imenika detektira takav zahtjev i generira upute potrebne za prijenos podataka iz glavne memorije ili iz druge lokalne predmemorije koja sadrži najnoviju verziju traženih podataka. Središnji kontroler odgovoran je za ažuriranje informacija o stanju lokalnih predmemorija, stoga mora biti obaviješten o svakoj lokalnoj radnji koja bi mogla utjecati na stanje podatkovnog bloka.

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

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

Trenutno postoje tri poznata načina implementacije protokola koherentnosti predmemorije temeljenih na direktoriju: potpuna referenca, ograničena referenca i spojena referenca.

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


Riža. 11.17. Full Reference Cache Coherency Protocol

U sustavu od N procesora, svaki unos imenika će sadržavati N jednobitni pokazivači. Ako postoji kopija podataka u odgovarajućoj lokalnoj cache memoriji, bit pokazivača se postavlja na 1, inače - na 0. Dijagram s potpunom referencom prikazan je na sl. 11.17. Ovo pretpostavlja da postoji kopija retka u svakoj predmemoriji. Svakom retku dodijeljena su dva indikatora statusa: valjani bit (V, Valid) i bit vlasništva (P, Private). Ako su informacije u retku točne, njegov V-bit je postavljen na 1. Jedna vrijednost P-bita označava da dati procesor ima pravo upisivanja u odgovarajući redak svoje lokalne cache memorije.

Pretpostavimo da procesor 2 upisuje na mjesto x. U početku procesor još nije dobio dopuštenje za takvo snimanje. Formira zahtjev kontroloru imenika i čeka dopuštenje za nastavak operacije. Kao odgovor na zahtjev za sve predmemorije u kojima postoje kopije retka koji sadrži ćeliju x, izdaje se signal za odbacivanje postojećih kopija. Svaka predmemorija koja primi ovaj signal resetira bit valjanosti niza (V-bit) s nultom vrijednosti na 0 i vraća signal potvrde kontroleru direktorija. Nakon primanja svih signala potvrde, kontroler imenika postavlja modifikacijski bit (D-bit) odgovarajućeg unosa imenika na jedan i šalje signal procesoru 2 kako bi omogućio pisanje u ćeliju x. Od ove točke nadalje, procesor 2 može nastaviti pisati u vlastitu kopiju ćelije x, kao iu glavnu memoriju, ako je shema pisanja implementirana u predmemoriju.

Glavni problemi kompletnog imeničkog protokola vezani su za veliki broj unosa. Za svaku ćeliju u referenci sustava od N procesora, potrebno je N + 1 bit, odnosno s povećanjem broja procesora koeficijent složenosti raste linearno. Potpuni protokol direktorija omogućuje 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 protokols ograničenom referencom kopije jednog retka mogu biti samo u ograničenom broju predmemorija - ne može biti više od P kopije niza, dok je broj pokazivača u unosima direktorija smanjen na n (n< N ). Za jedinstvenu identifikaciju cache memorije koja pohranjuje kopiju, pokazivač umjesto jednog bita trebao bi se sastojati od log2 N bitova i ukupne duljine pokazivača u svakom unosu direktorija, umjesto od N bitova bit će jednaki Plog2N malo. Uz konstantnu vrijednost P stopa rasta faktora složenosti ograničenog imenika kako se veličina sustava povećava niža je nego u slučaju linearnog odnosa.

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

Metoda povezani imenici također ima za cilj sažimanje volumena priručnika. Za pohranu zapisa koristi povezani popis koji se može implementirati kao jedan povezan (jednosmjerno) i dvostruko povezan (dvosmjerno).

Riža. 11.18. Protokol koherencije spojene predmemorije imenika

U jednom povezanom popisu (slika 11.18), svaki unos u direktorij sadrži pokazivač na kopiju niza u jednoj od lokalnih predmemorija. Kopije istoimenih linija u različitim predmemorijama sustava čine jednosmjerni lanac. Da bi to učinili, njihove oznake pružaju posebno polje u koje se unosi pokazivač na cache memoriju koja sadrži sljedeću kopiju lanca. U oznaku posljednji primjerak u lanac se stavlja poseban znak za razgraničenje. Povezana referenca dopušta nizove duljine N, odnosno podržava N kopije ćelije. Prilikom stvaranja 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 za nju se okreće glavnoj memoriji. Pokazivač u imeniku se mijenja tako da pokazuje na predmemoriju broj 5, a pokazivač u predmemoriju 5 - tako da pokazuje na predmemoriju 2. Za to glavni memorijski kontroler, zajedno sa traženim podacima, mora prenijeti i pokazivač u cache u cache memoriju 5 - memorija s brojem 2. Tek nakon što se formira cijela struktura lanca, procesor 5 će dobiti dopuštenje za pristup ćeliji x. Ako procesor upisuje u ćeliju, signal za poništenje šalje se stazom definiranom odgovarajućim lancem pokazivača. Lanac se mora ažurirati kada se kopija izbriše iz bilo koje cache memorije.

Dvostruko povezani popis podržava pokazivače naprijed i natrag. To vam omogućuje učinkovitije umetanje novih pokazivača u lanac ili brisanje iz njega koji više nisu potrebni, ali zahtijeva pohranjivanje većeg broja pokazivača.

Sheme temeljene na imeniku pate od zagušenja u centraliziranom kontroleru, kao i komunikacijskih nadmetanja u putovima između lokalnih kontrolera predmemorije i središnjeg kontrolera. Ipak, pokazali su se vrlo učinkovitima u višeprocesorskim sustavima sa složenom topologijom međupovezivanja između procesora, gdje se ne mogu implementirati protokoli za praćenje.

Ispod je kratak opis trenutno relevantnih protokola za osiguranje koherentnosti cache memorije na temelju referentne knjige. Za detaljnije upoznavanje s ovim protokolima date su poveznice na odgovarajuće književne izvore.

ProtokolTang. Postoji centralizirani globalni imenik koji sadrži potpunu kopiju svih informacija direktorija za svaku od lokalnih predmemorija. To dovodi do problema uska grla a 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 danog bloka memorije. Za svaki memorijski blok postoji takav vektor. Nedostaci ove metode su njezina neučinkovitost veliki broj procesore, a također zahtijeva pristup glavnoj memoriji za ažuriranje linija predmemorije.

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

ProtokolStenstrom. Stenstrom priručnik pruža šest valjanih stanja za svaki podatkovni blok. Ovaj protokol je relativno jednostavan i prikladan za bilo koju topologiju međupovezivanja procesora. Referenca je pohranjena u glavnoj memoriji. U slučaju promašaja čitanja predmemorije, pristupa se glavnoj memoriji koja šalje poruku u predmemoriju koja posjeduje blok, ako postoji. Po primitku ove poruke, vlasnik predmemorije šalje tražene podatke, a također prosljeđuje poruku svim ostalim procesorima koji dijele te podatke kako bi ažurirali svoje vektore bita. Shema nije vrlo učinkovita s velikim brojem procesora, no trenutno je najzreliji i najrašireniji protokol baziran na direktoriju.

Kontrolirati pitanja

1. Analizirajte utjecaj značajki AC-a sa zajedničkom memorijom i AC-a s distribuiranom memorijom na razvoj softvera. Zašto se ovi VS nazivaju, odnosno, jako spregnuti, odnosno slabo povezani?

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

3. Dajte usporedni opis homogenih i heterogenih pristupa
na sjećanje.

4. Koje su prednosti SOMA arhitekture?

5. Potrošite komparativna analiza modeli s cache-koherentnim i cache-inkoherentnim pristupom heterogenoj memoriji.

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

7. Objasnite značenje distribuirane i zajedničke memorije.

8. Razvijte svoj primjer kako biste ilustrirali problem koherentnosti predmemorije.

9. Opisati značajke programskih rješenja problema koherentnosti, istaknuti njihove prednosti i slabosti.

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

11. Dajte usporedni opis metoda za održavanje koherencije u višeprocesorskim sustavima.

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

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

14. Detaljno opisati koherentne protokole na temelju priručnika i metode njihove implementacije. Koje su razlike između ovih protokola i protokola promatranja?

Klasifikacija MKMD sustava

U MCMD sustavu, svaki element obrade (PE) izvršava svoj program sasvim neovisno o drugim PE-ovima. Istodobno, elementi obrade moraju na neki način međusobno komunicirati. Razlika u načinu takve interakcije određuje uvjetnu podjelu MCMD sustava na AC sa zajedničkom memorijom i sustave s distribuiranom memorijom (slika 5.7).

U sustavima sa zajedničkom memorijom, koji se karakteriziraju čvrsto povezanim, postoji zajednička memorija podataka i instrukcija koja je dostupna svim procesnim elementima koji koriste zajedničku sabirnicu ili mrežu veza. Takvi sustavi nazivaju se višeprocesorima. Ova vrsta uključuje simetrične višeprocesore (UMA (SMP), Symmetric Multiprocessor), sustave s neujednačenim pristupom memoriji (NUMA, Non-Uniform Memory Access) i sustave s tzv. lokalnom memorijom umjesto cache 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, tada se takav sustav naziva SMP sustav. U sustavima 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 sustavi pripadaju UMA arhitekturi. Računalni sustavi Zajednička memorija, gdje bilo koji procesor ravnomjerno pristupa memoriji i zauzima isto vrijeme, nazivaju se Uniform Memory Access (UMA) sustavi.

Sa stajališta razine iskorištene memorije u UMA arhitekturi, razmatraju se tri opcije za izgradnju višeprocesora:

Classic (samo sa zajedničkom glavnom memorijom);

Uz dodatnu lokalnu predmemoriju za svaki procesor;

S dodatnom lokalnom memorijom međuspremnika za svaki procesor (slika 5.8).

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

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

S poprečnim prekidačem;

Temelji se na višestupanjskim mrežama.

Korištenje samo jedne sabirnice ograničava veličinu UMA multiprocesora na 16 ili 32 procesora. Da biste dobili veću veličinu, potrebna je drugačija vrsta komunikacijska mreža... Najjednostavnija shema povezivanja je prekidač s poprečnom šipkom (slika 5.10). Prekidači s poprečnim stupom koriste se desetljećima za nasumično povezivanje grupe dolaznih linija s nizom 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. Štoviše, nije potrebno preliminarno planiranje.


Prekidači su prilično prikladni za sustave srednje veličine (slika 5.11).


Na temelju 2x2 prekidača možete graditi višestupanjske mreže. Jedna od mogućih 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 puno bolje od n 2 čvora (točke presjeka), posebno za veliki n.

UMA multiprocesori s jednom sabirnicom obično su ograničeni na nekoliko desetaka procesora, dok koordinatni multiprocesori ili multiprocesori s prekidačima zahtijevaju skupe Hardver a nisu puno 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 pružaju jedan adresni prostor za sve procesore, ali za razliku od UMA strojeva, 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 predmemorije), tada se takav sustav naziva NC-NUMA (No Caching NUMA - NUMA bez predmemorije) (Sl.5.13).

Ako postoje koherentne predmemorije, sustav se naziva CC-NUMA (Coherent Cache Non-Uniform Memory Architecture - NUMA with coherent cache) (7.14).

Glavna memorija

Glavna memorija je uređaj za pohranu izravno povezan s procesorom i dizajniran za pohranjivanje izvršnih programa i podataka izravno uključenih u operacije. Ima dovoljne performanse, ali ograničen volumen. Glavna memorija je podijeljena na različite vrste, od kojih su glavne memorija s slučajnim pristupom (RAM) i memorija samo za čitanje (ROM) (slika 1.).

RAM je dizajniran za pohranjivanje informacija (programa i podataka) u koje su izravno uključene računalni proces u trenutnoj fazi funkcioniranja.

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, pa procesor praktički ne mora čekati dok čita podatke iz memorije i zapisuje u memoriju. Međutim, podaci koje sadrži zadržavaju se samo dok je računalo uključeno. Kada isključite računalo, sadržaj RAM-a se briše. Dakle, RAM je nestabilna memorija.

Riža. 1. Glavne vrste glavne memorije

Često je oznaka RAM (memorija slučajnog pristupa, tj. memorija sa nasumični pristup). Pod slučajnim pristupom podrazumijeva se mogućnost izravnog pristupa bilo kojoj (proizvoljnoj) navedenoj memorijskoj ćeliji, a vrijeme pristupa za bilo koju ćeliju je isto.

RAM se temelji na velikim integrirani krugovi koji sadrže matrice poluvodičkih elemenata za pohranu (okidače). Elementi za pohranu nalaze se na sjecištu vertikalnih i horizontalnih sabirnica matrice; snimanje i čitanje informacija provodi se primjenom električnih impulsa kroz one kanale matrice, koji su spojeni na elemente koji pripadaju odabranoj memorijskoj ćeliji.

Količina RAM-a instalirane u računalu ne utječe samo na sposobnost rada s programima koji zahtijevaju velike resurse, već i na njegovu izvedbu, jer kada nema dovoljno memorije, tvrdi disk se koristi kao njegov logički nastavak, kojem je vrijeme pristupa neusporedivo dulje. Osim količine RAM-a, na performanse računala utječe i njegova brzina te način razmjene podataka između mikroprocesora i memorije.

OP je implementiran na DRAM čipovima (dinamički OP), koji se, u usporedbi s drugim vrstama 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-u pohranjen je kao napunjenost kondenzatora. Zbog prisutnosti struja curenja, punjenje kondenzatora mora se obnavljati u redovitim intervalima. Zbog stalne potrebe za ažuriranjem, takva se memorija naziva dinamička memorija. Regeneracija sadržaja memorije zahtijeva dodatno vrijeme, a upisivanje informacija u memoriju tijekom regeneracije nije dopušteno.

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

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

Za računala temeljena na Intel-386DX ili 80386SX dovoljna je veličina predmemorije od 64 KB, a dovoljno je 128 KB. Računala temeljena na Intel-80486DX, DX2, DX4 i Pentium obično imaju 256 KB predmemorije.

Mikroprocesori serije 486 i Pentium sadrže malu unutarnju cache memoriju, stoga se, za jednoznačnu terminologiju, ponekad u tehničkoj literaturi, cache memorija koja se nalazi na matičnoj ploči naziva L2 cache memorija.

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

Nije potrebno imati svu memoriju u kojoj se informacije moraju mijenjati. Bolje je neke od najvažnijih informacija trajno zadržati u memoriji računala. Ovo pamćenje naziva se trajnim. Podaci su tijekom izrade uneseni u trajnu memoriju. Ti se podaci u pravilu ne mogu mijenjati, programi koji rade na računalu mogu ih samo čitati. Ova vrsta memorije se obično naziva ROM (memorija samo za čitanje) ili ROM (memorija samo za čitanje).

Na IBM PC-u - kompatibilno računalo trajna memorija pohranjuje programe za testiranje opreme, računala, pokretanje učitavanja operacijskog sustava (OS) i obavljanje osnovnih funkcija za servisiranje računalnih uređaja. Budući da je većina ovih programa vezana uz I/O uslugu, sadržaj memorije samo za čitanje često se naziva BIOS (Basic Input - Output System).

Mnoga računala instaliraju BIOS na temelju FLASH memorije. Ovu memoriju mogu mijenjati programi, što vam omogućuje ažuriranje BIOS-a pomoću posebnih programa, bez zamjene matične ploče ili BIOS čipa.

Sva računala, osim vrlo starih, također sadrže program za konfiguraciju računala (SETUP) u BIOS-u. Omogućuje vam postavljanje nekih karakteristika računalnih uređaja (vrste video kontrolera, tvrdi diskovi i floppy disk pogoni, neki i načini rada s RAM-om, traženje lozinke prilikom pokretanja itd.). Obično se konfiguracijski program poziva ako korisnik tijekom bootstrapće pritisnuti određeni ključ ili kombinacija tipki (najčešće tipka Del).

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

Osim uobičajene memorije s slučajnim pristupom i memorije samo za čitanje, računalo ima mali dio memorije za pohranjivanje parametara konfiguracije računala. Često se naziva CMOS memorija jer je ova memorija obično izrađena CMOS tehnologijom niske potrošnje energije (komplementarni metal-oksidni poluvodič). Sadržaj CMOS memorije se ne mijenja kada je računalo isključeno, jer se za napajanje koristi posebna baterija.

Dakle, kapacitet glavne memorije sastoji se od milijuna pojedinačnih memorijskih ćelija s kapacitetom od 1 bajta svaka. Ukupni kapacitet glavne memorije modernih računala 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ČUNALNIM STROJEVIMA

Namjena, osnovni parametri i

Klasifikacija vrsta memorije

Memorijski uređaji (uređaji za pohranu) VM dizajnirani su za snimanje, pohranu i čitanje informacija predstavljenih u digitalni oblik/ 2,3 /. Memorijski uređaji, poput procesora, rade s dvije vrste informacija – programi i podaci, stoga karakteristike memorije uvelike određuju performanse i funkcionalnost VM.

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

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.

Izvedbu memorije karakteriziraju sljedeći glavni parametri:

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

trajanje ciklusa t C, koji je određen minimalnim dopuštenim 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 vrste memorije u kojima su ta vremena ciklusa različita, t.j. t CH. ≠ t C.ZP .

U općem slučaju, pristupni ciklus se sastoji od faze dohvaćanja (pristupa) i faze regeneracije (oporavka) memorije, dakle t C> t V.

Memorijske performanse također se mogu okarakterizirati brzinom prijenosa podataka napisanih ili pročitanih i izmjerenih u MB/s.

Potrošnja energije za mnoge vrste memorije u načinu pristupa znatno je veća nego u načinu pohrane. Nehlapljiva memorija u načinu pohrane uopće ne troši energiju. Ali brojne vrste memorije, na primjer, elektronička dinamička memorija, zahtijevaju cikluse regeneracije u načinu pohrane, pa je potrošnja energije u ovom načinu usporediva s potrošnjom energije u načinu pristupa.

Za usporedbu različiti tipovi memorije, prikladno je koristiti smanjenu na jednu ćeliju (tj. specifičnu) potrošnju energije i trošak memorijskih uređaja.

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

VM memorijski uređaji se mogu klasificirati prema različitim kriterijima: po fizičkom principu rada, po funkcionalnoj namjeni, po načinu organizacije, potrebi za napajanjem u načinu skladištenja itd.

Prema fizičkom principu rada memorija se razvrstava na elektroničku, magnetsku, optičku, magnetsko – optičku.

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

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

U dinamičkoj memoriji LSI, električni kondenzatori se koriste kao elementarne memorijske ćelije. Prisutnost naboja odgovara pohranjivanju logičke "1", odsutnost naboja odgovara pohranjivanju logičke "0". Kao kondenzatori za pohranu koriste se međuelektrodni 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 s podatkovnom sabirnicom. Vrata tranzistorske MOS sklopke spojena su na odgovarajući izlaz dekodera adrese. Kada je ćelija odabrana, otvara se ključ T 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 usporedbi sa statičkom memorijom, dinamička memorija je puno jednostavnija, jeftinija i pruža vrlo visok stupanj integracije, t.j. veći specifični kapacitet. Ali u usporedbi sa statičkom dinamičkom memorijom, ona je sporija i zahtijeva periodičnu regeneraciju (obnavljanje) informacija u elementarnim stanicama. Drugim riječima, potrebno je povremeno obnavljati naboj na kondenzatorima za pohranu C koji se s vremenom samopražnjeju, t.j. "Izgubiti" informacije. Da biste to učinili, svakih nekoliko milisekundi (msec) pročitajte informacije iz memorijskih ćelija, a zatim ponovno zapišite informacije, što vam omogućuje da vratite naboj na kondenzatorima za pohranu C. Potreba za organiziranjem periodičnih ciklusa osvježavanja donekle komplicira upravljanje dinamičkom memorijom.

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

Statička i dinamička elektronička memorija je nestalan, tj. kada je napajanje isključeno, podaci u ćelijama se ne spremaju. Postoji također nepostojan elektronička memorija - memorija samo za čitanje (ROM), informacije iz koje se tijekom rada VM-a mogu samo čitati. U nastavku će biti riječi o mjestima ROM memorije.

Magnetna memorija na temelju prisutnosti niza magnetskih materijala (na primjer, željeznog oksida) dva stabilna stanja remanentne magnetizacije suprotnog predznaka. Takav magnetski materijali karakterizirana pravokutnom histerezisnom petljom B = f (H), a od njih se nanosi radni magnetski sloj koji se nanosi na površinu raznih pomičnih nosača - magnetskih diskova. Za pisanje i čitanje informacija koriste se magnetske glave, koje su minijaturni induktori namotani na magnetsku jezgru s razmakom. Tijekom snimanja magnetska glava magnetizira dio magnetskog sloja koji prolazi ispod radnog razmaka u smjeru određenom smjerom struje struje. Tijekom očitavanja, magnetizirane površine prolaze u blizini induktivne glave za očitavanje i induciraju emf impulse u njoj. Memorijski uređaji koji koriste ovaj princip imaju vrlo nisku specifičnu cijenu pohrane informacija, nepostojani su, ali su elektromehanički značajno inferiorniji od elektroničke memorije u smislu brzine, pouzdanosti i potrošnje energije. Za pogone tvrdog diska brzina prijenosa podataka doseže desetke MB / s, a kapacitet informacija je stotine GB.



V optička memorija za pohranjivanje informacija koristi se promjena optičkih svojstava (uglavnom, stupanj refleksije) površine nosača. Optički medij je u obliku diska ( Kompaktni disk- CD), čiji je reflektirajući sloj (metalno raspršivanje) prekriven slojem organske boje. Prilikom snimanja, laserska zraka modulira se strujom snimljenih bitova i spaljuje jame u sloju boje na određenim točkama staze. Zbog razlike u koeficijentu refleksije udubljenja i neizgorjelih područja površine tijekom čitanja dolazi do modulacije svjetline reflektirane zrake koja kodira informaciju pročitanu s CD-a. Proizvedeno različiti tipovi optički CD diskovi: CD-ROM (memorija samo za čitanje) - dopušta samo čitanje informacija napisanih na matrični način, CD-R (za snimanje) - koji dopušta najmanje jedno pisanje na disk i višestruko čitanje, CD-RW (rewritable) - dopuštajući višestruko prepisivanje na disk (i naravno čitanje). Optički diskovi su jeftini i imaju značajan (do jedan GB) informacijski kapacitet, nepostojani su i lako zamjenjivi, ali su po brzini, pouzdanosti i potrošnji energije, poput magnetskih diskova, znatno inferiorniji od elektroničke memorije.

U smislu funkcionalnosti, memorijski uređaji se mogu klasificirati na cache memorijske uređaje (SRAM), memoriju s slučajnim pristupom (RAM), memoriju samo za čitanje (ROM) i vanjske uređaje za pohranu (VCD).

radna memorija namijenjeno za pohranjivanje programa (sustav, aplikacija) i podataka koje izravno koristi CPU u trenutnom trenutku. Vrijeme ciklusa čitanja i pisanja za RAM je obično isto. Obično se kao RAM koristi dinamička memorija s volumenom do jedinica GB, ovisno o namjeni i opsegu 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 cache memoriji, nema potrebe uvoditi cikluse čekanja procesora u cikluse pristupa memoriji stroja. Cache memorija je međuspremnik između RAM-a i CPU-a i temelji se na statičkoj memoriji. Predmemorija pohranjuje kopije blokova (stranica) programa i podataka onih područja RAM-a kojima se dogodio zadnji pristup, kao i imenik - popis njihove trenutne korespondencije s područjima RAM-a. Prilikom svakog pristupa glavnoj memoriji, kontroler predmemorije direktorija provjerava postoji li valjana kopija traženog bloka (stranice) u predmemoriji. Ako postoji kopija, onda je to slučaj. cache hits, a samo se cache 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 upisuje se u cache, a upis se vrši na mjesto najmanjeg stvarnog bloka (stranice) koji je prethodno izbrisan iz cache-a u RAM-u, t.j. blok informacija, na koji je broj poziva bio najmanji. Zbog inherentnih programa i podataka kao što su temeljna svojstva, kako prostorna i privremeni lokalitet/ 2,7,13 / broj učitavanja predmemorije je višestruko veći od broja promašaja predmemorije, čak i kod male (jedinice - deseci KB) cache memorije. Stoga korištenje cache memorije značajno poboljšava performanse VM-a. Obično se predmemorija implementira prema shemi od tri razine: primarna predmemorija (L1 Cache), veličine desetke KB, i sekundarna predmemorija (L2 Cache), stotine KB, smještena u MP kristalu, treća razina cache (L3 Cache), jedinice MB su instalirane na matičnoj ploči ili u zgradi MP.

ROM Je elektronička nepromjenjiva memorija koja se koristi za pohranjivanje informacija koje su nepromijenjene ili rijetko promijenjene tijekom rada VM-a: sistemski softver (BIOS), aplikacijski softver za ugrađene i ugrađene VM-ove, skupovi tablica, konfiguracijski parametri različitih sustava, 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, zvano programiranje, obično je puno teže, zahtijeva više vremena i energije od čitanja.

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

Elektronička memorija međuspremnika uključeni u kontrolere raznih vanjskih uređaja, rješavanje problema prikaz i unos informacija, komunikacijski zadaci, konverzija signala itd. Prisutnost međuspremnika omogućuje koordiniranje značajno različitih brzina prijenosa podataka sistemske sabirnice i vanjskih uređaja, smanjenje vremena provedenog od strane svakog od vanjskih uređaja na sistemskoj sabirnici i povećanje performansi VM-a.

Način organiziranja pamćenja određen je načinom postavljanja i traženja informacija u memoriji. Na temelju toga razlikovati adresnu, asocijativnu i organizaciju memorije stogova.

V adresna memorija za pristup memorijskim ćelijama koriste se adrese, koji se shvaćaju kao kodovi brojeva memorijskih ćelija. Adresabilna organizacija memorije omogućuje pristup memorijskim ćelijama po njihovim adresama proizvoljnim redoslijedom, a trajanje ciklusa pristupa je isto za sve ćelije, bez obzira na adresu. Stoga se za imenovanje takve memorije koristi i pojam "Memorija slučajnog pristupa (RAM)" ili RAM (Random Access Memory). 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ćem slučaju, zahtjev asocijativnoj memoriji provodi se specificiranjem popisa bitova po kojima se traži memorijska ćelija, te specificiranjem sadržaja dodijeljenih bitova. Postavljen je popis znamenki za pretraživanje 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 predmet-kontekst sadržaj ovih bitova je postavljen, a njegova širina bita jednaka je širini bita registra maske.

Ako se pronađe ćelija s danom kombinacijom nula i jedinica, CAM generira pozitivan odgovor koji ukazuje na adresu pronađene ćelije. Zatim se adresa prenosi u dekoder adrese, te se cijeli sadržaj takve ćelije 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 provodi se istovremeno u svim memorijskim ćelijama, stoga je CAM mnogo puta brži od RAM-a, ali je i puno skuplji. U modernim računalnim sustavima CAM se koristi, na primjer, kao dio cache memorije.

Stog memorija(Stack), kao i asocijativna, je neadresirana. Stog se može promatrati kao skup ćelija koje tvore jednodimenzionalni niz, u kojem su susjedne stanice međusobno povezane lancima prijenosa bitnih riječi. U ovoj memoriji pisanje i čitanje se obavljaju prema pravilu "posljednji upisani se prvi čita" ili "Zadnji unos prvi izlaz (LIFO)". Stoga se stog naziva "push" memorija s obrnuti redoslijed očitavanje. Obično je stog organiziran u RAM-u. Broj riječi u stogu određen je pokazivačem na stog SP, a upisivanje u stog i čitanje s njega se izvodi naredbama PUSH odnosno POP. Stog memorija se široko koristi, kao što je već spomenuto, prilikom rukovanja prekidima i pozivanja potprograma.

Uz stack memoriju, raširila se memorija iz trgovine s izravnim redoslijedom čitanja, t.j. "Prvo napisano se prvo čita" ili "Prvi ulaz prvi izlaz (FIFO)". Ova memorija se naziva memorija međuspremnika i, kao i stog, organizirana je u RAM-u.

Organizacija memorijskog podsustava u osobnom računalu

Memorije memorijskog podsustava računala mogu se rasporediti u sljedećoj hijerarhiji (tablica 9.1):

Tablica 9.1. Hijerarhija memorijskog podsustava računala
Vrsta memorije 1985 godina 2000 godina
Vrijeme uzorkovanja Tipičan volumen Cijena / bajt Vrijeme uzorkovanja Tipičan volumen 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
Brza pohrana međuspremnika (cache) 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 128 MB - 4 GB $ 0,01 0,1
Vanjska 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 uputama procesora.

Predmemorija se koristi za usklađivanje brzine CPU-a i glavne memorije. Računalni sustavi koriste predmemoriju na više razina: predmemoriju razine I (L1), predmemoriju razine II (L2) itd. Desktop sustavi obično koriste dvoslojnu predmemoriju, dok poslužiteljski sustavi koriste troslojnu predmemoriju. Predmemorija pohranjuje upute ili podatke koji će vjerojatno biti poslani procesoru na obradu u bliskoj budućnosti. Rad predmemorije je transparentan za softver, tako da predmemorija obično nije softverski dostupna.

RAM pohrane, u pravilu, funkcionalno dovršene softverski moduli(jezgra operacijskog sustava, izvršni programi i njihove knjižnice, upravljački programi, itd.) i njihovi podaci koji su izravno uključeni u rad programa, a također se koriste za spremanje rezultata izračuna ili druge obrade podataka prije slanja vanjskom memoriju, na izlaz podataka uređaja ili komunikacijska sučelja.

Svaka memorijska ćelija ima jedinstvenu adresu. Organizacijske metode dodjele memorije daju programerima mogućnost da učinkovito korištenje cijeli računalni sustav. Ove metode uključuju kontinuirani ("ravni") model memorije i model segmentirane memorije. Kada se koristi ravni model memorije, program radi s jednim kontinuiranim 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 za program koristi segmentirani model, memorija je predstavljena grupom neovisnih adresnih blokova koji se nazivaju segmenti. Za adresiranje bajta memorije, program mora koristiti logičku adresu koja se sastoji od selektora segmenta i pomaka. Selektor segmenata odabire određeni segment, a pomak pokazuje na određenu ćeliju u adresnom prostoru odabranog segmenta.



Organizacijske metode dodjele memorije omogućuju organiziranje računalnog sustava u kojem radni adresni prostor programa premašuje veličinu RAM-a koji je stvarno dostupan u sustavu, dok nedostatak RAM-a popunjava vanjska sporija ili jeftinija memorija (tvrdi disk). , flash memorija itd.) ) Ovaj koncept se naziva virtualna memorija. U ovom slučaju, linearni adresni prostor može se preslikati na fizički adresni prostor ili izravno (linearna adresa je fizička adresa) ili korištenjem mehanizma stranica. U drugom slučaju, linearni adresni prostor podijeljen je na stranice jednake veličine koje čine virtualnu memoriju. Straničenje pruža preslikavanje potrebnih stranica virtualne memorije u fizički adresni prostor.

Osim implementacije sustava virtualne memorije, koriste se vanjski uređaji za pohranu podataka dugotrajno skladištenje programa i podataka u obliku datoteka.

Cache memorija

Cache memorija je uređaj za pohranu velike brzine koji se nalazi na istoj pločici kao i CPU ili izvan CPU-a. Predmemorija služi kao međuspremnik velike brzine između CPU-a i relativno spore glavne memorije. Ideja cache memorije temelji se na predviđanju najvjerojatnijih CPU pristupa RAM-u. Ovaj pristup temelji se na načelu vremenske i prostorne lokalizacije programa.



Ako je CPU pristupio objektu u RAM-u, vrlo je vjerojatno da će se CPU uskoro ponovno pozvati na taj objekt. Primjer ove situacije bio bi 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 predmemoriji).

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

  • Pisanje kroz - istovremeno s cache memorijom, RAM se ažurira.
  • Upisivanje u međuspremnik - informacije se odgađaju u međuspremniku predmemorije prije nego što se zapišu 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 red se ponovno upisuje u RAM samo ako je bit promjene 1.

U pravilu, sve metode pisanja, osim prolaznog, dopuštaju odgađanje i grupiranje upisa u RAM radi povećanja performansi.

U strukturi cache memorije razlikuju se dvije vrste blokova podataka:

  • memorija za prikaz podataka (zapravo sami podaci, duplicirani iz RAM-a);
  • memorija oznaka (znakovi koji označavaju mjesto predmemoriranih podataka u RAM-u).

Memorijski prostor za prikaz podataka u predmemoriji razbijen je u retke - blokove fiksne duljine (na primjer, 32, 64 ili 128 bajtova). Svaka linija predmemorije može sadržavati susjedni poravnati blok bajtova iz glavne memorije. Koji se blok RAM-a preslikava na zadanu liniju predmemorije određeno je oznakom retka i algoritmom mapiranja. Prema algoritmima za mapiranje RAM-a u predmemoriju, postoje tri vrste cache memorije:

  • potpuno asocijativna predmemorija;
  • predmemorija izravnog prikaza;
  • višestruka asocijativna predmemorija.

Za potpuno asocijativnu predmemoriju karakteristično je da kontroler predmemorije može smjestiti bilo koji blok RAM-a u bilo koju liniju cache memorije (slika 9.1). U ovom slučaju, fizička adresa se dijeli na dva dijela: pomak u bloku (red predmemorije) i broj bloka. Kada se blok stavi u predmemoriju, broj bloka se pohranjuje u oznaku odgovarajućeg retka. Kada CPU pristupi predmemoriji za nužni blok, promašaj predmemorije će se otkriti tek nakon usporedbe oznaka svih redaka s brojem bloka.

Jedna od glavnih prednosti ovu metodu zaslon - dobra iskorištenost RAM-a, tk. ne postoji ograničenje koji blok se može preslikati na određenu liniju predmemorije. Nedostaci uključuju složenu hardversku implementaciju ove metode, koja zahtijeva veliku količinu sklopova (uglavnom komparatora), što dovodi do povećanja vremena pristupa takvoj predmemoriji i povećanja njegove cijene.

Povećaj sliku
Riža. 9.1. Potpuno asocijativna predmemorija 8x8 za 10-bitnu adresu

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

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

Povećaj sliku
Riža. 9.2. 8x8 predmemorija mapiranja naprijed za 10-bitnu adresu

Unatoč očitim nedostacima, ovu tehnologiju pronašao uspješnu primjenu, na primjer, u MP Motorola MC68020, za organiziranje predmemorije instrukcija prve razine (slika 9.3). Ovaj mikroprocesor implementira izravnu predmemoriju prikaza od 64 retka od 4 bajta. Oznaka stringa, pored 24 bita koji određuju adresu predmemoriranog bloka, sadrži bit značajnosti koji određuje valjanost niza (ako je bit značajnosti 0, zadani niz smatra se nevažećim i neće uzrokovati pogotke u predmemoriji). Pristup podacima nije predmemoran.

Povećaj sliku
Riža. 9.3. Dijagram organizacije cache memorije u MP Motorola MC68020

Kompromis između prva dva algoritma je višestruka asocijativna predmemorija ili djelomična asocijativna predmemorija (slika 9.4). Ovom metodom organiziranja cache memorije, linije se kombiniraju u grupe, koje mogu uključivati ​​2, 4,: reda. U skladu s brojem linija u takvim skupinama razlikuju se 2-ulazni, 4-ulazni itd. asocijativna predmemorija. Prilikom pristupa memoriji, fizička adresa se dijeli na tri dijela: pomak u bloku (red predmemorije), broj grupe (skupa) i oznaku. Memorijski blok čija adresa odgovara određenoj skupini može se staviti u bilo koji red ove grupe, a odgovarajuća vrijednost se stavlja u oznaku retka. Očito se unutar odabrane skupine poštuje načelo asocijativnosti. S druge strane, ovaj ili onaj blok može spadati samo u strogo definiranu skupinu, što odražava princip organiziranja predmemorije izravnog prikaza. Kako bi procesor mogao identificirati promašaj predmemorije, morat će provjeriti oznake samo jedne grupe (2/4/8 /: redaka).

Povećaj sliku
Riža. 9.4. Asocijativna predmemorija s dva ulaza 8x8 za 10-bitnu adresu

Ovaj algoritam prikaza kombinira prednosti potpuno asocijativne predmemorije (dobro korištenje memorije, velika brzina) i predmemorije s izravnim pristupom (jednostavnost i niska cijena), tek neznatno inferiorni u tim karakteristikama u odnosu na izvorne algoritme. Zato je višestruka asocijativna predmemorija najraširenija (tablica 9.2).

Tablica 9.2. IA-32 karakteristike podsustava CPU predmemorije
Intel486 Pentium Pentium MMX P6 Pentium 4
L1 predmemorija instrukcija
Vrsta 4-in. izv. prof. 2-in. izv. prof. 4-in. izv. prof. 4-in. izv. prof. 8 inča izv. prof.
Veličina reda, bajtovi -
Ukupni volumen, KB 8/16 8/16 12Kmops
L1 predmemorija podataka
Vrsta Dijeljeno s predmemorijem uputa 2-in. izv. prof. 4-in. izv. prof. 2/4-in. izv. prof. 4-in. izv. prof.
Veličina reda, bajtovi
Ukupni volumen, KB 8/16
L2 predmemorija
Vrsta Vanjski vanjski 4-in. izv. prof. 4-in. izv. prof. 8 inča izv. prof.
Veličina reda, bajtovi
Ukupni volumen, KB 256/512 128-2048 256/512

Napomene: Intel-486 koristi jednu L1 instrukciju i predmemoriju podataka. U Pentium Pro L1, predmemorija podataka je 8 kbajta 2-smjerna asocijativna, u ostalim modelima P6 je 16 kbajta 4-smjerna asocijativna. U Pentiumu 4, umjesto L1 predmemorije instrukcija, koristi se L1 mikro-op predmemorija (trace cache).

Za organiziranje cache memorije možete koristiti Princeton arhitekturu (mješovita predmemorija za upute i podatke, na primjer, u Intel-486). Ovo očito (i neizbježno za von Neumannove sustave s cache memorijom izvan CPU-a) nije uvijek najučinkovitije rješenje. Odvajanje cache memorije na predmemoriju instrukcija i predmemoriju podataka (predmemoriju Harvardske arhitekture) poboljšava učinkovitost predmemorije iz sljedećih razloga:

  • Mnogi moderni procesori imaju cjevovodnu arhitekturu u kojoj blokovi cjevovoda rade paralelno. Stoga se dohvaćanje instrukcija i pristup podacima instrukcija provode u različitim fazama cjevovoda, a korištenje zasebne cache memorije omogućuje da se te operacije izvode paralelno.
  • Predmemorija instrukcija može se implementirati kao samo za čitanje i stoga ne zahtijeva nikakve algoritme povratnog upisivanja, što ovu predmemoriju čini jednostavnijom, jeftinijom i bržom.

Zato svi najnoviji modeli IA-32, počevši od Pentiuma, koriste harvardsku arhitekturu za organiziranje L1 predmemorije.

Kriterijem za učinkovit rad predmemorije može se smatrati smanjenje prosječnog vremena pristupa memoriji u usporedbi sa sustavom bez cache memorije. U ovom slučaju prosječno vrijeme pristupa može se 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 predmemoriji 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 red predmemorije u slučaju promašiti predmemoriju, a zatim isporučiti tražene podatke procesoru, R hit-hit rate.

Očito, š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 predmemorije. Utjecaj prisutnosti i odsutnosti cache memorije i njezine veličine na povećanje performansi procesora prikazan je u tablici. 9.3.

Vrhunski povezani članci