Vulnerabilidades de la CPU: Meltdown y Spectre

AmicableIridium avatar
AmicableIridium
·
·
Download

Start Quiz

Study Flashcards

30 Questions

¿Cuál es el propósito del campo de control de precisión en el registro de control de la FPU x87?

Determinar la precisión de los cálculos de punto flotante

¿Qué instrucciones se utilizan para almacenar el contenido del registro de estado de la FPU x87 en la memoria?

Todas las anteriores

¿Cuál es el nombre del registro que almacena el número de registro de la parte superior de la pila actual?

Campo TOP (stack TOP)

¿Cuál es el propósito de la bandera P en un descriptor de segmento?

Indicar si el segmento está presente en la memoria o no

¿Qué es lo que se almacena en el registro AX de la unidad entera?

El contenido del registro de estado de la FPU x87

¿Cuál es el propósito del registro de Tag en la FPU x87?

Indicar el contenido de cada registro en la pila de datos

¿Cuál es el nombre de la tabla de descriptores de segmento que puede ser utilizada por todos los programas y tareas en el sistema?

GDT

¿Cuántos descriptores de segmento máximo puede contener una tabla de descriptores de segmento?

8192

¿Cuál es el nombre del formato de punto flotante que existe solo en memoria?

Todos los formatos de punto flotante

¿Cuál es el propósito de la segmentación en un sistema?

Permitir que el espacio de direcciones físicas de un proceso no sea contiguo

¿Cuál es el nombre del registro que almacena la dirección base lineal y el límite de la GDT?

GDTR

¿Cuál es el tipo de tabla de descriptores de segmento que se puede definir opcionalmente?

LDT

¿Cuál es el propósito de Hyper Threading en una CPU?

Simular tener más núcleos para el sistema operativo

¿Qué es lo que permite la vulnerabilidad de Meltdown?

Acceder a la memoria del sistema

¿Cuál es la característica principal de las instrucciones RISC?

Son instrucciones simples y altamente optimizadas

¿Cuál es el objetivo de aprovechar el tiempo ocioso de la CPU?

Calcular instrucciones pedidas a menudo

¿Qué es lo que permite la vulnerabilidad de Spectre?

Acceder a la memoria de otras aplicaciones

¿Cuál es la característica principal de las instrucciones CISC?

Son instrucciones complejas que duran varios ciclos de clock

¿Cuántos GB de memoria física puede manejar esta arquitectura?

64 GB

¿Cuál es la función del Scanner en la compilación?

Convierte código en tokens

¿Qué errores detecta el Parser?

Errores de sintaxis

¿Qué es el propósito del Análisis Semántico?

Dar significado a una construcción

¿Cuál es el último paso en la compilación?

Carga y Ejecución

¿Qué es la traducción en el contexto de la compilación?

Pasar de un lenguaje a otro

¿Por qué se descompone el proceso de traducción en dos etapas?

Para reducir la cantidad de compiladores necesarios

¿Qué tipo de código intermedio se parece mucho al código fuente?

Alto nivel

¿Cuál es el objetivo de la optimización de código?

Mejorar el tamaño, la velocidad y el uso de recursos

¿Qué ventaja ofrece tener un código intermedio?

Independencia de la arquitectura

¿Por qué normalmente se habla de mejora en lugar de optimización?

Porque muchas tareas de optimización son de complejidad exponencial o son NP-Hard

¿Qué representa un gráfico de control de flujo?

Las transiciones entre bloques (nodos)

Study Notes

Registro de Estado de la FPU x87

  • El registro de estado de la FPU x87 se puede almacenar en la memoria utilizando instrucciones como FSTSW/FNSTSW, FSTENV/FNSTENV, FSAVE/FNSAVE y FXSAVE.
  • El contenido del registro de estado de x87 FPU se almacena en el campo TOP (stack TOP) en el registro de estado de la FPU x87.

Registro de Control de la FPU x87

  • El registro de control de la FPU x87 controla la precisión de la FPU x87 y el método de redondeo utilizado.
  • Contiene los bits de máscara de excepción de punto flotante.
  • El campo de control de precisión (PC) determina la precisión (64, 53 o 24 bits) de los cálculos de punto flotante.

Registro de Tag en la FPU x87

  • Indica el contenido de cada uno de los 8 registros en el registro de datos x87 FPU stack.
  • Los programas y los controladores de excepciones pueden usar esta información del registro Tag para verificar el contenido de los datos de una FPU x87 sin realizar una decodificación compleja de los datos reales en el registro.

Tipo de dato en la FPU x87

  • Con la excepción del formato de punto flotante de precisión extendida doble de 80 bits, todos estos tipos de datos existen solo en memoria.

Descriptores de Segmento

  • Los campos clave de un descriptor de segmento son:
    • Dirección base: define la ubicación del byte 0 del segmento dentro del espacio de direcciones lineal de 4 GB.
    • P (segment-present) flag: indica si el segmento está presente en la memoria o no.
    • DPL (descriptor privilege level): indica los privilegios del segmento.
    • S (descriptor type) flag: especifica si el descriptor de segmento es para un segmento del sistema o para código o datos.

Tabla de Descriptores de Segmento

  • Es un array de descriptores de segmento que puede contener hasta 8192 descriptores de 8 bytes.
  • Existen dos tipos: GDT (tabla de descriptores globales) y LDT (tabla de descriptores locales).

Segmentación

  • La segmentación permite que el espacio de direcciones físicas de un proceso no sea contiguo.
  • Aprovecha el tiempo ocioso de CPU para calcular una instrucción pedida a menudo.

RISC vs CISC

  • RISC: Reduced instruction set computing-conjunto reducido de instrucciones.
  • CISC: Complex instruction set computing-conjunto de instrucciones complejas.
  • RISC sacrifica cantidad de instrucciones para reducir la complejidad y cantidad de sus transistores.

Etapas de Compilación

    1. Preprocesamiento: prepara el código, incluye directivas como #include y #define.
    1. Compilación: convierte el código en archivo objeto.
    1. Ensamblaje: convierte el código en archivo objeto.
    1. Vinculación: busca las llamadas a funciones utilizadas en el código y las reemplaza por las definiciones de cada función.
    1. Carga y Ejecución: carga el código en memoria y lo ejecuta.

Análisis Léxico

  • Convierte el código en tokens (etiquetas).
  • Elimina comentarios y expande macros.
  • Detecta errores como caracteres que no pertenecen al lenguaje, strings o caracteres sin cerrar.

Parser (Análisis de Sintaxis)

  • Convierte tokens en árbol de sintaxis abstracto.
  • No contiene ciclos.
  • Detecta errores de estructura.

Análisis Semántico

  • Agrega significado al árbol de sintaxis abstracto.
  • Detecta errores como error de tipos, variables sin declarar o con múltiples declaraciones.

Generador de Código Intermedio

  • Basado en tuplas.
  • Puede ser de distintos niveles (alto, medio y bajo).

Optimizador Independiente

  • Mejora el tamaño, la velocidad y el uso de recursos de un programa.
  • Aplica estrategias de optimización independientes de la arquitectura.
  • Estrategias de optimización:
    • Reducir la cantidad de código.
    • Eliminar la cantidad de saltos.
    • Reusar resultados en vez de re-computarlos.

Aprende sobre las vulnerabilidades de seguridad Meltdown y Spectre, que afectan la integridad de la memoria del sistema y la privacidad de los datos. Descubre cómo funcionan y el impacto que han tenido en la performance de las CPUs.

Make Your Own Quizzes and Flashcards

Convert your notes into interactive study material.

Get started for free

More Quizzes Like This

CPU Scheduling Basics
5 questions

CPU Scheduling Basics

HighSpiritedComprehension5454 avatar
HighSpiritedComprehension5454
CPU Scheduling Algorithms Quiz
11 questions
Use Quizgecko on...
Browser
Browser