1

私と友人は、リアル モードでの物理メモリのアドレス指定に関する質問についてブレインストーミングを行っていましたが、頭を悩ませることができませんでした。ここに行きます。

リアル モードでは、16 がセグメント セレクタ レジスタに乗算され、オフセット レジスタに加算されて、20 ビットの物理アドレスが取得されます。これにより、セグメントが重複する可能性が生じます。

EG "セグメント セレクタ -> 0040 & オフセット -> 0010" = "セグメント セレクタ -> 0030 & オフセット -> 0110"

オフセットに追加される前に、セグメント セレクターが 4 ビット シフトされることを理解しています。したがって、このセグメンテーションを回避するために、セグメントセレクターをオフセットに追加する前に、セグメントセレクターを 6 だけシフト (64 倍) しなかったのはなぜですか。私たちの見解では、これにより、メモリが重複する可能性が排除されます。

その間に直面したハードウェアの制限に関係しているのか、それとも単に設計上の決定なのか.

4

2 に答える 2

1

設計上の制約によるものです。それらには20ビットのアドレスバスがあり、最も簡単なことは、セグメントレジスタに段落を選択させ、オフセットを追加することでした(そして、20ビットのアドレスバスを超える部分については、メモリの一番下)。

于 2011-04-14T12:52:01.470 に答える
1

4 シフトすると、1 メガバイトのアドレス空間が得られます。わお!

この設計は、8 ビット システムが 64 kB で構成されていたときに行われました。そして、これらすべてのメモリ ボードを収めるのに十分な大きさのボックスを備えています。

16 kB は次のようになります: http://www.s100computers.com/Hardware%20Folder/CCS/16K%20RAM/16K%20RAM.htm

4 MB をインストールする場合は、最初に別の部屋を借りてメモリ ボードを保管する必要があります。

于 2011-04-14T18:54:07.920 に答える