Módulo I (143 pags)

Estructura interna del procesador y buses de interconerconexión

  1. Introducción.
  2. El funcionamiento de un computador.
  3. El bus como estructura de interconexión.

Módulo II (84 pags)

Unidad Aritmético Lógica

  1. Estructura de una ALU de enteros
  2. Números en coma flotante: Representación IEEE754
  3. Números en coma flotante: Operaciones

Módulo III (71 pags)

Unidad de memoria

  1. Organización física de la unidad de memoria
  2. Tipos de memorias
  3. Memoria caché
  4. Memoria virtual

Módulo V

Unidad de Control

  1. Organización y funcionamiento de la UC
  2. La unidad de control cableada
  3. La unidad de control microporgramada
9

La memoria Caché

(30 páginas)

1. Principios de la caché

1.1. Localidad de referencia

La memoria almacena instrucciones y datos ¿Se comportan de forma similar o diferente con respecto a las diferentes dimensiones de la localidad de referencia?

Como los procesadores tienen cachés diferenciadas para instrucciones y para datos, se supone diferentes formas de funcionamiento en diferentes cachés.

1.2. Funcionamiento de la caché

1.2.1. Lecturas

Para acceder a la caché se necesita además de indicar el valor, hay que indicar de donde proviene ese valor. La CPU manda la dirección al bus de direcciones, y la caché lee lo que le llega por el bus de direcciones.

No se carga todo el bloque en la caché antes de leer el dato. Es decir si un bloque tuviera 18 palabras de memoria, no debería cargarse todo el bloque, porque tiene un costo.

Ante un fallo ¡hay que parar el procesador! Es posible la “lectura de comienzo inmediato” (load-through)

1.2.2. Métricas

1.2.3. Escrituras

1.2.4. Coherencia en sistemas multicore

2. Mapeado

Supongamos que disponemos de un sistema de bloques de una palabra (por simplificar). Nuestra caché tiene 4 líneas y la memoria es de 8 palabras; por lo tanto, necesitaremos 3 bits para direccionar esa memoria.
Tenemos un programa que accede a las siguientes direcciones: 000, 001, 011, 001, 101, 010

1. ¿Cómo ubicamos esos bloques en la caché?
2. Ante cada nuevo acceso, ¿cómo se sabe si la caché ya contiene ese bloque?
3. ¿Qué hacemos cuando la caché se llene?

Las técnicas de mapeado permmiten decidir en qué línea de la caché almacenar un bloque de la memoria. dentificar con qué bloque de la memoria principal se corresponde el contenido de una línea de la caché usando eqtiquetas.

Supongamos una memoria compuesta de dos conjuntos de información

1.1. Dirección de memoria desde la perspectiva de la memoria principal

1.2. Mapeado directo

Se introduce el concepto de etiqueta, que hace referencia a la dirección de la caché que puede estar asociada a múltiples direcciones de la memoria pricnipal (bloque+offset)

1.3. Mapeado completamente asociativo

1.4. Mapeado asociativo por conjunto

1.5. Reemplazamiento

Cuando la caché se llena, existes diferentes algoritmos para reemplazar las direcciones guardadas. Para el mapeado directo no es necesario utilizar una estrategia de reemplazo.

1.5.2. Escritura

1.5.1. Coherencia

Un sistema de memoria es coherente si cualquier lectura de un dato devuelve el valor más reciente de ese dato. Procesadores que comparten el espacio de memoria pero tienen cachés individuales.