Friday 8 October 2010

URISC / OISC: One Instruction Computers

URISC is an abstract computer designed to have a minimal instruction set, only one instruction. URISC is an abbreviation of Ultimate RISC, although technically the machine doesn’t meet the criteria for RISC.

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:

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:

Other Types of OISC

There have been several attempts to simplify OISC even further.  Here are a couple of examples:

1 comment:

  1. Unlike the spam comments above, I wanted to add something you might be interested in. I made a single-instruction (subleq, in this case) computer programming game. Solutions are ranked based on size and speed, so it's right up your alley :)


Note: only a member of this blog may post a comment.