Forma correcta de abordar los rangos de menos de 32 bits en un procesador MIPS

0

Estoy diseñando un procesador MIPS de 32 bits en VHDL. Actualmente, nuestro diseño restringe nuestra memoria de instrucciones a solo 64 ubicaciones de 32 bits, es decir, los primeros 8 bits de la dirección de 32 bits.

Estamos tratando de decidir la mejor manera de mantener la dirección dentro del rango de la memoria de instrucciones y hemos decidido dos enfoques posibles:

Dentro del contador del programa:

-- This while loop prevents the program counter from accessing ranges outside
-- the instruction memory range.
while(address > 256) loop
    address <= (address - 256);
end loop;

Sin embargo, esto parece menos ideal, ya que no funciona si se cambia el tamaño de la memoria de instrucciones (es decir, si decidimos actualizar de 256 bytes de memoria a 4 gigabytes de memoria).

Nuestra otra solución es hacerlo dentro de la entidad de memoria de instrucciones, pero como la memoria no es sintetizable, creemos que debemos mantener su diseño lo más simple posible.

¿A los procesadores modernos les importa el tamaño de su memoria de instrucciones y simplemente lo dejan en un controlador de memoria para decidir cuándo se desborda la dirección o restringen sus propios contadores de programas al tamaño de su memoria de instrucciones actual (según lo informa la memoria)? módulo)?

    
pregunta nbstrong

0 respuestas

Lea otras preguntas en las etiquetas