IP Library Patent Application 13335217
Patent Application
App. No. 13/335,217

Systems and Methods for Managing Parallel Access to Multiple Storage Systems

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 None
App. No.
13/335,217
Abstract

Systems and methods for managing parallel access to multiple storage systems are disclosed. In one implementation, a host system operatively coupled to at least a first memory system and a second memory system separates a file into a plurality of data chunks. The host system stores a first copy of the plurality of data chunks in the first memory and stores a second copy of the plurality of data chunks in the second memory. The host reads a data chunk of the plurality of data chunks of the file from the first memory system or the second memory system based on a determination of whether the first memory system or the second memory system is able to provide the data chunk to the host system more quickly. The host system may then assemble the data of the file based on the data chunk.

Claims (58)

1 . A method for managing parallel access to multiple storage systems, the method comprising:

in a host system operatively coupled to at least a first memory system and a second memory system:

separating data of a file into a plurality of data chunks;

storing a first copy of the plurality of data chunks in the first memory system;

storing a second copy of the plurality of data chunks in the second memory system; and

reading a data chunk of the plurality of data chunks of the file from the first memory system or the second memory system based on a determination of whether the first memory system or the second memory system is able to provide the data chunk to the host system more quickly.

2 . The method of claim 1 , further comprising:

assembling the data of the file based on the data chunk.

3 . The method of claim 1 , further comprising:

storing one or more updated data chunks of the plurality of data chunks in the first memory system; and

storing in a management table associated with the first memory system an indication that the one or more updated data chunks stored in the first memory system are a more recent version of the data chunks than a counterpart one or more data chunks stored in the second memory system.

4 . The method of claim 3 , further comprising:

after storing the one or more updated data chunks in the first memory system, reading a second data chunk of the plurality of chunks from the first memory system or the second memory system based on whether an updated version of the data chunk is stored in the first memory system and based on a determination of whether the first memory system or the second memory system is able to provide the second data chunk to the host system more quickly.

5 . The method of claim 3 , further comprising:

synchronizing the data chunks of the plurality of data chunks stored in the second memory system with at least the one or more updated data chunks stored in the first memory system such that the plurality of data chunks stored in the first memory system and the plurality of data chunks stored in the second memory system are substantially the same; and

removing the indication from the management table associated with the first memory system that the one or more updated data chunks stored in the first memory system are a more recent version of the data chunks than the counterpart one or more data chunks stored in the second memory system.

6 . The method of claim 1 , further comprising:

storing one or more updated data chunks of the plurality of data chunks in the first memory system;

storing an indication in a management table associated with the first memory system that the one or more updated data chunks stored in the first memory system are a more recent version of the data chunks than a counterpart one or more data chunks stored in the second memory system;

storing one or more updated data chunks of the plurality of data chunks in the second memory system, wherein the one or more updated data chunks stored in the first memory system are different than the one or more updated data chunks stored in the second memory system; and

storing an indication in a management table associated with the second memory system that the one or more updated data chunks stored in the second memory system are a more recent version of the data chunks than a counterpart one or more data chunks stored in the first memory system.

7 . The method of claim 6 , further comprising:

after storing one or more updated data chunks in the first memory system and after storing one or more updated data chunks in the second memory system, reading a second data chunk of the plurality of chunks from one of the first memory system or the second memory system based on whether an updated version of the data chunk is stored in the first memory system or the second memory system and based on a determination of whether the first memory system or the second memory system is able to provide the second data chunk to the host system more quickly.

8 . The method of claim 6 , further comprising:

synchronizing one or more data chunks stored in the first memory system with one or more data chunks stored in the second memory system such that the plurality of data chunks stored in the first memory system and the plurality of data chunks stored in the second memory system are substantially the same;

removing the indication in the management table associated with the first memory system that one or more updated data chunks stored in the first memory system are a more recent version of the data chunks than the counterpart one or more data chunks stored in the second memory system; and

removing the indication in the management table associated with the second memory that one or more updated data chunks stored in the second memory system are a more recent version of the data chunks than the counterpart one or more data chunks stored in the first memory system.

9 . The method of claim 1 , wherein the first memory system is an embedded flash memory.

10 . The method of claim 9 , wherein the second memory system is a removable memory card.

11 . A host system comprising:

an interface operatively coupled with at least a first memory system and a second memory system; and

a processor in communication with the first memory system and the second memory via the interface, the processor configured to:

separate data of a file into a plurality of data chunks;

store a first copy of the plurality of data chunks in the first memory system;

store a second copy of the plurality of data chunks in the second memory system; and

read a data chunk of the plurality of data chunks of the file from the first memory system or the second memory system based on a determination of whether the first memory system or the second memory system is able to provide the data chunk to the host system more quickly.

12 . The host system of claim 1 , wherein the processor is further configured to assemble the data of the file based on the data chunk.

13 . The host system of claim 11 , wherein the processor is further configured to:

store one or more updated data chunks of the plurality of data chunks in the first memory system; and

store in a management table associated with the first memory system an indication that one or more updated data chunks stored in the first memory system are a more recent version of the data chunks than a counterpart one or more data chunks stored in the second memory system.

14 . The host system of claim 13 , wherein the processor is further configured to:

after storing one or more updated data chunks in the first memory system, read a second data chunk of the plurality of data chunks from the first memory system or the second memory system based on whether an updated version of the data chunk is stored in the first memory system and based on a determination of whether the first memory system or the second memory system is able to provide the second data chunk to the host system more quickly.

15 . The host system of claim 13 , wherein the processor is further configured to:

synchronize the data chunks of the plurality of data chunks stored in the second memory system with at least the one or more updated data chunks stored in the first memory system such that the plurality of data chunks stored in the first memory system and the plurality of data chunks stored in the second memory system are substantially the same; and

remove the indication from the management table associated with the first memory system that the one or more updated data chunks stored in the first memory system are a more recent version of the data chunks than the counterpart one or more data chunks stored in the second memory system.

16 . The host system of claim 11 , wherein the processor is further configured to:

store one or more updated data chunks of the plurality of data chunks in the first memory system;

store an indication in a management table associated with the first memory system that the one or more updated data chunks stored in the first memory system are a more recent version of the data chunks than a counterpart one or more data chunks stored in the second memory system;

store one or more updated data chunks of the plurality of data chunks in the second memory system, wherein the one or more updated data chunks stored in the first memory system are different than the one or more updated data chunks stored in the second memory system; and

store an indication in a management table associated with the second memory system that the one or more updated data chunks stored in the second memory system are more recent than a counterpart one or more data chunks stored in the first memory system.

17 . The host system of claim 16 , wherein the processor is further configured to:

after storing one or more updated data chunks in the first memory system and after storing one or more updated data chunks in the second memory system, read a second data chunk of the plurality of chunks from the first memory system or the second memory system based on whether an updated version of the data chunk is stored in the first memory system or the second memory system and based on a determination of whether the first memory system or the second memory system is able to provide the second data chunk to the host system more quickly.

18 . The host system of claim 16 , wherein the processor is further configured to:

synchronize one or more data chunks stored in the first memory system with one or more data chunks stored in the second memory system such that the plurality of data chunks stored in the first memory system and the plurality of data chunks stored in the second memory system are substantially the same

remove the indication in the management table associated with the first memory system that one or more updated data chunks stored in the first memory system are a more recent version of the data chunks than the counterpart one or more data chunks stored in the second memory system; and

remove the indication in the management table associated with the second memory that one or more updated data chunks stored in the second memory system are a more recent version of the data chunks than the counterpart one or more data chunks stored in the first memory system.

19 . The host system of claim 11 , wherein the first memory system is an embedded flash memory.

20 . The host system of claim 19 , wherein the second memory system is a removable memory card.

Assignments (2)
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038809/0672 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2012
From: LEMBERG, ALEX; BAR, YARON
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 027985/0559 →