(57)【要約】【課題】キャッシュメモリシステムを用いて、バスマスタ装置による複数回のデータ転送を伴うメモリアクセス処理の完了を正しくプロセッサに通知する。【解決手段】Ｉ／Ｏ装置１４にメモリアクセス処理を実行させる場合、キャッシュメモリ１２１には、更新対象となるシステムメモリ１３上の全てのアドレスに対応するアドレスタグを含むキャッシュラインが割り当てられ、それらキャッシュラインの有効フラグの値は無効に、また動作設定フラグの値はアクセス監視モードに設定される。キャッシュコントローラ１２２はシステムメモリ１３に対するライトアクセスを監視し、そのライトアクセスで更新されるメモリ１３上のアドレスに対応するキャッシュラインの有効フラグの値を有効に更新する。アクセス監視モードに設定された全てのキャッシュラインが有効になると、メモリアクセス処理の完了がキャッシュコントローラ１２２からプロセッサ１１に通知される。【選択図】    図１
2004171469.tif 000002
【特許請求の範囲】
【請求項１】
システムメモリ上のデータを格納する複数のキャッシュラインの各々について、当該キャッシュラインに格納されるデータに対応する前記システムメモリ上のアドレスを示すアドレスタグ情報と、当該キャッシュラインに格納されたデータの有効／無効を示す有効フラグ情報と、当該キャッシュラインがプロセッサと前記システムメモリとの間のデータ転送に使用される通常モード、およびバスマスタ装置によるメモリアクセス処理の完了を監視するためのアクセス監視モードのいずれに設定されているかを示す動作設定フラグ情報とを保持するキャッシュメモリと、
前記バスマスタ装置に前記システムメモリへの複数回のデータ転送を伴うメモリアクセス処理を実行させる場合、前記メモリアクセス処理によって更新対象となる前記システムメモリ上の全てのデータそれぞれに対応するアドレスタグ情報がそれぞれ設定されたキャッシュラインを前記キャッシュメモリ上に割り当てる手段と、
前記割り当てられたキャッシュラインそれぞれに対応する有効フラグ情報を用いて当該各キャッシュラインを無効化すると共に、当該キャッシュラインそれぞれに対応する動作設定フラグ情報を前記アクセス監視モードに設定する手段と、
前記システムメモリへのライトアクセスを監視し、前記アクセス監視モードに設定されたキャッシュラインのアドレスタグ情報で指定される前記システムメモリ上のデータに対するライトアクセスが実行された場合、当該キャッシュラインに前記ライトアクセスによる前記システムメモリ上のデータの更新結果を格納すると共に、当該キャッシュラインに対応する有効フラグ情報を用いて当該キャッシュラインを有効化する手段と、
前記アクセス監視モードに設定された全てのキャッシュラインが有効化された場合、前記メモリアクセス処理の実行が完了したことを前記プロセッサに通知する手段とを具備することを特徴とするキャッシュメモリシステム。
【請求項２】
前記システムメモリへのライトアクセスを監視し、前記通常モードに設定されたキャッシュラインのアドレスタグ情報で指定される前記システムメモリ上のデータに対するライトアクセスが実行された場合、当該キャッシュラインに対応する有効フラグ情報を用いて当該キャッシュラインを無効化する手段をさらに具備することを特徴とする請求項１記載のキャッシュメモリシステム。
【請求項３】
前記動作設定フラグ情報は、前記アクセス監視モードに設定されたキャッシュライン毎に、当該キャッシュラインが、複数のメモリアクセス処理によって更新対象となる前記システムメモリ上の複数のアドレスグループの内のいずれのアドレスグループに対応するアクセス監視モードであるかを示す監視対象アドレスグループ識別情報を含み、
前記メモリアクセス処理の実行が完了したことを前記プロセッサに通知する手段は、前記監視対象アドレスグループ識別情報によって指定されるアドレスグループ毎に、当該アドレスグループに対応するアクセス監視モードに設定された全てのキャッシュラインが有効化されたかどうかを判別する手段を含むことを特徴とする請求項１記載のキャッシュメモリシステム。
【請求項４】
システムメモリ上のデータブロックをそれぞれ格納する複数のキャッシュラインを含むキャッシュメモリを制御するためのキャッシュメモリ制御方法であって、
前記各キャッシュライン毎に、当該キャッシュラインに格納されるデータに対応する前記システムメモリ上のアドレスを示すアドレスタグ情報と、当該キャッシュラインに格納されたデータの有効／無効を示す有効フラグ情報と、当該キャッシュラインがプロセッサと前記システムメモリとの間のデータ転送に使用される通常モード、およびバスマスタ装置によるメモリアクセス処理の完了を監視するためのアクセス監視モードのいずれに設定されているかを示す動作設定フラグ情報とを管理するステップと、
前記バスマスタ装置に前記システムメモリへの複数回のデータ転送を伴うメモリアクセス処理を実行させる場合、前記メモリアクセス処理によって更新対象となる前記システムメモリ上の全てのデータそれぞれに対応するアドレスタグ情報がそれぞれ設定されたキャッシュラインを前記キャッシュメモリ上に割り当てるステップと、
前記割り当てられたキャッシュラインそれぞれに対応する有効フラグ情報を用いて当該各キャッシュラインを無効化すると共に、当該キャッシュラインそれぞれに対応する動作設定フラグ情報を前記アクセス監視モードに設定するステップと、
前記システムメモリへのライトアクセスを監視し、前記アクセス監視モードに設定されたキャッシュラインのアドレスタグ情報で指定される前記システムメモリ上のデータに対するライトアクセスが実行された場合、当該キャッシュラインに前記ライトアクセスによる前記システムメモリ上のデータの更新結果を格納すると共に、当該キャッシュラインに対応する有効フラグ情報を用いて当該キャッシュラインを有効化するステップと、
前記アクセス監視モードに設定された全てのキャッシュラインが有効化された場合、前記メモリアクセス処理の実行が完了したことを前記プロセッサに通知するステップとを具備することを特徴とするキャッシュメモリ制御方法。
【請求項５】
前記システムメモリへのライトアクセスを監視し、前記通常モードに設定されたキャッシュラインのアドレスタグ情報で指定される前記システムメモリ上のデータに対するライトアクセスが実行された場合、当該キャッシュラインに対応する有効フラグ情報を用いて当該キャッシュラインを無効化するステップをさらに具備することを特徴とする請求項４記載のキャッシュメモリ制御方法。
【請求項６】
前記動作設定フラグ情報は、前記アクセス監視モードに設定されたキャッシュライン毎に、当該キャッシュラインが、複数のメモリアクセス処理によって更新対象となる前記システムメモリ上の複数のアドレスグループの内のいずれのアドレスグループに対応するアクセス監視モードであるかを示す監視対象アドレスグループ識別情報を含み、
前記メモリアクセス処理の実行が完了したことを前記プロセッサに通知するステップは、前記監視対象アドレスグループ識別情報によって指定されるアドレスグループ毎に、当該アドレスグループに対応するアクセス監視モードに設定された全てのキャッシュラインが有効化されたかどうかを判別するステップを含むことを特徴とする請求項４記載のキャッシュメモリ制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はキャッシュメモリシステムおよびキャッシュメモリ制御方法に関し、特にプロセッサとバスマスタ装置とを含む情報処理装置で用いられるキャッシュメモリシステムおよびキャッシュメモリ制御方法に関する。
【０００２】
【従来の技術】
近年、パーソナルコンピュータ等を初めとする多くの情報処理装置においては、プロセッサによるシステムメモリのアクセスの高速化を図るために、キャッシュメモリが設けられている。
【０００３】
通常、キャッシュメモリは、システムメモリ上のデータをそれぞれ格納する複数のキャッシュラインの各々について、当該キャッシュラインに格納されたデータの有効／無効を管理する機能を有している。キャッシュメモリは、バスマスタとして機能するＩ／Ｏ装置によるシステムメモリへのライトアクセスを監視し、そのライトアクセスによってシステムメモリ上のデータが更新された時に、その更新されたデータを含むデータブロックを保持するキャッシュラインを無効化する。
【０００４】
これにより、Ｉ／Ｏ装置によるライトアクセスによって既に旧くなったキャッシュメモリ上のデータをプロセッサが誤って読み込むことを未然に防止することができる。
【０００５】
また、Ｉ／Ｏ装置がＤＭＡ転送によってメモリからデータを読み込む際に生じるキャッシュコヒーレンスに関する問題を解決するための技術も知られている（例えば、特許文献１参照。）。この特許文献１のシステムは、ＤＭＡ転送の際に、メモリに記憶された転送元領域の最新データ（ダーティ・データ）がキャッシュに保持されているならば、その最新データをＩ／Ｏ装置に転送すると共に、メモリに書き込むように構成されている。
【０００６】
【特許文献１】
特開２００１−５６８７２号公報（第３−５頁）
【０００７】
【発明が解決しようとする課題】
ところで、最近では、アウトオブオーダー機能をもつメモリやバスブリッジが開発され始めている。アウトオブオーダー機能を用いることにより、メモリに対するアクセスをメモリアクセス要求の発生順とは異なる最適な順序で行うという、いわゆる追い越し制御を実現することができ、結果としてメモリアクセスの効率化や、Ｉ／Ｏ装置とメモリとの間のデータ転送の効率化を図ることが可能となる。
【０００８】
しかし、このような追い越し制御を用いたシステムにおいては、メモリへの複数回のデータ転送を伴うメモリアクセス処理をＩ／Ｏ装置に実行させる場合に次のような問題が生じる危険がある。
【０００９】
例えば、Ｉ／Ｏ装置が、プロセッサからのＤＭＡ転送等の指示に従い、システムメモリへの２回のデータ転送を伴うライトアクセス処理を実行する場合を想定する。Ｉ／Ｏ装置は、１番目のデータ転送、および２番目のデータ転送を、この順で順次実行し、２番目のデータ転送が終了した時点で、ライトアクセス処理が完了したことをプロセッサに通知する。しかし、追い越し制御を用いたシステムにおいては、Ｉ／Ｏ装置とメモリとの間の経路上においてデータ転送の順番の入れ換えが発生し、これによって１番目のデータ転送に対応するライトアクセスが、２番目のデータ転送に対応するライトアクセスの後に実行される場合がある。
【００１０】
この場合、１番目のデータ転送に対応するライトアクセスが未実行であるにもかかわらず、メモリアクセス処理の完了がＩ／Ｏ装置からプロセッサに誤って通知されてしまう。このような誤った通知が発生すると、正常なシステム動作の実行を保証することが出来なくなる。また通知後にプロセッサまたはキャッシュが、１番目のデータ転送に対応するライトアクセスが実行される前の更新前データを更新後の最新のデータとしてメモリからリードしてしまうという問題を引き起こすことにもなる。
【００１１】
本発明は上述の事情を考慮してなされたものであり、バスマスタ装置による複数回のデータ転送を伴うメモリアクセス処理の完了を正しくプロセッサに通知することが可能なキャッシュメモリシステムおよびキャッシュメモリ制御方法を提供することを目的とする。
【００１２】
【課題を解決するための手段】
上述の課題を解決するため、本発明のキャッシュメモリシステムは、システムメモリ上のデータを格納する複数のキャッシュラインの各々について、当該キャッシュラインに格納されるデータに対応する前記システムメモリ上のアドレスを示すアドレスタグ情報と、当該キャッシュラインに格納されたデータの有効／無効を示す有効フラグ情報と、当該キャッシュラインがプロセッサと前記システムメモリとの間のデータ転送に使用される通常モード、およびバスマスタ装置によるメモリアクセス処理の完了を監視するためのアクセス監視モードのいずれに設定されているかを示す動作設定フラグ情報とを保持するキャッシュメモリと、前記バスマスタ装置に前記システムメモリへの複数回のデータ転送を伴うメモリアクセス処理を実行させる場合、前記メモリアクセス処理によって更新対象となる前記システムメモリ上の全てのデータそれぞれに対応するアドレスタグ情報がそれぞれ設定されたキャッシュラインを前記キャッシュメモリ上に割り当てる手段と、前記割り当てられたキャッシュラインそれぞれに対応する有効フラグ情報を用いて当該各キャッシュラインを無効化すると共に、当該キャッシュラインそれぞれに対応する動作設定フラグ情報を前記アクセス監視モードに設定する手段と、前記システムメモリへのライトアクセスを監視し、前記アクセス監視モードに設定されたキャッシュラインのアドレスタグ情報で指定される前記システムメモリ上のデータに対するライトアクセスが実行された場合、当該キャッシュラインに前記ライトアクセスによる前記システムメモリ上のデータの更新結果を格納すると共に、当該キャッシュラインに対応する有効フラグ情報を用いて当該キャッシュラインを有効化する手段と、前記アクセス監視モードに設定された全てのキャッシュラインが有効化された場合、前記メモリアクセス処理の実行が完了したことを前記プロセッサに通知する手段とを具備することを特徴とする。
【００１３】
このキャッシュメモリシステムによれば、バスマスタ装置にメモリアクセス処理を実行させる場合には、そのメモリアクセス処理によって更新されるシステムメモリ上の全てのデータそれぞれに対応するアドレスタグ情報がそれぞれ設定されたキャッシュラインをキャッシュメモリ上に用意してシステムメモリへのライトアクセスを監視することにより、複数回のデータ転送を伴うメモリアクセス処理の完了を正しくプロセッサに通知することが可能となる。
【００１４】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。
図１には、本発明の一実施形態に係るキャッシュメモリシステムを用いた情報処理装置の構成が示されている。この情報処理装置は、図示のように、プロセッサ１１、キャッシュメモリシステム１２、システムメモリ１３、第１および第２の２つのＩ／Ｏ装置１４，１５、割り込みコントローラ１６、およびバス１７を備えている。
【００１５】
プロセッサ１１は本情報処理装置の動作を制御するためのＣＰＵであり、本情報処理装置の主記憶装置であるシステムメモリ１３に記憶されたプログラムを実行することにより、Ｉ／Ｏ装置１４，１５の制御、およびキャッシュメモリシステム１２の制御を行う。プロセッサ１１によるシステムメモリ１３のアクセスは、キャッシュメモリシステム１２を介して行われる。
【００１６】
キャッシュメモリシステム１２は、システムメモリ１３に記憶されたデータ（命令を含む）の一部を保持するためのものであり、データを保持するためのキャッシュメモリ１２１と、そのキャッシュメモリ１２１を制御するためのキャッシュコントローラ１２２とから構成されている。以下では、キャッシュメモリシステム１２のキャッシュポリシーがライトスルーである場合を想定することとする。
【００１７】
キャッシュメモリ１２１は、システムメモリ１３上のデータブロックがそれぞれ格納される複数のキャッシュラインを備えている。各キャッシュラインには、図示のように、アドレスタグ、データブロック、有効フラグ、および動作設定フラグをそれぞれ保持するための記憶エリアが用意されている。キャッシュメモリ１２１は、プロセッサ１１からのシステムメモリ１３へのアクセスに対応するメモリキャッシュとしての動作によるアドレスタグの更新制御とは独立に、プロセッサ１１により任意のキャッシュラインのアドレスタグと有効フラグと動作設定フラグの設定操作が可能に構成されている。
【００１８】
アドレスタグは、当該キャッシュラインのデータブロックに格納されるシステムメモリ１３上のデータブロックのアドレスの一部を示す。有効フラグは、当該キャッシュラインのデータブロックの有効（Ｖ：ｖａｌｉｄ）／無効（Ｉ：ｉｎｖａｌｉｄ）を示す。
【００１９】
動作設定フラグは、当該キャッシュラインの動作モードを指定するフラグ情報である。本実施形態においては、動作設定フラグは、プロセッサモード（Ｐ）、アクセス監視モード（Ａ）、アクセス監視モード（Ｂ）のいずれかを示す。
【００２０】
プロセッサモード（Ｐ）は、当該キャッシュラインがプロセッサ１１とシステムメモリ１３との間のデータ転送に使用される通常モードであることを示す。プロセッサモード（Ｐ）に設定されたキャッシュラインについては、キャッシュコントローラ１２２は、プロセッサ１１の動作およびシステムメモリ１３での動作を監視しプロセッサ１１によるシステムメモリ１３のアクセスに対応する通常のメモリキャッシュとしての動作を行う。
【００２１】
アクセス監視モード（Ａ），（Ｂ）は、当該キャッシュラインがバスマスタ装置（Ｉ／Ｏ装置１４，１５）によるシステムメモリ１３のアクセス処理の完了を監視するためのキャッシュラインであることを示す。
【００２２】
アクセス監視モード（Ａ）は、Ｉ／Ｏ装置（Ａ）１４によって実行されるメモリアクセス処理の完了を監視するモード（Ｉ／Ｏ装置Ａ対応状態）であることを示し、アクセス監視モード（Ｂ）は、Ｉ／Ｏ装置（Ｂ）１５によって実行されるメモリアクセス処理の完了を監視するモード（Ｉ／Ｏ装置Ｂ対応状態）であることを示す。
【００２３】
なお、各Ｉ／Ｏ装置対応状態は、必ずしも対応するＩ／Ｏ装置によるアクセスの監視にしか使用できないというわけではなく、例えばＩ／Ｏ装置Ａ対応状態であっても、Ｉ／Ｏ装置（Ｂ）１５によるメモリアクセスを監視対象に含ませることも可能である。
【００２４】
つまりアクセス監視モードの（Ａ），（Ｂ）は、複数回のデータ転送を伴うあるメモリアクセス処理（Ａ）と、複数回のデータ転送を伴う別のメモリアクセス処理（Ｂ）とを区別するための識別情報として用いられる。よって、アクセス監視モードの（Ａ），（Ｂ）が、必ずしもＩ／Ｏ装置（Ａ）１４，Ｉ／Ｏ装置（Ｂ）１５にそれぞれ一対一で対応付けされる必要はない。
【００２５】
すなわち、バスマスタ装置によるあるメモリアクセス処理（Ａ）によって更新対象となるシステムメモリ１３上のアドレスグループを（ｍ）、バスマスタ装置による別のメモリアクセス処理（Ｂ）によって更新対象となるシステムメモリ１３上のアドレスグループを（ｎ）とすれば、アクセス監視モード（Ａ），（Ｂ）は、それぞれアクセス監視モード（ｍ），（ｎ）と表記することが出来る。
【００２６】
この意味で、アクセス監視モードの（Ａ），（Ｂ）は、監視対象とすべきアドレスグループを識別するための情報であり、当該キャッシュラインが、複数のメモリアクセス処理によって更新対象となるシステムメモリ１３上の複数のアドレスグループの内のいずれのアドレスグループに対応するアクセス監視モードであるかを管理するために用いられる。以下では、動作設定フラグの値がＡの状態を「監視対象アドレスグループ（ｍ）対応状態」と称し、動作設定フラグの値がＢの状態を「監視対象アドレスグループ（ｎ）対応状態」と称し、動作設定フラグの値がＡまたはＢの状態を「監視対象アドレスグループ（ｍ／ｎ）対応状態」と称することとする。
【００２７】
Ｉ／Ｏ装置（Ａ）１４，Ｉ／Ｏ装置（Ｂ）１５は上述したようにそれぞれバスマスタ装置として機能し、プロセッサ１１によるＤＭＡ転送のための動作設定に従い、複数回のデータ転送を伴うメモリアクセス処理を実行する。
【００２８】
このメモリアクセス処理の実行に先立ち、キャッシュメモリ１２１には、プロセッサ１１の制御の下に、そのメモリアクセス処理で更新対象となるシステムメモリ１３上の全てのアドレスに対応するアドレスタグを含むキャッシュラインが割り当てられる。既に該当するアドレスタグを持つキャッシュラインがキャッシュメモリ１２１に存在する場合には、それ以外の他のアドレスに対応するアドレスタグを持つキャッシュラインのみが新たにキャッシュメモリ１２１上に用意される。新たに用意されたキャッシュラインのデータブロックは空きのままでよい。そして、プロセッサ１１の制御の下に、更新対象となるシステムメモリ１３上の全てのアドレスに対応するアドレスタグを含むキャッシュラインの有効フラグがＩ：無効に設定されると共に、動作設定フラグが「監視対象アドレスグループ（ｍ）対応状態」（または「監視対象アドレスグループ（ｎ）対応状態」）に設定される。
【００２９】
キャッシュコントローラ１２２は、Ｉ／Ｏ装置（Ａ）１４またはＩ／Ｏ装置（Ｂ）１５によるシステムメモリ１３へのライトアクセスを監視し、「監視対象アドレスグループ（ｎ）対応状態」に設定されたキャッシュラインのアドレスタグで指定されるシステムメモリ１３上のアドレスに対するライトアクセスが実行される度に、その有効フラグの値がＩ：無効であれば、ライトアクセスによるシステムメモリ１３上のデータの更新結果を該当するキャッシュラインに登録し、さらにそのキャッシュラインの有効フラグをＶ：有効に書き換える。そして、キャッシュコントローラ１２２は、「監視対象アドレスグループ（ｎ）対応状態」に設定された全てのキャッシュラインの有効フラグの値がＶ：有効に設定されたときに、監視対象アドレスグループに対応するライトアクセス処理が完了したことを割り込みコントローラ１６を通じて、割り込み信号によってプロセッサ１１に通知する。
【００３０】
このように、キャッシュメモリシステム１２のバス監視機能を利用してメモリアクセス処理の完了を監視する構成を用いることにより、キャッシュメモリシステム１２以外の他の特別なハードウェアを用意せずとも、実際に実行されるデータ転送やメモリアクセスの順序とは無関係に、複数回のデータ転送それぞれに対応するメモリアクセス全てが完了したかどうかを正しく判別することが可能となり、アウトオブオーダーによる追い越し制御の仕組みをもつ情報処理装置においても、複数回のデータ転送を伴うメモリアクセス処理の完了を正しくプロセッサ１１に通知することが可能となる。
【００３１】
さらに、システムメモリ１３の更新内容はキャッシュメモリ１２１のデータブロックにも反映されているため、メモリアクセス処理の完了通知を受けたプロセッサ１１はシステムメモリ１３の更新の結果を、システムメモリ１３をアクセスすることなくキャッシュメモリ１２１により利用することが可能となる。
【００３２】
追い越し制御は、例えば、図２に示すようなシステムメモリ１３の構成を採用すること、あるいは図３に示すようなバスブリッジ１８をＩ／Ｏ装置（Ａ）１４またはＩ／Ｏ装置（Ｂ）１５とシステムメモリ１３との間に介在させることによって実現することができる。
【００３３】
図２のシステムメモリ１３は、独立してライト／リードアクセス動作の可能な２つのメモリバンク１３３，１３４を有している。これらメモリバンク１３３，１３４の各々には、複数のメモリライトアクセス要求を保持可能なメモリライトバッファ１３１と、複数のメモリリードアクセス要求を保持可能なメモリリードバッファ１３１とが接続されている。２つのメモリバンク１３３，１３４には、連続するアドレス空間が割り当てられている。
【００３４】
メモリライトバッファ１３１はメモリバンク１３３用のバッファとメモリバンク１３４用のバッファとを有している。例えば、メモリバンク１３３用のバッファメモリには複数のライトアクセス要求が蓄積された状態で、メモリバンク１３４に対するライトアクセスが発生した場合には、そのライトアクセスは、メモリバンク１３４用のバッファを介して先に実行される。このようにして、ライトアクセスの追い越し制御が実行される。
【００３５】
同様に、メモリリードバッファ１３２もメモリバンク１３３用のバッファとメモリバンク１３４用のバッファとを有しており、リードアクセスの追い越し制御も実行される。
【００３６】
図３は、バス１７にバスブリッジ１８を挿入した場合を示している。バス１７は、バスブリッジ１８によって、システムメモリ１３側のバス１７ａと、Ｉ／Ｏ装置１４，１５側のバス１７ｂとに分離される。バスブリッジ１８は、バス１７ａからバス１７ｂへのデータ転送サイクルの伝達＜およびバス１７ｂからバス１７ａへのデータ転送サイクルの伝達を実行するデバイスである。
【００３７】
バスブリッジ１８はアウトオブオーダー制御ユニット１８１を備えている。アウトオブオーダー制御ユニット１８１は、例えば、システムメモリ１３の各バンクのビジー／レディー状態等に応じて、バス１７ｂを介してＩ／Ｏ装置１４または１５から送信される複数のデータ転送の中から、メモリアクセス可能なデータ転送を優先してバス１７ａに伝達する。このようなデータ転送の実行順に関するアウトオブオーダー制御により、システムメモリ１３に対するライトアクセスの追い越し制御が実行される。
【００３８】
図３の構成においては、キャッシュコントローラ１２２はバス１７ａ上のメモリライトサイクルを監視すればよい。また図２の構成においては、例えば、メモリライトバッファ１３１とメモリバンク１３３，１３４との間のメモリバス上のメモリライトサイクルを監視しても良いし、また図２のメモリライトバッファ１３１をメモリバンク１３３，１３４と並列にバス１７に接続する構成を採用することによって、バス１７上のメモリライトサイクルを監視するようにしてもよい。
【００３９】
次に、図４を参照して、キャッシュコントローラ１２２によって実行される監視動作の原理について説明する。
【００４０】
ここでは、Ｉ／Ｏ装置（Ａ）１４が、プロセッサ１１からのＤＭＡ転送指示に従い、データ転送１とデータ転送２の２回のデータ転送を伴うメモリアクセス処理を実行する場合を想定する。Ｉ／Ｏ装置（Ａ）１４は、データ転送１と、データ転送２を、この順で順次実行する。上述の追い越し制御の仕組みにより、例えば図３の構成においては、データ転送１よりも先にデータ転送２がシステムメモリ１３に対して発行される場合がある。
【００４１】
キャッシュメモリシステム１３においては、各データ転送が実行される度に、「監視対象アドレスグループ（ｍ／ｎ）対応状態」に設定されたキャッシュラインの中から、該当するキャッシュラインにライトアクセスによるシステムメモリ１３上のデータの更新結果を格納する処理と、そのキャッシュラインの有効フラグをＩ：無効から、Ｖ：有効に更新する処理が実行される。このようにして、データ転送１，２に対応するメモリアクセスの実行順とは無関係に、データ転送１，２にそれぞれ対応する個々のメモリアクセスの実行の有無を正しく管理することが出来る。
【００４２】
次に、図５および図６のフローチャートを参照して、図１のシステムにおいて実行される一連の動作について説明する。
【００４３】
まず、図５のフローチャートを参照して、Ｉ／Ｏ装置（Ａ）１４またはＩ／Ｏ装置（Ｂ）１５にメモリアクセス処理を実行させる場合に行うことが必要な準備処理について説明する。
【００４４】
以下では、Ｉ／Ｏ装置（Ａ）１４に複数のデータ転送を伴うメモリアクセス処理（ＤＭＡ転送）を実行させる場合を想定する。
【００４５】
プロセッサ１１は、まず、Ｉ／Ｏ装置（Ａ）１４に対してＤＭＡ転送のためのメモリアクセスパラメタを設定する（ステップＳ１０１）。このメモリアクセスパラメタには、例えば、転送開始アドレスと転送データ長、さらにはメモリライトであることを示す転送種別情報などが含まれる。次いで、プロセッサ１１は、キャッシュコントローラ１２２を用いて以下の処理を実行する。
【００４６】
キャッシュコントローラ１２２は、プロセッサ１１の制御に従い、Ｉ／Ｏ装置（Ａ）１４によるメモリアクセス処理で更新対象となるシステムメモリ１３上の全てのアドレスに対応するアドレスタグを含むキャッシュラインをキャッシュメモリ１２１上に割り当てる（ステップＳ１０２）。次いで、キャッシュコントローラ１２２は、プロセッサ１１の制御に従い、割り当てた各キャッシュラインの有効フラグをＩ（無効）に設定し（ステップＳ１０３）、そして動作設定フラグの値をＡに設定して、当該キャッシュラインをアクセス監視モード、つまり「監視対象アドレスグループ（ｍ）対応状態」に設定する（ステップＳ１０４）。
【００４７】
この後、プロセッサ１１は、まず、Ｉ／Ｏ装置（Ａ）１４に対してメモリアクセス処理（ＤＭＡ転送）の開始を指示する（ステップＳ１０５）。
【００４８】
Ｉ／Ｏ装置（Ｂ）１５に複数のデータ転送を伴うメモリアクセス処理（ＤＭＡ転送）を実行させる場合も、上述と同様の処理が実行される。
【００４９】
次に、図６のフローチャートを参照して、キャッシュコントローラ１２２によって実行される監視動作を説明する。
【００５０】
キャッシュコントローラ１２２は、バス上にシステムメモリ１３へのライトアクセス（データ転送アクセス）が発生する度に以下の処理を実行する。まず、キャッシュコントローラ１２２は、キャッシュメモリ１２１の中から、ライトアクセスで指定されたアドレスに対応するキャッシュラインを選択し（ステップＳ１１１）、そしてそのキャッシュラインのアドレスタグとライトアクセスで指定されたアドレスとを比較することによって、選択されたキャッシュラインのアドレスタグの内容が、ライトアクセスで指定されたアドレスに対応するものであるかどうかを判別する（ステップＳ１１２）。
【００５１】
選択されたキャッシュラインのアドレスタグの内容がライトアクセスで指定されたアドレスに対応するものであるならば（ステップＳ１１２のＹＥＳ）、キャッシュコントローラ１２２は、選択されたキャッシュラインの動作設定フラグを参照することにより、動作設定フラグの値がＰ：プロセッサ対応状態であるかどうかを判別する（ステップＳ１１３）。動作設定フラグの値がＰ：プロセッサ対応状態であるならば（ステップＳ１１３のＹＥＳ）、キャッシュコントローラ１２２は、当該キャッシュラインの有効フラグの値がＶ：有効であるかどうかを判別し（ステップＳ１１４）、もし有効であれば（ステップＳ１１４のＹＥＳ）、当該キャッシュラインのデータブロックを無効化するために、有効フラグの値をＶ：有効から、Ｉ：無効に更新する（ステップＳ１１５）。
【００５２】
一方、動作設定フラグの値がＰ：プロセッサ対応状態で無い場合には、動作設定フラグの値が、Ａ：監視対象アドレスグループ（ｍ）対応状態、あるいはＢ：監視対象アドレスグループ（ｎ）対応状態のいずれかに設定されているかどうかを判別する（ステップＳ１１６）。
【００５３】
動作設定フラグの値がＡ：監視対象アドレスグループ（ｍ）対応状態、あるいはＢ：監視対象アドレスグループ（ｎ）対応状態のいずれかに設定されているならば（ステップＳ１１６のＹＥＳ）、キャッシュコントローラ１２２は、当該キャッシュラインの有効フラグの値がＩ：無効であるかどうかを判別する（ステップＳ１１７）。もしＩ：無効であるならば、キャッシュコントローラ１２２は、監視対象のメモリライトアクセスが実行されたものと判断し、当該キャッシュラインにメモリライトアクセスに含まれるライトデータを格納すると共に、当該キャッシュラインの有効フラグの値をＩ：無効から、Ｖ：有効に更新する（ステップＳ１１８）。
【００５４】
この後、キャッシュコントローラ１２２は、動作設定フラグの値がＡに設定されている全てのキャッシュラインの有効フラグの値がＶ：有効であるかどうか、および動作設定フラグの値がＢに設定されている全てのキャッシュラインの有効フラグの値がＶ：有効であるかどうかを判別する（ステップＳ１１９，Ｓ１２１）。
【００５５】
もし、動作設定フラグの値がＡに設定されている全てのキャッシュラインの有効フラグの値がＶ：有効であるならば（ステップＳ１１９のＹＥＳ）、キャッシュコントローラ１２２は、監視対象アドレスグループ（ｍ）対応状態に設定されたキャッシュラインによって監視されていた全てのアドレスに対するシステムメモリ１３に対するライトアクセスが完了したと判断し、監視対象アドレスグループ（ｍ）に対応するメモリアクセス処理の完了を割り込みコントローラ１６を通じて割り込み信号によってプロセッサ１１に通知する（ステップＳ１２０）。
【００５６】
プロセッサ１１は、現在どの監視対象アドレスグループに対応するメモリアクセス処理が実行されているかを認識しているので、キャッシュコントローラ１２２は、メモリアクセス処理の完了をプロセッサ１１に通知するのみで良く、どの監視対象アドレスグループに対応するメモリアクセス処理が完了したかについては通知する必要はない。
【００５７】
もちろん、複数のメモリアクセス処理を並列的に実行するような場合には、例えば、キャッシュコントローラ１２２内に、どの監視対象アドレスグループに対応するメモリアクセス処理が完了したかを識別するための識別フラグを保持しておき、割り込みを受けたプロセッサ１１が当該識別フラグを参照して、どのメモリアクセス処理が完了したのかを確認できるようにしても良い。識別フラグとしては、動作モード設定フラグの値をそのまま利用することもできる。これにより、どの監視対象アドレスグループに対応するメモリアクセス処理が完了したかをプロセッサ１１に通知する事が可能となる。
【００５８】
また、もし動作設定フラグの値がＢに設定されている全てのキャッシュラインの有効フラグの値がＶ：有効であるならば（ステップＳ１２１のＹＥＳ）、キャッシュコントローラ１２２は、監視対象アドレスグループ（ｎ）対応状態に設定されたキャッシュラインによって監視されていた全てのアドレスに対するシステムメモリ１３に対するライトアクセスが完了したと判断し、監視対象アドレスグループ（ｎ）に対応するメモリアクセス処理の完了を割り込みコントローラ１６を通じて割り込み信号によってプロセッサ１１に通知する（ステップＳ１２２）。
【００５９】
このようにして、監視対象のアドレスグループ毎に、当該アドレスグループに対応するアクセス監視モードに設定された全てのキャッシュラインが有効化されたかどうかを判別し、全てのキャッシュラインが有効化された場合にメモリアクセス処理の完了をプロセッサ１１に通知する処理が実行される。
【００６０】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。
【００６１】
例えば、ライトアクセスに含まれるライトデータを該当するキャッシュラインに格納するのではなく、システムメモリ１３上で更新されたデータをシステムメモリ１３から読み込んで、該当するキャッシュラインに格納するようにしてもよい。また、本実施形態のキャッシュメモリシステム１３は、コンピュータの他、例えば、ＰＤＡ、携帯電話機、オーディオ・ビデオプレーヤのような、マイクロコンピュータ内蔵の各種電子機器に適用することも出来る。
【００６２】
更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【００６３】
【発明の効果】
以上詳述した如く本発明によれば、複数回のデータ転送を伴うメモリアクセス処理の完了を正しくプロセッサに通知することが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るキャッシュメモリシステムを用いた情報処理装置の構成を示すブロック図。
【図２】図１の情報処理装置に設けられるシステムメモリの構成例を示すブロック図。
【図３】図１の情報処理装置に設けられるバスブリッジを示すブロック図。
【図４】図１の情報処理装置においてキャッシュメモリシステムが実行する監視動作の原理を説明するための図。
【図５】図１の情報処理装置においてプロセッサの制御の下に実行される準備処理の手順を示すフローチャート。
【図６】図１の情報処理装置においてキャッシュメモリシステムによって実行される監視動作の手順を示すフローチャート。
【符号の説明】
１１…プロセッサ
１２…キャッシュメモリシステム
１３…システムメモリ
１４，１５…Ｉ／Ｏ装置（バスマスタ装置）
１６…割り込みコントローラ
１８…バスブリッジ
１２１…キャッシュメモリ
１２２…キャッシュコントローラ
１３３，１３４…メモリバンク
１８１…アウトオブオーダー制御ユニット
【図１】
2004171469.tif 000003
【図２】
2004171469.tif 000004
【図３】
2004171469.tif 000005
【図４】
2004171469.tif 000006
【図５】
2004171469.tif 000007
【図６】
2004171469.tif 000008