IP Library Granted Patent US 11,188,511
Granted Patent B2
US 11,188,511 · App. 16/431,667 · Granted Nov 30, 2021

Offloading file-indexing to memory card firmware

Inventors: Narendhiran Cr (Bangalore, IN); Muralitharan Jayaraman (Bangalore, IN); Sivaraj Velusamy (Bangalore, IN); Chandra Lakkimsetty (Bangalore, IN); Vithya Kannappan (Bangalore, IN); Balakumar Rajendran (Bangalore, IN)
Assignee: Western Digital Technologies, Inc.
G06F16/2272G06F16/1847G06F16/23G06F16/41
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,188,511
App. No.
16/431,667
Granted
Nov 30, 2021
Kind
B2
Abstract

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.

Claims (75)

1. A removable storage device configured to be connected to a memory reader of a host device, the removable storage device comprising:

buffer memory;

storage media configured to store one or more data files; and

a controller in the removable storage device, the controller configured to execute firmware of the removable storage device, the controller further configured to:

while the removable storage device is connected to a first host device:

receive a write operation from the first host device;

monitor changes to the storage media caused by performing the write operation;

update a file index stored on the buffer memory of the removable storage device with the monitored changes;

receive a second write operation from the first host device;

perform the second write operation on the storage media; and

in response to determining that the buffer memory available in the removable storage device is insufficient to update the file index with changes caused by the second write operation, identify at least one directory associated with the second write operation as not updated in the file index; and

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;

cause the application on the second host device to index data files in the at least one directory identified as not updated in the file index; and

cause the application to display data files stored on the storage media based on the file index.

2. The removable storage device of claim 1 , wherein the buffer memory comprises volatile memory.

3. The removable storage device of claim 2 , the controller further configured to:

track the monitored changes in a delta structure stored in the volatile memory of the removable storage device.

4. The removable storage device of claim 3 , wherein:

the delta structure comprises a tree data structure identifying directory nodes; and

each directory node comprises a dirty bit indicating whether the directory node is updated.

5. The removable storage device of claim 1 , wherein the memory reader comprises a universal serial bus (USB) interface.

6. The removable storage device of claim 1 , wherein the removable storage device is one of a Secure Digital (SD), miniSD, microSD, and nanoSD form factor.

7. The removable storage device of claim 1 , wherein connecting the removable storage device to the memory reader of the second host device comprises:

inserting the removable storage device into a memory slot of a smart phone,

wherein the smart phone is the second host device.

8. The removable storage device of claim 1 , wherein the application is configured to display data files of directories marked as updated without indexing the directories marked as updated.

9. The removable storage device of claim 1 , wherein:

the first host device and the second host device are the same device;

the removable storage device is disconnected from the first host device; and

connecting the removable storage device to the memory reader of the second host device comprises reconnecting the removable storage device to the first host device.

10. The removable storage device of claim 1 , wherein the removable storage device is not powered.

11. A method for providing an index from a removable storage device comprising storage media and a controller configured to execute firmware of the removable storage device, the method comprising:

connecting the removable storage device to a first host device;

receiving a write operation from the first host device;

monitoring, by the controller in the removable storage device, changes to the storage media of the removable storage device caused by performing the write operation;

updating, by the controller, a file index stored on the removable storage device with the monitored changes;

receiving a second write operation from the first host device;

performing the second write operation on the storage media;

in response to determining that there is insufficient volatile memory to update the file index with changes caused by performing the second write operation, identifying at least one directory associated with the second write operation as not updated in the file index;

disconnecting the removable storage device from the first host device;

connecting the removable storage device to a second host device;

providing the file index stored on the removable storage device to an application on the second host device;

causing the application on the second host device to index data files in the at least one directory identified as not updated in the file index; and

causing the application to display data files stored on the storage media based on the file index.

12. The method of claim 11 , wherein monitoring, by the controller, changes to the storage media comprises:

tracking the monitored changes in a delta structure stored in the volatile memory of the removable storage device.

13. The method of claim 12 , further comprising:

indicating, with a dirty bit in a directory node of the delta structure, whether a directory related to the write operation is updated.

14. The method of claim 11 , wherein the removable storage device is one of a Secure Digital (SD), miniSD, microSD, and nanoSD form factor.

15. The method of claim 11 , wherein connecting the removable storage device to the second host device comprises:

inserting the removable storage device into a memory slot of a smart phone,

wherein the smart phone is the second host device.

16. The method of claim 11 , wherein the application is configured to display data files of directories marked as updated without indexing the directories marked as updated.

17. The method of claim 11 , further comprising:

flushing the file index from the volatile memory of the removable storage device to the storage media.

18. A removable storage device configured to be connected to a memory reader of a host device, the removable storage device comprising:

storage means for storing one or more data files; and

means for executing firmware of the removable storage device, the means for executing firmware located in the removable storage device, the means for executing firmware further configured to:

while the removable storage device is connected to a first host device:

receive a write operation from the first host device;

monitor changes to the storage means caused by performing the write operation;

update a file index stored on the removable storage device with the monitored changes;

receive a second write operation from the first host device;

perform the second write operation on the storage means; and

in response to determining that there is insufficient volatile memory in the removable storage device to update the file index with changes caused by the second write operation, identify at least one directory associated with the second write operation as not updated in the file index; and

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;

cause the application on the second host device to index data files in the at least one directory identified as not updated in the file index; and

cause the application to display data files stored on the storage means based on the file index.

19. The removable storage device of claim 18 , the means for executing firmware further configured to:

track the monitored changes in a delta structure stored in the volatile memory of the removable storage device.

20. The removable storage device of claim 19 , wherein:

the delta structure comprises a tree data structure identifying directory nodes; and

each directory node comprises a dirty bit indicating whether the directory node is updated.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2019
From: CR, NARENDHIRAN; JAYARAMAN, MURALITHARAN; VELUSAMY, SIVARAJ; LAKKIMSETTY, CHANDRA; KANNAPPAN, VITHYA; RAJENDRAN, BALAKUMAR
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 049425/0085 →