MARIE
Machine Architecture that is Really Intuitive and Easy
Specification
- Binary, two’s complement data representation
- Stored program, fixed word length data and instructions
- words of word-addressable main memory
- word size
- instructions ( for op code, for address)
- ALU
- Seven registers for control and data movement
Architecture
Below is an overview of the MARIE architecture.

The ratio of address, control and data lines varies between computer systems.
- More devices on the bus mean we want more control lines.
- More addresses in memory mean we want more address lines.
- Larger word size, means more data lines.
Bus
All of MARIE’s registers are connected with each other and with main memory through a common data bus.
- Each device on the bus is identified by a unique number. This number is set on the control lines whenever the corresponding device is required to carry out an operation.
- Separate connections are also provided between the following registers:

MARIE ISA
Instruction Set Architecture
A computer’s instruction set architecture (ISA) specifies the format of its instructions and the primitive operations that the machine can perform.
Link to original
- The ISA is an interface between a computer’s hardware and its software.
- Some ISAs include hundreds of different instructions for processing data and controlling program execution.
MARIE ISA
MARIE’s ISA contains thirteen instructions.
Link to original
Hex Binary Instruction Meaning JnS X Jump and Store: Stores PC at address and jumps to . Load X Load contents of address X into ACC Store X Store the contents of the ACC at address X Add X Add the contents of address X to the ACC Subt X Subtract the contents of address X from the ACC Input Input a value from input device into the ACC Output Output the value in the ACC to output device Halt Terminate the program Skipcond C Skip the next instruction on condition (C), if is:
- : Skips if
- : Skips if
- : Skips ifJump X Load the value of X into PC Clear Set the value of ACC to . AddI X Use the value at as the actual address of the data operand to add to ACC JumpI X Uses the value at as the address to jump to LoadI X Loads value from indirect address to ACC. StoreI X Stores value in ACC at the indirect address.
Register Transfer Language
Register Transfer Language
Each of MARIE’s instructions consist of a sequence of micro-operations: data movements between registers as well as arithmetic & logical operations.
The exact sequence of micro-operations that are carried out by an instruction can be specified using the register transfer language (RTL).
We use the notation to indicate the actual data value stored in a memory location , and to indicate the transfer of bytes to a register or memory location.
Example RTL for the LOAD X instruction:
Example RTL for the ADD X instruction:
Example RTL for the JUMP X instruction:
Link to original