ハードウェアの基礎知識 - SEGAWA`s Web Site

ハードウェアの基礎知識
オペレーティングシステム
第2回
前回の絵



ある程度のハード
ウェアの知識が必要
別の講義で聞いて
いるかも知れない
ここで説明するものは
簡略化したひとつの
例
簡略化した構成図
バス
後でよく出てくる
バスの下にあるが意
味はない
メ モ リ(1)



主記憶装置
ある単位で区切られていて,それぞれに番地(ア
ドレス)
番地により,特定の位置を指定
8ビットのことが多い
 データの読み出し・書き込み
過去のコンピュータの場合,
別のサイズのものがある
メ モ リ(2)




HDDも記憶装置のひとつ
メモリよりは読み書きに時間がかかる
が,容量が大きく値段が安い
高速なものと低速なものを組み合わせる
 記憶装置の階層化
C P U (1)




Central Processing Unit
中央処理装置
単にプロセッサ(processor)
“頭脳”
ひとつのLSIにまとめられていることが多い
 MPU(Micro Processing Unit)
C P U (2)
1. 命令をメモリから取り出す
2. 命令を実行する
 データをメモリから読み出す
 演算する
 結果をメモリに書き込む(格納する)
 …
 1,2 を繰り返す(サイクル)
いろいろ
たくさん
ある
C P U (3)




いろいろな部品で構成される
レジスタ(register)
 演算対象のデータを保持
プログラムカウンタ(program counter )
 次に取り出す(実行する)命令が格納されてい
るメモリの番地
 PCと略す
とりあえず,この2つを
C P U (4)

レジスタの使い方(使われ方)の例
83
8
C P U (5)




メモリのデータをレジスタにコピー
レジスタのデータとメモリのデータを演算
 結果はレジスタのデータを上書き
レジスタのデータをメモリにコピー
 メモリのデータを上書き
ちょっと注意(個人的には)
 レジスタに値を設定,メモリに値を格納
C P U (6)

実行モード
 特権モード
 OSを実行するためのモード
 すべての命令を実行可
 非特権モード(一般ユーザモード)
 一般のプログラムを実行するためのモード
 特権命令(システムを管理するための命令
など)は実行不可
プログラムの実行(1)

プログラム(一連の命令)もデータもメモリに格納
されている
プログラムの実行(2)
1. PC ← 1000
(PCはプログラムカ
ウンタ)
2. PC番地から命令を
取り出す
3. PCの値を1増やす
4. 取り出した命令を実
行する
5. 2に戻る
命令の種類(1)


CPUにより,大きく異なる
命令の長さ
 ここではひとつのメモリ(の単位)に入るとして
いるが,複数のメモリ(の単位)が必要なもの
もある
命令の種類(2)

データ転送命令
 メモリ ⇔ レジスタ
 例 3002番地のデータをレジスタに
 データを,メモリからCPUに
 例 レジスタのデータを3001番地に
 データ(計算結果)を,CPUからメモリに
命令の種類(3)

演算命令
 レジスタとメモリのデータの演算
 例 レジスタのデータと3000番地のデータを足
して,結果をレジスタに
 算術演算だけでない
 例 レジスタのデータと3003番地のデータを比
較
 注意 複数のレジスタがあることも
命令の種類(4)

PCの値の変更する命令
 次に実行する命令を変える
 分岐命令
 例 PCの値を2000にする
 例 直前の演算の結果が0ならば,PCの値を
1001にする(条件付き)
命令の実行(1)
例 “レジスタのデータと3000番地のデータを足して,結果を
レジスタに”という1命令
① 命令の解釈
 “足し算”である
② 必要なデータはどこにあるのか
 レジスタとメモリ(3000番地)
③ 実際に演算
 足し算を実行
④ 結果はどうするのか
 レジスタ
命令の実行(2)



命令が実行単位
しかし,1命令であっても,いくつかの処理ステッ
プからなる
CPUは命令を処理単位とする
 途中で中断することはない
機械語



コンピュータが理解できるもの
ビットの並び
 人間には分かりにくい
分かり易くしたものがアセンブリ言語
 情報処理技術者試験 CASLⅡ
 命令を英単語(を略したもの)
 番地を名前
アセンブリ言語(CASLⅡ)による
1番レジスタ(GR1)に
A番地のデータを
プログラム例
持ってくる(load)
A
B
C
LD
GR1, A
ADD
ST
…
DC
DC
DS
GR1, B
GR1, C
GR1のデータにB番地のデータ
(A番地のデータは変わらない)
を加える(add)
Cのプログラムだと
GR1のデータをC番地に格納
GR1は和となる(変化する)
する(store)
B番地のデータは変わらない
int a=3,
b=5, c;
GR1のデータは変わらない
C番地のデータは上書きされる
c = a + b;
メモリのあるところにAという名前を付ける
3
5
1
メモリのAの次に,Bという名前を付ける
数値3を格納する
数値5を格納する
メモリのBの次に,Cという名前を付ける
(場所を確保するだけ)
マルチプロセッサシステム




複数のプロセッサからなるシステム
複数のプログラムを同時に実行できる
 並列処理
高速化
マルチプログラミングという言葉が出てくるが異
なるものである
マルチコア

ひとつのLSIの中に,複数のプロセッサ

LSI技術(集積度の向上)の発達で可能になった

省エネという面もある
まとめ(1)

ひとつの命令が実行単位
 命令の解釈
いくつかの処理が必
 必要な準備(番地計算など)
要になる
 実行
まとめ(2)




c = a + b;
ひとつの“計算”だと思っても,いくつかの機械語
の命令で実行される
LD GR1, A
ADD GR1, B
ST GR1, C
途中で中断することがある!
と,どうなるか?
 後で取り上げる予定
まとめ(3)


実行モード
 特権モードと非特権モード
割込みで重要
まとめ(4)

記憶装置の階層化
 レジスタ
 キャッシュメモリ
 主記憶(メモリ)

“仮想”という言葉が
HDD
いろいろな場面で
 低速なメモリとして扱うことができる
出てくるので注意
 仮想記憶
まとめ(5)

“マルチ …”
 後でいろいろ出てくるので注意
まとめ(6)

ハードウェアは多種多様

技術の進歩で大きく変わる

例えば,いろいろな入出力装置を容易に使える
ようにすることもOSの機能
まとめ(7)

ハードウェアには寿命がある
 意外な落とし穴
 安易なSSD導入がもたらす「猛毒」の正体
http://pc.watch.impress.co.jp/docs/news/eve
nt/20120906_557787.html
簡単に歴史
おまけ
歴 史


コンピュータ史(IEEE Computer Society)
http://www.computer.org/computer/timeline/ti
meline.pdf
コンピュータ博物館(情報処理学会)
http://museum.ipsj.or.jp/
で は



キーボードのキーの配列
 文献15
最初のコンピュータ
 文献14
最初のマウス
 http://www.youtube.com/watch?v=1MPJZ6M
52dI
で は

最初のコンピュータウイルス

インターネットの始まり

etc.