The present disclosure relates to electronic circuit systems, and more particularly, to circuit systems having memory modules with reverse orientations.
FPGA package 101 has I/O pads for two channels that are identified as channel 0 and channel 1 in
FPGA programmable acceleration system 100 shown in
In addition, the maximum junction temperature of the DIMMs 102-105 tends to be much lower than the maximum temperature of the FPGA IC die in package 101. The maximum junction temperature of the DIMMs 102-105 can, for example, be in the range of 60-70° C., while the FPGA IC die can operate at a temperature of 100° C. and above. A cooling system for circuit system 100 that keeps the DIMMs below their maximum junction temperature would limit the performance of the FPGA IC die and negate any improved FPGA cooling solution.
According to some embodiments disclosed herein, one of the memory modules on each side of a circuit system has a reverse orientation such that memory integrated circuits (ICs) coupled to the two memory modules on each side of the circuit system are facing away from each other. Because the memory ICs in the memory modules are facing away from each other, the memory ICs in the memory modules are not in a narrow gap between two memory modules. As a result, the memory ICs are naturally exposed to increased airflow, which provides more effective cooling to the memory ICs. The thermal headroom of the memory ICs is increased, and the main IC coupled to the circuit system can take more advantage of higher speed bins and increased performance. The main IC's input/output (I/O) pads and the signal paths in the base circuit board of the circuit system can be arranged to allow for the memory ICs in the memory modules to be facing away from each other, as disclosed in further detail herein.
Each of the memory modules 311-314 includes 8 memory integrated circuit (IC) dies 320. In addition, each of the memory modules 311-314 includes a printed circuit board. Specifically, memory modules 311-314 include printed circuit boards (PCBs) 315-318, respectively. The ICs 320 in memory modules 311-314 are mounted on printed circuit boards 315-318, respectively. Memory modules 311-314 have 1-rank single-sided configurations with memory ICs 320 only on one side of their respective PCBs 315-318. Memory modules 311-314 can be, for example, dual in-line memory modules (DIMMs). The memory IC dies 320 in each of the memory modules 311-314 are coupled to IC die 302 through electrical conductors in PCBs 315-318, a base circuit board, and IC package 301.
In the top down view of
According to another embodiment, the memory modules 311 and 314 can each be rotated 180° to a reverse orientation instead of rotating memory modules 312-313 to cause memory IC dies 320 in memory modules 311 and 312 to face each other and the memory IC dies 320 in memory modules 313 and 314 to face each other. In this embodiment, the memory IC dies 320 in memory modules 311 and 312 are in the gap 350 between these 2 memory modules, and the memory IC dies 320 in memory modules 313 and 314 are in the gap 351 between these 2 memory modules. This embodiment can enable the attachment of shared cooling systems between memory modules 311 and 312 and between memory modules 313 and 314.
IC die 302 is coupled to IC package 301 through conductive solder bumps 404. IC package 301 is coupled to base circuit board 401 through conductive solder balls 405 in a ball grid array (BGA). Memory module 311 includes printed circuit board (PCB) 315 and 2 memory IC dies 320A-320B. Memory module 312 includes PCB 316 and 2 memory IC dies 320C-320D. The memory IC dies 320A and 320B are coupled to PCB 315 through solder bumps 461-462, respectively. The memory IC dies 320C and 320D are coupled to PCB 316 through solder bumps 463-464, respectively. Solder bumps 461-464 are connected to the I/O pads of memory IC dies 320A-320D, respectively. The additional memory IC dies 320 in memory modules 311-312 are not shown in
Circuit system 300 also includes memory connectors 421-422. Portions of PCBs 315 and 316 are inserted into memory connectors 421 and 422, respectively, as shown in
Conductors in IC package 301, base circuit board 401, connectors 421-422, and PCBs 315-316 as well as solder bumps/balls 404, 405, 423-424, and 461-464 couple IC die 302 to memory IC dies 320A-320D. For example, a first conductive I/O pad of IC die 302 is coupled to a first conductive I/O pad of memory IC die 320C through one of solder bumps 404, conductor 471 in IC package 301, one of solder balls 405, conductor 441 in base circuit board 401, one of solder balls 424, conductor 431 in connector 422, and conductor 481 in PCB 316. As another example, a second conductive I/O pad of IC die 302 is coupled to a second conductive I/O pad of memory IC die 320C through a second one of solder bumps 404, conductor 472 in IC package 301, a second one of solder balls 405, conductor 442 in base circuit board 401, a second one of solder balls 424, conductor 432 in connector 422, and conductor 482 in PCB 316. As yet another example, a third conductive I/O pad of IC die 302 is coupled to a first conductive I/O pad of memory IC die 320A through a third one of solder bumps 404, conductor 473 in IC package 301, a third one of solder balls 405, conductor 443 in base circuit board 401, one of solder balls 423, conductor 433 in connector 421, and conductor 483 in PCB 315.
As shown in
In circuit system 300, the signal routing paths between IC die 302 and the memory IC dies 320 in memory module 312 are changed to accommodate the reverse orientation of memory module 312 relative to memory module 311. As shown in
The I/O pads in package 301 for each of the four channels 0-3 are organized into four groups identified as data, command address (com add), and ECC (error correction code) in
The I/O pads in groups 511, 515, 535, and 531 are arranged in a first column on a surface of package 301. The I/O pads in groups 512, 516, 536, and 532 are arranged in a second column on the surface of package 301. The I/O pads in groups 513, 517, 537, and 533 are arranged in a third column on the surface of package 301. The I/O pads in groups 514, 518, 538, and 534 are arranged in a fourth column on the surface of package 301.
The I/O pads in data groups 511 and 514 are used for the transmission of data signals between IC die 302 and the memory IC die I/O pads in groups 501 and 504, respectively. The I/O pads in command address group 512 are used for the transmission of command and address signals between IC die 302 and the memory IC die I/O pads in command address group 502. The I/O pads in ECC group 513 are used for the transmission of error correction code (ECC) signals between IC die 302 and the memory IC die I/O pads in ECC group 503.
The I/O pads in data groups 515 and 518 are used for the transmission of data signals between IC die 302 and the memory IC die I/O pads in groups 505 and 508, respectively. The I/O pads in ECC group 516 are used for the transmission of error correction code (ECC) signals between IC die 302 and the memory IC die I/O pads in ECC group 506. The I/O pads in command address group 517 are used for the transmission of command and address signals between IC die 302 and the memory IC die I/O pads in command address group 507. In system 300, the signal paths for channel 1 through the I/O pads in groups 515-518 on IC package 301 are rotated 180° relative to the signal paths for channel 1 through the I/O pads on IC package 101 of
The I/O pads in data groups 535 and 538 are used for the transmission of data signals between IC die 302 and the memory IC die I/O pads in groups 525 and 528, respectively. The I/O pads in ECC group 536 are used for the transmission of error correction code (ECC) signals between IC die 302 and the memory IC die I/O pads in ECC group 526. The I/O pads in command address group 537 are used for the transmission of command and address signals between IC die 302 and the memory IC die I/O pads in command address group 527.
The I/O pads in data groups 531 and 534 are used for the transmission of data signals between IC die 302 and the memory IC die I/O pads in groups 521 and 524, respectively. The I/O pads in command address group 532 are used for the transmission of command and address signals between IC die 302 and the memory IC die I/O pads in command address group 522. The I/O pads in ECC group 533 are used for the transmission of error correction code (ECC) signals between IC die 302 and the memory IC die I/O pads in ECC group 523. In system 300, the signal paths for channel 2 through the I/O pads in groups 535-538 on IC package 301 are rotated 180° relative to the signal paths for channel 3 through the I/O pads in groups 531-534 in order to be aligned with the reverse orientation of memory module 313.
In some embodiments, IC die 302 can be a programmable logic IC, such as an FPGA. The signal paths for channel 1 through the I/O pads in groups 515-518 and the signal paths for channel 2 through the I/O pads in groups 535-538 can, for example, be rotated 180° to reverse orientations as shown in
In addition, programmable logic IC 700 has input/output elements (IOEs) 702 for driving signals off of programmable logic IC 700 and for receiving signals from other devices. Each of the IOEs 702 includes one or more input buffers, one or more output buffers, and one or more I/O pads. Input/output elements 702 may include parallel input/output circuitry, serial data transceiver circuitry, differential receiver and transmitter circuitry, or other circuitry used to connect one integrated circuit to another integrated circuit. As shown, input/output elements 702 may be located around the periphery of the chip. If desired, the programmable logic IC 700 may have input/output elements 702 arranged in different ways. For example, input/output elements 702 may form one or more columns, rows, or islands of input/output elements that may be located anywhere on the programmable logic IC 700.
The programmable logic IC 700 also includes programmable interconnect circuitry in the form of vertical routing channels 740 (i.e., interconnects formed along a vertical axis of programmable logic IC 700) and horizontal routing channels 750 (i.e., interconnects formed along a horizontal axis of programmable logic IC 700), each routing channel including at least one track to route at least one wire.
Note that other routing topologies, besides the topology of the interconnect circuitry depicted in
Programmable logic IC 700 also contains programmable memory elements (e.g., in RAMs 730 or in LABs 710). The programmable memory elements can be loaded with configuration data via input/output elements (IOEs) 702. Once loaded, the programmable memory elements each provide a corresponding static control signal that controls the operation of a logic circuit in an associated configurable functional block (e.g., LABs 710, DSP blocks 720, RAM blocks 730, and/or input/output elements 702).
In a typical scenario, the outputs of the loaded programmable memory elements are applied to the gates of metal oxide semiconductor field effect transistors (MOSFETs) in functional blocks (e.g., any of LAB blocks 710, DSP blocks 720, and RAM blocks 730) to turn certain transistors on or off and thereby configure the logic circuits in the functional blocks including the routing paths. Configurable logic circuit elements that can be controlled in this way include parts of multiplexers (e.g., multiplexers used for forming routing paths in interconnect circuits), look-up tables, logic arrays, AND, OR, NAND, and NOR logic gates, pass gates, etc.
The programmable memory elements can be organized in a configuration memory array including rows and columns. A data register that spans across all columns and an address register that spans across all rows may receive configuration data. The configuration data may be shifted onto the data register. When the appropriate address register is asserted, the data register writes the configuration data to the configuration memory bits of the row of the configuration memory array that was designated by the address register.
In certain embodiments, programmable logic IC 700 can include configuration memory that is organized in sectors, whereby a sector may include the configuration RAM bits that specify the functions and/or interconnections of the subcomponents and wires in or crossing that sector. Each sector can include separate data and address registers and configurable logic circuits.
The following examples pertain to further embodiments. Example 1 is a circuit system comprising: an integrated circuit package housing a main integrated circuit die; a first memory module comprising a first circuit board and first memory integrated circuit dies coupled to the first circuit board; a second memory module comprising a second circuit board and second memory integrated circuit dies coupled to the second circuit board; and a base circuit board coupled to the integrated circuit package and to the first and second memory modules, wherein the base circuit board comprises conductors that couple the integrated circuit package to the first and second memory modules, and wherein the second memory module has a reverse orientation on the base circuit board relative to the first memory module such that the second memory integrated circuit dies face away from the first memory integrated circuit dies.
In Example 2, the circuit system of Example 1 can optionally further include: a first connector that connects the first circuit board to the base circuit board; and a second connector that connects the second circuit board to the base circuit board.
In Example 3, the circuit system of any one of Examples 1-2 can optionally include wherein the first memory module only has integrated circuit dies connected to one surface of the first circuit board, wherein the second memory module only has integrated circuit dies connected to one surface of the second circuit board, and wherein integrated circuit dies are not in a gap between the first and second circuit boards.
In Example 4, the circuit system of any one of Examples 1-3 can optionally include wherein first conductive pads on a surface of the integrated circuit package for a first channel route first signals to and from the first memory integrated circuit dies, wherein second conductive pads on the surface of the integrated circuit package for a second channel route second signals to and from the second memory integrated circuit dies, and wherein the second signals in the second channel have a reverse orientation through the second conductive pads relative to an orientation of the first signals in the first channel through the first conductive pads.
In Example 5, the circuit system of Example 4 can optionally include wherein the first conductive pads comprise a first group that routes first data signals, a second group that routes first command and address signals, a third group that routes first error correction code signals, and a fourth group that routes second data signals.
In Example 6, the circuit system of Example 5 can optionally include wherein the second conductive pads comprise a fifth group that routes third data signals, a sixth group that routes second error correction code signals, a seventh group that routes second command and address signals, and an eighth group that routes fourth data signals.
In Example 7, the circuit system of Example 6 can optionally include wherein the first conductive pads in the first channel are arranged in a first row, wherein the second conductive pads in the second channel are arranged in a second row, wherein the first conductive pads in the first group and the second conductive pads in the fifth group are arranged in a first column, wherein the first conductive pads in the second group and the second conductive pads in the sixth group are arranged in a second column, wherein the first conductive pads in the third group and the second conductive pads in the seventh group are arranged in a third column, and wherein the first conductive pads in the fourth group and the second conductive pads in the eighth group are arranged in a fourth column.
In Example 8, the circuit system of any one of Examples 1-7 can optionally include wherein the second memory module is parallel to the first memory module, wherein the first and second memory modules are perpendicular to the base circuit board, and wherein the second memory integrated circuit dies face toward the integrated circuit package.
In Example 9, the circuit system of any one of Examples 1-8 can optionally include wherein the main integrated circuit die is a programmable logic integrated circuit die comprising blocks of configurable logic circuits.
Example 10 is a method for using a circuit system, the method comprising: transmitting a first signal between a main integrated circuit die in the circuit system and a first memory integrated circuit die in a first memory module through an integrated circuit package that houses the main integrated circuit die, a base circuit board coupled to the integrated circuit package, and a second circuit board in the first memory module; and transmitting a second signal between the main integrated circuit die and a second memory integrated circuit die in a second memory module through the integrated circuit package, the base circuit board, and a third circuit board in the second memory module, wherein the first and second memory modules are coupled to the base circuit board in the circuit system, and wherein an orientation of the second memory module on the base circuit board is reversed relative to an orientation of the first memory module on the base circuit board such that the second memory integrated circuit die faces away from the first memory integrated circuit die.
In Example 11, the method of Example 10 can optionally include wherein the first memory module only has integrated circuit dies connected to one surface of the second circuit board, wherein the second memory module only has integrated circuit dies connected to one surface of the third circuit board, and wherein the first and second memory modules do not have integrated circuit dies in a gap between the second and third circuit boards.
In Example 12, the method of any one of Examples 10-11 can optionally include wherein transmitting the first signal between the main integrated circuit die in the circuit system and the first memory integrated circuit die in the first memory module further comprises transmitting a first data signal, a first command or address signal, a first error correction code signal, and a second data signal between the main integrated circuit die and the first memory integrated circuit die through conductive pads arranged in a first row of the integrated circuit package, first conductors in the base circuit board, and second conductors in the second circuit board.
In Example 13, the method of Example 12 can optionally include wherein transmitting the second signal between the main integrated circuit die and the second memory integrated circuit die in the second memory module further comprises transmitting a third data signal, a second error correction code signal, a second command or address signal, and a fourth data signal between the main integrated circuit die and the second memory integrated circuit die through conductive pads arranged in a second row of the integrated circuit package, third conductors in the base circuit board, and fourth conductors in the third circuit board.
In Example 14, the method of Example 13 can optionally include wherein the conductive pads that route the first data signal and the third data signal are arranged in a first column, wherein the conductive pads that route the first command or address signal and the second error correction code signal are arranged in a second column, wherein the conductive pads that route the first error correction code signal and the second command or address signal are arranged in a third column, and wherein the conductive pads that route the second data signal and the fourth data signal are arranged in a fourth column on the integrated circuit package.
In Example 15, the method of any one of Examples 10-14 can optionally include wherein the first and second memory modules are positioned in parallel to each other, wherein the first and second memory modules are perpendicular to the base circuit board, and wherein the second memory integrated circuit die faces toward the integrated circuit package.
Example 16 is a circuit system comprising: an integrated circuit package housing a main integrated circuit die; a first memory module comprising a first circuit board, wherein the first memory module only has first memory integrated circuit dies mounted on one surface of the first circuit board; a second memory module comprising a second circuit board, wherein the second memory module only has second memory integrated circuit dies mounted on one surface of the second circuit board; first and second connectors; and a base circuit board connected to the integrated circuit package, to the first memory module through the first connector, and to the second memory module through the second connector, wherein the base circuit board comprises conductors that connect the integrated circuit package to the first and second memory modules, and wherein the second memory integrated circuit dies are facing in an opposite direction relative to a direction that the first memory integrated circuit dies are facing.
In Example 17, the circuit system of Example 16 can optionally include wherein the second memory module has a reverse orientation on the base circuit board relative to the first memory module such that the second memory integrated circuit dies face away from the first memory integrated circuit dies, and the first and second memory integrated circuit dies are not in a gap between the first and second circuit boards.
In Example 18, the circuit system of any one of Examples 16-17 can optionally include wherein first conductive pads on a surface of the integrated circuit package for a first channel route first signals to and from the first memory integrated circuit dies, wherein second conductive pads on the surface of the integrated circuit package for a second channel route second signals to and from the second memory integrated circuit dies, and wherein an order of the second signals in the second channel through the second conductive pads is reversed on the surface of the integrated circuit package relative to an order of the first signals in the first channel through the first conductive pads to accommodate the reverse orientation of the second memory module.
In Example 19, the circuit system of any one of Examples 16-18 can optionally further include: a third memory module comprising a fourth circuit board, wherein the third memory module only has third memory integrated circuit dies mounted on one surface of the fourth circuit board; a fourth memory module comprising a fifth circuit board, wherein the fourth memory module only has fourth memory integrated circuit dies mounted on one surface of the fifth circuit board, wherein the third memory integrated circuit dies are facing in an opposite direction relative to a direction that the fourth memory integrated circuit dies are facing.
In Example 20, the circuit system of Example 19 can optionally include wherein the third memory module has a reverse orientation on the base circuit board relative to the fourth memory module such that the third memory integrated circuit dies face away from the fourth memory integrated circuit dies.
The foregoing description of the exemplary embodiments of the present invention has been presented for the purpose of illustration. The foregoing description is not intended to be exhaustive or to limit the present invention to the examples disclosed herein. In some instances, features of the present invention can be employed without a corresponding use of other features as set forth. Many modifications, substitutions, and variations are possible in light of the above teachings, without departing from the scope of the present invention.