# US 11,307,768 B2 · Namespace auto-routing data storage system

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

- Number: US 11,307,768 B2
- Document ID: US11307768B2
- Status: Granted
- Kind: B2
- Application number: 15/929,856
- Filed: 2020-05-26
- Published: 2020-12-10
- Granted: 2022-04-19
- Earliest claimed: 2019-06-07
- Assignees: Seagate Technology LLC
- Applicants: Seagate Technology LLC
- Inventors: Thomas V. Spencer
- Web page: https://patentgrep.com/patent/US11307768B2

## CPC

- G06F 3/0607: {by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0635: {by changing the path, e.g. traffic rerouting, path reconfiguration}
- G06F 3/0653: {Monitoring storage devices or systems}
- G06F 3/0683: {Plurality of storage devices}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A data storage system can employ namespace auto-routing by connecting a host to a data storage device via a system module. A data access request may be generated with the host and a namespace is then assigned to the data access request with a firmware upstream of the system module. An optimal physical data address in the data storage device can be assigned with the system module prior to writing the data associated with the data access request to the assigned physical data address of the assigned namespace.

## Claims

### Claim 1

A method comprising:
connecting a host to a data storage device via a system module;
generating a data access request with the host;
assigning a namespace to the data access request with a firmware upstream of the system module;
testing at least one address of the assigned namespace with a write operation and read operation, as directed by the system module, to determine data storage performance capabilities; and
assigning the an optimal physical data address in the assigned namespace of the data storage device with the system module in response to the tested data storage performance capabilities.

### Claim 2 (depends on 1)

The method of claim 1, wherein the system module tests each physical data addresses of the assigned namespace prior to assigning the optimal physical data address.

### Claim 3 (depends on 1)

The method of claim 1, wherein the firmware assigns the namespace autonomously.

### Claim 4 (depends on 1)

The method of claim 1, wherein the firmware assigns the namespace based on a predetermined assignment protocol.

### Claim 5 (depends on 1)

The method of claim 1, wherein the optimal physical data address corresponds with a location having a greatest data storage performance of all physical data addresses of the namespace in the data storage device.

### Claim 6 (depends on 5)

The method of claim 5, wherein the greatest data storage performance corresponds with a lowest error rate.

### Claim 7 (depends on 5)

The method of claim 5, wherein the greatest data storage performance corresponds with a fastest read latency.

### Claim 8 (depends on 5)

The method of claim 5, wherein the greatest data storage performance is tested by the system module by writing at least one physical data address multiple times.

### Claim 9 (depends on 5)

The method of claim 5, wherein the greatest data storage performance is polled by the system module by monitoring activity of the data storage device.

### Claim 10 (depends on 1)

The method of claim 1, wherein the assigned namespace is retained by the system module throughout the assignment of the optimal physical data address.

### Claim 11

A method comprising:
connecting a host to a data storage device via a system module;
generating a data write request with the host;
assigning a namespace to the data write request with a firmware upstream of the system module;
determining an availability of physical data addresses of the assigned namespace in the data storage device;
testing at least one address of the assigned namespace with a write operation and read operation, as directed by the system module, to determine data storage power consumption;
assigning an optimal physical data address in the assigned namespace in the data storage device with the system module in response to the tested data storage power consumption; and
writing data associated with the data write request to the assigned physical data address of the assigned namespace.

### Claim 12 (depends on 11)

The method of claim 11, wherein the firmware is present in the host.

### Claim 13 (depends on 11)

The method of claim 11, wherein the firmware is present in a network node.

### Claim 14 (depends on 11)

The method of claim 11, wherein the system module delays writing data associated with the data write request in response to the assigned optimal physical data address not being available.

### Claim 15 (depends on 11)

The method of claim 11, wherein the namespace spans multiple different data storage devices.

### Claim 16 (depends on 11)

The method of claim 11, wherein data associated with the data write request occupies less than all of the available physical data addresses of the namespace.

### Claim 17 (depends on 11)

The method of claim 11, wherein at least one physical data address of the namespace in the data storage device is determined to be unavailable by the system module.

### Claim 18 (depends on 11)

The method of claim 11, wherein the system module concurrently determines available physical data addresses and assigns the optimal physical data address.

### Claim 19

An system comprising a host connected to a data storage device via a system module, the system module configured to assign an optimal physical data address in the data storage device corresponding to a namespace assigned to a data access request by firmware upstream of the system module, the optimal physical data address corresponding with a data storage performance capability tested by the system module by writing and reading data to the assigned namespace.

### Claim 20 (depends on 19)

The system of claim 19, wherein the system module comprises a first controller to detect available physical data addresses in the namespace of the data storage device and a second controller to determine the optimal physical data address of the namespace of the data storage device.
