関連サイト
出版社による関連ページが公開されています。
内容紹介
コンピュータの歴史は「高性能化の歴史」高性能で低消費電力なコンピュータの設計技法について解説。プロセサだけでなく一般的な高性能ディジタルLSIを設計する際にも役に立ちます。
1章で,コンピュータの性能向上のトレンドについて触れ、2章,3章では、複数の命令を並列に実行する「スーパスカラ」,データ待ちなどの命令を後回しにして実行する「アウトオブオーダ実行」,条件分岐の方向を予測して実行する「投機実行」などの高性能化技術について詳しく説明します。
4章では、複数のプロセサを使う「マルチプロセサ」とそれに伴って必要となる「キャッシュコヒーレンシ制御」などについて説明します。アウトオブオーダ実行や分岐予測などの機構の実現には,多くの状態の記憶や一致検出などの回路が必要であり,ムーアの法則によるトランジスタ数の増加でこのような機構の実装が可能になってきたことが理解できます。
1990年代から高性能化機構のマイクロプロセサへの実装が開始され,現在でもその改良が続いています。マイクロプロセサの消費電力が100Wを超え,トランジスタを注ぎ込み高性能化を目指す方向の発展が難しくなってきました。こうした新たな状況より,2000年代からは,「マルチコア化」「マルチスレッド化」や「仮想化」に対するニーズが強くなり,コンピュータのマイクロアーキテクチャに影響を与えてきます。5章では,これらの最近技術を取り上げます。
また,データセンタでは運用コスト面から消費電力低減が強く求められ,利用の広がる携帯機器では電池寿命の点でプロセサの消費電力低減が強く求められています。「省電力化」の技術は最近のマイクロプロセサの設計では一番重要な設計目標となってきており,第6章ではこれらの技術について説明します。
書誌情報
- 著者: Hisa Ando
- 発行日: 2011-06-24 (紙書籍版発行日: 2011-06-24)
- 最終更新日: 2011-06-24
- バージョン: 1.0.0
- ページ数: 276ページ(PDF版換算)
- 対応フォーマット: PDF
- 出版社: マイナビ出版
対象読者
コンピュータのアーキテクチャが気になる方、詳しく知りたい方
著者について
Hisa Ando
東京工業大学大学院 理工学研究科 電子工学専攻を卒業後,富士通に入社し,先端コンピュータの開発に従事。現在は,テクニカルライターとしてプロセッサやスーパーコンピュータ関係の報道や解説を中心に活動しており,マイナビニュースに『コンピュータアーキテクチャの話』を連載中。また,いくつかの大学で非常勤講師としてコンピュータアーキテクチャの講義を担当している。博士(工学)。
http://journal.mycom.co.jp/column/architecture/index.html
目次
1章 コンピュータの高性能化
- 1.1 コンピュータの性能向上トレンド
- 1.2 高性能プロセサの設計
2章 複数命令の並列実行
- 2.1 スカラ方式とベクトル方式
- 2.2 複数の命令を並列に処理するスーパスカラ方式
- 2.2.1 複数命令の並列デコード
- 2.3 アウトオブオーダ実行
- 2.3.1 アウトオブオーダ実行での問題点
- 2.3.2 スコアボードによるアウトオブオーダ実行
- 2.3.3 Tomasuloアルゴリズム
- 2.4 アウトオブオーダ実行を可能にするメカニズム
- 2.4.1 WAR,WAWハザードを解消するレジスタリネーミング
- 2.4.2 スーパスカラプロセサのリネーミング処理
- 2.4.3 リザベーションステーション
- 2.5 インオーダ完了を実現するリオーダバッファ
- 2.5.1 独立のリオーダバッファを用いる方式
- 2.5.2 単一レジスタファイルを用いる方式
- 2.6 コミット機構と命令のコミット
- 2.7 ロードストア命令の処理
- 2.7.1 ロード,ストアキュー
- 2.7.2 メモリディスアンビギュエーション
- 2.8 命令の並列実行を助けるキャッシュ
- 2.8.1 ノンブロッキングキャッシュ
- 2.8.2 ストアコンプレッション
3章 予測に基づく投機実行
- 3.1 条件分岐の方向の予測
- 3.1.1 分岐予測の考え方
- 3.1.2 ダイナミックな分岐予測
- 3.1.3 ローカル履歴を使う2レベル分岐予測
- 3.1.4 重なりによる分岐予測の干渉
- 3.1.5 グローバル分岐予測
- 3.1.6 Gshare方式
- 3.1.7 ハイブリッド予測
- 3.2 予測ミスからの回復
- 3.3 分岐先アドレスの予測
- 3.3.1 分岐先アドレスをキャッシュするBTB
- 3.3.2 リターンアドレススタック
- 3.3.3 分岐予測をすべきか
- 3.4 トレースキャッシュ
- 3.4.1 ウィスコンシン大学のトレースキャッシュ
- 3.4.2 Intelのトレースキャッシュ
- 3.5 投機的なメモリアクセス
- 3.6 ロード命令で読まれる値の予測
4章 複数のプロセサで処理を高速化するマルチプロセサ
- 4.1 マルチプロセサのメモリアクセス
- 4.1.1 メモリアクセスの調停
- 4.1.2 マルチバンク化によるメモリバンド幅の改善
- 4.1.3 マルチプロセサでのキャッシュ共用
- 4.2 キャッシュコヒーレンシ
- 4.2.1 キャッシュ間のコヒーレンスの維持
- 4.2.2 MSIプロトコル
- 4.2.3 MOSIプロトコル
- 4.2.4 MESIプロトコル
- 4.2.5 MOESIプロトコル
- 4.2.6 キャッシュスヌープとインクルージョン
- 4.3 キャッシュラインのフォールスシェアリング
- 4.4 プロセサ間接続バス
- 4.4.1 スプリットトランザクションバス
- 4.4.2 バスインタリーブとクロスバを用いる高性能プロセサ間接続
- 4.4.3 ポイント ツー ポイント接続
- 4.5 スヌープフィルタ
- 4.5.1 Excludeフィルタ
- 4.5.2 Includeフィルタ
- 4.5.3 スヌープフィルタを用いたシステム
- 4.6 ディレクトリベースのコヒーレンス機構
- 4.7 メモリアクセスの排他制御
- 4.7.1 アトミックなメモリアクセス命令
- 4.7.2 Dekker's Algorithm
- 4.8 メモリオーダリング
- 4.9 トランザクションメモリ
- 4.10 ローカルメモリと分散メモリ
- 4.10.1 ローカルメモリとキャッシュメモリの違い
- 4.10.2 分散メモリシステム
5章 最近のマイクロアーキテクチャの発展
- 5.1 マルチコアプロセサ
- 5.1.1 ムーアの法則とデナードスケーリング
- 5.1.2 消費電力の制約
- 5.1.3 マルチコア化による性能向上
- 5.2 マルチスレッドプロセサ
- 5.2.1 マルチスレッドプロセサの歴史
- 5.2.2 実行するスレッドを切り替えるVMT
- 5.2.3 複数スレッドの命令を混合するSMT
- 5.3 プリフェッチとスカウトスレッド
- 5.4 仮想化
- 5.4.1 ユーザ状態とスーパバイザ状態
- 5.4.2 割り込み処理
- 5.4.3 仮想マシンモニタ
- 5.4.4 仮想化と入出力
- 5.4.5 仮想化のメリット
- 5.5 最近のマイクロプロセッサの全体構造
6章 省電力設計
- 6.1 プロセサはなぜ電力を消費するのか
- 6.1.1 CMOSトランジスタ
- 6.1.2 CMOSスタティック回路
- 6.1.3 負荷容量の充放電で電力を消費
- 6.2 負荷容量の低減
- 6.2.1 トランジスタの寄生容量
- 6.2.2 配線容量
- 6.2.3 トランジスタサイズの最適化
- 6.3 電源電圧の低減
- 6.3.1 Dynamic Voltage Frequency Scaling
- 6.3.2 低電圧動作の限界
- 6.3.3 クロック周波数のターボブースト
- 6.4 スイッチ回数の削減
- 6.4.1 論理回路のスイッチ回数
- 6.4.2 不要な動作を抑えるクロックゲート
- 6.4.3 回路動作を減らすマイクロアーキテクチャ
- 6.5 CMOSダイナミック回路と電力消費
- 6.6 スタティックな電力消費とその削減
- 6.6.1 ショートサーキット電流
- 6.6.2 漏れ電流
- 6.6.3 パワーゲート
- 6.6.4 ボルテージアイランドとレベルコンバータ