HOME > K-COMシミュレータ

 K-COMシミュレータ 

2. K-COMシミュレータの構成

2.1 仕様概要

 コンピュータの構造を理解するために,ここでは必要最小限の規模で動作するマイクロコンピュータを考え,K-COMと名づけたシミュレータを作成した.以下のサイトよりダウンロードできる.シェアウェアだが未登録で使える.(機能制限もない)

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

表2.1 K-COMの仕様

 Image 196


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 命令一覧

 Image 505


2.3 機械語

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

 Image 871

図2.1 機械語の構成

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

manual7
図2.2 機械語の生成

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

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

manual8
図2.3 メモリマップ

2.5 その他の仕様

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

< 前の記事へ次の記事へ >


ページトップに戻る



ESP32 Wifi Bluetooth開発ボード

Arduino Nano Every
​​
Raspberry Pi pico

FPGA XILINX Artix-7