Self-Indexing Memory Card Firmware for Host Speed

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Removable storage devices require external host computing devices to perform indexing, leading to user experience slowdowns due to the time-consuming process of identifying files and directories, especially when multiple directories are accessed.

Innovation Solution

The removable storage device is equipped with a controller that monitors changes and maintains an index using a delta structure with a tree data structure and dirty bits, allowing it to perform self-indexing and provide a partial index to the host system, reducing the need for extensive indexing by the host device.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If the host computing device performs indexing on the removable storage device, then files and directories can be identified, but user interface slowdowns occur due to the time-consuming indexing process

Engineering Contradiction:
Improvefile identification accuracyVSAvoidindexing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The removable storage device performs indexing operations in advance while disconnected from the host, maintaining an up-to-date index in its buffer memory. When connected to the host, the pre-indexed data is immediately available, eliminating the need for time-consuming indexing operations during host connection and thus preventing user interface slowdowns

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The removable storage device autonomously performs indexing operations using its own controller and buffer memory without requiring the host computing device to perform indexing. The device self-maintains its file system index, making it independent of the host's processing capabilities and reducing the host's workload

Inventive Principle:
Principle #25Self-service

2Speed

If the removable storage device maintains an index in buffer memory, then indexing speed improves, but buffer memory capacity is limited

Engineering Contradiction:
Improveindexing speedVSAvoidbuffer memory capacity
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The index is segmented into two parts: a frequently accessed portion maintained in the buffer memory for fast access during host connection, and a complete index stored on the removable storage media. This segmentation allows the limited buffer memory to hold only the critical index data needed for immediate host operations, while the full index resides on the media for completeness

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system maintains a partial index in the buffer memory that covers the most recently accessed or frequently used files, rather than attempting to hold the complete index of all files on the removable storage. This partial indexing approach provides sufficient functionality for typical user operations while working within the buffer memory capacity constraints

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11188511B2Offloading file-indexing to memory card firmware
Publication Date: 2021.11.30 SANDISK TECHNOLOGIES LLC
  • US11188511B2 patent drawing
  • US11188511B2 patent drawing
  • US11188511B2 patent drawing

AI summary

Systems and methods are disclosed for a self-indexing removable storage device. In certain embodiments, the removable storage device is configured to be connected to a memory reader of a host device. The removable storage device comprises storage media, a controller configured to run firmware, and a buffer. The controller is configured to, while connected to a first host device, receive a write operation from the first host device, monitor changes to the storage media caused by the write operation, and update a file index stored on the removable storage device with the monitored changes. The controller is further configured to, in response to connecting the removable storage device to a memory reader of a second host device, provide the file index to an application on the second host device, and cause the application to display files on the storage media based on the file index.