1|vars:         |vars:         |vars:
     2| equ @d 10    | equ @d 10    | equ @d 10
     3| equ @e 11    | equ @e 11    | equ @e 11
     4| equ @i 12    | equ @i 12    | equ @i 12
     5| equ @out1 13 | equ @out1 13 | equ @out1 13
     6| equ @out2 14 | equ @out2 14 | equ @out2 14
     7| equ @out3 15 | equ @out3 15 | equ @out3 15
     8| equ @out 16  | equ @out 16  | equ @out 16
     9| equ @a 17    | equ @a 17    | equ @a 17
    10| equ @b 18    | equ @b 18    | equ @b 18
    11| equ @c 19    | equ @c 19    | equ @c 19
    12|start:        |start:        |start:
    13|init:         |init:         |init:
    14|@i: get 1     |@b: lda 0     |@e: lda 0
    15| nop          | mov @b       | nop
    16| nop          | nop          | mov @e
    17| mov @i       | nop          | nop
    18|loop:         |loop:         |loop:
    19|@d: nop       |@a: get @i    |@c: exc b
    20| get @e       | exc b        | nop
    21| exc b        | get @b       | nop
    22| nop          | exc b        | nop
    23| nop          | sub b        | nop
    24| nop          | mov @a       | nop
    25| nop          |@out1: nop    | get @a
    26| nop          | nop          | sub b
    27| nop          | nop          | mov @c
    28| nop          | nop          |@out2: get @b
    29| get @c       | nop          | exc b
    30| add b        | nop          | nop
    31| mov @d       | nop          | nop
    32|@out3: nop    | get @d       | nop
    33| get @a       | exc b        | nop
    34| exc b        | get @c       | nop
    35| nop          | add b        | nop
    36| nop          | mov @out1    | nop
    37| nop          |@out: nop     | get @out1
    38| nop          | nop          | add b
    39| nop          | nop          | mov @out2
    40| get @out2    | nop          | nop
    41| add b        | nop          | nop
    42| mov @out3    | nop          | nop
    43| nop          | get @out3    | nop
    44| nop          | mov 1        | nop
    45|next:         |next:         |next:
    46|@b: nop       |@e: nop       |@i: get 1
    47| get @d       | nop          | nop
    48| nop          | get @c       | nop
    49| nop          | nop          | mov @i
    50| mov @b       | nop          | nop
    51| nop          | mov @e       | nop
    52| jmp loop     | jmp loop     | jmp loop
FEATURES
  • The SPA code is obtained for the static parallel architecture.
  • Due to the time / resources determinismes of the code, the resources accesses are statically shared
  • This example is too small to show the gain of this approach.
  • With wide applications, such as the ADPCM filter, the gain is about 60%