検索
連載

今なお現役、1000種以上が存在するIntel空前の長寿MCU「8051」マイクロプロセッサ懐古録(2)(2/5 ページ)

昔懐かしのプロセッサを取り上げ、その歴史をたどる本連載。今回は、20年近く前に生産が終了しているにもかかわらず、今なお使われている「Intel 8051」を取り上げる。

Share
Tweet
LINE
Hatena

1チップで完結する「8048」

 命令アーキテクチャは、4004/4040とも8080とも違うものとなった。命令セットは先のOral History Panelの記述によればDavid Stamm氏が定めたらしいのだが、彼はCDC(Control Data Corporation)を参考にしたと説明している。CDCは、1960〜1970年代にスーパーコンピュータを開発して世に送り出していた企業で、恐らく「CDC-6600/7600」あたりを参考にしたのではないかと思うが、その辺の詳細は不明である。算術演算(減算/比較は無し)、論理演算、制御転送/条件分岐/無条件ジャンプおよびコール、データポートに対する入出力と論理演算、タイマー/カウンター関連命令とプロセッサ制御命令関連からなる。ただ、例えば条件分岐は256Byte Page内に限られるし、ジャンプ/コールは2KBのMemory Block内のみである。そもそもメモリ空間はRAMとROMを全部あわせて4KBであり、PC(Program Counter)も12bitしかない。もっともこのメモリ空間も、Data Memory/StackとProgram Memoryで別空間になっているというちょっと面白い設計である。

 レジスタは8本、Stackも8レベルになっており、64BytesのOn-chip RAMのうち16BytesはStack用に確保されている。あと、外部にRAMを最大256Bytesまで接続できるが、これは直接アドレスできず、MOVX命令を使ってのアクセスになっていた。変なところでは、一部の製品はこのレジスタもバンク切り替えが可能になっており、なのでトータルだと16個の汎用レジスタが利用できた(当然8bit幅である)

 Addressing ModeはImplied(暗黙)/Accumulator/Register/即値/絶対値/Register indirect/Accumulator indirectと7種類もあって結構豊富ではあるのだが、命令数は96もあるから、命令の直交性が保てていた、とは言いにくい。まぁADD/ADDC命令なんかは結構頑張ってはいるが、基本演算用というよりは制御用という感じの命令セットであった。

 内部構造はこんな形(図4)であり、1970年台に1チップでMCUの機能を実現するための必要十分というか、必要とされる機能を選び抜いて実装した感が強い。

 この8048、1980年のリストでも

品種 Memory Cycle Time その他
8021 1K ROM 10μs -
8022 2K ROM 10μs -
8035 No ROM/64B RAM 2.5μs -
8035L No ROM/64B RAM 2.5μs 8035にPower Down Mode追加
8035-8 NO ROM 5.0μs -
8039 No ROM/128B RAM 1.36μs -
8048 1K ROM 2.5μs -
8049 2K ROM 1.36μs -
8748-6 1K EPROM 6MHz 0℃〜55℃で稼働
8748-8 1K EPROM 5.0μs -

の10品種があり、その後8020(20pinの8021)、8040(ROMなし、256B RAM)、8050(ROMなし:外部ROMソケット対応)、80P50(ピギーバッグ式ROMソケット搭載)、8648(1KB OTP EPROM)、8749(2KB EPROM/128B RAM)などの派生型が追加されている。ちなみにこの表、8748-6だけ明らかに動作周波数がおかしいように見えるが、この話は後述する。

Intel MCS-48 Single Chip Microcomputers User's Manual
図4:"()"内がbit幅である。左上のProgram Counter周り、苦労したんだろうなぁという感じである。出典はIntel MCS-48 Single Chip Microcomputers User's Manual(1980)[クリックで拡大]

 この8048は結構売れた。なにしろ4004/4040/8008/8080などと異なりワンチップで完結するし、コストを抑える設計になっていたから比較的手ごろであった。いくつかのゲーム機に採用されたり、幅広い組み込み用途に応用されたりした。有名なところでは、Tandy Radio Shackの「TRS-80 Model II」のキーボードコントローラーとかIBM-PCのキーボード内部のコントローラーなどがこの8048やその派生型である。ただ単純な制御だけならそれで十分なのだが、もう少し複雑な事をさせようとすると演算性能の不足とかメモリ空間の少なさが問題になってきた。競合は例えば冒頭にも書いたMostekのMK3870とかで、あれもトリッキーなアーキテクチャではあったが、こちらも8048より広く販売された。理由の一つは、MK3870はMask ROMの作り方を工夫しており、Mask ROM製造のコストが8048より一桁安い1000米ドル程度だった事が挙げられよう。もっともIntelの方も努力しており、例えばMask ROM版の8048は1876年の出荷時の価格は8.50米ドルだったのが、1978年末には2.53米ドルまで下がった。1976年末、Intelはわずか770個の8048ファミリーを出荷したにすぎないが、1977年には7000万米ドル、1980年には7億米ドルの売り上げに急成長。この時点でIntelの売り上げの9%(8%という数字もある。1980年のAnnual Reportには部門別損益の記載が無かったので確認できない)を占めるに至った。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る