スライド 1

Similar documents
スライド 1

スライド 1

スライド 1

スライド 1

スライド 1

この方法では, 複数のアドレスが同じインデックスに対応づけられる可能性があるため, キャッシュラインのコピーと書き戻しが交互に起きる性のミスが発生する可能性がある. これを回避するために考案されたのが, 連想メモリアクセスができる形キャッシュである. この方式は, キャッシュに余裕がある限り主記憶の

計算機アーキテクチャ

C プログラミング 1( 再 ) 第 5 回 講義では C プログラミングの基本を学び演習では やや実践的なプログラミングを通して学ぶ

ソフトウェア基礎技術研修

Slides: TimeGraph: GPU Scheduling for Real-Time Multi-Tasking Environments

C に必要なコンピュータ知識 C はコンピュータの力を引き出せるように設計 コンピュータの知識が必要

スライド 1

PowerPoint プレゼンテーション

Microsoft PowerPoint - 1st

コンピュータ工学Ⅰ

コンピュータ工学Ⅰ

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

Microsoft PowerPoint - 11Web.pptx

プログラミング実習I

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

OS

第 1 回 C 言語講座 1. コンピュータって? だいたいは 演算装置 制御装置 記憶装置 入出力装置から構成されている 演算装置 CPU の一部で実際に計算を行う装置 制御装置 CPU の一部で演算装置や入出力装置 記憶装置の読み書きなどを制御する装置 記憶装置プログラムや情報 データを一時的

< B8CDD8AB B83685D>

ソフトウェア基礎技術研修

PowerPoint プレゼンテーション

10-vm1.ppt

スライド 1

Microsoft PowerPoint ppt

Microsoft PowerPoint - OS07.pptx

ComputerArchitecture.ppt

スライド 1

情報科学概論

スライド 1

Microsoft PowerPoint - NxLec ppt

情報通信の基礎

PowerPoint プレゼンテーション

Microsoft Word - 19-d代 試é¨fi 解ç�fl.docx

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤

Microsoft PowerPoint - GPGPU実践基礎工学(web).pptx

Microsoft PowerPoint - Lec ppt [互換モード]

Microsoft PowerPoint ppt

cmpsys15w07_os.ppt

Slides: TimeGraph: GPU Scheduling for Real-Time Multi-Tasking Environments

PowerPoint プレゼンテーション

Microsoft PowerPoint - sp ppt [互換モード]

計算機のリソースとは 1.CPU 2. 主記憶 3. 補助記憶装置 の抽象化

物質工学科 田中晋

PowerPoint プレゼンテーション

Microsoft PowerPoint - Lecture ppt [互換モード]

Microsoft PowerPoint - Chap4 [Compatibility Mode]

< コンピュータの基本的仕組み > コンピュータは, クロック信号と呼ばれる周期的な論理信号に同期し, 主記憶装置に記憶され ている命令を, 以下の手順で読み込み, 実行することにより動作している. 命令読み込み Instruction Fetch 命令解読 Decode 命令実行 Executio

cmpsys13w03_cpu_hp.ppt

インテル アーキテクチャプラットフォーム リーダーシップ 2000 年 12 月 21 日 第 14 回数値流体力学シンポジウム インテル株式会社 ia 技術本部本部長坂野勝美

PowerPoint プレゼンテーション

スライド 1

01-introduction.ppt

出 アーキテクチャ 誰が 出 装置を制御するのか 1

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

スライド 1

問 2. タイミングチャート以下に示す VHDL コードで記述されている回路に関するタイミングチャートを完成させよ ) レジスタの動作 use IEEE.std_logic_64.all; entity RegN is generic (N : integer := 8 port ( CLK, EN

PowerPoint プレゼンテーション

2. セットアップ手順の開始 セットアップ手順を進める前に OS をインストールするパーティションのサイズを決定して ください システムをインストールするパーティションのサイズは 次の計算式から求めること ができます インストールに必要なサイズ + ページングファイルサイズ + ダンプファイルサイズ

コンピュータの仕組み(1)ハードウェア

Microsoft Word - レポート回答集.docx

PowerPoint プレゼンテーション

2ALU 以下はデータ幅 4ビットの ALU の例 加算, 減算,AND,OR の4つの演算を実行する 実際のプロセッサの ALU は, もっと多種類の演算が可能 リスト 7-2 ALU の VHDL 記述 M use IEEE.STD_LOGIC_1164.ALL; 00 : 加算 use IEE

PowerPoint プレゼンテーション

PowerPoint Presentation

Prog1_2nd

言語プロセッサ2005

about MPI

Microsoft PowerPoint - 集積回路工学_ ppt[読み取り専用]

(Microsoft PowerPoint - \221g\202\335\215\236\202\335\203\\\203t\203g\203E\203F\203A\215H\212w No03\201i\224z\225z\227p\201j.pptx)

スライド 1

スライド 1

Microsoft PowerPoint - OS1.ppt [互換モード]

本文ALL.indd

TFTP serverの実装

計算機アーキテクチャ

Microsoft PowerPoint - pc11.ppt

PowerPoint プレゼンテーション

本書は INpMac v2.20(intime 5.2 INplc 3 Windows7/8/8.1に対応 ) の内容を元に記載しています Microsoft Windows Visual Studio は 米国 Microsoft Corporation の米国及びその他の国における登録商標です

プログラミング基礎

UNIX 初級講習会 (第一日目)

計算機アーキテクチャ

Microsoft PowerPoint - No6note.ppt

Microsoft PowerPoint - sp ppt [互換モード]

前回までの復習 情報処理工学 : 第 5 回 第 4 章コンピュータの基本構成 第 6 回へ 第 2 章ディジタルデータの表し方 2/8/10/16 進数とは? 2/10/16 進数の変換 特に 小数点以下の数字を含む 10 進数の 2 進数表現を学習 2 の補数 : 引き算に必要な考え方 第 3

04-process_thread_2.ppt

OS

熊本大学学術リポジトリ Kumamoto University Repositor Title GPGPU による高速演算について Author(s) 榎本, 昌一 Citation Issue date Type URL Presentation

Microsoft PowerPoint - No15›¼‚z‰L›¯.ppt

コンテンツセントリックネットワーク技術を用いた ストリームデータ配信システムの設計と実装

ic3_cf_p1-70_1018.indd

6. パイプライン制御

コンピュータのしくみ

C プログラミング 1( 再 ) 第 4 回 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 1

TopSE並行システム はじめに

Transcription:

東北大学工学部機械知能 航空工学科 2016 年度 5 セメスター クラス C3 D1 D2 D3 計算機工学 14. さらに勉強するために 大学院情報科学研究科 鏡慎吾 http://www.ic.is.tohoku.ac.jp/~swk/lecture/

0 と 1 の世界 これまで何を学んだか 2 進数, 算術演算, 論理演算 計算機はどのように動くのか プロセッサとメモリ 演算命令, ロード ストア命令, 分岐命令 計算機はどのように構成されているのか 組合せ回路 論理関数 論理式の標準形, 論理式の簡単化 順序回路 有限状態機械 メインメモリ, キャッシュメモリ 2

話し切れなかったこと 0 と 1 の世界 実数は? 2 進数, 算術演算, 論理演算 計算機はどのように動くのか プロセッサとメモリ以外は? プロセッサとメモリ 演算命令, ロード ストア命令, 分岐命令 コンパイラはどうやって命令を生成する? 計算機はどのように構成されているのか 高速化技術? 組合せ回路 論理関数 論理式の標準形, 論理式の簡単化 順序回路 有限状態機械 メインメモリ, キャッシュメモリ 3

Q. 実数はどのように表現するか? 浮動小数点数を用いる ( 教科書 1.3 節 ) 考え方の基礎は, いわゆる科学的記数法 ( 指数表記 ) 6.02 10 23 1.602 10-19 仮数部 指数部 仮数部は 1 以上 10 未満にする ( 正規化 ) 仮数部の桁数がいわゆる有効数字 これの 2 進数版が浮動小数点数 仮数部も指数も有限ビットの 2 進数で表す 指数部の底は 10 ではなく 2 仮数部は 1 以上 2 未満にする ( 正規化 ) 4

単精度 (C 言語の float) 1 8 23-bit 符号指数部仮数部 倍精度 (C 言語の double) IEEE 754 浮動小数点数 1 11 52-bit 符号指数部仮数部 1.01101101 2 1100110 符号 : 0: 正 1: 負 仮数部 指数部 5

Q. プロセッサとメモリ以外の機器は? ディスプレイもキーボードもハードディスクも, 入出力装置 (Input/Output device, I/O) として扱われる ( 教科書付録 C 章 ) メモリ プロセッサ I/O 装置 1 I/O 装置 2 I/O 装置 3 アドレスバス データバス 装置ごとに割り当てられたアドレス範囲にアクセスすることで特定の I/O 装置と通信できる (memory mapped I/O 方式 ) I/O 専用の命令とアドレス空間が用意されているアーキテクチャもある (I/O 専用命令方式 ) 6

PC 用の入出力バスの例 ( ちょっと古い ) ディスプレイ プロセッサ メモリ ノースブリッジ PCI Express x16 AGP グラフィックプロセッサ PCI Express x1 PCI USB サウスブリッジ ATA ネットワークアダプタ キーボード マウス ハードディスク CD / DVD 7

コンピュータネットワーク ( 教科書 10 章 ) router 通信内容は, 細かい単位 ( パケット ) に分割されて送受信される パケットには宛先アドレス (4 バイトの数字 ) が記載されていて, ルータと呼ばれるコンピュータを介してバケツリレー式に送り届けられる local area network (LAN) 8

( 自分の ) アドレス サブネットマスク 00001010. 11110000. 00001010. 11001111 11111111. 11111111. 11111111. 00000000 自分のアドレスとサブネットマスクのビットごと AND と, 宛先アドレスとサブネットマスクのビットごと AND を比較する. 等しければ同じ LAN の中にいるので,LAN 内で定められた手順によって通信する 等しくなければ, デフォルトゲートウェイ ( デフォルトルータ ) として設定されているルータへ送信して, あとは任せる デフォルトゲートウェイ 00001010. 11110000. 00001010. 00000001 9

Q. なぜ複数のプログラムが同時に走るのか? オペレーティングシステム (OS) と呼ばれるソフトウェアが, 複数のプログラムの時分割切り替えを行っている ( 教科書付録 D 章 ) 具体例 : Windows, MacOS, Linux など OS の役割 : ハードウェアの詳細を隠蔽して, 抽象化されたマシンをプログラムに提供する例 : A 社のハードディスク,B 社のハードディスク,C 社の USB メモリ ファイル という概念で統一的に操作できる 複数のプログラム, 複数のユーザの間で, 必要な資源 ( ハードウェア ) を適切に管理する例 : 同時にディスクを読み書きしても大丈夫 Word が不正なアドレスを読み書きしても,Excel には影響がない 10

OS の概念 process A process C process E software process D process B operating system hardware プロセッサ メモリ管理ユニット disk network interface memory 複数のプロセスにハードウェア資源を ( 多くの場合時分割で ) 割り当てるソフトウェア 11

プロセッサ時間の割り当て process A process B process C waiting t OS タイマ割込み システムコール ( 入出力リクエスト ) 機器からの割込み 入出力 12

メモリの割り当て ( 仮想記憶 ) プロセス A プロセス B プロセス C 物理メモリ スタックフレームスタックフレームスタックフレーム ページ 静的変数等静的変数等静的変数等 メモリ管理ユニット ( ハードウェア ) + OS プログラムプログラムプログラム ハードディスク 13

Q. コンピュータはどのように高速化する? 半導体素子の微細化により, トランジスタ動作速度の向上と, 大量の回路の利用が可能となってきた ( 教科書付録 F 章 ) 動作速度向上 クロックサイクル時間の短縮大量の回路 並列処理 クロック周波数の向上は既に頭打ちになっており, 並列処理の重要性が高まっている 14

MIPS のパイプライン化 レジスタ m u x 分岐判定分岐先計算 PC +4 命令キャッシュ 命令デコード レジスタファイル m u x m u x A L U データキャッシュ m u x 命令フェッチステージ (IF) レジスタ読込 デコードステージ (ID) ALU 実行ステージ (EX) メモリアクセスステージ (MEM) レジスタ書込ステージ (WB) 15

命令 1 命令パイプライン IF ID EX MEM WB t 命令 2 命令 3 命令 4 命令 5 命令 6 1 clk IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB これも一種の並列処理 ( 複数のステージが同時に動いている ) 16

命令 1 パイプラインのさらなる細分化 IF ID EX MEM WB t 命令 2 命令 3 1 clk IF ID EX MEM WB IF ID EX MEM WB 命令 1 t 命令 2 1 clk 命令 3 Pentium 4 はおおむね 20~30 段 Core i7 等はおおむね 14~16 段 17

命令レベル並列性 IF ID EX MEM WB ID EX MEM WB IF ID EX MEM WB ID EX MEM WB IF ID EX MEM WB ID EX MEM WB スーパースカラ : 演算器を多重化し, 複数命令を同時実行 同時実行可能かどうかはハードウェアが動的に判定 18

例 : Core i7 Sandy Bridge http://ascii.jp/elem/000/000/724/724498/ 19

データ並列性 画像処理, 音声処理, ある種の科学技術計算など 同じ演算を多数のデータに適用することが多い (SIMD; Single Instruction stream Multiple Data stream) SIMD 型並列処理の実現形態 : 空間並列 : 同じ演算器を多数並べる例 ) マルチメディア命令 (MMX, SSE 命令など ) 例 ) GPU (Graphic Processing Unit) 時間並列 : 処理を複数のステージに分割してパイプライン化 ( ベクトル演算と呼ばれる場合がある ) 20

空間並列の例 浮動小数点ベクトル [a 1, a 2,, a n ] と [b 1, b 2,, b n ] の加算 a 1 b 1 + c 1 a 5 b 5 + c 5 a 2 b 2 + c 2 a 6 b 6 + c 6 a 3 b 3 + c 3 a 7 b 7 + c 7 a 4 b 4 + c 4 a 8 b 8 + c 8 t = 1 t = 2 21

t = 1 a 1 b 1 時間並列の例 指数部比較桁合わせ仮数部加算正規化 t = 2 t = 3 t = 4 a 2 指数部比較桁合わせ仮数部加算正規化 b 2 a 1 a 3 b 1 指数部比較桁合わせ仮数部加算正規化 b 3 a 2 a 4 b 2 a 1 b 1 a 2 指数部比較桁合わせ仮数部加算正規化 b 4 a 3 b 3 b 2 c1 t = 5 a 5 b 5 a 4 a 3 指数部比較桁合わせ仮数部加算正規化 b 4 b 3 c 2 c 1 22

例 : GPU (Graphics Processing Unit) NVIDIA GeForce GTX 560 Ti http://pc.watch.impress.co.jp/docs/column/kaigai/20110126_422573.html http://www.nvidia.co.jp/object/product-geforce-gtx-560ti-jp.html 23

スレッドレベル並列性 クロックサイクル時間短縮 : 消費電力の限界 命令レベル並列性 : 3 程度が限界 データ並列性 : アプリケーション依存 スレッドレベル並列性の活用へ 複数のプログラム, あるいはプログラム内の複数の処理の流れ (thread of control) からであれば, 同時に実行できる命令を容易に取り出すことができる 同時マルチスレッディング : スーパースカラプロセッサにおいて, 複数のスレッドからの命令を取り出して実行例 ) Intel の Hyper-Threading Technology マルチコア : 複数のプロセッサをチップ上に集積 24

Intel Core i7 (2008) 25

Q. コンパイラはどのように動作する? if (x1 == 100) { y2 = x1 + 3 * z; } 字句解析 if ( x1 == 100 ) { y2 = x1 + 3 * z ; } if == = 構文解析 ( 教科書 9 章 ) x1 100 y2 x1 + 3 * z 26

字句 (token) の定義例 識別子 予約語 : [a-za-z][a-za-z0-9]* 整数 : [0-9][0-9]* 記号は以下のいずれか : ( ) { } = == + * ; a から z, A から Z, 0 から 9 のうちいずれかの文字 直前の文字の 0 回以上の繰り返し 字句は正規表現と呼ばれる方法で表せるように定義する 有限状態機械で解析することができる 27

space A ini PU N = OP N id1 nu1 eq1 op1 AN else else else = eq2 * * 識別子 予約語 整数 演算子 == 他の演算子 演算子 = AN: [a-za-z0-9] A: [a-za-z] N: [0-9] OP: + * のいずれか PU: ( ) { } ; のいずれか space: 空白文字 二重丸は, 字句を出力して, 読んだ 1 文字を戻し, 初期状態 ini に戻る pu1 * 括弧 句読点 28

構文 (syntax) の定義例 プログラム ::= ( 文 )* 0 回以上の繰り返し 文 ::= if 文 while 文 式文 複文 式文 ::= 式 ; 複文 ::= { ( 文 )* } if 文 ::= if ( 式 ) 文 while 文 ::= while ( 式 ) 文 式 ::= 関係式 ( = 式 )? 関係式 ::= 加法式 ( == 加法式 )* 加法式 ::= 項 ( + 項 )* 0 回または1 回の出現 項 ::= 因子 ( * 因子 )* 因子 ::= 識別子 整数 ( 式 ) または 任意の深さの括弧の対応を含むような文法は有限状態機械では解析できない ( 無限の状態が必要 ) 再帰的な文法定義に基づいて解析を行う 29