Emulation Memory Profiler for Sparse Sizing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory emulation systems face challenges in efficiently determining the sparse memory size required for effective emulation, as they often rely on estimating memory usage without precise tracking of page usage by test sequences.
Innovation Solution
A method utilizing a profiler memory that tracks page usage by test sequences during emulation, allowing for the determination of unique pages used and the calculation of sparse memory size based on these findings.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If estimation methods are used to determine sparse memory size, then device complexity is reduced, but measurement precision deteriorates
Solution Approach 1:
The patent creates a profiler memory that is a copy of the user memory structure, used to track and measure actual page usage patterns. This copying approach enables precise measurement of memory usage without requiring complex analysis of the original memory access patterns, resolving the contradiction between simplicity and measurement accuracy.
Solution Approach 2:
The profiler memory acts as an intermediary between the user memory and the memory sizing determination process. It mediates by capturing actual usage data through a simplified tracking mechanism, providing accurate measurement information without directly analyzing the complex user memory access patterns.
2Reliability
If larger memory types are used, then reliability is improved, but speed deteriorates
Solution Approach 1:
The patent changes the parameter of memory size selection based on actual usage measurements. By determining the exact sparse memory size needed from profiler data, the system can select appropriately sized memory types that optimize both speed and reliability, avoiding the use of unnecessarily large slow memory types.
Solution Approach 2:
Instead of allocating the full user memory size, the system uses partial allocation by identifying only the pages actually used during emulation. This partial action approach allows the use of faster, smaller memory types that are sufficient for the actual workload, rather than relying on larger slower memory types.
3Speed
If sparse memory is optimized, then speed is improved, but device complexity increases
Solution Approach 1:
The system performs preliminary action by running the profiler memory first to gather usage statistics before the actual emulation. This preliminary measurement phase provides the information needed to optimize sparse memory configuration for subsequent emulation runs, achieving speed improvements without adding complexity to the main emulation process.
Solution Approach 2:
The patent segments the memory management process into two distinct phases: a profiling phase that collects usage data, and an emulation phase that uses the collected data to optimize memory configuration. This segmentation allows speed optimization through sparse memory while keeping the overall system complexity manageable by separating the complex measurement task from the emulation task.
Data Source
AI summary
A method for determining a sparse memory size during emulation, the method including: determining, by a profiler memory coupled to a user memory, that one or more pages of the user memory are used by a first test sequence of a testbench during the emulation; identifying, by the profiler memory, a first set of indexes of the one or more pages of the user memory used by the first test sequence; determining a number of unique pages of the user memory that are used by the first test sequence for the emulation based on the first set of indexes; determining, by a processor, the sparse memory size for the user memory based on the number of unique pages of the user memory that are used by the testbench for the emulation and a page size of the user memory.


