FACTOID # 8: Bookworms: Vermont has the highest number of high school teachers per capita and third highest number of librarians per capita.

 Home Encyclopedia Statistics States A-Z Flags Maps FAQ About

 WHAT'S NEW

SEARCH ALL

Search encyclopedia, statistics and forums:

(* = Graphable)

Encyclopedia > Orthogonal instruction set

Orthogonal instruction set is a term used in computer science. Generally, having an orthogonal instruction set is a desirable attribute for any computer architecture. Computer architecture is the theory behind the design of a computer. ...

 Contents

## The definition of orthogonality GA_googleFillSlot("encyclopedia_square");

All computer architectures define the set of basic (fundamental) instructions that a computer conforming to that architecture must be capable of processing. These instructions define the basic operations that the computer can perform and the types of data that the computer can process. For example, a computer may be able to add and subtract, and it can process data that is in its registers and in its main memory. But it does not go without saying that a computer must be able to perform additions on both data that is in its registers and data that is in its main memory; in fact, many very famous computers are unable to do both. Computer architecture is the theory behind the design of a computer. ... An instruction is a form of information which is communicated in order to explain how an action, behavior, method, or task is to be begun, completed, conducted, or executed. ... A datum is a statement accepted at face value (a given). Data is the plural of datum. ... Historically, a register was a sign or chalkboard onto which people would write cash transactions for later bookkeeping, often with chalk. ... Primary storage is a category of computer storage, often called main memory. ...

Specifically, a computer's instruction set is said to be orthogonal if any instruction can use data of any type via any addressing mode. This terminology results from considering a computer instruction as a bit vector whose components can be divided into several fields: In computer programming, addressing modes are primarily of interest to compiler writers and to those (few nowadays) who use assembly language. ... A bit array is an array data structure which compactly stores individual bits (boolean values). ...

• The instruction's operation code opcode, specifying the operation to be performed (such as "add two numbers")
• The type of data to be operated upon (such as a "one byte signed integer")
• The sources and/or destinations for the data to be operated upon (such as "data from Register 1 and Register 2 with the result to be stored at memory address 12345")

If all of these fields can simultaneously specify any of the various capabilities of which the computer is capable, the instruction set is said to be "orthogonal". (The term comes from the fact that you could view the several fields as individual dimensions in space; if each dimension can vary fully without affecting any other dimension, the dimensions (axes) are said to be orthogonal to each other). A computer can perform operations, each of which is assigned a numeric code called an opcode. ...

However, if it turns out that, for example, floating point numbers can only be added when contained in Registers 0, 1, and 2, but integer numbers can be added when contained in any register, that computer's instruction set is said to not be orthogonal because the programmer's choice of data type (floating versus integer) affects which registers the programmer can then choose to use. A floating-point number is a digital representation for a number in a certain subset of the rational numbers, and is often used to approximate an arbitrary real number on a computer. ...

As with a set of mathematical basis vectors, which must be orthogonal if they are to represent any vector uniquely, only an orthogonal instruction set can uniquely encode all combinations of opcodes, data types, registers, and addressing modes. In mathematics, a subset B of a vector space V is said to be a basis of V if it satisfies one of the four equivalent conditions: B is both a set of linearly independent vectors and a generating set of V. B is a minimal generating set of V...

## Orthogonality in practice

In many CISC computers, an instruction could access either registers or memory, usually in several different ways. This made the CISC machines easier to program, because rather than being required to remember thousands of individual instruction opcodes, an orthogonal instruction set allowed a programmer to instead remember just thirty to a hundred operation codes ("ADD", "SUBTRACT", "MULTIPLY", "DIVIDE", etc.) and a set of three to ten addressing modes ("FROM REGISTER 0", "FROM REGISTER 1", FROM MEMORY", etc.). The DEC PDP-11 and Motorola 68000 computer architectures are examples of nearly orthogonal instruction sets. A Complex Instruction Set Computer (CISC) is an instruction set architecture (ISA) in which each instruction can indicate several low-level operations, such as a load from memory, an arithmetic operation, and a memory store, all in a single instruction. ... Digital Equipment Corporation was a pioneering company in the American computer industry. ... Dennis Ritchie and Ken Thompson at a PDP-11 The PDP-11 was a 16-bit minicomputer sold by Digital Equipment Corp. ... Motorola (NYSE: MOT) (TYO: 6686) started as Galvin Manufacturing Corporation in 1928. ... The Motorola 68000 is a CISC microprocessor, the first member of a successful family of microprocessors from Motorola, which were all mostly software compatible. ...

### The PDP-11

With the exception of its floating point instructions, the PDP-11 was very strongly orthogonal. Every integer instruction could operate on either 1-byte or 2-byte integers and could access data stored in registers, stored as part of the instruction, stored in memory, or stored in memory and pointed to by addresses in registers. Even the PC and the stack pointer could be affected by the ordinary instructions using all of the ordinary data modes. The program counter (also called the instruction pointer in some computers) is a register in a computer processor which indicates where the computer is in its instruction sequence. ... A stack is a data structure that works on the principle of Last In First Out (LIFO). ...

### The MC68000

By comparison, Motorola's designers attempted to make the assembly language orthogonal while the underlying machine language was somewhat less so. Compared to the PDP-11, the MC68000 used separate registers to store instructions and the addresses of data in memory; the assembly language "hid" some of this separation from the programmer. Many programmers disliked the "near" orthogonality, while others were grateful for the attempt.

At the bit level, the person writing the assembler (or debugging machine code) would clearly see that these "instructions" could become any of several different op-codes. It was quite a good compromise because it gave almost the same convenience as a truly orthogonal machine, and yet also gave the CPU designers freedom to use the bits in the instructions more efficiently than a purely-orthogonal approach might have.

### The 8080 and follow on designs

By comparison, the Intel 8080 8-bit microprocessor was a highly non-orthogonal machine. An assembly-language programmer needed to be constantly mindful of what operations were legal on which registers. Most operations could only be performed on data in the A (accumulator) register while other operations could only be performed on the H/L pair and so forth. This was probably a necessary tradeoff given that the 8080's 8-bit instruction word could only encode a total of 256 machine language instructions (compared to the 65,536 possibilities available with the PDP-11 or the 4 billion instructions available with the MC68000). In the interest of program compatibility, the 8086 family maintained much of this non-orthogonality even though it led to an instruction set that some computer scientists derided as being "baroque". Intel Corporation (NASDAQ: INTC) (founded 1968) is a US-based multinational corporation that is best known for designing and manufacturing microprocessors and specialized integrated circuits. ... The Intel 8080 was an early microprocessor designed and manufactured by Intel. ... In a CPU, an accumulator is a register in which intermediate results are stored. ... Adoration, by Peter Paul Rubens: dynamic figures spiral down around a void: draperies blow: a whirl of movement lit in a shaft of light, rendered in a free bravura handling of paint The Baroque was a style in art that used exaggerated motion and clear, easily interpreted detail to produce...

### Into the RISC age

A fully-orthogonal architecture may not be the most "bit efficient" architecture. In the late 1970s research at IBM (and similar projects elsewhere) demonstrated that the majority of these "orthogonal" addressing modes were ignored by most programs. Perhaps some of the bits that were used to express the fully-orthogonal instruction set could instead be used to express more virtual address bits or select from among more registers. In the RISC age, computer designers strove to achieve a balance that they thought better. In particular, most RISC computers, while still being highly orthogonal with regard to which instructions can process which data types, now have reverted to "load/store" architectures. In these architectures, only a very few memory reference instructions can access main memory and only for the purpose of loading data into registers or storing register data back into main memory. Conversely, data must be in registers before it can be operated upon by the other instructions in the computer's instruction set. In the RISC age, this tradeoff has been made explicitly to enable the use of much larger register sets, extended virtual addresses, and longer immediate data (data stored directly within the computer instruction). Virtual memory is intended to help the programmer by taking care of some memory housekeeping duties. ... Reduced Instruction Set Computing, is a microprocessor CPU design philosophy that favors a smaller and simpler set of instructions that all take about the same amount of time to execute. ...

Results from FactBites:

 Orthogonality - Wikipedia, the free encyclopedia (960 words) are orthogonal with respect to Lebesgue measure on the interval from 0 to 2Ï. The Legendre polynomials are orthogonal with respect to the uniform distribution on the interval from â1 to 1. The Laguerre polynomials are orthogonal with respect to the exponential distribution.
 Orthogonal instruction set - Wikipedia, the free encyclopedia (936 words) All computer architectures define the set of basic (fundamental) instructions that a computer conforming to that architecture must be capable of processing. As with a set of mathematical basis vectors, which must be orthogonal if they are to represent any vector uniquely, only an orthogonal instruction set can uniquely encode all combinations of opcodes, data types, registers, and addressing modes. Perhaps some of the bits that were used to express the fully-orthogonal instruction set could instead be used to express more virtual address bits or select from among more registers.
More results at FactBites »

Share your thoughts, questions and commentary here