Mano machine

The Mano machine is a computer theoretically described by M. Morris Mano. It contains a central processing unit, random access memory, and an input-output bus. Its limited instruction set and small address space limit it to use as a microcontroller, but it can easily be expanded to have a 32-bit accumulator register, and 28-bit addressing using a hardware description language like Verilog or VHDL; and at the same time, make room for new instructions.

Characteristics

The Mano machine is similar in many respects to the PDP-8, such as the same address space, only one accumulator register, and many similar instructions. The Mano machine has a 4096x16 shared data/program memory segment requiring a 12-bit address bus. The data bus is 16 bits. There are 8-bit input/output buses for external communication, and associated interrupt flags.

There is one 16-bit accumulator register, and single-bit registers (latches) for addition carry and system halt.

Instruction set

There are 25 instructions that fall into 3 categories: direct / indirect memory referencing operations, register referencing operations, and input/output/interrupt operations.

Each instruction is 16 bits long [4 nybbles, or 1 word]. This means that memory referencing instructions contain 4 bits of op-code data, and 12 bits dedicated to the address.

Bit 15 Bits 14-12 Bits 11-0 Mnemonic Description
0 0 (Direct address) AND And direct memory to accumulator
0 1 (Direct address) ADD Add direct memory to accumulator (affects carry bit)
0 2 (Direct address) LDA Load direct memory to accumulator
0 3 (Direct address) STA Store accumulator to direct memory
0 4 (Direct address) BUN Unconditionally branch to direct memory
0 5 (Direct address) BSA Store current program counter to direct memory and branch to following address
0 6 (Direct address) ISZ Increment value in direct memory and skip next instruction if the sum is zero
1 0-6 (Indirect address) Indirect addressing versions of the above instructions
0 7 800 CLA Clear the accumulator
0 7 400 CLE Clear the carry bit
0 7 200 CMA Complement the accumulator
0 7 100 CME Complement the carry bit
0 7 080 CIR Circulate accumulator right (through carry bit)
0 7 040 CIL Circulate accumulator left (through carry bit)
0 7 020 INC Increment accumulator (does not affect carry bit)
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 Skip next instruction if accumulator is zero
0 7 002 SZE Skip next instruction if carry bit is zero
0 7 001 HLT Halt computer by clearing the halt bit latch
1 7 800 INP Input from character bus to accumulator
1 7 400 OUT Output from accumulator to character bus
1 7 200 SKI Skip next instruction if input flag is set
1 7 100 SKO Skip next instruction if output flag is set
1 7 080 ION Enable interrupts
1 7 040 IOF Disable interrupts

Applications to computer optimization theory

The machine specifications include a finite-state machine that determines the processor's micro-operations. The canonical implementation of the state machine is an excellent candidate for reduction, and can also be re-implemented as a pipelined processor.

References

Mano, M. Morris (October 1992). Computer System Architecture (3rd ed.). Prentice-Hall. ISBN 0-13-175563-3.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.