USRE42443EExpiredUtility
Architecture for a universal serial bus-based PC flash disk
Est. expiryApr 5, 2019(expired)· nominal 20-yr term from priority
H04M 1/72409G06F 13/385G11C 7/1006G06F 3/0661G06F 3/0607G06F 3/0679G06F 13/36
61
PatentIndex Score
3
Cited by
377
References
81
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-modified1. 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 method of storing and retrieving data comprising:
utilizing, for storing and retrieving the data, a flash memory system having integrally formed therewith and protruding therefrom an electrical connector configured in accordance with a USB standard, the flash memory system having memory cells organized into blocks of memory cells, the memory cells of the individual blocks being simultaneously erasable before data are rewritten therein; utilizing for the memory cells within the flash memory system a defined logical address space; receiving, through the electrical connector, logical signals that contain at least data write and data read packets in the form of application packets that are in accordance with the USB standard; under the control of a USB controller within the flash memory system,
communicating with a host via the electrical connector;
extracting the read and write packets from the received logical signals in accordance with the USB standard;
in response to extracting a data write packet from the received logical signals, obtaining from the extracted data write packet a write command, a write logical address within the flash memory system logical address space, a length of data to be written and data to be written, wherein the obtaining is in accordance with the USB standard, and thereafter converting the write logical address into a write physical address within one or more of the blocks of memory cells and writing the data to be written into those of the memory cells having the write physical address; and
in response to extracting a data read packet from the received logical signals, obtaining from the extracted data read packet a read command and a read logical address within the memory system logical address space, wherein the obtaining is in accordance with the USB standard, and thereafter converting the read logical address into a read physical address within one or more of the blocks of memory cells, reading the data from those of the memory cells having the read physical address and sending the read data through the electrical connector as another packet in accordance with the USB standard.
9. The method of claim 8, wherein the received logical signals are only in accordance with the USB standard, and wherein writing the received data into the flash memory system and reading data from the flash memory system are performed exclusively in response to logical signals in accordance with the USB standard.
10. The method of claim 8, wherein said electrical connector is the only electrical bus connector that is connected with the flash memory system.
11. The method of claim 8, further comprising identifying said received application packets as read packets or write packets, wherein the identifying is in accordance with the USB standard.
12. The method of claim 8 wherein said logical signals encode audio data.
13. The method of claim 8 wherein said logical signals encode video data.
14. A data storage device, comprising:
an electrical connector configured in accordance with a USB standard, a flash memory and a USB controller of the flash memory that are together formed integrally as a portable memory device; wherein the flash memory includes an array of memory cells organized into blocks of memory cells, the memory cells of an individual block being simultaneously erasable before data are rewritten therein; wherein the flash memory is characterized by a defined logical address space; wherein said USB controller comprises a USB-defined interface for sending and receiving USB-defined application packets via a USB-defined bus and a command interpreter which interprets read and write block commands received in the form of USB-defined application packets in accordance with the USB standard into actions for said flash memory and an address resolver which is adapted to translate a logical address within the defined logical address space from said USB-defined application packets into a physical address in one or more memory cell blocks of the flash memory; wherein the USB controller, using the USB-defined interface, receives the USB-defined application packets from a host via the USB-defined bus; wherein the USB controller, using the command interpreter and the address resolver, responds to those of said USB-defined application packets that contain a write command, a logical address within the defined logical address space, a length of data to be written and data to be written, by extracting the write command, the logical address, the length of data to be written and the data to be written from the packets, wherein the extracting is in accordance with the USB standard, and converting the logical address into a physical address of the flash memory and writing the data to be written into the flash memory at the physical address, and wherein the USB controller, using the command interpreter and the address resolver, responds to those of said USB-defined application packets that contain a read command and a logical address within the defined logical address space by extracting the read command and the logical address from the packets, wherein the extracting is in accordance with the USB standard, converting the logical address into a physical address of the flash memory, reading the data from the physical address of the flash memory and sending the read data through the electrical connector as part of another packet in accordance with the USB standard.
15. A device according to claim 14, wherein the portable memory device has only one electrical bus connector.
16. A data storage system, comprising:
an electrical connector configured in accordance with a USB standard, flash memory and a USB controller of the flash memory which are together formed integrally as a portable memory device, wherein the flash memory includes an array of re-writable non-volatile memory cells organized into blocks of memory cells, the memory cells of an individual block being simultaneously erased before data are rewritten therein; wherein the flash memory is characterized by a defined logical address space; wherein the USB controller is configured to receive logical signals through the electrical connector and extract data packets from the logical signals received through the electrical connector, which data packets are in accordance with the USB standard; wherein said USB controller comprises a USB-defined interface for sending and receiving the USB-defined data packets via a USB-defined bus and a command interpreter which interprets read and write block commands contained in the extracted USB-defined data packets into actions for said flash memory and an address resolver which is adapted to translate a logical address within the defined logical address space from said USB-defined data packets into a physical address in one or more of said at least one flash memory module; wherein the USB controller, using the USB-defined interface, receives the USB-defined data packets from a host via the USB-defined bus; in response to extracting a packet containing a data write command, the USB controller obtains therefrom the write command, a write logical address within the defined logical address space, a length of data to be written and data to be written, wherein the obtaining is in accordance with the USB standard, and thereafter converts the write logical address into a write physical address within one or more of the blocks of memory cells and writes the data to be written into the memory cells having the write physical address; and in response to extracting a packet containing a data read command, the USB controller obtains therefrom the read command and a read logical address within the defined logical address space, wherein the obtaining is in accordance with the USB standard, and thereafter converts the read logical address into a read physical address within one or more of the blocks of memory cells, reads the data from the memory cells having the read physical address and sends the read data through the electrical connector as another packet in accordance with the USB standard.
17. The system of claim 16, wherein the USB controller is further configured to write the received data into the flash memory system and read data from the flash memory system only in response to packets in accordance with the USB standard.
18. The system of claim 17 wherein the portable memory device has only one electrical bus connector.
19. A method of using a flash memory device, comprising:
in a unitary flash memory device having an electrical connector configured in accordance with a USB standard and having at least one flash memory module wherein the electrical connector of said device is configured to be removably coupled to a USB port on a host system: receiving a packet in accordance with the USB standard through said electrical connector; and under the control of a USB controller within the flash memory device, identifying said packet as a read packet or a write packet in accordance with the USB standard; extracting a read command from the packet if identified as a read packet or a write command from the packet if identified as a write packet in accordance with the USB standard; and executing the extracted read or write command to perform respective read or write actions within said at least one flash memory module.
20. A method according to claim 19, additionally comprising:
utilizing for the flash memory module a defined logical address space; under the control of the USB controller within the flash memory device,
extracting from the packet a logical address within the logical address space of the flash memory module, wherein the extracting is in accordance with the USB standard;
converting the logical address into a physical address within the at least one flash memory module; and
performing a data read or write action at the physical address in the at least one flash memory module.
21. A method according to claim 20 wherein said read packet contains a read command and a read logical address within the logical address space of the flash memory module and wherein said write packet contains a write command, a write logical address within the logical address space of the flash memory module, a length of data to be written and data to be written.
22. A method according to claim 19, wherein said unitary flash memory device has only one electrical bus connector.
23. A method according to claim 19, further comprising:
extracting at least one parameter from said received packet according to the identification of the packet as a read packet or a write packet, wherein the extracting is in accordance with the USB standard.
24. A flash memory device, comprising:
(a) at least one flash memory module; (b) an electrical connector configured in accordance with a USB standard and adapted for connection to a USB-defined bus in accordance with the USB standard; and (c) a USB controller adapted for communicating with a host via the USB-defined bus and for managing the at least one flash module; wherein said USB controller comprises:
a USB-defined interface for interfacing with the host via the USB-defined bus;
a packet extractor adapted for receiving USB-defined data packets through the electrical connector and extracting information from the USB-defined data packets in accordance with the USB standard;
a command interpreter which interprets commands extracted from the USB-defined data packets into actions for said at least one flash memory module;
an address resolver which is adapted to translate a logical address extracted from said USB-defined data packets into a physical address in one or more of said at least one flash memory module; and
a data handler adapted to convey data extracted from said USB-defined data packets to said least one flash memory module.
25. A device according to claim 24, wherein the flash memory device has only a single electrical bus connector.
26. A device according to claim 24, wherein said USB controller is adapted to extract packets containing audio data in accordance with the USB standard.
27. A device according to any of claims 14, 15 or 24, wherein said USB controller is implemented as a single integrated circuit.
28. A device according to claim 27, wherein said single integrated circuit comprises an ASIC (application specific integrated circuit).
29. The flash memory device of claim 24, wherein the commands include one or more of read, write and erase commands and the one or more actions correspondingly include one or more of read, write and erase.
30. A method of storing and retrieving data, comprising:
utilizing a flash memory system having integrally formed therewith and protruding therefrom an electrical connector in accordance with a USB standard, the memory system having memory cells organized into blocks of memory cells and a USB controller comprising command interpreter, address resolver and data handler functions; utilizing for the memory cells within the flash memory system a defined logical address space; receiving, through the electrical connector, logical signals that contain at least data write and data read packets; under the control of the USB controller,
communicating with a host via the electrical connector;
extracting the data write and data read packets from the logical signals in accordance with the USB standard; and
in response to extracting a data write packet from the received logical signals, obtaining from the extracted data write packet a write command, a write logical address within the defined logical address space, a length of data to be written and data to be written, wherein the obtaining is in accordance with the USB standard, and thereafter sending substantially in parallel the write command to the command interpreter function, the write logical address to the address resolver function to convert the logical address into a physical address within the memory system and the data to be written to the data handler function to write the received data into the memory cells having the physical address.
31. A method according to claim 30, wherein in response to extracting a data read packet from the received logical signals, obtaining from the extracted data read packet a read command and a read logical address within the defined logical address space, wherein the obtaining is in accordance with the USB standard, and thereafter sending substantially in parallel the read command to the command interpreter function, the read logical address to the address resolver function to convert the read logical address into a read physical address within the flash memory system, and the data to the data handler, and thereafter sending the read data through the electrical connector as another packet in accordance with the USB standard.
32. A method of storing and retrieving data, comprising:
utilizing, for storing and retrieving the data, a flash memory system having integrally formed therewith and protruding therefrom an electrical connector configured in accordance with a USB standard, the flash memory system having memory cells organized into blocks of memory cells, the memory cells of the individual blocks being simultaneously erasable before data are rewritten therein; utilizing for the memory cells within the flash memory system a defined logical address space; receiving and transmitting logical signals in accordance with the USB standard to and from the flash memory system through the electrical connector; under the control of a USB controller within the flash memory system,
communicating with a host via the electrical connector;
in response to receiving through the electrical connector those of the logical signals that contain a USB-defined data packet that includes a write command, obtaining from the USB-defined data packet, in accordance with the USB standard, the write command, a write logical address within the defined logical address space, a length of data to be written and data to be written, converting the write logical address into a write physical address in a block within the flash memory system and writing the data to be written into the block within the flash memory system at the write physical address; and
in response to receiving through the electrical connector those of the logical signals that contain a USB-defined data packet that includes a read command, obtaining from the USB-defined data packet, in accordance with the USB standard, the read command and a read logical address within the defined logical address space, converting the read logical address into a read physical address in a block within the flash memory system, reading the data from the read physical address in the block and sending the read data through the electrical connector as logical signals in accordance with the USB standard.
33. The method of any of claims 8, 19 or 32, wherein said flash memory system comprises a form factor smaller than a PCMCIA form factor.
34. The method of claim 32, wherein receiving and sending logical signals to and from the flash memory system through the electrical connector occur exclusively in accordance with the USB standard.
35. The method of claim 32, wherein said electrical connector is the only electrical bus connector that is connected with the flash memory system.
36. The method of claim 30 or claim 32 further comprising identifying said received logical signals as read packets or write packets.
37. A USB flash memory device for connecting to a USB-defined bus, comprising:
(a) at least one flash memory module for storing data; (b) a USB connector adapted 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 operatively coupled to said USB connector, the USB controller adapted for communicating with a host via the USB-defined bus as well as for controlling said at least one flash memory module according to at least one packet received via the USB connector 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 adapted 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 adapted 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 adapted 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 adapted 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, wherein the extracting is in accordance with the USB standard; 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 in accordance with the USB standard, said command being passed to said USB controller.
38. The flash memory device of claim 37, further comprising:
(i) an address resolver module 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.
39. The flash memory device of claim 38, 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.
40. The flash memory device of claim 38, wherein said command is 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, such that said address resolver module resolves said logical address to a physical address of said at least one flash memory module.
41. The flash memory device of claim 38, further comprising:
(j) a data handler for performing an error detection and correction routine for said at least one flash memory module.
42. The flash memory device of claim 41, further comprising:
(k) a status handler for sending a status packet concerning a status of said at least one flash memory module according to said USB functional packet.
43. The flash memory device of claim 42, further comprising:
(l) an 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.
44. 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 as well as 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 said USB-defined packets via said USB connector and said USB-defined bus;
a packet extractor for extracting information from the USB-defined data packets received via said USB-defined interface;
a command interpreter which is adapted to interpret commands 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, wherein the USB controller is further adapted to use the corresponding physical addresses when issuing commands to said at least one flash memory module.
45. The USB flash memory device of claim 44, wherein the commands include one or more of read, write and erase commands and the one or more actions correspondingly include one or more of read, write and erase.
46. 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 which is adapted to communicate with the host via the USB connector and the USB-defined bus and which is adapted to carry out at least one of reads and writes in the at least one flash memory module in accordance with the USB-defined packets, wherein the USB controller comprises a packet extractor adapted for receiving USB-defined data packets via the USB connector and extracting information from the USB-defined data packets, and a command interpreter adapted to interpret commands extracted from the USB-defined data packets into actions for the at least one flash memory module, and wherein the USB controller is configured to build an identification structure within the USB flash memory device for holding memory size and manufacturing type information of the at least one flash memory module determined by the USB controller and use the memory size and manufacturing type information to build an address translation table for use by the USB controller.
47. The USB flash memory device according to claim 46, wherein the device is provided as an integral unit with the USB connector.
48. The USB flash memory device according to claim 46, wherein the USB controller further comprises:
an address resolver module which is adapted to translate a logical address from the USB-defined data packets into a physical address of the at least one flash memory module using the address translation table.
49. The USB flash memory device according to claim 48, wherein the at least one flash memory module comprises a plurality of flash memory modules.
50. The USB flash memory device according to claim 48, 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 resolve the logical address to a physical address of the at least one flash memory module.
51. The USB flash memory device according to claim 48, 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 resolve the logical address to a physical address of the at least one flash memory module.
52. The USB flash memory device according to claim 46, further comprising:
a data handler adapted for performing an error detection and correction routine on the at least one flash memory module.
53. The USB flash memory device according to claim 46, further comprising:
a status handler adapted 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 46, 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 46, wherein the USB controller is implemented as a single integrated circuit.
56. The USB flash memory device according to claim 46, wherein the information extracted from the USB-defined data packets includes a write command and the USB controller is configured to interpret the write command and extract data to be written from the USB-defined data packets.
57. The USB flash memory device according to claim 46, wherein the USB-defined bus is configured to be connected to the host and the host is configured to provide commands to the USB controller using a standard protocol.
58. The USB flash memory device according to claim 46, further comprising an address/data bus for interconnecting the USB controller and the at least one flash memory module.
59. The USB flash memory device according to claim 58, wherein the address/data bus is configured to transfer addresses and data associated with the actions to and from the at least one flash memory module.
60. The USB flash memory device according to claim 46, 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.
61. The USB flash memory device according to claim 46, wherein the USB controller is configured to negotiate with the at least one flash memory module to determine at least one feature of the flash memory module.
62. The USB flash memory device according to claim 61, wherein the USB controller is configured to notify the host that it is ready for use after the negotiation.
63. The USB flash memory device according to claim 62, wherein the notification includes at least one USB-defined data packet.
64. The USB flash memory device according to claim 63, wherein at least one USB-defined data packet contains information of the at least one feature of the at least one flash memory module.
65. The USB flash memory device according to claim 46, further comprising:
memory technology drivers, each adapted for performing actions on a respective type of flash memory module; and an identification module adapted for determining a type of the at least one flash memory module and for determining, in accordance with the determined type, which one of the memory technology drivers to activate for performing the actions.
66. The USB flash memory device according to claim 46, wherein the USB controller includes a plurality of chip enable signal lines for attaching to a plurality of flash memory modules.
67. The USB flash memory device according to claim 46, wherein the USB connector is attached to the USB controller by a combined physical/logical interface.
68. The USB flash memory device according to claim 67, wherein the combined physical/logical interface is part of the USB controller.
69. The USB flash memory device according to claim 46, further comprising:
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 is configured to act on the token packet; wherein the packet extractor is serially connected after the functional interface.
70. The USB flash memory device according to claim 46, wherein the USB controller is configured to invoke:
a memory technology driver to control the at least one flash memory module in response to commands extracted from the USB-defined data packets.
71. The USB flash memory device of claim 46, wherein the commands include one or more of read, write and erase commands and the one or more actions correspondingly include one or more of read, write and erase.
72. A data-processing method performed in a USB flash memory device that includes at least one flash memory module, a USB controller, and a USB connector for connecting the USB controller to a host via a USB-defined bus, the USB controller including a USB-defined interface for communicating with the host via the USB-defined bus, comprising:
receiving, at the USB-defined interface, USB-defined data packets from the host via the USB-defined bus and the USB connector; 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 memory size and manufacturing type information;
extracting information from the USB-defined data packets;
interpreting a command extracted from at least one of the USB-defined data packets into one or more actions, each command having at least one associated logical address extracted from the at least one USB-defined data packet; and
converting the logical address into a physical address of the at least one flash memory module using the address translation table; and
performing the one or more actions at the physical address of the at least one flash memory module.
73. The data-processing method according to claim 72, further comprising storing the memory size and manufacturing type information in an identification structure within the USB flash memory device.
74. The data-processing method according to claim 72, 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.
75. The data-processing method according to claim 72, including:
under the control of the USB controller,
extracting a read command 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
transmitting the retrieved data to the host via the USB connector and the USB-defined bus.
76. The data-processing method according to claim 72, including:
under the control of the USB controller, executing a memory technology driver to perform the one or more actions corresponding to the command on data associated with the physical address.
77. The data-processing method according to claim 72, 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.
78. The data-processing method according to claim 77, further comprising:
under the control of the USB controller, notifying the host after its negotiation with the at least one flash memory module.
79. The data-processing method according to claim 72, wherein the USB flash memory device includes memory technology drivers, each adapted for performing actions on a respective type of flash memory module, the method further comprising using the manufacturing type to determine a respective memory technology driver to activate for the at least one flash memory module.
80. The data-processing method according to claim 72, including:
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.
81. The data-processing method according to claim 72, wherein the command includes one or more of read, write and erase commands and the one or more 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.