Hybrid exclusive multi-level memory architecture with memory management
First Claim
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.
1 Assignment
0 Petitions
Accused Products
Abstract
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.
14 Citations
27 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
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. - View Dependent Claims (18, 19, 20, 21, 22)
-
23. A method comprising:
-
presenting to software, by a multi-level memory controller (MLMC), a contiguous addressable memory space of a hybrid multi-level memory architecture, wherein the hybrid multi-level memory architecture comprises a first-level dynamic random access memory (DRAM) that is located on-package and a second-level DRAM that is located off-package, wherein the first-level DRAM does not store a copy of contents of the second-level DRAM; receiving, at the MLMC, a memory request for an address in the contiguous addressable memory space from one of a plurality of functional units; determining that the MLMC is in an aggregate mode when a system bandwidth exceeds a bandwidth threshold, wherein the MLMC monitors the system bandwidth in the aggregate mode to determine when the system bandwidth exceeds a second threshold; in response to the system bandwidth exceeding the bandwidth threshold, determining that the address points to a memory location in the second-level DRAM when a modulo 3 of the address of the memory request is less than 2; reading data stored at the memory location in the second-level DRAM; and moving the data from the second-level DRAM to the first-level DRAM. - View Dependent Claims (24, 25, 26, 27)
-
Specification