Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Windows 8
  • Organizimi fizik dhe logjik i memories së sistemeve kompjuterike. Parimet e menaxhimit të memories të një sistemi kompjuterik

Organizimi fizik dhe logjik i memories së sistemeve kompjuterike. Parimet e menaxhimit të memories të një sistemi kompjuterik

Organizimi i kujtimit të Ministrisë së Hekurudhave. Segmentimi i memories. Llogaritja e adresës. Memorie e brendshme cache.

Kujtesa e sistemit mikroprocesor kryen funksionin e ruajtjes së përkohshme ose të përhershme të të dhënave dhe komandave. Sasia e memories përcakton kompleksitetin e lejueshëm të algoritmeve të kryera nga sistemi, si dhe, në një farë mase, shpejtësinë e sistemit në tërësi. Modulet e memories ekzekutohen në çipa memorie (RAM ose të përhershëm). Gjithnjë e më shumë, memoria flash përdoret si pjesë e sistemeve mikroprocesorike. memorie flash), e cila është një memorie jo e paqëndrueshme me aftësinë për të mbishkruar në mënyrë të përsëritur përmbajtjen.

Për të lidhur modulin e kujtesës me autobusin e sistemit, përdoren blloqet e ndërfaqes, të cilat përfshijnë një dekoder adresash (përzgjedhës), një qark për përpunimin e sinjaleve të kontrollit të autobusit dhe buferët e të dhënave (Figura 7.4.1).

Figura 7.4.1. Diagrami i lidhjes së modulit të memories.

Në hapësirën e memories së një sistemi mikroprocesor, zakonisht ndahen disa zona të veçanta që kryejnë funksione të veçanta. Kjo perfshin:

- memoria e programit të nisjes, e ekzekutuar në ROM ose memorie flash;

- memoria për pirgun ose stack (Stack) është pjesë kujtesë e gjallë të destinuara për ruajtjen e përkohshme të të dhënave;

- një tabelë e vektorëve të ndërprerjeve që përmban adresat e fillimit të programeve të përpunimit të ndërprerjeve;

- memoria e pajisjeve të lidhura me autobusin e sistemit.

Të gjitha pjesët e tjera të hapësirës së kujtesës priren të kenë qëllim universal... Ato mund të përmbajnë si të dhëna ashtu edhe programe (natyrisht, në rastin e një arkitekture me një autobus).

Shpesh hapësira e memories ndahet në segmente me një adresë të programueshme të fillimit të segmentit dhe me madhësi fikse segment. Për shembull, në procesorin Intel 8086, segmentimi i kujtesës organizohet si më poshtë.

E gjithë memoria e sistemit nuk paraqitet në formën e një hapësire të vazhdueshme, por në formën e disa pjesëve - segmenteve. madhësia e dhënë(64 KB secila), pozicioni i të cilit në hapësirën e memories mund të ndryshohet në mënyrë programore.

Për të ruajtur kodet e adresave të kujtesës, nuk përdoren regjistra të veçantë, por çifte regjistrash:

Regjistri i segmentit përcakton adresën e fillimit të segmentit (d.m.th., pozicionin e segmentit në memorie);

Regjistri i treguesve (regjistri i offset) përcakton pozicionin e adresës së punës brenda segmentit.

Në këtë rast, adresa fizike e memories 20-bit e vendosur në autobusin e adresave të jashtme formohet siç tregohet në figurën 7.4.2, domethënë duke shtuar kompensimin dhe adresën e segmentit me një zhvendosje prej 4 bitësh.

Figura 7.4.2. Formimi i adresës së memories fizike nga adresa e segmentit dhe kompensimi.

Pozicioni i kësaj adrese në memorie është paraqitur në figurën 7.4.3.

Figura 7.4.3. Pozicioni i adresës fizike në memorie

Një segment mund të fillojë vetëm në një kufi memorie prej 16 bajtësh (pasi adresa e fillimit të një segmenti, në fakt, ka katër zero bit më pak të rëndësishëm, siç mund ta shihni në figurën 7.4.2), domethënë në një adresë që është shumëfish i 16. Këta kufij të lejuar të segmentit quhen kufijtë e paragrafit ...

Vini re se prezantimi i segmentimit është kryesisht për shkak të faktit se regjistrat e brendshëm të procesorit janë 16-bit, dhe adresa fizike e memories është 20-bit (një adresë 16-bitëshe lejon përdorimin e vetëm 64 KB memorie, e cila është e qartë se nuk mjafton).

Memoria cache ndodhet midis memories kryesore (RAM) dhe Njësia Qendrore përpunimit për të reduktuar kohën e shpenzuar për aksesimin e CPU-së në OP.

Ideja e memories cache bazohet në parashikimin e akseseve më të mundshme të CPU në OP. Të dhënat dhe udhëzimet më "të mundshme" kopjohen në një memorie cache të shpejtë, me ritëm të CPU-së, përpara se ato të përdoren në të vërtetë nga CPU, në mënyrë që të dhënat dhe udhëzimet që përdoren aktualisht të mund të aksesohen shpejt pa hyrë në RAM. Kjo qasje bazohet në parimin e lokalitetit të programit ose, siç thonë ata, natyrën e mbivendosur të thirrjeve, që do të thotë se adresat e thirrjeve të njëpasnjëshme në OP formojnë, si rregull, një grup kompakt. Kur hyni në RAM, jo të dhënat individuale kopjohen në memorien e memories, por blloqet e informacionit, duke përfshirë ato të dhëna që ka shumë të ngjarë të përdoren nga CPU në hapat e mëpasshëm të punës. Në këtë drejtim, komandat e mëvonshme merren nga CPU jo nga RAM, por nga memoria e shpejtë e cache. Kur CPU duhet të lexojë ose shkruajë disa të dhëna në RAM, ai së pari kontrollon praninë e tij në memorien e memories. Efikasiteti i sistemit të cache varet nga madhësia e bllokut dhe algoritmi i programeve.

Kujtesa kryesore

Kujtesa kryesore është një pajisje ruajtëse e lidhur drejtpërdrejt me procesorin dhe e krijuar për të ruajtur programe të ekzekutueshme dhe të dhëna të përfshira drejtpërdrejt në operacione. Ka performancë të mjaftueshme, por vëllim të kufizuar. Memoria kryesore ndahet në lloje të ndryshme, kryesore prej të cilave janë memoria me akses të rastësishëm (RAM) dhe memoria vetëm për lexim (ROM) (Fig. 1).

RAM është krijuar për të ruajtur informacionin (programet dhe të dhënat) të përfshira drejtpërdrejt në procesi i llogaritjes në fazën aktuale të funksionimit.

RAM-i përdoret për marrjen, ruajtjen dhe lëshimin e informacionit. Është në të që procesori "merr" programet dhe të dhënat fillestare për përpunim, në të cilat shkruan rezultatet. Kjo memorie e ka marrë emrin "operativ" sepse funksionon shumë shpejt, kështu që procesori praktikisht nuk duhet të presë gjatë leximit të të dhënave nga memoria dhe shkrimit në memorie. Megjithatë, të dhënat që ai përmban mbahen vetëm kur kompjuteri është i ndezur. Kur fikni kompjuterin, përmbajtja e RAM-it fshihet. Kështu, RAM është memorie e paqëndrueshme.

Oriz. 1. Llojet kryesore të memories kryesore

Shpesh emërtimi RAM (memorie me akses të rastësishëm, d.m.th. memorie me akses të rastësishëm). Qasja e rastësishme kuptohet si aftësia për të hyrë drejtpërdrejt në çdo qelizë të specifikuar të memories (arbitrare), dhe koha e hyrjes për çdo qelizë është e njëjtë.

RAM është i bazuar në të mëdha qarqe të integruara që përmbajnë matrica të elementeve të ruajtjes së gjysmëpërçuesve (triggers). Elementet e ruajtjes janë të vendosura në kryqëzimin e autobusëve vertikal dhe horizontal të matricës; regjistrimi dhe leximi i informacionit kryhet duke aplikuar impulse elektrike përmes atyre kanaleve të matricës, të cilat janë të lidhura me elementët që i përkasin qelizës së zgjedhur të memories.

Sasia e RAM-it të instaluar në kompjuter varet jo vetëm nga aftësia për të punuar me programe me burime intensive, por edhe nga performanca e saj, pasi kur ka mungesë memorie, përdoret si zgjatja logjike e saj. HDD, koha e hyrjes në të cilën është pakrahasueshme më e lartë. Përveç sasisë së RAM-it, performanca e një kompjuteri ndikohet gjithashtu nga shpejtësia e tij dhe metoda e përdorur për shkëmbimin e të dhënave midis mikroprocesorit dhe memories.

OP zbatohet në çipat DRAM (dinamik OP), të cilat, në krahasim me llojet e tjera të memories, karakterizohen nga kosto e ulët dhe kapacitet specifik i lartë, por konsum i lartë i energjisë dhe performancë më e ulët. Çdo bajt i të dhënave (0 dhe 1) në DRAM ruhet si një ngarkesë kondensator. Për shkak të pranisë së rrymave të rrjedhjes, ngarkesa e kondensatorit duhet të rinovohet në intervale të rregullta. Për shkak të nevojës së vazhdueshme për përditësim, një memorie e tillë quhet memorie dinamike. Rigjenerimi i përmbajtjes së memories kërkon kohë shtesë, dhe regjistrimi i informacionit në memorie gjatë rigjenerimit nuk lejohet.

Kostoja e RAM-it në kohët e fundit ra ndjeshëm (nga vera e vitit 1995 deri në verën e vitit 1996 - më shumë se 4 herë), prandaj, kërkesat e mëdha të shumë programeve dhe sistemeve operative për RAM me pikë financiare vizioni është bërë më pak i rëndë.

Për të shpejtuar aksesin në RAM në kompjuterët me shpejtësi të lartë, përdoret një memorie e qëndrueshme me shpejtësi ultra të lartë, e cila ndodhet, si të thuash, "midis" mikroprocesorit dhe RAM-it dhe ruan kopjet e seksioneve më të përdorura të RAM. Kur mikroprocesori hyn në memorie, ai fillimisht kërkon të dhënat e kërkuara nga memoria e memories. Meqenëse koha e hyrjes në memorien e cache është disa herë më e shkurtër se ajo memorie konvencionale, dhe në shumicën e rasteve të dhënat e nevojshme për mikroprocesorin ruhen tashmë në memorien e memories, koha mesatare e hyrjes në memorie zvogëlohet. Memoria e memories zbatohet në një çip SRAM (RAM statike).

Për kompjuterët e bazuar në Intel-386DX ose 80386SX, madhësia e cache-it 64 KB është e mjaftueshme dhe 128 KB është e mjaftueshme. Kompjuterët me bazë Intel-80486DX, DX2, DX4 dhe Pentium zakonisht kanë 256 KB cache.

Mikroprocesorët e serive 486 dhe Pentium përmbajnë një memorie të vogël të brendshme të cache, prandaj, për terminologjinë e paqartë, ndonjëherë në literaturën teknike, memoria e memories së vendosur në motherboard quhet memorie e memories së nivelit të dytë.

Në mikroprocesorin Pentium Pro, memoria cache L2 përmbahet në një paketë të vetme me vetë procesorin (mund të thuash se është i integruar në mikroprocesor).

Nuk është e nevojshme të keni të gjithë kujtesën, informacioni në të cilin duhet të ndryshojë. Pjesë e më informacion i rendesishemështë më mirë ta mbani atë përgjithmonë në memorien e kompjuterit. Kjo kujtesë quhet e qëndrueshme. Të dhënat u futën në memorien e përhershme gjatë prodhimit të saj. Si rregull, këto të dhëna nuk mund të ndryshohen; programet që funksionojnë në kompjuter mund t'i lexojnë vetëm ato. Ky lloj memorie zakonisht quhet ROM (memorie vetëm për lexim), ose ROM (memorie vetëm për lexim).

Në një PC IBM - një kompjuter i pajtueshëm, programet ruhen në memorie të vazhdueshme për të kontrolluar harduerin, kompjuterin, për të nisur ngarkimin e sistemit operativ (OS) dhe për të ekzekutuar funksionet bazë për servisimin e pajisjeve kompjuterike. Meqenëse shumica e këtyre programeve janë të lidhura me shërbimin I / O, përmbajtja e memories vetëm për lexim shpesh quhet BIOS (Basic Input - Output System).

Shumë kompjuterë instalojnë një BIOS bazuar në memorien FLASH. Një memorie e tillë mund të ndryshohet nga programet, të cilat ju lejojnë të përditësoni BIOS-in duke përdorur programe speciale, pa zëvendësuar motherboard ose çip BIOS.

Të gjithë kompjuterët, përveç atyre shumë të vjetër, përmbajnë gjithashtu një program konfigurimi kompjuterik (SETUP) në BIOS. Ju lejon të vendosni disa karakteristika të pajisjeve kompjuterike (llojet e kontrolluesit të videos, disqet e ngurtë dhe disqet e diskut, disa edhe mënyrat e funksionimit me RAM, kërkimi i një fjalëkalimi në momentin e nisjes, etj.). Në mënyrë tipike, programi i konfigurimit të konfigurimit thirret nëse përdoruesi shtyp një çelës specifik ose kombinim tasti (më shpesh tastin Del) gjatë nisjes.

Kapaciteti i memories FLASH nga 32 Kbajt në 2 Mbajt, koha e aksesit të leximit 0.06 μs, koha e shkrimit të një bajt afërsisht 10 μs; FLASH memorie - memorie jo e paqëndrueshme.

Përveç memories së rregullt me ​​akses të rastësishëm dhe memorjes vetëm për lexim, një kompjuter ka një pjesë të vogël të memories për ruajtjen e parametrave të konfigurimit të kompjuterit. Shpesh quhet memorie CMOS, pasi kjo memorie zakonisht zbatohet duke përdorur teknologjinë CMOS (gjysmëpërçues komplementar metal-oksid), e cila ka konsumi i ulët i energjisë... Përmbajtja e memories CMOS nuk ndryshon kur kompjuteri fiket, pasi përdoret një bateri e veçantë për ta fuqizuar atë.

Kështu, kapaciteti i memories kryesore përbëhet nga miliona qeliza individuale të memories me një kapacitet prej 1 bajt secila. Kapaciteti total i memories kryesore të kompjuterëve modernë zakonisht varion nga 1 në 4 GB. Kapaciteti i RAM-it është një dy renditje më i lartë se kapaciteti i ROM-it: ROM-i merr deri në 2 MB në pllakat e reja amë), pjesa tjetër është RAM.

Tema 3.1 Organizimi i llogaritjeve në sistemet kompjuterike Oh

Qëllimi dhe karakteristikat e avionit. Organizimi i llogaritjeve në sistemet kompjuterike. kompjuter veprim paralel, konceptet e rrjedhës së komandës dhe rrjedhës së të dhënave. Sistemet asociative. Sistemet matricore. Llogaritja e tubacionit. Tubacioni i komandës, tubacioni i të dhënave. Superskalarizim.

Studenti duhet

di:

Koncepti i rrjedhës së komandës;

Koncepti i rrjedhës së të dhënave;

Llojet e sistemeve kompjuterike;

Karakteristikat arkitekturore të sistemeve kompjuterike

Sistemet kompjuterike

Sistemi kompjuterik(Dielli)- një grup procesorësh ose kompjuterësh të ndërlidhur dhe ndërveprues, pajisje periferike dhe software, i projektuar për të mbledhur, ruajtur, përpunuar dhe shpërndarë informacion.

Krijimi i Forcave të Armatosura ndjek këto synime kryesore:

· Rritja e performancës së sistemit duke përshpejtuar përpunimin e të dhënave;

· Rritja e besueshmërisë dhe saktësisë së llogaritjeve;

Sigurimi i përdoruesit me shtesë shërbimi etj.

Tema 3.2

Klasifikimi i avionëve në varësi të numrit të komandave dhe rrjedhave të të dhënave: SISD, SIMD, MISD, MIMD.

Klasifikimi i avionëve me shumë procesorë me mënyra të ndryshme të zbatimit të memories së përbashkët: UMA, NUMA, SOMA. Karakteristikat krahasuese, veçoritë e harduerit dhe softuerit.

Klasifikimi i avionëve me shumë automjete: MPP, NDW dhe COW. Emërimi, karakteristikat, veçoritë.

Shembuj të avionëve tipe te ndryshme... Avantazhet dhe disavantazhet e llojeve të ndryshme të sistemeve kompjuterike.

Klasifikimi i sistemeve kompjuterike

Një tipar dallues i VS në lidhje me kompjuterët klasikë është prania në të e disa kompjuterëve që zbatojnë përpunimi paralel .

Paralelizmi i ekzekutimit të operacioneve rrit ndjeshëm shpejtësinë e sistemit; ai mund të rrisë ndjeshëm si besueshmërinë (nëse një komponent i sistemit dështon, funksioni i tij mund të merret përsipër nga një tjetër), ashtu edhe besueshmërinë e funksionimit të sistemit, nëse operacionet dyfishohen dhe rezultatet krahasohen.

Sistemet kompjuterike mund të ndahen në dy grupe:

· shumë-makineri ;

· multiprocesor .

Sistemi kompjuterik me shumë makineri përbëhet nga disa kompjuterë individualë... Çdo kompjuter në një sistem me shumë makineri ka një arkitekturë klasike dhe një sistem i tillë përdoret gjerësisht. Megjithatë, efekti i përdorimit të një sistemi të tillë informatikë mund të merret vetëm kur zgjidhet një problem që ka një strukturë të veçantë: ai duhet të ndahet në aq nëndetyra të lidhura dobët sa ka kompjuterë në sistem.

Arkitektura me shumë procesorë supozon praninë e disa procesorëve në kompjuter, prandaj, shumë rrjedha të të dhënave dhe shumë rrjedha instruksionesh mund të organizohen paralelisht. Kështu, disa fragmente të së njëjtës detyrë mund të ekzekutohen njëkohësisht. Avantazhi i shpejtësisë së sistemeve kompjuterike me shumë procesor ndaj atyre me një procesor është i dukshëm.

Disavantazhi është mundësia e shfaqjes situatat e konfliktit kur shumë procesorë kanë qasje në të njëjtën zonë memorie.

Një tipar i sistemeve kompjuterike me shumë procesor është prania e RAM-it të zakonshëm si burim i përbashkët(Figura 11).

Figura 11 - Arkitektura e një sistemi kompjuterik me shumë procesor

Klasifikimi i Flynn

Ndër të gjitha sistemet e konsideruara të klasifikimit të avionëve, më i përhapuri ishte klasifikimi i propozuar në vitin 1966 nga M. Flynn. Ajo bazohet në koncepti i rrjedhës , që kuptohet si një sekuencë komandash ose elementesh të dhënash të përpunuara nga procesori. Flynn dallon 4 klasa të arkitekturave në varësi të numrit të rrymave të komandave dhe rrjedhave të të dhënave:

· OKOD - rrymë e vetme komande - rrjedhë e vetme e të dhënave. Këto përfshijnë VM-të klasike von Neumann. Përpunimi i tubacionit nuk ka rëndësi, prandaj, si VM 6600 me pajisje funksionale skalare dhe 7600 me transportues bien në klasën OKOD.

· ICOD - rrymë komanda e shumëfishtë - rrjedhë e vetme e të dhënave. Në këtë arkitekturë, procesorë të shumtë trajtojnë të njëjtën rrjedhë të dhënash. Një shembull do të ishte një VS, për procesorët e të cilit furnizohet një sinjal i shtrembëruar dhe secili prej procesorëve përpunon këtë sinjal duke përdorur algoritmin e tij të filtrimit. Megjithatë, as Flynn dhe as specialistë të tjerë në fushën e arkitekturës kompjuterike nuk kanë qenë ende në gjendje të imagjinojnë një avion të vërtetë të ndërtuar mbi këtë parim... Një numër studiuesish i atribuojnë sistemet e transportuesit kësaj klase, por kjo nuk ka gjetur njohjen përfundimtare. Prania e një klase boshe nuk duhet të konsiderohet si një e metë në klasifikimin e Flynn. Klasa të tilla mund të jenë të dobishme në zhvillimin e koncepteve të reja në teorinë dhe praktikën e ndërtimit të një avioni.

· OKMD - një rrjedhë komande - shumë rrjedha të dhënash - komandat lëshohen nga një procesor kontrolli, dhe ekzekutohen njëkohësisht në të gjithë procesorët përpunues mbi të dhënat lokale të këtyre procesorëve. SIMD (udhëzim i vetëm - të dhëna të shumta)

· ICMD - shumë rrjedha komandash - shumë rrjedha të dhënash - një grup kompjuterësh që punojnë në programet e tyre me të dhënat e tyre fillestare. MIMD (instruksione të shumta - të dhëna të shumta)

Skema e klasifikimit të Flynn është më e zakonshme në vlerësimin fillestar të avionit, pasi ju lejon menjëherë të vlerësoni parimin bazë të sistemit. Sidoqoftë, klasifikimi i Flynn ka gjithashtu të meta të dukshme: për shembull, pamundësia për të caktuar në mënyrë të qartë disa arkitektura në një klasë ose në një tjetër. E meta e dytë është ngopja e tepërt e klasës MIMD.

Sistemet ekzistuese kompjuterike të klasës MIMD formojnë tre nënklasa: multiprocesorët simetrik (SMP), grupime dhe sisteme masivisht paralele (MPP). Ky klasifikim bazohet në një qasje strukturore - funksionale.

Multiprocesorët simetrik përbëhet nga një grup procesorësh që kanë të njëjtën akses në memorie dhe pajisje të jashtme dhe funksionojnë nën të njëjtin sistem operativ (OS). Një rast i veçantë SMP janë kompjuterë me një procesor. Të gjithë procesorët SMP kanë memorie të përbashkët me një hapësirë ​​të vetme adresash.

Përdorimi i SMP siguron mundësitë e mëposhtme:

· Shkallëzimi i aplikacioneve me kosto fillestare të ulët, duke aplikuar pa konvertuar aplikacione në pajisje të reja, më produktive;

· Krijimi i aplikacioneve në të njohurit mjedise softuerike;

· Koha e njëjtë e aksesit në të gjithë memorien;

· Aftësia për të përcjellë mesazhe me gjerësi bande të lartë;

· Mbështetje për koherencën e një grupi cache dhe blloqesh të memories kryesore, operacionet e sinkronizimit të pandashëm dhe mbylljes.

Sistemi i grupimeve formuar nga module të lidhura nga një sistem komunikimi ose pajisje të përbashkëta memorie të jashtme, për shembull, vargjet e diskut.

Madhësia e grupit varion nga disa module në disa dhjetëra module.

Brenda memorjes së përbashkët dhe të shpërndarë, zbatohen disa modele të arkitekturave të sistemit të kujtesës. Figura 12 tregon klasifikimin e modeleve të tilla të përdorura në sistemet kompjuterike të klasës MIMD (është e vërtetë edhe për klasën SIMD).

Figura 12 - Klasifikimi i modeleve të arkitekturave të memories të sistemeve kompjuterike

Në sisteme me kujtim i përbashkët të gjithë procesorët kanë mundësi të barabarta për të hyrë në një hapësirë ​​të vetme adresash. Një memorie e vetme mund të ndërtohet si një bllok i vetëm ose modular, por kjo e fundit zakonisht ndodh.

Sistemet kompjuterike me memorie të përbashkët, ku qasja e çdo procesori në memorie kryhet në mënyrë uniforme dhe merr të njëjtën kohë, quhen sisteme me akses uniform të memories dhe janë shkurtuar si UMA (Uniform Memory Access). Kjo është arkitektura më e zakonshme e memories për VS paralele me memorie të përbashkët.

Teknikisht, sistemet UMA supozojnë praninë e një nyje që lidh secilën prej tyre NS procesorë me secilin prej T modulet e memories. Mënyra më e thjeshtë për të ndërtuar një BC të tillë është të kombinoni disa procesorë (P i.) me një memorie të vetme (M P) nga autobus i përbashkët- treguar në figurën 12a . Megjithatë, në këtë rast, vetëm njëri nga procesorët mund të shkëmbejë në autobus në të njëjtën kohë, domethënë, përpunuesit duhet të konkurrojnë për qasje në autobus. Kur procesori Р i, merr komandën nga memoria, procesorët e tjerë P j(i ≠ j) duhet të presë derisa goma të lirohet. Nëse sistemi përfshin vetëm dy procesorë, ata janë në gjendje të operojnë me performancën afërsisht maksimale, pasi qasja e tyre në autobus mund të ndërlidhet: ndërsa njëri procesor dekodon dhe ekzekuton një instruksion, tjetri mund të përdorë autobusin për të marrë instruksionin tjetër nga memoria. . Megjithatë, kur shtohet një procesor i tretë, performanca fillon të degradojë. Kur ka dhjetë procesorë në autobus, kurba e shpejtësisë së autobusit (Figura 12b) bëhet horizontale, kështu që shtimi i një procesori 11 nuk përmirëson performancën. Lakorja e poshtme në këtë figurë ilustron faktin se memoria dhe autobusi kanë një gjerësi bande fikse të përcaktuar nga kombinimi i kohës së ciklit të memories dhe protokollit të autobusit, dhe në një sistem shumëprocesorësh me një autobus të përbashkët, kjo gjerësi brezi shpërndahet nëpër procesorë të shumtë. Nëse koha e ciklit të procesorit është më e gjatë se cikli i memories, shumë procesorë mund të lidhen me autobusin. Sidoqoftë, në fakt, procesori është zakonisht shumë më i shpejtë se memoria, kështu që kjo skemë nuk përdoret gjerësisht.

Mënyra alternative ndërtimi i një VS multiprocesori me memorie të përbashkët të bazuar në UMA është paraqitur në figurën 13c. . Këtu autobusi zëvendësohet nga një ndërprerës që drejton kërkesat e procesorit në një nga disa module memorie. Përkundër faktit se ka disa module memorie, të gjitha ato i përkasin një hapësire të vetme adresash virtuale. Avantazhi i kësaj qasjeje është se switch-i është në gjendje të shërbejë disa kërkesa paralelisht. Çdo procesor mund të lidhet me modulin e tij të memories dhe të ketë akses në të me shpejtësinë maksimale të lejuar. Rivaliteti midis procesorëve mund të lindë kur përpiqeni të përdorni të njëjtin modul memorie në të njëjtën kohë. Në këtë rast, vetëm një procesor merr akses dhe të tjerët bllokohen.

Për fat të keq, arkitektura UMA nuk ka shkallë të mirë. Sistemet më të zakonshme përmbajnë 4-8 procesorë, shumë më rrallë 32-64 procesorë. Për më tepër, sisteme të tilla nuk mund t'i atribuohen i sigurt për dështimin, pasi që dështimi i një procesori ose moduli memorie sjell dështimin e të gjithë avionit.

Figura 13 - Kujtesa e përbashkët:

a) kombinimi i procesorëve duke përdorur një autobus dhe një sistem me cache lokale;

b) performanca e sistemit në funksion të numrit të procesorëve në autobus;

c) multiprocesor VS me memorie të përbashkët, i përbërë nga modulet individuale

Një tjetër qasje për ndërtimin e një memorie të përbashkët VS është akses jo uniform i memories , i caktuar si NUMA (Qasje jo e njëtrajtshme e kujtesës). Këtu, si më parë, ka një hapësirë ​​​​të vetme adresash, por secili procesor ka një memorie lokale. Procesori hyn drejtpërdrejt në memorien e tij lokale, gjë që është shumë më e shpejtë se qasja në memorien e largët përmes një ndërprerës ose rrjeti. Një sistem i tillë mund të plotësohet me memorie globale, atëherë pajisjet e ruajtjes lokale veprojnë si memorie e shpejtë e memories për memorien globale. Një skemë e tillë mund të përmirësojë performancën e avionit, por nuk është në gjendje të vonojë pafundësisht barazimin e performancës së drejtpërdrejtë. Duke pasur parasysh që çdo procesor ka një cache lokale (Figura 13a), ekziston një probabilitet i lartë (p> 0.9) që komanda ose të dhënat e kërkuara janë tashmë në memorien lokale. Një mundësi e arsyeshme për të goditur memorien lokale redukton ndjeshëm numrin e akseseve të procesorit në memorien globale dhe kështu përmirëson efikasitetin. Vendi i thyerjes në kurbën e performancës (lakorja e sipërme në figurën 13b ), pika ku shtimi i procesorëve është ende efektiv është zhvendosur tani në zonën e procesorit 20 dhe pika ku kurba bëhet horizontale zhvendoset në zonën e procesorit 30.

Në kuadër të konceptit NUMA zbatohen disa qasje të ndryshme, të shënuara me shkurtesa SOMA, CC-NUMA dhe NCC-NUMA.

V arkitekturë vetëm për cache (SOMA, Cache Only Memory Architecture) memoria lokale e çdo procesori është ndërtuar si një memorie e madhe cache për qasje të shpejtë nga procesori "vet". Memoria e fshehtë e të gjithë procesorëve konsiderohet kolektivisht si kujtesa globale e sistemit. Nuk ka memorie aktuale globale. Tipari themelor i konceptit SOMA shprehet në dinamikë. Këtu, të dhënat nuk janë të lidhura në mënyrë statike me një modul specifik memorie dhe nuk kanë një adresë unike që mbetet e pandryshuar gjatë gjithë jetës së variablit. Në arkitekturën SOMA, të dhënat transferohen në memorien e cache të procesorit që e ka kërkuar për herë të fundit, ndërsa ndryshorja nuk është e fiksuar me një adresë unike dhe në çdo moment në kohë mund të vendoset në çdo qelizë fizike. Zhvendosja e të dhënave nga një memorie lokale në tjetrën nuk kërkon që sistemi operativ të marrë pjesë në këtë proces, por përfshin një pajisje komplekse dhe të shtrenjtë të menaxhimit të memories. Për të organizuar një regjim të tillë, të ashtuquajturat drejtoritë e cache-ve . Vini re gjithashtu se kopja e fundit e artikullit nuk hiqet kurrë nga cache.

Meqenëse në arkitekturën SOMA, të dhënat zhvendosen në memorien e memories lokale të përpunuesit pronar, avionë të tillë kanë një avantazh të rëndësishëm të performancës ndaj arkitekturave të tjera NUMA. Nga ana tjetër, nëse një ndryshore e vetme, ose dy ndryshore të ndryshme të ruajtura në të njëjtën linjë në të njëjtën cache, kërkohen nga dy procesorë, ajo linjë cache duhet të zhvendoset mbrapa dhe mbrapa midis procesorëve sa herë që aksesohen të dhënat. Efekte të tilla mund të varen nga detajet e shpërndarjes së kujtesës dhe të çojnë në situata të paparashikueshme.

Model akses memorie jo-uniforme me koherente cache (CC-NUMA, Cache Coherent Non-Uniform Memory Architecture) është thelbësisht i ndryshëm nga modeli SOMA. Sistemi CC-NUMA nuk përdor memorien e memories, por memorien e zakonshme të alokuar fizikisht. Nuk ndodh kopjimi i faqeve ose i të dhënave ndërmjet vendndodhjeve të memories. Nuk ka mesazhe softuerike. Ka vetëm një memorie, me pjesë të lidhura fizikisht kabllo bakri, dhe pajisje inteligjente. Koherenca e cache-it të bazuar në harduer do të thotë që nuk kërkohet asnjë softuer për të ruajtur kopje të shumta të të dhënave të përditësuara ose për t'i transferuar ato. Niveli i harduerit trajton të gjitha këto. Qasja në modulet e memories lokale në nyje të ndryshme të sistemit mund të kryhet njëkohësisht dhe është më e shpejtë se në modulet e memories në distancë.

Dallimi midis modelit me qasja e memories jo-uniforme me cache-inkoherente (NCC-NUMA, Non-Cache Koherent Non-Uniform Memory Architecture) nga CC-NUMA është e qartë nga emri. Arkitektura e memories supozon një hapësirë ​​​​të vetme adresash, por nuk siguron konsistencë harduerike të të dhënave globale. Menaxhimi i përdorimit të të dhënave të tilla varet tërësisht nga softueri (aplikacionet ose kompajlerët). Pavarësisht nga kjo rrethanë, e cila duket si një disavantazh i arkitekturës, rezulton të jetë shumë i dobishëm në rritjen e performancës së sistemeve kompjuterike me një arkitekturë memorie të tipit DSM, e konsideruar në seksionin "Modelet e arkitekturave të memorjes së shpërndarë".

Në përgjithësi quhen AC me memorie të përbashkët të ndërtuar sipas skemës NUMA arkitekturat e memories së përbashkët virtuale (arkitekturat e kujtesës së përbashkët virtuale). Ky lloj arkitekture, në veçanti CC-NUMA, kohët e fundit është konsideruar si një lloj i pavarur dhe mjaft premtues i sistemeve kompjuterike të klasës M1MD.

Modele të arkitekturës së kujtesës së shpërndarë. Në një sistem memorie të shpërndarë, çdo procesor ka memorien e vet dhe mund ta adresojë vetëm atë. Disa autorë e quajnë këtë lloj sistemesh aeroplanë me shumë automjete ose multikompjuterë , duke theksuar faktin se "blloqet nga të cilat është ndërtuar sistemi janë në vetvete sisteme të vogla kompjuterike me procesor dhe memorie. Modelet e arkitekturave me memorie të shpërndarë zakonisht shënohen si arkitekturë pa të drejtpërdrejtë akses memorie në distancë (NORMA, Nuk ka qasje në memorie në distancë). Ky emër rrjedh nga fakti se çdo procesor ka qasje vetëm në memorien e tij lokale. Qasja në memorien e largët (memoria lokale e një procesori tjetër) është e mundur vetëm duke shkëmbyer mesazhe me procesorin që zotëron memorien e adresueshme.

Kjo organizatë ka një sërë përparësish. Së pari, nuk ka konkurrencë për autobusin ose çelësat kur aksesoni të dhënat: çdo procesor mund të përdorë plotësisht gjerësinë e brezit të rrugës së komunikimit me memorien e tij lokale. Së dyti, mungesa e një autobusi të përbashkët do të thotë se nuk ka kufizime të lidhura në numrin e procesorëve: madhësia e sistemit është e kufizuar vetëm nga rrjeti i procesorëve. Së treti, problemi i koherencës së cache është hequr. Secili procesor ka të drejtë të ndryshojë në mënyrë të pavarur të dhënat e tij pa u shqetësuar për përputhjen e kopjeve të të dhënave në memorien e tij lokale të memories së tij me cache-të e përpunuesve të tjerë.

Studenti duhet

di:

Klasifikimi i avionëve;

Shembuj të avionëve të llojeve të ndryshme.

te jesh i afte te:

- zgjidhni llojin e sistemit kompjuterik në përputhje me problemin që zgjidhet.


Faqja © 2015-2019
Të gjitha të drejtat u përkasin autorëve të tyre. Kjo faqe nuk pretendon autorësinë, por ofron përdorim falas.
Data e krijimit të faqes: 2016-07-22

Kapitulli 11

Organizimi llogaritja e memories sistemeve

Në sistemet kompjuterike që bashkojnë shumë procesorë ose makina paralele, problemi i organizimit të duhur të memories është një nga më të rëndësishmit. Dallimi midis shpejtësisë së procesorit dhe kujtesës ka qenë gjithmonë një pengesë në VM-të me një procesor. VS multiprocessing çon në një problem tjetër - problemin e aksesit të njëkohshëm në memorie nga disa procesorë.

Në varësi të mënyrës se si organizohet memoria e sistemeve multiprocesorike (multikompjuterike), bëhet dallimi midis sistemeve kompjuterike me memorie të përbashkët dhe AC me memorie të shpërndarë. V sistemet e përbashkëta të memories(shpesh quhet edhe memorie e përbashkët ose e përbashkët) Kujtesa e Diellit konsiderohet si një burim i komunitetit dhe secili prej procesorëve ka akses të plotë në të gjithë hapësirën e adresave. Sistemet e memories së përbashkët quhen i lidhur fort(sisteme të lidhura ngushtë). Një ndërtim i ngjashëm i sistemeve kompjuterike ndodh si në klasën SIMD ashtu edhe në klasën MIMD. Ndonjëherë, për të theksuar këtë rrethanë, futen nënklasa të veçanta, duke përdorur shkurtesat SM-SIMD (Shared Memory SIMD) dhe SM-MIMD (Shared Memory MIMD) për t'i treguar ato.

Në opsion me memorie të shpërndarë secilit prej procesorëve i caktohet memoria e vet. Përpunuesit bashkohen v rrjet dhe mundet, nëse është e nevojshme, të shkëmbejnë të dhëna të ruajtura në memorien e tyre, duke i transmetuar njëri-tjetrit të ashtuquajturat mesazhe. Ky lloj avioni quhet të lidhur lirshëm(sisteme të lidhura lirshëm). Në mënyrë të dobët sistemet e lidhura gjenden gjithashtu në klasën SIMD dhe klasën MIMD, dhe ndonjëherë për të theksuar këtë veçori, prezantoni nënklasat DM-SIMD (Distributed Memory SIMD) dhe DM-MIMD (Distributed Memory MIMD).

Në disa raste quhen sisteme kompjuterike me memorie të përbashkët multiprocesorë, dhe sistemet me memorie të shpërndarë - mtslt kompjutera.

Dallimi midis memories së përbashkët dhe asaj të shpërndarë është ndryshimi në strukturën e memories virtuale, domethënë se si duket memoria nga ana e procesorit. Fizikisht, pothuajse çdo sistem memorie është i ndarë në komponentë të pavarur të cilat mund të aksesohen në mënyrë të pavarur. Mënyra se si nënsistemi i memories interpreton adresën e celularit të marrë nga procesori është i shkëputur nga memoria e përbashkët. Për shembull, supozoni se procesori ekzekuton komandën e ngarkesës RO, i, që do të thotë "Ngarko regjistrin R0 me përmbajtjen e qelizës i". Në rastin e memories së përbashkët, i është adresa globale dhe tregon të njëjtin vend për çdo procesor. V sistemi i shpërndarë kujtesa unë jam adresa lokale Nëse dy procesorë ekzekutojnë ngarkesën e komandës RO, i, atëherë secili prej tyre akseson qeliza e i-të në kujtesën e tij lokale, d.m.th qeliza të ndryshme, dhe vlerat e pabarabarta mund të ngarkohen në regjistrat R0.

Dallimi midis dy sistemeve të memories duhet të mbahet parasysh nga programuesi, pasi ai përcakton mënyrën në të cilën pjesët e një programi paralel ndërveprojnë. Në variantin me memorie të përbashkët, mjafton të krijohet një strukturë e të dhënave në memorie dhe të transferohen referenca në këtë strukturë në nënprograme paralele. Në një sistem memorie të shpërndarë, duhet të keni një kopje të të dhënave të përbashkëta në çdo memorie lokale. Këto kopje krijohen duke futur të dhëna të përbashkëta në mesazhet e dërguara te përpunuesit e tjerë.

Kujtesa me të alternuara adresat

Fizikisht, memoria e një sistemi kompjuterik përbëhet nga disa module (banka), ndërsa pyetja thelbësore është se si shpërndahet hapësira e adresave në këtë rast (bashkësia e të gjitha adresave që mund të formojë procesori). Një mënyrë për të shpërndarë adresat virtuale nëpër modulet e memories është ndarja e hapësirës së adresave në blloqe vijuese. Nëse kujtesa përbëhet nga NS bankat, pastaj qeliza me adresën i në rast ndarje blloku do të jetë në bankë me numrin unë /n. Në sistem kujtesa e ndërthurur(memoria e ndërthurur) adresat e njëpasnjëshme ndodhen në banka të ndryshme: qeliza me adresën i është në bankë me numrin i mod. NS. Le të, për shembull, memoria përbëhet nga katër banka, 256 bajt secila. Në një skemë adresimi blloku, banka e parë do të ndahet adresat virtuale 0-255, e dyta - 256-511, etj. Në një skemë me adresa alternative, qelizat e njëpasnjëshme në bankën e parë do të kenë adresat virtuale 0, 4, 8, .... në bankën e dytë - 1, 5, 9 , etj (Figura 11.1, a).

Shpërndarja e hapësirës së adresave midis moduleve bën të mundur përpunimin e njëkohshëm të kërkesave për akses në memorie, nëse adresat përkatëse i përkasin bankave të ndryshme, procesori mund të kërkojë qasje në një qelizë në një nga ciklet. i dhe në ciklin tjetër - në qelizën j. Nëse unë dhej janë në banka të ndryshme, informacioni do të transmetohet në cikle të njëpasnjëshme. Këtu, një cikël i referohet një cikli procesori, ndërsa një cikël i plotë memorie kërkon disa cikle procesori. Kështu, në këtë rast, procesori nuk duhet të presë derisa të përfundojë cikli i plotë i aksesit në qelizë. i. Teknika e konsideruar ju lejon të rriteni xhiros: nëse sistemi i memories përbëhet nga

https://pandia.ru/text/78/264/images/image002_61.jpg "width =" 62 "height =" 15 "> Hapësira ndërmjet elementeve quhet hap pas indeks ose Përparimi(hapa). Nje nga aplikacione interesante kjo veti mund të shërbejë si Access to matrices. Nëse hapi i indeksit është një më shumë se numri i rreshtave në matricë, një kërkesë e vetme për akses në memorie do të kthejë të gjithë elementët diagonale të matricës (Figura 11.1, b). Përgjegjësia për të siguruar që të gjithë elementët e marrë të matricës janë të vendosura në banka të ndryshme i takon programuesit.

Modelet e arkitekturës së kujtesës të sistemeve kompjuterike

Brenda memorjes së përbashkët dhe të shpërndarë, zbatohen disa modele të arkitekturave të sistemit të kujtesës.

DIV_ADBLOCK84 ">

Oriz. 11.3. Memorie e përbashkët: a - kombinimi i procesorëve duke përdorur një autobus; b - një sistem me cache lokale; v- performanca e sistemit si funksion i numrit të procesorëve në autobus; d - multiprocesor VS me memorie të përbashkët, i përbërë nga module të veçanta

Një metodë alternative për ndërtimin e një CS multiprocesori me memorie të përbashkët të bazuar në NML është paraqitur në Fig. 11.3, G. Këtu spiku zëvendësohet nga një ndërprerës që drejton kërkesat e procesorit në një nga disa module memorie. Përkundër faktit se ka disa module memorie, të gjitha ato i përkasin një hapësire të vetme adresash virtuale. Avantazhi i kësaj qasjeje është se switch-i është në gjendje të shërbejë disa kërkesa paralelisht. Çdo procesor mund të lidhet me modulin e tij të memories dhe të ketë akses në të me shpejtësinë maksimale të lejuar. Rivaliteti midis procesorëve mund të lindë kur përpiqeni të përdorni të njëjtin modul memorie në të njëjtën kohë. Në këtë rast, vetëm një procesor merr akses dhe të tjerët bllokohen.

Për fat të keq, arkitektura UMA nuk ka shkallë të mirë. Sistemet më të zakonshme përmbajnë 4-8 procesorë, shumë më rrallë 32-64 procesorë. Për më tepër, sisteme të tilla nuk mund të klasifikohen si tolerante ndaj gabimeve, pasi dështimi i një procesori ose moduli memorie sjell dështimin e të gjithë avionit.

Një tjetër qasje për ndërtimin e një memorie të përbashkët VS është akses jo uniform i memories, e shënuar si NUM A (Qasje jo e njëtrajtshme e memories), Ekziston ende një hapësirë ​​​​e vetme adresash, por çdo procesor ka memorie lokale. Procesori hyn drejtpërdrejt në memorien e tij lokale, gjë që është shumë më e shpejtë se qasja në memorien e largët përmes një ndërprerës ose rrjeti. Një sistem i tillë mund të plotësohet me memorie globale, atëherë pajisjet e ruajtjes lokale veprojnë si memorie e shpejtë cache për memorien globale. Një skemë e tillë mund të përmirësojë performancën e avionit, por nuk është në gjendje të vonojë pafundësisht barazimin e performancës së drejtpërdrejtë. Nëse çdo procesor ka një cache lokale (Figura 11.3.6), ka një probabilitet të lartë (p> 0.9) që komanda ose të dhënat e kërkuara janë tashmë në memorien lokale. Mundësia e arsyeshme për të goditur memorien lokale redukton ndjeshëm numrin e thirrjeve të procesorit për të kujtesa globale dhe kështu çon në rritjen e efikasitetit. Vendi i thyerjes në lakoren e performancës (lakorja e sipërme në Fig.11.3, v), pika ku shtimi i procesorëve është ende efektiv është zhvendosur tani në rajonin e procesorit 20, dhe më i hollë, ku kurba bëhet horizontale, në rajonin e procesorit 30.

Në kuadër të konceptit NUMA zbatohen disa qasje të ndryshme, të shënuara me shkurtesa SOMA,CC-NUMA dhe NCC-NUMA.

V arkitekturë vetëm për cache(SOMA, Cache Only Memory Architecture) memoria lokale e çdo procesori është ndërtuar si një memorie e madhe cache për qasje të shpejtë nga procesori "vet". Memoria e fshehtë e të gjithë procesorëve konsiderohet kolektivisht si kujtesa globale e sistemit. Nuk ka memorie aktuale globale. Tipari themelor i konceptit SOMA shprehet në dinamikë. Këtu, të dhënat nuk janë të lidhura në mënyrë statike me një modul specifik memorie dhe nuk kanë një adresë unike që mbetet e pandryshuar gjatë gjithë jetës së variablit. Në arkitekturën SOMA, të dhënat transferohen në memorien e cache të procesorit që e ka kërkuar për herë të fundit, ndërsa ndryshorja nuk është e fiksuar me një adresë unike dhe në çdo moment në kohë mund të vendoset në çdo qelizë fizike. Zhvendosja e të dhënave nga një memorie lokale në tjetrën nuk kërkon që sistemi operativ të marrë pjesë në këtë proces, por përfshin një pajisje komplekse dhe të shtrenjtë të menaxhimit të memories. Për të organizuar një regjim të tillë, të ashtuquajturat drejtoritë e cache-ve. Vini re gjithashtu se kopja e fundit e artikullit nuk hiqet kurrë nga cache.

Meqenëse në arkitekturën SOMA të dhënat zhvendosen në memorien e memories lokale të procesorit pronar, avionë të tillë kanë një avantazh të konsiderueshëm të performancës ndaj arkitekturave të tjera NUM A. Nga ana tjetër, nëse një ndryshore e vetme ose dy variabla të ndryshëm ruajnë të njëjtin cache në një. Linja kërkohet nga dy përpunues, kjo linjë e cache-it duhet të zhvendoset mbrapa dhe mbrapa ndërmjet procesorëve sa herë që aksesohen të dhënat. Efekte të tilla mund të varen nga detajet e shpërndarjes së kujtesës dhe të çojnë në situata të paparashikueshme.

Model akses memorie jo-uniforme me koherente cache(CC-NUMA, Сache Koherent Non-Uniform Memory Architecture) është thelbësisht i ndryshëm nga modeli SOMA. Sistemi CC-NUMA nuk përdor memorien e memories, por memorien e zakonshme të alokuar fizikisht. Nuk ndodh kopjimi i faqeve ose i të dhënave ndërmjet vendndodhjeve të memories. Nuk ka mesazhe softuerike. Ekziston vetëm një memorie, me pjesë të lidhura fizikisht me kabllo bakri dhe pajisje inteligjente. Koherenca e cache-it të bazuar në harduer do të thotë që nuk kërkohet asnjë softuer për të ruajtur kopje të shumta të të dhënave të përditësuara ose për t'i transferuar ato. Niveli i harduerit trajton të gjitha këto. Qasja në modulet e memories lokale në nyje të ndryshme të sistemit mund të kryhet njëkohësisht dhe është më e shpejtë se në modulet e memories në distancë.

Dallimi midis modelit me qasja e memories jo-uniforme me cache-inkoherente(NCC-NUMA, Non-Cache Koherent Non-Uniform Memory Architecture) nga CC-NUMA është e qartë nga emri. Arkitektura e memories supozon një hapësirë ​​​​të vetme adresash, por nuk siguron konsistencë harduerike të të dhënave globale. Menaxhimi i përdorimit të të dhënave të tilla varet tërësisht nga softueri (aplikacionet ose kompajlerët). Pavarësisht nga kjo rrethanë, e cila duket si një disavantazh i arkitekturës, rezulton të jetë shumë i dobishëm në rritjen e performancës së sistemeve kompjuterike me një arkitekturë memorie të tipit DSM, e konsideruar në seksionin "Modelet e arkitekturave të memorjes së shpërndarë".

Në përgjithësi quhen AC me memorie të përbashkët të ndërtuar sipas skemës NUMA arkitekturat e memories së përbashkët virtuale(arkitekturat e kujtesës së përbashkët virtuale). Ky lloj arkitekture, në veçanti CC-NUMA, kohët e fundit është konsideruar si një lloj i pavarur dhe mjaft premtues i sistemeve llogaritëse të klasës MIMD, prandaj, avionë të tillë do të diskutohen më në detaje më poshtë.

Modele të arkitekturës së kujtesës së shpërndarë

Në një sistem memorie të shpërndarë, çdo procesor ka memorien e vet dhe mund ta adresojë vetëm atë. Disa autorë e quajnë këtë lloj sistemesh aeroplanë me shumë kompjuterë ose shumë kompjuterë, duke theksuar faktin se blloqet ndërtuese të një sistemi janë vetë sisteme të vogla informatike me procesor dhe memorie. Modelet e arkitekturave të memories së shpërndarë zakonisht shënohen si arkitektura pa akses të drejtpërdrejtë në memorien e largët(NORMA, Nuk ka qasje në memorie në distancë). Ky emër rrjedh nga fakti se çdo procesor ka qasje vetëm në memorien e tij lokale. Qasja në memorien e largët (memoria lokale e një procesori tjetër) është e mundur vetëm duke shkëmbyer mesazhe me procesorin që zotëron memorien e adresueshme.

Kjo organizatë ka një sërë përparësish. Së pari, kur qaseni në të dhëna, nuk ka konkurrencë për autobusin ose çelësat - çdo procesor mund të përdorë plotësisht gjerësinë e brezit të rrugës së komunikimit me memorien e tij lokale. Së dyti, mungesa e një autobusi të përbashkët do të thotë se nuk ka kufizime të lidhura në numrin e procesorëve: madhësia e sistemit është e kufizuar vetëm nga rrjeti i procesorëve. Së treti, problemi i koherencës së cache është hequr. Secili procesor ka të drejtë të ndryshojë në mënyrë të pavarur të dhënat e tij pa u shqetësuar për përputhjen e kopjeve të të dhënave në memorien e tij lokale të memories me memorien e përpunuesve të tjerë.

Disavantazhi kryesor i një kompjuteri me memorie të shpërndarë është kompleksiteti i shkëmbimit të informacionit midis procesorëve. Nëse ndonjëri prej procesorëve ka nevojë për të dhëna nga memoria e një procesori tjetër, ai duhet të shkëmbejë mesazhe me këtë procesor. Kjo çon në dy lloje kostosh:

· Duhet kohë për të formuar dhe përcjellë një mesazh nga një! procesor në një tjetër;

· Për të dhënë një përgjigje ndaj mesazheve nga procesorë të tjerë, procesori marrës duhet të marrë një kërkesë për ndërprerje dhe të ekzekutojë procedurën për trajtimin e këtij ndërprerje.

Struktura e një sistemi memorie të shpërndarë është paraqitur në Fig. 11.4. Në të majtë! pjesë (fig.11.4, a) tregohet një element përpunues (PE). Ai përfshin) vetë procesorin (P), memorien lokale (M) dhe dy kontrollues I/O (Ko dhe KD në anën e djathtë (Fig.11.4, b) shfaqet një sistem me katër procesorë që ilustron se si dërgohen mesazhet nga një procesor në tjetrin. Në lidhje me çdo PE, të gjithë elementët e tjerë të përpunimit mund të shihen thjesht si pajisje hyrëse/dalëse. Për të dërguar një mesazh te një PE tjetër, procesori formon një bllok të dhënash në memorien e tij lokale dhe e njofton atë kontrollues lokal për nevojën për të transferuar informacion në pajisje e jashtme... Nëpërmjet rrjetit të ndërlidhjes, ky mesazh i përcillet kontrolluesit I/O marrës të PE-së marrëse. Ky i fundit gjen hapësirë ​​për mesazhin në memorien e tij lokale dhe njofton procesorin burimor që mesazhi është marrë.

DIV_ADBLOCK89 ">

Një variant interesant i një sistemi memorie të shpërndarë është; model shpërndau memorie të përbashkët(DSM, Distribute Shared Memory), i njohur edhe me një emër tjetër arkitekturë me heterogjeneaksesi i memories dhe koherenca e softuerit(SC-NUMA, Softuer-Arkitekturë e kujtesës jo-uniforme koherente). Ideja e këtij modeli është që BC, duke qenë fizikisht një sistem me memorie të shpërndarë, falë sistemit operativ t'i shfaqet përdoruesit si një sistem me memorie të përbashkët. Kjo do të thotë se sistemi operativ i ofron përdoruesit një hapësirë ​​të vetme adresash, pavarësisht se aksesi aktual në memorien e kompjuterit të avionit "të huaj" ende sigurohet përmes shkëmbimit të mesazheve.

multiprocesorkoherencë cache- memorie

Një sistem multiprocesorësh me memorie të përbashkët përbëhet nga dy ose më shumë procesorë të pavarur, secili prej të cilëve kryen njërën nga pjesët e program i madh, ose një program të pavarur. Të gjithë procesorët aksesojnë udhëzimet dhe të dhënat e ruajtura në memorien kryesore të përbashkët. Meqenëse memoria është një burim i përbashkët, ekziston konkurrencë midis procesorëve kur qaseni në të, gjë që rrit vonesën mesatare të hyrjes në kujtesë. Për të reduktuar këtë vonesë, çdo procesori i caktohet një cache lokale, e cila, duke shërbyer akseset e memories lokale, në shumë raste parandalon nevojën për të hyrë në memorien kryesore të përbashkët. Nga ana tjetër, pajisja e secilit procesor me një memorie cache lokale çon në të ashtuquajturën problemi i koherencës ose duke siguruar në marrëveshjememorie cache. Sipas sistemit, sistemi është koherent nëse çdo operacion leximi në një adresë, i kryer nga ndonjë prej procesorëve, kthen vlerën e futur gjatë operacionit të fundit të shkrimit në këtë adresë, pavarësisht se cili procesor ka shkruar i fundit.

Në formën e tij më të thjeshtë, problemi i koherencës së cache mund të shpjegohet si më poshtë (Figura 11.5). Le dy procesorë Rg dhe Pr lidhen me memorien e përbashkët nëpërmjet një autobusi. Së pari, të dy procesorët lexojnë variablin NS. Kopjet e blloqeve që përmbajnë këtë variabël transferohen nga memoria kryesore në cache lokale të të dy procesorëve (Figura 11.5, a). Më pas procesori Pt kryen operacionin e rritjes së vlerës së ndryshores NS për njësi. Meqenëse një kopje e ndryshores është tashmë në cache-in e këtij procesori, do të ndodhë një goditje në cache dhe vlera do të ndryshohet vetëm në cache 1. Nëse tani procesori P2 kryen përsëri një operacion leximi NS, atëherë do të ndodhë gjithashtu një goditje në cache dhe P2 do të marrë vlerën "e vjetër" të ruajtur në memorien e saj të memories NS(fig.11.5, b).

Ruajtja e konsistencës kërkon që kur një artikull ndryshohet nga njëri prej procesorëve, ndryshimet përkatëse bëhen në memorien e memories së përpunuesve të tjerë, ku ka një kopje të artikullit të ndryshuar, si dhe në memorien e përbashkët. Një problem i ngjashëm ndodh, meqë ra fjala, në sistemet me një procesor, ku ka disa nivele të memories cache. Këtu kërkohet rakordimi i përmbajtjes së cache-ve të niveleve të ndryshme.

Ekzistojnë dy qasje për zgjidhjen e problemit të koherencës: softueri dhe hardueri. Disa sisteme përdorin strategji që kombinojnë të dyja qasjet.

Software mënyrat ZgjidhjetProblemet koherencë

Teknikat softuerike për zgjidhjen e problemit të koherencës bëjnë të mundur që të bëhet pa pajisje shtesë ose mbajeni atë në minimum.

ProtokolliBerkli. Protokolli Berkeley u përdor në sistemin multiprocesorik Berkeley bazuar në procesorët RISC.

Shuma e përgjithshme e humbjeve të cache zbutet nga ideja e protokollit për pronësinë e një linje cache. Në përgjithësi, memoria kryesore konsiderohet pronare e të gjitha blloqeve të të dhënave. Përpara se të modifikojë përmbajtjen e një rreshti në cache-in e tij, procesori duhet të fitojë pronësinë e linjë e dhënë... Këto të drejta fitohen përmes operacioneve speciale të leximit dhe shkrimit. Nëse, kur hyni në një bllok, pronari i të cilit në ky moment nuk është memorie kryesore, ndodh një humbje e cache-it, procesori që zotëron rreshtin parandalon leximin nga memoria kryesore dhe ushqen procesorin kërkues me të dhëna nga vetë cache-i i tij lokal.

Një përmirësim tjetër është futja e një shteti të përbashkët. Kur procesori shkruan në një nga linjat e memories së tij lokale të memories së tij, zakonisht gjeneron një sinjal për të hequr kopjet e bllokut të modifikueshëm në cache të tjera. Në protokollin Berkeley, sinjali i heqjes gjenerohet vetëm nëse ka kopje të tilla në cache të tjera. Kjo mund të reduktojë ndjeshëm trafikun joproduktiv të autobusëve. Skenarët e mëposhtëm janë të mundshëm.

Para së gjithash, sa herë që një procesor shkruan në memorien e tij cache, varg i ndryshueshëmështë transferuar në gjendjen e "ndryshuar, private" (PD, Private Pistë). Më tej, nëse vargu është i ndarë, një sinjal zhvlerësimi dërgohet në autobus dhe në të gjitha cache lokale ku ka një kopje të këtij blloku të të dhënave, këto kopje vendosen në gjendjen "invalid" (I, Invalid). Nëse ka një mungesë shkrimi, procesori merr një kopje të bllokut nga cache e masterit aktual të bllokut të kërkuar. Vetëm pas këtyre veprimeve procesori shkruan në cache-in e tij.

Në rast të mungesës së cache-it të leximit, procesori i dërgon një kërkesë pronarit të bllokut për të marrë versionin më të fundit të këtij të fundit dhe e përkthen atë kopje e re në gjendjen vetëm për lexim (RO, Read Only). Nëse rreshti zotërohej nga një procesor tjetër, ai shënon kopjen e tij të bllokut si Shared Dirty (SD).

Diagrami i gjendjes së protokollit Berkeley është paraqitur në Fig. 11.10.

Duke krahasuar protokollet e shkrimit një herë dhe Berkeley-t, mund të vërehet sa vijon. Të dy protokollet përdorin një strategji kthimi në të cilën blloqet e ndryshuara mbahen në cache për aq kohë sa të jetë e mundur. Memoria kryesore përditësohet vetëm kur një rresht fshihet nga cache. Kufiri i sipërm i numrit total të transaksioneve të shkrimit në autobus përcaktohet nga ajo pjesë e protokollit të shkrimit një herë ku zbatohet shkrimi, pasi strategjia e fundit gjeneron një operacion shkrimi në autobus me çdo ndryshim të iniciuar nga procesori. Meqenëse operacioni i parë i shkrimit në një protokoll shkrimi një herë është i kalueshëm, ai kryhet edhe nëse të dhënat nuk ndahen. Kjo nënkupton trafik shtesë autobus, i cili rritet me rritjen e kapacitetit të cache-it. Është vërtetuar se protokolli i shkrimit një herë rezulton në më shumë trafik autobusi në krahasim me protokollin e Berkeley .







Leximi hit

Oriz. 11.10. Protokolli i Berklit

Një linjë e lexueshme dhe e përditësuar në protokollin e shkrimit një herë kërkon që rreshti të lexohet në cache, të modifikohet lokalisht në cache dhe të shkruhet përsëri në memorie. E gjithë procedura kërkon dy operacione në autobus: leximin nga memoria kryesore (RAM) dhe kthimin në RAM. Protokolli i Berkeley, nga ana tjetër, ka të bëjë me marrjen e lejeve të rreshtave. Pastaj blloku modifikohet në cache. Nëse rreshti nuk është aksesuar përpara fshirjes nga cache, ciklet e autobusit do të jenë të njëjta si në protokollin e shkrimit një herë. Megjithatë, ka më shumë gjasa që linja të kërkohet përsëri, atëherë nga pikëpamja e një memorie të vetme cache, përditësimi i linjës së cache-it ka nevojë për vetëm një operacion leximi në autobus. Kështu, protokolli i Berkeley transferon linjat drejtpërdrejt midis cache-ve, ndërsa protokolli i shkrimit një herë transferon një bllok nga cache origjinale në memorien kryesore, dhe më pas nga OP në cache-të kërkuese, duke rezultuar në një vonesë të përgjithshme të sistemit të memories. .

ProtokolliIllinois. Protokolli i Illinois, i propozuar nga Marc Papamarcos, synon gjithashtu të zvogëlojë trafikun e autobusëve dhe, në këtë mënyrë, kohën e përpunimit të procesorit për hyrjen në autobus. Këtu, si në protokollin e Berkeley, ideja e pronësisë së bllokut është mbizotëruese, por pak e modifikuar. Në protokollin e Illinois, pronësia mbahet nga çdo cache që përmban një kopje të vlefshme të një blloku të dhënash. Në këtë rast, i njëjti bllok mund të ketë disa pronarë. Kur kjo ndodh, secilit procesor i caktohet një prioritet i caktuar dhe pronari me prioritet më të lartë bëhet burimi i informacionit.

Si në rastin e mëparshëm, sinjali i zhvlerësimit gjenerohet vetëm kur kopjet e këtij blloku janë të disponueshme në cache të tjera. Skenarët e mundshëm për protokollin e Illinois janë paraqitur në Fig. 11.11.

Oriz. 11.11. Protokolli i Ilinoisit

Sa herë që një procesor shkruan në cache-in e tij, vargu i modifikuar vendoset në një gjendje private të ndotur (PD). Nëse blloku i të dhënave ndahet, një sinjal vrasësi dërgohet në autobus dhe në të gjitha memoriet lokale ka një kopje të këtij blloku. , këto kopje transferohen në gjendjen "invalid" (I, Invalid). Nëse ndodh një mungesë shkrimi, procesori merr një kopje nga cache e pronarit aktual të bllokut të kërkuar. Vetëm pas veprimeve të treguara, procesori shkruan në cache-in e tij. Siç mund ta shihni, në këtë pjesë ka një koincidencë të plotë me protokollin e Berkeley-t.

Në rast të mungesës së cache-it të leximit, procesori i dërgon një kërkesë pronarit të bllokut për të marrë versionin më të fundit të këtij të fundit dhe e vendos kopjen e tij të re në gjendjen "ekskluzive" (E, Ekskluzive), me kusht që të jetë pronari i vetëm i rreshtit. Përndryshe, statusi ndryshohet në "të përbashkët" (S, Shared).

Është thelbësore që protokolli të jetë i zgjerueshëm dhe i lidhur ngushtë si me raportin e humbjes së cache-it ashtu edhe me sasinë e të dhënave që është pronë e përbashkët e një sistemi shumëprocesorësh.

ProtokolliFirefly. Protokolli u propozua nga Tucker et al dhe u implementua në Stacionin e Punës me Multiprocesor Firefly, një sistem multiprocesorësh i zhvilluar në qendrën kërkimore të Korporatës Digital Equipment.

Protokolli Firefly përdor një rekord përditësimi. Gjendjet e mundshme të linjës së cache janë të njëjta me gjendjet e protokollit të Illinois (Figura 11-12). Dallimi është se strategjia e kthimit të kthimit zbatohet vetëm për rreshtat në gjendjen PD ose E, ndërsa "shkrimi përmes" zbatohet për rreshtat në gjendjen S. Memoria e fshehtë e vëzhguesit përdorin shkrimin për të përditësuar kopjet e tyre. Përveç kësaj, vëzhgimi i cache-ve që gjejnë një kopje të linjës në to, thirret në një linjë të veçantë autobusi "të përbashkët" në mënyrë që kontrolluesi i shkrimit të vendosë se në çfarë gjendje do të vendosë rreshtin në të cilin është shkruar. Një linjë "e përbashkët" në një mungesë të cache-it të leximit shërben për të informuar kontrolluesin lokal të cache-it nga erdhi kopja e rreshtit: nga memoria kryesore ose një cache tjetër. Kështu, gjendja S zbatohet vetëm për të dhënat që ndahen në të vërtetë.

https://pandia.ru/text/78/264/images/image018_2.jpg "width =" 491 lartësi = 316 "lartësi =" 316">

Oriz. 11.13. Protokolli i Dragoit

ProtokolliMESI. Sigurisht ndër protokollet e njohura Protokolli më i popullarizuar i mbikëqyrjes është MESI (Modified / Exclusive / Shared / Invalid). Protokolli MESI përdoret gjerësisht në sistemet komerciale të mikroprocesorëve, si ato të bazuara në mikroprocesorët Pentium dhe PowerPC. Pra, mund të gjendet në cache-in e brendshëm dhe kontrolluesin cache e jashtme i82490 i mikroprocesorit Pentium, në procesorin i860 dhe kontrolluesin e cache MC88200 nga Motorola.

Protokolli u krijua për cache-regjistrimet. Një nga objektivat kryesore të protokollit MESI është të shtyjë kthimin e të dhënave të kapsuluara në memorien kryesore BC për aq kohë sa të jetë e mundur. Kjo përmirëson performancën e sistemit duke minimizuar transferimet e nevojshme të informacionit midis cache-ve dhe memories kryesore. Protokolli MESI i cakton çdo rreshti cache një nga katër gjendjet, të cilat kontrollohen nga dy bitët e gjendjes MESI në etiketën e asaj linje. Statusi i linjës cache mund të ndryshohet si nga procesori, për të cilin kjo memorie e memories është lokale, ashtu edhe nga procesorët e tjerë të skemës multiprocesorike. Menaxhimi i gjendjes së linjave të cache mund t'u caktohet pajisjeve logjike të jashtme. Një nga versionet e protokollit parashikon përdorimin e skemës së konsideruar më parë të shkrimit një herë.

Të përbashkëta(S, Shared) - një linjë cache përputhet me një linjë të ngjashme në memorien kryesore (të dhënat janë të vlefshme) dhe mund të jenë të pranishme në një ose më shumë nga cache-të e tjera.

E pavlefshme(I, Invalid) - Një linjë memorie e shënuar si e pavlefshme nuk përmban të dhëna të vlefshme dhe bëhet logjikisht e paarritshme.

Oriz. 11.15. Sekuenca e ndryshimeve të gjendjes në protokollin MESI: a - procesori 1 lexon x;

b- procesori 2 lexon x; c - procesori 1 bën regjistrimin e parë në x;

G- procesori 1 bën një tjetër rekord në x

Rendi në të cilin një linjë cache kalon nga një gjendje në tjetrën varet nga: statusi aktual i linjës, operacioni që po kryhet (lexoni ose shkruani), rezultati i një thirrjeje memorie (goditje ose mungesë) dhe, së fundi, nëse linja është e ndarë apo jo. Në fig. 11.14 tregon një diagram të tranzicioneve kryesore pa marrë parasysh mënyrën e shkrimit një herë.

Supozoni se një nga procesorët bën një kërkesë leximi nga një linjë që nuk është aktualisht në memorien e saj lokale (read miss). Kërkesa do të transmetohet përmes autobusit. Nëse asnjë nga cache nuk përmban një kopje të linjës së kërkuar, atëherë nuk do të ketë përgjigje nga kontrollorët e monitorimit të procesorëve të tjerë, rreshti do të lexohet në cache-in e procesorit kërkues nga memoria kryesore dhe kopja do të caktohet statusi E. Nëse ndonjë nga cache-të lokale përmban kopjen që kërkoni, do të merret një përgjigje nga kontrolluesi përkatës i gjurmuesit që tregon aksesin në vargun e përbashkët. Të gjitha kopjet e linjës në fjalë në të gjitha cache-të do të transferohen në gjendjen S, pavarësisht se në çfarë gjendje ishin më parë (I, E ose S).

Kur një procesor bën një kërkesë për shkrim për një varg që nuk është në memorien e tij lokale (memoria e fshehtë) e tij, vargu duhet të lexohet nga memoria kryesore (RAM) dhe të përditësohet përpara se të ngarkohet në memorien e memories. Përpara se procesori të mund të ngarkojë një rresht, ai duhet të sigurojë që një version i vlefshëm i të dhënave të jetë në të vërtetë në memorien kryesore, domethënë që asnjë kopje e modifikuar e rreshtit të mos jetë në memorien e tjera të memories. Sekuenca e veprimeve të formuara në këtë rast quhet lexon me synimin për të modifikuartions(RWITM, Lexo me qëllim për të modifikuar). Nëse një kopje e linjës së kërkuar është gjetur në një nga memoriet e fshehta, dhe në gjendjen M, atëherë procesori me këtë kopje ndërpret sekuencën RWITM dhe rishkruan rreshtin në OP, pas së cilës ndryshon gjendjen e linjës në cache-in e tij. në I. Më pas sekuenca RWITM rifillon dhe bëhet duke ri-aksesuar në kujtesën kryesore për të lexuar rreshtin e përditësuar. Gjendja përfundimtare e linjës do të jetë M, në të cilën nuk ka asnjë kopje më të besueshme të saj as në OP ose në cache të tjera. Nëse një kopje e linjës ekzistonte në një cache tjetër dhe nuk kishte një gjendje M, atëherë një kopje e tillë hidhet poshtë dhe qasja në memorien kryesore kryhet menjëherë.

Një cache e lexuar nuk e ndryshon statusin e rreshtit që lexohet. Nëse procesori kryen akses shkrimi në një linjë ekzistuese në gjendjen S, ai transmeton në autobus për të informuar memoriet e tjera, përditëson linjën në cache-in e tij dhe e vendos atë në statusin M. Të gjitha kopjet e tjera të linjës zhvendosen në gjendjen I. Nëse procesori kryen hyrje të shkrimit në linjë në gjendjen E, e vetmja gjë që duhet të bëjë është të shkruajë në rresht dhe të ndryshojë gjendjen e saj në M, pasi nuk ka kopje të tjera të linjës në sistem.

Në fig. 11.15 tregon një sekuencë tipike të ngjarjeve në një sistem me dy procesorë që kërkojnë qasje në qelizën x. Qasja në çdo qelizë në një linjë cache konsiderohet një qasje në të gjithë linjën.

Le të ilustrojmë fazat kur procesori 2 përpiqet të lexojë përmbajtjen e qelizës x "(Fig. 11.16). Së pari, ka një mungesë leximi në cache dhe procesori përpiqet të hyjë në memorien kryesore. Procesori 1 monitoron autobusin, zbulon hyrjen në një qelizë, një kopje e së cilës është në memorien e saj të memories dhe është në




Oriz. 11.16. Kalimi nga gjendja E në gjendjen S në protokollin MESI: a- procesori 2

lexon x; b - procesori 1 prodhon shkruaj përsëri x "në memorien kryesore;

i - procesori 2 lexon x "nga memoria kryesore

gjendjen M, kështu që bllokon operacionin e leximit nga procesori 2. Më pas procesori 1 rishkruan linjën që përmban x "në OP dhe liron procesorin 2 në mënyrë që të mund të përsërisë hyrjen në memorien kryesore. Tani procesori 2 merr linjën që përmban x" dhe e ngarkon atë në cache-in tuaj. Të dy kopjet janë shënuar si S.

Deri më tani, është marrë në konsideratë një version i protokollit MESI për të shkruar një herë. Duke marrë parasysh një shkrim të vetëm, diagrami i gjendjes i paraqitur në Fig. 11.14, pak i modifikuar. Të gjitha gabimet e cache-it të leximit shkaktojnë një kalim në gjendjen S. Goditja e parë e shkrimit pasohet nga një kalim në gjendjen E (një i ashtuquajturi tranzicion për të shkruar një herë). Goditja tjetër gjatë shkrimit sjell një ndryshim në statusin e rreshtit në M.

Protokollet e bazuara në drejtori

Protokollet e koherencës të bazuara në drejtori tipike për sistemet komplekse multiprocesorike me memorie të përbashkët, ku procesorët janë të bashkuar nga një rrjet ndërlidhës hierarkik shumëfazësh. Kompleksiteti i topologjisë e bën përdorimin e protokolleve të mbikqyrjes me mekanizmin e tyre të transmetimit të shtrenjtë dhe joefikas.

Protokollet e bazuara në drejtori mbledhin dhe gjurmojnë informacione në lidhje me përmbajtjen e të gjitha cache-ve lokale. Protokolle të tilla zakonisht zbatohen me një kontrollues të centralizuar që është fizikisht pjesë e kontrolluesit kryesor të memories. Vetë libri i referencës ruhet në memorien kryesore. Kur kontrolluesi lokal i cache-it bën një kërkesë, kontrolluesi i drejtorisë zbulon një kërkesë të tillë dhe gjeneron udhëzimet e nevojshme për transferimin e të dhënave nga memoria kryesore ose nga një memorie tjetër lokale e memories që përmban Versioni i fundit të dhënat e kërkuara. Kontrolluesi qendror është përgjegjës për përditësimin e informacionit në lidhje me gjendjen e cache-ve lokale, kështu që duhet të njoftohet për çdo veprim lokal që mund të ndikojë në gjendjen e bllokut të të dhënave.

Drejtoria përmban shumë shënime që përshkruajnë çdo vendndodhje të memories së memories që mund të ndahet nga procesorët e sistemit. Referenca bëhet sa herë që njëri prej procesorëve ndryshon një kopje të një qelize të tillë në memorien e tij lokale. Në këtë rast, informacioni nga direktoria është i nevojshëm për të zhvlerësuar ose përditësuar kopjet e qelizës së ndryshuar (ose të gjithë rreshtit që përmban këtë qelizë) në cache të tjera lokale ku ekzistojnë kopje të tilla.

Për çdo varg të përbashkët, një kopje e të cilit mund të vendoset në memorien e memories, një hyrje ndahet në drejtorinë që ruan treguesit në një kopje të këtij vargu. Përveç kësaj, një bit përditësimi (D) theksohet në çdo rekord, duke treguar nëse kopja është e ndotur (D = 1 - e ndyrë) ose e pastër (D = 0 - e pastër), domethënë nëse përmbajtja e rreshtit në cache kanë ndryshuar.memoria pasi është ngarkuar aty. Ky bit tregon nëse procesori është i autorizuar të shkruajë në këtë varg.

Aktualisht, ekzistojnë tre mënyra të njohura për të zbatuar protokollet e koherencës së cache-ve të bazuara në drejtori: referenca e plotë, referenca e kufizuar dhe referenca e bashkuar.

Në protokoll referencë e plotë një direktori e vetme e centralizuar ruan informacione për të gjitha cache. Referenca ruhet në memorien kryesore.


Oriz. 11.17. Protokolli i Koherencës së Cache-it të Referencës së plotë

Në një sistem me N përpunues, çdo hyrje në drejtori do të përmbajë N tregues njëbitësh. Nëse ka një kopje të të dhënave në memorien e memories lokale përkatëse, biti i treguesit vendoset në 1, përndryshe - në 0. Diagrami me referencën e plotë është paraqitur në Fig. 11.17. Kjo supozon se ka një kopje të rreshtit në çdo cache. Secilës rresht i janë caktuar dy tregues statusi: një bit i vlefshëm (V, i vlefshëm) dhe një bit pronësie (P, privat). Nëse informacioni në varg është i saktë, biti V vendoset në 1. Një vlerë e vetme e bitit P tregon se këtë procesor i është dhënë e drejta për të shkruar në rreshtin përkatës të memories së tij lokale të memories.

Supozoni se procesori 2 shkruan në vendndodhjen x. Fillimisht, procesori nuk ka marrë ende leje për një regjistrim të tillë. Ai formon një kërkesë për kontrolluesin e drejtorisë dhe pret lejen për të vazhduar funksionimin. Në përgjigje të një kërkese për të gjitha cache ku ka kopje të rreshtit që përmban qelizën x, lëshohet një sinjal për të hedhur poshtë kopjet ekzistuese. Çdo cache që merr këtë sinjal rivendos bitin e vlefshmërisë së vargut të nulshëm (V-bit) në 0 dhe kthen një sinjal konfirmimi në kontrolluesin e drejtorisë. Pas marrjes së të gjitha sinjaleve të konfirmimit, kontrolluesi i drejtorisë vendos bitin e modifikimit (D-bit) të hyrjes përkatëse të drejtorisë në një dhe i dërgon një sinjal procesorit 2 për të mundësuar shkrimin në qelizën x. Nga kjo pikë e tutje, procesori 2 mund të vazhdojë të shkruajë në kopjen e tij të qelizës x, si dhe në memorien kryesore, nëse skema e shkrimit është implementuar në cache.

Problemet kryesore të protokollit të plotë të drejtorisë lidhen me sasi e madhe rekorde. Për çdo qelizë në referencën e sistemit të procesorëve N, kërkohet N + 1 bit, domethënë me një rritje të numrit të përpunuesve, koeficienti i kompleksitetit rritet në mënyrë lineare. Protokolli i plotë i drejtorisë lejon çdo cache lokale të ketë kopje të të gjitha qelizave të përbashkëta. Në praktikë, një mundësi e tillë nuk mbetet gjithmonë në kërkesë - në çdo moment, vetëm një ose disa kopje janë zakonisht të rëndësishme. V protokollme referencë të kufizuar Kopjet e një rreshti të vetëm mund të jenë vetëm në një numër të kufizuar të cache - nuk mund të ketë më shumë se NS kopjet e vargut, ndërsa numri i treguesve në hyrjet e direktoriumit reduktohet në n (n< N ). Për të identifikuar në mënyrë unike memorien e memories që ruan kopjen, treguesi në vend të një biti duhet të përbëhet nga log2 N bit dhe gjatësia totale e treguesve në çdo hyrje direktorie, në vend të N bit do të jetë i barabartë NSlog2N pak. Me një vlerë konstante NS shkalla e rritjes së faktorit të kompleksitetit të një drejtorie të kufizuar ndërsa madhësia e sistemit rritet është më e ulët se në rastin e një marrëdhënie lineare.

Kur më shumë se NS kopjet, kontrolluesi vendos se cilin prej kopjeve të mbajë dhe cilin të anulojë, pas së cilës bëhen ndryshimet përkatëse në indekset e hyrjeve në direktori.

Metoda drejtoritë e lidhura synon gjithashtu të kompresojë vëllimin e librit të referencës. Ai përdor një listë të lidhur për të ruajtur të dhënat, të cilat mund të zbatohen si një e lidhur (njëdrejtimëshe) dhe e lidhur dyfish (me dy drejtime).

Oriz. 11.18. Protokolli i Koherencës së Cache-së së Drejtorisë së Bashkuar

Në një listë të lidhur veçmas (Figura 11.18), çdo hyrje e drejtorisë përmban një tregues për një kopje të vargut në një nga memoriet lokale. Kopje të rreshtave me të njëjtin emër në memorie të ndryshme sistemet formojnë një zinxhir të njëanshëm. Për ta bërë këtë, etiketat e tyre ofrojnë një fushë të veçantë ku futet një tregues në memorien e memories që përmban kopjen tjetër të zinxhirit. Një kufizues i veçantë vendoset në etiketën e kopjes së fundit të zinxhirit. Referenca e bashkuar lejon vargjet me gjatësi N, domethënë mbështet N kopjet e qelizës. Kur krijoni një kopje tjetër, zinxhiri duhet të shkatërrohet dhe në vend të tij duhet të formohet një i ri. Supozoni, për shembull, se procesori 5 nuk ka një kopje të qelizës x dhe kthehet në memorien kryesore për të. Treguesi në direktori ndryshohet në mënyrë që të tregojë në cache numrin 5, dhe treguesin në cache 5 - në mënyrë që të tregojë në cache 2. Për këtë, kontrolluesi kryesor i memories, së bashku me të dhënat e kërkuara, duhet gjithashtu të transferojë një tregues. në cache në memorie cache 5 - memorie me numër 2. Vetëm pasi të jetë formuar e gjithë struktura e zinxhirit, procesori 5 do të marrë lejen për të hyrë në qelizën x. Nëse procesori shkruan në një qelizë, një sinjal zhvlerësimi dërgohet në rrugën e përcaktuar nga zinxhiri përkatës i treguesve. Zinxhiri duhet të përditësohet kur një kopje fshihet nga çdo memorie e memories.

Një listë e lidhur dyfish mbështet treguesit përpara dhe prapa. Kjo ju lejon të futni në mënyrë më efikase tregues të rinj në zinxhir ose të fshini prej tij që nuk nevojiten më, por kërkon ruajtjen e një numri më të madh treguesish.

Skemat e bazuara në drejtori vuajnë nga mbingarkimi në kontrolluesin e centralizuar si dhe nga ngarkesa e komunikimit në shtigjet ndërmjet kontrolluesve lokalë të cache-it dhe kontrolluesit qendror. Sidoqoftë, ato rezultojnë të jenë shumë efektive në sistemet multiprocesorike me topologji komplekse të ndërlidhjes midis procesorëve, ku protokollet e monitorimit nuk mund të zbatohen.

Më poshtë është një përshkrim i shkurtër i protokolleve aktuale aktuale për sigurimin e koherencës së memories së memories bazuar në librin e referencës. Për njohje të hollësishme me këto protokolle, jepen lidhje me burimet letrare përkatëse.

ProtokolliTang. Këtu ka një referencë të centralizuar globale që përmban kopje e plotë të gjitha informacionet nga drejtoritë e secilit prej memorieve lokale. Kjo çon në problem fyte të ngushta dhe gjithashtu kërkon kërkimin e hyrjeve përkatëse.

ProtokolliCensier. Skema e referencës Censier përdor një vektor bit tregues për të treguar se cilët procesorë mbajnë një kopje lokale të një blloku të caktuar të memories. Ekziston një vektor i tillë për çdo bllok memorie. Disavantazhet e kësaj metode janë se është joefektive me një numër të madh procesorësh dhe, përveç kësaj, kërkohet qasja në memorien kryesore për të përditësuar linjat e cache.

ProtokolliArchibald. Skema e referencës Archibald është një palë skematikash të ndërlikuara për rrjetet e procesorëve të organizuar në mënyrë hierarkike. ME pershkrim i detajuar ky protokoll mund të gjendet në.

ProtokolliStenstrom. Manuali Stenstrom ofron gjashtë gjendje të vlefshme për çdo bllok të dhënash. Ky protokoll është relativisht i thjeshtë dhe i përshtatshëm për çdo topologji të ndërlidhjes së procesorit. Referenca ruhet në memorien kryesore. Në rast të mungesës së cache-it të leximit, aksesohet memoria kryesore, e cila dërgon një mesazh në cache që zotëron bllokun, nëse ka. Pas marrjes së këtij mesazhi, pronari i cache-it dërgon të dhënat e kërkuara dhe gjithashtu përcjell një mesazh tek të gjithë procesorët e tjerë që ndajnë këto të dhëna në mënyrë që ata të përditësojnë vektorët e tyre të biteve. Skema nuk është shumë efikase me një numër të madh procesorësh, megjithatë aktualisht është protokolli më i pjekur dhe më i përdorur i bazuar në drejtori.

Kontrolli pyetje

1. Analizoni ndikimin e veçorive të AC me memorie të përbashkët dhe AC me memorie të shpërndarë në zhvillimin e softuerit. Përse këto VS quhen përkatësisht të lidhura fort dhe të lidhura dobët?

2. Shpjegoni idenë e alternimit të adresave të memories. Cilat janë konsideratat për zgjedhjen e një mekanizmi të shpërndarjes së adresave? Si lidhet me klasën e arkitekturës para Krishtit?

3. Jepni karakteristikat krahasuese aksese homogjene dhe heterogjene
në kujtesë.

4. Cilat janë avantazhet e arkitekturës SOMA?

5. Kryerja e një analize krahasuese të modeleve me akses koherent cache dhe cache-inkoherent në memorien heterogjene.

6. Formuloni avantazhet dhe disavantazhet e arkitekturës pa akses të drejtpërdrejtë në memorien e largët.

7. Shpjegoni kuptimin e kujtesës së shpërndarë dhe të përbashkët.

8. Zhvilloni shembullin tuaj për të ilustruar problemin e koherencës së cache-it.

9. Përshkruani veçoritë mënyra programore zgjidhjet e problemit të koherencës, theksojnë pikat e forta dhe të dobëta të tyre.

10. Krahasoni teknikat e shkrimit për të shkruar kundrejt fshirjes dhe shkrimit për transmetim, duke theksuar meritat dhe të metat e tyre.

11. Jepni një përshkrim krahasues të metodave për ruajtjen e koherencës në sistemet multiprocesorike.

12. Kryeni një analizë krahasuese të protokolleve të vëzhgimit që njihni.

13. Cili nga protokollet e vëzhgimit është më i popullarizuari? Arsyetoni arsyet e rritjes së interesit për të.

14. Jepni një përshkrim të hollësishëm të protokolleve të koherencës bazuar në librin e referencës dhe metodat e zbatimit të tyre. Cilat janë ndryshimet midis këtyre protokolleve dhe protokolleve të vëzhgimit?

Tabela 9.1. Hierarkia e nënsistemit të memories PC
Lloji i memories viti 1985 viti 2000
Koha e marrjes së mostrave Vëllimi tipik Çmimi / Bajt Koha e marrjes së mostrave Vëllimi tipik Çmimi / Bajt
1 Kujtesa super-operative (regjistrat) 0,2 5 ns 16/32 bit $ 3 - 100 0,01 1 ns 32/64/128 bit $ 0,1 10
2 Ruajtja e tamponit me shpejtësi të lartë (cache) 20 100 ns 8 Kb - 64 Kb ~ $ 10 0,5 - 2 ns 32 Kb 1 Mb $ 0,1 - 0,5
3 Kujtesa operative (kryesore). ~ 0,5 ms 1 MB - 256 MB $ 0,02 1 2 ns 20 ns 128 MB - 4 GB $ 0,01 0,1
4 Magazinimi i jashtëm (ruajtje masive) 10 - 100 ms 1 MB - 1 GB $ 0,002 - 0,04 5 - 20 ms 1 GB - 0,5 TB $ 0,001 - 0,01

Regjistrat e procesorit përbëjnë kontekstin e tij dhe ruajnë të dhënat e përdorura nga udhëzimet aktualisht ekzekutuese të procesorit. Regjistrat e procesorëve zakonisht arrihen nga emërtimet e tyre kujtese në udhëzimet e procesorit.

Cache përdoret për të përputhur shpejtësinë e CPU-së dhe memories kryesore. Sistemet kompjuterike përdorin një cache me shumë nivele: cache e nivelit I (L1), cache e nivelit II (L2), etj. Sistemet e desktopit zakonisht përdorin një memorie të fshehtë me dy nivele, ndërsa sistemet e serverëve përdorin një memorie memorie me tre nivele. Cache ruan udhëzime ose të dhëna që ka të ngjarë t'i dërgohen procesorit për përpunim në të ardhmen e afërt. Prandaj, funksionimi i memories cache është transparent ndaj softuerit memorie cache zakonisht nuk disponohet programatikisht.

RAM dyqanet, si rregull, funksionalisht të plota modulet e softuerit(kerneli i sistemit operativ, programet e ekzekutueshme dhe bibliotekat e tyre, drejtuesit e pajisjeve, etj.) dhe të dhënat e tyre, të përfshira drejtpërdrejt në funksionimin e programeve, dhe përdoren gjithashtu për të ruajtur rezultatet e llogaritjeve ose përpunimit të të dhënave të tjera përpara se t'i dërgoni në një pajisje të jashtme. memorie, në daljen e të dhënave të pajisjes ose ndërfaqet e komunikimit.

Çdo qelizë kujtesë e gjallë caktuar një adresë unike. Metodat e shpërndarjes së kujtesës organizative u ofrojnë programuesve aftësinë për të përdorur në mënyrë efikase të gjithë sistemi kompjuterik... Këto metoda përfshijnë modelin e kujtesës së vazhdueshme ("të sheshtë") dhe modelin e memories së segmentuar. Duke përdorur model solid(modeli i sheshtë) i memories, programi funksionon me një hapësirë ​​të vetme adresash të vazhdueshme, një hapësirë ​​​​lineare adresash, në të cilën qelizat e memories numërohen në mënyrë sekuenciale dhe të vazhdueshme nga 0 në 2n-1, ku n është kapaciteti i CPU-së në adresë. Kur përdorni një model të segmentuar për një program, memoria përfaqësohet nga një grup blloqesh adresash të pavarura të quajtura segmente. Për të adresuar një bajt memorie, një program duhet të përdorë një adresë logjike të përbërë nga një përzgjedhës segmenti dhe një zhvendosje. Përzgjedhësi i segmentit zgjedh një segment specifik dhe zhvendosja tregon një qelizë specifike në hapësirën e adresave të segmentit të zgjedhur.

Artikujt kryesorë të lidhur