Data processing system with cyclic data buffering, selecting means for selecting memory addresses, suitable for use in such a system

Abstract: The invention relates to a data processing system, comprising a memory for buffering sequential data units for the duration of cyclically recurrent delay lengths. Selecting means are provided for generating per memory location a periodic sequence of time slots having lengths that correspond to the delay lengths. Each time slot starts with a write phase for the relevant data unit and ends in a read phase, during which the relevant data unit is read out for the last time. The period of the sequence includes a permutation of the time slots corresponding with the cyclically recurrent delay lengths. The permutation is chosen such that the read phase of a preceding time slot is followed by the next possible write phase of a further time slot. In this respect the mutual shift between sequences at consecutive memory locations is one cycle and the period is equal to the sum of the mutual shifts. So doing an efficient memory implementation is realised with considerably less hardware than is required for a data processing system in accordance with the state-of-the-art technology.

Description: The invention relates to a data processing system comprising a memory for buffering sequential data units for the duration of cyclically recurrent delay lengths. The invention likewise relates to selecting means for generating a periodic sequence of time slots having lengths corresponding with the delay lengths for each one of at least two memory locations, suitable for use in such a system. A data processing system of the type mentioned in the opening paragraph is known from "Efficient Code Generation for Horizontal Architectures: Compiler Techniques and Architectural Support", by Rau et al., 9 th Annual Symposium on Computer Architecture, Austin, 1982, pp. 131-139. This literature also extensively discusses a field of application namely parallel and iterative data processing. In this kind of data processing new streams are created from various parallel streams of sequential data units. Before allowing the data units of the new streams to undergo processes again, these data units are to be delayed with respect to one another in order to be in a position to combine them with one another at the proper instant and in the proper manner. Since the series of operations is repeated cyclically, the delay of data units is effected by means of a temporary storage in a memory for the duration of cyclically recurrent delay times. Buffering the data units in the prior-art data processing system is effected with the aid of compacting means. These compacting means provide that, if so desired, after a data unit has been read out from one of the memory locations, the remaining stored data units can be rearranged over logically linked memory locations. When a new data unit is written, it is written into an unoccupied memory location having an address which is as near as possible to an address of the occupied memory locations. This rearranging of the data units, as well as the updating of the address of the nearest unoccupied memory location leads to an efficient use of the available memory locations, admittedly, but requires a considerable amount of hardware. Therefore, it is an object of the invention to provide a data processing system in which the available memory locations are utilized substantially as efficiently as done according to the state of the art while utilizing less hardware. For this purpose, a data processing system according to the invention is characterized in that selecting means are provided for generating, for each one of at least two memory locations, a periodic sequence of time slots having lengths corresponding to the delay lengths, each time slot for a memory location beginning with a write phase for the relevant data unit and ending in a read phase, in which read phase the relevant data unit is read for the last time, and in which sequence a sequence period includes a permutation of the time slots whose lengths correspond to the cyclically recurrent delay lengths, in which permutation the read phase of the preceding time slot is followed by a next-sequentially possible write phase of a further time slot, and a mutual shift between the sequences at consecutive memory locations amounts to a single cycle, and the period is equal to a sum of the mutual shifts. A data occupation attained thus with the selecting means provides an efficient utilization of memory locations without rearrangements and without the hardware required for the rearrangements. No larger number of memory locations are required than the number of consecutive cycles in which the period of the sequence of time slots can be fitted. The period itself contains a permutation of time slots organised according to a first-fit algorithm, which time slots correspond with the delay lengths assigned per cycle. As a result of the mutual shift between the various occupied memory locations the joint memory locations have a time slot occupation per cycle which corresponds with the time slot occupation of the period. An embodiment of a data processing system according to the invention is characterized, in that the selecting means include reference means for generating a next reference value at the start of each next cycle of delay lengths, a sequence of reference values being recurrent with a period of the sequence of time slots, and also include first and second combining means respectively, for generating for the memory read and write addresses respectively, by means of linearly combining cyclically recurrent first and second increments respectively, with a current reference value. The read and write addresses are determined per cycle, relative to the reference value. Since the reference value leaps at the start of a next cycle, the read and write addresses will leap as well relative to those from the previous cycle. After the number of cycles, covering a period, the read and write addresses will repeat again. A further embodiment of a data processing system according to the invention is characterized in that the reference means include a modulo counter whose count represents the current reference value. This provides a simple manner to produce periodic reference values. A still further embodiment of a data processing system according to the invention is characterized in that a leap between sequential reference values is adjustable and also the said increments are adjustable. The adjustability of the reference value and the increments renders the system suitable for use in more than one application. Another embodiment of a data processing system according to the invention is characterized in that the selecting means include third and fourth combining means respectively, for consecutively generating first and second addresses for the memory, respectively, by consecutively linearly combining a cyclically recurrent third and fourth increment respectively, with a preceding first address, the first address respectively, the first and the second addresses being either the write addresses and the read addresses or the read addresses and the write addresses. With a suitable choice of the increments to be fed to the combining means, this arrangement saves a modulo counter when compared to one of the embodiments mentioned hereinbefore. The invention will be illustrated with reference to a drawing Figure in which: Fig. 1 shows a block diagram of a data processing system of the above type, Fig. 2 shows an example of the way in which data occupation is created on memory locations in the prior art data processing system, Fig. 3 shows an example of the way in which data occupation is created on memory locations in a data processing system according to the invention, Fig. 4 shows a first implementation of a memory having selecting means in a data processing system according to the invention, and Fig. 5 shows a second implementation of a memory having selecting means in a data processing system according to the invention. Fig. 1 shows in a block diagram an example of a data processing system of the aforementioned type. The example shows a data processing element 10 having data outputs 11 and 12 which are linked via data output lines 13 and 14 and data input lines 15 and 16 to data inputs 17 and 18. The link is provided by an interconnecting network 19 in which junction elements 20, 21, 22 and 23 are provided at the junctions of a data output line and a data input line. These junction elements are instrumental in distributing data units from the various streams fed via output lines 13 and 14 over the input lines before the data are subjected to a new process in element 10. In order to combine data units that are not simultaneously available on the data output lines, the junction elements comprise memory locations for buffering data units for the duration of predetermined periods of time. Because the data units are subjected to a cyclic sequence of processes, these periods of time are also cyclically recurrent. Fig. 2 shows an example of the way in which data occupation is created of memory locations of the prior art data processing system. In a five-phase cycle, having the phases 0, 1, 2, 3 and 4, data units are buffered at memory locations having addresses 0, 1, 2 and 3. The phases (ph) are plotted horizontally, the addresses of the memory locations (ma) vertically. In phases 0, 1, 3 and 4 of a cycle, data units are written which are buffered for the duration of 6, 1, 2 and 5 phases, respectively. Reading out these data units is then effected in phase 1 of the next cycle, phase 2 of the same cycle, phase 0 of the next cycle and phase 4 of the next cycle. The data units having write phases 0, 1 and 4 are all written in the memory location having the address 3. The data unit of the write phase 3 is written in memory location 2. As soon as a memory location of a lower address falls vacant, the data units at memory locations of a higher address are transferred to this lower address. Admittedly, this will lead to an efficient use of the available memory locations, but on the other hand requires a considerable amount of logic for monitoring the logically nearest unoccupied memory location and for rearranging the data units among the memory locations. Fig. 3 shows an example of the way in which data occupation is created on memory locations in a data processing system in accordance with the invention. The cycle which was used for the previous Figure is used here too. Now, a data occupation per memory location is attained which is periodic and has a period of four cycles in each one of the time slots, which time slots correspond to the dedicated delay lengths per cycle. Memory location 0 is occupied by a first data unit for 6 consecutive phases. After this memory location is read, the next, second data unit is written into the same memory location with a write phase which is the earliest in succession to the read phase of the first data unit and of which a delay length has not yet been included in the said period. This will then be the data unit having write phase 3 and read phase 0 of a next cycle. The same selection criteria apply for the data units having write phases 1 and 4. The illustrated time slot permutation will realise the shortest period length. Corresponding data occupations are realised at memory locations 1, 2 and 3. The data occcupations at the memory locations are shifted relative to one another by one cycle. The data occupation provided in this example requires as many memory locations as the data occupation which was discussed with reference to Fig. 2, but requires considerably less hardware because rearrangements of the data units over the memory locations are avoided. For clarity, the above examples are restricted to cycles of four different delay lengths. The advantages of a data processing system according to the invention already present themselves as being non-trivial when, in one cycle, three data units are buffered and are evident when, in one cycle, a large number (for example: twenty) of data units are buffered. Fig. 4 represents a first implementation of a memory having selecting means in a data processing system in accordance with the invention. A memory 30 is shown having memory locations for buffering sequential data units. The incoming data stream is designated by reference numeral 32, the outgoing data stream by reference numeral 34. Through input 36, 38 respectively, write addresses and read addresses, respectively, of the memory are addressed. The periodicity per memory location and the mutual shift in the sequences are realised by a modulo counter 40 whose contents leaps per cycle by a predetermined value, induced by a trigger pulse on input terminal 42 preceding a next cycle. Thereto, for each cycle a fixed leap value is added to the current count. An output signal at output terminal 46 then represents a reference value leaping by a fixed step per cycle. This reference value is fed to adding circuits 48 and 50. Adding circuit 48 receives the cyclic first increments and adding circuit 50 to the cyclic second increments via terminals 52 and 54, respectively. These circuits furnish the current write address and the actual read address of a memory location in memory 30 by adding said increments to the current reference value. It will be readily understood that a modulo counter having the counts 0, 1, 2 and 3 is suitable for the example discussed with reference to Fig. 3, while per cycle a fixed step equal to the number one is subtracted from the current count value representing the current reference value. Fig. 5 represents a second implementation of a memory having selecting means in a data processing system in accordance with the invention. The elements corresponding with those in Fig. 4 are designated by the same reference numerals. The selecting means now include a first and a second adding circuit 60 and 62 respectively, as well as a memory element 64 which is inserted between the output 66 and the first input 68 of adding circuit 60. The second input 70 of adding circuit 60 receives sequential, cyclically recurrent third increments. The current third increment is added to the content of the memory element 64. The sum represents the next write address. The sum is also applied to a first input of the second adding circuit 62, to a second input 72 of which sequential, cyclically recurrent fourth increments are applied. The sum furnished by the second adding circuit then represents the next read address. The selecting means, parts of which are represented in Figs. 4 and 5, may be restricted to embodiments in which each time no more than one single address is applied to the memory. However, means will then be provided indeed for establishing whether the address provided is a read address or a write address. The disadvantage that reading and writing are mutually exclusive per operation, during which the address is provided, will then be offset by the advantage that a relatively low-speed memory can be used.

Claims: A data processing system comprising a memory (30) for buffering sequential data units for the duration of cyclically recurrent delay lengths, characterized in that selecting means (40, 48, 50) are provided for generating, for each one of at least two memory locations, a periodic sequence of time slots having lengths corresponding to the delay lengths, each time slot for a memory location beginning with a write phase for the relevant data unit and ending in a read phase, in which read phase the relevant data unit is read for the last time, and in which sequence a sequence period includes a permutation of the time slots that correspond to the cyclically recurrent delay lengths, in which permutation the read phase of the preceding time slot is followed by a next-sequentially possible write phase of a further time slot, and a mutual shift between the sequences of consecutive memory locations amounts to a single cycle, and the period is equal to a sum of the mutual shifts. A data processing system as claimed in Claim 1, characterized in that the selecting means (40, 48, 50) include reference means for generating a next reference value at the start of each next cycle of delay lengths, a sequence of reference values being recurrent with a period of the sequence of time slots, and also include first (48) and second (50) combining means respectively, for generating for the memory read and write addresses respectively, by linearly combining cyclically recurrent first and second increments respectively, with a current reference value. A data processing system as claimed in Claim 2, characterized in that the reference means include a modulo counter (40) whose count represents the current reference value. A data processing system as claimed in Claim 2 or 3, characterized in that a leap between sequential reference values is adjustable. A data processing system as claimed in Claim 1 characterized in that the selecting means include third (60) and fourth (62) combining means respectively, for consecutively generating first and second addresses for the memory, respectively, by consecutively linearly combining a cyclically recurrent third and fourth increment respectively, with a preceding first address and the first address respectively, the first and the second addresses being either the write addresses and the read addresses or the read addresses and the write addresses. A data processing system as claimed in Claim 5, characterized in that of the third combining means (60) a first input receives the third increment and an output is fed back to a second input via a memory element (64), a first input of the fourth combining means (62) receiving the fourth increment and a second input being connected to the output of the third combining means (60). A data processing system as claimed in Claim 2, 3, 4, 5 or 6, characterized in that various streams of sequential data units can be applied to the memory (30), various pairs of the said combining means being provided for the purpose of (buffering) these streams and respective pairs of further streams of the said cyclically recurrent increments can be applied to each one of the pairs of the combining means. A data processing system as claimed in Claim 6, characterized in that in addition to a first stream of sequential data units further streams of sequential data units can be applied to the memory (30), for the purpose of (buffering) these further streams, the selecting means including further pairs of further combining means, the relevant second two inputs of these further combining means being connected to the output of the third combining means (60) and the relevant first inputs receiving further, cyclically recurrent increments. A data processing system as claimed in one of the Claims 2 to 8, characterized in that the said increments are adjustable. Selecting means suitable for use in a data processing system comprising a memory (30) for buffering sequential data units for the duration of cyclically recurrent delay lengths, characterized in that said selecting means (40, 48, 50) are provided for generating, for each one of at least two memory locations, a periodic sequence of time slots having lengths corresponding to the delay lengths, each time slot for a memory location beginning with a write phase for the relevant data unit and ending in a read phase, in which read phase the relevant data unit is read for the last time, and in which sequence a sequence period includes a permutation of the time slots that correspond to the cyclically recurrent delay lengths, in which permutation the read phase of the preceding time slot is followed by a next-sequentially possible write phase of a further time slot, and a mutual shift between the sequences of consecutive memory locations amounts to a single cycle, and the period is equal to a sum of the mutual shifts. Selecting means as claimed in claim 10, characterized in that the selecting means (40, 48, 50) include reference means for generating a next reference value at the start of each next cycle of delay lengths, a sequence of reference values being recurrent with a period of the sequence of time slots, and also include first (48) and second (50) combining means respectively, for generating for the memory read and write addresses respectively, by linearly combining cyclically recurrent first and second increments respectively, with a current reference value.

Inventors: DIJKSTRA HENDRIK, HUIZER CORNELIS MARINUS, SLUIJTER ROBERT JOHANNES, DIJKSTRA, HENDRIK, HUIZER, CORNELIS MARINUS, SLUIJTER, ROBERT JOHANNES
Applicants: PHILIPS NV, N.V. PHILIPS' GLOEILAMPENFABRIEKEN
Application year: 1989
Main classification: G06F7
IPC codes: G06F5, G06F7, G11C19, G06F12