# US 10,310,745 B2 · Method and apparatus for fine tuning and optimizing NVMe-oF SSDs

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

- Number: US 10,310,745 B2
- Document ID: US10310745B2
- Status: Granted
- Kind: B2
- Application number: 15/674,690
- Filed: 2017-08-11
- Published: 2018-11-22
- Granted: 2019-06-04
- Earliest claimed: 2017-05-19
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Wentao Wu; Sompong Paul Olarig
- Web page: https://patentgrep.com/patent/US10310745B2

## CPC

- G06F 3/0613: {in relation to throughput}
- G06F 3/0631: {by allocating resources to storage systems}
- G06F 3/0635: {by changing the path, e.g. traffic rerouting, path reconfiguration}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- G06F 13/4022: {using switching circuits, e.g. switching matrix, connection or expansion network (G06F13/4009 takes precedence)}
- G06F 13/4282: {on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247)}
- G06F 2213/0026: PCI express
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A data storage system includes: a plurality of data storage devices; a motherboard containing a baseboard management controller (BMC); and a network switch configured to route network traffic to the plurality of data storage devices. The BMC is configured to identify a group of data storage devices among the plurality of data storage devices based on device-specific information received from the plurality of data storage devices and send identifiers of the group of data storage devices to a querying party.

## Claims

### Claim 1

A data storage system comprising:
a chassis;
a plurality of data storage devices removably coupled to the chassis;
a motherboard coupled to the chassis and containing a baseboard management controller (BMC), wherein the BMC is coupled to the plurality of data storage devices; and
a network switch configured to route network traffic received from one or more application via a plurality of uplink network ports to the plurality of data storage devices via a plurality of downlink network ports,
wherein the BMC initiates a query to the plurality of data storage devices via a peripheral component interconnect express (PCIe) bus, and in response to initiating the query, receives device-specific information of the plurality of data storage devices, identify a group of data storage devices among the plurality of data storage devices based on the device-specific information received from the plurality of data storage devices, and send identifiers of the group of data storage devices to a querying party via a management port.

### Claim 2 (depends on 1)

The data storage system of claim 1, wherein the data storage device is a solid-state drive (SSD) that is compatible with the NVMe-oF standard, and wherein the network switch is an Ethernet switch, and the plurality of uplink network ports and the plurality of downlink network ports are Ethernet ports.

### Claim 3 (depends on 1)

The data storage system of claim 1, wherein each of the plurality of data storage devices sends the device-specific information to the BMC over the PCI bus.

### Claim 4 (depends on 1)

The data storage system of claim 1, wherein the device-specific information includes discovery information and field-replaceable unit (FRU) information of the plurality of data storage devices.

### Claim 5 (depends on 1)

The data storage system of claim 1, wherein the device-specific information further includes attributes of the plurality of data storage devices including one or more of a vendor ID (VID), a subsystem vendor ID (SSVID), a serial number (SN), a model number (MN), a capacity, a maximum data transfer size (MDTS), a number of data units read, a number of data units written, host read commands, host write commands, and a controller busy time.

### Claim 6 (depends on 1)

The data storage system of claim 1, wherein the device-specific information further includes a current usage or availability of the plurality of data storage devices during a specific time period.

### Claim 7 (depends on 1)

The data storage system of claim 1, wherein the BMC sends the query to the plurality of data storage devices in response to the querying party, and wherein the plurality of data storage devices sends the device-specific information to the BMC in response to the query by the BMC.

### Claim 8 (depends on 1)

The data storage system of claim 1, wherein the query is automatically generated based on service level agreement (SLA).

### Claim 9 (depends on 1)

The data storage system of claim 1, wherein the query includes requirements of attributes for the data storage devices.

### Claim 10 (depends on 9)

The data storage system of claim 9, wherein the BMC sends the group of data storage devices among the plurality of data storage devices that satisfies the requirements of attributes to the querying party.

### Claim 11 (depends on 10)

The data storage system of claim 10, wherein the BMC is further configured to clean up the group of data storage devices.

### Claim 12

A method comprising:
initiating a query to a plurality of data storage devices from a baseboard management controller (BMC) of a data storage system via a peripheral component interconnect express (PCIe) bus, wherein the plurality of data storage devices are removably coupled to a chassis of the data storage system, and the BMC is coupled to the plurality of data storage devices;
receiving, at the BMC, device-specific information from the plurality of data storage devices in response to the query;
identifying, at the BMC, a group of data storage devices among the plurality of data storage devices based on attributes of the plurality of data storage devices; and
sending identifiers of the group of data storage devices from the BMC to a querying party via a management port.

### Claim 13 (depends on 12)

The method of claim 12, wherein the data storage device is a solid-state drive (SSD) that is compatible with the NVMe-oF standard, and wherein the network switch is an Ethernet switch.

### Claim 14 (depends on 12)

The method of claim 12, wherein each of the plurality of data storage devices sends the device-specific information to the BMC over the PCI bus.

### Claim 15 (depends on 12)

The method of claim 12, wherein the device-specific information includes discovery information and field-replaceable unit (FRU) information of the plurality of data storage devices.

### Claim 16 (depends on 12)

The method of claim 12, wherein the device-specific information further includes attributes of the plurality of data storage devices including one or more of a vendor ID (VID), a subsystem vendor ID (SSVID), a serial number (SN), a model number (MN), a capacity, a maximum data transfer size (MDTS), a number of data units read, a number of data units written, host read commands, host write commands, and a controller busy time.

### Claim 17 (depends on 12)

The method of claim 12, wherein the device-specific information further includes a current usage or availability of the plurality of data storage devices during a specific time period.

### Claim 18 (depends on 12)

The method of claim 12, wherein the BMC sends the query to the plurality of data storage devices in response to the querying party, and wherein the plurality of data storage devices sends the device-specific information to the BMC in response to the query by the BMC.

### Claim 19 (depends on 12)

The method of claim 12, further comprising automatically generating the query based on service level agreement (SLA).

### Claim 20 (depends on 12)

The method of claim 12, wherein the query includes requirements of attributes for the data storage devices.

### Claim 21 (depends on 20)

The method of claim 20, wherein the BMC sends the group of data storage devices among the plurality of data storage devices that satisfies the requirements of attributes to the querying party.

### Claim 22 (depends on 21)

The method of claim 21, further comprising: cleaning up the group of data storage devices using the BMC.
