Multi-Mode Processor for Secure Smart Card Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveability to execute multiple programs with separate privilegesVSAvoidexecution mode structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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

Engineering Contradiction:
Improveprogramming flexibilityVSAvoidmemory capacity
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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.

Inventive Principle:
Principle #16Partial or excessive action

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

Engineering Contradiction:
Improvesecure execution capabilityVSAvoidinstruction fetch mechanism
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8943486B2Multiple instruction execution mode resource-constrained device
Publication Date: 2015.01.27 ORACLE AMERICAN INC
  • US8943486B2 patent drawing
  • US8943486B2 patent drawing
  • US8943486B2 patent drawing

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.