68Kには、3つの特徴がある。
第一に、セグメントという概念がない。そのため、常に16Mバイト(224バイト)のメモリ空間を一様にアクセスする事ができる。これは、機器組み込み用のCPUとして大きなメモリ空間があまり問題にならないときに、余計なオーバーヘッドがなく、都合がよい。
第二に、68Kの内部レジスタは全て32ビットになっている。このため、剰余算やアドレス計算が容易に行える。更に、そのレジスタ群は用途についてあまり制限がない汎用レジスタ方式をとっていて、レジスタ間のデータ転送やデータのセーブ・ロードの回数が少なくてすむ。
第三に、68Kはスタックやキューを用いた演算処理ルーチンの記述が容易な命令セットとアドレッシングモードを持っている。これは、CやPascalなどの構造化プログラミング言語の実行に際し、都合がよい。また、汎用レジスタ方式をとっているため、同時に複数個のスタックを管理できる。
図1 68kのレジスタ構成 |
68Kは、1ビット(ビットデータ)、4ビット(BCDデータ)、8ビット(バイトデータ)、16ビット(ワードデータ)、32ビット(ロングワードデータ)のデータを取り扱うことができる。
ソースオペランド・・・データを供給する。
デスティネーションオペランド・・・データを受け入れる。
ソースがデータそのものに注目しているのに対し、デスティネーションは内容だけでなくその場所にも重要性がある。
オペランドとして指定されうるものは、各種レジスタとメモリ内の番地である。こういったものをオペランドとして指定する方法はいくつかあり、これらをアドレシングモードと呼ぶ。
オペランドとしてレジスタを使う際には、単にそのレジスタの名前を指定すればよい。メモリアドレスについては、プログラム実行時にいくつかのレジスタや定数を使ってメモリアドレスを計算し、その値をオペラントとして指定することができる。この時の計算をアドレス計算、計算の結果得られたメモリ番地を実行アドレスという。
68Kの持つ命令セットは、次のように分類できる。
(1)算術演算 (2)論理演算 (3)シフト/ローテート
(4)ビット操作 (5)BCD演算 (6)データ移動
(7)ジャンプ/コール (8)システム制御
算術演算には、加減剰余の他に、比較、クリア、ネゲートなどがある。剰余算には符号ありと符号なしの両方が用意されている。これらの演算は、アドレスに対しては、16又は32ビットでデータに対してはすべてのオぺランドサイズで使用できる。
種々のアクチュエータ及びセンサー等をコントロールするために小型基盤上(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オートベクタ)を可能としている。
図2メモリーマップ |
MPUの調査 moon:/mirsdoc/mirs94/mirs9401/memo/mpu.sam