Hva er en minnebarriere?

Historisk sett har CPUer vært perfekt sekvensielle maskiner. Dette er svært logisk og lett å forstå, men kan være et ytelsesproblem. Gjennom årene har det vært mange geniale justeringer av CPU-design for å trekke ut så mye ytelse som mulig fra silisiumskiver. En av de mer interessante er imidlertid utførelse. I prosessorer som ikke er i orden, trenger instruksjoner ikke nødvendigvis å utføres i den rekkefølgen de blir utstedt.

Står i orden

Det viktigste ytelsesproblemet en in-order CPU støter på kalles en pipeline stall. Dette skjer når en instruksjon er avhengig av noe minne, men det minnet ikke er direkte tilgjengelig i et register. I dette tilfellet må CPU finne denne verdien i minnet. CPU-cachen sjekkes først da disse er det raskeste minnenivået. Hvis verdien ikke er der, kontrolleres system-RAM. I løpet av denne tiden må CPU-en sitte inaktiv, da den minneavhengige instruksjonen må fullføres i rekkefølge før følgende instruksjoner.

Ytelsespåvirkningen av en rørledningsstopp er kanskje ikke så ille, men den kan også være relativt alvorlig. For eksempel kan L1-cachen typisk returnere et resultat i størrelsesorden 5 CPU-sykluser. L2-bufferen kan ta 20 sykluser, L3 rundt 200 sykluser, og system-RAM rundt 400 sykluser. Gitt at en CPU kan operere på rundt 5GHz, det vil si 5 milliarder klokkesykluser per sekund, er til og med 400 sykluser ikke så ille (0,000008%). Men hvis du har mange instruksjoner som trenger å referere til data lenger ned i cache-nivåene, kan den kumulative effekten forårsake en merkbar nedgang.

Utelukkende utførelse og navn på register

Utførelse av utførelse er en teknikk som lar planleggeren omorganisere instruksjonene i køen. Gjennom denne omorganiseringen kan den velge å prioritere spesifikke tråder fremfor andre. Den kan også dytte instruksjoner tilbake i køen når de har en dataavhengighet som ennå ikke er oppfylt. Dette forhindrer rørledningsstopp så mye som mulig, og minimerer tomgangssykluser.

Utførelse av utførelse krever en funksjon som kalles navn på register. CPU-en kan få tilgang til data som holdes i registre i løpet av en enkelt syklus. Register brukes til å lagre data som leses og skrives. Det er imidlertid viktig å sikre at datamaskinen ser alt som skjer i den logiske rekkefølgen, ikke i den ut-av-ordne, CPU-syklusoptimaliserte rekkefølgen. For å muliggjøre dette har CPUer mange flere logiske registre enn CPU-arkitekturen krever.

Data som må skrives ut, men som har en «tidligere» instruks som ikke er fullført ennå, legges i et holdingregister. Disse dataene blir ikke overført til et annet register når bestillingen har ordnet seg. I stedet endres navnet på beholdningsregisteret til det på registret det skal stå i. Dette ligner litt på å tilberede en dessert før hovedretten, men så oppbevare den i kjøleskapet til den skal serveres.

Disse logiske registrene er fullstendig uadressert. CPU-en kan bare virkelig adressere de logiske registrene som for øyeblikket deler navnet på de arkitektoniske registrene. Når det er sagt, er CPU-en også klar over dem nok til at hvis andre omorganiserte instruksjoner er avhengige av dataene i det logiske holderegisteret, kan de bruke dem i stedet for de "utdaterte" dataene i arkitekturregisteret på det aktuelle empiriske tidspunktet.

Minnebarrierer

En minnebarriere - også referert til som en membar, minnegjerde eller gjerdeinstruksjon - er en instruksjon i datakode. Det lar en programmerer håndheve en bestillingsbegrensning på minneoperasjoner utstedt før og etter minnebarrieren. Minnebarrieren instruerer CPU-planleggeren om å sikre at alle instruksjoner blir behandlet før instruksjoner etter barrieren. Dette gjøres for å sikre at viktige operasjoner gjennomføres i riktig rekkefølge.

Generelt, på moderne datamaskiner, bør dette ikke være nødvendig. Utførelse av utførelse og navn på register er veletablerte og modne felt. Likevel kan en minnebarriere være nyttig for eldre, mindre sofistikerte prosessorer som ikke er i orden eller brukt i kritiske minneoperasjoner.

Minnebarrierer kan ha en viss ytelsesskade. Dette er fordi de aktivt forhindrer CPU-planleggeren fra å optimalisere spesifikke deler av instruksjonsflyten. Dette øker sjansen for stopp i rørledningen.

Konklusjon

En minnebarriere er en instruksjon som sikrer en bestillingsbegrensning på minneoperasjoner. Dette er viktig fordi prosessorer som ikke er i orden, kan omorganisere spesifikke instruksjoner. Mens omdøping av register er veletablert som en metode for å sikre minneintegritet i dette miljøet, kan det være nyttig å sikre det manuelt.

Minnebarrieren tvinger CPU-planleggeren til å sikre at instruksjoner fullføres før noen instruksjoner etter barrieren. Dette forhindrer at minneoperasjoner blir omorganisert. Det forhindrer også CPU-en i å optimalisere instruksjonsflyten, noe som kan påvirke ytelsen.


Leave a Comment

Alt om iOS 26

Alt om iOS 26

Apple har introdusert iOS 26 – en stor oppdatering med et helt nytt frostet glassdesign, smartere opplevelser og forbedringer av kjente apper.

De beste bærbare datamaskinene for studenter i 2025

De beste bærbare datamaskinene for studenter i 2025

Studenter trenger en spesifikk type bærbar PC til studiene sine. Den bør ikke bare være kraftig nok til å prestere bra i det valgte fagområdet, men også kompakt og lett nok til å bæres rundt hele dagen.

Slik gjenoppretter du tilgang til harddisken, fikser feilen med at harddisken ikke kan åpnes

Slik gjenoppretter du tilgang til harddisken, fikser feilen med at harddisken ikke kan åpnes

I denne artikkelen vil vi veilede deg i hvordan du får tilbake tilgang til harddisken din når den svikter. La oss følge med!

Slik bruker du Samtalebevissthet og Direktelytting på AirPods

Slik bruker du Samtalebevissthet og Direktelytting på AirPods

Ved første øyekast ser AirPods ut som alle andre ekte trådløse ørepropper. Men alt dette endret seg da noen få lite kjente funksjoner ble oppdaget.

Slik legger du til en skriver i Windows 10

Slik legger du til en skriver i Windows 10

Det er enkelt å legge til en skriver i Windows 10, selv om prosessen for kablede enheter vil være annerledes enn for trådløse enheter.

Slik sjekker du RAM og sjekker RAM-feil på datamaskinen din med høyest mulig nøyaktighet

Slik sjekker du RAM og sjekker RAM-feil på datamaskinen din med høyest mulig nøyaktighet

Som du vet, er RAM en svært viktig maskinvaredel i en datamaskin. Den fungerer som minne for å behandle data, og er faktoren som bestemmer hastigheten til en bærbar PC eller PC. I artikkelen nedenfor vil WebTech360 introdusere deg for noen måter å sjekke RAM-feil på ved hjelp av programvare på Windows.

Slik installerer du en SSD på stasjonære og bærbare PC-er

Slik installerer du en SSD på stasjonære og bærbare PC-er

Har du nettopp kjøpt en SSD og håper å oppgradere den interne lagringen på PC-en din, men vet ikke hvordan du installerer SSD? Les denne artikkelen nå!

Grunnleggende om 3D-utskrift: En viktig vedlikeholdssjekkliste

Grunnleggende om 3D-utskrift: En viktig vedlikeholdssjekkliste

Å holde utstyret ditt i god stand er et must. Her er noen nyttige tips for å holde 3D-printeren din i topp stand.

10 Beste NAS-lagringsenheter for hjem og profesjonell bruk

10 Beste NAS-lagringsenheter for hjem og profesjonell bruk

Enten du leter etter en NAS for hjemmet eller kontoret, sjekk ut denne listen over de beste NAS-lagringsenhetene.

Hvordan finne IP-adressen til en skriver

Hvordan finne IP-adressen til en skriver

Har du problemer med å finne ut hvilken IP-adresse skrivere bruker? Vi viser deg hvordan du finner den.