METHODS AND APPARATUS FOR REDUCING MICROBUMPS FOR INTER-DIE DOUBLE-DATA RATE (DDR) TRANSFER
An inter-die double data rate (DDR) data transfer scheme is provided. In particular, the data transfer scheme utilizes an error correction code (ECC) encoding scheme that exploits the DDR property that a single microbump defect can only yield four possible error scenarios. A specialized single error correcting, double error detecting, and double adjacent error correcting (SEC-DED-DAEC) encoding scheme that imposes at least four parity check matrix constraints may be used. Configured and operated in this way, a fewer number of parity check bits are required to detect data bit errors associated with a single defective microbump.
Latest Intel Patents:
- METHODS AND ARRANGEMENTS TO BOOST WIRELESS MEDIA QUALITY
- DUAL PIPELINE PARALLEL SYSTOLIC ARRAY
- HIGH-PERFORMANCE INPUT-OUTPUT DEVICES SUPPORTING SCALABLE VIRTUALIZATION
- MULTI-LAYERED OPTICAL INTEGRATED CIRCUIT ASSEMBLY WITH A MONOCRYSTALLINE WAVEGUIDE AND LOWER CRYSTALLINITY BONDING LAYER
- PLANAR INTEGRATED CIRCUIT PACKAGE INTERCONNECTS
This relates generally to integrated circuits and more particularly, to data transfer between two or more integrated circuit dies.
Consider a scenario in which a first integrated circuit die communicates with a second integrated circuit die via one or more potentially faulty interconnects. Conventionally, an interconnect redundancy scheme may be implemented to help repair potentially faulty interconnects to improve assembly yield. For example, a faulty interconnect may be repaired using an active redundancy scheme by selectively switching into use a spare driver block or by using a passive redundancy scheme using two or more duplicate paths for each critical signal. Such type of redundancy scheme that uses spare drivers or spare paths requires redundancy configuration before the data is transmitted. In other words, configuration data has to be first transferred from one die to another to configure/initial the desired redundancy scheme.
Data bits transmitted from one die to another are often susceptible to errors as a result of inadequate timing margins at corner cases, random bit flips, and/or other deterministic or nondeterministic sources of variation. To correct such errors, an error correcting code (ECC) scheme is sometimes implemented to detect or fix the erroneous data. An ECC scheme typically transmits the user data along with additional parity check bits. Using an ECC scheme can help obviate the need for redundancy configuration before the data transfer. The ECC scheme, however, requires additional input-output bumps for transferring the additional parity check bits. A traditional ECC scheme might require a large number of inter-die solder bumps, which is problematic for systems with a limited number of available solder bumps.
It is within this context that the embodiments described herein arise.
ECC encoding scheme shown in
The present embodiments relate to a specialized error correcting code (ECC) scheme that takes advantage of the dual data rate (DDR) error characteristic at a single defective microbump interconnecting two dies within the same multichip package. Since even and odd data bits share the same microbump location, if a single microbump is faulty, it will either cause only the odd data bit to be erroneous, only the even data bit to be erroneous, both the odd and even data bits to be erroneous, or both the odd and even data bits to be error free. By recognizing and exploiting this unique DDR characteristic, the odd and even data bits can be evaluated together with one specialized ECC encoding scheme. Configured and operated in this way, fewer parity bits are required, which results in reducing the total requisite microbump overhead.
It will be recognized by one skilled in the art, that the present exemplary embodiments may be practiced without some or all of these specific details. In other instances, well-known operations have not been described in detail in order not to unnecessarily obscure the present embodiments.
Transmitter (TX) 108 may be configured to transmit data from circuit 106 to receiver (RX) 112 over interconnect 110 (sometimes referred to as a data channel). Transmitter 108 may, for example, be implemented as part of integrated circuit 102. Receiver 112 may, as an example, be implemented as part of integrated circuit 104. Data channel 110 may be formed from any suitable physical transmission medium. Examples of transmission paths that may be used in channel 110 include single conductive paths, differential signaling paths made up of pairs of conductive wires, coaxial cable paths and other transmission-line paths, paths on printed circuit boards, combinations of such paths, or other suitable communications paths. In a typical system 100, integrated circuits 102 and 104 may be mounted on one or more semiconductor substrates, and interconnect 110 may involve transmission line structures fabricated on the substrates.
In the example of
Transmitter 108 may be configured to transmit a data bit stream across interconnect 110 to receiver 112. Typical transfer speeds can across path 110 can be as high as 10 GBps (gigabytes per second) or more. Communications paths operating at such high data rates are sometimes referred to as high-speed intra-die input-output interconnects. Transmitter 108 may be controlled by a transmit clock signal such as signal Clk. Transmitter 108 may generate output data at a rate that is proportional to signal Clk. Embodiments herein generally relate to a double data rate (DDR) clocking scheme in which the output data toggles at both rising and falling clock edges of signal Clk.
As integrated circuit technology scales towards smaller device dimensions, device performance continues to improve at the expense of increased power consumption. In an effort to reduce power consumption, more than one die may be placed within a single integrated circuit package (i.e., a multichip package). As different types of devices cater to different types of applications, more dies may be required in some systems to meet the requirements of high performance applications. Accordingly, to obtain better performance and higher density, an integrated circuit package may include multiple dies arranged laterally along the same plane and/or include one or more dies stacked on top of one another.
Still referring to
As described above in the Background section, inter-die transfer that does not support initial redundancy configuration often relies on error correcting code (ECC) to provide redundancy directly into the bits transmitted.
At step 402, data may first be divided into even data bits and odd data bits. At step 404, the ECC encoder may encode the even bits independently using (for example) the single error correction and double error detection (SEC-DED) ECC scheme to generate corresponding even parity bits. Similarly, at step 406, the ECC encoder may separately encode the odd data bits.
At step 408, the encoder may output the even data bits and the even parity bits generated at step 404 at the rising edges of the TX clock while outputting the odd data bits and the odd parity bits generated at step 406 at the falling edges of the TX clock. In summary, this method involves encoding the even and odd data bits independently using the SEC-DED ECC scheme.
r>1+log2(k+r) (1)
where r represents the parity microbumps count (i.e., the number of microbumps needed to transmit the even and odd parity bits using DDR) and where k represents the data microbump count (i.e., the number of microbumps needed to transmit the even and odd data bits using DDR).
Row 690 in table 600 summarizes the microbump configuration shown in
In accordance with an embodiment, an ECC encoding scheme is provided that requires fewer parity bits and thus helps to reduce the total microbump overhead. This reduction in parity bits may be achieved by recognizing and exploiting a DDR error characteristic associated with a single defective microbump. The DDR error characteristic at a single microbump is as follows: if a single microbump is defected, it will either be stuck at “0”, stuck at “1”, or floating, which can either be floated at zero or one. In any case, that microbump will be stuck at a fixed value and will effect both even and odd bits.
As shown in
At step 902, encoder 800 may, without dividing the data into even and odd bits, directly encode the data using a single error correcting, double error detecting, and double adjacent error correcting (SEC-DED-DAEC) ECC scheme. The SEC-DED-DAEC may impose all of the following constraints on a parity check matrix that is used to implement the ECC scheme:
-
- (a) NO ALL ZERO COLUMNS
- (b) EVERY COLUMN MUST BE DISTINCT
- (c) EVERY COLUMN CONTAINS AN ODD NUMBER OF “1s”
- (d) EVERY EVEN & ODD COLUMN PAIR MUST BE DISTINCT.
Constraints a-c are imposed by the SEC-DED algorithm, whereas constraint d is imposed by the DAEC portion. Constraints a-c provide a way to detect the single bit errors illustrated in
As shown in
Referring briefly back to
Referring now back to
Each of these encoder logic gates 810 may receive a respective group inputs based on position of high bits in H-matrix 1000 of
The particular encoder configuration of
Referring back to
Decoder 850 may further include a decoder syndrome bit generating circuit such as decoder syndrome bit generator 852. Syndrome bit generator 852 may have a first set of inputs configured to receive the even and odd data bits received over microbumps DQ0-DQ4 and a second set of inputs configured to receive the even and odd parity bits received over microbumps DQ5-DQ7.
Syndrome bit generator 852 may generate corresponding syndrome bits S0-S5 in accordance with the improved SEC-DED-DAEC ECC scheme operating in accordance with the four H-matrix constraints described above in connection with
Since the same H-matrix governs both the encoding and decoding aspect of the ECC transfer, the inputs of logic gates 860 may be connected in the same way as encoder parity bit generator 802 shown in
The decoder syndrome bit generator 852 is configured such all of the syndrome bits S0-S5 will be equal to zero when the data is error free. In other words, at least one of the syndrome bits will be equal to “1” when the data is erroneous. Thus, decoder 850 may include a logic gate such as logic OR gate 870 that receives all of the syndrome bits and that outputs an asserted signal when a single bit error is detected.
The syndrome bits output by syndrome bit generator 852 can be used to help identify the type and location of error bits. Assuming that the parity bits in the H-matrix 1000 described in connection with
Decoder 850 may further include a syndrome decoder 880 that receives the syndrome bits from generator 852 and that outputs high bit(s) at the corresponding error locations. In the example of
Decoder 890 may further include an error correction circuit 890 configured to receive the transmitted data bits, to receive the error location bits output from syndrome demultiplexer 880, and to output a corresponding corrected codeword. In the example of
In the example of
s>(1+log2(2k+2s))/2 (2)
where s represents the parity microbumps count (i.e., the number of microbumps needed to transmit the even and odd parity bits using DDR) and where k represents the data microbump count (i.e., the number of microbumps needed to transmit the even and odd data bits using DDR).
The following examples pertain to further embodiments.
Example 1 is an integrated circuit, comprising: a first group of bumps configured to receive data bits from another integrated circuit; a second group of bumps configured to receive parity bits from the another integrated circuit, wherein the data bits and the parity bits are transmitted to the another integrated circuit using a double data rate (DDR) transfer scheme; and a syndrome bit generating circuit that is configured to receive the data bits from the first group of bumps and that is configured to implement a decoding scheme that exploits an error characteristic associated with the DDR transfer scheme at a defective bump in the first group of bumps to reduce the total number of required bumps in the second group of bumps.
Example 2 is the integrated circuit of example 1, wherein the defective bump is optionally configured to receive an even data bit at a rising clock edge and an odd data bit at a falling clock edge.
Example 3 is the integrated circuit of example 2, wherein the error characteristic associated with the DDR transfer scheme at the defective bump optionally comprises up to four possible error scenarios.
Example 4 is the integrated circuit of example 3, wherein the four possible error scenarios optionally comprise a single error at the even data bit and a single error at the odd data bit.
Example 5 is the integrated circuit of example 4, wherein the four possible error scenarios optionally further comprises errors at both the even data bit and the odd data bit and no errors at the even data bit and the odd data bit.
Example 6 is the integrated circuit of any one of examples 1-5, wherein the decoding scheme of the syndrome bit generating circuit is optionally implemented based on a single error correcting, double error detecting, and double adjacent error correcting (SEC-DED-DAEC) error correcting code (ECC) scheme.
Example 7 is the integrated circuit of example 6, wherein the SEC-DED-DAEC ECC scheme optionally imposes at least four constraints on a parity check matrix that determines the configuration of the syndrome bit generating circuit.
Example 8 is the integrated circuit of example 7, wherein the at least four constraints optionally stipulates that: a) no columns in the parity check matrix are all zeros; b) every column in the parity check matrix is distinct; and c) every column in the parity check matrix contains an odd number of ones.
Example 9 is the integrated circuit of example 8, wherein the at least four constraints further optionally stipulates that: d) every even and odd column pair in the parity check matrix is distinct.
Example 10 is the integrated circuit of example 9, wherein the syndrome bit generating circuit is optionally implemented based on values in the parity check matrix and also based on additional parity bits obtained by combining even and odd columns in the parity check matrix.
Example 11 is the integrated circuit of example 10, wherein the additional parity bits optionally allow the syndrome bit generating circuit to identify adjacent even and odd bit errors at the defective bump.
Example 12 is an integrated circuit, comprising: a first group of bumps configured to output data bits to another integrated circuit; a second group of bumps configured to output parity bits to the another integrated circuit; and a parity bit generating circuit that is configured to receive the data bits and that is configured to implement an encoding scheme that reduces the total number of required bumps in the second group of bumps by taking advantage of a double data rate (DDR) error characteristic of a defective bump in the first group of bumps.
Example 13 is the integrated circuit of example 12, wherein the defective bump is optionally configured to receive an even data bit at a rising clock edge and an odd data bit at a falling clock edge.
Example 14 is the integrated circuit of example 13, wherein the DDR error characteristic associated with the DDR transfer scheme at the defective bump optionally comprises four possible error scenarios.
Example 15 is the integrated circuit of example 14, wherein the four possible error scenarios optionally comprise: a single error at the even data bit; a single error at the odd data bit; a double error at both the even data bit and the odd data bit; and no errors at the even data bit and the odd data bit.
Example 16 is the integrated circuit of any one of examples 12-15, wherein the encoding scheme of the parity bit generating circuit is optionally implemented based on a single error correcting, double error detecting, and double adjacent error correcting (SEC-DED-DAEC) error correcting code (ECC) scheme.
Example 17 is a system, comprising: a first integrated circuit die; and a second integrated circuit die configured to communicate with the first integrated circuit die via a plurality of microbumps, wherein: the first integrated circuit die is configured to transmit data bits to the second integrated circuit die using a double data rate (DDR) toggling scheme; and the first integrated circuit die comprises an encoder circuit configured to encode the data bits using an error correcting code (ECC) scheme that is capable of detecting and correcting adjacent even and odd data bit errors at a defective microbump in the plurality of microbumps.
Example 18 is the system of example 17, wherein the ECC scheme optionally comprises a single error correcting, double error detecting, and double adjacent error correcting (SEC-DED-DAEC) scheme that requires fewer parity bits than a single error correcting and double error detecting (SEC-DED) scheme.
Example 19 is the system of example 18, wherein the SEC-DED-DAEC scheme optionally imposes at least the following constraints on an H-matrix that determines the configuration of the encoder circuit: a) no columns in the H-matrix are all zeros; b) every column in the H-matrix is distinct; c) every column in the H-matrix contains an odd number of ones; and d) a function of an even column and an odd column in each associated column pair is distinct from the function of an even column and an odd column of every other column pair in the H-matrix.
Example 20 is the system of example 19, wherein the second integrated circuit die optionally comprises a decoder circuit configured to decode the data bits received from the first integrated circuit, and wherein the decoder circuit is implemented based on the H-matrix and also based on additional parity bits generated by taking the function of the even column and the odd column in each column pair of the H-matrix.
For instance, all optional features of the apparatus described above may also be implemented with respect to the method or process described herein. The foregoing is merely illustrative of the principles of this disclosure and various modifications can be made by those skilled in the art. The foregoing embodiments may be implemented individually or in any combination.
Claims
1. An integrated circuit, comprising:
- a first group of bumps configured to receive data bits from another integrated circuit;
- a second group of bumps configured to receive parity bits from the another integrated circuit, wherein the data bits and the parity bits are transmitted to the another integrated circuit using a double data rate (DDR) transfer scheme; and
- a syndrome bit generating circuit that is configured to receive the data bits from the first group of bumps and that is configured to implement a decoding scheme that exploits an error characteristic associated with the DDR transfer scheme at a defective bump in the first group of bumps to reduce the total number of required bumps in the second group of bumps.
2. The integrated circuit of claim 1, wherein the defective bump is configured to receive an even data bit at a rising clock edge and an odd data bit at a falling clock edge.
3. The integrated circuit of claim 2, wherein the error characteristic associated with the DDR transfer scheme at the defective bump comprises up to four possible error scenarios.
4. The integrated circuit of claim 3, wherein the four possible error scenarios comprise a single error at the even data bit and a single error at the odd data bit.
5. The integrated circuit of claim 4, wherein the four possible error scenarios further comprises errors at both the even data bit and the odd data bit and no errors at the even data bit and the odd data bit.
6. The integrated circuit of claim 1, wherein the decoding scheme of the syndrome bit generating circuit is implemented based on a single error correcting, double error detecting, and double adjacent error correcting (SEC-DED-DAEC) error correcting code (ECC) scheme.
7. The integrated circuit of claim 6, wherein the SEC-DED-DAEC ECC scheme imposes at least four constraints on a parity check matrix that determines the configuration of the syndrome bit generating circuit.
8. The integrated circuit of claim 7, wherein the at least four constraints stipulates that:
- a) no columns in the parity check matrix are all zeros;
- b) every column in the parity check matrix is distinct; and
- c) every column in the parity check matrix contains an odd number of ones.
9. The integrated circuit of claim 8, wherein the at least four constraints further stipulates that:
- d) every even and odd column pair in the parity check matrix is distinct.
10. The integrated circuit of claim 9, wherein the syndrome bit generating circuit is implemented based on values in the parity check matrix and also based on additional parity bits obtained by combining even and odd columns in the parity check matrix.
11. The integrated circuit of claim 10, wherein the additional parity bits allow the syndrome bit generating circuit to identify adjacent even and odd bit errors at the defective bump.
12. An integrated circuit, comprising:
- a first group of bumps configured to output data bits to another integrated circuit;
- a second group of bumps configured to output parity bits to the another integrated circuit; and
- a parity bit generating circuit that is configured to receive the data bits and that is configured to implement an encoding scheme that reduces the total number of required bumps in the second group of bumps by taking advantage of a double data rate (DDR) error characteristic of a defective bump in the first group of bumps.
13. The integrated circuit of claim 12, wherein the defective bump is configured to receive an even data bit at a rising clock edge and an odd data bit at a falling clock edge.
14. The integrated circuit of claim 13, wherein the DDR error characteristic associated with the DDR transfer scheme at the defective bump comprises four possible error scenarios.
15. The integrated circuit of claim 14, wherein the four possible error scenarios comprise:
- a single error at the even data bit;
- a single error at the odd data bit;
- a double error at both the even data bit and the odd data bit; and
- no errors at the even data bit and the odd data bit.
16. The integrated circuit of claim 12, wherein the encoding scheme of the parity bit generating circuit is implemented based on a single error correcting, double error detecting, and double adjacent error correcting (SEC-DED-DAEC) error correcting code (ECC) scheme.
17. A system, comprising:
- a first integrated circuit die; and
- a second integrated circuit die configured to communicate with the first integrated circuit die via a plurality of microbumps, wherein: the first integrated circuit die is configured to transmit data bits to the second integrated circuit die using a double data rate (DDR) toggling scheme; and the first integrated circuit die comprises an encoder circuit configured to encode the data bits using an error correcting code (ECC) scheme that is capable of detecting and correcting adjacent even and odd data bit errors at a defective microbump in the plurality of microbumps.
18. The system of claim 17, wherein the ECC scheme comprises a single error correcting, double error detecting, and double adjacent error correcting (SEC-DED-DAEC) scheme that requires fewer parity bits than a single error correcting and double error detecting (SEC-DED) scheme.
19. The system of claim 18, wherein the SEC-DED-DAEC scheme imposes at least the following constraints on an H-matrix that determines the configuration of the encoder circuit:
- a) no columns in the H-matrix are all zeros;
- b) every column in the H-matrix is distinct;
- c) every column in the H-matrix contains an odd number of ones; and
- d) a function of an even column and an odd column in each associated column pair is distinct from the function of an even column and an odd column of every other column pair in the H-matrix.
20. The system of claim 19, wherein the second integrated circuit die comprises a decoder circuit configured to decode the data bits received from the first integrated circuit, and wherein the decoder circuit is implemented based on the H-matrix and also based on additional parity bits generated by taking the function of the even column and the odd column in each column pair of the H-matrix.
Type: Application
Filed: Nov 29, 2019
Publication Date: Mar 26, 2020
Applicant: Intel Corporation (Santa Clara, CA)
Inventors: Hwa Chaw Law (Kuala Langat), Kiun Kiet Jong (George Town)
Application Number: 16/699,225