En una computadora tradicional, un microprocesador está montado en un "paquete", una pequeña placa de circuito con una red de cables eléctricos en su parte inferior. El paquete se engancha en la placa base de la computadora y los datos viajan entre el procesador y la memoria principal de la computadoraBanco a través de las pistas.
A medida que el recuento de transistores de los procesadores ha aumentado, la conexión relativamente lenta entre el procesador y la memoria principal se ha convertido en el principal impedimento para mejorar el rendimiento de las computadoras. Por lo tanto, en los últimos años, los fabricantes de chips han comenzado a poner memoria dinámica de acceso aleatorio- o DRAM, el tipo de memoria tradicionalmente utilizada para la memoria principal, directamente en el paquete del chip.
La forma natural de usar esa memoria es como un caché de alta capacidad, un almacén local rápido de datos de uso frecuente. Pero la DRAM es fundamentalmente diferente del tipo de memoria que se usa típicamente para cachés en chip y la gestión de caché existentelos esquemas no lo usan de manera eficiente.
En el reciente Simposio internacional de IEEE / ACM sobre microarquitectura, los investigadores del MIT, Intel y ETH Zurich presentaron un nuevo esquema de gestión de caché que mejora la tasa de datos de los cachés DRAM en paquete en un 33 a 50 por ciento.
"El ancho de banda en esta DRAM dentro del paquete puede ser cinco veces mayor que la DRAM fuera del paquete", dice Xiangyao Yu, un postdoc en el Laboratorio de Ciencias de la Computación e Inteligencia Artificial del MIT y primer autor del nuevo artículo ". Pero resulta queque los esquemas anteriores gastan demasiado tráfico accediendo a metadatos o moviendo datos entre DRAM dentro y fuera del paquete, realmente no acceden a datos, y desperdician mucho ancho de banda. El rendimiento no es el mejor que puede obtener de esta nueva tecnología ".
hash de caché
Por "metadatos", Yu significa datos que describen de dónde provienen los datos en el caché. En un chip de computadora moderno, cuando un procesador necesita una porción particular de datos, verificará sus cachés locales para ver si los datos ya están allí.Los datos en las memorias caché se "etiquetan" con las direcciones en la memoria principal de donde se extraen; las etiquetas son los metadatos.
Un caché típico en chip puede tener espacio suficiente para 64,000 elementos de datos con 64,000 etiquetas. Obviamente, un procesador no quiere buscar en todas las 64,000 entradas la que le interesa. Por lo tanto, los sistemas de caché generalmente organizan los datos usando algo llamadouna "tabla hash". Cuando un procesador busca datos con una etiqueta particular, primero alimenta la etiqueta a una función hash, que la procesa de una manera prescrita para producir un nuevo número. Ese número designa un espacio en una tabla de datos,que es donde el procesador busca el artículo que le interesa
El punto de una función hash es que las entradas muy similares producen salidas muy diferentes. De esa manera, si un procesador depende en gran medida de datos de un rango estrecho de direcciones, si, por ejemplo, está realizando una operación complicada en una secciónde una imagen grande: esos datos están espaciados a través de la memoria caché para no causar un logjam en una sola ubicación.
Sin embargo, las funciones hash pueden producir la misma salida para diferentes entradas, lo que es más probable si tienen que manejar una amplia gama de entradas posibles, como lo hacen los esquemas de almacenamiento en caché. Por lo tanto, una tabla hash de la memoria caché a menudo almacenará dos o treselementos de datos bajo el mismo índice hash. Sin embargo, buscar dos o tres elementos para una etiqueta determinada es mucho mejor que buscar 64,000.
memoria tonta
Aquí es donde entra en juego la diferencia entre DRAM y SRAM, la tecnología utilizada en cachés estándar. Por cada bit de datos que almacena, SRAM usa seis transistores. DRAM usa uno, lo que significa que es mucho más eficiente en espacio. Pero SRAMtiene cierta capacidad de procesamiento incorporada y DRAM no. Si un procesador quiere buscar un elemento de datos en un caché SRAM, envía la etiqueta al caché. El circuito SRAM mismo compara la etiqueta con los de los elementos almacenados enla ubicación de hash correspondiente y, si obtiene una coincidencia, devuelve los datos asociados.
DRAM, por el contrario, no puede hacer nada más que transmitir los datos solicitados. Por lo tanto, el procesador solicitará la primera etiqueta almacenada en una ubicación de hash determinada y, si coincide, enviará una segunda solicitud de los datos asociados. Si no es asíuna coincidencia, solicitará la segunda etiqueta almacenada, y si eso no es una coincidencia, la tercera, y así sucesivamente, hasta que encuentre los datos que desea o los abandone y vaya a la memoria principal.
DRAM en el paquete puede tener mucho ancho de banda, pero este proceso lo desperdicia. Yu y sus colegas: Srinivas Devadas, el profesor Edwin Sibley Webster de Ingeniería Eléctrica y Ciencias de la Computación en el MIT; Christopher Hughes y Nadathur Satish de Intel;y Onur Mutlu de ETH Zurich: evite toda esa transferencia de metadatos con una ligera modificación de un sistema de administración de memoria que se encuentra en la mayoría de los chips modernos.
Cualquier programa que se ejecute en un chip de computadora debe administrar su propio uso de memoria, y generalmente es útil dejar que el programa actúe como si tuviera su propio almacén de memoria dedicado. Pero, de hecho, varios programas generalmente se ejecutan en el mismo chip enuna vez, y todos envían datos a la memoria principal al mismo tiempo. Por lo tanto, cada núcleo o unidad de procesamiento en un chip generalmente tiene una tabla que asigna las direcciones virtuales utilizadas por los programas individuales a las direcciones reales de los datos almacenados en la unidad principalmemoria.
Mira aquí
El nuevo sistema de Yu y sus colegas, denominado Banshee, agrega tres bits de datos a cada entrada en la tabla. Un bit indica si los datos en esa dirección virtual se pueden encontrar en la memoria caché DRAM, y los otros dos indican su ubicaciónen relación con cualquier otro elemento de datos con el mismo índice hash.
"En la entrada, necesita tener la dirección física, necesita tener la dirección virtual, y tiene otros datos", dice Yu. "Eso ya es casi 100 bits. Así que tres bits adicionales es una sobrecarga bastante pequeña"
Hay un problema con este enfoque que Banshee también tiene que abordar. Si uno de los núcleos de un chip extrae un elemento de datos al caché DRAM, los otros núcleos no lo sabrán. Enviar mensajes a todos los núcleos de un chip cada vezcualquiera de ellos actualiza el caché consume una gran cantidad de tiempo y ancho de banda. Por lo tanto, Banshee introduce otro pequeño circuito, llamado buffer de etiquetas, donde cualquier núcleo puede registrar la nueva ubicación de un elemento de datos que almacena en caché.
Cualquier solicitud enviada a la memoria caché DRAM o la memoria principal por cualquier núcleo primero pasa a través del búfer de etiquetas, que verifica si la etiqueta solicitada es una cuya ubicación se ha reasignado. Solo cuando el búfer se llena, Banshee notifica a todoslos núcleos de los chips que necesitan para actualizar sus tablas de memoria virtual. Luego borra el búfer y comienza de nuevo.
El búfer es pequeño, solo 5 kilobytes, por lo que su adición no consumiría demasiado espacio valioso en el chip. Y las simulaciones de los investigadores muestran que el tiempo requerido para una búsqueda de dirección adicional por acceso a memoria es trivial en comparación con elahorro de ancho de banda que Banshee ofrece.
Fuente de la historia :
Materiales proporcionado por Instituto de Tecnología de Massachusetts . Original escrito por Larry Hardesty. Nota: El contenido puede ser editado por estilo y longitud.
Cite esta página :