2. MPUの調査


2.1 68Kのアーキテクチャ

2.1.1 68Kの特徴

68Kには、3つの特徴がある。
第一に、セグメントという概念がない。そのため、常に16Mバイト(224バイト)のメモリ空間を一様にアクセスする事ができる。これは、機器組み込み用のCPUとして大きなメモリ空間があまり問題にならないときに、余計なオーバーヘッドがなく、都合がよい。
第二に、68Kの内部レジスタは全て32ビットになっている。このため、剰余算やアドレス計算が容易に行える。更に、そのレジスタ群は用途についてあまり制限がない汎用レジスタ方式をとっていて、レジスタ間のデータ転送やデータのセーブ・ロードの回数が少なくてすむ。
第三に、68Kはスタックやキューを用いた演算処理ルーチンの記述が容易な命令セットとアドレッシングモードを持っている。これは、CやPascalなどの構造化プログラミング言語の実行に際し、都合がよい。また、汎用レジスタ方式をとっているため、同時に複数個のスタックを管理できる。


2.1.2 68Kのレジスタ群


2.1.3 スーパバイザステート・ユーザステート

68KはOSの存在を前提としているため、システムプログラムが資源管理などの操作をすることができるように、実行時の状態がスーパバイザステートとユーザステートに分かれている。

Fig 2.1 68kのレジスタ構成(28KB)
Fig 2.1 68kのレジスタ構成


2.1.4 68Kのデータ型

68Kは、1ビット(ビットデータ)、4ビット(BCDデータ)、8ビット(バイトデータ)、16ビット(ワードデータ)、32ビット(ロングワードデータ)のデータを取り扱うことができる。


2.2 アドレシングモード

2.2.1 オペランドの種類

ソースオペランド・・・データを供給する。
デスティネーションオペランド・・・データを受け入れる。
ソースがデータそのものに注目しているのに対し、デスティネーションは内容だけでなくその場所にも重要性がある。


2.2.2 オペランドの指定

オペランドとして指定されうるものは、各種レジスタとメモリ内の番地である。こういったものをオペランドとして指定する方法はいくつかあり、これらをアドレシングモードと呼ぶ。
オペランドとしてレジスタを使う際には、単にそのレジスタの名前を指定すればよい。メモリアドレスについては、プログラム実行時にいくつかのレジスタや定数を使ってメモリアドレスを計算し、その値をオペラントとして指定することができる。この時の計算をアドレス計算、計算の結果得られたメモリ番地を実行アドレスという。


2.3 インストラクションセット

68Kの持つ命令セットは、次のように分類できる。

2.3.1 算術演算

算術演算には、加減剰余の他に、比較、クリア、ネゲートなどがある。剰余算には符号ありと符号なしの両方が用意されている。これらの演算は、アドレスに対しては、16又は32ビットでデータに対してはすべてのオぺランドサイズで使用できる。


2.3.2 論理演算

論理演算には、AND,OR,EOR,NOTがあり、前三者については即値を使う命令(ANDl,ORl,EORl)がある。アドレシングモードの指定により、これらわSRをデスティネーションとすることができる。


2.3.3 シフト/ローテート

シフトとローテートは、レジスタに対しても、メモリに対しても実行できる。但し、メモリ内のデータに対しては16ビットオペランドで1ビットのシフトに限られる。


2.3.4 ビット操作

ビット操作はビットテストとテストしたビットに対して行う操作との組みである。


2.3.5 BCD演算

BCD演算は加減算(ABCD)と符号反転(NBCD)がある。一度に扱えるオペランドサイズは8ビットである。


2.3.6 データ移動

ほとんどのデータ移動に関するプログラムはMOVE命令によって行われる。MOVE命令は、ソース、デスティネーションとも6ビットで指定される。


2.3.7 ジャンプ/コール

ジャンプ・コールには、無条件分岐、条件分岐の2つがあり、他にも手続きの呼び出し、手続きからの復帰がある。


2.3.8 システム制御

システム制御の命令には、特権命令、トラップ命令、及びSRのシステムバイトを操作する命令がある。


2.4 制御用68Kボード

種々のアクチュエータ及びセンサー等をコントロールするために小型基盤上(12cm×12cm)に高密度で実装された小型68Kボードである。同時に、バッテリー駆動を前提としているため、ハイスピードC−MOSを使用した省電力型のボードコンピュータである。
図2に示すように、68KボードはMPUボードとI/Oボードの二枚一組で構成されるI/Oコントロール指向のシステム構成となっている。さらに表1に示す80Pマザーバスコネクタにシステムバスを開放しているため、必要に応じて拡張することが出来る。
本システムのメモリーマップを図3に示す。本システムは、電源オン又は外部リセットにより、ROM領域の先頭番地FC0000から2ワードをそれぞれSSPおよびPCとして取り込み、PCに書かれたメインエントリールーチンのエントリーポイントからプログラムを実行するようになっている。
また、本システムでは、汎用インテーフェースLSI(PI/T及び3個のPIA)を搭載し、各LSIの割込み要求端子を開放して(図4に示すJP1により割り込みレベル選択可、オートベクタ割り込み)、多様なモードでのI/Oコントロールを可能としている。図5〜7に各I/Oコネクタのピン・アサインを示す。
さらに、PI/Tによりタイマ割り込み(レベル5オートベクタ)を可能としている。

Fig 2.2 メモリーマップ(29KB)
Fig 2.2 メモリーマップ


2.5 付録