H6 Flashcards
Requirements for ILP
- sequentiële code geschreven in high level
- code wordt compiled en gelinkt aan sequentiële machine code instructies (=processor language)
- om parallel te runnen:
-> instructies mogen niet afhankelijk zijn van elkaar
-> processor moet in staat zijn om instructies parallel uit te voeren
Instruction-level parallelism
= parallel uitvoeren van een reeks instructies
= het gemiddelde aantal instructies die uitgevoerd worden per parallele stap
/= concurrency
-> ILP heeft 1 thread
-> concurrency heeft meerdere threads
Hardware or Dynamic ILP
processor beslist tijdens runtime welke instructies parallel worden uitgevoerd
Intel / AMD x86_64
Software or Static ILP
compiler beslist welke instructies parallel worden uitgevoerd
Itanium
Techniques to further exploit ILP
- Instruction pipelining
- Superscalar execution
- VLIW
- Out-of-order execution
- Register renaming
- Speculative execution
Instruction pipelining
-> ILP binnen 1 processor implementeren
-> processor bezighouden door inkomende instructies op te delen in een reeks opeenvolgende stappen (tekening)
- instruction fetch
- instruction decode
- execute
- memory acces
- write back
Superscalar Execution
-> meerdere instructies per klokcyclus uitvoeren door ze gelijktijdig naar verschillende uitvoereenheden te sturen
Superscalar /= pipelining
-> SS voert meerdere instructies parallel uit door meerdere uitvoereenheden
-> PL voert instructies parallel uit door instructies in dezelfde uitvoer unit te verdelen in verschillende fasen
(tekening)
Very Long Word
de compiler beslist de parallel flow van de instructions
-> ipv 1 korte instructie krijgt de computer een lange die meerdere kleine instructies bevat. elke functional unit neemt een deel van de instructie
- Digital signal processing
- Multimedia processing
- Scientific computing
- Embedded systems
Out Of Execution (OOO)
instructies die niet afhankelijk zijn van elkaar in een andere volgorde uitvoeren
Register renaming
zorgt ervoor dat opdrachten niet op elkaar moeten wachten door ze verschillende fysieke registers te geven, zelfs als ze dezelfde registernaam hebben
Speculative Execution
computer gaat taken, waarvan niet zeker is dat ze nodig zijn, op voorhand uitvoeren om de wachttijd te verminderen
als ze toch niet nodig waren worden de resultaten genegeerd