000000 ランダム
 HOME | DIARY | PROFILE 【お気に入りブログ登録】 【ログイン】

CPUを作ろう ~計算機教材とマイコンと電子工作~

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”は番地指定(オペランド)で,数値またはアドレ スを示し,命令を修飾する部分である.命令によっては,オペランドを取らないものもある.A DD命令のコードは表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)により1E H番地からデータを読みとると,実際には入力ポートよりデータが入力される.同様に,ストア 命令(ST)により1FH番地に対してデータを書き込むと出力ポートにデータが出力される.

manual8

図2.3 メモリマップ



2.5 その他の仕様

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



Copyright (c) 1997-2018 Rakuten, Inc. All Rights Reserved.