Las computadoras representan un elemento casi indispensable en la sociedad el hoy en día, debido a que es el principal elemento que las personas usan para conectarse al internet y al mundo de redes, que posee una gran cantidad de información, al tener contacto con este mundo informático se almacena todo tipo de datos en el servidor, por ello en el siguiente artículo presentaremos a la memoria caché, una parte fundamental en los dispositivos de hoy en día.

memoria cache

Memoria Caché

Las computadoras consisten en dispositivos que permiten procesar diferentes datos digitales que son presentados por el mundo de la informática. Dentro del computador se desarrollan un conjunto de hardware que permiten conectar con las plataformas habilitadas para navegar por los diferentes usuarios distribuidos en todo el mundo, por ello es relevante no solo conocer las partes mecánicas del equipo sino las operativas del mismo.

En este caso se puede destacar los diferentes elementos que interactúan con el sistema operativo del computador y la informática, entre ellos se destaca  la memoria caché que actúa como una memoria auxiliar que permite desarrollar gran velocidad y eficiencia en los dispositivos pero también permiten almacenar las copias de archivos y otros datos que permiten el acceso a muchos usuarios.

La memoria caché puede llegar a recibir otros nombres como antememoria o memoria intermedia, representa un componente de hardware o software que almacena los datos que representa los futuros datos del computador para ser procesado con mayor rapidez. Cada uno de ellos representa un resultado de cálculo llevado a cabo anteriormente por los sistemas operativos del dispositivo, permitiendo la velocidad de acceso mucho más rápido.

El caché es automáticamente activado una vez los datos sean solicitados y puedan ser ubicados de forma acertada mientras que el fallo del caché cuando los datos no pueden ser encontrados por el servidor. Al momento de llevarse a cabo la lectura del caché suelen circular de forma rápida y siendo calculado por el sistema, luego el resultado es almacenado a veces este tipo de almacén puede llegar a ser muy lento, mientras que mientras mayor solicitudes puede ejecutar más rápido funcionará el sistema.

Cabe destacar que una memoria caché representa una memoria de acceso rápido que se encuentra ubicada dentro del CPU (Unidad Central de Procesamiento), mediante ella es ejecutada el almacén temporal de datos que están recientemente procesados, por lo que se considera una información muy destacada. Por ello, se ubican en una sección principal que poseen las computadoras y actúa como una memoria principal.

memoria cache

La diferencia con una memoria principal es que posee menor tamaño y un acceso más rápido, su origen surge debido a las memorias internas de los computadores que no eran capaces de manejar la velocidad del procesador, por lo tanto se considera como una memoria auxiliar que ofrece mejores opciones para los procesadores

Estas memorias auxiliares tienen una gran velocidad y eficiencia, siendo empleada como un microprocesador para llegar a reducir el tiempo de acceso y velocidad de los datos ubicados en la memoria principal y principalmente para aquellos que son empleados con mayor frecuencia. Este tipo de memoria se encuentra ubicada entre la unidad de procesamiento (CPU) y la memoria de acceso aleatorio (RAM) ejerciendo la circulación de intercambios de datos.

En caso de acceder por primera vez a un dato el sistema del computador busca hacer copia en la memoria caché, donde permite los accesos destacados dentro del computador como dicha copia, con ello permite el menor tiempo de acceso medio al dato que se encuentra almacenado. En caso de ser un microprocesador llegue a solicitar lectura y escritura de la ubicación dentro de la memoria principal, lo primero que ejecutará es verificar la copia de datos que esté respaldada en la memoria caché. Una vez confirmado el microprocesador que lee y escribe dentro del caché, será mucho más rápido que la ejecutada dentro de la memoria principal.

Con ello, se debe hacer referencia que al tratar sobre caché está implicado el software con un espacio de memoria que almacena todos los datos calculados y copiados dentro de un rango de tiempo lento. Con regularidad al hacer referencia al caché del navegador web, estos espacios en el disco poseen la información temporal que está siendo descargada del internet o alguna red interna, normalmente la naturaleza del sistema posee una velocidad lenta dentro del disco físico de la máquina.

Características Relevantes

La palabra Caché proviene del vocablo inglés que significa escondite secreto para almacenar mercancía, en este caso hace referencia a contrabando. A su vez en francés significa escondite oculto; ambos tipo de palabra poseen un significado muy similar. En el caso del español se diferencia por presentar la palabra con tilde en la e caché, adaptando un estilo muy similar al neologismo, donde tiene un significado referente a la distinción y elegancia, incluso hace referencia a la cotización de un artista.

En el caso del español posee un significado muy similar al francés como cachet estando relacionado al sello o al salario. Dentro de los diccionarios de la lengua española es el único donde se reconoce la palabra con tilde en la e, a pesar de ello dentro de la literatura especializada lo relaciona con la arquitectura de computadoras. Los libros más destacados que se enfocan en ello es Andrew S. Tanenbaum, John Hennessy y David Patterson  donde emplea la palabra por ser anglosajona e incluso escrita en cursiva.

Motivación

Los dispositivos de computador están relacionados con el tamaño y la velocidad del equipo, debido que es un recurso grande puede implicar las mayores distancias físicas para ejecutar una compensación  para emplear tecnologías costosas como el SRAM además de emplear productos baratos que son producidos en masa como el DRAM y los discos duros. Dentro de su almacenamiento  en la memoria caché relacionándose con el ancho de banda conocido como latencia.

Latencia

Consiste en el recurso de mayor tamaño conocido como latencia que representa todos los sistemas de acceso, uno de los mayores ejemplos destacados en este caso es que puede tomar cientos de ciclos para que un procesador de 4GHZ que representa para tener la mayor disponibilidad del DRAM. Mitigando la lectura de fragmentos que han sido almacenados temporalmente en la memoria de forma más rápida y cerca del procesador, de esta manera se asegura que las lecturas sean más rápidas.

Mediante este sistema se puede llegar a conocer de forma explícita, para lograr adivinar las lecturas futuras que son llevadas a cabo además de procesar solicitudes con anticipación, en ese caso la latencia se reduce a ser casi despreciable.

Ancho de Banda

Mediante el uso del caché se puede garantizar un mayor rendimiento de los recursos secundarios presentes en el equipo, esto es llevado a cabo por el empaquetado de múltiples transferencias de todas la solicitudes grandes y eficientes.  En este caso se destaca el DRAM conocido como el  Dynamic Random Access Memory, es un tipo de memoria de acceso aleatorio sirviendo como un medio de ancho de banda.

Este tipo de programa tiene capacidad de ejecutar la lectura de bytes en un espacio que posea numerosas direcciones como de 32 bits pero al estar apoyado de esta función puede procesar hasta 128 bits fuera del chip. Los diferentes accesos para bytes individuales sin caché sólo serán analizados hasta u 1/16 del ancho de banda total, donde un 80% de los movimientos de datos son direccionados. Los trozos de mayor tamaño reducen la fracción hasta un ancho de banda necesario para transmitir la dirección.

Tipos de Caché

Las diferentes unidades de caché representan un sistema especial para ejecutar almacenamiento de alta velocidad, las mismas están almacenadas en el área de reserva en la memoria principal, actuando como un dispositivo de almacenamiento de alta velocidad independiente, por lo tanto se destacan tres tipos de caché que son más empleados en las computadoras personales descritas a continuación:

Caché de Disco

Consiste en la porción de la memoria RAM que está vinculada directamente al disco, posee la finalidad de almacenar los más recientes datos que son leídos y de esta manera agilizar la recarga de los mismos una vez hayan sido solicitados nuevamente. Mejorando el rendimiento del equipo para emplear sus aplicaciones, donde permite el acceso a un byte de los datos RAM que permite ser mil veces más rápido para acceder al disco duro.

Para el acceso de este tipo de caché está relacionado con el tiempo de procesamiento de datos almacenados en el disco duro en el orden de los milisegundos e incluso en el orden de los nanosegundos. Es mucho más fácil y rápido almacenar la información ubicados en la memoria central del disco duro, los arranques están vinculados por las aplicaciones instaladas dentro del equipo.

Caché de Pista

Consiste en una memoria de estado sólido del tipo RAM donde es empleado exclusivamente en supercomputadoras que necesitan un costo elevado para análisis de sus datos. Al estar destinadas a computadoras de alta capacidad son empleadas para aquellas con altos cálculos superiores que requieren de mayor rendimiento.

Caché Web

Consiste en llegar almacenar los diferentes documentos web, permitiendo la reducción del ancho de banda que es consumido, mediante la carga de todos los servidores y controlar el retraso de las descargas. Es una memoria volátil que manipulamos constantemente. En caso de llegar a aumentar la eficiencia de las cargas de páginas o sitios de internet, permitiendo reducir los consumos de datos y banda ancha para cumplir todos los objetivos.

Dentro de esta memoria se llegan almacenar todos los datos, siendo clasificados en tres tipos de caché web, el primero es conocido como caché privado que es empleado sólo para un usuario, en caso de ser empleado para varias páginas y diferentes usuarios se conoce como compartidos o caché público y por último es el empleado en su propio servidor original y los  clientes no distinguen uno y del otro, conocido como caché pasarela.

Composición de la Memoria Caché

La memoria caché hace referencia a todos los datos que son almacenados en diferentes niveles según el tipo de frecuencia que posean, con toda esa información se encarga de transferirse a los otros niveles de la memoria de forma inclusiva y exclusiva, a continuación se describen las partes principales de la memoria caché:

Caché Inclusivo

Representa a todos los datos que son solicitados y quedan almacenados en la memoria caché en que residen, por lo tanto llega a quedar una copia en varios de los niveles involucrados.

Caché Exclusivo

Está relacionado con los datos solicitados que son eliminados de la memoria caché por ser transferidos a un nuevo nivel, normalmente representa la zona en que los usuarios tienen el mayor contacto.

Niveles de las Memorias del Computador

Representa los niveles de almacenamiento en que son llevados a cabo dentro del computador, las mismas son necesarias para el funcionamiento de los discos duros por los que son clasificados en diferentes niveles:

Memoria primaria

Estas representan los propios discos duros encargados de almacenar la información de forma permanente, permitiendo que sea compatible con el computador o PC operativa. Dentro de la misma se llega almacenar toda la información desde los 150 MB/s en un disco duro mecánico e incluso los de 3500 MB/s los más rápido del mercado.

Memoria de acceso aleatorio

También hace referencia a la memoria RAM consiste en un tipo de memoria sólida de estructura pequeña, no siendo capaz de almacenar todos los datos de forma permanente, actuando como pasarela entre el procesador y el disco duro de la computadora.

Memoria Caché (tercer nivel)

Es considerada como la más pequeña con su propio microprocesador, estando cercana a los núcleos de procesamiento para alcanzar la mayor velocidad posible entre velocidades de 200 GB/s en 10 nanosegundos, dentro de sus propios niveles se clasifican por tres principales:

  1. Memoria Caché Nivel 1 (Caché L1)

Es conocida como la memoria interna que se encuentra instalado en los microprocesadores, empleado para almacenar  y acceder a los diferentes datos y todas las instrucciones relevantes que son empleadas con frecuencia, de esta manera se llega agilizar el proceso hasta llegar agilizar el proceso para los niveles que necesitan un tiempo menor, por lo tanto se clasifica en dos subniveles:

  • Nivel 1 Data Caché está encargado de llevar a cabo el almacenar todos los datos frecuentes.
  • Nivel 1 Instruction Cache es el enfocado en llevar a cabo el almacén de las instrucciones para ser empleadas frecuentemente.
  1. Memoria Caché Nivel 2 (Caché L2)

Es el encargado de almacenar los datos empleados con frecuencia, siendo de un tamaño superior al caché L1 pero suele ser mucho más lento pero incluso más rápido que la memoria principal (RAM). Es exclusiva y contiene la copia de todo el nivel 1 además de una información extra para realizar un contenido diferente al caché L1 y proporcionando la capacidad total.

  1. Memoria Caché nivel 3 (Caché L3)

Se trata de una memoria mucho más rápida que la RAM pero llegando a ser lenta y mayor al L”, es la encargada de agilizar el almacenamiento para una gran cantidad de información hasta llegar a facilitar las tareas del procesador. Este tipo de memoria se encarga de llevar a cabo las  instrucciones que no llegaron a ser localizadas por el L1 y el L2. En comparación con la L2 puede ser inclusiva y poseer una copia del L2 con información extra o también llegar a ser exclusiva y poseer información diferente a los otros niveles hasta adquirir una mayor capacidad de almacenamiento.

Diseño de la Memoria Caché

Los diseños de los dispositivos poseen una estructura especial para llevar a cabo las funciones solicitadas por el usuario que los esté empleando, en este caso se considera el diseño de la memoria caché que posee varios factores que influyen en el rendimiento del dispositivo, teniendo como principal objetivo aumentar la velocidad de respuesta en la jerarquía de la memoria, entre ellos se destaca los siguientes a continuación:

Política de Ubicación

Está relacionado con la sección en que está ubicada, con ello se decide dónde debe estar colada con regularidad es en el bloque de la memoria principal y la memoria caché, siendo los siguientes como los más empleados:

Directa

Es conocido como el bloque i-ésimo donde la memoria principal se encuentra entre la posición i módulo n, donde la n consiste en el número de bloques de la memoria caché. Cada uno de estos bloques están ubicados dentro de la memoria principal para una mejor posición en la caché y siempre ubicada en el mismo sitio. El principal inconveniente es que los bloques están asignados por una posición fija en la memoria caché, de esta manera continuar con las referencias de palabras con dos bloques ubicados en la misma zona, con ello continúan los fallos en los sitios libres de caché.

Asociativa

En el caso de los bloque de memoria principal se ubican en los bloques de la memoria caché, encargados de llevar a cabo la etiqueta para procesar los datos y ejecutar cada uno de los bloques para verificar los aciertos en el sistema. Este tipo de inconvenientes consiste en la cantidad de comparaciones por realizar.

Asociativa por Conjuntos

Los bloques de la memoria principal posee una asignación del conjunto caché, estando ubicados en diversos bloques que pertenecen al mismo grupo, permitiendo la mayor flexibilidad para corresponder directamente, además de una menor cantidad de comparaciones para una total asociativa.

Política de Extracción

Está relacionada con la memoria principal del computador donde se encarga de determinar cuándo un bloque debe ser extraído para la memoria principal y además identifica cual es el bloque necesario, entre ellos se destacan dos tipos de políticas que son extendidas descritas a continuación:

Por Demanda

Un bloque sólo es indicado dentro de la memoria caché cuando llegan a ser referenciados y no son encontrados en la memoria caché.

Con Prebúsqueda

La referencia del bloque i-ésimo de la memoria principal, trayendo el bloque (i+1)-ésimo dentro de la política basada en la propiedad de almacenamiento de programas.

Política de Reemplazo

Se encarga de determinar el bloque de la memoria caché que debe ser abandonado y existiendo en un espacio disponible para los nuevos bloques, donde se centran en nuevas políticas simplificadas en cuatros aspectos:

Aleatorio

Donde el bloque que compone a la memoria principal puede ser reemplazado de forma aleatoria, llevando a cabo este acto al azar.

FIFO

Actúa como un algoritmo  conocido como First In First Out (FIFO), identificado como una estructura de datos donde se puede establecer contabilidad de costes y las teorías de colas; este tipo de frase responde a la expresión de primero en entrar, primero en salir. Mediante ello se consigue identificar el bloque que llega abandonar el caché, a pesar de ello este algoritmo se considera poco eficiente.

Usado Menos Recientemente (LRU)

Conocido también como el algoritmo de reemplazo de página son las encargadas en sustituir el bloque que tiene más tiempo que no se ha llegado a usar en el caché, trayendo el caché del bloque de interés y modificarlo directamente, además se encarga de recolectar la información de los recursos que son consumidos. Este tipo de página es la que menos probabilidades tiene para ser empleadas nuevamente.

Usado con Menor Frecuencia (LFU)

Consiste en un tipo de algoritmo de reemplazos de páginas donde se evalúan las tasas de fallos dentro de una página, registrando el número de fallos dentro de una página. Este tipo de algoritmo se encarga de sustituir un bloque que haya experimentado menos referencias

Política de Actualización o Escritura

Están encargados en determinar toda la actualización de la información de la memoria principal cuando es llevado a cabo la escritura dentro de la memoria ejecutada, dentro de este sistema de políticas se destacan dos casos diferentes:

Sobre la Memoria Caché

Según lo descrito anteriormente se describe la memoria caché, la misma actúa como una memoria secundaria que guarda todos los datos para las diferentes solicitudes que permite la mayor rapidez para el procesamiento de los equipos computacionales. Según los criterios de escritura y actualización se destaca:

  • Escritura Inmediata:

Consiste en escribir a la vez en la memoria caché y también en la memoria principal manteniendo coherencia entre ambas.

  • Post-escritura:

El bloque en que se escribió llega a quedar referenciado con un bit identificado como “bit de basura”.  Actuando como un reemplazo de la política de reemplazo que es comprobado siempre y cuando el bit está activado, en caso que lo esté se indicará la información del bloque en la memoria principal.

Sobre la Memoria Principal

La memoria principal de un computador es conocida como la memoria central o interna que almacena todos los programas y datos necesarios en la unidad central de procesamiento (CPU), representa el cerebro principal de las computadoras, a continuación se destacan sus características por escrituras:

  • Asignación en escritura

Contempla al bloque referenciado que posee una copia en la memoria principal a la caché y luego es enviado como un bloque hacia el CPU.

  • No asignación en escritura

Se encarga de enviar directamente desde la memoria principal hacia el CPU y al mismo tiempo ejecuta la transferencia de datos a la memoria caché.

Optimización de la Memoria Caché

La optimización de un computador consiste en el proceso llevado a cabo para modificar el sistema del dispositivo con la finalidad de mejorar su eficiencia además de favorecer el uso de los recursos del aparato facilitando su rendimiento; la optimización de los equipos es obligatoria para mejorar el uso de las computadoras, por lo que es recomendable aplicarlo para los diferentes funciones del hardware y software del equipo.

Al ejecutar la optimización de la memoria caché, refleja la obtención de datos en ella, para ello se ejecutan diferentes que ayudan a corregir las fallas y errores que se presenten en el mismo, a continuación se destacan los más frecuentes para la mejora de rendimiento:

Reducir Fallos en la Caché (miss Rate)

La memoria caché representa una memoria auxiliar que posee funciones de acelerar los programas operativos dentro del computador, a pesar de poseer funciones muy esenciales puede presentar ciertos errores perjudiciales, en este caso se recomienda identificar el tipo de falla, las mismas se describen tres tipos de fallos que se presentan en la memoria caché a continuación conocidos como 3C:

  1. Forzosos (Compulsory o Cold)

Consiste en el primer acceso que se ofrece a los bloques, no siendo encontrado directamente en el caché, ya sea por fallos de arranque en frío o de primera referencia.

  1. Capacidad (Capacity)

El sistema caché se le dificulta contener todos los bloques por lo que requiere la ejecución de un programa en especial que contribuya en el sistema operativo.

  1. Conflicto (Conflict)

Los distintos bloques deben estar acompañados al mismo conjunto de las diferentes líneas de estrategias pautadas en asociación de conjuntos, este tipo de falla también se le conoce como fallos de colisión.

Sistema Multiprocesador

Los sistemas multiprocesadores destacan por llegar a poseer más de dos tipos de fallos y esto se atribuye a la gran demanda de procesos internos que son desarrollados, llegando abarcar hasta cinco en total, por ello se clasifican como 5C descritos a continuación:

  1. Coherencia (Coherence)

Hace referencia al bloque donde se encuentra ubicado el caché desde un respectivo estado invalido que emite la lectura y sin permitir ningún tipo de escritura ante otra escritura debido a la solicitud ejecutada en el bloque del procesador por otro servidor.

  1. Cobertura (Coverage)

Los bloques están ubicados en la zona del caché pero en un estado sin permiso alguno debido a ello se llega a emitir algún tipo de reemplazo durante el directorio, que lleva a cabo la pérdida de la información que se está compartiendo.

Reducir Penalización por Fallo (Miss Penalty)

Las fallas dentro de la memoria caché son muy comunes y vistas con regularidad, lo primordial en este caso es llegar a emplear diversas técnicas para disminuir dichas fallas, a continuación se destacarán algunas de las más empleadas:

  1. Incrementar el Tamaño del Bloque

Mediante el incremento del tamaño de bloques se ofrece la ventaja en reducir los fallos forzosos sugiriendo una localidad espacial superior y mejor. Entre algunos de los inconvenientes es que aumentan los fallos por los diversos conflictos al reducir el número de bloques para caché y los fallos de caché que son pequeñas y específicas, este tipo de penalización por fallos puede aumentar al incrementar el tiempo de la transferencia de bloques.

  1. Incremento de Asociatividad

La asociatividad consiste en el operador que ofrece expresiones con varios operadores que tienen la misma prioridad, donde uno de los mismos agrupa el que se ubica a la izquierda o a la derecha. Al incrementar este factor se favorece en reducir los fallos de conflictos dentro del computador; su principal inconveniente es llegar aumentar el tiempo para el acceso medio que incrementan el tiempo de acierto, aumentando el coste debido a los comparadores.

  1. Caché Víctima

Consiste en poder añadir la cantidad de caché de forma asociativa entre 1 hasta 5 bloques en total, de esta manera se logra almacenar algunos bloques descartados para llevar a cabo los fallos de capacidad o conflicto. En estos casos el fallo, puede generar que antes de acceder a la memoria principal se acceda al caché; provocando que el bloque buscado se encuentre en ella, de esta manera se intercambian ambos bloques por ambos caché.

  1. Optimización del Compilador

La optimización permite reducir las probabilidades de los programas para mejorar la rapidez de un computador, en este caso el compilador es el encargado de reordenar el código de la forma más adecuada permitiendo el mayor acceso y reducir los fallos de caché.

Reducir el Tiempo de Acceso en Caso de Acierto (Hit Time)

Otras de las condiciones de fallos está relacionado con reducir el tiempo de acceso en caso de acierto, a continuación se presentará algunos aspectos vinculados a ello:

  1. Cachés Pequeñas y Simples

Las cachés pequeñas son las encargadas de permitir los tiempos de aciertos que son reducidos pero pueden ofrecer poca capacidad. Destacando en este caso los caché de correspondencia donde la comprobación de la etiqueta y el acceso al dato es llevado a cabo de forma simultánea.

  1. Evitar la Traducción de Direcciones

Mediante la traducción de las páginas presentadas se puede ejecutar en la indexación del caché, este último trata de almacenar las direcciones del caché para evitar traducciones de las direcciones virtuales a físicas en caso de ser positivas.

  1. Escritura en Pipeline para Aciertos en Escritura Rápida

Consiste en crear diferentes pipeline, que se trata de una cadena de procesos que están conectados entre sí, donde la salida de los elementos de la cadena representa la entrada del próximo dato. Este proceso es conocido como tuberías, encargado de ejecutar operaciones de escritura, donde la escritura actual es sustituida en el tiempo que las etiquetas se encuentran vigentes.

Esperamos este artículo haya sido de ayuda, te dejamos otros que seguro te interesarán:

Partes del Escritorio

Aplicaciones para Controlar el WiFi

Mantenimiento Preventivo de Computadoras