パターソン&ヘネシー本を読んでいく(2)


パターソン&ヘネシー本を読んでいきます。

以下から購入できます。この記事を読んだ人はぜひ買ってください(ステマ)

1.2 コンピュータ・アーキテクチャにおける8つの主要なアイディア

Mooreの法則の設計

せっかく設計を開始しても、それが生産される頃にはトランジスタの集積度は向上している。なので、Mooreの法則に従って、生産される時点においてのトランジスタの集積度を予測した上で設計を行う必要がある。

設計を単純化するための、抽象化

トランジスタの数はMooreの法則によりどんどん増えていく。層別して設計を行い、上位レベルにおいては下位レベルの詳細を隠蔽することにより、モデルが単純化される

一般的な場合を高速化する

よく実行されるコードをあんまり実行されないコードより高速化する

並列処理による性能向上

並列して開発を進めることにより性能を高める

パイプライン処理による性能向上

バケツリレーのごとく、並列処理により処理を高速化する

予測による性能向上

投機的実行という、予測に基づいて作業を開始するもの。

記憶階層

最高速で、ビット当たりのコストが最も高価な最小容量のメモリを記憶階層の最上部に位置し、最低速でビット当たりのコストが最も安価な大量のメモリを記憶階層の最下部に配置。

冗長化による信頼性設計

冗長なコンポーネントを含めることにより、システムの「信頼性」を高める

1.3 プログラムの裏側

  • コンピュータ内のハードウェアは、非常に単純な低水準の命令を実行できるだけ
  • 高水準の処理を単純なコンピュータ命令に順次変換または翻訳する必要がある
  • オペレーティングシステムは、以下の重要な機能を持つ   基本的な入出力処理を行う   外部記憶およびメモリを割り当てる   複数のアプリケーションの間で、コンピュータ資源の共有を図る
  • コンパイラはオペレーティングシステムとは別の機能を果たす

高水準言語からハードウェアの言語へ

  • コンピュータは二進数である
  • 二進数では読むのも書くのも難しいので、アセンブラを考えた
  • 2進数の言語を機械語、機械語と一対一対応するシンボル形式の言語をアセンブラという
  • アセンブラで高度なアプリケーションを作るのは困難であるため、高水準プログラミング言語が開発された

  • ソフトウェア開発について、広く意見の一致が得られている事柄に、処理内容を示すのに必要な行数が少ないプログラミング言語ほど、プログラム開発にかかる時間が少なくて済む。→高水準言語はアセンブリ言語より明らかに優れている

1.4コンピュータの内部

  • データの入力、出力、処理、記憶のタスクを遂行するコンピュータの5つの構成要素
  • 入力装置と出力装置

LCD、CRT、描画、タッチスクリーンについては、僕は関係ないので触れないです。

  • 集積回路、プロセッサ、中央演算装置(CPU)
  • プロセッサは大別して2つの要素で構成される。データパス(datapath)と制御(control)である
  • メモリはDRAMチップで構成されている。DRAMはダイナミックRAM(dynamic random access memory)
  • プロセッサ内には、メモリの一種であるキャッシュメモリなどもある。キャッシュはDRAMにとってのバッファの働きをするメモリ。
  • キャッシュはスタティックRAM(SRAM)を使用して作られる。
  • 抽象化の一つとして、命令セット・アーキテクチャ(instructive set architecture)がある
  • 基本命令セットとオペレーティング・システム・インターフェースの組み合わせをアプリケーション・バイナリ・インターフェースという
  • 命令セットアーキテクチャによって、コンピュータの機能をそれを実装しているハードウェアから独立して論じることができる。

次は23ページ、やっていきます。