Memory Management Unit Context Block Binding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional systems face challenges in efficiently managing access to shared resources, particularly in memory systems, where errors or faults during virtual to physical memory space translation can disrupt operation and accuracy, and coordinating access among multiple engines is complex and resource-intensive.

Innovation Solution

A shared memory management system with a memory management unit that independently controls access to context memory, allowing multiple engines to access shared resources while handling faults by issuing NACKs to affected engines and permitting others to continue accessing, and includes a pointer to a page table for efficient translation and context management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional shared resource access coordination is used, then multiple engines can access memory, but access coordination becomes highly complex and resource intensive

Engineering Contradiction:
Improvememory access coordinationVSAvoidaccess coordination complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

A memory management unit (MMU) is introduced as an intermediary component between multiple engines and the memory system. The MMU independently controls access to context memory blocks, managing binding operations and fault handling without interference from other engine activities, thereby simplifying the coordination complexity while maintaining multi-engine adaptability

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If virtual to physical memory translation is performed, then memory addressing flexibility is improved, but faults can occur when translation maps or physical pages are not resident

Engineering Contradiction:
Improvememory addressing flexibilityVSAvoidtranslation fault occurrence
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system prepares for potential translation faults by implementing a fault tolerance mechanism where the MMU can identify when a fault occurs during virtual to physical translation and issue a NACK to the affected engine. This allows the system to cushion against translation failures and maintain operation continuity

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Solution Approach 2:

The MMU implements a feedback mechanism where it monitors translation operations and provides real-time status information to engines. When a translation fault is detected, the MMU sends a NACK signal to the affected engine, enabling the engine to respond appropriately while other engines continue their operations independently

Inventive Principle:
Principle #23Feedback

3Reliability

If one engine encounters a fault during memory access, then that engine must handle the fault, but other engines are preempted from accessing memory

Engineering Contradiction:
Improvefault handling accuracyVSAvoidmemory access efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The memory access control is segmented by engine, allowing the MMU to independently manage access rights and fault handling for each engine. When one engine encounters a fault, the MMU issues a NACK only to that specific engine while permitting other engines to continue their memory access operations without pre-emptive NACKs, thereby maintaining both fault handling accuracy and overall system productivity

Inventive Principle:
Principle #1Segmentation

4Productivity

If context memory blocks are shared among engines, then resource utilization is improved, but access coordination becomes resource intensive

Engineering Contradiction:
Improveresource utilizationVSAvoidcoordination resource consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The MMU is designed to independently control and manage context memory block bindings without requiring intervention or coordination from other engine activities. Each engine can initiate block bind operations by indicating an association between their engine ID and a given block of instance memory, and the MMU autonomously manages these bindings, reducing coordination resource consumption while maintaining improved resource utilization

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8706975B1Memory access management block bind system and method
Publication Date: 2014.04.22 NVIDIA CORP
  • US8706975B1 patent drawing
  • US8706975B1 patent drawing
  • US8706975B1 patent drawing

AI summary

A shared memory management system and method are described. In one embodiment, a memory management system includes a memory management unit for coordinating context memory storage block binds and independently controlling access to the context memory without interference from other engine activities. In one exemplary implementation the context information is included in a block and the memory management unit binds the block to instance memory. The instance memory can be protected memory. The instance memory can also support multiple channels associated with the plurality of engines. In one exemplary implementation, the instance memory includes a pointer to a page table. The instance memory can also include context save and restore data and each one of the plurality of engines initiates a unique block bind by indicating an association between their engine ID and a given block of instance memory.