# US 12,008,269 B2 · Storage device with client reconfigurable protocol

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

- Number: US 12,008,269 B2
- Document ID: US12008269B2
- Status: Granted
- Kind: B2
- Application number: 17/964,264
- Filed: 2022-10-12
- Published: 2023-04-13
- Granted: 2024-06-11
- Earliest claimed: 2020-08-20
- Assignees: SK Hynix NAND Product Solutions Corp.
- Applicants: SK Hynix NAND Product Solutions Corp.
- Inventors: Teddy Greer; Joseph Tarango
- Web page: https://patentgrep.com/patent/US12008269B2

## CPC

- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0605: {by facilitating the interaction with a user or administrator}
- G06F 3/0626: {Reducing size or complexity of storage systems}
- G06F 3/0634: {by changing the state or mode of one or more devices}
- G06F 3/0658: {Controller construction arrangements}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An embodiment of an electronic apparatus may include one or more substrates, and logic coupled to the one or more substrates, the logic to control access to a persistent storage media based on one of a first access protocol and a second access protocol that is different from the first access protocol, and select between the first access protocol and the second access protocol at runtime based on a user configurable parameter. Other embodiments are disclosed and claimed.

## Claims

### Claim 1

An integrated electronic apparatus, comprising:
an enclosure;
persistent storage media within the enclosure; and
a processor within the enclosure wherein the processor, during runtime, is configured to generate either (a) a first set of commands for controlling the persistent storage media based on a first client of a host device communicatively coupled to the apparatus, or (b) a second set of commands for controlling the persistent storage media based on a second client of the host device, based on a user-configurable parameter.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein the second set of commands comprises one of a different version and a different set of commands as compared to the first set of commands.

### Claim 3 (depends on 1)

The apparatus of claim 1, wherein the processor is a first processor, the apparatus further comprising:
a second processor, which executes in parallel with the first processor, to generate a set of common commands for controlling the persistent storage media based on a user-configurable parameter, wherein,
the second processor accesses the persistent storage media based on the set of common commands and the second processor is within the enclosure.

### Claim 4 (depends on 3)

The apparatus of claim 3, further comprising:
logic, the logic to:
configure the second processor based on one or more of a physical function, data transformation, a virtual function, a namespace, and a logical and/or a physical block address range associated with a client of the host device.

### Claim 5 (depends on 4)

The apparatus of claim 4, wherein the logic is further to:
maintain one or more configuration state tables and one or more configuration command linkers associated with one or more of the first processor and the second processor.

### Claim 6 (depends on 5)

The apparatus of claim 5, wherein the logic is further to:
reconfigure one or more of a decode and an encode action for one or more of the first processor and the second processor based on the one or more configuration state tables and the one or more configuration command linkers.

### Claim 7 (depends on 1)

The apparatus of claim 1, wherein the persistent storage media comprises one or more of NAND-based media and 3D crosspoint media.

### Claim 8

An electronic storage system, comprising:
an enclosure;
persistent storage media within the enclosure; and
a controller within the enclosure, wherein the controller is communicatively coupled to the persistent storage media, the controller including logic to:
generate a first set of commands for controlling the persistent storage media based on a first client of a host device communicatively coupled to the system,
generate a second set of commands for controlling the persistent storage based on a second client of the host device media,
control access to the persistent storage media based on one of a first set of commands and a second set of commands that is different from the first set of commands, and
select between the first set of commands and the second set of commands at runtime based on a user configurable parameter.

### Claim 9 (depends on 8)

The system of claim 8, wherein the second set of commands comprises one of a different version and a different set of commands as compared to the first set of commands.

### Claim 10 (depends on 8)

The system of claim 8, wherein the logic is further to:
provide a first processor to generate a set of common commands for controlling the persistent storage media based on the first client of the host device;
provide a second processor in parallel with the first processor to generate a set of common commands for controlling the persistent storage media based on the second client of the host device; and
access the persistent storage media based on the set of common commands.

### Claim 11 (depends on 10)

The system of claim 10, wherein the logic is further to:
configure the second processor based on one or more of a physical function, data transformation, a virtual function, a namespace, a physical block address range, and a logical block address range associated with a client of the host device.

### Claim 12 (depends on 11)

The system of claim 11, wherein the logic is further to:
maintain one or more configuration state tables and one or more configuration command linkers associated with one or more of the first processor and the second processor.

### Claim 13 (depends on 12)

The system of claim 12, wherein the logic is further to:
reconfigure one or more of a decode and an encode action for one or more of the first processor and the second processor based on the one or more configuration state tables and the one or more configuration command linkers.

### Claim 14 (depends on 8)

The system of claim 8, wherein the persistent storage media comprises one or more of NAND-based media and 3D crosspoint media.

### Claim 15

A method of controlling storage, comprising:
controlling access, using logic in an apparatus, to a persistent storage media in the apparatus using one of a first set of commands generated based on a first client of a host device communicatively coupled to the apparatus and a second set of commands generated based on a second client of the host device; and
selecting between the first set of commands and the second set of commands at runtime based on a user configurable parameter.

### Claim 16 (depends on 15)

The method of claim 15, wherein the second set of commands comprises one of a different version and a different set of commands as compared to the first set of commands.

### Claim 17 (depends on 15)

The method of claim 15, further comprising:
providing a first processor to generate a set of common commands for controlling the persistent storage media based on the first client of the host device;
providing a second processor in parallel with the first processor to generate a set of common commands for controlling the persistent storage media based on the second client of the host device; and
accessing the persistent storage media based on the set of common commands.

### Claim 18 (depends on 17)

The method of claim 17, further comprising:
configuring the second processor based on one or more of a physical function, data transformation, a virtual function, a namespace, a physical block address range, and a logical block address range associated with a client of the host device.

### Claim 19 (depends on 18)

The method of claim 18, further comprising:
maintaining one or more configuration state tables and one or more configuration command linkers associated with one or more of the first processor and the second processor.

### Claim 20 (depends on 19)

The method of claim 19, further comprising:
reconfiguring one or more of a decode and an encode action for one or more of the first processor and the second processor based on the one or more configuration state tables and the one or more configuration command linkers.

### Claim 21 (depends on 1)

The apparatus of claim 1, wherein the processor is configured based on an access protocol used by a respective client of at least two clients of the host device.
