Execute instruction

Last updated

In a computer instruction set architecture (ISA), an execute instruction is a machine language instruction which treats data as a machine instruction and executes it.

Contents

It can be considered a fourth mode of instruction sequencing after ordinary sequential execution, branching, and interrupting. [1] Since it is an instruction that operates on other instructions like the repeat instruction, it has also been classified as a meta-instruction. [2]

Computer models

Many computer families introduced in the 1950s and 1960s include execute instructions: the IBM 709 [1] and IBM 7090 (op code mnemonic: XEC), [3] the IBM 7030 Stretch (EX, EXIC), [4] [1] the PDP-1/-4/-7/-9/-15 (XCT), [5] [6] the UNIVAC 1100/2200 (EXRI), [7] the CDC 924 (XEC), [8] the PDP-6/-10 (XCT), the IBM System/360 (EX), [9] the GE-600/Honeywell 6000 (XEC, XED), [10] the SDS-9xx (EXU), [11] the SDS 92 (EXU), [12] and the SDS Sigma series (EXU). [13]

Fewer 1970s designs include execute instructions: the Nuclear Data 812 minicomputer (1971) (XCT), [14] the HP 3000 (1972) (XEQ), [15] and the Texas Instruments TI-990 (1975) [16] and its microprocessor version, the TMS9900 (1976) (X). [17] The Signetics 8X300 (1976) is a rare microprocessor design with an execute instruction. XEC executes one instruction from a table of 1 to 255 instructions. Most instructions act as single instruction subroutines but branches are used to implement jump tables. [18] An execute instruction was proposed for the PDP-11 in 1970, [19] but never implemented for it [20] or its successor, the VAX. [21]

Modern instruction sets do not include execute instructions because they interfere with pipelining, prefetching, and other optimizations.[ citation needed ]

Semantics

The instruction to be executed, the target instruction, may be in a register or fetched from memory. Some architectures allow the target instruction to itself be an execute instruction; others do not.

The target instruction is executed as if it were in the memory location of the execute instruction. If, for example, it is a subroutine call instruction, execution is transferred to the subroutine, with the return location being the location after the execute instruction. However, some architectures implement variants of the execute instruction which inhibit branches. [1]

The System/360 supports variable-length target instructions. It also supports modifying the target instruction before executing it. The target instruction must start on an even-numbered byte. [9]

The GE-600 series supports execution of two-instruction sequences, which must be doubleword-aligned. [10]

Some architectures support an execute instruction which operates in a different protection and address relocation mode. For example, the ITS PDP-10 paging device supports a privileged-mode XCTR 'execute relocated' instruction which allows memory reads, writes, or both to use the user-mode page mappings. [22] Similarly, the KL10 variant of the PDP-10 supports the privileged instruction PXCT 'previous context XCT'. [23]

The execute instruction can cause several problems when one execute instruction points to another one and so on:

Similar issues arise with multilevel indirect addressing modes.

Applications

The execute instruction has several applications: [1]

Notes

  1. 1 2 3 4 5 6 7 8 Brooks, F.P. (March 1960). "The execute operations—a fourth mode of instruction sequencing". Communications of the ACM. 3 (3): 168–170. doi: 10.1145/367149.367168 . S2CID   37725430.
  2. Rossman, George E. (December 1975). "A Course of Study in Computer Hardware Architecture". IEEE Computer. 8 (12): 44–63. doi:10.1109/C-M.1975.218835. S2CID   977792., p. 50
  3. Reference Manual, IBM 7090 Data Processing System (PDF). IBM. March 1962. p. 36.
  4. Reference Manual, 7030 Data Processing System (PDF). IBM. August 1961. p. 50.
  5. Programmed Data Processor-1 Manual (PDF). Digital Equipment Corporation. 1961. p. 14.
  6. Supnik, Bob. "Architectural Evolution in DEC's 18b Computers" (PDF). p. 8 (page numbers not shown).
  7. Univac 1107 Central Computer (PDF). November 1961. p. 12-1.
  8. Control Data 924 Computer Reference Manual (PDF). October 1962. p. 2-41.
  9. 1 2 IBM System/360 Principles of Operation (PDF). IBM. 1964. p. 65. A22-6821-0.
  10. 1 2 GE-635 System Manual (PDF). General Electric Computer Department. July 1964. p. A-5.
  11. SDS 940 Theory of Operation (PDF). Scientific Data Systems. March 1967. p. 2-12. SDS-98-01-26A.
  12. SDS 92 Computer. Scientific Data Systems. June 1965. p. 2-6.
  13. Xerox SIGMA 7 Computer: Reference Manual (PDF). 90 09 5J; XG46, File No: 1X03 (0 ed.). Xerox Corporation. October 1973. pp. 70–71.{{cite book}}: CS1 maint: others (link)
  14. Principles of Programming the ND812 Computer (PDF). Nuclear Data, Inc. 1971. p. 4-4.
  15. HP 3000 Computer System: Machine Instruction Set Reference Manual (PDF). Hewlett-Packard. 1980. p. 2-31.
  16. 990 Computer Family Systems Handbook (PDF). Texas Instruments. p. 3-28.
  17. TMS 9900 Microprocessor Data Manual (PDF). Texas Instruments. December 1976. p. 24.
  18. "SL8X305 Microcontroller" (PDF). Lansdale Semiconductor Inc. Retrieved 20 June 2017.
  19. 1 2 van de Goor, Ad (September 21, 1970). "The Execute Instruction" (PDF). PDP-11/40 Technical Memorandum 18.
  20. 1 2 PDP11 Processor Handbook: PDP11/04/34a/44/60/60 (PDF). Digital Equipment Corporation. 1979.
  21. VAX MACRO and Instruction Set Reference Manual (PDF). Compaq Computer Corporation. April 2001. AA-PS6GD-TE.
  22. Holloway, J. (February 20, 1970). "Hardware Memo 2 - PDP-10 Paging Device" (PDF). MIT AI Lab. p. 11.
  23. DECsystem-10, DECSYSTEM-20 Processor Reference Manual (PDF). Digital Equipment Corporation. June 1982. p. 2-63. AA-H391A-TK, AD-H391A-T1.
  24. Gabriel, Richard P. (August 1985). Performance and Evaluation of Lisp Systems (PDF). MIT Press. p. 32. ISBN   9780262070935.
  25. Pitman, Kent M. "PURE". The Revised Maclisp Manual, Sunday Morning Edition.
  26. Moon, David A. (April 1974). Maclisp Reference Manual (PDF). Revision 0. p. 181.

Related Research Articles

A complex instruction set computer is a computer architecture in which single instructions can execute several low-level operations or are capable of multi-step operations or addressing modes within single instructions. The term was retroactively coined in contrast to reduced instruction set computer (RISC) and has therefore become something of an umbrella term for everything that is not RISC, where the typical differentiating characteristic is that most RISC designs use uniform instruction length for almost all instructions, and employ strictly separate load and store instructions.

<span class="mw-page-title-main">PDP-10</span> 36-bit computer by Digital (1966–1983)

Digital Equipment Corporation (DEC)'s PDP-10, later marketed as the DECsystem-10, is a mainframe computer family manufactured beginning in 1966 and discontinued in 1983. 1970s models and beyond were marketed under the DECsystem-10 name, especially as the TOPS-10 operating system became widely used.

<span class="mw-page-title-main">DECSYSTEM-20</span> Type of mainframe computer

The DECSYSTEM-20 was a family of 36-bit Digital Equipment Corporation PDP-10 mainframe computers running the TOPS-20 operating system and was introduced in 1977.

<span class="mw-page-title-main">Programmed Data Processor</span> Name used for several lines of minicomputers

Programmed Data Processor (PDP), referred to by some customers, media and authors as "Programmable Data Processor," is a term used by the Digital Equipment Corporation from 1957 to 1990 for several lines of minicomputers.

<span class="mw-page-title-main">PDP-8</span> Minicomputer product line

The PDP-8 is a family of 12-bit minicomputers that was produced by Digital Equipment Corporation (DEC). It was the first commercially successful minicomputer, with over 50,000 units being sold over the model's lifetime. Its basic design follows the pioneering LINC but has a smaller instruction set, which is an expanded version of the PDP-5 instruction set. Similar machines from DEC are the PDP-12 which is a modernized version of the PDP-8 and LINC concepts, and the PDP-14 industrial controller system.

<span class="mw-page-title-main">VAX</span> Line of computers sold by Digital Equipment Corporation

VAX is a series of computers featuring a 32-bit instruction set architecture (ISA) and virtual memory that was developed and sold by Digital Equipment Corporation (DEC) in the late 20th century. The VAX-11/780, introduced October 25, 1977, was the first of a range of popular and influential computers implementing the VAX ISA. The VAX family was a huge success for DEC, with the last members arriving in the early 1990s. The VAX was succeeded by the DEC Alpha, which included several features from VAX machines to make porting from the VAX easier.

In computer science, an instruction set architecture (ISA) is an abstract model that generally defines how software controls the CPU in a computer or a family of computers. A device or program that executes instructions described by that ISA, such as a central processing unit (CPU), is called an implementation of that ISA.

<span class="mw-page-title-main">Intel 8008</span> 8-bit microprocessor

The Intel 8008 is an early 8-bit microprocessor capable of addressing 16 KB of memory, introduced in April 1972. The 8008 architecture was designed by Computer Terminal Corporation (CTC) and was implemented and manufactured by Intel. While the 8008 was originally designed for use in CTC's Datapoint 2200 programmable terminal, an agreement between CTC and Intel permitted Intel to market the chip to other customers after Seiko expressed an interest in using it for a calculator.

A processor register is a quickly accessible location available to a computer's processor. Registers usually consist of a small amount of fast storage, although some registers have specific hardware functions, and may be read-only or write-only. In computer architecture, registers are typically addressed by mechanisms other than main memory, but may in some cases be assigned a memory address e.g. DEC PDP-10, ICT 1900.

The NX bit (no-execute) is a technology used in CPUs to segregate areas of a virtual address space to store either data or processor instructions. An operating system with support for the NX bit may mark certain areas of an address space as non-executable. The processor will then refuse to execute any code residing in these areas of the address space. The general technique, known as executable space protection, also called Write XOR Execute, is used to prevent certain types of malicious software from taking over computers by inserting their code into another program's data storage area and running their own code from within this section; one class of such attacks is known as the buffer overflow attack.

Addressing modes are an aspect of the instruction set architecture in most central processing unit (CPU) designs. The various addressing modes that are defined in a given instruction set architecture define how the machine language instructions in that architecture identify the operand(s) of each instruction. An addressing mode specifies how to calculate the effective memory address of an operand by using information held in registers and/or constants contained within a machine instruction or elsewhere.

<span class="mw-page-title-main">36-bit computing</span> Computer architecture bit width

In computer architecture, 36-bit integers, memory addresses, or other data units are those that are 36 bits wide. Also, 36-bit central processing unit (CPU) and arithmetic logic unit (ALU) architectures are those that are based on registers, address buses, or data buses of that size. 36-bit computers were popular in the early mainframe computer era from the 1950s through the early 1970s.

In computer programming, a return statement causes execution to leave the current subroutine and resume at the point in the code immediately after the instruction which called the subroutine, known as its return address. The return address is saved by the calling routine, today usually on the process's call stack or in a register. Return statements in many programming languages allow a function to specify a return value to be passed back to the code that called the function.

Byte addressing in hardware architectures supports accessing individual bytes. Computers with byte addressing are sometimes called byte machines, in contrast to word-addressable architectures, word machines, that access data by word.

The TMS9900 was one of the first commercially available, single-chip 16-bit microprocessors. Introduced in June 1976, it implemented Texas Instruments' TI-990 minicomputer architecture in a single-chip format, and was initially used for low-end models of that lineup.

<span class="mw-page-title-main">History of general-purpose CPUs</span>

The history of general-purpose CPUs is a continuation of the earlier history of computing hardware.

The PDP-11 architecture is a 16-bit CISC instruction set architecture (ISA) developed by Digital Equipment Corporation (DEC). It is implemented by central processing units (CPUs) and microprocessors used in PDP-11 minicomputers. It was in wide use during the 1970s, but was eventually overshadowed by the more powerful VAX architecture in the 1980s.

An instruction set architecture (ISA) is an abstract model of a computer, also referred to as computer architecture. A realization of an ISA is called an implementation. An ISA permits multiple implementations that may vary in performance, physical size, and monetary cost ; because the ISA serves as the interface between software and hardware. Software that has been written for an ISA can run on different implementations of the same ISA. This has enabled binary compatibility between different generations of computers to be easily achieved, and the development of computer families. Both of these developments have helped to lower the cost of computers and to increase their applicability. For these reasons, the ISA is one of the most important abstractions in computing today.

In computer engineering, a register–memory architecture is an instruction set architecture that allows operations to be performed on memory, as well as registers. If the architecture allows all operands to be in memory or in registers, or in combinations, it is called a "register plus memory" architecture.

<span class="mw-page-title-main">WD16</span> Microprocessor produced by Western Digital

The WD16 is a 16-bit microprocessor introduced by Western Digital in October 1976. It is based on the MCP-1600 chipset, a general-purpose design that was also used to implement the DEC LSI-11 low-end minicomputer and the Pascal MicroEngine processor. The three systems differed primarily in their microcode, giving each system a unique instruction set architecture (ISA).