On some systems, especially those that are VME-based, the interrupt response sequence performed by the hardware may look something like this: Device: Interrupt request -->> CPU Acknowledgment <<-- CPU Vector number -->> CPU As a part of the hardware signal sequence, the device will supply a vector number to the CPU. This vector is an ID number associated with the device or card and helps the CPU get to the appropriate service routine quickly. Assuming that each device has a unique ID, the vector number is used as an index into an array of function pointers, and the interrupt recognition hardware in the CPU will actually make a call directly through the vector slot to the appropriate function. This way there's no overhead involved in identifying the device associated with the interrupt request and in locating the correct function to call. It's all done in hardware. This does lead to interesting problems if more than one device attempts to use the same vector number. Hopefully, this is caught by the system during initialization. The system administrator must be very careful to make sure that conflicts do not arise when adding new hardware. |