Non-Volatile Memory Controller Security Extension via Dynamic Firmware Loading

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data storage devices face challenges in achieving high security levels, especially when using flash memory with limited DRAM capacity, where the execution of security firmware code is hindered by insufficient storage space for logical-to-physical mapping information and security firmware code, and varying hardware specifications require compatibility across different devices.

Innovation Solution

A data storage device architecture that includes a memory controller operating non-volatile memory by loading an in-system program with base firmware code, security firmware code, and a function pointer structure, allowing the base firmware code to call security functions through an API, enabling operation at a higher security level and compatibility across different projects, even with limited DRAM capacity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If security firmware code is executed in data storage devices with limited DRAM capacity, then security level is improved, but storage space for logical-to-physical mapping information and security firmware code becomes insufficient

Engineering Contradiction:
Improvesecurity levelVSAvoidstorage space
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The firmware is segmented into base firmware code and security firmware code, which are loaded separately into the data register. This segmentation allows the system to load only the necessary security firmware code when security operations are needed, rather than requiring all firmware to reside in limited DRAM capacity, thus resolving the storage space constraint while maintaining security functionality.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically loads security firmware code from non-volatile memory to the data register when security operations are required, and releases the space afterward. This dynamic loading and releasing mechanism allows the limited DRAM capacity to be flexibly utilized, providing high security level functionality only when needed without permanently consuming storage space.

Inventive Principle:
Principle #15Dynamics

2Reliability

If security firmware code is loaded into data register, then security operations can be executed, but DRAM space is occupied and needs to be released afterward

Engineering Contradiction:
Improvesecurity operation capabilityVSAvoidDRAM space availability
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The security firmware code is loaded into the data register periodically or on-demand when security operations are required, rather than being permanently resident. After the security operation completes, the code is released from the data register. This periodic loading and releasing pattern allows the system to maintain security operation capability when needed while preserving DRAM space availability for other operations.

Inventive Principle:
Principle #19Periodic action

3Adaptability or versatility

If base firmware code calls security functions through function pointer structure, then compatibility across multiple projects is improved, but device complexity increases

Engineering Contradiction:
ImprovecompatibilityVSAvoidfirmware structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The function pointer structure serves as a universal interface that allows the base firmware code to call security functions without needing to know the specific implementation details. This universal calling mechanism enables the same base firmware to work across multiple projects and hardware configurations, improving compatibility while the underlying complexity is abstracted away through this standardized interface.

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

Data Source

PatentUS11204700B2Data storage device and non-volatile memory control method, with security extension
Publication Date: 2021.12.21 SILICON MOTION INC
  • US11204700B2 patent drawing
  • US11204700B2 patent drawing
  • US11204700B2 patent drawing

AI summary

A security extension design for non-volatile memory is shown. There is an in-system program loaded into the non-volatile memory. A memory controller downloads the in-system program to a data register to provide base firmware code, a function pointer structure and security firmware code on the data register. The memory controller executes the base firmware code, and security functions of the security firmware code are called by the base firmware code through information recorded in the function pointer structure and thereby the memory controller is switched to operate the non-volatile memory at a higher security level. The security firmware code uses an application programming interface (API) and is compatible with multiple projects.