HBA MMIO Queue Management Reduces PCIe Bus Access Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing computer systems using Host Bus Adapters (HBAs) with PCIe buses experience performance bottlenecks due to the high number of accesses required for data transmission and reception through the PCIe bus, leading to slower processing speeds compared to internal HBA operations.

Innovation Solution

Implementing a Memory Mapped I/O (MMIO) area that maps the HBA's storage region onto the main storage, allowing the HBA driver to write management information to the MMIO area, reducing the need for direct PCIe bus accesses between the HBA, CPU, and main storage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If HBA uses PCIe bus to access main storage for data transmission/reception, then HBA can communicate with I/O device, but access speed through PCIe bus becomes very low compared to internal HBA operations

Engineering Contradiction:
ImproveHBA communication capabilityVSAvoidaccess speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The patent introduces a memory-mapped I/O region as an intermediary between the HBA's internal storage and the main storage. This intermediary allows the HBA to manage data transmission queues and control information without repeatedly accessing the main storage through the slow PCIe bus, thereby resolving the contradiction between communication capability and access speed.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If HBA driver and HBA-F/W frequently access main storage through PCIe bus for queue management, then data transmission can be controlled, but number of PCIe bus accesses increases causing performance bottleneck

Engineering Contradiction:
Improvedata transmission controlVSAvoidprocessing time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent pre-allocates a memory-mapped I/O region that contains queue management structures. By preparing these structures in advance within the HBA's accessible memory space, the system eliminates the need for frequent PCIe bus accesses during data transmission operations, thereby reducing processing time while maintaining ease of operation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a copy of the queue management information in the memory-mapped I/O region within the HBA. Instead of repeatedly accessing the original queue structures in main storage through the PCIe bus, the HBA operates with local copies, significantly reducing the number of PCIe bus accesses and associated delays.

Inventive Principle:
Principle #26Copying

3Extent of automation

If HBA-F/W reads and writes queue information from main storage through PCIe bus, then I/O operations can be managed, but access frequency creates bottleneck in data processing

Engineering Contradiction:
ImproveI/O operation managementVSAvoiddata processing speed
Core Design Contradiction:
Extent of automationVSProductivity

Solution Approach 1:

The memory-mapped I/O region serves as an intermediary buffer that stores queue management information locally within the HBA. This allows HBA-F/W to read and write queue information without repeatedly traversing the slow PCIe bus to the main storage, thereby maintaining automated I/O management while significantly improving data processing speed.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8799530B2Data processing system with a host bus adapter (HBA) running on a PCIe bus that manages the number enqueues or dequeues of data in order to reduce bottleneck
Publication Date: 2014.08.05 SKY SOCKET LLC
  • US8799530B2 patent drawing
  • US8799530B2 patent drawing
  • US8799530B2 patent drawing

AI summary

An HBA driver manages a queue number for enqueuing and dequeuing data to an I/O queue by the main storage, and HBA-F/W manages a storage region at inside of HBA. The HBA driver reduces the number of access times by way of the PCIe bus by noticing an enqueued queue number or a dequeued queue number of an I/O queue to HBA-F/W by utilizing an MMIO area of the main storage in which a storage region on HBA is mapped.