PCIe Memory-Mapping Unit for Full Device Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In PCIe systems, hosts can only access a limited, reserved block of a device's memory, limiting full memory access for debugging or configuration purposes without requiring a large reserved host memory space.

Innovation Solution

Implementing a memory-mapping unit, such as a PCIe internal Address Translation Unit, that allows a small host memory block to control the device's memory-mapping unit, enabling dynamic mapping of a dynamic data-access memory block to any desired location in the device's memory space, thereby accessing the full device memory without reserving a large host memory space.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If a traditional PCIe device uses a reserved memory block approach, then the host can access device memory, but only a small sized memory block can be accessed and a large memory space must be reserved in host memory

Engineering Contradiction:
Improveaccessible device memory spaceVSAvoidhost memory reservation requirement
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent introduces a memory-mapping unit with control registers as an intermediary between the host and device memory. This unit translates host memory access requests to device memory addresses, enabling full device memory access through a small reserved host memory block. The control registers act as the mediating interface that dynamically maps host memory blocks to device memory locations.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent changes the parameter of memory mapping from static to dynamic by implementing control registers that can be programmed to modify the mapping relationship. The memory-mapping unit responds to control register values to change which device memory block is accessed through the fixed host memory block, effectively changing the accessible memory parameters without requiring large host memory reservations.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If full device memory access is enabled through dynamic mapping, then host can access any device memory block, but the system requires a memory-mapping unit with control registers

Engineering Contradiction:
Improvememory access flexibilityVSAvoidmemory-mapping unit structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The memory-mapping unit serves multiple functions: it translates addresses, manages memory block mappings, responds to control register commands, and enables both read and write operations. This multi-functional design consolidates what would otherwise require separate components into a single versatile unit, reducing overall system complexity while achieving full memory access flexibility.

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

Solution Approach 2:

The memory-mapping unit autonomously handles the translation and mapping operations without requiring external intervention for each memory access. Once control registers are programmed, the unit self-manages the mapping relationships and processes host memory requests independently, reducing the need for complex external control logic.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10241951B1Device full memory access through standard PCI express bus
Publication Date: 2019.03.26 AMAZON TECH INC
  • US10241951B1 patent drawing
  • US10241951B1 patent drawing
  • US10241951B1 patent drawing

AI summary

A method of transferring data between a host and a PCI device is disclosed. The method comprises mapping a fixed memory-mapping control block in a host memory of the host to a control register of a memory-mapping unit of the PCI device; mapping a dynamic data-access memory block in the host memory to a default memory block in a memory of the PCI device, wherein the memory-mapping unit translates an address between the dynamic data-access memory block and a memory block in the memory of the PCI device; and dynamically modifying a value in the control register of the memory-mapping unit through the fixed memory-mapping control block such that an address of the dynamic data-access memory block in the host memory is translated to a different address in the memory of the PCI device based on the modified value in the control register of the memory-mapping unit.