DMA Controller Virtual Address Processing for Memory Space Preservation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional methods for programming a DMA controller in user mode reduce the addressable memory space by half due to the requirement of setting the most significant bit to 1 for implicit addressing, which is detrimental for systems with limited addressable memory.

Innovation Solution

A method and system that divide a virtual address into bit fields with specific prefixes, allowing the DMA controller to be programmed using multiple store instructions, ensuring the MMU checks access rights without reducing the addressable memory space, by using an address processing block with a state machine that detects and processes these prefixes to fill the DMA registers efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If the most significant bit is set to 1 for implicit addressing in user mode DMA programming, then the DMA controller can be programmed without OS intervention, but the addressable memory space is reduced by half

Engineering Contradiction:
ImproveDMA controller programming in user modeVSAvoidaddressable memory space
Core Design Contradiction:
Ease of operationVSArea of stationary object

Solution Approach 1:

The virtual address is divided into multiple bit fields (first bit field, second bit field, etc.), each associated with a specific prefix value. This segmentation allows the address space to be organized into distinct regions that can be independently processed, enabling DMA programming without requiring the MSB to be set to 1, thus preserving full addressable memory space while maintaining user-mode operability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An address processing block is introduced as an intermediary component between the CPU and the DMA controller. This block includes a state machine that detects prefix values in virtual addresses and routes them appropriately. The intermediary handles the address translation and routing logic, allowing user-mode programs to program the DMA controller without directly manipulating physical addresses or sacrificing address space.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If virtual addresses are translated to physical addresses through MMU, then access rights can be checked, but the programming process becomes more complex requiring multiple store instructions

Engineering Contradiction:
Improveaccess rights checkingVSAvoidprogramming process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The address processing block with its state machine automatically performs the address translation and rights checking functions. The state machine detects the prefix values in the virtual addresses and autonomously routes them through the appropriate translation paths. This self-service mechanism eliminates the need for complex manual programming sequences while ensuring that access rights are verified through the MMU's automatic translation process.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS7337300B2Procedure for processing a virtual address for programming a DMA controller and associated system on a chip
Publication Date: 2008.02.26 STMICROELECTRONICS FRANCE
  • US7337300B2 patent drawing
  • US7337300B2 patent drawing
  • US7337300B2 patent drawing

AI summary

A method is provided for processing a virtual address for a program requesting a DMA transfer. The program is designed to be run in user mode on a system on a chip that includes a central processing unit, a memory management unit, and a DMA controller. The virtual address is a source virtual address or a destination virtual address and has a size of N bits. According to the method, the virtual address is divided into at least two fields of bits. For each of the fields, there is created an N-bit address word comprising a prefix having a given value associated with the field and having more than 1 bit, and the field. The DMA controller is programmed using multiple store instructions that include one store instruction relating to each of the address words created.