Máquina de mano
Contenido keyboard_arrow_down
La máquina Mano es una computadora descrita teóricamente por M. Morris Mano. Contiene una unidad central de procesamiento, memoria de acceso aleatorio y un bus de entrada-salida. Su conjunto de instrucciones limitado y su reducido espacio de direcciones limitan su uso como microcontrolador, pero puede ampliarse fácilmente para incluir un registro acumulador de 32 bits y direccionamiento de 28 bits mediante un lenguaje de descripción de hardware como Verilog o VHDL; y, al mismo tiempo, generar espacio para nuevas instrucciones.La máquina Mano es similar a la PDP-8 en muchos aspectos, como el mismo espacio de direcciones, un solo registro acumulador y muchas instrucciones similares. La máquina Mano tiene un segmento de memoria compartida de datos/programa de 4096x16 que requiere un bus de direcciones de 12 bits. El bus de datos es de 16 bits. Cuenta con buses de entrada/salida de 8 bits para la comunicación externa y sus correspondientes indicadores de interrupción.Hay un registro acumulador de 16 bits y registros de un solo bit (retención) para el acarreo de suma y la detención del sistema.Hay 25 instrucciones que se dividen en tres categorías: operaciones de referencia directa/indirecta a memoria, operaciones de referencia a registros y operaciones de entrada/salida/interrupción.Cada instrucción tiene una longitud de 16 bits [4 nybbles o 1 palabra]. Esto significa que las instrucciones de referencia a memoria contienen 4 bits de datos de código de operación y 12 bits dedicados a la dirección.
Las especificaciones de la máquina incluyen una máquina de estados finitos que determina las microoperaciones del procesador. La implementación canónica de la máquina de estados es una excelente candidata para la reducción y también puede reimplementarse como un procesador segmentado.
Características
Conjunto de instrucciones
| Bit 15 | Bits 14-12 | Bits 11-0 | Mnemonic | Descripción |
|---|---|---|---|---|
| 0 | 0 | (Direct address) | Y | Y memoria directa al acumulador |
| 0 | 1 | (Direct address) | ADD | Añadir memoria directa al acumulador (afectos llevan poco) |
| 0 | 2 | (Direct address) | LDA | Cargar memoria directa al acumulador |
| 0 | 3 | (Direct address) | STA | Almacenamiento acumulador para memoria directa |
| 0 | 4 | (Direct address) | BUN | Rama incondicional a la memoria directa |
| 0 | 5 | (Direct address) | BSA | Guardar el contador del programa actual a la memoria directa y rama a la dirección siguiente |
| 0 | 6 | (Direct address) | ISZ | Valor de Incremento en memoria directa y saltar siguiente instrucción si la suma es cero |
| 1 | 0-6 | (Dirección directa) | Versiones directas de las instrucciones anteriores | |
| 0 | 7 | 800 | CLA | Limpiar el acumulador |
| 0 | 7 | 400 | CLE | Limpiar el bit de carga |
| 0 | 7 | 200 | CMA | Complementar el acumulador |
| 0 | 7 | 100 | CME | Complementa el bit de carga |
| 0 | 7 | 080 | CIR | Circular accumulador derecho (a través del bit) |
| 0 | 7 | 040 | CIL | Círculo acumulador izquierdo (a través del bit) |
| 0 | 7 | 020 | INC | Acumulador de Incremento (no afecta al bit de carga) |
| 0 | 7 | 010 | SPA | Skip next instruction if accumulator is positive |
| 0 | 7 | 008 | SNA | Skip next instruction if accumulator is negative |
| 0 | 7 | 004 | SZA | Saltar la siguiente instrucción si el acumulador es cero |
| 0 | 7 | 002 | SZE | Saltar la siguiente instrucción si llevar bit es cero |
| 0 | 7 | 001 | HLT | Halt computación al limpiar el bit stop latch |
| 1 | 7 | 800 | INP | Entrada del bus de carácter al acumulador |
| 1 | 7 | 400 | Fuera. | Salida del acumulador al autobús de carácter |
| 1 | 7 | 200 | SKI | Saltar la siguiente instrucción si se establece la bandera de entrada |
| 1 | 7 | 100 | SKO | Saltar la siguiente instrucción si se establece la bandera de salida |
| 1 | 7 | 080 | ION | Interrupciones habilitadas |
| 1 | 7 | 040 | IOF | Interrupciones deficientes |
Aplicaciones a la teoría de optimización de la computadora
Enlaces externos
- El montador/simulador de máquina Mano de Mark Roth
- MANOSIM y MANOASM binarios y página de guía
- Aplicación VHDL de la máquina Mano por N. Narasimhamurthi
- Una aplicación Verilog de la máquina Mano por Greg Toombs
- Un simulador de Mano Machine en el navegador (Java Applet)
Referencias
Mano, M. Morris (octubre de 1992). Arquitectura de sistemas informáticos (3.ª ed.). Prentice-Hall. ISBN 0-13-175563-3.
Más resultados...