MPUボード はじめに、MPUボードはCPUボードとI/Oボードの2枚で構成されている。 CPUボード(名称 VSBCー1)にはRS232Cとゆうコネクタを2つ搭載していて、それで外部とのデータをやり取りすることができる。 I/Oボード(名称 VIPC310)はロータリーエンコーダボードとIP-Digital48ボードを搭載している。IP-Digital48ボードにはMC68230 PARALLEL INTERFACE/TIMER(PI/T)(50ピンのコネクタ)を搭載していて、それで外部とのデータをやり取りする。 そのため、ここではCPUボードとI/Oボードとに分けて解説していく。 (1)MPUボードの機能解説 [1]CPUボードの機能解説 @特徴 モトローラのMPU 68000は、特別な入出力命令を持たず、I/Oをメモリー空間 に配置するメモリー・マップト方式を採用している。常に16Mバイトのメモ リー空間を一様にアクセスすることができる。68000では、常にCLK入力の10 クロック分のE信号を定期的に出力している。通常68000のデータ入出力 は、E 信号と関係なく非同期に行われている。68000は16ビットCPUでありながら 内部レジスタは、すべて32ビットになっている。又、レジスタは用途に関し てあまり制限の少ない汎用レジスタ方式を採用しているので、レジスタ間の データ転送などの回数を減らすことができる。 Aレジスタ 68000のレジスタは、データレジスタ Dn(n:0〜7)、アドレスレジスタ An(n:0 〜7)、ステータスレジスタSR、プログラムカウンタPCがある。データレジ スタ・アドレスレジスタのうち用途が決まっているのは、スーパバイザ用ス タックポインタ(SSP)とユーザ用スタックポインタ(USP)の2本だけ で後は、汎用レジスタとして使うことができる。SSP・USP共にA7割り当 てられていて、どちらを使うかはSRの内容(Sビット)によって決まる。 Bスーパバイザステートとユーザステート 68000は、システムプログラムが資源管理などの操作をすることができるよう に、実行時の状態をスーパバイザステートとユーザステートに分けて、幾つか の命令は、スーパバイザステートでしか実行できないようにしている。これら の命令は、特権命令と呼ばれSRの変更や割り込み処理に関する命令郡がこれ に属する。 C68000が扱えるデータ型 68000は、1、4、8、16、32ビット長のデータを取り扱うことができる。 これらの内容としては、ビットデータ、二進化十進数、バイトデータ、ワードデータ、 ロングバイトデータを持つことができる。データレジスタは、4種類のデータを保持 することができるが、アドレスレジスタは、16ビット、32ビットを単位として扱う。 D例外処理 例外処理VECTORは、CPUが例外処理ルーチンのアドレスを得る為に0〜 255番までの256種類が用意され、0番地から3FF番地までの1Kバ イトに配置されている。このため必要とする応じた例外処理プログラムの先 頭番地をVECTOR TABLEに書き込んでおかなければならない。 Eバスインターフェイス機能 68000のバスインターフェイスの大きな特徴は、非同期式インター フェイスである。この非同期式インターフェイスは、バスクロックを持たな い。そのかわりバスサイクルの終了はI/O側からの応答信号(DTACK バー、Data Transfer Acknowledge)によって行 われる。この方式は多少の回路の増大はあるものの、システムの融通性が増 すので、16ビットシステムとしては適切なものである。68000は、更 に同期式インターフェイスモードに切り替えて従来よりも開発されている。 8ビット周辺LSIをも接続できる。8ビット周辺LSIは16ビットシス テムにおいても重要なI/O機器を接続可能にする。 F 68000MPUの端子機能 1.アドレスバス(A1〜A23) A1〜A23の23本のアドレスバスがある。端子としては23本あるが、 後述のUDSバー,LDSバーの信号線と合わせて24ビットのアドレス信 号により16Mバイトのメモリ空間をアクセスすることができる。16進表 示で$000000番地から$FFFFFF番地となる。 2.データバス(D1〜D15) 16ビットの双方向性バスで一度に16ビットのデータを転送することが できる。場合によっては上位8ビット(D8〜D15)だけを使ったり、下 位8ビット(D0〜D7)だけを使うこともできる。32ビットのデータ転 送は16ビットずつ2回に分けて行われる。68000では32ビットデー タをロングワード、16ビットデータをワード、8ビットデータをバイトと 呼んでいる。 3.非同期制御信号(ASバー,R/Wバー,UDSバー,LDSバー,DTACKバー) メモリとの接続やデータ転送において最も基本的な信号であり、DTACK バーを除く信号は同期式のデータ転送にも使われる。 ASバー(Adress Strobe)はアドレスバス上に有効なアドレス が確定していることを示し、同時にMPUがメモリ(あるいは周辺LSI)をア クセスしていることも示している。 R/Wバー(Read/Write)はデータ転送の方向を示しており、Hで リード、Lでライトである。 UDSバー,LDSバー(Upper Data Strobe,Lower Data Strobe)はデータ転送をワードサイズで行うか、バイトサイズで 行うかを示す。UDSバーは上位8ビット、LDSバーは下位8ビットに対応し ている。両方の信号がアサートされればワードデータ、UDSバーとLDSバー が単独でアサートされればそれぞれ上位8ビットのみ、下位8ビットのみとのる。 DTACKバー(Data Transfar Acknowledge)は非 同期バスを代表する特徴的信号である。MPUはこの信号が外部から入力される までデータ転送のサイクルを終了しない。DTACKバーが早く入力されれば リード/ライトのサイクルは早く終わり、遅ければ遅く終わる。つまり外部デバ イス(メモリや周辺LSI)のスピードに応じて早くも遅くも自由に調節でき効 のよいデバイスを構成することが可能になる。設計者はこれらのことを考慮して DTACKバー発生の回路を作成しなければならない。 4.68000周辺制御信号(E,VMAバー,VPAバー) 68000MPUを使ったシステムに、従来の8ビットMPU(6800や6 809)で使っていた周辺LSIを接続するための端子である。8ビットMPU 用の周辺LSIは同期式データ転送を行っている。そのためE,VMAバー,V PAバーを使って同期式データ転送ができるようになっている。 E(Enable)は同期式データ転送におけるクロックとして働き、Eの立 下がりに同期してデータ転送が行われる。6800のクロックΦ2信号、6809のE信号に相当する。 VMAバー(Vaild Memory Adress)は68000が同期 式でデータ転送をしていることを示す信号で、周辺LSIはVMAバーがアサー トされている期間のEの立下がりを使わなければならない。6800のVMAに相当する信号である。 VPAバー(Vaild Peripheral Adress)はMPUに 対して同期式データ転送を要求する信号である。したがって同期式データ転送が 必要なデバイスがアクセスされたとき、VPAバーをアサートしてやればよい。 MPUはメモリや周辺LSIをアクセスしたときには、そのデータが同期式であ るか非同期式であるかはわからない。DTACKバーが入力されれば非同期式であり、 VPAバーが入力されれば同期式である。 5.割り込み入力端子(IPL0バー〜IPL2バー) 68000は優先順位のついた七つの割り込み(レベル1〜レベル7)を使う ことができる。優先度はレベル1がもっとも低くレベル7がもっとも高い。また レベル7はNMI(Non Maskable Interrupt)として働く。 IPL0バー〜IPL2バーの3本を使って(000)2〜(111)2に コード化した割り込み信号を入力する。(000)2は割り込み要求のない状態である。 6.バスアービトレーション制御(BRバー、BGバー、BGACKバー) バスアービトレーションとはバスの配分であり、MPU以外にバスを使うデバイスがある場合 バスを使う権利(バスマスタ権)のやりとりをするための信号である。 BRバー(Bus Request)はMPU以外のデバイスがMPUに対し てバスマスタ権を要求する信号である。 BGバー(Bus Grant)はBRバーに対する対応信号であり、MPU は次のバスサイクルでバスマスタ権を放棄する。(つまり外部デバイスがバスマ スタとしてバスを使える)ことを意味する。 BGACKバーはBGバーを受けた外部デバイスが現在バスマスタとしてバス を占有していることをMPUと他の外部デバイスに知らせる信号である。これら 3本の制御信号を使うことにより効率のよいバスマスタ権の受渡しが行われる。 7.プロセッサステータス(FC0〜FC2) MPUがどのような状態で動作しているのかを知らせる信号である。スーパバ イザ状態かユーザ状態か、データのアクセスか命令のフェチか、また割り込み信 号を受付けた状態等を3ビットにコード化して出力している。 8.システムコントロール(BERRバー,RESバー,HALTバー) BERRバー(Bus Error)はデータ転送に異常があるMPUに知ら せる信号である。MPUはBERRバーがアサートされると現在のバスサイクル を中断し、バスエラー例外処理を実行する。 RESバー(Reset)は通常、入力端子として働きシステムリセットを行う。 ただしRESET命令を実行したときは出力端子として働きリセット端子に 接続された外部デバイスのリセットを行う(MPUはリセットされない)。 HALTバー(Halt)は通常、入力端子として働きMPUのホールトに使 われる。HALTバー信号がアサートされるとMPUは現在のバスサイクルを終 了後ホールトされる。ホールト状態では、アドレスバス、データバスはスリース テート状態、R/Wバー,ASバー,UDSバー,LDSバーは”H”になる。 HALTバー端子が出力として動作するのは二重バス障害(ダブルバスフォールト) が発生したときである。二重バス障害とはバスエラーが続けて2回起こることであり 、MPUは自らホールト状態に入り、リセット以外では回復できない。 9.その他の信号(CLK,Vcc,Vss) CLK(Clock)はMPUが動作する基本となるクロック状態であり、 一定の周期をもっていなければならない。またいかなる場合にも止まってはならない。 最高周波数はバージョンにより6.0,8.0,12.5MHzのものがある。 いずれのバージョンでも最低周波数は4.0MHzである。 Vcc(電源)、Vss(設置)は各2ピンある。これはLSIのチップ内で の電位を安定に保つためであり、2ピンとも接続しなければならない。 (2)I/Oボードの機能解説 @VIPC310の構造描写 VIPC310は、基準寸法のI/O構成成分の種のIPの一部である。IPキャリアとして VIPC310は機械的な支援と、電気的な接合を、2つのシングルハイトIPか、1つのダブルハイト IPに供給する。VIPC310の外観図は、次ページ図1である。 インプット/アウトプット、メモリ、割り込みの働きを持つ。ボード上でのバッテリーによるバック アップが可能である。 VIPC310は、3U(シングルハイト)の要素によってVMEbus Specification C.1(IEEEによ り、P1014/D1.2または、IEC821busとしても知られている。)と結合する。IPキャリア は、 DMAボードや、68020処理装置を乗せると(6U(ダブルハイト)でも可)様々な機能を利用できる。 IPキャリアは、他の標準的なIndustrybusでの利用もできる。 VIPC310は、IP Logicの接合方法に従う。IPは互いに、VIPC310の前面を通って 50ピンのフラットケーブルによって接合される。二つのIPは、"A"及び"B"と名付けられている。 インタフェースの接合は、基準寸法で、ケーブルでつながれたシステムであれば、IPキャリア上にディレクトリを添え付けられる。 接合ケーブルルは、VMEのシャーシから、VIPC310を動か さずに、差し込み、引き抜きができる。 IPはI/Oからの信号に依らずに、ON/OFFができる。 どんなときでも、IPは、グリーンフロントパネルの指示器が点灯していれば、VMEbusから、 アクセスされる。二つの表示器があり、一つづつ、相互のIPに用いられる。どのアクセスに対しても、 活動の指示を明確にする為に、一つ又は複数の関係のあるLEDを点灯させる(約三分の一秒間)。 ボード上のリチウムバッテリは、こういった機能を利用するIPの為のバックアップ用として用いられる。 尚、バッテリは、VMEbus+5 又は、STDBYラインかを選択して使用できる。 通常、バッテリの補佐作用は、 スティックRAMと、日時計に使用される。 IPのI/Oは、VMEbusA16/D16空間中に位置する。使用者と、管理者のアクセスは共に、読み取り、 修正、書き込み(テスト/セット)の作業を受ける。相互のIP上にあるI/O空間は、IPの詳細書によって、 16ビットのワードが64個と決められている。相互のIPが、64語を占有するPROMの搭載ができる。こうして、二つのIPのA及びBは、ShortI/O 空間のVMEbusシステムの64[KB]中、512バイトを占有する。 割り込みは、全面的に、指示を受ける。相互のIPは、二つに分割された割り込み要求により、 動作を行う。VIPC310は、VMEbusのIRQ1,3,4,6の支援をする。割込 み要求を受けた相互のIPは、自身に8ビットのVECTORを供給しなければならない。こ のVECTORは、VMEbusに受け取りを知らせるサイクルで、割込みバス間に供給される。 VIPC310は、VMEbusBERRの操作を受けない。ソフトウェア上の、意味の無いアクセスは、 動作していないCPUボード上の停止回路バスによって、停止される。 パワーアップ、パワーダウン、バスリセット関数は、全面的にサポートされている。 VIPC310は、5,12,-12[v]の電源をLC piフィルタを通して、相互のIPに供給する。 これは、精密なディジタル作用とともに、アナログの使用を可能にしている。 AI/Oアドレスの設定法 VIPC310上のI/Oのアドレス設定法は、二つの要素により決まる。一つは、ボードのベースアドレスである。二つめは、サブスペースに要求されるアクセスと、IPのオフセットであ る。 ベースアドレスの設定方法は、以下で説明する様に、四つのサブスペースと、それら のオフセットによって決められる。 VIPC310は、VMEbusの"Short I/O又は、A16/D16空間中に、512バイトを占める。 これは、IP空間と、相互のIPのI/O間の16ビット*64ワードからなっている。ボードのベースアドレスは、 八個のシャント及び、ジャンパーによって設定される。このブロック配置の模様は、図3に示されている。 シャントは接合されると、アドレスラインに"0"を与える。シャントは開放されると、アドレスラインに"1"を与える。 例えば、7つのシャントの全てが接合された時には、$0000と言うベースアドレスが創造される。 7つのシャントの全てが開放された時には、$FE00と言うベースアドレスが創造される。アドレスラインに対するシャントの位置の関係は、図2のチャートに示されて いる。 I/Oのベースアドレスのシャントは、メモリが使える状態であれば、VIPC310によってメモリーベースアドレスの選択もできる。 例えば、I/Oのベースアドレスを$6000(A16空間中)とするなら、メモリーベースアドレスは、$600000(A24空間中)となる。 より多くの情報を得るために、"メモリーのアドレス設定法"と言う項目を参照してください。 VIPC310では、次項図3に示される様に、I/Oベースアドレスに、$6000をセットしたものが送信される。 VIPC310がVMEbus空間のA16中に占める512バイトは、四つのサブスペースに分割される(図4参照)。 相互のIPは、128バイト(&H$80バイト)のI/O空間に一語16ビットの空間を64個持つ。大半のIPは、 ロウオーダーの時や奇数バイトでのみ使用される。これらのIPによってバイトは、$1,$3等のオフセットの位置をアクセスする。 このI/Oの奇数バイトは標準型のVMEbusと68000等の演算処理装置で与えられる。大半のIPは、 I/O空間に割り当てられた全てのバイトを使用することはできない。 相互のIPは、使用していないバイトでデコードをすることが出来る場合もある。 使用していない空間へのアドレス指定は、回路的なCPUバスタイムアウトを侵害することから VMEbus BERRを起こすだろう。もしこのCPUの機能を止めたいならば、使用してい ない空間へのアドレス指定をする時や、IPの空間にに差し込まない時、VMEbusは"ハング"する。
図1 I/Oアドレスシャント割り振り I/Oのベースアドレスのシャントは、メモリが使える状態であれば、VIPC310によってメモリーベースアドレスの選択もできる。 例えば、I/Oのベースアドレスを$6000(A16空間中)とするなら、メモリーベースアドレスは、$600000(A24空間中)となる。