NVMe Offset Address Conversion for Server Storage Sharing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional techniques for allocating IO operations in computer systems with NVMe storage devices result in increased latency due to the complexity of determining whether read requests from the storage device are for data transfer or command fetching, making it difficult to convert DMA addresses correctly.

Innovation Solution

A computer system architecture that includes an intermediate device and servers with a driver that converts memory addresses into offset addresses, allowing the intermediate device to trap access requests, specify the server, and reset the offset address for efficient data transfer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the IO hub determines whether read requests are for data transfer or command fetching using conventional techniques, then the storage device can be shared among multiple servers, but the mechanism becomes complicated and latency increases

Engineering Contradiction:
Improvestorage device sharing capabilityVSAvoidIO hub mechanism complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by having the driver convert the memory address to an offset address before the storage device reads the command. This pre-processing step eliminates the need for the IO hub to determine the request type later, as the offset address format itself indicates it is a command fetch request. The conversion is performed in advance during queue setup, not during actual command execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism by using the offset address as a mediator between the server's memory address and the storage device's read request. The offset address serves as an intermediate representation that the storage device can directly use without requiring the IO hub to interpret or convert it, thereby simplifying the IO hub's function.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the IO hub converts DMA addresses in conventional systems, then address mapping between servers and storage devices is achieved, but this conversion cannot be applied to NVMe systems where commands are fetched from server memory

Engineering Contradiction:
Improveaddress conversion efficiencyVSAvoidNVMe protocol compatibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent applies parameter changes by transforming the address parameter from a full memory address to an offset address. This parameter transformation changes the nature of the data being transferred - instead of converting a complete DMA address, the system uses an offset that is relative to a base address known to both the storage device and the server. This parameter change enables NVMe protocol compatibility while maintaining address mapping functionality.

Inventive Principle:
Principle #35Parameter changes

3Extent of automation

If the storage device fetches commands from server memory using NVMe specifications, then the storage device can operate independently, but the IO hub cannot determine request types and convert addresses

Engineering Contradiction:
Improvestorage device autonomous operationVSAvoidrequest type determination difficulty
Core Design Contradiction:
Extent of automationVSDifficulty of detecting and measuring

Solution Approach 1:

The patent applies inversion by reversing the conventional approach. Instead of the IO hub determining the request type and converting addresses (as in conventional systems), the server's driver converts the address to an offset format before the storage device reads it. This inversion of the processing sequence - doing the address transformation beforehand rather than during request handling - allows the storage device to operate autonomously while eliminating the request type determination problem at the IO hub.

Inventive Principle:
Principle #13The other way round (Inversion)

Data Source

PatentUS10698634B2Computer system and data control method utilizing NVMe and storing commands including an offset address corresponding to a server in a queue
Publication Date: 2020.06.30 HITACHI VANTARA LTD
  • US10698634B2 patent drawing
  • US10698634B2 patent drawing
  • US10698634B2 patent drawing

AI summary

A driver of a server converts an address of a memory included in the server into an offset address on the basis of an offset value corresponding to the server and stores a command including the offset address in a queue. A storage device acquires the command from the queue of the server and issues an access request to the offset address included in the acquired command. An intermediate device traps the access request issued from the storage device, specifies a server on the basis of the offset address included in the trapped access request, resets the offset address to an original address on the basis of an offset value corresponding to the specified server, and transfers the access request including the reset address to the specified server.