# US 2014/0195768 A1 · Expanding memory size

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

- Number: US 2014/0195768 A1
- Document ID: US20140195768A1
- Status: Published application
- Kind: A1
- Application number: 13/736,564
- Filed: 2013-01-08
- Published: 2014-07-10
- Earliest claimed: 2013-01-08
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: David Alan Hepkin; Satya Prakash Sharma; Saurabh Nath Sharma; Randall Craig Swanberg
- Web page: https://patentgrep.com/patent/US20140195768A1

## CPC

- G06F 9/5016: {the resource being the memory}
- G06F 2209/5011: Pool
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system, and computer usable program product for expanding memory size are provided in the illustrative embodiments. A desired size of an expanded memory and a first information about a workload in the data processing system are received. A size of a compressed memory pool to use with the memory to make the desired size of the expanded memory available is computed. A representation of the memory is configured, the representation of the memory appearing to be of a size larger than the size of the memory, the representation of the memory being the expanded memory, and the size of the representation being the size of the expanded memory. The expanded memory is made available such that the memory in the data processing system is usable by addressing the expanded memory.

## Claims

### Claim 1

A computer usable program product comprising a computer usable storage device including computer usable code for expanding memory size, the computer usable code comprising:
computer usable code for receiving in a data processing system having a memory, a desired size of an expanded memory;
computer usable code for receiving a first information about a workload in the data processing system;
computer usable code for computing a size of a compressed memory pool to use with the memory to make the desired size of the expanded memory available;
computer usable code for configuring a representation of the memory, the representation of the memory appearing to be of a size larger than the size of the memory, the representation of the memory being the expanded memory, and the size of the representation being the size of the expanded memory; and
computer usable code for making available the expanded memory such that the memory in the data processing system is usable by addressing the expanded memory.

### Claim 2 (depends on 1)

The computer usable program product of claim 1, further comprising:
computer usable code for receiving an input value corresponding to a performance parameter of the data processing system, wherein the configuring the representation includes determining the size of the representation based on the desired size of the expanded memory, a compression ratio of the workload, and the input value.

### Claim 3 (depends on 2)

The computer usable program product of claim 2, wherein the performance parameter is a minimum size of an uncompressed memory pool to avoid thrashing.

### Claim 4 (depends on 1)

The computer usable program product of claim 1, wherein the size of the expanded memory excludes a size of a memory space one of (i) used for storing a pinned page, (ii) used for storing a protected page, and (iii) that is reserved for use by an application.

### Claim 5 (depends on 1)

The computer usable program product of claim 1, further comprising:
computer usable code for determining whether the desired size of the expanded memory can be made available; and
computer usable code for, responsive to the determining being false, making the expanded memory available such that the size of the expanded memory is different from the desired size of the expanded memory.

### Claim 6 (depends on 1)

The computer usable program product of claim 1, further comprising:
computer usable code for determining whether the desired size of the expanded memory can be made available; and
computer usable code for, responsive to the determining being false, making the expanded memory available together with information about a portion of the desired size that cannot be made available.

### Claim 7 (depends on 1)

The computer usable program product of claim 1, further comprising:
computer usable code for receiving a second information about one of (i) a change in the workload and (ii) a change in the desired size of the expanded memory;
computer usable code for recomputing the size of the compressed memory pool based on the second information; and
computer usable code for adjusting the size of the compressed memory pool while the data processing system is operational.

### Claim 8 (depends on 7)

The computer usable program product of claim 7, wherein the adjusting leaves the size of the expanded memory unchanged.

### Claim 9 (depends on 1)

The computer usable program product of claim 1, wherein addressing the expanded memory is accomplished in the manner of addressing the memory.

### Claim 10 (depends on 1)

The computer usable program product of claim 1, wherein the computer usable code is stored in a computer readable storage medium in a data processing system, and wherein the computer usable code is transferred over a network from a remote data processing system.

### Claim 11 (depends on 1)

The computer usable program product of claim 1, wherein the computer usable code is stored in a computer readable storage medium in a server data processing system, and wherein the computer usable code is downloaded over a network to a remote data processing system for use in a computer readable storage medium associated with the remote data processing system.

### Claim 12

A data processing system for expanding memory size, comprising:
a storage device including a storage medium, wherein the storage device stores computer usable program code; and
a processor, wherein the processor executes the computer usable program code, and wherein the computer usable program code comprises:
computer usable code for receiving in a data processing system having a memory, a desired size of an expanded memory;
computer usable code for receiving a first information about a workload in the data processing system;
computer usable code for computing a size of a compressed memory pool to use with the memory to make the desired size of the expanded memory available;
computer usable code for configuring a representation of the memory, the representation of the memory appearing to be of a size larger than the size of the memory, the representation of the memory being the expanded memory, and the size of the representation being the size of the expanded memory; and
computer usable code for making available the expanded memory such that the memory in the data processing system is usable by addressing the expanded memory.

### Claim 13 (depends on 12)

The data processing system of claim 12, further comprising:
computer usable code for receiving an input value corresponding to a performance parameter of the data processing system, wherein the configuring the representation includes determining the size of the representation based on the desired size of the expanded memory, a compression ratio of the workload, and the input value.

### Claim 14 (depends on 13)

The data processing system of claim 13, wherein the performance parameter is a minimum size of an uncompressed memory pool to avoid thrashing.

### Claim 15 (depends on 12)

The data processing system of claim 12, wherein the size of the expanded memory excludes a size of a memory space one of (i) used for storing a pinned page, (ii) used for storing a protected page, and (iii) that is reserved for use by an application.

### Claim 16 (depends on 12)

The data processing system of claim 12, further comprising:
computer usable code for determining whether the desired size of the expanded memory can be made available; and
computer usable code for, responsive to the determining being false, making the expanded memory available such that the size of the expanded memory is different from the desired size of the expanded memory.

### Claim 17 (depends on 12)

The data processing system of claim 12, further comprising:
computer usable code for determining whether the desired size of the expanded memory can be made available; and
computer usable code for, responsive to the determining being false, making the expanded memory available together with information about a portion of the desired size that cannot be made available.

### Claim 18 (depends on 12)

The data processing system of claim 12, further comprising:
computer usable code for receiving a second information about one of (i) a change in the workload and (ii) a change in the desired size of the expanded memory;
computer usable code for recomputing the size of the compressed memory pool based on the second information; and
computer usable code for adjusting the size of the compressed memory pool while the data processing system is operational.

### Claim 19 (depends on 18)

The data processing system of claim 18, wherein the adjusting leaves the size of the expanded memory unchanged.

### Claim 20 (depends on 12)

The data processing system of claim 12, wherein addressing the expanded memory is accomplished in the manner of addressing the memory.
