Knowledge (XXG)

Non-maskable interrupt

Source đź“ť

255:
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
50:
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.
85:
that transfers control to 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
292:. Because these NMIs (often referred to as "vblank interrupts") occur at frequent, regular intervals, code that manipulates game graphics and audio is often executed inside of the NMI handler routine. Clearing the 7th bit of the PPU's 58:
typically use NMIs to handle non-recoverable errors which need immediate attention. Therefore, such interrupts should not be masked in the normal operation of the system. These errors include non-recoverable internal system
247:
Debugging NMIs have also been used by devices that allow leisure users and gamers to manipulate running programs. Devices which added a button to generate an NMI, such as Romantic Robot's
128:, 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 132:
used an NMI to conceal the hardware differences from that of a standard PC. On such computers, an NMI would be generated when a program attempted to access incompatible hardware. A
98:
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 the
47:, the non-maskable interrupt (NMI), despite having the highest priority among interrupts, can be prevented from occurring through the use of an interrupt mask. 154:
used the NMI line to permit a "warm start" if the system had locked up. Typically, this would restore the control registers to known good values stored in
308: 117:
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
445: 263:
servers) provide a physical button specifically for this purpose. Other machines may expose this functionality via an expansion card.
335: 376: 355: 285: 449: 289: 397:"How to generate a complete crash dump file or a kernel crash dump file by using an NMI on a Windows-based system" 314: 43:. Some NMIs may be masked, but only by using proprietary methods specific to the particular NMI. With regard to 81:
Programmers typically use debugging NMIs to diagnose and fix faulty code. In such cases, an NMI can execute an
251:, were a popular accessory for 1980s 8-bit and 16-bit home computers. These peripherals had a small amount of 266: 187: 179: 159: 140: 125: 68: 55: 498: 225: 206: 167: 470: 39:
in the system cannot ignore. It typically occurs to signal attention for non-recoverable hardware
503: 453: 296: 194: 183: 170:-series CPU, but the reset would take place only if the NMI handler routine in ROM detected that 139:
would then translate the program's request to match the hardware that was actually present. The
382: 330: 325: 136: 129: 82: 421: 259:
Not all computers provide a mechanism for triggering NMIs; however, many machines (typically
252: 229: 205:
to the processor's NMI line, which was part of the means by which software emulation of the
155: 87: 221: 191: 492: 202: 158:, without destroying whatever data that the user might currently have loaded. On the 151: 256:
memory to be manipulated—a cheating technique to acquire extra lives, for example.
233: 198: 74:
On some systems, a computer user can trigger an NMI through hardware and software
278: 110: 103: 99: 107: 64: 400: 320: 260: 248: 237: 75: 36: 32: 20: 396: 270: 241: 118: 60: 71:
errors, and data corruption detected on system and peripheral buses.
240:
allowed the use of an NMI to cause a system to either break into a
274: 210: 144: 44: 40: 220:
Debugging NMIs have appeared in a number of forms, including the
166:
key was hooked up directly or indirectly to the NMI line on the
133: 114: 378:
Intel® 64 and IA-32 Architectures Software Developer's Manual
299:
disables vblank interrupts, and setting it enables them.
244:, or dump the contents of memory to disk and reboot. 8: 63:errors, corruption in system memory such as 309:Advanced Programmable Interrupt Controller 281:featured an NMI-producing "magic button". 375:"8.7.2: MS-DOS* Compatibility Sub-mode". 16:Hardware interrupt that cannot be ignored 347: 232:workstations. With the introduction of 178:was struck (this combination being the 78:interfaces and system reset buttons. 7: 288:, an NMI is generated during each 228:, and certain key combinations on 14: 446:"Dump Switch Support for Windows" 336:Programmable Interrupt Controller 471:"CGA Mode CRTC initialization" 217:button for this same purpose. 174:was also being held down when 1: 286:Nintendo Entertainment System 475:Amstrad PPC Technical Manual 452:. 2001-12-04. Archived from 147:is a better way to do this. 37:interrupt-masking techniques 450:Microsoft Developer Network 385:. June 2013. pp. 8–31. 520: 290:vertical blanking interval 315:Inter-processor interrupt 267:Miles Gordon Technology 422:"PCI Dump Switch Card" 56:computer architectures 25:non-maskable interrupt 226:"programmers' button" 213:'s 8-bit line used a 162:8-bit machines, the 209:was accomplished. 190:also connected the 184:three finger salute 424:. Connect Tech Inc 356:"Interrupt Levels" 102:controller on the 383:Intel Corporation 331:Interrupt latency 326:Interrupt handler 277:products for the 137:interrupt handler 83:interrupt handler 511: 485: 483: 482: 464: 462: 461: 433: 432: 430: 429: 418: 412: 411: 409: 408: 393: 387: 386: 372: 366: 365: 363: 362: 352: 295: 216: 177: 173: 165: 124:In the original 31:) is a hardware 519: 518: 514: 513: 512: 510: 509: 508: 489: 488: 480: 478: 469: 459: 457: 444: 441: 436: 427: 425: 420: 419: 415: 406: 404: 395: 394: 390: 381:. Vol. 1. 374: 373: 369: 360: 358: 354: 353: 349: 345: 305: 293: 222:Apple Macintosh 214: 175: 171: 163: 96: 17: 12: 11: 5: 517: 515: 507: 506: 501: 491: 490: 487: 486: 466: 465: 440: 439:External links 437: 435: 434: 413: 388: 367: 346: 344: 341: 340: 339: 333: 328: 323: 318: 312: 304: 301: 197:CIA #2 in the 192:MOS Technology 152:home computers 95: 92: 35:that standard 15: 13: 10: 9: 6: 4: 3: 2: 516: 505: 502: 500: 497: 496: 494: 477:. seasip.info 476: 472: 468: 467: 456:on 2012-10-26 455: 451: 447: 443: 442: 438: 423: 417: 414: 402: 398: 392: 389: 384: 380: 379: 371: 368: 357: 351: 348: 342: 337: 334: 332: 329: 327: 324: 322: 319: 316: 313: 310: 307: 306: 302: 300: 298: 291: 287: 282: 280: 276: 272: 268: 264: 262: 257: 254: 250: 245: 243: 239: 235: 231: 227: 223: 218: 212: 208: 204: 200: 196: 193: 189: 185: 182:version of a 181: 169: 161: 157: 153: 148: 146: 142: 138: 135: 131: 127: 122: 120: 116: 112: 109: 105: 101: 93: 91: 89: 84: 79: 77: 72: 70: 66: 62: 57: 52: 48: 46: 42: 38: 34: 30: 26: 22: 479:. Retrieved 474: 458:. Retrieved 454:the original 426:. Retrieved 416: 405:. Retrieved 403:. 2011-06-08 391: 377: 370: 359:. Retrieved 350: 283: 265: 258: 246: 234:Windows 2000 219: 215:SYSTEM RESET 149: 123: 97: 80: 73: 53: 49: 28: 24: 18: 279:ZX Spectrum 150:Some 8-bit 111:coprocessor 104:Amstrad PCW 100:floppy disk 499:Interrupts 493:Categories 481:2013-08-31 460:2013-08-31 428:2013-08-31 407:2013-08-31 361:2023-11-30 504:Debugging 401:Microsoft 321:Interrupt 261:rackmount 249:Multiface 238:Microsoft 207:6551 ACIA 188:Commodore 180:Commodore 160:Commodore 130:PC clones 76:debugging 33:interrupt 21:computing 303:See also 297:register 271:DISCiPLE 242:debugger 172:RUN/STOP 284:On the 176:RESTORE 164:RESTORE 143:in the 119:HP 95LX 113:on the 94:History 61:chipset 54:Modern 311:(APIC) 294:$ 2000 126:IBM PC 106:, the 65:parity 41:errors 343:Notes 338:(PIC) 317:(IPI) 211:Atari 145:386SL 45:SPARC 273:and 203:C128 201:and 195:6526 186:). 168:6502 134:BIOS 108:8087 88:hung 67:and 23:, a 269:'s 253:ROM 230:Sun 224:'s 199:C64 156:ROM 141:SMM 115:x86 69:ECC 29:NMI 19:In 495:: 473:. 448:. 399:. 275:+D 236:, 121:. 90:. 484:. 463:. 431:. 410:. 364:. 27:(

Index

computing
interrupt
interrupt-masking techniques
errors
SPARC
computer architectures
chipset
parity
ECC
debugging
interrupt handler
hung
floppy disk
Amstrad PCW
8087
coprocessor
x86
HP 95LX
IBM PC
PC clones
BIOS
interrupt handler
SMM
386SL
home computers
ROM
Commodore
6502
Commodore
three finger salute

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑