(57)【要約】【課題】コントロール設定情報の設定時間を短縮することができるダイレクトメモリアクセスコントローラを提供することを課題とする。【解決手段】コントロール設定情報を記憶する内部記憶部（３１１）と、転送要求信号が第１のグループに属しないときには外部記憶部から前記内部記憶部にコントロール設定情報をロードし、前記転送要求信号が第１のグループに属するときには前記外部記憶部から前記内部記憶部にコントロール設定情報をロードしない制御部（３３２）とを有し、前記内部記憶部内のコントロール設定情報に応じてダイレクトメモリアクセスによるデータ転送を行うことを特徴とするダイレクトメモリアクセスコントローラが提供される。【選択図】図３
2008046771.tif 000002
【特許請求の範囲】
【請求項１】
コントロール設定情報を記憶する内部記憶部と、
転送要求信号が第１のグループに属しないときには外部記憶部から前記内部記憶部にコントロール設定情報をロードし、前記転送要求信号が第１のグループに属するときには前記外部記憶部から前記内部記憶部にコントロール設定情報をロードしない制御部とを有し、
前記内部記憶部内のコントロール設定情報に応じてダイレクトメモリアクセスによるデータ転送を行うことを特徴とするダイレクトメモリアクセスコントローラ。
【請求項２】
前記制御部は、前記転送要求信号が第１のグループに属しないときには前記外部記憶部から前記内部記憶部にコントロール設定情報をロードし、前記転送要求信号が第１のグループに属するときには前記内部記憶部内のコントロール設定情報を維持することを特徴とする請求項１記載のダイレクトメモリアクセスコントローラ。
【請求項３】
さらに、前記転送要求信号に応じてグループを設定するグループ設定部を有し、
前記制御部は、前記設定されたグループと現在のグループとを比較し、前記設定されたグループが現在のグループと異なるときには前記外部記憶部から前記内部記憶部にコントロール設定情報をロードし、前記設定されたグループが現在のグループと同じときには前記内部記憶部内のコントロール設定情報を維持することを特徴とする請求項２記載のダイレクトメモリアクセスコントローラ。
【請求項４】
さらに、前回の転送要求信号のグループを前記現在のグループとして記憶するグループ記憶部を有することを特徴とする請求項３記載のダイレクトメモリアクセスコントローラ。
【請求項５】
前記コントロール設定情報は、転送回数、転送データ長又は各転送間のウエイトサイクル数を含むことを特徴とする請求項２記載のダイレクトメモリアクセスコントローラ。
【請求項６】
前記コントロール設定情報は転送回数を含み、
さらに、前記内部記憶部から前記転送回数がロードされるカウンタを有することを特徴とする請求項２記載のダイレクトメモリアクセスコントローラ。
【請求項７】
さらに、コントロール設定情報を記憶する共通コントロール設定情報記憶部を有し、
前記制御部は、前記転送要求信号が第１のグループに属しないときには前記外部記憶部から前記内部記憶部にコントロール設定情報をロードし、前記転送要求信号が第１のグループに属するときには前記共通コントロール設定情報記憶部から前記内部記憶部にコントロール設定情報をロードすることを特徴とする請求項１記載のダイレクトメモリアクセスコントローラ。
【請求項８】
前記制御部は、前記転送要求信号が示す複数ビットのチャネル番号のうちの１つのビットに応じて、前記外部記憶部から前記内部記憶部にコントロール設定情報をロードし、又は前記共通コントロール設定情報記憶部から前記内部記憶部にコントロール設定情報をロードすることを特徴とする請求項７記載のダイレクトメモリアクセスコントローラ。
【請求項９】
前記コントロール設定情報は、転送回数、転送データ長又は各転送間のウエイトサイクル数を含むことを特徴とする請求項７記載のダイレクトメモリアクセスコントローラ。
【請求項１０】
前記コントロール設定情報は転送回数を含み、
さらに、前記内部記憶部から前記転送回数がロードされるカウンタを有することを特徴とする請求項７記載のダイレクトメモリアクセスコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ダイレクトメモリアクセスによるデータ転送を行うダイレクトメモリアクセスコントローラに関する。
【背景技術】
【０００２】
図２は、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）１０１及び外部メモリ１０２の構成例を示す図である。ＤＭＡＣ１０１は、コントロール設定レジスタ２１１、転送先アドレス設定レジスタ２１２、転送元アドレス設定レジスタ２１３、リソースイネーブルレジスタ２１４、割り込み要因レジスタ２１５、ディスクリプタ先頭アドレス設定レジスタ２１６、ステータスレジスタ２１７及びカウンタ２２１を有する。外部メモリ１０２は、ディスクリプタ２０４を記憶する。ディスプリプタ２０４は、チャネル番号毎の、コントロール設定レジスタ２０１、転送先アドレス設定レジスタ２０２及び転送元アドレス設定レジスタ２０３を含む。
【０００３】
ＤＭＡＣ１０１は、各々がチャネル番号を持つ複数のリソースから転送要求信号ＲＥＱを入力し、そのチャネル番号に対応する外部メモリ１０２内のコントロール設定レジスタ２０１、転送先アドレス設定レジスタ２０２及び転送元アドレス設定レジスタ２０３からＤＭＡＣ１０１内のコントロール設定レジスタ２１１、転送先アドレス設定レジスタ２１２及び転送元アドレス設定レジスタ２１３に、コントロール設定情報、転送先アドレス及び転送元アドレスをロードする。外部メモリ１０２は、チャネル番号毎に、コントロール設定情報、転送先アドレス及び転送元アドレスを記憶しており、ＤＭＡＣ１０１は転送要求信号ＲＥＱのチャネル番号が変わる度に外部メモリ１０２からＤＡＭＣ１０１へ上記のロードを行う。
【０００４】
下記の特許文献１には、ＤＭＡＣがバスを介して外部記憶領域に接続され、外部記憶領域はディスクリプタを含み、ディスクリプタを用いてＤＭＡＣを制御するディスクリプタ制御方式が記載されている。
【０００５】
また、下記の特許文献２には、外部記憶領域上に、予め連続して設定される複数のディスクリプタに従ってダイレクトメモリアクセス転送を行うデータ転送装置が記載されている。
【０００６】
【特許文献１】特開平４−２７７８５０号公報
【特許文献２】特開平４−１７７４４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ディスクリプタ方式のＤＭＡＣ１０１では、別チャネル番号の転送要求信号ＲＥＱが発生した時には、たとえ設定値が同じであっても、再度外部メモリ１０２からディスクリプタ２０４の設定をロードしなければならないという課題がある。
【０００８】
本発明の目的は、コントロール設定情報の設定時間を短縮することができるダイレクトメモリアクセスコントローラを提供することである。
【課題を解決するための手段】
【０００９】
本発明の一観点によれば、コントロール設定情報を記憶する内部記憶部と、転送要求信号が第１のグループに属しないときには外部記憶部から前記内部記憶部にコントロール設定情報をロードし、前記転送要求信号が第１のグループに属するときには前記外部記憶部から前記内部記憶部にコントロール設定情報をロードしない制御部とを有し、前記内部記憶部内のコントロール設定情報に応じてダイレクトメモリアクセスによるデータ転送を行うことを特徴とするダイレクトメモリアクセスコントローラが提供される。
【発明の効果】
【００１０】
外部記憶部から内部記憶部にコントロール設定情報をロードする回数を減らすことができるので、コントロール設定情報の設定時間を短縮することができる。その結果、ダイレクトメモリアクセスによるデータ転送時間を短くすることができる。
【発明を実施するための最良の形態】
【００１１】
（第１の実施形態）
図１は、本発明の第１の実施形態による半導体集積回路の半導体チップの構成例を示すブロック図である。バスアダプタ１０６には、バスを介して、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）１０１、ＲＡＭ１０４、ＣＰＵ１０５、フラッシュメモリ１０７、ＲＡＭ１０２及びデータ幅変換ユニット１０８が接続される。バスアダプタ１０６は、バスを介して、上記のユニットのタイミングを制御する。データ幅変換ユニット１０８には、リソース１０３及びポート１０９が接続される。データ幅変換ユニット１０８は、データ幅の変換を行う。ポート１０９は、この半導体チップの外部端子である。リソース１０３は、タイマ又はＡ／Ｄ変換器等の周辺装置である。ＤＭＡＣ１０１は、リソース１０３から転送要求信号を入力すると、ＣＰＵ１０５を介さずに、リソース１０３及びＲＡＭ１０２間等のダイレクトメモリアクセスによるデータ転送を制御する。
【００１２】
図３は、本実施形態によるＤＭＡＣ１０１及びＲＡＭ（外部メモリ）１０２の構成例を示す図である。ＤＭＡＣ１０１は、コントロール設定レジスタ３１１、転送先アドレス設定レジスタ３１２、転送元アドレス設定レジスタ３１３、リソースイネーブルレジスタ３１４、割り込み要因レジスタ３１５、ディスクリプタ先頭アドレス設定レジスタ３１６、ステータスレジスタ３１７、カウンタ３２１、グループ設定部３３１、比較器３３２及びカレントグループレジスタ３３３を有する。外部メモリ１０２は、ディスクリプタ３０４を記憶する。ディスプリプタ３０４は、チャネル番号毎の、コントロール設定レジスタ３０１、転送先アドレス設定レジスタ３０２及び転送元アドレス設定レジスタ３０３を含む。
【００１３】
転送要求信号ＲＥＱは、リソース１０３（図１）からＤＭＡＣ１０１に入力される信号であり、例えば１６ビットのデジタル信号である。例えば、リソース１０３が１６個存在し、１６個のリソース１０３はそれぞれ１本の転送要求信号線を介してＤＭＡＣ１０１に接続される。転送要求信号ＲＥＱの線は、全部で１６本となり、１６ビットの線となる。各リソース１０３は、転送要求信号ＲＥＱをハイレベルにすることにより転送要求がイネーブル（有効）状態になり、転送要求信号ＲＥＱをローレベルにすることによりディセーブル（無効）状態になる。１６個のリソース１０３は、それぞれ０〜１５のチャネル番号が付与されている。１６ビットの転送要求信号ＲＥＱは、０〜１５のチャネル番号の転送要求信号に対応する。例えば、外部メモリ１０２は、１６個のチャネルに対応し、コントロール設定レジスタ３０１、転送先アドレス設定レジスタ３０２及び転送元アドレス設定レジスタ３０３の組みを１６組記憶する。すなわち、チャネル番号毎に、コントロール設定レジスタ３０１、転送先アドレス設定レジスタ３０２及び転送元アドレス設定レジスタ３０３が設けられる。
【００１４】
コントロール設定レジスタ３０１及び３１１は、３２ビットのコントロール設定情報を記憶する。コントロール設定情報は、転送回数、転送データ長又は各転送間のウエイトサイクル数を含む。転送データ長は、１回の転送のデータ長であり、例えばバイト又はワードである。カウンタ３２１には、コントロール設定レジスタ３１１内の転送回数がロードされる。カウンタ３２１は、転送を行う度にカウント値のデクリメントを行い、カウント値が０になると転送を終了する。ＤＭＡＣ１０１は、コントロール設定レジスタ３０１内の転送回数、転送データ長及び各転送間のウエイトサイクル数等に応じて、リソース１０３及び外部メモリ１０２間等のデータ転送を行う。コントロール設定レジスタ３０１、転送先アドレス設定レジスタ３０２及び転送元アドレス設定レジスタ３０３は、外部メモリ１０２内の外部記憶部である。コントロール設定レジスタ３１１、転送先アドレス設定レジスタ３１２及び転送元アドレス設定レジスタ３１３は、ＤＭＡＣ１０１内の内部記憶部である。
【００１５】
転送先アドレス設定レジスタ３０２及び３１２は、３２ビットの転送先アドレスを記憶する。転送元アドレス設定レジスタ３０３及び３１３は、３２ビットの転送元アドレスを記憶する。例えば、リソース１０３から外部メモリ１０２にデータ転送する場合には、転送元アドレスがリソース１０３のアドレスであり、転送先アドレスが外部メモリ１０２のアドレスである。逆に、外部メモリ１０２からリソース１０３にデータ転送する場合には、転送元アドレスが外部メモリ１０２のアドレスであり、転送先アドレスがリソース１０３のアドレスである。
【００１６】
リソースイネーブルレジスタ３１４は、各チャネル番号のリソース１０３の転送要求のイネーブル状態を記憶する。ディスクリプタ先頭アドレス設定レジスタ３１６は、外部メモリ１０２内のディスクリプタ３０４の先頭アドレスを記憶する。ステータスレジスタ３１７は、例えばデータ転送の終了状態等の状態を記憶する。
【００１７】
グループ設定部３３１は、転送要求信号ＲＥＱを入力し、チャネル番号に応じてグループを設定する。０〜１５のチャネル番号がそれぞれ属するグループは、グループ設定レジスタＧ０〜Ｇ１５に記憶されている。例えば、０のチャネル番号の転送要求信号ＲＥＱが入力されると、グループ設定レジスタＧ０のグループが比較器３３２に出力される。チャネル番号が異なっていても、コントロール設定情報は同じであることがある。その場合には、それらのチャネル番号は、同じグループに属することになる。１６個のグループ設定レジスタＧ０〜Ｇ１５は、それぞれ４ビット（０〜１５）のグループ番号を記憶する。
【００１８】
カレントグループレジスタ３３３は、５ビットのグループ番号を記憶し、初期値として１６（０〜１５以外の番号）が格納されている。比較器３３２で比較された後、カレントグループレジスタ３３３には新しいグループ番号が上書きされる。すなわち、カレントレジスタ３３３は、前回の転送要求信号ＲＥＱのグループを現在のグループとして記憶する。
【００１９】
比較器３３２は、５ビットの比較器であり、グループ設定部３３１が出力するグループ番号と、カレントグループレジスタ３３３に記憶されているグループ番号とを比較する。比較結果が異なる場合、比較器３３２は、バスを介して、外部メモリ１０２内のコントロール設定レジスタ３０１からＤＭＡＣ１０１内のコントロール設定レジスタ３１１へコントロール設定情報をロードするように制御する。比較結果が同じ場合、比較器３３２は、外部メモリ１０２内のコントロール設定レジスタ３０１へアクセスさせない制御信号を出力し、コントロール設定レジスタ３１１内のコントロール設定情報を維持する。最初の転送要求信号ＲＥＱが入力されたときには、必ず比較器３３２の比較結果が異なるようにカレントグループレジスタ３３３の初期値が設定されている。すなわち、グループ設定部３３１が出力可能なグループ番号が０〜１５であるときには、カレントグループレジスタ３３３の初期値を１６以上にする。これにより、初期時には、必ず外部メモリ１０２内のコントロール設定レジスタ３０１からＤＭＡＣ１０１内のコントロール設定レジスタ３１１にコントロール設定情報がロードされる。上記の比較後、カレントグループレジスタ３３３には、グループ設定部３３１が出力するグループ番号が記憶される。
【００２０】
以上のように、同じグループ番号に属するチャネル番号の転送要求は、コントロール設定情報が同じである。新たな転送要求信号ＲＥＱが入力されたときに、そのグループ番号と現在のグループ番号が同じであるときには、コントロール設定レジスタ３１１内のコントロール設定情報を変える必要がないので、その情報を維持する。これに対し、新たな転送要求信号ＲＥＱが入力されたときに、そのグループ番号と現在のグループ番号が異なるときには、コントロール設定レジスタ３１１内のコントロール設定情報を変える必要があるので、外部メモリ１０２内のコントロール設定レジスタ３０１からＤＭＡＣ１０１内のコントロール設定レジスタ３１１へコントロール設定情報をロードする。
【００２１】
本実施形態は、図２のＤＭＡＣに比べ、外部メモリ１０２からＤＭＡＣ１０１へコントロール設定情報をロードする回数を減らすことができ、コントロール設定情報の設定時間を短縮することができる。
【００２２】
図６は、図３のＤＭＡＣ１０１の処理例を示すフローチャートである。ＤＭＡＣ１０１がリソース１０３から入力する転送要求信号ＲＥＱがイネーブル状態になると、以下の処理を開始する。グループ設定部３３１は、転送要求信号ＲＥＱのチャネル番号に応じてグループ番号を設定し、比較器３３２に出力する。
【００２３】
ステップＳ６０１では、比較器３３２は、グループ設定部３３１が出力するグループ番号とカレントグループレジスタ３３３に記憶されているグループ番号とを比較する。両者が一致しないときには、ステップＳ６０２へ進み、外部メモリ１０２内のコントロール設定レジスタ３０１からＤＭＡＣ１０１内のコントロール設定レジスタ３１１にコントロール設定情報をロードし、ステップＳ６０３に進む。両者が一致するときには、上記のロードを行わずに、ＤＡＭＣ１０１内のコントロール設定レジスタ３１１内のコントロール設定情報を維持し、ステップＳ６０３に進む。
【００２４】
ステップＳ６０３では、ＤＭＡＣ１０１は、コントロール設定レジスタ３１１内の転送回数をカウンタ３２１にロードし、カウント値として設定する。次に、ステップＳ６０４では、ＤＭＡＣ１０１は、外部メモリ１０２内の転送元アドレス設定レジスタ３０３からＤＭＡＣ１０１内の転送元アドレス設定レジスタ３１３に転送元アドレスをロード（リード）する。次に、ステップＳ６０５では、ＤＭＡＣ１０１は、外部メモリ１０２内の転送先アドレス設定レジスタ３０２からＤＭＡＣ１０１内の転送先アドレス設定レジスタ３１２に転送先アドレスをロード（リード）する。
【００２５】
次に、ステップＳ６０６では、ＤＭＡＣ１０１は、転送元アドレスレジスタ３１３が示すアドレスからデータをリードする。例えば、リソース１０３からデータをリードする。次に、ステップＳ６０７では、ＤＭＡＣ１０１は、転送先アドレスレジスタ３１２が示すアドレスに上記リードしたデータをライトする。例えば、外部メモリ１０２にライトする。これにより、ダイレクトメモリアクセスによるデータ転送が行われる。
【００２６】
次に、ステップＳ６０８では、ＤＭＡＣ１０１は、カウンタ３２１のカウント値をデクリメントする。次に、ステップＳ６０９では、ＤＭＡＣ１０１は、カウンタ３２１のカウント値が０か否かをチェックする。０でなければ、ステップＳ６０６に戻り、データ転送を繰り返す。ステップＳ６０９において、カウンタ３２１のカウント値が０になると、データ転送処理を終了する。このように、ＤＭＡＣ１０１は、ステップＳ６０３でカウンタ３２１に設定した転送回数だけデータ転送を繰り返す。
【００２７】
以上のように、グループ番号比較結果が一致する時は、外部メモリ１０２へアクセスしなくてよいので、その分全体的なアクセス回数を減らすことができる。
【００２８】
図７は、図２のＤＭＡＣのアクセス処理及び図３のＤＭＡＣのアクセス処理の回数の比較を示すタイムチャートである。横軸は時間を示す。アクセス処理Ｔ１は、図２のＤＭＡＣのアクセス処理を示す。アクセス処理Ｔ２は、本実施形態の図３のＤＭＡＣのアクセス処理を示す。４個のチャネル番号０ｃｈ〜３ｃｈの転送要求信号ＲＥＥＱに応じて、順次データ転送を行う例を示す。４個のチャネル番号０ｃｈ〜３ｃｈは、すべてコントロール設定情報が同じである場合を例に説明する。
【００２９】
コントロール設定情報ロード（リード）処理７０１は、図６のステップＳ６０２の処理に対応する。転送元アドレスロード（リード）処理７０２は、図６のステップＳ６０４の処理に対応する。転送先アドレスロード（リード）処理７０３は、図６のステップＳ６０５の処理に対応する。データリード処理７０４は、図６のステップＳ６０６に対応する。データライト処理７０５は、図６のステップＳ６０７に対応する。
【００３０】
図２のＤＭＡＣのアクセス処理Ｔ１では、各チャネル番号の処理毎に、毎回、コントロール設定情報ロード（リード）処理７０１を行う。これに対し、本実施形態のＤＭＡＣのアクセス処理Ｔ２では、チャネル番号０ｃｈ〜３ｃｈが同じグループに属する場合、コントロール設定情報がすべて同じであるので、最初のチャネル番号０ｃｈのときのみコントロール設定情報ロード（リード）処理７０１を行い、その後のチャネル番号１ｃｈ〜３ｃｈのときにはコントロール設定情報ロード（リード）処理７０１を行わない。これにより、本実施形態のＤＭＡＣのアクセス処理Ｔ２は、図２のＤＭＡＣのアクセス処理Ｔ１に比べ、コントロール設定情報ロード（リード）処理７０１の回数を減らし、データ転送時間を短くすることができる。なお、プログラム（データ転送量）がコンパクトになるほど全体から見たアクセス数の削減率が大きくなり、効果的であると言える。
【００３１】
以上のように、本実施形態によれば、制御部（比較器）３３２は、転送要求信号ＲＥＱが第１のグループに属しないときには外部のコントロール設定レジスタ（外部記憶部）３０１から内部のコントロール設定レジスタ（内部記憶部）３１１にコントロール設定情報をロードし、転送要求信号ＲＥＱが第１のグループに属するときには外部のコントロール設定レジスタ３０１から内部のコントロール設定レジスタ３１１にコントロール設定情報をロードしない。
【００３２】
具体的には、制御部３３２は、転送要求信号ＲＥＱが第１のグループに属しないときには外部のコントロール設定レジスタ３０１から内部のコントロール設定レジスタ３１１にコントロール設定情報をロードし、転送要求信号ＲＥＱが第１のグループに属するときには内部のコントロール設定レジスタ３１１内のコントロール設定情報を維持する。
【００３３】
ＤＭＡＣ１０１は、内部のコントロール設定レジスタ３１１内のコントロール設定情報に応じてダイレクトメモリアクセスによるデータ転送を行う。
【００３４】
（第２の実施形態）
図４は、本発明の第２の実施形態によるＤＭＡＣ１０１及び外部メモリ１０２の構成例を示す図である。本実施形態（図４）は、第１の実施形態（図３）に対して、グループ設定部３３１、比較器３３２及びカレントグループレジスタ３３３を削除し、ディスクリプタチャネル指定レジスタ４０１、共通レジスタ４０２及びディスクリプタアクセス制御部４０３を追加したものである。以下、本実施形態が第１の実施形態と異なる点を説明する。
【００３５】
ＤＭＡＣ１０１は、１６本の転送要求信号ＲＥＱを入力すると、その１６本の転送要求信号ＲＥＱのチャネル番号を４ビットのチャネル番号に変換し、ディスクリプタチャネル指定レジスタ４０１に記憶する。図５に示すように、４ビットのチャネル番号により、１６個のチャネル番号を表現可能である。
【００３６】
図５は、１６個のチャネル番号を４ビット表現した例を示す図である。ディスクリプタチャネル指定レジスタ４０１には、この４ビットのチャネル番号が記憶される。例えば、チャネル番号の最上位ビットである４ビット目に注目する。第１のグループ５０１はチャネル番号の４ビット目が「０」であるグループであり、第２のグループ５０２はチャネル番号の４ビット目が「１」であるグループである。グループ５０２に属するチャネル番号は、すべてコントロール設定情報が同じである。そこで、図４の共通レジスタ（共通コントロール設定情報記憶部）４０２には、グループ５０２に属するチャネル番号に共通のコントロール設定情報を記憶させる。共通レジスタ４０２は、不揮発性メモリが好ましい。
【００３７】
ディスクリプタアクセス制御部４０３は、ディスクリプタチャネル指定レジスタ４０１内のチャネル番号の４ビット目が「０」であるときには、外部メモリ１０２内のコントロール設定レジスタ３０１へのアクセス信号を出力し、外部メモリ１０２内のコントロール設定レジスタ３０１からＤＭＡＣ１０１内のコントロール設定レジスタ３１１にコントロール設定情報をロードする。これに対し、ディスクリプタアクセス制御部４０３は、ディスクリプタチャネル指定レジスタ４０１内のチャネル番号の４ビット目が「１」であるときには、外部メモリ１０２内のコントロール設定レジスタ３０１へアクセスさせない制御信号を出力し、ＤＭＡＣ１０１内の共通レジスタ４０２からＤＭＡＣ１０１内のコントロール設定レジスタ３１１にコントロール設定情報をロードする。
【００３８】
ＤＭＡＣ１０１は、バスを介して、外部メモリ１０２にアクセスするので、外部メモリ１０２からＤＭＡＣ１０１にコントロール設定情報をロードするのは長期間を要する。これに対し、ＤＭＡＣ１０１が、内部の共通レジスタ４０２からコントロール設定レジスタ３１１にコントロール設定情報をロードするのは短時間ですむ。コントロール設定情報が共通な複数のリソース１０３等がある場合には、４ビット目が「１」のチャネル番号を割り当てることで、外部メモリ１０２へのアクセス回数を減らすことができる。その結果、ダイレクトメモリアクセスによるデータ転送時間を短縮することができ、転送効率が向上する。
【００３９】
以上のように、本実施形態によれば、ディスクリプタアクセス制御部４０３は、転送要求信号ＲＥＱが第１のグループ５０１に属するときには外部のコントロール設定レジスタ３０１から内部のコントロール設定レジスタ３１１にコントロール設定情報をロードし、転送要求信号ＲＥＱが第１のグループ５０１に属しないときには共通レジスタ４０２からコントロール設定レジスタ３１１にコントロール設定情報をロードする。
【００４０】
具体的には、ディスクリプタアクセス制御部４０３は、転送要求信号ＲＥＱが示す複数ビットのチャネル番号のうちの１つのビット（例えば４ビット目）に応じて、外部のコントロール設定レジスタ３０１から内部のコントロール設定レジスタ３１１にコントロール設定情報をロードし、又は共通レジスタ４０２からコントロール設定レジスタ３１１にコントロール設定情報をロードする。
【００４１】
以上のように、第１及び第２の実施形態によれば、外部のコントロール設定レジスタ３０１から内部のコントロール設定レジスタ３１１にコントロール設定情報をロードする回数を減らすことができるので、コントロール設定情報の設定時間を短縮することができる。その結果、ダイレクトメモリアクセスによるデータ転送時間を短くすることができる。
【００４２】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【００４３】
本発明の実施形態は、例えば以下のように種々の適用が可能である。
【００４４】
（付記１）
コントロール設定情報を記憶する内部記憶部と、
転送要求信号が第１のグループに属しないときには外部記憶部から前記内部記憶部にコントロール設定情報をロードし、前記転送要求信号が第１のグループに属するときには前記外部記憶部から前記内部記憶部にコントロール設定情報をロードしない制御部とを有し、
前記内部記憶部内のコントロール設定情報に応じてダイレクトメモリアクセスによるデータ転送を行うことを特徴とするダイレクトメモリアクセスコントローラ。
（付記２）
前記制御部は、前記転送要求信号が第１のグループに属しないときには前記外部記憶部から前記内部記憶部にコントロール設定情報をロードし、前記転送要求信号が第１のグループに属するときには前記内部記憶部内のコントロール設定情報を維持することを特徴とする付記１記載のダイレクトメモリアクセスコントローラ。
（付記３）
さらに、前記転送要求信号に応じてグループを設定するグループ設定部を有し、
前記制御部は、前記設定されたグループと現在のグループとを比較し、前記設定されたグループが現在のグループと異なるときには前記外部記憶部から前記内部記憶部にコントロール設定情報をロードし、前記設定されたグループが現在のグループと同じときには前記内部記憶部内のコントロール設定情報を維持することを特徴とする付記２記載のダイレクトメモリアクセスコントローラ。
（付記４）
さらに、前回の転送要求信号のグループを前記現在のグループとして記憶するグループ記憶部を有することを特徴とする付記３記載のダイレクトメモリアクセスコントローラ。
（付記５）
前記制御部は、バスを介して前記外部記憶部から前記コントロール設定情報をロードすることを特徴とする付記２記載のダイレクトメモリアクセスコントローラ。
（付記６）
前記コントロール設定情報は、転送回数、転送データ長又は各転送間のウエイトサイクル数を含むことを特徴とする付記２記載のダイレクトメモリアクセスコントローラ。
（付記７）
前記コントロール設定情報は転送回数を含み、
さらに、前記内部記憶部から前記転送回数がロードされるカウンタを有することを特徴とする付記２記載のダイレクトメモリアクセスコントローラ。
（付記８）
さらに、コントロール設定情報を記憶する共通コントロール設定情報記憶部を有し、
前記制御部は、前記転送要求信号が第１のグループに属しないときには前記外部記憶部から前記内部記憶部にコントロール設定情報をロードし、前記転送要求信号が第１のグループに属するときには前記共通コントロール設定情報記憶部から前記内部記憶部にコントロール設定情報をロードすることを特徴とする付記１記載のダイレクトメモリアクセスコントローラ。
（付記９）
前記制御部は、前記転送要求信号が示す複数ビットのチャネル番号のうちの１つのビットに応じて、前記外部記憶部から前記内部記憶部にコントロール設定情報をロードし、又は前記共通コントロール設定情報記憶部から前記内部記憶部にコントロール設定情報をロードすることを特徴とする付記８記載のダイレクトメモリアクセスコントローラ。
（付記１０）
前記制御部は、バスを介して前記外部記憶部から前記コントロール設定情報をロードすることを特徴とする付記８記載のダイレクトメモリアクセスコントローラ。
（付記１１）
前記コントロール設定情報は、転送回数、転送データ長又は各転送間のウエイトサイクル数を含むことを特徴とする付記８記載のダイレクトメモリアクセスコントローラ。
（付記１２）
前記コントロール設定情報は転送回数を含み、
さらに、前記内部記憶部から前記転送回数がロードされるカウンタを有することを特徴とする付記８記載のダイレクトメモリアクセスコントローラ。
【図面の簡単な説明】
【００４５】
【図１】本発明の第１の実施形態による半導体集積回路の半導体チップの構成例を示すブロック図である。
【図２】ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）及び外部メモリの構成例を示す図である。
【図３】本発明の第１の実施形態によるＤＭＡＣ及び外部メモリの構成例を示す図である。
【図４】本発明の第２の実施形態によるＤＭＡＣ及び外部メモリの構成例を示す図である。
【図５】１６個のチャネル番号を４ビット表現した例を示す図である。
【図６】図３のＤＭＡＣの処理例を示すフローチャートである。
【図７】図２のＤＭＡＣのアクセス処理及び図３のＤＭＡＣのアクセス処理の回数の比較を示すタイムチャートである。
【符号の説明】
【００４６】
１０１  ＤＭＡＣ
１０２  外部メモリ
３０１，３１１  コントロール設定レジスタ
３０２，３１２  転送先アドレス設定レジスタ
３０３，３１３  転送元アドレス設定レジスタ
３０４  ディスクリプタ
３１４  リソースイネーブルレジスタ
３１５  割り込み要因レジスタ
３１６  ディスクリプタ先頭アドレス設定レジスタ
３１７  ステータスレジスタ
３２１  カウンタ
３３１  グループ設定部
３３２  比較部
３３３  カレントグループレジスタ
４０１  ディスクリプタチャネル指定レジスタ
４０２  共通レジスタ
４０３  ディスクリプタアクセス制御部
【図１】
2008046771.tif 000003
【図２】
2008046771.tif 000004
【図３】
2008046771.tif 000005
【図４】
2008046771.tif 000006
【図５】
2008046771.tif 000007
【図６】
2008046771.tif 000008
【図７】
2008046771.tif 000009