1. Field of the Invention
This invention relates to a digital signal processor for carrying out various kinds of digital signal processing, such as filtering.
2. Prior Art
Recently, various kinds of digital signal processing including filtering are widely carried out in many fields of technology. Most of the various kinds of digital signal processing can be represented by combinations of simple arithmetic operations including a multiplying operation, an adding operation, and a multiplying-adding operation. To carry out such arithmetic operations at high speeds, DSP's (digital signal processors) are widely utilized.
FIG. 1 shows an example of the construction of a DSP of this kind. In FIG. 1, reference numeral 20 designates an arithmetic operation block having a simple circuit configuration in which a multiplier 21, an adder 22, and registers 23 to 26 are connected to each other as shown in the figure. The DSP further includes a RAM (random access memory) 30, a program memory 31, a program counter 32 for supplying a readout address to the program memory, and a decoder 33.
In this DSP, a digital signal to be processed is transferred via the RAM 30 to the arithmetic operation block 20, where digital signal processing is carried out in a predetermined manner, and results of the processing are delivered from the DSP via the RAM 30. As illustrated in the figure, the arithmetic operation block 20 is very simple in construction. To cause the arithmetic operation block 20 to have such a simple construction to carry out digital signal processing, such as filtering, it is required to decompose the digital signal processing into a sequence of simple arithmetic operations each of which can be executed by a hardware resource, such as the multiplier 21, in a single step, and cause the arithmetic operation block 20 to sequentially carry out these arithmetic operations. To this end, a program formed of a sequence of instructions for instructing the above sequence of simple arithmetic operations and the inputting and outputting of signals required for carrying out each arithmetic operation is stored in the program memory 31. When the DSP carries out the digital signal processing, the instructions are sequentially read from the program memory 31 and decoded by the decoder 33 into control signals corresponding respectively to the instructions, which are sequentially supplied to processing elements within the DSP, where arithmetic operations are carried out according to the control signals. Thus, various kinds of digital signal processing including filtering are carried out by the arithmetic operation block 20 having a simple construction.
On the other hand, in addition to the arithmetic operation block having a simple construction, a device has been also proposed in which elements required for executing arithmetic operations constituting digital signal processing, such as multipliers, are separately provided for execution of the arithmetic operations. FIG. 2 shows an example of the construction of a device of this kind, i.e. a transfer filter, which is comprised of a plurality of multipliers 31, 31, . . . , a plurality of adders 32, 32, . . . , and a plurality of registers 33, 33, . . . , for executing high-speed convolution of a digital signal input thereto with a predetermined sequence of coefficients.
The DSP described above carries out the whole digital signal processing by executing a sequence of arithmetic operations in a predetermined order, and therefore, if the number of steps for executing the arithmetic operations forming the digital signal processing is large, it inevitably takes a long time period to obtain results of the arithmetic operations.
Therefore, to increase the speed of processing by the DSP, a pipeline control method has been introduced. The pipeline control method, however, gives rise to another problem. That is, the DSP based on the pipeline control method starts to execute instructions forming a program before execution of respective preceding instructions is completed. Therefore, the user of the DSP or the programmer has to prepare a program by taking into account a time period required for the DSP to execute each instruction, and this makes the operation of preparing a program very troublesome to carry out. Further, even if a program is executed by the pipeline control method, this is not different at all from other conventional methods in that instructions are sequentially executed one by one, so that when the number of steps of the program is large, it takes a long time period to obtain results of the processing.
To solve this kind of problem and at the same time increase the speed of digital signal processing, one will consider it effective to provide the DSP with hardware for executing the digital signal processing, as in the case of the transfer filter. When this technique is employed, however, it is required to develop and manufacture hardware dedicatedly designed for the digital signal processing whenever contents of the digital signal processing are changed, which is very uneconomical.