Overgangsforudsigelse

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 6. november 2018; checks kræver 8 redigeringer .

En forgreningsforudsigelsesenhed ( grenforudsigelsesenhed ) er en  enhed, der er en del af mikroprocessorer med en pipeline-arkitektur, der forudsiger, om et betinget spring vil blive udført i et eksekverbart program. Branch-forudsigelse reducerer pipelinens inaktive tid ved at forudindlæse og udføre instruktioner, der skal udføres, efter at en betinget greninstruktion er eksekveret. Branch-forudsigelse spiller en kritisk rolle, da det i de fleste tilfælde (nøjagtigheden af ​​brancheforudsigelse i moderne processorer overstiger 90%) gør det muligt optimalt at bruge processorens computerressourcer [1] .

Uden grenforudsigelse skal pipelinen vente, indtil den betingede greninstruktion udføres for at foretage den næste hentning. Branch prediktor undgår at spilde tid på at finde ud af en gren. Grenen vælges ud fra de tidligere resultater af tilstandskontrollen. Den påtænkte gren bliver derefter indlæst og delvist udført. Hvis det så viser sig, at forudsigelsen var forkert, kasseres resultaterne af den forkerte gren, og den korrekte gren indlæses i rørledningen, hvilket forårsager en forsinkelse. Mængden af ​​forsinkelse afhænger af transportørens længde. For Intel Core i7-processoren er pipelinedybden 14 trin.

"Jump-forudsigelse" bør skelnes fra "spring-adresse-forudsigelse" . Formålet med forudsigelse af grenadresse er at vælge adressen på en betinget eller ubetinget gren før afkodning og eksekvering af greninstruktionen.

Der er to hovedmetoder til grenforudsigelse:

Statisk forudsigelse

Statiske grenforudsigelsesmetoder er de enkleste. Essensen af ​​disse metoder er, at forskellige typer overgange:

I moderne processorer bruges statiske metoder kun, når dynamiske metoder ikke kan bruges.

Et eksempel på triviel statisk forudsigelse implementeret i tidlige processorer af SPARC- og MIPS-arkitekturerne .

I dette tilfælde antages det, at den betingede filial aldrig vil blive udført.

Et eksempel på statisk forudsigelse implementeret i moderne processorer.

I dette tilfælde antages det, at enhver tilbagegående overgang vil blive udført, og enhver fremadgående overgang ikke. Metoden bruges som et "sikkerhedsnet".

Dynamisk forudsigelse

2a ISIP tat

Mættet tæller eller bimodal tæller

Navigationshistoriktabellen analyseres. Tabellen indeholder:

Tabellen opdateres efter hver overgang. Algoritmen ændrer valget af forgrening, hvis resultatet af betingelsen afveg to gange fra de tidligere resultater. Anvendelse af de mindst signifikante bits af instruktionsadressen gør det muligt at forudsige flere instruktioner, før de afkodes.

Adaptive Bilevel Predictor

For det første niveau udføres historikken for de sidste k grene, for det andet niveau peger k på skabelontabellen.

Lokal overgangsforudsigelse

Hver betinget gren i et omfang har sin egen grenhistorie. Overgangsmønstre kan være delte eller specifikke.

Global Transition Prediction

Global brancheforudsigelse gemmer ikke separat historie for hver overgang, men bruger den generelle historie. Eventuelle mønstre i overgange påvirker denne historie, men irrelevante optegnelser kan forurene historien.

Hybrid forudsigelse

En hybrid prædiktor kan vælge resultaterne af de mest succesrige prædiktorer baseret på historie eller bruge majoritetsfunktionen af ​​et ulige antal prædiktorer.

Loop-forudsigelse

Sløjfeforudsigeren kan bruge sløjfetælleren til at tælle antallet af hop til begyndelsen af ​​sløjfen. Denne prædiktor kan bruges i en hybrid prædiktor.

Forudsigelse af indirekte spring

En indirekte gren kan have mere end to grene. De nyeste processorer har mulighed for at vælge mere end to tilstande ved hjælp af en to-niveaus adaptiv forudsigelse. Processorer uden indirekte grenforudsigelse kan bruge statisk forudsigelse eller tage den tidligere værdi.

Noter

  1. PC Magazine / Russisk udgave. Artikel "RISC Legacy: Transition Prediction". oktober 1995 udgave. Onlineversion: [1] Arkiveret 10. marts 2012 på Wayback Machine

Litteratur

Se også