Las novedades de Zen 3 son realmente interesantes desde el punto de vista arquitectónico sobre Zen 2, pero en contra de lo que podía parecer, AMD ha tenido que mover ficha en un aspecto que fue poco comentado en su anterior arquitectura y que sin embargo fue parte fundamental en gaming para reducir la latencia de la memoria. El llamado Mirroring memory operands fue pieza clave en el aumento de rendimiento de los Ryzen 3000, pero se ha descubierto algo en Zen 3 sobre esta característica, ¿qué ha hecho AMD con los Ryzen 5000?
No hay duda que Zen 3 ha introducido cambios importantes a nivel arquitectónico frente a Zen 2, los cuales ya vimos en su correspondiente artículo, pero hasta ahora la compañía no había especificado diferentes características específicas en cuanto a operaciones en memoria. Aunque sigue sin hacerlo, ahora a través de Agner podemos conocer algo muy interesante que fue foco de debate en Zen 2 por la mejora que suponía y que, al parecer, ha desaparecido en Zen 3, aunque no totalmente.
Memory Mirroring, el debate en Zen 3 sobre la RAM vuelve a las portadas
Lo primero que debemos tener en cuenta es que AMD en ningún momento ha especificado nada de lo que se va a poder leer en este artículo, así que en parte tenemos que confiar en lo que se especifica por las fuentes, que por otro lado son de total confianza por motivos obvios.
Explicaremos más en detenimiento en otro artículo lo que es Memory Mirroring y su aplicación, pero por ahora debemos saber simplemente que es una técnica de comandos de memoria dentro de la CPU que tienen un propósito muy interesante: no generar latencia al ser usados.
Esto no es realmente cierto, porque nada cuesta nada como se suele decir, pero para que entendamos el símil, hablamos de una reducción de la latencia al usar comandos de propósito general en operaciones de memoria de la misma dirección de entre 7 y 4 veces de media si comparamos Zen 1 con Zen 2.
¿Por qué Zen 3 no incluye esta característica?
Según se puede leer dentro del apartado 21.20 de los cuellos de botella de la arquitectura Zen 3, nos encontramos con un párrafo brevemente explicativo que nos desvela el problema: AMD dados los cambios en las cachés y los registros de las mismas habría prescindido de usar Memory Mirroring por los costes elevados en términos de hardware y de registros, ya que esta técnica tiene mucho sentido en 32 bits, pero menos en 64 bits donde las variables y los parámetros de función son guardados en los registros como tal.
Por lo tanto, AMD habría priorizado el presupuesto de las mejoras en el hardware para otros apartados como el front end y el back end. De aquí se puede asumir que en sus pruebas internas prescindir de Memory Mirroring era más beneficioso que incluirlo para x64, ya que habría más margen de maniobra en otros puntos a mejorar de la arquitectura y que el salto y cambios en la caché paliaban en cierta medida los resultados de esta técnica.
Pero esto no termina aquí, ya que se rumorea que AMD simplemente no habría habilitado esto en su arquitectura, pero eso significa que es posible activar Memory Mirroring en Zen 3. El cómo es la gran pregunta, donde la segunda sería, ¿habría mejora real al activarlo en el caso supuesto? Seguramente nunca lo sepamos …