Instructieset en assembly
Wat kan er gebeuren als het adres van een lw-instructie die 4 bytes leest in RISC-V geen veelvoud van 4 is (niet uitgelijnd)?
- ADe instructie wordt automatisch gelezen als het volgende veelvoud van 4 en leest altijd even snel en correct
- BAfhankelijk van de CPU-implementatie treedt een exception op, of wordt het in hardware of software afgehandeld en wordt het zeer traag
- CDe onderste 2 bits van het adres worden genegeerd en er is geen fout
Antwoord en toelichting tonen
Antwoord: B. Afhankelijk van de CPU-implementatie treedt een exception op, of wordt het in hardware of software afgehandeld en wordt het zeer traag
Als 4 bytes data op een adres dat een veelvoud van 4 is staan, kunnen ze met één geheugentoegang worden gelezen. Over een grens heen zijn twee toegangen nodig, dus RISC-V laat het aan de implementatie over of niet-uitgelijnde toegang in circuits wordt afgehandeld of dat een exception wordt veroorzaakt en software het overneemt. In het laatste geval is het ordes van grootte trager. Daarom voegt de compiler vulling (padding) tussen leden van een structuur toe om uit te lijnen.