JP2003058421A - プロセッサ及びコンピュータシステム - Google Patents

プロセッサ及びコンピュータシステム

Info

Publication number
JP2003058421A
JP2003058421A JP2001245531A JP2001245531A JP2003058421A JP 2003058421 A JP2003058421 A JP 2003058421A JP 2001245531 A JP2001245531 A JP 2001245531A JP 2001245531 A JP2001245531 A JP 2001245531A JP 2003058421 A JP2003058421 A JP 2003058421A
Authority
JP
Japan
Prior art keywords
address
instruction
load instruction
exception
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.)
Granted
Application number
JP2001245531A
Other languages
English (en)
Other versions
JP4011871B2 (ja
Inventor
Toshihiko Kurihara
俊彦 栗原
Masahiro Tokoro
雅尋 處
Eiki Kamata
栄樹 釜田
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2001245531A priority Critical patent/JP4011871B2/ja
Publication of JP2003058421A publication Critical patent/JP2003058421A/ja
Application granted granted Critical
Publication of JP4011871B2 publication Critical patent/JP4011871B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 non faultingロード処理のアドレス変換例外
の頻度を減らし、アプリケーションプログラムを高速に
実行する。 【解決手段】 non faultingロードがアドレス変換に失
敗したときに、例外を起こすか、起こさないかを制御す
るビットをプロセッサの制御レジスタに設ける。そし
て、non faultingロード命令がアドレス変換例外を起こ
す必要がないとソフトウェアが判断したとき、例外を起
こさないモードに設定することにより、アドレス変換例
外の処理のオーバヘッドを減らすことができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プロセッサ及びコ
ンピュータシステムに係り、特に、普通のロード命令の
他に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 SP
ARC Architecture Manual,Version9,Prentice-Hall,In
c.,1994」に記載された、non faultingロード命令を導
入するという技術がが知られている。このnon faulting
ロード命令の基本的な動作は、普通のロード命令と同一
であるが次の2点が異なる。すなわち、アドレス変換が
可能で、そのメモリ領域に対してnon faultingロード実
行可能属性が設定されていれば、例外を発生させない。
また、address out of rangeなどが原因でアドレス変換
ができない場合、システムソフトウェアとの協力によっ
てターゲットレジスタに0が書き込まれて例外が無視さ
れ、プログラムの実行が継続される。
【0008】前述したようなnon faultingロード命令を
普通のロード命令の代わりに使用する従来技術は、前述
したような例の場合にも例外発生によってプログラム実
行が中止されることがなくなる。このため、前述した従
来技術は、ロード命令とその結果を使用する演算命令と
の距離を大きくし、プログラムの実行性能を向上させる
ことができる。なお、分岐命令の前に移動したロード命
令が例外を発生する場合、そもそもそのロード命令を実
行する必要がない(そのようなアドレスのときは実行さ
れないように分岐命令によって制御されていたはず)の
で、このような方法としても問題はない。
【0009】
【発明が解決しようとする課題】前述した従来技術によ
れば、ロード命令を演算命令から離すために、ロード命
令を分岐命令より前に移動し、プログラムの実行性能の
向上を図ることが可能になる。しかし、前述の従来技術
は、アドレス変換例外が発生する可能性が残る。この理
由は、変換テーブルが大きくなりすぎるため、全てのア
ドレスについて変換エントリを用意することができない
ためである。従って、non faultingロード命令を使用す
る前述した従来技術は、アドレス変換例外発生の確率と
その処理オーバヘッドがあってもプログラム実行が高速
化できるか否かとを考慮する必要がある。
【0010】また、前述した従来技術は、アドレス変換
にハッシュテーブルを使うアーキテクチャの場合、ハッ
シュの計算結果が同じ場所に登録できるアドレス変換の
数に限りがあり、このため、全てのアドレス変換をハッ
シュテーブルに入れることができず、address out of r
angeでないにもかかわらずアドレス変換例外が発生する
ことがある。従って、non faultingロードでアドレス変
換例外が起きたとき、まず、そのアドレスを調べ、addr
ess 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はテーブル検索エンジン、6
41はプロセッサ、642はプロセッサバス、643は
メインメモリ、644はI/O装置である。
【0016】図1に示すコンピュータシステムは、1ま
たは複数のプロセッサ641(図1には1台のみを示し
ている)と、メインメモリ643及びI/O装置644
とがプロセッサバス642により接続されて構成され
る。プロセッサ641は、分岐命令、整数演算命令、浮
動小数点演算命令、ロード・ストア命令、システム制御
命令等を実行することができ、また、通常のロード命令
が例外を発生するようなケースでも例外を発生しないノ
ンフォルトロード命令も実行可能である。
【0017】プロセッサ641は、命令キャッシュ60
1とデータキャッシュ623とを備えており、キャッシ
ュミスの場合、命令キャッシュまたはデータキャッシュ
に必要なラインをメインメモリから転送してから処理を
行う。また、プロセッサ641は、命令TLB602、
データTLB624、浮動小数点レジスタ611、浮動
小数点演算器612、汎用レジスタ621、ALU62
2、テーブル検索エンジン631を備え、これらが協力
して命令を実行する。
【0018】前述において、汎用レジスタ621は、3
2本の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は、命令TL
B602またはデータTLB624からの要求を受け
て、図5と図6とにより後述するように、アドレス変換
テーブルを検索してアドレス変換の処理を行う。このた
め、テーブル検索エンジン631は、内部にテーブル検
索に必要なページテーブルアドレスレジスタPAR63
2、ブロックテーブルアドレスレジスタBAR633を
備えている。検索に成功した場合、その変換エントリの
Rビットがセットされ、変換結果が命令TLB602ま
たはデータTLB624に送られて登録される。また、
データTLB624からのCビットセット要求の場合、
発見した変換エントリのCビットをセットする。
【0022】また、テーブル検索エンジン631が検索
に失敗した場合、テーブル検索エンジン631は、その
ことを検索要求元のTLBに通知する。命令TLB60
2は、検索失敗が通知されると命令アドレス変換例外を
発生させる。また、データTLB624は、命令の種類
とNLDR625の値によってデータアドレス変換例外
を起こすかどうかを決定する。すなわち、普通のロード
命令の場合、必ずアドレス変換例外を発生させ、non fa
ultingロード命令の場合、NLDR=0であれば、アド
レス変換例外を生起させ、NLDR=1であれば、ター
ゲットレジスタに0を書き込み命令を完了させる。
【0023】前述したような構成と機能とを有するプロ
セッサ641は、ロード・ストアアーキテクチャを採用
しており、メモリ上のデータについて直接演算を行うこ
とはできない。すなわち、プロセッサ641は、メモリ
上のデータについて演算を行う場合、メモリのデータを
ロード命令または、non faultingロード命令により一旦
レジスタに入れてから演算を行い、演算結果をストア命
令によってレジスタからメモリに書き戻す。
【0024】また、プロセッサ641は、ロード・スト
ア命令として、1,2,4,8バイトのデータを扱うこ
とができ、アドレスがデータサイズの整数倍でない場
合、アライメント違反の例外が発生する。アドレス空間
の大きさは、仮想アドレス空間も物理アドレス空間も2
64バイトである。
【0025】図2は本発明の実施形態での通常のロード
命令の処理動作を説明するフローチャートであり、次
に、これについて説明する。
【0026】(1)処理が開始されると、まず、レジス
タから読み出したデータを使用して、ロードデータの論
理アドレスが計算される。次に、その論理アドレスを物
理アドレスに変換するために変換テーブルが検索され
る。詳細は後で説明するが、本発明の実施形態によるプ
ロセッサは、アドレス変換テーブルとしてハッシュテー
ブルを使用している(ステップ101〜103)。
【0027】(2)アドレス変換エントリが見つかった
か否かをチェックし、アドレス変換エントリが見つかっ
ていた場合、そのページに対するアクセス権がるか否か
をチェックする(ステップ104、107)。
【0028】(3)ステップ104のチェックで、アク
セスが許可されていた場合、メモリから読み出したデー
タをレジスタに書き込む。これにより、ロード命令の実
行は正常に終了する(ステップ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の処理で、アドレス
変換テーブルのエントリがが見つかったが、ステップ1
07の処理でアクセスが禁止されていた場合、メモリ保
護例外を発生させず、レジスタに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ロード許可レジスタN
LDRのレイアウトを説明する図である。non faulting
ロード許可レジスタNLDR625は、図4に示すよう
な構成の64ビットのレジスタである。そして、ビット
0〜62は予約ビットであり、この部分にデータが書き
込まれても無視され、この部分が読み出された場合、0
が読み出される。ビット63は、non faultingロードア
ドレス例外抑止ビットであり、このビットが1のとき、
non faultingロード命令でアドレス変換が失敗しても例
外を発生させない。オペレーティングシステムは、必要
なアドレス変換が全てハッシュテーブルに入っているこ
とを保証できるとき、このビットをセットする。その条
件は、アドレス変換テーブルの構造と関係がある。
【0036】本発明の実施形態によるプロセッサは、論
理アドレスを物理アドレスに変換するハードウェアを備
えており、そのために2つのテーブルが使用される。こ
れらは、ページ単位の変換を行うページテーブルPTA
Bと、ブロック単位でアドレスの変換を行うブロックテ
ーブルBTABとであり、以下、これらについて説明す
る。
【0037】図5はページテーブルPTABを用いてペ
ージ単位のアドレス変換を行うアドレス変換機構の構成
を示すブロック図である。図5において、406はペー
ジテーブル、407はページテーブルエントリグルー
プ、408はページテーブルエントリである。なお、こ
のアドレス変換機構は、図1に示すテーブル検索エンジ
ン631に含まれるものであり、また、ページテーブル
406そのものは、メインメモリまたはキャッシュ内に
格納されている。
【0038】1ページの大きさは4キロバイトである。
ページテーブルPTAB406は、システム内の全プロ
セッサにより共有されており、複数のページテーブルエ
ントリグループPTEG407から構成され、それぞれ
のPTEG407には、1エントリ16バイトのページ
テーブルエントリPTE408が8個備えられている。
このページテーブルPTAB406の大きさは可変であ
り、ページテーブルアドレスレジスタPAR401/4
02(図1に示すPAR632)により指定される。ま
た、PARには、PTAB406の先頭アドレスも保持
されている。
【0039】前述の各PTEには、このエントリが変換
する論理ページのアドレスLPN(論理ページ番号)4
09、エントリの有効(V=1)/無効(V=0)を示
すV(バリッド)410、変換結果の物理ページ番号P
PN(物理ページ番号)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キロバイト×2
PTABSIZEになる。
【0042】次に、PTABを使用して論理アドレスを
物理アドレスに変換する手順について説明する。
【0043】まず、論理アドレスに対応するページテー
ブルエントリグループPTEG407の物理アドレス4
05を求める。PTEG407の物理アドレス405
は、PTABORG のビット0〜17と、PTABORG のビット1
8〜45と論理アドレスのビット13〜40とをPTABSI
ZEに応じて選択したものと、論理アドレスのビット41
〜51と、7ビットの0とを連結して得ることができ
る。
【0044】次に、PTEGに含まれている8つのPT
Eを調べる。論理アドレスに対応する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に示すテーブル検索エンジン63
1に含まれるものであり、また、ブロックテーブル50
6そのものは、メインメモリまたはキャッシュ内に格納
されている。
【0046】図6に示すもう1つのテーブルであるブロ
ック単位でアドレスを変換するブロックテーブルBTA
B506は、PTABと同様の構成を有している。1ブ
ロックの大きさは16メガバイトである。BTAB50
6は、複数のブロックエントリグループBTEG507
からなり、それぞれのBTEGには1エントリ16バイ
トのブロックエントリBTE508が8個備えられてい
る。このテーブルの大きさは可変であり、ブロックテー
ブルアドレスレジスタBAR501/502(図1に示
すBAR633)により指定される。また、BARに
は、BTAB506の先頭アドレスも保持されている。
【0047】前述のそれぞれのBTEには、このエント
リが変換する論理ブロック番号LBN(論理ブロック番
号)509、エントリの有効(V=1)/無効(V=
0)を示すV(バリッド)510、変換結果の物理ブロ
ック番号PBN(物理ブロックページ番号)511、P
TEのR,C,PPと同一の意味を持つR、C、PP5
12〜514の各情報が保持されている。
【0048】ブロックテーブルアドレスレジスタBAR
も、図1で説明したように、制御レジスタの1つであ
り、ビット0〜45は BTABORG501と呼ばれ、BTA
B506の先頭の物理アドレスを示すフィールドであ
る。また、BTAB506の大きさは、BTABSIZE502
と呼ばれるビット60〜63に設定される。BTABSIZEの
値としては、0〜15が許されており、BTABの大き
さは256キロバイト×2 BTABSIZEになる。
【0049】BTABを使用して論理アドレスを物理ア
ドレスに変換する手順はPTABの場合と同様である。
まず、論理アドレスに対応するブロックテーブルエント
リグループBTEGの物理アドレス505を求める。B
TEGの物理アドレス505は、BTABORG のビット0〜
42と、BTABORG のビット42〜45と論理アドレスの
ビット25〜28とをBTABSIZEに応じて選択したもの
と、論理アドレスのビット29〜39と、7ビットの0
とを連結して得ることができる。
【0050】次に、BTEGに含まれている8つのBT
Eを調べる。論理アドレスに対応する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)バイトの場合、ページテーブルの大きさ :2
40÷212×16バイト=4ギガバイトブロックテーブル
の大きさ:240÷224×16バイト=1メガバイトとな
る。すなわち、、ページ変換を使用した場合、1スレッ
ド分のアドレス変換の全てをテーブルに入れておくこと
はできないので、できるだけ多くのアドレス変換にブロ
ック変換を使用して1スレッド分のアドレス変換の全て
がテーブルに入れらるようにしなければならない。
【0053】もう1つの条件は、スレッドの数である。
ブロックテーブルグループの指定に論理アドレスのビッ
ト25〜39を使用しているので、スレッドの数が8を
越えると、スラッシングによってブロックテーブルから
アドレス変換があふれてしまう可能性がある。従って、
本発明の実施形態は、スレッドの数が8以下でアドレス
変換のほとんど、または、全てに対してブロック変換が
適用されているときにnon faultingロードのアドレス変
換例外を抑止することができる。
【0054】前述した本発明の実施形態によれば、non
faultingロードでアドレス変換テーブルが見つからない
ときに例外を起こすか、起こさないかをソフトウェアで
制御することができるようにし、必要のないときにはア
ドレス変換例外を抑止することとしているので、アプリ
ケーションプログラムの実行を高速化することができ
る。
【0055】
【発明の効果】以上説明したように本発明によれば、no
n 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装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 釜田 栄樹 神奈川県秦野市堀山下1番地 株式会社日 立製作所エンタープライズサーバ事業部内 Fターム(参考) 5B005 JJ11 MM02 MM51 NN22 RR03 RR04 SS13 SS14 5B033 BE00 DA00 DA04 DB00

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 第1のロード命令と、前記第1のロード
    命令とは命令コードが異なる第2のロード命令とを実行
    可能に構成されたプロセッサにおいて、論理アドレスを
    物理アドレスに変換するアドレス変換回路と、前記第2
    のロード命令で前記アドレス変換回路がアドレス変換に
    失敗したとき、アドレス変換例外を発生させないように
    する制御機能とを備えたことを特徴とするプロセッサ。
  2. 【請求項2】 第1のロード命令と、前記第1のロード
    命令とは命令コードが異なる第2のロード命令とを実行
    可能に構成されたプロセッサにおいて、論理アドレスを
    物理アドレスに変換するアドレス変換回路と、制御ビッ
    トと、前記第2のロード命令で前記アドレス変換回路が
    アドレス変換に失敗したとき、前記制御ビットの値によ
    ってアドレス変換例外を発生させるか否かを制御する制
    御機能とを備えたことを特徴とするプロセッサ。
  3. 【請求項3】 最近に行われた前記アドレス変換を保持
    するアドレス変換バッファを備えたことを特徴とする請
    求項1または2記載のプロセッサ。
  4. 【請求項4】 前記第2のロード命令が、non faulting
    ロード命令であることを特徴とする請求項1、2または
    3記載のプロセッサ。
  5. 【請求項5】 請求項1ないし4のうちいずれか1記載
    のプロセッサを備えたことを特徴とするコンピュータシ
    ステム。
JP2001245531A 2001-08-13 2001-08-13 プロセッサ及びコンピュータシステム Expired - Fee Related JP4011871B2 (ja)

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 true JP2003058421A (ja) 2003-02-28
JP4011871B2 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011227880A (ja) * 2010-04-22 2011-11-10 Arm Ltd プレロード命令制御
JP7485489B2 (ja) 2019-09-30 2024-05-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 変換ロード命令

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011227880A (ja) * 2010-04-22 2011-11-10 Arm Ltd プレロード命令制御
US9632776B2 (en) 2010-04-22 2017-04-25 Arm Limited Preload instruction control
JP7485489B2 (ja) 2019-09-30 2024-05-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 変換ロード命令

Also Published As

Publication number Publication date
JP4011871B2 (ja) 2007-11-21

Similar Documents

Publication Publication Date Title
US6430657B1 (en) Computer system that provides atomicity by using a tlb to indicate whether an exportable instruction should be executed using cache coherency or by exporting the exportable instruction, and emulates instructions specifying a bus lock
EP0851357B1 (en) Method and apparatus for preloading different default address translation attributes
US6430668B2 (en) Speculative address translation for processor using segmentation and optical paging
US4774653A (en) Hybrid hardware/software method and apparatus for virtual memory address translation using primary and secondary translation buffers
JP4520790B2 (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
EP0175091A2 (en) Fast two-level dynamic address translation method and means
JP3666689B2 (ja) 仮想アドレス変換方法
US11474956B2 (en) Memory protection unit using memory protection table stored in memory system
JPH04232551A (ja) 多重仮想アドレス変換方法及び装置
JPS61141055A (ja) 情報処理装置のアドレス変換方式
JPS6248258B2 (ja)
EP3830719B1 (en) Binary search procedure for control table stored in memory system
JP3045952B2 (ja) フルアソシアティブ・アドレス変換器
US7231506B2 (en) Microprocessor
US5341485A (en) Multiple virtual address translation per computer cycle
JPH02292648A (ja) 多重仮想記憶システムおよびアドレス制御装置
JP4011871B2 (ja) プロセッサ及びコンピュータシステム
JPH05165663A (ja) データ処理装置
EP1262876B1 (en) Multiprocessing system with shared translation lookaside buffer
JPH06187244A (ja) アドレス変換バッファ機構
JPH041373B2 (ja)
JPH02101552A (ja) アドレス変換バッファ処理方式
JPH04205535A (ja) コピーオンライト方式
JPS63245731A (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