JP2013069139A - 演算処理装置及び演算処理装置の制御方法 - Google Patents

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

Info

Publication number
JP2013069139A
JP2013069139A JP2011207541A JP2011207541A JP2013069139A JP 2013069139 A JP2013069139 A JP 2013069139A JP 2011207541 A JP2011207541 A JP 2011207541A JP 2011207541 A JP2011207541 A JP 2011207541A JP 2013069139 A JP2013069139 A JP 2013069139A
Authority
JP
Japan
Prior art keywords
logical address
register
address
arithmetic processing
logical
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.)
Withdrawn
Application number
JP2011207541A
Other languages
English (en)
Inventor
Masaharu Maruyama
正治 丸山
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 JP2011207541A priority Critical patent/JP2013069139A/ja
Priority to US13/552,820 priority patent/US20130080733A1/en
Publication of JP2013069139A publication Critical patent/JP2013069139A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/684TLB miss handling

Abstract

【課題】使用頻度の高い論理アドレス空間が頻繁に入れ替わることを防止する演算処理装置を提供することを課題とする。
【解決手段】アドレス変換対を記憶するバッファ領域を有する記憶装置に接続される演算処理装置において、複数の論理アドレスレジスタのうち使用履歴が最も古い論理アドレスレジスタの番号を保持するLRUレジスタと、記憶装置に対するアクセス要求に含まれる論理アドレスが、下限論理アドレスレジスタが保持する下限論理アドレスから上限論理アドレスレジスタが保持する上限論理アドレスまでの論理アドレス空間の範囲に入っていない場合、LRUレジスタが保持する論理アドレスレジスタの番号を読み出す読み出し部(S502)と、読み出された番号の論理アドレスレジスタを無効にし、アクセス要求に含まれる論理アドレスに対応する論理アドレス空間を、無効にした論理アドレスレジスタに設定する設定部(S410)を有する。
【選択図】図5

Description

本発明は、演算処理装置及び演算処理装置の制御方法に関する。
仮想的な計算機である仮想計算機を同時に複数稼動させる計算機の仮想化の技術がある。計算機の仮想化を実現するために、アドレス変換が行われる。アドレス変換はマルチタスキング機能を備えたオペレーティングシステム(Operating System、以下、OSという)を前提とした場合、必須の計算機の機能である。アドレス変換とは、プログラムが動作する仮想アドレス空間の仮想アドレスを、計算機のメモリ空間の物理アドレスに変換することである。現在のほとんどの計算機アーキテクチャで採用されているページング方式によるアドレス変換では、ページサイズによって定まる仮想アドレスの上位ビットを物理アドレスに対応する値に変換することを行う。アドレス変換処理は全てのメモリアクセス動作に関わるため高速に実行する必要があり、TLB(Translation Lookaside Buffer)と呼ばれる仮想アドレスと物理アドレスとのアドレス変換対を記憶するバッファメモリを有するCPU(Central Processing Unit)によってハードウェアが処理を行う。
実計算機上でハイパーバイザー(Hypervisor)を実行させ、ハイパーバイザーによる処理により生成される複数の仮想計算機上でOSを動作させ、ハイパーバイザーの処理により、仮想計算機上のプロセス毎に割当てられた仮想アドレス空間を識別するRID(Region Identifier)値を使用してTLBのエントリ計算を行う計算機仮想化装置のTLB仮想化方法が知られている(例えば、特許文献1参照)。ここでは、ハイパーバイザーの処理により、実計算機上のTLBのエントリ計算に使用される仮想計算機上のRID値を複数の仮想計算機において異なる値に変換し、さらに、変換されたRID値のビット列の値を変更する。
特開2009−146344号公報
1つの側面では、本発明の目的は、使用頻度の高い論理アドレス空間が頻繁に入れ替わることを防止する演算処理装置及び演算処理装置の制御方法を提供することである。
演算処理装置は、仮想アドレスと論理アドレスとを対応付けたアドレス変換対を記憶するバッファ領域を有する記憶装置に接続される演算処理装置において、前記記憶装置に設定する複数の論理アドレス空間の下限論理アドレスを保持する下限論理アドレスレジスタと、前記複数の論理アドレス空間の上限論理アドレスを保持する上限論理アドレスレジスタとを含む、論理アドレスを保持する論理アドレスレジスタを複数備える論理アドレスレジスタセットと、前記複数の論理アドレスレジスタのうち使用履歴が最も古い論理アドレスレジスタの番号を保持するLRUレジスタと、前記記憶装置に対するアクセス要求に含まれる論理アドレスが、前記下限論理アドレスレジスタが保持する下限論理アドレスから前記上限論理アドレスレジスタが保持する上限論理アドレスまでの論理アドレス空間の範囲に入っていない場合、前記LRUレジスタが保持する論理アドレスレジスタの番号を読み出す読み出し部と、前記読み出された番号の論理アドレスレジスタを無効にし、前記アクセス要求に含まれる論理アドレスに対応する論理アドレス空間を、前記無効にした論理アドレスレジスタに設定する設定部を有する。
使用頻度の高い論理アドレス空間が頻繁に入れ替わることを防止することができる。
実施形態による演算処理装置の構成例を示す図である。 アドレス変換バッファの構成例を示す図である。 メインメモリのアドレス空間例を示す図である。 参考技術による演算処理装置の処理例を示すフローチャートである。 本実施形態による演算処理装置の処理例を示すフローチャートである。 ハードウェアテーブルウォーカーを有する演算処理装置の構成例を示す図である。 図6のハードウェアテーブルウォーカーの一部の具体的な構成例を示す図である。
図1は、実施形態による演算処理装置1の構成例を示す図である。なお、図1は、演算処理装置1を構成する構成要素の一部を抽出して例示するものにすぎない。演算処理装置1は、例えば中央演算処理装置(CPU)である。演算処理装置1は、その内部に命令制御部11、演算部12、L1命令タグ13、L1データタグ14、L1命令キャッシュ15、L1データキャッシュ16、L2キャッシュ17、及びアドレス変換バッファ(TLB)20を有する。
演算処理装置1は、コンピュータが備える記憶装置に記憶されている命令に従って演算を行い、演算結果に従って情報を処理する。ここで、「命令」とは、演算処理装置1が実行可能な命令セットに含まれる命令のことをいう。
命令制御部11は、演算処理装置1が実行する処理の流れの制御を行う。具体的には、命令制御部11は、演算処理装置1において処理すべき命令を記憶装置から読み込み、解釈し、解釈結果を演算部12に送信する(図1のB1を参照)。演算部12は、演算を行う処理部である。具体的には、演算部12は、命令の対象となるデータを記憶装置から読み込み、命令制御部11が有する図示しない命令デコーダによって解釈された命令に従って演算し、演算結果を命令制御部12に送信する(図1のB1を参照)。
命令制御部11や演算部12が命令やデータを読み込む記憶装置には、メインメモリ2とキャッシュメモリがある。キャッシュメモリには、1次(Level1)キャッシュ(以下、L1キャッシュ)や2次(Level2)キャッシュ(以下、L2キャッシュ)などがある。通常、これらのキャッシュメモリは、演算処理装置1内部に階層構造で備えられる。図1に例示する演算処理装置1においては、L1キャッシュとして、命令専用のL1キャッシュであるL1命令キャッシュ15と、データ専用のL1キャッシュであるL1データキャッシュ16とが備えられている。また、L2キャッシュとして、L2キャッシュ17が備えられている。メインメモリ2は、演算処理装置1に接続され、記憶装置の一つとして演算処理装置1の外部に備えられている。
L1命令キャッシュ15及びL1データキャッシュ16は、演算処理装置1と同じクロックで動作することが可能であり、命令制御部11や演算部12からの要求に対して、高速に応答することが可能である(図1のB2を参照)。しかしながら、L1命令キャッシュ15及びL1データキャッシュ16の容量は、総計で32K〜128KB程度のものが多く、多くの情報を記憶することができない。このため、L2キャッシュ17が、L1命令キャッシュ15及びL1データキャッシュ16に記憶することができない情報のうち、利用頻度の高い情報を記憶することになる(図1のB3を参照)。なお、L2キャッシュ17に記憶することができない情報については、メインメモリ2に記憶される(図1のB4を参照)。キャッシュメモリ15〜17は、メインメモリ2に記憶されている情報の一部を記憶する。
命令制御部11や演算部12が処理を開始する時点では、命令やデータは、メインメモリ2上に存在しており、L1命令キャッシュ15やL1データキャッシュ16、あるいはL2キャッシュ17には、何も記憶されていない。命令制御部11や演算部12が命令やデータをメインメモリ2から読み出す際に、命令やデータがL1命令キャッシュ15やL1データキャッシュ16、あるいはL2キャッシュ17にロードされる。命令制御部11や演算部12は、これ以降、低速なメインメモリ2ではなく、高速なL1命令キャッシュ15やL1データキャッシュ16、あるいはL2キャッシュ17から命令やデータを読み出す。
言い換えると、命令制御部12や演算部12が読み出そうとする命令やデータは、必ずしも、L1命令キャッシュ15やL1データキャッシュ16に記憶されているとは限らない。このため、L1命令タグ13やL1データタグ14が、命令制御部11や演算部12に利用されることになる。すなわち、L1命令キャッシュ15やL1データキャッシュ16に命令やデータがロードされるのと同時に、L1命令タグ13やL1データタグ14には、これらの命令やデータがメインメモリ2のどのアドレスに記憶されているかを示す情報がセットされている。したがって、命令制御部11や演算部12は、命令やデータを読み出す際に、まず、L1命令タグ13やL1データタグ14に対して問い合わせ、読み出そうとする命令やデータが、L1命令キャッシュ15やL1データキャッシュ16に記憶されているか否かを確認する。
演算処理装置1においては、仮想記憶方式が適用されている。アドレス変換バッファ20は、仮想アドレス(Virtual Address)VAと物理アドレス(Physical Address)PAとを対応付けたアドレス変換対を記憶する。仮想アドレスVAは、ページ単位にアクセス保護が可能な仮想的に与えられたアドレス体系である。物理アドレスPAは、メインメモリ2に実際にアクセスする際に用いるアドレスである。命令制御部11や演算部12が命令やデータを読み出す際には、まず、アドレス変換バッファ20に対して、仮想アドレスを指定し(図1のB5を参照)、アドレス変換バッファ20が物理アドレスに変換した上で、L1命令タグ13やL1データタグ14に対して問い合わせを行うことになる(図1のB6を参照)。
図2は、アドレス変換バッファ20の構成例を示す図である。アドレス変換バッファ20の構成について説明する。図2に示したように、アドレス変換バッファ20は、その内部に仮想アドレスレジスタ21、コンテキストレジスタ22、TLB本体部23、及びTLB検索部24を有する。
仮想アドレスレジスタ21は、命令制御部11が出力した仮想アドレスVAを保持するレジスタである。コンテキストレジスタ22は、演算部12が出力するコンテキストを保持するレジスタである。コンテキストは、命令の発行元であるアプリケーションのプロセスを特定する情報である。
TLB本体部23は、タグ部31とデータ部32を有する。タグ部31は、仮想アドレスVAとコンテキストctxtをエントリとして保持する。仮想アドレスVAとコンテキストctxtは、検索用のタグとして使用される。また、データ部32は、仮想アドレスVAと物理アドレスPAとを対応付けたアドレス変換対をエントリとして保持する。
TLB検索部24について説明する。TLB検索部24は、仮想アドレスレジスタ21が保持する仮想アドレスVAとコンテキストレジスタ22の値との組み合わせが、タグ部31に登録された仮想アドレスVA及びコンテキストctxtの値と一致するか否かを判定する。
TLB検索部24内部の比較回路41は、仮想アドレスレジスタ21が保持する仮想アドレスVAと、タグ部31に登録された仮想アドレスVAとを比較し、比較結果を論理積(AND)回路43に出力する。同様に、TLB検索部24内部の比較回路42は、コンテキストレジスタ22が保持するコンテキストと、タグ部31に登録されたコンテキストctxtとを比較し、比較結果を論理積回路43に出力する。アンド回路43は、仮想アドレスVAとコンテキストctxtの双方が一致した場合に、TLBヒットを示す値を出力する。なお、仮想アドレスVAの一致に加えて、コンテキストctxtの一致を求めるのは、異なるプロセスが使用する仮想アドレスVAが偶然に一致する可能性があるためである。
TLB検索部24がTLBヒットを出力した場合、アドレス変換バッファ20は、仮想アドレスVAに対応する物理アドレスPAをデータ部32から取り出して出力する。一方、TLB検索部24がTLBヒットを出力しなかった、すなわちTLBミスに対応する値を出力した場合には、命令制御部11は、メインメモリ2内のTSB(変換記憶バッファ:Translation Storage Buffer)領域3に格納されたページテーブルを参照し、仮想アドレスVAに対応するアドレス変換対を取得し、演算部12に渡す。演算部12は、渡されたアドレス変換対と、実行中のプロセスを示すコンテキストをTLB本体部23に登録する。その後、命令制御部11が命令を再度実行し、アドレス変換バッファ20に登録したアドレス変換対を用いて仮想アドレスVAを物理アドレスPAに変換する。
「仮想記憶方式」は、外部記憶装置(ハードディスク装置等)をメインメモリ2の待避領域として利用することで、コンピュータが実装しているメモリ容量よりも多くのメモリ容量がコンピュータに備えられているようにみせかける技術である。すなわち、「仮想記憶方式」とは、メモリ容量が不足すると、メインメモリ2上の情報のうち使用頻度の少ない情報を、OSが予めハードディスク装置内に確保していたスワップ領域に一時的に待避させることで、一時的にメモリ容量の不足を補うものである。
かかる「仮想記憶方式」では、「仮想アドレスVA」および「物理アドレスPA」の2つのアドレスを利用する。アプリケーション側がメインメモリ2に対して読み書き(メモリアクセス)を行う場合には、仮想アドレスVAを利用する。これに対して、メインメモリ2の素子に付与されているアドレスが物理アドレスPAである。仮想記憶方式を採用するコンピュータは、仮想アドレスVAから物理アドレスPAへの変換を行うことを目的として、仮想アドレスVAと物理アドレスPAとを変換するアドレス変換対(TTE(Translation Table Entry))を一覧表(以下、ページテーブルと呼ぶ)で記憶している。
ページテーブルは、通常、メインメモリ2のTSB領域3に記憶されているが、仮想アドレスVAから物理アドレスPAへの変換が必要になるたびに、メインメモリ2に記憶されているページテーブルを演算処理装置1が参照しに行くとすると、演算処理装置1からメインメモリ2へのアクセスは低速にならざるを得ないことから、変換に非常に多くの時間が費やされることになってしまう。これを避けることを目的として、アドレス変換バッファ20が演算処理装置1内部に備えられており、アドレス変換バッファ20が、TSB領域3に記憶されているページテーブルの一部のアドレス変換対を記憶している。
演算処理装置1がアプリケーションによりメインメモリ2に対して読み書き(メモリアクセス)を行う場合について説明する。まず、演算処理装置1は、OSから所定の仮想アドレスVAを指定される。続いて、演算処理装置1は、OSから指定された所定の仮想アドレスVAによるアドレス変換バッファ20の検索を行い、当該検索に失敗すると、TLBミスが発生する。かかるTLBミスが発生した場合、TLBミストラップが発生するので、演算処理装置1は、このTLBミストラップの発生をOSに報告し、報告を受けたOSが、演算処理装置1に対して、トラップ処理を行う。演算処理装置1は、トラップ処理として、当該所定の仮想アドレスVAに関するアドレス変換対(所定の仮想アドレスVAに対応づけられている物理アドレスPAとのアドレス変換対)が、キャッシュメモリ15〜17に記憶されているか否かを確認する。記憶されている場合には、記憶されているアドレス変換対をアドレス変換バッファ20に登録し、記憶されていない場合には、アドレス変換対をTSB領域3から取得して一旦、キャッシュメモリ15〜17に記憶させた後に、アドレス変換バッファ20に登録する。こうすることで、演算処理装置1は、TLBミスした所定の仮想アドレスVAによるアドレス変換バッファ20の検索を再び行うと、今度は、当該検索に失敗しないで、TLBヒットすることになる。
演算処理装置1は、限られた計算機資源を有効に活用するため、ハードウェア仮想化技術を用いる。ハードウェア仮想化では、OSはハイパーバイザー上で動作している。メモリ管理は、ハイパーバイザーが行うため、TLBミストラップ処理が発生すると、OSに加えてハイパーバイザーが上記処理を行うため、オーバーヘッドが更に大きくなる。また、ハイパーバイザー上の複数のOSでTLBミストラップ処理が発生した場合に、ハイパーバイザーの負荷が大きくなり、TLBミストラップ処理のペナルティが一段と大きくなる。そこで、OS及びハイパーバイザーによるトラップ処理を行う代わりに、ハードウェアが自らTLBミスしたエントリをメインメモリ2上のTSB領域3まで取りに行き、自動でアドレス変換バッファ20に登録するハードウェアテーブルウォーカー602(図6)を用いる。ハードウェアテーブルウォーカー602は、演算処理装置1内に設けられるハードウェアである。
演算処理装置1は、TLBミスを検知すると、OSにトラップ報告する代わりに、ハードウェアテーブルウォーカー602を起動する。ハードウェアテーブルウォーカー602は、TLBミスしたアドレス変換対をメインメモリ2上のTSB領域3まで取りに行き、そのアドレス変換対が必要なアドレス変換対であることをチェックし、論理アドレス(Real Address)RAが所定範囲内に収まっているかのチェックなどを行う。ここで、論理アドレスRAは、ハイパーバイザーにより仮想マシン用に仮想化されたメインメモリ2上の物理アドレスである。論理アドレスRAが所定範囲内であれば、論理アドレスRAを物理アドレスPAに変換し、仮想アドレスVA及び物理アドレスPAのアドレス変換対をアドレス変換バッファ20に登録し、TLBミスしたリクエストを再投入し、トラップ処理なしで高速に動作を継続する。トラップ処理を行った場合は、そのリクエストの後続リクエストは、一旦すべてキャンセルされて、トラップ完了後に再実行することになるが、ハードウェアテーブルウォーカー602が起動される場合はその必要はないので、後続リクエストも即座に実行可能となり、キャンセルのペナルティもない。
仮想マシンにおいては、アドレス変換を行う際に、仮想化されたゲストOS(スーパーバイザー)は、仮想アドレスVAから論理アドレスRAへの変換を担う。論理アドレスRAから物理アドレスPAへの変換は、ハイパーバイザーが管理する。ハイパーバイザーは、論理アドレスレジスタセット620(図6)を用いて、論理アドレスRAから物理アドレスPAへのアドレス変換を行う。
図6に示すように、論理アドレスレジスタセット620は、下限論理アドレスレジスタ621、上限論理アドレスレジスタ622及びオフセットレジスタ623の3つのレジスタを一組としたレジスタセットである。下限論理アドレスレジスタ621は、論理アドレス空間の下限アドレスを記憶する。上限論理アドレスレジスタ622は、論理アドレス空間の上限アドレスを記憶する。オフセットレジスタ623は、論理アドレスRAを物理アドレスPAに変換するためのオフセットアドレスを記憶する。このオフセットアドレスを論理アドレスRAに加算することにより、物理アドレスPAを算出することができる。
図3は、メインメモリ2のアドレス空間例を示す図である。メインメモリ2は、複数の論理アドレス空間RA1〜RA−N(Nは自然数)及びTSB領域3を有する。論理アドレス空間RA1〜RA−Nの各々は、上記の論理アドレスレジスタセット620により下限値及び上限値が規定される。すなわち、論理アドレスレジスタセット620内の下限論理アドレスレジスタ621はメインメモリ2に設定する論理アドレス空間の下限論理アドレスを記憶し、論理アドレスレジスタセット620内の上限論理アドレスレジスタ622はメインメモリ2に設定する論理アドレス空間の上限論理アドレスを記憶する。ハイパーバイザーは、メインメモリ2の物理アドレスPAに対してN個の論理アドレス空間RA1〜RA−Nを割り当てることができる。N個を超える論理アドレス空間が必要になったときは、使用履歴の古い論理アドレス空間を一旦使用不能にし、新たに論理アドレス空間を割り当てる。N個の論理アドレス空間RA1〜RA−Nには、N組みの論理アドレスレジスタセット620が設けられる。TSB領域3は、仮想アドレスVAと論理アドレスRAとを対応付けたアドレス変換対を記憶する。
ハードウェアテーブルウォーカー602は、ハイパーバイザーが用意したN組みの論理アドレスレジスタセット620をチェックして、メインメモリ2上のTSB領域3から取ってきたエントリ(仮想アドレスVAと論理アドレスRAのアドレス変換対)の論理アドレスRAが、N組みの論理アドレスレジスタセット620の下限論理アドレスレジスタ621及び上限論理アドレスレジスタ622で指定される論理アドレス空間の範囲内に収まっていれば、その論理アドレスレジスタセット620のオフセットアドレス623のオフセットアドレスを使い、論理アドレスRAにこのオフセットアドレスを加算して、物理アドレスPAを算出し、仮想アドレスVAと物理アドレスPAのアドレス変換対をアドレス変換バッファ20に登録する。
上記のように、N組みの論理アドレスセット620を通じて、ハイパーバイザーは、N個の使用可能な論理アドレス空間RA1〜RA−Nを割り当てる。N個を超える論理アドレス空間を割り当てる場合は、すでに割り当てられたN個の論理アドレス空間のうち1つを無効にして、そこにN+1個目の論理アドレス空間を新規に割り当てる。このような論理アドレス空間の入れ替えは、非常にペナルティが大きいので、できるだけ効率的にN個の論理アドレス空間を利用したいという課題がある。しかし、ハイパーバイザーは、ハードウェアがN個の論理アドレス空間RA1〜RA−Nのうちどの論理アドレス空間を頻繁に利用しているのか知る術がないので、FIFO(ファーストインファーストアウト)等で順番に論理アドレス空間を入れ替える必要がある。そうすると、OSがトラップ処理などのために常時使用するカーネル領域がN回に1回の割合で、論理アドレス空間から一旦追い出されてしまうことになる。再び、すぐに追い出された論理アドレス空間が必要になるため、論理アドレス空間を取り直す必要があるが、無駄な論理アドレス空間の入れ替え処理が発生し、著しい性能劣化の要因となる。
図4は、参考技術による演算処理装置1の処理例を示すフローチャートである。ステップS401では、演算処理装置1は、アプリケーションにより、メインメモリ2に対して読み書き(メモリアクセス)のリクエストを入力する。
すると、ステップS402では、演算処理装置1は、OSから所定の仮想アドレスVAを指定される。続いて、演算処理装置1は、OSから指定された仮想アドレスVAのアドレス変換対についてアドレス変換バッファ20の検索を行う。検索に成功するとTLBヒットとしてステップS403に進み、検索に失敗するとTLBミスとしてステップS404に進む。具体的には、メインメモリ2のアクセスリクエストの仮想アドレスVAのアドレス変換対がアドレス変換バッファ20に存在するときにはTLBヒットとなり、存在しないときにはTLBミスになる。
ステップS403では、演算処理装置1のアクセス部は、アドレス変換バッファ20が仮想アドレスVAから物理アドレスPAに変換した上で、L1命令タグ13やL1データタグ14に対して問い合わせを行い、L1命令キャッシュ15やL1データキャッシュ16に対して命令やデータのアクセスを行う。具体的には、演算処理装置1のアクセス部は、ステップS401のメインメモリ2のアクセスリクエストの仮想アドレスVAのアドレス変換対がアドレス変換バッファ20に存在するときには、そのアドレス変換対により変換された物理アドレスPAを用いてキャッシュメモリ15〜17にアクセスする。
ステップS404では、演算処理装置1は、TLBミスを検知すると、ハードウェアテーブルウォーカー602を起動する。ハードウェアテーブルウォーカー602は、TLBミスした仮想アドレスVAのアドレス変換対をメインメモリ2のTSB領域3上で検索する。具体的には、その仮想アドレスVAに対応する論理アドレスRAが現存のN組みの論理アドレスレジスタセット620の論理アドレス空間の範囲内に収まっているか否かをチェックする。
次に、ステップS405では、演算処理装置1は、上記の論理アドレス空間の範囲内であるときにはTSBヒットとしてステップS406及びS407へ進み、範囲内でないときにはTSBミスとしてステップS408へ進む。具体的には、ステップS401のメインメモリ2のアクセスリクエストの論理アドレスRAが、N組みの論理アドレスレジスタセット620により設定される論理アドレス空間の範囲に入っているときにはTSBヒットとなり、範囲に入っていないときにはTSBミスとなる。
ステップS406では、演算処理装置1は、上記の論理アドレスRAを物理アドレスPAに変換し、仮想アドレスVA及び物理アドレスPAのアドレス変換対をアドレス変換バッファ20に登録し、TLBミスしたリクエストを再投入し、L1命令キャッシュ15やL1データキャッシュ16に対して命令やデータのアクセスを行う。具体的には、演算処理装置1のアドレス変換バッファ登録部は、ステップS401のメインメモリ2のアクセスリクエストの論理アドレスRAが、N組みの論理アドレスレジスタセット620により設定される論理アドレス空間の範囲に入っているときには、その論理アドレスRAに対応するTSB領域3のアドレス変換対を基に仮想アドレスVA及び物理アドレスPAのアドレス変換対を生成し、アドレス変換バッファ20に登録する。
ステップS407では、演算処理装置1は、上記の登録に伴い、N組みの論理アドレスレジスタセット620のうちで使用履歴が最も古い論理アドレスセット620の番号を、LRU(Least Recently Used)情報として更新する。
ステップS408では、演算処理装置1は、無効TSBエントリトラップの発生をOSに報告し、報告を受けたOSが、演算処理装置1に対して、無効TSBエントリトラップ処理の起動を行う。
次に、ステップS409では、演算処理装置1は、論理アドレス空間の入れ替え処理を開始する。
次に、ステップS410では、演算処理装置1は、論理アドレスレジスタセット620を更新することにより、論理アドレス空間の入れ替えを行う。具体的には、演算処理装置1は、LRU情報が示す最も古い論理アドレス空間を一旦使用不能にし、新たに論理アドレス空間を割り当てる。
次に、ステップS411では、演算処理装置1は、無効TSBエントリトラップの処理を終了し、ステップS401に戻る。
ここで、図4の処理の課題を説明する。ステップS410において、論理アドレスレジスタセット620の更新中に、ステップS407でLRU情報の更新が行われる場合を説明する。例えば、ステップS407で、LRU情報の値が2番から3番の論理アドレス空間の番号に変更されたとする。その場合、ステップS410では、同じ論理アドレスレジスタセット620内において、下限論理アドレスレジスタ621には2番の論理アドレス空間の下限論理アドレスが記録され、上限論理アドレスレジスタ622には3番の論理アドレス空間の下限論理アドレスが記録されてしまうことがある。これでは、正しい論理アドレスレジスタセット620の更新が行われないため、誤動作の原因になる。
すなわち、論理アドレスレジスタセット620内の3個のレジスタ621〜622を更新するストア命令が実行される間に、LRU情報が更新されてしまうと、間違った番号のレジスタを更新することになり、誤動作してしまう。
これを防ぐためには、論理アドレスレジスタセット620内の3個のレジスタ621〜623を更新するストア命令が実行される間に、LRU情報が更新されないようにハイパーバイザーが管理することが考えられる。インオーダー実行の演算処理装置1では、この間に、ハードウェアテーブルウォーカー602は実行されないので、上記の動作でも問題ない。なお、インオーダー実行は、プログラムに書かれた通りの順番で命令を逐次実行することである。しかし、アウトオブオーダー実行でハードウェアテーブルウォーカー602を起動する場合、論理アドレスレジスタセット620内の3個のレジスタ621〜623の更新の最中に、LRU情報が実行中のハードウェアテーブルウォーカー602により更新され、上記のように、間違った番号のレジスタを更新することになってしまう問題が生ずる。なお、アウトオブオーダー実行は、プログラムに書かれた命令の順番を変えて実行することである。そこで、アウトオブオーダー実行でも正常に動作可能な実施形態を、以下、説明する。
図5は、本実施形態による演算処理装置1の処理例を示すフローチャートである。図5のフローチャートは、図4のフローチャートに対して、ステップS407の代わりにステップS501を設け、ステップS502を追加したものである。以下、図5のフローチャートが図4のフローチャートに対して異なる点を説明する。
ステップS405において、TSBヒットになると、ステップS406及びS501に進む。ステップS501では、演算処理装置1のLRUレジスタ更新部は、ハードウェアテーブルウォーカー602によりLRUレジスタ619(図6)の更新を行う。具体的には、演算処理装置1のLRUレジスタ更新部は、ステップS401のメインメモリ2のアクセスリクエストの論理アドレスRAが、N組みの論理アドレスレジスタセット620により設定される論理アドレス空間の範囲に入っているときには、その範囲に入っている論理アドレスレジスタセット20の使用履歴が最新になるように、LRUレジスタ619に記憶される番号を更新する。
本実施形態では、新規に論理アドレス空間を割り当てる場合に、N組みの論理アドレスレジスタセット620のうち、どれを更新するか決定する為に、新規にLRUレジスタ619を用意し、ハイパーバイザーに最新の論理アドレス空間の使用状況に関するLRU情報をハードウェアから通知する手段を設ける。LRUレジスタ619は、N組みの論理アドレスレジスタセット620のうちで使われていない論理アドレスレジスタセット620があればそれらのうちで一番若い番号を記憶し、N組みの論理アドレスレジスタセット620がすべて使われていれば、N組みの論理アドレスレジスタセット620のうちでハードウェアテーブルウォーカー602の使用履歴が最も古い論理アドレスレジスタセット620の番号を記憶する。
ステップ409の後、ステップS502では、演算処理装置1の読み出し部は、ハイパーバイザーの指示により、新規に論理アドレス空間を割り当てる場合に、先ず、LRUレジスタ619の値を読み出す。すなわち、演算処理装置1の読み出し部は、ステップS401のメインメモリ2のアクセスリクエストの論理アドレスRAが、N組みの論理アドレスレジスタセット620により設定される論理アドレス空間の範囲に入っていないときには、LRUレジスタ619に記憶されている番号を読み出す。
次に、ステップS410では、演算処理装置1の論理アドレスレジスタセット設定部は、読み出したLRUレジスタ619の値を基に、N組みの論理アドレスレジスタセット620のうち、どれを更新するかを決める。その後、同じ番号の論理アドレス空間の論理アドレスレジスタセット620内の3個のレジスタ621〜623に対して、ストア命令を発行する。すなわち、演算処理装置1の論理アドレスレジスタセット設定部は、読み出されたLRUレジスタ619の番号の論理アドレスレジスタセット620を無効にし、ステップS401のメインメモリ2のアクセスリクエストの論理アドレスRAに対応する論理アドレス空間を、上記の無効にした論理アドレスレジスタセット620に設定する。ハイパーバイザーは、ストア命令の仮想アドレスVAに該当番号を載せるだけで、レジスタ番号を容易に指定可能である。この制御により、違った論理アドレスレジスタセット620のレジスタを更新する問題を回避することができる。なお、LRUレジスタ619の読み出しは、論理アドレス空間の入れ替えにかかる時間に比べて非常に短い時間で処理できるので、LRUレジスタ619の読み出しのペナルティは無視できる。
上記のように、アウトオブオーダー実行のハードウェアテーブルウォーカー602において、効率的に論理アドレス空間の入れ替えを行い、必要な論理アドレス空間が頻繁に入れ替わることによる非常に大きなペナルティを隠蔽し、処理時間を大幅に削減し、性能向上を可能とする。
図6は、ハードウェアテーブルウォーカー602を有する演算処理装置1の構成例を示す図である。以下、図6の演算処理装置1が図1の演算処理装置1に対して追加されている部分を説明する。ハードウェアテーブルウォーカー602は、複数のリクエスト受信部611、複数のリクエスト制御部612、制御設定レジスタ613、TSBポインタ計算部614、制御部615及びLRUレジスタ619を有する。制御設定レジスタ613は、論理アドレスレジスタセット620を有する。論理アドレスレジスタセット620は、下限論理アドレスレジスタ621、上限論理アドレスレジスタ622及びオフセットレジスタ623を有する。制御部615は、TSBヒットチェック部616、論理アドレス範囲チェック部617、及びオフセット加算部618を有する。
TLB制御部601は、ステップS402において、TLBミスの場合には、リクエスト受信部611にTLBミスを出力し、ハードウェアテーブルウォーカー602を起動させる。複数のリクエスト受信部611は、TLB制御部601より複数のスレッドのリクエストを受信する。複数のリクエスト制御部612は、複数のリクエスト受信部611に対応する複数のリクエストをアウトオブオーダー実行する。すなわち、ハードウェアテーブルウォーカー602は、アウトオブオーダー実行する。リクエスト制御部612は、例えばTSB領域3のアドレス変換対TSB1〜TSB4を記憶し、制御設定レジスタ613を制御する。TSBポインタ計算部614は、リクエストされた仮想アドレスVAを基に、TSBプリフェッチアドレスを示すTSBポインタを計算し、L1キャッシュ15,16に出力する。
TSBヒットチェック部616は、ステップS405において、TSBヒットしたか否かをチェックする。論理アドレス範囲チェック部617は、ステップS405において、リクエストされた論理アドレスRAが、論理アドレスレジスタセット620を基に論理アドレス空間の範囲内にあるか否かをチェックする。オフセット加算部618は、論理アドレスRAにオフセットレジスタ623のオフセットアドレスを加算することにより、物理アドレスPAを演算する。その後、制御部615は、仮想アドレスVA及び物理アドレスPAのアドレス変換対をTLB制御部601に出力する。TLB制御部601は、そのアドレス変換対をアドレス変換バッファ20に登録する。また、制御部615は、TSBヒットすると、LRUレジスタ619を更新する。
図7は、図6のハードウェアテーブルウォーカー602の一部の具体的な構成例を示す図である。ハードウェアテーブルウォーカー602は、例えば、8組みの論理アドレスレジスタセット620及び8個の論理アドレス範囲チェック部617を有する。
論理アドレスレジスタセット620の更新は、ハイパーバイザーがストア命令で実行し、更新信号(更新ID)D1が入力される。LRUレジスタ619は、8個のレジスタLRU1〜LRU8を有する。レジスタLRU1〜LRU8は、8組みの論理アドレスレジスタセット620の番号を記憶する。レジスタLRU1は、使用履歴が最も新しい番号を記憶する。レジスタLRU8は、使用履歴が最も古い番号を記憶し、次に論理アドレスレジスタセット620を更新する時の候補となる番号を記憶する。また、8組みの論理アドレスレジスタセット620の各々は、有効フラグD3を記憶する。有効フラグD3が1の時に、それに対応する論理アドレスレジスタセット620の内容が有効であることを示す。有効フラグ処理部707は、8個の有効フラグD3の中に「0」の有効フラグD3がある場合には「1」の無効フラグD7を出力し、8個の有効フラグD3がすべて「1」である場合には「0」の無効フラグD7を出力する。若番処理部706は、「0」の有効フラグD3の中で最も若番の論理アドレスレジスタセット620の番号を番号D6として出力する。なお、番号D6は、若番である必要はなく、任意の1個の番号であればよい。論理積回路708は、無効フラグD7が「1」のときには0を出力する。論理積回路709は、無効フラグD7が「1」のときには、番号D6を出力する。その場合、論理和(OR)回路710は番号D6を番号D8として出力し、ステップS502では、番号D8が読み出される。すなわち、無効フラグD7が「1」の場合には、番号D8の論理アドレスレジスタセット620が、次に論理アドレスレジスタセット620を更新する時の候補となる。
次に、LRUレジスタ619の更新方法を説明する。更新条件は、8組みの論理アドレスレジスタセット620のいずれかが更新された場合と、ハードウェアテーブルウォーカー602がTSB領域3から取ってきたアドレス変換対をアドレス変換バッファ20に登録する場合である。8組みの論理アドレスレジスタセット620のいずれかが更新された場合は、論理和回路703は、その論理アドレスレジスタセット620の番号D1を番号D5として出力する。また、ハードウェアテーブルウォーカー602がTSB領域3から取ってきたアドレス変換対をアドレス変換バッファ20に登録する場合、8個の論理アドレス範囲チェック部617は、上記のアドレス変換対の論理アドレスD2が含まれる論理アドレス空間の論理アドレスレジスタセット620の番号D4を出力し、論理和回路703はその番号D4を番号D5として出力する。
番号D5は、一番最近に更新された論理アドレスレジスタセット620の番号又は一番最近にハードウェアテーブルウォーカー602で使われた論理アドレスレジスタセット620の番号を示し、レジスタLRU1に格納される。この際に、レジスタLRU1〜LRU8に格納された番号と番号D5とを比較し、一致した場合、そのレジスタLRU1〜LRU8より若いレジスタLRU1〜LRU8では、シフト部704により、各レジスタLRU1〜LRU8に格納された番号が1つ古い方にシフトされる。例えば、番号D5がレジスタLRU4に格納された番号と一致した場合は、レジスタLRU3に格納された番号をレジスタLRU4に格納し、レジスタLRU2に格納された番号をレジスタLRU3に格納し、レジスタLRU1に格納された番号をレジスタLRU2に格納し、レジスタLRU1には、番号D5を格納する。このようにして、使われていない論理アドレスレジスタセット620の番号がレジスタLRU8の方にシフトされていく。論理積回路708は、無効フラグD7が「0」のときにはレジスタLRU8に格納されている番号を出力する。論理積回路709は、無効フラグD7が「0」のときには0を出力する。その場合、論理和回路710はレジスタLRU8に格納されている番号を番号D8として出力し、ステップS502では、レジスタLRU8に格納されている番号D8が読み出される。すなわち、無効フラグD7が「0」の場合には、レジスタLRU8に格納されている番号D8の論理アドレスレジスタセット620が、次に論理アドレスレジスタセット620を更新する時の候補となる。
論理和回路710が出力する番号D8は、ハイパーバイザーが読み出せるようにする。これにより、ハイパーバイザーは、8組みの論理アドレスレジスタセット620のうち使用履歴が最も古い論理アドレスレジスタセット620の番号を獲得することができる。ハイパーバイザーは、この番号を使って、次に更新する論理アドレスレジスタセット620を決定し、ストア命令を実行し、所望の論理アドレスレジスタセット620を更新できる。
本実施形態によれば、LRUレジスタ619を用いて効率的に論理アドレス空間の入れ替えを行うことにより、使用頻度の高い論理アドレス空間が頻繁に入れ替わることを防止し、処理時間を低減することができる。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
1 演算処理装置
2 メインメモリ
3 TSB領域
11 命令制御部
12 演算部
13 L1命令タグ
14 L1データタグ
15 L1命令キャッシュ
16 L1データキャッシュ
17 L2キャッシュ
20 アドレス変換バッファ
21 仮想アドレスレジスタ
22 コンテキストレジスタ
23 TLB本体部
24 TLB検索部
31 タグ部
32 データ部
41,42 比較回路
43 論理積回路

Claims (6)

  1. 仮想アドレスと論理アドレスとを対応付けたアドレス変換対を記憶するバッファ領域を有する記憶装置に接続される演算処理装置において、
    前記記憶装置に設定する複数の論理アドレス空間の下限論理アドレスを保持する下限論理アドレスレジスタと、前記複数の論理アドレス空間の上限論理アドレスを保持する上限論理アドレスレジスタとを含む、論理アドレスを保持する論理アドレスレジスタを複数備える論理アドレスレジスタセットと、
    前記複数の論理アドレスレジスタのうち使用履歴が最も古い論理アドレスレジスタの番号を保持するLRUレジスタと、
    前記記憶装置に対するアクセス要求に含まれる論理アドレスが、前記下限論理アドレスレジスタが保持する下限論理アドレスから前記上限論理アドレスレジスタが保持する上限論理アドレスまでの論理アドレス空間の範囲に入っていない場合、前記LRUレジスタが保持する論理アドレスレジスタの番号を読み出す読み出し部と、
    前記読み出された番号の論理アドレスレジスタを無効にし、前記アクセス要求に含まれる論理アドレスに対応する論理アドレス空間を、前記無効にした論理アドレスレジスタに設定する設定部を有することを特徴とする演算処理装置。
  2. 前記演算処理装置はさらに、
    前記アクセス要求に含まれる論理アドレスが、前記下限論理アドレスレジスタが保持する下限論理アドレスから前記上限論理アドレスレジスタが保持する上限論理アドレスまでの論理アドレス空間の範囲に含まれる場合、前記論理アドレス空間の範囲に含まれる論理アドレスを保持する論理アドレスレジスタの使用履歴が最新になるように、前記LRUレジスタが記憶する番号を更新する更新部を有することを特徴とする請求項1記載の演算処理装置。
  3. 前記演算処理装置はさらに、
    仮想アドレスと物理アドレスとを対応付けたアドレス変換対を記憶するアドレス変換バッファと、
    前記記憶装置に記憶されている情報の一部を記憶するキャッシュメモリと、
    前記アクセス要求に含まれる仮想アドレスを含んだアドレス変換対が前記アドレス変換バッファに記憶されている場合、前記アドレス変換対により変換された物理アドレスを用いて前記キャッシュメモリにアクセスするアクセス部とを有し、
    前記読み出し部は、前記アクセス要求に含まれる仮想アドレスを含んだアドレス変換対が前記前記バッファ領域に存在しない場合、前記LRUレジスタに記憶される番号を読み出すことを特徴とする請求項1又は2記載の演算処理装置。
  4. 前記演算処理装置はさらに、
    前記アクセスリクエスト要求に含まれる論理アドレスが、前記下限論理アドレスレジスタが保持する下限論理アドレスから前記上限論理アドレスレジスタが保持する上限論理アドレスまでの範囲に含まれる場合、前記論理アドレスに対応する前記バッファ領域のアドレス変換対に基づき生成した物理アドレスを含むアドレス変換対を、前記アドレス変換バッファに登録する登録部を有することを特徴とする請求項3記載の演算処理装置。
  5. 前記論理アドレスレジスタセットは、
    論理アドレスを物理アドレスに変換するオフセットアドレスを記憶するオフセットレジスタを有し、
    前記登録部は、
    前記アクセスリクエスト要求に含まれる論理アドレスに前記オフセットアドレスを加算して前記物理アドレスを生成することを特徴とする請求項4記載の演算処理装置。
  6. 仮想アドレスと論理アドレスとを対応付けたアドレス変換対を記憶するバッファ領域を有する記憶装置に接続され、前記記憶装置に設定する複数の論理アドレス空間の下限論理アドレスを保持する下限論理アドレスレジスタと前記複数の論理アドレス空間の上限論理アドレスを保持する上限論理アドレスレジスタを含む論理アドレスレジスタセットと、前記複数の論理アドレスレジスタのうち使用履歴が最も古い論理アドレスレジスタの番号を保持するLRUレジスタを有する演算処理装置の制御方法において、
    前記演算処理装置が有する読出し部が、前記記憶装置に対するアクセス要求に含まれる論理アドレスが、前記下限論理アドレスレジスタが保持する下限論理アドレスから前記上限論理アドレスレジスタが保持する上限論理アドレスまでの論理アドレス空間の範囲に入っていない場合、前記LRUレジスタに保持される論理アドレスレジスタの番号を読み出し、
    前記演算処理装置が有する設定部が、前記読み出された番号の論理アドレスレジスタを無効にし、
    前記設定部が、前記アクセス要求に含まれる論理アドレスに対応する論理アドレス空間を、前記無効にした論理アドレスレジスタに設定することを特徴とする演算処理装置の制御方法。
JP2011207541A 2011-09-22 2011-09-22 演算処理装置及び演算処理装置の制御方法 Withdrawn JP2013069139A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011207541A JP2013069139A (ja) 2011-09-22 2011-09-22 演算処理装置及び演算処理装置の制御方法
US13/552,820 US20130080733A1 (en) 2011-09-22 2012-07-19 Processor and control method of processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011207541A JP2013069139A (ja) 2011-09-22 2011-09-22 演算処理装置及び演算処理装置の制御方法

Publications (1)

Publication Number Publication Date
JP2013069139A true JP2013069139A (ja) 2013-04-18

Family

ID=47912560

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011207541A Withdrawn JP2013069139A (ja) 2011-09-22 2011-09-22 演算処理装置及び演算処理装置の制御方法

Country Status (2)

Country Link
US (1) US20130080733A1 (ja)
JP (1) JP2013069139A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015060499A (ja) * 2013-09-20 2015-03-30 富士通株式会社 演算処理装置、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム
CN108369555A (zh) * 2015-10-20 2018-08-03 美光科技公司 存储器装置中的逻辑地址历史管理

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9396142B2 (en) * 2014-06-10 2016-07-19 Oracle International Corporation Virtualizing input/output interrupts
US20160062911A1 (en) 2014-08-27 2016-03-03 Advanced Micro Devices, Inc. Routing direct memory access requests in a virtualized computing environment
CN109725983B (zh) * 2018-11-22 2021-07-27 海光信息技术股份有限公司 一种数据交换方法、装置、相关设备及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7278008B1 (en) * 2004-01-30 2007-10-02 Nvidia Corporation Virtual address translation system with caching of variable-range translation clusters
US7353341B2 (en) * 2004-06-03 2008-04-01 International Business Machines Corporation System and method for canceling write back operation during simultaneous snoop push or snoop kill operation in write back caches

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015060499A (ja) * 2013-09-20 2015-03-30 富士通株式会社 演算処理装置、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム
CN108369555A (zh) * 2015-10-20 2018-08-03 美光科技公司 存储器装置中的逻辑地址历史管理

Also Published As

Publication number Publication date
US20130080733A1 (en) 2013-03-28

Similar Documents

Publication Publication Date Title
US10802987B2 (en) Computer processor employing cache memory storing backless cache lines
CN107111455B (zh) 电子处理器架构以及缓存数据的方法
US10474583B2 (en) System and method for controlling cache flush size
US9720846B2 (en) Memory swap for direct memory access by a device assigned to a guest operating system
US8719545B2 (en) System and method for improving memory locality of virtual machines
TWI531912B (zh) 具有用於多上下文計算引擎的轉譯後備緩衝之處理器、用於致能多執行緒以存取於處理器中之資源之系統和方法
US8214598B2 (en) System, method, and apparatus for a cache flush of a range of pages and TLB invalidation of a range of entries
US9069690B2 (en) Concurrent page table walker control for TLB miss handling
US20160140042A1 (en) Instruction cache translation management
KR20130114606A (ko) 데이터 처리장치 내부의 로컬 캐시 구조에 발행된 액세스 연산을 처리하는 장치 및 방법
US9135184B2 (en) Load-through fault mechanism
US9697137B2 (en) Filtering translation lookaside buffer invalidations
WO2013101104A1 (en) Sharing tlb mappings between contexts
GB2542771A (en) Hazard Checking
WO2016055828A1 (en) Cache system with primary cache and overflow fifo cache
US9483400B2 (en) Multiplexed memory for segments and pages
JP2013069139A (ja) 演算処理装置及び演算処理装置の制御方法
US9009413B2 (en) Method and apparatus to implement lazy flush in a virtually tagged cache memory
US11237985B2 (en) Controlling allocation of entries in a partitioned cache
KR20240022656A (ko) 메모리 매핑 무효화 요청의 동시 프로세싱
US20170220484A1 (en) Dynamic cache memory management with translation lookaside buffer protection
US11232034B2 (en) Method to enable the prevention of cache thrashing on memory management unit (MMU)-less hypervisor systems
US9495306B1 (en) Dynamic management of a processor state with transient cache memory
US9396125B1 (en) Dynamic management of memory ranges exempted from cache memory access
US9311233B2 (en) Load-through fault mechanism

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140603

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141113

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20141201