Stateful Verifier for Program Safety in Computational Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computational storage devices face security challenges when executing programs, as existing verification methods may not adequately ensure program safety, especially when configuration data is not available at program load time.

Innovation Solution

A stateful verifier is implemented to perform multiple checks of program code, including initial checks at program load and subsequent checks at execution time, using metadata and configuration data to verify program safety without negatively impacting acceleration performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple verification checks are performed on program code, then program safety and reliability are improved, but verification time and processing delay increase

Engineering Contradiction:
Improveprogram safetyVSAvoidverification time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary verification checks at program load time to establish a baseline safety assessment before execution begins. This allows critical security checks to be completed in advance, reducing the burden during actual program execution and minimizing time loss during operation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The verification process is divided into multiple discrete checks (first check, second check, third check) that can be performed at different stages - during program loading, at execution time, and upon completion. This segmentation allows the system to perform safety verification without blocking the entire execution timeline.

Inventive Principle:
Principle #1Segmentation

2Reliability

If verification checks are performed at program load time, then program safety is verified early, but configuration data availability may be insufficient for complete verification

Engineering Contradiction:
Improveprogram safety verificationVSAvoidconfiguration data availability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The verification system dynamically adapts its checking behavior based on configuration data availability. When configuration data is unavailable at load time, the system performs what checks are possible and defers remaining checks to execution time when configuration data becomes available. This dynamic approach ensures comprehensive verification while adapting to data availability constraints.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system performs preliminary verification checks at program load time to establish a baseline safety assessment before execution begins. This allows critical security checks to be completed in advance, reducing the burden during actual program execution and minimizing time loss during operation.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If multiple verification checks are performed at execution time, then program safety is thoroughly verified, but acceleration performance may be negatively impacted

Engineering Contradiction:
Improveprogram safety verificationVSAvoidacceleration performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The verification process is divided into multiple discrete checks (first check, second check, third check) that can be performed at different stages - during program loading, at execution time, and upon completion. This segmentation allows the system to perform safety verification without blocking the entire execution timeline.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system uses feedback from previous verification checks to optimize subsequent checking. By storing metadata about configuration data availability and check results, the system can intelligently determine which checks are necessary and when to perform them, avoiding redundant verification that would impact performance.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS12236250B2Systems and methods for verifying program states
Publication Date: 2025.02.25 SAMSUNG ELECTRONICS CO LTD
  • US12236250B2 patent drawing
  • US12236250B2 patent drawing
  • US12236250B2 patent drawing

AI summary

Systems and methods for checking program code are disclosed. The method includes executing a first check of the program code, and making a first determination about the first check. Metadata is stored based on making the first determination. A second check of the program code is run based on the metadata, and a result of the second check is stored in memory. The program code is executed based on the second check. In some embodiments, the method for checking program code includes running a simulation of a check of the program code by a processing device; storing a result of the simulation in memory; executing the check of the program code outside of the simulation; making a determination about the check outside of the simulation; retrieving a result stored in the memory based on the determination; and executing the program code based on the check.