JP4998554B2 - 演算処理装置、情報処理装置及び演算処理装置の制御方法 - Google Patents

演算処理装置、情報処理装置及び演算処理装置の制御方法 Download PDF

Info

Publication number
JP4998554B2
JP4998554B2 JP2009520202A JP2009520202A JP4998554B2 JP 4998554 B2 JP4998554 B2 JP 4998554B2 JP 2009520202 A JP2009520202 A JP 2009520202A JP 2009520202 A JP2009520202 A JP 2009520202A JP 4998554 B2 JP4998554 B2 JP 4998554B2
Authority
JP
Japan
Prior art keywords
address
address translation
absolute
page size
conversion
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.)
Expired - Fee Related
Application number
JP2009520202A
Other languages
English (en)
Other versions
JPWO2008155848A1 (ja
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 JPWO2008155848A1 publication Critical patent/JPWO2008155848A1/ja
Application granted granted Critical
Publication of JP4998554B2 publication Critical patent/JP4998554B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/652Page size control
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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)

Description

この発明は、仮想アドレスと絶対アドレスとの対応を示す複数のアドレス変換対をページテーブルとして保持するメインTLBと、メインTLBに保持されるページテーブルの一部を保持するマイクロTLBとを備える演算処理装置、情報処理装置及び演算処理装置の制御方法に関する。
従来より、仮想記憶方式を適用するコンピュータには、仮想アドレス(VA:Virtual address)から物理アドレス(PA:physical address)への変換を行うためのページテーブルと呼ばれる一覧表が主記憶(メインメモリ)に記憶されている。コンピュータは、アドレス変換の度に主記憶内にあるページテーブルを参照しに行くと、非常に多くの時間が費やされることになるために、通常、TLB(アドレス変換バッファ:Translation-Lookasaide buffer)と呼ばれるアドレス変換専用のキャッシュを設けてCPU内に配置している。
そして、コンピュータにおける演算部や命令制御部は、メモリアクセスする際に、TLBにて仮想アドレスを物理アドレスに変換し、物理アドレスを用いて直接メモリに対してアクセスするため、TLBのアクセスの速さがそのままメモリアクセスの速さに影響する。TLBのアクセスを早くするためには、TLBの容量を小さくする必要があるが、あまり小さいとTLBミスが多発し、アクセス時間を大きくしてしまう。一方、TLBの容量を大きくした場合、検索にかかる時間は大きくなり、それがハードウエアの性能向上を阻害する原因になる。そこで、アクセス時間を短縮するとともに、ハードウエアの性能を向上させる手法として、TLBを2階層で構成する手法が多く用いられる。
2階層のTLBは、主記憶から転送されたアドレス変換対を大容量で保持しているMTLB(メインTLB)と、過去に検索されたアドレス変換情報を保持している小容量のμTLB(マイクロTLB)とから構成される。マイクロTLBでは、アドレス変換を行う場合に、リクエスト要求の仮想アドレスとコンテキストビットと、TLBに登録されているTLB仮想アドレスとTLBコンテキストビットとページサイズ情報とを用いてアドレス変換対(エントリ)の検索を行い、有効なエントリとマッチすれば絶対アドレスに変換する。
TLBに登録されるエントリのページサイズは、8K、64K、512K、4M、32M、256Mバイトの6種類がある。また、ページサイズによって、仮想アドレスのページオフセットがあるので、マイクロTLBは、アドレス変換を行う場合に、要求されたエントリのページサイズから比較する仮想アドレスのオフセットアドレスをそれぞれ判断して除外し、有効な仮想アドレスのみでアドレス変換検索を行う(特許文献1参照)。
特開平5−225064号公報
しかしながら、上記した従来の技術は、アドレス比較条件が多いため、処理性能が低下するという課題があった。この課題を具体的に説明すると、図7に示すように、CPUの演算部や命令制御部からマイクロTLBに対して出力される検索要求には、仮想アドレスとともにページサイズに応じたオフセットが付加されている。そして、マイクロTLBは、入力された検索要求からオフセットを算出して検索要求から取り除いた仮想アドレスと、登録されている仮想アドレスとを比較して、一致する場合に、絶対アドレスを応答する。ここで、ページサイズに応じて付加されるオフセットが異なるため、マイクロTLBは、図8に示すように、入力された検索要求のページサイズを検出してオフセットを取り除き、算出した仮想アドレスを比較する比較回路を、それぞれのページサイズごとに保持する。その結果、マイクロTLBは、入力された検索要求に対して、アドレス比較条件が多くなり処理性能が低下する。なお、図7は、従来技術を説明するための図であり、図8は、従来技術におけるアドレス変換対検索回路の例を示す図である。
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、アドレス比較条件を削減し、処理性能を向上させることが可能である演算処理装置、情報処理装置及び演算処理装置の制御方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明は、仮想アドレスと絶対アドレスとの対応を示すアドレス変換対をページサイズ毎に複数記憶する主記憶装置に接続する演算処理装置において、前記主記憶装置が記憶する複数のアドレス変換対の一部を保持する第1のアドレス変換バッファと、前記第1のアドレス変換バッファが保持する複数のアドレス変換対の一部を保持する第2のアドレス変換バッファと、前記第1のアドレス変換バッファから読み出された第1のアドレス変換対のページサイズを検出するページサイズ検出部と、前記第1のアドレス変換バッファから読み出された第1のアドレス変換対に含まれる第1の絶対アドレスを、前記第1のアドレス変換対のページサイズ以下である第1の所定ページサイズの絶対アドレスに変換する場合、前記第1の所定ページサイズの絶対アドレスのビット幅にまで前記変換対象の第1の絶対アドレスを拡張するのに必要な付加アドレスの範囲を決定する付加アドレス決定部と、前記読み出された第1のアドレス変換対に含まれる第1の仮想アドレスにおいて前記付加アドレス決定部が決定した付加アドレスの範囲に対応する部分アドレスを、前記第1の絶対アドレスに付加することにより前記第1の絶対アドレスを前記第1の所定ページサイズの第1の変換絶対アドレスに変換するとともに、前記第1の仮想アドレスと前記第1の変換絶対アドレスを含む第1の変換アドレス変換対を、前記第2のアドレス変換バッファに登録する登録部を有する
また、本発明は、仮想アドレスと絶対アドレスとの対応を示すアドレス変換対をページサイズ毎に複数記憶する主記憶装置と、前記主記憶装置に接続する演算処理装置を有する情報処理装置において、前記演算処理装置は、前記主記憶装置が記憶する複数のアドレス変換対の一部を保持する第1のアドレス変換バッファと、前記第1のアドレス変換バッファが保持する複数のアドレス変換対の一部を保持する第2のアドレス変換バッファと、前記第1のアドレス変換バッファから読み出された第1のアドレス変換対のページサイズを検出するページサイズ検出部と、前記第1のアドレス変換バッファから読み出された第1のアドレス変換対に含まれる第1の絶対アドレスを、前記第1のアドレス変換対のページサイズ以下である第1の所定ページサイズの絶対アドレスに変換する場合、前記第1の所定ページサイズの絶対アドレスのビット幅にまで前記変換対象の第1の絶対アドレスを拡張するのに必要な付加アドレスの範囲を決定する付加アドレス決定部と、前記読み出された第1のアドレス変換対に含まれる第1の仮想アドレスにおいて前記付加アドレス決定部が決定した付加アドレスの範囲に対応する部分アドレスを、前記第1の絶対アドレスに付加することにより前記第1の絶対アドレスを前記第1の所定ページサイズの第1の変換絶対アドレスに変換するとともに、前記第1の仮想アドレスと前記第1の変換絶対アドレスを含む第1の変換アドレス変換対を、前記第2のアドレス変換バッファに登録する登録部を有する
また、本発明は、仮想アドレスと絶対アドレスとの対応を示すアドレス変換対をページサイズ毎に複数記憶する主記憶装置に接続する演算処理装置の制御方法において、前記演算処理装置が有するページサイズ検出部が、前記主記憶装置が記憶する複数のアドレス変換対の一部を保持する第1のアドレス変換バッファから読み出された第1のアドレス変換対のページサイズを検出するステップと、前記演算処理装置が有する付加アドレス決定部が、前記第1のアドレス変換バッファから読み出された第1のアドレス変換対に含まれる第1の絶対アドレスを、前記第1のアドレス変換対のページサイズ以下である第1の所定ページサイズの絶対アドレスに変換する場合、前記第1の所定ページサイズの絶対アドレスのビット幅にまで前記変換対象の第1の絶対アドレスを拡張するのに必要な付加アドレスの範囲を決定するステップと、前記演算処理装置が有する登録部が、前記読み出された第1のアドレス変換対に含まれる第1の仮想アドレスにおいて前記付加アドレス決定部が決定した付加アドレスの範囲に対応する部分アドレスを、前記第1の絶対アドレスに付加することにより前記第1の絶対アドレスを前記第1の所定ページサイズの第1の変換絶対アドレスに変換するとともに、前記第1の仮想アドレスと前記第1の変換絶対アドレスを含む第1の変換アドレス変換対を、前記第1のアドレス変換バッファが保持する複数のアドレス変換対の一部を保持する第2のアドレス変換バッファに登録するステップを有する
本発明によれば、アドレス比較条件を削減し、処理性能を向上させることが可能である。
例えば、マイクロTLBには、所定のページサイズのアドレス変換対しか登録されていないため、所定のページサイズにあわせて仮想アドレスを検索すればよく、様々なページサイズが登録されている場合に比べて、アドレス比較条件を削減し、処理性能を向上させることが可能である。
図1は、実施例1に係る計算機の概要と特徴を説明するための図である。 図2は、実施例1に係る計算機の構成を示すブロック図である。 図3は、チョップ前後の絶対アドレスを示す図である。 図4は、実施例1に係る計算機におけるマイクロTLBの回路構成を説明するための図である。 図5は、実施例1に係る計算機におけるマイクロTLBのアドレス変換対登録処理の流れを示すフローチャートである。 図6は、実施例1に係る計算機におけるマイクロTLBのアドレス変換対検索処理の流れを示すフローチャートである。 図7は、従来技術を説明するための図である。 図8は、従来技術におけるアドレス変換対検索回路の例を示す図である。
符号の説明
10 計算機
11 CPU
11a 演算部/命令制御部
20 L1キャッシュ制御部
21 L1キャッシュRAM
22 メインTLB
23 マイクロTLB
24 記憶部
25 ページサイズ検出部
26 ビット数決定部
27 登録部
28 アドレス検索部
29 アドレス応答部
30 L2キャッシュ制御部
31 L2キャッシュRAM
40 主記憶部(メモリ)
以下に添付図面を参照して、この発明に係る計算機、TLB制御方法およびTLB制御プログラムの実施例を詳細に説明する。なお、以下では、本実施例に係る計算機(演算処理装置)の概要および特徴、計算機の構成および処理の流れを順に説明し、最後に本実施例に対する種々の変形例を説明する。
[計算機の概要および特徴]
まず最初に、図1を用いて、実施例1に係る計算機の概要および特徴を説明する。図1は、実施例1に係る計算機の概要と特徴を説明するための図である。
図1に示すように、この計算機は、仮想アドレスと絶対アドレスとの対応を示す複数のアドレス変換対をページテーブルとして保持するメインTLBと、メインTLBに保持されるページテーブルの一部を保持するマイクロTLBとを備える。また、マイクロTLBには、TLB仮想アドレス[63:13]とTLB絶対アドレス[46:13]とが対応付けて登録されている。
ここで、メインTLBとマイクロTLBの基本的な動作を説明する。例えば、計算機は、CPUの演算部や命令制御部などから仮想アドレスから物理アドレスへの変換を要求するアドレス変換要求が出力されると、当該アドレス変換要求をマイクロTLBに入力する。すると、計算機は、マイクロTLBに保持されるエントリのページサイズから、検索対象となる仮想アドレスの範囲を決定し、決定したアドレス変換要求に含まれる仮想アドレスの範囲の値が、マイクロTLBに保持されるアドレス変換対と一致するか否かを判定する。そして、計算機は、マイクロTLBに保持されるアドレス変換対と一致すると判定した場合(マイクロTLBヒット)には、対応する絶対アドレスを演算部や命令制御部に応答し、一致しないと判定した場合(マイクロTLBミス)には、当該アドレス変換要求をメインTLBに出力する。
そして、計算機は、アドレス変換要求をメインTLBに入力すると、マイクロTLBと同様に、メインTLBに保持されるアドレス変換対を検索して、一致するエントリがある場合には、対応するアドレス変換対を読み出してマイクロTLBに出力する。また、計算機は、一致するアドレス変換対がメインTLBに保持されていない場合には、主記憶部(メインメモリ)に対してアドレス変換要求を出力し、主記憶部は、アドレス変換要求に対応する対応する絶対アドレスをメインTLBに応答する。なお、アドレス変換対とは、仮想アドレスと物理アドレスとを対応付ける対応表のことであり、メインTLBまたはマイクロTLBは、仮想アドレスを含むアドレス変換要求が入力された場合に、この仮想アドレスに対応する物理アドレスを保持するアドレス変換対から検索する。
このような状態において、上記したように、この計算機は、演算部や命令制御部などからのアドレス変換要求に対して、メインTLB、マイクロTLBまたは主記憶部に保持される絶対アドレスを応答することを概要とするものであり、特に、アドレス比較条件を削減し、処理性能を向上させることが可能である点に主たる特徴がある。
この主たる特徴を具体的に説明すると、計算機は、メインTLBに保持されているアドレス変換対が読み出されてマイクロTLBに登録される際に、読み出されたアドレス変換対のページサイズを検出する(図1の(1)参照)。具体的に例を挙げれば、計算機は、CPUの演算部や命令制御部などからアドレス変換要求が出力されると、当該アドレス変換要求をマイクロTLBに入力する。そして、計算機は、マイクロTLBミスが発生すると、当該アドレス変換要求をメインTLBに出力して、メインTLBから物理アドレスを応答する。ここで、計算機は、メインTLBに保持されるアドレス変換対からアドレス変換要求に対する当該アドレス変換対をマイクロTLBに出力する。すると、計算機は、メインTLBから出力されたアドレス変換対のページサイズが8K、64K、512K、4M、32M、256Mバイトのいずれであるかを検出する。
続いて、計算機は、検出されたページサイズに応じて、読み出されたアドレス変換対を所定のページサイズにチョップし、チョップしたアドレス変換対に含まれる絶対アドレスに付加する仮想アドレスのビットを決定する(図1の(2)参照)。具体的に例を挙げれば、計算機は、メインTLBから64K(または、512K)のページサイズが読み出されてページサイズが検出されると、読み出されたアドレス変換対を8Kのページサイズにチョップする、つまり、アドレス変換対検索に必要としないオフセットアドレスを削除する。そして、計算機は、8Kにチョップした元のサイズが64Kのアドレス変換対に含まれる絶対アドレスに付加する仮想アドレスのビットを15ビットから13ビットと決定する。
そして、計算機は、決定されたビットに対しての仮想アドレスを付加するとともに、所定のページサイズにチョップしたことを示すチョップ情報をチョップしたアドレス変換対に付加してマイクロTLBに登録する(図1の(3)参照)。上記した例で具体的に説明すると、計算機は、決定された15ビットから13ビットに対して、メインTLBに保持される仮想アドレス(TLB仮想アドレス)を付加するとともに、64Kのページサイズを8Kにチョップしたことを示すチョップ情報を、チョップした8Kのアドレス変換対に付加してマイクロTLBに登録する。
同様に、計算機は、メインTLBからマイクロTLBに対してアドレス変換対が出力されると、メインTLBから出力されたアドレス変換対のページサイズが256Mバイトであると検出する(図1の(4)参照)。続いて、計算機は、メインTLBから256M(または、32M)のページサイズが読み出されてページサイズが検出されると、読み出されたアドレス変換対を4Mのページサイズにチョップして、4Mにチョップしたアドレス変換対に含まれる絶対アドレスに付加する仮想アドレスのビットを27ビットから22ビットと決定する(図1の(5)参照)。そして、計算機は、決定された27ビットから22ビットに対して、メインTLBに保持されるTLB仮想アドレスを付加するとともに、256Mのページサイズを4Mにチョップしたことを示すチョップ情報を、チョップした4Mのアドレス変換対に付加してマイクロTLBに登録する(図1の(6)参照)。
こうすることで、マイクロTLBには、8Kまたは4Mのいずれかのページサイズのアドレス変換対が登録されることとなる。このような状態において、プロセッサの演算部や命令制御部からアドレス変換要求を受信すると、計算機は、仮想アドレスから物理アドレスへのアドレス変換要求をプロセッサから受信した場合に、マイクロTLBに登録されたアドレス変換対のページサイズから、マイクロTLBに登録されているアドレス変換対を検索するアドレス変換要求の検索対象ビットを決定して、決定された検索対象ビットによって示される仮想アドレスとアドレス変換要求に含まれるコンテキストとが対応付けて登録されているアドレス変換対をマイクロTLBから検索する(図1の(7)参照)。
続いて、計算機は、検索対象ビットによって示される仮想アドレスとアドレス変換要求に含まれるコンテキストとが対応付けて登録されているアドレス変換対がマイクロTLBから検索された場合に、当該アドレス変換対から絶対アドレスを算出してプロセッサに応答し、アドレス変換対が検索されなかった場合に、アドレス変換要求をメインTLBに送信する(図1の(8)参照)。
上記した例で具体的に説明すると、演算部や命令制御部からアドレス変換要求を受信すると、計算機は、マイクロTLBに記憶される4Mのページサイズである場合の仮想アドレスの検索対象ビットである[63:22]を、当該アドレス変換要求の検索対象ビットとする。そして、計算機は、アドレス変換要求の検索対象ビット[63:22]とコンテキスト[12:0]とに一致するアドレス変換対をマイクロTLBから検索する。そして、一致するアドレス変換対が検索されると、計算機は、当該アドレス変換対に含まれるチョップ情報を参照する。このチョップ情報が4Mである場合、計算機は、検索されたアドレス変換対の絶対アドレス[46:22]を取得して演算部や命令制御部に応答する。例えば、検索されたアドレス変換対が元は32Mのページサイズであった場合、検索されたアドレス変換対の絶対アドレス[46:22]には、仮想アドレス[24:22]が含まれている。そのため、計算機は、取得したアドレス変換対の絶対アドレス[46:22]と、絶対アドレスに含まれる仮想アドレス[24:22]とから正確な絶対アドレスを算出して演算部や命令制御部に応答する。
また、参照したチョップ情報が8Kである場合、計算機は、検索されたアドレス変換対の絶対アドレス[46:13]を取得して演算部や命令制御部に応答する。例えば、検索されたアドレス変換対が元は64Kのページサイズであった場合、検索されたアドレス変換対の絶対アドレス[46:13]には、仮想アドレス[18:13]が含まれている。そのため、計算機は、取得したアドレス変換対の絶対アドレス[46:13]と、絶対アドレスに含まれる仮想アドレス[18:13]とから正確な絶対アドレスを算出して演算部や命令制御部に応答する。
ここで、チョップしたアドレス変換対に仮想アドレスを付加して登録することについて詳細に説明する。例えば、メインTLBから64Kのページサイズのアドレス変換対がマイクロTLBに出力されると、計算機は、この64Kのアドレス変換対を8Kにチョップする。ところが、64Kのアドレス変換対の絶対アドレスは[46:16]、オフセットアドレスが [15:13]であり、8Kのアドレス変換対の絶対アドレスは[46:13]、オフセットアドレスは存在しない。そのため、64Kのページサイズのアドレス変換対を8KにチョップしてマイクロTLBに登録した場合、計算機は、正確な絶対アドレスを応答することができない。つまり、マイクロTLBに登録される8Kのページサイズのアドレス変換対の絶対アドレスは[46:13]であり、64Kのアドレス変換対の絶対アドレスは[46:16]であるため、[15:13]分が不足することになる。そのため、この不足するビット数[15:13]にTLB仮想アドレスを付加することで、絶対アドレスのビット数を補う。
同様に、メインTLBから256Mのページサイズのアドレス変換対がマイクロTLBに出力されると、計算機は、この256Mのアドレス変換対を4Mにチョップする。ところが、256Mのアドレス変換対の絶対アドレスは[46:28]、オフセットアドレスが [27:13]であり、4Mのアドレス変換対の絶対アドレスは[46:22]、オフセットアドレス[21:13]である。そのため、256Mのページサイズのアドレス変換対を4MにチョップしてマイクロTLBに登録した場合、計算機は、正確な絶対アドレスを応答することができない。つまり、マイクロTLBに登録される4Mのページサイズのアドレス変換対の絶対アドレスは[46:22]であり、256Mのアドレス変換対の絶対アドレスは[46:28]であるため、[27:22]分が不足することになる。そのため、この不足するビット数[27:22]にTLB仮想アドレスを付加することで、絶対アドレスのビット数を補う。
このように、8K、64K、512Kのページサイズは、全て8Kにチョップされ、4M、32M、256Mのページサイズは、全て4MにチョップされてマイクロTLBに登録されることより、マイクロTLBには、8Kまたは4Mのアドレス変換対しか登録されていない。このような状態において、仮想アドレス[63:13]とコンテキスト[12:0]とを含むアドレス変換要求を受信すると、計算機は、まず、4Mのページサイズの仮想アドレス[63:22]とコンテキスト[12:0]とに一致するアドレス変換対をマイクロTLBから検索する。そして、仮想アドレス[63:22]とコンテキスト[12:0]とに一致するアドレス変換対が検索されると、計算機は、当該アドレス変換対のチョップ情報を参照して、このアドレス変換対が8Kか4Mであるかを判定する。
ここで、4Mと判定された場合には、計算機は、仮想アドレス[63:22]とコンテキスト[12:0]とに一致をもって絶対アドレスを応答するが、8Kと判定された場合には、仮想アドレス[21:13]がさらに一致するか否かを判定する。このように、従来であれば、8K、64K、512K、4M、32M、256Mバイトのページサイズそれぞれに応じて検索する仮想アドレスのビット位置が異なるため、それぞれのページサイズに応じた検索を行う必要があったが、本発明は、8Kか4Mかのどちらかのページサイズに応じて検索すればよい。
このように、実施例1に係る計算機は、メインTLBから出力されたアドレス変換対をマイクロTLBに登録する際に、8Kまたは4Mのページサイズにチョップして登録することができる結果、上記した主たる特徴のごとく、アドレス比較条件を削減し、処理性能を向上させることが可能である。
[計算機の構成]
次に、図2を用いて、図1に示した計算機の構成を説明する。図2は、実施例1に係る計算機の構成を示すブロック図である。図2に示すように、この計算機10は、CPU11に含まれる演算部/命令制御部11a、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キャッシュRAM21と、メインTLB22と、マイクロTLB23とを備える。
L1キャッシュRAM21は、CPU11と同じモジュールに集積または実装されている高速で少容量なメモリであり、使用頻度の高いデータを記憶することで、CPU11によって実行される命令とデータを一時的に保持するために使われ、主記憶部40が新しいデータの供給に追いつく間、一定量のデータを供給してCPU11が処理を続行できるようにする。
メインTLB22は、主記憶上に配置される仮想アドレスと物理アドレスとの対応を示す複数のアドレス変換対をページテーブルとして保持する。具体的に例を挙げれば、演算部/命令制御部11aによってマイクロTLB23にアドレス変換要求が送信されて、TLBミスが発生すると、メインTLB22は、マイクロTLB23からアドレス変換要求を受け付けて、当該アドレス変換要求に対して物理アドレスを応答する。また、メインTLB22は、マイクロTLB23からアドレス変換要求に対応する物理アドレスを保持していない場合、当該アドレス変換要求を主記憶部40に出力する。
マイクロTLB23は、メインTLBに保持されるページテーブルの一部を保持するとともに、特に本発明に密接に関連するものとしては、記憶部24と、ページサイズ検出部25と、ビット数決定部26と、登録部27と、アドレス検索部28と、アドレス応答部29とを備える。
記憶部24は、後述する登録部27によって登録されたメインTLB22に保持される物理アドレスと、当該物理アドレスに関連付けられた仮想アドレスと、実効コンテキストトIDとを対応付けてエントリとして記憶する。具体的に例を挙げれば、記憶部24は、仮想アドレス[63:13]とコンテキスト[12:0]とから構成されるTAG部と、物理アドレス[46:13]とattributes[12:0]とから構成されるデータ部とを対応付けて記憶する。
ページサイズ検出部25は、メインTLB22に保持されているアドレス変換対が読み出されてマイクロTLBに登録する際に、読み出されたアドレス変換対のページサイズを検出する。具体的に例を挙げれば、マイクロTLBミスが発生して、メインTLB22から出力されたアドレス変換対を受け取ると、ページサイズ検出部25は、受け取ったアドレス変換対のページサイズが8K、64K、512K、4M、32M、256Mバイトのいずれであるかを検出する。
ビット数決定部26は、ページサイズ検出部25より検出されたページサイズに応じて、メインTLB22から読み出されたアドレス変換対を所定のページサイズにチョップし、チョップしたアドレス変換対に含まれる絶対アドレスに付加する仮想アドレスのビット数を決定する。具体的に例を挙げれば、ビット数決定部26は、メインTLB22から読み出されたアドレス変換対のページサイズが8Kであった場合には、チョップすることなく後述する登録部27に通知し、64Kであった場合は、8Kにチョップして付加する仮想アドレスのビット数を[15:13]と決定し、512Kであった場合には、8Kにチョップして付加する仮想アドレスのビット数を[18:13]と決定して登録部27に通知する。
また、ビット数決定部26は、メインTLB22から読み出されたアドレス変換対のページサイズが4Mであった場合には、チョップすることなく後述する登録部27に通知し、32Mであった場合は、4Mにチョップして付加する仮想アドレスのビット数を[24:22]と決定し、256Mであった場合には、4Mにチョップして付加する仮想アドレスのビット数を[27:22]と決定して登録部27に通知する。
登録部27は、ビット数決定部26により決定されたビット数に対して仮想アドレスを付加するとともに、所定のページサイズにチョップしたことを示すチョップ情報をチョップしたアドレス変換対に付加してマイクロTLB23に登録する。具体的に例を挙げれば、登録部27は、図3に示すように、64Kが8Kにチョップされてビット数決定部26により付加する仮想アドレスのビット数が[15:13]と決定された場合、[15:13]に仮想アドレスを付加し、512Kが8Kにチョップされてビット数決定部26により付加する仮想アドレスのビット数が[18:13]と決定された場合、[18:13]に仮想アドレスを付加し、32Mが4Mにチョップされてビット数決定部26により付加する仮想アドレスのビット数が[24:22]と決定された場合、[24:22]に仮想アドレスを付加し、256Mが4Mにチョップされてビット数決定部26により付加する仮想アドレスのビット数が[27:22]と決定された場合、[27:22]に仮想アドレスを付加して記憶部24に登録する。なお、図3は、チョップ前後の絶対アドレスを示す図である。
アドレス検索部28は、仮想アドレスから物理アドレスへのアドレス変換要求をプロセッサから受信した場合に、マイクロTLB23の記憶部24に登録されたアドレス変換対のチョップ情報から、マイクロTLB23の記憶部24に登録されているアドレス変換対を検索するアドレス変換要求の検索対象ビットを決定して、決定された検索対象ビットによって示される仮想アドレスとアドレス変換要求に含まれるコンテキストとが対応付けて登録されているアドレス変換対をマイクロTLB23の記憶部24から検索する。
具体的に例を挙げれば、アドレス検索部28は、プロセッサ(CPU)の演算部/命令制御部11aからアドレス変換要求が入力されると、アドレス検索部28は、当該アドレス変換要求に含まれる仮想アドレス[63:13]のうち[63:22]とコンテキスト[12:0]とに一致するアドレス変換対を記憶部24から検索する。そして、一致するアドレス変換対が検索されると、アドレス検索部28は、検索されたアドレス変換対のチョップ情報が「8K」か「4M」であるかを判定する。
そして、アドレス検索部28は、チョップ情報が「4M」であった場合、アドレス変換要求に対応するアドレス変換対が検索されたことを後述するアドレス応答部29に通知し、チョップ情報が「8K」であった場合、当該アドレス変換要求に含まれる仮想アドレス[63:13]のうち、先に検索した[63:22]以外の[21:13]に記憶される仮想アドレスと、当該検索されたアドレス変換対の仮想アドレス[21:13]とが一致するか否かを判定する。そして、アドレス検索部28は、先に検索した[63:22]以外の[21:13]に記憶される仮想アドレスと、当該検索されたアドレス変換対の仮想アドレス[21:13]とが一致する場合、アドレス変換要求に対応するアドレス変換対が検索されたことを後述するアドレス応答部29に通知し、一致しない場合、TLBミスをアドレス応答部29に通知する。
アドレス応答部29は、アドレス検索部28によって検索対象ビットによって示される仮想アドレスとアドレス変換要求に含まれるコンテキストとが対応付けて登録されているアドレス変換対がマイクロTLBから検索された場合に、当該アドレス変換対から絶対アドレスを算出してプロセッサに応答し、アドレス変換対が検索されなかった場合に、アドレス変換要求をメインTLB22に送信する。
具体的に例を挙げて説明すると、アドレス応答部29は、アドレス変換要求に対応するアドレス変換対が検索されたことを通知されると、通知されたアドレス変換対のチョップ情報を参照し、チョップ情報が「8K」であれば、アドレス変換対の絶対アドレス[46:13]を取得し、チョップ情報が「4M」であれば、アドレス変換対の絶対アドレス[46:22]を取得して、取得した絶対アドレスとこの絶対アドレスに含まれる仮想アドレスとから、正確な絶対アドレスを算出して演算部/命令制御部11aに応答する。
一方、アドレス変換要求に対応するアドレス変換対が検索されなかったこと(マイクロTLBミス)を通知されると、アドレス応答部29は、アドレス変換要求をメインTLBに送信する。
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に示すTLB仮想アドレスとTLBコンテキストとは、それぞれTLBに登録されている仮想アドレスとコンテキストとを示しており、アクセス仮想アドレスとアクセスコンテキストとは、演算部/命令制御部11aから出力されたアドレス変換要求に含まれている仮想アドレスとコンテキストとを示している。
図4に示すように、このマイクロTLB23には、8Kと4Mとのページサイズで共通の仮想アドレス領域であるアクセス仮想アドレス[63:22]とTLB仮想アドレス[63:22]とを比較する回路と、8Kのページサイズであった場合の仮想アドレス領域であるアクセス仮想アドレス[21:13]とTLB仮想アドレス[21:13]とを比較する回路と、アクセスコンテキスト[12:0]とTLBコンテキスト[12:0]とを比較する回路と、エントリが有効であるか無効であるかを入力するEntry_validとから構成される。
そして、アクセス仮想アドレス[21:13]とTLB仮想アドレス[21:13]とを比較する回路には、ページサイズが4Mであるか否かを入力する回路が接続されており、4Mであった場合には、この回路は実行されない。そして、アクセス仮想アドレス[63:22]とTLB仮想アドレス[63:22]とが一致し、アクセス仮想アドレス[21:13]とTLB仮想アドレス[21:13]と一致し(8Kの場合のみ有効)、アクセスコンテキスト[12:0]とTLBコンテキスト[12:0]とが一致し、さらに一致したアドレス変換対が「有効」である場合に、マイクロTLB23には、絶対アドレスを取得して演算部/命令制御部11aに応答する。このように、図8に示した従来技術の比較回路と比較してもわかるように、本発明では、比較回路を大幅に削減することができる。
[計算機による処理]
次に、図5と図6とを用いて、計算機による処理を説明する。図5は、実施例1に係る計算機におけるマイクロTLBへのアドレス変換対登録処理の流れを示すフローチャートであり、図6は、実施例1に係る計算機におけるマイクロTLBのアドレス変換対検索処理の流れを示すフローチャートである。
(エントリ登録処理)
図5に示すように、演算部/命令制御部11aから入力されたアドレス変換要求に対してマイクロTLBミスが発生して、メインTLB22からアドレス変換要求の応答が、マイクロTLB23にアドレス変換対が送信されると(ステップS501肯定)、ページサイズ検出部25は、読み出されたアドレス変換対のページサイズを検出する(ステップS502)。
そして、検出されたページサイズが8K、64Kまたは512Kであった場合(ステップS503肯定)、ビット数決定部26は、アドレス変換対を8Kにチョップし(ステップS504)、チョップしたアドレス変換対に含まれる絶対アドレスに付加する仮想アドレスのビット数を決定し、登録部27は、ビット数決定部26によって決定されたビット数分の仮想アドレスと、チョップ情報とをアドレス変換対に付加して、マイクロTLB23の記憶部24に登録する(ステップS506)。
一方、検出されたページサイズが8K、64Kまたは512Kでない場合、つまり、検出されたページサイズが4M、32Mまたは256Mである場合(ステップS503否定)、ビット数決定部26は、アドレス変換対を4Mにチョップし、チョップしたアドレス変換対に含まれる絶対アドレスに付加する仮想アドレスのビット数を決定し、登録部27は、ビット数決定部26によって決定されたビット数分の仮想アドレスと、チョップ情報とをアドレス変換対に付加して、マイクロTLB23の記憶部24に登録する(ステップS506)。
(エントリ検索処理)
図6に示すように、演算部/命令制御部11aからアドレス変換要求を受信すると(ステップS601肯定)、マイクロTLB23のアドレス検索部28は、アドレス変換要求に含まれる仮想アドレス[63:13]のうち[63:22]とコンテキスト[12:0]とに一致するアドレス変換対を記憶部24から検索する(ステップS602)。
そして、一致するアドレス変換対が検索されると(ステップS603肯定)、アドレス検索部28は、検索されたアドレス変換対のチョップ情報が8Kであるか否かを判定する(ステップS604)。
検索されたアドレス変換対のチョップ情報が8Kである場合(ステップS604肯定)、アドレス応答部29は、アドレス変換要求に含まれる仮想アドレス[63:13]の残りのビット数[21:13]と、検索されたアドレス変換対の仮想アドレス[21:13]とが一致するか否かを判定する(ステップS605)。
仮想アドレス[21:13]が一致した場合(ステップS605肯定)、アドレス応答部29は、検索されたアドレス変換対から絶対アドレス[46:13]を取得して、絶対アドレスを算出して演算部/命令制御部11aに応答する(ステップS606)。
ステップS604に戻り、検索されたアドレス変換対のチョップ情報が8Kでない場合、つまり、4Mである場合(ステップS604否定)、アドレス応答部29は、検索されたアドレス変換対から絶対アドレス[46:22]を取得して、絶対アドレスを算出して演算部/命令制御部11aに応答する(ステップS607)。
一方、一致するアドレス変換対が検索されなかった場合(ステップS603否定)または仮想アドレス[21:13]が一致しない場合(ステップS605否定)、アドレス応答部29は、マイクロTLBミスとしてアドレス変換要求をメインTLB22に送信する(ステップS608)。
[実施例1による効果]
このように、実施例1によれば、メインTLB22に保持されているアドレス変換対が読み出されてマイクロTLB23に登録する際に、読み出されたアドレス変換対のページサイズを検出し、検出されたページサイズに応じて、読み出されたアドレス変換対を所定のページサイズにチョップし、チョップしたアドレス変換対に含まれる絶対アドレスに付加する仮想アドレスのビット数を決定し、決定されたビット数に対して仮想アドレスを付加するとともに、所定のページサイズにチョップしたことを示すチョップ情報をチョップしたアドレス変換対に付加してマイクロTLB23に登録し、仮想アドレスから物理アドレスへのアドレス変換要求をプロセッサ(CPU)から受信した場合に、マイクロTLB23に登録されたアドレス変換対のチョップ情報から、マイクロTLB23に登録されているアドレス変換対を検索するアドレス変換要求の検索対象ビットを決定して、決定された検索対象ビットによって示される仮想アドレスとアドレス変換要求に含まれるコンテキストとが対応付けて登録されているアドレス変換対をマイクロTLB23から検索し、検索対象ビットによって示される仮想アドレスとアドレス変換要求に含まれるコンテキストとが対応付けて登録されているアドレス変換対がマイクロTLB23から検索された場合に、当該アドレス変換対から絶対アドレスを算出してプロセッサに応答し、アドレス変換対が検索されなかった場合に、アドレス変換要求をメインTLB22に送信するので、アドレス比較条件を削減し、処理性能を向上させることが可能である。
例えば、マイクロTLB23には、所定のページサイズのアドレス変換対しか登録されていないため、所定のページサイズにあわせて仮想アドレスを検索すればよく、様々なページサイズが登録されている場合に比べて、アドレス比較条件を削減し、処理性能を向上させることが可能である。
また、実施例1によれば、読み出されたアドレス変換対のページサイズが8K、64K、512K、4M、32M、256Mバイトのいずれであるかを検出し、読み出されたアドレス変換対のページサイズが64Kと検出された場合に、読み出されたアドレス変換対を8Kバイトにチョップし、チョップしたアドレス変換対に含まれる絶対アドレスに付加する仮想アドレスのビット数を15ビットから13ビットと決定し、読み出されたアドレス変換対のページサイズが512Kと検出された場合に、読み出されたアドレス変換対を8Kバイトにチョップし、チョップしたアドレス変換対に含まれる絶対アドレスに付加する仮想アドレスのビット数を18ビットから13ビットと決定し、読み出されたアドレス変換対のページサイズが32Mと検出された場合に、読み出されたアドレス変換対を4Mバイトにチョップし、チョップしたアドレス変換対に含まれる絶対アドレスに付加する仮想アドレスのビット数を24ビットから22ビットと決定し、読み出されたアドレス変換対のページサイズが256Mと検出された場合に、読み出されたアドレス変換対を4Mバイトにチョップし、チョップしたアドレス変換対に含まれる絶対アドレスに付加する仮想アドレスのビット数を27ビットから22ビットと決定し、読み出されたアドレス変換対のページサイズが8Kまたは4Mと検出された場合に、読み出されたアドレス変換対をチョップすることなく、チョップしたアドレス変換対に含まれる絶対アドレスに付加する仮想アドレスのビット数を0ビットと決定し、アドレス変換要求をプロセッサから受信した場合に、マイクロTLB23に登録されたアドレス変換対のチョップ情報から、8Kまたは4Mに対応したアドレス変換要求の検索対象ビットを決定して、決定された検索対象ビットによって示される仮想アドレスとアドレス変換要求に含まれるコンテキストとが対応付けて登録されているアドレス変換対をマイクロTLB23から検索するので、アドレス比較条件を削減し、処理性能を向上させることが可能である。
例えば、アドレス変換対のページサイズが8K、64K、512Kバイトであれば8Kにチョップし、4M、32M、256Mバイトであれば4Mにチョップして、マイクロTLB23に登録することにより、マイクロTLB23には、8Kまたは4Mのページサイズのアドレス変換対しか記憶されないこととなる。そのため、マイクロTLB23は、アドレス変換要求を受信したとすると、ページサイズが4Mである場合の仮想アドレス[63:22]か、ページサイズが8Kである場合の仮想アドレス[63:13]かのいずれか2パターンで、マイクロTLB23に保持されるアドレス変換対を検索すればよいので、アドレス比較条件を削減し、処理性能を向上させることが可能である。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に示すように、システム構成等について異なる実施例を説明する。
(1)システム構成等
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理(例えば、主記憶部からの物理アドレスを含むアドレス変換対(エントリ)の出力処理など)の全部または一部を手動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合(例えば、ページサイズ検出部とビット数決定部とを統合するなど)して構成することができる。
以上のように、本発明に係る計算機、TLB制御方法およびTLB制御プログラムは、仮想アドレスと絶対アドレスとの対応を示す複数のアドレス変換対をページテーブルとして保持するメインTLBと、メインTLBに保持されるページテーブルの一部を保持するマイクロTLBとを備える計算機に有用であり、特に、アドレス比較条件を削減し、処理性能を向上させることに適する。

Claims (12)

  1. 仮想アドレスと絶対アドレスとの対応を示すアドレス変換対をページサイズ毎に複数記憶する主記憶装置に接続する演算処理装置において、
    前記主記憶装置が記憶する複数のアドレス変換対の一部を保持する第1のアドレス変換バッファと、
    前記第1のアドレス変換バッファが保持する複数のアドレス変換対の一部を保持する第2のアドレス変換バッファと、
    前記第1のアドレス変換バッファから読み出された第1のアドレス変換対のページサイズを検出するページサイズ検出部と、
    前記第1のアドレス変換バッファから読み出された第1のアドレス変換対に含まれる第1の絶対アドレスを、前記第1のアドレス変換対のページサイズ以下である第1の所定ページサイズの絶対アドレスに変換する場合、前記第1の所定ページサイズの絶対アドレスのビット幅にまで前記変換対象の第1の絶対アドレスを拡張するのに必要な付加アドレスの範囲を決定する付加アドレス決定部と、
    前記読み出された第1のアドレス変換対に含まれる第1の仮想アドレスにおいて前記付加アドレス決定部が決定した付加アドレスの範囲に対応する部分アドレスを、前記第1の絶対アドレスに付加することにより前記第1の絶対アドレスを前記第1の所定ページサイズの第1の変換絶対アドレスに変換するとともに、前記第1の仮想アドレスと前記第1の変換絶対アドレスを含む第1の変換アドレス変換対を、前記第2のアドレス変換バッファに登録する登録部を有することを特徴とする演算処理装置。
  2. 前記演算処理装置において、
    前記登録部は、前記付加アドレス決定部が決定した付加アドレスの範囲に対応する部分アドレスを、前記第1の絶対アドレスに付加することにより前記第1の絶対アドレスを前記第1の所定ページサイズの第1の変換絶対アドレスに変換する場合、前記第1の所定ページサイズの第1の変換絶対アドレスに変換したことを示す変換情報を、前記第1の変換アドレス変換対に付加して前記第2のアドレス変換バッファに登録し、
    前記演算処理装置はさらに、
    仮想アドレスのアドレス変換要求を出力する命令制御部と、
    前記命令制御部からのアドレス変換要求を入力した場合、前記登録部が前記第2のアドレス変換バッファに登録した第1の変換アドレス変換対に含まれる変換情報に基づき、前記命令制御部からのアドレス変換要求に含まれる仮想アドレスにおける検索対象アドレスの範囲を決定するとともに、前記アドレス変換要求に含まれる仮想アドレスにおいて前記決定された検索対象アドレスの範囲に対応する部分アドレスと前記アドレス変換要求に含まれるコンテキスト情報とを含むアドレス変換対を、前記第2のアドレス変換バッファから検索するアドレス検索部を有することを特徴とする請求項1記載の演算処理装置。
  3. 前記演算処理装置はさらに、
    前記アドレス変換要求に含まれる仮想アドレスにおいて前記決定された検索対象アドレスの範囲に対応する部分アドレスと前記アドレス変換要求に含まれるコンテキスト情報とを含むアドレス変換対が、前記アドレス検索部により前記第2のアドレス変換バッファから検索された場合、前記第2のアドレス変換バッファから検索されたアドレス変換対から絶対アドレスを生成して前記命令制御部に応答し、前記アドレス検索部により前記第2のアドレス変換バッファから検索されない場合、前記アドレス変換要求を前記第1のアドレス変換バッファに出力するアドレス応答部を有することを特徴とする請求項2記載の演算処理装置。
  4. 前記演算処理装置において、
    前記ページサイズ検出部はさらに、前記第1のアドレス変換バッファから読み出された第2のアドレス変換対のページサイズを検出し、
    前記付加アドレス決定部はさらに、前記第1のアドレス変換バッファから読み出された第2のアドレス変換対に含まれる第2の絶対アドレスを、前記第2のアドレス変換対のページサイズ以下であって前記第1のアドレス変換対のページサイズを超える第2の所定ページサイズの絶対アドレスに変換する場合、前記第2の所定ページサイズの絶対アドレスのビット幅にまで前記変換対象の第2の絶対アドレスを拡張するのに必要な付加アドレスの範囲を決定し、
    前記登録部はさらに、前記読み出された第2のアドレス変換対に含まれる第2の仮想アドレスにおいて前記付加アドレス決定部が決定した付加アドレスの範囲に対応する部分アドレスを、前記第2の絶対アドレスに付加することにより前記第2の絶対アドレスを前記第2の所定ページサイズの第2の変換絶対アドレスに変換するとともに、前記第2の仮想アドレスと前記第2の変換絶対アドレスを含む第2の変換アドレス変換対を、前記第2のアドレス変換バッファに登録することを特徴とする請求項1〜3のいずれか1項に記載の演算処理装置。
  5. 仮想アドレスと絶対アドレスとの対応を示すアドレス変換対をページサイズ毎に複数記憶する主記憶装置と、前記主記憶装置に接続する演算処理装置を有する情報処理装置において、
    前記演算処理装置は、
    前記主記憶装置が記憶する複数のアドレス変換対の一部を保持する第1のアドレス変換バッファと、
    前記第1のアドレス変換バッファが保持する複数のアドレス変換対の一部を保持する第2のアドレス変換バッファと、
    前記第1のアドレス変換バッファから読み出された第1のアドレス変換対のページサイズを検出するページサイズ検出部と、
    前記第1のアドレス変換バッファから読み出された第1のアドレス変換対に含まれる第1の絶対アドレスを、前記第1のアドレス変換対のページサイズ以下である第1の所定ページサイズの絶対アドレスに変換する場合、前記第1の所定ページサイズの絶対アドレスのビット幅にまで前記変換対象の第1の絶対アドレスを拡張するのに必要な付加アドレスの範囲を決定する付加アドレス決定部と、
    前記読み出された第1のアドレス変換対に含まれる第1の仮想アドレスにおいて前記付加アドレス決定部が決定した付加アドレスの範囲に対応する部分アドレスを、前記第1の絶対アドレスに付加することにより前記第1の絶対アドレスを前記第1の所定ページサイズの第1の変換絶対アドレスに変換するとともに、前記第1の仮想アドレスと前記第1の変換絶対アドレスを含む第1の変換アドレス変換対を、前記第2のアドレス変換バッファに登録する登録部を有することを特徴とする情報処理装置。
  6. 前記情報処理装置が有する演算処理装置において、
    前記登録部は、前記付加アドレス決定部が決定した付加アドレスの範囲に対応する部分アドレスを、前記第1の絶対アドレスに付加することにより前記第1の絶対アドレスを前記第1の所定ページサイズの第1の変換絶対アドレスに変換する場合、前記第1の所定ページサイズの第1の変換絶対アドレスに変換したことを示す変換情報を、前記第1の変換アドレス変換対に付加して前記第2のアドレス変換バッファに登録し、
    前記演算処理装置はさらに、
    仮想アドレスのアドレス変換要求を出力する命令制御部と、
    前記命令制御部からのアドレス変換要求を入力した場合、前記登録部が前記第2のアドレス変換バッファに登録した第1の変換アドレス変換対に含まれる変換情報に基づき、前記命令制御部からのアドレス変換要求に含まれる仮想アドレスにおける検索対象アドレスの範囲を決定するとともに、前記アドレス変換要求に含まれる仮想アドレスにおいて前記決定された検索対象アドレスの範囲に対応する部分アドレスと前記アドレス変換要求に含まれるコンテキスト情報とを含むアドレス変換対を、前記第2のアドレス変換バッファから検索するアドレス検索部を有することを特徴とする請求項5記載の情報処理装置。
  7. 前記情報処理装置において、
    前記演算処理装置はさらに、
    前記アドレス変換要求に含まれる仮想アドレスにおいて前記決定された検索対象アドレスの範囲に対応する部分アドレスと前記アドレス変換要求に含まれるコンテキスト情報とを含むアドレス変換対が、前記アドレス検索部により前記第2のアドレス変換バッファから検索された場合、前記第2のアドレス変換バッファから検索されたアドレス変換対から絶対アドレスを生成して前記命令制御部に応答し、前記アドレス検索部により前記第2のアドレス変換バッファから検索されない場合、前記アドレス変換要求を前記第1のアドレス変換バッファに出力するアドレス応答部を有することを特徴とする請求項6記載の情報処理装置。
  8. 前記情報処理装置が有する演算処理装置において、
    前記ページサイズ検出部はさらに、前記第1のアドレス変換バッファから読み出された第2のアドレス変換対のページサイズを検出し、
    前記付加アドレス決定部はさらに、前記第1のアドレス変換バッファから読み出された第2のアドレス変換対に含まれる第2の絶対アドレスを、前記第2のアドレス変換対のページサイズ以下であって前記第1のアドレス変換対のページサイズを超える第2の所定ページサイズの絶対アドレスに変換する場合、前記第2の所定ページサイズの絶対アドレスのビット幅にまで前記変換対象の第2の絶対アドレスを拡張するのに必要な付加アドレスの範囲を決定し、
    前記登録部はさらに、前記読み出された第2のアドレス変換対に含まれる第2の仮想アドレスにおいて前記付加アドレス決定部が決定した付加アドレスの範囲に対応する部分アドレスを、前記第2の絶対アドレスに付加することにより前記第2の絶対アドレスを前記第2の所定ページサイズの第2の変換絶対アドレスに変換するとともに、前記第2の仮想アドレスと前記第2の変換絶対アドレスを含む第2の変換アドレス変換対を、前記第2のアドレス変換バッファに登録することを特徴とする請求項5〜7のいずれか1項に記載の情報処理装置。
  9. 仮想アドレスと絶対アドレスとの対応を示すアドレス変換対をページサイズ毎に複数記憶する主記憶装置に接続する演算処理装置の制御方法において、
    前記演算処理装置が有するページサイズ検出部が、前記主記憶装置が記憶する複数のアドレス変換対の一部を保持する第1のアドレス変換バッファから読み出された第1のアドレス変換対のページサイズを検出するステップと、
    前記演算処理装置が有する付加アドレス決定部が、前記第1のアドレス変換バッファから読み出された第1のアドレス変換対に含まれる第1の絶対アドレスを、前記第1のアドレス変換対のページサイズ以下である第1の所定ページサイズの絶対アドレスに変換する場合、前記第1の所定ページサイズの絶対アドレスのビット幅にまで前記変換対象の第1の絶対アドレスを拡張するのに必要な付加アドレスの範囲を決定するステップと、
    前記演算処理装置が有する登録部が、前記読み出された第1のアドレス変換対に含まれる第1の仮想アドレスにおいて前記付加アドレス決定部が決定した付加アドレスの範囲に対応する部分アドレスを、前記第1の絶対アドレスに付加することにより前記第1の絶対アドレスを前記第1の所定ページサイズの第1の変換絶対アドレスに変換するとともに、前記第1の仮想アドレスと前記第1の変換絶対アドレスを含む第1の変換アドレス変換対を、前記第1のアドレス変換バッファが保持する複数のアドレス変換対の一部を保持する第2のアドレス変換バッファに登録するステップを有することを特徴とする演算処理装置の制御方法。
  10. 前記演算処理装置の制御方法において、
    前記登録部は、前記付加アドレス決定部が決定した付加アドレスの範囲に対応する部分アドレスを、前記第1の絶対アドレスに付加することにより前記第1の絶対アドレスを前記第1の所定ページサイズの第1の変換絶対アドレスに変換する場合、前記第1の所定ページサイズの第1の変換絶対アドレスに変換したことを示す変換情報を、前記第1の変換アドレス変換対に付加して前記第2のアドレス変換バッファに登録し、
    前記演算処理装置の制御方法はさらに、
    前記演算処理装置が有する命令制御部が、仮想アドレスのアドレス変換要求を出力するステップと、
    前記演算処理装置が有するアドレス検索部が、前記命令制御部からのアドレス変換要求を入力した場合、前記登録部が前記第2のアドレス変換バッファに登録した第1の変換アドレス変換対に含まれる変換情報に基づき、前記命令制御部からのアドレス変換要求に含まれる仮想アドレスにおける検索対象アドレスの範囲を決定するとともに、前記アドレス変換要求に含まれる仮想アドレスにおいて前記決定された検索対象アドレスの範囲に対応する部分アドレスと前記アドレス変換要求に含まれるコンテキスト情報とを含むアドレス変換対を、前記第2のアドレス変換バッファから検索するステップを有することを特徴とする請求項9記載の演算処理装置の制御方法。
  11. 前記演算処理装置の制御方法はさらに、
    前記演算処理装置が有するアドレス応答部が、前記アドレス変換要求に含まれる仮想アドレスにおいて前記決定された検索対象アドレスの範囲に対応する部分アドレスと前記アドレス変換要求に含まれるコンテキスト情報とを含むアドレス変換対が、前記アドレス検索部により前記第2のアドレス変換バッファから検索された場合、前記第2のアドレス変換バッファから検索されたアドレス変換対から絶対アドレスを生成して前記命令制御部に応答し、前記アドレス検索部により前記第2のアドレス変換バッファから検索されない場合、前記アドレス変換要求を前記第1のアドレス変換バッファに出力するステップを有することを特徴とする請求項10記載の演算処理装置の制御方法。
  12. 前記演算処理装置の制御方法において、
    前記ページサイズ検出部はさらに、前記第1のアドレス変換バッファから読み出された第2のアドレス変換対のページサイズを検出し、
    前記付加アドレス決定部はさらに、前記第1のアドレス変換バッファから読み出された第2のアドレス変換対に含まれる第2の絶対アドレスを、前記第2のアドレス変換対のページサイズ以下であって前記第1のアドレス変換対のページサイズを超える第2の所定ページサイズの絶対アドレスに変換する場合、前記第2の所定ページサイズの絶対アドレスのビット幅にまで前記変換対象の第2の絶対アドレスを拡張するのに必要な付加アドレスの範囲を決定し、
    前記登録部はさらに、前記読み出された第2のアドレス変換対に含まれる第2の仮想アドレスにおいて前記付加アドレス決定部が決定した付加アドレスの範囲に対応する部分アドレスを、前記第2の絶対アドレスに付加することにより前記第2の絶対アドレスを前記第2の所定ページサイズの第2の変換絶対アドレスに変換するとともに、前記第2の仮想アドレスと前記第2の変換絶対アドレスを含む第2の変換アドレス変換対を、前記第2のアドレス変換バッファに登録することを特徴とする請求項9〜11のいずれか1項に記載の演算処理装置の制御方法。
JP2009520202A 2007-06-20 2007-06-20 演算処理装置、情報処理装置及び演算処理装置の制御方法 Expired - Fee Related JP4998554B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/062462 WO2008155848A1 (ja) 2007-06-20 2007-06-20 計算機、tlb制御方法およびtlb制御プログラム

Publications (2)

Publication Number Publication Date
JPWO2008155848A1 JPWO2008155848A1 (ja) 2010-08-26
JP4998554B2 true JP4998554B2 (ja) 2012-08-15

Family

ID=40156014

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009520202A Expired - Fee Related JP4998554B2 (ja) 2007-06-20 2007-06-20 演算処理装置、情報処理装置及び演算処理装置の制御方法

Country Status (6)

Country Link
US (1) US8190853B2 (ja)
EP (1) EP2169556A4 (ja)
JP (1) JP4998554B2 (ja)
KR (1) KR101078277B1 (ja)
CN (1) CN101681308B (ja)
WO (1) WO2008155848A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110145542A1 (en) * 2009-12-15 2011-06-16 Qualcomm Incorporated Apparatuses, Systems, and Methods for Reducing Translation Lookaside Buffer (TLB) Lookups
US10169091B2 (en) * 2012-10-25 2019-01-01 Nvidia Corporation Efficient memory virtualization in multi-threaded processing units
US10310973B2 (en) 2012-10-25 2019-06-04 Nvidia Corporation Efficient memory virtualization in multi-threaded processing units
US10037228B2 (en) 2012-10-25 2018-07-31 Nvidia Corporation Efficient memory virtualization in multi-threaded processing units
US9405703B2 (en) * 2014-06-04 2016-08-02 Advanced Micro Devices, Inc. Translation lookaside buffer
CN107766259B (zh) * 2016-08-23 2021-08-20 华为技术有限公司 页表缓存的访问方法、页表缓存、处理器芯片和存储单元
US10776281B2 (en) * 2018-10-04 2020-09-15 International Business Machines Corporation Snoop invalidate filter for distributed memory management unit to reduce snoop invalidate latency
US11675710B2 (en) * 2020-09-09 2023-06-13 Apple Inc. Limiting translation lookaside buffer searches using active page size

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5817586A (ja) * 1981-07-24 1983-02-01 Fujitsu Ltd アドレス変換制御方式
JPH04311233A (ja) * 1991-04-09 1992-11-04 Nec Corp アドレス変換装置
JPH0546483A (ja) * 1991-08-14 1993-02-26 Toshiba Corp 仮想アドレス変換方式
JPH06202954A (ja) * 1992-12-28 1994-07-22 Fujitsu Ltd タグ比較回路及びこれを用いたトランスレーション・ルック・アサイド・バッファ
JPH06222996A (ja) * 1991-12-27 1994-08-12 Texas Instr Inc <Ti> 高速仮想−物理アドレス変換及びキャッシュタグ照合方法及びシステム
JPH0830511A (ja) * 1991-01-23 1996-02-02 Mips Computer Syst Inc エントリ当たり可変ページ寸法の変換ルックアサイドバッファ
US5526504A (en) * 1993-12-15 1996-06-11 Silicon Graphics, Inc. Variable page size translation lookaside buffer
JPH08329687A (ja) * 1995-06-05 1996-12-13 Hitachi Ltd 半導体集積回路
JPH1091525A (ja) * 1996-05-30 1998-04-10 Hewlett Packard Co <Hp> 変換索引バッファ及びメモリ管理システム
JP2002132581A (ja) * 2000-10-25 2002-05-10 Mitsubishi Electric Corp メモリ管理機構
JP2002149490A (ja) * 2000-11-06 2002-05-24 Fujitsu Ltd マイクロプロセッサ及びマイクロプロセッサのアドレス変換方法
US20050027962A1 (en) * 2003-07-31 2005-02-03 David Zhang System and method for encoding page size information
JP2007504552A (ja) * 2003-09-03 2007-03-01 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド プロセッサの電力を削減するためのマイクロtlbおよびマイクロタグ

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4725776A (en) 1984-01-25 1988-02-16 Matsushita Electric Industry Co., Ltd. Magnetic position detector using a thin film magnetoresistor element inclined relative to a moving object
JPH05225064A (ja) 1992-02-10 1993-09-03 Hitachi Ltd アドレス変換装置及びバッファ記憶制御装置
US5465337A (en) * 1992-08-13 1995-11-07 Sun Microsystems, Inc. Method and apparatus for a memory management unit supporting multiple page sizes
US5907867A (en) * 1994-09-09 1999-05-25 Hitachi, Ltd. Translation lookaside buffer supporting multiple page sizes
US6493812B1 (en) * 1999-12-17 2002-12-10 Hewlett-Packard Company Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache
JP4311233B2 (ja) 2003-03-05 2009-08-12 コニカミノルタホールディングス株式会社 静電潜像現像用トナーとトナーの製造方法及び画像形成方法
US7243208B2 (en) * 2003-08-13 2007-07-10 Renesas Technology Corp. Data processor and IP module for data processor

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5817586A (ja) * 1981-07-24 1983-02-01 Fujitsu Ltd アドレス変換制御方式
JPH0830511A (ja) * 1991-01-23 1996-02-02 Mips Computer Syst Inc エントリ当たり可変ページ寸法の変換ルックアサイドバッファ
JPH04311233A (ja) * 1991-04-09 1992-11-04 Nec Corp アドレス変換装置
JPH0546483A (ja) * 1991-08-14 1993-02-26 Toshiba Corp 仮想アドレス変換方式
JPH06222996A (ja) * 1991-12-27 1994-08-12 Texas Instr Inc <Ti> 高速仮想−物理アドレス変換及びキャッシュタグ照合方法及びシステム
JPH06202954A (ja) * 1992-12-28 1994-07-22 Fujitsu Ltd タグ比較回路及びこれを用いたトランスレーション・ルック・アサイド・バッファ
US5526504A (en) * 1993-12-15 1996-06-11 Silicon Graphics, Inc. Variable page size translation lookaside buffer
JPH08329687A (ja) * 1995-06-05 1996-12-13 Hitachi Ltd 半導体集積回路
JPH1091525A (ja) * 1996-05-30 1998-04-10 Hewlett Packard Co <Hp> 変換索引バッファ及びメモリ管理システム
JP2002132581A (ja) * 2000-10-25 2002-05-10 Mitsubishi Electric Corp メモリ管理機構
JP2002149490A (ja) * 2000-11-06 2002-05-24 Fujitsu Ltd マイクロプロセッサ及びマイクロプロセッサのアドレス変換方法
US20050027962A1 (en) * 2003-07-31 2005-02-03 David Zhang System and method for encoding page size information
JP2007504552A (ja) * 2003-09-03 2007-03-01 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド プロセッサの電力を削減するためのマイクロtlbおよびマイクロタグ

Also Published As

Publication number Publication date
CN101681308B (zh) 2014-08-13
JPWO2008155848A1 (ja) 2010-08-26
US20100106936A1 (en) 2010-04-29
WO2008155848A1 (ja) 2008-12-24
KR20100013324A (ko) 2010-02-09
CN101681308A (zh) 2010-03-24
EP2169556A4 (en) 2010-10-13
EP2169556A1 (en) 2010-03-31
KR101078277B1 (ko) 2011-10-31
US8190853B2 (en) 2012-05-29

Similar Documents

Publication Publication Date Title
JP4998554B2 (ja) 演算処理装置、情報処理装置及び演算処理装置の制御方法
JP6916751B2 (ja) ハイブリッドメモリーモジュール及びその動作方法
CN111949572B (zh) 页表条目合并方法、装置及电子设备
US8239657B2 (en) Address translation method and apparatus
US10649907B2 (en) Apparatus and method for handling page invalidate requests in an address translation cache
CN107818053B (zh) 用于存取高速缓存的方法与装置
US8185692B2 (en) Unified cache structure that facilitates accessing translation table entries
EP2159706B1 (en) Operation processing apparatus and operation processing method
JP2019096309A (ja) メンテナンス動作の実行
US10831664B2 (en) Cache structure using a logical directory
TW201617886A (zh) 指令快取記憶體轉譯管理
CN101300555A (zh) 运算处理装置、信息处理装置、以及运算处理装置的存储器访问方法
CN112527395A (zh) 数据预取方法和数据处理装置
US20180365172A1 (en) Translation support for a virtual cache
JP4812876B2 (ja) 演算処理装置および演算処理装置の制御方法
US7636811B2 (en) Cache memory and method of controlling memory
KR20190087500A (ko) 메모리 어드레스 변환
US20170147508A1 (en) Device, system and method of accessing data stored in a memory
JPH02308349A (ja) バッファ記憶制御装置
CN115080464A (zh) 数据处理方法和数据处理装置
US10419571B2 (en) Packet processor forwarding database cache
JP2003196157A (ja) プロセッサ装置及びメモリ管理方法
JP2019096307A (ja) 複数のデータ・タイプのためのデータ・ストレージ
US20110320740A1 (en) Method for optimizing sequential data fetches in a computer system
JPH08137756A (ja) アドレス変換バッファ機構

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100816

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110725

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: 20120417

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: 20120430

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: 20150525

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees