【集積回路勉強会】SRAMのMUXについて

諸事情でSRAM (Static Random Access Memory) について調べたことなどをまとめる会の一環です.特に記述がない場合,通常の6T-SRAMについて言及しています.
文字が多いね!

MUXとは

MUXはマルチプレクサ (MUltipleXer) の略称である.SRAMアレイにおいては主として列選択マルチプレクサのことを指す.

MUXの目的

MUXは,SRAMアレイの物理的な形状を制御するために使用される.SRAMアレイの行数Xと列数Yは,アレイの容量と一度に読み出し・書き込みされるビット数(ワード数)により決定される.説明のため,以下では容量2048-bit,ワード数8-bitの場合について行列数を考える.

SRAMの構成図

この場合,最もシンプルな構成は,ワード数分だけ列を設けたものである.今回のワード数は8-bitなので Y=8,X=2048/8=256 の超細長い長方形となる.この構成はSchematicレベルでは一見問題なく動作するが,レイアウトしてみると非常に厄介な問題が発生する.というのも,周辺回路(特にセンスアンプ)が収まらないのである.センスアンプはワード数に比例した数 (今回は8個) 配置されるのだが,センスアンプはSRAMセルと比べ回路が複雑=面積が大きいのに加えて,ばらつきを抑えるために非常に大きなサイズで設計される.よって,これをSRAMセルひとつ分の幅に抑えるのはかなり難しい,というかほぼ不可能である.じゃあセンスアンプ縦積みすればええやん,と思われるかもしれないが,周辺回路はセンスアンプ以外にもそれなりにあるため,たとえトランジスタが置けても配線ができなくなる可能性が高い,というか無理.
また,デメリットは他にもあり,縦長レイアウトによる弊害としてBL容量の増大による読み出し速度の低下や,行デコーダの面積・消費エネルギ増加,そもそも長方形のメモリアレイなんて使いにくすぎるなど様々な問題が発生する.
このように,脳死でSRAMアレイを並べようとすると,当然ながら様々な問題が発生するのである.

そこで,これら問題を解決するのが,Column Multiplexingと呼ばれるMUXを使った手法である.この手法を使うと,センスアンプや書き込みドライバなどの周辺回路を,MUXを使い複数列で共有することで,大きな周辺回路を効率的に配置できるようになる.
例えば,先程の例において4列Multiplexing (MUX4) を付加した場合を考える.1センスアンプを4列で共有するため,SRAMアレイの大きさは,Y=84=32,X=2048/(84)=64 となり,SRAMセルが横長なことを加味するとやや縦に潰れた正方形に近い長方形となる.このとき,先ほどと同様に8個のセンスアンプを配置するわけだが,MUXがないときと比べSRAMセル4個分の幅が使用可能となる.よって,センスアンプがある程度大きくても,問題なく配置することができる.他の利点としては,BLが短くなることによる読み出し速度の増加や,行デコーダにかかるコストの低減などがある.

一方で,デメリットとしてWL方向の長さがMUXにより定数倍 (MUX4なら4倍) されることでWL配線が長くなり容量が増加する点が挙げられる.しかし,BL容量の増大と違い,WL容量の増大に伴う遅延はWLドライバを大きくすることである程度解消できるためあまり問題とされない.

なお,最適なMUXの数はSRAMアレイが正方形に近づく場合とされる.縦長になればBL容量の増大に伴う損失が増大し,横長になればWL長の増大に伴いWLドライバが大きくなることで消費エネルギが増大する.ただし,最小のMUX数はセンスアンプのサイズにより律速されると考えて良い.

また,Column multiplexingの注意点として,half-selected cellによる消費エネルギがある.MUX4では4列のうち1列を選択して読み出すのだが,選ばれなかった3列のセルもWLを通して同時に駆動される.この選ばれなかった3列に属するSRAMセル (half-selected cell) は,読み出しに寄与しないにもかかわらずBLを放電し,無駄に電力を消費してしまう.よって,Column Muxingは消費エネルギ削減の観点では,あまり有効ではない点に留意すること.

Half selected cell の概念図

この記事が気に入ったらサポートをしてみませんか?