Multi-Engine Protocol Architecture for Scalable Command Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional data processing systems, such as those using Fibre Channel and NVMe Protocol Processing, face challenges in scalability, flexibility, and power efficiency due to reliance on software implementations on embedded CPUs, which are not easily scalable to meet modern performance requirements of higher throughput, lower latency, and lower cost.

Innovation Solution

A multi-engine protocol architecture is introduced, featuring a high-performance, pipelined, multi-threaded processor with flexible out-of-order command processing and programmable processing engines, which offloads data processing to hardware-based and firmware-based engines, optimizing performance and reducing power consumption while maintaining protocol processing flexibility.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the number of ULPs is increased to scale processing performance, then throughput is improved, but die size and chip cost increase

Engineering Contradiction:
Improveprocessing performanceVSAvoiddie size
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The system segments processing into multiple pipeline stages (fetch, decode, execute, writeback) that can operate in parallel. Each stage handles a specific portion of instruction processing, allowing multiple instructions to be processed simultaneously at different stages, thereby improving throughput without proportionally increasing die size.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a multi-dimensional processing approach by implementing superscalar architecture that can issue multiple instructions per cycle across different functional units. This adds temporal and functional dimensions to processing, achieving higher throughput without linearly increasing the number of processing elements.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If the operating clock frequency of ULPs is increased to scale processing performance, then throughput is improved, but power consumption increases

Engineering Contradiction:
ImprovethroughputVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by stationary object

Solution Approach 1:

The system implements dynamic frequency scaling and power management where the clock frequency is adjusted based on workload demands. During low-utilization periods, frequency is reduced to save power, while during peak demand, frequency is increased to maintain throughput, optimizing the trade-off between performance and power consumption.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The pipelined architecture ensures continuous processing throughput by keeping multiple pipeline stages active simultaneously. This allows the system to maintain high utilization efficiency at lower clock frequencies, as each cycle processes multiple instructions through different stages, reducing the need for high-frequency operation to achieve the same throughput.

Inventive Principle:
Principle #20Continuity of useful action

3Adaptability or versatility

If complex functions are implemented in software on embedded CPUs to maintain flexibility, then adaptability is improved, but processing performance deteriorates

Engineering Contradiction:
ImproveflexibilityVSAvoidprocessing performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent implements a universal processor design with configurable functional units that can execute multiple instruction types and support different protocols. The out-of-order execution engine and register renaming capability provide general-purpose processing power that can adapt to various workloads without requiring dedicated hardware for each function, maintaining flexibility while achieving high performance.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system replaces software-based protocol processing with hardware-accelerated processing units that implement protocol-specific logic in dedicated functional units. This substitution of mechanical/software processing with hardware acceleration maintains protocol compliance and flexibility while dramatically improving processing throughput for common protocols.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

4Productivity

If ASIC designs are used to improve processing performance, then throughput is improved, but flexibility deteriorates due to hardcoded logic

Engineering Contradiction:
ImprovethroughputVSAvoidflexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic reconfiguration capabilities where the processor can change its operational characteristics at runtime. The control logic can dynamically adjust pipeline depth, enable/disable specific functional units, and reconfigure data paths based on workload requirements, providing flexibility typically associated with software while maintaining the high throughput of hardware implementation.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system allows runtime modification of processing parameters such as pipeline stage priorities, functional unit activation states, and register allocation policies. These parameter changes enable the same hardware structure to adapt to different protocol requirements and workload characteristics without requiring physical reconfiguration or manufacturing changes.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10996980B2Multi-threaded command processing system
Publication Date: 2021.05.04 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US10996980B2 patent drawing
  • US10996980B2 patent drawing
  • US10996980B2 patent drawing

AI summary

A number of command processing devices, architectures, and methods are described. One example of a command processing device is disclosed to include a classification engine configured to classify input commands, a sequencer in communication with the classification engine, one or more thread managers in communication with the sequencer, and one or more sub-processing engines in communication with each of the one or more thread managers. The sequencer may control staging of work across multiple threads and processing elements within threads. Each of the one or more thread managers are configured to delegate work to different sub-processing engines. Each of the one or more sub-processing engines are configured to perform sub-tasks in connection with completing processing of an input command received at the classification engine based on particular sub-tasks assigned to the one or more sub-processing engines by the one or more thread managers.