The present application relates to virtual memory management, specifically to a memory system containing computing devices and memory modules.
Software based virtual memory manager (VMM) slows the operations related to memory module of a computer or a server. Sometimes, the performance of a computer and server may become unpredictable. As such, the software based VMM may become a bottleneck in applications with high volume data transfers requirements.
In an aspect, there is provided a memory module comprising at least one low latency media; a logical controller; a first hybrid bus connecting a CPU memory controller with the logic controller; and a second bus connecting a mesh network with the logic controller; and wherein the logical controller is configured to control data transmission between the low latency media and the CPU memory controller, and between the low latency media and the mesh network.
Reference will now be made, by way of example, to the accompanying drawings which show example embodiments of the present application, and in which:
Similar reference numerals may have been used in different figures to denote similar components.
The CPU 102 interacts with the memory module 104 and the interface 106, and carries out the instructions of a computer program by performing the arithmetic, logical, control and input/output (I/O) operations specified by the instructions. The CPU 102 includes a memory controller 110. The memory controller 110 controls the write/read operation of the data on the memory module 104.
The memory module 104 executes write and read operations of the computing device 100. The memory module 104 includes dual in-line memory modules (DIMM) and non-volatile dual in-line memory modules (NVDIMMs). The memory modules 104 include consistent low latency media, such as dynamic random-access memory (DRAM). Memory media are typically directly plugged onto the memory bus of the memory modules 104. All data transfers to and from the memory module 104 must go through the memory controller 110 in the CPU 102.
A DIMM is a standard module defined by the Joint Electron Device Engineering Council (JEDEC). A DIMM plugs into memory bus sockets (DIMM socket) of the computing device 100. DIMM uses dual data rate (DDR) protocol to execute write/read operations. Up until DDR4 generation, the only standard memory media that can be mounted on standard DIMM is DRAM because of its low and consistent latency, which is a requirement for all DDR protocols so far. However, DRAMs are expensive, not dense, and volatile, Flash, RRAM are examples of commercially available new persistent, denser, and potentially cheaper storage media. All new storage media to be able to be plugged directly in the memory bus 112, on the other hand, suffer high and/or inconsistent latency.
The memory module 104 illustrated in
The JEDEC is currently defining NVDIMM-P. The memory module 104 illustrated in
Referring to
Different interfaces 106 have different characteristics. For example, a DDR memory interface is a synchronous interface and can only be deployed as master slave topology. On the other hand, a PCI interface is an asynchronous interface and is deployed as distributed topology.
Synchronous interface is a protocol where the requester of data transfer expects the operation, such as read/write operation, to complete within a predetermined and fixed time duration between the request start time and the completion time of the request. In a synchronous interface, no interrupt or polling is allowed to determine when the operation is completed. In an example of read/write operation of DDR memory interface, the timing of the electrical data and clock signals is strictly controlled to reach the required timing accuracy. Synchronous interfaces, such as DDR memory interfaces, typically have low latency in operations and as such are commonly used for applications requiring low latency in data transfer. However, storage media with low and consistent latency, such as dynamic random-access memory (DRAM), is difficult and expensive to manufacture.
On the other hand, an asynchronous interface, such as a PCI interface, is a protocol where the requester of data transfer expects an acknowledgment signal from the target indicating the completion of the transaction. The duration from sending a request to the acknowledgement that the request is completed may be varied from different requests. In the example of a PCI interface, interrupt or polling is required to determine when the operation is complete. Asynchronous interfaces, such as PCI interfaces are commonly used for large and variable rate data transfers.
Hybrid bus or interface may support synchronous and asynchronous interfaces at the same time. NVDIMM-P is an example of such interface since Memory Controller 110 communicates synchronously with fast media 120 and asynchronously with slow and variable latency media 122. on the same DDR bus 134 and 136.
As well, the master/slave topology, such as a topology of hub and spoke, is an arrangement where all data transfers between members (spoke) of the topology go through the single master (hub). In the example of DDR memory interface, the DDR memory can only be deployed as master/slave topology where all data transfers go through the memory controller 110 in the CPU 102. In other words, the memory controller 110 in the CPU serves as a hub and controls the data transfers between different memory media 104 of a the DDR memory. Via the memory controller 110, the data are synchronously transferred from a first memory medium of the memory module 104 to a second memory medium of the memory module 104 within the computing device 100 or between the computing device 100 and other memory module 104 of a different computing device 100.
Distributed topology, such as a topology of a mesh network, is an arrangement where all members of the topology are able to communicate directly with each other, PCI interface can be deployed as distributed topology as a mesh network topology. The PCI interface allows the elements connected to a PCI bus transfer data directly with each other in an asynchronous manner. DRAM are currently the only storage media that can have consistent and low latency for use in the memory module 104. DRAM is a type of random access semiconductor memory that stores each bit of data in a separate capacitor within an integrated circuit. However, DRAMs are expensive and are low in density.
Applications of the computing device 100 run off data that is stored in DRAM, the system memory of the computing device 100. In order for multiple applications to run on the same system memory of the computing device 100, a virtual memory manager (VMM), which is a software running as part of the Operating System of the computing devices 100, allocates virtual memory dedicated to each application. The VMM manages a mapping between applications virtual memory and actual physical memory. The VMM services memory allocation requests from applications, maps virtual memory of the applications to the physical memory of the computing device 100. As well, by means of Page Fault Handling, the VMM manages physical memory overflow. For example, if the computing device 100 runs out of physical memory, some data must move from the physical memory DRAM to storage media and this is also known as Swap.
As VMM is software based, it is very flexible to implement. On the other hand, software based VMM makes the operations related to memory module 104 slow, and the performance of the computing device 100 may become unpredictable. As such, the software based VMM may become a bottleneck of the computing device 100 in data transfer for applications with high volume data transfers requirements.
The memory modules 204 does not require any modification to CPU 102, memory controller 110, operation system and Applications.
Memory modules 204 allows direct communication amongst all NVDIMM-P modules (No CPU or OS involvement); direct communication between NVDIMM-P modules and local, as well as, remote storage or compute devices; hardware accelerated data placement and prediction algorithms to maximize over all solution cost/performance metric; full Hardware only memory abstraction layer; and fully distributed memory management.
As such, the structure of the memory module 204 allows direct communication amongst all NVDIMM-P modules via PCI bus with PCI interface, without using the memory controller 110 in the CPU 102 or using the operation system such as VMM, of a computing device.
As well, in the example illustrated in
In the example illustrated in
In the example of
The memory module 204 therefore has full hardware only memory abstraction layer by using the PCI bus and PCI interface instead of software based VMM. The memory module 204 also has fully distributed memory management according to PCI interface protocol. Accordingly, the memory module 204, and the computing device 400 with the memory module 204 allows hardware accelerated data placement and prediction algorithms to maximize over all solution cost/performance metric.
Certain adaptations and modifications of the described embodiments can be made. Therefore, the above discussed embodiments are considered to be illustrative and not restrictive.
Number | Date | Country | |
---|---|---|---|
62649362 | Mar 2018 | US |