Virtual Memory Controller for Seamless OTA Update Switching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems face challenges in efficiently managing over-the-air updates and recovery from update errors for application software stored in non-volatile memory, particularly in maintaining system integrity and ensuring seamless execution without data loss.

Innovation Solution

A system that stores multiple application images in non-volatile memory with offset data and an active image identifier, using a virtual memory controller to modify addresses based on active image offsets, allowing for seamless switching between images during updates and maintaining system stability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If two copies of application software are stored in non-volatile memory for over-the-air updates and error recovery, then system reliability is improved, but memory space consumption increases

Engineering Contradiction:
Improvesystem reliabilityVSAvoidmemory space consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent implements a universal address space design where both application image copies (first and second images) are mapped to the same virtual address range. The virtual memory controller dynamically redirects address translations based on an active image identifier, allowing the system to switch between images without requiring separate address spaces. This multi-functional approach enables single address space to serve multiple image storage purposes, improving reliability through redundancy while optimizing memory utilization.

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

2Speed

If application software is executed in place from non-volatile memory during system initialization, then memory access speed is improved, but system adaptability for updates deteriorates

Engineering Contradiction:
Improvememory access speedVSAvoidsystem adaptability for updates
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The patent performs preliminary actions by pre-configuring the virtual memory controller with offset values and establishing the active image identifier before execution begins. During system initialization, the correct image is already positioned in the address space with proper offset translations configured, enabling immediate execute-in-place operation without runtime copying. This preliminary setup maintains fast access speed while preserving adaptability, as the virtual memory controller can subsequently switch between pre-positioned images during updates.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If virtual addressing with offset modification is implemented to enable image switching, then system flexibility for updates is improved, but address translation complexity increases

Engineering Contradiction:
Improvesystem flexibility for updatesVSAvoidaddress translation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a virtual memory controller as an intermediary component between the processor and non-volatile memory. This controller handles all address translation operations by modifying virtual addresses with stored offsets and redirecting accesses based on the active image identifier. The intermediary absorbs the complexity of address translation, keeping the processor architecture simple while enabling flexible image switching and updates through centralized control in the virtual memory controller.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11928057B2System and method for using virtual addressing to execute application images
Publication Date: 2024.03.12 INFINEON TECHNOLOGIES AMERICAS CORP
  • US11928057B2 patent drawing
  • US11928057B2 patent drawing
  • US11928057B2 patent drawing

AI summary

One or more computing devices, systems, and/or methods are provided. In an example, a method comprises storing a first application image and a second application image in an application image memory, designating the first application image as active, receiving a first address for accessing the application image memory from a processor, modifying the first address based on a first offset between a base starting address of the first application image and a starting physical address of the first application image in the application image memory to generate a second address, and accessing the application image memory using the second address.