(57)【要約】  【課題】  割り込み処理時における負荷軽減を図ったデータ転送装置及びデータ転送方法を提供する。  【解決手段】  データ転送装置１００は、バス１２０に接続された各デバイスを制御するＣＰＵ１０２と、外部デバイス１５０との間でやり取りされるデータを一時的に記憶するとともに、データ転送制御情報を記憶するメモリ１０４と、外部デバイス１５０との間のデータ転送を制御するデバイスコントローラ１０６と、デバイスコントローラ１０６以外のインタフェースで外部からの信号を入力する入力部１０８と、デバイスコントローラ１０６以外のインタフェースで外部へ信号を出力する出力部１１０と、ＣＰＵ１０２に代わって割り込み処理を行う割り込み処理部１１２とを有する。【選択図】  図１
2005222198.tif 000002
【特許請求の範囲】
【請求項１】
装置内部のデバイスを制御する内部デバイス制御手段と、
装置外部のデバイスとの間のデータ転送を制御し、割り込み処理の必要が生じた場合に装置内部へ割り込み信号を送出する外部デバイス制御手段と、
前記外部デバイス制御手段によって割り込み信号が送出された場合に、前記内部デバイス制御手段に代わって、前記割り込み信号に対応する割り込み処理を行う割り込み処理手段とを有することを特徴とするデータ転送装置。
【請求項２】
前記内部デバイス制御手段は、前記割り込み処理手段に対して、前記割り込み信号に対応する割り込み処理手順を通知し、
前記割り込み処理手段は、前記内部デバイス制御手段からの割り込み信号に対応する割り込み処理手順に従って、前記割り込み信号に対応する割り込み処理を行うことを特徴とする請求項１記載のデータ転送装置。
【請求項３】
前記割り込み処理手段は、前記外部デバイス制御手段におけるレジスタへのアクセスと、装置内部の記憶手段に記憶されたデータ転送制御に関する情報の更新とを行うことを特徴とする請求項１又は２記載のデータ転送装置。
【請求項４】
前記内部デバイス制御手段が接続される伝送路と、前記外部デバイス制御手段及び前記割り込み処理手段が接続される伝送路とが異なることを特徴とする請求項１乃至３のいずれかに記載のデータ転送装置。
【請求項５】
装置内部のデバイスを制御する内部デバイス制御手段と、装置外部のデバイスとの間のデータ転送を制御する外部デバイス制御手段と、割り込み処理を行う割り込み処理手段とを有するデータ転送装置におけるデータ転送方法において、
前記外部デバイス制御手段が前記装置外部のデバイスとの間のデータ転送において、割り込み処理の必要が生じた場合に装置内部へ割り込み信号を送出する割り込み信号送出ステップと、
前記割り込み処理手段が前記外部デバイス制御手段によって割り込み信号が送出された場合に、前記内部デバイス制御手段に代わって、前記割り込み信号に対応する割り込み処理を行う割り込み処理ステップとを有することを特徴とするデータ転送方法。
【請求項６】
前記内部デバイス制御手段が前記割り込み処理手段に対して、前記割り込み信号に対応する割り込み処理手順を通知する処理手順通知ステップを有し、
前記割り込み処理ステップは、前記割り込み処理手段が前記内部デバイス制御手段からの割り込み信号に対応する割り込み処理手順に従って、前記割り込み信号に対応する割り込み処理を行うことを特徴とする請求項５記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装置外部のデバイスとの間のデータ転送を行うデータ転送装置、及び、そのデータ転送装置におけるデータ転送方法に関する。
【背景技術】
【０００２】
従来、データ転送時における装置内部のデバイスやバスの負荷を軽減するためのデータ転送装置が提案されている（例えば、特許文献１）。この従来のデータ転送装置は、図５に示すように構成されている。図５においてデータ転送装置５００は、装置外部のデバイス（外部デバイス）５５０との間でデータ転送を行うものであり、バス５２０に接続されたＣＰＵ（Central Processing Unit）５０２、メモリ５０４、デバイスコントローラ５０６、入力部５０８及び出力部５１０とを有する。
【０００３】
ＣＰＵ５０２は、外部デバイス５５０との間のデータ転送に際して、デバイスコントローラ５０６におけるレジスタにアクセスするとともに、メモリ５０４へデータ転送に関する情報であるデータ転送制御情報を書き込む。デバイスコントローラ５０６は、メモリ５０４に書き込まれたデータ転送制御情報を読み出し、このデータ転送制御情報に従って外部デバイス５５０との間でデータ転送を行う。これにより、例えば入力部５０８が入力したデータが外部デバイス５５０へ転送され、外部デバイス５５０からのデータが出力部５１０へ出力される。
【０００４】
このようなデータ転送手順において、データ転送が完了した場合や失敗した場合、デバイスコントローラ５０６は、ＣＰＵ５０２に対して割り込み信号を送出する。ＣＰＵ５０２は、割り込み信号を受けると、その割り込み信号の優先度を示す割り込みステータスに応じて、デバイスコントローラ５０６へ各種の命令を出す。
【０００５】
または、デバイス同士がＣＰＵを介することなく直接にデータ転送を行うことができれば、ＣＰＵやそのＣＰＵが接続されるバスの負荷を軽減して、安全で且つ効率の良いデータ転送を行うことができる（例えば、特許文献２乃至４参照）。
【特許文献１】特開平１１−３４５１９２号公報
【特許文献２】特開平１０−３１２６３３号公報
【特許文献３】特開２０００−１２２９６９号公報
【特許文献４】特開２０００−２４２６０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来提案されている様々なデータ転送装置では、割り込み処理が発生した場合におけるＣＰＵの負荷軽減については何ら考慮されていない。即ち、前述したような（図５参照）従来のデータ転送装置では、割り込み処理時においてはＣＰＵによるデータ転送制御が必要であり、負荷軽減の妨げとなっている。
【０００７】
本発明は従来の問題を解決するためになされたもので、割り込み処理時における負荷軽減を図ったデータ転送装置及びデータ転送方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明のデータ転送装置は、装置内部のデバイスを制御する内部デバイス制御手段と、装置外部のデバイスとの間のデータ転送を制御し、割り込み処理の必要が生じた場合に装置内部へ割り込み信号を送出する外部デバイス制御手段と、前記外部デバイス制御手段によって割り込み信号が送出された場合に、前記内部デバイス制御手段に代わって、前記割り込み信号に対応する割り込み処理を行う割り込み処理手段とを有する構成となる。
【０００９】
この構成により、装置外部のデバイスとの間のデータ転送を制御する外部デバイス制御手段によって割り込み信号が送出された場合には、割り込み処理手段により、内部デバイス制御手段に代わって割り込み信号に対応する割り込み処理が行われる。
【００１０】
また、本発明のデータ転送装置は、前記内部デバイス制御手段が、前記割り込み処理手段に対して、前記割り込み信号に対応する割り込み処理手順を通知し、前記割り込み処理手段は、前記内部デバイス制御手段からの割り込み信号に対応する割り込み処理手順に従って、前記割り込み信号に対応する割り込み処理を行う構成とすることができる。
【００１１】
この構成により、割り込み処理手段は、割り込み信号に対応する割り込み処理手順を簡易に認識することができ、適切な割り込み処理を行うことが可能となる。
【００１２】
また、本発明のデータ転送装置は、前記割り込み処理手段が、前記外部デバイス制御手段におけるレジスタへのアクセスと、装置内部の記憶手段に記憶されたデータ転送制御に関する情報の更新とを行う構成とすることができる。
【００１３】
この構成により、割り込み処理手段は、内部デバイス制御手段が本来行う割り込み処理を、その内部デバイス制御手段に代わって適切に行うことができる。
【００１４】
また、本発明のデータ転送装置は、前記内部デバイス制御手段が接続される伝送路と、前記外部デバイス制御手段及び前記割り込み処理手段とが接続される伝送路とが異なる構成とすることができる。
【００１５】
この構成により、割り込み処理時に割り込み処理手段と外部デバイス制御手段との間でやり取りされる信号が、内部デバイス制御手段が接続される伝送路を伝送されないようにすることができるため、その内部デバイス制御手段が接続される伝送路の負荷を軽減することが可能となる。
【００１６】
また、本発明のデータ転送方法は、装置内部のデバイスを制御する内部デバイス制御手段と、装置外部のデバイスとの間のデータ転送を制御する外部デバイス制御手段と、割り込み処理を行う割り込み処理手段とを有するデータ転送装置におけるデータ転送方法において、前記外部デバイス制御手段が前記装置外部のデバイスとの間のデータ転送において、割り込み処理の必要が生じた場合に装置内部へ割り込み信号を送出する割り込み信号送出ステップと、前記割り込み処理手段が前記外部デバイス制御手段によって割り込み信号が送出された場合に、前記内部デバイス制御手段に代わって、前記割り込み信号に対応する割り込み処理を行う割り込み処理ステップとを有する構成となる。
【００１７】
また、本発明のデータ転送方法は、前記内部デバイス制御手段が前記割り込み処理手段に対して、前記割り込み信号に対応する割り込み処理手順を通知する処理手順通知ステップを有し、前記割り込み処理ステップは、前記割り込み処理手段が前記内部デバイス制御手段からの割り込み信号に対応する割り込み処理手順に従って、前記割り込み信号に対応する割り込み処理を行う構成とすることができる。
【発明の効果】
【００１８】
本発明は、装置外部のデバイスとのデータ転送を制御する外部デバイス制御手段によって割り込み信号が送出された場合には、割り込み処理手段が内部デバイス制御手段に代わって割り込み信号に対応する処理を行うため、ＣＰＵ等の内部デバイス制御手段の負荷を軽減させることが可能となる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態のデータ転送装置について、図面を用いて説明する。
まず、本発明の第１の実施の形態について説明する。本発明の第１の実施の形態におけるデータ転送装置のブロック図を図１に示す。図１において、データ転送装置１００は、装置外部のデバイス（外部デバイス）１５０との間でデータ転送を行うものであり、ＣＰＵ１０２、メモリ１０４、デバイスコントローラ１０６、入力部１０８、出力部１１０及び割り込み処理部１１２を有する。
【００２０】
ＣＰＵ１０２、メモリ１０４、デバイスコントローラ１０６、入力部１０８、出力部１１０及び割り込み処理部１１２は、バス１２０に接続されている。このバス１２０は、接続された各デバイスの間でやり取りされる制御情報及びデータを伝送する。
【００２１】
ＣＰＵ１０２は、データ転送装置１００内の各デバイスを制御する。メモリ１０４は、データ転送装置１００と外部デバイス１５０との間でやり取りされるデータを一時的に記憶するとともに、デバイスコントローラ１０６がデータ転送を行う際に参照するデータ転送制御情報を記憶する。デバイスコントローラ１０６は、外部デバイス１５０と接続されており、この外部デバイス１５０との間のデータ転送を制御する。入力部１０８は、デバイスコントローラ１０６以外のインタフェースで外部からの信号、例えば映像信号や音声信号のような連続する信号データを入力する。出力部１１０は、例えばモニタであり、デバイスコントローラ１０６以外のインタフェースで外部へ信号を出力する。割り込み処理部１１２は、ＣＰＵ１０２に代わって割り込み処理を行う。
【００２２】
本実施の形態では、バス１２０としてＰＣＩ（Peripheral Component Interconnect）バスを想定している。また、デバイスコントローラ１０６として外部機器の接続に広く用いられているＵＳＢ（Universal Serial Bus）を想定し、外部デバイス１５０としてＵＳＢインタフェースを有する外部機器を想定している。
【００２３】
また、本実施の形態では、データ転送装置１００内の各デバイスと外部デバイス１５０との間のデータ転送は、全てメモリ１０４を介して行われるものとする。すなわち、例えば、入力部１０８から外部デバイス１５０へのデータ転送が行われる場合には、入力部１０８からメモリ１０４へのデータ転送と、メモリ１０４から外部デバイス１５０へのデータ転送とが行われる。また、外部デバイス１５０から出力部１１０へのデータ転送が行われる場合には、外部デバイス１５０からメモリ１０４へのデータ転送と、メモリ１０４から出力部１１０へのデータ転送とが行われる。
【００２４】
以上のように構成されたデータ転送装置１００について、図２を用いてその動作を説明する。なお、図２では入力部１０８から外部デバイス１５０へのデータ転送が行われる場合について説明する。
【００２５】
まず、ＣＰＵ１０２は、データ転送に先立って、割り込み処理部１１２に対して、割り込み処理手順を通知する（Ｓ１０）。割り込み処理部１１２は、この割り込み処理手順を受け、保持する。この割り込み処理手順には、割り込み処理部１１２が割り込み信号を受けた場合に行う割り込み処理の手順が示されている。
【００２６】
その後、ＣＰＵ１０２は、入力部１０８に対してデータ転送の命令を出す。入力部１０８は、この命令に従ってメモリ１０４へデータを転送する（Ｓ１１）。メモリ１０４は、転送されたデータを一時的に保持する。
【００２７】
次に、ＣＰＵ１０２は、メモリ１０４に一時記憶されたデータを外部デバイス１５０へ転送するために、デバイスコントローラ１０６のレジスタにアクセスするとともに（Ｓ１２）、データ転送制御情報をメモリ１０４に書き込む（Ｓ１３）。このデータ転送制御情報には、デバイスコントローラ１０６が転送すべきデータの転送先等、データ転送制御に関する情報が含まれている。
【００２８】
次に、ＣＰＵ１０２は、デバイスコントローラ１０６に対してデータ転送の命令を出す。デバイスコントローラ１０６は、この命令を受けると、ＣＰＵ１０２からバス１２０の制御権を取得する。更に、デバイスコントローラ１０６は、メモリ１０４からデータと、そのデータに対応するデータ転送制御情報とを読み出し、データ転送制御情報に応じて、外部デバイス１５０へデータを転送するために必要な処理を行う（Ｓ１４）。
【００２９】
その後、デバイスコントローラ１０６は、割り込み処理が必要であるか否かを判定する（Ｓ１５）。具体的には、デバイスコントローラ１０６は、外部デバイス１５０へのデータ転送の状況を監視し、そのデータ転送が完了した場合や失敗した場合には、割り込み処理が必要であると判断する。デバイスコントローラ１０６は、割り込み処理が必要であると判断した場合、バス１２０へ割り込み信号を送出する（Ｓ１６）。バス１２０へ送出された割り込み信号は、このバス１２０に接続された各デバイスに到達可能である。
【００３０】
割り込み処理部１１２は、割り込み信号を受けると、Ｓ１０においてＣＰＵ１０２から通知された割り込み処理手順に従い、割り込み処理を行う。ここで、割り込み処理部１１２が行う割り込み処理は、本来、ＣＰＵ１０２がデバイスコントローラ１０６からの割り込み信号を受けた場合に行う割り込み処理と同様である。具体的には、割り込み処理部１１２は、ＣＰＵ１０２からバス１２０の制御権を取得した上で、デバイスコントローラ１０６のレジスタにアクセスするとともに（Ｓ１７）、メモリ１０４内のデータ転送制御情報を更新する（Ｓ１８）。
【００３１】
割り込み処理部１１２による割り込み処理の後、ＣＰＵ１０２は、次のデータ転送処理があるか否かを判定する（Ｓ１９）。次のデータ転送処理がある場合には、ＣＰＵ１０２によるデバイスコントローラ１０６のレジスタへのアクセス（Ｓ１２）以降の動作が繰り返される。一方、次のデータ転送処理がない場合には、一連の動作が終了する。
【００３２】
なお、外部デバイス１５０から出力部１１０へのデータ転送が行われる場合には、前述のＳ１１乃至Ｓ１４の処理に代えて、以下のような処理が行われる。すなわち、ＣＰＵ１０２は、外部デバイス１５０からのデータをメモリ１０２へ一時記憶するために、デバイスコントローラ１０６のレジスタにアクセスするとともに、データ転送制御情報をメモリ１０４に書き込む。更に、ＣＰＵ１０２は、デバイスコントローラ１０６に対してデータ転送の命令を出す。デバイスコントローラ１０６は、この命令に従い、メモリ１０４から読み出したデータ転送制御情報に応じて、外部デバイス１５０からデータを読み出すために必要な処理を行い、読み出したデータをメモリ１０４へ書き込む。その後、ＣＰＵ１０２は、出力部１１０に対してデータ転送の命令を出し、出力部１１０は、この命令に従ってメモリ１０４からデータを読み出して出力する。
【００３３】
以上のように、本発明の第１の実施の形態によれば、デバイスコントローラ１０６が、外部デバイス１５０との間のデータ転送において、バス１２０へ割り込み信号を送出した場合、割り込み処理部１１２は、ＣＰＵ１０２に代わって割り込み処理を行う。このため、ＣＰＵ１０２は、割り込み処理を行う必要がなく、そのＣＰＵ１０２の負荷を軽減させることが可能となる。
【００３４】
特に、ＣＰＵ１０２の処理能力の上限に近い負荷が生じている場合には、このように割り込み処理部１１２がＣＰＵに代わって割り込み処理を行うようにすることにより、ＣＰＵ１０２の負荷が処理能力の上限に達してしまうことを防止することができる。また、従来は、割り込み信号に対応する割り込みステータスによっては、ＣＰＵ１０２が他の処理を継続し、その処理が終了するまで割り込み処理を行わない場合があるが、本実施形態では、割り込み処理部１１２がＣＰＵ１０２に代わって割り込み処理のみを行うため、迅速な割り込み処理が可能となる。
【００３５】
また、本発明の第１の実施の形態によれば、割り込み処理部１１２がＣＰＵ１０２から通知される割り込み処理手順を受け、この割り込み処理手順に従って、デバイスコントローラ１０６のレジスタへのアクセスと、メモリ１０４内のデータ転送制御情報の更新とを行っており、割り込み処理部１１２は、割り込み信号に対応する割り込み処理手順を簡易に認識し、ＣＰＵ１０２が本来行う割り込み処理を、そのＣＰＵ１０２に代わって適切に行うことができる。
【００３６】
次に、本発明の第２の実施の形態について説明する。本発明の第２の実施の形態におけるデータ転送装置のブロック図を図３に示す。図３において、データ転送装置２００は、装置外部のデバイス（記録デバイス）４００との間でデータ転送を行うものであり、ＣＰＵ２１０、ＣＰＵ制御デバイス２１１、スプールバッファメモリ２１２、メモリ２１３、デバイスコントローラ２２０、データ転送制御部２３０、入力部２４０及び出力部２５０を有する。
【００３７】
これらのうち、ＣＰＵ２１０、ＣＰＵデバイス制御部２１１及びデータ転送制御部２３０は、バス３００に接続されている。バス３００は、接続されたＣＰＵ２１０、ＣＰＵデバイス制御部２１１及びデータ転送制御部２３０の間でやり取りされる制御情報及びデータを伝送する。また、デバイスコントローラ２２０及びデータ転送制御部２３０は、バス３０１に接続され、このバス３０１は、デバイスコントローラ２２０とデータ転送制御部２３０との間でやり取りされる制御情報及びデータを伝送する。データ転送制御部２３０には、前述のように、バス３００を介してＣＰＵ２１０及びＣＰＵデバイス制御部２１１が接続され、バス３０１を介してデバイスコントローラ２２０が接続されるとともに、スプールバッファメモリ２１２、メモリ２１３、入力部２４０及び出力部２５０が接続されている。
【００３８】
ＣＰＵ２１０は、バス３００に接続されたＣＰＵ制御デバイス２１１及びデータ転送制御部２３０を制御する。スプールバッファメモリ２１２は、データ転送装置２００と外部デバイス４００との間でやり取りされるデータを一時的に記憶する。メモリ２１３は、デバイスコントローラ２２０がデータ転送を行う際に参照するデータ転送制御情報を記憶する。デバイスコントローラ２２０は、外部デバイス４００と接続されており、この外部デバイス４００との間のデータ転送を制御する。入力部２４０は、デバイスコントローラ２２０以外のインタフェースで外部からの信号、例えば映像信号や音声信号のような連続する信号データを入力する。出力部２５０は、例えばモニタであり、デバイスコントローラ２２０以外のインタフェースで外部へ信号を出力する。
【００３９】
データ転送制御部２３０は、データ転送装置２００内の各デバイスと外部デバイス４００との間のデータ転送を制御する。このデータ転送制御部２３０は、バス３００を介してＣＰＵ２１０に接続されるＣＰＵインタフェース（Ｉ／Ｆ）部２３１と、メモリ２１３に接続されるメモリインタフェース（Ｉ／Ｆ）部２３２と、バス３０１を介してデバイスコントローラ２２０に接続されるデバイスコントローラインタフェース（Ｉ／Ｆ）部２３３と、スプールバッファメモリ２１２に接続されるスプールバッファメモリインタフェース部（Ｉ／Ｆ）部２３４と、入力部２４０に接続される入力インタフェース（Ｉ／Ｆ）部２３５と、出力部２５０に接続される出力インタフェース（Ｉ／Ｆ）部２３６と、ＣＰＵＩ／Ｆ部２３１、メモリＩ／Ｆ部２３２、デバイスコントローラＩ／Ｆ部２３３、入力Ｉ／Ｆ部２３５及び出力Ｉ／Ｆ部２３６と、スプールバッファメモリ２１２との間のデータ転送を調停し、規定された転送速度でのデータ転送を可能にする機能を有するアービタ部２３７とを有する。
【００４０】
これらのうち、ＣＰＵＩ／Ｆ部２３１、デバイスコントローラＩ／Ｆ部２３３、スプールバッファＩ／Ｆ部２３４、入力Ｉ／Ｆ部２３５及び出力Ｉ／Ｆ部２３６は、制御バス３１０及びデータバス３２０に接続されている。また、アービタ部２３７は、制御バス３１０上に構成される。更に、ＣＰＵＩ／Ｆ部２３１及びメモリＩ／Ｆ部２３２は、制御バス３１１及びデータバス３２１に接続され、メモリＩ／Ｆ部２３２及びデバイスコントローラＩ／Ｆ部２３３は、制御バス３１２及びデータバス３２２に接続されている。
【００４１】
本実施の形態では、前述した第１の実施の形態と同様、バス３００及び３０１としてＰＣＩバスを想定している。また、デバイスコントローラ２２０として外部機器の接続に広く用いられているＵＳＢを想定し、外部デバイス４００としてＵＳＢインタフェースを有する外部機器を想定している。
【００４２】
また、本実施の形態では、データ転送装置２００内の各デバイスと外部デバイス４００との間のデータ転送は、全てスプールバッファメモリ２１２を介して行われるものとする。すなわち、例えば、入力部２４０から外部デバイス４００へのデータ転送が行われる場合には、入力部２４０からスプールバッファメモリ２１２へのデータ転送と、スプールバッファメモリ２１２から外部デバイス４００へのデータ転送とが行われる。また、外部デバイス４００から出力部２５０へのデータ転送が行われる場合には、外部デバイス４００からスプールバッファメモリ２１２へのデータ転送と、スプールバッファメモリ２１２から出力部２５０へのデータ転送とが行われる。
【００４３】
以上のように構成されたデータ転送装置２００について、図４を用いてその動作を説明する。なお、図４では入力部２４０から外部デバイス４００へのデータ転送が行われる場合について説明する。
【００４４】
まず、ＣＰＵ２１０は、データ転送に先立って、データ転送制御部２３０内のＣＰＵＩ／Ｆ部２１３を介し、デバイスコントローラＩ／Ｆ部２３３に対して、割り込み処理手順を通知する（Ｓ２０）。データ転送制御部２３０内のデバイスコントローラＩ／Ｆ部２３３は、この割り込み処理手順を受け、保持する。
【００４５】
その後、ＣＰＵ２１０は、データ転送制御部２３０内のＣＰＵＩ／Ｆ部２１３及び入力Ｉ／Ｆ部２３５を介し、入力部２４０に対してデータ転送の命令を出す。入力部２４０は、この命令に従って、データ転送制御部２３０内の入力Ｉ／Ｆ部２３５及びスプールバッファＩ／Ｆ部２３４を介し、スプールバッファメモリ２１２へデータを転送する（Ｓ２１）。スプールバッファメモリ２１２は、転送されたデータを一時的に保持する。
【００４６】
次に、ＣＰＵ２１０は、デバイスコントローラ２２０からバス３０１の制御権を取得し（Ｓ２２）、スプールバッファメモリ２１２に一時記憶されたデータを外部デバイス４００へ転送するために、データ転送制御部２３０内のＣＰＵＩ／Ｆ部２３１及びデバイスコントローラＩ／Ｆ部２３３を介し、デバイスコントローラ２２０のレジスタにアクセスする（Ｓ２３）。このアクセス終了後、ＣＰＵ２１０は、バス３０１の制御権を開放する（Ｓ２４）。更に、ＣＰＵ２１０は、データ転送制御部２３０内のＣＰＵＩ／Ｆ部２３１及びメモリＩ／Ｆ部２３２を介し、メモリ２１３へデータ転送制御情報を書き込む（Ｓ２５）。
【００４７】
次に、ＣＰＵ２１０は、データ転送制御部２３０内のＣＰＵＩ／Ｆ部２３１及びデバイスコントローラＩ／Ｆ部２３３を介し、デバイスコントローラ２２０に対してデータ転送の命令を出す。デバイスコントローラ２２０は、この命令を受けると、データ転送制御部２３０内のデバイスコントローラＩ／Ｆ部２３３及びスプールバッファＩ／Ｆ部２３４を介し、スプールバッファメモリ２１２からデータを読み出すとともに、デバイスコントローラＩ／Ｆ部２３３及びメモリＩ／Ｆ部２３２を介し、スプールバッファメモリ２１２から読み出したデータに対応するデータ転送制御情報をメモリ２１３から読み出す。更に、デバイスコントローラ２２０は、メモリ２１３から読み出したデータ転送制御情報に応じて、スプールバッファメモリ２１２から読み出したデータを外部デバイス４００へ転送するために必要な処理を行う（Ｓ２６）。
【００４８】
その後、デバイスコントローラ２２０は、割り込み処理が必要であるか否かを判定する（Ｓ２７）。具体的には、前述の第１の実施の形態と同様、デバイスコントローラ２２０は、外部デバイス４００へのデータ転送の状況を監視し、そのデータ転送が完了した場合や失敗した場合には、割り込み処理が必要であると判断する。デバイスコントローラ２２０は、割り込み処理が必要であると判断した場合、バス３０１へ割り込み信号を送出する（Ｓ２８）。バス３０１へ送出された割り込み信号は、このバス３０１に接続されたデータ転送制御部２３０に到達可能である。
【００４９】
データ転送制御部２３０は、デバイスコントローラＩ／Ｆ部２３３により割り込み信号を受けると、Ｓ２０においてＣＰＵ２１０から通知された割り込み処理手順に従い、割り込み処理を行う。ここで、データ転送制御部２３０が行う割り込み処理は、本来、ＣＰＵ２１０がデバイスコントローラ２２０からの割り込み信号を受けた場合に行う割り込み処理と同様である。具体的には、データ転送制御部２３０は、デバイスコントローラ２２０からバス３０１の制御権を取得した上で、そのデバイスコントローラ２２０のレジスタにアクセスするとともに（Ｓ３０）、そのアクセス終了後にバスの制御権を開放し（Ｓ３１）、メモリ２１３内のデータ転送制御情報を更新する（Ｓ３２）。
【００５０】
データ転送制御部２３０による割り込み処理の後、ＣＰＵ２１０は、次のデータ転送処理があるか否かを判定する（Ｓ３３）。次のデータ転送処理がある場合には、ＣＰＵ２１０によるバス３０１の制御権の取得（Ｓ２２）以降の動作が繰り返される。一方、次のデータ転送処理がない場合には、一連の動作が終了する。
【００５１】
なお、外部デバイス４００から出力部２５０へのデータ転送が行われる場合には、前述のＳ２１乃至Ｓ２６の処理に代えて、以下のような処理が行われる。すなわち、ＣＰＵ２１０は、外部デバイス４００からのデータをスプールバッファメモリ２１２へ一時記憶するために、デバイスコントローラ２２０のレジスタにアクセスするとともに、データ転送制御情報をメモリ２１３に書き込む。更に、ＣＰＵ２１０は、デバイスコントローラ２２０に対してデータ転送の命令を出す。デバイスコントローラ２２０は、この命令に従い、メモリ２１３から読み出したデータ転送制御情報に応じて、外部デバイス４００からデータを読み出すために必要な処理を行い、読み出したデータをスプールバッファメモリ２１２へ書き込む。その後、ＣＰＵ２１０は、出力部２５０に対してデータ転送の命令を出し、出力部２５０は、この命令に従ってスプールバッファメモリ２１２からデータを読み出して出力する。
【００５２】
以上のように、本発明の第２の実施の形態によれば、デバイスコントローラ２２０が、外部デバイス４００との間のデータ転送において、バス３０１へ割り込み信号を送出した場合、データ転送制御部２３０は、ＣＰＵ２１０に代わって割り込み処理を行う。このため、第１の実施の形態と同様、ＣＰＵ２１０は、割り込み処理を行う必要がなく、そのＣＰＵ２１０の負荷を軽減させることが可能となるとともに、迅速な割り込み処理が可能となる。
【００５３】
また、データ転送制御部２３０は、ＣＰＵ２１０から通知される割り込み処理手順を受け、この割り込み処理手順に従って、デバイスコントローラ２２０のレジスタへのアクセスと、メモリ２１３内のデータ転送制御情報の更新とを行っており、第１の実施の形態と同様、割り込み信号に対応する割り込み処理手順を簡易に認識し、ＣＰＵ２１０が本来行う割り込み処理を、そのＣＰＵ２１０に代わって適切に行うことができる。
【００５４】
更に、本発明の第２の実施の形態によれば、割り込み処理時にデータ転送制御部２３０とデバイスコントローラ２２０との間でやり取りされる信号は、バス３０１のみを伝送され、ＣＰＵ２１０が接続されたバス３００には伝送されないため，そのバス３００の負荷を軽減することが可能となる。
【００５５】
なお、上述した第１及び第２の実施の形態では、バス１２０、３００及び３０１としてＰＣＩバスを想定しているが、制御情報及びデータを伝送可能なバスであればよい。更には、入力部１０８及び２４０や、出力部１１０及び２５０は、複数構成されていてもよい。
【産業上の利用可能性】
【００５６】
以上のように、本発明にかかるデータ転送装置及びデータ転送方法は、ＣＰＵ等の内部デバイス制御手段の負荷を軽減させることが可能となるという効果を有し、装置外部のデバイスとの間のデータ転送を行うデータ転送装置及びデータ転送方法として有用である。
【図面の簡単な説明】
【００５７】
【図１】本発明の第１の実施の形態におけるデータ転送装置のブロック図
【図２】本発明の第１の実施の形態におけるデータ転送装置の動作のフローチャート
【図３】本発明の第２の実施の形態におけるデータ転送装置のブロック図
【図４】本発明の第２の実施の形態におけるデータ転送装置の動作のフローチャート
【図５】従来のデータ転送装置のブロック図
【符号の説明】
【００５８】
１００、２００  データ転送装置
１０２、２１０  ＣＰＵ
１０４、２１３  メモリ
１０６、２２０  デバイスコントローラ
１０８、２４０  入力部
１１０、２５０  出力部
１１２  割り込み処理部
１２０、３００、３０１  バス
１５０、４００  外部デバイス
２１１  ＣＰＵ制御デバイス
２１２  スプールバッファメモリ
２３０  データ転送制御部
２３１  ＣＰＵＩ／Ｆ部
２３２  メモリＩ／Ｆ部
２３３  デバイスコントローラＩ／Ｆ部
２３４  スプールバッファＩ／Ｆ部
２３５  入力Ｉ／Ｆ部
２３６  出力Ｉ／Ｆ部
２３７  アービタ部
３１０、３１１、３１２  制御バス
３２０、３２１、３２２  データバス
【図１】
2005222198.tif 000003
【図２】
2005222198.tif 000004
【図３】
2005222198.tif 000005
【図４】
2005222198.tif 000006
【図５】
2005222198.tif 000007