# US 11,442,665 B2 · Storage system and method for dynamic selection of a host interface

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

- Number: US 11,442,665 B2
- Document ID: US11442665B2
- Status: Granted
- Kind: B2
- Application number: 17/178,447
- Filed: 2021-02-18
- Published: 2022-06-09
- Granted: 2022-09-13
- Earliest claimed: 2020-12-04
- Assignees: Western Digital Technologies, Inc.
- Applicants: Western Digital Technologies, Inc.
- Inventors: Rakesh Balakrishnan; Eldhose Peter; Shiva K
- Web page: https://patentgrep.com/patent/US11442665B2

## 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/0607: {by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device}
- G06F 3/064: {Management of blocks}
- G06F 3/0658: {Controller construction arrangements}
- G06F 3/0661: {Format or protocol conversion arrangements}
- G06F 3/0683: {Plurality of storage devices}
- G06F 13/1684: {using multiple buses}
- G06F 13/38: Information transfer, e.g. on bus (G06F13/14 takes precedence)
- G06F 13/4282: {on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A storage system and method for dynamic selection of a host interface are provided. In one embodiment, a storage system is provided comprising a memory and a controller. The controller is configured to receive, from a host, a selection of a first host interface; in response to receiving the selection of the first host interface, implement the first host interface; after the first host interface has been implemented, receive, from the host, a selection of a second host interface; and in response to receiving the selection of the second host interface, implement the second host interface even though the first host interface was previously implemented. Other embodiments are provided.

## Claims

### Claim 1

A storage system comprising:
a memory; and
a controller configured to:
implement a first host interface upon establishing communication with a host;
after the first host interface has been implemented, receive, from the host via the first host interface, a command to prepare for a switch from the first host interface to a second host interface;
in response to receiving the command to prepare for the switch load firmware to execute on the controller to implement the second host interface;
send an acknowledgement to the host that the storage system is prepared for the switch;
receive, from the host via the first host interface, a command to switch from the first host interface to the second host interface; and
in response to receiving the command to switch, implement the second host interface.

### Claim 2 (depends on 1)

The storage system of claim 1, further comprising a host interface module configured to receive, from the host, the commands to prepare and switch.

### Claim 3 (depends on 1)

The storage system of claim 1, wherein the controller is further configured to partition the memory into a first set of blocks allocated for the first host interface.

### Claim 4 (depends on 3)

The storage system of claim 3, wherein the controller is further configured to partition the memory into a second set of blocks allocated for the second host interface.

### Claim 5 (depends on 1)

The storage system of claim 1, wherein the memory comprises a three-dimensional memory.

### Claim 6 (depends on 1)

The storage system of claim 1, wherein the controller is further configured to complete an in-progress memory operation using the first host interface before implementing the second host interface.

### Claim 7 (depends on 1)

The storage system of claim 1, wherein:
one of the first and second host interfaces comprises a Secure Digital (SD) interface; and
the other of the first and second host interfaces comprises a peripheral component interconnect express (PCIe) interface.

### Claim 8 (depends on 1)

The storage system of claim 1, further comprising a connector compatible with the first and second host interfaces.

### Claim 9 (depends on 1)

The storage system of claim 1, wherein the controller is further configured to switch between the first and second host interfaces a plurality of times.

### Claim 10 (depends on 1)

The storage system of claim 1, wherein the command to prepare comprises a vendor-specific command.

### Claim 11 (depends on 1)

The storage system of claim 1, wherein the host comprises an application layer, a driver layer, and a physical layer.

### Claim 12 (depends on 11)

The storage system of claim 11, wherein the storage system comprises a physical layer, a command layer, and a controller back-end layer.

### Claim 13

A method comprising:
performing the following in a host:
establishing communication with a storage system comprising a memory, wherein a first host interface is implemented by the storage system upon establishing communication;
sending, to the storage system via the first host interface, a command to prepare for a switch from the first host interface to a second host interface, wherein the storage system loads firmware to implement the second host interface in response to receiving the command to prepare for the switch;
receiving an acknowledgement from the storage system that the storage system is prepared for the switch;
sending, to the storage system via the first host interface, a command to switch from the first host interface to the second host interface; and
receiving an acknowledgement from the storage system that the storage system has implemented the second host interface.

### Claim 14 (depends on 13)

The method of claim 13, wherein:
one of the first and second host interfaces comprises a Secure Digital (SD) interface; and
the other comprises a peripheral component interconnect express (PCIe) interface.

### Claim 15 (depends on 13)

The method of claim 13, wherein the command to prepare comprises a vendor-specific command.

### Claim 16 (depends on 13)

The method of claim 13, wherein the host determines to send the command to prepare based on power usage.

### Claim 17 (depends on 13)

The method of claim 13, wherein the host determines to send the command to prepare based on bandwidth.

### Claim 18 (depends on 13)

The method of claim 13, further comprising sending commands to switch between the first and second host interfaces a plurality of times.

### Claim 19 (depends on 13)

The method of claim 13, wherein:
the host comprises an application layer, a driver layer, and a physical layer; and
the storage system comprises a physical layer, a command layer, and a controller back-end layer.

### Claim 20

A storage system comprising:
a memory;
means for implementing a first host interface upon establishing communication with a host;
means for loading firmware to implement a second host interface in response to receiving, from the host, a command to prepare for a switch from the first host interface to the second host interface;
means for sending an acknowledgement to the host that the storage system is prepared for the switch; and
means for implementing the second host interface in response to receiving, from the host, a command to switch from the first host interface to the second host interface.
