JP2006040140A - 情報処理装置及びマルチヒット制御方法 - Google Patents

情報処理装置及びマルチヒット制御方法 Download PDF

Info

Publication number
JP2006040140A
JP2006040140A JP2004222041A JP2004222041A JP2006040140A JP 2006040140 A JP2006040140 A JP 2006040140A JP 2004222041 A JP2004222041 A JP 2004222041A JP 2004222041 A JP2004222041 A JP 2004222041A JP 2006040140 A JP2006040140 A JP 2006040140A
Authority
JP
Japan
Prior art keywords
address
address translation
thread
unit
virtual address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004222041A
Other languages
English (en)
Other versions
JP4576172B2 (ja
Inventor
Takahito Hirano
孝仁 平野
Iwao Yamazaki
巌 山崎
Tsutomu Honkurumada
強 本車田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004222041A priority Critical patent/JP4576172B2/ja
Priority to US10/986,891 priority patent/US7617379B2/en
Priority to EP04257291A priority patent/EP1622033B1/en
Priority to DE602004031104T priority patent/DE602004031104D1/de
Priority to EP06121920.0A priority patent/EP1770530B1/en
Publication of JP2006040140A publication Critical patent/JP2006040140A/ja
Application granted granted Critical
Publication of JP4576172B2 publication Critical patent/JP4576172B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache

Abstract

【課題】 マルチスレッド方式で動作する情報処理装置において、不要なマルチヒットを発生させることなく、アドレス変換用バッファ(TLB:Translation Lookaside Buffer)を複数のスレッド間で共有できるようにする。
【解決手段】 アドレス変換対とスレッド情報とを保持するアドレス変換用バッファ31と、仮想アドレスを物理アドレスに変換すべく当該仮想アドレスと同一の仮想アドレスのアドレス変換対をアドレス変換用バッファ31から検索する検索部32と、この検索部32によりアドレス変換対が複数検索された場合に、これら複数のアドレス変換対に対応する複数のスレッド情報のうち2以上のスレッド情報が同一か否かを判断する判断部34と、この判断部34によって異なっていると判断された場合には、マルチヒットの出力を抑止してアドレス変換を実行させるマルチヒット制御部35とをそなえる。
【選択図】 図1

Description

本発明は、マルチスレッド方式で動作する情報処理装置において、仮想アドレスを物理アドレスに変換するための技術に関する。
従来から、演算部(例えば、CPU;Central Processing UnitやMPU;Micro Processing Unit)をそなえた情報処理装置において、プログラムが使用する仮想アドレスを、情報処理装置上においてデータが記憶される記憶部(例えば、情報処理装置に接続された主記憶装置やキャッシュメモリ)上の物理アドレスに変換すべく、TLB(Translation Lookaside Buffer;アドレス変換用バッファ)を演算部(ここではCPU)内にそなえる技術がある。
TLBは、仮想アドレスと物理アドレスとの対応を示すアドレス変換対(TLBエントリ)を保持するものであり、CPUは、このTLBを使用することにより、仮想アドレスの物理アドレスへのアドレス変換を高速に行なうことを可能にしている。
TLBが保持するアドレス変換対は、情報処理装置のOS(Operating System)により登録されるが、まれにOSが同一のアドレス変換対を複数登録してしまうことがある。
このように、TLBに同一のアドレス変換対が複数登録されると、実際にアドレス変換を実行する際に、これら複数のアドレス変換対が検索(参照)されることによりマルチヒット(Multi-Hit)が検出される。
図8は従来の情報処理装置110におけるマルチヒット検出方法を説明するための図である。従来の情報処理装置110では、仮想アドレスを変換すべく、TLB111内を検索して変換対象の仮想アドレスと同一の仮想アドレスのTLBエントリを検索する。そして、検索の結果、TLB111のWAY(ここでWAYとは、複数の区分に区切られたTLBの1区分のことをいう)0に保持されたTLBエントリA(図8中“entryA”と表記)と、WAY1にTLBエントリB(図8中“entryB”と表記)とがヒットした場合には、これらTLBエントリA,Bが同一であれば、情報処理装置110にそなえられたマルチヒット制御部112によりマルチヒットが出力される。
従来の情報処理装置110では、マルチヒットが検出された場合、TLB111に保持されたデータ(アドレス変換対)には信用性が無いと判断して、TLB111に保持されたすべてのアドレス変換対を削除し、再登録するという処理を実施しており、TLB111上のすべてのアドレス変換対を削除してアドレス変換対を再登録する間は、CPUにおける演算処理の遅延を引き起こすというペナルティがある。
なお、TLBのマルチヒットを制御する方式として、TLBに新しいTLBエントリ(アドレス変換対)を書き込むときに、かかるTLBエントリが既にTLB上に登録されているか否かの検査を行ない、新たに書き込むTLBエントリと同一TLBエントリが存在した場合には、新たに書き込むTLBエントリを既に登録されていたTLBエントリに上書きを行なう技術が提案されている(下記特許文献1参照)。
また、キャッシュメモリ装置に関する技術においては、キャッシュメモリ上に同一のデータが複数ヒットした場合に、キャッシュミスとして動作させて当該データを削除する技術が提案されている(下記特許文献2参照)。
特表平11−501745号公報 特開平2−300951号公報
ところで、近年、一つのCPUのプロセッサコア上で複数のスレッドが動作することを可能とするマルチスレッド方式の採用が広まっている。このマルチスレッド方式を採用すると、ある仮想アドレスを物理アドレスに変換する処理が含まれるプロセスが、時間を隔てて異なる複数のスレッド(ここでは、スレッド0,スレッド1)の両方に割り当てられる場合がある。このような場合には、スレッド0及びスレッド1が共に同一のアドレス変換対を使用することになるため、これら複数のスレッド0,1において、TLB資源が共有されることが望ましい。このように、複数のスレッド0,1がTLB資源を共有することにより、TLBの使用効率を向上させることができる。
しかしながら、従来の技術では、複数のスレッド0,1間でTLB資源を共有すると、不要なマルチヒットが発生し、かかるマルチヒットにより前記ペナルティが発生してCPUの性能低下(処理の遅延)を引き起こしてしまう。
不要なマルチヒットとは、上述したOSのミスに起因するものではなく、変換すべき仮想アドレスがTLB上に存在しないことなどによるTLBミスの発生に起因するものである。つまり、不要なマルチヒットは、TLBミスの発生により、情報処理装置のメインメモリ等からページテーブルエントリを読み出してTLBに登録するというTLBミスハンドラと呼ばれる処理を、複数のスレッド0,1で同時に実行してしまうことによって生じるものである。
図9は従来のマルチスレッド方式を採用した情報処理装置において複数のスレッド間でTLBを共有した場合に発生する不要なマルチヒットの発生原因を説明するためのフローチャート(ステップS10〜S15)である。この図9に示すように、従来のマルチスレッド方式を採用した情報処理装置において、複数のスレッド(ここではスレッド0,1)間でTLBを共有した場合に、スレッド0を実行中にスレッド0がTLBミスを発生すると(ステップS10)、スレッド0はTLBミスハンドラ(TLBエントリ登録処理)を実行する(ステップS11)。ここで、スレッド0がTLBミスハンドラ中にキャッシュミスを発生すると(ステップS12)、このキャッシュミスを契機としてスレッドの切り替えを行ない、スレッド0からスレッド1へと情報処理装置における処理が切り替えられる。
そして、スレッド1を実行中に、スレッド0がTLBミスを発生した仮想アドレスと同一の仮想アドレスでスレッド1においてTLBミスが検出されると(ステップS13)、スレッド1もTLBミスハンドラ(TLBエントリ登録処理)を実行してしまう(ステップS14)。
スレッド1のTLBミスハンドラが終了(TLBエントリ登録完了)した後、再度、スレッドの切り替えが行なわれて、スレッド1からスレッド0へと処理が切り替えられると、それまで休眠中であったスレッド0についてのTLBミスハンドラが再開され(ステップS15)、スレッド0もTLBミスハンドラを完了する。
このような処理が行なわれると、TLB上にはスレッド0,1のTLBミスハンドラによって同一のTLBエントリが2つ存在してしまう。したがって、これら同一のTLBエントリが後にアドレス変換のために参照されることによって、不要なマルチヒットが検出されるのである。
本発明は、このような課題に鑑み創案されたもので、マルチスレッド方式で動作する情報処理装置において、不要なマルチヒットを発生させることなく、アドレス変換用バッファ(TLB:Translation Lookaside Buffer)を複数のスレッド間で共有できるようにすることを目的とする。
上記目的を達成するために、本発明の情報処理装置は、マルチスレッド方式で動作する情報処理装置であって、仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に得られた仮想アドレスを物理アドレスに変換すべく前記アドレス変換用バッファに保持された当該仮想アドレスについてのアドレス変換対を検索する検索部と、この検索部により同一のアドレス変換対が複数検索された場合に、所定の条件を満たすときには、マルチヒットの出力を抑止して、前記検索部によるアドレス変換を実行させるマルチヒット制御部とをそなえて構成されたことを特徴としている(請求項1)。
また、上記目的を達成するために、本発明の情報処理装置は、マルチスレッド方式で動作する情報処理装置であって、仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するとともに、前記アドレス変換対を登録したスレッドを示すスレッド情報を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスを物理アドレスに変換すべく当該仮想アドレスと同一の仮想アドレスについてのアドレス変換対を前記アドレス変換用バッファから検索する検索部と、この検索部により変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が複数検索された場合に、前記検索部によって検索された複数のアドレス変換対に対応する複数のスレッド情報のうち2以上の前記スレッド情報が同一か否かを判断する判断部と、この判断部によって前記複数のスレッド情報が異なっていると判断された場合には、マルチヒットの出力を抑止して前記検索部によるアドレス変換を実行させるマルチヒット制御部とをそなえて構成されたことを特徴としている(請求項2)。
なお、前記マルチヒット制御部が、前記判断部によって前記複数のスレッド情報のうち2以上の前記スレッド情報が同一であると判断された場合には、マルチヒットを出力することが好ましい(請求項3)。
また、上記目的を達成するために、本発明の情報処理装置は、マルチスレッド方式で動作する情報処理装置であって、仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、このエントリ部により前記アドレス変換対を登録する際に、登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部と、この検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが検索された場合に、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止させるエントリ制御部とをそなえて構成されたことを特徴としている(請求項4)。
さらに、上記目的を達成するために、本発明の情報処理装置は、マルチスレッド方式で動作する情報処理装置であって、仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するとともに、前記アドレス変換対を登録したスレッドを示すスレッド情報を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、このエントリ部により前記アドレス変換対を登録する際に、登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部と、この検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された前記アドレス変換対に対応するスレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一でなかった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止させる一方、前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された前記アドレス変換対に対応するスレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一であった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を実行させるエントリ制御部とをそなえて構成されたことを特徴としている(請求項5)。
また、上記目的を達成するために、本発明のマルチヒット制御方法は、仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に得られた仮想アドレスを物理アドレスに変換すべく前記アドレス変換用バッファに保持された当該仮想アドレスに対応するアドレス変換対を検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、前記検索部により同一のアドレス変換対が複数検索された場合に、所定の条件を満たすときには、マルチヒットの出力を抑止して、前記検索部によるアドレス変換を実行させることを特徴としている(請求項6)。
さらに、上記目的を達成するために、本発明のマルチヒット制御方法は、仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスを物理アドレスに変換すべく前記アドレス変換用バッファに保持された当該仮想アドレスに対応するアドレス変換対を検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、前記アドレス変換用バッファに保持された前記アドレス変換対に当該アドレス変換対を登録したスレッドを示すスレッド情報を付加するとともに、前記検索部により、変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が複数検索された場合に、前記検索部によって検索された複数のアドレス変換対に付加された複数のスレッド情報のうち2以上のスレッド情報が同一か否かを判断し、この判断の結果、前記複数のスレッド情報が異なっていると判断された場合には、マルチヒットの出力を抑止して前記検索部によるアドレス変換を実行することを特徴としている(請求項7)。
なお、前記判断の結果、前記複数のスレッド情報のうち2以上の前記スレッド情報が同一であると判断された場合には、マルチヒットを出力することが好ましい(請求項8)。
また、上記目的を達成するために、本発明のマルチヒット制御方法は、仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、該エントリ部により前記アドレス変換対を登録する際に、該エントリ部により登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが検索された場合に、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止することを特徴としている(請求項9)。
さらに、上記目的を達成するために、本発明のマルチヒット制御方法は、仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、該エントリ部により前記アドレス変換対を登録する際に、該エントリ部により登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、前記アドレス変換用バッファに保持された前記アドレス変換対に当該アドレス変換対を登録したスレッドを示すスレッド情報を付加するとともに、前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された仮想アドレスについてのアドレス変換対に付加された前記スレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一でなかった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止する一方、前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された仮想アドレスについてのアドレス変換対に付加された前記スレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一であった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を実行することを特徴としている(請求項10)。
このように、本発明によれば、変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対がアドレス変換用バッファから検索された場合でも、所定の条件を満たす場合にはマルチヒットを出力しないため、かかる所定の条件の設定により、不要なマルチヒットの出力を抑止することができる(請求項1,6)。
また、本発明によれば、変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対がアドレス変換用バッファから複数検索された場合でも、検索された複数のアドレス変換対のスレッド情報と変換すべき仮想アドレスを使用するスレッドとが同一でなければ、マルチヒットの出力を抑止するため、情報処理装置がマルチスレッド方式で動作することにより生じる(つまり、TLBミスハンドラを複数のスレッドで実行してしまうことに起因する)、OSのミスに起因しない不要なマルチヒットの出力を確実に抑止することができる(請求項2,7)。
さらに、本発明によれば、変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対がアドレス変換用バッファから複数検索された場合に、検索された複数のアドレス変換対のスレッド情報と変換すべき仮想アドレスを使用するスレッドとが同一であれば、マルチヒットを出力するため、同一スレッドから同一のアドレス変換対を複数登録するというOSのミスに起因するマルチヒットを確実に出力することができ、情報処理装置のOSの信頼性を加味しつつ、情報処理装置の安全性を確保することができる(請求項3,8)。
また、本発明によれば、エントリ部により登録される仮想アドレスと同一の仮想アドレスについてのアドレス変換対がアドレス変換用バッファから検索された場合には、エントリ部によるアドレス変換対の登録を中止させるため、アドレス変換用バッファに同一のアドレス変換対が登録されることが確実に抑止され、その結果、アドレス変換の際に不要なマルチヒットが発生されることを抑止することができる(請求項4,9)。
さらに、本発明によれば、エントリ部により登録される仮想アドレスと同一の仮想アドレスについてのアドレス変換対がアドレス変換用バッファから検索された場合に、検索されたアドレス変換対についてのスレッド情報とエントリ部により登録される仮想アドレスを使用するスレッドとが同一でなければ、エントリ部によるアドレス変換対の登録を中止させるため、アドレス変換用バッファに同一のアドレス変換対が複数登録されることを確実に抑止できる。その結果、実際にアドレス変換用バッファを用いてアドレス変換を実行する際には、OSのミスに起因するマルチヒット以外の不要なマルチヒットの発生を確実に抑止することができ、アドレス変換処理を円滑に且つ確実に行なうことができる(請求項5,10)。
しかも、アドレス変換用バッファへの異なるスレッドからの同一アドレス変換対の登録も抑止されるため、アドレス変換用バッファの使用効率を向上させることができ、その結果、アドレス変換用バッファを用いたアドレス変換処理の処理性能を向上させることができる(請求項5,10)。
一方、エントリ部により登録される仮想アドレスと同一の仮想アドレスについてのアドレス変換対がアドレス変換用バッファから検索された場合でも、検索されたアドレス変換対についてのスレッド情報とエントリ部により登録される仮想アドレスを使用するスレッドとが同一であれば、エントリ部によるアドレス変換対の登録を実行させるため、同一のスレッドからの同一のアドレス変換対を登録する事象が発生した場合には、かかる事象が情報処理装置のOSのミスに起因するものであると判断して、このOSのミスについてはアドレス変換用バッファを用いたアドレス変換処理において確実に検出させてマルチヒットとして発生させることができ、OSの信頼性を加味しつつ情報処理装置自体の安全性を確保することができる(請求項5,10)。
以下、図面を参照しながら本発明の実施の形態について説明する。
〔1〕本発明の第1実施形態について
まず、本発明の第1実施形態としての情報処理装置及びマルチヒット制御方法について説明する。
図1は本発明の第1実施形態としての情報処理装置1の構成を示すブロック図である。この図1に示すように、本発明の第1実施形態としての情報処理装置1は、演算部(CPU;Central Processing Unit)10内に、命令処理部20及びアドレス変換制御部(MMU;Memory Management Unit)30をそなえて構成されている。
演算部10は、複数のスレッド(ここではスレッド0,1)を並列的に実行可能なマルチスレッド方式、ここでは、時分割マルチスレッド方式(VMT:Vertical Multi Thread)で動作する。ここで、VMT方式とは、一時期に一つのスレッドのみ処理を行ない、処理するスレッドを切り替えることでマルチスレッドを実現する方式である。VMT方式におけるスレッドの切り替えは、一方のスレッドで一定時間経過したことを契機として行なわれるか、もしくは、一定時間経過する前であってもキャッシュミス等による命令実行の停滞を検出したことを契機としても行なわれる(上記図9参照)。なお、スレッドの切り替えは、実行中のスレッドの動作を休眠させて、別のスレッドの動作を立ち上げることで行なわれる。
命令処理部20は、処理命令を実行するものであり、処理命令を実行するにあたり、後述するアドレス変換制御部30により、プログラムが使用する仮想アドレスを、データが記憶される記憶部(例えば、CPU10内に設けられたキャッシュメモリや外部の主記憶装置)上の物理アドレスに変換させるものである。
アドレス変換制御部30は、命令処理部20より入力された仮想アドレスを物理アドレスに変換するためのものであり、アドレス変換用バッファ(TLB;Translation Lookaside Buffer)31,検索部32,スレッド比較部33,判断部34,マルチヒット制御部35をそなえて構成されている。
図2はアドレス変換用バッファ31が保持するアドレス変換対を説明するための図である。この図2に示すように、アドレス変換用バッファ31は、仮想アドレスと物理アドレスとの対応を示すアドレス変換対(TLBエントリ)を保持するものであり、アドレス変換対として、仮想アドレス(Virtual Address)と物理アドレス(Physical Address)とを保持するとともに、有効/無効情報(Valid),ページサイズ(Page Size),グローバルビット(Global Bit;コンテキスト有効/無効情報),コンテキスト(Context),スレッド情報(Thread ID),及びコントロールビット(Control Bit)を保持している。
有効/無効情報は、当該アドレス変換対が有効であるか無効であるかを示す情報である。
コンテキストは、アドレス空間(つまり、物理アドレスのメモリ空間)のローカル空間(個別空間)を識別するためのものであり、グローバルビットは、コンテキストを区別するか否かを示す情報である。ここでは、グローバルビットが“1”(有効)ならば、コンテキストを区別しコンテキストを参照する(メモリ空間の個別部分を使用する)ことを示す一方、グローバルビットが“0”(無効)ならば、コンテキストを区別せずコンテキストを参照しない(メモリ空間の共通部分を使用する)ことを示す。
スレッド情報は、当該アドレス変換対をアドレス変換用バッファ31に登録したスレッドを示す情報である。
コントロールビットは、制御用のビットであり、例えば、Cacheable−in−Physically−Indexed−Cacheビット,Cacheable−in−Vietually−Indexed−Cacheビット,Side Effectビット,Privilegedビット,Writableビットである。
検索部32は、変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対をアドレス変換用バッファ31から検索することにより、変換すべき仮想アドレスを物理アドレスに変換するものであり、アドレス比較部32a及びコンテキスト比較部32bをそなえて構成されている。
図3は本発明の第1実施形態としての情報処理装置1における検索部32,スレッド比較部33,判断部34,及びマルチヒット制御部35を説明するための図である。
この図3に示すように、アドレス比較部32aは、変換すべき仮想アドレス(図3中“Access Virtual Address”と表記)とアドレス変換用バッファ31に保持されたアドレス変換対の仮想アドレス(Virtual Address)とを比較するものである。なお、アドレス比較部32aは、比較の際に、アドレス変換用バッファ31に保持されたページサイズ(Page Size)も参照する。
また、コンテキスト比較部32bは、変換すべき仮想アドレスのコンテキスト(図3中“Access Context”と表記)とアドレス変換用バッファ31に保持されたアドレス変換対のコンテキスト(Context)とを比較するとともに、当該アドレス変換対のグローバルビット(Global Bit)を参照するものである。
なお、コンテキスト比較部32bは、アドレス変換対のグローバルビットが“1”(有効)であり、且つ変換すべき仮想アドレスのコンテキストとアドレス変換対のコンテキストとが同一であれば一致とするとともに、アドレス変換対のグローバルビットが“0”(無効)であれば変換すべき仮想アドレスのコンテキストとアドレス変換対のコンテキストとを比較しない。
したがって、検索部32は、アドレス比較部32aによる比較の結果、変換すべき仮想アドレスとアドレス変換対の仮想アドレスとが一致し、さらに、コンテキスト比較部32bにより変換すべき仮想アドレスのコンテキストとアドレス変換対のコンテキストが一致するとともにグローバルビットが“1”である場合と、アドレス比較部32aによる比較の結果、変換すべき仮想アドレスとアドレス変換対の仮想アドレスとが一致し、さらに、コンテキスト比較部32bにより参照されたグローバルビットが“0”である場合に、アドレス変換用バッファ31内に、変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が存在することを検出する。
スレッド比較部33は、変換すべき仮想アドレスを使用するスレッド(図3中“Access Thread”と表記)と、アドレス変換用バッファ31に保持されたアドレス変換対を登録したスレッドを示すスレッド情報(Thread ID)とを比較するものである。
判断部34は、検索部32による検索結果を判断するとともに、スレッド比較部33による比較結果を判断するものである。つまり、検索部32により複数のアドレス変換対が検索されたか否かを判断するとともに、スレッド比較部33による比較結果が同一であるか否かを判断する。
つまり、判断部34は、検索部32により変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対がアドレス変換用バッファ31から複数検索された場合に、検索部32によって検索された複数のアドレス変換対に対応する複数のスレッド情報に対するスレッド比較部33の比較結果が、かかる複数のスレッド情報のうち2以上のスレッド情報が同一か否かを判断する。
マルチヒット制御部35は、検索部32による検索結果及び判断部34による判断結果に基づいて(つまり、検索部32による検索結果及び判断部34による判断結果を参照して)、マルチヒットを出力するか、もしくはアドレス変換を実行させるものであり、検索部32により変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対がアドレス変換用バッファ31から検索された場合に、検索されたアドレス変換対が1つである場合には、検索部32による検索結果(つまり、前記検索されたアドレス変換対)により、変換すべき仮想アドレスの物理アドレスへのアドレス変換を実行させる。
また、マルチヒット制御部35は、検索部32により変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が複数検索された場合に、判断部34によって、検索部32により検索された複数のアドレス変換対に対するスレッド比較部33による比較結果が、異なっていると判断された場合には、マルチヒットの出力を抑止して検索部34によるアドレス変換を実行させる一方、判断部34によって、検索部32により検索された複数のアドレス変換対に対するスレッド比較部33による比較結果が、複数のスレッド情報のうち2以上のスレッド情報が同一であると判断された場合には、マルチヒットを出力する。なお、スレッド比較部33による比較の結果が同一であったアドレス変換対が1つもなければ、マルチヒット制御部35は、検索部32により検索された複数のアドレス変換対のうちのいずれかを用いてアドレス変換を実行させる。
このように、本発明の第1実施形態としての情報処理装置1では、検索部32による検索の結果、変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対がアドレス変換用バッファ31から複数検索された場合でも、判断部34が検索部32によって検索された複数のアドレス変換対に対するスレッド比較部33による比較の結果を判断して、かかる複数のアドレス変換対の複数のスレッド情報が異なっていれば、マルチヒット制御部35がマルチヒットの出力を抑止して、当該アドレス変換対によるアドレス変換を実行させるようになっている。
次に、本発明の第1実施形態としてのマルチヒット制御方法(情報処理装置1の動作)について説明する。図4は本発明の第1実施形態としてのマルチヒット制御方法を説明するための図である。この図4に示すように、本発明の情報処理装置1では、スレッドが使用する仮想アドレスを変換すべく、アドレス比較部32aがアドレス変換用バッファ31内を検索して、変換対象の仮想アドレスと同一の仮想アドレスのアドレス変換対を検索する。
そして、アドレス比較部32aによる検索の結果、アドレス変換用バッファ31のWAY(ここでWAYとは、複数の区分に区切られたアドレス変換用バッファ31の1区分のことをいう)0に保持されたアドレス変換対A(図4中“entryA”と表記)と、WAY1にアドレス変換対B(図4中“entryB”と表記)とがヒットした場合、つまり、これらアドレス変換対A,Bが同一であり、アドレス変換対A,Bがともに変換すべき仮想アドレスについてのアドレス変換対である場合、マルチヒット制御部35は、判断部34による判断結果を参照し、判断部34による判断結果が、変換すべき仮想アドレスを使用するスレッドとアドレス変換対A,Bのスレッド情報[ここでは、アドレス変換対Aのスレッド情報をスレッド情報C(図4中“Thread ID C”と表記)とし、アドレス変換対Bのスレッド情報をスレッド情報D(図4中“Thread ID D”と表記)とする]がともに一致(同一)であると判断された場合(つまり、スレッド情報Cとスレッド情報Dとが同一の場合)には、マルチヒットを出力する。
一方、マルチヒット制御部35は、判断部34による判断結果が、アドレス変換対A,Bのスレッド情報のうちいずれか一方のみが変換すべき仮想アドレスを使用するスレッドと一致した場合(つまり、スレッド情報Cとスレッド情報Dとが同一でない場合)には、マルチヒットの出力を抑止して、変換すべき仮想アドレスを使用するスレッドとスレッド情報が一致したアドレス変換対によりアドレス変換を行なわせる(つまり、TLBヒットとする)。
つまり、本発明の第1実施形態としてのマルチヒット制御方法では、アドレス変換用バッファ31に保持されたアドレス変換対に当該アドレス変換対を登録したスレッドを示すスレッド情報を付加するとともに、スレッド比較部33により変換すべき仮想アドレスを使用するスレッドとアドレス変換対に付加されたスレッド情報とを比較し、検索部32により変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が複数検索された場合に、判断部34により、検索部32によって検索された複数のアドレス変換対に対するスレッド比較部33による比較の結果が、少なくとも2つのアドレス変換対のスレッド情報が変換すべき仮想アドレスを使用するスレッドと同一であったと判断された場合にのみ、マルチヒットを出力する。
このように、本発明の第1実施形態としての情報処理装置1及びマルチヒット制御方法によれば、アドレス変換対に、当該アドレス変換対を登録したスレッドを示すスレッド情報を付加し、マルチヒット制御部35が、判断部34によるスレッド比較部33のスレッド比較結果の判断を参照することにより、検索部32により複数のアドレス変換対が検索された場合でも、スレッド比較部33による比較結果が異なっていれば、マルチヒットの出力を抑止する一方、スレッド比較部33による比較結果が同一であれば、マルチヒットを出力するため、同一スレッドから同一のアドレス変換対を複数登録するというOSのミスに起因するマルチヒットを確実に出力することができるとともに、OSのミスに起因しない不要なマルチヒットの出力を抑止することができる。したがって、不要なマルチヒットによりアドレス変換用バッファ31内のアドレス変換対を全て削除して再登録するというペナルティが発生することを抑止して、CPU10の性能が低下(処理が遅延)することを抑止することができる。
しかも、本発明の第1実施形態としての情報処理装置1及びマルチヒット制御方法は、図8を参照しながら上述した従来の情報処理装置に対して、アドレス変換対にスレッド情報を付加するとともに、スレッド情報の比較確認機能を付加するだけで実現可能であり、従来の情報処理装置に容易に実装できる利点がある。
〔2〕本発明の第2実施形態について
次に、本発明の第2実施形態としての情報処理装置及びマルチヒット制御方法について説明する。
図5は本発明の第2実施形態としての情報処理装置100の構成を示すブロック図である。なお、図5において既述の符号と同一の符号は、同一の部分もしくはほぼ同一の部分を示している。
この図5に示すように、本発明の第2実施形態としての情報処理装置100は、演算部10内に、命令処理部20及びアドレス変換制御部30をそなえて構成されている。ここで、演算部10及び命令処理部20は、上記第1実施形態の演算部10及び命令処理部20とそれぞれ同一であるため、ここではこれらの詳細な説明は省略する。
アドレス変換制御部30は、アドレス変換用バッファ31,エントリ部36,検索部37,スレッド比較部38,判断部39,及びエントリ制御部40をそなえて構成されている。アドレス変換用バッファ31は、上記第1実施形態のアドレス変換用バッファ31(図2参照)と同一であるため、ここではアドレス変換用バッファ31の詳細な説明は省略する。
エントリ部36は、TLBミスハンドラなどにより、スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとをアドレス変換対としてアドレス変換用バッファ31に登録するものである。
図6は本発明の第2実施形態としての情報処理装置100における検索部37,スレッド比較部38,判断部39,及びエントリ制御部40を説明するための図である。
この図6に示すように、検索部37は、エントリ部36によりアドレス変換対を登録する際に、登録されるアドレス変換対の仮想アドレス(図6中“Entry Virtual Address”と表記)と同一の仮想アドレス(Virtual Address;つまり、エントリ部36により登録するアドレス変換対と同一のアドレス変換対)をアドレス変換用バッファ31から検索するものであり、検索部37の機能及び構成は、上記第1実施形態における検索部32と同様である。
つまり、検索部37もアドレス比較部37a及びコンテキスト比較部37bをそなえており、アドレス比較部37aは上記第1実施形態におけるアドレス比較部32aと検索する元となる仮想アドレスが新たに登録する仮想アドレス(Entry Virtual Address)か変換すべき仮想アドレス(Access Virtual Address;図3参照)かが異なるだけで、その機能は同様である。
また、コンテキスト比較部37bも上記第1実施形態におけるコンテキスト比較部32bとは、検索する元となるコンテキストが、新たに登録する仮想アドレスのコンテキスト(図6中“Entry Context”と表記)か変換すべき仮想アドレスのコンテキスト(Access Context;図3参照)かが異なるだけで、その機能は同様である。
スレッド比較部38は、エントリ部36によって登録されるアドレス変換対の仮想アドレスを使用するスレッド(図6中“Entry Thread”と表記)と、アドレス変換用バッファ31に保持されたスレッド情報(図6中“Thread ID”と表記)とを比較するものであり、このスレッド比較部38も、上記第1実施形態におけるスレッド比較部33とは、検索する元となるスレッドが、新たに登録する仮想アドレスのスレッド(Entry Thread)か変換すべき仮想アドレスのスレッド(Access Thread;図3参照)かが異なるだけで、その機能は同様である。
判断部39は、検索部37による検索結果を判断するとともに、スレッド比較部38による比較結果を判断するものである。つまり、検索部37によりエントリ部36により登録される仮想アドレスと同一の仮想アドレスについてのアドレス変換対が検索されたか否かを判断するとともに、スレッド比較部38による比較結果が同一であるか否かを判断する。
つまり、判断部39は、検索部37により登録される仮想アドレスと同一の仮想アドレスについてのアドレス変換対がアドレス変換用バッファ31から検索された場合に、検索部37によって検索されたアドレス変換対に対応するスレッド情報のスレッド比較部38による比較結果が同一であるか否かを判断する。
エントリ制御部40は、判断部34による判断結果を参照し(つまり、検索部37による検索結果及びスレッド比較部38による比較結果に基づいて)、エントリ部36によるアドレス変換用バッファ31へのアドレス変換対の登録を制御するものであり、検索部37により、エントリ部36によって登録されるアドレス変換対の仮想アドレスがアドレス変換用バッファ31から検索されなければ、エントリ部36によるアドレス変換対の登録を実施させる。
また、エントリ制御部40は、検索部37により、エントリ部36によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスがアドレス変換用バッファ31から検索された場合に、判断部39の判断結果を参照して、判断部39が、スレッド比較部38による比較の結果、検索部37によって検索されたアドレス変換対に付加されたスレッド情報(Thread ID)とエントリ部36によって登録されるアドレス変換対の仮想アドレスを使用するスレッド(Entry Thread)とが同一であると判断した場合には、エントリ部36によるアドレス変換対のアドレス変換用バッファ31への登録を実行させる。
一方、エントリ制御部40は、検索部37により、エントリ部36によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスがアドレス変換用バッファ31から検索された場合に、判断部39が、スレッド比較部38による比較の結果、スレッド情報(Thread ID)とスレッド(Entry Thread)とが異なっていると判断した場合には、エントリ部36によるアドレス変換対のアドレス変換用バッファ31への登録を中止させる。
次に、本発明の第2実施形態としてのマルチヒット制御方法(情報処理装置100の動作)について説明する。図7は本発明の第2実施形態としてのマルチヒット制御方法の手順を説明するためのフローチャート(ステップS1〜S5)である。この図7に示すように、本発明の情報処理装置100では、エントリ部36が、TLBミスハンドラなどにより、スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとをアドレス変換対としてアドレス変換用バッファ31に登録する際に、まず、検索部37が、エントリ部36が新たに登録する仮想アドレスと同一の仮想アドレスについてのアドレス変換対をアドレス変換用バッファ31から検索する(ステップS1)。
そして、検索部37による検索の結果、アドレス変換用バッファ31内に、エントリ部36が登録する仮想アドレスと同一の仮想アドレスがなければ(ステップS2のNoルート)、エントリ制御部40は、エントリ部36によるアドレス変換対の登録を実行させて(ステップS3)処理を終了する。
一方、検索部37による検索の結果、アドレス変換用バッファ31内に、エントリ部36が登録する仮想アドレスと同一の仮想アドレスがあると(ステップS2のYesルート)、エントリ制御部40は、判断部39による判断結果を参照する。
つまり、判断部39が、スレッド比較部38による比較結果、検索部37により検索された仮想アドレス(アドレス変換対)を登録したスレッド情報とエントリ部36により登録される仮想アドレスを使用するスレッドと同一であると判断すると(ステップS4のNoルート)、エントリ制御部40は、エントリ部36によるアドレス変換対の登録を実行させて(ステップS3)処理を終了する。
一方、判断部39が、スレッド比較部38による比較結果、検索部37により検索された仮想アドレス(アドレス変換対)を登録したスレッド情報とエントリ部により登録される仮想アドレスを使用するスレッドと同一でないと判断すると(ステップS4のYesルート)、エントリ制御部40は、エントリ部36によるアドレス変換対の登録を中止させて(ステップS5)処理を終了する。
このように、本発明の第2実施形態としての情報処理装置100及びマルチスレッド制御方法によれば、アドレス変換用バッファ31に保持されるアドレス変換対に当該アドレス変換対を登録したスレッドを示すスレッド情報が付加されるとともに、エントリ部36によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが検索部37によりアドレス変換用バッファ31から検索され、且つ判断部39による判断の結果(スレッド比較部38による比較の結果)、検索部37により検索された仮想アドレスについてのアドレス変換対に付加されたスレッド情報と、エントリ部36によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一であった場合には、エントリ制御部40が、エントリ部36によるアドレス変換対のアドレス変換用バッファ31への登録を実行させるため、同一のスレッドからの同一のアドレス変換対を登録する事象が発生した場合には、かかる事象が情報処理装置100のOSのミスに起因するものであると判断して、このOSのミスについてはアドレス変換用バッファ31を用いたアドレス変換処理において確実に検出させてマルチヒットとして発生させることができ、情報処理装置100自体の安全性を確保することができる。
一方、エントリ部36によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが検索部37によりアドレス変換用バッファ31から検索され、且つ判断部39による判断の結果(スレッド比較部38による比較の結果)、検索部37により検索された仮想アドレスについてのアドレス変換対に付加されたスレッド情報と、エントリ部36によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一でなかった場合には、エントリ制御部40が、エントリ部36によるアドレス変換対のアドレス変換用バッファ31への登録を中止させるため、アドレス変換用バッファ31に仮想アドレスが同一のアドレス変換対が複数登録されることが確実に抑止される。したがって、マルチスレッド方式で動作する情報処理装置100において、実際にアドレス変換用バッファ31を用いてアドレス変換を実行する際にも、OSのミスに起因するマルチヒット以外の不要なマルチヒットが発生することがなくなり、アドレス変換処理を円滑に且つ確実に行なうことができる。つまり、不要なマルチヒットによりアドレス変換用バッファ31内のアドレス変換対を全て削除して再登録するというペナルティが発生することを抑止して、CPU10の性能が低下(処理が遅延)することを抑止することができる。
しかも、アドレス変換用バッファ31への異なるスレッドからの同一アドレス変換対の登録も抑止されるため、アドレス変換用バッファ31の使用効率を向上させることができ、その結果、アドレス変換用バッファ31を用いたアドレス変換処理の処理性能を向上させることができる。
〔3〕本発明の変形例について
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した第1実施形態では、スレッド比較部33による比較を、アドレス変換を実行する度に行なうように構成したが、本発明はこれに限定されるものではなく、スレッド比較部33による比較を、検索部32により変換すべき仮想アドレスがアドレス変換用バッファ31から複数検索された場合にのみ実行するように構成してもよく、この場合でも上述した第1実施形態と同様の効果を得ることができる。なお、この場合には、マルチヒット制御部35がスレッド比較部33による比較を実行させるようにしてもよい。
また、上述した第2実施形態では、スレッド比較部38による比較を、エントリ部36によりアドレス変換用バッファ31にアドレス変換対を登録する度に行なうように構成したが、本発明はこれに限定されるものではなく、スレッド比較部38による比較を、検索部37によりエントリ部36によって登録される仮想アドレスと同一の仮想アドレスについてのアドレス変換対がアドレス変換用バッファ31から検索された場合にのみ実行するように構成してもよく、この場合でも上述した第2実施形態と同様の効果を得ることができる。なお、この場合には、エントリ制御部40が、スレッド比較部38による比較を実行させるようにしてもよい。
さらに、上述した第1実施形態では、複数のスレッド情報が異なっていることを条件としてマルチヒットの出力を抑止しているが、本発明はこれに限定されるものではなく、これ以外の所定の条件を満たした時にマルチヒットの出力を抑止するように構成してもよい。
また、上述した第1実施形態では、情報処理装置1が、判断部34とマルチヒット制御部35とを個別にそなえて構成された例をあげて説明したが、本発明はこれに限定されるものではなく、マルチヒット制御部35が判断部34をそなえるように構成してもよい。
さらに、上述した第2実施形態では、情報処理装置100が、判断部39とエントリ制御部40とを個別にそなえて構成された例をあげて説明したが、本発明はこれに限定されるものではなく、エントリ制御部40が判断部39をそなえるように構成してもよい。
〔4〕その他
上述した命令処理部20、アドレス比較部32a,37a、コンテキスト比較部32b,37b、スレッド比較部33,38、判断部34,39、マルチヒット制御部35、エントリ部36、及びエントリ制御部40としての機能は、コンピュータ(CPU,情報処理装置,各種端末を含む)が所定のアプリケーションプログラム(マルチヒット制御プログラム)を実行することによって実現される。
そのプログラムは、例えばフレキシブルディスク,CD−ROM,CD−R,CD−RW,DVD等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からマルチヒット制御プログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信回線を介してコンピュータに提供するようにしてもよい。
ここで、コンピュータとは、ハードウェアとOS(オペレーティングシステム)とを含む概念であり、OSの制御の下で動作するハードウェアを意味している。また、OSが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえている。上記マルチヒット制御プログラムとしてのアプリケーションプログラムは、上述のようなコンピュータに、命令処理部20、アドレス比較部32a,37a、コンテキスト比較部32b,37b、スレッド比較部33,38、判断部34,39、マルチヒット制御部35、エントリ部36、及びエントリ制御部40としての機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくOSによって実現されてもよい。
さらに、本実施形態としての記録媒体としては、上述したフレキシブルディスク,CD−ROM,CD−R,CD−RW,DVD,磁気ディスク,光ディスク,光磁気ディスクのほか、ICカード,ROMカートリッジ,磁気テープ,パンチカード,コンピュータの内部記憶装置(RAMやROMなどのメモリ),外部記憶装置等や、バーコードなどの符号が印刷された印刷物等の、コンピュータ読取可能な種々の媒体を利用することもできる。
〔5〕付記
(付記1)
マルチスレッド方式で動作する情報処理装置であって、
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、
スレッド毎に得られた仮想アドレスを物理アドレスに変換すべく前記アドレス変換用バッファに保持された当該仮想アドレスについてのアドレス変換対を検索する検索部と、
該検索部により同一のアドレス変換対が複数検索された場合に、所定の条件を満たすときには、マルチヒットの出力を抑止して、前記検索部によるアドレス変換を実行させるマルチヒット制御部とをそなえて構成されたことを特徴とする、情報処理装置。
(付記2)
マルチスレッド方式で動作する情報処理装置であって、
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するとともに、前記アドレス変換対を登録したスレッドを示すスレッド情報を保持するアドレス変換用バッファと、
スレッド毎に使用される仮想アドレスを物理アドレスに変換すべく当該仮想アドレスと同一の仮想アドレスについてのアドレス変換対を前記アドレス変換用バッファから検索する検索部と、
前記検索部により変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が複数検索された場合に、前記検索部によって検索された複数のアドレス変換対に対応する複数のスレッド情報のうち2以上の前記スレッド情報が同一か否かを判断する判断部と、
該判断部によって前記複数のスレッド情報が異なっていると判断された場合には、マルチヒットの出力を抑止して前記検索部によるアドレス変換を実行させるマルチヒット制御部とをそなえて構成されたことを特徴とする、情報処理装置。
(付記3)
前記マルチヒット制御部が、前記判断部によって前記複数のスレッド情報のうち2以上の前記スレッド情報が同一であると判断された場合には、マルチヒットを出力することを特徴とする、付記2記載の情報処理装置。
(付記4)
マルチスレッド方式で動作する情報処理装置であって、
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するとともに、前記アドレス変換対を登録したスレッドを示すスレッド情報を保持するアドレス変換用バッファと、
スレッド毎に得られた仮想アドレスを物理アドレスに変換すべく当該仮想アドレスと同一の仮想アドレスについてのアドレス変換対を前記アドレス変換用バッファから検索する検索部と、
該検索部により同一のアドレス変換対が複数検索された場合に、検索された複数のアドレス変換対に対応する複数のスレッド情報を比較するスレッド比較部と、
該スレッド比較部による比較の結果、前記複数のスレッド情報のうち2以上の前記スレッド情報が同一であった場合にはマルチヒットを出力する一方、前記複数のスレッド情報が同一でなかった場合には前記検索部によるアドレス変換を実行させるマルチヒット制御部とをそなえて構成されたことを特徴とする、情報処理装置。
(付記5)
前記アドレス変換用バッファが、前記アドレス変換対とともにコンテキストを保持するように構成され、
前記検索部が、変換すべき仮想アドレスのコンテキストと前記アドレス変換用バッファに保持された前記アドレス変換対のコンテキストとを比較するコンテキスト比較部をそなえて構成されることを特徴とする、付記1〜4のいずれか1項に記載の情報処理装置。
(付記6)
前記アドレス変換用バッファが、前記アドレス変換対とともに保持された前記コンテキストの有効/無効を示すコンテキスト有効/無効情報を保持するように構成され、
前記コンテキスト比較部が、前記コンテキスト有効/無効情報を参照し、当該コンテキスト有効/無効情報が有効であれば前記コンテキストの比較を行なう一方、当該コンテキスト有効/無効情報が無効であれば前記コンテキストの比較を行なわないことを特徴とする、付記5記載の情報処理装置。
(付記7)
マルチスレッド方式で動作する情報処理装置であって、
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、
スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、
該エントリ部により前記アドレス変換対を登録する際に、登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部と、
該検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが検索された場合に、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止させるエントリ制御部とをそなえて構成されたことを特徴とする、情報処理装置。
(付記8)
前記アドレス変換用バッファに保持された前記アドレス変換対に当該アドレス変換対を登録したスレッドを示すスレッド情報が付加されるとともに、
前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索された場合に、前記検索部によって検索された前記アドレス変換対に付加された前記スレッド情報と、前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとを比較するスレッド比較部をさらにそなえ、
前記エントリ制御部が、
前記スレッド比較部による比較の結果、前記検索部によって検索された前記アドレス変換対に付加された前記スレッド情報と、前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一であった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を実行させる一方、
前記スレッド比較部による比較の結果、前記スレッド情報と前記スレッドとが同一でなかった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止させることを特徴とする、付記7記載の情報処理装置。
(付記9)
マルチスレッド方式で動作する情報処理装置であって、
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するとともに、前記アドレス変換対を登録したスレッドを示すスレッド情報を保持するアドレス変換用バッファと、
スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、
該エントリ部により前記アドレス変換対を登録する際に、登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部と、
前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された前記アドレス変換対に対応するスレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一でなかった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止させるエントリ制御部とをそなえて構成されたことを特徴とする、情報処理装置。
(付記10)
前記エントリ制御部が、前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された前記アドレス変換対に対応するスレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一であった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を実行させることを特徴とする、付記8記載の情報処理装置。
(付記11)
前記アドレス変換用バッファに保持された前記アドレス変換対にコンテキストが付加されるとともに、
前記検索部が、前記エントリ部によって登録されるアドレス変換対のコンテキストと、前記アドレス変換用バッファに保持された前記アドレス変換対に付加されたコンテキストとを比較するコンテキスト比較部をそなえて構成されることを特徴とする、付記7〜10のいずれか1項に記載の情報処理装置。
(付記12)
前記アドレス変換用バッファに保持された前記アドレス変換対に付加された前記コンテキストに当該コンテキストの有効/無効を示すコンテキスト有効/無効情報が付加されるとともに、
前記コンテキスト比較部が、前記コンテキスト有効/無効情報を参照し、当該コンテキスト有効/無効情報が有効であれば前記コンテキストの比較を行なう一方、当該コンテキスト有効/無効情報が無効であれば前記コンテキストの比較を行なわないことを特徴とする、付記11記載の情報処理装置。
(付記13)
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に得られた仮想アドレスを物理アドレスに変換すべく前記アドレス変換用バッファに保持された当該仮想アドレスに対応するアドレス変換対を検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、
前記検索部により同一のアドレス変換対が複数検索された場合に、所定の条件を満たすときには、マルチヒットの出力を抑止して、前記検索部によるアドレス変換を実行させることを特徴とする、マルチヒット制御方法。
(付記14)
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスを物理アドレスに変換すべく前記アドレス変換用バッファに保持された当該仮想アドレスに対応するアドレス変換対を検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、
前記アドレス変換用バッファに保持された前記アドレス変換対に当該アドレス変換対を登録したスレッドを示すスレッド情報を付加するとともに、
前記検索部により、変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が複数検索された場合に、前記検索部によって検索された複数のアドレス変換対に付加された複数のスレッド情報のうち2以上のスレッド情報が同一か否かを判断し、
前記判断の結果、前記複数のスレッド情報が異なっていると判断された場合には、マルチヒットの出力を抑止して前記検索部によるアドレス変換を実行することを特徴とする、マルチヒット制御方法。
(付記15)
前記判断の結果、前記複数のスレッド情報のうち2以上の前記スレッド情報が同一であると判断された場合には、マルチヒットを出力することを特徴とする、付記14記載のマルチヒット制御方法。
(付記16)
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に得られた仮想アドレスを物理アドレスに変換すべく前記アドレス変換用バッファに保持された当該仮想アドレスに対応するアドレス変換対を検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、
前記アドレス変換用バッファに保持された前記アドレス変換対に当該アドレス変換対を登録したスレッドを示すスレッド情報を付加するとともに、
変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が複数検索された場合に、前記検索部によって検索された前記複数のアドレス変換対に付加された前記スレッド情報を比較し、
前記比較の結果、前記複数のアドレス変換対に付加された前記スレッド情報のうち少なくとも2つのスレッド情報が同一であった場合には、マルチヒットを出力する一方、
前記比較の結果、前記複数のアドレス変換対に付加された前記スレッド情報が同一でなかった場合には、マルチヒットを出力せずに前記検索部によるアドレス変換を実行することを特徴とする、マルチヒット制御方法。
(付記17)
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、該エントリ部により前記アドレス変換対を登録する際に、該エントリ部により登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、
前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが検索された場合に、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止することを特徴とする、マルチヒット制御方法。
(付記18)
前記アドレス変換用バッファに保持された前記アドレス変換対に当該アドレス変換対を登録したスレッドを示すスレッド情報を付加するとともに、
前記検索部により前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索された場合に、前記検索部によって検索された仮想アドレスについての前記アドレス変換対に付加された前記スレッド情報と、前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとを比較し、
前記比較の結果、前記検索部によって検索された仮想アドレスについての前記アドレス変換対に付加された前記スレッド情報と、前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一であった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を実行する一方、
前記比較の結果、前記スレッド情報と前記スレッドとが同一でなかった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止することを特徴とする、付記17記載のマルチヒット制御方法。
(付記19)
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、該エントリ部により前記アドレス変換対を登録する際に、該エントリ部により登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、
前記アドレス変換用バッファに保持された前記アドレス変換対に当該アドレス変換対を登録したスレッドを示すスレッド情報を付加するとともに、
前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された仮想アドレスについてのアドレス変換対に付加された前記スレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一でなかった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止することを特徴とする、マルチヒット制御方法。
(付記20)
前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された仮想アドレスについてのアドレス変換対に付加された前記スレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一であった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を実行することを特徴とする、付記18記載のマルチヒット制御方法。
(付記21)
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するとともに、前記アドレス変換対を登録したスレッドを示すスレッド情報を保持するアドレス変換用バッファをそなえた、マルチスレッド方式で動作する情報処理装置において、マルチヒットの出力を制御する機能をコンピュータに実現させるためのマルチヒット制御プログラムであって、
スレッド毎に使用される仮想アドレスを物理アドレスに変換すべく当該仮想アドレスと同一の仮想アドレスについてのアドレス変換対を前記アドレス変換用バッファから検索する検索部、
前記検索部により変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が複数検索された場合に、前記検索部によって検索された複数のアドレス変換対に対応する複数のスレッド情報のうち2以上の前記スレッド情報が同一か否かを判断する判断部、及び、
該判断部によって前記複数のスレッド情報が異なっていると判断された場合には、マルチヒットの出力を抑止して前記検索部によるアドレス変換を実行させる一方、前記判断部によって前記複数のスレッド情報のうち2以上の前記スレッド情報が同一であると判断された場合には、マルチヒットを出力するマルチヒット制御部として、前記コンピュータを機能させることを特徴とする、マルチヒット制御プログラム。
(付記22)
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するとともに、前記アドレス変換対を登録したスレッドを示すスレッド情報を保持するアドレス変換用バッファをそなえた、マルチスレッド方式で動作する情報処理装置において、マルチヒットの出力を制御する機能をコンピュータに実現させるためのマルチヒット制御プログラムを記録したコンピュータ読取可能な記録媒体であって、
前記マルチヒット制御プログラムが、
スレッド毎に使用される仮想アドレスを物理アドレスに変換すべく当該仮想アドレスと同一の仮想アドレスについてのアドレス変換対を前記アドレス変換用バッファから検索する検索部、
前記検索部により変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が複数検索された場合に、前記検索部によって検索された複数のアドレス変換対に対応する複数のスレッド情報のうち2以上の前記スレッド情報が同一か否かを判断する判断部、及び、
該判断部によって前記複数のスレッド情報が異なっていると判断された場合には、マルチヒットの出力を抑止して前記検索部によるアドレス変換を実行させる一方、前記判断部によって前記複数のスレッド情報のうち2以上の前記スレッド情報が同一であると判断された場合には、マルチヒットを出力するマルチヒット制御部として、前記コンピュータを機能させることを特徴とする、マルチヒット制御プログラムを記録したコンピュータ読取可能な記録媒体。
(付記23)
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するとともに、前記アドレス変換対を登録したスレッドを示すスレッド情報を保持するアドレス変換用バッファをそなえた、マルチスレッド方式で動作する情報処理装置において、マルチヒットの出力を制御する機能をコンピュータに実現させるためのマルチヒット制御プログラムであって、
スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部、
該エントリ部により前記アドレス変換対を登録する際に、登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部、及び、
前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された前記アドレス変換対に対応するスレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一でなかった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止させる一方、前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された前記アドレス変換対に対応するスレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一であった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を実行させるエントリ制御部として、前記コンピュータを機能させることを特徴とする、マルチヒット制御プログラム。
(付記24)
仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するとともに、前記アドレス変換対を登録したスレッドを示すスレッド情報を保持するアドレス変換用バッファをそなえた、マルチスレッド方式で動作する情報処理装置において、マルチヒットの出力を制御する機能をコンピュータに実現させるためのマルチヒット制御プログラムを記録したコンピュータ読取可能な記録媒体であって、
前記マルチヒット制御プログラムが、
スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部、
該エントリ部により前記アドレス変換対を登録する際に、登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部、及び、
前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された前記アドレス変換対に対応するスレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一でなかった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止させる一方、前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された前記アドレス変換対に対応するスレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一であった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を実行させるエントリ制御部として、前記コンピュータを機能させることを特徴とする、マルチヒット制御プログラムを記録したコンピュータ読取可能な記録媒体。
本発明の第1実施形態としての情報処理装置の構成を示すブロック図である。 本発明の第1実施形態としての情報処理装置のアドレス変換用バッファに保持されるアドレス変換対を説明するための図である。 本発明の第1実施形態としての情報処理装置の検索部及びスレッド比較部を説明するための図である。 本発明の第1実施形態としてのマルチヒット制御方法を説明するための図である。 本発明の第2実施形態としての情報処理装置の構成を示すブロック図である。 本発明の第2実施形態としての情報処理装置の検索部及びスレッド比較部を説明するための図である。 本発明の第2実施形態としてのマルチヒット制御方法の手順を説明するためのフローチャートである。 従来の情報処理装置によるマルチヒット検出方法を説明するための図である。 従来のマルチスレッド方式を採用した情報処理装置において複数のスレッド間でTLBを共有した場合に発生する不要なマルチヒットの発生原因を説明するためのフローチャートである。
符号の説明
1,100 情報処理装置
10 演算部(CPU)
20 命令処理部
30 アドレス変換制御部(MMU)
31 アドレス変換用バッファ(TLB)
32,37 検索部
32a,37a アドレス比較部
32b,37b コンテキスト比較部
33,38 スレッド比較部
34,39 判断部
35 マルチヒット制御部
36 エントリ部
40 エントリ制御部

Claims (10)

  1. マルチスレッド方式で動作する情報処理装置であって、
    仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、
    スレッド毎に得られた仮想アドレスを物理アドレスに変換すべく前記アドレス変換用バッファに保持された当該仮想アドレスについてのアドレス変換対を検索する検索部と、
    該検索部により同一のアドレス変換対が複数検索された場合に、所定の条件を満たすときには、マルチヒットの出力を抑止して、前記検索部によるアドレス変換を実行させるマルチヒット制御部とをそなえて構成されたことを特徴とする、情報処理装置。
  2. マルチスレッド方式で動作する情報処理装置であって、
    仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するとともに、前記アドレス変換対を登録したスレッドを示すスレッド情報を保持するアドレス変換用バッファと、
    スレッド毎に使用される仮想アドレスを物理アドレスに変換すべく当該仮想アドレスと同一の仮想アドレスについてのアドレス変換対を前記アドレス変換用バッファから検索する検索部と、
    該検索部により変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が複数検索された場合に、前記検索部によって検索された複数のアドレス変換対に対応する複数のスレッド情報のうち2以上の前記スレッド情報が同一か否かを判断する判断部と、
    該判断部によって前記複数のスレッド情報が異なっていると判断された場合には、マルチヒットの出力を抑止して前記検索部によるアドレス変換を実行させるマルチヒット制御部とをそなえて構成されたことを特徴とする、情報処理装置。
  3. 前記マルチヒット制御部が、前記判断部によって前記複数のスレッド情報のうち2以上の前記スレッド情報が同一であると判断された場合には、マルチヒットを出力することを特徴とする、請求項2記載の情報処理装置。
  4. マルチスレッド方式で動作する情報処理装置であって、
    仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、
    スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、
    該エントリ部により前記アドレス変換対を登録する際に、登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部と、
    該検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが検索された場合に、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止させるエントリ制御部とをそなえて構成されたことを特徴とする、情報処理装置。
  5. マルチスレッド方式で動作する情報処理装置であって、
    仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するとともに、前記アドレス変換対を登録したスレッドを示すスレッド情報を保持するアドレス変換用バッファと、
    スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、
    該エントリ部により前記アドレス変換対を登録する際に、登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部と、
    該検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された前記アドレス変換対に対応するスレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一でなかった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止させる一方、前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された前記アドレス変換対に対応するスレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一であった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を実行させるエントリ制御部とをそなえて構成されたことを特徴とする、情報処理装置。
  6. 仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に得られた仮想アドレスを物理アドレスに変換すべく前記アドレス変換用バッファに保持された当該仮想アドレスに対応するアドレス変換対を検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、
    前記検索部により同一のアドレス変換対が複数検索された場合に、所定の条件を満たすときには、マルチヒットの出力を抑止して、前記検索部によるアドレス変換を実行させることを特徴とする、マルチヒット制御方法。
  7. 仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスを物理アドレスに変換すべく前記アドレス変換用バッファに保持された当該仮想アドレスに対応するアドレス変換対を検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、
    前記アドレス変換用バッファに保持された前記アドレス変換対に当該アドレス変換対を登録したスレッドを示すスレッド情報を付加するとともに、
    前記検索部により、変換すべき仮想アドレスと同一の仮想アドレスについてのアドレス変換対が複数検索された場合に、前記検索部によって検索された複数のアドレス変換対に付加された複数のスレッド情報のうち2以上のスレッド情報が同一か否かを判断し、
    前記判断の結果、前記複数のスレッド情報が異なっていると判断された場合には、マルチヒットの出力を抑止して前記検索部によるアドレス変換を実行することを特徴とする、マルチヒット制御方法。
  8. 前記判断の結果、前記複数のスレッド情報のうち2以上の前記スレッド情報が同一であると判断された場合には、マルチヒットを出力することを特徴とする、請求項7記載のマルチヒット制御方法。
  9. 仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、該エントリ部により前記アドレス変換対を登録する際に、該エントリ部により登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、
    前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが検索された場合に、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止することを特徴とする、マルチヒット制御方法。
  10. 仮想アドレスと物理アドレスとの対応を示すアドレス変換対を保持するアドレス変換用バッファと、スレッド毎に使用される仮想アドレスと当該仮想アドレスに対応する物理アドレスとを前記アドレス変換対として前記アドレス変換用バッファに登録するエントリ部と、該エントリ部により前記アドレス変換対を登録する際に、該エントリ部により登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスを前記アドレス変換用バッファから検索する検索部とをそなえた、マルチスレッド方式で動作する情報処理装置におけるマルチヒット制御方法であって、
    前記アドレス変換用バッファに保持された前記アドレス変換対に当該アドレス変換対を登録したスレッドを示すスレッド情報を付加するとともに、
    前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された仮想アドレスについてのアドレス変換対に付加された前記スレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一でなかった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を中止する一方、
    前記検索部により、前記エントリ部によって登録されるアドレス変換対の仮想アドレスと同一の仮想アドレスが前記アドレス変換用バッファから検索され、且つ前記検索部によって検索された仮想アドレスについてのアドレス変換対に付加された前記スレッド情報と前記エントリ部によって登録されるアドレス変換対の仮想アドレスを使用するスレッドとが同一であった場合には、前記エントリ部による前記アドレス変換対の前記アドレス変換用バッファへの登録を実行することを特徴とする、マルチヒット制御方法。
JP2004222041A 2004-07-29 2004-07-29 演算処理装置,情報処理装置及び演算処理装置の制御方法 Expired - Fee Related JP4576172B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2004222041A JP4576172B2 (ja) 2004-07-29 2004-07-29 演算処理装置,情報処理装置及び演算処理装置の制御方法
US10/986,891 US7617379B2 (en) 2004-07-29 2004-11-15 Multi-hit control method for shared TLB in a multiprocessor system
EP04257291A EP1622033B1 (en) 2004-07-29 2004-11-24 Information processor and multi-hit control method
DE602004031104T DE602004031104D1 (de) 2004-07-29 2004-11-24 Informationsprozessor und Verfahren zur Multi-Hit Kontrolle
EP06121920.0A EP1770530B1 (en) 2004-07-29 2004-11-24 Information processor and multi-hit control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004222041A JP4576172B2 (ja) 2004-07-29 2004-07-29 演算処理装置,情報処理装置及び演算処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2006040140A true JP2006040140A (ja) 2006-02-09
JP4576172B2 JP4576172B2 (ja) 2010-11-04

Family

ID=34930830

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004222041A Expired - Fee Related JP4576172B2 (ja) 2004-07-29 2004-07-29 演算処理装置,情報処理装置及び演算処理装置の制御方法

Country Status (4)

Country Link
US (1) US7617379B2 (ja)
EP (2) EP1770530B1 (ja)
JP (1) JP4576172B2 (ja)
DE (1) DE602004031104D1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6622267B1 (en) * 1999-12-08 2003-09-16 Intel Corporation Method and apparatus for detecting multi-hit errors in cache
US8166239B2 (en) * 2007-06-21 2012-04-24 International Business Machines Corporation Translation lookaside buffer and related method and program product utilized for virtual addresses
US8140823B2 (en) * 2007-12-03 2012-03-20 Qualcomm Incorporated Multithreaded processor with lock indicator
WO2013101104A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Sharing tlb mappings between contexts
US9330017B2 (en) 2012-11-02 2016-05-03 International Business Machines Corporation Suppressing virtual address translation utilizing bits and instruction tagging
US9092382B2 (en) 2012-11-02 2015-07-28 International Business Machines Corporation Reducing microprocessor performance loss due to translation table coherency in a multi-processor system
US10564973B2 (en) * 2015-11-20 2020-02-18 Arm Limited Apparatus and method for sharing branch information storage entries between threads that share an address translation regime
US9892058B2 (en) * 2015-12-16 2018-02-13 Advanced Micro Devices, Inc. Centrally managed unified shared virtual address space
US10108554B2 (en) 2016-12-05 2018-10-23 Intel Corporation Apparatuses, methods, and systems to share translation lookaside buffer entries
US10970118B2 (en) 2017-08-02 2021-04-06 Advanced Micro Devices, Inc. Shareable FPGA compute engine
US10318435B2 (en) * 2017-08-22 2019-06-11 International Business Machines Corporation Ensuring forward progress for nested translations in a memory management unit
US11422812B2 (en) 2019-06-25 2022-08-23 Advanced Micro Devices, Inc. Method and apparatus for efficient programmable instructions in computer systems

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62260245A (ja) * 1986-05-02 1987-11-12 エムアイピ−エス コンピユ−タ− システムズ、インコ−ポレイテイド コンピユ−タシステム
JPH06324946A (ja) * 1993-05-12 1994-11-25 Fujitsu Ltd Tlb制御方式
JPH08320830A (ja) * 1994-09-09 1996-12-03 Hitachi Ltd データ処理装置
WO2002079998A1 (en) * 2001-03-30 2002-10-10 Mips Technologies, Inc. Mechanism to extend computer memory protection schemes
US20040064654A1 (en) * 2001-03-30 2004-04-01 Willis Thomas E. Method and apparatus including heuristic for sharing TLB entries

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02300951A (ja) 1989-05-16 1990-12-13 Mitsubishi Electric Corp キャッシュメモリ装置
US5680566A (en) 1995-03-03 1997-10-21 Hal Computer Systems, Inc. Lookaside buffer for inputting multiple address translations in a computer system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62260245A (ja) * 1986-05-02 1987-11-12 エムアイピ−エス コンピユ−タ− システムズ、インコ−ポレイテイド コンピユ−タシステム
JPH06324946A (ja) * 1993-05-12 1994-11-25 Fujitsu Ltd Tlb制御方式
JPH08320830A (ja) * 1994-09-09 1996-12-03 Hitachi Ltd データ処理装置
WO2002079998A1 (en) * 2001-03-30 2002-10-10 Mips Technologies, Inc. Mechanism to extend computer memory protection schemes
US20040064654A1 (en) * 2001-03-30 2004-04-01 Willis Thomas E. Method and apparatus including heuristic for sharing TLB entries

Also Published As

Publication number Publication date
DE602004031104D1 (de) 2011-03-03
US7617379B2 (en) 2009-11-10
JP4576172B2 (ja) 2010-11-04
EP1770530A3 (en) 2007-05-09
EP1770530A2 (en) 2007-04-04
EP1770530B1 (en) 2016-04-20
EP1622033A1 (en) 2006-02-01
US20060026382A1 (en) 2006-02-02
EP1622033B1 (en) 2011-01-19

Similar Documents

Publication Publication Date Title
EP1622007B1 (en) Information processing apparatus and software pre-fetch control method
EP2275939B1 (en) Processor and address translating method
TWI446166B (zh) 判定快取策略的方法、處理器和設定快取策略的系統
JP4608011B2 (ja) 演算処理装置および演算処理方法
JPH0658650B2 (ja) 仮想計算機システム
TW201042455A (en) Method of providing extended memory protection
JP2009506434A (ja) Tlbロックインジケータ
JP4576172B2 (ja) 演算処理装置,情報処理装置及び演算処理装置の制御方法
JP4574712B2 (ja) 演算処理装置、情報処理装置及び制御方法
TWI582592B (zh) 用於存取快取記憶體的方法與裝置
JP2009512943A (ja) 多階層の変換索引緩衝機構(TLBs)フィールドの更新
US20120173843A1 (en) Translation look-aside buffer including hazard state
US20210089469A1 (en) Data consistency techniques for processor core, processor, apparatus and method
US8190853B2 (en) Calculator and TLB control method
US20100100702A1 (en) Arithmetic processing apparatus, TLB control method, and information processing apparatus
JP4669244B2 (ja) キャッシュメモリ装置およびメモリ制御方法
JP3936672B2 (ja) マイクロプロセッサ
JP4867451B2 (ja) キャッシュメモリ装置及びそれに用いるキャッシュメモリ制御方法並びにそのプログラム
CN112527395B (zh) 数据预取方法和数据处理装置
JP7035787B2 (ja) 演算処理装置および演算処理装置の制御方法
US7337247B2 (en) Buffer and method of diagnosing buffer failure
US20160124859A1 (en) Computing system with tiered fetch mechanism and method of operation thereof
JPS63752A (ja) メモリ保護方式
JPH07234817A (ja) アドレス変換方法
JP2002007154A (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100323

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100608

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100721

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100810

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100823

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130827

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees