2016-11-19 9 views
0

私のプロセッサには、物理​​的に39ビット、仮想的に48ビットのアドレスサイズがあります。これは私にいくつかの混乱をもたらしました。Intel i5のアドレスサイズ

マインは64ビットマシンです。私が理解しているところから、これは私のマシンの単語サイズです。つまり、8バイトのチャンクでメモリからデータをフェッチします。また、64ビットマシンとは、CPUが2^64バイトのアドレス指定可能な場所にアドレスすることができることを意味します。したがって、メーカーはこれらのラインのいくつかをカットダウンします。 CPUのみの論理アドレスを生成した場合、39ビット物理アドレスのサイズを有する必要性は何である、

  1. は、ここで質問です。

  2. CPUが2^64バイトにアクセスできるとすれば、物理メモリまたは仮想メモリを意味しますか?

  3. 私は、64ビットマシンのレジスタのサイズが64ビットであり、32ビットマシンのレジスタが32ビットであると読んでいます。これは本当ですか?

私はひどく混乱しており、助けが必要だと思います。これに関するその他の情報は高く評価されます。ありがとう!

+0

いいえ、すべてが過度に簡略化されています。まず、CPUは一度にメモリ64 **バイト**からデータを取り出します(キャッシュライン全体)。コアは、一度にキャッシュ16または32バイト(128バイトまたは256ビットのSSEまたはAVXベクトル)からデータを読み書きできます。 "word size"は理論的にはいいですが、実際のCPUはさまざまな幅のものがあります。 –

答えて

2

私は、このボードに掲示されている学問的な質問の数を考えれば、なぜ人々が困惑しているのかを知ることができます。

プロセッサのワードサイズ、物理アドレスサイズ、論理アドレスサイズ、バスサイズはすべてある程度独立しています。

CPUが論理アドレスのみを生成する場合は、39ビットの物理アドレスサイズが必要です。

CPUは論理アドレスを物理アドレスに変換します。

CPUが2^64バイトにアクセスできるとすると、物理メモリまたは仮想メモリを意味しますか?

どちらでもかまいません。

私は、64ビットマシンのレジスタのサイズが64ビットであり、32ビットマシンのレジスタが32ビットであると読んでいます。これは本当ですか?

一般的に、これは汎用レジスタについても同様ですが、特殊な用途のレジスタは、異なるサイズ(例えば、浮動小数点、制御レジスタ)であってもよい

1

プロセッサが使用可能なすべてのビットを使用しない場合に多くの機会がありましたアドレスの生成

古くは、古いMC68000には32ビットのレジスタがありましたが、24ビットのアドレスバスしかありませんでした。

i5については、64ビットアドレスが17,179,869,184ギガバイトの思いがけないメモリ空間を制御すると考えます。 GoogleやNSA、惑星地球のストレージに比べても驚異的な数字です。

i5の設計者は、この狂った数字をより管理しやすい512ギガバイトの物理アドレス空間と262,144ギガバイトの仮想アドレス空間に絞り込んでいます。

関連する問題