(57)【要約】【課題】データキャッシュのコヒーレンシを保ちつつ、そのパージ量を減少させて、システム全体の性能を高めることができる半導体装置を提供する。【解決手段】キャッシュメモリ制御部１０２は、共有メモリ設定部１０６により設定されたＣＰＵ１０１とＤＭＡコントローラ１０５との共有メモリ領域１３２に該当するエントリにＦＬＡＧ１１１をセットし、ＤＭＡ転送の前に、キャッシュメモリ比較判定部１０３によるＦＬＡＧ１１１の比較判定結果が共有メモリ領域１３２を表す場合には、その共有メモリ領域１３２に該当するエントリのみに対してパージ処理を行い、パージ処理が完了した後に、ＤＭＡコントローラ１０５は共有バス１５０を通じてデータのＤＭＡ転送を開始する。【選択図】　　図１
2004038422.tif 000002
【特許請求の範囲】
【請求項１】
メモリおよびＩＯ機器と共有バスを介して接続され、前記メモリおよびＩＯ機器とともにコンピュータシステムを構成し、前記メモリおよびＩＯ機器との間で、前記共有バスを通じてデータを転送する半導体装置であって、前記データ転送等の各種データ処理を実行するＣＰＵと、前記データ転送として、前記ＣＰＵを介さずに直接行うダイレクトメモリアクセス（ＤＭＡで表す）転送を制御するＤＭＡコントローラと、前記ＣＰＵと前記ＤＭＡコントローラとが前記メモリ上で共有するアドレス領域を設定する共有メモリ設定部と、前記ＤＭＡ転送時の転送処理対象を示すエントリ毎に、前記アドレス領域を識別するためのフラッグ（ＦＬＡＧで表す）を持つデータキャッシュと、前記データキャッシュに対して、前記共有メモリ設定部に設定されたアドレス領域に該当するエントリに前記ＦＬＡＧをセットするキャッシュメモリ制御部と、前記ＤＭＡコントローラが前記ＤＭＡ転送を開始する前に、前記データキャッシュの各エントリのＦＬＡＧがセットされているかどうかを判定する比較判定部とを備えたことを特徴とする半導体装置。
【請求項２】
前記キャッシュメモリ制御部を、前記比較判定部により、前記ＤＭＡコントローラが前記ＤＭＡ転送を開始する前に、ＦＬＡＧがセットされていると判定された全てのエントリに対して、パージ処理するよう構成したことを特徴とする請求項１に記載の半導体装置。
【請求項３】
メモリとＩＯ機器および外部バスマスタと共有バスを介して接続され、前記メモリとＩＯ機器および外部バスマスタとともにコンピュータシステムを構成し、前記メモリとＩＯ機器および外部バスマスタとの間で、前記共有バスを通じてデータを転送する半導体装置であって、前記データ転送等の各種データ処理を実行するＣＰＵと、前記ＣＰＵと前記外部バスマスタとが前記メモリ上で共有するアドレス領域を設定する共有メモリ設定部と、前記外部バスマスタによるの転送処理対象を示すエントリ毎に、前記アドレス領域を識別するためのフラッグ（ＦＬＡＧで表す）を持つデータキャッシュと、前記データキャッシュに対して、前記共有メモリ設定部に設定されたアドレス領域に該当するエントリに前記ＦＬＡＧをセットするキャッシュメモリ制御部と、前記外部バスマスタへ共有バスの使用権を渡す前に、前記データキャッシュの各エントリのＦＬＡＧがセットされているかどうかを判定する比較判定部とを備えたことを特徴とする半導体装置。
【請求項４】
前記キャッシュメモリ制御部を、前記外部バスマスタが前記比較判定部から共有バスの使用権を取得する前に、前記比較判定部によりＦＬＡＧがセットされていると判定された全てのエントリに対して、パージ処理するよう構成したことを特徴とする請求項３に記載の半導体装置。
【請求項５】
複数のＤＭＡチャンネルのために、複数の前記共有メモリ設定部および前記ＦＬＡＧを備えたことを特徴とする請求項２に記載の半導体装置。
【請求項６】
複数の外部バスマスタのために、複数の前記共有メモリ設定部および前記ＦＬＡＧを備えたことを特徴とする請求項４に記載の半導体装置。
【請求項７】
前記データキャッシュの全てもしくは一部のエントリのＦＬＡＧを入力し、前記ＦＬＡＧがセットされているエントリのうち、最も小さいエントリの番号を出力するエントリスキャン部を設け、前記エントリスキャン部を、パージ対象のエントリを前記キャッシュメモリ制御部に通知するよう構成したことを特徴とする請求項５または請求項６に記載の半導体装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータシステムを構成し、メモリおよびＩＯ機器との間で、共有バスを通じてデータを転送する半導体装置に関するものである。
【０００２】
【従来の技術】
従来からＯＡ機器や産業機器などの情報データ処理に広く利用されているコンピュータシステムの一般的な構成としては、ライトバック方式のキャッシュメモリを持つＣＰＵや、ＤＭＡコントローラ等からなる半導体装置と、この半導体装置と共有バスを介して接続されたメモリおよびＩＯ機器とを備え、これら半導体装置とメモリおよびＩＯ機器との間で、共有バスを通じてデータ転送するように構成されている。
【０００３】
このようなコンピュータシステムにおいては、ＤＭＡコントローラによりＣＰＵを介さずに直接行うデータ転送（ＤＭＡ転送）の際に、データのコヒーレンシ（メモリの内容とキャッシュメモリの内容とが一致している状態）を保つために、ＤＭＡ転送の前にキャッシュメモリのデータを一括してパージ（無効化、退避、あるいはそれらのための移動）する手段が設けられている。
【０００４】
以上のようなコンピュータシステムを構成する従来の半導体装置について、図面を用いて以下に詳しく説明する。なおここでは、ＩＯ機器としてビデオカードを用いた場合を例に挙げて説明する。
【０００５】
図３０は従来の半導体装置を含むコンピュータシステムの概念を示す構成ブロック図である。図３０に示すように、４００は半導体装置であり、ＣＰＵ４０１、キャッシュメモリ制御部４０２、共有バスインターフェース４０３、ＤＭＡコントローラ４０４、データキャッシュ４１０から構成される。
【０００６】
図３０において、４０１はＣＰＵである。４０２はライトバック方式のキャッシュメモリ制御部であり、データキャッシュ４１０に対する書き込みおよび読み出しの制御を行う。４０３は共有バスインターフェースである。４０４はＤＭＡコントローラであり、共有バスインターフェース４０３を制御してＤＭＡ転送を行う。４１０はデータキャッシュであり、タグアドレス４１２、データブロック４１３、バリッドビット（Ｖ）４１４、ダーティビット（Ｄ）４１５よりなるエントリのデータを複数個有する。４１２は各エントリのタグアドレスであり、４１３は各エントリのデータブロックであり、４１４は各エントリのバリッドビット（Ｖ）であり、処理対象のデータが論理的に妥当で有効なエントリであるかどうかを示す。４１５は各エントリのダーティビット（Ｄ）であり、対応するエントリに書き込みがあったことを示す。４５０は共有バスであり、半導体装置４００とメモリ４３０とビデオカード４４０との間をバス形態で接続し、それらの間で共有される。
【０００７】
以上のような半導体装置４００において、ＤＭＡコントローラ４０４がＤＭＡ転送を開始する際の動作を説明する。
ＣＰＵ４０１は、データキャッシュ４１０とメモリ４３０とのコヒーレンシを保つために、ダーティビット４１５のセットされている全てのエントリに対してパージ処理を実行する。
【０００８】
このようにして全てのパージ処理が完了した後に、ＤＭＡコントローラ４０４は、共有バスインターフェース４０３を制御して、キャッシュメモリ制御部４０２および共有バス４５０を通じて、半導体装置４００内のデータキャッシュ４１０とメモリ４３０とビデオカード４４０との間でＤＭＡ転送を開始する。
【０００９】
【発明が解決しようとする課題】
しかしながら上記のような従来の半導体装置では、ＤＭＡ転送の際に、データキャッシュ４１０のコヒーレンシを保つという理由により、データキャッシュ４１０のパージする必要のないエントリのデータまでパージを行っており、このために、パージに必要な時間が多くなり、その実行サイクル数が増大するとともに、メモリ４３０に対してＤＭＡ転送時に転送処理対象とするアドレス領域へのヒット率が低下し、コンピュータシステム全体の性能が低下してしまうという問題点を有していた。
【００１０】
本発明は、上記従来の問題点を解決するもので、データキャッシュのコヒーレンシを保ちつつ、データキャッシュのパージ量を減少させて、パージに必要な実行サイクル数を軽減するとともに、メモリに対して、ＤＭＡ転送時に転送処理対象とするアドレス領域へのヒット率を向上することができ、コンピュータシステム全体の性能を向上することができる半導体装置を提供する。
【００１１】
【課題を解決するための手段】
上記の課題を解決するために本発明の半導体装置は、キャッシュメモリ制御部は、共有メモリ設定部により設定されたＣＰＵとＤＭＡコントローラとの共有メモリ領域に該当するエントリにＦＬＡＧをセットし、ＤＭＡ転送の前に、キャッシュメモリ比較判定部によるＦＬＡＧの比較判定結果が共有メモリ領域を表す場合には、その共有メモリ領域に該当するエントリのみに対してパージ処理を行い、パージ処理が完了した後に、ＤＭＡコントローラは共有バスを通じてデータのＤＭＡ転送を開始するよう構成したことを特徴とする。
【００１２】
以上により、ＣＰＵとＤＭＡコントローラもしくは外部マスタで共有して使用するメモリのアドレス領域を設定しておくことにより、データキャッシュのコヒーレンシを保つために必要なデータパージを必要最小限に抑えることができる。
【００１３】
【発明の実施の形態】
本発明の請求項１に記載の半導体装置は、メモリおよびＩＯ機器と共有バスを介して接続され、前記メモリおよびＩＯ機器とともにコンピュータシステムを構成し、前記メモリおよびＩＯ機器との間で、前記共有バスを通じてデータを転送する半導体装置であって、前記データ転送等の各種データ処理を実行するＣＰＵと、前記データ転送として、前記ＣＰＵを介さずに直接行うダイレクトメモリアクセス（ＤＭＡで表す）転送を制御するＤＭＡコントローラと、前記ＣＰＵと前記ＤＭＡコントローラとが前記メモリ上で共有するアドレス領域を設定する共有メモリ設定部と、前記ＤＭＡ転送時の転送処理対象を示すエントリ毎に、前記アドレス領域を識別するためのフラッグ（ＦＬＡＧで表す）を持つデータキャッシュと、前記データキャッシュに対して、前記共有メモリ設定部に設定されたアドレス領域に該当するエントリに前記ＦＬＡＧをセットするキャッシュメモリ制御部と、前記ＤＭＡコントローラが前記ＤＭＡ転送を開始する前に、前記データキャッシュの各エントリのＦＬＡＧがセットされているかどうかを判定する比較判定部とを備えた構成とする。
【００１４】
請求項２に記載の半導体装置は、請求項１に記載の前記キャッシュメモリ制御部を、前記比較判定部により、前記ＤＭＡコントローラが前記ＤＭＡ転送を開始する前に、ＦＬＡＧがセットされていると判定された全てのエントリに対して、パージ処理するよう構成する。
【００１５】
請求項３に記載の半導体装置は、メモリとＩＯ機器および外部バスマスタと共有バスを介して接続され、前記メモリとＩＯ機器および外部バスマスタとともにコンピュータシステムを構成し、前記メモリとＩＯ機器および外部バスマスタとの間で、前記共有バスを通じてデータを転送する半導体装置であって、前記データ転送等の各種データ処理を実行するＣＰＵと、前記ＣＰＵと前記外部バスマスタとが前記メモリ上で共有するアドレス領域を設定する共有メモリ設定部と、前記外部バスマスタによるの転送処理対象を示すエントリ毎に、前記アドレス領域を識別するためのフラッグ（ＦＬＡＧで表す）を持つデータキャッシュと、前記データキャッシュに対して、前記共有メモリ設定部に設定されたアドレス領域に該当するエントリに前記ＦＬＡＧをセットするキャッシュメモリ制御部と、前記外部バスマスタへ共有バスの使用権を渡す前に、前記データキャッシュの各エントリのＦＬＡＧがセットされているかどうかを判定する比較判定部とを備えた構成とする。
【００１６】
請求項４に記載の半導体装置は、請求項３に記載の前記キャッシュメモリ制御部を、前記外部バスマスタが前記比較判定部から共有バスの使用権を取得する前に、前記比較判定部によりＦＬＡＧがセットされていると判定された全てのエントリに対して、パージ処理するよう構成する。
【００１７】
請求項５に記載の半導体装置は、請求項２に記載の半導体装置であって、複数のＤＭＡチャンネルのために、複数の前記共有メモリ設定部および前記ＦＬＡＧを備えた構成とする。
【００１８】
請求項６に記載の半導体装置は、請求項４に記載の半導体装置であって、複数の外部バスマスタのために、複数の前記共有メモリ設定部および前記ＦＬＡＧを備えた構成とする。
【００１９】
請求項７に記載の半導体装置は、請求項５または請求項６に記載の半導体装置であって、前記データキャッシュの全てもしくは一部のエントリのＦＬＡＧを入力し、前記ＦＬＡＧがセットされているエントリのうち、最も小さいエントリの番号を出力するエントリスキャン部を設け、前記エントリスキャン部を、パージ対象のエントリを前記キャッシュメモリ制御部に通知するよう構成する。
【００２０】
これらの構成によると、ＣＰＵとＤＭＡコントローラもしくは外部マスタで共有して使用するメモリのアドレス領域を設定しておくことにより、データキャッシュのコヒーレンシを保つために必要なデータパージを必要最小限に抑えることが可能となる。
【００２１】
以下、本発明の実施の形態を示す半導体装置について、図面を参照しながら具体的に説明する。
（実施の形態１）
本発明の実施の形態１の半導体装置を説明する。
【００２２】
図１は本実施の形態１の半導体装置が含まれるコンピュータシステムの概略構成を示すブロック図である。図１に示すように、１００は半導体装置であり、ＣＰＵ１０１、キャッシュメモリ制御部１０２、キャッシュメモリ比較判定部１０３、共有バスインターフェース１０４、ＤＭＡコントローラ１０５、ＤＭＡ共有メモリ設定部１０６、データキャッシュ１１０から構成される。
【００２３】
図１において、１０１はデータ転送等の各種データ処理を実行するＣＰＵである。１０２はライトバック方式のキャッシュメモリ制御部であり、データキャッシュ１１０に対する書き込みおよび読み出しの制御を行う。１０３はキャッシュメモリ比較判定部であり、ＤＭＡコントローラ１０５内のＤＭＡ共有メモリ設定部１０６の情報と、データキャッシュ１１０の各エントリのタグアドレス１１２とを比較する。１０４は共有バスインターフェースである。１０５はＤＭＡコントローラであり、ＤＭＡ共有メモリ設定部１０６を有し、ＤＭＡ転送を開始する前に、キャッシュメモリ制御部１０２を制御して、共有メモリ領域１３２のダーティなデータをパージした後に、共有バスインターフェース１０４を制御してＤＭＡ転送を行う。１０６はＤＭＡ共有メモリ設定部であり、ベースアドレスレジスタ１０７とマスク値レジスタ１０８とから構成される。１０７はベースアドレスレジスタであり、共有メモリ領域１３２のベースアドレスを保持する。１０８はマスク値レジスタであり、共有メモリ領域１３２のマスク値を保持する。
【００２４】
１１０はデータキャッシュであり、フラッグ（ＦＬＡＧ）１１１、タグアドレス１１２、データブロック１１３、バリッドビット１１４、ダーティビット１１５よりなるエントリのデータを複数個有する。１１１はＦＬＡＧであり、各エントリのデータブロック１１３が共有メモリ領域１３２に含まれるデータか否かを示すデータである。ＤＭＡコントローラ１０５がＤＭＡ転送を開始する前に、このＦＬＡＧ１１１がセットされているか否かが判定され、セットされているエントリのみが、ダーティビット１１５についてセットされているか否かの判定が行われる。これらの比較判定の結果、ＦＬＡＧ１１１とダーティビット１１５の両方がセットされているエントリがパージされる。すなわち、コヒーレンシを保つために必要なエントリのみがパージされる。１１２はタグアドレスであり、１１３はデータブロックであり、１１４はバリッドビットであり、有効なエントリであるかどうかを示す。１１５はダーティビットであり、対応するエントリに書き込みがあったことを示す。
【００２５】
１３０はメモリであり、ＣＰＵ専用メモリ領域１３１と共有メモリ領域１３２とを有する。１４０はビデオカードであり、ＶＲＡＭ１４１を有する。１４１はＶＲＡＭであり、転送先メモリ領域１４２を含む。１４２は転送先メモリ領域であり、ＤＭＡコントローラ１０５によりデータが転送される。１５０は共有バスであり、半導体装置１００とメモリ１３０とビデオカード１４０との間をバス形態で接続し、それらの間で共有される。
【００２６】
すなわち、以上の構成により、ＣＰＵ１０１とＤＭＡコントローラ１０５間でデータキャッシュ１１０のコヒーレンシを保つために、必要最小限のデータのみパージすることが可能となり、データキャッシュ１１０のパージ量を減少させるという効果がある。
【００２７】
以上のように構成された半導体装置を含むコンピュータシステムについて、その動作例を図２から図１９を用いて手順に従って以下に説明する。ここでは、図２から図１９でデータの流れを示すことにより、必要なデータのパージ処理が行われ、コヒーレンシが保たれることを説明する。
【００２８】
なお、以下のデータ▲１▼は、予め転送元メモリ領域１３３に書き込まれたデータであり、データ▲２▼は、予め転送元メモリ領域１３４に書き込まれたデータであり、データ▲３▼およびデータ▲４▼は、予めＣＰＵ専用メモリ領域１３１に書き込まれたデータであり、データ▲５▼は、ＣＰＵ１０１がデータ▲２▼を処理したデータであり、データ▲６▼は、ＣＰＵ１０１がデータ▲４▼を処理したデータであるものとする。
【００２９】
図２に示すように、ＣＰＵ１０１は、ＤＭＡ共有メモリ設定部１０６に対して、ベースアドレスレジスタ１０７に０ｘ８０００＿００００を設定し、マスク値レジスタ１０８に０ｘ３ＦＦＦ＿ＦＦＦＦを設定する。この設定により、メモリ１３０において、０ｘ８０００＿００００番地から０ｘＢＦＦＦ＿ＦＦＦＦ番地のメモリ領域は、ＣＰＵ１０１とＤＭＡコントローラ１０５との共有メモリ領域１３２に設定される。
【００３０】
図３に示すように、ＣＰＵ１０１が、共有メモリ領域１３２の０ｘ８１００＿００００番地から０ｘ８１００＿３ＦＦＦ番地（メモリ領域１３３）のデータ▲１▼をリードすると、このメモリ領域について、キャッシュメモリ比較判定部１０３は、ＤＭＡ共有メモリ設定部１０６からの情報とのアドレス比較を行う。
【００３１】
図４に示すように、キャッシュメモリ比較判定部１０３の比較判定結果として、メモリ領域１３３が共有メモリ領域１３２であることを示す場合には、エントリ１１６において、ＦＬＡＧ１１１がセット（データ：１）され、タグアドレス１１２には０ｘ８１００＿００００が設定され、データブロック１１３にはデータ▲１▼が設定され、バリッドビット１１４がセット（データ：１）される。
【００３２】
図５に示すように、図３から図４と同様に、メモリ領域１３４のデータ▲２▼に対して、エントリ１１７において、ＦＬＡＧ１１１がセットされ、タグアドレス１１２には０ｘ８１００＿４０００が設定され、データブロック１１３にはデータ▲２▼が設定され、バリッドビット１１４がセットされる。
【００３３】
図６に示すように、キャッシュメモリ比較判定部１０３の比較判定結果として、ＣＰＵ１０１がメモリ１３０からデータ▲３▼をリードしたメモリ領域１３５が、共有メモリ領域１３２でない（ＣＰＵ専用メモリ領域１３１である）ことを示す場合には、エントリ１１８において、ＦＬＡＧ１１１はセットされず（データ：０）、タグアドレス１１２には０ｘ４１００＿８０００が設定され、データブロック１１３にはデータ▲３▼が設定され、バリッドビット１１４がセットされる。
【００３４】
図７に示すように、図６と同様に、メモリ領域１３６のデータ▲４▼に対して、エントリ１１９において、ＦＬＡＧ１１１はセットされず、タグアドレス１１２には０ｘ４１００＿Ｃ０００が設定され、データブロック１１３にはデータ▲４▼が設定され、バリッドビット１１４がセットされる。
【００３５】
図８から図９に示すように、ＣＰＵ１０１が、データキャッシュ１１０のエントリ１１７に対して、データ▲２▼をリードし同じアドレスにデータ▲５▼を書き込んだ場合は、データブロック１１３の内容がデータ▲２▼からデータ▲５▼へ書き換えられ、ダーティビット１１５がセット（データ：１）される。ここではメモリ１３０の内容は書き換えられない。
【００３６】
図１０から図１１に示すように、ＣＰＵ１０１が、データキャッシュ１１０のエントリ１１９に対して、データ▲４▼をリードし同じアドレスにデータ▲６▼を書き込んだ場合は、データブロック１１３の内容がデータ▲４▼からデータ▲６▼へ書き換えられ、ダーティビット１１５がセットされる。ここではメモリ１３０の内容は書き換えられない。
【００３７】
図１２に示すように、ＤＭＡコントローラ１０５は、ＤＭＡ転送を開始する前に、キャッシュメモリ制御部１０２にＤＭＡ転送開始信号を通知する。
図１３から図１７に示すように、キャッシュメモリ制御部１０２は、データキャッシュ１１０の各エントリ１１６〜１１９のＦＬＡＧ１１１を順次判定する。判定の結果、ＦＬＡＧ１１１がセットされていた場合（エントリ１１６、１１７）、キャッシュメモリ制御部１０２は、さらにダーティビット１１５の判定を行う。この判定の結果、ダーティビット１１５もセットされていた場合（エントリ１１７）、キャッシュメモリ制御部１０２は該当エントリ（図１５に示すエントリ１１７のデータ▲５▼のみについて）のパージを行う。
【００３８】
図１８に示すように、データキャッシュ１１０の全エントリの判定処理と該当エントリのパージが完了すると、キャッシュメモリ制御部１０２は、ＤＭＡコントローラ１０５へパージ完了信号を通知する。
【００３９】
図１９に示すように、ＤＭＡコントローラ１０５は、キャッシュメモリ制御部１０２からのパージ完了信号を受け取った後に、共有バスインターフェース１０４を制御して、必要なＤＭＡ転送を行う。
（実施の形態２）
本発明の実施の形態２の半導体装置を説明する。
【００４０】
図２０は本実施の形態２の半導体装置が含まれるコンピュータシステムの概略構成を示すブロック図である。図２０に示すように、２００は半導体装置であり、ＣＰＵ２０１、キャッシュメモリ制御部２０２、キャッシュメモリ比較判定部２０３、共有バスインターフェース２０４、外部バスマスタ共有メモリ制御部２０５、データキャッシュ２１０から構成される。
【００４１】
図２０において、２０１はデータ転送等の各種データ処理を実行するＣＰＵである。２０２はライトバック方式のキャッシュメモリ制御部であり、データキャッシュ２１０に対して書き込みおよび読み出しの制御を行う。２０３はキャッシュメモリ比較判定部であり、外部バスマスタ共有メモリ制御部２０５内の外部バスマスタ（０）共有メモリ設定部２０６及び外部バスマスタ（１）共有メモリ設定部２０９と、データキャッシュ２１０の各エントリのタグアドレス２１３とを比較する。２０４は共有バスインターフェースである。２０５は外部バスマスタ共有メモリ制御部であり、外部バスマスタ（０）共有メモリ設定部２０６と外部バスマスタ（１）共有メモリ設定部２０９とを有し、共有バスアービタ２６０からアービトレーション開始信号を受けると、キャッシュメモリ制御部２０２を制御して、共有メモリ領域２３２のダーティなデータをパージした後に、共有バスアービタ２６０にパージ完了信号を通知する。２０６は外部バスマスタ（０）共有メモリ設定部であり、ベースアドレスレジスタ２０７とマスク値レジスタ２０８とを有する。２０７はベースアドレスレジスタであり、共有メモリ領域２３２のベースアドレスを保持する。２０８はマスク値レジスタであり、共有メモリ領域２３２のマスク値を保持する。２０９は外部バスマスタ（１）共有メモリ設定部であり、外部バスマスタ（０）共有メモリ設定部２０６と同様なベースアドレスレジスタとマスク値レジスタを有する。
【００４２】
２１０はデータキャッシュであり、外部バスマスタ（０）ＦＬＡＧ２１１、外部バスマスタ（１）ＦＬＡＧ２１２、タグアドレス２１３、データブロック２１４、バリッドビット２１５、ダーティビット２１６よりなるエントリのデータを複数個有する。２１１はＦＬＡＧであり、各エントリのデータブロック２１４が外部バスマスタ（０）共有メモリ領域２３２に含まれるデータか否かを示すデータである。ビデオカード２４０が共有バス２５０の使用権とする前に、このＦＬＡＧ２１１がセットされているか否かが判定され、セットされているエントリのみについて、ダーティビット２１６がセットされているか否かの判定が行われる。これらの比較判定の結果、ＦＬＡＧ２１１とダーティビット２１６の両方がセットされているエントリがパージされる。すなわち、データのコヒーレンシを保つために必要なエントリのみパージされる。２１２はＦＬＡＧであり、ＦＬＡＧ２１１と同様に、外部バスマスタ（１）共有メモリ領域２３２に含まれるデータか否かを示すデータである。２１３はタグアドレスであり、２１４はデータブロックであり、２１５はバリッドビットであり、有効なエントリであるかどうかを示す。２１６はダーティビットであり、対応するエントリに書き込みがあったことを示す。
【００４３】
２３０はメモリであり、ＣＰＵ専用メモリ領域２３１と共有メモリ領域２３２を有する。２４０はビデオカードであり、共有バス２５０のバスマスタとなることが可能であり、ＶＲＡＭ２４１を有する。２４１はＶＲＡＭであり、転送先メモリ領域２４２を含む。２４２は転送先メモリ領域であり、ビデオカード２４０によりデータが転送される。
【００４４】
２５０は共有バスであり、半導体装置２００とメモリ２３０とビデオカード２４０と共有バスアービタ２６０を接続する。２６０は共有バスアービタであり、外部バスマスタのアービトレーションを行い、半導体装置２００以外のものが共有バス２５０のバスマスタとなる場合には外部バスマスタ共有メモリ制御部２０５にアービトレーション開始信号を通知する。
【００４５】
すなわち、以上の構成により、ＣＰＵ２０１とビデオカード２４０間のデータキャッシュのコヒーレンシを保つために、必要最小限のデータのみパージすることが可能となり、キャッシュのパージ量を減少させるという効果がある。
【００４６】
以上のように構成された半導体装置を含むコンピュータシステムについて、その動作例を図２１から図２７を用いて手順に従って以下に説明する。
図２１に示すように、図２と同様に、外部バスマスタ共有メモリ制御部２０５の外部バスマスタ（０）共有メモリ設定部２０６に値が設定される。図２２に示すように、図３から図１１と同様に、データキャッシュ２１０にデータが設定される。図２３に示すように、ビデオカード２４０が共有バスアービタ２６０へバスリクエスト信号を通知すると、共有バスアービタ２６０は、外部バスマスタ共有メモリ制御部２０５へアービトレーション開始信号を通知する。
【００４７】
図２４から図２５に示すように、図１３から図１７と同様に、外部バスマスタ共有メモリ制御部２０５は、キャッシュメモリ制御部２０２を制御し、パージを行う。図２６に示すように、外部バスマスタメモリ制御部２０５は、パージ完了信号を共有バスアービタ２６０へ通知し、その後に共有バスアービタ２６０は、ビデオカード２４０へバスグラント信号を通知する。
【００４８】
図２７に示すように、共有バスアービタ２６０からバスグラント信号を受け取ったビデオカード２４０は、共有バス２５０の使用権を獲得し、メモリ２３０の共有メモリ領域２３２へのアクセスを行い、共有メモリ領域２３２内のメモリ領域２３３のデータ▲１▼およびメモリ領域２３４のデータ▲５▼を、それぞれ転送先メモリ領域２４２に取り込む。
（実施の形態３）
本発明の実施の形態３の半導体装置を説明する。
【００４９】
図２８は本実施の形態３の半導体装置が含まれるコンピュータシステムの概略構成を示すブロック図である。図２８に示すように、３００は半導体装置であり、ＣＰＵ３０１、キャッシュメモリ制御部３０２、キャッシュメモリ比較判定部３０３、共有バスインターフェース３０４、ＤＭＡコントローラ３０５、ＤＭＡ共有メモリ設定部３０６、データキャッシュ３１０、パージエントリ選択部３２０から構成される。
【００５０】
図２８において、３０１はデータ転送等の各種データ処理を実行するＣＰＵである。３０２はライトバック方式のキャッシュメモリ制御部であり、データキャッシュ３１０に対する書き込みおよび読み出しの制御を行う。３０３はキャッシュメモリ比較判定部であり、ＤＭＡコントローラ３０５内のＤＭＡ共有メモリ設定部３０６と、データキャッシュ３１０の各エントリのタグアドレス３１２とを比較する。３０４は共有バスインターフェースである。３０５はＤＭＡコントローラであり、ＤＭＡ共有メモリ設定部３０６を有し、ＤＭＡ転送を開始する前に、キャッシュメモリ制御部３０２を制御して、ＤＭＡ共有メモリ領域３３２のダーティなデータをパージした後に、共有バスインターフェース３０４を制御してＤＭＡ転送を行う。３０６はＤＭＡ共有メモリ設定部であり、ベースアドレスレジスタ３０７とマスク値レジスタ３０８から構成される。３０７はベースアドレスレジスタであり、共有メモリ領域３３２のベースアドレスを保持する。３０８はマスク値レジスタであり、共有メモリ領域３３２のマスク値を保持する。
【００５１】
３１０はデータキャッシュであり、ＦＬＡＧ３１１、タグアドレス３１２、データブロック３１３、バリッドビット３１４、ダーティビット３１５よりなるエントリのデータを複数個有する。３１１はＦＬＡＧであり、各エントリのデータブロック３１３が共有メモリ領域３３２に含まれるデータか否かを示すデータである。ビデオカード３４０が共有バス３５０の使用権とする前に、このＦＬＡＧ３１１がセットされているか否かが判定され、セットされているエントリのみについて、ダーティビット３１６がセットされているか否かの判定が行われる。これらの比較判定の結果、ＦＬＡＧ３１１とダーティビット３１６の両方がセットされているエントリがパージされる。すなわち、コヒーレンシを保つために、必要なエントリのみパージされる。３１２はタグアドレスであり、３１３はデータブロックであり、３１４はバリッドビットであり、有効なエントリであるかどうかを示す。３１５はダーティビットであり、対応するエントリに書き込みがあったことを示す。３２０はパージエントリ選択部であり、データキャッシュ３１０の全てもしくは一部のＦＬＡＧ３１１を入力し、ＦＬＡＧ３１１がセットされているエントリのうち、最も小さい番号を持つエントリの番号を出力するスキャン部を備え、前記パージ対象のエントリをキャッシュメモリ制御部３０２に通知する。
【００５２】
３３０はメモリであり、ＣＰＵ専用メモリ領域３３１と共有メモリ領域３３２を有する。３４０はビデオカードであり、ＶＲＡＭ３４１を有する。３４１はＶＲＡＭであり、転送先メモリ領域３４２を含む。３４２は転送先メモリ領域であり、ＤＭＡコントローラ３０５によりデータが転送される。３５０は共有バスであり、半導体装置３００とメモリ３３０とビデオカード３４０を接続する。
【００５３】
すなわち、以上の構成により、ＣＰＵ３０１とＤＭＡコントローラ３０５間でデータキャッシュのコヒーレンシを保つためのパージに必要なサイクル数を減少させるという効果がある。
【００５４】
ここで図２８に示す回路のパージエントリ選択部３２０について、その動作例を図２９を用いて以下に説明する。
図２９はパージエントリ選択部３２０の動作を示す真理値表である。パージエントリ選択部３２０は、データキャッシュ３１０の全てもしくは一部のＦＬＡＧ３１１を入力し、ＦＬＡＧ３１１がセットされているエントリのうち、最も小さい番号を持つエントリを、キャッシュメモリ制御部３０２に通知する。キャッシュメモリ制御部３０２は、通知されたエントリのパージを行う。このときＦＬＡＧ３１１をクリアする。
【００５５】
キャッシュメモリ制御部３０２は、データキャッシュ３１０の全てのエントリについてＦＬＡＧ３１１がクリアされるまで、パージエントリ選択部３２０を使用したスキャン動作を繰り返す。
【００５６】
【発明の効果】
以上のように本発明によれば、ＣＰＵとＤＭＡコントローラもしくは外部マスタで共有して使用するメモリのアドレス領域を設定しておくことにより、データキャッシュのコヒーレンシを保つために必要なデータパージを必要最小限に抑えることができる。
【００５７】
そのため、データキャッシュのコヒーレンシを保ちつつ、データキャッシュのパージ量を減少させて、パージに必要な実行サイクル数を軽減するとともに、メモリに対して、ＤＭＡ転送時に転送処理対象とするアドレス領域へのヒット率を向上することができ、結果的に、コンピュータシステムの高速化など、システム全体の性能を向上することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１の半導体装置の構成を示すブロック図
【図２】同実施の形態１の半導体装置における動作手順１の説明図
【図３】同実施の形態１の半導体装置における動作手順２の説明図
【図４】同実施の形態１の半導体装置における動作手順３の説明図
【図５】同実施の形態１の半導体装置における動作手順４の説明図
【図６】同実施の形態１の半導体装置における動作手順５の説明図
【図７】同実施の形態１の半導体装置における動作手順６の説明図
【図８】同実施の形態１の半導体装置における動作手順７の説明図
【図９】同実施の形態１の半導体装置における動作手順８の説明図
【図１０】同実施の形態１の半導体装置における動作手順９の説明図
【図１１】同実施の形態１の半導体装置における動作手順１０の説明図
【図１２】同実施の形態１の半導体装置における動作手順１１の説明図
【図１３】同実施の形態１の半導体装置における動作手順１２の説明図
【図１４】同実施の形態１の半導体装置における動作手順１３の説明図
【図１５】同実施の形態１の半導体装置における動作手順１４の説明図
【図１６】同実施の形態１の半導体装置における動作手順１５の説明図
【図１７】同実施の形態１の半導体装置における動作手順１６の説明図
【図１８】同実施の形態１の半導体装置における動作手順１７の説明図
【図１９】同実施の形態１の半導体装置における動作手順１８の説明図
【図２０】本発明の実施の形態２の半導体装置の構成を示すブロック図
【図２１】同実施の形態２の半導体装置における動作手順１の説明図
【図２２】同実施の形態２の半導体装置における動作手順２の説明図
【図２３】同実施の形態２の半導体装置における動作手順３の説明図
【図２４】同実施の形態２の半導体装置における動作手順４の説明図
【図２５】同実施の形態２の半導体装置における動作手順５の説明図
【図２６】同実施の形態２の半導体装置における動作手順６の説明図
【図２７】同実施の形態２の半導体装置における動作手順７の説明図
【図２８】本発明の実施の形態３の半導体装置の構成を示すブロック図
【図２９】同実施の形態３の半導体装置におけるパージエントリ選択部の動作説明図
【図３０】従来の半導体装置の構成を示すブロック図
【符号の説明】
１００　　半導体装置
１０１　　ＣＰＵ
１０２　　キャッシュメモリ制御部
１０３　　キャッシュメモリ比較判定部
１０４　　共有バスインターフェース
１０５　　ＤＭＡコントローラ
１０６　　ＤＭＡ共有メモリ設定部
１０７　　ベースアドレスレジスタ
１０８　　マスク値レジスタ
１１０　　データキャッシュ
１１１　　フラッグ（ＦＬＡＧ）
１１２　　タグアドレス
１１３　　データブロック
１１４　　バリッドビット（Ｖ）
１１５　　ダーティビット（Ｄ）
１３０　　メモリ
１３１　　ＣＰＵ専用メモリ領域
１３２　　共有メモリ領域
１４０　　ビデオカード
１４１　　ＶＲＡＭ
１４２　　転送先メモリ領域
１５０　　共有バス
２００　　半導体装置
２０１　　ＣＰＵ
２０２　　キャッシュメモリ制御部
２０３　　キャッシュメモリ比較判定部
２０４　　共有バスインターフェース
２０５　　外部バスマスタ共有メモリ制御部
２０６　　外部バスマスタ（０）共有メモリ設定部
２０７　　ベースアドレスレジスタ
２０８　　マスク値レジスタ
２０９　　外部バスマスタ（１）共有メモリ設定部
２１０　　データキャッシュ
２１１　　フラッグ（ＦＬＡＧ）
２１２　　フラッグ（ＦＬＡＧ）
２１３　　タグアドレス
２１４　　データブロック
２１５　　バリッドビット（Ｖ）
２１６　　ダーティビット（Ｄ）
２３０　　メモリ
２３１　　ＣＰＵ専用メモリ領域
２３２　　共有メモリ領域
２４０　　ビデオカード
２４１　　ＶＲＡＭ
２４２　　転送先メモリ領域
２５０　　共有バス
２６０　　共有バスアービタ
３００　　半導体装置
３０１　　ＣＰＵ
３０２　　キャッシュメモリ制御部
３０３　　キャッシュメモリ比較判定部
３０４　　共有バスインターフェース
３０５　　ＤＭＡコントローラ
３０６　　ＤＭＡ共有メモリ設定部
３０７　　ベースアドレスレジスタ
３０８　　マスク値レジスタ
３１０　　データキャッシュ
３１１　　フラッグ（ＦＬＡＧ）
３１２　　タグアドレス
３１３　　データブロック
３１４　　バリッドビット（Ｖ）
３１５　　ダーティビット（Ｄ）
３２０　　パージエントリ選択部
３３０　　メモリ
３３１　　ＣＰＵ専用メモリ領域
３３２　　共有メモリ領域
３４０　　ビデオカード
３４１　　ＶＲＡＭ
３４２　　転送先メモリ領域
３５０　　共有バス
４００　　半導体装置
４０１　　ＣＰＵ
４０２　　キャッシュメモリ制御部
４０３　　共有バスインターフェース
４０４　　ＤＭＡコントローラ
４１０　　データキャッシュ
４１２　　タグアドレス
４１３　　データブロック
４１４　　バリッドビット（Ｖ）
４１５　　ダーティビット（Ｄ）
４３０　　メモリ
４４０　　ビデオカード
４４１　　ＶＲＡＭ
４５０　　共有バス
【図１】
2004038422.tif 000003
【図２】
2004038422.tif 000004
【図３】
2004038422.tif 000005
【図４】
2004038422.tif 000006
【図５】
2004038422.tif 000007
【図６】
2004038422.tif 000008
【図７】
2004038422.tif 000009
【図８】
2004038422.tif 000010
【図９】
2004038422.tif 000011
【図１０】
2004038422.tif 000012
【図１１】
2004038422.tif 000013
【図１２】
2004038422.tif 000014
【図１３】
2004038422.tif 000015
【図１４】
2004038422.tif 000016
【図１５】
2004038422.tif 000017
【図１６】
2004038422.tif 000018
【図１７】
2004038422.tif 000019
【図１８】
2004038422.tif 000020
【図１９】
2004038422.tif 000021
【図２０】
2004038422.tif 000022
【図２１】
2004038422.tif 000023
【図２２】
2004038422.tif 000024
【図２３】
2004038422.tif 000025
【図２４】
2004038422.tif 000026
【図２５】
2004038422.tif 000027
【図２６】
2004038422.tif 000028
【図２７】
2004038422.tif 000029
【図２８】
2004038422.tif 000030
【図２９】
2004038422.tif 000031
【図３０】
2004038422.tif 000032