IP Library Patent Application 16944567
Patent Application
App. No. 16/944,567

PHYSICAL STORAGE DRIVE WITH INFINITE STORAGE CAPACITY

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.
16/944,567
Abstract

A peripheral storage system and method provide a separate host device with zero-configuration physical storage that has essentially unlimited capacity. The system simultaneously receives power from, and communicates data with, the host device using a standard port such as USB or SATA. A microcontroller in the peripheral storage system executes a virtual file system for storing data in a local data store, and a network interface controller (NIC) communicates data to a remote (e.g. cloud) data store whenever a Wi-Fi or cellular network connection is available. Data may be sent and received using checksums and/or encryption. The system and method may analyze data access patterns of the host device to perform adaptive caching. The peripheral storage system may be embodied as an integral part of the host device, or as a separate component having the form of, for example, a USB flash drive.

Claims (37)

1 . A system for communicatively coupling a host device to a remote data store, the system comprising:

at least one port for receiving power from the host device and for sending data to and receiving data from the host device;

a microcontroller, coupled to the at least one port for sending data to and receiving data from the host device;

a local data store, coupled for sending data to and receiving data from the host device in response to receiving data storage commands from the microcontroller; and

a network interface controller (NIC), coupled for sending data to and receiving data from the remote data store in response to receiving data storage commands from the microcontroller;

wherein the microcontroller, and the local data store, and the network interface controller are coupled to the at least one port to be powered by the host device using the received power.

2 . The system according to claim 1 , wherein the host device comprises a laptop computer, or a tablet computer, or a music player, or a wearable fitness device, or a smartphone, or a carputer.

3 . The system according to claim 1 , wherein the at least one port comprises a Universal Serial Bus (USB) port, or a Serial ATA (SATA) port, or both.

4 . The system according to claim 1 , wherein the local data store comprises a volatile memory, or a non-volatile memory, or both.

5 . The system according to claim 1 , wherein the NIC includes a subscriber identity module (SIM) for sending data to and receiving data from the remote data store using a cellular network.

6 . The system according to claim 1 , wherein the microcontroller is configured to command the NIC for sending data to and receiving data from the remote data store according to a checksum, or an encryption protocol, or both.

7 . The system according to claim 1 , wherein the microcontroller is configured to command the NIC for sending data to and receiving data from a plurality of remote data stores, of which the remote data store is one.

8 . The system according to claim 7 , wherein the microcontroller is further configured to perform a scatter-gather operation for a file in the local data store, using respective portions of the file in each of the plurality of remote data stores.

9 . The system according to claim 1 , wherein the microcontroller is configured to analyze a data access pattern of the host device and, responsive to the analyzing, to command the NIC to retrieve a file from the remote data store before data access to the file is requested by the host device.

10 . The system according to claim 1 , wherein the local data store stores data according to a file system format used by the host device.

11 . A method of executing a data access command regarding a given file, by a peripheral storage system attached to a host device, the method comprising:

receiving, from the host device by a port in the peripheral storage system, the data access command; and

executing, by a microprocessor in the peripheral storage system, a virtual file system driver, wherein executing includes:

when the given file is not stored in a local data store in the peripheral storage system, instructing, by the microprocessor, a network interface controller (NIC) in the peripheral storage system to retrieve the given file from a remote data store into the local data store;

executing the data access command with respect to the given file stored in the local data store; and

communicating a result of the performance to the host device using the port;

wherein executing the virtual file system driver comprises the microprocessor using electrical power received from the host device via the port.

12 . The method according to claim 11 , wherein retrieving the given file from a remote data store comprises retrieving according to a checksum, or an encryption protocol, or both.

13 . The method according to claim 11 , wherein retrieving the given file from a remote data store comprises retrieving from a plurality of remote data stores, of which the remote data store is one, according to a scatter-gather operation.

14 . The method according to claim 11 , further comprising, by the microcontroller, analyzing a data access pattern of the host device and, responsive to the analyzing, commanding the NIC to retrieve a file from the remote data store before data access to the file is requested by the host device.

15 . The method according to claim 11 , wherein executing the data access command comprises executing a command according to a file system format used by both the host device and the virtual file system driver.

16 . A tangible, computer-readable storage medium in a peripheral storage system attached to a host device, in which is non-transitorily stored computer program code for performing a method of executing, by the peripheral storage system, a data access command regarding a given file, the method comprising:

receiving, from the host device by a port in the peripheral storage system, the data access command; and

executing, by a microprocessor in the peripheral storage system, a virtual file system driver, wherein executing includes:

when the given file is not stored in the storage medium, instructing, by the microprocessor, a network interface controller (NIC) in the peripheral storage system to retrieve the given file from a remote data store into the storage medium;

executing the data access command with respect to the given file stored in the storage medium; and

communicating a result of the performance to the host device using the port;

wherein executing the virtual file system driver comprises the microprocessor using electrical power received from the host device via the port.

17 . The storage medium according to claim 16 , wherein retrieving the given file from a remote data store comprises retrieving according to a checksum, or an encryption protocol, or both.

18 . The storage medium according to claim 16 , wherein retrieving the given file from a remote data store comprises retrieving from a plurality of remote data stores, of which the remote data store is one, according to a scatter-gather operation.

19 . The storage medium according to claim 16 , wherein the method further includes, by the microcontroller, analyzing a data access pattern of the host device and, responsive to the analyzing, commanding the NIC to retrieve a file from the remote data store before data access to the file is requested by the host device.

20 . The storage medium according to claim 16 , wherein executing the data access command comprises executing a command according to a file system format used by both the host device and the virtual file system driver.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2020
From: POPAT, RAJIV
To: DELL PRODUCTS L.P.
Reel/Frame 053379/0089 →