Advanced Programmable Interrupt Controller

Advanced Programmable Interrupt Controller

In computing, an Advanced Programmable Interrupt Controller (APIC) is a more complex Programmable Interrupt Controller (PIC) than Intel's original types such as the 8259A. APIC devices permit more complex priority models, and Advanced IRQ (Interrupt Request) management.

One of the best known APIC architectures, the Intel APIC Architecture, has largely replaced the original 8259A PIC in newer x86 computers, starting with SMP systems when it replaced proprietary SMP solutions and on pretty much all PC compatibles since around late 2000 when Microsoft began encouraging PC vendors to enable it on uniprocessor systems and even made it a requirement of PC 2001 to enable it on desktop systems.[1] AMD and Cyrix once used the similar OpenPIC architecture; this can support up to 32 processors.[2] After its failure however, AMD decided to license the Intel APIC Architecture for its AMD Athlon and later processors.


Contents

Controlling Device Requests

We know that I/O device interface generates an interrupt request when SIN or SOUT bit in its status register is =1.Interrupt requests are generated only by the I/O devices that some program is using. Idle devices must not generate interrupt requests even if they are participating in I/O transfer operations. We need a way to enable or disable interrupts in order to control whether the device is generating an interrupt request.For this control we use Interrupt Enable bit in device's interface circuit.

Interrupt Enable (IE)

IE bit can be set or reset by processor.It can be a part of control or status register in which processor can write.Case1:When IE=1,interface circuit generates an interrupt request and sets its IRQ bit whenever its SIN or SOUT bit is set.Case2:When IE=0,interface circuit does not generate an interrupt request,regardless of the state of SIN or SOUT. Interrupt enable bits IE(SIN) and IE(SOUT) are often used.IE(SIN) enables interrupts when SIN=1.IE(SOUT) enables interrupts when SOUT=1.

Summary

Interrupt requests can be controlled using two ways.I.At device end-An Interrupt Enable bit in a control register determines whether device is allowed to generate an interrupt request.II.At processor end-A priority structure and an interrupt mask in the PS determine whether a given interrupt request is accepted.

References

Computer Organisation by Carl Hamacher,Zvonko Vranesic & Safwat Zaky Fifth Edition

See also