External Device Memory Access via DMA Controller Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for external devices like FPGA to access computer memory are limited by CPU resource consumption and restricted memory allocation, leading to small accessible memory spaces and slow data transfer, especially in Linux systems where DMA methods are limited.

Innovation Solution

A method involving external devices applying for a memory space, establishing a memory mapping using sequential or chain storage structures, and generating burst commands to access computer memory directly, allowing efficient read-and-write operations without CPU intervention.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If CPU directly accesses memory through peripheral interfaces, then memory access is possible, but CPU resources are greatly consumed and load increases

Engineering Contradiction:
Improvememory access capabilityVSAvoidCPU resource consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent introduces a DMA controller as an intermediary device between the external device and computer memory. The DMA controller handles memory access operations independently, allowing the external device to access memory without direct CPU intervention. The CPU only needs to initialize the DMA controller and set up buffer addresses, after which the DMA controller autonomously manages data transfer, thus resolving the contradiction between memory access capability and CPU resource consumption.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Extent of automation

If DMA method is used in Linux system, then memory access automation is improved, but memory allocation is limited to continuous space only

Engineering Contradiction:
Improvememory access automationVSAvoidmemory allocation flexibility
Core Design Contradiction:
Extent of automationVSAdaptability or versatility

Solution Approach 1:

The patent segments the memory allocation process by introducing a memory management module that divides memory access into multiple buffer regions. Instead of requiring a single continuous memory block, the system can allocate multiple smaller memory blocks and manage them as a unified address space. The memory management module maintains mapping relationships between the external device's address space and the actual physical memory blocks, enabling automated DMA access to fragmented memory regions while maintaining the illusion of continuous memory space to the external device.

Inventive Principle:
Principle #1Segmentation

3Ease of operation

If memory is mapped to computer address space, then external device can access memory, but access delay increases

Engineering Contradiction:
Improvememory accessibilityVSAvoidaccess delay
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent implements preliminary action by pre-configuring the DMA controller with buffer addresses and transfer parameters before actual data transfer occurs. The system performs address mapping and DMA register setup in advance, so that when the external device needs to access memory, the DMA controller is already ready to execute the transfer operation immediately. This pre-preparation eliminates runtime address translation and control overhead, significantly reducing access delay while maintaining ease of operation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12169647B2Method for external devices accessing computer memory
Publication Date: 2024.12.17 SHENZHEN GOUWEIXIN TECH CO LTD
  • US12169647B2 patent drawing
  • US12169647B2 patent drawing
  • US12169647B2 patent drawing

AI summary

The present invention discloses a method for external devices accessing computer memory, which includes: the external device applying to a computer for a memory space with a certain size, and receiving multiple memory blocks fed back by the computer; the external device establishing a memory mapping relation between the external device and the computer by means of a sequential storage structure or a chain storage structure; and when initiating a read-and-write operation, the external device finding the corresponding offset address in said computer according to the memory mapping relation between the external device and the computer, generating a read-and-write burst command, and actualizing read-and-write operations in the computer memory. The present invention can achieve the rapid and continuous access to multiple discontinuous memory areas of the computer memory, and improve the speed in the computer's operating system and external devices accessing the memory.