(57)【特許請求の範囲】
【請求項１】
共有するバスを介してデータを自動転送するデータ転送手段と、
前記データ転送手段がバスの使用権を要求してからバス使用権を獲得するまでの応答間隔を検出する応答間隔検出手段と、
前記応答間隔が所定値未満であると、前記データ転送手段を一定量のデータを転送するように制御し、前記応答間隔が所定値以上であると前記データ転送手段を前記一定データ量より多い量のデータを一括して転送するように制御する転送モード制御手段とを備えたことを特徴とするデータ転送制御回路。
【請求項２】
前記応答間隔検出手段は、前記応答間隔を時間として計測する時間計測手段であることを特徴とする請求項１記載のデータ転送制御回路。
【請求項３】
前記一括して転送するデータ量を、データ転送先のバッファがフルとなるデータ量に設定することを特徴とする請求項１記載のデータ転送制御回路。
【請求項４】
前記応答間隔検出手段は、前記バス使用権を獲得するまでに保留された転送要求の回数をカウントするカウンタを含み、該カウンタのカウント値により前記応答間隔を判断することを特徴とする請求項１記載のデータ転送制御回路。
【請求項５】
前記応答間隔検出手段は、前記バス使用権を獲得するまでに保留された転送要求の回数をカウントするカウンタを含み、該カウンタのカウント値により前記応答間隔を判断し、
前記一括して転送するデータ量を、前記一定データ量の前記転送要求の回数倍に設定することを特徴とする請求項１記載のデータ転送制御回路。
【請求項６】
共有するバスを介してデータを自動転送するデータ転送手段と、
前記バスの使用権を要求してからその使用権を獲得するまでの待ち時間を計測する待ち時間計測手段と、
一定値以下の待ち時間で前記バス権を取得して前記データの自動転送を開始したときは、予め設定された単位量のデータを自動転送した後バス権を開放し、前記待ち時間が前記一定値を越えて前記データの自動転送が開始されたとき、データ転送先のバッファがフルになるまで、その自動転送を継続するよう制御するラッシュアクセスモード制御手段を備えたことを特徴とするデータ転送制御回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ダイレクトメモリアクセス（ＤＭＡ）コントローラによるデータ転送制御回路に関する。
【０００２】
【従来の技術】
ＣＰＵ（中央処理装置）とバスを共有し、ＣＰＵに代わってメモリやデバイス間のデータ転送を行うためにダイレクトメモリアクセスコントローラが広く利用されている。このダイレクトメモリアクセスコントローラは、一般にデータ転送要求を受け付けると、バス調停回路に対しバスの使用権を要求する。バスの使用権を獲得すると、予め設定された単位量のデータを自動転送した後、バス権を開放する。ダイレクトメモリアクセスコントローラは、この動作を適当な周期で繰り返す。このようにデータを単位量ずつ繰り返し転送し、要求された全てのデータの転送を終えると処理を終了する。
【０００３】
【発明が解決しようとする課題】
ところで、上記のような従来の技術には、次のような解決すべき課題があった。
バス権の要求が競合すると、バス調停回路は、バス権の優先順位に基づいて優先順位の高いデバイスに対しバス権を与える。ＣＰＵによるバス権要求は、通常、最も優先度が高い。例えば、ＣＰＵの内部キャッシュがミスヒットしたような場合、ＣＰＵは、プログラムメモリを連続アクセスして必要なプログラムやデータを内部キャッシュに読み込む。市販されているＣＰＵには、このような動作時、ＣＰＵによるバス占有時間がかなり長いものがある。
【０００４】
ここで、例えばＤＭＡコントローラがプリントエンジンに対して印刷用データを転送しているときを考える。プリントエンジンは、バッファメモリから順番に印刷用データを読み出して印刷を実行する。ＤＭＡコントローラは、このバッファメモリに対し印刷用データを転送する。ところが、ＣＰＵがバスを長時間占有し、ＤＭＡ転送が待たされると、バッファメモリ中に読み出すべきデータが不足することがある。
【０００５】
このような場合、プリントエンジンは印刷出力を途中で中断し、いわゆる白紙の印刷を行ってしまう。こうした現象をアンダーランと呼んでいるが、ＤＭＡコントローラは、このアンダーランが発生しない範囲でデータ転送を行うことが要求される。即ち、ＤＭＡコントローラは、要求されるデータ転送速度を確保し、効率的に合理的にデータ転送を行う必要がある。
【０００６】
【課題を解決するための手段】
本発明は以上の点を解決するため次の構成を採用する。
〈構成１〉
共有するバスを介してデータを自動転送するデータ転送手段と、前記データ転送手段がバスの使用権を要求してからバス使用権を獲得するまでの応答間隔を検出する応答間隔検出手段と、前記応答間隔が所定値未満であると、前記データ転送手段を一定量のデータを転送するように制御し、前記応答間隔が所定値以上であると前記データ転送手段を前記一定データ量より多い量のデータを一括して転送するように制御する転送モード制御手段とを備えたことを特徴とするデータ転送制御回路。
【０００７】
〈構成２〉
構成１のデータ転送制御装置において、前記応答間隔検出手段は、前記応答間隔を時間として計測する時間計測手段であることを特徴とする。
〈構成３〉
構成１のデータ転送制御装置において、前記一括して転送するデータ量を、データ転送先のバッファがフルとなるデータ量に設定することを特徴とする。
【０００８】
〈構成４〉
構成１のデータ転送制御装置において、前記応答間隔検出手段は、前記バス使用権を獲得するまでに保留された転送要求の回数を前記応答間隙としてカウントするカウンタを含むことを特徴とする。
〈構成５〉
構成１のデータ転送制御装置において、前記応答間隔検出手段は、前記バス使用権を獲得するまでに保留された転送要求の回数を前記応答間隙としてカウントするカウンタを含み、前記一括して転送するデータ量を、前記一定データ量の前記転送要求の回数倍に設定することを特徴とする。
【０００９】
〈構成６〉
共有するバスを介してデータを自動転送するデータ転送手段と、前記バスの使用権を要求してからその使用権を獲得するまでの待ち時間を計測する待ち時間計測手段と、一定値以下の待ち時間で前記バス権を取得して前記データの自動転送を開始したときは、予め設定された単位量のデータを自動転送した後バス権を開放し、前記待ち時間が前記一定値を越えて前記データの自動転送が開始されたとき、データ転送先のバッファがフルになるまで、その自動転送を継続するよう制御するラッシュアクセスモード制御手段を備えたことを特徴とするデータ転送制御回路。
【００１０】
【発明の実施の形態】
以下、本発明の実施の形態を具体例を用いて説明する。
〈具体例１〉
この具体例のデータ転送制御回路は、バスの使用権を要求してからその使用権を獲得するまでの待ち時間が長いときは、大量のデータを一括転送するように制御する。このために、その待ち時間を計測する待ち時間計測手段を設ける。また、大量のデータを一括転送するために、ラッシュアクセスモードという動作状態を設定する。これを制御するために、ラッシュアクセスモード制御手段を設ける。
【００１１】
図１に、具体例１のデータ転送制御回路ブロック図を示す。
この図には、転送要求生成回路１、ＤＭＡ転送シーケンス回路２、微分回路３、ゲート４、転送待ちカウンタ５、切替値検出回路６、信号セレクタ７及びバス調停回路８が設けられている。
【００１２】
この回路は、図示しないＤＭＡコントローラ本体部分を制御し、図示しないメモリからバスを介して他のメモリやデバイスにデータ転送を送る制御を行う。ＤＭＡ転送動作のシーケンスは、ＤＭＡ転送シーケンス回路２が制御する。このＤＭＡ転送シーケンス回路２とこれに制御される回路を、この発明ではデータ転送回路２１と呼んでいる。また、転送待ちカウンタ５とその周辺回路のことを待ち時間計測手段２２と呼んでいる。更に、切替値検出回路６のことをラッシュアクセスモード制御手段２３と呼んでいる。
【００１３】
次に、図１に示す各部分の構成を具体的に説明する。
転送要求生成回路１は、タイマや外部トリガ転送回路等により構成されている。この回路によって、転送要求信号Ｃ１がＤＭＡ転送シーケンス回路２と微分回路３に入力される。微分回路３は、転送要求信号Ｃ１を受け入れて、クロックＣ２の１サイクル分の転送要求エッジ信号Ｃ３を生成し出力する回路である。ゲート４は、この転送要求エッジ信号Ｃ３を受け入れて、ラッシュアクセスモード信号Ｃ４がネゲートの状態で転送要求エッジ信号Ｃ３をカウントイネーブル信号Ｃ５にして出力する回路である。
【００１４】
このカウントイネーブル信号Ｃ５は、信号セレクタ７と転送待ちカウンタ５とに出力される。カウントイネーブル信号Ｃ５の値は、転送要求エッジ信号Ｃ３がアサートの場合はアサート、転送要求エッジ信号Ｃ３がネゲートの場合にはネゲートになる。また、ラッシュアクセスモード信号Ｃ４がアサートの場合には、ゲート４は閉じられ、転送要求エッジ信号Ｃ３の内容に関わらず、カウントイネーブル信号Ｃ５は常にネゲートとなる。
【００１５】
転送待ちカウンタ５は、アクセス終了信号Ｃ６を同期リセット信号とした同期カウンタである。この転送待ちカウンタ５は、カウントイネーブル信号Ｃ５がアサートされている状態で、クロックＣ２の立ち上がりエッジをカウントし、カウントアップする。また、アクセス終了信号Ｃ６がアサートされている状態では、クロックＣ２の立ち上がりエッジでカウンタ値が“０”にリセットされる。転送待ちカウンタ５は、こうしてカウンタ値Ｃ７を得て、切替値検出回路６に出力する。
【００１６】
切替値検出回路６は、予め一定の閾値を保持しており、転送待ちカウンタ５の出力するカウンタ値Ｃ７と比較する。カウンタ値Ｃ７が閾値を越えた場合には、ラッシュアクセスモード信号Ｃ４をアサートし、その他の場合にはラッシュアクセスモード信号Ｃ４をネゲートするように動作する。この閾値はデータ転送遅延の許容量から割り出した一定値である。
【００１７】
信号セレクタ７は、カウントイネーブル信号Ｃ５をゲート信号として受け入れるゲートから構成される。切替値検出回路６から入力するラッシュアクセスモード信号Ｃ４は、図の左側から入力する転送先バッファフル信号Ｃ８とノーマルアクセス終了信号Ｃ９のいずれかを選択するための制御信号である。即ち、信号セレクタ７は、カウントイネーブル信号Ｃ５がネゲートされ、ラッシュアクセスモード信号Ｃ４がアサートされている場合、転送先バッファフル信号Ｃ８を選択して出力する。これがアクセス終了信号Ｃ６としてＤＭＡ転送シーケンス回路２に向け出力される。
【００１８】
一方、カウントイネーブル信号Ｃ５がネゲートされ、ラッシュアクセスモード信号Ｃ４がネゲートされている場合には、ノーマルアクセス終了信号Ｃ９が選択されアクセス終了信号Ｃ６として、ＤＭＡ転送シーケンス回路２に出力される。なお、カウントイネーブル信号Ｃ５がアサートされている場合には、アクセス終了信号Ｃ６の値はネゲートされたまま一定に保持される。
【００１９】
ＤＭＡ転送シーケンス回路２は、バス調停回路８に対しバス権要求信号Ｃ１０を出力すると共に、バス調停回路８からバス権許可信号Ｃ１１を受け付けるよう構成されている。そして、転送要求信号Ｃ１がアサートされると、バス権要求信号Ｃ１０をアサートし、アクセス終了信号Ｃ６がアサートされるとバス権要求信号Ｃ１０をネゲートするよう構成されている。
【００２０】
〈動作〉
図２に、ノーマルアクセスモードのタイムチャートを示す。
まず、待機状態では、転送待ちカウンタ５のカウンタ値Ｃ７は、初期値状態即ち“０”になっている。また、ラッシュアクセスモード信号Ｃ４はネゲートされている。図２の（ｂ）に示すように、転送要求生成回路１から出力される転送要求信号Ｃ１がアサートされる。一般に、ＤＭＡコントローラは、例えば一定の時間おきに転送要求を発生させるため、タイマのカウントアップトリガ等がこの転送要求信号Ｃ１をアサートさせるきっかけになる。
【００２１】
ＤＭＡ転送シーケンス回路２は、図２の時刻ｔ１において、転送要求信号Ｃ１のアサートを検出し、バス権要求信号Ｃ１０をアサートする（図２（ｃ））。こうして、バス調停回路８に対しバス権の要求が行われる。同時に、微分回路３は、クロックＣ２の立ち上がりで転送要求信号Ｃ１を検出し、転送要求エッジ信号Ｃ３をアサートする。次の時刻ｔ２において、微分回路３は、転送要求エッジ信号Ｃ３をネゲートする。こうして、図２（ｅ）に示すように、クロックＣ２の１サイクル分のアサート信号を生成する。
【００２２】
ゲート４は、ラッシュアクセスモード信号Ｃ４がネゲートされているため、時刻ｔ１から時刻ｔ２に転送要求エッジ信号Ｃ３のアサートに従い、カウントイネーブル信号Ｃ５をアサートする。また、時刻ｔ２において、転送要求エッジ信号Ｃ３のネゲートに従って、カウントイネーブル信号Ｃ５をネゲートする。時刻ｔ２において、転送待ちカウンタ５は、カウントイネーブル信号Ｃ５のアサートを検出することによってカウントアップを行う。転送待ちカウンタ５のカウンタ値Ｃ７は、これにより“０”から“１”に変化する。
【００２３】
時刻ｔ２以降、転送待ちカウンタ５は、クロックＣ２をカウントし、そのカウンタ値Ｃ７を順に“１”ずつカウントアップしていく（図２（ｇ））。この動作は、ラッシュアクセスモード信号Ｃ４がアサートされるか、あるいはアクセス終了信号Ｃ６がアサートされるまで継続する。
【００２４】
バス調停回路８は、バス権の優先順位に基づいて、より優先順位の高いデバイスがバス権を要求していない限り、このデータ転送制御回路に対しバス権を与える。このとき、バス調停回路８の出力するバス権許可信号Ｃ１１がアサートされる（図２（ｄ））。時刻ｔ５で、バス権許可信号Ｃ１１がアサートされると、時刻ｔ６で、ＤＭＡ転送シーケンス回路２がバス権許可信号Ｃ１１を検出し、ＤＭＡ転送処理を開始する。指定された転送シーケンスが完了すると、ノーマルアクセス終了信号Ｃ９がアサートされる（図２（ｉ）、（ｊ））。
【００２５】
なお、この時刻ｔ８の時点で、転送待ちカウンタ５のカウンタ値は、閾値である一定値（ここでは切替値と表現している）に満たない。従って、切替値検出回路６は、ラッシュアクセスモード信号Ｃ４をネゲートしたまま維持する。信号セレクタ７は、ノーマルアクセス終了信号Ｃ９を選択して受け入れ、アクセス終了信号Ｃ６をアサートする。時刻ｔ９において、ＤＭＡ転送シーケンス回路２は、バス権要求信号Ｃ１０をネゲートする。バス調停回路８は、これを受けて、時刻ｔ９にバス権許可信号Ｃ１１をネゲートする。こうして、ＤＭＡ転送が完了し、バスが開放されてＣＰＵや他のデバイスにバス権が与えられる状態になる。
【００２６】
図３には、ラッシュアクセスモードのタイムチャートを示す。
図３（ｂ）に示す転送要求信号Ｃ１、（ｅ）、（ｆ）に示す転送要求エッジ信号Ｃ３、カウントイネーブル信号Ｃ５の出力までの動作は、図２に示したノーマルアクセスモードと変わらない。ここで、切替値検出回路６によるモード切り替えのための切替値をｎとする。
【００２７】
時刻ｔ２では、転送待ちカウンタ５のカウント値が“１”だけアップし、ｎに変化したとする。このとき、切替値検出回路６は、ラッシュアクセスモード信号Ｃ４をアサートする。これによって、ゲート４のゲート信号がネゲートされ、ゲート４の出力するカウントイネーブル信号Ｃ５の値をネゲート固定とし、ラッシュアクセスモード信号アサート後のカウントアップを禁止する。従って、転送待ちカウンタ５は、ｎのカウント値Ｃ７を出力し続ける。
【００２８】
ラッシュアクセスモード信号Ｃ４がアサートされると、信号セレクタ７は転送先バッファフル信号Ｃ８を受け入れるように動作を切り替える。即ち、この状態で、ＤＭＡ転送が続行され、時刻ｔ８において、図の（ｋ）に示すように、転送先バッファフル信号Ｃ８がアサートされると、信号セレクタ７はアクセス終了信号Ｃ６をクロックＣ２の１周期分アサートする。ＤＭＡ転送シーケンス回路２はこれを受けて、時刻ｔ９にバス権要求信号Ｃ１０をネゲートする。
【００２９】
転送待ちカウンタ５はアクセス終了信号Ｃ６の入力により、カウンタ値Ｃ７が０へ戻り、ラッシュアクセスモード信号Ｃ４がネゲートされることを防止する。また、ラッシュアクセスモード信号Ｃ４は信号セレクタ７の選択信号を切り替える。カウントイネーブル信号Ｃ５はネゲート固定となっているので、出力であるアクセス終了信号Ｃ６の値は転送先バッファフル信号Ｃ８の値と同一となる。バス調停回路８はバス権の優先順位に基づいて、より優先順位の高いデバイスがバス権を要求していない条件で、バスの開放を検出次第、時刻ｔ５において、バス権許可信号Ｃ１１をアサートする。
【００３０】
転送先バッファフル信号Ｃ８がアサートされると、ラッシュアクセスモード信号Ｃ４はアサートを維持しているので、信号セレクタ７の出力であるアクセス終了信号Ｃ６の値は転送先バッファフル信号Ｃ８の値と同一となる。転送先バッファフル信号Ｃ８がアサートされることにより、信号セレクタ７の内部遅延分だけ遅延して、アクセス終了信号Ｃ６がアサートされる。時刻ｔ９において、ＤＭＡ転送シーケンス回路２により、アクセス終了信号Ｃ６のアサートが検出されるが、時刻ｔ３から時刻ｔ９までにノーマルアクセス終了信号Ｃ９がアサートされていてもＤＭＡ転送シーケンス回路２はラッシュアクセスモード信号Ｃ４のアサートにより検出できない。
【００３１】
時刻ｔ９におけるＤＭＡ転送シーケンス２のアクセス終了信号Ｃ６のアサート検出により、ＤＭＡ転送シーケンス回路２はバス権要求信号Ｃ１０をネゲートする。時刻ｔ１０において、バス調停回路８はバス権要求信号Ｃ１０のネゲートを検出し、バス権が開放されたと判断し、バス権許可信号Ｃ１１をネゲートし、バス権を次のデバイスへ譲渡する。時刻ｔ９において、転送待ちカウンタ５は、転送先バッファフル信号Ｃ８のアサートを検出し、カウンタ値Ｃ７の値をリセットし、０とする。これにより、切替値検出回路６はラッシュアクセスモード信号Ｃ４をネゲートし、待機状態に戻る。
【００３２】
図４には、アクセスモード切り替え時のタイムチャートを示す。
これは、アクセスの終了と同時にラッシュアクセスモードになる条件が成立した場合の動作である。
時刻ｔ１において、微分回路３は転送要求信号Ｃ１を検出し、出力である転送要求エッジ信号Ｃ３をアサートする。時刻ｔ２において、微分回路３は転送要求エッジ信号Ｃ３をネゲートし、クロックＣ２の１サイクル分のアサート信号を生成する。ゲート４は、ゲート信号であるラッシュアクセスモード信号Ｃ４が待機状態のままでネゲートされているため、時刻ｔ１における転送要求エッジ信号Ｃ３のアサートに従い、カウントイネーブル信号Ｃ５をアサートする。また、時刻ｔ２における転送要求エッジ信号Ｃ３のネゲートに従い、カウントイネーブル信号Ｃ５をネゲートする。
【００３３】
時刻ｔ１において、ノーマルアクセス終了信号Ｃ９がアサートされるが、信号セレクタ７にゲート信号として入力されるカウントイネーブル信号Ｃ５も時刻ｔ１にてアサートされるため、信号セレクタ７の出力であるアクセス終了信号Ｃ６はネゲート固定となる。時刻ｔ２において、転送待ちカウンタ５はカウントイネーブル信号Ｃ５を検出する。アクセス終了信号Ｃ６がネゲートされているため、カウントアップを行い、カウンタ値Ｃ７はｎ−１から切替値であるｎへ変化する。
【００３４】
切替値検出回路６はカウンタ値Ｃ７が切替値ｎとなったことを検出し、時刻ｔ２のカウンタ値変化に対してラッシュアクセスモード信号Ｃ４をアサートする。ラッシュアクセスモード信号Ｃ４のアサートにより、ゲート４のゲート信号をネゲートとし、転送要求エッジ信号Ｃ３の変化に関わらず、カウントイネーブル信号Ｃ５の値をネゲート固定とし、ラッシュアクセスモード信号アサート後のカウントアップを禁止する。
【００３５】
ラッシュアクセスモード信号Ｃ４がアサートされることにより、信号セレクタ７は出力であるアクセス終了信号Ｃ６の値をノーマルアクセス終了信号Ｃ９から転送先バッファフル信号Ｃ８に切り替える。このため、ノーマルアクセス終了信号Ｃ６のアサートは無視され、以降はラッシュアクセスモードとして、転送先バッファフル信号Ｃ８のアサートを待つ。
【００３６】
図５に、転送終了と同時の転送要求タイムチャートを示す。
この図により、図４と同様の状況で、カウンタ値Ｃ７が切替値ｎに満たない場合の動作を説明する。
時刻ｔ１において、微分回路３は転送要求信号Ｃ１を検出し、出力である転送要求エッジ信号Ｃ３をアサートする。時刻ｔ２において、微分回路３は転送要求エッジ信号Ｃ３をネゲートし、クロックＣ２の１サイクル分のアサート信号を生成する。ゲート４はゲート信号であるラッシュアクセスモード信号Ｃ４が待機状態のままでネゲートされているため、時刻ｔ１における転送要求エッジ信号Ｃ３のアサートに従い、カウントイネーブル信号Ｃ５をアサートする。また、時刻ｔ２における転送要求エッジ信号Ｃ３のネゲートに従い、カウントイネーブル信号Ｃ５をネゲートする。
【００３７】
時刻ｔ１において、ノーマルアクセス終了信号Ｃ９がアサートされるが、信号セレクタ７にゲート信号として入力されるカウントイネーブル信号Ｃ５も時刻ｔ１にてアサートされる。このため、信号セレクタ７の出力であるアクセス終了信号Ｃ６はネゲート固定となる。時刻ｔ２において、転送待ちカウンタ５はカウントイネーブル信号Ｃ５を検出し、アクセス終了信号Ｃ６がネゲートされているため、カウントアップを行い、カウンタ値Ｃ７はｍ−１からｍへ変化する。
【００３８】
切替値検出回路６は、カウンタ値Ｃ７が切替値ｎに満たないため、ラッシュアクセスモード信号Ｃ４のネゲートを維持する。時刻ｔ２における、転送要求エッジ信号Ｃ３のネゲートにより、カウントイネーブル信号Ｃ５がネゲートされる。信号セレクタ７は、ノーマルアクセス終了信号Ｃ９がアサートされているため、アクセス終了信号Ｃ６をアサートする。時刻ｔ３において、ＤＭＡ転送シーケンス回路２は、アクセス終了信号Ｃ６のアサートを検出し、バス権要求信号Ｃ１０をネゲートする。同時に、転送待ちカウンタ５はアクセス終了信号Ｃ６のネゲートを検出し、カウンタ値Ｃ７をリセットし、待機時の値である０とする。
【００３９】
上記のような方法によって、ほぼ一定の周期でアサートされる転送要求の回数や、転送要求を出してから実際にバス権が与えられるまでの時間を、適当な待ち時間計測手段により計測し、この時間が一定値を越えた場合には、ラッシュアクセスモードとすればよい。従って、この待ち時間の計測手段の構成は、ハードウェアあるいはソフトウェア等、様々な回路に変更することができる。また、ラッシュアクセスモードの制御切り替えのためのハードウェアやソフトウェアも同等の趣旨で任意に変更して差し支えない。
【００４０】
〈具体例１の効果〉
以上のように、転送要求から使用権を獲得するまでの待ち時間を計測し、その待ち時間が一定値を越えた場合には、ラッシュアクセスモードとし、転送先のバッファがフルになるまで自動転送を行うので、バス権が長期間取得できなかったような場合に生じる転送先でのアンダーランやデータ待ちによるシーケンスの停滞を防止できる。
【００４１】
また、ラッシュアクセスモードが開始されると、転送先のバッファがフルになるまでバス権取得を維持するため、同じデータ量を複数回に分けて転送する場合に比べてバス権取得の手順が簡略化される。即ち、単位量ずつデータ転送を行う場合には、その都度バス権の取得開放、その他の手順が必要となるが、こうした処理が短縮されることによって、実質的にバスの占有時間が短くなる。従って、システム全体のスループットを向上させることができる。
【００４２】
なお、１回のラッシュアクセスにより省略可能なサイクル数は、次の式によって求めることができる。
α＝（（β／γ）−１）×（δ＋ε＋ζ−η）
ただし、各記号は以下の通りである。
α：短縮サイクル数
β：転送先バッファの空きデータ量
γ：通常１回のバス取得で転送されるデータ量
δ：バス権開放状態から転送開始までに必要なサイクル数
ε：転送完了からバス開放までに必要なサイクル数
ζ：ファーストアクセスに必要なサイクル数
η：連続アクセスに必要なサイクル数
具体的には、１回に付き、この計算で得られるような手順を省略できる。
【００４３】
〈具体例２〉
上記の具体例１では、データ転送先の許容量の限度であるバッファメモリがいっぱいになるまでのデータ量を設定し、一定以上バス権要求が待たされた場合、このバッファメモリがいっぱいになるまでデータを転送した。しかしながら、一般に、ＤＭＡコントローラは、バスの占有時間を十分に短くするために単位量ずつデータを転送する。そのために、タイマ等を用いて一定時間おきにバス権を取得し、単位量のデータを転送する。従って、もしバス権要求が受け入れられず、例えば３回分のデータ転送が待たされた場合には、３回分のデータを一括転送すればリカバリーが可能である。この具体例はこうした機能をデータ転送制御回路に持たせる。
【００４４】
図６には、具体例２のデータ転送制御回路ブロック図を示す。
この回路は、図１に示した回路のゲート４の代わりにエクスクルーシブオア回路１１を設けている。また、信号セレクタ７の代わりにゲート１０を設けている。転送要求生成回路１、ＤＭＡ転送シーケンス回路２、微分回路３等の動作は、具体例１と同様である。微分回路３から出力される転送要求エッジ信号Ｃ３は、転送待ちカウンタ５とエクスクルーシブオア回路１１に入力する。転送待ちカウンタ５の動作も具体例１と同様である。
【００４５】
即ち、転送待ちカウンタ５は、カウントイネーブル信号Ｃ１４がアサートされている状態でクロックＣ２の立ち上がりエッジをカウントし、カウントアップする。また、ノーマルアクセス終了信号Ｃ９がアサートされて、カウントイネーブル信号Ｃ１４がアサートされている状態で、クロックＣ２の立ち上がりエッジによりカウントダウンされる。クロックＣ２の立ち上がりエッジにおいて、転送要求エッジ信号Ｃ３とノーマルアクセス終了信号Ｃ９が共にアサートされている場合には、カウントイネーブル信号Ｃ１４がネゲートされて、転送待ちカウンタ５は値を変更しない。
【００４６】
エクスクルーシブオア回路１１は、転送要求エッジ信号Ｃ３とノーマルアクセス終了信号Ｃ９とを受け入れて、カウントイネーブル信号Ｃ１４を生成するように構成されている。終了検出回路９は、転送待ちカウンタ５の出力するカウンタ値Ｃ７を受け入れて、その最下位ビットを除いたビットのオア出力をラッシュアクセスモード信号Ｃ１２として出力する回路である。カウンタ値Ｃ７が“０”あるいは“１”以外の場合に、このラッシュアクセスモード信号Ｃ１２はアサートとなり、カウント値Ｃ７が“０”または“１”の際、ネゲートとなる。
【００４７】
ラッシュアクセスモード信号Ｃ１２は、ゲート１０を制御するように構成する。このゲート１０は、ラッシュアクセスモード信号Ｃ１２がネゲートされている場合、アクセス終了信号Ｃ１３の値をノーマルアクセス終了信号Ｃ９と同一にする。また、ラッシュアクセスモード信号Ｃ１２がアサートされている場合には、アクセス終了信号Ｃ１３の値をネゲートし、固定する。その他の部分は具体例１と同様の構成である。
【００４８】
〈動作〉
次に、具体例２の回路の動作を説明する。
図７は、ノーマルアクセスモードタイムチャートである。
まず、待機状態には、転送待ちカウンタ５の出力であるカウンタ値Ｃ７は初期状態であり、ラッシュアクセスモード信号はネゲートされている。
通常では、このタイムチャートのように、転送要求生成回路１において、ＤＭＡ転送の必要条件が発生すると転送要求信号Ｃ１がアサートされる。ＤＭＡ転送シーケンス回路２は、時刻ｔ１において、転送要求信号Ｃ１のアサートを検出して、バス権要求信号Ｃ１０をアサートし、バス調停回路８に対してバス権を要求する。
【００４９】
時刻ｔ１において同時に、微分回路３は、クロックＣ２の立ち上がりで転送要求信号Ｃ１を検出し、転送要求エッジ信号Ｃ３をアサートする。時刻ｔ２において、微分回路３は転送要求エッジ信号Ｃ３をネゲートし、クロックＣ２の１サイクル分のアサート信号を生成する。時刻ｔ２において、転送要求エッジ信号Ｃ３がアサートされ、ノーマルアクセス終了信号Ｃ９がネゲートされているため、２つの排他的論理和の出力であるカウントイネーブル信号Ｃ１４はアサートされている。転送待ちカウンタ５は、カウントイネーブル信号Ｃ１４のアサートを検出することにより、転送要求エッジ信号Ｃ３のアサートに従い、カウントアップし、カウンタ値Ｃ７の値は０から１へ変化する。
【００５０】
バス調停回路８は、バス権の優先順位に基づいて、より優先順位の高いデバイスがバス権を要求していない条件で、バス権の開放を検出次第、時刻ｔ５において、バス権許可信号Ｋをアサートする。時刻ｔ６において、ＤＭＡ転送シーケンス回路２は、バス権許可信号Ｋを検出し、時刻ｔ６からＤＭＡ転送を開始する。指定された転送シーケンスを完了すると、ノーマルアクセス終了信号Ｃ９がアサートされる。
【００５１】
時刻ｔ９において、ノーマルアクセス終了信号Ｃ９がアサートされ、転送要求エッジ信号Ｃ３がネゲートされているため、２つの排他的論理和の出力であるカウントイネーブル信号Ｃ１４はアサートされる。転送待ちカウンタ５はカウントイネーブル信号Ｃ１４のアサートを検出することにより、ノーマルアクセス終了信号Ｃ９のアサートに従い、カウントダウンし、カウンタ値Ｃ７の値は１から０へ変化する。
【００５２】
時刻ｔ９において、カウンタ値Ｃ７の値は１となっているため、ラッシュアクセスモード信号Ｃ１２はネゲートされている。そのため、ゲート１０は、ノーマルアクセス終了信号Ｃ９のアサートをアクセス終了信号Ｃ１３のアサートとして出力し、ＤＭＡ転送シーケンス回路２へ入力する。ＤＭＡ転送シーケンス回路２は、時刻ｔ９において、アクセス終了信号Ｃ１３のアサートを検出するとＤＭＡ転送を終了して、バス権要求信号Ｃ１０をネゲートする。
【００５３】
バス調停回路８は、時刻ｔ１０において、バス権要求信号Ｃ１０のネゲートを検出するとバス権が開放されたと判断し、バス権許可信号Ｃ１１をネゲートし、バス権を次のデバイスへ譲渡する。バス権許可信号Ｃ１１がネゲートされた時点でＤＭＡ転送が完了し、ＤＭＡ転送シーケンス回路２は転送要求信号Ｃ１のアサートを待つ待機状態となる。
【００５４】
図８は、ラッシュアクセスモードバス権待ち状態のタイムチャートである。
時刻ｔ１から時刻ｔ４までは図７のタイムチャートの時刻ｔ１から時刻ｔ４までと同じシーケンスとなる。
バス権要求信号Ｃ１０をアサートしても一向にバス権許可信号Ｃ１１がアサートされない場合、バス権を取得する前に次のＤＭＡ転送の必要条件が発生して、転送要求信号Ｃ１がアサートされる。ＤＭＡ転送シーケンス回路２は、バス権要求信号Ｃ１０がアサートされている条件では、この転送要求信号Ｃ１を無視する。
【００５５】
時刻ｔ６において、微分回路３はクロックＣ２の立ち上がりで転送要求信号Ｃ１を検出し、転送要求エッジ信号Ｃ３をアサートする。時刻ｔ７において、微分回路３は転送要求エッジ信号Ｃ３をネゲートし、クロックＣ２の１サイクル分のアサート信号を生成する。時刻ｔ７において、転送要求エッジ信号Ｃ３がアサートされ、ノーマルアクセス終了信号Ｃ９がネゲートされているため、２つの排他的論理和の出力であるカウントイネーブル信号Ｃ１４はアサートされている。
【００５６】
転送待ちカウンタ５は、カウントイネーブル信号Ｃ１４のアサートを検出することにより、転送要求エッジ信号Ｃ３のアサートに従い、カウントアップし、カウンタ値Ｃ７の値は“１”から“２”へ変化する。終了検出回路９はカウンタ値Ｃ７の値が“０”または“１”以外になったことを検出し、ラッシュアクセスモード信号Ｃ１２をアサートする。
【００５７】
図９は、ラッシュアクセスモード転送状態のタイムチャートである。
バス調停回路８は、バス権の優先順位に基づいて、より優先順位の高いデバイスがバス権を要求していない条件で、バス権の開放を検出次第、時刻ｔ１０において、バス権許可信号Ｃ１１をアサートする。時刻ｔ１１において、ＤＭＡ転送シーケンス回路２はバス権許可信号Ｃ１１を検出し、時刻ｔ１１からＤＭＡ転送を開始する。指定された転送シーケンスを完了すると、ノーマルアクセス終了信号Ｃ９がアサートされる。時刻ｔ１３において、ノーマルアクセス終了信号Ｃ９がアサートされ、転送要求エッジ信号Ｃ３がネゲートされているため、２つの排他的論理和の出力であるカウントイネーブル信号Ｃ１４はアサートされる。
【００５８】
転送待ちカウンタ５は、カウントイネーブル信号Ｃ１４のアサートを検出することにより、ノーマルアクセス終了信号Ｃ９のアサートに従い、カウントダウンし、カウンタ値Ｃ７の値はｍからｍ−１へ変化する。時刻ｔ１３において、カウンタ値Ｃ７の値はｍとなっているため、ラッシュアクセスモード信号Ｃ１２はアサートを維持し、ゲート１０はノーマルアクセス終了信号Ｃ９のアサートを無視してアクセス終了信号Ｃ１３の値をネゲート固定で維持する。そのため、ＤＭＡ転送シーケンス回路２へはアクセス終了の信号は入力されず、ＤＭＡ転送シーケンス回路２はＤＭＡ転送を続ける。
【００５９】
ノーマルアクセス終了信号Ｃ９のアサート毎にカウンタ値はカウントダウンを行い、カウンタ値が２となっている状態でノーマルアクセス終了信号Ｃ９がアサートされると、時刻ｔ１６において、ノーマルアクセス終了信号Ｃ９がアサートされる。転送要求エッジ信号Ｃ３がネゲートされているため、２つの排他的論理和の出力であるカウントイネーブル信号Ｃ１４はアサートされている。
【００６０】
転送待ちカウンタ５は、カウントイネーブル信号Ｃ１４のアサートを検出することにより、ノーマルアクセス終了信号Ｃ９のアサートに従い、カウントダウンし、カウンタ値Ｃ７の値は“２”から“１”へ変化する。終了検出回路９は、カウンタ値Ｃ７の値が“０”または“１”となったことを検出し、ラッシュアクセスモード信号Ｃ１２をネゲートする。これ以降は図７のタイムチャートにおける時刻ｔ８以降と同一となる。
【００６１】
通常のシーケンスとして完了するには、転送要求信号Ｃ１がアサートしてから次の転送要求信号Ｃ１がアサートされる前にバス権許可信号Ｋがアサートされ、ＤＭＡ転送を完了する必要がある。この際は転送要求信号Ｃ１とバス権許可信号Ｋが交互にアサートされることになる。
【００６２】
図１０は、ラッシュアクセスモード同時アサート状態のタイムチャートである。
時刻ｔ２において、転送要求信号Ｃ１が微分回路３により検出され、転送要求エッジ信号Ｃ３がアサートされる。よって、時刻ｔ３において、転送要求エッジ信号Ｃ３がアサートされる。ノーマルアクセス終了信号Ｃ９がアサートされているため、２つの排他的論理和の出力であるカウントイネーブル信号Ｃ１４はネゲートされている。転送待ちカウンタ５は、カウントイネーブル信号Ｃ１４のネゲートを検出することにより、カウントを行わず、カウンタ値Ｃ７の値はｍを維持する。これにより、転送要求エッジ信号Ｃ３のカウントアップとノーマルアクセス終了信号Ｃ９のカウントダウンによる相殺を実現する。
【００６３】
〈具体例２の効果〉
以上のように、２回以上転送要求が待たされた場合に、待たされた回数分の要求回数を転送待ちカウンタ５により計測し、単位量の要求回数倍に相当するデータ転送量を決定して、このデータを一括転送するので、具体例１と同様にアンダーランやデータ待ちによるシーケンスの停滞を防止できる。しかも、待たされた回数分だけＤＭＡ転送を行うため、短期間待たされた状態では、ＤＭＡ転送時間は短くなる。従って、バスの占有時間も短くなり、システムの負担が軽減される。
【００６４】
逆に長時間待たされた場合、転送されるデータ量が多くなり、連続転送によって具体例１と同様、バス権獲得のための処理等の時間が節約される。また、ＤＭＡ転送中に、転送要求信号Ｃ１を受け付けることが可能なため、対象デバイスとＤＭＡコントローラとの並列処理が可能になる。
【００６５】
更に、具体例１と比べるとバッファフル信号を受け入れる必要がなくなり、ハードウェアが簡単になる他、外部デバイスの種別を問わずに実現することが可能な特徴を持つ。なお、この具体例の場合にも、要求回数を計測する手段の構成や方法は任意に変更が可能である。
【００６６】
〈具体例３〉
これまでの具体例は、原則として従来のＤＭＡコントローラと同様に、単位量のデータを転送する動作を繰り返し、待ち時間が著しく長くなった場合にデータの一括転送を行うようにした。この具体例では、予め待ち転送要求回数を決めておき、それまでは単位量のデータ転送等も行わず、一定の条件が満たされると、一括してデータ転送を実行する。なお、この場合にも、データ転送先の許容量を越えないデータ転送量を設定することは言うまでもない。
【００６７】
図１１には、具体例３のデータ転送制御回路ブロック図を示す。
この図の転送要求生成回路１、微分回路３、ゲート４、転送待ちカウンタ５等は、具体例１のものと同様である。ここで、この具体例では、転送待ちカウンタ５の出力するカウンタ値Ｃ７を受け入れる切替値検出回路６がラッシュアクセスモード信号Ｃ１５を生成する。また、この出力を受け入れる微分回路１２を新たに設けている。さらに、具体例１において、転送先バッファフル信号Ｃ８を受け入れた信号セレクタ７が省略されている。即ち、転送先バッファフル信号Ｃ８をＤＭＡ転送シーケンス回路２に受け入れる構成となっている。
【００６８】
ゲート４の動作は具体例１と同様である。転送待ちカウンタ５は、クロックＣ２を同期クロックとし、転送要求エッジ信号Ｃ３がアサートされている状態で、そのクロックＣ２の立ち上がりエッジを検出し、カウントアップする。また、転送先バッファフル信号Ｃ８の入力によってリセットされる。
【００６９】
切替値検出回路６は、予め設定した閾値を備えており、カウンタ値Ｃ７がその閾値を超えた場合に、ラッシュアクセスモード信号Ｃ１５をアサートするように構成されている。この切替値検出回路６で設定する閾値は、ＤＭＡ転送対象のバッファのサイズから求められるバッファの空き空間を転送データが満たすだけの時間に対応させておく。
【００７０】
ラッシュアクセスモード信号Ｃ１５は、微分回路１２に入力するように構成されている。微分回路１２は、このラッシュアクセスモード信号Ｃ１５がアサートされると、最初の１クロック分でアサートするシーケンス開始信号Ｃ１６を出力する。このシーケンス開始信号Ｃ１６はＤＭＡ転送シーケンス回路２に入力する。ＤＭＡ転送シーケンス回路２は、このシーケンス開始信号Ｃ１６が入力すると、シーケンスを開始し、ＤＭＡの転送要求とＤＭＡ転送が開始される。
【００７１】
即ち、この回路は、転送要求生成回路１から転送要求があっても、転送待ちカウンタ５で一定の転送要求回数を計測し、その時間を経過したとき、ＤＭＡ転送シーケンス回路２を起動する。その後は、一挙にデータ転送を行い、相手先のバッファがフルになった場合に転送が終了する。
【００７２】
〈動作〉
図１２には、ラッシュアクセスモード切替待ち時間のタイミングチャートを示す。また、図１３には、ラッシュアクセスモードの転送時間のタイムチャートを示す。
これらの図を用いて、上記の回路の動作を説明する。
タイマまたは外部トリガ等で構成される転送要求生成回路１の出力である転送要求信号Ｃ１は微分回路３に接続される。転送要求信号Ｃ１は微分回路３によりクロックＣ２の１サイクル分の転送要求エッジ信号Ｃ３に加工され、ゲート４に接続される。ゲート４は、ラッシュアクセスモード信号Ｃ１５により制御され、ラッシュアクセスモード信号Ｃ１５がネゲートの状態でカウントイネーブル信号Ｃ５の値は転送要求エッジ信号Ｃ３がアサートの場合はアサート、転送要求エッジ信号Ｃ３がネゲートの場合はネゲートとなる。ラッシュアクセスモード信号Ｃ１５がアサートの場合、転送要求エッジ信号Ｃ３の値に関係なくカウントイネーブル信号Ｃ５の値は常にネゲートとなる。
【００７３】
転送待ちカウンタ５は、クロックＣ２を同期クロックとして、転送要求エッジ信号Ｃ３がアサートされている状態のクロックＣ２の立ち上がりエッジでカウントアップされ、転送先バッファフル信号Ｃ８を同期リセットとする同期カウンタである。切替値検出回路６はカウンタ値Ｃ７を監視し、規定の値となった時点でラッシュアクセスモード信号Ｃ１５をアサートする。切替値検出回路６における規定値は、ＤＭＡ転送対象バッファのサイズから求められるバッファの空き空間に対応する。ラッシュアクセスモード信号Ｃ１５は微分回路１２に接続される。微分回路１２は、ラッシュアクセスモード信号Ｃ１５がアサートされた最初の１クロック分でアサートするシーケンス開始信号Ｃ１６を出力する。
【００７４】
ＤＭＡ転送シーケンス回路２は、出力であるバス権要求信号Ｃ１０がバス調停回路８と接続され、バス調停回路８は出力であるバス権許可信号ＫがＤＭＡ転送シーケンス回路２と接続される。シーケンス開始信号Ｃ１６のアサートによりシーケンスを開始し、転送先バッファフル信号Ｃ８のアサートによりシーケンスが停止する。
【００７５】
まず、待機状態として、転送待ちカウンタ５の出力であるカウンタ値Ｃ７は初期状態であり、ラッシュアクセスモード信号Ｃ１５はネゲートされている。
転送要求生成回路１において、ＤＭＡ転送の必要条件が発生すると、転送要求信号Ｃ１がアサートされる。時刻ｔ１において、微分回路３は、クロックＣ２の立ち上がりで転送要求信号Ｃ１を検出し、転送要求エッジ信号Ｃ３をアサートする。時刻ｔ２において、微分回路３は転送要求エッジ信号Ｃ３をネゲートし、クロックＣ２の１サイクル分のアサート信号を生成する。
【００７６】
ゲート４はゲート信号であるラッシュアクセスモード信号Ｃ１５が待機状態のままネゲートされているため、時刻ｔ１における転送要求エッジ信号Ｃ３のアサートに従い、カウントイネーブル信号Ｃ５をアサートする。また、時刻ｔ２における転送要求エッジ信号Ｃ３のアサートに従い、カウントイネーブル信号Ｃ５をネゲートする。時刻ｔ２において、転送待ちカウンタ５はカウントイネーブル信号Ｃ５のアサートを検出することにより、カウントアップを行う。カウンタ値Ｃ７は待機状態の値である“０”から“１”へ変化する。
【００７７】
時刻ｔ３から時刻ｔ６までに、時刻ｔ２と同様にカウントイネーブル信号がアサートされており、カウンタ値Ｃ７は“１”ずつカウントアップされる。時刻ｔ６において、転送待ちカウンタ５がカウントイネーブル信号Ｃ５のアサートを検出すると、カウンタ値Ｃ７はｎ−１から切替値であるｎに変化する。切替値検出回路６は、カウンタ値Ｃ７が切替値ｎとなったことを検出し、時刻ｔ６のカウンタ値Ｃ７変化に対してラッシュアクセスモード信号Ｃ１５をアサートする。
【００７８】
ラッシュアクセスモード信号Ｃ１５のアサートにより、ゲート４のゲート信号をネゲートとし、転送要求エッジ信号Ｃ３の変化に関わらず、カウントイネーブル信号Ｃ５の値をネゲート固定とし、ラッシュアクセスモード信号アサート後のカウントアップを禁止する。
【００７９】
また、ラッシュアクセスモード信号Ｃ１５のアサートは微分回路１２へ入力される。時刻ｔ７において、微分回路１２は、ラッシュアクセスモード信号Ｃ１５を検出し、シーケンス開始信号Ｃ１６をアサートする。時刻ｔ８において、微分回路１２はシーケンス開始信号Ｃ１６をネゲートし、クロックＣ２の１サイクル分のアサート信号を生成する。ＤＭＡ転送シーケンス回路２は時刻ｔ８において、シーケンス開始信号Ｃ１６のアサートを検出して、バス権要求信号Ｃ１０をアサートし、バス調停回路８に対してバス権を要求する。バス調停回路８はバス権の優先順位に基づいて、より優先順位の高いデバイスがバス権を要求していない条件で、バスの開放を検出次第、時刻ｔ１０において、バス権許可信号Ｃ１１をアサートする。
【００８０】
時刻ｔ１において、ＤＭＡ転送シーケンス回路２はバス権許可信号Ｃ１１のアサートを検出し、時刻ｔ１からＤＭＡ転送処理を開始する。時刻ｔ４において、転送要求信号Ｃ１がアサートされた場合、微分回路３はクロックＣ２の立ち上がりで転送要求信号Ｃ１のアサートを検出し、転送要求エッジ信号Ｃ３をアサートし、時刻ｔ５において、転送要求エッジ信号Ｃ３をネゲートする。このクロックＣ２の１サイクル分のアサート信号はゲート４へ入力されるが、ゲート信号であるラッシュアクセスモード信号Ｃ１５がアサートされているため、ゲート４の出力であるカウントイネーブル信号は変化せず、ネゲートを維持する。
【００８１】
時刻ｔ８において、転送待ちカウンタ５は、転送先バッファフル信号Ｃ８のアサートを検出する。転送待ちカウンタ５は、カウンタ値Ｃ７の値をリセットし、待機状態の０にする。カウンタ値Ｃ７がリセットされることにより、切替値検出回路６はラッシュアクセスモード信号Ｃ１５をネゲートし、ゲート４のゲート信号をネゲートとする。これにより、ゲート４は、入力である転送要求エッジ信号Ｃ３に対応してカウントイネーブル信号Ｃ５が変化する待機状態となる。
【００８２】
時刻ｔ８において、ＤＭＡ転送シーケンス回路２は、転送先バッファフル信号Ｃ８を検出し、バス権要求信号Ｃ１０をネゲートする。時刻ｔ９において、バス調停回路８は、バス権要求信号Ｃ１０のネゲートを検出し、バス権が開放されたと判断し、バス権許可信号Ｃ１１をネゲートし、バス権を次のデバイスへ譲渡する。
【００８３】
〈具体例３の効果〉
以上のように、この回路は、ＤＭＡ転送要求があった場合にも、直ちにバス権要求をせず、一定転送要求回数を計測して、その後、バス権要求をし、一挙に転送先のバッファがフルになるまで転送を実行する。従って、転送先でのアンダーラン等が発生しない範囲で十分に動作開始を遅らせ、一括転送によりバス権取得処理等のためのバス占有時間を節約する。これにより、従来のＤＭＡコントローラとは異なり、バス権要求のための処理回数を最小限にすることができる。
【００８４】
なお、上記の例では、バスを介してデータ転送制御をするＤＭＡコントローラを中心に説明したが、いずれの具体例も、バスを共有する複数のＣＰＵに対して実行することができる。例えば、ＤＭＡ転送シーケンス回路を他のＣＰＵへの割り込み出力回路とし、他のＣＰＵへの割り込みに対する応答が遅い場合に、数回分の割り込み処理を一気に行うようにする。こうして、複数のＣＰＵ間でのデータ転送シーケンスを調整し最適化することができる。
【００８５】
更に、上記微分回路は、１サイクル分のクロックイネーブル信号を生成するために設けたが、転送要求生成回路の出力が１サイクル分のアサートを保証するような場合、これらの微分回路は省略が可能である。また、ラッシュアクセスモード終了のための信号として、転送先バッファフル信号を利用する例を説明したが、転送元バッファエンプティ信号によって転送処理を終了させるようにしても差し支えない。
【図面の簡単な説明】
【図１】具体例１のデータ転送制御回路ブロック図である。
【図２】ノーマルアクセスモードのタイムチャートである。
【図３】ラッシュアクセスモードのタイムチャートである。
【図４】アクセスモード切り替え時のタイムチャートである。
【図５】転送終了と同時の転送要求タイムチャートである。
【図６】具体例２のデータ転送制御回路ブロック図である。
【図７】ノーマルアクセスモードのタイムチャートである。
【図８】ラッシュアクセスモードバス権待ち状態のタイムチャートである。
【図９】ラッシュアクセスモード転送状態のタイムチャートである。
【図１０】ラッシュアクセスモード同時アサート状態のタイムチャートである。
【図１１】具体例３のデータ転送制御回路ブロック図である。
【図１２】ラッシュアクセスモード切替待ち時間のタイムチャートである。
【図１３】ラッシュアクセスモード転送期間のタイムチャートである。
【符号の説明】
１  転送要求生成回路
２  ＤＭＡ転送シーケンス回路
３  微分回路
４  ゲート
５  転送待ちカウンタ
６  切替値検出回路
７  信号セレクタ
８  バス調停回路
【図１】
0003677535.tif 000002
【図２】
0003677535.tif 000003
【図３】
0003677535.tif 000004
【図４】
0003677535.tif 000005
【図５】
0003677535.tif 000006
【図６】
0003677535.tif 000007
【図７】
0003677535.tif 000008
【図８】
0003677535.tif 000009
【図９】
0003677535.tif 000010
【図１０】
0003677535.tif 000011
【図１１】
0003677535.tif 000012
【図１２】
0003677535.tif 000013
【図１３】
0003677535.tif 000014