Java Card Volatile Memory Stack Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing Java Card devices face inefficiencies in managing volatile memory, leading to suboptimal use of this precious resource, which is crucial for improving device performance and reducing production costs.
Innovation Solution
A novel memory allocation scheme for Java Card devices, where the volatile memory is divided into portions allocated to OS and JCVM stacks, allowing shared use of memory spaces without a separating heap, optimizing the storage capacity of both stacks and reducing the need for additional memory allocation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If volatile memory is allocated separately for OS stack and JCVM stack with a heap in between, then memory management is simplified, but volatile memory usage is inefficient and storage capacity is reduced
Solution Approach 1:
The patent merges the OS stack and JCVM stack into a single shared memory region, eliminating the need for a separating heap structure. This allows both stacks to coexist and grow dynamically within the same memory space, maximizing volatile memory utilization while maintaining manageable complexity through structured memory allocation protocols.
Solution Approach 2:
The patent implements dynamic memory allocation where the boundary between OS stack and JCVM stack is not fixed but can adjust based on runtime requirements. This dynamic approach allows the memory manager to allocate more space to either stack as needed, optimizing memory usage patterns rather than relying on static pre-allocation.
2Quantity of substance
If more volatile memory is allocated to accommodate both stacks, then storage capacity increases, but device cost increases due to higher-cost RAM chips
Solution Approach 1:
By consolidating OS stack and JCVM stack into a single shared memory region, the patent eliminates wasted memory space that would exist between separately allocated stacks. This merging allows the device to achieve the required storage capacity using less total volatile memory, thereby reducing costs by enabling the use of lower-cost RAM chips.
Solution Approach 2:
The patent changes the memory allocation parameters from fixed separate allocations to dynamic shared allocation. This parameter change optimizes the total memory footprint required, allowing the system to achieve necessary storage capacity with reduced memory size and lower associated costs.
3Ease of operation
If a heap is used to separate OS stack and JCVM stack, then memory allocation is easier, but volatile memory utilization is suboptimal
Solution Approach 1:
The patent removes the heap separator and merges the previously separate memory regions into a unified shared space. This eliminates the wasted memory that would exist between separately allocated stacks, improving utilization while maintaining allocation ease through a simplified single-region management approach.
Data Source
Figure 1~2
Figure 3~4
Figure 5~8B
AI summary
Embodiments of the present invention provide a Java Card device (20) and a method for managing a volatile memory. The Java Card device (20) comprises a volatile memory (201), an OS (202), and a JCVM (203). The JCVM (203) comprises a JCVM thread (2031). The volatile memory (201) comprises a first portion (2011), a second portion (2012) within the first portion (2011), and a third portion (2013) outside the first portion (2011). The first portion (2011) is allocated to an OS stack (301) for supporting execution of native code defined in a language used for programming the OS (202). The second portion (2012) is allocated to a JCVM stack (302) for supporting the JCVM thread (2031). The third portion (2013) is allocated to a heap (303).