# US 2010/0169557 A1 · Using non-volatile storage to track status changes in objects

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

- Number: US 2010/0169557 A1
- Document ID: US20100169557A1
- Status: Published application
- Kind: A1
- Application number: 12/648,502
- Filed: 2009-12-29
- Published: 2010-07-01
- Earliest claimed: 2008-12-31
- Inventors: John Mark Morris
- Web page: https://patentgrep.com/patent/US20100169557A1

## CPC

- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 2212/7209: Validity control, e.g. using flags, time stamps or sequence numbers
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A non-volatile storage device is used to track status changes in one or more items, where it is less costly to set bits in the non-volatile storage device than to reset bits. For each of the items to be tracked, at least two bits of storage space are allocated in the non-volatile storage device. One of the bits is set when the item changes status, and another of the bits is set when the item changes status again.

## Claims

### Claim 1

A method of using a non-volatile storage device to track status changes in one or more items, where it is less costly to set bits in the non-volatile storage device than to reset bits, the method comprising, for each of the items to be tracked:
allocating at least two bits of storage space in the non-volatile storage device;
setting one of the bits when the item changes status; and
setting another of the bits when the item changes status again.

### Claim 2 (depends on 1)

The method of claim 1, further comprising resetting the bits allocated to the item after all of the bits allocated to the item have been set.

### Claim 3 (depends on 1)

The method of claim 1, where allocating at least two bits includes allocating exactly two bits for the item.

### Claim 4 (depends on 3)

The method of claim 3, further comprising resetting the bits allocated to the item when the item changes status a third time.

### Claim 5 (depends on 1)

The method of claim 1, where allocating at least two bits includes allocating a group of more than two bits for the item.

### Claim 6 (depends on 5)

The method of claim 5, further comprising setting another of the bits in the group each time the item changes status.

### Claim 7 (depends on 6)

The method of claim 6, where the item returns to a status that it previously held thus causing a certain combination of bits in the group to be set, and where the certain combination of bits differs from a combination of bits that were set when the item previously held that status.

### Claim 8 (depends on 5)

The method of claim 5, where allocating a group of more than two bits includes allocating an even number of bits for the item.

### Claim 9 (depends on 8)

The method of claim 8, where the item has two possible states, and where the method further comprises:
concluding that the item is in a first state when an even number of bits in the group have been set; and
concluding that the item is in a second state when an odd number of bits in the group have been set.

### Claim 10 (depends on 1)

The method of claim 1, where the storage device comprises a flash memory device, and where allocating at least two bits of storage space comprises allocating a full page of flash memory for two of more of the items.

### Claim 11 (depends on 10)

The method of claim 10, where allocating a full page of flash memory includes allocating the same number of bits to each of the two or more items.

### Claim 12 (depends on 10)

The method of claim 10, where allocating a full page of flash memory includes allocating more bits to one of the items than are allocated to another of the items.

### Claim 13 (depends on 10)

The method of claim 10, further comprising erasing the page of flash memory after all of the bits allocated to one of the items have been set.

### Claim 14 (depends on 1)

The method of claim 1, where tracking status changes in one or more items includes tracking allocation of one or more computing resources, and where, for each of the computing resources to be allocated:
allocating at least two bits of storage space in the non-volatile storage device includes allocating exactly two bits of storage space;
setting one of the bits includes setting a first one of the bits when the computing resource is allocated; and
setting another of the bits includes setting a second one of the bits when the computing resource is freed.

### Claim 15 (depends on 14)

The method of claim 14, further comprising resetting both of the bits when the computing resource is to be allocated again.

### Claim 16 (depends on 14)

The method of claim 14, where tracking allocation of one or more computer resources includes tracking allocation of a given number (N) of computing resources;
where allocating at least two bits of storage space in the non-volatile storage device includes allocating 2N bits, with exactly two bits allocated for each of the N computing resources;
where setting one of the bits includes, for each computing resource, setting a first one of the bits allocated to the computing resource when the computing resource is allocated; and
where setting another of the bits includes setting a second one of the bits allocated to the computing resource when the computing resource is freed.

### Claim 17 (depends on 16)

The method of claim 16, further comprising resetting all of the 2N bits when any one of the computing resources has been allocated and freed and is to be allocated again.

### Claim 18 (depends on 17)

The method of claim 17, further comprising, after resetting all of the 2N bits, for each of the computing resources that had been allocated but not yet freed, immediately setting the first one of the bits allocated to the computing resource.
