Static Random Access Memory
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/01/30 15:13 UTC 版)
この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。2021年12月) ( |
読み書き可能という意味で慣用的に名前にRAM(ランダムアクセスメモリ、Random Access Memory)が入っているが、厳密には本来の意味とは異なるため、当該項目を参照されたい。これはDRAMも同様である。
概要
SRAMは内部構造的に記憶部にフリップフロップ回路を用いているため、ダイナミックRAM(DRAM)と比較して、下記の特徴がある。
- 定期的なリフレッシュ(回復動作)が不要
- 内部構造が複雑であるため、高密度に実装できず、大容量メモリには向かないため、記憶容量あたりの単価が高い
- 高速な情報の出し入れが可能
- アイドル状態では低消費電力
- 制御が容易(インタフェースが単純)で、より真の「ランダムアクセス性」があると言える
- 「データ残留現象」といった性質[1]が無いわけでもないが、基本的に電力の供給がなくなると記憶内容が失われる揮発性メモリ(volatile memory)である
なお、現在では従来のDRAMの記憶セルを用いながら、消費電力を低減してSRAMと同じインターフェースを持つ疑似SRAMもある。
設計
SRAM内の各ビットは4つのトランジスタで構成される2つの交差接続されたインバータに格納される。その記憶セルは2つの安定状態があり、それぞれを 0 と 1 に対応させる。さらに読み出しと書き込みアクセスのために2つのトランジスタを必要とする。したがって、典型的なSRAMでは1ビットを格納するのに6個のMOSFET(6T)を使用する。
他にも8Tや10Tで記憶セルを構成するものもあるが[2][3]、これは読み書きポートを複数実装する(マルチポート型SRAM回路)ために使われる。これは、ある種のビデオメモリやレジスタファイルなどに使われる。
一般的に、セル当たりのトランジスタ数が少ないほど個々のセルを小さくできる。シリコンウェハーの製造コストは比較的一定であるため、セルが小さくなれば単位面積により多くのビットを格納でき、メモリのビット当たりのコストも低減される。
6Tよりも少ないトランジスタ数で記憶セルを構成することも可能だが、そのような3T[4][5]や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の大きさは、2m ワード または 2m × 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など)。
注釈
- ^ そのような動作モードを設計としてハードウェア的に持っている製品もある。
出典
- ^ Sergei Skorobogatov (June 2002). Low temperature data remanence in static RAM. University of Cambridge, Computer Laboratory 2008年2月27日閲覧。.
- ^ A 160 mV Robust Schmitt Trigger Based Subthreshold SRAM
- ^ United States Patent 6975532: Quasi-static random access memory
- ^ United States Patent 6975531: 6F2 3-transistor DRAM gain cell
- ^ 3T-iRAM(r) Technology
- 1 Static Random Access Memoryとは
- 2 Static Random Access Memoryの概要
- 3 用途・用例
- 4 種類
- 5 脚注
- Static Random Access Memoryのページへのリンク