Halt and Catch Fire
Encyclopedia
Halt and Catch Fire, known by the mnemonic
Mnemonic
A mnemonic , or mnemonic device, is any learning technique that aids memory. To improve long term memory, mnemonic systems are used to make memorization easier. Commonly encountered mnemonics are often verbal, such as a very short poem or a special word used to help a person remember something,...

 HCF, refers to several computer machine code
Machine code
Machine code or machine language is a system of impartible instructions executed directly by a computer's central processing unit. Each instruction performs a very specific task, typically either an operation on a unit of data Machine code or machine language is a system of impartible instructions...

 instructions that cause the CPU to cease meaningful operation. The expression "catch fire" is intended as a joke; the CPU does not usually catch fire.

In early CPUs

The HCF instruction was originally a fictitious instruction, claimed to be under development at IBM
IBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...

 for use in their System/360 computers, along with many other amusing instructions such as "Execute Operator".

One apocryphal story about the HCF instruction goes back to the late 1960s, when computers used magnetic core memory
Magnetic core memory
Magnetic-core memory was the predominant form of random-access computer memory for 20 years . It uses tiny magnetic toroids , the cores, through which wires are threaded to write and read information. Each core represents one bit of information...

. The story goes that in order to speed up the core memory on their next model the engineers increased the read/write currents in the very fine wires that were threaded through the cores. This worked fine when the computer was executing normal programs, since memory accesses were spread throughout memory. However, the HALT instruction was implemented as a "Jump
Branch (computer science)
A branch is sequence of code in a computer program which is conditionally executed depending on whether the flow of control is altered or not . The term can be used when referring to programs in high level languages as well as program written in machine code or assembly language...

 to self". This meant that the same core memory location was repeatedly accessed, and the very fine wires became so hot that they started to smoke - hence the instruction was labeled "Halt and Catch Fire".

In modern CPUs

CPU designers sometimes incorporate one or more undocumented machine code instructions, which exist for testing purposes. These instructions are not intended to be executed during real-world operation of the CPU. When these instructions are actually executed during a program, they have unusual side-effects.

The old "Halt and Catch Fire" instruction and HCF mnemonic are sometimes appropriated by users who discovered these instructions, as a humorous way of expressing that the unintended execution of such an instruction causes the system to fail to perform its normal functions.

Motorola 6800

The Motorola 6800
Motorola 6800
The 6800 was an 8-bit microprocessor designed and first manufactured by Motorola in 1974. The MC6800 microprocessor was part of the M6800 Microcomputer System that also included serial and parallel interface ICs, RAM, ROM and other support chips...

 microprocessor was the first for which an HCF opcode
Opcode
In computer science engineering, an opcode is the portion of a machine language instruction that specifies the operation to be performed. Their specification and format are laid out in the instruction set architecture of the processor in question...

 became widely known. The 6800 HCF opcode is 0xDD. The opcode came from an article written by Gerry Wheeler (1952–2006) in the December 1977 issue of BYTE magazine
Byte (magazine)
BYTE magazine was a microcomputer magazine, influential in the late 1970s and throughout the 1980s because of its wide-ranging editorial coverage...

 on undocumented opcodes.

The opcode makes the processor enter a mode
CPU modes
CPU modes are operating modes for the central processing unit of some computer architectures that place restrictions on the type and scope of operations that can be performed by certain processes being run by the CPU...

 in which it continuously performs memory
Random-access memory
Random access memory is a form of computer data storage. Today, it takes the form of integrated circuits that allow stored data to be accessed in any order with a worst case performance of constant time. Strictly speaking, modern types of DRAM are therefore not random access, as data is read in...

 read cycles from successive address
Memory address
A digital computer's memory, more specifically main memory, consists of many memory locations, each having a memory address, a number, analogous to a street address, at which computer programs store and retrieve, machine code or data. Most application programs do not directly read and write to...

es, with no intervening instruction fetches. The address bus
Address bus
An address bus is a computer bus that is used to specify a physical address. When a processor or DMA-enabled device needs to read or write to a memory location, it specifies that memory location on the address bus...

 effectively becomes a counter
Counter
In digital logic and computing, a counter is a device which stores the number of times a particular event or process has occurred, often in relationship to a clock signal.- Electronic counters :...

, allowing the operation of all address lines to be quickly verified. Once the processor has entered this mode, it is not responsive to interrupt
Interrupt
In computing, an interrupt is an asynchronous signal indicating the need for attention or a synchronous event in software indicating the need for a change in execution....

s, so normal operation can only be restored by a reset. It has been claimed that in some configurations, a 6800 CPU could actually cause the address lines to literally burn when placed in this mode. However, it is likely that the term "catch fire" is intended more as a metaphor for the unresponsive behavior of the CPU when placed in this state; there are no known examples of erratic behavior.

The HCF opcode is believed to be the first built-in self-test feature on a Motorola microprocessor.

The opcode is also present on the 6809
Motorola 6809
The Motorola 6809 is an 8-bit microprocessor CPU from Motorola, designed by Terry Ritter and Joel Boney and introduced 1978...

.

See also

  • Cyrix coma bug
    Cyrix coma bug
    The Cyrix coma bug is a design flaw in Cyrix 6x86, 6x86L, and early 6x86MX processors that allows a non-privileged program to completely lock the computer.-Discovery:...

  • Pentium F00F bug
  • Killer poke
    Killer poke
    In computer jargon, a killer poke is a method of inducing physical hardware damage on a machine and/or its peripherals by the insertion of invalid values, via e.g. BASICs POKE command, into a memory-mapped control register...

  • Lp0 on fire
    Lp0 on fire
    lp0 on fire is a semi-obsolete error message still generated on some Unix and Unix-like operating systems in response to certain types of printer errors...

  • Write-only memory
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK