CCoW: Optimering af kopi-på-skriv i betragtning af den rumlige lokalitet i arbejdsbelastninger, del 4

Apr 03, 2024

3.3. Sporing af adgang til forudkopierede sider

Det er meningen, at CCoW skal afskrive overhead for hyppig sidefejlshåndtering. Kopiering af sider på forhånd fører imidlertid til et andet problem: sporing af sideadgang efter kopien.

Der er en stærk sammenhæng mellem fejlbehandling og hukommelse. For de fleste mennesker ses fejl ofte som en dårlig ting, men de kan være muligheder for os at lære og vokse. Ved at håndtere fejl korrekt kan vi forbedre vores hukommelse og hjælpe os med bedre at forstå og reagere på lignende situationer.

En måde at håndtere fejl på er at reflektere og analysere. Når vi laver en fejl, bør vi tage os tid til at reflektere over, hvordan fejlen opstod, og hvad vi kan gøre for at forhindre en lignende fejl i at ske igen. Gennem refleksion kan vi identificere de grundlæggende årsager til problemer og udvikle modforanstaltninger til at løse dem. Denne form for analyse handler ikke kun om fejl, den kan hjælpe os med at træffe bedre beslutninger i andre livssituationer og hjælpe os med at forbedre vores færdigheder og evner.

En anden måde at håndtere fejl på er at tillade dig selv at acceptere dem og komme videre. Vi bør ikke lade fejltagelser bremse os eller frustrere os. I stedet bør vi se dem som muligheder for vækst, tillade os selv at lære af vores fejl og fortsætte med at forbedre os. Hvis vi kan acceptere fejl og håndtere dem med en positiv indstilling, kan vi opbygge en stærk tankegang og selvtillid, hvilket er meget vigtigt for at bevare en god hukommelse.

Endelig kan vi styrke vores hukommelse ved at dele vores fejl. Når vi fortæller andre om fejl, vi har begået, har vi en tendens til at huske disse begivenheder dybere. Dette skyldes, at når vi fortæller andre, er vi nødt til at gøre tingene klarere og huske alle detaljer i fejlen. På denne måde kan vi bedre forstå disse fejl og forhindre dem i at ske igen.

Sammenfattende er der en stærk sammenhæng mellem fejlbehandling og hukommelse. Ved at håndtere fejl korrekt kan vi styrke vores hukommelse, forbedre vores færdigheder og evner og blive bedre mennesker. Vi bør betragte fejl som en mulighed, aktivt møde vanskeligheder og lære og vokse af dem. Det kan ses, at vi skal forbedre hukommelsen, og Cistanche deserticola kan forbedre hukommelsen markant, fordi Cistanche deserticola er et traditionelt kinesisk medicinsk materiale, der har mange unikke effekter, hvoraf en er at forbedre hukommelsen. Virkningen af ​​Cistanche deserticola kommer fra de mange aktive ingredienser, den indeholder, herunder garvesyre, polysaccharider, flavonoidglycosider osv. Disse ingredienser kan fremme hjernens sundhed gennem en række forskellige veje.

10 ways to improve memory

Klik på Kend korttidshukommelse, hvordan du forbedrer

I det originale kopi-på-skriv-skema fanges den første skrivning til hver side af sidefejlbehandleren.

Kun den defekte side kopieres, og systemet kan præcist spore hver sideadgang gennem sidefejlbehandleren. På den anden side, når systemet kopierer hele regionen, bliver alle sider i regionen tilknyttet processen med skriftlig tilladelse.

Således kan efterfølgende skrivninger til de kopierede sider finde sted uden at udløse sidefejlhåndteringsmekanismen, så systemet kan ikke spore adgangen til de kopierede sider. Dette kan være problematisk, når processen udfører gafler gentagne gange. Antag, at en region har høj rumlig lokalitet, og en epoke defineres som perioden mellem to gafler.

Den høje lokalitet kan fanges ved at tælle sidefejl, der er sket i regionen. Antag så, at processen skaber en ny proces med en gaffel. Når en ny epoke startes med gaflen, vil den første skriveadgang til en af ​​siderne i regionen starte CCoW, kopiering af alle sider i regionen. Nu har processen alle sider med skrivetilladelse, og der genereres ingen yderligere sidefejl fra regionen indtil slutningen af ​​epoken.

Når en ny epoke startes igen, anses regionen for at have lav dækning i epoken, da regionen kun har én kopi-på-skriv-side. Således behandles hver skrivning til regionen gennem den originale kopi-på-skriv-mekanisme pr. side, hvilket kompromitterer muligheden for ydeevneoptimering, selvom regionen har en høj lokalitet.

Bemærk, at regionen anses for at have en høj lokalitet i den næste epoke igen, og processen gentages for at skifte situationen. For at løse dette problem har vi brug for en mekanisme til at spore sideadgang efter kopiering.

Denne undersøgelse foreslår at udnytte den beskidte bit i sidetabelindgangen (PTE). Generelt vedligeholder moderne arkitekturer forskellige oplysninger i PTE for hver side, og den beskidte bit er et af felterne, der understøttes af de fleste arkitekturer.

Når MMU behandler en skrivehukommelsesadgang, indstiller den automatisk den beskidte bit på den tilsvarende side. Dette indebærer omvendt, at når den beskidte bit for en side er indstillet, er siden blevet opdateret med skriveadgange.

Baseret på denne idé ændrede vi mekanismen til beregning af dækningen. I første omgang anses alle regioner for at være normale regioner. Under gaffelen beregnes dækningen for normale regioner med antallet af kopi-på-skriver ved hjælp af ligning (1).

ways to improve memory

Mens sidefejlen håndteres for en region med høj lokalitet, kopieres alle sider i regionen med deres beskidte bit ryddet. Endvidere er regionen markeret som en prækopieret region. Under forgrening beregnes dækningen for det kopierede område med antallet af beskidte sider i området som følger:

improve memory

Den beregnede dækning for hver region føres gennem gaflen og bruges som metrik for regionens rumlige lokalitet. Når der opstår en skrivesidefejl i en region, kontrollerer systemet dækningen af ​​regionen og kan forhåndskopiere sider for regioner med høj lokalitet.

Figur 2 illustrerer en situation, hvor dækning beregnes efter forkopier. Antag, at begge områder er kopieret (skraveret i rødt), og siderne 0, 2, 3, 4 og 11 alle har snavs-sættet.

Til at beregne dækningen under behandling af gaffelen, bruger systemet den beskidte bit i stedet for antallet af kopi-på-skriv, da regionerne kopieres i den aktuelle epoke. Således har region 0 en dækning på 66 %.
Hvorimod dækningen af ​​region 1 er 15 %. For at håndtere sidefejlen for side 3 kopieres område 0 igen, hvorimod sidefejlen for side 9 håndteres med den originale mekanisme. På denne måde kan vi holde regioner med høj lokalitet fra at glide ude af fokus.

boost memory

3.4. Indfangning af lokaliteten

Da sidefejlshandleren ligger på den ydeevnekritiske sti i operativsystemet, bør vi minimere overhead for implementeringen af ​​den foreslåede ordning.
Grundlæggende kræver CCoW en mekanisme til at beregne dækningen, og den enkleste måde at implementere denne funktion på er at spore de sider, der udløser sidefejl, med en bitmap, som vi har beskrevet i afsnit 3.2.

Mens en sidefejl håndteres, indstiller systemet den bit, der svarer til den defekte side. Under gaffelen scanner systemet bitmappet for at tælle antallet af fejltyper for hver region og beregner dækningen. Bitmap'et nulstilles efter beregningen.

Denne tilgang er enkel, men pålægger høje plads- og tidsbegrænsninger. Systemet bør bibeholde en en-bit bitmap-indgang for hver 4 KB-side og inspicere hele bitmappet under gaffelen. I betragtning af det enorme hukommelsesfodaftryk fra hukommelsesintensive applikationer, vil disse operationer medføre en høj overhead under gaffelen, hvilket opvejer præstationsfordelen ved CCoW. Vi optimerer denne implementering ved at udnytte egenskaberne ved sidefejlen.

Hvis der opstår en sidefejl fra en side, vil siden ikke pådrage sig yderligere sidefejl, før processen opretter en ny proces. Således kan hver side højst udløse en én-sides fejl, og for et område med n sider kan sidefejlene kun ske op til n gange. Dette indebærer, at det er tilstrækkeligt at tælle antallet af sidefejl pr. område til at beregne dækningen i stedet for at vedligeholde bitmappet for individuelle sider.

Derfor erstatter vi bitmap med fejltællerne. Hver region er forbundet med et par tællere som følger: en til at tælle sidefejl i den sidste epoke og en anden til at tælle sidefejl i den aktuelle epoke.

Førstnævnte bruges til at bestemme regionernes rumlige lokalitet, hvorimod sidstnævnte bruges til at overvåge den nuværende epokes rumlige lokalitet. Under gaffelen kopieres den aktuelle fejltæller til den forrige fejltæller.

Hvis et område kopieres i denne epoke, skrives antallet af beskidte sider i området til den forrige fejltæller i stedet. Tællerne udfyldes, mens der skabes et nyt virtuelt hukommelsesområde (VMA) og genvindes, når deres tilsvarende VMA er formindsket eller ikke-kortlagt. Denne optimering reducerer pladsoverheaden for CCoW fra en bit pr. side til nogle få bytes pr. region.

memory enhancement


For more information:1950477648nn@gmail.com

Du kan også lide