FE EXAM

SRAM(高速だが高価な揮発性メモリ)

フリップフロップで構成される高速だが高価な揮発性メモリ

DIAGRAM
トランジスタ
メリット
デメリット

① フリップフロップで 1 ビットを保持(SRAM セル)

SRAM セル(1 ビット分)NOTNOT1ゲートゲート2つのNOT回路が互いの出力を入力し合い、値を保持し続ける複数のトランジスタで1ビット電源がある限りそのまま保持(書き直し不要)DRAM のコンデンサと違い、電荷が抜けないので「リフレッシュ(書き直し)」が要りません。

② 特性とキャッシュ用途

メリット・高速(CPU に近い速さ)・リフレッシュ不要・消費電力が安定デメリット・高価(部品数が多い)・集積度が低い(低容量)・大容量に向かない用途:キャッシュメモリCPU とメインメモリの間でよく使うデータを一時保管速さが命だから SRAM を採用速さの順番(速い → 遅い)SRAM(キャッシュ)>DRAM(主記憶)>SSD / HDD
解説

📌
SRAMとは

S = Static(静的)= 放っておいても保持SRAM高速・高価・低容量用途:キャッシュメモリ

SRAM(エスラム、Static RAM = 静的RAM)とは、フリップフロップという回路で 1 ビットを記憶する、高速だが高価な揮発性メモリのことです。揮発性なので電源を切ると内容は消えますが、電源がある限りは何もしなくても記憶を保ち続けます。

「Static(静的)」という名前は、記憶を保つために特別な手入れが要らない(書き直し不要)ことを表します。後で出てくる DRAM が定期的なリフレッシュ(書き直し)を必要とするのと対照的です。

身近な例で考えると、シーソーに似ています。片方が上がれば反対が下がる、という安定した状態を 2 つ持ち、外から押さない限りそのまま釣り合い続けます。SRAM はこの「安定した 2 状態」を電気回路で作り、0 か 1 を保持しているのです。

📌
フリップフロップの仕組み

2つのNOTが向き合って値を保持保持中: 1

フリップフロップとは、1 ビット(0 か 1)を記憶し続けられる基本的なデジタル回路のことです。トランジスタ(=電気のスイッチ)を複数組み合わせて作られ、SRAM の 1 セルはおおむね 6 個のトランジスタで構成されます。

仕組みの要は、2 つの NOT 回路(入力を反転させる回路)が互いの出力を相手の入力につないでループになっている点です。片方が「1」を出すと、それを反転した「0」が相手に渡り、その「0」を反転した「1」が最初に戻ってきます。こうして値が自分自身を支え合い、安定して保持されます。

この自己保持のおかげで、SRAM は次の特徴を持ちます。
高速:電荷をためる動作が不要で、すぐ読み書きできる
リフレッシュ不要:回路が値を維持し続ける
高価・低容量:1 ビットに多くの部品が要るため面積を食う

📌
用途(キャッシュ)

CPUキャッシュSRAM主記憶DRAM速い CPU と遅い主記憶の橋渡し

SRAM の最大の活躍の場がキャッシュメモリです。キャッシュとは、CPU が高速なのに主記憶(DRAM)が相対的に遅いという速度差を埋めるため、よく使うデータを CPU のすぐ近くに置いておく一時保管場所のことです。

身近な例で考えると、料理人の手元に置く小皿の調味料のようなものです。倉庫(主記憶)まで取りに行くと時間がかかるので、よく使う塩や砂糖は手の届く範囲(キャッシュ)に少しだけ置いておく。少量でも速さが効くこの役割には、高価でも高速な SRAM がぴったりです。

キャッシュは CPU との距離に応じて階層化されているのが一般的です。
1 次キャッシュ(L1):CPU 内部にあり最速・最小
2 次キャッシュ(L2):L1 より大きく少し遅い
3 次キャッシュ(L3):複数コアで共有する大きめのキャッシュ
いずれも「速さ重視で少量」という条件のため、SRAM が採用されています。

📌
SRAMとDRAMの違い

RAM には SRAM(エスラム)と DRAM(ディーラム、Dynamic RAM = 動的RAM)の 2 種類があります。なぜ 2 種類あるのかというと、「速さ」と「大容量・低価格」を同時に満たすメモリは作れないからです。目的に合わせて使い分けています。

項目SRAMDRAM
記憶素子フリップフロップ(トランジスタ複数)コンデンサ(電気をためる小さなバケツ)
速度高速(CPU に近い速さ)低速(SRAMより数倍〜10倍遅い)
価格高価(部品数が多い)安価(構造がシンプル)
容量低い(面積を食う)高い(集積しやすい)
リフレッシュ不要(回路が自己保持)必要(電荷が抜けるため定期書き直し)
主な用途キャッシュメモリ主記憶(メインメモリ)

DRAM がリフレッシュを必要とする理由を補足します。DRAM はコンデンサに電荷(電気の量)をためて「1」を表しますが、コンデンサはじっとしていると少しずつ電荷が漏れてしまいます。そのため何もしないと「1」が「0」に化けてしまうので、定期的に「電荷を補充して書き直す(リフレッシュ)」作業が必要です。この作業がある分、DRAM は SRAM より低速になります。

身近な例で考えると、SRAM はシーソー(安定した 2 状態)DRAM は穴の開いたバケツ(放置すると水が減る)のイメージです。穴あきバケツは安く大量に作れますが、常に水を補給し続ける手間がかかります。

📌
なぜキャッシュにSRAMを使うか

CPU最速キャッシュSRAM小・高速主記憶DRAM大・中速補助記憶SSD / HDD大容量・低速速い ← SRAM は CPU に最も近い位置 → 遅い

なぜキャッシュメモリに SRAM を使うのか。それは、キャッシュの仕事が「CPU の処理速度に追いつくこと」だからです。CPU はナノ秒(=10億分の1秒)単位で動いています。DRAM はリフレッシュがある分遅く、この速度についていけません。リフレッシュ不要で高速に応答できる SRAM だけが CPU に追いつける速さを持っています。

ただし SRAM は高価で容量が小さいため、全ての主記憶を SRAM にすることはコスト的に不可能です。そこで「よく使うデータだけを少量の SRAM(キャッシュ)に置いて CPU に素早く渡し、残りは大容量の DRAM(主記憶)に置く」という組み合わせが生まれました。

上の図のように、コンピュータの記憶装置は「速さ」と「容量」のトレードオフで階層になっています
キャッシュ(SRAM):CPU のすぐそば。少量だが最高速
主記憶(DRAM):プログラム実行中のデータを乗せる
補助記憶(SSD/HDD):大容量だが低速。電源を切っても残る
SRAM はこの階層の中で、CPU の処理速度と主記憶の速度の差を埋める「緩衝役」を担っています。

関連コンテンツ