11.1: Una visión general de la CPU
- Page ID
- 82746
La siguiente figura es de toda la CPU que se cubrirá en este texto. Hay 3 subcircuitos Logisim que forman parte de esta CPU, dos de los cuales se desglosarán para mostrar cómo son los CI de este libro. Son la Unidad Lógica Aritmética (ALU), y la Unidad de Control (CU). Estas dos unidades se explicarán en términos de toda la CPU, y luego se mostrarán como subcircuitos para exponer los circuitos decodificador y sumador.
Esta CPU es un ejemplo de un acumulador o CPU de arquitectura de una dirección. En todos los diseños de CPU, se alimentan dos operandos a la ALU, donde los dos operandos se utilizan para realizar alguna operación y producir un resultado. En una CPU Acumuladora, uno de estos operandos se llama el $pc, que es la memoria en el chip de la CPU (llamado registro), y el otro proviene ya sea de la instrucción misma o de la memoria. Entonces un programa sencillo para sumar dos números, el valor de la variable A y el número 2, se vería de la siguiente manera:
clac |
# establecer el $ac (registro acumulador) en 0 |
añadir A |
# agregar el valor de A al acumulador |
addi |
# agregar el número 5 al valor en el acumulador |
Parte B |
# stor el valor del acumulador a la variable de memoria B |
La CPU realiza un seguimiento de la declaración a procesar usando el registro del Contador de Programas ($pc). El $pc contiene la dirección de la siguiente instrucción a ejecutar. La CU toma la instrucción, que es un número binario de 4 bits, y la divide en cables de control que especifican cómo debe comportarse cada componente de la CPU (muxes, decodificadores, ALU y memoria) para esa instrucción. La ALU realiza la operación real que se solicita (por ejemplo, una suma, resta, etc.)
Entonces, por ejemplo, la instrucción add A. La CU especificaría:
- Que el mux delante del $pc seleccione la entrada 0, que es la siguiente instrucción en el programa (por ejemplo, no se ramifique).
- Que el mux frente al $ac select input 0, que es el resultado de la ALU, para almacenar en el $ac.
- Que el mux frente a la ALU seleccione un valor de la memoria, no la instrucción.
- Que la ALU ejecute una operación de adición.
- Que el valor de los $ac no se vuelva a almacenar en la memoria.
El resto de este capítulo mostrará cómo se utilizan los CI de este texto en este diseño.