Static Random Access Memory

**Static Random Access Memory**、略して**SRAM**（エスラム）は、Random Access Memory（RAM）の一種であり、記憶の保持に電源が必要だが、定期的なリフレッシュは不要なものであり、現代のものは通常はフリップフロップ回路で構成されている。**Static RAM**（スタティックラム）とも。

Dynamic Random Access Memory（DRAM）の「ダイナミック（動的）」に対して、「スタティック(静的)な」回路方式により情報を記憶するメモリという意味で命名された。

主にCPUのレジスタやキャッシュメモリに使用されている。

## 概説
SRAMは内部構造的に記憶部にフリップフロップ回路を用いているため、ダイナミックRAM（DRAM）と比較して、下記の特徴がある。

* DRAMより高速な情報の読み書きが可能
* 定期的なリフレッシュ（回復動作）が不要
* アイドル状態では低消費電力
* 制御が容易（インタフェースが単純）で、より真の「ランダムアクセス性」があると言える
* 内部構造が複雑であるため高密度に実装できない（面積あたりの記憶容量は低い）。記憶容量あたりの単価が高い。大容量メモリには向かない（主記憶には採用しづらい）。
* 「データ残留現象」といった性質が無いわけでもないが、基本的に電力の供給がなくなると記憶内容が失われる揮発性メモリ（volatile memory）である

## 設計

SRAM内の各ビットは4つのトランジスタで構成される2つのたすきがけされたインバータに格納される。その記憶セルは2つの安定状態があり、それぞれを **0** と **1** に対応させる。さらに読み出しと書き込みアクセスのために2つのトランジスタを必要とする。したがって、典型的なSRAMでは1ビットを格納するのに6個のMOSFET（6T）を使用する。

他にも8Tや10Tで記憶セルを構成するものもあるが、これは読み書きポートを複数実装する（マルチポート型SRAM回路）ために使われる。これは、ある種のビデオメモリやレジスタファイルなどに使われる。

一般的に、セル当たりのトランジスタ数が少ないほど個々のセルを小さくできる。シリコンウェハーの製造コストは比較的一定であるため、セルが小さくなれば単位面積により多くのビットを格納でき、メモリのビット当たりのコストも低減される。

6Tよりも少ないトランジスタ数で記憶セルを構成することも可能だが、そのような3Tや1Tのセルは実際にはDRAMであり、SRAMではない。例えば1T-SRAMと呼ばれるものがある。

セルへのアクセスは、ワード線（図ではWL）でイネーブルとなり、それによって2つのアクセス用トランジスタ M5 と M6 を制御し、次いでセル本体をビット線（図ではBLとBL）に接続すべきか否かを制御する。ビット線は読み取り操作と書き込み操作でのデータ転送に使われる。厳密にはビット線を2本持つ必要はないが、その信号と反転信号を同時に提供することでノイズマージンを改善している。

読み取りアクセスでは、SRAMのセルが能動的にビット線を High または Low に駆動する。それに対して、DRAMでは、ビット線がコンデンサと繋がっており、電荷共有（charge sharing）によって、ビット線がHighまたはLowとなるまでに少し時間がかかる。そのため、SRAMの方が帯域幅が大きくなる。SRAMのセルは対称形となっているため、差動信号処理が可能であり、小さな電圧の変化を容易に検出できる。また、DRAMと比べて、SRAMが高速動作できる他の要因として、商用のSRAMチップがアドレスを表す全ビットを同時に受け付けるという点も挙げられる。DRAMは、ピン数を減らして小型大容量化するためにアドレスビットが多重化されており、一度に全アドレスビットを受け付けられない。

アドレス線が *m* 本でデータ線が *n* 本のSRAMの大きさは、2*m* ワード または 2*m* × *n* ビットである。

## SRAM の動き
SRAMセルは3種類の異なる状態をとりうる。回路が何もしていない「スタンバイ」モード、データの読み取り要求に対応する「読み取り」モード、内容の更新をする際の「書き込み」モードである。読み取りモードと書き込みモードのSRAMはそれぞれ「読み取り可能性 (readability)」と「書き込み安定性 (write stability)」がなけれはならない。ここではそれら3つの状態を解説する。

### スタンバイ
ワード線がアサートされていないとき、アクセス用トランジスタ M5 と M6 がセル本体とビット線を切り離した状態となっている。交差接続された2つのインバータ（M1 から M4 で構成）はその間、状態を保持し続ける。

### 読み取り
図のQに格納されているセルの内容が **1** だとする。読み取りサイクルでは両方のビット線が **1** に事前充電され、次いでワード線 WL をアサートすることで両方のアクセス用トランジスタをイネーブル状態とする。次にQとQに保持されている値がビット線に転送される。Qが **1** なので、BLは事前充電された値のままとなり、BLはM1とM5を通して **0** に放電される。BLの側ではトランジスタM4とM6がビット線をVDDすなわち **1** にする。メモリ内容が **0** だった場合、逆のことが起こり、BLが **1** となり、BLが **0** となる。BLとBLの電位差は小さくても、センスアンプがそれらの線のうちどちらの電位が高いかを判別し、格納されているメモリの値が **1** なのか **0** なのかを決定する。センスアンプの感度が高いほど、読み取り操作の速度が速くなる。

### 書き込み
書き込みサイクルは、まず書き込むべき値をビット線に印加することで始まる。**0** を書き込みたい場合、ビット線には **0** を入力する。つまり、BLを **1**、BLを **0** とする。これはRS型フリップフロップにリセットパルスを与えるのと同じであり、それによってフリップは状態を変化させる。ビット線に与える入力を逆転させると **1** が書き込まれる。次にWLをアサートすると、格納すべき値がラッチされる。これがうまく機能するには、ビット線の入力ドライバが相対的に弱いセル内のトランジスタよりも強く、交差接続されたインバータの状態を上書きできるよう設計する必要がある。SRAMセル内のトランジスタの大きさは慎重に決定する必要があり、それによって正しい動作を保証する。

### バスの動き
アクセス時間が70nsとされるメモリは、アドレス線群に正しいアドレス信号が送られてから70ナノ秒以内に対応するデータが出力される。しかし、データはある時間（5nsから10ns）だけ保持され続ける。また信号の0と1の間での遷移に要する時間も考慮する必要があり、約5nsと見積もられる。アドレスの下位ビットを順次変えながらある範囲のメモリを読み取る場合、アクセス時間はもっと短くなる（30nsなど）。

## 種類
### トランジスタの種類による分類
* バイポーラトランジスタ - TTLやECLで使用。非常に高速だが消費電力が大きい。
* MOSFET - CMOSで使用。低消費電力であり、今日の主流である。

### クロックとの同期、非同期による分類
* 同期SRAM - クロック信号の変わり目（エッジ）を全てのタイミングに使用する。アドレス、データ、その他の制御信号も全てクロックに同期して扱う。
* 非同期SRAM - クロック信号を持たず、アドレスの変化に随時従ってデータは読み出される。書き込みは書き込みパルスという専用の信号があり（WR（WRite）ないしWE（Write Enable）というシンボルがよく使われる）、それに従って行われる。4Kbから64Mbのものがある。アクセス速度が高速であるため、キャッシュを持たない組み込みプロセッサの主記憶装置としてよく使われており、パワーエレクトロニクスなどの制御装置（自動車の車載エレクトロニクスなど）、計測システム（ICテスタ）、ハードディスクドライブ、ネットワーク機器（スイッチ、ルーター、IP電話、DSLAM）など様々な機器に使われている。

### 特徴による分類
* ZBT (zero bus turnaround) - ターンアラウンドとは、SRAMが「書き込み」から「読み取り」に遷移するときなどにかかるクロック数である。ZBT SRAMではこのターンアラウンドまたはレイテンシがゼロとなっている。
* syncBurst - 同期バースト書き込みアクセスが可能なSRAM。書き込み速度が向上する。
* DDR SRAM - 同期式、単一読み書きポートで、入出力がDDR（ダブルデータレート）となっているSRAM。
* QDR SRAM - 同期式、読み取りポートと書き込みポートが独立しており、入出力がQDR（クアドラプルデータレート）となっているSRAM。
* nvSRAM - nvSRAMはSRAMを内蔵しているが、主電源が切れた状態でも重要なデータを保持することができる不揮発性メモリである。nvSRAMの用途は幅広く、ネットワーク、航空宇宙、医療などで利用されている。電池を内蔵する方式のBBSRAM (Battery Backup SRAM) もnvSRAMと呼ばれることがあるが、大容量コンデンサと不揮発性メモリセルを内蔵していて、主電源が切れるとコンデンサに蓄えた電力を使って自動的にSRAMから不揮発性メモリにデータを転送して保持する方式のnvSRAMもある。

;他
なお、現在では従来のDRAMの記憶セルを用いながら、消費電力を低減してSRAMと同じインターフェースを持つ疑似SRAMもある。

## 用途
### CPUのレジスタ、キャッシュメモリ
DRAMより圧倒的に高速であるので、CPUの処理速度に大きな影響を及ぼす重要なレジスタ、キャッシュメモリに用いられる。

スマートフォンのCPUのレジスタ、L1,L2キャッシュなどにも使われている。

パーソナルコンピュータ、ワークステーション　等のCPU内蔵のレジスタ、キャッシュメモリ、外付けのバーストモードのSRAMキャッシュなどにつかわれている。

### 補助記憶装置のバッファ
ハードディスクドライブのバッファにも使われる。CD-ROMドライブやCD-RWドライブでも256KB程度のバッファをSRAMで構成しており、ブロック単位でデータをバッファリングするのに使っている。

### 周辺機器のバッファ
周辺機器にも使われている。ルーターのバッファ。液晶ディスプレイやプリンターも表示（印刷）する画像を保持するのにSRAMを使っていることが多い。

### 組み込み用途
高速性や省電力を求められる組み込みシステムで多用される。

マイクロコントローラの内部メモリ、キャッシュなどに多用される。

デジタルカメラや、シンセサイザーなどの複雑な製品には数MBのSRAMが搭載されている。最近の電子機器や電子玩具には、ある程度の量（数KBかそれ以下）のSRAMがほとんど必ず搭載されている。

産業システム、自動車の車載エレクトロニクス、科学技術システムでも多用される。

宇宙開発、地球外探査などでも多用される。NASAによる資料でも、小型宇宙機のアビオニクス（航法・制御系）においてSRAMが容量サイズの選択肢があり（up to 4M x 39 [20 MB]）、コスト的にも使いやすいと指摘されている。

### 電子工作
インタフェースが単純ということで趣味でデジタル回路を作る際にはSRAMが好まれることが多い。DRAMに比べてリフレッシュサイクルがなく、アドレスバスとデータバスを多重化せずに直接アクセスでき、回路設計が単純である。バスや電源供給以外にSRAMが必要とする制御は  Chip Enable (CE)、Write Enable (WE)、Output Enable (OE) の3種類だけである。同期SRAMでは Clock (CLK) も必要となる。

## 消費電力
SRAMの電力消費は、どの程度頻繁にアクセスされるかに依存する。頻繁にアクセスされる用途ではDRAMと同程度に電力を消費し、一部のICは最大帯域幅で使用すると何ワットも消費する。一方でアクセス頻度が小さい場合、例えばやや低いクロック周波数で駆動したマイクロプロセッサで利用する場合などは極めて消費電力が低くなり、アクセスがないアイドル状態における、情報の保持はほとんど無視できる程度の電力消費（数マイクロワット）となる。

電池交換中程度の短時間の電源喪失であれば比較的大容量のキャパシタで保持できるため、電池を2系統用意して必ずどちらかを入れた状態で交換するのではなく、手早く電池交換することで内容が消えない（あまり重要な内容でない場合など）という機器などもある。

また、保存性のよい小さな電池を内蔵あるいは外部に配置することで不揮発メモリ（NVRAM, コンピュータの時計やBIOS設定情報の保持など）のようにも利用できる（バッテリーバックアップ機能）。フラッシュメモリが一般化する以前には、ゲーム機などのカートリッジ内のセーブデータ用に多用された。

SRAMには主に次のようなものがある。
* 汎用製品
** 「非同期」インタフェース。28ピンの32k×8ビットのチップ（XXC256 などの名称）や類似の製品。最大16Mビットのチップまである。
** 「同期」インタフェース。キャッシュメモリなどバースト転送を要求される用途で使用される。最大18Mビット（256k×72ビット）のチップまである。
* チップ上への統合
** RAMまたはキャッシュとしてマイクロコントローラに搭載（通常、32バイトから128KBの容量）
** 一次キャッシュとしてx86ファミリーや他の高性能マイクロプロセッサに搭載（8KBから数MB）
** マイクロプロセッサなどのレジスタの実装に使われている。レジスタファイルを参照。
** 特殊なICやASICに搭載（一般に数KBのオーダー）
** FPGAやCPLDなどのプログラマブルロジックデバイス
プログラマブルロジックデバイスへの応用は、SRAMの高速動作を利用したものであり、記憶セルの状態によってマトリクス状の配線を接続・切断することにより、ゲートアレイとして機能させる。プログラマブルロジックデバイスの一種であるFPGAは、配線だけでなく論理セルの構造もSRAMによるLUT（ルックアップテーブル）で構成されているものもある。

## ギャラリー
SRAMは主にCPU内のレジスタやキャッシュメモリに使われているため、通常は写真で示すことはできない。下に、例外的な、単体のSRAMを掲載する。



## 脚注

### 注釈

### 出典

## 関連項目
* ダイナミックランダムアクセスメモリ（DRAM)
* SRAMカード
* バッテリーバックアップ
*