Memory Protection Data Co-Location with Bitmap Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory protection techniques in computing devices increase memory capacity and transaction bandwidth overhead, inefficiently using memory resources and complicating operating system management procedures.
Innovation Solution
Implementing a bitmap to indicate memory blocks storing application or protection data, allowing flexible and fragmented memory allocations, reducing memory consumption and simplifying transactions by co-locating protection data within memory blocks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If memory protection data (hash digest, ECC syndrome) is stored separately from application data, then data integrity and security are improved, but memory capacity overhead increases by up to 20%
Solution Approach 1:
The patent combines application data and protection data into the same memory page, with protection data stored in unused portions of the page structure. This merging eliminates the need for separate protection data storage regions, thereby reducing memory capacity overhead while maintaining data integrity through combined storage.
Solution Approach 2:
The patent nests protection data within the memory page structure itself, utilizing unused portions of the page to store hash digests and ECC syndrome data. This nesting approach allows protection data to be embedded within the existing memory allocation without requiring additional memory capacity.
2Reliability
If protection data is stored in separate memory regions, then data security is improved, but transaction bandwidth overhead increases due to additional memory accesses
Solution Approach 1:
By merging application data and protection data into the same memory page, the patent enables single memory access transactions to retrieve both data types simultaneously. This eliminates the need for separate memory accesses for protection data, thereby maintaining transaction bandwidth efficiency while preserving data security.
Solution Approach 2:
The patent uses the memory page structure as an intermediary that co-locates application data and protection data. This intermediary structure allows the memory controller to retrieve both data types in a single transaction, reducing the number of memory accesses required while maintaining security through structured data organization.
3Ease of operation
If traditional memory allocation methods are used for protection data, then memory management simplicity is maintained, but memory efficiency decreases due to fragmented allocations
Solution Approach 1:
The patent merges protection data into the same memory page allocations as application data, eliminating the need for separate protection data allocation procedures. This approach maintains memory management simplicity by using existing page-based allocation while improving memory efficiency through consolidated storage.
Solution Approach 2:
The patent makes memory pages universal containers that can hold both application data and protection data simultaneously. This multi-functionality allows a single memory allocation mechanism to serve dual purposes, improving memory efficiency without complicating the allocation process.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
The present disclosure describes techniques and apparatuses that are directed to using memory protection data (124, 126) within a computing device (102). Techniques include allocating regions (208, 210, 302, 304) of a memory (122) for storing application data (124) and protection data (126). Techniques also include creating a bitmap (130) having bit values corresponding to memory blocks within the allocated regions (208, 210, 302, 304). The one or more bit values can be indicative of whether application data (124) and/or protection data (126) are present in a memory block. The techniques and apparatuses can enable memory protection, such as memory security (e.g., encryption) and memory safety (e.g., error correction code (ECC) usage), to be efficiently used while permitting discontiguous memory allocations and without substantial operating system modification.