Multi-Mode Processor for Secure Smart Card Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Resource-constrained devices, such as smart cards, face challenges in executing multiple programs with separate privileges and performing runtime checks while adhering to memory zoning, due to limited architecture and memory capacity, which restricts the implementation of full Java virtual machine platforms.
Innovation Solution
A processor configured to execute multiple instruction streams with different execution modes, utilizing an instruction fetcher to fetch instructions based on the current mode, and transforming instruction streams by ordering and recoding program units to optimize frequent usage, with opcode coding including static and dynamic portions for accessing program unit reference tables.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a single execution mode is used in resource-constrained devices, then device complexity is reduced and memory usage is minimized, but the ability to execute multiple programs with separate privileges is lost
Solution Approach 1:
The instruction set is segmented into multiple instruction streams, each associated with a different execution mode (secure and non-secure). The processor fetches instructions from different streams based on the current execution mode, allowing multiple programs with separate privileges to execute simultaneously without requiring separate physical processors, thus improving adaptability while controlling complexity.
Solution Approach 2:
A single processor is designed to perform multiple functions by supporting both secure and non-secure execution modes within the same device. The processor can dynamically switch between execution modes and fetch from different instruction streams, making one device capable of handling multiple types of workloads with different security requirements, thereby improving versatility without proportionally increasing device complexity.
2Adaptability or versatility
If full Java virtual machine platform is implemented, then programming flexibility and functionality are improved, but memory capacity requirements exceed what resource-constrained devices can provide
Solution Approach 1:
The invention extracts and implements only the essential components of the Java virtual machine platform that are necessary for resource-constrained devices. By selectively including only critical functionality rather than implementing the full Java VM, the system achieves adequate programming flexibility while keeping memory requirements within the constraints of smart cards and similar devices.
Solution Approach 2:
Instead of implementing the complete Java virtual machine platform, the invention applies partial action by providing a subset of Java VM functionality that suffices for the intended applications. This partial implementation delivers sufficient programming flexibility for resource-constrained contexts without the excessive memory consumption of a full Java VM.
3Reliability
If multiple instruction streams with different execution modes are implemented, then secure execution of complex operations is enabled, but instruction fetch complexity and processing overhead increase
Solution Approach 1:
An instruction fetcher acts as an intermediary component that manages the complexity of fetching instructions from multiple streams. The fetcher receives the current execution mode as input and automatically selects the appropriate instruction stream, shielding the rest of the processor from the complexity of multi-stream management while enabling secure execution capabilities.
Solution Approach 2:
The instruction fetch mechanism is designed to automatically determine which instruction stream to fetch from based on the current execution mode without requiring external intervention or complex control logic. The system serves itself by using the execution mode state to directly control instruction stream selection, reducing processing overhead while maintaining security.
Data Source
AI summary
A resource-constrained device comprises a processor configured to execute multiple instruction streams comprising multiple instructions having an opcode and zero or more operands. Each of the multiple instruction streams is associated with one of multiple instruction execution modes having an instruction set comprising multiple instruction implementations. At least one of the multiple instruction implementations is configured to change the processor from a first instruction execution mode to a second instruction execution mode. The processor comprises an instruction fetcher configured to fetch an instruction from one of the multiple instruction streams based at least in part upon a current instruction execution mode.


