Intel 8051

インテル1980年に開発した「MCS 51」ファミリーの代表的な8ビットマイクロコントローラが「8051」です。

このプロセッサは、組み込みシステム用途に特化して設計されており、中央処理装置(CPU)に加え、RAM、ROM、入出力ポート、シリアル通信機能、タイマ、割込制御といった、システム構築に必要な主要コンポーネントを単一の半導体チップ上に集積しています。プログラムメモリとデータメモリを分離してアクセスするハーバード・アーキテクチャを採用している点が特徴です。

8051は8ビット幅のデータバスを持ち、データ操作を8ビット単位で行います。アドレスバス16ビット幅で、プログラムとデータそれぞれに独立した64KBのメモリ空間へのアクセスが可能です。オリジナルの8051は、データ格納用に128バイトの内蔵RAMと、プログラム格納用に4KBの内蔵ROMを備えていました。また、4ビット幅の双方向I/Oポート、シリアル通信用のUART、2本の16ビットタイマ/カウンタ、2レベルの割込優先順位制御機能、そして節電モードなどを内蔵しています。

製造技術としては、初期はNMOSプロセスで生産されていましたが、後に低消費電力化が図られCMOSプロセスへ移行しました。「80C51」のように型番に'C'が付くモデルがCMOS版です。CMOS化は消費電力を大幅に削減し、バッテリー駆動が必要な小型携帯機器などへの採用を容易にしました。

8051アーキテクチャの際立った特徴の一つに、強力なビット操作命令があります。これにより、レジスタや内蔵RAM上の特定のビットに対して、ブーリアン論理演算を直接的かつ効率的に実行できます。この機能は、産業用制御システムなどで信号線のON/OFF状態を扱う際に極めて有用であり、8051が工業分野で確固たる地位を築く一因となりました。さらに、4セットの独立したレジスタバンクを持つことも特徴です。割込発生時には、カレントのレジスタ値を退避することなく、別のレジスタバンクに切り替えることで、割込応答時間を最小限に抑えることができました。内蔵のUARTは9ビットデータ長での通信をサポートしており、EIA-485などの多点接続環境でアドレス指定通信を行う場合にも活用されました。

1980年代から1990年代初頭にかけて、8051はその優れた集積度と機能性から、家電製品、自動車、産業機器など、多岐にわたる組み込みアプリケーションで標準的に採用されました。

オリジナルの8051コアは、1マシンサイクルを実行するのに12クロックサイクルを必要とし、多くの命令は1〜2マシンサイクルで完了しました。例えば12MHzで動作させた場合の性能は0.5〜1MIPS程度でした。しかし、その基本アーキテクチャの堅牢さと普及度の高さから、多くの半導体メーカーが8051互換の改良コアを開発し続けました。2006年時点でも20社以上のメーカーから互換プロセッサが出荷されており、現在ではAtmel、Maxim IC、NXP、Winbond、Silicon Laboratoriesなどが主要な供給元として挙げられます。

現代の8051互換コアは、性能が大幅に向上しています。1マシンサイクルに必要なクロック数は、6、4、2、そして1クロックにまで削減され、動作クロック周波数も100MHzを超えるものが一般的です。これにより、オリジナルの数十倍、数百倍に達するMIPS性能を実現しています。Silicon LaboratoriesやDallas Semiconductor、一部のAtmel製品は1クロック/マシンサイクルの高性能コアを提供しています。さらに、FPGAASIC向けのIPコアとしては、150MHzを超えるシングルサイクルコアも存在し、数百MHzでの動作も可能になっています。

現代の8051ベースのマイクロコントローラは、オリジナルの基本機能に加えて、以下のような先進的な周辺機能を豊富に内蔵しているのが一般的です。プログラム格納用のフラッシュメモリ(自己書き換え可能)、ROM内のブートローダーコード、不揮発性データ保存用のEEPROM、より多くのタイマ/カウンタ、シリアル通信インターフェースの拡充(I2C、SPI、USBホストなど)、PWM信号生成器、AD/DA変換器、リアルタイムクロック(RTC)、低電圧検出(ブラウンアウト検出)機能付きタイマ、オンチップ発振器、より強力な節電モード、拡張された割込ソース、そしてインサーキットデバッグ機能などが統合されています。これにより、複雑化・高機能化する現代の組み込みシステムの要求に応えています。

プログラミング言語としては、アセンブラ言語に加え、C言語が最も普及しています。8051向けに最適化されたCコンパイラが多く開発されており、プログラマは8051特有のハードウェア特徴(複数のレジスタバンクやビット操作など)を効率的に活用したコードを記述できます。また、FORTH、BASICPascal、PL/M、Modula-2といった他の高級言語も利用可能でした。

MCS 51ファミリーには、8051以外にもバリエーションが存在します。例えば、「8031」は8051から内蔵プログラムROMを取り除き、外部ROMを使用することでコストを削減したモデルです。「8052」は8051の拡張版で、内蔵RAMが128バイトから256バイトに、内蔵ROMが4KBから8KBに増量され、さらに3本目の16ビットタイマが追加されています。「8032」は8052から内蔵プログラムROMを除いたモデルです。これらの拡張機能は後の8051互換チップに広く採用されたため、8052や8032自体の利用機会は減少傾向にありますが、MCS 51ファミリーの発展において重要な位置を占めていました。

また、8051のさらに古い祖先にあたるインテルの8048は、初代IBM PCのキーボード制御に採用され、キーストロークをシリアルデータに変換する役割を担いました。この8048ファミリーも、現在でも一部のベーシックなキーボード製品などで利用されています。

このように、インテルの8051アーキテクチャは、登場以来、基本的な設計思想を保ちながらも、性能向上と機能拡張を重ねることで、現在も多くの組み込みシステム開発において重要な役割を果たし続けています。そのシンプルさ、堅牢さ、そして多様な派生製品の存在が、長きにわたり組み込み分野の基盤であり続ける理由と言えるでしょう。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。