うろ覚えだった知識をまとめてみたよ【ハードウェア編②】
学習エントリ。 全体的な知識の底上げをすべく、復習も兼ねてまとめてみる。
メモリ
主記憶装置。データを保存する部品。ROMとRAMにわかれる
ROM(Read Only Memory)
- 原則として読み出し専用
- コンピュータの基本設定やBIOSの記録に用いられる
- 電源を切っても内容は消えない(不揮発性)
- USBメモリやSDメモリに使われる
- アクセス速度(読み出しや書き込みの速度)はRAMより遅い
RAM(Random Access Memory)
- 読み出し、書込み可能なメモリ
- プログラム実行や作業領域として用いられる(コンピュータの主記憶)
- 電源を切ると内容が消える(揮発性)
- DRAM : コンデンサを集積して作っている。主記憶に用いられる。低速・大容量。内容の保持のため、適度にリフレッシュが必要。
- SRAM:フリップフロップというトランジスタ回路で作っている。高速・小容量。主にキャッシュメモリに使われる。
※コンデンサ:電気を蓄えることが出来る粒子
誤り制御
メモリに記録したデータは、外界からの電気ノイズなどが原因で内容が変化してしまうことがある。その修正技術が2つ。 * パリティ:1ビットの誤りを発見する技術。発見だけ?みたい * ハミング符号:1ビットの誤りを検出して、正しい値に訂正できる。2ビットの誤りを検出できる。
メモリの高速アクセス
CPUはメモリの10倍以上早く動く。この差を埋めるために「CPUがメモリになるべく速くアクセスできるような仕組み」が必要。その仕組がキャッシュメモリとメモリインタリーブ。
キャッシュメモリ
SRAMを用いた高速メモリのこと。CPU「内部」に取り付けてある。大きな容量を保存できない。頻繁にアクセスする部分のコピーをキャッシュメモリに置いておく。キャッシュメモリを用いる場合CPUの手順は以下
- キャッシュメモリに必要とするデータが存在するのかをチェックする
- 存在すればキャッシュメモリから取得する
- 存在しなければ主記憶装置から入手。入手したデータのコピーをキャッシュメモリに置く。その際キャッシュメモリが一杯の場合、最も不要と思われるものを捨てた上で保存する。
必要なデータがキャッシュメモリに存在している確率をヒット率という。 データを書き込む際にキャッシュと主記憶どっちに書き込むかによって、2つの方式がある。 * ライトスルー方式:キャッシュメモリと主記憶の両方に書き込む。けどそれだとキャッシュメモリの効果ない * ライトバック方式:とりあえずキャッシュメモリだけに書き込んでおく。それが追い出される時に主記憶に反映させる
メモリインタリーブ
当たり前だが、キャッシュを導入しても主記憶そのもののアクセス時間は短縮されない。それを短くする仕組み。具体的には主記憶は区間に分けて各区間に交互にアクセスすることでアクセス時間を短縮している。