[Coco] 6309 instruction timing question

Darren A mechacoco at gmail.com
Wed Aug 27 01:23:32 EDT 2008


On 8/26/08, William Astle <lost at l-w.ca> wrote:
> This is a question for the 6309 guru types out there.
>
> In native mode, many instructions execute 1 cycle faster than in
> non-native mode due to the "pre-fetch" cache. From the documentation I
> have, it's not clear whether that 1 cycle speed increase applies to the
> first instruction after a branch is taken. Has anyone tested this situation?
>
> Say, for example, you have:
>
> 	TSTA
> 	BNE NE
> 	...
> NE	CLRA
>
> In native mode, CLRA should execute in 1 cycle. However, if one arrives
> at it via the BNE instruction, would it still execute in 1 cycle or
> would it take 2 because the "pre-fetch" would be invalidated by the branch?
>
-------------

It appears that the CLRA instruction will execute in 1 cycle
regardless of whether it is executed sequentially or upon a branch
taken. I used a cycle counter program to test the two instruction
sequences below. They both used a total of 6 cycles:

Test  1
  LDA  #0
  BEQ  BP
  NOP
  NOP
  NOP
BP  CLRA


Test  2
BP  LDA #1
  BEQ  BP
  CLRA


I'm not sure how this fits with the "pre-fetch" explanation for the
faster operation.

Darren



More information about the Coco mailing list