Time cost of some huge functions (execute 1000 times) like match lib function( take acos for example ) changed hugely.
I run this test on a RTOS, though it is SMP, I only enable one core, and before invoke the fucntion, I disable interrupts and lock the task switch. So there should be no interrupts during the execution of the function.
I add some monitor code at this test, it seems when the time cost become longer, the count of instruction cache miss become bigger, and "Stall because instruction buffer cannot deliver an instruction" become bigger. So it seems this is related with instruction cache.
Then I add instruction cache invalidation operation before the function, the time cost become steady.
I see that ARM11 MPCore is using a round-robin cache replacement policy. So I think there should be no time difference whether adding the cache invalidation operation.
Who can help me with this issue? Thanks!
Waiting!......
Thomas, in the interests of avoiding frustration be aware that Community is run as a true forum not a support channel. So normal rules of forum engagement apply. i.e.The comments you get (or lack of) will vary depending on the topic & the question / information presented. If you have an entitlement to support you can use the formal support channel. Email: support@arm.com