Optimización de Sistemas de Entrada y Salida en Computadoras: Componentes, Rendimiento y Jerarquía de Memoria

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 13,93 KB

Organización de la Entrada/Salida (E/S)

Introducción

Un computador consta de tres subsistemas principales: memoria, CPU y sistema de E/S.

El sistema de E/S está formado por componentes que permiten el movimiento de datos entre los dispositivos externos y el tándem CPU - Memoria. Incluye:

  • Dispositivos de E/S: Constituyen la interfaz del ordenador con el exterior. Pueden ser periféricos que interactúan con el usuario para proporcionar entradas al sistema (ratón, teclado, etc.), dispositivos que interactúan con otros dispositivos (redes de comunicación, dispositivos de almacenamiento, etc.).
  • Interconexión entre el procesador, la memoria y los diferentes dispositivos periféricos: Conexión física entre componentes, mecanismos básicos de transmisión de información, interfaz con los dispositivos de E/S y organización de las operaciones de E/S.

Gran parte de las características de los sistemas de E/S vienen determinadas por la tecnología existente en cada momento, además de verse condicionadas por el resto de componentes del sistema.

Características de la E/S

  • Amplia variedad de dispositivos con diferentes formas de funcionamiento.
  • Velocidad de transferencia de los periféricos mucho menor que la de la CPU o la memoria.
  • Diferentes formatos y tamaños de datos (palabra).

Parámetros de Diseño de Sistemas de E/S

  • Rendimiento
  • Escalabilidad o expansibilidad
  • Tolerancia a fallos

Medidas de Rendimiento

Ancho de banda, latencia y coste están íntimamente relacionados. En líneas generales, el ancho de banda se puede incrementar aumentando el coste del sistema. La latencia puede ser mucho más difícil de mejorar sin cambiar la tecnología de implementación.

Latencia (Tiempo de Respuesta o Ejecución)

Tiempo total transcurrido desde el comienzo hasta la finalización de una tarea (medido en unidades de tiempo o ciclos de reloj).

  • TCPU = Tusuario + Tsistema
  • Mayor rendimiento = menor latencia

Ancho de Banda (Potencia o Productividad)

Cantidad de trabajo realizado en un tiempo determinado (medido en cantidad en unidad de tiempo).

En función del contexto, las dos maneras más habituales de medir el ancho de banda son:

  • Cantidad de datos que pueden moverse a través del sistema en un determinado tiempo (ancho de banda de datos o data rate).
  • Número de operaciones de E/S que se pueden realizar por unidad de tiempo (ancho de banda de operaciones o I/O rate).
  • Mayor rendimiento = Mayor ancho de banda

El ancho de banda es la tasa a la que un sistema es capaz de atender peticiones, y no siempre es el inverso de la latencia: la concurrencia en el manejo de peticiones permite incrementar el ancho de banda por encima de 1/latencia.

Otros Índices de Rendimiento

  • Interferencia de la E/S con el procesador: Porcentaje de ciclos de reloj que emplea el procesador en tareas de E/S (lo ideal es lo más bajo posible).
  • Diversidad: Variedad de dispositivos de E/S que pueden conectarse al sistema (tipo de dispositivos).
  • Capacidad/escalabilidad/expansibilidad: Número de dispositivos de E/S que pueden conectarse al sistema (número de dispositivos).
  • Capacidad de almacenamiento: En el caso de dispositivos de almacenamiento.

Rendimiento en un Computador

A menudo se tiene en cuenta solo el rendimiento de la CPU, obviando el resto del sistema, considerando:

TiempoPrograma = TiempoCiclo x CiclosInstrucción x InstruccionesPrograma

Optimizar ese tiempo de CPU no es la única forma de incrementar el rendimiento del sistema: la memoria y la E/S influyen también en gran medida en ese rendimiento.

Opciones de Mejora

  • Optimizar la CPU (maximizar la velocidad y eficiencia de las operaciones ejecutadas por la CPU).
  • Optimizar la memoria (maximizar la eficiencia en el acceso a memoria).
  • Optimizar la E/S (maximizar la eficiencia de las operaciones de E/S).

En función de qué factor está agravando más el rendimiento del sistema, distinguimos entre sistemas:

  • Limitados por CPU
  • Limitados por memoria
  • Limitados por E/S

Aceleración (medida de rendimiento tras incorporar una mejora a un sistema) = RendimientoTrasMejora / RendimientoAntesMejora = T.EjecuciónAntesMejora / T.EjecuciónTrasMejora

Ley de Amdahl

Nos dice cómo calcular la aceleración que se obtendrá en un sistema con la incorporación de una determinada mejora, en función de dos factores:

  • La fracción de tiempo de ejecución en el sistema original que va a aprovecharse de la mejora (FracciónMejora).
  • La aceleración que se lograría si el sistema completo pudiera aprovecharse de la mejora (AceleraciónMejora > 1).

AceleraciónConjuntaGlobal = 1 / [(1 - FracciónMejora) + (FracciónMejora / AceleraciónMejora)]

Modelo de Dispositivo de E/S

Dos componentes fundamentales:

1. Dispositivo Físico

Constituido normalmente por la mayor parte del dispositivo. En determinados periféricos, como dispositivos de almacenamiento, se trata de una parte esencialmente mecánica. Es la parte del dispositivo que realmente realiza las tareas de las que se encarga el periférico.

2. Controladora de Dispositivo

Parte electrónica que sirve de interfaz entre el dispositivo (o los dispositivos) y el resto del sistema. Sus principales funciones son:

  • Control y temporización.
  • Almacenamiento temporal de datos (buffering).
  • Detección de errores.

La CPU se comunica con los diferentes dispositivos usando los registros de E/S de los mismos.

Interfaz (Lógica) CPU - E/S

Para poder ser accedido, un dispositivo de E/S tiene que ser direccionable por el procesador. Dos aproximaciones:

1. E/S Asignada al Espacio de Memoria

Con este esquema, una parte del mapa de memoria del sistema es reservado para E/S en lugar de para memoria, asignando las direcciones en ese rango a los distintos dispositivos de E/S.

Así, existe un único espacio de direcciones en el sistema, que se emplea tanto para la memoria principal como para E/S. La CPU trata los registros de los dispositivos de E/S como posiciones de memoria, usando las mismas instrucciones para acceso a memoria y a dispositivos de E/S. Permite un diseño de la CPU más sencillo y, por tanto, una CPU más rápida y más barata.

Búsqueda de Líneas en Caché

  • Índice: Selecciona un conjunto de la caché.
  • Etiqueta: Se compara simultáneamente con todas las etiquetas del conjunto seleccionado.
  • El bit de validez nos indica si la entrada contiene una dirección válida.
  • Aumentar la asociatividad incrementa el tamaño de la etiqueta.

Reemplazo de Líneas en Caché

Tenemos que establecer un criterio para reemplazar líneas en un fallo de caché.

  • En correspondencia directa: Una única posibilidad.
  • En asociativa por conjuntos o totalmente asociativa: Hay que escoger una línea entre las de un conjunto o entre todas las de la caché, respectivamente.

Principales Estrategias de Reemplazo

  1. Aleatoria: Se hace una elección aleatoria (fácil de implementar).
  2. Menos Recientemente Usado (LRU): El bloque sustituido es el que hace más tiempo que no es usado.

Operación de Escritura en Caché

Dos opciones básicas para escribir en caché:

1. Escritura Directa

La información se escribe en la caché y en la memoria de nivel inferior. Ventajas:

  • Fácil de implementar (detención de la UCP en la escritura -> buffer de escritura).
  • Fallos de lectura menos costosos.
  • La memoria del nivel inferior está siempre actualizada.

2. Postescritura

Solo se escribe en la caché y cuando se reemplaza la línea se escribe en memoria. Ventajas:

  • Escritura a la velocidad de la caché.
  • Múltiples escrituras en una línea implican una sola escritura de la línea completa en la memoria.
  • Menor ancho de banda de memoria.
  • Se puede hacer uso efectivo del ancho de banda del nivel más bajo.

Bit de modificación: Bit de estado que se usa en postescritura para indicar si una línea se ha modificado o no. Reduce la frecuencia de escritura ante reemplazos de línea, ya que si la línea no se ha modificado no hace falta escribirla en memoria.

Opciones en un Fallo de Escritura

  1. Ubicar en escritura o búsqueda en escritura: La línea se carga y siguen las acciones de acierto de escritura (en postescritura). Se busca que las escrituras subsiguientes en la línea no provoquen fallos.
  2. No ubicar en escritura o evitar escritura: La línea se modifica en el nivel inferior y no se carga en la caché (escritura directa). Las escrituras subsiguientes en la línea provocarán escrituras a memoria.

Rendimiento de la Caché

TiempoMedioAccesoMemoria = TiempoAcierto + (TasaFallos x PenalizaciónFallo)

TiempoCPU = (CiclosEjecuciónCPU + CiclosDetenciónMemoria) x TiempoCicloReloj

Para simplificar, asumiremos que todas las detenciones son debidas a la caché e incluiremos los ciclos de reloj de los aciertos como ciclos de reloj de ejecución CPU:

CiclosDetenciónMemoria = [(Lecturas/Programa) x TasaFallosLectura x PenalizaciónFallosLectura] + [(Escrituras/Programa) x TasaFallosEscritura x PenalizaciónFallosEscritura]

Combinando las lecturas y escrituras simplificamos:

CiclosDetenciónMemoria = (AccesosMemoria/Programa) x TasaFallos x PenalizaciónFallos

Factorizando el recuento de instrucciones (IC):

TiempoCPU = IC x [CPIEjecución + (AccesosMemoria/Instrucción) x TasaFallos x PenalizaciónFallos] x TiempoCicloReloj

Si consideramos la tasa de fallos como fallos por instrucción:

TCPU = IC x [CPIEjecución + (Fallos/Instrucción) x PenalizaciónFallos] x TiempoCicloReloj

El comportamiento de la caché tiene gran influencia en el rendimiento. En una CPU con CPI bajo y un reloj rápido tiene un doble impacto:

  1. A menor CPI, el impacto relativo de los ciclos es más pronunciado.
  2. Para idénticas jerarquías de memoria de dos computadores, la CPU con mayor frecuencia de reloj usa mayor número de ciclos en un fallo.

En las ecuaciones anteriores hemos supuesto que el tiempo de acierto no es un factor determinante en el rendimiento. En las técnicas de mejora del rendimiento de la caché nos fijaremos como objetivo razonable minimizar el TiempoMedioAccesoMemoria, sin embargo, debemos tener en cuenta que el objetivo final es reducir el TiempoCPU.

Fuentes de Fallos en Caché

A) Forzosos

El primer acceso a una línea no está en la caché (llamados también 'fallos de arranque en frío' o 'fallos de primera referencia').

B) De Capacidad

La caché no tiene capacidad suficiente para contener todas las líneas necesarias durante la ejecución de un programa.

C) De Conflicto

Ocurren en ubicación asociativa por conjuntos o de correspondencia directa, cuando una línea es descartada y posteriormente recuperada, si a un conjunto le corresponden demasiadas líneas (llamados también 'fallos de colisión').

Características del modelo: Da una visión del comportamiento medio, no explica fallos individuales y no tiene en cuenta la política de reemplazo.

Muchas técnicas de reducción de la tasa de fallos pueden incrementar el TiempoAcierto o la PenalizaciónFallo.

Cachés de Datos e Instrucciones

Las cachés unificadas o mixtas que contienen instrucciones y datos pueden ser un cuello de botella. La CPU sabe si está emitiendo la dirección de una instrucción o dato, pudiendo separar puertos.

Ventajas de Cachés Separadas

  1. Casi dobla el ancho de banda entre la CPU y la jerarquía de memoria.
  2. Optimización por separado de cada caché.
  3. Elimina fallos de conflicto entre instrucciones y datos.

Inconvenientes de Cachés Separadas

  1. Espacios fijos para instrucciones y datos -> peor TasaAciertos.
  2. Inconsistencia: Instrucciones y datos en la misma línea, instrucciones modificables.

Reducción de la Tasa de Fallos en Caché

Incrementar el Tamaño de la Línea

  • Reduce los fallos forzosos.
  • Puede incrementar los fallos de conflicto y de capacidad.
  • Incrementa la PenalizaciónFallo.
  • La selección del tamaño de línea depende de la latencia y del ancho de banda del nivel inferior de la jerarquía de memoria.

Incrementar la Asociatividad

  • Reduce los fallos de conflicto.
  • En la práctica, una caché asociativa por conjuntos de 8 vías es tan efectiva como una totalmente asociativa.
  • Una caché de correspondencia directa tiene aproximadamente la misma tasa de aciertos que una caché de 2 vías con la mitad de tamaño.

Entradas relacionadas: