基礎コンピュータ工学(Fundamental Computer Engineering)
本科選択・必修開設時期単位数授業形態担 当
情報電子必修1年2講義重村哲至 古賀崇了
【授業の概要】
全てのデジタルコンピュータに共通の動作原理を理解するための基礎となる科目である。この科目で使用するために開発した専用のマイコンを使用しマイコンの使用者の立場でコンピュータの機能・動作を習得する。関連科目の欄には記入していないが、本科、専攻科の全てのコンピュータに関係する科目に関連がある。この科目は卒業時までに必修得である。
【授業の進め方】
前期中間試験までは講義主体に進める。その間は小テストにより習熟度をチェックする。その後、前期末まではマイコンの組み立てとマイコンの操作方法等が中心になる。後期は授業の内容をマイコンの機械語プログラミングで確認しながら進める。この間は、作成したプログラムを提出することにより習熟度をチェックする。
【授業計画】 【授業項目】 【内 容】
1 回 ガイダンス 日頃、見慣れているパーソナルコンピュータだけでなく、携帯電話、家電、自動車あらゆるところに様々なコンピュータが使用されている。この科目で学習するのは、全てのコンピュータに共通の仕組みである。
2 回 情報の表現(1) デジタルコンピュータでは情報を2進数で表す。2進数は電圧の高低などに対応させて回路(ハードウエア)で扱うことが可能である。2進数を組み合わせて整数を表現する方法や、基数の変換方法、表記方法、ビット、バイトなどの単位について学ぶ。
3 回 情報の表現(2) 2進数での加減算と10進数での加減算が同じ結果になることを確認したあと、負の整数を表現する方法について考える。[小テスト:基数の変換]
4 回 情報の表現(3) 2進数で小数を表現する方法について考える。[小テスト:2の補数]
5 回 情報の表現(4) 2進数で整数以外の文字を表現する方法について考える。[小テスト:固定小数点]
6 回 論理演算と基本回路 否定、論理和、論理積、排他的論理和の4つの論理演算と対応する論理素子の記号を学ぶ。また、否定と組み合わせた場合の記号も学ぶ。これらの記号を用いて論理回路図を描いてみる。
7 回 ハンダ付け 実習用のマイコンの組み立てに先立ち、ハンダ付けの練習を行う。
8 回 マイクロコンピュータの組み立て(1) 前回の結果についてコメントした後、マイコンの組み立てを開始する。
9 回 中間試験 2進数で色々な情報が表現できるか、論理回路図の読み方ができるか試験する。
10 回 マイクロコンピュータの組み立て(2) その後、マイコンの組み立ての続きを行う。
11 回 マイクロコンピュータの組み立て(3) マイコンの組み立てと動作確認を完了する。
12 回 マイクロコンピュータの基本構成(1) プログラムカウンタ、汎用レジスタ、スタックポインタ、フラグの各レジスタとメモリマップを紹介した後、マイコンの操作方法を説明しメモリに簡単なプログラムを格納して実行してみる。
13 回 マイクロコンピュータの基本構成(2) マイコンCPUのブロック図を配布し、フェッチ、実行等の順序について学習する。データだけでなく、プログラムもメモリに記憶されている。(ストアードプログラム)[小テスト:用語の確認]
14 回 マイクロコンピュータの基本構成(3) レジスタの値の確認、ステップ実行等の操作方法を学ぶ。
期末試験 用語を正しく理解しているか、マイクロコンピュータの基本構成が正しく理解できているか試験する。
15 回 答案返却など 試験の解答をした後、マイコンの命令表を配布し、ニーモニックを用いたプログラムの書き方と機械語への手作業での変換手順を説明する。ラベル、オペレーション、オペランド、アドレス、機械語等の用語を理解する。
16 回 転送命令 転送命令と停止命令について解説し、データを汎用レジスタにロードしメモリに書き戻す簡単なプログラムを作成する。[ハンドアセンブル結果を提出]
17 回 加減算命令 加減算命令について解説し、データを汎用レジスタにロードし簡単な演算をした後、メモリに書き戻す簡単なプログラムを作成する。[ハンドアセンブル結果を提出]
18 回 分岐命令 分岐命令について解説し、無限ループになったプログラムを作る。ステップ実行、プログラムの中断等の演習を、再度、行う。[ハンドアセンブル結果を提出]
19 回 フラグと条件分岐命令 演算結果でフラグが変化することと、フラグの値による条件ジャンプについて解説し、正負を判定するプログラム、ゼロと非ゼロを判定するプログラム等を作成する。[ハンドアセンブル結果を提出]
20 回 繰り返し処理(1) 分岐命令を用いて、固定回数の繰り返しをするプログラムの実現を考える。1から10の合計を求めるプログラムを作成する。[ハンドアセンブル結果を提出]
21 回 繰り返し処理(2) 繰り返しにより積を計算するプログラムを作成する。マイコンのブレークポイント機能を紹介し、デバッグに役立てる。[ハンドアセンブル結果を提出]
22 回 演習 積を計算するプログラムの改良を行う。
23 回 中間試験 各機械語命令の動作が理解できているか、若干のプログラムが記述できるか試験する。
24 回 比較命令 フラグだけを変化する比較命令について解説する。繰返しにより、割り算を計算するプログラムを比較命令を使用して作成する。[ハンドアセンブル結果提出]
25 回 シフト演算命令 左右シフト命令とフラグの変化について学ぶ。データの回転プログラム、掛算プログラム等を作成する。[ハンドアセンブル結果を提出]
26 回 アドレシングモード アドレッシングについて学んだ後、メモリをクリアするプログラムやデータの合計を求めるプログラムを作成する。[ハンドアセンブル結果を提出]
27 回 論理演算命令 論理演算命令について学ぶ。偶数・奇数判定プログラムを作成する。[ハンドアセンブル結果を提出]
28 回 演習 アドレッシングと論理演算を組合わせて、データ中の奇数を数え上げるプログラム等を作成する。[ハンドアセンブル結果提出]
29 回 演習 自身を書換えるプログラムを作成し、ストアードプログラム方式の理解を深める。
期末試験 各機械語命令の動作が理解できているか、ある程度のプログラムが記述できるか試験する。
30 回 答案返却など 試験の解答を解説する。
【到達目標】(1)ハンドアセンブルができること。
(2)繰り返しとインデクスド・アドレッシングを組み合わせたプログラムが記述できること。
(3)命令表を見て、各機械語の動作が説明できること。
【徳山高専学習・教育目標】C1【JABEE基準】
【評価法】4回の試験の平均点[80%]、宿題点[20%]により評価する。
【テキスト】教科書:TeC教科書 Ver3.2.2(徳山高専情報電子工学科)
【関連科目】本科:コンピュータ工学(2年)、コンピュータシステム概論(3年)、システムプログラミングI,II(3,4年)、コンピュータアーキテクチャ(4年)、オペレーティングシステムI,II(4,5年)