(57)【要約】【課題】  本発明は、バス幅の異なる２つのチップセレクト領域にある２つのＦＩＦＯ間で、ＲＡＭ等のバッファを介在することなくＤＭＡ転送を実行可能なＤＭＡ転送システムを提供することを目的とする。【解決手段】  ＤＭＡ転送システムは、ＤＭＡ機能を有したＣＰＵコアと、第１のビット幅のＦＩＦＯを有する第１のマクロと、第１のビット幅より狭い第２のビット幅のＦＩＦＯを有する第２のマクロを含むＤＭＡ転送システムにおいて、ＣＰＵコアから第２のマクロのＦＩＦＯをアクセスするアドレスの一部を固定可能なアドレス信号固定回路が設けられていることを特徴とする。【選択図】  図２
2006243811.tif 000002
【特許請求の範囲】
【請求項１】
ＤＭＡ機能を有したＣＰＵコアと、
第１のビット幅のＦＩＦＯを有する第１のマクロと、
該第１のビット幅より狭い第２のビット幅のＦＩＦＯを有する第２のマクロ
を含むＤＭＡ転送システムにおいて、
該ＣＰＵコアから該第２のマクロのＦＩＦＯをアクセスするアドレスの一部を固定可能なアドレス信号固定回路が設けられていることを特徴とするＤＭＡ転送システム。
【請求項２】
該ＣＰＵコアが該第１のマクロのＦＩＦＯから該第１のビット幅のデータを読み出して該第１のビット幅の該データを該第２のビット幅のデータとして該第２のマクロのＦＩＦＯに複数回書き込むＤＭＡ転送中に、該アドレス信号固定回路は該アドレスの一部を固定することを特徴とする請求項１記載のＤＭＡ転送システム。
【請求項３】
該アドレス信号固定回路は該ＣＰＵコアからアクセス可能なレジスタを含み、該ＤＭＡ転送中であることを示す値が該レジスタに該ＣＰＵコアから設定されると、該レジスタの該値に応答して該アドレス信号固定回路は該アドレスの一部を固定することを特徴とする請求項２記載のＤＭＡ転送システム。
【請求項４】
該第２のマクロから該ＣＰＵコアへのＤＭＡリクエスト信号、該ＣＰＵコアから該第２マクロへのＤＭＡアクノレッジ信号、及び該ＣＰＵコアから該第２マクロへのチップセレクト信号が全てアサートされると、該アドレス信号固定回路は該アドレスの一部を固定することを特徴とする請求項２記載のＤＭＡ転送システム。
【請求項５】
該ＣＰＵコアから該第１のマクロに供給されるチップセレクト信号と該ＣＰＵコアから該第２のマクロに供給されるチップセレクト信号とは異なることを特徴とする請求項１記載のＤＭＡ転送システム。
【請求項６】
該ＣＰＵコアと該第１のマクロとを接続する該第１のビット幅のデータバスと、
該ＣＰＵコアと該第２のマクロとを接続する該第２のビット幅のデータバス
を更に含むことを特徴とする請求項１記載のＤＭＡ転送システム。
【請求項７】
該ＣＰＵコアは、
ＣＰＵと、
ＤＭＡコントローラと、
該ＣＰＵ及び該ＤＭＡコントローラと該データバスとを接続する外部バスインターフェース
を含むことを特徴とする請求項６記載のＤＭＡ転送システム。
【請求項８】
該アドレス信号固定回路は該アドレスの該一部として所定の下位ビットを固定することを特徴とする請求項１記載のＤＭＡ転送システム。
【請求項９】
該アドレス信号固定回路が該所定の下位ビットを固定することにより、該アドレスが該第２のマクロのＦＩＦＯのアドレスに固定されることを特徴とする請求項８記載のＤＭＡ転送システム。
【請求項１０】
第１のマクロに設けられた第１のビット幅のＦＩＦＯから該第１のビット幅のデータを読み出し、
第２のマクロに設けられた該第１のビット幅より狭い第２のビット幅のＦＩＦＯに該読み出したデータを該第２のビット幅のデータとして複数回書き込み、
該複数回の書き込み動作を実行する期間中において該第２のマクロのＦＩＦＯをアクセスするアドレスの一部を固定する
各段階を含むことを特徴とするＤＭＡ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にＤＭＡ転送システム及びＤＭＡ転送方法に関し、詳しくはＦＩＦＯ間のＤＭＡデータ転送を行うＤＭＡ転送システム及びＤＭＡ転送方法に関する。
【背景技術】
【０００２】
ＤＭＡ（Direct  Memory  Access）転送システムでは、ＣＰＵを介さずに高速なデータ転送が可能である。しかしバス幅の異なる２つのチップセレクト領域にある２つのＦＩＦＯ間でＤＭＡ転送をする場合、転送元と転送先との間にＲＡＭ等をバッファとして介在させることが必要になる場合がある。
【０００３】
図１は、従来のＤＭＡ転送システムの構成の一例を示す図である。図１のＤＭＡ転送システム１０は、ＣＰＵコア１１、第１のマクロ１２、ＲＡＭ１３、及び第２のマクロ１４を含む。ＣＰＵコア１１は、ＣＰＵ１５、ＤＭＡコントローラ１６、バスコンバータ１７、及び外部バスインターフェース１８を含む。ＣＰＵ１５、ＤＭＡコントローラ１６、及び外部バスインターフェース１８は、バスコンバータ１７を介してバスにより互いに接続される。
【０００４】
外部バスインターフェース１８は、３２ビットのバスを介して第１のマクロ１２及びＲＡＭ１３に接続され、また１６ビットのバスを介して第２のマクロ１４に接続される。第１のマクロ１２と第２のマクロ１４とは、メモリ空間上でそれぞれ異なるチップセレクト領域に割当てられている。即ち、外部バスインターフェース１８から第１のマクロ１２へのチップセレクト信号は、第２のマクロ１４へのチップセレクト信号とは別個の信号である。
【０００５】
第１のマクロ１２及び第２のマクロ１４は、それぞれ内部にＦＩＦＯ（First-in First-out）を有する。それぞれのマクロ内の固定のアドレスをＦＩＦＯへのアクセスポイントとして、その固定アドレスに対して連続的にデータ書き込み・データ読み出しを実行することにより、ＦＩＦＯへのアクセスが実現される。
【０００６】
ＣＰＵ１５は、ＤＭＡの転送元アドレス、転送先アドレス、転送データサイズ、転送元アドレスの増減設定、転送先アドレスの増減設定等を指定して、ＤＭＡコントローラ１６に対してＤＭＡ転送の設定をする。ＤＭＡコントローラ１６は、これに応じて、指定されたＤＭＡ転送を実行する。
【０００７】
第１のマクロ１２のＦＩＦＯから３２ビットのデータを読み出して、第２のマクロ１４のＦＩＦＯに１６ビットの２つのデータとして書き込むＤＭＡ転送を考える。この場合にＤＭＡ転送として必要な処理は、第１のマクロ１２のＦＩＦＯから読み出した１つの３２ビットデータのうちの前半の１６ビットを第２のマクロ１４のＦＩＦＯに書き込み、次に後半の１６ビットを第２のマクロ１４のＦＩＦＯに書き込むことである。この際、読み出し先のアドレスは第１のマクロ１２内の固定のアドレスであり、書き込み先のアドレスは第２のマクロ１４内の固定のアドレスである。
【０００８】
しかしながら、ＤＭＡコントローラ１６からの信号が外部バスインターフェース１８を経由することにより、アクセス先を示すアドレス信号が外部バスインターフェース１８により自動的にインクリメントされてしまう場合がある。この場合、第１のマクロ１２から読み出した１つの３２ビットデータのうち、前半の１６ビットを第２のマクロ１４のＦＩＦＯの固定アドレスに書き込むと、後半の１６ビットについては第２のマクロ１４のＦＩＦＯの固定アドレスではなく、その次のアドレスに書き込んでしまうことになる。即ち、外部バスインターフェース１８のアドレスインクリメント動作により、ＤＭＡコントローラ１６が予期していない動作が実行されてしまう。
【０００９】
通常であれば、１つの３２ビットデータを２つの１６ビットデータとして書き込む際には、２つの連続するアドレスに２つの１６ビットデータを書き込むのが正しい動作である。外部バスインターフェース１８は、このような正しい動作を実行するために、後半の１６ビットデータの書き込み先のアドレスをインクリメントするのである。しかし転送先がＦＩＦＯである場合には、転送先アドレスは一つの固定アドレスである必要があり、転送先アドレスがインクリメントされてしまったのでは正常な動作を実行できない。
【００１０】
これを解決するために、従来は、第１のマクロ１２のＦＩＦＯから読み出した１つの３２ビットデータを、ＲＡＭ１３に３２ビットデータとしてまず格納する。ＲＡＭ１３は、通常、３２ビットデータとしてのアクセスとともに、１６ビットデータとしてのアクセスも可能である。そこで、ＲＡＭ１３の３２ビットデータの前半１６ビットをまず読み出して、第２のマクロ１４のＦＩＦＯの固定アドレスに転送し、次に後半１６ビットを読み出して、第２のマクロ１４のＦＩＦＯの固定アドレスに転送する。この場合、ＲＡＭ１３からの読み出しが１６ビットであり、第２のマクロ１４への書き込みも１６ビットであるので、外部バスインターフェース１８がアドレスをインクリメントすることはない。
【００１１】
このように従来のＤＭＡ転送システムでは、バス幅の異なる２つのチップセレクト領域にある２つのＦＩＦＯ間でＤＭＡ転送をする場合、一時的にデータを格納するバッファとしてＲＡＭ等を使用する必要が生じる。この場合、ＦＩＦＯ間で直接にデータ転送できないことになり、データ転送効率が低下してしまう。
【特許文献１】特開２０００−３２２３７５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
以上を鑑みて、本発明は、バス幅の異なる２つのチップセレクト領域にある２つのＦＩＦＯ間で、ＲＡＭ等のバッファを介在することなくＤＭＡ転送を実行可能なＤＭＡ転送システムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明によるＤＭＡ転送システムは、ＤＭＡ機能を有したＣＰＵコアと、第１のビット幅のＦＩＦＯを有する第１のマクロと、該第１のビット幅より狭い第２のビット幅のＦＩＦＯを有する第２のマクロを含むＤＭＡ転送システムにおいて、該ＣＰＵコアから該第２のマクロのＦＩＦＯをアクセスするアドレスの一部を固定可能なアドレス信号固定回路が設けられていることを特徴とする。
【００１４】
また本発明によるＤＭＡ転送方法は、第１のマクロに設けられた第１のビット幅のＦＩＦＯから該第１のビット幅のデータを読み出し、第２のマクロに設けられた該第１のビット幅より狭い第２のビット幅のＦＩＦＯに該読み出したデータを該第２のビット幅のデータとして複数回書き込み、前記複数回の書き込み動作を実行する期間中において該第２のマクロのＦＩＦＯをアクセスするアドレスの一部を固定する各段階を含むことを特徴とする。
【発明の効果】
【００１５】
本発明の少なくとも１つの実施例によれば、アドレス信号固定回路によりアドレス信号の一部を所定のビットに固定することで、アドレス信号が自動的にインクリメントされても正しいＦＩＦＯアドレス（ＦＩＦＯへのアクセスポイント）にアクセスすることができる。従って、バス幅の異なる２つのチップセレクト領域にある２つのＦＩＦＯ間で、ＲＡＭ等のバッファを介在することなくＤＭＡ転送を正常に実行することが可能になる。
【発明を実施するための最良の形態】
【００１６】
以下に本発明の実施例を添付の図面を用いて詳細に説明する。
【００１７】
図２は、本発明によるＤＭＡ転送システムの構成の第１の実施例を示す図である。図２において、図１と同一の構成要素は同一の番号で参照する。
【００１８】
図２のＤＭＡ転送システムは、ＣＰＵコア１１、第１のマクロ１２、ＲＡＭ１３、及び第２のマクロ２０を含む。ＣＰＵコア１１は、図１に示すようにＣＰＵ１５、ＤＭＡコントローラ１６、バスコンバータ１７、及び外部バスインターフェース１８を含む。
【００１９】
ＣＰＵコア１１は、３２ビットのデータバスを介して第１のマクロ１２及びＲＡＭ１３に接続され、また１６ビットのデータバスを介して第２のマクロ２０に接続される。ＣＰＵコア１１は、更にアドレスバスを介して第１のマクロ１２、ＲＡＭ１３、及び第２のマクロ２０に接続されており、アドレスバスを介してアドレス信号を供給する
第１のマクロ１２と第２のマクロ２０とは、メモリ空間上でそれぞれ異なるチップセレクト領域に割当てられている。即ち、ＣＰＵコア１１の外部バスインターフェースから第１のマクロ１２へのチップセレクト信号は、第２のマクロ２０へのチップセレクト信号とは異なる別個の信号である。なおチップセレクト信号は明示的には図示されていないが、チップセレクト信号用の信号線がアドレスバスに含まれていると考えてよい。
【００２０】
第１のマクロ１２及び第２のマクロ２０は、それぞれ内部にＦＩＦＯ（First-in First-out）を有する。それぞれのマクロ内の固定のアドレスをＦＩＦＯへのアクセスポイントとして、その固定アドレスに対して連続的にデータ書き込み・データ読み出しを実行することにより、ＦＩＦＯへのアクセスが実現される。
【００２１】
ＣＰＵコア１１内部において、ＣＰＵ１５（図１）が、ＤＭＡの転送元アドレス、転送先アドレス、転送データサイズ、転送元アドレスの増減設定、転送先アドレスの増減設定等を指定して、ＤＭＡコントローラ１６（図１）に対してＤＭＡ転送の設定をする。ＤＭＡコントローラ１６は、これに応じて、指定されたＤＭＡ転送を実行する。
【００２２】
第１のマクロ１２のＦＩＦＯから３２ビットのデータを読み出して、第２のマクロ２０のＦＩＦＯに１６ビットの２つのデータとして書き込むＤＭＡ転送を考える。この場合にＤＭＡ転送として必要な処理は、第１のマクロ１２のＦＩＦＯから読み出した１つの３２ビットデータのうちの前半の１６ビットを第２のマクロ２０のＦＩＦＯに書き込み、次に後半の１６ビットを第２のマクロ２０のＦＩＦＯに書き込むことである。この際、読み出し先のアドレスは第１のマクロ１２内の固定のアドレスであり、書き込み先のアドレスは第２のマクロ２０内の固定のアドレスである。
【００２３】
しかしながら、図１において説明したように、ＤＭＡコントローラ１６からの信号が外部バスインターフェース１８を経由することにより、アクセス先を示すアドレス信号が外部バスインターフェース１８により自動的にインクリメントされてしまう
図２に示す第２のマクロ２０においては、このようにアドレス信号が自動的にインクリメントされても正しいＦＩＦＯアドレス（ＦＩＦＯへのアクセスポイント）にアクセスできるように、アドレス信号マスク回路が設けられている。図２に示すように、第２のマクロ２０は、ＦＩＦＯ２１、アドレス信号マスク回路２２、及びマスク設定レジスタ２３を含む。
【００２４】
ＦＩＦＯ２１及びマスク設定レジスタ２３は、説明の便宜上、模式的にそれぞれ別個のユニットであるものとして示されている。これらは別個のレジスタユニットであってもよいが、実際の構成としては、例えば第２のマクロ２０内部のメモリ回路の一部に相当するものであってよい。ＣＰＵコア１１からアドレス指定してＦＩＦＯ２１にデータを書き込むのと同様に、ＣＰＵコア１１からマスク設定レジスタ２３のアドレスを指定して、マスク設定レジスタ２３にマスクビットを書き込むことができる。
【００２５】
アドレス信号マスク回路２２は、一例としてＡＮＤゲート２５及び２６を含む。マスク設定レジスタ２３のマスクビット設定に応じて、アドレス信号マスク回路２２は、アドレスバスのアドレス信号の下位２ビットＡ［０］及びＡ［１］をマスクする。即ち、２ビットのマスクビットが双方ともに“０”に設定されると、アドレスバスのアドレス信号の下位２ビットＡ［０］及びＡ［１］を、ＡＮＤゲート２５及び２６により遮断する。これにより、ＦＩＦＯ２１に供給されるアドレス信号の下位２ビットＡ［０］及びＡ［１］は“０”となる。
【００２６】
上記のアドレス信号マスク回路２２の構成は、ＦＩＦＯ２１のアドレス（ＦＩＦＯへのアクセスポイント）の下位２ビットが“００”である場合を想定している。仮に、ＦＩＦＯ２１のアドレス（ＦＩＦＯへのアクセスポイント）の下位２ビットが“０１”であるならば、ＡＮＤゲート２６の代わりにＮＡＮＤゲートを設ければよい。即ち、アドレス信号マスク回路２２は、アドレス信号の下位２ビットＡ［０］及びＡ［１］が、ＦＩＦＯアドレスの下位２ビットに等しくなるように設定する。
【００２７】
このような構成とすることにより、第１のマクロ１２から読み出した１つの３２ビットデータについて、前半の１６ビットを第２のマクロ２０のＦＩＦＯの固定アドレスに書き込み、後半の１６ビットも第２のマクロ２０のＦＩＦＯの固定アドレスに書き込むことができる。即ち、後半の１６ビットについてはＣＰＵコア１１から供給される書き込み先アドレスが増加してしまうが、本発明のアドレス信号マスク機能によりアドレス信号の下位ビットをマスクし所定のビット値に固定することで、ＦＩＦＯの固定アドレスを書き込み先として指定することができる。
【００２８】
このようにして本発明の第１の実施例においては、アドレス信号マスク回路２２によりアドレス信号の下位ビットをマスク（所定のビットに固定）することで、アドレス信号が自動的にインクリメントされても正しいＦＩＦＯアドレス（ＦＩＦＯへのアクセスポイント）にアクセスすることができる。従って、バス幅の異なる２つのチップセレクト領域にある２つのＦＩＦＯ間で、ＲＡＭ等のバッファを介在することなくＤＭＡ転送を正常に実行することが可能になる。
【００２９】
図３は、図２の構成におけるＤＭＡ転送処理の流れを示すフローチャートである。図４は、図２の構成におけるＤＭＡ転送処理における各信号のタイミングを示す信号タイミング図である。以下に、図２のＤＭＡ転送システムの動作について、図３及び図４を参照して説明する。
【００３０】
図３のステップＳ１において、ＤＭＡ転送の各条件が設定される。即ち、ＣＰＵコア１１のＣＰＵ１５（図１）が、ＤＭＡの転送元アドレス、転送先アドレス、転送データサイズ、転送元アドレスの増減設定、転送先アドレスの増減設定等を指定して、ＤＭＡコントローラ１６（図１）に対してＤＭＡ転送の設定をする。
【００３１】
ステップＳ２において、マスクビット設定処理（マスクイネーブル）が行われる。即ち、図４に示されるように、ＣＰＵコア１１からアドレスバスにアドレス信号ＡＤＲとしてマスク設定レジスタアドレスを送出するとともに、データバスにデータ信号ＤＡＴＡとしてマスクデータを送出する。また更に、ＣＰＵコア１１から送出する書き込み信号ＷＲをアサート（ＨＩＧＨ）状態とするとともに、ＣＰＵコア１１から送出する第２のマクロ２０に対するチップセレクト信号ＣＳ２をアサート（ＨＩＧＨ）状態とする。これにより、第２のマクロ２０のマスク設定レジスタ２３にマスクビットが設定される。図４に示すマスク信号のＨＩＧＨ状態は、アドレス信号マスク回路２２がマスク状態になったことを模式的に示している。
【００３２】
ステップＳ３において、ＤＭＡ設定によりＤＭＡ転送動作を起動する。具体的には、例えばＣＰＵコア１１のＣＰＵ１５（図１）が、ステップＳ１で設定したＤＭＡチャネルに対してチャネルマスクを解除すること等により、ＤＭＡコントローラ１６（図１）にＤＭＡ転送を起動させる。
【００３３】
ＤＭＡ転送が起動されると、図４に示されるように、ＣＰＵコア１１からアドレスバスにアドレス信号ＡＤＲとして第１のマクロ１２（３２ビット）のＦＩＦＯアドレスを送出するとともに、読み出し信号ＲＤをアサート（ＨＩＧＨ）状態とし、更に第１のマクロ１２に対するチップセレクト信号ＣＳ１をアサート（ＨＩＧＨ）状態とする。これにより、第１のマクロ１２のＦＩＦＯからデータバスに３２ビットデータが読み出される。
【００３４】
その後、ＣＰＵコア１１からアドレスバスにアドレス信号ＡＤＲとして第２のマクロ２０（１６ビット）のＦＩＦＯアドレスを送出するとともに、書き込み信号ＷＲをアサート（ＨＩＧＨ）状態とし、更に第２のマクロ２０に対するチップセレクト信号ＣＳ２をアサート（ＨＩＧＨ）状態とする。またアドレスバスには、第１のマクロ１２から読み出した３２ビットデータの前半の部分を、１６ビットデータとして供給する。これにより、第２のマクロ２０のＦＩＦＯに、第１のマクロ１２から読み出した３２ビットデータの前半の部分の１６ビットデータが書き込まれる。
【００３５】
更にもう一度、ＣＰＵコア１１からアドレスバスにアドレス信号ＡＤＲとして第２のマクロ２０（１６ビット）のＦＩＦＯアドレスを送出するとともに、書き込み信号ＷＲをアサート（ＨＩＧＨ）状態とし、更に第２のマクロ２０に対するチップセレクト信号ＣＳ２をアサート（ＨＩＧＨ）状態とする。またアドレスバスには、第１のマクロ１２から読み出した３２ビットデータの後半の部分を、１６ビットデータとして供給する。これにより、第２のマクロ２０のＦＩＦＯに、第１のマクロ１２から読み出した３２ビットデータの後半の部分の１６ビットデータが書き込まれる。
【００３６】
ステップＳ４において、ＤＭＡ転送が終了する。ＣＰＵコア１１内部において、ポーリング或いは割り込みによりＣＰＵ１５がＤＭＡ転送の終了を検出し、ＤＭＡコントローラ１６の内部レジスタに示される終了ステータスの確認などを行う。
【００３７】
ステップＳ５において、マスクビット設定処理（マスクディセーブル）が行われる。即ち、ＣＰＵコア１１からアドレスバスにアドレス信号ＡＤＲとしてマスク設定レジスタアドレスを送出するとともに、データバスにデータ信号ＤＡＴＡとしてマスクデータを送出する。また更に、ＣＰＵコア１１から送出する書き込み信号ＷＲをアサート状態とするとともに、ＣＰＵコア１１から送出する第２のマクロ２０に対するチップセレクト信号ＣＳ２をアサート状態とする。これにより、第２のマクロ２０のマスク設定レジスタ２３のマスクビットを解除する。
【００３８】
このようにマスクビットを解除しておかないと、その後第２のマクロ２０にアクセスするときに、アドレスビットの下位ビットがマスクされたままとなり、正常なアクセス動作を実行することができない。従って、図３に示すように、ＤＭＡ転送が終了した後に、マスクビットを解除しておく必要がある。
【００３９】
なお図２の構成では、アドレス信号マスク回路２２及びマスク設定レジスタ２３は、第２のマクロ２０の一部であるとして説明したが、本発明は、この構成に限られるものではない。第２のマクロの外部にアドレス信号マスク機能を有した回路を設け、第２のマクロの外部において、アドレスバスのアドレス信号をマスクするような構成としてもよい。
【００４０】
図５は、第２のマクロの外部にアドレス信号マスク機能を有した回路を設けた構成を示す図である。図５において、第１のマクロ１２及びＲＡＭ１３は図示を省略してある。
【００４１】
図５の構成では、ＣＰＵコア１１と第２のマクロとの間にアドレス信号マスク回路３２が設けてある。この場合の転送先の第２のマクロは、図１に示す従来技術の第２のマクロ１４であってよい。
【００４２】
アドレス信号マスク回路３２は、一例としてＡＮＤゲート３５及び３６を含む。マスク設定レジスタ３３のマスクビット設定に応じて、アドレス信号マスク回路３２は、アドレスバスのアドレス信号の下位２ビットＡ［０］及びＡ［１］をマスクする。即ち、アドレス信号マスク回路３２は、アドレス信号の下位２ビットＡ［０］及びＡ［１］が、第２のマクロ１４のＦＩＦＯアドレスの下位２ビットに等しくなるように設定する。
【００４３】
このような構成によっても図２の構成と同様の効果を得ることができる。即ち、バス幅の異なる２つのチップセレクト領域にある２つのＦＩＦＯ間で、ＲＡＭ等のバッファを介在することなくＤＭＡ転送を正常に実行することが可能になる。
【００４４】
図６は、本発明によるＤＭＡ転送システムの構成の第２の実施例を示す図である。図６において、図５と同一の構成要素は同一の番号で参照する。
【００４５】
図６の構成では、図５の構成のマスク設定レジスタ３３の代わりにマスク信号生成デコード回路４０が設けられている。マスク信号生成デコード回路４０は、第２のマクロ１４からＣＰＵコア１１に送出されるＤＭＡ転送リクエスト信号ＤＲＥＱと、ＣＰＵコア１１から第２のマクロ１４に送出されるＤＭＡ転送信号（ＤＭＡアクノレッジ信号）ＤＡＣＫと、ＣＰＵコア１１から第２のマクロ１４に送出されるチップセレクト信号ＣＳ２とを受け取り、これらの信号をデコードすることにより、アドレス信号マスク回路３２にマスク動作を実行させる信号を生成する。
【００４６】
一般にＤＭＡ転送の起動には、外部リクエストモードにより起動と、内部オートリクエストによる起動とがある。内部オートリクエストは、ＤＭＡ転送リクエストを自ら送出できないマクロ間でのデータ転送の場合等に使用され、ＣＰＵコア１１内部でＤＭＡ起動のリクエストを発生させる。これに対して外部リクエストモードでは、例えば第２のマクロ１４等の外部マクロからＣＰＵコア１１に対してＤＭＡ転送リクエストをアサートすることで、ＤＭＡ転送が起動される。図６の構成は、外部リクエストモードによりＤＭＡ転送を起動する場合に適用可能な構成である。
【００４７】
図７は、図６の構成におけるＤＭＡ転送処理における各信号のタイミングを示す信号タイミング図である。以下に、図６のＤＭＡ転送システムの動作について、図７を参照して説明する。
【００４８】
まずＣＰＵコア１１からアドレスバスにアドレス信号ＡＤＲとしてＤＭＡ起動アドレス（この場合は第２のマクロ１４内の所定のアドレス）を送出するとともに、データバスにデータ信号ＤＡＴＡとして起動データを送出する。また更に、ＣＰＵコア１１から送出する書き込み信号ＷＲをアサート（ＨＩＧＨ）状態とするとともに、ＣＰＵコア１１から送出する第２のマクロ１４に対するチップセレクト信号ＣＳ２をアサート（ＨＩＧＨ）状態とする。これに応答して、第２のマクロ１４がＤＭＡ起動元として、ＤＭＡ転送リクエスト信号ＤＲＥＱをアサート（ＨＩＧＨ）状態にする。
【００４９】
ＤＭＡ転送が起動されると、ＣＰＵコア１１からアドレスバスにアドレス信号ＡＤＲとして第１のマクロ１２（３２ビット）のＦＩＦＯアドレスを送出するとともに、読み出し信号ＲＤをアサート（ＨＩＧＨ）状態とし、更に第１のマクロ１２に対するチップセレクト信号ＣＳ１をアサート（ＨＩＧＨ）状態とする。また更に、ＣＰＵコア１１はＤＭＡ転送動作の実行を示すＤＭＡ転送信号ＤＡＣＫをアサート（ＨＩＧＨ）状態とする。これにより、第１のマクロ１２のＦＩＦＯからデータバスに３２ビットデータが読み出される。
【００５０】
その後、ＣＰＵコア１１からアドレスバスにアドレス信号ＡＤＲとして第２のマクロ１４（１６ビット）のＦＩＦＯアドレスを送出するとともに、書き込み信号ＷＲをアサート（ＨＩＧＨ）状態とし、更に第２のマクロ１４に対するチップセレクト信号ＣＳ２をアサート（ＨＩＧＨ）状態とする。更に、ＣＰＵコア１１はＤＭＡ転送動作の実行を示すＤＭＡ転送信号ＤＡＣＫをアサート（ＨＩＧＨ）状態とする。またアドレスバスには、第１のマクロ１２から読み出した３２ビットデータの前半の部分を、１６ビットデータとして供給する。これにより、第２のマクロ２０のＦＩＦＯに、第１のマクロ１２から読み出した３２ビットデータの前半の部分の１６ビットデータが書き込まれる。
【００５１】
アドレス信号マスク回路３２は、ＤＭＡ転送リクエスト信号ＤＲＥＱ、ＤＭＡ転送信号ＤＡＣＫ、及びチップセレクト信号ＣＳ２のＡＮＤを取ることにより、アサート（ＨＩＧＨ）状態のマスク信号を生成する。マスク信号のＨＩＧＨ状態は、アドレス信号マスク回路３２のマスク状態に対応する。具体的には、このマスク信号を反転して、アドレス信号マスク回路３２のＡＮＤゲート３５及び３６に供給すればよい。
【００５２】
更にもう一度、ＣＰＵコア１１からアドレスバスにアドレス信号ＡＤＲとして第２のマクロ１４（１６ビット）のＦＩＦＯアドレスを送出するとともに、書き込み信号ＷＲをアサート（ＨＩＧＨ）状態とし、更に第２のマクロ１４に対するチップセレクト信号ＣＳ２をアサート（ＨＩＧＨ）状態とする。更に、ＣＰＵコア１１はＤＭＡ転送動作の実行を示すＤＭＡ転送信号ＤＡＣＫをアサート（ＨＩＧＨ）状態とする。またアドレスバスには、第１のマクロ１２から読み出した３２ビットデータの後半の部分を、１６ビットデータとして供給する。これにより、第２のマクロ１４のＦＩＦＯに、第１のマクロ１２から読み出した３２ビットデータの後半の部分の１６ビットデータが書き込まれる。この際、マスク信号はＨＩＧＨ状態となっており、アドレス信号マスク回路３２がマスク状態になっている。
【００５３】
このようにして本発明の第２の実施例においては、アドレス信号マスク回路３２によりアドレス信号の下位ビットをマスク（所定のビットに固定）することで、アドレス信号が自動的にインクリメントされても正しいＦＩＦＯアドレス（ＦＩＦＯへのアクセスポイント）にアクセスすることができる。従って、バス幅の異なる２つのチップセレクト領域にある２つのＦＩＦＯ間で、ＲＡＭ等のバッファを介在することなくＤＭＡ転送を正常に実行することが可能になる。
【００５４】
なお図６の構成では、アドレス信号マスク回路３２及びマスク信号生成デコード回路４０は、第２のマクロ１４の外部に設けられるものであるとして説明したが、本発明は、この構成に限られるものではない。第２のマクロの内部にこれらの回路と同等の機能を有した回路を設け、第２のマクロの内部において、アドレスバスのアドレス信号をマスクするような構成としてもよい。
【００５５】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【図面の簡単な説明】
【００５６】
【図１】従来のＤＭＡ転送システムの構成の一例を示す図である。
【図２】本発明によるＤＭＡ転送システムの構成の第１の実施例を示す図である。
【図３】図２の構成におけるＤＭＡ転送処理の流れを示すフローチャートである。
【図４】図２の構成におけるＤＭＡ転送処理における各信号のタイミングを示す信号タイミング図である。
【図５】第２のマクロの外部にアドレス信号マスク機能を有した回路を設けた構成を示す図である。
【図６】本発明によるＤＭＡ転送システムの構成の第２の実施例を示す図である。
【図７】図６の構成におけるＤＭＡ転送処理における各信号のタイミングを示す信号タイミング図である。
【符号の説明】
【００５７】
１１  ＣＰＵコア
１２  第１のマクロ
１３  ＲＡＭ
１４  第２のマクロ
１５  ＣＰＵ
１６  ＤＭＡコントローラ
１７  バスコンバータ
１８  外部バスインターフェース
２０  第２のマクロ
２１  ＦＩＦＯ
２２  アドレス信号マスク回路
２３  マスク設定レジスタ
【図１】
2006243811.tif 000003
【図２】
2006243811.tif 000004
【図３】
2006243811.tif 000005
【図４】
2006243811.tif 000006
【図５】
2006243811.tif 000007
【図６】
2006243811.tif 000008
【図７】
2006243811.tif 000009