Please enable JavaScript.
Coggle requires JavaScript to display documents.
Técnicas de aumento de prestaciones - Coggle Diagram
Técnicas de aumento de prestaciones
Técnicas de optimización para la memoria caché
A. Caché de víctimas (Técnica para reducir la penalización por fallo)
Es un caché pequeño que se coloca en la ruta de recarga de un caché de la CPU que almacena todos los bloques desalojados de ese nivel.
Se considera como una técnica de hardware para mejorar el rendimiento de los cachés propuesta por Norman Jouppi (Informático).
Se considera que cuanto menor es la memoria cache más efectiva es la cache víctima.
Uno de los experimentos de Jouppi consistía en una cache de 4KB con emplazamiento directo, una cache víctima de 4 bloques elimina del 20% al 95% de los fallos.
Los fallos en el caché que aciertan en el caché de fallos tienen una penalización de un ciclo.
B. Caché predictiva (Técnica para reducir la tasa de fallos)
Es un caché que tiene como finalidad reducir la latencia de acceso al primer nivel de la memoria caché, en la parte de datos.
Teniendo en cuenta que el tiempo de acceso de una memoria asociativa de nivel dos son dos ciclos, se plantea que la búsqueda del dato en la memoria no se haga simultáneamente en varios bloques de memoria.
Consume primero un ciclo de reloj, posteriormente comparar los valores que arrojan cada uno de los bloques en un segundo ciclo.
Si no se encuentran datos después del ciclo, se haría el acceso al un segundo bloque con una penalización de un ciclo adicional.
C. Caché de trazas (Técnica para reducir el tiempo de acceso)
Es un caché que guarda secuencias dinámicas de instrucciones ejecutadas en lugar de secuencias estáticas de instrucciones en orden de almacenamiento en memoria.
Fue empleada por primera y por el momento, única vez en un microprocesador Pentium 4.
Una de sus funciones es simplificar la búsqueda de instrucciones y proporciona un alto ancho de banda.
Es capaz de reducir el retraso desde la lectura de las instrucciones hasta una fase de ejecución, optimizando tanto tiempo como energía.
Sin embargo, al almacenar las instrucciones en forma de traza genera redundancia y fragmentación, lo que la hace menos eficiente que una memoria caché tradicional.
D. Cachés pseudoasociativas
Se lo considera como un caché de correspondencia directa que con una ligera modificación se pueden comportar como un caché asociativo.
El caché asociativo se caracteriza por asociar un conjunto de pruebas de todas las formas posibles simultáneamente, aunque usando algo como una memoria direccionable de contenido.
Por su parte un caché pseudoasociativo prueba todas las formas posibles, una a la vez, además de no utilizar otros medios como la memoria direccionable.
Es un caché que utilizar toda la capacidad de la cache para reubicar algunos bloques extra en bloques que en principio no les pertenece.
Se implementa cuando en una cache de correspondencia directa falla antes de ir a buscar en la memoria principal, puede intentarse en otro bloque dando como resultado los "pseudo conjunto”.
Técnicas de optimización para la memoria principal
A. Memoria principal con palabra ensanchada (Técnica incrementar el ancho
de banda)
Al diseñar un sistema de comunicación, uno de los principales inconvenientes es lograr la optimización en el uso del ancho de banda del canal y la energía con la que opera el sistema, siendo estos los asuntos más importantes a la hora de implementar procesos de transmisión de información.
La memoria principal con palabras ensanchadas se puede definir como un sistema en el cual la energía media de la señal transmitida se reparte sobre una anchura de banda mucho mayor que la de la información.
La energía media de la señal transmitida se reparte sobre una anchura de banda mucho mayor que la de la información.
Estos sistemas intercambian una mayor anchura de banda de transmisión con una densidad espectral de potencia más baja y un mayor rechazo de las señales interferentes que se dan en la banda de frecuencias.
Una forma de acelerar la operación de llenado de la línea de caché consiste en ensanchar el sistema de memoria.
Se puede mejorar el rendimiento de un sistema de memoria, incrementando el ancho del mismo hasta que iguale la longitud de la línea de cache, se llenara la línea completa en un solo ciclo de memoria.
B. Memoria principal entrelazada (Técnica incrementar el ancho de banda)
Para aumentar el ancho de banda de una memoria principal se puede descomponer en módulos con accesos independientes.
De manera que se pueda acceder simultáneamente a una palabra de cada uno de los módulos.
Existen diferentes elementos de diseño en una memoria modular, siendo el orden del entrelazado de las direcciones uno de los principales. Los tipos de entrelazado son:
Entrelazado de orden inferior.-
Consiste en asignar a módulos consecutivos direcciones consecutivas del mapa de memoria, además si las referencias sucesivas a memoria son consecutivas, se reducen los conflictos de acceso.
Entrelazado simple.-
Consiste en acceder a todos los módulos con la misma dirección, requiere entrelazado de orden inferior.
Entrelazado de orden superior.-
Consiste en distribuir las direcciones de memoria entre los módulos de modo que cada uno contenga direcciones consecutivas, facilita la expansión de la memoria.
Entrelazado complejo.-
Consiste en acceder a todos los módulos con direcciones diferentes, como ventaja las direcciones a las que se accede no tienen que ser consecutivas.
Técnicas de optimización para los dispositivos de almacenamiento
A. RAID (0,1,2,3,4,5,6)
RAID (Redundant Array of Independent Disks o conjunto redundante de discos independientes) hace referencia a un sistema de almacenamiento que usa múltiples discos duros entre los que distribuye o replica los datos.
Suelen usarse en servidores y normalmente se implementan con unidades de disco de la misma capacidad.
RAID puede hacer una protección contra la pérdida de datos y proporciona recuperación de datos en tiempo real con acceso interrumpido en caso de que falle un disco.
RAID permite a varias unidades trabajar en paralelo, lo que aumenta el rendimiento del sistema.
RAID aumenta el tiempo de funcionamiento y la disponibilidad de la red.
Tipos de RAID
RAID 2.-
Divide los datos a nivel de bits en lugar de a nivel de bloques, utiliza código Hamming (código que detecta errores en un bit y corregirlos) para la corrección de errores.
RAID 3.-
Acceso síncrono con un disco dedicado a paridad. Usa división a nivel de bytes. No puede atender peticiones simultáneas, cualquier operación de lectura o escritura exige activar todos los discos.
RAID 0+1.-
Utiliza ambos RAID que proporciona velocidad y tolerancia a fallos. Fracciona los datos para mejorar el rendimiento mientras que utiliza un conjunto de discos duplicados para conseguir redundancia de datos.
RAID 4.-
Acceso independiente con un disco dedicado a la paridad. Basa su tolerancia a fallos en la utilización de un disco dedicado a guardar la información de paridad calculada a partir de los datos guardados en otros discos.
RAID 1: mirroring.-
Se basa en la utilización de discos adicionales sobre los que se realiza una copia en todo momento de los datos que se están modificando.
RAID 5.-
Acceso independiente con paridad distribuida, además ofrece tolerancia a fallos y además optimiza la capacidad del sistema.
RAID 0: disk stripping.-
Tiene la transferencia más alta, pero sin tolerancia a fallos, se utiliza normalmente para incrementar el rendimiento. Es recomendable su uso en aplicaciones de tratamiento de imágenes, audio y vídeo.
RAID 6.-
Acceso independiente con doble paridad, es parecido al RAID 5, pero incluye un segundo esquema de paridad distribuido por los diferentes discos, por lo que ofrece tolerancia extremadamente alta a los fallos y las caídas de disco.
B. Recuperación ante fallo de disco (Off line y On line)
Aunque un disco puede seguir funcionando con algunos sectores defectuosos después de un fallo, el incremento de los mismos lo hace poco fiable, por lo que conviene descartarlo.
En la actualidad, los discos incorporan la tecnología S.M.A.R.T. la cual permite la detección de errores en el disco.
Esta tecnología a pasado por varias fases:
Mas tarde se añadió un chequeo "off line", que se realizaba de forma adicional para mejorar la prevención de fallos dentro del disco.
En la actualizad, esta tecnología no solo monitorea las actividades del disco, sino que también detecta y corrige automáticamente sectores defectuosos, manteniendo la integridad de los datos.
Los primeros discos con tecnología S.M.A.R.T. podían realizar un chequeo de los datos "on line", ya que mientras se iban transfiriendo operaciones normales del disco, podía registrar fallos y una estadística de ello.
Técnicas de optimización para la gestión de entrada y salida
A. NPU
Es un procesador que incluye procesadores, controladores ethernet, y otras características integradas, diseñadas para realizar funciones de red.
Una de sus funciones principales consta de procesar las tramas recibidas para extraer información. Se emplea una configuración vía web para su uso
También logra integrar uno o varios procesadores, controladores de interfaces de red, controladores de diferentes tipos de memoria y otra circuitería dedicada al procesamiento de tráfico de red.
Puede acelerar las tareas de búsqueda de patrones en el paquete para llevar a cabo la medición y clasificación del tráfico de red.
Algunas NPU pueden realizar la función de Scheduling (asignación de recursos limitados a tareas a lo largo del tiempo) para la cola de salida, además el NPU utiliza más de un núcleo para realizar las tareas mencionadas en paralelo.
B. GPU
GPU Y MEMORIA DE JERARQUÍA
Memoria global.-
Es una memoria de lectura/escritura, se localiza en la tarjeta de la GPU y la acceden todos los threads (secuencia de tareas encadenadas muy pequeña) de una aplicación.
Memoria compartida.-
Es una memoria de lectura/escritura para los threads de un bloque, el acceso es rápido porque se encuentra dentro del circuito integrado de la GPU.
Memoria de registros.-
Es la memoria más rápida, de lectura/escritura para los threads. Está dentro del circuito integrado de la GPU y sólo accesible por cada thread.
El funcionamiento de las GPU es sintetizado como un pipeline (cadena de elementos) de procesamiento formado por etapas. Estas son ejecutadas en paralelo y según un orden preestablecido.
La historia de las GPU se inicia desde la década de los 60's, cuando se pasa de la impresora como medio de visualización de resultados a los monitores.
La GPU desde sus inicios fue un procesador con muchos recursos computacionales, actualmente pasó de ser un procesador con funciones especiales a ser considerado un coprocesador masivamente paralelo, capaz de ser la arquitectura base de aplicaciones paralelas.