# US 10,872,035 B1 · Systems and methods for managing an artificially limited logical space of non-volatile memory

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

- Number: US 10,872,035 B1
- Document ID: US10872035B1
- Status: Granted
- Kind: B1
- Application number: 16/425,565
- Filed: 2019-05-29
- Published: 2020-12-03
- Granted: 2020-12-22
- Earliest claimed: 2019-05-29
- Assignees: Apple Inc.
- Applicants: Apple Inc.
- Inventors: Andrew W. Vogan
- Web page: https://patentgrep.com/patent/US10872035B1

## CPC

- G06F 3/061: {Improving I/O performance}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0631: {by allocating resources to storage systems}
- G06F 3/0638: {Organizing or formatting or addressing of data}
- G06F 3/0644: {Management of space entities, e.g. partitions, extents, pools}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0674: {Disk device}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 12/0646: {Configuration or reconfiguration}
- G06F 2212/2022: Flash memory
- G06F 2212/7202: Allocation control and policies
- G06F 2212/7204: Capacity control, e.g. partitioning, end-of-life degradation
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods for managing non-volatile memory devices are provided. Embodiments discussed herein define a native logical space to manage relatively high volume data write operations and define an artificially limited logical space to manage relatively low volume data write operations. The native logical space may include native logical bands that are mapped to a native number of physical blocks to enable high volume, high data transfer of data. The artificially limited logical space may include artificially limited logical bands that are mapped to an artificially limited number of available physical blocks. The artificially limited logical bands are better suited for low volume, low data transfer of data and do not unnecessarily tie up a native number of physical blocks.

## Claims

### Claim 1

A method implemented in a system comprising non-volatile memory comprising a plurality of dies, each of the plurality of dies comprising a plurality of planes, and each of the plurality of planes comprising a plurality of physical blocks, the method comprising:
classifying the plurality of dies as a physical space array of bands and die-in-planes (dips), wherein a physical block exists at each intersection of a band and a dip, and wherein a native number of dips exist in each band of the physical space array;
defining a native logical space that includes a plurality of native logical bands that logically overlay and represent the physical space array, wherein the native logical bands are used for managing relatively high volume data writes, and wherein each of the plurality of native logical bands are operative to write data to the native number of dips; and
defining an artificially limited logical space that includes a plurality of artificially limited logical bands that exist outside of the native logical space, wherein the artificially limited logical bands are used for managing relatively low volume data writes, and wherein each of the artificially limited logical bands is operative to write data to a limited number of dips that is less than the native number of dips.

### Claim 2 (depends on 1)

The method of claim 1, wherein each of the artificially limited logical bands comprises a plurality of logical blocks, wherein a first subset of the plurality of logical blocks is mapped to the limited number of dips, and wherein a second subset of the plurality of logical blocks is mapped as do not use blocks, wherein a combination of the first subset and the second subset is equal to the plurality of logical blocks.

### Claim 3 (depends on 2)

The method of claim 2, wherein the limited number of dips are selected from good physical blocks that are free and exist within the logical native space.

### Claim 4 (depends on 3)

The method of claim 3, wherein the physical blocks corresponding to the limited number of dips are not available for use by the plurality of native logical bands.

### Claim 5 (depends on 2)

The method of claim 2, wherein the limited number of dips are selected from good physical blocks based on an averaging metric that ensures that a native logical band in the native logical space is not adversely affected by having a good physical block redirected from that particular band.

### Claim 6 (depends on 2)

The method of claim 2, wherein the limited number of dips are selected from good physical blocks based on which die each dip of the limited number of dips is located.

### Claim 7 (depends on 1)

The method of claim 1, wherein the plurality of artificially limited logical bands is at least two orders of magnitude less than the plurality of native logical bands.

### Claim 8 (depends on 1)

The method of claim 1, wherein the limited number of dips is at least two orders of magnitudes less than the native number of dips.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
using the native logical space to write user data to the NVM; and
using the artificially limited logical space to write content log data to the NVM.

### Claim 10

A system, comprising:
non-volatile memory comprising a plurality of dies, each of the plurality of dies comprising at least two planes, and each of the at least two planes comprising a plurality of physical blocks; and
control circuitry configured to:
classify the plurality of dies as a physical space array of bands and die-in-planes (dips), wherein a physical block exists at each intersection of a band and a dip, and wherein a native number of dips exist in each band of the physical space array;
define a native logical space that includes a plurality of native logical bands that logically overlay and represent the physical space array, wherein the native logical bands are used for managing relatively high volume data writes, and wherein each the plurality of native logical bands are operative to write data to the native number of dips;
define an artificially limited logical space that includes a plurality of artificially limited logical bands that exist outside of the native logical space, wherein the artificially limited logical bands are used for managing relatively low volume data writes, and wherein each of the artificially limited logical bands is operative to write data to a limited number of dips that is less than the native number of dips;
use the native logical space to write the relatively high volume data to the non-volatile memory; and
use the artificially limited logical space to write relatively low volume data to the non-volatile memory.

### Claim 11 (depends on 10)

The system of claim 10, wherein each of the artificially limited logical bands comprises a plurality of logical blocks, wherein a first subset of the plurality of logical blocks is mapped to the limited number of dips, and wherein a second subset of the plurality of logical blocks is mapped as do not use blocks, wherein a combination of the first subset and the second subset is equal to the plurality of logical blocks.

### Claim 12 (depends on 10)

The system of claim 10, wherein the control circuitry is configured to:
access a block manager to identify suitable physical blocks for use in the artificially limited logical space; and
select the limited number of dips from the identified physical blocks.

### Claim 13 (depends on 12)

The system of claim 12, wherein the physical blocks corresponding to the limited number of dips are not available for use by the plurality of native logical bands.

### Claim 14 (depends on 10)

The system of claim 10, wherein the plurality of artificially limited logical bands is at least two orders of magnitude less than the plurality of native logical bands.

### Claim 15 (depends on 10)

The system of claim 10, wherein the limited number of dips is at least one order of magnitude less than the native number of dips.

### Claim 16 (depends on 10)

The system of claim 10, wherein the relatively high volume data is associated with user data, and wherein the relatively low volume data is associated with content log data.

### Claim 17 (depends on 16)

The system of claim 16, wherein the content log data is a time ordered chronological log of all transactional information pertaining to the non-volatile memory.

### Claim 18

A method implemented in a system comprising non-volatile memory, the method comprising:
defining a native logical space comprising a first plurality of logical bands each comprising a first number of logical blocks, wherein the logical blocks in each of the first plurality of logical blocks are configured to be mapped to a second number of physical blocks;
defining an artificially limited logical space comprising a second plurality of logical bands each comprising the first number of logical blocks, wherein a first portion of the logical blocks in each of the second plurality of logical bands are mapped to a third number of physical blocks, wherein a second portion of the logical blocks in each of the second plurality of logical bands are marked as do not use blocks, and wherein the third number of physical blocks is less than the second number of physical blocks;
using the native logical space to write relatively high volume data to the non-volatile memory; and
using the artificially limited logical space to write relatively low volume data to the non-volatile memory.

### Claim 19 (depends on 18)

The method of claim 18, wherein the physical blocks corresponding to the third number of physical blocks for each of the second plurality of logical bands are not used by the native logical space.

### Claim 20 (depends on 19)

The method of claim 19, wherein the third number is at least one order of magnitude less than the second number.
