Method and system for a storage device

Systems and methods for storage devices are presented. More specifically, in one embodiment a storage device may comprise an enclosure comprising an interface which may be coupled to an I/O bus of a computing system with which it is being utilized. Commands may be received through the interface and, invisibly to the computing system which issues the commands, translated into a set of commands configured to effectuate the received command in conjunction with one or more storage media coupled to the interface. These storage media may comprise different types of storage media such that data designated as critical may be stored on an appropriate storage media.

TECHNICAL FIELD

Embodiments of the invention relate generally to the use of storage devices. More particularly, embodiments of the invention relate to implementing storage devices with multiple types of storage media. Even more specifically, embodiments of the invention relate to implementing storage devices with multiple storage media to achieve one or more desired objectives to achieve greater data reliability or other objectives such as increased capacity, speed, security, a more desirable form factor, or another objective altogether.

BACKGROUND

Data represents a significant asset for many entities. Consequently, data loss, whether accidental or caused by malicious activity, can be costly in terms of wasted manpower, loss of goodwill from customers, loss of time and potential legal liability. To ensure proper protection of data for business, legal or other purposes, many entities may desire to protect their data using a variety of techniques, including data storage, redundancy, security, etc. These techniques may, however, conflict with other competing constraints or demands imposed by the state or configuration of computing devices used to process or store this data.

These types of constraints may center around processing constraints particular to an environment or context in which data is being processed or utilized, space constraints within such an environment, cost constraints placed on the hardware or software used to process, manage or otherwise store data, or other constraints altogether may impede the ability to achieve desirable levels of protection with respect to important data. It would be desirable therefore, to be able to achieve a desired level of data protection utilizing solutions which may account for, or be less affected by, certain of these constraints.

SUMMARY

Systems and methods for storage devices are presented. More specifically, in one embodiment a storage device may comprise an enclosure including an interface which may be coupled to an I/O bus of a computing system with which it is being utilized. Commands may be received through the interface and, invisibly to the computing system which issues the commands, translated into a set of commands configured to effectuate the received command in conjunction with one or more storage media coupled to the interface, where this set of commands may also be configured to store critical data on an appropriate storage media.

Embodiments of the invention disclosed herein can be implemented all or in part by logic, including hardware or by programming one or more computer systems or devices with computer-executable instructions embodied in a computer-readable medium. When executed by a processor, these instructions operate to cause these computer systems and devices to perform one or more functions particular to embodiments of the invention disclosed herein. Programming techniques, computer languages, devices, and computer-readable media necessary to accomplish this are known in the art and thus will not be further described herein.

Certain technical advantages may be obtained through the use of embodiments of the present invention. More specifically, embodiments of the present invention may allow increased reliability of critical data by allowing critical data to be stored on a more reliable storage media while simultaneously providing increased capacity as the reliable storage media may be utilized in conjunction with a storage media with relatively greater capacity. Furthermore, increased throughput may also be realized in conjunction with the obtaining increased reliability by allowing multiple storage media to be utilized in conjunction with certain buses (where only one drive may have been utilized previously) to minimize latency on the bus and maximize throughput.

Additionally, embodiments of the present invention may be operating system and bus agnostic, any bus can be utilized and increased reliability, security, extra capacity, etc. can be implemented or obtained regardless of a native bus format. Thus, functionality provided by embodiments of the present invention may be obtained without modification to drivers or other software on native systems.

DETAILED DESCRIPTION

The invention and the various features and advantageous details thereof are explained more fully with reference to the nonlimiting embodiments that are illustrated in the accompanying drawings and detailed in the following description. Descriptions of well known starting materials, processing techniques, components and equipment are omitted so as not to unnecessarily obscure the invention in detail. It should be understood, however, that the detailed description and the specific examples, while indicating preferred embodiments of the invention, are given by way of illustration only and not by way of limitation. Various substitutions, modifications, additions and/or rearrangements within the spirit and/or scope of the underlying inventive concept will become apparent to those skilled in the art from this disclosure. Embodiments discussed herein can be implemented at least in part using suitable computer-executable instructions that may reside on a computer readable medium (e.g., a HD), hardware circuitry or the like, or any combination. Before proceeding with the remainder of the disclosure it may be helpful to review U.S. patent application Ser. No. 12/048,256, entitled “Method and System and Apparatus for Use in Data Storage”, Brian Bruce and Ahmad Chamseddine, filed Mar. 14, 2008, U.S. patent application Ser. No. 12/048,271, entitled “Method and System for a Storage Device”, Brian Bruce and Ahmad Chamseddine, filed Mar. 14, 2008 and U.S. patent application Ser. No. 12/175,490, entitled “Method and System for Utilizing Multiple Storage Devices”, Brian Bruce and Ahmad Chamseddine, filed Jul. 18, 2008, all of which are incorporated fully herein by reference.

As discussed above, data represents a significant asset for many entities. Consequently, data loss, whether accidental or caused by malicious activity, can be costly in terms of wasted manpower, loss of goodwill from customers, loss of time and potential legal liability. To ensure proper protection of data for business, legal or other purposes, many entities may desire to protect their data using a variety of techniques, including data storage, redundancy, security, etc. These techniques may, however, conflict with other competing constraints or demands imposed by the state or configuration of computing devices used to process or store this data.

This tension may be better understood with reference toFIG. 1which depicts a high level overview of one embodiment of an architecture for a mobile computer (e.g. also sometimes referred to as a notebook or laptop computer). A mobile computer100comprises a mother board110with a Central Processing Unit (CPU)120where the mother board is coupled to a storage device140(e.g. a hard disk drive, solid state storage such as flash memory or the like, media library of tape drives, other type of storage media such as disk platters, etc., the terms storage device and storage media will be used interchangeably throughout) through an I/O bus130(e.g. an ATA bus, such as a SATA or PATA bus, a PCI bus, a SCSI bus or any other type of bus). Thus, data processed by, or otherwise utilized in conjunction with, mobile computer100may be stored in storage device140.

However, storage device140may only be of a certain capacity. In other words current technical limitations of the storage device may only allow a particular type of storage device140to store a certain amount of data (referred to as the capacity of the storage device). For example, the largest capacity hard disk drive may be around 750 gigabytes. Part and parcel with this limitation, the capacity of storage device140may further be limited by the physical constraints imposed by the packaging of mobile computer100. There may only be a limited amount of space in which to place storage device140. In many cases, this additional limitation further constrains the capacity of storage device140which may be utilized in this physical package (as the physical size of a storage device may be related to its capacity). For example, the largest disk drive that is currently in use in mobile computers is around 160 gigabytes.

Consequently, the amount of data which may be stored in conjunction with mobile computer100is limited by the capacity of storage device140. This limitation exists, in part, because in most cases I/O bus130may only allow (e.g. is configured or designed to operate with) one storage device to be coupled to the I/O bus130. Thus, the capacity of storage device140(which itself may be constrained by technological limitations or the physical limitations imposed by the packaging of mobile computer100) may be the biggest gating factor in the amount of data which may be stored by mobile computer100.

The utilization of only one storage device140may also give rise to other conflicts. For example, in most cases the largest capacity disk drive for use in mobile computers, as discussed above, is around 160 gigabytes. This type of disk drive is a spinning media type of storage device. In other words, a set of spinning platters is used to store and retrieve data. While somewhat secure this type of storage device is relatively prone to data loss or failure compared with other types of storage media such as solid state storage devices. Thus, in certain cases users of mobile computer100may desire to use a disk drive as storage media140to increase the amount of data that may be stored. Other users of mobile computer100may, however, be dealing with highly critical data and desire to use a solid state (or other more reliable) storage device as storage device140to enhance the protection of such data. Both of these options entail a large degree of compromise, if more capacity is desired a disk drive may be chosen as storage device140, compromising the reliability of data stored on storage media140while if more reliability is desired solid state storage may be chosen for storage device140, compromising the amount of storage available.

Mobile computer100may, however, also comprise a second I/O Bus150coupled to mother board110, where the second I/O Bus150interfaces with a modular bay160. A variety of devices may be inserted into (e.g. interfaced with), or used in conjunction with, modular bay160. For example, a CD or DVD drive may be utilized in conjunction with modular bay160, a floppy disk drive or another type of storage device such as a hard disk or the like may also be utilized in conjunction with modular bay160. Consequently, in order to expand the amount of data which may be stored in conjunction with mobile computer100or utilize another type of storage device to increase data reliability, in many cases modular bay160may be utilized in conjunction with a second storage device in addition to storage device140. Utilizing the modular bay160of mobile computer100may, however, preclude the use of modular bay160for interfacing with another desired device (e.g. DVD or CD drive), may entail constant swapping between the second storage device and another desired device or may require a user to carry multiple additional devices.

Similar types of problems may present themselves in other computing devices or systems which utilize storage devices, such as enterprise servers, storage servers, storage area networks (SANs), network attached storage (NAS) systems, or the like. These types of problems may be better illustrated with reference toFIG. 2which depicts a block diagram of one embodiment of a computer storage system. Storage system200comprises a storage server230which receives commands or instructions over I/O bus210, which may be a type of serial bus such as fiber channel, SCSI or the like, but may also be any type of I/O bus known in the art. Based on the commands or instructions received over I/O bus210, storage server230may communicate with one or more of storage devices240(e.g. hard disk drives, tape drives, optical drives, solid state storage devices, etc.) to write, read or otherwise operate on, data associated with those storage devices240. These communications may take over an I/O bus220corresponding to the storage device240, where each of these I/O buses220, may in turn, be different, for example I/O bus220amay be a SCSI bus, I/O Bus220bmay be a serial ATA bus, etc.

In most cases, however, no matter the type of I/O bus utilized, the I/O bus220may limited to being coupled only to one storage device240or type of storage device230(e.g. a storage device may comprise multiple physical tape drives or other storage mediums). As can be seen, this limitation may constrain the storage associated with storage server230to the number of I/O buses220associated with storage router230or the type and size of storage devices240associated with each of I/O buses220similarly to the limitations described above with respect to a mobile computer.

Exacerbating these limitations is the fact that, in some cases, storage devices240may be proprietary to a particular manufacturer of storage server230. This is because storage server230may be designed such that it has one or more slots202into which storage device240may be inserted, plugged or otherwise connected. As storage servers230may be designed for a variety of goals or objectives, different storage servers may have different designs and thus the slots202into which storage media240may be plugged may be different. These types of storage devices240are sometimes referred to as field replaceable units (FRU), or the like.

In most cases, then, manufactures design proprietary enclosures for storage device240, such that the storage device240comprises a proprietary enclosure housing one or more storage media (such as a hard disk of the type known in the art such as those manufactured by Seagate, Western Digital, Samsung, etc.). These storage devices240can then be utilized in conjunction with a storage server230from the same manufacturer, or another manufacturer using the same type of enclosure housing. Thus, once again one limiting factor is the capacity of storage devices240designed for that storage server (e.g. utilizing an enclosure compatible with the storage server230).

Thus, to increase capacity, in most cases a disk drive is used in storage device240. While somewhat secure disk drives are relatively prone to data loss or failure compared with other types of storage media such as solid state storage devices. In most cases, however, users of storage server230cannot afford the loss of capacity that the use of solid state storage as storage media240would entail. As a result disk drives may be utilized in storage devices240and the loss of data protected against in other ways, such as redundancy, RAID, etc. which may entail additional overhead or expense.

To remedy the aforementioned deficiencies, problems and limitations, among others, attention is now directed to systems, methods and apparatuses for storage devices which have allow the use of multiple storage media in a single storage device to increase the reliability of the data stored and which may result in increased capacity, speed, security, a more desirable form factor or myriad other advantages relative to other storage devices. More specifically, embodiments of such storage devices may interface with a single bus (e.g. a single point of connection to a bus) and allow this single bus to be interfaced with multiple buses invisibly to devices using the single bus. By allowing multiple buses to be interfaced to the single bus, a number of storage media may be coupled to each of the buses where at least two of the storage media may be of different types, increasing the reliability of critical data stored on one of the storage media which increasing the maximum storage capacity, speed, etc. of the storage device in general relative to the coupling of a storage device with only a single storage media to the single bus, without using any additional buses or slots (e.g. in a storage server or on a bus).

Advantageously, in one embodiment, the increased reliability of data and other advantageous capabilities may be obtained substantially without alterations to any of the other hardware or software of systems with which it utilized, and to that hardware or software the single storage device comprising the multiple buses (and multiple attached storage media of different types) may appear as a single storage device on the bus.

Moving now toFIG. 3, a block diagram for one embodiment of a system for interfacing multiple buses with a single bus is depicted. More specifically, virtual storage translator device310may allow a primary T/O bus320to be interfaced with multiple secondary I/O buses330. I/O bus320may be almost any type of bus known in the art, such a SATA or PATA bus. Virtual storage translator device310, may be a standalone ASIC, a field programmable gate array (FPGA), a circuit board comprising one or more ASICs operable to execute computer readable instructions, a set of computer readable instructions, some combination of hardware and software, etc. In one embodiment, virtual storage translator device310may use one or more ASICs such as the Silicon Image Si5723 Storage Processor.

This virtual storage translator device310is operable to receive commands or instructions (used interchangeably herein) on primary I/O bus320and translate or map these commands or instructions such that they are effectuated with respect to storage media340on secondary I/O buses330, where secondary I/O buses350may each be a different type of I/O bus (e.g. SATA, PATA, SCSI, FC, etc.) and secondary I/O buses330may be the same or different from primary I/O bus320. This translator or mapping may for example, entail tracking where various files are stored or translating commands or instructions in one protocol to equivalent commands or instructions in another protocol.

Furthermore, this translator or mapping process may be accomplished seamlessly or invisibly with respect to a computing device or processor which issues the commands or instruction over I/O bus320. In other words, in some embodiments, to a computing device interfacing with I/O bus320it appears as if a single storage device is present on I/O bus320where this single storage device may have the capacity of the combined capacity of the storage media340coupled to each of I/O buses330.

A more detailed depiction of one embodiment of a system for interfacing multiple buses with a single bus is depicted is depicted inFIG. 4. More specifically, virtual storage translator device410may allow a primary T/O bus420to be interfaced with multiple secondary I/O buses430where secondary I/O buses430may each be a different type of I/O bus (e.g. SATA, PATA, SCSI, FC, etc.) and secondary I/O buses430may be the same or different from primary I/O bus420. Each of secondary I/O buses430is coupled to a storage media440where one of the storage media440amay be of a first type of storage media such as a disk drive while another of the storage media440nmay be of a second type of storage media such as solid state storage.

Thus, virtual storage translator device410may be operable to receive commands or instructions on primary I/O bus420and translate these commands or instructions such that they are effectuated with respect to storage media440on secondary I/O buses430or to receive responses or data on a secondary I/O bus430and translate the response or data such that it can be communicated to a recipient (e.g. issuer of a command) on primary I/O bus420. The translation of these commands or responses from the protocol in which they are received on a bus (e.g. primary I/O bus420or a secondary I/O bus430) to a suitable protocol may be accomplished by using native bus interfaces470(e.g. an interface corresponding to primary I/O bus420or one or more of secondary I/O buses430) and protocol translator464.

Additionally, virtual storage translator device410is operable to ensure that certain critical data may be stored on an appropriate storage media440. The storage of critical data on a particular storage media440may be accomplished seamlessly or invisibly with respect to a computing device or processor which issues the commands or instruction over I/O bus420. Virtual translator storage device410may simulate a single drive which is the combined size of storage media440by performing or executing the commands received on primary I/O bus420utilizing storage media440. In other words, in some embodiments, to a computing device interfacing with I/O bus420it appears as if a single storage device is present on I/O bus420. Portions of the functionality utilized to implement all or a portion of the described functionality may utilize a set of computer readable instructions of one or more ASICs such as the Silicon Image Si5723 Storage Processor.

In this embodiment, two storage media440of different types may be utilized in conjunction with an I/O bus420designed to interface with only a single storage device and designated data may be stored on one of the storage media440such that certain data may be stored on a storage media440which provides more reliable storage of such data, without altering the BIOS or other software of a system with which it is being utilized. In fact, to a system with which it being utilized it appears as if a single storage device is present on I/O bus420.

Map462may be utilized to ensure that critical data is stored on an appropriate storage media440. Map462may comprise a set of address corresponding to one or more storage media440on which critical data is to be stored. Thus, when a command received over I/O bus420indicates that stored data is critical this data may be stored at one of the address corresponding to one of the storage media440on which critical data should be stored. Alternatively, map462may comprise a set of addresses corresponding to the addressing utilized in conjunction with commands issued over I/O bus420where the set of address correspond to critical data. When a command is received over I/O bus420to store data at an address if the referenced address is within the set of address maintained by map462which correspond to critical data the received data may be stored at one of the set of addresses corresponding to the one or more storage media440on which critical data is to be stored.

As can be seen then, storage capacity corresponding to I/O bus420may effectively be increased and the reliability of critical data improved without any substantial alteration to the hardware or software of a computing system using a storage device comprising virtual translator storage device410(relative to coupling only a single storage device to I/O bus420). In other words, no matter the size of a single storage device which can be coupled to I/O bus420, this size can be effectively increased and the storage of critical data on reliable storage media achieved by using a storage device with virtual translator storage device410and attaching multiple storage media440of different types to virtual translator storage device410.

In addition to providing the ability to have a storage device with differing types of storage media in order to ensure the reliability of data, virtual translator storage device410may also comprise RAID controller460which may be hardware (e.g. on an ASIC), a portion of the hardware or ASIC comprising virtual storage translator device410, computer readable instructions on a computer readable media, or some combination. RAID controller460may be operable to implement one or more RAID levels (e.g. RAID levels 0, 1, 3, 4, 5, 6 or any nested RAID levels, etc.), multi-RAID modes (e.g. implementations which create virtual volumes and balance the benefits of capacity and protection) cascaded storage devices and the like. In other words, in one embodiment, RAID controller460handles the management of any RAID implementation in conjunction with the storage devices coupled to secondary I/O buses430, performing any parity calculations required by an implemented level RAID level or executing other processing utilized for the RAID implementation.

This management may, in one embodiment, include maintaining one or more first in first out (FIFO) queues466for buffering or holding received commands until they are processed and map462which is a map between the addressing utilizing in conjunction with commands issued over I/O bus420and the storage of data with respect to storage media440. For example, if RAID controller is implementing RAID 0 with respect to storage media440, all of storage media440may appear a contiguous set of addresses to users of I/O bus420and thus commands over I/O bus420may attempt to store or otherwise access data according to these contiguous addresses. To implement RAID 0, however, this data may be stored in storage media according to a different addressing scheme or at different locations than those referred to by command received over I/O bus420. Thus, map462may correlate or otherwise associate addresses or locations of the type or format received over I/O bus420with addresses or locations in one or more of storage media440.

In addition to RAID functionality, other forms of functionality may be implemented with respect to embodiments of a virtual translator storage device. In one embodiment, this functionality may include performing encryption on the data stored on one or more of the storage media associated with the virtual translator storage device. Encrypting data in conjunction with an embodiment of the virtual translator storage device may increase performance of a system with which a virtual translator storage device is utilized (e.g. because no bandwidth is consumed by the operating system for encrypting and decrypting) while simultaneously eliminating a security risk (a compromised operating system or stored data). In a notebook computer setting encrypting at the device level is extremely important for removable storage devices as the devices may frequently be misplaced, stolen or otherwise accessed by unauthorized persons. In the same vein, embodiment of the virtual storage translation device may allow all data on a storage device to be fully encrypted (as opposed to the storage device containing a mix of encrypted and non-encrypted data). A fully encrypted drive provides a greater level of security than a drive that contains non-encrypted and encrypted data.

Turning toFIG. 5, a block diagram for one embodiment of a system for interfacing multiple buses with a single bus is depicted, where encryption may be implemented with respect to data stored on one or more of the storage devices on these multiple buses. More specifically, virtual storage translator device510may allow a primary I/O bus520to be interfaced with multiple secondary I/O buses530. Virtual storage translator device510, includes encryption logic560which may be hardware (e.g. on an ASIC), a portion of the hardware or ASIC comprising virtual storage translator device510, computer readable instructions on a computer readable media, or some combination. Encryption logic560may be operable to implement apply one or more encryption algorithms to data being stored to, or retrieved from, storage devices540to encrypt according to established standards such as SSL, it could provide low-level whole or partial encryption of a storage device, or it some other function involving an encryption algorithm.

Thus, virtual storage translator device510may be operable to receive commands or instructions on primary I/O bus520and translate these commands or instructions such that they are effectuated with respect to storage device540on secondary I/O buses530. Additionally, virtual storage translator device510is operable to apply encryption logic560to any data being stored or retrieved from one or more of these storage devices540, such that data may be stored on one or more storage device540in an encrypted format. As this encryption may take place in virtual storage translator device510, the encryption process may be more secure than a similar encryption process which is accomplished at the operating system or application level.

As a large degree of functionality has been discussed herein in conjunction with embodiments of a virtual translator storage device it should be pointed out that almost any permutation of embodiments of functionalities discussed herein may be implemented. For example, multiple virtual translator storage devices may be cascaded to achieve varying effects, RAID may be implemented with respect to none or all of the virtual translator storage devices in a particular system, different types of storage devices may be utilized in conjunction with virtual translator storage devices, RAID may be implemented with varying types of storage devices and hardware encryption may be utilized on one or more of these storage devices, etc.

Thus, embodiments of the virtual translator storage device may be employed in storage devices to a variety of advantageous ends. Such storage device may be better understood with reference toFIG. 6which depicts a block diagram of one embodiment of a storage device which employs a virtual storage translator device. Storage device600may be housed in an enclosure602, which may be an enclosure which conforms to any one of a number of industry standards or which may be a proprietary enclosure designed for use with a particular manufacture's computing systems, etc. The enclosure602may house or otherwise comprise an interface612operable to couple storage device600to a bus such as SATA, PATA, SCSI, PCI or any other type of bus or medium over which commands may be received and responses sent. Virtual storage translator device630is coupled to interface612through I/O bus610such that commands received at interface612will be passed to virtual storage translator device630on I/O bus610. It will also be noted that virtual storage translator device630may itself comprise interface612(for example virtual storage translator device630may a card or printed circuit board comprising interface612), such that I/O bus610may not be needed and virtual storage translator device630may receive commands from or through interface612on the bus to which interface612is coupled.

Virtual translator storage device630is, in turn, coupled to each of storage media690using a corresponding I/O bus640, which may be a SATA, PATA or other type of bus, including a proprietary bus designed for use with virtual storage translator device630. Storage media690may each be solid state storage (e.g. flash or DRAM-based solid state storage) or may each comprise one or more disk platters, heads and arms as are known in the art, or may be another type of storage media altogether.

Virtual translator storage device670may execute the commands received through interface612utilizing storage media690. In other words, in this embodiment, two storage media690may be utilized in conjunction with a single interface of a single storage device without altering the BIOS or other software issuing commands over interface612. In fact, to the issuer of commands through interface612it appears as if a single storage device (e.g. hard disk drive, etc.) is present at interface612. Thus, a wide variety of different objectives may be accomplished using virtual storage translator device630.

For example, as discussed above, storage media690used with embodiments of a virtual translator storage device630may be any type of storage devices known in the art, such as spinning media or disk drives, solid state hard drives, optical drives, etc. As may be realized each of these various types of storage devices may have different strengths or weaknesses. For example, spinning media drives may have a higher capacity than solid state hard drives while being susceptible to failure when subject to excessive shock or vibration while conversely solid state media drives may be of comparatively lesser capacity while being more resistant to shock or vibration.

When only a single storage media type is utilized the advantages and disadvantages of the particular type of storage media utilized must be dealt with: if a solid state drive is chosen more resistance to shock and vibration is achieved at the expense of capacity, while if a spinning media drive is chosen capacity is gained by sacrificing durability. Using virtual translator storage device630, however, multiple storage devices may be utilized in conjunction with I/O bus610and by utilizing various or different types of storage devices a variety of objectives may be achieved. For example, if storage device690ais a solid state storage device and storage device690nis a spinning disk drive the benefits of a solid state drive (e.g. durability, shock resistance, etc.) may be obtained while simultaneously realizing the benefits of a spinning disk drive (e.g. capacity).

Furthermore, if virtual storage translator device630implements RAID level 0 with respect to storage media690, storage capacity of storage device600may effectively be doubled without any alteration to the hardware or software used to interface with the storage device600(e.g. relative to a single storage device with a single storage media). In other words, no matter the size of a single storage device using a single storage media which can be coupled to a particular interface or bus, this size can be effectively doubled (or tripled, quadrupled, etc.) by utilizing storage device600with multiple storage media640.

Additionally, certain levels of fault tolerance or recoverability may be achieved without alteration to the BIOS or other software issuing commands by using virtual storage translator device630to implement higher levels of RAID (e.g. RAID level 1, 5, etc.) with respect to the multiple storage media640of storage device600as discussed above. Similarly, encryption may also be achieved without alteration to the BIOS or other software issuing commands by implementing this encryption with respect to virtual storage translator device630as also described above.

It should be noted that a wide variety of objectives may be accomplished through the use of embodiments of storage device600comprising virtual translator storage devices630(e.g. increased speed, data reliability, performance, redundancy, etc.) and that many permutations of various RAID implementations and/or encryption implementations may be possible. For example, no RAID may be implemented with respect to storage media640, RAID level 0 may be implemented with respect to storage media640, encryption may be implemented with respect to one or more of storage media640on which RAID is implemented, etc.

The functionality of an embodiment of storage device such as those discussed above may be better depicted with reference toFIG. 7which depicts a block diagram of the use of just such an embodiment of a storage device utilizing a virtual storage translator device having a in a mobile computing environment. Mobile computer700comprises a mother board710with a Central Processing Unit (CPU)720where the mother board is coupled to storage device780through an I/O bus730, such as a SATA or other type of bus. Storage device780comprises virtual translator storage device770having interface772operable to interface with I/O bus730. Virtual translator storage device770is, in turn, coupled to each of storage media760using a corresponding I/O bus740, which may also be SATA or other type of bus. One of storage devices760amay be of a first type of storage media such as a disk drive while another of the storage devices760bmay be of a second type of storage media such as solid state storage.

Virtual translator storage device770may simulate a single drive which is the combined size of storage media760by performing or executing the commands received through I/O bus730utilizing storage media760. In addition, virtual translator storage device770may ensure that certain designated data is stored on a particular one of the storage media760without altering the BIOS or other software executing in conjunction with the mobile computer700. In fact, to an operating system700executing on mobile computer (e.g. executing on CPU of mother board410) it appears as if a single storage device (e.g. hard disk drive, etc.) is present on I/O bus730.

As can be seen then, storage capacity corresponding to I/O bus730may effectively be increased and the reliability of critical data improved without any substantial alteration to the hardware or software of mobile computer700relative to coupling only a single storage device to I/O bus730. In other words, no matter the size of a single storage device which can be coupled to I/O bus730, this size can be effectively increased and the storage of critical data on reliable storage media achieved by attaching multiple storage media of different types to virtual translator storage device770.

As discussed above, storage media760used with embodiments of a virtual translator storage device770may be any type of storage devices known in the art, such as spinning media or disk drives, solid state hard drives, optical drives, etc. As may be realized each of these various types of storage devices may have different strengths or weaknesses. For example, spinning media drives may have a higher capacity than solid state hard drives while being susceptible to failure when subject to excessive shock or vibration while conversely solid state media drives may be of comparatively lesser capacity while being more resistant to shock or vibration.

When only a single storage device is utilized in a mobile environment the advantages and disadvantages of the particular type of storage device utilized must be dealt with: if a solid state drive is chosen more resistance to shock and vibration is achieved at the expense of capacity, while if a spinning media drive is chosen capacity is gained by sacrificing durability. Using virtual translator storage device770, however, multiple storage media may be utilized in conjunction with I/O bus730and by utilizing various or different types of storage devices a variety of objectives may be achieved. For example, if storage device960ais a solid state storage device and storage device960bis a spinning disk drive the benefits of a solid state drive (e.g. durability, shock resistance, etc.) may be obtained while simultaneously realizing the benefits of a spinning disk drive (e.g. capacity).

To accentuate the advantages of utilizing different types of storage device in conjunction with virtual translator storage device770it may be desired to designate where (e.g. on which storage media760) certain data is stored. For example, it may be useful to store critical or important data on a solid state storage device to protect against loss of this data as these devices are more resistant to shock and vibration. By the same token it may be useful to store non-critical or less important data on a spinning media drive such that the relatively more limited capacity of a solid state storage device is not utilized to store such non-critical data.

Thus, in one embodiment a utility or application714may be provided in conjunction with mobile computer700(e.g. which may execute on, or utilized with other software such as an operating system or the like on, mobile computer700) which allows data (e.g. files, directories, etc.) to be designated as critical (or non-critical). Based on a designation associated with data virtual storage translator device770may store the data on an appropriate storage media760. For example, if a file is designated as critical it may be stored on a solid state storage media760while if the file is designated as non-critical (or is not designated as critical) the file may be stored on a spinning storage media760. Again, the storage of data to an appropriate or designated storage media may be accomplished by virtual storage translator device770invisibly to a user or the hardware or software of mobile computer700.

In one embodiment, storage designation application714(for example, a set of computer executable instructions which may be executed by CPU720) may automatically designate certain files as critical. For example, with brief reference to FIGURE XXXX, in one embodiment a users “MyDocuments” folder1210may have two sub-folders, one sub-folder designated “MySecureDocuments”1220and one folder designated “MyDocuments”1230. Files placed within the “MySecureDocuments” folder will be designated by storage designation application714as critical and will be stored on an appropriate storage media760aby virtual translator storage device770. While files in the “MyDocuments” folder may be stored on another storage media760b. In this way, two or more storage devices760may be used in conjunction with a single I/O bus730where one of these storage media760may be a more reliable storage media760asuch as a solid state storage device and the other storage media760bmay be a storage media with more capacity. Thus, a user may gain the benefit of the use of both types of storage media without having to substantially alter his mobile computer700or utilize a modular bay.

To inform virtual storage translator storage device470that a particular file or folder is to be designated as critical, storage designation application714may intercept commands to store critical data to be issued over I/O bus730and alter such commands to inform virtual storage translator device770that the data is to be stored in critical storage or may independently communicate with virtual translator storage device770to communicate which folders or files are to be stored on a particular storage device460.

Virtual translator storage device770comprises RAID controller762such that RAID may be implemented with respect to commands received on primary I/O bus730utilizing storage media760. In other words, in this embodiment, RAID may be implemented by RAID controller762with respect to two storage media760in conjunction with an I/O bus730designed to interface with only a single storage device without altering the BIOS or other software executing in conjunction with the mobile computer700. In fact, to an operating system or other software executing on mobile computer700(e.g. executing on CPU of mother board710) it may appear as if a single storage device with a single storage media (e.g. hard disk drive, etc.) is present on I/O bus730.

As can be seen then, by using storage device780RAID may be implemented to accomplish various objectives (increase speed or performance, redundancy, fault tolerance, etc.) without any alteration to the hardware or software of mobile computer700(e.g. alteration to the BIOS, operating system, drivers, etc.). It will be apparent after a review of the above that though one embodiment of the storage device has been depicted with respect to a mobile computer, embodiments of such storage devices may be similarly utilized with equal efficacy in other setting (e.g. other types of computing or data storage systems).

Similar efficacy and advantages may be achieved by embodiments of a virtual translator storage device in other settings, including those which are not mobile in nature.FIG. 8depicts a block diagram of one embodiment of a storage device which employs a virtual storage translator device which may, for example, be used in a storage server (or other storage) setting. Storage device800may be housed in an enclosure802, which may be an enclosure which may be a proprietary enclosure designed for use with a particular manufacture's computing systems (e.g. to fit in a slot in manufacturer's storage server), etc. The enclosure802may house an interface812operable to couple storage device800to a bus such as SATA, PATA, SCSI, PCI or any other type of bus or medium over which commands may be received and responses sent, including those buses or mediums proprietary to a particular manufacturer's computing systems, etc. Virtual storage translator device830is coupled to interface812through I/O bus810such that commands received at interface812will be passed to virtual storage translator device830on I/O bus810. It will also be noted that virtual storage translator device830may itself comprise interface812(for example virtual storage translator device830may a card or printed circuit board comprising interface812), such that I/O bus810may not be needed and virtual storage translator device830may receive commands from through interface812on the bus to which interface812is coupled.

Virtual translator storage device830is, in turn, coupled to each of storage media890using a corresponding I/O bus840, which may be a SATA, PATA or other type of bus, including a proprietary bus designed for use with virtual storage translator device830. Storage media890may each be solid state storage (e.g. flash or DRAM-based solid state storage) or may each comprise one or more hard disks produced by a manufacturers such as those made by Seagate, Western Digital, Maxtor, Hitachi, etc.

Virtual translator storage device870may execute the commands received through interface812utilizing storage media890. In other words, in this embodiment, two storage media890may be utilized in conjunction with a single interface of a single storage device without altering the BIOS or other software issuing commands over interface812. In fact, to the issuer of commands through interface812it appears as if a single storage device (e.g. hard disk drive, etc.) is being accessed through interface812. Thus, a wide variety of different objectives may be accomplished using virtual storage translator device830. For example, as discussed above, storage media890used with embodiments of a virtual translator storage device830may be any type of storage devices known in the art, such as spinning media or disk drives, solid state hard drives, optical drives, etc. As such, it may be possible to store critical data on an appropriate or desired storage media of storage device800.

The functionality of an embodiment of storage device such as those discussed above may be better depicted with reference toFIG. 9which depicts a block diagram of the use of just such an embodiment of a storage device utilizing a virtual storage translator device having a RAID controller in a storage server environment.

Storage system900comprises a storage server930which receives commands or instructions from one or more hosts (not shown) over I/O Bus910, which may be a serial or other type of bus. Application(s) or hardware (collectively912) which implement one or more storage server applications may process the received commands to determine one or more corresponding commands to be issued over one or more I/O buses940. I/O bus940is operable to interface with a plurality of storage slots902, each of the storage slots902itself operable to interface with a storage device where, as described above, the size, interface or other properties of slots902may be proprietary to the manufacturer of storage server930.

Each storage device980utilized in conjunction with a storage slot902(e.g. plugged into or otherwise interfaced with the storage slot902) may therefore utilize an enclosure designed for use with that slot902. In other words, the physical or other attributes of the enclosure (or other portions of) storage device980may be configure to function in conjunction with storage slot902(or storage server930). Storage device980also comprises virtual translator storage device970having interface972operable to interface with I/O bus940. Virtual translator storage device970is, in turn, coupled to each of storage media960using a corresponding I/O bus942, which may also be SATA or other type of bus.

One of storage devices960amay be of a first type of storage media such as a disk drive while another of the storage devices960bmay be of a second type of storage media such as solid state storage. Using virtual translator storage device970a single storage device which is the combined size of storage media960may be simulated. In addition, virtual translator storage device970may ensure that certain designated data is stored on a particular one of the storage media960without altering the BIOS or other software executing in conjunction with the storage server930as discussed above with respect to a mobile computer. In fact, to an operating system or storage application executing on storage server930it may appear as if a single storage device (e.g. hard disk drive, etc.) is present at each of slots902.

As can be seen then, storage capacity corresponding to slots902may effectively be increased and the reliability of critical data improved without any substantial alteration to the hardware or software of storage server930relative to coupling only a single storage device to a storage slot902. In other words, no matter the size of a single storage device which can be used in storage slot902this size can be effectively increased and the storage of critical data on reliable storage media achieved by attaching a storage device using virtual translator storage device970with multiple storage media of different types to slot902.

It should be noted that a wide variety of objectives may be accomplished through the use of embodiments of storage device980comprising virtual translator storage devices970(e.g. reliable storage of data, increased speed, performance, redundancy, etc.) and that many permutations of storage media types, storage of data on these storage media, various RAID implementations or encryption implementations may be possible.