# US 2020/0401508 A1 · Method and computer program product and apparatus for multi-namespace data access

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

- Number: US 2020/0401508 A1
- Document ID: US20200401508A1
- Status: Published application
- Kind: A1
- Application number: 16/732,542
- Filed: 2020-01-02
- Published: 2020-12-24
- Earliest claimed: 2019-06-21
- Assignees: Silicon Motion, Inc.
- Applicants: Silicon Motion, Inc.
- Inventors: Che-Wei HSU
- Web page: https://patentgrep.com/patent/US20200401508A1

## CPC

- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 3/061: {Improving I/O performance}
- G06F 3/064: {Management of blocks}
- G06F 3/0656: {Data buffering arrangements}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 7/5443: {Sum of products (for applications thereof, see the relevant places, e.g. G06F17/10, H03H17/00)}
- G06F 11/1004: {to protect a block of data words, e.g. CRC or checksum (G06F11/1076 takes precedence; security arrangements for protecting computers or computer systems against unauthorized activity G06F21/00)}
- G06F 12/0882: Page mode
- G06F 13/1673: {using buffers}
- G06F 2212/1032: Reliability improvement, data loss prevention, degraded operation etc
- G06F 2212/7201: Logical to physical mapping or translation of blocks or pages
- G06F 2212/7203: Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
- G06F 2212/7207: management of metadata or control data
- G06F 2212/7208: Multiple device management, e.g. distributing data over multiple flash devices
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

The invention introduces a method for multi-namespace data access, performed by a controller, at least including: obtaining a host write command from a host, which includes user data and metadata associated with one Logical Block Address (LBA) or more; and programming the user data and the metadata into a user-data part and a metadata part of a segment of a Logical Unit Number (LUN), respectively, wherein a length of the metadata part is the maximum metadata length of a plurality of LBA formats that the controller supports.

## Claims

### Claim 1

A method for multi-namespace data access, performed by a controller, comprising:
obtaining a host write command from a host, which comprises user data and metadata associated with one Logical Block Address (LBA) or more; and
programming the user data and the metadata into a user-data part and a metadata part of a segment of a Logical Unit Number (LUN), respectively, wherein a length of the metadata part is the maximum metadata length of a plurality of LBA formats that the controller supports.

### Claim 2 (depends on 1)

The method of claim 1, wherein a length of the user-data part is the maximum user-data length of the LBA formats that the controller supports.

### Claim 3 (depends on 2)

The method of claim 2, wherein the length of the user-data part is 4 KB (Kilo Bytes) and the length of the metadata part is 128B (Bytes).

### Claim 4 (depends on 1)

The method of claim 1, wherein physical space of the LUN comprises a plurality of segments, each segment comprises the user-data part and the metadata part, lengths of all user-data parts are the same and lengths of all metadata parts are the same.

### Claim 5 (depends on 1)

The method of claim 1, wherein the segment of the LUN comprises a Cyclic Redundancy Check (CRC) part, the method comprising:
generating a CRC code according to the user data and the metadata associated with the LBA or LBAs; and
programming the CRC code into the CRC part of the segment of the LUN.

### Claim 6 (depends on 1)

The method of claim 1, comprising:
arranging and storing the user data and the metadata in a user-data region and a metadata region of a page buffer, respectively; and
programming data of the user-data region and the metadata region of the page buffer into the user-data part and the metadata part of the segment of the LUN, respectively.

### Claim 7 (depends on 1)

The method of claim 1, wherein the metadata part stores the metadata and a dummy value.

### Claim 8 (depends on 1)

The method of claim 1, comprising:
obtaining a host read command from the host, which instructs the controller to read the user data and the metadata associated with the LBA or LBAs;
reading data of the user-data part and the metadata part of the segment of the LUN according to a universal LBA format; and
outputting the user data of the user-data part and the metadata of the metadata part associated with the LBA or LBAs to the host according to an LBA format.

### Claim 9 (depends on 8)

The method of claim 8, comprising:
storing the data of the user-data part and the metadata part in a user-data region and a metadata region of a page buffer, respectively; and
outputting the user data of the user-data region and the metadata of the metadata region associated with the LBA or LBAs to the host according to the LBA format.

### Claim 10 (depends on 8)

The method of claim 8, wherein the metadata part stores the metadata and a dummy value.

### Claim 11

A non-transitory computer program product for multi-namespace data access when executed by a controller, the non-transitory computer program product comprising program code to:
obtain a host write command from a host, which comprises user data and metadata associated with one Logical Block Address (LBA) or more; and
program the user data and the metadata into a user-data part and a metadata part of a segment of a Logical Unit Number (LUN), respectively, wherein a length of the metadata part is the maximum metadata length of a plurality of LBA formats that the controller supports.

### Claim 12 (depends on 11)

The non-transitory computer program product of claim 11, wherein a length of the user-data part is the maximum user-data length of the LBA formats that the controller supports.

### Claim 13 (depends on 11)

The non-transitory computer program product of claim 11, wherein physical space of the LUN comprises a plurality of segments, each segment comprises the user-data part and the metadata part, lengths of all user-data parts are the same and lengths of all metadata parts are the same.

### Claim 14 (depends on 11)

The non-transitory computer program product of claim 11, wherein the metadata part stores the metadata and a dummy value.

### Claim 15 (depends on 11)

The non-transitory computer program product of claim 11, comprising program code to:
obtain a host read command from the host, which instructs the controller to read the user data and the metadata associated with the LBA or LBAs;
read data of the user-data part and the metadata part of the segment of the LUN according to a universal LBA format; and
output the user data of the user-data part and the metadata of the metadata part associated with the LBA or LBAs to the host according to an LBA format.

### Claim 16

An apparatus for multi-namespace data access, comprising:
a host interface, coupled to a host;
a flash interface, coupled to a Logical Unit Number (LUN); and
a processing unit, coupled to the host interface and the flash interface, arranged to operably obtain a host write command from the host, which comprises user data and metadata associated with one Logical Block Address (LBA) or more through the host interface; and program the user data and the metadata into a user-data part and a metadata part of a segment of the LUN, respectively, wherein a length of the metadata part is the maximum metadata length of a plurality of LBA formats that the apparatus supports.

### Claim 17 (depends on 16)

The apparatus of claim 16, wherein a length of the user-data part is the maximum user-data length of the LBA formats that the apparatus supports.

### Claim 18 (depends on 16)

The apparatus of claim 16, wherein physical space of the LUN comprises a plurality of segments, each segment comprises the user-data part and the metadata part, lengths of all user-data parts are the same and lengths of all metadata parts are the same.

### Claim 19 (depends on 16)

The apparatus of claim 16, wherein the metadata part stores the metadata and a dummy value.

### Claim 20 (depends on 16)

The apparatus of claim 16, wherein the processing unit is arranged to operably obtain a host read command from the host through the host interface, which instructs the controller to read the user data and the metadata associated with the LBA or LBAs; read data of the user-data part and the metadata part of the segment of the LUN through the flash interface according to a universal LBA format; and output the user data of the user-data part and the metadata of the metadata part associated with the LBA or LBAs to the host through the host interface according to an LBA format.
