(57)【要約】【課題】  連続するライトデータ及びリードデータの転送レートを向上させることができるＤＭＡ転送制御システムを提供する。【解決手段】  バスコントローラ２１は、リードデータが連続して送信されるか否かを判定する判定部２１ｃ及びバッファ２１ａ，２１ｂを備え、外部デバイス３からリードデータを受信すると、ＤＭＡコントローラ２２から送信される次のリードデータのＤＭＡ＿ＲＥＱに対するＤＭＡ＿ＡＣＫを受信を待たずに、外部デバイス３にＤＭＡ＿ＡＣＫを送信し、次のリードデータを先読みする。【選択図】      図２
2006099358.tif 000002
【特許請求の範囲】
【請求項１】
外部バスを介して接続された外部デバイス及びバスコントローラと、前記バスコントローラと内部バスを介して接続されたＤＭＡコントローラ及びメモリコントローラとを備え、前記外部デバイスから連続して送信されるリードデータを前記バスコントローラ、前記ＤＭＡコントローラ、及び前記メモリコントローラを介してメモリにＤＭＡ転送するＤＭＡ転送制御システムであって、
前記バスコントローラは、第１及び第２のバッファを備え、
前記外部デバイスは、前記バスコントローラを介して前記ＤＭＡコントローラにＤＭＡ要求信号を送信し、
前記ＤＭＡコントローラは、ＤＭＡ要求信号を受信したとき、ＤＭＡ転送の制御情報が記載されたディスクリプタに基づいて、当該ＤＭＡ要求信号に対するリードデータ要求信号を前記バスコントローラに送信し、
前記バスコントローラは、受信したリードデータ要求信号を前記外部デバイスに送信し、
前記外部デバイスは、リードデータ要求信号を受信したとき、リードデータを前記バスコントローラに送信し、
前記バスコントローラは、第１のバッファに格納したリードデータを、前記ＤＭＡコントローラを介してメモリコントローラに送信させると共に、当該リードデータの次に送信されるリードデータを前記外部デバイスから先読みして前記第２のバッファに格納し、
前記バスコントローラは、前記第１のバッファに格納されたリードデータの前記メモリコントローラへの送信が終了したとき、前記第２のバッファに格納された次のリードデータを前記ＤＭＡコントローラに送信することを特徴とするＤＭＡ転送制御システム。
【請求項２】
前記バスコントローラは、前記外部デバイスからＤＭＡ要求信号を受信してから所定期間経過するまでに次のＤＭＡ要求信号を受信した場合、リードデータが連続して送信されると判定して請求項１記載のＤＭＡ転送を実行することを特徴とする請求項１記載のＤＭＡ転送制御システム。
【請求項３】
前記外部デバイスは、ＤＭＡ要求信号を前記バスコントローラを介して前記ＤＭＡコントローラに送信し、
前記ＤＭＡコントローラは、ＤＭＡ要求信号を受信したとき、ＤＭＡ転送制御情報が記載されたディスクリプタに基づいて、前記メモリコントローラにライトデータ要求信号を送信し、
前記メモリコントローラは、前記ライトデータ要求信号を受信したとき、前記メモリからライトデータを読み出して前記ＤＭＡコントローラに送信し、
前記ＤＭＡコントローラは、受信したライトデータを前記バスコントローラに送信すると共に、前記メモリコントローラに対して次のライトデータを先読みするためのライトデータ要求信号を送信し、
前記バスコントローラは、受信したライトデータを前記第１のバッファに格納し、
前記メモリコントローラは、次のライトデータを先読みするためのライトデータ要求信号を受信したとき、次のライトデータを前記メモリから読み出して前記ＤＭＡコントローラに送信し、
前記ＤＭＡコントローラは、前記次のライトデータを受信し、前記次のライトデータを前記バスコントローラに送信し、
前記バスコントローラは、前記第１のバッファに格納されたライトデータを読み出して前記外部デバイスに送信すると共に、前記次のライトデータを前記第２のバッファに格納し、
前記バスコントローラは、前記第１のバッファに格納されたライトデータの前記外部デバイスへの送信が終了したとき、前記第２のバッファに格納されたライトデータを前記外部デバイスへ送信することを特徴とする請求項１又は２記載のＤＭＡ転送制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部デバイス、バスコントローラ、ＤＭＡコントローラ、及び外部デバイスを備えるＤＭＡ転送制御システムに関する。
【背景技術】
【０００２】
図４は、従来のＤＭＡ転送制御システムのリード処理のタイミングチャートを示している。リード処理は、外部デバイス３から送信されるリードデータを図略のメモリに格納する処理である。外部デバイス３は、ＤＭＡ要求信号（ＤＭＡ＿ＲＥＱ）をバスコントローラ２１に送信する（Ｓ１０１）。バスコントローラ２１は、受信したＤＭＡ＿ＲＥＱをＤＭＡコントローラ２２に送信する（Ｓ１０２）。ＤＭＡコントローラ２２は、メモリコントローラ２３に対し図略のメモリからディスクリプタを読み出すためのディスクリプタ要求信号を送信する（Ｓ１０３）。ディスクリプタ要求信号を受信したメモリコントローラ２３は、図略のメモリからディスクリプタを読み出し、ＤＭＡコントローラ２２に送信する（Ｓ１０４）。
【０００３】
ディスクリプタを受信したＤＭＡコントローラ２２は、ＤＭＡ＿ＲＥＱに対する応答信号（ＤＭＡ＿ＡＣＫ）及びリードデータ要求信号をバスコントローラ２１に送信する（Ｓ１０５及びＳ１０６）。ＤＭＡ＿ＡＣＫ及びリードデータ要求信号を受信したバスコントローラ２１は、ＤＭＡ＿ＡＣＫ及びリードデータ要求信号を外部デバイス３に送信する（Ｓ１０７）。
【０００４】
ＤＭＡ＿ＡＣＫを受信した外部デバイス３は、リードデータをバスコントローラ２１に送信する（Ｓ１０８）。ここで、リードデータはバスコントローラが備える１個のバッファに格納される。バスコントローラ２１は、受信したリードデータをＤＭＡコントローラ２２に送信し（Ｓ１０９）、ＤＭＡコントローラ２２は、リードデータをメモリコントローラ２３に送信する（Ｓ１１０）。
【０００５】
外部デバイス３は、次のリードデータを図略のメモリに書き込むために、再びＤＭＡ＿ＲＥＱをバスコントローラ２１に送信し（Ｓ１１１）、バスコントローラ２１はＤＭＡ＿ＲＥＱをＤＭＡコントローラ２２に送信する（Ｓ１１２）。ＤＭＡ＿ＲＥＱを受信したＤＭＡコントローラ２２は、受信したリードデータをメモリコントローラ２３に送信する（Ｓ１１０）。リードデータを受信したメモリコントローラ２３は、受信したリードデータに対する応答信号であるリードデータ応答信号をＤＭＡコントローラ２２に送信する（Ｓ１１３）。
【０００６】
リードデータ応答信号を受信したＤＭＡコントローラ２２は、ＤＭＡ＿ＡＣＫ及びリードデータ要求信号をバスコントローラ２１に送信する（Ｓ１１４及びＳ１１５）。バスコントローラ２１は、ＤＭＡ＿ＡＣＫを受信すると、ＤＭＡ＿ＡＣＫ及びリードデータ要求信号を外部デバイス３に送信する（Ｓ１１６）。
【０００７】
ＤＭＡ＿ＡＣＫ及びリードデータ要求信号を受信した外部デバイス３は、リードデータをバスコントローラ２１に送信し（Ｓ１１７）、送信されたリードデータは、ＤＭＡコントローラ２２を介してメモリコントローラ２３に送信される（Ｓ１１８，Ｓ１１９）。リードデータを受信したメモリコントローラ２３は、受信したリードデータを図略のメモリに書き込む。
【０００８】
図５は、従来のＤＭＡ転送制御システムのライト処理を示している。ライト処理とは、外部デバイス３が図略のメモリからライトデータを読み出す処理である。外部デバイス３から送信されたＤＭＡ＿ＲＥＱは、バスコントローラ２１を介してＤＭＡコントローラ２２に送信される（Ｓ２０１，Ｓ２０２）。ＤＭＡコントローラ２２は、ディスクリプタ要求信号をメモリコントローラ２３に送信し（Ｓ２０３）、メモリコントローラ２３は、ディスクリプタを図略のメモリから読み出し、ＤＭＡコントローラ２２に送信する（Ｓ２０４）。
【０００９】
また、ＤＭＡコントローラ２２は、ディスクリプタに記述された情報に従って、ライトデータ要求信号をメモリコントローラ２３に送信し（Ｓ２０５）、メモリコントローラ２３はライトデータをＤＭＡコントローラ２２に送信する（Ｓ２０６）。ＤＭＡコントローラ２２は，ＤＭＡ＿ＡＣＫ及びライトデータをバスコントローラ２１に送信し（Ｓ２０７，Ｓ２０８）、バスコントローラ２１は、ＤＭＡ＿ＡＣＫ及びライトデータを外部デバイス３に送信する（Ｓ２０９）。
【００１０】
外部デバイス３は、次のライトデータを読み出すためのＤＭＡ＿ＲＥＱをバスコントローラ２１に送信し（Ｓ２１０）、バスコントローラ２１は、ＤＭＡ＿ＲＥＱをＤＭＡコントローラ２２に送信する（Ｓ２１１）。ＤＭＡコントローラ２２は、ライトデータ要求信号をメモリコントローラ２３に送信し（Ｓ２１２）、メモリコントローラ２３は、図略のメモリからライトデータを読み出してＤＭＡコントローラ２２に送信する（Ｓ２１３）。ＤＭＡコントローラ２２は、ＤＭＡ＿ＡＣＫ及びライトデータをバスコントローラ２１に送信し（Ｓ２１４、Ｓ２１５）、バスコントローラ２１は、ＤＭＡ＿ＡＣＫ及びライトデータを外部デバイス３に送信する（Ｓ２１６）。なお、本発明に関連する技術として特許文献１が知られている。
【特許文献１】特開２００４−３０６７２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、従来のＤＭＡ転送制御システムによるリード処理では、図４に示すようにバスコントローラ２１は、Ｓ１１４に示すＤＭＡ＿ＡＣＫ及びＳ１１５に示すリードデータ要求信号を受信した後でなければ、外部デバイス３にＤＭＡ＿ＡＣＫ及びリードデータ要求信号を送信することができなかった。従って、バスコントローラ２１は、ＤＭＡ＿ＡＣＫを受信してから、ＤＭＡコントローラ２２からのＤＭＡ＿ＡＣＫを受信するまで（Ｓ１１４）、リードデータ要求信号を外部デバイス３に送信することができず、待ち時間Ｔ１が発生し、リードデータを速やかに外部デバイス３に送信することができないという問題があった。
【００１２】
また、従来のＤＭＡ転送制御システムによるライト処理では、図５に示すようにバスコントローラ２１は、Ｓ２１４で示すＤＭＡ＿ＡＣＫを受信した後でなければ、ＤＭＡ＿ＡＣＫ及びライトデータを外部デバイス３に送信することができなかったため（Ｓ２１６）、Ｓ２１０で示すＤＭＡ＿ＲＥＱを受信してからＳ２１６で示すＤＭＡ＿ＡＣＫ及びライトデータが送信されるまでの間、一定の待ち時間Ｔ２が発生し、外部デバイス３はライトデータを速やかに読み出すことができないという問題があった。
【００１３】
本発明の目的は、連続するライトデータ及びリードデータの転送レートを向上させることができるＤＭＡ転送制御システムを提供することである。
【課題を解決するための手段】
【００１４】
本発明にかかるＤＭＡ転送制御システムは、外部バスを介して接続された外部デバイス及びバスコントローラと、前記バスコントローラと内部バスを介して接続されたＤＭＡコントローラ及びメモリコントローラとを備え、前記外部デバイスから連続して送信されるリードデータを前記バスコントローラ、前記ＤＭＡコントローラ、及び前記メモリコントローラを介してメモリにＤＭＡ転送するＤＭＡ転送制御システムであって、前記バスコントローラは、第１のバッファと、前記第１及び第２のバッファを備え、前記外部デバイスは、前記バスコントローラを介して前記ＤＭＡコントローラにＤＭＡ要求信号を送信し、前記ＤＭＡコントローラは、ＤＭＡ要求信号を受信したとき、ＤＭＡ転送の制御情報が記載されたディスクリプタに基づいて、当該ＤＭＡ要求信号に対するリードデータ要求信号を前記バスコントローラに送信し、前記バスコントローラは、受信したリードデータ要求信号を前記外部デバイスに送信し、前記外部デバイスは、リードデータ要求信号を受信したとき、リードデータを前記バスコントローラに送信し、前記バスコントローラは、第１のバッファに格納したリードデータを、前記ＤＭＡコントローラを介してメモリコントローラに送信させると共に、当該リードデータの次に送信されるリードデータを前記外部デバイスから先読みして前記第２のバッファに格納し、
前記バスコントローラは、前記第１のバッファに格納されたリードデータの前記メモリコントローラへの送信が終了したとき、前記第２のバッファに格納された次のリードデータを前記ＤＭＡコントローラに送信することを特徴とする。
【００１５】
また、上記構成において、前記バスコントローラは、前記外部デバイスからＤＭＡ要求信号を受信してから所定期間経過するまでに次のＤＭＡ要求信号を受信した場合、リードデータが連続して送信されると判定して請求項１記載のＤＭＡ転送を実行することが好ましい。
【００１６】
また、上記構成において、前記外部デバイスは、ＤＭＡ要求信号を前記バスコントローラを介して前記ＤＭＡコントローラに送信し、前記ＤＭＡコントローラは、ＤＭＡ要求信号を受信したとき、ＤＭＡ転送制御情報が記載されたディスクリプタに基づいて、前記メモリコントローラにライトデータ要求信号を送信し、前記メモリコントローラは、前記ライトデータ要求信号を受信したとき、前記メモリからライトデータを読み出して前記ＤＭＡコントローラに送信し、前記ＤＭＡコントローラは、受信したライトデータを前記バスコントローラに送信すると共に、前記メモリコントローラに対して次のライトデータを先読みするためのライトデータ要求信号を送信し、前記バスコントローラは、受信したライトデータを前記第１のバッファに格納し、前記メモリコントローラは、次のライトデータを先読みするためのライトデータ要求信号を受信したとき、次のライトデータを前記メモリから読み出して前記ＤＭＡコントローラに送信し、前記ＤＭＡコントローラは、前記次のライトデータを受信し、前記次のライトデータを前記バスコントローラに送信し、前記バスコントローラは、前記第１のバッファに格納されたライトデータを読み出して前記外部デバイスに送信すると共に、前記次のライトデータを前記第２のバッファに格納し、前記バスコントローラは、前記第１のバッファに格納されたライトデータの前記外部デバイスへの送信が終了したとき、前記第２のバッファに格納されたライトデータを前記外部デバイスへ送信することが好ましい。
【発明の効果】
【００１７】
請求項１記載の発明によれば、バスコントローラは、連続して送信されるリードデータのうち、リードデータを格納するための第１及び第２のバッファを備えている。そして、送信対象となるリードデータを第１のバッファに格納し、格納したリードデータをＤＭＡコントローラ及びメモリコントローラを介してメモリに格納させると共に、当該リードデータの次に送信されるリードデータを先読みして第２のバッファに格納する。
【００１８】
第１のバッファに格納されたリードデータのメモリコントローラへの送信が終了されると、バスコントローラは、第２のバッファに格納されたリードデータをメモリに書き込む処理を開始すると共に、次のリードデータを第１のバッファに格納する。このように、本発明では、連続して送信されるリードデータのうち、次に送信されるリードデータを先読みし、バスコントローラのバッファに格納するため、連続するリードデータの送信間隔が短縮され、リードデータの転送レートを向上させることができる。
【００１９】
請求項２記載の発明によれば、リードデータが連続して送信されるか否かの判定を正確に行うことができる。
【００２０】
請求項３記載の発明によれば、ＤＭＡコントローラは、メモリコントローラに対して次のライトデータを先読みするためのライトデータ要求信号を送信し、ライトデータ要求信号を受信したメモリコントローラは、次のライトデータをメモリから読み出す。読み出された次のライトデータは、ＤＭＡコントローラを介してバスコントローラに送信され、バスコントローラは、次のライトデータを第２のバッファに格納と共に、第１のバッファに格納されたライトデータを外部デバイスに送信する。そのため、連続して送信されるリードデータの転送間隔が短くなり、外部デバイスに対してライトデータを速やかに送信することができる。
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照しつつ本発明の実施の形態によるＤＭＡ転送制御システムを説明する。図１は、本発明にかかるＤＭＡ転送制御システムの全体構成図を示している。図１に示すＤＭＡ転送制御システムは、ＣＰＵ１、ＡＳＩＣ２、外部デバイス３，４、外部バス５、及びメモリ６を備えている。ＣＰＵ１、外部デバイス３，４、及びＡＳＩＣ２は、外部バス５により種々のデータが相互に送受信可能に接続されている。メモリコントローラ２３及びメモリ６間はバスライン７により接続されている。
【００２２】
ＡＳＩＣ２は、バスコントローラ２１、ＤＭＡコントローラ２２、メモリコントローラ２３、及び内部バス２４を備えている。バスコントローラ２１、ＤＭＡコントローラ２２、及びメモリコントローラ２３は、内部バス２４により種々のデータが相互に送受信可能に接続されている。バスコントローラ２１は、２個のバッファ２１ａ，２１ｂ及び判定部２１ｃを含む。メモリ６には、ディスクリプタが記憶されている。ディスクリプタとは、ＤＭＡ転送の方向やデータサイズ等を示すＤＭＡ転送の制御情報である。
【００２３】
バッファ２１ａ及びバッファ２１ｂは、それぞれ、容量の等しいＦＩＦＯメモリ等から構成される。バッファ２１ａは、リード処理時において、まず、ＤＭＡコントローラ２２に対して送信対象となるリードデータを格納し、バッファ２１ｂは前記送信対象となるリードデータの次に送信対象となるリードデータを格納する。そして、バッファ２１ａに格納されたリードデータが全て送信されると、バッファ２１ｂに格納されたリードデータを送信対象のリードデータとし、当該リードデータの次に送信対象となるリードデータをバッファ２１ａに格納する。すなわち、バッファ２１ａ及びバッファ２１ｂには、送信対象となるリードデータが交互に格納されることになる。
【００２４】
また、バッファ２１ａは、ライト処理時において、まず、外部デバイス３に対して送信対象となるライトデータを格納し、バッファ２１ｂは前記送信対象となるライトデータの次に送信対象となるライトデータを格納する。そして、バッファ２１ａに格納された全てのライトデータが出力されると、バッファ２１ｂに格納されているライトデータを送信対象のライトデータとし、当該ライトデータの次に送信対象となるライトデータをバッファ２１ａに格納する。すなわち、バッファ２１ａ及び２１ｂには送信対象となるライトデータを交互に格納される。
【００２５】
判定部２１ｃは、リード処理時において、外部デバイス３からリードデータが連続して送信されるか否かを判定する。具体的には、外部デバイス３から送信されるＤＭＡ＿ＲＥＱの受信間隔が所定時間以内である場合、リードデータが連続して送信されると判定する。
【００２６】
なお、ライトデータが連続して送信されるか否かの判定はＤＭＡコントローラ２２が行う。ＤＭＡコントローラ２２は、ディスクリプタに記載された情報を用いてメモリ６からライトデータが連続して送信されるか否かを判定する。ディスクリプタには、メモリ６における読み出し対象となるライトデータが格納されるアドレス、及びそのライトデータのデータ量が記載されている。また、ＤＭＡコントローラ２２は、バッファ２１ａ及びバッファ２１ｂの容量を把握している。そのため、ＤＭＡコントローラ２２は、ライトデータが連続して送信されるか否かを判定することができる。
【００２７】
図２は、ＤＭＡ転送制御システムのリード処理を示すシーケンス図である。図２に示すＳ１〜Ｓ７の処理は図４に示すＳ１０１〜Ｓ１０７の処理と同じであるため説明を省く。Ｓ８において、外部デバイス３はリードデータをバスコントローラ２１に送信する。バスコントローラ２１は、受信したリードデータをバッファ２１ａに格納し、バッファ２１ａからリードデータを読み出してＤＭＡコントローラ２２に送信する（Ｓ９）。このリードデータは、ＤＭＡコントローラ２２によりメモリコントローラ２３に送信され（Ｓ１０）、メモリ６に書き込まれる。Ｓ１１にて、外部デバイス３は、次のリードデータに対するＤＭＡ＿ＲＥＱをバスコントローラ２１に送信する。ＤＭＡ＿ＲＥＱを受信したバスコントローラ２１は、ＤＭＡ＿ＡＣＫを外部デバイス３に送信する（Ｓ１３）。ＤＭＡ＿ＲＥＱを受信したバスコントローラ２１は、受信したＤＭＡ＿ＲＥＱをＤＭＡコントローラ２２に送信する（Ｓ１２）。
【００２８】
ＤＭＡ＿ＡＣＫを受信した外部デバイス３は、ＤＭＡ＿ＡＣＫ及びリードデータをバスコントローラ２１に送信する（Ｓ１４）。ここで、バスコントローラ２１は、Ｓ１４にて送信されたリードデータをバッファ２１ｂに格納する。従って、バスコントローラ２１は、バッファ２１ａに記憶されたリードデータをＤＭＡコントローラ２２に送信する処理（Ｓ１２）と、次のリードデータをバッファ２１ｂに書き込む処理（Ｓ１４）とを並行して行うことができる。
【００２９】
リードデータを受信したメモリコントローラ２３は、リードデータに対する応答信号であるリードデータＡＣＫをＤＭＡコントローラ２２に送信し（Ｓ１５）、ＤＭＡコントローラ２２は、ＤＭＡ＿ＡＣＫ及びリードデータ要求信号をバスコントローラ２１に送信する（Ｓ１６，Ｓ１７）。ＤＭＡ＿ＡＣＫ及びリードデータ要求信号を受信したバスコントローラ２１は、リードデータをＤＭＡコントローラ２２に送信し（Ｓ１８）、ＤＭＡコントローラ２２は、受信したリードデータをメモリコントローラ２３に送信し（Ｓ１９）、メモリコントローラ２３は、ディスクリプタによって指定されたメモリ６のアドレスにリードデータを書き込む。以上によりリード処理が終了される。
【００３０】
従来のＤＭＡ転送制御システムによるリード処理は、図４に示すように、バスコントローラ２１は、Ｓ１１４に示す次のリードデータのＤＭＡ＿ＲＥＱに対するＤＭＡ＿ＡＣＫを受信しなければ、外部デバイス３にリードデータ要求信号を送信することができなかったため、待ち時間Ｔ１が発生するという問題があった。一方、本ＤＭＡ転送制御システムによるリード処理は、Ｓ１１にて、ＤＭＡ＿ＲＥＱを受信したバスコントローラ２１は、次のリードリードデータのＤＭＡ＿ＲＥＱに対するＤＭＡ＿ＡＣＫの受信を待たずに、次のリードデータを先読みして受信しているため（Ｓ１４）、待ち時間Ｔ１が発生せず、リード処理の高速化を図ることができる。
【００３１】
次にＤＭＡ転送制御システムのライト処理について説明する。図３は、ＤＭＡ転送制御システムのライト処理を示すシーケンス図である。図３に示すＳ２１〜Ｓ２５の処理は、図５に示すＳ２０１〜Ｓ２０５の処理と同一であるため説明を省く。Ｓ２６において、メモリコントローラ２３はライトデータをＤＭＡコントローラ２２に送信する。ライトデータを受信したＤＭＡコントローラ２２は、バスコントローラ２１にＤＭＡ＿ＡＣＫ及びライトデータを送信すると共に（Ｓ２７，Ｓ２８）、メモリコントローラ２３にライトデータ要求信号を送信する（Ｓ３０）。バスコントローラ２１は、受信したライトデータ及びＤＭＡ＿ＡＣＫを外部デバイス３に送信する（Ｓ２９）。
【００３２】
外部デバイス３は、ＤＭＡ＿ＲＥＱをバスコントローラ２１に送信し（Ｓ３３）、バスコントローラ２１は、受信したＤＭＡ＿ＲＥＱをＤＭＡコントローラ２２に送信する（Ｓ３４）。ＤＭＡ＿ＲＥＱを受信したＤＭＡコントローラ２２は、ＤＭＡ＿ＡＣＫをバスコントローラ２１に送信し（Ｓ３５）、バスコントローラ２１はライトデータ及びＤＭＡ＿ＡＣＫを外部デバイス３に送信する（Ｓ３６）。
【００３３】
ここで、従来のＤＭＡ転送制御システムでは、図５に示すように、Ｓ２０８の処理の終了後、メモリコントローラ２３に対して速やかにライトデータ要求信号が送信されていない。すなわち、バスコントローラ２１は、ＤＭＡ＿ＡＣＫ及びライトデータを受信しなければ（Ｓ２１４，Ｓ２１５）、外部デバイス３にライトデータを送信することができなかった（Ｓ２１６）。その結果、従来の方法では、ＤＭＡ＿ＲＥＱを受信してから、次のライトデータを外部デバイス３に送信するまでに、待ち時間Ｔ２が発生することとなり、ライト処理を高速に行うことができないという問題を有していた。
【００３４】
一方、本ＤＭＡ転送制御システムでは、ＤＭＡコントローラ２２が、ライトデータの読み取り処理が連続して行われると判定した場合、Ｓ２８の処理の終了後、ＤＭＡコントローラ２２は、速やかにライトデータ要求信号をメモリコントローラ２３に送信している（Ｓ３０）。そして、Ｓ３０のライトデータ要求信号に対するライトデータを受信したバスコントローラ２１は、Ｓ３２にてライトデータを受信した後、ＤＭＡコントローラ２２からのＤＭＡ＿ＡＣＫの受信を待たずに、受信したライトデータを速やかに外部デバイス３に送信している（Ｓ３６）。そのため、図５に示す待ち時間Ｔ２が発生せず、ライト処理の高速化を図ることが可能となる。
【００３５】
また、ここで、バスコントローラ２１は、２個のバッファ２１ａ及び２１ｂを備え、外部デバイス３に対して送信するライトデータをバッファ２１ａに格納し、ＤＭＡコントローラ２２から送信されるライトデータをバッファ２１ｂに格納している。このため、図３に示すように、外部デバイス３に対するライトデータの送信処理と（Ｓ３６）、ＤＭＡコントローラ２２から送信されるライトデータの受信処理（Ｓ３２）とを並行して行うことができる。
【００３６】
以上説明したように、本ＤＭＡ転送制御システムによれば、バスコントローラ２１は２個のバッファ２１ａ，２１ｂを備えているため、リード処理時においては、図２のＳ９及びＳ１４に示すように、リードデータの送信処理及び当該リードデータの次のリードデータの書き込み処理を並行して行うことができる。そのため、従来のＤＭＡ転送制御システムのように、図４に示す待ち時間Ｔ１が発生することなく、リード処理の高速化を図ることができる。
【００３７】
また、ライト処理時においては、ＤＭＡコントローラ２２は、ライトデータが連続して送信されるか否かを判定し、連続して送信されると判定した場合、図３に示すようにライトデータをバスコントローラ２１に送信すると共に（Ｓ２８）、ライトデータ要求信号をメモリコントローラ２３に送信し（Ｓ３０）、Ｓ３２にてライトデータを受信したバスコントローラ２１は、ＤＭＡコントローラからのＤＭＡ＿ＡＣＫの受信を待たずに、ライトデータを外部デバイス３に送信しているため（Ｓ３６）、図５に示すような待ち時間Ｔ２が発生せず、ライト処理の高速化を図ることができる。
【００３８】
なお、上記説明において、バスコントローラ２１は、２個のバッファ２１ａ及び２１ｂを備えていたが、本発明はこれに限定されず、３個以上のバッファを設けても良いし、物理的に一つのバッファを複数の領域に分けたものを採用しても良い。
【図面の簡単な説明】
【００３９】
【図１】ＤＭＡ転送制御システムの全体構成図を示している。
【図２】ＤＭＡ転送制御システムのリード処理を示すシーケンス図である。
【図３】ＤＭＡ転送制御システムのライト処理を示すシーケンス図である。
【図４】従来のＤＭＡ転送制御システムによるリード処理を示すシーケンス図である。
【図５】従来のＤＭＡ転送制御システムによるライト処理を示すシーケンス図である。
【符号の説明】
【００４０】
１  ＣＰＵ
２  ＡＳＩＣ
３  外部デバイス
４  外部デバイス
５  外部バス
６  メモリ
７  バスライン
２１  バスコントローラ
２１ａ  バッファ
２１ｂ  バッファ
２１ｃ  判定部
２２  コントローラ
２３  メモリコントローラ
２４  内部バス
【図１】
2006099358.tif 000003
【図２】
2006099358.tif 000004
【図３】
2006099358.tif 000005
【図４】
2006099358.tif 000006
【図５】
2006099358.tif 000007