P
USRE44641EExpiredUtilityPatentIndex 60

USB flash memory device with integrated USB controller

Assignee: BAN AMIRPriority: Apr 5, 1999Filed: Jan 12, 2011Granted: Dec 10, 2013
Est. expiryApr 5, 2019(expired)· nominal 20-yr term from priority
Inventors:BAN AMIRMORAN DOVOGDAN ORON
H04M 1/72409G11C 7/1006G06F 3/0679G06F 3/0661G06F 13/385G06F 3/0607G06F 13/36
60
PatentIndex Score
1
Cited by
359
References
41
Claims

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-modified
What 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 interface with a host via the USB-defined bus, to send and receive USB-defined packets, including USB-defined data packets, via the USB connector to or from the host, and to manage memory reads, writes and erases in the at least one flash memory module in accordance with the USB-defined data packets,   wherein the USB controller includes:
 a packet extractor to extract operation codes and logical addresses from the USB-defined data packets; 
 a command interpreter which is adapted to interpret the operation codes into commands corresponding to one of the memory reads, writes and erases; and 
 an address resolver module adapted for converting the logical addresses into corresponding physical addresses in one or more of the at least one flash memory module. 
   
     
     
       9. The USB flash memory device according to claim 8, further comprising:
 a memory technology driver for receiving the commands from the command interpreter and the physical addresses from the address resolver module and for performing the commands to memory cells of the at least one flash memory module identified by the physical addresses.   
     
     
       10. The USB flash memory device according to claim 9, wherein, if one of the commands is a write command for writing data associated with a respective logical address, the address resolver module is configured to convert the respective logical address into a physical address of the at least one flash memory module and the memory technology driver is configured to write the data to memory cells of the at least one flash memory module identified by the physical address. 
     
     
       11. The USB flash memory device according to claim 9, wherein, if one of the commands is a read command for reading data associated with a respective logical address, the address resolver module is configured to convert the respective logical address into a physical address of the at least one flash memory module and the memory technology driver is configured to retrieve the data from memory cells of the at least one flash memory module identified by the physical address. 
     
     
       12. The USB flash memory device according to claim 8, wherein the USB controller is implemented as a single integrated circuit. 
     
     
       13. 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 of a size of the at least one flash module and a manufacturing type of the at least one flash module. 
     
     
       14. The USB flash memory device according to claim 13, wherein the USB controller is configured to notify the host that it is ready for use after the negotiation. 
     
     
       15. The USB flash memory device according to claim 13, wherein the USB controller is configured to use the determined size and manufacturing type to build an address translation table. 
     
     
       16. 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. 
     
     
       17. The USB flash memory device according to claim 8, wherein the at least one flash memory module comprises a plurality of flash memory modules. 
     
     
       18. The USB flash memory device according to claim 17, wherein the USB controller includes a plurality of chip enable signal lines for attaching to the plurality of flash memory modules. 
     
     
       19. 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, and a USB connector adapted for operatively coupling the at least one flash memory module and the USB controller to a host via a USB-defined bus, the method comprising:
 receiving USB-defined packets from the host via the USB-defined bus and the USB connector, wherein the USB-defined packets include one or more USB-defined data packets;   under the control of the USB controller:
 extracting operation codes and logical addresses from the USB-defined data packets; 
 interpreting the operation codes into commands corresponding to one of memory reads, writes and erases; 
 converting the logical addresses into corresponding physical addresses in one or more of the at least one flash memory module; 
   performing the commands to memory cells within the at least one flash memory module identified by the physical addresses.   
     
     
       20. The data-processing method according to claim 19, further comprising:
 under the control of the USB controller:
 determining memory size and manufacturing type information of the at least one flash memory module; 
 building an address translation table in accordance with the determined memory size and manufacturing type information; and 
 converting the logical addresses into the physical addresses of the at least one flash memory module using the address translation table. 
   
     
     
       21. The data-processing method according to claim 20, further comprising:
 storing the memory size and manufacturing type information in an identification structure of the USB controller.   
     
     
       22. The data-processing method according to claim 19, further comprising:
 activating a memory technology driver in accordance with type information of the at least one flash memory module, wherein the memory technology driver is configured to receive the commands and the physical addresses and perform the commands to memory cells of the at least one flash memory module identified by the physical addresses.   
     
     
       23. The data-processing method according to claim 22, wherein the memory technology driver is configured to:
 receive from the USB controller a write command, a predefined amount of data, and a physical address of the at least one flash memory module; and   write the predefined amount of data into memory cells within the at least one flash memory module corresponding to the physical address in accordance with the write command.   
     
     
       24. The data-processing method according to claim 22, wherein the memory technology driver is configured to:
 receive from the USB controller a read command and a physical address of the at least one flash memory module; and   retrieve data from memory cells within the at least one flash memory module corresponding to the physical address in accordance with the read command.   
     
     
       25. The data-processing method according to claim 22, wherein the memory technology driver is configured to:
 receive from the USB controller an erase command and a physical address of the at least one flash memory module; and   erase data in memory cells within the at least one flash memory module corresponding to the physical address in accordance with the erase command.   
     
     
       26. The data-processing method according to claim 19, 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.   
     
     
       27. The data-processing method according to claim 26, further comprising:
 under the control of the USB controller, notifying the host after its negotiation with the at least one flash memory module.   
     
     
       28. The data-processing method according to claim 19, further comprising:
 receiving electrical signals from the host via 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.   
     
     
       29. 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 over the USB-defined bus via the USB connector and to manage the at least one flash memory module in accordance with the USB-defined packets, including for carrying out read, write and erase actions, wherein the USB controller comprises a USB-defined electrical and logical interface coupled to the USB connector for transferring the USB-defined packets, a packet extractor for receiving USB-defined data packets via the USB-defined electrical and logical interface and extracting packet information from the USB-defined data packets and a command interpreter which is adapted to interpret commands extracted from the USB-defined data packets 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 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 actions on the identified flash memory module.   
     
     
       30. The USB flash memory device according to claim 29, wherein the USB controller further comprises a functional interface adapted for processing token packets received from the USB-defined electrical and logical interface. 
     
     
       31. A USB flash memory device comprising:
 a storage unit further comprising: at least one flash memory module; a USB connector adapted for connection to a USB-defined bus according to a USB standard; and a USB controller adapted for connecting the at least one flash memory module to 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 at least one flash memory module, the USB functionality further including physical, logical and functional interfaces for sending and receiving USB-defined packets, including USB-defined data packets, via the USB connector and the USB-defined bus to or from the host, and the memory functionality and control further including:
 a packet extractor to extract operation codes and logical addresses from the USB-defined data packets; 
 a command interpreter which is adapted to interpret the operation codes into commands corresponding to one of memory reads, writes and erases; and 
 an address resolver module adapted for converting the logical addresses into corresponding physical addresses in one or more of the at least one flash memory module. 
   
     
     
       32. The USB flash memory device according to claim 31, wherein the USB controller is an integrated circuit (IC). 
     
     
       33. The USB flash memory device according to claim 31, wherein the USB controller is an application-specific integration circuit (ASIC). 
     
     
       34. The USB flash memory device according to claim 31, wherein the memory functionality and control further includes 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. 
     
     
       35. The USB flash memory device according to claim 31, wherein the at least one flash memory module includes a plurality of flash memory modules. 
     
     
       36. The USB flash memory device according to claim 31, wherein the USB connector is integrally formed with the storage unit and is able to protrude therefrom to facilitate connection to the USB-defined bus. 
     
     
       37. A method for communication between a storage unit and a host, wherein the storage unit includes: one or more flash memory modules, a USB connector adapted for connection to a USB-defined bus according to a USB standard, and a USB controller adapted for connecting the one or more flash memory modules to the USB connector, the method comprising:
 receiving one or more incoming USB packets sent from the host to the storage unit 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 storage unit 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, the USB functionality further including physical, logical and functional interfaces for sending and receiving USB packets via the USB connector and the USB-defined bus to or from the host, and the memory functionality and control further including:
 a packet extractor to extract operation codes and logical addresses from the incoming USB packets; 
 a command interpreter which is adapted to interpret the operation codes into commands corresponding to one of the memory operations; and 
 an address resolver module adapted for converting the logical addresses into corresponding physical addresses in at least one of the one or more flash memory modules. 
   
     
     
       38. The method according to claim 37, wherein the USB controller is an integrated circuit (IC). 
     
     
       39. The method according to claim 37, wherein the USB controller is an application-specific integration circuit (ASIC). 
     
     
       40. The method according to claim 37, wherein the memory functionality and control further includes 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. 
     
     
       41. The method according to claim 37, wherein the USB connector is integrally formed with the storage 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.