- 締切済み
CPUがメモリ上の命令を実行する流れについての質問
CPUがメモリ上の命令を実行する流れについての質問です。 CPUがメモリ上の命令を実行流れについてなのですが たとえば,「Wordが起動する」までの流れがあるとして ① 「Wordを起動する」という命令がメモリ上にある ② CPUがその命令を読み取り,Wordを起動し,その演算結果をメモリに返す ③ メモリ上に「Wordが起動されている」結果が一時的に保存されている おおまかな流れはこうではないのでしょうか?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- i-q
- ベストアンサー率28% (988/3463)
1、2はありません。。 ユーザからの入力に対して処理が実行されるので、 CPUが勝手に読みに行ったりはしません。
- kzr260v2
- ベストアンサー率48% (863/1797)
>>おおまかな流れはこうではないのでしょうか? 残念ですが適切な説明ではないと思います。 印象としてになりますが、質問主さんの表現ですと、「細胞ひとつひとつの説明」と言いながら、次にいきなり「細胞の動作として腕の関節の動作を例としている」みたいな感じです。そこには、腕が骨や筋肉や神経や血管などなどの組み合わさりや、特化した細胞がそれぞれで多数あつまりそれぞれの箇所を構成している、などの必要な説明が抜けている訳です。 ※ CPUの内部動作の流れは、とても細かく厳密です。残念ですが、CPUのおおまかな流れの説明としては適切ではないと、私は感じました。なぜなら、CPUが内蔵している命令セットは、【とても低レベル】です。CPUのワンステップの命令で「Wordを起動」なんてものは存在しないのです。例えば(理解する必要がないのでざっくり読んでください)、アキュムレータという計算をする所にデータを読み込み、そのデータといずれかのデータでいずれかの計算をし、結果により分岐したりします。質問主さんは「意味が分からない」と思われるかもしれませんが、それは正しい反応です。WindowsのようなOSも、Wordのようなアプリも、CPU上ではとても低レベルな命令で実行されますので、意味がわからなくて当然なのです。 Wordのようなアプリを作成するプログラマーは、CPUの命令をワンステップずつ記述することは、ほとんどありません。C言語やC++などの高級言語で記述することで、ワンステップ記述よりも効率的にプログラミングしています。 ※ どうしてもWordを例になさりたいなら、「ユーザーの操作などによりWordの起動のリクエストがきて、Wordの起動のためのOSの予備動作や、Word自身によるWord起動時の初期化動作などがあり、画面としてWordが表示される」といったCPUという単語は使わないものになります。 ※ 「Wordを起動する」といった、一見すると些細な動作ですが、周辺機器やOSの動作などが多数介在します。 例えば、マウスでWordのアイコンをダブルクリックした直後、OSのマウスデバイスドライバはマウスからの信号を受け取り、一定期間内にクリックが連続したとして、ダブルクリックのメッセージの発生をOSに通知します。OSはフォーカスを受けているアプリへメッセージを通知します。この後はアプリの起動に向けた様々な動作をします。場合によりインストール状態をレジストリから読み取ることもあります。メモリー空き容量などのチェックを経て、特定したアプリをストレージからメモリーへロードする、、、なんて流れです。この時点でまだWord自体は動作前ということをご理解ください。 このように、Wordがロードされる以前の段階で、様々なプログラムが動作します。そして、今ご案内した内容は、CPUのステップではありません。OSがどのように動作しているかの流れです。 ※ CPUという言葉を使われたいなら、「CPUはプログラムカウンターが示しているアドレスを読み出し、その命令に沿って実行する。実行結果によりプログラムカウンターがプラス1され次のアドレスを指し示す、という場合もあれば、先程のプログラムカウンターを別のアドレスへ変更し、そちらの処理をする場合もある」なんて使い方になります。 以上、参考にならなかったらごめんなさい。
- dragon-man
- ベストアンサー率19% (2714/13698)
CPUがメモリ上の命令を実行する流れ プログラム(OS、Wordなどのアプリ)は実行命令(インストラクション)の羅列。メモリに書き込まれている。 CPUの中のレジスタ(インストラクションカウンター)が命令をメモリから書かれた順番通り読み取って次々に実行する。途中に分岐命令があるとそこへ飛んで読み取り実行を続ける。 これが命令を実行する流れです。OSもアプリも例外ではありません。
- kamura01
- ベストアンサー率30% (60/199)
CPUとストレージ(質問で言うword)の間でデータの受け渡しをするのが主な機能です。 CPUの処理が速い為、ストレージの転送を待つ間にメインメモリがあらかじめデータを蓄えてCPUへデータを受け渡ししています。 ストレージにあるデータは高速なメモリに蓄えられ、メモリを経由してCPUに送って処理の最速化をしています。