Tracing Data Storage in Non-Contiguous Memory Slices

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing tracing technologies in software development are limited by the need for large contiguous blocks of system memory, which are often not available, leading to restricted tracing data capacity and potential interference with the normal operation of the software being traced due to virtual-to-physical address translation and caching.

Innovation Solution

The approach involves storing tracing data across multiple thinner slices of contiguous address space within system memory, utilizing a linked list of directory tables to manage memory slices and avoid translation and caching, allowing for a larger total storage capacity and minimal impact on the software's execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If tracing data is stored in a large contiguous block of system memory, then the tracing data capacity is sufficient, but such large contiguous blocks are often not available and interfere with normal software operation

Engineering Contradiction:
Improvetracing data capacityVSAvoidmemory availability for normal operation
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The patent divides the tracing data storage into multiple smaller memory slices instead of requiring one large contiguous block. Each slice is managed independently with directory tables tracking its status. This segmentation allows the system to utilize scattered memory regions that would otherwise be unavailable, increasing total tracing capacity without interfering with normal software operations that require contiguous memory.

Inventive Principle:
Principle #1Segmentation

2Ease of operation

If virtual-to-physical address translation and caching are used for tracing data, then memory management is simplified, but it interferes with the normal operation of the software being traced

Engineering Contradiction:
Improvememory management simplicityVSAvoidsoftware execution accuracy
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent extracts tracing data from the normal virtual memory management system by allocating dedicated physical memory slices for tracing purposes. This separation removes tracing data from the virtual-to-physical address translation and caching mechanisms, eliminating interference with software execution while maintaining simple memory management through dedicated directory tables that track slice status without requiring complex address translation.

Inventive Principle:
Principle #2Taking out (Extraction)

3Quantity of substance

If multiple thinner slices of memory are used for tracing data, then more tracing data can be stored and normal operation is maintained, but the system complexity increases due to directory tables and slice management

Engineering Contradiction:
Improvetracing data capacityVSAvoidmemory management structure
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent employs segmentation to divide tracing storage into multiple slices, each with its own directory table entry. While this increases the number of components, each slice and its management structure is simple and uniform, allowing for efficient utilization of scattered memory regions. The segmentation enables the system to achieve high tracing capacity by aggregating many small slices without requiring complex inter-slice dependencies.

Inventive Principle:
Principle #1Segmentation

4Device complexity

If a single large contiguous block of memory is allocated for tracing, then the memory structure is simple, but it restricts the total storage capacity due to availability constraints

Engineering Contradiction:
Improvememory structure simplicityVSAvoidtracing data capacity
Core Design Contradiction:
Device complexityVSQuantity of substance

Solution Approach 1:

The patent segments tracing storage into multiple smaller slices distributed throughout system memory, allowing the system to aggregate capacity from many small available regions rather than requiring one large contiguous block. This segmentation strategy dramatically increases total tracing data capacity while maintaining relatively simple management through uniform directory table structures that track each slice's status independently.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9189360B2Processor that records tracing data in non contiguous system memory slices
Publication Date: 2015.11.17 INTEL CORP
  • US9189360B2 patent drawing
  • US9189360B2 patent drawing
  • US9189360B2 patent drawing

AI summary

A method is described that involves referring to first information from a directory table in system memory. The first information includes location information and size information of a first slice of system memory where first tracing data is to be stored. The method also includes tracking the amount of tracing data stored in the first slice of system memory and comparing the amount against the size information. The method also includes, before the first slice of system memory is filled, referring to second information from the directory table in system memory, where, the second information includes location information and size information of a second slice of system memory where second tracing data is to be stored. The first slice is not contiguous with the second slice of system memory.