Static Random Access Memory

Static RAM・SRAM（スタティックラム・エスラム）は、半導体メモリの一種である。ダイナミックRAM (DRAM) とは異なり、定期的なリフレッシュ（回復動作）が不要であり、内部構造的にフリップフロップ等の順序回路という「スタティック(静的)な回路方式により情報を記憶するもの」であることからその名がある。「データ残留現象」といった性質が無いわけでもないが、基本的に電力の供給がなくなると記憶内容が失われる揮発性メモリ（volatile memory）である。但し原理上、アクセス動作が無ければ極く僅かな電力のみで記憶を保持できるため、比較的大容量のキャパシタを電池交換中のバックアップとしたり、保存性のよい電池を組み合わせて不揮発性メモリのように利用したりといった利用法もある（特に後者はフラッシュメモリ一般化以前に、ゲーム機などのカートリッジ内のセーブデータ用に多用された）。
ランダムアクセスメモリ（Random Access Memory）ではあるが、ランダムアクセスだからそう呼ばれているのではないので本来の語義からはほぼ完全に誤用として、読み書き可能という意味で慣用的にRAMと呼ばれているものである、という点についてはDRAMと同様である。

概要

ダイナミックRAM（DRAM）と異なり、記憶部にフリップフロップ回路を用いているため、リフレッシュ操作が不要であり、記憶保持状態での消費電力は極めて小さい。
DRAMと比べて記憶容量あたりの単価が高いため、高速な情報の出し入れが可能な点を生かしたキャッシュメモリでの使用や、低消費電力を生かした携帯型機器での使用など、比較的データ量の少ない用途によく用いられる。また、低消費電力の例として、SRAMに小さな電池を内蔵あるいは外部に配置することで、主電源が供給されない間も記憶情報を保持する仕組みの不揮発メモリ（NVRAM, コンピュータの時計やBIOS設定情報の保持など）が挙げられる（バッテリーバックアップ機能）。
なお、現在では従来のDRAMの記憶セルを用いながら、消費電力を低減してSRAMと同じインターフェースを持つ疑似SRAMもある。
また、SRAMの応用として、プログラマブルロジックデバイスがある。これは、SRAMの高速動作を利用したものであり、記憶セルの状態によってマトリクス状の配線を接続・切断することにより、ゲートアレイとして機能させる。プログラマブルロジックデバイスの一種であるFPGAは、配線だけでなく論理セルの構造もSRAMによるLUT（ルックアップテーブル）で構成されているものもある。

設計

SRAM内の各ビットは4つのトランジスタで構成される2つの交差接続されたインバータに格納される。その記憶セルは2つの安定状態があり、それぞれを 0 と 1 に対応させる。さらに読み出しと書き込みアクセスのために2つのトランジスタを必要とする。したがって、典型的なSRAMでは1ビットを格納するのに6個のMOSFET（6T）を使用する。他にも8Tや10Tで記憶セルを構成するものもあるが、これは読み書きポートを複数実装するのに使われ、ある種のビデオメモリやレジスタファイルなどがマルチポート型SRAM回路を使っている。
一般的に、セル当たりのトランジスタ数が少ないほど個々のセルを小さくできる。シリコンウェハーの製造コストは比較的一定であるため、セルが小さくなれば単位面積により多くのビットを格納でき、メモリのビット当たりのコストも低減される。
6Tよりも少ないトランジスタ数で記憶セルを構成することも可能だが、そのような3Tや1Tのセルは実際にはDRAMであり、SRAMではない。例えば1T-SRAMと呼ばれるものがある。
セルへのアクセスは、ワード線（図ではWL）でイネーブルとなり、それによって2つのアクセス用トランジスタ M₅ と M₆ を制御し、次いでセル本体をビット線（図ではBLとBL）に接続すべきか否かを制御する。ビット線は読み取り操作と書き込み操作でのデータ転送に使われる。厳密にはビット線を2本持つ必要はないが、その信号と反転信号を同時に提供することでノイズマージンを改善している。
読み取りアクセスでは、SRAMのセルが能動的にビット線を High または Low に駆動する。それに対して、DRAMでは、ビット線がコンデンサと繋がっており、電荷共有（charge sharing）によって、ビット線がHighまたはLowとなるまでに少し時間がかかる。そのため、SRAMの方が帯域幅が大きくなる。SRAMのセルは対称形となっているため、差動信号処理が可能であり、小さな電圧の変化を容易に検出できる。また、DRAMと比べて、SRAMが高速動作できる他の要因として、商用のSRAMチップがアドレスを表す全ビットを同時に受け付けるという点も挙げられる。DRAMは、ピン数を減らして小型大容量化するためにアドレスビットが多重化されており、一度に全アドレスビットを受け付けられない。
アドレス線が m 本でデータ線が n 本のSRAMの大きさは、2ᵐ ワード または 2ᵐ × n ビットである。

SRAM の動き

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

スタンバイ

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

読み取り

図のQに格納されているセルの内容が 1 だとする。読み取りサイクルでは両方のビット線が 1 に事前充電され、次いでワード線 WL をアサートすることで両方のアクセス用トランジスタをイネーブル状態とする。次にQとQに保持されている値がビット線に転送される。Qが 1 なので、BLは事前充電された値のままとなり、BLはM₁とM₅を通して 0 に放電される。BLの側ではトランジスタM₄とM₆がビット線を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など）。

特徴

SRAMは一般にDRAMに比べて高価だが、高速で消費電力が極めて低い（特にアイドル状態の場合）。そのため、高速性または低消費電力あるいは両方が要求される用途で使われることが多い。また、制御が容易（インタフェースが単純）で、最近のDRAMに比べるとより真の「ランダムアクセス性」があると言える。内部構造が複雑であるため、DRAMほど高密度に実装できず、大容量メモリには向かない。そのためパーソナルコンピュータの主記憶装置のような低コストが要求される用途には使われていない。

組み込み用途

産業システム、科学技術システム、自動車の車載エレクトロニクスなどによく遣われている。最近の電子機器や電子玩具には、ある程度の量（数KBかそれ以下）のSRAMがほとんど必ず搭載されている。デジタルカメラや携帯電話、シンセサイザーなどの複雑な製品には数MBのSRAMが搭載されている。
デュアルポート型のSRAMは、リアルタイム方式のデジタル信号処理回路に使われることもある。

コンピュータにおける用途

SRAMは、パーソナルコンピュータ、ワークステーション、ルーター、その他周辺機器にも使われている。CPU内蔵のキャッシュメモリ、外付けのバーストモードのSRAMキャッシュ、ハードディスクドライブのバッファ、ルーターのバッファなどである。液晶ディスプレイやプリンターも表示（印刷）する画像を保持するのにSRAMを使っていることが多い。CD-ROMドライブやCD-RWドライブでも256KB程度のバッファをSRAMで構成しており、ブロック単位でデータをバッファリングするのに使っている。同様にケーブルモデムなどの機器もSRAMをバッファとして使っている。

趣味

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

nvSRAM

nvSRAMはSRAMを内蔵しているが、主電源が切れた状態でも重要なデータを保持することができる不揮発性メモリである。nvSRAMの用途は幅広く、ネットワーク、航空宇宙、医療などで利用されている。電池を内蔵する方式のBBSRAM (Battery Backup SRAM) もnvSRAMと呼ばれることがあるが、大容量コンデンサと不揮発性メモリセルを内蔵していて、主電源が切れるとコンデンサに蓄えた電力を使って自動的にSRAMから不揮発性メモリにデータを転送して保持する方式のnvSRAMもある。

非同期SRAM

非同期SRAMは4Kbから32Mbのものがある。アクセス速度が高速であるため、キャッシュを持たない組み込みプロセッサの主記憶装置としてよく使われており、パワーエレクトロニクスなどの制御装置（自動車の車載エレクトロニクスなど）、計測システム（ICテスタ）、ハードディスクドライブ、ネットワーク機器（スイッチ、ルーター、IP電話、DSLAM）など様々な機器に使われている。