(57)【要約】【課題】ＩＤＥインターフェースを使ったハードディスク等のブロックデバイスのＤＭＡ転送の高速化を実現できるようにする。【解決手段】バッファをメモリ上に確保する確保手段と、前記メモリ上のデータを前記バッファにコピーする第１のコピー手段と、前記バッファを利用した転送を実行するためのテーブルを構築する構築手段と、前記テーブルを利用してＤＭＡを行い、前記ＤＭＡの終了後に前記バッファからデータを前記メモリにコピーする第２のコピー手段とを有する電子機器等、を提供する。【選択図】図１
2009020606.tif 000002
【特許請求の範囲】
【請求項１】
バッファをメモリ上に確保する確保手段と、
前記メモリ上のデータを前記バッファにコピーする第１のコピー手段と、
前記バッファを利用した転送を実行するためのテーブルを構築する構築手段と、
前記テーブルを利用してＤＭＡを行い、前記ＤＭＡの終了後に前記バッファからデータを前記メモリにコピーする第２のコピー手段とを有することを特徴とする電子機器。
【請求項２】
バッファをメモリ上に確保する確保工程と、
前記メモリ上のデータを前記バッファにコピーする第１のコピー工程と、
前記バッファを利用した転送を実行するためのテーブルを構築する構築工程と、
前記テーブルを利用してＤＭＡを行い、前記ＤＭＡの終了後に前記バッファからデータを前記メモリにコピーする第２のコピー工程とを有することを特徴とするデータ転送方法。
【請求項３】
請求項２に記載のデータ転送方法の各工程をコンピュータにて実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＤＭＡを使ってデータを転送する電子機器、データ転送方法及びプログラムに関する。
【背景技術】
【０００２】
LinuxのようなＯＳでは、メモリを効率良く使うために４Ｋバイト等の決められたサイズのページ単位でファイル等の管理を行う。このため、バッファとして確保したメモリ領域が、連続している保証がない。
【０００３】
ＩＤＥインターフェースに接続されたハードディスクのような低速なブロックデバイスに対してＤＭＡ転送する際には、ＯＳはＰＲＤテーブルと呼ばれるテーブルを作成する。その後、ＩＤＥインターフェースまたはハードディスクに搭載されたＤＭＡコントローラがＤＭＡ転送の制御を行う。なお、このＰＲＤテーブルはメモリのアドレスとサイズとを１組にしたエントリがリスト構造になって構成されている。
【０００４】
LinuxなどのＯＳでは、ＰＲＤテーブルの構築の際に連続している領域を１つのエントリになるようにまとめる処理を行っている。しかし、もともと連続性が保証されていないため、複数のエントリに分割されてＤＭＡが行われる。このようにＤＭＡ転送を行う技術としては、例えば、特許文献１に開示されている。
【０００５】
【特許文献１】特開平８−２９７６２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、ＩＤＥインターフェースを使ったハードディスク等のブロックデバイスのＤＭＡ転送速度においては不十分であるという問題点があった。
【０００７】
本発明は前述の問題点に鑑み、ＩＤＥインターフェースを使ったハードディスク等のブロックデバイスのＤＭＡ転送の高速化を実現できるようにすることを目的としている。
【課題を解決するための手段】
【０００８】
本発明の電子機器は、バッファをメモリ上に確保する確保手段と、前記メモリ上のデータを前記バッファにコピーする第１のコピー手段と、前記バッファを利用した転送を実行するためのテーブルを構築する構築手段と、前記テーブルを利用してＤＭＡを行い、前記ＤＭＡの終了後に前記バッファからデータを前記メモリにコピーする第２のコピー手段とを有することを特徴とする。
【０００９】
本発明のデータ転送方法は、バッファをメモリ上に確保する確保工程と、前記メモリ上のデータを前記バッファにコピーする第１のコピー工程と、前記バッファを利用した転送を実行するためのテーブルを構築する構築工程と、前記テーブルを利用してＤＭＡを行い、前記ＤＭＡの終了後に前記バッファからデータを前記メモリにコピーする第２のコピー工程とを有することを特徴とする。
【００１０】
本発明のプログラムは、前記に記載のデータ転送方法の各工程をコンピュータにて実行させることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ＤＭＡ転送の際に用いるＰＲＤテーブルのエントリを統合することで、ＤＭＡコントローラの処理を軽減でき、ＤＭＡ転送の高速化をおこなうことができる。
【発明を実施するための最良の形態】
【００１２】
（第１の実施形態）
本発明の実施形態について、以下、図面を参照しながら説明する。本発明の電子機器は、外部記憶装置をもち、外部記憶装置からデータをリード／ライトする際に、ＤＭＡコントローラを利用してデータ転送を行う。本実施形態では、外部記憶装置としてハードディスクがＩＤＥインターフェースを経由してつながれている場合の実施形態について説明する。
【００１３】
図１は、本実施形態の電子機器の機能構成例を示すブロック図である。
図１において、１０１はＤＭＡ転送手段であり、１０２はＤＭＡバッファを確保する確保手段である。１０３はページ単位で分割されたデータをＤＭＡバッファへコピーする第１のコピー手段であり、１０４はＤＭＡバッファからページ単位で分割されたデータにしてメモリにコピーする第２のコピー手段である。さらに、１０５はＰＲＤテーブルを構築する構築手段である。これらの各手段は、後述するＤＭＡコントローラによって制御される。
【００１４】
図２は、本実施形態の電子機器のシステム構成例を示すブロック図である。
図２において、２０１はＣＰＵであり、２０２はＲＡＭである。２０３はＩＤＥインターフェースであり、この中には、ＤＭＡコントローラ２０４を内蔵している。また、２０５は外部記憶装置（ハードディスク）であり、この中にはＤＭＡコントローラ２０６を内蔵している。
【００１５】
ハードディスク２０５は、ＩＤＥインターフェース２０３を経由してＣＰＵ２０１から制御される。ＤＭＡ転送を行っている時は、ＩＤＥインターフェース２０３もしくはハードディスク２０５に内蔵されたＤＭＡコントローラ２０４、２０６がＣＰＵ２０１とは非同期でＲＡＭ２０２とハードディスク２０５との間のデータ転送を制御する。
【００１６】
図３は、メモリとＰＲＤテーブルとの関係を示す図である。
図３において、３００は、通常のＤＭＡ転送時のメモリとＰＲＤテーブルとの関係を示している。３０１は、ユーザが確保したデータを示している。なお、このデータは仮想メモリ空間上で連続しており、ページ単位で分割されている。
【００１７】
３１１は、実メモリ上でのメモリの配置を示している。データは、ページ毎に分割され、ばらばらに配置されており、連続性は保証されていない。３２１は、ＤＭＡ転送を行う際のＰＲＤテーブルを示している。ＰＲＤテーブルは、ＤＭＡ転送を行う際に、ＤＭＡコントローラに渡され、転送を行うメモリの先頭アドレスとサイズとを１組にしたリスト構造で記憶したものである。
【００１８】
３５０は、本実施形態のＤＭＡ転送時のメモリとＰＲＤテーブルとの関係を示している。３５１は、実メモリ上でのメモリの配置を示している。データは、ページ毎に分割され、ばらばらに配置されており、連続性は保証されていない。また、ＤＭＡバッファ領域は、ＯＳ起動時に連続した領域に確保されるために、連続している。
【００１９】
３５２は、ＤＭＡ転送を行う際のＰＲＤテーブルを示している。連続しているＤＭＡバッファを利用するため、ＰＲＤテーブルのエントリ数は１となる。ただしＤＭＡバッファが複数の領域にまたがる場合は、ＰＲＤテーブルのエントリ数はＤＭＡバッファの領域数となる。
【００２０】
図４は、本実施形態におけるＤＭＡライト要求処理手順の一例を示すフローチャートである。
まず、ステップＳ４０１において、ＤＭＡライト要求を受け取る。次に、ステップＳ４０２において、第１のコピー手段１０３は、ページ単位で分割されたデータをＤＭＡバッファにコピーする。
【００２１】
次に、ステップＳ４０３において、構築手段１０５は、ＤＭＡバッファを利用したＰＲＤテーブルを構築する。そして、ステップＳ４０４においてＩＤＥインターフェース２０３もしくはハードディスク２０５内のＤＭＡコントローラ２０４、２０６に対して、ＰＲＤテーブルを渡し、ＤＭＡ転送を開始する。次に、ステップＳ４０５において、ＤＭＡ転送完了を待ち、ＤＭＡライト要求処理を終了する。
【００２２】
図５は、本実施形態におけるＤＭＡリード要求処理手順の一例を示すフローチャートである。
まず、ステップＳ５０１において、ＤＭＡリード要求を受け取る。次に、ステップＳ５０２において、構築手段１０５は、ＤＭＡバッファを利用したＰＲＤテーブルを構築する。
【００２３】
次に、ステップＳ５０３において、ＩＤＥインターフェース２０３もしくはハードディスク２０５内のＤＭＡコントローラ２０４、２０６に対して、ＰＲＤテーブルを渡し、ＤＭＡ転送を開始する。そして、ステップＳ５０４において、ＤＭＡ転送完了をまつ。そして、その終了後、ステップＳ５０５において、ＤＭＡバッファ内のデータをページ単位で分割されたデータにしてメモリにコピーし、ＤＭＡリード要求処理を終了する。
【００２４】
以上のように本実施形態においては、ＤＭＡ転送の際に用いるＰＲＤテーブルのエントリを統合することで、ＤＭＡコントローラの処理を軽減でき、ＤＭＡ転送の高速化をおこなうことができる。
【００２５】
（本発明に係る他の実施形態）
前述した本発明の実施形態における電子機器を構成する各手段、並びにデータ転送方法の各工程は、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【００２６】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００２７】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図４、５に示すフローチャートに対応したプログラム）を、システムまたは装置に直接、または遠隔から供給する場合も含む。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００２８】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００２９】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００３０】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）などもある。
【００３１】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００３２】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００３３】
また、その他の方法として、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００３４】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００３５】
さらに、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００３６】
【図１】本発明の実施形態における電子機器の機能構成例を示すブロック図である。
【図２】本発明の実施形態における電子機器のシステム構成例を示すブロック図である。
【図３】本発明の実施形態における電子機器のメモリとＰＲＤテーブルとの関係を示す図である。
【図４】本発明の実施形態におけるＤＭＡライト要求処理手順の一例を示すフローチャートである。
【図５】本発明の実施形態におけるＤＭＡリード要求処理手順の一例を示すフローチャートである。
【符号の説明】
【００３７】
１０１  ＤＭＡ転送手段
１０２  確保手段
１０３  第１のコピー手段
１０４  第２のコピー手段
１０５  構築手段
２０１  ＣＰＵ
２０２  ＲＡＭ
２０３  ＩＤＥインターフェース
２０４  ＤＭＡコントローラ
２０５  ハードディスク
２０６  ＤＭＡコントローラ
【図１】
2009020606.tif 000003
【図２】
2009020606.tif 000004
【図３】
2009020606.tif 000005
【図４】
2009020606.tif 000006
【図５】
2009020606.tif 000007