マイクロコンピュータ基礎

科目基礎情報

学校 仙台高等専門学校 開講年度 平成29年度 (2017年度)
授業科目 マイクロコンピュータ基礎
科目番号 0216 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 履修単位: 2
開設学科 情報システム工学科 対象学年 3
開設期 通年 週時間数 2
教科書/教材 ディジタル技術
担当教員 力武 克彰,小林 秀幸

到達目標

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週 予備

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
基礎的能力工学基礎工学実験技術(各種測定方法、データ処理、考察方法)工学実験技術(各種測定方法、データ処理、考察方法)実験テーマの目的に沿って実験・測定結果の妥当性など実験データについて論理的な考察ができる。1前7,前11,前14,後8,後11,後14
実験ノートや実験レポートの記載方法に沿ってレポート作成を実践できる。1前7,前11,前14,後8,後11,後14
情報リテラシー情報リテラシーコンピュータのハードウェアに関する基礎的な知識を活用できる。2前1,前3,前7,前8,前11,前14,後5,後11,後14
数値計算の基礎が理解できる2
コンピュータにおける初歩的な演算の仕組みを理解できる。3前2,前3,前6,前7,後8
データの型とデータ構造が理解できる1
専門的能力分野別の専門工学電気・電子系分野情報基本的なアルゴリズムを理解し、図式表現できる。2前5,前8,後11
プログラミング言語を用いて基本的なプログラミングができる。2前8
整数、小数を2進数、10進数、16進数で表現できる。3前2
基数が異なる数の間で相互に変換できる。3前2
情報系分野プログラミング変数とデータ型の概念を説明できる。3
制御構造の概念を理解し、条件分岐や反復処理を記述できる。3前11,前14,後11,後14
代入や演算子の概念を理解し、式を記述できる。2
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。3前8,前11,前14,後14
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。3前5,前6,前7
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。2前5
主要な言語処理プロセッサの種類と特徴を説明できる。2前1
ソフトウェアコンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。2後1,後2,後3,後11,後14
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。2後14
計算機工学整数・小数を2進数、10進数、16進数で表現できる。2前2,後1,後3
整数・小数をコンピュータのメモリ上でディジタル表現する方法を説明できる。1前2,前6,前7
基数が異なる数の間で相互に変換できる。2前2
コンピュータを構成する基本的な要素の役割とこれらの間でのデータの流れを説明できる。2前3,前6,前7,後1,後2,後3,後11,後14
プロセッサを実現するために考案された主要な技術を説明できる。2前3,後2,後3,後11,後14
メモリシステムを実現するために考案された主要な技術を説明できる。2後2,後8,後14
入出力を実現するために考案された主要な技術を説明できる。2前6,前7,前8,後2,後3,後8
情報数学・情報理論コンピュータ上での数値の表現方法が誤差に関係することを説明できる。2
分野別の工学実験・実習能力情報系分野【実験・実習能力】情報系【実験・実習】与えられた数値を別の基数を使った数値に変換できる。2
与えられた問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。2前4,前6,前7,前9,前10,前11,後4,後5
ソフトウェア生成に利用される標準的なツールや環境を使い、ソースプログラムをロードモジュールに変換して実行できる。2前6,前7,後4,後5

評価割合

試験レポート合計
総合評価割合4060100
基礎的能力152035
専門的能力152035
分野横断的能力102030