The present disclosure relates to a system comprising data storage means, and a method for data storage means comprising a set of data storage sub-assemblies and being connectable to storage control means adapted to retrieve, for a plurality of simultaneous user applications, data stored in the data storage means.
In many data storage applications, a plurality of data retrieving tasks are undertaken simultaneously to retrieve data from data storage means. Often, these tasks are controlled by a processor or a memory controller serving a plurality of processors. The tasks can originate from one or more user applications.
Data streaming is one area where such data storage applications occur. Data streaming is conventionally performed on data with video, sound or multimedia content, and enables the playback of such data without the need to download the entire resource file in advance of playback. This means that such data has to be sent at a pace corresponding, at least on average, to the pace at which it is to be presented. In many streaming applications, users, e.g., video viewers, have display devices, e.g., television sets or personal computers, that are connectable, e.g., via an IP-network, to a server including data storage means in which media data is stored. In the case of videos, each user can request individually a streaming session, i.e., a video stored in the data storage means to be displayed, so that the video is displayed to the user immediately upon streaming from the server, i.e., without storage at the display device of the entire video.
Thus, there are in many cases, for example in data streaming, a plurality of simultaneous user applications, for example streaming sessions, and the data retrieved for each user application is in the form of a relatively large coherent set of data, herein referred to as a data composition, which can represent for example a multimedia sequence, e.g., a movie, a music file, an advertisement or a TV station transmission. Thereby, the data storage means might store a large amount of such data compositions, and the user applications can involve retrieving a large number of different data compositions simultaneously. A problem that has to be addressed in such cases is retrieving data with a sustained bandwidth in operations where many simultaneous user applications demand retrieval of separate individual data compositions, and also in operations where the retrieval of the same data composition is demanded by many simultaneous user applications.
One way of solving this problem is to use dynamic random access memory (DRAM) for the data storage means, as suggested in US2003/0095783A1. DRAM provides a very fast access of stored data. However, DRAM provides a relatively low storage capacity, and consumes high levels of power for its operations including cooling. It is also relatively expensive. The combination of low storage capacity and high power consumption necessitates for many applications large assemblies of DRAM units with elaborate cooling arrangements demanding very high levels of power.
It is also suggested in US2003/0095783A1 to use a solid state memory, such as flash memory, for storing data for video/audio streaming applications. However, due to flash memories providing a slow access of stored data, said problem of retrieving data with a sustained bandwidth remains to be solved.
It is an object of the invention to provide, in data storage applications involving, on one hand, data storage means storing a plurality of data compositions, and, on the other hand, a plurality of simultaneous user applications each involving retrieving a data composition from the data storage means, a sustained bandwidth during a variety of combinations of user applications.
It is also an object of the invention to provide, in data storage applications involving, on one hand, data storage means storing a plurality of data compositions, and, on the other hand, a plurality of simultaneous user applications each involving retrieving a data composition from the data storage means, a high storage capacity and a low power consumption.
These objects are reached with a method for data storage means comprising a set of data storage sub-assemblies and being connectable to storage control means adapted to retrieve, for a plurality of simultaneous user applications, data stored in the data storage means, the method comprising the steps of
It should be noted that, as exemplified below, the data storage sub-assemblies can be banks of dual inline memory modules, dual inline memory modules, individual flash memories, groups of dual inline memory modules, or any other suitable type of sub-assembly of the data storage means. It should also be noted that the set of data storage sub-assemblies can comprise all data storage sub-assemblies of the data storage means. Alternatively, the data storage means can comprise data storage sub-assemblies in addition to those included in the set of data storage sub-assemblies. Thus, the set of data storage sub-assemblies include at least some of the data storage sub-assemblies of the data storage means.
Preferably, the payload data subsets of a data composition are equal in size. Alternatively, the payload data subsets of a data composition can be of different sizes.
The invention provides for the payload data subsets being distributed, when stored, to all data storage sub-assemblies in the set of data storage sub-assemblies, and so that the payload data subsets are stored so that any pair of them, related to each other so that one follows immediately upon the other in the retrieving sequence, are stored in separate ones of the data storage sub-assemblies. Where the data composition represents media data, the payload data subsets will be distributed in a sequence representing a sequence of the presentation of the media data in a normal presentation mode. As exemplified below, there can be other presentation modes, providing other retrieving sequences, for example at trick play modes.
As a result of the invention, requests from the storage control means will be evenly distributed among all data storage sub-assemblies, regardless whether the operational situation of the data storage means is extreme to one end such that all simultaneous user application involve the retrieval of separate, individual data compositions, the operational situation of the data storage means is extreme to another end such that all simultaneous user application involve the retrieval of the same data composition, or the operational situation of the data storage means is a combination of such extremities. This will reduce risks of excessive data queuing and reduce latency considerably. As a result of the invention reducing latency, it is possible to use flash memories with sustained bandwidth, while enjoying the benefits of low power consumption and high storage capacity.
Preferably, further sequences following, in the retrieving sequence, said sequence of payload data subsets are stored in a cyclic manner so that the payload data subsets of each sequence are stored in separate ones of the data storage sub-assemblies in the set of data storage sub-assemblies. Thereby, the data compositions can be stored in a striping way so that sequences of payload data subsets are retrieved in a rotational manner in the data storage sub-assemblies.
Preferably, the data storage means comprise a plurality of dual inline memory modules, and the data storage sub-assemblies are provided as banks of the dual inline memory modules, the method further comprising sending requests to the banks of each dual inline memory module in an alternating, interleaving manner. As will be explained closer below, sending read requests in this alternating manner will allow full use of the capacity of a bus to which the banks of the dual inline memory module are connected.
The objects are also reached with a system comprising data storage means comprising a set of data storage sub-assemblies, the system further comprising storage control means connectable to the data storage means and adapted to retrieve, for a plurality of simultaneous user applications, data stored in the data storage means, the storage control means being adapted to receive a data composition and divide it into a plurality of payload data subsets before the data composition is stored in the data storage means, the storage control means being adapted to retrieve, for a user application, the payload data subsets in a predetermined retrieving sequence, the system being adapted to store the payload data subsets so that a number of payload data subsets, which number corresponds to the number of data storage sub-assemblies in the set of data storage sub-assemblies, and which payload data subsets follow sequentially one immediately upon the other in the retrieving sequence, are stored in separate ones of the data storage sub-assemblies in the set of data storage sub-assemblies. Preferably, the system is adapted to store in a cyclic manner further sequences following, in the retrieving sequence, said sequence of payload data subsets so that the payload data subsets of each sequence are stored in separate ones of the data storage sub-assemblies in the set of data storage sub-assemblies.
Preferably, the data storage means comprise a plurality of flash memories. This will provide low power consumption and high storage capacity, while, as mentioned above, providing a sustained bandwidth for access of the data storage means. As exemplified below, the data storage means can comprise a plurality of dual inline memory modules, and the data storage sub-assemblies are provided as banks of the dual inline memory modules, each bank comprising a plurality of the flash memories.
The data storage means can comprise a plurality of groups, each group comprising a plurality of dual inline memory modules. Thereby, the dual inline memory modules of each group are advantageously fully buffered.
Preferably, the data storage means of the system comprise a plurality of dual inline memory modules, the data storage sub-assemblies are provided as banks of the dual inline memory modules, and a local storage controller of each dual inline memory module is adapted to send requests to the banks of the respective dual inline memory module in an alternating, interleaving manner.
Below, embodiments of the invention will be described with reference to the drawings, in which
The streaming apparatus 1 also comprises data storage means FS for storing media data and control data as described closer below. The streaming apparatus 1 further comprises storage control means SU, CU, in turn comprising a global storage controller SC comprising retrieving means adapted to access the data storage means FS via a suitable bus (not shown). In this embodiment, the global storage controller SC is included in the streaming unit SU.
The data storage means FS comprises a plurality of DIMMs (Dual Inline Memory Modules) 100-172. The DIMMs 100-172 are arranged in a plurality of groups 10-17, in this example eight groups 10-17. In general, the DIMMs 100-172 could be arranged in any number of groups 10-17. Also, each group 10-17 could comprise any suitable number of DIMMs 100-172.
Reference is made to
As can be seen in
Reference is made to
The payload data subsets 200-295 are preferably of a predetermined size, as an example 16 kB. As illustrated in
It should be noted that there retrieving could be more than one retrieving sequence for a data composition 20. For example, in the case of data for an audio/visual presentation, e.g., a movie, there could be one retrieving sequence corresponding to a normal presentation mode, and one or more retrieving sequences corresponding to respective trick play modes, e.g., a fast forward mode or a reverse mode. Thereby the control data subsets can include information for linking the payload data subsets 200-295 in more than one alternative manner, as described in said patent application GB0700343.7. The control data sets can also be used for editing the data to be streamed as described in said patent application GB0700343.7.
As can be seen in
During the pre-processing, the control unit CU (
The storing strategy illustrated in
Each flash memory F0-F7 is arranged to retrieve a set of stored data from the storage element FE by a copying step and a reading step. In the copying step, the set of data is copied from the storage element FE to the buffer element BE. Thereupon, the reading step is performed, whereby the set of data is read by the local storage controller SCL from the buffer element BE. In this example, the copying step takes 100 ms and the reading step takes 200 ms, which is typical for a flash memory F0-F7 of a NAND-flash memory type. When a payload data subset 200 (
Reference is made to
Above, an embodiment of the invention has been described in a streaming apparatus. However, it should be noted that the invention is applicable to any type of system or apparatus, where data compositions stored in data means are to be retrieved according to a plurality of simultaneous user applications. For example, as an alternative the invention can be applied to a system in which the control unit CU is provided remote from the data storage means FS.
In the embodiment described above, the data storage sub-assemblies 1001-1722, among which the payload data subsets are distributed, are provided in the form of banks 1001-1722, two of which are arranged in each DIMM 100-172 and each comprising a subset of the flash memories F0-F7. Alternatively, the data storage sub-assemblies, among which the payload data subsets are distributed, could be provided in the form of DIMMs, groups of DIMMs, or as individual flash memories F0-F7.
Although the present invention has been described in connection with preferred embodiments thereof, it will be appreciated by those skilled in the art that additions, deletions, modifications, and substitutions not specifically described may be made without department from the spirit and scope of the invention as defined in the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
0850006-8 | Jan 2008 | SE | national |
This application claims priority under 35 U.S.C. §119(e) to U.S. Provisional Application No. 61/006,658 filed Jan. 25, 2008, and claims priority under 35 U.S.C. §119 and/or §365 to Swedish Patent Application No. 0850006-8 filed Jan. 17, 2008, the contents of each of these applications are incorporated by reference herein.
Number | Date | Country | |
---|---|---|---|
61006658 | Jan 2008 | US |