Vad är en mikrooperation?

Datorer är programmerade med programmeringsspråk. Dessa språk är i allmänhet läsbara för människor och låter programmeraren konfigurera vad datorn gör. Denna kod måste sedan kompileras till datorinstruktioner. De exakta detaljerna för detta varierar beroende på vilken instruktionsuppsättningsarkitektur eller ISA den avsedda datorn använder. Det är därför det finns olika nedladdningslänkar för x86-processorer från Intel och AMD, och ARM-processorer som används i moderna Apple-enheter. ISA för x86 och ARM är olika; programvaran måste kompileras separat. Som Apple har visat är det möjligt att bygga ett snyggt översättningslager; det är bara inte vanligt att göra så.

Du kanske tror att CPU:n ser instruktionerna som den presenteras med och sedan kör dem i ordning. Det finns många knep som moderna processorer gör, inklusive utförande i oordning, vilket gör att processorn kan ordna om saker i farten för att optimera prestandan. En smart del som dock är ganska väl dold är mikrooperationer.

Pipeline till mikrooperation

Enskilda instruktioner i maskinkod kan kallas instruktioner eller operationer; termerna är utbytbara. En av svårigheterna med Complex Instruction Set Computing eller CISC-arkitekturer som x86 är att instruktioner kan variera i hur långa de är. Detta hänvisar specifikt till hur mycket data de tar för att representera. I x86 kan en instruktion vara så kort som en byte eller så lång som 15. Jämför detta med standard RISC-V-arkitekturen som används av moderna ARM-processorer med instruktioner med fast längd på 4 byte.

Tips: RISC står för Reduced Instruction Set Computing.

En av konsekvenserna av denna skillnad i struktur är att RISC-arkitekturer tenderar att vara mycket lättare att pipeline effektivt. Varje instruktion har flera steg i sin funktion som använder olika hårdvara. Pipelining kör flera instruktioner genom dessa steg samtidigt, med exakt en instruktion i varje steg. Pipelining ger en avsevärd prestandaökning när den används effektivt. En nyckelfaktor för att effektivt använda en pipeline är att säkerställa att varje steg används samtidigt. Detta gör att allt går smidigt genom pipelinen.

Eftersom alla instruktioner är lika långa tenderar RISC-instruktioner att kräva samma handläggningstid som varandra. Men i en CISC, som x86, kan vissa instruktioner ta mycket längre tid att slutföra än andra. Detta skapar ett stort effektivitetsproblem vid pipelining av en CPU. Varje gång en längre instruktion kommer fastnar den längre i pipelinen. Detta orsakar en bubbla och håller upp allt bakom den. Mikrooperationer är lösningen på detta.

Effektiva mikrooperationer

Istället för att behandla varje instruktion som den enda operationsnivån som kan utföras, introducerar mikrooperationer ett nytt lägre lager. Varje operation kan delas upp i många mikrooperationer. Genom att designa mikrooperationerna noggrant kan du optimera pipelinen.

Intressant nog erbjuder detta en ny fördel. Medan den övergripande ISA, säg x86 förblir densamma mellan många olika CPU-generationer, kan mikrooperationerna anpassas för varje generation av hårdvara. Detta kan göras med en djup förståelse för hur mycket prestanda som kan pressas ut ur varje pipelinesteg för varje mikrooperation.

I början av mikrooperationer var de fasta anslutningar som aktiverade eller inaktiverade specifik funktionalitet beroende på mikrooperationen. I modern CPU-design läggs en mikrooperation till i en beställningsbuffert. Det är denna buffert som processorn kan utföra sin effektivitetsorienterade omordning. Det är mikrooperationer, inte faktiska instruktioner, som ordnas om.

I vissa fall, särskilt med mer avancerade processorer, kan ännu mer göras. Micro-op fusion är där flera mikrooperationer kombineras till en. Till exempel kan en sekvens av enkla mikrooperationer utföra en åtgärd som kan utföras med en enda, mer komplex instruktion. Genom att minska antalet utförda mikrooperationer kan processen slutföras snabbare. Detta minskar också antalet tillståndsändringar som minskar strömförbrukningen. Fullständiga instruktioner kan till och med analyseras och kombineras till mer effektiva mikrooperationsstrukturer.

Vissa processorer använder en mikrooperationscache. Detta lagrar helt avkodade mikrooperationssekvenser som kan återanvändas om de anropas igen. Typiskt hänvisas storleken på en sådan cache till genom antalet mikrooperationer den kan lagra snarare än genom bytekapacitet.

Slutsats

En mikrooperation är en CPU-specifik implementering av en instruktionsuppsättning. Instruktioner avkodas till en serie mikrooperationer. Dessa mikrooperationer är betydligt enklare att pipeline mer effektivt och utnyttjar därmed CPU-resurserna bättre. Eftersom mikrooperationer inte är hårdkodade i instruktionsuppsättningen, kan de anpassas till den specifika hårdvaran för varje generation av CPU. Mikrooperationer förkortas ofta till mikrooperationer eller till och med μops. Som använder den grekiska bokstaven μ ( uttalas Mu ), SI-symbolen för mikroprefixet.


Hur man klona en hårddisk

Hur man klona en hårddisk

I den moderna digitala tidsåldern, där data är en värdefull tillgång, kan kloning av en hårddisk på Windows vara en avgörande process för många. Denna omfattande guide

Hur fixar jag drivrutinen WUDFRd kunde inte laddas på Windows 10?

Hur fixar jag drivrutinen WUDFRd kunde inte laddas på Windows 10?

Står du inför felmeddelandet när du startar din dator som säger att drivrutinen WUDFRd inte kunde laddas på din dator?

Så här åtgärdar du NVIDIA GeForce Experience Error Code 0x0003

Så här åtgärdar du NVIDIA GeForce Experience Error Code 0x0003

Upplever du NVIDIA GeForce-felkod 0x0003 på ditt skrivbord? Om ja, läs bloggen för att hitta hur du åtgärdar det här felet snabbt och enkelt.

Vad är SMPS?

Vad är SMPS?

Lär dig vad som är SMPS och innebörden av olika effektivitetsklasser innan du väljer en SMPS för din dator.

Varför slås inte min Chromebook på

Varför slås inte min Chromebook på

Få svar på frågan Varför slås inte min Chromebook på? I den här användbara guiden för Chromebook-användare.

Hur man rapporterar nätfiskebedrägerier till Google

Hur man rapporterar nätfiskebedrägerier till Google

Lär dig hur du rapporterar en bedragare till Google för att hindra dem från att lura andra med den här guiden.

Roomba stannar, sticker och vänder sig om – fixa

Roomba stannar, sticker och vänder sig om – fixa

Åtgärda ett problem där din Roomba robotdammsugare stannar, fastnar och fortsätter att vända sig om.

Hur man ändrar grafikinställningar på Steam Deck

Hur man ändrar grafikinställningar på Steam Deck

Steam Deck erbjuder en robust och mångsidig spelupplevelse precis vid dina fingertoppar. Dock för att optimera ditt spelande och säkerställa bästa möjliga

Vad är isoleringsbaserad säkerhet?

Vad är isoleringsbaserad säkerhet?

Vi skulle fördjupa oss i ett ämne som blir allt viktigare i världen av cybersäkerhet: isoleringsbaserad säkerhet. Detta förhållningssätt till

Hur man använder Auto Clicker för Chromebook

Hur man använder Auto Clicker för Chromebook

Idag skulle jag fördjupa dig i ett verktyg som kan automatisera repetitiva klickuppgifter på din Chromebook: Auto Clicker. Detta verktyg kan spara tid och