Conceptually, a computing system (e.g., a computing device, a personal computer, a laptop, a Smartphone, a mobile phone) can accept information (content or data) and manipulate it to obtain or determine a result based on a sequence of instructions (or a computer program) that effectively describes how to process the information. Typically, the information used by a computing system is stored in a in a computer readable memory using a digital or binary form. More complex computing systems can store content including the computer program itself. A computer program may be invariable and/or built into, for example a computer (or computing) device as logic circuitry provided on microprocessors or computer chips. Today, general purpose computers can have both kinds of programming. A computing system can also have a support system which, among other things, manages various resources (e.g., memory, peripheral devices) and services (e.g., basic functions such as opening files) and allows the resources to be shared among multiple programs. One such support system is generally known and an Operating System (OS) which provides programmers with an interface used to access these resources and services.
Given the prevalence of computing devices in modern society, computer storage or computer memory used to store content, is often casually referred to as “memory.” Storing content (or information retention) is of one the core functions of computing devices. As such, memory is one of the fundamental components of all modern computers and is often coupled with a Central Processing Unit (CPU) to implement the basic Von Neumann computer model which has been used since the 1940s.
Today, numerous types of computing devices are available. These computing devices widely range with respect to size, cost, amount of storage and processing power, from the expensive and powerful servers, relatively cheaper Personal Computers (PC's) and laptops, to more inexpensive microprocessors or computer chips provided in storage devices, automobiles, and household electronic appliances.
In recent years, computing systems have become more portable and mobile. As a result, various mobile and handheld devices have been made available. By way of example, wireless phones, media players, Personal Digital Assistants (PDA's) are widely used today. Generally, a mobile or a handheld device (also known as handheld computer or simply handheld) can be a pocket-sized computing device, typically utilizing a small visual display screen for user output and a miniaturized keyboard for user input. In the case of a Personal Digital Assistant (PDA), the input and output can be combined into a touch-screen interface.
As suggested above, memory and memory devices have been an important part of computing and computing devices. Memory technology has markedly improved in recent years. Today, relatively large amount of content can be stored n a portable and easy to access devices such as USB flash drives (or USB flash devices). The content stored on USB flash drive can be easily carried and copied on various computing devices. By way of example, data stored on server computer can be copied on a USB flash drive and taken home and loaded (or copied) on a Personal Computer (PC) and used. The data can be modified on the PC and stored back on the USB flash drive. The USB flash drive can be taken back to work to be used by a computer provided at work or carried to a different city and used by another computer or laptop. The USB flash drive is especially popular today and represents an exemplary advancement in storage technology which has effectively improved portability and mobility of computing systems. As such, USB flash drives will be discussed below.
USB flash drives are generally NAND-type flash memory data storage devices integrated with a USB (universal serial bus) interface. NAND flash architecture was introduced by Toshiba in 1989. NAND flash memories are typically accessed much like block devices such as hard disks or memory cards. The pages are typically 512 or 2,048 bytes in size. Associated with each page are a few bytes (typically 12-16 bytes) that should be used for storage of an error detection and correction checksum. USB flash drives are typically small, lightweight, removable and rewritable. Memory capacities for USB flash Drives currently can range from 32 megabytes up to 64 gigabytes. Capacity is limited only by current flash memory densities, although cost per megabyte may increase rapidly at higher capacities due to the expensive components. USB flash drives offer potential advantages over other portable storage devices, particularly the floppy disk. They are more compact, generally faster, hold more data, and are more reliable (due to both their lack of moving parts, and their more durable design) than floppy disks. These types of drives use the USB mass storage standard, supported natively by modern operating systems such as Windows, Mac OS X, Linux, and Unix.
Generally, a flash drive has a small printed circuit board typically in a plastic or metal casing, making the drive sturdy enough to be carried about in a pocket, as a key fob, or on a lanyard. The USB connector protrudes from the casing, and is usually covered by a removable cap. Most flash drives use a standard type-A USB connection allowing them to be connected directly to a port on a personal computer.
To access the data stored in a flash drive, the drive is typically connected to a computer, either by plugging it into a USB host controller built into the computer, or into a USB hub. Typically, flash drives are active only when plugged into a USB connection and draw all necessary power from the supply provided by that connection. However, some flash drives, especially high-speed drives, may require more power than the limited amount provided by a bus-powered USB hub, such as those built into some computer keyboards or monitors. These drives will not work unless plugged directly into a host controller (i.e., the ports found on the computer itself) or a self-powered hub.
The advancement in memory devices and mobile computing is generally appreciated by those skilled in the art as well as the general public. As such, improved techniques for accessing stored content would be useful.
Broadly speaking, the invention relates to storage systems for computing (or computer) environments. More particularly, the invention relates to non-volatile storage systems and devices for which techniques for switching access states are disclosed.
In accordance with one aspect of the invention, a plurality of non-volatile memory portions can be effectively presented as (a) a single logical unit in a first access state (“single unit access state”) and (b) as multiple logical units in a second access state (“multi-unit access state”).
In one embodiment, an access switching system is provided for a device that includes a plurality of non-volatile storage portions. As a result, the device is operable to effectively switch between first and second access states. In the first access state, the plurality of non-volatile storage portions can be effectively presented as a single logical unit for access by another device, thereby allowing the other device to effectively access the plurality of non-volatile storage portions from a single access point. However, the device is operable to switch to a second access state in which the plurality of the non-volatile storage portions can be effectively presented to the other device as multiple logical units, thereby allowing the other device to access the plurality of non-volatile storage portions individually by using multiple access points respectively associated with the multiple logical units presented.
In accordance with another embodiment, a device can include a plurality of controllers including first and second controllers for effectively controlling access to first and second non-volatile storage portions. The device is operable to effectively provide the first and second non-volatile storage portions in a first access state in which an access point is effectively provided as a single access for accessing both of the first and second non-volatile storage portions. The single access point is operable to effectively forward commands for accessing any one of the first and second non-volatile storage portions directly and/or indirectly to the first controller or second controller so that any of the first and second non-volatile storage portions can be made accessible via the single access point. As a result, the first and second non-volatile storage portions can be accessed by another device which can issue access commands via the single access point in order to access the first and second non-volatile storage portions effectively as a single logical unit. It will be appreciated that the device can be further operable to effectively provide the plurality of non-volatile storage portions as two or more logical units when the device is in a second access state in which the first non-volatile storage portion can be directly accessed via the first controller and the second non-volatile storage portion can be directly accessed via the second controller. As a result, each one of the plurality of non-volatile storage portions can be accessed individually as a single logical unit.
In accordance with yet another embodiment, an access state switching system can includes a hub and/or switch system connected to a plurality of controllers and operable to effectively allow the controllers to be connected to a single access point in a manner that access commands can be effectively forwarded to each one of the controllers so that each one of a plurality non-volatile memory portions controlled by the controllers can be accessed via the single access point when the plurality of controllers are presented in a single unit state access state as one logical unit. It will be appreciated that the hub and/or switch system can, for example, include a plurality of hub and/or switch components respectively connected to each one of the controllers in a “daisy chain” configuration. As another example, the hub system and/or switch system can includes an external switch and/or hub component provided as an external component with respect to the controllers. It will also be appreciated that one or more hub and/or switch component can be effectively integrated with one or more controllers. In addition, a controller can act as a master controller component with integrated hub/switch functionality or an external hub/hub/switch system can be provided for a master controller with acts as a master to one or more slave controllers.
The invention can be implemented in numerous ways, including, for example, a method, an apparatus, a device, a storage device, and a computer readable medium, and a computing system (e.g., a computing device). Several embodiments of the invention are discussed below.
Other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.
The present invention will be readily understood by the following detailed description in conjunction with the accompanying drawings, wherein like reference numerals designate like structural elements, and in which:
As noted in the background section, advancement in storage (or memory) technology has further facilitated the use of modern and mobile storage devices where content can be stored and easily carried for use on various computing devices. Today, various non-volatile storage devices (e.g., USB flash drives, flash cards) are generally available to the public. A number of non-volatile storage devices available today can be connected together or effectively integrated in various configurations to form a single device. However, conventionally, such configurations of non-volatile storage devices are made accessible either as a single unit (or device) or as multiple units (or devices). By way of example, two (2) individual USB flash drives each providing one (1) Giga Bytes of flash memory can be directly connected to a computer and appear as two separate devices to the computer (e.g., two devices on drives “E:” and “F:” of a Personal Computer). The same two (2) USB flash drives can be connected via a USB hub to the computer. The USB hub can additional provide a “device merge” or “device concatenation” functionality to effectively merge the two USB flash drives and present them as a single drive. As a result, the two individual USB flash drives can be presented as a single device and made accessible via the USB hub to the computer (e.g., a device on drive “E:” of a Personal Computer).
It will be appreciated that a non-volatile storage device that can switch its access state between single and multiple units would be highly useful. The capability to switch the access state, among other things, would allow a non-volatile storage device to be presented and accessed as a single logical unit in a one situation and as multiple logical units in another situation. By way of example, when a non-volatile storage device is connected to a Personal Computer (PC) at home, it would present a single logical unit for access by the Personal Computer. In this situation, a user would see the non-volatile device as a single device on a particular drive (e.g., drive “E”) and the Personal Computer would effectively access the non-volatile storage device as a single device with a single logical unit. However, when the same non-volatile storage device is connected to a host device with relatively large throughput capabilities (e.g., a host in a kiosk application), the non-volatile storage device would be able to present multiple logical units to the host device. This allows multiple access operations (e.g., writes) to be performed independently and in parallel. In the situation, the host device could effectively access the non-volatile storage device as it were multiple devices using multiple logical units provided for access.
As such, it will be appreciated that the invention provides techniques for switching access states for accessing non-volatile memory. In accordance with one aspect of the invention, a plurality of non-volatile memory portions can be effectively presented as (a) a single logical unit in a first access state (“single unit access state”) and (b) as multiple logical units in a second access state (“multi-unit access state”).
In one embodiment, an access switching system is provided for device that includes a plurality of non-volatile storage portions. As a result, the device is operable to effectively switch between first and second access states. In the first access state, the plurality of non-volatile storage portions can be effectively presented as a single logical unit for access by another device, thereby allowing the other device to effectively access the plurality of non-volatile storage portions from a single access point. However, the device is operable to switch to a second access state in which the plurality of the non-volatile storage portions can be effectively presented to the other device as multiple logical units, thereby allowing the other device to access the plurality of non-volatile storage portions individually by using multiple access points respectively associated with the multiple logical units presented.
In accordance with another embodiment, a device can include a plurality of controllers including first and second controllers for effectively controlling access to first and second non-volatile storage portions. The device is operable to effectively provide the first and second non-volatile storage portions in a first access state in which an access point is effectively provided as a single access for accessing both of the first and second non-volatile storage portions. The single access point is operable to effectively forward commands for accessing any one of the first and second non-volatile storage portions directly and/or indirectly to the first controller or second controller so that any of the first and second non-volatile storage portions can be made accessible via the single access point. As a result, the first and second non-volatile storage portions can be accessed by another device which can issue access commands via the single access point in order to access the first and second non-volatile storage portions effectively as a single logical unit. It will be appreciated that the device can be further operable to effectively provide the plurality of non-volatile storage portions as two or more logical units when the device is in a second access state in which the first non-volatile storage portion can be directly accessed via the first controller and the second non-volatile storage portion can be directly accessed via the second controller. As a result, each one of the plurality of non-volatile storage portions can be accessed individually as a single logical unit.
In accordance with yet another embodiment, an access state switching system can includes a hub and/or switch system connected to a plurality of controllers and operable to effectively allow the controllers to be connected to a single access point in a manner that access commands can be effectively forwarded to each one of the controllers so that each one of a plurality non-volatile memory portions controlled by the controllers can be accessed via the single access point when the plurality of controllers are presented in a single unit state access state as one logical unit. It will be appreciated that the hub and/or switch system can, for example, include a plurality of hub and/or switch components respectively connected to each one of the controllers in a “daisy chain” configuration. As another example, the hub system and/or switch system can includes an external switch and/or hub component provided as an external component with respect to the controllers. It will also be appreciated that one or more hub and/or switch component can be effectively integrated with one or more controllers. In addition, a controller can act as a master controller component with integrated hub/switch functionality or an external hub/hub/switch system can be provided for a master controller with acts as a master to one or more slave controllers.
Embodiments of these aspects of the invention are discussed below with reference to
To further elaborate,
Referring to
It will be appreciated that the single access point 214 can, for example, be configured to effectively forward access commands for accessing any one of the first and second non-volatile storage portions 202a and 202b directly and/or indirectly to first and second controllers 206a and 206b so that any one the first and second non-volatile storage portions 202a and 202b can be effectively accessed by at least one other device 110. This means that the device 110 can issue said access command via the single access point 214. As a result, device 110 can access both the first and second non-volatile storage portions 202a and 202b as a single logical unit despite the fact that they may be effectively controlled by different controllers (controllers 206a and 206b).
As shown in
It should be noted that the access state switch system 208 can be configured and/or operable to receive an access state control 212 that effectively determines the state of access for the device 200. As a result, the access state control 212 can effectively switch the state access from the single unit state of access depicted in
Referring now to
As noted above, the access state control 212 can effectively switch the access states of the device 200 between single and multiple access states depicted in
The access state control 212 can, for example, be a signal which is effectively obtained by the access state switch system 208. As such, the device 110, for example, be operable to receive the access state control 212 as signal when the device 110 is operatively is connected to the device 200. By way of example, the device 110 can effectively provide a signal to the device 200 in order to indicate the access state required and/or preferred by the device 110 for accessing the non-volatile storage portions 202. As another example, the access state control 212 can be provided as an input effectively serving as a configuration option for the device 200 (e.g., an option allowing a user to switch between different access states). As yet another example, the type of the connection which is made between the device 110 and device 200 can effectively indicate and/or determine the access state control 212 which in turn effectively determines the access state for accessing the non-volatile storage portions 202. By way of example, two different connectors can be provided for the device 200, whereby connecting via the first connector would effectively result in placing the device 200 in a single unit access state, whereas making a connection via the second connector would effectively place the device 200 in a multi-unit access state. Exemplary configurations of connectors are depicted in
It should be noted that each of the non-volatile storage portions depicted in
As noted above, an access state switching system can effectively switch between single and multiple access states in accordance with one aspect of the invention. To further elaborate,
Referring now to
However, if it is determined (384) to provide access in a single unit access state, an access point is presented as a single access point for accessing a plurality of controllers that actually control the plurality of the non-volatile storage portions. In other words, the single access point can effectively forward access command directly and/or indirectly to the plurality of controllers that actually control the non-volatile storage portions. As such, it is determined (390) whether an access command is received at the single access point. If it is determined (390) that an access command is not received at the single access point, it is determined (392) whether the connection has ended. In effect, the method 380 can wait to receive an access command at the single access point (390) or end as a result of the determination (392) that the connection to the other device has ended. If it is determined (390) that an access command has been received at the single access point, it is determined (394) whether to forward the access command to a controller. In this way, the method 380 can effectively process access commands received at the single access point and forward (396) them to a controller, if necessary, until it is determined (392) that the connection to the other device has ended.
In contrast to
Referring now to
The various aspects, features, embodiments and/or implementations of the invention described above can be used alone or in various combinations. The many features and advantages of the present invention are apparent from the written description and, thus, it is intended by the appended claims to cover all such features and advantages of the invention. Further, since numerous modifications and changes will readily occur to those skilled in the art, the invention should not be limited to the exact construction and operation as illustrated and described. Hence, all suitable modifications and equivalents may be resorted to as falling within the scope of the invention.