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.

  • 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.
Link to original

MARIE ISA

MARIE’s ISA contains thirteen instructions.

HexBinaryInstructionMeaning
JnS XJump and Store: Stores PC at address and jumps to .
Load XLoad contents of address X into ACC
Store XStore the contents of the ACC at address X
Add XAdd the contents of address X to the ACC
Subt XSubtract the contents of address X from the ACC
InputInput a value from input device into the ACC
OutputOutput the value in the ACC to output device
HaltTerminate the program
Skipcond CSkip the next instruction on condition (C), if is:
- : Skips if
- : Skips if
- : Skips if
Jump XLoad the value of X into PC
ClearSet the value of ACC to .
AddI XUse the value at as the actual address of the data operand to add to ACC
JumpI XUses the value at as the address to jump to
LoadI XLoads value from indirect address to ACC.
StoreI XStores value in ACC at the indirect address.
Link to original

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