(57)【特許請求の範囲】
【請求項１】
マスタと外部メモリ間のデータ転送を行うメモリ制御装置であって、
前記マスタからのアクセス要求を受け付け、前記外部メモリへのアクセス要求を出力するマスタインタフェースと、
前記マスタインタフェースからのアクセス要求を受け付け、前記外部メモリへのアクセスを行う外部メモリインタフェースとを備え、
前記マスタインタフェースは、
アクセス要求時に前記外部メモリインタフェースから転送されたデータを保持するデータバッファと、アクセス要求されたアドレスを保持するアドレスバッファと、
新たにアクセス要求されたアドレスと前記アドレスバッファに保持されているアドレスを比較し、前記データバッファに保持されているデータのアドレス範囲内で一致しているか否かの第１の比較情報を出力する第１の比較手段と、
前記第１の比較情報が不一致を示している場合には、前記外部メモリインタフェースへアクセス要求を発行し、前記第１の比較情報が一致を示している場合には、前記外部メモリインタフェースへアクセスを発行せずに、前記データバッファからマスタにデータの出力を行うバッファ制御手段と、
前記第１の比較情報が一致か不一致かによらず、前記マスタから前記外部メモリ上の特定アドレスへのアクセス要求を検出すると、前記外部メモリインタフェースへアクセス要求を発行するか否かを判別して前記バッファ制御手段を制御する特定アクセス検出手段と
を備えることを特徴とするメモリ制御装置。
【請求項２】
前記特定アクセス検出手段は、
前記新たにアクセス要求されたアドレスと前記外部メモリ上の特定アドレスとを比較し、一致しているか否かの第２の比較情報を前記バッファ制御手段に出力する第２の比較手段と、
前記第２の比較情報が一致を示している場合には、前記アドレスバッファの内容を無効化し、擬似的にアクセス応答するよう前記バッファ制御手段を制御するバッファ無効化手段と
を備えることを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
前記特定アドレスは、外部メモリインタフェースがアクセス制御時に使用するため、前記マスタからのアクセスが禁止されている外部メモリ上の特定領域における一部のアドレスである
ことを特徴とする請求項２記載のメモリ制御装置。
【請求項４】
前記特定アクセス検出手段は、さらに、
特定アドレスを任意に設定可能な特定アドレス設定レジスタ
を備えることを特徴とする請求項２記載のメモリ制御装置。
【請求項５】
前記メモリ制御装置は、さらに、
前記外部メモリ上の共有データが更新されたことを示す通知を受け付け、前記マスタインタフェースに、前記特定のアドレスへのアクセス要求を発行するダミーアクセス発行手段
を備えることを特徴とする請求項２記載のメモリ制御装置。
【請求項６】
前記特定アクセス検出手段は、前記第１の比較情報が一致及び不一致の何れを示しているかによらず、前記新たにアクセス要求されたアドレスと過去にアクセス要求されたアドレスとの比較に基づいて、前記外部メモリインタフェースへのアクセス要求を強制的に発行するか又は禁止するよう前記バッファ制御手段を制御する
ことを特徴とする請求項１に記載のメモリ制御装置。
【請求項７】
前記特定アクセス検出手段は、
前記マスタからのアクセスが、前記外部メモリインタフェースへのアクセスであったか、前記データバッファへのアクセスであったかを示す履歴情報を保持しているバッファアクセス履歴保持手段と、
前記新たにアクセス要求されたアドレスと前記アドレスバッファに保持されているアドレスを比較し、完全に一致しているか否かの第３の比較情報をバッファ更新手段に出力する第３の比較手段と、
前記第３の比較情報が一致を示し、かつ前記バッファアクセス履歴保持手段の履歴情報が前記データバッファへのアクセスを示している場合には、前記外部メモリインタフェースへアクセス要求を強制的に発行するよう前記バッファ制御手段を制御するバッファ更新手段と
を備えることを特徴とする請求項６に記載のメモリ制御装置。
【請求項８】
前記メモリ制御装置は、さらに、
前記外部メモリ上の共有データが更新されたことを示す通知を受け付け、対応するマスタインタフェースに、前記アドレスバッファに保持されているアドレスへのアクセス要求を発行するダミーアクセス発行手段を備える
ことを特徴とする請求項７記載のメモリ制御装置。
【請求項９】
前記マスタは、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラであり、
前記通知は、前記ＤＭＡコントローラの起動要求を表し、
前記ダミーアクセス発行手段は、前記通知を受け付けると、前記アクセス要求の発行後に、データ転送を開始するよう前記ＤＭＡコントローラを制御する
ことを特徴とする請求項５又は請求項８に記載のメモリ制御装置。
【請求項１０】
前記ＤＭＡコントローラは複数のチャネルを備え、
前記通知は、前記複数のチャネルの一つの起動要求を表し、
前記メモリ制御装置は、さらに、
前記チャネル毎にイネーブル及びディセーブルの何れかに設定されるダミーアクセス制御レジスタを備え、
前記ダミーアクセス発行手段は、前記通知によって起動要求されたチャネルについて、前記ダミーアクセス制御レジスタがディセーブルに設定されている場合には、前記アクセス要求の発行を禁止する
ことを特徴とする請求項９記載のメモリ制御装置。
【請求項１１】
前記ＤＭＡコントローラは複数のチャネルを備え、
前記通知は、前記複数のチャネルの一つの起動要求を起動要因と共に表し、
前記メモリ制御装置は、さらに、
起動要因毎にイネーブル及びディセーブルの何れかに設定され、各チャネルで共用されるダミーアクセス制御レジスタを備え、
前記ダミーアクセス発行手段は、前記通知によって表された起動要因について、前記ダミーアクセス制御レジスタがディセーブルに設定されている場合には、前記アクセス要求の発行を禁止する
ことを特徴とする請求項９記載のメモリ制御装置。
【請求項１２】
前記特定アクセス検出手段は、
アクセス要求されたアドレスを少なくとも含むアクセス情報を保持しているアクセス履歴バッファと、
前記新たにアクセス要求されたアドレスを少なくとも含む新たなアクセス情報と前記アクセス履歴バッファに保持されたアクセス情報を比較し、同一のアクセスが繰り返されたか否かの第４の比較情報を出力する第４の比較手段と、
前記第４の比較情報が繰り返しアクセスを示している場合には、前記外部メモリインタフェースへアクセス要求を強制的に発行するよう前記バッファ制御手段を制御するバッファ無効化手段とを備える
ことを特徴とする請求項６に記載のメモリ制御装置。
【請求項１３】
前記バッファ無効化手段は、外部メモリインタフェースへアクセス要求を発行するようバッファ制御手段を制御する際に、
前記第４の比較情報が繰り返しアクセスを示している場合には、前記新たなアクセス要求に示される要求サイズ分のデータを要求するアクセス要求を発行するよう制御し、
前記第４の比較情報が繰り返しアクセスでないことを示している場合には、前記データバッファのサイズ分のデータを要求するアクセス要求を発行するように制御する
ことを特徴とする請求項１２記載のメモリ制御装置。
【請求項１４】
前記メモリ制御装置は、さらに、
前記第４の比較情報が繰り返しアクセスを示している場合には、前記外部メモリインタフェースから読み出したデータで前記データバッファの内容を更新するバッファ更新手段を備える
ことを特徴とする請求項１２記載のメモリ制御装置。
【請求項１５】
前記外部メモリインタフェースは、
前記外部メモリ上のアドレスを任意に設定可能なポーリングアドレス設定レジスタと、
前記ポーリングアドレス設定レジスタに設定されたアドレスへのリードアクセスでセットされ、ライトアクセスでリセットされるポーリングアクセス履歴保持手段と、
前記マスタインタフェースから前記ポーリングアドレス設定レジスタに設定されたアドレスへリードアクセス要求があった際に、前記ポーリングアクセス履歴保持手段がセットされていれば、前記外部メモリへのアクセスを禁止し、前記外部メモリをアクセスする場合に比べて短時間の内に、前記マスタインタフェースへ応答する外部メモリ選択手段とを備え、
前記特定アクセス検出手段は、さらに、
前記外部メモリインタフェースから所定時間以内に応答があった場合には、前記データバッファに保持されているデータを前記マスタへ出力するよう前記バッファ制御手段を制御するバッファ選択手段を備える
ことを特徴とする請求項１４記載のメモリ制御装置。
【請求項１６】
前記ポーリングアクセス履歴保持手段は、さらに、前記マスタインタフェースからの前記ポーリングアドレス以外へのリードアクセスでリセットされる
ことを特徴とする請求項１５記載のメモリ制御装置。
【請求項１７】
マスタと外部メモリ間のデータ転送を、
前記マスタからのアクセス要求を受け付け、前記外部メモリへのアクセス要求を出力するマスタインタフェースと、
前記マスタインタフェースからのアクセス要求を受け付け、前記外部メモリへのアクセスを行う外部メモリインタフェースとからなるメモリ制御装置を用いて行うメモリ制御方法であって、
前記マスタインタフェースは、
アクセス要求時に前記外部メモリインタフェースから転送されたデータを保持するデータバッファと、アクセス要求されたアドレスを保持するアドレスバッファとを備え、
前記メモリ制御方法は、
新たにアクセス要求されたアドレスと前記アドレスバッファに保持されているアドレスを比較し、前記データバッファに保持されているデータのアドレス範囲内で一致しているか否かの第１の比較情報を出力する第１の比較ステップと、
前記第１の比較情報が不一致を示している場合には、前記外部メモリインタフェースへアクセス要求を発行し、前記第１の比較情報が一致を示している場合には、前記外部メモリインタフェースへアクセスを発行せずに、前記データバッファからマスタにデータの出力を行うバッファ制御ステップと、
前記第１の比較情報が一致か不一致かによらず、マスタからの特定アクセスを検出して前記外部メモリインタフェースへアクセス要求を発行するか否かを判別して前記バッファ制御手段を制御する特定アクセス検出ステップと
を含むことを特徴とするメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のマスタが外部メモリ上のデータを共有し、マスタと外部メモリ間のデータ転送を行うメモリ制御装置に関するものである。
【背景技術】
【０００２】
従来、メモリ制御装置において、マスタのアクセス単位よりも、外部メモリへアクセスを行うインタフェースのアクセス単位が大きい場合、外部メモリ読み出しを効率的に行うため、外部メモリ側のアクセス単位分のデータバッファを設け、予めデータバッファ単位のデータを外部メモリから読み出して保持し、単位アドレス領域内のリードアクセスが連続して発生する場合には、外部メモリへアクセスせずに、データバッファから読み出しを行う技術が用いられている。ここで、特定のマスタが他マスタによって書き換えられた外部メモリ上のデータを読み出す際に、データバッファと外部メモリ間の整合性がとれていないことがあるため、データバッファを無効化する必要がある。この無効化アクセスによるマスタのアクセス回数を減らすために、データバッファの一部のアドレス（例えば１６バイト境界のデータブロック毎の、例えば先頭アドレスや末尾のアドレス）を特定アドレスとし、マスタからの特定アドレスへの読み出しを検出すると、バッファ制御装置がデータバッファの無効化と、外部メモリからのアクセス単位分の読み出しを同時に行っているものが開示されている（特許文献１参照）。
【特許文献１】特開平６−２４３０３７号公報（第６頁、第一図）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述の公報に開示された装置では、マスタからのアクセスがランダムに行われる場合に、データバッファの一部のアドレスである特定アドレスへの読み出しが発生すると必ずデータバッファが無効化されるため、データバッファのヒット率が低くなり、外部メモリへのアクセス効率が悪くなってしまうという課題がある。
【０００４】
また、データバッファを無効化する必要が発生したときに、ダミーアクセスとして外部メモリ上の別のアドレス領域へのアクセスを発行するという手法が従来行われているが、外部メモリへアクセスを発行するため、無駄なアクセス時間を要するという課題がある。
【０００５】
また、マスタ間で排他制御を行わない比較的簡素なシステムでは、特定のマスタが、外部メモリ上にあるシステムのステータスが他マスタによって書き換えられることを検出するために、特定のアドレスにポーリングアクセスを行う場合に、同じアドレスへの読み出しが繰り返し行われるため、データバッファがヒットし続け、外部メモリとの整合性がとれなくなるという課題があるが、上述の公報はその解決手段を開示していない。
【０００６】
本発明は、このような事情に鑑みてなされたものであり、外部メモリへのアクセス効率の悪化を抑えつつ、確実に外部メモリとの整合性が得られるメモリ制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明のメモリ制御装置は、マスタと外部メモリ間のデータ転送を行うメモリ制御装置であって、前記マスタからのアクセス要求を受け付け、前記外部メモリへのアクセス要求を出力するマスタインタフェースと、前記マスタインタフェースからのアクセス要求を受け付け、前記外部メモリへのアクセスを行う外部メモリインタフェースとを備え、前記マスタインタフェースは、アクセス要求時に前記外部メモリインタフェースから転送されたデータを保持するデータバッファと、アクセス要求されたアドレスを保持するアドレスバッファと、新たにアクセス要求されたアドレスと前記アドレスバッファに保持されているアドレスを比較し、前記データバッファに保持されているデータのアドレス範囲内で一致しているか否かの第１の比較情報を出力する第１の比較手段と、前記第１の比較情報が不一致を示している場合には、前記外部メモリインタフェースへアクセス要求を発行し、前記第１の比較情報が一致を示している場合には、前記外部メモリインタフェースへアクセスを発行せずに、前記データバッファからマスタにデータの出力を行うバッファ制御手段と、前記第１の比較情報が一致か不一致かによらず、前記マスタから前記外部メモリ上の特定アドレスへのアクセス要求を検出すると、前記外部メモリインタフェースへアクセス要求を発行するか否かを判別して前記バッファ制御手段を制御する特定アクセス検出手段とを備える。
【０００８】
また、前記特定アクセス検出手段は、前記新たにアクセス要求されたアドレスと前記外部メモリ上の特定アドレスとを比較し、一致しているか否かの第２の比較情報を前記バッファ制御手段に出力する第２の比較手段と、前記第２の比較情報が一致を示している場合には、前記アドレスバッファの内容を無効化し、擬似的にアクセス応答するよう前記バッファ制御手段を制御するバッファ無効化手段とを備えてもよい。
【０００９】
また、前記特定アドレスは、外部メモリインタフェースがアクセス制御時に使用するため、前記マスタからのアクセスが禁止されている外部メモリ上の特定領域における一部のアドレスであるとしてもよい。
【００１０】
また、前記特定アクセス検出手段は、さらに、特定アドレスを任意に設定可能な特定アドレス設定レジスタを備えてもよい。
【００１１】
また、前記メモリ制御装置は、さらに、前記外部メモリ上の共有データが更新されたことを示す通知を受け付け、前記マスタインタフェースに、前記特定のアドレスへのアクセス要求を発行するダミーアクセス発行手段を備えてもよい。
【００１２】
また、前記特定アクセス検出手段は、前記第１の比較情報が一致及び不一致の何れを示しているかによらず、前記新たにアクセス要求されたアドレスと過去にアクセス要求されたアドレスとの比較に基づいて、前記外部メモリインタフェースへのアクセス要求を強制的に発行するか又は禁止するよう前記バッファ制御手段を制御してもよい。
【００１３】
また、前記特定アクセス検出手段は、前記マスタからのアクセスが、前記外部メモリインタフェースへのアクセスであったか、前記データバッファへのアクセスであったかを示す履歴情報を保持しているバッファアクセス履歴保持手段と、前記新たにアクセス要求されたアドレスと前記アドレスバッファに保持されているアドレスを比較し、完全に一致しているか否かの第３の比較情報をバッファ更新手段に出力する第３の比較手段と、前記第３の比較情報が一致を示し、かつ前記バッファアクセス履歴保持手段の履歴情報が前記データバッファへのアクセスを示している場合には、前記外部メモリインタフェースへアクセス要求を強制的に発行するよう前記バッファ制御手段を制御するバッファ更新手段とを備えてもよい。
【００１４】
また、前記メモリ制御装置は、さらに、前記外部メモリ上の共有データが更新されたことを示す通知を受け付け、対応するマスタインタフェースに、前記アドレスバッファに保持されているアドレスへのアクセス要求を発行するダミーアクセス発行手段を備えてもよい。
【００１５】
また、前記マスタは、ＤＭＡコントローラであり、前記通知は、前記ＤＭＡコントローラの起動要求を表し、前記ダミーアクセス発行手段は、前記通知を受け付けると、前記アクセス要求の発行後に、データ転送を開始するよう前記ＤＭＡコントローラを制御してもよい。
【００１６】
また、前記ＤＭＡコントローラは複数のチャネルを備え、前記通知は、前記複数のチャネルの一つの起動要求を表し、前記メモリ制御装置は、さらに、前記チャネル毎にイネーブル及びディセーブルの何れかに設定されるダミーアクセス制御レジスタを備え、前記ダミーアクセス発行手段は、前記通知によって起動要求されたチャネルについて、前記ダミーアクセス制御レジスタがディセーブルに設定されている場合には、前記アクセス要求の発行を禁止してもよい。
【００１７】
また、前記ＤＭＡコントローラは複数のチャネルを備え、前記通知は、前記複数のチャネルの一つの起動要求を起動要因と共に表し、前記メモリ制御装置は、さらに、起動要因毎にイネーブル及びディセーブルの何れかに設定され、各チャネルで共用されるダミーアクセス制御レジスタを備え、前記ダミーアクセス発行手段は、前記通知によって表された起動要因について、前記ダミーアクセス制御レジスタがディセーブルに設定されている場合には、前記アクセス要求の発行を禁止してもよい。
【００１８】
また、前記特定アクセス検出手段は、アクセス要求されたアドレスを少なくとも含むアクセス情報を保持しているアクセス履歴バッファと、前記新たにアクセス要求されたアドレスを少なくとも含む新たなアクセス情報と前記アクセス履歴バッファに保持されたアクセス情報を比較し、同一のアクセスが繰り返されたか否かの第４の比較情報を出力する第４の比較手段と、前記第４の比較情報が繰り返しアクセスを示している場合には、前記外部メモリインタフェースへアクセス要求を強制的に発行するよう前記バッファ制御手段を制御するバッファ無効化手段とを備えてもよい。
【００１９】
また、前記バッファ無効化手段は、外部メモリインタフェースへアクセス要求を発行するようバッファ制御手段を制御する際に、前記第４の比較情報が繰り返しアクセスを示している場合には、前記新たなアクセス要求に示される要求サイズ分のデータを要求するアクセス要求を発行するよう制御し、前記第４の比較情報が繰り返しアクセスでないことを示している場合には、前記データバッファのサイズ分のデータを要求するアクセス要求を発行するように制御してもよい。
【００２０】
また、前記メモリ制御装置は、さらに、前記第４の比較情報が繰り返しアクセスを示している場合には、前記外部メモリインタフェースから読み出したデータで前記データバッファの内容を更新するバッファ更新手段を備えてもよい。
【００２１】
また、前記外部メモリインタフェースは、前記外部メモリ上のアドレスを任意に設定可能なポーリングアドレス設定レジスタと、前記ポーリングアドレス設定レジスタに設定されたアドレスへのリードアクセスでセットされ、ライトアクセスでリセットされるポーリングアクセス履歴保持手段と、前記マスタインタフェースから前記ポーリングアドレス設定レジスタに設定されたアドレスへリードアクセス要求があった際に、前記ポーリングアクセス履歴保持手段がセットされていれば、前記外部メモリへのアクセスを禁止し、前記外部メモリをアクセスする場合に比べて短時間の内に、前記マスタインタフェースへ応答する外部メモリ選択手段とを備え、前記特定アクセス検出手段は、さらに、前記外部メモリインタフェースから所定時間以内に応答があった場合には、前記データバッファに保持されているデータを前記マスタへ出力するよう前記バッファ制御手段を制御するバッファ選択手段を備えてもよい。
【００２２】
また、前記ポーリングアクセス履歴保持手段は、さらに、前記マスタインタフェースからの前記ポーリングアドレス以外へのリードアクセスでリセットされるとしてもよい。
【００２３】
また、本発明は、このようなメモリ制御装置として実現することができるだけでなく、そのようなメモリ制御装置が備える特徴的な手段によって実行される処理をステップとするメモリ制御方法として実現することも、また、メモリ制御用の集積回路装置として実現することもできる。
【発明の効果】
【００２４】
本発明に係るメモリ制御装置によれば、特定アドレスが外部メモリ上に定められるため、マスタがデータバッファ内のデータをランダムにアクセスする場合に、所望しないデータバッファの無効化が行われることがなくなる。これにより、データバッファのヒット率の低下を防ぐことができ、効率良く外部メモリへアクセスすることができる。
【００２５】
また、特定アドレスへのアクセス要求を発行した場合、データバッファは無効化されるが、外部メモリへのアクセスが行われないので、他マスタによって書き換えられる外部メモリ上のデータにポーリングアクセスを行う場合のように、必要な無効化を行う際に無駄なアクセスが外部メモリまで出て行かない。これにより、外部メモリへのアクセス負荷を増大させることなく、データバッファと外部メモリ間の整合性を保証することができる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施の形態について図面を参照しながら説明する。
【００２７】
（実施の形態１）
図１は、実施の形態１におけるメモリ制御装置１９０の機能的な構成の一例を示すブロック図である。図１には、メモリ制御装置１９０と共に、第１マスタ１００、第２マスタ１３０、第３マスタ１５０、及び外部メモリ１８０が示される。
【００２８】
第１マスタ１００、第２マスタ１３０、及び第３マスタ１５０は、それぞれメモリ制御装置１９０を介して、外部メモリ１８０上のデータにアクセスする。
【００２９】
メモリ制御装置１９０は、各マスタによって共有される外部メモリ１８０の共有領域１８１にあるデータへの、各マスタからのアクセス要求を処理する装置であり、第１マスタ１００、第２マスタ１３０、及び第３マスタ１５０にそれぞれ対応して設けられる第１マスタＩ／Ｆ（インタフェース）１１０、第２マスタＩ／Ｆ１４０、及び第３マスタＩ／Ｆ１６０、並びに外部メモリＩ／Ｆ１７０から構成される。
【００３０】
外部メモリ１８０は、外部メモリＩ／Ｆ１７０に接続され、共有領域１８１と特定領域１８２とを含む。
【００３１】
共有領域１８１は、外部メモリ１８０上の一部の領域であり、各マスタ間で共有されるデータが保持される。具体的には、共有領域１８１は、例えば第２マスタ１３０から第１マスタ１００へのデータ受け渡しに用いられる。
【００３２】
特定領域１８２は、外部メモリ１８０上に存在し、例えば、外部メモリＩ／Ｆがリシンク等のアクセス制御時に使用するため、各マスタからのアクセスが禁止されている特定アドレスで示される領域である。
【００３３】
第１マスタ１００は、第１マスタＩ／Ｆ１１０に接続され、ＣＰＵ１０１を持つ。
第２マスタ１３０は、共有領域１８１上のデータを書き換えると、第１マスタ１００に対して割込み要求信号を出力する。この信号が入力されると第１マスタ１００におけるＣＰＵ１０１は、第１マスタＩ／Ｆ１１０へリードアクセス要求を出力することによって、共有領域１８１上の書き換えられたデータの読み出しを開始する。
【００３４】
第１マスタＩ／Ｆ１１０は、第１マスタ１００からのアクセス要求を受け付け、外部メモリＩ／Ｆ１７０へのアクセス要求を発行するインタフェースであり、バッファ制御部１１１と、特定アクセス検出部１２３とから構成される。
【００３５】
バッファ制御部１１１は、データバッファ１１２、アドレスバッファ１１３、及び第１比較部１１４から構成される。特定アクセス検出部１２３は、バッファ無効化部１２０、第２比較部１２１、及び特定アドレスレジスタ１２２から構成される。
【００３６】
データバッファ１１２は、外部メモリ１８０上のデータの少なくとも一部の複製を保持している。
【００３７】
アドレスバッファ１１３は、データバッファ１１２に保持されているデータのアドレスを保持している。
【００３８】
第１比較部１１４は、第１マスタ１００からアクセス要求されるアドレスと、アドレスバッファ１１３に保持されているアドレスとを比較することにより、第１マスタ１００からアクセス要求されるアドレスがデータバッファ１１２に保持されているデータのアドレス範囲内で一致しているか否かを示す第１の比較情報を出力する。
【００３９】
バッファ制御部１１１は、バッファ無効化部１２０から無効化制御信号が出力されておらず、かつ第１比較部１１４の第１の比較情報が不一致を示している場合には、外部メモリＩ／Ｆ１７０へアクセス要求を発行し、一致を示している場合には、データバッファ１１２に保持されているデータを第１マスタ１００へ出力する。
【００４０】
特定アドレスレジスタ１２２は、ＣＰＵ１０１から、外部メモリ１８０における特定領域１８２のアドレスを設定され、保持している。
【００４１】
第２比較部１２１は、第１マスタ１００からアクセス要求されるアドレスと、特定アドレスレジスタ１２２に保持されているアドレスとを比較し、一致しているか否かを示す第２の比較情報をバッファ無効化部１２０に出力する。
【００４２】
バッファ無効化部１２０は、第２比較部１２１から第２の比較情報を取得し、取得された第２の比較情報が一致を示している場合には無効化制御信号をバッファ制御部１１１に出力する。
【００４３】
バッファ制御部１１１は、この無効化制御信号が入力されると、データバッファ１１２を無効化し、即座に第１マスタ１００へアクセス応答する。これにより、第１マスタ１００から次回アクセス要求時には、第１比較部１１４の第１の比較情報に関係なく、外部メモリＩ／Ｆ１７０へのアクセス要求が発行される。
【００４４】
データバッファ１１２の無効化は、具体的に、例えばアドレスバッファ１１３を、第１比較部１１４が、本来の比較結果とは関係なく不一致を示す第１の比較情報を出力するように、無効なアドレスで更新することによって行ってもよい。また、データバッファが無効化されているか否かを表す図示しないレジスタを設けて、その内容を更新することによって行ってもよい。
【００４５】
第２マスタ１３０は、第２マスタＩ／Ｆ１４０に接続される。
第２マスタＩ／Ｆ１４０は、第２マスタ１３０からのアクセス要求を受け付け、外部メモリＩ／Ｆ１７０へのアクセス要求を発行する。
【００４６】
第３マスタ１５０は、第３マスタＩ／Ｆ１６０に接続される。
第３マスタＩ／Ｆ１６０は、第３マスタ１５０からのアクセス要求を受け付け、外部メモリＩ／Ｆ１７０へのアクセス要求を発行する。
【００４７】
第２マスタＩ／Ｆ１４０及び第３マスタＩ／Ｆ１６０は、それぞれ第１マスタＩ／Ｆ１１０と同様の構成を有するので、説明を省略する。
【００４８】
外部メモリＩ／Ｆ１７０は、第１マスタＩ／Ｆ１１０、第２マスタＩ／Ｆ１４０、第３マスタＩ／Ｆ１６０からの、それぞれのアクセス要求を受け付け、外部メモリ１８０へアクセスを行う。
【００４９】
（動作の説明１）
次に、実施の形態１の動作例について説明する。
【００５０】
図２は、実施の形態１におけるメモリ制御装置１９０の動作例を表すフローチャートである。
【００５１】
第１マスタ１００は、特定アドレスレジスタ１２２に対して外部メモリ１８０上の特定領域１８２を示すアドレス値を設定する（Ｓ１１０１）。
【００５２】
第２マスタ１３０は、第１マスタ１００へ受け渡しを行うデータを外部メモリ１８０上の共有領域１８１へ書き込むと（Ｓ１１０２）、受け渡すべきデータの準備が整ったことを通知するため第１マスタ１００へ割り込み要求を発行する（Ｓ１１０３）。
【００５３】
第１マスタ１００は、第２マスタ１３０からの割り込み要求を受け付けると、通常動作ではアクセスが禁止されている外部メモリ１８０上の特定領域１８２へライトアクセス要求を発行する（Ｓ１１０４）。このライトアクセス要求を処理するため、サブルーチンである第１処理が呼び出される（Ｓ１１０７）。第１処理の詳細については後述する。
【００５４】
第１マスタ１００は、第２マスタ１３０によって外部メモリ１８０上の共有領域１８１に書き込まれたデータを読み出すためにリードアクセス要求を発行する（Ｓ１１０５）。このリードアクセス要求を処理するため、第１処理が呼び出される（Ｓ１１１３）。
【００５５】
第１マスタ１００は、共有領域１８１に書き込まれたデータの読み出しを完了するまで、Ｓ１１０５に戻ってリードアクセス要求を発行し（Ｓ１１０６でＮｏ）、読み出しを完了すると動作を終了する（Ｓ１１０６でＹｅｓ）。
【００５６】
次に、第１処理について説明する。この処理は、第１マスタＩ／Ｆ１１０によって実行されるサブルーチン処理である。
【００５７】
第２比較部１２１からの第２の比較情報が一致を示している場合（Ｓ１１０８でＹｅｓ）、バッファ無効化部１２０は、無効化制御信号をバッファ制御部１１１に出力することによって、バッファ制御部１１１がデータバッファ１１２を無効化して、即座に第１マスタ１００へアクセス応答するよう制御する（Ｓ１１０９）。ここで、このアクセス応答は、外部メモリＩ／Ｆ１７０へアクセス要求を発行してからアクセス応答するまでの時間に比べて、充分短い時間のうちになされることに注意する。
【００５８】
第２の比較情報が不一致を示している場合には、無効化制御信号は出力されず（Ｓ１１０８でＮｏ）、バッファ制御部１１１は、第１比較部１１４からの第１の比較情報が一致を示していれば（Ｓ１１１０でＹｅｓ）、データバッファ１１２に保持されているデータを第１マスタ１００に出力し（Ｓ１１１１）、第１の比較情報が不一致を示していれば（Ｓ１１１０でＮｏ）、外部メモリＩ／Ｆ１７０へアクセス要求を発行する（Ｓ１１１２）。
【００５９】
なお、初期状態においてデータバッファ１１２は無効化されているとしてもよい。そうすれば、最初に呼び出される第１処理では、第１の比較情報も第２の比較情報も不一致を示し（Ｓ１１０８、Ｓ１１１０で共にＮｏ）、必ずステップＳ１１１２で外部メモリＩ／Ｆ１７０へのアクセス要求が発行される。
【００６０】
以上の構成によれば、データバッファの無効化のための特定アドレスを、データバッファの外の外部メモリ上に設定することが可能となる。そのため、マスタがデータバッファ内のデータをランダムにアクセスする場合に、所望しないデータバッファの無効化が行われることがなくなり、データバッファのヒット率の低下を防ぐことができ、効率良く外部メモリへアクセスすることができる。
【００６１】
また、特定のマスタが、他マスタによって書き換えられる外部メモリ上のデータにポーリングアクセスを行う場合のように、必要に応じて無効化のためのアクセスを行う時でも、外部メモリへのアクセスが行われないため、無駄なアクセスが省かれる。
【００６２】
これにより、無効化によって外部メモリへのアクセス負荷を増大させることなく、しかも無効化の直後には必ず外部メモリへのアクセスが行われるため、データバッファと外部メモリ間の整合性を確実に得ることができる。
【００６３】
実施の形態１では、外部メモリ上の特定領域における一部のアドレスを、データバッファの無効化のための特定アドレスとして利用する構成について説明した。
【００６４】
しかしながら、実施の形態１の構成では、外部メモリＩ／Ｆがアクセス制御時に使用する特定領域が不明な場合や、確保できない場合には、特定アドレスを設定できないという課題がある。このような課題を解決するために、外部メモリ上の特定領域を用いずに、データバッファの無効化が可能となる構成が望まれる。
【００６５】
以下、そのような構成について、実施の形態２で説明する。
【００６６】
（実施の形態２）
図３は、実施の形態２におけるメモリ制御装置１９１の機能的な構成の一例を示すブロック図である。図３には、メモリ制御装置１９１と共に、第１マスタ１００、第２マスタ１３０、第３マスタ１５０、及び外部メモリ１８０が示される。
【００６７】
メモリ制御装置１９１は、実施の形態１において説明したメモリ制御装置１９０（図１を参照）の第１マスタＩ／Ｆ１１０における特定アクセス検出部１２３を、特定アクセス検出部２２４に置き換えて構成される。図３において、メモリ制御装置１９０と同様の機能ブロックについては、同一の番号を付し、その説明を省略する。
【００６８】
特定アクセス検出部２２４は、同一のアドレスへの連続するアクセス要求があった場合、１回おきに強制的に外部メモリ１８０へアクセスするようバッファ制御部１１１を制御する部であり、バッファ更新部２２０、バッファアクセス履歴保持部２２１、及び第３比較部２２３から構成される。
【００６９】
バッファアクセス履歴保持部２２１は、第１マスタ１００からのアクセス要求があると、そのアクセス要求に応じて行われたアクセスが、外部メモリＩ／Ｆ１７０へのアクセスであったか、データバッファ１１２へのアクセスであったかを示す履歴情報を保持する。
【００７０】
この履歴情報は、具体的には、第１マスタ１００からの前記アクセス要求に応じて、外部メモリＩ／Ｆ１７０へのアクセス要求が発行されたか、データバッファ１１２から第１マスタ１００にデータの出力が行われたかを表している。
【００７１】
第３比較部２２３は、第１マスタ１００からアクセス要求されるアドレスと、アドレスバッファ１１３に保持されたアドレスを比較し、完全に一致しているか否かの第３の比較情報をバッファ更新部２２０に出力する。
【００７２】
バッファ更新部２２０は、第３比較部２２３から第３の比較情報を取得し、またバッファアクセス履歴保持部２２１から履歴情報を取得する。そして、第３の比較情報が一致を示し、かつ履歴情報がデータバッファへのアクセスを示している場合には、更新制御信号をバッファ制御部１１１に出力する。バッファ制御部１１１は、この更新制御信号を与えられると、第１比較部１１４の第１の比較情報に関係なく、外部メモリＩ／Ｆ１７０へのアクセス要求を発行する。
【００７３】
（動作の説明２）
次に、実施の形態２の動作例について説明する。
【００７４】
図４は、実施の形態２におけるメモリ制御装置１９１の動作例を表すフローチャートである。
【００７５】
動作の説明１において説明したメモリ制御装置１９０の動作例（図２を参照）と同様のステップについては、同一の番号を付し、その説明を省略する。
【００７６】
第１マスタ１００は、第２マスタ１３０からの割り込み要求を受け付けると、共有領域から最初にデータを読み出すことが予定されているアドレスへのリードアクセス要求を予備的に発行する（Ｓ１２０１）。このリードアクセス要求を処理するため、サブルーチンである第２処理が呼び出される（Ｓ１２０２）。第２処理の詳細については後述する。
【００７７】
その後、第１マスタ１００は、第２マスタ１３０によって外部メモリ１８０上の共有領域１８１に書き込まれたデータを読み出すためにリードアクセス要求を発行する。このリードアクセス要求を処理するため、第２処理が呼び出される（Ｓ１２０５）。
【００７８】
第２処理において、第３比較部２２３からの第３の比較情報が一致を示している場合には（Ｓ１２０３でＹｅｓ）、バッファアクセス履歴保持部２２１の履歴情報がデータバッファ１１２へのアクセスを示していれば（Ｓ１２０４でＹｅｓ）、バッファ更新部２２０は、第１の更新制御信号をバッファ制御部１１１に出力することによって、バッファ制御部１１１が外部メモリＩ／Ｆ１７０へのアクセス要求を発行するよう制御する（Ｓ１１１２）。また、バッファアクセス履歴保持部２２１の履歴情報が外部メモリ１８０へのアクセスを示していれば（Ｓ１２０４でＮｏ）、バッファ更新部２２０は、第２の更新制御信号をバッファ制御部１１１に出力することによって、バッファ制御部１１１がデータバッファ１１２のデータを第１マスタ１００へ出力するよう制御する（Ｓ１１１１）。
【００７９】
他方、第３比較部２２３からの第３の比較情報が不一致を示している場合には、第１及び第２の更新制御信号は出力されず（Ｓ１２０３でＮｏ）、バッファ制御部１１１は、第１比較部１１４からの第１の比較情報が一致を示していれば（Ｓ１１１０でＹｅｓ）、データバッファ１１２に保持されているデータを第１マスタ１００に出力し（Ｓ１１１１）、第１の比較情報が不一致を示していれば（Ｓ１１１０でＮｏ）、外部メモリＩ／Ｆ１７０へアクセス要求を発行する（Ｓ１１１２）。
【００８０】
ここで、ステップＳ１２０１での予備的なリードアクセスから、ステップＳ１１０５での最初のデータ読み出しにおいて、外部メモリへのアクセス負荷の増大なしに、データバッファと外部メモリ間の整合性が保証されることを説明する。
【００８１】
ステップＳ１２０１で、共有領域から最初に読み出すことが予定されているデータへの予備的なリードアクセス要求が発行されているため、ステップＳ１１０５での最初のデータ読み出しから呼び出されるステップＳ１２０３では必ず第３の比較情報が一致を示す。
【００８２】
ステップＳ１２０４でバッファアクセス履歴保持部２２１の履歴情報が参照される。このときの履歴情報は、前述した予備的なリードアクセス要求に応じて、データバッファ１１２がアクセスされたか外部メモリ１８０がアクセスされたかを示している。
【００８３】
データバッファ１１２へのアクセスが示されている場合には、ステップＳ１１１２で外部メモリＩ／Ｆへのリードアクセス要求が発行され、最新のデータが取得されるので、データバッファ１１２と外部メモリ１８０間の整合性は保証される。
【００８４】
他方、外部メモリ１８０へのアクセスが示されている場合には、ステップＳ１１１１でデータバッファのデータが出力されるが、その内容は、直前の予備的なアクセス要求で外部メモリから取得されたばかりの最新の内容であり、やはり、データバッファ１１２と外部メモリ１８０間の整合性は保証される。
【００８５】
そして、この両者の何れにおいても、外部メモリ１８０へのアクセスは、一回で済んでいる。
【００８６】
以上の構成によれば、アクセス開始アドレスをダミーアクセスに使用することによって、外部メモリ１８０上に実施の形態１で述べたような特定領域を設定できない場合においても、外部メモリへの無駄なアクセス時間を増やすことなく、データバッファの無効化が可能となるという効果が得られる。
【００８７】
実施の形態２では、連続する同一アドレスへのリードアクセスによって、外部メモリへの無駄なアクセスを増やすことなく、外部メモリから最新のデータを取得可能とするための構成について説明した。
【００８８】
しかしながら、実施の形態１や実施の形態２では、データバッファを無効化して外部メモリから最新のデータを取得するため、プログラムの実行によって意識的に、特定アドレスへの事前のライトアクセスや、アクセス開始アドレスへの予備的なリードアクセスを発行する必要がある、言い換えれば、ソフトウェアによるケアが必要となるという課題がある。このような課題を解決するために、ソフトウェアによるケアなしに、データバッファの無効化が可能となる構成が望まれる。
【００８９】
以下、そのような構成について、実施の形態３と実施の形態４とで説明する。
【００９０】
（実施の形態３）
図５は、実施の形態３におけるメモリ制御装置１９２の機能的な構成の一例を示すブロック図である。図５には、メモリ制御装置１９２と共に、第１マスタ１００、第２マスタ１３０、第３マスタ１５０、及び外部メモリ１８０が示される。
【００９１】
メモリ制御装置１９２は、実施の形態１において説明したメモリ制御装置１９０（図１を参照）に、ダミーアクセス発行部３０２を追加して構成される。図５において、メモリ制御装置１９０と同様の機能ブロックについては、同一の番号を付し、その説明を省略する。
【００９２】
ダミーアクセス発行部３０２は、外部メモリ１８０上の共有領域１８１のデータが更新されたことを示す通知である割込み要求を第２マスタ１３０から受け付け、第１マスタＩ／Ｆ１１０に、前述した特定アドレスへのアクセス要求を発行する部である。
【００９３】
ダミーアクセス発行部３０２は、前記アクセス要求への応答を第１マスタＩ／Ｆ１１０から受け取ると、ＣＰＵ１０１へアクセス完了通知を発行する。
【００９４】
ここで、割込み要求とアクセス完了通知とは同じ規格の信号であるとし、実施の形態１において第２マスタ１３０からＣＰＵ１０１へ供給されていた割込み要求を、ダミーアクセス発行部３０２が中継すると考えてもよい。
【００９５】
（動作の説明３）
次に、実施の形態３の動作例について説明する。
【００９６】
図６は、実施の形態３におけるメモリ制御装置１９２の動作例を表すフローチャートである。
【００９７】
動作の説明１において説明したメモリ制御装置１９０の動作例（図２を参照）と同様のステップについては、同一の番号を付し、その説明を省略する。
【００９８】
ダミーアクセス発行部３０２は、割込み要求を受け付けると、特定アドレスへのアクセス要求（以下では、ダミーアクセス要求とも記す）を、第１マスタＩ／Ｆ１１０へ発行する（Ｓ１３０１）。
【００９９】
そして、ダミーアクセス発行部３０２は、第１マスタＩ／Ｆ１１０からアクセス応答を受け取ると、ＣＰＵ１０１にアクセス完了通知を発行する（Ｓ１３０２）。
【０１００】
以上の構成により、無効化のためのアクセスがダミーアクセス発行部３０２から第１マスタＩ／Ｆ１１０へと発行されるので、ソフトウェアで意識的にダミーアクセス要求を発行する必要がなくなり、しかもデータバッファと外部メモリ間の整合性を保証できることは変わらないという効果がある。
【０１０１】
（実施の形態４）
次に、実施の形態４の構成について説明する。
【０１０２】
図７は、実施の形態４におけるメモリ制御装置１９３の機能的な構成の一例を示すブロック図である。図７には、メモリ制御装置１９３と共に、第１マスタ１００、第２マスタ１３０、第３マスタ１５０、及び外部メモリ１８０が示される。
【０１０３】
メモリ制御装置１９３は、実施の形態２において説明したメモリ制御装置１９１（図３を参照）に、ダミーアクセス発行部４０２を追加して構成される。図７において、メモリ制御装置１９１と同様のブロックについては、同一の番号を付し、その説明を省略する。
【０１０４】
ダミーアクセス発行部４０２は、外部メモリ１８０上の共有領域１８１のデータが更新されたことを示す通知である割込み要求を第２マスタ１３０から受け付け、第１マスタＩ／Ｆ２１０に、前述した特定アドレスへのアクセス要求を発行する部である。
【０１０５】
ダミーアクセス発行部４０２は、前記アクセス要求への応答を第１マスタＩ／Ｆ１１０から受け取ると、ＣＰＵ１０１へアクセス完了通知を発行する。
【０１０６】
ここで、割込み要求とアクセス完了通知とは同じ規格の信号であるとし、実施の形態２において第２マスタ１３０からＣＰＵ１０１へ供給されていた割込み要求を、ダミーアクセス発行部４０２が中継すると考えてもよい。
【０１０７】
（動作の説明４）
次に、実施の形態４の動作例について説明する。
【０１０８】
図８は、実施の形態４におけるメモリ制御装置１９３の動作例を表すフローチャートである。
【０１０９】
動作の説明２において説明したメモリ制御装置１９１の動作例（図４を参照）と同様のステップについては、同一の番号を付し、その説明を省略する。
【０１１０】
ダミーアクセス発行部４０２は、割込み要求を受け付けると、共有領域から最初に読み出すデータのアドレスへのダミーアクセス要求を、第１マスタＩ／Ｆ２１０へ発行する（Ｓ１４０１）。
【０１１１】
そして、ダミーアクセス発行部４０２は、第１マスタＩ／Ｆ２１０からアクセス応答を受け取ると、ＣＰＵ１０１にアクセス完了通知を発行する（Ｓ１４０２）。
【０１１２】
以上の構成により、無効化のためのアクセスがダミーアクセス発行部４０２から第１マスタＩ／Ｆ２１０へと発行されるので、ソフトウェアで意識的にダミーアクセス要求を発行する必要がなくなり、しかもデータバッファと外部メモリ間の整合性を保証できることは変わらないという効果がある。
【０１１３】
なお、実施の形態３及び実施の形態４では、第１マスタ１００のＣＰＵ１０１に代わって、ダミーアクセス発行部３０２及び４０２がダミーアクセス要求を発行するとしたが、ＤＭＡＣ（ＤＭＡコントローラ）を備えるマスタにダミーアクセス発行部を適用してもよい。その場合、前述した割込み要求は、ＤＭＡＣの起動要求を表す。ＤＭＡＣは一般的に、ダミーアクセスを発行するためのプログラム実行機能を持たないから、ダミーアクセス発行部がＤＭＡＣに代わってダミーアクセス要求を発行する意義は大きい。
【０１１４】
実施の形態３及び実施の形態４では、第１マスタ１００のＣＰＵ１０１に代わって、ダミーアクセス発行部３０２及び４０２がダミーアクセス要求を発行することによって、ソフトウェアによるケアを不要にし、しかもデータバッファと外部メモリ間の整合性を保証できる構成について説明した。また、そのような構成が、ＤＭＡＣを備えるマスタに特に好適であることを説明した。
【０１１５】
しかしながら、一般にＤＭＡＣは複数のチャネルを持っており、その中には、例えば外部入出力デバイスからデータを転送するチャネルのように、起動要求が掛かった際にダミーアクセス要求を行うと、最初のデータが読み捨てられてしまうという問題を生じるチャネルがあることも考えられる。そのため、チャネル毎や起動要因毎にダミーアクセス要求の発行を禁止できる構成が望まれる。
【０１１６】
以下、そのような構成について、実施の形態５と実施の形態６とで説明する。
【０１１７】
（実施の形態５）
図９は、実施の形態５におけるメモリ制御装置１９４の機能的な構成の一例を示すブロック図である。図９には、メモリ制御装置１９４と共に、第１マスタ５００、第２マスタ１３０、第３マスタ１５０、及び外部メモリ１８０が示される。
【０１１８】
メモリ制御装置１９４は、実施の形態４において説明したメモリ制御装置１９３（図７を参照）のダミーアクセス発行部４０２に代えて、ＤＭＡＣのチャネルに固有のダミーアクセス発行部５０４及びダミーアクセス制御レジスタ５０３を備える。図９において、メモリ制御装置１９３と同様の機能ブロックについては、同一の番号を付し、その説明を省略する。また、第１マスタＩ／Ｆ２１０の詳細な記載を省略する。
【０１１９】
第１マスタ５００は、ＣＰＵ１０１及びＤＭＡＣ５０１から構成される。ＤＭＡＣ５０１は、３チャネルのＤＭＡコントローラであり、第１チャネル５０２、第２チャネル５０５、及び第３チャネル５０６から構成される。第１チャネル５０２の中に、メモリ制御装置１９４の一部分としてのダミーアクセス発行部５０４及びダミーアクセス制御レジスタ５０３が示される。
【０１２０】
第１チャネル５０２は、第２マスタ１３０から起動要求を受け付けると、例えば図示しない構成レジスタに予め設定された内容に従ってデータ転送を開始する。
【０１２１】
ダミーアクセス制御レジスタ５０３は、第１チャネル５０２に起動要求が受け付けられた際にダミーアクセスを発行するか否か（イネーブルかディセーブルか）の設定を保持しており、設定内容をダミーアクセス発行部５０４に出力する。
【０１２２】
同様のダミーアクセス制御レジスタが、第２チャネル５０５、第３チャネル５０６にもそれぞれ設けられる（図示省略）。
【０１２３】
ダミーアクセス発行部５０４は、起動要求が受け付けられると、ダミーアクセス制御レジスタ５０３にイネーブルが設定されていれば、前述したダミーアクセス発行部４０２が発行するダミーアクセス要求と同等のダミーアクセス要求を発行し、ディセーブルが設定されていれば、前記ダミーアクセス要求の発行を禁止する。
【０１２４】
同様のダミーアクセス発行部が、第２チャネル５０５、第３チャネル５０６にもそれぞれ設けられる（図示省略）。
【０１２５】
第２チャネル５０５、及び第３チャネル５０６は、第１チャネル５０２と同様に構成され、それぞれ、起動要求を受け付けると、ダミーアクセス制御レジスタの設定内容に応じてダミーアクセス要求を発行した後、予め定められたデータ転送を開始する。
【０１２６】
（動作の説明５）
次に、実施の形態５の動作例について説明する。
【０１２７】
図１０は、実施の形態５におけるメモリ制御装置１９４の動作例を表すフローチャートである。
【０１２８】
動作の説明４において説明したメモリ制御装置１９３の動作例（図８を参照）と同様のステップについては、同一の番号を付し、その説明を省略する。ここでは、ダミーアクセス発行部５０４は、ダミーアクセス発行部４０２が発行するダミーアクセス要求と同様のダミーアクセス要求を発行するとして説明する。
【０１２９】
ＣＰＵ１０１は、ダミーアクセス制御レジスタ５０３に対して、ダミーアクセス要求を発行するか否かの設定を、チャネル毎に行う（Ｓ１５０１）。
【０１３０】
外部メモリ１８０上の共有領域１８１が更新され、第２マスタ１３０から割り込み要求（ここでは第１チャネル５０２への起動要求であるとする）を受け付けると、起動を要求された第１チャネル５０２のダミーアクセス発行部５０４は、ダミーアクセス制御レジスタ５０３の内容を参照し、イネーブルに設定されていれば（Ｓ１５０２でＹｅｓ）、共有領域１８１から最初に読み出すデータのアドレスへのダミーアクセス要求を第１マスタＩ／Ｆ２１０へ発行し、ディセーブルに設定されていれば、前記ダミーアクセス要求の発行を禁止する（Ｓ１５０２でＮｏ）。
【０１３１】
その後、ＤＭＡＣ５０１の第１チャネル５０２は、共有領域１８１のデータのアクセスを行う（Ｓ１１０５〜Ｓ１１０６）。
【０１３２】
以上の構成によれば、ＤＭＡＣ起動時におけるダミーアクセス発行の有無をチャネル毎に制御可能となるので、ダミーアクセスが不要又は有害となるチャネルについて起動時におけるダミーアクセス発行を禁止できるという効果がある。
【０１３３】
（実施の形態６）
次に、実施の形態６の構成について説明する。
【０１３４】
図１１は、実施の形態６におけるメモリ制御装置１９５の機能的な構成の一例を示すブロック図である。図１１には、メモリ制御装置１９５と共に、第１マスタ６００、第２マスタ１３０、第３マスタ１５０、及び外部メモリ１８０が示される。
【０１３５】
メモリ制御装置１９５は、実施の形態４において説明したメモリ制御装置１９３（図７を参照）のダミーアクセス発行部４０２に代えて、ＤＭＡＣのチャネルに固有のダミーアクセス発行部６０３、及びチャネルに共通のダミーアクセス制御レジスタ６０６を備える。図１１において、メモリ制御装置１９３と同様の機能ブロックについては、同一の番号を付し、その説明を省略する。また、第１マスタＩ／Ｆ２１０の詳細な記載を省略する。
【０１３６】
第１マスタ６００は、ＣＰＵ１０１、ＤＭＡＣ６０１、ＳＩＦ（シリアルインタフェース）６０７、及びＴＩＭＥＲ（タイマ）６０８から構成さる。ＤＭＡＣ６０１は、３チャネルのＤＭＡコントローラであり、第１チャネル６０２、第２チャネル６０４、第３チャネル６０５から構成される。また、図に示されるように、第２マスタ１３０、ＳＩＦ６０７、及びＴＩＭＥＲ６０８の３種類の起動要因にそれぞれ対応する第１起動要求、第２起動要求、及び第３起動要求に応じて起動される。
【０１３７】
ＤＭＡＣ６０１及び第１チャネル６０２の中に、それぞれメモリ制御装置１９５の一部としてのダミーアクセス制御レジスタ６０６及びダミーアクセス発行部６０３が示される。
【０１３８】
第１チャネル６０２は、第２マスタ１３０から起動要求を受け付けると、例えば図示しない構成レジスタに予め設定された内容に従ってデータ転送を開始する。
【０１３９】
ダミーアクセス制御レジスタ６０６は、起動要求が受け付けられた際にダミーアクセスを発行するか否か（イネーブルかディセーブルか）の設定を、起動要因ごと、つまり第１乃至第３起動要求のそれぞれについて、チャネル共通に保持しており、設定内容を第１チャネル６０２乃至第３チャネル６０５に出力する。
【０１４０】
ダミーアクセス発行部６０３は、第１乃至第３起動要求の一つが受け付けられると、受け付けられた起動要求についてダミーアクセス制御レジスタ６０６にイネーブルが設定されていれば、前述したダミーアクセス発行部４０２が発行するダミーアクセス要求と同等のダミーアクセス要求を発行し、ディセーブルが設定されていれば、前記ダミーアクセス要求の発行を禁止する。
【０１４１】
同様のダミーアクセス発行部が、第２チャネル６０４、第３チャネル６０５にもそれぞれ設けられる（図示省略）。
【０１４２】
第２チャネル６０４、及び第３チャネル６０５は、第１チャネル６０２と同様に構成され、それぞれ、第１乃至第３起動要求の一つを受け付けると、ダミーアクセス制御レジスタ６０６の設定内容に応じてダミーアクセス要求を発行した後、予め定められたデータ転送を開始する。
【０１４３】
（動作の説明６）
次に、実施の形態６の動作例について説明する。
【０１４４】
図１２は、実施の形態６におけるメモリ制御装置１９５の動作例を表すフローチャートである。
【０１４５】
動作の説明４において説明したメモリ制御装置１９３の動作例（図８を参照）と同様のステップについては、同一の番号を付し、その説明を省略する。ここでは、ダミーアクセス発行部６０３は、ダミーアクセス発行部４０２が発行するダミーアクセス要求と同様のダミーアクセス要求を発行するとして説明する。
【０１４６】
ＣＰＵ１０１は、ダミーアクセス制御レジスタ６０６に対して、ダミーアクセス要求を発行するか否かの設定を、起動要因毎に行う（Ｓ１６０１）。
【０１４７】
外部メモリ１８０上の共有領域１８１が更新され、第２マスタ１３０から割り込み要求である第１起動要求が受け付けられると、第１起動要求と予め対応付けられているチャネル（ここでは第１チャネル６０２であるとする）に前記第１起動要求が通知される。
【０１４８】
第１チャネル６０２は、前記第１起動要求を受け付けると、ダミーアクセス制御レジスタ６０６の内容を参照し、第１起動要求についてイネーブルに設定されていれば（Ｓ１６０２でＹｅｓ）、共有領域１８１から最初に読み出すデータのアドレスへのダミーアクセス要求を第１マスタＩ／Ｆ２１０へ発行し（Ｓ１６０３）、ディセーブルに設定されていれば、前記ダミーアクセス要求の発行を禁止する（Ｓ１６０２でＮｏ）。
【０１４９】
その後、ＤＭＡＣ６０１の第１チャネル６０２は、共有領域１８１のデータのアクセスを行う（Ｓ１１０５〜Ｓ１１０６）。
【０１５０】
以上の構成によれば、ＤＭＡＣ起動時におけるダミーアクセス発行の有無を起動要因毎に制御可能となるので、ダミーアクセスが不要又は有害となる起動要因について起動時におけるダミーアクセス発行を禁止できるという効果がある。
【０１５１】
背景技術の項において、マスタ間で排他制御を行わない比較的簡素なシステムでは、特定のマスタが、外部メモリ上にあるシステムのステータスが他マスタによって書き換えられることを検出するために、特定のアドレスにポーリングアクセスを行うような場合に、同じアドレスへの読み出しが繰り返し行われるため、データバッファがヒットし続け、外部メモリとの整合性がとれなくなるという課題があり、従来技術は、その解決手段を開示していないことを指摘した。
【０１５２】
このような課題を解決するために、例えばポーリングアクセスを行う場合に、確実に外部メモリとの整合性が得られる構成が望まれる。
【０１５３】
以下、実施の形態７において、その構成について説明する。
【０１５４】
（実施の形態７）
図１３は、実施の形態７におけるメモリ制御装置１９６の機能的な構成の一例を示すブロック図である。図１３には、メモリ制御装置１９６と共に、第１マスタ１００、第２マスタ１３０、第３マスタ１５０、及び外部メモリ１８０が示される。
【０１５５】
メモリ制御装置１９６は、実施の形態１において説明したメモリ制御装置１９０（図１を参照）の第１マスタＩ／Ｆ１１０における特定アクセス検出部１２３を、特定アクセス検出部７２３に置き換えて構成される。図１３において、メモリ制御装置１９０と同様の機能ブロックについては、同一の番号を付し、その説明を省略する。
【０１５６】
特定アクセス検出部７２３は、同一のアクセス情報を持つアクセス要求が連続してあった場合、その２回目以降のアクセス要求では必ず外部メモリ１８０へアクセスすると共にバッファを無効化するようバッファ制御部１１１を制御する部であり、バッファ無効化部７２０、第４比較部７２１、及びアクセス履歴バッファ７２２から構成される。
【０１５７】
ここで、アクセス情報とは、第１マスタ１００からのアクセス要求が持つパラメータの一部又は全部を言い、アドレス、転送サイズ、リード／ライトの区別はその一例である。
【０１５８】
アクセス履歴バッファ７２２は、第１マスタ１００から最後に受け付けたアクセス要求が持つアクセス情報を保持する。
【０１５９】
第４比較部７２１は、第１マスタ１００から新たに受け付けたアクセス要求が持つアクセス情報と、アクセス履歴バッファ７２２に保持されているアクセス情報とを比較し、一致しているか否かを示す第４の比較情報をバッファ無効化部７２０に出力する。
【０１６０】
第４比較部７２１は、このアクセス情報の比較を、アドレスについて必ず行うこととし、さらに、転送サイズ、リード／ライトの区別について行ってもよい。
【０１６１】
バッファ無効化部７２０は、第４比較部７２１から第４の比較情報を参照し、一致を示している場合には、無効化制御信号をバッファ制御部１１１に出力する。
【０１６２】
バッファ制御部１１１は、この無効化制御信号を与えられると、第１比較部１１４の第１の比較情報に関係なく、データバッファ１１２を無効化し、外部メモリＩ／Ｆ１７０へのアクセス要求を発行する。このとき、外部メモリＩ／Ｆ１７０へアクセス要求を発行する際の転送サイズには、アクセス履歴バッファ７２２に保持されているアクセス情報によって示される転送サイズが使用され、また読み出されたデータはデータバッファ１１２には保持されることなく第１マスタ１００に出力される。
【０１６３】
（動作の説明７）
次に、実施の形態７の動作例について説明する。
【０１６４】
図１４は、実施の形態７におけるメモリ制御装置１９６の動作例を表すフローチャートである。
【０１６５】
動作の説明１において説明したメモリ制御装置１９０の動作例（図２を参照）と同様のステップについては、同一の番号を付し、その説明を省略する。
【０１６６】
第１マスタ１００は、外部メモリ１８０上のポーリングアドレスにあるデータが所定の期待値に書き換えられたことを検出するためにリードアクセス要求を発行する（Ｓ１７０１）。このリードアクセス要求を処理するため、サブルーチンである第３処理が呼び出される（Ｓ１７０３）。第３処理の詳細については後述する。
【０１６７】
第１マスタ１００は、取得されたデータと前記期待値とを比較して、一致しなければステップＳ１７０１へ戻ってポーリングを続け（Ｓ１７０２でＮｏ）、一致すればポーリングループを抜けて（Ｓ１７０２でＹｅｓ）所定の処理へ進む。
【０１６８】
次に、第３処理について説明する。この処理は、第１マスタＩ／Ｆ７１０によって実行されるサブルーチン処理である。
【０１６９】
バッファ無効化部７２０は、第４比較部７２１の第４の比較情報を参照し、一致を示している場合には（Ｓ１７０４でＹｅｓ）、無効化制御信号をバッファ制御部１１１に出力する。
【０１７０】
バッファ制御部１１１は、この無効化制御信号を受け取ると、第１比較部１１４の第１の比較情報に関係なく、データバッファ１１２を無効化すると共に、アクセス履歴バッファ７２２から参照される転送サイズ分のデータを要求するアクセス要求を外部メモリＩ／Ｆ１７０へ発行する。バッファ制御部１１１は、このアクセス要求によって外部メモリ１８０から取得されたデータを、データバッファ１１２に保持することなく第１マスタ１００に出力する（Ｓ１７０５）。
【０１７１】
第４の比較情報が不一致を示している場合には、無効化制御信号は出力されず（Ｓ１７０４でＮｏ）、第１の比較情報に応じてデータバッファ又は外部メモリへのアクセスが行われる（Ｓ１１１０〜Ｓ１１１２）。
【０１７２】
以上の構成により、同じアクセス要求が繰り返し発行されると、データバッファからではなく、外部メモリから読み出しが行われるため、特定のマスタが外部メモリ上の特定アドレスにポーリングアクセスを行う場合において、ソフトウェアによるケア無しにデータバッファと外部メモリ間の整合性を保証することができる。また、外部メモリから読み出しを行う際に、必要な転送サイズ分のデータのみをアクセス要求するため、外部メモリへのアクセス負荷を軽減できるという効果がある。
【０１７３】
しかしながら、実施の形態７の構成によれば、同じアクセス要求が繰り返し発行されると必ずデータバッファが無効化されるため、将来、マスタが外部メモリをアクセスする際のデータバッファのヒット率が低くなり、外部メモリへのアクセス効率が悪くなってしまうという課題がある。
【０１７４】
以下、その課題を解決する構成について、実施の形態８で説明する。
【０１７５】
（実施の形態８）
図１５は、実施の形態８におけるメモリ制御装置１９７の機能的な構成の一例を示すブロック図である。図１５には、メモリ制御装置１９７と共に、第１マスタ１００、第２マスタ１３０、第３マスタ１５０、及び外部メモリ１８０が示される。
【０１７６】
メモリ制御装置１９７は、実施の形態７において説明したメモリ制御装置１９６（図１３を参照）の第１マスタＩ／Ｆ７１０における特定アクセス検出部７２３を、特定アクセス検出部８２１に置き換えて構成される。図１５において、メモリ制御装置１９６と同様の機能ブロックについては、同一の番号を付し、その説明を省略する。
【０１７７】
特定アクセス検出部８２１は、同一のアクセス情報を持つアクセス要求が連続してあった場合、その２回目以降のアクセス要求では必ず外部メモリ１８０へアクセスすると共に外部メモリ１８０から読み出されたデータでデータバッファ１１２の内容を更新するようバッファ制御部１１１を制御する部であり、前述した特定アクセス検出部７２３のバッファ無効化部７２０をバッファ更新部８２０に置き換えて構成される。
【０１７８】
バッファ更新部８２０は、第４比較部７２１から第４の比較情報を参照し、一致を示している場合には、更新制御信号をバッファ制御部１１１に出力する。
【０１７９】
バッファ制御部１１１は、この更新制御信号を与えられると、第１比較部１１４の第１の比較情報に関係なく、外部メモリＩ／Ｆ１７０へのアクセス要求を発行する。そして、読み出されたデータを第１マスタ１００に出力すると共に、そのデータでデータバッファ１１２の内容を更新する。
【０１８０】
（動作の説明８）
次に、実施の形態８の動作例について説明する。
【０１８１】
図１６は、実施の形態８におけるメモリ制御装置１９７の動作例を表すフローチャートである。
【０１８２】
動作の説明７において説明したメモリ制御装置１９６の動作例（図１４を参照）と同様のステップについては、同一の番号を付し、その説明を省略する。
【０１８３】
第１マスタ１００は、ポーリングアドレスへのリードアクセス要求を発行するループ処理を実行し（Ｓ１７０１〜Ｓ１７０２）、そのリードアクセス要求を処理するために、サブルーチンである第４処理が呼び出される（Ｓ１８０１）。
【０１８４】
第４処理において、バッファ更新部８２０は、第４比較部７２１の第４の比較情報を参照し、一致を示している場合には（Ｓ１８０２でＹｅｓ）、更新制御信号をバッファ制御部１１１に出力する。
【０１８５】
バッファ制御部１１１は、この更新制御信号を受け取ると、第１比較部１１４の第１の比較情報に関係なく、アクセス要求を外部メモリＩ／Ｆ１７０へ発行する（Ｓ１１１２）。バッファ制御部１１１は、このアクセス要求によって外部メモリ１８０から取得されたデータを、データバッファ１１２に保持すると共に第１マスタ１００に出力する。
【０１８６】
第４の比較情報が不一致を示している場合には、更新制御信号は出力されず（Ｓ１８０２でＮｏ）、第１の比較情報に応じてデータバッファ又は外部メモリへのアクセスが行われる（Ｓ１１１０〜Ｓ１１１２）。
【０１８７】
以上の構成により、同じアクセス要求が繰り返し発行された際にも、データバッファの内容が更新されるため、将来、マスタが外部メモリをアクセスする際のデータバッファのヒット率低下を防ぐことができるという効果がある。
【０１８８】
しかしながら、実施の形態７及び実施の形態８の構成によれば、ポーリングアクセスを行っている間は、毎回外部メモリへのアクセス要求が発生するため、ＣＰＵからのアクセスレイテンシーが大きくなると共に、外部メモリＩ／Ｆへのアクセス負荷も不必要に大きくなるという課題がある。
【０１８９】
以下、その課題を解決する構成について、実施の形態９で説明する。
【０１９０】
（実施の形態９）
図１７は、実施の形態９におけるメモリ制御装置１９８の機能的な構成の一例を示すブロック図である。図１７には、メモリ制御装置１９８と共に、第１マスタ１００、第２マスタ１３０、第３マスタ１５０、及び外部メモリ１８０が示される。
【０１９１】
メモリ制御装置１９６は、実施の形態８において説明したメモリ制御装置１９７（図１５を参照）の第１マスタＩ／Ｆ８１０及び外部メモリＩ／Ｆ１７０を、それぞれ第１マスタＩ／Ｆ９１０及び外部メモリＩ／Ｆ９７０に置き換えて構成される。図１７において、メモリ制御装置１９７と同様の機能ブロックについては、同一の番号を付し、その説明を省略する。
【０１９２】
第１マスタＩ／Ｆ９１０は、外部メモリＩ／Ｆ９７０から、外部メモリ１８０にアクセスする場合よりも早く応答があった場合には、データバッファ１１２の内容を第１マスタ１００へ出力する機能が追加された部であり、第１マスタＩ／Ｆ８１０と比べて、第１マスタＩ／Ｆ８１０の特定アクセス検出部８２１におけるバッファ更新部８２０を、バッファ選択部９２０に置き換えた特定アクセス部９２２を有すると共に、サイクルカウンタ９２１を追加して構成される。
【０１９３】
外部メモリＩ／Ｆ９７０は、外部メモリＩ／Ｆ１７０と比べて、ポーリングアドレスにおけるデータの更新の有無を管理すると共に、更新がない場合には、第１マスタＩ／Ｆ９１０からのポーリングアドレスへのアクセス要求に対して外部メモリ１８０をアクセスせずに早期に応答する機能が追加された部であり、外部メモリＩ／Ｆ１７０にポーリングアドレス設定レジスタ９７１、ポーリングアクセス履歴保持部９７２、及び外部メモリ選択部９７３を追加して構成される。
【０１９４】
第１マスタＩ／Ｆ９１０における各部の詳細な機能は次のとおりである。
バッファ選択部９２０は、バッファ更新部８２０と同一の機能を含んでおり、第１マスタ１００からアクセス要求があると、第４比較部７２１から第４の比較情報を参照し、一致を示している場合には、更新制御信号をバッファ制御部１１１に出力する。
【０１９５】
バッファ制御部１１１は、この更新制御信号を与えられると、第１比較部１１４の第１の比較情報に関係なく、外部メモリＩ／Ｆ１７０へのアクセス要求を発行する。
【０１９６】
サイクルカウンタ９２１は、バッファ制御部１１１が外部メモリＩ／Ｆ９７０へアクセス要求を発行してから、アクセス応答信号が返るまでのサイクル数を計測し、計測されたサイクル数をバッファ選択部９２０に通知する。
【０１９７】
バッファ選択部９２０は、通知されたサイクル数が所定のサイクル以下であれば第１の選択制御信号をバッファ制御部１１１に出力し、前記サイクル数が前記所定のサイクルより大きければ第２の選択制御信号をバッファ制御部１１１に出力する。
【０１９８】
バッファ制御部１１１は、この第１の選択制御信号を与えられると、データバッファ１１２のデータを第１マスタ１００に出力し、第２の選択制御信号を与えられると、外部メモリＩ／Ｆ９７０から返送されたデータを第１マスタ１００に出力すると共に、データバッファ１１２に保持する。
【０１９９】
また、外部メモリＩ／Ｆ９７０における各部の詳細な機能は次のとおりである。
ポーリングアドレス設定レジスタ９７１は、ポーリングアクセスに用いられる外部メモリ１８０上のポーリングアドレスを各マスタから任意に設定され、保持する。
【０２００】
ポーリングアクセス履歴保持部９７２は、データバッファ１１２と外部メモリ１８０間の整合性の有無を表す状態値を保持する。この状態値は、具体的な一例として、第１マスタＩ／Ｆ９１０、第２マスタＩ／Ｆ１４０、及び第３マスタＩ／Ｆ１６０の何れかからポーリングアドレス設定レジスタ９７１に設定されているポーリングアドレスへのライトアクセス要求を受けると「０」にリセットされ、第１マスタＩ／Ｆ９１０から前記ポーリングアドレスへのリードアクセス要求を受けると「１」にセットされ、第１マスタＩ／Ｆ９１０から前記ポーリングアドレス以外へのリードアクセス要求を受けると「０」にリセットされるとしてもよい。
【０２０１】
ここで、状態値「１」は、外部メモリ１８０のポーリングアドレスにおける現在のデータがデータバッファ１１２にも取り込まれていて整合性があると考えられる状態を表し、状態値「０」は、外部メモリ１８０のデータが書き換えられるか、又はデータバッファ１１２にポーリングアドレス以外のデータが取り込まれて整合性がなくなっていると考えられる状態を表す。
【０２０２】
外部メモリ選択部９７３は、第１マスタＩ／Ｆ９１０から前記ポーリングアドレスへのリードアクセス要求があった際に、ポーリングアクセス履歴保持部９７２の内容が、状態値「０」であれば、外部メモリ１８０をアクセスして、取得されたデータを第１マスタＩ／Ｆ９１０に返送し、状態値「１」であれば、外部メモリ１８０をアクセスすることなく、即座に、つまり外部メモリ１８０をアクセスする場合に比べて短時間のうちに第１マスタＩ／Ｆ９１０に応答信号を返す。
【０２０３】
（動作の説明９）
次に、実施の形態９の動作例について説明する。
【０２０４】
図１８は、実施の形態９におけるメモリ制御装置１９８の動作例を表すフローチャートである。
【０２０５】
動作の説明８において説明したメモリ制御装置１９７の動作例（図１６を参照）と同様のステップについては、同一の番号を付し、その説明を省略する。
【０２０６】
第１マスタ１００は、ポーリングアドレスへのリードアクセス要求を発行するループ処理を実行し（Ｓ１７０１〜Ｓ１７０２）、そのリードアクセス要求を処理するために、サブルーチンである第５処理が呼び出される（Ｓ１９０１）。
【０２０７】
第５処理において、バッファ選択部９２０は、第４比較部７２１の第４の比較情報を参照し、一致を示している場合には（Ｓ１９０２でＹｅｓ）、更新制御信号をバッファ制御部１１１に出力する。
【０２０８】
バッファ制御部１１１は、この更新制御信号を受け取ると、第１比較部１１４の第１の比較情報に関係なく、アクセス要求を外部メモリＩ／Ｆ９７０へ発行する（Ｓ１９０３）。このアクセス要求が発行されると、サイクルカウンタ９２１は、サイクル数の計測を開始する。
【０２０９】
外部メモリＩ／Ｆ９７０は、このアクセス要求を受けると、前述したように、ポーリングアクセス履歴保持部９７２に保持されている状態値に応じて、即座にアクセス応答信号を返すか、又は外部メモリ１８０をアクセスしてポーリングアドレスにおける最新のデータを取得し、そのデータと共にアクセス応答信号を第１マスタＩ／Ｆ９１０へ返す。
【０２１０】
サイクルカウンタ９２１は、外部メモリＩ／Ｆ９７０からアクセス応答信号が返されると、それまでに計測されたサイクル数をバッファ選択部９２０に通知する。
【０２１１】
通知されたサイクル数が所定のサイクル以下であれば（Ｓ１９０４でＹｅｓ）、バッファ選択部９２０は、第１の選択制御信号をバッファ制御部１１１に出力し、バッファ制御部１１１は、この第１の選択制御信号を受けて、データバッファ１１２のデータを第１マスタ１００に出力する（Ｓ１１１１）。
【０２１２】
また、通知されたサイクル数が前記所定のサイクルより大きければ（Ｓ１９０４でＮｏ）、バッファ選択部９２０は、第２の選択制御信号をバッファ制御部１１１に出力し、バッファ制御部１１１は、この第２の選択制御信号を受けて、外部メモリＩ／Ｆ１７０から返されたデータを第１マスタ１００に出力すると共に、データバッファ１１２に保持する（Ｓ１９０５）。
【０２１３】
なお、第４の比較情報が不一致を示している場合には、前述した更新制御信号は出力されず（Ｓ１９０２でＮｏ）、第１の比較情報に応じてデータバッファ又は外部メモリへのアクセスが行われる（Ｓ１１１０〜Ｓ１１１２）。
【０２１４】
以上の構成により、ポーリングアクセスを行っている間も、毎回外部メモリへのアクセス要求が発生することがなくなり、ＣＰＵからのアクセスレイテンシーを抑えると共に、外部メモリＩ／Ｆへのアクセス負荷を軽減できるという効果が得られる。
【０２１５】
また、外部メモリＩ／Ｆ内に、ポーリングアドレス設定レジスタとポーリングアクセス履歴保持部、および外部メモリ選択部を持つことにより、外部メモリＩ／Ｆが早いサイクルで応答した際に、常にデータバッファのデータが再利用可能となることも、ＣＰＵからのアクセスレイテンシー低減に効果を発揮する。
【産業上の利用可能性】
【０２１６】
本発明にかかるメモリ制御装置は、複数のマスタが外部メモリを共有し、マスタ間でデータの受け渡しを行うシステムにおいて、各マスタに対応するマスタインタフェース内に持つデータバッファと外部メモリ間のデータ整合性を保証する構成を有しているため、ＤＶＤレコーダーに実装されるシステムＬＳＩ等として有用である。
【図面の簡単な説明】
【０２１７】
【図１】実施の形態１におけるメモリ制御装置の機能的な構成の一例を示すブロック図。
【図２】実施の形態１におけるメモリ制御装置の動作例を表すフローチャート。
【図３】実施の形態２におけるメモリ制御装置の機能的な構成の一例を示すブロック図。
【図４】実施の形態２におけるメモリ制御装置の動作例を表すフローチャート。
【図５】実施の形態３におけるメモリ制御装置の機能的な構成の一例を示すブロック図。
【図６】実施の形態３におけるメモリ制御装置の動作例を表すフローチャート。
【図７】実施の形態４におけるメモリ制御装置の機能的な構成の一例を示すブロック図。
【図８】実施の形態４におけるメモリ制御装置の動作例を表すフローチャート。
【図９】実施の形態５におけるメモリ制御装置の機能的な構成の一例を示すブロック図。
【図１０】実施の形態５におけるメモリ制御装置の動作例を表すフローチャート。
【図１１】実施の形態６におけるメモリ制御装置の機能的な構成の一例を示すブロック図。
【図１２】実施の形態６におけるメモリ制御装置の動作例を表すフローチャート。
【図１３】実施の形態７におけるメモリ制御装置の機能的な構成の一例を示すブロック図。
【図１４】実施の形態７におけるメモリ制御装置の動作例を表すフローチャート。
【図１５】実施の形態８におけるメモリ制御装置の機能的な構成の一例を示すブロック図。
【図１６】実施の形態８におけるメモリ制御装置の動作例を表すフローチャート。
【図１７】実施の形態９におけるメモリ制御装置の機能的な構成の一例を示すブロック図。
【図１８】実施の形態９におけるメモリ制御装置の動作例を表すフローチャート。
【符号の説明】
【０２１８】
１００    第１マスタ
１０１    ＣＰＵ
１１０    第１マスタＩ／Ｆ
１１１    バッファ制御部
１１２    データバッファ
１１３    アドレスバッファ
１１４    第１比較部
１２０    バッファ無効化部
１２１    第２比較部
１２２    特定アドレスレジスタ
１２３    特定アクセス検出部
１３０    第２マスタ
１４０    第２マスタＩ／Ｆ
１５０    第３マスタ
１６０    第３マスタＩ／Ｆ
１７０    外部メモリＩ／Ｆ
１８０    外部メモリ
１８１    共有領域
１８２    特定領域
１９０〜１９８  メモリ制御装置
２１０    第１マスタＩ／Ｆ
２２０    バッファ更新部
２２１    バッファアクセス履歴保持部
２２３    第３比較部
２２４    特定アクセス検出部
３０２、４０２  ダミーアクセス発行部
５００    第１マスタ
５０１    ＤＭＡＣ
５０２    第１チャネル
５０３    ダミーアクセス制御レジスタ
５０４    ダミーアクセス発行部
５０５    第２チャネル
５０６    第３チャネル
６００    第１マスタ
６０１    ＤＭＡＣ
６０２    第１チャネル
６０３    ダミーアクセス発行部
６０４    第２チャネル
６０５    第３チャネル
６０６    ダミーアクセス制御レジスタ
６０７    ＳＩＦ
６０８    ＴＩＭＥＲ
７１０    第１マスタＩ／Ｆ
７２０    バッファ無効化部
７２１    第４比較部
７２２    アクセス履歴バッファ
７２３    特定アクセス検出部
８１０    第１マスタＩ／Ｆ
８２０    バッファ更新部
８２１    特定アクセス検出部
９１０    第１マスタＩ／Ｆ
９２０    バッファ選択部
９２１    サイクルカウンタ
９７０    外部メモリＩ／Ｆ
９７１    ポーリングアドレス設定レジスタ
９７２    ポーリングアクセス履歴保持部
９７３    外部メモリ選択部
【図１】
0004834362.tif 000002
【図２】
0004834362.tif 000003
【図３】
0004834362.tif 000004
【図４】
0004834362.tif 000005
【図５】
0004834362.tif 000006
【図６】
0004834362.tif 000007
【図７】
0004834362.tif 000008
【図８】
0004834362.tif 000009
【図９】
0004834362.tif 000010
【図１０】
0004834362.tif 000011
【図１１】
0004834362.tif 000012
【図１２】
0004834362.tif 000013
【図１３】
0004834362.tif 000014
【図１４】
0004834362.tif 000015
【図１５】
0004834362.tif 000016
【図１６】
0004834362.tif 000017
【図１７】
0004834362.tif 000018
【図１８】
0004834362.tif 000019