コンピュータの仕組みとディジタルデータ

コンピュータの仕組みとディジタルデータ
プログラミングの予備知識
T
G
M
K
: テラ (1012=1兆)
: ギガ(109 =10億)
: メガ (106 =100万)
: キロ(103=1000)
Hz : ヘルツ(周波数の単位)
B : バイト (データ量の単位)
1
コンピュータとはどのような機械か?
「あらかじめ指示されたことを正確に高速に行う機械」
= プログラム(program:ある物事の進行状態についての
順序・組み合わせ・筋などのこと。及び、それを書いたもの。 )
コンピュータプログラム= コンピュータに一定の仕事を行わせるための
コンピュータ固有の命令(instruction)の集まり
「命令」とは ?
コンピュータの内部状態を変更するための指示
z データを持ってこい
z データを保存しろ
z 足算しろ,引算しろ,掛算しろ,...
z 二つの数が等しいかどうか判断しろ
z どっちの数が大きいか判断しろ
z ...
電卓とコンピュータ : 何が違うか
z 電卓(calculator)
– データ入力と計算手順を人間が操作する
→ 計算速度の限界
z コンピュータ(computer)
あらかじめデータと計算の手順(命令)を記憶装置(メモリ)
に格納しておき,命令を順番に一つずつ取り出して,命令
を実行する。
プログラム内蔵(stored program)方式 / Von Neumann方式
世界最初のプログラム内蔵方式コンピュータ
: EDSAC(ケンブリッジ大学,1949年)
2
ビデオ : コンピュータ誕生の歴史
身の回りのコンピュータ
カーナビ
パソコン
洗濯機
ゲーム機
デジタルカメラ
DVDプレーヤ
冷蔵庫
携帯電話
テレビ
ロボット
3
パソコンの中身
マザーボード
プロセッサ(CPU)
主記憶(メモリ)
コンピュータの構成要素
プロセッサ
(CPU)
メモリバス
主記憶
(メモリ)
入出力バス
入力装置
キーボード
マウス
出力装置
ディスプレイ
プリンタ
補助記憶装置
ハードディスク
フロッピーディスク
CD、DVD
z プロセッサ : CPU(Central Processing Unit,中央処理装置)とも呼ぶ
z 主記憶 : メインメモリあるいは単にメモリとも呼ぶ
z バス : 信号線の束
4
プロセッサ(processor:処理装置)
z 演算や実行制御(条件判断,繰返しなど)を行う
z プロセッサには命令(演算命令,条件判断命令など)が定義されている
– プログラムは命令を組み合わせて作られる
– 命令は0と1の組合せによって表現される(機械語)
プロセッサLSI
Large Scale Integrated circuit
メモリ(memory)
¾ 2進数(0と1)で表現されたプログラムやデータを記憶する素子
記憶場所の指定
番地
パッケージ
端子
メモリチップ
メモリIC
0
01001010
1
11010111
2
10001111
3
00110110
コネクタ
(メモリスロットに接続)
…
…
PSD
メモリ(1Gbyte)
999999998
10011001
999999999
01101010
命令 / データがメモリに
格納される
5
コンピュータの構成要素
演算データを保持
実行する命令の
番地を保持
プロセッサ
メモリ(1GByte)
0番地
R0
R1
R2
R3
1番地
レジスタ
プログラムカウンタ(PC)
命令,データ
2番地
命令レジスタ(IR)
命令解読器(ID)
ALU
PCの指す番地から
読み出した命令を
保持
計算を実行
命令レジスタの
内容を解読
999999999
番地
プログラムの命令と
データを格納
PC : Program Counter
IR : Instruction Register
ALU : Arithmetic Logical Unit
ID : Instruction Decoder
コンピュータの動作
z プロセッサはメモリに格納された「命令」を順番に実行していく
①
メモリから命令を読み出してくる。 【命令読出し(Fetch)】
●
何番地から命令を読み出すか?
⇒ プロセッサ内部の「プログラムカウンタ(PC)」により指定する
次の命令の実行に備えてPCの値を増やす。
●
② 読み出した命令を解読する。 【命令解読(Decode)】
③ 命令を実行する(計算を行う)。【命令実行(Execute)】
④ 計算結果を格納する。【結果格納(Store)】
命令とデータ
データ
(計算結果)
6
プロセッサの時間動作を決めるもの
=動作周波数(クロック周波数)
周波数:1秒間の繰返し回数(単位: Hz(ヘルツ))
時間
クロック信号
(コンピュータの
メトロノーム)
サイクル時間
1秒間に10億回の繰返し
→ 10億Hz=109Hz=1GHz
サイクル時間=
→
1
動作周波数
サイクル時間
1
=10-9=1ns(ナノセカンド)
109
1秒間に 5億回の繰返し
1
→ 5億Hz=500×106Hz=500MHz → 500×106 =0.002×10-6=2×10-9
=2ns(ナノセカンド)
1ns という時間 : 光が約33cm進む距離(光の速度30万km/秒)
量と単位の表し方
接頭語
(補助単位)
単位例
記号
フェムト
f
1兆分の1
ピコ
p
10-9
10億分の1
ナノ
n
10-6
100万分の1
マイクロ
μ
μs
10-3
1000分の1
ミリ
m
ms
10-15
10-12
100
=1
ps
ns
bit
Byte
Hz
103
1000
(210)
キロ
k
kbit
kByte
kHz
106
100万
(220)
メガ
M
Mbit
MByte
MHz
109
10億
(230)
ギガ
G
Gbit
GByte
GHz
1兆
(240)
テラ
T
Tbit
TByte
THz
1000兆
(250)
ペタ
P
1012
1015
7
s
プロセッサの時間動作を決めるもの
=動作周波数(クロック周波数)
1命令の実行サイクル
時刻 1
時刻 2
時刻 3
時刻 4
命令実行
結果格納
クロック信号
(コンピュータの
メトロノーム)
命令読出し
命令解読
500MHz動作
の場合
2ns
2ns
1GHz動作
の場合
1ns
2ns
2ns
8ns(=8×10-9 秒)
= 1命令が8nsで実行できる
1ns
1ns
1ns
4ns(=4×10-9 秒)
= 1命令が4nsで実行できる
コンピュータの何が凄いのか
コンピュータの命令はきわめて単純な動作しか実行できない。
しかし,個々の動作はもの凄く高速に実行できる。
ex. 動作周波数1GHzのコンピュータ:4nsに1命令=1sに2.5億命令
(秒)
単純な動作でも何千,何万,何十万,何百万… と組み合わせれば,
「たくさんの便利なこと」ができる。
「たくさんの便利なこと」:文書処理,表計算,コンピュータ通信,
機器(家電品,自動車など)の制御,…
8
情報の量を表す単位
z bit(binary digit) : 2進数1桁で表すことのできる情報量
(電子回路では,電圧/電流の有無,スイッチのON/OFF に対応させる)
z 1byte(B) = 8bit
¾ 1kbyte = 1000 byte (正確には210=1024 byte)
¾ 1Mbyte = 1,000,000 byte (正確には220=1048576 byte)
¾ 1Gbyte = 1,000,000,000 byte (正確には230 byte)
‹ 記憶メディアの容量
• フロッピーディスク : 1.4MB
・ USBメモリ : 1GB ~ 128GB
• CD 700MB
・ DVD 4.7~17GB
• Blu-ray Disc 25/50GB
(地デジ録画時間:3h / 6h)
・ HDD 40 ~ 1000GB(1TB)
文字データ
„ 文字のデータ
ABC...
012...
!@#$%...
英字
数字
記号
アイウ...
あいう...
亜唖娃…
カタカナ
ひらがな
漢字
1文字ずつ,固有のビット列を割り当てて,文字を表現する
=文字コード
z 英数字,記号文字(半角文字): 8 bit (1byte)で表現(ASCII)
‘A’: 01000001
‘a’:01100001
‘1’:00110001
z 日本語文字(全角文字):16 bit (2byte)で表現(JIS,SJIS,EUCコード)
‘一’: 10001000 11101010 ‘橋’: 10001011 10110100
9
画像データ(カラー画像)
画素(pixel)
カラー画像の表現
• 光の三原色(赤、緑、青)の3色の
重ね合わせですべての色を表現する。
• 各色はそれぞれ 1byte=8 bit で表現
する。(28=256 通りの明度)
0
255
R(赤)
G(緑)
B(青)
• 全体として 3(色)×8( bit) = 24 bit で色を表現する。
• 表現できる色数は,224 ≒ 1600 万色
10
画像データ
赤 11111110 (1byte)
緑 11101001 (1byte)
青 10100110 (1byte)
1画素あたり 24bit(3 byte)のデータ
256×256画素のデータ量:
256×256×3byte=196608byte
≒196Kbyte
最近のディジタルカメラ
1400万(4320×3240)画素
パナソニック
LUMIX ZX3
1画素3byteの色情報をもつとすると:
全体の情報量 4320×3240×3byte≒4200万byte=42Mbyte
512MbyteのSDカードに何枚記録できる ?
512Mbyte÷42Mbyte=512Mbyte÷42Mbyte≒12枚
カタログでは... → 『約83枚』
JPEG : 圧縮技術(画素レベルでは隣接する画素の色は
それほど違わないという性質を利用) 圧縮率83÷12=6.9
11
動画データ
• 1秒間に30枚(30フレーム)の静止画を連続して表示
動画データ
• 1画面720×480画素のディジタルビデオカメラの映像では,
1画面 : 720×480×3byte=1036800byte≒1MB
1秒間で約30MB
1分間で約1800MB(=1.8GB)程度
• CD(700MB)で23秒(700MB÷30MB≒23秒)
DVD(4.7GB)で156秒(4.7GB÷30MB≒156秒)
実際には,
MPEG:圧縮技術(画像の中の動く部分だけを検出し保存)
→ 1枚のDVDに133分録画可能
12
電圧
時間
電圧
時間
一定時間ごとにアナログ信号をサンプ
リングする。
データ
65536
音楽CDの場合,1秒間に44100回
のデータをサンプリングする
(サンプリング周波数:44.1kHz)
32768
各点の信号の電圧を16ビットの
ディジタル値に変換する。
時間
音楽データのデータ量
1秒間に44100個のディジタルデータ(2byte): 88200byte
ステレオの場合(右と左)は2倍:176400byte = 176.4kbyte
1枚のCD(700Mbyte) には,
700Mbyte ÷ 176.4kbyte ≒ 3968秒=66分
の楽曲を記録できる。
13