Para responder a su pregunta de cómo funcionan realmente los registros en una CPU, depende de la CPU. He diseñado varios microprocesadores antiguos con ingeniería inversa y utilizan una variedad de circuitos de registro.
Los los registros de Z-80 simplemente almacenan un poco En dos inversores de acoplamiento cruzado. El valor se cambia forzando a los inversores a un valor diferente con una señal de corriente más alta. El bus está conectado a todos los registros, y las señales de control del bus seleccionan qué bus se lee o escribe. La celda de registro es una celda SRAM de 4 transistores .
El archivo de registro de 8085 es similar al Z-80, excepto para leer Un poco, las señales pasan por un amplificador diferencial. Esto permite que las señales del registro sean más débiles, lo que permite que el registro sea más denso, pero hace que el circuito de lectura sea más complejo.
Los registros del 6502 usan un circuito diferente. Nuevamente se utilizan dos inversores, pero un transistor de paso en el bucle permite que el circuito se rompa. Otro transistor de paso (con una señal opuesta) se utiliza para almacenar un nuevo valor en el inversor. (Puede pensar que esto es multiplexar el valor antiguo o el nuevo). Cada registro 6502 se implementa de manera ligeramente diferente, ya que todos tienen propósitos especiales.
Las 4004 y 8008 anteriores utilizan una celda DRAM de 3 transistores para los registros (probablemente porque de la experiencia de Intel en la construcción de DRAM). Los chips incluyen un contador de actualización y amplificadores para actualizar constantemente los datos en los registros.
Estos diseños de registro son diferentes de los diseños de compuerta NAND, ya que usan transistores de paso en lugar de lógica booleana, por lo que no son lo que usted quiere usar. Para sus preguntas específicas:
-
La selección de registros debe ser independiente del bus de direcciones, que se utiliza para la memoria externa. Probablemente no necesite limpiar el acumulador primero.
- Es probable que sea más fácil para usted usar flip flops.
-
Puede tener un pin de reinicio para borrar los registros. Deberá limpiar la PC para comenzar la ejecución en una dirección predecible, pero no necesita borrar el resto.
-
Puede usar un MUX para seleccionar un registro para leer, pero probablemente un decodificador para seleccionar un registro para escribir.
Sugeriría diseñar (y quizás construir) su CPU a partir de componentes de nivel superior a las puertas NAND. Luego, cuando lo pones en funcionamiento, puedes descomponer los componentes en puertas NAND.