# US 2021/0279068 A1 · Memory system executing loading of software at startup and control method

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

- Number: US 2021/0279068 A1
- Document ID: US20210279068A1
- Status: Published application
- Kind: A1
- Application number: 17/014,807
- Filed: 2020-09-08
- Published: 2021-09-09
- Earliest claimed: 2020-03-06
- Assignees: Kioxia Corporation
- Applicants: Kioxia Corporation
- Inventors: Yoshihiro TAKANASHI
- Web page: https://patentgrep.com/patent/US20210279068A1

## CPC

- G06F 9/4406: {Loading of operating system}
- G06F 11/1048: {using arrangements adapted for a specific error detection or correction feature}
- G06F 9/44505: {Configuring for program initiating, e.g. using registry, configuration files}
- G06F 11/1068: {in sector programmable memories, e.g. flash disk (G06F11/1072 takes precedence)}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 12/0253: {Garbage collection, i.e. reclamation of unreferenced memory}
- G06F 12/10: Address translation
- G06F 2212/1044: Space efficiency improvement
- G06F 2212/657: Virtual address space management
- G06F 2212/7201: Logical to physical mapping or translation of blocks or pages
- G06F 2212/7205: Cleaning, compaction, garbage collection, erase control
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

According to one embodiment, a memory system includes a nonvolatile memory, and a controller. The controller controls the nonvolatile memory. The nonvolatile memory includes a first area where specific software is capable of being stored, and a second area where the specific software is stored. The second area has higher reliability than the first area. The controller causes the specific software to be stored in the first area when receiving a command specifying the specific software, and executes loading of the specific software stored in the first area at startup of the controller.

## Claims

### Claim 1

A memory system comprising:
a nonvolatile memory; and
a controller configured to control the nonvolatile memory, wherein
the nonvolatile memory comprises
a first area where specific software is capable of being stored, and
a second area where the specific software is stored, the second area having higher reliability than the first area, and
the controller
causes the specific software to be stored in the first area when receiving a command specifying the specific software, and
executes loading of the specific software stored in the first area at startup of the controller.

### Claim 2 (depends on 1)

The memory system of claim 1, wherein
the controller translates a logical address into a physical address and accesses the second area based on the physical address.

### Claim 3 (depends on 1)

The memory system of claim 1, wherein
the controller does not execute wear leveling for the first area but is capable of executing wear leveling for the second area.

### Claim 4 (depends on 1)

The memory system of claim 1, wherein
the controller does not execute garbage collection for the first area but is capable of executing garbage collection for the second area.

### Claim 5 (depends on 1)

The memory system of claim 1, wherein
the controller causes a plurality of software as candidates which are capable of being loaded at startup of the controller to be stored in the second area, selects the specific software from the plurality of software, and causes the selected specific software to be stored in the first area when the command is received.

### Claim 6 (depends on 5)

The memory system of claim 5, wherein
the controller conforms to non-volatile memory express (NVMe) standard,
each of the software is capable of being stored in each of slots in the second area, and
the specific software is capable of being stored as an active slot in the first area.

### Claim 7 (depends on 1)

The memory system of claim 1, wherein
number of correctable error bits of the specific firmware read from the second area is larger than number of correctable error bits of the specific firmware read from the first area.

### Claim 8 (depends on 7)

The memory system of claim 7, wherein
the controller executes error correction for the specific software read from the second area.

### Claim 9 (depends on 1)

The memory system of claim 1, wherein
the controller executes an initial program loader at startup of the controller, and
the initial program loader reads the specific software from the first area when the initial program loader is executed by the controller.

### Claim 10 (depends on 9)

The memory system of claim 9, wherein
the first area is located at a predetermined location of the nonvolatile memory, and
the initial program loader reads the specific software from the predetermined location.

### Claim 11 (depends on 1)

The memory system of claim 1, wherein
the controller acquires the specific software when receiving a download command, and causes the specific software to be stored in the second area when receiving a commit command.

### Claim 12 (depends on 1)

The memory system of claim 1, wherein
the controller causes the specific software to be stored in the first area in a multiplex state and, when an error occurs in the specific software read from the first area, reads other specific firmware stored in the multiplex state in the first area.

### Claim 13 (depends on 12)

The memory system of claim 12, wherein
number of multiplexing of the specific software in the second area is smaller than number of multiplexing of the specific software in the first area.

### Claim 14 (depends on 1)

The memory system of claim 1, wherein
the nonvolatile memory further includes a third area where user data are capable of being stored, and
the third area has higher reliability than the first area.

### Claim 15

A method of controlling a memory system comprising a nonvolatile memory including a first area and a second area having higher reliability than the first area, the method comprising:
when a command specifying specific software is received, causing the specific software stored in the second area to be stored in the first area, and
executing loading of the specific software stored in the first area at startup of the memory system.

### Claim 16 (depends on 15)

The method of claim 15, further comprising:
translating a logical address into a physical address and accessing the second area based on the physical address.

### Claim 17 (depends on 15)

The method of claim 15, further comprising:
executing wear leveling for the second area.

### Claim 18 (depends on 15)

The method of claim 15, further comprising:
executing garbage collection for the second area.

### Claim 19 (depends on 15)

The method of claim 15, further comprising:
causing a plurality of software as candidates which are capable of being loaded at startup of the memory system to be stored in the second area, selecting the specific software from the plurality of software, and causing the selected specific software to be stored in the first area when the command is received.

### Claim 20 (depends on 15)

The method of claim 15, further comprising:
executing an initial program loader at startup of the memory system, and loading the specific software from the first area by the initial program loader executed by the controller.
