Hvad er en hukommelsesbarriere?

Historisk set har CPU'er været perfekt sekventielle maskiner. Dette er meget logisk og let at forstå, men kan være et præstationsproblem. I årenes løb har der været mange geniale justeringer af CPU-design for at udvinde så meget ydeevne som muligt fra siliciumwafers. En af de mere interessante er dog udførelse i uorden. I CPU'er, der ikke er i orden, behøver instruktionerne ikke nødvendigvis at blive udført i den rækkefølge, de udstedes i.

Står i orden

Det vigtigste præstationsproblem, som en in-order CPU løber ind i, kaldes en pipeline stall. Dette sker, når en instruktion er afhængig af en eller anden hukommelse, men denne hukommelse er ikke direkte tilgængelig i et register. I dette tilfælde skal CPU'en finde denne værdi i hukommelsen. CPU-cachen tjekkes først, da disse er det hurtigste hukommelsesniveau. Hvis værdien ikke er der, kontrolleres systemets RAM. I løbet af denne tid skal CPU'en sidde inaktiv, da den hukommelsesafhængige instruktion skal udføres i rækkefølge før de følgende instruktioner.

Ydeevnepåvirkningen af ​​en rørledningsstop er måske ikke så slem, men den kan også være relativt alvorlig. For eksempel kan L1-cachen typisk returnere et resultat i størrelsesordenen 5 CPU-cyklusser. L2-cachen kan tage 20 cyklusser, L3 omkring 200 cyklusser og system-RAM omkring 400 cyklusser. I betragtning af at en CPU kan fungere ved omkring 5 GHz, det vil sige 5 milliarder clock-cyklusser i sekundet, er selv 400 cyklusser ikke så slemt (0,000008%). Men hvis du har mange instruktioner, der skal henvise til data længere nede i cache-niveauerne, kan den kumulative effekt forårsage en mærkbar afmatning.

Udelukket udførelse og omdøbning af register

Udførelse uden for orden er en teknik, der gør det muligt for planlæggeren at omarrangere instruktionerne i sin kø. Gennem denne genbestilling kan den vælge at prioritere specifikke tråde frem for andre. Det kan også skubbe instruktioner tilbage i køen, når de har en dataafhængighed, der endnu ikke er blevet opfyldt. Dette forhindrer så vidt muligt rørledningsstop, hvilket minimerer tomgangscyklusser.

Udelukket udførelse kræver en funktion kaldet registeromdøbning. CPU'en kan få adgang til data i registre inden for en enkelt cyklus. Registre bruges til at lagre data, der læses og skrives. Det er dog vigtigt at sikre, at computeren som helhed ser alt, der sker i den logiske rækkefølge, ikke i den ude af rækkefølge, CPU-cyklusoptimeret rækkefølge. For at muliggøre dette har CPU'er mange flere logiske registre, end CPU-arkitekturen kræver.

Data, der skal udskrives, men som har en "tidligere" instruktion, som endnu ikke er afsluttet, lægges i et beholdningsregister. Disse data overføres ikke til et andet register, når ordren er ordnet af sig selv. I stedet ændres navnet på registret til det register, det skal stå i. Det svarer lidt til at tilberede en dessert før hovedretten, men så opbevare den i køleskabet, indtil den skal serveres.

Disse logiske registre er fuldstændig uadresserede. CPU'en kan kun virkelig adressere de logiske registre, der i øjeblikket deler navnet på de arkitektoniske registre. Når det er sagt, er CPU'en også opmærksom på dem nok til, at hvis andre omarrangerede instruktioner er afhængige af dataene i det logiske holding-register, kan de bruge dem i stedet for de "forældede" data i det arkitektoniske register på det pågældende empiriske tidspunkt.

Hukommelsesbarrierer

En hukommelsesbarriere – også kaldet en membar, memory fence eller hegnsinstruktion – er en instruktion i computerkode. Det giver en programmør mulighed for at håndhæve en ordrebegrænsning på hukommelsesoperationer udstedt før og efter hukommelsesbarrieren. Hukommelsesbarrieren instruerer CPU-planlæggeren om at sikre, at alle instruktioner behandles før enhver instruktion efter barrieren. Dette gøres for at sikre, at vigtige operationer udføres i den rigtige rækkefølge.

Generelt på moderne computere burde dette ikke være nødvendigt. Udelukket udførelse og omdøbning af registreringsdatabasen er veletablerede og modne felter. Ikke desto mindre kan en hukommelsesbarriere være nyttig for ældre, mindre sofistikerede, ude af drift processorer eller brugt i kritiske hukommelsesoperationer.

Hukommelsesbarrierer kan komme med en vis ydeevneskade. Dette skyldes, at de aktivt forhindrer CPU-planlæggeren i at optimere specifikke dele af instruktionsflowet. Dette øger chancen for en rørledningsstop.

Konklusion

En hukommelsesbarriere er en instruktion, der sikrer en bestillingsbegrænsning på hukommelsesoperationer. Dette er vigtigt, fordi processorer, der ikke er i orden, kan omarrangere specifikke instruktioner. Selvom omdøbning af registreringsdatabasen er veletableret som en metode til at sikre hukommelsesintegritet i dette miljø, kan det være nyttigt at sikre det manuelt.

Hukommelsesbarrieren tvinger CPU-planlæggeren til at sikre, at instruktionerne er fuldført før enhver instruktion efter barrieren. Dette forhindrer hukommelseshandlinger i at blive omorganiseret. Det forhindrer også CPU'en i at optimere instruktionsflowet, hvilket kan påvirke ydeevnen.


Sådan klones en harddisk

Sådan klones en harddisk

I den moderne digitale tidsalder, hvor data er et værdifuldt aktiv, kan kloning af en harddisk på Windows være en afgørende proces for mange. Denne omfattende guide

Sådan repareres driveren WUDFRd kunne ikke indlæses på Windows 10?

Sådan repareres driveren WUDFRd kunne ikke indlæses på Windows 10?

Står du over for fejlmeddelelsen, mens du starter din computer, som siger, at driveren WUDFRd ikke kunne indlæses på din computer?

Sådan rettes NVIDIA GeForce Experience-fejlkode 0x0003

Sådan rettes NVIDIA GeForce Experience-fejlkode 0x0003

Oplever du NVIDIA GeForce-oplevelsesfejlkode 0x0003 på dit skrivebord? Hvis ja, læs bloggen for at finde ud af, hvordan du løser denne fejl hurtigt og nemt.

Hvad er SMPS?

Hvad er SMPS?

Lær, hvad SMPS er og betydningen af ​​forskellige effektivitetsvurderinger, før du vælger en SMPS til din computer.

Hvorfor tænder min Chromebook ikke

Hvorfor tænder min Chromebook ikke

Få svar på spørgsmålet: Hvorfor tænder min Chromebook ikke? I denne nyttige vejledning til Chromebook-brugere.

Sådan rapporteres phishing-svindel til Google

Sådan rapporteres phishing-svindel til Google

Lær, hvordan du rapporterer en svindler til Google for at forhindre dem i at snyde andre med denne vejledning.

Roomba stopper, stikker og drejer rundt – Fix

Roomba stopper, stikker og drejer rundt – Fix

Løs et problem, hvor din Roomba robotstøvsuger stopper, sætter sig fast og bliver ved med at dreje rundt.

Sådan ændres grafikindstillinger på Steam Deck

Sådan ændres grafikindstillinger på Steam Deck

Steam Deck tilbyder en robust og alsidig spiloplevelse lige ved hånden. Dog for at optimere dit spil og sikre det bedst mulige

Hvad er isolationsbaseret sikkerhed?

Hvad er isolationsbaseret sikkerhed?

Ville dykke ned i et emne, der bliver stadig vigtigere i cybersikkerhedens verden: isolationsbaseret sikkerhed. Denne tilgang til

Sådan bruger du Auto Clicker til Chromebook

Sådan bruger du Auto Clicker til Chromebook

I dag skulle du dykke ned i et værktøj, der kan automatisere gentagne klikopgaver på din Chromebook: Auto Clicker. Dette værktøj kan spare dig tid og