Page 443 - DSP Integrated Circuits
P. 443

428                                     Chapter 9 Synthesis of DSP Architectures


























                              Figure 9.42 The SIC architecture




        Constants Program constants are stored in ROM cells in the shared memory
        (SM).

        The Program Counter The program counter (PC) works as the other pro-
        cesses in the architecture with its interfacing registers in the SM area. However,
        the program counter register (PCR) has an additional output for pointing to the
        source and destination addresses in the PM of the next move to be performed.
        Unconditional jumps are facilitated by an immediate move of the next program
        address into the PCR. To facilitate conditional jumps, a jump condition register
        (JCR) is set up to contain the jump address. The JCR is moved into the PCR when
        a process signals the PC that the jump condition has been met; for example, a com-
        parator process could signal when its two operands are equal.
            To issue a subroutine call the start address of the subroutine is moved to a
        jump subroutine register (JSR). This in turn causes the value of the PCR to be put
        on a stack local to the PC-process before writing the new address into the PCR
        from the JSR. When returning from a subroutine call, the JSR is moved into the
        PCR, then the top value of the stack is popped and transferred to the JSR display-
        ing the next return value. A similar operation could be implemented for external
        interrupts by causing the PC to load an interrupt register into the PCR whenever
        an interrupt occurs.

        Stack Implementation A stack can be implemented as another process with
        an input/output register in the SM. Writing a value to this register would then
        cause the process to put the register value onto a stack. Reading the register value
        would pop the next value off the stack and into the register, making it available for
        any subsequent reading of the register.

        Indexing Indexing can be implemented by an index register pointing to a cell
        within a memory frame together with an input/output register that interfaces the
   438   439   440   441   442   443   444   445   446   447   448