VMEバスの詳細解説
VMEバス(Versa Module Eurocard bus)は、主に
モトローラ(現NXPセミコンダクターズ)の68000シリーズ
マイクロプロセッサ向けに開発されたコンピュータバス規格です。その誕生から現在に至るまで、幅広い分野で利用され続けています。ここでは、VMEバスの歴史的背景、技術的な詳細、関連規格について解説します。
VMEバスの歴史
開発の起源
1979年、
モトローラが68000
CPUを開発していた頃、技術者のJack Kisterが68000システム向けの標準バスシステムとして「VERSAバス」を考案しました。その後、John Blackが加わり、仕様を改善し「VERSAモジュール」という製品コンセプトを確立。さらに、
モトローラの欧州部門のSven RauとMax Loeselが、Eurocard規格に準拠した機械的仕様を追加し、最初の「VERSAバス-E」が誕生しました。これが後にVMEバスと改称されました。
標準化
VMEバスは、その汎用性の高さから多くの企業に採用され、IEC(
国際電気標準会議)で「IEC 821 VMEbus」(現IEC 60821)、ANSI(米国規格協会)と
IEEE(米国電気電子学会)で「ANSI/
IEEE 1014-1987」として標準化されました。当初は16ビットバスでしたが、幾度かの拡張を経て、現在のVME64では6Uカードの64ビットバス規格と、3Uカードの32ビットバス規格が存在します。
拡張と発展
その後、
ホットスワップに対応したVME64xや、VMEバスカードに小型カード(IP)を接続する機構、各種接続規格とVMEシステムを連携させる規格などが開発されました。1990年代後半には、同期型プロトコルのニーズが高まり、VME320と呼ばれるプロジェクトが開始。VITA Standards Organization(VITA)により、VME32/64のバックプレーンを変更せずに同期型プロトコルを動作させる「2eSST」プロトコルが開発され、ANSI/VITA 1.5として承認されました。
VMEバスの詳細
基本設計
VMEバスは、68000のピンをそのままバックプレーンに出力したような構造をしており、データとアドレスを分離した32ビットバスを備えています。
MC68000自身の物理外部バスは、アドレス24ビット、データ16ビットでしたが、VMEバスは68000のアーキテクチャを拡張し、将来のプロセッサを見据えて設計されました。
コネクタとバス幅
VMEバスでは、2つのEurocardコネクタP1とP2を使用します。P1には、24ビットの
アドレスバス、16ビットのデータバス、および制御信号が通ります。P2には、残りのアドレス
8ビットとデータ16ビットが割り当てられています。
バス調停
バス制御には9本の調停バスが用いられ、バスに接続された調停モジュールカードが通信を管理します。ラウンドロビン方式と優先順位方式の2つの調停モードがあり、カードは4つのBus Request線(BR0〜BR3)のうちのいずれかをlowにしてバスマスターになることを要求します。調停モジュールは、要求のあったカードにBus Grant線(BG0〜BG4)を通してバスマスターの権利を与えます。
データ転送
データを書き込む際には、アドレスとデータをバスに出力し、アドレスストローブ線と2本のデータストローブ線をlowにしてデータの準備が完了したことを示します。データストローブ線は、データサイズ(
8ビット、16ビット、32ビット、VME64では64ビット)を指定するために使われます。データを読み込む場合は、カードがまずアドレスをバス上に出力し、READピンを引きます。そして、他のカードが指定されたアドレスのデータをバス上に出力し、データストローブを引いてデータの準備完了を通知します。
転送プロトコル
VMEバスの転送は非同期で行われ、PCIバスのような全体のクロック同期は存在しません。ブロック転送プロトコルを使用することで、複数のバス転送を1つのアドレスサイクルで行うことができ、転送効率を向上させています。また、マスターがバスを解放する方法には、Release When Done (RWD) と Release On Request (ROR) の2種類があり、用途に応じて使い分けることが可能です。
割り込み処理
VMEバスには割り込みバスも備わっており、割り込み要求線(IRQ1〜IRQ7)は68000の7種類の優先順位付き割り込みに対応しています。割り込み処理モジュールが割り込み要求を検出すると、バスマスターとなり、割り込みベクターを読み取り、適切な割り込み処理ルーチンを呼び出します。
DMA転送
VMEバスでは、全ての転送がDMA(ダイレクトメモリアクセス)で行われ、各カードがマスターにもスレーブにもなれます。この点は、ISAバスのようなホスト
CPUが全ての通信を制御するモデルとは大きく異なります。
現在の状況
現在では、VMEバスはインテルx86、HP
PA-RISC、
モトローラ88000、
PowerPCなど、様々な
CPUバスをサポートしています。
関連規格
参考文献
- - インターフェース 1987年2月号 特集VMEバス・システム完全マスタ
外部リンク