JP4520790B2 - 情報処理装置およびソフトウェアプリフェッチ制御方法 - Google Patents

情報処理装置およびソフトウェアプリフェッチ制御方法 Download PDF

Info

Publication number
JP4520790B2
JP4520790B2 JP2004224560A JP2004224560A JP4520790B2 JP 4520790 B2 JP4520790 B2 JP 4520790B2 JP 2004224560 A JP2004224560 A JP 2004224560A JP 2004224560 A JP2004224560 A JP 2004224560A JP 4520790 B2 JP4520790 B2 JP 4520790B2
Authority
JP
Japan
Prior art keywords
address
virtual
prefetch
conversion
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004224560A
Other languages
English (en)
Other versions
JP2006048164A (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
Priority to JP2004224560A priority Critical patent/JP4520790B2/ja
Priority to US10/986,017 priority patent/US7373478B2/en
Priority to EP04257428.5A priority patent/EP1622007B1/en
Publication of JP2006048164A publication Critical patent/JP2006048164A/ja
Application granted granted Critical
Publication of JP4520790B2 publication Critical patent/JP4520790B2/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/60Details of cache memory
    • G06F2212/6028Prefetching based on hints or prefetch instructions
    • 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/654Look-ahead translation
    • 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
    • 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

Description

この発明は、情報処理装置およびソフトウェアプリフェッチ制御方法に関し、特に複数階層からなるTLBが存在する場合にプリフェッチ命令を効果的に実行することができる情報処理装置およびソフトウェアプリフェッチ制御方法に関するものである。
近年、情報処理装置の性能は、著しく向上しており、単位時間当たりに実行できる命令数は年々大幅に増加している。それに比べると、主記憶のアクセス速度それほど向上しておらず、情報処理装置が主記憶のデータをフェッチまたはストアする際に長い処理待ち時間が発生するという問題がおこっている。
この問題を解決するため、情報処理装置と主記憶の間に、主記憶よりも容量が小さいがアクセス速度が高速なキャッシュメモリを設ける手法が広く採用されている。主記憶のアクセスには局所性が認められ、主記憶上の頻繁にアクセスされる領域をキャッシュメモリに保持することにより、データアクセスによる処理待ちの発生を最小限に抑えることができる。
このキャッシュをさらに有効に活用するため、プリフェッチの手法がもちいられることも多い。キャッシュ上に存在しないデータが必要になった場合、そのデータを主記憶からキャッシュに転記する必要があるが、主記憶は低速であるために転記が完了するまで処理待ちが発生してしまう。そこで、必要となるデータを事前に予測し、予測したデータを前もって主記憶からキャッシュに転記しておくことにより、処理待ちを発生させることなく情報処理装置がキャッシュ上のデータを利用できるようにするのがプリフェッチである。
特許文献1には、複数の種類のプリフェッチ命令を備え、これらを状況によって使い分けることにより、システムへの負荷を最小限に抑えながらプリフェッチを効率的におこなうことができるキャッシュメモリ制御装置および計算機システムが開示されている。
特開2000−339157号公報
しかしながら、特許文献1に開示された技術をもちいてもプリフェッチを効果的に実行できない場合がある。問題は、仮想アドレスから物理アドレスへの変換にある。
現在、実際の主記憶の容量より大きな仮想アドレス空間を提供する仮想記憶が多くのシステムにおいて広く利用されているが、かかるシステムにおいては主記憶へアクセスする際に仮想アドレス空間上の仮想アドレスを主記憶上の物理アドレスへ変換する必要がある。このアドレス変換は、プリフェッチの一種であるソフトウェアプリフェッチ実行時にも必要とされる。
仮想アドレスを物理アドレスへ変換するに際しては、TLB(Translation Look-aside Buffer)と呼ばれる記憶装置に格納された変換表を参照する必要があるが、現在のTLBは高速化のために多階層化されている。この階層を有効に利用できない場合には、プリフェッチ命令が破棄されてしまい、ソフトウェアプリフェッチが失敗する場合がある。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、TLBを有効に利用することでソフトウェアプリフェッチを効果的に実行し、もってシステムの性能を向上させることができる情報処理装置およびソフトウェアプリフェッチ制御方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明に係る情報処理装置は、少なくとも1階層からなるキャッシュメモリと、前記キャッシュメモリに主記憶上のデータもしくは命令を投機的に転送するプリフェッチ命令とを備えた情報処理装置であって、仮想アドレスと物理アドレスの変換表を保持し、仮想アドレスから物理アドレスへの変換をおこなうアドレス変換のために最初にもちいられる第一のアドレス変換手段と、仮想アドレスと物理アドレスの変換表を保持し、前記第一のアドレス変換手段にてアドレス変換できなかった仮想アドレスをアドレス変換するためにもちいられる第二のアドレス変換手段と、前記プリフェッチ命令が実行された場合に、まず、前記第一のアドレス変換手段をもちいて仮想アドレスをアドレス変換し、これが変換できなかった場合は、前記第二のアドレス変換手段をもちいて仮想アドレスをアドレス変換し、これが変換できた場合は、前記第一のアドレス変換手段に該仮想アドレスと該仮想アドレスを変換した物理アドレスの対を登録して命令を完了させるキャッシュ制御手段とをさらに備えたことを特徴とする。
また、本発明に係るソフトウェアプリフェッチ制御方法は、少なくとも1階層からなるキャッシュメモリと、前記キャッシュメモリに主記憶上のデータもしくは命令を投機的に転送するプリフェッチ命令とを備えた情報処理装置におけるソフトウェアプリフェッチ制御方法であって、仮想アドレスと物理アドレスの変換表を保持し、仮想アドレスから物理アドレスへの変換をおこなうアドレス変換のために最初にもちいられる第一のアドレス変換工程と、仮想アドレスと物理アドレスの変換表を保持し、前記第一のアドレス変換工程にてアドレス変換できなかった仮想アドレスをアドレス変換するためにもちいられる第二のアドレス変換工程と、前記プリフェッチ命令が実行された場合に、まず、前記第一のアドレス変換工程をもちいて仮想アドレスをアドレス変換し、これが変換できなかった場合は、前記第二のアドレス変換工程をもちいて仮想アドレスをアドレス変換し、これが変換できた場合は、前記第一のアドレス変換工程に該仮想アドレスと該仮想アドレスを変換した物理アドレスの対を登録して命令を完了させるキャッシュ制御工程とを含んだことを特徴とする。
この発明によれば、第一のアドレス変換手段にてアドレス変換できない場合は、第二のアドレス変換手段をもちいてアドレス変換を試行し、変換がうまくいったならばアドレス変換情報を第一のアドレス変換手段へ登録するように構成したので、次回同じ領域に対してプリフェッチ命令が実行された場合には、プリフェッチを高い確率で成功させることができる。
また、本発明に係る情報処理装置は、上記の発明において、前記キャッシュ制御手段は、前記第一のアドレス変換手段をもちいて仮想アドレスをアドレス変換し、これが変換できなかった時点で次の命令の実行を受け付けることを特徴とする。
また、本発明に係るソフトウェアプリフェッチ制御方法は、上記の発明において、前記キャッシュ制御工程は、前記第一のアドレス変換工程をもちいて仮想アドレスをアドレス変換し、これが変換できなかった時点で次の命令の実行を受け付けることを特徴とする。
この発明によれば、第二のアドレス変換手段によるアドレス変換の可否を待たずに次の命令を開始できるように構成したので、処理待ち時間の発生を回避することができる。
また、本発明に係る情報処理装置は、上記の発明において、前記キャッシュ制御手段は、前記第一のアドレス変換手段および前記第二のアドレス変換手段のいずれをもちいても仮想アドレスをアドレス変換できなかった場合に、OSに対するトラップ報告を抑止することを特徴とする。
また、本発明に係るソフトウェアプリフェッチ制御方法は、上記の発明において、前記キャッシュ制御工程は、前記第一のアドレス変換工程および前記第二のアドレス変換工程のいずれをもちいても仮想アドレスをアドレス変換できなかった場合に、OSに対するトラップ報告を抑止することを特徴とする。
この発明によれば、アドレス変換できなかった場合に、OSに対するトラップ報告をおこなわないように構成したので、コンパイラの最適化などによるプログラムの予期せぬ停止を防止することができる。
本発明によれば、第一のアドレス変換手段にてアドレス変換できない場合は、第二のアドレス変換手段をもちいてアドレス変換を試行し、変換がうまくいったならばアドレス変換情報を第一のアドレス変換手段へ登録するように構成したので、次回同じ領域に対してプリフェッチ命令が実行された場合には、プリフェッチを高い確率で成功させることができるという効果を奏する。
また、本発明によれば、第二のアドレス変換手段によるアドレス変換の可否を待たずに次の命令を開始できるように構成したので、処理待ち時間の発生を回避することができるという効果を奏する。
また、本発明によれば、アドレス変換できなかった場合に、OSに対するトラップ報告をおこなわないように構成したので、コンパイラの最適化などによるプログラムの予期せぬ停止を防止することができるという効果を奏する。
以下に添付図面を参照して、この発明に係る情報処理装置およびソフトウェアプリフェッチ制御方法の好適な実施の形態を詳細に説明する。
ここでは、SPARC(R)アーキテクチャの情報処理装置を例にして説明をおこなうこととするが、本発明は、特定のアーキテクチャの情報処理装置に適用が限定されるものではなく、様々なアーキテクチャの情報処理装置に適用することが可能である。なお、説明の便宜上、一部のSPARC(R)アーキテクチャの仕様を簡略化もしくは省略して記述および図示している。
まず、本実施例に係る情報処理装置の構造について説明する。図1は、本実施例に係る情報処理装置の全体構成を示すブロック図である。同図に示すように、本実施例に係る情報処理装置10は、メモリ制御装置20を介して主記憶30と接続される。
メモリ制御装置20は、情報処理装置10の要求に基づいて主記憶30からのデータや命令のフェッチと主記憶30へのデータのストアとを制御する装置である。主記憶30は、情報処理装置10が利用する命令やデータが展開される記憶部である。
情報処理装置10は、命令処理装置100と、演算器200と、一次キャッシュ装置300とを有する。命令処理装置100は、主記憶30に展開されたプログラムの命令を読取り、これを演算器200等に実行させる処理装置である。演算器200は、命令処理装置100の指示に従って各種演算をおこなう装置である。
一次キャッシュ装置300は、主記憶30の一部を保持することによって情報処理装置10と主記憶30との間の命令やデータのやりとりを高速化するための装置であり、命令キャッシュ装置400とオペランドキャッシュ装置500とを有する。命令キャッシュ装置400は、主記憶30上の命令を保持する装置であり、オペランドキャッシュ装置500は、主として主記憶30上のデータを保持する装置である。
なお、本実施例では、説明を簡単におこなうために、情報処理装置10が一次キャッシュ装置300のみからなる単層のキャッシュシステムを備えるものとして説明するが、情報処理装置10は、二次キャッシュや三次キャッシュを有する複数階層のキャッシュシステムを備えていてもよい。
ここで、一次キャッシュ装置300の役割について説明しておく。主記憶30に利用される半導体は、記憶容量が重視されるため、処理速度のみが重視される情報処理装置10と異なり、半導体技術の進歩が動作速度の改善のみに注がれることがない。このため、情報処理装置10と主記憶30の動作速度の差は年々広がっており、現在では、その差は非常に大きなものになっている。
一方、一次キャッシュ装置300が備えるキャッシュメモリ560は、記憶容量よりも動作速度を重視した構造をしている。このため、命令処理装置100や演算器200は、主記憶30へアクセスする場合に比べて、はるかに高速にキャッシュメモリ560へアクセスすることができる。
一次キャッシュ装置300が備えるキャッシュメモリ560の容量は、主記憶30の容量に比べて小さなものだが、一般に主記憶30へのアクセスは局所性があることが知られており、主記憶30上の頻繁にアクセスされる領域のみをキャッシュメモリ560に保持するだけでも主記憶30へのアクセスを大幅に減らすことができ、システムの性能を大きく向上させることができる。
この一次キャッシュ装置300のキャッシュメモリ560を有効に活用するために、情報処理装置10はプリフェッチの仕組みを備えている。プリフェッチとは、命令処理装置100や演算器200が必要とするデータ等を事前に予測し、主記憶30から一次キャッシュ装置300へ移しておく仕組みである。
一次キャッシュ装置300上に必要なデータ等が存在しない場合、命令処理装置100や演算器200は、そのデータ等を低速な主記憶30から取得しなければならず、大きな処理遅延が発生する。プリフェッチにより必要なデータ等を事前に一次キャッシュ装置300へ移しておけば、この遅延の発生を避けることができ、システムの性能向上につながる。
プリフェッチには、情報処理装置10自身が判断して実行するハードウェアプリフェッチ以外に、コンパイラがソースコードをコンパイルする際に生成するソフトウェアプリフェッチ命令によるソフトウェアプリフェッチが存在する。SPARC(R)アーキテクチャにおいては、ソフトウェアプリフェッチ命令は、ストロングプリフェッチ命令とウィークプリフェッチ命令という2種類のプリフェッチ命令に分けられる。
次に、この2つのプリフェッチ命令について説明する前に、その前提知識として必要となるオペランドキャッシュ装置500の構成について説明することとする。図2は、図1に示したオペランドキャッシュ装置500の構成を示すブロック図である。
同図に示すように、オペランドキャッシュ装置500は、キャッシュ制御部510と、フェッチポート520と、μTLB530と、mTLB540と、キャッシュタグ550と、キャッシュメモリ560とを有する。なお、この図は、データのフェッチに関連する装置のみを図示したものであり、オペランドキャッシュ装置500の有する全ての装置を図示したものではない。
キャッシュ制御部510は、オペランドキャッシュ装置500を全体制御する制御部であり、命令処理装置100や演算器200、メモリ制御装置20といった外部の装置との間で要求や応答のやりとりをおこなったり、オペランドキャッシュ装置500内の他の装置に各種指示を送ったりといった制御をおこなう。
フェッチポート520は、実行中のフェッチ命令やプリフェッチ命令の実行状況等の情報を命令毎にポートを割当てて格納する記憶部である。各ポートには、命令の実行順序に従って情報が格納され、最も古い命令に係る情報を格納したポートは、TOQ(Top Of Queue)によって指し示される。
フェッチ命令やプリフェッチ命令が完了すると当該のポートには命令実行完了フラグが設定される。そして、命令実行完了フラグが設定されたTOQのポートは、サイクル終了時に完了処理を施されて解放される。このとき、後続のポートも、完了フラグが設定されており、間に完了フラグが設定されていないポートが存在しなければ、TOQのポートを含めて最大3つまで完了処理を施されて解放される。解放されたポートは、新しいフェッチ命令やプリフェッチ命令のために再利用可能となり、TOQは、新たに最も古くなったポートを指し示す。
μTLB530およびmTLB540は、ともに仮想アドレスを物理アドレスへ変換するための変換表を保持する記憶部である。従来、アドレス変換のための変換表はひとつのTLBにて管理されていたが、大容量化と変換速度の維持という相反する要求に応えるためにこのように多階層化されている。
近年、情報処理装置上で動作するプログラムが必要とするメモリ空間は非常に大きくなっており、仮想アドレスと物理アドレスの対応付けをおこなうTLBの容量もそれに応じて増大している。しかし、TLBの容量が大きくなると、必要なTLBエントリを検索するのに要する時間が増大してしまう。仮想アドレスから物理アドレスへの変換は、頻度の高い処理であるため、検索時間の増大はシステムの性能低下を招く。
この問題を解決するため、小容量のμTLB530と大容量のmTLB540という2階層でTLBを構成している。通常は、容量は小さいが検索が高速なμTLB530をもちいてアドレス変換をおこなう。そして、μTLB530に必要とするTLBエントリがなかった場合にのみmTLB540へアクセスしてTLBエントリを検索し、それが存在したならばμTLB530へ転記する。これにより、大容量だが低速なmTLB540へのアクセスを最小限に押さえ、アドレス変換を迅速におこなうことができる。
なお、ここではTLBの階層を2階層としているが、3階層以上の階層構造をとるように構成してもよい。
ここで、キャッシュ制御部510からμTLB530へ送信される2つの信号について説明しておく。一つ目の信号は、TRAP−ENABLE信号であり、この信号は、mTLB540へも送られ、FAST−MMU−MISS−TRAPを発生させるか否かを制御する。
TRAP−ENABLE信号がオンであるとき、mTLB540に必要とするTLBエントリが存在しないとFAST−MMU−MISS−TRAPが発生する。この例外は、OSに報告され、状況に応じてOSが必要な対処をおこなう。使用可能な仮想メモリの範囲を超えた領域にアクセスしようとしてFAST−MMU−MISS−TRAPが発生した場合、これを発生させたプログラムはOSによって停止させられることがある。
TRAP−ENABLE信号をオフにすると、mTLB540に必要とするTLBエントリが存在しない場合であってもFAST−MMU−MISS−TRAPは発生しなくなる。
二つ目の信号は、MTLB−GO−ENABLE信号であり、この信号は、μTLB530に必要とするTLBエントリがなかった場合にmTLB540へアクセスするか否かを制御する。この信号をオフにすると、μTLB530に必要とするTLBエントリがない場合であってもmTLB540へのアクセスがおこなわれなくなる。
キャッシュタグ550は、キャッシュメモリ560に主記憶30のどの領域が保持されているのかを記憶する記憶部である。キャッシュメモリ560は、高速アクセスが可能な比較的小容量の記憶装置である。キャッシュメモリ560は、主記憶30上のデータ等の一部を保持することで、情報処理装置10と主記憶30の速度差を吸収する役割を果たしている。
次に、ソフトウェアプリフェッチ命令の一つであるストロングプリフェッチ命令について説明する。ストロングプリフェッチ命令は、TRAP−ENABLE信号とMTLB−GO−ENABLE信号が両方ともオンの状態で実行されるソフトウェアプリフェッチ命令である。
したがって、ストロングプリフェッチ命令を実行すると、アドレス変換の際にμTLB530に必要とするTLBエントリがなかった場合は、mTLB540へアクセスをおこなう。また、mTLB540へアクセスをおこなっても必要とするTLBエントリがなかった場合は、FAST−MMU−MISS−TRAPが発生する。
図4は、ストロングプリフェッチ命令の処理手順を示すフローチャートである。同図に示すように、ストロングプリフェッチ命令を実行すると、まず、仮想アドレスから物理アドレスへのアドレス変換のためにμTLB530がアクセスされる(ステップS201)。μTLB530に必要とするTLBエントリが存在し、アドレス変換をおこなうことができたならば(ステップS202肯定)、プリフェッチ処理を実行する(ステップS203)。
具体的には、プリフェッチ処理とは、以下のような作業をおこなう処理である。まず、アドレス変換の結果得た物理アドレスをもちいてキャッシュタグ550を検索し、プリフェッチ対象の領域がキャッシュメモリ560上に保持されているか否かを調査する。もしも、プリフェッチ対象の領域がキャッシュメモリ560上に保持されていれば特に処理はおこなわない。保持されていない場合は、メモリ制御装置20に当該の領域を要求し、取得したデータをキャッシュメモリ560上に記憶する。
μTLB530に必要とするTLBエントリが存在しなかった場合は(ステップS202否定)、mTLB540がアクセスされる(ステップS204)。ここで、mTLB540にも必要とするTLBエントリが存在しなかった場合は(ステップS205否定)、FAST−MMU−MISS−TRAPを発生させ、プリフェッチを破棄する(ステップS208)。
mTLB540に必要とするTLBエントリが存在しない場合、主記憶30上のアドレス変換表を参照することで必要とするTLBエントリを検索することも可能だが、主記憶30の検索は低速な処理であるため、プリフェッチが間に合わない可能性もある。そのため、TLBをもちいてアドレス変換をおこなうことができなかった場合は、プリフェッチの実行を破棄することとしている。
mTLB540に必要とするTLBエントリが存在した場合は(ステップS205肯定)、当該のエントリをμTLB530に書込み(ステップS206)、プリフェッチ命令を再実行する(ステップS207)。再実行により、μTLB530へのアクセスが再びおこなわれるが、今回は、ステップS206で書き込んだTLBエントリがヒットし(ステップS202肯定)、プリフェッチ処理が実行されることになる(ステップS203)。
このように、ストロングプリフェッチ命令においては、μTLB530もしくはmTLB540のいずれかにアドレス変換のためのエントリが存在していればプリフェッチが破棄されることはなく、高い頻度でプリフェッチ処理が実行される。しかし、ストロングプリフェッチ命令は、コンパイラの最適化手法との相性の問題から、実際に使用されるケースは少ない。
具体的には、コンパイラがループ処理をソフトウェアパイプライニングの手法をもちいて最適化した場合が該当する。図5は、ソフトウェアパイプライニングによる最適化方法について説明するための説明図である。同図に示すように、ソフトウェアパイプライニングとは、ループを構成する命令を並列実行できるように構成しなおすことにより、ループが完了するまでに必要なサイクルを短縮する手法である。
このソフトウェアパイプライニングを使用する場合、並列実行する命令がデータ待ちで停止することがないようにプロフェッチが併用されることが多いが、ループを終了する際にループが使用するデータ域の範囲を超えた領域に対してプリフェッチが実行されることがある。このとき、プリフェッチがストロングプリフェッチ命令によるものであり、範囲を超えてアクセスしようとした領域が使用されていない領域だった場合、FAST−MMU−MISS−TRAPの発生によりプログラムが停止してしまう。
次に、もう一つのソフトウェアプリフェッチ命令であるウィークプリフェッチ命令について説明する。ウィークプリフェッチ命令は、TRAP−ENABLE信号とMTLB−GO−ENABLE信号が両方ともオフの状態で実行されるソフトウェアプリフェッチ命令である。
したがって、ウィークプリフェッチ命令を実行すると、アドレス変換の際にμTLB530に必要とするTLBエントリがなかった場合は、mTLB540へアクセスはおこなわない。また、FAST−MMU−MISS−TRAPが発生することもない。
図6は、従来のソフトウェアプリフェッチ方式におけるウィークプリフェッチ命令の処理手順を示すフローチャートである。同図に示すように、ウィークプリフェッチ命令を実行すると、まず、仮想アドレスから物理アドレスへのアドレス変換のためにμTLB530がアクセスされる(ステップS301)。μTLB530に必要とするTLBエントリが存在し、アドレス変換をおこなうことができたならば(ステップS302肯定)、プリフェッチ処理を実行する(ステップS303)。
μTLB530に必要とするTLBエントリが存在しなかった場合は(ステップS302否定)、例外を発生させることなくプリフェッチを破棄する。
このように、ウィークプリフェッチ命令においては、FAST−MMU−MISS−TRAPが発生することがないため、ストロングプリフェッチ命令のような問題は存在しない。このため、ソフトウェアプリフェッチをおこなう際は、多くの場合において、ウィークプリフェッチ命令が使用されている。
しかし、ウィークプリフェッチ命令は、μTLB530にアドレス変換のためのエントリが存在していなければ破棄されてしまうため、プリフェッチ処理が実行される頻度が低くなってしまうという問題がある。ウィークプリフェッチ命令の場合、mTLB540に必要なエントリが存在しても、これが有効に利用されることはない。
そこで、本実施例に係るソフトウェアプリフェッチ方式においては、このウィークプリフェッチ命令の動作を改良し、mTLB540の情報を有効に活用してプリフェッチ処理が高い頻度でおこなわれるようにしている。具体的には、ウィークプリフェッチ命令を実行する際に、MTLB−GO−ENABLE信号のみをオンにし、FAST−MMU−MISS−TRAPの発生を抑制した状態で、mTLB540へのアクセスをおこなうようにしている。
図3は、本実施例に係るソフトウェアプリフェッチ方式におけるウィークプリフェッチ命令の処理手順を示すフローチャートである。同図に示すように、ウィークプリフェッチ命令を実行すると、まず、仮想アドレスから物理アドレスへのアドレス変換のためにμTLB530がアクセスされる(ステップS101)。μTLB530に必要とするTLBエントリが存在し、アドレス変換をおこなうことができたならば(ステップS102肯定)、プリフェッチ処理を実行する(ステップS103)。
μTLB530に必要とするTLBエントリが存在しなかった場合は(ステップS102否定)、プリフェッチが破棄され、その一方で、mTLB540がアクセスされる(ステップS104)。
ここで、mTLB540にも必要とするTLBエントリが存在しなかったとしても(ステップS105否定)、FAST−MMU−MISS−TRAPは発生させない。そして、mTLB540に必要とするTLBエントリが存在した場合は(ステップS105肯定)、当該のエントリをμTLB530に書き込む(ステップS106)。
このように、本実施例に係るソフトウェアプリフェッチ方式におけるウィークプリフェッチ命令は、μTLB530に必要なエントリが存在しない場合は、その時点でプリフェッチを破棄し、その一方でmTLB540の参照をおこなう。そして、mTLB540にアドレス変換に必要なエントリを発見した場合、そのエントリをμTLB530へ書き込む。ストロングプリフェッチ命令のように、μTLB530への書込みの後に命令の再実行をおこなわないのには下記の理由がある。
第1の理由は、命令の再実行をおこなうためには、mTLB540へのアクセスを禁止して、トラップ報告フローを実行すると同時に、トラップ報告そのものは抑止するといった複雑な制御をウィークプリフェッチ命令に加える必要があり、設計や検証に大きな工数を要するためである。
第2の理由は、1回目のウィークプリフェッチ命令によってプリフェッチ処理が実行されなくても、1回目のウィークプリフェッチ命令によってμTLB530の更新がおこなわれるため、同じ領域に対する2回目以降のウィークプリフェッチ命令によってプリフェッチ処理が実行されることになるためである。
通常、同じ領域中の複数箇所に対してプログラムからのアクセスがあるが、このような場合、アクセス箇所数分のプリフェッチ命令がコンパイラに生成される。したがって、1回目のウィークプリフェッチ命令によってプリフェッチ処理が実行されないとしても、後続のウィークプリフェッチ命令によってプリフェッチ処理が実行されることになり、プリフェッチ処理は高い頻度で実行されることとなる。
第3の理由は、μTLB530にエントリが存在しないことが分かった時点で命令を破棄し次の命令を実行することで、mTLB540の検索中処理待ちが発生するのを防止するためである。
上述してきたように、本実施例では、ウィークプリフェッチ命令を実行する際に、μTLB530を参照して必要なTLBエントリが存在しなかった場合には、mTLB540を参照し、必要なTLBエントリが存在すればμTLB530へ転記するように構成したので、高い確率でウィークプリフェッチ命令によるソフトウェアプリフェッチを成功させることができる。
(付記1)少なくとも1階層からなるキャッシュメモリと、前記キャッシュメモリに主記憶上のデータもしくは命令を投機的に転送するプリフェッチ命令とを備えた情報処理装置であって、
仮想アドレスと物理アドレスの変換表を保持し、仮想アドレスから物理アドレスへの変換をおこなうアドレス変換のために最初にもちいられる第一のアドレス変換手段と、
仮想アドレスと物理アドレスの変換表を保持し、前記第一のアドレス変換手段にてアドレス変換できなかった仮想アドレスをアドレス変換するためにもちいられる第二のアドレス変換手段と、
前記プリフェッチ命令が実行された場合に、まず、前記第一のアドレス変換手段をもちいて仮想アドレスをアドレス変換し、これが変換できなかった場合は、前記第二のアドレス変換手段をもちいて仮想アドレスをアドレス変換し、これが変換できた場合は、前記第一のアドレス変換手段に該仮想アドレスと該仮想アドレスを変換した物理アドレスの対を登録して命令を完了させるキャッシュ制御手段と
をさらに備えたことを特徴とする情報処理装置。
(付記2)前記キャッシュ制御手段は、前記第一のアドレス変換手段をもちいて仮想アドレスをアドレス変換し、これが変換できなかった時点で次の命令の実行を受け付けることを特徴とする付記1に記載の情報処理装置。
(付記3)前記キャッシュ制御手段は、前記第一のアドレス変換手段および前記第二のアドレス変換手段のいずれをもちいても仮想アドレスをアドレス変換できなかった場合に、OSに対するトラップ報告を抑止することを特徴とする付記1または2に記載の情報処理装置。
(付記4)少なくとも1階層からなるキャッシュメモリと、前記キャッシュメモリに主記憶上のデータもしくは命令を投機的に転送するプリフェッチ命令とを備えた情報処理装置におけるソフトウェアプリフェッチ制御方法であって、
仮想アドレスと物理アドレスの変換表を保持し、仮想アドレスから物理アドレスへの変換をおこなうアドレス変換のために最初にもちいられる第一のアドレス変換工程と、
仮想アドレスと物理アドレスの変換表を保持し、前記第一のアドレス変換工程にてアドレス変換できなかった仮想アドレスをアドレス変換するためにもちいられる第二のアドレス変換工程と、
前記プリフェッチ命令が実行された場合に、まず、前記第一のアドレス変換工程をもちいて仮想アドレスをアドレス変換し、これが変換できなかった場合は、前記第二のアドレス変換工程をもちいて仮想アドレスをアドレス変換し、これが変換できた場合は、前記第一のアドレス変換工程に該仮想アドレスと該仮想アドレスを変換した物理アドレスの対を登録して命令を完了させるキャッシュ制御工程と
を含んだことを特徴とするソフトウェアプリフェッチ制御方法。
(付記5)前記キャッシュ制御工程は、前記第一のアドレス変換工程をもちいて仮想アドレスをアドレス変換し、これが変換できなかった時点で次の命令の実行を受け付けることを特徴とする付記4に記載のソフトウェアプリフェッチ制御方法。
(付記6)前記キャッシュ制御工程は、前記第一のアドレス変換工程および前記第二のアドレス変換工程のいずれをもちいても仮想アドレスをアドレス変換できなかった場合に、OSに対するトラップ報告を抑止することを特徴とする付記4または5に記載のソフトウェアプリフェッチ制御方法。
以上のように、本発明にかかる情報処理装置およびソフトウェアプリフェッチ制御方法は、ソフトウェアプリフェッチの効率的な実行に有用であり、特に、複数階層からなるTLBが存在する場合においてプリフェッチ命令を効果的に実行したい場合に適している。
本実施例に係る情報処理装置の全体構成を示すブロック図である。 図1に示したオペランドキャッシュ装置の構成を示すブロック図である。 本実施例に係るソフトウェアプリフェッチ方式におけるウィークプリフェッチ命令の処理手順を示すフローチャートである。 ストロングプリフェッチ命令の処理手順を示すフローチャートである。 ソフトウェアパイプライニングによる最適化方法について説明するための説明図である。 従来のソフトウェアプリフェッチ方式におけるウィークプリフェッチ命令の処理手順を示すフローチャートである。
符号の説明
10 情報処理装置
20 メモリ制御装置
30 主記憶
100 命令処理装置
200 演算器
300 一次キャッシュ装置
400 命令キャッシュ装置
500 オペランドキャッシュ装置
510 キャッシュ制御装置
520 フェッチポート
530 μTLB
540 mTLB
550 キャッシュタグ
560 キャッシュメモリ

Claims (6)

  1. 少なくとも1階層からなるキャッシュメモリと、前記キャッシュメモリに主記憶上のデータもしくは命令を投機的に転送するプリフェッチ命令とを備えた情報処理装置であって、
    仮想アドレスと物理アドレスの変換表を保持し、仮想アドレスから物理アドレスへの変換をおこなうアドレス変換のために最初にもちいられる第一のアドレス変換手段と、
    仮想アドレスと物理アドレスの変換表を保持し、前記第一のアドレス変換手段にてアドレス変換できなかった仮想アドレスをアドレス変換するためにもちいられる第二のアドレス変換手段と、
    前記プリフェッチ命令が実行された場合に、まず、前記第一のアドレス変換手段をもちいて仮想アドレスをアドレス変換し、これが変換できなかった場合は、プリフェッチ命令をキャンセルして、前記第二のアドレス変換手段をもちいて仮想アドレスをアドレス変換し、これが変換できた場合は、前記第一のアドレス変換手段に該仮想アドレスと該仮想アドレスを変換した物理アドレスの対を登録して命令を完了させるキャッシュ制御手段と
    をさらに備えたことを特徴とする情報処理装置。
  2. 前記キャッシュ制御手段は、前記第一のアドレス変換手段をもちいて仮想アドレスをアドレス変換し、これが変換できなかった時点で次の命令の実行を受け付けることを特徴とする請求項1に記載の情報処理装置。
  3. 前記キャッシュ制御手段は、前記第一のアドレス変換手段および前記第二のアドレス変換手段のいずれをもちいても仮想アドレスをアドレス変換できなかった場合に、OSに対するトラップ報告を抑止することを特徴とする請求項1または2に記載の情報処理装置。
  4. 少なくとも1階層からなるキャッシュメモリと、前記キャッシュメモリに主記憶上のデータもしくは命令を投機的に転送するプリフェッチ命令とを備えた情報処理装置におけるソフトウェアプリフェッチ制御方法であって、
    仮想アドレスと物理アドレスの変換表を保持し、仮想アドレスから物理アドレスへの変換をおこなうアドレス変換のために最初にもちいられる第一のアドレス変換工程と、
    仮想アドレスと物理アドレスの変換表を保持し、前記第一のアドレス変換工程にてアドレス変換できなかった仮想アドレスをアドレス変換するためにもちいられる第二のアドレス変換工程と、
    前記プリフェッチ命令が実行された場合に、まず、前記第一のアドレス変換工程をもちいて仮想アドレスをアドレス変換し、これが変換できなかった場合は、プリフェッチ命令をキャンセルして、前記第二のアドレス変換工程をもちいて仮想アドレスをアドレス変換し、これが変換できた場合は、前記第一のアドレス変換工程に該仮想アドレスと該仮想アドレスを変換した物理アドレスの対を登録して命令を完了させるキャッシュ制御工程と
    を含んだことを特徴とするソフトウェアプリフェッチ制御方法。
  5. 前記キャッシュ制御工程は、前記第一のアドレス変換工程をもちいて仮想アドレスをアドレス変換し、これが変換できなかった時点で次の命令の実行を受け付けることを特徴とする請求項4に記載のソフトウェアプリフェッチ制御方法。
  6. 前記キャッシュ制御工程は、前記第一のアドレス変換工程および前記第二のアドレス変換工程のいずれをもちいても仮想アドレスをアドレス変換できなかった場合に、OSに対するトラップ報告を抑止することを特徴とする請求項4または5に記載のソフトウェアプリフェッチ制御方法。
JP2004224560A 2004-07-30 2004-07-30 情報処理装置およびソフトウェアプリフェッチ制御方法 Expired - Fee Related JP4520790B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004224560A JP4520790B2 (ja) 2004-07-30 2004-07-30 情報処理装置およびソフトウェアプリフェッチ制御方法
US10/986,017 US7373478B2 (en) 2004-07-30 2004-11-12 Information processing apparatus and software pre-fetch control method
EP04257428.5A EP1622007B1 (en) 2004-07-30 2004-11-30 Information processing apparatus and software pre-fetch control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004224560A JP4520790B2 (ja) 2004-07-30 2004-07-30 情報処理装置およびソフトウェアプリフェッチ制御方法

Publications (2)

Publication Number Publication Date
JP2006048164A JP2006048164A (ja) 2006-02-16
JP4520790B2 true JP4520790B2 (ja) 2010-08-11

Family

ID=35159878

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004224560A Expired - Fee Related JP4520790B2 (ja) 2004-07-30 2004-07-30 情報処理装置およびソフトウェアプリフェッチ制御方法

Country Status (3)

Country Link
US (1) US7373478B2 (ja)
EP (1) EP1622007B1 (ja)
JP (1) JP4520790B2 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US8624906B2 (en) * 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
US8416251B2 (en) 2004-11-15 2013-04-09 Nvidia Corporation Stream processing in a video processor
US7395406B2 (en) * 2005-05-12 2008-07-01 International Business Machines Corporation System and method of large page handling in a virtual memory system
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
US7886112B2 (en) * 2006-05-24 2011-02-08 Sony Computer Entertainment Inc. Methods and apparatus for providing simultaneous software/hardware cache fill
US20080300583A1 (en) * 2007-06-01 2008-12-04 Ceramoptec Industries, Inc. Vascular laser treatment device and method
US8683126B2 (en) 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US8780123B2 (en) 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8489851B2 (en) * 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
CN101667159B (zh) * 2009-09-15 2012-06-27 威盛电子股份有限公司 传送请求区块的高速缓存系统及方法
CN104461942B (zh) * 2009-09-15 2018-06-08 威盛电子股份有限公司 串流上下文的高速缓存系统
WO2012103253A2 (en) * 2011-01-27 2012-08-02 Soft Machines, Inc. Multilevel conversion table cache for translating guest instructions to native instructions
CN108874693B (zh) 2011-01-27 2022-09-23 英特尔公司 使用处理器的转换后备缓冲器的基于客户指令到本机指令范围的映射
WO2012103367A2 (en) 2011-01-27 2012-08-02 Soft Machines, Inc. Guest to native block address mappings and management of native code storage
WO2012103359A2 (en) 2011-01-27 2012-08-02 Soft Machines, Inc. Hardware acceleration components for translating guest instructions to native instructions
WO2012103373A2 (en) 2011-01-27 2012-08-02 Soft Machines, Inc. Variable caching structure for managing physical storage
WO2012103245A2 (en) 2011-01-27 2012-08-02 Soft Machines Inc. Guest instruction block with near branching and far branching sequence construction to native instruction block
EP2683009B1 (en) * 2011-03-01 2020-06-17 Nissan Motor Co., Ltd Fuel cell system
WO2014002220A1 (ja) * 2012-06-27 2014-01-03 富士通株式会社 管理装置、データ取得方法およびデータ取得プログラム
CN105122206B (zh) 2013-03-15 2018-11-09 英特尔公司 用于支持推测的访客返回地址栈仿真的方法和装置
WO2014151652A1 (en) 2013-03-15 2014-09-25 Soft Machines Inc Method and apparatus to allow early dependency resolution and data forwarding in a microprocessor
US9304928B2 (en) * 2013-07-26 2016-04-05 Netapp, Inc. Systems and methods for adaptive prefetching
US9645934B2 (en) * 2013-09-13 2017-05-09 Samsung Electronics Co., Ltd. System-on-chip and address translation method thereof using a translation lookaside buffer and a prefetch buffer
US10007435B2 (en) * 2015-05-21 2018-06-26 Micron Technology, Inc. Translation lookaside buffer in memory
US10402332B2 (en) * 2016-05-24 2019-09-03 Xilinx, Inc. Memory pre-fetch for virtual memory
US20220197821A1 (en) * 2020-12-23 2022-06-23 Intel Corporation Device, system and method for selectively dropping software prefetch instructions

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0651982A (ja) * 1992-08-04 1994-02-25 Fujitsu Ltd 演算処理装置
JPH0654478B2 (ja) * 1985-08-07 1994-07-20 横河・ヒユ−レツト・パツカ−ド株式会社 計算機システム
JPH07152654A (ja) * 1993-10-04 1995-06-16 Motorola Inc メモリ・アクセス誤りを処理しアドレス変換キャッシュを更新する方法
JPH11501744A (ja) * 1995-03-03 1999-02-09 富士通株式会社 アドレス変換速度アップのための並列アクセスマイクロ−tlb
US5970509A (en) * 1997-05-30 1999-10-19 National Semiconductor Corporation Hit determination circuit for selecting a data set based on miss determinations in other data sets and method of operation
JP2001290706A (ja) * 2000-03-31 2001-10-19 Texas Instr Inc <Ti> Tlbキャッシュのためのプリフェッチ
JP2002132581A (ja) * 2000-10-25 2002-05-10 Mitsubishi Electric Corp メモリ管理機構
JP2002149490A (ja) * 2000-11-06 2002-05-24 Fujitsu Ltd マイクロプロセッサ及びマイクロプロセッサのアドレス変換方法
US6418521B1 (en) * 1998-12-23 2002-07-09 Intel Corporation Hierarchical fully-associative-translation lookaside buffer structure
JP2004038808A (ja) * 2002-07-05 2004-02-05 Fujitsu Ltd 2階層アドレス変換装置および2階層アドレス変換方法
US6745293B2 (en) * 2000-08-21 2004-06-01 Texas Instruments Incorporated Level 2 smartcache architecture supporting simultaneous multiprocessor accesses
US6832296B2 (en) * 2002-04-09 2004-12-14 Ip-First, Llc Microprocessor with repeat prefetch instruction

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5265220A (en) * 1986-12-23 1993-11-23 Nec Corporation Address control device for effectively controlling an address storing operation even when a request is subsequently cancelled
KR890007159A (ko) 1987-10-30 1989-06-19 미다 가쓰시게 데이타 처리장치 및 그것을 갖는 데이타 처리 시스템
US5423014A (en) * 1991-10-29 1995-06-06 Intel Corporation Instruction fetch unit with early instruction fetch mechanism
US5790979A (en) * 1993-05-10 1998-08-04 Liedtke; Jochen Translation method in which page-table progression is dynamically determined by guard-bit sequences
US6490658B1 (en) * 1997-06-23 2002-12-03 Sun Microsystems, Inc. Data prefetch technique using prefetch cache, micro-TLB, and history file
JP3512678B2 (ja) 1999-05-27 2004-03-31 富士通株式会社 キャッシュメモリ制御装置および計算機システム
US6363336B1 (en) * 1999-10-13 2002-03-26 Transmeta Corporation Fine grain translation discrimination
US6711671B1 (en) * 2000-02-18 2004-03-23 Hewlett-Packard Development Company, L.P. Non-speculative instruction fetch in speculative processing
JP2003186668A (ja) * 2001-12-14 2003-07-04 Mitsubishi Electric Corp 命令コード変換ユニットおよび命令コード変換方法

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0654478B2 (ja) * 1985-08-07 1994-07-20 横河・ヒユ−レツト・パツカ−ド株式会社 計算機システム
JPH0651982A (ja) * 1992-08-04 1994-02-25 Fujitsu Ltd 演算処理装置
JPH07152654A (ja) * 1993-10-04 1995-06-16 Motorola Inc メモリ・アクセス誤りを処理しアドレス変換キャッシュを更新する方法
JPH11501744A (ja) * 1995-03-03 1999-02-09 富士通株式会社 アドレス変換速度アップのための並列アクセスマイクロ−tlb
US5970509A (en) * 1997-05-30 1999-10-19 National Semiconductor Corporation Hit determination circuit for selecting a data set based on miss determinations in other data sets and method of operation
US6418521B1 (en) * 1998-12-23 2002-07-09 Intel Corporation Hierarchical fully-associative-translation lookaside buffer structure
JP2001290706A (ja) * 2000-03-31 2001-10-19 Texas Instr Inc <Ti> Tlbキャッシュのためのプリフェッチ
US6745293B2 (en) * 2000-08-21 2004-06-01 Texas Instruments Incorporated Level 2 smartcache architecture supporting simultaneous multiprocessor accesses
JP2002132581A (ja) * 2000-10-25 2002-05-10 Mitsubishi Electric Corp メモリ管理機構
JP2002149490A (ja) * 2000-11-06 2002-05-24 Fujitsu Ltd マイクロプロセッサ及びマイクロプロセッサのアドレス変換方法
US6832296B2 (en) * 2002-04-09 2004-12-14 Ip-First, Llc Microprocessor with repeat prefetch instruction
JP2004038808A (ja) * 2002-07-05 2004-02-05 Fujitsu Ltd 2階層アドレス変換装置および2階層アドレス変換方法

Also Published As

Publication number Publication date
JP2006048164A (ja) 2006-02-16
EP1622007A3 (en) 2008-01-16
US7373478B2 (en) 2008-05-13
EP1622007B1 (en) 2018-09-12
US20060026365A1 (en) 2006-02-02
EP1622007A2 (en) 2006-02-01

Similar Documents

Publication Publication Date Title
JP4520790B2 (ja) 情報処理装置およびソフトウェアプリフェッチ制御方法
JP3820261B2 (ja) データ処理システムの外部および内部命令セット
TWI397813B (zh) 用於虛擬化交易式記憶體的總體溢位之裝置、方法與系統
US8706973B2 (en) Unbounded transactional memory system and method
US10884739B2 (en) Systems and methods for load canceling in a processor that is connected to an external interconnect fabric
JP5543022B2 (ja) データ処理装置内のローカル・キャッシュ構造に対して行われるアクセス動作を取り扱うための装置及び方法
US9471494B2 (en) Method and apparatus for cache line write back operation
US10572179B2 (en) Speculatively performing memory move requests with respect to a barrier
JP2006318051A (ja) マイクロプロセッサ及びマイクロプロセッサの制御方法
US9092346B2 (en) Speculative cache modification
JP2015530683A (ja) 異種計算システムにおけるコールド変換索引バッファミスを低減させること
US20180052605A1 (en) Memory access in a data processing system utilizing copy and paste instructions
CN110959154A (zh) 用于线程本地存储数据访问的私有高速缓存
US10241945B2 (en) Memory move supporting speculative acquisition of source and destination data granules including copy-type and paste-type instructions
US20060149940A1 (en) Implementation to save and restore processor registers on a context switch
US6892280B2 (en) Multiprocessor system having distributed shared memory and instruction scheduling method used in the same system
US20060184713A1 (en) Method for operating a virtual machine computer system running guest operating systems on a central processing means virtualized by a host system having register stack engine functionality
US7451274B2 (en) Memory control device, move-in buffer control method
TWI723069B (zh) 用於在多個快取層級之間的共用最近最少使用(lru)策略的設備及方法
US20180121353A1 (en) System, method, and apparatus for reducing redundant writes to memory by early detection and roi-based throttling
WO2013101031A1 (en) Hiding instruction cache miss latency by running tag lookups ahead of the instruction accesses
JP2001249846A (ja) キャッシュメモリ装置及びデータ処理システム
KR101203157B1 (ko) 데이터 전달 시스템, 장치 및 방법
JP4867451B2 (ja) キャッシュメモリ装置及びそれに用いるキャッシュメモリ制御方法並びにそのプログラム
JP4011871B2 (ja) プロセッサ及びコンピュータシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100223

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100426

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

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

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4520790

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees