(57)【要約】【課題】ＤＭＡ転送を行う際に、ＣＰＵに対して負荷をかけることなく、高速データ転送を可能としたデータ転送装置を提供するものである。【解決手段】ＤＭＡ転送が完了すると、バウンダリ判別部２ｄにてバウンダリに満たない転送データがバッファ２ａ内にあるか否かが判別され、あると判断した場合には、その旨を示す信号をＣＰＵ３に送信し、ＣＰＵ３から該バウンダリに満たない転送データをＰＩＯ転送する旨の信号をバウンダリ判別部２ｄに送信され、ＰＩＯ転送されることでデータ転送が完了する。また、バウンダリに満たない転送データがないと判断した場合には、データ転送が完了することとなる。【選択図】  図２
2004178115.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、入出力機器とメモリ間あるいはメモリ相互間に介設されたＩ／Ｏバッファ部と、ＣＰＵを介すことなく直接データ転送を行うＤＭＡ転送を制御するＤＭＡコントローラとを備えたデータ転送装置において、
上記Ｉ／Ｏバッファ部は、転送データを一時貯留するためのバッファと、該バッファ内に貯留された転送データについてＤＭＡ転送の回数を割り出すＤＭＡ転送回数判別手段と、該ＤＭＡ転送回数判別手段による判別結果を受けて転送回数分ＤＭＡ転送を行うＤＭＡ転送制御部と、全てのＤＭＡ転送が完了した後バウンダリに満たない転送データがバッファ内にあるか否かを判別し、バウンダリに満たない転送データがあると判断した場合にはその旨を示す信号をＣＰＵに送信するバウンダリ判別部を有するとともに、
上記ＤＭＡコントローラには、転送データがＤＭＡ転送される毎にカウントされるカウンターを有し、
ＣＰＵは、バウンダリ判別部から上記バウンダリに満たない転送データがバッファ内にあることを示す信号を受けた後、該バウンダリ判別部にＰＩＯ転送する旨の信号を送信する
ことを特徴とするデータ転送装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送方式を利用した高速データ転送装置に関するものである。
【０００２】
【従来の技術】
ＤＭＡ転送方式を利用した高速データ転送方式に関し、ＣＰＵとＤＭＡコントローラとを有するデータ処理装置において、データを転送する際に語長で定まるアドレッシング方式に差があるか否かを判別するバウンダリ判別手段を有し、該バウンダリ判別手段がアドレッシング方式に差があるバウンダリ部と判別したとき、まずＣＰＵにこのバウンダリ部の端数データをＣＰＵに内蔵のレジスタを介してデータ転送した後、その他のデータをＤＭＡコントローラによりＤＭＡ転送するようにしたデータ転送方式が知られている。ここで本明細書で用いるバウンダリとは、複数バイトの一括メモリアクセス時に所定の数で割り切れるアドレスにアクセスしなければならないという制限のことをいう。
【特許文献１】
特開平２―２４７５６号公報
【０００３】
【発明が解決しようとする課題】
しかしながら、上記特許文献１に記載の技術では、まずバウンダリ判別手段によって、アドレッシング方式に差があるか否かを判別し、該バウンダリ判別手段がアドレッシング方式に差があるバウンダリ部と判別したときＣＰＵによってこのバウンダリ部の端数データをデータ転送した後、その他のデータをＤＭＡコントローラによりＤＭＡ転送するようにしているので、例えばアドレッシング方式に差がない転送データである場合でもＣＰＵに対して割り込みが発生する。
【０００４】
ＣＰＵに対して割り込みが発生するとＣＰＵに対して負荷をかけてしまうこととなり、高速データ転送に影響を及ぼすこととなる。
【０００５】
本発明は、そのようなことに鑑みてなされたものであり、ＣＰＵに対して負荷をかけることなく、高速データ転送を可能としたデータ転送装置を提供するものである。
【０００６】
【課題を解決するための手段】
ＣＰＵと、入出力機器とメモリ間あるいはメモリ相互間に介設されたＩ／Ｏバッファ部と、ＣＰＵを介すことなく直接データ転送を行うＤＭＡ転送を制御するＤＭＡコントローラとを備えたデータ転送装置において、上記Ｉ／Ｏバッファ部は、転送データを一時貯留するためのバッファと、該バッファ内に貯留された転送データについてＤＭＡ転送の回数を割り出すＤＭＡ転送回数判別手段と、該ＤＭＡ転送回数判別手段による判別結果を受けて転送回数分ＤＭＡ転送を行うＤＭＡ転送制御部と、全てのＤＭＡ転送が完了した後バウンダリに満たない転送データがバッファ内にあるか否かを判別し、バウンダリに満たない転送データがあると判断した場合にはその旨を示す信号をＣＰＵに送信するバウンダリ判別部を有するとともに、上記ＤＭＡコントローラには、転送データがＤＭＡ転送される毎にカウントされるカウンターを有し、ＣＰＵは、バウンダリ判別部から上記バウンダリに満たない転送データがバッファ内にあることを示す信号を受けた後、該バウンダリ判別部にＰＩＯ転送する旨の信号を送信することを特徴とするデータ転送装置である。
【０００７】
この発明によれば、Ｉ／Ｏバッファ部にバウンダリ判別部を備え、全てのＤＭＡ転送が完了した後バウンダリに満たない転送データ（ＤＭＡ転送１回分に満たない端数データ）がバッファ内にあるか否かを判別し、バウンダリに満たない転送データがあると判断した場合にはその旨を示す信号をＣＰＵに送信するようにしている。したがって、全てのＤＭＡ転送が完了した後、バウンダリに満たない転送データがバッファ内にないと判断した場合には、ＣＰＵに信号は送信されない。したがって、ＣＰＵに対する割り込みは発生しないので、ＣＰＵに対して負荷をかけることがなく、高速データ転送が可能となる。
【０００８】
【発明の実施の形態】
以下、本発明の実施形態について詳細に説明する。図１は、本発明を採用したデータ転送装置を示すブロック図である。図１を参照して、データ転送装置Ｓは、ＤＭＡコントローラ１と、Ｉ／Ｏバッファ２と、ＣＰＵ３と、メモリ４と、バス５とによって主に構成されている。
【０００９】
ＤＭＡコントローラ１は、Ｉ／Ｏバッファ２とメモリ４との間のデータ転送をＣＰＵ４を介すことなく直接データ転送を行うＤＭＡ転送を制御するものであり、該ＤＭＡコントローラ１は、転送データのＤＭＡ転送回数をカウントするカウンター１ａを有している。このカウンター１ａは、ソフトウエア等によりあらかじめ所定の設定値に設定されており、ＤＭＡ転送の回数が前期所定値に達するとＣＰＵに対して割り込み（図１の割り込み１）を発生させるようになっている。
【００１０】
Ｉ／Ｏバッファ２は、図示しない入出力機器とメモリ４との間に介設されたものであり、転送データを一時貯留するためのバッファ２ａと、該バッファ２ａ内に貯留された転送データについてＤＭＡ転送の回数を割り出すＤＭＡ転送回数判別手段２ｂと、該ＤＭＡ転送回数判別手段２ｂによる判別結果を受けて転送回数分ＤＭＡ転送を行うＤＭＡ転送制御部２ｃと、全てのＤＭＡ転送が完了した後バウンダリに満たない転送データがバッファ２ａ内にあるか否かを判別し、バウンダリに満たない転送データがあると判断した場合にはその旨を示す信号をＣＰＵ３に送信するバウンダリ判別部２ｄとによって構成されている。また、ＤＭＡ転送回数判別手段２ｂには、これによって割り出されたＤＭＡ転送の回数を監視すべくカウンターが内蔵されている。
【００１１】
ＣＰＵ３は、ＰＩＯ転送の制御及び各マクロの設定等を行うものであり、バス５はこれらＤＭＡコントローラ１、Ｉ／Ｏバッファ２、ＣＰＵ３あるいはメモリ４を接続するものである。尚，ＤＭＡコントローラ１とＩ／Ｏバッファ２とは信号ライン６によって接続されている。
【００１２】
ここで、例えば図外の入出力機器からの書き込みデータを受信すると、まずＩ／Ｏバッファ２のバッファ２ａにデータが貯えられ、それに応じてＩ／Ｏバッファ２からＤＭＡコントローラ１に対してＤＭＡＲＥＱが発行されるとともにバッファ２ａ内のデータがＤＭＡ転送される。これをを受けたＤＭＡコントローラ１はバス５の調停を行うとともに、メモリ４への書き込み準備が可能となったところでＩ／Ｏバッファ２に対してＤＭＡＡＣＫを返信する。これによりバッファ２ａ内のデータをＣＰＵ３の介在なしでメモリ４へと直接転送する。ＤＭＡ転送回数判別手段２ｂによって割り出された転送回数分この動作が繰り返される。
【００１３】
ＤＭＡ転送が完了すると、バウンダリ判別部２ｄにてバウンダリに満たない転送データがバッファ２ａ内にあるか否かが判別され、あると判断した場合には、その旨を示す信号をＣＰＵ３に送信し、ＣＰＵ３から該バウンダリに満たない転送データをＰＩＯ転送する旨の信号をバウンダリ判別部２ｄに送信され、ＰＩＯ転送されることでデータ転送が完了する。また、バウンダリに満たない転送データがないと判断した場合には、データ転送が完了することとなる。したがって、バウンダリに満たない転送データがある場合には、ＣＰＵに対して割り込み（図１の割り込み２）が発生するが、バウンダリに満たない転送データがない場合にはＣＰＵに対する割り込み（図１の割り込み２）が発生しないこととなる。よって、ＣＰＵに対して負荷をかけることがなく、高速データ転送が可能となる。
【００１４】
図２は、上記構成におけるフローチャートを示したものであり、これについて説明する。ステップＳ１にてＩ／Ｏバッファ部２は図示しない入出力機器からのデータ受信を待機しており、データを受信すると、ステップＳ２に進む。ステップＳ２では図示しない入出力機器から受信した全データ量と、ＤＭＡ転送をおこなう毎に内部で転送回数をカウントすることによって得られる転送すべき残りのデータ量をモニタしておき、転送すべき残りのデータ量がメモリのバウンダリ以上であればステップＳ６に進み、ＤＭＡ転送をおこなう。１回のＤＭＡ転送後にステップＳ７に進み、図示しない入出力機器から受信したデータがすべて転送されたか否かの判別をおこなう。すべてのデータが転送されたならばステップＳ８へと進み、ＤＭＡ転送は完了し、次の図示しない入出力機器からのデータ受信に備えるためにステップＳ１に戻る。ステップＳ７にてまだ転送すべきデータが残っているようであれば、ステップＳ２に戻り、残りデータがバウンダリに満たないかどうかの判別をおこなう。
【００１５】
ステップＳ２にて残りのデータが転送先メモリのバウンダリに満たないようであれば最後のバウンダリに満たないデータはＩ／Ｏバッファ部２に残したままでステップＳ３へと進み、ＤＭＡ転送は終了する。その後ステップＳ４に進み、ＣＰＵ３に対してバウンダリに満たないデータを送信した旨を伝える割り込みを発行する。その後ステップ５へ進み、ＣＰＵ３はその割り込みを受けてＩ／Ｏバッファ部２内に残ったデータをＰＩＯ転送にてメモリ４に転送し、再度ＤＭＡコントローラ１の設定をおこなうことで次の図示しない入出力機器からの受信データをＤＭＡ転送させることが可能となる。
【００１６】
なお、上記実施例では常にメモリのバウンダリに満たないデータはＤＭＡ転送しないことになっているが、図示しない入出力機器の種類によっては受信データがバウンダリに満たないデータばかりであることも考えられる。その場合には常にデータの最後はＰＩＯ転送をおこなわなければならないことになり、逆に全体としてのパフォーマンスを低下させる原因になる。そうした場合のため、バウンダリに満たないデータも常にＤＭＡ転送できるように切り替えが可能なように構成しても良い。そうすることで、ソフトウェアの処理は軽減されたまま、全体のパフォーマンスを向上させることが期待できる。
【００１７】
また、上記実施例では入出力機器からメモリへの転送について説明したが、メモリから入出力機器、あるいはメモリからメモリへの転送にも適応可能である。
【００１８】
【発明の効果】
以上の説明から明らかなように、この発明によれば、Ｉ／Ｏバッファ部にバウンダリ判別部を備え、全てのＤＭＡ転送が完了した後バウンダリに満たない転送データがバッファ内にあるか否かを判別し、バウンダリに満たない転送データがあると判断した場合にはその旨を示す信号をＣＰＵに送信するようにしている。したがって、全てのＤＭＡ転送が完了した後、バウンダリに満たない転送データがバッファ内にないと判断した場合には、ＣＰＵには信号は送信されない。したがって、ＣＰＵに対する割り込みは発生しないので、ＣＰＵに対して負荷をかけることがなく、高速データ転送が可能となる。
【図面の簡単な説明】
【図１】図１は本発明の一例を示すブロック図
【図２】図２は本発明の一例を示すフローチャート
【符号の説明】
１  ＤＭＡコントローラ
２  Ｉ／Ｏバッファ部
３  ＣＰＵ
４  メモリ
５  バス
【図１】
2004178115.tif 000003
【図２】
2004178115.tif 000004