Module
The modular system addresses the limitations of current technologies by providing enhanced memory access and inter-processor communication, enabling the processing of larger AI/ML models through optimized chip design and connectivity.
Patent Information
- Application Number
- JP2024552122
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-03-01
- Filing Date
- 2022-10-19
- Publication Date
- 2025-03-21
AI Technical Summary
Current technologies face challenges in providing high-performance calculations due to limitations in accessing large amounts of memory and efficient communication between processing chips, which restricts the size and complexity of artificial intelligence/machine learning models.
A modular system comprising a package board with a semiconductor chip, a ball grid array packaged semiconductor chip, and connection components, where the package substrate includes conductive lines to electrically connect these components, allowing for increased memory access and inter-processor communication.
The modular system enhances processing power and memory access, enabling the handling of larger and more complex AI/ML models by optimizing the use of silicon area and reducing the need for extensive beachfront areas on processing chips.
Smart Images

Figure 2025507887000001_ABST
Abstract
Description
[Technical field]
[0001] The present disclosure relates to a module and a method for manufacturing the module. [Background technology]
[0002] The demand for high performance computing continues to grow, especially as we strive to meet the demands of artificial intelligence / machine learning models that impose challenging requirements on computational resources. It is known to address this particular demand by interconnecting multiple processing chips in clusters, where the processing chips are configured to work collaboratively to meet the demands of processing power needed to process large scale AI / ML models.
[0003] Another requirement imposed by high performance computing is the ability to access large amounts of memory. To increase memory capacity, attempts are being made to connect external memories to processing nodes in clusters. Such external memories may be connected by memory buses that provide an access path between the external memories and the processing nodes. These memory buses may take the form of parallel or serial links. For example, dynamic random access memories (DRAMs) may be mounted in dual in-line memory modules (DIMMs) on server racks. These can provide scalable memory capacity on the order of terabytes. Such DIMMs may be mounted vertically on the server racks and many DIMMs can be stacked together to provide the required memory capacity for a computer. Summary of the Invention [Means for solving the problem]
[0004] The inventors seek to address the coupling problem by providing a cluster of processing chips that have access to large memory and also allow the processing chips to communicate with each other to increase processing power for specific tasks.
[0005] The present inventors have recognized certain shortcomings with the current nature of cluster connectivity. Silicon chips contain circuits arranged in a two-dimensional manner on a die surface that is typically divided into "cores" (e.g., processor cores 2) surrounded by a perimeter or "beachfront" 7 (see FIG. 1). The beachfront is used for input / output (I / O) circuitry located on the edge of the chip to reduce signal breakout to packaged pins. For example, beachfront 7 is used to accommodate inter-processor links 6a, 6b and processor-memory links 8a...8d to external memory as illustrated in FIGS. 2 and 3.
[0006] The area of the beachfront depends on the type and bandwidth of the I / O requirements. High performance computing chips often use an approximate maximum manufacturable die size ("full scale") of about 25.5 mm by 32.5 mm, requiring a beachfront depth of about 2 mm on each of the four edges of the die. With current lithography techniques, a full scale die results in a die core of about 21.5 mm by about 28.5 mm, which is about 74% of the total die area. The computational resources of the die are constrained to this core portion, and the inventors have found that the cost of the beachfront area is quite high. Figure 1 shows an example of a die with a full perimeter beachfront (all four edges) labeled processor cores 2 and 7.
[0007] The present disclosure may help address these problems, as well as any other problems that will be apparent to the skilled reader from the disclosure contained herein.
[0008] According to an aspect of the present disclosure, a package substrate for housing a flip-chip mounted semiconductor chip in a module; a first flip-chip mounted semiconductor chip mounted on a package substrate; a first ball grid array mounted packaged semiconductor chip mounted on a package substrate, the first flip chip mounted semiconductor chip and the first ball grid array mounted semiconductor chip being in electrical communication with each other; a connection component mounted on the package substrate and including an electrical coupling portion for coupling the package substrate to a corresponding connection component on the motherboard; Including, the package substrate includes a first ball grid array mounted semiconductor chip mounted on the package substrate and a plurality of conductive lines coupling the first flip chip mounted semiconductor chip to the connecting components; Provide a module.
[0009] The first ball grid array mounted semiconductor chip may be a dynamic random access memory (DRAM) chip. The DRAM chip may be a LPDDR chip. The module may include a plurality of ball grid array mounted semiconductor chips.
[0010] The package substrate may be a monolithic package substrate, and at least some of the plurality of ball grid array attached packaged semiconductor chips may be disposed on the monolithic package substrate.
[0011] The module may include a plurality of flip chip mounted semiconductor chips mounted to a package substrate. The plurality of flip chip mounted semiconductor chips may be in electrical communication with the plurality of ball grid array mounted semiconductor chips. Each flip chip mounted semiconductor chip may be in electrical communication with a subset of the plurality of ball grid array mounted semiconductor chips. Each flip chip mounted semiconductor chip may be in electrical communication with four ball grid array mounted semiconductor chips. The module may include four flip chip mounted semiconductor chips.
[0012] The first flip-chip mounted semiconductor chip may include routing logic configured to route data between connection components mounted to the package substrate and the first ball grid array mounted packaged semiconductor chip.
[0013] The conductive traces coupling the first flip-chip mounted semiconductor chip to the connection component may include a plurality of processor connections. The first flip-chip mounted semiconductor chip may include routing logic configured to route data from one of the processor connections to another of the processor connections. The processor connections may include serial connections, such as serializer / deserializer (SERDES) links.
[0014] The first flip chip mounted semiconductor chip may be mounted to a first side of the package substrate.The first ball grid array mounted semiconductor chip may be mounted to the first side of the package substrate.The first ball grid array mounted semiconductor chip may be mounted to a second side of the package substrate.
[0015] The module may include a second ball grid array mounted semiconductor chip mounted on a second side of the package substrate. The package substrate may include a plurality of vias forming electrical paths electrically connecting the second ball grid array mounted semiconductor chip to the first flip chip mounted semiconductor chip. At least one of the vias may be disposed under the first flip chip mounted semiconductor chip.
[0016] The first flip-chip mounted semiconductor chip may be mounted on a first side of the package substrate, and the connection component may be mounted on a second side of the substrate at a location corresponding to the location of the first flip-chip mounted semiconductor chip. The first flip-chip mounted semiconductor chip may be configured to receive power from a power supply component electrically coupled to the connection component via the connection component. The module may include a plurality of vias in the package substrate forming an electrical path connecting the connection component to the first flip-chip mounted semiconductor chip. The module may not include a power supply component (e.g., a load power supply point). The first flip-chip mounted semiconductor chip may receive power only via the connection component.
[0017] The first side and the second side of the substrate may be opposing sides of the substrate.
[0018] The package substrate may include a plurality of layers suitably formed on a core. At least two of the layers may include conductive traces for transmitting signals between the first flip-chip mounted semiconductor chip and the first ball grid array mounted packaged semiconductor chip, and between the first flip-chip mounted semiconductor chip and connecting components. The substrate may be a high density interconnect (HDI) substrate.
[0019] The connection component may be a mezzanine connector. The connection component may include a plurality of pins. The connection component may be hermaphroditic. The module may include a plurality of connection components. The module may include a pair of connection components. The connection component may be a ball grid array mounted connection component.
[0020] According to another aspect of the disclosure, there is provided a system including a module as described herein and a plurality of processor chips connected to the module via a connecting component.
[0021] According to another aspect of the disclosure, there is provided a system including a module as described herein and a motherboard to which the module is mountable. The motherboard may be configured for mounting a processor chip. The system may include the processor chip. The system may include multiple processor chips and multiple modules. The motherboard may include power supply components that provide power to the module.
[0022] According to another aspect of the disclosure, 1. A method of manufacturing a module, comprising the steps of: providing a packaging substrate; forming a plurality of conductive traces on a package substrate; mounting the first semiconductor chip to a package substrate by flip-chip mounting; attaching a ball grid array packaged semiconductor chip to a package substrate; attaching connection components to the package substrate, the connection components including electrical connections that couple the package substrate to corresponding connection components on a motherboard; Including, a plurality of conductive lines electrically connecting the first semiconductor chip to the ball grid array packaged semiconductor chip and the connecting components; A method is provided.
[0023] The method may include heating the module and mounting the first semiconductor chip prior to mounting the ball grid array packaged semiconductor chip or connecting components. The method may include underfilling the first semiconductor chip.
[0024] The method may include the steps of heating the module and mounting the ball grid array packaged semiconductor chips prior to mounting the connection components, and heating the module and mounting the connection components.
[0025] The method may include forming a plurality of vias in a package substrate, mounting a first semiconductor chip to a first side of the package substrate, and mounting at least one of the ball grid array packaged semiconductor chip or a connecting component to a second side of the package substrate. At least one of the conductive lines may pass through the vias and connect the first chip to the ball grid array packaged semiconductor chip or the connecting component.
[0026] The method may include forming a plurality of layers on a package substrate core, at least two of the layers including conductive lines transmitting signals between a first semiconductor chip and a ball grid array packaged semiconductor chip and connecting components.
[0027] Further optional features of the method are described above with respect to the modules and may be combined in any combination.
[0028] In certain embodiments of the present invention, any processor chip may access any memory attached to any of the fabric chips in the computer cluster. Memory access may be via high speed serial links. Additionally, any processor may exchange packets with any other processor in the computer via routing logic in the fabric chips.
[0029] In certain aspects of the present invention, the inventors enable clustering of processing chips in multiple tiers.
[0030] In certain aspects of the present invention, each processing chip improves processor core area for a particular size of substrate.
[0031] Another requirement imposed by high performance computing is the ability to have a high bandwidth to large capacity memories. Currently, so-called high bandwidth memories (HBM) are implemented by providing the memory within the physical structure of the processing node itself, i.e., in close proximity to the processing chips that are mounted on a silicon substrate in the package that forms the processing node. In effect, the HBM is butted up against the processing chips on the silicon substrate, so as to be as physically close as possible to the processing chips that provide the processing functionality. In this way, although high bandwidth is achieved, there is a limit to the memory capacity based on the physical size of the memory that can be accommodated in this type of structure. Furthermore, such HBMs are expensive to manufacture.
[0032] In the field of artificial intelligence (AI) and machine learning (ML), mathematical models can be extremely large and require extremely large amounts of memory to accommodate the mathematical models. As the size of the models increases, the cost of providing HBM also increases.
[0033] Currently, the lack of availability of large capacity high bandwidth memory creates constraints on the size and nature of models available to machine learning / artificial intelligence computers. In particular, the knowledge capacity of a model is a function of the amount of memory that is reasonably accessible. In some embodiments of the invention, a portion of the beachfront may be no longer used for connection to external memory and made available to the HBM.
[0034] For a better understanding of the present invention and to show how it may be carried into effect, reference will now be made, by way of example only, to the accompanying drawings in which: [Brief description of the drawings]
[0035] [Figure 1] FIG. 1 is a simplified block diagram of a chip connected to a memory. [Diagram 2] 1 is a schematic diagram of multiple interconnected chips. [Diagram 3] FIG. 1 is a block diagram of multiple processor chips connected using a switch core. [Figure 4] 1 is a simplified block diagram of a processor chip with a reduced beachfront. [Diagram 5] 1 is a simplified block diagram of a computer including interconnected processor chips and fabric chips. [Figure 6] 1 is a simplified block diagram of a computer including interconnected processor chips and fabric chips having a higher ratio of fabric chips to processor chips. [Figure 7] 1 is a simplified block diagram of a computer including interconnected processor chips and fabric chips, each processor chip with high bandwidth memory. [Figure 8] 1 is a simplified block diagram of a computer including a set of interconnected clusters. [Figure 9] FIG. 2 is a simplified block diagram of a fabric chip. [Figure 10] 1 is a schematic diagram of an example processor chip. [Figure 11a]FIG. 2 is a top perspective view of an example memory and routing module. [Figure 11b] FIG. 11b is a bottom perspective view of the example memory and routing module of FIG. [Figure 12] 12 is a schematic diagram of a top view of the example memory and routing module of FIG. 11. [Figure 13] 13 is a schematic diagram of the underside of the example memory and routing module of FIGS. 11 and 12. FIG. [Figure 14a-14b] FIG. 14 is a schematic diagram of the example memory and routing module of FIGS. 11-13. [Figure 15] 1 is a schematic diagram of an example layout of a fabric chip. [Figure 16] 14 is a schematic diagram illustrating pins of connection components of the example memory and routing modules of FIGS. 11-13. FIG. [Figure 17] 1 is a simplified flowchart of an example method for manufacturing a memory and routing module. [Figure 18] 14 is a simplified cross-sectional view of the example memory and routing module and motherboard of FIGS. 11-13. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0036] In the drawings, corresponding reference characters indicate corresponding components. Those skilled in the art will appreciate that the elements in the drawings are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the drawings may be exaggerated relative to other elements to help facilitate a better understanding of the various example embodiments. Moreover, to facilitate easy viewing of the illustrations of these various example embodiments, common well-understood elements that are useful or necessary in commercially viable embodiments are often not shown.
[0037] There are various known methods for forming clusters of processing chips by interconnecting the processing chips with each other.
[0038] Figure 1 shows an example of a processor chip intended to be connected in a processing cluster. The processing chip 1 includes a processor core 2 (shown cross-hatched) implemented on a silicon die 4. It is convenient to distinguish between a beachfront area where external links are provided and a core area for the processing circuitry of the processor core. The beachfront area includes inter-processor links 6a, 6b, and processor-memory links 8a, 8b, 8c, 8d (shown in Figure 1) connected to respective DRAMs 10a, 10b, 10c, 10d.
[0039] Figure 2 illustrates a cluster of four processing units of the type illustrated in Figure 1 with exhaustive direct connections of inter-processor links. Each processor core 2a, 2b, 2c, 2d is shown with three external connectors 5 along the top edge and three external connectors 5' along the bottom edge. In the cluster of Figure 2, each processor core is connected to each other processor core by two external connection links attached to the external connectors in an exemplary manner. See, for example, links L and L' connecting processor core 2a to processor core 2d. Note that there remains a need for a dedicated processor chip-memory bus to accommodate DRAM.
[0040] This is just one example of inter-processor connectivity in a cluster.
[0041] An alternative way of connecting processor chips together in a cluster is to use a switch fabric. Figure 3 is a schematic diagram illustrating the connection of four processor cores 2a, 2b, 2c, 2d to each of two switch cores 12a, 12b. Each switch core can route traffic between specific processor cores under program control. In this arrangement, each processor has access to its own externally connected DRAM.
[0042] In the above examples, each processing chip has access to memory. In some previous examples, that memory may be externally attached memory connected to each processor core of the cluster, and / or high bandwidth memory (HBM) connected within the processor package. In either case, the memory attachment uses the "beach front" of the die.
[0043] In a particular embodiment of the present disclosure, a computer includes a plurality of processor chips and fabric chips arranged in a cluster. Within the cluster, each processor chip is connected to all fabric chips, and each fabric chip is connected to all processor chips in an exhaustive bipartite connection configuration. There are no direct connections between fabric chips in the cluster. Additionally, there are no direct connections between processor chips. Each fabric chip has routing logic configured to route incoming packets from one processor chip connected to the fabric chip to another processor chip. Additionally, each fabric chip has means for attaching to an external memory. The routing logic can route packets between a processor connected to the fabric chip and a memory attached to the fabric chip. The fabric chip itself includes a memory controller that performs memory control functions that manage memory accesses from and to the memory attached to the fabric chip.
[0044] In certain embodiments described further herein, clusters of processing chips and fabric chips may themselves be interconnected to form a larger computer system. Each processor chip in the cluster may access any of the memory attached to any of the fabric chips in the cluster. This greatly expands the memory capacity available to any particular processor chip.
[0045] The connection configurations described herein have the further advantage that, in certain embodiments, it is not necessary to use the entire edge of the processor die to surface the external connections.
[0046] The inventors have found it advantageous to limit the beachfront required for connections to fewer than all four edges of the die, thus releasing more silicon for fabrication of the processing "cores." For example, if only the short edges of a full reticle die are used for I / O, the area available for the processor cores on the chip increases to about 88% of the total die area, about 19% more than in the four-sided case. Figure 4 shows an example of such a chip 1' in which the vertical edges cannot accommodate the beachfront, and the top and bottom edges each have a beachfront 7a, 7b.
[0047] Prior art processing cluster connectivity requirements include a beachfront around the entire perimeter (e.g., as shown in FIG. 1). Certain implementations of the present connectivity configuration described herein allow for the use of processor dies that have beachfronts only on their top and bottom edges, but not on their vertical edges (as shown in FIG. 4).
[0048] In accordance with the presently described embodiment of the invention, multiple processors are connected in a cluster using one or more "fabric chips." Each fabric chip provides access to external memory (e.g., DRAM) and also provides routing for inter-processor traffic. Reference is now made to FIG. 5, which illustrates four processor chips 20a, 20b, 20c, 20d. Each processor chip includes a processor core area 22a, 22b, 22c, 22d that extends to each vertical edge of the chip. Each processor chip has an upper beachfront area 30a and a lower beachfront area 30b (only chip 20a is shown). Upper beachfront area 30a has a set of external port connections C1, C2, C3, C4 (labeled only for processor chip 20a). Each processor chip can also be seen to have four external port connections in the upper beachfront area. Similarly, the lower beachfront area of each processor chip has four external port connections labeled C5, C6, C7, C8. Note that the bottom set of external port connections is labeled only for processor chip 20a, as it will be appreciated that the other processor chips similarly each have a set of external port connections in their lower beachfront regions.
[0049] The cluster of FIG. 5 further includes eight "fabric chips." Each fabric chip includes a fabric core 40a, 40b, . . . 40h. Each fabric chip has a lower beachfront area 44a, . . . 44h with a set of external ports. These external ports are provided only on the fabric chip 40a at the port connections labeled FC1, FC2, FC3, FC4. It can be seen that each fabric chip has a corresponding set of external ports on each lower beachfront area. On the upper beachfront area of each fabric chip, one or more memory attachment interfaces are provided that allow the fabric chip to connect to one or more memories, illustrated in FIG. 5 as respective DRAMs 10a, 10b, 10c, 10d, . . . 10p. For example, the fabric core 40a shown in FIG. 5 is connected to two DRAMs 10a, 10b by suitable memory attachment interfaces provided on the upper beachfront 46a of the fabric chip. Other large capacity memories may be connected, such as double data rate DRAM (DDR), and more recent manifestations of that DRAM, such as low power DDR (LPDDR). The high bandwidth connections between the processor chips and the fabric chips in the cluster are "exhaustively bifurcated." This means that each processor chip is connected to every fabric chip, and each fabric chip is connected to every processor chip. The connections are via links (e.g., L1) between the processor ports at the port connections (e.g., C1) and the fabric chip ports at the port connections (e.g., FC1). Note, however, that in the illustrated example, there are no direct high bandwidth connections between the processor chips or between the fabric chips in the cluster. Furthermore, in the illustrated example, there is no externally attached memory directly connected to each processor (although there may be high bandwidth memory within the chip package (see below)). Each fabric chip provides a routing function that provides paths between every pair of processors, and between each processor and the memory attached to the fabric chip.
[0050] Furthermore, the links may be manifested in any suitable manner. Each link may be connected or reconnected to a different port to set up the computer configuration. Once the computer configuration is set up and operational, the links are not multiplexable and do not fan in or fan out. That is, instead, there are no intermediate switches directly connecting a port on the processor to an end port on the fabric chip. Any packet sent on the link is received at a port at the other end of the fixed link. The links are advantageously bidirectional, and preferably the links can operate in both directions at the same time, although bidirectionality is not a mandatory requirement. One particular category of communication links is the SERDES link, which has power requirements that are independent of the amount of data transmitted on the link, or the time consumed transmitting that data. SERDES is an acronym for Serializer / Deserializer, and such links are known. For example, a SERDES link may be implemented using twisted pair wires. To transmit a signal on the wires of such links requires power to be applied to the wires, and the voltage is changed to generate the signal. SERDES links have the property that there is a fixed power to bandwidth capacity on the SERDES link, whether it is in use or not. This is due to the need to provide clocking information on the link by constantly switching the current or voltage state of the line, even when no data is being transmitted. As is known, data is transmitted by holding the state of the line and indicating a logic "0" or logic "1". SERDES links are implemented at each end by circuitry that connects the link layer devices to a physical link (e.g., a copper wire). This circuitry is sometimes called a PHY (physical layer). In this example, layers 1 and 2 of the Ethernet protocol are used to transmit packets on the link. It will be appreciated, however, that any data transmission protocol can be used.
[0051] There are several advantages to the computer described herein.
[0052] There is no longer a need to dedicate a fixed percentage of the processor beachfront (I / O bandwidth) to a fixed amount of memory or inter-processor connections. All processor I / O bandwidth passes through the fabric chip and is available on demand for either purpose (memory or inter-processor).
[0053] Under some popular models of microprocessor computation, such as bulk synchronous parallelism (BSP), the peak DRAM bandwidth and peak inter-processor bandwidth usage may not be simultaneous. Thus, the total bandwidth requirement can be met with a smaller processor beachfront, giving the processor chip a larger core area. BSP is known per se in the art. According to BSP, each processing node performs computation and exchange phases (also called communication or message passing phases) in alternating cycles. The computation and exchange phases are performed by the processing chips that execute instructions. During the computation phase, each processing unit performs one or more computation tasks locally, but does not communicate any results of these computations to other processing chips in the cluster. In the exchange phase, each processing chip may exchange one or more processing results from a previous computation phase to one or more other processing chips in the cluster. It should be noted that different processing chips may be assigned to different groups for synchronization purposes. According to the principles of BSP, a barrier synchronization is performed at the junctions that transition from the computation phase to the exchange phase, or from the exchange phase to the computation phase, or at both junctions. That is, require all processing chips in a group to complete each computation step before any of the group can proceed to the next switching step, or require all processing chips in a group to complete each switching step before any processing chip in the group can proceed to the next computation step, or implement both of these conditions. This sequence of switching and computation steps is repeated over a number of cycles. In BSP terminology, each iterative cycle of switching and computation steps is sometimes called a "superstep."
[0054] This has the practical effect that there are situations where there is no simultaneous use of all links required to access memory (for the purposes of the computation phase) and the links used to exchange data between processing chips in the switching phase. As a result, there is maximum efficient utilization of fixed links without compromising memory access times and inter-processor switching delays. Nevertheless, it will be appreciated that the embodiments described herein have applications other than when used with BSP or other similar synchronization protocols.
[0055] Links can be dynamically deactivated while not in use so as to effectively not consume power. However, the operating time and non-deterministic nature of machine learning applications generally make dynamic operation during program execution problematic. As a result, the inventors have determined that it is better to use the fact that link power consumption is essentially constant for any particular configuration, and the best optimization is to maximize the use of physical links by maintaining as much parallel inter-processor and processor-memory activity as possible.
[0056] All memory in the cluster is accessible to each processor without having to go around in a loop through another processor. This shared memory arrangement can benefit software efficiency.
[0057] In the example shown in FIG. 5, there are two "ranks" of fabric chips, one mounted on each top and bottom edge of the processor chip. The top rank includes fabric cores 40a...40d, connected to each processor core by a respective link. For example, processor core 20a is connected to fabric core 40a by link L1, to fabric core 40b by link L2, to fabric core 40c by link L3, and to fabric core 40d by link L4. The bottom rank includes fabric cores 40e...40h. Fabric core 40a is also connected to each processor core 20a...20d by corresponding links (not labeled, although shown in the drawing, for reasons of clarity). There is no use of vertical processing chip edges for beachfronts.
[0058] However, there are different design choices within the overarching concept: for example, the vertical edge of the processor can be used to provide more bandwidth to the fabric chips, and all links coming out of the beach front of the processor chip can be passed to one rank or three ranks of the fabric chips, etc.
[0059] The number of fabric chips in each rank may differ from the number of processor chips. What remains important to achieving the advantages of the present invention is maintaining an exhaustive bipartite connection between the processing chips and the fabric chips, with routing functions and external memory access provided by the fabric chips.
[0060] FIG. 6 shows a specific example of connecting four processing chips to eight fabric chips in an upper rank and eight fabric chips in a lower rank. Each processing chip connects to sixteen fabric chips. Take the processor chip 20a as an example. The processor chip has eight upper rank connectors C1, C1', C2, C2', C3, C3', C4, C4', each connected to a respective link connector on each fabric core, labeled 40a, 40a' in FIG. 6. The processor chip has eight lower rank connectors C5, C5', C6, C6', C7, C7', C8, C8', each connected to a respective link connector on each of the eight fabric chips in the lower rank. Each fabric chip connects to four processor chips.
[0061] It should be noted that the use of external connectors to provide exhaustive bipartite connectivity in a cluster according to examples of the invention does not preclude the presence of other I / O ports on the processor chip or fabric chip. For example, a particular one of the processor chips or fabric chips in a cluster may be provided with an I / O port that allows connectivity between multiple clusters, or connection to a host device, etc. In one embodiment described with reference to Figures 8 and 9, the fabric chip provides this additional connectivity.
[0062] It should further be noted that additional memory can be mounted directly on the processor chip, for example along a vertical edge. That is, additional high bandwidth memory (HBM) may be provided in close proximity to the processing chip mounted on the silicon substrate in the package forming the processing node. In fact, the HBM is butted against the processing chip on the silicon substrate so as to be as physically close as possible to the processing chip providing the processing function. For example, the high bandwidth memory (HBM) can be mounted on the processor chip, while the large capacity memory can be mounted on the fabric chip, thus combining the advantages of both memory types in a cluster. FIG. 7 illustrates an embodiment in which high bandwidth memory (HBM) modules 26 are mounted on the east and west edges of each processor chip 20'a, 20'b, 20'c, 20'd. In other respects, the computer illustrated in FIG. 7 has the same connections as the computer described in FIG. 5. The HBM 26 may be mounted by short parallel connections of memory buses formed on the substrate, or by using silicon bridges on the package substrate.
[0063] In the exemplary computer described herein, the processor chip 20 is not intended to be deployed standalone. Instead, the deployment of the processor chip is in a computer cluster where the processor chip is supported by one or more fabric chips 40. The processor chips 20 connect to each other via the fabric chips 40, allowing the use of all processor chip links L1, L2, etc. for simultaneous use as inter-processor links and memory access links. In this manner, the computer provides a larger capacity, faster memory system than existing computer systems. In current computer systems, providing large capacity, high bandwidth memory is becoming increasingly expensive. Furthermore, limitations remain on the processing power that can be obtained while providing high bandwidth memory access and large capacity memory. The present computer can overcome those limitations.
[0064] By placing the routing logic in the fabric chip, the processor chip does not need to have routing logic for external routing functions, which frees up silicon area to maximize I / O bandwidth per processor chip and also maximizes the area available for processing circuitry within the processor core.
[0065] By placing link ports along the north and south edges, it frees up the east / west edges, allowing processor cores to extend to the east / west edges and maximize processing power, or leaving the east / west edges free for high bandwidth memory consolidation.
[0066] A computer may be operated in different topologies. In one example, a group of four processor chips and eight fabric chips (e.g., as illustrated in FIG. 5) may form a cluster. Within a cluster, each group of four fabric chips connected to one of the processor chip edges is referred to herein as a rank. A cluster of five contains two ranks.
[0067] A pod may contain multiple clusters. Clusters may be interconnected within a pod using processor-to-processor links in the fabric chips. Pods may be interconnected with each other using pod-to-pod links in the fabric chips. These are shown in more detail in FIG. 9, which illustrates an example fabric chip.
[0068] FIG. 8 is a schematic diagram of a system topology and hierarchy according to one embodiment. FIG. 8 illustrates a number of pods P1, P2, P3, . . . Pn (labeled POD16). In the example of FIG. 8, n=8, but it is readily apparent that a different number of pods can be connected to a computer system using the techniques described herein. One of the pods, pod P1, is shown in detail. Pod P1 includes four clusters Q1, Q2, Q3, Q4. In the example of FIG. 8, each cluster includes four processor chips 20a, 20b, 20c, 20d that share 32 fabric chips. A fabric chip 40 is labeled in FIG. 8, with Q4 indicating, for example, that fabric chip 40 (Q4) is in cluster Q4. As shown in FIG. 8, in each cluster Q1, Q2, Q3, Q4, the four processor chips 20a, 20b, 20c, 20d are connected to the 32 fabric chips in an exhaustive bisection arrangement. That is, as described above, each fabric chip in a cluster is connected to a total of four processor chips, and each processor chip is connected to a total of 32 fabric chips. Each processor chip has 32 port connections C1, C2, ... C32 (16 on the top edge and 16 on the bottom edge). As illustrated in Figure 9, in a particular embodiment, each port connection provides three bidirectional serial links, for a total of 96 processor links. Each set of 12 processor external links (out of the 96 links) connects to each set of four fabric chips (three processor links to each fabric chip port connection FC). Thus, eight sets of 12 links connect to eight sets of four fabric chips within a cluster. Four clusters Q1, Q2, Q3, Q4 are grouped together to form a pod, with pod-to-pod links of 32 fabric chips within each cluster. Each cluster sends three bundles to each of the 32 links, and each bundle connects to each of the other three clusters. A bundle of pod-facing links between two clusters includes one link between each of the 32 corresponding peer fabric chips in the two clusters. A particular pod-facing link may be connected to a third-party Ethernet switch.
[0069] FIG. 9 is a simplified block diagram of components on the fabric chip 40. As shown in FIG. 9, routing logic 46 is connected to the DDR interface block 48 for transferring data packets between the DDR interface block 48 and other ports. Further, routing logic 46 is attached to each processor-facing link port. Each port includes an Ethernet port controller EPC. Routing logic is attached to the Ethernet port controller of the pod-facing port and the Ethernet port controller of the system-facing link. Further, routing logic 46 is attached to the PCI complex for interfacing to the host system. PCIe (Peripheral Component Interconnect Express) is an interface standard for connecting high-speed computers.
[0070] FIG. 9 shows an example of a fabric chip that can be used to configure a computer by connecting computer clusters together in a hierarchical manner, in addition to inter-processor and processor-to-memory communication. First, the components of the fabric chip used to perform inter-processor and processor-to-memory communication are described. Each fabric core port connection includes three serial links. Each serial link includes a port with an Ethernet port controller (EPC). As described, these links may be SERDES links, e.g., twisted pair wires that enable serial packet communication.
[0071] For reasons of clarity, not all components in FIG. 9 are illustrated with associated reference. Each fabric core connection FC1, FC2, FC3, and FC4 has a configuration as described herein with reference to a fabric core port connection FC2 that connects to a second processor (e.g., processor 20b in FIG. 6). The fabric connection FC2 includes three links L2a, L2b, L2c, each including an Ethernet port controller EPC2a, EPC2b, EPC2c, respectively. Note that in other embodiments, a single physical link may be provided, or a different number of physical links may be provided for each fabric chip connection FC. Thus, note that the link labeled L2 in the previous figures may include three individual serial links (e.g., L2a, L2b, and L2c). The routing logic 46 in the fabric chip 40 may be implemented as a ring router, a crossbar router, or in any other manner. The fabric chip further connects to external memories (e.g., DRAMs 10A, 10B, etc.) (not shown in FIG. 9). Although two DRAMs are shown in the previous figures, in the embodiment of FIG. 9, the fabric chip connects to four DRAMs. To make this connection, the fabric chip includes four DRAM interface blocks DIB1, DIB2, DIB3, and DIB4 associated with four DDR sub-connect layers DDR sub1, DDR sub2, DDR sub3, and DDR sub4, respectively. Each DDR interface block DIB 48 incorporates a memory controller that manages access to the memory attached to the block. Although one memory attachment interface 44 is shown in FIG. 9, it will be appreciated that each DDR sub-layer has a respective memory attachment interface that attaches to an external DRAM. The routing logic 46 is configured to route memory access packets received from the attached processor core to an addressed one of the data interface blocks DIB1-DIB4. The routing logic 46 is further configured to route from one attached processor chip to another attached processor chip via each fabric chip port.In certain embodiments, the routing logic prevents memory packets (e.g., memory access response packets) from being routed from one memory attached interface to another. In such embodiments, the memory response packets may simply be routed to the processor chip via the correct port attached to the routing logic 46. For example, an incoming packet on link L2a of fabric core port connection FC2 is routed to an addressed port connected to the routing logic 46 based on the packet's routing information. For example, if the packet is intended to be routed to processor 20c, the routing logic 46 identifies processor 20c from the packet's routing information and causes the packet to exit via an Ethernet port controller onto a link attached to processor 20c.
[0072] If the packet is a memory access packet, the routing logic routes the packet to the appropriate DDR interface block based on the memory address of the packet. Note that in this embodiment, each DDR interface block DIB1...DIB4 includes four memory access channels. It is understood that any number of memory access channels can be provided by each interface block DIB1...DIB4. The memory access channels are managed by a memory controller in each data interface block DIB1...DIB4.
[0073] As mentioned above, in the example shown in FIG. 9, the fabric chip 40 has additional components that allow the computer to be configured in interconnected clusters. To this end, the fabric chip includes a pod-facing port connection PL. The pod-facing port connection PL includes three ports, each with an Ethernet port controller Pa, Pb, Pc connected to each link. The routing logic detects a packet whose packet information indicates that the packet should not be routed to a processor in this cluster, but instead to a processor in another cluster, and routes the packet to one of the pod-facing ports. It should be noted that the pod-facing port connection PL can send packets to a corresponding pod-facing port in a fabric chip on another cluster, or receive packets from a corresponding pod-facing port on a fabric chip on another cluster.
[0074] The fabric chip of FIG. 9 may also route the packet to another pod in the system. To this end, a system port SL is provided. The system port includes a corresponding Ethernet port controller EPC and is connected to a system serial link connected to a corresponding port in another pod. The routing logic may determine that the packet is intended to be routed to another pod in the system and send the packet to the system port SL. The packet may be received on the system port SL from a corresponding system port of another fabric chip in another pod in the system connected via the system serial link and may be applied to the routing logic.
[0075] It will be appreciated that any type of routing logic may be utilized to route traffic from one external connection of a fabric chip to another connection of the fabric chip to another processor chip via an external port or to an attached memory via a memory attached interface. The term data packet as used herein means a string of bits that includes a payload to be transmitted between processor chips or between a processor chip and a memory attached to a fabric chip. The packet includes information (e.g., a destination identifier and / or memory address for routing). In some embodiments, the destination processor identifier may be included in the packet header. One type of ring routing logic is described in Graphcore's UK Patent Application No. 2115929.8.
[0076] As described herein, each processing chip can perform a processing or computational function. There are many possible different manifestations of suitable processing chips. Graphcore has developed an Intelligent Processing Unit (IPU) as described, for example, in U.S. Patent Application Nos. 15 / 886009, 15 / 886053, and 15 / 886131 [PWF Refs. 408525US, 408526US, and 408527US], the contents of which are incorporated herein by reference. FIG. 10 is a schematic diagram of an IPU. The IPU includes multiple tiles 103 on a silicon die, each including a processing unit with local memory. The tiles communicate with each other using time-deterministic exchanges. Each tile 103 has an instruction store that holds a local program, an execution unit that executes the local program, a data store that holds data, an input interface with a set of input lines, and an output interface with a set of output lines. A switching fabric 101 (sometimes called a switch or switching fabric) is connected to each tile by a respective set of output lines and to each tile by a respective set of input lines via switching circuits connectable by each tile. A synchronization module (not shown) is operable to generate synchronization signals and to switch between the computation phase and the switching phase. The tiles execute their local programs in the computation phase according to a common clock that may be generated by the die or received by the die. At a given time in the switching phase, the tiles execute send instructions from their local programs to send data packets on an output set of connection lines, the data packets being destined for at least one recipient tile but not having a destination identifier that identifies that recipient tile. At a given switch time, the receiving tile executes switch control instructions from its local program to control the switching circuits to connect an input set of lines to the switching fabric and receive the data packets at a receive time. The send times at which data packets are destined to be sent from the sending tile and the given switch times are controlled by the common clock for the synchronization signal.
[0077] The time-deterministic exchange allows for efficient transfers between tiles on a die. Each tile has its own local memory that provides data storage and instruction storage. The IPU is further connected to external memory that can transfer data to the IPU for use by the tile via the fabric chip as described herein.
[0078] The tiles 103 of the IPU may be programmed such that data packets sent by a SEND instruction from a local program are intended to access memory (memory access packets) or have a destination of another IPU connected in the cluster or system. In such a case, the data packets are sent by the originating tile 103 to the switching fabric, but are not picked up by the receiving tile in the IPU. Instead, the switching fabric ensures that the tiles are provided with the appropriate connectors C1, C2, etc. for external communication from the IPU. Packets for off-chip communication are generated to include information defining the final off-chip destination, but not the external port to which it should be sent. Packets may be sent to an external port, using the principle of time-deterministic switching to identify the external port for the packet when code is compiled against the tile. For example, memory access packets may identify a memory address. Packets for another IPU may include an identifier of the other IPU. This information is used by routing logic on the fabric chip to correctly route off-chip packets generated by the IPU.
[0079] The diagram in Figure 10 shows five example regions of an example IPU chip separated by four dashed boundary lines 105. Note that the dashed lines represent abstract boundaries 105 of abstract regions on the processor chip shown for illustrative purposes, and that the boundaries 105 do not necessarily represent physical boundaries on the IPU chip.
[0080] From the top to the bottom of the diagram in FIG. 10, the regions separated by boundary lines 105 are the upper beachfront, the upper tile region, the switching fabric region, the lower tile region, and the lower beachfront, respectively.
[0081] The above presents a logical arrangement of the computer system described herein, including processor cores or chips 20, fabric chips 40 and DRAM 10. Below, the physical layout and organization of some elements of the computer system are described in more detail.
[0082] 11a-14b, a memory and routing module 100 is shown according to an example of the disclosure.
[0083] Module 100 includes multiple fabric chips 140, multiple DRAMs 110, and two connection components 160. Fabric chips 140 and DRAMs 110 correspond to fabric chips 40 and DRAMs 10 described above. That is, fabric chips 140 and DRAMs 110 described below may incorporate the features described above in terms of fabric chips 40 and DRAMs 10. Fabric chips 140 on module 100 include a memory controller, described in more detail below, that accesses DRAMs 110.
[0084] The fabric chips 140, the DRAM 110 and the connection components 160 are mounted on a substrate 170 in the form of a planar plate. The plate has dimensions of approximately 80 mm by 70 mm, for example, approximately 5300-5400 mm. 2 The substrate may be 77 mm by 69 mm, giving a surface area of 100 mm. The construction of the substrate and the attachment of components to the substrate are described in more detail below.
[0085] The top side 171 of the substrate 170 supports, for example, eight DRAMs 110a, which may be arranged in a 2x4 grid extending from one edge 170a to the opposing edge 170b of the substrate. The 2x4 grid of DRAMs 110a is then arranged approximately equidistant between two other edges 170c, 170d, effectively forming a strip along the center of the module 100.
[0086] Additionally, the underside 172 of the substrate supports eight DRAMs 110b. The DRAMs 110b on the underside 172 of the substrate are positioned in positions corresponding to the DRAMs 110a on the topside 171. In other words, each DRAM 110a on the topside 171 is positioned directly above a DRAM 110b on the bottomside 172.
[0087] It will be appreciated that "upper side" and "lower side" as used herein are merely labels referring to the two sides of substrate 170, and that module 100 may be mounted during use such that lower side 172 is not below upper side 171.
[0088] Each DRAM 110 may be a DDR (Double Data Rate) DRAM. In one example, each DRAM is a LPDDR (Low Power DDR) DRAM (e.g., LPDDR5 DRAM). Each DRAM may have a capacity of 16 GB, but in other examples, the capacity may be 24 GB or 32 GB. LPDDR DRAM is designed for mobile computing situations (e.g., mobile phones or laptop computers). However, the inventors have found that such memory can advantageously provide a large capacity low latency memory suitable for meeting the demands of artificial intelligence / machine learning models in high performance computing situations.
[0089] Additionally, module 100 includes four fabric chips 140 mounted on top side 171. Fabric chips 140 are sometimes referred to herein as "routing chips" or "memory mounting and routing chips" given their above-mentioned function of routing data between different processor cores 20 and between processor cores 20 and DRAM 110. Fabric chips 140 are positioned in areas 170e or 170f between edges 170c or 170d of the substrate and strips of DRAM 110.
[0090] Each fabric chip 140 is adjacent to a different pair of DRAMs 110a on top side 171, and consequently an additional pair of DRAMs 110b on bottom side 172. Fabric chip 140 is connected to those four adjacent DRAMs 110. In one example, fabric chip 140 is connected to only those four adjacent DRAMs 110.
[0091] Thus, the module 100 can be divided into four conceptual quadrants by a first conceptual line 170y extending between the centers of the edges 170a and 170b and a second conceptual line 170x extending therebetween, each quadrant including a fabric chip 140 and four DRAMs 110a, 110b connected to the fabric chip 140. The module is mirror symmetrical about both lines 170x and 170y. One quadrant 102q of the module 100 is shown in FIG. 12. Each quadrant 102q can be considered a sub-module of the module 100.
[0092] The module 100 includes two connection components 160 disposed on the underside 172 of the substrate 170. One connection component 160 is positioned under an area 170e, and the other connection component 160 is positioned under an area 170f, such that each connection component 160 is below two fabric chips 140. Each connection component 160 is configured to mate with a corresponding connection component (420, see FIG. 18) formed on another substrate (e.g., a motherboard 400). Thus, the module 100 is connectable to and separable from the motherboard 400 by the connection components 160. Thus, the connection components 160 form an electrical coupling or link between the module 100 and the rest of the system outside the module 100.
[0093] Module 100, and more particularly each fabric chip 140, connects to processor core 20 via connection component 160. Each connection component provides a number of connectors as described below. Each fabric chip 140 connects via one or more connectors of connection component 160 disposed thereon. The connectors of connection component 160 are therefore considered part of the physical embodiment of links L1-L4 discussed above with respect to Figures 5 and 6, in that the links are part of the signal paths extending between processor core 20 and fabric chip 140.
[0094] Additionally, the connectors of the connectivity components 160 provide part of the physical implementation of the links between each module 100 and other modules 100 in other pods, and to the rest of the system. Thus, the modules 100 do not include processor cores 20, but instead provide routing for data and memory access between the processor cores 20. In other words, the only processing power for the module 100 is that provided in the fabric chips 140. The processor cores 20 are located remotely from the module 100 and do not form part of the module 100.
[0095] Additionally, as mentioned above, there are no high bandwidth direct connections between fabric chips 140. Thus, each fabric chip 140 on a module 100 is not connected to other fabric chips 140 on the same module 100.
[0096] Each connection component 160 may take the form of a mezzanine connector. The connection component 160 may be, for example, a hermaphroditic mezzanine connector with eleven rows, each row having fifteen pairs of pins, sometimes referred to as connectors. An example pair of pins 161 is labeled in FIG. 13, the remaining pins are not labeled for clarity. The mezzanine connector may be a Mirror Mezz connector supplied by Molex®. In other examples, other connection components 160 may be used. For example, connectors supplied by Samtec®, TE Connectivity® or Amephenol® may be used. The connection component 160 may be part of a physical linkage between the module 100 and the motherboard, providing physical support to the module 100. A more detailed description of the pins 161 is provided below with respect to FIG. 16.
[0097] The structure of the substrate 170 and the connections between the elements of the module 100 and the substrate 170 will now be further described.
[0098] Substrate 170 is a package substrate. As such, substrate 170 is not a traditional printed circuit board, but instead is a type of substrate typically used in chip packages to support a chip die. Substrate 170 may also be referred to as a high density interconnect (HDI) substrate or an interposer substrate. Use of the term "interposer" in this context does not imply that the substrate serves as an intermediate or intervening layer, but instead is merely a reference to the type of substrate that is used. As will be apparent from the description herein, package substrate 170 is the primary substrate of module 100 and does not serve as an interposer.
[0099] In one example, the package substrate 170 is a High Tg glass epoxy multi-layer material (eg, MCL-E-705G provided by Hitachi®).
[0100] In one example, substrate 170 is monolithic, i.e., a single complete substrate, while in other examples, substrate 170 may include two or more substrates coupled together physically, electrically, or physically and electrically.
[0101] As shown in Fig. 14a, the package substrate 170 includes a core 173 and a number of accumulation layers 174 formed on the core 173. The core 173 has two layers 173a, 173b, where the first core layer 173a is insulating and serves to provide strength to the substrate. The second layer 173b may be a copper layer. The thickness of the core 173 may be about 1.2 mm.
[0102] More specifically, the accumulation layers 174 shown in FIG. 14b each have a plurality of conductive lines or wires 177 that electrically connect the elements of the module 100. The accumulation layers 174 may each include a copper foil sub-layer 174a that forms the conductive lines, and an insulating sub-layer 174b that insulates each accumulation layer 174 from the other accumulation layers 174. The thickness of each copper foil sub-layer 174a may be approximately 12 microns. The thickness of each insulating sub-layer 174b may be approximately 30 microns. It should be understood, therefore, that FIG. 14 is not to scale and emphasizes the size of the accumulation layers 174 relative to the core 173.
[0103] In one example, six accumulation layers 174 are formed on each side of the core 173 to provide a 6:2:6 package substrate. Each accumulation layer 174 on one side of the substrate 170 may have a different function. For example, one or more of the layers 174 may be ground layers including conductive lines 177 connected to ground. One or more of the layers may be VDD layers including conductive lines 177 connected to VDD. One or more of the layers 174 may be signal layers that transmit signals between the connection components 160 and the fabric chip 140 and between the fabric chip 140 and the DRAM 110. In one example, two of the accumulation layers 174 are signal layers. The outermost layer 174 may include pads (not shown) for connection to other elements of the module 170.
[0104] 14a, vias 174c may be formed between accumulation layers 174 so that conductive lines 177 may pass between layers 174. Additionally, core vias 175 may be formed through core 173 so that conductive lines 177 may pass from the top side of substrate 170 to the bottom side.
[0105] Fabric chip 140 is flip chip affixed directly to substrate 170. In other words, fabric chip 140 is a semiconductor chip that is manufactured to include solder bumps on the face of the die. These bumps are then attached directly to substrate 170. In one example, the bump pitch in the core area of the chip is approximately: x=261 microns y=154 microns Diagonal pitch = 151 microns where x is the width direction between the long edges of the chip and y is the length direction between the short edges of the chip. The pitch may be larger to provide connections to the DRAM 110, for example x=286 microns, y=164 microns, diagonal pitch=167 microns. The structure and function of the fabric chip 140 are described in more detail below with reference to FIG. 15.
[0106] The conductive lines 177 of the package substrate 170 are thin enough in the area of the substrate 170 beneath each fabric chip 140 to allow the lines to break out of the chip 140 footprint.
[0107] The DRAMs 110 are mounted to the substrate 170 using a ball grid array (BGA). That is, the DRAMs 110 are each in the form of a packaged semiconductor chip including a die and a package substrate. The die is secured to the top side of the package substrate and is electrically connected to the package substrate. The package substrate has a grid of solder balls formed on the underside of the package substrate, which are then secured to corresponding conductive pads on the substrate 170. The BGA may have a pitch of, for example, 650 microns. Thus, the pitch of the balls is substantially coarser than the bumps of the fabric chip 140.
[0108] The connection components 160 may be connected to the substrate 170 via a BGA. Thus, each connection component 160 may include a grid of solder balls arranged on a face of the connection component 160 opposite the face including the pins 161.
[0109] Figure 15 illustrates in more detail the structure of fabric chip 140. Bumps formed on the underside of fabric chip 140 for connection to a substrate are illustrated as small circles generally designated 141. Blocks 142, 143, and 144 shown in Figure 15 illustrate areas within fabric chip 140 where specific circuitry may be placed.
[0110] The die of fabric chip 140 is rectangular and has two opposing long edges 140a, 140b and two opposing short edges 140c, 140d. The length of short edges 140c, 140d is approximately 6 mm. The length of long edges 140a, 140b is approximately 15 mm. In one example, each fabric chip is 5.5 mm by 15.3 mm. Thus, the aspect ratio of chip 140 is approximately 3:1. In one example, fabric chip 140 is a single or monolithic die.
[0111] Fabric chip 140 includes multiple memory controllers 142a-142h. Each memory controller 142 is a circuit formed on the die of the chip that serves as an interface to DRAM 100. In an example where the DRAM is an LPDDR DRAM, memory controller 142 is an LPDDR interface. The LPDDR interface meets the relevant LPDDR standard (e.g., JEDEC standard (e.g., JESD209-5B)). In an example where DRAM 110 is a different type of DRAM, memory controller 142 may meet the standard required to access DRAM 110 as appropriate.
[0112] As described above, each fabric chip 140 is associated with two DRAMs 110 on the top side and two DRAMs 110 on the bottom side 172. Each of these DRAMs 110 may have multiple memory channels (e.g., four memory channels). Thus, each DRAM 110 may be a four-channel DRAM. The fabric chip 140 includes a number of memory controllers 142 sufficient to access the channels of the DRAMs 110. In the illustrated example, the fabric chip 140 includes eight memory controllers 142a-h, each memory controller 142 being a dual-channel memory controller 142. This provides the necessary 16 channels to access four four-channel DRAMs. In one example, the memory channels are each 16 bits wide.
[0113] 15, the memory controller 142 is located on one long side 140a of the chip 140. Each chip 140 is placed on the module 100 so that side 140a faces the DRAM 100. This placement can reduce breakout of connections to the DRAM 100 from under the chip 140 footprint.
[0114] The memory controllers 142 may be arranged in a 2×4 grid with the first four of the memory controllers 142a-142d located closest to the long side 140a and the second four of the memory controllers 142e-142h located inside the first four memory controllers 142a-142d. The first four of the memory controllers 142a-142d may communicate with the DRAM 110 on the top side 171 of the substrate 110. The second four memory controllers 142e-142h may be arranged to access the DRAM 110 on the bottom side 172 through core vias 175 formed under the fabric chip 140. This arrangement also helps to mitigate breakout from underneath the footprint of the chip 140.
[0115] A number of bumps 141 of the fabric chip 140 are disposed under each memory controller 142 (at least some of which are memory attachment connectors) that are in electrical communication with the DRAM 110 via conductive lines 177 in the substrate 170. In other words, the bumps 141 under each memory controller include memory attachment ports connectable to the DRAM 110. Other bumps under each memory controller 142 may be connected to the memory controller's power supply or ground.
[0116] Each memory controller 142 forms part of the above-mentioned DDR interface block 48. Thus, the routing logic of the fabric chip 140 is configured to route data to and from the DRAM 110 through the memory controller 142.
[0117] The fabric chip 140 further includes a number of link controllers 143, 144. Each link controller 143, 144 may include circuitry formed on a die. A first group of link controllers 143 each include four communication lanes, labeled 143-1 through 143-4. Only one of the link controllers 143 is so labeled for clarity of the drawing.
[0118] Each communication lane 143-1-143-4 forms an individual communication link to an external device (i.e., a device not on module 100). Thus, at least some of the bumps 141 under each lane 143-1-143-4 of link controller 143 form an external link port or connector. The external link ports are connected to connection components 160 via conductive lines 177. The bumps 141 may include a bump for a transmit signal and a bump for a receive signal.
[0119] Each of the communication lanes 143-1 to 143-4 may be a serial link, such as a SERDES link as described above. Thus, the link controller 143 may include analog circuitry. In one example, the link controller 143 provides a 100 Gbps link.
[0120] In addition to the four communication lanes 143-1 to 143-4, link controller 143 may include a common area 143-5 that provides common functions to the four lanes 143-1 to 143-4 (eg, a common clock signal for each communication lane).
[0121] Three of the link controllers (labeled 143a-c) provide communication lanes for communication with each processor core 20. Thus, each fabric chip 140 has 12 communication lanes for communication with the processor core 20. As described above with respect to FIG. 9, three links (e.g., L2a, L2b, L2c) are provided to each processor core. Thus, each communication lane corresponds to an EPC (e.g., EPC2a, EPC2b, EPC2c) shown in FIG. 9. Thus, the 12 communication lanes on the fabric chip 140 provide connections to the four processor cores 20.
[0122] A further link controller (labelled 143d) provides four further communication lanes, which may include three lanes of pod-to-pod communication. The communication lanes may implement EPCs corresponding to Pa, Pb and Pc in FIG. 9 to implement pod-to-pod links PLa, PLb and PLc. The pod-to-pod links PL are sometimes referred to as cluster connecting links in that the pod-to-pod links connect fabric chips to different clusters.
[0123] Link controller 143d may include lanes for system-to-system communication. Thus, one of the communication lanes implements EPC (i.e., corresponds to PCS in FIG. 9) to provide a system link SL. The system link SL is connected to, for example, a switching fabric.
[0124] Link controller 144 provides a PCIe link to the host computer. Link controller 144 may include two sub-controllers (not shown) each implementing four lanes of communication. Link controller 144 may provide a lower speed connection compared to link controller 143.
[0125] The link controllers 143, 144 may be located along the long edge 140b opposite the memory controller 142. Again, this helps to mitigate breakout of the lines from underneath the fabric chip 140.
[0126] In one example, link controller 144 is only operable on one of the four fabric chips 140 on module 100. Link controllers 144 of the other three fabric chips 140 may not be connected to connection components 160 and therefore cannot communicate with the host.
[0127] The remaining bumps 141 of the fabric chip 140 that are not under one of the controllers 142, 143, 144 may include main chip power supply bumps and ground bumps. The main chip power supply may be a different power supply than the power supply of the memory controller 142. Additionally, some of the bumps 141 (e.g., bumps at the corners of the chip 140) may be dummy bumps that are not electrically connected. These dummy bumps are most susceptible to the different thermal expansion characteristics of the substrate 170 and the chip 140 and therefore cannot be used to reliably transmit signals.
[0128] FIG. 16 shows the two connection components 160a, 160b in more detail, with the other components of the module 100 omitted for clarity, apart from a box representing the position of the fabric chip 140 relative to the connection component 160.
[0129] Approximately half of the pairs of pins 161 are either VSS or ground pins. Thus, in each group of pins described below, approximately half of the pairs of pins perform the associated function and approximately half act as VSS.
[0130] The connection component 160 includes groups of pins 181 that carry signals to and from the link controller 143. These pins 181 may thus function as SERDES links. One group of pins 181 carries signals to and from a particular fabric chip 140. In particular, pins 181-1 carry signals to and from fabric chip 140-1, pins 181-2 carry signals to and from fabric chip 140-2, pins 181-3 carry signals to and from fabric chip 140-3, and pins 181-4 carry signals to and from fabric chip 140-4. The pins that form the SERDES links are generally located towards the outer edges of the connection component 160 (i.e., on the side of the connection component furthest from the DRAM 110).
[0131] Each group of pins 181 may include transmit pins 181a and receive pins 181b configured for transmitting and receiving signals, respectively. To maintain clarity of the drawing, only a selection of transmit pins 181a and receive pins 181b of pin 181-1 is labeled. The other groups of pins 181 include transmit pins 181a and receive pins 181b arranged similarly. In the example shown in FIG. 16, the transmit pins 181a and receive pins 181b are interspersed. In other words, the transmit pins 181a and receive pins 181b are distributed throughout the group 181, so that the transmit pin 181a may be located adjacent to (i.e., next to) the receive pin 181b. Adjacent or next to in this context includes pairs of pins arranged diagonally to each other.
[0132] Additionally, connection component 160 includes groups of pins 182 that carry power supplies for the fabric chips. In one example, the power supplies carried by pins 182 are the main digital power supplies for fabric chips 140. One group of pins 182 supplies a particular fabric chip 140 that has the group and the same subscript (i.e., -1, -2, etc.). Power supply pins 182 are typically located below the fabric chip 140 that they supply.
[0133] Connection component 160 includes a group of pins 183 that carry a PCIe link to the host computer and thus are in communication with link controller 144. As mentioned above, only one of the fabric chips (e.g., fabric chip 140-1) may have a link controller 144 connected. Thus, only one of connection components 160a may include PCI link pins 183. Pins 183 are generally located toward the center of connection component 160a.
[0134] Connection component 160 further includes clock pins 184-1 through 184-4 that carry a clock signal for link controller 143 of each fabric chip 140. Connection component 160a may further include clock pin 185-1 for the PCIe controller. Only one clock pin 185-1 may be provided because only one fabric chip 140 has a PCIe link enabled.
[0135] Additionally, connection component 160 may include pin 186 that provides a power supply to link controller 143. In particular, pin 186 provides power to the PHY or analog components of link controller 143. Link controller 143 (in particular the PHY) may require a power supply that is different from the main digital power supply. For example, the link controller may require a power supply with less noise. Additionally, connection component 160 may include pin 187 that provides a power supply to DRAM 110.
[0136] Fig. 18 shows an example of a power supply arrangement for a module 100. As shown in Fig. 18, a motherboard 400 on which the module 100 can be mounted includes a power supply component 400P. The power supply component 400P includes, for example, load power supply points located on the opposite side of the module 100 and the motherboard 400. Power is supplied from the power supply component 400P to the fabric chips 140 via connection components 420 and 160.
[0137] Thus, the module 100 may not include a power supply (e.g., a point of load power supply). This allows the substrate 170 to be smaller and reduces the use of relatively high cost substrate material. Furthermore, positioning the fabric chip 140 on the opposite side of the substrate 170 directly above the connection components 160 minimizes the distance between the power supply components 400P and the fabric chip 140, reducing IR drop.
[0138] FIG. 17 illustrates a method of manufacturing an example module 100.
[0139] The method includes providing a substrate (S171). As described above, the substrate may be a package substrate 170 having a plurality of layers 174. The substrate may be formed by repeatedly arranging copper foil underlayers 174a and insulating underlayers 174b on a core 173. In some examples, layers 174 may be provided on both sides of the core 173. In some examples, vias 174c are formed between layers and / or vias 175 are formed through the core 173, for example, by laser drilling.
[0140] In step S172, conductive lines 177 are formed on the substrate 170. In one example, the lines 177 are formed by etching the copper foil underlayer 174a. However, other methods may be used to form the conductive lines 177. The conductive lines 177 may pass through vias 174c, 175.
[0141] In step S173, a first semiconductor chip is attached directly to the substrate 170 by flip-chip attachment. The first chip may be a fabric chip 140. Solder bumps formed on the first chip may be attached to corresponding pads formed on the substrate 170 by heating the module 100. The module 100 may be heated by passing the module 100 through a suitable oven. Each of multiple first chips (e.g., four fabric chips 140) may be attached simultaneously, for example, in the same pass through an oven or other heating cycle.
[0142] In some examples, an underfill material (e.g., an epoxy resin) is underfilled onto the first chip. The underfill material may be delivered as a liquid by capillary action caused by a narrow gap formed between the underside of the chip and the substrate that draws the liquid between the solder bumps. The underfill may then be cured by a further heating cycle that is cooler than the heating cycle used to melt the solder bumps. The underfill helps to redistribute stresses caused by the different thermal expansion coefficients of the chip and the substrate.
[0143] In step S174, a packaged semiconductor chip having a BGA is attached to the substrate. The packaged semiconductor chip may be a DRAM 110 as described herein. The solder balls of the BGA of the packaged chip may be attached to corresponding pads formed on the substrate by, for example, heating the module 100 by passing the module 100 through a suitable oven. Heating the module 100 to attach the packaged semiconductor chip may be a separate heating cycle from the heating cycle that attaches the first semiconductor chip. Underfilling the first semiconductor chip may ensure that the first chip remains attached to the substrate during subsequent heating of the module to attach the packaged semiconductor chip.
[0144] Step S174 may include mounting a packaged semiconductor chip on one side of the substrate (e.g., top side 171) and then mounting a packaged semiconductor chip on the other side of the substrate (e.g., bottom side 172). Thus, there may be two separate heating cycles for mounting BGAs on each side of the substrate. In other examples, BGAs on both sides of substrate 170 may be mounted in a single heating cycle.
[0145] In step S175, the connection component 160 is attached to the substrate. In one example, the connection component 160 has a BGA. For example, the module 100 may be heated by passing the module 100 through a suitable oven to attach the solder balls of the BGA of the connection component to corresponding pads formed on the substrate. In some examples, the connection component 160 is attached to the substrate in an additional heating cycle following attachment of the packaged semiconductor chip. In other examples, the connection component 160 may be attached by the same heating cycle as one or more of the packaged semiconductor chips. For example, the connection component 160 may be attached to the underside 172 by the same heating cycle that attaches the packaged semiconductor chip to the substrate 170.
[0146] In some instances, the order of steps may be changed. The packaged semiconductor chip and / or the connecting components 160 may be secured to the substrate prior to flip-chip mounting the first chip.
[0147] Various modifications may be made to the module 100 described above. In some examples, the number of fabric chips 140 and DRAMs 110 present in the module 100 may differ from the examples described above. For example, each fabric chip 140 may be connected to fewer DRAMs 110 (i.e., one, two, or three DRAMs) or more DRAMs 110 (five or more DRAMs, e.g., eight DRAMs). In other examples, the module 100 may include fewer fabric chips 140 or more fabric chips 140. The module 100 may include fewer of the conceptual quadrants described above (e.g., two of the quadrants, six of the quadrants, eight of the quadrants, or any other suitable number). In some examples, the number of connection components 160 provided may vary. For example, only one connection component 160 or more than two connection components 160 may be provided. Additionally, the elements of the fabric chip 140 may vary. For example, fabric chip 140 may include more or fewer memory controllers and / or link controllers that communicate with a different number of DRAMs 110, processor cores 20, and other quads or pods. The locations of memory controllers 142 and link controllers 143, 144 may vary on fabric chip 140. The bumps of fabric chip 140 may have different functions and / or be arranged differently. The pins 161 of connection components 160 may be arranged differently and / or have different functions.
[0148] Advantageously, the module 100 provides routing capabilities and large capacity, high bandwidth and low latency memory for the processor cores 20, making it suitable for processing large machine learning models. When arranged as shown in FIG. 8 with a ratio of two modules 100 to each processor core 20, each processor can access up to 512 GB with an example bandwidth of 9.6 Tbit / s. Furthermore, the use of the module 100 limits the links required to the processor cores 20, conserving beachfront space that would normally be used for memory access and routing.
[0149] Advantageously, module 100 includes direct flip-chip attached fabric chip 140 and DRAM 110 and connection components 160 attached to module 100 via a BGA. By directly flip-chip attaching fabric chip 140 to the substrate, fabric chip 140 does not require additional packaging, thus allowing the overall size of module 100 to be reduced.
Claims
1. a package substrate for housing a flip-chip mounted semiconductor chip in a module; a first flip-chip mounted semiconductor chip mounted on the package substrate; a first ball grid array attached packaged semiconductor chip attached to the package substrate; the first flip chip mounted semiconductor chip and the first ball grid array mounted semiconductor chip are in electrical communication with each other; a connection component mounted on the package substrate and including an electrical coupling portion for coupling the package substrate to a corresponding connection component on a motherboard; Including, the package substrate includes the first ball grid array mounted semiconductor chip mounted on the package substrate and a plurality of conductive lines coupling the first flip chip mounted semiconductor chip to the connecting components; Module.
2. 2. The module of claim 1, wherein said first ball grid array mounted semiconductor chip is a dynamic random access memory (DRAM) chip.
3. 3. The module of claim 1 or 2, further comprising a plurality of ball grid array mounted semiconductor chips.
4. 4. The module of claim 3, wherein said package substrate is a monolithic package substrate, and at least some of said plurality of ball grid array attached packaged semiconductor chips are disposed on said monolithic package substrate.
5. The module of claim 3 further comprising a plurality of flip-chip mounted semiconductor chips mounted to said package substrate.
6. 6. The module of claim 5, wherein said plurality of flip chip mounted semiconductor chips are in electrical communication with said plurality of ball grid array mounted semiconductor chips.
7. 7. The module of claim 6, wherein each flip chip mounted semiconductor chip is in electrical communication with a subset of said plurality of ball grid array mounted semiconductor chips.
8. 8. The module of claim 1, wherein the first flip-chip mounted semiconductor chip includes routing logic configured to route data between the connection components mounted to the package substrate and the first ball grid array mounted packaged semiconductor chip.
9. the first flip-chip mounted semiconductor chip is mounted to a first side of the package substrate; the first ball grid array mounted semiconductor chip is mounted to the first side of the package substrate; A module according to any one of claims 1 to 8.
10. the first flip-chip mounted semiconductor chip is mounted to a first side of the package substrate; the first ball grid array mounted semiconductor chip is mounted to a second side of the package substrate; A module according to any one of claims 1 to 8.
11. a second ball grid array mounted semiconductor chip mounted on a second side of the package substrate; the package substrate includes a plurality of vias forming electrical paths electrically connecting the second ball grid array mounted semiconductor chip to the first flip chip mounted semiconductor chip. The module of claim 9.
12. The module of claim 10 , wherein at least one of the vias is disposed beneath the first flip-chip mounted semiconductor chip.
13. the first flip-chip mounted semiconductor chip is mounted to a first side of the package substrate; the connection component is mounted on a second side of the substrate at a position corresponding to a position of the first flip-chip mounted semiconductor chip; the first flip-chip mounted semiconductor chip is configured to receive power via the connection component from a power supply component electrically coupled to the connection component. A module according to any one of claims 1 to 12.
14. The module of claim 13 including a plurality of vias in the package substrate that form electrical paths connecting the connection components to the first flip-chip mounted semiconductor chip.
15. 15. The module of claim 1, wherein the package substrate includes a plurality of layers formed on a core, at least two of the layers including conductive lines transmitting signals between the first flip chip mounted semiconductor chip and the first ball grid array mounted packaged semiconductor chip, and between the first flip chip mounted semiconductor chip and the connecting components.
16. 1. A method of manufacturing a module, comprising the steps of: providing a packaging substrate; forming a plurality of conductive traces on the package substrate; mounting a first semiconductor chip to the package substrate by flip-chip mounting; attaching a ball grid array packaged semiconductor chip to the package substrate; attaching connection components to the package substrate, the connection components including electrical connections that couple the package substrate to corresponding connection components on a motherboard; Including, the plurality of conductive lines electrically connecting the first semiconductor chip to the ball grid array packaged semiconductor chip and to the connecting components. method.
17. 17. The method of claim 16, comprising the step of heating the module and mounting the first semiconductor chip before mounting the ball grid array packaged semiconductor chip or the connecting components.
18. heating the module and mounting the ball grid array packaged semiconductor chips prior to mounting the connection components; heating the module and attaching the connection components; 18. The method of claim 16 or 17, comprising:
19. forming a plurality of vias in the package substrate; mounting the first semiconductor chip on a first side of the package substrate; mounting at least one of the ball grid array packaged semiconductor chip or the connecting components to a second side of the package substrate; Including, 19. The method of claim 16, wherein at least one of the conductive lines passes through the via and connects the first chip to the ball grid array packaged semiconductor chip or the connecting component.
20. 20. The method of claim 16, further comprising forming a plurality of layers on the core of the package substrate, at least two of the layers including conductive lines transmitting signals between the first semiconductor chip and the ball grid array packaged semiconductor chip and the connecting components.
21. The method of any one of claims 16 to 20, wherein the ball grid array packaged semiconductor chip is a dynamic random access memory (DRAM) chip.
22. 22. The method of claim 16, wherein the first semiconductor chip includes routing logic configured to route data between the connection components and the ball grid array packaged semiconductor chip.
Citation Information
Patent Citations
Semiconductor device and manufacturing method thereof
JP2002158326A
Electronic component mounting board composite and method for assembling and mounting the same
JP2003069179A
Semiconductor chip mounting substrate, semiconductor device, semiconductor module, and semiconductor device mounting substrate
JP2003264260A
Module
JP2006173409A
Semiconductor device
JP2006237385A