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

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

Info

Publication number
JP2019212167A
JP2019212167A JP2018109705A JP2018109705A JP2019212167A JP 2019212167 A JP2019212167 A JP 2019212167A JP 2018109705 A JP2018109705 A JP 2018109705A JP 2018109705 A JP2018109705 A JP 2018109705A JP 2019212167 A JP2019212167 A JP 2019212167A
Authority
JP
Japan
Prior art keywords
page table
data
address
level
buffer
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
JP2018109705A
Other languages
English (en)
Other versions
JP7155629B2 (ja
Inventor
白髭 祐治
Yuji Shirohige
祐治 白髭
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 JP2018109705A priority Critical patent/JP7155629B2/ja
Priority to US16/418,018 priority patent/US10929306B2/en
Publication of JP2019212167A publication Critical patent/JP2019212167A/ja
Application granted granted Critical
Publication of JP7155629B2 publication Critical patent/JP7155629B2/ja
Active 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/1009Address translation using page tables, e.g. page table structures
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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]
    • 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
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/651Multi-level translation tables
    • 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/683Invalidation
    • 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/684TLB miss handling
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

【課題】演算処理装置がアドレス変換に用いるページテーブルの情報を保持するためのハードウェアを削減する。【解決手段】要求生成部211は、要求アドレスを含む情報要求を生成する。変換バッファ213は、ページの仮想アドレスと物理アドレス(PA)とを対応付けて記憶する。ページテーブルバッファ214は、ラストレベル以外のレベルのページテーブル内のデータと、そのデータのPAとを対応付けて記憶する。制御部212は、変換バッファ213が要求アドレスを記憶していない場合、要求アドレスからアクセス対象ページテーブル内のデータのPAを求める。そして、制御部212は、アクセス対象ページテーブルがラストレベル以外のレベルである場合、ページテーブルバッファ214からそのデータを検索する。一方、アクセス対象ページテーブルがラストレベルである場合、制御部212は、そのデータをメモリから取得して変換バッファ213に登録する。【選択図】図2

Description

本発明は、演算処理装置、情報処理装置、及び演算処理装置の制御方法に関する。
演算処理装置であるCPU(Central Processing Unit)は、近年、仮想アドレスをサポートするためのハードウェアを搭載していることが多い。例えば、TLB(Translation Lookaside Buffer)は、仮想アドレス(Virtual Address,VA)と物理アドレス(Physical Address,PA)との変換対をキャッシュするハードウェアである。TLBに登録されるエントリは、ページテーブルウォークを行うことで取得される。
ページテーブルウォークに関して、複数のページテーブルエントリを含むデータのブロックを保持するメモリマネージメントユニット(MMU)が知られている(例えば、特許文献1を参照)。TLBミス時のペナルティを低減する演算処理装置も知られている(例えば、特許文献2を参照)。
特表2012−533135号公報 国際公開第2008/155825号パンフレット
ページテーブルウォークの実行時間を短縮するために、ページテーブルエントリをキャッシュするバッファを設けた場合、ハードウェアの規模が増大する。
1つの側面において、本発明は、演算処理装置がアドレス変換に用いるページテーブルの情報を保持するためのハードウェアを削減することを目的とする。
1つの案では、演算処理装置は、要求生成部、変換バッファ、ページテーブルバッファ、及び制御部を含む。
要求生成部は、要求アドレスを含む情報要求を生成する。変換バッファは、ページの仮想アドレスと、そのページの物理アドレスとを対応付けて記憶する。ページテーブルバッファは、ラストレベル以外のレベルのページテーブル内のデータと、そのページテーブル内のデータの物理アドレスとを対応付けて記憶する。
制御部は、変換バッファが要求アドレスに対応する仮想アドレスを記憶していない場合、要求アドレスからアクセス対象ページテーブル内のデータの物理アドレスを求める。そして、制御部は、アクセス対象ページテーブルがラストレベル以外のレベルのページテーブルである場合、ページテーブルバッファからアクセス対象ページテーブル内のデータを検索する。一方、アクセス対象ページテーブルがラストレベルのページテーブルである場合、制御部は、アクセス対象ページテーブル内のデータをメモリから取得して、取得したデータが示すページの仮想アドレス及び物理アドレスを変換バッファに登録する。
実施形態によれば、演算処理装置がアドレス変換に用いるページテーブルの情報を保持するためのハードウェアを削減することができる。
ページテーブルウォークを示す図である。 演算処理装置の構成図である。 演算処理装置の制御方法のフローチャートである。 情報処理装置の構成図である。 L1キャッシュの構成図である。 テーブルウォーク制御部の構成図である。 ページテーブルバッファの構成図である。 エントリの構成図である。 制御キューの構成図である。 テーブルウォーク制御部の動作を示すフローチャートである。
以下、図面を参照しながら、実施形態を詳細に説明する。
TLBミスが発生した場合に行われるページテーブルウォークは、ハードウェアによって行われる場合もあり、ソフトウェアによって行われる場合もある。いずれの場合であっても、1個又は複数個のページテーブルが参照され、ページテーブルを参照するパターンは様々である。
複数個のページテーブルからなる多段ページテーブルを参照する場合、主記憶装置からページテーブルエントリを取得する回数が増加するため、ページテーブルウォークの実行にかなり時間がかかる。TLBのエントリ数を増加させれば、TLBにヒットする確率が高くなるため、ページテーブルウォークの発生回数が減少するが、それだけでは不十分であり、ページテーブルウォーク自体の実行時間もできるだけ短縮することが望ましい。
図1は、ハードウェアによって行われるページテーブルウォークの例を示している。CPUは、アクセス対象データの仮想アドレス(VA)101を要求アドレスとして含む、データ要求を生成する。VA101は、Lv0-index〜Lv3-index及びoffsetを含む。
ベースレジスタ102は、TTBA(Translation Table Base Address)を格納している。TTBAは、主記憶装置内におけるレベル0のページテーブルの格納位置を示す。
Lvj-index(j=0〜3)は、レベルjのページテーブル内におけるアクセス対象エントリの格納位置を示すインデックスである。レベル0〜レベル3のページテーブルは、4段の多段ページテーブルに対応し、このうちレベル3のページテーブルは、最終段(ラストレベル)のページテーブルである。
主記憶装置内のLvjディスクリプタアドレス(Lvj Descriptor Address)(j=0〜2)には、レベルjのページテーブルのエントリであるレベルjテーブルディスクリプタ(Levelj table Descriptor)が格納されている。また、Lv3ディスクリプタアドレス(Lv3 Descriptor Address)には、レベル3のページテーブルのエントリであるレベル3ページディスクリプタ(Level3 page Descriptor)が格納されている。Lvjディスクリプタアドレス(j=0〜3)は、主記憶装置内の物理アドレスであり、Lvj Lookupは、主記憶装置内のレベルjのページテーブルを参照する動作を表す。
まず、ハードウェアは、ベースレジスタ102内のTTBAにLv0-indexを付加して、Lv0ディスクリプタアドレス103を生成する。そして、ハードウェアは、主記憶装置内のLv0ディスクリプタアドレス103に格納されているレベル0テーブルディスクリプタ104を参照する。
次に、ハードウェアは、レベル0テーブルディスクリプタ104内のレベル1テーブルアドレス(Level1 Table Address)にLv1-indexを付加して、Lv1ディスクリプタアドレス105を生成する。そして、ハードウェアは、主記憶装置内のLv1ディスクリプタアドレス105に格納されているレベル1テーブルディスクリプタ106を参照する。
次に、ハードウェアは、レベル1テーブルディスクリプタ106内のレベル2テーブルアドレス(Level2 Table Address)にLv2-indexを付加して、Lv2ディスクリプタアドレス107を生成する。そして、ハードウェアは、主記憶装置内のLv2ディスクリプタアドレス107に格納されているレベル2テーブルディスクリプタ108を参照する。
次に、ハードウェアは、レベル2テーブルディスクリプタ108内のレベル3テーブルアドレス(Level3 Table Address)にLv3-indexを付加して、Lv3ディスクリプタアドレス109を生成する。そして、ハードウェアは、主記憶装置内のLv3ディスクリプタアドレス109に格納されているレベル3ページディスクリプタ110を参照する。
そして、ハードウェアは、レベル3ページディスクリプタ110内の出力アドレス(Output Address)にoffsetを付加して、アクセス対象データの物理アドレス(PA)111を生成する。
この場合、主記憶装置内のページテーブルを参照する動作が4回発生するため、参照の度に主記憶装置からページテーブルエントリを取得すると、ページテーブルウォークの実行時間が長くなる。
そこで、L1キャッシュにページテーブルエントリをキャッシュする方法が考えられる。L1キャッシュからページテーブルエントリを取得すれば、実行時間は短縮される。しかし、L1キャッシュはアドレス変換以外の用途にも使用されるため、TLBミスの発生頻度から考えると、次回のページテーブルウォークの実行時に、L1キャッシュにページテーブルエントリが残っている可能性は低い。したがって、L1キャッシュを利用した場合であっても、結果的に主記憶装置からページテーブルエントリを取得する可能性が高くなる。
特許文献1のMMUでは、L1キャッシュとは別に、ページテーブルエントリをキャッシュするプリフェッチバッファが設けられ、TLBミスが発生した場合、プリフェッチバッファのエントリが参照される。この方法によれば、ファーストタッチのエントリのレイテンシ削減に効果があると考えられる。しかし、十分な効果を得るためにプリフェッチバッファのエントリ数を増加させると、ハードウェアの規模が増大する。
図2は、実施形態の演算処理装置の構成例を示している。図2の演算処理装置201は、要求生成部211、制御部212、変換バッファ213、及びページテーブルバッファ214を含む。
変換バッファ213は、ページの仮想アドレスと、そのページの物理アドレスとを対応付けて記憶する。ページテーブルバッファ214は、ラストレベル以外のレベルのページテーブル内のデータと、そのデータの物理アドレスとを対応付けて記憶する。
図3は、図2の演算処理装置201の制御方法の例を示すフローチャートである。まず、要求生成部211は、要求アドレスを含む情報要求を生成する(ステップ301)。制御部212は、変換バッファ213が要求アドレスに対応する仮想アドレスを記憶していない場合、要求アドレスからアクセス対象ページテーブル内のデータの物理アドレスを求める(ステップ302)。
アクセス対象ページテーブルがラストレベル以外のレベルのページテーブルである場合、制御部212は、ページテーブルバッファ214からアクセス対象ページテーブル内のデータを検索する(ステップ303)。
一方、アクセス対象ページテーブルがラストレベルのページテーブルである場合、制御部212は、アクセス対象ページテーブル内のデータをメモリから取得する(ステップ304)。そして、制御部212は、取得したデータが示すページの仮想アドレス及び物理アドレスを変換バッファ213に登録する(ステップ305)。
図2の演算処理装置201によれば、演算処理装置201がアドレス変換に用いるページテーブルの情報を保持するためのハードウェアを削減することができる。
図4は、図2の演算処理装置201を含む情報処理装置(コンピュータ)の構成例を示している。図4の情報処理装置401は、CPU411(プロセッサ)、L2キャッシュ412、及び主記憶装置413(メインメモリ)を含む。CPU411は、図2の演算処理装置201に対応し、命令制御部421、演算部422、及びL1キャッシュ423を含む。
主記憶装置413は、例えば、RAM(Random Access Memory)等の半導体メモリであり、CPU411が使用する情報を記憶する。主記憶装置413が記憶する情報は、CPU411が実行するプログラムに含まれる命令であってもよく、CPU411が命令に基づいて処理するデータであってもよい。
L1キャッシュ423は、CPU411内のキャッシュメモリ回路であり、L2キャッシュ412は、L1キャッシュ423よりも下位のキャッシュメモリ回路である。L1キャッシュ423及びL2キャッシュ412は、主記憶装置413から読み出された情報を一時的に記憶する。
命令制御部421は、図2の要求生成部211に対応し、L1キャッシュ423に対する要求S001を発行する。要求S001は、例えば、主記憶装置413が記憶している命令又はデータを要求する情報要求である。
命令制御部421は、主記憶装置413が記憶しているアクセス対象データを要求する場合、要求S001としてデータ要求をL1キャッシュ423へ出力する。L1キャッシュ423がアクセス対象データを記憶している場合、L1キャッシュ423は、そのアクセス対象データをデータS004として演算部422へ出力する。
一方、L1キャッシュ423がアクセス対象データを記憶していない場合、L1キャッシュ423は、データ要求S002をL2キャッシュ412へ出力する。L2キャッシュ412がアクセス対象データを記憶している場合、L2キャッシュ412は、そのアクセス対象データをデータS005としてL1キャッシュ423へ出力する。そして、L1キャッシュ423は、データS005をデータS004として演算部422へ出力する。
一方、L2キャッシュ412がアクセス対象データを記憶していない場合、L2キャッシュ412は、データ要求S003を主記憶装置413へ出力する。主記憶装置413は、アクセス対象データをデータS006としてL2キャッシュ412へ出力する。そして、L2キャッシュ412は、データS006をデータS005としてL1キャッシュ423へ出力し、L1キャッシュ423は、データS005をデータS004として演算部422へ出力する。演算部422は、データS004を用いて演算を行う。
図5は、図4のL1キャッシュ423の構成例を示している。図5のL1キャッシュ423は、L1データキャッシュであり、キャッシュメモリ501、テーブルウォーク制御部502、ページテーブルバッファ503、及びTLB504を含む。テーブルウォーク制御部502、ページテーブルバッファ503、及びTLB504は、図2の制御部212、ページテーブルバッファ214、及び変換バッファ213にそれぞれ対応する。
TLB504は、ページのVAとそのページのPAとを対応付けて記憶する。ページテーブルバッファ503は、ラストレベル以外のレベルのページテーブル内のデータと、そのデータのPAとを対応付けて記憶する。ページテーブル内のデータは、ページテーブルエントリと呼ばれることもある。
命令制御部421から出力される要求S001がデータ要求である場合、要求S001は、アクセス対象データのVAを要求アドレスとして含む。キャッシュメモリ501は、その要求S001を受け取り、変換要求S012をTLB504へ出力する。
以下では、TLB504が要求アドレスに対応するページのVAを記憶している場合、要求アドレスがTLB504にヒットすると記載することがあり、TLB504がそのページのVAを記憶していない場合、TLBミスが発生すると記載することがある。
要求アドレスがTLB504にヒットした場合、TLB504は、要求アドレスに対応するPAを変換結果S013としてキャッシュメモリ501へ出力し、キャッシュメモリ501は、変換結果S013に対応するデータS004を演算部422へ出力する。
一方、TLBミスが発生した場合、TLB504は、制御信号S016及びアドレス信号S021を含むテーブルウォーク要求を、テーブルウォーク制御部502へ出力する。制御信号S016は、テーブルウォーク要求を示し、アドレス信号S021は、要求アドレスを示す。
テーブルウォーク制御部502は、テーブルウォーク要求に応答してページテーブルウォークを実行し、要求アドレスのアドレス変換を行う。まず、テーブルウォーク制御部502は、要求アドレスからアクセス対象ページテーブル内のデータのPAを求める。そして、テーブルウォーク制御部502は、制御信号S009及びアドレス信号S019を含むページテーブル要求を、ページテーブルバッファ503へ出力することで、ページテーブルバッファ503を検索する。制御信号S009は、ページテーブル要求を示し、アドレス信号S019は、アクセス対象ページテーブル内のデータのPAを示す。
ページテーブルバッファ503がアクセス対象ページテーブル内のデータのPAを記憶している場合、ページテーブルバッファ503は、制御信号S010及びデータ信号S025を含むページテーブル情報を、テーブルウォーク制御部502へ出力する。制御信号S010は、ページテーブル転送を示し、データ信号S025は、アクセス対象ページテーブル内のデータを示す。
そして、テーブルウォーク制御部502は、アクセス対象ページテーブル内のデータに基づいて、ページテーブルウォークを続行する。このように、ページテーブルバッファ503を設けることで、テーブルウォーク制御部502は、キャッシュメモリ501に依存することなく、アクセス対象ページテーブルを迅速に参照することができる。
一方、ページテーブルバッファ503がアクセス対象ページテーブル内のデータのPAを記憶していない場合、ページテーブルバッファ503は、ミス信号S026をテーブルウォーク制御部502へ出力する。そして、テーブルウォーク制御部502は、制御信号S007及びアドレス信号S018を含むページテーブル要求を、キャッシュメモリ501へ出力する。制御信号S007は、ページテーブル要求を示し、アドレス信号S018は、アクセス対象ページテーブル内のデータのPAを示す。
キャッシュメモリ501がアクセス対象ページテーブル内のデータを記憶している場合、キャッシュメモリ501は、制御信号S008及びデータ信号S020を含むページテーブル情報を、テーブルウォーク制御部502へ出力する。制御信号S008は、ページテーブル転送を示し、データ信号S020は、アクセス対象ページテーブル内のデータを示す。
一方、キャッシュメモリ501がアクセス対象ページテーブル内のデータを記憶していない場合、L1キャッシュ423は、L2キャッシュ412に対してそのデータを要求し、L2キャッシュ412からアクセス対象ページテーブル内のデータを取得する。L2キャッシュ412がアクセス対象ページテーブル内のデータを記憶していない場合、L2キャッシュ412は、主記憶装置413に対してそのデータを要求し、主記憶装置413からアクセス対象ページテーブル内のデータを取得する。
キャッシュメモリ501は、L1キャッシュ423から取得したデータのページテーブル情報を、テーブルウォーク制御部502へ出力する。この場合、テーブルウォーク制御部502は、制御信号S011、アドレス信号S019、及びデータ信号S024を含む登録情報を、ページテーブルバッファ503へ出力する。これにより、アクセス対象ページテーブル内のデータがページテーブルバッファ503に登録される。制御信号S011は、ページテーブル登録を示し、アドレス信号S019は、アクセス対象ページテーブル内のデータのPAを示し、データ信号S024は、アクセス対象ページテーブル内のデータを示す。
ところで、多段ページテーブルに含まれる複数のレベルのページテーブルのうち、ラストレベルのテーブルの個数は他のレベルのテーブルの個数よりも多くなる傾向がある。そこで、アクセス対象ページテーブルがラストレベルのテーブルである場合、テーブルウォーク制御部502は、ページテーブルバッファ503に対するアクセス対象ページテーブル内のデータの登録を抑止する。これにより、ページテーブルバッファ503のエントリ数が大幅に削減され、ページテーブルバッファ503のハードウェアの規模が小さくなる。
ページテーブルウォークが終了すると、テーブルウォーク制御部502は、制御信号S017、アドレス信号S027、及びアドレス信号S022を含む登録情報を、TLB504へ出力する。これにより、アクセス対象データを含むページのVA及びPAがTLB504に登録される。制御信号S017は、アドレス登録を示し、アドレス信号S027は、アクセス対象データを含むページのVAを示し、アドレス信号S022は、そのページのPAを示す。
その後、L1キャッシュ423は、要求S001に対する処理を再開し、要求アドレスがTLB504にヒットする。そこで、TLB504は、要求アドレスに対応するPAを変換結果S013としてキャッシュメモリ501へ出力し、キャッシュメモリ501は、変換結果S013に対応するデータS004を演算部422へ出力する。
CPU411が主記憶装置413内のページテーブルを書き換えた場合、TLB504内のVA及びPAの変換対と、主記憶装置413内のページテーブルとの不一致を解消するために、CPU411は、TLBメンテナンス命令を実行する。これにより、命令制御部421は、TLBメンテナンス要求を要求S001としてL1キャッシュ423へ出力する。
キャッシュメモリ501は、TLBメンテナンス要求を受け取ると、メンテナンス信号S014をTLB504へ出力する。TLB504は、メンテナンス信号S014を受け取ると、TLB504内の変換対を無効化するとともに、全消去信号S015をページテーブルバッファ503へ出力する。ページテーブルバッファ503は、全消去信号S015を受け取ると、ページテーブルバッファ503内のエントリを無効化する。これにより、書き換えられたページテーブルと一致していない、古いページテーブル内のデータの使用が禁止される。
TLB504からページテーブルバッファ503へ全消去信号S015を出力することで、TLB504の無効化と連動して、ページテーブルバッファ503を無効化することが可能になる。
図6は、図5のテーブルウォーク制御部502の構成例を示している。図6のテーブルウォーク制御部502は、制御回路601、VAレジスタ602、ベースレジスタ603、ページテーブルレジスタ604、アドレス計算回路605、出力アドレスレジスタ606、及びセレクタ607を含む。ベースレジスタ603は、図1のベースレジスタ102に対応し、TTBAを記憶する。
TLB504がテーブルウォーク要求を出力した場合、制御信号S016が制御回路601に入力され、アドレス信号S021が示す要求アドレスがVAレジスタ602に格納される。この例では、図1のVA101がVAレジスタ602に格納されている。まず、制御回路601は、レベル0のページテーブルをフェッチする状態(Lv0-State)に遷移する。
Lv0-Stateにおいて、制御回路601は、レベル0のページテーブル内のデータのPAを計算するように、アドレス計算回路605に指示する。アドレス計算回路605は、図1に示したように、ベースレジスタ603に格納されているTTBAに、VAレジスタ602に格納されているLv0-indexを付加して、レベル0のページテーブル内のデータのPAを求める。そして、アドレス計算回路605は、求めたPAを出力アドレスレジスタ606に格納し、出力アドレスレジスタ606は、格納されたPAを示すアドレス信号S019をページテーブルバッファ503へ出力する。
アドレス信号S019が示すPAをページテーブルバッファ503が記憶している場合、論理“1”の制御信号S010が制御回路601及びセレクタ607に入力され、データ信号S025がセレクタ607に入力される。セレクタ607は、制御信号S010が論理“1”であるとき、データ信号S025を選択してページテーブルレジスタ604へ出力する。これにより、データ信号S025が示すレベル0のページテーブル内のデータが、ページテーブルレジスタ604に格納される。
一方、アドレス信号S019が示すPAをページテーブルバッファ503が記憶していない場合、ミス信号S026が制御回路601に入力される。そこで、制御回路601は、制御信号S007をキャッシュメモリ501へ出力し、出力アドレスレジスタ606は、PAを示すアドレス信号S018をキャッシュメモリ501へ出力する。
その後、キャッシュメモリ501から、論理“1”の制御信号S008が制御回路601及びセレクタ607に入力され、データ信号S020がセレクタ607に入力される。セレクタ607は、制御信号S008が論理“1”であるとき、データ信号S020を選択してページテーブルレジスタ604へ出力する。これにより、データ信号S020が示すレベル0のページテーブル内のデータが、ページテーブルレジスタ604に格納される。
キャッシュメモリ501からレベル0のページテーブル内のデータを取得した場合、制御回路601は、制御信号S011をページテーブルバッファ503へ出力する。また、出力アドレスレジスタ606は、PAを示すアドレス信号S019をページテーブルバッファ503へ出力し、レベル0のページテーブル内のデータを示すデータ信号S024をページテーブルバッファ503へ出力する。これにより、レベル0のページテーブル内のデータが、ページテーブルバッファ503に登録される。
制御回路601は、論理“1”の制御信号S010又は論理“1”の制御信号S008を受け取った場合、レベル1のページテーブルをフェッチする状態(Lv1-State)に遷移する。
Lv1-Stateにおいて、制御回路601は、レベル1のページテーブル内のデータのPAを計算するように、アドレス計算回路605に指示する。図1に示したように、ページテーブルレジスタ604に格納されている、レベル0のページテーブル内のデータには、レベル1テーブルアドレスが含まれている。
そこで、アドレス計算回路605は、そのレベル1テーブルアドレスに、VAレジスタ602に格納されているLv1-indexを付加して、レベル1のページテーブル内のデータのPAを求める。そして、アドレス計算回路605は、求めたPAを出力アドレスレジスタ606に格納し、出力アドレスレジスタ606は、格納されたPAを示すアドレス信号S019をページテーブルバッファ503へ出力する。
アドレス信号S019が示すPAをページテーブルバッファ503が記憶している場合、Lv0-Stateと同様にして、ページテーブルバッファ503から出力されるレベル1のページテーブル内のデータが、ページテーブルレジスタ604に格納される。
一方、アドレス信号S019が示すPAをページテーブルバッファ503が記憶していない場合、Lv0-Stateと同様にして、キャッシュメモリ501から出力されるレベル1のページテーブル内のデータが、ページテーブルレジスタ604に格納される。この場合、Lv0-Stateと同様にして、レベル1のページテーブル内のデータが、ページテーブルバッファ503に登録される。
その後、制御回路601は、レベル2のページテーブルをフェッチする状態(Lv2-State)に遷移する。
Lv2-Stateにおいて、制御回路601は、レベル2のページテーブル内のデータのPAを計算するように、アドレス計算回路605に指示する。図1に示したように、ページテーブルレジスタ604に格納されている、レベル1のページテーブル内のデータには、レベル2テーブルアドレスが含まれている。
そこで、アドレス計算回路605は、そのレベル2テーブルアドレスに、VAレジスタ602に格納されているLv2-indexを付加して、レベル2のページテーブル内のデータのPAを求める。そして、アドレス計算回路605は、求めたPAを出力アドレスレジスタ606に格納し、出力アドレスレジスタ606は、格納されたPAを示すアドレス信号S019をページテーブルバッファ503へ出力する。
アドレス信号S019が示すPAをページテーブルバッファ503が記憶している場合、Lv0-Stateと同様にして、ページテーブルバッファ503から出力されるレベル2のページテーブル内のデータが、ページテーブルレジスタ604に格納される。
一方、アドレス信号S019が示すPAをページテーブルバッファ503が記憶していない場合、Lv0-Stateと同様にして、キャッシュメモリ501から出力されるレベル2のページテーブル内のデータが、ページテーブルレジスタ604に格納される。この場合、Lv0-Stateと同様にして、レベル2のページテーブル内のデータが、ページテーブルバッファ503に登録される。
その後、制御回路601は、レベル3のページテーブルをフェッチする状態(Lv3-State)に遷移する。
Lv3-Stateにおいて、制御回路601は、レベル3のページテーブル内のデータのPAを計算するように、アドレス計算回路605に指示する。図1に示したように、ページテーブルレジスタ604に格納されている、レベル2のページテーブル内のデータには、レベル3テーブルアドレスが含まれている。
そこで、アドレス計算回路605は、そのレベル3テーブルアドレスに、VAレジスタ602に格納されているLv3-indexを付加して、レベル3のページテーブル内のデータのPAを求める。そして、アドレス計算回路605は、求めたPAを出力アドレスレジスタ606に格納する。
レベル3はラストレベルであるため、制御回路601は、制御信号S007をキャッシュメモリ501へ出力し、出力アドレスレジスタ606は、PAを示すアドレス信号S018をキャッシュメモリ501へ出力する。その後、Lv0-Stateと同様にして、キャッシュメモリ501から出力されるレベル3のページテーブル内のデータが、ページテーブルレジスタ604に格納される。図1に示したように、レベル3のページテーブル内のデータには出力アドレスが含まれている。
そこで、アドレス計算回路605は、その出力アドレスに、VAレジスタ602に格納されているoffsetを付加して、アクセス対象データのPAを求め、求めたPAを出力アドレスレジスタ606に格納する。そして、制御回路601は、制御信号S017をTLB504へ出力する。VAレジスタ602は、Lv3-indexを示すアドレス信号S027をTLB504へ出力し、出力アドレスレジスタ606は、レベル3のページテーブル内の出力アドレスを示すアドレス信号S022を、TLB504へ出力する。これにより、アクセス対象データを含むページのVA及びPAが、TLB504に登録される。
図7は、図5のページテーブルバッファ503の構成例を示している。図7のページテーブルバッファ503は、エントリE1〜エントリENのN個(Nは1以上の整数)のエントリ、制御キュー701、セレクタ702、及び否定論理和回路703を含む。
各エントリEi(i=1〜N)は、有効ビットV、PA、及びページテーブルデータを含む。ページテーブルデータは、ページテーブル内のデータを表し、PAは、ページテーブル内のデータのPAを表す。有効ビットVは、エントリEiが有効であるか否かを表すフラグである。有効ビットVが論理“1”であるとき、エントリEiは有効であり、有効ビットVが論理“0”であるとき、エントリEiは無効である。
テーブルウォーク制御部502がページテーブルバッファ503を検索する際、ページテーブルバッファ503は、ページテーブル内のデータのPAを示すアドレス信号S019をテーブルウォーク制御部502から受け取る。そして、各エントリEiは、アドレス信号S019が示すPAと、エントリEiに含まれるPAとを比較し、比較結果を示すヒット信号S028を制御キュー701、セレクタ702、及び否定論理和回路703へ出力する。
アドレス信号S019が示すPAがエントリEiのPAと一致した場合、ヒット信号S028は論理“1”となり、アドレス信号S019が示すPAがエントリEiのPAと一致しない場合、ヒット信号S028は論理“0”となる。
各エントリEiは、ページテーブルデータを示すデータ信号S030を、セレクタ702へ出力する。セレクタ702は、エントリE1〜エントリENから出力される制御信号S028に基づいて、論理“1”のヒット信号S028が示すエントリのデータ信号S030を選択し、データ信号S025として出力する。
否定論理和回路703は、エントリE1〜エントリENから出力される制御信号S028の否定論理和をミス信号S026として出力する。したがって、アドレス信号S019が示すPAがいずれかのエントリのPAと一致した場合、ミス信号S026は論理“0”となり、アドレス信号S019が示すPAがいずれのエントリのPAとも一致しない場合、ミス信号S026は論理“1”となる。ミス信号S026が論理“1”である場合、テーブルウォーク制御部502は、制御信号S007及びアドレス信号S018をキャッシュメモリ501へ出力する。
制御キュー701は、ヒット信号S028に基づいて、ページテーブルデータを登録するエントリを示す制御信号S029を生成し、制御信号S029を各エントリへ出力する。登録対象のエントリに対する制御信号S029は論理“1”となり、それ以外のエントリに対する制御信号S029は論理“0”となる。
テーブルウォーク制御部502がページテーブル内のデータをページテーブルバッファ503に登録する際、ページテーブルバッファ503は、制御信号S011、アドレス信号S019、及びデータ信号S024をテーブルウォーク制御部502から受け取る。そして、アドレス信号S019が示すPAとデータ信号S024が示すページテーブル内のデータとが、論理“1”の制御信号S029が示すエントリに格納され、そのエントリのデータが更新される。
図8は、図7のエントリEiの構成例を示している。図8のエントリEiは、バッファ801、バッファ802、論理積回路811〜論理積回路813、論理和回路814、比較回路815、及び論理積回路816を含む。バッファ801は、有効ビットVを格納し、バッファ802は、PA及びページテーブルデータを格納する。
論理積回路811は、制御信号S011と制御信号S029との論理積を、論理積回路813及びバッファ802へ出力する。テーブルウォーク制御部502がページテーブル内のデータをページテーブルバッファ503に登録する場合、制御信号S011は論理“1”となり、それ以外の場合、制御信号S011は論理“0”となる。
論理積回路812は、全消去信号S015の否定と、バッファ801に格納された有効ビットVとの論理積を、論理和回路814へ出力する。TLB504がメンテナンス信号S014を受け取った場合、全消去信号S015は論理“1”となり、それ以外の場合、全消去信号S015は論理“0”となる。
論理積回路813は、全消去信号S015の否定と論理積回路811の出力との論理積を、論理和回路814へ出力する。論理和回路814は、論理積回路812の出力と論理積回路813の出力との論理和を、バッファ801へ出力し、バッファ801は、論理和回路814の出力を有効ビットVとして保持する。
テーブルウォーク制御部502がページテーブルバッファ503を検索する場合、比較回路815は、アドレス信号S019が示すPAとバッファ802に格納されたPAとを比較し、比較結果を論理積回路816へ出力する。アドレス信号S019が示すPAがバッファ802内のPAと一致した場合、比較結果は論理“1”となり、アドレス信号S019が示すPAがバッファ802内のPAと一致しない場合、比較結果は論理“0”となる。
論理積回路816は、比較回路815が出力する比較結果と、バッファ801に格納された有効ビットVとの論理積を、ヒット信号S028として出力し、バッファ802は、ページテーブルデータを示すデータ信号S030を出力する。したがって、エントリEiが有効であり、かつ、アドレス信号S019が示すPAがバッファ802内のPAと一致した場合に、ヒット信号S028が論理“1”となる。
テーブルウォーク制御部502がページテーブル内のデータをページテーブルバッファ503に登録する場合、制御信号S011は論理“1”となる。したがって、エントリEiに入力される制御信号S029が論理“1”である場合、論理積回路811の出力が論理“1”となる。これにより、アドレス信号S019が示すPAと、データ信号S024が示すページテーブル内のデータとが、バッファ802に書き込まれ、エントリEiのデータが更新される。そして、論理和回路814の出力が論理“1”となるため、バッファ801内の有効ビットVが論理“1”に設定される。
論理“1”の全消去信号S015がページテーブルバッファ503に入力された場合、論理和回路814の出力が論理“0”となる。これにより、すべてのエントリの有効ビットVが論理“0”に設定されるため、すべてのエントリが無効化される。
図9は、図7の制御キュー701の構成例を示している。制御キュー701は、エントリE1〜エントリENの識別情報であるエントリIDを、LRU(Least Recently Used)アルゴリズムに従って、各エントリが使用された順序で格納することで、それらのエントリの使用順序を記憶する。この例ではN=8である。
制御キュー701内の位置newには、最近使用されたエントリのエントリIDが格納されており、位置oldには、最近最も使用されていないエントリのエントリIDが格納されている。制御キュー701は、位置oldのエントリIDが示すエントリに対して、論理“1”の制御信号S029を出力し、それ以外の位置のエントリIDが示すエントリに対して、論理“0”の制御信号S029を出力する。
例えば、状態ST1では、位置oldのエントリE5に対する制御信号S029が論理“1”となり、それ以外のエントリに対する制御信号S029は論理“0”となる。状態ST1において、エントリE3に対するヒット信号S028が論理“1”となった場合、矢印901が示すように、エントリE3のエントリIDが位置newに移動する。そして、エントリE8、エントリE2、エントリE6、エントリE4、及びエントリE1のエントリIDが位置oldへ向かって順にシフトし、制御キュー701は状態ST2のように変化する。
しかし、位置oldのエントリIDは変化しないため、状態ST1と同様に、エントリE5に対する制御信号S029が論理“1”となり、それ以外のエントリに対する制御信号S029は論理“0”となる。状態ST2において、論理“1”の制御信号S029が示すエントリE5に新たなページテーブルデータが登録された場合、矢印902が示すように、エントリE5のエントリIDが位置newに移動する。そして、それ以外のエントリのエントリIDが位置oldへ向かって順にシフトし、制御キュー701は状態ST3のように変化する。
状態ST3では、位置oldのエントリE7に対する制御信号S029が論理“1”となり、それ以外のエントリに対する制御信号S029は論理“0”となる。
このように、制御キュー701を設けて、ページテーブルデータを登録するエントリをLRUアルゴリズムに従って決定することで、ページテーブルバッファ503のエントリを有効に利用することができる。したがって、ページテーブルバッファ503のハードウェアの規模が小さくなる。
図10は、図6のテーブルウォーク制御部502がTLB504からテーブルウォーク要求を受け取った場合に行う動作の例を示すフローチャートである。まず、アドレス計算回路605は、制御回路601からの指示に従って、アクセス対象データのVAを用いて、アクセス対象ページテーブル内のデータのPAを計算する(ステップ1001)。そして、制御回路601は、アクセス対象ページテーブルがラストレベルのページテーブルであるか否かをチェックする(ステップ1002)。
アクセス対象ページテーブルがラストレベル以外のレベルのページテーブルである場合(ステップ1002,NO)、制御回路601は、ページテーブルバッファ503からアクセス対象ページテーブル内のデータを検索する(ステップ1003)。そして、制御回路601は、アクセス対象ページテーブル内のデータのPAがページテーブルバッファ503にヒットしたか否かをチェックする(ステップ1004)。
ページテーブルバッファ503から論理“1”の制御信号S010を受け取った場合、アクセス対象ページテーブル内のデータのPAがページテーブルバッファ503にヒットしたと判定される。一方、ページテーブルバッファ503から論理“1”のミス信号S026を受け取った場合、アクセス対象ページテーブル内のデータのPAがページテーブルバッファ503にヒットしなかったと判定される。
アクセス対象ページテーブル内のデータのPAがページテーブルバッファ503にヒットした場合(ステップ1004,YES)、テーブルウォーク制御部502は、ページテーブルバッファ503からアクセス対象ページテーブル内のデータを取得する。そして、テーブルウォーク制御部502は、次のレベルのページテーブルをアクセス対象ページテーブルとして、ステップ1001以降の動作を繰り返す。
一方、アクセス対象ページテーブル内のデータのPAがページテーブルバッファ503にヒットしなかった場合(ステップ1004,NO)、制御回路601は、キャッシュメモリ501に対してそのデータを要求する(ステップ1005)。そして、テーブルウォーク制御部502は、キャッシュメモリ501からアクセス対象ページテーブル内のデータを取得する。
次に、制御回路601は、取得したデータをページテーブルバッファ503に登録し(ステップ1006)、次のレベルのページテーブルをアクセス対象ページテーブルとして、ステップ1001以降の動作を繰り返す。
アクセス対象ページテーブルがラストレベルのページテーブルである場合(ステップ1002,YES)、制御回路601は、キャッシュメモリ501に対してアクセス対象ページテーブル内のデータを要求する(ステップ1007)。そして、テーブルウォーク制御部502は、キャッシュメモリ501からアクセス対象ページテーブル内のデータを取得する。
次に、アドレス計算回路605は、制御回路601からの指示に従って、アクセス対象データのVAと、取得したデータに含まれる出力アドレスとを用いて、アクセス対象データのPAを計算する(ステップ1008)。そして、制御回路601は、アクセス対象データを含むページのVA及びPAをTLB504に登録する(ステップ1009)。
図1のページテーブルウォークは一例に過ぎず、多段ページテーブルのレベル数、アクセス対象データのVA等は、情報処理装置の構成及び条件に応じて変化する。
図2の演算処理装置201の構成は一例に過ぎず、演算処理装置201の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。
図4の情報処理装置401の構成は一例に過ぎず、情報処理装置401の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。例えば、CPU411が主記憶装置413から情報を直接取得する場合は、L2キャッシュ412を省略してもよい。
情報処理装置401は、ハードディスクドライブ等の補助記憶装置、キーボード、ポインティングデバイス等の入力装置、又は表示装置等の出力装置を含んでいてもよい。さらに、情報処理装置401は、CD−ROM(Compact Disk Read Only Memory)ドライブ等の媒体駆動装置、又はネットワークインタフェースカード等の通信装置を含んでいてもよい。
図5のL1キャッシュ423の構成は一例に過ぎず、情報処理装置401の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。例えば、CPU411が主記憶装置413から情報を直接取得する場合は、キャッシュメモリ501を省略してもよい。キャッシュメモリ501及びL2キャッシュ412を省略した場合、テーブルウォーク制御部502は、主記憶装置413に対してアクセス対象ページテーブル内のデータを要求し、主記憶装置413からそのデータを取得する。
L1キャッシュ423は、L1命令キャッシュであってもよい。L1キャッシュ423がL1命令キャッシュである場合、要求S001は命令を要求する情報要求であり、アクセス対象命令のVAを要求アドレスとして含む。この場合、キャッシュメモリ501は、データS004の代わりにアクセス対象命令を出力する。
図6のテーブルウォーク制御部502、図7のページテーブルバッファ503、図8のエントリ、及び図9の制御キュー701の構成は一例に過ぎず、情報処理装置401の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。
図3及び図10のフローチャートは一例に過ぎず、演算処理装置201又は情報処理装置401の構成又は条件に応じて一部の処理を省略又は変更してもよい。例えば、キャッシュメモリ501及びL2キャッシュ412を省略した場合、図10のステップ1005及びステップ1007において、制御回路601は、主記憶装置413に対してアクセス対象ページテーブル内のデータを要求する。
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
図1乃至図10を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
(付記1)
要求アドレスを含む情報要求を生成する要求生成部と、
ページの仮想アドレスと前記ページの物理アドレスとを対応付けて記憶する変換バッファと、
ラストレベル以外のレベルのページテーブル内のデータと前記ページテーブル内のデータの物理アドレスとを対応付けて記憶するページテーブルバッファと、
前記変換バッファが前記要求アドレスに対応する仮想アドレスを記憶していない場合、前記要求アドレスからアクセス対象ページテーブル内のデータの物理アドレスを求め、前記アクセス対象ページテーブルがラストレベル以外のレベルのページテーブルである場合、前記ページテーブルバッファから前記アクセス対象ページテーブル内のデータを検索し、前記アクセス対象ページテーブルがラストレベルのページテーブルである場合、前記アクセス対象ページテーブル内のデータをメモリから取得して、取得したデータが示すページの仮想アドレス及び物理アドレスを前記変換バッファに登録する制御部と、
を備えることを特徴とする演算処理装置。
(付記2)
前記ページテーブルバッファは、複数のエントリと制御キューとを含み、
前記複数のエントリ各々は、ページテーブル内のデータと、ページテーブル内のデータの物理アドレスとを含み、
前記制御部は、前記アクセス対象ページテーブルがラストレベル以外のレベルのページテーブルであり、かつ、前記ページテーブルバッファが前記アクセス対象ページテーブル内のデータの物理アドレスを記憶していない場合、前記アクセス対象ページテーブル内のデータを前記メモリから取得して前記ページテーブルバッファへ出力し、
前記制御キューは、前記複数のエントリの使用順序を記憶し、前記複数のエントリのうち最近最も使用されていないエントリを示す制御信号を出力し、
前記ページテーブルバッファは、前記アクセス対象ページテーブル内のデータと前記アクセス対象ページテーブル内のデータの物理アドレスとを、前記制御信号が示すエントリに登録することを特徴とする付記1記載の演算処理装置。
(付記3)
前記変換バッファは、前記変換バッファ内の仮想アドレス及び物理アドレスが無効化された場合、消去信号を前記ページテーブルバッファへ出力し、
前記ページテーブルバッファは、前記消去信号に応じて、前記ページテーブルバッファ内のエントリを無効化することを特徴とする付記2記載の演算処理装置。
(付記4)
前記メモリは、キャッシュメモリ又は主記憶装置であることを特徴とする付記1乃至3のいずれか1項に記載の演算処理装置。
(付記5)
情報とページテーブルとを記憶する主記憶装置と、
要求アドレスを含む情報要求を生成する要求生成部と、
ページの仮想アドレスと前記ページの物理アドレスとを対応付けて記憶する変換バッファと、
ラストレベル以外のレベルのページテーブル内のデータと、前記ラストレベル以外のレベルのページテーブル内のデータの物理アドレスとを対応付けて記憶するページテーブルバッファと、
前記変換バッファが前記要求アドレスに対応する仮想アドレスを記憶していない場合、前記要求アドレスからアクセス対象ページテーブル内のデータの物理アドレスを求め、前記アクセス対象ページテーブルがラストレベル以外のレベルのページテーブルである場合、前記ページテーブルバッファから前記アクセス対象ページテーブル内のデータを検索し、前記アクセス対象ページテーブルがラストレベルのページテーブルである場合、前記アクセス対象ページテーブル内のデータを前記主記憶装置から取得して、取得したデータが示すページの仮想アドレス及び物理アドレスを前記変換バッファに登録する制御部と、
を備えることを特徴とする情報処理装置。
(付記6)
前記ページテーブルバッファは、複数のエントリと制御キューとを含み、
前記複数のエントリ各々は、ページテーブル内のデータと、ページテーブル内のデータの物理アドレスとを含み、
前記制御部は、前記アクセス対象ページテーブルがラストレベル以外のレベルのページテーブルであり、かつ、前記ページテーブルバッファが前記アクセス対象ページテーブル内のデータの物理アドレスを記憶していない場合、前記アクセス対象ページテーブル内のデータを前記主記憶装置から取得して前記ページテーブルバッファへ出力し、
前記制御キューは、前記複数のエントリの使用順序を記憶し、前記複数のエントリのうち最近最も使用されていないエントリを示す制御信号を出力し、
前記ページテーブルバッファは、前記アクセス対象ページテーブル内のデータと前記アクセス対象ページテーブル内のデータの物理アドレスとを、前記制御信号が示すエントリに登録することを特徴とする付記5記載の情報処理装置。
(付記7)
前記変換バッファは、前記変換バッファ内の仮想アドレス及び物理アドレスが無効化された場合、消去信号を前記ページテーブルバッファへ出力し、
前記ページテーブルバッファは、前記消去信号に応じて、前記ページテーブルバッファ内のエントリを無効化することを特徴とする付記6記載の情報処理装置。
(付記8)
要求アドレスを含む情報要求を生成し、
ページの仮想アドレスと前記ページの物理アドレスとを対応付けて記憶する変換バッファが、前記要求アドレスに対応する仮想アドレスを記憶していない場合、前記要求アドレスからアクセス対象ページテーブル内のデータの物理アドレスを求め、
前記アクセス対象ページテーブルがラストレベル以外のレベルのページテーブルである場合、ラストレベル以外のレベルのページテーブル内のデータとラストレベル以外のレベルのページテーブル内のデータの物理アドレスとを対応付けて記憶するページテーブルバッファから、前記アクセス対象ページテーブル内のデータを検索し、
前記アクセス対象ページテーブルがラストレベルのページテーブルである場合、前記アクセス対象ページテーブル内のデータをメモリから取得して、取得したデータが示すページの仮想アドレス及び物理アドレスを前記変換バッファに登録する、
ことを特徴とする演算処理装置の制御方法。
(付記9)
前記アクセス対象ページテーブルがラストレベル以外のレベルのページテーブルであり、かつ、前記ページテーブルバッファが前記アクセス対象ページテーブル内のデータの物理アドレスを記憶していない場合、前記アクセス対象ページテーブル内のデータを前記メモリから取得して前記ページテーブルバッファへ出力し、
前記ページテーブルバッファ内の複数のエントリの使用順序を記憶する制御キューから出力される制御信号が示す、最近最も使用されていないエントリに、前記アクセス対象ページテーブル内のデータと前記アクセス対象ページテーブル内のデータの物理アドレスとを登録することを特徴とする付記8記載の演算処理装置の制御方法。
(付記10)
前記変換バッファ内の仮想アドレス及び物理アドレスが無効化された場合、前記変換バッファから前記ページテーブルバッファへ消去信号を出力し、
前記消去信号に応じて、前記ページテーブルバッファ内のエントリを無効化することを特徴とする付記9記載の演算処理装置の制御方法。
(付記11)
前記メモリは、キャッシュメモリ又は主記憶装置であることを特徴とする付記8乃至10のいずれか1項に記載の演算処理装置の制御方法。
101 VA
102 ベースレジスタ
103 Lv0ディスクリプタアドレス
104 レベル0テーブルディスクリプタ
105 Lv1ディスクリプタアドレス
106 レベル1テーブルディスクリプタ
107 Lv2ディスクリプタアドレス
108 レベル2テーブルディスクリプタ
109 Lv3ディスクリプタアドレス
110 レベル3ページディスクリプタ
111 PA
201 演算処理装置
211 要求生成部
212 制御部
213 変換バッファ
214、503 ページテーブルバッファ
401 情報処理装置
411 CPU
412 L2キャッシュ
413 主記憶装置
421 命令制御部
422 演算部
423 L1キャッシュ
501 キャッシュメモリ
502 テーブルウォーク制御部
504 TLB
601 制御回路
602 VAレジスタ
603 ベースレジスタ
604 ページテーブルレジスタ
605 アドレス計算回路
606 出力アドレスレジスタ
607、702 セレクタ
701 制御キュー
703 否定論理和回路
801、802 バッファ
811〜813、816 論理積回路
814 論理和回路
815 比較回路
901、902 矢印
キャッシュメモリ501からレベル0のページテーブル内のデータを取得した場合、制御回路601は、制御信号S011をページテーブルバッファ503へ出力する。また、出力アドレスレジスタ606は、PAを示すアドレス信号S019をページテーブルバッファ503へ出力し、ページテーブルレジスタ604は、レベル0のページテーブル内のデータを示すデータ信号S024をページテーブルバッファ503へ出力する。これにより、レベル0のページテーブル内のデータが、ページテーブルバッファ503に登録される。
各エントリEiは、ページテーブルデータを示すデータ信号S030を、セレクタ702へ出力する。セレクタ702は、エントリE1〜エントリENから出力されるヒット信号S028に基づいて、論理“1”のヒット信号S028が示すエントリのデータ信号S030を選択し、データ信号S025として出力する。
否定論理和回路703は、エントリE1〜エントリENから出力されるヒット信号S028の否定論理和をミス信号S026として出力する。したがって、アドレス信号S019が示すPAがいずれかのエントリのPAと一致した場合、ミス信号S026は論理“0”となり、アドレス信号S019が示すPAがいずれのエントリのPAとも一致しない場合、ミス信号S026は論理“1”となる。ミス信号S026が論理“1”である場合、テーブルウォーク制御部502は、制御信号S007及びアドレス信号S018をキャッシュメモリ501へ出力する。

Claims (5)

  1. 要求アドレスを含む情報要求を生成する要求生成部と、
    ページの仮想アドレスと前記ページの物理アドレスとを対応付けて記憶する変換バッファと、
    ラストレベル以外のレベルのページテーブル内のデータと前記ページテーブル内のデータの物理アドレスとを対応付けて記憶するページテーブルバッファと、
    前記変換バッファが前記要求アドレスに対応する仮想アドレスを記憶していない場合、前記要求アドレスからアクセス対象ページテーブル内のデータの物理アドレスを求め、前記アクセス対象ページテーブルがラストレベル以外のレベルのページテーブルである場合、前記ページテーブルバッファから前記アクセス対象ページテーブル内のデータを検索し、前記アクセス対象ページテーブルがラストレベルのページテーブルである場合、前記アクセス対象ページテーブル内のデータをメモリから取得して、取得したデータが示すページの仮想アドレス及び物理アドレスを前記変換バッファに登録する制御部と、
    を備えることを特徴とする演算処理装置。
  2. 前記ページテーブルバッファは、複数のエントリと制御キューとを含み、
    前記複数のエントリ各々は、ページテーブル内のデータと、ページテーブル内のデータの物理アドレスとを含み、
    前記制御部は、前記アクセス対象ページテーブルがラストレベル以外のレベルのページテーブルであり、かつ、前記ページテーブルバッファが前記アクセス対象ページテーブル内のデータの物理アドレスを記憶していない場合、前記アクセス対象ページテーブル内のデータを前記メモリから取得して前記ページテーブルバッファへ出力し、
    前記制御キューは、前記複数のエントリの使用順序を記憶し、前記複数のエントリのうち最近最も使用されていないエントリを示す制御信号を出力し、
    前記ページテーブルバッファは、前記アクセス対象ページテーブル内のデータと前記アクセス対象ページテーブル内のデータの物理アドレスとを、前記制御信号が示すエントリに登録することを特徴とする請求項1記載の演算処理装置。
  3. 前記変換バッファは、前記変換バッファ内の仮想アドレス及び物理アドレスが無効化された場合、消去信号を前記ページテーブルバッファへ出力し、
    前記ページテーブルバッファは、前記消去信号に応じて、前記ページテーブルバッファ内のエントリを無効化することを特徴とする請求項2記載の演算処理装置。
  4. 情報とページテーブルとを記憶する主記憶装置と、
    要求アドレスを含む情報要求を生成する要求生成部と、
    ページの仮想アドレスと前記ページの物理アドレスとを対応付けて記憶する変換バッファと、
    ラストレベル以外のレベルのページテーブル内のデータと、前記ラストレベル以外のレベルのページテーブル内のデータの物理アドレスとを対応付けて記憶するページテーブルバッファと、
    前記変換バッファが前記要求アドレスに対応する仮想アドレスを記憶していない場合、前記要求アドレスからアクセス対象ページテーブル内のデータの物理アドレスを求め、前記アクセス対象ページテーブルがラストレベル以外のレベルのページテーブルである場合、前記ページテーブルバッファから前記アクセス対象ページテーブル内のデータを検索し、前記アクセス対象ページテーブルがラストレベルのページテーブルである場合、前記アクセス対象ページテーブル内のデータを前記主記憶装置から取得して、取得したデータが示すページの仮想アドレス及び物理アドレスを前記変換バッファに登録する制御部と、
    を備えることを特徴とする情報処理装置。
  5. 要求アドレスを含む情報要求を生成し、
    ページの仮想アドレスと前記ページの物理アドレスとを対応付けて記憶する変換バッファが、前記要求アドレスに対応する仮想アドレスを記憶していない場合、前記要求アドレスからアクセス対象ページテーブル内のデータの物理アドレスを求め、
    前記アクセス対象ページテーブルがラストレベル以外のレベルのページテーブルである場合、ラストレベル以外のレベルのページテーブル内のデータとラストレベル以外のレベルのページテーブル内のデータの物理アドレスとを対応付けて記憶するページテーブルバッファから、前記アクセス対象ページテーブル内のデータを検索し、
    前記アクセス対象ページテーブルがラストレベルのページテーブルである場合、前記アクセス対象ページテーブル内のデータをメモリから取得して、取得したデータが示すページの仮想アドレス及び物理アドレスを前記変換バッファに登録する、
    ことを特徴とする演算処理装置の制御方法。
JP2018109705A 2018-06-07 2018-06-07 演算処理装置、情報処理装置、及び演算処理装置の制御方法 Active JP7155629B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018109705A JP7155629B2 (ja) 2018-06-07 2018-06-07 演算処理装置、情報処理装置、及び演算処理装置の制御方法
US16/418,018 US10929306B2 (en) 2018-06-07 2019-05-21 Arithmetic processor, information processing apparatus, and control method of arithmetic processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018109705A JP7155629B2 (ja) 2018-06-07 2018-06-07 演算処理装置、情報処理装置、及び演算処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2019212167A true JP2019212167A (ja) 2019-12-12
JP7155629B2 JP7155629B2 (ja) 2022-10-19

Family

ID=68764939

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018109705A Active JP7155629B2 (ja) 2018-06-07 2018-06-07 演算処理装置、情報処理装置、及び演算処理装置の制御方法

Country Status (2)

Country Link
US (1) US10929306B2 (ja)
JP (1) JP7155629B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593274B2 (en) 2020-06-15 2023-02-28 Fujitsu Limited Caching of address translation table in last stage of multi-stage page table walk

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10997083B2 (en) * 2018-09-04 2021-05-04 Arm Limited Parallel page table entry access when performing address translations

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008155825A1 (ja) * 2007-06-19 2008-12-24 Fujitsu Limited 演算処理装置および演算処理方法
US20110010521A1 (en) * 2009-07-13 2011-01-13 James Wang TLB Prefetching
US20160125569A1 (en) * 2014-10-29 2016-05-05 Canon Kabushiki Kaisha Data processing apparatus and method of processing a plurality of input data based on respective attribute information thereof
US20170212844A1 (en) * 2016-01-21 2017-07-27 Arm Limited Measuring address translation latency

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586283A (en) * 1993-10-07 1996-12-17 Sun Microsystems, Inc. Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer
US6715057B1 (en) * 2000-08-31 2004-03-30 Hewlett-Packard Development Company, L.P. Efficient translation lookaside buffer miss processing in computer systems with a large range of page sizes

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008155825A1 (ja) * 2007-06-19 2008-12-24 Fujitsu Limited 演算処理装置および演算処理方法
US20110010521A1 (en) * 2009-07-13 2011-01-13 James Wang TLB Prefetching
JP2012533135A (ja) * 2009-07-13 2012-12-20 アップル インコーポレイテッド Tlbプリフェッチング
US20160125569A1 (en) * 2014-10-29 2016-05-05 Canon Kabushiki Kaisha Data processing apparatus and method of processing a plurality of input data based on respective attribute information thereof
JP2016091049A (ja) * 2014-10-29 2016-05-23 キヤノン株式会社 データ処理装置、データ処理方法及びプログラム
US20170212844A1 (en) * 2016-01-21 2017-07-27 Arm Limited Measuring address translation latency
WO2017125701A1 (en) * 2016-01-21 2017-07-27 Arm Limited Measuring address translation latency
JP2019506670A (ja) * 2016-01-21 2019-03-07 エイアールエム リミテッド アドレス変換レイテンシの測定

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593274B2 (en) 2020-06-15 2023-02-28 Fujitsu Limited Caching of address translation table in last stage of multi-stage page table walk

Also Published As

Publication number Publication date
US10929306B2 (en) 2021-02-23
JP7155629B2 (ja) 2022-10-19
US20190377686A1 (en) 2019-12-12

Similar Documents

Publication Publication Date Title
JP6133896B2 (ja) 物理アドレスを用いる非割当てメモリアクセス
KR102448124B1 (ko) 가상 주소들을 사용하여 액세스된 캐시
US9405702B2 (en) Caching TLB translations using a unified page table walker cache
JP7249272B2 (ja) キャッシュ、キャッシュを有するプロセッサ、及び、キャッシュ制御方法
US9465748B2 (en) Instruction fetch translation lookaside buffer management to support host and guest O/S translations
US9311239B2 (en) Power efficient level one data cache access with pre-validated tags
US20160140042A1 (en) Instruction cache translation management
US9934152B1 (en) Method and apparatus to use hardware alias detection and management in a virtually indexed physically tagged cache
US10223279B2 (en) Managing virtual-address caches for multiple memory page sizes
US20230102891A1 (en) Re-reference interval prediction (rrip) with pseudo-lru supplemental age information
US10831674B2 (en) Translation support for a virtual cache
CN105446898B (zh) 用于数据处理的装置及方法
TW201633144A (zh) 管理快取記憶體中的重用資訊
JP7155629B2 (ja) 演算処理装置、情報処理装置、及び演算処理装置の制御方法
JP2013097671A (ja) アドレス変換装置、アドレス変換装置の制御方法及び演算処理装置
JP2023179708A (ja) 命令キャッシュにおけるプリフェッチの強制終了及び再開
US9842051B1 (en) Managing aliasing in a virtually indexed physically tagged cache
US11494300B2 (en) Page table walker with page table entry (PTE) physical address prediction
US11704250B2 (en) Using request class and reuse recording in one cache for insertion policies of another cache
US20240111677A1 (en) Region pattern-matching hardware prefetcher
JP2023087399A (ja) 情報処理装置および制御方法
CN114218132B (zh) 信息预取方法、处理器、电子设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190328

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220302

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20220302

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220614

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220808

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220919

R150 Certificate of patent or registration of utility model

Ref document number: 7155629

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150