# US 12,001,885 B2 · Controller and memory system including the controller operating memory allocation

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

- Number: US 12,001,885 B2
- Document ID: US12001885B2
- Status: Granted
- Kind: B2
- Application number: 17/328,838
- Filed: 2021-05-24
- Published: 2021-09-09
- Granted: 2024-06-04
- Earliest claimed: 2019-03-05
- Assignees: SK hynix Inc.
- Applicants: SK hynix Inc.
- Inventors: Duk Joon Jeon; Changhwan Youn
- Web page: https://patentgrep.com/patent/US12001885B2

## CPC

- G06F 9/5016: {the resource being the memory}
- G06F 9/5022: {Mechanisms to release resources}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 12/063: {for I/O modules, e.g. memory mapped I/O (I/O protocol G06F13/42)}
- G06F 2212/7201: Logical to physical mapping or translation of blocks or pages
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The present technology includes a controller including an allocation manager configured to determine whether a host identification (ID) output from a host is an allocable ID, an address manager configured to perform an allocation operation using the host ID to select logical blocks corresponding to the host ID when the host ID is received from the allocation manager, and output an address of the logical blocks as an allocation address, and a map table component configured to store a map table in which logical block addresses and physical block addresses are respectively mapped, select a logical block address corresponding to the allocation address, and output the physical block address mapped to the selected logical block address, a memory system including the controller, and a method of operating the memory system.

## Claims

### Claim 1

A controller comprising:
a processor configured to receive an allocation request and a host identification host ID) output from a host;
an address allocator configured to allocate a data storage area corresponding to at least a logical block address of the host ID; and
a memory interface configured to access the data storage area in response to a physical block address corresponding to the logical block address,
wherein the host ID indicates a requested allocate capacity of the data storage area, and
wherein the address allocator calculates the logical block address by performing an allocation operation using the host ID, and calculates the host ID by performing a de-allocation operation using the logical block address.

### Claim 2 (depends on 1)

The controller according to claim 1,
wherein the requested allocate capacity of the data storage area is a number of logical blocks each of which the logical block address is allocated.

### Claim 3 (depends on 1)

The controller according to claim 1,
wherein logical blocks are divided according to a host ID policy.

### Claim 4 (depends on 3)

The controller according to claim 3,
wherein one or a plurality of host IDs are output from the host according to the host ID policy.

### Claim 5 (depends on 1)

The controller according to claim 1,
wherein the address allocator determines whether the host ID is an allocable ID according to whether the host ID conforms to a prescribed host ID policy or whether a capacity of a memory requested to be allocated is an allocable capacity.

### Claim 6 (depends on 4)

The controller according to claim 4,
wherein the host ID policy includes information on a capacity of the logical blocks, a number of trees, and a number of the host ID.

### Claim 7 (depends on 6)

The controller according to claim 6,
wherein the information is shared with the host and a memory system which includes the data storage area.

### Claim 8 (depends on 5)

The controller according to claim 5,
wherein the address allocator outputs an allocation impossible signal to the host when the host ID is determined as an unallocable ID, performs the allocation operation when the host ID is determined as the allocable ID, and outputs an allocation completion signal to the host when the allocation operation is completed.

### Claim 9 (depends on 8)

The controller according to claim 8,
wherein the address allocator performs the allocation operation based on a structure in which a plurality of identifications are connected in a tree among the trees.

### Claim 10 (depends on 9)

The controller according to claim 9,
wherein the tree includes a configuration in which a plurality of lower identifications correspond to a higher ID among the identifications.

### Claim 11 (depends on 10)

The controller according to claim 10,
wherein the host ID corresponding to a highest ID among the identifications corresponds to all logical blocks included in the tree, and the host ID corresponding to a lowest ID among the identifications corresponds to one of the logical blocks included in the tree.

### Claim 12 (depends on 1)

The controller according to claim 1,
wherein the physical block address mapped to the logical block address is updated according to a state of the data storage area.

### Claim 13

A controller comprising:
an address manager configured to select a logical block address corresponding to a host identification (host ID);
a map table component configured to store a map table in which the logical block address and physical block addresses are mapped, wherein the physical block addresses correspond to a size of a memory, and the size of the memory is dynamically changed according to a host request; and
an allocation manager determining whether or not the host ID is available and storing log information on a frequently used host ID more than a reference number.

### Claim 14 (depends on 13)

The controller according to claim 13, wherein the allocation manager comprises:
a log information register configured to store the log information; and
a quick allocation manager configured to check whether the host ID is stored in the log information register, output the log information corresponding to the host ID when the host ID is present in the log information register, and transmit the host ID to the address manager when the host ID is not present in the log information register.

### Claim 15 (depends on 13)

The controller according to claim 13,
wherein the address manager calculates the logical block address by performing an allocation operation using the host ID, or calculates the host ID by performing a de-allocation operation using the logical block address.

### Claim 16 (depends on 13)

The controller according to claim 13,
wherein when the host requests the host ID, the address manager searches the logical block address corresponding to the host ID in the map table component.

### Claim 17

A system comprising:
a host configured to select a host identification (host ID) according to an allocation capacity, and output the host ID with an allocation request;
a storage device including a plurality of memory blocks; and
a controller configured to open free memory blocks, among the memory blocks, corresponding to the host ID when a capacity corresponding to the host ID is equal or less than allocable capacities of the memory blocks,
wherein the controller calculates a logical block address by performing an allocation operation using the host ID, and calculates the host ID by performing a de-allocation operation using the logical block address.

### Claim 18 (depends on 17)

The system according to claim 17,
wherein the host ID is set for each capacity of logical blocks divided according to a host ID policy which includes information on each capacity of the logical blocks, a number of trees, and a number of the host ID, and the information is shared with the host and the controller.
