US 20010004741 A1 Abstract There is provided a digital signal processor. A bus transfers data to be processed by an arithmetic operation unit and results of arithmetic processing by the arithmetic operation unit. At least one accumulator holds the results of the arithmetic processing by the arithmetic operation unit and delivers the results to the bus. A bypass device delivers the results by bypassing the at least one accumulator.
Claims(14) 1. A digital signal processor comprising:
an arithmetic operation unit; a bus that transfers data to be processed by said arithmetic operation unit and results of arithmetic processing by said arithmetic operation unit; at least one accumulator that holds said results of said arithmetic processing by said arithmetic operation unit and delivers said results to said bus; and a bypass device that delivers said results by bypassing said at least one accumulator. 2. A digital signal processor according to claim 1 3. A digital signal processor according to claim 2 4. A digital signal processor according to claim 3 5. In a digital signal processor including an arithmetic operation unit, at least one internal register connected to said arithmetic operation unit, and at least one external register, said arithmetic operation unit carrying out arithmetic processing by receiving data stored in said at least one internal register to carry out an arithmetic operation using said at least one internal register, and receiving data stored in said at least one external register to carry out an arithmetic operation using said at least one external register,
the improvement comprising: a path commonly used for transfer of said data stored in said at least one internal register for said arithmetic operation using said at least one internal register and said data stored in said at least one external register for said arithmetic operation using said at least one external register; and a variable delay device interposed in said path; wherein based on changeover of said delay time of said variable delay device, said arithmetic operation unit carries out said arithmetic processing in a predetermined constant time period irrespective of whether said arithmetic processing is said arithmetic operation using said at least one internal register or said arithmetic operation using said at least one external register. 6. A digital signal processor according to claim 5 7. A digital signal processor according to claim 5 8. A digital signal processor according to claim 6 9. A digital signal processor according to claim 5 10. A digital signal processor according to claim 6 11. A digital signal processor according to claim 9 12. A digital signal processor according to claim 10 13. A digital signal processing system comprising:
a control processor; a signal processor that carries out signal processing under control of said control processor; a plurality of dual port RAM's that pass data between said control processor and said signal processor, said dual port RAM's each having two ports; and a bus to which said control processor and said dual port RAM's are connected, said control processor having a first memory management unit connected to one of said ports of each of said dual port RAM's via said bus, for transfer of data to and from a selected one of said dual port RAM's, said signal processor having a plurality of second memory management units each connected to another one of said ports of said each of dual port RAM's, for transfer of data to and from said each of said dual port RAM's independently of each other. 14. A digital signal processing system according to claim 13 Description [0001] 1. Field of the invention [0002] This invention relates to a digital signal processor (DSP) for carrying out signal processing under the control of a control processor and a digital signal processing system including the control processor and the DSP. [0003] 2. Prior Art [0004]FIG. 1 shows the arrangement of a conventional DSP that carries out signal processing under the control of a control processor. In the figure, symbols C and D designate external registers which are storage means for storing input data to be processed by the DSP, and non-final and final results of the processing. [0005] A multiplication/addition block [0006] The multiplication/addition unit [0007] The ALU [0008] In FIG. 1, the buses and other signal lines are shown with numerals, such as [0009] The component elements and parts of the DSP described above are controlled by a program stored in advance in memory means, by so-called pipeline control. That is, assuming, for instance, that the DSP carries out convolution of time-series sample data with a predetermined sequence of filter coefficients, this convolution operation is carried out in the following manner: [0010] First, at a certain clock timing, the multiplier [0011] Then, at the next clock timing, the result of the first multiplication is written from the ALU [0012] Then, at the next clock timing, the result of the first multiplication delivered from the accumulator ACC [0013] Hereafter, multiplication of sample data and a coefficient, and accumulation of a result of the multiplication are repeatedly carried out in the same manner. Then, when multiplication operations of all sets of sample data and coefficients and accumulation of all results of the multiplication operations are completed, a result of this convolution operation, which is obtained at this time point as contents of the accumulator ACC [0014] Thus, arithmetic operations constituting a convolution operation, such as a multiplication operation and an addition operation, are carried out in parallel by respective devices, which enable the arithmetic operations to be executed efficiently. [0015] Although the operation of the DSP is described above by referring to an example of the convolution operation, there is a case where a further multiplication operation is carried out on output data from the multiplication/addition unit [0016] In the conventional DSP, when the ALU [0017] Further, some kinds of arithmetic processing require lots of arithmetic operations to be executed within a predetermined time period. When such a kind of arithmetic processing is executed by the DSP, if the start of the next arithmetic operation is delayed due to unavailability of the accumulators ACC [0018] Further, there can be a case where the accumulator ACC [0019] In the conventional DSP, it takes different time periods to execute arithmetic operations of identical contents, depending on whether the arithmetic operations are executed by using internal registers or by using external registers. FIG. 2 shows an example of two instructions for execution of arithmetic operations of identical contents by using internal registers and by using external registers, respectively. [0020] First, an instruction shown in a left-hand column of FIG. 2, i.e. “reg_a=acc [0021] Step 1: The multiplier [0022] Step 2: The ALU [0023] Step 3: The data stored in the accumulator ACC [0024] Each of the above steps is carried out over one clock, and therefore it takes a total of three clocks to carry out the above instruction. [0025] In contrast, an instruction shown in a lefthand column of FIG. 2, i.e. “reg_a=acc [0026] Step 1: Data stored in the external register C is transferred to the internal register A, and data stored in the external register D to the internal register B; [0027] Step 2: The multiplier [0028] Step 3: The ALU [0029] Step 4: The data stored in the accumulator ACC [0030] That is, the arithmetic operations carried out by using the external resisters require transfer of data from the external registers to the internal registers and hence it takes one clock longer to complete the arithmetic operations than when arithmetic operations of the identical contents are carried out by using the internal registers. Although in the above example, multiplications are carried out, even in a case where additions are carried out, similarly there arise a difference in processing time equivalent to one clock between when data in the external internal registers are added together and when data in the internal registers are added together. [0031] As described above, according to the conventional DSP, even if arithmetic operations of identical contents are carried out, it takes different time periods to carry out the arithmetic operations, depending on whether internal registers or external internal registers are used. This makes it necessary to carry out timing adjustment, such as changing timing of start of execution of each arithmetic operation (changing a bus request line number) depending on whether the arithmetic operation uses internal registers or external internal registers, rendering timing designing of the program even more difficult to carry out. For example, if an instruction for arithmetic operations using the external registers C and C is first carried out, and then another instruction for arithmetic operations using the internal registers A and B is carried out one clock later, there arises an inconvenience that results of multiplications carried out according to these instructions are delivered to the bus [0032]FIG. 3 shows the arrangement of a digital signal processing system comprised of a DSP of a kind described above and a control processor. More specifically, the digital signal processing system is comprised of a DSP [0033] The RAM [0034] The DSP [0035] When data is transferred between the DSP [0036]FIG. 4 shows another type of digital signal processing system, which is distinguished from the FIG. [0037] Now, to carry out a multiplication/addition operation by the conventional digital signal processing system shown in FIG. 3, two pieces of data are required for each multiplication/addition operation. However, the DSP [0038] One typical use of the digital signal processing system is a filtering operation in which externally-supplied time-series sample data are convolved with a predetermined sequence of coefficients. In most cases, one of two pieces of data for a multiplication/addition operation is data which incessantly varies, while the other is data of coefficients which are fixed in value. However, in the FIG. 3 system, the MMU [0039] On the other hand, in the FIG. 4 digital signal processing system, data required by the DSP for multiplication/addition operation are written into the external registers C and D by the RISC-CPU [0040] Further, when the RISC-CPU [0041] It is a first object of the invention to provide a DSP (digital signal processor) which is improved in accuracy, processing speed, facility of programming, etc., namely, improved in performance as a whole, as well as a digital signal processing system incorporating the digital signal processor. [0042] It is a second object of the invention to provide a DSP which is capable of starting a new arithmetic operation even when results of completed arithmetic operations cannot be written into accumulators which already store data. [0043] It is a third object of the invention to provide a DSP which does not require different time periods to execute arithmetic operations depending on whether the arithmetic operations are each to be carried out by using internal registers or by using external registers, and hence facilitates programming therefor. [0044] It is a fourth object of the invention to provide a digital signal processing system which is capable of efficiently supplying data required in carrying out arithmetic operations from a control processor thereof to a DSP thereof. [0045] To attain the first and second objects, according to a first aspect of the invention, there is provided a digital signal processor comprising an arithmetic operation unit, a bus that transfers data to be processed by the arithmetic operation unit and results of arithmetic processing by the arithmetic operation unit, at least one accumulator that holds the results of the arithmetic processing by the arithmetic operation unit and delivers the results to the bus, and a bypass device that delivers the results by bypassing the at least one accumulator. [0046] Preferably, the bypass device comprises a delay element that delays delivery of the results of the arithmetic processing by the arithmetic operation unit to the bus, the delay element delivering the results to the bus at the same timing that the results would be delivered by way of the at least one accumulator. [0047] More preferably, a digital signal processor includes at least one external register connected to the bus, for storing the data to be processed by the arithmetic operation unit, the arithmetic operation unit having at least one internal register connected to the at least one external register via the bus, the data to be processed by the arithmetic operation unit being transferred from the at least one external register to the at least one internal register by way of the bus. [0048] Further preferably, the digital signal processor carries out a filtering operation, the at least one external register comprising a plurality of external registers, the at least one internal register comprising a plurality of internal registers, one of the external registers and one of the internal registers each storing time-series data, while another one of the external registers and another one of the internal registers each storing filter coefficients. [0049] To attain the first and third objects, according to a second aspect of the invention, there is provided a digital signal processor including an arithmetic operation unit, at least one internal register connected to the arithmetic operation unit, and at least one external register, the arithmetic operation unit carrying out arithmetic processing by receiving data stored in the at least one internal register to carry out an arithmetic operation using the at least one internal register, and receiving data stored in the at least one external register to carry out an arithmetic operation using the at least one external register. [0050] The digital signal processor according to the second aspect of the invention is characterized by comprising a path commonly used for transfer of the data stored in the at least one internal register for the arithmetic operation using the at least one internal register and the data stored in the at least one external register for the arithmetic operation using the at least one external register, and a variable delay device interposed in the path, wherein based on changeover of the delay time of the variable delay device, the arithmetic operation unit carries out the arithmetic processing in a predetermined constant time period irrespective of whether the arithmetic processing is the arithmetic operation using the at least one internal register or the arithmetic operation using the at least one external register. [0051] Preferably, the digital signal processor includes a bypass device that delivers the data stored in the at least one external register to the arithmetic operation unit by bypassing the at least one internal register when the arithmetic operation using the at least one external register is carried out by the arithmetic operation unit. [0052] Preferably, the arithmetic operation unit includes a multiplication device having an output, and an addition device connected to the output of the multiplication device, the multiplication device carrying out a multiplication operation only for the arithmetic operation using the at least one internal register. [0053] Preferably, the digital signal processor includes at least one accumulator that holds results of the arithmetic processing by the arithmetic operation unit, and a bus connected to the at least one external register, the at least one internal register, and the at least one accumulator, for transfer of the data stored in the at least one internal register and the at least one external register for the arithmetic processing by the arithmetic operation unit and the results of the arithmetic processing by the arithmetic operation unit. [0054] More preferably, the digital signal processor carries out a filtering operation, the at least one external register comprising a plurality of external registers, the at least one internal register comprising a plurality of internal registers, one of the external registers and one of the internal registers each storing time-series data, while another one of the external registers and another one of the internal registers each storing filter coefficients. [0055] To attain the first and fourth objects, according to a third aspect of the invention, there is provided a digital signal processing system comprising a control processor, a signal processor that carries out signal processing under control of the control processor, a plurality of dual port RAM's that pass data between the control processor and the signal processor, the dual port RAM's each having two of ports, and a bus to which the control processor and the dual port RAM's are connected, the control processor having a first memory management unit connected to one of the ports of each of the dual port RAM's via the bus, for transfer of data to and from a selected one of the dual port RAM's, the signal processor having a plurality of second memory management units each connected to another one of the ports of the each of dual port RAM's, for transfer of data to and from the each of the dual port RAM's independently of each other. [0056] Preferably, the digital signal processing system carries out a filtering operation, the signal processor having an arithmetic operation unit, a bus that transfers data to be processed by the arithmetic operation unit and results of arithmetic processing by the arithmetic operation unit, a plurality of external registers having the second memory management devices, a plurality of internal registers connected to the external registers via the bus, one of the external registers and one of the internal registers each storing time-series data, while another one of the external registers and another one of the internal registers each storing filter coefficients. [0057] The above and other objects, features and advantages of the invention will become more apparent from the following detailed description taken in conjunction with the accompanying drawings. [0058]FIG. 1 is a block diagram showing the arrangement of a conventional DSP; [0059]FIG. 2 shows a table which is useful in explaining operations of the DSP [0060]FIG. 3 is a block diagram showing the arrangement of a conventional digital signal processing system; [0061]FIG. 4 is a block diagram showing the arrangement of another conventional digital signal processing system; [0062]FIG. 5 is a block diagram showing the arrangement of a DSP according to a first embodiment of the invention; [0063]FIG. 6 is a block diagram showing the arrangement of a DSP according to a second embodiment of the invention; [0064]FIG. 7 shows a table similar to that shown in FIG. 2, which is useful in explaining operations of the FIG. 6 DSP; [0065]FIG. 8 is a block diagram showing the arrangement of a DSP according to a third embodiment of the invention; [0066]FIG. 9 is a block showing the arrangement of a digital signal processing system according to a fourth embodiment of the invention; and [0067]FIG. 10 is a block showing the arrangement of a digital signal processing system according to a fifth embodiment of the invention. [0068] Now, the invention will be described in detail with reference to drawings showing embodiments thereof. [0069] In figures showing the embodiments of the invention, elements and parts corresponding to those of the prior art described hereinbefore are designated by identical reference numerals, detailed description of which is omitted. [0070] A first embodiment of the invention will now be described, which is capable of more efficiently carrying out arithmetic operations to thereby enhance the performance of the DSP. [0071] Referring first to FIG. 5, there is shown the arrangement of a 24-bit fixed-point DSP. This embodiment is distinguished from the conventional DSP described hereinbefore with reference to FIG. 1 in which results of arithmetic operations by the multiplication/addition unit [0072] According to this arrangement of the DSP, even when data which has been not yet transferred is still stored in the accumulator ACC [0073] That is, in actuality, all the results of arithmetic operations output from the multiplication/addition unit [0074] Further, according to the present embodiment, it is not required to transfer data stored in the accumulator ACC [0075] Moreover, according to the present embodiment, a result of an arithmetic operation by the multiplication/addition unit [0076] Next, a second embodiment of the invention will be described, which is capable of facilitating programming to thereby enhance the performance of the DSP. [0077]FIG. 6 shows the arrangement of a DSP according to the second embodiment. In this embodiment, data paths from the internal registers A and B to the ALU [0078] Which data is to be selected by each of the selectors [0079] Further, according to the present embodiment, instructions for multiplication operations using the external registers are excluded from each set of instructions, that is, instructions for multiplication operations are necessarily carried out by using the internal registers. This restriction is intended to execute all instructions over an equal time period. [0080]FIG. 7 shows an example of instructions useful in describing operations of the DSP according to the present embodiment. Now, the operation of the DSP will be described with reference to FIG. 7. [0081] First, an instruction in a left-hand column of FIG. 7 is the same instruction that was described hereinabove with reference to FIG. 2, which instructs a multiplication operation to be carried out by using the internal registers A and B (see the instruction in the left-hand column in FIG. 2). The operation of the DSP according to this instruction is not different from the above described operation of the conventional DSP, and it takes three clocks to complete the arithmetic operations. [0082] Next, an instruction in a central column of FIG. 7, i.e. “reg_a=reg_a+reg_b”, means “Add together data stored in the internal register A and data stored in the internal register, and store a result of the addition in the internal register A”. This instruction instructs arithmetic operations to be carried out by using the internal registers, and therefore output data from the delay elements [0083] Step 1: The delay elements [0084] Step 2: The output data from the delay elements [0085] Step 3: The data stored in the accumulator ACC [0086] Thus, it also takes three clocks to carry out this instruction. [0087] Next, an instruction in a right-hand column of FIG. 7, i.e. “reg_a=acc [0088] Step 1: Data stored in the external register C is transferred to the internal register A, and data stored in the external register D is transferred to the internal register B; [0089] Step 2: The output data from the internal registers A and B delivered respectively through the selectors [0090] Step 3: The data stored in the accumulator ACC [0091] Thus, it also takes three clocks to carry out this instruction. [0092] As described above, according to the present embodiment, there is no difference in the number of clocks required to carry out arithmetic operations irrespective of whether the arithmetic operations are carried out by using the internal registers or by using the external registers, or irrespective of whether the arithmetic operations are multiplication operations or addition operations. This saves labor required of the programmer in determining the timing of start of execution of each instruction of a program he is preparing. [0093]FIG. 8 shows the arrangement of a DSP according to a third embodiment of the invention. This embodiment is distinguished from the second embodiment described above in that delay elements [0094] The selector [0095] According to the present embodiment, when an instruction for arithmetic operations using the external registers is carried out, output data from the external registers C and D are supplied not via the internal registers A and B but via the delay elements [0096] A fourth embodiment of the invention will now be described, which is capable of efficiently passing data between a control processor and a DSP controlled by the control processor, to thereby enhance the whole performance of a digital signal processing system including the control processor and the DSP. [0097]FIG. 9 shows the arrangement of a digital signal processing system according to the fourth embodiment. In the figure, component elements and parts corresponding to those appearing in FIG. 4 are designated by identical reference numerals, and detailed description thereof is omitted. [0098] The digital signal processing system according to the present embodiment has three RAM's [0099] One port of each of the RAM's [0100] In a DSP [0101] Now, the operation of the digital signal processing system according to the present embodiment will be described. For instance, in the case where a filtering operation is carried out by the digital signal processing system, before the filtering operation is started, the RISC-CPU [0102] Then, when the DSP [0103] On the DSP [0104] The reading of data from the RAM [0105] A fifth embodiment of the invention will now be described, which incorporates essential elements of the first, second, and fourth embodiments to thereby enhance the whole performance of a digital signal processing system including the control processor and the DSP. [0106] More specifically, as shown in FIG. 10, this embodiment is distinguished from the fourth embodiment described above in that it additionally incorporates a bypass path comprised of the delay element [0107] According to this embodiment, all the advantageous effects obtained by the first, second, and fourth embodiments described above can be obtained. [0108] The embodiments described heretofore are illustrated only bay way of example, and not by way of limitation, and can be modified as desired within the scope of the invention. Referenced by
Classifications
Rotate |