Resultatbordning är en teknik i datorarkitektur som används för att hantera out-of-order-exekvering i en pipelined processor. Det är ett mer sofistikerat tillvägagångssätt än enkla reservationsstationer, vilket ger mer flexibilitet och potentiellt högre prestanda. Istället för att bara spåra resurstillgängligheten håller det också reda på datamängder mellan instruktioner.
Så här fungerar det:
* Instruktionsproblem: Instruktioner hämtas och utfärdas till processorns exekveringsenheter så snart deras operander är tillgängliga och de nödvändiga exekveringsenheterna är gratis. Detta står i kontrast till strikt beställning där instruktionerna är slutförda i samma ordning som de hämtas.
* resultattavlan: Detta är en central datastruktur som upprätthåller följande information för varje instruktion:
* Instruktionsstatus: Anger om instruktionen utfärdas, körs eller är klar.
* operander: Listar de källoperander som krävs av instruktionen.
* Operand Status: För varje operand indikerar det om operanden är tillgänglig eller fortfarande beräknas av en annan instruktion.
* Destinationsregister: Anger destinationsregistret där resultatet kommer att skrivas.
* exekveringsenhet: Anger vilken exekveringsenhet som instruktionen tilldelas.
* Databeroende spårning: Resultattavlan övervakar databeroenden mellan instruktionerna. En instruktion kan inte börja köras förrän alla dess operander är redo. Detta undviker faror som kan uppstå vid utförande av beställningen.
* Resursallokering: Resultattavlan spårar tillgängligheten för exekveringsenheter och andra resurser. När en instruktion är redo att utföra tilldelar resultattavlan den till en tillgänglig exekveringsenhet.
* Resultatskrivning: När en instruktion har slutfört exekveringen uppdaterar resultattavlan statusen för sitt destinationsregister. Andra instruktioner som väntar på det resultatet kan sedan fortsätta.
Nyckelfördelar med resultattavlan över enklare tekniker:
* Förbättrad parallellism: Genom att tillåta exekvering utanför beställningen kan resultattavlan avsevärt öka parallelliteten för instruktionsnivå (ILP).
* reducerade bås: Eftersom det spårar databeroenden, minimerar det rörledningsbås orsakade av datarisker.
* hanterar mer komplexa beroenden: Det är mer robust än enklare metoder för att hantera olika typer av databeroenden (läs-efter-skrivning, skriv-efter-läsning, skriv-efter-skrivning).
Begränsningar av resultattavlan:
* Komplexitet: Resultatbordning är en mer komplex mekanism jämfört med i ordning exekvering eller enklare out-of-order-tekniker. Implementeringen av själva resultattavlan kräver betydande hårdvaruresurser.
* Begränsad utförande utanför beställningen: Även om det förbättrar parallellism, har den fortfarande begränsningar jämfört med mer avancerade tekniker som Tomasulos algoritm, vilket möjliggör mer dynamisk schemaläggning. Presulteboarding har i allmänhet en mer begränsad grad av utförande utanför beställningen.
Sammanfattningsvis är resultattavlan en värdefull teknik för att förbättra prestandan hos rörledningar genom att möjliggöra utförande utanför ordningen samtidigt som han hanterar databeroende och resursallokering. Men dess komplexitet innebär att det kanske inte är det optimala valet för alla processorkonstruktioner.