ハザードとリネーミングとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > ハザードとリネーミングの意味・解説 

ハザードとリネーミング

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/06/02 00:56 UTC 版)

レジスタ・リネーミング」の記事における「ハザードとリネーミング」の解説

複数命令オペランドとしてある特定の所を入力出力関わらず参照しているとき、それらの命令を本来のプログラムとは異な順番実行しようとすると、ハザード呼ばれる三種類の問題発生するリード・アフター・ライト (RAW) 書き込み後の読み込み レジスタメモリから読み込む場合、その値はプログラム順番上最も後にその場所に書き込まれた値でなければならない。これは真の依存と言われ命令プログラム順番通り実行することを要求するのである。 ライト・アフター・ライト (WAW) 書き込み後の書き込み 同じレジスタまたはメモリアドレスへの書き込みが二回あった場合、二回目書き込み内容最終的に格納されていなければならない。これは一つ目書き込み必要に応じて実質的に無いものとすれば解決できる。 ライト・アフター・リード (WAR) 読み込み後の書き込み レジスタメモリからの読み込みでは最後にその場所に書かれ内容得られなければならず、プログラム上その読み込みより後の書き込み内容読み込まれたりしてはならないこのような偽の依存性はリネーミングで対処できる全ての読み込みが終わるまで書き込み遅らせる代わりにその場に関してふたつのコピー用意し一方に古い値を格納し、もう一方新しい値を格納する。(プログラム上の順番で)新しい値を書き込む前の読み込みは古い値を格納した方を使い書き込み後の読み込み新しい値を格納した方を使用する。偽の依存性なくなりアウト・オブ・オーダー実行がさらに効果的に行われるようになった。古い値を必要とする読み込み全て実行し終えたら、そのコピー捨てればよい。これがレジスタ・リネーミング基本的な概念である。 読み書き可能なものは何でもリネーミング可能である。一般に汎用レジスタ浮動小数点レジスタ議論されるが、フラグステータスレジスタ、さらに個別のステータスビットまでリネーミングが可能である。 メモリもリネーミングが可能であるが、レジスタ・リネーミングのように一般的に行われているわけではないトランスメタCrusoeプロセッサはストアバッファを持っていて、これが一種のメモリ・リネーミングになっているプログラムレジスタ再利用やめればレジスタ・リネーミングの必要はなくなる。いくつかの命令セット(たとえばIA-64)では、非常に多くレジスタ使えるようになっているが、それは主にレジスタ・リネーミングをしないためである。この手法には下記問題がある。 コンパイラにとってはレジスタ再利用しないことはコード量の増大を招く。ループ処理では、ループするたびに違うレジスタ使用しなければならなくなりコード複雑になってしまう(ただし、IA-64ではレジスタローテーションという技法でこれを回避している) レジスタ数が増えるとそれを識別するためのビット数が増え命令ワード大きくなってしまう。 多くの命セット歴史的に少数レジスタ使っており、いまさら変更できない。 コードサイズが増えるというのは重要で、そのために命令キャッシュでキャッシュミスが起きやすくなり、結果としてパイプラインストールすることが多くなってしまう。(同じ命令キャッシュサイズの場合

※この「ハザードとリネーミング」の解説は、「レジスタ・リネーミング」の解説の一部です。
「ハザードとリネーミング」を含む「レジスタ・リネーミング」の記事については、「レジスタ・リネーミング」の概要を参照ください。

ウィキペディア小見出し辞書の「ハザードとリネーミング」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ハザードとリネーミング」の関連用語

ハザードとリネーミングのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ハザードとリネーミングのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのレジスタ・リネーミング (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS