Static Random Access Memory

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
NESクローンに使われていた2K×8ビットSRAM

Static Random Access Memory(スタティックランダムアクセスメモリ)、略称スタティックRAM(スタティックラム)、SRAM(エスラム)は、半導体メモリの一種であり、「スタティック」とあるのはダイナミックRAM (DRAM) とは異なるからで、定期的なリフレッシュ(記憶保持動作)が不要である。フリップフロップ等の順序回路を用いてデータを記憶するRAMで、データ残留現象があるものの[1]電力の供給がなくなると記憶内容が失われる揮発性メモリ(volatile memory)である。

概要[編集]

DRAMと異なり、記憶部にフリップフロップ回路を用いているためリフレッシュ操作が不要であり、記憶保持状態での消費電力をきわめて小さくすることができる。

DRAMと比べて記憶容量あたりの単価が高いため、高速な情報の出し入れが可能な点を生かしたキャッシュメモリでの使用や、低消費電力を生かした携帯型機器での使用など、比較的データ量の少ない用途によく用いられる。低消費電力の例として、SRAMに小さな電池を内蔵あるいは外部に配置することで、主電源が供給されない間も記憶情報を保持する仕組みの不揮発メモリ(NVRAM, コンピュータの時計BIOS設定情報の保持など)が挙げられる(バッテリーバックアップ機能)。

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

SRAMの応用としてプログラマブルロジックデバイスがある。これはSRAMの高速動作を利用したもので、記憶セルの状態によってマトリクス状の配線を接続・切断する事により、ゲートアレイとして機能させる物である。プログラマブルロジックデバイスの一種であるFPGAは、配線だけでなく論理セルの構造もSRAMによるLUT(ルックアップテーブル)で構成されているものもある。

設計[編集]

トランジスタ6個で構成される CMOS SRAM セル

SRAM内の各ビットは4つのトランジスタで構成される2つの交差接続されたインバータに格納される。その記憶セルは2つの安定状態があり、それぞれを 01 に対応させる。さらに読み出しと書き込みアクセスのために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 だった場合、逆のことが起こり、BL1 となり、BLが 0 となる。BLとBLの電位差は小さくても、センスアンプがそれらの線のうちどちらの電位が高いかを判別し、格納されているメモリの値が 1 なのか 0 なのかを決定する。センスアンプの感度が高いほど、読み取り操作の速度が速くなる。

書き込み[編集]

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

バスの動き[編集]

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

用途・用例[編集]

特徴[編集]

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

クロック周波数と消費電力[編集]

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

SRAMには主に次のようなものがある。

  • 汎用製品
    • 「非同期」インタフェース。28ピンの32k×8ビットのチップ(XXC256 などの名称)や類似の製品。最大16Mビットのチップまである。
    • 「同期」インタフェース。キャッシュメモリなどバースト転送を要求される用途で使用される。最大18Mビット(256k×72ビット)のチップまである。
  • チップ上への統合

組み込み用途[編集]

産業システム、科学技術システム、自動車の車載エレクトロニクスなどによく遣われている。最近の電子機器や電子玩具には、ある程度の量(数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 Backed SRAM) もnvSRAMと呼ばれることがあるが、大容量コンデンサと不揮発性メモリセルを内蔵していて、主電源が切れるとコンデンサに蓄えた電力を使って自動的にSRAMから不揮発性メモリにデータを転送して保持する方式のnvSRAMもある。

非同期SRAM[編集]

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

トランジスタの種類による分類[編集]

機能による分類[編集]

  • 非同期 - クロック信号とは独立しており、アドレスの変化によってデータの読み書きを制御する。
  • 同期 - クロック信号の変わり目(エッジ)を全てのタイミングに使用する。アドレス、データ、その他の制御信号も全てクロックに同期している。

特徴による分類[編集]

  • ZBT (zero bus turnaround) - ターンアラウンドとは、SRAMが「書き込み」から「読み取り」に遷移するときなどにかかるクロック数である。ZBT SRAMではこのターンアラウンドまたはレイテンシがゼロとなっている。
  • syncBurst - 同期バースト書き込みアクセスが可能なSRAM。書き込み速度が向上する。
  • DDR SRAM - 同期式、単一読み書きポートで、入出力がDDR(ダブルデータレート)となっているSRAM。
  • QDR SRAM - 同期式、読み取りポートと書き込みポートが独立しており、入出力がQDR(クアドラプルデータレート)となっているSRAM。

脚注・出典[編集]

  1. ^ Sergei Skorobogatov (June 2002). Low temperature data remanence in static RAM. University of Cambridge, Computer Laboratory. http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-536.html 2008年2月27日閲覧。. 
  2. ^ A 160 mV Robust Schmitt Trigger Based Subthreshold SRAM
  3. ^ United States Patent 6975532: Quasi-static random access memory
  4. ^ United States Patent 6975531: 6F2 3-transistor DRAM gain cell
  5. ^ 3T-iRAM(r) Technology

関連項目[編集]