ISA et assembleur
En RISC-V, si l'adresse d'une instruction lw lisant 4 octets n'est pas un multiple de 4 (non alignée), que peut-il se passer ?
- AL'instruction est automatiquement redirigée vers l'adresse multiple de 4 suivante et lit toujours correctement à la même vitesse
- BSelon l'implémentation du CPU, une exception peut survenir, ou l'accès peut être traité par le matériel ou le logiciel avec une forte lenteur
- CLes 2 bits de poids faible de l'adresse sont ignorés et aucune erreur ne survient
Afficher la réponse et l'explication
Réponse : B. Selon l'implémentation du CPU, une exception peut survenir, ou l'accès peut être traité par le matériel ou le logiciel avec une forte lenteur
Une donnée de 4 octets placée à une adresse multiple de 4 se lit en un seul accès mémoire. Si elle franchit une frontière, deux accès sont nécessaires ; RISC-V laisse donc à l'implémentation le choix de traiter les accès non alignés par le matériel ou de lever une exception pour les confier au logiciel. Dans ce dernier cas, l'accès est plus lent de plusieurs ordres de grandeur. C'est pourquoi les compilateurs insèrent des octets de remplissage (padding) entre les membres des structures pour les aligner.