¿Cómo vincular la ALU a los registros, la RAM y el reloj?

1

He diseñado una ALU básica de 4 bits que calcula A + B, A-B, B-A y algunas operaciones lógicas. Estoy usando un mux para determinar qué salida aparece en la salida del multiplexor. Este es un inicio básico para una CPU, según tengo entendido ... ¿a dónde voy ahora desde aquí? ¿Cómo lo vinculo a la RAM (será una pequeña serie de flip-flops tipo D) y al Reloj? ¿Qué registros básicos necesito fundamentalmente?

Estoy un poco confundido en cuanto a cómo los componentes de los componentes de la CPU más básicos se relacionan entre sí y dónde / cuándo / cómo viajan los datos.

    
pregunta Eddie

3 respuestas

0

Ya que has creado una ALU de 4 bits, asumiré que estás interesado en construir una computadora de 4 bits. Será casi la mitad del trabajo de construir uno de 8 bits, ya que los autobuses tendrán la mitad de ancho.

El siguiente diagrama es de un documento titulado " Un procesador TTL simple y asequible para el Aula ". Describe con bastante detalle la arquitectura de una computadora de 4 bits llamada CHUMP ("Cheap Homebrew Understandable Minimal Processor").

Es una arquitectura de Harvard , lo que significa que el programa y los datos están en memorias separadas (ROM del programa y RAM en el diagrama) ). Utiliza un solo registro de acumuladores (Acum), en lugar de las matrices de registros que normalmente se encuentran en los microcontroladores actuales.

PCesuncontadordeprogramaquecontieneladireccióndelasiguienteinstrucciónenlaROMdelprograma.ElcontrolROMseutilizaparadecodificarlasinstrucciones.CadainstrucciónCHUMPutilizauncódigodeoperaciónde4bits(máximode16instrucciones)yunoperandode4bits.Estosignificaquesolopuedecargarunnibblededatosinmediatos(0-F),direccionar16ubicacionesdeRAM,quizás16puertosdeE/S,yestarlimitadoa16instrucciones.Peroestaslimitacionesharánqueseamásfácildeconstruir.Aúnnecesitarás64FFparatuRAM.

Necesitastenertodoslosbloquesquesemuestranarriba.Sivaacrearprogramasmuypequeños,podríausaralgúntipodetablerodeconexionesde16x4enlugardeutilizarEPROM.Talvezustedpodríautilizarunaplacadepruebassinsoldadura. Este con 30 filas puede almacenar 14 instrucciones (7x4 en cada lado). Almacenar programas en la RAM (" arquitectura de Von Neumann ") sería problemático ya que tendría que tener una forma de cargar el programa. en la memoria RAM de todos modos.

Aquí se muestra cómo se conectan los buses (todos los 4 bits). La salida de la PC selecciona la dirección en el programa ROM. La entrada al PC proviene del operando de instrucciones en la ROM (Sel Mux = 0). Esta misma ruta se puede usar para cargar una dirección del operando de instrucciones en el pestillo de Addr, que selecciona un nibble de la RAM. La RAM se lee en la ALU desde la RAM con Sel Mux = 1, o desde la ROM del programa (Sel Mux = 0) como un literal constante. El Accum (acumulador) puede ir al otro lado de la ALU o escribirse en la RAM. También hay una ruta para cargar la PC o Addr latch desde la RAM, pero no sé si se usa.

Las instrucciones se ejecutan en varios ciclos, el avance de los ciclos se realiza mediante el reloj del sistema.

  • Primero, el primer nibble de la instrucción que contiene el código de operación es Obtenido del programa ROM. (Como se mencionó anteriormente, cada instrucción tiene dos nibbles de largo, un código de operación de 4 bits y un operando de 4 bits.)
  • A continuación, decodifique el código de operación (se muestra como ROM de control en el diagrama de bloques; esto es engañoso, puede hacerlo solo con lógica).
  • Lea el segundo mordisco de la instrucción, que será una dirección en la ROM del programa, una constante (literal) en la ROM del programa, o una dirección en la memoria RAM.
  • Ejecuta la instrucción decodificada.

Si la PC no se carga desde el operando de instrucciones (instrucción de salto), se incrementa después de cada instrucción.

Le sugiero que ejecute su reloj muy lento, tal vez solo 1 MHz aproximadamente, para que pueda rastrear la operación fácilmente usando un osciloscopio. Probablemente también desee agregar una función de un solo paso, que ejecuta una instrucción por pulsación de botón. Muchos LED parpadeantes conectados a la PC, el pestillo de Addr y el acumulador también son buenos.

Aquí hay una página que tiene enlaces a otras seis páginas de computadora de 4 bits , muchas de ellas con esquemas . Y aquí hay dos más , que no estaban en la lista anterior.

    
respondido por el tcrosley
1

Casi todas las CPU tendrán un registro acumulador para almacenar un operando (y el resultado) de una operación matemática. También necesitará al menos otro registro de propósito general para el otro operando. A partir de ahí, depende de la funcionalidad que desee incluir: es probable que desee otro registro de propósito general para el almacenamiento temporal, y si desea acceder a la memoria, debe tener registros para almacenar las direcciones. Puede buscar en el procesador 6502 un ejemplo de un diseño de registro simple (que aún es muy eficiente), y el Z80 para un ejemplo de un diseño mucho más complejo.

Para interactuar con la RAM, necesitará un bus de direcciones y un bus de datos. Estos representan la mayoría de los pines en una CPU típica: por ejemplo, para tratar 64k de memoria que contienen 1 byte cada uno, necesita 16 pines de dirección y 8 pines de datos (a menos que trabaje para Intel, en cuyo caso es probable que lo utilice para usarlo) Total de 12 pines, e impulsa a las personas que usan su chip a beber :) También necesitará alguna forma de habilitar la RAM (es decir, selección de chip) y configurarlo para leer o escribir; mire las hojas de datos para ver los chips de RAM típicos y conozca los pinouts.

Para el reloj, necesitarás una entrada para la señal en sí; También es posible que desee tener una salida, ya que el propósito del reloj es sincronizar todos los chips. Tendrá que cambiar su diseño para implementar el ciclo de búsqueda / decodificación / ejecución a tiempo con la señal del reloj: eso está más allá de mi comprensión, pero cualquier buen libro sobre diseño digital debería decirle cómo hacerlo.

¡Buena suerte!

    
respondido por el Nester
0

Puede buscar diagramas sobre CPU clásicas de 8 bits, por ejemplo:

enlace

Por lo general, se organizan en torno a unos pocos buses compartidos, donde los registros están conectados. Hay un secuenciador que selecciona para cada ciclo de cada instrucción cómo se seleccionan los muxes, qué registros se actualizan ...

    
respondido por el TEMLIB

Lea otras preguntas en las etiquetas