Elastic buffer

Abstract: Communication of digital information between digital systems (2, 3) comprising clock generators (8, 9) is effected via storage in memory locations a1 to a8 and b1 to b8 of a cyclic buffer 4, in which, in succession, the information is written and read on a time base determined by the various clock generators (8, 9). Pointers stored in pointers (12, 13) determine the memory locations to be read out or written. If the pointers have become equal as a result of phase deviations of the clock generators (8, 9), this is detected by an address distance monitoring means (14) and made unequal and set to a maximum difference value relative to each other. The difference value amounts to half the number of memory locations n in a row of the buffer 4. For full duplex transmission the buffer 4 preferably comprises a double row of memory locations a1-an and b1-bn respectively.

Description: The invention relates to a data communication system comprising at least two digital systems and a buffer for temporary storage of digital information in memory locations having n cyclically successive addresses, which information is transmitted between the digital systems coupled to each other through the buffer, which systems comprise each a clock generator, there being provided addressing units associated to each of the systems, comprising each an address counter, which addressing units are used for addressing while the information is being written in the memory locations of the buffer on a first time base determined by the clock generator of one of said systems and for addressing while the information is being read out on a second time base determined by the clock generator of another of said systems, which second time base substantially corresponds to the first time base. The invention further relates to a buffer for temporary storage of digital information in memory locations having n cyclically successive addresses, which buffer comprises at least two addressing units, the addressing units comprising each an address counter, which addressing units are used for addressing while the information is being written in the memory locations of the buffer on a first time base and for addressing while the information is being read out on a second time base, which second time base substantially corresponds to the first time base. Such a data communication system is known from French Patent Application FR 2 583 238. The disadvantage of the prior-art data communication system is that the transmission efficiency, which is expressed in terms of amounts of effectively transmitted information, of the buffer is too low. It is an object of the invention to optimize the transmission efficiency of the buffer. For this purpose, the data communication system according to the invention is characterized in that the buffer comprises two rows of cyclically numbered memory locations and the buffer includes a control circuit coupled to the addressing units, which control circuit is arranged in such a manner that during the addressing operation a first of said systems writes information in a memory location in a first of said rows and reads information from the corresponding memory location in a second of said rows, whereas a second of said systems reads the information from the memory location in the first of said rows and writes the information in the corresponding memory location in the second of said rows. If each of the two systems reads and writes substantially simultaneously during the addressing operation of the thus arranged dual buffer, the transmission efficiency is further improved. Communication between the digital systems may then be effected in the full duplex mode. Data communication between systems comprising each their own clock generator poses specific requirements to the control logic in suchlike systems, however, because there is usually frequency or phase inequality between the clock signal of the transmitting system and that of the receiving system. In certain circumstances the frequencies may deviate to such an extent that the address counts (pointers) on the basis of which the addressing is performed when information is written or read out, become equal, which would cause information at a specific memory location to be written and read out simultaneously. In that case the transmitted information is mutilated, which is usually designated bit slip. If this situation is detected by the address distance monitoring means, the address counts also designated pointers are set apart, that is to say, rendered different relative to each other, which necessitates a renewed transmission of information transmitted previously. In an embodiment for the data communication system the buffer comprises an address distance monitoring means connected to the addressing units for creating a difference between the address counts (pointers) of the address counters when equality between the address counts (pointers) of the address counters is detected, which address distance monitoring means is arranged in such a way that the distance between the pointers of the address counters is made equal to n:2. A pointer difference of n:2 maximizes the mutual distance between the pointers controlled by the relevant clock generators, so that the chance of the pointers addressing the same memory location at any one moment is minimized. This minimizes the number of necessary retransmissions in which the same information is to be retransmitted for obtaining a reliable information transmission and optimizes the transmission efficiency. In this manner the control protocols with which a retransmission of bit, byte or frame-structured information is provided with the aid of check bits and control bits are thus resorted to for shorter time intervals. The gain of time leads to a further improvement of the amount of effectively transmitted information. By influencing, according to a further embodiment of the data communication system, the pointers of the address counters in such a way that one of the pointers is brought back to a fixed initial position in the buffer after the address distance monitoring means has detected equality, a simplified retransmission is effected in the cases where the byte synchronisation is lost during information transmission between the digital systems. The invention will also be further explained with reference to the annexed drawing. In the drawing the Figure shows a preferred embodiment of a communication system and a buffer according to the invention. The drawing Figure shows a communication system 1 comprising two digital systems 2 and 3 coupled through a buffer 4. The systems 2 and 3 are connected to the respective lines 5 and 6 and connected to the storage area 7 of the buffer 4. Data communication between the systems 2 and 3 is effected in that, for example, information originating from system 2 is written in the storage area 7 and after being read out is made available to a system 3 over line 6. Self-evidently, the reverse is also possible, in which case system 3 transmits the data to system 2. In a specific embodiment to be described hereinafter, the writing and reading of information in the memory area 7 may even be performed simultaneously by the two systems 2 and 3. The communication between the two systems 2 and 3 is effected in synchronism, which is to say, communication is effected under the control of a clock signal. This clock signal is generated by clock generators 8 and 9 included in each of the systems 2 and 3. The clock generators 8 and 9 produce the time base signals in response to which synchronous data communication takes place. This communication does not take place, however, in the manner in which either time base dominates the other. Each of the systems 2 and 3 retains its autonomous time base derived from the relevant output signal of the clock generator 8 or 9 to address the storage area 7. The storage area 7 comprises, for example, one or two rows of memory locations a1 to an and b1 to bn respectively. First the case will be described where the buffer 4 comprises a single row of memory locations a1 to an. The drawing Figure diagrammatically shows the case where n=8. Addressing units 10 and 11 shown in the buffer 4 comprise address counters 12 and 13 in which address values are stored in the form of pointers for addressing the memory locations. Over the lines 5 and 6 the systems 2 and 3 provide information in the form of check and control signals influencing the pointers of the address counters 12 and 13 in the buffer 4. Furthermore, a clock signal is generated by each of the clock generators 8 and 9 and added to the information to be transmitted, from which the pointers can be derived. This clock signal may be transmitted by the systems 2 and 3 over a separate line in tandem with the information data portion to be transmitted, but, alternatively, it is possible that the clock information is included in the coding of the data to be transmitted. In the latter case the clock information can be recovered by regenerating the transmitted data. Assuming that system 2 wishes to transmit data to system 3, the actual data transmission will be effected bit-by-bit, generally under the control of a suitable protocol. The information transmitted bit-by-bit over line 5 is written in a memory location, for example, a7, for which case the value of 7 will be stored in the address counter 12. The buffer 4 is a cyclic memory and structured as a ring memory. Once the information has been written in memory location a7, the address counter 12 is incremented in response to the clock signal received from system 2, after which memory location a8 is filled with information conveyed over line 5. This process will be continued while, for example, memory location a3 can be read out simultaneously. In that case the address counter 13 stores the value of 3. When the information at memory location a3 is read out, the information is made available to line 6 and is thus received by system 3. In this fashion the information previously written in memory location a3 by the system 2 is received in system 3 after some time. On the other hand, if system 3 wishes to transmit information to system 2, the operation of the system is similar, with the addressing of the relevant memory location of the transmitting system 3 being effected by means of the pointers stored in the address counter 13 and the addressing of the memory location of system 2 is effected by means of the pointers of address counter 12. As long as reading and writing operations are performed with the aid of pointers at places which do not overlap, the information transmission will be unaffected. However, in the case of frequency oscillations, for example, occurring as a result of temperature variations or the like, there will be differences between the read and write speeds and the mutual speeds with which the pointers are changed will no longer be substantially equal. In that case it may happen that information is written in a memory location and that from the same location information should be read out. This situation is monitored by means of an address distance monitoring means 14 connected to the addressing units 10 and 11. The moment equality between the pointers of the address counters 12 and 13 is detected by this monitoring means, the pointers are influenced so that a difference between them is created. For the detailed explanation of the operation and arrangement of above-described system 1 reference be made to European Patent Application 0 161 034. If the memory location at which the collision between the writing and reading of information is designated p c , and the number of memory locations of memory area 7 is designated n, the difference between the pointers of the address counters 12 and 13 after equality is detected is to become such that (p c ± n/2) ≧ 1 and ≤ n so that a maximum transmission efficiency under prevailing circumstances is obtained, and in which this expression is to become the new pointer of at least one of the two address counters 12,13. For example, if collision occurs at memory location 6, and n=8, the new pointer becomes equal to 2, so that the pointers end up a maximum distance apart. The chance that in such a case phase deviations between the clock signals of the clock generators 8 and 9 will lead to a collision is then minimized. This will also minimize the chance of mutilation of transmitted information and the same holds for the necessity of initiating a retransmission of previously transmitted, but mutilated information after collision. It will be evident that such a retransmission, controlled by a suitable control protocol for which retransmission check and control signals are to be transmitted and for which also previously transmitted information is to be retransmitted, adversely affects the transmission efficiency. When collision is detected in practice, the pointers of the address counters 12 and 13 are adjusted to 0 and n/2, respectively. In a second embodiment the storage area 7 of the buffer 4 comprises two aforedescribed rows a and b having cyclically numbered memory locations a1 to an and b1 to bn. In one row, for example row a, information of, for example, system 2 is written in, for example, memory location a7, while information is read out from the corresponding location b7. In that case memory location 3 will be addressed by addressing unit 11 comprising address counter 13, while information is read out from memory location a3 and a few instants later information originating from system 3 is written in memory location b3. In this fashion the transmission capacity of the buffer 3 is doubled. The control logic necessary for this purpose is accommodated in a control circuit 15 connected to the two addressing units 10 and 11. In view of the control logic arrangement described in aforementioned European Patent Application 0 161 034, which logic is necessary for information transmission by means of single-row memory locations, the arrangement of the control circuit 15 which includes the logic necessary for controlling the second row of memory locations present is deemed to be known to the expert. If the pointers of the address counters 12 and 13 are changed in such a way that one of them is reset to a fixed initial position, for example, 1 in the present case once they have been differentiated after collision, it will be possible to restore the byte synchronisation in a simpler manner if the byte synchronisation in the data control protocol has been lost, because the restoration of lost byte synchronisation necessitates bringing back the relevant read and write pointers to fixed initial positions. LEGEND: data communication system 1 digital systems 2, 3 buffer 4 lines 5, 6 storage area 7 clock generators 8, 9 addressing units 10, 11 address counters 12, 13 address distance monitoring means 14 control circuit 15

Claims: Data communication system (1) comprising at least two digital systems (2,3) and a buffer (4) for temporary storage of digital information in memory locations having n cyclically successive addresses, which information is transmitted between the digital systems (2,3) coupled to each other through the buffer (4), which systems (2,3) comprise each a clock generator (8,9), there being provided addressing units (10,11) associated to each of the systems (2,3), comprising each an address counter (12,13), which addressing units (10,11) are used for addressing while the information is being written in the memory locations of the buffer (4) on a first time base determined by the clock generator (8,9) of one of said systems (2,3) and for addressing while the information is being read out on a second time base determined by the clock generator (8,9) of another of said systems (2,3), which second time base substantially corresponds to the first time base, characterized in that the buffer (4) comprises two rows of cyclically numbered memory locations (a1..a8,b1..b8) and the buffer (4) includes a control circuit (15) coupled to the addressing units (10,11), which control circuit (15) is arranged in such a manner that during the addressing operation a first of said systems (2,3) writes information in a memory location in a first of said rows (a1..a8,b1..b8) and reads information from the corresponding memory location in a second of said rows (a1..a8,b1..b8), whereas a second of said systems (2,3) reads the information from the memory location in the first of said rows (a1..a8,b1..b8) and writes the information in the corresponding memory location in the second of said rows (a1.,a8,b1..b8). Data communication system (1) as claimed in Claim 1, characterized in that it comprises an address distance monitoring means (14) connected to the addressing units (10,11) for creating a difference between the address counts, hereinafter referred to as pointers of the address counters (12,13) when equality between the pointers of the address counters (12,13) is detected, which address distance monitoring means (14) is arranged in such a way that the distance between the pointers of the address counters (12,13) is made equal to n:2. Data communication system (1) as claimed in Claim 2, characterized in that the pointers of the address counters (12,13) are influenced in such a way that one of the pointers is set to a fixed initial position in the buffer (4) after the address distance monitoring means (14) has detected equality. Buffer (4) for temporary storage of digital information in memory locations having n cyclically successive addresses, which buffer (4) comprises at least two addressing units (10,11), the addressing units (10,11) comprising each an address counter (12,13), which addressing units (10,11) are used for addressing while the information is being written in the memory locations of the buffer (4) on a first time base and for addressing while the information is being read out on a second time base, which second time base substantially corresponds to the first time base, characterized in that the buffer (4) comprises two rows of cyclically numbered memory locations (al..a8,bl..b8) and the buffer (4) includes a control circuit (15) coupled to the addressing units (10,11), which control circuit (15) is arranged in such a manner that during the addressing operation information is written in a memory location in a first of said rows (a1..a8,b1..b8) and information is read from the corresponding memory location in a second of said rows (a1..a8,b1..b8), whereas the information is read from the memory location in the first of said rows (a1..a8,b1..b8) and the information is written in the corresponding memory location in the second of said rows (a1..a8,b1..b8). Buffer (4) as claimed in Claim 4, characterized in that it comprises an address distance monitoring means (14) connected to the addressing units (10,11) for creating a difference between the address counts, hereinafter referred to as pointers of the address counters (12,13) when equality between the pointers of the address counters (12,13) is detected, which address distance monitoring means (14) is arranged in such a way that the distance between the pointers of the address counters (12,13) is made equal to n:2. Buffer (4) as claimed in Claim 5, characterized in that the pointers of the address counters (12,13) are influenced in such a way that one of the pointers is set to a fixed initial position after the address distance monitoring means (14) has detected equality.

Inventors: DOORNENBAL ANTHONY, SNAPHAAN PAUL GEORGE, DOORNENBAL, ANTHONY, SNAPHAAN, PAUL GEORGE
Applicants: KONINKL PHILIPS ELECTRONICS NV, KONINKLIJKE PHILIPS ELECTRONICS N.V.
Application year: 1991
Main classification: H04J3
IPC codes: G06F5, H04J3, G06F13