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

コンピュータの仕組みとディジタルデータ
プログラミングの予備知識
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プレーヤ
携帯電話
テレビ
ロボット
パソコンの中身
マザーボード
プロセッサ(CPU)
主記憶(メモリ)
3
コンピュータの構成要素
プロセッサ
(CPU)
メモリバス
主記憶
(メモリ)
入出力バス
入力装置
出力装置
キーボード
マウス
ディスプレイ
プリンタ
補助記憶装置
ハードディスク
フロッピーディスク
CD、DVD
z プロセッサ : CPU(Central Processing Unit,中央処理装置)とも呼ぶ
z 主記憶 : メインメモリあるいは単にメモリとも呼ぶ
z バス : 信号線の束
プロセッサ(processor:処理装置)
z 演算や実行制御(条件判断,繰返しなど)を行う
z プロセッサには命令(演算命令,条件判断命令など)が定義されている
– プログラムは命令を組み合わせて作られる
– 命令は0と1の組合せによって表現される(機械語)
プロセッサLSI
Large Scale Integrated circuit
4
メモリ(memory)
¾ 2進数(0と1)で表現されたプログラムやデータを記憶する素子
記憶場所の指定
番地
パッケージ
端子
メモリチップ
メモリIC
01001010
1
11010111
2
10001111
3
00110110
…
…
PSD
コネクタ
(メモリスロットに接続)
メモリ(1Gbyte)
0
999999998
10011001
999999999
01101010
命令 / データがメモリに
格納される
コンピュータの構成要素
演算データを保持
実行する命令の
番地を保持
プロセッサ
メモリ(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
5
コンピュータの動作
z プロセッサはメモリに格納された「命令」を順番に実行していく
①
メモリから命令を読み出してくる。 【命令読出し(Fetch)】
●
何番地から命令を読み出すか?
⇒ プロセッサ内部の「プログラムカウンタ(PC)」により指定する
次の命令の実行に備えてPCの値を増やす。
●
② 読み出した命令を解読する。 【命令解読(Decode)】
③ 命令を実行する(計算を行う)。【命令実行(Execute)】
④ 計算結果を格納する。【結果格納(Store)】
命令とデータ
データ
(計算結果)
プロセッサの時間動作を決めるもの
=動作周波数(クロック周波数)
周波数: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/秒)
6
量と単位の表し方
接頭語
(補助単位)
フェムト
10-15
単位例
記号
f
10-12
1兆分の1
ピコ
p
ps
10-9
10億分の1
ナノ
n
ns
10-6
100万分の1
マイクロ
μ
μs
10-3
1000分の1
ミリ
m
ms
100
103
106
109
=1
bit
Hz
1000
キロ
k
kbit
kByte
kHz
100万
(220)
メガ
M
Mbit
MByte
MHz
10億
(230)
ギガ
G
Gbit
GByte
GHz
1兆
(240)
テラ
T
Tbit
TByte
THz
1000兆
(250)
ペタ
P
1012
1015
Byte
(210)
プロセッサの時間動作を決めるもの
=動作周波数(クロック周波数)
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で実行できる
7
s
コンピュータの何が凄いのか
コンピュータの命令はきわめて単純な動作しか実行できない。
しかし,個々の動作はもの凄く高速に実行できる。
ex. 動作周波数1GHzのコンピュータ:4nsに1命令=1sに2.5億命令
(秒)
(最新のスパコン「京」では,1秒間に1京回(1億の1億倍)の計算ができる)
単純な動作でも何千,何万,何十万,何百万… と組み合わせれば,
「たくさんの便利なこと」ができる。
「たくさんの便利なこと」:文書処理,表計算,コンピュータ通信,
機器(家電品,自動車など)の制御,…
最近のプロセッサ技術
1
IF
パイプライン実行:
「命令読出し」,「命令解読」,「命令実行」,
「結果格納」の各工程の流れ作業化
2
ID
3
Ex
逐次実行した場合
IF
6
7
8
IF
ID
Ex
St
ID
Ex
St
IF
ID
Ex
St
IF
ID
IF
Ex
St
ID
Ex
St
IF
ID
Ex
パイプライン実行した場合
マルチコアプロセッサ:
5
4
St
St
一つのプロセッサに複数のCPUを内蔵(デュアルコア,クワッドコア,・・・ )
他にもいろいろな高速化技術により,プロセッサの高性能化が図られている
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)
数値データ
„ 2進数表現(正の整数)
01110101(2) → 0×27+1×26+1×25+1×24+0×23+1×22+0×21+1×20
…
= 117(10)
3
2
1
0
27の桁
1234(10)= 1×10 +2×10 +3×10 +4×10
と考えるのと同じこと
20の桁
„ 補数表現(正負の整数)
-A(A≧0)を表すには? ⇒ 0-A の値を-Aの表現とする
仮想的に1が
あると考える
1 00000000
-) 01110101 ←117
10001011 ← この表現を -117 の値とみなす
※ 多くのコンピュータでは32ビットで整数を表現している
表現できる値の範囲 -2,147,483,648 ~ + 2,147,483,647
„ 浮動小数点表現(小数点を含む数値,大きな数値/小さな数値)
仮数と指数の組合せで表現する ( 0.602,22 )
6.02×1023
仮数
指数
9
文字データ
„ 文字のデータ
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
画像データ(カラー画像)
画素(pixel)
10
カラー画像の表現
• 光の三原色(赤、緑、青)の3色の
重ね合わせですべての色を表現する。
• 各色はそれぞれ 1byte=8 bit で表現
する。(28=256 通りの明度)
0
255
R(赤)
G(緑)
B(青)
• 全体として 3(色)×8( bit) = 24 bit で色を表現する。
• 表現できる色数は,224 ≒ 1600 万色
画像データ
赤 11111110 (1byte)
緑 11101001 (1byte)
青 10100110 (1byte)
1画素あたり 24bit(3 byte)のデータ
256×256画素のデータ量:
256×256×3byte=196608byte
≒196Kbyte
11
最近のディジタルカメラ
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
動画データ
• 1秒間に30枚(30フレーム)の静止画を連続して表示
12
動画データ
• 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分録画可能
電圧
時間
電圧
時間
一定時間ごとにアナログ信号をサンプ
リングする。
データ
65536
音楽CDの場合,1秒間に44100回
のデータをサンプリングする
(サンプリング周波数:44.1kHz)
32768
各点の信号の電圧を16ビットの
ディジタル値に変換する。
13
時間
音楽データのデータ量
1秒間に44100個のディジタルデータ(2byte): 88200byte
ステレオの場合(右と左)は2倍:176400byte = 176.4kbyte
1枚のCD(700Mbyte) には,
700Mbyte ÷ 176.4kbyte ≒ 3968秒=66分
の楽曲を記録できる。
14
「コンピュータの仕組みとディジタルデータ」演習問題
【問題 1】
次の設問に答えよ。ただし,1M=106,1n=10―9 として解答せよ。
(1) クロック周波数が 800 メガヘルツ(MHz)のサイクル時間は何ナノ秒(ns)か。
(2) あるコンピュータはクロック周波数が 800 メガヘルツ(MHz)で,1 命令実行する
のに 4 クロック要する。このコンピュータが 1 命令実行するのに要する時間は何
ナノ秒(ns)か。
(3) (2)のコンピュータは 1 秒間に何命令実行できるか。
【問題 2】
次の設問に答えよ。ただし,1K=103,1M=106,1G=109 として解答せよ。
(1) 日本の全国版新聞朝刊 1 部の文字数を 400000 字とすると, 4.7 ギガバイト
(GB)の DVD には何年分(1 年を 365 日とする)の朝刊を格納することができ
るか。 なお, 日本語文字 1 文字は 2 バイトで表す。
(※日本の朝刊紙の平均文字数は 380000~410000 字とのことである)
(2) 1 分間に日本語文字(1 文字 2 バイト)800 文字を黙読するとして,1 日 2 時間,
毎日,40 年間(1 年を 365 日とする)継続して文字を読むとしたら,40 年間で何
ギガバイト(GB)のデータを読むことになるか。
(3) 家電量販店では 1000 ギガバイト(GB)=1 テラバイト(TB)のハードディスクが
8,000 円程度で売られている。この価格を基準にすると(2)のデータ量の価格は
何円になるか。
(4) 横 1600 画素,縦 1200 画素で,24 ビットのカラー画像を撮影できるディジタルカ
メラがある。このカメラに 64 メガバイト(MB)の記録用メモリを使用すると,何枚
の画像を記憶できるか。ただし,データの圧縮はしないものとする。
(5) フルハイビジョンのビデオ映像は 1 フレーム 1920×1080 画素からなる。1 画素
24 ビットでカラー情報を記録すると,30 分のビデオ映像のデータ量は何ギガバ
イト(GB)になるか。 なお,ビデオ映像は毎秒 30 フレームからなるとし,データ
の圧縮はしないものとする。
15