Various embodiments described herein relate to systems and methods associated with semiconductor memory.
The evolution of software application and operating system technology has increased demand for higher-density memory subsystems. However, conventional-technology memory subsystems often represent a compromise between performance and density. Conventional memory subsystems may also exhibit a lack of memory power optimization.
A memory module 100 in accordance with some embodiments may include a memory control device 110 and another memory control device 120. The memory control device 110 may include a communication interface 130 of a first type to couple to a host processor 140. The memory control device 120 may also couple to the host processor 140 through a communication interface 130 of the first type. The memory module 100 may be a dual inline memory module (DIMM). While
The memory module 100 may include a first plurality of memory storage devices 150, coupled to the memory control device 110 and a second plurality of memory storage devices 160 coupled to the memory control device 120. While
A memory storage device 150 may couple to the memory control device 110 through a communication interface 170. The communication interface 170 may be of a second type different from or the same as the type of the communication interface 130. The communication interface 170 may operate at the same or at a lower bitrate or power than the communication interface 130.
A memory storage device 160 may couple to the memory control device 120 through a communication interface 180. The communication interface 180 may be of a type different from or the same as the type of the communication interface 130 or the communication interface 170.
The memory control device 110 may couple to at least one of the second plurality of memory storage devices 160 to provide a redundant communications interface for accessing those memory storage devices. For example, the memory storage device 160 may be coupled to the memory control device 110 through an additional communication interface (not shown in
The memory control device 120 may couple to at least one of the first plurality of memory storage devices 150 to provide a redundant communications interface for accessing those memory storage devices. For example, a memory storage device 150 may couple to the memory control device 120 through an additional communication interface (not shown in
The memory control device 110 or 120 may couple to a memory module link 185 through an interface 190 to communicate with other memory modules in a computing system. Multiple memory modules (not shown in
The interface 190 may be a Serializer/Deserializer (SerDes) interface, a Cube Connect Interface (CCI), or any other type of interface. The interface 190 may operate at a higher bitrate or the same bitrate as the communication interfaces 130. A CCI may be a single-ended ground-referenced interface. The CCI may operate unidirectionally in some embodiments, or bidirectionally in some other embodiments. The CCI may utilize reduced power or startup time relative to a SerDes interface. In some embodiments, at least because the CCI may be a simpler interface that runs at a lower frequency than the SerDes interface, the CCI may utilize a relatively simpler or faster training algorithm than the SerDes interface does on power-up. In some embodiments, the CCI for communicating with a memory storage device 150, 160 to be accessed implements training algorithms on power up and other CCIs may not implement training algorithms. Because of the granularity and modularity of the distributed CCI interfaces, therefore, startup time of the memory module 100 may be reduced. Further, in contrast to SerDes, the CCI may not serialize and de-serialize high-speed serial bit streams to and from slower core clock domains into the high-speed serial clock domains. Accordingly, the CCI may have reduced latency relative to a SerDes interface.
A memory control device 110 or 120, or the host processor 140, may reduce latency by tracking address requests or processor requests. The memory control device 110, 120, or the host processor 140, may move high-use data that is deeper in a memory module 100 or on a deeper memory module in a chain of memory modules (not shown in
At least one of the memory storage devices 150, 160 may comprise a memory storage die arranged in a vertical stack with a logic die. A memory storage device 150, 160 may include a logic die to implement additional distribution operations, control snapshot backups, redundancy operations, error correction, or other control and management operations. The logic die may also execute logic to decrease internal power to the power level needed for self-refresh of memory locations. The logic die may control a transition between active and non-active states of the corresponding memory storage device 150, 160.
At least one of the memory storage devices 150, 160 may comprise a vertical stack of memory storage dies and no logic die. A memory storage device 150, 160 may not include a logic die in order to limit logic transistor count to reduce minimize leakage power in the memory storage device 150, 160.
At least one of the memory storage devices 150, 160 may be a NAND-architecture flash memory device. A memory storage device 150, 160 may operate at half of the CCI bandwidth. A memory storage device 150, 160 may include a redundant pass-through CCI to provide an additional communication path to other memory storage devices 150, 160 or memory control devices 110, 120 in cases of failure of a communication path to any memory storage device 150, 160 or memory control device 110, 120.
The memory control device 200 may include a communication interface 220 to communicate with a memory storage device (not shown in
The communication interface 220 may operate at a lower power than the communication interface 210. The communication interface 220 may operate at a lower bitrate than the communication interface 210. For example, the communication interface 220 may operate at 2.5 gigabits per second (Gb/s) while the communication interface 210 may operate at 10 Gb/s. The communication interface 210 may operate at a higher bandwidth than the second communication interface 220. The communication interface 210 may be an optical interface while the communication interface 220 may be other than an optical interface. For example, the communication interface 220 may be a SerDes interface, a CCI, The communication interface 220 may be a SerDes interface or the communication interface 220 may be other than a SerDes interface. For example, the communication interface 220 may be a CCI as described above with respect to
The memory control device 200 may reduce power at lower data rates by operating the CCI in a source-terminated mode to reduce or eliminate termination currents. As the memory control device 200 begins to operate with faster signaling rates or uses lower quality channels, the physical layer may enable receive termination to improve signal integrity at the cost of increased power. When a memory transfer or other access to a memory storage module is complete, the memory control device 200 may reduce or eliminate output power of a CCI.
The CCI interface may comprise a number of data lanes, set at design time of the physical CCI interface, to generate a desired data width and a bandwidth in accordance with memory module 100 requirements. The CCI interface may further comprise a forwarded clock for data capture. The CCI interface may be modular and adaptable in both lane count and data rate between the memory control device 200 and any of the plurality of memory storage devices 150, 160 (
The memory control device 200 may include a communication interface 230 to communicate with a memory storage device (not shown in
The memory control device 200 may comprise a communication interface 240 to communicate with a memory control device (not shown in
The communication interface 220, the communication interface 230, or the communication interface 240 may each communicate with more than one memory storage device or memory control device (not shown in
The communication interface 220, the communication interface 230, or the communication interface 240 may each communicate with the same memory storage device or memory control device (not shown in
While eight communication interfaces are shown in
The memory control device 200 may comprise a memory storage die 250. While
The memory control device 200 may include a logic die 260. The logic die 260 may couple to the memory storage die 250. The logic die 260 may be arranged in a vertical stack with the memory storage die 250. The logic die 260 may also be arranged in a different configuration with the memory storage die 250. For example, the logic die 260 may be arranged adjacent to the memory storage die 250. The logic die 260 may contain control structures to accept and respond to memory requests received from the host processor 140 (
The logic die 260 may process a memory request received over the communication interface 210 from the host processor (not shown in
In some embodiments, the memory control device 200 may perform operations, such as memory request operations, on the memory storage devices 150, 160 (
A memory control device 200 may additionally include a data port (not shown in
Modules described above in accordance with some embodiments may include hardware circuitry, optical components, single or multi-processor circuits, memory circuits, software program modules and objects encoded in a computer-readable medium (but not software listings), firmware, and combinations thereof, as desired by the architect of the memory module 100 and as appropriate for particular implementations of some embodiments.
Some embodiments may comprise or be incorporated into electronic circuitry used in computers, communication and signal processing circuitry, single-processor or multi-processor modules, single or multiple embedded processors, multi-core processors, data switches, and application-specific modules including multilayer, multi-chip modules. Such apparatus and systems may further be included as sub-components within a variety of electronic systems, such as televisions, cellular telephones, personal computers (e.g., laptop computers, desktop computers, handheld computers, tablet computers, etc.), workstations, radios, video players, audio players (e.g., MP3 (Motion Picture Experts Group, Audio Layer 3) players), vehicles, medical devices (e.g., heart monitor, blood pressure monitor, etc.), set top boxes, and others. Some embodiments may include a number of methods.
Some embodiments may include a machine-readable medium that may store one or more sets of instructions (e.g., software) embodying any one or more of the methodologies or functions described herein. The instructions may reside, completely or at least partially, in any combination including the host processor 140, a memory control device 110 or 120 (
For example, the machine-readable medium, when executed on the memory control device 110, may cause the memory control device 110 to receive, over a Serializer/Deserializer (SerDes) interface, a memory request from a host processor 140 (
The machine-readable medium may cause the memory control device 110 to select, based on the memory request, an identity of a memory storage device 150 that the memory control device 110 may access. The memory storage device 150 may be included in a plurality of memory storage devices 150 coupled to the memory control device 110 over a respective plurality of communication interfaces 170. The plurality of communication interfaces 170 may comprise SerDes interfaces. A first subset of the plurality of communication interfaces 170 may comprise SerDes interfaces and a second subset of the plurality of communication interfaces 170 may comprise CCIs. The plurality of communication interfaces 170 may comprise CCIs.
The machine-readable medium may cause the memory control device 110 to apply power to the respective communication interface 170 of the memory storage device 150 that the memory control device 110 will access. The machine-readable medium may cause the memory control device 110 to access memory in the memory storage device based on the memory access request. The machine-readable medium may cause the memory control device 110 to remove power from the respective communication interface 170 upon completion of the access.
The machine-readable medium may cause the memory control device 110 to detect whether a memory control device 120 provides a communication path to the memory storage device 150 responsive to detecting that the respective communication interface 170 to the memory storage device 150 has failed. The computer-readable medium may cause the memory control device 110 to provide the memory request to the memory control device 120 based on the detecting.
The machine-readable medium may cause the memory control device 110 to set a bit rate for communication on a communication interface 170 of the plurality of communication interfaces 170 to a first bit rate. The computer-readable medium may cause the memory control device 110 to set a bit rate for communication on a communication interface 170 of the plurality of communication interfaces 170 to a second bit rate different from the first bit rate.
As a further example, the machine-readable medium, when executed on the host processor 140, may cause the host processor 140 to receive an instruction for backing up memory. The host processor 140 may receive the instruction at, for example, an operating system (OS) executing on the host processor 140. The instruction may be received from, for example, other applications executing on the host processor 140 or within a computing system (not shown in
The machine-readable medium, when executed on the host processor 140, may cause the host processor 140 to instruct the memory control device 110 to perform an action on the memory storage device 150. For example, the memory control device 110 may be instructed to perform data operations or memory accesses on the memory storage device. The host processor 140 may instruct the memory control device 110 to store the result of the action at the memory control device 110 without sending the result of the action to the host processor 140. For example, the memory control device 110 may store the result of the action on the memory storage die 250 (
In operation 410, a memory control device 110 may receive a memory request from a host processor 140. The memory control device 110 may receive the memory request over a communication interface 130 of a first type. The communication interface 130 of the first type may be a Serializer/Deserializer (SerDes) interface.
In operation 420, the memory control device 110 may select, based on the memory request, an identity of a memory storage device 150 to be accessed. The memory storage device 150 may be one of a plurality of memory storage devices 150 coupled to the memory control device 110 by a plurality of respective communication interfaces 170 of a second type. The communication interface 130 of the first type may operate at a higher bitrate than communication interfaces 170 of the second type. The communication interface 130 of the first type may operate at a similar bitrate as the communication interface 170 of the second type. The memory control device 110 may apply power to the respective communication interface 170 responsive to selecting memory storage device 150.
In operation 430, the memory control device 110 may access memory in the selected memory storage device 150 based on the memory request. The memory control device 110 may remove power from the communication interface 170 upon completion of the memory request.
The memory control device 110 may perform an operation based on memory bits retrieved from a memory storage device 150 without passing memory bits to the host processor 140. The memory control device 110 may detect that the communication interface 170 to a memory storage device 150 or the communication interface 195 to a memory control device 120 has failed. The memory control device 110 may select another communication interface (not shown in
The memory control device 110 may back up data to a backup memory storage (not shown in
In operation 510, the host processor 140 may apply power at a communication interface 130. The communication interface 130 may couple a first memory control device 110 to the host processor 140. The communication interface 130 may be of a first type. For example, the communication interface 130 may be a SerDes interface.
In operation 520, the host processor 140 may apply power, or instruct the memory control device 110 to apply power, at a respective interface 170 between the memory control device 110 and a memory storage device 150 of a plurality of memory storage devices 150, responsive to receiving a memory request for the memory storage device 150. The plurality of memory storage devices 150 may couple to the memory control device 110 through respective communication interfaces 170 of a second type different from the first type.
The host processor 140 may set a data rate of a communication interface 170 of the communication interfaces 170 upon applying power to the memory module 100, based on a configuration of the memory module 100. Alternatively, the host processor 140 may instruct the memory control device 110 to set a data rate of a communication interface 170 of the communication interfaces 170 upon applying power to the memory module 100, based on a configuration of the memory module 100. For example, the host processor 140 or memory control device 110 or 120 may program the signaling data rate and termination scheme of the CCI upon booting up the memory module 100 to optimize bandwidth versus power. The host processor 140, memory control device 110 or 120, or other device may change the data rate of the CCI when the memory module 100 changes from a high activity state to a low activity state to provide further power usage optimizations. The host processor 140, memory control device 110 or 120, or other device may change the data rate of the CCI for memory use cases that may be more tolerant of higher latency.
The host processor 140 may set a data rate of a communication interface 170 of the communication interfaces 170 responsive to a memory request, based on a latency requirement of the memory request. Alternatively, the host processor 140 may instruct the memory control device 110 to set a data rate of a communication interface 170 of the communication interfaces 170 responsive to a memory request, based on a latency requirement of the memory request.
In operation 530, the host processor 140 may remove power at the respective communication interface 170 responsive to completion of the memory request, or the host processor 140 may instruct the memory control device 110 to remove power at the respective communication interface 170 responsive to completion of the memory request.
In operation 540, the host processor 140 may maintain power at the communication interface 130 after completion of the memory request.
Embodiments described herein may operate to utilize a tiered structure of memory control devices and memory storage devices, communicating through power-optimized communication interfaces, to reduce power usage and latency while increasing memory density of a memory module.
The above description and the drawings sufficiently illustrate some specific embodiments to enable those skilled in the art to practice them. Other embodiments may incorporate structural, logical, electrical, process, and other changes. Portions and features of some embodiments may be included in, or substituted for, those of other embodiments. Embodiments set forth in the claims encompass all available equivalents of those claims.