be a power-of-two multiple of a millisecond due a choice of algorithms within Rialto/NT [Jones & Regehr 99].
The measurements presented in this section use a test scenario of a dial-up connection with a normal priority spinning competitor thread. We use the term elapsed time to measure the time spent by the signal processing routines. The elapsed time incorporates the time spent in other contexts that preempted the signal processing routines.
3.1 Soft Modem Interrupt Rate
Figure 1 – Rate of soft modem interrupts (INT)
Figure 1 shows the interrupt rate for the INT version. Before dialing, the interrupts occur very frequently (every 2.5ms) for about 2 seconds. The modem is on-hook performing ring detection. For the next 10 seconds, the interrupt rate is 12.5ms while the modem is dialing and waiting for the other end to start the connection. Whenever there is a change in DMA frequency or in the size of the samples buffers, the modem requests an interrupt frequency change. This request causes a short delay in the interrupt rate that corresponds to the six scattered points in the graph. Once the V.90 protocol has been established, the interrupt occurs every 13.125ms or 11.25ms, with an average period of 12.5ms. These rates correspond to the PC 99 [Intel & Microsoft 98] recommended interrupt rates of 3 to 16 milliseconds. This interrupt rate behavior is virtually unchanged in all the other driver versions.
3.2 Elapsed Times in ISR in INT Version
Figure 2 – Elapsed times in interrupt handler (INT)
The PC 99 specification recommends that the maximum
time during which a driver-based modem disables interrupts should not exceed 100μs [Intel & Microsoft 98]. Figure 2 shows that the execution of the interrupt handler lasts 1.8ms with a repeatable worst case of 3.3ms, a factor of 33 worse than the specs recommend.
3.3 CPU Utilization
Figure 3 – CPU utilization (INT)
Figure 3 shows the CPU utilization of the soft modem. To compute the CPU load we decided to use 12.5ms (the actual interrupt rate) as the interval step. That is, we combined the time spent inside the interrupt handler executing signal processing for each 12.5ms interval throughout the trace for the vendor version. As Figure 3 illustrates, while connected, the soft modem uses a sustained 14.7% share of the CPU.
3.4 Times Spent by the DPC Version
Figure 4 – Elapsed times in interrupt handler (above) and in queued DPC (below) (DPC)