Examples herein describe techniques for forming 3d stacked devices which include a redundant logical layer. The 3d stacked devices include a plurality of semiconductor chips stacked in a vertical direction such that each chip is bonded to a chip above, below, or both in the stack. In one embodiment, each chip is the same—e.g., has the same circuitry arranged in the same configuration in the chip. The 3d stacked device provides a redundant logic layer by dividing the chips into a plurality of slivers which are interconnected by inter-chip bridges. For example, the 3d stacked device may include three stacked chips that are divided into three different slivers where each sliver includes a portion from each of the chips. So long as only one of portions in a sliver is nonfunctional, the inter-chip bridges permit the other portions in the sliver to receive and route data.
|
1. A 3d stacked device, comprising:
a plurality of semiconductor chips stacked vertically on each other, wherein each of the plurality of chips is logically divided into the same of number of portions, wherein each of the portions in the same chip is separated from a neighboring portion by an inter-chip bridge,
wherein a respective portion from each of the plurality of chips in a column are grouped together to form a first sliver, wherein the respective portions in the first sliver comprise a deactivated portion and a first active portion,
wherein at least one inter-chip bridge bordering the first sliver is configured to route data from a second active portion in a neighboring sliver to the first active portion in the first sliver, wherein the second active portion is in the same chip as the deactivated portion but in a different chip from the first active portion.
10. A 3d stacked device, comprising:
a plurality of semiconductor chips stacked vertically on each other, wherein each of the plurality of chips is logically divided into the same of number of portions, wherein each of the portions in the same chip is separated from a neighboring portion by an inter-chip bridge,
wherein a respective portion from each of the plurality of chips in a first column are grouped together to form a first sliver and a respective portion from each of the plurality of chips in a second column are grouped together to form a second sliver that neighbors the first sliver, wherein the respective portions in the first sliver comprise a first deactivated portion and at least two active portions and the respective portions in the second sliver comprise a second deactivated portion and at least two active portions,
wherein at least two inter-chip bridges are configured to route data between the at least two active portions in the first and second slivers.
2. The 3d stacked device of
3. The 3d stacked device of
4. The 3d stacked device of
5. The 3d stacked device of
6. The 3d stacked device of
7. The 3d stacked device of
8. The 3d stacked device of
9. The 3d stacked device of
11. The 3d stacked device of
12. The 3d stacked device of
13. The 3d stacked device of
14. The 3d stacked device of
15. The 3d stacked device of
16. The 3d stacked device of
|
Examples of the present disclosure generally relate to providing redundancy in a 3D stacked device containing a plurality of chips.
Field programmable gate arrays (FPGAs) can be packaged to form a 2.5D package where the FPGAs are disposed onto a common substrate or interposer. That is, the FPGAs are bonded in a side-by-side manner to the same surface of the interposer. The interposer is typically passive (e.g., does not include active components such as transistors) includes data paths for coupling the FPGAs to each other. Further, the package may include an extra or redundant FPGA to improve yield. That is, due to a manufacturing defect, one of the FGPAs may be nonfunctional. As a result, the package may include four FPGAs but advertise that it is a three-FPGA system with a redundant FPGA. So long as only one FPGA in the package has a defect (which cannot be determined until the FPGAs have been mounted on the interposer and tested), the package can be sold as a three-FPGA system. If after testing reveals that multiple FPGAs are defective, the package may be discarded or sold as a different system.
Techniques for configuring a 3D stacked device to provide at least one redundant logical layer are described. One example is a 3D stacked device that includes a plurality of semiconductor chips stacked vertically on each other where each of the plurality of chips is logical divided into the same of number of portions, and where each of the portions in the same chip is separated from a neighboring portion by an inter-chip bridge. A respective portion from each of the plurality of chips in a column are grouped together to form a first sliver where the respective portions in the first sliver comprise a deactivated portion and a first active portion. At least one inter-chip bridge bordering the first sliver is configured to route data from a second active portion in a neighboring sliver to the first active portion in the first sliver where the second active portion is in the same chip as the deactivated portion but in a different chip from the first active portion.
One example described herein is a method for configuring a 3D stacked device including a plurality of semiconductor chips stacked vertically on each other. The method includes testing a plurality of portions in each of the plurality of chips, where the plurality of chips are logically divided into the same number of portions, and where each of the portions in the same chip is separated from a neighboring portion by an inter-chip bridge. The method includes identifying at least one nonfunctional portion in a first sliver, wherein the first sliver comprises a respective portion from each of the plurality of chips in a column, where the sliver comprises a first active portion in addition to the nonfunctional portion. The method also includes configuring at least one inter-chip bridge bordering the first sliver to route data from a second active portion in a neighboring sliver to the first active portion in the first sliver, where the second active portion is in the same chip as the nonfunctional portion but in a different chip from the first active portion.
So that the manner in which the above recited features can be understood in detail, a more particular description, briefly summarized above, may be had by reference to example implementations, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical example implementations and are therefore not to be considered limiting of its scope.
To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures. It is contemplated that elements of one example may be beneficially incorporated in other examples.
Various features are described hereinafter with reference to the figures. It should be noted that the figures may or may not be drawn to scale and that the elements of similar structures or functions are represented by like reference numerals throughout the figures. It should be noted that the figures are only intended to facilitate the description of the features. They are not intended as an exhaustive description of the description or as a limitation on the scope of the claims. In addition, an illustrated example need not have all the aspects or advantages shown. An aspect or an advantage described in conjunction with a particular example is not necessarily limited to that example and can be practiced in any other examples even if not so illustrated, or if not so explicitly described.
Examples herein describe techniques for forming 3D stacked devices that include a redundant logical layer. The 3D stacked devices include a plurality of semiconductor chips stacked in a vertical direction such that each chip is bonded to a chip above, below, or both in the stack. In one embodiment, each chip is the same—e.g., has the same circuitry arranged in the same configuration in the chip. The chips could be FPGAs, memory devices (e.g., DRAM or SRAM chips), processors, accelerators, systems on a chip (SoC), and the like.
In one embodiment, the 3D stacked device provides a redundant logical layer by dividing the chips into a plurality of slivers which are interconnected by inter-chip bridges. For example, the 3D stacked device may include three stacked chips that are divided into three different slivers where each sliver includes a portion from each of the chips. So long as only one of portions in a sliver has a defect (or is nonfunctional), the inter-chip bridges permit the other portions in the sliver to receive and route data. In this redundancy scheme, multiple chips can have defects and still provide two logical layers that are equivalent to two functional chips in the stack. Put differently, although more than one of the three chips in the stack may include nonfunctional portions, so long as the portions are in different slivers, the inter-chip bridges can couple together the chips such that it appears to an outside application that the 3D stack has two fully functional chips.
The 3D stacked device described herein has several advantages over a 2.5D package since it does not require an interposer (whether passive or active) and avoids significant delay penalties when crossing from one die to the next. Further, a 2.5D package may require a user to partition their design due to having relatively fewer inter-die connections when compared to a 3D stacked device.
Each chip 105 is divided into four portions 110. The portions 110 illustrated in
In one embodiment, every portion 110 in all the chips 105 is the same. That is, the portions 110A-110L may include the same circuitry and arrangement. For example, if the chips 105 are FPGAs, the portions 110 may include circuitry which is repeated four times in each chip 105. In another example, the portions 110 may each include a processor, the same set of programmable logic, or the same amount of memory cells. In this embodiment, the slivers 115 are identical to each other.
The division between the portions 110 and slivers 115 may be based on any number of logical boundaries such as a boundary between two clock domains, a boundary between two voltage domains, a boundary between two different types of circuitry or logic blocks, and the like. Although not shown here, the chips 105 include inter-chip bridges disposed at the boundary between each portion 110 in the chips 105 which enable the portions to talk to a neighboring portion 110 in the same chip 105 or to a portion in a neighboring chip 105.
The hashing in
For simplicity, it is assumed that the deactivated portions 110 in
So long as only one of the portions in each of the slivers 215 is deactivated (as shown by the hashing), the 3D stacked device 200 can function the same as two fully functional chips 205. Being able to divide the chips 205 into smaller and smaller slivers 215 increases the chance that each sliver contains at most one nonfunctional or deactivated portion. However, forming additional slivers 215 may be limited by the number of suitable boundaries for dividing the slivers 215, as well as the space used by adding the circuitry and structures for the inter-chip bridges at those boundaries.
The portions 310 can then form the slivers 315 where each sliver 315 has at most one deactivated portion 310 (illustrated by the hashing). The portions 310 may include inter-chip bridges coupling the portion 310 to its respective neighboring portions in the same chip or neighboring chips. For example, the portion 310A can border inter-chip bridges which couple it to the east and north portions 310 in the chip 305A as well as to the corresponding portions 310 in the chip 305B. Similarly, the portion 310B includes inter-chip bridges coupling it to the north, east, and south portions 310 in the chip 305A as well as to the corresponding portions 310 in the chip 305B.
The 3D stacked device 300 may include a greater number, or density, of slivers 315 than the 3D stacked devices 100 and 200 for the same chip size which may increase the likelihood that at most one of the portions in each of the slivers 315 is nonfunctional, and thus, the 3D stacked device 300 can perform equivalent to two fully functional chips 305.
The double-headed dotted arrows indicate communication paths that can be facilitated by the inter-chip bridges 450 although only one of those paths may ultimately be selected. Put differently, the inter-chip bridges include circuitry and electrical paths (e.g., traces and vias) that permit each portion 410 to communicate with a neighboring portion 410 in the same chip and at least one neighboring portion in another chip 405. For example, the inter-chip bridge 450 between the portion 410A and 410B permits the portion 410A to communicate with the portion 410B which is in the same chip 405A as well as the portion 410F which is the different chip 405B. This same inter-chip bridge 450 permits the portion 410B to communicate with either the portion 410A or the portion 410D in the chip 405B. The inter-chip bridge 450 between the portion 410D and the portion 410F permits the portion 410D to communicate with the portion 410F in the same chip 405B, the portion 410B in the upper chip 405A, or the portion 410H in the lower chip 405C. That same inter-chip bridge 450 permits the portion 410F to communicate with the portion 410D, the portion 410A in the upper chip 405A, or the portion 410G in the lower chip 405G. In this embodiment, the inter-chip bridges 450 are bi-directional and permit data to flow in both directions.
In
The inter-chip bridges 450 are configured to provide communication paths around the deactivated portions 410. For example, because the portion 410D is deactivated, the inter-chip bridges 450C and 450E permit the portion 410G in the chip 405C to transmit data to, and receive data from, the portion 410E in the chip 405B. This permits the data flow to avoid the deactivated portion 410D as well as the deactivated portion 410H. Similarly, because the portion 410C is deactivated, the inter-chip bridges 450B and 450D couple the portion 410B to the portion 410F so they can transfer data. In turn, the inter-chip bridges 450D and 450F couple the portion 410E to the portion 410I in the chip 405C so they can share data. Thus, the inter-chip bridges 450 need only to provide a communication path to the next neighboring chip or chips (rather than to chips that may be two chips away in the device 400) to enable the active portions 410 to avoid the deactivated portions 410. Further, because the portions 410 in a sliver are homogeneous, it does not matter which of the portions are coupled to the neighboring portions. That is, the operation of the circuitry in the portion 410A is not affected or altered when it is communicatively coupled by the bridge 450A to the portion 410B instead of the portion 410E.
In addition to the communication paths provided by the inter-chip bridges 450, the 3D stacked device 400 includes vertical communication paths 415 that permit portions 410 in the same sliver to communicate. That is, while the inter-chip bridges 450 permit portions in one sliver to communicate with portions in a neighboring sliver (whether on the same chip or a different chip or chips), the vertical communication paths 415 permit the portions 410 in the same sliver to communicate. In one embodiment, the vertical communication paths 415 are unaffected by the deactivated portions 410. For example, although the portion 410D is inactive in
For simplicity, only the circuitry in the inter-chip bridge 450A is discussed in detail but this description applies to the other bridges 450. A driver 605A receives data from circuitry (not shown) in the portion 410A. This data is then provided to the inputs of a driver 605B, a driver 605C, and a multiplexer (mux) 615A. The driver 605B is used to route the data to a portion that is disposed in a chip above the chip that contains the portion 410A in the stack. However, because the portion 410A is in the topmost chip 405 in this example, the driver 605B may always be disabled (using the ENABLE signal which can be controlled by a configuration register) such that data is not transmitted to an upper chip using a through silicon via (TSV) 610A. However, in other embodiments, there may be another chip above the chip containing the portion 410A in which case the TSV 610A may be used. For example, an I/O or memory chip may be disposed on top of the chips 405 containing the portions 410 (which may be FPGAs) which may use the TSV 610 to transfer data between the I/O or memory chip and the FPGAs formed by the chips 405.
The output of the mux 615A is coupled to a driver 605D which is in turn coupled to the portion 410B. Using a SELECT signal, the mux 615A can choose what data is transmitted to the portion 410B. For example, referring to the example in
The output of the driver 605C is coupled to a TSV 610B which communicatively couples the chip 405A to the chip 405B at the boundary interface 620A. Although not shown, the boundary interface 620 may include solder bumps or other connective material that couples the TSVs in the chip 405A to the TSVs in the chip 405B. When the portion 410A should transmit data to the portion 410E, the ENABLE signal activates the driver 605C so that data flows through the TSV 610B and to a mux 615B in the inter-chip bridge 450C. However, because in this example the portion 410A transmits data to the portion 410B, the ENABLE signals disable the drivers 605B and 605C. As such, data received at the driver 605A flows through the mux 615A and the driver 605D into the portion 410B. In one embodiment, the ENABLE and SELECT signals are independent signals (i.e., are not shared signals) so that the various circuitry coupled to these signals can be controlled independently.
Turning to the configuration of the inter-chip bridges 450C and 450E, because portion 410D is inactive in this example, the driver 605E does not receive data from the portion 410D. For example, the driver 605E may be disabled such that any data transmitted from the circuitry in the portion 410D cannot reach the other portions 410. Or the chips 405 may include e-fuses that may be blown after testing to disable the desired portions.
As shown in
Although
At block 710, the wafers are bonded together in a stack. That is, the wafers can be aligned such that a chip in the top wafer overlaps, and aligns with, a corresponding chip in the next wafer, and so forth. For example, solder bumps may be used to physically and communicatively couple the wafers together such that the chips in the different wafers can communicate. As discussed above, these solder bumps or connections can be used as part of the vertical communication paths 415 and the paths used by the inter-chip bridges 450 to establish communication between portions in different chips 405 as shown in
At block 715, the bonded wafers are separated to form multiple 3D stacked devices. For example, the bonded wafers can be sawed or cut along the boundary between each of the chips in the wafers. Doing so results in multiple 3D stacked devices which each includes a column of stacked chips as shown in
At block 720, the chips in each of the 3D stacked devices are tested to identify nonfunctional portions. In one embodiment, so long as one chip includes a nonfunctional portion, a portion from each sliver is deactivated. For example, if only portion is nonfunctional, the system may nonetheless select portions from the other slivers (which may be functional and passed the test) to deactivate. Selecting which of the functional portions in a sliver to deactivate is discussed in
At block 725, the method 700 determines whether there is a sliver that includes more than one nonfunctional portion. That is, after reviewing the testing results, a testing apparatus or engineer can determine whether two or more portions in the same sliver (which would be on different chips) are nonfunctional. If so, the method 700 proceeds to block 730 where the 3D stacked device is labeled as non-compliant. For example, the 3D stacked devices may be guaranteed or advertised to have N+1 redundancy where each sliver includes an extra portion such the 3D stacked device can function as an 3D stacked device with N fully functional chips. However, if a device with N+1 redundancy has a sliver with two or more nonfunctional portions, than the device cannot function like it has N fully function chips. In one embodiment, the non-compliant device may be discarded. However, the device could be relabeled and sold as a different product. For example, if a 3D stacked device has three chips, but has a sliver with two nonfunctional portions but every sliver has at least one functional portion, it may be possible (depending on where the nonfunctional portions are disposed in the sliver) to form one functional chip from the portions. Thus, the 3D stacked device could be sold as a 3D stacked device with the logical equivalent of one fully functional chip. In another example, a four chip 3D stacked device may have two defective portions in the same sliver. In this scenario, the four layer device could be sold as a two logical layered device or a one logical layered device (depending on which of the portions in the slivers are defective). That is, the inactive or unused portions in neighboring slivers may permit the four layered device to have two logical layers, but in other examples, there may not enough connections to different layers (e.g., the TSVs between the layers) to permit the four layer device to be configured as a two logical layered device. In this example, the four layer device can be sold as a one logical layered device.
However, if none of the slivers contain two or more nonfunctional portions, the method 700 proceeds to block 735 where the inter-chip bridges are configured to avoid the nonfunctional (and deactivated) portions. For example, using e-fuses and/or drivers in the inter-chip bridges, the functional portions in the slivers can be interconnected as shown in, e.g.,
At block 805, one sliver in the 3D stack of chips is selected. In one embodiment, the method 800 forms a loop for evaluating each of the slivers in a 3D stacked device to determine which portion in the sliver to deactivate.
At block 810, the method 800 determines whether the sliver currently being evaluated contains a nonfunctional portion using the testing data. If so, the method 800 proceeds to block 810 where the inter-chip bridges bordering the selected sliver are configured to avoid the nonfunctional portion. Put differently, if the sliver contains a nonfunctional portion, by default, that portion is selected for deactivation.
The method 800 then proceeds to block 825 to determine whether there are more slivers in the 3D stacked device to evaluate. If so, the method 800 selects a different sliver (which has not previously been evaluated) and returns to block 810 where the method 800 again determines whether the currently selected sliver contains a nonfunctional portion. If not (i.e., all the portions in the sliver passed the test or tests), the method 800 proceeds to block 815 where the method 800 evaluates performance parameters for the functional portions in the sliver. For example, when testing the chips, the testing program may determine performance parameters for the respective portions in the chips such as power consumption, data throughput, signal noise, and the like. At block 815, these performance parameters can be evaluated to rank or prioritize the portions in the sliver. For example, a weighting algorithm can be used to evaluate the various performance parameters for each portion and assign a score to the portions. The portions in the sliver can be ranked using the scores. However, there are many different ways for evaluating the performance parameters in order to rank the portions.
At block 820, the inter-chip bridges bordering the sliver are configured to avoid the portion with the worst performance. That is, based on the evaluating the performance parameters, the worst performing portion in the sliver is selected and deactivated. For example, the worst performing portion may be the portion with the lowest static power. In one embodiment, assuming all the portions in the sliver are all operational, the method 800 selects the layer set resulting in the minimums static power configuration. The inter-chip bridges can then be configured to route data around the deactivated portion in the sliver.
At block 825, the method 800 determines whether there are remaining slivers in the 3D stacked device to be evaluated. If not, the method 800 ends.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various examples of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
While the foregoing is directed to specific examples, other and further examples may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.
Klein, Matthew H., Gaide, Brian C.
Patent | Priority | Assignee | Title |
11868174, | Dec 18 2020 | XILINX, Inc.; Xilinx, Inc | Clock tree routing in a chip stack |
Patent | Priority | Assignee | Title |
20130176763, | |||
20140062587, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Apr 24 2018 | GAIDE, BRIAN C | Xilinx, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 045672 | /0887 | |
Apr 25 2018 | KLEIN, MATTHEW H | Xilinx, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 045672 | /0887 | |
Apr 30 2018 | XILINX, Inc. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Apr 30 2018 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Feb 10 2024 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Date | Maintenance Schedule |
Aug 11 2023 | 4 years fee payment window open |
Feb 11 2024 | 6 months grace period start (w surcharge) |
Aug 11 2024 | patent expiry (for year 4) |
Aug 11 2026 | 2 years to revive unintentionally abandoned end. (for year 4) |
Aug 11 2027 | 8 years fee payment window open |
Feb 11 2028 | 6 months grace period start (w surcharge) |
Aug 11 2028 | patent expiry (for year 8) |
Aug 11 2030 | 2 years to revive unintentionally abandoned end. (for year 8) |
Aug 11 2031 | 12 years fee payment window open |
Feb 11 2032 | 6 months grace period start (w surcharge) |
Aug 11 2032 | patent expiry (for year 12) |
Aug 11 2034 | 2 years to revive unintentionally abandoned end. (for year 12) |