Simuladores de Arquitectura de Computadoras

Visualizando el flujo de instrucción de diferentes arquitecturas

Seleccione un Simulador

Computador IAS

Arquitectura de von Neumann original

El computador IAS (Institute for Advanced Study) fue una de las primeras computadoras electrónicas de almacenamiento de programas, diseñada por John von Neumann.

40 bits por palabra, 1000 palabras de memoria

Máquina Hipotética de Von Neumann

Modelo teórico de arquitectura

Una representación conceptual de la arquitectura de von Neumann que ilustra los componentes fundamentales y el flujo de datos en una computadora de programa almacenado.

Modelo teórico con componentes básicos

Simulador del Computador IAS

Visualizando el ciclo de búsqueda-ejecución de la arquitectura IAS

Formato de Instrucción IAS

Instrucción Izquierda (20 bits):

Código de operación (8 bits) | Dirección (12 bits)

Instrucción Derecha (20 bits):

Código de operación (8 bits) | Dirección (12 bits)

Cada palabra de memoria contiene 40 bits: dos instrucciones de 20 bits o un número de 40 bits

Notación Utilizada en el Simulador

Mostrar

Direcciones de Memoria:

Las direcciones se representan con el prefijo 0x para indicar una notación de memoria "realista". Por ejemplo: 0x100 representa una dirección X en decimal.

Registros Principales:

PC - Program Counter (Contador de Programa)
MAR - Memory Address Register (Registro de Dirección de Memoria)
MBR - Memory Buffer Register (Registro Buffer de Memoria)
IR - Instruction Register (Registro de Instrucción)
IBR - Instruction Buffer Register (Registro Buffer de Instrucción)
AC - Accumulator (Acumulador)
MQ - Multiplier-Quotient (Multiplicador-Cociente)

Notación de Memoria:

M(X) representa el contenido almacenado en la dirección de memoria X.
Por ejemplo: M(0x200) se refiere al dato almacenado en la dirección 0x200.

Flujo de Datos:

La flecha indica la dirección del flujo de datos.
Ejemplo: PC → MAR significa que el contenido de PC se transfiere a MAR.

Leyenda de Códigos de Operación (Opcode)

Mostrar

Instrucciones de Transferencia de Datos

LOAD(00000001) MQ Transfiere contenido del registro MQ al acumulador AC
LOAD(00000001) MQ,M(X) Transfiere contenido de memoria M(X) al registro MQ
STOR(00100001) M(X) Almacena contenido del acumulador AC en memoria M(X)
LOAD(00000001) M(X) Transfiere contenido de memoria M(X) al acumulador AC
LOAD -M(X) Transfiere contenido negativo de memoria M(X) al AC
LOAD |M(X)| Transfiere valor absoluto de memoria M(X) al AC
LOAD -|M(X)| Transfiere valor absoluto negativo de memoria M(X) al AC

Instrucciones de Salto Incondicional

JUMP M(X,0:19) Salta a la instrucción izquierda en memoria M(X)
JUMP M(X,20:39) Salta a la instrucción derecha en memoria M(X)

Instrucciones de Salto Condicional

JUMP + M(X,0:19) Si AC ≥ 0, salta a instrucción izquierda en M(X)
JUMP + M(X,20:39) Si AC ≥ 0, salta a instrucción derecha en M(X)

Instrucciones Aritméticas

ADD(00000101) M(X) Suma contenido de memoria M(X) al acumulador AC
ADD |M(X)| Suma valor absoluto de memoria M(X) al AC
SUB(00000110) M(X) Resta contenido de memoria M(X) del acumulador AC
SUB |M(X)| Resta valor absoluto de memoria M(X) del AC
MUL M(X) Multiplica AC por memoria M(X), resultado en MQ y AC
DIV M(X) Divide AC por memoria M(X), cociente en MQ, resto en AC

Instrucciones de Modificación de Dirección

LSH Desplaza acumulador AC una posición a la izquierda
RSH Desplaza acumulador AC una posición a la derecha

Instrucciones Especiales

STOR(00100001) M(X,8:19) Almacena bits 8-19 del AC en memoria M(X)
STOR(00100001) M(X,28:39) Almacena bits 28-39 del AC en memoria M(X)

Nota: M(X) representa la ubicación de memoria en la dirección X. Los registros principales son AC (Acumulador) y MQ (Multiplicador-Cociente).

Seleccione un Caso de Prueba

Caso 1: Suma Básica

Carga un número, suma otro y almacena el resultado

Caso 2: Resta Básica

Carga un número, resta otro y almacena el resultado

Caso 3: Suma Triple

Suma tres números y almacena el total

Memoria Principal (IAS) - 1000 palabras

CPU - Unidad de Procesamiento

PC

0x000

MAR

0x000

MBR

0x0000000000

Unidad Aritmético-Lógica

INACTIVA

Unidad de Control

INACTIVA

IR

0x00000

IBR

0x00000

AC

0x0000000000

MQ

0x0000000000

Registro de Operaciones

Seleccione un caso de prueba y haga clic en "Iniciar Ejecución" para comenzar...

Máquina Hipotética de Von Neumann

Visualizando el flujo de instrucción de la arquitectura de von Neumann

Arquitectura de Von Neumann

La arquitectura de von Neumann se basa en un concepto de programa almacenado donde:

  • Las instrucciones y los datos se almacenan en la misma memoria
  • La memoria se direcciona por ubicación sin importar su contenido
  • La CPU ejecuta un ciclo de búsqueda-decodificación-ejecución
  • Los componentes principales son: Unidad de Control, ALU, Memoria y Dispositivos de E/S

Notación Utilizada en el Simulador

Mostrar

Direcciones de Memoria:

Las direcciones se representan con el prefijo 0x para indicar una notación de memoria. Por ejemplo: 0x100 representa una dirección en memoria.

Registros Principales:

PC - Program Counter (Contador de Programa)
MAR - Memory Address Register (Registro de Dirección de Memoria)
MDR - Memory Data Register (Registro de Datos de Memoria)
IR - Instruction Register (Registro de Instrucción)
AC - Accumulator (Acumulador)

Notación de Memoria:

M[X] representa el contenido almacenado en la dirección de memoria X.
Por ejemplo: M[0x200] se refiere al dato almacenado en la dirección 0x200.

Flujo de Datos:

La flecha indica la dirección del flujo de datos.
Ejemplo: PC → MAR significa que el contenido de PC se transfiere a MAR.

Tipos de Instrucciones

Mostrar

Instrucciones de Transferencia de Datos

LOAD M[X] Carga el contenido de M[X] en el acumulador
STORE M[X] Almacena el contenido del acumulador en M[X]
MOVE X, Y Transfiere el contenido del registro X al registro Y

Instrucciones Aritméticas

ADD M[X] Suma el contenido de M[X] al acumulador
SUB M[X] Resta el contenido de M[X] del acumulador
INC X Incrementa el contenido del registro X en 1

Instrucciones de Control de Flujo

JMP X Salta incondicionalmente a la dirección X
JZ X Salta a X si el acumulador es cero
JN X Salta a X si el acumulador es negativo

Instrucciones de Entrada/Salida

IN Lee un dato desde un dispositivo de entrada al acumulador
OUT Envía el contenido del acumulador a un dispositivo de salida

Nota: Esta es una representación simplificada de las instrucciones típicas en una arquitectura de von Neumann.

Seleccione un Caso de Prueba

Caso 1: Suma Simple

Carga dos números, los suma y almacena el resultado

Caso 2: Bucle Contador

Implementa un bucle que cuenta de 1 a 5

Caso 3: Suma de Array

Suma los elementos de un array de 4 números

Memoria Principal

CPU - Arquitectura de Von Neumann

PC

0x000

MAR

0x000

MDR

0x0000

Unidad Aritmético-Lógica

INACTIVA

Unidad de Control

INACTIVA

IR

0x0000

AC

0x0000

TEMP

0x0000

Registro de Operaciones

Seleccione un caso de prueba y haga clic en "Iniciar Ejecución" para comenzar...