If the sound card drops out or cracks, USB devices do not work or only work sporadically or the performance drops, then interrupt conflicts are usually the cause. This is something that Windows users have long since ignored out of sheer convenience, although the problem is as old as PCs and has only shifted under the colorful operating system interface in the meantime. As long as everything works as planned, you won’t notice anything, but if something goes wrong, you will. Then good advice is expensive and one searches frantically for solutions.
My thanks in this context go to our community member FcryCola, who made me aware of his solution and the matching posts on Reddit and also did some proper preparatory work. His sound card now does it again, I have one more article in my practice collection and you can of course benefit from both. The solution is actually closer than you think and yet so far away. However, this is also due to the fact that Windows pretends to be able to solve everything elegantly on its own. Only sometimes you have to do it yourself. The necessary tools of the trade and basic knowledge are available free of charge today.
Not all interrupts are created equal
Don’t worry, I’m not going to bombard you with boring theory, but you should remember a few small, broken-down pieces of the puzzle. Therefore we first ask ourselves what such an interrupt (IRQ) is and why it is needed. Roughly speaking, such an interrupt is a short-term interruption of the normal program execution to process a short and time-critical operation (interrupt request). The whole thing usually works asynchronously and, in the worst case, can also disrupt the entire process in the long term, i.e. noticeably. If a device wants to be served, it can trigger such an interrupt request at any time. But it’s just like in real life: When everyone is chattering away, the winner is usually the one who shouts first or the loudest, while others simply get lost in the shouting or have to get in line. So order must be, but how?
Shared interrupts are now nothing else than the just mentioned shouting. In the worst case, this results in real dropouts, reduced stability or at least high interrupt latency times, which can have a very negative effect on system performance. The reason for this is the limited number of physical interrupt lines on a computer, where many devices have to share a common IRQ line. It would be safe if each device had its own interrupt (as in the past) and it was always clear from which device they originated.
One solution to all these problems is a new interrupt mechanism. devices for ports and buses prior to PCI 2.2 generate line-based interrupts (LBI). A device creates the interrupt by sending an electrical signal to a special pin known as the interrupt line. All Windows versions before Windows Vista support only line-based interrupts. As of PCI 2.2, however, PCI devices can (and should!) also generate message-signaled interrupts. These are the so-called Message-Signaled Interrupts (MSI). A device generates a message-signaled interrupt by writing a data value to a specific address. Current Windows versions support LBI and MSI equally, which of course can lead to problems.
Since with the MSI, communication is based only on a memory value and the content is delivered with the interrupt, the need for IRQ lines is eliminated (so that the total system limit for MSIs is equal to the number of interrupt vectors, not IRQ lines), as is the need for a driver ISR to poll the device for data related to the interrupt, which reduces latency. However, there were again bottle necks due to the high information abundance, so that MSI-X was then introduced with PCIe 3.0. This provides support for 32-bit messages (instead of 16-bit), a maximum of 2048 different messages (instead of just 32) and, more importantly, the ability to use a different address for each of the MSI payloads (which can be determined dynamically), which improves interrupt delivery.
But enough of the theory, that was surely already much too much for most. But we note please once that LBI and MSI compete with each other and do not belong mixed on a common line (PCI bus). These are truisms, but who checks? And this is exactly where our user FcryCola comes into play again, who bought the EVGA nuAudio sound card after my review and suddenly faced a seemingly unsolvable problem, because the increased graphics card load led to nasty sound dropouts.
MSI tool
The software needed to display the interrupt modes I once hosted on our server just to be on the safe side, because with file hosts you always never know how long such links will really work then. The small program contained in the ZIP file does not require any extra installation, but must be explicitly run as administrator. But you probably already know that with the right click and “Run as administrator” from the popup menu.
Latency Monitor
I have linked this download to the manufacturer’s page , where you can also find further information.
154 Antworten
Kommentar
Lade neue Kommentare
Urgestein
Veteran
Veteran
Veteran
Mitglied
Veteran
Urgestein
1
Mitglied
Veteran
Veteran
Veteran
Mitglied
Veteran
Urgestein
Urgestein
Veteran
Veteran
Alle Kommentare lesen unter igor´sLAB Community →