古い話しで恐縮ですが、私が学校を卒業して就職した職場で初めて担当したのが、「16ビットマイクロプロセッサの導入」でした。1980年の前半のころです。当時、ワードプロセッサや、感熱型のプリンタ等が製品化され始め、いよいよ、「マイコンの時代」の到来を予感させる時代でした。

それまで、インテル社の8080系のマイクロプロセッサや、ザイログ社のZ80、そして、モトローラのMC6800といった、8ビットマイクロプロセッサが主流でした。80年代に入って、各社とも、16ビットへ進化を始め、最初にチップが入手できたのがインテル社のi8086というプロセッサでした。「これを使って、グラフィックターミナルを開発せよ」といった指令を上司より受けたのでした。しかし、その時点ではまだ、アセンブラの開発環境が提供されておらず、すべて、機械語でのプログラム開発でした。

i8086 MC68000  Z8000

左から、インテル i8086、モトローラMC68000,ザイログZ8000(Wikipediaより)

それまで、8ビットマイクロプロセッサは、2バイト~3バイト命令だったのが、16ビットになって、4バイト~6バイト命令が普通となり、随分手間取ったのを覚えています。しかも、コマンド表を見ながら、すべて機械語でのプログラミングという、いま考えると恐ろしい環境でした。「機械語」でのプログラミングとは、具体的には、たとえば1バイトの命令の中で、4ビットで対象のレジスタを指定して、2ビットで・・・みたいに、ビット単位で命令を組み立てていくものでした。したがって、頭の中では、常にマイクロプロセッサの中身を想定して、レジスタや、アキュームレータ、内部バス等を意識しながらプログラムを作っていったのです。

ですから、私にとって、アセンブラは「高級言語」なのです。現在、マイクロプロセッサのプログラミングで主流となっている、「C言語」などは、「超超スーパー高級言語」という意識です。だって、倍精度浮動小数点の計算、たととえば、A=B*C; と書くだけで、掛け算ができてしまうのですから(この動作を機械語でプログラミングするのを想像してください!)。

Prom2716 PROM 2716

その後、i80286とかになってくると、「メモリ管理」といった、OS(Operating System)を意識した、今では常識のようなアーキテクチャが次々と登場してきました。

 

 

古い話しはいくらでもできるのですが、それは置いといて、最近は、高性能なマイクロプロセッサが多数誕生しています。これらは、半導体製造技術、設計技術の進歩でもあり、またそれを成し遂げてきたのも、マイクロプロセッサの成果と行っても良いでしょう。ニワトリと卵が同時進行で成長してきた結果です。

最近多いのが、ArduinoやBeagleBoard、Raspberry Piといったような、あらかじめ必要な周辺回路が小さなボードに搭載されたマイコンボードですね。これらは、高性能なプロセッサと、グラフィック表示、NIC、USB、オーディオその他多くの周辺回路が組み込まれていて、OS(Linux系が多いですね)を入れれば、すぐにインターネット接続が可能になっています。しかも、その価格は数千円~1万円程度で入手できますし、ソフトウエアの開発環境もダウンロードしてすぐに(フリーで!)始められるという夢のような環境です。

Arduino BeagleBoard RaspberryPi

左から Arduino、BeagleBoard、Raspberry Pi(Wikipediaより)

これらの「マイコンボード」の低価格化が進み、学生さんや一般の趣味の方たちの趣味として広く使われるようになりました。これからは、こういったマイクロプロセッサの「中身(アーキテクチャ)」よりも、「何に使うか」というアプリケーションを考えることが主流のようです。

WoobyStduioでも、「マイコンボード」や「電子工作」は積極的にバックアップしていきます。WoobyStudioには、マイコン黎明期の石器時代エンジニアから、学生時代、海に潜って、「My昆布」、ではなくて、「マイコン部」を立ち上げたバリバリの現役女性エンジニアスタッフまでそろっております(笑)。

「初めてのマイコン」に挑戦してみたい方、ご見学、お問い合わせをお待ちしております!