Jeudi 20 décembre
Cours de systèmes - ASSE
Rappels
-
RISC / CISC
-
Pipeline
- 5 levels
- fetch
- decode
- execute
- memory
- writeback
-
Dependency
- stall (bulle)
- bypass unit
-
Branch predictor
-
microcode
Cours actuel
Branchement indirect: indirection avant de jmp
→ branch predictor
jmp %addr
call %addr
ret
Plus rapide de push les registres un par un que d’appeler pusha
.
Les processeurs out of order
→ Spectre/Meltdown (bug CPU)
- Spectre: bug des branch predictors (faire sauter un bout de code sur une branche différente)
- Meltdown:
Les micro-instructions ne vérifient pas les permissions si User ou Kernel.
→ Bout de code se trouvant à des endroits où il ne devrait pas se trouver
insérer image TLB et datacache ici (check cahier)
Fait partie de la TLB (???)
- Addresse physique
- Addresse virtuelle
- flags
- ID
TLB: Accélère la traduction d’addresse virtuelle
Dcache: DataCache
→ flush quand on change d’address space (changement de cr3)
Raisons d’aller dans le Kernel:
Les addresses de pages paires, on le prend pour le user land et les addresses des pages impaires pour le kernel land (ou inversement, peu importe).
KPTI
Jeudi 20 décembre
Cours de systèmes - ASSE
Rappels
RISC / CISC
Pipeline
Dependency
Branch predictor
microcode
Cours actuel
Branchement indirect: indirection avant de jmp
→ branch predictor
Plus rapide de push les registres un par un que d’appeler
pusha
.Les processeurs out of order
→ Spectre/Meltdown (bug CPU)
Les micro-instructions ne vérifient pas les permissions si User ou Kernel.
→ Bout de code se trouvant à des endroits où il ne devrait pas se trouver
Fait partie de la TLB (???)
TLB: Accélère la traduction d’addresse virtuelle
Dcache: DataCache
→ flush quand on change d’address space (changement de cr3)
Raisons d’aller dans le Kernel:
Les addresses de pages paires, on le prend pour le user land et les addresses des pages impaires pour le kernel land (ou inversement, peu importe).
KPTI