13

ワード size の定義について混乱しています。プロセッサのワード サイズはデータ バス幅であると読みました。8 ビット プロセッサのように、8 ビット幅のデータ バスがあります。私は最近、仮想アドレス空間の最大サイズがワードサイズによって決定されることを読みました。つまり、ワードサイズが n ビットの場合、最大仮想アドレス空間は 2^n -1 です。しかし、最大の仮想アドレス空間はアドレスバス幅によって決まる、つまり n ビット幅のアドレスバスは最大 2^n バイトをアドレス指定できると常に考えていました。それで、何が本当ですか?

また、n ビット データ バスは n ビット アドレスしか伝送できないため、これはポインタに関連しています。したがって、ポインタを介して最大 2^n バイトにアクセスできます。

4

2 に答える 2

14

最初に言っておきますが、あなたの混乱の一部はおそらく、数十年前は物事がより単純であり、用語の理解はこれらのより単純な機械に基づいているという事実から来ています.

ワード サイズの定義について混乱しています。プロセッサのワード サイズはデータ バス幅であると読みました。8 ビット プロセッサのように、8 ビット幅のデータ バスがあります。

絶対にありません。とのデータバスは、これとはまったく関係ありません。プロセッサのワード サイズ (これは実際には正確な用語ではありませんでした) は、一般にマシン内のレジスタのサイズである算術演算の最大の自然サイズとして大まかに定義するのが最適です。これはデータ パスの幅であることがよくあります (データ バスとは明らかに異なります)。データ パスは、単純に ALU の幅です。多くの場合、ワード サイズはポインタ サイズと同じです。

私は最近、仮想アドレス空間の最大サイズがワードサイズによって決定されることを読みました。つまり、ワードサイズが n ビットの場合、最大仮想アドレス空間は 2^n -1 です。しかし、私は常に、最大仮想アドレス空間はアドレスバス幅によって決定されると考えていました。つまり、n ビット幅のアドレスバスは最大 2^n バイトをアドレス指定できます。それで、何が本当ですか?

いいえ。仮想アドレス空間のサイズは、ページ テーブル (および TLB) の仮想ページ番号のビット数によって決まります。現在の amd64 ベースのマシンでは、仮想アドレスの 48 ビットのみが使用可能です。上位 16 はビット 47 の符号拡張です。現在の amd64 マシンでは、物理アドレス サイズは 52 ビットです。これらの物理アドレス ビットは、バス上で送信されるものです。バスという用語でさえ、実際には正しくありません。ほとんどすべてのリンクはポイント ツー ポイント (DDRx DRAM は例外) であり、アドレス ワイヤとデータ ワイヤの代わりにパケット化された形式 (ヘッダー + ペイロード) を使用します。

また、n ビット データ バスは n ビット アドレスしか伝送できないため、これはポインタに関連しています。したがって、ポインタを介して最大 2^n バイトにアクセスできます。

個別のアドレス バスを備えた多くの (ほぼすべての) マシンは、アドレス ビット数よりも狭いアドレス バスを使用します。これらのビットは単純に分割され、複数のクロック サイクルを使用してバスを介して送信されます。DDRx DRAM は、この別の例です。

于 2012-07-13T17:20:10.597 に答える
3

仮想アドレス空間の最大サイズは、ワード サイズによって決まります。

これは以前は当てはまりましたが、この制限を回避するために特定の拡張 (つまり、物理アドレス拡張 (PAE)) が行われ、36 ビット メモリ アドレスなどが可能になりました。

それとは別に、ウィキペディアは単語を次のように定義しています。

特定のプロセッサ設計で使用されるデータの自然単位

ほとんどの場合、これは 32 ビット システムでは 32 ビット、64 ビット システムでは 64 ビットです。64 ビット システムでは 32 ビット ワードへの参照が頻繁に見られます (一部には amd64 がリビジョンではなく intel x86 の拡張であるため)。また、現代のコンピューティングの初期からの名残りとして、32 ビットの量は DWORD またはダブル ワードと呼ばれ、64 ビットの量は QWORD またはクワッド ワードと呼ばれることがよくあります。

これは人々が常に争っていることです。私は個人的にワードサイズ==バス幅の定義を使用しています。

于 2012-07-13T14:37:06.493 に答える