# US 8,572,321 B2 · Apparatus and method for segmented cache utilization

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

- Number: US 8,572,321 B2
- Document ID: US8572321B2
- Status: Granted
- Kind: B2
- Application number: 13/533,372
- Filed: 2012-06-26
- Published: 2013-01-03
- Granted: 2013-10-29
- Earliest claimed: 2008-09-30
- Assignees: Intel Corporation
- Applicants: Dale Jeunemann; R. Scott Tetrick; Oscar Pinto
- Inventors: Dale Jeunemann; R. Scott Tetrick; Oscar Pinto
- Web page: https://patentgrep.com/patent/US8572321B2

## CPC

- G06F 12/0868: Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
- G06F 12/0871: Allocation or management of cache space
- G06F 2212/222: Non-volatile memory
- G06F 2212/282: Partitioned cache
- G06F 2212/461: Sector or disk block
- G06F 2212/463: File
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In some embodiments, a non-volatile cache memory may include a segmented non-volatile cache memory configured to be located between a system memory and a mass storage device of an electronic system and a controller coupled to the segmented non-volatile cache memory, wherein the controller is configured to control utilization of the segmented non-volatile cache memory. The segmented non-volatile cache memory may include a file cache segment, the file cache segment to store complete files in accordance with a file cache policy, and a block cache segment, the block cache segment to store one or more blocks of one or more files in accordance with a block cache policy, wherein the block cache policy is different from the file cache policy.

## Claims

### Claim 1

A processor-based system, comprising:
a processor;
a segmented cache memory which includes a file cache segment configured to store complete files in accordance with a file cache policy, and a block cache segment configured to store one or more blocks of one or more files in accordance with a block cache policy; and
non-transitory computer readable medium having instructions which, if executed by the processor, cause the processor to utilize the file cache segment in accordance with information related to the block cache segment and to utilize the block cache segment in accordance with information related to the file cache segment; and
the instructions, if executed, further cause a processor to determine a percent accessed statistic for a file.

### Claim 2 (depends on 1)

The system of claim 1, wherein the instructions, if executed, further cause a processor to determine how much of a file has been accessed.

### Claim 3 (depends on 1)

The system of claim 1, wherein the instructions, if executed, further cause a processor to determine whether to store information related to an access request for a file in the block cache segment or the file cache segment based at least in part on a percent accessed statistic for the file.

### Claim 4 (depends on 1)

The system of claim 1, wherein the instructions, if executed, further cause a processor to migrate cache entries associated with a file from the block cache segment to the file cache segment when a percent accessed statistic for the file exceeds a selected threshold.

### Claim 5 (depends on 4)

The system of claim 4, wherein the selected threshold is to be based at least in part on a relative utilization of the block cache segment and the file cache segment.

### Claim 6

A non-volatile cache memory, comprising:
a segmented non-volatile cache memory that includes a file cache segment configured to store complete files in accordance with a file cache policy, and a block cache segment configured to store one or more blocks of one or more files in accordance with a block cache policy; and
a controller coupled to the segmented non-volatile cache memory and configured to utilize the file cache segment in accordance with information related to the block cache segment and to utilize the block cache segment in accordance with information related to the file cache segment; and
the controller is configured to determine a percent accessed statistic for a file.

### Claim 7 (depends on 6)

The cache memory of claim 6, wherein the controller is configured to determine how much of a file has been accessed.

### Claim 8 (depends on 6)

The cache memory of claim 6, wherein the controller is configured to determine whether to store information related to an access request for a file in the block cache segment or the file cache segment based at least in part on a percent accessed statistic for the file.

### Claim 9 (depends on 6)

The cache memory of claim 6, wherein the controller is configured to migrate block cache entries associated with a file from the block cache segment to the file cache segment when a percent accessed statistic for the file exceeds a selected threshold.

### Claim 10 (depends on 9)

The cache memory of claim 9, wherein the selected threshold is to be based at least in part on a relative utilization of the block cache segment and the file cache segment.

### Claim 11

A method comprising:
storing in a segmented non-volatile cache memory that includes a file cache segment complete files in accordance with a file cache policy, and storing to a block cache segment one or more blocks of one or more files in accordance with a block cache policy; and
utilizing the segmented non-volatile cache memory the file cache segment in accordance with information related to the block cache segment and utilizing the block cache segment in accordance with information related to the file cache segment; and
determining a percent accessed statistic for a file.

### Claim 12 (depends on 11)

The method of claim 11, further comprising determining how much of a file has been accessed.

### Claim 13 (depends on 11)

The method of claim 11, further comprising determining whether to store information related to an access request for a file in the block cache segment or the file cache segment based at least in part on a percent accessed statistic for the file.

### Claim 14 (depends on 11)

The method of claim 11, further comprising migrating block cache entries associated with a file from the block cache segment to the file cache segment when a percent accessed statistic for the file accessed exceeds a selected threshold.

### Claim 15 (depends on 14)

The method of claim 14, further comprising determining the selected threshold based at least in part on a relative utilization of the block cache segment and the file cache segment.
