Automatic generation of time efficient digital signal processing software

Optimal use of high-speed programmable digital signal processors generally demands familiarity with machine architectural features and hence, production of programs whose structure reflects and exploits those features. In contrast, it is apparent that little effort has been made to develop programming techniques which fully realize the signal processing computational capability of standard minicomputers. In this paper, it is shown that a functional high-level language signal processing program can easily be modified so as to produce a similar program which, when executed, automatically generates another program containing precomputed algorithm sequencing and data access information. The generated program will then utilize central processor arithmetic and logical capability only for data-dependent computation. In this way, instructions normally associated with computation for program sequencing/control or data access are eliminated, and all benefits of increased algorithm complexity for reduction of data-dependent arithmetic computation are in fact realized as decreased program execution time. Examples are given of Fortran programs which generate Fortran FFT subroutines and, for completeness, assembly language realizations of the Pfeifer/Blankinship autocorrelation algorithm. Results demonstrate that, using this technique, standard minicomputers may execute digital signal processing algorithms faster than peripheral processors which normally require standard minicomputers as host processors.