Re: Potential source of interrupt aliasing

From: Peter Jeremy <PeterJeremy_at_optushome.com.au>
Date: Mon, 11 Apr 2005 18:30:06 +1000
On Sun, 2005-Apr-10 19:31:24 -0700, Matthew Dillon wrote:
>    The only way for an operating system to figure this stuff out on its
>    own is to understand the umpteen different bridge chips out there,
>    test physical interrupt sources (which is not always possible) to see
>    how they are actually routed, and ignore the BIOS completely.

ISTR the old ISA probes for things like sio would raise an interrupt
in the 16[45]50 and see what IRQ appeared.  Given a plethora of
bridges, this becomes more difficult if you can't trust that the BIOS
has done anything right (like even routing the interrupt from source
to an upstream interrupt controller).

Presumably, these motherboards run Winbloze.  And I understand that
Winbloze uses interrupts, so presumably interrupt routing stuffups
will break Winbloze just as badly as *BSD or Linux.  What is Winbloze
doing differently to work around broken BIOSes?

>    Intel really screwed up big time.  Motorola had a much, much, MUCH
>    better mechanism where the actual devices generated the actual vector
>    number on the interrupt bus and the only thing you might have hardwired
>    would have been the IPL.  But Intel doesn't work that way.  Their stuff
>    is just totally screwed when it comes to handling interrupts.  It's
>    completely 100% guarenteed pungent crapola to anyone who has ever
>    built hardware with a *REAL* interrupt subsystem.

I'm as big a fan of Intel as you are but I don't think the problem
here is Intel.  I do agree that interrupt handling in the PC is
stuffed - designing active-high interrupts using hardware that would
automatically support wired-or of active-low interrupts suggests that
someone in IBM had either done their tie up far too tight or had been
over-indulging in recreational substances.

Both the 8080 and 8085 supported vectored interrupts to a limited
extent.  The 6800 and 6809 don't support vectored interrupts.  The
Z-80, 68000 and 8086 all fully support vectored interrupts.  But the
Z-80 and 68000 both need the designer to (exclusively) use the Z-80 or
68000 peripheral chips in order to take advantage of their vectored
interrupts.  Using a separate interrupt controller means that you can
use bog-standard peripherals that just have INTR outputs.

It's a pity that the modern PC is hamstrung by design decisions made
over 25 years ago.

-- 
Peter Jeremy
Received on Mon Apr 11 2005 - 06:30:14 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:31 UTC