JPWO2008155849A1 - 演算処理装置、tlb制御方法、tlb制御プログラムおよび情報処理装置 - Google Patents

演算処理装置、tlb制御方法、tlb制御プログラムおよび情報処理装置 Download PDF

Info

Publication number
JPWO2008155849A1
JPWO2008155849A1 JP2009520203A JP2009520203A JPWO2008155849A1 JP WO2008155849 A1 JPWO2008155849 A1 JP WO2008155849A1 JP 2009520203 A JP2009520203 A JP 2009520203A JP 2009520203 A JP2009520203 A JP 2009520203A JP WO2008155849 A1 JPWO2008155849 A1 JP WO2008155849A1
Authority
JP
Japan
Prior art keywords
address
context
tlb
entry
request
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.)
Pending
Application number
JP2009520203A
Other languages
English (en)
Inventor
正典 土居
正典 土居
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
Publication of JPWO2008155849A1 publication Critical patent/JPWO2008155849A1/ja
Pending legal-status Critical Current

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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/681Multi-level TLB, e.g. microTLB and main TLB

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

この演算処理装置は、仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持するメインTLBと、メインTLBに保持されるページテーブルの一部を保持するマイクロTLBとを備える。このような構成において、演算処理装置は、メインTLBに保持される物理アドレスと、当該物理アドレスに関連付けられた仮想アドレスと、アドレス変換要求に含まれるコンテキストIDとを対応付けてエントリとしてマイクロTLBに登録し、アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDをコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとに一致するエントリをマイクロTLBから検索し、エントリが検索された場合に、エントリに含まれる物理アドレスを応答し、エントリが検索されなかった場合に、アドレス変換要求をメインTLBに送信する。

Description

この発明は、仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持するメインTLBと、メインTLBに保持されるページテーブルの一部を保持するマイクロTLBとを備え、演算部から出力される仮想アドレスから物理アドレスへのアドレス変換要求に対応する物理アドレスを、マイクロTLBまたはメインTLBに保持されるエントリから取得して演算部に応答する演算処理装置、TLB制御方法、TLB制御プログラムおよび情報処理装置に関する。
従来より、仮想記憶方式を適用するコンピュータには、仮想アドレス(VA:Virtual address)から物理アドレス(PA:physical address)への変換を行うためのページテーブルと呼ばれる一覧表が主記憶(メインメモリ)に記憶されている。コンピュータは、アドレス変換の度に主記憶内にあるページテーブルを参照しに行くと、非常に多くの時間が費やされることになるために、通常、TLB(アドレス変換バッファ:Translation-Lookasaide buffer)と呼ばれるアドレス変換専用のキャッシュを設けてCPU内に配置している。
そして、コンピュータにおける演算部や命令制御部は、メモリアクセスする際に、TLBにて仮想アドレスを物理アドレスに変換し、物理アドレスを用いて直接メモリに対してアクセスするため、TLBのアクセスの速さがそのままメモリアクセスの速さに影響する。TLBのアクセスを早くするためには、TLBの容量を小さくする必要があるが、あまり小さいとTLBミスが多発し、アクセス時間を大きくしてしまう。一方、TLBの容量を大きくした場合、検索にかかる時間は大きくなり、それがハードウエアの性能向上を阻害する原因になる。そこで、アクセス時間を短縮するとともに、ハードウエアの性能を向上させる手法として、TLBを2階層で構成する手法が多く用いられる。
2階層のTLBは、マイクロTLBとして用いられるCAM(content addressable memory、fully associative TLB)と、メインTLBとして用いられるRAM(Random Access Memory、Set associative TLB)とから構成される。それぞれのTLBのエントリには、ページサイズと呼ばれるサイズが割り当てられており、そのサイズは8Kページ、64Kページ、512Kページ、4Mページ、32Mページ、256Mページの6種類がある。そのうち、RAMには、8Kページと4Mページが格納可能であり、CAMには、それ以外のページと、LOCKエントリと呼ばれる特殊なエントリが格納可能である。また、RAMには、その構造上一種類のページサイズしか登録できないため、8Kページ、4Mページのエントリを登録するために2組のRAMを用意している。そして、RAMは、ページサイズの制約が大きい一方で、実装面積に対する記憶容量が比較的大きい。
これに対してCAMは、すべてのページサイズを登録可能であり、LOCKエントリにつけられたLOCKビットによるエントリ制御も可能である。ところが、CAMは、RAMに比べて実装面積に対する記憶領域が小さく、多くのエントリを格納することができない。そのため、CAMには、比較的使われる頻度が小さい64Kページと512Kページ、32Mページ、256Mページ、RAMに登録するには信頼性に問題のあるロックエントリやグローバルビットが格納される。また、マイクロTLBは、このCAMで構成されており、ページサイズによらず過去に検索されたアドレス変換情報を小容量であるが保持している。
コンピュータにおける演算部や命令制御部は、マイクロTLBにおいてアドレス変換を行う場合に、送信するリクエスト要求の仮想アドレスとコンテキストと、TLBに登録されているTLB仮想アドレスとTLBコンテキストとページサイズ情報とを用いてマイクロTLBの検索を行う。そして、演算部や命令制御部は、仮想アドレスとコンテキストと、TLB仮想アドレスとTLBコンテキストとが一致し、さらにその一致したエントリが有効であればマイクロTLBヒットとなり物理アドレスへの変換を行う。ここで用いられているコンテキストとは、各プロセスの各仮想アドレスが属するプログラムもしくはアドレス空間ごとに与えられた識別子であり、SPARCアーキテクチャでは、コンテキストレジスタに格納されている。このコンテキストレジスタには、「primary、secondary、nucleus」の三種類の空間があり、OSによって値が割り振られる。
そして、コンテキストレジスタに格納されるコンテキストを異なるプロセスで共有して使用するために、グローバルビットが利用されていている。演算部や命令制御部は、このグローバルビットが有効であるエントリに対しては、アドレス検索時にコンテキストの一致を無視することができ、仮想アドレスの一致のみでアドレス変換を行う。
上記した演算部や命令制御部がアドレス変換を行う処理を、図7を用いて具体的に説明する。図7に示すように、マイクロTLBは、63bitから13bitまでのTLB仮想アドレス[63:13]と12bitから0bitのコンテキスト値[12:0]とを保持する。そして、演算部や命令制御部は、アドレス変換要求としてTLBアクセスをマイクロTLBに出力する。このTLBアクセスは、仮想アドレス[63:13]と、1bitから0bitの実効コンテキストID[1:0]から構成される。このTLBアクセスを受け付けたマイクロTLBは、2bitの実効コンテキストIDに対応する12bitから0bitのコンテキスト値[12:0]を取得する。そして、マイクロTLBのアドレス比較部は、TLB仮想アドレス[63:13]と入力された仮想アドレス[63:13]とを比較した結果をAND回路に出力し、コンテキスト比較部は、TLBコンテキスト[12:0]と入力されて変換されたコンテキスト値[12:0]との比較結果と、当該コンテキストにグローバルビットが付加されているかを判定した結果をAND回路に出力する。
そして、AND回路は、アドレス比較部により一致する旨の信号と、コンテキスト比較部により一致する旨の信号またはGlobal-bit(グローバルビット)である旨の信号と、Entry-Validにより入力された当該仮想アドレスに対応するエントリが有効である旨の信号とを受け付けると、ENTRY_MATCHとして仮想アドレスに対応する物理アドレスを応答する。一方、アドレス比較部により一致しない旨の信号、コンテキスト比較部により一致しない旨の信号または、Entry-Validにより入力された当該仮想アドレスに対応するエントリが無効である旨の信号を受け付けると、AND回路は、マイクロTLBミスしたことを応答する。
さらに最近では、プロセッサの高速化に伴い、頻繁にアクセスされるマイクロTLBでのアドレス変換も高速化が求められる。そこで、異なるプロセスにおいてコンテキストを共通に使用できるシェアドコンテキスト(Shared-Context:共有ビット)が用いられている(特許文献1参照)。このシェアドコンテキストを採用した場合には、コンテキストレジスタとシェアドコンテキストレジスタのどちらかのコンテキストとマッチすれば、コンテキストマッチとして、仮想アドレスから物理アドレスへの変換を実施することができる。
特開平5−225064号公報
しかしながら、上記した従来の技術は、アドレス検索処理速度が低下するために、性能が低下するという課題があった。具体的には、マイクロTLBにコンテキストとシェアドコンテキストのそれぞれについて比較部を用意する必要があり、この比較部を追加すると比較BIT数の増加によりアドレス検索処理速度が低下してしまい、結果として、コンピュータの性能が低下する。
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、アドレス検索に用いるビット数を削減し、性能を向上させることが可能であるとともに、シェアドコンテキストを用いた場合においても、性能を向上させることが可能である演算処理装置、TLB制御方法、TLB制御プログラムおよび情報処理装置を提供することを目的とする。
上述した課題を解決し、目的を達成するため、請求項1に係る発明は、仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持するメインTLBと、前記メインTLBに保持されるページテーブルの一部を、演算部から出力される仮想アドレスから物理アドレスへの変換を要求するアドレス変換要求に含まれるコンテキストを識別するコンテキストIDに対応付けてエントリとして保持するマイクロTLBと、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとに一致するエントリをマイクロTLBから検索する検索手段と、前記検索手段によりエントリが検索された場合に、エントリに含まれる物理アドレスを前記演算部に応答し、前記検索手段によりエントリが検索されなかった場合に、アドレス変換要求をメインTLBに送信するアドレス応答手段と、を備えたことを特徴とする。
また、請求項2に係る発明は、上記の発明において、前記マイクロTLBは、前記物理アドレスと、仮想アドレスと、コンテキストIDとしてprimary、secondaryまたはnucleusを示す二ビットのコンテキストIDとを対応付けてエントリとして保持するものであって、前記検索手段は、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDをコンテキストに変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとに一致するエントリを検索する。
また、請求項3に係る発明は、上記の発明において、当該演算処理装置は、複数のスレッドが同時に動作するマルチスレッド方式を採用した演算処理装置であって、前記マイクロTLBは、前記物理アドレスと、仮想アドレスと、コンテキストIDと、物理アドレスが使用されるスレッドを示すスレッド情報とを対応付けてエントリとして保持し、前記検索手段は、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDをコンテキストに変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとスレッド情報とに一致するエントリをマイクロTLBから検索することを特徴とする。
また、請求項4に係る発明は、仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持するメインTLBと、前記メインTLBに保持されるページテーブルの一部を、演算部から出力される仮想アドレスから物理アドレスへの変換を要求するアドレス変換要求に含まれるコンテキストを識別するコンテキストIDに対応付けてエントリとして保持するマイクロTLBと、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとに一致するエントリをマイクロTLBから検索する検索ステップと、前記検索ステップによりエントリが検索された場合に、エントリに含まれる物理アドレスを前記演算部に応答し、前記検索ステップによりエントリが検索されなかった場合に、アドレス変換要求をメインTLBに送信するアドレス応答ステップと、を含んだことを特徴とする。
また、請求項5に係る発明は、上記の発明において、前記マイクロTLBは、前記物理アドレスと、仮想アドレスと、コンテキストIDとしてprimary、secondaryまたはnucleusを示す二ビットのコンテキストIDとを対応付けてエントリとして保持するものであって、前記検索ステップは、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとに一致するエントリを検索することを特徴とする。
また、請求項6に係る発明は、上記の発明において、当該TLB制御方法は、複数のスレッドが同時に動作するマルチスレッド方式を採用した演算処理装置に適したTLB制御方法であって、前記マイクロTLBは、前記物理アドレスと、仮想アドレスと、コンテキストIDと、物理アドレスが使用されるスレッドを示すスレッド情報とを対応付けてエントリとして保持し、前記検索ステップは、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとスレッド情報とに一致するエントリをマイクロTLBから検索することを特徴とする。
また、請求項7に係る発明は、仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持するメインTLBと、前記メインTLBに保持されるページテーブルの一部を、演算部から出力される仮想アドレスから物理アドレスへの変換を要求するアドレス変換要求に含まれるコンテキストを識別するコンテキストIDに対応付けてエントリとして保持するマイクロTLBと、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとに一致するエントリをマイクロTLBから検索する検索手順と、前記検索手順によりエントリが検索された場合に、エントリに含まれる物理アドレスを前記演算部に応答し、前記検索ステップによりエントリが検索されなかった場合に、アドレス変換要求をメインTLBに送信するアドレス応答手順と、をコンピュータに実行させることを特徴とする。
また、請求項8に係る発明は、上記の発明において、前記マイクロTLBは、前記物理アドレスと、仮想アドレスと、コンテキストIDとしてprimary、secondaryまたはnucleusを示す二ビットのコンテキストIDとを対応付けてエントリとして保持するものであって、前記検索手順は、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとに一致するエントリを検索することを特徴とする。
また、請求項9に係る発明は、上記の発明において、当該TLB制御プログラムは、複数のスレッドが同時に動作するマルチスレッド方式を採用した演算処理装置としてのコンピュータに実行するTLB制御プログラムであって、前記マイクロTLBは、前記物理アドレスと、仮想アドレスと、コンテキストIDと、物理アドレスが使用されるスレッドを示すスレッド情報とを対応付けてエントリとして保持し、前記検索手順は、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとスレッド情報とに一致するエントリをマイクロTLBから検索することを特徴とする。
また、請求項10に係る発明は、演算部と、前記演算部に接続される、情報を格納可能な記憶部と、前記記憶部のアクセスに用いられる、仮想アドレスと物理アドレスとの対応を示すエントリを保持するメインTLBと、メインTLBに保持されるエントリの一部を、実効コンテキストを示す実効コンテキストIDと対応付けて保持するマイクロTLBと、前記演算部から出力される、仮想アドレスから物理アドレスへのアドレス変換要求に対応する物理アドレスを、前記マイクロTLBまたは前記メインTLBに保持されるエントリから取得するデータ取得手段と、アドレス変換要求に応じて、当該アドレス変換要求に含まれる仮想アドレスと実効コンテキストIDとに一致する情報を保持するエントリを、前記マイクロTLBから検索する検索手段と、前記検索手段により前記マイクロTLBからエントリが検索された場合に、検索されたエントリに含まれる物理アドレスを前記演算部に応答し、前記検索手段により前記マイクロTLBからエントリが検索されなかった場合にアドレス変換要求をメインTLBに送信するアドレス応答手段と、を備えたことを特徴とする。
また、請求項11に係る発明は、前記情報処理装置において、前記検索手段により、前記マイクロTLBからエントリが検索されたかった場合、前記メインTLBに保持される前記アドレス変換要求に対応する物理アドレスと、当該物理アドレスに関連付けられた仮想アドレスと、前記アドレス変換要求に含まれる実効コンテキストIDとを対応付けてマイクロTLBに登録する登録手段をさらに備えることを特徴とする。
本発明によれば、仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持し、保持されるページテーブルの一部を、演算部から出力される仮想アドレスから物理アドレスへの変換を要求するアドレス変換要求に含まれるコンテキストを識別するコンテキストIDに対応付けてエントリとして保持し、アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDを、コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとに一致するエントリを検索し、エントリが検索された場合に、エントリに含まれる物理アドレスを演算部に応答し、エントリが検索されなかった場合に、アドレス変換要求をメインTLBに送信するので、アドレス検索に用いるビット数を削減し、性能を向上させることが可能であるとともに、シェアドコンテキストを用いた場合においても、性能を向上させることが可能である
例えば、TLBへのアクセス変換要求(TLBアクセス)に使用される実効コンテキストID(コンテキストID)をマイクロTLBに登録して、検索することができる結果、13ビットのコンテキストを用いる場合に比べて、処理性能を向上させることが可能である。また、実効コンテキストIDを用いることで、シェアドコンテキストを用いた場合でも、シェアドコンテキストを検索する論理回路を別途用意する必要がない結果、実効コンテキストIDを比較する1つの論理回路だけで検索することができるので、シェアドコンテキストを用いた場合においても、性能を向上させることが可能である。なお、実効コンテキストIDとは、プロセスごとに割り当てられる実行コンテキストの識別子であり、シェアドコンテキスト/共有コンテキストとは、複数のプロセス間で共有に割り当てられたコンテキストの識別子である。
また、本発明によれば、マイクロTLBは、物理アドレスと、仮想アドレスと、コンテキストIDとしてprimary、secondaryまたはnucleusを示す二ビットのコンテキストIDとを対応付けてエントリとして保持し、アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDを、コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとに一致するエントリを検索するので、検索時に比較対象となるビット数をさらに削減することができる結果、性能をさらに向上させることが可能である。
例えば、TLBへのアクセス変換要求(TLBアクセス)に使用される2ビットの実効コンテキストIDをマイクロTLBに登録して、検索することができる結果、2ビットの比較を行えばよく、13ビットのコンテキスト値を用いる場合に比べて、処理性能を向上させることが可能である。
また、本発明によれば、演算処理装置は、複数のスレッドが同時に動作するマルチスレッド方式を採用し、マイクロTLBは、物理アドレスと、仮想アドレスと、コンテキストIDと、物理アドレスが使用されるスレッドを示すスレッド情報とを対応付けてエントリとして保持し、アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDを、コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとスレッド情報とに一致するエントリをマイクロTLBから検索するので、マルチスレッド方式を用いた場合でも、性能をさらに向上させることが可能である。
図1は、実施例1に係る演算処理装置の概要と特徴を説明するための図である。 図2は、実施例1に係る演算処理装置の構成を示すブロック図である。 図3は、マイクロTLBに登録される情報の例を示す図である。 図4は、実施例1に係る演算処理装置におけるマイクロTLBの回路構成を説明するための図である。 図5は、実施例1に係る演算処理装置におけるマイクロTLBへのエントリ登録処理の流れを示すフローチャートである。 図6は、実施例1に係る演算処理装置におけるマイクロTLBのエントリ検索処理の流れを示すフローチャートである。 図7は、従来技術を説明するための図である。
符号の説明
10 演算処理装置
11 CPU
11a 演算部/命令制御部
20 L1キャッシュ制御部
21 L1キャッシュRAM
22 メインTLB
23 マイクロTLB
24 記憶部
25 登録部
26 アドレス比較部
27 コンテキストID比較部
28 スレッド比較部
29 アドレス応答部
30 L2キャッシュ制御部
31 L2キャッシュRAM
40 主記憶部(メモリ)
以下に添付図面を参照して、この実施例に係る演算処理装置、TLB制御方法およびTLB制御プログラムの実施例を詳細に説明する。なお、以下では、本実施例に係る演算処理装置の概要および特徴、演算処理装置の構成および処理の流れを順に説明し、最後に本実施例に対する種々の変形例を説明する。
まず最初に、図1を用いて、実施例1に係る演算処理装置の概要および特徴を説明する。図1は、実施例1に係る演算処理装置の概要と特徴を説明するための図である。
図1に示すように、この演算処理装置は、仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持するメインTLBと、メインTLBに保持されるページテーブルの一部を保持するマイクロTLBとを備える。また、マイクロTLBに接続される演算部/命令制御部は、仮想アドレスから物理アドレスへの変換を要求するアドレス変換要求をマイクロTLBに対して送信し、マイクロTLBに当該アドレス変換要求に対応するエントリがない(マイクロTLBミス)場合には、メインTLBからマイクロTLBに登録後、再度マイクロTLBに対してアドレス変換要求をする。また、この演算処理装置は、複数のスレッドが同時に動作するマルチスレッド方式を採用している。
このような構成において、この演算処理装置は、演算部/命令制御部などのプロセッサから出力される仮想アドレスから物理アドレスへのアドレス変換要求に対応する物理アドレスを、マイクロTLBまたはメインTLBに保持されるエントリから取得してプロセッサに応答することを概要とするものである。特に、本実施例による演算処理装置では、アドレス検索に用いるビット数を削減し、性能を向上させることが可能であるとともに、シェアドコンテキストを用いた場合においても、性能を向上させることが可能である点に主たる特徴がある。
この主たる特徴を具体的に説明すると、演算処理装置は、演算部/命令制御部などからマイクロTLBに対してアドレス変換要求が入力(TLBアクセス)されてマイクロTLBミスが発生し、応答されたメインTLBに保持される物理アドレスと、当該物理アドレスに関連付けられた仮想アドレスと、アドレス変換要求に含まれる実効コンテキストIDと、物理アドレスが使用されるスレッドを示すスレッド情報とを対応付けてエントリとしてマイクロTLBに登録する(図1の(1)〜(3)参照)。具体的に例を挙げれば、演算処理装置は、応答されたメインTLBに保持される物理アドレス[46:13]と、当該物理アドレスに関連付けられたTLB仮想アドレス[63:13]と、TLBアクセス時のアドレス変換要求に含まれるprimary、secondaryまたはnucleusを示す実効コンテキストID[1:0]と、物理アドレスが使用されるスレッドを示すスレッド情報とを対応付けてエントリとしてマイクロTLBに登録する。
例えば、演算処理装置は、応答されたメインTLBに保持される物理アドレス[46:13]で示される「0x000111・・・」と、当該物理アドレスに関連付けられたTLB仮想アドレス[63:13]で示される「1x123456・・・」と、TLBアクセス時のアドレス変換要求に含まれるprimary、secondaryまたはnucleusを示す実効コンテキストID[1:0]で示される「10」と、物理アドレスが使用されるスレッドを示すスレッド情報「スレッド1」とを対応付けてエントリとしてマイクロTLBに登録する。なお、ここで、primary、secondaryまたはnucleusを示す実効コンテキストIDを用いることで、シェアドコンテキストを保持する必要はない。
その後、演算処理装置は、演算部などからアドレス変換要求を受信した場合に、当該アドレス変換要求に含まれる実効コンテキストIDを、コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスと実効コンテキストIDとスレッド情報とに一致するエントリをマイクロTLBから検索する(図1の(4)参照)。上記した例で具体的に説明すると、演算処理装置は、演算部などからアドレス変換要求を再び受信した場合に、当該アドレス変換要求に含まれる実効コンテキストID[1:0]をコンテキスト値[12:0]に変換することなく、当該アドレス変換要求に含まれるTLB仮想アドレス[63:13]と実効コンテキストID[1:0]とスレッド情報とに一致するエントリをマイクロTLBから検索する。
例えば、演算処理装置は、TLB仮想アドレス[63:13]で示される「1x123456・・・」と実効コンテキストID「10」とスレッド情報「スレッド1」を含むアドレス変換要求を受信した場合に、これらに一致するエントリをマイクロTLBから検索する。
そして、演算処理装置は、マイクロTLBからエントリが検索された場合に、エントリに含まれる物理アドレスを応答し、マイクロTLBからエントリが検索されなかった場合に、アドレス変換要求をメインTLBに送信する(図1の(5)参照)。上記した例で具体的に説明すると、演算処理装置は、マイクロTLBからエントリが検索された場合に、TLB仮想アドレス[63:13]で示される「1x123456・・・」と実効コンテキストID「10」とスレッド情報「スレッド1」に対応付けて保持される物理アドレス「0x000111・・・」を応答し、マイクロTLBからエントリが検索されなかった場合に、アドレス変換要求をメインTLBに送信する。
このように、実施例1に係る演算処理装置は、[12:0]からなる13ビットのコンテキストではなく、[1:0]からなる2ビットの実効コンテキストIDを用いて、マイクロTLBに登録されているエントリを検索することができ、シェアドコンテキストを比較する必要がない結果、上記した主たる特徴のごとく、アドレス検索に用いるビット数を削減し、性能を向上させることが可能であるとともに、シェアドコンテキストを用いた場合においても、性能を向上させることが可能である。
[演算処理装置の構成]
次に、図2を用いて、図1に示した演算処理装置の構成を説明する。図2は、実施例1に係る演算処理装置の構成を示すブロック図である。図2に示すように、この演算処理装置10は、CPU11と、L1キャッシュ制御部20と、L2キャッシュ制御部30と、主記憶部40とから構成される。
CPU11は、主記憶部40に記憶される各種プログラムを実行する処理部であり、特に本実施例に密接に関連するものとしては、演算部/命令制御部11aと、L1キャッシュ制御部20とを備える。
演算部/命令制御部11aは、CPU11により実行される演算処理に応じてデータの書き込みおよび読み出しに関する命令を出力し、必要なデータを後述するマイクロTLB23、メインTLB22、L1キャッシュRAM21、L2キャッシュRAM31または主記憶部40から取得し、取得されたデータに対する演算処理を行う。
L1キャッシュ制御部20は、演算部/命令制御部11aから仮想アドレスを取得した場合に、対応するデータをL1キャッシュRAM21から取得して演算部/命令制御部11aに出力し、対応するデータがL1キャッシュRAM21に存在しない場合に、L2キャッシュアドレスアクセスをL2キャッシュ制御部30に出力する処理部である。特に、本実施例に密接に関連するものとしては、L1キャッシュ制御部20は、L1キャッシュRAM21と、メインTLB22と、マイクロTLB23とを備える。
L1キャッシュRAM21は、CPU11と同じモジュールに集積または実装されている高速で少容量なメモリある。L1キャッシュRAM21は、使用頻度の高いデータを記憶することで、CPU11によって実行される命令とデータを一時的に保持するために使われ、主記憶部40が新しいデータの供給に追いつく間、一定量のデータを供給してCPU11が処理を続行できるようにする。
メインTLB22は、主記憶上に配置される仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持する。具体的に例を挙げれば、演算部/命令制御部11aによってマイクロTLB23にアドレス変換要求が送信されて、マイクロTLBミスが発生すると、メインTLB22は、マイクロTLB23からアドレス変換要求を受け付けて、当該アドレス変換要求に対して物理アドレスを応答する。また、メインTLB22は、マイクロTLB23からアドレス変換要求に対応する物理アドレスを保持していない場合、当該アドレス変換要求を主記憶部40に出力する。
マイクロTLB23は、メインTLBに保持されるページテーブルの一部を保持する。特に本実施例に密接に関連するものとしてマイクロTLB23は、記憶部24と、登録部25と、アドレス比較部26と、コンテキストID比較部27と、スレッド比較部28と、アドレス応答部29とを備える。
記憶部24は、後述する登録部25によって登録されたメインTLB22に保持される物理アドレスと、当該物理アドレスに関連付けられた仮想アドレスと、実効コンテキストトIDと、スレッド情報とを対応付けてエントリとして記憶する。具体的に例を挙げれば、記憶部24は、図3に示すように、仮想アドレス[63:13]と実効コンテキストID[1:0]とスレッド情報から構成されるTAG部と、物理アドレス[46:13]とattributes(Entry−Validなど)[12:0]とから構成されるデータ部とを対応付けて記憶する。なお、図3は、マイクロTLBに登録される情報の例を示す図である。
登録部25は、メインTLB22に保持される物理アドレスと、当該物理アドレスに関連付けられた仮想アドレスと、アドレス変換要求に含まれる実効コンテキストIDと、スレッド情報とを対応付けてエントリとしてマイクロTLB23の記憶部24に登録する。具体的に例を挙げれば、登録部25は、演算部/命令制御部11aにメインTLB22から応答された物理アドレス[46:13]と、当該物理アドレスに関連付けられた仮想アドレス[63:13]と、TLBアクセス時のアドレス変換要求に含まれるprimary、secondaryまたはnucleusを示す実効コンテキストID[1:0]と、物理アドレスが使用されるスレッドを示すスレッド情報とを対応付けてエントリとしてマイクロTLB23の記憶部24に登録する。例えば、登録部25は、物理アドレス[46:13]で示される「0x000111・・・」と、当該物理アドレスに関連付けられた仮想アドレス[63:13]で示される「1x123456・・・」と、TLBアクセス時のアドレス変換要求に含まれるprimary、secondaryまたはnucleusを示す実効コンテキストID[1:0]で示される「10」と、物理アドレスが使用されるスレッドを示すスレッド情報「スレッド1」とを対応付けてエントリとしてマイクロTLB23に登録する。
アドレス比較部26は、演算部/命令制御部11aからアドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるTLB仮想アドレスと一致するエントリを、マイクロTLB23の記憶部24に記憶される各エントリから検索する。具体的に例を挙げれば、アドレス比較部26は、演算部/命令制御部11aからアドレス変換要求を受信した場合に、当該アドレス変換要求に含まれる仮想アドレス[63:13]と一致する仮想アドレスを含むエントリを、マイクロTLB23の記憶部24に記憶される各エントリのTLB仮想アドレス[63:13]を参照して検索する。そして、アドレス比較部26は、一致したエントリがあった場合には、その旨を示す信号(例えば、一致したエントリ情報など)を後述するアドレス応答部29に通知し、一致したエントリがない場合には、その旨を示す信号(例えば、マイクロTLBミスなど)を後述するアドレス応答部29に通知する。
コンテキストID比較部27は、演算部/命令制御部11aからアドレス変換要求を受信した場合に、当該アドレス変換要求に含まれる実効コンテキストIDと一致する実効コンテキストIDを含むエントリを、マイクロTLB23の記憶部24に記憶される各エントリから検索する。具体的に例を挙げれば、コンテキストID比較部27は、演算部/命令制御部11aからアドレス変換要求を受信した場合に、当該アドレス変換要求に含まれる実効コンテキストID[1:0]を、コンテキストを特定するコンテキスト値[12:0]に変換することなく、実効コンテキストID[1:0]と一致する実効コンテキストIDを含むエントリを、マイクロTLB23の記憶部24に記憶される各エントリのTLB実効コンテキストID[1:0]を参照して検索する。そして、アドレス比較部26と同様、コンテキストID比較部27は、一致したエントリがあった場合には、その旨を示す信号(例えば、一致したエントリ情報など)を後述するアドレス応答部29に通知し、一致したエントリがない場合には、その旨を示す信号(例えば、マイクロTLBミスなど)を後述するアドレス応答部29に通知する。
スレッド比較部28は、演算部/命令制御部11aからアドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるスレッド情報と一致するスレッド情報を含むエントリを、マイクロTLB23の記憶部24に記憶される各エントリから検索する。具体的に例を挙げれば、スレッド比較部28は、演算部/命令制御部11aからアドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるスレッド情報と一致するスレッド情報を含むエントリを、マイクロTLB23の記憶部24に記憶される各エントリのTLBスレッド情報を参照して検索する。そして、アドレス比較部26は、一致したエントリがあった場合には、その旨を示す信号(例えば、一致したエントリ情報など)を後述するアドレス応答部29に通知し、一致したエントリがない場合には、その旨を示す信号(例えば、マイクロTLBミスなど)を後述するアドレス応答部29に通知する。
アドレス応答部29は、アドレス変換要求に対応するエントリがマイクロTLB23から検索された場合に、エントリに含まれる物理アドレスをプロセッサに応答し、エントリが検索されなかった場合に、アドレス変換要求をメインTLB22に送信する。上記した例で具体的に説明すると、アドレス応答部29は、アドレス比較部26から受け付けたアドレス変換要求の仮想アドレスと一致するエントリ情報と、コンテキストID比較部27から受け付けたアドレス変換要求の実効コンテキストIDと一致するエントリ情報と、スレッド情報比較部28から受け付けたアドレス変換要求のスレッド情報と一致するエントリ情報とが全て一致する場合に、当該受け付けたエントリに対応する物理アドレス[46:13]をマイクロTLB23の記憶部24から取得して、アドレス変換要求を送信した演算部/命令制御部11aに応答する。
一方、アドレス応答部29は、アドレス比較部26から受け付けたアドレス変換要求の仮想アドレスと一致するエントリ情報と、コンテキストID比較部27から受け付けたアドレス変換要求の実効コンテキストIDと一致するエントリ情報と、スレッド比較部28から受け付けたアドレス変換要求のスレッド情報と一致するエントリ情報とが一致しない場合や、アドレス比較部26、コンテキストID比較部27、スレッド情報部28のいずれから、入力されたアドレス変換要求と一致する情報がないことを示す信号(例えば、マイクロTLBミスなど)を受信した場合に、演算部/命令制御部11aから送信されたアドレス変換要求をメインTLB22に送信する。
L2キャッシュ制御部30は、L2キャッシュRAM31を備え、L1キャッシュ制御部20からL2キャッシュアクセスアドレスを取得した場合に、取得したL2キャッシュアクセスアドレスに対応するデータを、L2キャッシュRAM31から読み出してL1キャッシュ制御部20に出力する。L2キャッシュRAM31は、L1キャッシュRAM21より低速で主記憶部40より高速であるとともに、L1キャッシュRAM21より容量が大きく主記憶部40より容量が小さいメモリであり、使用頻度の高いデータを記憶する。
主記憶部40は、CPU11によって利用されるデータ、命令および仮想アドレスから物理アドレスへの変換表(ページテーブル)を記憶する大容量のメインメモリであり、CPU11の演算部/命令制御部11a、L1キャッシュ制御部20やL2キャッシュ制御部30からの要求に応答して、対応するデータを要求先の処理部に応答する。
[演算処理装置におけるマイクロTLBの回路構成]
次に、図4を用いて、演算処理装置におけるマイクロTLBの回路構成について説明する。図4は、実施例1に係る演算処理装置におけるマイクロTLBの回路構成を説明するための図である。
図4に示すように、演算部/命令制御部11aからアクセス変換要求(TLBアクセス)がマイクロTLB23に入力されると、アクセス変換要求に含まれる仮想アドレス[63:13]は、アドレス比較部26に入力され、アクセス変換要求に含まれる実効コンテキストID[1:0]は、コンテキストID比較部27に入力され、アクセス変換要求に含まれるスレッド情報は、スレッド比較部28にそれぞれ入力される。そして、アドレス比較部26は、入力された仮想アドレス[63:13]に一致する仮想アドレスを、記憶部24に記憶されるTLB仮想アドレス[63:13]を参照して検索し、その結果をAND回路(アドレス応答部29)に出力する。
同様に、コンテキストID比較部27は、入力された実効コンテキストID[1:0]に一致する実効コンテキストIDを、記憶部24に記憶されるTLB実効コンテキストID[1:0]を参照して検索し、その結果をAND回路(アドレス応答部29)に出力し、スレッド比較部28は、入力されたスレッド情報に一致するスレッド情報を、記憶部24に記憶されるスレッド情報を参照して検索し、その結果をAND回路(アドレス応答部29)に出力する。
そして、AND回路は、アドレス比較部26より入力されたエントリと、コンテキストID比較部27より入力されたエントリと、スレッド比較部28より入力されたエントリとが全て一致し、さらに、そのエントリが「有効」であることをEntry−Validから取得すると、当該エントリに含まれる物理アドレスを応答する。一方、AND回路は、アドレス比較部26より入力されたエントリと、コンテキストID比較部27より入力されたエントリと、スレッド比較部28より入力されたエントリとのいずれかが一致しない、一致したエントリが検索されなかった、一致したエントリが「無効」であった場合には、アドレス変換要求をメインTLB22に出力する。
[演算処理装置による処理]
次に、図5と図6とを用いて、演算処理装置による処理を説明する。図5は、実施例1に係る演算処理装置におけるマイクロTLBへのエントリ登録処理の流れを示すフローチャートであり、図6は、実施例1に係る演算処理装置におけるマイクロTLBのエントリ検索処理の流れを示すフローチャートである。
(エントリ登録処理)
図5に示すように、演算部/命令制御部11aから入力されたアドレス変換要求に対してマイクロTLBミスが発生すると(ステップS501肯定)、マイクロTLB23のアドレス応答部29は、メインTLB22に対して、演算部/命令制御部11aから入力されたアドレス変換要求を送信する(ステップS502)。
その後、入力されたアドレス変換要求に対する応答として物理アドレスがメインTLB22から演算部/命令制御部11aに送信されるとともに、アドレス変換要求に対する応答である物理アドレスがマイクロTLB23に入力されると(ステップS503肯定)、マイクロTLB23の登録部25は、入力された物理アドレスに対応付けて、仮想アドレス、実効コンテキストID、スレッド情報とを記憶部24に格納する(ステップS504)。
(エントリ検索処理)
図6に示すように、演算部/命令制御部11aからアドレス変換要求を受信すると(ステップS601肯定)、マイクロTLB23は、アドレス変換要求に含まれる2ビットの実効コンテキストIDを、コンテキストを特定する13ビットのコンテキスト値に変換することなく、アドレス変換要求に含まれる「仮想アドレス、実効コンテキストID、スレッド情報」との全てが一致するエントリをマイクロTLB23の記憶部24から検索する(ステップS602)。
そして、全てが一致するエントリが検索され(ステップS603肯定)、さらに、当該エントリが「有効」であれば、マイクロTLB23は、当該エントリに含まれる物理アドレス[46:13]を取得して、演算部/命令制御部11aに応答する(ステップS604)。
一方、全てが一致するエントリが検索されなかった場合(ステップS603否定)、または、当該エントリが「有効」でない場合、マイクロTLB23は、演算部/命令制御部11aから入力されたアドレス変換要求をメインTLB22に送信する(ステップS605)。
[実施例1による効果]
このように、実施例1によれば、仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持するメインTLBと、メインTLBに保持されるページテーブルの一部を、演算部から出力される仮想アドレスから物理アドレスへの変換を要求するアドレス変換要求に含まれるコンテキストを識別するコンテキストIDに対応付けてエントリとして保持するマイクロTLBとを備え、アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDを、コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとに一致するエントリを検索し、エントリが検索された場合に、エントリに含まれる物理アドレスを演算部に応答し、エントリが検索されなかった場合に、アドレス変換要求をメインTLBに送信するので、アドレス検索に用いるビット数を削減し、性能を向上させることが可能であるとともに、シェアドコンテキストを用いた場合においても、性能を向上させることが可能である。
例えば、TLBへのアクセス変換要求(TLBアクセス)に使用される実効コンテキストIDをマイクロTLBに登録して、検索することができる結果、13ビットのコンテキスト値を用いる場合に比べて、処理性能を向上させることが可能である。また、実効コンテキストIDを用いることで、シェアドコンテキストを用いた場合でも、シェアドコンテキストを検索する論理回路を別途用意する必要がない結果、実効コンテキストを比較する1つの論理回路だけで検索することができるので、シェアドコンテキストを用いた場合においても、性能を向上させることが可能である。
また、実施例1によれば、マイクロTLBは、物理アドレスと、仮想アドレスと、コンテキストIDとしてprimary、secondaryまたはnucleusを示す2ビットのコンテキストIDとを対応付けてエントリとして保持し、アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDを、コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとに一致するエントリを検索するので、検索時に比較対象となるビット数をさらに削減することができる結果、性能をさらに向上させることが可能である。
例えば、TLBへのアクセス変換要求(TLBアクセス)に使用される2ビットの実効コンテキストIDをマイクロTLBに登録して、検索することができる結果、2ビットの比較を行えばよく、13ビットのコンテキスト値を用いる場合に比べて、処理性能を向上させることが可能である。
また、実施例1によれば、演算処理装置は、複数のスレッドが同時に動作するマルチスレッド方式を採用し、マイクロTLBは、物理アドレスと、仮想アドレスと、コンテキストIDと、物理アドレスが使用されるスレッドを示すスレッド情報とを対応付けてエントリとして保持し、アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDを、コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとスレッド情報とに一致するエントリをマイクロTLBから検索するので、マルチスレッド方式を用いた場合でも、性能をさらに向上させることが可能である。
さて、これまで実施例について説明したが、本実施例は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に示すように、(1)シングルスレッド方式への対応、(2)システム構成等、にそれぞれ区分けして異なる実施例を説明する。
(1)シングルスレッド方式への対応
例えば、実施例1では、マルチスレッド方式に採用した演算処理装置を例に挙げて説明したが、本実施例はこれに限定されるものではなく、シングルスレッド方式を採用した演算処理装置にも本実施例を適用することができる。その場合、実施例1で説明したスレッド比較部を除いた構成またはスレッド比較部から出力される値を考慮しない手法を用いることで、シングルスレッド方式を採用した演算処理装置にも適用することができる。
(2)システム構成等
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理(例えば、主記憶部からの物理アドレスを含むエントリの出力処理など)の全部または一部を手動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合(例えば、アドレス比較部とコンテキストID比較部とを統合するなど)して構成することができる。
以上のように、本実施例に係る演算処理装置、TLB制御方法、TLB制御プログラムおよび情報処理装置は、仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持するメインTLBと、メインTLBに保持されるページテーブルの一部を保持するマイクロTLBとを備え、プロセッサから出力される仮想アドレスから物理アドレスへのアドレス変換要求に対応する物理アドレスを、マイクロTLBまたはメインTLBに保持されるエントリから取得してプロセッサに応答することに有用であり、特に、アドレス検索に用いるビット数を削減し、性能を向上させることと、シェアドコンテキストを用いた場合においても、性能を向上させることに適する。

Claims (11)

  1. 仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持するメインTLBと、
    前記メインTLBに保持されるページテーブルの一部を、演算部から出力される仮想アドレスから物理アドレスへの変換を要求するアドレス変換要求に含まれるコンテキストを識別するコンテキストIDに対応付けてエントリとして保持するマイクロTLBと、
    前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとに一致するエントリをマイクロTLBから検索する検索手段と、
    前記検索手段によりエントリが検索された場合に、エントリに含まれる物理アドレスを前記演算部に応答し、前記検索手段によりエントリが検索されなかった場合に、アドレス変換要求をメインTLBに送信するアドレス応答手段と、
    を備えたことを特徴とする演算処理装置。
  2. 前記マイクロTLBは、前記物理アドレスと、仮想アドレスと、コンテキストIDとしてprimary、secondaryまたはnucleusを示す二ビットのコンテキストIDとを対応付けてエントリとして保持するものであって、
    前記検索手段は、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとに一致するエントリを検索することを特徴とする請求項1に記載の演算処理装置。
  3. 当該演算処理装置は、複数のスレッドが同時に動作するマルチスレッド方式を採用した演算処理装置であって、
    前記マイクロTLBは、前記物理アドレスと、仮想アドレスと、コンテキストIDと、物理アドレスが使用されるスレッドを示すスレッド情報とを対応付けてエントリとして保持し、
    前記検索手段は、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとスレッド情報とに一致するエントリをマイクロTLBから検索することを特徴とする請求項1または2に記載の演算処理装置。
  4. 仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持するメインTLBと、
    前記メインTLBに保持されるページテーブルの一部を、演算部から出力される仮想アドレスから物理アドレスへの変換を要求するアドレス変換要求に含まれるコンテキストを識別するコンテキストIDに対応付けてエントリとして保持するマイクロTLBと、
    前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとに一致するエントリをマイクロTLBから検索する検索ステップと、
    前記検索ステップによりエントリが検索された場合に、エントリに含まれる物理アドレスを前記演算部に応答し、前記検索ステップによりエントリが検索されなかった場合に、アドレス変換要求をメインTLBに送信するアドレス応答ステップと、
    を含んだことを特徴とするTLB制御方法。
  5. 前記マイクロTLBは、前記物理アドレスと、仮想アドレスと、コンテキストIDとしてprimary、secondaryまたはnucleusを示す二ビットのコンテキストIDとを対応付けてエントリとして保持するものであって、
    前記検索ステップは、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとに一致するエントリを検索することを特徴とする請求項4に記載のTLB制御方法。
  6. 当該TLB制御方法は、複数のスレッドが同時に動作するマルチスレッド方式を採用した演算処理装置に適したTLB制御方法であって、
    前記マイクロTLBは、前記物理アドレスと、仮想アドレスと、コンテキストIDと、物理アドレスが使用されるスレッドを示すスレッド情報とを対応付けてエントリとして保持し、
    前記検索ステップは、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとスレッド情報とに一致するエントリをマイクロTLBから検索することを特徴とする請求項4または5に記載のTLB制御方法。
  7. 仮想アドレスと物理アドレスとの対応を示す複数のエントリをページテーブルとして保持するメインTLBと、
    前記メインTLBに保持されるページテーブルの一部を、演算部から出力される仮想アドレスから物理アドレスへの変換を要求するアドレス変換要求に含まれるコンテキストを識別するコンテキストIDに対応付けてエントリとして保持するマイクロTLBと、
    前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとに一致するエントリをマイクロTLBから検索する検索手順と、
    前記検索手順によりエントリが検索された場合に、エントリに含まれる物理アドレスを前記演算部に応答し、前記検索ステップによりエントリが検索されなかった場合に、アドレス変換要求をメインTLBに送信するアドレス応答手順と、
    をコンピュータに実行させることを特徴とするTLB制御プログラム。
  8. 前記マイクロTLBは、前記物理アドレスと、仮想アドレスと、コンテキストIDとしてprimary、secondaryまたはnucleusを示す二ビットのコンテキストIDとを対応付けてエントリとして保持するものであって、
    前記検索手順は、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとに一致するエントリを検索することを特徴とする請求項7に記載のTLB制御プログラム。
  9. 当該TLB制御プログラムは、複数のスレッドが同時に動作するマルチスレッド方式を採用した演算処理装置としてのコンピュータに実行するTLB制御プログラムであって、
    前記マイクロTLBは、前記物理アドレスと、仮想アドレスと、コンテキストIDと、物理アドレスが使用されるスレッドを示すスレッド情報とを対応付けてエントリとして保持し、
    前記検索手順は、前記アドレス変換要求を受信した場合に、当該アドレス変換要求に含まれるコンテキストIDを、前記コンテキストを特定するコンテキスト値に変換することなく、当該アドレス変換要求に含まれる仮想アドレスとコンテキストIDとスレッド情報とに一致するエントリをマイクロTLBから検索することを特徴とする請求項7または8に記載のTLB制御プログラム。
  10. 演算部と、
    前記演算部に接続される、情報を格納可能な記憶部と、
    前記記憶部のアクセスに用いられる、仮想アドレスと物理アドレスとの対応を示すエントリを保持するメインTLBと、
    メインTLBに保持されるエントリの一部を、実効コンテキストを示す実効コンテキストIDと対応付けて保持するマイクロTLBと、
    前記演算部から出力される、仮想アドレスから物理アドレスへのアドレス変換要求に対応する物理アドレスを、前記マイクロTLBまたは前記メインTLBに保持されるエントリから取得するデータ取得手段と、
    アドレス変換要求に応じて、当該アドレス変換要求に含まれる仮想アドレスと実効コンテキストIDとに一致する情報を保持するエントリを、前記マイクロTLBから検索する検索手段と、
    前記検索手段により前記マイクロTLBからエントリが検索された場合に、検索されたエントリに含まれる物理アドレスを前記演算部に応答し、前記検索手段により前記マイクロTLBからエントリが検索されなかった場合にアドレス変換要求をメインTLBに送信するアドレス応答手段と、
    を備えたことを特徴とする情報処理装置。
  11. 前記情報処理装置において、
    前記検索手段により、前記マイクロTLBからエントリが検索されたかった場合、前記メインTLBに保持される前記アドレス変換要求に対応する物理アドレスと、当該物理アドレスに関連付けられた仮想アドレスと、前記アドレス変換要求に含まれる実効コンテキストIDとを対応付けてマイクロTLBに登録する登録手段をさらに備えることを特徴とする、請求項10に記載の情報処理装置。
JP2009520203A 2007-06-20 2007-06-20 演算処理装置、tlb制御方法、tlb制御プログラムおよび情報処理装置 Pending JPWO2008155849A1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/062463 WO2008155849A1 (ja) 2007-06-20 2007-06-20 演算処理装置、tlb制御方法、tlb制御プログラムおよび情報処理装置

Publications (1)

Publication Number Publication Date
JPWO2008155849A1 true JPWO2008155849A1 (ja) 2010-08-26

Family

ID=40156015

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009520203A Pending JPWO2008155849A1 (ja) 2007-06-20 2007-06-20 演算処理装置、tlb制御方法、tlb制御プログラムおよび情報処理装置

Country Status (4)

Country Link
US (1) US20100100702A1 (ja)
EP (1) EP2169557A4 (ja)
JP (1) JPWO2008155849A1 (ja)
WO (1) WO2008155849A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2929729A1 (fr) * 2008-04-03 2009-10-09 Alveol Technology Sarl Dispositif de gestion de la memoire d'un environnement informatique
DE112009005006T5 (de) * 2009-06-26 2013-01-10 Intel Corporation Optimierungen für ein ungebundenes transaktionales Speichersystem (UTM)
US20110145542A1 (en) * 2009-12-15 2011-06-16 Qualcomm Incorporated Apparatuses, Systems, and Methods for Reducing Translation Lookaside Buffer (TLB) Lookups
US9921967B2 (en) 2011-07-26 2018-03-20 Intel Corporation Multi-core shared page miss handler
JP2013125355A (ja) * 2011-12-13 2013-06-24 Fujitsu Ltd 演算処理装置および演算処理装置の制御方法
US9672159B2 (en) * 2015-07-02 2017-06-06 Arm Limited Translation buffer unit management
US11144472B2 (en) 2019-03-27 2021-10-12 Intel Corporation Memory management apparatus and method for managing different page tables for different privilege levels

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5619576A (en) * 1979-07-25 1981-02-24 Fujitsu Ltd Address matching detection system in multiple-space processing data processing system
JPS6057449A (ja) * 1983-09-09 1985-04-03 Hitachi Ltd 仮想計算機システムのアドレス変換方式
JPS60209862A (ja) * 1984-02-29 1985-10-22 Panafacom Ltd アドレス変換制御方式
JPS61221846A (ja) * 1985-03-27 1986-10-02 Fujitsu Ltd アドレス変換制御方式
JPS6381548A (ja) * 1986-09-25 1988-04-12 Matsushita Electric Ind Co Ltd 高速アドレス変換装置
JPS6428758A (en) * 1987-07-24 1989-01-31 Hitachi Ltd Information processor
JPH03156542A (ja) * 1989-08-29 1991-07-04 Hitachi Ltd アドレス変換装置及びそのためのアドレス情報の管理方法
JPH03235144A (ja) * 1990-02-13 1991-10-21 Sanyo Electric Co Ltd キャッシュメモリ制御装置
JPH05173881A (ja) * 1991-12-19 1993-07-13 Nec Corp 情報処理装置
JPH08272692A (ja) * 1995-03-09 1996-10-18 Hewlett Packard Co <Hp> 仮想アドレス変換方法
JP2000122927A (ja) * 1998-10-12 2000-04-28 Hewlett Packard Co <Hp> 仮想領域番号によってアクセスするコンピュ―タ・システム
JP2005044363A (ja) * 2003-07-22 2005-02-17 Samsung Electronics Co Ltd 複数のスレッドを同時に処理する装置及び方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237671A (en) * 1986-05-02 1993-08-17 Silicon Graphics, Inc. Translation lookaside buffer shutdown scheme
JP3439337B2 (ja) * 1998-03-04 2003-08-25 日本電気株式会社 ネットワーク管理システム
JP3557947B2 (ja) * 1999-05-24 2004-08-25 日本電気株式会社 複数のプロセッサで同時にスレッドの実行を開始させる方法及びその装置並びにコンピュータ可読記録媒体
US6420903B1 (en) * 2000-08-14 2002-07-16 Sun Microsystems, Inc. High speed multiple-bit flip-flop
US6742103B2 (en) * 2000-08-21 2004-05-25 Texas Instruments Incorporated Processing system with shared translation lookaside buffer
KR100591755B1 (ko) * 2003-07-22 2006-06-22 삼성전자주식회사 복수의 스레드를 동시에 처리하는 장치 및 방법
US8136111B2 (en) * 2006-06-27 2012-03-13 International Business Machines Corporation Managing execution of mixed workloads in a simultaneous multi-threaded (SMT) enabled system

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5619576A (en) * 1979-07-25 1981-02-24 Fujitsu Ltd Address matching detection system in multiple-space processing data processing system
JPS6057449A (ja) * 1983-09-09 1985-04-03 Hitachi Ltd 仮想計算機システムのアドレス変換方式
JPS60209862A (ja) * 1984-02-29 1985-10-22 Panafacom Ltd アドレス変換制御方式
JPS61221846A (ja) * 1985-03-27 1986-10-02 Fujitsu Ltd アドレス変換制御方式
JPS6381548A (ja) * 1986-09-25 1988-04-12 Matsushita Electric Ind Co Ltd 高速アドレス変換装置
JPS6428758A (en) * 1987-07-24 1989-01-31 Hitachi Ltd Information processor
JPH03156542A (ja) * 1989-08-29 1991-07-04 Hitachi Ltd アドレス変換装置及びそのためのアドレス情報の管理方法
JPH03235144A (ja) * 1990-02-13 1991-10-21 Sanyo Electric Co Ltd キャッシュメモリ制御装置
JPH05173881A (ja) * 1991-12-19 1993-07-13 Nec Corp 情報処理装置
JPH08272692A (ja) * 1995-03-09 1996-10-18 Hewlett Packard Co <Hp> 仮想アドレス変換方法
JP2000122927A (ja) * 1998-10-12 2000-04-28 Hewlett Packard Co <Hp> 仮想領域番号によってアクセスするコンピュ―タ・システム
JP2005044363A (ja) * 2003-07-22 2005-02-17 Samsung Electronics Co Ltd 複数のスレッドを同時に処理する装置及び方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6010051588, SPARC International Inc., The SPARC Architecture Manual, Version 9, 2003, ISBN 0−13−825001−4, pages 285 to 288, US, PTR Prentice Hall *

Also Published As

Publication number Publication date
WO2008155849A1 (ja) 2008-12-24
EP2169557A4 (en) 2010-08-04
EP2169557A1 (en) 2010-03-31
US20100100702A1 (en) 2010-04-22

Similar Documents

Publication Publication Date Title
US8151085B2 (en) Method for address translation in virtual machines
JP7340326B2 (ja) メンテナンス動作の実行
US8370604B2 (en) Method and system for caching attribute data for matching attributes with physical addresses
US20210089470A1 (en) Address translation methods and systems
US10255195B2 (en) Apparatus and method for performing address translation
JP2014078248A (ja) キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ
JPWO2008155849A1 (ja) 演算処理装置、tlb制御方法、tlb制御プログラムおよび情報処理装置
US20160140042A1 (en) Instruction cache translation management
KR20200133165A (ko) 어플리케이션 프로세서, 시스템-온 칩 및 메모리 관리 유닛의 동작 방법
US20240086323A1 (en) Storage management apparatus, storage management method, processor, and computer system
US8190853B2 (en) Calculator and TLB control method
US11422946B2 (en) Translation lookaside buffer striping for efficient invalidation operations
US7596663B2 (en) Identifying a cache way of a cache access request using information from the microtag and from the micro TLB
US9507729B2 (en) Method and processor for reducing code and latency of TLB maintenance operations in a configurable processor
KR102482516B1 (ko) 메모리 어드레스 변환
JPH0695972A (ja) ディジタルコンピュータシステム
KR102355374B1 (ko) 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법
US8051271B2 (en) Translation of virtual to physical addresses
JPWO2008155851A1 (ja) 演算処理装置、エントリ制御プログラムおよびエントリ制御方法
JPH07281947A (ja) 入出力アドレス用変換装置
KR20190032585A (ko) 멀티 스레드 모드에서 전력 감소를 위한 방법 및 장치
US20140006747A1 (en) Systems and methods for processing instructions when utilizing an extended translation look-aside buffer having a hybrid memory structure
US11615033B2 (en) Reducing translation lookaside buffer searches for splintered pages
US11474953B2 (en) Configuration cache for the ARM SMMUv3
JP2019096307A (ja) 複数のデータ・タイプのためのデータ・ストレージ

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100907

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110111