Dynamically sized redundant write buffer with sector-based tracking
US-2024143511-A1 · May 2, 2024 · US
US9734079B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9734079-B2 |
| Application number | US-201313931701-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 28, 2013 |
| Priority date | Jun 28, 2013 |
| Publication date | Aug 15, 2017 |
| Grant date | Aug 15, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Hybrid multi-level memory architecture technologies are described. A System on Chip (SOC) includes multiple functional units and a multi-level memory controller (MLMC) coupled to the functional units. The MLMC is coupled to a hybrid multi-level memory architecture including a first-level dynamic random access memory (DRAM) (near memory) that is located on-package of the SOC and a second-level DRAM (far memory) that is located off-package of the SOC. The MLMC presents the first-level DRAM and the second-level DRAM as a contiguous addressable memory space and provides the first-level DRAM to software as additional memory capacity to a memory capacity of the second-level DRAM. The first-level DRAM does not store a copy of contents of the second-level DRAM.
Opening claim text (preview).
What is claimed is: 1. A system on chip (SoC) comprising: a plurality of functional units; and a multi-level memory controller (MLMC) for a hybrid multi-level memory architecture comprising a first-level dynamic random access memory (DRAM) that is located on-package of the SOC and a second-level DRAM that is located off-package of the SOC, wherein the MLMC is coupled to the plurality of functional units, wherein the MLMC is to: present the first-level DRAM and the second-level DRAM as a contiguous addressable memory space, provide the first-level DRAM to software as additional memory capacity to a memory capacity of the second-level DRAM, receive a memory request for an address from one of the plurality of functional units; determine whether a modulo 3 of the address of the memory request is less than 2; in response to the modulo 3 of the address of the memory request being less than 2, the MLMC is to: determine that the address points to a memory location in the second-level DRAM; read data stored at the memory location in the second-level DRAM; and move the data from the second-level DRAM to the first-level DRAM, wherein the first-level DRAM does not store a copy of contents of the second-level DRAM prior to the data being moved from the second-level DRAM to the first-level DRAM; and in response to the modulo 3 of the address of the memory request being equal to or greater than 2, the MLMC read data stored at the memory location in the first-level DRAM. 2. The SOC of claim 1 , wherein the first-level DRAM is a first memory type and the second-level DRAM is a second memory type. 3. The SOC of claim 2 , wherein the first memory type is at least one of lower power per bandwidth than the second memory type, lower latency than the second memory type, or higher peak bandwidth than the second memory type. 4. The SOC of claim 1 , wherein the MLMC is to: receive memory requests from the plurality of functional units; and map the memory requests to the first-level DRAM or the second-level DRAM according to a memory management scheme, wherein the memory management scheme is based on at least one of a bandwidth, a latency, a power requirement of a requesting one of the plurality of functional units. 5. The SOC of claim 1 , wherein the MLMC is to operate as a cache controller that manages the first-level DRAM as a hardware-managed cache, and wherein the MLMC is to determine which of the first-level DRAM or the second-level DRAM memory requests resides through a cache lookup, wherein the hardware-managed cache does not store the copy of contents of the second-level DRAM. 6. The SOC of claim 1 , wherein the MLMC is to map a first set of memory pages accessed by one or more of the plurality of functional units in the first-level DRAM and a second set of memory pages accessed by one or more of the plurality of functional units in the second-level DRAM, wherein the first set of memory pages are accessed more frequently than the second set of memory pages. 7. The SOC of claim 1 , wherein the MLMC is further to: identify a source identifier of the memory request; and map the memory request to the first-level DRAM or the second-level DRAM according to a memory management scheme, wherein the memory management scheme is based at least in part on the source identifier. 8. The SOC of claim 1 , wherein: the memory request corresponds to at least one of a dedicated load instruction or a dedicated store instruction that identifies one of the first-level DRAM or the second-level DRAM; and the MLMC is further to map the memory request to the first-level DRAM or the second-level DRAM according to the one of the first-level DRAM or the second-level DRAM identified in the at least one of the dedicated load instruction or the dedicated store instruction. 9. The SOC of claim 1 , wherein the MLMC is further to: receive performance stall information of a previous memory request to a logical address that is mapped to a first physical address in the second-level DRAM; and re-map the logical address to a second physical address in the first-level DRAM in response to the performance stall information. 10. The SOC of claim 1 , wherein each system-addressable memory blocks of the contiguous addressable memory space resides in only one of the first-level DRAM or the second-level DRAM at any given time. 11. The SOC of claim 1 , wherein the hybrid multi-level memory architecture is a pointer-based, non-inclusive memory architecture. 12. The SOC of claim 1 , wherein the MLMC is further to: identify a first memory page currently residing in the second-level DRAM to be relocated to the first-level DRAM; identify a second memory page in the first-level DRAM to be swapped with the first memory page; and swap the second memory page with the first memory page. 13. The SOC of claim 1 , wherein the contiguous addressable memory space is divided into sets and ways, wherein for each set, a first portion of the ways reside in the first-level DRAM and a second portion of the ways reside in the second-level DRAM, wherein a first number of ways in the first portion over a second number of ways in the second portion is proportional to a ratio of the additional memory capacity of the first-level DRAM to the memory capacitive of the second-level DRAM. 14. The SOC of claim 1 , wherein the first-level DRAM is embedded DRAM (eDRAM). 15. The SOC of claim 1 , wherein the first-level DRAM is wide input-output (I/O) 2 (WIO2) DRAM. 16. The SOC of claim 1 , wherein the second-level DRAM is at least one of low-power double data rate 3 (LPDDR3) DRAM, LPDDR4 DRAM, DDR3 DRAM, DDR3L DRAM, or DDR4 DRAM. 17. A processor comprising: a system interconnect, for a multi-level memory (MLM) architecture, comprising: near memory that is located on-package of the processor; far memory that is located off-package of the processor, wherein the near memory is a first-level dynamic random access memory (DRAM) and the far memory is a second-level (DRAM); a plurality of functional units coupled to a first multi-level memory controller (MLMC) and a second MLMC; a first near-memory controller to interface to a first near-memory device of the near memory; a second near-memory controller to interface to a second near-memory device of the near memory; a first far-memory controller to interface to a first far-memory device of the far memory; a second far-memory controller to interface to a second far-memory device of the far memory; a far-memory arbitrator (FMARB) unit coupled to the first far-memory controller and the second far-memory controller; the first MLMC coupled to the first near memory controller and the FMARB unit, the first MLMC to: receive a memory request for an address from one of the plurality of functional units; switch to an aggregate mode when a system bandwidth exceeds a bandwidth threshold, wherein the first MLMC monitors the system bandwidth in the aggregate mode to determine when the bandwidth exceeds a second threshold; in response to the system bandwidth exceeding the bandwidth threshold, determine that the address points to a memory location in a second-level DRAM when a modulo 3 of the address of the memory request is less than 2; read data stored at the memory location in the second-level DRAM; and move the data from the second-level DRAM to the first-level DRAM; and a second MLMC coupled to the second near memory controller and the FMARB unit. 18. The processor of claim 17 , further comprising a system agent coupled between the plurality of functional units and the fi
for peripheral storage systems, e.g. disk cache · CPC title
in hierarchically structured memory systems, e.g. virtual memory systems · CPC title
Means for saving power · CPC title
Hybrid memory, e.g. using both volatile and non-volatile memory · CPC title
for I/O modules, e.g. memory mapped I/O (I/O protocol G06F13/42) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.