Shared Flash Memory for Multi-Controller Firmware Loading

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional electronic devices with multiple controllers require separate flash memories for each, leading to increased space and hardware costs as the number of controllers and memories grows.

Innovation Solution

An electronic device design where a single flash memory stores program codes for multiple controllers, with a transmission interface allowing one controller to validate and load the program codes onto the other controllers, eliminating the need for additional flash memories.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If each controller is equipped with a separate flash memory, then the reliability and independence of each controller is improved, but the occupied space and hardware cost increase

Engineering Contradiction:
Improvecontroller independenceVSAvoidoccupied space
Core Design Contradiction:
ReliabilityVSArea of stationary object

Solution Approach 1:

The patent merges multiple separate flash memories into a single shared flash memory that stores program codes for multiple controllers. The first controller loads program codes for both itself and the second controller from this common flash memory, eliminating the need for separate flash memories and reducing occupied space while maintaining controller functionality.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The flash memory is designed with multi-functionality to serve multiple controllers. It stores different program codes (first program code for the first controller, second program code for the second controller) and can be accessed by different controllers as needed, making a single component perform the function of multiple separate components.

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

2Reliability

If each controller is equipped with a separate flash memory, then the reliability and independence of each controller is improved, but the hardware cost increases

Engineering Contradiction:
Improvecontroller independenceVSAvoidhardware cost
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The patent merges multiple separate flash memories into a single shared flash memory that stores program codes for multiple controllers. The first controller loads program codes for both itself and the second controller from this common flash memory, eliminating the need for separate flash memories and reducing occupied space while maintaining controller functionality.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The flash memory is designed with multi-functionality to serve multiple controllers. It stores different program codes (first program code for the first controller, second program code for the second controller) and can be accessed by different controllers as needed, making a single component perform the function of multiple separate components.

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

3Area of stationary object

If a common flash memory is used for multiple controllers, then the occupied space and hardware cost are reduced, but the complexity of program code management increases

Engineering Contradiction:
Improveoccupied spaceVSAvoidprogram code management
Core Design Contradiction:
Area of stationary objectVSDevice complexity

Solution Approach 1:

The first controller performs preliminary actions by first executing its own program code, then checking whether the second controller needs program code loading. It validates the second program code before loading it to the second controller, ensuring proper sequence and preventing errors in the shared memory environment.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms where the first controller checks whether the second program code is valid before loading it, and the second controller checks whether it has received the program code. This feedback ensures reliable program code management in the shared memory environment.

Inventive Principle:
Principle #23Feedback

4Ease of manufacture

If a common flash memory is used for multiple controllers, then the hardware cost is reduced, but the risk of program code validation errors increases

Engineering Contradiction:
Improvehardware costVSAvoidprogram code validity
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The first controller performs preliminary actions by first executing its own program code, then checking whether the second controller needs program code loading. It validates the second program code before loading it to the second controller, ensuring proper sequence and preventing errors in the shared memory environment.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms where the first controller checks whether the second program code is valid before loading it, and the second controller checks whether it has received the program code. This feedback ensures reliable program code management in the shared memory environment.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9880538B2Electronic device and method for loading program code thereof
Publication Date: 2018.01.30 ASMEDIA TECHNOLOGY INC
  • US9880538B2 patent drawing
  • US9880538B2 patent drawing
  • US9880538B2 patent drawing

AI summary

An electronic device and a method for loading a program code thereof are disclosed herein. The electronic device includes a first controller, a second controller, a flash memory and a transmission interface. The flash memory is electrically connected to the first controller and stores a first program code corresponding to the first controller and a second program code corresponding to the second controller. The transmission interface is electrically connected between the first controller and the second controller. The first controller establishes a connection with the second controller via the transmission interface, and checks whether the second program code is valid. When the second program code is valid, the first controller loads the second program code to the second controller, so as to make the second controller execute the second program code.