JPWO2008155825A1 - 演算処理装置および演算処理方法 - Google Patents

演算処理装置および演算処理方法 Download PDF

Info

Publication number
JPWO2008155825A1
JPWO2008155825A1 JP2009520179A JP2009520179A JPWO2008155825A1 JP WO2008155825 A1 JPWO2008155825 A1 JP WO2008155825A1 JP 2009520179 A JP2009520179 A JP 2009520179A JP 2009520179 A JP2009520179 A JP 2009520179A JP WO2008155825 A1 JPWO2008155825 A1 JP WO2008155825A1
Authority
JP
Japan
Prior art keywords
tsb
address
translation pair
address translation
arithmetic processing
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
JP2009520179A
Other languages
English (en)
Other versions
JP4608011B2 (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 JPWO2008155825A1 publication Critical patent/JPWO2008155825A1/ja
Application granted granted Critical
Publication of JP4608011B2 publication Critical patent/JP4608011B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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

仮想アドレスを物理アドレスに変換するアドレス変換対を記憶したTSB領域が格納された記憶手段にアクセスを行う演算処理装置であって、TSB領域の一部を記憶するTLBと、アドレス変換対を一時的に記憶するキャッシュメモリと、記憶手段に格納されたアドレス変換対の開始物理アドレスであるTSB基底物理アドレスを記憶するTSB基底物理アドレス記憶手段とを備え、TSB基底物理アドレスと変換対象の仮想アドレスに基づいて、アドレス変換対をTSB領域から取得する際に用いられるTSBポインタを算出し、変換対象の仮想アドレスに対応するアドレス変換対が、TLB又はキャッシュメモリから検索されない場合には、算出されたTSBポインタを用いて、変換対象の仮想アドレスに対応するアドレス変換対をTSB領域から取得して、キャッシュメモリに記憶させる。

Description

この発明は、演算処理装置、演算処理プログラムおよび演算処理方法に関する。
従来より、多くのコンピュータにおいて、「仮想記憶方式」が採用されている。「仮想記憶方式」とは、外部記憶装置(ハードディスク装置等)をメモリの待避領域として利用することで、コンピュータが実装しているメモリ容量よりも多くのメモリ容量がコンピュータに備えられているようにみせかける技術である。すなわち、「仮想記憶方式」とは、メモリ容量が不足すると、メモリ上の情報のうち使用頻度の少ない情報を、OSが予めハードディスク装置内に確保していたスワップ領域に一時的に待避させることで、一時的にメモリ容量の不足を補うものである。
かかる「仮想記憶方式」では、「仮想アドレス(VA:Virtual Address)」および「物理アドレス(PA:Physical Address)」の2つのアドレスを利用する。アプリケーション側がメモリに対して読み書き(メモリアクセス)を行う場合には、仮想アドレスを利用する。これに対して、メモリの素子に付与されているアドレスが物理アドレスである。仮想記憶方式を採用するコンピュータは、仮想アドレスから物理アドレスへの変換を行うことを目的として、仮想アドレスと物理アドレスとを変換するアドレス変換対(TTE(Translation Table Entry))を一覧表(以下、ページテーブルと呼ぶ)で記憶している。
ところで、ページテーブルは、通常、メインメモリのTSB領域(Translation Storage Buffer領域)に記憶されているが、仮想アドレス(TTE−Tag)から物理アドレス(TTE−Data)への変換が必要になるたびに、メインメモリに記憶されているページテーブルをCPU(Central Processing Unit)が参照しに行くとすると、CPUからメインメモリへのアクセスは低速にならざるを得ないことから、変換に非常に多くの時間が費やされることになってしまう。これを避けることを目的として、通常、TLB(Translation−Lookaside Buffer:アドレス変換バッファ)と呼ばれるアドレス変換専用のキャッシュメモリがCPU内部に備えられており、TLBが、TSB領域に記憶されているページテーブルの一部のアドレス変換対を記憶している。
このような構成のもと、CPUは、メモリアクセスを行う際に、まず、TLBを検索する。TLBの検索に際し、CPUは、仮想アドレスとコンテキストID(プロセス毎に固有のID)とを用いる。これら2つについて、TLBの検索に用いた値とTLBに記憶されている値とが一致した時、TLBにアドレス変換結果が存在しているとみなされ、CPUは、アドレス変換結果を取得する。所望のアドレスおよびコンテキストIDに対応したアドレス変換結果がTLBに存在する時を、TLBヒットと呼び、存在しない時を、TLBミス(MMU(Memory Management Unit)−MISS)と呼ぶ。かかるTLBミスが発生した場合、MMU−MISS−TRAPが発生するので、CPUは、このMMU−MISS−TRAPの発生をOSに報告し、報告を受けたOSが、CPUに対して、トラップ処理を行う。
ここで、特許文献1や2に開示されている従来技術(主に、トラップ処理関連)について、図7を用いて説明する。図7は、従来技術を説明するための図である。なお、CPUによるメモリアクセスの処理は、本来、処理の途中で複数の判断を伴って分岐して行われるものであるが、図7は、(A)と(B)との違いを明確に説明する便宜上から、処理について判断を伴わない形で示し、また、通常のトラップ処理とそれ以外の処理とを区別せずに示すものである。また、図7において四角で囲んでいる部分は、(A)と(B)とで共通の処理を示すものである。
まず、図7の(A)について説明すると、まず、CPUが、メモリアクセスを行う際に、OSから指定された所定の仮想アドレスによるTLBの検索に失敗(TLBミス)すると、CPUにおいて、MMU−MISS−TRAPが発生する((1)を参照)。すると、CPUは、MMU−MISS−TRAPをOSに報告するので、OSは、CPUに対して、トラップ処理を行う。具体的には、CPUは、MMU−MISS−TRAPが発生した所定の仮想アドレスを、レジスタにセットする((2)を参照)。続いて、CPUは、仮想アドレスに基づいて、当該仮想アドレスに対応するTSB仮想アドレスを生成する((3)を参照)。ここで、TSB仮想アドレスとは、当該仮想アドレスに関するアドレス変換対を記憶しているTSB領域上の仮想アドレスのことである。そして、CPUは、生成したTSB仮想アドレスを、レジスタにセットする((4)を参照)。
次に、CPUは、レジスタにセットした仮想アドレスおよびTSB仮想アドレスをレジスタから読み出す((5)を参照)。続いて、CPUは、TSB仮想アドレスと、当該TSB仮想アドレスに対応するTSB物理アドレス(TSBポインタ)とのアドレス変換対を、TLBから検索する((6)を参照)。そして、CPUは、TLBから検索されたTSB物理アドレスを用いて、まず、キャッシュメモリを検索する((7)を参照)。
ここでは、キャッシュメモリを検索した結果、アドレス変換対(仮想アドレスと物理アドレスとのアドレス変換対)が検索されない場合(キャッシュミスが発生した場合)を想定するので、次に、CPUは、TLBから検索されたTSB物理アドレスを用いて、メインメモリを検索する((8)を参照)。そして、CPUは、メインメモリから該当するアドレス変換対を読み出し、キャッシュメモリに登録する((9)を参照)。
次に、CPUは、再度、TSB仮想アドレスと、当該TSB仮想アドレスに対応するTSB物理アドレスとのアドレス変換対を、TLBから検索する((10)を参照)。続いて、CPUは、TLBから検索されたTSB物理アドレスを用いて、キャッシュメモリを検索する((11)を参照)。ここでは、キャッシュメモリを検索した結果、アドレス変換対が検索されるはずであるので((9)において、アドレス変換対をキャッシュメモリに登録しているので、キャッシュミスが発生することはない)、CPUは、キャッシュメモリからアドレス変換対を読み出して、TLBに登録する((12)を参照)。こうすることで、CPUが、TLBミスした所定の仮想アドレスによるTLBの検索を再度行うと、今度は、TLBヒットすることになる。
ところで、上記してきた(A)の処理の手順を改めて検討すると、CPUは、(8)で発生したキャッシュミスを起因として、(10)および(11)の処理を再び行わなければならず、キャッシュミス時のペナルティ(遅延等)が非常に大きいものとなってしまう。このようなことから、特許文献1においては、図7の(B)の(7)に示すように、CPUが、通常のトラップ処理とは別に、TLBから検索されたTSB物理アドレスを用いてメインメモリを検索し、メインメモリからアドレス変換対を取得し、取得したアドレス変換対をキャッシュメモリにプリフェッチする手法を提案している。
特開2007−122667号公報 特開平7−200409号公報
ところで、上記した従来技術では、以下に説明するように、TLBミス時のペナルティが依然として大きいという課題があった。すなわち、従来技術では、CPUが、仮想アドレスと物理アドレスとのアドレス変換対を、メインメモリ上のTSB領域から取得してキャッシュメモリにプリフェッチする処理自体に、依然として時間を要している。具体的に説明すると、従来技術では、CPUがアドレス変換対をTSB領域から取得するにあたり、TSB物理アドレスをTLBから検索しなければならないが、この検索に、時間を要しているのである。また、従来技術では、TSB仮想アドレスの計算をしなければならないが、TSB仮想アドレスの計算が煩雑なことから回路規模が大きくなり、実装コストが掛かってしまう。
そこで、この発明は、上記した従来技術の課題を解決するためになされたものであり、TLBミス時のペナルティを低減することが可能な演算処理装置、演算処理プログラムおよび演算処理方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、請求項1に係る発明は、仮想アドレスを物理アドレスに変換するアドレス変換対を記憶したTSB領域が格納された記憶手段にアクセスを行う演算処理装置であって、前記TSB領域の一部を記憶するTLBと、前記アドレス変換対を一時的に記憶するキャッシュメモリと、前記記憶手段に格納されたアドレス変換対の開始物理アドレスであるTSB基底物理アドレスを記憶するTSB基底物理アドレス記憶手段と、前記TSB基底物理アドレスと変換対象の仮想アドレスに基づいて、当該アドレス変換対を前記TSB領域から取得する際に用いられるTSBポインタを算出するTSBポインタ算出手段と、変換対象の仮想アドレスに対応するアドレス変換対が、前記TLB又は前記キャッシュメモリから検索されない場合には、前記算出されたTSBポインタを用いて、前記変換対象の仮想アドレスに対応するアドレス変換対を前記TSB領域から取得して、前記キャッシュメモリに記憶させる変換対取得手段を備えたことを特徴とする。
また、請求項2に係る発明は、前記変換対取得手段は、前記変換対象の仮想アドレスに対応するアドレス変換対が前記TLBから検索されない場合には、前記アドレス変換対が前記キャッシュメモリに記憶されているか否かをOSのトラップ処理により確認し、前記TSBポインタを用いて前記TSB領域から取得した前記アドレス変換対象のアドレス変換対を、前記トラップ処理における前記確認よりも前に前記キャッシュメモリに記憶させることを特徴とする。
また、請求項3に係る発明は、前記変換対取得手段は、前記変換対象の仮想アドレスが前記キャッシュメモリに記憶されていない場合には、前記アドレス変換対を前記TSB領域から取得して前記キャッシュメモリに記憶した後に、前記TLBに登録することを特徴とする。
また、請求項4に係る発明は、前記演算処理装置はさらに、前記TSB領域からの前記アドレス変換対の取得を制御するレジスタ手段を有し、前記レジスタに格納された情報に基づいて、前記変換対取得手段による前記TSB領域からのアドレス変換対の取得を制御することを特徴とする。
また、請求項5に係る発明は、前記変換対取得手段は、前記演算処理内におけるハードウェアエラーが発生した場合には、前記変換対取得手段による前記TSB領域からのアドレス変換対の取得を禁止することを特徴とする。
また、請求項6に係る発明は、前記TSB領域の一部を記憶するTLBと、前記アドレス変換対を一時的に記憶するキャッシュメモリとを有するとともに、仮想アドレスを物理アドレスに変換するアドレス変換対を記憶したTSB領域が格納された記憶装置にアクセスを行う演算処理装置の演算処理方法であって、前記記憶装置に格納されたアドレス変換対の開始物理アドレスであるTSB基底物理アドレスを記憶するステップと、前記TSB基底物理アドレスと変換対象の仮想アドレスに基づいて、当該アドレス変換対を前記TSB領域から取得する際に用いられるTSBポインタを算出するステップと、変換対象の仮想アドレスに対応するアドレス変換対が、前記TLB又は前記キャッシュメモリから検索されない場合には、前記算出されたTSBポインタを用いて、前記変換対象の仮想アドレスに対応するアドレス変換対を前記TSB領域から取得して、前記キャッシュメモリに記憶させるステップを備えたことを特徴とする。
また、請求項7に係る発明は、前記演算処理方法は、前記変換対象の仮想アドレスに対応するアドレス変換対が前記TLBから検索されない場合には、前記アドレス変換対が前記キャッシュメモリに記憶されているか否かをOSのトラップ処理により確認するステップと、前記TSBポインタを用いて前記TSB領域から取得した前記アドレス変換対象のアドレス変換対を、前記トラップ処理における前記確認よりも前に前記キャッシュメモリに記憶させるステップを有することを特徴とする。
また、請求項8に係る発明は、前記演算処理方法は、前記変換対象の仮想アドレスが前記キャッシュメモリに記憶されていない場合には、前記アドレス変換対を前記TSB領域から取得して前記キャッシュメモリに記憶した後に、前記TLBに登録するステップを有することを特徴とする。
また、請求項9に係る発明は、前記演算処理方法はさらに、前記TSB領域からの前記アドレス変換対の取得を制御するレジスタを有し、前記レジスタに格納された情報に基づいて、前記TSB領域からのアドレス変換対の取得を制御するステップを有することを特徴とする。
また、請求項10に係る発明は、前記変換対取得方法はさらには、前記演算処理内におけるハードウェアエラーが発生した場合には、前記TSB領域からのアドレス変換対の取得を禁止するステップを有することを特徴とする。
本発明によれば、仮想アドレスを物理アドレスに変換するアドレス変換対を記憶したTSB領域が格納された記憶手段にアクセスを行う演算処理装置であって、TSB領域の一部を記憶するTLBと、アドレス変換対を一時的に記憶するキャッシュメモリと、記憶手段に格納されたアドレス変換対の開始物理アドレスであるTSB基底物理アドレスを記憶するTSB基底物理アドレス記憶手段とを備え、TSB基底物理アドレスと変換対象の仮想アドレスに基づいて、アドレス変換対をTSB領域から取得する際に用いられるTSBポインタを算出し、変換対象の仮想アドレスに対応するアドレス変換対が、TLB又はキャッシュメモリから検索されない場合には、算出されたTSBポインタを用いて、変換対象の仮想アドレスに対応するアドレス変換対をTSB領域から取得して、キャッシュメモリに記憶させるので、TLBミス時のペナルティを低減することが可能になる。
図1は、実施例1に係る演算処理装置の概要および特徴を説明するための図である。 図2は、実施例1に係る演算処理装置の構成を示すブロック図である。 図3は、TSB−PF−REG(TSB基底物理アドレス記憶部)を説明するための図である。 図4は、TSBポインタを導出する計算式を説明するための図である。 図5は、CPUの一般的な構成を示すブロック図である。 図6は、実施例1に係る演算処理装置の処理の手順を示すフローチャートである。 図7は、従来技術を説明するための図である。
符号の説明
10 CPU
11 命令制御部
12 演算部
13 TLB
14 TSB−PF−REG
15 TSBプリフェッチ制御回路
16 (L2)キャッシュ
20 メインメモリ
21 TSB領域
100 CPU
200 命令制御部
250 演算部
300 TLB(アドレス変換バッファ)
400 L1命令TAG
450 L1データTAG
500 L1命令キャッシュ
550 L1データキャッシュ
600 L2キャッシュ
700 メインメモリ
以下に添付図面を参照して、本実施例に係る演算処理装置、演算処理プログラムおよび演算処理方法の実施例を説明する。なお、以下では、実施例で用いる主要な用語、実施例1に係る演算処理装置の概要および特徴、実施例1に係る演算処理装置の構成、実施例1に係る演算処理装置による処理の手順、実施例1の効果を説明し、続いて、他の実施例について説明する。
[用語の説明]
まず最初に、以下の実施例で用いる主要な用語を説明する。「仮想記憶方式」とは、外部記憶装置をメモリの待避領域として利用することで、コンピュータが実装しているメモリ容量よりも多くのメモリ容量がコンピュータに備えられているようにみせかける技術である。
かかる「仮想記憶方式」では、「仮想アドレス(VA:Virtual Address)」および「物理アドレス(PA:Physical Address)」の2つのアドレスを利用する。アプリケーション側がメモリに対して読み書き(メモリアクセス)を行う場合には、「仮想アドレス」を利用する。これに対して、メモリの素子に付与されているアドレスが「物理アドレス」である。「仮想記憶方式」を採用するCPU(Central Processing Unit)は、「仮想アドレス」から「物理アドレス」への変換を行うことを目的として、「仮想アドレス」と「物理アドレス」とを変換するアドレス変換対(TTE(Translation Table Entry))の一覧表(以下、ページテーブルと呼ぶ)を、メインメモリの「TSB領域(Translation Storage Buffer領域)」に記憶している。
ところで、「仮想アドレス」から「物理アドレス」への変換が必要になるたびに、「TSB領域」に記憶されているページテーブルをCPUが参照しに行くとすると、CPUからメインメモリへのアクセスは低速にならざるを得ないことから、変換に非常に多くの時間が費やされることになってしまう。これを避けることを目的として、通常、「TLB(Translation−Lookaside Buffer:アドレス変換バッファ)」と呼ばれるアドレス変換専用のキャッシュメモリがCPU内部に備えられており、「TLB」が、「TSB領域」に記憶されているページテーブルの一部のアドレス変換対を記憶している。
ここで、アプリケーション側がメモリに対して読み書き(メモリアクセス)を行う場合について説明すると、まず、CPUが、OSから所定の「仮想アドレス」を指定される。続いて、CPUは、OSから指定された所定の「仮想アドレス」による「TLB」の検索を行い、当該検索に失敗すると(TLBミスが発生すると)、トラップ処理として、当該所定の「仮想アドレス」に関するアドレス変換対(所定の「仮想アドレス」に対応づけられている「物理アドレス」とのアドレス変換対)が、「キャッシュメモリ」に記憶されているか否かを確認する。記憶されている場合には、記憶されているアドレス変換対を「TLB」に登録し、記憶されていない場合には、アドレス変換対を「TSB領域」から取得して一旦「キャッシュメモリ」に記憶させた後に、「TLB」に登録する。こうすることで、CPUが、TLBミスした所定の「仮想アドレス」による「TLB」の検索を再び行うと、今度は、当該検索に失敗しない(TLBヒットする)ことになる。
このように、CPUは、TLBミスが発生した場合に、トラップ処理として、アドレス変換対を「TLB」に登録しなければならないが、上記したように、様々な処理を経る必要があり、TLBミス時のペナルティ(遅延等)が大きくなってしまう。本実施例に係る演算処理装置は、このようなTLBミス時のペナルティを低減するものである。
[実施例1に係る演算処理装置の概要および特徴]
続いて、図1を用いて、実施例1に係る演算処理装置の概要および特徴を説明する。図1は、実施例1に係る演算処理装置の概要および特徴を説明するための図である。なお、実施例1に係る演算処理装置は、CPUに備えられる制御回路や命令制御部で実行されるプログラムとして実現されている。
実施例1に係る演算処理装置は、TSB領域をメインメモリが備え、TLBと(L2)キャッシュメモリとをCPUが備えている構成の下、TLBの検索に失敗(TLBミス)すると、トラップ処理として、アドレス変換対が(L2)キャッシュメモリに記憶されているか否かを確認し、記憶されている場合には、記憶されているアドレス変換対をTLBに登録し、記憶されていない場合には、アドレス変換対をTSB領域から取得してキャッシュメモリに記憶させた後にTLBに登録することを概要とし、効果の観点において、TLBミス時のペナルティを低減することを主たる特徴とする。
この主たる特徴について、構成の観点から簡単に説明すると、まず、実施例1に係る演算処理装置は、TLBの検索において指定された仮想アドレスに関するアドレス変換対のTSB基底物理アドレス(メインメモリに格納されたアドレス変換対の開始物理アドレス)を、OSからのストア命令で記憶している(図1の(1)を参照)。具体的には、演算処理装置は、TSB基底物理アドレスを、レジスタ(TSB−PF−REG:TSB−PreFetch−REGister、特許請求の範囲に記載の「TSB基底物理アドレス記憶手段」に対応する)に記憶している。
このような構成のもと、TLBの検索に失敗(TLBミス)すると、演算処理装置は、TSB−PF−REGによって記憶されているTSB基底物理アドレスと、TLBの検索において指定された所定の仮想アドレスとを、所定の計算式に代入することで、TSBポインタ(所定の仮想アドレスに関するアドレス変換対をTSBから取得する際に用いられるポインタ)を算出する(図1の(2)を参照)。具体的には、演算処理装置は、TSBプリフェッチ制御回路において、TSBポインタを算出する。
続いて、演算処理装置は、導出されたTSBポインタを利用してTSB領域からアドレス変換対を取得し、取得したアドレス変換対を、トラップ処理における確認((L2)キャッシュメモリにアドレス変換対が記憶されているか否かの確認)よりも前に、(L2)キャッシュメモリに記憶させる(図1の(3)を参照)。
すなわち、実施例1に係る演算処理装置は、TLBの検索に失敗(TLBミス)すると、上記したような処理とは別に通常のトラップ処理を行うが、図1の(4)に示すように、通常のトラップ処理として行われる「アドレス変換対が(L2)キャッシュメモリに記憶されているか否かの確認」は、(3)の後の処理として行われることになる。
このようなことから、実施例1に係る演算処理装置は、TLBミス時のペナルティを低減することが可能になる。
具体的に説明すると、実施例1に係る演算処理装置は、TLBミス時に、通常のトラップ処理と並行に(あるいは前に)アドレス変換対をプリフェッチして、トラップ処理における確認よりも前にアドレス変換対を(L2)キャッシュメモリに記憶させておくことで、トラップ処理の過程においてキャッシュミスを発生させない結果、メモリーレイテンシーを隠蔽し、トラップ処理を高速化することが可能になる。言い換えると、トラップ処理で、TSBへのメモリアクセスリクエストが行われた時には、必ずキャッシュヒットする結果、アドレス変換対を即座にTLBに登録することが可能になる。
また、実施例1に係る演算処理装置は、アドレス変換対をメインメモリ上のTSB領域から取得して(L2)キャッシュメモリにプリフェッチする処理において、TSB物理アドレスをTLBから検索する必要がなく、予めレジスタに記憶されているTSB基底物理アドレスと仮想アドレスとを利用するだけでよいことから、TSB物理アドレスをTLBから検索する処理の時間分を短縮する結果、TLBミス時のペナルティを低減することが可能になる。また、実施例1に係る演算処理装置は、TSB物理アドレスの計算が簡素なことから、回路規模も小さくなり、実装コストも削減することが可能になる。
[実施例1に係る演算処理装置の構成]
次に、図2〜5を用いて、実施例1に係る演算処理装置の構成を説明する。図2は、実施例1に係る演算処理装置の構成を示すブロック図であり、図3は、TSB−PF−REG(TSB基底物理アドレス記憶部)を説明するための図であり、図4は、TSBポインタを導出する計算式を説明するための図であり、図5は、CPUの一般的な構成を示すブロック図である。
まず、図2を用いて、実施例1に係る演算処理装置の構成について説明する。実施例1に係る演算処理装置は、CPU10に備えられる制御回路や命令制御部で実行されるプログラムとして実現されている。なお、図2は、実施例1に係る演算処理装置の構成を説明する便宜上、CPUを構成する部の一部を抽出して例示するものにすぎない。したがって、図2は、本実施例に係る演算処理装置を構成する全ての部を示すものではない。
CPU10は、本実施例に密接に関連するものとして、図2に示すように、命令制御部11と、演算部12と、TLB13と、TSB−PF−REG14と、TSBプリフェッチ制御回路15と、(L2)キャッシュメモリ16とから主に構成される。なお、メインメモリ20は、記憶装置の一つとしてCPU10の外部に備えられ、TSB領域21を備えている。
TLB13は、TSB領域21に記憶されているページテーブルの一部のアドレス変換対を記憶している。具体的には、TLB13は、仮想アドレス(図2の「VA」)と物理アドレス(図2の「PA」)とのアドレス変換対を記憶している。また、TLB13は、図2に示すように、MATCH回路を備えている。MATCH回路は、命令制御部11からTLB13を検索する指示(図2の「TLB検索」)を受け付けると、仮想アドレス(図2の「VA」)とコンテキストID(図2の「ctxt」)との2つについて、TLB13の検索に用いた値とTLB13に記憶されている値とが一致するか否かを判定し、一致した時、TLBヒット(図2の「TLB−HIT」)とし、一致しない時を、TLBミス(図2の「TLB−MISS」)とする。
TSB−PF−REG14は、所定の仮想アドレスに関するアドレス変換対のTSB基底物理アドレス(メインメモリ20上に格納されたアドレス変換対の開始物理アドレス)を記憶している。具体的には、検索において指定された所定の仮想アドレス(図2の「アクセスVA」)に関するアドレス変換対について、アドレス変換対を記憶しているメインメモリ20上の物理アドレスの基底となる(開始物理アドレスである)TSB基底物理基底アドレスを、OSからのストア命令で予め記憶している。なお、TSB−PF−REG14は、特許請求の範囲に記載の「TSB基底物理アドレス記憶手段」に対応する。
TSB−PF−REG14の一例について説明すると、TSB−PF−REG14は、例えば、図3に示すように、スレッドごとの8本のレジスタとして用意される。「Context番号=0用」が、主に「kernel mode」用、「Context番号≠0用」が、主に「user mode」用であり、各々、「命令」、「データ」ごとに2種類のTLB(1st/2nd)を指定することが可能である。また、TSB−PF−REG14は、ページサイズを指定することも可能である。
TSB−PF−REG14には、例えば、以下に説明するようなフィールドを用意しておく。例えば、「TSB base in physical」フィールドは、TSB baseポインタを物理アドレスで指定するものである。また、「Valid」フィールドは、「valid bit」が「1」の時、プリフェッチを行い、「0」の時、プリフェッチを行わないという選択を指定するものである。また、「page_size」フィールドは、TSB領域21のページサイズを指定するものである。また、「TSB_size」フィールドは、TSB領域21のエントリ数(512×2**TSB_size)を指定するものである。
演算部12は、演算を行うなどする。本実施例に密接に関連する点についてのみ説明すると、演算部12は、通常のトラップ処理の他に、TSB物理アドレスをTSB−PF−REG14に記憶させる処理などをする。
命令制御部11は、OSからの指示を受け付け、CPU10が行う処理の流れを制御するなどする。本実施例に密接に関連する点についてのみ説明すると、命令制御部11は、通常のトラップ処理の他に、OSから指定された所定の仮想アドレスによるTLB13の検索処理や、TSB基底物理アドレスをTSB−PF−REG14に記憶させる処理や、TSBポインタを算出する処理や、TSB領域21から取得したアドレス変換対を(L2)キャッシュメモリ16に記憶させる処理を制御するなどする。なお、命令制御部11は、特許請求の範囲に記載の「TSBポインタ算出手段」や「変換対取得手段」に対応する機能を、後述するTSBプリフェッチ制御回路15などとともに実現する。
以下に、TSBプリフェッチ制御回路15の説明を兼ねて、命令制御部11およびTSBプリフェッチ制御回路15による処理について、その手順を具体的に説明する。命令制御部11は、メモリアクセスを行う際に、OSから指定された所定の仮想アドレス(図2の「アクセスVA」)を用いて、TLB13を検索する(図2の「TLB検索」)。この検索に失敗(TLBミス)すると、命令制御部11は、通常のトラップ処理の制御とは別に、TLBミスが発生したことを示すTLBミス信号と、仮想アドレスと、コンテキスト番号とを、TSBプリフェッチ制御回路15に送信する。
TSBプリフェッチ制御回路15は、命令制御部11から、TLBミス信号と仮想アドレスとコンテキスト番号とを受信すると、コンテキスト番号の値と、命令TLBからの信号であるのか、データTLBからの信号であるのかによって、読み出すTSB−PF−REG14を選択する。また、TSBプリフェッチ制御回路15は、2サイクル掛けて、TSB−PF−REG14から「1st-REG」と「2nd-REG」とを読み出し、それぞれに対してTSBポインタ(TSBプリフェッチアドレス)を計算し、TSBプリフェッチリクエスト(アドレス変換対をTSB領域21から取得するリクエスト、図2の「TSB−PF−REQ」)を発行する。
ここで、「1st」や「2nd」とあるのは、TLB13の構造が、「1st-TLB」と「2nd-TLB」とに分かれていて、2種類のページサイズをサポートできるようになっていることに対応するものである。所望のTLBエントリが、「1st-TLB」あるいは「2nd-TLB」のいずれであるかが不明であることから、TSBプリフェッチ制御回路15は、TSBプリフェッチリクエストを両方に対して発行する。
なお、TSBプリフェッチ制御回路15は、選択されたTSB−PF−REG14を読み出し、「valid bit」が「0」の時は、TSBプリフェッチリクエストの発行を抑止する。また、TSBプリフェッチ制御回路15は、アドレスパリティエラーやレジスタパリティエラー検出時も、TSBプリフェッチリクエストの発行を抑止する。
このように、TSBプリフェッチ制御回路15は、選択されたTSB−PF−REG14を読み出した値と、命令制御部11から送信されてきた仮想アドレスとを、所定の計算式に代入することで、TSBポインタを算出する。次に、TSBプリフェッチ制御回路15は、算出したTSBポインタを利用してTSBプリフェッチリクエストを発行し、リクエスト信号とともに、算出されたTSBポインタを送信する。そして、TSBプリフェッチ制御回路15は、TSBポインタを利用してメインメモリ20からアドレス変換対を取得し、取得したアドレス変換対を(L2)キャッシュメモリ16に保持させる。
ここで、計算式について具体的に例を挙げて説明すると、TSBプリフェッチ制御回路15は、図4に示すような所定の計算式を用いて、TSBポインタを算出する。「TSB pointer」は、TSBプリフェッチアドレスのことを意味し、「TSB_base」は、TSB−PF−REG14の「TSB base in physical」フィールドを意味し、「N」は、「TSB_size」を意味し、「page_sz」は、TSBページサイズを意味し、「|」は、bit concat(文字列の連結)を意味する。
なお、TSBプリフェッチ制御回路15は、例えば、(L1)キャッシュメモリのプリフェッチ機能を有する制御回路など、既存の制御回路を流用することで実現してもよい。
ところで、これまでは、実施例1に係る演算処理装置の構成の内、本実施例に密接に関連する部についてのみ詳細に説明してきたが、以下では、図5を用いて、一般的なCPUの概要について説明する。なお、図5は、CPUの概要を説明する便宜上、CPUを構成する部の一部を抽出して例示するものにすぎない。したがって、図5は、本実施例に係る演算処理装置を構成する全ての部を示すものではなく、また、本実施例に係る演算処理装置が、図5に例示する全ての部を備えていなければならないものでもない。また、図5に示す(1)〜(6)の付番は、説明の便宜上から付与したものであり、処理の順番を示すものではない。
CPU100は、一般的に、図5に示すように、命令制御部200と、演算部250と、TLB300と、L1命令TAG400と、L1データTAG450と、L1命令キャッシュ500と、L1データキャッシュ550と、L2キャッシュ600とから主に構成される。
このような構成のもと、CPU100は、コンピュータが備える記憶装置に記憶されている命令に従って演算を行い、演算結果に従って情報を処理する。ここで、「命令」とは、コンピュータを利用する利用者によってキーボードなどから入力されるコマンドや、開発者によってプログラミングされたプログラムの1行としてのコマンドなどのことを意味するものではない。このようなコマンドが、コンピュータにおいて、まず、コンピュータが理解することが可能な機械語に翻訳され、次に、コンピュータが認識することが可能な2進数に再構成され、続いて、CPU100が処理可能な最小単位に分割されると、CPU100が処理可能な「命令」となる。
命令制御部200は、CPU100が行う処理の流れを制御するなどする。具体的には、命令制御部200は、CPU100において処理すべき「命令」を記憶装置から読み込み、解釈し、解釈結果を演算部250に送信するなどする(図5の(1)を参照)。一方、演算部250は、演算を行うなどする。具体的には、演算部250は、「命令」の対象となる「データ」を記憶装置から読み込み、命令制御部200によって解釈された「命令」に従って演算し、演算結果を命令制御部200に送信するなどする(図5の(1)を参照)。
ところで、上記したように、命令制御部200や演算部250は、「命令」や「データ」を記憶装置から読み込むものである。かかる記憶装置には、キャッシュメモリとして、1次(Level1)キャッシュ(以下、L1キャッシュ)や2次(Level2)キャッシュ(以下、L2キャッシュ)などがある。通常、これらのキャッシュメモリは、CPU100内部に階層構造で備えられる。図5に例示するCPU100においては、L1キャッシュとして、命令専用のL1キャッシュであるL1命令キャッシュ500と、データ専用のL1キャッシュであるL1データキャッシュ550とが備えられ、L2キャッシュとして、L2キャッシュ600が備えられている。なお、メインメモリ700は、CPU100を構成する部ではないが、記憶装置の一つとしてCPU100の外部に備えられている。
L1命令キャッシュ500およびL1データキャッシュ550は、一般的に、CPU100と同じクロックで動作することが可能であり、命令制御部200や演算部250からの要求に対して、高速に応答することが可能である(図5の(2)を参照)。しかしながら、L1命令キャッシュ500およびL1データキャッシュ550の容量は、総計で32K〜128KB程度のものが多く、多くの情報を記憶することができない。このため、L2キャッシュ600が、L1命令キャッシュ500およびL1データキャッシュ550に記憶することができない情報の内、利用頻度の少ない情報を記憶することになる(図5の(3)を参照)。なお、L2キャッシュ600に記憶することができない情報については、メインメモリ700に記憶される(図5の(4)を参照)。
ここで、命令制御部200や演算部250がメモリアクセス処理を開始する時について考えてみると、「命令」や「データ」は、メインメモリ700上に存在しており、L1命令キャッシュ500やL1データキャッシュ550、あるいはL2キャッシュ600には、何も記憶されていないはずである。つまり、命令制御部200や演算部250が「命令」や「データ」をメインメモリ700から読み出そうとすることで、初めて、これらの「命令」や「データ」が、L1命令キャッシュ500やL1データキャッシュ550、あるいはL2キャッシュ600にロードされることになる。命令制御部200や演算部250は、これ以降、低速なメインメモリ700ではなく、高速なL1命令キャッシュ500やL1データキャッシュ550、あるいはL2キャッシュ600から、「命令」や「データ」を読み出すのである。
言い換えると、命令制御部200や演算部250が読み出そうとする「命令」や「データ」は、必ずしも、L1命令キャッシュ500やL1データキャッシュ550に記憶されているとは限らない。このため、L1命令TAG400やL1データTAG450が、命令制御部200や演算部250に利用されることになる。すなわち、L1命令キャッシュ500やL1データキャッシュ550に「命令」や「データ」がロードされるのと同時に、L1命令TAG400やL1データTAG450には、これらの「命令」や「データ」がメインメモリ700のどのアドレスに記憶されている「命令」や「データ」であるのかをあらわす数値がセットされている。したがって、命令制御部200や演算部250は、「命令」や「データ」を読み出そうとする際に、まず、L1命令TAG400やL1データTAG450に対して問い合わせを行い、読み出そうとする「命令」や「データ」が、L1命令キャッシュ500やL1データキャッシュ550に記憶されているか否かを確認する。
もっとも、図5に例示するコンピュータにおいては、これまで説明してきたように、「仮想記憶方式」が適用されている。したがって、図5に示すように、命令制御部200や演算部250が「命令」や「データ」を読み出す際には、まず、TLB300に対して、「仮想アドレス」を指定し(図5の(5)を参照)、TLB300が「物理アドレス」に変換した上で、L1命令TAG400やL1データTAG450に対して問い合わせを行うことになる(図5の(6)を参照)。
以上が、一般的なCPUの概要である。本実施例に係る演算処理装置は、図5に例示したCPU100の一般的な部の他に、TSB−PF−REG14やTSBプリフェッチ制御回路15などを構成要素とし、命令制御部11においてTSBポインタの導出やアドレス変換対の取得を制御することで、TSBミス時のペナルティを低減するという効果を奏するものである。
[実施例1に係る演算処理装置による処理の手順]
次に、図6を用いて、実施例1に係る演算処理装置による処理の手順を説明する。図6は、実施例1に係る演算処理装置の処理の手順を示すフローチャートである。なお、図6に示す処理の手順のうち、ステップS105〜S110の処理が、通常のトラップ処理である。これに対し、ステップS108およびステップS109が、本実施例に係る演算処理装置に特徴的な処理の手順であり、この手順が、通常のトラップ処理にフィードバックされていくことで、本実施例の効果を奏するものである。
まず、実施例1における命令制御部11は、メモリアクセスリクエストを受け付けたか否かを判定する(ステップS101)。メモリアクセスリクエストを受け付けていない場合には(ステップS101否定)、命令制御部11は、メモリアクセスリクエストを受け付けたか否かを判定する処理に戻る。
メモリアクセスリクエストを受け付けた場合には(ステップS101肯定)、命令制御部11は、OSから指定された所定の仮想アドレスによって、TLB13を検索する(ステップS102)。
次に、命令制御部11は、TLB13のMATCH回路において判定された判定結果が、TLBミス(MMU−MISS)であるか否かを判定する(ステップS103)。TLBミスでない場合には(ステップS103否定)、命令制御部11は、アドレス変換結果を用いてキャッシュメモリの検索その他の処理を実施し(ステップS104)、その後、処理を終了する。
一方、TLBミスの場合には(ステップS103肯定)、命令制御部11は、通常のトラップ処理を開始する。具体的には、命令制御部11は、MMU−MISS−TRAPが発生した所定の仮想アドレスをレジスタにセットし、続いて、当該仮想アドレスに基づいて、当該仮想アドレスに対応するTSB仮想アドレスを生成して、これをレジスタにセットし、その後、レジスタにセットした仮想アドレスおよびTSB仮想アドレスをレジスタから読み出す(ステップS105)。その後、命令制御部11は、通常のトラップ処理として、ステップS106を実行している。
ところで、本実施例に係る演算処理装置では、MMU−MISS−TRAPをOSに報告するよりも前に(あるいは並行して)、TSB−PF−REG14に予め記憶していたTSB基底物理アドレスと、MMU−MISSした仮想アドレスとからTSBポインタを計算し、必要なアドレス変換対のプリフェッチを行い、アドレス変換対を(L2)キャッシュ上に用意しておくことで、トラップ処理でこのアドレス変換対を取得しようするときに、高速にアドレス変換対を供給できるようにする点に特徴がある。
すなわち、図6に示すように、命令制御部11は、TLBミスが発生すると(ステップS103肯定)、通常のトラップ処理とは別に、TSBプリフェッチを行う(ステップS108)。具体的には、命令制御部11は、TLBミスが発生したことを示すTLBミス信号と仮想アドレスとコンテキスト番号とを、TSBプリフェッチ制御回路15に送信する。次に、TSBプリフェッチ制御回路15は、TSB−PF−REG14を読み出し、読み出した値と、TLB13から送信されてきた仮想アドレスとを所定の計算式に代入することで、TSBポインタを算出する。そして、TSBプリフェッチ制御回路15は、算出したTSBポインタを利用してTSBプリフェッチリクエストを発行し、リクエスト信号とともに、算出されたTSBポインタを送信する(ステップS108)。
そして、TSBプリフェッチ制御回路15は、TSBポインタを利用してメインメモリ20からアドレス変換対を取得し、取得したアドレス変換対を(L2)キャッシュメモリ16に保持させる(ステップS109)。このように、ステップS109において(L2)キャッシュメモリ16にアドレス変換対が保持されることから、通常のトラップ処理において、TSB領域21へのメモリアクセスが開始された際には(ステップS107)、必ずキャッシュヒットすることになる。
[実施例1の効果]
上記してきたように、実施例1によれば、仮想アドレスを物理アドレスに変換するアドレス変換対を記憶したTSB領域が格納された記憶手段にアクセスを行う演算処理装置であって、TSB領域の一部を記憶するTLBと、アドレス変換対を一時的に記憶するキャッシュメモリと、記憶手段に格納されたアドレス変換対の開始物理アドレスであるTSB基底物理アドレスを記憶するTSB基底物理アドレス記憶手段とを備え、TSB基底物理アドレスと変換対象の仮想アドレスに基づいて、アドレス変換対をTSB領域から取得する際に用いられるTSBポインタを算出し、変換対象の仮想アドレスに対応するアドレス変換対が、TLB又はキャッシュメモリから検索されない場合には、算出されたTSBポインタを用いて、変換対象の仮想アドレスに対応するアドレス変換対をTSB領域から取得して、キャッシュメモリに記憶させるので、TLBミス時のペナルティを低減することが可能になる。
具体的に説明すると、実施例1に係る演算処理装置は、TLBミス時に、通常のトラップ処理と並行に(あるいは前に)アドレス変換対をプリフェッチして、トラップ処理における確認よりも前にアドレス変換対を(L2)キャッシュメモリに記憶させておくことで、トラップ処理の過程においてキャッシュミスを発生させない結果、メモリーレイテンシーを隠蔽し、トラップ処理を高速化することが可能になる。言い換えると、トラップ処理で、TSBへのメモリアクセスリクエストが行われた時には、必ずキャッシュヒットする結果、アドレス変換対を即座にTLBに登録することが可能になる。
また、実施例1に係る演算処理装置は、アドレス変換対をメインメモリ上のTSB領域から取得して(L2)キャッシュメモリにプリフェッチする処理において、TSB物理アドレスをTLBから検索する必要がなく、予めレジスタに記憶されているTSB基底物理アドレスと仮想アドレスとを利用するだけでよいことから、TSB物理アドレスをTLBから検索する処理の時間分を短縮する結果、TSBミス時のペナルティを低減することが可能になる。また、実施例1に係る演算処理装置は、TSB物理アドレスの計算が簡素なことから、回路規模も小さくなり、実装コストも削減することが可能になる。
[他の実施例]
さて、これまで実施例1について説明したが、上述した実施例1以外にも、種々の異なる形態にて実施されてよいものである。
[システム構成等]
上記文書中や図面中で示した処理手順や制御手順(図6など)、具体的名称(図2など)、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示(図2など)の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
なお、本実施例で説明した演算処理方法は、あらかじめ用意されたプログラムをCPUで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、CPUによって記録媒体から読み出されることによって実行することもできる。
以上のように、本実施例に係る演算処理装置、演算処理プログラムおよび演算処理方法は、仮想アドレスを物理アドレスに変換するアドレス変換対を記憶したTSB領域が格納された記憶手段にアクセスを行うことに有用であり、特に、TLBミス時のペナルティを低減することに適する。

Claims (10)

  1. 仮想アドレスを物理アドレスに変換するアドレス変換対を記憶したTSB領域が格納された記憶手段にアクセスを行う演算処理装置であって、
    前記TSB領域の一部を記憶するTLBと、
    前記アドレス変換対を一時的に記憶するキャッシュメモリと、
    前記記憶手段に格納されたアドレス変換対の開始物理アドレスであるTSB基底物理アドレスを記憶するTSB基底物理アドレス記憶手段と、
    前記TSB基底物理アドレスと変換対象の仮想アドレスに基づいて、当該アドレス変換対を前記TSB領域から取得する際に用いられるTSBポインタを算出するTSBポインタ算出手段と、
    変換対象の仮想アドレスに対応するアドレス変換対が、前記TLB又は前記キャッシュメモリから検索されない場合には、前記算出されたTSBポインタを用いて、前記変換対象の仮想アドレスに対応するアドレス変換対を前記TSB領域から取得して、前記キャッシュメモリに記憶させる変換対取得手段を備えたことを特徴とする演算処理装置。
  2. 前記変換対取得手段は、
    前記変換対象の仮想アドレスに対応するアドレス変換対が前記TLBから検索されない場合には、前記アドレス変換対が前記キャッシュメモリに記憶されているか否かをOSのトラップ処理により確認し、
    前記TSBポインタを用いて前記TSB領域から取得した前記アドレス変換対象のアドレス変換対を、前記トラップ処理における前記確認よりも前に前記キャッシュメモリに記憶させることを特徴とする請求項1記載の演算処理装置。
  3. 前記変換対取得手段は、
    前記変換対象の仮想アドレスが前記キャッシュメモリに記憶されていない場合には、前記アドレス変換対を前記TSB領域から取得して前記キャッシュメモリに記憶した後に、前記TLBに登録することを特徴とする請求項1又は2記載の演算処理装置。
  4. 前記演算処理装置はさらに、
    前記TSB領域からの前記アドレス変換対の取得を制御するレジスタ手段を有し、
    前記レジスタに格納された情報に基づいて、前記変換対取得手段による前記TSB領域からのアドレス変換対の取得を制御することを特徴とする請求項1〜3のいずれかに記載の演算処理装置。
  5. 前記変換対取得手段は、
    前記演算処理内におけるハードウェアエラーが発生した場合には、前記変換対取得手段による前記TSB領域からのアドレス変換対の取得を禁止することを特徴とする請求項1〜4のいずれかに記載の演算処理装置。
  6. 前記TSB領域の一部を記憶するTLBと、前記アドレス変換対を一時的に記憶するキャッシュメモリとを有するとともに、仮想アドレスを物理アドレスに変換するアドレス変換対を記憶したTSB領域が格納された記憶装置にアクセスを行う演算処理装置の演算処理方法であって、
    前記記憶装置に格納されたアドレス変換対の開始物理アドレスであるTSB基底物理アドレスを記憶するステップと、
    前記TSB基底物理アドレスと変換対象の仮想アドレスに基づいて、当該アドレス変換対を前記TSB領域から取得する際に用いられるTSBポインタを算出するステップと、
    変換対象の仮想アドレスに対応するアドレス変換対が、前記TLB又は前記キャッシュメモリから検索されない場合には、前記算出されたTSBポインタを用いて、前記変換対象の仮想アドレスに対応するアドレス変換対を前記TSB領域から取得して、前記キャッシュメモリに記憶させるステップを備えたことを特徴とする演算処理方法。
  7. 前記演算処理方法は、
    前記変換対象の仮想アドレスに対応するアドレス変換対が前記TLBから検索されない場合には、前記アドレス変換対が前記キャッシュメモリに記憶されているか否かをOSのトラップ処理により確認するステップと、
    前記TSBポインタを用いて前記TSB領域から取得した前記アドレス変換対象のアドレス変換対を、前記トラップ処理における前記確認よりも前に前記キャッシュメモリに記憶させるステップを有することを特徴とする請求項6記載の演算処理方法。
  8. 前記演算処理方法は、
    前記変換対象の仮想アドレスが前記キャッシュメモリに記憶されていない場合には、前記アドレス変換対を前記TSB領域から取得して前記キャッシュメモリに記憶した後に、前記TLBに登録するステップを有することを特徴とする請求項6又は7記載の演算処理方法。
  9. 前記演算処理方法はさらに、
    前記TSB領域からの前記アドレス変換対の取得を制御するレジスタを有し、
    前記レジスタに格納された情報に基づいて、前記TSB領域からのアドレス変換対の取得を制御するステップを有することを特徴とする請求項6〜8のいずれかに記載の演算処理方法。
  10. 前記変換対取得方法はさらには、
    前記演算処理内におけるハードウェアエラーが発生した場合には、前記TSB領域からのアドレス変換対の取得を禁止するステップを有することを特徴とする請求項6〜9のいずれかに記載の演算処理方法。
JP2009520179A 2007-06-19 2007-06-19 演算処理装置および演算処理方法 Expired - Fee Related JP4608011B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/062338 WO2008155825A1 (ja) 2007-06-19 2007-06-19 演算処理装置および演算処理方法

Publications (2)

Publication Number Publication Date
JPWO2008155825A1 true JPWO2008155825A1 (ja) 2010-08-26
JP4608011B2 JP4608011B2 (ja) 2011-01-05

Family

ID=40155990

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009520179A Expired - Fee Related JP4608011B2 (ja) 2007-06-19 2007-06-19 演算処理装置および演算処理方法

Country Status (4)

Country Link
US (1) US8296518B2 (ja)
EP (1) EP2159706B1 (ja)
JP (1) JP4608011B2 (ja)
WO (1) WO2008155825A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9672019B2 (en) 2008-11-24 2017-06-06 Intel Corporation Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads
US10621092B2 (en) 2008-11-24 2020-04-14 Intel Corporation Merging level cache and data cache units having indicator bits related to speculative execution
US8775153B2 (en) * 2009-12-23 2014-07-08 Intel Corporation Transitioning from source instruction set architecture (ISA) code to translated code in a partial emulation environment
JP2013073270A (ja) * 2011-09-26 2013-04-22 Fujitsu Ltd アドレス変換装置、演算処理装置及び演算処理装置の制御方法
US9417855B2 (en) 2011-09-30 2016-08-16 Intel Corporation Instruction and logic to perform dynamic binary translation
JP2013125355A (ja) * 2011-12-13 2013-06-24 Fujitsu Ltd 演算処理装置および演算処理装置の制御方法
KR101667772B1 (ko) 2012-08-18 2016-10-19 퀄컴 테크놀로지스, 인크. 프리페칭을 갖는 변환 색인 버퍼
US9405551B2 (en) 2013-03-12 2016-08-02 Intel Corporation Creating an isolated execution environment in a co-designed processor
US9891936B2 (en) 2013-09-27 2018-02-13 Intel Corporation Method and apparatus for page-level monitoring
JP5974133B1 (ja) 2015-03-20 2016-08-23 株式会社東芝 メモリシステム
JP6740719B2 (ja) * 2016-06-03 2020-08-19 富士通株式会社 情報処理装置、情報処理方法、およびプログラム
JP7155629B2 (ja) * 2018-06-07 2022-10-19 富士通株式会社 演算処理装置、情報処理装置、及び演算処理装置の制御方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6074058A (ja) * 1983-09-30 1985-04-26 Fujitsu Ltd デ−タ処理装置におけるバッファストレ−ジ制御方法
JPS62151958A (ja) * 1985-12-25 1987-07-06 Matsushita Electric Ind Co Ltd 仮想アドレス変換装置
JPH01106149A (ja) * 1987-10-20 1989-04-24 Fujitsu Ltd 情報処理装置
JPH02289013A (ja) * 1989-02-03 1990-11-29 Digital Equip Corp <Dec> 複数メモリーリクエストのオーダおよびキューイング方法および装置
JPH0336647A (ja) * 1989-07-03 1991-02-18 Fujitsu Ltd キャッシュ・バッファリング制御方式
JPH07200409A (ja) * 1993-09-08 1995-08-04 Sun Microsyst Inc 仮想アドレスを物理アドレスに変換する方法及び装置
JP2001290706A (ja) * 2000-03-31 2001-10-19 Texas Instr Inc <Ti> Tlbキャッシュのためのプリフェッチ
WO2007052369A1 (ja) * 2005-10-31 2007-05-10 Fujitsu Limited 演算処理装置,情報処理装置,及び演算処理装置のメモリアクセス方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5465337A (en) * 1992-08-13 1995-11-07 Sun Microsystems, Inc. Method and apparatus for a memory management unit supporting multiple page sizes
US6490658B1 (en) 1997-06-23 2002-12-03 Sun Microsystems, Inc. Data prefetch technique using prefetch cache, micro-TLB, and history file
US6553477B1 (en) 2000-11-06 2003-04-22 Fujitsu Limited Microprocessor and address translation method for microprocessor
US7779238B2 (en) * 2004-06-30 2010-08-17 Oracle America, Inc. Method and apparatus for precisely identifying effective addresses associated with hardware events

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6074058A (ja) * 1983-09-30 1985-04-26 Fujitsu Ltd デ−タ処理装置におけるバッファストレ−ジ制御方法
JPS62151958A (ja) * 1985-12-25 1987-07-06 Matsushita Electric Ind Co Ltd 仮想アドレス変換装置
JPH01106149A (ja) * 1987-10-20 1989-04-24 Fujitsu Ltd 情報処理装置
JPH02289013A (ja) * 1989-02-03 1990-11-29 Digital Equip Corp <Dec> 複数メモリーリクエストのオーダおよびキューイング方法および装置
JPH0336647A (ja) * 1989-07-03 1991-02-18 Fujitsu Ltd キャッシュ・バッファリング制御方式
JPH07200409A (ja) * 1993-09-08 1995-08-04 Sun Microsyst Inc 仮想アドレスを物理アドレスに変換する方法及び装置
JP2001290706A (ja) * 2000-03-31 2001-10-19 Texas Instr Inc <Ti> Tlbキャッシュのためのプリフェッチ
WO2007052369A1 (ja) * 2005-10-31 2007-05-10 Fujitsu Limited 演算処理装置,情報処理装置,及び演算処理装置のメモリアクセス方法

Also Published As

Publication number Publication date
EP2159706A4 (en) 2010-11-03
EP2159706B1 (en) 2014-09-10
US20100070708A1 (en) 2010-03-18
JP4608011B2 (ja) 2011-01-05
WO2008155825A1 (ja) 2008-12-24
EP2159706A1 (en) 2010-03-03
US8296518B2 (en) 2012-10-23

Similar Documents

Publication Publication Date Title
JP4608011B2 (ja) 演算処理装置および演算処理方法
JP5526626B2 (ja) 演算処理装置およびアドレス変換方法
US8161246B2 (en) Prefetching of next physically sequential cache line after cache line that includes loaded page table entry
JP4297968B2 (ja) コヒーレンシ維持装置およびコヒーレンシ維持方法
JP5628404B2 (ja) キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ
TWI381275B (zh) 位址轉譯方法及裝置
US10083126B2 (en) Apparatus and method for avoiding conflicting entries in a storage structure
US20070130237A1 (en) Transient cache storage
JP7340326B2 (ja) メンテナンス動作の実行
US20160140042A1 (en) Instruction cache translation management
US10545879B2 (en) Apparatus and method for handling access requests
JP2009512943A (ja) 多階層の変換索引緩衝機構(TLBs)フィールドの更新
KR102478766B1 (ko) 디스크립터 링 관리
CN112527395B (zh) 数据预取方法和数据处理装置
KR20190021372A (ko) 일시적인 메모리 액세스 프로그램 명령에 대한 허가 제어
CN108874691B (zh) 数据预取方法和内存控制器
JP2013097671A (ja) アドレス変換装置、アドレス変換装置の制御方法及び演算処理装置
WO2007096998A1 (ja) キャッシュメモリ装置およびキャッシュメモリ制御方法
CN106168929A (zh) 选择性预取物理接续快取线至包含被载入分页表的快取线
JP4669244B2 (ja) キャッシュメモリ装置およびメモリ制御方法
CN113760783B (zh) 联合偏移预取方法、装置、计算设备和可读存储介质
JP7035787B2 (ja) 演算処理装置および演算処理装置の制御方法
JP7311959B2 (ja) 複数のデータ・タイプのためのデータ・ストレージ
KR20240089035A (ko) 캐시 라인 일관성 상태 업그레이드
JPH1027134A (ja) アドレス変換装置およびこれを用いたプロセッサ

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100906

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

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

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees