JP2008158572A - Data storage device - Google Patents
Data storage device Download PDFInfo
- Publication number
- JP2008158572A JP2008158572A JP2006343260A JP2006343260A JP2008158572A JP 2008158572 A JP2008158572 A JP 2008158572A JP 2006343260 A JP2006343260 A JP 2006343260A JP 2006343260 A JP2006343260 A JP 2006343260A JP 2008158572 A JP2008158572 A JP 2008158572A
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage
- writing
- reading
- streams
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】 データの信頼性を向上させつつ、動画データ等のリアルタイム性を要求されるデータを高速に記憶することのできるデータ記憶装置を、より少数のディスクドライブでもって実現する。
【解決手段】 書き込み時は複数個のHDDに同一のデータを書き込み、読み込み時は複数個のHDDの何れかからデータを読み込む第一の動作モードを備える。また、それとともに、読み書きを要求されているストリーム全体を、個々の本数がHDD1個当りの許容ストリーム本数を越えないようにn分割して、それぞれを複数個のHDDに分散して処理する第二の動作モードを備える。ストリーム数判定手段で得られた判定結果の多寡に基づいて、上記第一、第二どちらかの動作モードで記憶動作を行う。
【選択図】 図1PROBLEM TO BE SOLVED: To realize a data storage device capable of storing data requiring real-time performance such as moving image data at a high speed with a smaller number of disk drives while improving data reliability.
A first operation mode is provided in which the same data is written to a plurality of HDDs during writing and data is read from any of the plurality of HDDs during reading. At the same time, the entire stream for which reading / writing is requested is divided into n so that the number of individual streams does not exceed the allowable number of streams per HDD, and each is distributed to a plurality of HDDs for processing. The operation mode is provided. Based on the number of determination results obtained by the stream number determination means, the storage operation is performed in either the first or second operation mode.
[Selection] Figure 1
Description
本発明はデータを二重化(あるいは3以上の多重化)させることでデータの信頼性を向上させつつ、動画データ等のリアルタイム性を要求されるデータを高速に記憶することのできるデータ記憶装置に関するものである。 The present invention relates to a data storage device capable of storing data that requires real-time performance such as moving image data at high speed while improving data reliability by duplicating data (or multiplexing of 3 or more). It is.
近年、動画データや音声データなどを従来のテープメディアに代えて、ハードディスクドライブに記憶するデータ記憶装置が広く普及しつつある。ハードディスクドライブはランダムアクセス性に優れている。そのため、所望のコンテンツを瞬時に再生したり、記録のための空き領域を速やかに探し出すことができる等、従来のテープメディアにはない使い勝手の良さを有している。 In recent years, data storage devices that store moving image data, audio data, and the like in hard disk drives instead of conventional tape media are becoming widespread. Hard disk drives have excellent random accessibility. For this reason, it has a usability that is not available in conventional tape media, such as the ability to instantly play back desired content or to quickly find a free area for recording.
また、パーソナルコンピュータ(以下、PC)等の情報機器においても、チューナーやコーデック(CODEC)LSIを搭載して、動画データ等を内蔵/外付けハードディスクドライブに記憶する機能を備えた機種が多数市販されている。 In addition, in information devices such as personal computers (hereinafter referred to as PCs), many models are commercially available that are equipped with a tuner or codec (CODEC) LSI and have a function of storing moving image data in an internal / external hard disk drive. ing.
さて、動画データ等は連続的なデータであり、単にデータが誤りなく記憶媒体上に記憶されるだけでは十分でなく、時間軸上の記録・再生速度、すなわちデータの転送速度が所定値以上に維持される必要がある。 Moving image data and the like are continuous data, and it is not sufficient that the data is simply stored on the storage medium without error, and the recording / reproducing speed on the time axis, that is, the data transfer speed exceeds a predetermined value. Need to be maintained.
特に、動画データは高精細、大画面の要望により、ますます大容量化、高データ転送レート化する傾向にあり、加えて複数の動画データの記録・再生を同時に扱うことも要求されている。このことから今日、どうがデータ等を記憶するハードディスクドライブには高いデータ転送性能が望まれている。 In particular, moving image data tends to have a larger capacity and a higher data transfer rate due to demands for high definition and a large screen, and in addition, it is required to simultaneously handle recording and reproduction of a plurality of moving image data. For this reason, high data transfer performance is desired today for hard disk drives that store data and the like.
一方で、ハードディスクドライブは機構部品であることから、PC等の電子機器を構成する部品としては、比較的寿命の短い部品の一つである。記憶を担う部品の故障は、単に装置が機能しないというだけに留まらず、蓄積しておいた情報を喪失してしまうことになるので、高い信頼性を確保する必要がある場合には何らかの対策が必要となってくる。 On the other hand, since the hard disk drive is a mechanical component, it is one of components having a relatively short life as a component constituting an electronic device such as a PC. The failure of the parts responsible for memory will not only mean that the device will not function, but will also cause the stored information to be lost. It becomes necessary.
信頼性を向上させるために、複数のディスクドライブを備え上位装置からの書き込みに対して、複数のディスクドライブに同一のデータを重複して書き込み、データを二重化(あるいは3以上の多重化)したデータ記憶装置が知られている。 In order to improve reliability, data with multiple disk drives written to the host device is duplicated and the same data is written to multiple disk drives, and the data is duplicated (or 3 or more multiplexed) Storage devices are known.
しかしながら、このようにデータを多重化させたデータ記憶装置においては、その動作速度は1個のディスクドライブを用いたデータ記憶装置と概ね同等か、場合によっては遅くなってしまうことが知られている。 However, it is known that the operation speed of a data storage device in which data is multiplexed in this way is almost the same as or slower in some cases than that of a data storage device using one disk drive. .
そこで、データを多重化させたデータ記憶装置の動作速度を改善する工夫が、従来提案されている。例えば特許文献1に開示されるミラードディスク制御装置は、書き込み時は2個のディスク装置に同時にデータを書き込むミラーリング構成としている。読み込み時には各ディスクのヘッド位置を考慮し、ヘッド位置がより近いどちらかのディスク装置に対して読み込み要求を発行して、読み込み時の動作速度を改善したものである。
Therefore, a device for improving the operation speed of a data storage device in which data is multiplexed has been proposed. For example, the mirrored disk control device disclosed in
また、特許文献2には、第一のディスク装置を書き込み主体、第二のディスク装置を読み込み主体で使用して、ディスク装置の応答性を改善した多重化ディスク制御装置が開示されている。
Further,
さらに、特許文献3には、データの記憶を複数のハードディスク装置に分散させて高速化を図るとともに、分散させた個々のハードディスク装置をミラーリング構成にして、冗長化による信頼性を確保したデータアクセス装置が開示されている。
Furthermore,
しかしながら、特許文献1に開示される発明は、読み込みに対しては速度改善の効果が見られるものの、書き込みに対しては全く改善がなされていない。
However, although the invention disclosed in
一方、特許文献2に開示される発明は、書き込み要求と読み込み要求とを別々のディスクに分散して処理することで、動作速度を向上させることが可能である。
On the other hand, the invention disclosed in
しかしながら、その効果は書き込み要求と読み込み要求とが適度に混在している場合に限定され、例えば書き込み要求だけが集中する場合には、ほとんど効果が期待できない。 However, the effect is limited to cases where write requests and read requests are moderately mixed. For example, when only write requests are concentrated, almost no effect can be expected.
特許文献3に開示される発明は、分散記憶と多重化記憶(記憶の二重化)を組み合わせることで、上記特許文献1、2に開示される発明のような欠点は解消される。しかしながらこの構成は、少なくとも4個以上のディスクドライブを必要とするため、装置の低コスト化、小型化には著しく不利となる。
In the invention disclosed in
そこで、本発明の目的は、データの信頼性を向上させつつ、動画データ等のリアルタイム性を要求されるデータを高速に記憶することのできるデータ記憶装置を、より少数のディスクドライブでもって実現することにある。 SUMMARY OF THE INVENTION Accordingly, an object of the present invention is to realize a data storage device that can store data that requires real-time performance, such as moving image data, at a high speed while improving the reliability of the data with a smaller number of disk drives. There is.
本発明のデータ記憶装置の第1の態様は、複数個(n個)の記憶媒体と、読み書きを要求されているストリーム数を判定するストリーム数判定手段と、書き込み時は上記複数個の記憶媒体に同一のデータを書き込み、読み込み時は上記複数個の記憶媒体のいずれかからデータを読み込む第一の動作モードと、読み書きを要求されているストリーム全体を、個々の本数が上記記憶媒体1個当りの許容ストリーム本数を越えないようにn分割して、それぞれを上記複数個の記憶媒体に分散して処理する第二の動作モードとを有し、上記ストリーム数判定手段で得られた判定結果に基づいて、上記第一の動作モードと上記第二の動作モードとの何れかで記憶動作を行う記憶動作制御手段と、上記複数個の記憶媒体にデータが多重化(n重化)されて書き込まれたか否かを記憶するデータ多重化管理記憶手段と、上記ストリーム数判定手段で得られた判定結果が所定値以下である場合に、上記データ多重化管理記憶手段の記憶結果に基づいて、上記複数の記憶媒体にデータを多重化(n重化)して書き込むデータ多重化処理手段とを有することを特徴とする。
本発明のデータ記憶装置の第2の態様は、複数個(n個)の記憶媒体と、読み書きを要求されているストリーム全体の合計データ転送レートを判定する合計データ転送レート判定手段と、書き込み時は上記複数個の記憶媒体に同一のデータを書き込み、読み込み時は上記複数個の記憶媒体のいずれかからデータを読み込む第一の動作モードと、読み書きを要求されているストリーム全体を、個々のデータ転送レートの合計が上記記憶媒体1個当りの許容データ転送レートを越え得ないようにn分割して、それぞれを上記複数個の記憶媒体に分散して処理する第二の動作モードとを有し、上記合計データ転送レート判定手段で得られた判定結果に基づいて、上記第一の動作モードと上記第二の動作モードとの何れかで記憶動作を行う記憶動作制御手段と、上記複数個の記憶媒体にデータが多重化(n重化)されて書き込まれたか否かを記憶するデータ多重化管理記憶手段と、上記合計データ転送レート判定手段で得られた判定結果が所定値以下である場合に、上記データ多重化管理記憶手段の記憶結果に基づいて、上記複数の記憶媒体にデータを多重化(n重化)して書き込むデータ多重化処理手段とを有することを特徴とする。
According to a first aspect of the data storage device of the present invention, a plurality (n) of storage media, a stream number determination means for determining the number of streams requested to be read / written, and the plurality of storage media at the time of writing The first operation mode for reading data from one of the plurality of storage media at the time of reading and reading the same data, and the entire stream requested to be read / written A second operation mode in which the number of streams is divided into n so as not to exceed the allowable number of streams, and each is distributed to the plurality of storage media for processing, and the determination result obtained by the stream number determination means is Based on this, the storage operation control means for performing the storage operation in either the first operation mode or the second operation mode, and data is multiplexed (n-multiplexed) on the plurality of storage media. When the determination result obtained by the data multiplexing management storage means storing the number of streams and the number-of-streams determination means is less than a predetermined value, based on the storage result of the data multiplexing management storage means And data multiplexing processing means for multiplexing (n-duplicating) and writing data to the plurality of storage media.
According to a second aspect of the data storage device of the present invention, a plurality (n) of storage media, a total data transfer rate determining means for determining a total data transfer rate of the entire stream for which reading / writing is requested, Writes the same data to the plurality of storage media and reads the data from any of the plurality of storage media at the time of reading, and the entire stream that is requested to be read / written as individual data A second operation mode in which the total of transfer rates is divided into n so that the total data transfer rate cannot exceed the permissible data transfer rate per storage medium, and each is distributed to the plurality of storage media for processing. Based on the determination result obtained by the total data transfer rate determination means, the storage operation control for performing the storage operation in either the first operation mode or the second operation mode. A determination result obtained by the means, a data multiplexing management storage means for storing whether or not the data is multiplexed (n multiplexed) and written on the plurality of storage media, and the total data transfer rate determination means And a data multiplexing processing means for multiplexing and writing data to the plurality of storage media based on the storage result of the data multiplexing management storage means when the value is less than or equal to a predetermined value. It is characterized by.
本発明においては、取り扱うストリームが少ないうちは複数個のHDDに同一のデータを二重化(またはn重化)して記憶する。但し、取り扱うストリームが増加してHDDの許容データ転送レートが不足した場合には、二重化記憶(またはn重化記憶)を取りやめて複数個のHDDを個別に動作させる。そして、それぞれに異なるストリームの処理を割り当てて、データ記憶装置全体としての許容データ転送レートを増大させる。そして、データ記憶装置の取り扱うストリームが「0〜少数」の低負荷時に、データの二重化処理(またはn重化処理)を実行するようにした。 In the present invention, as long as the number of streams to be handled is small, the same data is duplicated (or n-duplicated) and stored in a plurality of HDDs. However, when the number of streams handled increases and the allowable data transfer rate of the HDD becomes insufficient, the duplex storage (or n-duplex storage) is canceled and a plurality of HDDs are operated individually. Then, different stream processing is allocated to each to increase the allowable data transfer rate of the entire data storage device. Then, the data duplication processing (or n-duplication processing) is executed when the stream handled by the data storage device is a low load of “0 to a few”.
従って、本発明によれば、データを二重化(またはn重化)させることでデータの信頼性を向上させることができる。また、本発明によれば、動画データ等のリアルタイム性を要求されるデータを高速に記憶することのできるデータ記憶装置を、最少2個のディスクドライブを使用する構成で実現することができる。 Therefore, according to the present invention, data reliability can be improved by duplicating (or n-duplicating) data. In addition, according to the present invention, a data storage device capable of storing data requiring real-time performance such as moving image data at high speed can be realized with a configuration using a minimum of two disk drives.
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。 DESCRIPTION OF EXEMPLARY EMBODIMENTS Hereinafter, preferred embodiments to which the invention is applied will be described in detail with reference to the accompanying drawings.
(第1の実施形態)
図1は、本発明の第1の実施形態に係るデータ記憶装置のブロック図である。図1の10は、装置全体の制御を司るCPUである。CPU10のバス(システムバス)上には、ROM11、RAM12、NIC13、外部機器接続インタフェース14、デコーダ15、ディスクコントローラ16、グラフィック・サウンドコントローラ17が接続されている。これらによって全体としてデータ記憶装置30を構成する。
(First embodiment)
FIG. 1 is a block diagram of a data storage device according to the first embodiment of the present invention.
13は、データ記憶装置30をLANに接続するためのネットワークコントローラ(NIC)である。14は、データ記憶装置30を31の映像機器(デジタルビデオカメラ等)と接続する外部機器接続インタフェース(USBやIEEE1394等)のコントローラである。
16は、18、19のハードディスクドライブ(HDD)の動作を制御するディスクコントローラである。データ記憶装置30では、ネットワークカメラや画像配信サーバ等からLAN経由で転送された動画・音声データ又は外部機器接続インタフェース14を介して接続された映像機器31から出力された動画・音声データをHDD18、19に記憶する。即ち、動画・音声データをHDD18、19に録画・記憶する。
HDD18、19に記憶する動画・音声データは、通常MPEG、MotionJPEG等、周知のフォーマットで圧縮(符号化)されている。
The moving image / audio data stored in the
15は、この圧縮データを伸長するためのデコーダ回路である。データの再生時、デコーダ回路15で伸長された動画・音声データは17のグラフィック・サウンドコントローラを介して、外部に接続されたモニタ装置32に出力される。
11は、ROMであり、CPU10の動作プログラムや各種テーブルデータ等が格納される。
Reference numeral 11 denotes a ROM which stores an operation program for the
12は、RAMでCPU10の動作メモリとして使用されるほか、システムバス上の各ブロック間で行われるデータ転送のバッファメモリとしても使用される。
A
20は、CPU10の入出力ポートに接続された操作パネルであり、ボタンスイッチ、LCD等で構成される。
ユーザは操作パネル20を操作することで、データ記憶装置30に対する所望の動作指示を行うことができる。
The user can issue a desired operation instruction to the
以上の構成によりデータ記憶装置30は、LAN経由で転送された動画・音声データおよび映像機器31から出力された動画・音声データをHDD18、19に記憶して、当該記憶したデータをモニタ装置32に出力する、録画・再生装置として機能する。
With the above configuration, the
また、データ記憶装置30はネットワークサーバとしての機能も有しており、HDD18、19に記憶した動画・音声データを、LAN上に接続されたPC等の情報機器に配信することもできる。
Further, the
次に、図2を用いて、HDD18、19の論理的な構成(領域の区分等)について説明する。
Next, with reference to FIG. 2, a logical configuration (area division and the like) of the
図2はHDD18、19のフォーマット状態を示す図である。HDD18、19の記憶領域は大きく二つに区分されており、記憶媒体上の外周側にシステム領域、内周側にデータ領域が割り当てられている。システム領域内のFATエントリはファイルを構成するクラスタのアロケーションテーブルであり、一つのファイルが構成される複数のクラスタのチェーン情報(次のクラスタ番号)が記憶される。
FIG. 2 is a diagram showing a format state of the
なお、FATの値にはチェーン情報のほかに、未使用クラスタ、欠陥クラスタ、ファイルの終端(EOF)が定義される。 In addition to chain information, the FAT value defines an unused cluster, a defective cluster, and an end of file (EOF).
ディレクトリエントリにはファイル名(パス情報を含む)と、当該ファイルの最初のクラスタ番号が記憶される。 The directory entry stores a file name (including path information) and the first cluster number of the file.
FATとディレクトリエントリにより、記憶データは「ファイル」という単位で取り扱うことが可能となる。なお二重化管理領域については後述する。 The storage data can be handled in units of “files” by the FAT and the directory entry. The redundant management area will be described later.
データ領域は外周側から順に0〜nのクラスタに分割されている。データ領域の大きさを72Gバイト(72Gバイト×1024×1024=75,497,472Kバイト)、クラスタの大きさを128Kバイトとした場合には
75497472÷128=589824
となり、データ領域全体には589、824個のクラスタが存在する。
The data area is divided into 0 to n clusters in order from the outer periphery side. When the size of the data area is 72 Gbytes (72 Gbytes × 1024 × 1024 = 75,497,472 Kbytes) and the size of the cluster is 128 Kbytes, 7549472/128 = 589824
Thus, there are 589 and 824 clusters in the entire data area.
図2から明らかなように、HDD18とHDD19は全く同一の構成となっており、本実施形態におけるデータ記憶装置はシステム領域、データ領域とも、同一のデータをHDD18と19に重複(二重化)して記憶する。
As is apparent from FIG. 2, the
システム領域内の二重化管理テーブルは、個々のクラスタがHDD18、19に二重化されて記録されているか否かを管理するためのものである。
The duplication management table in the system area is for managing whether or not individual clusters are duplicated and recorded in the
二重化管理テーブルはクラスタ数×2ビット(本実施形態では589824×2ビット=1179648ビット=144Kバイト)分の大きさを持っており、各クラスタ毎に以下の状態情報を記憶しておく。
00b:未使用のクラスタ
01b:HDD18にだけデータが記憶してあるクラスタ
10b:HDD19にだけデータが記憶してあるクラスタ
11b:HDD18、19に二重化してデータが記憶してあるクラスタ
The duplex management table has a size corresponding to the number of clusters × 2 bits (589824 × 2 bits = 1179648 bits = 144 Kbytes in this embodiment), and stores the following status information for each cluster.
00b: Unused cluster 01b: Data stored only in
次に、図3を用いてディスクコントローラ16の詳細な構成を説明する。図3中の40はディスクコントローラ16全体の制御を司るMPUである。
Next, a detailed configuration of the
MPU40には、CPU、ROM、RAM、I/Oポート等が1チップに集積されている。
In the
MPU40のバス(ローカルバス)上には、後述するバスブリッジ41、ステータスレジスタ42、コマンドキューイングメモリ43、データバッファメモリ44、二重化管理テーブルメモリ45、ATAインタフェース46、47が接続されている。これらが全体としてディスクコントローラ16を構成する。
On the bus (local bus) of the
ディスクコントローラ16は、バスブリッジ41を介して図1で説明したシステムバスに接続される。
The
これにより、システムバス上に接続された各ブロックと、ローカルバス上に接続された各ブロック間で、データの交換が行えるようになっている。 As a result, data can be exchanged between each block connected on the system bus and each block connected on the local bus.
また、バスブリッジ41を介して、CPU10とMPU40との間でプロセッサ間通信が行うことができる。
Further, inter-processor communication can be performed between the
ステータスレジスタ42は、ディスクコントローラ16の動作ステータスなど(各種動作の進捗状況等)を記憶しておくレジスタ回路である。
The
ステータスレジスタ42の設定値は、動作状況に応じてMPU40によって時々刻々設定される。ステータスレジスタ42は図1のCPU10からも参照することが可能で、これによりCPU10はディスクコントローラ16に対して指示した各種動作の完了等を知ることができる。
The set value of the
また、ステータスレジスタ42には、CPU10、MPU40の双方からリード/ライトアクセス可能な領域が設けられており、当該領域はCPU10−MPU40間のプロセッサ間通信に使用される。
The
コマンドキューイングメモリ43は、ディスクコントローラ16に対して発行されるトランザクションコマンドをキューイングするメモリである。
The
図4にトランザクションコマンドのフォーマットを示す。トランザクションコマンドはヘッダ部(2バイト)、DMA開始アドレス(4バイト)、クラスタ番号またはLBA(2バイト)の都合10バイトで構成される。 FIG. 4 shows a transaction command format. The transaction command is composed of a header part (2 bytes), a DMA start address (4 bytes), a cluster number, or an LBA (2 bytes) for 10 bytes.
ヘッダ部の先頭1ビットは、FATおよびディレクトリエントリを読み書きするためのトランザクションであるのか、動画・音声データのストリームを読み書きするためのトランザクションであるのかを区別するビットである。続く1ビットは読み込み、書き込みを区別するビットである。 The first 1 bit of the header part is a bit for distinguishing between a transaction for reading and writing a FAT and a directory entry and a transaction for reading and writing a stream of moving image / audio data. The next 1 bit is a bit for distinguishing between reading and writing.
次の6ビットはストリームの番号を示す。1回のトランザクションでは1クラスタ分のデータ(128Kバイト)を転送することができるが、通常の動画・音声データはこれよりは遥かに大きいので、動作・音声データの転送には複数のトランザクションが費やされる。 The next 6 bits indicate the stream number. Data for one cluster (128 Kbytes) can be transferred in one transaction, but normal video / audio data is much larger than this, so multiple transactions are spent for transferring operation / audio data. It is.
そこで個々のトランザクションがどのストリームのデータ転送に属するのかを、このストリーム番号を用いて区別する。ストリーム番号は絶対的にユニークな番号である必要はなく、(時分割的に並列で)同時にトランザクションが実行されている複数のストリームの区別がつけばよいだけであるから、6ビット分(0〜63)を繰り返し使用することで十分事足りる。 Therefore, the stream number is used to distinguish which stream data transfer belongs to which transaction. The stream number does not need to be an absolutely unique number, and it is only necessary to distinguish a plurality of streams in which transactions are executed simultaneously (in parallel in a time division manner). It is sufficient to use 63) repeatedly.
トランザクションコマンドは、コマンドキューイングメモリ43に空きがあるうちは次々と発行することができる。
Transaction commands can be issued one after another while the
ディスクコントローラ16はコマンドキューイングメモリ43から、キューイングされたトランザクションコマンドを読み出して対応する処理動作を逐次実行する。
The
従って、コマンドの発行と処理動作の実行とにはタイムラグが存在することになり、そのままでは発行したコマンドの処理動作がいつ完了したのかを知る術がない。 Therefore, there is a time lag between issuing the command and executing the processing operation, and there is no way to know when the processing operation of the issued command is completed.
最後の8ビットはこの事に対処するためのもので、コマンドの番号を示すフィールドである。MPU10は、ある番号が附されたコマンドの処理動作を実行し終えたら、ステータスレジスタ42内に存在するコマンド番号レジスタのうち、対応する番号のレジスタにだけ値「1」をセットする。CPU10はこのコマンド番号レジスタをポーリングすることで、発行したコマンドの処理動作の完了を知ることができる。
The last 8 bits are for dealing with this, and are a field indicating a command number. When the
コマンド番号は絶対的にユニークな番号である必要はなく、コマンドキューイングメモリ43にキューイングされている複数のコマンドで重複がなければよいだけであるから、8ビット分(0〜255)を繰り返し使用することで十分に事足りる。
The command number does not have to be an absolutely unique number. It is only necessary that there is no duplication among a plurality of commands queued in the
トランザクションのためのデータは、RAM12に格納される。即ち、書き込み時においては、HDD18、19に書き込むべきデータをRAM12に格納した後にトランザクションコマンドが発行される。また、読み込み時はトランザクションコマンド発行後、処理動作が実行されてHDD18、19から読み込まれたデータがRAM12に格納される。
Data for the transaction is stored in the
データ転送は「RAM12−ディスクコントローラ16」間のDMA転送により実施されるが、このときのDMA転送開始アドレスをヘッダ部に続く4バイトで指定する。
Data transfer is performed by DMA transfer between “
最後の4バイトは読み書きの対象となるクラスタの番号を指定するフィールドである。なお、FATおよびディレクトリエントリの読み書きはクラスタではなくセクタ単位で行われるため、FATおよびディレクトリエントリのためのトランザクションでは、この部分はクラスタ番号ではなくLBA(論理アドレス)が指定される。 The last 4 bytes are a field for designating the number of the cluster to be read / written. Since reading and writing of FAT and directory entries are performed in units of sectors, not in clusters, in transactions for FAT and directory entries, LBA (logical address) is designated for this part instead of cluster numbers.
図3に戻り、データバッファメモリ44は、HDD18、19からの読み込みデータ及び書き込みデータを一時的に格納するバッファメモリである。
Returning to FIG. 3, the
上記の「RAM12−ディスクコントローラ16」間のDMA転送は、実際には「RAM12−データバッファメモリ44」間で実施される。ATAインタフェース46、47は、HDD18、19を物理的に接続するためのインタフェース回路である。
The DMA transfer between “
二重化管理テーブルメモリ45は、図2で説明した二重化管理テーブルの記憶内容を丸ごとキャッシュしておくためのメモリである。二重化管理テーブルの記憶内容は、電源投入時(あるいはHDD初期化後)に二重化管理テーブルメモリ45にコピーされる。以後、二重化管理テーブルを更新する場合は、HDD18、19上の二重化管理テーブルを直接書き換えるのではなく二重化管理テーブルメモリ45を操作する。
The duplex
そして、装置の運用を終了する時(すなわち電源OFF時)に、二重化管理テーブルメモリ45の記憶内容はHDD18、19上の二重化管理テーブルにコピーされる。
When the operation of the apparatus is finished (that is, when the power is turned off), the storage contents of the duplex
なお、説明の都合上、図4においてはコマンドキューイングメモリ43、データバッファメモリ44、二重化管理テーブルメモリ45がそれぞれ独立したブロックになっている。但し、実際には単一系統のメモリだけを具備し、それぞれの用途で当該メモリを共用する構成としても、もちろんよい。
For convenience of explanation, in FIG. 4, the
本実施形態におけるデータ記憶装置は、基本的にはHDD18、19に同一のデータを二重化(ミラーリング)して記憶する。但し、取り扱う動画・音声データのストリーム本数が増加してHDDの許容データ転送レートが不足した場合には、二重化記憶(ミラーリング記憶)を取りやめてHDD18、19を個別に動作させる。そして、それぞれに異なるストリームの処理を割り当てて、データ記憶装置全体としての許容データ転送レートを倍化させる。
The data storage device in the present embodiment basically stores the same data in the
そして、データ記憶装置の取り扱うストリームが「0〜少数」の低負荷時に、データの二重化処理(HDD18、19相互間のコピー処理)を実行する。
Then, when the stream handled by the data storage device is a low load of “0 to a small number”, data duplication processing (copy processing between
図5〜10のフローチャートを用いて、データ記憶装置30の動作について詳細に説明する。図5はHDD18、19の初期化時の動作フローである。本動作フローはCPU10のプログラム動作により実行されるものである。
The operation of the
物理フォーマットが終了した後、まずステップ100において、HDD18、19の総容量、クラスタの大きさ(128Kバイト)から、システム領域、データ領域、それぞれの大きさを計算する。HDD18、19とで容量が異なっている場合は、小さいほうを基準に計算を行う。
After the physical formatting is completed, first, in step 100, the sizes of the system area and the data area are calculated from the total capacity of the
次に、ステップ101でシステム領域内に二重化管理テーブルを作成する。この際、全てのクラスタについて「未使用」としておく。 Next, in step 101, a duplex management table is created in the system area. At this time, “unused” is set for all clusters.
次いでステップ102でシステム領域内にFAT(ファイルアロケーションテーブル)を作成する。この際、個々のクラスタに対するFAT値については「未使用クラスタ」としておく。 Next, in step 102, a FAT (file allocation table) is created in the system area. At this time, the FAT value for each cluster is set as “unused cluster”.
次に、ステップ103で、ディレクトリエントリにルートディレクトリを作成する。 Next, in step 103, a root directory is created in the directory entry.
図6〜9はHDD18、19に対してデータを読み書きする時の動作フローである。図6、7に示した動作フローはCPU10のプログラム動作により実行されるものである。
6 to 9 are operation flows when data is read from and written to the
データ記憶装置30で、HDD18、19にアクセスすべき事態が発生した場合には、まずステップ200、201でディスクコントローラ16に対してトランザクションの要求が受付けられるか否かを問い合わせ、受付が許可されるまで待機する。当該問い合わせは、CPU10−MPU40プロセッサ間通信により実行される。
When a situation in which the
次に、ステップ202で書き込みであるのか読み込みであるのか判定する。書き込みの場合は、ステップ203〜206でFATおよびディレクトリエントリの読み込みコマンドを複数回発行してFATおよびディレクトリエントリを読み込む。次いで、ステップ207で読み込んだFATおよびディレクトリエントリから空きクラスタを検索し、書き込みクラスタを決定する。 Next, in step 202, it is determined whether writing or reading. In the case of writing, the FAT and directory entry read commands are issued multiple times in steps 203 to 206 to read the FAT and directory entries. Next, a free cluster is searched from the FAT and directory entry read in step 207 to determine a write cluster.
そして、ステップ208〜211で必要な回数分FATおよびディレクトリエントリの書き込みコマンドを発行して、FATおよびディレクトリエントリの内容を更新する。 In steps 208 to 211, the FAT and directory entry write commands are issued as many times as necessary to update the contents of the FAT and directory entries.
この際、ファイル名はデータ入力がLAN経由であってファイル名を知り得る場合にはその名前を、映像機器31がファイル名を指定する場合にはその名前を使用する。
At this time, the file name is used when the data input is via the LAN and the file name can be known, and the name is used when the
ファイル名が外部から指定されない場合には、英数字などを適宜組み合わせたファイル名とする。 When the file name is not designated from the outside, the file name is appropriately combined with alphanumeric characters.
また、操作パネル20等を用いて使用者がファイル名やパス情報を指定した場合にはそれに従う。
Further, when the user designates a file name or path information using the
FATおよびディレクトリエントリの更新書き込みが完了したら、ステップ212、213でディスクコントローラ16に対してトランザクションの要求が受付けられるか否かを問い合わせ、受付が許可されるまで待機する。受付が許可されたらステップ214で1クラスタ分の書き込みコマンドを発行する。
When the update writing of the FAT and the directory entry is completed, the
以上の動作を書き込むべき全てのクラスタについてステップ212から繰り返して実行する(ステップ215)。 The above operation is repeatedly executed from step 212 for all clusters to be written (step 215).
コマンドの発行が完了したら、ステップ216で発行したコマンドの処理動作が完了するのを待機して、書き込みのための一連の処理を終了する。 When the command issuance is completed, the process of the command issued in step 216 is waited for to be completed, and a series of processes for writing is terminated.
ステップ202に戻り、読み込みであった場合は図7のステップ217〜219でFATおよびディレクトリエントリの読み込みコマンドを複数回発行してFATおよびディレクトリエントリを読み込む。 Returning to step 202, if it is read, the FAT and directory entry read commands are issued a plurality of times in steps 217 to 219 of FIG. 7 to read the FAT and directory entries.
次いで、ステップ220で読み込んだFATおよびディレクトリエントリから読み込むべきファイルのデータが記憶されているクラスタを検索して決定する。 Next, the cluster in which the data of the file to be read is stored from the FAT and directory entry read in step 220 is searched and determined.
次に、ステップ221、222でディスクコントローラ16に対してトランザクションの要求が受付けられるか否かを問い合わせ、受付が許可されるまで待機する。
Next, in steps 221, 222, the
受付が許可されたらステップ223で1クラスタ分の読み込みコマンドを発行する。以上の動作を読み込むべき全てのクラスタについてステップ221から繰り返して実行する(ステップ224)。 If acceptance is permitted, a read command for one cluster is issued in step 223. The above operation is repeatedly executed from step 221 for all clusters to be read (step 224).
コマンドの発行が完了したら、ステップ225で発行したコマンドの処理動作が完了するのを待機して、読み込みのための一連の処理を終了する。 When the command issuance is completed, the processing for the command issued in step 225 is waited for completion, and a series of processing for reading is terminated.
以上ステップ200〜226までのタスクは、複数のストリームを同時に取り扱う場合には、許容される範囲内において(本実施形態では6つまで)複数のタスクが(時分割的な並列処理として)同時に起動、実行される。但し、書き込みトランザクションの場合、FATおよびディレクトリエントリ操作に関する処理(すなわちステップ203〜211の処理)だけは、FATおよびディレクトリエントリの二重更新を防止するために排他的に実行されなければならない。 As for the tasks from step 200 to step 226, when a plurality of streams are handled at the same time, a plurality of tasks are activated simultaneously (as time division parallel processing) within an allowable range (up to six in this embodiment). Executed. However, in the case of a write transaction, only the processing related to the FAT and directory entry operations (that is, the processing in steps 203 to 211) must be executed exclusively to prevent double updating of the FAT and directory entries.
図8、9に示した動作フローはMPU40のプログラム動作により実行されるものである。まず図8を用いて、トランザクション要求受付可否の動作処理について説明する。
The operation flows shown in FIGS. 8 and 9 are executed by the program operation of the
ステップ300において、CPU10からのトランザクション要求受付可否の問い合わせの有無を判定する。
In step 300, it is determined whether or not there is an inquiry about whether or not the transaction request can be accepted from the
問い合わせがない場合には、何もせずに処理を終了する。問い合わせがあった場合は、ステップ301でコマンドキューイングメモリ43が「フル」状態にあるか否かを判定する。
If there is no inquiry, the process ends without doing anything. If there is an inquiry, it is determined in step 301 whether or not the
「フル」状態の場合はステップ302で、当該トランザクション要求の受付を拒絶し、「フル」状態でなかった場合は、ステップ303で当該トランザクション要求の受付を許可する。 If it is in the “full” state, the transaction request is rejected in step 302. If it is not in the “full” state, the transaction request is permitted in step 303.
次に、図9を用いて、HDD18、19への読み書き動作処理について説明する。
ステップ400でコマンドキューイングメモリ43からコマンドを一つ取得し、ステップ401で当該コマンドがFATおよびディレクトリエントリのトランザクションコマンドなのかストリームのトランザクションコマンドなのかを判定する。
Next, read / write operation processing to the
In step 400, one command is acquired from the
FATおよびディレクトリエントリのトランザクションコマンドであった場合は、ステップ402でFATおよびディレクトリエントリの書き込み/読み込みを実行する。具体的には指示されたLBAへデータを書き込む、または指示されたLBAからデータを読み込む動作を実行する。 If the transaction command is a FAT / directory entry transaction, writing / reading of the FAT / directory entry is executed in step 402. Specifically, an operation of writing data to the instructed LBA or reading data from the instructed LBA is executed.
なお、FATおよびディレクトリエントリの書き込みは、常にHDD18、19に二重化して書き込まれる。
The FAT and directory entry are always written in duplicate in the
ストリームのトランザクションコマンドであった場合は、ステップ403、404で現在処理中のストリームの本数を計算する。処理中のストリーム本数が3本以下であった場合は、ステップ405で書き込みトランザクションコマンドなのか読み込みトランザクションコマンドなのかを判定する。 If it is a stream transaction command, the number of streams currently being processed is calculated in steps 403 and 404. If the number of streams being processed is three or less, it is determined in step 405 whether it is a write transaction command or a read transaction command.
書き込みトランザクションコマンドであった場合は、ステップ406でHDD18、19双方のドライブの指示されたクラスタに、同一のデータを二重化して書き込む。そしてステップ407で二重化管理テーブルメモリ45の対応するクラスタの部分を「11b」に更新する。そして、ステップ408でレジスタを更新する。また読み込みトランザクションコマンドであった場合は、ステップ409で指示されたクラスタのデータを読み込む(ここでは、どちらか任意のドライブからデータを読み込むことができる)。
If it is a write transaction command, in step 406, the same data is duplicated and written to the designated cluster of both
ステップ404に戻る。処理中のストリーム本数が3本超であった場合は、ステップ410で書き込みトランザクションコマンドなのか、読み込みトランザクションコマンドなのか、読み込みトランザクションコマンドの場合にそのデータが二重化されているデータなのか否かを判定する。二重化されているか否かは、二重化管理テーブルメモリ45を検索することで容易に知ることができる。
Return to step 404. If the number of streams being processed exceeds three, it is determined in step 410 whether it is a write transaction command, a read transaction command, or a read transaction command, and whether the data is duplicated data. To do. Whether or not it is duplicated can be easily known by searching the duplicated
二重化されていないデータの読み込みトランザクションコマンドであった場合は、ステップ411でデータが存在するドライブから指示されたクラスタのデータを読み込む。どちらのドライブにデータが存在するのかは、二重化管理テーブルメモリ45の値(「10b」なのか「01b」なのか)から直ちに知ることができる。そして、ステップ410に戻り、二重化されているデータの読み込みトランザクションコマンであった場合は、ステップ412でどちらかのドライブから指示されたクラスタのデータを読み込む。 If it is a read transaction command for data that has not been duplicated, in step 411, the data of the designated cluster is read from the drive in which the data exists. It can be immediately known from which value the data exists in the duplex management table memory 45 (whether it is “10b” or “01b”). Then, returning to step 410, if it is a duplicated data read transaction command, in step 412, the cluster data designated by either drive is read.
さらに書き込みトランザクションコマンドであった場合は、ステップ413でどちらかのドライブに指示されたクラスタのデータを書き込み、ステップ414で二重化管理テーブルメモリ45の対応するクラスタの部分を「10b」または「01b」に更新する。
If the transaction command is a write transaction command, the cluster data instructed to either drive is written in step 413, and the corresponding cluster portion of the duplex
ステップ408、409、411、412、414の処理をし終えたら、ステップ408でコマンド番号レジスタを更新して、当該コマンドの処理動作が完了したことをCPU10に通知する。以上の動作をステップ400から繰り返し実行する。
When the processing in steps 408, 409, 411, 412, and 414 is completed, the command number register is updated in step 408 to notify the
ここでステップ412、413においてどちらのドライブを選択するべきなのかについて考察する。ここでは6本のストリームを3本ずつに分け、それぞれをHDD18、19に担当させるようにしたい。従って、書き込みは二重化されていないデータを記憶しているドライブを優先して、読み込みは扱っているストリーム本数が少ないドライブを優先して、使用するドライブを選択するようにする。
Now consider which drive should be selected in steps 412, 413. Here, it is desired to divide the six streams into three, and let the
なお、このような工夫を行っても、6本のストリームを常に完全に処理できるわけではない。例えば、二重化されていないデータを読み込む必要のあるストリームの読み込みは3本を越えては扱うことができない場合が当然存在する。 Even if such a device is used, the six streams cannot always be processed completely. For example, there is naturally a case where reading of a stream that needs to read non-duplicated data cannot be handled beyond three.
そこで、データ記憶装置30の仕様として、同時に取り扱うことのできるストリーム数を
書き込み(記録)6本以下
読み込み(再生)6本以下
書き込み(記録)3本以下、かつ読み込み(再生)3本以下
とする。
Therefore, the specification of the
図10はデータの二重化処理の動作フローである。図10に示した動作フローはMPU40のプログラム動作により実行され、バックグラウンドにおいて常時動作させてある処理である。
FIG. 10 is an operation flow of data duplication processing. The operation flow shown in FIG. 10 is a process that is executed by the program operation of the
まず、ステップ500、501で、HDD18、19のパフォーマンスに余裕があるか否かを判定する。
First, in steps 500 and 501, it is determined whether or not there is a margin in the performance of the
具体的には、ステップ500で現在処理中のストリームの本数を計算し、ステップ501でその本数が2本以下か否かを判定する。パフォーマンスに余裕がない場合は、そのまま処理を終了する。 Specifically, the number of streams currently being processed is calculated in step 500, and it is determined in step 501 whether the number is 2 or less. If there is no margin in performance, the process ends.
パフォーマンスに余裕がある場合は、ステップ502、503で二重化管理テーブルメモリを検索して、データを二重化して記憶していないクラスタがあるか否かを判定する。二重化していないクラスタが存在しない場合は、そのまま処理を終了する。 If there is a margin in performance, the duplex management table memory is searched in steps 502 and 503 to determine whether there is a cluster in which data is duplicated and not stored. If there is no non-redundant cluster, the process is terminated as it is.
二重化していないクラスタが存在する場合は、ステップ504で当該クラスタのデータを、他方のHDDの同一番号のクラスタにコピーする。二重化管理テーブルメモリ45の値が「01b」であれば、HDD18からHDD19へ、「10b」であればHDD19からHDD18へコピーを行う。
If there is a non-redundant cluster, in step 504, the cluster data is copied to the cluster with the same number on the other HDD. If the value of the duplex
そして、ステップ505で、二重化管理テーブルメモリ45の対応するクラスタの部分を「11b」に更新する。以上の処理をステップ500から繰り返し実行する。
In step 505, the corresponding cluster portion of the duplex
なお、ストリームファイルを削除する場合についての動作フローは特に図示しないが、当該ストリームファイルのデータを記憶しているクラスタのFAT値を「未使用クラスタ」に更新すればよい。また、二重化管理テーブルメモリ45の対応するクラスタの部分を「00b」に更新すればよい。すなわち個々のクラスタ自身の記憶データを書き換えるのではなく、FATおよび二重化管理テーブルの更新だけで事足りる。
Although the operation flow for deleting a stream file is not particularly shown, the FAT value of the cluster storing the data of the stream file may be updated to “unused cluster”. Further, the corresponding cluster portion of the duplex
以上説明してきたように、本実施形態では
a)同時に取り扱うストリーム数が所定値以下(3本以下)の場合は、HDD18、19に同一のデータを二重化(ミラーリング)して記憶する。
b)同時に取り扱うストリーム数が所定値を越えた(3本超)場合は、二重化記憶を取りやめてHDD18、19とで異なるストリームを記憶(記録・再生)する。
c)同時に取り扱うストリーム数が所定値以下(2本以下)の場合に、二重化記憶されていないデータの二重化処理をバックグラウンドで行う。
As described above, in this embodiment, a) when the number of streams handled simultaneously is equal to or less than a predetermined value (three or less), the same data is duplicated (mirrored) and stored in the
b) When the number of simultaneously handled streams exceeds a predetermined value (more than 3), the duplex storage is canceled and different streams are stored (recorded / reproduced) in the
c) When the number of streams handled at the same time is equal to or less than a predetermined value (two or less), duplex processing of data that is not duplexed and stored is performed in the background.
上記のようにしたことでデータの信頼性を向上させつつ、動画データ等のリアルタイム性を要求されるデータを高速に記憶するデータ記憶装置を、従来技術より少数(本実施形態においては2個)のディスクドライブでもって実現することができる。 As described above, there are fewer data storage devices (two in this embodiment) than the conventional technology that store data that requires real-time performance such as moving image data at high speed while improving data reliability. It can be realized with a disk drive.
なお、本実施形態においては、HDD18、19の実効データ転送レートを約150Mbps、個々のストリームのデータ転送レートをSXGAサイズ、MotionJPEG(30fps、1/20圧縮)の動画として約50Mbpsを前提とする。その前提の上で、1個当りのHDDが同時取り扱うことのできるストリーム数を3本(データ記憶装置全体としては6本)として説明を行った。但し、これはあくまで一例であり、使用するHDDの特性や取り扱うストリームのデータ符号化形式、画像サイズ、フレームレートなどで適宜変更可能であることはいうまでもない。
In the present embodiment, it is assumed that the effective data transfer rate of the
また、図6、7では、ストリームの読み書きを実行する度にHDD上のFAT領域およびディレクトリエントリ領域へのアクセスを行う動作フローとなっている。但し、FATおよびディレクトリエントリの内容をRAM12上のキャッシュ領域にキャッシュしておき、以後FATおよびディレクトリエントリへのアクセスは当該RAM12上のキャッシュ領域で行うようにしてもよい。
6 and 7 show an operation flow for accessing the FAT area and the directory entry area on the HDD every time the stream is read and written. However, the contents of the FAT and directory entry may be cached in the cache area on the
このことにより、HDD上のFAT領域およびディレクトリエントリ領域へのアクセス動作が省略され、結果としてより高速にストリームの記憶動作を実行させることができるようになる。 As a result, the access operation to the FAT area and the directory entry area on the HDD is omitted, and as a result, the stream storage operation can be executed at a higher speed.
なお、図9のステップS403及びS404、図10のステップS500、S501は、本発明のストリーム数判定手段の一処理例となる処理である。ステップS406及びS409は、本発明の第一の動作モードの一例となる処理である。ステップS411〜413は、本発明の第二の動作モードの一例となる処理である。ステップS404からS405以降への処理とステップS404からS410以降への処理間における制御処理は、本発明の記憶動作制御手段の一制御例となる処理である。二重化管理テーブルメモリ45は、本発明のデータ多重化管理記憶手段の一適用例となる構成である。図10のステップS504は、本発明のデータ多重化処理手段の一処理例となる処理である。
Note that steps S403 and S404 in FIG. 9 and steps S500 and S501 in FIG. 10 are processes that are one example of processing of the stream number determination means of the present invention. Steps S406 and S409 are processing as an example of the first operation mode of the present invention. Steps S411 to 413 are processing as an example of the second operation mode of the present invention. The control process between the process from step S404 to S405 and the subsequent process and the process from step S404 to S410 and subsequent process is a process that is one control example of the storage operation control means of the present invention. The duplex
(第2の実施形態)
上記実施形態では、同一のデータ転送レートを持つ複数のストリームを記憶する場合を想定している。しかしながら、この種のデータ記憶装置においては、様々なデータ転送レート(圧縮率が異なる、符号化形式が異なる、画像サイズが異なる、フレームレートが異なる等)のストリームを複数本同時に取り扱うことも十分に考えられる。
(Second Embodiment)
In the above embodiment, it is assumed that a plurality of streams having the same data transfer rate are stored. However, this type of data storage device can handle multiple streams of various data transfer rates (different compression rates, different encoding formats, different image sizes, different frame rates, etc.) simultaneously. Conceivable.
そのような場合には、取り扱っているストリームの本数にだけ着目したのでは都合がよくない。本実施形態ではこの点に対処した。 In such a case, it is not convenient to focus only on the number of streams handled. This embodiment has coped with this point.
図11に本実施形態でのトランザクションコマンドのフォーマットを示す。図11からも明らかなように、ヘッダ部が3バイトに拡張されている。3バイト目はデータ転送レートの係数を表す。 FIG. 11 shows a transaction command format in this embodiment. As is clear from FIG. 11, the header part is extended to 3 bytes. The third byte represents a data transfer rate coefficient.
すなわち、1Mbpsを単位として、ストリームが必要とするデータ転送レートの係数をここに設定する。これにより、MPU40は、個々のストリームが必要とするデータ転送レートを「Mbps」単位で知ることができる。
That is, the coefficient of the data transfer rate required by the stream is set here in units of 1 Mbps. Thereby, the
CPU10は、許容される範囲内において複数のストリームに関するトランザクションコマンドを発行してよいが、本実施形態では個々のストリームが必要とするデータ転送レートの合計が250Mbpsを越えない範囲内に制限される。
The
図12に本実施形態でのHDD18、19への読み書き動作処理の動作フローを示す。本動作フローは第1の実施形態での図9で説明した動作フローに相当する。図12中のステップ400〜402、405〜414は図9と同一であるので説明は割愛する。
FIG. 12 shows an operation flow of read / write operation processing to the
ステップ403'で現在処理中のストリームの、合計のデータ転送レートを計算する。合計のデータ転送レートが100Mbps以下であった場合は、ステップ405からの処理を実行する。合計のデータ転送レートが100Mbps超であった場合は、ステップ409からの処理を実行する。 In step 403 ′, the total data transfer rate of the stream currently being processed is calculated. If the total data transfer rate is 100 Mbps or less, the processing from step 405 is executed. If the total data transfer rate exceeds 100 Mbps, the processing from step 409 is executed.
なお、ステップ412、413では、個々のドライブが担当するストリームの合計データ転送レートが、全体の合計データ転送レートの略1/2となるようにドライブの選択を分散させる。 In steps 412, 413, the drive selection is distributed so that the total data transfer rate of the streams handled by the individual drives is approximately ½ of the total data transfer rate.
この処理により、HDD1個あたりが担当するデータ転送レートの合計を略100〜150Mbps以下とすることができる。 With this process, the total data transfer rate for each HDD can be reduced to approximately 100 to 150 Mbps or less.
ところで、HDDでは同時に取り扱うストリームの本数が増えると、ヘッドのシーク時間やディスクプラッタの回転待ち時間が増大して、実効データ転送レートは低下する。 By the way, when the number of streams handled simultaneously in the HDD increases, the seek time of the head and the rotation waiting time of the disk platter increase, and the effective data transfer rate decreases.
そこで、単に個々のストリームのデータ転送レートを合計するのではなく、ストリームの本数に制限を設けるとよい結果が得られる。又は、ストリームの本数に応じて合計のデータ転送レートに補正係数を掛け、必要とするデータ転送レートを多めに計算するとよい結果が得られる。 Therefore, a good result can be obtained by limiting the number of streams rather than simply summing up the data transfer rates of individual streams. Alternatively, a good result can be obtained by multiplying the total data transfer rate by the correction coefficient in accordance with the number of streams and calculating a larger data transfer rate.
図13に本実施形態でのデータの二重化処理の動作フローを示す。本動作フローは第1の実施形態での図10で説明した動作フローに相当する。図中ステップ502〜505は図10と同一であるので説明は割愛する。 FIG. 13 shows an operation flow of data duplication processing in this embodiment. This operation flow corresponds to the operation flow described in FIG. 10 in the first embodiment. Steps 502 to 505 in the figure are the same as those in FIG.
ステップ500'で現在処理中のストリームの、合計のデータ転送レートを計算する。ステップ501'で、合計のデータ転送レートが50Mbps超であってパフォーマンスに余裕がない場合はそのまま処理を終了し、50Mbps以下であってパフォーマンスに余裕がある場合は、ステップ502からの処理を実行する。 In step 500 ′, the total data transfer rate of the stream currently being processed is calculated. If it is determined in step 501 ′ that the total data transfer rate exceeds 50 Mbps and there is no performance margin, the processing ends. If it is 50 Mbps or less and there is margin in performance, processing from step 502 is executed. .
以上のように、本実施形態では、同時に取り扱うストリームの合計のデータ転送レートに基づいて、HDD18、19に同一のデータを二重化(ミラーリング)して記憶するのか、二重化記憶を取りやめてHDD18、19とで異なるストリームを記憶(記録・再生)するのかを決定するようにした。
As described above, in the present embodiment, based on the total data transfer rate of simultaneously handled streams, the same data is stored in the
従って、様々なデータ転送レートのストリームを複数本同時に取り扱うデータ記憶装置においても、本発明を良好に実施することができる。 Therefore, the present invention can be satisfactorily implemented even in a data storage device that handles a plurality of streams of various data transfer rates simultaneously.
なお、図12のステップS403´及びS404´、図13のステップS500´、S501´は、本発明の合計データ転送レート判定手段の一処理例となる処理である。ステップS406及びS409は、本発明の第一の動作モードの一例となる処理である。ステップS411〜413は、本発明の第二の動作モードの一例となる処理である。ステップS404からS405以降への処理とステップS404からS410以降への処理間における制御処理は、本発明の記憶動作制御手段の一制御例となる処理である。二重化管理テーブルメモリ45は、本発明のデータ多重化管理記憶手段の一適用例となる構成である。図13のステップS504は、本発明のデータ多重化処理手段の一処理例となる処理である。
Note that steps S403 ′ and S404 ′ in FIG. 12, and steps S500 ′ and S501 ′ in FIG. Steps S406 and S409 are processing as an example of the first operation mode of the present invention. Steps S411 to 413 are processing as an example of the second operation mode of the present invention. The control process between the process from step S404 to S405 and the subsequent process and the process from step S404 to S410 and subsequent process is a process that is one control example of the storage operation control means of the present invention. The duplex
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体をシステム或いは装置に供給し、そのシステム等のコンピュータが記憶媒体からプログラムコードを読み出し実行することによっても達成される。 Another object of the present invention is to supply a storage medium storing software program codes for realizing the functions of the above-described embodiments to a system or apparatus, and a computer such as the system reads and executes the program codes from the storage medium. Is also achieved.
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。 In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the program code itself and the storage medium storing the program code constitute the present invention.
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。 As a storage medium for supplying the program code, for example, a flexible disk, a hard disk, an optical disk, a magneto-optical disk, a CD-ROM, a CD-R, a magnetic tape, a nonvolatile memory card, a ROM, or the like can be used.
また、コンピュータが読み出したプログラムコードの指示に基づき、コンピュータ上で稼動しているOS等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。 In addition, the case where the functions of the above-described embodiment are realized by performing part or all of the actual processing by an OS or the like running on the computer based on the instruction of the program code read by the computer. It is.
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに接続された機能拡張ユニット等に備わるメモリに書込まれた後、そのプログラムコードの指示に基づきCPU等が実際の処理を行い、前述した実施形態の機能が実現される場合も含まれる。 Further, after the program code read from the storage medium is written in a memory provided in a function expansion unit connected to the computer, the CPU or the like performs actual processing based on the instruction of the program code, and the above-described processing is performed. The case where the functions of the embodiment are realized is also included.
10 CPU
11 ROM
12 RAM
13 NIC(ネットワークコントローラ)
14 外部機器接続インタフェース
15 デコーダ回路
16 ディスクコントローラ
17 グラフィック・サウンドコントローラ
18、19 HDD(ハードディスクドライブ)
20 操作パネル
30 データ記憶装置
31 映像機器
32 モニタ装置
10 CPU
11 ROM
12 RAM
13 NIC (network controller)
14 External
20
Claims (2)
読み書きを要求されているストリーム数を判定するストリーム数判定手段と、
書き込み時は上記複数個の記憶媒体に同一のデータを書き込み、読み込み時は上記複数個の記憶媒体のいずれかからデータを読み込む第一の動作モードと、読み書きを要求されているストリーム全体を、個々の本数が上記記憶媒体1個当りの許容ストリーム本数を越えないようにn分割して、それぞれを上記複数個の記憶媒体に分散して処理する第二の動作モードとを有し、上記ストリーム数判定手段で得られた判定結果に基づいて、上記第一の動作モードと上記第二の動作モードとの何れかで記憶動作を行う記憶動作制御手段と、
上記複数個の記憶媒体にデータが多重化(n重化)されて書き込まれたか否かを記憶するデータ多重化管理記憶手段と、
上記ストリーム数判定手段で得られた判定結果が所定値以下である場合に、上記データ多重化管理記憶手段の記憶結果に基づいて、上記複数の記憶媒体にデータを多重化(n重化)して書き込むデータ多重化処理手段とを有することを特徴とするデータ記憶装置。 A plurality (n) of storage media;
Stream number determination means for determining the number of streams for which reading and writing are requested;
When writing, the same data is written to the plurality of storage media, and when reading, the first operation mode for reading data from any of the plurality of storage media and the entire stream for which reading / writing is requested The number of streams is divided into n so that the number of streams does not exceed the allowable number of streams per storage medium, and each is distributed to the plurality of storage media for processing. Based on the determination result obtained by the determination means, storage operation control means for performing a storage operation in either the first operation mode or the second operation mode;
Data multiplexing management storage means for storing whether or not data is multiplexed (n multiplexed) and written to the plurality of storage media;
When the determination result obtained by the number-of-streams determination unit is equal to or less than a predetermined value, data is multiplexed (n-multiplexed) on the plurality of storage media based on the storage result of the data multiplexing management storage unit. And a data multiplexing processing means for writing the data.
読み書きを要求されているストリーム全体の合計データ転送レートを判定する合計データ転送レート判定手段と、
書き込み時は上記複数個の記憶媒体に同一のデータを書き込み、読み込み時は上記複数個の記憶媒体のいずれかからデータを読み込む第一の動作モードと、読み書きを要求されているストリーム全体を、個々のデータ転送レートの合計が上記記憶媒体1個当りの許容データ転送レートを越え得ないようにn分割して、それぞれを上記複数個の記憶媒体に分散して処理する第二の動作モードとを有し、上記合計データ転送レート判定手段で得られた判定結果に基づいて、上記第一の動作モードと上記第二の動作モードとの何れかで記憶動作を行う記憶動作制御手段と、
上記複数個の記憶媒体にデータが多重化(n重化)されて書き込まれたか否かを記憶するデータ多重化管理記憶手段と、
上記合計データ転送レート判定手段で得られた判定結果が所定値以下である場合に、上記データ多重化管理記憶手段の記憶結果に基づいて、上記複数の記憶媒体にデータを多重化(n重化)して書き込むデータ多重化処理手段とを有することを特徴とするデータ記憶装置。 A plurality (n) of storage media;
Total data transfer rate determination means for determining the total data transfer rate of the entire stream for which reading and writing are requested;
When writing, the same data is written to the plurality of storage media, and when reading, the first operation mode for reading data from any of the plurality of storage media and the entire stream for which reading / writing is requested A second operation mode in which the total of the data transfer rates is divided into n so that the total data transfer rate cannot exceed the allowable data transfer rate per storage medium, and each is distributed to the plurality of storage media for processing. Storage operation control means for performing a storage operation in either the first operation mode or the second operation mode based on the determination result obtained by the total data transfer rate determination means;
Data multiplexing management storage means for storing whether data is multiplexed (n-multiplexed) and written to the plurality of storage media;
When the determination result obtained by the total data transfer rate determination means is less than or equal to a predetermined value, data is multiplexed (n-duplexed) on the plurality of storage media based on the storage result of the data multiplexing management storage means And a data multiplexing processing means for writing.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006343260A JP2008158572A (en) | 2006-12-20 | 2006-12-20 | Data storage device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006343260A JP2008158572A (en) | 2006-12-20 | 2006-12-20 | Data storage device |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2008158572A true JP2008158572A (en) | 2008-07-10 |
Family
ID=39659447
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2006343260A Pending JP2008158572A (en) | 2006-12-20 | 2006-12-20 | Data storage device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2008158572A (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010072888A (en) * | 2008-09-18 | 2010-04-02 | Nec Engineering Ltd | Dma transfer control system |
| JP2016035721A (en) * | 2014-08-05 | 2016-03-17 | Necエンジニアリング株式会社 | Usb transfer device, usb transfer system, and usb transfer method |
-
2006
- 2006-12-20 JP JP2006343260A patent/JP2008158572A/en active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010072888A (en) * | 2008-09-18 | 2010-04-02 | Nec Engineering Ltd | Dma transfer control system |
| JP2016035721A (en) * | 2014-08-05 | 2016-03-17 | Necエンジニアリング株式会社 | Usb transfer device, usb transfer system, and usb transfer method |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8108597B2 (en) | Storage control method and system for performing backup and/or restoration | |
| JP4992835B2 (en) | Disk storage device and program | |
| JP2007094994A (en) | RAID system and rebuild / copyback processing method thereof | |
| JP2005063441A (en) | Hard disk drive controller for writing to hard disk drive using 4K block size and hard disk drive using the same | |
| US20120221809A1 (en) | Storage apparatus and data processing method of the same | |
| JP3568110B2 (en) | Cache memory control method, computer system, hard disk drive, and hard disk controller | |
| WO2017162174A1 (en) | Storage system | |
| JPH07281840A (en) | Dual disk recording device | |
| US8112583B2 (en) | Data recording for a hard drive in response to commands | |
| CN101078972B (en) | Data storage device and data access method | |
| JP6944117B2 (en) | Information processing device, transfer control method and transfer control program | |
| JP4324993B2 (en) | Data transfer method and apparatus | |
| JPH11212728A (en) | External storage subsystem | |
| JP2008158572A (en) | Data storage device | |
| CN100583272C (en) | Recording and reproducing device and recording method | |
| US6496311B1 (en) | Data recording/reproducing unit, data recording method, data reproducing method, data recording/reproducing method, hard disk controller, and AV-data recording/reproducing method | |
| JP2003006137A (en) | Storage access system | |
| JPH09305324A (en) | Mirror disk system | |
| JP2006134026A (en) | Disk array device and RAID level setting method | |
| JP4984677B2 (en) | Information processing device | |
| JP4563314B2 (en) | Storage system control device, storage system control program, and storage system control method | |
| JP2005346426A (en) | Data sharing disk device | |
| JP3376316B2 (en) | Disk array device, high-speed communication method used therefor, and recording medium recording control program therefor | |
| JP3555871B2 (en) | Disk array device | |
| JP2006039756A (en) | Medium storage device, cache segment switching method for medium storage device, and medium storage system |