GB2407405A - RAID arrays with solid-state memory devices - Google Patents
RAID arrays with solid-state memory devices Download PDFInfo
- Publication number
- GB2407405A GB2407405A GB0324690A GB0324690A GB2407405A GB 2407405 A GB2407405 A GB 2407405A GB 0324690 A GB0324690 A GB 0324690A GB 0324690 A GB0324690 A GB 0324690A GB 2407405 A GB2407405 A GB 2407405A
- Authority
- GB
- United Kingdom
- Prior art keywords
- raid
- data storage
- memory cards
- virtual
- raid array
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
A unit 1 consists of a RAID array and adapter that can replace existing storage units, for example a hard drive. The unit is intended principally for use with mobile computing devices. The array is, built from standard removable solid-state memory cards which are stored in caddies 2, where each card takes a role similar to that of a hard drive in a normal RAID setup. Additional storage devices can be included with the RAID array. Either the RAID array or an additional unit can act as a cache. The solid-state memory cards 2 can form two or more predefined groups, each a separate RAID entity. The caddies 2 may be hinged or removable, and may or may not contain the necessary interfaces and controller circuitry.
Description
1 2407405 Small-scale RAID arrays and adapters for mobile computing
devices UK pa tent applica tion 2nd draft: 1 gth October 2003
BACKGROUND
One of the main disadvantages of modern mobile computing devices is the comparatively small capacity and limited data protection that is offered by their persistent storage devices (notably their hard drives). In spite of the fact that most laptop computers, palmtops (PDAs) and other mobile computing devices now offer a processing power that is comparable to that of desktop systems, their persistent storage capacity is, by comparison, greatly reduced. Laptop hard drives, for example, can only hold between one quarter and one third of the data that can be stored on those destined for desktop systems.
Furthermore, while fixed servers and high-end workstations can benefit from advanced features such as RAID (Redundant Array of Independent Drives) arrays, (RAID arrays offer greater performance in terms of the rate of data transfer, and often more importantly, greater security in the event of the failure of one or many of their hard drives), almost all mobile devices, such as laptops, offer little or no possibility for adding the same type of redundancy to their permanent storage. In general, most laptops can only accept one hard drive, and although some models may allow the addition of a second device, RAID style redundancy is not possible (the failure of the drive on which the operating system is installed will require its complete reinstallation).
The evolution and proliferation over the last few years of very small, solid-state, persistent memory devices (memory cards) will, in the near future, render their usage advantageous in situations where (mechanical) hard drives may otherwise be adopted: they offer a much greater level of reliability; they have considerably lower power requirements; they are physically robust, that is they are not subject to damage or error from relatively minor shocks; and although, at the time of writing, their capacity is comparatively small, it is increasing at a considerable rate, probably to the extent that they will soon be on a level footing with mechanical hard drives in terms of storage capacity for a given physical weight and volume.
However, more importantly for mobile computing, their size allows them to be placed in a RAID configuration, even inside a device such as a PDA. This would thus allow mobile computing devices to benefit from the reliability and performance that is currently only available to servers and high-end desktop
DETAILED DESCRIPTION
The basis of the invention is a unit that can accept two or more solidstate memory devices (hereafter referred to as memory cards) that, for increased performance and reliability, are placed in a RAID configuration for use with a computing device (in particular a mobile computing device). In general, the unit is designed so that it can replace existing memory or storage devices that take the form of hard drives, PCMCIA or even Compact-Flash type cards, though this should not be taken to be systematically the case (external units are also possible which may be linked to the computing device by either a cable to an external interface or a wireless link). By replace, it should be understood that the unit is able to take the place, and operate in the context of, an existing storage device.
The unit includes a RAID controller or RAID memory card controller (7 in figure 3) that communicates via a bus (8) to the individual memory card controllers (9) and cards (10). The RAID controller distributes the data between the individual cards in a manner similar or identical to that of a normal RAID array of hard drives. RAID arrays can be configured in a number of different ways, the choice of the configuration depending, in general, on its required performance and reliability. For RAID arrays these configurations are referred to as RAID levels (from level O to 5 or greater), each level offering facilities that are appropriate for specific needs. Though it may be possible to include all the possible RAID levels in the unit, the configuration often referred to as RAID level O (or simply RAID O) may be privileged, due notably to the increased reliability of solid-state memory cards. RAID O offers no data redundancy in its implementation (strictly it should not be known under the acronym RAID), but as the stored data is shared evenly between all the cards, it offers, amongst all the RAID configurations, by far the best read and write performance as well as the greatest possible data storage capacity (which, given no other constraints, can be simply evaluated by multiplying the performance or capacity of any one card by the number of cards available). However, in situations where data security is important (the main disadvantage of the RAID O configuration being that it offers no protection against failure) configurations such as RAID levels 1, 3 or 5 may be preferred.
Such configurations offer the possibility of storing data across the cards in such a way that, in the event of the failure of any one card, the original information can be reconstructed and recovered.
Where appropriate, a facultative non-RAID (or multiple RAID array) configuration could be included whereby each card (or for the multiple RAID configuration, each predefined group of cards, the group making up an entire RAID array) is treated as an independent unit (or drive), allowing individual cards (or for the multiple RAID configuration, the predefined groups of cards that each make up an entire RAID array) to be inserted or removed without compromising the overall integrity of the data stored elsewhere on the unit. In non-RAID mode, the unit will simply act as a multiple memory card reader.
Though the unit is characterized by a RAID array of small solid- state memory devices, it may, however, contain one or many additional data storage devices of a type different in nature to that of the devices making up the array. These devices may themselves also be in a RAID configuration, though single devices may be preferred. Furthermore, in general, these additional data storage devices would operate in coordination with the array: for example, the array may act as a fast, persistent memory cache for a hard drive. In this case, the array will be able to hold cashed data in such a way that it and the hard drive will remain in a consistent state even in the event of a power failure to the unit before information in the array has been synchronized with (written to) the hard drive.
The great advantage of this configuration would be that cached data stored in the array need only be synchronized when, for example, the cache is full and space has to be liberated for a further read or write operation, which, as an immediate consequence, would result in a great reduction to the workload of the hard drive, leading naturally in its increased performance as well as its greater longevity.
It should be noted, however, that the invention does not exclude a configuration whereby the previously mentioned one or many additional data storage devices are themselves used as a memory cache to the array (the roles of the array and the hard drive being simply inversed with respect to the previous example).
Notably, a standard hard drive could act as a persistent memory cache to a RAID array.
The caching can, in both cases, function by means of virtual sectors, data blocks or addresses that correspond to physical sectors, data blocks or addresses in the device for which the cache acts, whether it be the additional data storage devices as in the first example or the RAID array as in the second. A table of the physical and virtual sectors, data blocks or addresses would then be maintained and updated dynamically to reflect the state of the data cache. The table may reside in any previously mentioned data support, or may use its own dedicated storage.
EMBODIMENTS
The invention consists of several embodiments, an example of the principle being that shown in figure 1. The unit (1) and interface (3) are modelled so that they can take the place of a standard flinch laptop hard drive. Enclosed in the unit (1) are several caddies (2) each of which can accept memory cards (in figure 1, the unit (1) has four such caddies (2), two of which are illustrated, the other two being hidden on its lower side).
Each caddie (2) can open outwards as shown in the diagram so that a memory card can be inserted or removed. (It should be noted that though in this case the caddie is a useful feature, it is not an essential element of this invention: in another embodiment, the memory cards may be simply inserted in fixed slots on the unit.) The caddies themselves may take a number of forms: they may house a memory card interface and even a memory card controller circuit (9) for one or many memory cards, though again this may not necessarily be so: each caddie could simply offer support to the memory card or cards, facilitating their insertion to an interface fixed to the main circuit board of the unit (1).
As the unit (1) is designed to replace a laptop hard drive, the configuration of the RAID array could present a problem as the interface (3) is, in general, only designed for one specific hardware-type (a standard hard drive). One solution (it should be noted that it is not the only possibility that exits) consists of reading and writing to a virtual sector outside the normal logical address space used by the array (drive), thus treating the configuration data in the same way as any other data destined for the array (the sector being mapped to the internal memory of the controller and not to the array itself).
Another, simpler, possibility would be to mount DIP switches on the casing, the configuration of the switches defining the configuration of the array.
Though a non-RAID (or multiple RAID array) configuration of that cards is in general not appropriate for a single laptop hard drive unit (the majority of interfaces that currently exist can only manage a maximum of two independent hard drives), the possibility exists of presenting each card (or predefined group of cards that makeup an entire RAID array) as a separate partition of a single hard drive. It should be noted, however, that this should not be considered to be a preferred addition to this embodiment, as it will render it at least partially incompatible with the majority of hard drive partitioning and formatting tools that currently exist.
An example of another embodiment (figure 2) is a PCMCIA unit (4) that consists of a number of emplacements and interfaces for memory cards (5) that are held in place by means of clips. In figure 2, the unit (4) can accept six cards in a back-to-back configuration in which the cards are held in two rows of three, with each row occupying one side of the unit (4). As for the previous embodiment, the unit includes a RAID controller (7 in figure 3) that communicates via a bus (8) to the individual memory card controllers (9) and cards (10). The memory card controllers are connected to the memory cards by means of interfaces, which, in the case of figure 2, would be arranged along a double sided support (not illustrated for clarity), each side accepting a separate memory card. The controller would offer similar facilities and configurations to those described for the previous embodiment. As the unit (4) uses a more general PCMCIA interface (6) than the hard drive interface (3), greater possibilities exist for its configuration: the interface is not designed for and constrained to one sole hardware type (though the unit may, all the same, simply present itself as a standard hard drive, for which the solutions outlined above may be preferable). The non-RAID (or multiple RAID array) configuration would be a reasonable and even preferred addition as the PCMCIA adapter is able to present, without difficulty, many drives to its host computing device.
A further embodiment would be a Compact-Flash type unit that accepts two (or more) smaller memory cards. In the case where the unit accepts only two cards, it will offer at least one of RAID O (maximum performance), RAID 1 (maximum security), and the simple non-RAID configuration outlined above.
An example of a further embodiment (not illustrated) is an external unit that is connected to a computing device by means of either a wired (for example, a USB Universal Serial Bus connection) or wireless (for example, communication by means of the IEEE 802.11 protocols) link. The unit would accept a number of memory cards in a way similar to that described for the previous embodiments, and would provide one or many of the same RAID, non-RAID or multiple RAID configurations as previously described.
Claims (15)
- Claims 1. A device that can accept two or more small solid- state memorydevices (hereafter known as memory cards) and place them in one or many of the possible RAID configurations.
- 2. A device as in claim 1 that, in addition, provides a non-RAID configuration whereby each memory card, from all or a subset of the memory cards, is treated independently in such a way that information stored on the card can be read from and written to without affecting any other card.
- 3. A device as in either claim 1 or 2, that, in addition provides a multiple RAID configuration whereby two or more predefined groups of memory cards each form a separate RAID array.
- 4. A device as in any previous claim that can replace physically and function in the context of any existing memory or data storage device.
- 5. A device as in claim 4 where the said data storage device is a hard drive
- 6. A device as in claim 5 where the RAID array can be configured by means of a virtual sector, data block or collection of virtual addresses that lies outside the normal address space of the RAID array.
- 7. A device as in claim 4 where the data storage device is a PCMCIA type extension card.
- 8. A device as in claim 1, 2 or 3 that consists of an external unit that is connected to a computing device by means of a wired or wireless link.
- 9. A device that in addition to any previous claim, contains one or many additional data storage devices, the additional data storage devices being of any type that satisfies the technical constraints regarding the size and power consumption of the unit (device).
- lO.A device as in claim 9 where the additional data storage device is a hard drive.
- ll.A device as in claim 9 or 10 in which the RAID array of memory cards acts as a data cache for the one or many additional data storage devices.
- 12.A device as in claim 11 where the data cache is implemented by means of virtual sectors, data blocks or addresses in the RAID array of memory cards, each virtual sector, data block or address corresponding to a physical sector, data block or address in the one or many additional data storage devices, a correspondence table between the virtual and real sectors, data blocks or addresses being maintained on any previously mentioned or additional data storage device.
- 13.A device as in claim 9 or 10 in which the one or many said additional data storage devices acts as a data cache for the RAID array of memory cards.
- 14.A device as in claim 11 where the data cache is implemented by means of virtual sectors, data blocks or addresses in the one or many additional data storage devices, each virtual sector, data block or address corresponding to a physical sector, data block or address in the RAID array of memory cards, a correspondence table between the virtual and real sectors, data blocks or addresses being maintained on any previously mentioned or additional data storage device.
- 15.A device as in any previous claim that uses hinged or removable caddies in order to maintain the memory cards and to facilitate their insertion or removal; additionally each caddie may or may not contain the necessary interface or interfaces and controller circuitry for one or many memory cards.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0324690A GB2407405B (en) | 2003-10-23 | 2003-10-23 | Small-scale RAID arrays and adapters for mobile computing devices |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0324690A GB2407405B (en) | 2003-10-23 | 2003-10-23 | Small-scale RAID arrays and adapters for mobile computing devices |
Publications (3)
Publication Number | Publication Date |
---|---|
GB0324690D0 GB0324690D0 (en) | 2003-11-26 |
GB2407405A true GB2407405A (en) | 2005-04-27 |
GB2407405B GB2407405B (en) | 2008-05-21 |
Family
ID=29595645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB0324690A Expired - Lifetime GB2407405B (en) | 2003-10-23 | 2003-10-23 | Small-scale RAID arrays and adapters for mobile computing devices |
Country Status (1)
Country | Link |
---|---|
GB (1) | GB2407405B (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008066605A2 (en) | 2006-11-27 | 2008-06-05 | Lsi Corporation | System for optimizing the performance and reliability of a storage controller cache offload circuit |
WO2008081445A2 (en) * | 2007-01-02 | 2008-07-10 | Sandisk Il Ltd. | Apparatus and method for archiving digital content |
WO2009081392A1 (en) * | 2007-12-26 | 2009-07-02 | Sandisk Il Ltd. | A storage device coordinator and a host device that includes the same |
US8713268B2 (en) | 2010-08-05 | 2014-04-29 | Ut-Battelle, Llc | Coordinated garbage collection for raid array of solid state disks |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2295037A (en) * | 1994-11-10 | 1996-05-15 | Raymond Engineering | Redundant array of solid state memory devices |
JP2000207137A (en) * | 1999-01-12 | 2000-07-28 | Kowa Co | Information storage device |
GB2370690A (en) * | 2000-08-24 | 2002-07-03 | Hewlett Packard Co | Solid state mass storage memory device |
US20030028725A1 (en) * | 2001-08-03 | 2003-02-06 | Naberhuis Steven Louis | Redundant array of independent storage devices |
US6611895B1 (en) * | 1998-06-08 | 2003-08-26 | Nicholas J. Krull | High bandwidth cache system |
US20030182494A1 (en) * | 2002-03-20 | 2003-09-25 | Rodrigues Steven Harold | Raid assimilation method and apparatus |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2498154A1 (en) * | 2002-09-16 | 2004-03-25 | Tigi Corporation | Storage system architectures and multiple caching arrangements |
-
2003
- 2003-10-23 GB GB0324690A patent/GB2407405B/en not_active Expired - Lifetime
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2295037A (en) * | 1994-11-10 | 1996-05-15 | Raymond Engineering | Redundant array of solid state memory devices |
US6611895B1 (en) * | 1998-06-08 | 2003-08-26 | Nicholas J. Krull | High bandwidth cache system |
JP2000207137A (en) * | 1999-01-12 | 2000-07-28 | Kowa Co | Information storage device |
GB2370690A (en) * | 2000-08-24 | 2002-07-03 | Hewlett Packard Co | Solid state mass storage memory device |
US20030028725A1 (en) * | 2001-08-03 | 2003-02-06 | Naberhuis Steven Louis | Redundant array of independent storage devices |
US20030182494A1 (en) * | 2002-03-20 | 2003-09-25 | Rodrigues Steven Harold | Raid assimilation method and apparatus |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008066605A2 (en) | 2006-11-27 | 2008-06-05 | Lsi Corporation | System for optimizing the performance and reliability of a storage controller cache offload circuit |
EP2097822A2 (en) * | 2006-11-27 | 2009-09-09 | Lsi Corporation | System for optimizing the performance and reliability of a storage controller cache offload circuit |
EP2097822A4 (en) * | 2006-11-27 | 2010-06-02 | Lsi Corp | System for optimizing the performance and reliability of a storage controller cache offload circuit |
US7904647B2 (en) | 2006-11-27 | 2011-03-08 | Lsi Corporation | System for optimizing the performance and reliability of a storage controller cache offload circuit |
WO2008081445A2 (en) * | 2007-01-02 | 2008-07-10 | Sandisk Il Ltd. | Apparatus and method for archiving digital content |
WO2008081445A3 (en) * | 2007-01-02 | 2008-09-25 | Sandisk Il Ltd | Apparatus and method for archiving digital content |
JP2010515190A (en) * | 2007-01-02 | 2010-05-06 | サンディスク アイエル リミテッド | Apparatus and method for archiving digital content |
EP2189894A1 (en) * | 2007-01-02 | 2010-05-26 | SanDisk IL Ltd | Digital shoebox |
US8037266B2 (en) | 2007-01-02 | 2011-10-11 | Sandisk Il Ltd. | Apparatus and method for archiving digital content |
WO2009081392A1 (en) * | 2007-12-26 | 2009-07-02 | Sandisk Il Ltd. | A storage device coordinator and a host device that includes the same |
US9495116B2 (en) | 2007-12-26 | 2016-11-15 | Sandisk Il Ltd. | Storage device coordinator and a host device that includes the same |
US8713268B2 (en) | 2010-08-05 | 2014-04-29 | Ut-Battelle, Llc | Coordinated garbage collection for raid array of solid state disks |
Also Published As
Publication number | Publication date |
---|---|
GB0324690D0 (en) | 2003-11-26 |
GB2407405B (en) | 2008-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2116985C (en) | Memory system | |
CN107301134B (en) | Wear leveling in a memory device | |
US7099994B2 (en) | RAID memory system | |
US8131916B2 (en) | Data storage device | |
US7240235B2 (en) | Journaling technique for write transactions to mass storage | |
US8135902B2 (en) | Nonvolatile semiconductor memory drive, information processing apparatus and management method of storage area in nonvolatile semiconductor memory drive | |
US20040138868A1 (en) | Hard disk drive emulator | |
US9542101B2 (en) | System and methods for performing embedded full-stripe write operations to a data volume with data elements distributed across multiple modules | |
JP2000207137A (en) | Information storage device | |
US8090900B2 (en) | Storage device and data management method | |
US8244975B2 (en) | Command queue ordering by flipping active write zones | |
WO2005081093A1 (en) | Dual media storage device | |
US20110060869A1 (en) | Large capacity solid-state storage devices and methods therefor | |
JP2008176785A (en) | Hybrid hard disk drive, computer system incorporating hybrid hard disk drive, and flash memory dma circuit for hybrid hard disk drive | |
JP2012507100A (en) | Logical unit operation | |
US20160062696A1 (en) | Solid-state memory device with plurality of memory devices | |
US7296117B2 (en) | Method and apparatus for aggregating storage devices | |
DE69930307D1 (en) | DATA STORAGE SYSTEM | |
JP2017531856A (en) | Active storage units and arrays | |
US20160254031A1 (en) | Semiconductor memory device | |
CN115756299A (en) | Memory system and method for storing logical-to-physical address table entries in codewords in volatile memory | |
GB2407405A (en) | RAID arrays with solid-state memory devices | |
US20100325348A1 (en) | Device of flash modules array | |
US20090222615A1 (en) | Information Processing Apparatus and Nonvolatile Semiconductor Memory Drive | |
US20160011810A1 (en) | Solid-state memory device with plurality of memory devices |