計算機アーキテクチャ基礎

科目基礎情報

学校 沼津工業高等専門学校 開講年度 平成30年度 (2018年度)
授業科目 計算機アーキテクチャ基礎
科目番号 2018-498 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 履修単位: 2
開設学科 制御情報工学科 対象学年 2
開設期 通年 週時間数 2
教科書/教材 自作の講義ノートを使用する
担当教員 宮下 真信

到達目標

1.真理値表が与えられたとき、論理式を求めて論理回路を設計できる。                                                
2.C言語で書かれたプログラムをアセンブラ言語で表現できる。                                                   
3.アセンブラ言語で書かれたプログラムを実現するプロセッサの回路動作を説明できる。
4.CPUのアーキテクチャに基づいて、高速に機器を制御するときのC言語でのコーディング方法を説明できる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
ブール代数、論理回路の基礎知識を修得制御目的に関する真理値表を作成し、論理式を求めて論理回路を設計できる。さらに、ハザードの問題などを解決できる。制御目的に関する真理値表を作成し、論理式を求めて論理回路を設計できる。制御目的に関する真理値表を作成し、論理式を求めて論理回路を設計できない。
プログラムとプロセッサの回路との関係を修得アセンブラ言語で書かれたプログラムを実現するプロセッサの回路動作を説明できる。逐次型とパイプライン型のプロセッサでの実行時間を見積もることができる。アセンブラ言語で書かれたプログラムを実現するプロセッサの回路動作を説明できる。アセンブラ言語で書かれたプログラムを実現するプロセッサの回路動作を説明できない。
高速演算の手法を修得CPUのアーキテクチャに基づいて、高速に機器を制御するときのC言語での注意点を説明できる。さらに、注意点に基づいてプログラムを作成することができる。CPUのアーキテクチャに基づいて、高速に機器を制御するときのC言語での注意点を説明できる。CPUのアーキテクチャに基づいて、高速に機器を制御するときのC言語でのコーディング方法を説明できない。

学科の到達目標項目との関係

【本校学習・教育目標(本科のみ)】 3 説明 閉じる

教育方法等

概要:
マイクロプロセッサは機器の動作を制御するために広く利用されている。前期は、コンピュータハードウェアの基礎となるブール代数、ならびに静的な論理回路、動的なフリップフロップについて講義する。後期は、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
コンピュータのハードウェアに関する基礎的な知識を活用できる。3
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。3
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。3
専門的能力分野別の専門工学機械系分野情報処理プログラムを実行するための手順を理解し、操作できる。3
定数と変数を説明できる。3
整数型、実数型、文字型などのデータ型を説明できる。3
演算子の種類と優先順位を理解し、適用できる。3
算術演算および比較演算のプログラムを作成できる。3
条件判断プログラムを作成できる。3
繰り返し処理プログラムを作成できる。3
一次元配列を使ったプログラムを作成できる。3
情報系分野ソフトウェアアルゴリズムの概念を説明できる。3
与えられたアルゴリズムが問題を解決していく過程を説明できる。3
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。3
整列、探索など、基本的なアルゴリズムについて説明できる。3
時間計算量によってアルゴリズムを比較・評価できることを説明できる。3
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。3
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。3
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。3
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。3
計算機工学整数・小数をコンピュータのメモリ上でディジタル表現する方法を説明できる。4
基数が異なる数の間で相互に変換できる。4
整数を2進数、10進数、16進数で表現できる。4
小数を2進数、10進数、16進数で表現できる。4
基本的な論理演算を行うことができる。4
基本的な論理演算を組合わせて、論理関数を論理式として表現できる。3
論理式の簡単化の概念を説明できる。4
簡単化の手法を用いて、与えられた論理関数を簡単化することができる。3
論理ゲートを用いて論理式を組合せ論理回路として表現することができる。4
与えられた組合せ論理回路の機能を説明することができる。4
組合せ論理回路を設計することができる。3
フリップフロップなどの順序回路の基本素子について、その動作と特性を説明することができる。3
レジスタやカウンタなどの基本的な順序回路の動作について説明できる。3
与えられた順序回路の機能を説明することができる。4
順序回路を設計することができる。4
コンピュータを構成する基本的な要素の役割とこれらの間でのデータの流れを説明できる。3
プロセッサを実現するために考案された主要な技術を説明できる。3
メモリシステムを実現するために考案された主要な技術を説明できる。3
入出力を実現するために考案された主要な技術を説明できる。3
コンピュータアーキテクチャにおけるトレードオフについて説明できる。3
ハードウェア記述言語など標準的な手法を用いてハードウェアの設計、検証を行うことができる。3
システムプログラムコンピュータシステムにおけるオペレーティングシステムの位置づけを説明できる。3
コンパイラの役割と仕組みについて説明できる。3

評価割合

試験発表相互評価態度ポートフォリオその他合計
総合評価割合10000000100
基礎的能力500000050
専門的能力500000050
分野横断的能力0000000