Mapping Non-Prefetchable Storage to GMMIO Space

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increasing demand for non-prefetchable MMIO space in PCIe devices leads to a shortage of LMMIO space, limiting the number of devices that can be supported in highly scalable platforms.

Innovation Solution

Mapping non-prefetchable storage locations into GMMIO space, which is typically reserved for prefetchable storage, by ensuring that host and I/O devices are not coupled via PCIe-to-PCI/PCI-X bridges and prohibiting peer-to-peer requests from devices below such bridges, thus avoiding issues like byte-merging and silent data corruption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If non-prefetchable storage locations are mapped into LMMIO space, then the mapping resources can be used with non-prefetchable semantics, but the limited LMMIO space (addressable via 32-bit addresses) becomes exhausted, limiting the number of PCIe devices that can be supported

Engineering Contradiction:
Improvenumber of supported PCIe devicesVSAvoidavailable LMMIO space
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent extends the mapping space from 32-bit LMMIO to 64-bit GMMIO space, effectively adding a new dimension of addressable memory space. This allows non-prefetchable storage locations to be mapped into GMMIO space using 64-bit addresses, thereby expanding the available address space from 4GB to potentially exabytes, which directly resolves the limitation on the number of supported PCIe devices

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

Solution Approach 2:

The patent changes the address width parameter from 32-bit to 64-bit for mapping non-prefetchable storage locations. By modifying this fundamental parameter, the available address space increases exponentially, allowing far more devices to be supported while maintaining non-prefetchable semantics through appropriate host and device configuration

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If non-prefetchable storage locations are mapped into GMMIO space, then more devices can be supported, but data corruption or undefined behaviors may occur due to byte-merging or silent data corruption from PCIe-to-PCI/PCI-X bridges

Engineering Contradiction:
Improvenumber of supported PCIe devicesVSAvoiddata integrity
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent introduces an intermediary mechanism in the form of a PCIe switch that properly handles 64-bit address mappings and prevents byte-merging issues. The switch acts as a mediator between the host and devices mapped into GMMIO space, ensuring that memory access requests are correctly routed and executed without corruption, thereby maintaining data integrity while enabling expanded device support

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent applies preliminary anti-action by prohibiting peer-to-peer requests from devices below PCIe-to-PCI/PCI-X bridges and by configuring the host and devices to prevent byte-merging behaviors before they can cause data corruption. These preventive measures are established in advance through system configuration and protocol enforcement, eliminating potential data integrity issues before they manifest

Inventive Principle:
Principle #9Preliminary anti-action

Data Source

PatentUS9229859B2Mapping non-prefetchable storage locations into memory mapped input/output space
Publication Date: 2016.01.05 VALTRUS INNOVATIONS LTD
  • US9229859B2 patent drawing
  • US9229859B2 patent drawing
  • US9229859B2 patent drawing

AI summary

A system including a host and a device. The device has at least one non-prefetchable storage location. The host and the device are configured to map the at least one non-prefetchable storage location into memory mapped input/output space that is addressed via greater than 32 address bits.