(57)【要約】【課題】  仮想メモリ方式を用いるオペレーティングシステム上で、連続した物理メモリ空間を確保し、高速なデータ転送技術を実現する。【解決手段】  物理メモリ空間１５の中に、オペレーティングシステムの仮想メモリ空間に用いる最大連続アドレス空間よりも大きな連続したアドレス空間を割り当てして参照メモリ空間を構成し、デバイスドライバ１１により、それに対して入出力バスで接続されたデバイスからＤＭＡ転送によりデータを転送する。さらに該参照メモリ空間をメモリマッピングしてオペレーティングシステム上で実行されるアプリケーション１６から参照可能にする。【選択図】 図１
2006085393.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションでデータを参照する際に、入出力バスで接続されたデバイスから高速にデータを取得するための高速データ転送方法であって、
メモリ空間割当手段が、物理メモリ空間の中に、オペレーティングシステムの仮想メモリ空間に用いる最大連続アドレス空間よりも大きな連続したアドレス空間を割り当てる参照メモリ空間割当ステップ、
ＤＭＡ(Direct Memory Access)転送手段が、該参照メモリ空間に対して入出力バスで接続されたデバイスからＤＭＡ転送によりデータを転送するＤＭＡ転送ステップ、
メモリマッピング手段が、該参照メモリ空間をメモリマッピングしてオペレーティングシステム上で実行されるアプリケーションから参照可能にするメモリマッピングステップ、
アプリケーション実行手段が、該参照メモリ空間を参照するデータ参照ステップ
の各ステップを有することを特徴とするデバイスからの高速データ転送方法。
【請求項２】
前記参照メモリ空間割り当てステップを、オペレーティングシステムの起動以前に行って、予め大きな連続したアドレス空間を確保する
請求項１に記載のデバイスからの高速データ転送方法。
【請求項３】
前記参照メモリ空間割当ステップにおいて、
オペレーティングシステムで使用するメモリ容量を、実際の搭載メモリ容量よりも小さく設定する
請求項１又は２に記載のデバイスからの高速データ転送方法。
【請求項４】
前記連続したアドレス空間のメモリ容量が２Mbyte以上である
請求項１ないし３に記載のデバイスからの高速データ転送方法。
【請求項５】
アプリケーションでデータを参照する際に、入出力バスで接続されたデバイスから高速なデータ転送が可能なデータ処理装置であって、該デバイスと、物理メモリと共に、
物理メモリ空間の中に、オペレーティングシステムの仮想メモリ空間に用いる最大連続アドレス空間よりも大きな連続したアドレス空間を割り当てる参照メモリ空間割当手段と、
該参照メモリ空間に対して入出力バスで接続されたデバイスからＤＭＡ(Direct Memory Access)転送によりデータを転送するＤＭＡ転送手段と、
該参照メモリ空間をメモリマッピングしてオペレーティングシステム上で実行されるアプリケーションから参照可能にするメモリマッピング手段と、
該参照メモリ空間を参照しながらアプリケーションを実行するアプリケーション実行手段と
を備えたことを特徴とするデータ処理装置。
【請求項６】
前記参照メモリ空間割当手段が、オペレーティングシステムの起動以前に行って、予め大きな連続したアドレス空間を確保する
請求項５に記載のデバイスからのデータ処理装置。
【請求項７】
前記参照メモリ空間割当手段が、
オペレーティングシステムで使用するメモリ容量を、実際の搭載メモリ容量よりも小さく設定する
請求項５又は６に記載のデータ処理装置。
【請求項８】
前記連続したアドレス空間のメモリ容量が２Mbyte以上である
請求項５ないし７に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ内部においてデータを転送する方法に関し、特に入出力バスで接続されたデバイスのデータをアプリケーションにおいて高速に取得する技術に関するものである。
【背景技術】
【０００２】
パーソナルコンピュータやワークステーションなどのＣＰＵ性能が向上するのに伴って、動画像の実時間処理などが行われるようになっている。その際、ハードディスクなどのデバイスに対して記録された大容量データをいかにしてアプリケーションで利用するか、その転送技術の開発が課題となっている。
【０００３】
例えば１Gbpsを超えるような超高速でデータを取得するシステムでは、現行用いられているようなオペレーティングシステム（ＯＳ）の制御下で安定動作させることは難しい。そのため、専用にメモリ、ハードディスクなどを搭載した拡張ボードを用いる方法が知られている。
このようなシステムでは、ＯＳとは切り離して動作しているため、取り込んだデータをＯＳ下で動作するアプリケーションで実時間的に処理することは不可能であり、上記した課題の解決方法としては不十分である。
【０００４】
また、デバイスからのデータをアプリケーションで用いるためには、従来の方法ではデバイス、メモリ、ＣＰＵの間のデータ転送が煩雑で、ＣＰＵに過大な負荷をかけてしまう。そのため、アプリケーションの実行に十分な処理速度が確保できず、計算機資源の活用が図られていない問題がある。
【０００５】
具体的には、従来のデータ伝送では次の２つの方法がとられていた。その１つは、図５に示すように、外部からの入力データ（３０）を、ＰＣ（パーソナルコンピュータ）本体（３１）におけるデータ取得用のデバイス（３２）に入力する。
データ取得用のデバイス（３２）には、大容量のデータ保存用メモリ（３３）を設けておき、超高速データを一旦そのメモリに保存するようにする。そして、データ取得が終了した後に、ＯＳからデータ保存用メモリ（３３）の内容を内部バス（３７）で接続されたメモリ（３５）に転送する。アプリケーションの実行処理や、このような転送処理はＣＰＵ（３４）によって行われる。内部バス（３７）ではハードディスク（３６）等も接続されている。
この方法では、１度に取得できるデータ量がデータ保存用メモリ（３３）のメモリサイズで制限される上、データ取得中にＯＳから取得データにアクセスすることができない問題がある。
【０００６】
また、別の方法では、図６に示すように、入力データ（４０）をデータ取得用のデバイス（４１）に入力し、別系統の専用バス（４２）で接続されたハードディスク（４３）に保存することも行われている。
ＰＣ本体（４４）で、ＣＰＵ（４５）等と内部バス（４６）で接続されるハードディスク（４７）とは系統上分離しており、アプリケーションで用いる場合には、一旦内部バス上のハードディスク（４７）やメモリ（４８）に転送する必要がある。
この方法ではデータ量の制限は緩和されるが、上記同様に取得データに実時間でアクセスできないため、実時間処理を行うアプリケーションでは使用することが不可能である。
【０００７】
一方、超高速なデータ取得を行わないシステムでは、実時間処理を実現するシステムは広く知られている。最も多く用いられているのが、動画系のキャプチャシステムであり、データを取得しながらディスプレイ上に表示し、データの圧縮展開を同時に行うものである。
【０００８】
このようなシステムでは図７に示すように、データ取得用デバイス（５０）から直接ＰＣ本体（５１）のメモリ（５２）へデータを転送している。通常、このときの転送はＤＭＡを用いて高速にしかもＣＰＵ（５３）に負荷を生じさせないようにしている。
【０００９】
ＤＭＡ転送は連続したアドレス空間をもつ物理メモリ（５２）に対して行われ、転送速度自体は超高速データ転送においても十分な値を示す。しかしながら、この連続したアドレス空間を持つ物理メモリという点が、データ転送上の障害となっている。
【００１０】
それは、通常のＯＳは仮想メモリ方式をとっているため、大きな連続した物理メモリ空間を確保することができない。
すなわち、仮想メモリをサポートするＯＳはアプリケーションが起動される毎に物理メモリの一部をそのアプリケーションに割り当てるため、物理メモリは使用時間とともに断片化が進んでいく。その断片化が進んだ状態でＤＭＡ転送のような物理メモリ上で大きな連続領域を必要とするアプリケーションを起動させようとした場合、メモリ確保に失敗する。
【００１１】
仮想メモリをサポートするＯＳとして、Linux（登録商標）では、物理メモリを小さなメモリ空間に分割した時の最大連続アドレス空間は２Mbyte分に設定されており、高速データ転送の際には、この小さなメモリ空間を使用して複数回のＤＭＡ転送で対応している。
【００１２】
図８には一般的なＤＭＡ転送の手順を示す。ＰＣ本体内におけるハードディスク等のデバイス（６０）はＣＰＵ上で動作しデバイスの制御に係るデバイスドライバ（６１）により、物理メモリ（６２）に対してデータを転送する。
デバイス（６０）からＤＭＡ転送が可能になった状態、例えば前のデータの読み出しが終了した場合に、ＣＰＵに対してＤＭＡ転送可能割込処理（６３）を行う。それに基づいてデバイスドライバ（６１）はＤＭＡ転送命令（６４）を発し、デバイス（６０）は物理メモリ（６２）に対して内部バスを通じて直接データを転送（６５）する。このときの転送速度が高速データ転送にも十分なことは上述した通りである。
【００１３】
ＯＳはこのように物理メモリを小さなブロックに分割することでメモリの有効活用を図っているが、大容量のデータを用いる際にはブロックの分断が転送上の障害となるのである。図８では連続する物理メモリ（６２）（６２）に対して２回のＤＭＡ転送を行う過程を示しているが、実際に高速データ転送では非常に多くの回数の割込処理（６３）、転送命令処理（６４）が必要となる。
【００１４】
ＤＭＡ転送の制御をするＯＳがそのたびに転送命令を行う必要があり、特にタスク切り替えにより負荷を増大させ、超高速データ転送では大変効率が悪くなる。また、さらに大きな速度低下となっている原因は、連続したアドレス空間をもつ物理メモリ（６２）から通常のアプリケーション（６６）が認識できる仮想空間メモリ（６７）へのデータ転送である。
ここでは、ＤＭＡ転送が使用できず、ＣＰＵで転送を行うため、極めてＣＰＵ負荷の重い処理となっている。
【００１５】
このときＯＳはアプリケーション（６６）とデバイスドライバ（６１）のタスクを高速に切り替える必要が生じ、他にデータ処理のような負荷の重い処理を同時に行った場合、このタスクの切り替えが潤滑に行われなくなりデータの一部を取りこぼしてしまう恐れがある。
【００１６】
このような問題に対応するため、デバイスからメモリへの高速な転送方法は様々に提案されており、例えば特許文献１では、ターゲットデバイスから間断なくデータを送出する方法を開示しており、ターゲットデバイスが持つバッファ容量（数）を越えるバースト長のリード要求に対しても、ウェイトを挿入せずにバースト出力を可能にすることによりバスの転送効率の改善を図っている。
しかし、この方法はデバイスにおける転送効率の低下を防ぐものであって、上記のようにＰＣ本体のメモリ中の連続する物理メモリの容量制限を回避する技術ではない。
【００１７】
【特許文献１】特開2003-132008号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
本発明は、上記従来技術の有する問題点に鑑みて創出されたものであり、仮想メモリ方式を用いるオペレーティングシステム上で、連続した物理メモリ空間を確保し、高速なデータ転送を可能にする技術を創出することを目的とする。
【課題を解決するための手段】
【００１９】
本発明は、上記の課題を解決するために、次のような高速データ転送方法を提供する。
すなわち、請求項１に記載の発明は、アプリケーションでデータを参照する際に、入出力バスで接続されたデバイスから高速にデータを取得するための高速データ転送方法を提供する。該方法は、メモリ空間割当手段が、物理メモリ空間の中に、オペレーティングシステムの仮想メモリ空間に用いる最大連続アドレス空間よりも大きな連続したアドレス空間を割り当てる参照メモリ空間割当ステップ、ＤＭＡ(Direct Memory Access)転送手段が、該参照メモリ空間に対して入出力バスで接続されたデバイスからＤＭＡ転送によりデータを転送するＤＭＡ転送ステップ、メモリマッピング手段が、該参照メモリ空間をメモリマッピングしてオペレーティングシステム上で実行されるアプリケーションから参照可能にするメモリマッピングステップ、アプリケーション実行手段が、該参照メモリ空間を参照するデータ参照ステップの各ステップを有するものである。
【００２０】
請求項２に記載の発明は、前記参照メモリ空間割り当てステップを、オペレーティングシステムの起動以前に行って、予め大きな連続したアドレス空間を確保することを特徴とする。
【００２１】
請求項３に記載の発明は、請求項１又は２に記載の発明における参照メモリ空間割当ステップにおいて、オペレーティングシステムで使用するメモリ容量を、実際の搭載メモリ容量よりも小さく設定することを特徴とするものである。
【００２２】
請求項４に記載の発明は、上記において連続したアドレス空間のメモリ容量が２Mbyte以上であることを特徴とするものである。
【００２３】
本発明は、次のようなデータ処理装置として提供することもできる。
すなわち、請求項５に記載の発明は、アプリケーションでデータを参照する際に、入出力バスで接続されたデバイスから高速なデータ転送が可能なデータ処理装置である。
該装置には、デバイス及び物理メモリと共に、物理メモリ空間の中に、オペレーティングシステムの仮想メモリ空間に用いる最大連続アドレス空間よりも大きな連続したアドレス空間を割り当てる参照メモリ空間割当手段と、該参照メモリ空間に対して入出力バスで接続されたデバイスからＤＭＡ(Direct Memory Access)転送によりデータを転送するＤＭＡ転送手段と、該参照メモリ空間をメモリマッピングしてオペレーティングシステム上で実行されるアプリケーションから参照可能にするメモリマッピング手段と、該参照メモリ空間を参照しながらアプリケーションを実行するアプリケーション実行手段とを備えている。
【００２４】
請求項６に記載の発明によれば、参照メモリ空間割り当てステップを、オペレーティングシステムの起動以前に行って、予め大きな連続したアドレス空間を確保する構成を提供することができる。
【００２５】
請求項７に記載の発明は、請求項５又は６に記載の発明における参照メモリ空間割当手段が、オペレーティングシステムで使用するメモリ容量を、実際の搭載メモリ容量よりも小さく設定することを特徴とする。
【００２６】
また、請求項８に記載の発明は、上記において連続したアドレス空間のメモリ容量が２Mbyte以上であることを特徴とする。
【発明の効果】
【００２７】
上記の手段を具備することにより、本発明は次のような効果を奏する。
すなわち、請求項１又は５に記載の方法、装置によると、ＯＳの仮想メモリ空間に用いる最大連続アドレス空間よりも大きな連続したアドレス空間に大容量のデータを高速で転送すると共に、メモリマッピングにより、アプリケーションから直接の参照を可能とすることができるので、高精細な動画像や計測データなどの実時間処理に寄与する超高速なデータ転送技術を提供する。
【００２８】
請求項２又は６に記載の方法、装置では、オペレーティングシステムの起動以前に大きな連続したアドレス空間を確保するので、オペレーティングシステムによるメモリの断片化の影響を受けずに処理することができる。
【００２９】
請求項３又は７に記載の方法、装置によると、大きな連続したアドレス空間を確保する方法として、オペレーティングシステムで用いるメモリ容量を小さくすることにより、物理メモリを強制的に不使用の状態とすることができる。
【００３０】
請求項４又は８に記載の方法、装置によると、２Mbyte以上の連続したメモリ空間を用いることにより、現状のオペレーティングシステムでは転送できない十分な高速転送を実現することができる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の実施形態を、図面に示す実施例を基に説明する。なお、実施形態は下記に限定されるものではない。
図１は本発明によるデータ転送方法の基本的な構成を示す説明図である。本構成は、公知のバスによって接続されたデバイスと、ＰＣ本体におけるメモリとの間で高速にデータ転送を行い、かつアプリケーションからの参照も可能とするものである。
【００３２】
バスとしては、ＰＣＩ（Peripheral Component Interconnect）バスが広く用いられている。なお、本発明で用いるシステムでは2048Mbps以上の転送レートが必要なためＰＣＩバスとして64bit/66MHzを使用している。
ＰＣＩバスによってデバイス（１０）と、デバイスドライバ（１１）を稼働し、及びアプリケーション（１６）を実行処理するＣＰＵ及び、物理メモリ（１５）が接続されている。
【００３３】
そして、本発明ではまず物理メモリ（１５）の中で、連続した大きなメモリ空間を確保する。
ここで、オペレーティングシステムが採用する仮想メモリ方式について簡単に説述する。仮想メモリ方式は、使用頻度の少ないメモリページの内容をディスクに退避しておき、必要な時に、ディスクからメモリにロードしてくる方式であり、物理メモリサイズを超えるような大きなプログラムでも実行できるようになる。
【００３４】
３２ビットのシステムでは４Ｇバイトまでのメモリ空間を１つのセグメントとしてアクセスでき、最初の３Ｇバイトがプロセス空間として割り当てられる。
そして、アドレスの0x0〜0xC0000000の間に、動的に生成されるプロセス空間は、実行中のプロセス毎に独立した多重仮想的な空間として生成される。
仮想メモリ方式において、仮想空間上では有効なページであっても、そのページに物理的なメモリ上のページ（物理ページ）が常に割り当てられている訳ではなく、物理メモリをマッピングする方式がとられている。
【００３５】
ＣＰＵ上で実行される各プロセスは、独立したプロセス空間を与えられる。１つのプロセス空間について、１つのメモリ管理構造(Linux（登録商標）においてはmm_struct構造体で表される)により管理されている。
有効な状態のプロセス空間は、非連続な複数の領域からなっており、それを仮想空間管理構造体（同、vm_area_struct構造体）によって連続した仮想空間として管理している。
【００３６】
１つのプロセスが利用できる有効な空間は、複数の仮想空間管理構造体の総計であり、同時にメモリ管理構造体は、プロセスの仮想空間アドレスを物理メモリアドレスに変換するテーブル（PGD、PTE領域）を管理して、仮想メモリ空間と、物理メモリ空間を変換して参照するようになっている。変換処理は、例えばＣＰＵのＭＭＵ（Memory Management Unit）によって処理される。
【００３７】
ＭＭＵは、上記のように物理的メモリをページ又はセグメントと呼ばれるブロック毎に分割して管理する。これに仮想空間アドレスに割り当てるマッピング処理によって、実メモリ容量よりも大きなメモリ空間をアプリケーションに提供でき、必要に応じてハードディスクなどの２次記憶手段にスワップする。
同時に、各アプリケーションやＯＳの仮想空間アドレスを分離することで、セキュリティを高めたり、メモリ保護を行うことに寄与している。
【００３８】
ところで、アプリケーションの実行において、外部からハイビジョン画像などの大容量データを連続して転送するような処理を行う場合、上記の仮想メモリ方式ではページ又はセグメントに分割するため、連続的な物理メモリ空間を確保することができない。
そして、仮想メモリ空間と物理メモリ空間を変換処理するために、ＣＰＵに大きな負荷が生じ、処理速度が大幅に低下する。
【００３９】
この問題を解決するために、本発明では図２に示すような構成をとり、ＣＰＵにおける転送制御の方法を改善することを提案する。
図２は本発明によるデータ処理装置の一例としての画像処理装置（２０）であり、一般的なパーソナルコンピュータ等により構成する。図示しないビデオカメラ、ビデオプレーヤ等からのビデオ画像を、必要に応じてＡＤ変換をして、ビデオキャプチャインターフェース（２１）によりＣＰＵ（２２）に入力する。
【００４０】
インターフェース（２１）、ＣＰＵ（２２）、メモリ（２３）、ハードディスク（２４）は、ＰＣＩバス（２５）により相互に接続されている。
ＣＰＵ（２２）においては、ハードウェアとして専用に配設されたＭＭＵ部（２６）と、ＯＳ処理によって機能するＤＭＡ転送制御部（２７）、画像処理等のアプリケーションを実行するアプリケーション実行部（２８）を含んでいる。
なお、ＭＭＵ部（２６）はＣＰＵ（２２）上でソフトウェアにより構成してもよい。
【００４１】
そして、本発明ではまず、ＯＳ上の設定によって、ＯＳが用いる物理的なメモリ（２３）の容量を、実際のメモリ容量よりも小さくする。例えば、２Gbyteの実容量の場合に、搭載メモリ容量を１Gbyteと設定すると、前半の１Gbyteのみが認識されて、後半の１Gbyteは未使用領域となる。
【００４２】
linux（登録商標）における実際の設定方法は、起動時の設定ファイル（grub.confやlilo.conf等）または起動オプションで実際より少なめのメモリを表記する。
例えば、例として2048Mbyte搭載のPCで1024Mbyteのみ使用する場合のgrub.confの中身を図３のように定義する。
このように設定しlinux（登録商標）を起動すると2GBの全メモリ空間(0x00000000-0x80000000)中の(0x00000000-0x40000000)までがlinux（登録商標）の管理下に入り後半の(0x40000000-0x80000000)は一切使用されないように動作させることができる。
【００４３】
さらに、linux（登録商標）には物理メモリを直接アプリケーションで読み書きできる特殊なデバイスファイル(/dev/mem ,/dev/kmem)があり図４に示すような記述で(0x40000000-0x80000000)の領域をアプリケーション側にマップ機能で提供することができる。
このような処理によって、物理メモリ空間中に、連続した１Gbyteのアドレス空間（以下、参照メモリ空間と呼ぶ）が確保される。
【００４４】
以上の設定によると、オペレーティングシステムの起動以前に大きな連続したアドレス空間を確保するので、オペレーティングシステムによるメモリの断片化の影響を受けずに高速なデータ転送を行うことができる。
【００４５】
そして、ＤＭＡ転送制御部（２７）では、該参照メモリ空間に対して、インターフェース（２１）からの転送データを、ＤＭＡ転送により直接書き込み処理する。このとき、図１に示すように、インターフェース（２１）からＤＭＡ転送可能割込（１２）が発生すると、ＤＭＡ転送制御部（２７）でＤＭＡ転送命令を発し、次いでインターフェース（２１）は該参照メモリ空間にＤＭＡ転送を行う。
【００４６】
参照メモリ空間は連続した物理メモリであり、上記のようにテーブルによる変換処理が必要ないため、ＰＣＩバスの転送速度理論値に近い高速転送が可能である。しかし、参照メモリ空間はＯＳに予約されていないため、そのままでは単にメモリ上にデータが記憶されたに留まり、アプリケーションから参照することはできない。
【００４７】
そこで、ＭＭＵ部（２６）でメモリマッピングを行うことで、参照できるようにする。メモリマッピングは、ＯＳのプロセス空間ではブロックに分割されて行われるが、上記のＯＳと切り離したメモリ空間ではその先頭アドレス以下の空間をマッピングすることにより、１つの大きなブロックとして認識することができるようになる。
この方法によれば、アプリケーション実行部（２８）から直接参照することが可能であり、従来よりも格段に高速なデータ転送が行えるようになる。
【００４８】
連続した物理メモリ空間の割当方法は、上記に限らず実行するＯＳによって最適な方法を用いることができる。上記は、Linux（登録商標）において簡便に実行する好適な方法である。
また、連続した物理メモリ空間としては、少なくともＯＳが物理メモリを分割するブロックサイズよりも大きくする必要がある。例えば現行のLinux（登録商標）の場合で、最大連続アドレス空間は2Mbyteであるから、それ以上とすることが望ましい。
【００４９】
取得したデータは、例えばハードディスク（２４）に記憶させることができる。ハードディスクは、公知のようにRAIDシステムを用いて高速なデータ転送を可能なようにしたものを用いることで、実時間処理を行える。
【００５０】
最後に、ＣＰＵにおける負荷を従来の方法と比較する。
例えば、ＯＳで割当可能なブロックの最大サイズが２Mbyteの場合、図８に示す従来の構成では、多数回のＤＭＡ転送制御が必要である。データを取得したデバイス（６０）から、１Gbpsのデータレートでデータが入力した場合、物理メモリ（６２）にＤＭＡ転送すると、毎秒６４回のＤＭＡ転送及び仮想空間メモリへのデータ転送が必要となる。
【００５１】
このとき、デバイスドライバ、アプリケーションのタスクの切り替えが６４回発生している状態である。仮に１秒間分ＣＰＵ処理時間を必要なタスクＡが別途発生した場合、タスク管理マネージャはドライバ、アプリケーション、タスクAの三つをループで実行させる。
linux（登録商標）ではタスクの切り替えはタスクそれ自体が処理を終了しなければ10ミリ秒で強制的に切り替えられる。データ転送中このようなタスクＡが発生した場合、６４回のＤＭＡ転送が行なわれる間にタスクＡも６４回行なわれ、１回のＤＭＡ転送毎にタスクＡで発生する１０ミリ秒の待ち時間が発生する。
この場合１秒の内の６４０ミリ秒はまったく転送時間に利用されず転送効率が３６％まで低下する。
【００５２】
一方、本発明によれば、１２８Mbyteの連続した物理メモリ空間を用意することで、１Gbpsのデータレートでデータが入力した場合には毎秒１回のＤＭＡ転送を行うだけで良い。これにより、データの実時間処理が可能となり、データの取りこぼしなどが発生しない。
【００５３】
具体的には、本実施例の場合１２８Mbyteのメモリ空間を８個確保し、ラウンドロビン型のバッファ構成をとる。このため、アプリケーションの処理が多少遅延（数秒まで許容）しても取りこぼしが発生しない。
例えば、最近のハードディスクでは電力消費を抑えるため、長時間使用されていないディスクの回転を止める機能を備えた物がある。ディスクの回転が止まった場合、記録を開始しても実際に記録が開始されるまで数秒を要するが、本発明によれば８秒分のバッファー使用で十分この遅延を吸収できる効果も有する。
【産業上の利用可能性】
【００５４】
本発明は、データ処理装置一般に用いることができるが、特にハイビジョン画像の取り込み、処理装置や、科学技術系の多量のデータを処理するデータ取得装置、あるいは計測装置などに利用すると最適である。
【図面の簡単な説明】
【００５５】
【図１】本発明におけるデータ転送方法の基本的な構成を示す説明図である。
【図２】本発明に係る画像処理装置の構成図である。
【図３】オペレーティングシステムがlinux（登録商標）を用いた場合のメモリ割り当て方法として設定を示す図である。
【図４】連続したアドレス空間をアプリケーション側にマップ機能で提供する方法として設定を示す図である。
【図５】従来のデータ転送方法を説明する説明図である。
【図６】従来のデータ転送方法を説明する説明図である。
【図７】従来のデータ転送方法を説明する説明図である。
【図８】従来のデータ転送方法（ＤＭＡを用いる方法）を説明する説明図である。
【符号の説明】
【００５６】
１０    データ取得用デバイス
１１    デバイスドライバ
１２    ＤＭＡ転送可能割込
１３    ＤＭＡ転送命令
１４    ＤＭＡ転送
１５    物理メモリ
１６    アプリケーション
【図１】
2006085393.tif 000003
【図２】
2006085393.tif 000004
【図３】
2006085393.tif 000005
【図４】
2006085393.tif 000006
【図５】
2006085393.tif 000007
【図６】
2006085393.tif 000008
【図７】
2006085393.tif 000009
【図８】
2006085393.tif 000010