Registeromdøping

Fra Wikipedia, den frie encyklopedi

Registeromdøping betegner innenfor datamaskinarkitektur en teknikk som er brukt for å unngå unødvendig serialisering ved bruk av prosessorregistre. Teknikken har aktualitet i superskalære arkitekturer med out-of-order execution.

Betrakt følgende kode:

# Instruction
1 R1 = M[1024]
2 R1 = R1 + 2
3 M[1032] = R1
4 R1 = M[2048]
5 R1 = R1 + 4
6 M[2056] = R1

Instruksjonene 4, 5 og 6 er uavhengig av 1, 2 og 3, men mikroprosessoren kan ikke påbegynne instruksjon 4 før instruksjon 3 er avsluttet, ellers vil sistnevnte få feil verdi. Denne restriksjonen kan bli eliminert ved å endre navnene på noen av registrene:

# Instruction # Instruction
1 R1 = M[1024] 4 R2 = M[2048]
2 R1 = R1 + 2 5 R2 = R2 + 4
3 M[1032] = R1 6 M[2056] = R2

Nå kan instruksjonene 4, 5 og 6 utføres i parallell med instruksjonene 1, 2 og 3.