P
USRE42397EExpiredUtilityPatentIndex 62

Architecture for a universal serial bus-based PC flash disk

Assignee: SANDISK IL LTDPriority: Apr 5, 1999Filed: Nov 14, 2002Granted: May 24, 2011
Est. expiryApr 5, 2019(expired)· nominal 20-yr term from priority
Inventors:BAN AMIRMORAN DOVOGDAN ORON
H04M 1/72409G11C 7/1006G06F 3/0607G06F 3/0661G06F 3/0679G06F 13/385G06F 13/36
62
PatentIndex Score
2
Cited by
357
References
76
Claims

Abstract

A storage unit made of flash array and a USB controller, is implemented to be compatible with then the USB specification. The unit includes memory modules which can accept write commands and read commands and are erasable and non-volatile herein referred to as flash modules. The USB/flash controller is configured to provide USB functionality and compatibility alone along with common flash operations such as programming reading and erasing the above mentioned components.

Claims

exact text as granted — not AI-modified
1. A USB flash memory device for connecting to a USB-defined bus, the flash memory device comprising:
 (a) at least one flash memory module for storing data;   (b) a USB connector for connecting to the USB-defined bus and for sending packets on, and for receiving packets from, the USB-defined bus;   (c) a USB controller for controlling said at least one flash memory module and for controlling said USB connector according to at least one packet received from the USB-defined bus, such that data is written to and read from said at least one flash memory module;   (d) an electrical interface for connecting to said USB connector and for receiving said packets from said USB connector as a plurality of electrical signals;   (e) a logical interface for connecting to said electrical interface and for translating said plurality of electrical signals to logic signals, said logic signals being passed to said at least one flash memory module;   (f) a functional interface for receiving said logic signals such that if said logic signals represent a USB functional packet, said functional interface sends a USB command to said USB controller according to said USB functional packet;   (g) an application packet extractor for connecting to said logical interface and for receiving said logic signals, said application packet extractor extracting at least one packet from said logic signals; and   (h) an application command interpreter for receiving said at least one packet and for determining a command according to said at least one packet, said command being passed to said USB controller.   
     
     
       2. The flash memory device of  claim 1 , further comprising:
 (i) an address resolver module for receiving said at least one packet and for resolving an address contained in said at least one packet, said address being sent to said USB controller, such that said command is performed according to said address.   
     
     
       3. The flash memory device of  claim 2 , wherein said command is a write command for writing data to said at least one flash memory module and said address is a logical address for writing said data, such that said address resolver module resolves said logical address to a physical address of said at least one flash memory module. 
     
     
       4. The flash memory device of  claim 2 , wherein said command is a read command for reading data from said a least one flash memory module and said address is a logical address for reading said data, such that said address resolver module resolves said logical address to a physical address of said at least one flash memory module. 
     
     
       5. The flash memory device of  claim 2  , further comprising:
 (j) a data handler for performing an error detection and correction routine for said at least one flash memory module. 
 
     
     
       6. The flash memory device of  claim 5 , further comprising:
 (k) a status handler for receiving said USB functional packet from said functional interface, and for sending a status packet concerning a status of said at least one flash memory module according to said USB functional packet.   
     
     
       7. The flash memory device of  claim 6 , further comprising:
 (l) a MTD (memory technology driver) for receiving a write command and physical address of said at least one flash memory module, and for performing said write command to said physical address.   
     
     
       8. A USB flash memory device for connecting to a USB-defined bus, the flash memory device comprising:
 (a) at least one flash memory module;   (b) a USB connector adapted for connection to a USB-defined bus and for conveying USB-defined packets sent to or received from a host via said USB-defined bus; and   (c) a USB controller adapted to communicate with the host via said USB-defined bus and to carry out at least one of reads and writes in said at least one flash memory module in accordance with said USB-defined packets;   wherein said USB controller comprises:
 a USB-defined interface for sending and receiving the USB-defined packets via said USB-defined bus; 
 a packet extractor for receiving USB-defined data packets via the USB-defined interface and extracting information from the USB-defined data packets; 
 a command interpreter which is adapted to interpret commands obtained as operation codes extracted from the USB-defined data packets into corresponding actions addressed to said at least one flash memory module; and 
 an address resolver module which is adapted to translate logical addresses extracted from said USB-defined data packets into physical addresses in one or more of said at least one flash memory module; and 
   wherein the USB controller is configured to activate a memory technology driver within the USB flash memory device to issue the commands to the at least one flash memory module, wherein the issued commands are addressed to the corresponding physical addresses.   
     
     
       9. The USB flash memory device according to claim 8, wherein said USB controller further comprises an identification structure for holding memory size and manufacturing type information of said at least one flash memory module, wherein said memory size and manufacturing type information is used by said USB controller to build an address translation table for use by said address resolver module. 
     
     
       10. The USB flash memory device according to claim 8, wherein said address resolver module is adapted for resolving addresses contained in said USB-defined data packets, such that said commands are performed according to said addresses. 
     
     
       11. The USB flash memory device according to claim 8, wherein, if said commands include a write command for writing data to said at least one flash memory module and said address is a logical address for writing said data, said address resolver module is configured to resolve said logical address to a physical address of said at least one flash memory module. 
     
     
       12. The USB flash memory device according to claim 8, wherein, if said commands include a read command for reading data from said at least one flash memory module and said address is a logical address for reading said data, said address resolver module is configured to resolve said logical address to a physical address of said at least one flash memory module. 
     
     
       13. The USB flash memory device according to claim 8, further comprising:
 a data handler for performing an error detection and correction routine for said at least one flash memory module.   
     
     
       14. The USB flash memory device according to claim 8, further comprising:
 a status handler for sending status packets concerning a status of said at least one flash memory module according to said USB-defined data packets.   
     
     
       15. The USB flash memory device according to claim 8, wherein the USB flash memory device is being provided as an integral unit with the USB connector. 
     
     
       16. The USB flash memory device according to claim 8, wherein said device is configured to act as a dynamically attachable/detachable non-volatile storage device for said host. 
     
     
       17. The USB flash memory device according to claim 8, wherein said USB controller is implemented as a single integrated circuit. 
     
     
       18. The USB flash memory device according to claim 8, wherein the extracted information includes a write command and said USB controller is configured to interpret the write command and extract corresponding operation codes from said USB-defined data packets. 
     
     
       19. The USB flash memory device according to claim 8, wherein said USB-defined bus is connected to said host and wherein said host is configured to provide commands to said USB controller using a standard protocol. 
     
     
       20. The USB flash memory device according to claim 8, comprising an address/data bus for interconnecting said USB controller and said at least one flash memory module. 
     
     
       21. The USB flash memory device according to claim 8, wherein said USB controller is configured to negotiate with said at least one flash memory module to determine at least one feature of the at least one flash memory module. 
     
     
       22. The USB flash memory device according to claim 21, wherein said at least one feature comprises a size. 
     
     
       23. The USB flash memory device according to claim 22, wherein said at least one feature comprises a manufacturing type. 
     
     
       24. The USB flash memory device according to claim 23, wherein said USB controller is configured to use said manufacturing type to determine a memory technology driver to activate for said at least one flash memory module. 
     
     
       25. The USB flash memory device according to claim 22, wherein said USB controller is configured to notify said host that it is ready after said negotiation. 
     
     
       26. The USB flash memory device according to claim 22, wherein said at least one feature comprises a size and a manufacturing type. 
     
     
       27. The USB flash memory device according to claim 26, wherein said size and manufacturing type are used to determine a physical address space of said at least one flash memory module and generate a translation table for translating logical addresses into addresses of said physical address space. 
     
     
       28. The USB flash memory device according to claim 27, wherein said USB controller is configured to determine said physical address space of said at least one flash memory module and generate said translation table for translating logical addresses into addresses of said physical address space. 
     
     
       29. The USB flash memory device according to claim 8, wherein said USB controller includes a plurality of chip enable signal lines for attaching to a plurality of flash memory modules. 
     
     
       30. The USB flash memory device according to claim 8, wherein said USB connector is attached to said USB controller by a combined physical/logical interface. 
     
     
       31. The USB flash memory device according to claim 30, wherein said combined physical/logical interface is part of said USB controller. 
     
     
       32. The USB flash memory device according to claim 8, wherein said at least one flash memory module comprises a plurality of flash memory modules. 
     
     
       33. The USB flash memory device according to claim 8, wherein said USB controller further comprises:
 a functional interface adapted to receive said USB-defined packets, such that if one of said USB-defined packets is a USB token packet, said functional interface acts on said token packet;   wherein the packet extractor is serially connected after said functional interface.   
     
     
       34. The USB Flash memory device of claim 8, wherein the commands include one or more of read, write and erase commands and the corresponding actions include one or more of read, write and erase. 
     
     
       35. A data-processing method at a USB flash memory device, wherein the USB flash memory device includes at least one flash memory module and a USB connector and a USB controller, wherein the USB connector is configured to be coupled to a host through a USB-defined bus and the USB controller includes a USB-defined interface for communicating with the host via the USB-defined bus, the method comprising:
 receiving, at the USB-defined interface, USB-defined packets from the host through the USB-defined bus and the USB connector, wherein the USB-defined packets include USB-defined data packets;   under the control of the USB controller:
 extracting from a respective USB-defined data packet a command and a logical address within a logical address space associated with the USB flash memory device; 
 converting the logical address into a physical address, which physical address is in the at least one flash memory module; 
 activating a memory technology driver within the USB flash memory device; and 
 issuing the command to the activated memory technology driver; and 
   performing, at the at least one flash memory module, an operation corresponding to the command on data associated with the physical address.   
     
     
       36. The data-processing method according to claim 35, further comprising:
 under the control of the USB controller,
 identifying memory size and manufacturing type information of the at least one flash memory module; and 
 generating an address translation table using the memory size and manufacturing type information, wherein the address translation table is configured for converting logical addresses in the logical address space into physical addresses, which physical addresses are in the at least one flash memory module. 
   
     
     
       37. The data-processing method according to claim 36, further comprising storing the memory size and manufacturing type information in an identification structure within the USB flash memory device. 
     
     
       38. The data-processing method according to claim 35, including:
 under the control of the USB controller,
 extracting a write command and a predefined amount of data from the at least one of the USB-defined data packets; and 
 writing the predefined amount of data into locations including the physical address in accordance with the write command. 
   
     
     
       39. The data-processing method according to claim 35, including:
 under the control of the USB controller,
 extracting a read command and a length of data from the at least one of the USB-defined data packets; 
 retrieving data from locations including the physical address in accordance with the read command and the length of data; and 
 transmitting the retrieved data to the host through the USB connector and the USB-defined bus. 
   
     
     
       40. The data-processing method according to claim 35, wherein the USB controller is implemented as a single integrated circuit. 
     
     
       41. The data-processing method according to claim 35, further comprising:
 under the control of the USB controller, negotiating with the at least one flash memory module to determine at least one feature of the flash memory module.   
     
     
       42. The data-processing method according to claim 41, wherein the at least one feature comprises a memory size. 
     
     
       43. The data-processing method according to claim 41, wherein said at least one feature comprises a manufacturing type. 
     
     
       44. The data-processing method according to claim 43, further comprising using the manufacturing type to determine the memory technology driver for the at least one flash memory module. 
     
     
       45. The data-processing method according to claim 41, further comprising:
 under the control of the USB controller, notifying the host after its negotiation with the at least one flash memory module.   
     
     
       46. The data-processing method according to claim 35, including:
 receiving electrical signals from the host through the USB-defined bus and the USB connector, wherein the electrical signals are USB-compatible; and   extracting the USB-defined packets from the electrical signals.   
     
     
       47. A USB flash memory device for connecting to a USB-defined bus, the flash memory device comprising:
 (a) at least one flash memory module;   (b) a USB connector adapted for connection to a USB-defined bus and for conveying USB-defined packets sent to or received from a host via the USB-defined bus; and   (c) a USB controller adapted to communicate with the host via the USB connector and to carry out at least one of reads and writes on the at least one flash memory module in accordance with the USB-defined packets, wherein the USB controller comprises a packet extractor for receiving USB-defined data packets via the USB connector and extracting information from the USB-defined data packets, and a command interpreter which is adapted to interpret commands extracted from the USB-defined data packets over the USB connector into actions for the at least one flash memory module; and   (d) memory technology drivers, each adapted for execution by the USB controller to perform the actions on a respective type of flash memory module;   wherein the USB controller is configured to activate a respective memory technology driver within the flash memory device based on an identification of a respective type of the at least one flash memory module and the activated memory technology driver is configured to perform the actions on the identified flash memory module.   
     
     
       48. The USB flash memory device according to claim 47, wherein the device is provided as an integral unit with the USB connector. 
     
     
       49. The USB flash memory device according to claim 47, wherein the USB controller further includes:
 an address resolver module which is adapted to translate a logical address extracted from the USB-defined data packets into a physical address in one or more of the at least one flash memory module.   
     
     
       50. The USB flash memory device according to claim 49, wherein, if one of the commands is a write command for writing data on the at least one flash memory module and the logical address is a logical address for writing the data, the address resolver module is configured to resolve the logical address to a physical address of the at least one flash memory module and the determined memory technology driver is configured to write the data to the physical address of the at least one flash memory module. 
     
     
       51. The USB flash memory device according to claim 49, wherein, if one of the commands is a read command for reading data on the at least one flash memory module and the logical address is a logical address for reading the data, the address resolver module is configured to resolve the logical address to a physical address of the at least one flash memory module and the determined memory technology driver is configured to read the data from the physical address of the at least one flash memory module. 
     
     
       52. The USB flash memory device according to claim 49, further comprising:
 a data handler for performing an error detection and correction action on the at least one flash memory module.   
     
     
       53. The USB flash memory device according to claim 52, further comprising:
 a status handler for sending status packets concerning a status of the at least one flash memory module according to the USB-defined data packets.   
     
     
       54. The USB flash memory device according to claim 47, wherein the device is configured to act as a dynamically attachable/detachable non-volatile storage device for the host. 
     
     
       55. The USB flash memory device according to claim 47, wherein the USB controller is implemented as a single integrated circuit. 
     
     
       56. The USB flash memory device according to claim 47, wherein the USB controller is configured to interpret write commands after extracting corresponding operation codes from the USB-defined data packets. 
     
     
       57. The USB flash memory device according to claim 47, wherein the USB-defined bus is connected to the host and wherein the host is configured to provide commands to the USB controller using a standard protocol. 
     
     
       58. The USB flash memory device according to claim 47, further comprising an address/data bus for interconnecting the USB controller and the at least one flash memory module, wherein the address/data bus is configured to transfer addresses and data associated with the actions to or from the at least one flash memory module. 
     
     
       59. The USB flash memory device according to claim 47, further comprising a control line for interconnecting the USB controller and the at least one flash memory module, wherein the USB controller is configured to use the control line to control the power of the at least one flash memory module. 
     
     
       60. The USB flash memory device according to claim 47, wherein the USB controller is configured to negotiate with the at least one flash memory module to determine at least one feature of the at least one flash memory module. 
     
     
       61. The USB flash memory device according to claim 60, wherein the USB controller is configured to build an identification structure for holding the at least one feature. 
     
     
       62. The USB flash memory device according to claim 60, wherein the at least one feature comprises a size. 
     
     
       63. The USB flash memory device according to claim 60, wherein the at least one feature comprises a manufacturing type. 
     
     
       64. The USB flash memory device according to claim 60, wherein the USB controller is configured to notify the host that it is ready after the negotiation. 
     
     
       65. The USB flash memory device according to claim 64, wherein the notification includes at least one USB-defined data packet. 
     
     
       66. The USB flash memory device according to claim 65, wherein the at least one USB-defined data packet contains information of the at least one feature of the at least one flash memory module. 
     
     
       67. The USB flash memory device according to claim 60, wherein the at least one feature comprises a size and a manufacturing type. 
     
     
       68. The USB flash memory device according to claim 60, wherein the USB controller is configured to use the determined size and manufacturing type to generate a translation table and an address space for the at least one flash memory module. 
     
     
       69. The USB flash memory device according to claim 47, wherein the USB controller includes a plurality of chip enable signal lines for attaching to a plurality of flash memory modules. 
     
     
       70. The USB flash memory device according to claim 47, wherein the USB connector is attached to the USB controller by a combined physical/logical interface. 
     
     
       71. The USB flash memory device according to claim 70, wherein the combined physical/logical interface is part of the USB controller. 
     
     
       72. The USB flash memory device according to claim 47, wherein the at least one flash memory module comprises a plurality of flash memory modules. 
     
     
       73. The USB flash memory device according to claim 47, wherein the USB controller further comprises:
 a functional interface adapted to receive the USB-defined packets, such that if one of the USB-defined packets is a USB token packet, the functional interface acts on the token packet;   wherein the packet extractor is serially connected after the functional interface.   
     
     
       74. The USB Flash memory device of claim 47, wherein the commands include one or more of read, write and erase commands and the actions correspondingly include one or more of read, write and erase. 
     
     
       75. A data-processing method at a USB flash memory device, wherein the USB flash memory device includes at least one flash memory module and a USB connector and a USB controller, wherein the USB connector is configured to be coupled to a host through a USB-defined bus and the USB controller includes a USB-defined interface for communicating with the host via the USB-defined bus, the method comprising:
 receiving, at the USB-defined interface, USB-defined packets from the host through the USB-defined bus and the USB connector, wherein the USB-defined packets include USB-defined data packets;   under the control of the USB controller:
 communicating with the host via the USB connector; and 
 extracting information from the USB-defined data packets; 
 interpreting commands extracted from the USB-defined data packets into actions for the at least one flash memory module; 
 activating a respective memory technology driver within the flash memory device based on an identification of a respective type of the at least one flash memory module; and 
 under the control of the activated memory technology driver, performing the actions on the identified flash memory module. 
   
     
     
       76. The data processing method of claim 73, wherein the commands include one or more of read, write and erase commands and the actions correspondingly include one or more of read, write and erase.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.