(57)【特許請求の範囲】
【請求項１】
ブロック単位のストアデータを伴うストアリクエストを受け取り、ストアデータを複数のブロックを含むライン単位で格納する複数ｗａｙを含むストアバッファ部と、
前記ストアバッファ部のライン内のすべてのブロックが前記ストアバッファ部内に存在するｗａｙを優先してストアデータを追い出す制御を行うストアバッファ制御部と、
を含むことを特徴とするストア制御装置。
【請求項２】
前記ストアバッファ部のライン内のすべてのブロックが存在するｗａｙが複数存在する場合、最新ｗａｙ番号の次のｗａｙ番号から順次検索し、ライン内のすべてのブロックが存在するｗａｙを優先してストアデータを追い出す制御を行う前記ストアバッファ制御部を含むことを特徴とする請求項１のストア制御装置。
【請求項３】
前記ストアバッファ部のライン内のすべてのブロックが存在するｗａｙが存在しない場合、マージが実施されたブロックが存在するｗａｙを優先してストアデータを追い出す制御を行う前記ストアバッファ制御部を含むことを特徴とする請求項２のストア制御装置。
【請求項４】
前記ストアバッファ部のライン内のすべてのブロックが存在するｗａｙが存在せず、マージが実施されたブロックが存在するｗａｙが複数存在する場合、最新ｗａｙ番号の次のｗａｙ番号から順次検索し、マージが実施されたブロックが存在するｗａｙを優先してストアデータを追い出す制御を行う前記ストアバッファ制御部を含むことを特徴とする請求項３のストア制御装置。
【請求項５】
優先指定情報を含むストアリクエストを受け取ると、ストアデータを前記ストアバッファ部に格納し、そのストアデータを格納したライン内のすべてのブロックが前記ストアバッファ部内に存在するとして制御を行う前記ストアバッファ制御部を含むことを特徴とする請求項４のストア制御装置。
【請求項６】
コア番号を含むリクエストを受け取ると、コア番号を前記ストアバッファ部に格納し、コア障害情報を受け取ると、コア障害情報に含まれるコア番号と、前記ストアバッファ部内のコア番号の一致を調べ、一致したコア番号を含むｗａｙのストアデータを優先して追い出す制御を行うことを特徴とする請求項５のストア制御装置。
【請求項７】
請求項１、２、３、４、５、または、６の前記ストア制御装置と、
ブロック単位のストアデータを伴うストアリクエストを前記ストア制御装置に出力するプロセッサと、
前記ストア制御装置から追い出されたストアデータを格納する主記憶装置と、
を含むことを特徴とする情報処理装置。
【請求項８】
ブロック単位のストアデータを伴うストアリクエストを受け取り、ストアデータを複数のブロックを含むライン単位で格納する複数ｗａｙを含むストアバッファ部に対し、ライン内のすべてのブロックが前記ストアバッファ部内に存在するｗａｙを優先してストアデータを追い出すことを特徴とするストア制御方法。
【請求項９】
前記ストアバッファ部のライン内のすべてのブロックが存在するｗａｙが複数存在する場合、最新ｗａｙ番号の次のｗａｙ番号から順次検索し、ライン内のすべてのブロックが存在するｗａｙを優先してストアデータを追い出すことを特徴とする請求項８のストア制御方法。
【請求項１０】
前記ストアバッファ部のライン内のすべてのブロックが存在するｗａｙが存在しない場合、マージが実施されたブロックが存在するｗａｙから優先してストアデータを追い出すことを特徴とする請求項９のストア制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストア制御装置、情報処理装置、および、ストア制御方法に関する。
【背景技術】
【０００２】
ストアバッファの制御に関する技術の一例が特許文献１に記載されている。この技術は、ストアバッファからストアデータを追い出す制御のために、タイマ、ライトバッファに格納されているデータの数を示す回路等を設けている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−４３２０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した特許文献１記載の技術は、タイマ、ライトバッファに格納されているデータの数を示す回路等を設けているため、ライトバッファからストアデータを追い出す制御が複雑であるという課題をもつ。
【０００５】
本発明の目的は、上記課題を解決したストア制御装置、情報処理装置、および、ストア制御方法を提供することである。
【課題を解決するための手段】
【０００６】
本発明のストア制御装置は、ブロック単位のストアデータを伴うストアリクエストを受け取り、ストアデータを複数のブロックを含むライン単位で格納する複数ｗａｙを含むストアバッファ部と、前記ストアバッファ部のライン内のすべてのブロックが前記ストアバッファ部内に存在するｗａｙを優先してストアデータを追い出す制御を行うストアバッファ制御部とを含む。
【０００７】
本発明のストア制御方法は、ブロック単位のストアデータを伴うストアリクエストを受け取り、ストアデータを複数のブロックを含むライン単位で格納する複数ｗａｙを含むストアバッファ部に対し、ライン内のすべてのブロックが前記ストアバッファ部内に存在するｗａｙを優先してストアデータを追い出す。
【発明の効果】
【０００８】
本発明の効果は、ライトバッファからストアデータを追い出す制御が簡単になることである。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１の実施の形態の構成を示すブロック図である。
【図２】本発明の第１の実施の形態の動作を示すフローチャートである。
【図３】本発明の第２の実施の形態の構成を示すブロック図である。
【図４】ストアバッファ部の構成を示すブロック図である。
【図５】ストアバッファ部の構成を示すブロック図である。
【図６】エントリ情報の内容を示す説明図である。
【図７】エントリフル検出回路の構成を示すブロック図である。
【図８】追い出し制御回路の構成を示すブロック図である。
【図９】追い出し制御回路の論理を示す説明図である。
【図１０】マージ回路の構成を示すブロック図である。
【図１１】リクエストの内容を示す説明図である。
【図１２】本発明の第２の実施の形態の動作を示す概略フローチャートである。
【図１３】追い出し動作の一例を示す説明図である。
【図１４】本発明の第３の実施の形態の構成を示すブロック図である。
【図１５】リクエストの内容を示す説明図である。
【図１６】エントリ情報の内容を示す説明図である。
【図１７】ストアバッファ部の構成を示すブロック図である。
【図１８】ストアバッファ部の構成を示すブロック図である。
【発明を実施するための形態】
【００１０】
次に、本発明の第１の実施の形態について図面を参照して詳細に説明する。図１は、第１の実施の形態の構成を示すブロック図である。図１を参照すると、第１の実施の形態のストア制御装置１００は、ストアバッファ部１０１、および、ストアバッファ制御部１０２を含む。
【００１１】
ストアバッファ制御部１０２は、プロセッサ、および、ストアバッファ部１０１と接続される。ストアバッファ制御部１０２は、ストアバッファ部１０１の制御を行う。ストアバッファ部１０１は、ストアバッファ制御部１０２、および、主記憶装置と接続される。ストアバッファ部１０１は、プロセッサから主記憶装置にストアされる（書き込まれる）ストアデータを一時的に格納する。
【００１２】
ストアバッファ制御部１０２は、プロセッサからリクエストによりブロック単位（連続する複数バイト）のストアデータを受け取り、ストアバッファ部１０１に格納する。また、ストアバッファ制御部１０２は、ストアバッファ部１０１からライン単位（連続する複数ブロック）のストアデータを取り出し（追い出し）、主記憶装置へ出力させる。
【００１３】
また、ストアバッファ部１０１のラインに少なくとも１つのブロックが存在する場合に、リクエストによりプロセッサからのそのラインに対応するストアデータ（ブロック単位）を受け取ると、マージして格納する。また、マージが少なくとも１回発生すると、そのラインは、マージ中と呼ぶ。また、ラインのすべてのブロックが存在していると、そのラインは、マージ完了と呼ぶ。
【００１４】
ストアバッファの方式として、複数のｗａｙ（ウェイ）を備える方式（たとえば、セットアソシアティブ方式等）が適用される。ここで、各ｗａｙに格納される情報の単位をエントリと称する。
【００１５】
次に、第１の実施の形態の動作について図面を参照して説明する。図２は、第１の実施の形態の動作を示すフローチャートである。図２を参照すると、ストアデータを主記憶装置に追い出す契機が発生すると（ステップＳ１／Ｙ）、ストアバッファ制御部１０２は、ライン内のすべてのブロックがストアバッファ部１０１内に存在する（すなわち、マージ完了の）ｗａｙを優先してストアデータを追い出す指示を出力する（ステップＳ２）。
【００１６】
ここで、契機とは、たとえば、ストアバッファ部１０１のリクエストのアドレス（中位）に対応するすべてのｗａｙのエントリ（ライン）にストアデータが格納されており、新たなストアデータをいずれかのｗａｙのエントリ（ライン）に格納する場合等である。
【００１７】
次に、ストアバッファ部１０１は、ストアバッファ制御部１０２からの指示にしたがい、ストアデータを追い出して主記憶装置に出力する（ステップＳ３）。
【００１８】
次に、第１の実施の形態の効果について説明する。
【００１９】
第１の実施の形態は、ライン内のすべてのブロックがストアバッファ部１０１内に存在する（マージ完了の）ｗａｙから優先してストアデータを追い出す構成である。
【００２０】
したがって、第１の実施の形態は、たとえば、特許文献１記載の技術のタイマ、ライトバッファに格納されているデータの数を示す回路等が不要となり、追い出しの制御が簡単になるという効果をもつ。
【００２１】
したがって、また、第１の実施の形態は、たとえば、追い出しアルゴリズムに、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）を用いる構成に比べて、ハードウェア量が減少するという効果をもつ。
【００２２】
また、第１の実施の形態は、主記憶装置１１４へのアクセスの回数を減少させ、ストアバッファ部１０１を効率的に利用できるという効果をもつ。
【００２３】
その理由は、マージ完了のラインには、新たなマージが発生する確率が低いので、マージ完了のラインを追い出し、マージの発生する確率の高いラインをストアバッファ部１０１に格納する構成をとるからである。
【００２４】
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。図３は、第２の実施の形態の構成を示すブロック図である。図３を参照すると、第２の実施の形態の情報処理装置１１０は、プロセッサ１１１、ストア制御装置１００、および、主記憶装置１１４を含む。
【００２５】
ストア制御装置１００は、第１の実施の形態のストア制御装置１００の一例であり、ストアバッファ部１０１、および、ストアバッファ制御部１０２を含む。ストアバッファ制御部１０２は、マージ回路１１２、エントリフル検出回路１１５、および、追い出し制御回路１１６を含む。
【００２６】
プロセッサ１１１は、マージ回路１１２、および、主記憶装置１１４と接続される。プロセッサ１１１は、リクエスト（ロード、ストア）、および、主記憶装置１１４に書き込むためのストアデータをマージ回路１１２へ出力する。また、プロセッサ１１１は、主記憶装置１１４からロードデータ（読み出しデータ）を受け取る。
【００２７】
マージ回路１１２は、プロセッサ１１１、および、ストアバッファ部１０１と接続される。マージ回路１１２は、プロセッサ１１１からのリクエスト、および、ストアデータをストアバッファ部１０１へ出力する。また、マージ回路１１２は、ストアバッファ部１０１からのライン単位のストアデータとプロセッサ１１１からのストアデータとのマージ処理を行いストアバッファ部１０１へ出力する。
【００２８】
ストアバッファ部１０１は、マージ回路１１２、主記憶装置１１４、エントリフル検出回路１１５、および、追い出し制御回路１１６と接続される。ストアバッファ部１０１は、ロードリクエストのアドレスと、ストアバッファ部１０１内のストアリクエストのアドレスとを比較し、一致した場合に、対応するストアデータを追い出し（読み出し）、ストアリクエストと共に主記憶装置１１４へ出力する。
【００２９】
また、ストアバッファ部１０１は、ストアデータを読み出してマージ回路１１２に出力し、マージ回路１１２の出力であるマージ後のストアデータを元の格納場所（元のエントリ）に格納する。
【００３０】
また、ストアバッファ部１０１は、エントリ情報（エントリ内の情報）の一部、および、最新ｗａｙ番号をエントリフル検出回路１１５へ出力し、追い出し制御回路１１６の指示にしたがいストアデータを主記憶装置１１４へ出力する。
【００３１】
主記憶装置１１４は、プロセッサ１１１、および、ストアバッファ部１０１と接続される。主記憶装置１１４は、ストアバッファ部１０１からのリクエストにしたがい、データの読み出し（ロード）、および、書き込み（ストア）を行う。主記憶装置１１４は、読み出したデータをロードデータとしてプロセッサ１１１に出力する。
【００３２】
エントリフル検出回路１１５は、ストアバッファ部１０１、および、追い出し制御回路１１６と接続される。エントリフル検出回路１１５は、ストアバッファ部１０１からエントリ情報の一部を受け取ってエントリフルの判定を行い、エントリフル情報、エントリ情報の一部、および、最新ｗａｙ番号を追い出し制御回路１１６へ出力する。
【００３３】
追い出し制御回路１１６は、ストアバッファ部１０１、および、エントリフル検出回路１１５と接続される。追い出し制御回路１１６は、エントリフル検出回路１１５からのエントリフル情報とエントリ情報の一部とに基づきストアデータの追い出し判定を行い、追い出し指示、および、追い出しｗａｙ番号をストアバッファ部１０１に出力する。
【００３４】
次に、ストアバッファ部１０１の詳細な構成について説明する。図４、図５は、ストアバッファ部１０１の構成を示すブロック図である。図４、図５において、丸で囲まれた同一の数字の部分は接続される。
【００３５】
図４、図５を参照すると、ストアバッファ部１０１は、アドレスアレイ３０１、データアレイ３０２、エントリ選択回路３０３、エントリ情報更新回路３０４、レジスタ３０５、セレクタ３０６、セレクタ３０７、セレクタ３０８、比較回路３０９、アドレスアレイ制御回路３１０、および、データアレイ制御回路３１１を含む。
【００３６】
ストアバッファ部１０１は、マージ回路１１２からリクエスト、および、ストアデータを、追い出し制御回路１１６から、追い出し指示、および、追い出しｗａｙ番号を受け取る。
【００３７】
アドレスアレイ３０１は、エントリ情報を格納する。図６は、エントリ情報の内容を示す説明図である。図６を参照すると、エントリ情報は、エントリ有効情報、マージ完了情報、マージ中情報、アドレス（上位）、および、有効ブロック情報を含む。
【００３８】
エントリ有効情報は、当該エントリが有効であるかどうかを示す、すなわち、データアレイ３０２のエントリに有効なストアデータが存在するかどうかを示す。有効ブロック情報は、当該データアレイ３０２のラインのうち、有効なブロックを示す。
【００３９】
マージ中情報は、セットされていると、当該エントリのデータアレイ３０２内のストアデータにマージが発生したことを示す。マージ完了情報は、セットされていると、当該エントリのデータアレイ３０２内のラインのすべてのブロックが有効であることを示す。すなわち、当該エントリの有効ブロック情報がすべてのブロックの有効を示す場合に、マージ完了情報が、セットされている。
【００４０】
以下の説明において、わかりやすくするために、エントリ有効情報、マージ完了情報、および、マージ中情報は、‘１’にセットされている場合に、それぞれ、エントリが有効、マージが完了、および、マージ中であることを示すとする。
【００４１】
また、アドレスアレイ３０１は、リクエストに含まれるアドレス（中位）（以降、ｉｎｄｅｘと呼ぶ）ごとに最新ｗａｙ番号を格納する。また、アドレスアレイ３０１は、ｉｎｄｅｘに対応するすべてのｗａｙのエントリ情報の一部、および、最新ｗａｙ番号をエントリフル検出回路１１５に出力する。最新ｗａｙ番号は、最近に、アクセス（登録、追い出しを伴う格納、マージ）されたｗａｙを示す。
【００４２】
また、アドレスアレイ３０１は、ｉｎｄｅｘに対応するすべてのｗａｙのエントリ情報をエントリ選択回路３０３に出力する。また、アドレスアレイ３０１は、ｉｎｄｅｘに対応するすべてのｗａｙのエントリ情報内のアドレス（上位）、および、エントリ有効情報を比較回路３０９に出力する。
【００４３】
データアレイ３０２は、アドレスアレイ３０１のエントリに対応する格納位置（エントリ）にストアデータを格納する。また、データアレイ３０２は、ｉｎｄｅｘに対応するすべてのｗａｙのストアデータをセレクタ３０７、および、セレクタ３０８に出力する。
【００４４】
比較回路３０９は、ｉｎｄｅｘに対応するすべてのｗａｙのエントリ情報内のアドレス（上位）と、リクエストに含まれるアドレス上位とを比較し、一致するかどうかを示す比較結果を出力する。なお、比較回路３０９は、エントリ情報内のエントリ有効情報が有効を示していなければ、比較結果を不一致とする。
【００４５】
セレクタ３０７は、エントリ情報更新回路３０４の制御にしたがってストアデータを選択し、主記憶装置１１４に出力する。セレクタ３０８は、比較回路３０９からの比較結果にしたがって一致を示すｗａｙのストアデータを選択し、マージ回路１１２に出力する。
【００４６】
エントリ選択回路３０３は、ロードリクエストの場合には、比較回路３０９の比較結果にしたがって、追い出すｗａｙのエントリ情報を選択する。また、エントリ選択回路３０３は、ストアリクエストの場合には、追い出し制御回路１１６からの追い出し指示、および、追い出しｗａｙ番号にしたがって、追い出すｗａｙのエントリ情報を選択する。また、エントリ選択回路３０３は、エントリ情報更新回路３０４に、エントリ情報、追い出し指示、追い出しｗａｙ番号等を出力する。
【００４７】
エントリ情報更新回路３０４は、ロードリクエストの場合には、エントリ選択回路３０３からの追い出し対象のエントリのエントリ情報を更新し、セレクタ３０７の選択信号を生成する。エントリ情報更新回路３０４は、ストアリクエストの場合には、比較回路３０９からの比較結果、エントリ選択回路３０３からのエントリ情報、および、追い出し指示にしたがって、エントリの登録、マージ、または、追い出しの判定を行い、エントリ情報、および、最新ｗａｙ番号を更新する。また、エントリ情報更新回路３０４は、セレクタ３０７の選択信号を生成する。
【００４８】
アドレスアレイ制御回路３１０は、アドレスアレイ３０１のエントリ情報更新回路３０４により指定されたｗａｙに対し、更新された（または、新規の）エントリ情報、および、更新された最新ｗａｙ番号を格納する。データアレイ制御回路３１１は、エントリ情報更新回路３０４の出力にしたがい、指定されたｗａｙのエントリにストアデータを格納、または、更新する。
【００４９】
レジスタ３０５は、ロードリクエストを一時的に退避（格納）する。セレクタ３０６は、ロードリクエストによる追い出しが発生した場合に、追い出し対象のエントリ情報を選択し、主記憶装置１１４に出力し、さらに、レジスタ３０５から退避されているロードリクエストを主記憶装置１１４に出力する。
【００５０】
次に、エントリフル検出回路１１５の詳細な構成について説明する。図７は、エントリフル検出回路１１５の構成を示すブロック図である。図７を参照すると、エントリフル検出回路１１５は、ストアバッファ部１０１のアドレスアレイ３０１から、ｉｎｄｅｘに対応する全ｗａｙのエントリ情報内のエントリ有効情報、マージ完了情報、および、マージ中情報を受け取る。また、エントリフル検出回路１１５は、ストアバッファ部１０１のアドレスアレイ３０１から、ｉｎｄｅｘに対応する最新ｗａｙ番号を受け取る。
【００５１】
エントリフル検出回路１１５は、論理積回路４０１により、全ｗａｙのエントリ有効情報がすべて有効であることを示すエントリフル情報を生成し、追い出し制御回路１１６に出力する。また、エントリフル検出回路１１５は、受け取った全ｗａｙのエントリ情報内のマージ完了情報、および、マージ中情報と、最新ｗａｙ番号とを追い出し制御回路１１６に出力する。
【００５２】
次に、追い出し制御回路１１６の詳細な構成について説明する。図８は、追い出し制御回路１１６の構成を示すブロック図である。図９は、追い出し制御回路１１６の論理を示す説明図である。図９において、「−」は、‘０’、‘１’どちらでもよいことを示す。
【００５３】
図８、図９を参照すると、追い出し制御回路１１６は、エントリフル検出回路１１５からエントリフル情報、マージ完了情報（全ｗａｙの）、マージ中情報（全ｗａｙの）、および、最新ｗａｙ番号を受け取る。追い出し制御回路１１６は、エンコード回路６０１、エンコード回路６０２、エンコード回路６０３、および、セレクタ６０４を含む。
【００５４】
エンコード回路６０１は、マージ完了情報が、‘１’であるｗａｙのｗａｙ番号を生成する。ただし、‘１’であるマージ完了情報が複数存在する場合には、最新ｗａｙ番号の次のｗａｙ番号から順次検索し、マージ完了情報が、‘１’であるｗａｙのｗａｙ番号を生成する。次のｗａｙ番号とは、最新ｗａｙ番号に１を加算した番号である。ただし、最新ｗａｙ番号が、最大のｗａｙ番号（＝Ｎ）であると、次のｗａｙ番号は、最小のｗａｙ番号（＝０）である。
【００５５】
エンコード回路６０２は、マージ中情報が、‘１’であるｗａｙのｗａｙ番号を生成する。ただし、‘１’であるマージ中情報が複数存在する場合には、最新ｗａｙ番号の次のｗａｙ番号から順次検索し、マージ中情報が、‘１’であるｗａｙのｗａｙ番号を生成する。
【００５６】
エンコード回路６０３は、最新ｗａｙ番号の次のｗａｙ番号を生成する。
【００５７】
セレクタ６０４は、‘１’であるマージ完了情報が１つでも存在すれば、エンコード回路６０１からのｗａｙ番号を、追い出しｗａｙ番号として選択する。また、セレクタ６０４は、‘１’であるマージ完了情報が存在せず、‘１’であるマージ中情報が１つでも存在すれば、エンコード回路６０２からのｗａｙ番号を、追い出しｗａｙ番号として選択する。また、セレクタ６０４は、‘１’であるマージ完了情報も、‘１’であるマージ中情報も存在しない場合に、エンコード回路６０３からのｗａｙ番号を、追い出しｗａｙ番号として選択する。
【００５８】
追い出し制御回路１１６は、ストアバッファ部１０１に、セレクタ６０４からの追い出しｗａｙ番号を出力し、また、エントリフル検出回路１１５からのエントリフル情報を追い出し指示として出力する。
【００５９】
次に、マージ回路１１２の詳細な構成について説明する。図１０は、マージ回路１１２の構成を示すブロック図である。図１０を参照すると、マージ回路１１２は、プロセッサ１１１からリクエスト、および、ブロック単位のストアデータを受け取り、ストアバッファ部１０１からライン単位のストアデータを受け取る。
【００６０】
マージ回路１１２は、デコード回路５１０、ブロック単位のセレクタ５００、セレクタ５０１、・・・、および、セレクタ５０Ｎを含む。
【００６１】
セレクタ５００〜セレクタ５０Ｎは、リクエスト内のアドレス（下位）により示される個数存在する。たとえば、アドレス（下位）が４ビットであれば、ブロック単位のセレクタは１６個である。
【００６２】
デコード回路５１０は、リクエスト内のアドレス（下位）により指定されたブロックのみプロセッサ１１１からのストアデータを選択し、他のブロックに関しては、ストアバッファ部１０１からのストアデータを選択する選択信号を生成する。
【００６３】
セレクタ５００〜セレクタ５０Ｎは、選択信号にしたがいストアデータを選択する。たとえば、アドレス（下位）＝‘０００１’とすると、１６個のうち、１番目（０オリジン）のセレクタ５０１のみが、プロセッサ１１１からのストアデータを選択する。
【００６４】
そして、マージ回路１１２は、選択したライン単位のストアデータ、および、プロセッサ１１１からのリクエストをストアバッファ部１０１に出力する。
【００６５】
次に、本発明の第２の実施の形態の動作について図面を参照して説明する。説明をわかりやすくするために、以下、１ラインを１２８［Ｂ］（バイト）、１ブロックを８［Ｂ］（バイト）とする。すなわち、１ライン＝１６ブロックとする。以下の説明において、ストアバッファ部１０１にラインが存在するとは、そのラインに属する少なくとも１ブロックのストアデータが存在することを意味する。
【００６６】
また、ストアバッファ部１０１は、たとえば、ｗａｙ−０〜ｗａｙ−Ｎ（Ｎは１，３，７等の整数）を持つＮ＋１ｗａｙのセットアソシアティブ方式のキャッシュ構成であるとして説明する。
【００６７】
ここで、リクエストの詳細について説明する。図１１は、リクエストの内容を示す説明図である。図１１を参照すると、リクエストは、コマンド、アドレス（上位）、アドレス（中位）、アドレス（下位）、および、優先指定情報を含む。
【００６８】
コマンドは、ロードリクエスト、ストアリクエスト等の種別を示す。アドレス（上位）は、ストアバッファ部１０１のアドレスアレイ３０１のエントリ情報の一部となる。アドレス（中位）は、アドレスアレイ３０１、および、データアレイ３０２を索引するｉｎｄｅｘである。
【００６９】
アドレス（下位）は、８［Ｂ］単位であり、ロード／ストアデータが、ライン内のどのブロックに該当するのかを示す。優先指定情報は、リクエスト内のアドレスで指定されるエントリを優先的に追い出すことを指示する。ストア制御装置１００は、ストアリクエストの優先指定情報がオンであると、当該ライン内のブロックがすべて存在するかどうかにかかわらず、エントリフル情報を‘１’にセットする。
【００７０】
図１２は、第２の実施の形態の動作を示す概略フローチャートである。図１２を参照すると、ストア制御装置１００は、ロードリクエストを受け取ると（ステップＳ１１／ロード）、リクエスト内のアドレスに対応するラインがストアバッファ部１０１に存在するかどうかを調べる（ステップＳ１２）。これは、ブロック単位ではなく、ライン単位の存在を調べる。
【００７１】
当該ラインが存在する場合（ステップＳ１２／Ｙ）、ストア制御装置１００は、ストアバッファ部１０１内の当該ラインのストアデータを主記憶装置１１４に出力し（追い出し）、当該エントリを削除する（ステップＳ１３）。次に、ストア制御装置１００は、受け取ったロードリクエストを主記憶装置１１４に出力する（ステップＳ１４）。
【００７２】
当該ラインが存在しない場合（ステップＳ１２／Ｎ）、ストア制御装置１００は、受け取ったロードリクエストを主記憶装置１１４に出力する（ステップＳ１４）。
【００７３】
ストア制御装置１００は、ストアリクエストを受け取ると（ステップＳ１１／ストア）、リクエスト内のアドレスに対応するラインがストアバッファ部１０１に存在するかどうかを調べる（ステップＳ１５）。
【００７４】
当該ラインが存在する場合（ステップＳ１５／Ｙ）、ストア制御装置１００は、ストアリクエストに付随するストアデータを当該ラインのストアデータとマージしてストアバッファ部１０１に格納する（ステップＳ１６）。
【００７５】
当該ラインが存在しない場合（ステップＳ１５／Ｎ）、ストア制御装置１００は、リクエスト内のアドレス（ｉｎｄｅｘ）に対応するすべてのｗａｙにラインが存在するか（すなわち、エントリフルか）どうかを調べる（ステップＳ１７）。
【００７６】
エントリフルでなければ（ステップＳ１７／Ｎ）、ストア制御装置１００は、空いているｗａｙのエントリにストアデータを格納（登録）する（ステップＳ１８）。
【００７７】
エントリフルであると（ステップＳ１７／Ｙ）、ストア制御装置１００は、追い出し制御回路１１６の論理に基づいて、ストアリクエストと共に、１つのｗａｙのエントリのストアデータ（ライン単位）を主記憶装置１１４に出力する（追い出す）（ステップＳ１９）。次に、ストア制御装置１００は、追い出し対象のエントリに受け取ったリクエストに付随するストアデータを格納する（ステップＳ２０）。
【００７８】
次に、ロードリクエストに対する動作について、さらに詳細に説明する。
【００７９】
プロセッサ１１１からのロードリクエストは、マージ回路１１２を経由してストアバッファ部１０１で受け取られる。マージ回路１１２は、ロードリクエストを、そのままストアバッファ部１０１に出力する。
【００８０】
ストアバッファ部１０１は、ロードリクエスト内のアドレス（中位）（ｉｎｄｅｘ）によりアドレスアレイ３０１を索引し、すべてのｗａｙの対応するエントリからエントリ情報を読み出す。次に、ストアバッファ部１０１は、比較回路３０９により、読み出したエントリ情報内のアドレス（上位）がロードリクエスト内のアドレス（上位）と一致するかどうかの比較を行う。
【００８１】
アドレス（上位）が一致しなければ、ストアバッファ部１０１は、セレクタ３０６を経由してロードリクエストをそのまま主記憶装置１１４に出力する。
【００８２】
アドレス（上位）が一致し、かつ、エントリ有効情報が有効を示していると、ストアバッファ部１０１は、ロードリクエストをレジスタ３０５に格納（待避）する。
【００８３】
次に、ストアバッファ部１０１は、エントリ選択回路３０３により、比較回路３０９で一致が検出されたｗａｙのエントリ情報を選択する。
【００８４】
また、ストアバッファ部１０１は、ロードリクエスト内のアドレス（中位）（ｉｎｄｅｘ）によりデータアレイ３０２を索引し、すべてのｗａｙの対応するエントリからストアデータを読み出す。そして、ストアバッファ部１０１は、セレクタ３０７により、比較回路３０９で一致が検出されたｗａｙのストアデータを選択する。
【００８５】
次に、ストアバッファ部１０１は、ストアコマンドを生成する。ストアバッファ部１０１は、ストアコマンド、エントリ選択回路３０３からのエントリ情報内のアドレス（上位）、有効ブロック情報、ロードリクエストからのアドレス（中位）をストアリクエストとして、セレクタ３０６を経由で主記憶装置１１４に出力する。また、そのとき、ストアバッファ部１０１は、セレクタ３０７からのストアデータ（１２８［Ｂ］）を主記憶装置１１４に出力する。
【００８６】
次に、ストアバッファ部１０１は、主記憶装置１１４に出力したエントリ情報をエントリ情報更新回路３０４により削除する。すなわち、エントリ情報更新回路３０４は、当該エントリのエントリ情報のエントリ有効情報を無効を示すようにリセットする。そして、当該エントリは、空きとなる。このとき、エントリ情報更新回路３０４は、最新ｗａｙ番号を更新しない。また、エントリ情報更新回路３０４は、当該有効ブロック情報をすべてのブロックが無効を示す値にする。
【００８７】
また、ストアバッファ部１０１は、レジスタ３０５に格納しておいたロードリクエストをセレクタ３０６経由で主記憶装置１１４に出力する。主記憶装置１１４は受け取ったロードリクエスト内のアドレスに対応するロードデータ（１２８［Ｂ］）を読み出してプロセッサ１１１に出力する。
【００８８】
次に、ストアリクエストに対する動作について、さらに詳細に説明する。
【００８９】
まず、リクエストで指定されたラインのストアデータがエントリに存在せず、ｉｎｄｅｘで示されるエントリに空きがある場合について説明する。この場合、追い出し、マージは実施されない。
【００９０】
ストアバッファ制御部１０２のマージ回路１１２は、ストアリクエストをそのまま、出力する。また、マージ回路１１２は、リクエスト内のアドレス（下位）により指定されたブロックのみプロセッサ１１１からのストアデータを選択し、他のブロックに関しては、ストアバッファ部１０１からのストアデータを選択し、１２８［Ｂ］として出力する。
【００９１】
ストアバッファ部１０１は、ストアリクエスト内のアドレス（中位）（ｉｎｄｅｘ）によりアドレスアレイ３０１を索引し、すべてのｗａｙの対応するエントリからエントリ情報を読み出す。次に、ストアバッファ部１０１は、比較回路３０９により、読み出したエントリ情報内のアドレス（上位）がストアリクエスト内のアドレス（上位）と一致するかどうかの比較を行う。
【００９２】
この場合、アドレス（上位）が一致しないので、ストアバッファ部１０１のエントリ選択回路３０３は、追い出し制御回路１１６からの追い出し指示が、追い出しを示しているかどうかを調べる。この場合、追い出し指示は、追い出しを示していない（すなわち、空きエントリが存在する）。したがって、エントリ情報更新回路３０４は、エントリ選択回路３０３からの各ｗａｙのエントリ有効情報を参照し、ストアデータを格納（登録）するｗａｙを示す格納ｗａｙ番号（空きである）を生成する。
【００９３】
また、エントリ情報更新回路３０４は、エントリ有効情報を有効を示す値（‘１’）にし、マージ完了情報をマージ完了でない値（‘０’）に、マージ中情報を、マージ中でない値（‘０’）にする。また、エントリ情報更新回路３０４は、有効ブロック情報をリクエストからのアドレス（下位）から生成し、格納ｗａｙ番号を最新ｗａｙ番号とする。
【００９４】
そして、エントリ情報更新回路３０４は、リクエストからのアドレス（上位）、格納ｗａｙ番号、エントリ有効情報、マージ完了情報、マージ中情報、有効ブロック情報、および、最新ｗａｙ番号を出力する。
【００９５】
アドレスアレイ制御回路３１０は、エントリ情報更新回路３０４の出力にしたがい、アドレスアレイ３０１のｉｎｄｅｘに対応した最新ｗａｙ番号の更新を行う。また、アドレスアレイ制御回路３１０は、アドレスアレイ３０１のｉｎｄｅｘに対応し、かつ、格納ｗａｙ番号で指定されたｗａｙのエントリに対し、エントリ情報の登録を行う。
【００９６】
また、データアレイ制御回路３１１は、エントリ情報更新回路３０４の出力にしたがい、アドレスアレイ３０１のｉｎｄｅｘに対応し、かつ、格納ｗａｙ番号で指定されたｗａｙのエントリに対し、マージ回路１１２からのストアデータの登録（格納）を行う。
【００９７】
なお、ストアリクエスト登録の際に、リクエスト内の優先指定情報が優先を指定する値（‘１’）の場合には、マージ完了情報を‘１’に、マージ中情報を‘０’にして登録する。これにより、追い出し動作の際に、このエントリが優先的に追い出される。
【００９８】
次に、ストアリクエストで指定されたラインのストアデータがエントリに存在する場合について説明する。この場合、追い出しは実施されず、マージは実施される。
【００９９】
ストアバッファ制御部１０２のストアバッファ部１０１は、ストアリクエスト内のアドレス（中位）（ｉｎｄｅｘ）によりアドレスアレイ３０１を索引し、すべてのｗａｙの対応するエントリからエントリ情報を読み出す。次に、ストアバッファ部１０１は、比較回路３０９により、読み出したエントリ情報内のアドレス（上位）がストアリクエスト内のアドレス（上位）と一致するかどうかの比較を行う。
【０１００】
この場合、アドレス（上位）が一致する。セレクタ３０８は、比較回路３０９の出力にしたがい、データアレイ３０２の一致が検出されたｗａｙからのストアデータを選択し、マージ回路１１２に出力する。
【０１０１】
マージ回路１１２は、ストアリクエストをそのまま、出力する。また、マージ回路１１２は、リクエスト内のアドレス（下位）により指定されたブロックのみプロセッサ１１１からのストアデータを選択し、他のブロックに関しては、セレクタ３０８からのストアデータを選択し、１２８［Ｂ］として出力する。
【０１０２】
また、エントリ情報更新回路３０４は、比較回路３０９の出力にしたがって、アドレス（上位）が一致したｗａｙの番号を格納ｗａｙ番号として生成する。この格納ｗａｙ番号で示されるｗａｙにストアデータが格納（マージ）される。
【０１０３】
また、エントリ情報更新回路３０４は、エントリ有効情報をそのままの値（‘１’）にし、マージ中情報を、マージ中の値（‘１’）にする。エントリ情報更新回路３０４は、リクエストからのアドレス（下位）から生成した有効ブロック情報をいままでの有効ブロック情報にマージする。
【０１０４】
また、エントリ情報更新回路３０４は、マージした有効ブロック情報がすべてのブロックの有効を示すと、マージ完了情報をマージ完了の値（‘１’）にする。また、エントリ情報更新回路３０４は、格納ｗａｙ番号を最新ｗａｙ番号とする。
【０１０５】
そして、エントリ情報更新回路３０４は、リクエストからのアドレス（上位）、格納ｗａｙ番号、エントリ有効情報、マージ完了情報、マージ中情報、有効ブロック情報、および、最新ｗａｙ番号を出力する。
【０１０６】
アドレスアレイ制御回路３１０は、エントリ情報更新回路３０４の出力にしたがい、アドレスアレイ３０１のｉｎｄｅｘに対応し、かつ、格納ｗａｙ番号で指定されたｗａｙのエントリに対し、エントリ情報の格納（更新）、および、最新ｗａｙ番号の更新を行う。
【０１０７】
また、データアレイ制御回路３１１は、エントリ情報更新回路３０４の出力にしたがい、アドレスアレイ３０１のｉｎｄｅｘに対応し、かつ、格納ｗａｙ番号で指定されたｗａｙのエントリに対し、マージ回路１１２からのストアデータの格納（更新）を行う。
【０１０８】
なお、リクエスト内の優先指定情報が優先を指定する値（‘１’）の場合には、マージ完了情報を‘１’に、マージ中情報をそのままにして登録する。これにより、追い出し動作の際に、このエントリが優先的に追い出される。
【０１０９】
次に、ストアリクエストで指定されたラインのストアデータがエントリに存在せず、ｉｎｄｅｘで示されるエントリに空きがない場合について説明する。この場合、追い出しが実施され、マージは実施されない。
【０１１０】
ストアバッファ部１０１は、ストアリクエスト内のアドレス（中位）（ｉｎｄｅｘ）によりアドレスアレイ３０１を索引し、すべてのｗａｙの対応するエントリからエントリ情報を読み出し出力する。
【０１１１】
ストアバッファ制御部１０２のエントリフル検出回路１１５は、ストアバッファ部１０１のアドレスアレイ３０１からのエントリ有効情報に基づき、エントリフル情報を生成し出力する。この場合、すべてのｗａｙのエントリ有効情報が有効を示すので、エントリフル情報は、エントリフルを示す。また、エントリフル検出回路１１５は、マージ完了情報、マージ中情報、および、最新ｗａｙ番号を出力する。
【０１１２】
次に、ストアバッファ制御部１０２の追い出し制御回路１１６は、マージ完了情報、マージ中情報、最新ｗａｙ番号に基づいて、追い出しｗａｙ番号を生成し出力する。追い出しｗａｙ番号の生成の論理は、前述の図８、図９の説明のとおりである。
【０１１３】
ここで、追い出し動作の一例について図面を参照して詳細に説明する。図１３は、追い出し動作の一例を示す説明図である。図中、マージ未とは、マージ完了でも、マージ中でもないことを示す。
【０１１４】
図１３を参照すると、ｉｎｄｅｘ＝‘００’のエントリに関しては、マージ完了情報が‘１’であるのは、ｗａｙ−０のみである。したがって、ｗａｙ−０のエントリが追い出されるエントリである。
【０１１５】
また、ｉｎｄｅｘ＝‘０１’のエントリに関しては、マージ完了情報が‘１’であるエントリは存在しない。マージ中情報が、‘１’であるエントリは、ｗａｙ−０、ｗａｙ−１、ｗａｙ−３、ｗａｙ−４、ｗａｙ−５、および、ｗａｙ−６の複数存在する。最新ｗａｙ番号は、‘１’であり、ｗａｙ−１を示す。したがって、ｗａｙ−１の次のｗａｙ−２、ｗａｙ−３と順次検索され、マージ中情報が‘１’であるｗａｙ−３のエントリが追い出されるエントリとなる。
【０１１６】
さらに、追い出し制御回路１１６は、エントリフル情報がエントリフルを示すと、追い出しを指示する追い出し指示を出力する。
【０１１７】
また、ストアバッファ部１０１は、比較回路３０９により、読み出したエントリ情報内のアドレス（上位）がストアリクエスト内のアドレス（上位）と一致するかどうかの比較を行う。
【０１１８】
この場合、アドレス（上位）が一致しないので、ストアバッファ部１０１のエントリ選択回路３０３は、追い出し制御回路１１６からの追い出し指示が、追い出しを示しているかどうかを調べる。この場合、追い出し指示は、追い出しを示している（すなわち、空きエントリが存在しない）。
【０１１９】
そして、エントリ選択回路３０３は、追い出し制御回路１１６からの追い出しｗａｙ番号で指定されたｗａｙのエントリ情報を選択する。
【０１２０】
また、ストアバッファ部１０１は、ロードリクエスト内のアドレス（中位）（ｉｎｄｅｘ）によりデータアレイ３０２を索引し、すべてのｗａｙの対応するエントリからストアデータを読み出す。そして、ストアバッファ部１０１は、セレクタ３０７により、追い出しｗａｙ番号で指定されたｗａｙのストアデータを選択する。追い出し制御回路１１６で生成された追い出しｗａｙ番号は、エントリ選択回路３０３を経由し、エントリ情報更新回路３０４に受け取られる。エントリ情報更新回路３０４は、この場合、追い出しｗａｙ番号に基づいてセレクタ３０７の選択信号を生成する。
【０１２１】
次に、ストアバッファ部１０１は、ストアコマンドを生成する。そして、ストアバッファ部１０１は、ストアコマンド、エントリ選択回路３０３からのエントリ情報内のアドレス（上位）、有効ブロック情報、ストアリクエストからのアドレス（中位）をストアリクエストとして、セレクタ３０６を経由で主記憶装置１１４に出力する。また、そのとき、ストアバッファ部１０１は、セレクタ３０７からのストアデータ（１２８［Ｂ］）を主記憶装置１１４に出力する。
【０１２２】
次に、エントリ情報更新回路３０４は、エントリ選択回路３０３からの追い出しｗａｙ番号を格納ｗａｙ番号として生成する。また、エントリ情報更新回路３０４は、エントリ有効情報を有効を示す値（‘１’）にし、マージ完了情報をマージ完了でない値（‘０’）に、マージ中情報を、マージ中でない値（‘０’）にする。また、エントリ情報更新回路３０４は、有効ブロック情報をリクエストからのアドレス（下位）から生成し、格納ｗａｙ番号を最新ｗａｙ番号とする。
【０１２３】
そして、エントリ情報更新回路３０４は、リクエストからのアドレス（上位）、格納ｗａｙ番号、エントリ有効情報、マージ完了情報、マージ中情報、有効ブロック情報、および、最新ｗａｙ番号を出力する。
【０１２４】
アドレスアレイ制御回路３１０は、エントリ情報更新回路３０４の出力にしたがい、アドレスアレイ３０１のｉｎｄｅｘに対応し、かつ、格納ｗａｙ番号で指定されたｗａｙのエントリに対し、エントリ情報の格納、および、最新ｗａｙ番号の更新を行う。
【０１２５】
また、データアレイ制御回路３１１は、エントリ情報更新回路３０４の出力にしたがい、アドレスアレイ３０１のｉｎｄｅｘに対応し、かつ、格納ｗａｙ番号で指定されたｗａｙのエントリに対し、マージ回路１１２からのストアデータの格納を行う。
【０１２６】
なお、リクエスト内の優先指定情報が優先を指定する値（‘１’）の場合には、マージ完了情報を‘１’に、マージ中情報を‘０’にして格納する。
【０１２７】
第２の実施の形態においては、パイプライン方式の制御のために、適宜、情報を格納するパイプラインステージ対応のレジスタを設ける構成が可能である。また、ストア制御装置１００と主記憶装置１１４との間にキャッシュを設ける構成が可能である。
【０１２８】
次に、第２の実施の形態の効果について説明する。
【０１２９】
第２の実施の形態は、第１の実施の形態のストア制御装置１００を含み、マージ完了情報、マージ中情報、および、最新ｗａｙ番号から追い出しｗａｙを決定する構成である。したがって、第１の実施の形態と同一の効果をもつ。
【０１３０】
また、第２の実施の形態は、マージ完了情報、または、マージ完了情報のセットされたｗａｙが複数存在する場合には、最新ｗａｙ番号の次のｗａｙ番号から順次検索し、マージ完了情報、または、マージ中情報がセットされているｗａｙを追い出し対象のｗａｙとする構成である。したがって、最近アクセスのあったｗａｙが追い出し対象にならない。よって、第２の実施の形態は、後続のリクエストによるマージの可能性が向上し、主記憶装置１１４に対するストア動作が減少し、性能が向上するという効果をもつ。
【０１３１】
次に、本発明の第３の実施の形態について図面を参照して詳細に説明する。図１４は、第３の実施の形態の構成を示すブロック図である。
【０１３２】
図１４を参照すると、プロセッサ１１１は、ストア制御装置１００に対し、コア障害情報を出力する。ストア制御装置１００のストアバッファ部１０１は、コア障害情報を受け取る。図１５は、リクエストの内容を示す説明図である。図１５を参照すると、第３の実施の形態のリクエストは、第２の実施の形態のリクエストにコア番号が追加されている。
【０１３３】
図１６は、エントリ情報の内容を示す説明図である。図１６を参照すると、第３の実施の形態のエントリ情報は、第２の実施の形態のエントリ情報にコア番号が追加されている。図１７、図１８は、第３の実施の形態のストアバッファ部１０１の構成を示すブロック図である。図１７、図１８において、丸で囲まれた同一の数字の部分は接続される。図１７、図１８を参照すると、第２の実施の形態に追い出し指示差し替え回路３２０が追加されている。
【０１３４】
以下、第２の実施の形態と相異する動作について説明する。
【０１３５】
プロセッサ１１１は、複数のコアで構成されており、それぞれのコアがリクエストを出力する。それぞれのコアは、リクエストに固有のコア番号を含めて出力する。
【０１３６】
ストア制御装置１００は、リクエスト内のコア番号をエントリ情報に含めてストアバッファ部１０１のアドレスアレイ３０１に格納する。
【０１３７】
プロセッサ１１１は、コアに障害が発生すると、コア障害情報に障害が発生したコアを示すコア番号を含めて出力する。ストアバッファ部１０１は、ストアリクエストにより、追い出しが発生すると、コア障害情報で示されるコア番号を含むエントリを優先して追い出し対象とする。
【０１３８】
詳細には、追い出し指示差し替え回路３２０は、アドレスアレイ３０１からのすべてのｗａｙのエントリ情報内のコア番号、プロセッサ１１１からのコア障害情報を受け取る。そして、追い出し指示差し替え回路３２０は、追い出し制御回路１１６から追い出し指示、追い出しｗａｙ番号を受け取ると、コア障害情報で示されるコア番号とエントリ情報内のコア番号とを比較する。
【０１３９】
比較で一致した場合、追い出し指示差し替え回路３２０は、その一致したコア番号を含むエントリ情報を格納しているｗａｙを示す番号を追い出しｗａｙ番号とする。比較で一致しない場合、追い出し指示差し替え回路３２０は、追い出し制御回路１１６からの追い出しｗａｙ番号を、そのまま、追い出しｗａｙ番号とする。
【０１４０】
追い出し指示差し替え回路３２０は、追い出し指示、および、追い出しｗａｙ番号をエントリ選択回路３０３に出力する。以降の動作は、第２の実施の形態と同一である。
【０１４１】
次に、第３の実施の形態の効果について説明する。
【０１４２】
第３の実施の形態は、第２の実施の形態の構成を含むので、第２の実施の形態と同一の効果をもつ。
【０１４３】
また、第３の実施の形態は、障害の発生したコアに対応するストアデータを優先して追い出す構成である。したがって、障害の発生したコアのエントリ情報、ストアデータを長期間、ストアバッファ部１０１に格納することがなく、ストアバッファ部１０１を効率的に利用できるという効果をもつ。
【０１４４】
上記の実施の形態の一部、または、全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１４５】
［付記１］
ブロック単位のストアデータを伴うストアリクエストを受け取り、ストアデータを複数のブロックを含むライン単位で格納する複数ｗａｙを含むストアバッファ部と、
前記ストアバッファ部のライン内のすべてのブロックが前記ストアバッファ部内に存在するｗａｙを優先してストアデータを追い出す制御を行うストアバッファ制御部と、
を含むことを特徴とするストア制御装置。
【０１４６】
［付記２］
前記ストアバッファ部のライン内のすべてのブロックが存在するｗａｙが複数存在する場合、最新ｗａｙ番号の次のｗａｙ番号から順次検索し、ライン内のすべてのブロックが存在するｗａｙを優先してストアデータを追い出す制御を行う前記ストアバッファ制御部を含むことを特徴とする付記１のストア制御装置。
【０１４７】
［付記３］
前記ストアバッファ部のライン内のすべてのブロックが存在するｗａｙが存在しない場合、マージが実施されたブロックが存在するｗａｙを優先してストアデータを追い出す制御を行う前記ストアバッファ制御部を含むことを特徴とする付記２のストア制御装置。
【０１４８】
［付記４］
前記ストアバッファ部のライン内のすべてのブロックが存在するｗａｙが存在せず、マージが実施されたブロックが存在するｗａｙが複数存在する場合、最新ｗａｙ番号の次のｗａｙ番号から順次検索し、マージが実施されたブロックが存在するｗａｙを優先してストアデータを追い出す制御を行う前記ストアバッファ制御部を含むことを特徴とする付記３のストア制御装置。
【０１４９】
［付記５］
優先指定情報を含むストアリクエストを受け取ると、ストアデータを前記ストアバッファ部に格納し、そのストアデータを格納したライン内のすべてのブロックが前記ストアバッファ部内に存在するとして制御を行う前記ストアバッファ制御部を含むことを特徴とする付記４のストア制御装置。
【０１５０】
［付記６］
コア番号を含むリクエストを受け取ると、コア番号を前記ストアバッファ部に格納し、コア障害情報を受け取ると、コア障害情報に含まれるコア番号と、前記ストアバッファ部内のコア番号の一致を調べ、一致したコア番号を含むｗａｙのストアデータを優先して追い出す制御を行うことを特徴とする付記５のストア制御装置。
【０１５１】
［付記７］
付記１、２、３、４、５、または、６の前記ストア制御装置と、
ブロック単位のストアデータを伴うストアリクエストを前記ストア制御装置に出力するプロセッサと、
前記ストア制御装置から追い出されたストアデータを格納する主記憶装置と、
を含むことを特徴とする情報処理装置。
【０１５２】
［付記８］
ブロック単位のストアデータを伴うストアリクエストを受け取り、ストアデータを複数のブロックを含むライン単位で格納する複数ｗａｙを含むストアバッファ部に対し、ライン内のすべてのブロックが前記ストアバッファ部内に存在するｗａｙを優先してストアデータを追い出すことを特徴とするストア制御方法。
【０１５３】
［付記９］
前記ストアバッファ部のライン内のすべてのブロックが存在するｗａｙが複数存在する場合、最新ｗａｙ番号の次のｗａｙ番号から順次検索し、ライン内のすべてのブロックが存在するｗａｙを優先してストアデータを追い出すことを特徴とする付記８のストア制御方法。
【０１５４】
［付記１０］
前記ストアバッファ部のライン内のすべてのブロックが存在するｗａｙが存在しない場合、マージが実施されたブロックが存在するｗａｙから優先してストアデータを追い出すことを特徴とする付記９のストア制御方法。
【０１５５】
［付記１１］
前記ストアバッファ部のライン内のすべてのブロックが存在するｗａｙが存在せず、マージが実施されたブロックが存在するｗａｙが複数存在する場合、最新ｗａｙ番号の次のｗａｙ番号から順次検索し、マージが実施されたブロックが存在するｗａｙを優先してストアデータを追い出すことを特徴とする付記１０のストア制御方法。
【０１５６】
［付記１２］
優先指定情報を含むストアリクエストを受け取ると、ストアデータを前記ストアバッファ部に格納し、そのストアデータを格納したライン内のすべてのブロックが前記ストアバッファ部内に存在するとして処理することを特徴とする付記１１のストア制御方法。
【０１５７】
［付記１３］
コア番号を含むリクエストを受け取ると、コア番号を前記ストアバッファ部に格納し、コア障害情報を受け取ると、コア障害情報に含まれるコア番号と、前記ストアバッファ部内のコア番号の一致を調べ、一致したコア番号を含むｗａｙのストアデータを優先して追い出す付記１２のストア制御方法。
【符号の説明】
【０１５８】
１００    ストア制御装置
１０１    ストアバッファ部
１０２    ストアバッファ制御部
１１０    情報処理装置
１１１    プロセッサ
１１２    マージ回路
１１４    主記憶装置
１１５    エントリフル検出回路
１１６    追い出し制御回路
３０１    アドレスアレイ
３０２    データアレイ
３０３    エントリ選択回路
３０４    エントリ情報更新回路
３０５    レジスタ
３０６    セレクタ
３０７    セレクタ
３０８    セレクタ
３０９    比較回路
３１０    アドレスアレイ制御回路
３１１    データアレイ制御回路
３２０    追い出し指示差し替え回路
４０１    論理積回路
５００    セレクタ
５０１    セレクタ
５０Ｎ    セレクタ
５１０    デコード回路
６０１    エンコード回路
６０２    エンコード回路
６０３    エンコード回路
６０４    セレクタ
【図１】
0005453500.tif 000002
【図２】
0005453500.tif 000003
【図３】
0005453500.tif 000004
【図４】
0005453500.tif 000005
【図５】
0005453500.tif 000006
【図６】
0005453500.tif 000007
【図７】
0005453500.tif 000008
【図８】
0005453500.tif 000009
【図９】
0005453500.tif 000010
【図１０】
0005453500.tif 000011
【図１１】
0005453500.tif 000012
【図１２】
0005453500.tif 000013
【図１３】
0005453500.tif 000014
【図１４】
0005453500.tif 000015
【図１５】
0005453500.tif 000016
【図１６】
0005453500.tif 000017
【図１７】
0005453500.tif 000018
【図１８】
0005453500.tif 000019