「天文屋のためのマイコン入門」命令コストとは
さて、PICマイコンというのは規模が小さいマイコンなので、マイコンの中では簡単な方だと思われるかも知れません。しかし、概念的には難しい部類に入ります。
この難しい概念を暗記的に覚えることもできるのですが、なぜそうなっているのか、十分理解して覚える方法もあります。そのとき役に立つのが命令コストの概念です。
命令コストは1でなければならいとして説明してきましたが、もっと正確に正しく説明してみようと思います。
以前マイコンの命令は数値に変換されると説明しました。(ビルドといいました)
データを格納するメモリは8ビットのバイトが基本単位でした。メモリにはもう一種類あります。プログラムを格納するプログラムメモリです。こちらの基本単位は14ビットです。なぜ14ビットか、それはPICの設計者がいろんなバランスを考えてこれが最適と考えたのでしょう。もっとビット数を多くすることができますが、多くすれば、プログラムも大きくなりますし、速度的にも不利です。
いずれにせよ、14ビットと決まったわけですから、翻訳された命令の数値は14ビットに収まらなければなりません。
ここで14ビットの命令のフォーマットを調べてみます。
命令の14ビットの情報のうち、上側7ビットは、命令の種類(MOVFWとかADDFWとか)を指定するのに使われます。7ビットですから原理的には2の7乗で128種類の命令を指定できます。残りの7ビットはレジスタファイルの番地を指定するのに使われます。レジスタファイルの番地は0から127までの128個に限られます。
この図を見れば分かるように、レジスタファイルの番地を増やそうとすると命令の種類を減らさないといけないことがわかります。ですからむやみに番地を増やす分けにはいきません。命令の種類を増やそうとすれば番地が減り、番地を増やそうとすると命令の種類を減ります。
どこに最適値をおくかはPICの設計者の理念ですが、とにかく番地指定のために7ビットしか割り当てられなかった分けですから、レジスタファイルのレジスタ数は128ということになります。
しかし、これでは少ないのでしたね。そこでもっと別な方法でレジスタを増やす策が必要です。これがバンクと言われる方式です。次回説明します。
| 固定リンク
コメント