In computing , a non-maskable interrupt ( NMI ) is a hardware interrupt that standard interrupt-masking techniques in the system cannot ignore. It typically occurs to signal attention for non-recoverable hardware errors . Some NMIs may be masked, but only by using proprietary methods specific to the particular NMI. With regard to SPARC , the non-maskable interrupt (NMI), despite having the highest priority among interrupts, can be prevented from occurring through the use of an interrupt mask.
50-441: An NMI is often used when response time is critical or when an interrupt should never be disabled during normal system operation. Such uses include reporting non-recoverable hardware errors, system debugging and profiling, and handling of special cases like system resets. Modern computer architectures typically use NMIs to handle non-recoverable errors which need immediate attention. Therefore, such interrupts should not be masked in
100-513: A Kempston joystick port, and later revisions contained a switch that effectively 'hid' the device from software. Early versions had a composite video out port but this feature was later removed. The Multiface Two was released for the Amstrad CPC range of computers and had similar features to the Multiface One, but added a button to reset the computer. Control of the visibility of the device
150-491: A real-time environment and fail if an operation is not completed in a specified amount of time. For example, computer-controlled anti-lock brakes must begin braking within a predictable and limited time period after the brake pedal is sensed or else failure of the brake will occur. Benchmarking takes all these factors into account by measuring the time a computer takes to run through a series of test programs. Although benchmarking shows strengths, it should not be how you choose
200-502: A 'thru-port', for £49.95 (equivalent to £177 in 2023), and one without, which cost £44.95 (equivalent to £152 in 2023). Both were later reduced to £29.95 (equivalent to £78 in 2023). The main feature of the Multiface 3 was its ability to save to +3 disk, a useful feature for +3 owners who wanted to avoid the long loading times of tapes. The Multiface ST and Multiface ST II were released for Atari's ST computers. They connected to
250-498: A Stretch designer, opened Chapter 2 of a book called Planning a Computer System: Project Stretch by stating, "Computer architecture, like other architecture, is the art of determining the needs of the user of a structure and then designing to meet those needs as effectively as possible within economic and technological constraints." Brooks went on to help develop the IBM System/360 line of computers, in which "architecture" became
300-587: A button to generate an NMI, such as Romantic Robot's Multiface , were a popular accessory for 1980s 8-bit and 16-bit home computers. These peripherals had a small amount of ROM and an NMI button. Pressing the button transferred control to the software in the peripheral's ROM, allowing the suspended program to be saved to disk (very useful for tape-based games with no disk support, but also for saving games in progress), screenshots to be saved or printed, or values in memory to be manipulated—a cheating technique to acquire extra lives, for example. Not all computers provide
350-415: A computer capable of running a virtual machine needs virtual memory hardware so that the memory of different virtual computers can be kept separated. Computer organization and features also affect power consumption and processor cost. Once an instruction set and microarchitecture have been designed, a practical machine must be developed. This design process is called the implementation . Implementation
400-490: A computer system. The case of instruction set architecture can be used to illustrate the balance of these competing factors. More complex instruction sets enable programmers to write more space efficient programs, since a single instruction can encode some higher-level abstraction (such as the x86 Loop instruction ). However, longer and more complex instructions take longer for the processor to decode and can be more costly to implement effectively. The increased complexity from
450-427: A computer. Often the measured machines split on different measures. For example, one system might handle scientific applications quickly, while another might render video games more smoothly. Furthermore, designers may target and add special features to their products, through hardware or software, that permit a specific benchmark to execute quickly but do not offer similar advantages to general tasks. Power efficiency
500-469: A detailed analysis of the computer's organization. For example, in an SD card , the designers might need to arrange the card so that the most data can be processed in the fastest possible way. Computer organization also helps plan the selection of a processor for a particular project. Multimedia projects may need very rapid data access, while virtual machines may need fast interrupts. Sometimes certain tasks need additional components as well. For example,
550-407: A higher clock rate may not necessarily have greater performance. As a result, manufacturers have moved away from clock speed as a measure of performance. Other factors influence speed, such as the mix of functional units , bus speeds, available memory, and the type and order of instructions in the programs. There are two main types of speed: latency and throughput . Latency is the time between
SECTION 10
#1732859196768600-407: A large instruction set also creates more room for unreliability when instructions interact in unexpected ways. The implementation involves integrated circuit design , packaging, power , and cooling . Optimization of the design requires familiarity with topics from compilers and operating systems to logic design and packaging. An instruction set architecture (ISA) is the interface between
650-711: A mechanism for triggering NMIs; however, many machines (typically rackmount servers) provide a physical button specifically for this purpose. Other machines may expose this functionality via an expansion card. Miles Gordon Technology 's DISCiPLE and +D products for the ZX Spectrum featured an NMI-producing "magic button". On the Nintendo Entertainment System , an NMI is generated during each vertical blanking interval . Because these NMIs (often referred to as "vblank interrupts") occur at frequent, regular intervals, code that manipulates game graphics and audio
700-412: A noun defining "what the user needs to know". The System/360 line was succeeded by several compatible lines of computers, including the current IBM Z line. Later, computer users came to use the term in many less explicit ways. The earliest computer architectures were designed on paper and then directly built into the final hardware form. Later, computer architecture prototypes were physically built in
750-505: A number of forms, including the Apple Macintosh 's "programmers' button" , and certain key combinations on Sun workstations. With the introduction of Windows 2000 , Microsoft allowed the use of an NMI to cause a system to either break into a debugger , or dump the contents of memory to disk and reboot. Debugging NMIs have also been used by devices that allow leisure users and gamers to manipulate running programs. Devices which added
800-408: A proposed instruction set. Modern emulators can measure size, cost, and speed to determine whether a particular ISA is meeting its goals. Computer organization helps optimize performance-based products. For example, software engineers need to know the processing power of processors . They may need to optimize software in order to gain the most performance for the lowest price. This can require quite
850-503: A single chip as possible. In the world of embedded computers , power efficiency has long been an important goal next to throughput and latency. Increases in clock frequency have grown more slowly over the past few years, compared to power reduction improvements. This has been driven by the end of Moore's Law and demand for longer battery life and reductions in size for mobile technology . This change in focus from higher clock rates to power consumption and miniaturization can be shown by
900-425: A special monitor program. From this program, a developer can inspect the machine's memory and examine the internal state of the program at the instant of its interruption. This also allows the debugging or diagnosing of computers which appear hung . In older architectures, NMIs were used for interrupts which were typically never disabled because of the required response time. They were hidden signals. Examples include
950-415: Is another important measurement in modern computers. Higher power efficiency can often be traded for lower speed or higher cost. The typical measurement when referring to power consumption in computer architecture is MIPS/W (millions of instructions per second per watt). Modern circuits have less power required per transistor as the number of transistors per chip grows. This is because each transistor that
1000-519: Is often executed inside of the NMI handler routine. Clearing the 7th bit of the PPU's $ 2000 register disables vblank interrupts, and setting it enables them. Computer architecture In computer science and computer engineering , computer architecture is a description of the structure of a computer system made from component parts. It can sometimes be a high-level description that ignores details of
1050-471: Is put in a new chip requires its own power supply and requires new pathways to be built to power it. However, the number of transistors per chip is starting to increase at a slower rate. Therefore, power efficiency is starting to become as important, if not more important than fitting more and more transistors into a single chip. Recent processor designs have shown this emphasis as they put more focus on power efficiency rather than cramming as many transistors into
SECTION 20
#17328591967681100-465: Is the amount of time that it takes for information from one node to travel to the source) and throughput. Sometimes other considerations, such as features, size, weight, reliability, and expandability are also factors. The most common scheme does an in-depth power analysis and figures out how to keep power consumption low while maintaining adequate performance. Modern computer performance is often described in instructions per cycle (IPC), which measures
1150-466: Is usually not considered architectural design, but rather hardware design engineering . Implementation can be further broken down into several steps: For CPUs , the entire implementation process is organized differently and is often referred to as CPU design . The exact form of a computer system depends on the constraints and goals. Computer architectures usually trade off standards, power versus performance , cost, memory capacity, latency (latency
1200-509: The Stretch , an IBM-developed supercomputer for Los Alamos National Laboratory (at the time known as Los Alamos Scientific Laboratory). To describe the level of detail for discussing the luxuriously embellished computer, he noted that his description of formats, instruction types, hardware parameters, and speed enhancements were at the level of "system architecture", a term that seemed more useful than "machine organization". Subsequently, Brooks,
1250-416: The ZX Spectrum 48K. It initially cost £39.95 (equivalent to £148 in 2023) and had the capability of saving data to cassette tape , ZX Microdrive , Opus Discovery (an external 3.5 inch disk drive ) or Technology Research Beta (an interface that allowed 5.25 inch and 3.5 inch drives to be connected). The device worked on 128K Spectrums, but only if they were put in 48K mode. It featured
1300-739: The floppy disk controller on the Amstrad PCW , the 8087 coprocessor on the x86 when used in the IBM PC or its compatibles (even though Intel recommended connecting it to a normal interrupt), and the Low Battery signal on the HP 95LX . In the original IBM PC , an NMI was triggered if a parity error was detected in system memory, or reported by an external device. In either case, the PC would display an error message and halt. Some later IBM-compatibles used an NMI to conceal
1350-521: The cartridge port with a wired connector attaching to the monitor port (to generate the interrupt signal when the button was pressed). Far less effective than the earlier Spectrum models and the same as the CPC model, they required the cartridge to be present in order to load saved games. Red, green and blue cartridges have been noted. Anti-Multiface was a public domain program for the Amstrad CPC which allowed
1400-503: The code is to understand), size of the code (how much code is required to do a specific action), cost of the computer to interpret the instructions (more complexity means more hardware needed to decode and execute the instructions), and speed of the computer (with more complex decoding hardware comes longer decode time). Memory organization defines how instructions interact with the memory, and how memory interacts with itself. During design emulation , emulators can run programs written in
1450-422: The computer's processor, effectively taking control of the computer. The Multiface would then page in its own ROM, temporarily replacing the computer's operating system with that within the Multiface. Multifaces were released for 8-bit and 16-bit microcomputers, such as the ZX Spectrum , Amstrad CPC & Atari ST . Different models had slightly different features. The Multiface One was released in 1986 for
1500-425: The computer's software and hardware and also can be viewed as the programmer's view of the machine. Computers do not understand high-level programming languages such as Java , C++ , or most programming languages used. A processor only understands instructions encoded in some numerical fashion, usually as binary numbers . Software tools, such as compilers , translate those high level languages into instructions that
1550-432: The dumps into memory, making the dumps useless to people without a Multiface. Software producers also reacted to the threat by using routines that would prevent execution of the product if it detected that a Multiface was present and by loading the software in multiple parts, thus requiring the presence of the original, copy-protected media. Pressing the red button on the Multiface raised the non-maskable interrupt line on
Non-maskable interrupt - Misplaced Pages Continue
1600-411: The early 1980s was typically loaded into RAM in one go, with copy protection measures concentrating the loading phase or just after it. The snapshot feature could be used after copy protection routines had been executed, to create a backup that was effectively unprotected against unauthorised distribution. Later models of the Multiface mitigated this by requiring the device to be present when re-loading
1650-448: The efficiency of the architecture at any clock frequency; a faster IPC rate means the computer is faster. Older computers had IPC counts as low as 0.1 while modern processors easily reach nearly 1. Superscalar processors may reach three to five IPC by executing several instructions per clock cycle. Counting machine-language instructions would be misleading because they can do varying amounts of work in different ISAs. The "instruction" in
1700-406: The final hardware form. The discipline of computer architecture has three main subcategories: There are other technologies in computer architecture. The following technologies are used in bigger companies like Intel, and were estimated in 2002 to count for 1% of all of computer architecture: Computer architecture is concerned with balancing the performance, efficiency, cost, and reliability of
1750-470: The form of a transistor–transistor logic (TTL) computer—such as the prototypes of the 6800 and the PA-RISC —tested, and tweaked, before committing to the final hardware form. As of the 1990s, new computer architectures are typically "built", tested, and tweaked—inside some other computer architecture in a computer architecture simulator ; or inside a FPGA as a soft microprocessor ; or both—before committing to
1800-411: The hardware differences from that of the original IBM PC. On such computers, an NMI would be generated when a program attempted to access incompatible hardware. A BIOS interrupt handler would then translate the program's request to match the hardware that was actually present. The SMM in the 386SL is a better way to do this. Some 8-bit home computers used the NMI line to permit a "warm start" if
1850-499: The implementation. At a more detailed level, the description may include the instruction set architecture design, microarchitecture design, logic design , and implementation . The first documented computer architecture was in the correspondence between Charles Babbage and Ada Lovelace , describing the analytical engine . While building the computer Z1 in 1936, Konrad Zuse described in two patent applications for his future projects that machine instructions could be stored in
1900-520: The instructions. The names can be recognized by a software development tool called an assembler . An assembler is a computer program that translates a human-readable form of the ISA into a computer-readable form. Disassemblers are also widely available, usually in debuggers and software programs to isolate and correct malfunctions in binary computer programs. ISAs vary in quality and completeness. A good ISA compromises between programmer convenience (how easy
1950-522: The normal operation of the system. These errors include non-recoverable internal system chipset errors, corruption in system memory such as parity and ECC errors, and data corruption detected on system and peripheral buses. On some systems, a computer user can trigger an NMI through hardware and software debugging interfaces and system reset buttons. Programmers typically use debugging NMIs to diagnose and fix faulty code. In such cases, an NMI can execute an interrupt handler that transfers control to
2000-482: The processor can understand. Besides instructions, the ISA defines items in the computer that are available to a program—e.g., data types , registers , addressing modes , and memory . Instructions locate these available items with register indexes (or names) and memory addressing modes. The ISA of a computer is usually described in a small instruction manual, which describes how the instructions are encoded. Also, it may define short (vaguely) mnemonic names for
2050-456: The restoring of saved memory dumps without the need for a Multiface to be present. It was limited to 128K machines and would not work on dumps bigger than 64K. The program was developed by Serge Querne but credited to "Merlin J. Bond of Magic Software". Competing devices included the Mirage Imager, Disk Wizard, and Action Replay . At the time, none of these could save as many games, or offered
Non-maskable interrupt - Misplaced Pages Continue
2100-555: The same price as the Multiface One. The 128 introduced the ability to save to the +D and DISCiPLE disk systems, but lost its joystick port (the Spectrum +2 already had built-in joystick ports). The device was not compatible with the later Spectrum +2A or the Spectrum +3. The Multiface 3, released in November 1987, was designed for the later Amstrad -made models of Spectrum that the 128 did not support. It existed in two versions; one with
2150-514: The same storage used for data, i.e., the stored-program concept. Two other early and important examples are: The term "architecture" in computer literature can be traced to the work of Lyle R. Johnson and Frederick P. Brooks, Jr. , members of the Machine Organization department in IBM's main research center in 1959. Johnson had the opportunity to write a proprietary research communication about
2200-571: The significant reductions in power consumption, as much as 50%, that were reported by Intel in their release of the Haswell microarchitecture ; where they dropped their power consumption benchmark from 30–40 watts down to 10–20 watts. Comparing this to the processing speed increase of 3 GHz to 4 GHz (2002 to 2006), it can be seen that the focus in research and development is shifting away from clock frequency and moving towards consuming less power and taking up less space. Multiface The Multiface
2250-537: The standard measurements is not a count of the ISA's machine-language instructions, but a unit of measurement, usually based on the speed of the VAX computer architecture. Many people used to measure a computer's speed by the clock rate (usually in MHz or GHz). This refers to the cycles per second of the main clock of the CPU . However, this metric is somewhat misleading, as a machine with
2300-507: The start of a process and its completion. Throughput is the amount of work done per unit time. Interrupt latency is the guaranteed maximum response time of the system to an electronic event (like when the disk drive finishes moving some data). Performance is affected by a very wide range of design choices — for example, pipelining a processor usually makes latency worse, but makes throughput better. Computers that control machinery usually need low interrupt latencies. These computers operate in
2350-610: The system had locked up. Typically, this would restore the control registers to known good values stored in ROM , without destroying whatever data that the user might currently have loaded. On the Commodore 8-bit machines, the RESTORE key was hooked up directly or indirectly to the NMI line on the 6502 -series CPU, but the reset would take place only if the NMI handler routine in ROM detected that RUN/STOP
2400-425: Was a hardware peripheral released by Romantic Robot for several 1980s home computers . The primary function of the device was to dump the computer's memory to external storage . Pressing a red button on the Multiface activated it. As most games of the era did not have a save game feature, the Multiface allowed players to save their position by saving a loadable snapshot of the game. Home computer software of
2450-549: Was also being held down when RESTORE was struck (this combination being the Commodore version of a three finger salute ). Commodore also connected the MOS Technology 6526 CIA #2 in the C64 and C128 to the processor's NMI line, which was part of the means by which software emulation of the 6551 ACIA was accomplished. Atari 's 8-bit line used a SYSTEM RESET button for this same purpose. Debugging NMIs have appeared in
2500-472: Was at a software level rather than the hardware switch found on the Multiface One. The Multiface 128 was released in April 1987 for the 128K version of the Spectrum, including the original +2 model. It worked in 128K or 48K mode and it existed in two versions; initially without a 'thru-port' and later, with one, both of which originally cost the same £44.95, (equivalent to £160 in 2023) but were later reduced to
#767232