# US 2013/0159623 A1 · Processor with garbage-collection based classification of memory

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

- Number: US 2013/0159623 A1
- Document ID: US20130159623A1
- Status: Published application
- Kind: A1
- Application number: 13/325,727
- Filed: 2011-12-14
- Published: 2013-06-20
- Earliest claimed: 2011-12-14
- Assignees: Advanced Micro Devices, Inc.
- Inventors: Gabriel H. Loh; Mauricio Breternitz
- Web page: https://patentgrep.com/patent/US20130159623A1

## CPC

- G06F 12/0253: {Garbage collection, i.e. reclamation of unreferenced memory}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0647: {Migration mechanisms}
- G06F 3/0685: {Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays}
- G06F 12/023: {Free address space management}
- G06F 12/06: Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication (G06F12/08 takes precedence)
- G06F 2206/1012: Load balancing
- G06F 2212/1016: Performance improvement
- G06F 2212/1041: Resource optimization
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Improved memory management in a processor is provided using garbage collection utilities. The processor includes higher performance memory units and lower performance memory units and a memory management unit. The memory management unit includes a garbage collection utility programmed to identify high use memory blocks and low use memory blocks within the higher and lower performance memory units. The memory management unit is also configured to move the high use memory blocks to higher performance memory and move the low use memory blocks to lower performance memory. The method comprises determining performance characteristics of available memory to identify higher performance memory and lower performance memory. Next memory block use metrics are analyzed to identify high use memory blocks and low use memory blocks. Finally, high use memory blocks are moved to the higher performance memory while the low use memory blocks are moved to the lower performance memory.

## Claims

### Claim 1

A method, comprising:
determining one or more performance characteristics of available memory to identify higher performance memory and lower performance memory;
analyzing memory block use metrics to identify higher use memory blocks and lower use memory blocks; and
moving one or more of the higher use memory blocks to the higher performance memory.

### Claim 2 (depends on 1)

The method of claim 1, further comprising compacting memory blocks from one or more memory pages while moving the higher use memory blocks to the higher performance memory.

### Claim 3 (depends on 1)

The method of claim 1, wherein determining further comprises identifying the higher performance memory and the lower performance memory using one or more of the following group of memory performance characteristics: latency; bandwidth; power usage; energy usage; quality of service; fairness or endurance.

### Claim 4 (depends on 1)

The method of claim 1, wherein analyzing further comprises analyzing metrics collected by a memory garbage collection utility.

### Claim 5 (depends on 1)

The method of claim 1, wherein analyzing further comprises identifying the higher use memory blocks and the lower use memory blocks using one or more of the following group of memory block use metrics: memory read count; memory read frequency; duration between memory access; data corruption characteristics; memory blocks storing invalid data; memory erase count and memory programming count.

### Claim 6 (depends on 1)

The method of claim 1, further comprising moving one or more of the lower use memory blocks to the lower performance memory.

### Claim 7 (depends on 6)

The method of claim 6, wherein the method is repeated to continually move the higher use memory blocks to the higher performance memory and continually move the lower use memory blocks to the lower performance memory.

### Claim 8 (depends on 1)

The method of claim 1, further comprising reclaiming some of the higher performance memory and the lower performance memory by executing a memory garbage collection utility.

### Claim 9

A method, comprising:
analyzing information tracked by a memory garbage collection utility to identify higher use memory blocks and lower use memory blocks; and
moving one or more of the higher use memory blocks to memory having higher performance characteristics.

### Claim 10 (depends on 9)

The method of claim 9, further comprising compacting memory blocks from one or more memory pages while moving the higher use memory blocks to the higher performance memory.

### Claim 11 (depends on 9)

The method of claim 9, wherein moving the higher use memory blocks further comprises moving the higher use memory blocks to memory having higher performance of one or more of the following group of memory performance characteristics: latency; bandwidth; power usage; energy usage; quality of service; fairness or endurance.

### Claim 12 (depends on 9)

The method of claim 9, further comprising moving one or more of the lower use memory blocks to the lower performance memory.

### Claim 13 (depends on 12)

The method of claim 12, wherein moving the lower use memory blocks further comprises moving the lower use memory blocks to memory having lower performance of one or more of the following group of memory performance characteristics: latency; bandwidth; power usage; energy usage; quality of service; fairness or endurance.

### Claim 14 (depends on 9)

The method of claim 9, wherein analyzing further comprises identifying the higher use memory blocks and the lower use memory blocks using one or more of the following group of garbage collection utility information: memory read count; memory read frequency; duration between memory access; data corruption characteristics; memory blocks storing invalid data; memory erase count and memory programming count.

### Claim 15 (depends on 9)

The method of claim 9, wherein the method is repeated to continually move the higher use memory blocks to the higher performance memory and continually move the lower use memory blocks to the lower performance memory.

### Claim 16 (depends on 9)

The method of claim 9, further comprising reclaiming some of the higher performance memory and the lower performance memory by executing the memory garbage collection utility.

### Claim 17

A processor, comprising:
one or more higher performance memory units;
one or more lower performance memory units; and
a memory management unit coupled to the one or more higher performance memory units and the one or more lower performance memory units, the memory management unit comprising:
a garbage collection utility programmed to identify higher use memory blocks and lower use memory blocks within the one or more higher performance memory units and the one or more lower performance memory units; and
a memory move unit responsive to the garbage collection utility to move the higher use memory blocks to higher performance memory.

### Claim 18 (depends on 17)

The processor of claim 17, wherein the memory move unit is further configured to move the lower use memory blocks to lower performance memory.

### Claim 19 (depends on 17)

The processor of claim 17, wherein the memory management unit is configured to compact memory blocks from one or more memory pages while moving the higher use memory blocks to the higher performance memory.

### Claim 20 (depends on 17)

A device comprising the processor of claim 17, the device comprising at least one of a group consisting of: a computer; a digital book; a printer; a scanner; a television; or a set-top box.
