USB flash memory device with integrated USB controller
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.
Latest Sandisk IL, Ltd Patents:
This application is a continuation reissue application of reissue application Ser. No. 10/292,868, filed Nov. 13, 2002 now U.S. Pat. No. Re. 42,443, which is a reissue application of U.S. Ser. No. 09/285,706, filed on Apr. 5, 1999, now U.S. Pat. No. 6,148,354, issued on Nov. 14, 2000.
More than one reissue application has been filed for the reissue of U.S. Pat. No. 6,148,354. The reissue applications are application Ser. No. 10/292,868, filed Nov. 13, 2002, now U.S. Pat. No. Re. 42,443, issued on Jun. 7, 2011; application Ser. No. 10/293,986, filed Nov. 14, 2002, now U.S. Pat. No. Re. 42,397, issued on May 24, 2011; application Ser. No. 13/005,501, titled “USB Flash Memory Device with Integral Memory Technology Driver,” filed Jan. 12, 2011, and application Ser. No. 13/005,505, (the present application), filed Jan. 12, 2011, all of which are reissues of U.S. Pat. No. 6,148,354 and are hereby incorporated by reference in their entirety.
FIELD AND BACKGROUND OF THE INVENTIONThe present invention is related to semiconductor memory devices, and in particular to erasable and programmable nonvolatile memory modules which are connected to a host platform using the USB PC Bus.
Erasable and programmable non-volatile memory modules, hereinafter referred to as flash memory or flash devices, are known in the art for storage of information. Flash devices include electrically erasable and programmable read-only memories (EEPROMs) made of flash-type, floating-gate transistors and are non-volatile memories similar in functionality and performance to EPROM memories, with an additional functionality that allows an in-circuit, programmable, operation to erase pages of the memory. One example of an implementation of such a flash device is given in U.S. Pat. No. 5,799,168, incorporated by reference as if fully set forth herein.
Flash devices have the advantage of being relatively inexpensive and requiring relatively little power as compared to traditional magnetic storage disks. However, in a flash device, it is not practical to rewrite a previously written area of the memory without a preceding page erase of the area. This limitation of flash devices causes them to be incompatible with typical existing operating system programs, since data cannot be written to an area of memory within the flash device in which data has previously. been written, unless the area is first erased. A software management system, such as that disclosed in U.S. Pat. No. 5,404,485, filed on Mar. 5, 1993, which is incorporated as if fully set forth herein, is required to manage these functions of the flash memory device.
Currently, these flash memory devices have a second limitation, which is that they must be either attached statically to the host platform, or attached and detached dynamically using the PCMCIA [Personal Computer Memory Card International Association] interface. Both implementations have drawbacks, including difficulty of use and high cost.
A more useful implementation would follow the USB standard, as described in the USB Specification Version 1.1 which is incorporated as if fully set forth herein. The USB standard offers a smaller form factor and greater ease of use for the end user, while lowering the cost of the implementation. This standard is specified to be an industry-wide standard promoted by companies such as Compaq Computer Corporation, Microsoft, IBM and Intel to serve as an extension to the PC architecture with a focus on Computer Telephony Integration (CTI), the consumer, and productivity applications.
The criteria which were applied to define the architecture for the USB standard include the ease of PC (personal computer) peripheral expansion, low cost, support of transfer rates up to 12 Mb/second and full support for real-time data, voice, audio, and compressed video. This standard also offers protocol flexibility for mixed-mode isochronous data transfers and asynchronous messaging, integration in commodity device technology and provision of a standard interface for rapid integration into any given host product. In addition, the USB standard represents a single model for cabling and attaching connectors, such that all of the details of the electrical functions, including bus terminations, are isolated from the end user. Through the standard, the peripheral devices are self-identifying, and support automatic mapping of functions to a driver. Furthermore, the standard enables all peripheral devices to be dynamically attachable and re-configurable.
A system constructed according to the USB standard is described by three separate, defined areas: USB interconnection, USB devices and the USB host platform. The USB interconnection is the manner in which USB devices are connected to, and communicate with, the host platform. The associated functions and components include the bus topology, which is the connection model between USB devices and the host platform.
The USB physical interconnection has a tiered star topology. A hub is at the center of each star. Each wire segment is a point-to-point connection between the host platform and a hub or function, or a hub connected to another hub or function.
In terms of a capability stack, the USB tasks which are performed at each layer in the system include a data flow model and a schedule. A data flow model is the manner in which data moves in the system over the USB between data producers and data consumers. A schedule determines access to the interconnection, which is shared. Such scheduling enables isochronous data transfers to be supported and eliminates arbitration overhead.
The USB itself is a polled bus. The host controller on the host platform initiates all data transfers. All bus transactions involve the transmission of up to three packets. Each transaction begins when the host controller, on a scheduled basis, sends a USB packet describing the type and direction of transaction, the USB device address, and endpoint number. This packet is referred to as the “token packet.” The USB device, to which the packet is addressed, selects itself by decoding the appropriate address fields. In a given transaction, data is transferred either from the host platform to a device or from a device to the host platform. The direction of data transfer is specified in the token packet. The source of the transaction then sends a data packet or indicates that the source has no data to transfer. The destination, in general, responds with a handshake packet indicating whether the transfer was successful.
The USB data transfer model between a source and destination on the host platform and an endpoint on a device is referred to as a “pipe”. There are two types of pipes: stream and message. Stream data has no USB-defined structure, while message data does. Additionally, pipes have associations of data bandwidth, transfer service type, and endpoint characteristics like directionality and buffer sizes. Most pipes come into existence when a USB device is configured. One message pipe, the default control pipe, always exists once a device is powered, in order to provide access to the configuration, status, and control information for the device.
The transaction schedule for the USB standard permits flow control for some stream pipes. At the hardware level, this prevents situations in which buffers experience underrun or overrun, by using a NAK handshake to throttle the data rate. With the NAK handshake, a transaction is retried when bus time is available. The flow control mechanism permits the construction of flexible schedules which accommodate concurrent servicing of a heterogeneous mix of stream pipes. Thus, multiple stream pipes can be serviced at different intervals with packets of different sizes.
The USB standard, as described, has three main types of packets, including token packets, data packets and handshake packets. An example of each type of packet is shown in background art
A token packet 10, as shown in background art
An ADDR field 14 specifies the address, while an ENDP field 16 specifies the endpoint for token packet 10. For OUT and SETUP transactions, in which PID field 12 specifies that token packet 10 is an OUT packet type or a SETUP packet type, ADDR field 14 and ENDP field 16 uniquely identify the endpoint for receiving the subsequent data packet, shown in
As shown in background art
Background art
These three different types of packets are exchanged during various phases of the transaction which includes a USB device. A schematic block diagram of the functional blocks in a typical USB device 32 is shown in
The USB specification does not define the relationship between different entities in USB abstract device 32, however. Rather, the USB specification describes only the requirements for the packets, and for the electrical and physical connection between USB abstract device 32 and the bus. Therefore the connections and relationships shown in background art
Unfortunately, no such architecture exists for a flash memory device containing one or more flash memory modules, which would enable the flash memory device to connect to a bus defined according to the USB specification and thereby to form part of a USB system on a host platform. For example, U.S. Pat. No. 5,799,168 does not teach or suggest such an implementation for the flash device. As mentioned previously, such an architecture would be particularly useful for a number of reasons, including low cost, ease of use and transparency to the end user.
There is thus a need for, and it would be useful to have, an architecture for defining and describing a flash memory device which is compatible with a USB system and which follows the USB specification, such that the flash memory device could sit on a USB-defined bus and communicate with the host platform through this bus.
The present invention is of a flash memory device, containing one or more flash modules, in which the flash memory is mapped to the address space of an ASIC or a controller which has a USB-defined electrical interface and a USB-defined logical interface. This controller/ASIC (hereinafter termed a “controller”) supports the USB functionality according to the USB standard, thereby supporting enumeration onto the USB bus, as well as data reception and transmission over USB pipes to and from USB endpoints. This controller also supports the functionality and control of the flash memory device, as well as the processing of command and data packets from the host controller. The host controller uses one of several possible protocols, either standard or proprietary, to signal the next command to be performed to the USB flash controller. Thus, the entire device acts as a dynamically attachable/detachable non-volatile storage device for the host platform.
According to the present invention, there is provided 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; and (c) a USB controller for controlling the at least one flash memory module and for controlling the USB connector according to at least one packet received from the USB-defined bus, such that data is written to and read from the at least one flash memory module.
Hereinafter, the term “computer” includes, but is not limited to, personal computers (PC) having an operating system such as DOS, Windows™, OS/2™ or Linux; Macintosh™ computers; computers having JAVA™-OS as the operating system; and graphical workstations such as the computers of Sun Microsystems™ and Silicon Graphics™, and other computers having some version of the UNIX operating system such as AIX™ or SOLARIS™ of Sun Microsystems™; or any other known and available operating system, including operating systems such as Windows CE™ for embedded systems, including cellular telephones, handheld computational devices and palmtop computational devices, and any other computational device which can be connected to a network. Hereinafter, the term “Windows™” includes but is not limited to Windows95™, Windows 3.X™ in which “x” is an integer such as “1”, Windows NT™, Windows98™, Windows CE™ and any upgraded versions of these operating systems by Microsoft Inc. (Seattle, Wash., USA).
DETAILED DESCRIPTION OF THE INVENTIONThe present invention is of a flash memory device, containing one or more flash modules, in which the flash memory is mapped to the address space of an ASIC or a controller which has a USB-defined electrical interface and a USB-defined logical interface. This controller/ASIC (hereinafter termed a “controller”) supports the USB functionality according to the USB standard, thereby supporting enumeration onto the USB bus, as well as data reception and transmission over USB pipes to and from USB endpoints. This controller also supports the functionality and control of the flash memory device, as well as the processing of command and data packets from the host controller. The host controller uses one of several possible protocols, either standard or proprietary, to signal the next command to be performed to the USB flash controller. Thus, the entire device acts as a dynamically attachable/detachable non-volatile storage device for the host platform.
While the invention is susceptible to various modifications and can be implemented using many alternative forms, the embodiment is shown by way of example in the drawings and will be described in details in the following pages. It should be understood that one of ordinary skill in the art appreciates that the present invention could be implemented in various other ways. The intention is to cover all modifications and alternatives falling within the spirit of the current invention.
The principles and operation of a USB flash device and system according to the present invention may be better understood with reference to the drawings and the accompanying description, it being understood that these drawings are given for illustrative purposes only and are not meant to be limiting.
Referring now to the drawings,
Host platform 44 is connected to USB flash device 46 according to the present invention through a USB cable 48. Host platform 44 connects to USB cable 48 through a USB host connector 50, while USB flash device 46 connects to USB cable 48 through a USB flash device connector 52. Host platform 44 features a USB host controller 54 for controlling and managing all USB transfers on the USB bus.
USB flash device 46 features a USB flash device controller 56 for controlling the other components of USB flash device 46 and for providing an interface for USB flash device 46 to the USB bus, USB flash device connector 52 and at least one flash memory module 58. Flash memory module 58 is preferably an array of flash memory modules 58 in which the data is stored.
Whenever USB flash device 46 becomes connected to host platform 44, a standard USB enumeration process takes place. In this process host platform 44 configures USB flash device 46 and the mode of communication with USB flash device 46. Although there are many different methods for configuring USB flash device 46, for the purposes of clarity only and without intending to be limiting, the present invention is explained in greater detail below with regard to a method in which host platform 44 issues commands and requests to USB flash device 46 through one endpoint. Host platform 44 queries USB flash device 46 through the other endpoint for status changes, and receives related packets if any such packets are waiting to be received.
Host platform 44 requests services from USB flash device 46 by sending request packets to USB host controller 54. USB host controller 54 transmits packets on USB cable 48. These requests are received by USB flash device controller 56 when USB flash device 46 is the device on the endpoint of the request. USB flash device controller 56 then performs various operations such as reading, writing or erasing data from or to flash memory module(s) 58, or supporting basic USB functionality such as device enumeration and configuration. USB flash device controller 56 controls flash memory module(s) 58 by using a control line 60 to control the power of flash memory module(s) 58, and also through various other signals such as chip enable, and read and write signals for example. Flash memory module(s) 58 are also connected to USB flash device controller 56 by an address/data bus 62. Address/data bus 62 transfers commands for performing read, write or erase commands on flash memory module(s) 58, as well as the addresses and data for these commands as defined by the manufacturer of flash memory module(s) 58.
In order for USB flash device 46 to notify host platform 44 on the result and status for different operations requested by host platform 44, USB flash device 46 transmits status packets using the “status end point”. According to this procedure, host platform 44 checks (polls) for status packets and USB flash device 46 returns either an empty packet if no packets for new status messages are present, or alternatively returns the status packet itself.
A more detailed structure of the functional components of USB flash device 46 is shown in
Connector interface 64 then receives these packets through a first interface component, which is a combined physical and logical interface 66. A functional interface 68 is specifically designed to receive token packets as defined in the USB specification and as previously described with regard to
USB flash device 46 also features an application packet extractor 70 which extracts the application data and commands from the USB application packets, such that application packet extractor 70 supports only application related packets. Next, any requests to USB flash device 46 by host platform 44 (not shown), in the form of read, write, identify and erase commands, are interpreted by an application command interpreter 72. For any commands which involve data or an address, such as read, write and erase commands, an address resolve module 74 translates the address from the logical address space to the physical address space. Host platform 44 (not shown) relates to a linear address space of logical addresses, while USB flash device 46 contains at least one, and preferably a plurality of, flash modules 58, each of which has a physical address space. Thus, a translation must be performed between the logical address space of host platform 44 (not shown) and physical address space or spaces of USB flash device 46. There are many ways to implement such a translation which are suitable for the present invention. One example of a suitable implementation of an address translation method is described with regard to U.S. Pat. No. 5,404,485, previously incorporated by reference as if fully set forth herein, which teaches a method for managing a flash memory as a flash disk and which is suitable for operation with the present invention.
A data handler 76 handles data related aspects of any received commands, and conveying the data through functional interface 68 to and from flash module(s) 58. Optionally and preferably, data handler 76 performs any error correction and detection methods. Application command interpreter 72, data handler 76 and address resolve module 74 all operate with an underlying Memory Technology Driver (MTD) 78 to write, read or erase a particular flash module 58 and the desired address on that flash module 58.
Host platform 44 checks for status changes in USB flash device 46 and reads status packets from USB flash device 46 when a new status packet is available. Using these status packets, USB flash device 46 can transmit, to host platform 44, the results of different commands issued by host platform 44 in its requests (not shown). For example, the read command status packet contains one of the available status words such as “success”, “error” or “invalid address”, which enables host-platform 44 to determine the result of the read command (not shown). Similarly, the erase status packet contains a status word indicating the completion of the erase process. A write status packet is used by USB flash device 46 to notify host platform 44 about the result of the write command, for example whether the command was successful or erroneous, and whether USB flash device 46 is ready for additional write requests from host platform 44.
A Memory Technology Driver, or MTD 78 typically contains routines to read, write and erase the flash memory device controlled by the controller operating MTD 78. In addition, MTD 78 optionally contains an identification routine for recognizing the proper type of flash memory device for which MTD 78 was designed, so that the controller can determine which MTD should be activated upon interacting with a particular flash memory device array. In addition, an identification routine should be able to detect the size of the array of flash memory devices, including the number of flash memory devices within the array, and various features of the flash array geometry, such as interleaving and bus width. This information later enables host platform 44 platform to determine the address space and size of the storage media. U.S. Pat. No. 5,799,168, previously incorporated by reference, discloses an example of such an MTD for a flash device.
Using the above described protocol and architecture, host platform 44 can optionally implement any application which is implementable with any regular memory mapped or I/O mapped flash memory device. For example, host platform 44 can give a standard block device interface to each application, such as a magnetic storage medium “hard disk” drive, as disclosed in the previously described U.S. Pat. No. 5,404,485.
As an example of a preferred embodiment of the present invention, the operation of a host system connected to a USB flash device according to the present invention is described with regard to the processes of identifying, programming, reading and erasing the flash device. For the purposes of illustration only and without intending to be limiting in any way, the exemplary USB flash device has an array of two flash memory modules, each of which is 64 Mbit in size. The address translation table is within the flash device so that host platform operates with logical addresses. All commands and return codes between the flash device and the host platform are carried on USB data packets, and are transferred through USB data pipes. The exact structure of the packets, pipes and timings are described in the USB specification.
The operation of the exemplary device and system according to the present invention is as follows. When the USB flash device is first connected to the host platform, the USB host controller assigns an address to the USB flash device on the USB bus, and also assigns resources as described in the USB specification. The USB flash device actually asks the host platform to assign these resources, and must inform the host platform how much of these resources are needed. Thus, the USB flash disk can optionally support slower device speeds if the USB host platform has already allocated resources to other devices.
The USB controller also negotiates with the flash modules and determines the size and manufacturing type of these modules. The controller then builds an identification structure holding this information, as well as the translation table and logical address space.
After the USB host controller identifies the USB flash device, the host platform often uploads a USB client driver. The driver issues an identification request command to the USB host controller, causing the controller to transmit an identification data packet 80, shown in
In response to the “identify” command, the flash device then sends an identification data packet 84, shown in
All of the packets described in this example are only data packets which are sent on the USB bus. Before each data packet is sent, a USB token packet is transmitted, instructing the USB controller as to the identity of the device end point to which the data packet should be transmitted. Upon successful reception of the packet, the USB controller issues a USB ACK packet as described in the USB specification.
Once the device drivers in the host platform receive this status packet, the drivers can start issuing read and write commands to the USB flash device with the application commands. When a write request is sent, a USB data packet with the operation code for the “write” command, and the buffer containing the data, is transferred to the USB flash device. A write data packet 90 is shown in
When the flash controller finishes the writing process, the controller signals to the host platform that the status of the USB flash memory device has changed, by sending a “write status” packet 100, as shown in
As shown in
When the flash controller receives the data from the flash device, either after the read command was issued, or if an error occurred, the flash controller sends a signal to the host platform to indicate that a new status packet must be read. The host platform issues a read request and receives a “read status” packet 110 as shown in
When the host platform needs to erase an erase unit in the flash device, the host platform issues an “erase request” packet 118, shown in
The erase process generally takes more time then a read or write process. When this erase process is finished, the controller notifies the host platform a new status packet is ready to transmit. The controller then transmits an “erase status” packet 124, as shown in
It will be appreciated that the above descriptions are intended only to serve as examples, and that many other embodiments are possible within the spirit and the scope of the present invention.
Claims
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.
4203001 | May 13, 1980 | Condon |
4958342 | September 18, 1990 | Williams et al. |
4979167 | December 18, 1990 | McCool |
5067105 | November 19, 1991 | Borkenhagen et al. |
5226168 | July 6, 1993 | Kobayashi et al. |
5291584 | March 1, 1994 | Challa et al. |
5297148 | March 22, 1994 | Harari et al. |
5341330 | August 23, 1994 | Wells et al. |
5375243 | December 20, 1994 | Parzych et al. |
5388083 | February 7, 1995 | Assar et al. |
5404485 | April 4, 1995 | Ban |
5412798 | May 2, 1995 | Garney |
5420412 | May 30, 1995 | Kowalski |
5434648 | July 18, 1995 | Koga et al. |
5437031 | July 25, 1995 | Kitami |
5459850 | October 17, 1995 | Clay et al. |
5485519 | January 16, 1996 | Weiss |
5491774 | February 13, 1996 | Norris et al. |
5509134 | April 16, 1996 | Fandrich et al. |
5519843 | May 21, 1996 | Moran et al. |
5524230 | June 4, 1996 | Sakaue et al. |
5532945 | July 2, 1996 | Robinson |
5535197 | July 9, 1996 | Cotton |
5535357 | July 9, 1996 | Moran et al. |
5544356 | August 6, 1996 | Robinson et al. |
5546402 | August 13, 1996 | Niijima et al. |
5568134 | October 22, 1996 | Cannon et al. |
5581723 | December 3, 1996 | Hasbun et al. |
5588146 | December 24, 1996 | Leroux |
5602987 | February 11, 1997 | Harari et al. |
5630093 | May 13, 1997 | Holzhammer et al. |
5659705 | August 19, 1997 | McNutt et al. |
5661677 | August 26, 1997 | Rondeau et al. |
5663901 | September 2, 1997 | Wallace et al. |
5684742 | November 4, 1997 | Bublitz et al. |
5719808 | February 17, 1998 | Harari et al. |
5724285 | March 3, 1998 | Shinohara |
5732092 | March 24, 1998 | Shinohara |
5745418 | April 28, 1998 | Ma et al. |
5760986 | June 2, 1998 | Morehouse et al. |
5774744 | June 30, 1998 | Story et al. |
5778418 | July 7, 1998 | Auclair et al. |
5781028 | July 14, 1998 | Decuir |
5784581 | July 21, 1998 | Hannah |
RE35881 | August 25, 1998 | Barrett et al. |
5799168 | August 25, 1998 | Ban |
5815426 | September 29, 1998 | Jigour et al. |
5822251 | October 13, 1998 | Bruce et al. |
5841424 | November 24, 1998 | Kikinis |
5845151 | December 1, 1998 | Story et al. |
5845313 | December 1, 1998 | Estakhri et al. |
5845332 | December 1998 | Inoue et al. |
5847997 | December 8, 1998 | Harada et al. |
5860124 | January 12, 1999 | Matthews et al. |
5860157 | January 12, 1999 | Cobb |
5867417 | February 2, 1999 | Wallace et al. |
5878142 | March 2, 1999 | Caputo et al. |
5890016 | March 30, 1999 | Tso |
5928347 | July 27, 1999 | Jones |
5928370 | July 27, 1999 | Asnaashari |
5935244 | August 10, 1999 | Swamy et al. |
5937423 | August 10, 1999 | Robinson |
5937425 | August 10, 1999 | Ban |
5938750 | August 17, 1999 | Shaberman |
5943692 | August 24, 1999 | Marberg et al. |
5949882 | September 7, 1999 | Angelo |
5963983 | October 5, 1999 | Sakakura et al. |
5974486 | October 26, 1999 | Siddappa |
5991194 | November 23, 1999 | Jigour et al. |
5991546 | November 23, 1999 | Chan et al. |
6003135 | December 14, 1999 | Bialick et al. |
6009480 | December 28, 1999 | Pleso |
6011486 | January 4, 2000 | Casey |
6011741 | January 4, 2000 | Wallace et al. |
6012103 | January 4, 2000 | Sartore et al. |
6016530 | January 18, 2000 | Auclair et al. |
6016553 | January 18, 2000 | Schneider et al. |
6028807 | February 22, 2000 | Awsienko |
6038320 | March 14, 2000 | Miller |
6038640 | March 14, 2000 | Terme |
6044428 | March 28, 2000 | Rayabhari |
6058441 | May 2, 2000 | Shu |
6067625 | May 23, 2000 | Ryu |
6069827 | May 30, 2000 | Sinclair |
6081850 | June 27, 2000 | Garney |
6088755 | July 11, 2000 | Kobayashi et al. |
6088802 | July 11, 2000 | Bialick et al. |
6102103 | August 15, 2000 | Zobel et al. |
6109939 | August 29, 2000 | Kondo et al. |
6128675 | October 3, 2000 | Ko |
6131141 | October 10, 2000 | Ravid |
6137710 | October 24, 2000 | Iwasaki et al. |
6145045 | November 7, 2000 | Falik et al. |
6145046 | November 7, 2000 | Jones |
6148354 | November 14, 2000 | Ban et al. |
6151657 | November 21, 2000 | Sun et al. |
6163816 | December 19, 2000 | Anderson et al. |
6168077 | January 2, 2001 | Gray et al. |
6170743 | January 9, 2001 | Okaue et al. |
6174205 | January 16, 2001 | Madsen et al. |
6182162 | January 30, 2001 | Estakhri et al. |
6199122 | March 6, 2001 | Kobayashi |
6216230 | April 10, 2001 | Rallis et al. |
6226202 | May 1, 2001 | Kikuchi |
6253300 | June 26, 2001 | Lawrence et al. |
6279069 | August 21, 2001 | Robinson et al. |
6279114 | August 21, 2001 | Toombs et al. |
6286087 | September 4, 2001 | Ito et al. |
6292863 | September 18, 2001 | Terasaki et al. |
6330624 | December 11, 2001 | Cromer et al. |
6330648 | December 11, 2001 | Wambach et al. |
6361369 | March 26, 2002 | Kondo et al. |
6370603 | April 9, 2002 | Silverman et al. |
6385667 | May 7, 2002 | Estakhri et al. |
6418501 | July 9, 2002 | Gama et al. |
6424524 | July 23, 2002 | Bovio et al. |
6425084 | July 23, 2002 | Rallis et al. |
6434648 | August 13, 2002 | Assour et al. |
6453414 | September 17, 2002 | Ryu |
6457099 | September 24, 2002 | Gilbert |
6488542 | December 3, 2002 | Laity |
6493770 | December 10, 2002 | Sartore et al. |
6671808 | December 30, 2003 | Abbott et al. |
6763399 | July 13, 2004 | Margalit et al. |
6920553 | July 19, 2005 | Poisner |
20030057285 | March 27, 2003 | Okaue et al. |
20040039854 | February 26, 2004 | Estakhri et al. |
20060230202 | October 12, 2006 | Lee |
1201235 | December 1998 | CN |
195 36 206 | April 1996 | DE |
196 36 087 | September 1997 | DE |
196 31 050 | February 1998 | DE |
0 392 895 | October 1990 | EP |
0 152 024 | June 1991 | EP |
0 703 544 | March 1996 | EP |
0 712 067 | May 1996 | EP |
0 859 325 | August 1998 | EP |
0 883 083 | December 1998 | EP |
0 883 084 | December 1998 | EP |
0 890 905 | January 1999 | EP |
0 929 043 | July 1999 | EP |
1 001 329 | May 2000 | EP |
0 912 939 | September 2001 | EP |
0 917 064 | November 2001 | EP |
0 775 956 | May 2002 | EP |
2 719 939 | November 1995 | FR |
2 291 990 | February 1996 | GB |
2298063 | August 1996 | GB |
2 304 428 | March 1997 | GB |
2 325 997 | December 1998 | GB |
01 115928 | May 1989 | JP |
05 016746 | January 1993 | JP |
06-111589 | April 1994 | JP |
06195524 | July 1994 | JP |
08 171623 | July 1996 | JP |
08-510072 | October 1996 | JP |
09-069067 | March 1997 | JP |
10-063442 | March 1998 | JP |
10-063804 | March 1998 | JP |
10-105296 | April 1998 | JP |
10-261774 | September 1998 | JP |
10-334206 | December 1998 | JP |
11-015928 | January 1999 | JP |
11-025681 | January 1999 | JP |
11-053485 | February 1999 | JP |
11-086578 | March 1999 | JP |
2000-207137 | July 2000 | JP |
1998-76475 | November 1998 | KR |
1998-79601 | November 1998 | KR |
1999-6604 | January 1999 | KR |
550454 | September 2003 | TW |
WO 87/07063 | November 1987 | WO |
WO 93/19419 | September 1993 | WO |
WO 94/20906 | September 1994 | WO |
WO 96/13004 | May 1996 | WO |
WO 98/03915 | January 1998 | WO |
WO 98/07255 | February 1998 | WO |
WO 98/29830 | July 1998 | WO |
WO 98/55912 | December 1998 | WO |
WO 99/01820 | January 1999 | WO |
WO 99/04368 | January 1999 | WO |
WO 99/08196 | February 1999 | WO |
WO 99/12101 | March 1999 | WO |
WO 99/45460 | September 1999 | WO |
WO 99/49470 | September 1999 | WO |
WO 00/07088 | February 2000 | WO |
WO 00/42491 | July 2000 | WO |
WO 00/49488 | August 2000 | WO |
WO 01/24054 | April 2001 | WO |
WO 03/030180 | April 2003 | WO |
WO 2007/146373 | December 2007 | WO |
- “8X930Ax Universal Serial Bus Microcontroller User's Manual,” Intel Corporation, Jul. 1996, 507 pages.
- “8x930Hx Universal Serial Bus Microcontroller—Product Review,” Intel, Oct. 1996, 34 pages.
- “A TrueFFS and FLite Technical Overview of M-Systems' Flash File Systems, Technology Brief V1.01,” M-Systems Flash Disk Pioneers, Oct. 1996, 9 pages.
- “Aladdin Announces eToken—Next Generation Security Key Based on Universal Serial Bus Port,” http://web.archive.org/web/20040414101246/www.ealaddin.com/news/1999/etokens/etoken.asp, Jan. 19, 1999, 3 pages.
- “Apple USB FAQ,” Apple Computer Inc., 1999, http://www.apple.com/usb/pdf/usb—FAQ-c.pdf, 3 pages.
- “Application Note (AP-684) Understanding the Flash Translation Layer (FTL) Specification,” Intel Corporation, Dec. 1998, 20 pages.
- “CY7C63000, CY7C63001, CY7C63100, CY7053101, CY7C63200, CY7C63201—Universal Serial Bus Microcontroller,” Cypress Semiconductor, Inc., Jun. 26, 1997, 27 pages.
- “Digital Eyes News—Q3 1998,” Scanner and Digital Camera News, Q3 1998—Digital Eyes, http://www.image-acquire.com/news/98/q3.shtml, pp. 1-9.
- “DiskOnChip® 2000—The Smallest Flash Disk in the World,” M-Systems Flash Disk Pioneers, Oct. 13, 1997, 5 pages.
- “DiskOnChip® 2000 MD-2200 Data Sheet,” M-Systems Flash Disk Pioneers, Jul. 1997, 15 pages.
- “Flash Memory,” Wikipedia, http://en.wikipedia.org/wiki/Flash—memory, retrieved Feb. 20, 2006, 5 pages.
- “Flash PC Card 2000 Data Sheet,” M-Systems Flash Disk Pioneers, Jun. 1997, http://www.m-sys.com/pcmcia.htm, Oct. 13, 1997, 15 pages.
- “FRCN Digital Imaging—SanDisk ImageMate USB CF Card Reader,” Jul. 12, 1999, http://www.quicknet.com/˜fren/SanDiskUSB.html.
- “FujiFilm—Image Memory Card Reader SM-R1 for Windows 98 / Macintosh—Owners' Manual,” 21 pages in English, 21 pages in French, 21 pages in German, 1999, 71 pages.
- “Generic Device Driver for Personal Computer Removable Devices,” IBM Technical Disclosure Bulletin, vol. 37, Issue 1, Jan. 1994, pp. 487-490.
- “Hardlock USB,” Aladdin, http://aladdin.de/produkte/hardlock/harlock—usb.html, retrieved Feb. 13, 2006, 2 pages.
- “IBM Smart Card Solution Elements—Overview,” Jul. 1997, 26 pages.
- “Information Technology—Reduced Block Commands, Working Draft.,” T10/1228D, Rev. 7, Mar. 8, 1999, 56 pages.
- “Information Technology—Reduced Block Commands,” Working Draft, T10/1228D Committee, Revision 6, Feb. 26, 1999, 53 pages.
- “Intel AP-684—Application Note: Understanding the Flash Translation Layer (FTL) Specification,” Intel Corporation, Dec. 1998, 20 pages.
- “Intel AP-686—Application Note: Flash File System Selection Guide,” Intel Corporation, Dec. 1998, 16 pages.
- “Interfacing the Intel Flash 28F001BX-T to Your 186 Based System,” Intel Corporation, Mar. 29, 1998, 14 pages.
- Introducing the FujiFilm MX-2700, the World's Smallest 2.3 Million-Pixel Digital Camera, http://www.businesswire.com/webbox/bw.020399/1096161.htm, Feb. 3, 1999, 2 pages.
- “M-Systems' DiskOnChip® 2000 Evaluation Board,” Jul. 1997 1 page.
- “PC Card Standard Release 7,” PCMCIA, vols. 1 through 11, http://www.pcmcia.org/pccard.htm, Mar. 2000.
- “PC Card Standard, vol. 1, Overview and Glossary,” PCMCIA/JEIDA, first printing Feb. 1999, 40 pages.
- “PC Card Standard, vol. 7, Media Storage Formats Specification,” PCMCIA/JEIDA, first printing Feb. 1999, 53 pages.
- “PC Card Standard, vol. 8, PC Card ATA Specification,” PCMCIA/JEIDA, first printing Feb. 1999, 39 pages.
- “PC-104 PCMCIA Module—User's Manual for Models PCM-3110, PCM-3111, PCM-3115B, PCM-3110B, PCM-3113, PCM-3114,” http://www.tempustech.com/pdf/3110manual.pdf, Jul. 1997, 78 pages.
- “PCMCIA Flash Disk—Removable Flash Disk for Embedded & Mobile Computers,” M-Systems Flash Disk Pioneers, Oct. 13, 1997.
- “PCMCIA SRAM & Linear Flash Cards by CI-Tech, Simple Technology, Centennial, Intel and KingMax,” Primary Simulation, Inc., 1995, 5 pages.
- “Portable Computing: Microsoft Delivers Second Phase of Portable Computing Initiative; Flash File System Facilitates Application Development of MS-DOS, Windows Software,” Edge: Working Group Computing Report, vol. 3, No. 101, Apr. 27, 1992, 4 pages.
- “Product Brief—AlphaPC 164LX Motherboard,” Alpha Processor Inc., Jan. 1999, 2 pages.
- “Questions and Answers about DiskOnChip® 2000,” M-Systems Flash Disk Pioneers, Jul. 1997, 4 pages.
- “Reduce Block Commands (RBC), Draft Proposal,” T10/97-260r2, Rev. 1, Jan. 16, 1998, 40 pages.
- “Report on the Japanese Nikon 900 Firmware Upgrade,” Digital Camera News, Jan. 30, 1999, 34 pages.
- “SanDisk ImageMate CompactFlash External Drive, Product Background,” SanDisk Corporation, Jan. 1999, 2 pages.
- “SanDisk Introduces New USB ImageMate; SanDisk ImageMate is a low-cost, easy-to-use external CompactFlash drive for desktop PCs and the new Apple iMac,” Business Wire, Oct. 27, 1998, http://library.northernlight.com/FC19981027...JqDmQPWAVRU0UIGRREdQx5HQ%3D%3D%cbx=0%3B1004, 3 pages.
- “SL11R USB Controller/16-Bit RISC Processor Data Sheet,” Cypress Semiconductor Corp., Dec. 3, 2001, pp. 1-85.
- “Sony Announces Memory Stick™ for Audio Application ‘Memory Stick™ Walkman’ and ‘MagicGate Memory Stick™’ to be launched,” Sep. 22, 1999, 3 pages.
- “SOYO SY-61EB Mainboard—Quick Start Guide,” Soyo Computer, Ver. 1.0, Sep. 1998, 14 pages.
- “The New WIBU-Key Copy Protection System v.2.50 Press Release,” Griffin Technologies, 1998, 3 pages.
- “Universal Serial Bus Mass Storage Class—Bulk-Only Transport,” RC3, Rev. 1.0, Mar. 29, 1999, 25 pages.
- “Universal Serial Bus Mass Storage Class—UFI Command Specification,” USB Implementers Forum, Rev. 10, Dec. 14, 1998, pp. 1-53.
- “USB ATAPI Intelligent Cables,” SCM Microsystems, 1999, 2 pages.
- “User Manual—DiskOnChip® 2000 PIK (Programmer and Integrator Kit),” M-Systems Flash Disk Pioneers, Jul. 1997, 7 pages.
- “User Manual—DiskOnChip® 2000 Utilities,” M-Systems Flash Disk Pioneers, Jul. 1997, 8 pages.
- “User Manual—DiskOnChip®-EVB ISA Adaptor for the DiskOnChip®,” M-Systems Flash Disk Pioneers, Nov. 1996, 6 pages.
- “VxWorks 5.4,” WindRiver Systems, 1999, 3 pages.
- “WindWord Newsletter—News and Information for Wind River Systems Customers,” WindRiver Systems, Winter 1998, 32 pages.
- “Word-Wide FlashFile™ Memory Family 28F160S5, 28F320S5, Advance Information,” Intel, Jun. 1997, 51 pages.
- “Written Comments by the Third Party Requester in an Inter Partes Reexamination,” filed in Reexamination Control No. 95/000,384, dated Apr. 13, 2010, 49 pages.
- Anderson, D., “Universal Serial Bus System Architecture,” MindShare, Inc., Jan. 1997, pp. 18-19, 24, 28-31, 48, 56-57, 83, . 95, 98-104, 109-111, 135-137, 146, 148, 151-153, 155-156, 178, 185, 233, 237, 247-248, 250-251, 270, 273.
- Auclair, D., “Optimal Solid State Disk Architecture for Portable Computers,” Presented at The Silicon Valley PC Design Conference, Jul. 9, 1991, 5 pages.
- Austrian Patent Office Search Report and Written Opinion issued in related Singapore Patent Application 200604735-1 on Nov. 16, 2009, 8 pages.
- Ben-Zeev, Y., “AP-DOC-010 Application Note—Designing with the DiskOnChip® 2000,” M-Systems Flash Disk Pioneers, Jul. 1997, 4 pages.
- Burskey. D., “Flash and EEPROM technologies combine on feature-rich MCUs,” Electronic Design, http://cma.zdnet.com, May 26, 1997, 11 pages.
- U.S. Appl. No. 60/116,006, filed Jan. 15, 1999, entitled “USB-Compliant Personal Key,” 23 pages.
- Claims as issued in U.S. Appl. No. 6,829,672, Reexamination Control No. 95/000,384.
- Cypress Semiconductor, “Universal Serial Bus Microcontroller,” Cypress Semiconductor Corporation, San Jose, CA, Oct. 1996—Revised Jun. 26, 1997, 35 pages.
- Davis, J., “Apple Licensing FireWire for a Fee,” CNET News, Jan. 16, 1999, 4 pages.
- Decision Granting-in-Part Petition for Extension of Time dated Dec. 12, 2008, 4 pages.
- Diamond, “Rio 500 Getting Started Guide,” Diamond Multimedia Systems © 1999, 2 pages.
- Dipert et al., “Designing with Flash Memory,” Annabooks © 1993, 1994, San Diego, CA, 431 pages.
- English translation of FR 2 719 939, published Nov. 17, 1995, 32 pages.
- European Patent Office Extended Search Report issued in co-pending European Patent Application 09010734.3 on Apr. 8, 2010, 9 pages.
- European Patent Office Extended Search Report, issued in co-pending European Patent Application 09013951.0 on Apr. 6, 2010, 8 pages.
- European Patent Office Interlocutory decision in Opposition proceedings dated Jan. 21, 2009, 38 pages.
- European Patent Office Summon To Attend Oral Proceeding in EP 1092193, Nov. 20, 1997, 20 pages.
- Fantom Drives, “Fantom Drives Embraces USB & iMac by Announcing USB Hard Disk Drive and CD-ReWritable Technology,” Fantom USB Highlights, Jan. 5, 1999, 3 pages, http://web.archive.org/web/20000526201655/fantomdrives.com/main—si.
- Fantom Drives, “Fantom Drives Ships USB Hard Disk Drives,” Fantom Drives, Apr. 5, 1999, 1 page, http://www.fantomdrives.com/press/articles/usbrelease.html.
- Grant, J., “A Historical Look at Hardware Token Compromises,” Black Hat USA 2004 Briefings, Jul. 28, 2004, 64 pages.
- Gupta, R.K., et al., “Introducing Core-Based System Design,” IEEE, Oct-Dec 1997, pp. 15-25.
- IC Card Expo Conference Proceedings, Santa Clara, CA, Jul. 25-27, 1994, 54 pages.
- IDS with references in Re-exam Control No. 95/000,384, filed Jul. 9, 2008, 73 pages.
- “IEEE Standard for a High Performance Serial Bus,” IEEE, IEEE Std 1394-1995, © 1996 by Institute of Electrical and Electronics Engineers, Inc., New York, NY, 393 pages.
- “Common Flash Memory Interface (CFI) Specification,” Intel Corp., Release 1.1, May 30, 1997, 16 pages.
- Inter Partes Reexamination Communication/Office Action dated Nov. 3, 2008, 22 pages.
- International Standard ISO/IEC 7816-1 through 7816-8, editions dated Sep. 1, 1995 through Oct. 1, 1999.
- Japanese Patent Office Action issued in co-pending Japanese Patent Appliation No. 2005-241989, dated Apr. 9, 2010, 8 pages.
- Japanese Patent Office Action issued in co-pending Japanese Patent Application No. 2007-085679, dated Apr. 9, 2010, 6 pages.
- Leibson, S., “Nonvolatile, in-circuit-reprogrammable memories,” EDN Magazine, Jan. 3, 1991, 12 pages.
- Mendelsohn, A., “A Solid State Disk Puts Flash to Work,” Computer Design, Feb. 1994, 4 pages.
- M-Systems, “DiskOnChip®2000 MD2200, MD2201 Data Sheet,” M-Systems Inc., Jun. 1998, 15 pages.
- M-Systems, “FlashLite 100 PC Card,” M-Systems Flash Disk Pioneers, Product Specifications, Jul. 1998, 34 pages.
- Multimedia Workshop Industry News, http://www.m2w.net/news/981019.html, Oct. 22, 1998, 3 pages.
- Paripatyadar, R., “1394 Overview,” IEEE 802 Plenary Tutorial, Nov. 10, 1998, 19 pages.
- Patent Owner's Response to Office Action, Feb. 3, 2009, 162 pages.
- Person, R., “Special Edition Using Windows 95,” Que Corporation, Chapter 9, 1996, pp. 265-273.
- Philips, “PDIUSBD12 USB interface device with parallel bus,” Philips Semiconductors—Asia Product Innovation Centre Data Sheet, Jan. 8, 1999, 45 pages.
- Request for Inter Partes Reexamination of U.S. Patent No. 6,829,672, dated Jul. 8, 2008, with transmittal form, 109 pages.
- Roberts, R., “NCITS-330 T10/1240-D Working Draft—Information Technology—Reduced Block Commands,” Revision 10a, Aug. 18, 1999, 46 pages.
- Schmidt, D., “AP-DOC-011 Application Note—Write Protecting the DiskOnChip® 2000,” M-Systems Flash Disk Pioneers, Aug. 1997, 4 pages.
- Shmuelli, S., Testimony relevant to SanDisk in Singapore proceedings, Apr. 30, 2004, p. 135, line 9 through p. 137, line 23, and p. 139, line 8 through p. 140, line 18.
- Toshiba, MOS Memory (Non-Volatile) Data Book, Toshiba Corporation, Sep. 1996, 166 pages.
- Toshiba, “Toshiba MOS Digital Integrated Circuit Silicon Gate CMOS,” Toshiba Corporation, Jul. 7, 1997, 34 pages.
- Translation of Japanese Office Action dated Nov. 2, 2007, for Application No. 2003-533286, 8 pages.
- Transmittal of Communication to Third Party Requester Inter Partes Reexamination / Decision Refusing Entry of Papers, re paper entitled “Expedited Petition Under 37 C.F R. §§ 1.182 and 1.183” dated Apr. 6, 2009, 7 pages.
- Transmittal of Communication to Third Party Requester Inter Partes Reexamination / Decision Refusing Entry of Papers re paper entitled “Opposition to Patent Owner'S Petition Under 37 C.F.R. § 1.956”, dated Apr. 6, 2009, 7 pages.
- Transmittal of Communication to Third Party Requester Inter Partes Reexamination / Decision Granting-in-Part Petition to Extend Page Limit for Response to Office Action, dated Apr. 6, 2009, 7 pages.
- Universal Serial Bus Mass Storage Class—Bulk-Only Transport, Revision 1.0, Sep. 31, 1999, pp. 1-22.
- Universal Serial Bus Mass Storage Class—Control/Bulk/Interrupt (CBI) Transport, Revision 1.0, Dec. 14, 1998, Technical Editors—Stevens, C.E., et al., pp. 1-26.
- Universal Serial Bus Mass Storage Class—UFI Command Specification, Revision 1.0, Dec. 14, 1998, pp. 1-53.
- Universal Serial Bus Mass Storage Class Specification Overview, V1.0 Revision, Oct. 22, 1998, Technical Editor—M. Williams, pp. 1-8.
- Universal Serial Bus Specification—Compaq, Intel, Microsoft, NEC, Revision 1.1, Sep. 23, 1998, pp. i-xvi (table of contents), 1-311, +4 pages (Engineering Change Notice—USB Cable Parameters, approved Nov. 23, 1999 by the USB Core Team).
- USB “Universal Serial Bus Device Class Definition for Mass Storage Devices, 0.90c Draft Revision,” Appendix B Solid State SCSA Command Set, 1996, 7 pages.
- USB Universal Serial Bus Mass Storage Class—Bulk-Only Transport, Revision 1.0, 1999, pp. 1-22.
- USB XpressSCSI—USB to SCSI Convert Cable—User's Manual for Models USB-SCSI-DB25 and USB-SCSI-HD50, Microtech International, Inc., Ver. 1, 1999, 37 pages.
- Wong, T.K.P., “An Embedded Chip for USB Application: From the Architecture to Implementation,” Int'l IC '99 Conf. Proceedings, Apr. 1999, 10 pages.
- Wright, M., “To the Victor Will Go the Spoils in the Tiny-Flash-Card Battle,” EDN Access, Jan. 16, 1997, 6 pages.
- Written Comments by the Third Party Requester in an Inter Partes Reexamination, Patent Reexamination Control No. 95/000,384, May 20, 2009, 75 pages (Redacted).
- ATA-2 , PCguide.com/rref/hdd,if/ide/stdATA2-c.html, Apr. 17, 2001, 2 pages.
- Australian Patent Office Search Report, Application No. SG200306984-6, Jun. 10, 2005, 3 pages.
- European Search Report, 06013645.4, Oct. 17, 2008, 7 pages.
- Anderson, D., “FireWire System Architecture,” Dec. 17, 1998, 544 pages.
- Information Technology, Reduced Block Commands, Working Draft, T/10/1228D, Revision 6, Feb. 26, 1999, 53 pages.
- Intel, “Product Review, 8x930Hx Universal Serial Bus Microcontroller,” Oct. 1996, 34 pages.
- Integrated Drive Electronics / AT Attachment (IDE/ATA) Interface, http://www.pcguide.com/ref/hdd/if/ide/index-i.htm, Apr. 17, 2001, 4 pages.
- International Search Report PCT/US00/07087, May 25, 2000, 1 page.
- International Search Report PCT/US98/12918, Oct. 26, 1998, 1 page.
- Keyspan Introduces USB Expansion Card Enabling Macintosh Computers to Use SanDisk USB ImageMate, Business Wire, Jan. 5, 1999, 2 pages.
- Logical Block Addressing, Wikipedia, Apr. 28, 2011, 5 pages.
- Japanese Official Action, Patent Application No. 2003-533286, Nov. 2, 2007, 8 pages.
- Reduced Block Commands (RBC), Draft Proposal (T10/97-260r2), Revision 1, Jan. 16, 1998, 40 pages.
- Universal Serial Bus Specification, Revision 1.1, Sep. 23, 1998, 182 pages.
- EP Office Action for Related EP Application No. 09 010 734.3, Dated Aug. 8, 2011, 6 pages.
- EP Office Action for Related EP Application No. 09 013 951.0, Dated Aug. 8, 2011, 5 pages.
- Cho, H. D. et al., “Experiments of Video Communications via Mobile Networks Supporting Data Re-transmission,” LG Information and Communications, ISO/IEC JTC1/SC29/WG11, MPEG99/4459, Mar. 1999, 3 pages.
- Aladdin's eToken cracked, http://www.securiteam.com, May 5, 2000, 5 pages.
- “Availability of Universal Serial Bus Support in Windows 95,” http://support.microscoft.com/defaultaspx?scid=kb;en-us;253756, May 12, 2003, 2 pages.
- “DiskOnChip® 2000 Quick Installation Guide,” M-Systems Flash Disk Pioneers, Jul. 1997, 1 page.
- “Imaging Press Release—Hagiwara ‘FlashGate’ for SmartMedia up to 130× faster than Serial Devices,” Digital Eyes News, http://www.image-acquire.com/news/99/q2/hagi9921.html., Apr. 19, 1999, 2 pages.
- “Memory Stick Format,” http://www.memorystick.org/mseasy/eng.application/, Aug. 4, 2003, 19 pages.
- “Product Review—Action Tec CameraConnect Pro,” Action Tec Camera Connect Review from Digital Eyes, http://www.image-acquire.com/articles/storage/atcamconnect.shtml, Apr. 1, 1999, 3 pages.
- “Product Review—Hagiwara FlashGate USB,” Hagiwara Flash Gate USB Review from Digital Eyes, http://www.image-acquire.com/articles/storage/hagiwarausb.html, Apr. 30, 2003, 2 pages.
- “Product Review—SanDisk ImageMate USB,” SanDisk ImageMate USB Review from Digital Eyes, http://www.image-acquire.com/articles/storage/sdimagemateusb.shtml, Apr. 29, 2003, 2 pages.
- Steve's DigiCams, Hardware Reviews—Camera Connect Pro, External PC Card Read/Write Drive, http://www.steves-digicam.com/camera—connect—pro.html, Jul. 17, 1999, 4 pages.
- “What is Memory Stick—Shape?” http://www. memorystick.org/topics/eng/aboutms/feat—outline.html, Aug. 7, 2003, 1 page.
- “What is Memory Stick?” http://www.memorystick.org/topics/eng/aboutms/, Aug. 4, 2003, 15 pages.
- “Will IEEE 1394 Ultimately Replace USB? White Paper Comparing Universal Serial Bus (USB) and IEEE 1394 (FireWire) Technologies,” American Megatrends, Inc., http://www.ami.com/support/doc/1394—USB.pdf, 1996, 7 pages.
- Actiontec—Broadband Technology Made Easy, “Support Info—CameraConnect Pro,” http://www.actiontec.com/support/readers/cameraconpro.html, 2003, 2 pages.
- Advertising—“MacHASP USB—Protects Your Software,” Aladdin—The Professional Choice, 1998, 2 pages.
- FujiFilm—Image Memory Card Reader SM-R1 for SmartMedia, Owner's Manual, Apr. 1, 1999, 16 pages.
- FujiFilm SM-R1 Memory Card Reader, TwoMobile Home of the Investigative Mobile Reviewers, http://web.archive.org/web/20001206024200/http://www.twomobile.com/rev—smr1reader.html, Dec. 6, 2000, 3 pages.
- HP Jornada PC Companion, Jornada 430se—the Palm-Size PC that meets your needs at work and play, http://web.archive.org/web/19991128125415/http://www.hp.com/jornada/pr.../overview/htm, Nov. 28, 1999, 3 pages.
- HP Jornada PC Companions, Product Specifications—HP Jornada 430se, http://web.archive.org/web/19991128142035/www.hp.com/jornada/produc.../prod—spec.htm, Nov. 28, 1999, 5 pages.
- HP Jornada PC Companions, Software & Hardware Solutions—Microsoft Windows CE 2.11, http://web.archive.org/web/19991127141058/www.hp.com/jornada/sol.../oth—soft/rom.htm, Nov. 28, 1999, 2 pages.
- Pheng, L.K., comparison of the block diagrams of the SanDisk ImageMate USB CF Card Reader, the Patent and the SlimDisk, Apr. 1, 1999, 6 pages.
- Pheng, L.K., description of “SanDisk ImageMate USB CF Card Reader,” Apr. 1, 1999, 1 page.
- Sharp Model OZ-730/OZ-750 Electronic Organizer—Operation Manual (74 pgs), Quick Reference Guide (11 pgs), Quick Start Guide (9 pgs), Oct. 20, 1999.
- Sharp PC Interface Hardware (Docking Station), Model CE-61T—Operation Manual, 1997, 5 pages.
- Sharp Wizard, IntelliSync for Sharp Wizard—User's Guide, Day Time Organizer for Sharp Electronic Organizer with IntelliSync Translator (34 pgs), Installation Instructions (2 pgs), Getting Started Guide (39 pgs), 1997.
- Sharp Wizard, Model OZ-570 Electronic Organizer—Operation Manual (103 pgs), Quick Reference Guide (17 pgs), Sep. 1998.
- USB Drive: Products, http://web.archive.org/web/20020328072516/http://www.usbdrive.com/products/index.html, 1999, 2 pages.
- USB-SCSI & ATA/ATAPI Intelligent Cables, http://www.multiwave.co.kr/products/scm—product3.html, Jun. 20, 2003, 1 page.
- Windows CE Handheld PC Hardware Features, http://web.archive.org/web/19991012094107/microsoft.com/windowsce/products/hpc/hwspecs.asp, Jul. 14, 1999, 1 page.
- SanDisk IL Ltd., Notice of Acceptance, AU 2010257369, Sep. 11, 2012, 3 pgs.
- SanDisk IL Ltd., Office Action, AU 2010257369, Aug. 22, 2011, 2 pgs.
- SanDisk IL Ltd., Office Action, CN 200810087669.3, Feb. 2, 2012, 4 pgs.
- SanDisk IL Ltd., Office Action, JP 2007-85679, Mar. 30, 2012, 2 pgs (in Japanese only).
- SanDisk IL Ltd., Search Report, SG 201009717-8, Nov. 16, 2012, 6 pgs.
- MacHASP USB, Software Protection via the USB, Aladdin—The Professional Choice, brochure: Oct. 1998, 10 pgs.
- Shmueli, Description of Aladdin eToken and Rainbow iKey, Jan. 19, 1999, 1 pg.
- Shmueli, Description of Lexar Jumpshot Cable, 1999, 2 pgs.
- Shmueli, Description of San Disk ImageMate USB CompactFlash Reader, 1999, 3 pgs.
- U2 Only Disk User's Manual, Netac Technology Co., www.bestusbdrive.com/downloads/u2english.pdf, Mar. 25, 2003, 1 pg.
- USB Special, Aladdin—the Key to Software and Security, Aladdin Knowledge Systems, Inc., Sep. 1998, 8 pgs.
- SanDisk IL Ltd., First Examination Report, IN 1900/DEL/2004, Mar. 1, 2013, 1 pg.
Type: Grant
Filed: Jan 12, 2011
Date of Patent: Dec 10, 2013
Assignee: Sandisk IL, Ltd (Kfar Saba)
Inventors: Amir Ban (Ramat Hasharon), Dov Moran (Kfar Saba), Oron Ogdan (Jerusalem)
Primary Examiner: Glenn A Auve
Application Number: 13/005,505
International Classification: G06F 12/00 (20060101);