1996.12.14 今村卓也 田所想平 作成
MPUの調査
1、68Kのアーキテクチャ
(1)68Kの特徴
68Kには、3つの特徴がある。
第一に、セグメントという概念がない。そのため、
常に16Mバイトのメモリ空間を一様にアクセスする事ができる。
これは、機器組み込み用のCPUとして大きなメモリ空間があまり問題にならない
ときに、余計なオーバーヘッドがなく、都合がよい。
第二に、68Kの内部レジスタは全て32ビットになっている。このため、
剰余算やアドレス計算が容易に行える。更に、そのレジスタ群は用途について
あまり制限がない汎用レジスタ方式をとっていて、レジスタ間のデータ転送や
データのセーブ・ロードの回数が少なくてすむ。
第三に、68Kはスタックやキューを用いた演算処理ルーチンの記述が容易な
命令セットとアドレッシングモードを持っている。これは、CやPascalなどの
構造化プログラミング言語の実行に際し、都合がよい。また、汎用レジスタ方式を
とっているため、同時に複数個のスタックを管理できる。
(2)68Kのレジスタ群
・アドレスレジスタ(A0〜A7)
アドレスレジスタは、アドレスベースに使う事を目的としているので、アドレシング
モードがたくさん作られている。A0〜A6までがアドレスレジスタ、A7は裏表に
分かれていて、それぞれスーパーバイザ用のスタックポインタ(SSP),ユーザ用
のスタックポインタ(USP)として使用される。
・データレジスタ(D0〜D7)
データレジスタは、いわゆるアキュムレータとして使うのに便利にできていて、
下から8ビット及び16ビットに切っても使える。(下の8ビットにデータをロード
した時、上の24ビットは変化しない。)
・プログラムカウンタ(PC)
PCは32ビットである。しかし、使用できるのは下位24ビットなので、アドレス
空間は16Mバイトである。
・ステータスレジスタ(SR)
SRは16ビット長で、上位半分はシステムバイト、下位半分はユーザバイトと
なっている。システムバイトはシステムの状態を示し、ユーザステートのときは
この内容を書き換えられない。ユーザバイトはZ80のFレジスタのようなもので
ある。
(3)スーパバイザステート・ユーザステート
68KはOSの存在を前提としているため、システムプログラムが資源管理などの
操作をすることができるように、実行時の状態がスーパバイザステートと
ユーザステートに分かれている。

・特権命令
スーパバイザステートでしか実行できない命令。SRのシステムバイトの変更や、
割込み処理に関する命令群。
(4)68Kのデータ型
68Kは、1ビット(ビットデータ)、4ビット(BCDデータ)、
8ビット(バイトデータ)、16ビット(ワードデータ)、
32ビット(ロングワードデータ)のデータを取り扱うことができる。
・レジスタ
データレジスタは4種類の長さのデータを全て保持することができる。
アドレスレジスタは16ビット又は32ビットを単位として扱う。
・メモリ
データをメモリに記憶させる場合はワード(2ビット)を単位とする。この際、
低アドレス側に上位バイトのデータを、高アドレス側に下位バイトのデータを納める。
2、アドレシングモード
(1)オペランドの種類
ソースオペランド・・・データを供給する。
デスティネーションオペランド・・・データを受け入れる。
ソースがデータそのものに注目しているのに対し、デスティネーションは内容だけで
なくその場所にも重要性がある。
(2)オペランドの指定
オペランドとして指定されうるものは、各種レジスタとメモリ内の番地である。
こういったものをオペランドとして指定する方法はいくつかあり、これらを
アドレシングモードと呼ぶ。
オペランドとしてレジスタを使う際には、単にそのレジスタの名前を指定すれば
よい。メモリアドレスについては、プログラム実行時にいくつかのレジスタや定数を
使ってメモリアドレスを計算し、その値をオペラントとして指定することができる。
この時の計算をアドレス計算、計算の結果得られたメモリ番地を実行アドレスという。
3、インストラクションセット
68Kの持つ命令セットは、次のように分類できる。
(1)算術演算 (2)論理演算 (3)シフト/ローテート
(4)ビット操作 (5)BCD演算 (6)データ移動
(7)ジャンプ/コール (8)システム制御
(1)算術演算
算術演算には、加減剰余の他に、比較、クリア、ネゲートなどがある。剰余算には
符号ありと符号なしの両方が用意されている。これらの演算は、アドレスに対しては
、16又は32ビットでデータに対してはすべてのオぺランドサイズで使用できる。
(2)論理演算
論理演算には、AND,OR,EOR,NOTがあり、前三者については即値を使う
命令(ANDl,ORl,EORl)がある。アドレシングモードの指定により、
これらわSRをデスティネーションとすることができる。
(3)シフト/ローテート
シフトとローテートは、レジスタに対しても、メモリに対しても実行できる。
但し、メモリ内のデータに対しては16ビットオペランドで1ビットのシフトに
限られる。
(4)ビット操作
ビット操作はビットテストとテストしたビットに対して行う操作との組みである。
・ビットテスト
指定されたビットが”0”なら、Zフラグを立てる。
・テスト後の操作
テスト後の操作には、BTST(何もしない)、BSET(1にする)、
BCLR(0にする)、BCHG(反転する)がある。
(5)BCD演算
BCD演算は加減算(ABCD)と符号反転(NBCD)がある。
一度に扱えるオペランドサイズは8ビットである。
(6)データ移動
ほとんどのデータ移動に関するプログラムはMOVE命令によって行われる。
MOVE命令は、ソース、デスティネーションとも6ビットで指定される。
(7)ジャンプ/コール
ジャンプ・コールには、無条件分岐、条件分岐の2つがあり、他にも手続きの
呼び出し、手続きからの復帰がある。
(8)システム制御
システム制御の命令には、特権命令、トラップ命令、及びSRのシステムバイトを
操作する命令がある。
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オートベクタ)を可能としている。
図2 メモリーマップ

5.付録
・アーキテクチャ
命令の機能、データの表現機能等の、ハードウェアとソフトウェアの開発に
必要となるハードウェアの仕様のこと。
・セグメント
プログラムが大きくて一度に主記憶に格納できない場合、または主記憶装置を有効に
使うためにプログラムをモジュール化する場合に、細分化されるプログラムの各部分。
・オーバーヘッド
無駄に費やされる時間または記憶領域。主に、OSが存在している領域や、
それが働いている時間をさす場合が多い。
・キュー
処理がFIFO(First In First Out)であるデータの集まりの
構造。待ち行列ともいう。
・アキュームレータ
演算部を構成する主要なレジスタの一つであり、算術演算や論理演算を行うデータを
記憶したり、演算の結果を貯えておいたりする場所。
・フェッチ
CPUが命令を取り出すこと。
・アクノリッジ
データ通信を行う際に、データが正しく送られたことを、受信側が送信側へ報告する
こと。
Last Update:
元に戻る