シラバス参照

講義概要/Course Information
2024/06/20 現在

科目基礎情報/General Information
授業科目名
/Course title (Japanese)
計算機通論
英文授業科目名
/Course title (English)
Computer Organization and Assembly Language Programming
科目番号
/Code
COM301a COM301b COM301c COM301d COM301e
開講年度
/Academic year
2024年度 開講年次
/Year offered
2
開講学期
/Semester(s) offered
前学期 開講コース・課程
/Faculty offering the course
情報理工学域
授業の方法
/Teaching method
講義 単位数
/Credits
2
科目区分
/Category
専門科目
開講類・専攻
/Cluster/Department
Ⅰ類
担当教員名
/Lecturer(s)
鈴木 貢
居室
/Office
非常勤講師控室
公開E-mail
/e-mail
gsuzuki(at)niid.go.jp
授業関連Webページ
/Course website
授業資料や連絡等はGoogle Classroomに掲載します。
更新日
/Last update
2024/03/16 11:49:48 更新状況
/Update status
公開中
/now open to public
講義情報/Course Description
主題および
達成目標(2,000文字以内)
/Themes and goals(up to 2,000 letters)
(プログラム格納型)計算機のハードウエアは抽象化すると、プロセッサ(中央処理装置)、主記憶(メモリ)、入出力装置(I/O)の3要素から構成される。
 プログラムは主記憶の上に置かれた機械語の列で、これらをプロセッサが逐次的に取り出して解釈・実行しながらデータ処理が進む.機械語はビット割りという「文法」と、その処理内容を符号化した命令コードという「意味」を持つプログラミング言語の1つである。プロセッサが直接操作できるデータ(オペランド)は、プロセッサや入出力装置が内蔵する記憶であるレジスタあるいはメモリに置かれており,機械語はその位置(番地)を指定(アドレッシング)する。レジスタの数等を含めた機械語の仕様のことを命令セットアーキテクチャと呼ぶ。本講では、1つの命令セットアーキテクチャについて、機械語やそれを可読化したアセンブリ言語を学び、深く理解する。
 また、ある命令セットアーキテクチャを実現する論理回路の構成をマイクロアーキテクチャと呼ぶ。マイクロアーキテクチャは複数存在し、性能や消費電力やコストの面が異なる。
 CやJava等の高級言語でブログラミングすることが常識となった今日であっても、情報工学技術者は、計算機の性能を生かし最適な情報システムの設計を行うために、これらについて理解し説明できなければならない。
前もって履修
しておくべき科目(1,000文字以内)
/Prerequisites(up to 1,000 letters)
コンピュータリテラシ、基礎プログラミング及び演習
前もって履修しておくこ
とが望ましい科目(1,000文字以内)
/Recommended prerequisites and preparation(up to 1,000 letters)
なし
教科書等(1,000文字以内)
/Course textbooks and materials(up to 1,000 letters)
下記を推薦図書とする。
Sarah L. Harris、David Money Harris 著(天野 英晴、中條 拓伯、鈴木 貢、永松 礼夫 訳)
ディジタル回路設計とコンピュータアーキテクチャ 第2版(翔泳社)

下記を参考図書とする。
ジョン L ヘネシー、デイビッド A パターソン 著(中條 拓伯、天野 英晴、鈴木 貢 訳)
コンピュータアーキテクチャ[第6版]定量的アプローチ(発行:エスアイビー・アクセス 発売:星雲社)

ダグラス E.カマー 著(鈴木 貢、中條 拓伯、仲谷 栄伸、並木 美太郎 訳)コンピュータアーキテクチャのエッセンス(翔泳社)
授業内容と
その進め方(2,000文字以内)
/Course outline and weekly schedule(up to 2,000 letters)
第1回 導入:プログラミング言語の定義、C言語の復習
第2回 データの表現:整数、浮動小数点数、文字コードと文字列
第3回 プログラマから見たプログラム格納型計算機の構成:プロセッサ、メモリ、入出力
第4回 プログラマから見たプロセッサの構成:MIPSの命令セットアーキテクチャとアセンブリ言語と機械語
第5回 MIPSプログラミング(1):算術/論理命令
第6回 MIPSプログラミング(2):分岐/条件文とループと配列
第7回 MIPSプログラミング(3):関数呼び出しと再帰
第8回 MIPSプログラミング(4):番地指定
第9回 MIPSプログラミング(5):疑似命令、例外、符号付き命令と符号なし命令、浮動小数点命令
第10回 現実のアーキテクチャの例:x86アーキテクチャ
第11回 MIPSのマイクロアーキテクチャと命令実行の概要
第12回 命令実行高速化技術:分岐予測、スーパースカラ、アウトオブオーダ、レジスタリネーミング、マルチスレッディング
第13回 記憶階層と入出力:キャッシュ、仮想記憶、入出力システム
第14回 並列処理アーキテクチャ:フリンの分類、MIMD、SIMD、ホモジーニアスマルチプロセッサ、ヘテロジーニアスマルチプロセッサ
第15回 先進的な話題
実務経験を活かした
授業内容
(実務経験内容も含む)
/Course content utilizing practical experience
なし
授業時間外の学習
(予習・復習等)(1,000文字以内)
/Preparation and review outside class(up to 1,000 letters)
講義ノートや推薦図書などを用いて予習復習をしておくこと。
成績評価方法
および評価基準
(最低達成基準を含む)
(1,000文字以内)
/Evaluation and grading
(up to 1,000 letters)
評価方法:レポートと中間試験と期末試験により評価を行なう。レポートは試験で失敗した際のセーフティーネットとする予定である。

評価基準:計算機のアーキテクチャ及びアセンブリプログラミングを理解していること。
(1)計算機内部におけるデータの表現について理解している。
(2)アーキテクチャ、ハードウェア、ソフトウェアの関係や階層を理解している。
(3)プログラム格納型計算機の特徴、基本構造、機能、問題点、および性能評価を理解している。
(4)オペランドとアドレス指定、アドレス付与規則、オペレータ指定される基本的演算とサブルーチンについて理解している。
(5)アセンブリ言語を用いたプログラミングができる。
(6)命令実行高速化技術とそれによる性能向上と、それに対応する命令列の構成を理解している。
(7)記憶階層における局所性原理を理解している。
(8)入出力の動作原理を理解している。
オフィスアワー:
授業相談(1,000文字以内)
/Office hours(up to 1,000 letters)
質問等は原則として授業時間内に行うこと。連絡にはメールかGoogle Classroomを使ってください。
学生へのメッセージ(1,000文字以内)
/Message for students(up to 1,000 letters)
本講は計算機の基礎に関する講義です。
C言語でのプログラミングが自在にできるという前提の上で、その動作の舞台裏を理解していることは、幅広い課題に対応できる情報処理技術者としての必須事項です。
その他
/Others
なし
キーワード
/Keywords
命令セットアーキテクチャ、アセンブリ言語、機械語、命令格納型計算機、数の表現、マイクロアーキテクチャ