¿El tiempo de acceso al caché se reduce con frecuencia en las CPU modernas?

1

Tengo una aplicación donde sospecho que la sobrecarga principal es acceder al caché L3. Se ejecuta en un moderno microprocesador de nivel de servidor Intel con un enorme caché L3. Hay muchos microprocesadores disponibles con varios conteos y frecuencias de núcleo, y seleccionarlos es difícil.

Entonces, eso me llevó a preguntarme si el tiempo de acceso (éxito) al caché L3 se reduce con la frecuencia. Por lo tanto, si la CPU de 2 GHz accede al caché L3 en, por ejemplo, 12 ns, ¿significa eso que una CPU de 3GHz accede al caché L3 en 8 ns? Por supuesto, esto puede depender de los detalles de implementación interna de la CPU, así que limitemos las respuestas a los microprocesadores modernos i386 / AMD64.

Sé que al menos en el caso de DRAM, los retrasos son prácticamente constantes, por lo que si realiza un acceso DRAM aleatorio, una frecuencia más alta significa una mejor tasa de datos secuenciales después de que se haya pagado la penalización de acceso aleatorio. ¿Pero es SRAM fundamentalmente diferente? Se basa en transistores, por lo que supongo que se podría sincronizar en muy buenas frecuencias.

Lo siento si este es el lugar equivocado para preguntar, no hay mejor lugar para hacer preguntas detalladas sobre la arquitectura de la computadora. He considerado CS StackExchange y StackOverflow, pero creo que Electrical Engineering StackExchange era el mejor lugar. Realmente debería haber un StackExchange de arquitectura de computadora, pero no lo hay.

    
pregunta juhist

2 respuestas

2

Fue en los viejos tiempos (mediados de los 90 ') cuando cada bloque de CPU se escalaba con la frecuencia. Con los procesadores modernos ya no es cierto. El núcleo de la CPU y los cachés tienen diferentes topologías de diseño, y las memorias generalmente no se escalan mucho. La alineación de tiempo entre el reloj del núcleo de la CPU y las memorias caché generalmente se realiza mediante la reconfiguración del acceso de la tubería a la memoria caché, por lo que es muy probable que el tiempo de acceso a la línea de la memoria caché no se ajuste a la frecuencia central. Recuerdo que me encontré con problemas similares mientras trabajaba en procesadores K6, cuando para cada multiplicador de reloj el acceso al caché debe ser reconfigurado.

Con las CPU modernas y la frecuencia central adaptativa, las cosas son mucho más complicadas. Las CPU están diseñadas por miles de ingenieros de diseño y están diseñadas por cientos de arquitectos, por lo que para entrar en detalles necesitas el acceso de máxima autorización a la documentación de alto secreto, y aún así será difícil encontrar la respuesta exacta.

    
respondido por el Ale..chenski
0

Hay 3 dominios principales de reloj diferentes. Memoria, uncore (L3), y núcleo. Todos estos giros en diferentes frecuencias y todos son controlados individualmente por algoritmos complejos. En un nivel amplio, sus relojes centrales pueden escalar desde sub-GHz a 2 a 5 GHz dependiendo de su CPU. Destaca los cambios desde el mismo extremo bajo hasta aproximadamente la mitad de la frecuencia central. Si no está accediendo mucho desde L3 / IIO / Memory, los algoritmos probablemente mantendrán el reloj de puntuación baja y le impedirán ver los tiempos de acceso L3 más rápidos, a menos que tenga un conjunto específico de factores estresantes. Puede haber perillas visibles para el cliente para ajustar estos elementos también, pero no estoy seguro.

Más que nada, sospecharé que un CPU con un número de núcleos más pequeño pueda alcanzar velocidades de reloj de puntuación más altas (lo que reducirá el tiempo de acceso al caché L3). Sin embargo, para que quede claro, las frecuencias del reloj central no tienen una correlación directa con el reloj que no se ha anotado, por lo que el aumento de la frecuencia del reloj central solo no aumentará la velocidad de caché L3.

    
respondido por el horta

Lea otras preguntas en las etiquetas