Categorías
tecnologia

Qué es memoria caché, definición

Qué es memoria caché, definición; implementación, historia, mapeo, formato, especialización, funcionalidad, localidad, vs memoria principal y virtual. La memoria caché, también llamada memoria de la CPU, es una memoria de acceso aleatorio estática de alta velocidad ( SRAM ) a la que un microprocesador de computadora puede acceder más rápidamente que a la memoria de acceso aleatorio ( RAM ) normal .

Esta memoria generalmente se integra directamente en el chip de la CPU o se coloca en un chip separado que tiene una interconexión de bus separada con la CPU. El propósito de la memoria caché es almacenar las instrucciones y los datos del programa que se utilizan repetidamente en la operación de los programas o la información que es probable que la CPU necesite a continuación. El procesador de la computadora puede acceder a esta información rápidamente desde la memoria caché en lugar de tener que obtenerla de la memoria principal de la computadora. El acceso rápido a estas instrucciones aumenta la velocidad general del programa.

A medida que el microprocesador procesa los datos, busca primero en la memoria caché. Si encuentra las instrucciones o los datos que está buscando en una lectura de datos anterior, no tiene que realizar una lectura de los datos de una memoria principal más grande u otros dispositivos de almacenamiento de datos que consumen más tiempo. La memoria caché es responsable de acelerar las operaciones y el procesamiento de la computadora.

Una vez que se han abierto y operado por un tiempo, la mayoría de los programas usan pocos recursos de una computadora. Esto se debe a que las instrucciones frecuentemente referenciadas tienden a ser almacenadas en caché. Esta es la razón por la cual las mediciones de rendimiento del sistema para computadoras con procesadores más lentos pero cachés más grandes pueden ser más rápidas que aquellas para computadoras con procesadores más rápidos pero con menos espacio en caché.

El almacenamiento en caché de niveles múltiples o multinivel se ha vuelto popular en las arquitecturas de servidores y de escritorio, con diferentes niveles que proporcionan una mayor eficiencia a través de la organización en niveles . En pocas palabras, cuanto menos frecuentemente se acceda a ciertos datos o instrucciones, a menor nivel de memoria caché se escriben los datos o instrucciones.

Implementación e historia

Los mainframes utilizaron una versión anterior de la memoria caché, pero la tecnología tal como se conoce hoy comenzó a desarrollarse con la llegada de los microcomputadores. Con las PC tempranas, el rendimiento del procesador aumentó mucho más rápido que el rendimiento de la memoria, y la memoria se convirtió en un cuello de botella, frenando los sistemas.

En la década de 1980, la idea se apoderó de que se podría utilizar una pequeña cantidad de SRAM más costosa y más rápida para mejorar el rendimiento de la memoria principal, más lenta y menos costosa. Inicialmente, la memoria caché estaba separada del procesador del sistema y no siempre estaba incluida en el conjunto de chips. Las primeras PC normalmente tenían de 16 KB a 128 KB de memoria caché.

Con 486 procesadores, Intel agregó 8 KB de memoria a la CPU como memoria de nivel 1 ( L1 ). Se utilizaron hasta 256 KB de memoria caché externa de Nivel 2 (L2) en estos sistemas. Los procesadores Pentium vieron duplicar de nuevo la memoria caché externa a 512 KB en el extremo superior. También dividen la memoria caché interna en dos cachés: uno para instrucciones y otro para datos.

Los procesadores basados ​​en la microarquitectura P6 de Intel, introducidos en 1995, fueron los primeros en incorporar la memoria caché L2 en la CPU y permitir que toda la memoria caché de un sistema se ejecute a la misma velocidad de reloj que el procesador. Antes de la P6, se accedía a la memoria L2 externa a la CPU a una velocidad de reloj mucho más lenta que la velocidad a la que se ejecutaba el procesador, y disminuía considerablemente el rendimiento del sistema.

Los primeros controladores de memoria caché utilizaban una arquitectura de caché de escritura directa, donde los datos escritos en la memoria caché también se actualizaban inmediatamente en la RAM. Esto se acercó a la pérdida de datos minimizada, pero también ralentizó las operaciones. Con las PC posteriores basadas en 486, se desarrolló la arquitectura de caché de escritura, donde la RAM no se actualiza de inmediato. En su lugar, los datos se almacenan en la memoria caché y la RAM se actualiza solo a intervalos específicos o en ciertas circunstancias donde faltan datos o son antiguos.

Mapeo de memoria caché

Las configuraciones de caché continúan evolucionando, pero la memoria caché tradicionalmente funciona bajo tres configuraciones diferentes:

La memoria caché asignada directa tiene cada bloque asignado a exactamente una ubicación de memoria caché. Conceptualmente, la memoria caché asignada directa es como filas en una tabla con tres columnas: el bloque de datos o la línea de la memoria caché que contiene los datos reales recuperados y almacenados, una etiqueta con toda o parte de la dirección de los datos recuperados y un bit de bandera que muestra la presencia en la entrada de la fila de un bit de datos válido.
La asignación de memoria caché completamente asociativa es similar a la asignación directa en la estructura, pero permite que un bloque se asigne a cualquier ubicación de la memoria caché en lugar de a una ubicación de memoria caché preespecificada, como es el caso de la asignación directa.
La asignación de asignaciones de caché asociativa se puede ver como un compromiso entre la asignación directa y la asignación totalmente asociativa en la que cada bloque se asigna a un subconjunto de ubicaciones de la memoria caché. A veces se denomina asignación asociativa de conjunto N-way , que permite que una ubicación en la memoria principal se almacene en caché en cualquiera de las ubicaciones «N» en el caché L1.

Formato de la jerarquía de caché

La memoria caché es rápida y costosa. Tradicionalmente, se clasifica como «niveles» que describen su proximidad y accesibilidad al microprocesador.
La memoria caché L1 , o memoria caché primaria, es extremadamente rápida pero relativamente pequeña, y generalmente está integrada en el chip del procesador como memoria caché de la CPU.

El caché L2 , o caché secundario, suele ser más espacioso que el L1. La memoria caché L2 puede estar integrada en la CPU, o puede estar en un chip o coprocesador separado y tener un bus de sistema alternativo de alta velocidad que conecta la memoria caché y la CPU. De esa forma, el tráfico en el bus del sistema principal no se ralentiza.

El caché de nivel 3 (L3) es una memoria especializada desarrollada para mejorar el rendimiento de L1 y L2. L1 o L2 puede ser significativamente más rápido que L3, aunque L3 suele duplicar la velocidad de RAM. Con procesadores multinúcleo , cada núcleo puede tener caché L1 y L2 dedicado, pero pueden compartir un caché L3. Si un caché L3 hace referencia a una instrucción, generalmente se eleva a un nivel más alto de caché.

En el pasado, los cachés L1, L2 y L3 se crearon utilizando componentes combinados de procesador y placa base. Recientemente, la tendencia ha sido hacia la consolidación de los tres niveles de almacenamiento en caché de memoria en la propia CPU. Es por eso que los medios principales para aumentar el tamaño del caché han comenzado a pasar de la adquisición de una placa base específica con diferentes conjuntos de chips y arquitecturas de bus a la compra de una CPU con la cantidad correcta de caché integrado L1, L2 y L3.

Contrariamente a la creencia popular, la implementación de flash o más RAM dinámica ( DRAM ) en un sistema no aumentará la memoria caché. Esto puede ser confuso ya que los términos caché de memoria ( almacenamiento en búfer del disco duro) y memoria caché se usan indistintamente. El almacenamiento en memoria caché, mediante el uso de DRAM o flash para almacenar en el disco las lecturas, está destinado a mejorar la E / S de almacenamiento mediante el almacenamiento en caché de los datos a los que se hace referencia frecuentemente en un almacenamiento intermedio antes que un disco o cinta magnética más lenta. La memoria caché, por otro lado, proporciona un búfer de lectura para la CPU.

Especialización y funcionalidad

Además de los cachés de instrucciones y datos, otros cachés están diseñados para proporcionar funciones especializadas del sistema. De acuerdo con algunas definiciones, el diseño compartido del caché L3 lo convierte en un caché especializado. Otras definiciones mantienen el caché de instrucciones y el caché de datos por separado, y se refieren a cada uno como un caché especializado.

Las memorias intermedias de traducción ( TLB ) también son cachés de memoria especializados cuya función es registrar las traducciones de direcciones virtuales a direcciones físicas.

Otros cachés no son, técnicamente hablando, cachés de memoria en absoluto. Los cachés de disco , por ejemplo, pueden usar RAM o memoria flash para proporcionar un caché de datos similar a lo que hacen los cachés de memoria con las instrucciones de la CPU. Si se accede con frecuencia a los datos desde el disco, se almacenan en caché en DRAM o en una tecnología de almacenamiento de silicio basada en flash para un tiempo de acceso y respuesta más rápidos.

Los cachés especializados también están disponibles para aplicaciones como navegadores web, bases de datos, enlace de direcciones de red y compatibilidad con el protocolo del sistema de archivos de red del lado del cliente . Estos tipos de cachés pueden distribuirse en múltiples hosts en red para proporcionar una mayor escalabilidad o rendimiento a una aplicación que los utiliza.

Localidad

La capacidad de la memoria caché para mejorar el rendimiento de una computadora se basa en el concepto de localidad de referencia. La localidad describe diversas situaciones que hacen que un sistema sea más predecible, como por ejemplo, donde se accede repetidamente a la misma ubicación de almacenamiento, creando un patrón de acceso a la memoria en el que se basa la memoria caché.

Hay varios tipos de localidades. Dos claves para el caché son temporales y espaciales. La localidad temporal es cuando se accede a los mismos recursos repetidamente en un corto período de tiempo. La localidad espacial se refiere al acceso a diversos datos o recursos que están muy cerca unos de otros.

Caché vs. memoria principal

La DRAM sirve como la memoria principal de una computadora y realiza cálculos sobre los datos recuperados del almacenamiento. Tanto la memoria DRAM como la memoria caché son memorias volátiles que pierden su contenido cuando se apaga la alimentación. La DRAM está instalada en la placa base y la CPU accede a ella a través de una conexión de bus.

La DRAM suele ser la mitad de rápida que la memoria caché L1, L2 o L3, y mucho menos costosa. Proporciona un acceso a los datos más rápido que el almacenamiento flash, las unidades de disco duro (HDD) y el almacenamiento en cinta. Entró en uso en las últimas décadas para proporcionar un lugar para almacenar datos de disco a los que se accede con frecuencia para mejorar el rendimiento de E / S.

La DRAM debe actualizarse cada pocos milisegundos. La memoria caché, que también es un tipo de memoria de acceso aleatorio, no necesita actualizarse. Está integrado directamente en la CPU para brindar al procesador el acceso más rápido posible a las ubicaciones de la memoria, y brinda un tiempo de acceso de nanosegundos a las instrucciones y datos a los que se hace referencia con frecuencia. SRAM es más rápido que DRAM, pero como es un chip más complejo, también es más caro de fabricar.

Caché vs memoria virtual

Una computadora tiene una cantidad limitada de RAM e incluso menos memoria caché. Cuando se está ejecutando un programa grande o varios programas, es posible que la memoria se use por completo. Para compensar la escasez de memoria física, el sistema operativo (SO) de la computadora puede crear memoria virtual.

Leer también: Configurar el plugin W3 Total Cache ; Ajustes de Cache

Language: Español