This invention was made by an employee of the United States Government and may be manufactured and used by or for the Government for governmental purposes without the payment of any royalties thereon or therefor.
FIELD OF THE INVENTIONThis invention relates generally to flash drives, and more particularly to portable flash drives.
BACKGROUND OF THE INVENTIONConventional universal serial bus (USB) flash drives are NAND-type flash memory data storage devices integrated with a USB interface. Conventional USB flash drives are typically small, lightweight, removable and rewritable. These USB flash drives are commonly known as “thumb drives” and “data sticks.”
USB flash drives have several advantages over other portable storage devices, particularly the floppy disk. Conventional USB flash drives are generally faster, hold more data, and are considered more reliable (due to their lack of moving parts) than floppy disks. Conventional USB flash drives use the USB mass storage standard, supported natively by modern operating systems such as Linux, Mac OS X, and Windows XP.
Conventional USB flash drives include a small printed circuit board encased in a robust plastic or metal casing, making the drive sturdy enough to be carried about in a pocket, as a keyfob, or on a lanyard. Only a USB interface protrudes from this protection, and is usually covered by a removable cap. Most conventional USB flash drives use a standard type-A USB connection allowing them to be connected directly to a port on a personal computer. USB interfaces are also known as USB connectors.
Most conventional USB flash drives are active only when powered by a USB computer connection, and require no other external power source or battery power source; conventional USB flash drives are powered using the limited supply afforded by the USB connection. To access the data stored in a flash drive, the conventional USB flash drives must be connected to a computer, either by direct connection to the computer's USB port or via a USB hub. USB drives are quickly replacing CD Roms, floppy drives, and even printed matter in usage.
One end of conventional USB flash drives is fitted with a single male type-A USB interface. Inside the plastic casing is a small printed circuit board. Mounted on this board is simple power circuitry and a small number of surface-mounted integrated circuits (ICs). Typically, one of these ICs provides an interface to the USB port, another drives the onboard memory, and yet another is the flash memory.
The essential components of conventional USB flash drives are a male type-A USB interface, a USB mass storage controller, a NAND flash memory chip and a crystal oscillator. The male type-A USB interface provides an interface to the host computer. The USB mass storage controller includes a USB host controller and provides a linear interface to block-oriented serial flash devices while hiding the complexities of block-orientation, block erasure, and wear balancing or wear leveling. The USB mass storage controller contains a small RISC microprocessor and a small amount of on-chip ROM and RAM. The NAND flash memory chip stores data. The crystal oscillator produces a 12 MHz clock signal and controls data output through a phase-locked loop.
Often the amount of data storage capacity that is available to a personal computer on a USB flash drive is less than the amount of data storage capacity on the USB flash drive that is useful to the computer. By definition, USB flash drives are limited in the amount of data that can be stored thereon because the NAND flash memory chip is manufactured with a certain amount of data storage capacity. The data storage capacity can be increased by physically replacing the NAND flash memory chip, but physically replacing the NAND flash memory chip costs many more times the price of the original USB flash drive, and accordingly, replacing the NAND flash memory chip is not performed except under the most extraordinary of circumstances.
Another option to increase the amount of data storage capacity that is available to a personal computer on a USB flash drive is to connect multiple USB flash drives to multiple USB ports on the computer. However, the number of USB ports that is available on a computer is usually limited to 2 or 3 USB ports, so the number of USB flash drives that can be connected is 2 or 3. Each of the USB flash drives is identified and accessible to the computer as a unique external drive, each having a unique drive identification, such as “D”, “E”, “F” and so forth. However, each of the USB flash drives having a unique and different drive identification increases the complexity of locating data on the USB flash drives.
Another conventional way to increase the amount of data storage capacity that is available to a personal computer on a USB flash drive is to connect multiple USB flash drives through one of more USB hubs that are in turn connected to the computer. However, this technique still has the problem that each drive has a unique and different drive identification, which in turn increases the complexity of locating data on the USB flash drives. This technique is also ultimately limited by the number of USB ports on the computer and the number of USB devices that can be connected to each port.
For the reasons stated above, and for other reasons stated below, which will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art to increase the storage capacity that is available to a personal computer on a USB flash drive. There is also a need in the art to reduce the complexity of locating data on multiple USB flash drives connected to a computer.
BRIEF DESCRIPTION OF THE INVENTIONThe above-mentioned shortcomings, disadvantages and problems are addressed herein, which will be understood by reading and studying the following specification.
An extendable USB drive provides increased storage capacity that is available to a personal computer through a universal serial bus (USB) port of the computer.
In some embodiments, an apparatus to store data includes a non-volatile computer memory coupled by a male interface to an external device and a by a female interface to an external device. This may solve the need in the art to increase the storage capacity that is available to a personal computer on a USB drive by allowing a number of the apparatus to be connected in series.
In other embodiments, a USB flash drive includes a USB mass storage controller coupled to a NAND flash memory chip, a crystal oscillator and a plurality of type-A USB interfaces. This may solve the need in the art to increase the storage capacity that is available to a personal computer on a USB drive by allowing a number of the USB flash drives to be connected in series, thus increasing the available storage capacity by the number of USB flash drives connected in series.
In yet other embodiments, a USB flash drive includes a USB mass storage controller coupled to a NAND flash memory chip, a crystal oscillator and a plurality of type-A USB interfaces in which the plurality of type-A USB interfaces comprise essentially one or more male type-A USB interface and female type-A USB interface. This may solve the need in the art to increase the storage capacity that is available to a personal computer on a USB drive by allowing a number of the USB flash drives to be connected.
Systems, clients, servers, methods, and computer-readable media of varying scope are described herein. In addition to the aspects and advantages described in this summary, further aspects and advantages will become apparent by reference to the drawings and by reading the detailed description that follows.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is a block diagram of an overview of a system to store data using a plurality of USB interfaces, according to an embodiment;
FIG. 2 is a block diagram of an apparatus to store data having a non-volatile computer memory, a male interface and a female interface, according to an embodiment;
FIG. 3 is a block diagram of an overview of an apparatus to store data that includes flash memory and a plurality of USB interfaces, according to an embodiment;
FIG. 4 is a block diagram of an overview of an apparatus to store data that includes NAND flash memory and a plurality of USB interfaces, according to an embodiment;
FIG. 5 is a block diagram of an apparatus to store data having a non-volatile computer memory, a male interface and a female interface, according to an embodiment;
FIG. 6 is a block diagram of a USB flash drive to store data having flash computer memory, a male type-A USB interface, a female type-A USB interface, a crystal oscillator and a housing, according to an embodiment;
FIG. 7 is a block diagram of a USB mass storage controller having a daisy-chain component, according to an embodiment;
FIG. 8 is a block diagram of a hardware and operating environment in which different embodiments can be practiced; and
FIG. 9 is a block diagram of the hardware and operating environment in which apparatus can be practiced, according to an embodiment.
DETAILED DESCRIPTION OF THE INVENTIONIn the following detailed description, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration specific embodiments which may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the embodiments, and it is to be understood that other embodiments may be utilized and that logical, mechanical, electrical and other changes may be made without departing from the scope of the invention. The following detailed description is, therefore, not to be taken in a limiting sense.
The detailed description is divided into four sections. In the first section, a system level overview is described. In the second section, particular apparatus implementations are described. In the third section, hardware and the operating environments in conjunction with which embodiments may be practiced are described. In the fourth section, a conclusion of the detailed description is provided.
System Level OverviewFIG. 1 is a block diagram of an overview of asystem100 to store data having plurality of USB interfaces, according to an embodiment. A system level overview of the operation of an embodiment is described in this section of the detailed description.System100 may solve the need in the art to increase the storage capacity that is available to a personal computer on a universal serial bus (USB) drive.
System100 may include a USBmass storage controller102 and anon-volatile computer memory104. Some embodiments ofsystem100 include a plurality of USB interfaces106. The USBmass storage controller102 can be operably coupled to thenon-volatile computer memory104 and the plurality ofUSB interfaces106, as indicated.
The plurality ofUSB interfaces106 can provide a way to couple multiple USB drives to a computer (not shown inFIG. 1). In some embodiments,system100 can be coupled to a computer through one of the plurality ofUSB interfaces106, while another storage device (not shown inFIG. 1) can be coupled tosystem100 through one of the other USB interfaces106. Operably coupling thenon-volatile computer memory104 to the computer through one of the plurality ofUSB interfaces106 and operably coupling the other storage device through the one of the plurality ofUSB interfaces106 can provide access by the computer to thenon-volatile computer memory104 and, in some embodiments, can provide access by the computer to the other storage device. Thus,system100 may solve the need in the art to increase the storage capacity that is available to a personal computer on a USB drive, such assystem100.
While thesystem100 is not limited to any particular USBmass storage controller102,non-volatile computer memory104, and plurality ofUSB interfaces106, for sake of clarity a simplified USBmass storage controller102,non-volatile computer memory104, and plurality ofUSB interfaces106 are described. Some embodiments can operate in a multi-processing, multi-threaded operating environment on a computer, such ascomputer802 inFIG. 8.
Apparatus ImplementationsReferring toFIGS. 2-7, particular implementations are described in conjunction with the system overview inFIG. 1, according to embodiments.
FIG. 2 is a block diagram of anapparatus200 for storing data, and is illustrated as having a non-volatile computer memory, a male interface and a female interface, according to an embodiment.Apparatus200 may solve the need in the art to increase the storage capacity that is available to a personal computer on a universal serial bus (USB) drive.
Embodiments ofapparatus200 may include a USBmass storage controller102, anon-volatile computer memory104, and a plurality of USB interfaces106. In some embodiments ofapparatus200, the plurality ofUSB interfaces106 can include afemale USB interface202 to accept an external device. Thefemale USB interface202 may be operably coupled to thenon-volatile computer memory104 through the USBmass storage controller102.
Apparatus200 may also include amale USB interface204 to connect to an external device, such as a computer. Themale USB interface204 may also be operably coupled to thenon-volatile computer memory104 through the USBmass storage controller102.
Thefemale USB interface202 and themale USB interface204 to external devices can provide a way to simultaneously couple multiple USB drives to a computer (not shown inFIG. 2). In one example,apparatus200 may be coupled to the computer through themale USB interface204 andapparatus200 may be simultaneously coupled to another storage device (not shown inFIG. 2) through thefemale USB interface202. Operably coupling thenon-volatile computer memory104 to the computer throughmale USB interface204 and operably coupling the other storage device through thefemale USB interface202 can provide access by the computer to thenon-volatile computer memory104 and, in some embodiments, may provide access by the computer to the other storage device. Thus,apparatus200 may solve the need in the art to increase the storage capacity that is available to a personal computer.
FIG. 2 shows onefemale USB interface202. Those skilled in the art will recognize that other embodiments ofapparatus200 are not so limited, and in fact can include a large number offemale USB interfaces202 that are not shown inFIG. 2.
FIG. 3 is a block diagram of an overview of anapparatus300 to store data that includes flash memory and a plurality of USB interfaces, according to an embodiment.Apparatus300 may solve the need in the art to increase the storage capacity that is available to a personal computer on a USB drive.
In some embodiments,apparatus300 may include a USBmass storage controller102 and aflash computer memory302. Theflash computer memory302 may be one embodiment of thenon-volatile computer memory104 inFIG. 1. Most significantly, some embodiments ofapparatus300 include a plurality of USB interfaces106. The USBmass storage controller102 can be operably coupled to theflash computer memory302 and the plurality ofUSB interfaces106, as shown.
The plurality ofUSB interfaces106 may provide a way to couple multiple USB drives to a computer (not shown inFIG. 3) or other external device. In one example,apparatus300 may be coupled through one of the plurality ofUSB interfaces106 to another storage device (not shown inFIG. 3), while another external device may be coupled toapparatus300 through one of the other USB interfaces106. Operably coupling theflash computer memory302 to the computer or external device through one of the plurality ofUSB interfaces106 and operably coupling the other storage device through the one of the plurality ofUSB interfaces106 can provide access by the computer or external device to theflash computer memory302 and, perhaps most significantly, in some embodiments can provide access by the computer to the other storage device. Thus,apparatus300 may solve the need in the art to increase the storage capacity that is available to a personal computer on a USB drive, such asapparatus300.
FIG. 4 is a block diagram of an overview of anapparatus400 to store data that includes NAND flash memory and a plurality of USB interfaces, according to an embodiment.Apparatus400 may solve the need in the art to increase the storage capacity that is available to a personal computer on a USB drive.
Apparatus400 may include a USBmass storage controller102 and a NANDflash computer memory402. The NANDflash computer memory402 may be one embodiment of thenon-volatile computer memory102 inFIG. 1 and also may be one embodiment of theflash computer memory302 inFIG. 3. Some embodiments ofapparatus400 may include a plurality of USB interfaces106. The USBmass storage controller102 can be operably coupled to the NANDflash computer memory402 and the plurality of USB interfaces106.
According to some embodiments, the NANDflash computer memory402 can be accessed much like block devices such as hard disks or memory cards. The blocks can typically be512 or2048 bytes in size, although those skilled in the art will understand that any number of sizes fall within the purview of this invention. In some embodiments, each block may be associated with a few bytes (typically 12-16 bytes) that could be used for storage of an error detection and correction block checksum.
In some embodiments, the NANDflash computer memory402 can be accessed through software-based bad block management that may be resident on the USBmass storage controller102. When a logical block on the NANDflash computer memory402 is accessed, the logical block may be mapped to a physical block, and theapparatus400 may have a number of blocks set aside on the NANDflash computer memory402 for compensating bad blocks and for storing primary and secondary mapping tables.
In some embodiments, the error-correcting and detecting checksum can typically correct an error where one bit in the block may be incorrect. When this happens, the block can be marked bad in a logical block allocation table, and its (still undamaged) contents can be copied to a new block and the logical block allocation table can be altered accordingly. If more than one bit in the memory is corrupted, the contents may be partly lost; reconstructing the original contents may be nearly impossible.
According to some embodiments, the first error-free physical block (block0) may almost always be readable and free from errors. Hence, all vital pointers for partitioning and bad block management for the device can be located inside this block (typically a pointer to bad block tables, for example).
In some embodiments, when executing software from the NANDflash computer memory402, virtual memory strategies can be used. For example, memory contents of the NANDflash computer memory402 can first be paged or copied into memory-mapped RAM and executed there. Some embodiments ofapparatus400 may also include a memory management unit (MMU), such as may be resident on the USBmass storage controller102, but other embodiments of apparatus can also be accomplished with careful programming of the NANDflash computer memory402, as will be known to those skilled in the art. For this reason, some embodiments ofapparatus400 may include a combination of NOR flash computer memory (not shown inFIG. 4) and NANDflash computer memory402, where a smaller NOR flash computer memory can be used as software ROM and a larger NANDflash computer memory402 can be partitioned with a file system for use as a RAM storage area.
The plurality ofUSB interfaces106 may provide a way to couple multiple USB drives to a computer (not shown inFIG. 4). In at least one example,apparatus400 can be coupled through one of the plurality ofUSB interfaces106, andapparatus400 can also be coupled to another storage device (not shown inFIG. 4) through one of the other USB interfaces106. Operably coupling the NANDflash computer memory402 to the computer through one of the plurality ofUSB interfaces106 and operably coupling the other storage device through the one of the plurality ofUSB interfaces106 can provide access by the computer to the NANDflash computer memory402 and, perhaps most significantly, in some embodiments, may provide access by the computer to the other storage device. Thus,apparatus400 may solve the need in the art to increase the storage capacity that is available to a personal computer on a USB drive, such asapparatus400.
FIG. 5 is a block diagram of anapparatus500 to store data having a non-volatile computer memory, a male interface and a female interface, according to an embodiment.Apparatus500 may solve the need in the art to increase the storage capacity that is available to a personal computer on a USB drive.
Apparatus500 may include a USBmass storage controller102 and aflash computer memory302. Theflash computer memory302 can be one embodiment of thenon-volatile computer memory102 inFIG. 1. Inapparatus500, the plurality ofUSB interfaces106 may include afemale USB interface202 to an external device. Thefemale USB interface202 may be operably coupled to theflash computer memory302 through the USBmass storage controller102.
Apparatus500 may also include amale USB interface204 to an external device, such as a computer. Themale USB interface204 can be operably coupled to theflash computer memory302 through the USBmass storage controller102.
Thefemale USB interface202 and themale USB interface204 to external devices may provide a way to couple multiple USB drives to a computer (not shown inFIG. 5). In one example,apparatus500 may be coupled to the computer through themale USB interface204 andapparatus500 may be coupled to another storage device (not shown inFIG. 5) through thefemale USB interface202. Operably coupling theflash computer memory302 to the computer throughmale USB interface204 and operably coupling the other storage device through thefemale USB interface202 can provide access by the computer to theflash computer memory302, and perhaps most significantly, in some embodiments may provide access by the computer to the other storage device. Thus,apparatus500 may solve the need in the art to increase the storage capacity that is available to a personal computer.
FIG. 5 shows onefemale USB interface202. Other embodiments ofapparatus500 are not so limited, and in fact can include a large number of female USB interfaces that are not shown inFIG. 5, as one skilled in the art will appreciate.
FIG. 6 is a block diagram of anUSB flash drive600 to store data having flash computer memory, a male type-A USB interface, a female type-A USB interface, a crystal oscillator and a housing, according to an embodiment.Apparatus600 may solve the need in the art to art to increase the storage capacity that is available to a personal computer on a USB drive.
Apparatus600 may include a USBmass storage controller102 and aflash computer memory302. Theflash computer memory302 may be one embodiment of thenon-volatile computer memory102 inFIG. 1, although those skilled in the art will know that other non-volatile computer memories may fall within the scope of this invention. Inapparatus600, the plurality ofUSB interfaces106 may include a female type-A interface602 to an external device. The female type-A interface602 can be operably coupled to theflash computer memory302 through the USBmass storage controller102.
Apparatus600 can also include a male type-A interface604 to an external device, such as a computer. The male type-A interface604 can be operably coupled to theflash computer memory302 through the USBmass storage controller102.
The female type-A interface602 and the male type-A interface604 may provide a way to couple multiple USB drives to a computer (not shown inFIG. 6). In one example,apparatus600 may be coupled to the computer through the male type-A interface604 andapparatus600 may be coupled to another storage device (not shown inFIG. 6) through the female type-A interface602. Operably coupling theflash computer memory302 to the computer through male type-A interface604 and operably coupling the other storage device through the female type-A interface602 can provide access by the computer to theflash computer memory302, and, in some embodiments, may provide access by the computer to the other storage device. Thus,apparatus600 may solve the need in the art to increase the storage capacity that is available to a personal computer.
Apparatus600 may also include acrystal oscillator606 that can be operably coupled to the USBmass storage controller102.Apparatus600 can also include ahousing608 that encapsulates the USBmass storage controller102, theflash computer memory302, the female type-A interface602, the male type-A interface604 and thecrystal oscillator606, and upon or in which, the male type-A interface604 can be mounted.
In some embodiments, the female type-A interface602 can have at least one female type-A USB interface. In some embodiments, the female type-A interface602 may be one female type-A USB interface. In some embodiments, the male type-A interface604 may be at least one male type-A USB interface. In some embodiments, the male type-A interface604 may be one female type-A USB interface. In some embodiments, the plurality ofUSB interfaces106 comprises essentially a single female type-A USB interface and a single male type-A USB interface.
FIG. 6 shows one female type-A USB interface602. Other embodiments ofapparatus600 are not so limited, and in fact can include a large number of female type-A USB interfaces602 that are not shown inFIG. 6, as will be appreciated by those skilled in the art.
FIG. 7 is a block diagram of a USBmass storage controller700 having a daisy-chain component, according to an embodiment.Apparatus700 may solve the need in the art to increase the storage capacity that is available to a personal computer on a USB drive and reduce the complexity of locating data on multiple USB flash drives connected to a computer.
The USBmass storage controller700 may include a daisy-chain component702. The daisy-chain component can provide a way to daisy-chain USB storage devices, such assystem100,apparatus200,apparatus300,apparatus400,apparatus500 orapparatus600. A daisy-chain may be defined as a configuration in which devices are connected one to another in a series. Data and power is typically transferred from one device to another.
Daisy-chaining may provide same drive identification for each of multiple USB flash drives when connected to a computer. In some embodiments, all of the devices connected in a daisy-chain can be identified and accessible using the same drive letter designation. Thus, all of the devices in the daisy-chain can appear to be one device. The location of data stored on one of the devices may not be distinguishable from the location of data stored on another one of the daisy-chained devices.
Such a device can provide greater storage capacity and can make all files on multiple drives appear as a single logical drive to the user. In addition, larger files/applications can be split over several drives and still accessed as if the files fit on a single drive.
In some embodiments, apparatus components of the USBmass storage controller102, USBmass storage controller700, and the daisy-chain component702 can be embodied as computer hardware circuitry or as a computer-readable program, or a combination of both.
Methods of daisy-chaining can be performed by the computer programs, firmware, or hardware, and may also be composed of computer-executable instructions.
More specifically, in some computer-readable program embodiments, the programs can be structured in an object-orientation using an object-oriented language such as Java, Smalltalk or C++, and the programs can be structured in a procedural-orientation using a procedural language such as COBOL or C. The software components communicate in any of a number of ways that are well-known to those skilled in the art, such as application program interfaces (API) or interprocess communication techniques such as remote procedure call (RPC), common object request broker architecture (CORBA), Component Object Model (COM), Distributed Component Object Model (DCOM), Distributed System Object Model (DSOM) and Remote Method Invocation (RMI).
Hardware and Operating EnvironmentsFIG. 8 is a block diagram of a hardware andoperating environment800 in which different embodiments can be practiced. The description ofFIG. 8 can provide an overview of computer hardware and a suitable computing environment in conjunction with which some embodiments can be implemented. Embodiments are described in terms of a computer executing computer-executable instructions. However, some embodiments can be implemented entirely in computer hardware in which the computer-executable instructions are implemented in read-only memory. Some embodiments can also be implemented in client/server computing environments where remote devices that perform tasks are linked through a communications network. Program modules can be located in both local and remote memory storage devices in a distributed computing environment.
Computer802 may include aprocessor804, commercially available from Intel, Motorola, Cyrix and others.Computer802 can also include random-access memory (RAM)806, read-only memory (ROM)808, and one or moremass storage devices810, and asystem bus812, that operatively couples various system components to theprocessing unit804. Thememory806,808, and mass storage devices,810, may be types of computer-accessible media.Mass storage devices810 may be more specifically types of nonvolatile computer-accessible media and can include one or more hard disk drives, floppy disk drives, optical disk drives, and tape cartridge drives. Theprocessor804 can execute computer programs stored on the computer-accessible media.
Computer802 can be communicatively connected to theInternet814 via acommunication device816.Internet814 connectivity is well known within the art. In one embodiment, acommunication device816 may be a modem that responds to communication drivers to connect to the Internet via what is known in the art as a “dial-up connection.” In another embodiment, acommunication device816 can be an Ethernet® or similar hardware network card connected to a local-area network (LAN) that itself can be connected to the Internet via what is known in the art as a “direct connection” (e.g., T1 line, etc.).
A user can enter commands and information into thecomputer802 through input devices such as akeyboard818 or apointing device820. Thekeyboard818 permit can entry of textual information intocomputer802, as known within the art, and embodiments are not limited to any particular type of keyboard.Pointing device820 may permit the control of the screen pointer provided by a graphical user interface (GUI) of operating systems such as versions of Microsoft Windows®. Embodiments are not limited to anyparticular pointing device820. Such pointing devices may include mice, touch pads, trackballs, remote controls and point sticks. Other input devices (not shown) can include a microphone, joystick, game pad, satellite dish, scanner, or the like.
In some embodiments,computer802 may be operatively coupled to adisplay device822.Display device822 can be connected to thesystem bus812.Display device822 can permit the display of information, including computer, video and other information, for viewing by a user of the computer. Embodiments are not limited to anyparticular display device822. Such display devices may include cathode ray tube (CRT) displays (monitors), as well as flat panel displays such as liquid crystal displays (LCD's). In addition to a monitor, computers may typically include other peripheral input/output devices such as printers (not shown).Speakers824 and826 can provide audio output of signals.Speakers824 and826 can also be connected to thesystem bus812.
Computer802 may also include an operating system (not shown) that can be stored on the computer-accessible media RAM806,ROM808, andmass storage device810, and can be executed by theprocessor804. Examples of operating systems may include Microsoft Windows®, Apple MacOS®, Linux®, UNIX®. Examples are not limited to any particular operating system, however, and the construction and use of such operating systems are well known within the art.
Embodiments ofcomputer802 are not limited to any type ofcomputer802. In varying embodiments,computer802 may comprise a PC-compatible computer, a MacOS®-compatible computer, a Linux®-compatible computer, or a UNIX®-compatible computer. The construction and operation of such computers are well known within the art.
Computer802 can be operated using at least one operating system to provide a graphical user interface (GUI), including a user-controllable pointer.Computer802 can have at least one web browser application program executing within at least one operating system, to permit users ofcomputer802 to access an intranet, extranet or Internet world-wide-web pages as addressed by Universal Resource Locator (URL) addresses. Examples of browser application programs can include Netscape Navigator® and Microsoft Internet Explorer®.
Thecomputer802 can operate in a networked environment using logical connections to one or more remote computers, such asremote computer828. These logical connections may be achieved by a communication device coupled to, or a part of, thecomputer802. Embodiments are not limited to a particular type of communications device. Theremote computer828 can be another computer, a server, a router, a network PC, a client, a peer device or other common network node, for example. The logical connections depicted inFIG. 8 can include a local-area network (LAN)830 and a wide-area network (WAN)832. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, extranets and the Internet.
When used in a LAN-networking environment, thecomputer802 andremote computer828 can be connected to thelocal network830 through network interfaces oradapters834, which can be one type ofcommunications device816.Remote computer828 may also include anetwork device836. When used in a conventional WAN-networking environment, thecomputer802 andremote computer828 can communicate with aWAN832 through modems (not shown). The modem, which can be internal or external, may be connected to thesystem bus812. In a networked environment, program modules depicted relative to thecomputer802, or portions thereof, can be stored in theremote computer828.
Computer802 can also includepower supply838. Each power supply can be a battery.Computer802 can also include at least oneUSB port840 having a female interface, such asfemale USB interface202 or female type-A interface602.
FIG. 9 is a block diagram of a hardware andoperating environment900 in whichapparatus600 can be practiced. More specifically, hardware andoperating environment900 can include two (as depicted) ormore apparatus600 engaged in a daisy-chain configuration toUSB port840. As one skilled in the art will recognize, other embodiments of hardware andoperating environment900 exist that fall within the scope of this invention, and in fact can include a large number ofapparatus600 engaged in a daisy-chain configuration toUSB port840.
ConclusionA USB flash drive having a plurality of interfaces to external devices is described. Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement which is calculated to achieve the same purpose may be substituted for the specific embodiments shown. This application is intended to cover any adaptations or variations. For example, although described in object-oriented terms, one of ordinary skill in the art will appreciate that implementations can be made in a procedural design environment or any other design environment that provides the required relationships.
In particular, one of skill in the art will readily appreciate that the names of the methods and apparatus are not intended to limit embodiments. Furthermore, additional methods and apparatus can be added to the components, functions can be rearranged among the components, and new components to correspond to future enhancements and physical devices used in embodiments can be introduced without departing from the scope of embodiments. One of skill in the art will readily recognize that embodiments are applicable to future communication devices, different file systems, and new data types.
The terminology used in this application is meant to include all versions of USB and new communication environments and alternate technologies which provide the same functionality as described herein.