レガシー8051で引っ張るのももう限界、そろそろ別な「レガシー」ネタも設定しておかないと、ということで「4ビット」マイコンを取り上げさせていただくことにしました。ご存知かとも思いますが、世界初のマイクロコンピュータ、インテル4004は4ビットでした。ですから、マイコン業界で4ビットマイコンは「元祖」とか「本家」とか言われるべき本流だった筈なのですが、いまや絶滅危惧種になっています。
※「鳥なき里のマイコン屋」投稿順Indexはこちら
しかし、4ビットマイコン、今の「若い人」にはまったく知られていません。ま、知る必要もなかった分けですが。しかし、ちょっと見てみると、ある意味凄く合理的な世界でもあるのです。
4ビット機の機械語は4ビットじゃない!
8ビットのマイコン(CISC)であると、機械語を格納するプログラムメモリも8ビット幅です。8ビットで収まらない複雑な命令を格納する場合には、2つの連続するアドレスの8+8で16ビットとか、8+8+8で24ビットとか、8ビット幅のメモリを複数個、可変長で処理するのが普通です。そのアナロジーからすれば、4ビットのプログラムメモリは4ビット幅なのか、というと違います。機種にもよりますが、12ビットとか、16ビットとか4ビットよりはずっと幅が広いです。この幅をプログラムの語長でワードと数えます。4の倍数という縛りもなく、中には13ビットとかオッドなビット幅の機種さえ存在します。そして1命令はその幅1ワードの中で完結するのが普通です。8ビット機のように可変長、などということはまずありません。ある意味、後から出てくるRISCに近い割り切りようが4ビットの機械語でありプログラムメモリです。
これに対してデータを格納するデータメモリはというと、この部分こそ4ビット幅です。データはこれがワード幅となります。そして計算処理も4ビット単位。4ビットあると、10進数で0から15までの数を表現できますが、4ビット機の場合、せっかく15まで表現できるのに0から9までに制限する使用方法を中心にしていることが多いです。BCD(バイナリ・コーデッド・デシマル、2進化10進数)という使い方です。これは4ビットの活用が、電卓(10進数の計算が主)、時計(10進数を使った60進で単位が変わる表記)、7セグメント表示のリモコンや制御パネルなどが中心であった、という歴史的な経緯から来ています。ハーバード・アーキテクチャなどと唱えればかっこいいですが、アプリにとって必要最小限のプログラムメモリとデータメモリの幅を決めた、ということでしょう。
幅だけでなく深さ(ワード数)も必要最小限です。1Kワードのプログラムメモリ、128ワードのデータメモリといった機種から存在します。最近でこそ1Kワードのプログラムメモリをリニアに使うことができる機種ばかりですが、昔は、256ワード毎のページの中で処理をして、別なページに移るためには特別なジャンプ命令が必要、といった機種が普通でした。実行中のプログラムアドレスを管理するプログラム・カウンタが8ビットしかない機種がほとんどだったからです。
こうして説明してくると、4ビットマイコンでプログラムを書くというのが、普通にパソコン上でプログラムを書くのとは別次元の世界だ、ということが想像されるでしょう。C言語じゃかけないですね。だいたいCのネイティブな変数型で一番小さいものは普通8ビット幅のchar型ですから。小さな空間にゴリゴリとテクニックを駆使してアセンブラで書く、というのが4ビットの世界です。また、当然、OSが何かしてくれることもありません。なにからなにまで自分で書かねばなりません。
そんな4ビット機は、「小さい」「安い」という点で長らく生き延びてきました。家電製品などで大量に使われていた時代は、日本全国で大量に作られ組み込まれていました。しかし、半導体の製造プロセスが進むにつれ、上位の8ビットとか16ビット、それこそ32ビット機とかとの大きさの差というものが「どうでもよくなっ」ていったのでした。ゴマ粒でも塩粒でもコストからしたら50歩百歩で4ビット使うメリットが消え、反面、プログラム作るのが大変、といったネガティブな面が表だってしまいます。そして消えていったわけです。
しかし、今だに残る4ビット機もあります。 多くはリモコンや時計といったLCD表示パネルなどを使用する分野で生き残っています。7セグメントなどの液晶にマイコンが直接インタフェースする場合、複数のレベルの比較的高い電圧を出力しないといけないことなどから、あまり最先端の製造プロセスではかえって作り難いということが挙げられます。そこに活路を見出すわけですが、じゃ8ビットでダメかと言えばそうでもなく、この際、4ビットなど止めてしまえ、という感じになってしまうことが多かったのだと思います。
どこまで生き残ることができるのか、近い将来、絶滅の憂き目を見るのか。こちらのレガシーも探索したいと思います。