Re: Universal grammar



Hans Aberg <haberg@xxxxxxxxxx> wrote in message
news:haberg-1111061400590001@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
In article <1n55kt75qfd1s$.184x0ip4w30jx.dlg@xxxxxxxxxx>, Joachim Pense
<snob@xxxxxxxxxxxxxx> wrote:

Paul> Which is just one of the hardware interrupts that can be
Paul> sent to a CPU.

That's a hardware _signal_, but usually not considered an interrupt:

1) RESET cannot be caught or masked.
2) INTERRUPT is caught, handled and then the system resumes from it.
RESET abruptly brings to the whole system to a "start" state and
never resumes from where it left off.
3) INTERRUPT is used by peripherals to catch the attention of the CPU,
asking CPU to do something for them quickly.
RESET is usually raised by operators (often human) to bring the
system to a "start" state.

This is a software engineers vocabulary.
The distiction between interrupts made in software-engineer-speak
is artificial. No such distinction actually exists between h/w reset
and other h/w interrupts.

Paul> Hans is absolutely correct. It's an interrupt, it's one of
Paul> the unmaskable hardware interrupts. Without it, the CPU
Paul> would start executing instructions from an unpredictable
Paul> address.

Reset or interrupt, it's for sure something that interrupts.

I think that in the low level technical language, that is, the one used
when dealing with the CPU as a piece of hardware, all those signals are
called interrupts. A software implementer computer manufacturer, working
on a higher level, may use a different language.

Technically speaking, there is no difference what-so-ever
between how a CPU reacts to signals on various interrupt lines.
Reset interrupt, timer interrupt and various other hardware
device interrupts cause the CPU interrupt whatever it is doing
and jump at a predetermined hardwired address. At that level
the main (and often the only) difference between various
interrupts is the actual code stored at those addresses
(they usually happen to be further jump instructions to various
blocks of codes implementing the various h/w servers).
If you manage to change these arrays of jump instruction,
aka interrupt vectors, you modify the function of the interrupts
lines. So on many old as well as new CPUs you could swap
functionality of reset line and say disk channel interrupt.
(Not that one would normally want to do that).

In fact we can view the whole machine's memory as the
reset interrupt's interrupt server.

pjk


.



Relevant Pages

  • Re: [PATCH] I/O APIC: Timer through 8259A revamp
    ... the fallback path was meant to be used with hardware suffering from ... interrupt genuinely arrives through multiple I/O APIC inputs, ... the i386SL was *the* power-saving Intel CPU when the i82489DX was ... Trouble on Linux is that RTC doesn't support any of the traditional HZ ...
    (Linux-Kernel)
  • Re: 2.6.11 timeval_to_jiffies() wrong for ms resolution timers
    ... >> If you really want millisecond accuracy, ... You can make hardware timers with picosecond resolution. ... A CPU takes a variable amount of time to branch when ... a hardware interrupt occurs. ...
    (Linux-Kernel)
  • Re: [PATCH v3] enable x2APIC without interrupt remapping under KVM
    ... decide to deploy to work with real hardware. ... I have been seriously contemplating causing a cpu hot-unplug request ... obviously we need to disassociate any irqs from such a cpu. ... interrupt handler without without risking dropping an interrupt. ...
    (Linux-Kernel)
  • Re: Simple question about CPUs and processes
    ... > is the hardware itself choosing which CPU will execute this ... > But I think it is the OS kernel (FreeBSD in this case) and the SMP ... This is basically the case on hardware supported by FreeBSD: ... to CPUs to attempt to help manage interrupt load. ...
    (freebsd-hackers)
  • Re: Bill Gates slow burns over control-alt-delete -- funny video
    ... only generates the standard "INT 1" interrupt. ... section of the boot sequence after the RAM and hardware detection tests ... than a minimum time, then the CPU is reset ... the system can't bypass the NMI ...
    (comp.os.linux.misc)