コンピュータ内部の情報表現
情報量の単位
コンピュータ内部:全ての情報「0」「1」で表現
→ 「0」「1」= コンピュータで扱う情報の最小単位(ビット)
→ 8ビットを一つにする = バイト(情報量の基本単位)
表現できる情報の範囲
1ビット → 「0」「1」=2通り
2ビット → 「00」「01」「10」「11」=4通り
→ nビット= 2ⁿ通り 表現できる
大きな数値を表す接頭語
接頭語 | 意味 |
---|---|
k | 10³ |
M | 10⁶ |
G | 10⁹ |
T | 10¹² |
小さな数値を表す接頭語
接頭語 | 意味 |
---|---|
m(ミリ) | 10⁻³ |
μ(マイクロ) | 10⁻⁶ |
n(ナノ) | 10⁻⁹ |
p(ピコ) | 10⁻¹² |
文字の表現
コンピュータ内部 : 「0」「1」で表現
→ 文字も2進数で表現している(文字コード)
→ 「0」「1」の割り振り方によって、文字コードが違う
(文字コードの種類)
文字コード | 内容 |
---|---|
ASCIIコード | 英数字/記号/制御文字のみ、米国標準規格、漢字・仮名なし |
シフトJISコード | ASCIIコード+漢字・仮名あり、日本工業規格 |
EUC | UNIX、Linuxで使われる |
Unicode | 世界の文字を一つに体系化したもの 例)UTF-8 |
コンピュータの構成
(五大装置)
- 制御装置:記憶装置から命令を取り出す → 各装置に指示
- 演算装置:演算処理をする
- 記憶装置:データ・プログラムを記憶
- 入力装置:外部からデータを読み込む
-
出力装置:処理結果を外部に書き出す
* 制御装置+演算装置=中央処理装置(CPU)
→ 制御装置・演算装置はCPU中に格納されている
ハードウェア・ソフトウェア
ハードウェア
コンピュータという機械そのものを指す 例)五大装置
ソフトウェア
コンピュータをどう動かすのかという仕事を指す 例)プログラム・アプリケーション
プログラム記憶方式(プログラム格納方式)
(現代のコンピュータ)
主記憶に記憶されたプログラム → CPUが順に取り出す → 実行する方式
※ 主記憶:CPUから直接アクセスできる記憶装置
CPU(プロセッサ)
コンピュータの頭脳にあたる
→ CPUの性能 = クロック周波数 + バス幅 で表す
クロック周波数
コンピュータには色んな装置 → CPU:クロック信号(クロックパルス)を出す → 各装置の動作タイミングを合わせる
→ 人間の脈拍
→ クロックサイクル時間: 1クロックあたりの秒
CPUも「クロック」に合わせて動作 → 1周期の時間が短ければ、より多く処理できる
-
クロック周波数:1秒間に繰り返されるクロック回数 (単位: Hz) 例)人間の「脈拍」
- 内部クロック: CPU内部のクロック周波数
-
外部クロック: CPUと周辺装置の伝送路のクロック周波数
* 内部クロック = 外部クロック じゃなくても良い、現在はだいたい 内部>外部
* クロック周波数 高 → 処理能力 高
→ メモリ・HDDの性能も関係するので、クロック数2倍→システム処理能力2倍 になるわけではない
バス
CPU ↔︎ メモリ ↔︎ キャッシュメモリ 間でデータを送るための道路
→ 人間:血管
CPUの命令実行手順
レジスタ
CPUに内蔵されてる、高速な記憶装置(命令を記憶)
種類 | 記憶内容 |
---|---|
命令レジスタ | 実行する命令 |
命令アドレスレジスタ(プログラムカウンタ) | 次に実行する命令のアドレス |
指標(インデックス)レジスタ | 指標アドレス指定方式で使うアドレス |
基底(ベース)レジスタ | 基底アドレス指定方式で使うアドレス |
アキュムレーター | 演算対象・演算結果 |
汎用レジスタ | 色々な値 |
命令語
プログラム言語 → 機械語(命令語)に変換 → 解読・実行
(命令語の構成)
命令部 + アドレス部(オペランド部)
命令実行のサイクル
① 命令の取り出し(命令フェッチ)
- 【 制御装置→記憶装置 】命令アドレスレジスタ(プログラムカウンタ)のアドレスを参照
- 【 記憶装置→制御装置 】命令を取り出して、命令レジスタに格納
- 【 制御装置 】命令アドレスレジスタに、次の命令アドレスをセット
② 命令の解読
- 【 制御装置 】命令部(命令レジスタ)→ デコーダへ
- 【 制御装置→演算装置 】デコーダが解読、演算装置へ指示
③ 実効アドレス計算
- 【 制御装置 】アドレス部(命令レジスタ)→ アドレスレジスタへ
- 【 制御装置 】アドレスレジスタ:実効アドレス(データのあるアドレス)計算
④ オペランドの取り出し
・ 【 主記憶装置→演算装置 】処理対象のデータ取り出し → 演算装置へ
⑤ 命令の実行
・ 【 演算装置 】演算を実行
⑥ 演算結果の格納
・ 【 演算装置→記憶装置 】演算結果を格納
アドレス指定方式(↑ 実効アドレス計算の話)
アドレス修飾(アドレス指定): アドレス部の値になんらかの処理 → 実効アドレスを求める方式
即値アドレス指定方式
直接アドレス指定方式
間接アドレス指定方式
アドレス部 = 実効アドレスを格納してるアドレスが入っている方式
相対アドレス指定方式
アドレス部の値 + 命令アドレスレジスタ(プログラムカウンタ)の値 = 実効アドレス
指標(インデックス)アドレス指定方式
アドレス部の値 + 指標レジスタ = 実効アドレス
※インデックスレジスタの役割
- 配列の添字(インデックス)で利用
for(int i = 0; i < 10; i++) {
int[] array = new int[10];
array[i] = i + 100;
}
→ インデックスが1ずつ増加=インデックスレジスタを1増加
基底(ベース)アドレス指定方式
アドレス部の値 + 基底レジスタの値 = 実効アドレス
※ ベースレジスタの役割
-
再配置可能プログラム(リロケータブル) で利用する
- = 主記憶のどこにおいても実行できる性質
- → アドレスを変更するとき=ベースレジスタの値を変更する
CPUの高速化技術
1命令 = ①命令の取り出し②命令の解読③実効アドレスの計算④オペランド取り出し⑤命令の実行⑥演算結果の格納
←ーーーーーーーーーーーーー制御装置ーーーーーーーーーーーーーー→ ←ーーーー演算装置ーーーーー→
→ 命令実行まで6段階!
→ 実行の仕方=4つ
逐次制御方式
1命令ずつ順番に実行する方式 → 効率が悪い(制御/演算装置が動かない時間あるため)
パイプライン方式
複数の命令 → 1ステージずつずらしながら並行処理 → 高速化
(欠点)
パイプライン方式 → 先読みして処理をする → 先読みが外れる場合がある 例)分岐
(対策)
・ 分岐予測: 実行されそうな方を予測する
・ 投機実行: 予測に基づいて、実行すること
パイプラン方式を更に高速化する方式
スーパーパイプライン方式
スーパースカラ方式
CPUの命令体系
CISC(シスク)(Complex Instruction Set Computer)
複雑な命令(命令数が多い)を持ったCPU、1回の命令で複雑な処理できる
活用例) PCのCPU
RISC(リスク)(Reduced Instruction Set Computer)
単純な命令を持ったCPU、命令の実行時間が均等→パイプライン方式と相性いい
活用例) スマホ・タブレット・組み込みシステムのCPU
マルチコアプロセッサ
1つのCPU内: 複数のコア(演算の中心)ある
→ シングルコアより、消費電力 低・処理速度 速
→ デュアルコア(2つ)・クアッドコア(4つ)・オクタルコア(8つ)
→ それぞれのコア = 同時に別の処理 → 処理能力向上
GPU
3Dの画像 → 高速に処理する画像処理装置
→ 数千個のコア = データを並列処理
半導体メモリ(コンピュータの記憶装置に使われる)
1. RAM(Ramdom Access Memory)
- 読み書きできるメモリ
- 揮発性(電源を切ると、データが消える)= 一時的に記憶できる
① DRAM
-
コンデンサに電気を加えてデータ保持(時間が経つと放電→データ失う)
- → リフレッシュ(データ保持)必要
- SRAMに比べ、大容量・低速・安価
-
主記憶(メインメモリ) に使われる
例)Excel - 編集 → 保存しないでアプリ終了 → アプリ起動 → 編集データ保持
- 編集 → 保存しないでアプリ終了 → 電源切る/つける → アプリ起動 → 編集データ消失
② SRAM
-
フリップフロップ回路 で記憶(2つの安定した状態をもつ、1ビットの情報を記録する回路)
- → リフレッシュ不要
- DRAMと比べ、小容量・高速・高価
- キャッシュメモリに使われる
2. ROM(Read Only Memory)
- 読み出しのみ
- 不揮発性(電源を切っても、データ消えない)
ROM = マスクROM・PROM に分割
書き込み | 消去 | 特徴 | |
---|---|---|---|
マスクROM | ❌ | ❌ | 工場で書き込み、読み込むだけ 例)ゲーム機 |
UV-EPROM | ⭕️ | ⭕️ | 紫外線照射 → 書き込み&消去 |
EEPROM | ⭕️ | ⭕️ | 電気 → 書き込み&消去(バイト単位) |
フラッシュメモリ | ⭕️ | ⭕️ | 電気 → 書き込み&消去(ブロック単位) |
キャッシュメモリ
- 主記憶(メインメモリ)より高速
- CPUと主記憶(メインメモリ)の間に配置するメモリ
- メインメモリのアクセス速度 < CPUの処理速度
- よく使うデータを記憶 → 主記憶へのアクセス数減らす
- 目的: 実効アクセス時間の短縮
- キャッシュメモリにデータない → メインメモリへアクセス(割込みは生じない)
実効アクセス時間
アクセスするデータ → キャッシュメモリ or メインメモリ に存在
- ヒット率: アクセスするデータがキャッシュメモリにある確率
- NFP(Not Found Probability): アクセスするデータがメインメモリにある確率
(実行アクセス時間の公式)
ヒット率 ✖️ キャッシュメモリのアクセス時間 ➕ (1 - ヒット率) ✖️ メインメモリのアクセス時間
1次キャッシュ・2次キャッシュ
主記憶のアクセス時間とCPUの処理時間の差が大きい時
→ 1次キャッシュ(L1キャッシュ)・2次キャッシュ(L2キャッシュ) 構成にする
→ (アクセス順番) CPU → 1次キャッシュ → 2次キャッシュ → メインメモリ
ライトスルー方式・ライトバック方式
キャッシュメモリへの書き込み方
ライトスルー方式
※ メインメモリへのアクセス頻発 = 低速
※ 一貫性(コヒーレンシ)が保たれる
ライトバック方式
メモリインターブ
アクセスと容量
補助記憶装置
(メインメモリと比較)
- アクセス速度 遅い
- 大容量・安価
- 不揮発性(電源切ってもデータ消えない)= 長期的な記憶ができる
1. 磁気ディスク装置(HDD:Hard Disk Drive)
■ HDD 使用例 : ワープロなどのソフト「保存ボタン」
→ 主記憶装置から補助記憶装置にデータをコピーする
■ しくみ
磁性体を塗ったディスク → データ記録 → 磁気ヘッドを移動 → データを読み書き
■ 特徴
・ アクセス速度・データ転送 高速
・ 大容量
・ プログラム・アプリ・データ → 磁気ディスク装置に保存
・ 別名 「ハードディスク」
ハードディスクの構造
ディスクの表面
※ 1セクタ = 512バイト単位
* シリンダ: シリンダ単位でアクセスする
- シリンダ:1枚のディスクが4枚集まる(1)/全ディスクの中心から同距離にあるトラック(4トラック)を合わせてシリンダという(2)
- シリンダという考え方がある理由:磁気ヘッドの動作を最小限にするため
アクセス時間
CPUが命令 〜 データの読み書き終了時間
(アクセス時間の公式)
待ち時間(位置決め時間+回転待ち時間) + データ転送時間
時間 | 内容 |
---|---|
位置決め時間(シーク時間) | 磁気ヘッド→目的のデータがあるトラックまで移動する時間 |
回転待ち時間(サーチ時間) | 磁気ヘッド→目的のデータが回転してくるのを待つ時間 |
データ転送時間 | 磁気ヘッド→目的のデータが通り過ぎるのに使う時間 |
※ サーチ時間 = 1回転する時間の1/2
フラグメンテーション(断片化)
(ハードディスクの空きが十分な状態)
データ = 連続した領域に固まって記録 → 待ち時間が最小限で済むため
(データの追加・削除を繰り返す)
データ = 連続した領域に保存されない(断片化)
→ ハードディスクの読み込み速度が遅くなる
デフラグメンテーション(フラグメンテーションを解消する作業)
2. フラッシュメモリ
データを電気的に書き換える・消去 できる
使用例) USBメモリ、 SDカード
3. SSD
- HDD の代替え装置
- フラッシュメモリを使う、ディスクはない(=シーク/サーチなし)
- 静音、衝撃に強い
- 消費電力小
- 高価、書き込み回数に上限
4. 光ディスク
レーザー光でデータを読み書きする記憶媒体
種類 | 特徴 | 容量 |
---|---|---|
CD | 音楽用CD→PC記録用に応用・ソフトウェアの配布 | 700MB |
DVD | 映像も記録できる | 17GB |
BD(Blu-ray Disc) | ハイビジョン映像を記録 | 100GB |
光ディスクの記録方法
記録方法 | 内容 | 例 |
---|---|---|
再生専用型 | 書込み✖️ | CD-ROM,DVD-ROM,BD-ROM |
追記型 | 書込み○書換え✖️ | CD-R,DVD-R,BD-R |
書替え型 | 書込み○書替え○ | CD-RW,DVD-RW,BD-RE |
入出力装置
入力装置
コンピュータ ← データ・音声・画像を入力、指示を与える 装置
(種類)
- 文字を入力する装置: 例)キーボード
- 位置情報を入力する装置: 例)マウス・タブレット → 総称: ポインティングデバイス
- イメージを入力する装置: 例)イメージスキャナ
* 静電容量方式タッチパネル: タッチした部分 → 表面電荷の変化 → 位置を検出
バーコードリーダ
帯状のバーコードを読み取る装置
(バーコードの種類)
バーコード | 特徴 |
---|---|
JANコード | 商品を管理、しましま、「国コード・メーカコード・商品アイテムコード・チェックディジット」で構成 |
QRコード | 小さな領域に多くの情報、エラー訂正機能、2次元コード、360度の方向から読み取り可能 |
* POSシステム: バーコード → 売行きを把握するシステム
* RFID(ICタグ): ICチップ+アンテナ → 電磁波で情報を非接触で読み取る 例) Suica
出力装置
コンピュータ内部で処理したデータ → 外部に出力する総理
ディスプレイ
ディスプレイ | 特徴 |
---|---|
液晶ディスプレイ | 色の透過を画素ごとに制御→カラーフィルターで色表現、自ら発光しない |
有機ELディスプレイ | 電気を通すと発光する有機化合物、薄型・低電圧・低電力 |
解像度
ディスプレイ : 点(ドット=画素・ピクセル)が集まって表現
解像度: 横・縦のドット数で表す (ドットが大きい→解像度が高い→キレイなディスプレイ)
→ ※ 単位: dpi(dots per inch)=1インチあたりのドット数
VRAM(Video RAM)
ディスプレイに表示される内容を一時的に記録する専用メモリ
→ 解像度はVRAMの容量で決まる!
プリンタ
種類 | 内容 |
---|---|
レーザープリンタ | レーザー光→紙に転写→印刷 PPM(Page Per Minute) |
インジェクトプリンタ | インクを吹き付ける→印刷 |
ドットインパクトプリンタ | インパクトを与える→印刷 |
3Dプリンタ
熱で溶かした樹脂・金属粉末 → 層状に積み重ねる → 立体物を作成するプリンタ
入出力インタフェース
入出力インタフェース
PC本体と周辺機器を接続する規格
USB(Universal Serial Bus)
PCと周辺装置を接続する、標準的なシリアルインタフェース
→ シリアルインタフェース: データを1ビットずつ直列に転送
→ マウス・キーボード・磁気ディスク装置・プリンタ などと接続
→ PC: 数個のポート(差し込み口)あり
→ USBハブ: 127台の機器接続が可能
(USBの規格)
規格 | 転送速度(bps) | モード | 使用先 |
---|---|---|---|
USB1.1 | 12M | フルスピード | プリンタ・スキャナ |
USB2.0 | 480M | ハイパースピード | 外付けHDD |
USB3.0 | 5G | スーパースピード | SSD |
USBのコネクタの形状
。
* ホットプラグ: 接続した機器の電源を入れたまま、抜き差しできる 例)USBはホットプラグ対応
* バスパワー: USBのケーブル → パソコン本体から電源を供給する
HDMI
音声・映像・制御信号 = 1本のケーブルで入出力できるインタフェース
例) PC・スマホの映像、音声 → TVに出力
Bluetooth
免許不要・2.4GHzの電波 → 利用したインタフェース
→ 半径100mハンイ: 通信速度=24Mbps
→ 指向性なく通信できる
* BLE(Bluetooth Low Energy):低 消費電力・長時間動作 (IoT機器に適する)
Zigbee(ジグビー)
免許不要・2.4GHzの電波 → 利用したインタフェース
- 電波の届く範囲は狭い
- 低コスト・低消費電力
-
PAN(Personal Area Network): LANより狭い、近距離のIT機器同士が通信するネットワーク
- BLE、Zigbeeを使用