以下はすべて,科研報告書からの抜粋です. 詳しくはそちらをご覧ください.
本シミュレータの開発の目的は以下の2点である.
KUE-CHIP2教育用ボードには動作制御や観測を行うためのスイッチ, 表示用LEDが備 わっている. 本シミュレータでは, これらのユーザインタフェースに加えプログラムやデー タの入力, 表示, プロセッサの動作確認などをより迅速に行えるようにいくつ かの機能を追加した. これにより, KUE-CHIP2を用いた計算機実験をより円滑に進めることができる.
さらに, Java言語を用いてシミュレータを開発することにより, インタネット を介しての計算機教育を行うことができる. つまり, インタネットに接続され ており, WWWブラウザが利用できる計算機環境があればどこからでもシミュレー タを利用することができる. このことは, 将来のネットワークを利用した情報 処理教育の可能性を示唆するものである.
本シミュレータの開発は, 1996年4月から新實治男助教授の提案で開始した. 開発に利用した環境, 作業時間などを表に示す. 主と してSolaris2.5上で開発を行った. 開発の際には, 参考書 およびJava言語に関する メーリングリスト(Java House ML, Java House Brewers ML) などを利用した.
開発環境 |
|
開発用ソフトウェア | Java Developers Kit(1.02 release) |
作業時間 | 9ヶ月(実質約60日) |
メインウィンドウは, 大きく分けてプロセッサの内部状態を表示する部 分とプロセッサの動作を制御する部分からなる.
表示部には実行中のフェーズ, 各レジスタ, フラグの値が表示される. これらを利用することで プロセッサの動作観測が行える.
KUE-CHIP2教育用ボードでは各レジスタ, フラグの表示はスイッチで 観測したい対象を選び2種類の7セグメントで確認する. 本シミュレータでは すべてのレジスタの値, フラグの状態を常に表示しユーザがスイッチ を用いてそれらを切替える必要がない.
本シミュレータでは, これらに加え以下の3種類のボタンがある.
これらの他に以下のようなユーザインタフェースが提供される.
本シミュレータの特徴として, 以下の2点が挙げられる.
本シミュレータは, 前述したようなユーザインタフェースを備え KUE-CHIP2を用いた実験を円滑に進めることができる.
実験ではまずプログラムの入力を行う. プログラムの入力は, 前述したメモリエディタ・ウィンドウを 起動しプログラムを直接入力する方法と, Fileメニューから プログラムファイルを読み込む方法のどちらかを選択することができる. プログラムファイルは, テキスト形式で指定のフォーマットで 記述されている必要がある.
次にプログラムの実行はSS, SI, SPボタンを用いて行う. 実行中はメインウィンドウに各レジスタの値, およびフラグの状態が表示 され, ブロック図のウィンドウを表示しておけばプロセッサ内部の 動作を随時確認できる.
また, プログラムの実行を中断している間には, 各レジスタの値, およびフラグの状態を自由に変更することができる. レジスタの値を 変更する場合, 値を変更したい7セグメントをマウスでクリックし, 16進数で値を入力する. フラグの場合, 変更したいLEDを マウスでクリックすることで状態が反転する.
さらに, ユーザはブレークポイントを設定することができる. 各レジスタが, ユーザの設定した値になった時にプログラムの実行を停止する. 各レジスタの値が表示されている7セグメントのすぐ横にある, 小さな 7セグメントをクリックして値を入力することで設定できる.
プログラム実行中の履歴は, 前述したログ・ウィンドウを開き LogメニューからStart Logの項目を選択することで, その時点から の実行履歴を記録することができる.
プログラムの実行が終了後, 現在のメモリの内容, および ログ・ウィンドウに表示されている実行履歴をテキスト形式で 保存することができる.
以上のように, ウィンドウシステム環境でのGUIベースの ソフトウェアとして開発されて いるため, プログラムの入力, 実行, レジスタの値およびフラグの変更, ブレークポイントの設定などを簡単に行うことができ, またメモ リの内容, 実行履歴の保存が可能であるためプログラムの評価, 再利用などが 簡単に行える. また, ブロック図を用いてプロセッサ内部の動作の様子をリアルタイムで 観測することができる. これらの機能をハードウェアで実現することは 困難であると考えられる.
本シミュレータはJava言語で記述されている.
Javaのソースコードをコンパイルすることによって バイト・コードと呼ばれる中間ファイルが生成される. このバイト・コードはJava Virtual Machine (Java仮想マシン, 以下JVMと略記) のオブジェクトコードである. 本シミュレータの実行は 各プラットホームに実装されたJVM上で行われる. このバイト・コードは 異なるプラットホーム間で共有することができる.
さらに, インタネットを通じてこのオブジェクトコードを送ることができる. 現在主なWWWブラウザにはJVMが実装されておりアプレットと呼ばれる形式で 実行することができる. 実際に, Solaris2.5, Windows95(NT), MacOS, IRIXなどで 動作確認済みである.
工事中
本シミュレータを開発する上で問題となった点を以下に挙げる.