¿Existe una correspondencia entre los tamaños de caché y la latencia de acceso? En igualdad de condiciones, ¿un caché más grande funciona más lentamente? Si es así, ¿por qué? ¿Cuánto más lento?
microprocessor
cache
latency
Ivanmp
fuente
fuente
Respuestas:
Los artículos en sus manos son más rápidos para acceder que los artículos en sus bolsillos, que son más rápidos para acceder que los artículos en su armario, que son más rápidos para acceder que los artículos en Digikey. Cada tipo de almacenamiento sucesivo que he enumerado es más grande pero más lento que el anterior.
Entonces, tengamos lo mejor de ambos mundos, ¡hagamos que sus manos sean tan grandes como un almacén Digikey! No, no funciona, porque ahora ya no son realmente manos. Son una bala de cañón que te pesa.
La razón por la que el almacenamiento más grande es de acceso más lento es la distancia . El almacenamiento más grande está más alejado de usted en promedio. Esto es cierto para los elementos físicos y para la RAM.
La memoria de la computadora ocupa espacio físico. Por esa razón, los recuerdos más grandes son físicamente más grandes, y algunos lugares en esa memoria estarán físicamente más lejos. Las cosas que están lejos tardan más en acceder, debido a los límites de velocidad que existen. En el caso de tus bolsillos y Digikey, los límites de velocidad son la velocidad de tus brazos y los límites de velocidad de la carretera.
En el caso de la RAM, los límites de velocidad son la velocidad de propagación de las señales eléctricas, el retraso de propagación de las puertas y los controladores, y el uso común de relojes síncronos. Incluso si el dinero no fuera un problema, y pudieras comprar todo lo que quisieras de la tecnología RAM más rápida disponible en la actualidad, no podrías beneficiarte de todo. Diseñe una hoja de caché L1 de tamaño A4 si lo desea, y coloque su CPU justo en el centro. Cuando la CPU quiere acceder a algo de memoria justo en la esquina de la memoria, literalmente tomará un nanosegundo para que la solicitud llegue allí, y un nanosegundo para que regrese. Y eso no incluye todos los retrasos de propagación a través de puertas y controladores. Eso va a ralentizar seriamente su CPU de 3GHz.
Dado que la lógica síncrona es mucho más fácil de diseñar que la lógica asíncrona, un 'bloque' de RAM se sincronizará con el mismo reloj. Si desea convertir toda la memoria en un caché L1, entonces tendría que registrar todo el lote con un reloj lento para hacer frente al peor momento de la ubicación más distante en la memoria. Esto significa que las ubicaciones de memoria distantes ahora están frenando las locales, que podrían haberse sincronizado más rápido. Por lo tanto, lo mejor que podría hacer sería ubicar la memoria en la zona. La sección más cercana y más pequeña del caché usaría el reloj más rápido. La siguiente sección más cercana y más pequeña usaría un reloj un poco más lento, etc.
Y ahora tienes cachés L1 y L2 y RAM.
Lo que nos lleva a la siguiente razón, el consumo de energía.
El caché en realidad consume una cantidad significativa de energía. No solo la memoria en sí, sino toda la lógica que la rodea que maneja el mapeo entre las líneas de caché y la memoria principal. Aumentar el rendimiento de esta lógica adicional puede resultar en un aumento en el consumo de energía. Ahora, para ciertas aplicaciones (móviles, integradas) tiene aún más incentivos para mantener el caché pequeño.
Consulte las compensaciones de diseño de caché para la optimización de potencia y rendimiento: un estudio de caso (Ching-Long Su y Alvin M. Despain, 1995).
fuente
Dejando de lado todos los factores económicos / de rendimiento / consumo de energía, la respuesta a su pregunta es: depende de muchos factores micro arquitectónicos.
Como ejemplo, vea esta referencia : la latencia de acceso L1 medida para todos los procesadores bajo prueba es de 4 ciclos de reloj. Las frecuencias de los procesadores son casi las mismas, pero los tamaños de caché L1 difieren en hasta un factor de 3.
La razón de la latencia constante a L1 en varios procesadores diferentes en la prueba anterior se basa en la microarquitectura de la memoria caché: el acceso a la memoria caché en sí (recuperar datos de la memoria) toma solo un ciclo de reloj. Se emplean tres ciclos adicionales para decodificar el acceso, verificar la presencia de datos y más ... El número de etapas adicionales es el mismo en todos los procesadores en la prueba, por lo tanto, las latencias de acceso son las mismas.
A pesar del ejemplo anterior, uno no debería llegar a la conclusión de que la latencia de la caché es independiente del tamaño de la caché. Si alguien intentara implementar un caché L1 ridículamente grande, la lógica que realiza todas las operaciones requeridas para una lectura de caché también se volvería grande. En algún momento, el retraso de la propagación a través de toda esta lógica sería demasiado largo y las operaciones que habían tomado un solo ciclo de reloj de antemano tendrían que dividirse en varios ciclos de reloj. Esto aumentará la latencia.
Suponiendo que el caché en cuestión se implementó en SRAM, los módulos que más se vieron afectados por el tamaño del caché son: decodificadores de fila y muxes. Sin embargo, incluso los amplificadores de detección se verán afectados por cachés muy grandes: una oscilación de voltaje más pequeña en una línea de bits debido a una capacitancia más alta requerirá un amplificador de detección "más fuerte". Dicho esto, el efecto más severo en la velocidad lógica se agregará mediante la capacitancia de las interconexiones de cables: esta capacitancia tiene más que una dependencia lineal del tamaño de la SRAM. Los detalles exactos son específicos de la implementación.
Ahora, los cachés L1 son bastante estables en sus latencias porque su rendimiento es el más crucial. Si intenta analizar los cachés L2 y L3, la imagen se complica mucho.
La imagen se complica mucho más si se consideran los procesadores de varios núcleos: tienen una lógica adicional para garantizar la coherencia de la memoria caché . Esto conduce a un factor adicional que afecta la latencia del acceso a la memoria caché: el historial de accesos a la memoria de todos los núcleos.
Resumen
Como puede ver, su pregunta está lejos de ser trivial y no se puede responder por completo. Sin embargo, si considera económicamente y el rendimiento de cachés preferibles, entonces diría que su tamaño no afectará la latencia de manera apreciable.
Para lectores interesados:
Esta referencia es un análisis muy profundo de los factores de rendimiento de las CPU modernas. Hay mucho material relacionado con el caché allí. Requiere una comprensión profunda de la arquitectura de la computadora y los principios de la microarquitectura (alternativamente, un buen resumen de los temas que uno necesita saber para convertirse en un profesional en este campo).
fuente
Ingeniero de prueba de caché de CPU aquí: Dave Tweed en los comentarios tiene las explicaciones correctas. El caché está dimensionado para maximizar el rendimiento en el punto de precio esperado de la CPU. El caché es generalmente el mayor consumidor de espacio para troqueles, por lo que su tamaño marca una gran diferencia económica (y de rendimiento).
Eche un vistazo a la página de la familia de CPU Ivy Bridge de Intel: http://ark.intel.com/products/codename/29902/Ivy-Bridge
El extremo superior Xeon viene con 30 MB de caché, tiene 12 núcleos y cuesta alrededor de $ 2700. El i3 de gama baja con 3 MB de caché (i3-3217) cuesta solo $ 500 por una computadora portátil completa (no puedo encontrarla individualmente).
El Xeon ofrece el máximo rendimiento, pero también cuesta más fabricarlo y probarlo. El i3 es mucho más barato, pero la compensación es un tamaño de troquel más pequeño del cual el caché es la parte más grande.
fuente