Ciclo de búsqueda, decodificación y ejecución – dentro de una CPU sencilla
InformáticaComputadoras y hardwareEdades 16–17
Cargando…
Inicia sesión para usarUna CPU diminuta con PC, MAR, MDR, CIR, ACC, ALU y unidad de control, conectada a 16 o 32 celdas de memoria mediante los buses de direcciones, de datos y de control. Carga un programa de ejemplo escrito en un lenguaje ensamblador sencillo (LDA, ADD, SUB, STA, BRZ, BRP, BRA, OUT, HLT) y avanza ciclo de reloj a ciclo de reloj para ver cómo viajan los datos por los buses en las etapas de búsqueda, decodificación y ejecución; cambia la velocidad del reloj y cuenta los ciclos.
Lección: Dentro del ordenador: la CPU, los registros, los buses y el ciclo de búsqueda, decodificación y ejecución
Qué muestra
Un ordenador de programa almacenado guarda instrucciones y datos como números en la memoria principal. La CPU repite siempre el mismo ciclo: busca la instrucción en la dirección indicada por el contador de programa, la decodifica en la unidad de control y la ejecuta, moviendo valores entre registros, la ALU y la memoria por los buses de direcciones, datos y control. El modelo funciona como el Little Man Computer: códigos decimales de tres cifras, la primera es el código de operación y las dos últimas la dirección, con una transferencia entre registros por ciclo de reloj.
Cómo usarla
Elige un Programa de ejemplo y ajusta el Valor A y el Valor B. Pulsa Paso (1 ciclo) para avanzar un ciclo de reloj y lee arriba la transferencia entre registros, por ejemplo MAR ← PC; pulsa Instrucción completa para terminar la instrucción actual, o Ejecutar para que la Velocidad de reloj mueva la CPU. Cambia la Vista de la memoria entre ensamblador y código máquina, y haz clic en una celda para ver cómo la leería la CPU.
Parámetros que puedes cambiar
- Programa de ejemplo Sumar dos números (A + B), Cuenta atrás de A a 0 (bucle), El mayor de A y B
- Valor A 0–50
- Valor B 0–50
- Velocidad de reloj 0,5–20 Hz
- Celdas de memoria 16 celdas, 32 celdas
- Vista de la memoria Ensamblador (LDA 13…), Código máquina (513…)
Preguntas para explorar
- ¿Por qué el contador de programa aumenta durante la búsqueda, antes de ejecutar la instrucción?
- ¿Cuántos ciclos de reloj necesitan ADD y BRA en este modelo, y por qué son distintos?
- En el programa de cuenta atrás, ¿cómo cambia el total de ciclos cuando A aumenta en 1?