USB flash memory device with integral memory technology driver
Abstract
A storage unit made of flash array and a USB controller, is implemented to be compatible with then 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 with common flash operations such as programming reading and erasing the above mentioned components.A USB flash memory device includes at least one flash memory module, a USB connector, a USB controller, and an identification structure for holding memory size and manufacturing type information of the flash memory module. The USB controller is configured to send and receive USB-defined data packets to or from a host via the USB connector, to extract operation codes and logical addresses from the USB-defined data packets, and to carry out at least one of reads, writes and erases in the flash memory module in accordance with the USB-defined data packets, and to interpret the operation codes into corresponding commands. The USB controller is configured to activate a respective memory technology driver in accordance with the memory size and manufacturing type information in the identification structure. The activated memory technology driver is configured to perform the commands on the flash memory module corresponding to the logical addresses.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
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:
at least one flash memory module; a USB connector adapted for connection to a USB-defined bus; and a USB controller configured to send and receive USB-defined packets, including USB-defined data packets, to or from a host via the USB-defined bus and the USB connector, and to carry out at least one of reads, writes and erases in the at least one flash memory module in accordance with the USB-defined data packets, wherein the USB controller comprises
a packet extractor to extract operation codes and logical addresses from the USB-defined data packets, and
a command interpreter adapted to interpret the operation codes into corresponding commands; and
an identification structure for holding memory size and manufacturing type information of the at least one flash memory module, which information is determined by the USB controller; wherein the USB controller is configured to activate a respective memory technology driver in accordance with the memory size and manufacturing type information in the identification structure, wherein the activated memory technology driver is configured to perform the commands on the at least one flash memory module corresponding to the logical addresses.
9. The USB flash memory device according to claim 8, wherein the USB controller is configured to build an address translation table in accordance with the memory size and manufacturing type information, and to convert the logical addresses into physical addresses of the at least one flash memory module using the address translation table.
10. The USB flash memory device according to claim 8, further comprising:
an address resolver module which is adapted to convert a respective logical address extracted from the USB-defined data packets into a respective physical address of the at least one flash memory module.
11. The USB flash memory device according to claim 10, wherein, if one of the commands is a write command for writing data to 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 convert the logical address into a physical address of the at least one flash memory module.
12. The USB flash memory device according to claim 10, wherein, if one of the commands is a read command for reading data from 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 convert the logical address into a physical address of the at least one flash memory module.
13. The USB flash memory device according to claim 8, wherein the USB controller is implemented as a single integrated circuit.
14. The USB flash memory device according to claim 8, 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 a power of the at least one flash memory module.
15. The USB flash memory device according to claim 8, 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.
16. The USB flash memory device according to claim 15, wherein the USB controller is configured to notify the host that it is ready for use after the negotiation.
17. The USB flash memory device according to claim 16, wherein the notification includes at least one USB-defined data packet.
18. The USB flash memory device according to claim 8, wherein the USB connector is attached to a combined physical/logical interface.
19. The USB flash memory device according to claim 18, wherein the combined physical/logical interface is part of the USB controller and is coupled to the packet extractor.
20. The USB flash memory device according to claim 8, wherein the at least one flash memory module comprises a plurality of flash memory modules.
21. The USB flash memory device according to claim 20, wherein the USB controller includes a plurality of chip enable signal lines for attaching to the plurality of flash memory modules.
22. The USB flash memory device according to claim 8, wherein the flash memory device is configured to act as a dynamically attachable/detachable non-volatile storage device for the host.
23. A data-processing method performed by a USB flash memory device, wherein the USB flash memory device includes at least one flash memory module, a USB controller operatively coupled to the at least one flash memory module, and a USB connector adapted for operatively connecting the at least one flash memory module and the USB controller to a host via a USB-defined bus, the method comprising:
under the control of the USB controller:
conveying USB-defined packets, including USB-defined data packets, to or from the host via the USB-defined bus and the USB connector;
determining memory size and manufacturing type information of the at least one flash memory module;
activating a memory technology driver in accordance with recognition of a type of the at least one flash memory module;
extracting one of a read, write and erase command from at least one of the USB-defined data packets; and
interpreting the read, write or erase command extracted from at least one of the USB-defined data packets into a corresponding read, write or erase action, each command having an associated logical address; and
performing the corresponding read, write or erase action in the at least one flash memory module corresponding to the logical address using the activated memory technology driver.
24. The data-processing method according to claim 23, further comprising:
storing the memory size and manufacturing type information in an identification structure of the USB controller.
25. The data-processing method according to claim 23, further comprising:
building an address translation table in accordance with the memory size and manufacturing type information; and converting the logical address into a physical address of the at least one flash memory module using the address translation table.
26. The data-processing method according to claim 25, further comprising:
in connection with extracting a write command,
extracting 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.
27. The data-processing method according to claim 25, further comprising:
in connection with extracting a read command,
retrieving data from locations including the physical address in accordance with the read command; and
transmitting the retrieved data to the host via the USB connector and the USB-defined bus.
28. The data-processing method according to claim 23, 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 at least one flash memory module.
29. The data-processing method according to claim 28, further comprising:
under the control of the USB controller, notifying the host after its negotiation with the at least one flash memory module.
30. A USB storage device, comprising:
a USB flash memory unit with one or more flash memory modules, the USB flash memory unit further comprising:
a USB connector configured according to a USB standard for connecting to a USB-defined bus; and
a USB controller connected between the one or more flash memory modules and the USB connector,
wherein the USB controller is configured to support dual functionality including USB functionality according to the USB standard and memory functionality and control of the one or more flash memory modules, wherein the dual functionality includes physical, logical and functional interfaces for processing incoming USB packets and outgoing USBs packets, including USB token and USB application packets, application commands and data extraction from USB application packets, interpretation of application commands, including read, write, erase, and identify commands, translation of logical addresses to physical addresses, and memory operations, including read, write and erase operations.
31. A USB storage device as in claim 30, wherein the one or more flash memory modules are mapped to an address space of the USB controller.
32. A USB storage device as in claim 30, wherein the USB controller is an integrated circuit (IC).
33. A USB storage device as in claim 30, wherein the USB controller is an application-specific integration circuit (ASIC).
34. A USB storage device as in claim 30, wherein the USB application packets include customized USB data packets, such customized USB data packets being customized according to the USB standard.
35. A USB storage device as in claim 34, wherein the customized USB data packets are in any one of a plurality of data packet forms, including in the form of an identification request packet with an identify operation code, an identification reply packet with an identify operation code and an erase unit size field, a write request packet with a write operation code, a write status packet with a write operation code and a status field, a read request packet with a read operation code, a read status packet with a read operation code and a read status field, an erase request packet with an erase operation code, and an erase status data packet with an erase operation code and an erase status field.
36. A USB storage device as in claim 30, further comprising memory technology drivers (MTD), each MTD configured for recognizing a type of flash memory modules for which the MTD was designed and interacting with respective flash memory modules of said type under the control of the USB controller, wherein the USB controller is configured to determine which distinct MTD to activate for a respective flash memory module based on type information of the flash memory module.
37. A USB storage device as in claim 30, wherein the dual functionality includes a plurality of MTDs, each MTD containing routines to perform the memory operations.
38. A USB storage device as in claim 30, wherein the USB flash memory unit includes a plurality of the flash memory modules.
39. A USB storage device as in claim 30, wherein the USB connector is integrally formed with the USB flash memory unit and is able to protrude therefrom to facilitate connection to the USB-defined bus.
40. A USB storage device as in claim 30, wherein, under the control of the USB controller, when the USB flash memory unit is connected to a host via the USB-defined bus,
the USB connector is configured to convey the incoming USB packets sent from the host to the USB controller and convey the outgoing USB packets received from the USB controller to the host.
41. A method for communication between a USB storage device and a host, wherein the USB storage device includes a USB flash memory unit with one or more flash memory modules, the USB flash memory unit further comprising a USB connector configured according to a USB standard for connecting to a USB-defined bus and a USB controller connected between the one or more flash memory modules and the USB connector, the USB storage device is connected to the host via the USB-defined bus, the method comprising:
receiving one or more incoming USB packets sent from the host to the USB storage device via the USB-defined bus; and in response to the one or more incoming USB packets, the USB controller
performing memory operations to the one or more flash memory modules according to the one or more incoming USB packets;
generating one or more outgoing USB packets according to results of performing the one or more operations; and
sending the one or more outgoing USB packets to the host from the USB storage device via the USB-defined bus;
wherein the USB controller is configured to support dual functionality including USB functionality according to the USB standard and memory functionality and control of the one or more flash memory modules, wherein the dual functionality includes physical, logical and functional interfaces for processing incoming and outgoing USB packets, including USB token and USB application packets, application commands and data extraction from USB application packets, interpretation of application commands, including read, write, erase, and identify commands, translation of logical addresses to physical addresses, and memory operations, including read, write and erase operations.
42. A method as in claim 41, wherein the one or more flash memory modules are mapped to an address space of the USB controller.
43. A method as in claim 41, wherein the USB controller is an integrated circuit (IC).
44. A method as in claim 41, wherein the USB controller is an application-specific integration circuit (ASIC).
45. A method as in claim 41, wherein the USB application packets include customized USB data packets, the customized USB data packets being customized according to the USB standard.
46. A method as in claim 45, wherein the customized USB data packets are in any one of a plurality of data packet forms, including in the form of an identification request packet with an identify operation code, an identification reply packet with an identify operation code and an erase unit size field, a write request packet with a write operation code, a write status packet with a write operation code and a status field, a read request packet with a read operation code, a read status packet with a read operation code and a read status field, an erase request packet with an erase operation code, and an erase status data packet with an erase operation code and an erase status field.
47. A method as in claim 41, wherein the USB storage device further comprises memory technology drivers (MTD), each MTD configured for recognizing a type of flash memory modules for which the MTD was designed and interacting with respective flash memory modules of said type under the control of the USB controller, and wherein the method includes the USB controller determining which distinct MTD to activate for a respective flash memory module based on type information of the flash memory module.
48. A method as in claim 41, wherein the dual functionality includes a plurality of MTDs, each MTD containing routines to perform the memory operations.
49. A method as in claim 41, wherein the USB flash memory unit includes a plurality of the flash memory modules.
50. A method as in claim 41, wherein the USB connector is integrally formed with the USB flash memory unit and is able to protrude therefrom to facilitate connection to the USB-defined bus.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.