--- tags: cours, asse, ASSE, S5, Ing1 author: Robin 'Pachichi' Boucher date: 20/12/18 --- ###### Jeudi 20 décembre # Cours de systèmes - ASSE :::info Rappels * RISC / CISC * Pipeline * 5 levels 1. fetch 2. decode 3. execute 4. memory 5. writeback * Dependency * stall (bulle) * bypass unit * Branch predictor * microcode ::: #### Cours actuel Branchement indirect: indirection avant de jmp $\rightarrow$ 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*** $\rightarrow$ 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. $\rightarrow$ Bout de code se trouvant à des endroits où il ne devrait pas se trouver > [color=blue] 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 $\rightarrow$ flush quand on change d'address space (changement de **cr3**) Raisons d'aller dans le Kernel: * syscalls * interruptions * ... 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** * Rowhammer * Nethammer