(57)【要約】【課題】高速で、別々のキャッシュメモリを必要とせず、市販の装置で適用され得る処理時間短縮方法を提供すること。【解決手段】処理装置２０、低速アクセス可能メモリ１０、高速アクセス可能メモリ３０およびデータコピー装置４０を含むデータ処理装置Ｄを動作させる方法は、前記セクタベース記憶装置１０の次のセクタｊ＋１からのデータが前記高速アクセス可能メモリ３０にコピーされている時間中に、前記セクタベース記憶装置１０の前のセクタｊからの、以前に一時的に前記高速アクセス可能メモリ３０に格納されたデータが、前記処理装置２０によって同時に処理されることを特徴とする。【選択図】      図２
2005182783.tif 000002
【特許請求の範囲】
【請求項１】
処理装置（２０）、低速アクセス可能メモリ（１０）、高速アクセス可能メモリ（３０）およびデータコピー装置（４０）を含むデータ処理装置（Ｄ）を動作させる方法であって、
前記セクタベース記憶装置（１０）の次のセクタ（ｊ＋１）からのデータが前記高速アクセス可能メモリ（３０）にコピーされている時間中に、
前記セクタベース記憶装置（１０）の前のセクタ（ｊ）からの、以前に一時的に前記高速アクセス可能メモリ（３０）に格納されたデータが、前記処理装置（２０）によって同時に処理される
ことを特徴とする方法。
【請求項２】
前記前のセクタ（ｊ）からのデータが、前記処理装置（２０）によって処理される前に、前記高速アクセス可能メモリ（３０）内で内部的に再配置される請求項１に記載の方法。
【請求項３】
前記高速アクセス可能メモリ（３０）に一時的に格納された前記次のセクタ（ｊ＋１）からのデータが前記処理装置（２０）によって処理されているその時間中に、
前記前のセクタ（ｊ）からのデータが処理され、前記高速アクセス可能メモリ（３０）内に一時的に再格納された後で、前記処理されたデータが、前記高速アクセス可能メモリ（３０）から前記セクタベース記憶装置（１０）に再度コピーされる
請求項１に記載の方法。
【請求項４】
前記セクタベース記憶装置（１０）の第１と第２の初期設定されたセクタから前記高速アクセス可能メモリ（３０）にデータを転送する初期設定ステップを含む請求項１から３のいずれかに記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、請求項１のプリアンブルに詳細に記載したようなデータ処理装置の処理時間を短縮する方法に関する。
【背景技術】
【０００２】
そのような方法は、すでに、当技術分野で、例えば、米国公開特許出願第２００３／０１２６３６４号明細書などで開示されている。該特許出願の段落［００３］では、ＲＯＭなどの非一時メモリセクタに保存されたデータが、まず、高速アクセス可能ＲＡＭにコピーされ、次いで、元はＲＯＭによって占められていたアドレスセクタの上にこのセクタをオーバーレイする従来技術の方法が参照されている。同特許出願には、さらに、この処理時間を２つの別々のキャッシュメモリを利用することにより向上させる方法が開示されている。
【０００３】
この従来技術の方法の欠点は、参照されている第１の方法がやはりあまりに時間がかかりすぎ、他方、第２の方法は、２つの別々のキャッシュメモリを必要とすることにより、過大なメモリ空間を消費することである。さらに、そのようなアーキテクチャは、現在、市販されておらず、そのため、プロセッサ自体の開発を積極的に行っている企業だけにしか役立てることができない。したがって、プロセッサやメモリなど市販のハードウェアを購入する企業にとっては、この従来技術の解決法は実現不能である。
【０００４】
２つのキャッシュメモリを使用しない他の従来技術の方法は、より高速のデータ転送および／またはデータ処理アルゴリズムを使用することにより処理時間を短縮し、またはコピー時間を短縮しようとするものである。
【特許文献１】米国公開特許出願第２００３／０１２６３６４号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、高速で、別々のキャッシュメモリを必要とせず、市販の装置で適用され得る、処理時間短縮方法を提供することである。
【課題を解決するための手段】
【０００６】
本発明によれば、この目的は、請求項１の特徴項で説明されるように達成される。
【０００７】
この方法では、次のセクタからのデータが、例えばフラッシュメモリカードなどの低速セクタベースデータ記憶装置から、例えばＲＡＭなどの高速アクセス可能メモリにコピーされる時間中に、この高速アクセス可能メモリ中にすでに存在する、本来セクタベースデータ記憶装置の前のセクタに属しているデータが、処理装置により同時に処理される。この解決法は、ドライバソフトウェアモジュールのいくつかによって実現することができ、したがって、そのようなプログラムモジュールによりアクセスされ、制御され得る市販の装置に適用可能である。
【０００８】
本発明の別の特徴が請求項２に示されている。
【０００９】
この高速アクセス可能メモリ内での内部再配置は、処理アプリケーションのコードもまた格納されている高速アクセス可能メモリの一部にデータが直ちに格納されない場合に必要とされることがある。高速メモリのこの領域にデータを直接格納することは常に可能であるとは限らず、そのため、大部分の実施形態ではそのような特別な再配置ステップが必要とされる。本明細書の別の段落で説明するように、この特別な再配置ステップに必要とされる時間はわずかである。
【００１０】
本発明の別の特徴が請求項３に記載されている。
【００１１】
これは、セクタベースデータ記憶装置からの読取り動作時だけでなく、書込み動作時にも処理時間短縮を保証するものである。
【００１２】
本発明の別の特徴が請求項４に記載されている。
【００１３】
これは、本明細書の説明部分で、ドライバソフトウェアモジュールの実施形態によって詳細に説明し、例示するように、この本発明による方法の実行可能な始動を保証するものである。
【００１４】
特許請求の範囲で使用される「結合された（ｃｏｕｐｌｅｄ）」という用語は、直接接続だけに限定するものであると解釈すべきではないことに留意すべきである。したがって、「装置Ｂに結合された装置Ａ」という表現の範囲は、装置Ａの出力が装置Ｂの入力に直接接続されている装置、またはシステムに限定すべきではない。これは、Ａの出力とＢの入力の間にパスが存在し、そのパスは他の装置または手段を含むパスとすることができることを意味する。
【００１５】
特許請求の範囲で使用される「含む（ｃｏｍｐｒｉｓｉｎｇ）」という用語は、その後に列挙された手段だけに限定するものであると解釈すべきではないことに留意すべきである。したがって、「手段ＡおよびＢを含む装置」という表現の範囲は、構成要素ＡおよびＢだけからなる装置に限定すべきではない。これは、本発明に関して、その装置の関連構成要素がＡとＢだけであることを意味する。
【００１６】
以下の実施形態の説明を、添付の図面と併せて読めば、本発明の上記およびその他の目的および特徴がより明らかになり、本発明自体が最もよく理解されるであろう。
【発明を実施するための最良の形態】
【００１７】
本発明は、特に、フラッシュメモリカードや何らかのディスクドライブなど、複数のセクタをフェッチするための特別なハードウェアバッファリングのないセクタベースデータ記憶装置との間のデータの高速アクセスおよび処理に関するものである。本発明が適用可能なデータ処理装置のアーキテクチャは図１および２に示されており、それは、２０で示す処理装置、１０で示すセクタベースの記憶装置、３０で示す高速アクセス可能メモリおよび４０で示すデータコピー装置を含む。このデータコピー装置は、処理装置２０内に組み込むことも可能であることに留意すべきである。図面では、この方法の理解を容易にするためにこれを別のエンティティとして示してある。
【００１８】
本発明は、セクタベースデータ記憶装置１０からのデータが処理装置２０によりアクセスされ、処理される方法を扱う。従来技術の解決法では、まず、データコピー装置４０、例えばＤｉｒｅｃｔＭｅｍｏｒｙＡｃｃｅｓｓ（ＤＭＡと略される）コピー機能などによって、大量のデータブロックが高速アクセス可能メモリにコピーされ、そのステップの後、それらが処理装置２０によって処理される。これが処理され、続いて処理されたデータを低速記憶装置の元のセクタに再格納されてはじめて、次のブロックが、高速アクセス可能メモリへの一時格納とそれに続く処理のために低速セクタベース記憶装置からフェッチされる。このプロセスを速めるために、より高速のデータ記憶装置を使用することもできるが、それらは一般にはるかに高価である。同様に、ＤＭＡ機能を改善してコピー時間を短縮することもできる。これらの解決法はすべて、アーキテクチャを単純かつ安価に保持すると同時に所望の速度をもたらす結果になるとは限らない。
【００１９】
しかしながら、本発明の方法は、同じ単純なアーキテクチャを保持しつつ、しかも少なからぬ速度の向上を達成する。これは、図２に示すように、各ブロックの並列データ転送および処理に基づくものである。これは、セクタベース記憶装置の特定のセクタ、例えばセクタｊ＋１から高速アクセス可能メモリにデータがコピーされる間に、高速アクセス可能メモリ内にすでに格納されている前のセクタ、例えばセクタｊのデータが、処理装置２０によって並列に処理されることを意味する。同様に、このセクタｊのデータの処理が行われている間に、すでに処理されたセクタｊ−１のデータが、高速アクセス可能メモリから低速セクタベース記憶装置に再度コピーされる。
【００２０】
最適な解決法では、データは、セクタベースデータ記憶装置から、処理アプリケーションのコードもまた格納されている高速アクセス可能メモリ内の場所に直接コピーされる。これは、高速アクセス可能メモリ内でコピーされたデータをそれら特定の場所にさらに再配置することを不要にする。そのような直接転送が常に可能であるとは限らないため、いくつかの実施形態では、この追加のデータ再配置ステップが必要である。そのような再配置を、図１および図２に、ステップ２ｂ「高速メモリ内での内部再配置」によって示し、セクタベースメモリから高速アクセス可能メモリへのデータ転送をステップ１によって示す。プロセッサによる高速メモリから取得したデータのデータ処理をステップ２によって示し、一方でのプロセッサへのデータの転送と、プロセッサ自体の中での処理を示す。
【００２１】
タイミングの改善は、まず、データブロックが転送されてから、それに対する処理が開始し得る従来の手法を、データの転送と処理が同時に行われる本発明の手法と比較している図２から推論され得る。実際、次のハードウェア／ソフトウェアプラットフォーム、すなわち、プロセッサ２０にＰｏｗｅｒＰＣ  ＩＢＭ  ７５０ＦＸ  ７３３ＭＨｚ、セクタベースメモリ１０にコンパクトフラッシュ（登録商標）カードＳＡＮＤＩＳＫ、高速メモリ３０に１３３ＭＨｚで動作する６４ビットワイドＳＤＲＡＭインターフェイス、コピー機能４０にＤＭＡ、プロセッサ２０上で実行されるアプリケーション：ＳＲＥＣ処理ＳＷを用いれば、最大３０％までの時間短縮を実現し得る。
【００２２】
本発明は、図３に示すように、アプリケーションプログラムドライバモジュールに含まれる命令によって実行され得る。このアプリケーションプログラムドライバは、アプリケーションによって処理されるデータにそこからアクセスするためのセクタベースメモリ１０中のセクタへのポインタの初期設定から開始する。開始時に、このポインタはゼロに初期設定される。次いで、ドライバプログラムの次のステップは、ひし形ブロック２によって示すように、セクタベースメモリの次のセクタのデータが高速メモリ３０中にすでに用意されているかどうかのチェックになる。開始時には、これは該当しない。というのは、データが、まだ、セクタベースメモリ１０から高速メモリ３０にコピーされていないからである。次のステップは、次のセクタを読み取り、スペアバッファ内ではあるが、上位レベルのアプリケーションプログラムによって使用されるものではない高速メモリ３０にそれをコピーするために、低速セクタベースデータ記憶１０を調整することからなる。図３では、これをブロック４で示し、そこでは、データの処理を行うためのプログラムにより使用され、アクセスされる現在のバッファと区別される第２の高速メモリバッファについて言及している。
【００２３】
その時から、あるセクタ、一般には、アプリケーションによって必要とされた第１のセクタのデータは、次のバッファと呼ばれる、この第２の、またはスペアバッファに存在し、高速メモリ内の上位のアプリケーションプログラムによりアクセス可能なバッファは、まだ空のままである。したがって、処理はまだ行われず、アプリケーションプログラムにより次のセクタが要求されるまで延期される。これは、上位アプリケーションプログラムからドライバプログラムにそのセクタを用意させることを求める要求を出す、上位アプリケーションからアプリケーションドライバへの１種の割り込み信号を示す太い矢印によって表される。その時、ドライバプログラムは、まず、ひし形モジュール５で示す、高速メモリ中の現在指し示されているバッファにあるデータが要求されたデータを含むかどうかチェックする。データが、現在指し示されているバッファではなく、第２の（次の）バッファ内にあるためにこれが該当しなかったので、ひし形モジュール６によって、その場合、このデータが第２のバッファ内にあるかどうかが次にチェックされる。ここではこれが該当するため、セクタベースメモリへのポインタがブロック７によって更新される。次に、ブロック８によって、データが高速メモリ内の現在のバッファにコピーされるように、高速メモリ内での内部再配置ステップが行われる。したがって、これが、上位アプリケーションプログラムコードにより実際にアクセスされ、使用されるデータである。次に、ブロック８から出ている２つの矢印で示すように、その現在のバッファ中のデータの処理と、セクタベースメモリからの次のセクタのデータのフェッチとが同時に行われる。これらの矢印の一方は、すでに説明した、セクタベースメモリのデータの高速メモリへのコピーを形成する命令２、３、４のセットを指し示す。他方の矢印は、現在のセクタのデータ処理を表す、楕円形モジュール９を指し示す。
【００２４】
要求されたセクタが、モジュール６の「Ｎｏ」分岐で示すように、現在の、または次のセクタに用意されていない場合、それは、次のセクタの事前のフェッチが完了したが、ソフトウェアが、セクタベース装置の全く別のセクタにアクセスすることを求めたことを意味する。この場合、現在のセクタには、要求されたセクタのデータがロードされる。また、次のセクタは、ブロック１１で示すように、すでに要求セクタに続くものであるセクタデータをフェッチしておくために初期設定される。次いで、プログラムは、前述の、最初のデータコピーブロックに戻り、そのステップの後、要求されたセクタがモジュール８によってフェッチされ、アプリケーションに向けて渡される。データの処理と同時に、次のセクタがモジュール２、３、４によって示すとおり高速メモリにすでにコピーされている。
【００２５】
図３に示す例が、後続のセクタ、すなわち、現在のセクタおよび次のセクタを処理することに留意すべきである。高速メモリがより多くのバッファリング能力を有する場合には、次のセクタをフェッチしている間に、前の（すなわち、次のセクタとの間に１セクタより大きい距離がある）セクタを処理することも可能である。
【００２６】
アプリケーションが異なるバッファを処理するように構成されており、本明細書で説明したデータフェッチング戦略がアプリケーション自体に組み込まれている場合には、データが、アプリケーションにより使用されるデータセクションに即座にコピーされ得ることにも留意すべきである。これは、セクタベースデータ記憶を使用しているアプリケーションが１つだけであるときには容易に可能であるが、複数のアプリケーションが同じデータ記憶装置を共用している場合に、これは、管理するのがはるかに複雑になる。その場合には、補足的な複雑さを導入しなくとも、高速アクセス可能メモリへの次のセクタの事前のフェッチだけで、すでに、多くの時間を獲得することが可能である。
【００２７】
以上、本発明の原理を具体的な装置との関連で説明してきたが、この説明は、添付の特許請求の範囲で定義されている本発明の範囲に関する限定としてではなく、例示のためになされたものであることをはっきりと理解すべきである。
【図面の簡単な説明】
【００２８】
【図１】本発明が適用可能なデータ処理装置を示す概略図である。
【図２】従来技術の方法の本発明との比較を示す図である。
【図３】本発明を実装するいくつかの基本モジュールを含むプログラムモジュールを示す流れ図である。
【符号の説明】
【００２９】
１０  低速セクタベース記憶装置
２０  処理装置
３０  高速アクセス可能メモリ
４０  データコピー装置
【図１】
2005182783.tif 000003
【図２】
2005182783.tif 000004
【図３】
2005182783.tif 000005
【外国語明細書】
2005182783.tif 000006
2005182783.tif 000007
2005182783.tif 000008
2005182783.tif 000009
2005182783.tif 000010
2005182783.tif 000011
2005182783.tif 000012
2005182783.tif 000013
2005182783.tif 000014
2005182783.tif 000015
2005182783.tif 000016
2005182783.tif 000017
2005182783.tif 000018
2005182783.tif 000019