I am doing timer interrupt in microblaze at every 18.96us. Cache is enabled. When the interrupt handler has no code at all, handler is called every 18.96us. It is working correct. But when handler has some code, the handler takes some time for example 5us for execution, but it is not called every 18.96us. since 5us is smaller than 18.96 us it is supposed to be called every 18.96us. why does this happen ? Any suggestions are welcome.