PICの内部構成と命令の実行

【PICの内部構成】

 プログラムは命令が規則正しく実行されることで正常動作をします。
では、PICの中で命令はどの様に実行されるのでしょうか? 

それを理解するには、PICの中身を知るのが早道です。PICの中は
どんな構造になっているのでしょうか? 

下図が簡単化したPICの中身の構造です。




プログラムメモリ
  プログラムの命令
  の格納庫
レジスタファイル
  データレジスタの
  格納庫
プログラムカウンタ
  実行番地の指定
STATUSレジスタ
  命令実行後の
  状態の格納庫
タイマー
  時間を作る周辺
  ハードウェア
入出力ポート
  入出力ピンとつな
  がるデータレジスタ
ALU
  演算を行う回路
Wreg
  作業レジスタ
データバス
  データの通り道

【命令実行動作概要】

上図の内部の構造で命令が実行される手順を説明します。

(1)命令の取りだし
  まず、プログラムの命令は、プログラムメモリに格納されています。
  そしてプログラムカウンタが指しているアドレス(番地)の命令が呼び
  出されて命令レジスタに行き、そこで実行されます。
  
  このプログラムカウンタは電源がONとなった時や、リセットされた時に
  は必ず0となります。従って、プログラムは最初は必ず0番地から
  開始されることになります。

(2)命令の内容解読
  命令の種別や実行内容は命令そのものの中にありますから、それを
  まず命令レジスタの中で解読します。

(3)命令の実行
  その結果、命令の種別によってその後の動作は変わりますが、例えば
  加減算などの演算に関する命令の実行は、Mux(選択切替ユニット)、
  ALU(演算ユニット)、Wreg(作業レジスタ)の部分で行われます。

(4)データの取り出し
  その演算に関連するデータは、レジスタファイルからデータの通り道
  であるデータバスを経由して、読み出したり書きこんだりされます。

  ここでレジスタとは一時的な記憶回路のことで、このレジスタが命令
  実行の中心的な働きをします。
  命令に使われるデータはレジスタファイルの指定レジスタに記憶され
  ていますし、実行結果の状態はSTATUSレジスタに記憶され、正負や
  ゼロかなど色々な判定に使われます。
  またPICの場合には、タイマー入出力ピンを動作させるのにもレジス
  タが使われます。

(5)データの格納
  命令実行により演算された結果は、指定されたレジスタに再格納され
  ます。この時もやはり、ALUからデータバスを通ってレジスタファイルや
  Wregに格納されることになります。

(6)次ぎの命令へ
  この命令実行が完了すると、プログラムカウンタが自動的に+1され、
  最初に戻って、次ぎの命令が実行されることになります。
  このようにして順次命令が実行されることでプログラムが動作をします。

  但し、命令によっては、このプログラムカウンタ自身にデータを上書き
  するものがあります。これによって、プログラムカウンタが変更されると
  別のアドレスの命令が次ぎに取り出されて実行されることになります。
  これがジャンプ命令の働きになります。


   次のページへ      目次ページへ