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] An execute instruction was proposed for the PDP-11 in 1970, [18] but never implemented for it [19] or its successor, the VAX. [20]

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. [21] Similarly, the KL10 variant of the PDP-10 supports the privileged instruction PXCT 'previous context XCT'. [22]

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. 1 2 van de Goor, Ad (September 21, 1970). "The Execute Instruction" (PDF). PDP-11/40 Technical Memorandum 18.
  19. 1 2 PDP11 Processor Handbook: PDP11/04/34a/44/60/60 (PDF). Digital Equipment Corporation. 1979.
  20. VAX MACRO and Instruction Set Reference Manual (PDF). Compaq Computer Corporation. April 2001. AA-PS6GD-TE.
  21. Holloway, J. (February 20, 1970). "Hardware Memo 2 - PDP-10 Paging Device" (PDF). MIT AI Lab. p. 11.
  22. DECsystem-10, DECSYSTEM-20 Processor Reference Manual (PDF). Digital Equipment Corporation. June 1982. p. 2-63. AA-H391A-TK, AD-H391A-T1.
  23. Gabriel, Richard P. (August 1985). Performance and Evaluation of Lisp Systems (PDF). MIT Press. p. 32. ISBN   9780262070935.
  24. Pitman, Kent M. "PURE". The Revised Maclisp Manual, Sunday Morning Edition.
  25. Moon, David A. (April 1974). Maclisp Reference Manual (PDF). Revision 0. p. 181.

Related Research Articles

<span class="mw-page-title-main">Central processing unit</span> Central computer component which executes instructions

A central processing unit (CPU)—also called a central processor or main processor—is the most important processor in a given computer. Its electronic circuitry executes instructions of a computer program, such as arithmetic, logic, controlling, and input/output (I/O) operations. This role contrasts with that of external components, such as main memory and I/O circuitry, and specialized coprocessors such as graphics processing units (GPUs).

In processor design, microcode serves as an intermediary layer situated between the central processing unit (CPU) hardware and the programmer-visible instruction set architecture of a computer, also known as its machine code. It consists of a set of hardware-level instructions that implement the higher-level machine code instructions or control internal finite-state machine sequencing in many digital processing components. While microcode is utilized in general-purpose CPUs in contemporary desktops, it also functions as a fallback path for scenarios that the faster hardwired control unit is unable to manage.

<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">Booting</span> Process of starting a computer

In computing, booting is the process of starting a computer as initiated via hardware such as a button or by a software command. After it is switched on, a computer's central processing unit (CPU) has no software in its main memory, so some process must load software into memory before it can be executed. This may be done by hardware or firmware in the CPU, or by a separate processor in the computer system.

<span class="mw-page-title-main">System call</span> Way for programs to access kernel services

In computing, a system call is the programmatic way in which a computer program requests a service from the operating system on which it is executed. This may include hardware-related services, creation and execution of new processes, and communication with integral kernel services such as process scheduling. System calls provide an essential interface between a process and the operating system.

<span class="mw-page-title-main">IBM 700/7000 series</span> Mainframe computer systems made by IBM through the 1950s and early 1960s

The IBM 700/7000 series is a series of large-scale (mainframe) computer systems that were made by IBM through the 1950s and early 1960s. The series includes several different, incompatible processor architectures. The 700s use vacuum-tube logic and were made obsolete by the introduction of the transistorized 7000s. The 7000s, in turn, were eventually replaced with System/360, which was announced in 1964. However the 360/65, the first 360 powerful enough to replace 7000s, did not become available until November 1965. Early problems with OS/360 and the high cost of converting software kept many 7000s in service for years afterward.

<span class="mw-page-title-main">PDP-6</span> 36-bit mainframe computer (1964–1966)

The PDP-6, short for Programmed Data Processor model 6, is a computer developed by Digital Equipment Corporation (DEC) during 1963 and first delivered in the summer of 1964. It was an expansion of DEC's existing 18-bit systems to use a 36-bit data word, which was at that time a common word size for large machines like IBM mainframes. The system was constructed using the same germanium transistor-based System Module layout as DEC's earlier machines, like the PDP-1 and PDP-4.

<span class="mw-page-title-main">Index register</span> CPU register used for modifying operand addresses

An index register in a computer's CPU is a processor register used for pointing to operand addresses during the run of a program. It is useful for stepping through strings and arrays. It can also be used for holding loop iterations and counters. In some architectures it is used for read/writing blocks of memory. Depending on the architecture it may be a dedicated index register or a general-purpose register. Some instruction sets allow more than one index register to be used; in that case additional instruction fields may specify which index registers to use.

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.

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.

CPU modes are operating modes for the central processing unit of most computer architectures that place restrictions on the type and scope of operations that can be performed by certain processes being run by the CPU. This design allows the operating system to run with more privileges than application software.

A control register is a processor register that changes or controls the general behavior of a CPU or other digital device. Common tasks performed by control registers include interrupt control, switching the addressing mode, paging control, and coprocessor control.

<span class="mw-page-title-main">CDC 160 series</span> Minicomputer

The CDC 160 series was a series of minicomputers built by Control Data Corporation. The CDC 160 and CDC 160-A were 12-bit minicomputers built from 1960 to 1965; the CDC 160G was a 13-bit minicomputer, with an extended version of the CDC 160-A instruction set, and a compatibility mode in which it did not use the 13th bit. The 160 was designed by Seymour Cray - reportedly over a long three-day weekend. It fit into the desk where its operator sat.

<span class="mw-page-title-main">Asymmetric multiprocessing</span>

An asymmetric multiprocessing system is a multiprocessor computer system where not all of the multiple interconnected central processing units (CPUs) are treated equally. For example, a system might allow only one CPU to execute operating system code or might allow only one CPU to perform I/O operations. Other AMP systems might allow any CPU to execute operating system code and perform I/O operations, so that they were symmetric with regard to processor roles, but attached some or all peripherals to particular CPUs, so that they were asymmetric with respect to the peripheral attachment.

<span class="mw-page-title-main">SDS 9 Series</span> Backward compatible line of transistorized computers

The SDS 9 Series computers are a backward compatible line of transistorized computers produced by Scientific Data Systems in the 1960s and 1970s. This line includes the SDS 910, SDS 920, SDS 925, SDS 930, SDS 940, and the SDS 945. The SDS 9300 is an extension of the 9xx architecture. The 1965 SDS 92 is an incompatible 12-bit system built using monolithic integrated circuits.