Tracing Data Storage in Non-Contiguous Memory Slices
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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
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.
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
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.
Data Source
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.


