Intel MCS-48

Intel 8048またはそのシリーズであるIntel MCS-48はインテル初のマイクロコントローラである。Intel MCS-48は、1976年に導入された。当初のラインナップには8048、8035、8748が存在した。これらは元々NMOSプロセスで生産されていたが、1980年代初めにはCMOS版も供給された。既存の古い設計をサポートするため、1990年代に入っても製造された。

 構成 
8048のアーキテクチャはハーバード・アーキテクチャの変形であり、プログラム用ROM（内蔵または外付け）とデータ用RAMを分離して持っていた。27個のI/Oポートを持つが、それらは独自のアドレス空間にマップされ、プログラムやデータとは分離されている。また1回路の8ビットタイマ・カウンタを自前でもっていた。8048の内蔵ROMは1KBで、外付けのプログラム用ROMを用いることもできた。内蔵RAMは64バイトであった。ROMの種類、メモリ容量によってファミリーを形成し、例えば8049は2 KiBのマスクROM（8749はEPROM）を内蔵しており、このROMは4 KiBの外部ROMで置き換えることができる。

外部から供給されたクロックは内部の発振器ブロックによって15の内部フェーズに分割される。そこで、最高動作周波数である11MHzの水晶発振器を接続すると、0.73MIPS（1クロック命令について）の性能が出る。1CPUサイクルで実行できる1バイト長の命令もあるが、多くの命令は2CPUサイクルないし2バイトを必要とする。従って実際の動作速度は0.5MIPS程度である。

 MCS-48ファミリー 
8049は2KBのマスクROM（8748と8749はEPROM）と128バイトのRAM、27個のI/Oポートを搭載し、ROMは4KBの外部ROMに置き換えることができた。マイクロコントローラのクロック発振器ブロックは入力クロックを15分周し、最大11MHzで0.73MIPSの駆動が可能であった。命令の7割は1命令サイクルあたり1バイトで、3割は2サイクル・2バイトを必要としたため、実際のパフォーマンスは0.5MIPSほどになる。

フィリップス・セミコンダクタ（現NXP）がこのシリーズを生産するライセンスを所有しており、このアーキテクチャをベースにMAB8400ファミリとして開発していた。これらはI2Cインターフェースを統合した最初のマイクロコントローラで、フィリップスの最初のCDプレーヤー「CD-100」に用いられたDatasheet (pdf) Philips MAB8400-Family。

Intel 8748はクロック発振器を内蔵しており、8ビットタイマーを2個、I/Oポートを27個、64バイトのRAMと1KBのEPROMを搭載していた。2KB EPROMと128バイトのRAMを搭載したバージョンは8749としてリリースされた。

 デバイス  内部ROM  メモリ  注釈 8020    1K × 8 ROM         64 × 8 RAM    8048のサブセット、20ピン、13本のI/O 8021    8048のサブセット、28ピン、21本のI/O 8022    2K × 8 ROM         8048のサブセット、A/Dコンバータ、1982年NECにセカンドソースライセンスされた 8035    無し               8039    128 × 8 RAM  8040    256 × 8 RAM  8048    1K × 8 ROM         64 × 8 RAM  8049    2K × 8 ROM        128 × 8 RAM  8050    外部ROMソケット    256 × 8 RAM  8748    1K × 8 EPROM       64 × 8 RAM  4Kプログラムメモリ外付け可 8749    2K × 8 EPROM      128 × 8 RAM  8648    1K × 8 OTP EPROM   64 × 8 RAM   

 デバイス  内部ROM  メモリ  注釈 8041     1K × 8 ROM          64 × 8 RAM    Universal Peripheral Interface (UPI) 8041AH   128 × 8 RAM    UPI 8741A    1K × 8 EPROM        64 × 8 RAM    UPI、8041のEPROM版 8741AH   1K × 8 OTP EPROM   128 × 8 RAM    UPI、8041AHのOTP EPROM版 8042AH   2K × 8 ROM         256 × 8 RAM    UPI 8742     2K × 8 EPROM       128 × 8 RAM    UPI、EPROM版 8742AH   2K × 8 OTP EPROM   256 × 8 RAM    UPI、8042AHのOTP EPROM版

 応用 
8048は後に開発された8051に駆逐されつつあるが、21世紀を迎えた時点でもまだ広く用いられている。コストが低く、広範な応用範囲を持ち、1バイト命令セットによってメモリ利用効率が高く、枯れた開発用ツールが存在することがその理由である。そのため、大量生産される民生用電子機器、例えばTVのリモコン、玩具等といったコストダウンが至上命令であるような製品によく用いられる。

8048はマグナボックスオデッセイ、コルグTridentシリーズ、コルグPoly-61、ローランドJupiter-4およびProMarsアナログシンセサイザーに使用された。

オリジナルのIBM PCキーボードは内蔵マイクロコントローラとして8048を使用していた。PC/ATではPCのI/Oアドレス0x60～0x63にあるIntel 8255周辺機器インターフェースチップが0x60-0x64にある8042に置き換えられた。キーボードインターフェースを管理するだけでなく、8042はATのIntel 80286 CPUのA20ラインを制御、または80286をリセットするコマンドを送ることができた（80386やそれ以降のプロセッサとは異なり、80286はリセットする以外にプロテクトモードからリアルモードに戻る方法がなかった）。後のPC/AT互換機では8042の機能はスーパーI/Oチップに統合されていった。日本電気PC-9800シリーズでは、キーボード側の8048と本体側の8251AがI/Oアドレス43Hでシリアル通信を行った。。キーボードと本体間のシリアル通信はシャープX1シリーズでも使用された。

かわった使われ方としては、ROMを持たない8035が任天堂のアーケードゲーム『ドンキーコング』でバックに音楽を流すために使われた例がある。

 関連項目 
 Intel 8051 - 8048に比べ、高速化がなされ、シリアルインタフェースも内蔵するようになった。またメモリ空間の拡大と命令の強化がなされた。

 参考文献 
MCS-48
 MCS-48 Single Component Microcomputer, Applications Seminar Notebook, 1978, Intel Corporation.
 , 1978, Intel Corporation.
 Lionel Smith, Cecil Moore: Serial I/O and Math Utilities for the 8049 Microcomputer, Application Note AP-49, January 1979, Intel Corporation.
 A High-Speed Emulator for Intel MCS-48 Microcomputers, Application Note AP-55A, August 1979, Intel Corporation.
 Phil Dahm, Stuart Rosenberg: Intel MCS-48 and UPI-41A Microcontrollers, Reliability Report RR-25, December 1979, Intel Corporation.
 Microcontroller Handbook, Intel 1984, Order number 210918-002.
 8-Bit Embedded Controllers, Intel 1991, Order number 270645-003.

UPI-41
 UPI-41A User's Manual, Intel 1980, Order number 9800504-02 Rev. B.
 , October 1993, Order number 231318-006, Intel Corporation.
 Johan Beaston, Jim Kahn: An 8741A/8041A Digital Cassette Controller, Application Note AP-90, May 1980, Intel Corporation.

 外部リンク 

 MCS-48 - try's pageの一部。命令セットなども詳しく説明されている。
 MCS-48 family architecture (PDF)
 Coprolite 8048 Projects
 The PS/2 Keyboard Interface - PS/2キーボードインターフェースの解説（英語）。

 脚注 

 参考文献 


Category:マイクロコントローラ
8048