# US 10,503,657 B2 · DIMM SSD Addressing performance techniques

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,503,657 B2
- Document ID: US10503657B2
- Status: Granted
- Kind: B2
- Application number: 15/953,397
- Filed: 2018-04-13
- Published: 2018-08-23
- Granted: 2019-12-10
- Earliest claimed: 2015-10-07
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Craig Hanson; Ian Swarbrick; Michael Bekerman; Chihjen Chang
- Web page: https://patentgrep.com/patent/US10503657B2

## CPC

- G06F 12/10: Address translation
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 2212/1004: Compatibility, e.g. with legacy hardware
- G06F 2212/1044: Space efficiency improvement
- G06F 2212/657: Virtual address space management
- G06F 2212/7201: Logical to physical mapping or translation of blocks or pages
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A Non-Volatile Dual In-Line Memory Module is disclosed (NVDIMM). The NVDIMM may be installed in a Dual In-Line Memory Module (DIMM) docket. The NVDIMM may include a non-volatile memory. A device driver may intercept a request for a memory address destined for a host memory controller, replace the memory address with a pre-mapped memory address or an alias of the pre-mapped memory address, and send the pre-mapped memory address to the host memory controller, so that the host memory controller generates a target memory address to NVDIMM.

## Claims

### Claim 1

A device, comprising:
a Non-Volatile Dual In-Line Memory Module (NVDIMM) installed in a Dual In-Line Memory Module (DIMM) socket, the NVDIMM including a memory and an exposed memory, the exposed memory including a first size of the exposed memory and a base address of the exposed memory; and
a device driver operating on a host processor, the device driver operative to intercept a memory address destined for a host memory controller and replace the memory address with an intermediate address in a request sent to the host memory controller, the intermediate address different from the memory address and generated using a physical-to-intermediate mapping on the memory address,
wherein the exposed memory includes a directly addressable memory and the memory address is in the exposed memory.

### Claim 2 (depends on 1)

A device according to claim 1, wherein the intermediate address is designed such that the host memory controller transmits a target memory address to the NVDIMM responsive to the intermediate address, the target memory address including a physical location of a value stored at the memory address.

### Claim 3 (depends on 2)

A device according to claim 2, wherein the device driver is operative to generate the intermediate address from the memory address responsive to the first size of the exposed memory in the NVDIMM, the base address of the exposed memory in the NVDIMM, a second size of a logical segment of the exposed memory in the NVDIMM, and a memory controller operating mode of the host memory controller.

### Claim 4 (depends on 3)

A device according to claim 3, wherein the device driver is further operative to generate the intermediate address from the memory address using the physical-to-intermediate mapping responsive to a logical-to-physical mapping of the memory address by the host memory controller.

### Claim 5

A method, comprising:
receiving a request to access a memory address of a Non-Volatile Dual In-Line Memory Module (NVDIMM), the NVDIMM including a memory and an exposed memory, the exposed memory including a first size of the exposed memory and a base address of the exposed memory the memory address in the exposed memory;
pre-mapping the memory address to an intermediate address using a physical-to-intermediate transformation, the intermediate address different from the memory address responsive to a first size of an exposed memory in the NVDIMM, and a base address of the exposed memory in the NVDIMM, a second size of a logical segment of the exposed memory in the NVDIMM, a memory controller operating mode of the host memory controller, and a logical-to-physical transformation used by the host memory controller; and
sending the intermediate address to a host memory controller,
wherein the host memory controller sends a target memory address to the NVDIMM, the target memory address responsive to the intermediate address and representing a physical location of a value stored at the memory address, and
wherein the exposed memory includes a directly addressable memory.

### Claim 6

An article, comprising a non-transitory storage medium, the tangible storage medium having stored thereon instructions that, when executed by a machine, result in:
receiving a request to access a memory address of a Non-Volatile Dual In-Line Memory Module (NVDIMM), the NVDIMM including a memory and an exposed memory, the exposed memory including a first size of the exposed memory and a base address of the exposed memory, the memory address in the exposed memory;
pre-mapping the memory address to an intermediate address using a physical-to-intermediate transformation, the intermediate address different from the memory address responsive to a first size of an exposed memory in the NVDIMM, and a base address of the exposed memory in the NVDIMM, a second size of a logical segment of the exposed memory in the NVDIMM, a memory controller operating mode of the host memory controller, and a logical-to-physical transformation used by the host memory controller; and
sending the intermediate address to a host memory controller,
wherein the host memory controller sends a target memory address to the NVDIMM, the target memory address responsive to the intermediate address and including a physical location of a value stored at the memory address, and
wherein the exposed memory includes a directly addressable memory.

### Claim 7 (depends on 1)

A device according to claim 1, wherein the host memory controller implements a logical-to-physical mapping on the intermediate address.

### Claim 8 (depends on 5)

A method according to claim 5, wherein the host memory controller implements a logical-to-physical mapping on the intermediate address.

### Claim 9 (depends on 6)

An article according to claim 6, wherein the host memory controller implements a logical-to-physical mapping on the intermediate address.
