(57)【要約】【課題】データ処理装置におけるＤＭＡＣを利用したＤＭＡ転送による転送効率を向上させ、且つシステム全体の転送効率を向上させる。【解決手段】データ処理装置（１００）は記憶装置（２００）と回路モジュール（ＩＰ１〜ＩＰｍ）の間のデータ転送を制御する転送制御装置（４）を有し、転送制御装置はデータ転送に係るデータを一時的に格納するデータバッファ部（４２）と、個別に転送制御条件が設定される複数のデータ転送制御チャネル（４４＿１〜４４＿ｎ）とデータ転送制御部（４１）を有する。データ転送制御チャネルは回路モジュールからのデータ転送要求に応答して回路モジュールとデータバッファ部の間のデータ転送を制御すると共に、データバッファ部と記憶装置の間のデータ転送を要求し、データ転送制御部はデータ転送制御チャネルからの要求に応答して、データバッファ部と記憶装置の間のデータ転送を制御する。【選択図】図１
2012037968.tif 000002
【特許請求の範囲】
【請求項１】
中央処理装置と、
記憶装置との間のデータ転送を要求する複数の回路モジュールと、
前記記憶装置と前記回路モジュールのデータ転送を制御する転送制御装置と、を有し、
前記転送制御装置は、前記記憶装置と前記回路モジュールの間のデータ転送に係るデータを格納するデータバッファ部と、
前記中央処理装置によって個別に転送制御条件が設定され、前記回路モジュールからのデータ転送要求に応答して前記回路モジュールと前記データバッファ部の間のデータ転送を制御すると共に、前記データバッファ部と前記記憶装置の間のデータ転送を要求する複数のデータ転送制御チャネルと、
前記データ転送制御チャネルからの要求に応答して、前記データバッファ部と前記記憶装置の間のデータ転送を制御するデータ転送制御部と、を有するデータ処理装置。
【請求項２】
前記データバッファ部は、前記記憶装置と前記回路モジュールのデータ転送に係るデータを前記データ転送制御チャネル毎に格納する複数の記憶領域を有する、請求項１記載のデータ処理装置。
【請求項３】
夫々の前記記憶領域は、前記記憶装置に設定可能な最大バースト転送量以上の記憶容量を有する、請求項２記載のデータ処理装置。
【請求項４】
前記データ転送制御チャネルは、転送制御条件に応じてデータ転送に係る転送レートが指定される第１転送モードと、転送レートが指定されない第２転送モードの何れか一方が個別に設定され、
前記データ転送制御部は、前記第１転送モードが設定された前記データ転送制御チャネルからの要求に応答する転送に対しては、指定された転送レートに応じた帯域を使用してデータ転送を制御し、第２転送モードが設定された前記データ転送制御チャネルからの要求に応答する転送に対しては、前記第１転送モードが設定されたデータ転送制御チャネルによって使用される帯域を除いた帯域を使用してデータ転送を制御する、請求項１記載のデータ処理装置。
【請求項５】
前記データ転送制御部は、前記データ転送制御チャネルからのデータ転送要求を調停する調停部と、
前記調停の結果に基づいて、データ転送のための制御を行う制御部と、を有し、
前記制御部は、前記データ転送制御チャネルからのデータ転送要求に応じて、当該データ転送要求に係るデータ転送制御チャネルを識別する識別情報と、当該データ転送制御チャネルに設定された転送レートの情報と、当該データ転送制御チャネルに設定された転送モードの情報と、を含むチャネル情報を出力し、
前記調停部は、前記転送制御装置による転送に割り当てられたバス帯域を所定の帯域幅で分割し、分割された夫々の帯域をスロットとし、前記チャネル情報に基づいて、前記第１転送モードが設定された前記データ転送制御チャネルからの要求に応答するデータ転送については、当該データ転送制御チャネルに指定された転送レートに応じたスロットを時分割に割り当て、前記第２転送モードが設定された前記データ転送制御チャネルからの要求に応答するデータ転送については、前記第２転送モードが設定された前記データ転送制御チャネル相互間をラウンドロビン方式で調停し、前記第１転送モードが設定されたデータ転送制御チャネルに割り当てられていないスロットを割り当てる、請求項４記載のデータ処理装置。
【請求項６】
前記データ転送制御部は、前記回路モジュールによるデータ転送に指定された前記転送レートと前記転送モードが、前記データ転送制御チャネル毎に対応されて設定される第１レジスタと、
前記データ転送制御チャネルからのデータ転送要求の有無を示す情報と、データの転送元及び転送先の情報が、前記データ転送制御チャネル毎に対応されて設定される第２レジスタと、を更に有し、
前記制御部は、前記第１レジスタ及び前記第２レジスタの設定値に応じて、前記データ転送要求を出力した前記データ転送制御チャネルの前記チャネル情報を生成する、請求項５記載のデータ処理装置。
【請求項７】
前記調停部は、前記第１転送モードが設定された前記チャネル情報に基づいて、データ転送要求の調停を行う第１調停回路と、前記第２転送モードが設定された前記チャネル情報に基づいて、データ転送要求の調停を行う第２調停回路と、前記第１調停回路と前記第２調停回路による調停結果に基づいて、所定のデータ転送制御チャネルに前記スロットを割り当てる選択部と、を有し、
前記第１調停回路は、前記第１転送モードが設定された夫々のデータ転送制御チャネルに指定された前記転送レートに応じて、転送を許可するデータ転送制御チャネルを時分割に選択し、当該選択結果を第１調停情報として出力し、
前記第２調停回路は、前記第２転送モードが設定されたデータ転送制御チャネル相互間において、転送を許可するデータ転送制御チャネルをランウンドロビン方式で選択し、当該選択結果を第２調停情報として出力し、
前記選択部は、前記第１調停情報に応じたデータ転送制御チャネルに対して前記スロットを割り当てる処理を行うと共に、前記第１の転送モードが設定されたデータ転送制御チャネルに割り当てられていない前記スロットを、前記第２調停情報に応じたデータ転送制御チャンネルに対して割り当てる処理を行う、請求項６記載のデータ処理装置。
【請求項８】
前記第１調停回路は、２入力のラウンドロビン方式の選択回路を複数備え、上位階層の前記選択回路の出力が下位階層の前記選択回路の入力とされる、請求項７記載のデータ処理装置。
【請求項９】
前記回路モジュールと前記転送制御装置が接続される第１バスと、
前記転送制御装置、前記中央処理装置、及び前記記憶装置が接続される第２バスと、を更に有し、
前記記憶装置から前記回路モジュールへのデータ転送を行う場合には、前記データ転送制御部は、前記データ転送制御チャネルからのデータ転送要求に応答して、当該データ転送要求に係るデータを前記記憶装置から前記第２バスを介して前記データバッファ部の当該データ転送要求を発行したデータ転送制御チャネルに対応される記憶領域にバッファリングするための制御を行い、
前記データ転送制御チャネルは、前記回路モジュールからのデータ転送要求に応答して、当該記憶領域にバッファリングされたデータを前記第１バスを介して前記回路モジュールに転送するための制御を行う、請求項２記載のデータ処理装置。
【請求項１０】
前記回路モジュールから前記記憶装置に対してデータ転送を行う場合には、前記データ転送制御チャネルは、前記回路モジュールからのデータ転送要求に応じて、当該データ転送要求に係るデータを当該回路モジュールから前記第１バスを介して前記データバッファ部の当該データ転送制御チャネルに対応される記憶領域にバッファリングするための制御を行い、
前記データ転送制御部は、前記データ転送制御チャネルからの転送要求に応答して、当該記憶領域にバッファリングされたデータを前記第２バスを介して前記記憶装置に転送するための制御を行う、請求項９記載のデータ処理装置。
【請求項１１】
前記制御部は、夫々の前記スロットが何れの前記データ転送制御チャネルに割り当てられているか否かを示す情報を保持する記憶回路と、
転送制御条件に応じて指定された転送レートによる前記データ転送制御チャネルからの要求に応答する転送が可能であるか否かを判別する判別部と、を有し、
前記判別部は、前記記憶回路に保持された情報に基づいて、前記データ転送制御チャネルに指定された転送レートに応じた帯域に対応する前記スロットに空きがあるか否かを判別し、その判別結果を出力する、請求項５記載のデータ処理装置。
【請求項１２】
前記スロットに空きがあることを示す前記判別結果であるとき、前記転送制御装置による前記記憶装置と前記回路モジュールのデータ転送が可能とされる、請求項１１記載のデータ処理装置。
【請求項１３】
中央処理装置と、
前記中央処理装置によって設定された転送制御情報に従って記憶装置に対するデータ転送を行うための処理を実行する転送制御装置と、を有し、
前記転送制御装置は、前記中央処理装置によって個別に転送制御条件が設定され、データ転送要求を受け付ける複数のデータ転送制御チャネルと、前記転送制御チャネルからの要求に応じてデータ転送を行うための制御を行うデータ転送制御部とを有し、
前記データ転送制御チャネルは、転送制御条件に応じてデータ転送に係る転送レートが指定される第１転送モードと、転送レートが指定されない第２転送モードの何れか一方が個別に設定され、
前記データ転送制御部は、前記第１転送モードが設定された前記データ転送制御チャネルからの要求に応答する転送に対しては、指定された転送レートに応じた帯域を使用したデータ転送を実行し、第２転送モードが設定された前記データ転送制御チャネルからの要求に応答する転送に対しては、前記第１転送モードが設定された前記データ転送制御チャネルによって使用される帯域を除いた帯域を使用したデータ転送を実行する、データ処理装置。
【請求項１４】
前記データ転送制御部は、前記データ転送制御チャネルからのデータ転送要求を調停する調停部と、
前記調停の結果に基づいて、データ転送のための制御を行う制御部と、を有し、
前記制御部は、前記データ転送制御チャネルからのデータ転送要求に応じて、当該データ転送要求に係るデータ転送制御チャネルを識別する識別情報と、当該データ転送制御チャネルに設定された転送レートの情報と、当該データ転送制御チャネルに設定された転送モードの情報と、を含むチャネル情報を出力し、
前記調停部は、前記転送制御装置による転送に割り当てられたバス帯域を所定の帯域幅で分割し、分割された夫々の帯域をスロットとし、前記チャネル情報に基づいて、前記第１転送モードが設定された前記データ転送制御チャネルからの要求に応答するデータ転送については、当該データ転送制御チャネルに指定された転送レートに応じたスロットを時分割に割り当て、前記第２転送モードが設定された前記データ転送制御チャネルからの要求に応答するデータ転送については、前記第２転送モードが設定された前記データ転送制御チャネル相互間をラウンドロビン方式で調停し、前記第１転送モードが設定されたデータ転送制御チャネルに割り当てられていないスロットを割り当てる、請求項１３記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送の機能を備えたデータ処理装置に関し、特にＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）によるデータ転送制御方法に係り、例えば、画像データのような大容量のデータをＤＭＡＣを利用して転送を行うデータ処理装置に適用して有効な技術に関する。
【背景技術】
【０００２】
近年、携帯電話端末において、１０メガピクセル（Ｍｐｉｘｅｌ）超の静止画の撮影やＦｕｌｌＨＤ（Ｆｕｌｌ  Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ）の動画の記録・再生等のアプリケーションが注目を集めているが、携帯電話アプリケーションにより扱う画像データの高画素化に伴い、ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に対する転送データ量が大幅に増加しており、ＳＤＲＡＭの性能不足が問題となっている。
【０００３】
従来、画像処理用モジュールとＳＤＲＡＭの間はバースト転送を用いて転送効率を向上してきた。今後予想される画像データの増大に対応するため、画像処理用モジュールはバーストサイズを大きくすることが有効であるが、従来バス方式のままバーストサイズのみを大きくした場合、ＤＭＡＣを利用してＳＤＲＡＭ転送を行うＤＳＩ（Ｄｉｓｐｌａｙ  Ｓｅｒｉａｌ  Ｉｎｔｅｒｆａｃｅ），ＳＤＨＩ（ＳＤ  ｃａｒｄ  ｈｏｓｔ  ｉｎｔｅｒｆａｃｅ），ＦＬＣＴＬ（ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ）などのモジュールやＣＰＵなどその他のモジュールが、極度にバスの負荷が高まった際に、長時間バス権を獲得できない虞がある。また上記モジュールの中には、ＤＭＡ転送１回当たりのデータサイズは小さいが、ビットレートを保証するために一定の間隔でＳＤＲＡＭ転送を行う必要があるモジュールも含まれており、仮にそのモジュールのＤＭＡ転送が優先的にバス権を獲得できるように設定した場合、画像処理モジュールのバースト転送が途中で途切れてしまう虞やＳＤＲＡＭの転送効率が低下する虞がある。また、ＳＤＲＡＭはランダムなアドレスにアクセスすることで性能が著しく低下するため、上記ＤＭＡＣ利用モジュールによる断続的なＤＭＡ転送によって引き起こされるＳＤＲＡＭの転送効率低下もＬＳＩ全体で取り扱うデータの増大とともに無視できなくなりつつあった。
【０００４】
バスマスタ間のバス調停方法に関する従来技術として、特許文献１に開示がある。
【０００５】
特許文献１に開示されたバスマスタ相互間のバス調停を行うバス調停装置は、バスマスタをバスマスタにデータ転送を要求するクライアント（ＣＰＵ、ＴＶ等）毎のグループに分け階層化することで、グループ毎に固定の優先度を設定し、バス調停を行う。このとき前記バス調停装置は、最も優先度の高い第１階層のグループのバスマスタによるデータ転送サイクルをカウントし、そのカウント数が所定の閾値に達した場合には、前記第１階層よりも優先度の低い第２階層のグループからのデータ転送要求を許可する。これにより、前記第１階層のバスマスタからのデータ転送要求が密集した場合に第２階層のバスマスタが破綻することを防止している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−３１６６０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、ＤＭＡＣも１つのバスマスタである。ＤＭＡＣは、ＤＭＡ転送要求があれば設定された転送条件にしたがってデータ転送を行い、データ転送が完了するまでバス権を取得し続ける。例えば、ＳＤＨＩがＤＭＡＣを利用してビットレートを保証しつつＳＤＲＡＭへデータ転送を行う場合を考えると、ＤＭＡ転送１回あたりのデータサイズは小さいが、ビットレートを保証するため、一定の間隔で必ずバス権を獲得する必要がある。従来バス方式では、優先度を高く設定することで、ビットレートを保証することが出来たが、仮にＳＤＨＩの優先度を高く設定した場合、必要とするビットレート以上にバス権を獲得してしまう虞や、画像処理用モジュールが並列実行されているときにバースト転送が分断されてしまう虞があった。また、ＤＭＡＣの断続的なアクセスによりＳＤＲＡＭの転送効率の劣化を招く虞もある。
【０００８】
従来のＤＭＡ転送の制御方法の１つとして、時分割にＤＭＡ転送要求の調停を行うＴＤＭ（Ｔｉｍｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅｘｉｎｇ）方式の調停方法がある。この方式では、ＤＭＡ転送を要求する夫々のマスタに時分割にスロット（バス帯域）が割り当てられるため、各マスタにバス帯域を割り当てることができる。しかしながら、所定のスロットにおいて当該スロットに割り当てられたマスタがデータ転送要求を行わなかった場合、当該スロットは他のマスタに割り当てられることがないため、そのスロット分のバス帯域が無駄になり転送効率が低下する。また、マスタ毎に固定の優先度を設定する調停方法の場合、優先度の高いマスタのＤＭＡ転送要求が連続すると、優先度の低いマスタのＤＭＡ転送要求に係る転送が長時間実行されず破綻する虞がある。このように従来技術では、転送レートやマスタ等に応じた柔軟なＤＭＡ転送制御を行うことができない。
【０００９】
本発明者らは、帯域計算に基づいてバスマスタ毎のバス権獲得期間を制御し、更にＤＭＡＣはチャネル毎のＤＭＡ転送ビットレートを保証できるような制御方法を導入し、システム全体のＳＤＲＡＭ転送効率を向上させる必要性を見出したが、従来技術はこれらに対応できていない。
【００１０】
本発明の目的は、データ処理装置におけるＤＭＡＣを利用したＤＭＡ転送による転送効率を向上させ、且つシステム全体の転送効率を向上させることにある。
【００１１】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１３】
すなわち、データ処理装置は、記憶装置と回路モジュールの間のデータ転送を制御する転送制御装置を有し、前記転送制御装置は前記データ転送に係るデータを一時的に格納するデータバッファ部と、個別に転送制御条件が設定される複数のデータ転送制御チャネルと、データ転送制御部を有する。前記データ転送制御チャネルは、前記回路モジュールからのデータ転送要求に応答して当該回路モジュールと前記データバッファ部の間のデータ転送を制御すると共に、前記データバッファ部と前記記憶装置の間のデータ転送を要求し、前記データ転送制御部は、前記データ転送制御チャネルからの要求に応答して、前記データバッファ部と前記記憶装置の間のデータ転送を制御する。
【発明の効果】
【００１４】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１５】
すなわち、データ処理装置におけるＤＭＡＣを利用したＤＭＡ転送による転送効率を向上させることができ、且つシステム全体の転送効率を向上させることができる。
【図面の簡単な説明】
【００１６】
【図１】実施の形態１に係るＤＭＡＣ４を備えたデータ処理装置１００のブロック図である。
【図２】バッファ領域の構成とＤＭＡ転送に係るデータの流れの一例を示す説明図である。
【図３】ＤＭＡ転送におけるスロットの割り当て方法の一例を示す説明図である。
【図４】ＤＭＡスケジューラ４１の内部構成の一例を示すブロック図である。
【図５】制御部４１５の内部構成の一例を示すブロック図である。
【図６】調停回路４１６の内部構成の一例を示すブロック図である。
【図７】ＴＤＭ調停回路４１６１の回路構成と入出力の関係を示す説明図である。
【図８】ＴＤＭ調停回路４１６１の入出力の関係を示す説明図である。
【図９】ＴＤＭ調停回路４１６１の入出力の関係を示す説明図である。
【図１０】ベストエフォート調停回路４１６２の回路構成の一例を示す説明図である。
【図１１】図７のスケジューリング結果によるデータ転送のタイミングチャートである。
【図１２】図８のスケジューリング結果によるデータ転送のタイミングチャートである。
【図１３】図９のスケジューリング結果によるデータ転送のタイミングチャートである。
【図１４】スロットと転送レートの関係を表わす説明図である。
【図１５】空きスロット判定回路４２０２の内部構成の一例を示すブロック図である。
【図１６】空きスロット検出回路５０１の回路構成の一例を示す回路図である。
【図１７】帯域検出回路５０２における各検出回路５０２１〜５０２５の回路構成の一例を示す回路図である。
【図１８】ＤＭＡＣ４におけるデータ転送条件等の設定に係る処理の流れを示すフロー図である。
【図１９】周辺回路モジュールＩＰ１〜ＩＰｍをソース、ＳＤＲＡＭ２００をディスティネーションとするデータ転送におけるＤＭＡ転送制御の全体的な流れを示すフロー図である。
【図２０】ＳＤＲＡＭ２００をソース、周辺回路モジュールＩＰ１〜ＩＰｍをディスティネーションとするデータ転送におけるＤＭＡ転送制御の全体的な流れを示すフロー図である。
【図２１】ＤＭＡ転送におけるデータ転送の一例を示すタイミングチャートである。
【発明を実施するための形態】
【００１７】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１８】
〔１〕（内蔵バッファを備えたＤＭＡＣを有するデータ処理装置）
本発明の代表的な実施の形態に係るデータ処理装置（１００）は、中央処理装置（１）と、記憶装置（２００）との間のデータ転送を要求する複数の回路モジュール（ＩＰ１〜ＩＰｍ）と、前記記憶装置と前記回路モジュールのデータ転送を制御する転送制御装置（４）とを有する。前記転送制御装置は、前記記憶装置と前記回路モジュールの間のデータ転送に係るデータを格納するデータバッファ部（４２）と、前記中央処理装置によって個別に転送制御条件が設定され、前記回路モジュールからのデータ転送要求に応答して前記回路モジュールと前記データバッファ部の間のデータ転送を制御すると共に、前記データバッファ部と前記記憶装置の間のデータ転送を要求する複数のデータ転送制御チャネル（４４＿１〜４４＿ｎ）と、前記データ転送制御チャネルからの要求に応答して、前記データバッファ部と前記記憶装置の間のデータ転送を制御するデータ転送制御部（４１）と、を有する。
【００１９】
前記転送制御装置は、前記回路モジュールと前記記憶装置の間のデータ転送に際し、前記回路モジュールと前記転送制御装置の間のデータ転送と、前記転送制御装置と前記記憶装置の間のデータ転送とに分けて制御する。これにより前記転送制御装置は、前記回路モジュールと前記転送制御装置の間の小さなデータ単位でのデータ転送のタイミングに合わせることなく、別のタイミングで前記記憶装置と前記転送制御装置の間のデータ転送を行うことができる。また、前記転送制御装置は、前記データ転送制御チャネルによる小さなデータ単位のアクセスで取得したデータを前記データバッファ部に集約して格納するから、前記小さなデータ単位よりも大きなデータ単位で前記転送制御装置と前記記憶装置の間のデータ転送を行うことができる。すなわち、前記転送制御装置は、前記回路モジュールからのデータ転送要求のタイミングや転送量に関わらず、前記記憶装置の間のデータ転送効率を最適化し、向上させることが可能となる。
【００２０】
〔２〕（２面の内蔵バッファＲＡＭ）
項１のデータ処理装置において、前記データバッファ部は、前記記憶装置と前記回路モジュールのデータ転送に係るデータを前記データ転送制御チャネル毎に格納する複数の記憶領域（６００＿１〜６００＿ｎ）を有する。
【００２１】
これによれば、前記回路モジュールと前記記憶装置の間の転送に係るデータを、前記回路モジュールが指定した前記データ転送制御チャネル毎に分けて格納することができるから、例えば前記データバッファ部に対するデータ転送において、１つの前記データ転送制御チャネルを利用したデータ転送が完了していなくても、他の前記データ転送チャネルを利用したデータ転送を行うことが可能となる。また、前記データバッファ部が、前記データ転送チャネル毎に複数の記憶領域を備えることで、１つの前記データ転送チャネルを利用したデータ転送において、前記データバッファ部へのデータの書き込みと前記データバッファ部からのデータの読み出しを同時に行うことが可能となり、効率のよいデータ転送が可能とされる。
【００２２】
〔３〕（内蔵バッファＲＡＭの記憶容量）
項２のデータ処理装置において、夫々の前記記憶領域は、前記記憶装置に設定可能な最大バースト転送量以上の記憶容量を有する。
【００２３】
これによれば、１つの前記データ転送チャネルを利用したデータ転送において、前記データバッファ部と前記記憶装置の間でバースト転送を行う場合であっても、前記データバッファ部へのデータの書き込みと前記データバッファ部からのデータの読み出しを同時に行うことが可能となる。
【００２４】
〔４〕（チャネル毎の転送レートに応じた調停）
項１乃至３の何れかのデータ処理装置において、前記データ転送制御チャネルは、転送制御条件に応じてデータ転送に係る転送レートが指定される第１転送モード（帯域保証転送モード）と、転送レートが指定されない第２転送モード（ベストエフォート転送モード）の何れか一方が個別に設定される。また、前記データ転送制御部は、前記第１転送モードが設定された前記データ転送制御チャネルからの要求に応答する転送に対しては、指定された転送レートに応じた帯域を使用してデータ転送を制御し、第２転送モードが設定された前記データ転送制御チャネルからの要求に応答する転送に対しては、前記第１転送モードが設定されたデータ転送制御チャネルによって使用される帯域を除いた帯域を使用してデータ転送を制御する。
【００２５】
これによれば、前記転送制御装置は、転送レートが指定される前記第１転送モードによるデータ転送要求に対しては、指定された転送レートに応じた帯域を使用したデータ転送を行うから、前記データ転送制御チャネル毎に必要な転送レートを保証することができる。また、転送レートが指定されない前記第２転送モードによるデータ転送要求に対しては、前記第１転送モードによるデータ転送で使用されない帯域を使用したデータ転送を行うから、前記転送制御装置に割り当てられたバス帯域を有効に活用することができる。
【００２６】
〔５〕（調停方法）
項４のデータ処理装置において、前記データ転送制御部は、前記データ転送制御チャネルからのデータ転送要求を調停する調停部（４１６）と、前記調停の結果に基づいて、データ転送のための制御を行う制御部（４１５）と、を有する。前記制御部は、前記データ転送制御チャネルからのデータ転送要求（ｃｍｄ＿ｒｅｑ）に応じて、当該データ転送要求に係るデータ転送制御チャネルを識別する識別情報（ｔｄｍ＿ｃｈ、ｂｆ＿ｃｈ）と、当該データ転送制御チャネルに設定された転送レートの情報（ｒｅｑ＿ｔｄｍ＿１／２〜ｒｅｑ＿ｔｄｍ＿１／３２）と、当該データ転送制御チャネルに設定された転送モードの情報（ｒｅｑ＿ｔｄｍ＿１／２〜ｒｅｑ＿ｔｄｍ＿１／３２、ｒｅｑ＿ｂｆ＿ｃｈ１〜ｒｅｑ＿ｂｆ＿ｃｈｎ）と、を含むチャネル情報（４２５）を出力する。また、前記調停部は、前記転送制御装置による転送に割り当てられたバス帯域を所定の帯域幅で分割し、分割された夫々の帯域をスロットとし、前記チャネル情報に基づいて、前記第１転送モードが設定された前記データ転送制御チャネルからの要求に応答するデータ転送については、当該データ転送制御チャネルに指定された転送レートに応じたスロットを時分割に割り当て、前記第２転送モードが設定された前記データ転送制御チャネルからの要求に応答するデータ転送については、前記第２転送モードが設定された前記データ転送制御チャネル相互間をラウンドロビン方式で調停し、前記第１転送モードが設定されたデータ転送制御チャネルに割り当てられていないスロットを割り当てる。
【００２７】
これによれば、前記調停部は、指定された転送レートに応じて時分割に帯域を割り当てるから、前記第１転送モードによるデータ転送要求に対する転送レートを保証したデータ転送を容易に実現することができる。また、前記調停部は、前記転送レートが指定されないデータ転送制御チャネルに対してはラウンドロビン方式で調停するから、前記第２転送モードによるデータ転送要求に対しては、当該データ転送要求相互間で平等にデータ転送機会を与えることができる。
【００２８】
前述したように、ＴＤＭ型の一般的な調停回路では、割り当てられたスロットにおいてデータ転送要求がない場合、そのスロット分のバス帯域が無駄になってしまう。しかし、前記調停部は、ＴＤＭ型の調停方法とラウンドロビン方式の調停方法を組み合わせた調停方法を採用するから、ＴＤＭ型の調停が行われる前記第１転送モードのデータ転送要求がない場合には、ラウンドロビン型の調停方法により調停された前記第２転送モードのデータ転送要求に対して空きスロットを割り当てることが可能となり、前記転送制御装置に割り当てられたバス帯域を有効に活用することができる。
【００２９】
〔６〕（転送レートレジスタ、コマンドレジスタ）
項５のデータ処理装置において、前記データ転送制御部は、前記回路モジュールによるデータ転送に指定された前記転送レートと前記転送モードが前記データ転送制御チャネル毎に対応されて設定される第１レジスタ（４１１）と、前記データ転送制御チャネルからのデータ転送要求の有無を示す情報と、データの転送元及び転送先の情報が、前記データ転送制御チャネル毎に対応されて設定される第２レジスタ（４１２）と、を更に有する。前記制御部は、前記第１レジスタ及び前記第２レジスタの設定値（４１８、４１９、４１０）に応じて、前記データ転送要求を出力した前記データ転送制御チャネルの前記チャネル情報を生成する。
【００３０】
〔７〕（調停回路）
項５又は６のデータ処理装置において、前記調停部は、前記第１転送モードが設定された前記チャネル情報に基づいてデータ転送要求の調停を行う第１調停回路（４１６１）と、前記第２転送モードが設定された前記チャネル情報に基づいてデータ転送要求の調停を行う第２調停回路（４１６２）と、前記第１調停回路と前記第２調停回路による調停結果に基づいて、所定のデータ転送制御チャネルに前記スロットを割り当てる選択部（４２３）と、を有する。前記第１調停回路は、前記第１転送モードが設定された夫々のデータ転送制御チャネルに指定された前記転送レートに応じて、転送を許可するデータ転送制御チャネルを時分割に選択し、当該選択結果を第１調停情報（７０１＿Ａ〜７０１＿Ｃ）として出力する。また、前記第２調停回路は、前記第２転送モードが設定されたデータ転送制御チャネル相互間において、転送を許可するデータ転送制御チャネルをランウンドロビン方式で選択し、当該選択結果を第２調停情報（８０１）として出力する。更に、前記選択部は、前記第１調停情報に応じたデータ転送制御チャネルに対して前記スロットを割り当てる処理を行うと共に、前記第１の転送モードが設定されたデータ転送制御チャネルに割り当てられていない前記スロットを、前記第２調停情報に応じたデータ転送制御チャンネルに対して割り当てる処理を行う。
【００３１】
これによれば、項５による調停を容易に実現することができる。
【００３２】
〔８〕（第１調停回路）
項７のデータ処理装置において、前記第１調停回路は、２入力のラウンドロビン方式の選択回路を複数備え、上位階層の前記選択回路の出力が下位階層の前記選択回路の入力とされる。
【００３３】
前述のように一般的なＴＤＭ型の調停回路では、割り当てられたスロットにおいてデータ転送要求がない場合に、そのスロット分のバス帯域が無駄になってしまう。しかし、前記第１調停回路は、ラウンドロビン方式の選択回路を利用した回路構成を採用することで、前記第１調停回路による調停において、データ転送要求のないスロットを別の前記第１転送モードによるデータ転送要求に割り当てることが可能となり、前記転送制御装置に割り当てられたバス帯域を有効に利用することができる。
【００３４】
〔９〕（データ転送のタイミング・・・メモリリード時）
項２乃至８の何れかのデータ処理装置において、前記回路モジュールと前記転送制御装置が接続される第１バス（６）と、前記転送制御装置、前記中央処理装置、及び前記記憶装置が接続される第２バス（２）と、を更に有する。前記記憶装置から前記回路モジュールへのデータ転送を行う場合には、前記データ転送制御部は、前記データ転送制御チャネルからのデータ転送要求に応答して、当該データ転送要求に係るデータを前記記憶装置から前記第２バスを介して前記データバッファ部の当該データ転送要求を発行したデータ転送制御チャネルに対応される記憶領域にバッファリングするための制御を行い、前記データ転送制御チャネルは、前記回路モジュールからのデータ転送要求に応答して、当該記憶領域にバッファリングされたデータを前記第１バスを介して前記回路モジュールに転送するための制御を行う。
【００３５】
これによれば、前記記憶装置から前記回路モジュールへのデータ転送を行う場合において、前記回路モジュールと前記データバッファ部の間の転送と、前記データバッファ部と前記記憶装置の間の転送において、夫々別個のバスを用いて転送を行うから、２つの異なるデータ転送制御を容易に実現することが可能となる。
【００３６】
〔１０〕（データ転送のタイミング・・・メモリライト時）
項９のデータ処理装置において、前記回路モジュールから前記記憶装置に対してデータ転送を行う場合には、前記データ転送制御チャネルは前記回路モジュールからのデータ転送要求に応じて、当該データ転送要求に係るデータを当該回路モジュールから前記第１バスを介して前記データバッファ部の当該データ転送制御チャネルに対応される記憶領域にバッファリングするための制御を行い、前記データ転送制御部は前記データ転送制御チャネルからの転送要求に応答して、当該記憶領域にバッファリングされたデータを前記第２バスを介して前記記憶装置に転送するための制御を行う。
【００３７】
これによれば、前記回路モジュールから前記記憶装置に対してデータ転送を行う場合において、項９と同様の作用効果を奏する。
【００３８】
〔１１〕（帯域確保の可否判断）
項５乃至１０の何れかのデータ処理装置において、前記制御部は、夫々の前記スロットが何れの前記データ転送制御チャネルに割り当てられているか否かを示す情報を保持する記憶回路（４２０５）と、転送制御条件に応じて指定された転送レートによる前記データ転送制御チャネルからの要求に応答する転送が可能であるか否かを判別する判別部（４２０２、４２０６）と、を有する。前記判別部は、前記記憶回路に保持された情報に基づいて、前記データ転送制御チャネルに指定された転送レートに応じた帯域に対応する前記スロットに空きがあるか否かを判別し、その判別結果を出力する。
【００３９】
これによれば、要求された転送レートを保証するデータ転送の可否判断が可能となる。
【００４０】
〔１２〕（帯域確保後にＤＭＡＣ転送許可）
項１１のデータ処理装置において、前記スロットに空きがあることを示す前記判別結果であるとき、前記転送制御装置による前記記憶装置と前記回路モジュールのデータ転送が可能とされる。
【００４１】
これによれば、要求された転送レートを保証するデータ転送が可能である場合に限り、前記第１転送モードによるデータ転送を許可することができる。
【００４２】
〔１３〕（チャネル毎の転送レートに応じた調停を行うＤＭＡＣを有するデータ処理装置）
本発明の代表的な実施の形態に係るデータ処理装置（１００）は、中央処理装置（１）と、前記中央処理装置によって設定された転送制御情報に従って記憶装置に対するデータ転送を行うための処理を実行する転送制御装置（４）と、を有する。前記転送制御装置は、前記中央処理装置によって個別に転送制御条件が設定され、データ転送要求を受け付ける複数のデータ転送制御チャネル（４４＿１〜４４＿ｎ）と、前記転送制御チャネルからの要求に応じてデータ転送を行うための制御を行うデータ転送制御部（４１）とを有する。前記データ転送制御チャネルは、転送制御条件に応じてデータ転送に係る転送レートが指定される第１転送モード（帯域保証転送モード）と、転送レートが指定されない第２転送モード（ベストエフォート転送モード）の何れか一方が個別に設定され、前記データ転送制御部は、前記第１転送モードが設定された前記データ転送制御チャネルからの要求に応答する転送に対しては、指定された転送レートに応じた帯域を使用したデータ転送を実行し、第２転送モードが設定された前記データ転送制御チャネルからの要求に応答する転送に対しては、前記第１転送モードが設定された前記データ転送制御チャネルによって使用される帯域を除いた帯域を使用したデータ転送を実行する。
【００４３】
これによれば、項４のように、前記転送制御装置は、前記第１転送モードによるデータ転送については、必要な転送レートを保証した転送が可能となり、また、前記第２転送モードによるデータ転送については、前記第１転送モードによるデータ転送で使用されない帯域を使用したデータ転送を行うことで、前記転送制御装置に割り当てられたバス帯域を有効に活用することができる。
【００４４】
〔１４〕（調停方法）
項１３のデータ処理装置において、前記データ転送制御部は、前記データ転送制御チャネルからのデータ転送要求を調停する調停部（４１６）と、前記調停の結果に基づいてデータ転送のための制御を行う制御部（４１５）と、を有する。前記制御部は、前記データ転送制御チャネルからのデータ転送要求（ｃｍｄ＿ｒｅｑ）に応じて、当該データ転送要求に係るデータ転送制御チャネルを識別する識別情報（ｔｄｍ＿ｃｈ、ｂｆ＿ｃｈ）と、当該データ転送制御チャネルに設定された転送レートの情報（ｒｅｑ＿ｔｄｍ＿１／２〜ｒｅｑ＿ｔｄｍ＿１／３２）と、当該データ転送制御チャネルに設定された転送モードの情報（ｒｅｑ＿ｔｄｍ＿１／２〜ｒｅｑ＿ｔｄｍ＿１／３２、ｒｅｑ＿ｂｆ＿ｃｈ１〜ｒｅｑ＿ｂｆ＿ｃｈｎ）と、を含むチャネル情報（４２５）を出力する。また、前記調停部は、前記転送制御装置による転送に割り当てられたバス帯域を所定の帯域幅で分割し、分割された夫々の帯域をスロットとし、前記チャネル情報に基づいて前記第１転送モードが設定された前記データ転送制御チャネルからの要求に応答するデータ転送については、当該データ転送制御チャネルに指定された転送レートに応じたスロットを時分割に割り当て、前記第２転送モードが設定された前記データ転送制御チャネルからの要求に応答するデータ転送については、前記第２転送モードが設定された前記データ転送制御チャネル相互間をラウンドロビン方式で調停し、前記第１転送モードが設定されたデータ転送制御チャネルに割り当てられていないスロットを割り当てる。
【００４５】
これによれば、項５のように、前記データ転送制御部は、前記第１転送モードによるデータ転送要求に対する転送レートを保証したデータ転送を容易に実現することができ、前記第２転送モードによるデータ転送要求に対しては、当該転送モードによるデータ転送要求相互間で平等に転送機会を与えることができる。また、前記調停部は、ＴＤＭ型の調停方法とラウンドロビン方式の調停方法を組み合わせた調停方法を採用するから、ＴＤＭ型の調停が行われる前記第１転送モードによるデータ転送要求がない場合には、ラウンドロビン型の調停方法によって調停された前記第２転送モードによるデータ転送要求に対し空きスロットを割り当てることで、前記転送制御装置に割り当てられたバス帯域を有効に活用することができる。
【００４６】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００４７】
≪実施の形態１≫
図１は、実施の形態１に係る転送制御装置（ＤＭＡＣ）を備えたデータ処理装置のブロック図である。
【００４８】
同図に示されるデータ処理装置１００は、例えば、画像データや音声データのデータ処理を行う携帯電話用のアプリケーションプロセッサである。データ処理装置１００は、特に制限されないが、公知のＣＭＯＳ集積回路の製造技術によって１個の単結晶シリコンのような半導体基板に形成されている。
【００４９】
同図に示されるデータ処理装置１００は、特に制限されないが、システムバス２に接続された回路モジュールとして代表的に示されたＣＰＵ（中央処理装置）１、ＤＭＡＣ４、及び外部バスコントローラ３を有する。ＤＭＡＣ４は一方においてシステムバス２にインタフェースされ、他方においてバス６に共通接続された複数の周辺回路モジュール（ＰＥＲ＿ＭＤＬ）ＩＰ１〜ＩＰｍ（総称する場合は単に「周辺回路モジュールＩＰ」とも表記する。）とインタフェースされる（ＤＭＡＣ４は、システムバス２及びバス６にそれぞれ接続される）。周辺回路モジュールＩＰ１〜ＩＰｍは、特に制限されないが、画像処理用のデータ処理装置や音声データ圧縮のためのデータ処理装置等のアクセラレータ、メモリカード用のホストインタフェース等である。システムバス２は、特に制限されないが、スプリットトランザクションバスで構成される。外部バスコントローラ（ＢＵＳ＿ＣＮＴ）３には外部バス１３を共有するＳＤＲＡＭ２００やＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などの回路が接続される。同図では、代表的にＳＤＲＡＭ２００を図示している。
【００５０】
ＤＭＡＣ４はＣＰＵ１によってデータ転送条件が設定される複数のチャネルコントローラ（ＣＨ−ＣＮＴ）４４を有し、夫々のチャネルコントローラ４４＿１〜４４＿ｎは接続選択回路（ＤＲＥＱ＿ＲＴＲ）７の設定状態に従って周辺回路モジュールＩＰ１〜ＩＰｍと対応付けされる。相互に対応付けられた周辺回路モジュールＩＰ１〜ＩＰｍからチャネルコントローラ４４にリクエスト信号（ＤＲＥＱ）が供給され、チャネルコントローラ４４から周辺回路モジュールＩＰ１〜ＩＰｍにリクエスト（ＤＲＥＱ）に応答するアクノリッジ信号（ＤＡＣＫ）が返される。
【００５１】
ＤＭＡＣ４はチャネルコントローラ４４＿１〜４４＿ｎのほかに、ＤＭＡスケジューラ（ＤＭＡ＿ＳＣＨＤＲ）４１、データバッファ（ＢＵＦＦ＿ＲＡＭ）４２、バスインタフェース（ＢＵＳ＿ＩＦ）４３、ＤＭＡオペレーションレジスタ（ＤＭＡ＿ＯＲＥＧ）４５を有する。複数の周辺回路モジュールＩＰ１〜ＩＰｍは周辺バスコントローラ８を介して接続されるバスインタフェース４３との間でデータの入出力が行われる。データバッファ４２はチャネルコントローラ４４毎にバッファ領域を備え、バッファ領域はチャネルコントローラ４４に対応する周辺回路モジュールＩＰ１〜ＩＰｍとの間で入出力するデータを一時的に蓄積する。また、バッファ領域は周辺回路モジュールＩＰ１〜ＩＰｍに対して他方のＤＭＡ転送相手とされるＳＤＲＡＭ２００との間で入出力されるデータを一時的に格納する。ＤＭＡスケジューラ４１はチャネルコントローラ４４に設定された転送制御条件に従って、チャネルコントローラ４４から転送制御コマンド（ｃｍｄ＿ｒｅｑ）が与えられ、与えられた転送制御コマンドに基づいてデータバッファ４２のバッファ領域に対するデータの入出力制御やＳＤＲＡＭ２００に対するアクセス制御を行う。すなわち、周辺回路モジュールＩＰ１〜ＩＰｍをソース（転送元）、ＳＤＲＡＭ２００をディスティネーション（転送先）とするデータ転送に対しては、周辺回路モジュールＩＰ１〜ＩＰｍからのリクエスト信号ＤＲＥＱをチャネルコントローラ４４が受け取ると、その転送制御条件にしたがって周辺回路モジュールＩＰ１〜ＩＰｍからデータバッファ４２の対応バッファ領域にデータが転送される。バッファ領域に格納されたデータはＤＭＡスケジューラ４１によるスケジューリングにしたがってＳＤＲＡＭ２００へ転送される。ＳＤＲＡＭ２００をソース、周辺回路モジュールＩＰ１〜ＩＰｍをディスティネーションとするデータ転送に対しては、チャネルコントローラ４４に設定された転送制御条件にしたがってＤＭＡスケジューラ４１によるスケジューリングに基づいて予めＳＤＲＡＭ２００から対応するバッファ領域へのデータ転送が制御され、チャネルコントローラ４４が周辺回路モジュールＩＰ１〜ＩＰｍからのリクエスト信号ＤＲＥＱを受け取ることによって対応するバッファ領域のデータがその転送制御条件にしたがって対応する周辺回路モジュールＩＰ１〜ＩＰｍに転送される。その詳細は後述するが、ＤＭＡスケジューラ４１によるバッファ領域とＳＤＲＡＭ２００との間で行うデータ転送のスケジューリングはその転送効率を最適化するようにＴＤＭ制御とベストエフォート制御が行われるようになっている。
【００５２】
以下図１に示されるＤＭＡＣ４の内部構成について詳細に説明する。
【００５３】
チャネルコントローラ４４＿１〜４４＿ｎは、ＤＭＡＣ４とバス６及びシステムバス２とを接続するためのインタフェース回路であるバスインタフェース部４３を介して、ＣＰＵ１によりＤＭＡ転送に係るデータ転送条件が個別に設定される。夫々のチャネルコントローラ４４＿１〜４４＿ｎは、ＣＰＵ１によりデータ転送条件が設定される複数のレジスタを有する。例えば、チャネルコントローラ４４＿１〜４４＿ｎは、転送元のアドレスが設定されるソースアドレスレジスタ（ＳＡＲ）と、転送先のアドレスが設定されるデスティネーションアドレスレジスタ（ＤＡＲ）と、ＤＭＡ転送回数を設定される転送回数レジスタ（ＴＣＲ）と、ＤＭＡ転送サイズやＤＭＡ転送の可否等が設定されるコントロールレジスタ（ＣＨＣＲ）等を備える。チャネルコントローラ４４＿１〜４４＿ｎは、これらのレジスタの設定値に応じてＤＭＡスケジューラ４１に対し要求を発行する。また、ＤＭＡＣ４によるＤＭＡ転送には２つの転送モードがある。具体的には、ＤＭＡ転送に係る転送レートが指定され、リアルタイム性が要求される帯域保証転送モードと、転送レートが指定されないベストエフォート転送モードである。これらの転送モードは、ＣＰＵ１がチャネルコントローラ４４にＤＭＡ転送の上記データ転送条件を設定する際に、チャネルコントローラ４４毎に設定される。転送モードの設定は、後述するＤＡＭスケジューラ４１の転送レート制御レジスタ４１１に設定される。
【００５４】
ＤＭＡオペレーションレジスタ４５は、ＤＭＡＣ４によるＤＭＡ転送が可能な状態であるか否かを示す情報が設定されるレジスタであり、例えば、ＣＰＵ１により前記データ転送条件等と共に設定される。
【００５５】
データバッファ４２は、例えば、データ処理装置１００に内蔵されたオンチップのＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）をバッファ領域として備える。
【００５６】
図２は、データバッファ４２のバッファ領域の構成とＤＭＡ転送に係るデータの流れの一例を示す説明図である。
【００５７】
同図に示されるように、データバッファ４２はチャネルコントローラ４４＿１〜４４＿ｎの夫々に対応するバッファ領域６００＿１〜６００＿ｎを有する。バッファ領域６００＿１〜６００＿ｎは、特に制限されないが、Ａ面とＢ面の２つの記憶面から構成され、夫々の記憶面はＳＤＲＡＭ２００の最大バースト転送量以上の記憶容量を備える。特に制限されないが、本実施の形態では２５６Ｂとする。
【００５８】
前述したようにＤＭＡ転送において転送元から転送されたデータは指定されたチャネルコントローラ４４に応じたバッファ領域６００に一旦格納され、その後バッファ領域６００から転送先に転送される。具体的に、周辺回路モジュールＩＰ１〜ＩＰｍをソース、ＳＤＲＡＭ２００をディスティネーションとするデータ転送を一例としてデータの流れについて説明する。先ず、周辺回路モジュールＩＰ１からバス６を介してチャネルコントローラ４４＿１に対応するバッファ領域６００にＤＭＡ転送に係るデータが格納される。例えば、データ転送に係るデータ量が５１２Ｂであり、バス６における１回のバスアクセスによる転送量が６４Ｂである場合には、８回のバスアクセスにより周辺回路モジュールＩＰ１からバッファ領域６００＿１にデータが転送される。このとき、はじめにバッファ領域６００＿１のＡ面に２５６Ｂのデータが格納されたら、データの格納先がバッファ領域６００＿１のＢ面に切り替えられデータが格納される。次に、バッファ領域６００＿１に格納されたデータは、ＤＭＡスケジューラ４１によりスケジューリングされたタイミングでＳＤＲＡＭ２００に転送される。このときのデータ転送単位は、ＤＭＡＣ４と周辺回路モジュールＩＰ１〜ＩＰｍの間のデータ転送単位に関わらず、システムバス２におけるＳＤＲＡＭ２００に対するバスアクセスのデータ転送単位で行われる。例えば、ＳＤＲＡＭ２００に最大バースト転送量２５６Ｂが設定されている場合、２５６Ｂのデータ単位でバースト転送が行われる。このとき、はじめにバッファ領域６００＿１のＡ面の２５６ＢのデータがＳＤＲＡＭ２００に転送され、その後Ｂ面の２５６ＢのデータがＳＤＲＡＭ２００に転送される。上記のＤＭＡ転送方法によれば、ＤＭＡＣ４はバス６を介した小さなデータ単位の転送により周辺回路モジュールＩＰ１〜ＩＰｍから取得したデータをデータバッファ４２に集約して格納し、より大きなデータ単位でＳＤＲＡＭ２００とデータ転送を行うから、ＳＤＲＡＭ２００との間で効率のよいデータ転送が可能となる。
【００５９】
ＤＭＡスケジューラ４１は、前述したようにチャネルコントローラ４４に設定された転送制御条件に従って、バッファ領域とＳＤＲＡＭ２００の間のデータ転送のスケジューリングを行う。具体的には、ＤＡＭスケジューラ４１は、システムバス２におけるＤＭＡ転送に割り当てられたバス帯域を分割し、分割された帯域（スロット）をデータ転送を要求するチャネルコントローラ４４に割り当てる順番を決定する。
【００６０】
図３は、ＤＭＡ転送における帯域の割り当て方法の一例を示す説明図である。
【００６１】
同図に示されるように、例えばシステムバス２におけるＳＤＲＡＭ２００に対する全アクセス帯域が２４００ＭＢ／ｓであり、その１０％の帯域がＤＭＡＣ４に割り当てられた場合、ＤＭＡＣ４全体として１８４０Ｍｂｐｓ（２４００［ＭＢ／ｓ］  ｘ  １０［％］  ｘ  ８［ｂｉｔ／Ｂ］）の帯域が確保される。このＤＭＡＣ４に割り当てられた全帯域を“１”とし、それを、例えばチャネルコントローラ４４＿１〜４４＿ｎの数（ｎ）で均等に分割し、分割した夫々の帯域をチャネルコントローラ４４＿１〜４４＿ｎに割り当て可能な最小単位のスロットとする。ＤＭＡスケジューラ４１は夫々のチャネルコントローラ４４＿１〜４４＿ｎに指定された転送レートに応じて、データ転送を要求する夫々のチャネルコントローラ４４によるデータ転送にスロットを割り当てる。なお以下の説明では、特に制限されないが、ＤＭＡＣ４に割り当てられたバス帯域を３２個のスロットに分割するものとし、帯域保証転送モードにおいては、そのバス帯域の１／２の帯域、１／４の帯域、１／８の帯域、１／１６の帯域、１／３２の帯域のうち、いずれかの帯域が転送レートとして指定されるものとする。
【００６２】
次にＤＭＡスケジューラ４１の内部構成について説明する。
【００６３】
図４は、ＤＭＡスケジューラ４１の内部構成の一例を示すブロック図である。同図に示されるように、ＤＭＡスケジューラ４１は、制御部（ＣＮＴ）４１５、調停回路（ＳＣＨ＿ＬＧＣ）４１６、セレクタ（ＳＬＣＴＲ）４１３、データバッファＩ／Ｆ部（ＢＵＦＦ＿ＲＡＭ＿Ｉ／Ｆ）４１４、データ転送部（ＢＵＦＦ／ＭＥＭ＿ＤＭＡＣ）４１７、転送レート制御レジスタ（ＲＡＴＥ＿ＲＥＧ）４１１、及びコマンドレジスタ（ＣＭＤ＿ＲＥＧ）４１２を有する。なお、同図においてはチャネルコントローラ４４＿１〜４４＿ｎとバスインタフェース４３を含む各機能部をまとめてＤＭＡモジュール４０として図示する。
【００６４】
セレクタ４１３は、ＤＭＡモジュール４０とＤＭＡスケジューラ４１をインタフェースし、入力された信号やデータを振り分けて各機能部に与える。例えば、セレクタ４１３は、チャネルコントローラ４４が出力する、データバッファ４２とＳＤＲＡＭ２００の間のデータ転送要求（以下、「コマンドリクエスト（ｃｍｄ＿ｒｅｑ）」とも称する。）と、当該データ転送要求に係る転送データ（ｄａｔａ）とを分別し、コマンドリクエストをコマンドレジスタ４１２に与え、転送データをデータバッファＩ／Ｆ部４１４に与える。またセレクタ４１３は、制御部４１５から出力されるチャネルコントローラ４４からのコマンドリクエストに対応するコマンドレスポンス（ｃｍｄ＿ｒｅｓ）をＤＭＡモジュール４０に与える。
【００６５】
コマンドレジスタ４１２は、チャネルコントローラ４４からのコマンドリクエストに係る情報が格納されるレジスタであり、夫々のチャネルコントローラ４４＿１〜４４＿ｎからのコマンドリクエストに係る情報を別個に格納する。例えば、コマンドリクエストには、転送が要求されたことを示す情報の他に、当該転送要求に係る転送データ量の情報や転送元及び転送先の情報が含まれ、コマンドレジスタ４１２はこれらの情報をそのコマンドリクエストを発行したチャネルコントローラ４４毎に保持する。
【００６６】
転送レート制御レジスタ４１１は、周辺回路モジュールＩＰ１〜ＩＰｍのＤＭＡ転送に必要な転送レートの情報及び前記転送モードの情報と、コマンドリクエストを発行したチャネルコントローラ４４のデータ転送のために帯域（スロット）が確保されたか否かを示す情報が保持される。なお、帯域確保に関する具体的な方法については後述する。
【００６７】
データ転送部４１７は、制御部４１５から与えられる転送開始信号４２４に基づいて、データバッファ４２とＳＤＲＡＭ２００の間のデータ転送を実行する。データバッファＩ／Ｆ部４１４は、データバッファ４２とのインタフェースを行う回路であり、データバッファ４２に対する転送データの格納と読み出しは、データバッファＩ／Ｆ部４１４を介して実行される。
【００６８】
データバッファＩ／Ｆ部４１４は、コマンドリクエストに応じて制御部４１５により図２で説明したバッファ領域６００＿１〜６００＿ｎとの間でのデータ転送条件４２７が設定される。
【００６９】
制御部４１５は、ＤＭＡスケジューラ４１の動作の統括的な制御等を行う回路である。具体的には、制御部４１５は、転送レート制御レジスタ４１１の設定値とコマンドレジスタ４１２の設定値に応じて、チャネルコントローラ４４＿１〜４４＿ｎからの夫々のコマンドリクエストに応ずるデータ転送のスケジューリングを調停回路４１６に実行させ、データ転送部４１７に対して転送開始信号４２４を出力することにより、そのスケジューリング結果に応じた順番で、コマンドリクエストを発行したチャネルコントローラ４４に対応されるバッファ領域とＳＤＲＡＭ２００の間のデータ転送を実行させる。また、制御部４１５は、スロットの割り当て状況を把握し、指定された転送レートでのデータ転送の可否を判別する。
【００７０】
図５は、制御部４１５の内部構成の一例を示すブロック図である。
【００７１】
同図に示されるように、制御回路４１５は、帯域確保判定部（ＯＵＴ＿ＣＩＲ）４２０、デコーダ（ＤＣＲ）４２１、及び転送制御部（ＴＲＦ＿ＣＮＴ）４２２を備える。
【００７２】
帯域確保判定部４２０は、帯域保証転送モードにおいて指定された転送レートに応じたスロットが確保できるか否かを判別する。具体的な判別方法については後述するが、判別結果４２６は転送レート制御レジスタ４１１に保持される。
【００７３】
デコーダ４２１は、チャネルコントローラ４４からコマンドリクエスト（ｃｄｍ＿ｒｅｑ）が発行されると、コマンドレジスタ４１２に設定された値４１０と、転送レート制御レジスタ４１１に設定された、コマンドリクエストを発行したチャネルコントローラ４４＿１〜４４＿ｎに指定された転送レートの値４１８（ｒａｔｅ＿ｃｈ１〜ｒａｔｅ＿ｃｈｎ）と、転送モードの値４１９（ｍｏｄｅ＿ｃｈ１〜ｒａｔｅ＿ｃｈｎ）を入力してデコードし、デコード結果をリクエスト信号４２５として出力する。具体的には、帯域保証転送モードで転送レートが指定されたチャネルコントローラ部４４からコマンドリクエストが発行された場合には、デコーダ４２１は指定された転送レートに応じた転送要求を示す帯域保証リクエスト信号（ｒｅｑ＿ｔｄｍ＿１／２〜ｒｅｑ＿ｔｄｍ＿１／３２）と、その帯域保証リクエスト信号に対応されるチャネルコントローラ部４４を識別する指定チャネル信号（ｔｄｍ＿ｃｈｎ）を含む信号をリクエスト信号４２５として出力する。一方、ベストエフォート転送モードが指定されたチャネルコントローラ部４４からコマンドリクエストが発行された場合には、デコーダ４２１はベストエフォート転送であることを示すベストエフォートリクエスト信号（ｒｅｑ＿ｂｆ＿ｃｈ１〜ｒｅｑ＿ｂｆ＿ｃｈｎ）とそのベストエフォートリクエスト信号に対応されるチャネルコントローラ部４４を識別する指定チャネル信号（ｂｆ＿ｃｈ１〜ｂｆ＿ｃｈｎ）を含む信号をリクエスト信号４２５として出力する。
【００７４】
転送制御部４２２は、データバッファＩ／Ｆ部４１４とデータ転送部４１７を制御することにより、データバッファ４２に対するアクセスを制御する。例えば、転送制御部４２２は、調停回路４１６によるスケジューリング結果４２３に基づいて転送開始信号４２４を出力することにより、データバッファＩ／Ｆ部４１４とデータ転送部４１７を制御し、データバッファ４２とＳＤＲＡＭ部２００の間の転送を実行させる。転送開始信号４２４には転送開始命令が含まれると共に、コマンドリクエストの情報に基づく、転送元／転送先を示す情報と転送データ量の情報が含まれる。また転送制御部４２２は、データ転送部４１７によるデータ転送が完了したら、当該データ転送に係るコマンドリクエストに対応するコマンドレスポンス（ｃｍｄ＿ｒｅｓ）を出力し、ＤＭＡモジュール４０に対しデータバッファ４２とＳＤＲＡＭ２００の間のデータ転送が完了したことを通知する。
【００７５】
調停回路４１６は、制御部４１５からのリクエスト信号４２５に応じてスケジューリングを実行する。
【００７６】
図６は、調停回路４１６の内部構成の一例を示すブロック図である。
【００７７】
同図に示されるように、調停回路４１６は、ＴＤＭ調停回路（ＴＤＭ＿ＡＲＢＴＲ）４１６１、ベストエフォート調停回路（ＢＦ＿ＡＲＢＴＲ）４１６２、及びセレクタ（ＳＬＣＴＲ）４１６３を備える。ＴＤＭ調停回路４１６１は帯域保証転送モードが指定されたチャネルコントローラ４４からのコマンドリクエストに応ずる転送要求を調停し、ベストエフォート調停回路４１６２はベストエフォート転送モードが指定されたチャネルコントローラ４４からのコマンドリクエストに応ずる転送要求を調停する。セレクタ４１６３は、夫々の調停回路の調停結果に基づいて転送を要求するチャネルコントローラ４４にスロットを割り当てる。
【００７８】
先ず、ＴＤＭ調停回路４１６１による調停方法について説明する。
【００７９】
ＴＤＭ調停回路４１６１は、制御部４１５のデコーダ４２１から出力された帯域保証リクエスト信号（ｒｅｑ＿ｔｄｍ＿１／２〜ｒｅｑ＿ｔｄｍ＿１／３２）と指定チャネル信号（ｔｄｍ＿ｃｈｎ）を入力し、帯域保証リクエスト信号の調停を行い、選択結果７０１を出力する。
【００８０】
図７は、ＴＤＭ調停回路４１６１の回路構成と入出力の関係を示す説明図である。
【００８１】
図７の（ａ）に示されるように、ＴＤＭ調停回路４１６１は、特に制限されないが、チャネルコントローラ４４の数に対応される入力を有し、同図では一例として、３２入力のＴＤＭ調停回路を示している。ＴＤＭ調停回路４１６１は、２入力のラウンドロビン方式の選択回路を複数備え、上位階層の選択回路の出力が下位階層の選択回路の入力となるように構成される。すなわち、３２入力のＴＤＭ調停回路４１６１は、３２の信号のうち２本を入力する最上位階層の選択回路１６個と、その１６本の出力のうち２本を入力する選択回路８個と、その８本の出力のうち２本を入力する選択回路４個と、その４本の出力のうち２本を入力する選択回路２個と、その２本の出力を入力する選択回路１個から構成される。夫々の選択回路は、入力される２つの入力を交互に選択して出力する。これにより、３２本の入力が時分割に選択され出力される。
【００８２】
図７では、３２個の全てのスロットが帯域保証転送モードによる転送に割り当てられる場合を一例として示している。また同図では、各チャネルコントローラ４４＿１（ｃｈ１）〜４４＿６（ｃｈ６）において、ｃｈ１の転送レートが“１／２”、ｃｈ２の転送レートが“１／４”、ｃｈ３の転送レートが“１／８”、ｃｈ４の転送レートが“１／１６”、ｃｈ５及びｃｈ６の転送レートが“１／３２”である帯域保証リクエスト信号が入力された場合が示されている。この場合、夫々のチャネルコントローラ４４＿１（ｃｈ１）〜４４＿６（ｃｈ６）からの帯域保証リクエスト信号は、同図に示されるようにＴＤＭ調停回路４１６１の夫々の入力に割り当てられる。すなわち、ｃｈ１の帯域保証リクエスト信号に１６本の入力が割り当てられ、ｃｈ２の帯域保証リクエスト信号に８本の入力が割り当てられ、ｃｈ３の帯域保証リクエスト信号に４本の入力が割り当てられ、ｃｈ４の帯域保証リクエスト信号に２本の入力が割り当てられ、ｃｈ５及びｃｈ６の帯域保証リクエスト信号に夫々１本の入力に割り当てられる。この場合のＴＤＭ調停回路４１６１による選択結果７０１＿Ａは、図７の（ｂ）に示される順番となる。同図に示される数字は、夫々ｃｈ１〜ｃｈ６に対応される数字である。この結果より、選択された順番で転送を行えば、各チャネルコントローラ４４＿１（ｃｈ１）〜４４＿６（ｃｈ６）に指定された転送レートが保証されることが理解される。
【００８３】
図８と図９にＴＤＭ調停回路４１６１の入出力関係を示す別の例を示す。
【００８４】
図８は、３２個全てのスロットが帯域保証転送モードによる転送に割り当てられる場合のＴＤＭ調停回路４１６１の入出力関係を示す説明図である。
【００８５】
図８の（ａ）には、各チャネルコントローラ４４＿１（ｃｈ１）〜４４＿１０（ｃｈ１０）において、ｃｈ１及びｃｈ２の転送レートが“１／４”、ｃｈ３及びｃｈ４の転送レートが“１／８”、ｃｈ５及びｃｈ６の転送レートが“１／１６”、ｃｈ７乃至ｃｈ１０の転送レートが“１／３２”である帯域保証リクエスト信号が入力された場合が示されている。
【００８６】
この場合には、ｃｈ１及びｃｈ２の帯域保証リクエスト信号に夫々８本の入力が割り当てられ、ｃｈ３及びｃｈ４の帯域保証リクエスト信号に夫々４本の入力が割り当てられ、ｃｈ５及びｃｈ６の帯域保証リクエスト信号に夫々２本の入力が割り当てられ、ｃｈ７乃至１０の帯域保証リクエスト信号に夫々１本の入力が割り当てられる。この場合のＴＤＭ調停回路４１６１による選択結果７０１＿Ｂは、図８の（ｂ）に示される順番となる。同図に示される数字は夫々ｃｈ１〜ｃｈ１０に対応される数字である。この結果より、選択された順番で転送を行えば、各チャネルコントローラ４４＿１（ｃｈ１）〜４４＿１０（ｃｈ１０）に指定された転送レートが保証されることが理解される。
【００８７】
図９は、全３２個のスロットのうち２４個のスロットが帯域保証転送モードによる転送に割り当てられ、残りのスロットをベストエフォート転送モードによる転送に割り当てる場合のＴＤＭ調停回路４１６１の入出力関係を示す説明図である。
【００８８】
図９の（ａ）は、各チャネルコントローラ４４＿１（ｃｈ１）〜４４＿１０（ｃｈ１０）において、ｃｈ１の転送レートが“１／４”、ｃｈ２の転送レートが“１／８”、ｃｈ３乃至ｃｈ６の転送レートが“１／１６”、ｃｈ７乃至ｃｈ１０の転送レートが“１／３２”である帯域保証リクエスト信号が入力された場合が示されている。
【００８９】
この場合には、ｃｈ１の帯域保証リクエスト信号に８本の入力が割り当てられ、ｃｈ２の帯域保証リクエスト信号に４本の入力が割り当てられ、ｃｈ３乃至ｃｈ６の帯域保証リクエスト信号に夫々２本の入力が割り当てられ、ｃｈ７乃至１０の帯域保証リクエスト信号に夫々１本の入力が割り当てられる。また、余った８本の入力には、ベストエフォート転送モードによる転送に割り当てることを示すダミー信号（ｃｈＢ）を割り当てる。この場合のＴＤＭ調停回路４１６１による選択結果７０１＿Ｃは、図９の（ｂ）に示される順番となる。同図に示される記号は、夫々ｃｈ１〜ｃｈ１０及びｃｈＢに対応される記号である。この結果より、選択された順番で転送を行えば、各チャネルコントローラ４４＿１（ｃｈ１）〜４４＿１０（ｃｈ１０）に指定された転送レートが保証されると共に、ベストエフォート転送を指定したチャネルコントローラ４４については、帯域保証転送モードの転送で使用されないスロットで転送が可能となることが理解される。
【００９０】
次にベストエフォート調停回路４１６２による調停方法について説明する。
【００９１】
ベストエフォート調停回路４１６２は、制御部４１５のデコーダ４２１から出力されたベストエフォートリクエスト信号（ｒｅｑ＿ｂｆ＿ｃｈ１〜ｒｅｑ＿ｂｆ＿ｃｈｎ）と指定チャネル信号（ｂｆ＿ｃｈ）を入力し、ベストエフォートリクエスト信号の調停を行って、選択結果８０１を出力する。
【００９２】
図１０は、ベストエフォート調停回路４１６２の回路構成を示す説明図である。
【００９３】
同図に示されるように、ベストエフォート調停回路４１６２は、上位階層の４個の８入力のラウンドロビン方式の選択回路と、上位階層の夫々の選択回路の出力を入力とする１個の４入力のラウンドロビン方式の選択回路から構成される。図７の（ａ）に示されるように、ベストエフォート調停回路４１６２は、特に制限されないが、チャネルコントローラ４４の数に対応される入力を有し、同図では一例として、３２入力のラウンドロビン調停回路を示している。これにより、ベストエフォート転送を指定したチャネルコントローラ４４のデータ転送は、ベストエフォート転送を指定したチャネルコントローラ４４相互間で均等に転送機会が与えられることが理解される。
【００９４】
夫々の選択結果７０１、８０１に基づく最終的なスケジューリング結果について説明する。
【００９５】
セレクタ４１６３は、ＴＤＭ調停回路４１６１による選択結果７０１とベストエフォート調停回路４１６２による選択結果８０１を入力し、夫々の選択結果に応じてスロットを割り当てるチャネルコントローラ４４の転送を決定する。具体的には、選択結果７０１が帯域保証転送モードを指定するチャネルコントローラ４４からの帯域保証リクエスト信号を示すものである場合、セレクタ４１６３は当該選択結果７０１に示されるチャネルコントローラ４４の転送にスロットを割り当てる。また、選択結果７０１がＴＤＭ調停回路４１６１に入力されたベストエフォート転送のリクエスト信号を示すものである場合には、セレクタ４１６３は選択結果８０１に示されるベストエフォートリクエスト信号に応ずるチャネルコントローラ４４の転送にスロットを割り当てる。更には、スケジューリング結果７０１が何れのチャネルコントローラ４４の帯域保証リクエスト信号を示すものでなく、且つ、ダミーのリクエスト信号を示すものでない場合には、セレクタ４１６３は選択結果８０１に示されるリクエスト信号に応ずるチャネルコントローラ４４にスロットを割り当てる。そして、セレクタ４１６３は、上記の方法による割り当て結果をスケジューリング結果４２３として制御部４１５に与える。
【００９６】
上記スケジューリング方法によってスケジューリングされたデータ転送のタイミングチャートを図１１〜図１３に示す。
【００９７】
図１１は、図７に示される場合のスケジューリング結果によるデータ転送のタイミングチャートである。
【００９８】
図１１の（ａ）は、チャネルコントローラ４４＿１〜４４＿６（ｃｈ１〜ｃｈ６）からの帯域保証リクエスト信号が全て入力されている場合の一例である。この場合には、図７の（ｂ）に示される順番でスロットが割り当てられ、データ転送が行われることが理解される。
【００９９】
図１１の（ｂ）は、チャネルコントローラ４４＿１〜４４＿６（ｃｈ１〜ｃｈ６）からの帯域保証リクエスト信号が局所的に入力されない場合の一例である。同図では、参照符号１１００に示されるタイミングでチャネルコントローラ４４＿１（ｃｈ１）からのリクエスト信号がなく、参照符号１１０１のタイミングでチャネルコントローラ４４＿３（ｃｈ３）からのリクエスト信号がない場合を示している。この場合には、ＴＤＭ調停回路４１６１がラウンドロビン方式の選択回路によりＴＤＭ制御が行われることから、後続のリクエスト信号が前倒しされてスロットが割り当てられる。例えば、参照符号１１００のタイミングでは、ｃｈ１の代わりにｃｈ３にスロットが割り当てられ、参照符号１１０１のタイミングでは、ｃｈ３の代わりにｃｈ１にスロットが割り当てられる。その他のタイミングでは、図７の（ｂ）に示される順番でスロットが割り当てられ、データ転送が行われることが理解される。
【０１００】
図１２は、図８に示される場合のスケジューリング結果によるデータ転送のタイミングチャートである。
【０１０１】
図１２の（ａ）は、チャネルコントローラ４４＿１〜４４＿６（ｃｈ１〜ｃｈ６）からの帯域保証リクエスト信号が全て入力されている場合の一例である。この場合には、図８の（ｂ）に示される順番でスロットが割り当てられ、データ転送が行われることが理解される。
【０１０２】
図１２の（ｂ）は、チャネルコントローラ４４＿１〜４４＿６（ｃｈ１〜ｃｈ６）からの帯域保証リクエスト信号が局所的に入力されない場合の一例である。同図では、参照符号１２００に示されるタイミングでチャネルコントローラ４４＿１（ｃｈ１）からのリクエスト信号がなく、また後続の参照符号１２０１〜１２０４のタイミングにおいてもリクエスト信号がなく、更にはベストエフォート転送モードを指定するチャネルコントローラ４４が存在する場合を示している。この場合には、ＴＤＭ調停回路４１６１がラウンドロビン方式の選択回路によりＴＤＭ制御が行われることから、後続のリクエスト信号に対するスロットの割り当てが可能とされるが、後続のリクエスト信号が無いためセレクタ４１６３によりベストエフォート調停回路４１６２からの選択結果８０１に示されるベストエフォート転送を指定するチャネルコントローラ４４にスロットが割り当てられる。その他のタイミングでは、図８の（ｂ）に示される順番でスロットが割り当てられ、データ転送が行われることが理解される。
【０１０３】
図１３は、図９に示される場合のスケジューリング結果によるデータ転送のタイミングチャートである。
【０１０４】
同図の場合には、図９の（ｂ）に示される順番でスロットが割り当てられ、データ転送が行われることが理解される。
【０１０５】
以上調停回路４１６によるスケジューリングによれば、転送レートが指定される帯域保証転送モードのデータ転送に対しては指定された転送レートに応じたスロットを割り当てるから、必要な転送レートを保証することができる。またＴＤＭ調停回路４１６１は、一般的なＴＤＭ型の回路構成ではなく、ラウンドロビン方式の選択回路を利用した回路構成を採用するから、調停により選択されるチャネルコントローラ４４からの転送要求が局所的にない場合には、別のチャネルコントローラ４４からの転送要求に対して帯域を割り当てることができる。更に、転送レートが指定されないベストエフォート転送モードによるデータ転送に対しては、帯域保証転送モードによるデータ転送で使用されないスロットが割り当てられる。以上によりＤＭＡＣ４は、ＤＭＡＣ４に割り当てられたシステムバス２のバス帯域を有効に活用することができ、転送効率を最適化することが可能となる。
【０１０６】
次に、帯域（スロット）確保の方法について説明する。
【０１０７】
図１４は、スロットと転送レートの関係を表わす説明図である。同図では、全３２スロットの各スロットに対して０〜３１までの番号を付している。後述する各スロットが使用されているか否かを示す信号を信号ｖｓｌｔ０〜ｖｓｌｔ３１としている。
【０１０８】
本実施の形態に係るＤＭＡ転送では、例えば１／２の転送レートでの転送の場合、図１４における“１／２Ａ”の領域に示される帯域を使用する転送と“１／２Ｂ”の領域に示される帯域を使用する転送がある。“１／２Ａ”の領域に示される帯域を使用した転送では、スロット番号０〜１５の各スロットを使用する。また、“１／２Ｂ”の領域に示される帯域を使用した転送では、スロット番号１６〜３１の各スロットを使用する。同様に１／４の転送レートでの転送の場合、スロット番号０〜７のスロットを使用する転送と、スロット番号８〜１５のスロットを使用する転送と、スロット番号１６〜２３のスロットを使用する転送と、スロット番号２４〜３１のスロットを使用する転送がある。したがって、各転送レートでの転送の可否は、各スロットの使用状況を把握することで判断することができる。例えば、全スロットのうちスロット番号０〜３のスロットが使用されている場合には、“１／２Ａ”  の領域に示される帯域を使用する転送はできないが、“１／２Ｂ”の領域に示される帯域を使用した転送は可能と判断することができる。
【０１０９】
指定された転送レートでの転送が可能であるか否かを判断する帯域確保判定部４２０の詳細について説明する。
【０１１０】
帯域確保判別部４２０は、スロットの使用状況を判別することにより指定された転送レートでの転送の可否判断を行うと共に、各スロットの使用状況を示す情報を保持し、その情報の更新を行う。
【０１１１】
図５に示されるように帯域確保判定部４２０は、指定転送レート選択回路（ＲＴ＿ＳＬＣＴＲ）４２０１、空きスロット判定回路（ＳＬＴ＿ＣＩＲ）４２０２、転送モード選択回路（ＭＤ＿ＳＬＣＴＲ）４２０３、使用帯域情報更新部４２０４（ＳＬＣＴＲ）、使用帯域情報保持部４２０５、判定結果出力部（ＯＵＴ＿ＣＩＲ）４２０６を備える。
【０１１２】
転送モード選択回路４２０３は、転送レート制御レジスタ４１１の設定値（ｍｏｄｅ＿ｃｈ１〜ｍｏｄｅ＿ｃｈｎ）を入力し、入力値に応じて帯域保証転送モードを指定するチャネルコントローラ４４の識別情報を含む指定チャネル信号４２１０を出力する。指定転送レート選択回路４２０１は、転送レート制御レジスタ４１１の設定値（ｍｏｄｅ＿ｃｈ１〜ｍｏｄｅ＿ｃｈｎ）と指定チャネル信号４２１０を入力し、指定チャネル信号４２１０に示されるチャネルコントローラ４４が指定する転送レートの情報を含む指定転送レート信号４２１１を出力する。
【０１１３】
使用帯域情報保持部４２０５は、例えば、帯域毎に構成されたフリップフロップ回路４２０５＿Ａ〜４２０５＿Ｅから構成され、フリップフロップ回路４２０５＿Ａ〜４２０５＿Ｅは夫々対応する帯域の使用状況を示す情報４２１３（１／３２ｓｅｌ〜１／２ｓｅｌ）を保持する。例えば、フリップフロップ回路４２０５＿Ａは、図１４における“１／２Ａ”の領域に示される帯域の使用の有無と“１／２Ｂ”の領域に示される帯域の使用の有無を示す情報１／２ｓｅｌを保持する。また、例えばフリップフロップ回路４２０５＿Ｂは、図１４における“１／４Ａ”の領域に示される帯域の使用の有無と、“１／４Ｂ”の領域に示される帯域の使用の有無と、“１／４Ｃ”の領域に示される帯域の使用の有無と、“１／４Ｄ”の領域に示される帯域の使用の有無を含む情報１／４ｓｅｌを保持する。情報４２１３の夫々の情報は、信号１／３２ｓｅｌ〜１／２ｓｅｌとして出力される。例えば、図１４における“１／４Ａ”の領域に示される帯域が使用され、“１／４Ｂ”、“１／４Ｃ”、及び“１／４Ｄ”の領域に示される帯域が使用されていない場合には、信号１／４ｓｅｌは“１０００”となる。また、例えば図１４における“１／２Ｂ”の領域に示される帯域が使用され、“１／２Ａ”の領域に示される帯域が使用されていない場合には、信号１／２ｓｅｌは“０１”となる。
【０１１４】
空きスロット判定回路４２０２は、信号１／３２ｓｅｌ〜１／２ｓｅｌと指定転送レート信号４２１１とに基づいて、指定された転送レートに係る帯域に空きが有るか否かを示す空き帯域情報４２１２を出力する。
【０１１５】
空きスロット判定回路４２０２の内部構成を図１５に示す。
【０１１６】
図１５は、空きスロット判定回路４２０２の内部構成の一例を示すブロック図である。
【０１１７】
同図に示されるように、空きスロット判定回路４２０２は、空きスロット検出回路５０１、帯域検出回路５０２、及びセレクタ５０３を備える。空きスロット検出回路５０１は、信号１／３２ｓｅｌ〜１／２ｓｅｌ（帯域使用情報４２１３）を入力し、夫々のスロットが空きスロットであるか否かを示す信号ｖｓｌｔ０〜ｖｓｌｔ３１（各信号をまとめて“ｖｓｌｔ”とも表示する。）を出力する。なお、前記信号ｖｓｌｔ０〜ｖｓｌｔ３１は、図１４に示される各スロット番号に対応される。
【０１１８】
図１６は、空きスロット検出回路５０１の回路構成の一例を示す回路図である。前記信号ｖｓｌｔ０〜ｖｓｌｔ３１は、例えば、同図に示されるように各スロットに対応される信号１／３２ｓｅｌ〜１／２ｓｅｌの論理積により夫々生成される。
【０１１９】
帯域検出回路５０２は、空きスロット検出回路５０１により生成された信号ｖｓｌｔ０〜ｖｓｌｔ３１から、各帯域の空き状況を判別し出力する。例えば帯域検出回路５０２は、帯域毎に空き状況を検出する検出回路５０２１〜５０２５により構成される。
【０１２０】
図１７は、帯域検出回路５０２における各検出回路５０２１〜５０２５の回路構成の一例を示す回路図である。検出回路５０２１〜５０２５は、前記信号ｖｓｌｔを夫々入力し、対応される帯域が空き帯域であるか否かを示す信号ｒ２＿ｓｌｔ〜ｒ３２＿ｓｌｔを出力する。例えば、検出回路５０２１は、図１４における“１／２Ａ”の領域に示される帯域が空き帯域であるか否かを示す信号ｒ２＿ｓｌｔ０    と、図１４における“１／２Ｂ”の領域に示される帯域が空き帯域であるか否かを示す信号ｒ２＿ｓｌｔ１を出力する。
【０１２１】
セレクタ５０３は、指定転送レート信号４２１１と、前記信号ｒ２＿ｓｌｔ〜ｒ３２＿ｓｌｔを入力し、指定転送レート信号４２１１が示す帯域の前記信号ｒ２＿ｓｌｔ〜ｒ３２＿ｓｌｔを選択して、空き帯域情報４２１２として出力する。すなわち、空き帯域情報４２１２は、指定された転送レートに応ずる帯域に空きがあるか否かを示す情報として出力される。出力された空き帯域情報４２１２は判定結果出力部４２０６に与えられる。
【０１２２】
判定結果出力部４２０６は、空き帯域情報４２１２と指定チャネル信号４２１０に基づいて、指定チャネル信号４２１０が示すチャネルコントローラ４４の転送のために帯域が確保されたか否かを示す信号４２６を出力する。例えば、空き帯域情報４２１２が指定された転送レートに応ずる帯域に空きがあることを示す場合には、当該転送レートの指定をしたチャネルコントローラ４４の転送のために帯域が確保されたことを示す信号４２６を出力する。一方で、空き帯域情報４２１２が指定された転送レートに応ずる帯域に空きがないことを示す場合には、当該転送レートの指定をしたチャネルコントローラ４４の転送のために帯域が確保できなかったことを示す信号４２６を出力する。前記信号４２６は、転送レート制御レジスタ４１１に入力され、チャネルコントローラ４４毎に、転送のための帯域が確保されたか否かを示す情報として保持される。
【０１２３】
また、空き帯域情報４２１２は使用帯域情報更新部４２０４にも入力され、使用帯域情報更新部４２０４が空き帯域情報４２１２に応じて各帯域の使用帯域情報４２１３を更新する。具体的には、使用帯域情報更新部４２０４は、指定チャネル信号４２１０を使用帯域情報４２１３の更新動作のためのイネーブル信号とし、当該信号が入力されている間に指定転送レート信号４２１１に示される帯域に対応される使用帯域情報４２１３を更新する。例えば、空き帯域情報４２１２が指定された転送レートに応ずる帯域に空きがあることを示す場合には、当該空き帯域は当該転送レートを指定したチャネルコントローラ４４のための転送に使用されることになるので、使用帯域情報更新部４２０４は、指定転送レート信号４２１１に示される帯域を使用済みとして使用帯域情報保持部４２０５を更新する。
【０１２４】
以上に示した手段により帯域確保判定部４２０は各スロットの使用状況を把握し、帯域確保の可否判断を行うことが可能となる。
【０１２５】
実施の形態１に係るＤＭＡＣ４によるＤＭＡ転送制御の全体的な流れについて説明する。
【０１２６】
ＤＭＡＣ４によるＤＭＡ転送は、前述したように、はじめにＣＰＵ１によりＤＭＡＣ４にデータ転送条件等が設定され、その設定条件にしたがってＤＭＡＣ４がＤＭＡ転送を開始する。
【０１２７】
図１８は、ＤＭＡＣ４におけるデータ転送条件等の設定に係る処理の流れを示すフロー図である。
【０１２８】
先ず、ＣＰＵ１が周辺回路モジュールＩＰ１〜ＩＰｍとＳＤＲＡＭ２００の間の転送が帯域保証転送モードであるかベストエフォート転送モードであるかを判別する（Ｓ８０１）。ベストエフォート転送モードである場合には、ＣＰＵ１は指定するチャネルコントローラ４４内の前記ソースアドレスレジスタ（ＳＡＲ）、前記デスティネーションアドレスレジスタ（ＤＡＲ）、前記転送回数レジスタ（ＴＣＲ）、及び前記コントロールレジスタ（ＣＨＣＲ）に必要な値を設定する（Ｓ８０７）。一方、ステップ８０１において帯域保証転送モードである場合には、ＣＰＵ１は指定するチャネルコントローラ４４に対応するＤＭＡスケジューラ４１内の転送レート制御レジスタ４１１に、当該ＤＭＡ転送に必要とされる転送レートの情報と要求する転送モードの情報を設定する（Ｓ８０２）。なお、特に制限されないが、全てのチャネルコントローラ４４＿１〜４４＿ｎの転送レート制御レジスタ４１１には、初期設定としてベストエフォート転送モードが設定される。
【０１２９】
ステップ８０２により転送レート制御レジスタ４１１に値が設定されると、帯域確保判定部４２０が前述した方法により、空きスロットの判別を行う（Ｓ８０３）。ステップ８０３において、当該ＤＭＡ転送に係るチャネルコントローラ４４の転送レート制御レジスタ４１１に帯域確保の有無を示す情報が設定されると、ＣＰＵ１は当該設定値の確認を行う（Ｓ８０４）。ここで、当該設定値が、帯域が確保されなかったこと示す場合には、ＣＰＵ１は転送レート制御レジスタ４１１の転送モードの設定値をベストエフォート転送モードに変更する（Ｓ８０５）。そして、ＤＭＡＣ４における全てのチャネルコントローラ４４＿１〜４４＿ｎに指定される転送レートの割り振りの見直しが実行される（Ｓ８０６）。当該見直しは、例えば、予めユーザにより設定されたプログラムに従って実行される。
【０１３０】
一方、ステップ８０４において、転送レート制御レジスタ４１１の値が、帯域が確保されたこと示す場合には、ＣＰＵ１は指定するチャネルコントローラ４４内の各種レジスタにデータ転送条件等を設定する（Ｓ８０７）。そして、ＣＰＵ１は指定するチャネルコントローラ４４内の前記コントロールレジスタ（ＣＨＣＲ）にＤＭＡ転送が可能な状態であることを示す値を設定すると共に、ＤＭＡオペレーションレジスタ４５にＤＭＡＣ４によるＤＭＡ転送が可能な状態であることを示す値を設定する（Ｓ８０８）。これにより、ＤＭＡＣ４によるＤＭＡ転送がイネーブル状態となる（Ｓ８０９）。
【０１３１】
次に、ＤＭＡ転送がイネーブル状態となった後のＤＭＡ転送制御の全体的な流れについて、図１９と図２０を用いて説明する。
【０１３２】
図１９は、周辺回路モジュールＩＰ１〜ＩＰｍをソース、ＳＤＲＡＭ２００をディスティネーションとするデータ転送におけるＤＭＡ転送制御の全体的な流れを示すフロー図である。
【０１３３】
先ず、上記図１８で示した手順によりＤＭＡＣ４のデータ転送条件等が設定される（Ｓ８０１〜８０８）。これによりＤＭＡＣ４によるＤＭＡ転送がイネーブル状態となる（Ｓ９０２）。イネーブル状態となった後、相互に対応付けられた周辺回路モジュールＩＰ１〜ＩＰｍからチャネルコントローラ４４にリクエスト信号（ＤＲＥＱ）が供給され、チャネルコントローラ４４から周辺回路モジュールＩＰ１〜ＩＰｍにリクエスト（ＤＲＥＱ）に応答するアクノリッジ信号（ＤＡＣＫ）が返される（Ｓ９０３）。これにより、ステップ８０１〜８０８で設定された転送制御条件にしたがって周辺回路モジュールＩＰ１〜ＩＰｍからデータバッファ４２の対応バッファ領域にデータが転送される（Ｓ９０４）。ＤＭＡ転送に係る全てのデータがデータバッファ４２に転送されたか否かは、所定のタイミングで判断される（Ｓ９０５）。全てのデータの転送が完了した場合には、対応されるチャネルコントローラ４４がＤＭＡスケジューラ４１に対してコマンドリクエスト（ｃｍｄ＿ｒｅｑ）を発行する（Ｓ９０８）。これにより、チャネルコントローラ４４に対応されるバッファ領域とＳＤＲＡＭ２００の間の転送を行うための処理が開始される。一方、ステップ９０５において、全てのデータの転送が完了していないと判断された場合には、データバッファ４２にバッファ領域の１つの記憶面のデータ容量（２５６Ｂ）に相当するデータが転送されたか否かが判別される（Ｓ９０６）。当該データ容量に相当するデータが転送されていない場合には、まだデータ転送が完了していないことから、引き続きデータ転送が行われる（Ｓ９０３）。一方、ステップ９０７において、バッファ領域の１つの記憶面のデータ容量に相当するデータが転送された場合には、データ転送は完了していないが、これ以上同一記憶面のバッファ領域にデータを格納することができないことから、ＤＭＡＣ４は転送先を別の記憶面のバッファ領域に変更する（Ｓ９０７）。例えば、はじめにＡ面のバッファ領域にデータが格納された場合には、データの転送先がＢ面のバッファ領域に変更される。これにより、引き続きデータ転送が行われるともに（Ｓ９０３）、チャネルコントローラ４４がコマンドリクエストｃｍｄ＿ｒｅｑを発行し、Ａ面のバッファ領域に格納されたデータをＳＤＲＡＭ２００へ転送するための処理が開始される（Ｓ９０８）。コマンドリクエストｃｍｄ＿ｒｅｑが発行されると、ＤＭＣスケジューラ４１は前述した方法によりスケジューリングを実行する（Ｓ９０９）。そして、ＤＭＡスケジューラ４１の制御部４１５は、データバッファ４２からＳＤＲＡＭ２００へのデータ転送をスケジューリング結果に基づくタイミングで実行するように、データ転送部４１７に対して指示する（Ｓ９１０）。指示を受けたデータ転送部４１７は、データバッファ４２からＳＤＲＡＭ２００へのデータ転送を実行する（Ｓ９１１）。ＤＭＡ転送に係るデータは、前記バッファ領域の１つの記憶面のデータ容量に相当するバースト転送量でバースト転送される。ＤＭＡスケジューラ４１は所定のデータ量のデータ転送が完了する毎に、当該転送に係るコマンドリクエストｃｍｄ＿ｒｅｑに対するレスポンスｃｍｄ＿ｒｅｓを発行する（Ｓ９１２）。当該レスポンスｃｍｄ＿ｒｅｓを受け取ったチャネルコントローラ４４は、そのコマンドレスポンスが、ＤＭＡ転送の転送条件として設定されたデータ量の全てデータの転送が完了したことを示すコマンドレスポンスであるか否かを判別する（Ｓ９１３）。ステップ９１３において、全てのデータが転送されたことを示すレスポンスでない場合には、チャネルコントローラ４４は、バッファ領域の他の記憶面に転送すべきデータが格納されているか否かを判別する（Ｓ９１４）。ステップ９１４において、他の記憶面にデータが格納されている場合には、チャネルコントローラ４４は引き続きデータ転送を行うためにコマンドリクエストを発行し（Ｓ９０８）、他の記憶面にデータが格納されていない場合には格納されるまで待機する。
【０１３４】
一方、ステップ９１３において、全てのデータが転送されたことを示すレスポンスである場合には、当該レスポンスｃｍｄ＿ｒｅｓを受け取ったチャネルコントローラ４４は、自らの前記コントロールレジスタ（ＣＨＣＲ）に設定されたＤＭＡ転送が可能な状態であることを示す値をリセットして、ＤＭＡ転送をディセーブル状態とすると共に、ＣＰＵ１に対して割込みを行う（Ｓ９１５）。割り込みを受けたＣＰＵ１は、当該チャネルコントローラ４４によるＤＭＡ転送を終了する終了処理を実行する（Ｓ９１６）。
【０１３５】
図２０は、図１９とは逆にＳＤＲＡＭ２００をソース、周辺回路モジュールＩＰ１〜ＩＰｍをディスティネーションとするデータ転送におけるＤＭＡ転送制御の全体的な流れを示すフロー図である。
【０１３６】
先ず、上記図１８で示した手順によりＤＭＡＣ４のデータ転送条件等が設定される（Ｓ８０１〜８０８）。これによりＤＭＡＣ４によるＤＭＡ転送がイネーブル状態となる（Ｓ１００１）。その後、周辺回路モジュールＩＰと相互に対応付けられたチャネルコントローラ４４がＤＭＡスケジューラ４１に対してコマンドリクエスト（ｃｍｄ＿ｒｅｑ）を発行する（Ｓ１００２）。コマンドリクエストｃｍｄ＿ｒｅｑが発行されると、ＤＭＣスケジューラ４１は前述した方法によりスケジューリングを実行する（Ｓ１００３）。そして、ＤＭＡスケジューラ４１の制御部４１５は、ＳＤＲＡＭ２００からデータバッファ４２へのデータ転送をスケジューリング結果に基づくタイミングで実行させるようにデータ転送部４１７に対し転送開始指示４２４を与える（Ｓ１００４）。指示を受けたデータ転送部４１７は、ＳＤＲＡＭ２００からデータバッファ４２へのデータ転送を実行する（Ｓ１００５）。図１９の場合と同様にＤＭＡ転送に係るデータはバースト転送される。ＤＭＡスケジューラ４１は２５６Ｂのバースト転送が完了する毎に、当該転送に係るコマンドリクエストｃｍｄ＿ｒｅｑに対するコマンドレスポンスｃｍｄ＿ｒｅｓを、当該コマンドリクエストを発行したチャネルコントローラ４４に対して発行する（Ｓ１００６）。他の記憶面が空であれば、チャネルコントローラ４４が引き続きコマンドリクエスト（ｃｍｄ＿ｒｅｑ）を発行する（Ｓ１０１５）。コマンドレスポンスを受け取ったチャネルコントローラ４４は、その後に、そのコマンドリクエストに対応される周辺回路モジュールＩＰからリクエスト信号（ＤＲＥＱ）を受け取った場合には、それに応答するアクノリッジ信号（ＤＡＣＫ）を返す（Ｓ１００７）。これにより、コマンドレスポンスｃｍｄ＿ｒｅｑに対応されるバッファ領域から周辺回路モジュールＩＰへのデータ転送が開始される（Ｓ１００８）。例えば、ステップ１００６で発行されたコマンドレスポンスｃｍｄ＿ｒｅｑに示されたデータの格納先が、対応されるバッファ領域のＡ面である場合には、Ａ面のバッファ領域から周辺回路モジュールＩＰへのデータ転送が実行される。周辺回路モジュールＩＰへのデータ転送が実行されると、チャネルコントローラ４４は、バッファ領域の１つの記憶面のデータ容量に相当するデータが転送されたか否かを判別する（Ｓ１００９）。ステップ１００９において、１つの記憶面のデータ容量に相当するデータの転送が完了していない場合には、引き続き同一記憶面から周辺回路モジュールＩＰへのデータ転送を実行する（Ｓ１００７）。一方、１つの記憶面のデータ容量に相当するデータの転送が完了した場合には、チャネルコントローラ４４は他の記憶面のコマンドレスポンスが返ってきているか判別する（Ｓ１０１０）。他の記憶面にデータが格納されていない場合には、データが格納されるのを待つ。
【０１３７】
一方、ステップ１０１０において、他の記憶面のコマンドレスポンスが返ってきている場合、現記憶面に更新可能フラグをセットし、周辺回路モジュールＩＰへデータ転送を行うバッファ領域の切替えを行う（Ｓ１０１２）。そして、切り替えた記憶面から周辺回路モジュールＩＰへのデータ転送を実行する（Ｓ１００７）。
【０１３８】
チャネルコントローラ４４は、ＤＭＡスケジューラのバッファが更新可能であるかを判別し、常にデータの先読みを行う（Ｓ１０１５）。周辺回路モジュールＩＰに全てのデータが転送された場合は（Ｓ１０１１）、ＤＭＡ転送が完了していることから、チャネルコントローラ４４は、自らの前記コントロールレジスタ（ＣＨＣＲ）に設定されたＤＭＡ転送が可能な状態であることを示す値をリセットしてＤＭＡ転送をディセーブル状態とすると共に、ＣＰＵ１に対して割込みを行う（Ｓ１０１３）。割り込みを受けたＣＰＵ１は当該チャネルコントローラ４４によるＤＭＡ転送を終了する終了処理を実行する（Ｓ１０１４）。
【０１３９】
図２１に、実施の形態１に係るＤＭＡＣ４によるＤＭＡ転送におけるデータ転送のタイミングチャートの一例を示す。特に制限されないが、同図では、周辺回路モジュールＩＰ１〜ＩＰｍとデータバッファ４２との間の転送における１バスアクセスサイクルあたりのデータ転送量を６４Ｂとし、データバッファ４２とＳＤＲＡＭ２００との間の転送はバースト転送であり、そのバースト転送量を２６４Ｂとする。
【０１４０】
図２１の（ａ）に示されるタイミングチャートは、周辺回路モジュールＩＰ１〜ＩＰｍをソース、ＳＤＲＡＭ２００をディスティネーションとするデータ転送におけるタイミングチャートである。同図に示されるように、周辺回路モジュールＩＰからデータバッファ４２への転送はバス６のバス幅（６４Ｂ）に応じてデータが転送され、データバッファ４２からＳＤＲＡＭ２００への転送はＳＤＲＡＭ２００にバースト転送される。このとき、データバッファ４２に対するアクセスはＡ面とＢ面を交互に切り替えて行われる。具体的には、周辺回路モジュールＩＰはデータバッファ４２のＡ面のバッファ領域に６４Ｂ毎にデータ転送を行い、ＤＭＡＣ４はＡ面のバッファ領域に２５６Ｂのデータが格納されたら、データの格納先をＢ面のバッファ領域に変更すると共にＡ面のバッファ領域からＳＤＲＡＭ２００へ２５６Ｂのバースト転送を行う。これにより、データバッファ４２からＳＤＲＡＭ２００へのデータ転送が行われている場合であっても、周辺回路モジュールＩＰはデータバッファ４２に対して連続してデータ転送を行うことができる。すなわち、周辺回路モジュールＩＰからＤＭＡＣ４に対するアクセスとＤＭＡＣ４からＳＤＲＡＭ２００に対するアクセスを独立して行うことが可能となる。
【０１４１】
図２１の（ｂ）に示されるタイミングチャートは、同図の（ａ）とは逆にＳＤＲＡＭ２００をソース、周辺回路モジュールＩＰ１〜ＩＰｍをディスティネーションとするデータ転送におけるタイミングチャートである。図２１の（ｂ）の場合も同様にデータバッファ４２に対するアクセスはＡ面とＢ面を交互に切り替えて行われるから、周辺回路モジュールＩＰからＤＭＡＣ４に対するアクセスとＤＭＡＣ４からＳＤＲＡＭ２００に対するアクセスを独立して行うことが可能となる。
【０１４２】
以上実施の形態１に係るＤＭＡＣ４によれば、ＳＤＲＡＭ２００との間のデータ転送効率を最適化し、向上させることが可能となる。
【０１４３】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１４４】
例えば、実施の形態１では外付けのＳＤＲＡＭを一例として挙げたが、これに限られず、データ処理装置に内蔵されたオンチップのメモリであってもよい。
【０１４５】
また、ＤＭＡスケジューラ４１によるデータ転送機能は、ＤＭＡＣ４単体に搭載する場合に限られず、アクセラレータ等の他の回路モジュールに搭載してもよい。また、調停回路４１６の機能をシステムバス２やシステムバス２のブリッジに組み込んでもよい。
【符号の説明】
【０１４６】
１００  データ処理装置
２００  ＳＤＲＡＭ
１３  外部バス
１  ＣＰＵ
２  システムバス
３  外部バスコントローラ
６  バス
７  接続選択回路
８  周辺バスコントローラ
ＤＲＥＱ  リクエスト信号
ＤＡＣＫ  アクノリッジ信号
ＩＰ１〜ＩＰｍ  周辺回路モジュール
４  ＤＭＡＣ
４１  ＤＭＡスケジューラ
４２  データバッファ
４３  バスインタフェース
４４＿１〜４４＿ｎ  チャネルコントローラ
４５  ＤＭＡオペレーションレジスタ
６００＿１〜６００＿ｎ  バッファ領域
４０  ＤＭＡモジュール
４１１  転送レート制御レジスタ
４１２  コマンドレジスタ
４１３  セレクタ
４１４  データバッファＩ／Ｆ部
４１５  制御部
４１６  調停回路
４１７  データ転送部
４１８（ｒａｔｅ＿ｃｈ１〜ｒａｔｅ＿ｃｈｎ）  転送レートの値
４１９（ｍｏｄｅ＿ｃｈ１〜ｒａｔｅ＿ｃｈｎ）  転送モードの値
ｃｄｍ＿ｒｅｑ  コマンドリクエスト
ｃｄｍ＿ｒｅｓ  コマンドリクエストに対するレスポンス
４１０  コマンドリクエストに応ずる値
４２３  スケジューリング結果
４２４  転送開始信号
４２５  デコード結果
４２６  帯域が確保されたか否かを示す信号
４２７  データバッファ転送条件
４２１  デコーダ
４２２  転送制御部
４２０  帯域確保判定部
４２０１  指定転送レート選択回路
４２０２  空きスロット判定回路
４２０３  転送モード選択回路
４２０４  使用帯域情報更新部
４２０５  使用帯域情報保持部
４２０６  判定結果出力部
４２０５＿Ａ〜４２０５＿Ｅ  フリップフロップ回路
４２１０  指定チャネル信号
４２１１  指定転送レート信号
４２１２  空き帯域情報
４２１３  使用帯域情報
ｒｅｑ＿ｔｄｍ＿１／２〜ｒｅｑ＿ｔｄｍ＿１／３２  帯域保証リクエスト信号
ｔｄｍ＿ｃｈ、ｂｆ＿ｃｈ  指定チャネル信号
ｒｅｑ＿ｂｆ＿ｃｈ１〜ｒｅｑ＿ｂｆ＿ｃｈｎ  ベストエフォートリクエスト信号
４１６１  ＴＤＭ調停回路
４１６２  ベストエフォート調停回路
４１６３  セレクタ
７０１＿Ａ〜７０１＿Ｃ、８０１  選択結果
１１００、１１０１、１２００〜１２０４  リクエスト信号が無いタイミング
５０１  空きスロット検出回路
５０２  帯域検出回路
５０２１〜５０２５  帯域毎の検出回路
５０３  セレクタ
ｖｓｌｔ（ｖｓｌｔ０〜ｖｓｌｔ３１）  空きスロットであるか否かを示す信号
ｒ２＿ｓｌｔ、ｒ４＿ｓｌｔ、ｒ８＿ｓｌｔ、ｒ１６＿ｓｌｔ、ｒ３２＿ｓｌｔ  空き帯域であるか否かを示す信号
【図１】
2012037968.tif 000003
【図２】
2012037968.tif 000004
【図３】
2012037968.tif 000005
【図４】
2012037968.tif 000006
【図５】
2012037968.tif 000007
【図６】
2012037968.tif 000008
【図７】
2012037968.tif 000009
【図８】
2012037968.tif 000010
【図９】
2012037968.tif 000011
【図１０】
2012037968.tif 000012
【図１１】
2012037968.tif 000013
【図１２】
2012037968.tif 000014
【図１３】
2012037968.tif 000015
【図１４】
2012037968.tif 000016
【図１５】
2012037968.tif 000017
【図１６】
2012037968.tif 000018
【図１７】
2012037968.tif 000019
【図１８】
2012037968.tif 000020
【図１９】
2012037968.tif 000021
【図２０】
2012037968.tif 000022
【図２１】
2012037968.tif 000023