16.02.2013 Aufrufe

24531904_j

24531904_j

24531904_j

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

epc<br />

epc ─ 特権コードへの移行 (Enter Privileged Code)<br />

書式 : epc B8<br />

説明 : この命令は、 特権レベルを上げる。 新しい特権レベルは、 この命令を含むページの TLB<br />

エントリで指定される。 この命令を使用して、割り込みのオーバーヘッドなしに、上位<br />

の特権を持つルーチンの呼び出しを実行で き る。<br />

特権レベルを上げ る前に、 チ ェ ッ ク が実行 さ れる。 PFS.ppl( 以前の特権レベル ) が<br />

チ ェ ッ ク され、 以前の特権レベルが現在の特権レベル よ り 高 く ない こ と が確認される。<br />

こ のチ ェ ッ ク にパス しなか っ た場合は、 こ の命令に よ っ て無効操作フ ォ ル ト が発生す る。<br />

チェックにパスした場合は、 次のように特権レベルが上げられる。<br />

• 命令ア ド レ ス変換が イ ネ ー ブルに さ れてお り 、 epc 命令を含むペー ジが 「実行のみ」<br />

のペー ジ ・ アク セス権を持ち、 そのペー ジに割り当てられた特権レベルが現在の特<br />

権レベルよ り高い ( 数値が小 さ い ) 場合は、 現在の特権レベルは、 epc 命令を含む<br />

ページの変換エン ト リ の特権レベル ・ フ ィ ール ド に合わせて設定される。 この命令<br />

は、 特権レベルを上げ られるが、 下げる こ と はできない。 新しい特権は、 TLB エン<br />

トリから得られる。<br />

命令ア ド レ ス変換がデ ィ スエ ー ブルに さ れてい る場合は、 現在の特権レベルは 0( 最<br />

高の特権レベル ) に設定される。<br />

同じ命令グループ内の epc よ り 後の命令は、 古い特権レベルで も 、 新しい上位の特<br />

権レベルで も 実行で き る。 後続の命令グルー プ内の命令は、 新しい上位の特権レ ベ<br />

ルで実行される。<br />

• epc 命令を含むペー ジ が「 実行のみ」 以外のアク セス 権を 持つ場合や、 そのペー ジ に<br />

割り 当てら れた特権レ ベルが現在の特権レ ベルよ り 低いか等し い ( 数値がよ り 大き い<br />

か等しい ) 場合は、 操作は 何も 実行さ れない ( 現在の特権レ ベルは変更さ れない )。<br />

ITLB は、 実際には、 命令のフ ェ ッ チ時に一度だけ読み込まれる。 その後、 アクセス権の<br />

情報 と変換エン ト リ の特権レベル ・ フ ィ ール ド が、 こ の命令の実行に使用される。<br />

こ の命令に はプ レ デ ィ ケ ー ト を使用で き ない。<br />

操作 : if (AR[PFS].ppl u< PSR.cpl)<br />

illegal_operation_fault();<br />

if (PSR.it)<br />

PSR.cpl = tlb_enter_privileged_code();<br />

else<br />

PSR.cpl = 0;<br />

割り込み : 無効操作フ ォ ル ト<br />

第 3 巻 : 命令リファレンス 3:47

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!