説明

データ記録装置及びFIFO機能実現プログラム

【課題】安価に実現できる装置で、連続的に供給されるデータを長時間安定して記録できるようにする。
【解決手段】汎用のパソコンの拡張バス22に、FIFOメモリを有する入力バッファ回路14を追加する。システム・メモリ20をFIFOとして機能させるマルチスレッドのソフトウェアを実行することで、入力バッファ回路14からの入力データはシステム・メモリ20に書き込まれる処理をされながら、これとは非同期にシステム・メモリ20からハードディスク24へ書き込み処理される。ハードディスク24へのデータ書き込み速度は変動し、入力データのデータ転送速度を下回ることがあるが、入力バッファ回路14のハードウェアFIFOと、システム・メモリ20によるソフトウェアFIFOの組み合わせで、ハードディスクの書き込み速度低下時も入力データのオーバーランが起こらず、安定した長時間データ記録が可能になる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、入力データを連続して記録するデータ記録に関し、特に汎用のパソコンを用いた高速且つ安定したデータ記録を実現するデータ記録装置及びこれを実現するためのプログラムに関する。
【背景技術】
【0002】
電子回路や携帯電話で使用される無線電波などの信号特性を調べるためには、オシロスコープやスペクトラムなどの測定器が使用される。現在では、信号をデジタル化し、そのデジタル・データを特性の分析に使用することが広く行われている。測定器本体も記録手段を有してはいるが、長時間データを記録したい場合には、測定器に接続した大容量の外部データ記録装置を利用することも行われている。
【0003】
図1は、パソコンを用いたデータ記録装置の構成例を示すブロック図である。これは、ハードウェア的には、汎用のパソコンに拡張カードである入力バッファ回路14を追加したものである。被測定対象10からの被測定信号は、ここではスペクトラム・アナライザ12で取り込まれ、時間領域のデジタル・データとして、パソコン28に供給される。即ち、この例では、スペクトラム・アナライザ12がデータ発生源である。パソコン28は、ハードディスク24に記憶されたソフトウェア(プログラム)を実行することで、データ記録装置として機能する。
【0004】
パソコン28の拡張バス22には、拡張カードである入力バッファ回路14が挿入され、これにスペクトラム・アナライザ12からのデジタル入力データが、LVDS(低電圧差動伝送:Low Voltage Differential Signaling)を介して供給される。LVDSでは、200MB(メガ・バイト)毎秒程度までのデータ転送速度が得られる。入力バッファ回路14には、IC(ハードウェア)として実現されたFIFO(先入れ先出し)メモリが実装されている。入力バッファ回路14には、例えば米国ジェネラル・スタンダーズ社製HPDI32型が使用され、FIFOメモリの容量は、ここでは入手可能であった512kB(キロ・バイト)の例を示す。
【0005】
パソコン28は、入力バッファ回路14の他に、CPU16、システム・メモリ(RAM)20、ハードディスク24及び26を有する。これらは、拡張バス22によってデータ転送可能に接続される。CPU16とシステム・メモリ20は、外部バス18でも接続されている。更に図示しないが、キーボード、マウス、表示装置も必要に応じて用意される。拡張バス22は、例えば、64ビット(100MHz)のPCI−Expressバスであり、最大データ転送速度は800MB毎秒である。スペクトラム・アナライザ12からは、例えば、110MB毎秒でデジタル・データが出力されるが、PCI−Expressバスであれば、入力バッファ回路14からシステム・メモリ20、システム・メモリ20からハードディスク24という2つのDMA転送に加えて、他の処理を行っても更に余裕がある。なお、従来の32ビット(33MHz)PCIバスでは、転送レートは最大で132MB毎秒である。
【0006】
ハードディスク26には、OS(基本ソフトウェア)がインストールされており、パソコン全体の基本的な制御を行う。ハードディスク24は、実際は複数のハードディスクから構成されるが、RAID(Redundant Arrays of Inexpensive Disks)を用いることで、1台のハードディスクとして扱うことが可能になっている。これによると、複数のドライブにデータを分けて記録していくため、通常の接続より記録速度を速くできる利点もある。なお、CPU16には、例えば米国インテル社製のものを使用する。OSには、例えば米国マイクロソフト社のWindows(登録商標)を使用する。
【0007】
図2は、図1に示したデータ記録装置を逐次リード・ライト方式で機能させた場合の機能ブロック図である。この場合、入力バッファ回路14のFIFOメモリに一時的に蓄えられた入力データは、予め定めた所定サイズ毎に読み出され(読み出し処理30)、システム・メモリ中に記憶され、ハードディスク24に書き込まれる(書き込み処理34)という処理を順次繰り返す。
【0008】
スペクトラム・アナライザ12からは、例えば、110MB(メガ・バイト)毎秒のデジタル・データが出力されるが、システムの入力バッファ回路14のFIFOメモリの容量は512kバイトなので、この場合、約5ミリ秒で一杯になってしまう。このとき、図2に示す逐次リード・ライト方式であっても、ハードディスク24への書き込み速度が110MB(メガ・バイト)毎秒以上を維持し続けていられれば、FIFOメモリにおいて入力データが保持しきれず溢れてしまうことはない。しかし、上述の如き一般に使用されているOSに制御されたハードディスク24では、平均すれば、書き込み速度が110MB毎秒以上を維持できる場合であっても、OSの制御の関係から書き込み速度に変動があり、一時的に110MB毎秒よりも低下することがある。この一時的なハードディスク24の書き込み速度低下時には、入力バッファ回路14でデータを保持しきれず、溢れてしまう事態(オーバーラン)が発生する。
【0009】
図3は、図1に示したデータ記録装置をメモリ記憶方式で機能させた場合の機能ブロック図である。これは、パソコン28のシステム・メモリ20に、予め比較的大きいデータ記録領域を確保しておき、このデータ記録領域が一杯になるまで、入力バッファ回路14から入力データを読み込んでデータ記録領域に書き込んでいく(読み出し処理36)。データ記録領域が一杯になったら、入力データのデータ記録領域への書き込みを終了して、データ記録領域から入力データを読み出して、ハードディスク24に書き込む(書き込み処理40)。この方式は、データ読み込み時にディスク・アクセスを行わないので、高速なデータ収集が可能だが、データ記録時間は確保できるパソコン28上のシステム・メモリ20の容量で制限されるため、長時間のデータ記録はできない。
【0010】
なお、RAIDを用いたハードディスクを使用したシステムにおいて、FIFOやデータ圧縮を利用してデータを高速に転送する技術については、例えば、米国特許出願公開第2001/0052038号明細書に開示されている。
【特許文献1】米国特許出願公開第2001/0052038号明細書
【発明の開示】
【発明が解決しようとする課題】
【0011】
上述のように、逐次リード・ライト方式では、一時的にディスクの書き込み速度が落ちると、入力バッファ回路14のFIFOメモリからデータが溢れてしまう事態が発生し、安定した高速データ転送速度を確保するのが困難である。このとき、もし大容量のFIFOメモリを含む入力バッファ回路14を用いると、動作は安定するがコストが高くなる。一方、パソコンのシステム・メモリにデータを記憶させ、データ収集が終了してからハードディスクへ書き込む方式では、安定したデータの読み込みができるが、記録可能なデータのサイズがメモリ容量によって制限されるため、長時間のデータ記録ができない。もし、データ記録装置がオーバーランとなりそうな場合に、データ記録装置からウエイト(Wait)信号をデータ発生源に送信し、データ発生源からのデータ発生を一時的に停止する機構があれば、オーバーランを回避できる。しかし、そうした機構がなく、データ発生源からはひたすらデータが供給され続けるようになっている場合も多い。
【0012】
そこで本発明は、これらを組合せ、パソコンを用いて、安価に大容量で安定動作のFIFO機能を実現し、これによって長時間のデータ記録を実現しようとするものである。
【課題を解決するための手段】
【0013】
本発明は、汎用のパソコンを用いて入力データを連続的に安定して記録可能なデータ記録装置を実現する。本発明によるデータ記録装置は、CPUと、連続的に入力される入力データを受けて一時的にバッファするハードウェアFIFOメモリを有する入力バッファ手段と、FIFOメモリの容量よりも大きな容量を有するシステム・メモリと、システム・メモリよりも大きい容量を有する大容量記憶手段と、入力データの入力速度の2倍以上のデータ転送速度を有し、CPU、入力バッファ手段、システム・メモリ及び大容量記憶手段を接続し、これらの間のデータ転送を可能にするバスとを具えており、入力バッファ手段からの入力データをシステム・メモリに順次書き込ませると共に、システム・メモリに書き込まれた入力データを順次読み出して大容量記憶手段に書き込ませる制御をCPUに実行させることを特徴としている。
【0014】
このとき、実行される処理は、マルチスレッドが好ましく、これによって入力バッファ手段からの入力データを読み込んでシステム・メモリに順次書き込ませる処理と、システム・メモリから入力データを順次読み出す処理が非同期で実行される。また、入力データの読み出し処理において、入力データの圧縮処理を行えば、更に高速な処理が行える。
【0015】
本発明は、別の観点から見れば、汎用のパソコンで入力データを連続的に安定して記録可能なデータ記録装置を実現するFIFO機能実現プログラムである。これは、CPUと、連続的に入力される入力データを受けて一時的にバッファするハードウェアFIFOメモリを有する入力バッファ手段と、FIFOメモリの容量よりも大きな容量を有するシステム・メモリと、システム・メモリよりも大きい容量を有する大容量記憶手段と、入力データの入力速度の2倍以上のデータ転送速度を有し、CPU、入力バッファ手段、システム・メモリ及び大容量記憶手段を接続し、これらの間のデータ転送を可能にするバスとを具えるデータ記録装置にインストールされる。そして、このプログラムは、入力バッファ手段からの入力データをシステム・メモリに順次書き込ませると共に、システム・メモリに書き込まれた入力データを順次読み出して大容量記憶手段に書き込ませる制御をCPUに実行させることにより、システム・メモリをFIFOとして機能させる。
【0016】
本発明によれば、ハードウェアによるFIFOと、パソコンのシステム・メモリをソフトウェアによってFIFOとして機能させたものとを組み合わせることによって、安価でありながら、高速な入力データを連続的に安定して記録可能となる。システム・メモリとして利用されるRAMは、他の種類のメモリと比較すれば安価であるので、この利点を享受できる。
【発明を実施するための最良の形態】
【0017】
図4は、本発明によるデータ記録装置の一例の機能ブロック図である。このデータ記録装置は、図1に示した汎用のパソコンに拡張カードとして高速の入力バッファ回路14を追加したもので実現される。上述と同様、入力バッファ回路14のFIFOメモリの容量は、512kBである。また、スペクトラム・アナライザ(データ発生源)12からは、例えば、110MB毎秒の速度でデジタル・データが出力される。このスペクトラム・アナライザ12には、データ記録装置がオーバーランしそうなときに、データ記録装置からのウエイト(Wait)信号を受けて、一時的にデータ出力を停止する又はスペクトラム・アナライザ12本体内のメモリにデータを一時的に保持するという機能はないものとする。
【0018】
本発明の実施例では、パソコン28のシステム・メモリ20が有する2GB(ギガ・バイト)の容量のうちの1GBがFIFO領域として割り当てられる。1GBであるから、入力バッファ回路14のFIFOメモリ容量512kBの2000倍の容量である。これは、システム・メモリ20には、一般にRAM(ランダム・アクセス・メモリ)が使用されるが、価格の低下によって、ギガ単位の容量であっても、比較的安価に入手可能になったことに着目したものである。
【0019】
ハードディスク24には、システム・メモリ20の一部領域をFIFOとして機能させるためのアプリケーション・ソフトウェア46がインストールされている。このソフトウェアによる処理は、マルチスレッドであり、入力データを読み出して、FIFO領域に書き込む処理(読み出しスレッド42)と、入力データのハードディスク24への書き込み処理(書き込みスレッド44)が非同期で実行される。読み出しスレッドはその優先度をできるだけ高くすることで、入力バッファ回路14のFIFOのオーバーラン(データが溢れること)の発生確率を下げることができる。読み出しスレッドでデータ圧縮処理をすれば、転送するデータ量が見かけ上減少するので、更に高速な処理が可能になる。ハードディスク24の容量は、図1に示す例では、410GBであるから、システム・メモリ20のFIFO領域の容量の410倍という大容量であり、長時間のデータ記録が可能である。
【0020】
入力バッファ回路14からシステム・メモリ20へのデータ転送、システム・メモリ20からハードディスク24へのデータ転送は、CPU16の制御の下で、DMA(Direct Memory Access)方式でCPU16を介さずに直接行われる。PCI−Expressバスであれば、800MB毎秒のデータ転送速度があるので、110MB毎秒のデータ転送速度でこれら2つのデータ転送を行っても十分な余裕がある。
【0021】
ハードディスク24のデータ書き込み速度は、平均すれば入力データのデータ転送速度よりも速い場合でも、OSの制御の関係で、一時的には入力データのデータ転送速度より低下することがある。しかし、システム・メモリ20が、本発明によるFIFO機能実現ソフトウェア(プログラム)に従ってFIFOとして機能することで、ハードディスク24のデータ書き込み速度が一時的に入力データのデータ転送速度より低下しても、その間はシステム・メモリ20がデータを保持するので、入力データのオーバーランの発生が防止される。
【0022】
また、本発明では、ハードディスク24の書き込みの平均速度が、入力データの読み込み速度より遅い場合であっても、その差分の速度で入力データがシステム・メモリ20のFIFO領域に溜まっていき、一杯になるまでは連続して入力データの読み込みが可能である。このため、ハードディスク24の書き込み速度よりも、入力データの転送速度が速い場合に用いた場合であっても、すべてのデータを一旦システム・メモリに書き込む図3に示した従来のメモリ記憶方式よりも長い時間のデータ記録が可能になる。
【0023】
なお、CPUには、デュアルコアを用いれば、シングルコアのものと比較して、マルチスレッドの処理を効率よく行える。ただし、シングルコアでも本発明は実施可能である。図1のCPU16には、3.6GHz動作の2つのコアを有するものの例を示す。
【0024】
システム・メモリ20をFIFOとして機能させる他に、RAMを外部メモリとして拡張バス上に設け、これをFIFOとして機能させることも考えられる。しかし、この場合、入力データは、一旦システム・メモリ20に書き込まれた後、外部メモリに書き込まれることになるので、データ転送速度の低下につながる。そのため、システム・メモリ20をFIFOとして機能させた方が合理的である。
【産業上の利用可能性】
【0025】
本発明は、汎用のパソコンに比較的安価なハードウェアによるFIFO機能の拡張カードを追加し、加えてFIFO機能を実現するソフトウェアをインストールしてシステム・メモリをFIFOとして機能させ、これらハードウェアFIFO及びソフトウェアFIFOの組み合わせによって、比較的安価でありながら、高速の入力データを安定的に連続して記録できる。よって、連続的に長時間のデータ記録が必要な用途に幅広く利用できる。
【図面の簡単な説明】
【0026】
【図1】パソコンをベースにしてデータ記録装置を実現するシステムのブロック図である。
【図2】逐次リード・ライト方式でデータ記録装置を実現する場合の機能ブロック図である。
【図3】メモリ記憶方式でデータ記録装置を実現する場合の機能ブロック図である。
【図4】本発明によってデータ記録装置を実現する場合の一例の機能ブロック図である。
【符号の説明】
【0027】
10 被測定対象
12 スペクトラム・アナライザ(データ発生源)
14 入力バッファ回路(ハードウェアFIFO)
16 CPU
18 外部バス
20 システム・メモリ
22 拡張バス
24 ハードディスク(システム・ディスク)
26 ハードディスク(データ記録用ディスク)
28 パソコン
30 データ読み出し処理
34 データ書き込み処理
36 データ読み出し処理
40 データ書き込み処理
42 データ読み出しスレッド
44 データ書き込みスレッド
46 FIFO機能実現ソフトウェア(プログラム)

【特許請求の範囲】
【請求項1】
入力データを連続的に記録するデータ記録装置であって、
CPUと、
連続的に入力される上記入力データを受けて一時的にバッファするハードウェアFIFOメモリを有する入力バッファ手段と、
上記FIFOメモリの容量よりも大きな容量を有するシステム・メモリと、
上記システム・メモリよりも大きい容量を有する大容量記憶手段と、
上記入力データの入力速度の2倍以上のデータ転送速度を有し、上記CPU、上記入力バッファ手段、上記システム・メモリ及び上記大容量記憶手段を接続し、これらの間のデータ転送を可能にするバスとを具え、
上記入力バッファ手段からの上記入力データを上記システム・メモリに順次書き込ませると共に、上記システム・メモリに書き込まれた上記入力データを順次読み出して上記大容量記憶手段に書き込ませる制御を上記CPUに実行させることを特徴とするデータ記録装置。
【請求項2】
上記入力バッファ手段からの上記入力データを読み込んで上記システム・メモリに順次書き込ませる処理と、上記システム・メモリから上記入力データを順次読み出す処理が非同期で実行されることを特徴とする請求項1記載のデータ記録装置。
【請求項3】
上記入力データの読み出し処理において、更に上記入力データの圧縮処理を行うことを特徴とする請求項1又は2記載のデータ記録装置。
【請求項4】
CPUと、
連続的に入力される上記入力データを受けて一時的にバッファするハードウェアFIFOメモリを有する入力バッファ手段と、
上記FIFOメモリの容量よりも大きな容量を有するシステム・メモリと、
上記システム・メモリよりも大きい容量を有する大容量記憶手段と、
上記入力データの入力速度の2倍以上のデータ転送速度を有し、上記CPU、上記入力バッファ手段、上記システム・メモリ及び上記大容量記憶手段を接続し、これらの間のデータ転送を可能にするバスとを具えるデータ記録装置にインストールされるFIFO機能実現プログラムであって、
上記入力バッファ手段からの上記入力データを上記システム・メモリに順次書き込ませると共に、上記システム・メモリに書き込まれた上記入力データを順次読み出して上記大容量記憶手段に書き込ませる制御を上記CPUに実行させることにより、上記システム・メモリをFIFOとして機能させることを特徴とするFIFO機能実現プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2007−179496(P2007−179496A)
【公開日】平成19年7月12日(2007.7.12)
【国際特許分類】
【出願番号】特願2005−380348(P2005−380348)
【出願日】平成17年12月28日(2005.12.28)
【出願人】(000108409)日本テクトロニクス株式会社 (32)
【Fターム(参考)】