(57)【特許請求の範囲】
【請求項１】
ＣＰＵと、
マスタ動作モジュールと、
前記マスタ動作モジュールから直接アクセス可能な内部メモリと、
前記マスタ動作モジュールから直接アクセスできない外部メモリへのアクセスを行い、前記内部メモリに前記外部メモリに記憶されたデータを転送するデータ転送部と、を備え、
前記内部メモリは、
ページ単位で論理的に分割した２以上のページ記憶領域と、
前記データ転送部により前記外部メモリから転送されたデータを、前記内部メモリのアドレスに変換して、前記２以上のページ記憶領域に書き込む書き込みアドレス変換部と、
前記マスタ動作モジュールの読み出し動作に応じて、前記マスタ動作モジュールの読み出しアドレスを前記内部メモリのアドレスに変換して、前記２以上のページ記憶領域に記憶されたデータを読み出す読み出しアドレス変換部と、
前記２以上のページ記憶領域のそれぞれに対応した状態フラグを有する状態遷移制御部と、を備え、
前記読み出しアドレス変換部が前記書き込みアドレス変換部による書き込みが行われたページ記憶領域に対して読み出し動作を行い、前記書き込みアドレス変換部が前記読み出しアドレス変換部による読み出し動作が終了したページ記憶領域に対して書き込み動作を行うように制御することを特徴とするデータ処理装置。
【請求項２】
前記データ転送部は、複数の前記外部メモリから並行してデータを転送する複数のデータ転送器を備え、
前記書き込みアドレス変換部は、前記複数のデータ転送器に対応した複数の書き込みアドレス変換機構を備える請求項１記載のデータ処理装置。
【請求項３】
前記データ転送部は、複数の前記外部メモリから並行してデータを転送する複数のデータ転送器を備え、
前記書き込みアドレス変換部は、前記複数のデータ転送器に対応した複数のアドレス範囲レジスタを備え、
各アドレス範囲レジスタは、対応するデータ転送器によりデータが転送される前記外部メモリのアドレス範囲を記憶し、
前記書き込みアドレス変換部は、前記アドレス範囲から前記外部メモリを特定する請求項１記載のデータ処理装置。
【請求項４】
前記マスタ動作モジュールは、前記内部メモリから並行してデータを読み取る複数のマスタ動作器を備え、
前記読み出しアドレス変換部は、前記複数のマスタ動作器に対応した複数の読み出しアドレス変換機構を備える請求項１から３のいずれか記載のデータ処理装置。
【請求項５】
前記読み出しアドレス変換部は、前記マスタ動作モジュールが前回アクセスしたアドレス情報を記憶する前回アドレスレジスタを備え、
前記前回アクセスしたアドレス情報と前記マスタ動作モジュールによる読み出しアドレスを比較して、前記マスタ動作モジュールが前記内部メモリに書き込まれたデータを読み取らずに次のページにアクセスするページの読み飛ばしを行ったことを検出した時には、読み飛ばされたページを書き込み待ちの状態に遷移させる請求項１から４のいずれか記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵに加えて特定の処理を高速に実行するアクセラレータを含むデータ処理装置に関する。
【背景技術】
【０００２】
ＣＰＵ、ＲＯＭ、ＲＡＭなどのモジュールを接続したデータ処理装置（コンピュータシステム）およびそれらの機能を１チップに搭載した大規模ＳｏＣ（シリコン・オン・チップ）では、アクセラレータ(Accelerator)を組み合わせることが行われる。アクセラレータは、画像処理などの特定の処理を高速に実行するように設計された専用のプロセッサであり、ＣＰＵの負担を軽減して特定の処理を実行する場合の処理速度を向上する。
【０００３】
アクセラレータなどのマスタ動作を行うマスタ動作モジュールの記憶領域に対するアクセス方法（プロトコル）が、ＣＰＵなどの他の要素のアクセスプロトコルと相違する場合がある。このような場合、マスタ動作モジュールは、ＮＡＮＤ  ＲＯＭなどで構成される外部メモリなどの通常の記憶領域に直接アクセスすることができない。
【０００４】
このような場合、ＣＰＵ(Central Processing Unit)やＤＭＡＣ(Direct Memory Access Control)などの外部メモリに対してアクセスを行うことが可能なモジュールがマスタとなって対象データを外部メモリから、専用の内部メモリ領域に転送する方式が取られる。以下、アクセラレータをマスタ動作モジュールとして使用し、ＤＭＡＣがデータ転送を行う例を説明するが、これに限定されないのはいうまでもない。
【０００５】
図１は、このようなアクセス方式を実行するデータ処理装置の構成とデータのアクセス経路を示す図である。
【０００６】
図１に示すように、データ処理装置１０は、内部バス１１と、ＣＰＵ１２と、ＤＭＡＣ１３と、アクセラレータ（ＡＣＣ）１４と、内部メモリ１５と、メモリコントローラ１６と、を有する。データ処理装置１０は、例えばＳｏＣチップとして実現される。図１では、外部に設けられる動作用メモリ１７がデータ処理装置１０の内部バス１１に接続されるが、動作用メモリ１７をＳｏＣチップ内に設けることもある。
【０００７】
以下、データ処理装置１０をＳｏＣチップとして実現した例を説明する。しかし、データ処理装置１０は、ＣＰＵ１２と、ＤＭＡＣ１３と、アクセラレータ（ＡＣＣ）１４と、内部メモリ１５と、メモリコントローラ１６の各モジュールを内部バス１１に対応する配線で接続する形で実現することも可能である。
【０００８】
外部メモリ１８は、ＡＣＣ１４で処理するデータを記憶したメモリであり、メモリコントローラ１６に接続される。ＡＣＣ１４のアクセスプロトコルは、外部メモリ１８のアクセスプロトコルと異なるため、ＡＣＣ１４は外部メモリ１８に直接アクセスすることはできない。図１の例では、ＤＭＡＣ１３がメモリコントローラ１６を介して外部メモリ１８からデータを読出し、内部メモリ１５にシーケンシャルなアドレスで展開して、アクセラレータ１４がアクセス可能な形で書き込む。ＡＣＣ１４は、内部メモリ１５に記憶されたデータを読み取る。
【０００９】
しかし、この方式では、アクセラレータ（ＡＣＣ）１４の処理に必要なデータ全てを内部メモリ１５に転送する必要があり、データ処理装置１０に必要なメモリ容量が増加してしまう、という問題があった。
【００１０】
そこで、内部メモリ１５をＦＩＦＯメモリで構成することによって内部メモリ１５の容量を削減するという手法が使用される。この場合、外部メモリ１８から内部メモリ１５へのデータ転送が順次行われ、ＡＣＣ１４は内部メモリ１５からデータを読み取る。ＡＣＣ１４による読み取りが行われた領域は開放され、その領域に新たなデータ転送が行われる。これにより、転送されたデータは、常に転送順に読み取られ、内部メモリ１５の空き容量を埋めるように順次データが転送される。
【００１１】
しかし、このＦＩＦＯメモリを使用した方式では、アクセラレータは、転送されたデータをすべて順番にアクセスする必要があり、画像処理などで途中のデータを飛ばして必要なデータにアクセスすることができない。言い換えれば、アクセラレータが必要なデータのみを取得することができない、という問題があった。  
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開平１１−１６７４８０号公報
【特許文献２】特開２００１−９２７７８号公報
【特許文献３】特表２００２−５１３９５５号公報
【特許文献４】特開２００５−４４３６１号公報
【特許文献５】特開平９−２１２６６１号公報
【特許文献６】特開平９−１９８３０１号公報
【特許文献７】特開平７−２０８３３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
マスタ動作モジュールが、内部メモリにアクセスする場合のアクセス方法を多様化して必要なデータのみを読み取れるようにすると共に、内部メモリの容量を低減することが望まれていた。
【課題を解決するための手段】
【００１４】
発明の一観点によれば、ＣＰＵと、マスタ動作モジュールと、マスタ動作モジュールから直接アクセス可能な内部メモリと、マスタ動作モジュールから直接アクセスできない外部メモリへのアクセスを行い、内部メモリに前記外部メモリに記憶されたデータを転送するデータ転送部と、を備え、内部メモリは、ページ単位で論理的に分割した２以上のページ記憶領域と、データ転送部により外部メモリから転送されたデータを、内部メモリのアドレスに変換して、２以上のページ記憶領域に書き込む書き込みアドレス変換部と、マスタ動作モジュールの読み出し動作に応じて、マスタ動作モジュールの読み出しアドレスを内部メモリのアドレスに変換して、２以上のページ記憶領域に記憶されたデータを読み出す読み出しアドレス変換部と、２以上のページ記憶領域のそれぞれに対応した状態フラグを有する状態遷移制御部と、を備え、読み出しアドレス変換部が書き込みアドレス変換部による書き込みが行われたページ記憶領域に対して読み出し動作を行い、書き込みアドレス変換部が読み出しアドレス変換部による読み出し動作が終了したページ記憶領域に対して書き込み動作を行うように制御することを特徴とするデータ処理装置が提供される。
【発明の効果】
【００１５】
上記の観点によれば、マスタ動作モジュールがアクセスプロトコルの異なるメモリに記憶されたデータを読み取るための内部メモリを小さな容量で実現でき、マスタ動作モジュールアクセス方法を多様化できる。
【図面の簡単な説明】
【００１６】
【図１】図１は、異なるプロトコルでのアクセスを可能にするために内部メモリを介してアクセスを実効するデータ処理装置の構成とデータのアクセス経路を示す図である。
【図２】図２は、第１実施形態のデータ処理装置の構成とデータのアクセス経路を示す図である。
【図３】図３は、第１実施形態における内部メモリの構成を示す図である。
【図４】図４は、第１実施形態の内部メモリにおいて、ＤＭＡＣがメモリコントローラを介して外部メモリのデータを内部メモリに書き込み、ＡＣＣが内部メモリに転送されたデータを読み取るアクセス動作を説明する図である。
【図５】図５は、第１実施形態において、内部メモリのアクセス動作における書き込みデータおよび読み出しデータの変化を示すタイムチャートである。
【図６】図６は、第１実施形態において、内部メモリコアのページ領域の状態遷移を示す図である。
【図７】図７は、第１実施形態において、ＤＭＡＣにより転送されたデータの内部メモリ（内部メモリコアのページ領域）への書き込み処理を示すフローチャートである。
【図８】図８は、第１実施形態において、ＡＣＣにより内部メモリ（内部メモリコアのページ領域）からのデータの読み出し処理を示すフローチャートである。
【図９】図９は、第２実施形態のデータ処理装置の構成とデータのアクセス経路を示す図である。
【図１０】図１０は、第２実施形態における内部メモリの構成を示す図である。
【図１１】図１１は、第２実施形態の内部メモリにおいて、２個のＤＭＡＣが、メモリコントローラを介して２個の外部メモリのデータを内部メモリに書き込み、ＡＣＣが内部メモリに転送されたデータを読み取るアクセス動作を説明する図である。
【図１２】図１２は、第２実施形態において、内部メモリのアクセス動作における書き込みデータおよび読み出しデータの変化を示すタイムチャートである。
【図１３】図１３は、第２実施形態において、転送されたデータの内部メモリ（内部メモリコアのページ領域）への書き込み処理を示すフローチャートである。
【図１４】図１４は、第３実施形態における内部メモリの構成を示す図である。
【図１５】図１５は、第３実施形態の内部メモリにおいて、２個のＤＭＡＣが、メモリコントローラを介して２個の外部メモリのデータを内部メモリに書き込み、ＡＣＣが内部メモリに転送されたデータを読み取るアクセス動作を説明する図である。
【図１６】図１６は、第３実施形態において、転送されたデータの内部メモリ（内部メモリコアのページ領域）への書き込み処理を示すフローチャートである。
【図１７】図１７は、第４実施形態のデータ処理装置の構成とデータのアクセス経路を示す図である。
【図１８】図１８は、第４実施形態における内部メモリの構成を示す図である。
【図１９】図１９は、第４実施形態の内部メモリにおいて、ＤＭＡＣが、メモリコントローラを介して外部メモリのデータを内部メモリに書き込み、２個のＡＣＣが内部メモリに転送されたデータを読み取るアクセス動作を説明する図である。
【図２０】図２０は、第４実施形態において、内部メモリのアクセス動作における書き込みデータおよび読み出しデータの変化を示すタイムチャートである。
【図２１】図２１は、第４実施形態において、２個のＡＣＣにより内部メモリ（内部メモリコアのページ領域）からのデータの読み出し処理を示すフローチャートである。
【図２２】図２２は、第５実施形態における内部メモリの構成を示す図である。
【図２３】図２３は、第５実施形態の内部メモリにおいて、ＤＭＡＣが、メモリコントローラを介して外部メモリのデータを内部メモリに書き込み、ＡＣＣが内部メモリに転送されたデータを読み取るアクセス動作を説明する図である。
【図２４】図２４は、第４実施形態において、ＡＣＣにより内部メモリ（内部メモリコアのページ領域）からのデータの読み出し処理を示すフローチャートである。
【図２５】図２０は、第４実施形態において、内部メモリに書き込まれたデータをすべて読み取らずに途中で読み取りを停止した場合も問題を説明するタイムチャートである。
【図２６】図２６は、第６実施形態のデータ処理装置の構成とデータのアクセス経路を示す図である。
【図２７】図２７は、第６実施形態における内部メモリの構成を示す図である。
【図２８】図２８は、第６実施形態において、内部メモリコアのページ領域の状態遷移を示す図である。
【図２９】図２９は、第６実施形態において、転送されたデータの内部メモリ（内部メモリコアのページ領域）への書き込み処理を示すフローチャートである。
【図３０】図３０は、第６実施形態において、ＡＣＣにより内部メモリ（内部メモリコアのページ領域）からのデータの読み出し処理を示すフローチャートである。
【図３１】図３１は、第６実施形態において、ＡＣＣによる読み出し処理が完了した時に行う処理を示すフローチャートである。
【図３２】図３２は、第７実施形態における内部メモリの構成を示す図である。
【図３３】図３３は、第７実施形態において、内部メモリコアのページ領域の状態遷移を示す図である。
【図３４】図３４は、第７実施形態において、内部メモリのアクセス動作における書き込みデータおよび読み出しデータの変化を示すタイムチャートである。
【図３５】図３５は、第７実施形態において、ＡＣＣにより内部メモリ（内部メモリコアのページ領域）からのデータの読み出し処理を示すフローチャートである。
【発明を実施するための形態】
【００１７】
図２は、第１実施形態のデータ処理装置１０Ａの構成とデータのアクセス経路を示す図である。
【００１８】
図２に示すように、データ処理装置１０Ａは、内部バス１１と、ＣＰＵ１２と、ＤＭＡＣ１３と、アクセラレータ（ＡＣＣ）１４と、メモリコントローラ１６と、内部メモリ２０Ａと、を有する。データ処理装置１０Ａは、例えばＳｏＣチップとして実現される。図２では、外部に設けられる動作用メモリ１７がデータ処理装置１０の内部バス１１に接続されるが、動作用メモリ１７をＳｏＣチップ内に設けてもよい。また、第１実施形態では、データ処理装置１０Ａを、ＳｏＣチップとして実現した例を示したが、データ処理装置１０Ａは、ＣＰＵ１２と、ＤＭＡＣ１３と、アクセラレータ（ＡＣＣ）１４と、メモリコントローラ１６と、内部メモリ２０Ａの各モジュールを内部バス１１に対応する配線で接続する形で実現してもよい。
【００１９】
外部メモリ１８は、ＡＣＣ１４で処理するデータを記憶したメモリであり、メモリコントローラ１６に接続される。ＡＣＣ１４のアクセスプロトコルは、外部メモリ１８のアクセスプロトコルと異なるため、ＡＣＣ１４は外部メモリ１８に直接アクセスすることはできない。第１実施形態のデータ処理装置１０Ａでは、ＤＭＡＣ１３がメモリコントローラ１６を介して外部メモリ１８からデータを読出し、内部メモリ２０Ａにシーケンシャルなアドレスで展開して、アクセラレータ１４がアクセス可能な形で書き込む。ＡＣＣ１４は、内部メモリ２０Ａに記憶されたデータを読み取る。なお、ＤＭＡＣ１３を使用せずに、ＣＰＵ１２が外部メモリ１８のデータを読み出して、内部メモリ２０Ａ書き込むことも可能である。
【００２０】
内部メモリ２０Ａは、図２に示すように、内部メモリコア２１と、書き込みアドレス変換機構２２と、読み出しアドレス変換機構２３と、状態遷移制御部２４と、を有する。書き込みアドレス変換機構２２は、ＤＭＡＣ１３が出力する書き込みアドレスを内部メモリコア２１のアドレスに変換し、内部メモリコア２１の変換したアドレスに、転送された書き込みデータを書き込む。読み出しアドレス変換機構２３は、ＡＣＣ１４が出力する読み出しアドレスを内部メモリコア２１のアドレスに変換し、内部メモリコア２１の変換したアドレスからデータを読み出す。
【００２１】
図３は、第１実施形態における内部メモリ２０Ａの構成を示す図である。
【００２２】
内部メモリコア２１は、複数のページ３１Ａ〜３１Ｄで構成され、書き込みアドレス変換機構２２および読み出しアドレス変換機構２３により内部メモリアドレスでアクセスされる。内部コアメモリ２１は、後述するように複数（図３では４個）のページ領域３１Ａ〜３１Ｄに分割される。各ページ領域は、外からは、独立してアクセス可能であり、あるページ領域に書き込みまたは読み出しを行っている時に、他のページ領域に書き込みまたは読み出しを行うことが可能であるように見える。このような動作が可能なメモリは、高速のアクセス可能なメモリを使用すればバス調停回路などを設けることで実現できるが、例えば、ダブルバッファ構成や２ポートメモリを使用して実現することも可能である。
【００２３】
書き込みアドレス変換機構２２は、書き込み動作制御部４１と、内部メモリ容量レジスタ４２と、ページ容量レジスタ４３と、を有する。内部メモリ容量レジスタ４２は、内部メモリコア２１の全体容量の情報を記憶し、ページ容量レジスタ４３は、ページごとの容量の情報を記憶する。例えば、ＣＰＵ１２は、ＡＣＣ１４が処理において使用する容量に応じて内部メモリコア２１の値を、ＡＣＣ１４が処理におけるページの大きさに応じてページ容量レジスタ４３の値を、決定して設定する。これにより、ハードウェアの再設計を行うこと無しに、ページの大きさやページ数を任意に設定できる。
【００２４】
書き込み動作制御部４１は、ＤＭＡＣ１３からの書き込みアドレス、内部メモリ容量レジスタ４２とページ容量レジスタ４３の値、および状態フラグに基づいて、内部メモリ書き込みアドレスを生成して内部メモリコア２１に出力する。ＤＭＡＣ１３からの書き込みデータは、内部メモリ書き込みアドレスに同期して内部メモリコア２１に出力される。さらに、書き込み動作制御部４１は、書き込みアドレス、内部メモリ容量レジスタ４２とページ容量レジスタ４３の値、および状態フラグに基づいて、書き込みページ指示信号、書き込み(Write)通知および書き込み(Write)完了通知を生成して、状態遷移制御部２４に出力する。状態フラグは、状態遷移制御部２４から出力される。
【００２５】
読み出しアドレス変換機構２３は、読み出し動作制御部５１と、内部メモリ容量レジスタ５２と、ページ容量レジスタ５３と、を有する。内部メモリ容量レジスタ５２およびページ容量レジスタ５３は、内部メモリ容量レジスタ４２およびページ容量レジスタ４３と同じ値を記憶しており、省くことも可能である。また、内部メモリ容量レジスタ４２と５２およびページ容量レジスタ４３と５３の値が固定であれば、内部メモリ容量レジスタ４２と５２およびページ容量レジスタ４３と５３は、設ける必要がない。
【００２６】
読み出し動作制御部４１は、ＡＣＣ１４からの読み出しアドレス、内部メモリ容量レジスタ５２とページ容量レジスタ５３の値、および状態フラグに基づいて、内部メモリ読み出しアドレスを生成して内部メモリコア２１に出力する。内部メモリ読み出しアドレスに応じて内部メモリコア２１から読み出された読み出したデータは、ＡＣＣ１４へ送信される。さらに、読み出し動作制御部５１は、読み出しアドレス、内部メモリ容量レジスタ５２とページ容量レジスタ５３の値、および状態フラグに基づいて、読み出しページ指示信号、読み出し (Read)通知および読み出し(Read)完了通知を生成して、状態遷移制御部２４に出力する。
【００２７】
状態遷移制御部２４は、内部メモリコア２１の複数のページ３１Ａ〜３１Ｄに対応してページごとの状態フラグ６１Ａ〜６１Ｄを有し、フラグに基づいて内部メモリコア２１へのアクセスを制御する。
【００２８】
図４は、第１実施形態の内部メモリ２０Ａにおいて、ＤＭＡＣ１３がメモリコントローラ１６を介して外部メモリ１８のデータを内部メモリ２０Ａに書き込み、ＡＣＣ１４が内部メモリ２０Ａに転送されたデータを読み取るアクセス動作を説明する図である。図４では、内部メモリコア２１の２ページ分の領域３１Ａと３１Ｂが使用される例を示している。
【００２９】
まず、ＤＭＡＣ１３による転送動作、すなわち内部メモリ２０Ａへの書き込み動作を説明する。図４に示すように、外部メモリ１８は、ＡＣＣ１４が処理する複数ページ（ここでは８ページ分）のデータを記憶している。ＤＭＡＣ１３は、外部メモリ１８に記憶されているデータをメモリコントローラ１６を介して１ページ目から順番に読み出し、内部メモリ２０Ａの書き込みアドレス変換機構２２にダイレク・メモリ・アクセス(DMAC)で転送する。書き込みアドレス変換機構２２は、ＤＭＡＣ１３からの書き込みアドレス、内部メモリ容量レジスタ４２とページ容量レジスタ４３の値、および状態フラグに基づいて、内部メモリ書き込みアドレスに変換するアドレス変換を行う。さらに、書き込みアドレス変換機構２２は、内部メモリ書き込みアドレスから、内部メモリコア２１内で該当するページ領域を割り出し、そのページの状態フラグの確認を行い、書き込み不可の場合は可能になるまで待機し、書き込み可能な場合は書き込みデータの書き込みを行う。書き込みアドレス変換機構２２は、内部メモリコア２１の書き込みを行う時には、書き込み(Write)通知を状態遷移制御部２４に出力する。さらに、書き込みアドレス変換機構２２は、そのページの最終アドレスへの書き込みを行った場合は、書き込み(Write)完了通知を状態遷移制御部２４に出力する。状態遷移制御部２４は、Write完了通知を受信すると、そのページの状態フラグを”読み出し(Read)待ち”へと遷移させる。図４では、１ページ目の領域３１Ａの書き込みが完了すると、対応する状態フラグ６１Ａが、”読み出し(Read)待ち”に遷移する。
【００３０】
その後、ＤＭＡＣ１３は、外部メモリ１８に記憶されている２ページ目のデータを、メモリコントローラ１６を介して読み出し、内部メモリ２０Ａの書き込みアドレス変換機構２２に転送し、上記と同様の処理で内部メモリコア２１に書き込む。
【００３１】
一方、ＡＣＣ１４は、１ページ目のデータの内部メモリ２０Ａへの書き込みが完了すると、１ページ目のデータの内部メモリ２０Ａからの読み出し動作を開始する。この間、ＤＭＡＣ１３は、２ページ目のデータの内部メモリ２０Ａの書き込みを並行に行う。
【００３２】
ＡＣＣ１４による内部メモリ２０Ａからのデータの読み出し動作を説明する。図４に示すように、まずＡＣＣ１４は、読み出しアドレス変換機構２３に読み出しアドレスを出力する。読み出しアドレス変換機構２３は、ＡＣＣ１４からの読み出しアドレス、内部メモリ容量レジスタ５２とページ容量レジスタ５３の値、および状態フラグに基づいて、内部メモリ読み出しアドレスに変換するアドレス変換を行う。さらに、読み出しアドレス変換機構２３は、内部メモリ読み出しアドレスから、内部メモリコア２１内で該当するページ領域を割り出し、そのページの状態フラグの確認を行い、読み出し不可の場合は可能になるまで待機し、読み出し可能な場合はデータの読み出しを行う。読み出しアドレス変換機構２３は、内部メモリコア２１からデータの読み出しを行う時には、読み出し(Read)通知を状態遷移制御部２４に出力する。さらに、読み出しアドレス変換機構２３は、そのページの最終アドレスからの読み出しを行った場合は、読み出し(Read)完了通知を状態遷移制御部２４に出力する。状態遷移制御部２４は、Read完了通知を受信すると、そのページの状態フラグを”書き込み(Write)待ち”へと遷移させる。図４では、１ページ目の領域３１Ａからのデータの読み出しが完了すると、対応する状態フラグ６１Ａが、”書き込み(Write)待ち”に遷移する。
【００３３】
その後、ＡＣＣ１４は、内部メモリ２０Ａに記憶されている２ページ目のデータの読み出し動作を、同様の処理で行う。
【００３４】
図５は、内部メモリ２０Ａのアクセス動作における書き込みデータおよび読み出しデータの変化を示すタイムチャートである。このタイムチャートは、ＤＭＡＣ１３による外部メモリ１８から内部メモリ２０Ａへのデータ転送速度と、ＡＣＣ１４による内部メモリ２０Ａからの読み出し速度がほぼ等しい場合の動作タイムチャートである。図５において、第１ページ領域および第２ページ領域の単線の四角形は、ＤＭＡＣ１３による内部メモリ２０Ａへの転送データの書き込みを示し、両端が２重線の四角形は、ＡＣＣ１４による内部メモリ２０Ａからのデータの読み出しを示す。
【００３５】
図５に示すように、ＤＭＡＣ１３による１ページ目のデータ転送および第１ページ領域３１Ａへの転送したデータの書き込みが行われる。１ページ目のデータ転送が完了すると、続いてＤＭＡＣ１３による２ページ目のデータ転送および第２ページ領域３１Ｂへの転送したデータの書き込みが行われる。１ページ目のデータ転送が完了した直後（ここでは、２ページ目のデータ転送が開始された後）ＡＣＣ１４による第１ページ領域３１Ａからの１ページ目のデータの読み出しが行われる。ＡＣＣ１４による１ページ目のデータの読み出しが完了する時には、ＤＭＡＣ１３による２ページ目のデータ転送は完了しており、ＤＭＡＣ１３による３ページ目のデータ転送および第１ページ領域３１Ａへの転送したデータの書き込みが開始されている。そこで、ＡＣＣ１４による第２ページ領域３１Ｂからの２ページ目のデータの読み出しが開始される。以下、このような動作を繰り返す。これにより、第１ページ領域３１Ａへの第２ページ領域３１Ｂへのデータ書き込みと読み出しが並行に交互に行われ、ＡＣＣ１４は、外部メモリ１８に記憶されたアクセス方式が異なる形で記憶されたデータを高速で読み出すことができる。
【００３６】
ＤＭＡＣ１３による外部メモリ１８から内部メモリ２０Ａへのデータ転送速度と、ＡＣＣ１４による内部メモリ２０Ａからの読み出し速度が、異なるのが一般的である。ＤＭＡＣ１３によるデータ転送速度の方が、ＡＣＣ１４による読み出し速度より速い場合、読み出しを行っていないページ領域に新たに転送されたデータを書き込む場合が起こり得る。逆に、ＤＭＡＣ１３によるデータ転送速度の方が、ＡＣＣ１４による読み出し速度より遅い場合、書き込みを行っていない（前のページのデータが書き込まれている）ページ領域からデータを読み出す場合が起こり得る。このような状態が発生すると、ＡＣＣ１４が正しいデータを読み取ることができない。
【００３７】
そこで、第１実施形態のデータ処理装置１０Ａでは、読み出しアドレス変換機構２３は、書き込みがまだ行われていないデータおよびページに対して読み出し動作が要求された場合には、その読み出し動作を待機させる。また、書き込みアドレス変換機構２２は、読み出しがまだ行われていないデータおよびページに対して書き込み動作が要求された場合には、その書き込み動作を待機させる。
【００３８】
図６は、第１実施形態のデータ処理装置１０Ａにおいて、内部メモリコア２１のページ領域３１Ａ〜３１Ｄの状態遷移を示す図である。とり得る状態は、書き込み(Write)待ち(00)、書き込み(Write)中(01)、読み出し (Read)待ち(10)および読み出し (Read)中(11)の４つの状態であり、動作に応じて図６のように変化する。動作が開始されると書き込み(Write)待ち(00)になり、次の動作が行われるまで、その状態で待機する。書き込み(Write)が行われると、書き込み(Write)中(01)に変化し、書き込み (Write)が完了するまでその状態を維持し、書き込み(Write)が完了すると(Read)待ち(10)になる。(Read)待ち(10)で、次の動作が行われるまで、その状態で待機し、読み出し(Read)が行われると、読み出し (Read)中(11) に変化し、読み出し(Read)が完了するまでその状態を維持し、読み出し(Read)が完了すると書き込み(Write)待ち(00)になる。
【００３９】
図７は、ＤＭＡＣ１３により転送されたデータの内部メモリ２０Ａ（内部メモリコア２１のページ領域３１Ａ〜３１Ｄ）への書き込み処理を示すフローチャートである。
【００４０】
ステップＳ１１では、ＤＭＡＣ１３が、内部メモリ２０Ａの書き込みアドレス変換機構２２への書き込み(Write)処理の発行を行う。
【００４１】
ステップＳ１２では、書き込みアドレス変換機構２２が、設定したレジスタ情報を基にして、入力された書き込みアドレスから内部メモリ書き込みアドレスと書き込みページを算出する。
【００４２】
ステップＳ１３では、書き込みアドレス変換機構２２が、書き込みページの状態がRead待ち（１０）またはRead中（１１）であるか判定する。書き込みページが、Read待ちまたはRead中である時には書き込みは行えないので、これらの状態が終了するまで待機し、これらの状態が終了したら次のステップに進む。
【００４３】
ステップＳ１４では、書き込みアドレス変換機構２２が、書き込みページの状態がWrite待ち（００）であるかを判定し、Write待ち（００）であればステップＳ１５に進み、Write待ち（００）でなければステップＳ１６に進む。
【００４４】
ステップＳ１５では、状態遷移制御部２４が、書き込みページの状態フラグをWrite中（０１）に遷移させる。
【００４５】
ステップＳ１６では、書き込みアドレス変換機構２２が、内部メモリコア２１の内部メモリ書き込みアドレスへの転送されたデータの書き込みを行う。
【００４６】
ステップＳ１７では、書き込みアドレス変換機構２２が、設定したレジスタ情報を基にして、内部メモリ書き込みアドレスが、書き込みページの最終アドレスであるかを判定し、最終アドレスであればステップＳ１８に進み、最終アドレスでなければ終了する。この後、同じ書き込みページに対して、ステップＳ１１からＳ１７が繰り返される。
【００４７】
ステップＳ１８では、状態遷移制御部２４が、書き込みページの状態フラグをRead待ち（１０）に遷移させ、終了する。
【００４８】
図８は、ＡＣＣ１４により内部メモリ２０Ａ（内部メモリコア２１のページ領域３１Ａ〜３１Ｄ）からのデータの読み出し処理を示すフローチャートである。
【００４９】
ステップＳ２１では、ＡＣＣ１４が、内部メモリ２０Ａの読み出しアドレス変換機構２３への読み出し(Read)処理の発行を行う。
【００５０】
ステップＳ２２では、読み出しアドレス変換機構２３が、設定したレジスタ情報を基にして、入力された読み出しアドレスから内部メモリ読み出しアドレスと読み出しページを算出する。
【００５１】
ステップＳ２３では、読み出しアドレス変換機構２３が、読み出しページの状態がWrite待ち（０１０）またはWrite中（０１）であるか判定する。読み出しページが、Write待ちまたはWrite中である時には読み出しは行えないので、これらの状態が終了するまで待機し、これらの状態が終了したら次のステップに進む。
【００５２】
ステップＳ２４では、読み出しアドレス変換機構２３が、読み出しページの状態がRead待ち（１０）であるかを判定し、Read待ち（１０）であればステップＳ２５に進み、Read待ち（１０）でなければステップＳ２６に進む。
【００５３】
ステップＳ２５では、状態遷移制御部２４が、読み出しページの状態フラグをRead中（１１）に遷移させる。
【００５４】
ステップＳ２６では、読み出しアドレス変換機構２３が、内部メモリコア２１の内部メモリ読み出しアドレスからのデータの読み出しを行う。
【００５５】
ステップＳ２７では、読み出しアドレス変換機構２３が、設定したレジスタ情報を基にして、内部メモリ読み出しアドレスが、読み出しページの最終アドレスであるかを判定し、最終アドレスであればステップＳ２８に進み、最終アドレスでなければ終了する。この後、同じ読み出しページに対して、ステップＳ２１からＳ２７が繰り返される。
【００５６】
ステップＳ２８では、状態遷移制御部２４が、読み出しページの状態フラグをWrite待ち（００）に遷移させ、終了する。
【００５７】
以上説明した事項をまとめると、第１実施形態のデータ処理装置１０Ａは、次のような構成を有する。
【００５８】
（１）内部メモリ２０Ａ（内部メモリコア２１）を有するが、その容量はアクセラレータ（ＡＣＣ）１４の処理に必要なメモリ容量より小さくてよい。
【００５９】
（２）書き込み専用の領域と読み出し専用のメモリ空間を有する。
【００６０】
（３）書き込み／読み出し（WRITE/READ）アドレス変換機構は書き込み専用領域への書き込みアクセスおよび読み出し専用領域への読み出しアクセスのアドレスを、内部メモリのアドレスに変換する。
【００６１】
（４）書き込み／読み出し（WRITE/READ）アドレス変換機構を有し、設定レジスタの情報によってアドレス変換の設定を行うことが可能である。
【００６２】
（５）読み出し（READ）アドレス変換機構は、書き込みがまだ行われていないページに対して読み込みが要求された場合、そのアクセスに対して読み込み待機をさせる。
【００６３】
（６）書き込み（WRITE）アドレス変換機構は、読み出しがまだ行われていないデータ（ページ）に対して書き込みが要求された場合、そのアクセスに対して書き込み待機をさせる。
【００６４】
第１実施形態のデータ処理装置１０Ａは、外部メモリ１８、ＤＭＡＣ１３、ＡＣＣ１４などを使用しているが、内部メモリの書き込み／読み出しアドレス変換機構への書き込みと読み出しを行うことが可能なモジュールであればこれらに制限される必要はない。例えば、データの読み出しをＣＰＵが行うような場合でも、同様の動作が成立する。これは、いかに説明するほかの実施形態でも同様である。
【００６５】
図９は、第２実施形態のデータ処理装置１０Ｂの構成とデータのアクセス経路を示す図である。第２実施形態のデータ処理装置１０Ｂは、アクセラレータ（ＡＣＣ）１４がデータを処理する処理速度が、ＤＭＡＣ１３がデータを転送する速度より速い場合の例である。このような場合、ＡＣＣ１４は、ＤＭＡＣ１３が転送するデータを常時待つ状態になり、ＡＣＣ１４の処理効率が低下する。そこで、第２実施形態のデータ処理装置１０Ｂでは、複数個のＤＡＣを使用して、ＤＭＡＣによるデータの転送速度を高める。
【００６６】
図９に示すように、第２実施形態のデータ処理装置１０Ｂは、第１ＤＭＡＣ１３Ａおよび第２ＤＭＡＣ１３Ｂを有し、２個の第１および第２外部メモリ１８Ａが接続されることが、第１実施形態と異なる。また、第２実施形態のデータ処理装置１０Ｂの内部メモリ２０Ｂも、第１実施形態のデータ処理装置１０Ａの内部メモリ２０Ａと異なるが、他の部分は同じである。なお、第２実施形態では２個のＤＭＡＣを有し、２個の外部メモリを接続したが、それぞれ３個以上とすることも可能である。
【００６７】
外部メモリ１８Ａおよび１８Ｂは、ＡＣＣ１４で処理するデータを、ページ単位で記憶しており、例えば外部メモリ１８Ａが奇数番目のページのデータを、外部メモリ１８Ｂが偶数番目のページのデータを記憶している。
【００６８】
図１０は、第２実施形態における内部メモリ２０Ｂの構成を示す図である。
【００６９】
図１０に示すように、内部メモリ２０Ｂは、第１書き込みアドレス変換機構２２Ａおよび第２書き込みアドレス変換機構２２Ｂを有することが、第１実施形態の内部メモリ２０Ａと異なり、他の部分は第１実施形態と同じである。第１書き込みアドレス変換機構２２Ａおよび第２書き込みアドレス変換機構２２Ｂは、ページ領域３１Ａ〜３１Ｄに独立してアクセス可能である。また、第１書き込みアドレス変換機構２２Ａおよび第２書き込みアドレス変換機構２２Ｂは、内部メモリ容量レジスタ４２およびページ容量レジスタ４３に加えて、ベースアドレスレジスタ４４およびストライド量レジスタ４５を有している。ベースアドレスレジスタ４４は、各アドレス変換機構へ入力されたデータを内部メモリコア２１に記憶する時に、内部メモリコア２１の先頭からどの位置に書き込みを開始するかを指定するアドレス値を記憶する。ストライド量レジスタ４５は、自分以外の全ての書き込みアドレス変換機構のページ容量の和を記憶する。この和の値から、次ページへの書き込み開始アドレスのオフセットを得ることが可能である。
【００７０】
図１１は、第２実施形態の内部メモリ２０Ｂにおいて、第１および第２ＤＭＡＣ１３Ａ、１３Ｂが、メモリコントローラ１６を介して第１および第２外部メモリ１８Ａ、１８Ｂのデータを内部メモリ２０Ｂに書き込み、ＡＣＣ１４が内部メモリ２０Ｂに転送されたデータを読み取るアクセス動作を説明する図である。
【００７１】
前述のように、第１外部メモリ１８Ａは奇数番目のページのデータを、第２外部メモリ１８Ｂが偶数番目のページのデータを記憶しているものとする。
【００７２】
まず、第１ＤＭＡＣ１３Ａは、第１外部メモリ１８Ａに記憶されている１ページ目のデータを、メモリコントローラ１６を介して読み出し、内部メモリ２０Ｂの第１書き込みアドレス変換機構２２Ａに転送する。第１書き込みアドレス変換機構２２Ａは、第１ＤＭＡＣ１３Ａからの書き込みアドレス、内部メモリ容量レジスタ４２の値、ページ容量レジスタ４３の値、ベースアドレスレジスタ４４の値、ストライド量レジスタ４５の値および状態フラグに基づいて、内部メモリ書き込みアドレスに変換するアドレス変換を行う。さらに、書き込みアドレス変換機構２２は、内部メモリ書き込みアドレスから、内部メモリコア２１内で該当するページ領域を割り出し、そのページの状態フラグの確認を行い、書き込み不可の場合は可能になるまで待機し、書き込み可能な場合は書き込みデータの書き込みを行う。第１書き込みアドレス変換機構２２Ａは、内部メモリコア２１の書き込みを行う時には、Write通知を状態遷移制御部２４に出力する。さらに、第１書き込みアドレス変換機構２２Ａは、そのページの最終アドレスへの書き込みを行った場合は、Write完了通知を状態遷移制御部２４に出力する。状態遷移制御部２４は、Write完了通知を受信すると、そのページの状態フラグを”読み出し(Read)待ち”へと遷移させる。図１１では、１ページ目の領域３１Ａの書き込みが完了すると、対応する状態フラグ６１Ａが、”読み出し(Read)待ち”に遷移する。
【００７３】
一方、第２ＤＭＡＣ１３Ｂは、上記の第１ＤＭＡＣ１３Ａの転送動作と並行して、第２外部メモリ１８Ｂに記憶されている２ページ目のデータを、メモリコントローラ１６を介して読み出し、内部メモリ２０Ｂの第２書き込みアドレス変換機構２２Ｂに転送する。第２書き込みアドレス変換機構２２Ｂは、上記の第１書き込みアドレス変換機構２２Ａと同様の動作を行い、転送された２ページ目のデータを内部メモリコア２１内の別のページ領域に書き込む。第２書き込みアドレス変換機構２２ＢがWrite完了通知を状態遷移制御部２４に出力すると、状態遷移制御部２４はそのページの状態フラグを”読み出し(Read)待ち”へと遷移させる。
【００７４】
その後、第１書き込みアドレス変換機構２２Ａおよび第２書き込みアドレス変換機構２２Ｂは、ストライド量レジスタ４５に記憶された値から３ページおよび４ページの書き込み開始アドレス（ページ領域）を算出する。そして、第１書き込みアドレス変換機構２２Ａおよび第２書き込みアドレス変換機構２２Ｂは、そのページ領域が“書き込み(Write)待ち”であれば書き込みを同様に行い、”読み出し(Read)待ち”または ”読み出し(Read)中”であれば、“書き込み(Write)待ち”になるまで待機する。
【００７５】
一方、ＡＣＣ１４は、１ページ目のデータの内部メモリ２０Ａへの書き込みが完了すると、読み出しアドレス変換機構２３を介して、１ページ目のデータの内部メモリ２０Ａからの読み出し動作を開始する。読み出しアドレス変換機構２３による読み出し動作は第１実施形態と同じであり、内部メモリコア２１の第１ページ領域３１Ａに記憶された１ページ目のデータを読み取りが完了すると、第２ページ領域３１Ｂにはすでに２ページ目のデータが記憶されているので、それを読み取る。
【００７６】
図１２は、内部メモリ２０Ｂのアクセス動作における書き込みデータおよび読み出しデータの変化を示すタイムチャートである。このタイムチャートは、２個のＤＭＡＣ１３Ａおよび１３Ｂによる外部メモリ１８から内部メモリ２０Ａへのデータ転送速度と、ＡＣＣ１４による内部メモリ２０Ａからの読み出し速度がほぼ等しい場合の動作タイムチャートである。言い換えれば、１個のＤＭＡＣ１３Ａまたは１３Ｂが所定時間に転送するデータを、ＡＣＣ１４は所定時間の約半分の時間で処理できる。
【００７７】
図１２において、第１ページ領域〜第４ページ領域の単線の四角形は、第１ＤＭＡＣ１３Ａおよび第２ＤＭＡＣ１３Ｂによる内部メモリ２０Ｂへの転送データの書き込みを示し、両端が２重線の四角形は、ＡＣＣ１４による内部メモリ２０Ｂからのデータの読み出しを示す。
【００７８】
図１２に示すように、第１ＤＭＡ１３Ａによる１ページ目のデータ転送および第１ページ領域３１Ａへの転送したデータの書き込みと、第２ＤＭＡ１３Ｂによる２ページ目のデータ転送および第２ページ領域３１Ｂへの転送したデータの書き込みが、並行して行われる。
【００７９】
１ページ目および２ページ目のデータ転送が完了すると、第１ＤＭＡＣ１３Ａおよび第２ＤＭＡＣ１３Ｂによる３ページ目および４ページ目のデータ転送および第３ページ領域３１Ｃおよび第４ページ領域３１Ｄへの書き込みが行われる。
【００８０】
一方、１ページ目のデータ転送および書込みが完了した直後、ＡＣＣ１４による第１ページ領域３１Ａからの１ページ目のデータの読み出しが行われる。そして、１ページ目のデータの読み出しが完了すると、ＡＣＣ１４による第２ページ領域３１Ｂからの２ページ目のデータの読み出しが行われる。
【００８１】
第１ＤＭＡＣ１３Ａによる３ページ目のデータの第３ページ領域３１Ｃへのデータ転送および書き込みが完了した時には、ＡＣＣ１４による第１ページ領域３１Ａからの１ページ目のデータの読み出しは完了している。したがって、第１ページ領域３１Ａはデータ書き込みが可能であり、第１ＤＭＡＣ１３Ａは新しいデータ転送動作を行うことが可能である。そこで、第１ＤＭＡＣ１３Ａによる５ページ目のデータ転送および第１ページ領域３１Ａへのデータの書き込みを開始する。
【００８２】
第２ＤＭＡＣ１３Ｂによる４ページ目のデータの第４ページ領域３１Ｄへの転送および書き込みが完了した時には、ＡＣＣ１４による第２ページ領域３１Ｂからの２ページ目のデータの読み出しは完了していない。この時、第１ページ領域３１Ａは５ページ目のデータ書き込みが行われており、第３および第４ページ領域３１Ｃ、３１Ｄは、３ページ目および４ページ目のデータの読み出しが行われていない状態であり、新たなデータを書き込むことはできない。したがって、第２ＤＭＡＣ１３Ｂは、非動作状態であるがデータの転送は行えないので、ＡＣＣ１４による第２ページ領域３１Ｂからの２ページ目のデータの読み出しが完了するまで待機する。そして、第２ページ領域３１Ｂからの２ページ目のデータの読み出しが完了した後、第２ＤＭＡＣ１３Ｂによる６ページ目のデータの第２ページ領域３１Ｂへの転送および書き込みを開始する。
【００８３】
以下、第１ＤＭＡＣ１３Ａと第２ＤＭＡＣ１３Ｂを交互に使用して、書き込んだデータの読み出しが完了していずれかのページ領域が“書き込み(Write)待ち”状態になるまで待機し、“書き込み(Write)待ち”状態になったら、新たなデータの転送および書き込みを行う。このような動作を繰り返すことにより、ＡＣＣ１４は、外部メモリ１８に記憶されたアクセス方式が異なる形で記憶されたデータを高速で読み出すことができる。
【００８４】
図１３は、第２実施形態において、転送されたデータの内部メモリ２０Ｂ（内部メモリコア２１のページ領域３１Ａ〜３１Ｄ）への書き込み処理を示すフローチャートである。
【００８５】
ステップＳ３１では、第１ＤＭＡＣ１３Ａまたは第２ＤＭＡＣ１３Ｂが、内部メモリ２０Ｂの第１書き込みアドレス変換機構２２Ａまたは第２書き込みアドレス変換機構２２Ｂへの書き込み(Write)処理の発行を行う。
【００８６】
ステップＳ３２では、第１書き込みアドレス変換機構２２Ａまたは第２書き込みアドレス変換機構２２Ｂが、設定したレジスタ情報を基にして、入力された書き込みアドレスから内部メモリ書き込みアドレスと書き込みページを算出する。
【００８７】
ステップＳ３３では、第１書き込みアドレス変換機構２２Ａまたは第２書き込みアドレス変換機構２２Ｂが、データの書き込み先となる書き込みページの状態がRead待ち（１０）またはRead中（１１）であるか判定する。書き込みページが、Read待ちまたはRead中である時には書き込みは行えないので、これらの状態が終了するまで待機し、これらの状態が終了したら次のステップに進む。
【００８８】
ステップＳ３４では、第１書き込みアドレス変換機構２２Ａまたは第２書き込みアドレス変換機構２２Ｂが、書き込みページの状態がWrite待ち（００）であるかを判定し、Write待ち（００）であればステップＳ３５に進み、Write待ち（００）でなければステップＳ３６に進む。
【００８９】
ステップＳ３５では、状態遷移制御部２４が、書き込みページの状態フラグをWrite中（０１）に遷移させる。
【００９０】
ステップＳ３６では、第１書き込みアドレス変換機構２２Ａまたは第２書き込みアドレス変換機構２２Ｂが、内部メモリコア２１の内部メモリ書き込みアドレスへの転送されたデータの書き込みを行う。
【００９１】
ステップＳ３７では、第１書き込みアドレス変換機構２２Ａまたは第２書き込みアドレス変換機構２２Ｂが、設定したレジスタ情報を基にして、内部メモリ書き込みアドレスが、書き込みページの最終アドレスであるかを判定し、最終アドレスであればステップＳ３８に進み、最終アドレスでなければ終了する。この後、同じ書き込みページに対して、ステップＳ３１からＳ３７が繰り返される。
【００９２】
ステップＳ３８では、状態遷移制御部２４が、書き込みページの状態フラグをRead待ち（１０）に遷移させ、終了する。
【００９３】
ＡＣＣ１４による内部メモリ２０Ｂ（内部メモリコア２１のページ領域３１Ａ〜３１Ｄ）からのデータの読み出し処理は、第１実施形態と同じであるので、説明は省略する。
【００９４】
図１４は、第３実施形態のデータ処理装置１０Ｃの内部メモリ２０Ｃの構成を示す図である。
【００９５】
第２実施形態のデータ処理装置１０Ｂは、内部メモリ２０Ｂ内部に、２個のＤＭＡＣ１３Ａおよび１３Ｂに対応して、２個の書き込みアドレス変換機構２２Ａおよび２２Ｂを設けた。しかし、書き込みアドレス変換機構による内部メモリコア２１へのデータの書き込み速度が、１個のＤＭＡＣによるデータ転送速度より十分に高速であれば、例えば２倍以上高速であれば、２個のＤＭＡＣ１３Ａおよび１３Ｂを使用しても、１個の書き込みアドレス変換機構２２で転送されたデータを内部メモリコア２１に書き込むことが可能である。
【００９６】
第３実施形態のデータ処理装置１０Ｃは、図９に示した第２実施形態のデータ処理装置１０Ｂと同様に、２個のＤＭＡＣ１３Ａおよび１３Ｂを有し、２個の外部メモリ１３Ａおよび１３Ｂが接続される。内部メモリ２０は、第１実施形態の内部メモリ２０Ａと同様の構成を有するが、動作速度が高速で、２個のＤＭＡＣ１３Ａおよび１３Ｂが所定時間に転送するデータを１個の書き込みアドレス変換機構２２で内部メモリコア２１に所定時間内で書き込むことが可能である。他の部分は、第１および第２実施形態と同じである。
【００９７】
図１４に示すように、第３実施形態のデータ処理装置１０Ｃの内部メモリ２０Ｃは、第１実施形態の内部メモリ２０Ａと同様の構成を有するが、書き込みアドレス変換機構２２が外部メモリの個数（ここでは２個）分のアドレス範囲レジスタ４６Ａおよび４６Ｂを有する。なお、図示していないが、第２実施形態と同様に内部メモリ容量レジスタ４２および５２とページ容量レジスタ４３および５３が、書き込みアドレス変換機構２２および読み出しアドレス変換機構２３にそれぞれ設けられている。さらに、書き込みアドレス変換機構２２は、ベースアドレスレジスタ４４とストライド量レジスタ４５と、を有する。
【００９８】
アドレス範囲レジスタ４６Ａおよび４６Ｂは、外部メモリ１８Ａおよび１８Ｂのアドレス範囲をそれぞれ記憶している。２個のＤＭＡＣ１３Ａおよび１３Ｂにより転送されたデータの書き込みアドレスに関する情報から、転送元の外部メモリを判定することができる。
【００９９】
図１５は、第３実施形態の内部メモリ２０Ｃにおいて、第１および第２ＤＭＡＣ１３Ａ、１３Ｂが、メモリコントローラ１６を介して第１および第２外部メモリ１８Ａ、１８Ｂのデータを内部メモリ２０Ｂに書き込み、ＡＣＣ１４が内部メモリ２０Ｂに転送されたデータを読み取るアクセス動作を説明する図である。
【０１００】
前述のように、外部メモリ１８Ａは奇数番目のページのデータを、外部メモリ１８Ｂが偶数番目のページのデータを記憶しているものとする。
【０１０１】
第１ＤＭＡＣ１３Ａおよび第２ＤＭＡＣ１３Ｂは、バス調停しながら並行して第１外部メモリ１８Ａおよび第２外部メモリ１８Ｂに記憶されている１ページ目および２ページ目のデータを、メモリコントローラ１６を介して読み出し、内部メモリ２０Ｃの書き込みアドレス変換機構２２に転送する。書き込みアドレス変換機構２２は、転送されたデータの書き込みアドレスと、アドレス範囲レジスタ４６Ａおよび４６Ｂに記憶されたアドレス範囲と比較し、データの転送元の外部メモリを特定する。言い換えれば、書き込みアドレス変換機構２２は、転送されたデータのページ領域を判定する。そして、書き込みアドレス変換機構２２は、判定したページ領域に応じて、データを書き込むページ領域を選択する。そして、書き込みアドレス、各レジスタの値および状態フラグに基づいて、内部メモリ書き込みアドレスに変換するアドレス変換を行い、書き込み先のページの状態フラグに応じて、書き込みまたは待機を行う。
【０１０２】
ＡＣＣ１４は、書き込みが完了して“書き込み(Write)待ち”になったページ領域から順番にデータの読み出しを行う。他の動作は、第２実施形態と同じである。したがって、第３実施形態における内部メモリ２０Ｂのアクセス動作を示すタイムチャートは、図１２に示した第２実施形態のタイムチャートと同じである。
【０１０３】
図１６は、第３実施形態において、転送されたデータの内部メモリ２０Ｃ（内部メモリコア２１のページ領域３１Ａ〜３１Ｄ）への書き込み処理を示すフローチャートである。
【０１０４】
ステップＳ４１では、第１ＤＭＡＣ１３Ａおよび第２ＤＭＡＣ１３Ｂが、内部メモリ２０Ｃの書き込みアドレス変換機構２２への書き込み(Write)処理の発行を行う。
【０１０５】
ステップＳ４２では、書き込みアドレスとアドレス範囲レジスタ４６Ａおよび４６Ｂに記憶されたアドレス範囲情報がマッチするかを判定し、マッチすればステップＳ４４に進み、マッチしなければステップＳ４３に進む。
【０１０６】
ステップＳ４３では、書き込みアドレスとアドレス範囲がマッチしないので、転送元の外部メモリを確認できないので、別のレジスタ情報を参照する。この処理は実施形態の処理に直接関係しないので、説明は省略する。
【０１０７】
ステップＳ４４では、書き込みアドレス変換機構２２が、設定したレジスタ情報を基にして、入力された書き込みアドレスから内部メモリ書き込みアドレスと書き込みページを算出する。
【０１０８】
ステップＳ４５からＳ５０は、図１３のステップＳ３３からＳ３８と同じ処理である。
【０１０９】
図１７は、第４実施形態のデータ処理装置１０Ｄの構成とデータのアクセス経路を示す図である。第４実施形態のデータ処理装置１０Ｄは、ＤＭＡＣ１３がデータを転送する速度が、アクセラレータ（ＡＣＣ）１４がデータを処理する処理速度よりより速い場合の例である。このような場合、ＤＭＡＣ１３は、ＡＣＣ１４がデータを処理するまで常時データ転送を待つ状態になり、ＤＭＡＣ１３の転送効率が低下する。そこで、第４実施形態のデータ処理装置１０Ｄでは、複数個のＡＣＣを使用して、ＡＣＣによるデータ処理速度を高める。
【０１１０】
図１７に示すように、第４実施形態のデータ処理装置１０Ｄは、第１および第２ＡＣＣ１４Ａおよび１４Ｂを有することが、第１実施形態と異なる。また、第４実施形態のデータ処理装置１０Ｄの内部メモリ２０Ｄも、第１実施形態のデータ処理装置１０Ａの内部メモリ２０Ａと異なるが、他の部分は同じである。なお、第２実施形態では２個のＡＣＣを有するが、３個以上のＡＣＣを設けることも可能である。
【０１１１】
図１８は、内部メモリ２０Ｄの構成を示す図である。
【０１１２】
図１８に示すように、内部メモリ２０Ｄは、第１読み出しアドレス変換機構２３Ａおよび第２読み出しアドレス変換機構２３Ｂを有することが、第１実施形態の内部メモリ２０Ａと異なり、他の部分は第１実施形態と同じである。第１読み出しアドレス変換機構２３Ａおよび第２読み出しアドレス変換機構２３Ｂは、ページ領域３１Ａ〜３１Ｄに独立してアクセス可能である。また、第１読み出しアドレス変換機構２３Ａおよび第２読み出しアドレス変換機構２３Ｂは、ベースアドレスレジスタ５４およびストライド量レジスタ５５を有している。なお、図示していないが、第１実施形態と同様に、第１読み出しアドレス変換機構２３Ａおよび第２読み出しアドレス変換機構２３Ｂは、内部メモリ容量レジスタ５２と、ページ容量レジスタ５３と、を有する。さらに、書き込みアドレス変換機構２２は、内部メモリ容量レジスタ４２と、ページ容量レジスタ４３と、を有する。
【０１１３】
ベースアドレスレジスタ５４は、内部メモリコア２１からデータを読み出す時に、内部メモリコア２１において先頭からどの位置で読み出しを開始するかを指定するアドレス値を記憶する。ストライド量レジスタ５５は、自分以外の全ての書き込みアドレス変換機構のページ容量の和を記憶する。この和の値から、次ページの読み出し開始アドレスのオフセットを得ることが可能である。
【０１１４】
図１９は、第４実施形態の内部メモリ２０Ｄにおいて、ＤＭＡＣ１３が、メモリコントローラ１６を介して外部メモリ１８のデータを内部メモリ２０Ｄに書き込み、第１ＡＣＣ１４Ａおよび第２ＡＣＣ１４Ｂが内部メモリ２０Ｄからデータを読み取るアクセス動作を説明する図である。
【０１１５】
外部メモリ１８は、第１ＡＣＣ１４Ａが処理するデータ１−ａ，２−ａ，３−ａ，４−ａ，５−ａと、第２ＡＣＣ１４Ｂが処理するデータ１−ｂ，２−ｂ，３−ｂ，４−ｂ，５−ｂと、交互に記憶している。
【０１１６】
まず、ＤＭＡＣ１３は、メモリコントローラ１６を介して、外部メモリ１８に記憶されているデータ１−ａ，１−ｂ，２−ａ，２−ｂ，…を順番に読み出し、内部メモリ２０Ｄの書き込みアドレス変換機構２２に転送する。第１実施例と同様に、書き込みアドレス変換機構２２は、転送されたデータを、ページ領域３１Ａ〜３１Ｄに順番に書き込む。この際、各ページの状態フラグの確認を行い、書き込み不可の場合は可能になるまで待機し、書き込み可能な場合は書き込みデータの書き込みを行う。
【０１１７】
第１ＡＣＣ１４Ａは、１ページ目のデータ１−ａの内部メモリ２０Ｄへの書き込みが完了すると、第１読み出しアドレス変換機構２３Ａを介して、１ページ目のデータ１−ａの内部メモリ２０Ｄからの読み出し動作を開始する。第１読み出しアドレス変換機構２３Ａは、第１ＡＣＣ１４Ａからの読み出しアドレス、内部メモリ容量レジスタおよびページ容量レジスタの値、ベースアドレスレジスタ５４の値、ストライド量レジスタ５５の値および状態フラグに基づいて、内部メモリ読み出しアドレスに変換するアドレス変換を行う。さらに、第１読み出しアドレス変換機構２３Ａは、内部メモリ読み出しアドレスから、内部メモリコア２１内で該当するページ領域を割り出し、そのページの状態フラグの確認を行い、読み出し不可の場合は可能になるまで待機し、読み出し可能な場合はデータの読み出しを行う。第１読み出しアドレス変換機構２３Ａは、内部メモリコア２１からデータの読み出しを行う時には、Read通知を状態遷移制御部２４に出力する。さらに、第１読み出しアドレス変換機構２３Ａは、そのページの最終アドレスからの読み出しを行った場合は、Read完了通知を状態遷移制御部２４に出力する。状態遷移制御部２４は、Read完了通知を受信すると、そのページの状態フラグを”書き込み待ち”へと遷移させる。
【０１１８】
一方、第２ＡＣＣ１４Ｂは、２ページ目のデータ１−ｂの内部メモリ２０Ｄへの書き込みが完了すると、第２読み出しアドレス変換機構２３Ｂを介して、２ページ目のデータ１−ｂの内部メモリ２０Ｄからの読み出し動作を行う。この読み出し動作は、上記の第１読み出しアドレス変換機構２３Ａの動作と同じである。
【０１１９】
以下、ＤＭＡＣ１３による外部メモリ１８のデータの内部メモリ２０Ｄへの転送が順番に行われ、第１ＡＣＣ１４Ａおよび第２ＡＣＣ１４Ｂによる内部メモリ２０Ｄからのデータの読み出しが並行して行われる。図１９では、データ１−ａは第１データ領域３１Ａに、データ１−ｂは第２データ領域３１Ｂに、データ２−ａは第３データ領域３１Ｃに、データ２−ｂは第４データ領域３１Ｄに、それぞれ記憶される。また、データ３−ａ，４−ａ，５−ａは、第１データ領域３１Ａ，第３データ領域３１Ｃ，第１データ領域３１Ａにそれぞれ記憶され、データ３−ｂ，４−ｂ，５−ｂは、第２データ領域３１Ｂ，第４データ領域３１Ｄ，第２データ領域３１Ｂにそれぞれ記憶される。第１ＡＣＣ１４Ａは、第１データ領域３１Ａと第３データ領域３１Ｃから交互にデータを読み取り、データ１−ａ，２−ａ，３−ａ，４−ａ，５−ａを取得して処理する。第２ＡＣＣ１４Ｂは、第２データ領域３１Ｂと第４データ領域３１Ｄから交互にデータを読み取り、データ１−ｂ，２−ｂ，３−ｂ，４−ｂ，５−ｂを取得して処理する。
【０１２０】
図２０は、内部メモリ２０Ｄのアクセス動作における書き込みデータおよび読み出しデータの変化を示すタイムチャートである。このタイムチャートは、１個のＤＭＡＣ１３による外部メモリ１８から内部メモリ２０Ｄへのデータ転送速度と、２個のＡＣＣ１４ＡおよびＡＣＣ１４Ｂによる内部メモリ２０Ｄからの読み出し速度がほぼ等しい場合の動作タイムチャートである。言い換えれば、１個のＤＭＡＣ１３は、ＡＣＣ１４が所定時間に処理するデータを、所定時間の約半分の時間で転送する。
【０１２１】
図２０において、第１ページ領域〜第４ページ領域の単線の四角形は、ＤＭＡＣ１３による内部メモリ２０Ｄへの転送データの書き込みを示し、両端が２重線の四角形は、第１ＡＣＣ１４Ａおよび第２ＡＣＣ１４Ｂによる内部メモリ２０Ｄからのデータの読み出しを示す。
【０１２２】
図２０に示すように、ＤＭＡＣ１３によるデータ転送は、ページ順に行われ、第１ＡＣＣ１４Ａおよび第２ＡＣＣ１４Ｂによるデータ読み出しは、一部が並行して行われる。
【０１２３】
ＤＭＡＣ１３は、１ページ目のデータ１−ａの転送および書き込みが完了すると、２ページ目のデータ１−ｂの転送および書き込みを開始する。一方、１ページ目のデータ１−ａの転送および書き込みが完了すると、第１ＡＣＣ１４Ａは直ちにデータ１−ａの読み取りを開始する。この時、２ページ目のデータ１−ｂの転送および書き込みが並行して行われる。そして、２ページ目のデータ１−ｂの転送および書き込みが完了すると、ＤＭＡＣ１３は、３ページ目のデータ２−ａの転送および書き込みを開始し、第２ＡＣＣ１４Ｂは、データ１−ｂの読み取りを開始する。この時、第１ＡＣＣ１４Ａはまだデータ１−ａの読み取りを行っている。以下、４ページ目以降のデータ２−ａの書き込みおよび読み取りを行う。
【０１２４】
ＤＭＡＣ１３による４ページ目のデータ２−ｂの転送および書き込みが完了した時には、第１ページ領域３１Ａに書き込まれたデータ１−ａは既に第１ＡＣＣ１４Ａにより読み取られて“書き込み(Write)待ち”であるから、ＤＭＡＣ１３は、５ページ目のデータ３−ａの第１ページ領域３１Ａへの転送および書き込みが開始される。
【０１２５】
以下、第１ＡＣＣ１４Ａと第２ＡＣＣ１４Ｂを交互に使用して、データの書き込みが完了していずれかのページ領域が“読み出し(Read)待ち”状態になるまで待機し、“読み出し(Read)”状態になったら、新たなデータの読み出しを行う。このような動作を繰り返すことにより、第１ＡＣＣ１４Ａと第２ＡＣＣ１４Ｂは、外部メモリ１８に記憶されたアクセス方式が異なる形で記憶されたデータを高速で処理することができる。
【０１２６】
第４実施形態における転送されたデータの内部メモリ２０Ｄ（内部メモリコア２１のページ領域３１Ａ〜３１Ｄ）への書き込み処理は、第１実施形態と同じである。
【０１２７】
図２１は、第４実施形態において、第１ＡＣＣ１４Ａおよび第２ＡＣＣ１４Ｂにより内部メモリ２０Ｄ（内部メモリコア２１のページ領域３１Ａ〜３１Ｄ）からのデータの読み出し処理を示すフローチャートである。
【０１２８】
ステップＳ５１では、第１ＡＣＣ１４Ａまたは第２ＡＣＣ１４Ｂが、内部メモリ２０Ｄの第１読み出しアドレス変換機構２３Ａまたは第２読み出しアドレス変換機構２３Ｂへの読み出し(Read)処理の発行を行う。
【０１２９】
ステップＳ５２では、第１読み出しアドレス変換機構２３Ａまたは第２読み出しアドレス変換機構２３Ｂが、内部メモリ容量レジスタおよびページ容量レジスタの値、ベースアドレスレジスタ５４の値、ストライド量レジスタ５５の値および状態フラグに基づいて、読み出しアドレスを内部メモリ読み出しアドレスと読み出しページを算出する。
【０１３０】
ステップＳ５３では、第１読み出しアドレス変換機構２３Ａまたは第２読み出しアドレス変換機構２３Ｂが、読み出しページの状態がWrite待ち（０１０）またはWrite中（０１）であるか判定する。読み出しページが、Write待ちまたはWrite中である時には読み出しは行えないので、これらの状態が終了するまで待機し、これらの状態が終了したら次のステップに進む。
【０１３１】
ステップＳ５４では、第１読み出しアドレス変換機構２３Ａまたは第２読み出しアドレス変換機構２３Ｂが、読み出しページの状態がRead待ち（１０）であるかを判定し、Read待ち（１０）であればステップＳ５５に進み、Read待ち（１０）でなければステップＳ５６に進む。
【０１３２】
ステップＳ５５では、状態遷移制御部２４が、読み出しページの状態フラグをRead中（１１）に遷移させる。
【０１３３】
ステップＳ５６では、第１読み出しアドレス変換機構２３Ａまたは第２読み出しアドレス変換機構２３Ｂが、内部メモリコア２１の内部メモリ読み出しアドレスからのデータの読み出しを行う。
【０１３４】
ステップＳ５７では、第１読み出しアドレス変換機構２３Ａまたは第２読み出しアドレス変換機構２３Ｂが、設定したレジスタ情報を基にして、内部メモリ読み出しアドレスが、読み出しページの最終アドレスであるかを判定し、最終アドレスであればステップＳ５８に進み、最終アドレスでなければ終了する。この後、同じ読み出しページに対して、ステップＳ５１からＳ５７が繰り返される。
【０１３５】
ステップＳ５８では、状態遷移制御部２４が、読み出しページの状態フラグをWrite待ち（００）に遷移させ、終了する。
【０１３６】
図２２は、第５実施形態のデータ処理装置１０Ｅの内部メモリ２０Ｅの構成を示す図である。
【０１３７】
第４実施形態のデータ処理装置１０Ｄは、内部メモリ２０Ｄ内部に、２個のＡＣＣ１４Ａおよび１４Ｂに対応して、２個の読み出しアドレス変換機構２３Ａおよび２３Ｂを設けた。しかし、読み出しアドレス変換機構による内部メモリコア２１からのデータの読み出し速度が、１個のＡＣＣによるデータ処理速度より十分に高速であれば、例えば２倍以上高速であれば、２個のＡＣＣ１４Ａおよび１４Ｂを使用しても、１個の読み出しアドレス変換機構２３で内部メモリコア２１からデータを読み出すことが可能である。
【０１３８】
第５実施形態のデータ処理装置１０Ｅは、図１７に示した第４実施形態のデータ処理装置１０Ｂと同様に、２個のＡＣＣ１４Ａおよび１４Ｂを有する。内部メモリ２０Ｅは、動作速度が高速で、２個のＡＣＣ１４Ａおよび１４Ｂが所定時間に処理するデータを１個の読み出しアドレス変換機構２３で内部メモリコア２１から所定時間内で読み出すことが可能である。他の部分は、第１および第４実施形態と同じである。
【０１３９】
図２２に示すように、第５実施形態のデータ処理装置１ＥＣの内部メモリ２０Ｅは、第１実施形態の内部メモリ２０Ａと同様の構成を有するが、読み出しアドレス変換機構２３がＡＣＣの個数（ここでは２個）分のアドレス範囲レジスタ５６Ａおよび５６Ｂを有する。なお、図示していないが、第４実施形態と同様に内部メモリ容量レジスタ４２および５２とページ容量レジスタ４３および５３が、書き込みアドレス変換機構２２および読み出しアドレス変換機構２３にそれぞれ設けられている。さらに、読み出しアドレス変換機構２３は、ベースアドレスレジスタ５４とストライド量レジスタ５５と、を有する。
【０１４０】
アドレス範囲レジスタ５６Ａおよび５６Ｂは、第１ＡＣＣ１８Ａおよび第２ＡＣＣ１８Ｂのアドレス範囲をそれぞれ記憶している。２個の第１ＡＣＣ１８Ａおよび第２ＡＣＣ１８Ｂからの読み出しアドレスに関する情報から、データ要求元のＡＣＣを判定することができる。
【０１４１】
図２３は、第５実施形態の内部メモリ２０Ｅにおいて、ＤＭＡＣ１３が、メモリコントローラ１６を介して外部メモリ１８のデータを内部メモリ２０Ｅに書き込み、第１ＡＣＣ１４Ａおよび第２ＡＣＣ１４Ｂが内部メモリ２０Ｅに転送されたデータを読み取るアクセス動作を説明する図である。
【０１４２】
前述のように、外部メモリ１８は、第１ＡＣＣ１４Ａが処理するデータ１−ａ，２−ａ，３−ａ，４−ａ，５−ａと、第２ＡＣＣ１４Ｂが処理するデータ１−ｂ，２−ｂ，３−ｂ，４−ｂ，５−ｂと、交互に記憶している。
【０１４３】
まず、ＤＭＡＣ１３は、メモリコントローラ１６を介して、外部メモリ１８に記憶されているデータ１−ａ，１−ｂ，２−ａ，２−ｂ，…を順番に読み出し、内部メモリ２０Ｅの書き込みアドレス変換機構２２に転送する。第１実施例と同様に、書き込みアドレス変換機構２２は、転送されたデータを、ページ領域３１Ａ〜３１Ｄに順番に書き込む。この際、各ページの状態フラグの確認を行い、書き込み不可の場合は可能になるまで待機し、書き込み可能な場合は書き込みデータの書き込みを行う。
【０１４４】
第１ＡＣＣ１４Ａまたは第２ＡＣＣ１４Ｂは、読み出しアドレス変換機構２３に読み出しアドレスを出力する。読み出しアドレス変換機構２３は、読み出しアドレスと、アドレス範囲レジスタ５６Ａおよび５６Ｂに記憶されたアドレス範囲と比較し、データの要求元のＡＣＣを特定する。言い換えれば、読み出しアドレス変換機構２３は、要求されたデータのページ領域を判定する。そして、読み出しアドレス変換機構２３は、判定したページ領域に応じて、データを読み出すページ領域を選択する。そして、読み出しアドレス、各レジスタの値および状態フラグに基づいて、内部メモリ読み出しアドレスに変換するアドレス変換を行い、読み出しページの状態フラグに応じて、読み出しまたは待機を行う。
【０１４５】
読み出されたデータは、第１ＡＣＣ１４Ａまたは第２ＡＣＣ１４Ｂに出力される。他の動作は、第４実施形態と同じである。したがって、第５実施形態における内部メモリ２０Ｅのアクセス動作を示すタイムチャートは、図２０に示した第４実施形態のタイムチャートと同じである。
【０１４６】
図２４は、第５実施形態において、第１ＡＣＣ１４Ａおよび第２ＡＣＣ１４Ｂにより内部メモリ２０Ｅ（内部メモリコア２１のページ領域３１Ａ〜３１Ｄ）からのデータの読み出し処理を示すフローチャートである。
【０１４７】
ステップＳ６１では、第１ＡＣＣ１４Ａまたは第２ＡＣＣ１４Ｂが、内部メモリ２０Ｄの第１読み出しアドレス変換機構２３Ａまたは第２読み出しアドレス変換機構２３Ｂへの読み出し(Read)処理の発行を行う。
【０１４８】
ステップＳ６２では、読み出しアドレスとアドレス範囲レジスタ５６Ａおよび５６Ｂに記憶されたアドレス範囲情報がマッチするかを判定し、マッチすればステップＳ６４に進み、マッチしなければステップＳ６３に進む。
【０１４９】
ステップＳ６３では、読み出しアドレスとアドレス範囲がマッチしないので、要求元のＡＣＣを確認できないので、別のレジスタ情報を参照する。この処理は実施形態の処理に直接関係しないので、説明は省略する。
【０１５０】
ステップＳ６４では、読み出しアドレス変換機構２３が、設定したレジスタ情報を基にして、入力された読み出しアドレスから内部メモリ読み出しアドレスと読み出しページを算出する。
【０１５１】
ステップＳ６５からＳ５１は、図２１のステップＳ５３からＳ５８と同じ処理である。
【０１５２】
第１および第５実施形態においては、各ページ領域のデータは最後まで読み出されてＡＣＣに出力された。状態遷移制御部２４は、最後までデータが読み出された各ページ領域を、“書き込み(Write)待ち（００）”に変化させる。しかし、ＡＣＣの処理において、各ページ領域の途中までのデータで処理が完了し、最後までデータを読み出す必要のない場合があり得る。このような場合、内部メモリへの新たなデータの書き込みができないというデッドロックが発生する場合がある。このデッドロックの発生を、第４実施形態を例として説明する。
【０１５３】
図２５は、第４実施形態におけるデッドロックの発生を説明する図であり、図２０のタイムチャートに対応する図である。
【０１５４】
図２５において、第１ＡＣＣ１４Ａが、第１メモリ領域３１Ａに記憶されたデータ３−ａを読み出すが、途中のデータまでしか必要としない場合を考える。この場合、第１ＡＣＣ１４Ａは、データ３−ａの最後まで読み出さないため、第１メモリ領域３１Ａの状態フラグは、“書き込み(Write)待ち（００）”にならず、“読み取り(Read)中（１１）”のまま維持される。ＤＭＡＣ１３による第４メモリ領域３１Ｄへのデータ４−ｂの転送および書き込みが完了した後、ＤＭＡＣ１３は第１メモリ領域３１Ａへのデータ５−ａの転送および書き込みを行う。第１メモリ領域３１Ａは“読み取り(Read)中（１１）”であり、ＤＭＡＣ１３は、待機することになるが、第１メモリ領域３１Ａが“書き込み(Write)待ち（００）”になることはないので待機状態が続くことになる。そのため、データ５−ａ，５−ｂの内部メモリ２０Ｄへの転送および書き込みが行われず、デッドロックが発生する。次に説明する第６実施形態のデータ処理装置では、デッドロックの発生を防止する。
【０１５５】
図２６は、第６実施形態のデータ処理装置１０Ｆの構成とデータのアクセス経路を示す図である。第６実施形態のデータ処理装置１０Ｆは、第１および第２ＤＭＡＣ１３Ａおよび１３Ｂと、第１および第２ＡＣＣ１４Ａおよび１４Ｂと、を有し、２個の第１および第２外部メモリ１８Ａが接続される。
【０１５６】
図２７は、内部メモリ２０Ｆの構成を示す図である。
【０１５７】
図２７に示すように、第６実施形態のデータ処理装置１０Ｆの内部メモリ２０Ｆは、２個の書き込みアドレス変換機構２２Ａおよび２２Ｂと、２個の読み出しアドレス変換機構２３Ａおよび２３Ｂと、を有する。２個の書き込みアドレス変換機構２２Ａおよび２２Ｂは、アドレス範囲レジスタ４６Ａおよび４６Ｂを有し、２個の読み出しアドレス変換機構２３Ａおよび２３Ｂは、アドレス範囲レジスタ５６Ａおよび５６Ｂを有する。言い換えれば、第６実施形態のデータ処理装置１０Ｆの内部メモリ２０Ｆは、第３実施形態と第５実施形態を合わせた構成を有する。
【０１５８】
さらに、第６実施形態のデータ処理装置は、内部メモリ２０Ｆの状態遷移制御部２４のページごとの状態フラグに“ＡＣＣ処理完了（１００）”を追加したことが第４および第５実施形態のデータ処理装置と異なる。
【０１５９】
第１ＡＣＣ１４Ａおよび第２ＡＣＣ１４Ｂは、ページの途中でデータの処理を完了する場合を含めて、処理を完了した時には第１読み出しアドレス変換機構２３Ａおよび第２読み出しアドレス変換機構２３Ｂに“ＡＣＣ処理完了”を通知する。これに応じて、第１読み出しアドレス変換機構２３Ａおよび第２読み出しアドレス変換機構２３Ｂは、“ＡＣＣ処理完了”を状態遷移制御部２４に通知し、状態遷移制御部２４は対応するページの状態フラグを“ＡＣＣ処理完了”に変化させる。
【０１６０】
図２８は、第６実施形態における各ページの状態フラグの変化を示す図である。図６に示した書き込み(Write)待ち(00)、書き込み(Write)中(01)、読み出し (Read)待ち(10)および読み出し (Read)中(11)の４つの状態に、“ＡＣＣ処理完了(100)”が加えられている。“ＡＣＣ処理完了(100)”は、４つの状態のいずれからも遷移することがあり得る。また、読み出し (Read)待ち(10)から書き込み(Write)待ち(00)への遷移も起きる場合がある。
【０１６１】
図２９は、第６実施形態において、転送されたデータの内部メモリ２０Ｆ（内部メモリコア２１のページ領域３１Ａ〜３１Ｄ）への書き込み処理を示すフローチャートである。
【０１６２】
ステップＳ７１では、ＤＭＡＣ１３が、内部メモリ２０Ｆの書き込みアドレス変換機構２２への書き込み(Write)処理の発行を行う。
【０１６３】
ステップＳ７２では、書き込みアドレスとアドレス範囲レジスタ４６Ａおよび４６Ｂに記憶されたアドレス範囲情報がマッチするかを判定し、マッチすればステップＳ７４に進み、マッチしなければステップＳ７３に進む。
【０１６４】
ステップＳ７３では、書き込みアドレスとアドレス範囲がマッチしないので、転送元の外部メモリを確認できないので、別のレジスタ情報を参照する。
【０１６５】
ステップＳ７４では、書き込みアドレス変換機構２２が、設定したレジスタ情報を基にして、入力された書き込みアドレスから内部メモリ書き込みアドレスと書き込みページを算出する。
【０１６６】
ステップＳ７５では、状態フラグが“ＡＣＣ処理完了(100)”であるかを判定し、“ＡＣＣ処理完了(100)”であればステップＳ７６に進み、“ＡＣＣ処理完了(100)”でなければステップＳ７７に進む。
【０１６７】
ステップＳ７６では、外部メモリからのデータの転送は行うが、内部メモリ２０Ｆへの書き込みは行わずに終了する。
【０１６８】
ステップＳ７７からＳ８２は、図１３のステップＳ３３からＳ３８と同じ処理である。
【０１６９】
図３０は、第６実施形態において、第１ＡＣＣ１４Ａおよび第２ＡＣＣ１４Ｂにより内部メモリ２０Ｆ（内部メモリコア２１のページ領域３１Ａ〜３１Ｄ）からのデータの読み出し処理を示すフローチャートである。
【０１７０】
ステップＳ９１では、第１ＡＣＣ１４Ａまたは第２ＡＣＣ１４Ｂが、内部メモリ２０Ｄの第１読み出しアドレス変換機構２３Ａまたは第２読み出しアドレス変換機構２３Ｂへの読み出し(Read)処理の発行を行う。
【０１７１】
ステップＳ９２では、読み出しアドレスとアドレス範囲レジスタ５６Ａおよび５６Ｂに記憶されたアドレス範囲情報がマッチするかを判定し、マッチすればステップＳ９４に進み、マッチしなければステップＳ９３に進む。
【０１７２】
ステップＳ９３では、読み出しアドレスとアドレス範囲がマッチしないので、要求元のＡＣＣを確認できないので、別のレジスタ情報を参照する。この処理は実施形態の処理に直接関係しないので、説明は省略する。
【０１７３】
ステップＳ９４では、読み出しアドレス変換機構２３が、設定したレジスタ情報を基にして、入力された読み出しアドレスから内部メモリ読み出しアドレスと読み出しページを算出する。
【０１７４】
ステップＳ９５では、算出した読み出しページと直前の処理で読み出したページが異なるか判定し、異なればステップＳ９６に進み、同じであればステップＳ９７に進む。
【０１７５】
ステップ９６では、内部メモリ２０Ｆに保持されているページから算出した読み出しページの直前のページまでの状態フラグを“書き込み(Write)待ち（００）”に遷移させ、ステップＳ９７に進む。
【０１７６】
ステップＳ９７からＳ１０２は、図２１のステップＳ５３からＳ５８と同じ処理である。
【０１７７】
ステップＳ１０３では、読み出しアドレス変換機構２３が行った処理における内部メモリ読み出しアドレスと読み出しページに関する情報をメモリに格納して終了する。
【０１７８】
図３１は、第６実施形態において、第１ＡＣＣ１４Ａおよび第２ＡＣＣ１４Ｂによる読み出し処理が完了した時に行う処理を示すフローチャートである。
【０１７９】
ステップＳ１１０では、第１ＡＣＣ１４Ａまたは第２ＡＣＣ１４Ｂが、処理が完了したことを通知する。
【０１８０】
ステップＳ１１１では、読み出し制御部５１が、処理が完了したのがどのＡＣＣであるかを確認する。
【０１８１】
ステップＳ１１２では、処理を完了したＡＣＣのレジスタ情報に基づいて、処理していたページを割り出す。
【０１８２】
ステップＳ１１３では、割り出したページの状態フラグの状態を“ＡＣＣ処理完了（１００）”に遷移させる。
【０１８３】
ステップＳ１１４では、処理完了したＡＣＣが複数のページについて処理を行っていた場合を考慮して、全ページの状態遷移を行ったかを判定し、ページが残っていればステップＳ１１２に戻り、ページが残っていなければ終了する。
【０１８４】
ＡＣＣの処理において、連続したページのデータを連続して処理せずに、途中のページのデータを使用せずに処理することがあり得る。このような場合、ＤＭＡＣによる外部メモリから内部メモリへのデータ転送および書き込みは連続したページで行われるため、データが書き込まれたページからのデータの読み出しが行われない、ページの読み飛ばしが発生する。第１から第５実施形態では、内部メモリコア２１のページ領域は、データの読み出しが行われた後“書き込み(Write)待ち（００）”に遷移されるが、ページの読み飛ばしが発生すると、データの読み出しが行われないため“読み出し(Read)待ち（１０）”が維持される。そのため、内部メモリへの新たなデータの書き込みができないというデッドロックが発生する場合がある。第７実施形態のデータ処理装置では、ページの読み飛ばしが発生しても、デッドロックが発生しない。
【０１８５】
図３２は、内部メモリ２０Ｇの構成を示す図である。
【０１８６】
図３２に示すように、第７実施形態のデータ処理装置１０Ｇの内部メモリ２０Ｇは、読み出しアドレス変換機構２３が、前回アドレスレジスタ５７を有することが、第１実施形態と異なり、他の部分は第１実施形態と同じである。
【０１８７】
図３３は、第７実施形態における各ページの状態フラグの変化を示す図である。図６に示した第１実施形態の場合と同様に、書き込み(Write)待ち(00)、書き込み(Write)中(01)、読み出し (Read)待ち(10)および読み出し (Read)中(11)の４つの状態を有する。しかし、“読み取り(Read)待ち（１０）”から“書き込み(Write)待ち（００）”への遷移することがあり得ることが、第１実施形態と異なる。“読み取り(Read)待ち（１０）”から“書き込み(Write)待ち（００）”への遷移は、読み取り(Read)されずに、ページを跨れた時に発生する。
【０１８８】
図３４は、第７実施形態において、内部メモリ２０Ｇのアクセス動作における書き込みデータおよび読み出しデータの変化を示すタイムチャートであり、図５に対応する。基本的な動作は第１実施形態と同じなので説明は省略する。
【０１８９】
図３４に示すように、ＤＭＡＣ１３による３ページ目のデータ転送および第１ページ領域３１Ａへのデータの書き込みが行われ、さらに４ページ目のデータ転送および第２ページ領域３１Ｂへのデータの書き込みが行われる。通常、ＡＣＣ１４は、第２ページ領域３１Ｂに書き込まれた２ページ目のデータの読み取りが終了した後、第１ページ領域３１Ａに書き込まれた３ページ目のデータおよび第２ページ領域３１Ｂに書き込まれた４ページ目のデータを読み取る。しかし、図３４の例では、３ページ目および４ページ目のデータを読み飛ばす。そのため、ＤＭＡＣ１３による４ページ目のデータ転送および第２ページ領域３１Ｂへのデータの書き込みが行われた後、５ページ目および６ページ目のデータ転送および第１ページ領域３１Ａおよび第２ページ領域３１Ｂへのデータの書き込みが行われる。しかし、第１ページ領域３１Ａおよび第２ページ領域３１Ｂは、“読み取り(Read)待ち（１０）”であり、データの書き込みが行えない。そこで、各ページ領域ごとに、読み取り(Read)されずに、後のページを書き込むページを跨れる処理が発生すると、ページ領域を“読み取り(Read)待ち（１０）”から“書き込み(Write)待ち（００）”へ遷移させる。これにより、５ページ目および６ページ目のデータ転送および第１ページ領域３１Ａおよび第２ページ領域３１Ｂへのデータの書き込みが行われ、以降第１実施形態と同様の処理が行われる。
【０１９０】
図３５は、ＡＣＣ１４により内部メモリ２０Ｇ（内部メモリコア２１のページ領域３１Ａ〜３１Ｄ）からのデータの読み出し処理を示すフローチャートである。
【０１９１】
ステップＳ１２１では、ＡＣＣ１４が、内部メモリ２０Ｇの読み出しアドレス変換機構２３への読み出し(Read)処理の発行を行う。
【０１９２】
ステップＳ１２２では、読み出しアドレス変換機構２３が、設定したレジスタ情報を基にして、入力された読み出しアドレスから内部メモリ読み出しアドレスと読み出しページを算出する。
【０１９３】
ステップ１２３では、読み出しアドレス変換機構２３が、算出した読み出しページと、前回アドレスレジスタ５７に記憶された前回の内部メモリ読み出しアドレスに対応するページとが異なるか判定し、異なればステップＳ１２４に進み、同じならばステップＳ１２５に進む。
【０１９４】
ステップＳ１２４では、内部メモリに書き込まれて保持されているページのデータのうちで、算出した読み出しページの直前のページまでの状態フラグを“書き込み(Write)待ち（００）”に遷移させ、ステップＳ１２５に進む。
【０１９５】
ステップＳ１２５からＳ１３０は、図２１のステップＳ５３からＳ５８と同じ処理である。
【０１９６】
ステップＳ１３１では、読み出しアドレス変換機構２３が行った処理における内部メモリ読み出しアドレスと読み出しページに関する情報をメモリに格納して終了する。
【０１９７】
以上、第１から第７実施形態を説明したが、各種の変形例が可能であり、例えば、第１から第７実施形態で説明した構成は適宜組み合わせることが可能である。
【０１９８】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【０１９９】
以下、実施形態に関し、更に以下の付記を開示する。
（付記１）
ＣＰＵと、
マスタ動作モジュールと、
前記マスタ動作モジュールから直接アクセス可能な内部メモリと、
前記マスタ動作モジュールから直接アクセスできない外部メモリへのアクセスを行い、前記内部メモリに前記外部メモリに記憶されたデータを転送するデータ転送部と、を備え、
前記内部メモリは、
ページ単位で論理的に分割した２以上のページ記憶領域と、
前記データ転送部により前記外部メモリから転送されたデータを、前記内部メモリのアドレスに変換して、前記２以上のページ記憶領域に書き込む書き込みアドレス変換部と、
前記マスタ動作モジュールの読み出し動作に応じて、前記マスタ動作モジュールの読み出しアドレスを前記内部メモリのアドレスに変換して、前記２以上のページ記憶領域に記憶されたデータを読み出す読み出しアドレス変換部と、
前記２以上のページ記憶領域のそれぞれに対応した状態フラグを有する状態遷移制御部と、を備え、
前記読み出しアドレス変換部が前記書き込みアドレス変換部による書き込みが行われたページ記憶領域に対して読み出し動作を行い、前記書き込みアドレス変換部が前記読み出しアドレス変換部による読み出し動作が終了したページ記憶領域に対して書き込み動作を行うように制御することを特徴とするデータ処理装置。（１）（図２−図９）
（付記２）
前記内部メモリは、
前記内部メモリの容量を規定する値を記憶する内部メモリ容量レジスタと、
前記ページ記憶領域の大きさを規定する値を記憶するページ容量レジスタと、を備え、
前記内部メモリ容量レジスタおよび前記ページ容量レジスタの値は、任意に設定可能である付記１記載のデータ処理装置。
（付記３）
前記データ転送部は、複数の前記外部メモリから並行してデータを転送する複数のデータ転送器を備え、
前記書き込みアドレス変換部は、前記複数のデータ転送器に対応した複数の書き込みアドレス変換機構を備える付記１または２記載のデータ処理装置。（２）（図９、図１０）
（付記４）
各書き込みアドレス変換機構は、
前記内部メモリへのデータ書き込みの開始アドレス情報を記憶するベースアドレスレジスタと、
データを書き込むページ記憶領域が変化する時の変化量を記憶するストライド量レジスタと、を備える付記３記載のデータ処理装置。
（付記５）
前記データ転送部は、複数の前記外部メモリから並行してデータを転送する複数のデータ転送器を備え、
前記書き込みアドレス変換部は、前記複数のデータ転送器に対応した複数のアドレス範囲レジスタを備え、
各アドレス範囲レジスタは、対応するデータ転送器によりデータが転送される前記外部メモリのアドレス範囲を記憶し、
前記書き込みアドレス変換部は、前記アドレス範囲から前記外部メモリを特定する付記１または２記載のデータ処理装置。（３）（図１４−図１６）
（付記６）
前記マスタ動作モジュールは、前記内部メモリから並行してデータを読み取る複数のマスタ動作器を備え、
前記読み出しアドレス変換部は、前記複数のマスタ動作器に対応した複数の読み出しアドレス変換機構を備える付記１から５のいずれか記載のデータ処理装置。（４）（図１７−図２１）
（付記７）
各読み出しアドレス変換機構は、
前記内部メモリからのデータ読み出しの開始アドレス情報を記憶するベースアドレスレジスタと、
データを読み出すページ記憶領域が変化する時の変化量を記憶するストライド量レジスタと、を備える付記６記載のデータ処理装置。
（付記８）
前記マスタ動作モジュールは、前記内部メモリから並行してデータを読み取る複数のマスタ動作器を備え、
前記読み出しアドレス変換部は、前記複数のマスタ動作器に対応した複数のアドレス範囲レジスタを備え、
各アドレス範囲レジスタは、対応するマスタ動作器のアドレス範囲を記憶し、
前記読み出しアドレス変換部は、前記アドレス範囲から前記マスタ動作器を特定する付記１から５のいずれか記載のデータ処理装置。
（付記９）
前記マスタ動作モジュールは、前記内部メモリからのデータの読み取りが終了すると、前記読み出しアドレス変換部に読み取り完了を通知し、
前記読み出しアドレス変換部は、前記マスタ動作モジュールが、読み取り完了が通知された前記ページ記憶領域より後のページにアクセスしたことを検出した時には、読み取り完了が通知された前記ページ記憶領域を書き込み待ちの状態に遷移させる付記１から８のいずれか記載のデータ処理装置。
（付記１０）
前記読み出しアドレス変換部は、前記マスタ動作モジュールが前回アクセスしたアドレス情報を記憶する前回アドレスレジスタを備え、
前記前回アクセスしたアドレス情報と前記マスタ動作モジュールによる読み出しアドレスを比較して、前記マスタ動作モジュールが前記内部メモリに書き込まれたデータを読み取らずに次のページにアクセスするページの読み飛ばしを行ったことを検出した時には、読み飛ばされたページを書き込み待ちの状態に遷移させる請求項１から８のいずれか記載のデータ処理装置。（５）（図３２−図３５）
【符号の説明】
【０２００】
１０  １０Ａ    データ処理装置（ＳｏＣ）
１１    バス
１２    ＣＰＵ
１３    ＤＭＡＣ
１３    電源制御ユニット（ＰＭＵ）
１４    アクセラレータ（ＡＣＣ）
１６    メモリコントローラ
１７    制御用メモリ
１８    外部メモリ
２０Ａ    内部メモリ
２１    内部メモリコア
２２    書き込みアドレス変換機構
２３    読み出しアドレス変換機構
２４    状態遷移制御部
３１Ａ−３１Ｄ    ページ領域
４１    書き込み動作制御部
５１    読み出し動作制御部
６１Ａ−６１Ｄ    状態フラグ
【図１】
0005445385.tif 000002
【図２】
0005445385.tif 000003
【図３】
0005445385.tif 000004
【図４】
0005445385.tif 000005
【図５】
0005445385.tif 000006
【図６】
0005445385.tif 000007
【図７】
0005445385.tif 000008
【図８】
0005445385.tif 000009
【図９】
0005445385.tif 000010
【図１０】
0005445385.tif 000011
【図１１】
0005445385.tif 000012
【図１２】
0005445385.tif 000013
【図１３】
0005445385.tif 000014
【図１４】
0005445385.tif 000015
【図１５】
0005445385.tif 000016
【図１６】
0005445385.tif 000017
【図１７】
0005445385.tif 000018
【図１８】
0005445385.tif 000019
【図１９】
0005445385.tif 000020
【図２０】
0005445385.tif 000021
【図２１】
0005445385.tif 000022
【図２２】
0005445385.tif 000023
【図２３】
0005445385.tif 000024
【図２４】
0005445385.tif 000025
【図２５】
0005445385.tif 000026
【図２６】
0005445385.tif 000027
【図２７】
0005445385.tif 000028
【図２８】
0005445385.tif 000029
【図２９】
0005445385.tif 000030
【図３０】
0005445385.tif 000031
【図３１】
0005445385.tif 000032
【図３２】
0005445385.tif 000033
【図３３】
0005445385.tif 000034
【図３４】
0005445385.tif 000035
【図３５】
0005445385.tif 000036