コア2デュオメモリ - キャッシュ「転送ユニットサイズ」


5

私は一種の "キャッシュエミュレータ"を開発しています、そして私はコア2デュオプロセッサのためのメインメモリとL2キャッシュ間の転送ユニットのサイズは何かを知る必要があります。 誰もがそれを知っていますか?ありがとう。

回答:


1

マイクロアーキテクチャ

"Core 2 Duo"プロセッサはCoreマイクロアーキテクチャ設計で作られています。

マイクロアーキテクチャの詳細

による インテルの資料(第1巻、2-15ページ、PDFの49ページ) 、L2キャッシュは256ビットの内部データ経路を有するので、これはL2キャッシュからL1および命令フェッチ/デコードへのものである。

数ページ後(Vol。1、2-32)、Intel Core 2 Duo E6850はプロセッサコアが3GHz、FSBが1333MHzのとき10.6GB / sの内部データパスを持ちます。

ibus-transfer-amt/bus-clock = (256 bits / (8 bits / byte))
     = 32 bytes/clock

bytes-per-sec = (10.6 GB) * (2^30 bytes/GB)
     = 11,381,663,334 bytes/sec

ibus-clk-fq = (bytes-per-sec) / (ibus-transfer-amt/bus-clock)
     ≈ 355,676,979.19 Hz
     ≈ 355.7 MHz

fsb-divisor = (1333 MHz) / (355.7 MHz)
     ≈ 3.75

Intelのドキュメントには、1333 MHzおよび10.6 GB / sのこのプロセッサのFSBも記載されているので、同様に計算することができます。


よく研究された答えをありがとう、しかし私の質問はあなたが解釈したものとは少し異なっていました。簡単に言うと、L2行は64バイト幅です。現在、(プリフェッチまたはミス/フォルトのために)メモリ階層の2つのレベル間で転送があるとき、転送されるデータ量は下位レベルのブロックのサイズの倍数であることがよく知られている。それで、ミスに応じていくつのキャッシュラインが転送されるのでしょうか? 1つ(あなたが持っているデータによると、メモリから2つの連続した転送)?もう少し?とにかく、とにかく私はあなたに賞金を授けることをしています:)
akappa

私が得た資料の一部は、「L2から第1レベルのデータキャッシュまでの帯域幅を改善するための256ビット内部データパス」です。これは、キャッシュラインサイズではなくバス幅についての話ですが、これは異なる可能性があります。
Lara Dougan

また256/8 = 32なので、キャッシュラインの幅が64バイトの場合、倍数は0.5になります。
Lara Dougan

もちろん、それらは異なるかもしれません、実際それらは異なります - L1とL2ラインは、実際には、512ビット幅です。しかし、キャッシュ階層とバス幅の間の転送単位は2つの異なる概念です(幅は2つのレベルの間で一度に転送できるデータ量を示しますが、転送単位は2つのレベル間で交換されるデータ量です)。イベント、そしてそれは通常バスの広さの倍数です、だから残念ながら私の質問はまだ立っています:)
akappa

0

あなたのCPUが64ビット互換であれば、各チャンネルは64ビット幅です。デュアルチャンネルDDR2メモリはCPUへの128ビット幅の経路を持つべきです。しかし、CPUとそのL2キャッシュ間のバスは64ビット幅でなければなりません。


「CPUとそのL2キャッシュ間のバス」ごめんなさい?
akappa

0

さて、私は、x86専門用語では、L2「キャッシュライン」が両方ともL2キャッシュのストレージ割り当ての単位であることを発見しました。 そして RAMとL2の間の転送単位。

Core 2 duoでは、キャッシュラインは64バイト幅なので、私の質問に答えます:)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.