めも

2年生

CPUの命令実行の流れ

三日坊主どころか一日坊主になるところでした。
最近はいい加減本腰入れないとやばい!と思い基本情報の勉強をしてます。
が!CPUの仕組みが難しくてなかなか自分の中で消化できません。。
というわけで今日はCPU内での処理の流れをまとめていきます。

CPUとは

コンピューターは5つの装置(入力装置、出力装置、記憶装置、演算装置、制御装置)で構成されています。
この中で演算、制御装置に当てはまるものがCPU(Central Processing Unit)で、命令された処理の実行や各装置の動作の制御を行います。
中央処理装置と呼ぶくらいなので重要なポジションなのでしょう。

CPUの構成要素

CPUの中身を見ていきます。CPUは以下の表に示す装置から構成されていますが、多くの割合をレジスタというもので占めています。
レジスタは一言でいうと記憶装置のひとつで、容量が少ない代わりに高速でアクセスが可能という特徴があります。
CPUは命令を保持するレジスタ、演算処理に使用するデータを保持するレジスタ等、用途ごとに分けて複数のレジスタを持っています。

種類 内容
プログラムカウンタ 主記憶装置に保持されている実行したい命令のアドレスを保持するレジスタ
命令レジスタ 主記憶装置のアドレスから取得した命令を保持するレジスタ
メモリアドレスレジスタ 主記憶装置上に保持されている操作したいデータのアドレスを保持するレジスタ
汎用レジスタ 特定の用途を持たない汎用的なレジスタ
デコーダ(解読器) 命令レジスタに保持された命令を解読する装置
ALU(Arithmetic and Logic Unit) 命令を実行する装置

ALUは算術論理演算装置とも呼ばれ、四則演算や論理演算を行う装置です。
またCPUと主記憶装置の間にはバスという装置があり、各装置間でデータをやり取りする際の道の役割をします。

命令実行の流れ

それでは命令実行がどのような流れかまとめていきます。
「主記憶装置上の値を使用して演算を行い、結果を汎用レジスタに格納する」命令を例にします。

f:id:ktlcs517:20160731224234p:plain

まず最初にプログラムカウンタに保持されたアドレスをもとに、主記憶装置から実行したい命令を取り出して命令レジスタに保持します。

f:id:ktlcs517:20160731223216p:plain

命令レジスタに保持された命令はデコーダで解読されます。このとき、命令の内容が主記憶装置に保持されているデータを取り出す内容の時は、そのデータのアドレスがメモリアドレスレジスタに保持されます。

f:id:ktlcs517:20160731224247p:plain

メモリアドレスレジスタに保持されたアドレスをもとに、主記憶装置から使用したいデータを取得し、ALUに送られます。
そしてALUで取得してきたデータを使用して演算処理を行い、その結果を汎用レジスタに格納します。
これでこの命令の処理は終了です。

細かい部分を省きまくってますがこんな感じ!です。
大まかな処理の流れは理解できましたがまだまだ謎が残ってますむむむ。。。