# US 12,008,261 B2 · Method and device for accessing memory

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

- Number: US 12,008,261 B2
- Document ID: US12008261B2
- Status: Granted
- Kind: B2
- Application number: 17/741,187
- Filed: 2022-05-10
- Published: 2022-11-17
- Granted: 2024-06-11
- Earliest claimed: 2021-05-11
- Assignees: Electronics and Telecommunications Research Institute
- Applicants: Electronics and Telecommunications Research Institute
- Inventors: Kwang-Won Koh; Kang Ho Kim; Changdae Kim; Taehoon Kim
- Web page: https://patentgrep.com/patent/US12008261B2

## CPC

- G06F 3/0656: {Data buffering arrangements}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

A memory access method and device are provided. A memory access method may include: identifying, when an access to a page of a remote memory occurs, a type of the access; allocating a sparse buffer when the access is a sparse write; storing data for the sparse write in the sparse buffer; storing an address for the sparse write as a key and the sparse buffer as a value in a buffer table; and updating an instruction pointer to point to a next instruction.

## Claims

### Claim 1

A memory access method, comprising:
identifying, when an access to a page of a remote memory occurs, a type of the access;
allocating a sparse buffer when the access is a sparse write;
storing data for the sparse write in the sparse buffer;
storing an address for the sparse write as a key and the sparse buffer as a value in a buffer table; and
updating an instruction pointer to point to a next instruction,
wherein, when a write access to a page related to the sparse buffer in a local memory occurs, the method further comprises:
deleting a record related to the sparse buffer from the buffer table;
deleting the sparse buffer;
allowing write to the page related to the sparse buffer; and
indicating that the page related to the sparse buffer has been changed,
wherein the page related to the sparse buffer in the local memory is set to read-only.

### Claim 2 (depends on 1)

The memory access method of claim 1, further comprising:
when a read access to the page of the remote memory occurs,
searching the buffer table by using an address for the read access as a key; and
determining from the searched result whether a sparse buffer corresponding to the address for the read access exists.

### Claim 3 (depends on 2)

The memory access method of claim 2, further comprising:
when it is determined that the sparse buffer corresponding to the address for the read access exists,
fetching the page from the remote memory into the local memory;
reflecting the data stored in the sparse buffer to the fetched page; and
mapping the reflected page into an address space.

### Claim 4 (depends on 2)

The memory access method of claim 2, further comprising:
when it is determined that the sparse buffer corresponding to the address for the read access does not exist,
fetching the page from the remote memory into the local memory; and
mapping the fetched page into an address space.

### Claim 5 (depends on 1)

The memory access method of claim 1, wherein
the storing of the data for the sparse write in the sparse buffer comprises
storing an address offset for the sparse write in the sparse buffer.

### Claim 6 (depends on 1)

The memory access method of claim 1, further comprising:
after the page is fetched into the local memory from the remote memory, when a memory shortage of the local memory occurs,
deleting the page from the local memory and maintaining the sparse buffer.

### Claim 7 (depends on 6)

The memory access method of claim 6, further comprising:
after the page is deleted from the local memory, when a read access to the page occurs,
fetching the page from the remote memory into the local memory;
reflecting the data stored in the sparse buffer to the fetched page; and
mapping the reflected page into an address space.

### Claim 8 (depends on 1)

The memory access method of claim 1, further comprising:
writing back the indicated page to the remote memory.

### Claim 9

A memory access device, comprising:
a local memory into which a page of a remote memory is able to be fetched; and
a sparse buffer manager,
wherein the sparse buffer manager is configured to:
identify, when an access to the page of the remote memory occurs, a type of the access;
allocate a sparse buffer when the access is a sparse write;
store data for the sparse write in the sparse buffer;
store an address for the sparse write as a key and the sparse buffer as a value in a buffer table; and
update an instruction pointer to point to a next instruction,
wherein when a write access to a page related to the sparse buffer occurs in the local memory, the sparse buffer manager is configured to:
delete a record related to the sparse buffer from the buffer table;
delete the sparse buffer;
allow write to the page related to the sparse buffer; and
indicate that the page related to the sparse buffer has been changed,
wherein the page related to the sparse buffer in the local memory is set to read-only.

### Claim 10 (depends on 9)

The memory access device of claim 9, wherein:
when a read access to the page of the remote memory occurs, the sparse buffer manager is configured to:
search the buffer table by using an address for the read access as a key; and
determine from the searched result whether a sparse buffer corresponding to the address for the read access exists.

### Claim 11 (depends on 10)

The memory access device of claim 10, wherein:
when it is determined that the sparse buffer corresponding to the address for the read access exists, the sparse buffer manager is configured to:
fetch the page from the remote memory into the local memory;
reflect the data stored in the sparse buffer to the fetched page; and
map the reflected page into an address space.

### Claim 12 (depends on 10)

The memory access device of claim 10, wherein:
when it is determined that the sparse buffer corresponding to the address for the read access does not exist, the sparse buffer manager is configured to:
fetch the page from the remote memory into the local memory; and
map the fetched page into an address space.

### Claim 13 (depends on 9)

The memory access device of claim 9, wherein
the storing of the data for the sparse write in the sparse buffer comprises
storing an address offset for the sparse write in the sparse buffer.

### Claim 14 (depends on 9)

The memory access device of claim 9, wherein
after the page is fetched into the local memory from the remote memory, when a memory shortage of the local memory occurs, the sparse buffer manager is configured to
delete the page from the local memory and maintain the sparse buffer.

### Claim 15 (depends on 14)

The memory access device of claim 14, wherein:
after the page is deleted from the local memory, when a read access to the page occurs, the sparse buffer manager is configured to:
fetch the page from the remote memory into the local memory;
reflect the data stored in the sparse buffer to the fetched page; and
map the reflected page into an address space.

### Claim 16 (depends on 9)

The memory access device of claim 9, wherein:
the sparse buffer writes back the indicated page to the remote memory.
