Control processor for memory bus configuration

Abstract: A control processor (11) for memory bus configuration for a parallel computer enables a plural-to-one connection of the output buses (51-58) of plural processor elements (21-24, 31-34) to memory input bus (72) and input buses (61-68) of plural processor elements to memory output bus (73), and decreases the total number of memory buses, by means of a multiplexing unit (12) which multiplexes data on the output buses of plural processor elements and transfers the multiplexed data to the memory, a demultiplexing unit (13) which demultiplexes the multiplexed data delayed by the memory and transfers the demultiplexed data to the input buses of plural processor elements, and a program control unit (14) which controls the multiplex/demultiplex formats of the multiplexing unit and the demultiplexing unit.

Description: BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a control processor for memory bus configuration which multiplexes and demultiplexes data on the memory buses by which the plural processor elements in a parallel computer, which digitally processes video signals and/or audio signals, transfers data to line memory, field memory or other memory device. 2. Description of the Prior Art Parallel computers (particularly multiple processor parallel computers) have been used to distribute to plural processor elements the processing operations required for real-time digital processing of video and/or audio signals. The processor elements are connected to memory via a memory bus because these signal processing operations require the data to be delayed for a specific period, typically by using the line or field memory. The memory bus connects each processor element to a single memory unit in a 1:1 configuration. By thus preventing plural processor elements from transferring data to a single memory unit, data collisions are prevented and the specific delay period required for a given signal is not disturbed during the processing of that signal. DE-A-33 40 123 defining the closest prior art from which the invention proceeds discloses a control processor inserted between a plurality of processor elements for controlling memory bus configuration, wherein the known control processor comprises a multiplexing unit for converting data to multiplexed data by a multiplexing process, and a demultiplexing unit for converting the multiplexed data to demultiplexed data by a demultiplexing process, wherein the multiplexing unit and the demultiplexing unit are controlled for controlling the transfer of multiplexing format data to the multiplexing unit and demultiplexing format data to the demultiplexing unit. From US-A-4 164 787, it is known an apparatus for providing a communication arrangement between two or more independently operable microprocessor units. Large amounts of data or data in block format are capable of being passed between the microprocessor units via an intercommunication channel with little handshaking between the mircroprocessor units. In the known arrangement, a plurality of microprocessor units sequentially access, under control of a synchronous clock, a common memory for random access to blocks of memory for writing data therein and for reading data previously written therein without the necessity for contention resolving means. WO-A-8704826 describes a multi-processor apparatus which includes an array of separately addressable memory units and an array of separately addressable processors. A first unidirectional bus delivers data from a selected processor to a selected memory unit. A second unidirectional data bus delivers data from a selected memory unit to a selected processor. Arbitor circuits control the flow of data to these data buses. A further known device of the above-mentioned configuration is described e.g., in "A Real-Time Video Signal Processing System" (paper D-201, National Spring Conference of the Japan Denshin Gakkai (Telecommunications Society)) in which it is so described that a memory device is directly connected to each of the processor elements comprising the multiple processor computer for data transfer. However, when delay control is required by one of the processor elements in this conventional configuration, two memory buses are required to connect that processor element and one memory. Therefore, when various delay control sequences are required by plural processor elements for video signal processing as in a high definition television, many memory devices and a correspondingly high multiple of memory buses are required. SUMMARY OF THE INVENTION Therefore, an object of the present invention is to reduce the required number of memory buses by multiplexing the data transferred from the plural processor elements to the memory in a parallel computer used for digital signal processing. To achieve this object, according to the present invention, there is provided a control processor inserted between a plurality of processor elements, each having a first bus and a second bus, and a memory having a first memory bus and a second memory bus, for controlling memory bus configuration, said control processor comprising: a multiplexing unit connected to the second buses of plurality of processor elements and to the first memory bus of the memory and for converting data on the second buses to multiplexed data by a multiplexing process for transfer to the first memory bus; a demultiplexing unit connected to the first buses of plurality of processor elements and to the second memory bus of the memory and for converting the multiplexed data on the second memory bus to demultiplexed data by a demultiplexing process for transfer to the first buses; and a program control unit connected to the multiplexing unit and the demultiplexing unit and for controlling the transfer of multiplexing format data to the multiplexing unit and demultiplexing format data to the demultiplexing unit by execution of a control program; characterized in that said first buses are input buses, said second buses are output buses, said first memory bus is a memory input bus, and said second memory bus is a memory output bus; a dynamic allocation control unit is provided for generating an allocation signal from a counted value of a synchronization signal and a clock signal; and said program control unit is a program control unit with dynamic allocation which is further connected to the dynamic allocation control unit to change the multiplexing format data transferred to the multiplexing unit and the demultiplexing format data transferred to the demultiplexing unit by means of the allocation signal input from the dynamic allocation control unit. Since, according to the present invention, the control processor for memory bus configuration as described above combines and multiplexes the data on the output buses of plural processor elements to one memory bus, a plural to one connection of output buses to memory buses and input buses to memory buses is possible, and the total number of memory buses can therefore be reduced. Thus, because the limitations imposed on large-scale integration of a parallel computer by the increased number of pins are possible to create a single-chip LSI parallel computer for incorporation in televisions, VCRs, and other mass-produced electronics. BRIEF DESCRIPTION OF THE DRAWINGS The present invention will become more fully understood from the detailed description given below and the accompanying diagrams wherein: Fig. 1 is a block diagram of a control processor for memory bus configuration according to a preferred embodiment of the present invention, Figs. 2, and 3 are block diagrams of the multiplexing unit, and demultiplexing unit, respectively, of the control processor for memory bus configuration according to the preferred embodiment, Figs. 4 and 5 are block diagrams of the dynamic allocation control unit and the program control unit with dynamic allocation, respectively, of the control processor for memory bus configuration according to the preferred embodiment, Fig. 6 is a timing chart used to describe the multiplexing/demultiplexing sequence of the preferred embodiment, Figs. 7a and 7b are diagrams used to describe the multiplexing operation of the preferred embodiment, and Figs. 8a and 8b are diagrams used to describe the demultiplexing operation of the preferred embodiment. DESCRIPTION OF PREFERRED EMBODIMENTS A preferred embodiment of a control processor for memory bus configuration according to the present invention is described hereinbelow with reference to the accompanying figures. Fig. 1 is a block diagram of a control processor for memory bus configuration according to a preferred embodiment of the invention comprising a memory bus configuration control processor 211, processor elements 221-224, 231-234, and 241-244, a memory 290, and memory address generator 291. The memory bus configuration control processor 211 comprises a multiplexing unit 212, demultiplexing unit 213, and program control unit 214. As controlled by the program control unit 214, the multiplexing unit 212 multiplexes the data on the specific output buses selected from among plural processor element output buses 251-258, and transfers the data to a memory input bus 292 of the memory 290. At the same time, the demultiplexing unit 213 demultiplexes the multiplexed data on a memory output bus 293 of the memory 290, and outputs the demultiplexed data to the specific input buses selected from among plural processor element input buses 261-268. During this operation the memory 290 controls the data delay period by simultaneously reading and writing data to sequential addresses generated by the memory address generator 291 to loop for a constant delay period. It is to be noted that the present embodiment is described with the memory bus configuration control processor 11 connected to eight output buses and eight input buses, but any number of buses may be used and the invention is not limited to an eight bus configuration. Furthermore, a dynamic allocation control unit 216 is provided in the memory bus configuration control processor 211 to generate a allocation signal for dynamic allocation of data multiplexing combinations. The program control unit 214 has dynamic allocation, which enables the multiplexing and demultiplexing formats to be set dynamically in the multiplexing unit 212 and the demultiplexing unit 213 by the allocation signal. Figs. 2, and 3 are block diagrams of the multiplexing unit 212, and the demultiplexing unit 213, respectively, which are employed in the memory bus configuration control processor 211. As shown in Fig. 2, from among the eight output buses 251-258, the multiplexing unit 12 stores the data on the four (or fewer) output buses selected by the input selectors 421a-421d to the registers 423a-423d addressed by the latch signal generated from the latch signal generator 422. These four registers 423a-423d can each be separately set to latch the data, i.e., can be separately enabled/disabled. Next, the data in these four (or fewer) registers are multiplexed by combining the operations of the shift operation units 424a-424d, mask operation units 425a-425d, and the OR operation unit 426, and is then transferred to the memory input bus 292. Pipeline processing is enabled since the operation of the latch signal generator 422, shift operation units 424a-424d, the mask operation units 425a-425d, and the OR operation unit 426 are all synchronized to a clock signal 291. In addition, by the control signal on data bus 215a from the program control unit 214, the buses selected at input selectors 421a-421d, the latch enable/disable signal to be applied to registers 423a-423d, shift amount to be effected in shift operation units 424a-424d, and mask position settings for mask operation units 425a-425d are controlled. Referring to Fig. 3, the demultiplexing unit 213 stores the data on the memory output bus 293 to the registers 434a-434d according to the latch signal from the latch signal generator 435. These four registers can each be separately set to latch the data, i.e., can be separately enabled/disabled. Also, the four registers can either store the same data or, can store different data by shifting the latch timing therefor. Next, the data in these four (or fewer) registers 434a-434d are shifted by the shift operation units 433a-433d to latch circuits 432a-432d. After matching the output timing by the latch circuits 432a-432d, the data are outputted to the four (or fewer) input buses selected by the output selectors 431a-431d from among the eight available input buses 261-268. Pipeline processing is enabled by synchronizing the operation of the latch signal generator 435, shift operation units 433a-433d, latch circuits 432a-432d, and output selectors 431a-431d to the clock signal 291. In addition, the latch enable/disable state, shift amount, and selection of input buses are controlled by the data signal 215b from the program control unit 214. It is to be noted that the present embodiment is described as controlling the selection of four output buses and four input buses, but any number of buses may be used and the invention is not limited to only four buses. Figs. 4 and 5 are block diagrams of the dynamic allocation control unit 216 and the program control unit with dynamic allocation 214, respectively, in the memory bus configuration control processor 211. Referring to Fig. 4, data used to output different allocation signals 217 according to the video signal processing procedure (e.g., during display periods and during the fly-back period) are input to the dynamic allocation control unit 216 from an external source by means of the program load bus 292 and stored to RAM 652. By inputting to the RAM 652 a value counted by a counter 651 that counts the synchronization signal 290 and the clock signal 291, the allocation signal 217 can be changed for output to the program control unit with dynamic allocation 214. Referring to Fig. 5, the program control unit with dynamic allocation 214 stores to the program RAM 645 the multiplexing and demultiplexing formats which differ according to the video signal processing procedure, stores to the four start-address registers 643 the values of the starting address from which to fetch commands from the program RAM according to the different video signal processing procedures, and stores to the four loop step registers 641 the number of program steps to be executed in a loop according to the different video signal processing procedures; each of these stored values is loaded from an external source via the program load bus 292. The loop counter 642 is incremented by the clock signal 291, and by clearing the count when the count becomes the same as one of the numbers of program steps stored in the loop step register 641 selected by the selector 648 according to the allocation signal 217, the clock signal count is repeated and the counted value is outputted as the loop address value. The command address, which is the sum obtained from the loop address value and the one start-address value selected by the selector 649 according to the allocation signal 217 added by the address adder 644, is then input to the program RAM 645 to fetch the command for one step from within the looped range of the program according to the differing video signal processing procedures, which is then latched by the program latch circuit 646. Immediately thereafter the command is decoded by the decoder 647, and the multiplexing unit and demultiplexing unit are thus set by the data signals 215a and 215b. Pipeline processing is enabled by synchronizing the operation of the loop counter 642, address adder 644, program latch circuit 646, decoder 647, selector 648, and selector 649 to the clock signal 291. It is to be noted that the present embodiment is described with dynamically allocated selection from four start-address registers and four loop step registers, but any number of registers may be used and the invention is not limited to only four. Fig. 6 is a timing chart of the multiplexing/demultiplexing sequence. The clock signal, which is the reference signal for the sequence, is phase synchronized to the horizontal synchronization signal of the synchronization signal. One cycle (= 1 horizontal line) of the horizontal synchronization signal is hereinafter referred to as 1H, and one cycle of the clock signal as 1CLK. Fig. 6, block A shows, by way of example, the multiplexing/demultiplexing sequence for which the same delay (e.g., 1H) is required for data 1 through data 4 outputted to the output buses 251-254 of the processor elements. For these four output buses the transfer rate is 1/2 rate (2CLK) for data 1 and data 4, and 1/4 rate (4CLK) for data 2 and data 3. The effective data bit width for all four data is 16 bits of the 16-bit data width. The transfer rate of the memory bus is 1 rate (1CLK), and the bit width is 16 bits. Dynamic allocation program control changes the allocation according to the sequence shown in Fig. 6, block B to change the range looped through in the program. In this example the four step loop is changed from (S1-S4) to (S5-S8). Thus, the multiplexing/demultiplexing format before and after the allocation change is switched. It is to be noted that the blocks marked by slash lines in the figure are those made invalid by the allocation change. The multiplexing sequence is shown in Fig. 6, block C. The multiplexing combinations are data 2 through data 4 when data 1 is not outputted, and is changed to data 1 through data 3 by changing the allocation when data 1 is outputted and output of data 4 stops. As a result of time-division multiplexing of this combination, the data transferred to the memory input bus 292 is as shown in Fig. 6, block D. The demultiplexing sequence is shown in Fig. 6, block F. The multiplexed data (shown in Fig. 6, block E) delayed 1H-4CLK by the memory and sequentially outputted to the memory output bus 293 is latched each cycle for time-division demultiplexing. As a result, the data transferred to the four input buses 261, 262, 263, and 264 becomes as shown in Fig. 6, block G. The contents of the multiplexing unit 212 being processed at this time are shown in Figs. 7a and 7b. As shown in Fig. 7a, in the multiplexing process for data 1-3, the operations in the input selectors 421a-421c and registers 423a-423c are first carried out in step 1 (S1). Then, bit multiplexing is applied by sequential operation of the shift operation units 424a-424c, mask operation units 425a-425c, and the OR operation unit 426. As shown in Fig. 7b, in the multiplexing process for data 4 and 5, first, the operations in the input selector 421a-421b and register 423a-423b are carried out in step 2 (S2). Then, bit multiplexing is applied by sequential operation of the shift operation units 424a-424b, mask operation units 425a-425b, and the OR operation unit 426. In addition, because these two bit-multiplexed data are outputted at different clock cycles, time-division multiplexing is applied and transfer of the multiplexed data is possible. The contents of the demultiplexing process performed by the demultiplexing unit213 are shown in Figs. 8a and 8b. As shown in Fig. 8a, in the demultiplexing process applied to data 1-3, the data is processed by registers 434a-434c at step 1 (S1), after which it is demultiplexed by sequential operation of the shift operation units 433a-433c, latch circuits 432a-432c, and output selectors 431a-431c. As shown in Fig. 8b, in the demultiplexing of data 4 and 5, the data is processed by registers 434a-434b at step 2 (S2), after which it is demultiplexed by sequential operation of the shift operation units 424a-424b, latch circuits 432a-432b, and output selectors 431a-431b. While bit demultiplexing is not applied here, the bit position is moved and it is therefore possible to transfer the demultiplexed data to the input bus of each processor element. Thus, a control processor for memory bus configuration according to the present embodiment can reduce the number of memory buses and make possible a single-chip LSI parallel computer by dynamic allocation of data combinations for data multiplexing control when the combinations of multiplexing data outputted to the processor element output buses differ according to the video signal processing procedure (e.g., processing during display periods and processing during the fly-back period).

Claims: A control processor inserted between a plurality of processor elements (221-224, 231-234), each having a first bus (261-268) and a second bus (251-258), and a memory (290) having a first memory bus (292) and a second memory bus (293), for controlling memory bus configuration, said control processor (211) comprising: a multiplexing unit (212) connected to the second buses (251-258) of plurality of processor elements and to the first memory bus (292) of the memory and for converting data on the second buses (251-258) to multiplexed data by a multiplexing process for transfer to the first memory bus (292); a demultiplexing unit (213) connected to the first buses (261-268) of plurality of processor elements and to the second memory bus (293) of the memory (290) and for converting the multiplexed data on the second memory bus (293) to demultiplexed data by a demultiplexing process for transfer to the first buses (261-268); and a program control unit (214) connected to the multiplexing unit (212) and the demultiplexing unit (213) and for controlling the transfer of multiplexing format data to the multiplexing unit (212) and demultiplexing format data to the demultiplexing unit (213) by execution of a control program; characterized in that said first buses are input buses (261-268), said second buses are output buses (251-258), said first memory bus is a memory input bus (292), and said second memory bus is a memory output bus (293); a dynamic allocation control unit (216) is provided for generating an allocation signal from a counted value of a synchronization signal and a clock signal; and said program control unit (214) is a program control unit with dynamic allocation which is further connected to the dynamic allocation control unit (216) to change the multiplexing format data transferred to the multiplexing unit (212) and the demultiplexing format data transferred to the demultiplexing unit (213) by means of the allocation signal input from the dynamic allocation control unit (216). The control processor according to Claim 1, wherein the dynamic allocation control unit (216) comprises: a counter (651) for counting the synchronization signal and the clock signal, and for outputting the counted value; a program load bus (292) for inputting the program from an external source; and a RAM (652) connected to the counter (651) and program load bus (292) for storing data input from the program load bus (292) with related synchronization timing and dynamic allocation signal generating timing, and outputting the dynamic allocation signal by means of the count value input from the counter (651). The control processor according to Claim 1, wherein the program control unit (214) with dynamic allocation comprises: a program load bus (292) to input the program and program control data from an external source; a plurality of start-address registers (643) connected to the program load bus (292) for storing plural start-address values input as the starting address for command execution; a start-address selector (649) connected to the plural start-address registers (643) and to the dynamic allocation control unit (216) for selecting and outputting one start-address value from the plural start-address values according to the allocation signal; a plurality of loop-step registers (641) connected to the program load bus (292) for storing the plural numbers of program steps input as the number of commands to be executed in a loop in the program; a loop-step selector (648) connected to the plural loop-step registers (641) and to the dynamic allocation control unit (216) for selecting and outputting one number of program steps from among the plural numbers of program steps according to the allocation signal; a loop counter (642) connected to the loop-step selector (648) for counting repeatedly a clock signal by clearing the counted value each time the counted number of clock signals becomes the same as the input number of program steps, and for outputting the counted value as the loop address; an address adder (644) connected to the start-address selector (649) and loop counter (642) for adding the start-address value and the loop address value, and for outputting the result as the command address, a program RAM (645) connected to the address adder (644) and the program load bus (292) for storing the program input from the program load bus (292) and fetched commands by the command address input from the address adder (644); a program latch circuit (646) connected to the program RAM (645) to latch the command output; and a decoder (647) connected to the program latch circuit (646) for decoding commands, transferring multiplexing format data to the multiplexing unit (212), and transferring demultiplexing format data to the demultiplexing unit (213). The control processor according to anyone of the Claims 1 to 3, wherein said multiplexing unit (212) comprises: a plurality of input selectors (421) connected to the output buses (251-258) of plural processor elements (212-224,231-234) to select output buses according to multiplexing format data from the program control unit (214); a plurality of registers (423) connected discretely to the plurality of input selectors (421) for storing the data on the selected output bus at a discrete latch timing; a plurality of shift operation units (424) connected discretely to the plural registers (423) to shift the stored data according to the multiplexing format data from the program control unit (214); a plurality of mask operation units (425) connected discretely to the plural shift operation units (424) for masking the output data from the shift operation units (424) according to the multiplexing format data from the program control unit (214); an OR operation unit (426) connected to the plural mask operation units (425) for applying an OR operation to the output data from the mask operation units (425) and for outputting the result to the memory input bus (292) of the memory (290); and a latch signal generator (422) connected to the plural registers (423) for generating and outputting a latch timing signal according to the multiplexing format data from the program control unit (214), whereby a time-division multiplexing, a bit multiplexing, or a multiplexing which is a combination of these is applied to the data on the output buses (251-258). The control processor according to anyone of the Claims 1 to 4, wherein said demultiplexing unit (213) comprising: a plurality of registers (434) connected to the memory output bus (293) of the memory (290) for storing the data on the memory output bus (293) at a discrete latch timing; a plurality of shift operation units (433) connected discretely to the plural registers (434) for shifting the stored data according to the demultiplexing format data from the program control unit (214); a plurality of latch circuits (432) connected discretely to the plural shift operation units (433) for matching the output timing of the shift operation unit output data; a plurality of output selectors (431) connected to the plural latch circuits (432) for selecting as the output destination of the latch circuit (432) the input bus selected from the input buses (261-268) of plural processor elements (221-224,231-234); and a latch signal generator (435) connected to the plural registers (434) for generating and outputting a latch timing signal according to the demultiplexing format data from the program control unit (214), whereby a time-division demultiplexing, a bit demultiplexing, or a demultiplexing which is a combination of these is applied to the data on the memory output bus (293).

Inventors: KUBOTA MASASHI, NAKAI SEIJI, KUBOTA, MASASHI, NAKAI, SEIJI
Applicants: MATSUSHITA ELECTRIC IND CO LTD, MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD.
Application year: 1991
Main classification: G06F13
IPC codes: G06F15, G06F13