コンピュータアーキテクチャの概要

この記事の内容

コンピュータアーキテクチャの概要について簡単に説明します。
それぞれの詳細については、また別の記事を書く予定です。

コンピュータアーキテクチャとは何か?

コンピュータアーキテクチャとはコンピュータの仕組みや構造のことをさします。

コンピュータの簡単な仕組み

コンピュータは一番下の階層にハードウェアがあり、その上にシステムソフトウェア、そのさらに上に、アプリケーションソフトウェア、そしてそのまたさらに上にユーザーがいるというように階層化されたシステムとして理解することができます。

重要な概念


コンピュータは非常に複雑な仕組みをしていて、すべての仕組みを理解することは容易ではありません。そこで、非専門家の人でも扱えるように、レイヤーという概念を利用して、コンピュータを利用しています。
レイヤーとは、ブラックボックス(入力とそれに対する出力だけ分かっているシステム、内部構造はわからない。)やモジュール、コンポーネントブラックボックスの集めて作ったさらに大きなブラックボックス。)によるシステムの階層化のことで、ブラックボックスの中の詳細の仕組みを知らずとも利用できるというある種の人類の工学的な知恵です。ブラックボックスにより階層化されているおかげで、われわれは、内部の詳細な動作を知らずともコンピュータを使いこなすことができるのです。

ハードウェアの構造

コンピュータは様々なハードウェアから構成されています。

  • CPU(Central Processor Unitの略で、コンピュータの計算のコアとなる部分。)
  • マウスやキーボードなどの入力機器
  • ディスプレイなどの出力機器
  • ディスク(データを記録し貯蔵しておく場所)
  • メモリ(実際にデータを動かしているところ)

メモリ階層

メモリ(memory)とは計算機を扱うときに、プログラムやデータを保存しておく装置のことです。
現在のコンピュータでは、このメモリは階層的に配置されています。
下に階層の例を挙げます。上に行くほど、高速に読み書きができますが、その分値段が高くなってしまいます。

  • レジスター プロセッサの中にごく少数ある、もっとも高速に読み書きができるメモリ、非常に高速だが、その分値段も高い
  • キャッシュメモリ レジスターよりは遅いが、そこそこ高速なプロセッサーの中にあるメモリ
  • メインメモリ(主記憶)  プロセッサの外にあるメモリ、現在のコンピュータだと4~8GBくらいが標準
  • (磁気)ディスク 大きなデータを保存しておく場所

なぜ階層化されているのか

全てのメモリデータは常に参照されるわけではないため、”今”使用したいデータを上の階層(キャッシュやレジスタ)にもってきて、しばらく使わないデータは下の階層(ディスク)に保存しておいても、全部高速なメモリで実現した場合と比べて対して性能が変わらないためです。これにより、コンピュータのコストパフォーマンスは大幅によくなっています。

プログラミング言語

マルチプロセッサー(プロセッサーの並列化、分散化)

なぜ並列化、分散化する必要があるのか。

単体のプロセッサーの性能向上に陰りが見えてきたためです。(例えば、クロック周波数の上昇は近年、頭打ちとなってきています。)ムーアの法則は年々遅くなっています。

ワンチップマルチコア

一個のメモリーに複数のCPUをつなげる技術のことです。

分散処理

ワンチップマルチコアにCPUを載せられる量にも空間的な限界があるので、たくさんのコンピュータをネットワークでつないで、並列計算させる処理をします。この処理のことを分散処理といいます。