next up previous
Next: Interrupt overhead Up: Analysis Previous: Off-loading to a dedicated

Interrupt service time

 

In Section 7.3, we derived that an interrupt takes as much time as it takes to send a 270 byte packet. Knowing that data is sent at 8.3 Mbytes/s, we can derive that it takes 32.5  s to service an interrupt.

This interrupt service time can be checked against the CPU load for long messages. For long messages, the processor load depends only minimally on the task switching time. In this case, the CPU load is caused by interrupts and memory bandwidth usage.

Consider the Comms1 communication of long messages in 4096 byte packets. Knowing that an interrupt takes 32.5  s to handle, we can conclude that on an average, communicating a single byte requires 32.5 / 4096 = 7.93 ns CPU time. It requires 65800  s CPU time every second to sustain the full data rate of 8.3 Mbytes/s. The CPU load due to interrupts for long messages and packet size 4096 is therefore 6.6 %. This 6.6 % is close to the 7.1 % observed. The difference can be explained by the memory bandwidth usage, and cache disturbance due to the interrupts.



Marcel Boosten
Wed Mar 11 14:25:07 MET 1998