Como el número limitado de registros lógicos se abren al usuario y al compilador, incurre en problemas de dependencia falsos como WAW y WAR.
Por lo tanto, para resolver este problema, un montón de microarquitectura introduce archivos de registro adicionales en el hardware que el software no puede acceder y asigna el registro lógico al registro físico para evitar que dos datos diferentes compartan la misma ubicación.
Sin embargo, la introducción de una lógica compleja para resolver las dependencias falsas en tiempo de ejecución a nivel de hardware puede no ser una buena opción a veces porque aumenta el costo del hardware y reduce la frecuencia.
Luego parece que simplemente abrir la gran cantidad de registros para el usuario / compilador a través del ISA sería una mejor opción para no cargar el hardware.
Creo que una de las razones por las que la ISA no abrió más registros para el usuario sería la compatibilidad. Sin embargo, sería más una compensación para este problema. ¿Hay algún documento o libro que describa esta compensación o alguien podría explicarlo al respecto?