- ベストアンサー
CPUとRAMとROMの関係。
パソコン初心者です。入門書に、CPUとRAMとHDDの関係が次のように述べられていました。 (3)C P U ↑ ↓ (2)R A M(4) (1)↑ ↓(5) H D D (1)HDDがRAMにデータを渡す。 (2)データは一旦RAMに記録される。 (3)CPUはRAMに記憶されたデータを基に処理する。 (4)RAMはCPUの処理結果を記録する。 (5)HDDはRAMからデータを受け取る。 CPUとROMもデータのやり取りをしていると思います。それでは、この時のCPUとROMの関係はどのようなのでしょうか。CPUとHDDの関係と同様に、間にRAMが入っているのでしょうか。それとも、CPUとROMは直接データのやり取りをしているのでしょうか。 過去の質問検索では、同種の質問がなかったようなので質問しました。よろしくお願いします。
- みんなの回答 (10)
- 専門家の回答
質問者が選んだベストアンサー
質問の趣旨から少し外れますが、昔話をいたします。 たぶん質問者さんがお読みになった本の著者が説明を省いたであろうことです。 1980年代初頭に、パソコンが個人で買える価格になり始めた頃、 HDDはもちろんフロッピーディスクドライブも個人で買うことができないぐらいに高価でした。 ですので当時は、アプリケーションプログラム(ソフト)を磁気テープ(個人ユースでは音楽用カセットテープ)に記憶させていました。 まさに外部記憶装置です。 パソコンを使用するときは、その都度テープから数分~数十分かけてソフトをRAMにロード(転送)していました。 そして、そのソフトはRAM上で動作するのです。 処理の途中でテープにアクセスすることはできません。 (処理後のデータを記録することはしましたが、今のHDDのように 自由自在にアクセスすることはできません) ROMは、電源投入直後にCPUが処理すべき内容を記録したり、 また、最小限必要な命令群(いまでいうOSの役割に似ています)が記録されています、 例えば、テープからソフトを読み出すコマンドの処理手順やディスプレイに文字を表示する処理手順はROMに書かれていないとどうにもなりませんよね。 現在では、ROMの役割が薄れ、BIOS部分ぐらいにしか使われなくなっています。大昔のパソコンでROMに書かれていた内容の多くがHDDに移されています。 これは、外部記憶装置(今はパソコンに内蔵されていますが)がHDDで高速なので 電源投入の都度、HDDからOSをロードしても短時間で済むためです。また、ROMにするにはOSやソフトがあまりに巨大化しているのも理由の一つです。 また、CPUが管理可能な最大メモリーサイズと言う制限事項があります。これはRAMとROMの容量を足した合計容量に制限があるわけで、HDDがある現在では多用途に使うパソコンにおいて、ROMをほとんど無くしてすべてRAMにしたほうが都合が良いのです。 さて、ご質問の件ですが CPUから見た場合、ROMもRAMも同じように見えます。 ROMの場合はデータの書き込みが禁止されているだけです。
その他の回答 (9)
- i-q
- ベストアンサー率28% (982/3450)
補足: >>あれ、OSってHDDの中にあるんじゃないんですか? はいHDDに全部入っていますが、でも処理する度にHDDから読み込んでいたのでは遅すぎるので、メモリにOSを書き込むのです。起動するとBIOSはHDDのブートセクタにアクセスし>ブートファイルがOSをメモリ上に書き込んで>その後はメモリ上のOSが起動に必要なドライバや設定をHDDからメモリに読み込み起動します(細かいことは知りませんが起動するまでに何十ものステップを経ているそうです)。HDDにOSは入っていますが、それはただのデータと一緒でメモリ上に読み込まれて、始めて動き出します。
お礼
ありがとうございます。よくわかりました。まずは司令官のような存在であるOSをRAMに読み込むんですねー。今まで無意識のうちに、RAMに読み込むものはデータだけで、プログラムファイルは読み込まないものと思っていました。だけど、プログラムファイルもデータなんですよね。無意識の勘違いが解けてすっきりしました。丁寧に質問に答えてくださり、ありがとうございました。
- JMPFAR
- ベストアンサー率14% (21/143)
HDD⇔CPU⇔RAM、ROMと言う関係だと思って下さい。入門書は嘘です。CPUはROMのプログラムにもとづいてHDDの内容をRAMに書いて、このRAMをその後読んでプログラムを実行します。 HDD→RAMと言うDMA、CPUを介さないデータの転送も有りますがこれはどうでも良い事です。 HDDの無い機器ではROMのプログラムをそのまま実行します。パチンコの裏ROMと言うのはこれです。 ROMは1702、RAMは2102からのつき合いです。
お礼
貴重な情報をありがとうございます。 ROM1702、RAM2102、知りませんでした。どちらも1970年代に作られたものみたいですね。RAM2102→2キロビット!!最初見た時、2キロバイトかー、めちゃめちゃ少ないなぁ、と思っていたのですが、よく見たら単位はビット!!!ちょっと、信じられません・・・・
- heyboy
- ベストアンサー率21% (1852/8730)
大昔のパソコンは 大きさの決まった中に RAMとROMが存在し、一部のRAMの部分を 切り替え容量を得るような方式がありましたが、 (ROMはハードウエアの情報やBASIC言語など が入っていましたが) 今ではROMはハードウエア情報を 入れている物として扱われ メモリーの一部としては扱われていません。 しかしながら、そのハードウエア情報さえも 不活性メモリーで記憶させているのが 今では普通になりROM自体が存在しなつつあるようです。 (マザーボードのBIOSやDVDドライブや一部のモデムなどに あるファームウエアがその存在になります。) すでにROMは存在しないと考えた方が 普通かと思われますね。
お礼
僕の頭の中で メモリ=RAM+ROM となっていました。 不活性メモリについては、ちょっとよくわからないのですが、要は RAMが従来のROMの役割も果たすようになって来た →ROMは段々存在しなくなっている +一方で複雑化したRAMを統御するメモリコントロールが登場してきた。 と考えればいいんですね。 勉強になりました。ありがとうございました。
- i-q
- ベストアンサー率28% (982/3450)
RAM→メモリ ROM→BIOS と表現した方がいいですよ。RAMとはメモリも含め、読み書きできる媒体のことです。HDDもRAMの一種で、CD-ROM等”ROM”は読むだけで記録は出来ない媒体のことです。 http://e-words.jp/w/ROM.html さて処理したいデータや動かしたいアプリはHDDから高速なメモリに読み込み、さらに今使う部分だけをCPU内のさらに高速なキャッシュ(でも容量は小さい)に読み込みCPUはキャッシュとやり取りして最終的に処理します。メモリからキャッシュに届くまでCPUは何もできません。さらにデータがHDDにある場合はCPUにとって途方もない間、待機していなくてはならないので、パソコンにはたくさんのメモリがあるほうがスムーズに動きます。(今のパソコンは最初から充分にメモリがありますが) さてそんなメモリは、OSが管理していますし、今動いているOS自体もメモリ上にあります。そんな中アプリケーションに好き勝手書き換えられたら大変ですし、処理中のデータを結果が出る前に勝手に書き換えてしまったら、処理結果は狂ってしまいます。そうならないようにOSは管理し、さらにOS(Win2000以降やNT系OS)は自分の領域をメモリ上に確保し、OSの許可なしにアプリケーションに触れないようにしています。
お礼
なるほどー。僕の頭の中では 内部記憶装置=メモリ=RAM+ROM 外部記憶装置=HDD+FD+DVD+・・・ という風に整理されていました。一般的にはメモリ=RAMだけど、メモリ=ROMと混同されるのを恐れて、RAMとROMという記述をしました。でも、ROMという表現も内部記憶装置か外部記憶装置かでややこしいですね。 キャッシュ。どっかで聞いたことのある単語のような気もしますが、詳しくはここで初めてしりました。 OSはメモリ上にあるんですか。。。あれ、OSってHDDの中にあるんじゃないんですか?「中にある」の、意味がちがうのかな。メモリ上にOSの情報の為の領域(アドレス領域でしたっけ?)が割り振られているという意味でしょうか?
- lanif
- ベストアンサー率62% (170/273)
補足です。 「ROM」の事ですがこれは、記憶媒体(CD-ROMなどのメディア)と部品などのチップとの違いです。 前者は既に理解されているようなので省略しますがHDDなどと同じですね。 後者は部品ですので 一般的には「半導体」や「メモリ」の事になります。 部品の「名称」で考えれば半導体(ICやトランジスタ)などの仕組みですし、 http://e-words.jp/w/E38388E383A9E383B3E382B8E382B9E382BF.html 部品の「働き」で考えれば情報を蓄積する動作になると思います。 http://e-words.jp/w/E383A1E383A2E383AAE383A2E382B8E383A5E383BCE383AB.html もちろん部品同士が情報を伝達しあって動作している以上、 いろいろな部品に情報が蓄えられて処理されます。 その中でも働きとしての「記憶領域」は一番メジャーなところでは「メモリー(モジュール)」と呼ばれる部品の働きですね。 因みに「OS上の記憶領域」に関しては、 最初の考えはあっているとおもいますが、 「同列の概念は「BIOS上の記憶領域(=ROMチップ)」と表現…」に関しては 記憶領域は当然BIOSによって制御されている「部品」ですので 「BIOS上」が指す意味がこの制御されている制御下の部品としてならば正しくなりますが、 ANS1.に書かれている「BIOSが記述されているROMチップのこと」の場合だと間違いになります。 このANS1.でのROMは「BIOS自体を記録しているROM」を言っていますからね。この場合は、通常の処理には使いませんよね。 ※もちろんBIOSを読み出して動くのがPCなので起動している以上は 使っているとも言えなくもないですが…。 但し、ABS1.の回答の説明は微妙に違う説明を書かれているようですが…。 http://e-words.jp/w/BIOS.html
- 参考URL:
- http://e-words.jp/w/ROM.html
お礼
なるほどー。集積回路の各部品はそれぞれに情報を蓄積している→その中でも特に情報が蓄積されている部品がメモリなわけですね。今まで、RAM、ROMは超小型で特殊なDVD、CDやHDDのようなものがマザーボードに貼り付いてる、マザーボードで必要な情報はすべてそこに蓄積されている、というイメージを持っていましたが、改めました。 ありがとうございました。
- corocoro1616
- ベストアンサー率13% (12/87)
>CPUとHDDの関係と同様に、間にRAMが入っているのでしょうか。それとも、CPUとROMは直接データのやり取りをしているのでしょうか。 こういっちゃなんだけど パソコンの場合 CPUとRAMも直接やりとりしていると言うよりは チップセットのメモリコントローラーを経由して やりとりしているですよね。 Athlon64はCPU内部にメモリコントローラーを 内蔵しているので直接やりとりしているといえばいるけど
お礼
ありがとうございます。複雑化したRAMを統括するLSI、メモリコントローラー、始めて知りました。たぶん、僕の読んでる本の発行年が1998年と古い為に記述されていなかったのだと思います。勉強になりました。
- 0KG00
- ベストアンサー率36% (334/913)
RAMもROMも主記憶装置ですから、CPUが直接にデータをやり取りをするという意味では一緒です。ちなみにHDDは補助記憶装置ですね。 実際には、CPUで操作するにはRAMの方が都合がよいのでRAMに読み込まれる方が多いですね。 なお、ご存知かと思いますがこの場合にいうROMとはCD-ROMやDVD-ROMの事ではありません。ICチップのROMの事です。CD-ROMなどは名前こそROMですが記録媒体としての形ですから、OS上の記憶領域(RAM上に確保されている)に読み込まれます。扱いとしてはHDDと同じですね。
お礼
あ、主記憶装置(内部記憶装置)としてのROMの場合はCPUと直接データのやり取りをするという理解でいいんでしょうか? 重ねて質問で恐縮ですが→ROMには内部記憶装置としてのものと、外部記憶装置としてのもの(CD-ROM等)があって、後者の場合HDDと同じ扱いになるのはわかります。しかし、0KG00さんのおっしゃる「OS上の記憶領域」という表現がよく理解できません。これは、OSとOSに乗っかっているアプリケーションソフトが作動するために必要な情報、あるいはこれらによって作成された情報等が記録される場所、という意味でしょうか。そして、これと同列の概念は「BIOS上の記憶領域(=ROMチップ)」と表現することになるのでしょうか?
- lanif
- ベストアンサー率62% (170/273)
各部の機能を簡単にご説明すると、 まずCPUが動作の命令を司ります。 次にHDDやROMはその記録を保管や書き込まれる場所。 そしてRAM(メモリー)は一旦情報を電気的に保存する場所って考えて下さい。 RAMの働きは「一旦情報を保存」ですから「ROMから読み込んだ情報」を当然ですが一時保存しています。 因みに電気的に一時保存ですので電源を消すことで情報は失われます。 そこでHDDなどの記録可能な媒体に保存しておくことで再度読み込む際にはそこからって事になります。 ただし機械的に書き込む媒体に比べ、RAMは電気的な情報で記憶していますので瞬時に情報を再利用できます。 結果としてHDDがROMに変わっただけでRAMが間に入って情報の一時保存をする事に変わりはありません。 というよりも「必ず情報のやりとり」にはRAMが関係しますね。 更にCPU内部にRAMと同じ仕組みを組み込むことで最短距離で情報をやり取りすれば高速に処理が行なえる事になります。
- 参考URL:
- http://e-words.jp/w/RAM.html
お礼
なるほどー。どんな処理の場合でも必ずRAMを通してデータのやり取りがされるということですか。 CPU内部にRAMと同じ仕組みを組み込む・・・高速に処理が行える。とは知りませんでした。 勉強になりました。ありがとうございました。
- char2nd
- ベストアンサー率34% (2685/7757)
質問者さんの意図しているROMとは、何のことでしょうか? 1.CD-ROMなどのリムーバルメディアに記録されているプログラム/データのこと。 2.BIOSが記述されているROMチップのこと。 上記1の場合は、HDDと基本的には同じ扱いです。データの追記や消去などが出来ないだけです。 2の場合は、OSの動作には直接関与しません。PCの起動時に作動し、基本的なシステムの設定をするだけです。プログラムの動作などはOSが管理します。 http://www.atmarkit.co.jp/icd/root/86/5785786.html
お礼
ありがとうございます。すみません、言葉足らずでした。僕の頭の中にあったのはROMチップのことです。この場合、PCが起動した時に、CPUとROMの間でデータのやり取りはされていないのでしょうか?
お礼
めちゃめちゃ納得がいきました!! なぜ「外部」と呼ぶのか疑問に思っていたのがわかりました。そもそも、ROMの存在意義について疑問に思っていた(HDDに移しちゃえばいいのにと思っていた)のもスッキリしました。なぜ、ROMよりもRAMが幅をきかせてきているのかもわかりました。 大変勉強になりました。ありがとうございました。