CPU2
1、1 特徴
1、2 レジスタ
1、3 スーパバイザステートとユーザステート
1、4 68000が扱えるデータ型
1、5 例外処理
1、6 バスインターフェイス機能
1、7 68000MPUの端子機能
1、1 特徴
モトローラのMPU68000は、特別な入力命令を持たず、I/Oをメモリー空間に配置するメモリーマップト方式を採用している。つねに16Mバイトのメモリー空間を一様にアクセスすることが出来る。68000では常にCLK入力の10クロック分のE信号を定期的に出力している。通常68000のデータ入出力は、E信号と関係なく非同期に行われている。68000は16ビットCPUでありながら内部レジスタは、すべて32ビットになっている。また、レジスタは用途に関してあまり制限の少ない凡庸レジスタ方式を採用しているので、レジスタ間のデータ転送などの回数を減らすことが出来る。
1、2 レジスタ
68000のレジスタは、データレジスタDn(n:0to7)、アドレスレジスタAn(n:0to7)、ステータスレジスタSR、プログラムカウンタPCがある。データレジスタ、アドレスレジスタのうち、用途が決まっているのは、スーパバイザ用スタックポインタ(SSP)とユーザ用スタックポインタ(UST)の2本だけであとは、凡用レジスタとして使うことが出来る。SSP、UST共にA7割り当てられていてどちらを使うかはSRの内容(Sビット)によって決まる。
1、3 スーパバイザステートとユーザステート
68000は、システムプログラムが資源管理などの操作をすることが出来るように、実行時の状態をスーパバイザステートとユーザステートに分けて、幾つかの命令はスーパバイザステートしか実行できないようにしている。これらの命令は特権命令と呼ばれSRの変更や割り込み処理に関する命令群がこれに属する。
1、4 68000が扱えるデータ型
68000は1、4、8、16、32ビット長のデータを取り扱うことが出来る。これらの内容としてはビットデータ、2進化10進数、バイトデータ、ワードデータ、ロングバイトデータを持つことが出来る。データレジスタは4種類のデータを保持することが出来るが、アドレスレジスタは16ビット、32ビットを単位として扱う。
1、5 例外処理
例外処理とは、MRUが異常と判断することにより、MPUが発生するものがあるが、リセットや割り込み、さらにトラップ命令に対しての処理も例外処理として分類されている。どの場合にも例外処理は定められたベクターをフェッチし、ベクタに書かれたアドレスから命令を実行することにより開始します。
1、6 バスインターフェイス機能
68000のバスインターフェイスの大きな特徴は非同期式インターフェイスである。この非同期式インターフェイスは、バスクロックを持たない。その代わりバスサイクルの終了はI/O側からの応答信号(DTACKバー、Date Transfer Acknowledge)によって行われる。この方式は多少の回路の増大があるものの、システム融通性が増すので16ビットシステムとしては適切なものである。68000は更に同期型インターフェイスモードに切り替えて、従来よりも開発されている。8ビット周辺LSIにも接続できる。8ビット周辺LSIは16ビットシステムにおいても重要なI/O機器を接続可能にする。
1、7 MPU68000の端子機能
- アドレスバス(A1 to A23)
A1 からA23の23本のアドレスバスがある。端子としては23本あるが、後述のUDSバー、LDSバーの信号線と合わせて24ビットのアドレス信号により16Mバイトのメモリ空間をアクセスすることが出来る。16進表示で$000000番地から$FFFFFF番地となる。
- データバス(D1 to D15)
16ビットの双方向性で1度に16ビットのデータを転送することが出来る。場合によっては上位8ビット(D8 to D15)だけを使ったり、下位8ビット(D0 to D7)だけを使うことも出来る。32ビットのデータ転送は16ビットずつ2回に分けて行われる。68000では32ビットデータをロングワード、16ビットデータをワード、8ビットデータをバイトと呼んでいる。
- 非同期制御信号(ASバー,R/Wバー,UDSバー,LDSバー,DTACKバー)
メモリとの接続やデータ転送において最も基本的な信号であり、DTACKバーを除く信号は同期式のデータ転送にも使われる。
- ASバー(Adress Strobe)はアドレスバス上に有効なアドレスが確定していることを示し、同時にMPUがメモリ(あるいは周辺LSI)をアクセスしていることも示している。
- R/Wバー(Read/Write)はデータ転送の方向を示しており、Hで リード、Lでライトである。
おり、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バー発生の回路を作成しなければならない。
- 68000周辺制御信号(E、VMAバー、VPAバー)
68000MPUを使ったシステムに、従来の8ビットMPU(6800や6809)で使っていた周辺LSIを接続するための端子である。8ビットMPU用の周辺LSIは同期式データ転送を行っている。そのためE、VMAバー、VPAバーを使って同期式データ転送が出来るようになっている。
E(Enable)は同期式データ転送におけるクロックとして働き、Eの立ち下がりに同期して、データ転送が行われる。68000のクロックΦ2信号、6809のE信号に相当する。
VMAバー(Vaild Memory Address)は68000が同期式でデータを転送していることを示す信号で、周辺LSIはVMAバーがアサートされている期間のEの立ち下がりを使わなければならない。6800のVMAに相当する信号である。
VPAバー(Vaild Peripheral Address)はMPUに対して同期式データ転送を要求する信号である。したがって同期式データ転送が必要なデバイスがアクセスされた時、VPAバーをアサートしてやればよい。MPUはメモリや周辺LSIをアクセスした時には、そのデータが同期式であるか非同期式であるかはわからない。DTACKバーが入力されれば非同期式であり、VPAバーが入力されれば同期式である。
- 割り込み入力端子(IPL0バー〜IPL2バー)
68000は優先順位のついた七つの割り込み(レベル1〜レベル7)を使うことができる。優先度はレベル1がもっとも低くレベル7がもっとも高い。また レベル7はNMI(Non Maskable Interrupt)として働く。IPL0バー〜IPL2バーの3本を使って(000)2〜(111)2に コード化した割り込み信号を入力する。(000)2は割り込み要求のない状態である。
- バスアービトレーション制御(BRバー、BGバー、BGACKバー)
バスアービトレーションとはバスの配分であり、MPU以外にバスを使うデバイスがある場合バスを使う権利(バスマスタ権)のやりとりをするための信号である。
- BRバー(Bus Request)はMPU以外のデバイスがMPUに対してバスマスタ権を要求する信号である。
- BGバー(Bus Grant)はBRバーに対する対応信号であり、MPUは次のバスサイクルでバスマスタ権を放棄する。(つまり外部デバイスがバスマ スタとしてバスを使える)ことを意味する。
- BGACKバーはBGバーを受けた外部デバイスが現在バスマスタとしてバス を占有していることをMPUと他の外部デバイスに知らせる信号である。これら3本の制御信号を使うことにより効率のよいバスマスタ権の受渡しが行われる。
- プロセッサステータス(FC0 to FC2)
MPUはどのような状態で作動しているのかを知らせる信号である。スーパバイザ状態かユーザ状態か、データのアクセスか命令のフェッチか、また割り込み信号を受けた状態等を3ビット2コード化して出力している。
- システムコントロール(BERRバー、RESバー、HALTバー)
BERRバー(Bus Error)はデータ転送に異常があるMPUに知らせる信号である。MPUはBERRバーがアサートされると現在のバスサイクルを中断しバスエラー例外処理を実行する。
RESバー(Reset)は通常入力端子として働きシステムリセットを行う。ただし、リセット命令を実行した入力端子として働きリセット端子に接続された外部デバイスのリセットを行う。(MPUはリセットされない)
HALTバー(Halt)は通常入力端子として働きMPUのホールトに使われる。HALTバー信号がアサートされるとMPUは現在のバスサイクルを終了後ホールトされる。ホールト状態ではアドレスバス、データバスはスリーステート状態、R/Wバー、ASバー、UDSバー、LDSバーはhiになる。HALTバー端子が出力として動作するのは二重バス障害(ダブルバスフォールト)が発生したときである。二重バス障害とはバスエラーが続けて2回起こることであり、MPUは自らホールト状態に入り、リセット以外では回復できない。
- その他の信号(CLK,Vcc,Vss)
CLK(Clock)はMPUが動作する基本となるクロック状態であり、一定の周期をもっていなければならない。またいかなる場合にも止まってはならない。最高周波数はバージョンにより6.0,8.0,12.5MHzのものがある。いずれのバージョンでも最低周波数は4.0MHzである。Vcc(電源)、Vss(設置)は各2ピンある。これはLSIのチップ内での電位を安定に保つためであり、2ピンとも接続しなければならない。
戻る