Take the 2-minute tour ×

I'm currently learning about interrupts but don't understand how you calculate the data rate for the question below. I have the answers but I have no idea how you get there. If someone could please explain to me how it is calculated it would be really appreciated.

Here is the question...

This question concerns the use of interrupts to handle the input and storage in memory of data arriving at an input interface, and the consideration of data rates that be achieved using this mechanism. In this particular question, the arrival of each new data item triggers an interrupt request to input and store the data item in a queue in memory.The question is about calculating the maximum data rate achievable in this scenario.

You are first required to calculate the time to respond to an interrupt from the interface, run the interrupt service routine (ISR) and return to the interrupted program.From this and the number of data bits input on each interrupt, you are required to calculate the maximum data rate in bits per second, that can be handled. Below you are given: the number of clock cycles the CPU requires to respond to the interrupt and switch to the ISR, the number of instructions executed by the ISR, the average number of clock cycles executed per instruction in the ISR, the number of bits in the data item input on each interrupt, and the clock frequency. [You can assume that when the CPU can be immediately interrupted again as soon as the ISR completes, but not before this]

clock cycles to respond to interrupt = 15 instructions executed in ISR= 70 average clock cycles per instruction = 5 number of bits per data item = 32
clock frequency = 10MHz


a) What is the time in microseconds to respond to an interrupt from the interface, run the interrupt service routine (ISR) and return to the interrupted program?

b)What is the maximum data rate in Kbits/second?


a) 36.5 - I understand this

b) 876.7 - ????

share|improve this question

1 Answer 1

up vote 1 down vote accepted

Because each ISR takes 36.5 us, the absolute maximum number of ISRs that can happen in a second is 27,397.2603.

In each ISR, 32 bits of data are processed.

Therefore, 27397.2603 * 32 bits = 876.712.33 bits processed per second

share|improve this answer
Thanks so much! This has been puzzling me for ages! –  user1110773 Dec 21 '11 at 23:31

Your Answer


