コンピュータの仕組み(その1)・CPUとメモリの概要

目次
  1. ハードウェアとは
    1. コンピュータの5大装置とは
    2. デジタルデータとアナログデータ
    3. LSI (大規模集積回路)について
  2. CPUの性能について
    1. データ量について
    2. クロック周波数
    3. マルチコア
    4. キャッシュメモリ
    5. 熱について
  3. メモリ
    1. 半導体メモリ
    2. メモリの構造
    3. 補助記憶装置(外部記憶装置)
  4. バス
  5. スループットとレイテンシ

ハードウェアとは

ハードウェアとは、コンピュータ本体とコンピュータの周辺機器です
コンピュータのシステムを構成する物理的な部分です

ハードウェアは、必ずいつかは故障するものです
苦手なものは、熱・静電気・水・ホコリ・衝撃です

コンピュータの5大装置とは

コンピュータの5大装置は

  • 入力装置
  • 制御装置
  • 演算装置
  • 記憶装置
  • 出力装置

コンピュータの主要な機能です

制御装置と演算装置はまとめて、中央処理装置(CPUまたはプロセッサ)です
記憶装置(メモリ)は、大きく主記憶装置と補助記憶装置に分かれます
コンピュータの5大装置

コンピュータがしていることは、データを制御(指示)しながら移動させることです
処理速度の向上のため、演算はいろいろな場所でおこなわれます
(例えばデータの整合性チェックなども演算です)

入力装置
外部からデータを取り込みます
キーボード・マウス・マイク・カメラなど
補助記憶装置(ストレージ
コンピューターの主記憶装置の容量を補うための記憶装置
(プログラムやデータを長期間保管するものです)
HDD(ハードディスク)・SSD・USBメモリ・CD/DVDなど
主記憶装置(メインメモリ
コンピュータ内部でデータやプログラムを記憶します
(作業領域です)
電源が切れるとデータは消去されます
制御装置
実行中のプログラムの命令を解析して他の装置に信号を送信しすることで、指示を出します
(イメージはデータの交通整理役です)
CPU
演算装置
信号をもとに論理演算や四則演算などの演算を行います
(実行担当)
CPU
出力装置
処理されたデータを人間用に出力する装置
ディスプレイ・スピーカー・プリンターなど

入力装置・出力装置・補助記憶装置は、コンピュータの周辺機器か?
明確には決められませんが、一般的には周辺機器です
パソコン内部に装着するものはすべて、「PCパーツ」と呼ばれるようです
補助記憶装置で、容易に取り外すことのできるもの(USBメモリ・CD/DVDなど)を「リムーバブルメディア」と呼びます

デジタルデータとアナログデータ

「アナログデータ」は連続的に変化するもので、イメージはアナログ時計の針が動く様子です
身近な「アナログデータ」の製品は、レコード・カセットテープ・フイルム写真などです

コンピュータが「計算や記憶できるデータ」は、「0と1」の2進数で表現した「デジタルデータ」です
(かりに、アナログデータだと0と1の間にある0.00000…から0.99999….が存在することにw)

例えば、音声を入力するときは、「アナログデータ」を「デジタルデータ」に変換し、音声を出力するときは「デジタルデータ」を「アナログデータ」に変換します

データ変換のイメージ
A/Dコンバータ
アナログ信号をデジタル信号に変換する電子回路です
D/Aコンバータ
デジタル信号をアナログ信号に変換する電子回路です

2進数で表現するとは?
デジタルデータ

数字は、桁上がりして「2は10」「3は11」「4は100」「255は11111111」です

文字や色は、「0と1の組み合わせがこの時はこの文字」といったさまざまなルールにのっとった対照表があります(*超ざっくりした説明ですw)

文字・写真・音楽・動画といったデジタルコンテンツも膨大な「0と1」の集まりです

コンピュータの回路では、連続的なアナログの波形を、「0と1」のデジタル信号で表します
「電圧が低いは0」「電圧が高いは1」で、曖昧さ(ノイズ)を排除します

回路とは、なにかが出て再び元の場所に戻る道筋のことで、電気をエネルギーとして使う場合、受動素子(電気を消費・放出する部品)を使った電気回路が必要です
電気を信号として利用する場合は、能動素子(電圧や周波数を制御できる部品)も必要で、この場合は電子回路と呼びます
「0と1」で動作するように構成された電子回路を、デジタル回路(論理回路)
入力に対して、連続的な動作をするものは、アナログ回路といいます
電子回路の中で、基板の上に部品を導線で結合し、複雑な機能をひとまとまりのパッケージに閉じ込めたものが「IC(集積回路)」です
第一世代のコンピュータの回路には真空管が使われていました
https://ja.wikipedia.org/wiki/Colossusより
トランジスタについて

トランジスタは、半導体と呼ばれる物質からできています
信号を増幅させたり、ON/OFFの切り替え(スイッチング)ができます
省電力で、寿命が長いトランジスタは、真空管にかわって電子機器の小型化・高性能化を実現しました
1970年前後に「IC(集積回路)」を使った電卓が登場しました

LSI (大規模集積回路)について

「LSI」とは、集積度(素子の数)が1000~10万個程度の「IC(集積回路)」のことです
現代では、高集積が当たり前で「LSI」は、ICの同義語として用いられます

「LSI」は、CPUやメモリなどのPCパーツに使われています

複数のLSI(多くの機能)を一枚のチップ(シリコンウェハー)上にまとめたものを「システムLSI」や「SoC」と呼びます

ムーアの法則とは

「ムーアの法則」とはインテル社の創業者のムーア氏が論文で提唱した「集積回路上のトランジスタ数は2年ごとに倍になる」という予測です
「ムーアの法則」にそうかたちで、一枚のチップ上に「どれだけICをのせるか」といった集積率の向上と低コスト化が進みました
現在のマイクロプロセッサ(コンピュータではCPUのことです)には、 10億個を超えるトランジスターが集積されています

平面での配置は限界となり、立体構造で配置する3Dトランジスタが登場しています

CPUの性能について

CPUの仕組みは、単にオン(1)とオフ(0)を切り替えるスイッチの集合体です
スイッチの組み合わせで、データ移動、演算、条件分岐などの命令(プログラム)を実行します
力を合わせ回数をこなせば、なんでもできるんですね
想像できない😅

コンピュータのプログラムは、機械語(0と1の羅列)に翻訳されてメモリ上に展開され、CPUが実行します
CPU内部の「レジスタ(記憶担当)」「ALU(演算担当)」などがはたらき、「メモリから命令を取り出し→命令の解読→命令の実行→必要に応じて結果を書き込む」というサイクルをくり返し、命令を処理します
cpu命令処理の流れ

「プログラムカウンタ」は、制御レジスタの1つで、次に実行する命令の場所を記憶します
通常は命令の場所+1で命令を上から処理します(条件分岐命令や、プロシージャを呼び出すなどもあります)
*プロシージャとは、複数の処理を一つにまとめたものです

必要なデータは、CPUの中にあるレジスタで一時的に記憶します
レジスタで記憶する理由は、都度メモリとやり取りすると時間がかかります
しかし、レジスタは「最短距離にあり」かつ「高速な記憶装置」なので、処理速度は格段に速くなります

命令の実行はALU(算術論理演算装置)が担当します
ALUでは四則演算や論理演算を行います
論理演算とは、「A または B 」「AかつB」「 Aでない」などの組み合わせです(真(1)と偽(0)から回路が作られます)

実行に必要なデータは汎用レジスタ(どんな用途のデータでも記録できる場所)に預け、必要になればALUが汎用レジスタから取り出して使います

データ量について

「32bit CPU」や「64bit CPU」とは

1bitはコンピュータが扱うデータの最小単位で「0か1」を示します
1bitで2通りの情報を表せます
8bitだと28=256通りの情報を表せます

「32bit CPU」や「64bit CPU」とは、汎用レジスタの大きさ(CPUが記憶できる情報量のようなものw)です
「32bit CPU」と「64bit CPU」では使用できるメモリの容量がちがいます
「32bit CPU」でメモリを4GB以上積んだ場合、4GBを超えた容量は使えません
現在は、ほとんどのパソコンが「64bitのCPU」です
32bit: 232 = 4,294,967,296通り
64bit: 264 = 18,446,744,073,709,551,616通り

余談

情報量の単位です
210の1024を1KB(キロバイト)にして
1KB(キロバイト)= 1024B
1MB(メガバイト)= 1024KB
1GB(ギガバイト)= 1024MB
1TB(テラバイト)= 1024GB
*1KB=1000Bで計算する場合もある(その場合は明示的に1024は1KiB単位が使われる)

クロック周波数

回路を正確に動かすためには、CPUやメモリの動作タイミングをそろえる必要があります
クロックジェネレータ(メトロノームのような役割です)がクロック信号(一定の周波数の信号)を出力し、CPUやメモリは、クロック信号と同期しながら処理をします

クロック信号は、「電圧の高い低い」を周期的に繰り返し、電圧が高くなった時点から次に電圧が高くなる時点までが「1クロック」です

「1クロック」で「1つの処理」、通常「4クロック」で1サイクル(「メモリから命令を取り出し→命令の解読→命令の実行→必要に応じて結果を書き込む」)です
*「1つの処理」に「数クロック」かかる場合もあります

1秒間あたりのクロック数を「クロック周波数」と呼び、単位はHz(ヘルツ)です
例えば「1クロック」の時間が0.1秒かかる場合、1秒間で10クロックなので、10Hzです
CPUは、1GHzはあたりまえです
(1GHzは1秒間あたりのクロック数は10億

クロック信号のイメージ
クロック周波数・単位Hz(ヘルツ)が大きいほど、CPUは、多くの処理をします
*現在のCPUの処理スピードは内部構造が複雑で単純にHz(ヘルツ)だけでは測れません
また、クロック周波数が大きいほど、消費電力・発熱量は増加します

マルチコア

コア(core)とはCPU内の計算処理の中核です(CPUの中にCPUが入っているイメージです)
1つのコアは、一度に1つの処理しかできません
コアが多いと、同時に処理できる量が増えます
コアが「2つはディアルコア」「4つはクアッドコア」「8つはオクタコア」と呼びます
ひとつのCPUに複数のコアを持ち、一度に複数のデータ処理を行う「マルチコア」が主流です

「スレッド」とは、物理的には存在しないが、プログラム側では認識できる仮想コアですw
スレッド数は、CPUに余裕があれば同時に処理できる仕事の数です

マルチコアプロセッサイメージ
CPUのコア数が多いほど、高性能で、スレッド数が増えると処理効率がアップします

キャッシュメモリ

キャッシュメモリは、CPU内部にある高速な記憶装置です
アクセスする頻度の高いデータや命令は、メインメモリではなく、キャッシュメモリに保持することで時間の短縮ができます

レジスタとの違いについて

キャッシュメモリ:主記憶装置(メインメモリ)の一部(よく使うデータや命令を保持します)
レジスタ:演算装置の一部(処理途中の結果を一時的に保持します)

キャッシュメモリには、キャッシュレベルがあります(レベルがない場合もあります)
  • 1次(L1キャッシュ)
  • 2次(L2キャッシュ)
  • 3次(L3キャッシュ)

「L1キャッシュ」がCPUに一番近く、容量は小さくなります(容量が小さい理由は、探す手間がかからないことが重要だからです)
L1(手が届く机) < L2(本棚)< L3(隣の書庫)の順で容量が大きくなり、CPUからの距離も遠くなります

キャッシュメモリがあれば、処理速度は速くなります
キャッシュメモリの容量が大きければ処理速度は速くなります
*基本的にCPUのコア数が多いほど、キャッシュメモリの容量も大きくなる傾向です

熱について

CPUでは、熱が発生します
処理量が多くなれば、熱量も増加するため、冷却対策は必須です
(熱で銅などの原子が破壊され、最悪は回路が切断されます)

コンデンサとは

電気を「蓄えたり」「放出したり」できる、電子回路の基本となる部品です
電気が「貯まった状態が1」「ない状態が0」です
コンデンサの容量は、たまっている電気の量です

コンデンサが電気放出するタイミングは、クロック信号と同期します
クロック周波数は、動作スピードの目安であり、ほぼ1秒間の電気放出回数です

コンデンサの容量・クロック周波数・電圧が増えると、熱量は増加します

パソコンの処理スピードが遅くなる原因

通常CPUには温度計があり、「これ以上熱くなると危険」と判断すると動作スピードを下げるなど、調整します
*目では見えないプログラムがバックグラウンドで動いて、処理量が増えている場合がほとんどです

TDP(熱設計電力)とは

熱設計電力(ねつせっけいでんりょく、英: Thermal Design Power, TDP)とは、マイクロプロセッサやグラフィックスプロセッシングユニットなどの大規模集積回路で仕様の一部として提示される最大必要吸熱量のこと。パッケージに取り付ける冷却装置を設計する際に、どの程度の吸熱能力を持たせれば良いかを決定するために使われる指標である。
集積回路の大規模化、要求性能の向上に伴って発熱量が増大し、これにプロセス・ルールの微細化が進行したことも加わり、集積回路自体の熱で回路が破壊されるまでになっている。このため、効果的な冷却方法の設計(と集積回路の省電力化)が問題となり登場した指標である。一般に大規模集積回路メーカーと冷却装置メーカーは異なるため、どの程度の熱量を最大受け渡しすればよいのかを明確にするために生まれた指標である。大規模集積回路メーカー側から提示される指標であり、冷却装置メーカーに期待あるいは要求する数値と言える。

wikipedia.org

TDPは、CPUが全力で働いたときにどの程度の熱が発生するかの指標で、単位はW(ワット)です

メモリ

コンピュータが情報を処理するには、データを保持する必要があります
複雑なプログラムほど、計算の経過を保持するメモリも必要で、多くのメモリ領域が必要です
最高速かつ大容量のメモリは、コストや物理的な実装の制約から難しいため
小容量で高速のメモリと、大容量で低速のメモリをやりくりして使います

半導体メモリ

半導体メモリは動作が速く、高額です
そのため、主に補助記憶装置(メインメモリ)やCPU内部(メインメモリ・キャッシュメモリ・レジスタなど)で使われます

しかし、現在は主記憶装置(ストレージ)として、SSD・USBメモリ・メモリカード(SD)としても使われています

半導体メモリは、IC(集積回路)によって構成された記憶装置です
回路を電気的に制御することで、データを記録保持します

半導体メモリにはRAMとROMがあります
RAM
電源が切れると記録は消去されます
自由に読み出しや書き込みができます
ROMよりも高速です
DRAMとSRAMがあります
DRAMは、メインメモリに利用されます
コンデンサの電荷として蓄えているため、放電でデータが消えるのでリフレッシュ(定期的に情報を読み出し、再度書き込み)が必要です
SRAMは、キャッシュメモリに利用されます
「0と1」の値によって情報を表現するのでリフレッシュが不要です
DRAMより動作は高速で、高価です
ROM
電源が切れても記録は消去されません
読み取り専用です
通常は、製造時に一度だけデータを書き込み、利用時にデータ読み出すために使われます
(書き換えられては困る情報を記憶させることに向いています)
BIOS・UEFIなど、ファームウェアの保存につかいます
ファームウェアとはハードウェアを制御するためのソフトウェアで、あらかじめ機器の集積回路に書き込まれたソフトウェアです
BIOS・UEFIとは、OS(Windows・Mac・Linux)が起動する前に起動し、ハードウェアの制御を行うプログラムです(UEFIは、64bit対応したもの)
フラッシュメモリについて

半導体メモリのうちフラッシュメモリは、電源が切れても記録は消去されません
自由に読み出しや書き込みもできます
特徴はRAMと同じですが、技術的にはROMに由来するため、分類はROMで「フラッシュROM」とも呼ばれます

NOR型とNAND型に分かれます

NOR型
コスト、信頼性が高い
読み取り速度は速い
書き込み、消去は遅い
目的のデータに直接アクセスが可能
小容量
携帯電話やルータなどのファームウェアとして利用されます
NAND型
コスト、信頼性が低い
読み取り速度は遅い
書き込み、消去は速い
データへ端から順にアクセスする
大容量
主記憶装置(ストレージ)に使われます(SSD・USBメモリ・SD)
フラッシュメモリの寿命について

フラッシュメモリが書き込みをする仕組みは
「0と1」を記録するため、フローティングゲートという場所に電子を絶縁膜で封じ込めたり、解放したりします
データを書き換えるには、一旦消去をして、書き込みします
電子が絶縁膜を出入りするので、絶縁膜は劣化します
そのため、フラッシュメモリには耐用年数や書き込みできる上限値があります

NOR型よりもNAND型の方が劣化が激しいです

NAND型フラッシュメモリの「SLC」「MLC」「TLC」について
SLC(シングルレベルセル)
1セルに「0か1」1ビットの保存が可能
セルとは、メモリの最小構成要素で、一般的には1つのセルに1ビットの情報が格納される
高価で高速で耐久性が高い
一般ユーザ用ではない
MLC(マルチレベルセル)
1セルに2ビットの保存が可能
SLC より安価で低速で耐久性が低い
TLC(トリプルレベルセル)
1セルに3ビットの保存が可能
MLCより安価で低速で耐久性が低い

「MLC」はフローティングゲートの電子の量を細かく管理します
電子が満杯(0)・半分以上ある(1)・少しだけある(2)・ない(3)の4つの情報(2ビット)を同じ面積で記録できます
しかし、情報の判別はより高度になります
そのため「MLC」では絶縁膜の劣化により敏感で、かつエラー率が高くなります
「TLC」はより顕著です

メモリの構造

メモリセル
入力された信号を何らかの物理的な状態として保存する記憶回路
メモリの最小構成要素です
メモリチップ
IC(集積回路)のーつで、メモリセルが数百万から数百億個並んで、外部と電気配線でつながりデータの記録や読み出しを行います
半導体メモリが主流ですが、磁気を利用したものもあります
「DDR SDRAM」「DDR2 SDRAM」「DDR3 SDRAM」「DDR4 SDRAM」といった規格があります
メモリモジュール
複数の半導体メモリチップを並べて、外部に接続するための端子をつけた電子基板
コンピュータの主基板(マザーボード)にある専用の差込口(スロット)に挿入し、メインメモリとして使用します
「DIMM(デスクトップPC用)」「SO-DIMM(ノートPC用)」といった規格があります

メモリの増設時は、パソコンにはそれぞれ対応したメモリがあり、チップ規格・モジュール規格が決まっています
「空きスロットの残数」確認も必要です

VRAMについて

VRAMは、映像や画像テータ専用のメモリです
ディスプレイに動画や画像を表示するために必要なデータを保持するためのメモリ領域のことです

メインメモリの一部をVRAMとして使用する場合と専用のグラフィックボード(ビデオカードとも呼ばれます)を設置する場合があります

グラフィックボードとは、3D映像や高解像度な映像を出力するために、「CPUに代わり描画処理を行うGPU」「専用のメモリ(VRAM)」などが一体となった拡張カード(PCパーツ)です
(グラフィックボードが搭載されていないパソコンでは、CPUやマザーボードがグラフィックス機能を内蔵しています)

補助記憶装置(外部記憶装置)

磁気ディスクと光学ディスク

磁気ディスク
金属やガラスの円盤に磁性材料を塗布して、磁気による記憶媒体
円盤を高速で回転させ、磁化状態を読み取って記録された信号を読み出り、磁化状態を変化させて書き換えや消去をします(レコードのイメージです)
HDD(ハードディスク)・フロッピーディスク
HDDは、フラッシュメモリを利用したSSDが普及しています
光学ディスク
データの読み書きにレーザー光線を使う方式を採用した記憶媒体
表面の反射率などを変化させてデータを記憶します
駆動装置(ドライブ)とは分離されます
「-ROM」は読み出し専用(CD-ROM、DVD-ROM、BD-ROM)
「-R」は書き込み可能(CD-R、DVD-R、BR-R)
「-RW・-RE」は書き換え可能(CD-RW、DVD-RW、BD-RE)
CD・DVD・Blu-rayなど

バス

バスとは、データの伝送路です
複数の装置間で信号を共有して、相互にデータをやり取りできる構造のものをバスといいます

  • CPU(中央処理装置)内部のバズは内部バス
  • CPUとメインメモリなどを接続するバスは外部バス
  • 電子基板と拡張カードや周辺機器などを接続するためのバスは拡張バス

と呼びます

一つのバスの基本的な構成要素は、「データを伝送するためのデータバス」・「データの場所を伝送するアドレスバス」・「制御信号を伝送するコントロールバス」です
バスのデータ伝送イメージ

CPU は
「データを読み出すのか」「データを書き込むのか」をコントロールバスから指示します

データを読み出すときは「読み出したいデータがあるアドレス」・データを書き込むときは「データを書き込む先のアドレス」をアドレスバスから指定します

指示されたデータは、データバスからを転送します

バスが一度に送信できる数を「バス幅」といい、単位はビット(bit)です

データバスの「バス幅」が広いほど、高速に処理できます
言い換えると、CPUの性能がどれだけよくても、バスの転送速度が遅いとまち時間が発生して、CPU が本来の性能は発揮できません

アドレスバスの「バス幅」が広いほど、大きなサイズのメインメモリを扱えます
言い換えると、アドレスバスの「バス幅」がコンピュータの扱うメモリ容量の上限を左右するということです

チップセットとは

チップセットとは、マザーボードに実装されている、CPUの外部バスや拡張バスなどの機能を集積した大規模集積回路 (LSI) です

スループットとレイテンシ

スループットとレイテンシーは、「コンピュータ処理」や「ネットワーク通信」の「速さ」の指標です

スループットとは

「コンピュータ処理」では1秒間に処理できる件数・「ネットワーク通信」では1秒あたりのデータ転送量
単位は、ビット毎秒( bits / second)です(値が大きいと「速い」)

レイテンシとは

「コンピュータ処理」では処理を実行してから、最初の結果が出るまで・「ネットワーク通信」では要求してから、最初の返送がされるまでの遅延時間です
レイテンシは待たされる時間です
単位は、単にミリ秒(ms)です (値が小さい「速い」)

スーパーコンピュータはスループットは大きく、レイテンシも大きくなります

余談

シリコンが半導体の原料として最も多く使われ、「コンピュータにとって半導体がどれだけ重要か」理解しました
IT企業の集まった地域を「シリコンバレー」と呼ぶのか、納得です😅