2011-12-25 6 views
1

私は、TLBキャッシュのウェイ数を知る作業をしています。どのアルゴリズムを使うべきですか?TLBの結合性(方法の数)を学ぶには?

+0

「計算する」とはどういう意味ですか?チップ上のシリコンに変化するものではありません。あなたは何をしようとしているのですか? – Mat

+0

これを「宿題」とフラグを付けますか? – paulsm4

+0

私は「学ぶ」ことを意味します。私は配列をバイパスしようとするが、私は結果を得ていない。 –

答えて

0

質問はあなたの助けが必要であるかどうか不明なので、これはあなたが言及したトピックに関連する情報の要約です。

メモリにアクセスする2つの "方法"があります。直接マッピングでは、ページテーブルはメモリに保持され、仮想ページ番号でインデックスが付けられます。仮想ページ番号から実ページ番号に変換するには、OSはページテーブルのベースアドレスに移動し、仮想ページ番号を追加します。この場所の値は、ページの実際のアドレスを示します。

他の方法は連想マッピングです。連想マッピングはページテーブルをコンテンツアドレス指定のメモリに保持するので、仮想アドレスを参照すると、すべてのプロセスのページが並行して検索され、O(1)検索時間の複雑さが生じます。もう1つの利点は、実際に割り当てられたページだけを格納することです。

連想マッピングでは、コンテンツアドレス指定メモリを実現するために特別なハードウェアが必要になるという問題があります。

だから、トレードオフは、直接マッピングを使用して大多数で、(TLB =変換索引バッファ、あなたの質問に参照する)コンテンツ・アドレス・メモリの少量が使用されていることです。

次に、TLBにアドレスを配置する時期と、TLBから退去させる古いアドレスを考慮する必要があります。これには多くの選択肢があります。時間的局所性を利用するには、LRU(Least Recently Used)が最も一般的です。他の選択肢は、Least Frequently Used、Round Robin(おそらくあまり良くない)、WS_Clockなどです。

関連する問題