(57)【要約】【課題】  本発明は、連続又は一定間隔でないアドレスに割り当てられたレジスタのデータを効率的にＤＭＡ転送可能なＤＭＡ転送システムを提供することを目的とする。【解決手段】  ＤＭＡ転送システムは、ＤＭＡコントローラと、ＤＭＡコントローラに接続されるバスと、バスに接続されるバスインターフェースと、バスインターフェースを介してバスに結合される複数のレジスタを含み、バスインターフェースは複数のレジスタを不連続なアドレスと連続なアドレスとに２重に割当て、ＤＭＡコントローラから複数のレジスタを連続なアドレスを介してアクセス可能とするよう構成されることを特徴とする。【選択図】  図５
2006251916.tif 000002
【特許請求の範囲】
【請求項１】
ＤＭＡコントローラと、
該ＤＭＡコントローラに接続されるバスと、
該バスに接続されるバスインターフェースと、
該バスインターフェースを介して該バスに結合される複数のレジスタ
を含み、該バスインターフェースは該複数のレジスタを不連続なアドレスと連続なアドレスとに２重に割当て、該ＤＭＡコントローラから該複数のレジスタを該連続なアドレスを介してアクセス可能とするよう構成されることを特徴とするＤＭＡ転送システム。
【請求項２】
該バスインターフェースは、該連続なアドレスから読み出した該複数のレジスタのデータについて該バス上の位置を並べ替えるよう構成されることを特徴とする請求項１記載のＤＭＡ転送システム。
【請求項３】
該バスインターフェースは、該連続なアドレスから読み出した該複数のレジスタのデータを該バスのデータ幅に等しい１つのデータとして該バスに出力することを特徴とする請求項２記載のＤＭＡ転送システム。
【請求項４】
該不連続なアドレス間の間隔は一定でないことを特徴とする請求項１記載のＤＭＡ転送システム。
【請求項５】
該複数のレジスタは複数のマクロに分散して配置されている内部レジスタであることを特徴とする請求項１記載のＤＭＡ転送システム。
【請求項６】
該不連続なアドレス間のアドレスには該複数のマクロ内の別の内部レジスタが割当てられていることを特徴とする請求項５記載のＤＭＡ転送システム。
【請求項７】
該バスインターフェースは、
該バスに結合され該バスからのアドレス信号をデコードして出力するデコーダと、
該デコーダの出力と該複数のレジスタの１つとの間に結合され、該不連続なアドレスの１つに応答して該デコーダがアサートする信号と該連続なアドレスの１つに応答して該デコーダがアサートする信号との何れがアサートされても該複数のレジスタの該１つを選択するよう構成される回路
を含むことを特徴とする請求項１記載のＤＭＡ転送システム。
【請求項８】
不連続なアドレスに割当てられた複数のレジスタを連続なアドレスに割り当て、
該連続なアドレスを転送元として該複数のレジスタのデータを転送先にＤＭＡ転送する
各段階を含むことを特徴とするＤＭＡ転送方法。
【請求項９】
該連続なアドレスを転送元として読み出した該複数のレジスタのデータについてデータバス上の位置を並べ替える段階を更に含むことを特徴とする請求項８記載のＤＭＡ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にデータ転送システム及びデータ転送方法に関し、詳しくはＤＭＡ転送システム及びＤＭＡ転送方法に関する。
【背景技術】
【０００２】
ＤＭＡ（Direct  Memory  Access）転送システムにより、ＣＰＵを介すことなく転送元から転送先へ直接にデータ転送することで、高速なデータ転送が可能となる。図１は、従来のＤＭＡ転送システムの構成の一例を示す図である。
【０００３】
図１のＤＭＡ転送システム１０は、ＣＰＵ１１、割り込みコントローラ１２、ＤＭＡコントローラ１３、メモリ１４、イベントカウンタ１５−１乃至１５−４、及びバスインターフェース１６−１乃至１６−４を含む。ＣＰＵ１１、割り込みコントローラ１２、ＤＭＡコントローラ１３、及びメモリ１４は、バス１７により互いに接続され、更にイベントカウンタ１５−１乃至１５−４が対応するバスインターフェース１６−１乃至１６−４を介してバス１７に接続される。
【０００４】
ＣＰＵ１１は、ＤＭＡの転送元アドレス、転送先アドレス、転送データサイズ、転送元アドレスの増減設定、転送先アドレスの増減設定等を指定して、ＤＭＡコントローラ１３に対してＤＭＡ転送の設定をする。ＤＭＡコントローラ１３は、これに応じて、指定されたＤＭＡ転送を実行する。
【０００５】
例えば、イベントカウンタ１５−１乃至１５−４からメモリ１４に、レジスタデータをＤＭＡ転送する場合について説明する。ここではイベントカウンタを例として用いるが、他の機能を有するマクロであってもＤＭＡ転送の動作は同様である。
【０００６】
イベントカウンタ１５−１乃至１５−４は、トリガ信号ＴＲＧ０乃至ＴＲＧ４が指示する期間、データ信号Ｄ０乃至Ｄ４のパルス数をカウントするものである。即ち、例えばイベントカウンタ１５−１は、トリガ信号ＴＲＧ０がＨＩＧＨになるとデータ信号Ｄ０のパルスのカウントを開始し、トリガ信号ＴＲＧ０がＬＯＷになるまでカウントを続ける。トリガ信号ＴＲＧ０がＬＯＷになりカウントが終了すると、そのカウント値がイベントカウンタ１５−１の内部のレジスタに格納される。
【０００７】
カウント終了すると、イベントカウンタ１５−１乃至１５−４が割り込み信号ＩＮＴ０乃至ＩＮＴ３を発生する。この割り込み信号ＩＮＴ０乃至ＩＮＴ３は、割り込みコントローラ１２に供給される。割り込みコントローラ１２は、割り込み信号ＩＮＴ０乃至ＩＮＴ３に応答して、ＤＭＡコントローラ１３にＤＭＡ転送の開始を指示する。これに応じて、ＤＭＡコントローラ１３はＤＭＡ転送を実行する。
【０００８】
図２は、ＤＭＡ転送動作について説明するためにイベントカウンタ１５−１乃至１５−４及びバスインターフェース１６−１乃至１６−４を更に詳細に示す図である。図２に示すように、イベントカウンタ１５−１乃至１５−４にはそれぞれレジスタセット２０−１乃至２０−４が設けられる。またバスインターフェース１６−１乃至１６−４にはそれぞれデコーダ・セレクタ２１−１乃至２１−４が含まれる。
【０００９】
イベントカウンタ１５−１のレジスタセット２０−１は、レジスタＲＡ０、ＲＢ０、ＲＣ０を含む。イベントカウンタ１５−２のレジスタセット２０−２は、レジスタＲＡ１、ＲＢ１、ＲＣ１を含む。イベントカウンタ１５−３のレジスタセット２０−３は、レジスタＲＡ２、ＲＢ２、ＲＣ２を含む。イベントカウンタ１５−４のレジスタセット２０−４は、レジスタＲＡ３、ＲＢ３、ＲＣ３を含む。各レジスタは８ビットデータを格納するレジスタである。
【００１０】
バス１７は、３２ビットのアドレスバスＡ［３１：０］、書き込み及び読み出しを指示する２ビットの制御バスＲＷ［１：０］、及び３２ビットのデータバスＤ［３１：０］を含む。イベントカウンタ１５−１に示されるように、レジスタＲＡ０のデータはデータバスのビット３１からビット２４であるＤ［３１：２４］に対応し、レジスタＲＢ０のデータはデータバスのビット２３からビット１６であるＤ［２３：１６］に対応し、レジスタＲＣ０のデータはデータバスのビット１５からビット８であるＤ［１５：８］に対応する。イベントカウンタ１５−２乃至１５−４についてはスペースの関係上図示を省略するが、レジスタセット２０−２乃至２０−４の各々とデータバスＤ［３１：０］との関係は、レジスタセット２０−１の場合と同様である。
【００１１】
このようにレジスタＲＡ０、ＲＢ０、ＲＣ０をデータバスＤ［３１：０］の各部分に割当てる構成とすることで、例えば、Ｄ［３１：０］の３２ビットデータを転送することにより、レジスタセット２０−１の全てのデータを一度に転送することができる。これにより、８ビットデータを３回繰り返し転送するＤＭＡ転送だけでなく、３２ビットデータを一回転送するＤＭＡ転送を、レジスタセット２０−１のデータ転送のために用いることができる。
【００１２】
また例えばイベントカウンタ１５−１及びバスインターフェース１６−１に示されるように、レジスタＲＡ０、ＲＢ０、ＲＣ０は、それぞれアドレス０ｘ１０００、０ｘ１００１、０ｘ１００２に割当てられている。これらのアドレスにより所望のレジスタを指定することで、指定したレジスタに対する読み出し又は書き込みアクセスを実行することができる。同様に、レジスタセット２０−２にはアドレス０ｘ１００４乃至０ｘ１００６が割当てられ、レジスタセット２０−３にはアドレス０ｘ１００８乃至０ｘ１００Ａが割当てられ、レジスタセット２０−４にはアドレス０ｘ１００Ｃ乃至０ｘ１００Ｅが割当てられている。
【００１３】
図３は、図２に示すレジスタのアドレス空間への割り当てを示す図である。図３の左側に示されるように、レジスタＲＡ０、ＲＢ０、ＲＣ０がそれぞれアドレス０ｘ１０００、０ｘ１００１、０ｘ１００２に割当てられ、ＲＡ１、ＲＢ１、ＲＣ１がそれぞれアドレス０ｘ１００４、０ｘ１００５、０ｘ１００６に割当てられ、ＲＡ２、ＲＢ２、ＲＣ２がそれぞれアドレス０ｘ１００８、０ｘ１００９、０ｘ１００Ａに割当てられ、ＲＡ３、ＲＢ３、ＲＣ３がそれぞれアドレス０ｘ１００Ｃ、０ｘ１００Ｄ、０ｘ１００Ｅに割当てられている。これは上記説明の通りである。
【００１４】
ここでイベントカウンタ１５−１乃至１５−４において、レジスタＲＡ０、ＲＡ１、ＲＡ２、及びＲＡ３に、カウント結果を示すデータとして前述のカウント値が格納されるとする。これらのカウント値を読み出して、メモリ１４（図１）内のアドレス０ｘ２０００乃至０ｘ２００３に転送する場合を想定する。この場合、転送元の開始アドレスを０ｘ１０００、データ転送幅を８ビット、更に転送元のアドレス増加値を＋４とすることで、レジスタの内容であるカウント値をＤＭＡ転送することができる。このＤＭＡ転送は、８ビットデータを４回転送することにより実行される。
【００１５】
この場合、転送データ量は計３２ビットであり、データバスＤ［３１：０］が３２ビットのデータ幅を提供するにも関わらず、３２ビット幅のＤＭＡ転送一回で済ませることはできない。これは、レジスタＲＡ０、ＲＡ１、ＲＡ２、及びＲＡ３のアドレスが、連続したアドレスではないからである。また仮にアドレスが連続していたとしても、これらのレジスタは全てデータバスのＤ［３１：２４］の部分に重複して割当てられており、３２ビット幅のＤＭＡ転送とすることは不可能である。
【００１６】
また別の例として、イベントカウンタ１５−１乃至１５−４において、レジスタＲＢ０、ＲＡ１、ＲＣ２、及びＲＡ３に、カウント結果を示すデータとして前述のカウント値が格納されるとする。このときのレジスタ間のアドレス増加は、＋３、＋６、＋２となる。アドレス増加値が一定でないので、この場合には８ビットデータの４回の転送としてＤＭＡ転送することができない。また上記の場合と同様に、３２ビット幅の一回のＤＭＡ転送としても転送することはできない。即ち、このような場合には全くＤＭＡ転送ができないことになる。
【００１７】
従来、このように連続又は一定間隔でないアドレスに割り当てられたレジスタのデータを転送する場合は、ＣＰＵによりソフトウェアを実行することでデータ転送を実現していた。ソフトウェアでデータ転送する場合、読み出しアドレスの設定動作、データの読み出し動作、書き込みアドレスの設定動作、データの書き込み動作という４つの動作ステップを、１転送毎に実行する必要がある。従って、ＤＭＡ転送に比べて効率が極めて悪く、高速なデータ転送をすることができない。
【００１８】
なお特許文献１には、不連続なアドレスに対するアクセスを効果的に行うための構成が開示されている。
【特許文献１】特開２００１−２５６１０４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１９】
以上を鑑みて、本発明は、連続又は一定間隔でないアドレスに割り当てられたレジスタのデータを効率的にＤＭＡ転送可能なＤＭＡ転送システムを提供することを目的とする。
【課題を解決するための手段】
【００２０】
本発明によるＤＭＡ転送システムは、ＤＭＡコントローラと、該ＤＭＡコントローラに接続されるバスと、該バスに接続されるバスインターフェースと、該バスインターフェースを介して該バスに結合される複数のレジスタを含み、該バスインターフェースは該複数のレジスタを不連続なアドレスと連続なアドレスとに２重に割当て、該ＤＭＡコントローラから該複数のレジスタを該連続なアドレスを介してアクセス可能とするよう構成されることを特徴とする。
【００２１】
また本発明によるＤＭＡ転送方法は、不連続なアドレスに割当てられた複数のレジスタを連続なアドレスに割り当て、該連続なアドレスを転送元として該複数のレジスタのデータを転送先にＤＭＡ転送する各段階を含むことを特徴とする。
【発明の効果】
【００２２】
本発明の少なくとも１つの実施例によれば、ＤＭＡ転送元のレジスタが連続アドレスに割当てられていない場合であっても、ミラーレジスタとして連続したアドレスに割当てることにより、アドレス空間上の一纏まりのデータとしてアクセス可能とする。これにより、ＤＭＡ転送元のレジスタが連続アドレスに割当てられていない場合であっても、一纏まりのデータとして一括してＤＭＡ転送することが可能となる。
【００２３】
また、レジスタ間のアドレス増加が一定でなくＤＭＡ転送の対象とならないようなレジスタであっても、ミラーレジスタとして連続したアドレスに割当てることにより、一定のアドレス増加値を設定してＤＭＡ転送することが可能となる。
【発明を実施するための最良の形態】
【００２４】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００２５】
図４は、本発明によるＤＭＡ転送システムの構成の一例を示す図である。図４において、図１と同一の構成要素は同一の番号で参照される。
【００２６】
図４のＤＭＡ転送システム３０は、ＣＰＵ１１、割り込みコントローラ１２、ＤＭＡコントローラ１３、メモリ１４、イベントカウンタ１５−１乃至１５−４、及びバスインターフェース３１を含む。ＣＰＵ１１、割り込みコントローラ１２、ＤＭＡコントローラ１３、及びメモリ１４は、バス１７により互いに接続され、更にイベントカウンタ１５−１乃至１５−４がバスインターフェース３１を介してバス１７に接続される。
【００２７】
例えば、イベントカウンタ１５−１乃至１５−４からメモリ１４に、レジスタデータをＤＭＡ転送する場合について説明する。ここではイベントカウンタを例として用いるが、他の機能を有するマクロであってもＤＭＡ転送の動作は同様である。
【００２８】
イベントカウンタ１５−１乃至１５−４は、トリガ信号ＴＲＧ０乃至ＴＲＧ４が指示する期間、データ信号Ｄ０乃至Ｄ４のパルス数をカウントする。カウントが終了すると、そのカウント値がイベントカウンタ１５−１乃至１５−４の内部のレジスタに格納されるとともに、割り込み信号ＩＮＴ０乃至ＩＮＴ３が発生する。この割り込み信号ＩＮＴ０乃至ＩＮＴ３は、割り込みコントローラ１２に供給される。割り込みコントローラ１２は、割り込み信号ＩＮＴ０乃至ＩＮＴ３に応答して、ＤＭＡコントローラ１３にＤＭＡ転送の開始を指示する。これに応じて、ＤＭＡコントローラ１３はＤＭＡ転送を実行する。
【００２９】
図５は、ＤＭＡ転送動作について説明するためにイベントカウンタ１５−１乃至１５−４及びバスインターフェース３１を更に詳細に示す図である。図５において、図２と同一の構成要素は同一の番号で参照される。
【００３０】
図２に示すように、イベントカウンタ１５−１乃至１５−４にはそれぞれレジスタセット２０−１乃至２０−４が設けられる。またバスインターフェース３１は、デコーダ＆セレクタ３２及びＯＲ回路３３−１乃至３３−４を含む。
【００３１】
イベントカウンタ１５−１のレジスタセット２０−１は、レジスタＲＡ０、ＲＢ０、ＲＣ０を含む。イベントカウンタ１５−２のレジスタセット２０−２は、レジスタＲＡ１、ＲＢ１、ＲＣ１を含む。イベントカウンタ１５−３のレジスタセット２０−３は、レジスタＲＡ２、ＲＢ２、ＲＣ２を含む。イベントカウンタ１５−４のレジスタセット２０−４は、レジスタＲＡ３、ＲＢ３、ＲＣ３を含む。各レジスタは８ビットデータを格納するレジスタである。
【００３２】
バス１７は、３２ビットのアドレスバスＡ［３１：０］、書き込み及び読み出しを指示する２ビットの制御バスＲＷ［１：０］、及び３２ビットのデータバスＤ［３１：０］を含む。イベントカウンタ１５−１に示されるように、レジスタＲＡ０のデータはデータバスのビット３１からビット２４であるＤ［３１：２４］に対応し、レジスタＲＢ０のデータはデータバスのビット２３からビット１６であるＤ［２３：１６］に対応し、レジスタＲＣ０のデータはデータバスのビット１５からビット８であるＤ［１５：８］に対応する。イベントカウンタ１５−２乃至１５−４についてはスペースの関係上図示を省略するが、レジスタセット２０−２乃至２０−４の各々とデータバスＤ［３１：０］との関係は、レジスタセット２０−１の場合と同様である。
【００３３】
また例えばイベントカウンタ１５−１及びバスインターフェース３１に示されるように、レジスタＲＡ０、ＲＢ０、ＲＣ０は、それぞれアドレス０ｘ１０００、０ｘ１００１、０ｘ１００２に割当てられている。即ち、デコーダ＆セレクタ３２がアドレスバスＡ［３１：０］のアドレスをデコードし、アドレス０ｘ１０００に対応するデコード信号をアサートすると、このデコード信号のアサート状態に応答して、レジスタＲＡ０のアクセスが可能となる。
【００３４】
即ちこの例のＤＭＡ転送のように読み出し動作の場合、デコード信号のアサート状態に応答して、レジスタＲＡ０の内容がデータバスＤ［３１：２４］に読み出される。またアドレス０ｘ１００１に対応するデコード信号がアサートされると、これに応答して、レジスタＲＢ０の内容がデータバスＤ［２３：１６］に読み出される。またアドレス０ｘ１００２に対応するデコード信号がアサートされると、これに応答して、レジスタＲＣ０の内容がデータバスＤ［１５：８］に読み出される。
【００３５】
またバスインターフェース３１に設けられたＯＲ回路３３−１により、デコーダ＆セレクタ３２から出力されるアドレス０ｘ１０００に対応するデコード信号とアドレス０ｘ１０１０に対応するデコード信号とのＯＲ論理をとる構成となっている。このＯＲ論理をとった結果の信号が、レジスタＲＡ０に供給される。従ってレジスタＲＡ０は、アドレス０ｘ１０００に割当てられるとともに、アドレス０ｘ１０１０にも割当てられていることになる。従って、デコーダ＆セレクタ３２がアドレスバスＡ［３１：０］のアドレスをデコードし、アドレス０ｘ１０１０に対応するデコード信号をアサートすると、レジスタＲＡ０の内容がイベントカウンタ１５−１とバスインターフェース３１との間のデータバスＤ０［３１：０］の一部Ｄ０［３１：２４］に読み出される。
【００３６】
イベントカウンタ１５−２についても同様であり、レジスタＲＡ１、ＲＢ１、ＲＣ１がそれぞれアドレス０ｘ１００４、０ｘ１００５、０ｘ１００６に割当てられるとともに、ＯＲ回路３３−２により、アドレス０ｘ１００４に対応するデコード信号とアドレス０ｘ１０１１に対応するデコード信号とのＯＲ論理をとる構成となっている。このＯＲ論理をとった結果の信号が、レジスタＲＡ１に供給される。従ってレジスタＲＡ１は、アドレス０ｘ１００４に割当てられるとともに、アドレス０ｘ１０１１にも割当てられていることになる。従って、デコーダ＆セレクタ３２がアドレスバスＡ［３１：０］のアドレスをデコードし、アドレス０ｘ１０１１に対応するデコード信号をアサートすると、レジスタＲＡ１の内容がイベントカウンタ１５−２とバスインターフェース３１との間のデータバスＤ１［３１：０］の一部Ｄ１［３１：２４］に読み出される。
【００３７】
イベントカウンタ１５−３についても同様であり、レジスタＲＡ２、ＲＢ２、ＲＣ２がそれぞれアドレス０ｘ１００８、０ｘ１００９、０ｘ１００Ａに割当てられるとともに、ＯＲ回路３３−３により、アドレス０ｘ１００８に対応するデコード信号とアドレス０ｘ１０１２に対応するデコード信号とのＯＲ論理をとる構成となっている。このＯＲ論理をとった結果の信号が、レジスタＲＡ２に供給される。従ってレジスタＲＡ２は、アドレス０ｘ１００８に割当てられるとともに、アドレス０ｘ１０１２にも割当てられていることになる。従って、デコーダ＆セレクタ３２がアドレスバスＡ［３１：０］のアドレスをデコードし、アドレス０ｘ１０１２に対応するデコード信号をアサートすると、レジスタＲＡ２の内容がイベントカウンタ１５−３とバスインターフェース３１との間のデータバスＤ２［３１：０］の一部Ｄ２［３１：２４］に読み出される。
【００３８】
イベントカウンタ１５−４についても同様であり、レジスタＲＡ３、ＲＢ３、ＲＣ３がそれぞれアドレス０ｘ１００Ｃ、０ｘ１００Ｄ、０ｘ１００Ｅに割当てられるとともに、ＯＲ回路３３−４により、アドレス０ｘ１００Ｃに対応するデコード信号とアドレス０ｘ１０１３に対応するデコード信号とのＯＲ論理をとる構成となっている。このＯＲ論理をとった結果の信号が、レジスタＲＡ３に供給される。従ってレジスタＲＡ３は、アドレス０ｘ１００Ｃに割当てられるとともに、アドレス０ｘ１０１３にも割当てられていることになる。従って、デコーダ＆セレクタ３２がアドレスバスＡ［３１：０］のアドレスをデコードし、アドレス０ｘ１０１３に対応するデコード信号をアサートすると、レジスタＲＡ３の内容がイベントカウンタ１５−４とバスインターフェース３１との間のデータバスＤ３［３１：０］の一部Ｄ３［３１：２４］に読み出される。
【００３９】
図６は、図５に示すレジスタのアドレス空間への割り当てを示す図である。図６に示されるように、レジスタＲＡ０、ＲＢ０、ＲＣ０がそれぞれアドレス０ｘ１０００、０ｘ１００１、０ｘ１００２に割当てられ、ＲＡ１、ＲＢ１、ＲＣ１がそれぞれアドレス０ｘ１００４、０ｘ１００５、０ｘ１００６に割当てられ、ＲＡ２、ＲＢ２、ＲＣ２がそれぞれアドレス０ｘ１００８、０ｘ１００９、０ｘ１００Ａに割当てられ、ＲＡ３、ＲＢ３、ＲＣ３がそれぞれアドレス０ｘ１００Ｃ、０ｘ１００Ｄ、０ｘ１００Ｅに割当てられている。
【００４０】
またバスインターフェース３１のＯＲ回路３３−１乃至３３−４の働きにより、レジスタＲＡ０、ＲＡ１、ＲＡ２、及びＲＡ３が、ミラーレジスタとしてアドレス０ｘ１０１０、０ｘ１０１１、０ｘ１０１２、及び０ｘ１０１３に割当てられる。
【００４１】
この場合、ミラーレジスタは０ｘ１０１０乃至０ｘ１０１３の連続したアドレスに割当てられているので、アドレス空間上では、アドレス０ｘ１０１０からの３２ビットデータとして取り扱うことができる。しかし前述のように、レジスタＲＡ０、ＲＡ１、ＲＡ２、及びＲＡ３は全てデータバスのＤ［３１：２４］の部分に重複して割当てられており、データバスＤ［３１：０］上の３２ビット幅のデータとして配置されていない。従ってこのままでは、３２ビット幅のＤＭＡ転送とすることは不可能である。
【００４２】
そこで本発明においては、レジスタＲＡ０、ＲＡ１、ＲＡ２、及びＲＡ３をアドレス０ｘ１０１０乃至０ｘ１０１３に位置するミラーレジスタとしてアクセスする場合、図５のデコーダ＆セレクタ３２が、レジスタＲＡ０、ＲＡ１、ＲＡ２、及びＲＡ３から読み出したデータを、バス１７のデータバス［３１：０］の３２ビットデータとなるように並び替える。即ち、デコーダ＆セレクタ３２は、Ｄ０［３１：２４］、Ｄ１［３１：２４］、Ｄ２［３１：２４］、及びＤ３［３１：２４］のデータを、それぞれＤ［３１：２４］、Ｄ［２３：１６］、Ｄ［１５：８］、及びＤ［７：０］に対応するように並べ替えて３２ビットデータとし、この３２ビットデータをバス１７のデータバスに出力する。
【００４３】
図７は、図６の８ビットデータのレジスタマップを３２ビットのレジスタマップに置き換えて示す図である。図７に示すように、例えばレジスタＲＡ０、ＲＢ０、ＲＣ０はアドレス０ｘ１０００から始まる３２ビットデータの上位２４ビットに対応する。
【００４４】
上記説明のように、デコーダ＆セレクタ３２によりミラーレジスタからの読み出しデータのデータバス上の位置を配置換えすることで、図７に示すように、レジスタＲＡ０、ＲＡ１、ＲＡ２、及びＲＡ３のミラーレジスタ（それぞれ括弧で括って示してある）は、それぞれ最上位ビットから順番に８ビットずつ割当てられ、３２ビットデータを構成する。これにより、アドレス０ｘ１０１０から始まる３２ビットデータとして、レジスタＲＡ０、ＲＡ１、ＲＡ２、及びＲＡ３の内容を、３２ビット幅の一回のＤＭＡ転送により、例えばメモリ１４のアドレス０ｘ２０００に転送することができる。
【００４５】
このように本発明においては、ＤＭＡ転送元のレジスタが連続アドレスに割当てられていない場合であっても、ミラーレジスタとして連続したアドレスに割当てることにより、アドレス空間上の一纏まりのデータとしてアクセス可能とする。更にミラーレジスタにアクセスして読み出したデータを並べ替えることにより、データバス上で一纏まりのデータとして転送可能とする。これにより、ＤＭＡ転送元のレジスタが連続アドレスに割当てられていない場合であっても、一纏まりのデータとして一括してＤＭＡ転送することが可能となる。
【００４６】
また別の例として、イベントカウンタ１５−１乃至１５−４において、レジスタＲＢ０、ＲＡ１、ＲＣ２、及びＲＡ３に、カウント結果を示すデータとして前述のカウント値が格納されるとする。このときのレジスタ間のアドレス増加は、＋３、＋６、＋２となる。アドレス増加値が一定でないので、この場合には８ビットデータの４回の転送としてＤＭＡ転送することができない。
【００４７】
この場合も、図５のバスインターフェース３１のＯＲ回路３３−１乃至３３−４をそれぞれレジスタＲＢ０、ＲＡ１、ＲＣ２、及びＲＡ３に対して設ければ、レジスタＲＢ０、ＲＡ１、ＲＣ２、及びＲＡ３を、それぞれアドレス０ｘ１０１０、０ｘ１０１１、０ｘ１０１２、及び０ｘ１０１３にミラーレジスタとして割当てることができる。これにより、アドレス０ｘ１０１０から始まる３２ビットデータとして、レジスタＲＢ０、ＲＡ１、ＲＣ２、及びＲＡ３の内容を、３２ビット幅の一回のＤＭＡ転送により、例えばメモリ１４の所望のアドレスに転送することができる。即ち、レジスタ間のアドレス増加が一定でなく、ＤＭＡ転送の対象とならないようなレジスタであっても、ミラーレジスタとして連続したアドレスに割当てることにより、アドレス空間上の一纏まりのデータとしてアクセス可能とし、更にミラーレジスタにアクセスして読み出したデータを並べ替えることにより、データバス上で一纏まりのデータとして一括してＤＭＡ転送することが可能となる。
【００４８】
図８は、図４のＤＭＡ転送システム３０におけるＤＭＡ転送処理の手順を示すフローチャートである。図８のステップＳ１において、割り込みが発生する。これはイベントカウンタ１５−１乃至１５−４からの割り込み信号が発生することに対応する。ステップＳ２において、ＤＭＡ動作が起動される。即ち、イベントカウンタ１５−１乃至１５−４からの割り込み信号に応答して、割り込みコントローラ１２がＤＭＡコントローラ１３にＤＭＡ起動を要求し、ＤＭＡコントローラ１３がＤＭＡ動作を起動する。
【００４９】
ステップＳ３において、バスインターフェース３１がイベントカウンタ１５−１乃至１５−４にレジスタ読み出し要求を出力する。即ち、ＤＭＡコントローラ１３からの所定のアドレス（図５の例で０ｘ１０１０）に対する３２ビットデータの読み出し要求に対して、バスインターフェース３１のデコーダ＆セレクタ３２がアドレス０ｘ１０１０、０ｘ１０１１、０ｘ１０１２、及び０ｘ１０１３に対応するアドレスデコード信号をアサートする。このレジスタ読み出し要求に応答して、ステップＳ４乃至Ｓ７が並行して実行され、イベントカウンタ１５−１乃至１５−４（ＤＭＡチャネルｃｈ０乃至ｃｈ３）が並行して、レジスタＲＡ０、レジスタＲＡ１、レジスタＲＡ２、及びレジスタＲＡ３のデータを出力する。
【００５０】
ステップＳ８において、バスインターフェース３１のデコーダ＆セレクタ３２が、レジスタＲＡ０、レジスタＲＡ１、レジスタＲＡ２、及びレジスタＲＡ３から出力されたデータを３２ビットデータに並べ替える。ステップＳ９において、デコーダ＆セレクタ３２が３２ビットデータをバス１７のデータバスＤ［３１：０］に出力する。その後ＤＭＡコントローラ１３は、データバスＤ［３１：０］に出力されたデータをメモリ１４の指定されたアドレスに書き込む処理を実行する。ステップＳ９において、割り込みをクリアする。即ち、割り込みコントローラ１２による割り込み処理状態を終了する。
【００５１】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【図面の簡単な説明】
【００５２】
【図１】従来のＤＭＡ転送システムの構成の一例を示す図である。
【図２】図１のＤＭＡ転送動作について説明するためにイベントカウンタ及びバスインターフェースを更に詳細に示す図である。
【図３】図２に示すレジスタのアドレス空間への割り当てとＤＭＡ転送を示す図である。
【図４】本発明によるＤＭＡ転送システムの構成の一例を示す図である。
【図５】図４のＤＭＡ転送動作について説明するためにイベントカウンタ及びバスインターフェースを更に詳細に示す図である。
【図６】図５に示すレジスタのアドレス空間への割り当てとＤＭＡ転送を示す図である。
【図７】図６の８ビットデータのレジスタマップを３２ビットのレジスタマップに置き換えて示す図である。
【図８】図４のＤＭＡ転送システムにおけるＤＭＡ転送処理の手順を示すフローチャートである。
【符号の説明】
【００５３】
１１  ＣＰＵ
１２  割り込みコントローラ
１３  ＤＭＡコントローラ
１４  メモリ
１５−１〜１５−４  イベントカウンタ
１６−１〜１６−４  バスインターフェース
３０  ＤＭＡ転送システム
３１  バスインターフェース
３２  デコーダ＆セレクタ
３３−１〜３３−４  ＯＲ回路
【図１】
2006251916.tif 000003
【図２】
2006251916.tif 000004
【図３】
2006251916.tif 000005
【図４】
2006251916.tif 000006
【図５】
2006251916.tif 000007
【図６】
2006251916.tif 000008
【図７】
2006251916.tif 000009
【図８】
2006251916.tif 000010