Micro Channel architecture

**Micro Channel architecture** （マイクロチャネルアーキテクチャ、**MCA**、エムシーエー） または**Micro Channel**は1987年にIBMが開発した、CPUのアーキテクチャに依存しない16ビット/32ビットの高速バスアーキテクチャである。

Micro ChannelはISAの問題点を全て解決する為に設計されたバスアーキテクチャで、IBM PS/2、AS/400、RS/6000、System/370などの一部のモデルで採用された。

## 開発の経緯
### ISAの問題点
ISAは、遅いバススピード、割り込み数の不足、バスマスタリング機能の欠如、貧弱なグランドによる信号保護の不足、XTバスを拡張したが故の無秩序で非合理的な信号線の配列等、多数の問題点を抱えていた。これらの問題の大部分は、初期のMS-DOSを使用する限りにおいては問題とならなかったが、周辺機器の性能向上や、マルチタスクへの欲求とともに問題点が浮上してきた。

もう一つの問題は、ISAが 8088に強く依存した構造を持つことであった。ISAカードは他のアーキテクチャではそのままではまともに動作しないであろう。

最後の問題は、IBMがパーソナルコンピュータ（パソコン）のハードウェア市場の主導権を失っていたことである。誰でもISAカードを作って、誰でもコンピュータの中にそれを導入することが出来たが、誰もISAカードの互換性に関して保証を行っていなかった。

### 主導権の奪還
IBMは既にデスクトップパソコンでのRISC CPU採用を検討しており、全てのラインナップで同一のバスアーキテクチャが使用できれば大幅なコストの削減が可能であると判断していた。そこで、新しい標準を作り、仕様の使用にライセンス契約を必要とする事で、IBMはハードウェア市場の主導権を取り戻すことが出来ると考えた。これが、彼らが当時存在した高速バスアーキテクチャであったNuBusを採用せずに大金をかけてMicro Channelを作成した理由であった。

## 仕様

Micro Channelは本来32ビットのバスであるが、PS/2のようなインテル16ビットCPUベースのマシン等での使用の際のコネクタとロジックの価格を下げるため、16ビット版もサポートした。16ビット版のMicro Channelカード(Micro Channelではアダプターと呼ぶ)は、16ビットのMicro Channelスロットまたは32ビットのMicro Channelスロットに、32ビット版のMicro Channelカードは32ビットのMicro Channelスロットのみに、挿入し使用することができた。Micro Channelは信号の干渉を最小限に抑えるため、ピン配置を最適化し、信号線の周囲には必ずアースと電源供給線が配置された。

### バス転送速度
バスクロックはISAの8.33MHzから10MHzへとほんの少しだけ増やされただけだが、バスサイクルの見直しによるタイミングの切り詰め、データ幅の拡大、DDR化、アドレスバスとデータバスを併用した64bit転送を行っているため、データ転送スループットは理論最大40Mbytes/sec～160Mbytes/secと帯域幅はISAの実に5倍～20倍に増大している。

後の32bit 33MHzのPCIでは理論最大データ転送速度が133Mbytes/secであることから、Micro Channelは非常に効率のよいバスプロトコル設計が為されていたと言えよう。

### バスマスタと高度なバス調停機能
カード、メモリ間のみならず、カード、カード間のバスマスタ転送にも対応し、当然ながらCPUは一切それに関与しない。これは、バスマスタ要求の競合と言う事態を発生させ得るが、Micro Channelでは12ms単位でバス調停を行い、最も優先順位の高い処理にバスマスタを許すことで解決している。

この調停機構の存在により、非常にスループットの高いバス使用が可能となり、Micro Channelは他のシステムの介入無しにシステムCPUのスピードより高速にデータを転送することが出来た。

### POS(Programmable Option Select)
Micro Channel最大の特徴は**POS** (Programmable Option Select) と呼ばれるソフトウェアによりリソースを自動設定できることである。おかげで、ISAでのディップスイッチなどを使用した地獄のような設定作業から逃れることが出来た。今日の Plug and Playの始祖ともいえる。

### 割り込みの共有
Micro Channelの割り込みはISAのエッジトリガ割り込みではなくレベルトリガ割り込みを採用しており、1本の割り込み線で複数の割り込みを処理することが可能である。これは、後のPCIに似た仕組みで、割り込みレベルがHIになったとき、デバイスドライバが各Micro Channelデバイスがファームウェアに持つ固有のIDを順に調べて行き、割り込みを要求しているデバイスの処理を行うことで実現している。

## 採用
Micro Channelは以下のコンピュータで採用された。
*IBM
**IBM PS/2の上位・中位モデル (下位モデルや後のPS/1ではXTバスやATバスを継続した）
**PS/55（1987年のS/T/Vモデル以降。PS/55noteは内部ATバス。）
**UNIXサーバのRS/6000
**小型メインフレームの一部モデル(:en:PC-based IBM-compatible mainframes)
*IBM以外
**タンディの一部のサーバー
**ALRの一部のサーバー
**三菱電機のApricotシリーズ

## 衰退
Micro ChannelはISAの欠点を無くすために徹底的に改良を加えたものであったが、IBMが販売するハードウェアにのみ搭載された。そして、EISAやXTバスアーキテクチャと同時に使用できないように、全く互換性の無いものであった。

IBMはライセンス料金を下げるなどの対策を取らなかったため、Tandy・ALR・三菱電機などサーバ専門の一部の互換機メーカーのみにしか採用されず、Micro Channelは非常に小さなマーケットのまま高価格の製品に搭載されるのみとなった。

IBMのPS/2（日本ではPS/55）は主に企業向けの上位・中位機種ではMicro Channelを採用し続けたが、低価格シリーズではPS/1とPS/ValuePoint(日本ではPS/V)にてATバスに回帰し、上位・中位機種もIBM PC 700/300シリーズの中でMicro ChannelからPCIに移行した。その後、RS/6000もMicro ChannelからPCIに移行し、Micro Channelは市場から姿を消した。

## 参考文献
*IBM PS/55・ハードウェア ハードウェア・インターフェース技術解説書、日本アイ・ビー・エム、オーム社、1990年、ISBN 9784274076268

## 関連項目
*Extended Industry Standard Architecture (EISA)
*Industry Standard Architecture (ISA)
*Peripheral Component Interconnect (PCI)
*XTバス
*VESA ローカルバス
*98ローカルバス
*New Extend Standard Architecture (NESA)
*Accelerated Graphics Port (AGP)
*PCI Express