1.真理値表が与えられたとき、論理式を求めて論理回路を設計できる。
2.C言語で書かれたプログラムをアセンブラ言語で表現できる。
3.アセンブラ言語で書かれたプログラムを実現するプロセッサの回路動作を説明できる。
4.CPUのアーキテクチャに基づいて、高速に機器を制御するときのC言語でのコーディング方法を説明できる。
概要:
マイクロプロセッサは機器の動作を制御するために広く利用されている。前期は、コンピュータハードウェアの基礎となるブール代数、ならびに静的な論理回路、動的なフリップフロップについて講義する。後期は、C言語とマシン語を結ぶアセンブラ言語を通して、マイクロプロセッサの論理回路と動作原理、ならびにプロセッサとバスシステムやメモリの関係について講義する。
授業の進め方・方法:
前期は、2進数の加算・減算、補数表現、ブール代数の計算、論理回路、加算・減算器、フリップ・フロップなど、CPUを理解する上での基本構成要素について座学で講義する。後期は、C言語で書かれた命令をMIPSアセンブラで表現する方法を講義し、アセンブラで記述された命令をHWで実現する方法について座学で講義し、C言語で記述されたプログラムが逐次型やパイプラインプロセッサでどのように実現されるのかを講義する。理解度を深めるために、適宜に練習問題を行う。
注意点:
評価については、評価割合に従って行います。ただし、適宜再試や追加課題を課し、加点することがあります。
中間試験を授業時間内に実施することがあります。
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
ガイダンス |
コンピュータ入門(歴史,原理)、基本的な用語につて理解する。
|
2週 |
数値表現 |
数の表現、補数表現を使った和・差の演算について理解する。
|
3週 |
論理表現1 |
AND,ORなどの論理代数、演算方法、真理値表について理解する。
|
4週 |
論理表現2 |
論理式の簡単化についてブール代数の規則から理解する。
|
5週 |
論理表現3 |
論理式の簡単化について、カルノー図,回路図の変換を使って理解する。
|
6週 |
静的論理回路1 |
AND、ORの回路表現方法、真理値表から回路へ、回路から真理値表への書換えを理解する。
|
7週 |
静的論理回路2 |
組合せ論理回路(基本回路,加算・減算回路,ゲート回路)について理解する。
|
8週 |
静的論理回路3 |
組合せ論理回路(デコーダ,マルチプレクサ,セレクタ)について理解する。
|
2ndQ |
9週 |
静的論理回路4 |
順序回路(状態遷移図,状態遷移表,状態割当て)につて理解する。
|
10週 |
動的論理回路の基礎 |
順序回路(順序回路の簡単化,順序回路の実現方法)について理解する。
|
11週 |
動的論理回路1 |
SRフリップフロップを例として動的回路の基礎原理を理解する。
|
12週 |
動的論理回路2 |
フリップフロップの種類とタイミングチャートについて理解する。
|
13週 |
動的論理回路3 |
フリップ・フロップを使ったカウンタについて理解する。
|
14週 |
動的論理回路4 |
シフトレジスタについて理解する。
|
15週 |
まとめ |
2進数とブール代数について理解し、真理値表に基づいて、静的論理回路、動的論理回路の設計ができる。
|
16週 |
|
|
後期 |
3rdQ |
1週 |
C言語とアセンブラ |
C言語をコンパイルしたときに、中間言語のアセンブラを介して、マシン語に変換される過程を理解する。
|
2週 |
アセンブラ言語1 |
コンピュータ言語は、変数・配列定義、演算、ループ、条件判定、関数定義が必要となることを理解する。
|
3週 |
アセンブラ言語2 |
メモリ内での変数・配列の表現について理解する。加減算のアセンブラ言語での表現について理解する。
|
4週 |
アセンブラ言語3 |
ループ、条件分岐に関するアセンブラ言語での表現について理解する。
|
5週 |
アセンブラ言語4 |
関数呼び出し時におけるスタック方式とプッシュ/ポップを実現するアセンブラでの表現について理解する。
|
6週 |
アセンブラ言語5 |
CPUによるアドレッシング方式について、アセンブラ言語で理解する。
|
7週 |
数値表現 |
IEEE754の浮動小数点表示、浮動小数点表示の加減算方法を理解する。
|
8週 |
プロセッサの構成と処理手順 |
プロセッサによるアセンブラ言語の実現方法についてHW構成を理解する。プロセッサの処理手順は、5段階あることを理解する。
|
4thQ |
9週 |
プロセッサの命令処理方法1 |
命令フェチ過程と命令デコード過程についてプロセッサのHW構成について理解する。
|
10週 |
プロセッサの命令処理方法2 |
レジスタアクセス過程、演算過程、データ書き込み過程についてプロセッサのHW構成について理解する。
|
11週 |
プロセッサの命令処理方法3 |
R形式のアセンブラ言語のプロセッサでの処理手順を理解する。命令ごとの制御線信号について理解する。
|
12週 |
プロセッサの命令処理方法4 |
I形式、J形式のアセンブラ言語のプロセッサでの処理手順を理解する。命令ごとの制御線信号について理解する。
|
13週 |
プロセッサの命令処理方法5 |
シングル方式のマイクロプロセッサの動作原理を理解する。
|
14週 |
プロセッサの命令処理方法6 |
パイプライン方式のマイクロプロセッサの動作原理を理解する。
|
15週 |
まとめ |
アーキテクチャに依存した計算速度が見積もれる。C言語で高速に機器を制御するときに注意すべきコーディング方法を理解する。
|
16週 |
|
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
基礎的能力 | 工学基礎 | 情報リテラシー | 情報リテラシー | 論理演算と進数変換の仕組みを用いて基本的な演算ができる。 | 3 | 前15 |
コンピュータのハードウェアに関する基礎的な知識を活用できる。 | 3 | 後15 |
情報伝達システムやインターネットの基本的な仕組みを把握している。 | 3 | 前1 |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。 | 3 | 後15 |
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。 | 3 | 後15 |
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。 | 3 | 後15 |
専門的能力 | 分野別の専門工学 | 機械系分野 | 情報処理 | プログラムを実行するための手順を理解し、操作できる。 | 3 | 後1 |
定数と変数を説明できる。 | 3 | 後2,後3 |
整数型、実数型、文字型などのデータ型を説明できる。 | 3 | 後3,後7 |
演算子の種類と優先順位を理解し、適用できる。 | 3 | 前2 |
算術演算および比較演算のプログラムを作成できる。 | 3 | 後2 |
条件判断プログラムを作成できる。 | 3 | 後4 |
繰り返し処理プログラムを作成できる。 | 3 | 後4 |
一次元配列を使ったプログラムを作成できる。 | 3 | |
情報系分野 | ソフトウェア | アルゴリズムの概念を説明できる。 | 3 | 後2 |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 3 | 後2 |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 3 | 後2 |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 3 | 後2 |
時間計算量によってアルゴリズムを比較・評価できることを説明できる。 | 3 | 後15 |
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。 | 3 | 後15 |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 3 | 後3 |
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。 | 3 | 後15 |
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。 | 3 | 後15 |
計算機工学 | 整数・小数をコンピュータのメモリ上でディジタル表現する方法を説明できる。 | 4 | 前2,前15 |
基数が異なる数の間で相互に変換できる。 | 4 | 前2 |
整数を2進数、10進数、16進数で表現できる。 | 4 | 前2 |
小数を2進数、10進数、16進数で表現できる。 | 4 | 前2 |
基本的な論理演算を行うことができる。 | 4 | 前3,前15 |
基本的な論理演算を組合わせて、論理関数を論理式として表現できる。 | 3 | 前3 |
論理式の簡単化の概念を説明できる。 | 4 | 前4,前5 |
簡単化の手法を用いて、与えられた論理関数を簡単化することができる。 | 3 | 前4,前5 |
論理ゲートを用いて論理式を組合せ論理回路として表現することができる。 | 4 | 前6 |
与えられた組合せ論理回路の機能を説明することができる。 | 4 | 前7,前8 |
組合せ論理回路を設計することができる。 | 3 | 前8 |
フリップフロップなどの順序回路の基本素子について、その動作と特性を説明することができる。 | 3 | 前9,前10,前11,前12,前15 |
レジスタやカウンタなどの基本的な順序回路の動作について説明できる。 | 3 | 前13 |
与えられた順序回路の機能を説明することができる。 | 4 | 前12,前14 |
順序回路を設計することができる。 | 4 | 前12,前13,前14 |
コンピュータを構成する基本的な要素の役割とこれらの間でのデータの流れを説明できる。 | 3 | 前1,後15 |
プロセッサを実現するために考案された主要な技術を説明できる。 | 3 | 前1,後6,後8,後9,後10,後11,後12,後13,後14 |
メモリシステムを実現するために考案された主要な技術を説明できる。 | 3 | 前1 |
入出力を実現するために考案された主要な技術を説明できる。 | 3 | 前1 |
コンピュータアーキテクチャにおけるトレードオフについて説明できる。 | 3 | 後15 |
ハードウェア記述言語など標準的な手法を用いてハードウェアの設計、検証を行うことができる。 | 3 | 前15 |
システムプログラム | コンピュータシステムにおけるオペレーティングシステムの位置づけを説明できる。 | 3 | 後1,後5 |
コンパイラの役割と仕組みについて説明できる。 | 3 | 後1 |