Virtual Memory Block Management for Emulated Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional computer systems experience frequent instruction processor stalls due to operations like inter-processor timer interrupts, translation look-aside buffer flushes, and page faults, which hinder efficient memory access and productivity.

Innovation Solution

The method involves obtaining a block of virtual memory from a slab in a host environment, maintaining a mapping between virtual and physical memory, and detecting fill types to fill the block with zeros and patterns, thereby reducing stalls and improving memory management efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional memory management operations (translation look-aside buffer flushes, page faults) are performed, then memory access is enabled, but instruction processor stalls increase

Engineering Contradiction:
Improveinstruction processor throughputVSAvoidinstruction processor stall time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system pre-allocates virtual memory blocks from a slab and maintains mapping information between virtual and physical memory blocks in advance. When a page fault or memory access operation is needed, the pre-established mappings allow the instruction processor to continue execution without stalling, as the translation look-aside buffer does not need to be flushed and memory can be accessed immediately.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If virtual memory blocks are frequently allocated and deallocated, then memory flexibility is improved, but mapping maintenance overhead increases

Engineering Contradiction:
Improvevirtual memory allocation flexibilityVSAvoidmapping maintenance complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The mapping structure is designed to serve multiple functions: it tracks virtual to physical memory block mappings, stores fill type information, and enables efficient memory allocation and deallocation. This universal mapping mechanism handles various memory management operations (allocation, deallocation, filling) through a single unified approach, reducing the need for separate complex handling mechanisms.

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

Solution Approach 2:

When virtual memory blocks are deallocated and returned to the slab, the system maintains the mapping information rather than discarding it entirely. This allows for faster reallocation and reduces the overhead of creating new mappings, as the existing mapping framework can be reused and updated efficiently.

Inventive Principle:
Principle #34Discarding and recovering

3Reliability

If memory blocks are filled with patterns, then memory initialization is improved, but processing time increases

Engineering Contradiction:
Improvememory initialization correctnessVSAvoidmemory fill time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system detects the fill type of each virtual memory block and applies different filling strategies based on local requirements. Some blocks may be filled with zeros while others receive patterned data, depending on the specific needs of the emulated operating environment. This localized approach ensures correct initialization where needed while minimizing unnecessary processing time for blocks that don't require extensive filling.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9202592B2Systems and methods for memory management in a dynamic translation computer system
Publication Date: 2015.12.01 UNISYS CORP
  • US9202592B2 patent drawing
  • US9202592B2 patent drawing
  • US9202592B2 patent drawing

AI summary

Systems and methods for managing memory in a dynamic translation computer system are provided. Embodiments may include receiving an instruction packet and processing the instruction packet. The instruction packet may include one or more instructions for obtaining a block of virtual memory for use in an emulated operating environment from a slab of virtual memory in a host environment, maintaining a mapping between the block of virtual memory and physical memory when the block is returned to the host environment, and for filling the block of virtual memory with zeros and a pattern based, at least in part, on a detected fill type.