Hvad er en instruktionspipeline?

Hvad er en instruktionspipeline?

Enhver processorinstruktion har flere trin i dens drift. Hvert af disse trin tager en enkelt CPU-cyklus at fuldføre. Disse trin er Instruktionshentning, Instruktionsdekodning, Udfør, Hukommelsesadgang og tilbageskrivning. Disse får henholdsvis den instruktion, der skal fuldføres, adskiller operationen fra de værdier, der opereres på, udfører processen, åbner det register, som resultatet vil blive skrevet på, og skriver resultatet til det åbnede register.

Historiske processorer i orden

I tidlige computere brugte CPU'en ikke en instruktionspipeline. I disse CPU'er skulle hver enkelt-cyklus-operation ske for hver instruktion. Dette betød, at det tog fem clock-cyklusser for den gennemsnitlige instruktion at blive behandlet helt, før den næste kunne startes. Nogle operationer behøver muligvis ikke at skrive noget resultat ud til et register, hvilket betyder, at hukommelsesadgang og tilbageskrivningsstadier kan springes over.

Hvad er en instruktionspipeline?

I en subskalær processor uden pipeline udføres hver del af hver instruktion i rækkefølge.

Der lurer dog et problem, når du kører en komplet instruktion i rækkefølge, før du kan gå videre til den næste instruktion. Problemet er cache-missen. CPU'en gemmer data, som den aktivt behandler, i registret. Dette kan tilgås med en en-cyklus latency. Problemet er, at registret er lille, fordi det er indbygget i processorkernen. CPU'en skal gå til den større, men langsommere L1-cache, hvis dataene ikke allerede er blevet indlæst. Hvis den ikke er der, skal den gå til den større og langsommere L2-cache igen. Det næste trin er L3-cachen; den sidste mulighed er systemets RAM. Hver af disse muligheder tager flere og flere CPU-cyklusser at kontrollere.

Nu kan denne ekstra tilføjede latenstid være et stort problem i et system, der skal fuldføre hver instruktion i fuld rækkefølge, før den næste instruktion startes. Hvad der havde været en 5-cyklus pr. instruktionsprocessor, kan pludselig blive hængt op på en instruktion i snesevis eller hundredvis af clock-cyklusser. Alt imens kan der ikke ske noget andet på computeren. Teknisk kan dette afhjælpes noget ved at have to uafhængige kerner. Intet forhindrer dem begge i at gøre det samme, potentielt samtidigt. Så at gå ned ad multi-core ruten løser ikke dette.

Den klassiske RISC-rørledning

RISC står for Reduced Instruction Set Computer . Det er en stil med processordesign, der optimerer ydeevnen ved at gøre afkodning af hver instruktion lettere. Dette er i sammenligning med CISC eller Complex Instruction Set Computer, som designer mere komplekse instruktionssæt, hvilket tillader færre instruktioner at være nødvendige for at udføre de samme opgaver.

Det klassiske RISC-design inkluderer en instruktionspipeline. I stedet for at køre nogen af ​​de fem instruktionstrin i en given cyklus, tillader pipelinen at udføre alle fem trin. Selvfølgelig kan du ikke køre alle fem trin af en instruktion i en cyklus. Men du kan stille fem på hinanden følgende instruktioner i kø med en forskydning på et trin hver. På denne måde kan en ny instruktion fuldføres hver urcyklus. Tilbyder en potentiel 5x ydelsesforøgelse for en relativt lav stigning i kernekompleksitet.

Hvad er en instruktionspipeline?

I en skalar pipelinet processor kan hvert trin i en instruktioners udførelse udføres én gang pr. clock-cyklus. Dette tillader en maksimal gennemstrømning på én fuldført instruktion pr. cyklus.

Processorer, der ikke har en pipeline, kan kun være sub-skalære, da de ikke kan udføre en komplet instruktion pr. cyklus. Med denne primære fem-trins pipeline kan du lave en skalar CPU, der kan fuldføre en instruktion for hver proces. Ved at skabe endnu mere vidtrækkende pipelines kan du lave superskalære CPU'er, der kan udføre mere end én instruktion pr. clock-cyklus. Selvfølgelig er der stadig potentielle problemer.

Stadig sekventiel

Intet af dette løser problemet med at vente i mange cyklusser på et svar, når det er nødvendigt at forespørge på de forskellige niveauer af cache og RAM. Det introducerer også et nyt problem. Hvad hvis en instruktion er afhængig af outputtet fra den tidligere instruktion? Disse problemer løses selvstændigt med en avanceret dispatcher. Den planlægger omhyggeligt rækkefølgen af ​​udførelsen, så ingen instruktioner, der er afhængige af en andens output, er for tæt på hinanden. Den håndterer også cache-misser ved at parkere en instruktion og erstatte den i pipelinen med andre instruktioner, der er klar til at køre og ikke kræver dets resultat, og genoptager instruktionen, når den er klar.

Disse løsninger kan fungere på processorer uden pipeline, men de er nødvendige for en superskalær processor, der kører mere end én instruktion pr. ur. En grenprædiktor er også meget nyttig, da den kan forsøge at forudsige resultatet af en instruktion med mere end ét potentielt udfald og fortsætte med at antage, at det er korrekt, medmindre andet er bevist.

Konklusion

En pipeline gør det muligt at bruge alle processorens forskellige egenskaber i hver cyklus. Det gør den ved at køre forskellige stadier af forskellige instruktioner samtidigt. Dette tilføjer ikke engang meget kompleksitet til CPU-designet. Det baner også vejen for at tillade mere end én instruktion at udføre et enkelt trin pr. cyklus.


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