Forwarding

Z Wikipedii, wolnej encyklopedii

Forwarding – sprzężenie wyjścia z wejściem, termin dotyczący architektury komputerów (konkretnie przetwarzanie potokowe). Dzięki zastosowaniu forwardingu podczas przetwarzania potokowego ogranicza się liczbę tzw. bąbelków, czyli niewykorzystanych cykli zegara. Występowanie bąbelków spowodowane jest hazardami.

Bez forwardingu, w momencie kiedy rozkaz n+1 próbuje pobrać zawartość rejestru, który w czasie wykonywania rozkazu n nie został zaktualizowany, rozkaz n+1 pobrałby złą daną lub, jeśli architektura to przewiduje, zostałaby wstawiona taka liczba bąbelków, aby rozkaz n+1 mógł pobrać już zaktualizowaną zawartość rejestru.

Forwarding po każdej wykonanej fazie (przejściu bloku architektury) zapisuje wartości rejestrów w rejestrach tymczasowych, więc są one dostępne jako zaktualizowane wcześniej, niż przewiduje to architektura.