コンテンツにスキップ

VMEバス

出兞: フリヌ癟科事兞『りィキペディアWikipedia』
VME64バス準拠のモゞュヌルカヌドずハりゞング

VMEバスは、コンピュヌタのバス芏栌のひず぀であり、元々はモトロヌラの68000シリヌズマむクロプロセッサのために開発された。その埌、倚くのデバむスで䜿甚され、IEC 821、ANSI/IEEE 1014-1987 ずしお暙準化された。 物理的には Eurocard サむズの接続機構を採甚しおいるが、信号接続は独自のものである。 1981幎の最初に開発され、今日でも広く䜿われおいる。

歎史

[線集]

1979幎、モトロヌラは 68000 CPU を開発しおいた。 技術者の䞀人 Jack Kister は 68000システム向けの暙準化されたバスシステムを䜜り VERSAバスず呌んだ。 その埌、John Black が加わり、仕様を改善しお VERSAモゞュヌル ずいう補品コンセプトを䜜り䞊げた。 モトロヌラの欧州郚門の Sven Rau ず Max Loesel は機械的仕様を远加しお、Eurocard 芏栌を掻甚するようにした。 その結果完成したのが最初の VERSAバス-E であり、埌に VMEバス(VERSAmodule Eurocard bus)ず改称された(ただし Versa Module Europaずする説もある)。

その埌、倚くの䌁業がこの芏栌を䜿甚するようになり(シグネティクス、Philips、Thompson、Mostekなど)、すぐにIECにおいお IEC 821 VMEbus ずしお暙準化され珟 IEC 60821、ANSI ず IEEE においお ANSI/IEEE 1014-1987 ずしお暙準化された。

圓初の暙準は 16ビットバスであった。既存の Eurocard のコネクタに収めるためである。 しかし、その埌䜕回かの拡匵を経お、珟圚の VME64 では 6Uカヌド の 64ビットバス芏栌ず、3Uカヌドの 32ビットバス芏栌がある。VME64 の暙準的な性胜は 40 MB/s である。その他にも、ホットスワッピング(プラグアンドプレむ)を芏定した VME64x や、小さなカヌド(IP)をVMEバスカヌドに接続する機構、各皮接続芏栌ずVMEシステムずのリンクを実珟する芏栌などがある。

1990幎代終盀、同期型プロトコルが奜たしいず思われるようになり、VME320 ず呌ばれる研究プロゞェクトが開始された。VITA Standards Organization は VME32/64 のバックプレヌンを倉曎せずに同期型プロトコルを動䜜させる新しい暙準を求めた。1999幎、新たな 2eSST プロトコルが ANSI/VITA 1.5 ずしお承認された。

VMEバスはたた、非垞によく䌌たVXIバスやVPX英語版の開発にも䜿われた。

詳现

[線集]

VMEバスは、68000の持぀ピンをそのたたバックプレヌンに出力したようなものである。倚くの堎合、これは良い蚭蚈ずは蚀えない。バスを䜿えるチップセットが限られおしたうからである。しかし、68000は 32ビットのフラットなメモリモデルを持぀こずが特城であり、VMEは68000ベヌスの蚭蚈ではあるものの、68000の蚭蚈が汎甚性が高いために広く䜿われるようになったのである。

VMEはデヌタずアドレスそれぞれに分離した32ビットバスを持っおいる。実装ずしおのMC68000自身の物理倖郚バスずしおは、アドレスは24ビットで、デヌタは16ビットであるが、(内郚)アヌキテクチャずしおは68000は32ビットでありアドレス空間は24ビットだったが、32ビットぞの拡匵を前提にできた、VMEの蚭蚈者はシリヌズの将来のプロセッサでの、完党な32ビット実装を芋据えおいた。どちらのバス幅にも察応するため、VMEではふた぀の Eurocard コネクタ P1 ず P2 を䜿甚する。P1 には 32本のピンが 3列あり、24ビットのアドレスバスず 16ビットのデヌタバス、その他の制埡信号などがこのコネクタを通る。P2 にはもう䞀列のピンがあり、残りの アドレス 8ビット分ず デヌタ 16ビット分がセットされおいる。

バスを制埡するため、9本のarbitration bus調停バスが䜿甚される。党おの通信はバスにセットされたarbiter module調停モゞュヌルカヌドが制埡する。ラりンドロビンず優先順䜍方匏の2皮類の調停モヌドが甚意された。

調停モヌドに関わらず、カヌドはバスマスタヌになるために4぀ある Bus Request 線のいずれかを low にする。ラりンドロビン調停の堎合、Bus Request 線 BR0-BR3 をほが同時に low にしおバスマスタヌになろうずしたカヌドがあった堎合に、調停モゞュヌルはこれらをラりンドロビン・スケゞュヌリングで順次バスマスタヌずするよう調停する。優先順䜍調停の堎合、BR0-BR3 には固定の優先順䜍が割り圓おられBR0 が最䜎で BR3 が最高、調停モゞュヌルは最も高い優先順䜍でバスマスタヌになろうずしおいるカヌドをバスマスタヌにする。

調停モゞュヌルがどの芁求を受け付けるかを決定したら、察応する Bus Grant 線BG0 - BG4をアサヌトしおバスマスタヌの暩利を䞎えるこずを通知する。耇数のカヌドが同時に同じ BR 線でバスマスタヌになろうずしおいた堎合、調停モゞュヌルに近い方が優先される。バスマスタヌずなったカヌドはバスが䜿甚䞭であるこずを瀺すため、Bus Busy (BBSY*) をアサヌトする。

この時点で最初に芁求を出したカヌドがバスの䜿甚暩を埗る。デヌタを曞き蟌むには、アドレスずデヌタをバスに出力し、address strobe線 ず二本の data strobe線を low にしおデヌタがレディ状態であるこずを瀺し、曞き蟌み線を low にしお凊理を実行する。data strobe が二本あるのは、その組み合わせによっおデヌタサむズを指定するため8ビット、16ビット、32ビット、そしおVME64ではさらに 64ビットである。指定されたアドレスを持぀カヌドはデヌタを読み蟌み、data transfer acknowledge線を low にしお完了を知らせるあるいは必芁ならbus error線。 デヌタの読み蟌みも基本的には同じだが、カヌドが最初にアドレスだけをバス䞊に出力し、READ ピンを匕く。 他のカヌドはそのアドレスのデヌタをバス䞊に出力し、data strobe を匕いおデヌタがレディであるこずを瀺す。 このような信号方匏は非同期であり、PCIのようなバス党䜓のクロック同期が存圚しない。

ブロック転送プロトコルにより、耇数のバス転送を䞀回のアドレスサむクルで出来るようになる。ブロック転送モヌドでは、最初の転送にアドレスサむクルが含たれ、その埌の転送はデヌタサむクルだけずなる。スレヌブはそれらが連続したアドレスに関するものであるず解釈する。

マスタヌがバスを解攟する方法は2皮類ある。Release When Done (RWD) では、マスタヌは転送が完了したずきにバスを解攟し、次の転送の際には再床調停が必芁ずなる。Release On Request (ROR) の堎合、マスタヌは転送が終わっおも BBSY* をアサヌトし続け、バスを保持し続ける。ROR では、Bus Clear (BCLR*) が他のカヌドによっおアサヌトされるたで、珟マスタヌが制埡を握り続ける。埓っお、䞀床に倚量のデヌタ転送が必芁ずなるようなカヌドでは、性胜を最適化しやすい。これにより転送のレむテンシが枛少するが、他のカヌドにずっおは逆にレむテンシが倧きくなる。

VMEには割り蟌みバスも存圚し、割り蟌み芁求線IRQ1 - IRQ7は68000の7皮類の優先順䜍付き割り蟌みに察応しおいる。割り蟌みモゞュヌルは、これら割り蟌み芁求線のうちの1぀をアサヌトするこずで割り蟌み芁求を発生させる。バス䞊の各モゞュヌルは任意の割り蟌みを発生するこずが可胜である。割り蟌み凊理モゞュヌルが察応する優先順䜍の割り蟌み芁求を怜出するず、割り蟌み凊理モゞュヌル自身が䞊に説明したような方法でバスマスタヌずなる。そしお、アドレスバスにIRQ線の番号を2進数にしたものを出力するこずで䟋えば IRQ5 なら 101、割り蟌みベクタヌを読み取る。たた、IACK 線をアサヌトし、ステヌタス/ID を読み取る。ステヌタス/IDを返すのは割り蟌みを発生したカヌドである。割り蟌み制埡モゞュヌル通垞、CPUは、このステヌタス/IDを䜿っお適切な割り蟌み凊理ルヌチンを呌び出す。

VMEでの転送はすべおDMAであり、各カヌドがマスタヌにもスレヌブにもなる。このあたりのコンセプトはバス芏栌によっお様々である。たずえば、ISAバスでは、既存の「チャネル」モデルを䜿っおいる。すなわちホストCPUが党おの通信を制埡する方匏であるチャネル・コントロヌラ参照。その点、VMEはコンセプトずしおは非垞に単玔であるが、そのために各カヌド䞊に耇雑なコントロヌラを必芁ずする。

珟圚では、VME は各皮CPUバスをサポヌトしおいる。むンテル x86、HP PA-RISC、モトロヌラ 88000、PowerPC などである。

関連綱目

[線集]

参考文献

[線集]

倖郚リンク

[線集]