OpenPIC and MPIC

In order to compete with Intel's Advanced Programmable Interrupt Controller (APIC), which had enabled the first Intel 486-based multiprocessor systems, in early 1995 AMD and Cyrix proposed as somewhat similar-in-purpose OpenPIC architecture supporting up to 32 processors.[1] The OpenPIC architecture had at least declarative support from IBM and Compaq around 1995.[2] No x86 motherboard was released with OpenPIC however.[3] After the OpenPIC's failure in the x86 market, AMD licensed the Intel APIC Architecture for its AMD Athlon and later processors.

IBM however developed their Multiprocessor Interrupt Controller (MPIC) based on the OpenPIC register specification.[4] In the reference IBM design, the processors share the MPIC over a DCR bus, with their access to the bus controlled by a DCR Arbiter. MPIC supports up to four processors and up to 128 interrupt sources.[4] Through various implementations, the MPIC was included in PowerPC reference designs and some retail computers.

IBM used a MPIC based on OpenPIC 1.0 in their RS/6000 F50 and one based on OpenPIC 1.2 in their RS/6000 S70. Both of these systems also used a dual 8259 on their PCI-ISA bridges.[5] An IBM MPIC was also used in the RS/6000 7046 Model B50.[6]

The Apple Hydra Mac I/O (MIO) chip (from the 1990s classic Mac OS era) implemented a MPIC alongside a SCSI controller, ADB controller, GeoPort controller, and timers.[7] The Apple implementation of "Open PIC" (as the Apple documentation of this era spells it) in their first MIO chip for the Common Hardware Reference Platform was based on version 1.2 of the register specification and supported up to two processors and up to 20 interrupt sources.[8] A MPIC was also incorporated in the newer K2 I/O controller used in the Power Mac G5s.[9][10]

Freescale also uses a MPIC ("compatible with the Open PIC") on all its PowerQUICC and QorIQ processors.[11] The Linux Kernel-based Virtual Machine (KVM) supports a virtualized MPIC with up to 256 interrupts, based on the Freescale variants.[12]

  1. ^ "OpenPIC Definition from PC Magazine Encyclopedia". Pcmag.com. 1994-12-01. Retrieved 2011-11-03.
  2. ^ Brooke Crothers (20 March 1995). AMD, Cyrix offer up alternative SMP spec. InfoWorld. p. 8. ISSN 0199-6649.
  3. ^ André D. Balsa, Note attached to "Linux Benchmarking: Part III -- Interpreting Benchmark Results" appearing in Issue 24 of Linux Gazette, January 1998
  4. ^ a b IBM Multiprocessor Interrupt Controller. Data Book Archived 2014-02-23 at the Wayback Machine
  5. ^ Arca Systems TTAP Evaluation Facility, "The IBM Corporation RS/6000 Distributed System Running AIX Version 4.3.1. TCSEC Evaluated C2 Security", p. 29
  6. ^ RS/6000 7046 Model B50 Handbook, November 1999, IBM document G24-7046-00, p. 107
  7. ^ Yellowknife Reference Platform Hardware Design Manual, p. 11
  8. ^ Macintosh Technology in the Common Hardware Reference Platform, section "2.4.7 Open PIC Interrupt Controller", p. 11, ISBN 155860393X
  9. ^ Take a Look Inside the G5-Based Dual-Processor Power Mac
  10. ^ Power Mac G5 Developer Note (Legacy), p. 26
  11. ^ Freescale MPIC Interrupt Controller Node
  12. ^ "linux/Documentation/virtual/kvm/devices/mpic.txt at master". Github.com. 2013-04-30. Retrieved 2014-02-12.