Types of URISC
There are four common types of URISC – MOV, RSSB, SUBLEQ and SUBNEG.
MOV – Transport Triggered Architecture
In a MOV URISC machine there's one instruction with two operands. When the instruction executes, it copies one location in memory to another, using the operands as pointers. Jumps, arithmetic and input / output are achieve with a memory mapped program counter, arithmetic unit and input / output ports.
More information about MOV TTA:
RSSB – Reverse Subtract and Skip if Borrow
The instruction in a RSSB URISC machine is Reverse Subtract and Skip if Borrow. Each instruction has one operand which is a pointer into memory. When the instruction executes, it subtracts the accumulator from a memory location and stores the result in both. If the value in memory was lower than the accumulator, the next instruction will be skipped. The program counter, accumulator and input / output are mapped to memory.
More information about RSSB:
- The Ultimate RISC, One Instruction Computers
- Hello World for the RSSB Virtual Computer
- Redcode Interpreter for the RSSB Virtual Computer
SUBNEG – Subtract and Branch if Negative
Also abbreviated to SBN, a SUBNEG computer uses an instruction with three operands. When executed, SUBNEG subtracts the contents of the first memory location from a second location, storing the result in the second. If the first value was higher than the second, SUBNEG jumps to where the third operand points. Input / output are memory mapped.
More information about SUBNEG:
SUBLEQ – Subtract and Branch if Less than or Equal
SUBLEQ is similar to a SUBNEG computer, but also branches if the contents of the two memory locations is identical.
More information about SUBLEQ:
- Hello‚ World! in SUBLEQ Assembly
- The SUBLEQ URISC / OISC Architecture
- SUBLEQ Interpreter in Redcode
- SUBLEQ Self Interpreter
Other Types of OISC
There have been several attempts to simplify OISC even further. Here are a couple of examples: