[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 2413] from OSASK BOARD



このメールは、OSASK伝言板に書き込まれた内容です。
この書き込みに返事を書く場合は、下のURLから書き込みを行なって下さい。


http://www.imasy.or.jp/~mone/osask/index.cgi?REFER=3beb9e43_170bc

From: 川合秀実
Message-ID: 3beb9e43_170bc
Date: 2001/11/09 18:13
Subject: Re: 質問 第7稿

[OSASK 2412]へのレスです。

>へっぽこコンソールでmemoryを使うと疑問が浮上したよ。
>3種類のbit数でKBが構成されているね?
>1アドレスは8bitに統一されていると思っています。現在も。
>これに関する技術的な知識が欲しいです。

 最初に申し上げておきますが、1アドレスが1バイトで8ビットであるという見
解は、今もIA32では正しいです。ご心配なさらないでください。

 ええと笑む獅子さんは、「リアルメモリ」「ハイメモリ、プロテクトメモリ」
などという単語をご存じでしょうか。MS-DOSなどの16bitのOSが全盛だった頃に
最初のIBMパソコンは設計され、これらのメモリの区別はその時のなごりです。

 20bitメモリというのはいわゆるリアルメモリで、アドレス空間の最初の1MBの
領域にあるメモリを指します(そもそも8088〜80186では、アドレス空間が1MBま
でしかなかったのです)。AT互換機ではこの領域に最大で640KBまで搭載できます
。MS-DOSが全盛の頃は、メモリといえばこの640KBのことを指す場合がほとんど
でした。今でもCPUがリアルモードにある時はこの1MBまでしかアクセスできませ
ん。またその頃に設計されたハードウェアのごく一部は、今でもこの領域のメモ
リにしかアクセスできません。

 その後Intelが80286を発表し、アドレス空間が16MBに拡張されました。このア
ドレス空間に配されるメモリが24bitメモリです。しかし、16MBのうちの最初の1
MBはリアルメモリとして解釈するので、ここの最大容量は15MBです。・・・例に
よって、この時代に設計されたハードウェアは(たとえばFDCが使うDMAやISAの
サウンドカードのDMAなど)、リアルメモリとこの24bitメモリにしかアクセスで
きません。

 そしてi386以降では、アドレス空間はついに4GBまで拡張されています。これ
が32bitメモリです。最近のほとんどのデバイスはこの32bitメモリに対応してい
ます。

 まとめます。IntelのCPUには歴史があり、アドレス空間が徐々に広がっていき
ました。20bit, 24bit, 32bitメモリという区別は、メモリの種類ではなく、メ
モリがどのアドレス空間に配されているかという観点で分類しただけのものです
。

 このような区別はあまり重要ではないと考えられるかもしれません。もし、全
てのデバイスが32bitアドレスに対応していれば、確かにそうでしょう。しかし
今でも使われているデバイスの一部は、特定のアドレス空間のメモリにしかアク
セスできないのです。そうであれば、あまり容量に余裕のない20bitメモリや24b
itメモリの使用を控え、そういうデバイスが必要としたときのためにとっておき
たいものです。・・・OSASKのメモリ残量表示は、システムがその方針を守って
いるかどうかをチェックするために、メモリを分けて表示しているのです。です
から、一般的な「空き容量」はこれらの総和です。

 このような説明で分かっていただけるでしょうか?