Multi-serial interface stacked-die memory architecture
First Claim
1. A memory system, comprising:
- a plurality of memory vaults comprising a stacked plurality of tiled memory arrays, each memory vault comprising a stacked plurality of memory array die sections;
a plurality of memory vault controllers (MVCs), each MVC coupled to a corresponding one of the plurality of memory vaults in a one-to-one relationship to communicate with the corresponding memory vault independently from communications between others of the plurality of MVCs and memory vaults corresponding to the others of the plurality of MVCs;
a plurality of configurable serialized communication link interfaces (SCLIs) configured for concurrent operation to communicatively couple the plurality of MVCs to at least one of an originating device or a destination device;
a switch coupled to the plurality of SCLIs and to the plurality of MVCs to cross-connect a selected SCLI to a selected MVC; and
a packet decoder coupled to the switch to receive an outbound packet sent from the originating device across an outbound one of the plurality of SCLIs, to extract at least one of an outbound memory command, an outbound memory address, or an outbound memory data field from the outbound packet and to present a set of memory vault select signals to the switch; and
a packet encoder coupled to the switch to receive at least one of an inbound memory command, an inbound memory address, or inbound memory data from one of the plurality of MVCs and to encode the inbound memory address or the inbound memory data into an inbound packet for transmission across an inbound one of the plurality of SCLIs to the destination device.
8 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods disclosed herein substantially concurrently transfer a plurality of streams of commands, addresses, and/or data across a corresponding plurality of serialized communication link interfaces (SCLIs) between one or more originating devices or destination devices such as a processor and a switch. At the switch, one or more commands, addresses, or data corresponding to each stream can be transferred to a corresponding destination memory vault controller (MVC) associated with a corresponding memory vault. The destination MVC can perform write operations, read operations, and/or memory vault housekeeping operations independently from concurrent operations associated with other MVCs coupled to a corresponding plurality of memory vaults.
133 Citations
21 Claims
-
1. A memory system, comprising:
-
a plurality of memory vaults comprising a stacked plurality of tiled memory arrays, each memory vault comprising a stacked plurality of memory array die sections; a plurality of memory vault controllers (MVCs), each MVC coupled to a corresponding one of the plurality of memory vaults in a one-to-one relationship to communicate with the corresponding memory vault independently from communications between others of the plurality of MVCs and memory vaults corresponding to the others of the plurality of MVCs; a plurality of configurable serialized communication link interfaces (SCLIs) configured for concurrent operation to communicatively couple the plurality of MVCs to at least one of an originating device or a destination device; a switch coupled to the plurality of SCLIs and to the plurality of MVCs to cross-connect a selected SCLI to a selected MVC; and a packet decoder coupled to the switch to receive an outbound packet sent from the originating device across an outbound one of the plurality of SCLIs, to extract at least one of an outbound memory command, an outbound memory address, or an outbound memory data field from the outbound packet and to present a set of memory vault select signals to the switch; and a packet encoder coupled to the switch to receive at least one of an inbound memory command, an inbound memory address, or inbound memory data from one of the plurality of MVCs and to encode the inbound memory address or the inbound memory data into an inbound packet for transmission across an inbound one of the plurality of SCLIs to the destination device. - View Dependent Claims (2, 3, 4, 5, 13)
-
-
6. A memory system, comprising:
-
a plurality of memory vaults comprising a stacked plurality of tiled memory arrays, each memory vault comprising a stacked plurality of memory array die sections; a plurality of memory vault controllers (MVCs), each MVC coupled to a corresponding one of the plurality of memory vaults in a one-to-one relationship to communicate with the corresponding memory vault independently from communications between others of the plurality of MVCs and memory vaults corresponding to the others of the plurality of MVCs; a plurality of configurable serialized communication link interfaces (SCLIs) configured for concurrent operation to communicatively couple the plurality of MVCs to at least one of an originating device or a destination device, an outbound one of the plurality of SCLIs further comprising; a plurality of outbound differential pair serial paths (DPSPs) coupled to the originating device to transport an outbound packet containing at least one of command information, address information, or data across the outbound SCLI, each of the plurality of outbound DPSPs to transport a first data rate outbound sub-packet portion of the outbound packet at a first data rate; a deserializer coupled to the plurality of outbound DPSPs to convert each first data rate outbound sub-packet portion of the outbound packet to a plurality of second data rate outbound sub-packets for transmission across a first plurality of outbound single-ended data paths (SEDPs) at a second data rate, the second data rate slower than the first data rate; and a demultiplexer communicatively coupled to the deserializer to convert each of the plurality of second data rate outbound sub-packets to a plurality of third data rate outbound sub-packets for transmission across a second plurality of outbound SEDPs to a packet decoder at a third data rate, the third data rate slower than the second data rate.
-
-
7. A memory system, comprising:
-
a plurality of memory vaults comprising a stacked plurality of tiled memory arrays, each memory vault comprising a stacked plurality of memory array die sections; a plurality of memory vault controllers (MVCs), each MVC coupled to a corresponding one of the plurality of memory vaults in a one-to-one relationship to communicate with the corresponding memory vault independently from communications between others of the plurality of MVCs and memory vaults corresponding to the others of the plurality of MVCs; a plurality of configurable serialized communication link interfaces (SCLIs) configured for concurrent operation to communicatively couple the plurality of MVCs to at least one of an originating device or a destination device; a packet encoder communicatively coupled to the switch to packetize at least one of command information, address information, or data received from an MVC associated with the selected memory vault for transmission across an inbound one of the plurality of SCLIs to the destination device, to segment a resulting inbound packet into a plurality of third data rate inbound sub-packets, and to send the third data rate inbound sub-packets across a first plurality of inbound single-ended data paths (SEDPs) at a third data rate; a multiplexer communicatively coupled to the packet encoder to multiplex each of a plurality of subsets of the third data rate inbound sub-packets into a second data rate inbound sub-packet and to send the second data rate inbound sub-packets across a second plurality of inbound SEDPs at a second data rate faster than the third data rate; and a serializer communicatively coupled to the multiplexer to aggregate each of a plurality of subsets of the second data rate inbound sub-packets into a first data rate inbound sub-packet and to send the first data rate inbound sub-packets to the destination device across a plurality of inbound differential pair serial paths (DPSPs) at a first data rate faster than the second data rate. - View Dependent Claims (9)
-
-
8. A memory system, comprising:
-
a plurality of memory vaults comprising a stacked plurality of tiled memory arrays, each memory vault comprising a stacked plurality of memory array die sections; a plurality of memory vault controllers (MVCs), each MVC coupled to a corresponding one of the plurality of memory vaults in a one-to-one relationship to communicate with the corresponding memory vault independently from communications between others of the plurality of MVCs and memory vaults corresponding to the others of the plurality of MVCs; a plurality of configurable serialized communication link interfaces (SCLIs) configured for concurrent operation to communicatively couple the plurality of MVCs to at least one of an originating device or a destination device each MVC further comprising; a programmable vault control logic (PVCL) component to interface the MVC to the corresponding memory vault and to generate at least one of bank control signals or timing signals associated with the corresponding memory vault; a memory sequencer coupled to the PVCL, the memory sequencer to perform at least one of command decode operations, memory address multiplexing operations, memory address demultiplexing operations, memory refresh operations, memory vault training operations, or memory vault prefetch operations associated with the corresponding memory vault; a write buffer coupled to the PVCL to buffer data arriving at the MVC from the originating device; and a read buffer coupled to the PVCL to buffer data arriving at the MVC from the corresponding memory vault. - View Dependent Claims (10, 11, 12)
-
-
14. A method, comprising:
-
concurrently transferring a plurality of streams of commands, addresses, or data; concurrently switching at least one of a command, an address, or data associated with each stream to a corresponding destination memory vault controller (MVC) associated with a corresponding memory vault; performing at least one of data write operations to write the outbound data to the corresponding memory vault, data read operations to read data from the corresponding memory vault, or memory vault housekeeping operations associated with the corresponding memory vault, the data write operations, data read operations, or housekeeping operations to be performed independently from concurrent operations associated with others of a plurality of MVCs coupled to a corresponding plurality of memory vaults; segmenting a packet into a plurality of first data rate sub-packet portions of the packet, the packet containing at least one memory subsystem command, at least one memory subsystem address, or data to be written to at least one memory subsystem location or to be read from at least one memory subsystem location; sending each of the first data rate sub-packets at a first data rate; segmenting each of the first data rate sub-packets into a plurality of second data rate sub-packets; sending each of the second data rate sub-packets at a second data rate slower than the first data rate; segmenting each of the second data rate sub-packet into a plurality of third data rate sub-packets; and sending the third data rate sub-packets to a packet decoder at a third data rate slower than the second data rate. - View Dependent Claims (15, 16, 17, 18)
-
-
19. A method, comprising:
-
creating a plurality of inbound data streams from command, address, or data read from each of a plurality of memory vaults; switching the plurality of inbound data streams to a corresponding plurality of serialized communication link interfaces (SCLIs); concurrently transferring the plurality of inbound streams across the plurality of SCLIs to at least one destination device accessing an inbound data word from a selected memory bank associated with the corresponding memory vault in response to a read command; presenting the inbound data word; switching the inbound data word to a packet encoder associated with a selected one of the plurality of SCLIs; packetizing the inbound data word into an inbound packet; segmenting the inbound packet into a plurality of third data rate inbound sub-packets; and sending the plurality of third data rate inbound sub-packets to a multiplexer at a third data rate. - View Dependent Claims (20, 21)
-
Specification