Conceptos Clave de Arquitectura de Computadores: Memoria, Rendimiento y Paralelismo


Ley de Moore y Conceptos Básicos

La Ley de Moore postula que aproximadamente cada dos años se duplica el número de transistores en un circuito integrado. Históricamente, esto ha conllevado un aumento de potencia y capacidad de cómputo en los dispositivos, aunque también puede implicar cambios en el consumo energético.

  • Circuito Integrado: Un conjunto de componentes electrónicos (como transistores y puertas lógicas) fabricados en una única pieza de material semiconductor (generalmente silicio), formando un circuito con un comportamiento específico.
  • Circuito Embebido: Un sistema informático diseñado para realizar funciones específicas, con sus componentes (procesador, memoria, periféricos) integrados en una placa base, a menudo como parte de un dispositivo más grande.

Clases de Computadores

  • Dispositivo móvil personal: Como tablets o móviles. Se centran en la eficiencia energética y el tiempo de uso (autonomía).
  • Ordenador de escritorio: Pone énfasis en la relación precio-rendimiento.
  • Servidores: Diseñados para alta disponibilidad, rendimiento y capacidad de procesamiento de datos (Nota: El texto original no especificaba características).

Paralelismo

El paralelismo a nivel de instrucción (ILP) ya no es el enfoque principal de mejora. Este cambio se debe a que los ordenadores comenzaron a incorporar múltiples procesadores (multicore), permitiendo derivar instrucciones a varios de ellos simultáneamente.

Nuevos modelos de paralelismo requieren una reestructuración explícita de la aplicación:

  • DLP (Data-Level Parallelism): Paralelismo a nivel de datos (aplicable a variables, multimedia, etc.).
  • TLP (Thread-Level Parallelism): Paralelismo a nivel de subproceso o hilo.
  • RLP (Request-Level Parallelism): Paralelismo a nivel de solicitud (común en servidores).

Relación entre Arquitectura, Tecnología, Hardware y Software

¿Con qué está relacionada la mejora de la arquitectura y la tecnología?

  • La mejora de la arquitectura está relacionada principalmente con el hardware, lo que generalmente resulta en mayor velocidad y capacidad.
  • La tecnología se asocia más con el software y las técnicas de implementación, y su rendimiento dependerá del hardware subyacente.

Ancho de Banda (Bandwidth) y Latencia

  • Tiempo de respuesta: Es el tiempo total transcurrido desde que se inicia una tarea (ej. ejecutar un código) hasta que finaliza. Incluye todos los componentes del sistema (CPU, memoria, E/S, etc.).
  • Desafío Memoria-Procesador: El crecimiento de la velocidad de los procesadores ha superado históricamente al de la memoria principal. Si tenemos una memoria demasiado lenta respecto a un procesador muy rápido, se crea un cuello de botella.

Jerarquía de Memoria

Se utiliza una jerarquía de memoria (registros, caché L1, L2, L3, memoria principal, almacenamiento secundario) para:

  • Crear diferentes niveles con distintas velocidades de acceso y costes.
  • Optimizar el rendimiento promedio del acceso a datos.
  • Dar la falsa sensación de una memoria infinita y rápida al usuario/programa.
  • Algunos niveles de la caché deben ser casi tan rápidos como el procesador para ser efectivos.

Principio de Proximidad (Localidad): Si se accede a un dato, es muy probable que se necesite acceder pronto a otros datos cercanos (localidad espacial) o al mismo dato de nuevo (localidad temporal). La jerarquía de memoria explota este principio.

Potencia y Energía

  • Energía dinámica: Es la energía consumida por los transistores al cambiar de estado (realizar una operación).
  • Existen costes asociados tanto al consumo energético (factura eléctrica, refrigeración) como al precio inicial del hardware.

Técnicas para Reducir el Consumo Energético

  • Estados de bajo consumo (Idle states): Poner partes del sistema en reposo cuando no están activas («no hacer nada»).
  • Escalado dinámico de voltaje y frecuencia (DVFS): Reducir el voltaje y la frecuencia de operación del procesador cuando no se requiere el máximo rendimiento.
  • Apagar módulos no utilizados: Desactivar completamente componentes o núcleos que no están en uso.

Fiabilidad de Módulos

Se manejan distintas métricas y etapas relacionadas con la fiabilidad:

  • MTTD (Mean Time To Detect): Tiempo Medio Hasta la Detección de un fallo.
  • MTTR (Mean Time To Repair): Tiempo Medio de Reparación tras un fallo.
  • MTTF (Mean Time To Failure): Tiempo Medio Hasta el Fallo. Indica el tiempo esperado de funcionamiento correcto antes de que ocurra un fallo (a menudo irreparable o que requiere intervención).

Benchmark

Un benchmark es una técnica o programa estándar utilizado para medir el rendimiento de un sistema informático o uno de sus componentes bajo una carga de trabajo específica.

Estrategias de Escritura de Caché

Determinan cuándo se escriben los datos modificados en la caché al nivel inferior de memoria:

  • Write-through: Escribe simultáneamente en la caché y en el nivel inferior de memoria (ej. memoria principal) de manera inmediata. Para evitar que el procesador espere, se suele usar un buffer de escritura (Write Buffer).
  • Write-back: Solo se actualiza el bloque en el nivel inferior cuando el bloque modificado en la caché (marcado con un bit «sucio» o dirty bit) va a ser desalojado o reemplazado.

Fallos de Caché (Cache Misses)

Un fallo ocurre cuando el dato solicitado por el procesador no se encuentra en la caché.

  • Tasa de fallos (Miss Rate): Fracción de accesos a memoria que resultan en un fallo de caché. (Misses / Total Accesses).
  • Fallo obligatorio/inevitable (Compulsory Miss): Ocurre en el primer acceso a un bloque de datos, ya que la caché inicialmente está vacía o no contiene ese bloque.
  • Fallo por capacidad (Capacity Miss): Ocurre porque la caché no es lo suficientemente grande para contener todos los bloques necesarios para la ejecución del programa, obligando a desalojar bloques que serán necesitados más tarde.
  • Fallo por conflicto (Conflict Miss): Ocurre en cachés que no son totalmente asociativas. Varios bloques de memoria compiten por el mismo conjunto (línea) en la caché, y un bloque es desalojado y luego necesitado de nuevo, aunque haya espacio libre en otras partes de la caché.

Tecnología de Memorias y Optimizaciones

Las cachés son típicamente pequeñas, rápidas (baja latencia), volátiles (pierden datos sin energía, como SRAM) y caras por bit en comparación con la memoria principal (DRAM).

Tipos de Memoria

  • Memoria volátil (ej. SRAM, DRAM): Almacena temporalmente datos mientras recibe energía. Es la usada para registros, cachés y memoria principal.
  • Memoria no volátil (ej. Flash, SSD, ROM): Almacena permanentemente la información incluso sin energía. Usada para almacenamiento a largo plazo y firmware.

Optimizaciones de la Jerarquía de Memoria

  • Aumentar tamaño de bloque: Puede reducir la tasa de fallos obligatorios (localidad espacial) pero puede aumentar la penalización por fallo (más tiempo para transferir) y los fallos por conflicto.
  • Aumentar capacidad de la caché: Reduce los fallos por capacidad, pero incrementa el coste y posiblemente el tiempo de acierto (hit time).
  • Aumentar asociatividad: Reduce los fallos por conflicto, pero puede aumentar la complejidad y el tiempo de acierto.
  • Aumentar niveles de cachés (multinivel): Introduce cachés intermedias (L2, L3) para reducir la penalización por fallo de la caché superior (L1) y la tasa de fallos vista por la memoria principal.
  • Dar prioridad a lecturas sobre escrituras: Las lecturas suelen estar en la ruta crítica. Priorizar un fallo de lectura sobre una escritura pendiente (usando buffers de escritura) puede reducir el tiempo de espera del procesador.
  • Realizar la traducción de direcciones (Memoria Virtual) en la caché: Usar TLBs (Translation Lookaside Buffers).

Métricas Clave

  • Latencia de memoria caché (Hit Time): Tiempo para acceder a un dato que está en la caché. Depende de la tecnología y organización de la caché.
  • Tiempo de ciclo de una memoria: Tiempo mínimo que debe transcurrir entre el inicio de dos accesos consecutivos a la memoria.

Optimizaciones Avanzadas de Memoria

Objetivos generales para mejorar el rendimiento del sistema de memoria:

  • Reducir el tiempo de acierto (Hit Time): Hacer la caché más rápida.
  • Incrementar el ancho de banda de la caché: Permitir transferir más datos por unidad de tiempo.
  • Reducir la penalización por fallo (Miss Penalty): Disminuir el tiempo que se tarda en traer un bloque del nivel inferior tras un fallo.
  • Reducir la tasa de fallos (Miss Rate): Disminuir la frecuencia con la que ocurren los fallos.
  • Reducir la penalización por fallo mediante paralelismo: Solapar la ejecución con la gestión de fallos.

Técnicas para Reducir la Penalización por Fallo

  • Uso de Buffers de Escritura (Write Buffering): Permiten que el procesador continúe ejecutando instrucciones después de una escritura, mientras esta se completa en segundo plano hacia la memoria. Reduce la espera en escrituras (especialmente con write-through).

Optimizaciones de Compilador

  • Hardware: Conjunto de componentes físicos del equipo.
  • Software: Conjunto de programas, instrucciones y reglas informáticas.

El compilador (software) puede optimizar el código generado para mejorar el rendimiento de la memoria. Una técnica es el bloqueo (blocking) o embaldosado (tiling) de bucles, que reordena los accesos para mejorar la localidad temporal y espacial, reduciendo fallos de caché, aunque puede requerir más lógica de acceso.

Hardware Prefetching

Es una técnica de hardware donde el sistema de memoria intenta anticipar los datos que el procesador necesitará a continuación y los trae a la caché antes de que sean solicitados explícitamente. Por ejemplo, al acceder al bloque `i`, el hardware puede traer también el bloque `i+1` (prefetching secuencial).

Uso Alto de Ancho de Banda de Memoria

La demanda de un alto ancho de banda es crucial en muchas aplicaciones (gráficos, ciencia de datos). La latencia de memoria (tiempo desde que se solicita un dato hasta que se recibe) y el ancho de banda (cantidad de datos transferidos por unidad de tiempo) son factores clave.

Paralelización a Nivel de Instrucción (ILP) y Riesgos

ILP busca ejecutar múltiples instrucciones simultáneamente en un procesador. Sin embargo, existen riesgos (hazards) que lo impiden o complican:

  • Riesgos estructurales: El hardware no puede soportar la ejecución simultánea de ciertas combinaciones de instrucciones (ej. dos accesos a memoria a la vez si solo hay un puerto).
  • Riesgos de datos: Una instrucción depende del resultado de una instrucción anterior que aún no ha completado. Tipos:
    • RAW (Read After Write): Dependencia verdadera. Una instrucción lee un registro/memoria después de que otra lo escriba.
    • WAR (Write After Read): Anti-dependencia. Una instrucción escribe antes de que otra anterior lea el valor original.
    • WAW (Write After Write): Dependencia de salida. Dos instrucciones escriben en el mismo destino.
  • Riesgos de control: Relacionados con instrucciones de salto o bifurcación. El procesador no sabe qué instrucción ejecutar a continuación hasta que se resuelve la condición del salto.

Planificación de Instrucciones

  • Planificación dinámica: Realizada por el hardware en tiempo de ejecución. Permite ejecutar instrucciones fuera del orden original del programa (out-of-order execution) para evitar paradas por riesgos. Es más rápida pero más costosa y compleja (ej. algoritmo de Tomasulo, Scoreboarding). Utiliza estaciones de reserva (hardware) para almacenar instrucciones en espera.
  • Planificación estática: Realizada por el software (compilador) antes de la ejecución. Reordena las instrucciones en el código para minimizar los riesgos, pero las instrucciones se ejecutan generalmente en el orden en que llegan al procesador (in-order execution). Es más lenta en adaptarse a condiciones dinámicas pero más simple en hardware.

Dependencias de Datos (Revisión)

Tipos de dependencias que causan riesgos de datos:

  • WAW (Write After Write): Dependencia de salida.
  • WAR (Write After Read): Anti-dependencia.
  • RAW (Read After Write): Dependencia verdadera.

Dejar un Comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *