80系、68系のマイコン

仕事の打ち合わせが長引き、前日は深夜に帰宅した哲さん。
毎週土曜日は、愛犬ロボを散歩させると家族に宣言した手前
昼食をとって、啓二さんの仕事部屋へやってきた。部屋の戸
に張り紙が。「スーパーに食材を買いに行ってくる。すぐに
もどる。」と書かれていたので、ロボにブラシを掛けながら
待つことしばし。やっと啓二さんが戻ってきた。
啓二:お待たせ。鍵を渡すから開けてくれよ。食材で両手がふさがって
      いて、ポケットに手を入れられないんだ。
哲  :へいへい。
     (鍵をあけて、2人で部屋に入る)
啓二:ちょっと待て。冷蔵庫に食材を入れるから。
哲  :うん。今日は部屋がきれいだな。誰か来るのか。
啓二:そう。料理を教えることになる女性が来るんだ。
      そのために食材を買いに出たのさ。
哲  :独身生活にサヨナラするのか。
啓二:あのなあ、日本だけだぞ、そう考えるのは。
      IT関係の仕事だけじゃ食えないから、料理教室も開くの。
哲  :なーんだ。そういうことか。
      そう言えば、お前、高校のときの炊事遠足で男ばかりの中で
      あまった食材でスパゲティのミートソース作っていたよな。
      女子からは、自分よりもうまいというのがいたりして。
      あの頃から料理ができたのか。
啓二:まあなあ。料理は嫌いじゃないよ。親父が単身赴任していた頃
      母親が親父のところに行くと、勤めていた姉貴の食事を大学生
      の自分が作っていたから、鍛えられたし。
哲  :そうか。さて、今日は、質問があるんだ。
      80系、68系のマイコンって何だ。
啓二:何だそんなことか。80系っていうのは、Intelの開発した8080、
      8085の流れにあるマイコン。有名なZ80も80系だ。
      そしてMotorolaの開発したマイコン6800、6809の流れが
      68系って言う。68系には、68000もあるけどな。
哲  :Intelって、PentiumのIntelだよな。
啓二:そうだよ。でも、Pentiumは、86系と呼ばれる。
      8086の流れでできたCPUだから。
哲  :何で80系とは68系と言うんだ。
啓二:80系、68系のマイコンが発売された頃は、半導体の集積度が低くて
      今のようなワンチップマイコンには、CPUだけしか入らなかった。
      マイコンシステムを構築しようとすると、CPU、I/O、メモリと
      分類した複数のチップが必要だったんだ。で、ワンチップマイコンに
      したとき内蔵CPUとして8080、8085の命令体系をもった
      プロセッサ機能を入れると、80系マイコンと呼ぶようになった。
      6800や6809のプロセッサ機能を入れると、68系のマイコン
      になる。


哲  :80系、68系というからには、それぞれ特徴があるのかな。
啓二:そう、両者には、大きく3つの違いがあったんだ。
      クロック周波数は、80系の4MHz動作が68系の1MHz動作に
       相当すると言われていた。
哲  :4MHzの方が高速ではないのか。
啓二:少し面倒な話になるけれど、マイクロプログラムとよぶ内部の回路を
      動かすのに1クロックでよいのか、4クロック必要なのかという話に
      なる。実際は、もっと複雑なんだけれど、極論するとそうなる。
哲  :じゃ、他の2つの違いは。
啓二:ひとつは、I/Oの扱い方。命令とデータを出し入れするには、記憶
      即ちメモリにアドレスを振って、そのアドレスを利用する。
      これは、80系も68系も同じ。
      で、I/Oについては、68系はメモリの一部を割り当て
      80系は独立したI/Oアドレスを用意した。
      簡単に言うと、マンションで、大容量の物置を各部屋に当てたのが
      68系で、外に各部屋ごとに用意したのが80系。


      残りは、ビッグエンディアンとリトルエンディアンの違い。
      複数バイトにまたがるサイズのデータがあったとき、データの下位を
      アドレスの下位におく方法がリトルエンディアン。
      逆がビッグエンディアン。
      ビッグエンディアンは、ネットワークバイトオーダーと言う方が、
      通りがよいかな。


哲  :ふーん。まったく正反対の構造なんだなあ。
啓二:ところで、どこで80系、68系という用語を仕入れてきたんだ。
哲  :昨日、仕事の打ち合わせの最中に出てきた。
啓二:仕事って、今はネットワーク関係の開発をしているんだよな。
      ネットワークバイトオーダーからビッグエンディアンという言葉
      が出てきたか。
哲  :かな。マイコンとWindowsマシンでうまく通信ができなくて
      原因を探っていったら、情報の並び方が反対になっていた。
      それでコードレビューしたら、80系、68系という言葉が出てきた。
啓二:そうか。かなり知れ渡っていたことで、FAQでもよく出ていたこと
      なのになあ。ひょっとして、新人に担当させたか。
哲  :何でわかるんだ。
啓二:そういう経験をしたからさ。こっちはマイコンなので、メモリ容量の
      制約から変更できないとして、相手側に対応してもらったことがある。
      そのときに、仕様確認をいい加減にすると、ひどい目に会うと学んだ。
      話さなかったかな。
哲  :聞いた記憶がある。他山の石にはできなかったんだなあ。
啓二:コードレビューまでして、結局は、バイトオーダーのミスだったと
      いうのはよくあることだ。で、その新人の扱いはどうした。
哲  :これから充分気をつけるようにと、そんな程度だよ。
啓二:鬼と呼ばれる人間が何を言うのかねえ。
      まあ、Windowsマシンを利用していてメモリに柔軟性があって
      よかったじゃないか。マイコンならば、大事だぞ。
哲  :何で今の連中は、自分勝手にことを進めてしまうかな。自分は絶対に
      間違っていないの一点張りで、客先でアナライザを利用して確認した
      ならば、逆でやがるの。
啓二:結局は、関数を一つ挿んで解決でしょう。
哲  :うん。
啓二:ならば、よかったじゃないか。
哲  :大学から優秀というので採用したのに、こっちの面目丸つぶれ。
      クライアントには、白い目で見られるし、新人は自分のせいじゃない
      で板挟みだぞ。まったく。
啓二:あのねえ、新人が一人前に仕事をこなせるようになるには、経験や教育
      が必要なの。それを我慢できないようでは、中堅技術者の育成なんて、
      できやしないよ。それに、68系や80系も知らない、お前だって勉強
      不足だ。
哲  :文系出身にそれはないだろう。
啓二:理系、文系は関係ないよ。どれだけ勉強しているかや、過去の流れを
      知って仕事に活かしているかだ。
哲  :眠くなってきた。今日は、帰る。
啓二:そうか。お疲れさん。

戻る