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)?

  1. AHet is een mechanisme om de nauwkeurigheid van sprongvoorspelling 100% te maken en is ook voor huidige CPU's onmisbaar
  2. BRISC-V gebruikt het ook en na een sprong moet altijd een nop worden geplaatst
  3. 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.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Instructieset en assembly

  1. Hoe komt de gelezen 32-bits waarde in het 64-bits register wanneer de lw-instructie wordt uitgevoerd in het 64-bits RV64I?
  2. Welke omschrijving van de ABI (application binary interface) is juist?
  3. Met welke instructie wordt een aanroep via een functiepointer in C, „(*fp)(x)”, in RISC-V gewoonlijk uitgevoerd?
  4. Welke uitspraak over twee CPU's met dezelfde instructiesetarchitectuur (ISA) is juist?
  5. Welke eigenschap van een load-store-architectuur zoals RISC-V is juist?