¿Cómo se conectan los registros a los buses de la CPU?

6

Me pregunto qué tipo de búferes / técnicas se utilizan normalmente para conectar un registro de cpu (flip flops) a un bus de cpu (data / address / control). Dado que hay muchos registros en un solo bus, sé que tiene que haber algún tipo de mecanismo de triple estado pero, ¿cómo se especifica qué búferes deberían estar flotando?

Pensando lógicamente, debería haber algún tipo de bit de selección de registro junto con un bit de lectura / escritura que alterne qué registro está en uso y qué está haciendo con el valor. Aunque esto tiene sentido para mí, no creo que sea práctico Y cada entrada de registro con un registro seleccionado o r / w bit.

He estado buscando en Internet esquemas o documentación y no puedo encontrar ninguna información sólida. La mayoría de los esquemas de la CPU son tan complicados que me cuesta mucho darles sentido. Cualquier ayuda es muy apreciada.

    
pregunta Dave C

2 respuestas

5

En algunas tecnologías de dispositivos, los registros se conectan a un bus utilizando salidas de tres estados. Tal enfoque tiene algunas ventajas, pero generalmente requiere que haya un "tiempo muerto" entre el momento en que un registro libera el bus y el momento en que otro registro comienza a conducirlo, o bien corre el riesgo de que un dispositivo pueda comenzar a conducir. el bus anterior al dispositivo anterior lo ha liberado por completo.

En otras tecnologías, este enfoque se evita a favor del uso de multiplexores anidados. Si hay 64 registros que pueden enviarse a un bit de bus, el dispositivo puede tener ocho multiplexores de 8 vías, cada uno de los cuales acepta la entrada de un registro, y otro multiplexor de 8 vías que acepta la entrada de uno de los primeros ocho. Si bien esto puede usar un poco más de circuitos que el enfoque basado en bus, tiene la ventaja de que todas las señales en todo el sistema serán controladas por un solo dispositivo en todo momento.

    
respondido por el supercat
4

¿Ha considerado quizás mirando la hoja de datos? de una parte una vez utilizada para implementar registros en una CPU, como la hoja de datos 74HC574 ?

Funciona exactamente como sospechabas:

Un bit de selección de registro (un pin llamado CLK) para ESCRIBIR que, en su flanco ascendente, le dice al chip que tome los datos en sus pines de entrada y los almacene internamente. Una CPU que incluyó muchos de estos chips solo sincronizaría los registros que necesitan almacenar el valor actualmente en el bus de datos, y no registrará los otros registros que necesitan mantener sus valores internos.

Otro bit de selección de registro (un pin a veces llamado "nOE") para LEER que, siempre que sea bajo, le dice al chip que saque sus datos internos en el bus de datos.

Registre los archivos dentro de un FPGA son conceptualmente iguales.

  

¿Cómo especifica qué buffers deberían estar flotando?

Normalmente, en otro lugar de la CPU se encuentra el registro de instrucciones (IR). Por lo general, un decodificador parecido al 74HC138 decodifica el "campo fuente" del registro de instrucciones en un grupo de líneas nOE, una para cada registro. El 74HC138 se asegura de que, como máximo, un registro maneje el bus de datos a la vez, por lo que no hay conflicto. El 74HC138 mantiene alto el nOE de todos los demás registros, por lo que sus pines de salida están efectivamente "desconectados" ("tristados", "deshabilitados", etc.). Sin embargo, no diría que sus pines de salida están "flotando": cada uno de los pines conectados a un bit en particular del databus está siendo impulsado hacia arriba o hacia abajo por el chip seleccionado por el 74HC138.

Un demultiplexor similar decodifica el "campo de destino" del registro de instrucciones en un grupo de líneas CLK, una para cada registro, y el diseñador de la CPU agrega un poco de circuitos adicionales para pulsar el reloj exactamente en el instante correcto, un poco después de que los datos se han estabilizado en el bus, y un poco antes de algún otro El registro de origen ha seleccionado y los datos comienzan a cambiar nuevamente.

  

todas las señales en todo el sistema serán controladas por un solo dispositivo en todo momento.

Eso podría funcionar. Sin embargo, en la práctica, Nunca he visto un archivo de registro - en un IC monolítico, o construido con chips TTL, o construido con Componentes incluso más simples, construidos completamente a partir de muxes en cascada. Los que he visto siempre incluyen al menos un bus bidireccional de 3 estados en alguna parte.

    
respondido por el davidcary

Lea otras preguntas en las etiquetas