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

Similar documents
の 内 容 の 一 貫 性 )を 保 つために 用 いられるのが スヌープ キャッシュ 方 式 である. キャッシュメモリにおいて, 主 記 憶 のアドレスの 下 部 (インデックス)を 用 いてキャッシュメモリ 上 のインデックスを 求 める 方 法 を ダイレクトマッピング と 呼 ぶ.キャッシ

< B8CDD8AB B83685D>

講義計画 1. コンピュータの歴史 1 2. コンピュータの歴史 2 3. コンピュータの歴史 3 4. 論理回路と記憶, 計算 : レジスタとALU 5. 主記憶装置とALU, レジスタの制御 6. 命令セットアーキテクチャ 7. 演習問題 8. パイプライン処理 9. メモリ階層 : キャッシュ

Microsoft PowerPoint - Sol7 [Compatibility Mode]

計算機アーキテクチャ

hard5.pptx

020105.メモリの高機能化

Microsoft PowerPoint - arc5

PowerPoint プレゼンテーション

計算機アーキテクチャ

6. パイプライン制御

Microsoft PowerPoint - No7note.ppt

MIPSのマイクロアーキテクチャ

Microsoft PowerPoint - arc12

Microsoft PowerPoint - Chap5 [Compatibility Mode]

Microsoft PowerPoint - OS07.pptx

Operating System 仮想記憶

Microsoft PowerPoint - OS09.pptx

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

OS

スライド 1

hard3.pptx

-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

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

スライド 1

システムLSIとアーキテクチャ技術  (part II:オンチップ並列            アーキテクチャ)

ex04_2012.ppt

Microsoft PowerPoint - Chap4 [Compatibility Mode]

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

スライド 1

PowerPoint Presentation

スライド 1

Microsoft PowerPoint - 11Web.pptx

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

PowerPoint プレゼンテーション

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

システムソフトウエア2013/1/30 演習問題 学科 学籍番号 氏名 1. つぎの文章の空白を埋めなさい. コンピュータは,CPU( 中央処理装置 ) とメモリ, およびその他の入出力装置から構成されて いる. このうち,CPU は命令の (a) とデコードなどを行う制御部と, 実際の計 算を行う

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

ComputerArchitecture.ppt

スライド 1

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

Microsoft PowerPoint - No6note.ppt

Microsoft PowerPoint - ARC2009HashiguchiSlides.pptx

Microsoft PowerPoint - 09_2008_0619.pptx

スライド 1

スライド 1

コンピュータ工学Ⅰ

Microsoft PowerPoint - 3.3タイミング制御.pptx

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

スライド 1

Microsoft PowerPoint - OS11.pptx

スライド 1

OS

DRAM SRAM SDRAM (Synchronous DRAM) DDR SDRAM (Double Data Rate SDRAM) DRAM 4 C Wikipedia 1.8 SRAM DRAM DRAM SRAM DRAM SRAM (256M 1G bit) (32 64M bit)

ex05_2012.pptx

スライド 1

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

スライド 1

Microsoft PowerPoint - No3.ppt

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

コンピュータ工学Ⅰ

スライド タイトルなし

PowerPoint プレゼンテーション

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

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

COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1

スライド 1

スライド 1

Microsoft PowerPoint - NxLec ppt

ERDAS IMAGINE における処理速度の向上 株式会社ベストシステムズ PASCO CORPORATION 2015

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

Insert your Title here

スライド 1

Microsoft PowerPoint - ARC-SWoPP2011OkaSlides.pptx

CPUスケジューリング

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

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

スライド 1

Microsoft PowerPoint - ICD2011TakadaSlides.pptx

本日の範囲 ファイルとその中身 コンピュータにおける情報の表現 ファイルとフォルダ コンピュータの仕組み 通信 ネットワーク, インターネット 情報の符号化, その限界 コマンドライン プログラムの仕組み 通信の符号化, その限界 暗号 簡単なプログラムの作成 実行 Excel で計算 データの可視

計算機システム概論

Microsoft PowerPoint - NxLec ppt

Microsoft PowerPoint - OS12.pptx

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

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

スライド 1

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

Microsoft PowerPoint - OS12.pptx

V8_教育テキスト.dot

スライド 1

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

020204.入出力制御割込解説

Microsoft PowerPoint - kougi7.ppt

情報科学概論

Microsoft PowerPoint - t-kubo07PN-LAMBDA-slide.ppt

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

Microsoft PowerPoint ppt

Microsoft PowerPoint - OS04.pptx

組込み Linux の起動高速化 株式会社富士通コンピュータテクノロジーズ 亀山英司 1218ka01 Copyright 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED

Transcription:

計算機システム Ⅱ 演習問題学科学籍番号氏名 1. 以下の分の空白を埋めなさい. CPUは, 命令フェッチ (F), 命令デコード (D), 実行 (E), 計算結果の書き戻し (W), の異なるステージの処理を反復実行するが, ある命令の計算結果の書き戻しをするまで, 次の命令のフェッチをしない場合, ( 単位時間当たりに実行できる命令数 ) が低くなる. これを解決するために考案されたのがパイプライン処理である. パイプライン処理では, 各ステージの実行結果をパイプラインレジスタに格納しながら, 各ステージの処理結果が次のステージの入力として送られる. パイプライン処理がうまく実行できなくなる状態をハザードと呼ぶ. ハザードには, ハザード, データハザード, 制御ハザード, の 3 つがある. ハザードはコンピュータの内部構成が原因で生じるハザードである. 例えば, メモリアクセス機構が単一の計算機上で, 命令フェッチと, ロード ストアが同時に起きる場合にストールが起きるのは, このハザードに起因する現象であり, 計算資源の多重化をすることで解決すべき問題である. 先の問題では, 命令用メモリとデータ用メモリを分割することで, ハザードを回避することが出来る. ハザードは, 直前の計算結果を直後の命令が参照する場合等に生じる問題である. 命令レベル並列処理が導入されていなければ, 直前の計算結果をワンクロック遅れた実行ステージで参照することができるようにするによって, 解消することが出来る. ハザードは, 条件分岐命令を読み込むと, 次にどのアドレスに格納された命令を実行すれば良いのかが判断できなくなるために生じるハザードである. これを回避する方法として, 条件分岐によってどちらの命令が読み取られるかを予測する分岐予測がある. これが的中した場合にはストールは一切生じず, 外れた場合にリカバーのために必要となるクロック数は分岐予測をしない場合に生じるストールのクロック数とである. 制御ハザードのもう一つの解消方法は, である. これは, どういう条件でどこに分岐すべきかの命令を与えた後, 即座には分岐せず, 分岐先で共通に行う命令を先に実行してから分岐するものである. キャッシュメモリとは, メモリとの間に置かれた高速なメモリであり, 主記憶装置のメモリの内容をコピーして, 高速にアクセスすることが出来る. キャッシュメモリにおいて, 主記憶のアドレスの下部 ( インデックス ) を用いてキャッシュメモリ上のインデックスを求める方法をと呼ぶ. キャッシュが正しくヒットしたかどうかは, 主記憶のアドレスのうち, インデックスを除いたの部分が一致するかどうかで判定する.

この方法では, 複数のアドレスが同じインデックスに対応づけられる可能性があるため, キャッシュラインのコピーと書き戻しが交互に起きる性のミスが発生する可能性がある. これを回避するために考案されたのが, 連想メモリアクセスができる形キャッシュである. この方式は, キャッシュに余裕がある限り主記憶の内容をコピーして使うことが出来るが, 回路が複雑になりすぎるという欠点がある. これら 2 つの方法の中間に位置づけられるのが, 形キャッシュである. 先に述べたハザードの回避のために, 命令用メモリとデータ用メモリを分割するという策が示されていたが, 実際には単一のメモリ空間を使用し, を命令用とデータ用に分けることで回避することが多い. 仮想記憶ではキャッシュメモリと同じように, 低速なメモリを高速なメモリに一端溜め込んで主記憶の容量を大きく見せかける. 但し, 主記憶と2 次記憶では後者のアクセス速度のほうが圧倒的に遅いため, 可能な限りミスを避けなければならない. このため, 方式のページ管理が用いられる. 仮想アドレスを与えて, 物理アドレスを求める機構は, 連想記憶へのアクセスを伴うため, 一般に低速である. これを回避するために, 仮想アドレスから物理アドレスへの変換を一度行うとその対応関係を覚えておくという仕組みがある. キャッシュと仮想記憶の組み合わせ方としては, 直列形物理アドレスキャッシュ, 並列形物理アドレスキャッシュ, 仮想アドレスキャッシュの3 通りがある. キャッシュメモリの容量制限がある点を除いて, ハードウエア的な複雑さや動作速度の点から見て, アドレスキャッシュが一般的に用いられている. 命令レベル並列処理では, 命令レジスタや ALU 等が複数用いられるが, 特にの機構が複雑化する. 並列化には二つのアプローチがあり, コンパイラによって並列実行しやすい長い命令語を生成してそれを実行する VLIW(Very Instruction Word) や,CPU が命令間の依存関係を調べて, 実行可能な順序で並列実行可能な複数の命令をパイプラインに投入するスーパスカラがある. スーパスカラであっても, 静的な最適化は必要であり, ループアンローリングや, ソフトウエアパイプライニング, トレーススケジューリングなどの最適化技法が用いられる. スーパスカラプロセッサにおいて, 命令のステージの処理順序を入れ替えることを _ 処理と言う. これは実行と結果の書き込みについて命令の順序を無視した処理ステージの実行を行うことを指し, これにより命令の実行クロック数が短縮される. スーパスカラプロセッサにおいて, はデータ依存関係のうち, 逆依存と出力依存関係を解消することができる機構である. これはを用いた手法とリオーダバッファを用いる手法の二つがある.

CPU が周辺機器からの入出力要求の有無を調べる方法には と割り込みがある. 複数の割り込みが同時に発生しうる環境では, 割り込みの調停機構 ( ) が必要 になる. デイジーチェーン形のアービタは, 簡便な構造であるが, 常に に近いデバイスで 発生した割り込みが優先的に処理されるという欠点がある. 実際に入出力を行う段階では, 入出力用ポートを用いる専用命令で入出力を行う方法 と,, DMA の3 種類の方法が用いられる. 大量のデータを高速に転送するためには が適している. 2. 次のプログラムを, 条件分岐の回数を 1/4 になるようにループアンローリングで書き直すとど のようになるか? blt r1, r2,

3. 次のプログラムをソフトウエアパイプライニングで書き直すとどのようになるか? blt r1, r2, addi r1, r0, 0 4. 次のプログラムのレジスタリネーミングを行いたい. どのレジスタを新たなレジスタにすれば良いかを考えてプログラムを書き直しなさい. mul r1, r2, r3 add r4, r1, r5 add r5, r6, r7 add r4, r8, r9 add r10, r4, r11 add r12, r10, r13 5. プロセッサの概略性能は, クロック当たりの数 クロックである.

計算機システム Ⅱ 演習問題解答例学科学籍番号氏名 1. 以下の分の空白を埋めなさい. CPUは, 命令フェッチ (F), 命令デコード (D), 実行 (E), 計算結果の書き戻し (W), の異なるステージの処理を反復実行するが, ある命令の計算結果の書き戻しをするまで, 次の命令のフェッチをしない場合, スループット ( 単位時間当たりに実行できる命令数 ) が低くなる. これを解決するために考案されたのがパイプライン処理である. パイプライン処理では, 各ステージの実行結果をパイプラインレジスタに格納しながら, 各ステージの処理結果が次のステージの入力として送られる. パイプライン処理がうまく実行できなくなる状態をハザードと呼ぶ. ハザードには, 構造ハザード, データハザード, 制御ハザード, の 3 つがある. 構造ハザードはコンピュータの内部構成が原因で生じるハザードである. 例えば, メモリアクセス機構が単一の計算機上で, 命令フェッチと, ロード ストアが同時に起きる場合にストールが起きるのは, このハザードに起因する現象であり, 計算資源の多重化をすることで解決すべき問題である. 先の問題では, 命令用メモリとデータ用メモリを分割することで, ハザードを回避することが出来る. データハザードは, 直前の計算結果を直後の命令が参照する場合等に生じる問題である. 命令レベル並列処理が導入されていなければ, 直前の計算結果をワンクロック遅れた実行ステージで参照することができるようにするフォワーディングによって, 解消することが出来る. 制御ハザードは, 条件分岐命令を読み込むと, 次にどのアドレスに格納された命令を実行すれば良いのかが判断できなくなるために生じるハザードである. これを回避する方法として, 条件分岐によってどちらの命令が読み取られるかを予測する分岐予測がある. これが的中した場合にはストールは一切生じず, 外れた場合にリカバーのために必要となるクロック数は分岐予測をしない場合に生じるストールのクロック数と同じである. 制御ハザードのもう一つの解消方法は, 遅延分岐である. これは, どういう条件でどこに分岐すべきかの命令を与えた後, 即座には分岐せず, 分岐先で共通に行う命令を先に実行してから分岐するものである. キャッシュメモリとは, メモリと CPU の間に置かれた高速なメモリであり, 主記憶装置のメモリの内容をコピーして, 高速にアクセスすることが出来る. キャッシュメモリにおいて, 主記憶のアドレスの下部 ( インデックス ) を用いてキャッシュメモリ上のインデックスを求める方法をダイレクトマッピングと呼ぶ. キャッシュが正しくヒットしたかどうかは, 主記憶のアドレスのうち, インデックスを除いたタグの部分が一致するかどうかで判定する.

この方法では, 複数のアドレスが同じインデックスに対応づけられる可能性があるため, キャッシュラインのコピーと書き戻しが交互に起きる競合性のミスが発生する可能性がある. これを回避するために考案されたのが, 連想メモリアクセスができるフルアソシアティブ形キャッシュである. この方式は, キャッシュに余裕がある限り主記憶の内容をコピーして使うことが出来るが, 回路が複雑になりすぎるという欠点がある. これら 2 つの方法の中間に位置づけられるのが, セットアソシアティブ形キャッシュである. 先に述べたハザードの回避のために, 命令用メモリとデータ用メモリを分割するという策が示されていたが, 実際には単一のメモリ空間を使用し, キャッシュメモリを命令用とデータ用に分けることで回避することが多い. 仮想記憶ではキャッシュメモリと同じように, 低速なメモリを高速なメモリに一端溜め込んで主記憶の容量を大きく見せかける. 但し, 主記憶と2 次記憶では後者のアクセス速度のほうが圧倒的に遅いため, 可能な限りミスを避けなければならない. このため, フルアソシアティブ方式のページ管理が用いられる. 仮想アドレスを与えて, 物理アドレスを求める機構は, 連想記憶へのアクセスを伴うため, 一般に低速である. これを回避するために, 仮想アドレスから物理アドレスへの変換を一度行うとその対応関係を覚えておく TLB という仕組みがある. キャッシュと仮想記憶の組み合わせ方としては, 直列形物理アドレスキャッシュ, 並列形物理アドレスキャッシュ, 仮想アドレスキャッシュの3 通りがある. キャッシュメモリの容量制限がある点を除いて, ハードウエア的な複雑さや動作速度の点から見て, 並列形物理アドレスキャッシュが一般的に用いられている. 命令レベル並列処理では, 命令レジスタや ALU 等が複数用いられるが, 特にフォワーディングの機構が複雑化する. 並列化には二つのアプローチがあり, コンパイラによって並列実行しやすい長い命令語を生成してそれを実行する VLIW(Very Long Instruction Word) や,CPU が命令間の依存関係を調べて, 実行可能な順序で並列実行可能な複数の命令をパイプラインに投入するスーパスカラがある. スーパスカラであっても, 静的な最適化は必要であり, ループアンローリングや, ソフトウエアパイプライニング, トレーススケジューリングなどの最適化技法が用いられる. スーパスカラプロセッサにおいて, 命令のステージの処理順序を入れ替えることをアウトオブオーダ処理と言う. これは実行と結果の書き込みについて命令の順序を無視した処理ステージの実行を行うことを指し, これにより命令の実行クロック数が短縮される. スーパスカラプロセッサにおいて, レジスタリネーミングはデータ依存関係のうち, 逆依存と出力依存関係を解消することができる機構である. これはマッピングテーブルを用いた手法とリオーダバッファを用いる手法の二つがある.

CPU が周辺機器からの入出力要求の有無を調べる方法にはポーリングと割り込みがある. 複数の割り込みが同時に発生しうる環境では, 割り込みの調停機構 ( アービタ ) が必要になる. デイジーチェーン形のアービタは, 簡便な構造であるが, 常に CPU に近いデバイスで発生した割り込みが優先的に処理されるという欠点がある. 実際に入出力を行う段階では, 入出力用ポートを用いる専用命令で入出力を行う方法と,Memory Mapped I/O, DMA の3 種類の方法が用いられる. 大量のデータを高速に転送するためには DMA が適している. 2. 次のプログラムを, 条件分岐の回数を 1/4 になるようにループアンローリングで書き直すとど のようになるか? blt r1, r2, lw r5, 4(r3) lw r6, 8(r3) lw r7, 12(r3) addi r5, 5, r5 addi r6, 5, r6 addi r7, 5, r7 sw r5, 4(r3) sw r6, 8(r3) sw r7, 12(r3) addi r1, r1, 4 addi r3, r3, 16 blt r1, r2,

3. 次のプログラムをソフトウエアパイプライニングで書き直すとどのようになるか? blt r1, r2, addi r1, r0, 0 addi r5, 5, r4 lw r4, 4(r3) sw r5, 0(r3) addi r5, r4, 5 lw r4, 4(r3) blt r1, r2, 4. 次のプログラムのレジスタリネーミングを行いたい. どのレジスタを新たなレジスタにすれば良 いかを考えてプログラムを書き直しなさい. mul r1, r2, r3 add r4, r1, r5 add r5, r6, r7 add r4, r8, r9 add r10, r4, r11 add r12, r10, r13 mul r1, r2, r3 add r4, r1, r5 add r14, r6, r7 add r15 r8, r9 add r10, r4, r11 add r12, r10, r13 5. プロセッサの概略性能は, クロック当たりの平均実行命令数 クロック周波数である.