web-dev-qa-db-ja.com

有効なアクセス時間を計算する

これは Operating System Concepts、9th edition Silberschatz et alによる段落です:

対象のページ番号がTLBで見つかった回数の割合は、ヒット率と呼ばれます。たとえば、80%のヒット率は、80%の時間TLBで目的のページ番号を見つけることを意味します。メモリにアクセスするのに100ナノ秒かかる場合、ページ番号がTLBにある場合、マップメモリ​​アクセスには100ナノ秒かかります。 TLBでページ番号が見つからない場合は、最初にページテーブルとフレーム番号のメモリ(100ナノ秒)にアクセスし、次にメモリ内の目的のバイト(100ナノ秒)にアクセスして、合計200ナノ秒にする必要があります。 (ページテーブルのルックアップは1回のメモリアクセスのみを前提としていますが、これから見るようにさらに多くのメモリアクセスが必要になる場合があります。)有効なメモリアクセス時間を見つけるため、ケースをその確率で重み付けします:有効なアクセス時間= 0.80 ×100 + 0.20×200 = 120ナノ秒

しかし、同じ本の第8版 enter image description here

私は混乱しています

有効なアクセス時間

誰かが私のためにそれを説明できますか?

15
Aysha Almaqtari

TLBでページが見つかった場合(TLBヒット)、合計時間はTLBでの検索時間にメモリへのアクセス時間を加えたものになるため、

TLB_hit_time := TLB_search_time + memory_access_time

TLBでページが見つからない場合(TLBミス)、合計時間はTLBを検索する時間(何も検索しませんが、検索します)に加えて、ページテーブルを取得するためにメモリにアクセスする時間になります。フレーム、およびデータを取得するためにメモリにアクセスする時間

TLB_miss_time := TLB_search_time + memory_access_time + memory_access_time

しかし、これは個々のケースで、TLBパフォーマンスの平均測定値を知りたい場合、実効アクセス時間、つまり前の測定値の加重平均を使用します

EAT := TLB_miss_time * (1- hit_ratio) + TLB_hit_time * hit_ratio

または

EAT := (TLB_search_time + 2*memory_access_time) * (1- hit_ratio) +
       (TLB_search_time + memory_access_time) * hit_ratio
22
Santiago

ここでの有効時間は、平均ヒットまたはミスの相対確率を使用した時間です。ヒットが80%の確率で発生し、ミスが20%の確率で発生した場合、多数のヒット/ミスの有効時間(平均時間)は0.8 *(ヒット時間)+ 0.2 *(ミス時間) )。

7
Paul R

EATの一般式

ヒット率= a

メインメモリアクセス時間= m

連想検索(TLBアクセス)= e

EAT =(m + e)a +(2m + e)(1-a)

    = 2m - ma + e
4
emon

TLBでは、頻繁にアクセスされるページ番号とフレーム番号のコピーが保持されます。これは、メモリに保存されているページテーブルからのものです。

最初にTLBを調べます。見つかった場合、メモリの場所に移動するため、合計アクセス時間は次のようになります。

20 + 100 = 120 ns

TLBが欠落している場合、まずTLBを検索し、次にメモリに保存されているページテーブルを検索する必要があります。したがって、1つのメモリアクセスと1つの特定のページがアクセスしますが、もう1つのメモリアクセスのみです。したがって、合計時間は次と等しくなります。

20 + 100 + 100 = 220 ns

また、有効なメモリアクセス時間は次と等しくなります。

0.80 * 120 + 0.20* 220 = 140 ns
3
Kuntal