WO2007072287A2 - Method of controlling disk accesses between a hard-disk drive and a number of stream buffers - Google Patents
Method of controlling disk accesses between a hard-disk drive and a number of stream buffers Download PDFInfo
- Publication number
- WO2007072287A2 WO2007072287A2 PCT/IB2006/054728 IB2006054728W WO2007072287A2 WO 2007072287 A2 WO2007072287 A2 WO 2007072287A2 IB 2006054728 W IB2006054728 W IB 2006054728W WO 2007072287 A2 WO2007072287 A2 WO 2007072287A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- hard
- stream
- size
- buffer
- disk drive
- Prior art date
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 146
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000013500 data storage Methods 0.000 claims abstract description 8
- 238000009987 spinning Methods 0.000 claims description 6
- 238000012546 transfer Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 238000005265 energy consumption Methods 0.000 description 9
- 238000003860 storage Methods 0.000 description 7
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000007423 decrease Effects 0.000 description 4
- 238000009877 rendering Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
-
- 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/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B19/00—Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
- G11B19/02—Control of operating function, e.g. switching from recording to reproducing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23406—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/414—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
- H04N21/41407—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
- H04N21/42607—Internal components of the client ; Characteristics thereof for processing the incoming bitstream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
- H04N21/42661—Internal components of the client ; Characteristics thereof for reading from or writing on a magnetic storage medium, e.g. hard disk drive
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
-
- 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/16—Sound input; Sound output
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/1062—Data buffering arrangements, e.g. recording or playback buffers
- G11B2020/10675—Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control
- G11B2020/10722—Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control wherein the size of the buffer is variable, e.g. by adding additional memory cells for coping with input streams that have high bit rates
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/1062—Data buffering arrangements, e.g. recording or playback buffers
- G11B2020/10814—Data buffering arrangements, e.g. recording or playback buffers involving specific measures to prevent a buffer underrun
Definitions
- the invention relates to a method of controlling disk accesses between a hard- disk drive and a number of stream buffers, and to a controlling arrangement for controlling disk accesses between a hard-disk drive and a number of stream buffers.
- the invention also relates to a data storage system.
- Various elements of a portable storage device consume energy - among these are output rendering elements such as a display or headphones, hardware elements such as a CPU and other active and passive electrical components, and also the hard disk itself.
- output rendering elements such as a display or headphones
- hardware elements such as a CPU and other active and passive electrical components
- the hard disk itself In order to read content or data from a hard disk, the head of the hard disk reader must be positioned in the correct location in a procedure known as the "seek", and the rate of rotation or "spin" of the hard-disk must reach a certain velocity.
- the disk is only kept spinning as long as data is being read from or written to the disk, and is spun down in the intervening "standby" or “idle” states. Therefore, for every read or write access, the disk must first be spun up to achieve the necessary velocity, allowing data to be read from the hard disk, after which the disk can be spun down again.
- the amount of data that is read from the hard disk drive into a buffer at once influences the energy consumption of the hard-disk drive. This becomes even more considerable in the case of a hard-disk drive servicing multiple buffers, such as for a device which can be used by several users simultaneously to access or record audio-visual content.
- a minimum amount of data could be read into each buffer, one after the other.
- each buffer is re-filled completely before proceeding with the next buffer. The first extreme leads to a maximum number of disk seeks, thereby reducing the effective data rate of the hard-disk drive and therefore also leading to increased energy consumption.
- the buffer that is going to be served last must contain enough data above a certain level known as the "low- water mark" to avoid a buffer under-run before its next refill. This results in the disk having to spin-up earlier and more frequently, therefore leading to increased energy consumption.
- a more intelligent way of dealing with the manner in which buffers are refilled can reduce the number of times the hard disk must be spun up or down, and so reduce the energy consumption of the hard-disk drive.
- WO 2005/055226 Al suggests simply turning on or turning off banks of solid state buffer memory as required, for example DRAM memory banks, thus avoiding unnecessary energy expenditure by unused DRAM blocks.
- this approach avoids unnecessary filling of entire banks of DRAM memory, it does not address the issue of intelligently managing the buffer refill.
- WO 2004/061843 Al suggests ensuring that all scheduling buffers are always completely filled in an attempt to maximise the standby times of the hard disk.
- this approach fails to provide a truly efficient way of refilling multiple scheduling buffers, since energy is also expended by additional spin-up and spin-down requirements in keeping the buffers always topped up.
- the present invention provides a method of controlling read/write disk accesses between a hard-disk drive and a number of stream buffers, which method comprises dynamically adjusting the size of an access block for a corresponding stream buffer, allocated to an input/output stream, according to the size of that stream buffer.
- An input/output stream can be a stream of video, audio or other content for an active application, and is essentially a stream of data, encoded in an appropriate form for audio, video, etc., and transferred at a certain bit-rate between an active application and a storage medium, in this case a hard-disk drive.
- a stream buffer sometimes also referred to as a scheduling buffer, is used to temporarily collect or buffer the data between the stream and the hard-disk drive, so that the data rate of the input/output stream can be maintained at the desired rate, even though the stream buffer itself can be serviced by the hard-disk drive at a different bit-rate.
- a stream buffer has a certain size, depending on how much overall buffer capacity is available, and on the number of streams being actively serviced.
- Data is generally transferred in a block-wise manner between the hard-disk drive and a number of stream buffers, so that each of the streams is constantly being serviced.
- An access block is written to or read from each stream buffer in turn, and the process is repeated, for example in a round-robin manner.
- the core idea of this invention is the dynamic adjustment of the size of such an access block according to the size of the associated stream buffer.
- An obvious advantage of the method according to the invention is that, because the size of the access block of a stream buffer is adjusted to suit the size of the stream buffer, the stream buffers are constantly supplied with an optimum amount of data - neither too much nor too little - for the corresponding input/output streams, so that the number of disk access required to service the streams at a steady rate is kept to an efficient minimum, thereby minimizing the power consumption of the hard-disk drive. Therefore, a device utilising such a method of controlling disk accesses will consume less power, which is of particular advantage in the case of a device powered by, for example, a battery.
- a suitable controlling arrangement for controlling hard-disk access between a hard-disk drive and a number of stream buffers comprises a buffer allocation unit for allocating a number of stream buffers to a corresponding number of input/output streams, a buffer size determination unit for determining the size of a stream buffer, and an access block size adjustment unit for adjusting the size of the access block of a corresponding stream buffer according to the size of that stream buffer.
- a controlling arrangement for controlling hard-disk access is sometimes termed a "disk scheduler", since it is responsible for controlling accesses between a hard-disk drive and a buffer.
- An input/output stream can be added by, for example, pressing a "play” or “record” button on a device to play or record a video or a music file, and results in a new stream buffer being allocated.
- an input/output stream can be removed when an application is finished playing or recording, or when a user presses a "pause” or “stop” button, and results in the removal or de-allocation of its stream buffer.
- the buffer allocation unit can re-allocate the current number of stream buffers to the corresponding number of currently active streams.
- the size of the access block for each stream buffer is then adjusted again according to the size of the stream buffer, in a manner which will be explained in more detail below.
- Data transfer between a hard-disk drive and an input/output stream with a high bandwidth or bit-rate, such as a video stream requires that data be read from or written to the stream buffer of that stream at a sufficiently fast rate.
- bit-rate of the stream are satisfied by reading or writing data blocks of sufficient size from or to the stream buffer.
- the size of the access block is adjusted according to the bit-rate of the corresponding input/output stream, so that the size of the access block for an input/output stream with a high bit-rate is larger than an access block for an input/output stream with a comparatively low bit-rate. It follows that a stream buffer for a stream with low bit-rate does not need to be as large as the stream buffer for a stream with a high bit-rate, so that, in a further preferred embodiment of the invention, the size of the stream buffer is adjusted according to the bit-rate of the corresponding input/output stream. In this case, the size of an access block adjusted according to the stream buffer size is indirectly also adjusted according to the bit-rate of the corresponding stream.
- the buffer space allocated to each stream buffer can be determined simply by distributing the available buffer capacity more or less equally over the streams.
- the available buffer capacity can be distributed by allocating a greater portion of the buffer capacity to the stream buffers for the high bit-rate streams, and a lesser portion to the stream buffers of the less-demanding streams.
- the number of streams serviced by the hard-disk drive also influences the power consumption of the hard-disk drive.
- the size of the access block for a stream buffer is adjusted to take into account the total number of input/output streams being serviced.
- the size of the access block for a stream buffer can be determined by a formula taking into account these variables, which formula will be described in more detail below.
- the size of the access block for a stream buffer is adjusted according to system parameters such as the energy expended by the disk when spinning up or down; the time taken by the hard-disk drive to spin up or down; the access time of the hard-disk drive for accessing data on the drive; the effective data transfer rate of the hard-disk; the energy expended during a read or write access; the standby power consumed by the hard-disk drive when in standby mode between accesses, or any other parameter, variable or constant, which exerts an influence on the disk access rate or power consumption of the hard-disk drive.
- the term "energy” can mean, for example, a nominal or average energy expenditure.
- disk accesses and hard-disk power consumption are most advantageously kept to a minimum by simply defining the size of the access block for a stream buffer to be half the size of that stream buffer, since calculations and tests have shown that the optimum size of an access block, determined using the formula which will be described in more detail below, closely approaches half the size of the stream buffer of that access block.
- the buffer space is dynamically allocated to the stream buffers of each of the currently active input/output streams, and the size of each access block is adjusted according to the size of its corresponding stream buffer.
- a data storage system for storing and accessing data by means of a number of input/output streams, comprises a hard-disk drive and a buffer arrangement with buffer capacity for distribution among the input/output streams.
- the data storage system also comprises a controlling arrangement as described above for controlling hard disk accesses when writing data or content from an input stream to the hard disk, or retrieving data to an output stream from the hard disk.
- An example of such a data storage system might be a home entertainment system for storing large quantities of audio and video content - music, videos, photos, etc.
- the steps of the method for controlling disk accesses might be realised in the form of a suitable computer program product for running at some level in an operating system of a device with a hard-disk drive.
- a computer program product can comprise one or more software blocks which can be loaded into the memory of a programmable device such as a central processing unit or processor.
- Fig. Ia is a schematic representation of a hard-disk drive and a number of stream buffers.
- Fig. Ib is a schematic representation of a series of access blocks for reading from or writing to a hard-disk drive.
- Fig. 2 shows a graph representing a buffer refill procedure and a corresponding graph showing power consumption for the various stages in the buffer refill procedure.
- Fig. 3 shows a storage device with a controlling arrangement according to an embodiment of the invention.
- Fig. Ia shows a hard-disk drive 2, and a number of stream buffers bi, b 2 , ..., bk, each of which services an input/output stream S 1 , S 2 , ..., Sk.
- the input/output streams S 1 , S 2 , ..., Sk in turn, supply data between the stream buffers bi, b 2 , ..., bk and a number of applications A 1 , A 2 , ..., Ak.
- An application A 1 , A 2 , ..., Ak can be, for example, a video rendering application for outputting video data on a display, a music rendering application for outputting music on loudspeakers or headphones, a recording application for recording content to the hard-disk drive 2, or any other kind of application which needs to retrieve content from or store content to the hard-disk drive 2.
- a 1 , A 2 , ..., Ak might have different bandwidths, i.e. they might read or write data at different bit-rates.
- a video application will stream data in the range of megabits per second, whereas an MP3 application will only require a bit-rate of kilobits per second.
- the size of the stream buffer bi, b 2 , ..., bk for an application A 1 , A 2 , ... , Ak is chosen to accommodate the required bandwidth, as illustrated schematically in the diagram.
- the stream buffers bi, b 2 , ..., bk are for example filled or emptied in a round- robin fashion by writing or reading access blocks B 1 , B 2 , ..., B k of an optimum size for each stream S 1 , S 2 , ..., Sk, one after the other, as shown in Fig. Ib.
- access block Bi is being written from the stream buffer bi of the input stream Si to the hard-disk drive
- access blocks B 2 , ..., B k are being read from the hard-disk drive 2 to the corresponding stream buffers b 2 , bk for the output streams S 2 , Sk, respectively, while taking care that the refill level of the input stream buffer bi does not exceed a high-water mark H as indicated in the diagram, and that the refill levels in the output buffers b 2 , bk do not fall below the low-water marks L 2 , Lk.
- the number of disk access are optimised, so that the power consumption of the hard- disk drive 2 is kept to a minimum.
- the hard-disk drive 2 consumes different levels of energy for the different stages of every disk access, as shown in Fig. 2.
- the upper graph shows the rate of buffer filling in the case of a buffer which is being filled with data from the hard-disk drive for outputting to an output stream (of course, the same applies for a data being written from a buffer to the hard-disk drive).
- the level of the buffer content shows a steep increase, while during a standby time t s b of the hard-disk, while the buffer is being emptied at the bit-rate of its stream, the level of buffer content decreases steadily.
- Energy consumption is shown for the different stages of the buffer fill procedure - spin-up energy E su is expended while spinning up the hard-disk during time t su , read power P r is expended while reading the data from the hard-disk during time t r , and spin- down energy E sd is expended while spinning down the hard-disk during time t sd .
- the hard-disk drive still consumes stand-by energy, given
- the read time t r of an access block of B bytes from the disk is equal to B/r m , where r m is the sequential data rate of the disk. It is assumed that each stream is recorded on the disk contiguously. The effective data rate of the disk will actually be smaller than the sequential data rate since a seek has to be performed to access each block B. The effective disk data rate r ⁇ is therefore equal to
- t a is the access time of the disk, and is equal to the seek time plus the rotational latency.
- the buffer fill rate or empty rate per stream r ⁇ / is equal to rd ⁇ sk/k, where k is the number of stream buffers to be serviced.
- the low- water mark L is equal to the maximum stream bit rate r max times the sum of the operating system time t os spin-up time t su and access time t ta ,- It is assumed that all streams are Constant Bit Rate (CBR) streams with identical bit rates, so that r max equals the stream bit rate r t .
- CBR Constant Bit Rate
- the buffer which will be serviced last must contain enough data to survive k times the turn-around time t a +t r . Therefore, the low-water mark L can be expressed as:
- each buffer contains ⁇ r 1 amount of data.
- the buffer time tb being the time elapsed from the end of a refill until the start of the next refill, is given by
- the refill interval for a buffer b l is the sum of the refill time t r and the buffer time tb, and the average power required by the hard-disk drive is therefore equal to its energy consumption during a refill interval divided by the refill interval, and can be expressed as:
- Increasing the access block size B has two different results: it increases the effective data rate rdhk of the disk and the buffer refill turn-around time t ta .
- a higher effective data disk rate rdisk reduces the refill times t r of the buffers, thereby also reducing the energy consumption during refilling of the buffers, while an increased buffer refill turnaround time tta increases the low-water mark L, leading to a shorter buffer time %.
- a shorter buffer time h results in more frequent disk spin-ups and a relatively small increase in average power consumption P avg , so that the effect of the increased disk data rate r ⁇ sk on the average power consumption P avg is dominant.
- the optimal access block size B opt is the block size where the average power consumption is minimal for read/write access between a stream buffer and the hard-disk drive.
- the optimal access block size for different numbers of streams with different stream bit rates is given in Table 1. As can be seen from the table, the optimal access block size decreases with increasing number of streams and increasing stream bit rate. Note that the stream buffer size decreases with increasing number of streams, since the total buffer memory remains constant.
- Table 1 Optimal access block size examples The average power consumption for different access block sizes, various numbers of streams and different stream bit rates is given in Table 2. As can be seen from the table, the power consumption increases with increasing number of streams and with increasing bit rate. For access block sizes larger than bJ2, the power consumption hardly increases. However, the decrease in power consumption for B > bJ2 when compared to B ⁇ IMByte is significant:
- the table illustrates that minimizing disk seeks maximizes the effective data rate of the disk, thereby reducing the energy consumption of the disk, and that the more streams there are being serviced, the more important is such an optimisation from the point of view of reducing energy consumption. It can be seen from the table that the optimum access block size B opt closely approaches half the size of the stream buffer bi, so that B opt can easily be approximated by bjl. Therefore, in a particularly preferred, solution, this simple approximation is applied in order to dynamically adjust the access block size for a stream buffer to the size of that stream buffer.
- a controlling arrangement 1 for performing the method according to the invention, is implemented in a device 30 such as a portable storage device 30 for serving multiple streams S 1 , S 2 , ..., Sk
- the relevant blocks in such a device 30 are shown in Fig. 3.
- the diagram shows a portable storage device 30 with a hard-disk drive 2 on which content and data can be stored by and for a number of applications A 1 , A 2 , ..., Ak.
- An input/output application A 1 , A 2 , ..., Ak can be any application for reading or writing a data stream S 1 , S 2 , ..., Sk to or from the hard-disk drive 2, such as applications for retrieving a video stream for viewing on a display 39, retrieving music for listening to on headphones 38, recording voice or music by means of a microphone 37, etc.
- an input/output application A 1 , A 2 , ..., A k is started, for example when a user presses a "play" button on the device, contact is initiated by an application programming interface 31 with the controlling arrangement 1 via a configuration interface 32 and a file system driver 33 including a buffer arrangement.
- the application programming interface 31 requests stream buffers bi, b 2 , ..., bk for the corresponding applications A 1 , A 2 , ..., Ak.
- a buffer allocation unit 11 allocates the necessary number of stream buffers bi, b 2 , ..., bk based on the overall available buffer capacity, and a buffer size determination unit 12 determines the size of each of the stream buffers bi , b 2 , ...
- An access block size adjustment unit 13 determines the size of the access block for each of the stream buffers bi, b 2 , ..., bk.
- the file system driver 33 assigns a buffer bi, b 2 , ..., bk of the appropriate size in its page cache to the requesting application A 1 , A 2 , ..., Ak.
- the configuration interface 32 tracks the read/write progress of an application A 1 , A 2 , ..., Ak so that the buffers A 1 , A 2 , ..., Ak in a page cache of the file system 33 can be refilled or emptied at the optimal rate.
- a program such as a user space daemon 34 for tracking system resources assists the controlling arrangement 1 by keeping track of the available system resources, and an elevator 35 orders the input/output requests to optimise disk seeks and I/O performance.
- the application programming interface 31, configuration interface 32, file system driver 33, user space daemon 34, and elevator 35 described above are software blocks well-known to a person skilled in the art, easily available, and widely used in many similar applications. For example, such blocks are used in Linux systems and are freely available.
- a “unit” or “module” can comprises a number of units or modules, unless otherwise stated.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Information Transfer Systems (AREA)
Abstract
The invention describes a method of controlling hard-disk accesses between a hard-disk drive (2) and a number of stream buffers (b1 , b2, ... , bk), which method comprises dynamically adjusting the size of an access block (B1, B2, ..., Bk) for a corresponding stream buffer (b1, b2, ..., bk), allocated to an input/output stream (S1, S2, ..., Sk), according to the size of that stream buffer (b1, b2, ..., bk). The invention also describes a controlling arrangement (1) for controlling hard-disk access between a hard-disk drive (2) and a number of stream buffers (b1, b2, ..., bk), and to a data storage system (30) comprising such a controlling arrangement (1).
Description
Method of controlling disk accesses between a hard-disk drive and a number of stream buffers
FIELD OF THE INVENTION
The invention relates to a method of controlling disk accesses between a hard- disk drive and a number of stream buffers, and to a controlling arrangement for controlling disk accesses between a hard-disk drive and a number of stream buffers. The invention also relates to a data storage system.
BACKGROUND OF THE INVENTION
With developments in technology in recent years, and the steadily increasing supply of audio and video content easily available to any user, the use of mass storage devices for convenient storing and accessing of such content is becoming more and more widespread. More "primitive" portable devices such as the Walkman or Discman, which can be used for only one type of content, such as audio, and of relatively limited capacity, for example one hour of music, are being replaced by more complex devices with a far greater capacity for storing content of more than one type, and for outputting that content to more than one user, or recording content from more than one input. In such a device, which can even be portable, content is typically stored on a hard-disk drive, since such drives are capable of storing data in the range of many gigabytes or even terabytes, thus offering a user many hours of audio/video content from which to choose.
However, in the case of a portable storage device, power consumption is almost always an issue, since such devices are often powered by battery, and the size of the battery or batteries is necessarily limited in order to keep the overall size and weight of the portable device to an attractive minimum. Various elements of a portable storage device consume energy - among these are output rendering elements such as a display or headphones, hardware elements such as a CPU and other active and passive electrical components, and also the hard disk itself. In order to read content or data from a hard disk, the head of the hard disk reader must be positioned in the correct location in a procedure known as the "seek", and the rate of rotation or "spin" of the hard-disk must reach a certain velocity. Usually, the disk is only kept spinning as long as data is being read from or written to the disk, and is spun down in the intervening "standby" or "idle" states. Therefore, for
every read or write access, the disk must first be spun up to achieve the necessary velocity, allowing data to be read from the hard disk, after which the disk can be spun down again.
The amount of data that is read from the hard disk drive into a buffer at once influences the energy consumption of the hard-disk drive. This becomes even more considerable in the case of a hard-disk drive servicing multiple buffers, such as for a device which can be used by several users simultaneously to access or record audio-visual content. In an example of one extreme, a minimum amount of data could be read into each buffer, one after the other. In another extreme, each buffer is re-filled completely before proceeding with the next buffer. The first extreme leads to a maximum number of disk seeks, thereby reducing the effective data rate of the hard-disk drive and therefore also leading to increased energy consumption. In the other extreme, the buffer that is going to be served last must contain enough data above a certain level known as the "low- water mark" to avoid a buffer under-run before its next refill. This results in the disk having to spin-up earlier and more frequently, therefore leading to increased energy consumption. A more intelligent way of dealing with the manner in which buffers are refilled can reduce the number of times the hard disk must be spun up or down, and so reduce the energy consumption of the hard-disk drive.
Some attempts have been made to address this task. For example, WO 2005/055226 Al suggests simply turning on or turning off banks of solid state buffer memory as required, for example DRAM memory banks, thus avoiding unnecessary energy expenditure by unused DRAM blocks. However, while this approach avoids unnecessary filling of entire banks of DRAM memory, it does not address the issue of intelligently managing the buffer refill. In another approach, WO 2004/061843 Al suggests ensuring that all scheduling buffers are always completely filled in an attempt to maximise the standby times of the hard disk. However, this approach fails to provide a truly efficient way of refilling multiple scheduling buffers, since energy is also expended by additional spin-up and spin-down requirements in keeping the buffers always topped up.
Therefore, it is an object of the invention to provide a method of reducing power consumption of a hard-disk drive by intelligent buffer refill strategy. To this end, the present invention provides a method of controlling read/write disk accesses between a hard-disk drive and a number of stream buffers, which method comprises dynamically adjusting the size of an access block for a corresponding stream buffer, allocated to an input/output stream, according to the size of that stream buffer.
An input/output stream can be a stream of video, audio or other content for an active application, and is essentially a stream of data, encoded in an appropriate form for audio, video, etc., and transferred at a certain bit-rate between an active application and a storage medium, in this case a hard-disk drive. In such a transfer, data is read from or written to the hard-disk drive in what is referred to as a "disk access". A stream buffer, sometimes also referred to as a scheduling buffer, is used to temporarily collect or buffer the data between the stream and the hard-disk drive, so that the data rate of the input/output stream can be maintained at the desired rate, even though the stream buffer itself can be serviced by the hard-disk drive at a different bit-rate. Such a stream buffer has a certain size, depending on how much overall buffer capacity is available, and on the number of streams being actively serviced. Data is generally transferred in a block-wise manner between the hard-disk drive and a number of stream buffers, so that each of the streams is constantly being serviced. An access block is written to or read from each stream buffer in turn, and the process is repeated, for example in a round-robin manner. The core idea of this invention is the dynamic adjustment of the size of such an access block according to the size of the associated stream buffer.
An obvious advantage of the method according to the invention is that, because the size of the access block of a stream buffer is adjusted to suit the size of the stream buffer, the stream buffers are constantly supplied with an optimum amount of data - neither too much nor too little - for the corresponding input/output streams, so that the number of disk access required to service the streams at a steady rate is kept to an efficient minimum, thereby minimizing the power consumption of the hard-disk drive. Therefore, a device utilising such a method of controlling disk accesses will consume less power, which is of particular advantage in the case of a device powered by, for example, a battery. A suitable controlling arrangement for controlling hard-disk access between a hard-disk drive and a number of stream buffers comprises a buffer allocation unit for allocating a number of stream buffers to a corresponding number of input/output streams, a buffer size determination unit for determining the size of a stream buffer, and an access block size adjustment unit for adjusting the size of the access block of a corresponding stream buffer according to the size of that stream buffer. A controlling arrangement for controlling hard-disk access is sometimes termed a "disk scheduler", since it is responsible for controlling accesses between a hard-disk drive and a buffer.
The dependent claims and the subsequent description disclose particularly advantageous embodiments and features of the invention.
An input/output stream can be added by, for example, pressing a "play" or "record" button on a device to play or record a video or a music file, and results in a new stream buffer being allocated. Equally, an input/output stream can be removed when an application is finished playing or recording, or when a user presses a "pause" or "stop" button, and results in the removal or de-allocation of its stream buffer. In the event of an input/output stream being added or removed, the buffer allocation unit can re-allocate the current number of stream buffers to the corresponding number of currently active streams. The size of the access block for each stream buffer is then adjusted again according to the size of the stream buffer, in a manner which will be explained in more detail below. Data transfer between a hard-disk drive and an input/output stream with a high bandwidth or bit-rate, such as a video stream, requires that data be read from or written to the stream buffer of that stream at a sufficiently fast rate. Generally, the requirements dictated by the bit-rate of the stream are satisfied by reading or writing data blocks of sufficient size from or to the stream buffer. Therefore, in a preferred embodiment of the invention, the size of the access block is adjusted according to the bit-rate of the corresponding input/output stream, so that the size of the access block for an input/output stream with a high bit-rate is larger than an access block for an input/output stream with a comparatively low bit-rate. It follows that a stream buffer for a stream with low bit-rate does not need to be as large as the stream buffer for a stream with a high bit-rate, so that, in a further preferred embodiment of the invention, the size of the stream buffer is adjusted according to the bit-rate of the corresponding input/output stream. In this case, the size of an access block adjusted according to the stream buffer size is indirectly also adjusted according to the bit-rate of the corresponding stream.
For a situation in which the bit-rates of the input/output streams are equal, for example if the input/output streams all service essentially the same kinds of application, the buffer space allocated to each stream buffer can be determined simply by distributing the available buffer capacity more or less equally over the streams. However, in a situation where some of the input/output streams require high bandwidth, the available buffer capacity can be distributed by allocating a greater portion of the buffer capacity to the stream buffers for the high bit-rate streams, and a lesser portion to the stream buffers of the less-demanding streams. Evidently, the number of streams serviced by the hard-disk drive also influences the power consumption of the hard-disk drive. Therefore, in a preferred embodiment of the invention, the size of the access block for a stream buffer is adjusted to take into account the total number of input/output streams being serviced. The size of the access block for a stream
buffer can be determined by a formula taking into account these variables, which formula will be described in more detail below.
Other system parameters which may influence the power expended by the hard-disk drive can also be taken into account, so that, in a further preferred embodiment of the invention, the size of the access block for a stream buffer is adjusted according to system parameters such as the energy expended by the disk when spinning up or down; the time taken by the hard-disk drive to spin up or down; the access time of the hard-disk drive for accessing data on the drive; the effective data transfer rate of the hard-disk; the energy expended during a read or write access; the standby power consumed by the hard-disk drive when in standby mode between accesses, or any other parameter, variable or constant, which exerts an influence on the disk access rate or power consumption of the hard-disk drive. Here, the term "energy" can mean, for example, a nominal or average energy expenditure.
However, in a particularly preferred embodiment of the invention, disk accesses and hard-disk power consumption are most advantageously kept to a minimum by simply defining the size of the access block for a stream buffer to be half the size of that stream buffer, since calculations and tests have shown that the optimum size of an access block, determined using the formula which will be described in more detail below, closely approaches half the size of the stream buffer of that access block. Whenever a stream is removed, or a new stream added, the buffer space is dynamically allocated to the stream buffers of each of the currently active input/output streams, and the size of each access block is adjusted according to the size of its corresponding stream buffer. In this way, the method according to the invention provides an extremely simple and elegant way of optimising disk accesses and thereby minimizing the power consumption of a hard-disk drive while serving multiple input/output streams. A data storage system according to the invention, for storing and accessing data by means of a number of input/output streams, comprises a hard-disk drive and a buffer arrangement with buffer capacity for distribution among the input/output streams. The data storage system also comprises a controlling arrangement as described above for controlling hard disk accesses when writing data or content from an input stream to the hard disk, or retrieving data to an output stream from the hard disk. An example of such a data storage system might be a home entertainment system for storing large quantities of audio and video content - music, videos, photos, etc. - simultaneously accessible by a number of users, for example users in different rooms of a house. Another example might be an automotive entertainment system, allowing the passengers in an automobile or coach to view different
videos on screens, or listen over headphones to different music tracks from a collection of music, or to different radio broadcasts. Such a data storage system could also be used by, for example, tourist guides to give tourists of different nationalities a guide commentary simultaneously in multiple languages. Generally, the steps of the method for controlling disk accesses might be realised in the form of a suitable computer program product for running at some level in an operating system of a device with a hard-disk drive. Such a computer program product can comprise one or more software blocks which can be loaded into the memory of a programmable device such as a central processing unit or processor.
OBJECT AND SUMMARY OF THE INVENTION
Other objects and features of the present invention will become apparent from the following detailed descriptions considered in conjunction with the accompanying drawing. It is to be understood, however, that the drawings are designed solely for the purposes of illustration and not as a definition of the limits of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. Ia is a schematic representation of a hard-disk drive and a number of stream buffers. Fig. Ib is a schematic representation of a series of access blocks for reading from or writing to a hard-disk drive.
Fig. 2 shows a graph representing a buffer refill procedure and a corresponding graph showing power consumption for the various stages in the buffer refill procedure. Fig. 3 shows a storage device with a controlling arrangement according to an embodiment of the invention.
DESCRIPTION OF EMBODIMENTS
In the diagrams, like numbers refer to like objects throughout. Fig. Ia shows a hard-disk drive 2, and a number of stream buffers bi, b2, ..., bk, each of which services an input/output stream S1, S2, ..., Sk. The input/output streams S1, S2, ..., Sk, in turn, supply data between the stream buffers bi, b2, ..., bk and a number of applications A1, A2, ..., Ak. An application A1, A2, ..., Ak can be, for example, a video rendering application for outputting video data on a display, a music rendering application for
outputting music on loudspeakers or headphones, a recording application for recording content to the hard-disk drive 2, or any other kind of application which needs to retrieve content from or store content to the hard-disk drive 2.
Different applications A1, A2, ..., Ak might have different bandwidths, i.e. they might read or write data at different bit-rates. Generally, a video application will stream data in the range of megabits per second, whereas an MP3 application will only require a bit-rate of kilobits per second. The size of the stream buffer bi, b2, ..., bk for an application A1, A2, ... , Ak is chosen to accommodate the required bandwidth, as illustrated schematically in the diagram. Using the method according to the invention, which will be explained in more detail below, the stream buffers bi, b2, ..., bk are for example filled or emptied in a round- robin fashion by writing or reading access blocks B1, B2, ..., Bk of an optimum size for each stream S1, S2, ..., Sk, one after the other, as shown in Fig. Ib. Here, access block Bi is being written from the stream buffer bi of the input stream Si to the hard-disk drive, whereas access blocks B2, ..., Bk are being read from the hard-disk drive 2 to the corresponding stream buffers b2, bk for the output streams S2, Sk, respectively, while taking care that the refill level of the input stream buffer bi does not exceed a high-water mark H as indicated in the diagram, and that the refill levels in the output buffers b2, bk do not fall below the low-water marks L2, Lk. By choosing the sizes of the access blocks B1, B2, ... , Bk to optimally suit the sizes of the stream buffers bi, b2, ..., bk and the bit -rates of the input/output streams Si, S2, ..., Sk, the number of disk access are optimised, so that the power consumption of the hard- disk drive 2 is kept to a minimum. The hard-disk drive 2 consumes different levels of energy for the different stages of every disk access, as shown in Fig. 2. In this diagram, the upper graph shows the rate of buffer filling in the case of a buffer which is being filled with data from the hard-disk drive for outputting to an output stream (of course, the same applies for a data being written from a buffer to the hard-disk drive). During the refill time tr, the level of the buffer content shows a steep increase, while during a standby time tsb of the hard-disk, while the buffer is being emptied at the bit-rate of its stream, the level of buffer content decreases steadily. Energy consumption is shown for the different stages of the buffer fill procedure - spin-up energy Esu is expended while spinning up the hard-disk during time tsu, read power Pr is expended while reading the data from the hard-disk during time tr, and spin- down energy Esd is expended while spinning down the hard-disk during time tsd. Between
disk accesses, for the duration tsb, the hard-disk drive still consumes stand-by energy, given
Some factors remain constant, for example factors dictated by the type of hard-disk drive such as the access time of the disk, the time taken by the drive to achieve the necessary rotational velocity, the effective data transfer rate of the hard-disk, energy expended by the disk when spinning up or down, etc. However, other factors are variable, such as the total number of stream buffers, the size of the stream buffers, and the access block size. It will be shown in the following that an optimum access block size, at which the power consumption of the hard-disk drive is kept to a minimum, can be calculated as a function of these variables (the calculation is performed on the basis of a read procedure, but applies just as well to a write procedure)
The read time tr of an access block of B bytes from the disk is equal to B/rm, where rm is the sequential data rate of the disk. It is assumed that each stream is recorded on the disk contiguously. The effective data rate of the disk will actually be smaller than the sequential data rate since a seek has to be performed to access each block B. The effective disk data rate r^ is therefore equal to
B rώsk ~ (1) tr. +t,.
where ta is the access time of the disk, and is equal to the seek time plus the rotational latency. The buffer fill rate or empty rate per stream r</ is equal to rdιsk/k, where k is the number of stream buffers to be serviced. Using equation (1), and substituting tr with B/rm results in
with k(ta+B/rm) being the buffer turn-around time tta:
The low- water mark L is equal to the maximum stream bit rate rmax times the sum of the operating system time tos spin-up time tsu and access time tta,- It is assumed that all
streams are Constant Bit Rate (CBR) streams with identical bit rates, so that rmax equals the stream bit rate rt. The buffer which will be serviced last must contain enough data to survive k times the turn-around time ta+tr. Therefore, the low-water mark L can be expressed as:
L = (tm+tsu+k(ta+B/rm))r, (4)
At the start of a refill interval, each buffer contains ^r1 amount of data. The remaining number of bytes bi - ^r1 is filled at a rate r</ - T1, so that the refill time tr for each buffer bi for i = \,...,k equals
rd ~r,
The buffer time tb, being the time elapsed from the end of a refill until the start of the next refill, is given by
*= L (6)
The refill interval for a buffer bl is the sum of the refill time tr and the buffer time tb, and the average power required by the hard-disk drive is therefore equal to its energy consumption during a refill interval divided by the refill interval, and can be expressed as:
p _Esu+Esd+Prtr + Psb(tb-tsu-tsd)
(V) t,.+t
By substituting tr and tb with equations (5) and (6), substituting tta with equation (3) and substituting r^ with equation (2), the average power Pavg can be expressed as follows:
p _[B/Kta + B/rJ-rJEsudri+PsM-k(ta+B/rm)ri)-tsudri)] + Pr[b1-k(ta+B/rm)ri]ri b,-k(ta+B/rm)r,
(8)
where the total spin-up and spin-down energy ESU(t expended by the hard-disk drive is given by Esud = Esu + Esd, stand-by power is given by Psb, and the total spin-up and spin-down time tsud is given by tsud = tsu + tsd.
Increasing the access block size B has two different results: it increases the effective data rate rdhk of the disk and the buffer refill turn-around time tta. A higher effective data disk rate rdisk reduces the refill times tr of the buffers, thereby also reducing the energy consumption during refilling of the buffers, while an increased buffer refill turnaround time tta increases the low-water mark L, leading to a shorter buffer time %. A shorter buffer time h, in turn, results in more frequent disk spin-ups and a relatively small increase in average power consumption Pavg, so that the effect of the increased disk data rate r^sk on the average power consumption Pavg is dominant.
The optimal access block size Bopt, therefore, is the block size where the average power consumption is minimal for read/write access between a stream buffer and the hard-disk drive. The optimal access block size Bopt can be found by taking the differential dPavg/dB of equation (8) for B, and solving dPavg/dB = 0 to give the optimum access block size BOpt. Assuming Psb = 0, the solution has only one positive root, given by:
(9)
The optimal access block size for different numbers of streams with different stream bit rates is given in Table 1. As can be seen from the table, the optimal access block size decreases with increasing number of streams and increasing stream bit rate. Note that the stream buffer size decreases with increasing number of streams, since the total buffer memory remains constant.
Table 1 : Optimal access block size examples
The average power consumption for different access block sizes, various numbers of streams and different stream bit rates is given in Table 2. As can be seen from the table, the power consumption increases with increasing number of streams and with increasing bit rate. For access block sizes larger than bJ2, the power consumption hardly increases. However, the decrease in power consumption for B > bJ2 when compared to B < IMByte is significant:
Table 2: Average power consumption
The table illustrates that minimizing disk seeks maximizes the effective data rate of the disk, thereby reducing the energy consumption of the disk, and that the more streams there are being serviced, the more important is such an optimisation from the point of view of reducing energy consumption. It can be seen from the table that the optimum access block size Bopt closely approaches half the size of the stream buffer bi, so that Bopt can easily be approximated by bjl. Therefore, in a particularly preferred, solution, this simple approximation is applied in order to dynamically adjust the access block size for a stream buffer to the size of that stream buffer. To give an outline overview of how a controlling arrangement 1, for performing the method according to the invention, is implemented in a device 30 such as a portable storage device 30 for serving multiple streams S1, S2, ..., Sk, the relevant blocks in such a device 30 are shown in Fig. 3. The diagram shows a portable storage device 30 with a
hard-disk drive 2 on which content and data can be stored by and for a number of applications A1, A2, ..., Ak. An input/output application A1, A2, ..., Ak can be any application for reading or writing a data stream S1, S2, ..., Sk to or from the hard-disk drive 2, such as applications for retrieving a video stream for viewing on a display 39, retrieving music for listening to on headphones 38, recording voice or music by means of a microphone 37, etc.
When an input/output application A1, A2, ..., Ak is started, for example when a user presses a "play" button on the device, contact is initiated by an application programming interface 31 with the controlling arrangement 1 via a configuration interface 32 and a file system driver 33 including a buffer arrangement. The application programming interface 31 requests stream buffers bi, b2, ..., bk for the corresponding applications A1, A2, ..., Ak. In the controlling arrangement 1, a buffer allocation unit 11 allocates the necessary number of stream buffers bi, b2, ..., bk based on the overall available buffer capacity, and a buffer size determination unit 12 determines the size of each of the stream buffers bi , b2, ... , bk such that the requirements of the bandwidths, or bit-rates, of the corresponding applications Ai, A2, ..., Ak are satisfied, i.e. the buffer capacity is divided among the applications Ai, A2, ..., Ak according to their requirements. An access block size adjustment unit 13 then determines the size of the access block for each of the stream buffers bi, b2, ..., bk. The file system driver 33 assigns a buffer bi, b2, ..., bk of the appropriate size in its page cache to the requesting application A1, A2, ..., Ak. The configuration interface 32 tracks the read/write progress of an application A1, A2, ..., Ak so that the buffers A1, A2, ..., Ak in a page cache of the file system 33 can be refilled or emptied at the optimal rate. A program such as a user space daemon 34 for tracking system resources assists the controlling arrangement 1 by keeping track of the available system resources, and an elevator 35 orders the input/output requests to optimise disk seeks and I/O performance. The application programming interface 31, configuration interface 32, file system driver 33, user space daemon 34, and elevator 35 described above are software blocks well-known to a person skilled in the art, easily available, and widely used in many similar applications. For example, such blocks are used in Linux systems and are freely available. Although the present invention has been disclosed in the form of preferred embodiments and variations thereon, it will be understood that numerous additional modifications and variations could be made thereto without departing from the scope of the invention.
For the sake of clarity, it is to be understood that the use of "a" or "an" throughout this application does not exclude a plurality, and "comprising" does not exclude
other steps or elements. A "unit" or "module" can comprises a number of units or modules, unless otherwise stated.
Claims
1. A method of controlling hard-disk accesses between a hard-disk drive (2) and a number of stream buffers (bi , b2, ... , bk), which method comprises dynamically adjusting the size of an access block (Bi , B2, ... , Bk) for a corresponding stream buffer (bi , b2, ... , bk), allocated to an input/output stream (S1, S2, ..., Sk), according to the size of that stream buffer
2. A method according to claim 1, wherein the size of the access block (B1, B2,
..., Bk) is adjusted according to the bit-rate of the corresponding input/output stream (S1, S2, . . . , Sk).
3. A method according to claim 2, wherein the size of the stream buffer (bi, b2,
..., bk) is adjusted according to the bit-rate of the corresponding input/output stream (S1, S2, . . . , Sk).
4. A method according to claim 3, wherein the size of a stream buffer (bi , b2, ... , bk) is determined by distributing an available buffer capacity over the input/output streams
(S1, S2, ..., Sk).
5. A method according to any of claims 1 to 4, wherein the size of the access block (Bi , B2, ... , Bk) for a stream buffer (bi , b2, ... , bk) is adjusted according to the total number of input/output streams (S1, S2, ..., Sk).
6. A method according to any of claims 1 to 5, wherein the size of the access block (B1, B2, ..., Bk) for a stream buffer (bi, b2, ..., bk) is adjusted to half the size ofthat stream buffer (bi , b2, ... , bk).
7. A method according to any of claims 1 to 5, wherein the size of the access block (Bi, B2, ..., Bk) for a stream buffer (bi, b2, ..., bk) is adjusted according to any of the following system parameters: the energy expended by the hard-disk drive (2) when spinning up or down; the time taken by the hard-disk drive (2) drive to spin up or down; the access time of the hard-disk drive (2) for accessing data on the hard-disk drive (2); - the effective data transfer rate of the hard-disk drive (2); the energy expended by the hard-disk drive (2) during a read or write access; the standby power consumed by the hard-disk drive (2) when in standby mode between accesses.
8. A controlling arrangement (1) for controlling hard-disk access between a hard- disk drive (2) and a number of stream buffers (bi , b2, ... , bk), which controlling arrangement (1) comprises a buffer allocation unit (11) for allocating a number of stream buffers (bi, b2, ..., bk) to a corresponding number of input/output streams (S1, S2, ..., Sk); - a buffer size determination unit (12) for determining the size of a stream buffer and an access block size adjustment unit (13) for adjusting the size of the access block (B1, B2, ..., Bk) of a corresponding stream buffer (bi, b2, ..., bk) according to the size of that stream buffer (bi, b2, ..., bk).
9. A data storage system (30) for storing and accessing data by means of a number of input/output streams (Si, S2, ..., Sk), comprising a hard disk drive (2), a buffer arrangement, and a controlling arrangement (1) according to claim 8.
10. A computer program product directly loadable into the memory of a programmable device for use in a data storage system (30), comprising software code portions for performing the steps of a method according to claims 1 to 7 when said product is run on the programmable device.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP05112486.5 | 2005-12-20 | ||
EP05112486 | 2005-12-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2007072287A2 true WO2007072287A2 (en) | 2007-06-28 |
WO2007072287A3 WO2007072287A3 (en) | 2007-10-25 |
Family
ID=38109986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/IB2006/054728 WO2007072287A2 (en) | 2005-12-20 | 2006-12-11 | Method of controlling disk accesses between a hard-disk drive and a number of stream buffers |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2007072287A2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102971719A (en) * | 2010-06-29 | 2013-03-13 | 图科塞拉公司 | Reading or writing to memory |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0967599A1 (en) * | 1994-03-30 | 1999-12-29 | Mitsumi Electric Company Ltd. | Optical disk recording device and optical disk drive |
EP1278191A1 (en) * | 2000-03-31 | 2003-01-22 | Matsushita Electric Industrial Co., Ltd. | Recording format, recording device and reproducing device |
WO2004061843A1 (en) * | 2003-01-06 | 2004-07-22 | Koninklijke Philips Electronics N.V. | Energy efficient disk scheduling for mobile applications: adaptively extending the disk standby time |
WO2005020062A1 (en) * | 2003-08-20 | 2005-03-03 | Koninklijke Philips Electronics N.V. | Dynamic memory buffer |
WO2005045832A1 (en) * | 2003-11-05 | 2005-05-19 | You Jip Won | A low power data storage system and a method thereof |
-
2006
- 2006-12-11 WO PCT/IB2006/054728 patent/WO2007072287A2/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0967599A1 (en) * | 1994-03-30 | 1999-12-29 | Mitsumi Electric Company Ltd. | Optical disk recording device and optical disk drive |
EP1278191A1 (en) * | 2000-03-31 | 2003-01-22 | Matsushita Electric Industrial Co., Ltd. | Recording format, recording device and reproducing device |
WO2004061843A1 (en) * | 2003-01-06 | 2004-07-22 | Koninklijke Philips Electronics N.V. | Energy efficient disk scheduling for mobile applications: adaptively extending the disk standby time |
WO2005020062A1 (en) * | 2003-08-20 | 2005-03-03 | Koninklijke Philips Electronics N.V. | Dynamic memory buffer |
WO2005045832A1 (en) * | 2003-11-05 | 2005-05-19 | You Jip Won | A low power data storage system and a method thereof |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102971719A (en) * | 2010-06-29 | 2013-03-13 | 图科塞拉公司 | Reading or writing to memory |
EP2588964B1 (en) * | 2010-06-29 | 2019-12-25 | Tuxera Inc. | Reading or writing to memory |
Also Published As
Publication number | Publication date |
---|---|
WO2007072287A3 (en) | 2007-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9348408B2 (en) | Adaptive power conservation in storage clusters | |
EP1440444B1 (en) | Media player with instant play capability | |
TWI426444B (en) | Adaptive storage system including hard disk drive with flash interface | |
TWI390520B (en) | Adaptive storage system including hard disk drive with flash interface | |
US20070136522A1 (en) | Information processing apparatus, media player and method for controlling a storage device | |
US7739421B1 (en) | Buffer management method and system with data displayed directly from buffers | |
US6189080B1 (en) | Minimum read rate throughput in a disk cache system | |
US7587549B1 (en) | Buffer management method and system with access grant based on queue score | |
US7231340B2 (en) | Dynamic memory buffer | |
US7283443B2 (en) | Power saving method for portable streaming devices | |
JP5068300B2 (en) | Apparatus, method and program for data flow and memory sharing of processor | |
WO2011048400A1 (en) | Memory interface compression | |
EP1584090B1 (en) | Energy efficient disk scheduling for mobile applications: adaptively extending the disk standby time | |
KR100746842B1 (en) | Multimedia server | |
WO2007072287A2 (en) | Method of controlling disk accesses between a hard-disk drive and a number of stream buffers | |
Dey et al. | Storage subsystem in a large multimedia server for high-speed network environments | |
US10715624B2 (en) | Optimized N-stream sequential media playback caching method and system | |
CN107766262B (en) | Method and device for adjusting number of concurrent write commands | |
CN110825314A (en) | Data scheduling method and device | |
KR20070027626A (en) | Method and circuit for buffering a stream of data | |
WO2007085978A2 (en) | A method of controlling a page cache memory in real time stream and best effort applications | |
EP1573504A2 (en) | Methods and apparatus for improving the breathing of disk scheduling algorithms | |
KR100971166B1 (en) | A device and method for setting the rotation speed of a rotating disk memory | |
Song et al. | Reducing disk power consumption in portable media players | |
Korst et al. | Saving energy in portable multimedia storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
NENP | Non-entry into the national phase in: |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 06832189 Country of ref document: EP Kind code of ref document: A2 |