JP4011871B2 - プロセッサ及びコンピュータシステム - Google Patents
プロセッサ及びコンピュータシステム Download PDFInfo
- Publication number
- JP4011871B2 JP4011871B2 JP2001245531A JP2001245531A JP4011871B2 JP 4011871 B2 JP4011871 B2 JP 4011871B2 JP 2001245531 A JP2001245531 A JP 2001245531A JP 2001245531 A JP2001245531 A JP 2001245531A JP 4011871 B2 JP4011871 B2 JP 4011871B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- instruction
- load instruction
- load
- processor
- 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
Links
Images
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の属する技術分野】
本発明は、プロセッサ及びコンピュータシステムに係り、特に、普通のロード命令の他にnon faultingロード命令を処理するプロセッサ及びこのプロセッサを備えたコンピュータシステムに関する。
【0002】
【従来の技術】
一般に、マイクロプロセッサにおけるロード命令の実行サイクル数は、演算命令の実行サイクル数より長い傾向がある。このため、プロセッサの性能を十分に引き出すためには、プログラムの中において、ロード命令とそのロードデータを使用する演算命令とをなるべく離して配置するすことが必要である。
【0003】
しかし、メモリのスピード向上ペースは、ゲートのスピード向上ペースより遅いため、プロセッサの動作周波数が向上するにつれ、キャッシュヒットの場合でもロード命令の実行サイクル数は増加する傾向にある。さらに、スーパースカラ方式が採用され、複数の命令を1サイクル内で同時に実行するようになると、ロード命令とそのロードデータを使う演算命令とを十分離すには、さらに多くの命令をロード命令と演算命令との間に入れる必要がある。ところが、プログラムには、分岐命令が含まれており、この分岐命令が妨げとなって、ロード命令と演算命令とを十分に離すことができないことがある。一例として、次のようなC言語による
if(ptr ≠NULL) x=*ptr + y; (1)
というプログラムを考える。
【0004】
このプログラムは、もし、アドレスを示す変数ptr が0でなければ、そのアドレスptr を読み出してその読み出し内容*ptrにyを加えてxを求めるという命令プログラムである。この命令プログラムにおいて、*ptrをロードする命令と*ptr+yを計算する命令とを十分離すには、ptr ≠NULLの判定をする前に*ptrをロードすればよい。すなわち、
temp_reg=*ptr; (ロードした*ptrをレジスタに一時格納する命令)
関係ない命令;
if(ptr ≠NULL) x=temp + y; (2)
の順となるように順に命令列を作成すればよい。
【0005】
しかし、ほとんどのシステムの場合、ロード命令のアドレスがNULLの場合、例外が発生してプログラムの実行が中止されてしまうので、このような最適化を行うことができない。
【0006】
前述した例は一例であり、一般的に、分岐命令の後ろにあるロード命令が実行されないとき、そのロードアドレスはどのような値になるかは判らない。従って、分岐命令の前にロード命令を移動すると例外が発生する可能性がある。
【0007】
この問題を解決するための従来技術として、例えば、「David.L.Weaver and Tom Germond,The SPARC Architecture Manual,Version9,Prentice-Hall,Inc.,1994」に記載された、non faultingロード命令を導入するという技術がが知られている。このnon faultingロード命令の基本的な動作は、普通のロード命令と同一であるが次の2点が異なる。すなわち、
アドレス変換が可能で、そのメモリ領域に対してnon faultingロード実行可能属性が設定されていれば、例外を発生させない。また、address out of rangeなどが原因でアドレス変換ができない場合、システムソフトウェアとの協力によってターゲットレジスタに0が書き込まれて例外が無視され、プログラムの実行が継続される。
【0008】
前述したようなnon faultingロード命令を普通のロード命令の代わりに使用する従来技術は、前述したような例の場合にも例外発生によってプログラム実行が中止されることがなくなる。このため、前述した従来技術は、ロード命令とその結果を使用する演算命令との距離を大きくし、プログラムの実行性能を向上させることができる。なお、分岐命令の前に移動したロード命令が例外を発生する場合、そもそもそのロード命令を実行する必要がない(そのようなアドレスのときは実行されないように分岐命令によって制御されていたはず)ので、このような方法としても問題はない。
【0009】
【発明が解決しようとする課題】
前述した従来技術によれば、ロード命令を演算命令から離すために、ロード命令を分岐命令より前に移動し、プログラムの実行性能の向上を図ることが可能になる。しかし、前述の従来技術は、アドレス変換例外が発生する可能性が残る。この理由は、変換テーブルが大きくなりすぎるため、全てのアドレスについて変換エントリを用意することができないためである。従って、non faultingロード命令を使用する前述した従来技術は、アドレス変換例外発生の確率とその処理オーバヘッドがあってもプログラム実行が高速化できるか否かとを考慮する必要がある。
【0010】
また、前述した従来技術は、アドレス変換にハッシュテーブルを使うアーキテクチャの場合、ハッシュの計算結果が同じ場所に登録できるアドレス変換の数に限りがあり、このため、全てのアドレス変換をハッシュテーブルに入れることができず、address out of rangeでないにもかかわらずアドレス変換例外が発生することがある。従って、non faultingロードでアドレス変換例外が起きたとき、まず、そのアドレスを調べ、address out of rangeであればアドレス変換例外を無視し、そうでなければハッシュテーブルを入れ替える必要がある。この処理は、オーバヘッドが大きく、また、ソフトウェアでTLB を入れ替えるアーキテクチャの場合にも、一度に扱えるアドレス変換の数に制約があるので同様の問題が生じる。
【0011】
本発明の目的は、前述した従来技術の問題点を解決し、non faultingロードのアドレス変換例外の頻度を減らし、アプリケーションプログラムを高速に実行することを可能にしたnon faultingロード命令を処理するプロセッサ及びこのプロセッサを備えたコンピュータシステムを提供することにある。
【0012】
【課題を解決するための手段】
本発明によれば前記目的は、第1のロード命令(通常のロード命令)と、前記第1のロード命令とは命令コードが異なる第2のロード命令(non faultingロード命令)とを実行可能に構成されたプロセッサにおいて、論理アドレスを物理アドレスに変換するアドレス変換回路と、制御ビットと、前記第2のロード命令で前記アドレス変換回路がアドレス変換に失敗したとき、前記制御ビットの値によってアドレス変換例外を発生させるか否かを制御する制御機能とを備えたことにより達成される。
【0013】
本発明は、non faultingロード命令がアドレス変換例外を起こす必要がないとソフトウェアが判断したとき、例外を起こさないようにすることができ、これにより、アドレス変換例外の処理オーバヘッドを減らすことができる。
【0014】
【発明の実施の形態】
以下、本発明によるnon faultingロード命令を処理するプロセッサ及びコンピュータシステムの実施形態を図面により詳細に説明する。
【0015】
図1は本発明の一実施形態によるコンピュータシステムの構成を示すブロック図である。図1において、601は命令キャッシュ、602は命令TLB、611は浮動小数点レジスタ、612は浮動小数点演算器、621は汎用レジスタ、622はALU、623はデータキャッシュ、624はデータTLB、626はバスインタフェース、631はテーブル検索エンジン、641はプロセッサ、642はプロセッサバス、643はメインメモリ、644はI/O装置である。
【0016】
図1に示すコンピュータシステムは、1または複数のプロセッサ641(図1には1台のみを示している)と、メインメモリ643及びI/O装置644とがプロセッサバス642により接続されて構成される。プロセッサ641は、分岐命令、整数演算命令、浮動小数点演算命令、ロード・ストア命令、システム制御命令等を実行することができ、また、通常のロード命令が例外を発生するようなケースでも例外を発生しないノンフォルトロード命令も実行可能である。
【0017】
プロセッサ641は、命令キャッシュ601とデータキャッシュ623とを備えており、キャッシュミスの場合、命令キャッシュまたはデータキャッシュに必要なラインをメインメモリから転送してから処理を行う。また、プロセッサ641は、命令TLB602、データTLB624、浮動小数点レジスタ611、浮動小数点演算器612、汎用レジスタ621、ALU622、テーブル検索エンジン631を備え、これらが協力して命令を実行する。
【0018】
前述において、汎用レジスタ621は、32本の64ビット汎用レジスタにより構成され、浮動小数点レジスタ611は、32本の64ビット浮動小数点レジスタにより構成されている。汎用レジスタ621は、整数演算の対象となるデータやロード・ストア命令のアドレスを保持するために使用され、浮動小数点レジスタ611は、浮動小数点演算の対象となるデータを保持するために使用される。また、プロセッサ641は、プロセッサ641の動作を制御する制御レジスタを幾つか備えている。制御レジスタとしては、non faultingロード許可レジスタNLDR625、ページテーブルアドレスレジスタPAR632、ブロックテーブルアドレスレジスタBAR633等が備えられている。これらの制御レジスタの値は、mtcr/mfcr命令によって汎用レジスタとの間で読み書きすることが可能である。
【0019】
ALU622は、整数演算、論理演算を行うと共に、ロード・ストア命令のアドレスの計算をも行う。命令TLB602とデータTLB624とは、最近使ったアドレス変換の幾つかを保持しており、これらのTLBにヒットすればテーブルを検索する必要がないため、高速にアドレスを変換することができる。TLBミスの場合、テーブル検索エンジン631に対して、テーブル検索要求を発行して内容を入れ替える。
【0020】
各TLBには、物理アドレスの他にページテーブル/ブロックテーブルのPPビットも保持されており、メモリアクセスが許可されているか否かのチェックも行うことができる。アクセスが禁止されている場合、命令フェッチアクセスと普通のロード命令ならば、メモリ保護例外が発生するが、non faultingロード命令の場合、ターゲットレジスタに0を書き込んで命令の実行が完了する。これに加えて、データTLBには、ページテーブル/ブロックテーブルのCビットのコピーも保持されている。ストア命令でこのビットが0ならば、データTLB624は、このビットを1にセットすると同時に、テーブル検索エンジン631を起動してページテーブル/ブロックテーブル本体のCビットもセットする。
【0021】
テーブル検索エンジン631は、命令TLB602またはデータTLB624からの要求を受けて、図5と図6とにより後述するように、アドレス変換テーブルを検索してアドレス変換の処理を行う。このため、テーブル検索エンジン631は、内部にテーブル検索に必要なページテーブルアドレスレジスタPAR632、ブロックテーブルアドレスレジスタBAR633を備えている。検索に成功した場合、その変換エントリのRビットがセットされ、変換結果が命令TLB602またはデータTLB624に送られて登録される。また、データTLB624からのCビットセット要求の場合、発見した変換エントリのCビットをセットする。
【0022】
また、テーブル検索エンジン631が検索に失敗した場合、テーブル検索エンジン631は、そのことを検索要求元のTLBに通知する。命令TLB602は、検索失敗が通知されると命令アドレス変換例外を発生させる。また、データTLB624は、命令の種類とNLDR625の値によってデータアドレス変換例外を起こすかどうかを決定する。すなわち、普通のロード命令の場合、必ずアドレス変換例外を発生させ、non faultingロード命令の場合、NLDR=0であれば、アドレス変換例外を生起させ、NLDR=1であれば、ターゲットレジスタに0を書き込み命令を完了させる。
【0023】
前述したような構成と機能とを有するプロセッサ641は、ロード・ストアアーキテクチャを採用しており、メモリ上のデータについて直接演算を行うことはできない。すなわち、プロセッサ641は、メモリ上のデータについて演算を行う場合、メモリのデータをロード命令または、non faultingロード命令により一旦レジスタに入れてから演算を行い、演算結果をストア命令によってレジスタからメモリに書き戻す。
【0024】
また、プロセッサ641は、ロード・ストア命令として、1,2,4,8バイトのデータを扱うことができ、アドレスがデータサイズの整数倍でない場合、アライメント違反の例外が発生する。アドレス空間の大きさは、仮想アドレス空間も物理アドレス空間も264バイトである。
【0025】
図2は本発明の実施形態での通常のロード命令の処理動作を説明するフローチャートであり、次に、これについて説明する。
【0026】
(1)処理が開始されると、まず、レジスタから読み出したデータを使用して、ロードデータの論理アドレスが計算される。次に、その論理アドレスを物理アドレスに変換するために変換テーブルが検索される。詳細は後で説明するが、本発明の実施形態によるプロセッサは、アドレス変換テーブルとしてハッシュテーブルを使用している(ステップ101〜103)。
【0027】
(2)アドレス変換エントリが見つかったか否かをチェックし、アドレス変換エントリが見つかっていた場合、そのページに対するアクセス権がるか否かをチェックする(ステップ104、107)。
【0028】
(3)ステップ107のチェックで、アクセスが許可されていた場合、メモリから読み出したデータをレジスタに書き込む。これにより、ロード命令の実行は正常に終了する(ステップ109、111)。
【0029】
(4)ステップ104のチェックで、アドレス変換エントリが見つからなかった場合、アドレス変換例外が発生し、また、ステップ107のチェックで、アドレス変換エントリが見つかったがそのアドレスに対するアクセスが禁止されてた場合、メモリ保護例外が発生し、割り込みを発生させる(ステップ113)。
【0030】
これらの例外が発生したとき、ターゲットレジスタの値は変わらない。そして、前述のメモリ保護例外、アドレス変換例外が発生した場合の例外処理ルーチンの動作は次の3種類となる。すなわち、メモリ保護例外の場合、そのプログラムの実行を中止する。アドレス変換例外であるが、address out of rangeではない場合(ハッシュテーブルからアドレス変換エントリがあふれたケース)、ハッシュテーブルをオペレーティングシステムが入れ替えてプログラムの実行を続ける。また、アドレス変換例外であってaddress out of rangeの場合、プログラムのバグとみなしてプログラムの実行を中止する。
【0031】
図3は本発明の実施形態でのnon faultingロード命令の処理動作を説明するフローチャートであり、次に、これについて説明する。この命令の動作は、アドレス変換テーブルが見つかり、かつ、そのページに対するアクセスが許されていれば、普通のロード命令と同一である。すなわち、ステップ101から開始され、ステップ102〜104、107、109を経てステップ111で終了する処理は、図2により説明した場合と同一の処理となる。従って、以下では、図2の場合と異なる処理についてのみ説明する。
【0032】
(1)ステップ104の処理で、アドレス変換テーブルのエントリがが見つかったが、ステップ107の処理でアクセスが禁止されていた場合、メモリ保護例外を発生させず、レジスタに0を書き込んで、このnon faultingロード命令の処理を正常終了する(ステップ110、111)。
【0033】
(2)ステップ104の処理で、アドレス変換テーブルのエントリが見つからなかった場合、non faultingロード許可レジスタの値が1であるか否かを調べ、non faultingロード許可レジスタが1であればアドレス変換外を発生させず、ターゲットレジスタに0を書き込んで、このnon faultingロード命令の処理を正常終了する(ステップ106、110、111)。
【0034】
(3)ステップ106のチェックで、non faultingロード許可レジスタが0であった場合、アドレス変換例外を発生させる。この場合、オペレーティングシステムは、address out of rangeのとき例外を無視し、そうでなければ、ハッシュテーブルを入れ替えてプログラムの実行を続ける(ステップ113)。
【0035】
図4はnon faultingロード許可レジスタNLDRのレイアウトを説明する図である。non faultingロード許可レジスタNLDR625は、図4に示すような構成の64ビットのレジスタである。そして、ビット0〜62は予約ビットであり、この部分にデータが書き込まれても無視され、この部分が読み出された場合、0が読み出される。ビット63は、non faultingロードアドレス例外抑止ビットであり、このビットが1のとき、non faultingロード命令でアドレス変換が失敗しても例外を発生させない。オペレーティングシステムは、必要なアドレス変換が全てハッシュテーブルに入っていることを保証できるとき、このビットをセットする。その条件は、アドレス変換テーブルの構造と関係がある。
【0036】
本発明の実施形態によるプロセッサは、論理アドレスを物理アドレスに変換するハードウェアを備えており、そのために2つのテーブルが使用される。これらは、ページ単位の変換を行うページテーブルPTABと、ブロック単位でアドレスの変換を行うブロックテーブルBTABとであり、以下、これらについて説明する。
【0037】
図5はページテーブルPTABを用いてページ単位のアドレス変換を行うアドレス変換機構の構成を示すブロック図である。図5において、406はページテーブル、407はページテーブルエントリグループ、408はページテーブルエントリである。なお、このアドレス変換機構は、図1に示すテーブル検索エンジン631に含まれるものであり、また、ページテーブル406そのものは、メインメモリまたはキャッシュ内に格納されている。
【0038】
1ページの大きさは4キロバイトである。ページテーブルPTAB406は、システム内の全プロセッサにより共有されており、複数のページテーブルエントリグループPTEG407から構成され、それぞれのPTEG407には、1エントリ16バイトのページテーブルエントリPTE408が8個備えられている。このページテーブルPTAB406の大きさは可変であり、ページテーブルアドレスレジスタPAR401/402(図1に示すPAR632)により指定される。また、PARには、PTAB406の先頭アドレスも保持されている。
【0039】
前述の各PTEには、このエントリが変換する論理ページのアドレスLPN(論理ページ番号)409、エントリの有効(V=1)/無効(V=0)を示すV(バリッド)410、変換結果の物理ページ番号PPN(物理ページ番号)411、このエントリが変換するアドレスに対してアクセスがあったことを示し、アクセスがあったときにハードウェアからセットされるR(リファレンスビット)412、このエントリが変換するアドレスに対して書き込みアクセスがあったことを示し、アクセスがあったときにハードウェアからセットされるC(チェンジビット)413、アクセスの可否を制御するための4ビットからなる情報PP(プロテクション)414の各情報が保持されている。
【0040】
前述において、Rビット412とCビット413とは、オペレーティングシステムがページを入れ替える際に参照される。また、アクセスの可否を制御するための情報PP(プロテクション)の各ビットは、スーパバイザ書込み可を示すSWE、ユーザ書込み可を示すUWE、スーパバイザ読み出し可を示すSRE、ユーザ読み出し可を示すUREのビットである。
【0041】
ページアドレスレジスタPARは、図1でも説明したように制御レジスタの1つであり、ビット0〜45は PTABORG401と呼ばれ、PTAB406の先頭の物理アドレスを示している。また、PTABSIZE402と呼ばれるビット59〜63はPTAB406の大きさを示している。PTABSIZEの値としては、0〜28が許されており、PTABの大きさは256キロバイト×2PTABSIZEになる。
【0042】
次に、PTABを使用して論理アドレスを物理アドレスに変換する手順について説明する。
【0043】
まず、論理アドレスに対応するページテーブルエントリグループPTEG407の物理アドレス405を求める。PTEG407の物理アドレス405は、PTABORG のビット0〜17と、PTABORG のビット18〜45と論理アドレスのビット13〜40とをPTABSIZEに応じて選択したものと、論理アドレスのビット41〜51と、7ビットの0とを連結して得ることができる。
【0044】
次に、PTEGに含まれている8つのPTEを調べる。論理アドレスに対応するPTEが見つかったら、変換成功であり、見つからなければ、変換失敗である。そのPTEが与えられた論理アドレスに対応するものであるか否かは、PTE内のV(バリッド)410=1であるか否か、PTE内のLPN(論理ページ番号)=論理アドレス(0〜40)であるか否かにより判別し、両者が一致したとき、そのPTEが与えられた論理アドレスに対応するものであると判別できる。変換結果の物理アドレスは、PTEの物理ページ番号411と論理アドレスのビット52〜63とにより与えられる。PTEGの中に同じ論理アドレスに対応するPTEが2つ以上含まれて場合、アドレス変換の結果は不定である。
【0045】
図6はブロックテーブルBTABを用いてブロック単位でアドレス変換を行うアドレス変換機構の構成を示すブロック図である。図6において、506はブロックテーブル、507はブロックエントリグループ、508はブロックエントリである。なお、このアドレス変換機構は、図1に示すテーブル検索エンジン631に含まれるものであり、また、ブロックテーブル506そのものは、メインメモリまたはキャッシュ内に格納されている。
【0046】
図6に示すもう1つのテーブルであるブロック単位でアドレスを変換するブロックテーブルBTAB506は、PTABと同様の構成を有している。1ブロックの大きさは16メガバイトである。BTAB506は、複数のブロックエントリグループBTEG507からなり、それぞれのBTEGには1エントリ16バイトのブロックエントリBTE508が8個備えられている。このテーブルの大きさは可変であり、ブロックテーブルアドレスレジスタBAR501/502(図1に示すBAR633)により指定される。また、BARには、BTAB506の先頭アドレスも保持されている。
【0047】
前述のそれぞれのBTEには、このエントリが変換する論理ブロック番号LBN(論理ブロック番号)509、エントリの有効(V=1)/無効(V=0)を示すV(バリッド)510、変換結果の物理ブロック番号PBN(物理ブロックページ番号)511、PTEのR,C,PPと同一の意味を持つR、C、PP512〜514の各情報が保持されている。
【0048】
ブロックテーブルアドレスレジスタBARも、図1で説明したように、制御レジスタの1つであり、ビット0〜45は BTABORG501と呼ばれ、BTAB506の先頭の物理アドレスを示すフィールドである。また、BTAB506の大きさは、BTABSIZE502と呼ばれるビット60〜63に設定される。BTABSIZEの値としては、0〜15が許されており、BTABの大きさは256キロバイト×2BTABSIZEになる。
【0049】
BTABを使用して論理アドレスを物理アドレスに変換する手順はPTABの場合と同様である。まず、論理アドレスに対応するブロックテーブルエントリグループBTEGの物理アドレス505を求める。BTEGの物理アドレス505は、BTABORG のビット0〜42と、BTABORG のビット42〜45と論理アドレスのビット25〜28とをBTABSIZEに応じて選択したものと、論理アドレスのビット29〜39と、7ビットの0とを連結して得ることができる。
【0050】
次に、BTEGに含まれている8つのBTEを調べる。論理アドレスに対応するBTEが見つかったら、変換成功であり、見つからなければ、変換失敗である。そのBTEが与えられた論理アドレスに対応するものであるか否かは、BTE内のV(バリッド)510=1であるか否か、BTE内のLBN(論理ページ番号)=論理アドレス(0〜28)であるか否かにより判別し、両者が一致したとき、そのBTEが与えられた論理アドレスに対応するものであると判別できる。変換結果の物理アドレス515は、BTEの物理ブロック番号511と、論理アドレスのビット46〜63とを連結したものとして与えられる。BTEGの中に同じ論理アドレスに対応するBTEが2つ以上含まれて場合、アドレス変換の結果は不定である。
【0051】
前述した2つのアドレス変換方法の両方で変換が可能な場合、ページテーブルによる変換が優先される。
【0052】
前述で説明したアドレス変換機構は、必要なアドレス変換の全てがテーブルに入っているための条件は次のようになる。まず、変換テーブルの大きさは、1つのスレッドが使えるアドレス空間の大きさが1テラ(240)バイトの場合、
ページテーブルの大きさ :240÷212×16バイト=4ギガバイト
ブロックテーブルの大きさ:240÷224×16バイト=1メガバイト
となる。すなわち、、ページ変換を使用した場合、1スレッド分のアドレス変換の全てをテーブルに入れておくことはできないので、できるだけ多くのアドレス変換にブロック変換を使用して1スレッド分のアドレス変換の全てがテーブルに入れらるようにしなければならない。
【0053】
もう1つの条件は、スレッドの数である。ブロックテーブルグループの指定に論理アドレスのビット25〜39を使用しているので、スレッドの数が8を越えると、スラッシングによってブロックテーブルからアドレス変換があふれてしまう可能性がある。従って、本発明の実施形態は、スレッドの数が8以下でアドレス変換のほとんど、または、全てに対してブロック変換が適用されているときにnon faultingロードのアドレス変換例外を抑止することができる。
【0054】
前述した本発明の実施形態によれば、non faultingロードでアドレス変換テーブルが見つからないときに例外を起こすか、起こさないかをソフトウェアで制御することができるようにし、必要のないときにはアドレス変換例外を抑止することとしているので、アプリケーションプログラムの実行を高速化することができる。
【0055】
【発明の効果】
以上説明したように本発明によれば、non faultingロード処理のアドレス変換例外の頻度を減らし、アプリケーションプログラムを高速に実行することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態によるコンピュータシステムの構成を示すブロック図である。
【図2】本発明の実施形態での通常のロード命令の処理動作を説明するフローチャートである。
【図3】本発明の実施形態でのnon faultingロード命令の処理動作を説明するフローチャートである。
【図4】 non faultingロード許可レジスタNLDRのレイアウトを説明する図である。
【図5】ページテーブルPTABを用いてページ単位のアドレス変換を行うアドレス変換機構の構成を示すブロック図である。
【図6】ブロックテーブルBTABを用いてブロック単位でアドレス変換を行うアドレス変換機構の構成を示すブロック図である。
【符号の説明】
406 ページテーブル
407 ページテーブルエントリグループ
408 ページテーブルエントリ
506 ブロックテーブル
507 ブロックエントリグループ
508 ブロックエントリ
601 命令キャッシュ
602 命令TLB
611 浮動小数点レジスタ
612 浮動小数点演算器
621 汎用レジスタ
622 ALU
623 データキャッシュ
624 データTLB
626 バスインタフェース
631 テーブル検索エンジン
641 プロセッサ
642 プロセッサバス
643 メインメモリ
644 I/O装置
Claims (4)
- 第1のロード命令と、前記第1のロード命令とは命令コードが異なる第2のロード命令とを実行可能に構成されたプロセッサにおいて、論理アドレスを物理アドレスに変換するアドレス変換回路と、制御ビットと、前記第2のロード命令で前記アドレス変換回路がアドレス変換に失敗したとき、前記制御ビットの値によってアドレス変換例外を発生させるか否かを制御する制御機能とを備えたことを特徴とするプロセッサ。
- 最近に行われた前記アドレス変換を保持するアドレス変換バッファを備えたことを特徴とする請求項1記載のプロセッサ。
- 前記第2のロード命令が、 non faulting ロード命令であることを特徴とする請求項1または2記載のプロセッサ。
- 請求項1ないし3のうちいずれか1記載のプロセッサを備えたことを特徴とするコンピュータシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001245531A JP4011871B2 (ja) | 2001-08-13 | 2001-08-13 | プロセッサ及びコンピュータシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001245531A JP4011871B2 (ja) | 2001-08-13 | 2001-08-13 | プロセッサ及びコンピュータシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003058421A JP2003058421A (ja) | 2003-02-28 |
JP4011871B2 true JP4011871B2 (ja) | 2007-11-21 |
Family
ID=19075262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001245531A Expired - Fee Related JP4011871B2 (ja) | 2001-08-13 | 2001-08-13 | プロセッサ及びコンピュータシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4011871B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2479780B (en) * | 2010-04-22 | 2018-04-04 | Advanced Risc Mach Ltd | Preload instruction control |
US11226902B2 (en) | 2019-09-30 | 2022-01-18 | International Business Machines Corporation | Translation load instruction with access protection |
-
2001
- 2001-08-13 JP JP2001245531A patent/JP4011871B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003058421A (ja) | 2003-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2618175B2 (ja) | キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル | |
EP0175091B1 (en) | Fast two-level dynamic address translation method and means | |
JP4520790B2 (ja) | 情報処理装置およびソフトウェアプリフェッチ制御方法 | |
US5282274A (en) | Translation of multiple virtual pages upon a TLB miss | |
KR960001946B1 (ko) | 우선 변환 참조버퍼 | |
US5475827A (en) | Dynamic look-aside table for multiple size pages | |
US5666509A (en) | Data processing system for performing either a precise memory access or an imprecise memory access based upon a logical address value and method thereof | |
US6622211B2 (en) | Virtual set cache that redirects store data to correct virtual set to avoid virtual set store miss penalty | |
US7831799B1 (en) | Speculative address translation for processor using segmentation and optional paging | |
EP0215544B1 (en) | Virtual memory address fetching | |
JP3666689B2 (ja) | 仮想アドレス変換方法 | |
US5555395A (en) | System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table | |
JPH0652511B2 (ja) | 情報処理装置のアドレス変換方式 | |
US7506096B1 (en) | Memory segment emulation model for virtual machine | |
JPS6341100B2 (ja) | ||
KR20020039685A (ko) | 미세 단위 변환 식별 | |
JP3045952B2 (ja) | フルアソシアティブ・アドレス変換器 | |
US6901540B1 (en) | TLB parity error recovery | |
US6044447A (en) | Method and apparatus for communicating translation command information in a multithreaded environment | |
US5341485A (en) | Multiple virtual address translation per computer cycle | |
GB2200481A (en) | Maintaining coherence between a microprocessor's integrated cache and external memory | |
JP4011871B2 (ja) | プロセッサ及びコンピュータシステム | |
US6134699A (en) | Method and apparatus for detecting virtual address parity error for a translation lookaside buffer | |
EP1262876B1 (en) | Multiprocessing system with shared translation lookaside buffer | |
JP3229045B2 (ja) | アドレス変換バッファ機構 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050107 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070612 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070807 |
|
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: 20070821 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070906 |
|
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: 20100914 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100914 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110914 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120914 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120914 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130914 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |