Write-Abort-Safe Firmware Update via Directory Indirection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory devices face challenges in performing write-abort-safe firmware updates due to limited functionality of ROM code and the separation of firmware storage blocks, making it difficult to manage firmware updates in a 'make-before-break' fashion, especially when firmware is stored redundantly.

Innovation Solution

The implementation of a memory device with two levels of indirection, where the boot block points to a directory that contains a pointer to the firmware, allowing for a simpler and atomic firmware update process by allocating a new location for the firmware update and writing a pointer to the directory in the boot block, ensuring operational integrity in case of a write abort.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If firmware is stored in physical blocks outside user space with ROM code having limited functionality, then the ROM code can locate and load the firmware, but it becomes difficult to perform write-abort-safe firmware updates in a make-before-break fashion

Engineering Contradiction:
Improvefirmware update safetyVSAvoidfirmware update process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a directory structure as an intermediary layer between the boot block and firmware data. The boot block contains a pointer to the directory, which in turn contains pointers to firmware locations. This intermediary directory structure enables atomic firmware updates by allowing the system to update firmware pointers without modifying the boot block itself, thus achieving write-abort-safe updates while maintaining simple ROM code functionality.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If firmware is stored redundantly for reliability, then the system can tolerate failures, but performing write-abort-safe updates becomes more difficult due to the need to manage multiple firmware copies

Engineering Contradiction:
Improvefirmware availabilityVSAvoidfirmware update operation
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent segments the firmware storage system into distinct components: boot blocks (containing directory pointers), directories (containing firmware location pointers), and firmware data blocks. This segmentation allows redundant firmware copies to be managed independently through the directory structure, where each firmware location is tracked separately. Updates can be performed on individual firmware copies without affecting the overall update process, simplifying the management of redundant firmware while maintaining reliability.

Inventive Principle:
Principle #1Segmentation

3Reliability

If a traditional firmware update approach is used without directory indirection, then the update process can be straightforward, but the system cannot ensure operational integrity in case of write aborts

Engineering Contradiction:
Improveoperational integrity during updateVSAvoidpointer management structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements preliminary action by pre-allocating directory structures and firmware location pointers before actual firmware updates occur. The boot block is pre-configured with a pointer to the directory structure, which is prepared in advance to hold firmware location information. During updates, only the directory pointers need to be modified, not the entire boot block, allowing atomic updates that maintain operational integrity while minimizing the complexity of pointer management.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8775758B2Memory device and method for performing a write-abort-safe firmware update
Publication Date: 2014.07.08 SANDISK TECHNOLOGIES LLC
  • US8775758B2 patent drawing
  • US8775758B2 patent drawing
  • US8775758B2 patent drawing

AI summary

A memory device and method for performing a write-abort-safe firmware update are disclosed. In one embodiment, a location in a memory of a memory device for a firmware update is allocated. The firmware update is written into the allocated location in the memory. A pointer is written to the firmware update in a directory, and a pointer is written to the directory in a location in the memory that is read during boot-up. In another embodiment, a block in a memory of a memory device is allocated for updated file system data comprising a firmware update and a directory. The updated file system data is written into the allocated location in the memory. A pointer is written to the firmware update in the directory, and a pointer is written to the updated file system data in a boot block in the memory, wherein the boot block is read during boot-up.