Various types of nonvolatile memory (“NVM”), such as flash memory (e.g., NAND flash memory and NOR flash memory), can be used for mass storage. For example, consumer electronic devices (e.g., portable media players) use flash memory to store data, including music, videos, images, and other media or types of information. An ongoing trend in the consumer electronic industry involves utilizing more and more NVM in smaller and smaller devices, creating the necessity for creative packaging solutions that increase data storage density.
Memory systems and methods for creating the same are provided. A memory system can include a number of memory packages mounted on two sides of a system substrate. Each memory package may be mounted to the system substrate using a package substrate such as, for example, a land grid array (“LGA”), ball grid array (“BGA”), or pin grid array (“PGA”). A memory controller can communicate with the memory packages via electrical connections provided by the system substrate, which can be, for example, a printed circuit board (“PCB”) or printed wiring board (“PWB”).
A package substrate may include an array of contacts for conveying signals to and from components included within its corresponding memory package. In some embodiments, these contacts may be split between two communications channels and arranged symmetrically when reflected about a central axis or a point of rotational symmetry. Accordingly, the communications channels of memory packages mounted on either side of the system substrate can be shorted together to reduce the footprint required for routing the electrical connections on the system substrate.
The above and other aspects of the invention, its nature, and various features will become more apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout, and in which:
Surface mount packages for integrated circuits (“ICs”) have become prevalent in recent years as the number of interconnects required for each IC has increased beyond the capabilities of traditional through-hole IC packages (e.g., dual-inline packages (“DIP”) and pin-grid arrays (“PGA”)). Examples of surface mount IC packages include ball-grid arrays (“BGA”) and land-grid arrays (“LGA”). A BGA or LGA can include an array of contacts arranged in an x-y plane on a bottom surface of the package substrate. The contacts can be soldered to corresponding contacts of a second substrate such as, for example, a PCB or a PWB. The second substrate can include conductive traces for carrying signals to and from the IC package.
The contacts on the bottom surface of the package substrate can be routed to the top surface using conductive vias formed through the package substrate, for example. The package substrate can also include conductive pads and/or traces on the top surface of the package substrate for communicatively coupling to one or more ICs mounted on top of the package substrate. In some embodiments, wire-bond pads can be formed on the top surface of the package substrate for communicatively coupling the contacts to the IC(s). Additionally, the first IC in a stack can be flip-chip bonded to the top surface of the package substrate. In some embodiments, the IC package can be a NVM package, and the flip-chip bonded IC can be a memory controller for the NVM package.
The contacts formed on the bottom side of the package substrate can be arranged such that a first set of contacts (e.g., a first channel) can be arranged on one portion of package substrate and a second set of contacts (e.g., a second channel) can be arranged on a second portion of the package substrate. The first set of contacts can be dedicated to a subset half of the NVM dies and the second set of contacts can be dedicated to a second subset of the NVM dies. Furthermore, the contacts dedicated to each channel can be arranged symmetrically (e.g., with reflective symmetry about a central axis or about a central point of rotational symmetry). Symmetrical arrangement of the contacts can allow for NVM packages mounted on either side of a system substrate to share electrical connections (e.g., vias) formed through the system substrate as disclosed below.
Host 102 can include host controller 114 that is configured to interact with NVM package 104. For example, host 102 can transmit various access requests, such as read, program, and erase operations, to NVM package 104. Host controller 114 can include one or more processors and/or microprocessors that are configured to perform operations based on the execution of software and/or firmware instructions. Additionally and/or alternatively, host controller 114 can include hardware-based components, such as application-specific integrated circuits (“ASICs”), that are configured to perform various operations. Host controller 114 can format information (e.g., commands, data) transmitted to NVM package 104 according to a communications protocol shared between host 102 and NVM package 104.
Host 102 can include storage component 134, including volatile memory 108 and NVM 118. Volatile memory 108 can be any of a variety of volatile memory types, such as cache memory or RAM. Host 102 can use volatile memory 108 to perform memory operations and/or to temporarily store data that is being read from and/or written to NVM package 104. For example, volatile memory 108 can temporarily store a queue of memory operations to be sent to, or to store data received from, NVM package 104. Host 102 can use NVM 118 to persistently store a variety of information, including firmware, which can be used to control operations on host 102.
Host 102 can communicate with NVM package 104 over communications channel 116. Communications channel 116 can be fixed (e.g., fixed communications channel), detachable (e.g., universal serial bus (USB), serial advanced technology (SATA)), or wireless (e.g., Bluetooth™). Interactions with NVM package 104 can include providing access requests and transmitting data, such as data to be programmed to one or more of memory dies 112a-n, to NVM package 104. Communication over communications channel 116 can be received at host interface 110 of NVM package 104. Host interface 110 can be part of and/or communicatively connected to memory controller 106.
Like host controller 114, memory controller 106 can include one or more processors and/or microprocessors 120 that are configured to perform operations based on the execution of software and/or firmware instructions. Additionally and/or alternatively, memory controller 106 can include hardware-based components, such as ASICs, that are configured to perform various operations. Memory controller 106 can perform a variety of operations, such as performing access requests initiated by host 102.
Host controller 114 and memory controller 106, alone or in combination, can perform various memory management functions, such as garbage collection and wear leveling. In implementations where memory controller 106 is configured to perform at least some memory management functions, NVM package 104 can be termed “managed NVM” (or “managed NAND” for NAND flash memory). This can be in contrast to “raw NVM” (or “raw NAND” for NAND flash memory), in which host controller 114, external to NVM package 104, performs memory management functions for NVM package 104.
In some embodiments, memory controller 106 can be incorporated into the same package as memory dies 112a-n. In other embodiments, memory controller 106 may be physically located in a separate package or in the same package as host 102. In some embodiments, memory controller 106 may be omitted, and all memory management functions that are normally performed by memory controller 106 (e.g., garbage collection and wear leveling) can be performed by a host controller (e.g., host controller 114).
Memory controller 106 may include volatile memory 122 and NVM 124. Volatile memory 122 can be any of a variety of volatile memory types, such as cache memory or RAM. Memory controller 106 can use volatile memory 122 to perform access requests and/or to temporarily store data that is being read from and/or written to NVMs 128a-n in memory dies 112a-n. For example, volatile memory 122 can store firmware and memory controller 106 can use the firmware to perform operations on NVM package 104 (e.g., read/program operations). Memory controller 106 can use NVM 124 to persistently store a variety of information, such as debug logs, instructions, and firmware that NVM package 104 uses to operate.
Memory controller 106 can use shared internal bus 126 to access NVMs 128a-n, which may be used for persistent data storage. Although only one shared internal bus 126 is depicted in NVM package 104, an NVM package can include more than one shared internal bus. Each internal bus can be connected to multiple (e.g., 2, 3, 4, 8, 32, etc.) memory dies as depicted with regard to memory dies 112a-n. Memory dies 112a-n can be physically arranged in a variety of configurations, including a stacked configuration, and may be, according to some embodiments, IC dies. According to some embodiments, memory dies 112a-n arranged in stacked configurations can be electrically coupled to memory controller 106 with conductive epoxy traces. These embodiments will be discussed in more detail with respect to
NVMs 128a-n can be any of a variety of NVM, such as NAND flash memory based on floating gate or charge trapping technology, NOR flash memory, erasable programmable read only memory (“EPROM”), electrically erasable programmable read only memory (“EEPROM”), ferroelectric RAM (“FRAM”), magnetoresistive RAM (“MRAM”), phase change memory (“PCM”), or any combination thereof.
Memory device 202 is depicted as including memory controller 206 and NVM 205. Memory controller 206 can be similar to memory controller 106, described above with regard to
NVM 205 can include one or more NVM packages 204a-n. NVM packages 204a-n can each be similar to NVM package 104 described above with regard to
The system 200 is depicted as also including an external device 214 that can be communicatively connected (directly and/or indirectly) to the memory device 202. Communication between external device 214 and memory device 202 can include the transmission of data and/or instructions between the two devices. External device 214 can be any of a variety of electronic devices, such as a portable media player, a cellular telephone, a pocket-sized personal computer, a personal digital assistant (“PDA”), a desktop computer, a laptop computer, a tablet computing device desktop computer, a server system, and/or a media computing device (e.g., a media server, a television, a stereo system). In some embodiments, external device 214 may correspond to host 102 of
According to some embodiments, memory device 202 can be a SSD and external device 214 can be a desktop computer that can transmit data (e.g., audio files, video files, etc.) to, and received data from, the memory device over a physical or wireless connection.
NVM packages 304a-h may include multiple NVM dies (e.g., NVM dies 112a-n of
In particular, the contacts on the bottom surface of the NVM packages 304a-h can be routed to the NVM dies using conductive vias formed through the package substrate. NVM packages 304a-h can also include conductive pads and/or traces on the top surface of the package substrate for communicatively coupling to one or more NVM dies. In some embodiments, wire-bond pads can be formed on the top surface of the package substrate for communicatively coupling the contacts to the IC(s). Additionally, the first IC in a stack can be flip-chip bonded to the top surface of the package substrate.
The contacts formed on the bottom side of NVM packages 302a-h can be arranged such that a first set of contacts (e.g., contacts associated with a first communications channel) can be arranged on a first portion of the package substrate closest and a second set of contacts (e.g., contacts associated with a second communications channel) can be arranged on a second portion of the package substrate. According to some embodiments, the first channel can be dedicated to a first subset of the NVM dies, and the second channel can be dedicated to a second subset of the NVM dies.
The contacts dedicated to each channel may be symmetrically placed about a central axis of symmetry. Contacts dedicated to each channel can be arranged on either side of the axis of symmetry such that NVM packages mounted on either side of system substrate 310 can have vertically coordinating contact arrays. That is, each contact of an NVM package mounted on a first side 310a of package substrate 310 (e.g., NVM package 304a) can be vertically aligned with identical contacts of an NVM package mounted on a second side 310b of system substrate 310 (e.g., NVM package 304b). Each pair of vertically aligned, coordinating contacts can be communicatively coupled, and shorted together, using vias 330 formed through package substrate 310.
According to further embodiments, the contacts of NVM packages 304a-h may be symmetrically placed about a central point of rotational symmetry. Contacts dedicated to each channel can be arranged on either side of a central axis drawn through the point of rotational symmetry. In such embodiments, while each contact of an NVM package mounted on a first side 310a of package substrate 310 (e.g., NVM package 304a) can be vertically aligned with a contact of an NVM package mounted on a second side 310b (e.g., NVM package 304b) of system substrate 310, the vertically aligned contacts may not be correspond identically to one another. For example, an chip enable contact for NVM package 304a may be vertically aligned with a read enable contact for NVM package 304b. Accordingly, because each pair of vertically aligned, coordinating contacts can be communicatively coupled, and shorted together, using vias 330 formed through package substrate 310, memory controller 306 may be use alternate contact maps for pairs of NVM packages mounted on either side of system substrate 310.
Memory controller 306 can communicate with NVM packages 304a-n using vias 330 and conductive traces 332. Vias 330 may be electrically conductive pathways that extend from first side 310a of package substrate 310 to second side 310b of package substrate 310. In some embodiments, holes may be mechanically drilled or chemically etched through package substrate 310. The holes may then be filled with a conductive material to form vias 330. The conductive material can be any material suitable for the purpose. According to some embodiments, the hole can be metalized using an electroplating process or other suitable metallization process. In other embodiments, the holes can be filled with a conductive epoxy.
Additionally, vias 330 may terminate at contacts formed on first side 310a and second side 310b for communicatively coupling to the contacts formed on the bottom surface of NVM packages 304a-h. The contacts may be bond pads formed where vias 330 emerge from the surface of package substrate 310 to facilitate connections between vias 330 and other contacts of NVM packages 304a-h. In some embodiments, NVM packages 304a-h may be communicatively coupled to the bond pads that terminate vias 330 using solder connections, for example.
Memory controller 306 can be electrically connected to vias 330, and ultimately NVM packages 304a-h, with conductive traces 332 as depicted schematically in
As depicted in
Memory controller 306 may use package enable and chip enable signals to differentiate between NVM packages 304a-h as well as individual NVM dies within each NVM package, respectively.
Communicatively coupling memory controller 406 to only one channel of each NVM package 404a-h may be beneficial for a number of reasons. For example, single-channel communications between memory controller 406 and NVM packages 404a-h can improve signal integrity by reducing cross-talk over high-speed signal lines and allowing for more direct communications to NVM dies within each NVM package compared with dual-channel memory devices. Additionally, the number of vias 430 and conductive traces 432 required to manufacture memory device 402 are halved compared to the dual-channel implementation disclosed above with respect to memory device 302 of
Channels 504a[0,1]-504h[0,1] are also represented in
Each of channels 504a[0,1]-504h[0,1] may be schematically represented as an X or an O depending on whether or not it is an active channel for that particular NVM package. Therefore, channel 504a[0], represented as an O, can be an active channel for NVM package 504a, while channel 504a[1], represented as an X, may be an inactive communications channel. Furthermore, vertically aligned channels (e.g., channel 504a[0] and channel 504b[0]) corresponding to vertically aligned NVM packages (e.g., NVM package 504a and NVM package 504b) on either side of system substrate 510 may have identical active/inactive statuses. For example, channel 504a[0] and channel 504b[0], which can be vertically aligned, may be active channels, while channel 504a[1] and channel 504b[1], also vertically aligned, may be inactive channels.
As noted above with respect to
As noted above with respect to
In other embodiments, conductive traces 532 may communicatively couple together contacts of NVM packages that are not vertically aligned with respect to system substrate 510. That is, one set of conductive traces 532 may extend from memory controller 506 to a first set of vias 330 (e.g., vias 330 communicatively coupling channels 504c[1] and 504d[1]) and then continue on to a second set of vias 330 (e.g., vias 330 communicatively coupling channels 504a [1] and 504b[1]). Such an arrangement allows for dual-channel memory device operation without increasing the footprint of memory device 502. Memory controller 506 may differentiate signals transmitted to and received from the various interconnected channels using various chip enable and package enable signals, for example.
In the embodiment depicted in
According to some embodiments, inactive channels 702a[p] and 702b[p] may be isolated from vias 330 using, for example, a non-conductive solder paste. However, any suitable method of electrically isolating channels 702a[p] and 702b[p] from vias 330 may be used. Rather than communicatively coupling a memory controller (e.g., memory controller 406 of
Beneficially, all of the same system components used to construct a dual-channel memory device (e.g., dual channel memory device 302 of
Vias (e.g., vias 330 of
At step 803, a subset of the bond pads may be optionally covered with an electrically isolating material. For example, after the system substrate is provided, bond pads associated with inactive communications channels (e.g., channels 704a[p] and 704b[p] of
At step 805, IC packages can be coupled to the opposite sides of the system substrate with vertically aligned contacts of the IC packages communicatively coupled with the vias. According to some embodiments, the IC packages can be NVM packages (e.g., NVM packages 304a-h of
According to some embodiments, the contacts formed on the bottom of NVM packages coupled to the system substrate may be symmetrically arranged, such that each contact of an NVM package may be vertically aligned with a corresponding contact of an NVM package mounted on the opposite side of the system substrate. Accordingly, the vias can communicatively couple these vertically aligned contacts with each other, and to the memory controller using the conductive traces.
It is to be understood that the steps shown in process 800 of
While there have been described memory systems and methods for making the same, it is to be understood that many changes may be made therein without departing from the spirit and scope of the invention. Insubstantial changes from the claimed subject matter as viewed by a person with ordinary skill in the art, no known or later devised, are expressly contemplated as being equivalently within the scope of the claims. Therefore, obvious substitutions now or later known to one with ordinary skill in the art are defined to be within the scope of the defined elements.
The described embodiments of the invention are presented for the purpose of illustration and not of limitation.