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.


Leave a Comment

Sådan Fixer du GeForce Now Fejlkode 0xC272008F

Sådan Fixer du GeForce Now Fejlkode 0xC272008F

Du er klar til en aften med gaming, og det bliver en stor aften - du har lige hentet "Star Wars Outlaws" på GeForce Now streamingtjenesten. Opdag den eneste kendte løsning, der viser dig, hvordan du kan fikse GeForce Now Fejlkode 0xC272008F, så du kan begynde at spille Ubisoft-spil igen.

Sådan forbinder du Windows 11 bærbar computer til projector/TV

Sådan forbinder du Windows 11 bærbar computer til projector/TV

Læs denne artikel for at lære om den enkle trin-for-trin proces for at forbinde en bærbar computer til en projector eller TV på Windows 11 og Windows 10 OS.

Sådan Finder Du IP-adressen til en Printer

Sådan Finder Du IP-adressen til en Printer

Har du problemer med at finde ud af, hvilken IP-adresse din printer bruger? Vi viser dig, hvordan du finder den.

3D Printning Grundlæggende: Vedligeholdelsestips til din 3D-printer

3D Printning Grundlæggende: Vedligeholdelsestips til din 3D-printer

At holde dine 3D-printere er meget vigtigt for at få de bedste resultater. Her er nogle vigtige tips at huske på.

3D Printning Grundlæggende: En Nødvendig Vedligeholdelseskontrolliste

3D Printning Grundlæggende: En Nødvendig Vedligeholdelseskontrolliste

At holde dit udstyr i god stand er et must. Her er nogle nyttige tips til at holde din 3D-printer i topstand.

5 Årsager til, at din bærbare computer overophedes

5 Årsager til, at din bærbare computer overophedes

Find ud af nogle af de mulige årsager til, at din bærbare computer overopheder, sammen med tips og tricks til at undgå dette problem og holde din enhed kølig.

Fejlfinding Printeren siger, at dokumenter venter

Fejlfinding Printeren siger, at dokumenter venter

I denne vejledning fokuserer vi på fejlfinding af printerproblemer, hvor printeren viser, at dokumenter venter. Følg vores tips for at løse dette problem.

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.