(57)【要約】【課題】  マルチスレッド方式で動作する情報処理装置において、不要なマルチヒットを発生させることなく、アドレス変換用バッファ（ＴＬＢ：Translation Lookaside Buffer）を複数のスレッド間で共有できるようにする。【解決手段】  アドレス変換対とスレッド情報とを保持するアドレス変換用バッファ３１と、仮想アドレスを物理アドレスに変換すべく当該仮想アドレスと同一の仮想アドレスのアドレス変換対をアドレス変換用バッファ３１から検索する検索部３２と、この検索部３２によりアドレス変換対が複数検索された場合に、これら複数のアドレス変換対に対応する複数のスレッド情報のうち２以上のスレッド情報が同一か否かを判断する判断部３４と、この判断部３４によって異なっていると判断された場合には、マルチヒットの出力を抑止してアドレス変換を実行させるマルチヒット制御部３５とをそなえる。【選択図】  図１
2006040140.tif 000002
【特許請求の範囲】
【請求項１】
マルチスレッド方式で動作する情報処理装置であって、
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、
スレッド毎に得られた仮想アドレスを物理アドレスに変換すべく前記アドレス変換用バッファに保持された当該仮想アドレスについてのアドレス変換対を検索する検索部と、
該検索部により同一のアドレス変換対が複数検索された場合に、所定の条件を満たすときには、マルチヒットの出力を抑止して、前記検索部によるアドレス変換を実行させるマルチヒット制御部とをそなえて構成されたことを特徴とする、情報処理装置。
【請求項２】
マルチスレッド方式で動作する情報処理装置であって、
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するとともに、前記アドレス変換対を登録したスレッドを示すスレッド情報を保持するアドレス変換用バッファと、
スレッド毎に使用される仮想アドレスを物理アドレスに変換すべく当該仮想アドレスと同一の仮想アドレスについてのアドレス変換対を前記アドレス変換用バッファから検索する検索部と、
該検索部により変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が複数検索された場合に、前記検索部によって検索された複数のアドレス変換対に対応する複数のスレッド情報のうち２以上の前記スレッド情報が同一か否かを判断する判断部と、
該判断部によって前記複数のスレッド情報が異なっていると判断された場合には、マルチヒットの出力を抑止して前記検索部によるアドレス変換を実行させるマルチヒット制御部とをそなえて構成されたことを特徴とする、情報処理装置。
【請求項３】
前記マルチヒット制御部が、前記判断部によって前記複数のスレッド情報のうち２以上の前記スレッド情報が同一であると判断された場合には、マルチヒットを出力することを特徴とする、請求項２記載の情報処理装置。
【請求項４】
マルチスレッド方式で動作する情報処理装置であって、
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、
スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、
該エントリ部により前記アドレス変換対を登録する際に、登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部と、
該検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが検索された場合に、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止させるエントリ制御部とをそなえて構成されたことを特徴とする、情報処理装置。
【請求項５】
マルチスレッド方式で動作する情報処理装置であって、
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するとともに、前記アドレス変換対を登録したスレッドを示すスレッド情報を保持するアドレス変換用バッファと、
スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、
該エントリ部により前記アドレス変換対を登録する際に、登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部と、
該検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された前記アドレス変換対に対応するスレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一でなかった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止させる一方、前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された前記アドレス変換対に対応するスレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一であった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を実行させるエントリ制御部とをそなえて構成されたことを特徴とする、情報処理装置。
【請求項６】
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に得られた仮想アドレスを物理アドレスに変換すべく前記アドレス変換用バッファに保持された当該仮想アドレスに対応するアドレス変換対を検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、
前記検索部により同一のアドレス変換対が複数検索された場合に、所定の条件を満たすときには、マルチヒットの出力を抑止して、前記検索部によるアドレス変換を実行させることを特徴とする、マルチヒット制御方法。
【請求項７】
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスを物理アドレスに変換すべく前記アドレス変換用バッファに保持された当該仮想アドレスに対応するアドレス変換対を検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、
前記アドレス変換用バッファに保持された前記アドレス変換対に当該アドレス変換対を登録したスレッドを示すスレッド情報を付加するとともに、
前記検索部により、変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が複数検索された場合に、前記検索部によって検索された複数のアドレス変換対に付加された複数のスレッド情報のうち２以上のスレッド情報が同一か否かを判断し、
前記判断の結果、前記複数のスレッド情報が異なっていると判断された場合には、マルチヒットの出力を抑止して前記検索部によるアドレス変換を実行することを特徴とする、マルチヒット制御方法。
【請求項８】
前記判断の結果、前記複数のスレッド情報のうち２以上の前記スレッド情報が同一であると判断された場合には、マルチヒットを出力することを特徴とする、請求項７記載のマルチヒット制御方法。
【請求項９】
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、該エントリ部により前記アドレス変換対を登録する際に、該エントリ部により登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、
前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが検索された場合に、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止することを特徴とする、マルチヒット制御方法。
【請求項１０】
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、該エントリ部により前記アドレス変換対を登録する際に、該エントリ部により登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、
前記アドレス変換用バッファに保持された前記アドレス変換対に当該アドレス変換対を登録したスレッドを示すスレッド情報を付加するとともに、
前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された仮想アドレスについてのアドレス変換対に付加された前記スレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一でなかった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止する一方、
前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された仮想アドレスについてのアドレス変換対に付加された前記スレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一であった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を実行することを特徴とする、マルチヒット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチスレッド方式で動作する情報処理装置において、仮想アドレスを物理アドレスに変換するための技術に関する。
【背景技術】
【０００２】
従来から、演算部（例えば、ＣＰＵ；Central Processing UnitやＭＰＵ；Micro Processing Unit）をそなえた情報処理装置において、プログラムが使用する仮想アドレスを、情報処理装置上においてデータが記憶される記憶部（例えば、情報処理装置に接続された主記憶装置やキャッシュメモリ）上の物理アドレスに変換すべく、ＴＬＢ（Translation Lookaside Buffer；アドレス変換用バッファ）を演算部（ここではＣＰＵ）内にそなえる技術がある。
【０００３】
ＴＬＢは、仮想アドレスと物理アドレスとの対応を示すアドレス変換対（ＴＬＢエントリ）を保持するものであり、ＣＰＵは、このＴＬＢを使用することにより、仮想アドレスの物理アドレスへのアドレス変換を高速に行なうことを可能にしている。
ＴＬＢが保持するアドレス変換対は、情報処理装置のＯＳ（Operating System）により登録されるが、まれにＯＳが同一のアドレス変換対を複数登録してしまうことがある。
【０００４】
このように、ＴＬＢに同一のアドレス変換対が複数登録されると、実際にアドレス変換を実行する際に、これら複数のアドレス変換対が検索（参照）されることによりマルチヒット（Multi-Hit）が検出される。
図８は従来の情報処理装置１１０におけるマルチヒット検出方法を説明するための図である。従来の情報処理装置１１０では、仮想アドレスを変換すべく、ＴＬＢ１１１内を検索して変換対象の仮想アドレスと同一の仮想アドレスのＴＬＢエントリを検索する。そして、検索の結果、ＴＬＢ１１１のＷＡＹ（ここでＷＡＹとは、複数の区分に区切られたＴＬＢの１区分のことをいう）０に保持されたＴＬＢエントリＡ（図８中“ｅｎｔｒｙＡ”と表記）と、ＷＡＹ１にＴＬＢエントリＢ（図８中“ｅｎｔｒｙＢ”と表記）とがヒットした場合には、これらＴＬＢエントリＡ，Ｂが同一であれば、情報処理装置１１０にそなえられたマルチヒット制御部１１２によりマルチヒットが出力される。
【０００５】
従来の情報処理装置１１０では、マルチヒットが検出された場合、ＴＬＢ１１１に保持されたデータ（アドレス変換対）には信用性が無いと判断して、ＴＬＢ１１１に保持されたすべてのアドレス変換対を削除し、再登録するという処理を実施しており、ＴＬＢ１１１上のすべてのアドレス変換対を削除してアドレス変換対を再登録する間は、ＣＰＵにおける演算処理の遅延を引き起こすというペナルティがある。
【０００６】
なお、ＴＬＢのマルチヒットを制御する方式として、ＴＬＢに新しいＴＬＢエントリ（アドレス変換対）を書き込むときに、かかるＴＬＢエントリが既にＴＬＢ上に登録されているか否かの検査を行ない、新たに書き込むＴＬＢエントリと同一ＴＬＢエントリが存在した場合には、新たに書き込むＴＬＢエントリを既に登録されていたＴＬＢエントリに上書きを行なう技術が提案されている（下記特許文献１参照）。
【０００７】
また、キャッシュメモリ装置に関する技術においては、キャッシュメモリ上に同一のデータが複数ヒットした場合に、キャッシュミスとして動作させて当該データを削除する技術が提案されている（下記特許文献２参照）。
【特許文献１】特表平１１−５０１７４５号公報
【特許文献２】特開平２−３００９５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、近年、一つのＣＰＵのプロセッサコア上で複数のスレッドが動作することを可能とするマルチスレッド方式の採用が広まっている。このマルチスレッド方式を採用すると、ある仮想アドレスを物理アドレスに変換する処理が含まれるプロセスが、時間を隔てて異なる複数のスレッド（ここでは、スレッド０，スレッド１）の両方に割り当てられる場合がある。このような場合には、スレッド０及びスレッド１が共に同一のアドレス変換対を使用することになるため、これら複数のスレッド０，１において、ＴＬＢ資源が共有されることが望ましい。このように、複数のスレッド０，１がＴＬＢ資源を共有することにより、ＴＬＢの使用効率を向上させることができる。
【０００９】
しかしながら、従来の技術では、複数のスレッド０，１間でＴＬＢ資源を共有すると、不要なマルチヒットが発生し、かかるマルチヒットにより前記ペナルティが発生してＣＰＵの性能低下（処理の遅延）を引き起こしてしまう。
不要なマルチヒットとは、上述したＯＳのミスに起因するものではなく、変換すべき仮想アドレスがＴＬＢ上に存在しないことなどによるＴＬＢミスの発生に起因するものである。つまり、不要なマルチヒットは、ＴＬＢミスの発生により、情報処理装置のメインメモリ等からページテーブルエントリを読み出してＴＬＢに登録するというＴＬＢミスハンドラと呼ばれる処理を、複数のスレッド０，１で同時に実行してしまうことによって生じるものである。
【００１０】
図９は従来のマルチスレッド方式を採用した情報処理装置において複数のスレッド間でＴＬＢを共有した場合に発生する不要なマルチヒットの発生原因を説明するためのフローチャート（ステップＳ１０〜Ｓ１５）である。この図９に示すように、従来のマルチスレッド方式を採用した情報処理装置において、複数のスレッド（ここではスレッド０，１）間でＴＬＢを共有した場合に、スレッド０を実行中にスレッド０がＴＬＢミスを発生すると（ステップＳ１０）、スレッド０はＴＬＢミスハンドラ（ＴＬＢエントリ登録処理）を実行する（ステップＳ１１）。ここで、スレッド０がＴＬＢミスハンドラ中にキャッシュミスを発生すると（ステップＳ１２）、このキャッシュミスを契機としてスレッドの切り替えを行ない、スレッド０からスレッド１へと情報処理装置における処理が切り替えられる。
【００１１】
そして、スレッド１を実行中に、スレッド０がＴＬＢミスを発生した仮想アドレスと同一の仮想アドレスでスレッド１においてＴＬＢミスが検出されると（ステップＳ１３）、スレッド１もＴＬＢミスハンドラ（ＴＬＢエントリ登録処理）を実行してしまう（ステップＳ１４）。
スレッド１のＴＬＢミスハンドラが終了（ＴＬＢエントリ登録完了）した後、再度、スレッドの切り替えが行なわれて、スレッド１からスレッド０へと処理が切り替えられると、それまで休眠中であったスレッド０についてのＴＬＢミスハンドラが再開され（ステップＳ１５）、スレッド０もＴＬＢミスハンドラを完了する。
【００１２】
このような処理が行なわれると、ＴＬＢ上にはスレッド０，１のＴＬＢミスハンドラによって同一のＴＬＢエントリが２つ存在してしまう。したがって、これら同一のＴＬＢエントリが後にアドレス変換のために参照されることによって、不要なマルチヒットが検出されるのである。
本発明は、このような課題に鑑み創案されたもので、マルチスレッド方式で動作する情報処理装置において、不要なマルチヒットを発生させることなく、アドレス変換用バッファ（ＴＬＢ：Translation Lookaside Buffer）を複数のスレッド間で共有できるようにすることを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明の情報処理装置は、マルチスレッド方式で動作する情報処理装置であって、仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に得られた仮想アドレスを物理アドレスに変換すべく前記アドレス変換用バッファに保持された当該仮想アドレスについてのアドレス変換対を検索する検索部と、この検索部により同一のアドレス変換対が複数検索された場合に、所定の条件を満たすときには、マルチヒットの出力を抑止して、前記検索部によるアドレス変換を実行させるマルチヒット制御部とをそなえて構成されたことを特徴としている（請求項１）。
【００１４】
また、上記目的を達成するために、本発明の情報処理装置は、マルチスレッド方式で動作する情報処理装置であって、仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するとともに、前記アドレス変換対を登録したスレッドを示すスレッド情報を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスを物理アドレスに変換すべく当該仮想アドレスと同一の仮想アドレスについてのアドレス変換対を前記アドレス変換用バッファから検索する検索部と、この検索部により変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が複数検索された場合に、前記検索部によって検索された複数のアドレス変換対に対応する複数のスレッド情報のうち２以上の前記スレッド情報が同一か否かを判断する判断部と、この判断部によって前記複数のスレッド情報が異なっていると判断された場合には、マルチヒットの出力を抑止して前記検索部によるアドレス変換を実行させるマルチヒット制御部とをそなえて構成されたことを特徴としている（請求項２）。
【００１５】
なお、前記マルチヒット制御部が、前記判断部によって前記複数のスレッド情報のうち２以上の前記スレッド情報が同一であると判断された場合には、マルチヒットを出力することが好ましい（請求項３）。
また、上記目的を達成するために、本発明の情報処理装置は、マルチスレッド方式で動作する情報処理装置であって、仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、このエントリ部により前記アドレス変換対を登録する際に、登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部と、この検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが検索された場合に、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止させるエントリ制御部とをそなえて構成されたことを特徴としている（請求項４）。
【００１６】
さらに、上記目的を達成するために、本発明の情報処理装置は、マルチスレッド方式で動作する情報処理装置であって、仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するとともに、前記アドレス変換対を登録したスレッドを示すスレッド情報を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、このエントリ部により前記アドレス変換対を登録する際に、登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部と、この検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された前記アドレス変換対に対応するスレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一でなかった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止させる一方、前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された前記アドレス変換対に対応するスレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一であった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を実行させるエントリ制御部とをそなえて構成されたことを特徴としている（請求項５）。
【００１７】
また、上記目的を達成するために、本発明のマルチヒット制御方法は、仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に得られた仮想アドレスを物理アドレスに変換すべく前記アドレス変換用バッファに保持された当該仮想アドレスに対応するアドレス変換対を検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、前記検索部により同一のアドレス変換対が複数検索された場合に、所定の条件を満たすときには、マルチヒットの出力を抑止して、前記検索部によるアドレス変換を実行させることを特徴としている（請求項６）。
【００１８】
さらに、上記目的を達成するために、本発明のマルチヒット制御方法は、仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスを物理アドレスに変換すべく前記アドレス変換用バッファに保持された当該仮想アドレスに対応するアドレス変換対を検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、前記アドレス変換用バッファに保持された前記アドレス変換対に当該アドレス変換対を登録したスレッドを示すスレッド情報を付加するとともに、前記検索部により、変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が複数検索された場合に、前記検索部によって検索された複数のアドレス変換対に付加された複数のスレッド情報のうち２以上のスレッド情報が同一か否かを判断し、この判断の結果、前記複数のスレッド情報が異なっていると判断された場合には、マルチヒットの出力を抑止して前記検索部によるアドレス変換を実行することを特徴としている（請求項７）。
【００１９】
なお、前記判断の結果、前記複数のスレッド情報のうち２以上の前記スレッド情報が同一であると判断された場合には、マルチヒットを出力することが好ましい（請求項８）。
また、上記目的を達成するために、本発明のマルチヒット制御方法は、仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、該エントリ部により前記アドレス変換対を登録する際に、該エントリ部により登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが検索された場合に、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止することを特徴としている（請求項９）。
【００２０】
さらに、上記目的を達成するために、本発明のマルチヒット制御方法は、仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、該エントリ部により前記アドレス変換対を登録する際に、該エントリ部により登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、前記アドレス変換用バッファに保持された前記アドレス変換対に当該アドレス変換対を登録したスレッドを示すスレッド情報を付加するとともに、前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された仮想アドレスについてのアドレス変換対に付加された前記スレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一でなかった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止する一方、前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された仮想アドレスについてのアドレス変換対に付加された前記スレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一であった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を実行することを特徴としている（請求項１０）。
【発明の効果】
【００２１】
このように、本発明によれば、変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対がアドレス変換用バッファから検索された場合でも、所定の条件を満たす場合にはマルチヒットを出力しないため、かかる所定の条件の設定により、不要なマルチヒットの出力を抑止することができる（請求項１，６）。
また、本発明によれば、変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対がアドレス変換用バッファから複数検索された場合でも、検索された複数のアドレス変換対のスレッド情報と変換すべき仮想アドレスを使用するスレッドとが同一でなければ、マルチヒットの出力を抑止するため、情報処理装置がマルチスレッド方式で動作することにより生じる（つまり、ＴＬＢミスハンドラを複数のスレッドで実行してしまうことに起因する）、ＯＳのミスに起因しない不要なマルチヒットの出力を確実に抑止することができる（請求項２，７）。
【００２２】
さらに、本発明によれば、変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対がアドレス変換用バッファから複数検索された場合に、検索された複数のアドレス変換対のスレッド情報と変換すべき仮想アドレスを使用するスレッドとが同一であれば、マルチヒットを出力するため、同一スレッドから同一のアドレス変換対を複数登録するというＯＳのミスに起因するマルチヒットを確実に出力することができ、情報処理装置のＯＳの信頼性を加味しつつ、情報処理装置の安全性を確保することができる（請求項３，８）。
【００２３】
また、本発明によれば、エントリ部により登録される仮想アドレスと同一の仮想アドレスについてのアドレス変換対がアドレス変換用バッファから検索された場合には、エントリ部によるアドレス変換対の登録を中止させるため、アドレス変換用バッファに同一のアドレス変換対が登録されることが確実に抑止され、その結果、アドレス変換の際に不要なマルチヒットが発生されることを抑止することができる（請求項４，９）。
【００２４】
さらに、本発明によれば、エントリ部により登録される仮想アドレスと同一の仮想アドレスについてのアドレス変換対がアドレス変換用バッファから検索された場合に、検索されたアドレス変換対についてのスレッド情報とエントリ部により登録される仮想アドレスを使用するスレッドとが同一でなければ、エントリ部によるアドレス変換対の登録を中止させるため、アドレス変換用バッファに同一のアドレス変換対が複数登録されることを確実に抑止できる。その結果、実際にアドレス変換用バッファを用いてアドレス変換を実行する際には、ＯＳのミスに起因するマルチヒット以外の不要なマルチヒットの発生を確実に抑止することができ、アドレス変換処理を円滑に且つ確実に行なうことができる（請求項５，１０）。
【００２５】
しかも、アドレス変換用バッファへの異なるスレッドからの同一アドレス変換対の登録も抑止されるため、アドレス変換用バッファの使用効率を向上させることができ、その結果、アドレス変換用バッファを用いたアドレス変換処理の処理性能を向上させることができる（請求項５，１０）。
【００２６】
一方、エントリ部により登録される仮想アドレスと同一の仮想アドレスについてのアドレス変換対がアドレス変換用バッファから検索された場合でも、検索されたアドレス変換対についてのスレッド情報とエントリ部により登録される仮想アドレスを使用するスレッドとが同一であれば、エントリ部によるアドレス変換対の登録を実行させるため、同一のスレッドからの同一のアドレス変換対を登録する事象が発生した場合には、かかる事象が情報処理装置のＯＳのミスに起因するものであると判断して、このＯＳのミスについてはアドレス変換用バッファを用いたアドレス変換処理において確実に検出させてマルチヒットとして発生させることができ、ＯＳの信頼性を加味しつつ情報処理装置自体の安全性を確保することができる（請求項５，１０）。
【発明を実施するための最良の形態】
【００２７】
以下、図面を参照しながら本発明の実施の形態について説明する。
〔１〕本発明の第１実施形態について
まず、本発明の第１実施形態としての情報処理装置及びマルチヒット制御方法について説明する。
図１は本発明の第１実施形態としての情報処理装置１の構成を示すブロック図である。この図１に示すように、本発明の第１実施形態としての情報処理装置１は、演算部（ＣＰＵ；Central Processing Unit）１０内に、命令処理部２０及びアドレス変換制御部（ＭＭＵ；Memory Management Unit）３０をそなえて構成されている。
【００２８】
演算部１０は、複数のスレッド（ここではスレッド０，１）を並列的に実行可能なマルチスレッド方式、ここでは、時分割マルチスレッド方式（ＶＭＴ：Vertical Multi Thread）で動作する。ここで、ＶＭＴ方式とは、一時期に一つのスレッドのみ処理を行ない、処理するスレッドを切り替えることでマルチスレッドを実現する方式である。ＶＭＴ方式におけるスレッドの切り替えは、一方のスレッドで一定時間経過したことを契機として行なわれるか、もしくは、一定時間経過する前であってもキャッシュミス等による命令実行の停滞を検出したことを契機としても行なわれる（上記図９参照）。なお、スレッドの切り替えは、実行中のスレッドの動作を休眠させて、別のスレッドの動作を立ち上げることで行なわれる。
【００２９】
命令処理部２０は、処理命令を実行するものであり、処理命令を実行するにあたり、後述するアドレス変換制御部３０により、プログラムが使用する仮想アドレスを、データが記憶される記憶部（例えば、ＣＰＵ１０内に設けられたキャッシュメモリや外部の主記憶装置）上の物理アドレスに変換させるものである。
アドレス変換制御部３０は、命令処理部２０より入力された仮想アドレスを物理アドレスに変換するためのものであり、アドレス変換用バッファ（ＴＬＢ；Translation Lookaside Buffer）３１，検索部３２，スレッド比較部３３，判断部３４，マルチヒット制御部３５をそなえて構成されている。
【００３０】
図２はアドレス変換用バッファ３１が保持するアドレス変換対を説明するための図である。この図２に示すように、アドレス変換用バッファ３１は、仮想アドレスと物理アドレスとの対応を示すアドレス変換対（ＴＬＢエントリ）を保持するものであり、アドレス変換対として、仮想アドレス（Virtual Address）と物理アドレス（Physical Address）とを保持するとともに、有効／無効情報（Valid），ページサイズ（Page Size），グローバルビット（Global Bit；コンテキスト有効／無効情報），コンテキスト（Context），スレッド情報（Thread ID），及びコントロールビット（Control Bit）を保持している。
【００３１】
有効／無効情報は、当該アドレス変換対が有効であるか無効であるかを示す情報である。
コンテキストは、アドレス空間（つまり、物理アドレスのメモリ空間）のローカル空間（個別空間）を識別するためのものであり、グローバルビットは、コンテキストを区別するか否かを示す情報である。ここでは、グローバルビットが“１”（有効）ならば、コンテキストを区別しコンテキストを参照する（メモリ空間の個別部分を使用する）ことを示す一方、グローバルビットが“０”（無効）ならば、コンテキストを区別せずコンテキストを参照しない（メモリ空間の共通部分を使用する）ことを示す。
【００３２】
スレッド情報は、当該アドレス変換対をアドレス変換用バッファ３１に登録したスレッドを示す情報である。
コントロールビットは、制御用のビットであり、例えば、Ｃａｃｈｅａｂｌｅ−ｉｎ−Ｐｈｙｓｉｃａｌｌｙ−Ｉｎｄｅｘｅｄ−Ｃａｃｈｅビット，Ｃａｃｈｅａｂｌｅ−ｉｎ−Ｖｉｅｔｕａｌｌｙ−Ｉｎｄｅｘｅｄ−Ｃａｃｈｅビット，Ｓｉｄｅ  Ｅｆｆｅｃｔビット，Ｐｒｉｖｉｌｅｇｅｄビット，Ｗｒｉｔａｂｌｅビットである。
【００３３】
検索部３２は、変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対をアドレス変換用バッファ３１から検索することにより、変換すべき仮想アドレスを物理アドレスに変換するものであり、アドレス比較部３２ａ及びコンテキスト比較部３２ｂをそなえて構成されている。
図３は本発明の第１実施形態としての情報処理装置１における検索部３２，スレッド比較部３３，判断部３４，及びマルチヒット制御部３５を説明するための図である。
【００３４】
この図３に示すように、アドレス比較部３２ａは、変換すべき仮想アドレス（図３中“Access Virtual Address”と表記）とアドレス変換用バッファ３１に保持されたアドレス変換対の仮想アドレス（Virtual Address）とを比較するものである。なお、アドレス比較部３２ａは、比較の際に、アドレス変換用バッファ３１に保持されたページサイズ（Page Size）も参照する。
【００３５】
また、コンテキスト比較部３２ｂは、変換すべき仮想アドレスのコンテキスト（図３中“Access Context”と表記）とアドレス変換用バッファ３１に保持されたアドレス変換対のコンテキスト（Context）とを比較するとともに、当該アドレス変換対のグローバルビット（Global Bit）を参照するものである。
なお、コンテキスト比較部３２ｂは、アドレス変換対のグローバルビットが“１”（有効）であり、且つ変換すべき仮想アドレスのコンテキストとアドレス変換対のコンテキストとが同一であれば一致とするとともに、アドレス変換対のグローバルビットが“０”（無効）であれば変換すべき仮想アドレスのコンテキストとアドレス変換対のコンテキストとを比較しない。
【００３６】
したがって、検索部３２は、アドレス比較部３２ａによる比較の結果、変換すべき仮想アドレスとアドレス変換対の仮想アドレスとが一致し、さらに、コンテキスト比較部３２ｂにより変換すべき仮想アドレスのコンテキストとアドレス変換対のコンテキストが一致するとともにグローバルビットが“１”である場合と、アドレス比較部３２ａによる比較の結果、変換すべき仮想アドレスとアドレス変換対の仮想アドレスとが一致し、さらに、コンテキスト比較部３２ｂにより参照されたグローバルビットが“０”である場合に、アドレス変換用バッファ３１内に、変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が存在することを検出する。
【００３７】
スレッド比較部３３は、変換すべき仮想アドレスを使用するスレッド（図３中“Access Thread”と表記）と、アドレス変換用バッファ３１に保持されたアドレス変換対を登録したスレッドを示すスレッド情報（Thread ID）とを比較するものである。
判断部３４は、検索部３２による検索結果を判断するとともに、スレッド比較部３３による比較結果を判断するものである。つまり、検索部３２により複数のアドレス変換対が検索されたか否かを判断するとともに、スレッド比較部３３による比較結果が同一であるか否かを判断する。
【００３８】
つまり、判断部３４は、検索部３２により変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対がアドレス変換用バッファ３１から複数検索された場合に、検索部３２によって検索された複数のアドレス変換対に対応する複数のスレッド情報に対するスレッド比較部３３の比較結果が、かかる複数のスレッド情報のうち２以上のスレッド情報が同一か否かを判断する。
【００３９】
マルチヒット制御部３５は、検索部３２による検索結果及び判断部３４による判断結果に基づいて（つまり、検索部３２による検索結果及び判断部３４による判断結果を参照して）、マルチヒットを出力するか、もしくはアドレス変換を実行させるものであり、検索部３２により変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対がアドレス変換用バッファ３１から検索された場合に、検索されたアドレス変換対が１つである場合には、検索部３２による検索結果（つまり、前記検索されたアドレス変換対）により、変換すべき仮想アドレスの物理アドレスへのアドレス変換を実行させる。
【００４０】
また、マルチヒット制御部３５は、検索部３２により変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が複数検索された場合に、判断部３４によって、検索部３２により検索された複数のアドレス変換対に対するスレッド比較部３３による比較結果が、異なっていると判断された場合には、マルチヒットの出力を抑止して検索部３４によるアドレス変換を実行させる一方、判断部３４によって、検索部３２により検索された複数のアドレス変換対に対するスレッド比較部３３による比較結果が、複数のスレッド情報のうち２以上のスレッド情報が同一であると判断された場合には、マルチヒットを出力する。なお、スレッド比較部３３による比較の結果が同一であったアドレス変換対が１つもなければ、マルチヒット制御部３５は、検索部３２により検索された複数のアドレス変換対のうちのいずれかを用いてアドレス変換を実行させる。
【００４１】
このように、本発明の第１実施形態としての情報処理装置１では、検索部３２による検索の結果、変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対がアドレス変換用バッファ３１から複数検索された場合でも、判断部３４が検索部３２によって検索された複数のアドレス変換対に対するスレッド比較部３３による比較の結果を判断して、かかる複数のアドレス変換対の複数のスレッド情報が異なっていれば、マルチヒット制御部３５がマルチヒットの出力を抑止して、当該アドレス変換対によるアドレス変換を実行させるようになっている。
【００４２】
次に、本発明の第１実施形態としてのマルチヒット制御方法（情報処理装置１の動作）について説明する。図４は本発明の第１実施形態としてのマルチヒット制御方法を説明するための図である。この図４に示すように、本発明の情報処理装置１では、スレッドが使用する仮想アドレスを変換すべく、アドレス比較部３２ａがアドレス変換用バッファ３１内を検索して、変換対象の仮想アドレスと同一の仮想アドレスのアドレス変換対を検索する。
【００４３】
そして、アドレス比較部３２ａによる検索の結果、アドレス変換用バッファ３１のＷＡＹ（ここでＷＡＹとは、複数の区分に区切られたアドレス変換用バッファ３１の１区分のことをいう）０に保持されたアドレス変換対Ａ（図４中“ｅｎｔｒｙＡ”と表記）と、ＷＡＹ１にアドレス変換対Ｂ（図４中“ｅｎｔｒｙＢ”と表記）とがヒットした場合、つまり、これらアドレス変換対Ａ，Ｂが同一であり、アドレス変換対Ａ，Ｂがともに変換すべき仮想アドレスについてのアドレス変換対である場合、マルチヒット制御部３５は、判断部３４による判断結果を参照し、判断部３４による判断結果が、変換すべき仮想アドレスを使用するスレッドとアドレス変換対Ａ，Ｂのスレッド情報［ここでは、アドレス変換対Ａのスレッド情報をスレッド情報Ｃ（図４中“Thread ID C”と表記）とし、アドレス変換対Ｂのスレッド情報をスレッド情報Ｄ（図４中“Thread ID D”と表記）とする］がともに一致（同一）であると判断された場合（つまり、スレッド情報Ｃとスレッド情報Ｄとが同一の場合）には、マルチヒットを出力する。
【００４４】
一方、マルチヒット制御部３５は、判断部３４による判断結果が、アドレス変換対Ａ，Ｂのスレッド情報のうちいずれか一方のみが変換すべき仮想アドレスを使用するスレッドと一致した場合（つまり、スレッド情報Ｃとスレッド情報Ｄとが同一でない場合）には、マルチヒットの出力を抑止して、変換すべき仮想アドレスを使用するスレッドとスレッド情報が一致したアドレス変換対によりアドレス変換を行なわせる（つまり、ＴＬＢヒットとする）。
【００４５】
つまり、本発明の第１実施形態としてのマルチヒット制御方法では、アドレス変換用バッファ３１に保持されたアドレス変換対に当該アドレス変換対を登録したスレッドを示すスレッド情報を付加するとともに、スレッド比較部３３により変換すべき仮想アドレスを使用するスレッドとアドレス変換対に付加されたスレッド情報とを比較し、検索部３２により変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が複数検索された場合に、判断部３４により、検索部３２によって検索された複数のアドレス変換対に対するスレッド比較部３３による比較の結果が、少なくとも２つのアドレス変換対のスレッド情報が変換すべき仮想アドレスを使用するスレッドと同一であったと判断された場合にのみ、マルチヒットを出力する。
【００４６】
このように、本発明の第１実施形態としての情報処理装置１及びマルチヒット制御方法によれば、アドレス変換対に、当該アドレス変換対を登録したスレッドを示すスレッド情報を付加し、マルチヒット制御部３５が、判断部３４によるスレッド比較部３３のスレッド比較結果の判断を参照することにより、検索部３２により複数のアドレス変換対が検索された場合でも、スレッド比較部３３による比較結果が異なっていれば、マルチヒットの出力を抑止する一方、スレッド比較部３３による比較結果が同一であれば、マルチヒットを出力するため、同一スレッドから同一のアドレス変換対を複数登録するというＯＳのミスに起因するマルチヒットを確実に出力することができるとともに、ＯＳのミスに起因しない不要なマルチヒットの出力を抑止することができる。したがって、不要なマルチヒットによりアドレス変換用バッファ３１内のアドレス変換対を全て削除して再登録するというペナルティが発生することを抑止して、ＣＰＵ１０の性能が低下（処理が遅延）することを抑止することができる。
【００４７】
しかも、本発明の第１実施形態としての情報処理装置１及びマルチヒット制御方法は、図８を参照しながら上述した従来の情報処理装置に対して、アドレス変換対にスレッド情報を付加するとともに、スレッド情報の比較確認機能を付加するだけで実現可能であり、従来の情報処理装置に容易に実装できる利点がある。
【００４８】
〔２〕本発明の第２実施形態について
次に、本発明の第２実施形態としての情報処理装置及びマルチヒット制御方法について説明する。
図５は本発明の第２実施形態としての情報処理装置１００の構成を示すブロック図である。なお、図５において既述の符号と同一の符号は、同一の部分もしくはほぼ同一の部分を示している。
この図５に示すように、本発明の第２実施形態としての情報処理装置１００は、演算部１０内に、命令処理部２０及びアドレス変換制御部３０をそなえて構成されている。ここで、演算部１０及び命令処理部２０は、上記第１実施形態の演算部１０及び命令処理部２０とそれぞれ同一であるため、ここではこれらの詳細な説明は省略する。
【００４９】
アドレス変換制御部３０は、アドレス変換用バッファ３１，エントリ部３６，検索部３７，スレッド比較部３８，判断部３９，及びエントリ制御部４０をそなえて構成されている。アドレス変換用バッファ３１は、上記第１実施形態のアドレス変換用バッファ３１（図２参照）と同一であるため、ここではアドレス変換用バッファ３１の詳細な説明は省略する。
【００５０】
エントリ部３６は、ＴＬＢミスハンドラなどにより、スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとをアドレス変換対としてアドレス変換用バッファ３１に登録するものである。
図６は本発明の第２実施形態としての情報処理装置１００における検索部３７，スレッド比較部３８，判断部３９，及びエントリ制御部４０を説明するための図である。
【００５１】
この図６に示すように、検索部３７は、エントリ部３６によりアドレス変換対を登録する際に、登録されるアドレス変換対の仮想アドレス（図６中“Entry Virtual Address”と表記）と同一の仮想アドレス（Virtual Address；つまり、エントリ部３６により登録するアドレス変換対と同一のアドレス変換対）をアドレス変換用バッファ３１から検索するものであり、検索部３７の機能及び構成は、上記第１実施形態における検索部３２と同様である。
【００５２】
つまり、検索部３７もアドレス比較部３７ａ及びコンテキスト比較部３７ｂをそなえており、アドレス比較部３７ａは上記第１実施形態におけるアドレス比較部３２ａと検索する元となる仮想アドレスが新たに登録する仮想アドレス（Entry Virtual Address）か変換すべき仮想アドレス（Access Virtual Address；図３参照）かが異なるだけで、その機能は同様である。
【００５３】
また、コンテキスト比較部３７ｂも上記第１実施形態におけるコンテキスト比較部３２ｂとは、検索する元となるコンテキストが、新たに登録する仮想アドレスのコンテキスト（図６中“Entry Context”と表記）か変換すべき仮想アドレスのコンテキスト（Access Context；図３参照）かが異なるだけで、その機能は同様である。
スレッド比較部３８は、エントリ部３６によって登録されるアドレス変換対の仮想アドレスを使用するスレッド（図６中“Entry Thread”と表記）と、アドレス変換用バッファ３１に保持されたスレッド情報（図６中“Thread ID”と表記）とを比較するものであり、このスレッド比較部３８も、上記第１実施形態におけるスレッド比較部３３とは、検索する元となるスレッドが、新たに登録する仮想アドレスのスレッド（Entry Thread）か変換すべき仮想アドレスのスレッド（Access Thread；図３参照）かが異なるだけで、その機能は同様である。
【００５４】
判断部３９は、検索部３７による検索結果を判断するとともに、スレッド比較部３８による比較結果を判断するものである。つまり、検索部３７によりエントリ部３６により登録される仮想アドレスと同一の仮想アドレスについてのアドレス変換対が検索されたか否かを判断するとともに、スレッド比較部３８による比較結果が同一であるか否かを判断する。
【００５５】
つまり、判断部３９は、検索部３７により登録される仮想アドレスと同一の仮想アドレスについてのアドレス変換対がアドレス変換用バッファ３１から検索された場合に、検索部３７によって検索されたアドレス変換対に対応するスレッド情報のスレッド比較部３８による比較結果が同一であるか否かを判断する。
エントリ制御部４０は、判断部３４による判断結果を参照し（つまり、検索部３７による検索結果及びスレッド比較部３８による比較結果に基づいて）、エントリ部３６によるアドレス変換用バッファ３１へのアドレス変換対の登録を制御するものであり、検索部３７により、エントリ部３６によって登録されるアドレス変換対の仮想アドレスがアドレス変換用バッファ３１から検索されなければ、エントリ部３６によるアドレス変換対の登録を実施させる。
【００５６】
また、エントリ制御部４０は、検索部３７により、エントリ部３６によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスがアドレス変換用バッファ３１から検索された場合に、判断部３９の判断結果を参照して、判断部３９が、スレッド比較部３８による比較の結果、検索部３７によって検索されたアドレス変換対に付加されたスレッド情報（Thread ID）とエントリ部３６によって登録されるアドレス変換対の仮想アドレスを使用するスレッド（Entry Thread）とが同一であると判断した場合には、エントリ部３６によるアドレス変換対のアドレス変換用バッファ３１への登録を実行させる。
【００５７】
一方、エントリ制御部４０は、検索部３７により、エントリ部３６によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスがアドレス変換用バッファ３１から検索された場合に、判断部３９が、スレッド比較部３８による比較の結果、スレッド情報（Thread ID）とスレッド（Entry Thread）とが異なっていると判断した場合には、エントリ部３６によるアドレス変換対のアドレス変換用バッファ３１への登録を中止させる。
【００５８】
次に、本発明の第２実施形態としてのマルチヒット制御方法（情報処理装置１００の動作）について説明する。図７は本発明の第２実施形態としてのマルチヒット制御方法の手順を説明するためのフローチャート（ステップＳ１〜Ｓ５）である。この図７に示すように、本発明の情報処理装置１００では、エントリ部３６が、ＴＬＢミスハンドラなどにより、スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとをアドレス変換対としてアドレス変換用バッファ３１に登録する際に、まず、検索部３７が、エントリ部３６が新たに登録する仮想アドレスと同一の仮想アドレスについてのアドレス変換対をアドレス変換用バッファ３１から検索する（ステップＳ１）。
【００５９】
そして、検索部３７による検索の結果、アドレス変換用バッファ３１内に、エントリ部３６が登録する仮想アドレスと同一の仮想アドレスがなければ（ステップＳ２のＮｏルート）、エントリ制御部４０は、エントリ部３６によるアドレス変換対の登録を実行させて（ステップＳ３）処理を終了する。
一方、検索部３７による検索の結果、アドレス変換用バッファ３１内に、エントリ部３６が登録する仮想アドレスと同一の仮想アドレスがあると（ステップＳ２のＹｅｓルート）、エントリ制御部４０は、判断部３９による判断結果を参照する。
【００６０】
つまり、判断部３９が、スレッド比較部３８による比較結果、検索部３７により検索された仮想アドレス（アドレス変換対）を登録したスレッド情報とエントリ部３６により登録される仮想アドレスを使用するスレッドと同一であると判断すると（ステップＳ４のＮｏルート）、エントリ制御部４０は、エントリ部３６によるアドレス変換対の登録を実行させて（ステップＳ３）処理を終了する。
【００６１】
一方、判断部３９が、スレッド比較部３８による比較結果、検索部３７により検索された仮想アドレス（アドレス変換対）を登録したスレッド情報とエントリ部により登録される仮想アドレスを使用するスレッドと同一でないと判断すると（ステップＳ４のＹｅｓルート）、エントリ制御部４０は、エントリ部３６によるアドレス変換対の登録を中止させて（ステップＳ５）処理を終了する。
【００６２】
このように、本発明の第２実施形態としての情報処理装置１００及びマルチスレッド制御方法によれば、アドレス変換用バッファ３１に保持されるアドレス変換対に当該アドレス変換対を登録したスレッドを示すスレッド情報が付加されるとともに、エントリ部３６によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが検索部３７によりアドレス変換用バッファ３１から検索され、且つ判断部３９による判断の結果（スレッド比較部３８による比較の結果）、検索部３７により検索された仮想アドレスについてのアドレス変換対に付加されたスレッド情報と、エントリ部３６によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一であった場合には、エントリ制御部４０が、エントリ部３６によるアドレス変換対のアドレス変換用バッファ３１への登録を実行させるため、同一のスレッドからの同一のアドレス変換対を登録する事象が発生した場合には、かかる事象が情報処理装置１００のＯＳのミスに起因するものであると判断して、このＯＳのミスについてはアドレス変換用バッファ３１を用いたアドレス変換処理において確実に検出させてマルチヒットとして発生させることができ、情報処理装置１００自体の安全性を確保することができる。
【００６３】
一方、エントリ部３６によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが検索部３７によりアドレス変換用バッファ３１から検索され、且つ判断部３９による判断の結果（スレッド比較部３８による比較の結果）、検索部３７により検索された仮想アドレスについてのアドレス変換対に付加されたスレッド情報と、エントリ部３６によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一でなかった場合には、エントリ制御部４０が、エントリ部３６によるアドレス変換対のアドレス変換用バッファ３１への登録を中止させるため、アドレス変換用バッファ３１に仮想アドレスが同一のアドレス変換対が複数登録されることが確実に抑止される。したがって、マルチスレッド方式で動作する情報処理装置１００において、実際にアドレス変換用バッファ３１を用いてアドレス変換を実行する際にも、ＯＳのミスに起因するマルチヒット以外の不要なマルチヒットが発生することがなくなり、アドレス変換処理を円滑に且つ確実に行なうことができる。つまり、不要なマルチヒットによりアドレス変換用バッファ３１内のアドレス変換対を全て削除して再登録するというペナルティが発生することを抑止して、ＣＰＵ１０の性能が低下（処理が遅延）することを抑止することができる。
【００６４】
しかも、アドレス変換用バッファ３１への異なるスレッドからの同一アドレス変換対の登録も抑止されるため、アドレス変換用バッファ３１の使用効率を向上させることができ、その結果、アドレス変換用バッファ３１を用いたアドレス変換処理の処理性能を向上させることができる。
【００６５】
〔３〕本発明の変形例について
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した第１実施形態では、スレッド比較部３３による比較を、アドレス変換を実行する度に行なうように構成したが、本発明はこれに限定されるものではなく、スレッド比較部３３による比較を、検索部３２により変換すべき仮想アドレスがアドレス変換用バッファ３１から複数検索された場合にのみ実行するように構成してもよく、この場合でも上述した第１実施形態と同様の効果を得ることができる。なお、この場合には、マルチヒット制御部３５がスレッド比較部３３による比較を実行させるようにしてもよい。
【００６６】
また、上述した第２実施形態では、スレッド比較部３８による比較を、エントリ部３６によりアドレス変換用バッファ３１にアドレス変換対を登録する度に行なうように構成したが、本発明はこれに限定されるものではなく、スレッド比較部３８による比較を、検索部３７によりエントリ部３６によって登録される仮想アドレスと同一の仮想アドレスについてのアドレス変換対がアドレス変換用バッファ３１から検索された場合にのみ実行するように構成してもよく、この場合でも上述した第２実施形態と同様の効果を得ることができる。なお、この場合には、エントリ制御部４０が、スレッド比較部３８による比較を実行させるようにしてもよい。
【００６７】
さらに、上述した第１実施形態では、複数のスレッド情報が異なっていることを条件としてマルチヒットの出力を抑止しているが、本発明はこれに限定されるものではなく、これ以外の所定の条件を満たした時にマルチヒットの出力を抑止するように構成してもよい。
また、上述した第１実施形態では、情報処理装置１が、判断部３４とマルチヒット制御部３５とを個別にそなえて構成された例をあげて説明したが、本発明はこれに限定されるものではなく、マルチヒット制御部３５が判断部３４をそなえるように構成してもよい。
【００６８】
さらに、上述した第２実施形態では、情報処理装置１００が、判断部３９とエントリ制御部４０とを個別にそなえて構成された例をあげて説明したが、本発明はこれに限定されるものではなく、エントリ制御部４０が判断部３９をそなえるように構成してもよい。
【００６９】
〔４〕その他
上述した命令処理部２０、アドレス比較部３２ａ，３７ａ、コンテキスト比較部３２ｂ，３７ｂ、スレッド比較部３３，３８、判断部３４，３９、マルチヒット制御部３５、エントリ部３６、及びエントリ制御部４０としての機能は、コンピュータ（ＣＰＵ，情報処理装置，各種端末を含む）が所定のアプリケーションプログラム（マルチヒット制御プログラム）を実行することによって実現される。
【００７０】
そのプログラムは、例えばフレキシブルディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ，ＤＶＤ等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からマルチヒット制御プログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信回線を介してコンピュータに提供するようにしてもよい。
【００７１】
ここで、コンピュータとは、ハードウェアとＯＳ（オペレーティングシステム）とを含む概念であり、ＯＳの制御の下で動作するハードウェアを意味している。また、ＯＳが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえている。上記マルチヒット制御プログラムとしてのアプリケーションプログラムは、上述のようなコンピュータに、命令処理部２０、アドレス比較部３２ａ，３７ａ、コンテキスト比較部３２ｂ，３７ｂ、スレッド比較部３３，３８、判断部３４，３９、マルチヒット制御部３５、エントリ部３６、及びエントリ制御部４０としての機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくＯＳによって実現されてもよい。
【００７２】
さらに、本実施形態としての記録媒体としては、上述したフレキシブルディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ，ＤＶＤ，磁気ディスク，光ディスク，光磁気ディスクのほか、ＩＣカード，ＲＯＭカートリッジ，磁気テープ，パンチカード，コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ），外部記憶装置等や、バーコードなどの符号が印刷された印刷物等の、コンピュータ読取可能な種々の媒体を利用することもできる。
【００７３】
〔５〕付記
（付記１）
マルチスレッド方式で動作する情報処理装置であって、
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、
スレッド毎に得られた仮想アドレスを物理アドレスに変換すべく前記アドレス変換用バッファに保持された当該仮想アドレスについてのアドレス変換対を検索する検索部と、
該検索部により同一のアドレス変換対が複数検索された場合に、所定の条件を満たすときには、マルチヒットの出力を抑止して、前記検索部によるアドレス変換を実行させるマルチヒット制御部とをそなえて構成されたことを特徴とする、情報処理装置。
【００７４】
（付記２）
マルチスレッド方式で動作する情報処理装置であって、
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するとともに、前記アドレス変換対を登録したスレッドを示すスレッド情報を保持するアドレス変換用バッファと、
スレッド毎に使用される仮想アドレスを物理アドレスに変換すべく当該仮想アドレスと同一の仮想アドレスについてのアドレス変換対を前記アドレス変換用バッファから検索する検索部と、
前記検索部により変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が複数検索された場合に、前記検索部によって検索された複数のアドレス変換対に対応する複数のスレッド情報のうち２以上の前記スレッド情報が同一か否かを判断する判断部と、
該判断部によって前記複数のスレッド情報が異なっていると判断された場合には、マルチヒットの出力を抑止して前記検索部によるアドレス変換を実行させるマルチヒット制御部とをそなえて構成されたことを特徴とする、情報処理装置。
【００７５】
（付記３）
前記マルチヒット制御部が、前記判断部によって前記複数のスレッド情報のうち２以上の前記スレッド情報が同一であると判断された場合には、マルチヒットを出力することを特徴とする、付記２記載の情報処理装置。
（付記４）
マルチスレッド方式で動作する情報処理装置であって、
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するとともに、前記アドレス変換対を登録したスレッドを示すスレッド情報を保持するアドレス変換用バッファと、
スレッド毎に得られた仮想アドレスを物理アドレスに変換すべく当該仮想アドレスと同一の仮想アドレスについてのアドレス変換対を前記アドレス変換用バッファから検索する検索部と、
該検索部により同一のアドレス変換対が複数検索された場合に、検索された複数のアドレス変換対に対応する複数のスレッド情報を比較するスレッド比較部と、
該スレッド比較部による比較の結果、前記複数のスレッド情報のうち２以上の前記スレッド情報が同一であった場合にはマルチヒットを出力する一方、前記複数のスレッド情報が同一でなかった場合には前記検索部によるアドレス変換を実行させるマルチヒット制御部とをそなえて構成されたことを特徴とする、情報処理装置。
【００７６】
（付記５）
前記アドレス変換用バッファが、前記アドレス変換対とともにコンテキストを保持するように構成され、
前記検索部が、変換すべき仮想アドレスのコンテキストと前記アドレス変換用バッファに保持された前記アドレス変換対のコンテキストとを比較するコンテキスト比較部をそなえて構成されることを特徴とする、付記１〜４のいずれか１項に記載の情報処理装置。
【００７７】
（付記６）
前記アドレス変換用バッファが、前記アドレス変換対とともに保持された前記コンテキストの有効／無効を示すコンテキスト有効／無効情報を保持するように構成され、
前記コンテキスト比較部が、前記コンテキスト有効／無効情報を参照し、当該コンテキスト有効／無効情報が有効であれば前記コンテキストの比較を行なう一方、当該コンテキスト有効／無効情報が無効であれば前記コンテキストの比較を行なわないことを特徴とする、付記５記載の情報処理装置。
【００７８】
（付記７）
マルチスレッド方式で動作する情報処理装置であって、
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、
スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、
該エントリ部により前記アドレス変換対を登録する際に、登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部と、
該検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが検索された場合に、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止させるエントリ制御部とをそなえて構成されたことを特徴とする、情報処理装置。
【００７９】
（付記８）
前記アドレス変換用バッファに保持された前記アドレス変換対に当該アドレス変換対を登録したスレッドを示すスレッド情報が付加されるとともに、
前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索された場合に、前記検索部によって検索された前記アドレス変換対に付加された前記スレッド情報と、前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとを比較するスレッド比較部をさらにそなえ、
前記エントリ制御部が、
前記スレッド比較部による比較の結果、前記検索部によって検索された前記アドレス変換対に付加された前記スレッド情報と、前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一であった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を実行させる一方、
前記スレッド比較部による比較の結果、前記スレッド情報と前記スレッドとが同一でなかった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止させることを特徴とする、付記７記載の情報処理装置。
【００８０】
（付記９）
マルチスレッド方式で動作する情報処理装置であって、
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するとともに、前記アドレス変換対を登録したスレッドを示すスレッド情報を保持するアドレス変換用バッファと、
スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、
該エントリ部により前記アドレス変換対を登録する際に、登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部と、
前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された前記アドレス変換対に対応するスレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一でなかった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止させるエントリ制御部とをそなえて構成されたことを特徴とする、情報処理装置。
【００８１】
（付記１０）
前記エントリ制御部が、前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された前記アドレス変換対に対応するスレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一であった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を実行させることを特徴とする、付記８記載の情報処理装置。
【００８２】
（付記１１）
前記アドレス変換用バッファに保持された前記アドレス変換対にコンテキストが付加されるとともに、
前記検索部が、前記エントリ部によって登録されるアドレス変換対のコンテキストと、前記アドレス変換用バッファに保持された前記アドレス変換対に付加されたコンテキストとを比較するコンテキスト比較部をそなえて構成されることを特徴とする、付記７〜１０のいずれか１項に記載の情報処理装置。
【００８３】
（付記１２）
前記アドレス変換用バッファに保持された前記アドレス変換対に付加された前記コンテキストに当該コンテキストの有効／無効を示すコンテキスト有効／無効情報が付加されるとともに、
前記コンテキスト比較部が、前記コンテキスト有効／無効情報を参照し、当該コンテキスト有効／無効情報が有効であれば前記コンテキストの比較を行なう一方、当該コンテキスト有効／無効情報が無効であれば前記コンテキストの比較を行なわないことを特徴とする、付記１１記載の情報処理装置。
【００８４】
（付記１３）
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に得られた仮想アドレスを物理アドレスに変換すべく前記アドレス変換用バッファに保持された当該仮想アドレスに対応するアドレス変換対を検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、
前記検索部により同一のアドレス変換対が複数検索された場合に、所定の条件を満たすときには、マルチヒットの出力を抑止して、前記検索部によるアドレス変換を実行させることを特徴とする、マルチヒット制御方法。
【００８５】
（付記１４）
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスを物理アドレスに変換すべく前記アドレス変換用バッファに保持された当該仮想アドレスに対応するアドレス変換対を検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、
前記アドレス変換用バッファに保持された前記アドレス変換対に当該アドレス変換対を登録したスレッドを示すスレッド情報を付加するとともに、
前記検索部により、変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が複数検索された場合に、前記検索部によって検索された複数のアドレス変換対に付加された複数のスレッド情報のうち２以上のスレッド情報が同一か否かを判断し、
前記判断の結果、前記複数のスレッド情報が異なっていると判断された場合には、マルチヒットの出力を抑止して前記検索部によるアドレス変換を実行することを特徴とする、マルチヒット制御方法。
【００８６】
（付記１５）
前記判断の結果、前記複数のスレッド情報のうち２以上の前記スレッド情報が同一であると判断された場合には、マルチヒットを出力することを特徴とする、付記１４記載のマルチヒット制御方法。
（付記１６）
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に得られた仮想アドレスを物理アドレスに変換すべく前記アドレス変換用バッファに保持された当該仮想アドレスに対応するアドレス変換対を検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、
前記アドレス変換用バッファに保持された前記アドレス変換対に当該アドレス変換対を登録したスレッドを示すスレッド情報を付加するとともに、
変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が複数検索された場合に、前記検索部によって検索された前記複数のアドレス変換対に付加された前記スレッド情報を比較し、
前記比較の結果、前記複数のアドレス変換対に付加された前記スレッド情報のうち少なくとも２つのスレッド情報が同一であった場合には、マルチヒットを出力する一方、
前記比較の結果、前記複数のアドレス変換対に付加された前記スレッド情報が同一でなかった場合には、マルチヒットを出力せずに前記検索部によるアドレス変換を実行することを特徴とする、マルチヒット制御方法。
【００８７】
（付記１７）
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、該エントリ部により前記アドレス変換対を登録する際に、該エントリ部により登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、
前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが検索された場合に、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止することを特徴とする、マルチヒット制御方法。
【００８８】
（付記１８）
前記アドレス変換用バッファに保持された前記アドレス変換対に当該アドレス変換対を登録したスレッドを示すスレッド情報を付加するとともに、
前記検索部により前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索された場合に、前記検索部によって検索された仮想アドレスについての前記アドレス変換対に付加された前記スレッド情報と、前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとを比較し、
前記比較の結果、前記検索部によって検索された仮想アドレスについての前記アドレス変換対に付加された前記スレッド情報と、前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一であった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を実行する一方、
前記比較の結果、前記スレッド情報と前記スレッドとが同一でなかった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止することを特徴とする、付記１７記載のマルチヒット制御方法。
【００８９】
（付記１９）
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、該エントリ部により前記アドレス変換対を登録する際に、該エントリ部により登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、
前記アドレス変換用バッファに保持された前記アドレス変換対に当該アドレス変換対を登録したスレッドを示すスレッド情報を付加するとともに、
前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された仮想アドレスについてのアドレス変換対に付加された前記スレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一でなかった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止することを特徴とする、マルチヒット制御方法。
【００９０】
（付記２０）
前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された仮想アドレスについてのアドレス変換対に付加された前記スレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一であった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を実行することを特徴とする、付記１８記載のマルチヒット制御方法。
【００９１】
（付記２１）
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するとともに、前記アドレス変換対を登録したスレッドを示すスレッド情報を保持するアドレス変換用バッファをそなえた、マルチスレッド方式で動作する情報処理装置において、マルチヒットの出力を制御する機能をコンピュータに実現させるためのマルチヒット制御プログラムであって、
スレッド毎に使用される仮想アドレスを物理アドレスに変換すべく当該仮想アドレスと同一の仮想アドレスについてのアドレス変換対を前記アドレス変換用バッファから検索する検索部、
前記検索部により変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が複数検索された場合に、前記検索部によって検索された複数のアドレス変換対に対応する複数のスレッド情報のうち２以上の前記スレッド情報が同一か否かを判断する判断部、及び、
該判断部によって前記複数のスレッド情報が異なっていると判断された場合には、マルチヒットの出力を抑止して前記検索部によるアドレス変換を実行させる一方、前記判断部によって前記複数のスレッド情報のうち２以上の前記スレッド情報が同一であると判断された場合には、マルチヒットを出力するマルチヒット制御部として、前記コンピュータを機能させることを特徴とする、マルチヒット制御プログラム。
【００９２】
（付記２２）
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するとともに、前記アドレス変換対を登録したスレッドを示すスレッド情報を保持するアドレス変換用バッファをそなえた、マルチスレッド方式で動作する情報処理装置において、マルチヒットの出力を制御する機能をコンピュータに実現させるためのマルチヒット制御プログラムを記録したコンピュータ読取可能な記録媒体であって、
前記マルチヒット制御プログラムが、
スレッド毎に使用される仮想アドレスを物理アドレスに変換すべく当該仮想アドレスと同一の仮想アドレスについてのアドレス変換対を前記アドレス変換用バッファから検索する検索部、
前記検索部により変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が複数検索された場合に、前記検索部によって検索された複数のアドレス変換対に対応する複数のスレッド情報のうち２以上の前記スレッド情報が同一か否かを判断する判断部、及び、
該判断部によって前記複数のスレッド情報が異なっていると判断された場合には、マルチヒットの出力を抑止して前記検索部によるアドレス変換を実行させる一方、前記判断部によって前記複数のスレッド情報のうち２以上の前記スレッド情報が同一であると判断された場合には、マルチヒットを出力するマルチヒット制御部として、前記コンピュータを機能させることを特徴とする、マルチヒット制御プログラムを記録したコンピュータ読取可能な記録媒体。
【００９３】
（付記２３）
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するとともに、前記アドレス変換対を登録したスレッドを示すスレッド情報を保持するアドレス変換用バッファをそなえた、マルチスレッド方式で動作する情報処理装置において、マルチヒットの出力を制御する機能をコンピュータに実現させるためのマルチヒット制御プログラムであって、
スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部、
該エントリ部により前記アドレス変換対を登録する際に、登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部、及び、
前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された前記アドレス変換対に対応するスレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一でなかった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止させる一方、前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された前記アドレス変換対に対応するスレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一であった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を実行させるエントリ制御部として、前記コンピュータを機能させることを特徴とする、マルチヒット制御プログラム。
【００９４】
（付記２４）
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するとともに、前記アドレス変換対を登録したスレッドを示すスレッド情報を保持するアドレス変換用バッファをそなえた、マルチスレッド方式で動作する情報処理装置において、マルチヒットの出力を制御する機能をコンピュータに実現させるためのマルチヒット制御プログラムを記録したコンピュータ読取可能な記録媒体であって、
前記マルチヒット制御プログラムが、
スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部、
該エントリ部により前記アドレス変換対を登録する際に、登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部、及び、
前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された前記アドレス変換対に対応するスレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一でなかった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止させる一方、前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された前記アドレス変換対に対応するスレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一であった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を実行させるエントリ制御部として、前記コンピュータを機能させることを特徴とする、マルチヒット制御プログラムを記録したコンピュータ読取可能な記録媒体。
【図面の簡単な説明】
【００９５】
【図１】本発明の第１実施形態としての情報処理装置の構成を示すブロック図である。
【図２】本発明の第１実施形態としての情報処理装置のアドレス変換用バッファに保持されるアドレス変換対を説明するための図である。
【図３】本発明の第１実施形態としての情報処理装置の検索部及びスレッド比較部を説明するための図である。
【図４】本発明の第１実施形態としてのマルチヒット制御方法を説明するための図である。
【図５】本発明の第２実施形態としての情報処理装置の構成を示すブロック図である。
【図６】本発明の第２実施形態としての情報処理装置の検索部及びスレッド比較部を説明するための図である。
【図７】本発明の第２実施形態としてのマルチヒット制御方法の手順を説明するためのフローチャートである。
【図８】従来の情報処理装置によるマルチヒット検出方法を説明するための図である。
【図９】従来のマルチスレッド方式を採用した情報処理装置において複数のスレッド間でＴＬＢを共有した場合に発生する不要なマルチヒットの発生原因を説明するためのフローチャートである。
【符号の説明】
【００９６】
１，１００  情報処理装置
１０  演算部（ＣＰＵ）
２０  命令処理部
３０  アドレス変換制御部（ＭＭＵ）
３１  アドレス変換用バッファ（ＴＬＢ）
３２，３７  検索部
３２ａ，３７ａ  アドレス比較部
３２ｂ，３７ｂ  コンテキスト比較部
３３，３８  スレッド比較部
３４，３９  判断部
３５  マルチヒット制御部
３６  エントリ部
４０  エントリ制御部
【図１】
2006040140.tif 000003
【図２】
2006040140.tif 000004
【図３】
2006040140.tif 000005
【図４】
2006040140.tif 000006
【図５】
2006040140.tif 000007
【図６】
2006040140.tif 000008
【図７】
2006040140.tif 000009
【図８】
2006040140.tif 000010
【図９】
2006040140.tif 000011