# US 2014/0156944 A1 · Memory management apparatus, method, and system

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

- Number: US 2014/0156944 A1
- Document ID: US20140156944A1
- Status: Published application
- Kind: A1
- Application number: 14/047,579
- Filed: 2013-10-07
- Published: 2014-06-05
- Earliest claimed: 2012-11-30
- Assignees: Research & Business Foundation Sungkyunkwan Univesity
- Applicants: Research & Business Foundation Sungkyunkwan Univesity
- Inventors: Joonwon LEE; Jinkyu JEONG; Hwanju KIM; Jaeho HWANG
- Web page: https://patentgrep.com/patent/US20140156944A1

## CPC

- G06F 12/0897: with two or more cache hierarchy levels (with multilevel cache hierarchies G06F12/0811)
- G06F 12/0871: Allocation or management of cache space
- G06F 2212/6012: of operating mode, e.g. cache mode or local memory mode
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The present invention discloses a memory management apparatus, method, and system. An OS-based memory management apparatus associated with main memory includes a memory allocation controller configured to control a first memory region within the main memory such that the first memory region is used as a buffer cache depending on whether an input/output device is active or not in order to use the first memory region, allowing memory reservation for the input/output device, in the OS. The memory allocation controller controls the first memory region such that the first memory region is used as an eviction-based cache.

## Claims

### Claim 1

An OS-based memory management apparatus associated with main memory, comprising:
a memory allocation controller configured to control a first memory region within the main memory such that the first memory region is used as a buffer cache depending on whether an input/output device is active or not in order to use the first memory region, allowing memory reservation for the input/output device, in the OS,
wherein the memory allocation controller controls the first memory region such that the first memory region is used as an eviction-based cache.

### Claim 2 (depends on 1)

The memory management apparatus of claim 1, further comprising a first buffer cache within the OS, wherein the first memory region is used as the eviction-based cache for caching pages evicted from the first buffer cache.

### Claim 3 (depends on 1)

The memory management apparatus of claim 1, wherein the memory allocation controller controls an original copy of data cached in the first memory region so that the original copy is stored in an external storage space.

### Claim 4 (depends on 1)

The memory management apparatus of claim 1, wherein the memory allocation controller controls the first memory region such that all contents cached in the first memory region are discarded and the first memory region is immediately used by the input/output device if the first memory region is desired to be used by the input/output device.

### Claim 5 (depends on 2)

The memory management apparatus of claim 2, wherein:
the first memory region is managed according to a Least Recently Used (LRU) method,
a page evicted from the first buffer cache is placed in a Most Recently Used (MRU) location of the first memory region, and
when the first buffer cache accesses the evicted page, the evicted page is migrated to the first buffer cache.

### Claim 6 (depends on 1)

The memory management apparatus of claim 1, wherein:
the first memory region comprises at least one predefined region, and
each input/output device is allocated to the predefined region, and the predefined region is calculated based on a continuous region required by a system when the system boots up.

### Claim 7 (depends on 6)

The memory management apparatus of claim 6, wherein:
if the input/output device requests to allocate the predefined region, all continuous memory regions are allocated to the input/output device although the input/output device requests to allocate all the continuous memory regions simultaneously, and
a continuous memory region not belonging to the predefined region is not allocated to the input/output device.

### Claim 8 (depends on 6)

The memory management apparatus of claim 6, wherein the memory allocation controller allocates a memory region within the first memory region to the input/output device based on an allocation cost for the predefined region of the input/output device in order to improve cache efficiency of the first memory region if a continuous memory request is received from the input/output device.

### Claim 9 (depends on 8)

The memory management apparatus of claim 8, wherein the allocation cost of the predefined region is calculated using an LRU location if a cached page is to be discarded.

### Claim 10 (depends on 8)

The memory management apparatus of claim 8, wherein the memory allocation controller allocates a region having a minimum allocation cost, from the predefined region, to the input/output device.

### Claim 11

A method of managing, by an OS-based memory management apparatus associated with main memory, memory, the method comprising:
a memory allocation control step of controlling a first memory region within the main memory such that the first memory region is used as a buffer cache depending on whether an input/output device is active or not in order to use the first memory region, allowing memory reservation for the input/output device, in the OS,
wherein the first memory region is used as an eviction-based cache.

### Claim 12 (depends on 11)

The memory management method of claim 11, wherein the first memory region is used as the eviction-based cache for caching pages evicted from the first buffer cache within the OS.

### Claim 13 (depends on 11)

The memory management method of claim 11, wherein the memory allocation control step comprises controlling the first memory region such that all contents cached in the first memory region are discarded and the first memory region is immediately used by the input/output device if the first memory region is desired to be used by the input/output device.

### Claim 14 (depends on 12)

The memory management method of claim 12, wherein:
the first memory region is managed according to a Least Recently Used (LRU) method,
a page evicted from the first buffer cache is placed in a Most Recently Used (MRU) location of the first memory region, and
when the first buffer cache accesses the evicted page, the evicted page is migrated to the first buffer cache.

### Claim 15 (depends on 11)

The memory management method of claim 11, wherein:
the first memory region comprises at least one predefined region, and
each input/output device is allocated to the predefined region, and the predefined region is calculated based on a continuous region required by a system when the system boots up.

### Claim 16 (depends on 15)

The memory management method of claim 15, wherein the memory allocation control step comprises allocating a memory region within the first memory region to the input/output device based on an allocation cost for the predefined region of the input/output device in order to improve cache efficiency of the first memory region if a continuous memory request is received from the input/output device.

### Claim 17 (depends on 16)

The memory management method of claim 16, wherein the allocation cost of the predefined region is calculated using an LRU location if a cached page is to be discarded.

### Claim 18 (depends on 16)

The memory management method of claim 16, wherein the memory allocation control step comprises allocating a region having a minimum allocation cost, from the predefined region, to the input/output device.

### Claim 19

A memory system, comprising:
main memory configured to comprise a first memory region that allows memory reservation for an input/output device; and
an operating system associated with the main memory,
wherein an operating system uses the first memory region as a buffer cache depending on whether the input/output device is active or not in order to use the first memory region in the OS, and the first memory region is used as an eviction-based cache.
