コンピュータの基礎第6講
入出力装置と記憶装置
【第6講のポイント】
第1講第3節 コンピュータの仕組み では、コンピュータの機能とそれを実現するための構成装置について、大まかに学んだ。本講では、とくに入出力装置と2種類の記憶装置について、より詳しく学ぶ。
【第6講の目標】
学習後、以下のことが身についたかチェックしよう。
- 次の術語の意味がわかる
インターフェース、シリアルインターフェース、パラレルインタフェース
- 代表的な入出力機器の機能を理解できる
- 主記憶装置と補助記憶装置の機能の違いと、使われ方を理解している
- 記憶装置の階層とその役割を理解している
- キャッシュと仮想記憶の仕組みを理解している
【第6講の構成】
- 構成要素
- 入出力装置
- 主記憶装置
- 補助記憶装置
- 記憶装置の階層
- キャッシュと仮想記憶
本書の見方
- ページをめくる
- 左(右)矢印キーを押す
- 1ページ分の移動
- 左右上端にある[Next]、[Previous]タブをクリックする
- 節の頭に移動
- 右上の【節の移動】タブをクリックし、現れた節を選ぶ
- ページのジャンプ
- 右上のページ番号表示タブをクリックし、現れたページを選ぶ
- 画像の拡大およびリンク先への移動
- 画像やリンク先をクリックすれば、別ウィンドウ(タブ)で表示される
- ページ移動が利かなくなったとき
- ブラウザの更新ボタンでテキストを再読み込みする
第1節 構成要素
機能と構成装置
コンピュータは、
入力されたデータとプログラムを
記憶し、プログラムに定められた手順にしたがって、
演算・処理を行い、その結果を
出力するように
制御されている。これらの機能を実現するため、コンピュータは通常、右図のように、
CPU(演算と制御を行う)、
主記憶装置(計算に必要なプログラム・データを一時的に記憶)、
補助記憶装置(プログラム・データを保存)、
入力装置、出力装置から構成される。
本稿では、入力装置、出力装置、主記憶装置、補助記憶装置について、その仕組みと働きを学び、CPU については次講で詳しく学ぶ。
機能 | 構成装置 |
入力 | 入力装置 |
出力 | 出力装置 |
記憶 | 補助記憶装置 |
主記憶装置 |
演算・処理 | CPU |
制御 |
第2節 入出力装置
入出力インターフェース
インターフェースは2つの「もの」をつなぐ橋渡しをするもの(こと)を意味する言葉で、
入出力インターフェースは、入出力装置とコンピュータを本体をつなぐ役割を果たす。入出力インターフェースには、シリアルインターフェースと、パラレルインターフェースがある。
シリアルインターフェースは、通信線が1本で、1ビットずつ順次(シリアルに)送信する方式で、USB、IEEE1394等の規格がある。また、赤外線で通信するIrDAや無線で通信するBluetooth等の規格もある。
パラレルインターフェースは、複数の通信線を使って同時並行的(パラレル)に送信する方式で、SCSI、IDE等の規格がある。
|
- インター、インターフェースのそれぞれの意味を調べよ
- ○○インターフェースには、どのような言葉があるか。3つあげ、それらの意味を説明せよ
|
入力装置
入力されたデータを内部表現に対応する0,1の列に変換して、コンピュータに伝える装置。
入力 | 代表的な装置 |
文字 | キーボード |
ポインティング | マウス、タッチパネル、タブレット |
パターン | OCR(光学的文字読取装置)、OMR(光学的マーク読取装置) バーコードリーダ |
図形・画像 | スキャナ、デジタルカメラ |
音声 | マイク |
動画 | デジタルビデオカメラ |
データ | USBメモリ、ハードディスク、CD・DVDリーダ |
出力装置
内部表現である0,1の列を文字や音声、画像などの人間にわかりやすい表現に変換して表示する装置。
出力 | 代表的な装置 |
表示 | ディスプレイ |
印刷 | (シリアル、ライン、ページ)プリンタ |
作図 | プロッタ |
音声 | スピーカ |
データ | USBメモリ、ハードディスク、CD・DVDライタ |
二次記憶装置ともいい、ハードディスクが代表的である。フロッピーディスク、DVD-R、DVD-RW(読み書き可能なDVD)、USBメモリー等の外部記憶装置も含まれる。補助記憶装置は電源を切ってもその内容が失われず(
不揮発性)、
安価で
大容量であるが、主記憶装置に比べてアクセス(読み書き)速度は非常に
遅い。
プログラムやデータは通常補助記憶装置に貯えられていて、一度主記憶に読み出されて(
load)から実行される。計算終了とともに、計算結果等必要なデータを再び補助記憶装置に保存(
save)する(でないと電源OFFとともにデータが失われる)。
ハードディスクの仕組みとアクセス時間
右図(
Wikipedia)にみられるように、
ハードディスクでは、複数の円盤(
ディスク)の上下面の各円周(
トラック)が
セクタに分割され、そこにデータが記録される。
データの読み書き動作は、ヘッドがデータのあるトラック上に移動し(
シーク)、円盤が回転してデータセクタがヘッドの下に移動した(
サーチ)ときに行われる。したがって、次の式が成り立つ。
アクセス時間=シーク時間+サーチ時間+データ転送時間
=シーク時間+サーチ時間+データサイズ/データ転送速度
例題.ハードディスクのアクセス時間を求めてみよう。
- 回転速度=6000rpm(毎分6000回転)
- 平均シーク時間=10ms
- トラック容量=500KB
とする。この時、
- 平均サーチ時間=1/2回転時間=60/6000×1/2秒=5ms
- 転送速度=500×6,000/60(KB/s)=50,000KB/s=50KB/ms
より、
アクセス時間=シーク時間+サーチ時間+データサイズ/転送速度
アクセス速度=データサイズ/サクセス時間
は、次の表のようになる。
サイズ |
アクセス時間 |
アクセス速度 |
1KB |
10+5+1/50=15.02ms |
1/0.01502≒66.6KB/s |
50KB |
10+5+50/50=16ms |
50/0.016≒3,125KB/s≒3.1MB/s |
|
- 100KBのデータに対するアクセス時間とアクセス速度を求めよ
- 100MBのデータに対するアクセス時間とアクセス速度を求めよ
|
このように、ハードディスクはいわゆる頭出しに時間がかかるので、一度にまとめて読み書きしたほうが効率が良い。近年は機械的な頭出し(シーク操作)がなくより高速な
SSDが使われるようになってきた。
第4節 主記憶装置
主記憶装置(主メモリ)は一定サイズの区画に分かれ、下図のように区画ごとに(2進数の)番地が割り振られ、1バイトのデータが格納される。
ア ド レ ス 選 択 回 路 |
⇒ |
番地 | 内容 |
00000000 | 00000000 |
00000001 | 00010010 |
00000010 | 00000110 |
・ ・ ・ | ・ ・ ・ |
|
⇔ |
読 み 書 き 回 路 |
主記憶(装置)は、アドレス選択回路を通して任意の番地に対して読み書きできることから、
RAM(Random Access Memory) と呼ばれる。また、
揮発性といって、主記憶内のデータは電源が切れると失われる。
そのため、プログラムやデータは通常補助記憶装置に貯えられていて、一度主記憶に読み出されて(
load)から実行され、計算終了とともに、計算結果等必要なデータを再び補助記憶装置に保存(
save)する(でないと電源OFFとともにデータが失われる)ことは、第1講でも説明した。
RAMには高速だが高価で多量には使えない
SRAMと、(SRAMと比較して)低速だが安価で多量に使える
DRAMとがある。主記憶には通常DRAMが使われ、SRAMは後で説明するキャッシュメモリに使われる。
第5節 記憶装置の階層
前節では主記憶にはDRAMが使われていると述べたが、より高速(高価)のSRAMについて詳しくは触れなかった。
CPUも中にレジスタと呼ばれる記憶装置を持つ。これらの記憶装置のおおよそのアクセス速度と容量、値段を次の表にまとめた。これらの装置の高機能化・低価格化の速度は著しく、製品ごとの差も大きいので、あくまで目安程度に考えてほしい。
| アクセス速度 | 容量 | 単価 (2016年) |
レジスタ(CPU) | 1GB/s | 数十B |
|
SRAM(キャッシュメモリ) | 2~3百MB/s | 数MB | 1MB/100円 |
DRAM(主記憶) | 数十MB/s | 数GB | 1GB/300円 |
ハードディスク | 十数ms+十MB/s | 数TB | 1TB/3000円 |
フラッシュ(USB)メモリ | 数十MB/s | 数十GB | 16GB/500円 |
|
- アクセス速度が 20MB/s のとき、1B(バイト)当たりのアクセス時間を求めよ。
- アクセス速度 1GB/s の CPU に対し、アクセス速度 20MB/s の DRAM(主記憶)は何倍遅いか。
- ムーアの法則について説明せよ。
|
CPUと主記憶(DRAM)の速度差が意味する事を考えてみよう。
次講で詳しく学ぶが、コンピュータ(CPU)の基本動作サイクルは、
- メモリ(DRAM)から(プログラム)命令を読込み
- 命令に従ってメモリからデータを取り出して処理・計算を行い
- メモリに結果を格納する
ことからなる。ところが、CPUとDRAMの速度には数十倍の開きがあり、DRAMアクセスの間にCPUは数十回の動作が行なえるので、何も工夫をしないとCPUはDRAMからの応答を待ってほとんど遊んでいることになる。このような主記憶(DRAM)とCPUとの速度差を埋めるために、次節で述べる、
より高速なSRAMを使ったキャッシュメモリが導入された。
第6節 キャッシュと仮想記憶
キャッシュメモリ
前節で述べたように、主記憶(DRAM)とCPUとの速度差を埋めるために工夫されたのが、より高速な
SRAMを使った
キャッシュメモリである。
CPUは、主記憶のデータにアクセス(読み書き)したとき、その付近(ブロック)のデータをまとめてキャッシュメモリにコピーしておき、以後、キャッシュメモリに(なければ主記憶に)アクセスする。
CPUは近接データに連続してアクセスすることが多いので高速化が図られる。したがって、キャッシュメモリの容量が大きいほど、CPUがメモリアクセスに待たされることが少なくなり、コンピュータは高速に動作する。さらに、一次キャッシュ、二次キャッシュといった、速度の異なるキャッシュメモリーを何段か重ねて利用することも行われている。
例.キャッシュメモリ(SRAM)のアクセス時間が10ns(ナノ秒)で、主記憶(DRAM)の(キャッシュメモリへのデータコピーも含めた)アクセス時間が100nsであるとする。CPUが求めるデータがキャッシュメモリにある確率(ヒット率)が
0.8であるとき、平均アクセス時間は、10×
0.8+100×(1-
0.8)=8+20=28nsとなるので、キャッシュを使わない時に比べて平均アクセス速度は 100/28≒3.6倍になる。
|
ヒット率が0.9の時の平均アクセス時間を求めよ。また、キャッシュを使わない時に比べて平均アクセス速度は何倍になるか
|
その他のキャッシュ
ハードディスクなどの動作速度が遅い主な原因は、データの場所を探してそこに読み取りヘッドを移動させる時間がかかることにあった。一度ヘッドが移動してしまえば、その付近のデータを連続的に読み書きするのは、それほど時間がかからない。そこで、ディスクと主記憶の速度差を埋めるために主記憶の一部をディスク代わりにする
ディスクキャッシュが行われる。
さらに、インターネットとハードディスクの速度差を埋めるために、
インターネットキャッシュも行われている。ブラウザは一度表示したWebページをハードディスクに保存しておき、再度表示要求があったとき、保存しておいたページを表示することによって高速化を図る。したがって、ニュースなどの頻繁に更新されるページでは、古いページが表示されてしまうことがある。その時は、ブラウザの更新(再読み込み)ボタンをクリックする必要がある。
データの追い出し戦略
キャッシュ先はもとの記憶装置に比べて(高速だが)少容量なので、元の装置にあるデータをすべて格納できるわけではない。キャッシュ先がいっぱいになったとき、新しいデータを置くためには古い(使われそうもない)データを追い出す(主記憶など本来の場所に戻す)必要がある。どのデータから追い出すかは重要で、その判断基準(戦略)として次の2つが知られている。
- FIFO(First In First Out)
- 最初に入れた(First In)、つまり最も古いデータを最初に追い出す(FirstOut)。いわば先着順で、レジや銀行窓口などにおける行列と同じだから考えやすいだろう。
- LRU(Least Recently Used)
- 最後に使用(アクセス)した時間が最も古い(Least Recently Used)データを追い出す。これを実現するためには、アクセスされるたびにそれを行列の最後にまわし、先頭のデータから追い出せばよい。野口悠紀雄著『「超」整理法』では、これを文書の整理法として提唱している。
キャッシュと仮想記憶
キャッシュは、低速(大容量)の記憶装置中のデータを必要に応じて高速(少容量)の記憶装置に移しておくことによって、高速化を図る技術である。いわばキャッシュ元の低速記憶装置があたかもキャッシュ先の高速記憶装置であるかのように見せている。
逆の見方をすれば、(キャッシュ先の)少容量(高速)記憶装置の記憶空間を、(キャッシュ元の)大容量(低速)記憶装置上に広げる技術でもある。このような考え方で、
主記憶に入りきらないような大容量データの計算を、補助記憶装置を活用して可能にする技術を仮想記憶(仮想メモリ)という。