(57)【要約】【課題】冗長な情報がバスを伝送することでバスの転送効率が低下してしまうこと。【解決手段】ＤＭＡコントローラ５は、個々に実行されるＤＭＡ転送間の関連性に応じたＤＭＡ転送のグループ化に準じて、個々のＤＭＡ転送に対応する個々の個別情報をグループ化して管理する転送情報管理部１３と、転送情報管理部１３が管理する個別情報に基づいて、ＤＭＡ転送のグループ単位でＤＭＡ転送の完了を示す割込みを生成する割込み発生部１４と、を備える。グループ単位でＤＭＡ転送の完了をＣＰＵに通知することで、冗長な割込みがバスを伝送することを抑制することができる。【選択図】図１
2010244164.tif 000002
【特許請求の範囲】
【請求項１】
個々に実行されるＤＭＡ転送間の関連性に応じた前記ＤＭＡ転送のグループ化に準じて、個々の前記ＤＭＡ転送に対応する個々の個別情報をグループ化して管理する情報管理部と、
前記情報管理部が管理する前記個別情報に基づいて、前記ＤＭＡ転送のグループ単位でＤＭＡ転送の完了を示す信号を生成する信号生成部と、
を備える、ＤＭＡコントローラ。
【請求項２】
前記個別情報は、前記ＤＭＡ転送の転送状態を示すステータス値を含み、
前記信号生成部は、前記ステータス値に基づいて、前記ＤＭＡ転送のグループ単位でＤＭＡ転送の完了を検出することを特徴とする請求項１に記載のＤＭＡコントローラ。
【請求項３】
前記信号生成部は、バスを介して伝達されるＤＭＡ転送の終了を示す情報に基づいて、前記情報管理部が管理する前記ステータス値を更新させることを特徴とする請求項２に記載のＤＭＡコントローラ。
【請求項４】
前記情報管理部は、比較対象とする前記ＤＭＡ転送の関連性を一方の開始アドレスと他方の終了アドレス間の連続性に基づいて判断することを特徴とする請求項１乃至３のいずれか一項に記載のＤＭＡコントローラ。
【請求項５】
前記情報管理部は、比較対象とする前記ＤＭＡ転送の関連性を一方及び他方の転送方向の異同に基づいて判断することを特徴とする請求項１乃至４のいずれか一項に記載のＤＭＡコントローラ。
【請求項６】
前記個別情報は、前記ＤＭＡ転送の終了アドレスを含むことを特徴とする請求項４に記載のＤＭＡコントローラ。
【請求項７】
前記個別情報は、前記ＤＭＡ転送の転送方向を示す情報を含むことを特徴とする請求項５に記載のＤＭＡコントローラ。
【請求項８】
前記情報管理部は、前記ＤＭＡ転送のグループ単位で前記個別情報を記憶する複数の記憶領域を有することを特徴とする請求項１乃至７のいずれか一項に記載のＤＭＡコントローラ。
【請求項９】
ＤＭＡ転送を指示する転送命令に基づいて、当該ＤＭＡ転送を定義付ける開始アドレス、終了アドレス、及び転送方向を示す情報を取得又は生成して前記情報管理部へ出力する情報取得部を更に備えることを特徴とする請求項１乃至８のいずれか一項に記載のＤＭＡコントローラ。
【請求項１０】
ＣＰＵと、
メモリと、
前記ＣＰＵ及び前記メモリに対してバスを介して接続されたＤＭＡコントローラと、
を備える情報処理装置であって、
前記ＤＭＡコントローラは、
個々に実行されるＤＭＡ転送間の関連性に応じた前記ＤＭＡ転送のグループ化に準じて、個々の前記ＤＭＡ転送に対応する個々の個別情報をグループ化して管理する情報管理部と、
前記情報管理部が管理する前記個別情報に基づいて、前記ＤＭＡ転送のグループ単位でＤＭＡ転送の完了を前記ＣＰＵに通知する信号を生成する信号生成部と、
を備える、情報処理装置。
【請求項１１】
個々に実行されるＤＭＡ転送間の関連性に応じた前記ＤＭＡ転送のグループ化に準じて、個々の前記ＤＭＡ転送に対応する個別情報を共通の記憶領域に保持させ、前記記憶領域に保持された前記個別情報に基づいて、前記ＤＭＡ転送のグループ単位でＤＭＡ転送の完了を示す信号を生成する、ＤＭＡ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＭＡコントローラ、情報処理装置、及びＤＭＡ管理方法に関する。
【背景技術】
【０００２】
近年、ストレージデバイスの大容量化の進展に伴い、データ転送速度の高速化が著しい。なお、近年、ストレージデバイスが扱うデータのデータ量は、数十ギガ単位にまで増大している。
【０００３】
シリアル方式でデータ転送を行うシリアルＡＴＡでは、３Ｇｂｐｓの転送規格の普及を背景に６Ｇｂｐｓの規格化も検討されている。物理的な高速化に加えて、ネイティブ・コマンド・キューイングなどによる高速化も取り組まれている。ネイティブ・コマンド・キューイングでは、一度に複数の転送命令を受けて、これらを最も効率の良い順番に並び替えて転送処理を実行する。このような取り組みによって、ストレージデバイス自体のデータ転送速度は高速化している。
【０００４】
大容量データは、半導体集積回路間を接続するバスに加えて、半導体集積回路内のシステムバスも伝送する。従って、半導体集積回路内のシステムバス上でのデータ転送速度を高速化することも要求されている。
【０００５】
特許文献１には、一回のＤＭＡ（Direct Memory Access）転送の起動により複数回のＤＭＡ転送を実行し、かつＣＰＵのポーリングによらずに複数回のＤＭＡ転送の終了をＣＰＵに通知するＤＭＡ転送装置が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２８７６５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１の場合、割込みの発生をＤＭＡ転送の終了回数で管理している。複数アプリケーションからの転送命令が並列に発生するシステムでは、アプリケーション単位で割込み発生を管理すれば良い。しかしながら、このシステムに特許文献１に記載の技術を適用すると、アプリケーション単位での割込み発生の管理をし得なく、不要な割込みが生成されることで、バストラフィックの増加を招き、システムバスのデータ転送効率が低下してしまう。また、不要な割込みの生成に伴って、割込み制御が冗長化してしまう。
【０００８】
上述の説明から明らかなように、冗長な情報がバスを伝送することでバスの転送効率が低下してしまうことが問題となっている。
【課題を解決するための手段】
【０００９】
本発明に係るＤＭＡコントローラは、個々に実行されるＤＭＡ転送間の関連性に応じた前記ＤＭＡ転送のグループ化に準じて、個々の前記ＤＭＡ転送に対応する個々の個別情報をグループ化して管理する情報管理部と、前記情報管理部が管理する前記個別情報に基づいて、前記ＤＭＡ転送のグループ単位でＤＭＡ転送の完了を示す信号を生成する信号生成部と、を備える。
【００１０】
グループ単位でＤＭＡ転送の完了をＣＰＵに通知することで、冗長な情報がバスを伝送することを抑制することができる。
【００１１】
本発明に係る情報処理装置は、ＣＰＵと、メモリと、前記ＣＰＵ及び前記メモリに対してバスを介して接続されたＤＭＡコントローラと、を備える情報処理装置であって、前記ＤＭＡコントローラは、個々に実行されるＤＭＡ転送間の関連性に応じた前記ＤＭＡ転送のグループ化に準じて、個々の前記ＤＭＡ転送に対応する個々の個別情報をグループ化して管理する情報管理部と、前記情報管理部が管理する前記個別情報に基づいて、前記ＤＭＡ転送のグループ単位でＤＭＡ転送の完了を前記ＣＰＵに通知する信号を生成する信号生成部と、を備える。
【００１２】
本発明に係るＤＭＡ管理方法は、個々に実行されるＤＭＡ転送間の関連性に応じた前記ＤＭＡ転送のグループ化に準じて、個々の前記ＤＭＡ転送に対応する個別情報を共通の記憶領域に保持させ、前記記憶領域に保持された前記個別情報に基づいて、前記ＤＭＡ転送のグループ単位でＤＭＡ転送の完了を示す信号を生成する。
【発明の効果】
【００１３】
本発明によれば、従来よりもバスの転送効率を向上させることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１実施形態にかかる情報処理装置の概略的なブロック図である。
【図２】本発明の第１実施形態にかかる割込み制御部の概略的なブロック図である。
【図３】本発明の第１実施形態にかかる転送情報管理部の概略的なブロック図である。
【図４】本発明の第１実施形態にかかる転送命令のグループ化を示す説明図である。
【図５】本発明の第１実施形態にかかるＤＭＡコントローラの動作を説明するための概略的なフローチャートである。
【図６】本発明の第１実施形態にかかるＤＭＡコントローラの動作を説明するための概略的なフローチャートである。
【図７】本発明の第１実施形態にかかる情報処理装置が奏する効果を示す説明図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施の形態について説明する。なお、各実施の形態は、説明の便宜上、簡略化されている。図面は簡略的なものであるから、図面の記載を根拠として本発明の技術的範囲を狭く解釈してはならない。図面は、もっぱら技術的事項の説明のためのものであり、図面に示された要素の正確な大きさ等は反映していない。同一の要素には、同一の符号を付し、重複する説明は省略するものとする。機能ブロックを実現する手法は任意であり、それをハードウェアで実現しても良いし、ソフトウェアで実現しても良い。
【００１６】
［第１実施形態］
図１に示すように、情報処理装置１００は、ＣＰＵ（Central Processing Unit）１、ＲＯＭ（Read Only Memory）２、メモリコントローラ３、ＲＡＭ(Random Access Memory)４、ＤＭＡ（Direct Memory Access）コントローラ５、Ｉ／Ｏ（Input/Output）デバイス６、バス７、バス８、及びバス９を備える。ＤＭＡコントローラ５は、起動レジスタ群１０、及び割込み制御部１１を備える。割込み制御部１１は、転送命令モニタ部（情報取得部）１２、転送情報管理部（情報管理部）１３、割込み発生部（信号生成部）１４を備える。なお、ＤＭＡコントローラ５は、モノリシックな半導体集積回路（半導体装置）である。
【００１７】
ＣＰＵ１、ＲＯＭ２、メモリコントローラ３、及びＤＭＡコントローラ５は、バス７を介して互いに接続されている。メモリコントローラ３は、バス８を介して、ＲＡＭ４と接続されている。ＤＭＡコントローラ５は、バス９を介して、Ｉ／０デバイス６と接続されている。
【００１８】
情報処理装置１００は、一般的なコンピュータであり、ＲＯＭ２に格納されたプログラムをＣＰＵ１で解釈して実行する。ＲＯＭ２は、複数のプログラムを格納し、ＣＰＵ１は、複数のプログラムを実行する。ＣＰＵ１により個々のプログラムが実行されるに伴って、ＣＰＵ１からＤＭＡコントローラ５へＤＭＡ転送を指示する転送命令が通知される。ＤＭＡコントローラ５は、ＣＰＵ１からの転送命令に応じて、ＲＡＭ４とＩ／Ｏデバイス６間でのＤＭＡ転送を実行する。
【００１９】
なお、Ｉ／Ｏデバイス６からＲＡＭ４への転送方向をリードと呼び、ＲＡＭ４からＩ／Ｏデバイス６へのデータ転送をライトと呼ぶ（図４参照）。リード方向へＤＭＡ転送する際、ＤＭＡコントローラ５は、Ｉ／Ｏデバイス６から供給されたデータをメモリコントローラ３を介してＲＡＭ４に書き込む。ライト方向へＤＭＡ転送する際、ＤＭＡコントローラ５は、メモリコントローラ３を介してＲＡＭ４からデータを読み出し、これをＩ／Ｏデバイス６へ転送する。このようにして、ＤＭＡコントローラ５は、ＣＰＵ１を介在しないデータ転送（すなわち、ＤＭＡ転送）を実行する。
【００２０】
本実施形態では、後述の説明から明らかなように、ＤＭＡコントローラ５は、ＣＰＵ１から通知される転送命令の連続性に応じて個々の転送命令をアプリケーション単位でグループ化し、このグループ単位で割込みを生成する。これによって、不要な割込み通知が生成されることを回避し、バス７の転送効率を効果的に高めることができる。なお、転送命令の連続性は、ＤＭＡ転送の連続性と同義である。
【００２１】
ＣＰＵ１、ＲＯＭ２、メモリコントローラ３、ＲＡＭ４、Ｉ／Ｏデバイス６、バス７〜９は、当業者にとっては一般的な技術であるため説明を省略する。
【００２２】
ＤＭＡコントローラ５は、上述のように、起動レジスタ群１０及び割込み制御部１１を有する。起動レジスタ群１０は、複数のレジスタを有し、ＣＰＵ１からＤＭＡコントローラ５に対して通知される転送命令を個々のレジスタにて保持する。具体的には、駆動レジスタ群に含まれる個々のレジスタは、転送命令を定義又は具現化する情報（スタートアドレス、データサイズ、転送方向）を保持する。ＤＭＡコントローラ５は、起動レジスタに転送命令が格納されると、この転送命令に応じてＤＭＡ転送を実行する。なお、図４に示すように、転送命令は、スタートアドレス、データサイズ、及び転送方向から特定される。
【００２３】
割込み制御部１１は、上述のように、転送命令モニタ部１２、転送情報管理部１３、及び割込み発生部１４を有する。転送命令モニタ部１２は、ＣＰＵ１から通知される個々の転送命令を受信し、この転送命令から必要な情報を取得する。転送情報管理部１３は、今回受信した転送命令と予め記憶された転送命令間の連続性を判断し、この判断結果に応じて複数の転送命令をグループ化し、この転送命令のグループ化に準じて、個々の転送命令の個別情報を管理する。割込み発生部１４は、転送命令のグループ単位でＤＭＡ転送の完了をＣＰＵ１に通知する割込み信号を生成する。なお、個別情報とは、個々の転送命令に関する情報であり、ここでは、識別値、エンドアドレス、転送方向、転送ステータスが相当する。
【００２４】
以下、割込み制御部１１の構成及び動作について、図２乃至図６を参照して説明する。
【００２５】
図２に示すように、転送命令モニタ部１２の出力は、転送情報管理部１３に接続される。転送情報管理部１３の出力は、割込み発生部１４に接続されている。割込み発生部１４の出力は、転送情報管理部１３に接続されている。
【００２６】
図２に示すように、転送命令モニタ部１２は、転送設定抽出部２１、スタートアドレス算出部２２、エンドアドレス算出部２３、及び転送方向抽出部２４を有する。割込み発生部１４は、レジスタ制御部４１、及び割込発生制御部４２を有する。
【００２７】
図３に示すように、転送情報管理部１３は、アドレス比較器３１、転送方向比較器３２、転送情報格納制御部３３、エンドアドレスセレクタ３４、転送方向セレクタ３５、グループ１情報格納レジスタ（記憶領域）３６、グループ２情報格納レジスタ（記憶領域）３７、及びグループ３情報格納レジスタ（記憶領域）３８を備える。説明の便宜上、グループ１情報格納レジスタ３６を、単に情報格納レジスタ３６と呼ぶこともある。グループ２情報格納レジスタ３７及びグループ３情報格納レジスタ３８も同様である。なお、情報格納レジスタの数は任意である。情報格納レジスタ数は、１つ以上であれば良く、ＤＭＡ転送を伴うアプリケーション数、起動レジスタ群１０にセット可能な転送命令数に応じて決定すれば良い。
【００２８】
図２に示すように、転送設定抽出部２１の出力は、スタートアドレス算出部２２、エンドアドレス算出部２３、及び転送方向抽出部２４に接続される。図２及び図３に示すように、転送設定抽出部２１の出力は、転送情報格納制御部３３に接続される。同様に、スタートアドレス算出部２２の出力は、アドレス比較器３１に接続される。転送方向抽出部２４の出力は、転送方向比較器３２に接続されると共に、グループ１情報格納レジスタ３６〜グループ３情報格納レジスタ３８に接続される。エンドアドレス算出部２３の出力は、グループ１情報格納レジスタ３６〜グループ３情報格納レジスタ３８に接続される。
【００２９】
図２及び図３に示すように、情報格納レジスタ３６〜３８の出力は、レジスタ制御部４１及び割込発生制御部４２に接続される。レジスタ制御部４１の出力は、情報格納レジスタ３６〜３８に接続される。レジスタ制御部４１の出力は、割込発生制御部４２に接続される。割込発生制御部４２の出力は、レジスタ制御部４１に接続される。
【００３０】
図３に示すように、アドレス比較器３１の出力は、転送情報格納制御部３３に接続される。転送方向比較器３２の出力も同様に、転送情報格納制御部３３に接続される。転送情報格納制御部３３の出力は、情報格納レジスタ３６〜３８に接続される。転送情報格納制御部３３の出力は、エンドアドレスセレクタ３４及び転送方向セレクタ３５の制御端子に接続される。エンドアドレスセレクタ３４には、情報格納レジスタ３６〜３８の出力が接続される。転送方向セレクタ３５には、情報格納レジスタ３６〜３８の出力が接続される。
【００３１】
図４に模式的に示すように、転送命令は、転送命令の識別値（Ｅ１、Ｅ２、Ｅ３、Ｅ４、Ｅ５）、スタートアドレス、データサイズ、転送方向を含む。なお、識別値を省略したものを転送命令としても良い。また、スタートアドレス、データサイズ、転送方向は、実際には、これらを示すデジタル値である。説明の便宜上、データサイズを示す値といった冗長な表現は採用しない。
【００３２】
転送命令モニタ部１２は、転送命令に基づいて、スタートアドレス、データサイズ、及び転送方向を取得し、これらを転送情報管理部１３へ出力する。転送情報管理部１３は、図４に模式的に示すように、各転送命令間の関連性に応じて各転送命令をグループ化し、このグループ単位で転送命令の個別情報を管理する。なお、転送情報管理部１３は、各グループに割り当てられた３つの情報格納レジスタ３６〜３８を有し、これらの情報格納レジスタ３６〜３８に転送命令の個別情報を記憶する。
【００３３】
図４に模式的に示すように、各情報格納レジスタ３６、３７は、３つの転送命令を格納可能である。また、各情報格納レジスタ３６、３７は、各転送命令の識別値、エンドアドレス、転送方向、転送ステータスを記憶する。情報格納レジスタ３８についても同様の説明が当てはまる。なお、上述と同様、識別値は、説明の便宜上のものとし、その記憶を省略しても良い。
【００３４】
図２に示すレジスタ制御部４１は、ＤＭＡ転送が終了した転送命令を示す信号（ｓｉｇ３０）に基づいて、ＤＭＡ転送が終了した転送命令に関連付けられた転送ステータスを更新する。
【００３５】
本実施形態では、割込発生制御部４２は、個々の転送命令が終了した都度に割込みを発生せず、情報格納レジスタ単位でそこに格納された全ての転送命令の転送ステータスが転送済みになったことを検出したタイミングでＣＰＵ１への割込みを発生する。これによって、アプリケーション単位でＤＭＡ転送の完了をＣＰＵ１へ通知することができ、冗長な割込みの生成に応じて不要な情報がバス７を伝送することを回避することができ、バス７の転送効率を向上させることができる。
【００３６】
転送設定抽出部２１は、ＣＰＵ１からバス７を介してＤＭＡコントローラ５に通知される転送命令に含まれる転送設定情報を抽出する。より具体的には、転送設定抽出部２１は、図４に示す転送命令から、スタートアドレス、データサイズ、及び転送方向を抽出し、これらを含む転送設定信号（ｓｉｇ１２、ｓｉｇ１３）を出力する。なお、より具体的には、転送設定抽出部２１は、起動レジスタ群１０のレジスタの保持値に基づいて、転送命令から必要な情報を抽出する。
【００３７】
スタートアドレス算出部２２は、転送設定抽出部２１の出力（転送設定信号）に基づいて、スタートアドレスを算出する。スタートアドレス算出部２２は、転送設定信号に含まれるスタートアドレスに応じた信号（ｓｉｇ１４）を生成して出力する。
【００３８】
エンドアドレス算出部２３は、転送設定抽出部２１の出力（転送設定信号）に基づいて、エンドアドレスを算出する。エンドアドレス算出部２３は、転送設定信号に含まれるスタートアドレス及びデータサイズに基づいてエンドアドレスを算出し、これに応じた信号（ｓｉｇ１５）を生成して出力する。
【００３９】
転送方向抽出部２４は、転送設定抽出部２１の出力（転送設定信号）に基づいて、転送方向を算出する。転送方向抽出部２４は、転送設定信号に含まれる転送方向に応じた信号（ｓｉｇ１６）を生成して出力する。
【００４０】
図３に示す転送情報格納制御部３３は、転送設定信号の入力に応じて、転送命令の連続性を判断するために、順次、情報格納レジスタ３６〜３８に格納された転送命令のエンドアドレスをアドレス比較器３１に供給させ、アドレス比較器３１に今回入力した転送命令のスタートアドレスと転送されたエンドアドレスの連続性を判断させる。同様に、転送情報格納制御部３３は、順次、情報格納レジスタ３６〜３８に格納された転送命令の転送方向を転送方向比較器３２に供給させ、今回入力した転送命令の転送方向と転送された転送方向間の異同を転送方向比較器３２に判断させる。そして、転送情報格納制御部３３は、アドレス比較器３１と転送方向比較器３２の判定結果に応じて、今回の転送命令の個別情報を所望のレジスタに記憶させる。なお、この個別情報には、転送ステータス（未転送）も含まれる。
【００４１】
転送情報格納制御部３３は、セレクト信号（ｓｉｇ＿ｓｅｌ）によってエンドアドレスセレクタ３４及び転送方向セレクタ３５の選択状態を制御する。例えば、転送情報格納制御部３３は、エンドアドレスセレクタ３４が、情報格納レジスタ３６、情報格納レジスタ３７、情報格納レジスタ３８の出力を順次出力するように制御する。転送方向セレクタ３５の制御についても同様の説明が当てはまる。
【００４２】
アドレス比較器３１は、今回の転送命令のスタートアドレスとエンドアドレスセレクタ３４から選択的に出力されたエンドアドレスとを比較し、両者の連続性を判断する。アドレス比較器３１は、比較対象とするアドレス間の連続性の有無に応じた判定信号を出力する。
【００４３】
転送方向比較器３２は、今回の転送命令に対応する転送方向と転送方向セレクタ３５から選択的に出力された転送方向とを比較し、両者の異同を判断する。転送方向比較器３２は、比較対象とする転送方向の移動に応じた判定信号を出力する。
【００４４】
エンドアドレスセレクタ３４は、セレクト信号に基づいて、情報格納レジスタ３６〜情報格納レジスタ３８から個別に出力されるエンドアドレスを選択して出力する。
【００４５】
転送方向セレクタ３５は、セレクト信号に基づいて、情報格納レジスタ３６〜情報格納レジスタ３８から個別に出力される転送方向を選択して出力する。
【００４６】
情報格納レジスタ３６〜３８は、転送情報格納制御部３３からの指令に応じて、各転送命令の識別値、エンドアドレス、転送方向、転送ステータス（未転送）を格納する。情報格納レジスタ３６〜３８の転送命令の格納可能数は、ＤＭＡ転送を伴うアプリケーション数、アプリケーションで分割されるＤＭＡ転送の転送命令数、バス７のバストラフィックに基づいて決定すれば良い。情報格納レジスタの転送命令の格納可能数を１に設定すると、個々のＤＭＡ転送の完了ごとに割込みを生成することができる。本実施形態では、情報格納レジスタの転送命令の格納可能数は、２以上の整数に設定されている。なお、識別値は、上述と同様、説明の便宜上のものとし、その記憶を省略しても良い。
【００４７】
レジスタ制御部４１は、上述のように、ＤＭＡ転送が終了した転送命令を特定する信号（ｓｉｇ３０）に基づいて、ＤＭＡ転送が終了した転送命令の転送ステータスを更新する。例えば、レジスタ制御部４１は、上述の信号（ｓｉｇ３０）に基づいて転送命令Ｅ３の終了を検出すると、情報格納レジスタ３７に格納された転送命令Ｅ３の転送ステータスを未転送から転送済みに変更する。その後、レジスタ制御部４１は、割込みの生成の判定を指示する信号（ｓｉｇ２７）を割込発生制御部４２へ出力する。
【００４８】
割込発生制御部４２は、上述の信号（ｓｉｇ２７）に応じて、転送ステータスが更新された情報格納レジスタに格納された全ての転送命令の転送ステータスが転送済みになったか否かを判定し、この判定結果に応じてＤＭＡ転送が完了したことをＣＰＵ１に通知する割込み信号（ｓｉｇ２９）を発生する。割込発生制御部４２は、割込み信号を生成したことを連絡する連絡信号（ｓｉｇ２８）をレジスタ制御部４１へ出力する。
【００４９】
以下、図５及び図６を参照して、ＤＭＡコントローラ５の動作（特に割込み制御部１１の動作）について説明する。
【００５０】
図５に示すように、まず、ＤＭＡ転送をスタートする。具体的には、ＣＰＵ１は、ＤＭＡコントローラ５にＤＭＡ転送を指示する転送命令を通知する。これに応じて、ＤＭＡコントローラ５は、転送命令を起動レジスタ群１０に含まれるレジスタに登録し、受信した転送命令に基づいてＤＭＡ転送を開始する。
【００５１】
次に、信号ｓｉｇ１３〜ｓｉｇ１６を生成する（Ｓ１０１）。具体的には、次のとおりである。転送設定抽出部２１は、ＣＰＵ１から通知される転送命令（ｓｉｇ１１）に基づいて転送設定信号（ｓｉｇ１２）を生成して出力する。その後、スタートアドレス算出部２２は、転送設定信号に基づいてスタートアドレスを算出し、これに応じた信号（ｓｉｇ１４）を出力する。エンドアドレス算出部２３は、転送設定信号に基づいてエンドアドレスを算出し、これに応じた信号（ｓｉｇ１５）を出力する。転送方向抽出部２４は、転送設定信号に基づいて転送方向を抽出し、これに応じた信号（ｓｉｇ１６）を出力する。
【００５２】
次に、ｓｉｇ３４とｓｉｇ３５を生成する（Ｓ１０２）。具体的には、次のとおりである。転送情報格納制御部３３は、セレクト信号を発行し、特定の情報格納レジスタから供給されたエンドアドレスをエンドアドレスセレクタ３４に選択的に出力させる。同様に、転送情報格納制御部３３は、セレクタ信号を発行し、特定の情報格納レジスタから供給された転送方向を転送方向セレクタ３５に選択的に出力させる。
【００５３】
次に、転送命令間に連続性があるか否かを判断する（Ｓ１０３）。具体的には、アドレス比較器３１は、今回の転送命令のスタートアドレスとエンドアドレスセレクタ３４から出力されたエンドアドレスとを比較し、両者の間に連続性があるのか否かを判定し、これに応じた判定信号を出力する。また、転送方向比較器３２は、今回の転送命令の転送方向と転送方向セレクタ３５から出力された転送方向間の異同を判定し、これに応じた判定信号を出力する。転送情報格納制御部３３は、アドレス比較器３１から伝達した判定信号と、転送方向比較器３２から伝達した判定信号とに基づいて、今回の転送命令とレジスタから読み出した転送命令間の連続性を判断する。なお、ここでは、３つの情報格納レジスタ３６、情報格納レジスタ３７、情報格納レジスタ３８に対応して、上述の比較処理を繰り返し実行するものとする。また、各情報格納レジスタからは、最下段のデータが出力されるように設定されているものとする。
【００５４】
転送命令間に連続性があることが判明した時点で、今回の転送命令の個別情報を格納すべき情報格納レジスタに空きスペースがあるのか否かを判定する（Ｓ１０４）。具体的には、転送情報格納制御部３３は、情報の格納先として検出した情報格納レジスタに格納されている転送命令数がＭ個未満であるのか否かを判定する。なお、Ｍは、１以上の自然数であり、情報格納レジスタに格納可能な転送命令の最大数を示す。
【００５５】
情報格納レジスタに空きがある場合には、格納先として検出した情報格納レジスタに個別情報を格納する（Ｓ１０５）。具体的には、転送情報格納制御部３３は、格納先として検出した情報格納レジスタに対して、転送命令の識別値、エンドアドレス、及び転送方向をストアさせる。なお、上述と同様、転送命令の識別値を登録するか否かは任意である。
【００５６】
Ｓ１０３で連続性がないと判断した場合、及びＳ１０４でレジスタに空きがないと判断した場合、転送命令のグループが割り当てられていない情報格納レジスタに個別情報を格納する（Ｓ１０６）。具体的には、転送情報格納制御部３３は、転送命令の新たなグループが割り当てられた情報格納レジスタに対して、転送命令の識別値、エンドアドレス、及び転送方向を格納する。
【００５７】
なお、図４に示す具体例の場合、転送命令Ｅ１、Ｅ２、Ｅ５間にはアドレスの連続性があるため、共通の情報格納レジスタ３６に格納される。同様に、転送命令Ｅ３、Ｅ４間にはアドレスの連続性があるため、共通の情報格納レジスタ３７に格納される。なお、いずれの場合も、情報格納レジスタが格納可能な個別情報数を超えていない。
【００５８】
続いて、図６を参照して、ＤＭＡコントローラ５（割込み制御部１１）の更なる動作について説明する。
【００５９】
はじめに、ＤＭＡ転送が終了した転送命令を検出する（Ｓ２０１）。具体的には、ＤＭＡコントローラ５は、転送命令に基づくＤＭＡ転送の終了時、その転送命令を特定する信号（ｓｉｇ３０）を生成して、レジスタ制御部４１に供給する。なお、信号ｓｉｇ３０は、転送命令を特定するために必要な情報（スタートアドレス、データサイズ、及び転送方向）からなる。
【００６０】
次に、グループ情報格納レジスタにセットされている個別情報を取得する（Ｓ２０２）。具体的には、レジスタ制御部４１は、情報格納レジスタ３６〜３８の出力信号を受信し、転送命令を特定するために必要な情報（エンドアドレス、及び転送方向）を取得する。
【００６１】
次に、ＤＭＡ転送が終了した転送命令に関連付けられた転送ステータスを更新する（Ｓ２０３）。具体的には、レジスタ制御部４１は、転送方向及びエンドアドレスの異同に基づいて、ＤＭＡ転送が終了した転送命令を特定し、これに関連付けられた転送ステータスを未転送から転送済みに更新する。レジスタ制御部４１は、転送ステータスの更新の事実を割込発生制御部４２に通知する。なお、レジスタ制御部４１は、スタートアドレスとデータサイズからエンドアドレスを算出するものとする。
【００６２】
次に、グループ単位でＤＭＡ転送が終了したか否かを判定する（Ｓ２０４）。具体的には、レジスタ制御部４１からの通知に応じて、割込発生制御部４２は、転送ステータスが更新された情報格納レジスタの全ての転送命令が終了しているか否かを転送ステータスの参照に基づいて判定する。
【００６３】
ＤＭＡ転送が終了しているグループがあるとき割込みを発生する（Ｓ２０５）。具体的には、割込発生制御部４２は、転送ステータスが更新された情報格納レジスタに格納されている全ての転送命令夫々に関連付けられた全ての転送ステータスが転送済みとなっていることを検出すると、ＣＰＵ１にグループ単位でＤＭＡ転送が完了したことを通知するために割込みを発生する。割込発生制御部４２は、割込みの発生をレジスタ制御部４１に対して通知する。
【００６４】
その後、割込みが発生したグループのデータを消去する（Ｓ２０６）。具体的には、割込発生制御部４２からの通知に応じて、レジスタ制御部４１は、割込みが生成されたグループに対応する情報格納レジスタの情報格納レジスタの保持データを消去する。
【００６５】
上述の説明から明らかなように、本実施形態では、ＤＭＡコントローラ５は、ＣＰＵ１から通知される転送命令の連続性（ＤＭＡ転送間の連続性）に応じて個々の転送命令（ＤＭＡ転送）をアプリケーション単位でグループ化し、このグループ単位で割込みを生成する。これによって、不要な割込み通知が生成されることを回避し、バス７の転送効率を効果的に高めることができる。
【００６６】
図７を参照して、本実施形態に係るＤＭＡコントローラ５により実現される効果について説明する。なお、図４に示すように、転送命令はグループ化されているものとする。また、本実施形態は、図７の下段のタイミングチャートに対応し、従来技術は、図７の状態のタイミングチャートに対応する。
【００６７】
ＤＭＡコントローラ５は、バス７を介してＣＰＵ１から転送命令Ｅ１を受信し、これに応じてＤＭＡ転送を実行する。転送命令Ｅ１のＤＭＡ転送に伴ってデータＤ１がバス７を伝送する。他の転送命令Ｅ２〜Ｅ５についても同様である。ただし、転送命令Ｅ２にデータＤ２が対応し、転送命令Ｅ３にデータＤ３が対応し、転送命令Ｅ４にデータＤ４が対応し、転送命令Ｅ５にデータＤ５が対応する。
【００６８】
図７から明らかなように、本実施形態では、転送命令のグループ単位で割込み処理（ＮＰと図示されている）を実行する。これによって、バス７を伝送する冗長な割込み信号を低減し、バス７の転送効率が低下することを効果的に抑制している。なお、従来の場合、転送命令のグループ単位ではなく、ＤＭＡ転送の終了の都度、割込みを生成している。このような冗長な割込みによってバス７のトラフィックが増加し、バス７の転送効率の低下を将来している。
【００６９】
図７の場合、従来発生していた５回の割り込みが本実施形態の場合２回に削減される。転送命令：データ転送：システム処理＝１：２：２の割合で見積もった場合、転送全体の時間は１０％程度削減され、転送速度は１０％程度向上する。
【００７０】
また、本実施形態では、アドレスが連続した一連のＤＭＡ転送の終了を即座にＣＰＵに通知することができる。これによって、データ転送の完了を早期にＣＰＵに通知することができ、アプリケーションによる転送データの使用開始タイミングの遅れを効果的に抑制することができる。
【００７１】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。ソフトウェア、ハードウェアのいずれを採用して実現するのかは任意である。個別情報の種類は任意である。連続性の判断手法は任意である。
【符号の説明】
【００７２】
１    ＣＰＵ
２    ＲＯＭ
３    メモリコントローラ
５    コントローラ
６    デバイス
７    バス
８    バス
９    バス
１０    起動レジスタ群
１１    制御部
１２    転送命令モニタ部
１３    転送情報管理部
１４    割込み発生部
２１    転送設定抽出部
２２    スタートアドレス算出部
２３    エンドアドレス算出部
２４    転送方向抽出部
３１    アドレス比較器
３２    転送方向比較器
３３    転送情報格納制御部
３４    エンドアドレスセレクタ
３５    転送方向セレクタ
３６    グループ１情報格納レジスタ
３７    グループ２情報格納レジスタ
３８    グループ３情報格納レジスタ
４１    レジスタ制御部
４２    割込み発生制御部
【図１】
2010244164.tif 000003
【図２】
2010244164.tif 000004
【図３】
2010244164.tif 000005
【図４】
2010244164.tif 000006
【図５】
2010244164.tif 000007
【図６】
2010244164.tif 000008
【図７】
2010244164.tif 000009