cancel
Showing results for 
Search instead for 
Did you mean: 

ST10F269 incorprates a jump cache,how can I turn off this function?

yaokui
Associate II
Posted on November 22, 2005 at 05:05

ST10F269 incorprates a jump cache,how can I turn off this function?

4 REPLIES 4
yaokui
Associate II
Posted on November 11, 2005 at 13:55

I am programming a algorithm with assembler in ST10F269. But this typ of microcontroller incorprates a jump cache

If the instruction is repeated in a loop, the target instruction( JMPA,JMPR,JB,JBC,JNB,JNBS) is additionally stored in the cache. For execution of the repeated cache jump instruction, the jump target instruction is not fectehed from program memory but taken from the cache and immediately injected into the decode stage of the pipeline.The jump cache reduces the execution time of repeatedly performed jumps in a loop, from 2 cycles to 1 cycle.

But this is not I want to see, because I want the working time of each loop always to be the same, even the first jump and the repeated jumps after.

Is there some idea to avoid using this jump cache,or when I use the 'calla ' order instead of 'jumpa ', it will be not problematic ? because 'calla' is not mentioned.

charles239955_st
Associate II
Posted on November 16, 2005 at 05:37

It is not possible to disable the Jump Cache mechanism.

This mechanism is automatically triggered when a conditional JUMP instruction is executed.

The cache content is ''cleared'' by a JMPS instruction. A trick could be to add a JMPS instruction, with target the location of the JMPA that you don't want to be cached, just before the JMPA instruction.

yaokui
Associate II
Posted on November 17, 2005 at 09:05

Thanks Kenshin a lot.

In my program the segmentation is disabled. Because the first operand after JMPS is to specify the segment, in which the operand 2 exist.

so by using JMPS, how can I define the first operand.

yaokui
Associate II
Posted on November 22, 2005 at 05:05

thanks for all your help.

regards