第11回: SRAM

ここまで演算器の話が続きましたが、 ここからは、システムLSIを作るうえで欠かすことができない、 メモリ回路を、順番に見ていくことにしましょう。

メモリLSIの基本構成(p.179)

アドレスで指定される番地にある内容を読んだり書いたりするのが メモリの働きですが、 そのような機能を実現するために、一般にはメモリは 次のような構成をとります。

アドレスを指定するアドレスを(N+M)ビットとすると、 記憶するメモリセルの数は2N+M個になりますが、 一般には、このメモリセルを2N×2M個に 並べます。

このうち、Nビット分のアドレス信号A0〜AN-1は Nビット分の行バッファに入り、行アドレス選択信号(RAS; Row Address Select) によって、行デコーダに入り、それの出力であるワード線によって、 メモリセルの2N行のうちの1行分だけが選択されます。

そしてその選択された行のメモリセルは、読み出しの場合は、 そこに記憶しているデータを(一般にはDと/Dのペアで)縦の線(ビット線)出力し、 また書き込みの場合は、ビット線上のデータを書き込みます。 いずれの場合も、選択された行のメモリセルは、 ビット線に「アクセス」をします。

一方、残りのMビット分のアドレス信号AN〜AN+M-1は Mビット分の行バッファに入り、列アドレス選択信号(CAS; Column Address Select)によって列でコーダに入り、その出力によって、 Mビットのビット線のうちから1ビットだけ、マルチプレクサによって 選択をします。 (マルチプレクサは、2M本のうちから1本だけを選んで 接続する、スイッチのような役割をする回路でした)

このとき、読み出し時であればビット線上のデータを増幅して 出力信号としてデータバスに出力し、 逆に書き込み時であればビット線をとおしてデータバスのデータを データを書き込むことになります。

動作の流れを、順を追って今一度、確認をしておきましょう。

SRAMのメモリセル(p.194)

データを書き込むことができるメモリを、俗にRAMと呼びますが、 そのうち、フリップフロップをベースとした回路構成のものを 一般にSRAM (Static RAM)と呼びます。 これは、電源を切ると内容が消えてしまう(揮発性)けれども、 電源を入れてある限りは、内容をずっと保持する性質があります。 このSRAMのメモリセルの回路を考えてみましょう。 改めてメモリセルのはたらきをまとめてみると、 でした。 このような機能のために、一般には次のような回路構成を とることになります。

このメモリセルの中央の4個のトランジスタが、インバータを 逆向きにつないだ構成になっていて、ここで1ビットの値を記憶します。 というのも、図のN=0, /N=1の状態を、N=1, /N=0の状態の いずれも「安定」ですので、どちらの状態も可能です。 逆に言えば、なんらかの外的要因で、このどちらかの状態に「なれば」、 ずっとその状態を保持してくれることになるわけです。

なおこのSRAMが動作していない(つまり読み出しも書き込みもしていない)状態では、 メモリセルに流れる電流は非常に少なくなります。 というのも、2個のインバータの両方が、nMOSかpMOSのどちらかだけがON、 もう片方がOFFの状態に必ずなりますので、 VDDからGNDへの電流(貫通電流と呼びます)が流れないため、 理想的には電流がまったく流れないため、です。 ただしMOSトランジスタのスケーリングによって微細化が進んできた最近では、 MOSトランジスタがOFFになるべきときに、OFFになりきらずにもれてしまう電流 (リーク電流)が無視できなくなってきているので、SRAMが動作していないときの 電流も、無視できなくなってきつつあります。

またこのSRAMセルでは、nMOSとpMOSの両方が必要であるため、 シリコン上では素子分離領域が必要であり、 ややメモリセルの面積が大きくなってしまいます。 そこで、抵抗の非常に大きい高抵抗ポリシリコンをpMOSの代わりに用いる、 高抵抗負荷型SRAMセル、もよく使われます。 同じ製造プロセスを使っても、例えば次のようにメモリセル面積が違ってきます。
形式 高抵抗負荷型 CMOS型
負荷抵抗 高抵抗ポリSi pMOS
セル面積[μm2] 40.8 58.2
(λ=0.7μmの例、「CMOS集積回路」(榎本著)p.196より抜粋)

読み出し動作

読み出し動作は、次のような手順でおこなわれます。
  1. 行ドライバから、選択された行のワード線WL=1となる
  2. メモリセルの両側のnMOSがONになる
  3. メモリセルの記憶値N, /Nが、そのままD, /Dにつながる
  4. その値が、マルチプレクサ・アンプを通して、外部に読み出される

書き込み動作

書き込み動作は、読み出し動作と同様に、次のような手順で行われます。
  1. 行ドライバから、選択された行のワード線WL=1となる
  2. メモリセルの両側のnMOSがONになる
  3. 書き込むべき値が、D, /Dに与えられているので、その値がN, /Nに書き込まれる
例えば最初N=0で、D=1を書き込もうとすると、右側のインバータの入力が1となるため、 出力の/N=0となり、それにあわせてN=0となって安定をし、書き込みが完了します。

行デコーダ・列デコーダ

メモリセルを選択する行デコーダ・列デコーダは、 N入力2N出力のデコーダそのものですから、 真理値表から組み合わせ論理回路として作ることができます。 例えば2ビットデコーダ(2入力4出力)であれば、次のような真理値表になるでしょう。
A1A0Q0Q1Q2Q3
001000
010100
100010
110001
ただしメモリ回路の行デコーダ・列デコーダは、一般に入力ビット数が多く、 それにあわせて出力の数も非常に多くなります。 また出力が、メモリセルの配置にあわせて等間隔に並ぶ必要がある、という 制約もつきます。

そこで、一般には次のような規則的な構成をとることになります。 (この例は4ビットの場合の最初の2つ分)

※(訂正)この回路図が一部間違っています。 各NORゲートに入っているA0, A1などを、すべてそれらの否定(/A0, /A1など)に 訂正してください。


この回のソボクな疑問集
戻る