第2章 演習用マイコンK-COMの仕様


 2.1 仕様概要
 2.2 命令構成
 2.3 機械語
 2.4 メモリ及びI/Oマップ
 2.5 その他の仕様

目次に戻る



 2.1 仕様概要

 コンピュータの構造を理解するために,ここでは必要最小限の規模で動作するマイクロコンピュータを考える.
(1)扱う数は整数のみとし,簡単な加減乗除算を行えるようにする.データ長を1バイト(8ビット)とすると,0から255(ー128〜127)までの整数値を扱える.
(2)直接使用できるレジスタはアキュームレータ1種類とし,演算は基本的にアキュームレータとメモリ内容との演算に限定した.その他,プログラムカウンタ,命令レジスタの必要最小限のレジスタしか準備しない.
(3)コンピュータの構造を単純化するため,1バイトを上位3ビットと下位5ビットに分けて,それぞれ命令コード(オペコード)と番地指定(オペランド)に用いるものとする.その結果,命令は最大8個,番地指定は0から31番地までとなる.
(4)メモリレジスタ間の転送命令,算術演算命令,ビット演算命令,条件ジャンプ命令の必要最小限の命令のみの構成とする.
(5)命令数が限られているので,入出力(I/O)命令は省いた.そのためマップドI/O方式を取り,メモリにマッピングされた番地に書き込み,読み込みを行うことで,外部装置との入出力を行う.
 以上の仕様一覧を表2.1に示す.この演習用コンピュータを以後本書ではK-COMと呼ぶ.本章では,各仕様についてより詳細な説明を行う.

表2.1 K-COMの仕様

 

ページ先頭へ


 2.2 命令構成

 K-COMで使用される命令数は8個である.これを表2.2のように定めた.
 算術演算命令としてADD命令(加算),SUB命令(減算)の2種類,論理演算命令としてNAND命令,SHIFT命令の2種類,転送命令としてLD(ロード)命令,ST(ストア)命令の2種類,最後にジャンプ命令としてJPC命令,JPZ命令の2種類の計8個とした.実行停止のためのHALT命令は,JPZ命令のアドレス部分が全て1,つまり1FH番地にジャンプする時をハード的に(回路内で)検出し,停止するものとした.また,命令コードを2進数で”000”から”111”までを順に割り振った.
 演算及び転送命令は,基本的にアキュームレータ(ACC)とメモリとの間で行われる.

 

表2.2 命令一覧

 

 

ページ先頭へ


 2.3 機械語

 図2.1の様に,データ長を8ビットのうち上位3ビットを命令コード,下位5ビットをアドレスまたは数値として機械語を構成する.そのため,命令数は2=8,メモリ空間は2=32バイトとなる.ただし,演算はアキュームレータとメモリを介して行うため8ビットの定数値0〜255(-128〜127)までを用いることができる.

 

図2.1 機械語の構成

 例として,アセンブリ言語”ADD 0FH”の機械語を生成してみる.スペースで区切られた”ADD”の部分は命令コード(オペコード)であり,実行する命令が種ADD”命令であることを表す.また,スペース後の”0FH”は番地指定(オペランド)で,数値またはアドレスを示し,命令を修飾する部分である.命令によっては,オペランドを取らないものもある.ADD命令のコードは表2.1より”000”である.オペランドはメモリ上のアドレスを示し,16進数の”0FH”を5ビットの2進数に直して,”01111”となる.両者を並べて8ビットの2進数とし,4ビットごとに16進数に直した”0FH”が対応する機械語となる.以上をまとめて図2.2に示す.



図2.2 機械語の生成

 

ページ先頭へ


 2.4 メモリ及びI/Oマップ

 K-COMのメモリマップを図2.3に示す.マップドI/O方式を取ったため,利用できるメモリ領域としては0〜1DH番地までである.1EH番地は入力ポート,1FH番地は出力ポートにそれぞれ対応させた.メモリからデータを読み込むのと同様に,ロード命令(LD)により1EH番地からデータを読みとると,実際には入力ポートよりデータが入力される.同様に,ストア命令(ST)により1FH番地に対してデータを書き込むと出力ポートにデータが出力される.



図2.3 メモリマップ

ページ先頭へ


 2.5 その他の仕様

 クロックは,ウエイト無しの実現しうる最高速(シミュレーションを行うパーソナルコンピュータの処理速度に依存)から,1秒間隔まで可変できるようにした.また,ステップ実行も可能とした.
 I/Oポートに外部機器を接続して制御の演習を行うため,仮想的な外部機器の作成と,K-COMと外部機器とのデータの受け渡しが出来るようにした.具体的には,OS(Microsoft Windows)上で管理されている一時記憶領域(クリップボード)を介してデータを受け渡す方式を取ることにした.

ページ先頭へ