ch2 c55x 1
ch2 c55x 1
Accumulator architecture:
acc = operand op acc.
Very useful in loops for DSP.
C55x assembly language:
MPY *AR0, *CDP+, AC0
Label: MOV #1, T0
C55x algebraic assembly language:
AC1 = AR0 * coef(*CDP)
Overheads for Computers as
© 2008 Wayne Wolf Components 2nd ed.
Intrinsic functions
Data types:
Word: 16 bits.
Longword: 32 bits.
Instructions are byte-addressable.
Some instructions operate on
register bits.
Terminology:
Register: any type of register.
Accumulator: acc = operand op ac.
Most registers are memory-mapped.
Unconditional branch:
B ACx
B label
Conditional branch:
BCC label, cond
Loops:
Single-instruction repeat
Block repeat
Overheads for Computers as
© 2008 Wayne Wolf Components 2nd ed.
Efficient loops
General rules:
Don’t use function calls.
Keep loop body small to enable local
repeat (only forward branches).
Use unsigned integer for loop counter.
Use <= to test loop counter.
Make use of compiler---global
optimization, software pipelining.
Overheads for Computers as
© 2008 Wayne Wolf Components 2nd ed.
Single-instruction repeat loop
example
STM #4000h,AR2
; load pointer to source
STM #100h,AR3
; load pointer to destination
RPT #(1024-1)
MVDD *AR2+,*AR3+
; move