Skip to content

Instantly share code, notes, and snippets.

@Santiago-j-s
Created December 21, 2020 20:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Santiago-j-s/036163f7809ebfbdd3ba9093d260604a to your computer and use it in GitHub Desktop.
Save Santiago-j-s/036163f7809ebfbdd3ba9093d260604a to your computer and use it in GitHub Desktop.
  • Los procesadores CISC tienen instrucciones complejas
  • Estas instrucciones se dividen en una serie de pasos más pequeños
  • Estos pasos se ejecutan en serie en diferentes partes del procesador (forman algo similar a una línea de ensamble)
  • Ante un branch (un if) no se puede anticipar cual va a ser la siguiente instrucción que hay que meter en el pipeline
  • Detener todo el pipeline hasta saber que instrucción va a ejecutarse destruye cualquier mejora en la performance que el pipeline pueda ofrecer
  • Intentar predecir que camino va a tomar el branch es una mejor opción
  • Al errarle al camino hay que reconstruir pipeline, es mucho más lento

Los procesadores RISC igual tienen pipeline, las instrucciones sin embargo son mucho más simples y el pipeline suele ser muy pequeño.

Un gran problema es que los procesadores al correr ciertos pasos de una instrucción y retroceder causan efectos secundarios, el estado del sistema queda alterado y atacantes pueden observar ese estado y leer valores que en teoría no deberían poder leer (SPECTRE).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment