Instructieset en assembly
Welke uitspraak is juist over de branch delay slot die bij het vroegere MIPS en dergelijke bestond (de afspraak dat de ene instructie direct na een sprong-instructie wordt uitgevoerd, ongeacht of er wordt gesprongen)?
- AHet is een mechanisme om de nauwkeurigheid van sprongvoorspelling 100% te maken en is ook voor huidige CPU's onmisbaar
- BRISC-V gebruikt het ook en na een sprong moet altijd een nop worden geplaatst
- CHet bracht de pipelinebeperkingen van destijds in de ISA en werd een belemmering voor latere CPU-ontwerpen
Antwoord en toelichting tonen
Antwoord: C. Het bracht de pipelinebeperkingen van destijds in de ISA en werd een belemmering voor latere CPU-ontwerpen
In een eenvoudige pipeline van 5 trappen is, tegen de tijd dat het resultaat van de sprong bekend is, de volgende instructie al opgehaald; de branch delay slot voorkomt verspilling door af te spreken dat deze altijd wordt uitgevoerd. Bij latere CPU's met diepere pipelines, sprongvoorspelling en gelijktijdige uitgifte verdween het voordeel en bleef alleen de last over om voor compatibiliteit speciale behandeling te blijven bieden. RISC-V gebruikt dit niet, om geen afspraken in de ISA op te nemen die van de interne opbouw afhangen.