Inline Hardware Engine for Storage Command Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional storage subsystems, including RAID controllers, require significant firmware involvement, leading to performance bottlenecks as they need to decide the course of operations at the outset and upon completion, and still require firmware to build hardware control blocks, consuming up to 30% of the processor time, even in high-performance designs.

Innovation Solution

A controller with an inline hardware engine that assesses host commands and builds chains of hardware command blocks without firmware involvement, reducing interactions between hardware and firmware to once per host operation, enabling auto-executed commands and error handling, and directly linking host resources to physical devices for improved performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If firmware is involved in assessing commands and building hardware control blocks, then reliability and control are improved, but processor time consumption increases up to 30%

Engineering Contradiction:
Improvefirmware controlVSAvoidprocessor time
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The inline hardware engine autonomously assesses host commands, determines the course of hardware operations, and builds chains of hardware control blocks without firmware intervention. The hardware engine serves itself by implementing the assessment logic and operation sequencing that traditionally required firmware, thereby eliminating the 30% processor time consumption while maintaining operational control.

Inventive Principle:
Principle #25Self-service

2Adaptability or versatility

If firmware builds hardware control blocks for each operation, then operational flexibility is improved, but device complexity increases

Engineering Contradiction:
Improveoperational flexibilityVSAvoidhardware-firmware interaction
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The invention extracts the command assessment and control block building functions from firmware and relocates them to the inline hardware engine. This separation removes the complex interaction layer between firmware and hardware, simplifying the system architecture while preserving operational flexibility through the hardware engine's autonomous decision-making capabilities.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If multiple hardware-firmware interactions occur per operation, then error handling capability is improved, but command throughput decreases

Engineering Contradiction:
Improveerror handlingVSAvoidcommand throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The inline hardware engine performs preliminary assessment of host commands and pre-builds chains of hardware control blocks before execution. By determining the complete sequence of operations in advance and preparing all necessary control blocks upfront, the system enables continuous hardware execution without intermittent firmware interactions, thereby maximizing command throughput while maintaining robust error handling through the pre-planned operation chains.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3033686B1Implementing hardware auto device operations initiator
Publication Date: 2021.04.28 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • EP3033686B1 patent drawingFigure 1
  • EP3033686B1 patent drawingFigure 2
  • EP3033686B1 patent drawingFigure 3

AI summary

A method and controller for implementing hardware auto device op initiator in a data storage system, and a design structure on which a subject controller circuit resides are provided. The controller includes an inline hardware engine receiving host commands, and assessing a received command for starting without firmware involvement. The inline hardware engine builds one or more chains of hardware command blocks to perform the received command and starts executing the chain or chains for the received command.