• ベストアンサー

SE初心者の質問(メモリ編)

jactaの回答

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

> CPUのアドレス空間?レジスタのことでしょうか? 汎用レジスタのことをいわれているのであれば違います。 ただし、汎用レジスタにアドレスが割り付けられているアーキテクチャも実在します。 制御レジスタのことであれば、アドレス空間上に割り付けられていることもあれば、通常のアドレス空間とは別のI/Oアドレス空間に割り付けられていることもあります。 仮想メモリ云々は、MMUを搭載している環境に特化した話であり、一般的ではありません。昨今のPCではそれが普通ですが、質問者さんは特に環境を指定されていませんから。(私は4ビットや8ビットのCPUやマイナーなアーキテクチャも視野に入れて回答しています) 通常、(C言語のような比較的低水準のものも含めて)高級言語ではアドレスを指定してアクセスするのはメモリがほとんどですが、メモリをいくら読み書きしても、それだけでは画面に表示することも、キーボードを読み込むことも、ネットワークにつなげることもできません。LEDひとつ点灯させることもできません。必ずハードウェアを制御するためのI/Oが必要であり、アドレス空間にはそうしたI/Oも配置されているのが普通です。(前述したI/Oアドレス空間の場合もあります)

関連するQ&A

  • メモリ3枚や4枚でのデュアルチャンネルについて

     デュアルチャンネルは同じメーカーと仕様のメモリを2枚1組で使用し、データ転送帯域をおよそ2倍に高速化する技術ですが、3枚や4枚の場合だとどうなるんですか?  3枚の時は3倍、4枚の時は4倍といった風に、なるのでしょうか? あと、速度や容量を揃えないと不安定になると書いてあったのですが、それだと例えば、メモリスロット4つの32bitのOSのPCでは1GB×4じゃないと安定しないってことになります。 しかし、32bit OSでは、仮想メモリ空間が4GBであるため、カーネル空間の1GBを除くとユーザーが利用できるメモリ空間は3GBまでとなります。 となると1GB無駄になってしまいますよね? かといって3GBにすると1GBのメモリ×2と512MBのメモリ×2で容量が違うので不安定になります。  さらに、1GBのメモリ×3だと3倍にまでしかデータ転送領域が高速化しないことになります。(あくまでも3枚で3倍とかが正しかった場合ですが・・・)  では実質4倍でメモリ3GBっていうのは不可能ってことなのでしょうか? 凄く間違ったことを言っているのかもしれませんが、どなたか分かる方いらっしゃいましたら教えてください。 よろしくお願いします。

  • メモリについて

    メモリアドレスの説明の時に、1byteは8bitと、1つの番地を示す時に 00000000~FFFFFFFFなどの表が使われてますが、 1bitって0,1の2つまでなのに、それぞれの桁にF(0~15)までの値が入れられるのがわかりません。 各桁(1bit)の中も4つに区切られているのですか? 頓珍漢な質問かもしれませんが、よろしくお願いします。

  • 32bitOSで4GBメモリを使用できない理由

    こんにちは。いつもお世話になっています。 Windows XPやVistaの32bit版はメモリスロットに計4GBのメモリを挿しても3GBと少ししか認識しませんよね。 その原因が「アドレス空間」が関係しているというのを見たことがあるのですが、そもそもアドレス空間とは何のことですか?この空間がメモリの認識にどう影響を与えているのか知りたいです。また、何故同じ32bitOSでもそれぞれのPC環境によって認識できる容量に差が出てくるのでしょうか?64bit版ではどこがどう変わって128GB(Vista Business以上)ものメモリを認識できるのでしょうか? たくさん質問してしまって申し訳ありません。 検索してみたのですが少し難しく、私には理解できませんでした。 お時間のあるときでかまいませんので、ご回答よろしくお願いします。

  • ThinkPad X201のメモリ

    TinkPadX201ですが、メモリが2GB×2式搭載されています。 メモリを増設したいのですが、諸元では、8GBまで搭載できるようになっています。  増設するために、メモリスロットにあるメモリは捨てる覚悟です。 メモリスロットが2つあるので、4GB×2、つまり、1つのスロットには4GBまでしか搭載できないのか?とも思っていますが、 当時、4GBのメモリしかなかったが、今は8GBのメモリもあり、1スロットに8GBのメモリ(2つで16GB)を搭載できないのでしょうか? BIOSの制限でしょうか? 64Bitのアドレスバス幅/データバス幅はあるのでしょうから、アドレス空間を8GBに制限する理由はないように思いますが、・・・。

  • 32ビットCPUのメモリについて

    32ビットCPUの場合、アドレス空間の制限で1プロセスにつき4GBまでしか使用できないことになっていると思いますが、このうち2GBはシステム用、その他2GBがアプリケーション用と聞いたことがあります。1プロセスで使用する度にOSに2GBほどのメモリを使用することがあるのでしょうか?(プロセスが多くなる度にOSで使用されるメモリ量も増大すると考えてよろしいでしょうか?)

  • 仮想メモリ

    16ビットの仮想アドレス空間を持つ場合のページング処理について考える。 ページテーブルサイズを8とする。 主記憶の実ページ(物理ページ)の大きさを求めよ。 という問題がわかりません。 仮想メモリについて理解できてきないのだと考え色々調べましたがよくわからなかったです。 仮想アドレス空間と主記憶上の実ページの関係が上手くイメージできないです。 どなたか答えと解説をお願いします。

  • メモリをアドレスを直接指定して値を取得するには

    マイコンのプログラムを書いております。 やりたい事はC言語でフラッシュメモリの物理アドレスを直接指定してそのアドレスの値を1バイト読むことです。例えば0xF000番地のアドレスから1バイト読む場合、以下のソースコードで問題ありますでしょうか?なおアドレスは2バイトで表現されます。 unsigned char *p_value; unsigned char value; p_value=&value; p_value=0xF000; この時点で変数valueには0xF000番地の値が正確に代入されてますでしょうか? よろしくお願いします。

  • メインメモリについて質問をさせていただきます。

    こんばんは、早速ですが質問します。 尚、高校生のため専門的な解説や用語など砕いていただけたらと思います。 【http://h50146.www5.hp.com/info/newsroom/pr/fy2007/pdfs/fy07-062_v7000.pdf】 品型RN620AV-ABJ v7080jp メモリ512*2本 CPU core2 @1.8GHz グラボ GeForce7600GS 504MB 自分は、512*2本 メモリの確認はわからないのでしてませんが; とりあえず容量だけいえば、この2本を差し込んでいます。 上記のURLのデータを見る限り ============================== メモリ容量(最大容量)512MB(512MB×1)/1GB(512MB×2)/1GB(1GB×1)/2GB(1GB×2)/4GB(1GB×4) PC2-5300(667MHz)(最大4GB) メモリスロット※3 4DIMMソケット(1ソケット、 2ソケットまたは4ソケット占有済み)/DDR2 SDRAM(240ピンDIMM) ※3 増設は1枚単位で可能ですが、デュアルチャネル構成でパフォーマンスを最適化するためには メモリスロットの各チャネルの合計容量が同一になるように増設することをお薦めします。 ============================== を読んだ限り、これがいいのかな? と思っています。 【http://kakaku.com/item/05209011957/】 予定としては、2GBを買い512MBの2本を継続しようと思ってます。 しかし2CPUなら、メモリの容量の差は小さいほうが 安定しやすいとかなんとかデータに書いてあり悩んでいます。 一応自分の選択するメモリは間違ってはいませんか? 何分素人なので、もし違ってたら悲しいですし。 できればお店は値がはるのでネットがいいのです。 回答、アドバイスよろしくお願いします。

  • LCDに表示するためのフォントデータ

    マイコンでLCDに文字を表示するようなプログラムを作成しています。 現在使用している基板のアドレス0x400000番地から0x480000番地のフラッシュROMの空間に文字コード順に並んだフォントのドットデータが入っているそうで、文字コードを指定して、そのメモリからデータを引き出して、LCDに表示できるようになっています。 このフォントデータは1文字ごとに24バイトのデータとなっていることがわかりました。 なので、21,845文字程度のデータが入っていて表示することが可能のようです。 このようなフォントデータというのはネット上でフリーでダウンロードできるものとかありますでしょうか? またこのような文字のどっとデータをバイナリとしてダウンロードすることが可能なサイトなどご存じでしたら、是非教えて頂きますようお願い致します。 どうぞ、よろしくお願い致します。

  • メインメモリについての酷く拙い愚問です。

    メインメモリから各アプリケーションへ割り当てられ得るアドレス空間の場所は、何らかの基準で先に予約されているのでしょうか? 私は入門者に留まっていますから、質問の内容に誤りが含まれているのかも知れませんが、諒察を宜しく御願い申し上げます。