コンソールパネルを持つビデオカセットサイズの 教育用マイコンとクロス

コンソールパネルを持つビデオカセットサイズの
教育用マイコンとクロス開発環境の開発
重村 哲至
山田 健仁
新田 貴之
力 規晃
守川 和夫
原田 徳彦
三木 幸
徳山工業高等専門学校 情報電子工学科
概要
高専の計算機系学科で低学年の機械語教育に使用するマイクロコンピュータと
プログラム開発環境を開発した。このマイコンは、2進数で操作するコンソールパネ
ルを持ち、かつ、VHS ビデオカセットケースに収納可能な大きさのものである.本稿
では,まず,マイコンの概要と,コンソールパネル,命令セットアーキテクチャ等の
特徴について述べる.次に,クロス開発環境について述べ,本マイコンが実用的に授
業や演習で使用できることを示す.
1 はじめに
2 マイコンの概要
計算機系学科に於ける計算機初期教育で学生に計
本マイコンの外観を写真1に示す.本マイコンは,
算機の原理を理解させるには,オペレーティングシ
次のような特徴を備えている.
ステム等が搭載されていない裸の計算機を扱わせる
(1) コンソールパネル
ことが有効である.また,シミュレータ等でなく,
本体プリント基板の右半分にコンソールパネルを
実機を用いることが必要である [1];[2] .
実装した.
しかし,計算機システムの高機能化が進んだ現在
では,パーソナルコンピュータあるいはマイクロコ
(2) 携帯性重視
学生が自宅でも演習ができるよう携帯性を重視し
ンピュータといえども高度化,複雑化し,オペレー
た.マイコンの大きさは VHS ビデオカセットと同
ティングシステムや
じ大きさとしたので,市販のビデオカセットケース
BIOS 等の厚いソフトウエア
層を通してのプログラミングしかできなくなってし
に収納して持ち歩くことが可能である.写真1は,
まった。そのため,計算機システムをブラックボッ
ビデオカセットケースに収納した状態である.
クスとして教育せざるをえない面がある.
(3) アドレス,データともに 8 ビット構成
特に高専の低学年で教育を行う場合,対象とな
(1),(2) の特徴を優先しコンソールパネルが大き
る学生が中学校を卒業したばかりの段階にあり,ブ
くなりすぎないよう,アドレスもデータも 8 ビット
ラックボックス化・抽象化して教えることの弊害が
の構成とした.メモリ空間が小さすぎることは否め
大きいと考えられる.そこで,高専での使用を前提
ないが,低学年の演習課題を行うには十分である.
とし,機械語の学習を通しノイマン型コンピュータ
(4) シリアル入出力インターフェース
の原理を理解できるよう,ブラックボックスが少な
RS-232C に準拠したシリアル入出力インタフェー
い実習用のマイクロコンピュータ (以下マイコン) と
ス (写真1左の D-SUB コネクタ) を持っており,パ
プログラム開発環境を開発した.
ソコンと接続することにより文字入出力が可能であ
開発したマイコンは簡単な命令セットアーキテク
る.コンソールでは一切文字を扱うことができない
チャを持ち,かつ,ランプやスイッチで2進数を表
ので,パソコンを文字端末として使用する.
現するコンソール・パネルを装備したものである.
(5) スピーカ
文字 (特に16進文字) による表現が,ビットの並び
パラレルポートに接続された圧電スピーカ (写真
であるメモリイメージを理解することの障害になる
1中央の円形の部品) を持っており,ソフトウエア
と考えこのようなコンソール・パネルを実装した.
により音を出力することが可能である.学生にマシ
写真2 コンソールパネル
タ (写真1下の左側のコネクタ) から FPGA の設計
写真1 外観
データがダウンロードできる状態になる.
(11) 安価な価格
パネル制御回路,CPU,RAM,ROM,入出力イ
ンステートを意識させるための演習に都合が良い.
ンタフェース回路は1チップの FPGA に集積した.
(6) 割り込み機能
これにより部品点数を非常に少なくすることができ,
機械語の基本的な演習ができるだけでなく割り込
学生が個人的に購入できる価格になった.
みを用いた入出力の演習が可能である.シリアル入
出力インターフェースから割り込みを発生すること
が可能である.
(7) CPU 性能
ソフトウエアによりスピーカーから音を出す演習
3 コンソールパネル
コンソールパネルは,メモリ内容と CPU レジス
等が可能なよう,ある程度の CPU 性能を確保して
タ内容の表示・書き換機能の他,ステップ実行やブ
3∼8 クロックで実行する.
ある.写真2にコンソールパネルの拡大写真を示す.
いる.システムクロックは 2.457MHz で,1 命令を
レークポイント等のデバッグ機能を提供するもので
(8) IPL 機能
ROM に予め格納された IPL プログラムを用い,
シリアル入出力インターフェースからプログラムを
ダウンロードする機能を持っている.パソコン上で
開発したプログラムのダウンロード実行ができる.
(9) 拡張性
拡張コネクタ (写真1下の右側コネクタ) にバス
3.1 コンソールパネルの特徴
(1) ハードウエア制御
従来のワンボードマイコンの 16 進表示や 16 進
キーボードは ROM モニタにより制御されている
ため,どうしてもソフトウエアの存在が隠し切れ
が接続されている.これにより,外部に入出力イン
ない.一方,本マイコンのコンソールパネル機能
ターフェース回路を追加できる.
は完全にハードウエアにより実現されているため,
(10) FPGA 学習ボード機能
そのような問題点が存在しない.
本マイコンの核になっている FPGA に自分の設
計した回路をダウンロード可能である.ボード上
のジャンパーを変更することにより,JTAG コネク
(2) 非文字による入出力
データの表示や入力は,ランプやスイッチの
ON/OFF で行い文字を用いない.そのため,コン
ピュータの内部の状態をより直接に表現できる.
これは,表示を本来の状態 (ビットの ON/OFF) に
少しでも近づけることにより無用な混乱を学生に
生じさせない工夫である.低学年の学生に使用さ
せる場合,このような簡単に分かるはずの変換が
予想外の負担になることが多いため,これは重要
S(Sign),Z(Zero) は,3つのフラグの値を表示する.
4 命令セットアーキテクチャ
機械語プログラミングに必要なマイコンのリソー
スと命令セットは,学生が学習しやすく,かつ,別
の CPU を学習するときの基礎となる知識が得られ
なことである.
るように定めた.
3.2 コンソールパネルの構成
コンソールパネルは,以下のランプやスイッチに
より構成されている.コンソールパネルが,マイコ
ンボードの約半分の面積を使用している.これは,
操作性を考慮した結果であり,これ以上小さくする
ことは難しい.
(1) アドレスランプ
最上段の 8 個のランプは,主記憶の操作対象とな
4.1 CPU
CPU は独自の 8 ビット CPU である.レジスタは
8ビットの汎用レジスタ2本 (G0,G1),スタックポ
インタ (SP),プログラムカウンタ (PC) である.命
令の実行結果により変化する3つのフラグ (C,S,Z)
があり,条件付きジャンプ命令でテストできる.
る番地を表示する.
(2) データランプ
上から2段目の 8 個のランプは,選択されたレジ
スタまたは主記憶の内容を表示する.
機械語命令は29種類,アドレッシングモードは
ダイレクト,インデクスド,イミディエイトの3種
(3) ロータリースイッチ
上から3段目の 5 個のランプと左右の押しボタン
スイッチはロータリースイッチの代用である.ラン
プの1つが点灯し,レジスタ (G0,G1,SP,PC)
または主記憶
4.2 命令体系
(MM) のどれが選択されているか表
示する.左右のスイッチで点灯するランプを変更で
類,直交性の高い命令体系となっている [3] .命令は
1バイトのものと2バイトのものがある.
教育用の
CPU としては命令数が多めであるが,
割り込み処理までを可能にするためには,この程度
の命令数が必要である.
きる.選択されたものの内容がデータランプに表示
4.3 メモリ空間
される.
(4) データスイッチ
8個のトグルスイッチは,データやアドレスの値
を入力するためのものである.
(5) 機能スイッチ
一番下の列の8個のスイッチには様々な機能が割
り当てられている.左から順に,
「ブレークポイン
タモード」,
「ステップ実行モード」,
「プログラム実
本マイコンのメモリ空間は全体で
256 バイトで
ある.00H 番地から DFH 番地は自由に使用できる
RAM 領域である.E0H 番地から FBH 番地までの
28 バイトは IPL プログラムが格納された ROM の
領域である.FCH 番地からの 4 バイトは割り込み
ベクタとして使用する RAM 領域である.
行」,
「プログラム停止」,
「アドレスセット」,
「アド
レスを進める」,
「アドレスを戻す」,
「書き込み」の
機能を持つ.
(6) 実行ランプ
RUN ランプは,CPU がプログラムを実
行中であることを表す.CPU が未定義命令を実行
右上の
した場合は点滅して異常を知らせる.
(7) フラグランプ
実行ランプ下の3つの小さなランプ
C(Carry),
4.4 I/O 空間
本マイコンの I/O 空間は全体で 16 バイトである.
0H 番地はコンソールパネルのデータスイッチを読
み取るポート,1H 番地の LSB はスピーカポート,
2H 番地はシリアル入出力インタフェースのデータ
レジスタ,3H 番地はシリアル入出力インタフェー
スのステータスレジスタになっている.他の番地は
めに,全てのパソコンに RS-232C のクロスケーブ
拡張用であり,標準では使用されない.
ルが追加してある.学生はパソコンとマイコンをク
ロスケーブルで接続してから開発したプログラムを
4.5 割り込み
ダウンロードする.
割り込みは INT0∼INT3 の4つを用意した.メ
モリ空間にある4バイトの割り込みベクタが各割
込みに対応している.標準では RS-232C が INT1,
INT2 を使用し他は未使用である.
6 おわりに
本稿では,高専の計算機系学科の低学年で使用す
る演習用マイコンとマイコン用のプログラム開発環
境を提案した.このマイコンは,低学年での機械語
5 クロス開発環境
教育に使用できるよう様々な工夫がしてある.また,
ハンドアセンブルとコンソールパネルからの機械
基本的な機械語演習だけでなく割り込みや入出力の
語打ち込みによる演習は,メモリイメージを把握す
演習も可能である.プログラム開発環境は Java で
るために初期の段階では重要である.しかし,この
記述してあり,様々なプラットフォームで実行可能
段階が終わり少し長いプログラムの記述を始めると
である.
プログラム開発を効率的に行うためにプログラムの
本マイコンは2003年度の入学生から使用を開
始し,現在,この学年が2年生の授業を受けている.
開発環境が必要になる.
2004年度の入学生は,本マイコンにレジスタを
1本追加した改良型の命令セットアーキテクチャを
5.1 クロスアセンブラ
もつマイコンを使用している.
マイコンの機械語を生成する,パソコン上で動く
クロスアセンブラを準備した.このアセンブラは直
接機械語ファイルを生成するものであるが,Java で
約 1700 行の規模を持ちラベルを用いた式の計算等
もサポートする本格的なものである.Java で記述さ
れているので,様々なパソコンで実行可能である.
5.2 ダウンロードプログラム
2003年度の学年末に授業項目 (52項目) に
ついて理解度を調べるアンケートを実施した.アン
ケートの結果,大半の項目の平均点で,4 点満点中
3.0 点以上の満足できる回答が得られた.
今後の課題として,
「(1) 機械語入門科目以外での
使用」と「(2) 教科書の整備」があげられる.
(1) に関しては既に,2004年度から4年生の
実験科目で FPGA のトレーニングボードとして利
用を開始している.また,マイクロプログラムを外
部からダウンロード可能にすることによりマイクロ
マイコンにクロスアセンブラが生成した機械語を
ダウンロードする,UNIX 用のダウンロードプログ
プログラムのプログラミング演習も可能になると考
ラムを開発した.マイコンに搭載されている IPL と
えているが,まだ実現していない.
することにより,機械語をマイコンに転送すること
参考文献
ダウンロードプログラムが RS-232C を通して通信
ができる.
現在は UNIX 用のものしか開発していないが,非
常に短い簡単なプログラムであるので,他のプラッ
トフォームに移植することも簡単だと考えられる.
[1]
中西正和:機械語プログラミング教育の必要性と実
習用コンピュータの製作,bit Vol.25 No.8-9(1993)
[2]
中森眞理雄,萩原洋一,高田正之:情報工学系学科
の教育における手回し計算機の活用,情報処理学会
論文誌 Vol.31,pp.1547-1555(1990)
命 令 表 ,TeC5 ク ロ ス 開 発 環 境 の 使
[3] TeC5
5.3 実行環境
クロス開発環境は,学科パソコン室の
い方
(
50 台の
FreeBSD パソコンにインストールした.現在,2年
生が授業で使用中である.このクロス開発環境のた
http://www.tokuyama.ac.jp/js585/
/tec intro/XEmb/tasm5.pdf ),p13
TeC