1. Introducció
1.1. Classificació de flynn
1.2. Rendiment (RISC-CISC)
1.3. Increment de velocitat (Paral·lelisme i segmentació)
2. Segmentació
2.1. Processadors Segmentats:
2.2. Definició i rendiment
2.3. Dependències de dades (RAW, WAW, WAR)
2.4. Conflictes estructurals: Problemàtica i solucions.
2.5. Conflictes de dades: Execució en ordre, problemàtica i solucions (parar, delay, forwarding)
2.6. Conflictes de control: Problemàtica i solucions (parar, delay, execució especulativa)
2.7. Finalització de les instruccions en desordre (conflictes WAW)
3. Processadors Supersegmentats:
3.1. Definició i rendiment
3.2. Conflictes estructurals
3.3. Conflictes de dades
3.4. Conflictes de control (Predicció de la condició (dinàmica i estàtica),
3.5. Anticipació de l'adreça desti (BTB))
4. Processadors Superescalars
4.1. Definició i rendiment
4.2. Paral·lelisme del programa i del processador
4.3. Execució de les intruccions en desordre (inici i finalització), (conflictes RAW i WAW)
4.4. Tècniques : Scoreboard i Tomasulo
4.5. Assignació dinàmica de registres.
4.6. Tractament de les interrupcions i les ruptures de seqüència
4.7. Estats de la màquins (en ordre, arquitectònic i look ahead)
4.8. History Buffer, Reorder Buffer, Future File
4.9. Tècniques d'optimització
4.10. Asignació de registres
4.11. List scheduling
4.12. Trace scheduling
4.13. Loop unrollin
4.14. Software pipelining
4.15. Code motation (percolation)
5. Introducció (UMA, NUMA, CC-NUMA, COMA)
5.1. Coherència entre caches i Memòria principal
5.2. Sincronització
6. Arquitectures específiques
6.1. Arquitectures especulativas
6.2. Comparació entre TLP i ILP
7. Processadors especulatius