(57)【要約】【課題】ＤＭＡ転送において、コマンドの先行発行を行っても、オーバーフローやアンダーフローを起こさないで、データ転送に要する時間を短縮する。【解決手段】リードデータカウンタ１３は、未リードデータ量Ｑｒについて、コマンド発行ごとにリードデータ量ＱＲを加算しかつデータリードごとにカウントダウンする。リードコマンド発行制御部１１は、リードコマンド許否判定量Ｊｒ（内部メモリ２の空き容量Ｑ０−未リードデータ量Ｑｒ）がリードデータ量ＱＲ以上あるときリードコマンドの発行を実行する。ライトデータカウンタ２３は、未ライトデータ量Ｑｗについて、コマンド発行ごとにライトデータ量ＱＷを加算しかつデータライトごとにカウントダウンする。ライトコマンド発行制御部２１は、ライトコマンド許否判定量Ｊｗ（内部メモリ２に蓄積のデータ量Ｑ−未ライトデータ量Ｑｗ）がライトデータ量ＱＷ以上あるときライトコマンドの発行を実行する。【選択図】図１
2008083911.tif 000002
【特許請求の範囲】
【請求項１】
リードデータを一時的に格納する内部メモリを備え、転送元から転送先へのダイレクトメモリアクセス転送を行うＤＭＡ転送制御装置であって、
リードコマンドが発行されるごとにそのコマンドで取得すべきリードデータ量を加算し、かつデータリードごとにカウントダウンすることにより、未転送分のデータ量である未リードデータ量をカウントするリードデータカウンタと、
前記内部メモリの空き容量から前記リードデータカウンタによる前記未リードデータ量が減算されるリードコマンド許否判定量が次の取得目標のリードデータ量以上あるか否かを判定し、その判定結果が肯定的であるときはリードコマンドの発行を実行するリードコマンド発行制御部とを備えたＤＭＡ転送制御装置。
【請求項２】
リードデータを一時的に格納する内部メモリを備え、転送元から転送先へのダイレクトメモリアクセス転送を行うＤＭＡ転送制御装置であって、
ライトコマンドが発行されるごとにそのコマンドで発行すべきライトデータ量を加算し、かつデータライトごとにカウントダウンすることにより、未転送分のデータ量である未ライトデータ量をカウントするライトデータカウンタと、
前記内部メモリに蓄積されているデータ量から前記未ライトデータ量が減算されるライトコマンド許否判定量が次の発行目標のライトデータ量以上あるか否かを判定し、その判定結果が肯定的であるときはライトコマンドの発行を実行するライトコマンド発行制御部とを備えたＤＭＡ転送制御装置。
【請求項３】
リードデータを一時的に格納する内部メモリを備え、転送元から転送先へのダイレクトメモリアクセス転送を行うＤＭＡ転送制御装置であって、
リードコマンドが発行されるごとにそのコマンドで取得すべきリードデータ量を加算し、かつデータリードごとにカウントダウンすることにより、未転送分のデータ量である未リードデータ量をカウントするリードデータカウンタと、
前記内部メモリの空き容量から前記リードデータカウンタによる前記未リードデータ量が減算されるリードコマンド許否判定量が次の取得目標のリードデータ量以上あるか否かを判定し、その判定結果が肯定的であるときはリードコマンドの発行を実行するリードコマンド発行制御部と、
ライトコマンドが発行されるごとにそのコマンドで発行すべきライトデータ量を加算し、かつデータライトごとにカウントダウンすることにより、未転送分のデータ量である未ライトデータ量をカウントするライトデータカウンタと、
前記内部メモリに蓄積されているデータ量から前記未ライトデータ量が減算されるライトコマンド許否判定量が次の発行目標のライトデータ量以上あるか否かを判定し、その判定結果が肯定的であるときはライトコマンドの発行を実行するライトコマンド発行制御部とを備えたＤＭＡ転送制御装置。
【請求項４】
さらに、前記リードコマンドの発行時に、各チャネルで共通のリードマスタＩＤを出力するリードマスタＩＤ発行部を備えている請求項１から請求項３までのいずれかに記載のＤＭＡ転送制御装置。
【請求項５】
さらに、それぞれ異なるチャネルのデータ転送の処理が可能な、リードコマンド発行制御部とリードマスタＩＤ発行部とを含むリードコマンド発行部と、ライトコマンド発行制御部とライトマスタＩＤ発行部とを含むライトコマンド発行部と、リードデータ取得部と、ライトデータ発行部と、ライトレスポンス取得部とを備えている請求項１から請求項３までのいずれかに記載のＤＭＡ転送制御装置。
【請求項６】
さらに、前記リードデータ取得部が前記リードコマンド発行部からチャネル番号を引き継ぐことと、前記ライトコマンド発行部が前記リードデータ取得部からチャネル番号を引き継ぐことと、前記ライトデータ発行部が前記ライトコマンド発行部からチャネル番号を引き継ぐことと、前記ライトレスポンス取得部が前記ライトデータ発行部からチャネル番号を引き継ぐことのいずれかまたは複数を制御するチャネル制御部を備えている請求項５に記載のＤＭＡ転送制御装置。
【請求項７】
前記リードコマンド発行部と前記リードデータ取得部間、または前記リードデータ取得部と前記ライトコマンド発行部間、または前記ライトコマンド発行部と前記ライトデータ発行部間、または前記ライトデータ発行部と前記ライトレスポンス取得部間のいずれかまたは複数にチャネル用ＦＩＦＯを備えている請求項６に記載のＤＭＡ転送制御装置。
【請求項８】
前記チャネル制御部は、それぞれ独立に動作する、前記リードコマンド発行部用のリードポインタと、前記リードデータ取得部用のリードポインタと、前記ライトコマンド発行部用のリードポインタと、前記ライトデータ発行部用のリードポインタと、前記ライトレスポンス取得部用の各リードポインタのいずれかまたは複数をもつチャネル用ＦＩＦＯを備えている請求項６に記載のＤＭＡ転送制御装置。
【請求項９】
前記リードデータカウンタでの未リードデータ量と、前記ライトデータカウンタでの未ライトデータ量と、前記発行予定のリードコマンドでの取得目標のリードデータ量と、前記発行予定のライトコマンドでの発行目標のライトデータ量は、前記ＤＭＡ転送制御装置で設定された単位サイズで表される請求項１から請求項８までのいずれかに記載のＤＭＡ転送制御装置。
【請求項１０】
前記内部メモリは、前記単位サイズのデータ幅を有し、リードデータのチャネルが移り変わる際の最終リードデータが前記単位サイズに足りない場合でもライトポインタを進めて、ライトデータのチャネルが移り変わる際の最終ライトデータが前記単位サイズに足りない場合でもリードポインタを進めるＦＩＦＯで構成されている請求項９に記載のＤＭＡ転送制御装置。
【請求項１１】
前記内部メモリは、前記単位サイズのデータ幅を有し、リードデータの連続領域の最終リードデータが前記単位サイズに足りない場合でもライトポインタを進めて、ライトデータの連続領域の最終ライトデータが前記単位サイズに足りない場合でもリードポインタを進めるＦＩＦＯで構成されている請求項９に記載のＤＭＡ転送制御装置。
【請求項１２】
請求項１から請求項１１までのいずれかに記載のデータ転送制御装置と、前記データ転送制御装置の転送元または転送先としての外部記憶装置とを備えた半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイス間でデータを転送するＤＭＡ転送制御装置に関する。
【背景技術】
【０００２】
従来において、ＣＰＵを経由させずにデータ転送をデバイス間で直接に行うＤＭＡ転送方法が広く知られており、メモリ同士のデータ転送を両メモリ間で直接に行う場合等において使われている。
【０００３】
ＤＭＡ（Direct Memory Access）転送では、データ転送元アドレス、データ転送先アドレス、データ転送サイズ等の転送に必要な情報をＤＭＡ転送制御装置のレジスタ等に設定し、その後、ＣＰＵ等が転送開始を制御することにより転送動作を実行する。転送時にはＣＰＵによる転送制御の必要はないため、ＣＰＵを経由する場合に比べて高速にデータ転送を行うことができ、またＣＰＵの負担を減らすことができる。レジスタ等に設定された転送サイズだけ転送が完了したら、ＤＭＡ転送制御装置の設定によってＤＭＡ転送終了割り込みをアサートする。ＣＰＵは、ＤＭＡ転送終了割り込みを検知すると、ＤＭＡ転送制御装置のレジスタ等を読み込んで、ＤＭＡ転送の結果やステータスを監視する。
【０００４】
ＤＭＡ転送制御装置に接続されるバスは、１回のアドレス指定で複数個のバイトデータをまとめて連続的に転送するバースト転送が可能な場合が多い。また、接続バスが、リードコマンドやライトコマンドを先行発行できるプロトコルである場合、レイテンシ（伝送遅延）が比較的大きなデバイスへのアクセスにおいて、転送速度を上げることができる。
【０００５】
通常のＤＭＡ転送では、設定されたあるサイズごとに必要なデータの読み出しを行い、その後に書き込みを行う。このため、書き込みの開始タイミングが読み出しの完了後になるため、レイテンシが大きなデバイスへの転送では、転送効率が良くない。
【０００６】
このような課題に対し、ある従来におけるＤＭＡ転送制御装置は、ＦＩＦＯ(First-in-First-out)を備えており、ＦＩＦＯに蓄積されているデータ量を監視し、このデータ量に基づいて書き込み・読み出しのタイミングを決定する（例えば図１２参照。特許文献１参照）。具体的には、ＦＩＦＯに空き領域があるか否かを判断し、空き領域があるときに読み出しを行う。また、ＦＩＦＯに書き込み可能なデータ量があるか否かを判断し、書き込み可能なデータ量があるときに書き込みを行う。
【特許文献１】特開２００１−１４２８４１号公報（第４−６頁、第２−１４図）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、上記従来の転送制御装置において、コマンドの先行発行を行った場合を想定すると、先行発行したコマンドでのデータ量を認識せずにＦＩＦＯの現状態のみからコマンドの発行許可を決定するため、オーバーフローやアンダーフローが発生する可能性がある。接続バスのプロトコルによっては、オーバーフローやアンダーフローの発生時はＦＩＦＯの状態が通常に戻るまで待つことができるが、接続バスのバス権を獲得し続けてしまい、他マスタのアクセスと競合した場合にデッドロックを引き起こす可能性もある。また、コマンドの先行発行を行わないと、データのアクセスレイテンシのためにデータ転送速度の向上ができない。
【０００８】
本発明は、内部メモリのオーバーフローやアンダーフローが発生しないタイミングでのみコマンドの先行発行を行うことができ、データ転送時間を短縮化できるＤＭＡ転送制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
（１）本発明によるＤＭＡ転送制御装置は、リードデータを一時的に格納する内部メモリを備え、転送元から転送先へのダイレクトメモリアクセス転送を行うものであって、
リードコマンドが発行されるごとにそのコマンドで取得すべきリードデータ量ＱＲを加算し、かつデータリードごとにカウントダウンすることにより、未転送分のデータ量である未リードデータ量Ｑｒをカウントするリードデータカウンタと、
前記内部メモリの空き容量Ｑ０から前記リードデータカウンタによる前記未リードデータ量Ｑｒが減算されるリードコマンド許否判定量Ｊｒが次の取得目標のリードデータ量ＱＲ以上あるか否かを判定し、その判定結果が肯定的であるときはリードコマンドの発行を実行するリードコマンド発行制御部とを備えたものである。
【００１０】
リードコマンドを発行するに当たり、これから取得せんとするリードデータ量ＱＲに対して内部メモリの空き容量Ｑ０がそれ以上あるかを判定する。この判定にリードコマンド許否判定量Ｊｒを用いる。リードコマンド許否判定量Ｊｒは、Ｊｒ＝Ｑ０−Ｑｒである。次の取得目標のリードデータ量ＱＲに対して、リードコマンド許否判定量Ｊｒ≧ＱＲか否かを判定する。初期段階では、未リードデータ量Ｑｒ＝０であるので、Ｊｒ＝Ｑ０であり、Ｊｒ＝Ｑ０≧ＱＲが判定されると、通常、初期段階での判定は肯定的となり、リードコマンドの発行が許容され、リードコマンド発行制御部はリードコマンドの発行を実行する。このリードコマンドの発行によりリードデータカウンタにおいて、未リードデータ量Ｑｒにリードデータ量ＱＲが加算される（Ｑｒ←Ｑｒ＋ＱＲ）。未リードデータ量Ｑｒが増加した分だけ、リードコマンド許否判定量Ｊｒ（＝Ｑ０−Ｑｒ）は減少する。この減少後のリードコマンド許否判定量Ｊｒについても、Ｊｒ＝Ｑ０−Ｑｒ≧ＱＲが判定される（ＱＲは次の取得目標のリードデータ量）。この判定が肯定的となるときは、次のリードコマンドの発行が許容され、リードコマンド発行制御部はリードコマンドの発行を実行する。これがリードコマンドの先行発行である。この先行発行によりリードデータカウンタにおいて、未リードデータ量Ｑｒに次のリードデータ量ＱＲが加算され、また、その結果として、リードコマンド許否判定量Ｊｒはリードデータ量ＱＲだけ減少する。一方、前記の判定が否定的となるときは、次のリードコマンドの発行は許容されない。
【００１１】
内部メモリの空き容量Ｑ０は、リードコマンドの実行とライトコマンドの実行に伴って、ダイナミックに変遷してゆく。ライトコマンドの実行により内部メモリから読み出されたデータが転送先に送られると、内部メモリのデータ量Ｑが減少し、空き容量Ｑ０が増加する。また、リードコマンドの実行により転送元から読み出したデータが内部メモリに格納されると、内部メモリのデータ量Ｑが増加し、空き容量Ｑ０が減少する。そして、未リードデータ量Ｑｒが減少する。未リードデータ量Ｑｒが減少するということは、リードコマンド許否判定量Ｊｒ＝Ｑ０−Ｑｒにおいて、その値が増加することに相当する。内部メモリからの転送先へのデータ発行がないタイミングでは、空き容量Ｑ０の減少と未リードデータ量Ｑｒの減少が拮抗し、リードコマンド許否判定量Ｊｒの値は不変である。したがって、前記で行ったリードコマンド許否判定量Ｊｒによる判定結果は変わらず、否定的を維持し、次のリードコマンドは許容されない。しかし、内部メモリからの転送先へのデータ発行が行われたタイミングでは、その分の空き容量Ｑ０の増加が生じ、結果として、リードコマンド許否判定量Ｊｒの値が増加する。このリードコマンド許否判定量Ｊｒの増加により、Ｊｒ＝Ｑ０−Ｑｒ≧ＱＲ（ＱＲは次の取得目標のリードデータ量）の判定が肯定的になると、再び次のリードコマンドの発行が許容され、リードコマンド発行制御部はリードコマンドの発行を実行する。これもリードコマンドの先行発行である。この場合も、リードデータカウンタにおいて、未リードデータ量Ｑｒに次のリードデータ量ＱＲが加算される。
【００１２】
上記において、リードコマンドを先行発行するに際して、あらかじめ、リードコマンド許否判定量Ｊｒによって内部メモリのオーバーフローを未然に回避する条件で先行発行することから、オーバーフローを発生させることなく、データ転送時間を短縮することが可能となる。
【００１３】
（２）また、本発明によるＤＭＡ転送制御装置は、リードデータを一時的に格納する内部メモリを備え、転送元から転送先へのダイレクトメモリアクセス転送を行うものであって、
ライトコマンドが発行されるごとにそのコマンドで発行すべきライトデータ量ＱＷを加算し、かつデータライトごとにカウントダウンすることにより、未転送分のデータ量である未ライトデータ量Ｑｗをカウントするライトデータカウンタと、
前記内部メモリに蓄積されているデータ量Ｑから前記未ライトデータ量Ｑｗが減算されるライトコマンド許否判定量Ｊｗが次の発行目標のライトデータ量ＱＷ以上あるか否かを判定し、その判定結果が肯定的であるときはライトコマンドの発行を実行するライトコマンド発行制御部とを備えたものである。
【００１４】
ライトコマンドを発行するに当たり、これから発行せんとするライトデータ量ＱＷに対して内部メモリのデータ量Ｑがそれ以上あるかを判定する。この判定にライトコマンド許否判定量Ｊｗを用いる。ライトコマンド許否判定量Ｊｗは、Ｊｗ＝Ｑ−Ｑｗである。次の発行目標のライトデータ量ＱＷに対して、リードコマンド許否判定量Ｊｗ≧ＱＷか否かを判定する。初期段階では、未ライトデータ量Ｑｗ＝０であるので、Ｊｗ＝Ｑであり、Ｊｗ＝Ｑ≧ＱＷの判定においては、通常、データ量Ｑが少ない初期段階での判定は否定的となる。データ量Ｑが増加して判定が肯定的となると、ライトコマンドの発行が許容され、ライトコマンド発行制御部はライトコマンドの発行を実行する。このライトコマンドの発行によりライトデータカウンタにおいて、未ライトデータ量Ｑｗにライトデータ量ＱＷが加算される（Ｑｗ←Ｑｗ＋ＱＷ）。未ライトデータ量Ｑｗが増加した分だけ、ライトコマンド許否判定量Ｊｗ（＝Ｑ−Ｑｗ）は減少する。この減少後のライトコマンド許否判定量Ｊｗについても、Ｊｗ＝Ｑ−Ｑｗ≧ＱＷが判定される（ＱＷは次の発行目標のライトデータ量）。この判定が肯定的となるときは、次のライトコマンドの発行が許容され、ライトコマンド発行制御部はライトコマンドの発行を実行する。これがライトコマンドの先行発行である。この先行発行によりライトデータカウンタにおいて、未ライトデータ量Ｑｗに次のライトデータ量ＱＷが加算され、また、その結果として、ライトコマンド許否判定量Ｊｗはライトデータ量ＱＷだけ減少する。一方、前記の判定が否定的となるときは、次のライトコマンドの発行は許容されない。
【００１５】
内部メモリのデータ量Ｑは、リードコマンドの実行とライトコマンドの実行に伴って、ダイナミックに変遷してゆく。リードコマンドの実行により転送元から読み出したデータが内部メモリに格納されると、内部メモリのデータ量Ｑが増加する。また、ライトコマンドの実行により内部メモリから読み出されたデータが転送先に送られると、内部メモリのデータ量Ｑが減少する。そして、未ライトデータ量Ｑｗが減少する。未ライトデータ量Ｑｗが減少するということは、ライトコマンド許否判定量Ｊｗ＝Ｑ−Ｑｗにおいて、その値が増加することに相当する。転送元から内部メモリへのデータリードがないタイミングでは、データ量Ｑの減少と未ライトデータ量Ｑｗの減少が拮抗し、ライトコマンド許否判定量Ｊｗの値は不変である。したがって、前記で行ったライトコマンド許否判定量Ｊｗによる判定結果は変わらず、否定的を維持し、次のライトコマンドは許容されない。しかし、転送元から内部メモリへのデータリードが行われたタイミングでは、その分のデータ量Ｑの増加が生じ、結果として、ライトコマンド許否判定量Ｊｗの値が増加する。このライトコマンド許否判定量Ｊｗの増加により、Ｊｗ＝Ｑ−Ｑｗ≧ＱＷ（ＱＷは次の発行目標のライトデータ量）の判定が肯定的になると、再び次のライトコマンドの発行が許容され、ライトコマンド発行制御部はライトコマンドの発行を実行する。これもライトコマンドの先行発行である。この場合も、ライトデータカウンタにおいて、未ライトデータ量Ｑｗに次の発行目標のライトデータ量ＱＷが加算される。
【００１６】
上記において、ライトコマンドを先行発行するに際して、あらかじめ、ライトコマンド許否判定量Ｊｗによって内部メモリのアンダーフローを未然に回避する条件で先行発行することから、アンダーフローを発生させることなく、データ転送時間を短縮することが可能となる。
【００１７】
（３）また、本発明によるＤＭＡ転送制御装置は、リードデータを一時的に格納する内部メモリを備え、転送元から転送先へのダイレクトメモリアクセス転送を行うものであって、
リードコマンドが発行されるごとにそのコマンドで取得すべきリードデータ量ＱＲを加算し、かつデータリードごとにカウントダウンすることにより、未転送分のデータ量である未リードデータ量Ｑｒをカウントするリードデータカウンタと、
前記内部メモリの空き容量Ｑ０から前記リードデータカウンタによる前記未リードデータ量Ｑｒが減算されるリードコマンド許否判定量Ｊｒが次の取得目標のリードデータ量ＱＲ以上あるか否かを判定し、その判定結果が肯定的であるときはリードコマンドの発行を実行するリードコマンド発行制御部と、
ライトコマンドが発行されるごとにそのコマンドで発行すべきライトデータ量ＱＷを加算し、かつデータライトごとにカウントダウンすることにより、未転送分のデータ量である未ライトデータ量Ｑｗをカウントするライトデータカウンタと、
前記内部メモリに蓄積されているデータ量Ｑから前記未ライトデータ量Ｑｗが減算されるライトコマンド許否判定量Ｊｗが次の発行目標のライトデータ量ＱＷ以上あるか否かを判定し、その判定結果が肯定的であるときはライトコマンドの発行を実行するライトコマンド発行制御部とを備えたものである。
【００１８】
これは、上記の（１）と（２）を合体したものに相当し、リードコマンドを先行発行するに際して、あらかじめ、リードコマンド許否判定量Ｊｒによって内部メモリのオーバーフローを未然に回避する条件で先行発行することから、オーバーフローを発生させることなく、データ転送時間を短縮することが可能となる。さらに、ライトコマンドを先行発行するに際して、あらかじめ、ライトコマンド許否判定量Ｊｗによって内部メモリのアンダーフローを未然に回避する条件で先行発行することから、アンダーフローを発生させることなく、データ転送時間を短縮することが可能となる。
【００１９】
上記構成のＤＭＡ転送制御装置において、さらに、前記リードコマンドの発行時に、各チャネルで共通のリードマスタＩＤを出力するリードマスタＩＤ発行部を備えているという態様がある。
【００２０】
このように構成すれば、異なるチャネルの転送でも同一マスタからの転送として扱うことができ、仮に後から発行したリードコマンドのデータが先に発行したリードコマンドのデータより先に到着しても、接続バス等によって発行したリードコマンドの順序でリードデータが到着するように調整することができるため、複数チャネルが混在するデータ転送においても、データの整合性を保つことが可能となる。
【００２１】
また上記構成のＤＭＡ転送制御装置において、さらに、それぞれ異なるチャネルのデータ転送の処理が可能な、リードコマンド発行制御部とリードマスタＩＤ発行部とを含むリードコマンド発行部と、ライトコマンド発行制御部とライトマスタＩＤ発行部とを含むライトコマンド発行部と、リードデータ取得部と、ライトデータ発行部と、ライトレスポンス取得部とを備えているという態様がある。
【００２２】
このように構成すれば、複数チャネルが混合したデータ転送においても、データ転送の各処理を逐次的に実行でき、データ転送時間の短縮が可能となる。
【００２３】
また上記構成のＤＭＡ転送制御装置において、さらに、前記リードデータ取得部が前記リードコマンド発行部からチャネル番号を引き継ぐことと、前記ライトコマンド発行部が前記リードデータ取得部からチャネル番号を引き継ぐことと、前記ライトデータ発行部が前記ライトコマンド発行部からチャネル番号を引き継ぐことと、前記ライトレスポンス取得部が前記ライトデータ発行部からチャネル番号を引き継ぐことのいずれかまたは複数を制御するチャネル制御部を備えているという態様がある。
【００２４】
具体的には、前記リードコマンド発行部と前記リードデータ取得部間、または前記リードデータ取得部と前記ライトコマンド発行部間、または前記ライトコマンド発行部と前記ライトデータ発行部間、または前記ライトデータ発行部と前記ライトレスポンス取得部間のいずれかまたは複数にチャネル用ＦＩＦＯを備えているという態様がある。
【００２５】
あるいは、前記チャネル制御部は、それぞれ独立に動作する、前記リードコマンド発行部用のリードポインタと、前記リードデータ取得部用のリードポインタと、前記ライトコマンド発行部用のリードポインタと、前記ライトデータ発行部用のリードポインタと、前記ライトレスポンス取得部用の各リードポインタのいずれかまたは複数をもつチャネル用ＦＩＦＯを備えているという態様がある。
【００２６】
以上のように構成すれば、データ転送の各処理において、現在のデータ処理完了後に次データを処理するチャネルを正しく認識できるので、複数チャネルが混在する場合でも、正しくデータ転送することが可能となる。
【００２７】
また上記構成のＤＭＡ転送制御装置において、前記リードデータカウンタでの未リードデータ量Ｑｒと、前記ライトデータカウンタでの未ライトデータ量Ｑｗと、前記発行予定のリードコマンドでの取得目標のリードデータ量ＱＲと、前記発行予定のライトコマンドでの発行目標のライトデータ量ＱＷは、前記ＤＭＡ転送制御装置で設定された単位サイズで表されるという態様がある。
【００２８】
このように構成すれば、単位サイズでデータ量を計算するので細かいデータ量の計算が不要となり、データ量計算時間や回路面積を抑えることが可能となる。
【００２９】
また上記構成のＤＭＡ転送制御装置において、前記内部メモリは、前記単位サイズのデータ幅を有し、リードデータのチャネルが移り変わる際の最終リードデータが前記単位サイズに足りない場合でもライトポインタを進めて、ライトデータのチャネルが移り変わる際の最終ライトデータが前記単位サイズに足りない場合でもリードポインタを進めるＦＩＦＯで構成されているという態様がある。
【００３０】
上記のように構成すれば、チャネルの切り替わりにおいて、有効データが単位サイズの先頭から開始されるため、データ量の計算を容易とすることが可能となる。
【００３１】
あるいは、上記構成のＤＭＡ転送制御装置において、前記内部メモリは、前記単位サイズのデータ幅を有し、リードデータの連続領域の最終リードデータが前記単位サイズに足りない場合でもライトポインタを進めて、ライトデータの連続領域の最終ライトデータが前記単位サイズに足りない場合でもリードポインタを進めるＦＩＦＯで構成されているという態様がある。
【００３２】
上記のように構成すれば、データの非連続部分の先頭において、有効データが単位サイズの先頭から開始されるため、データ量の計算を容易とすることが可能となる。
【００３３】
また本発明による半導体集積回路装置は、上記のいずれかのデータ転送制御装置と、前記データ転送制御装置の転送元または転送先としての外部記憶装置とを備えたものである。
【００３４】
このように構成すれば、ＳＤＲＡＭ等のアクセスレイテンシの大きな外部記憶装置へアクセスする場合でも、コマンドの先行発行を高速化することでアクセス性能の低下を防ぐことが可能である。
【００３５】
なお、本発明は、上記で説明した複数の態様の構成において、適切に組み合わせた構成のＤＭＡ転送制御装置も含むものである。
【発明の効果】
【００３６】
本発明によれば、コマンドの先行発行を行った場合でも、内部メモリに格納されるデータのオーバーフローやアンダーフローを発生させずに、データ転送時間を短縮することが可能である。また、コマンドの先行発行数に応じた制御が不要なため、先行発行数を制限する必要もない。また、コマンドの発行制御のための計算を、設定した単位サイズごとによる計算にすることで、計算を容易にすることができる。また、複数チャネルが混在するデータ転送を正しく実行することができる。
【発明を実施するための最良の形態】
【００３７】
以下、本発明にかかわるＤＭＡ転送制御装置の実施の形態を図面を用いて詳細に説明する。
【００３８】
（実施の形態１）
図１は本発明の実施の形態１におけるＤＭＡ転送制御装置１００の概略構成を示すブロック図である。
【００３９】
本実施の形態のＤＭＡ転送制御装置１００は、バスＡを介して転送元デバイスに接続されているとともに、バスＢを介して転送先デバイスに接続されている。図１において、１は転送情報を格納する設定レジスタであり、この設定レジスタ１の転送情報には、転送サイズ、転送元開始アドレス、転送先開始アドレス、転送元連続領域サイズ、転送先連続領域サイズ、転送元データ幅、転送先データ幅等が含まれている。２はバスＡからのリードデータＤｒを入力してバスＢにライトデータＤｗを出力する内部メモリ、１１はリードコマンド発行制御部、１３はリードコマンド発行制御部１１がリードコマンドを発行したがまだ取得していないデータ量である未リードデータ量Ｑｒをカウントするリードデータカウンタ、２１はライトコマンド発行制御部、２３はライトコマンド発行制御部２１がライトコマンドを発行したがまだ発行していないデータ量である未ライトデータ量Ｑｗをカウントするライトデータカウンタである。本実施の形態のＤＭＡ転送制御装置１００は、内部メモリ２の空き容量Ｑ０とリードデータカウンタ１３による未リードデータ量Ｑｒをリードコマンド発行制御部１１に伝え、内部メモリ２のデータ量Ｑとライトデータカウンタ２３による未ライトデータ量Ｑｗをライトコマンド発行制御部２１に伝えるようになっている。
【００４０】
なお、転送に必要な情報を格納している設定レジスタ１については、これに限るものではなく、例えば外部端子より転送情報が入力される等、異なる方法により転送情報を与えるように構成しても構わない。
【００４１】
次に、上記のように構成された本実施の形態のＤＭＡ転送制御装置の動作を説明する。
【００４２】
リードデータカウンタ１３は、その未リードデータ量Ｑｒについて、リードコマンドの発行時にそのリードコマンドで取得するリードデータ量ＱＲだけ加算し、実際にデータをリードするごとにカウントダウンする。同様に、ライトデータカウンタ２３は、その未ライトデータ量Ｑｗについて、ライトコマンドの発行時にそのライトコマンドで発行するライトデータ量ＱＷだけ加算し、実際にデータをライトするごとにカウントダウンする。
【００４３】
データ転送を開始する際は、まず、設定レジスタ１に基づいて発行するリードコマンドを決定し、このリードコマンドにより取得されるリードデータ量ＱＲを算出する。リードコマンド発行制御部１１は、そのリードコマンド許否判定量Ｊｒについて、内部メモリ２の空き容量Ｑ０からリードデータカウンタ１３による未リードデータ量Ｑｒを減算して求め（Ｊｒ＝Ｑ０−Ｑｒ）、このリードコマンド許否判定量Ｊｒが前述のリードデータ量ＱＲ以上あるかを判定する（Ｊｒ≧ＱＲ）。その判定の結果が肯定的で、リードコマンド許否判定量Ｊｒに対してリードデータ量ＱＲの方が小さいか同じで、内部メモリ２においてリードデータが増えても内部メモリ２の容量を超えない場合には、リードコマンドの発行を許可する。
【００４４】
発行したリードコマンドはバスＡを通って転送元デバイスに送られ、転送元デバイスからのリードデータＤｒが順次バスＡを通ってＤＭＡ転送制御装置１００に送られる。リードデータＤｒは、内部メモリ２にいったん書き込まれる。
【００４５】
ライト側では、設定レジスタ１中の転送を行うチャネルのレジスタに基づいて発行するライトコマンドを決定し、このライトコマンドにより発行されるライトデータ量ＱＷを算出する。ライトコマンド発行制御部２１は、そのライトコマンド許否判定量Ｊｗについて、内部メモリ２のデータ量Ｑからライトデータカウンタ２３による未ライトデータ量Ｑｗを減算して求め（Ｊｗ＝Ｑ−Ｑｗ）、このライトコマンド許否判定量Ｊｗが前述のライトデータ量ＱＷ以上あるかを判定する（Ｊｗ≧ＱＷ）。その判定の結果が肯定的で、ライトコマンド許否判定量Ｊｗに対してライトデータ量ＱＷの方が小さいか同じで、内部メモリ２からライトデータが発行されても内部メモリ２のデータ量がマイナスとならない場合には、ライトコマンドの発行を許可する。
【００４６】
発行したライトコマンドはバスＢを通って転送先デバイスに送られる。このライトコマンドに合わせて、内部メモリ２からライトデータＤｗを発行し、バスＢを通って転送先デバイスに送られる。
【００４７】
転送の一例を図２に示す。設定レジスタ１は、転送サイズが１２バイト、リードデータ幅は１バイト、ライトデータ幅は１バイト、すべて連続領域を転送するように設定されているとする。また、内部メモリ２の容量は１０バイトとし、接続されているバスＡとバスＢのプロトコルにより、１コマンドでのデータのバースト数は４までに規定されているとする。
【００４８】
図２の見方を概説する。内部メモリ２のデータ量Ｑと空き容量Ｑ０とを加算すると、常に１０となる（Ｑ＋Ｑ０＝１０）。リードコマンド許否判定量Ｊｒは、空き容量Ｑ０から未リードデータ量Ｑｒを減算したものである（Ｊｒ＝Ｑ０−Ｑｒ）。ライトコマンド許否判定量Ｊｗは、データ量Ｑから未ライトデータ量Ｑｗを減算したものである（Ｊｗ＝Ｑ−Ｑｗ）。白丸は、内部メモリ２にリードデータＤｒを１バイトリードしたことを表す。黒丸は、内部メモリ２からライトデータＤｗを１バイト発行したことを表す。リードコマンド許否判定量Ｊｒがリードデータ量ＱＲの４バイト以上あれば、リードコマンドが許可される（先行発行）。ライトコマンド許否判定量Ｊｗがライトデータ量ＱＷの４バイト以上あれば、ライトコマンドが許可される（先行発行）。
【００４９】
まず、図２の（ａ）において、リードコマンド発行制御部１１では、発行するリードコマンドにより取得するリードデータ量ＱＲを算出する。ここでは、このリードデータ量ＱＲは、リードデータ幅（１バイト）と最大バースト数（４回）により、４バイトと決定される（ＱＲ＝１×４＝４）。また、内部メモリ２の空き容量Ｑ０の１０バイトから未リードデータ量Ｑｒの０バイトを差し引いてリードコマンド許否判定量Ｊｒ（＝Ｑ０−Ｑｒ＝１０−０）を１０バイトと算出する。このリードコマンド許否判定量Ｊｒと前述のリードデータ量ＱＲ＝４バイトを比較すると、Ｊｒ≧ＱＲ（１０＞４）が成立し、リードしても内部メモリ２があふれることはないので（オーバーフロー回避）、リードコマンドの発行を許可する。また、リードコマンドの発行により、リードデータカウンタ１３による未リードデータ量Ｑｒは４バイト増加される（Ｑｒ←Ｑｒ＋ＱＲ＝０＋４＝４）。
【００５０】
次に、図２の（ｂ）において、リードコマンド発行制御部１１では、発行するリードコマンドにより取得するリードデータ量ＱＲは４バイトと決定される。また、内部メモリ２の空き容量Ｑ０の１０バイトから未リードデータ量Ｑｒの４バイトを差し引いてリードコマンド許否判定量Ｊｒ（＝Ｑ０−Ｑｒ＝１０−４）を６バイトと算出する。このリードコマンド許否判定量Ｊｒの６バイトと前述のリードデータ量ＱＲの４バイトを比較すると、Ｊｒ≧ＱＲ（６＞４）が成立し、リードしても内部メモリ２があふれることはないので（オーバーフロー回避）、続けてリードコマンドの発行を許可する。このタイミングでは、前回のリードコマンドは完了していないが、先行発行としてリードコマンドを発行することで、リードデータ取得にかかる時間を短縮することが可能となる。
【００５１】
ライトコマンド発行制御部２１では、発行するライトコマンドにより発行されるライトデータ量ＱＷを算出する。ここでは、ライトデータ量ＱＷは、ライトデータ幅（１バイト）と最大バースト数（４回）により、４バイトと決定される（ＱＷ＝１×４＝４）。リードコマンドの発行によりリードデータＤｒが取得されていくと、内部メモリ２にデータが蓄積されていく。図２の（ｃ）では、内部メモリ２のデータ量Ｑは４バイトとなっているが、このデータ量Ｑから未ライトデータ量Ｑｗの０バイトを差し引いてライトコマンド許否判定量Ｊｗ（＝Ｑ−Ｑｗ＝４−０）を４バイトと算出する。このライトコマンド許否判定量Ｊｗの４バイトと前述のライトデータ量ＱＷの４バイトを比較すると、Ｊｗ≧ＱＷが成立し、ライトに必要なデータが確保されているので（アンダーフロー回避）、ライトコマンドの発行を許可する。
【００５２】
また、図２の（ｄ）では、前回のライトコマンドが完了していないが、内部メモリ２のデータ量Ｑは５バイト、このデータ量Ｑから未ライトデータ量Ｑｗの１バイトを差し引いてライトコマンド許否判定量Ｊｗ（＝Ｑ−Ｑｗ＝５−１）を４バイトと算出する。このライトコマンド許否判定量Ｊｗの４バイトと前述のライトデータ量ＱＷの４バイトを比較すると、Ｊｗ≧ＱＷが成立し、ライトに必要なデータ量が確認できたため、ライトコマンドを先行発行している。このようにして、先行発行を含むリードとライトを順次実行する。
【００５３】
なお、これらの説明はあくまで一例であって限定されるものではない。このような方法により、内部メモリの状態によって最適なタイミングでコマンドを先行発行することが可能となり、データ転送時間を短縮することができる。
【００５４】
（実施の形態２）
図３は本発明の実施の形態２におけるＤＭＡ転送制御装置１００の概略構成を示すブロック図である。本実施の形態のＤＭＡ転送制御装置１００は、転送元デバイスが接続されているバスＡにリードコマンド発行部１０とリードデータ取得部１４が接続されており、転送先デバイスが接続されているバスＢにライトコマンド発行部２０とライトデータ発行部２４とライトレスポンス取得部２５が接続されている。設定レジスタ１は、各チャネルの転送情報を格納している。転送情報については、実施の形態１と同様である。リードコマンド発行部１０は、リードコマンド発行制御部１１と各チャネル共通のリードマスタＩＤを発行するリードマスタＩＤ発行部１２を有し、ライトコマンド発行部２０は、ライトコマンド発行制御部２１と各チャネル共通のライトマスタＩＤを発行するライトマスタＩＤ発行部２２を有している。内部メモリ２は、リードデータ取得部１４からのリードデータＤｒを入力としてライトデータ発行部２４にライトデータＤｗを出力するようになっている。３は各部で転送されるチャネルを制御するチャネル制御部である。３１はリードコマンド発行部１０で実行したチャネル情報を格納するＦＩＦＯ、３２はリードデータ取得部１４で実行したチャネル情報を格納するＦＩＦＯ、３３はライトコマンド発行部２０で実行したチャネル情報を格納するＦＩＦＯ、３４はライトデータ発行部２４で実行したチャネル情報を格納するＦＩＦＯである。内部メモリ２の空き容量Ｑ０とリードデータカウンタ１３による未リードデータ量Ｑｒをリードコマンド発行制御部１１に伝え、内部メモリ２のデータ量Ｑとライトデータカウンタ２３による未ライトデータ量Ｑｗをライトコマンド発行制御部２１に伝えることについては、実施の形態１と同様である。その他の構成については、実施の形態１と同様であるので、説明を省略する。
【００５５】
次に、上記のように構成された本実施の形態のＤＭＡ転送制御装置の動作を説明する。
【００５６】
リードデータカウンタ１３は、その未リードデータ量Ｑｒについて、リードコマンド発行部１０からリードコマンドがバスＡに発行されるときに、そのリードコマンドで取得するリードデータ量ＱＲだけ加算するとともに、リードデータ取得部１４がリードデータＤｒをバスＡより取得し内部メモリ２に格納するごとにカウントダウンする。同様に、ライトデータカウンタ２３は、その未ライトデータ量Ｑｗについて、ライトコマンド発行部２０からライトコマンドがバスＢに発行されるときに、そのライトコマンドで発行するライトデータ量ＱＷだけ加算するとともに、ライトデータ発行部２４が内部メモリ２よりライトデータを読み出してバスＢに発行するごとにカウントダウンする。
【００５７】
次に、本実施の形態のＤＭＡ転送制御装置における、データ転送の方法を説明する。
【００５８】
まず、チャネル制御部３よりデータ転送するチャネルがリードコマンド発行部１０に指定される。リードコマンド発行部１０では、設定レジスタ１中の前記指定チャネルのレジスタに基づいて発行するリードコマンドを決定し、このリードコマンドにより取得されるリードデータ量ＱＲを算出する。リードコマンド発行制御部１１は、そのリードコマンド許否判定量Ｊｒについて、内部メモリ２の空き容量Ｑ０からリードデータカウンタ１３による未リードデータ量Ｑｒを減算して求め（Ｊｒ＝Ｑ０−Ｑｒ）、このリードコマンド許否判定量Ｊｒが前述のリードデータ量ＱＲ以上あるかを判定する（Ｊｒ≧ＱＲ）。その判定の結果が肯定的で、リードコマンド許否判定量Ｊｒに対してリードデータ量ＱＲの方が小さいか同じで、内部メモリ２においてリードデータが増えても内部メモリ２の容量を超えない場合には、リードコマンドの発行を許可する。
【００５９】
リードコマンドの発行と同時に、どのマスタからの転送かを識別するためのリードマスタＩＤを発行するが、リードマスタＩＤ発行部１２では、異なるチャネルであっても同一のリードマスタＩＤを発行する。また、リードコマンドにより取得されるリードデータ量ＱＲだけ、リードデータカウンタ１３の未リードデータ量Ｑｒを加算する（Ｑｒ←Ｑｒ＋ＱＲ）。また、各チャネルの最初のリードコマンドの発行と同時に、そのチャネル識別番号をチャネル用のＦＩＦＯ３１に格納する。
【００６０】
発行したリードコマンドはバスＡを通って転送元デバイスに送られ、転送元デバイスからのリードデータが順次バスＡを通ってリードデータ取得部１４に送られる。バスＡではリードデータＤｒを保持することが可能で、通過するリードコマンドのリードマスタＩＤをチェックしており、同一のリードマスタＩＤをもつリードコマンドが複数発行された場合には、コマンドの発行順にリードデータＤｒをマスタへ送るように調整を行う。もし、後から発行したリードコマンドのデータが先に到着した場合は、データをマスタへ送らずに保持し、先に発行したリードコマンドのデータが来たら、このデータをマスタへ送り、その後、保持していたデータをマスタへ送る。このため、複数チャネルが混在するデータ転送においても、データの整合性を保つことが可能である。
【００６１】
リードデータ取得部１４では、データ取得完了または初期状態であるときに、ＦＩＦＯ３１の先頭チャネル識別番号に応じて実行するチャネルを決定し、リードデータ取得を開始する。取得するリードデータの量やアドレス位置は、設定レジスタ１中の該当するチャネルのレジスタから決定する。なお、リードコマンドの発行時のリードマスタＩＤをチャネル共通としているので、別チャネルのリードコマンドが後から発行されても、コマンドの発行順にリードデータがリードデータ取得部１４に到達する。取得したリードデータは内部メモリ２にいったん書き込まれ、このときにリードデータカウンタ１３の未リードデータ量Ｑｒをカウントダウンする（Ｑｒ←Ｑｒ−１）。また、各チャネルの最初のリードデータ取得と同時に、そのチャネル識別番号をチャネル用のＦＩＦＯ３２に格納する。
【００６２】
ライトコマンド発行部２０では、コマンドの発行完了または初期状態であるときに、ＦＩＦＯ３２の先頭チャネル識別番号に応じて実行するチャネルを決定し、ライトコマンドの発行を開始する。まず、設定レジスタ１中の前記指定チャネルのレジスタに基づき、発行するライトコマンドを決定し、このライトコマンドにより発行されるライトデータ量ＱＷを算出する。ライトコマンド発行制御部２１は、そのライトコマンド許否判定量Ｊｗについて、内部メモリ２のデータ量Ｑからライトデータカウンタ２３による未ライトデータ量Ｑｗを減算して求め（Ｊｗ＝Ｑ−Ｑｗ）、このライトコマンド許否判定量Ｊｗが前述のライトデータ量ＱＷ以上あるかを判定する（Ｊｗ≧ＱＷ）。その判定の結果が肯定的で、ライトコマンド許否判定量Ｊｗに対してライトデータ量ＱＷの方が小さいか同じで、内部メモリ２からライトデータが発行されても内部メモリ２のデータ量がマイナスとならない場合には、ライトコマンドの発行を許可する。
【００６３】
ライトコマンドの発行と同時に、どのマスタからの転送かを識別するためのライトマスタＩＤを発行するが、ライトマスタＩＤ発行部２２では、異なるチャネルであっても同一のライトマスタＩＤを発行する。また、ライトコマンドにより発行するライトデータの量だけ、ライトデータカウンタ２３の未ライトデータ量Ｑｗを加算する。また、各チャネルの最初のライトコマンドの発行と同時に、そのチャネル識別番号をチャネル用のＦＩＦＯ３３に格納する。
【００６４】
ライトデータ発行部２４では、データ発行完了または初期状態であるときに、ＦＩＦＯ３３の先頭チャネル識別番号に応じて実行するチャネルを決定し、ライトデータの発行を開始する。発行するライトデータの量やアドレス位置は、設定レジスタ１中の該当するチャネルのレジスタから決定する。内部メモリ２から受け取ったライトデータはバスＢに発行されるが、このときにライトデータカウンタ２３の未ライトデータ量Ｑｗをカウントダウンする（Ｑｗ←Ｑｗ−１）。また、各チャネルの最初のライトデータの発行と同時に、そのチャネル識別番号をチャネル用のＦＩＦＯ３４に格納する。
【００６５】
発行されたライトコマンドとライトデータはバスＢを通って転送先デバイスに送られ、転送先デバイスからのライトレスポンス信号が順次バスＢを通ってライトレスポンス取得部２５に送られる。バスＢでは、ライトレスポンス信号を保持することが可能で、通過するライトコマンドのライトマスタＩＤをチェックしており、同一のライトマスタＩＤをもつライトコマンドが複数発行された場合には、コマンドの発行順にライトレスポンスをＤＭＡ転送制御装置１００へ送るように調整を行う。もし、後から発行したライトコマンドのレスポンスが先に到着した場合は、レスポンスをＤＭＡ転送制御装置１００へ送らずに保持し、先に発行したライトコマンドのレスポンスが来たら、このレスポンスをＤＭＡ転送制御装置１００へ送り、その後、保持していたレスポンスをマスタへ送る。このため、複数チャネルが混在するデータ転送においても、データの整合性を保つことが可能である。
【００６６】
ライトレスポンス取得部２５では、レスポンス取得完了または初期状態であるときに、ＦＩＦＯ３４の先頭チャネル識別番号に応じて実行するチャネルを決定し、レスポンス取得を開始する。取得するレスポンスの数は、設定レジスタ１中の該当するチャネルのレジスタより決定される。必要な数だけレスポンスを取得したら、該当するチャネルのデータ転送が完了したと判断し、完了割り込みなどの処理を行う。なお、ライトコマンドの発行時のライトマスタＩＤをチャネル共通としているので、別チャネルのライトコマンドが後から発行されても、コマンドの発行順にレスポンスがライトレスポンス取得部２５に到着する。
【００６７】
チャネルの制御についての例を図４に示す。これは、ＣＨ０，ＣＨ１，ＣＨ２，ＣＨ３，ＣＨ４の順序でのＤＭＡ転送における、ある時点での各制御部で転送しているチャネルとチャネル用ＦＩＦＯの状態を示している。各チャネルの状態については、ＣＨ０はライトデータ発行まで完了してライトレスポンス取得中、ＣＨ１はリードデータ発行まで完了しておりライトコマンドとライトデータを発行中、ＣＨ２はリードコマンドの発行まで完了してリードデータ取得中でありライトは未実行、ＣＨ３はリードコマンドの発行まで完了しておりリードデータは未取得、ＣＨ４はリードコマンドの発行中でありリードデータは未取得である。各制御部では、現チャネルの転送が完了したら、次に実行するチャネルが接続されているＦＩＦＯから送られるため、正しいタイミングでチャネル制御を行うことができる。
【００６８】
複数チャネルでの転送の一例を図５に示す。設定レジスタ１において、チャネルＣＨ０は転送サイズが１６バイト、リードデータ幅は２バイト、ライトデータ幅は２バイト、チャネルＣＨ１は転送サイズが８バイト、リードデータ幅は２バイト、ライトデータ幅は４バイトであり、いずれのチャネルもすべて連続領域を転送するように設定されているとする。また、内部メモリ２の容量は２０バイトとし、接続されているバスＡとバスＢのプロトコルにより、１コマンドでのデータのバースト数は４までに規定されているとする。ＣＨ０，ＣＨ１の順に転送が行われる。
【００６９】
まず、図５の（ａ）において、リードコマンド発行制御部１１では、発行するＣＨ０リードコマンドにより取得するリードデータ量ＱＲを算出する。ここでは、このリードデータ量ＱＲは、リードデータ幅（２バイト）と最大バースト数（４回）により、８バイトと決定される（ＱＲ＝２×４＝８）。また、内部メモリ２の空き容量Ｑ０の２０バイトから未リードデータ量Ｑｒの０バイトを差し引いてリードコマンド許否判定量Ｊｒ（＝Ｑ０−Ｑｒ＝２０−０）を２０バイトと算出する。このリードコマンド許否判定量Ｊｒと前述のリードデータ量ＱＲ＝８バイトを比較すると、Ｊｒ≧ＱＲ（２０＞８）が成立し、リードしても内部メモリ２があふれることはないので（オーバーフロー回避）、リードコマンドの発行を許可する。また、リードコマンドの発行により、リードデータカウンタ１３による未リードデータ量Ｑｒは８バイト増加される（Ｑｒ←Ｑｒ＋ＱＲ＝０＋８＝８）。
【００７０】
次に、図５の（ｂ）において、リードコマンド発行制御部１１では、発行するリードコマンドにより取得するリードデータ量ＱＲは８バイトと決定される。また、内部メモリ２の空き容量Ｑ０の２０バイトから未リードデータ量Ｑｒの８バイトを差し引いてリードコマンド許否判定量Ｊｒ（＝Ｑ０−Ｑｒ＝２０−８）を１２バイトと算出する。このリードコマンド許否判定量Ｊｒの１２バイトと前述のリードデータ量ＱＲの８バイトを比較すると、Ｊｒ≧ＱＲ（１２＞８）が成立し、リードしても内部メモリ２があふれることはないので（オーバーフロー回避）、続けてリードコマンドの発行を許可する。このタイミングでは、前回のリードコマンドは完了していないが、先行発行としてリードコマンドを発行することで、リードデータ取得にかかる時間を短縮することが可能となる。
【００７１】
ライトコマンド発行制御部２１では、発行するライトコマンドにより発行されるライトデータ量ＱＷを算出する。ここでは、ライトデータ量ＱＷは、ライトデータ幅（２バイト）と最大バースト数（４回）により、８バイトと決定される（ＱＷ＝２×４＝８）。リードコマンドの発行によりリードデータＤｒが取得されていくと、内部メモリ２にデータが蓄積されていく。図５の（ｃ）では、内部メモリ２のデータ量Ｑは８バイトとなっているが、このデータ量Ｑから未ライトデータ量Ｑｗの０バイトを差し引いてライトコマンド許否判定量Ｊｗ（＝Ｑ−Ｑｗ＝８−０）を８バイトと算出する。このライトコマンド許否判定量Ｊｗの８バイトと前述のライトデータ量ＱＷの８バイトを比較すると、Ｊｗ≧ＱＷが成立し、ライトに必要なデータが確保されているので（アンダーフロー回避）、ライトコマンドの発行を許可する。
【００７２】
また、図５の（ｄ）では、ＣＨ０の転送中にＣＨ１のリードコマンドを発行しているが、未リードデータ量Ｑｒや内部メモリ２の空き容量Ｑ０はチャネル共通で使用するので、リードコマンド発行制御部１１による発行制御の方法はチャネルによって変わらない。また、図５の（ｅ）では、ＣＨ０の転送中にＣＨ１のライトコマンドを発行しているが、リード時と同様、ライトコマンド発行制御部２１による発行制御の方法はチャネルによって変わらない。このように、先行発行を含むリードとライトを、チャネルの区別なく順次実行することができる。
【００７３】
なお、これらの説明はあくまで一例であり、ライトレスポンスが不要なバスプロトコルであればライトレスポンス取得部２５を不要としてよく、またライトマスタＩＤはチャネル固有のＩＤを発行するなど、これに限るものではない。
【００７４】
本実施の形態によれば、リードやライトの各処理において、それぞれ別チャネルの転送を内部メモリの状態に応じて最適なタイミングで実行できるため、複数チャネルの転送が混在する場合でもデータ転送時間を短縮することが可能である。
【００７５】
（実施の形態３）
図６は本発明の実施の形態３におけるＤＭＡ転送制御装置１００の概略構成を示すブロック図である。図６において、実施の形態２の図３におけるのと同じ符号は同一構成要素を指している。本実施の形態においては、各部で転送されるチャネルを制御するチャネル制御部３がチャネル用ＦＩＦＯ４を有している。その他の構成については、実施の形態２と同様であるので、説明を省略する。
【００７６】
次に、本実施の形態のＤＭＡ転送制御装置におけるデータ転送の方法を説明する。チャネル制御以外のデータ処理方法については、実施の形態２と全く同様である。
【００７７】
チャネル制御の方法を説明する。データ転送を行うチャネルは、まず、チャネル用ＦＩＦＯ４に書き込まれる。チャネル用ＦＩＦＯ４は、リードコマンド発行部１０、リードデータ取得部１４、ライトコマンド発行部２０、ライトデータ発行部２４、ライトレスポンス取得部２５の各制御部用リードポインタを有している。各制御部が転送完了後または初期状態において、この制御部用のリードポインタを１つ進めて、リードポインタの指すチャネルの転送処理を開始する。チャネル用ＦＩＦＯ４に書かれたチャネル番号は、リードコマンド発行部１０、リードデータ取得部１４、ライトコマンド発行部２０、ライトデータ発行部２４、ライトレスポンス取得部２５用のリードポインタの順によってリードされるため、各チャネルの転送は正しく完了できる。
【００７８】
チャネル制御の例を図７に示す。これは、ＣＨ０，ＣＨ１，ＣＨ２，ＣＨ３，ＣＨ４の順序でのＤＭＡ転送における、ある時点での各制御部で転送しているチャネルの状態を示している。各チャネルの状態は、ＣＨ０はライトデータ発行まで完了してライトレスポンス取得中、ＣＨ１はリードデータ発行まで完了しておりライトコマンドとライトデータを発行中、ＣＨ２はリードコマンドの発行まで完了してリードデータ取得中でありライトは未実行、ＣＨ３はリードコマンドの発行まで完了しておりリードデータは未取得、ＣＨ４はリードコマンドの発行中でありリードデータは未取得である。各制御部では、現チャネルの転送が完了したら、リードポインタを進めて次に実行するチャネルを指定するが、このチャネルは前制御部まで処理が完了しているので、正しいタイミングで転送することができる。
【００７９】
なお、これらの説明はあくまで一例であり、ライトレスポンスが不要なバスプロトコルであればライトレスポンス取得部２５を不要としてよく、またライトマスタＩＤはチャネル固有のＩＤを発行するなど、これに限るものではない。
【００８０】
本実施の形態によれば、リードやライトの各処理において、それぞれ別チャネルの転送を内部メモリの状態に応じて最適なタイミングで実行でき、複数チャネルの転送が混在する場合でもデータ転送時間を短縮することが可能である。
【００８１】
（実施の形態４）
図８は本発明の実施の形態４におけるＤＭＡ転送制御装置１００の概略構成を示すブロック図である。図８において、実施の形態３の図６におけるのと同じ符号は同一構成要素を指している。本実施の形態においては、ライトレスポンス取得部２５がチャネルごとのレスポンスカウンタ２６を有している。その他の構成については、実施の形態３と同様であるので、説明を省略する。
【００８２】
次に、本実施の形態のＤＭＡ転送制御装置におけるデータ転送の方法を説明する。ライトレスポンスに関する動作以外については、実施の形態３と同様である。実施の形態３と異なる箇所を以降に述べる。
【００８３】
まず、チャネル用ＦＩＦＯ４は、リードコマンド発行部１０、リードデータ取得部１４、ライトコマンド発行部２０、ライトデータ発行部２４の各制御部用リードポインタを有しているが、ライトレスポンス取得用のリードポインタは有していない。このため、ライトレスポンス取得部２５を制御するチャネルを設けず、全チャネルのライトレスポンスが受け取れる状態にしている。
【００８４】
また、ライトコマンドの発行時においては、ライトマスタＩＤ発行部２２で、チャネル共通ではなくチャネルごとに異なるＩＤを発行する。このため、ライトレスポンスの返ってくる順序が、ライトコマンドを発行した順序とは限らなくなる。
【００８５】
ライトレスポンス取得部２５にある各チャネルのレスポンスカウンタ２６は、このチャネルがライトコマンドを発行したらカウントアップし、このチャネルのライトレスポンスを取得したらカウントダウンする。このチャネルの必要な転送をすべて発行した状態で、このチャネルのレスポンスカウンタ２６が０になった時点で、このチャネルの転送の完了を認識することができる。
【００８６】
なお、これらの説明はあくまで一例であり、これに限るものではない。
【００８７】
本実施の形態によれば、リードやライトの各処理において、それぞれ別チャネルの転送を内部メモリの状態に応じて最適なタイミングで実行できるため、複数チャネルの転送が混在する場合でもデータ転送時間を短縮することが可能であり、またライト完了の早いチャネルからＤＭＡ転送完了を通知することができる。
【００８８】
（実施の形態５）
図９は本発明の実施の形態５におけるＤＭＡ転送制御装置１００の概略構成を示すブロック図である。図９において、実施の形態３の図６におけるのと同じ符号は同一構成要素を指している。本実施の形態においては、内部メモリ２に代えて、リードデータ取得部１４からのリードデータＤｒを入力としてライトデータ発行部２４にライトデータＤｗを出力するデータ用ＦＩＦＯ２ａを有している。また、データ用ＦＩＦＯ２ａの空き個数Ｎ０をリードコマンド発行制御部１１に伝え、データ用ＦＩＦＯ２ａのデータ個数Ｎをライトコマンド発行制御部２１に伝えるように構成されている。その他の構成については、実施の形態３と同様であるので、説明を省略する。
【００８９】
次に、本実施の形態のＤＭＡ転送制御装置におけるデータ転送の方法を説明する。データ量の計算に関係する箇所以外については、実施の形態３と全く同様である。
【００９０】
データ用ＦＩＦＯ２ａでは、ある単位サイズがＦＩＦＯのデータ幅となっている。リードデータ取得部１４では、バスＡより取得したリードデータが前記の単位サイズに達した場合に、データ用ＦＩＦＯ２ａにリードデータＤｒを書き込む。ただし、チャネルの切り替わり時や、リードデータの連続領域から次の連続領域にジャンプする場合は、前記の単位サイズに満たしていなくても、データ用ＦＩＦＯ２ａにリードデータＤｒを書き込む。
【００９１】
リードデータカウンタ１３では、前記の単位サイズでの未リードデータ量Ｑｒに対応する未リードデータ量個数Ｎｒをカウントする。リードコマンドの発行時には、そのコマンドでのリードデータ量ＱＲを単位サイズで割った数ＮＲだけ加算する。リードデータ量個数ＮＲで端数が生じた場合は、切り上げて加算する。また、リードデータ取得部１４からデータ用ＦＩＦＯ２ａにデータを書き込んだタイミングで、カウントダウンする。
【００９２】
ライトデータカウンタ２３についても、同様の方法でカウンタ制御を行う。ライトデータカウンタ２３では、前記の単位サイズでの未ライトデータ量Ｑｗに対応する未ライトデータ量個数Ｎｗをカウントする。ライトコマンドの発行時には、そのコマンドでのライトデータ量ＱＷを単位サイズで割った数ＮＷだけ加算する。ライトデータ量個数ＮＷで端数が生じた場合は、切り上げて加算する。また、データ用ＦＩＦＯ２ａからライトデータ発行部２４にデータが読み出されたタイミングで、カウントダウンする。
【００９３】
リードコマンド発行部１０では、設定レジスタ１中の該当するチャネルのレジスタに基づき、発行するリードコマンドを決定し、このリードコマンドにより取得されるリードデータ量個数ＮＲを算出する。端数が生じた場合には切り上げる。リードコマンド発行制御部１１では、データ用ＦＩＦＯ２ａの空き個数Ｎ０からリードデータカウンタ１３の未リードデータ量個数Ｎｒを差し引いてリードコマンド許否判定量Ｊｒ（＝Ｎ０−Ｎｒ）を求め、このリードコマンド許否判定量Ｊｒが前述のリードデータ量個数ＮＲ以上あるかを判定する（Ｊｒ≧ＮＲ）。その判定の結果が肯定的で、リードコマンド許否判定量Ｊｒに対してリードデータ量個数ＮＲの方が小さいか同じで、データ用ＦＩＦＯ２ａにおいてリードデータが増えてもデータ用ＦＩＦＯ２ａをオーバーフローさせない場合には、リードコマンドの発行を許可する。
【００９４】
ライトコマンド発行部２０では、設定レジスタ１中の該当するチャネルのレジスタに基づき、発行するライトコマンドを決定し、このライトコマンドにより発行されるライトデータ量個数ＮＷを算出する。端数が生じた場合は切り上げる。ライトコマンド発行制御部２１では、データ用ＦＩＦＯ２ａのデータ個数Ｎからライトデータカウンタ２３の未ライトデータ量個数Ｎｗを差し引いてライトコマンド許否判定量Ｊｗ（＝Ｎ−Ｎｗ）を求め、このライトコマンド許否判定量Ｊｗが前述のライトデータ量個数ＮＷ以上あるかを判定する（Ｊｗ≧ＮＷ）。その判定の結果が肯定的で、ライトコマンド許否判定量Ｊｗに対してライトデータ量個数ＮＷの方が小さいか同じで、ライトデータを発行してもデータ用ＦＩＦＯ２ａをアンダーフローさせない場合には、ライトコマンドの発行を許可する。
【００９５】
この実施の形態での転送の一例を図１０に示す。設定レジスタ１において、チャネルＣＨ０は転送サイズが１８バイト、リードデータ幅は２バイト、ライトデータ幅は２バイト、チャネルＣＨ１は転送サイズが８バイト、リードデータ幅は２バイト、ライトデータ幅は４バイトであり、いずれのチャネルもすべて連続領域を転送するように設定されているとする。また、単位サイズは４バイトで、データ用ＦＩＦＯ２ａはデータ幅が４バイト、容量は５個である。また、接続されているバスＡとバスＢのプロトコルにより、１コマンドでのデータのバースト数は４までに規定されているとする。ＣＨ０，ＣＨ１の順に転送が行われる。
【００９６】
まず、図１０の（ａ）において、リードコマンド発行制御部１１では、発行するＣＨ０リードコマンドにより取得するリードデータ量個数ＮＲを算出する。リードデータ幅（２バイト）と最大バースト数（４回）により、リードデータ量ＱＲは８バイトと決定される。これは、単位サイズ２個分となる（ＮＲ＝８÷４＝２）。また、データ用ＦＩＦＯ２ａの空き個数Ｎ０の５個から未リードデータ量個数Ｎｒの０個を差し引いてリードコマンド許否判定量Ｊｒ（＝Ｎ０−Ｎｒ＝５−０）を５個と算出する。このリードコマンド許否判定量Ｊｒと前述のリードデータ量個数ＮＲ＝２個を比較すると、Ｊｒ≧ＮＲ（５＞２）が成立し、リードしてもデータ用ＦＩＦＯ２ａがあふれることはないので（オーバーフロー回避）、リードコマンドの発行を許可する。また、コマンドの発行により、リードデータカウンタ１３の未リードデータ量個数Ｎｒは２個増加される（Ｎｒ←Ｎｒ＋ＮＲ＝０＋２＝２）。
【００９７】
次に、図１０の（ｂ）において、リードコマンド発行制御部１１では、発行するリードコマンドにより取得するリードデータ量ＱＲは８バイトと決定され、単位サイズでのリードデータ量個数ＮＲ＝２個分となる。また、データ用ＦＩＦＯ２ａの空き個数Ｎ０の５個から未リードデータ量個数Ｎｒの２個を差し引いてリードコマンド許否判定量Ｊｒ（＝Ｎ０−Ｎｒ＝５−２）を３個と算出する。このリードコマンド許否判定量Ｊｒと前述のリードデータ量個数ＮＲ＝２個を比較すると、Ｊｒ≧ＮＲ（３＞２）が成立し、リードしてもデータ用ＦＩＦＯ２ａがあふれることはないので（オーバーフロー回避）、リードコマンドの発行を許可する。このタイミングでは、前回のリードコマンドは完了していないが、先行発行としてリードコマンドを発行することで、リードデータ取得にかかる時間を短縮することが可能となる。
【００９８】
次に、図１０の（ｃ）において、リードコマンド発行制御部１１では、発行するリードコマンドにより取得するリードデータ量個数ＮＲは２バイトと決定される（１８−８−８＝２）。これは単位サイズである４バイトに達していないが、ＣＨ０の最終リードデータであるので、切り上げて計算し、単位サイズ１個分とみなす（ＮＲ＝１）。また、データ用ＦＩＦＯ２ａの空き個数Ｎ０の５個から未リードデータ量個数Ｎｒの４個を差し引いてリードコマンド許否判定量Ｊｒ（＝Ｎ０−Ｎｒ＝５−４）を１個と算出する。このリードコマンド許否判定量Ｊｒと前述のリードデータ量個数ＮＲ＝１個を比較すると、Ｊｒ≧ＮＲが成立し、リードしてもデータ用ＦＩＦＯ２ａがあふれることはないので（オーバーフロー回避）、リードコマンドの発行を許可して、続けて先行発行を行う。
【００９９】
ライトコマンド発行制御部２１では、発行するライトコマンドにより発行されるライトデータ量個数ＮＷを算出する。ライトデータ量ＱＷは、ライトデータ幅（２バイト）と最大バースト数（４回）により８バイトと決定される。これは、単位サイズ２個分となる（ＮＷ＝８÷４＝２）。リードコマンドの発行によりリードデータＤｒが取得されていくと、データ用ＦＩＦＯ２ａにデータが蓄積されていく。図１０の（ｄ）では、データ用ＦＩＦＯ２ａのデータ個数Ｎは２個となっているが、このデータ個数から未ライトデータ量個数Ｎｗの０個を差し引いてライトコマンド許否判定量Ｊｗ（＝Ｎ−Ｎｗ＝２−０）を２個と算出する。このライトコマンド許否判定量Ｊｗと前述のライトデータ量個数ＮＷ＝２個を比較すると、Ｊｗ≧ＮＷが成立し、ライトに必要なデータが確保されているので（アンダーフロー回避）、ライトコマンドの発行を許可する。
【０１００】
図１０の（ｅ）において、取得したリードデータは２バイトで、単位サイズである４バイトに達していないが、ＣＨ０の最後の最終リードデータのため、データ用ＦＩＦＯ２ａのポインタを進める。併せて、データ用ＦＩＦＯ２ａの空き個数Ｎ０、データ用ＦＩＦＯ２ａのデータ個数Ｎも変化する。
【０１０１】
ライトコマンド発行制御部２１では、図１０の（ｆ）でライトコマンドの発行した以降において、次に発行するライトコマンドによるライトデータ量個数ＮＷの算出では、ライトデータ幅と最大バースト数により２バイトと決定される。単位サイズの４バイトに達していないが、ＣＨ０の最終ライトデータであるので、切り上げて計算し、単位サイズ１個分とみなす。図１０の（ｇ）では、図１０の（ｅ）のリードデータによってＦＩＦＯデータ個数Ｎが３個となっており、このデータ個数から未ライトデータ量個数Ｎｗの２個を差し引いて１個を算出する。これと前述のライトデータ量個数ＮＷ＝１個を比較すると、ライトに必要なデータが確保されているので（アンダーフロー回避）、ライトコマンドの発行を許可する。このとき、データ用ＦＩＦＯ２ａからは４バイト読み出すが、２バイト分のみが有効であるため、この２バイトをライトデータとして用いる。このように、単位サイズの端数が生じても、正しくデータ量の認識をしてデータ転送を実行することができる。
【０１０２】
なお、これらの説明はあくまで一例であり、ライトレスポンスが不要なバスプロトコルであればライトレスポンス取得部２５を不要としてよく、またライトマスタＩＤはチャネル固有のＩＤを発行するなど、これに限るものではない。
【０１０３】
本実施の形態によれば、リードやライトの各処理において、それぞれ別チャネルの転送を内部メモリの状態に応じて最適なタイミングで実行でき、また最適なタイミングを求めるための計算時間や回路面積を減らすことが可能となる。
【０１０４】
（実施の形態６）
図１１は本発明の実施の形態６における半導体集積回路装置２００の概略構成を示すブロック図である。本実施の形態の半導体集積回路装置２００は、集積回路４０、ＳＤＲＡＭ５０、周辺デバイス６０を有する。集積回路４０は、ＣＰＵ４１、ＤＭＡ転送制御装置１００、メモリコントローラ４２、周辺コントローラ４３を有しており、それぞれがバス４４により相互接続されている。メモリコントローラ４２はＳＤＲＡＭ５０と接続されており、周辺コントローラ４３は周辺デバイス６０と接続されている。また、ＤＭＡ転送制御装置１００は、実施の形態１〜５のいずれかで説明したような、本発明のコマンドの先行発行機能を含んでいる。
【０１０５】
半導体集積回路装置２００において、ＤＭＡ転送制御装置１００を用いて、ＳＤＲＡＭ５０から周辺デバイス６０へデータ転送する場合を考える。ＤＭＡ転送制御装置１００でのコマンドの発行では、実施の形態１〜５のいずれかで説明した方法により最適なタイミングで先行的に発行される。リードコマンドは、メモリコントローラ４２を介してＳＤＲＡＭ５０に送られるが、ＳＤＲＡＭ５０では、しばらく待った後にリードデータＤｒをＤＭＡ転送制御装置１００に返すため、転送速度が遅くなってしまう。しかし、コマンドの先行発行によって複数のリードコマンドを受け取ると、前のリードコマンドに対する処理の間に次のリードコマンドを受理して、次のリードコマンドに対する処理が並行して行われるため、複数のリードコマンドの発行後に複数のリードデータＤｒをすぐ返すような動作になり、転送速度の低下を防ぐことができる。
【０１０６】
また、周辺デバイス６０へのライトコマンドの発行においても同様に、最適なタイミングで先行的に発行することにより、スループットを向上させることができる。また、周辺デバイス６０からＳＤＲＡＭ５０にデータ転送する場合についても同様である。
【０１０７】
このように、ＳＤＲＡＭのような外部記憶装置だけではなく、例えばレイテンシの大きな周辺デバイスであっても本発明は有効であり、外部記憶装置に限らないことは明らかである。また、集積回路４０の外部でなく、レイテンシの大きな内部の機能ブロックにアクセスする場合にも有効である。
【０１０８】
なお、実現の方法については、上記実施の形態で述べた複数の構成を組み合わせて実現することも当然可能である。また、プロトコルに応じて、異なる構成をとることも可能である。例えば、ライトレスポンスリクエストに応じてライトレスポンスを返すようなプロトコルであるならば、ライトマスタＩＤは各チャネル別のＩＤを使用し、ライト発行では各チャネル最後の転送にライトレスポンスリクエスト信号を付加し、ライトレスポンス取得部はカウンタを用いることなく、チャネルの転送完了を認識できるようになる。また、本発明の機能を有するＤＭＡ転送制御装置の代わりにバスアダプタを搭載した集積回路を用いた場合であっても、同様にアクセス性能の低下を防ぐことが可能であり、これらの記載した構成に限らない。
【０１０９】
なお、上述した本発明の実施の形態において使用される手法・構成は一例であり、本発明はこれらに限定されるものでない。
【産業上の利用可能性】
【０１１０】
本発明におけるＤＭＡ転送制御装置は、内部メモリの状態を見て最適なタイミングでコマンドの先行発行ができるので、データ転送時間を短縮することが可能である。また、複数チャネルが混合するような転送でも、チャネルの切り替えによる性能低下が発生しないので、柔軟に転送設定を行うことができる。ＤＭＡ転送制御機能を含むバスアダプタにおいても、異なるプロトコルのバス間でのデータ転送時間短縮が可能である。
【図面の簡単な説明】
【０１１１】
【図１】本発明の実施の形態１におけるＤＭＡ転送制御装置の概略構成を示すブロック図
【図２】本発明の実施の形態１における転送制御例を示す図
【図３】本発明の実施の形態２におけるＤＭＡ転送制御装置の概略構成を示すブロック図
【図４】本発明の実施の形態２におけるチャネル制御例を示す図
【図５】本発明の実施の形態２における転送制御例を示す図
【図６】本発明の実施の形態３におけるＤＭＡ転送制御装置の概略構成を示すブロック図
【図７】本発明の実施の形態３におけるチャネル制御例を示す図
【図８】本発明の実施の形態４におけるＤＭＡ転送制御装置の概略構成を示すブロック図
【図９】本発明の実施の形態５におけるＤＭＡ転送制御装置の概略構成を示すブロック図
【図１０】本発明の実施の形態５における転送制御例を示すブロック図
【図１１】本発明の実施の形態６における半導体集積回路装置の概略構成を示すブロック図
【図１２】従来の技術におけるＤＭＡ転送制御装置の概略構成を示すブロック図
【符号の説明】
【０１１２】
１  設定レジスタ
２  内部メモリ
２ａ  データ用ＦＩＦＯ
３  チャネル制御部
４  チャネル用ＦＩＦＯ
１０  リードコマンド発行部
１１  リードコマンド発行制御部
１２  リードマスタＩＤ発行部
１３  リードデータカウンタ
１４  リードデータ取得部
２０  ライトコマンド発行部
２１  ライトコマンド発行制御部
２２  ライトマスタＩＤ発行部
２３  ライトデータカウンタ
２４  ライトデータ発行部
２５  ライトレスポンス取得部
２６  レスポンスカウンタ
３１〜３４  ＦＩＦＯ
４０  集積回路
４１  ＣＰＵ
４２  メモリコントローラ
４３  周辺コントローラ
４４  バス
５０  ＳＤＲＡＭ
６０  周辺デバイス
１００  ＤＭＡ転送制御装置
２００  半導体集積回路装置
Ａ，Ｂ  バス
Ｄｒ  リードデータ
Ｄｗ  ライトデータ
Ｊｒ  リードコマンド許否判定量
Ｊｗ  ライトコマンド許否判定量
Ｎ  データ個数
Ｎ０  空き個数
Ｎｒ  未リードデータ量個数
Ｎｗ  未ライトデータ量個数
Ｑ  データ量
Ｑ０  空き容量
Ｑｒ  未リードデータ量
Ｑｗ  未ライトデータ量
ＱＲ  リードデータ量
ＱＷ  ライトデータ量
【図１】
2008083911.tif 000003
【図２】
2008083911.tif 000004
【図３】
2008083911.tif 000005
【図４】
2008083911.tif 000006
【図５】
2008083911.tif 000007
【図６】
2008083911.tif 000008
【図７】
2008083911.tif 000009
【図８】
2008083911.tif 000010
【図９】
2008083911.tif 000011
【図１０】
2008083911.tif 000012
【図１１】
2008083911.tif 000013
【図１２】
2008083911.tif 000014