Hi, Gaurav Dhiman wrote: > sorry, I got confused between both. Yes you are right that pipeline is > different from instruction cache. On executing any type of jmp > instruction, CPU clears its pipeline as well as the instruction cache > also, as this does not serve any meaning now because we are jumping > different part of the code and CPU need to fill the pipeline and > instruction cache again, and that degrades the performance of CPU > because it takes some CPU cycles (equient to number of sections in CPU > pipeline) to fill to full. Yes, on a branch, the CPU flushes its pipeline, however it *doesn't* flush the instruction cache. It simply ask the instruction cache for the memory address of the instruction to execute, and if it's not found in the cache, then it's a cache miss (but just a miss on one cache line). But in no way a jump flushes the whole instruction cache. CPU-experts, correct me if I'm wrong ! Sincerly, Thomas -- Thomas Petazzoni thomas.petazzoni@xxxxxxxx -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/