目的・到達目標
1.プログラム記憶方式コンピュータの基本構成を理解する
2.マイクロプロセッサの構成と基本的な動作を理解する
3.マイクロプロセッサの命令形式およびアドレス方式を理解する
4.ハンドアセンブルによる簡単なプログラミングおよびデバッグができる
5.パソコンとクロスアセンブラにより,小規模なプログラム開発ができる
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
レポート | レポートの構成(目的、手法、結果、考察)が整っている。
各項目において、必要十分な内容が記載されており、追試可能な抽象度(具象度)で書かれている。
手法、結果と考察の間に十分な対応がとられている。
考察では、実習内容に加え、発展的な内容についても記述されている | レポートの構成(目的、手法、結果、考察)が整っている。
各項目において、必要な内容が記載されている。
手法、結果と考察の間に一部対応がとられている。 | レポートの構成(目的、手法、結果、考察)が整っておらず、一部かけている。
各項目において、必要な内容が記載されていない。
手法、結果と考察の間に一部対応が取られていない。 |
内容理解 | 課題で与えられた動作仕様を十分に満たすプログラムを実装できている。
実装したプログラムの動作をPAD図などを用いて説明できる。
保守性・可読性・拡張性に優れたプログラムを実装できる | 与えらえたサンプルプログラムの動作を説明できる。
課題で与えられた動作仕様を(ほぼ)満たすプログラムを実装できている。
実装したプログラムの動作を一部説明できる。 | 与えられたサンプルプログラムの動作を説明できない。
課題で与えられた動作仕様を満たすプログラムを実装できていない。
|
学科の到達目標項目との関係
教育方法等
概要:
コンピュータの仕組みとそれを利用するための知識と技術の習得に向けて,マイクロプロセッサの基本構成と動作原理を理解する。
前期では主に、AVRによる実習ボードを用いて,マイクロプロセッサの基本的な動作を理解するためのC言語(アセンブリ言語)によるプログラミング実習を行う。
後期では主に、MIPSアーキテクチャのCPU実習ボードを用いて、CPU内部のアーキテクチャや、命令レベルおよびクロックレベルでのCPUの動作を理解するために、機械語とアセンブリ言語によるプログラミング実習を行う
授業の進め方と授業内容・方法:
1. Blackboard上の参考文献を実験・実習指針として用いて,自律的に学習を進める。
2. 各自報告書を提出することにより,各課題に関する検討考察および学習内容などについて,指導教員に報告する。
3. 学生同士,あるいは教員を交えてのディスカッションを積極的に展開し,それらの内容もノートに学習記録として残す。
注意点:
本科目は,ディジタル技術基礎,プログラミング基礎,ディジタル技術,プログラミング,ディジタルシステムA及びB,組み込みシステム,コンピュータアーキテクチャと関連する。
授業計画
|
|
週 |
授業内容・方法 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
ガイダンス |
マイクロプロセッサが世の中でどのように使われているか、また、マイクロプロセッサで何ができるかを説明できる
|
2週 |
数の表現、算術演算、論理演算
|
コンピュータで用いられる(固定ビット長の)2進数での数の表現を説明できる。2 2つの数の間での算術演算、論理演算(ビット演算)を説明できる。
|
3週 |
CPUの構成 |
ノイマン型コンピュータの構成について,概要を説明できる
|
4週 |
AVR実習ボードによる実習のガイダンス |
AVR実習ボードおよび開発ツールの利用の仕方を学び、実習を実行できるようになる。
|
5週 |
C言語によるマイクロプロセッサプログラミング |
C言語によるマイクロプロセッサプログラミングの流れを理解し、AVR実習ボードでC言語による開発を行えるようになる
|
6週 |
I/O、算術演算、論理演算 |
I/Oおよび算術・論理演算を扱うプログラムを実装し、実習ボードで実行することができる。また、そのプログラムの動作を説明できる
|
7週 |
I/O、算術演算、論理演算 |
I/Oおよび算術・論理演算を扱うプログラムを実装し、実習ボードで実行することができる。また、そのプログラムの動作を説明できる
|
8週 |
チャタリング サブルーチン |
入力デバイスでのチャタリングについて説明ができる。プログラムでチャタリング対策をおこなうことができる サブルーチンを適切に用いて可読性、保守性の高いプログラムを作成できる
|
2ndQ |
9週 |
割込み処理 |
割り込みの概念を説明できる。外部割込み処理によるプログラミングができる。
|
10週 |
割込み処理
|
割り込みの概念を説明できる。外部割込み処理によるプログラミングができる。
|
11週 |
割り込み処理 |
割り込みの概念を説明できる。外部割込み処理によるプログラミングができる。
|
12週 |
タイマ・カウンタ |
タイマ及びカウンタの動作を説明できる。タイマ・カウンタを利用したプログラミングができる。
|
13週 |
タイマ・カウンタ |
タイマ及びカウンタの動作を説明できる。タイマ・カウンタを利用したプログラミングができる。
|
14週 |
タイマ・カウンタ |
タイマ及びカウンタの動作を説明できる。タイマ・カウンタを利用したプログラミングができる。
|
15週 |
振り返り |
今学期を振り返り,達成目標について自己評価を行う.
|
16週 |
予備 |
|
後期 |
3rdQ |
1週 |
機械語、アセンブリ言語
|
機械語、アセンブリ言語とは何かを説明できる。コンパイラ、アセンブラの働きの概要を説明できる。機械語が格納され、実行されることを理解する。
|
2週 |
MIPSアーキテクチャ(ハードウェア) |
MIPSアーキテクチャのハードウェア的な仕様の概略を説明できる。
|
3週 |
MIPSアーキテクチャ(ソフトウェア) |
MIPSアーキテクチャのソフトウェア的仕様(命令セット)の概略を説明できる。 簡単なハンドアセンブルを行うことができる。
|
4週 |
MIPS CPU実習ボードによる実習のガイダンス |
MIPS CPU実習ボードおよびその開発環境の使い方を学び実習を行えるようになる。
|
5週 |
アセンブリ言語によるマイクロプロセッサプログラミング |
アセンブリ言語を用いたプログラミングの流れを理解し、実習ボード上でプログラムを実行できるようになる。
|
6週 |
データ転送(I/O)、算術演算、論理演算 |
レジスタ間での算術論理演算命令、メモリとのデータ転送命令の動作を理解し説明できる
|
7週 |
データ転送(I/O)、算術演算、論理演算 |
レジスタ間での算術論理演算命令、メモリとのデータ転送命令の動作を理解し説明できる
|
8週 |
データ転送(I/O)、算術演算、論理演算 |
レジスタ間での算術論理演算命令、メモリとのデータ転送命令の動作を理解し説明できる
|
4thQ |
9週 |
分岐、条件分岐 |
分岐、条件分岐命令の動作を理解し説明できる。
|
10週 |
分岐、条件分岐 |
分岐、条件分岐命令の動作を理解し説明できる。
|
11週 |
分岐、条件分岐 |
分岐、条件分岐命令の動作を理解し説明できる。
|
12週 |
サブルーチン、スタック |
サブルーチン呼出しを行うプログラミング方法を理解し、実装することができる サブルーチン呼出しが行われたときメモリ空間の内容がどの様に変化するかを説明できる。
|
13週 |
サブルーチン、スタック |
サブルーチン呼出しを行うプログラミング方法を理解し、実装することができる サブルーチン呼出しが行われたときメモリ空間の内容がどの様に変化するかを説明できる。
|
14週 |
サブルーチン、スタック |
サブルーチン呼出しを行うプログラミング方法を理解し、実装することができる サブルーチン呼出しが行われたときメモリ空間の内容がどの様に変化するかを説明できる。
|
15週 |
ふりかえり |
今学期を振り返り,達成目標について自己評価を行う.
|
16週 |
予備 |
|
評価割合
| 試験 | レポート | 合計 |
総合評価割合 | 40 | 60 | 100 |
基礎的能力 | 15 | 20 | 35 |
専門的能力 | 15 | 20 | 35 |
分野横断的能力 | 10 | 20 | 30 |