Lo que dices de un dispositivo por IRQ no es, para nada, cierto. De ser así no podríamos tener tantos dispositivos instalados en el ordenador.
Vuelvo a repetir que sólo se disponen de 16 IRQ y en cambio, muchos equipos montan más de este número de dispositivos. Léase tarjetas de expansión, puertos de comunicaciones, controladores de disco duro...
Lo que se hace para saber qué dispositivo intenta comunicarse con la CPU cuando una IRQ pertenece a varios dispositivos es el sistema de pooling. Es decir, se pregunta a todos los dispositivos que pertenecen a esa IRQ si ha sido él el que intenta comunicarse. Por eso se dice que el sistema es más lento cuando se tienen IRQ utilizadas por varios dispositivos: un dispositivo no es identificado por su IRQ directamente.
Pero, ciertamente, no hay otra forma dado que el número de IRQ es muy limitado. Este hecho es para mantener la compatibilidad hacia atrás con PC antiguos. Y este es uno de los puntos más importantes que ha de cumplir un PC. Y, quizá, también, su mayor impedimento.
Un saludo.
kpitan.com