コンピュータの構成と設計
- 26.3 時間
- 2 章の途中で読むのやめた(学習内容の重複が多かったため)
- 「プロセッサを支える技術」である程度、CPU でどのような技術が使われているか学習していたが、もう少し深い内容がありそうだったのと、演習があったので理解を確認するためにこの本をやることにした
- コンピュータの利用形態は下記の 3 通り
- パーソナル・コンピュータ: 個人が使用するように設計されたコンピュータ
- 単一のユーザーに低いコストで高い性能を提供することに重点が置かれたもの
- サーバー: 複数ユーザーを対象として大規模なプログラムを実行するために使用するコンピュータ
- かつての大型コンピュータが新た に形を変えたものであり、通常はネットワークを通じてのみアクセスされる。大量の仕事をこなすことに特化している
- またスーパーコンピュータ(性能とコストが最高レベルのコンピュータ)もサーバーとして構成される
- 組み込みコンピュータ: 単一の専用アプリケーションまたはソフトウェア群を実行するために、他の装置の内部に組み込まれて使用されるコンピュータ
- 自動車に搭載されるマイクロプロセッサ、テレビ内のコンピュータなど。組み込み用途における要求は、性能は最小限でよいがコストや消費電力は厳しく抑えたいという、独特の組み合わせであることが多い
- 本書で学べること
- 優秀なプログラマは絶えず自分が作成するプログラムの性能に注意を払う
- 1960 年代および 1970 年代においては、コンピュータの性能に対する主な制約要因はメモリの容量
- 現在ではメモリ容量はほとんど制約にならなくなったが、代わりにプロセッサの並列性や記憶の階層性などについて理解する必要がでてきた
- そのうえ、PMD(Personal Mobile Device)またはクラウドの上で実行されるプログラムのエネルギー効率について、配慮する必要がある
- コンピュータ・アーキテクチャにおける 8 つの主要なアイデア
- Moore の法則の設計
- 設計を単純化するための、抽象化
- 一般的な場合を高速化する
- 並列処理による性能向上
- パイプライン処理による性能向上
- 予測による性能向上
- 記憶階層
- 冗長性による信頼性向上
- オペレーティング・システムで重要なのは以下の機能
- 基本的な入出力処理を行う
- 外部記憶およびメモリを割り当てる
- コンピュータを同時に使用する複数のアプリケーションの間で、コンピュータ資源の共有を図る
- コンピュータの古典的な 5 つの構成要素は、入力・出力・記憶・データパス・制御である。データパスと制御をあわせてプロセッサと呼ぶこともある
- コンピュータをネットワークに接続すれば、下記の利点が得られる
- 通信: コンピュータ間で情報を高速に交換できる
- 資源の共有: 個々のコンピュータがそれぞれ独自の入出力を備えるのではなく、ネットワークを通じて複数のコンピュータで入力を共有できる
- リモート・アクセス: 遠隔地のコンピュータ同士をつなぐことによって、ユーザーは自分のコンピュータのそばにいなくてもよくなる
- チップの製造はシリコンから始まり、シリコン中の小さな領域に下記の 3 つの性質のいずれかを持たせることができる
- 電気をよく通す
- 電気を絶縁する
- 特定の条件に応じて電気を通したり、絶縁したりする(スイッチの役割をする)
- PMD では応答時間が重視され、サーバーでは スループットが重視される。性能を比較する上で、まず性能を定義する必要がある
- 性能に関する用語
- 応答時間: タスクの完了に要した合計時間であり、ディスク・アクセス、メモリ・アクセス、入出力動作、オペレーティング・システムのオーバーヘッドなどのすべてを含む
- CPU 時間: 該当プログラムのために CPU が費やした時間であり、入出力待ち時間や他のプログラムを実行させるための時間を含まない
- CPU 時間はさらに 2 つに分けられる
- ユーザー CPU 時間: プログラム中で費やされた CPU 時間
- システム CPU 時間: プログラムに代わって、オペレーティング・システムがタスクを遂行するために費やした CPU 時間
- この本では、他に負荷のかかっていないシステム上での経過時間を指してシステム性能という用語を使用し、ユーザー CPU 時間を指して CPU 性能という用語を使用する
- CPU 性能とその要因