Data storage system and method of operation
Patent Information
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- SAFRAN DATA SYSTEMS GMBH
- Filing Date
- 2023-08-14
- Publication Date
- 2026-06-24
AI Technical Summary
Existing data storage systems with multiple memory devices require all devices to be continuously powered up to achieve high write speeds, leading to significant power and cooling challenges, especially in applications like aircraft flight test data recording.
A method and system where the data file is divided into segments and only the required number of memory devices, selected based on availability and performance criteria, are powered on to write the data segments, while the rest are powered down.
This approach reduces power consumption and cooling requirements by only activating the necessary memory devices, thereby making high-speed data storage more feasible in power-constrained environments.
Smart Images

Figure EP2023072389_20022025_PF_FP_ABST
Abstract
Description
[0001] Data Storage System and Method of Operation
[0002] Technical Field
[0003] The present invention relates to a data storage device having a plurality of memory devices and its mode of operation.
[0004] Background
[0005] Data generation and the storage of such data is almost ubiquitous. In some applications it is a requirement to be able to write large amounts of data to a data store, and for the data store to have a large storage capacity. The capture and storage of vehicle test is one such application. Present solutions include forming an array of individual memory devices having high write speeds and storage capacity, such as SSDs (Solid State Devices), and writing data to memory devices in parallel. Typically, the data to be written is divided evenly across all the individual memory devices in the array, regardless of the overall size of the data to be stored. Consequently, every memory device forming the array is maintained in powered up ready state, thereby imposing a relatively large power, and in particular cooling, requirement. In some applications, such as aircraft flight test data recording, it can be problematic to meet the power and cooling requirements of such data storage arrays.
[0006] Summary
[0007] According to a first aspect of the present invention there is provided a method of operating a plurality of memory devices, the method comprising: receive a request to write a data file to the plurality of memory devices at a minimum data rate; determine the number of the memory devices required to write the data file at the minimum data rate based on the maximum data rate of each memory device; divide the data file into a number of data segments, the number of date segments being equal to the number of required memory devices; for each of the plurality of memory devices apply a number of selection criteria and if all of the selection criteria are met for a given memory device then add the memory device to a subset of the memory devices, wherein the selection criteria comprises: determine if there is sufficient free data storage to store one of the data segments; and determine if the temperature of the memory device is less than a predetermined threshold temperature; write a different one of the data segments to a respective different memory device in the subset of memory devices; and power down the memory devices not within the subset.
[0008] The selection criteria may further comprise determining if a utilization value is less than a threshold value. The utilization value may comprise any one of total amount of data written, and number of write operations performed.
[0009] The data segments may be assigned a filename, whereby the filename of each data segment identifies the original data file from which the data segment was divided from and the location of the segment within the data file.
[0010] According to another aspect of the present invention there is provided a data storage system comprising a plurality of memory devices and a control unit in communication with each of the memory devices, the control unit being configured to: receive a request to write a data file to the plurality of memory devices at a minimum data rate; determine the number of the memory devices required to write the data file at the minimum data rate based on the maximum data rate of each memory device; divide the data file into a number of data segments, the number of date segments being equal to the number of required memory devices; for each of the plurality of memory devices apply a number of selection criteria and if all of the selection criteria are met for a given memory device then add the memory device to a subset of the memory devices, wherein the selection criteria comprise: determine if there is sufficient free data storage to store one of the data segments; and determine if the temperature of the memory device is less than a predetermined threshold temperature; write a different one of the data segments to a respective different memory device in the subset of memory devices; and power down the memory devices not within the subset.
[0011] Brief Description of the Figures These and other aspects of the invention will now be described, by way of non-limiting example only, with reference to the accompanying figures, of which:
[0012] Figure 1 schematically illustrates a basic RAID 0 memory arrangement;
[0013] Figure 2 schematically illustrates an alternative configuration for a data storage system; and
[0014] Figure 3 schematically illustrates a method of operation of the data storage system shown in Figure 2.
[0015] Detailed Description
[0016] To provide a solution to the requirement for storing large volumes of data and being able to write the data to the storage at high speeds, it is known to combine multiple memory devices, such as general purpose hard drives, to form a 'redundant array of independent disks', RAID. To achieve the desired write speeds, solid-state disks, SSDs, are typically used. The multiple disks may be combined and used in different ways, referred to as RAID levels. Figure 1 schematically illustrates two disks configured to form a RAID 0 storage array. The array comprises two SSDs, Disk 0 and Disk 1. Data to be stored is written evenly across both disks in 'stripes'. In figure 1 A1 :A2 is a first stripe, A3:A4 is a second stripe and so on. The size of a stripe is defined during the creation of the RAID array, and the data is split into data blocks with multiple blocks being written to each stripe. When writing data to the array, the disks are written to in parallel, so a RAID 0 array with N disks appears as a single large disk with a data rate N times higher than the single disk rate.
[0017] In a conventional RAID 0 array every individual disk is continuously available, as the data is written sequentially to each available stripe in turn until all the data has been stored. Consequently, each disk is continuously powered up and therefore generally requires cooling. In use cases where power and / or cooling is limited, having all the disks continuously powered on can be difficult to achieve.
[0018] Figure 2 schematically illustrates an alternative configuration for a data storage system including an array of memory devices. The data storage system 2 includes a plurality of memory devices 4, such as SSDs. Each of the memory devices 4 is connected to the output of a respective device data buffer 6, which may typically be First-In-First-Out, FIFO, buffers. The input of each device data buffer 6 is connected in a selectable manner to the output of a data write buffer 8, which also may be a FIFO buffer. In some implementations the device data buffers 6 and data write buffer 8 may integrated in a single unit. The solid lines in Figure 2 represent data connections. The data storage system 2 also includes a control unit 10 that is arranged to receive various information signals from the rest of the system and to provide appropriate control signals to govern the operation of the system as will be explained in more detail below. The control unit 10 is configured to perform various functions. In Figure 2 separate functional modules are represented, however it will be understood that this is simply to aid the reader in understanding the operation of the storage system and that the various modules may be implemented either as separate hardware modules or may be implemented as software by one or more processors of the control unit. The control unit 10 includes a processor 12 that is configured to provide one or more control signals to the data write buffer 8 and / or to each of the device data buffers 6. A memory free space module 14 provides an input to the processor that provides information on the free space available on each of the memory devices 4. Similarly, a device temperature module 16 provides an input to the processor that provides information on the temperature of each memory device. A device utilisation module 18 provides information to the processor concerning the usage of each memory device, such as the number of write operations performed by a device, the total amount of data written to the device, and so on. A desired bandwidth module 20 also provides an input to the processor concerning the desired write speed, e.g. bitrate, for a data item received by the data write buffer 8. Based on the various inputs provided to the processor 12, the control signals provided by the processor selects one or more of the memory devices 4 to be used for any given write operation, as will be explained below.
[0019] Figure 3 schematically illustrates a method of operation of the data storage system shown in Figure 2 implemented by the processor 12 of the control unit 10. The illustrated method of operation is performed to write data to the data storage system. The method is initiated by the receipt at the control unit 10 of a request to write a data file to the plurality of memory devices 4, the request being received by the bandwidth module 20 and including an indication of the desired write speed. At a first step 22 the number of memory devices required to write the received data file at the desired write speed is determined. This may be achieved by dividing the desired write speed, for example expressed as a bit rate, by the maximum write speed of the memory devices. For example, if the desired write speed is 4Gbs and all the memory devices 4 have a maximum write speed of 1 Gbs, then 4 memory devices will be required. If the write speed of the separate memory devices 4 are not all the same (which is preferable), then the maximum write speed of the slowest memory device 4 may be used.
[0020] Having determined the required number of memory devices, a number of parameters are checked for each of the memory devices in turn. At step 24 a determination is made (by the memory free space module 14) as to whether or not a memory device 4 has sufficient free space for one of the data segments to be stored. At step 26 a further determination is made (by the device temperature module 16) as to whether or not the temperature of the memory device is below a threshold temperature. The temperature determination is made in an effort to ensure that the write speed of the memory device is not reduced from it's theoretical maximum due to high device temperature, and also in an effort to minimise the cooling requirement for the data storage system. It will be appreciated that the order in which the free space and temperature determination is carried out is not important and may differ from that illustrated in Figure 3.
[0021] A further optional determination step may also be carried out. At step 28 a determination may be made (by the device usage module 18) of the device utilisation, i.e. the amount of usage already made of the memory device in question. His may be by determining whether or not the usage is below a given threshold.
[0022] If any one of the determination steps results in a negative outcome then no further action is taken in respect of the current memory device and the determination steps are repeated for the next memory device.
[0023] If the outcomes from each of the determination steps for a given memory device are all positive then the memory device is added to a subset, or pool, of the memory devices (step 30). At step 32 a check is made to determine if the number of memory devices in the pool equals the required number. If not, then the determination steps are repeated for the next memory device. At step 34, if the pool contains the required number of memory devices, then those memory devices in the pool are powered on (or maintained in a powered on state), whilst the remaining memory devices are powered off (or maintained in a powered off state). The data file to be written is divided into the same number of data segments as the number of memory devices in the pool (step 36) and a data segment is written to a respective one of the memory devices (by the data segments being written into the respective device data buffers 6 in response to appropriate control signals provided by the control unit 10) at step 38.
[0024] When dividing the data file into separate segments (performed by the processor of the control unit), each data segment is assigned a filename that serves to identify the segment as belonging to a particular data file and to also specify the location of the data segment within the original data file. Consequently, when it is desired to read data from the memory devices it is possible to identify only the data segments for a specified data file and recombine the data segments to reconstruct the original data file. Equally, to download the entire data content of the data storage system at maximum speed (desirable in some applications) the array of memory devices may all be powered on and their entire contents downloaded to a separate computing device which then utilises the filenames of the individual data segments to recombine them into respective individual data files. By naming the data segments in this manner, it is not necessary to implement any additional file indexing system.
[0025] By providing a data storage system and method of operation in which only the required number of separate memory devices are powered on to write any given data file, it is possible to reduce the power consumption and cooling requirements of the system, relative to a convention RAID 0 system.
Claims
Claims1. A method of operating a plurality of memory devices, the method comprising: receive a request to write a data file to the plurality of memory devices at a minimum data rate; determine the number of the memory devices required to write the data file at the minimum data rate based on the maximum data rate of each memory device; divide the data file into a number of data segments, the number of date segments being equal to the number of required memory devices; for each of the plurality of memory devices apply a number of selection criteria and if all of the selection criteria are met for a given memory device then add the memory device to a subset of the memory devices, wherein the selection criteria comprise: determine if there is sufficient free data storage to store one of the data segments; and determine if the temperature of the memory device is less than a predetermined threshold temperature; write a different one of the data segments to a respective different memory device in the subset of memory devices; and power down the memory devices not within the subset.
2. The method of claim 1, wherein the selection criteria further comprises determining if a utilization value is less than a threshold value.
3. The method of claim 2, wherein the utilization value comprises any one of total amount of data written, and number of write operations performed.
4. The method of any preceding claim, wherein the data segments are assigned a filename, whereby the filename of each data segment identifies the original data file from which the data segment was divided from and the location of the segment within the data file.
5. A data storage system comprising a plurality of memory devices and a control unit in communication with each of the memory devices, the control unit being configured to: receive a request to write a data file to the plurality of memory devices at a minimum data rate; determine the number of the memory devices required to write the data file at the minimum data rate based on the maximum data rate of each memory device;divide the data file into a number of data segments, the number of date segments being equal to the number of required memory devices; for each of the plurality of memory devices apply a number of selection criteria and if all of the selection criteria are met for a given memory device then add the memory device to a subset of the memory devices, wherein the selection criteria comprise: determine if there is sufficient free data storage to store one of the data segments; and determine if the temperature of the memory device is less than a predetermined threshold temperature; write a different one of the data segments to a respective different memory device in the subset of memory devices; and power down the memory devices not within the subset.
6. The data storage system of claim 5, wherein the selection criteria further comprises determining if a utilization value is less than a threshold value.
7. The data storage system of claim 6, wherein the utilization value comprises any one of total amount of data written, and number of write operations performed.
8. The data storage system of any one of claims 5 to 7, wherein the control unit is further configured to assign a filename to each of the data segments, whereby the filename of each data segment identifies the original data file from which the data segment was divided from and the location of the segment within the data file.