【第一回】基本情報技術者試験勉強内容の共有～コンピュータの構成要素編～

# 第一回の目的
**コンピュータの五大要素**の概要を理解する！
### 目次
[コンピュータの構成](#コンピュータの構成)
[CPU](#CPU)
[記憶装置](#記憶装置)
[入力装置](#入力装置)
[出力装置](#出力装置)

# コンピュータの構成
#### 構成要素
コンピュータは**制御装置**、**演算装置**、**記憶装置**、**入力装置**、**出力装置**から構成される。これらを**コンピュータの五大要素**という。
演算装置、記憶装置を合わせて**CPU**(**中央処理装置**)という。
![コンピュータの構成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490015/b3357f9c-6231-84ae-8599-e5163d8cca47.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490015/aa8e38ae-7611-36e7-50a8-6a7c896722e0.png)

# CPU
#### CPUとは
CPU(中央処理装置)とは、コンピュータの頭脳に当たる部分で別名ではプロセッサと呼ばれる。
役割は...
①処理が必要な命令を解読して命令を出す
②四則演算や理論演算を実行する
③処理したデータを一時保存(レジスタという高速な記憶回路を使用)し、メモリに引き渡す。(次回説明します)

CPUの性能はおおよそ**クロック周波数**、**コア数**、**スレッド数**で判断することができます。

#### クロック周波数
クロック周波数とは指示を処理する速さを表す指標です。
コンピュータの動作の基準となる一定間隔のパルス信号(**クロックパルス**)と呼ばれる電圧波形が1秒間に何回繰り返されるかで表現されます。単位はHzです。
またデータの送受信をする伝送路を**バス**といいます。
クロック周波数が高く、バスが幅が広いほど情報処理を高速にデータを送受信し効率よく処理を行うことができます。
![クロック周波数.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490015/e4dcc76f-0583-40f0-4240-1e4bffaa5772.png)

#### コア数
コア数とはCPUに内蔵しているプロセッサーの数を表しています。つまりはコンピュータの頭脳の数のことです。
コア数が増えるとそれだけ複数のコアで作業を分担して処理できるため処理速度が上がることになります。

#### スレッド数
スレッド数は一つのCPUが同時に処理できる仕事(プログラム)の数のことです。


それぞれのイメージはこちらのサイトが直観的にわかりやすくてオススメです。

https://www.pc-koubou.jp/magazine/23926

# 記憶装置
#### 記憶装置とは
データやプログラムを保存、記憶しておく装置です。

#### RAM
**RAM**(Random Access Memory)は読み書きできるメモリです。
電源を切ると記憶データ、プログラムが消去される**揮発性**という特性があります。RAMには以下の2種類があります。

##### DRAM
DRAM(Dynamic RAM)はコンデンサに蓄えた電荷の有無で1bitを表現しています。
2進数の一桁0,1を1bitという最小の情報量単位として表現します。
構造が簡単で集積化に優れ、後述のSRAMに比べ大容量で安価です。
コンデンサを使用しているため自然放電してしまう特徴があり、一定時間ごとに記憶内容を維持するために再書き込み(リフレッシュ動作)を実施する必要があります。
主記憶として用いられるのはDRAMです。

##### SRAM
**SRAM**(Static RAM)はフリップフロップ回路(回路図や真理値表の説明回にお預けします)で構成されたメモリです。
構造がDRAMに比べ複雑で集積度を高めにくく、小容量で高価です。
電源が供給されているときは記憶内容を保持できるため、DRAMで必要な再書き込みの必要がありません。
キャッシュメモリとして用いられるのはSRAMです。

#### ROM
**ROM**(Read Only Memory)は名前の通り、もともとは読出し専用のメモリです。
製造時に一度だけデータを書きこみ、記録されたデータを読出しが可能です。
マスクROMが該当します。
利用者が書き込みを実行できるPROM(Programmable ROM)も登場しています。
PROMに該当する例としてはフラッシュメモリが挙げられます。
フラッシュメモリは電圧をかけることで全/部分消去ができ、書き換えは消去後にブロック単位で書き込みます。USBメモリやSDカードなどが身近なフラッシュメモリです。

#### キャッシュメモリ
キャッシュメモリは主記憶(DRAM)よりも高速な記憶装置でCPUと主記憶の間に配置されるメモリです。主記憶へのアクセス速度より早いキャッシュメモリによく使用するデータやプログラムを保存/取り出すことで処理速度を速め、実効アクセス速度(後述)の短縮を図っています。
![キャッシュメモリ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490015/c36d7e94-f798-9d7c-67ce-c13730f0b769.png)

##### 1次キャッシュ、2次キャッシュ、3次キャッシュ
主記憶のアクセス時間とCPUの処理時間の差が大きい場合、1次キャッシュ、2次キャッシュ、3次キャッシュのようにキャッシュメモリを多くすることで効率を上げることができます。
キャッシュメモリの数字(1次、2次、3次)はCPUがアクセスする順につけられ、若い数字のほうがあくアクセス時間は短いです。
CPUは主記憶に比べて高速なキャッシュメモリから順にアクセスを試みます。

##### 実効アクセス時間
アクセスするデータは主記憶かキャッシュメモリに存在します。
この時アクセスに要する時間の実効値を**実効アクセス時間**と呼び、キャッシュメモリに必要なデータが存在する確率を**ヒット率**といいます。
逆に主記憶にデータが存在する確率をNFP(Not Found Probability)といいます。

$$実行アクセス時間=ヒット率\timesキャッシュメモリのアクセス時間+(1-ヒット率)×主記憶のアクセス時間$$


#### キャッシュメモリへの書込み方式
書込み方式としてはライトスルー方式とライトバック方式があります。

##### ライトスルー方式
キャッシュメモリと主記憶の両方に書込みを実行する方式です。キャッシュメモリと主記憶の内容が一致するため一貫性が保たれるのが長所です。ただし主記憶へのアクセスも多くなるためライトバック方式(後述)よりも低速です。
![ライトスルー方式.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490015/2429be4e-e569-9e56-ec3c-17ead8d6b1c0.png)

##### ライトバック方式
キャッシュメモリだけに書込み、キャッシュメモリからデータやプログラムが追い出されるときに主記憶に書込みを実行する方式です。
メモリからデータやプログラムが追い出されるときに主記憶に書込みを実行します。キャッシュメモリと主記憶の内容が一致しないため一貫性を保つためライトスルー方式と比較して制御が複雑になります。
主記憶へのアクセス回数がライトスルー方式より減るため高速なのが長所です。
![ライトバック方式.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490015/805c740e-8f36-644b-f72c-f671f3139777.png)

#### 補助記憶装置
主記憶は電源が切れると記憶内容が消失する揮発性の特性がありました。
補助記憶は電源が切れてもデータが消えない不揮発性の特性を持った主記憶よりも大容量の記憶装置です。

##### HDD
HDD(Hard Disk Drive/磁気ディスク装置)は磁性体を塗った円盤状のディスクにデータを保存し、磁気ヘッドを移動させてデータを読み書きする装置です。
記録方式として**セクタ方式**をご紹介します。
HDDのディスクは複数枚で構成され、それぞれのディスクの表面にはデータを記録する**セクタ**と呼ばれる最小単位が存在し、セクタを同心円状に集まったものを**トラック**といいます。またトラックの集まりの円筒をシリンダといいます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490015/ce678409-abc2-8a6c-2f9e-261b9c0ee931.png)
セクタ方式ではセクタ単位でデータの読み書きしますが、各セクタに複数のデータを書き込むことはできないため、余った部分には何も書き込むことはできません。
![セクタ方式.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490015/24da0b3d-001e-704a-c1c9-d1892fcfc9b0.png)
HDDのアクセス時間は**位置決め時間**、**回転待ち時間**、**データ転送時間**から成ります。

**位置決め時間**：磁気ヘッドが目的データが配置されたトラックまでの移動時間
**回転待ち時間**：目的のデータが配置されたセクタが回ってくるまでの時間
**データ転送時間**：目的のデータが配置されたセクタ上の磁気ヘッド通過時間
![アクセス時間.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490015/34bc0528-207b-aa69-f79e-409d88b2e800.png)

#### フラッシュメモリ
電気的に全部または一部を消去して読み書きできる半導体メモリである。
大容量でアクセス速度も比較的速く、小型軽量なためスマートフォン、デジタルカメラなどに使用されます。
USBカードやSDカードなどが例として挙げられます。

#### SSD
**SSD**はフラッシュメモリを用いた記憶媒体です。HDDのように位置決め時間、回転待ち時間のような機械的動作がないため、HDDと比較して振動、衝撃に強い他、アクセス速度が速い特徴があります。

# 入力装置
入力装置はコンピュータにプログラムやデータを読み込むための装置です。
ex.) キーボード、マウス、タブレット 等々

# 出力装置
出力装置はコンピュータ内部で処理したデータを外部に出力するための装置です。
ex.) ディスプレイ、プリンター 等々

### 参考文献
この記事は以下の文献を参考に記載しました。
・「イメージ&クレバー方式 栢木先生の基本情報技術者教室」,栢木厚,pp24-27,pp38-49
・「CPUのクロック周波数やコア数とは？シェフに例えてみる」(https://www.pc-koubou.jp/magazine/23926)
・「【わかりやすく解説】CPUのコアとスレッドってなに？」(https://www.nec-lavie.jp/products/contents/core_thread_pc.html)