Method and apparatus for optimizing timing for a multi-drop bus
Abstract
A first device delivers a clock offset message to a second device. The second device offsets its data transmission according to the clock offset message. A test pattern is transmitted from the second device to the first device. The first device then checks the received test pattern to determine whether the transmission was successful. The first device can then deliver an additional clock offset message to the second device to instruct the second device to offset its data transmission by a different value than was used previously. The second device again transmits the test pattern and the first device again checks the received pattern. By trying a number of clock offset values and determining which values result in successful transmissions of data, the first device can determine the optimal clock offset value and instruct the second device to use this value for all transmissions.

Term
Term ended
Expired 22 May 2023, 3.3 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
15 claims: 4 independent, 11 dependent
- 1A method, comprising:- delivering a first clock offset message from a first device to a second device (305);- setting a clock offset value in the second device according to the first clock offset message;- delivering a test pattern from the second device to the first device (315) while offsetting the data transmission according to said clock offset value;and - checking the test pattern at the first device to determine whether or not the test pattern matches a predetermined pattern (320).
- 9An apparatus, comprising:- a bus interface;- a sideband control signal input;- a clock offset register (224) for storing a clock offset value received via a clock offset message;and - a test pattern generator to output a test pattern through the bus interface in response to a test mode message being received at the sideband control signal input wherein the transmission of the test pattern is offset according to the value stored in the clock offset register.
- 13An apparatus, comprising:- a sideband control signal output unit (214) to output a clock offset message to adjust a clock offset value of an internal device to an external device (220) and further to deliver a test mode message to the external device (220);- a bus interface unit (216) to receive a test pattern from the external device (220) wherein the transmission of the test pattern is offset according to the clock offset value;and - a test pattern comparator unit (218) to determine whether the received test pattern matches a predetermined pattern.
- 15A system comprising:- a first device (220;120;130) according to any of the preceding claims 9 to 12, wherein - the bus interface is coupled to a bus (230);and - the sideband control signal input is coupled to a sideband control signal (240);and - a second device (210, 212) according to any of the preceding claims 13 or 14, wherein the external device is the first device (220;120;130).
Independent claims4
34 paragraphs, as filed
<u style="single">Field Of The Invention</u>
0001The present invention pertains to the field of semiconductor devices. More particularly, this invention pertains to the field of reducing communication errors on a computer system bus.
<u style="single">Background of the Invention</u>
0002One important element in designing today's computer systems is minimizing channel error (errors occurring during data transfers) on multi-drop busses. Multi-drop busses typically connect one device to two or more other devices. Impedance discontinuities along the bus can create a standing wave on a clock signal, thereby degrading clock signal integrity and skewing the clock signal with respect to data signals. This skew may result in a master device latching data from a slave device at a time other than an optimal time, and increased channel error results.
0003Prior techniques for dealing with clock skew introduced by impedance discontinuities include reducing the maximum allowable clock frequency on the bus to ensure that valid data is latched at the receiving device. Of course, a reduction in clock frequency results in decreased bus performance, and is therefore undesirable.
0004Document <patcit id="pcit0001" dnum="US6381722B1"><text>US 6 381 722 B1</text></patcit> discloses a method and apparatus to test for defects in the input path of an integrated circuit by providing a logic pattern data to a scan chain of the integrated circuit and testing setup and hold timing parameters. The test system includes a tester, an interface and an integrated circuit. In particular, the tester contains hardware and software to perform functional and parametric testing of the integrated circuit by transmitting signals to stimulate inputs and measuring response at outputs. The tester also includes an external reference clock that may be used to clock time based testing of the integrated circuit. The tester includes a delay control used to generate a delay clock signal from the clock signal. The delay control is a programmable delay line that provides different clocking times to the data generator. The amount of delay is adjusted by the tester using a control input of the integrated circuit.
0005The invention is defined by the appended claims.
Brief Description of the Drawings
0006The invention will be understood more fully from the detailed description given below and from the accompanying drawings of embodiments of the invention which, however, should not be taken to limit he invention to the specific embodiments described, but are for explanation and understanding only.
0007<figref idref="f0001">Figure 1</figref> is a block diagram of a computer system including a system logic device coupled to several memory devices.
0008<figref idref="f0002">Figure 2</figref> is a block diagram of a memory controller coupled to a memory device.
0009<figref idref="f0003">Figure 3</figref> is a flow diagram of one embodiment of a method for minimizing channel error.
<u style="single">Detailed Description</u>
0010In general, the embodiments discussed below are examples of a technique for minimizing channel error by skewing the transmission or reception of data in relation to a clock signal to ensure that the data is valid at the receiving device when the receiving device latches the data This is accomplished in one embodiment by centering the data eye (defined as the period of time during which the data is valid at the receiving device) around the time when the data is to be latched at the receiving device. In one example embodiment, a first device delivers a clock offset message to a second device. The second device offsets its data transmission according to the clock offset message. A test pattern is transmitted from the second device to the first device. The first device then checks the received test pattern to determine whether the transmission was successful. The first device can then deliver an additional clock offset message to the second device to instruct the second device to offset its data transmission by a different value than was used previously. The second device again transmits the test pattern and the first device again checks the received pattern. By trying a number of clock offset values and determining which values result in successful transmissions of data, the first device can determine the optimal clock offset value and instruct the second device to use this value for all transmissions.
0011Once successful transmission has been assured from the second device to the first device, a test pattern can be written from the first device to the second device and then read back from the second device to the first device to check for successful transmission from the first device to the second device. The first device may instruct the second device via a clock offset message to offset the latching in of data received from the first device by an amount of time specified in the clock offset message. Various clock offset times can be tried to determine an optimal value.
0012<figref idref="f0001">Figure 1</figref> is a block diagram of a computer system 100 that includes a processor 110 coupled to a system logic device 210. The system logic device 210 is coupled to an input/output hub 160. The input/output hub 160 may provide communication with various peripheral components (not shown) over a peripheral device bus 180.
0013The system logic device 210 includes a memory controller 212 that is coupled to memory devices 220,120, and 130 via a memory bus 230. The memory controller 212 is also coupled to the memory devices 220, 120, and 130 via a sideband control signal 240. The sideband control signal 240 may be implemented as a low-frequency bus used to communicate control instructions from the memory controller 212 to the memory devices 220, 120, and 130.
0014<figref idref="f0002">Figure 2</figref> is an expanded view of the memory controller 212 and the memory device 220. The memory controller 212 includes a sideband control signal output unit 214 and a memory bus input/output unit 216. The sideband control signal output unit 214 provides communication with the memory device 220 via the sideband control signal 240. The memory bus input/output unit 216 transmits data to and receives data from the memory device 220 over the memory bus 230. The memory bus 230 may include a number of data lines and at least one clock line.
0015The memory controller 212 further includes a test pattern comparator unit 218 and the memory device 220 further includes a mode select register 222 and a clock offset register 224.
0016For this example embodiment, in order to optimize read and write timing on the memory bus, the memory controller 212 first delivers a clock offset message to the memory device 220 via the sideband control signal 240. The clock offset message instructs the memory device 220 to place a transmit clock offset value (included in the clock offset message) into the clock offset register 224. The transmit clock offset value represents a period of time by which the memory device 220 internal data transmission clock is offset.
0017The memory controller 212 then delivers a test mode message to the memory device 220 via the sideband control signal 240. The test mode message indicates to the memory controller 220 to place a mode select value into the mode select register 222. The test mode message includes a mode select value that instructs the memory device 220 to enter a test mode. The test mode causes the memory device 220 to transmit a predetermined test pattern to the memory device 212 over the memory bus 230. This transmission occurs with the transmission being offset by the transmit clock offset value stored in the clock offset register. If the transmission would normally occur at time t = 0, then with an example transmit clock offset value of 15 picoseconds the test pattern would be transmitted at time t = 0 + 15 picoseconds. A wide range of offset values are possible, including values that would cause the transmission to occur prior to t = 0 (i.e., t = 0-15 picoseconds). For this embodiment, the transmit clock offset may be accomplished via a delay lock loop circuit. The delay lock loop circuit alters the timing of a transmit clock signal that is internal to the memory device 220.
0018The memory controller 212 receives the test pattern and the test pattern comparator unit 218 determines whether the transmission was successful by comparing the received pattern with a predetermined pattern. The test pattern comparator unit 218 then stores the pass/fail result.
0019The memory controller 212 may perform many iterations of the above process trying a number of different transmit clock offset values. With the results of the various iterations stored in the test pattern comparator unit 218, the memory controller 212 can determine an optimal value for the transmit clock offset for memory device 220.
0020Once the timing for transmissions from the memory device 220 to the memory controller 212 has been optimized, the timing for transmissions from the memory controller 212 to the memory device 220 may be optimized. The memory controller 212 delivers a receive clock offset value via a clock offset message to the memory device 220 over the sideband control signal 240. The receive clock offset value is stored in the clock offset register 224. The memory controller 212 then delivers a predetermined test pattern to the memory device 220. The memory controller 212 then reads back the test pattern from the memory device 220 and the test pattern comparator unit 218 checks the received test pattern against the predetermined pattern. Because the timing for transmissions from the memory device 220 to the memory controller 212 was previously optimized, any errors found by the test pattern comparator unit 218 can be attributed to errors occurring during the transmission from the memory controller 212 to the memory device 220.
0021The memory controller 212 may try a number of different receive clock offset values for the memory device 220. The results of these attempts are stored in the test pattern comparator unit 218. The memory controller 212 can then determine an optimal value for the receive clock offset for the memory device 230. For this embodiment, the receive clock offset may be accomplished via a delay lock loop circuit. The delay lock loop circuit alters the timing of a receive clock signal that is internal to the memory device 230.
0022The above procedures for minimizing channel error between the memory controller 212 and the memory device 230 may be repeated for all other devices attached to the memory bus 230.
0023The procedures described herein for minimizing channel error may be accomplished using a combination of hardware and software. Hardware only embodiments are also possible.
0024Although the embodiments discussed above in connection with <figref idref="f0001">Figures 1</figref> and <figref idref="f0002">2</figref> include optimizing timings between a memory controller and a memory device, other embodiments are possible where timings are optimized among a wide variety of devices.
0025<figref idref="f0003">Figure 3</figref> is a flow diagram of one embodiment of a method for minimizing channel error between a first device and a second device. At block 305, a first permutation of a clock offset message is delivered from a first device to a second device. A test mode message is delivered from the first device to the second device at block 310. At block 315, a test pattern is transmitted from the second device to the first device.
0026At block 320, a determination is made as to whether the test pattern was successfully received. The results of the determination are stored at block 325.
0027Block 330 indicates that if the last permutation has been performed, then processing proceeds to block 340. If additional permutations remain, then processing proceeds to block 335. At block 335, a next permutation of the clock offset message is delivered from the first device to the second device. Then, processing returns to block 315.
0028Following the processing of the last permutation, then at block 340 a test mode exit message is delivered from the first device to the second device. The stored test pattern transmission results are analyzed at block 345. Finally, a clock offset message is delivered from the first device to the second device, thereby setting the second device clock offset to an optimal value.
0029In the foregoing specification the invention has been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than in a restrictive sense.
0030Reference in the specification to "an embodiment," "one embodiment," "some embodiments," or "other embodiments" means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least some embodiments, but not necessarily all embodiments, of the invention. The various appearances of "an embodiment," "one embodiment," or "some embodiments" are not necessarily all referring to the same embodiments.
3 sheets
Sheet 1 Sheet 2 Sheet 3
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| US2001017814A1 | Cites | United States of America |
| US6381722B1 | Cites | United States of America |
17 members in 9 offices
Priority claims3
| Document | Office | Kind | Date |
|---|---|---|---|
| 187349 | United States of America | – | |
| 18734902 | United States of America | A | |
| 0316311 | United States of America | W |
Members17
| Document | Office | Kind | |
|---|---|---|---|
| US2004003331A1 | United States of America | A1 | |
| WO2004003764A1 | World Intellectual Property Organization (WIPO) | A1 | |
| AU2003231823A1 | Australia | A1 | |
| TW200415477A | Taiwan Province of China | A | |
| KR20050012843A | Republic of Korea | A | |
| EP1518181A1 | European Patent Office (EPO) | A1 | |
| US2005195677A1 | United States of America | A1 | |
| CN1679011A | China | A | |
| US6973603B2 | United States of America | B2 | |
| US7117401B2 | United States of America | B2 | |
| KR100668004B1 | Republic of Korea | B1 | |
| TWI281615B | Taiwan Province of China | B | |
| CN100378704C | China | C | |
| EP1518181B1This record | European Patent Office (EPO) | B1 | |
| AT425498T | Austria | T | |
| ATE425498T1 | Austria | T1 | |
| DE60326584D1 | Germany | D1 |
53 legal events, as 6 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal feeWithdrawnR119 | R119 | DE | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Gb: european patent ceased through non-payment of renewal feeCeasedGBPC | GBPC | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Notification of lapseLapsedST | ST | FR | |
| No opposition filedOpposition26N | 26N | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Patent ceasedCeasedPL | PL | CH | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Nl: lapsed or annulled due to failure to fulfill the requirements of art. 29p and 29m of the patents actLapsedNLV1 | NLV1 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Corresponds to:REF | REF | EP | |
| European patents granted designating irelandGrantedFG4D | FG4D | IE | |
| European patent takes effect as a national patent in ch/liEP | EP | CH | |
| Designated contracting statesAK | AK | EP | |
| European patent grantedGrantedFG4D | FG4D | GB | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Grant fee paidORIGINAL CODE: EPIDOSNIGR3GRAS | GRAS | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOSNIGR1GRAP | GRAP | EP | |
| First examination report despatched17Q | 17Q | EP | |
| Request for extension of the european patent (deleted)DAX | DAX | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAX | AX | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 1518181
- Application
- 37619103
Titles3
- German
- VERFAHREN UND VORRICHTUNG ZUR OPTIMIERUNG DER ZEITSTEUERUNG FÜR EINEN MULTI-DROP-BUS
- English
- METHOD AND APPARATUS FOR OPTIMIZING TIMING FOR A MULTI-DROP BUS
- French
- PROCEDE ET DISPOSITIF PERMETTANT D'OPTIMALISER LA SYNCHRONISATION D'UN BUS MULTIPOINT
Classification
- CPC, 6
- G11C29/50
- G06F13/42
- G06F13/4243
- G11C29/028
- G11C29/50012
- G06F11/00
- IPC, 6
- G06F13 42
- G06F11 00
- G11C8 00
- G11C29 50
- H04J3 06
- H04L1 24
Designated states27
- Contracting states, 27
- Austria
- Belgium
- Bulgaria
- Switzerland
- Cyprus
- Czechia
- Germany
- Denmark
- Estonia
- Spain
- Finland
- France
- United Kingdom
- Greece
- Hungary
- Ireland
- Italy
- Liechtenstein
- Luxembourg
- Monaco
- Netherlands (Kingdom of the)
- Portugal
- Romania
- Sweden
and 3 moreShow fewer
- Slovenia
- Slovakia
- Türkiye