Instructieset en assembly
Hoe komt de gelezen 32-bits waarde in het 64-bits register wanneer de lw-instructie wordt uitgevoerd in het 64-bits RV64I?
- ADe bovenste 32 bits behouden hun oorspronkelijke waarde en alleen de onderste 32 bits worden herschreven
- BAltijd nuluitgebreid tot 64 bits
- CTekenuitgebreid tot 64 bits (voor nuluitbreiding wordt lwu gebruikt)
Antwoord en toelichting tonen
Antwoord: C. Tekenuitgebreid tot 64 bits (voor nuluitbreiding wordt lwu gebruikt)
lw in RV64I plaatst de 32-bits waarde tekenuitgebreid in het 64-bits register, en lwu, dat zonder teken leest, vult de bovenste bits met 0. Als de bovenste bits hun vorige waarde zouden behouden, zou een afhankelijkheid van de vorige waarde ontstaan die out-of-order uitvoering hindert, dus RISC-V doet dat niet. Voor 32-bits berekeningen bestaan instructies met een „w”, zoals addw, die het resultaat als 32 bits berekenen en daarna tekenuitbreiden.