Patent Publication Number: US-8996795-B2

Title: Storage device for mounting to a host

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application is a continuation of U.S. patent application Ser. No. 12/221,841, filed Aug. 6, 2008 (now U.S. Pat. No. 8,250,247), which is hereby incorporated by reference herein. 
    
    
     FIELD OF THE INVENTION 
     The present invention relates generally to storage devices and more specifically a storage device that is used and operated for mounting to a host. 
     BACKGROUND OF THE INVENTION 
     Use of non-volatile based storage devices has been rapidly increasing over the years because they are portable and they have small physical size and large storage capacity. Storage devices come in a variety of designs. 
     Some storage devices, USB flash drives for example, are regarded as removable, which means that they are intended for removal from one host device to another, or for replacement with another storage device. Such removable devices are provided with a Universal Serial Bus (“USB”) interface in order to allow them to be connected to a computer system, for example. 
     USB flash drives as such may employ a variety of possible features, some of which a user may want to set before connecting his/her to a host. 
     U 3  based applications is an example for such a feature. For example, a USB flash drive that is configured to comply with the U 3  technology may be set by a user as a U 3  device/regular mass storage device before mounting the USB flash drive to a host. 
     U 3  form factor devices (also called U 3  smart drives) are flash drive based USB devices containing U 3  based applications. One such type of device is created for Microsoft™ Windows™ OS (Operating System), for example. A U 3  application is a software application that is tuned to run directly from a U 3  device. While the U 3  application is running, the U 3  application has access to most of the host&#39;s computer resources, such as but not limited to the volume of the device, the system&#39;s registry, the network adapters, etc. The U 3  platform provides application mobility that can be used by a user to take his/her favorite programs and files and use them on any computer. With such technology, software applications are not tied to a single machine. Rather, the software can run off any appropriately equipped and configured device without installation on the host computer. 
     However, the auto-install process that is required during setup for enabling the U 3  functionality is time-consuming and sometimes not desired by users at all. Furthermore, this process can be disturbing when mounting the device to a host PC (Personal Computer) that is not the main computer and/or when using the device with a non-computing device, such as a DVD player. 
     Removing and uninstalling the U 3  feature that comes preinstalled and embedded in the USB flash drive is one way to overcome this. However, once the U 3  feature is uninstalled and removed from the device, it&#39;s impossible to use this feature with the device again. 
     According to another approach, users may disable the U 3  feature “on-line”, i.e., when the device is already mounted to a computer. In such case, users can prevent the U 3  functionality from running automatically on their U 3  smart drives by disabling this feature once the device is mounted to a host. 
     SUMMARY OF EXEMPLARY EMBODIMENTS OF THE INVENTION 
     In view of the foregoing observations and the present needs, it would be advantageous to have a storage device configured with an input device for selecting an operating mode of the storage device prior to mounting the storage device to a host. 
     In contrast to the existing technology, where setting a device to employ certain features is done when the device is mounted to a host, the storage device of the exemplary embodiments may be operable by a user to temporarily enable/disable a variety of possible features before connecting the device to a host. 
     Embodiments, various examples of which are discussed herein, include a storage device having a non-volatile memory for storing data; an input device that is operative to select an operating mode of the storage device prior to mounting the storage device; and a controller that is operative to control the non-volatile memory. Each operating mode represents a different type of storage device. The controller interfaces with the input device to establish the selected operating mode of the storage device once the storage device is mounted. 
     At least one type of storage device may represent a removable storage device. The storage device may be of type including one of a CD, a hard disk drive, or a floppy disk drive. The non-volatile memory may have a configuration in accordance with flash memory technology. 
     The input device may be a user-interface, and may include a mechanical switch, an optical sensor(s), a pressure sensor(s), etc. 
     According to yet another embodiment, a method of using a storage device includes selecting an operating mode of a storage device based on a setting of an input device of the storage device; mounting the storage device to a host; and establishing the selected operating mode of the storage device after it is mounted to the host. The selected operating mode is established based on the setting of the input device and each operating mode represents a different type of storage device. Again, at least one type of storage device may represent a removable storage device. 
     Additional features and advantages of the embodiments described are possible as will become apparent from the following drawings and description. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       For a better understanding of the various embodiments, reference is made to the accompanying drawings, in which like numerals designate corresponding sections or elements throughout, and in which: 
         FIG. 1  is a block diagram of a storage device used for mounting to a host, according to one exemplary embodiment; 
         FIG. 2  is a schematic illustration of the storage device of  FIG. 1 , operated by mechanical switch; 
         FIG. 3A  shows the way the storage device of  FIG. 1  is presented to a host, with the mechanical switch set to position  102 ; 
         FIG. 3B  shows the way the storage device of  FIG. 1  is presented to a host, with the mechanical switch set to position  100 ; and 
         FIG. 4  is a flow chart of a method for using a storage device with a host, according to an exemplary embodiment. 
     
    
    
     DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS 
     The embodiments and various aspects thereof are further described in more details below. This description is not intended to limit the scope of claims but instead to provide examples of such embodiments. The following discussion therefore presents exemplary embodiments, which include a storage device that is operable by an input device prior to mounting the storage device to a host. The storage device is a removable storage device that is configured for removal from the host. 
     The storage device of the present disclosure may comply with any type of memory device (e.g. flash memory) known in the art, and with memory device that will be devised in the future. The storage device may be a nonvolatile memory that retains its memory or stored state even when power is removed. The storage device may be an erasable programmable memory including, but not-limited to, Electrically-Erasable and Programmable Read-Only Memories (EEPROMs), EPROM, Magnetoresistive Random Access Memory (MRAM), Ferroelectric RAM (FeRAM or FRAM). 
     The input device disclosed herein and the storage device using the input device do not depend on the type of memory, and may be implemented with any type of memory, whether it is a flash memory or a non-flash memory. The storage device using the input device disclosed herein may also comply with a 3-dimensional memory chip technology. 
     Digital cameras, cellular phones, media players/recorders (e.g., MP3 and MP4), hand-held or notebook computers, personal digital assistants (PDAs), network cards, network appliances, set-top boxes, and hand-held are exemplary hosts. A PDA is typically known as user-held computer systems implemented with various personal information management applications, such as an address book, a daily organizer, and electronic notepads, to name a few. The host and/or an external device may be in communication with the card adapter over a wired or a wireless communication channel well known to those skilled in the art. 
       FIG. 1  is a block diagram of a storage device  10  that is used for mounting to a host  20 , according to one embodiment. Storage device  10 , being a USB flash memory device for example, typically includes a non-volatile memory  12  (such as a FLASH memory) for storing data, an input device (such as user-interface  14 ), and a controller  16  for managing operation of memory  12 . 
     Controller  16  manages memory  12  via data and control lines  102  and communicates with host  20  via host interface  18 . Controller  16  controls all the data transfer to/from memory  12  and data transfer to/from host  20  by controlling, for example, “read”, “write” and “erase” operations, and so on. 
     The input device, being coupled to controller  16 , is operable directly, or indirectly by a user, and/or by an external device prior to mounting storage device  10  to host  20  for selecting an operating mode of storage device  10 . The operating mode may be selected from among two or more possible operating modes of storage device  10 . 
     Note that in contrast to the prior art, where a storage device is provided with a read/write enable switch providing enhanced protection against accidental data loss once the storage device is already connected to a host by reversibly disabling and enabling read and/or write functionalities, for example; the input device of the exemplary embodiments is operable for setting an operating mode of storage device  10  before storage device  10  is mounted to a host. In other words, while a read/write enable switch is not meant for controlling the functionality of the device, storage device  10  is set herein on a selected operating mode by a user operating an embedded input device “off-line”, so that the storage device is immediately activated in the desired operating mode once mounted to a host. 
     In the context of this description, an “operating mode” of a storage device represents a particular type of a storage device, and/or particular configuration/format mode of a storage device. 
     According to non-limiting examples, an operating mode of storage device  10  may operate storage device  10 , and further have storage device  10  be recognized by a host on which storage device  10  is mounted to as a hard disk drive(s), a read-only device(s) such as a CD (Compact Disk) ROM, a floppy disk drive(s), a U 3  form factor device containing U 3  based application, and/or any other removable mass storage device, whether it is a USB end-point device or not. 
     Additionally or alternatively, an operating mode of storage device  10  may determine the way storage device  10  interacts with a host and/or the way information is stored on storage device  10 . Such operation control may be applied with respect to the specific operating system of the host of which storage device  10  is mounted to, so that setting storage device  10  on a first operating mode may instruct controller  16  to format storage device  10  in one way, while setting storage device  10  on a second operating mode may instruct controller  16  to format storage device a different way. 
     For example, a user wishing to use his/her storage device with a host supporting the Windows® operating system, for example, may set storage device  10  on a different operating mode than he/she would do before using storage device  10  with a host supporting Linux® operating system. Thus, activating one type of file system management process for the Windows® operating system (e.g., NTFS (New Technology File System) format) and a different type of file system management process for the Linux® operating system (e.g., FAT  32  (File Allocation Table) format), for example. 
     Additionally or alternatively, an operating mode of storage device  10  may determine the way in which storage device  10  interacts with a host. In other words, setting storage device  10  on a first operating mode may instruct controller  16  to format storage device  10  in one way, while setting storage device  10  on a second operating mode may instruct controller  16  to format storage device a different way. 
     With user-interface  14  being a multi-positioning switch for example, a user may operate user-interface  14  on any one or more operating modes, for setting storage device  10  to be operable in a combination of ways, according to the various functionalities presented herein above. 
     User-interface  14  may include a mechanical switch  30  (such as a hardware switch positioned on one of a plurality of positions, or push buttons that are pressed on for setting the storage device on one operating mode and pressed off for setting on another operating mode), an optical sensor(s)  32  (such as a light sensor that is covered for setting on one operating mode and exposed for setting on another operating mode), a pressure sensor(s)  34  (implemented using a capacitive sensor, for example, that are manipulated (e.g., held, rotated, etc.) one way for setting the storage device on a first operating mode and manipulated another way for setting the storage device on another operating mode), etc. 
     A basic, exemplary control over the operation of storage devices  10  is performed as follows: A user operates user-interface  14  of storage device  10  and selects an operating mode of storage device  10 . Storage device  10  (set on the selected operating mode) is then mounted to host  20  and communication between storage device  10  and host  20  is established. 
     Communication between storage device  10  and host  20  may be via communication channel C 2  or via any communication link known to those skilled in the art, including a USB port connection into which a storage device is physically coupled, an optical port connection, an electrical port connection, etc. With storage device  10  being in communication with host  20  over a conventional wired or wireless communication link, such communication link can be a wired or wireless port. 
     Once storage device  10  is mounted to host  20 , controller  16  communicates with user-interface  14  for establishing the selected operating mode of storage device  10  and for managing memory  12  according to the selected operating mode. In order to facilitate operational management of storage device  10  by controller  16 , signals are transmitted (either continually, occasionally, or intermittently) from user-interface  14  to controller  16  over control line  100 , when storage device  10  is mounted to host  20 . 
     Controller  16  interfaces with user-interface  14  for emulating storage device  10  on an OS (Operating System)  24  of host  20  as one or more logical devices and for establishing a communication channel between host  20  and one of these logical devices, according to the selected operating mode (see  FIGS. 3A and 3B ). 
     Hence, operating user-interface  14  of storage device  10  on a selected operating mode as such affects the way controller  16  interacts with a host once storage device  10  is mounted to the host. 
     For the sake of example only, storage device  10  has a configuration complying with a U 3  technology device (supporting U 3  based applications  13 ; and is operated by mechanical switch  30 . 
     A user wishing to use storage device  10  as a U 3  form factor device supporting U 3  applications brings mechanical switch  30  to a first position (such as position  102 , see  FIG. 2 ) prior to mounting storage device  10  to a host (such as host  20 ). A user wishing to use storage device  10  as a regular mass storage device (not supporting U 3  applications) brings mechanical switch  30  to a different position (such as position  100 , see  FIG. 2 ) prior to mounting storage device  10  to host  20 . By setting mechanical switch  30  at position  100 , storage device  10  can be used and accessed just like a normal USB storage disk or memory key. 
     If storage device  10  is mounted to host  20  with mechanical switch  30  set to position  102 , then controller  16  presents (emulates) storage device  10  to OS  24  of host  20  as two separate (logical) devices—a first device being a read-only device emulating a CD-ROM drive with an automatic configuration for executing U 3  application for example, and a second device being a standard mass storage (flash) drive for example (see  FIG. 3A ). 
     However, if storage device  10  is mounted to host  20  with mechanical switch  30  set to position  100 , then storage device  10  is presented to host  20  as a single removable mass storage device not supporting U 3  application (see  FIG. 3B ). 
     As a result, a user not wishing to use the U 3  based applications that are pre-launched on storage device  10  can deactivate the U 3  functionality prior to mounting storage device  10  to a host; and optionally reactivate this functionality before mounting storage device  10  to a host (either the same host or a different host) at a later point in time. Operating storage device  10  as such is time beneficial, as it provides a hardware based solution for users wishing to prevent the automatic loading of the U 3  functionality (of the Autorun feature that is used by the U 3  Launchpad for emulating itself as a virtual CD drive in Windows® operating system, for example) at a time when the U 3  functionality is not desired to the user. 
     It should be appreciated that although user-interface  14  is provided for selecting an operating mode of storage device  10 , user interface  14  may also be employed for other reasons. As an example, user-interface  14  may be employed for testing purposes that are applied directly to storage device  10  during manufacturing. 
       FIG. 2  is a schematic illustration of storage device  10  of  FIG. 1  that is operated by mechanical switch  30 . With respect to the non-limiting example provided herein above, mechanical switch  30  is configured to operate on one of two different positions (position  100  or position  102 ). 
     Mounting storage device  10  to a host with mechanical switch  30  set to position  100  sets storage device  10  on a first operating mode (e.g., functioning as a regular mass storage device). Whereas, mounting storage device  10  to a host with mechanical switch  30  set to position  102  sets storage device  10  on a second operating mode (e.g., functioning as a U 3  form factor device having U 3  based applications). 
       FIG. 3A  shows the way storage device  10  of  FIG. 1  is presented to host  20 , with mechanical switch  30  set to position  102 . 
     Mounting storage device  10  to host  20  with mechanical switch  30  set to position  102  causes storage device  10  present (emulate) to OS  24  of host  20  two separate (logical) devices—a first device (recognized by host  20  as logic device LD 1 ) being a read-only device emulating a CD-ROM drive with an Autorun configuration for executing U 3  application for example, and a second device (recognized by host  20  as logic device LD 2 ) being a standard mass storage (flash) drive for example. 
     After storage device  10  is plugged into host  20 , a launch application resident on storage device  10  (recognized by host  20  as logic device LD 1 ) launches U 3  applications  13  onto OS  24  of host  20 . These applications then start running from OS  24  of host  20 . 
     Note that communication between host  20  and storage device  10  (and either one of logic device LD 1  and logic device LD 2 ) is enabled via communication channel C 2 . 
       FIG. 3B  shows the way storage device  10  of  FIG. 1  is presented to host  20 , with mechanical switch  30  set to position  100 . 
     Mounting storage device  10  to host  20  with mechanical switch  30  set to position  100  causes controller  16  to present storage device  10  to host  20  a single removable mass storage device (recognized by host  20  as logic device LD) not supporting U 3  applications, for example. Note that U 3  applications  13  are still stored on memory  12  of storage device  10  (they are just not recognized by OS  24  of host  20 ). Again, communication between host  20  and storage device  10  (and logic device LD) is enabled via communication channel C 2 . 
       FIG. 4  is a flow chart of a method  50  for using storage device  10  with a host, according to an exemplary embodiment. With respect to the example provided herein above, storage device  10 , being a USB flash device for example, is configured as a U 3  device supporting U 3  applications that is operated by mechanical switch  30 . 
     At step S 51 , mechanical switch  30  is operated by a user wishing to use/not use storage device  10  as a U 3  device. A user wishing to use storage device  10  as a U 3  device supporting U 3  applications brings mechanical switch  30  to a first position (such as position  102 ) prior to mounting storage device  10  to a host. A user wishing to use storage device  10  as a regular mass storage device (not supporting U 3  applications) brings mechanical switch  30  to a different position (such as position  100 ) prior to mounting storage device  10  to a host. 
     Then at step S 52 , storage device  10  is mounted to a host (such as host  20 ) and communication is established therebetween. 
     At S 53 , controller  16  of storage device  10  determines whether storage device is supporting the U 3  applications residing on it, or not. This may be achieved by controller  16  sensing whether mechanical switch  30  is set to position  102  or to position  100 . 
     In case storage device  10  is mounted to host  20  with mechanical switch  30  set to position  102  (i.e., storage device  10  is set to support U 3  applications), then the U 3  applications (S 54 ) is installed onto OS  24  of host  20 ; and controller  16  presents (emulates) storage device  10  to OS  24  of host  20  as two separate (logical) devices (S 55 )—a first device being a read-only device emulating a CD-ROM drive with an automatic configuration for executing U 3  application for example, and a second device being a standard mass storage (flash) drive for example. 
     However, if storage device  10  is mounted to host  20  with mechanical switch  30  set to position  100  (i.e., storage device  10  is set to disable the use of U 3  applications) (at S 56 ), then storage device  10  is presented to host  20  as a single removable mass storage device not supporting U 3  application. 
     It should be noted that using the storage device as a U 3  device as such is meant as a mere example. The storage device of the exemplary embodiments having a user-input device (such as a mechanical switch) is not limited for enabling/disabling U 3  based applications as such, and is applicable for enabling/disabling any of a variety of features that a user may want to set before mounting the storage device to a host. 
     As will be appreciated by those familiar in the art, current devices employ a wide variety of different architectures and it is expected that new architectures will continue to be developed. In general, the exemplary embodiments may be employed in conjunction with a wide variety of different types and/or number of storage devices. 
     The embodiments, various examples of which are described herein, may be realized in hardware, software, firmware or any combination thereof A typical combination of hardware and software could be a general purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein. The concepts described above can also be embedded in a computer program product, which comprises all the features enabling the implementation of the embodiments described herein, and which, when loaded in a computer system is able to carry out these embodiments. Computer program or application in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following a) conversion to another language, code or notation; b) reproduction in a different material form. 
     Having described the various embodiments of systems and a method, it is to be understood that the description is not meant as a limitation, since further modifications will now suggest themselves to those skilled in the art, and it is intended to cover such modifications as fall within the scope of the appended claims.