Java Card Memory Management with Non-Volatile Array Pointers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory management techniques in Java Card platforms for integrated circuit cards, such as UICCs, are inefficient due to slow allocation and deallocation of RAM resources, leading to depletion of volatile memory and inefficient use of non-volatile memory for array management.
Innovation Solution
A method for managing memory in integrated circuit cards using a Java Card platform that involves creating array pointers in non-volatile memory with logical addresses, assigning RAM memory only to transient arrays with non-zero values, and using an indirection table in RAM to optimize memory allocation and deallocation, ensuring efficient use of RAM resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional memory management techniques are used in Java Card platforms, then application code can be executed, but RAM resources are depleted quickly due to slow allocation and deallocation
Solution Approach 1:
The patent applies preliminary action by pre-creating array pointers in non-volatile memory with logical addresses before actual memory allocation is needed. The indirection table is pre-established in RAM, allowing rapid mapping from logical to physical addresses without repeated allocation operations, thus resolving the contradiction between memory management efficiency and allocation time.
Solution Approach 2:
The patent introduces an indirection table as an intermediary mechanism between logical array pointers and physical RAM addresses. This intermediary structure enables efficient memory mapping by storing pre-computed address translations, eliminating the need for slow real-time allocation decisions and reducing both time loss and improving reliability.
2Productivity
If array pointers are created in non-volatile memory with logical addresses, then memory allocation is optimized, but additional memory structures are required
Solution Approach 1:
The patent applies segmentation by dividing the memory management system into distinct components: non-volatile memory for storing array pointers and logical addresses, volatile RAM for the indirection table and actual data, and a mapping mechanism between them. This segmentation allows each component to serve its specific function efficiently while improving overall allocation speed despite the added structural complexity.
Solution Approach 2:
The patent introduces another dimension to memory management by adding a logical address layer between physical RAM addresses and application-level array references. This dimensional addition (logical addresses in non-volatile memory mapping to physical addresses in RAM) enables faster allocation by operating at multiple abstraction levels simultaneously.
3Quantity of substance
If RAM memory is assigned only to transient arrays with non-zero values, then memory efficiency is improved, but deallocation operations become more complex
Solution Approach 1:
The patent implements feedback mechanisms through the indirection table that tracks which logical array pointers have been allocated to physical RAM addresses. This feedback structure enables efficient deallocation by simply updating the indirection table to mark allocated regions as free, without requiring complex scanning or manipulation operations, thus improving memory usage efficiency while keeping deallocation manageable.
Data Source
AI summary
A method of managing memory in an integrated circuit card comprising a non-volatile memory portion and a RAM memory portion, the method comprising creating in a non-volatile memory heap one or more array pointers, corresponding to one or more transient arrays to be allocated, each array pointer comprising a transient array size and a transient array address, wherein the creating comprises creating one or more array pointers comprising as transient array address a logical address of the area of the RAM memory portion in which the respective transient array is to be allocated, and assigning then in the RAM memory area memory only to transient arrays, corresponding to the respective one or more array pointers, which comprise at least a value different from zero.


