JPWO2012124063A1 - 半導体記憶装置及び半導体記憶装置の制御方法 - Google Patents

半導体記憶装置及び半導体記憶装置の制御方法 Download PDF

Info

Publication number
JPWO2012124063A1
JPWO2012124063A1 JP2013504446A JP2013504446A JPWO2012124063A1 JP WO2012124063 A1 JPWO2012124063 A1 JP WO2012124063A1 JP 2013504446 A JP2013504446 A JP 2013504446A JP 2013504446 A JP2013504446 A JP 2013504446A JP WO2012124063 A1 JPWO2012124063 A1 JP WO2012124063A1
Authority
JP
Japan
Prior art keywords
data
column
sub
selection data
sel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013504446A
Other languages
English (en)
Inventor
森 敦司
敦司 森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2012124063A1 publication Critical patent/JPWO2012124063A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/419Read-write [R-W] circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/418Address circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Static Random-Access Memory (AREA)
  • Semiconductor Memories (AREA)

Abstract

アスペクト比の変更、動作速度の低下を抑制しつつ、複数ビットにわたるデータ破壊の発生を抑制した半導体記憶装置及び半導体記憶装置の制御方法を提供する。半導体記憶装置は、データを保持する複数のメモリセルをそれぞれ有する複数のメモリブロックと、同一アドレスの複数のメモリセルを特定する際に、隣接ビットについて異なるメモリブロック内のメモリセルを特定するデコーダと、前記デコーダが特定したメモリセルが保持するデータの読み出しと、前記デコーダが特定したメモリセルに対するデータの書き込みとを実行する読み書き制御部とを含む。

Description

本願発明は、半導体記憶装置及び半導体記憶装置の制御方法に関する。
従来より、α線等を含む宇宙線がメモリセルアレイ内のメモリセルに入射してソフトエラーによりメモリセルアレイのパリティの値の反転が生じた場合、パリティが無効になることを抑制するため、マトリクス状に配列された複数個のメモリセルを有する半導体記憶装置において、同一のビット線選択回路に接続されるビット線を、互いに隣接しないように配列した半導体記憶装置があった。
特開2003−208795号公報
上述のようなソフトエラーは、宇宙線のうち、電荷を持つα線等、又は、電荷を持たない中性子線等が半導体記憶装置に入射することによって生じる。
半導体記憶装置は、微細化によるサイズ縮小、省電力化による動作電圧の低電圧化等により、保持するビットの値の反転が生じた場合において、データが破壊される領域が増大し、パリティで保護される1バイト等の単位データに含まれる複数ビットにわたるデータ破壊が生じやすくなる傾向にある。
しかしながら、同一のビット線選択回路に接続されるビット線を、互いに隣接しないように配列した半導体記憶装置では、ビット線の配線長が長くなり、レイアウト、動作速度に制約が生じる。
このため、同一のビット線選択回路に接続されるビット線を、互いに隣接しないように配列した半導体記憶装置は、高い周波数で動作するSRAM(Static Random Access Memory)のような半導体記憶装置には不向きであった。
また、複数ビットの反転によるデータ破壊の確率を低下させるには、例えば、カラム数を増加させることが考えられる。
しかしながら、カラム数の増加は、半導体記憶装置のアスペクト比の変化(横長化)、ワードラインの長大化による動作速度の低下に繋がるという問題があった。
そこで、アスペクト比の変更、動作速度の低下を抑制しつつ、複数ビットにわたるデータ破壊の発生を抑制した半導体記憶装置及び半導体記憶装置の制御方法を提供することを目的とする。
本発明の実施の形態の半導体記憶装置は、データを保持する複数のメモリセルをそれぞれ有する複数のメモリブロックと、同一アドレスの複数のメモリセルを特定する際に、隣接ビットについて異なるメモリブロック内のメモリセルを特定するデコーダと、前記デコーダが特定したメモリセルが保持するデータの読み出しと、前記デコーダが特定したメモリセルに対するデータの書き込みとを実行する読み書き制御部とを含む。
アスペクト比の変更、動作速度の低下を抑制しつつ、複数ビットにわたるデータ破壊の発生を抑制した半導体記憶装置及び半導体記憶装置の制御方法を提供することができる。
SRAMに用いられるシングルポート型のビットセル10の構造を概略的に示す図である。 図1のビットセル10の構造を詳細に示す図である。 8トランジスタ型のマルチポートビットセルを示す図である。 比較例の半導体記憶装置の一例であるSRAM30の一部分を示す図である。 他の比較例の半導体記憶装置の一例であるSRAM30Aの一部分を示す図である。 実施の形態1の半導体記憶装置を含む情報処理装置を示す図である。 図6の半導体記憶装置を拡大して示す図である。 実施の形態1のSRAM200の一部分を示す図である。 実施の形態1のSRAM200の入力アドレスのデータ構成を示す図である。 実施の形態1のSRAM200のロウデコーダ221の回路を示す図である。 実施の形態1のSRAM200のサブブロックデコーダ222の回路を示す図である。 実施の形態1のSRAM200の上下選択デコーダ223の回路を示す図である。 実施の形態1のSRAM200のパターン選択デコーダ224の回路を示す図である。 実施の形態1のSRAM200のカラムデコーダ225に含まれるカラムアドレスをデコードする回路を示す図である。 実施の形態1のSRAM200のカラムデコーダ225に含まれるカラムアドレスをデコードする回路を示す図である。 実施の形態1のSRAM200のカラムデコーダ225に含まれるカラムアドレスをデコードする回路を示す図である。 実施の形態1のSRAM200のカラムデコーダ225に含まれるカラムアドレスをデコードする回路を示す図である。 実施の形態1のSRAM200のカラム選択/読み書き回路213と、カラム選択データを伝送する信号線との接続関係を示す図である。 実施の形態1のSRAM100のカラム選択/読み書き回路213の回路を示す図である。 実施の形態1のSRAM200における第1パターンと第2パターンによるビットの選択の仕方を示す図である。 実施の形態1のSRAM200の動作例を示すタイミングチャートである。 実施の形態1のSRAM200の動作例を示す図である。 実施の形態1のSRAM200の動作例を示す図である。 実施の形態2のSRAM400を示す図である。 実施の形態2のSRAM400の切替回路215を示す図である。 実施の形態2のSRAM400の一部分を示す図である。 実施の形態2のSRAM400の入力アドレスのデータ構成を示す図である。 実施の形態2のSRAM400のロウデコーダ421の回路を示す図である。 実施の形態2のSRAM400のサブアレイデコーダ422の回路を示す図である。 実施の形態2のSRAM400のパターン選択デコーダ423の回路を示す図である。 実施の形態2のSRAM400のカラムデコーダ424の回路を示す図である。 実施の形態2のSRAM400における同一アドレスのビットセルを含むサブブロックを色分けして示す図である。 実施の形態2のSRAM400における同一アドレスのビットセルを含むサブブロックを色分けして示す図である。 実施の形態3のSRAM600を示す図である。 実施の形態3のSRAM600の一部分を示す図である。 実施の形態3のSRAM600の入力アドレスのデータ構成を示す図である。 実施の形態3のSRAM600のロウデコーダ221の回路を示す図である。 実施の形態3のSRAM600のサブブロックデコーダ222の回路を示す図である。 実施の形態3のSRAM600のパターン選択デコーダ623の回路を示す図である。 実施の形態3のSRAM600の領域選択デコーダ624の回路を示す図である。 実施の形態3のSRAM600のカラムデコーダ625に含まれるカラムアドレスをデコードする回路を示す図である。 実施の形態3のSRAM600のカラムデコーダ625に含まれるカラムアドレスをデコードする回路を示す図である。 実施の形態3のSRAM600のカラムデコーダ625に含まれるカラムアドレスをデコードする回路を示す図である。 実施の形態3のSRAM600のカラムデコーダ625に含まれるカラムアドレスをデコードする回路を示す図である。
以下、本発明の半導体記憶装置及び半導体記憶装置の制御方法を適用した実施の形態について説明する。
実施の形態1乃至3の半導体記憶装置及び半導体記憶装置の制御方法について説明する前に、まず、図1乃至図5を用いて、比較例の半導体記憶装置と問題点について説明する。
図1は、SRAM(Static Random Access Memory)に用いられるシングルポート型のビットセル10の構造を概略的に示す図であり、図2は図1のビットセル10の構造を詳細に示す図である。
図1に示すように、ビットセル10は、一対の否定回路であるインバータ11、12と一対のNMOS(N-type Metal Oxide Semiconductor:N型金属酸化膜半導体)トランジスタ13、14を含む。
インバータ11、12は、ループを形成するように接続されている。NMOSトランジスタ13、14のゲートは、ともにワードラインWL(Word Line)に接続されており、NMOSトランジスタ13のドレインは正極性のビットラインBLに接続され、NMOSトランジスタ14のドレインは負極性のビットラインBLB(BLバー)に接続されている。
また、NMOSトランジスタ13、14のソースは、ループ状に接続されるインバータ11、12の接続部N1、N2に接続されている。
図2に示すように、インバータ11は、PMOS(P-type Metal Oxide Semiconductor:P型金属酸化膜半導体)トランジスタ11AとNMOSトランジスタ11Bとを有するCMOS(Complementary Metal Oxide Semiconductor:相補型金属酸化膜半導体)型のインバータである。同様に、インバータ12は、PMOSトランジスタ12AとNMOSトランジスタ12Bとを有するCMOS型のインバータである。すなわち、図1、図2に示すビットセルは、6つのMOSトランジスタを含む。
MOSトランジスタ11A、11Bの入出力端子と、MOSトランジスタ12A、12Bの入出力端子とは、交差して接続されており、ビットセル10は、インバータ11、12を含むラッチ回路として実現される。
MOSトランジスタ11A、11Bのドレイン同士の接続部N1は、図1に示す接続部N1に相当し、記憶ノードN1として機能する。また、MOSトランジスタ12A、12Bのドレイン同士の接続部N2は図1に示す接続部N2に相当し、記憶ノードN2として機能する。
記憶ノードN1、N2に、"1"、"0"又は"0"、"1"の相補データを保持させ、ワードラインWLと一対のビットラインBL、BLBでビットセル10を選択することにより、記憶ノードN1、N2のデータの読み出し、及び書き込みを行う。
データの読み出す際は、一対のビットラインBL、BLBをHレベルにして、ワードラインWLを駆動すると、ビットラインBL、BLBのいずれか一方が記憶ノードN1又はN2によりLレベルにされ、読み出しデータとして出力される。
一方、データを書き込む際は、一対のビットラインBL、BLBのいずれか一方をHレベル、他方をLレベルにした状態で、ワードラインWLを駆動し、記憶ノードN1、N2に書き込みを行う。
図1、図2に示すような6トランジスタ型のビットセル10は、1つのビットセル10においてデータの読み出しと書き込みを同時に行うことはできず、読み出しと書き込みは異なるサイクルで行われる。
次に、同時にデータの読み書きを行うことのできるマルチポートビットセルについて説明する。
図3は、8トランジスタ型のマルチポートビットセルを示す図である。図3に示すマルチポート型のビットセル20は、2つのインバータを含む。2つのインバータ自体は、図1に示したシングルポート型のビットセル10に含まれるインバータ11、12と同一であり、それぞれが2つのトランジスタを含むため(図2参照)、ここでは同一符号を用い、その説明を省略する。
図3に示すマルチポート型のビットセル20は、ワードラインが2本あり、(Write Word Line)と(Read Word Line)を含む。また、ビットラインは二対あり、正極性の書き込み用ビットラインWBL(Write Bit Line)、負極性の書き込み用ビットラインWBLB(Write Bit Line Bar)、及び正極性の読み出し用ビットラインRBL(Read Bit Line)、負極性の読み出し用ビットラインRBLB(Read Bit Line Bar)を含む。
読み出し用ワードラインRWLには、NMOSトランジスタ21、22のゲートがそれぞれ接続されている。NMOSトランジスタ21のドレインは読み出し用ビットラインRBLBに接続され、ソースは記憶ノードN1に接続されている。また、NMOSトランジスタ22のドレインは読み出し用ビットラインRBLに接続され、ソースは記憶ノードN2に接続されている。
書き込み用ワードラインWWLには、NMOSトランジスタ23、24のゲートがそれぞれ接続されている。NMOSトランジスタ23のドレインは書き込み用ビットラインWBLBに接続され、ソースは記憶ノードN1に接続されている。また、NMOSトランジスタ24のドレインは書き込み用ビットラインWBLに接続され、ソースは記憶ノードN2に接続されている。
データを読み出す際は、読み出し用ワードラインRWLと、読み出し用ビットラインRBL、RBLBとでビットセル20を選択する。
データを書き込む際は、書き込み用ワードラインWWLと、書き込み用ビットラインWBL、WBLBとでビットセル20を選択する。
このように、ビットセル20は、読み出しと書き込みに用いるトランジスタ(21、22、23、24)を二対含み、読み出しと書き込みで別々のワードライン及びビットラインを用いるため、同時に読み書きを行うことができる。
なお、図3では、書き込み用ワードラインWWL、読み出し用ワードラインRWL、書き込み用ビットラインWBL、WBLB、読み出し用ビットラインRBL、RBLBのように、ワードラインとビットラインを読み出し用と書き込み用に分けて説明した。しかしながら、ワードラインとビットラインは読み出し用と書き込み用に区別する必要はなく、いずれを用いてデータの読み出し又は書き込みを行ってもよい。
次に、図1及び図2に示すビットセル10を含む比較例の半導体記憶装置について説明する。
図4は、比較例の半導体記憶装置の一例であるSRAM30の一部分を示す図である。
図4に示すSRAM30は、アレイ状に配列された複数のビットセル10、ワードラインドライバ31、32、カラム選択/読み書き回路33、ワードラインWL(Word Line)、及びビットラインBL(Bit Line)、BLB(Bit Line Bar)を含む。
ビットラインBLとBLBは対をなしており、対をなしたビットラインBL、BLBとに接続されたビットセル10が1つずつ配置されている。
ワードラインドライバ31、32は、それぞれ、4本のワードラインWLが接続されており、ロウアドレスをデコードして出力するロウ選択データ(ロウ選択信号)に基づき、ロウの選択(ワードラインの選択)を行う。
カラム選択/読み書き回路33は、ビットラインBL、BLBが接続されており、カラムアドレスをデコードして出力するカラム選択データ(カラム選択信号)に基づき、カラムの選択(ビットラインの選択)を行う。
図4に示す48個のビットセル10は、カラム選択/読み書き回路33よりも上側に示す24個が1つのサブアレイに含まれており、カラム選択/読み書き回路33よりも下側に示す24個が他の1つのサブアレイに含まれている。すなわち、図4には、2つのサブアレイを示す。サブアレイは、例えば、下層から上層に向かってサブアレイ/サブブロック/バンクと階層分けされているメモリ階層の最小単位である。
ここで、SRAM30に含まれる各ビットをD[n]と表す。nは任意の自然数であり、SRAM30のビット数を表す。
図4に示すSRAM30は、各ビットが4カラムを含む。すなわち、D[n−1]、D[n]、D[n+1]、D[n+2]の各ビットは、それぞれ、4カラムを含む(図4には、説明の簡単化のため、D[n−1]の3カラム分とD[n+2]の1カラム分を示す)。
また、上述のように、ワードラインドライバ31、32には、それぞれ、4本のワードラインWLが接続されている。
従って、図4に示すSRAM30は、1つのサブアレイの内部において、1つのビットに対して(4ロウ×4カラムで)16個のビットセル10が割り当てられていることになる。
このような比較例のSRAM30において、図4に太線で示すSRAM30は、例えば、1バイト単位で読み書きを行なうため、ビットD[n+1]、D[n]、D[n−1]が同一のバイトに含まれる場合には、それぞれ異なるビットD[n+1]、D[n]、D[n−1]の3つのビットセルは、同一アドレスとなる。ここでは、太線で示す3つのビットセル10を区別するために、ビットD[n+1]内のビットセルを10A、ビットD[n]内のビットセルを10B、ビットD[n−1]内のビットセルを10Cと表す。
このような比較例のSRAM30において、SRAM30に入射したα線又は中性子線がビットセル10Aに衝突し、ビットセル10Aからビットセル10Bまでの5つのビットセルが保持するデータが破壊されたとする。すなわち、5つの連続的に隣接するビットセル10のデータが当該α線又は中性子線によって破壊されたことになる。
ビットセル10Aと10Bが、同一アドレスである場合には、このようなデータ破壊は、同一アドレスで指定される1バイトのデータ中に含まれる2ビットにわたってデータ破壊が生じたことになる。
このように、比較例のSRAM30では、2ビット以上の複数ビットのデータ破壊が生じる可能性がある。
このようなα線等によるデータ破壊は、半導体記憶装置の微細化によるサイズ縮小、省電力化による動作電圧の低電圧化等により、増加傾向にある。
次に、図5を用いて、他の比較例の半導体記憶装置におけるデータ破壊について説明する。
図5は、他の比較例の半導体記憶装置の一例であるSRAM30Aの一部分を示す図である。
図5に示す他の比較例のSRAM30Aは、1ビットが8カラムを含む構成である点が図4に示す比較例のSRAM30と異なる。その他の構成は、図4に示す比較例のSRAM30と同様であるため、同一又は同等の構成要素には同一符号を付し、その説明を省略する。
このようなSRAM30Aに、図4に示すSRAM30に入射したα線又は中性子線と同一の運動エネルギを有するα線又は中性子線が入射し、ビットD[n]内のビットセル10Aに衝突し、5つの連続的に隣接するビットセル10のデータが当該α線又は中性子線によって破壊されたとする。
この場合に、図5に示すSRAM30Aにおいて、データ破壊はビットセル10Aからビットセル10Dまで及ぶが、ビットセル10Aからビットセル10Dの5つのビットセルはともに同一のビットD[n]に含まれるため、データ破壊は1ビットで済む。
このように、各ビットD[k](kはn−1〜n+1)内のカラム数を増加させれば、複数ビットにわたるデータ破壊を抑制することができる。
しかしながら、ビット内におけるカラム数の増加は、半導体記憶装置のアスペクト比の変化(横長化)、ワードラインの長大化による動作速度の低下に繋がるという問題がある。
以上のように、比較例の半導体記憶装置(図4参照)は、複数ビットにおけるデータ破壊が生じやすいという問題があった。また、他の比較例の半導体記憶装置(図5参照)は、カラム数の増加によるアスペクト比の変化(横長化)、ワードラインの長大化による動作速度の低下が生じるという問題があった。
このため、以下で説明する実施の形態1乃至3では、上述の問題点を解決した半導体記憶装置及び半導体記憶装置の制御方法を提供することを目的とする。以下、実施の形態1、2の半導体回路装置について説明する。
<実施の形態1>
図6は、実施の形態1の半導体記憶装置を含む情報処理装置を示す図であり、図7は、図6の半導体記憶装置を拡大して示す図である。
実施の形態1では、一例として情報処理装置がサーバ100の実施形態について説明する。
図6に示すように、サーバ100は、LSI(Large Scale Integrated circuit:大規模集積回路)101、主記憶装置102、及び補助記憶装置103を含む。LSI101と主記憶装置102の間、及び主記憶装置102と補助記憶装置103の間は、例えば、それぞれ専用のバスで接続されている。
LSI101は、プロセッサコア111、L1(Level−1:一次)インストラクションキャッシュ112、L1データキャッシュ113、L2(Level−2:二次)キャッシュ114、及びメモリコントローラ115を有する。
プロセッサコア111は、例えば、CPU(Central Processing Unit:中央演算処理装置)コア(Core)であり、情報処理装置としてのサーバ100の演算処理を行う演算処理装置である。ここで、プロセッサコア111、L1インストラクションキャッシュ112、及びL1データキャッシュ113は、CPUとして一体化されていてもよい。プロセッサコア111は、複数あってもよく、その場合は、各プロセッサコア111にL1インストラクションキャッシュ112とL1データキャッシュ113が一つずつ接続されていてもよい。
L1インストラクションキャッシュ112は、プロセッサコア111の演算処理に必要なプログラムを一時的に記憶する一次命令キャッシュである。L1インストラクションキャッシュの機能を実現するため、例えば、SRAMが用いられる。
L1データキャッシュ113は、プロセッサコア111が演算処理に必要なデータ、又は演算処理で生成されたデータを保持する一次データキャッシュである。実施の形態1では、L1データキャッシュ113に、実施の形態1の半導体記憶装置としてのSRAMを用いる形態について説明する。なお、詳細な構造については、後述する。
L2キャッシュ114は、メモリ階層構造において主記憶装置102に近いという意味で、L1インストラクションキャッシュ112及びL1データキャッシュ113よりも下位のキャッシュであり、典型的には、L1インストラクションキャッシュ112及びL1データキャッシュ113よりも処理速度は低いが、容量の大きいキャッシュである。L2キャッシュ114の機能は、例えば、SRAMで実現される。
メモリコントローラ115は、LSI101が主記憶装置102との間でデータの読み書きを行う際の制御を行う制御装置であり、例えば、LSIで実現される。
主記憶装置102は、例えば、DRAM(Dynamic Random Access Memory:ダイナミックランダムアクセスメモリ)で実現され、補助記憶装置103は、例えば、ハードディスクで実現される。
なお、サーバ100は、外部装置との通信を行うデータ入出力インタフェース等を含んでいてもよい。
図7に示すように、L1データキャッシュ113は、複数のSRAM200A、200B、・・・、200Xを含む。SRAM200A、200B、・・・、200Xは、プロセッサコア111に対して並列に接続されており、プロセッサコア111によって選択が行われる。
SRAM200A、200B、・・・、200Xの構造はすべて同様であるため、ここでは、SRAM200Aについて説明する。なお、ここでは、SRAMが複数あることを説明するためにSRAM200A、200B、・・・、200Xと記すが、L1データキャッシュ113に含まれるSRAMの数は1つでもよいし、例えば、2つ以上の数のSRAMが配列されていてもよい。
SRAM200Aは、図7の左側に示すように、メモリ領域が複数のサブブロック(Sub Block)210に分けられて階層化されており、デコーダ(Decoder)220、入出力ポート(I/O)230A、230B、及びタイマ(Timer)240を含む。
図7の左側に示すように、サブブロック210は、入出力ポート(I/O)230Aの上下に4段ずつ配設されるとともに、入出力ポート(I/O)230Bの上下に4段ずつ配設される。ここで、入出力ポート(I/O)230A及び230Bの上下に4段ずつ配設される16個のサブブロックに、入出力ポート(I/O)230A、230Bから近い方から順に、サブブロック番号0〜3を付す。
なお、以下では、入出力ポート(I/O)230A、230Bを区別しない場合には、入出力ポート(I/O)230と称す。
各サブブロック210は、図7のSRAM200Aの右側に拡大して示すように、2つのサブアレイ(Sub Array)211A、211B、ワードラインドライバ212A、212B、及びカラム選択/読み書き回路(Column Select/Read/Write logic)213を含む。図7の右側には、サブブロック番号が2と3のサブブロック210(Sub Block 2, Sub Block 3)を示す。
なお、各サブブロック210は、複数のビットに分けられている。ここでは、一例として、比較例のSRAM30(図4参照)と同様に、1つのビットが4カラムを含むこととする。
SRAM200Aに含まれるすべてのサブアレイ211A、211Bは、同様の構造であり、メモリセルとしてのビットセルがアレイ状に配列され、デコーダ220に入力される入力アドレスのデコーダ220によるデコード結果に基づいてワードラインとビットラインの選択が行えるようになっている。
ここで、入力アドレスは、プロセッサコア111(図6参照)からデコーダ220に入力される。入力アドレスは、カラムを特定するためのカラムアドレス、ロウを特定するためのロウアドレス、及び、サブアレイを特定するためのサブアレイアドレスを含む。
また、デコーダ220は、カラムアドレスをデコードするカラムデコーダ、ロウアドレスをデコードするロウデコーダ、及び、サブアレイアドレスをデコードするためのサブアレイデコーダを含む。
ワードラインドライバ212A、212Bは、それぞれサブアレイ211A、211Bに対応して設けられており、それぞれサブアレイ211A、211Bに含まれるワードラインに接続されている。ワードラインドライバ212A、212Bは、それぞれデコーダ220がロウアドレスをデコードして出力するロウ選択データ(ロウ選択信号)に基づき、ロウの選択(ワードラインの選択)を行う。
カラム選択/読み書き回路213は、各サブブロック210に対応して設けられており、各サブブロック210内の2つのサブアレイ211A、211Bのビットラインに接続されている。カラム選択/読み書き回路213は、デコーダ220がカラムアドレスをデコードして出力するカラム選択データ(カラム選択信号)に基づき、カラムの選択(ビットラインの選択)を行う。
各階層のサブブロック210のカラム選択/読み書き回路213は、それぞれ、切替回路215A、215Bを有する。
サブアレイ211A、211Bのビットラインは、カラム選択/読み書き回路213内において、切替回路215A、215Bを介して、グローバルビットライン214に接続されている。
図7には、説明の便宜上、切替回路215A、215Bが、それぞれ、1本のビットラインと1本のグローバルビットライン214とを接続する形態を示すが、切替回路215Aは、複数のビットラインと1本のグローバルビットライン214を接続していてもよい。
以下の説明では、一例として、切替回路215Aが4本のビットラインと1本のグローバルビットライン214を接続する形態について説明する。
このようなカラム選択/読み書き回路213内の切替回路215A、215Bにより、階層化されたすべてのサブブロック210に含まれるサブアレイ211A、211Bのビットラインは、グローバルビットライン214に接続されている。グローバルビットライン214は、入出力ポート(I/O)230に接続されている。
以上のような構成により、各階層のサブブロック210は、グローバルビットライン214によって階層化されている。
切替回路215A、215Bは、カラム選択データに基づいて、データの読み出し又は書き込みを行うメモリセルに接続されたビットラインをグローバルビットライン214と接続する。
切替回路215A、215Bを含むカラム選択/読み書き回路213は、読み書き制御部である。
なお、以下では、SRAM200A、200B、・・・、200Xを特に区別をしない場合には、SRAM200と表記することとする。
また、図7に示すサブブロック210及びサブアレイ211A、211B等の位置関係は、サブブロック210及びサブアレイ211A、211B等の階層構造を表しており、本明細書中における「上」又は「下」なる文言は、物理的な上下関係を表すものではない。
次に、図8を用いて、実施の形態1の半導体記憶装置としてのSRAM200の詳細な構造について説明する。
図8は、実施の形態1のSRAM200の一部分を示す図である。
図8に示すSRAM200の一部分は、図7に示す入出力ポート(I/O)230Aの上側に接続されるサブブロック番号0のサブブロック210(Sub Block 0)のビットD[n]の部分、ワードラインドライバ212A、212B、カラム選択/読み書き回路213、グローバルビットライン214、及びデコーダ220に対応する部分である。
SRAM200は、プロセッサコア111(図6参照)から入力される読み出し命令と書き込み命令に従って、データの読み出しと書き込みを行う。
サブアレイ211A、211Bは、それぞれ、アレイ状に配列された複数のメモリセルとしてのビットセル10を含む。
実施の形態1のSRAM200で用いるビットセル10は、図1及び図2に示す比較例の6トランジスタ型のビットセル10と同様である。このため、ビットセル10の動作説明は、省略する。
なお、ビットセル10に含まれるMOSトランジスタ13のソースとドレインの接続は、逆であっても構わない。同様に、MOSトランジスタ14のソースとドレインの接続についても、逆であっても構わない。 また、実施の形態1では、図1及び図2に示す6トランジスタ型のビットセル10の代わりに、図3に示す8トランジスタ型のビットセル20を用いてもよい。
比較例のSRAM30(図4参照)は、同一アドレスの複数のビットセルを、1つのサブアレイに含まれる各ビットに1つずつ割り当てている。このため、図4に示すように、隣接するビットD[n+1]とビットD[n]に、同一アドレスのビットセル10Aと10Bが含まれている。
これに対して、実施の形態1のSRAM200は、同一アドレスのビットセル10を隣接するビットに割り当てず、1つのサブブロック210に含まれる2つのサブアレイ211A及び211Bの中で、千鳥状に割り当てる。
すなわち、例えば、1つのサブブロック210の中で、サブアレイ211A内の奇数番目のビットと、サブアレイ211Bの偶数番目のビットとに含まれるビットセル10に、同一アドレスを割り当てる。また、1つのサブブロック210の中で、サブアレイ211A内の偶数番目のビットと、サブアレイ211Bの奇数番目のビットとに含まれるビットセル10に、同一アドレスを割り当てる。なお、このようなアドレスの割り当てについては、図10乃至図12を用いて後述する。
このため、実施の形態1のSRAM200では、読み出し命令は、いずれかのサブブロック210内のサブアレイ211A及び211B内のビットセル10を千鳥状に特定する入力アドレスと、ライトイネーブル(Write Enable)信号W/E(Lレベル)とを含む。書き込み命令は、いずれかのサブブロック210内のサブアレイ211A及び211B内のビットセル10を千鳥状に特定する入力アドレスと、ライトイネーブル信号W/E(Hレベル)とを含む。
なお、読み出し命令と書き込み命令は、プロセッサコア111(図6参照)から要求される命令である。
ここで、実施の形態1のSRAM200では、同一アドレスの複数のビットセル10が、1つのサブブロック210の中のサブアレイ211Aと211Bとにわたって千鳥状に配設されているため、データの読み出しと書き込みはサブブロック210単位で行う。
データの読み出しは、SRAM200に多数含まれるサブブロック210のうちのいずれかのサブブロック210に含まれるサブアレイ211A及び211Bに対して同時に行う。
同様に、データの書き込みは、SRAM200に多数含まれるサブブロック210のうちのいずれかのサブブロック210に含まれるサブアレイ211A及び211Bに対して同時に行う。
このようにデータの読み出しと書き込みをサブブロック210単位で行うため、実施の形態1のSRAM200は、サブブロックの選択を行う必要がある。サブブロックの選択は、サブブロック番号を特定することによって実現される。
また、サブブロック210は、図7に示すように、入出力ポート(I/O)230の上下に同一のサブブロック番号が割り当てられているため、SRAM200内の多数のサブブロック210の中から一つのサブブロック210を選択するためには、サブブロック番号の特定に加えて、上下の指定が必要になる。
また、データの読み出し又は書き込みは、サブアレイ211A及び211B内の奇数番目のビットと偶数番目のビットとに対して選択的に行うため、次の2パターンがある。
第1パターンは、サブアレイ211A内の奇数番目のビットとサブアレイ211Bの偶数番目のビットとに含まれる同一アドレスの複数のビットセル10に対してデータの読み出し又は書き込みを行うパターンである。
これは、同一アドレスのビットをサブアレイ211A内の奇数番目のビットとサブアレイ211Bの偶数番目のビットとに割り当てることによって実現される。
第2パターンは、サブアレイ211A内の偶数番目のビットとサブアレイ211Bの奇数番目のビットとに含まれる同一アドレスの複数のビットセル10に対してデータの読み出し又は書き込みを行うパターンである。
これは、同一アドレスのビットをサブアレイ211A内の偶数番目のビットとサブアレイ211Bの奇数番目のビットとに割り当てることによって実現される。
このため、実施の形態1のSRAM200では、データの読み出し及び書き込みを第1パターンと第2パターンのどちらで行うかを選択する必要がある。
従って、実施の形態1のSRAM200では、ロウ選択及びカラム選択に加えて、サブブロックの選択、上下の選択、及び、第1又は第2パターンの選択が必要になる。
ロウ選択、カラム選択、サブブロックの選択、上下の選択、及び第1又は第2パターンの選択は、読み出し命令又は書き込み命令に含まれる入力アドレスに基づいて行われる。
例えば、入力アドレスの下位から上位にかけて、カラム選択を行うカラムアドレス、ロウ選択を行うロウアドレス、第1又は第2パターン選択を行うパターン選択アドレス、サブブロック選択を行うサブブロックアドレス、上下選択を行う上下選択アドレスを、それぞれ割り当てればよい。この場合に、各アドレスには、入力アドレスのうちの数ビットずつが割り当てられるようにすればよい。なお、具体的なアドレスの割当例については、図9Aを用いて後述する。
次に、ワードライン及びビットラインの接続関係と、デコーダ220について説明する。
サブアレイ211A(Sub Array 0)は、4本のワードラインWL00〜WL03と、4対のビットラインBL00、BLB(BLバー)00〜BL03、BLB03を含む。ワードラインWL00〜WL03は、それぞれワードラインドライバ212Aに接続されており、ビットラインBL00、BLB00〜BL03、BLB03は、それぞれカラム選択/読み書き回路213に接続されている。
ここで、ビットラインBL、BLBの添え数字をビットラインのライン番号と称す。
サブアレイ211B(Sub Array 1)は、4本のワードラインWL10〜WL13と、4対のビットラインBL10、BLB10〜BL13、BLB13を含む。ワードラインWL10〜WL13は、それぞれワードラインドライバ212Bに接続されており、ビットラインBL10、BLB10〜BL13、BLB13は、それぞれカラム選択/読み書き回路213に接続されている。
なお、各ビットセル10は、ワードラインとビットライン対の交差部に配設される。
また、図8にはサブアレイ211A、211Bのうちの1ビット(D[n])の部分だけを示すが、実際にはnビットあるため、各ワードラインは、ワードラインドライバ212A、212Bからすべてのビットに伸びている。
デコーダ220は、ロウデコーダ221、サブブロックデコーダ222、上下(Top/Bottom)選択デコーダ223、パターン選択デコーダ224、及びカラムデコーダ225を含む。デコーダ220には、入力アドレスが入力される。また、カラムデコーダ225には、ライトイネーブル信号W/Eが入力される。
なお、ロウデコーダ221、サブブロックデコーダ222、上下選択デコーダ223、パターン選択デコーダ224、及びカラムデコーダ225は、SRAM200全体に対して、一つずつ配設される。
ロウデコーダ221、サブブロックデコーダ222、及び上下選択デコーダ223は、信号線を介して、ワードラインドライバ212A、212Bに接続されている。実際には、サブブロック210は階層化されているため(図7参照)、ロウデコーダ221、サブブロックデコーダ222、及び上下選択デコーダ223は、すべてのサブブロック210のワードラインドライバ212A、212Bに接続されている。
次に、ロウデコーダ221によるロウ選択、サブブロックデコーダ222によるサブブロック選択、上下選択デコーダ223による上下の選択、カラムデコーダ225によるカラム選択について説明する。
ロウデコーダ221は、信号線を介して、ワードラインドライバ212A、212Bに接続されており、読み出し命令又は書き込み命令の入力アドレスに含まれるロウアドレスをデコードしてロウ選択データROW[3:0]を出力する。ロウ選択データROW[3:0]は、ワードラインドライバ212A、212Bに入力される。
この結果、ワードラインドライバ212A、212Bは、ロウ選択データROW[3:0]を用いてロウ選択を行い、ワードラインWL00〜WL03、WL10〜WL13のいずれかを選択する。
ロウ選択データROW[3:0]は、ワードラインドライバ212A、212Bに入力される4ビットのデータである。
ロウ選択データROW[3:0]は、図7に示す入出力ポート(I/O)230の上下に4段ずつ配列されるすべてのサブブロック210内のワードラインドライバ212A、212Bにロウデコーダ221から入力される。このため、ロウ選択データROW[3:0]に基づくロウ選択は、すべてのサブアレイの中で行われる。
なお、ロウ選択データROW[3:0] は、ロウ選択データROW[3]、ロウ選択データROW[2]、ロウ選択データROW[1]、ロウ選択データROW[0]の4ビットのロウ選択データをまとめて表す。
サブブロックデコーダ222は、信号線を介して、ワードラインドライバ212A、212Bに接続されており、読み出し命令又は書き込み命令の入力アドレスに含まれるサブブロックアドレスをデコードしてサブブロック選択データSBSを出力する。
図8には、サブブロック番号0のサブブロック210の中の一部分を示すため、サブブロックデコーダ222から1本の信号線を介して出力されるサブブロック選択データとしてSBS[0]のみを示す。
しかしながら、実際には、図7に示すように入出力ポート(I/O)230の上下にサブブロック210が4段ずつあるため、サブブロックデコーダ222には8本の信号線が接続される。また、サブブロックデコーダ222は、サブブロック選択データSBS[0]〜SBS[3]を出力する。なお、サブブロック選択データSBSの添え数字は、サブブロック番号(0〜3)に対応する。
8本の信号線は、それぞれ、入出力ポート(I/O)230の上下の4段のサブブロック210のワードラインドライバ212A、212Bに接続される。
サブブロック選択データSBS[0]〜SBS[3]は、8本の信号線を介して、それぞれ、4段のサブブロック210のワードラインドライバ212A、212Bに入力される。
上下選択デコーダ223は、信号線を介して、図7に示す入出力ポート(I/O)230の上下の4段のサブブロック210の中のワードラインドライバ212A、212Bに接続されている。上下選択デコーダ223は、読み出し命令又は書き込み命令の入力アドレスに含まれる上下選択アドレスをデコードしてTOPデータ及びBOT(Bottom)データを出力する。
TOPデータは、入出力ポート(I/O)230よりも上側にあるサブブロック210に割り当てられ、BOTデータは、入出力ポート(I/O)230よりも下側にあるサブブロック210に割り当てられる。
図8に示すサブアレイ211A及び211Bは入出力ポート(I/O)230よりも上側にあるサブブロック210(Sub Block 0)であるため、図8にはTOPデータのみを示すが、入出力ポート(I/O)230よりも下側にあるサブブロック210には、上下選択デコーダ223からBOTデータが入力される。
実施の形態1のSRAM200では、サブブロックデコーダ222から出力されるサブブロック選択データSBSと、上下選択デコーダ223から出力されるTOPデータ又はBOTデータとにより、入出力ポート(I/O)230の上側又は下側の何段目にあるサブブロック210を選択するかが決定される。
この場合に、図7に示すSRAM200では、デコーダ220の左右にある同じ段の(サブブロック番号の等しい)サブブロック210が選択される。
なお、データの読み出し又は書き込みを行うための1サイクル中に、読み出し命令又は書き込み命令の入力アドレスに基づいて選択されるサブブロック210は、図7に示すSRAM200では、デコーダ220の左右にある同じ段の2つのサブブロック210である。
パターン選択デコーダ224は、信号線を介してカラムデコーダ225に接続されており、読み出し命令又は書き込み命令の入力アドレスに含まれるパターン選択アドレスをデコードして第1パターン選択データF(First)及び第2パターン選択データS(Second)を出力する。
第1パターン選択データF及び第2パターン選択データSは、それぞれ、第1パターン又は第2パターンを選択するためのデータであり、カラムデコーダ225に入力される。
第1パターン選択データFが"1"であり、第2パターン選択データSが"0"である場合は、第1パターンを選択することを表す。これとは逆に、第1パターン選択データFが"0"であり、第2パターン選択データSが"1"である場合は、第2パターンを選択することを表す。
ここで、第1パターンでは、サブアレイ211A内の奇数番目のビットとサブアレイ211Bの偶数番目のビットとに含まれる同一アドレスの複数のビットセル10に対してデータの読み出し又は書き込みを行う。
第2パターンでは、サブアレイ211A内の偶数番目のビットとサブアレイ211Bの奇数番目のビットとに含まれる同一アドレスの複数のビットセル10に対してデータの読み出し又は書き込みを行う。
カラムデコーダ225は、信号線を介して、カラム選択/読み書き回路213に接続されている。カラムデコーダ225は、実際には、図7に示すすべてのサブブロック210の中のカラム選択/読み書き回路213に接続されている。
カラムデコーダ225には、読み出し命令又は書き込み命令の入力アドレスに含まれるカラムアドレスに加えて、第1パターン選択データF、第2パターン選択データS、及びライトイネーブル信号W/Eが入力される。
カラムデコーダ225は、カラムアドレスをデコードし、第1パターン選択データF及び第2パターン選択データSのデータ値と、ライトイネーブル信号W/Eの信号レベルとに応じたカラム選択データを出力する。
カラムデコーダ225が出力するカラム選択データは、第1パターン又は第2パターンによるデータの読み出し又は書き込みを実現するように、サブアレイ211A及び211Bのビット内のカラムを選択するためのデータである。
カラム選択データは、カラム選択/読み書き回路213に入力される。
カラムデコーダ225は、ライトイネーブル信号W/Eの信号レベルがLレベルで、第1パターン選択データFが"1"であり、第2パターン選択データSが"0"である場合は、カラム選択データR_COL_SEL_F[3:0]を出力する。
カラム選択データR_COL_SEL_F[3:0]は、第1パターンでのデータの読み出しを実現するために、サブアレイ211A及び211B内のビットのカラムを選択するためのカラム選択データである。
カラム選択データR_COL_SEL_F[3:0]により、第1パターンに従って、サブアレイ211Aの各奇数ビット内のいずれかのビットラインBL、BLBの対と、サブアレイ211Bの各偶数ビット内のいずれかのビットラインBL、BLBの対とがデータの読み出しのために選択される。
カラムデコーダ225は、ライトイネーブル信号W/Eの信号レベルがLレベルで、第1パターン選択データFが"0"であり、第2パターン選択データSが"1"である場合は、カラム選択データR_COL_SEL_S[3:0]を出力する。
カラム選択データR_COL_SEL_S[3:0] は、第2パターンでのデータの読み出しを実現するために、サブアレイ211A及び211B内のビットのカラムを選択するためのカラム選択データである。
カラム選択データR_COL_SEL_S[3:0]により、第2パターンに従って、サブアレイ211Aの各偶数ビット内のいずれかのビットラインBL、BLBの対と、サブアレイ211Bの各奇数ビット内のいずれかのビットラインBL、BLBの対とがデータの読み出しのために選択される。
なお、図8には、1つのビットD[n]のみを示すが、実際にはサブアレイ211A及び211Bは多数のビットを含む。このため、カラム選択データに基づいて、各奇数ビット内のいずれかのビットラインBL、BLBの対と、各偶数ビット内のいずれかのビットラインBL、BLBの対とが選択される。
また、カラムデコーダ225は、ライトイネーブル信号W/Eの信号レベルがHレベルで、第1パターン選択データFが"1"であり、第2パターン選択データSが"0"である場合は、カラム選択データW_COL_SEL_F[3:0]を出力する。
カラム選択データW_COL_SEL_F[3:0]は、第1パターンでのデータの書き込みを実現するために、サブアレイ211A及び211B内のビットのカラムを選択するためのカラム選択データである。
カラム選択データW_COL_SEL_F[3:0]により、第1パターンに従って、サブアレイ211Aの各奇数ビット内のいずれかのビットラインBL、BLBの対と、サブアレイ211Bの各偶数ビット内のいずれかのビットラインBL、BLBの対とがデータの書き込みのために選択される。
また、カラムデコーダ225は、ライトイネーブル信号W/Eの信号レベルがHレベルで、第1パターン選択データFが"0"であり、第2パターン選択データSが"1"である場合は、カラム選択データW_COL_SEL_S[3:0]を出力する。
カラム選択データW_COL_SEL_S[3:0] は、第2パターンでのデータの書き込みを実現するために、サブアレイ211A及び211B内のビットのカラムを選択するためのカラム選択データである。
カラム選択データW_COL_SEL_S[3:0]により、第2パターンに従って、サブアレイ211Aの各偶数ビット内のいずれかのビットラインBL、BLBの対と、サブアレイ211Bの各奇数ビット内のいずれかのビットラインBL、BLBの対とがデータの書き込みのために選択される。
なお、カラム選択データR_COL_SEL_F[3:0]、R_COL_SEL_S[3:0]、W_COL_SEL_F[3:0]、及びW_COL_SEL_S[3:0]は、それぞれ、4ビットのカラム選択データをまとめて示す表記である。
例えば、カラム選択データR_COL_SEL_F[3:0]は、カラム選択データR_COL_SEL_F[3]、R_COL_SEL_F[2]、R_COL_SEL_F[1]、及びR_COL_SEL_F[0]を含む。これは、カラム選択データR_COL_SEL_S[3:0]、W_COL_SEL_F[3:0]、及びW_COL_SEL_S[3:0]についても同様である。
次に、カラム選択/読み書き回路213について説明する。
カラム選択/読み書き回路213には、ビットラインBL00〜BL03、BLB00〜BLB03、BL10〜BL13、BLB10〜BLB13が接続されている。
カラム選択/読み書き回路213は、カラムデコーダ225から入力されるカラム選択データに基づき、ビットラインを選択する。
カラム選択/読み書き回路213は、カラムデコーダ225から入力されるカラム選択データに基づいて、ビットラインBL、BLBの選択、読み出し/書き込みの切り替え、読み出しデータ/書き込みデータの受け渡しを行える回路であればよい。
カラム選択/読み書き回路213は、データの読み出し又は書き込みのために、カラムデコーダ225からカラム選択データが入力されると、ライン番号が同一のビットラインBLとBLBの対を選択する。
また、カラム選択/読み書き回路213には、読み出したデータ又は書き込むデータを入出力ポート(I/O)230(図7参照)との間で伝送するグローバルビットライン214が接続されている。
グローバルビットライン214は、ビットラインBL、BLBを通じて読み出したデータを入出力ポート(I/O)230(図7参照)に伝送するとともに、書き込むデータを入出力ポート(I/O)230からビットラインBL、BLBに伝送する。
また、カラム選択/読み書き回路213のうち、ビットラインの選択を行う回路は、カラムデコーダ225から伝送されるカラム選択データに基づいて、2つのサブアレイ211A、211Bにそれぞれ四対含まれるビットラインBL00、BLB00〜BL03、BLB03、BL10、BLB10〜BL13、BLB13を選択できれば、その形式は問わない。
また、カラム選択/読み書き回路213のうち、読み出しデータ及び書き込みデータの受け渡しを行う回路は、ライトイネーブル信号W/Eの信号レベルに応じたカラム選択データに基づいて読み出し処理と書き込み処理を切り替えることができ、グローバルビットライン214との間でデータの受け渡しができる回路であれば、その形式は問わない。
なお、実際には、図7に示すようにサブブロック210は多数存在するため、カラムデコーダ225によるカラム選択は、すべてのサブブロック210の中から行われる。
次に、図9(A)〜図9(I)を用いて、入力アドレスのデータ構成とデコーダ220の回路構成について説明する。
図9(A)は、実施の形態1のSRAM200の入力アドレスの割当例を示す図である。入力アドレスA[7:0]は8ビットのデータであり、下位ビットから上位ビットにかけて、カラムアドレス(column)、ロウアドレス(row)、パターン選択アドレス(F/S)、サブブロックアドレス(Sub Block)、上下選択アドレス(Top/Bot)を含む。
カラムアドレス(column)にはA[1:0]の2ビット、ロウアドレス(row)にはA[3:2]の2ビット、パターン選択アドレス(F/S)にはA[4]の1ビット、サブブロックアドレス(Sub Block)にはA[6:5]の2ビット、上下選択アドレス(Top/Bot)にはA[7]の1ビットが、それぞれ割り当てられている。
図9(B)は、実施の形態1のSRAM200のロウデコーダ221の回路を示す図である。
ロウデコーダ221は、2入力型のAND(論理積)回路300、301、302、303を含む。AND回路300〜303には、それぞれ、2本の信号線が接続されており、それぞれ、ロウアドレスA[3]、A[2]が入力される。
AND回路300、301、302、303は、それぞれ、ロウ選択データR[0]、R[1]、R[2]、R[3]を出力する。
ロウ選択データR[0]は、図8に示すワードラインWL00及びWL10を選択するためのロウ選択データである。同様に、ロウ選択データR[1]、R[2]、R[3]は、それぞれ、図8に示すワードラインWL01及びWL11、WL02及びWL12、WL03及びWL13を選択するためのロウ選択データである。
AND回路300には、ロウアドレスA[3]及びA[2]がともに否定演算されて入力される。AND回路301には、ロウアドレスA[3]が否定演算されて入力され、ロウアドレスA[2]はそのまま入力される。AND回路302には、ロウアドレスA[3]がそのまま入力され、ロウアドレスA[2]は否定演算されて入力される。AND回路303には、ロウアドレスA[3]及びA[2]がともにそのまま入力される。
ロウデコーダ221は、ロウアドレスA[3]、A[2]が"0"、"0"の場合は、ロウ選択データROW[0]を"1"にし、ロウ選択データROW[1]、ROW[2]、ROW[3]を"0"にする。
ロウデコーダ221は、ロウアドレスA[3]、A[2]が"0"、"1"の場合は、ロウ選択データROW[1]を"1"にし、ロウ選択データROW[0]、ROW[2]、ROW[3]を"0"にする。
ロウデコーダ221は、ロウアドレスA[3]、A[2]が"1"、"0"の場合は、ロウ選択データROW[2]を"1"にし、ロウ選択データROW[0]、ROW[1]、ROW[3]を"0"にする。
ロウデコーダ221は、ロウアドレスA[3]、A[2]が"1"、"1"の場合は、ロウ選択データROW[3]を"1"にし、ロウ選択データROW[0]、ROW[1]、ROW[2]を"0"にする。
次に、図9(C)を用いて、サブブロックデコーダ222の回路について説明する。
図9(C)は、実施の形態1のSRAM200のサブブロックデコーダ222の回路を示す図である。
サブブロックデコーダ222は、ロウデコーダ221と同様に、2入力型のAND(論理積)回路310、311、312、313を含む。AND回路310〜313には、それぞれ、2本の信号線が接続されており、それぞれ、サブブロックアドレスA[6]、A[5]が入力される。
AND回路310、311、312、313は、それぞれ、サブブロック選択データSBS[0]、SBS[1]、SBS[2]、SBS[3]を出力する。
サブブロック選択データSBS[0]は、図7に示すサブブロック番号0のサブブロック210(Sub Block 0)を選択するためのサブブロック選択データである。同様に、サブブロック選択データSBS[1]、SBS[2]、SBS[3]は、それぞれ、図7に示すサブブロック番号1、2、3のサブブロック210(Sub Block 1, Sub Block 2, Sub Block 3)を選択するためのサブブロック選択データである。
AND回路310には、サブブロック選択アドレスA[6]及びA[5]がともに否定演算されて入力される。AND回路311には、サブブロック選択アドレスA[6]が否定演算されて入力され、サブブロック選択アドレスA[5]はそのまま入力される。AND回路312には、サブブロック選択アドレスA[6]がそのまま入力され、サブブロック選択アドレスA[5]は否定演算されて入力される。AND回路313には、サブブロック選択アドレスA[6]及びA[5]がともにそのまま入力される。
サブブロックデコーダ222は、サブブロック選択アドレスA[6]、A[5]が"0"、"0"の場合は、サブブロック選択データSBS[0]を"1"にし、サブブロック選択データSBS[1]、SBS[2]、SBS[3]を"0"にする。
サブブロックデコーダ222は、サブブロック選択アドレスA[6]、A[5]が"0"、"1"の場合は、サブブロック選択データSBS[1]を"1"にし、サブブロック選択データSBS[0]、SBS[2]、SBS[3]を"0"にする。
サブブロックデコーダ222は、サブブロック選択アドレスA[6]、A[5]が"1"、"0"の場合は、サブブロック選択データSBS[2]を"1"にし、サブブロック選択データSBS[0]、SBS[1]、SBS[3]を"0"にする。
サブブロックデコーダ222は、サブブロック選択アドレスA[6]、A[5]が"1"、"1"の場合は、サブブロック選択データSBS[3]を"1"にし、サブブロック選択データSBS[0]、SBS[1]、SBS[2]を"0"にする。
次に、図9(D)を用いて、上下選択デコーダ223の回路について説明する。
図9(D)は、実施の形態1のSRAM200の上下選択デコーダ223の回路を示す図である。
上下選択デコーダ223は、1入力・2出力型の回路を有し、上下選択アドレスA[7]をデコードしてTOPデータとBOTデータを出力する。TOPデータはインバータ320により上下選択アドレスA[7]のデータ値の反転値として出力され、BOTデータは上下選択アドレスA[7]のデータ値のまま出力される。
TOPデータは、上述のように、図7に示す入出力ポート(I/O)230の上側に配列されるサブブロック210のワードラインドライバ212A及び212Bに入力される。
BOTデータは、上述のように、図7に示す入出力ポート(I/O)230の下側に配列されるサブブロック210のワードラインドライバ212A及び212Bに入力される。
TOPデータが"1"でBOTデータが"0"である場合は、入出力ポート(I/O)230の上側に配列されるサブブロック210が選択される場合である。これとは逆に、TOPデータが"0"でBOTデータが"1"である場合は、入出力ポート(I/O)230の下側に配列されるサブブロック210が選択される場合である。
次に、図9(E)を用いて、パターン選択デコーダ224の回路について説明する。
図9(E)は、実施の形態1のSRAM200のパターン選択デコーダ224の回路を示す図である。
パターン選択デコーダ224は、1入力・2出力型の回路を有し、パターン選択アドレスA[4]をデコードして第1パターン選択データFと第2パターン選択データSを出力する。第1パターン選択データFはインバータ330によりパターン選択アドレスA[4]のデータ値の反転値として出力され、第2パターン選択データSはパターン選択アドレスA[4]のデータ値のまま出力される。
第1パターン選択データF及び第2パターン選択データSは、それぞれ、第1パターン又は第2パターンを選択するためのデータであり、カラムデコーダ225に入力される。
第1パターン選択データFが"1"であり、第2パターン選択データSが"0"である場合は、第1パターンを選択することを表す。これとは逆に、第1パターン選択データFが"0"であり、第2パターン選択データSが"1"である場合は、第2パターンを選択することを表す。
次に、図9(F)〜図9(I)を用いて、カラムデコーダ225の回路について説明する。
カラムデコーダ225は、カラムアドレスをデコードし、第1パターン選択データF及び第2パターン選択データSのデータ値と、ライトイネーブル信号W/Eの信号レベルとに応じたカラム選択データを出力する。
図9(F)〜図9(I)は、実施の形態1のSRAM200のカラムデコーダ225に含まれるカラムアドレスをデコードする回路を示す図である。
カラムデコーダ225は、第1パターンによるデータの読み出しを行うためにカラムアドレスをデコードする回路340Rと、第1パターンによるデータの書き込みを行うためにカラムアドレスをデコードする回路340Wとを含む。
また、カラムデコーダ225は、第2パターンによるデータの読み出しを行うためにカラムアドレスをデコードする回路350Rと、第2パターンによるデータの書き込みを行うためにカラムアドレスをデコードする回路350Wとをさらに含む。
図9(F)に示すように、第1パターンによるデータの読み出しを行うためにカラムアドレスをデコードする回路340Rは、4入力型のAND(論理積)回路360R、361R、362R、363Rを含む。AND回路360R〜363Rには、それぞれ、4本の信号線が接続されており、それぞれ、第1パターン選択データF、カラムアドレスA[1]、A[0]、及びライトイネーブル信号W/Eが入力される。
AND回路360R、361R、362R、363Rは、それぞれ、カラム選択データR_COL_SEL_F[0]、R_COL_SEL_F[1]、R_COL_SEL_F[2]、R_COL_SEL_F[3]を出力する。
カラム選択データR_COL_SEL_F[0]は、第1パターンによるデータの読み出しを行うために、図8に示すビットラインBL00及びBLB00と、ビットラインBL10及びBLB10を選択するためのカラム選択データである。
カラム選択データR_COL_SEL_F[1]は、第1パターンによるデータの読み出しを行うために、図8に示すビットラインBL01及びBLB01と、ビットラインBL11及びBLB11を選択するためのカラム選択データである。
カラム選択データR_COL_SEL_F[2]は、第1パターンによるデータの読み出しを行うために、図8に示すビットラインBL02及びBLB02と、ビットラインBL12及びBLB12を選択するためのカラム選択データである。
カラム選択データR_COL_SEL_F[3]は、第1パターンによるデータの読み出しを行うために、図8に示すビットラインBL03及びBLB03と、ビットラインBL13及びBLB13を選択するためのカラム選択データである。
AND回路360Rには、第1パターン選択データF、否定演算されたカラムアドレスA[1]、否定演算されたカラムアドレスA[0]、及び否定演算されたライトイネーブル信号W/Eが入力される。
AND回路361Rには、第1パターン選択データF、否定演算されたカラムアドレスA[1]、カラムアドレスA[0]、及び否定演算されたライトイネーブル信号W/Eが入力される。
AND回路362Rには、第1パターン選択データF、カラムアドレスA[1]、否定演算されたカラムアドレスA[0]、及び否定演算されたライトイネーブル信号W/Eが入力される。
AND回路363Rには、第1パターン選択データF、カラムアドレスA[1]、カラムアドレスA[0]、及び否定演算されたライトイネーブル信号W/Eが入力される。
カラムデコーダ225は、第1パターン選択データFが"1"、カラムアドレスA[1]、A[0]が"0"、"0"、かつ、ライトイネーブル信号W/EがLレベルの場合は、カラム選択データR_COL_SEL_F[0]を"1"にし、カラム選択データR_COL_SEL_F[1]、R_COL_SEL_F[2]、R_COL_SEL_F[3]を"0"にする。
カラムデコーダ225は、第1パターン選択データFが"1"、カラムアドレスA[1]、A[0]が"0"、"1"、かつ、ライトイネーブル信号W/EがLレベルの場合は、カラム選択データR_COL_SEL_F[1]を"1"にし、カラム選択データR_COL_SEL_F[0]、R_COL_SEL_F[2]、R_COL_SEL_F[3]を"0"にする。
カラムデコーダ225は、第1パターン選択データFが"1"、カラムアドレスA[1]、A[0]が"1"、"0"、かつ、ライトイネーブル信号W/EがLレベルの場合は、カラム選択データR_COL_SEL_F[2]を"1"にし、カラム選択データR_COL_SEL_F[0]、R_COL_SEL_F[1]、R_COL_SEL_F[3]を"0"にする。
カラムデコーダ225は、第1パターン選択データFが"1"、カラムアドレスA[1]、A[0]が"1"、"1"、かつ、ライトイネーブル信号W/EがLレベルの場合は、カラム選択データR_COL_SEL_F[3]を"1"にし、カラム選択データR_COL_SEL_F[0]、R_COL_SEL_F[1]、R_COL_SEL_F[2]を"0"にする。
なお、第1パターン選択データFが"0"である場合は、第1パターンによるデータの読み出しを行わない場合であるため、カラム選択データR_COL_SEL_F[0]、R_COL_SEL_F[1]、R_COL_SEL_F[2]、及びR_COL_SEL_F[3]は、すべて"0"になる。
図9(G)に示すように、第1パターンによるデータの書き込みを行うためにカラムアドレスをデコードする回路340Wは、4入力型のAND(論理積)回路360W、361W、362W、363Wを含む。AND回路360W〜363Wには、それぞれ、4本の信号線が接続されており、それぞれ、第1パターン選択データF、カラムアドレスA[1]、A[0]、及びライトイネーブル信号W/Eが入力される。
AND回路360W、361W、362W、363Wは、それぞれ、カラム選択データW_COL_SEL_F[0]、W_COL_SEL_F[1]、W_COL_SEL_F[2]、W_COL_SEL_F[3]を出力する。
カラム選択データW_COL_SEL_F[0]は、第1パターンによるデータの書き込みを行うために、図8に示すビットラインBL00及びBLB00と、ビットラインBL10及びBLB10を選択するためのカラム選択データである。
カラム選択データW_COL_SEL_F[1]は、第1パターンによるデータの書き込みを行うために、図8に示すビットラインBL01及びBLB01と、ビットラインBL11及びBLB11を選択するためのカラム選択データである。
カラム選択データW_COL_SEL_F[2]は、第1パターンによるデータの書き込みを行うために、図8に示すビットラインBL02及びBLB02と、ビットラインBL12及びBLB12を選択するためのカラム選択データである。
カラム選択データW_COL_SEL_F[3]は、第1パターンによるデータの書き込みを行うために、図8に示すビットラインBL03及びBLB03と、ビットラインBL13及びBLB13を選択するためのカラム選択データである。
AND回路360Wには、第1パターン選択データF、否定演算されたカラムアドレスA[1]、否定演算されたカラムアドレスA[0]、及びライトイネーブル信号W/Eが入力される。
AND回路361Wには、第1パターン選択データF、否定演算されたカラムアドレスA[1]、カラムアドレスA[0]、及びライトイネーブル信号W/Eが入力される。
AND回路362Wには、第1パターン選択データF、カラムアドレスA[1]、否定演算されたカラムアドレスA[0]、及びライトイネーブル信号W/Eが入力される。
AND回路363Wには、第1パターン選択データF、カラムアドレスA[1]、カラムアドレスA[0]、及びライトイネーブル信号W/Eが入力される。
カラムデコーダ225は、第1パターン選択データFが"1"、カラムアドレスA[1]、A[0]が"0"、"0"、かつ、ライトイネーブル信号W/EがHレベルの場合は、カラム選択データW_COL_SEL_F[0]を"1"にし、カラム選択データW_COL_SEL_F[1]、W_COL_SEL_F[2]、W_COL_SEL_F[3]を"0"にする。
カラムデコーダ225は、第1パターン選択データFが"1"、カラムアドレスA[1]、A[0]が"0"、"1"、かつ、ライトイネーブル信号W/EがHレベルの場合は、カラム選択データW_COL_SEL_F[1]を"1"にし、カラム選択データW_COL_SEL_F[0]、W_COL_SEL_F[2]、W_COL_SEL_F[3]を"0"にする。
カラムデコーダ225は、第1パターン選択データFが"1"、カラムアドレスA[1]、A[0]が"1"、"0"、かつ、ライトイネーブル信号W/EがHレベルの場合は、カラム選択データW_COL_SEL_F[2]を"1"にし、カラム選択データW_COL_SEL_F[0]、W_COL_SEL_F[1]、W_COL_SEL_F[3]を"0"にする。
カラムデコーダ225は、第1パターン選択データFが"1"、カラムアドレスA[1]、A[0]が"1"、"1"、かつ、ライトイネーブル信号W/EがHレベルの場合は、カラム選択データW_COL_SEL_F[3]を"1"にし、カラム選択データW_COL_SEL_F[0]、W_COL_SEL_F[1]、W_COL_SEL_F[2]を"0"にする。
なお、第1パターン選択データFが"0"である場合は、第1パターンによるデータの書き込みを行わない場合であるため、カラム選択データW_COL_SEL_F[0]、W_COL_SEL_F[1]、W_COL_SEL_F[2]、及びW_COL_SEL_F[3]は、すべて"0"になる。
図9(H)に示すように、第2パターンによるデータの読み出しを行うためにカラムアドレスをデコードする回路350Rは、4入力型のAND(論理積)回路370R、371R、372R、373Rを含む。AND回路370R〜373Rには、それぞれ、4本の信号線が接続されており、それぞれ、第2パターン選択データS、カラムアドレスA[1]、A[0]、及びライトイネーブル信号W/Eが入力される。
AND回路370R、371R、372R、373Rは、それぞれ、カラム選択データR_COL_SEL_S[0]、R_COL_SEL_S[1]、R_COL_SEL_S[2]、R_COL_SEL_S[3]を出力する。
カラム選択データR_COL_SEL_S[0]は、第2パターンによるデータの読み出しを行うために、図8に示すビットラインBL00及びBLB00と、ビットラインBL10及びBLB10を選択するためのカラム選択データである。
カラム選択データR_COL_SEL_S[1]は、第2パターンによるデータの読み出しを行うために、図8に示すビットラインBL01及びBLB01と、ビットラインBL11及びBLB11を選択するためのカラム選択データである。
カラム選択データR_COL_SEL_S[2]は、第2パターンによるデータの読み出しを行うために、図8に示すビットラインBL02及びBLB02と、ビットラインBL12及びBLB12を選択するためのカラム選択データである。
カラム選択データR_COL_SEL_S[3]は、第2パターンによるデータの読み出しを行うために、図8に示すビットラインBL03及びBLB03と、ビットラインBL13及びBLB13を選択するためのカラム選択データである。
AND回路370Rには、第2パターン選択データS、否定演算されたカラムアドレスA[1]、否定演算されたカラムアドレスA[0]、及び否定演算されたライトイネーブル信号W/Eが入力される。
AND回路371Rには、第2パターン選択データS、否定演算されたカラムアドレスA[1]、カラムアドレスA[0]、及び否定演算されたライトイネーブル信号W/Eが入力される。
AND回路372Rには、第2パターン選択データS、カラムアドレスA[1]、否定演算されたカラムアドレスA[0]、及び否定演算されたライトイネーブル信号W/Eが入力される。
AND回路373Rには、第2パターン選択データS、カラムアドレスA[1]、カラムアドレスA[0]、及び否定演算されたライトイネーブル信号W/Eが入力される。
カラムデコーダ225は、第2パターン選択データSが"1"、カラムアドレスA[1]、A[0]が"0"、"0"、かつ、ライトイネーブル信号W/EがLレベルの場合は、カラム選択データR_COL_SEL_S[0]を"1"にし、カラム選択データR_COL_SEL_S[1]、R_COL_SEL_S[2]、R_COL_SEL_S[3]を"0"にする。
カラムデコーダ225は、第2パターン選択データSが"1"、カラムアドレスA[1]、A[0]が"0"、"1"、かつ、ライトイネーブル信号W/EがLレベルの場合は、カラム選択データR_COL_SEL_S[1]を"1"にし、カラム選択データR_COL_SEL_S[0]、R_COL_SEL_S[2]、R_COL_SEL_S[3]を"0"にする。
カラムデコーダ225は、第2パターン選択データSが"1"、カラムアドレスA[1]、A[0]が"1"、"0"、かつ、ライトイネーブル信号W/EがLレベルの場合は、カラム選択データR_COL_SEL_S[2]を"1"にし、カラム選択データR_COL_SEL_S[0]、R_COL_SEL_S[1]、R_COL_SEL_S[3]を"0"にする。
カラムデコーダ225は、第2パターン選択データSが"1"、カラムアドレスA[1]、A[0]が"1"、"1"、かつ、ライトイネーブル信号W/EがLレベルの場合は、カラム選択データR_COL_SEL_S[3]を"1"にし、カラム選択データR_COL_SEL_S[0]、R_COL_SEL_S[1]、R_COL_SEL_S[2]を"0"にする。
なお、第2パターン選択データSが"0"である場合は、第2パターンによるデータの読み出しを行わない場合であるため、カラム選択データR_COL_SEL_S[0]、R_COL_SEL_S[1]、R_COL_SEL_S[2]、及びR_COL_SEL_S[3]は、すべて"0"になる。
図9(I)に示すように、第2パターンによるデータの書き込みを行うためにカラムアドレスをデコードする回路350Wは、4入力型のAND(論理積)回路370W、371W、372W、373Wを含む。AND回路370W〜373Wには、それぞれ、4本の信号線が接続されており、それぞれ、第2パターン選択データS、カラムアドレスA[1]、A[0]、及びライトイネーブル信号W/Eが入力される。
AND回路370W、371W、372W、373Wは、それぞれ、カラム選択データW_COL_SEL_S[0]、W_COL_SEL_S[1]、W_COL_SEL_S[2]、W_COL_SEL_S[3]を出力する。
カラム選択データW_COL_SEL_S[0]は、第2パターンによるデータの書き込みを行うために、図8に示すビットラインBL00及びBLB00と、ビットラインBL10及びBLB10を選択するためのカラム選択データである。
カラム選択データW_COL_SEL_S[1]は、第2パターンによるデータの書き込みを行うために、図8に示すビットラインBL01及びBLB01と、ビットラインBL11及びBLB11を選択するためのカラム選択データである。
カラム選択データW_COL_SEL_S[2]は、第2パターンによるデータの書き込みを行うために、図8に示すビットラインBL02及びBLB02と、ビットラインBL12及びBLB12を選択するためのカラム選択データである。
カラム選択データW_COL_SEL_S[3]は、第2パターンによるデータの書き込みを行うために、図8に示すビットラインBL03及びBLB03と、ビットラインBL13及びBLB13を選択するためのカラム選択データである。
AND回路370Wには、第2パターン選択データS、否定演算されたカラムアドレスA[1]、否定演算されたカラムアドレスA[0]、及びライトイネーブル信号W/Eが入力される。
AND回路371Wには、第2パターン選択データS、否定演算されたカラムアドレスA[1]、カラムアドレスA[0]、及びライトイネーブル信号W/Eが入力される。
AND回路372Wには、第2パターン選択データS、カラムアドレスA[1]、否定演算されたカラムアドレスA[0]、及びライトイネーブル信号W/Eが入力される。
AND回路373Wには、第2パターン選択データS、カラムアドレスA[1]、カラムアドレスA[0]、及びライトイネーブル信号W/Eが入力される。
カラムデコーダ225は、第2パターン選択データSが"1"、カラムアドレスA[1]、A[0]が"0"、"0"、かつ、ライトイネーブル信号W/EがHレベルの場合は、カラム選択データW_COL_SEL_S[0]を"1"にし、カラム選択データW_COL_SEL_S[1]、W_COL_SEL_S[2]、W_COL_SEL_S[3]を"0"にする。
カラムデコーダ225は、第2パターン選択データSが"1"、カラムアドレスA[1]、A[0]が"0"、"1"、かつ、ライトイネーブル信号W/EがHレベルの場合は、カラム選択データW_COL_SEL_S[1]を"1"にし、カラム選択データW_COL_SEL_S[0]、W_COL_SEL_S[2]、W_COL_SEL_S[3]を"0"にする。
カラムデコーダ225は、第2パターン選択データSが"1"、カラムアドレスA[1]、A[0]が"1"、"0"、かつ、ライトイネーブル信号W/EがHレベルの場合は、カラム選択データW_COL_SEL_S[2]を"1"にし、カラム選択データW_COL_SEL_S[0]、W_COL_SEL_S[1]、W_COL_SEL_S[3]を"0"にする。
カラムデコーダ225は、第2パターン選択データSが"1"、カラムアドレスA[1]、A[0]が"1"、"1"、かつ、ライトイネーブル信号W/EがHレベルの場合は、カラム選択データW_COL_SEL_S[3]を"1"にし、カラム選択データW_COL_SEL_S[0]、W_COL_SEL_S[1]、W_COL_SEL_S[2]を"0"にする。
なお、第2パターン選択データSが"0"である場合は、第2パターンによるデータの書き込みを行わない場合であるため、カラム選択データW_COL_SEL_S[0]、W_COL_SEL_S[1]、W_COL_SEL_S[2]、及びW_COL_SEL_S[3]は、すべて"0"になる。
次に、図10を用いて、カラム選択データR_COL_SEL_F[3:0]、R_COL_SEL_S[3:0]、W_COL_SEL_F[3:0]、及びW_COL_SEL_S[3:0]と、ビットの選択の仕方について説明する。
図10は、実施の形態1のSRAM200のカラム選択/読み書き回路213と、カラム選択データを伝送する信号線との接続関係を示す図である。
図10には、サブアレイ211A及び211BのビットD[n]内の4つのカラムをC[0]、C[1]、C[2]、C[3]と表す。また、ビットD[n]に隣接するビットD[n−1]のカラムC[3]と、ビットD[n+1]のカラムC[0]とを示す。
サブアレイ211A内のカラムC[0]〜C[3]には、それぞれ、ビットラインBL00、BLB00〜BL03、BLB03が含まれる。
また、サブアレイ211B内のカラムC[0]〜C[3]には、それぞれ、ビットラインBL10、BLB10〜BL13、BLB13が含まれる。
また、サブアレイ211A内には、4本のワードラインWL00〜WL03が配列され、サブアレイ211B内には、4本のワードラインWL10〜WL13が配列される。
ビットラインBL00、BLB00〜BL03、BLB03、BL10、BLB10〜BL13、BLB13と、ワードラインWL00〜WL03、WL10〜WL13との交点には、ビットセル10が1つずつ配置される。図10には、全部で48個のビットセルを示す。
また、カラム選択/読み書き回路213は、カラム毎に設けられている。
ここで、ビットD[n]は奇数ビットであり、ビットD[n−1]、D[n+1]は偶数ビットであるとする。
上述のように、第1パターンは、サブアレイ211A内の奇数番目のビットとサブアレイ211Bの偶数番目のビットとに含まれる同一アドレスの複数のビットセル10に対してデータの読み出し又は書き込みを行うパターンである。
また、第2パターンは、サブアレイ211A内の偶数番目のビットとサブアレイ211Bの奇数番目のビットとに含まれる同一アドレスの複数のビットセル10に対してデータの読み出し又は書き込みを行うパターンである。
また、カラム選択データは、R_COL_SEL_F[3:0]、R_COL_SEL_S[3:0]、W_COL_SEL_F[3:0]、及びW_COL_SEL_S[3:0]の4種類ある。
カラム選択/読み書き回路213は、第1パターン又は第2パターンによるデータの読み出し又は書き込みを実現するために、ビット毎に、4種類のカラム選択データの入力先を上側(Upper)又は下側(Lower)のビットのいずれかに振り分けている。
ここで、サブブロック210内の上側のサブアレイ211Aのビットをデータの読み出し用に選択するカラム選択データをR_COL_SEL_Uと表す。
また、サブブロック210内の下側のサブアレイ211Bのビットをデータの読み出し用に選択するカラム選択データをR_COL_SEL_Lと表す。
同様に、サブブロック210内の上側のサブアレイ211Aのビットをデータの書き込み用に選択するカラム選択データをW_COL_SEL_Uと表す。
また、サブブロック210内の下側のサブアレイ211Bのビットをデータの書き込み用に選択するカラム選択データをW_COL_SEL_Lと表す。
第1パターンで用いるカラム選択データR_COL_SEL_F[3:0]及びW_COL_SEL_F[3:0]は、奇数ビットD[n]には、R_COL_SEL_U及びW_COL_SEL_Uとして入力される。
また、第1パターンで用いるカラム選択データR_COL_SEL_F[3:0]及びW_COL_SEL_F[3:0]は、偶数ビットD[n−1]及びD[n+1]には、R_COL_SEL_L及びW_COL_SEL_Lとして入力される。
これとは逆に、第2パターンで用いるカラム選択データR_COL_SEL_S[3:0]及びW_COL_SEL_S[3:0]は、偶数ビットD[n−1]及びD[n+1]には、R_COL_SEL_U及びW_COL_SEL_Uとして入力される。
また、第2パターンで用いるカラム選択データR_COL_SEL_S[3:0]及びW_COL_SEL_S[3:0]は、奇数ビットD[n]には、R_COL_SEL_L及びW_COL_SEL_Lとして入力される。
以上のように、第1パターン及び第2パターンによるデータの読み出し又は書き込みを行うためのカラム選択データを、上述のように奇数ビットと偶数ビットで振り分けることにより、同一アドレスのビットは次のように配置されることになる。
例えば、データの読み出しを行うために、ロウ選択データROW[2]が"1"で、カラム選択データR_COL_SEL_F[0] が"1"であるとする。これは第1パターンで読み出しを行う場合に相当する。
この場合、奇数ビットD[n]では、ワードラインWL02と、カラムC[0]の交点に位置するビットセル10Eが選択され、偶数ビットD[n+1]では、ワードラインWL12とカラムC[0]との交点に位置するビットセル10Fが選択される。
すなわち、隣り合うビットについては、異なるサブアレイ(211A、211B)内のビットセルが同一アドレスになっている。この関係は、すべてのビット内で、ワードラインWL00〜03及びWL10〜13と、カラムC[0]〜C[3]とによって特定されるアドレスについて同様である。
実施の形態1のSRAM200では、第1パターン及び第2パターンによるデータの読み出し又は書き込みを行うためのカラム選択データを、上述のように奇数ビットと偶数ビットで振り分けることにより、隣接するビット間における同一アドレスのビットセルを千鳥状に配列させている。
次に、図11を用いて、カラム選択/読み書き回路213について説明する。
図11は、実施の形態1のSRAM100のカラム選択/読み書き回路213の回路を示す図である。
カラム選択/読み書き回路213は、各サブブロック210に1つずつ設けられており、各サブブロック210内の2つのサブアレイ211A、211BのビットラインBL、BLBに接続されている。
ここでは、サブブロック210内の上側のサブアレイ211Aに接続されるビットラインをBLU、BLBU(添え字UはUpperの略)と表し、下側のサブアレイ211Bに接続されるビットラインをBLL、BLBL(添え字LはLowerの略)と表す。
ビットラインをBLU、BLBUは、例えば、図10に示すビットラインをBL00、BLB00〜BL03、BL03に相当し、ビットラインをBLL、BLBLは、例えば、図10に示すビットラインをBL10、BLB10〜BL13、BL13に相当する。
また、カラム選択データR_COL_SEL_U、R_COL_SEL_L、W_COL_SEL_U、及びW_COL_SEL_Lは、図10に示すように、カラム選択/読み書き回路213に入力される。
図11に示すように、カラム選択/読み書き回路213は、NMOSトランジスタ381、382、383、384、及びインバータ385を含む。
NMOSトランジスタ381及び382は、ゲートにカラム選択データW_COL_SEL_Uが入力され、NMOSトランジスタ383及び384は、ゲートにカラム選択データW_COL_SEL_Lが入力される。
NMOSトランジスタ381は、ドレインが上側のビットラインBLBUに接続されるとともに、ソースがNMOSトランジスタ383のドレインに接続されている。
NMOSトランジスタ383は、ソースが下側のビットラインBLBLに接続されるとともに、ドレインがNMOSトランジスタ381のソースに接続されている。
同様に、NMOSトランジスタ382は、ドレインが上側のビットラインBLUに接続されるとともに、ソースがNMOSトランジスタ384のドレインに接続されている。
NMOSトランジスタ384は、ソースが下側のビットラインBLLに接続されるとともに、ドレインがNMOSトランジスタ382のソースに接続されている。
NMOSトランジスタ381のソースとNMOSトランジスタ383のドレインの接続点は、データ書き込み用のグローバルビットライン214Wに接続されている。
また、NMOSトランジスタ381のソースとNMOSトランジスタ383のドレインの接続点にはインバータ385の入力端子が接続され、NMOSトランジスタ382のソースとNMOSトランジスタ384のドレインの接続点には、インバータ385の出力端子が接続されている。
NOR(否定論理和)回路386の一対の入力端子には、それぞれ、カラム選択データR_COL_SEL_U、R_COL_SEL_Lが入力される。
NOR回路386の一対の入力端子のうち、カラム選択データR_COL_SEL_Uが入力される方の入力端子は、インバータ387の入力端子に接続されている。
インバータ387の出力端子は、PMOSトランジスタ388のゲートに接続されている。
PMOSトランジスタ388のドレインは、所定電圧(Vdd)の電源に接続され、ソースはPMOSトランジスタ389のドレインに接続されている。
PMOSトランジスタ389のゲートは、上側のビットラインBLUに接続され、ソースはPMOSトランジスタ390のドレインに接続されている。
PMOSトランジスタ390のゲートは、下側のビットラインBLLに接続され、ソースはPMOSトランジスタ391のソースに接続されている。
PMOSトランジスタ391のドレインは、所定電圧(Vdd)の電源に接続され、ゲートはインバータ392の出力端子に接続されている。
インバータ392の入力端子は、NOR回路386の他方の入力端子に接続されている。
PMOSトランジスタ389のソースと、PMOSトランジスタ390のドレインとの接続点は、NMOSトランジスタ393のドレインに接続されるとともに、NMOSトランジスタ394のゲートに接続されている。
NMOSトランジスタ393のソースは接地され、ゲートはNOR回路386の出力端子に接続されている。
NMOSトランジスタ394のドレインは、データ読み出し用のグローバルビットライン214Rに接続され、ソースは接地されている。
以上のようなカラム選択/読み書き回路213において、上側のビットにデータを書き込む際には、カラム選択データW_COL_SEL_Uが"1"になる。
このとき、NMOSトランジスタ381、382がオンになり、データ書き込み用のグローバルビットライン214Wと上側のビットラインBLU、BLBUが接続される。この結果、データ書き込み用のグローバルビットライン214Wから上側のビットラインBLU、BLBUを経て、上側のビットにデータを書き込むことができる。
また、下側のビットにデータを書き込む際には、カラム選択データW_COL_SEL_Lが"1"になる。
このとき、NMOSトランジスタ383、384がオンになり、データ書き込み用のグローバルビットライン214Wと下側のビットラインBLL、BLBLが接続される。この結果、データ書き込み用のグローバルビットライン214Wから下側のビットラインBLL、BLBLを経て、下側のビットにデータを書き込むことができる。
また、上側のビットのデータを読み出す際には、カラム選択データR_COL_SEL_Uが"1"になる。
このとき、PMOSトランジスタ388がオンになり、NOR回路386の出力は"0"になる。また、カラム選択データR_COL_SEL_Uが"1"のときには、カラム選択データW_COL_SEL_Uは"0"であるため、NMOSトランジスタ382はオフであり、この結果、PMOSトランジスタ389はオンになる。
また、NOR回路386の出力が"0"であることから、NMOSトランジスタ393はオフであり、NMOSトランジスタ394はオンになる。
この結果、上側のビットラインBLUとデータ読み出し用のグローバルビットライン214Rが接続され、上側のビットのデータをデータ読み出し用のグローバルビットライン214Rを経て読み出すことができる。
なお、カラム選択/読み書き回路213の上下の対称性から、下側のビットのデータを読み出す際の動作は次の通りである。
下側のビットのデータを読み出す際に、カラム選択データR_COL_SEL_Lが"1"になると、下側のビットラインBLLとデータ読み出し用のグローバルビットライン214Rが接続され、下側のビットのデータをデータ読み出し用のグローバルビットライン214Rを経て読み出すことができる。
以上のように、カラム選択/読み書き回路213によれば、上側又は下側のビットに対して、データの読み出し又は書き込みを自在に行うことができる。
なお、図11には1カラムに対して配設されるカラム選択/読み書き回路213と、データ読み出し用のグローバルビットライン214R、及び、データ書き込み用のグローバルビットライン214Wとの関係を示している。
しかしながら、実際には、実施の形態1では、一対のグローバルビットライン214R、214Wに対して、4つ(4カラム分)のカラム選択/読み書き回路213が接続される。
図11には示さない他の3カラム分のカラム選択/読み書き回路213は、すべて図11に示すカラム選択/読み書き回路213と同様の回路構成を有する。
図11には示さない他の3カラム分のカラム選択/読み書き回路213は、NMOSトランジスタ381〜384及びインバータ385を介して、データ書き込み用のグローバルビットライン214Wに接続される。
4つのカラム選択/読み書き回路213のうちのいずれか1つのカラム選択/読み書き回路213内のNMOSトランジスタ381〜384をオンにすることにより、4つのうちのいずれか1つのカラム選択/読み書き回路213がデータ書き込み用のグローバルビットライン214Wに接続される。
同様に、 図11には示さない他の3カラム分のカラム選択/読み書き回路213は、NMOSトランジスタ394を介して、データ読み出し用のグローバルビットライン214Rに接続される。
4つのカラム選択/読み書き回路213のうちのいずれか1つのカラム選択/読み書き回路213内のNMOSトランジスタ394をオンにすることにより、4つのうちのいずれか1つのカラム選択/読み書き回路213がデータ読み出し用のグローバルビットライン214Rに接続される。
このように、NMOSトランジスタ381〜384及びNMOSトランジスタ394は、4つのカラム選択/読み書き回路213のうちのいずれか1つをデータ書き込み用のグローバルビットライン214W及びデータ読み出し用のグローバルビットライン214Rに接続する切替回路215A、215B(図7参照)である。
次に、図12を用いて、第1パターン又は第2パターンによってビットを千鳥状に選択する方法について説明する。
図12は、実施の形態1のSRAM200における第1パターンと第2パターンによるビットの選択の仕方を示す図である。
図12の右側には、入出力ポート(I/O)230Aの上側にあるサブブロック番号3のサブブロック210を拡大して示す。
ここでは、サブアレイ211Aとサブアレイ211Bが4つのビットD[0]、D[1]、D[2]、D[3]を含み、サブアレイ211Aと211Bとの間に、カラム選択/読み書き回路213があるものとして説明を行う。
図12に示す8つのビットは、それぞれ、4ロウ×4カラムの16個のビットセルを含む。図12では、説明の便宜上、ビットセルを正方形の升目で示す。
各ビットD[0]、D[1]、D[2]、D[3]に含まれる4つのカラムをC[0]、C[1]、C[2]、C[3]と表す。サブアレイ211A内のカラムC[0]〜C[3]には、それぞれ、ビットラインBL00、BLB00〜BL03、BLB03が含まれる。
また、図12には、説明の便宜上、ワードラインそのものを図示せず、符号WL00〜WL03、WL10〜WL13のみを示す。
ここで、第1パターンは、サブアレイ211A内の奇数番目のビットとサブアレイ211Bの偶数番目のビットとに含まれる同一アドレスの複数のビットセル10に対してデータの読み出し又は書き込みを行うパターンである。
このため、第1パターンでは、図12に白く示すように、サブアレイ211A及び211B内から、ビットを1つ飛ばしで千鳥状に選択することになる。
また、第2パターンは、サブアレイ211A内の偶数番目のビットとサブアレイ211Bの奇数番目のビットとに含まれる同一アドレスの複数のビットセル10に対してデータの読み出し又は書き込みを行うパターンである。
このため、第2パターンでは、図12にグレーで示すように、サブアレイ211A及び211B内から、ビットを1つ飛ばしで千鳥状に選択することになる。
ここで、例えば、次の(1)〜(5)の条件によってデータを読み出す場合を考える。
(1)ロウデコーダ221から出力されるロウ選択データROW[0]が"1"であり、ロウ選択データROW[1]、ROW[2]、及びROW[3]は、すべて"0"である。
(2)サブブロックデコーダ222から出力されるサブブロック選択データSBS[3]が"1"であり、サブブロック選択データSBS[0]、SBS[1]、及びSBS[2]がすべて"0"である。
(3)上下選択デコーダ223から出力されるデータがTOPデータである。
(4)パターン選択デコーダ224から出力される第1パターン選択データFが"1"であり、第2パターン選択データSが"0"である。
(5)カラムデコーダ225から出力されるカラム選択データR_COL_SEL_F[0]が"1"であり、カラム選択データR_COL_SEL_F[1]、R_COL_SEL_F[2]、及びR_COL_SEL_F[3]がすべて"0"である。なお、カラム選択データR_COL_SEL_S[3:0]、W_COL_SEL_F[3:0]、及びW_COL_SEL_S[3:0]は、すべて"0"である。
上述の(1)〜(5)の条件は、第1パターンでデータを読み出す場合である。
この場合に、サブアレイ211A内で選択されるビットセルは、図12に矢印で示すように、奇数ビットD[1]及びD[3]の内部のカラムC[0]とワードラインWL00の交点にある2つのビットセルである。
また、この場合に、サブアレイ211B内で選択されるビットセルは、図12に矢印で示すように、偶数ビットD[0]及びD[2]の内部のカラムC[0]とワードラインWL10の交点にある2つのビットセルである。
これら4つのビットセルは、第1パターンによって特定される同一アドレスのビットであり、図12に白く示すように、千鳥状に配列された4つのビット内に1つずつ含まれる。
次に、図13のタイミングチャートを用いて、実施の形態1のSRAM200において、図12を用いて説明した4つのビットセルから第1パターンによってデータを読み出す際の動作について説明する。
図13は、実施の形態1のSRAM200の動作例を示すタイミングチャートである。
図12において説明した4つのビットセルは、奇数ビットD[1]及びD[3]についてはカラムC[0]とワードラインWL00によって特定され、偶数ビットD[0]及びD[2]についてはカラムC[0]とワードラインWL10によって特定される。ワードラインWL00とWL10は、ロウ選択データROW[0]によって特定される。
このため、図13には、システムクロックCLK(Clock)、読み出し用の入力アドレスRA(Read Address)、ロウ選択データROW[0]〜ROW[3]、サブブロック選択データSBS、及びワードラインWL00〜WL03、WL10〜WL13の信号レベルを示す。
また、図13には、さらに、ビットD[1]及びD[3]のビットラインBL00の信号レベル、ビットD[0]及びD[2]のビットラインBL10の信号レベル、カラム選択データR_COL_SEL_F[0]、及び読み出しデータRD(Read Data)を示す。
なお、システムクロックCLKは、タイマ240(図7参照)から出力される。
時刻t1のシステムクロックCLKの立ち上がりで読み出し用の入力アドレスがRA1に切り替わると、時刻t2でロウ選択データROW[0]とサブブロック選択データSBSが立ち上がる。
ロウ選択データROW[0]とサブブロック選択データSBSの立ち上がりにより、時刻t3では、ワードラインWL00及びWL10が選択される。
また、読み出し用の入力アドレスがRA1は第1パターンによるデータの読み出しを指定するため、時刻t3でカラム選択データR_COL_SEL_F[0]が"1"に立ち上がる。
この結果、時刻t3の後に、奇数ビットD[1]及びD[3]の内部のカラムC[0]とワードラインWL00の交点にある2つのビットセルと、偶数ビットD[0]及びD[2]の内部のカラムC[0]とワードラインWL10の交点にある2つのビットセルとの合計4つのビットセルのデータが読み出される。
奇数ビットD[1]及びD[3]の内部のカラムC[0]とワードラインWL00の交点にある2つのビットセルのデータは、それぞれ、ビットD[1]及びD[3]のビットラインBL00を通じて読み出される。
同様に、偶数ビットD[0]及びD[2]の内部のカラムC[0]とワードラインWL10の交点にある2つのビットセルのデータは、それぞれ、ビットD[0]及びD[2]のビットラインBL10を通じて読み出される。
この結果、時刻t4で読み出しデータがRD1になる。
次に、図14及び図15を用いて、第1パターン及び第2パターンによってビットセルを選択する際の動作例について説明する。
図14及び図15は、実施の形態1のSRAM200において、第1パターン及び第2パターンによってデータの読み出しを行うためにビットセルを選択する際の動作例を示す図である。
図14及び図15には、サブアレイ211A及び211Bに含まれるビットD[0]、D[1]、D[2]、D[3]と、ワードラインWL00〜WL03とWL10〜WL13を示す。また、各ビット内には、カラムC[0]〜C[3]を示す。
図14及び図15では、データの読み出しの際に、第1パターンによって選択されるサブアレイ211A内の奇数ビットとサブアレイ211B内の偶数ビットを白抜きで示す。
同様に、第2パターンによって選択されるサブアレイ211A内の偶数ビットとサブアレイ211B内の奇数ビットをグレーで示す。
図14では、ロウ選択データROW[2]が"1"であり、ロウ選択データROW[0]、ROW[1]、及びROW[3]は、すべて"0"である。
また、カラム選択データR_COL_SEL_F[2]が"1"であり、カラム選択データR_COL_SEL_F[0]、R_COL_SEL_F[1]、及びR_COL_SEL_F[3]はすべて"0"である。
このような場合、データが読み出されるのは、奇数ビットD[1]及びD[3]内ではカラムC[2]とワードラインWL02との交点に位置するビットセルであり、偶数ビットD[0]及びD[2]内ではカラムC[2]とワードラインWL12との交点に位置するビットセルである。
これら4つのビットセルは、すべて同一アドレスである。
以上、実施の形態1のSRAM200は同一アドレスのビットセルを、隣接ビットについて異なるサブアレイ(211A、211B)に配置してあるため、第1パターンでデータを読み出す際には、奇数ビットについてはサブアレイ211Aからデータを読み出し、偶数ビットについてはサブアレイ211Bからデータを読み出すことになる。
図15は、ロウ選択データROW[0]が"1"であり、ロウ選択データROW[1]、ROW[2]、及びROW[3]は、すべて"0"である。
また、カラム選択データR_COL_SEL_S[1]が"1"であり、カラム選択データR_COL_SEL_S[0]、R_COL_SEL_S[2]、及びR_COL_SEL_S[3]はすべて"0"である。
このような場合、データが読み出されるのは、奇数ビットD[1]及びD[3]内ではカラムC[1]とワードラインWL10との交点に位置するビットセルであり、偶数ビットD[0]及びD[2]内ではカラムC[1]とワードラインWL00との交点に位置するビットセルである。
これら4つのビットセルは、すべて同一アドレスである。
以上、実施の形態1のSRAM200は同一アドレスのビットセルを、隣接ビットについて異なるサブアレイ(211A、211B)に配置してあるため、第2パターンでデータを読み出す際には、奇数ビットについてはサブアレイ211Bからデータを読み出し、偶数ビットについてはサブアレイ211Aからデータを読み出すことになる。
以上のように、実施の形態1のSRAM200では、同一アドレスの複数のビットセルを、隣接ビットについて異なるサブアレイ内に配置している。すなわち、同一アドレスの複数のビットセルは、隣接ビットについて、1つのサブブロック210内の一対のサブアレイ211A及び211B内で、千鳥状に分散させてある。
同一アドレスのビットセルを千鳥状に分散させることは、上述のように、同一アドレスのビットセルを含む奇数ビットと偶数ビットとを、互いに異なるサブアレイ211A、211B内に配列させることによって実現されている。
このため、比較例のSRAM30(図4参照)と同様に1ビットが4カラムを含む構成であっても、α線又は中性子線の入射によるデータ破壊が生じても、1ビットが8カラムを含む他の比較例のSRAM30A(図5参照)と同等の耐性を発揮することができる。
一方、他の比較例のSRAM30A(図5参照)とは異なり、1ビットのカラム数は4カラムで済むため、アスペクト比の変化(横長化)及びワードラインの長大化による動作速度の低下を抑制することができる。
以上、実施の形態1によれば、アスペクト比の変更、動作速度の低下を抑制しつつ、複数ビットにわたるデータ破壊の発生を抑制した半導体記憶装置及び半導体記憶装置の制御方法を提供することができる。
実施の形態1のSRAM200は、従来のSRAMにおける2ビット以上のデータ破壊に相当するデータ破壊が生じても、ビットセルの配置を上述のように物理的に変更することにより、データの破壊を抑制することができる。
なお、図14及び図15では、データの読み出しを行う場合について説明したが、データの書き込みを行う場合は、カラム選択データがR_COL_SEL_F又はR_COL_SEL_Sから、W_COL_SEL_F又はW_COL_SEL_Sに変わるだけで、ビットセルの選択の仕方は同様である。
<実施の形態2>
図16は、実施の形態2のSRAM400を示す図である。
実施の形態2のSRAM400は、同一アドレスの複数のビットセルを、隣接ビットについて、互いに異なるサブバンク450U、450L内のサブブロック番号が同一のサブブロック内で、千鳥状に分散させてある点が実施の形態1のSRAM200と異なる。
以下、実施の形態1と同一又は同等の構成要素には同一符号を付し、その説明を省略する。
図16に示すSRAM400は、サブブロック210、デコーダ420、入出力ポート430A、430B、及びタイマ240を含む。
サブブロック210は、実施の形態1と同様に、入出力ポート430A、430Bの上下にそれぞれ4段配列されている。すなわち、図16には、16個のサブブロック210を示す。
サブブロック番号は、入出力ポート430A、430Bの上下において、入出力ポート430A、430Bに近い側から遠い側にかけて、0、1、2、3と割り振られている。これは、実施の形態1と同様である。
ここで、入出力ポート430A及び430Bの上側に4段ずつある8個のサブブロック210の集合をサブバンク450U(Upper)と称し、入出力ポート430A及び430Bの下側に4段ずつある8個のサブブロック210の集合をサブバンク450L(Lower)と称す。
各サブブロック210は、実施の形態1と同様に、サブアレイ211A、211B、及びカラム選択/読み書き回路413を含む。サブアレイ211Aは、カラム選択/読み書き回路413の上側に位置し、サブアレイ211Bは、カラム選択/読み書き回路413の下側に位置する。
ここで、図16に示すサブアレイ211A、211Bは、ビットD[n−3]からD[n]の部分である。各サブアレイ211A、211B内の各ビットは、4ロウ×4カラムの16個のビットセルを含むが、紙面の都合上、図16には各ビットのサブアレイ211A、211Bについて、2ロウ×4カラム分のビットセルを升目で示す。
なお、図16の入出力ポート430Aの内部には、データの読み出しを模式的に表すために切替回路215を示す。切替回路215については図17を用いて説明する。
また、図16に示すサブブロック210及びサブアレイ211A、211B等の位置関係は、サブブロック210及びサブアレイ211A、211B等の階層を表しており、本明細書中における「上」又は「下」なる文言は、物理的な上下関係を表すものではない。
図17は、実施の形態2のSRAM400の切替回路215を示す図である。
図17に示すように、切替回路215には、後述するパターン選択デコーダ423(図18参照)から第1パターン選択データF及び第2パターン選択データSが入力される。
図17に示すように、切替回路215は、隣同士で第1パターン選択データF及び第2パターン選択データSが千鳥状に入力されるように接続されている。
図17に示す4つの切替回路215は、第1パターン選択データF及び第2パターン選択データSに応じて、隣接するビットについて、サブバンク450U又はサブバンク450Lから選択したビットセル10に対してデータの読み出し又は書き込みを行う。
次に、図18を用いて、実施の形態2のSRAM400の回路構成について説明する。
図18は、実施の形態2のSRAM400の一部分を示す図である。
図18には、入出力ポート(I/O)430A、入出力ポート(I/O)430Aの上下に位置する2つのサブブロック番号0のサブブロック210のうちのビットD[n]の部分、2つのカラム選択/読み書き回路413、グローバルビットライン214、デコーダ420、及び二対のワードラインドライバ412A、412Bを示す。
SRAM400は、プロセッサコア111(図6参照)から入力される読み出し命令と書き込み命令に従って、データの読み出しと書き込みを行う。
説明の便宜上、図18にはビットセル10を示さないが、サブアレイ211A、211Bは、それぞれ、アレイ状に配列された複数のビットセルを含む。
実施の形態2では、各サブブロック210に含まれるサブアレイ211A及び211Bにサブアレイ番号を付す。サブアレイ211A及び211Bは、入出力ポート(I/O)430A及び430Bの上側にそれぞれ8段配列され、入出力ポート(I/O)430A及び430Bの下側にそれぞれ8段配列される。
サブアレイ番号は、入出力ポート(I/O)430Aの上側の8段のサブアレイ211A及び211Bに対して、入出力ポート(I/O)430Aに近い方から入出力ポート(I/O)430Aから離れている方にかけて、0〜7である。これは、入出力ポート(I/O)430Bの上側の8段のサブアレイ211A及び211Bについても同様である。
図18には、説明の便宜上、入出力ポート(I/O)430Aの上側については、サブブロック番号0のサブブロック210に含まれるサブアレイ番号0と1のサブアレイ211A及び211Bだけを示す。また、入出力ポート(I/O)430Aの下側についても、サブブロック番号0のサブブロック210に含まれるサブアレイ番号0と1のサブアレイ211A及び211Bだけを示す。
図18に示さないサブブロック210内のサブアレイのサブアレイ番号については、次の通りである。
図16に示す入出力ポート(I/O)430Aの上側のサブブロック番号1のサブブロック210は、サブアレイ番号2のサブアレイ211Bと、サブアレイ番号3のサブアレイ211Aを含む。同様に、入出力ポート(I/O)430Aの上側のサブブロック番号2のサブブロック210は、サブアレイ番号4のサブアレイ211Bと、サブアレイ番号5のサブアレイ211Aを含む。入出力ポート(I/O)430Aの上側のサブブロック番号4のサブブロック210は、サブアレイ番号6のサブアレイ211Bと、サブアレイ番号7のサブアレイ211Aを含む。
また、図16に示す入出力ポート(I/O)430Aの下側のサブブロック番号1のサブブロック210は、サブアレイ番号2のサブアレイ211Aと、サブアレイ番号3のサブアレイ211Bを含む。同様に、入出力ポート(I/O)430Aの下側のサブブロック番号2のサブブロック210は、サブアレイ番号4のサブアレイ211Aと、サブアレイ番号5のサブアレイ211Bを含む。入出力ポート(I/O)430Aの下側のサブブロック番号4のサブブロック210は、サブアレイ番号6のサブアレイ211Aと、サブアレイ番号7のサブアレイ211Bを含む。
これは、入出力ポート(I/O)430Bの上下のサブブロック210及びサブアレイ211A、211Bについても同様である。
ワードラインドライバ412A及び412Bは、それぞれ、各サブアレイ211A及び211Bのワードラインに接続される。図18には、説明の便宜上、ワードラインの番号を示さないが、ワードラインの番号の振り方は、実施の形態1のSRAM200と同様である。
デコーダ420は、ロウデコーダ421、サブアレイデコーダ422、パターン選択デコーダ423、及びカラムデコーダ424を含む。デコーダ420には、入力アドレスが入力される。また、カラムデコーダには、ライトイネーブル信号W/Eが入力される。
なお、ロウデコーダ421、サブアレイデコーダ422、パターン選択デコーダ423、及びカラムデコーダ424は、SRAM400全体に対して、一つずつ配設される。
ロウデコーダ421及びサブアレイデコーダ422は、信号線を介して、ワードラインドライバ412A、412Bに接続されている。実際には、サブブロック210は階層化されているため(図7参照)、ロウデコーダ421及びサブアレイデコーダ422は、すべてのサブブロック210のワードラインドライバ412A、412Bに接続されている。
次に、ロウデコーダ421によるロウ選択、サブアレイデコーダ422によるサブアレイ選択、パターン選択デコーダ423による第1パターン又は第2パターンの選択、カラムデコーダ424によるカラム選択について説明する。
ロウデコーダ421は、信号線を介して、ワードラインドライバ412A、412Bに接続されており、読み出し命令又は書き込み命令の入力アドレスに含まれるロウアドレスをデコードしてロウ選択データROW[3:0]を出力する。ロウ選択データROW[3:0]は、ワードラインドライバ412A、412Bに入力される。ロウデコーダ421は実施の形態1のロウデコーダ221と同様のデコーダであり、ロウデコーダ421が出力するロウ選択データROW[3:0]も実施の形態1のロウデコーダ221が出力するロウ選択データROW[3:0]と同様である。
サブアレイデコーダ422は、信号線を介して、ワードラインドライバ412A、412Bに接続されており、読み出し命令又は書き込み命令の入力アドレスに含まれるサブアレイアドレスをデコードしてサブアレイ選択データSASを出力する。
サブアレイ選択データSASの添え数字は、サブアレイ番号(0〜7)に対応する。
パターン選択デコーダ423は、信号線を介して入出力ポート(I/O)430Aに接続されており、第1パターン及び第2パターン自体も実施の形態1の第1パターン及び第2パターンとは異なる。
なお、図18には、入出力ポート(I/O)430Bを示さないが、パターン選択デコーダ423は入出力ポート(I/O)430Bにも同様に接続されている。
パターン選択デコーダ423は、読み出し命令又は書き込み命令の入力アドレスに含まれるパターン選択アドレスをデコードして第1パターン選択データF及び第2パターン選択データSを出力する。
第1パターン選択データFが"1"であり、第2パターン選択データSが"0"である場合は、第1パターンを選択することを表す。これとは逆に、第1パターン選択データFが"0"であり、第2パターン選択データSが"1"である場合は、第2パターンを選択することを表す。
実施の形態2の第1パターンは、サブバンク450Uに含まれるサブアレイ211A又はサブアレイ211B内の奇数番目のビットと、サブバンク450Lに含まれるサブアレイ211A又はサブアレイ211B内の偶数番目のビットとに対してデータの読み出し又は書き込みを行うパターンである。
これは、サブバンク450Uに含まれるサブアレイ211A又はサブアレイ211B内の奇数番目のビットと、サブバンク450Lに含まれるサブアレイ211A又はサブアレイ211B内の偶数番目のビットとに、同一アドレスのビットセルが含まれることを意味する。
なお、第1パターンによってサブバンク450U及び450L内でそれぞれ選択されるサブアレイ211A又は211Bは、サブアレイ番号が同一のサブアレイである。
実施の形態2の第2パターンは、サブバンク450Uに含まれるサブアレイ211A又はサブアレイ211B内の偶数番目のビットと、サブバンク450Lに含まれるサブアレイ211A又はサブアレイ211B内の奇数番目のビットとに対してデータの読み出し又は書き込みを行うパターンである。
これは、サブバンク450Uに含まれるサブアレイ211A又はサブアレイ211B内の偶数番目のビットと、サブバンク450Lに含まれるサブアレイ211A又はサブアレイ211B内の奇数番目のビットとに、同一アドレスのビットセルが含まれることを意味する。
なお、第2パターンによってサブバンク450U及び450L内でそれぞれ選択されるサブアレイ211A又は211Bは、サブアレイ番号が同一のサブアレイである。
このように、実施の形態2のSRAM400では、同一アドレスのビットセルは、隣接ビットについて、互いに異なるサブバンク450U、450L内のサブブロック210に割り当てられている。
カラムデコーダ424は、信号線を介して、カラム選択/読み書き回路413に接続されている。
カラムデコーダ424には、読み出し命令又は書き込み命令の入力アドレスに含まれるカラムアドレスに加えて、ライトイネーブル信号W/Eが入力される。
カラムデコーダ424は、カラムアドレスをデコードし、ライトイネーブル信号W/Eの信号レベルに応じたカラム選択データを出力する。カラム選択データは、カラム選択/読み書き回路413に入力される。
カラムデコーダ424は、ライトイネーブル信号W/Eの信号レベルがLレベルである場合は、カラム選択データR_COL_SEL[3:0]を出力する。
カラム選択データR_COL_SEL [3:0]は、データの読み出しを実行する際に、サブアレイ211A及び211B内のビットのカラムを選択するためのカラム選択データである。
カラム選択データR_COL_SEL [3:0]により、サブアレイ211A又は211BのいずれかのビットラインBL、BLBの対がデータの読み出しのために選択される。
また、カラムデコーダ424は、ライトイネーブル信号W/Eの信号レベルがHレベルである場合は、カラム選択データW_COL_SEL[3:0]を出力する。
カラム選択データW_COL_SEL[3:0]は、データの書き込みを実行する際に、サブアレイ211A及び211B内のビットのカラムを選択するためのカラム選択データである。
カラム選択データW_COL_SEL[3:0]により、サブアレイ211A又は211B内のいずれかのビットラインBL、BLBの対がデータの書き込みのために選択される。
次に、カラム選択/読み書き回路413について説明する。
カラム選択/読み書き回路413には、ビットラインBL00〜BL03、BLB00〜BLB03、BL10〜BL13、BLB10〜BLB13が接続されている。
カラム選択/読み書き回路413は、カラムデコーダ424から入力されるカラム選択データに基づき、ビットラインを選択する。
カラム選択/読み書き回路413は、カラムデコーダ424から入力されるカラム選択データに基づいて、ビットラインBL、BLBの選択、読み出し/書き込みの切り替え、読み出しデータ/書き込みデータの受け渡しを行える回路であればよい。
カラム選択/読み書き回路413は、データの読み出し又は書き込みのために、カラムデコーダ424からカラム選択データが入力されると、ライン番号が同一のビットラインBLとBLBの対を選択する。
また、カラム選択/読み書き回路413には、読み出したデータ又は書き込むデータを入出力ポート(I/O)430A、430B(図16参照)との間で伝送するグローバルビットライン214が接続されている。
また、カラム選択/読み書き回路413のうち、ビットラインの選択を行う回路は、カラムデコーダ424から伝送されるカラム選択データに基づいて、2つのサブアレイ211A、211Bにそれぞれ四対含まれるビットラインBL00、BLB00〜BL03、BLB03、BL10、BLB10〜BL13、BLB13を選択できれば、その形式は問わない。
また、カラム選択/読み書き回路413のうち、読み出しデータ及び書き込みデータの受け渡しを行う回路は、ライトイネーブル信号W/Eの信号レベルに応じたカラム選択データに基づいて読み出し処理と書き込み処理を切り替えることができ、グローバルビットライン214との間でデータの受け渡しができる回路であれば、その形式は問わない。
次に、図19(A)〜図19(E)を用いて、入力アドレスのデータ構成とデコーダ220の回路構成について説明する。
図19(A)は、実施の形態2のSRAM400の入力アドレスのデータ構成を示す図である。入力アドレスA[7:0]は8ビットのデータであり、下位ビットから上位ビットにかけて、カラムアドレス(column)、ロウアドレス(row)、サブアレイアドレス(Sub Array)、及びパターン選択アドレス(F/S)を含む。
カラムアドレス(column)にはA[1:0]の2ビット、ロウアドレス(row)にはA[3:2]の2ビット、サブアレイアドレスにはA[6:4]の3ビット、パターン選択アドレス(F/S)にはA[7]の1ビットが、それぞれ割り当てられている。
図19(B)は、実施の形態2のSRAM400のロウデコーダ421の回路を示す図である。
ロウデコーダ421は、2入力型のAND(論理積)回路500、501、502、503を含む。AND回路500〜503には、それぞれ、2本の信号線が接続されており、それぞれ、ロウアドレスA[3]、A[2]が入力される。
AND回路500、501、502、503は、それぞれ、ロウ選択データR[0]、R[1]、R[2]、R[3]を出力する。
ロウデコーダ421は、実施の形態1のロウデコーダ221と同様のデコーダである。
次に、図19(C)を用いて、サブアレイデコーダ422の回路について説明する。
図19(C)は、実施の形態2のSRAM400のサブアレイデコーダ422の回路を示す図である。
サブアレイデコーダ422は、3入力型のAND(論理積)回路510、511、512、513、514、515、516、517を含む。AND回路510〜517には、それぞれ、3本の信号線が接続されており、それぞれ、サブアレイアドレスA[6]、A[5]、A[4]が入力される。
AND回路510、511、512、513、514、515、516、517は、それぞれ、サブアレイ選択データSAS[0]、SAS[1]、SAS[2]、SAS[3]、SAS[4]、SAS[5]、SAS[6]、SAS[7]を出力する。
サブアレイ選択データSAS[0]は、サブアレイ番号0のサブアレイ211A(Sub Array 0)を選択するためのサブアレイ選択データである。サブアレイ選択データSAS[0]は、サブバンク450U及び450Lに1つずつ含まれるサブアレイ番号0のサブアレイ211Aを同時に選択するためのサブアレイ選択データである。
同様に、サブアレイ選択データSAS[1]〜SAS[7]は、それぞれ、サブアレイ番号1〜7のサブアレイ211A又は211Bを選択するためのサブアレイ選択データである。サブアレイ選択データSAS[1]〜SAS[7]は、サブバンク450U及び450Lに1つずつ含まれるサブアレイ番号のサブアレイ211A又は211Bを同時に選択するためのサブアレイ選択データである。
AND回路510には、サブブロック選択アドレスA[6]、A[5]、及びA[4]がすべて否定演算されて入力される。
AND回路511には、サブブロック選択アドレスA[6]及びA[5]が否定演算されて入力され、サブブロック選択アドレスA[4]はそのまま入力される。
AND回路512には、サブブロック選択アドレスA[6]及びA[4]が否定演算されて入力され、サブブロック選択アドレスA[5]はそのまま入力される。
AND回路513には、サブブロック選択アドレスA[6]が否定演算されて入力され、サブブロック選択アドレスA[5]及びA[4]はそのまま入力される。
AND回路514には、サブブロック選択アドレスA[6]はそのまま入力され、サブブロック選択アドレスA[5]及びA[4]が否定演算されて入力される。
AND回路515には、サブブロック選択アドレスA[6]及びA[4]はそのまま入力され、サブブロック選択アドレスA[5]が否定演算されて入力される。
AND回路516には、サブブロック選択アドレスA[6]及びA[5]はそのまま入力され、サブブロック選択アドレスA[4]が否定演算されて入力される。
AND回路517には、サブブロック選択アドレスA[6]、A[5]、及びA[4]はすべてそのまま入力される。
サブアレイデコーダ422は、サブブロック選択アドレスA[6]、A[5]、A[4]が"0"、"0"、"0"の場合は、サブアレイ選択データSAS[0]を"1"にし、サブアレイ選択データSAS[1]〜SAS[7]を"0"にする。
サブアレイデコーダ422は、サブブロック選択アドレスA[6]、A[5]、A[4]が"0"、"0"、"1"の場合は、サブアレイ選択データSAS[1]を"1"にし、サブアレイ選択データSAS[0]、SAS[2]〜SAS[7]を"0"にする。
サブアレイデコーダ422は、サブブロック選択アドレスA[6]、A[5]、A[4]が"0"、"1"、"0"の場合は、サブアレイ選択データSAS[2]を"1"にし、サブアレイ選択データSAS[0]、SAS[1]、SAS[3]〜SAS[7]を"0"にする。
サブアレイデコーダ422は、サブブロック選択アドレスA[6]、A[5]、A[4]が"0"、"1"、"1"の場合は、サブアレイ選択データSAS[3]を"1"にし、サブアレイ選択データSAS[0]〜SAS[2]、SAS[4]〜SAS[7]を"0"にする。
サブアレイデコーダ422は、サブブロック選択アドレスA[6]、A[5]、A[4]が"1"、"0"、"0"の場合は、サブアレイ選択データSAS[4]を"1"にし、サブアレイ選択データSAS[0]〜SAS[3]、SAS[5]〜SAS[7]を"0"にする。
サブアレイデコーダ422は、サブブロック選択アドレスA[6]、A[5]、A[4]が"1"、"0"、"1"の場合は、サブアレイ選択データSAS[5]を"1"にし、サブアレイ選択データSAS[0]〜SAS[4]、SAS[6]、SAS[7]を"0"にする。
サブアレイデコーダ422は、サブブロック選択アドレスA[6]、A[5]、A[4]が"1"、"1"、"0"の場合は、サブアレイ選択データSAS[6]を"1"にし、サブアレイ選択データSAS[0]〜SAS[5]、SAS[7]を"0"にする。
サブアレイデコーダ422は、サブブロック選択アドレスA[6]、A[5]、A[4]が"1"、"1"、"1"の場合は、サブアレイ選択データSAS[7]を"1"にし、サブアレイ選択データSAS[0]〜SAS[6]を"0"にする。
次に、図19(D)を用いて、パターン選択デコーダ423の回路について説明する。
図19(D)は、実施の形態2のSRAM400のパターン選択デコーダ423の回路を示す図である。
パターン選択デコーダ423は、1入力・2出力型の回路を有し、パターン選択アドレスA[7]をデコードして第1パターン選択データFと第2パターン選択データSを出力する。第1パターン選択データFはインバータ520によりパターン選択アドレスA[7]のデータ値の反転値として出力され、第2パターン選択データSはパターン選択アドレスA[7]のデータ値のまま出力される。
第1パターン選択データF及び第2パターン選択データSは、それぞれ、第1パターン又は第2パターンを選択するためのデータであり、入出力ポート(I/O)430A、430Bに入力される。
第1パターン選択データFが"1"であり、第2パターン選択データSが"0"である場合は、第1パターンを選択することを表す。これとは逆に、第1パターン選択データFが"0"であり、第2パターン選択データSが"1"である場合は、第2パターンを選択することを表す。
図19(E)は、実施の形態2のSRAM400のカラムデコーダ424の回路を示す図である。
カラムデコーダ424は、2入力型のAND(論理積)回路530、531、532、533を含む。AND回路530〜533には、それぞれ、2本の信号線が接続されており、それぞれ、カラムアドレスA[1]、A[0]が入力される。
AND回路530、531、532、533は、それぞれ、カラム選択データカラム選択データR_COL_SEL[0]、R_COL_SEL[1]、R_COL_SEL[2]、R_COL_SEL[3]をそれぞれ出力する。
実施の形態2のSRAM400は、第1パターン選択データF又は第2パターン選択データSに基づき、入出力ポート(I/O)430A及び430Bが、第1パターン又は第2パターンで、グローバルビットライン214を介して各ビットから読み出すデータ又は各ビットに書き込むデータを選択する。
これは、実施の形態2のSRAM400では、同一アドレスのビットセルは、隣接ビットについて、互いに異なるサブバンク450U、450L内のサブブロック210に割り当てられているからである。
実施の形態2のSRAM400における同一アドレスの複数のビットセルは、隣接ビットについて、互いに異なるサブバンク450Uとサブバンク450L内のサブブロック210に割り当てられることにより、千鳥状に分散されている。
次に、実施の形態2のSRAM400における同一アドレスの複数のビットセルの配置について、図20及び図21を用いて説明する。
図20及び図21は、実施の形態2のSRAM400における同一アドレスのビットセルを含むサブブロックを色分けして示す図である。
図20及び図21には、サブバンク450U、450L内に含まれるビットD[0]〜D[7]についてのサブブロック番号0〜3のサブブロック210を升目で表す。図中では、ビットD[0]のサブブロック番号3のサブブロックだけに符号210を示すが、各升目はサブブロック(図16及び図18参照)を表す。各サブブロック210内のサブアレイ及びビットセルは図示を省略する。
また、サブバンク450Uとサブバンク450Lとの間に入出力ポート430Aを示す。入出力ポート430Aは、切替回路215を含む。
図20及び図21において、白抜きで示す升目のサブブロック210は、第1パターンによってデータの読み出し又は書き込みが行われるサブアレイ211A又は211B(図16及び図18参照)を含むサブブロックである。
これらのサブブロック210内に含まれるビットセルのうち、カラム番号とロウ番号が同一のビットセルは、同一アドレスのビットセルである。
実施の形態2のSRAM400では、図20及び図21に示すように、第1パターンでデータの読み出し又は書き込みが行われるビットセルは、奇数ビットについてはサブバンク450Uに割り当てられ、偶数ビットについてはサブバンク450Lに割り当てられる。
また、図20及び図21において、グレーで示す升目のサブブロック210は、第2パターンによってデータの読み出し又は書き込みが行われるサブアレイ211A又は211B(図16及び図18参照)を含むサブブロックである。
これらのサブブロック210内に含まれるビットセルのうち、カラム番号とロウ番号が同一のビットセルは、同一アドレスのビットセルである。
実施の形態2のSRAM400では、図20及び図21に示すように、第2パターンでデータの読み出し又は書き込みが行われるビットセルは、偶数ビットについてはサブバンク450Uに割り当てられ、奇数ビットについてはサブバンク450Lに割り当てられる。
図20には、サブアレイ選択データSAS[4]又はSAS[5]が"1"になり、サブブロック番号2のサブブロックから第1パターンでデータの読み出しを行う場合のデータの流れを矢印で表す。
また、図21には、サブアレイ選択データSAS[2]又はSAS[3]が"1"になり、サブブロック番号1のサブブロックから第2パターンでデータの読み出しを行う場合のデータの流れを矢印で表す。
このように、実施の形態2のSRAM400では、同一アドレスの複数のビットセルは、隣接ビットについて、互いに異なるサブバンク450Uとサブバンク450L内のサブブロック210に割り当てられて、千鳥状に分散されている。
このため、比較例のSRAM30(図4参照)と同様に1ビットが4カラムを含む構成であっても、α線又は中性子線の入射によるデータ破壊が生じても、1ビットが8カラムを含む他の比較例のSRAM30A(図5参照)と同等の耐性を発揮することができる。
一方、他の比較例のSRAM30A(図5参照)とは異なり、1ビットのカラム数は4カラムで済むため、アスペクト比の変化(横長化)及びワードラインの長大化による動作速度の低下を抑制することができる。
以上、実施の形態2によれば、アスペクト比の変更、動作速度の低下を抑制しつつ、複数ビットにわたるデータ破壊の発生を抑制した半導体記憶装置及び半導体記憶装置の制御方法を提供することができる。
<実施の形態3>
図22は、実施の形態3のSRAM600を示す図である。
実施の形態3のSRAM600は、実施の形態1のSRAM200における同一アドレスの複数のビットセルの分散と、実施の形態2のSRAM400における同一アドレスの複数のビットセルの分散とを融合させたものである。
以下、実施の形態1、2と同一又は同等の構成要素には同一符号を付し、その説明を省略する。
図22に示すSRAM600は、サブブロック210、デコーダ620、入出力ポート430A、430B、及びタイマ240を含む。
図22には、SRAM600のサブブロック210のうちの4ビット分(D[n]、D[n−1]、D[n−2]、D[n−3])を示す。ビットD[n]は奇数ビットであるものとする。
ここで、各サブブロック210内のサブアレイ211A、211Bの各ビットは、4ロウ×4カラムの16個のビットセル10を含むが、紙面の都合上、図22には、各ビットのサブアレイ211A、211Bについて、2ロウ×4カラム分のビットセルを升目で示す。
図22では、ビットD[n−3]〜D[n]内のビットセルを白とグレーでの色分けるとともに、×印の有無で区別してあるが、図22に図示しないビット内のビットセルについても、図22と同様のパターンで、白/グレーの色分けと×印の有無とによって4ビットずつグループ分けがされている。このグループ分けについては後述する。
なお、図22に示すサブブロック210及びサブアレイ211A、211B等の位置関係は、サブブロック210及びサブアレイ211A、211Bの階層構造を表しており、本明細書中における「上」又は「下」なる文言は、物理的な上下関係を表すものではない。
図23は、実施の形態3のSRAM600の一部分を示す図である。
図23には、入出力ポート(I/O)430A、入出力ポート(I/O)430Aの上下に位置する2つのサブブロック番号0のサブブロック210のうちのビットD[n]、D[n−1]の部分、2つのカラム選択/読み書き回路213、グローバルビットライン214、デコーダ420、及び二対のワードラインドライバ212A、212Bを示す。
なお、ここでは、ビットD[n]が奇数ビットでビット[n−1]が偶数ビットであるものとする。
また、ビットD[n]のnをビット番号と称す。
SRAM600は、プロセッサコア111(図6参照)から入力される読み出し命令と書き込み命令に従って、データの読み出しと書き込みを行う。
説明の便宜上、図23にはビットセル10を示さないが、サブアレイ211A、211Bは、それぞれ、アレイ状に配列された複数のビットセルを含む。
サブブロック210は、サブアレイ211A、211B、ワードラインドライバ212A、212B、カラム選択/読み書き回路213を含む。
サブアレイ211A及び211Bの配列とサブアレイ番号については、実施の形態2のSRAM400と同様である。
ワードラインドライバ212A、212Bは、それぞれサブアレイ211A、211Bに対応して設けられており、それぞれサブアレイ211A、211Bに含まれるワードラインに接続されている。ワードラインドライバ212A、212Bは、それぞれデコーダ220がロウアドレスをデコードして出力するロウ選択データ(ロウ選択信号)に基づき、ロウの選択(ワードラインの選択)を行う。
カラム選択/読み書き回路213は、各サブブロック210に対応して設けられており、各サブブロック210内の2つのサブアレイ211A、211Bのビットラインに接続されている。カラム選択/読み書き回路213は、デコーダ220がカラムアドレスをデコードして出力するカラム選択データ(カラム選択信号)に基づき、カラムの選択(ビットラインの選択)を行う。
デコーダ620は、ロウデコーダ221、サブブロックデコーダ222、パターン選択デコーダ623、領域選択デコーダ624、及びカラムデコーダ625を含む。デコーダ620には、入力アドレスが入力される。また、カラムデコーダ625には、ライトイネーブル信号W/Eが入力される。
すなわち、デコーダ620は、実施の形態1のデコーダ220の上下選択デコーダ223の代わりにパターン選択デコーダ623を組み込み、パターン選択デコーダ224の代わりに領域選択デコーダ624を組み込み、カラムデコーダ225の代わりにカラムデコーダ625を組み込んだものである。
ロウデコーダ221及びサブブロックデコーダ222は、実施の形態1のロウデコーダ221及びサブブロックデコーダ222と同様である。
パターン選択デコーダ623は、第1パターンと第2パターンを選択するためのデコーダであり、実施の形態1のパターン選択デコーダ224と同様であるが、第1パターン選択データF(First)及び第2パターン選択データS(Second)を出力する信号線は、入出力ポート(I/O)430A、430Bに接続されている。
パターン選択デコーダ623は、読み出し命令又は書き込み命令の入力アドレスに含まれるパターン選択アドレスをデコードして第1パターン選択データF及び第2パターン選択データSを出力する。
第1パターン選択データF及び第2パターン選択データSは、それぞれ、第1パターン又は第2パターンを選択するためのデータである。
第1パターン選択データFは、奇数ビットD[n]の入出力ポート(I/O)430Aに入力され、第2パターン選択データSは、偶数ビットD[n−1]の入出力ポート(I/O)430Aに入力される。
第1パターン選択データFが"1"であり、第2パターン選択データSが"0"である場合は、第1パターンを選択することを表す。これとは逆に、第1パターン選択データFが"0"であり、第2パターン選択データSが"1"である場合は、第2パターンを選択することを表す。
ここで、第1パターンでは、サブバンク450Uの奇数ビットに対してデータの読み出し又は書き込みを行うとともに、サブバンク450Lの偶数ビットに対してデータの読み出し又は書き込みを行う。
また、第2パターンでは、サブバンク450Uの偶数ビットに対してデータの読み出し又は書き込みを行うとともに、サブバンク450Lの奇数ビットに対してデータの読み出し又は書き込みを行う。
領域選択デコーダ624は、1つのサブブロック210に含まれる上側のサブアレイ211Aと下側のサブアレイ211Bからビットを選択する。
領域選択デコーダ624は、サブアレイ211Aの奇数ビットと、この奇数ビットに隣接する偶数ビットを第1領域として選択する。第1領域に含まれる奇数ビット及び偶数ビットは、一例として偶数ビットの方が奇数ビットよりもビット番号が若いものとする。
また、領域選択デコーダ624は、サブアレイ211Bの奇数ビットと、この奇数ビットに隣接する偶数ビットを第2領域として選択する。第2領域に含まれる奇数ビット及び偶数ビットは、一例として偶数ビットの方が奇数ビットよりもビット番号が若いものとする。
ここで、第1領域に含まれるすべてのビットのビット番号と、第2領域に含まれるすべてのビットのビット番号とは異なる。
第1領域に含まれるビットのビット番号は、2ずつ抜けており、例えば、0、1、4、5、8、9、12、13、・・・と並んでいる。
第2領域に含まれるビットのビット番号は、2ずつ抜けており、例えば、2、3、6、7、10、11、14、15・・・と並んでいる。
これにより、第1領域は、例えば、図22に白く示すビットを含む領域であり、第2領域は図22にグレーで示すビットを含む領域である。
すなわち、領域選択デコーダ624は、各サブブロック210内のサブアレイ211A、211Bのビットを2ビットずつ千鳥状に選択し、これにより図22に一例として示す白い第1領域とグレーの第2領域に分けられる。
領域選択デコーダ624は、第1領域又は第2領域を選択するために、入力アドレスに含まれる領域選択アドレスをデコードして、第1領域選択データFA(First Area)又は第2領域選択データSA(Second Area)を出力する。
カラムデコーダ625は、信号線を介して、カラム選択/読み書き回路213に接続されている。カラムデコーダ625は、実際には、図23に示すすべてのサブブロック210の中のカラム選択/読み書き回路213に接続されている。
カラムデコーダ625には、読み出し命令又は書き込み命令の入力アドレスに含まれるカラムアドレスに加えて、第1領域選択データFA、第2領域選択データSA、及びライトイネーブル信号W/Eが入力される。
カラムデコーダ625は、カラムアドレスをデコードし、第1領域選択データFA及び第2領域選択データSAのデータ値と、ライトイネーブル信号W/Eの信号レベルとに応じたカラム選択データを出力する。
カラムデコーダ625が出力するカラム選択データは、第1領域又は第2領域におけるデータの読み出し又は書き込みを実現するように、サブアレイ211A及び211Bのビット内のカラムを選択するためのデータである。
カラム選択データは、カラム選択/読み書き回路213に入力される。
カラムデコーダ625は、ライトイネーブル信号W/Eの信号レベルがLレベルで、第1領域選択データFAが"1"であり、第2領域選択データSAが"0"である場合は、カラム選択データR_COL_SEL_FA[3:0]を出力する。
カラム選択データR_COL_SEL_FA[3:0]は、第1領域でのデータの読み出しを実現するために、サブアレイ211A及び211B内のビットのカラムを選択するためのカラム選択データである。
カラム選択データR_COL_SEL_FA[3:0]により、サブアレイ211A及び211Bの第1領域内のビットのいずれかのビットラインBL、BLBの対がデータの読み出しのために選択される。
カラムデコーダ625は、ライトイネーブル信号W/Eの信号レベルがLレベルで、第1領域選択データFAが"0"であり、第2領域選択データSAが"1"である場合は、カラム選択データR_COL_SEL_SA[3:0]を出力する。
カラム選択データR_COL_SEL_SA[3:0] は、第2領域でのデータの読み出しを実現するために、サブアレイ211A及び211B内のビットのカラムを選択するためのカラム選択データである。
カラム選択データR_COL_SEL_SA[3:0]により、サブアレイ211A及び211Bの第2領域内のビットのいずれかのビットラインBL、BLBの対がデータの読み出しのために選択される。
また、カラムデコーダ625は、ライトイネーブル信号W/Eの信号レベルがHレベルで、第1領域選択データFAが"1"であり、第2領域選択データSAが"0"である場合は、カラム選択データW_COL_SEL_FA[3:0]を出力する。
カラム選択データW_COL_SEL_FA[3:0]は、第1領域でのデータの書き込みを実現するために、サブアレイ211A及び211B内のビットのカラムを選択するためのカラム選択データである。
カラム選択データW_COL_SEL_FA[3:0]により、サブアレイ211A及び211Bの第1領域内のビットのいずれかのビットラインBL、BLBの対がデータの書き込みのために選択される。
また、カラムデコーダ625は、ライトイネーブル信号W/Eの信号レベルがHレベルで、第1領域選択データFAが"0"であり、第2領域選択データSAが"1"である場合は、カラム選択データW_COL_SEL_SA[3:0]を出力する。
カラム選択データW_COL_SEL_SA[3:0] は、第2領域でのデータの書き込みを実現するために、サブアレイ211A及び211B内のビットのカラムを選択するためのカラム選択データである。
カラム選択データW_COL_SEL_SA[3:0]により、サブアレイ211A及び211Bの第2領域内のビットのいずれかのビットラインBL、BLBの対がデータの書き込みのために選択される。
なお、カラム選択データR_COL_SEL_FA[3:0]、R_COL_SEL_SA[3:0]、W_COL_SEL_FA[3:0]、及びW_COL_SEL_SA[3:0]は、それぞれ、4ビットのカラム選択データをまとめて示す表記である。
例えば、カラム選択データR_COL_SEL_FA[3:0]は、カラム選択データR_COL_SEL_FA[3]、R_COL_SEL_FA[2]、R_COL_SEL_FA[1]、及びR_COL_SEL_FA[0]を含む。これは、カラム選択データR_COL_SEL_SA[3:0]、W_COL_SEL_FA[3:0]、及びW_COL_SEL_SA[3:0]についても同様である。
以上のように、実施の形態3のSRAM600では、パターン選択デコーダ623が第1パターン又は第2パターンを選択するとともに、領域選択デコーダ624が第1領域又は第2領域を選択する。
これにより、同一アドレスの複数のメモリセルを特定する際に、隣接ビットについて、第1パターン又は第2パターンのいずれかが選択されることにより、入出力ポート(I/O)430Aの上側のサブバンク450U又は下側のサブバンク450Lが千鳥状に特定される。これは、図22に×の有無で示す状態である。
また、これに加えて、第1領域又は第2領域のいずれかが選択されることにより、各サブブロック210内のサブアレイ211A、211Bについて、2ビットずつ千鳥状に、ビットセルを含むビットが選択される。これは、図22に白/グレーで示す状態である。
これにより、実施の形態3のSRAM600では、同一アドレスのビットセルは、白で×印のあるビット、白で×印のないビット、グレーで×印のあるビット、グレーで×印のないビットによって表される4つのグループのいずれかに属するように分けられる。
4つのグループの各々に含まれるビットセルのうち、同一のカラム番号及びロウ番号のビットセルは、同一アドレスのビットセルである。
次に、図24を用いて、入力アドレスのデータ構成とデコーダ620の回路構成について説明する。
図24(A)は、実施の形態3のSRAM600の入力アドレスのデータ構成を示す図である。入力アドレスA[7:0]は8ビットのデータであり、下位ビットから上位ビットにかけて、カラムアドレス(column)、ロウアドレス(row)、領域選択アドレス(FA/SA)、サブブロックアドレス(Sub Block)、パターン選択アドレス(F/S)を含む。
カラムアドレス(column)にはA[1:0]の2ビット、ロウアドレス(row)にはA[3:2]の2ビット、領域選択アドレス(FA/SA)にはA[4]の1ビット、サブブロックアドレス(Sub Block)にはA[6:5]の2ビット、パターン選択アドレス(F/S)にはA[7]の1ビットが、それぞれ割り当てられている。
図24(B)は、実施の形態3のSRAM600のロウデコーダ221の回路を示す図である。
ロウデコーダ221は、2入力型のAND(論理積)回路300、301、302、303を含む。AND回路300〜303には、それぞれ、2本の信号線が接続されており、それぞれ、ロウアドレスA[3]、A[2]が入力される。
AND回路300、301、302、303は、それぞれ、ロウ選択データR[0]、R[1]、R[2]、R[3]を出力する。
ロウデコーダ221は、実施の形態1のロウデコーダ221と同様である。
次に、図24(C)を用いて、サブブロックデコーダ222の回路について説明する。
図24(C)は、実施の形態3のSRAM600のサブブロックデコーダ222の回路を示す図である。
サブブロックデコーダ222は、実施の形態1のサブブロックデコーダ222と同様であり、サブブロック選択データSBS[0]、SBS[1]、SBS[2]、SBS[3]を出力する。
次に、図24(D)を用いて、パターン選択デコーダ623の回路について説明する。
図24(D)は、実施の形態3のSRAM600のパターン選択デコーダ623の回路を示す図である。
パターン選択デコーダ623は、1入力・2出力型の回路を有し、パターン選択アドレスA[7]をデコードして第1パターン選択データFと第2パターン選択データSを出力する。第2パターン選択データはインバータ720によりパターン選択アドレスA[7]のデータ値の反転値として出力され、第1パターン選択データFはパターン選択アドレスA[7]のデータ値のまま出力される。
第1パターン選択データFが"1"で第2パターン選択データSが"0"である場合は、第1パターンを選択する場合である。これとは逆に、第1パターン選択データFが"0"で第2パターン選択データSが"1"である場合は、第2パターンを選択する場合である。
次に、図24(E)を用いて、領域選択デコーダ624の回路について説明する。
図24(E)は、実施の形態3のSRAM600の領域選択デコーダ624の回路を示す図である。
領域選択デコーダ624は、1入力・2出力型の回路を有し、領域選択アドレスA[4]をデコードして第1領域選択データFAと第2領域選択データSAを出力する。第1領域選択データFAはインバータ730により領域選択アドレスA[4]のデータ値の反転値として出力され、第2領域選択データSAは領域選択アドレスA[4]のデータ値のまま出力される。
第1領域選択データFA及び第2領域選択データSAは、それぞれ、第1領域又は第2領域を選択するためのデータであり、カラムデコーダ225に入力される。
第1領域選択データFAが"1"であり、第2領域選択データSAが"0"である場合は、第1領域を選択することを表す。これとは逆に、第1領域選択データFAが"0"であり、第2領域選択データSAが"1"である場合は、第2領域を選択することを表す。
次に、図24(F)〜図24(I)を用いて、カラムデコーダ625の回路について説明する。
カラムデコーダ625は、カラムアドレスをデコードし、第1領域選択データFA及び第2領域選択データSAのデータ値と、ライトイネーブル信号W/Eの信号レベルとに応じたカラム選択データを出力する。
図24(F)〜図24(I)は、実施の形態3のSRAM600のカラムデコーダ625に含まれるカラムアドレスをデコードする回路を示す図である。
カラムデコーダ625は、第1領域におけるデータの読み出しを行うためにカラムアドレスをデコードする回路740Rと、第1領域におけるデータの書き込みを行うためにカラムアドレスをデコードする回路740Wとを含む。
また、カラムデコーダ625は、第2領域におけるデータの読み出しを行うためにカラムアドレスをデコードする回路750Rと、第2領域におけるデータの書き込みを行うためにカラムアドレスをデコードする回路750Wとをさらに含む。
図24(F)に示すように、第1領域におけるデータの読み出しを行うためにカラムアドレスをデコードする回路740Rは、4入力型のAND(論理積)回路760R、761R、762R、763Rを含む。AND回路760R〜763Rには、それぞれ、4本の信号線が接続されており、それぞれ、第1領域選択データFA、カラムアドレスA[1]、A[0]、及びライトイネーブル信号W/Eが入力される。
AND回路760R、761R、762R、763Rは、それぞれ、カラム選択データR_COL_SEL_FA[0]、R_COL_SEL_FA[1]、R_COL_SEL_FA[2]、R_COL_SEL_FA[3]を出力する。
カラム選択データR_COL_SEL_FA[0]は、第1領域におけるデータの読み出しを行うために、図23に示すビットラインBL00及びBLB00と、ビットラインBL10及びBLB10を選択するためのカラム選択データである。
カラム選択データR_COL_SEL_FA[1]は、第1領域におけるデータの読み出しを行うために、図23に示すビットラインBL01及びBLB01と、ビットラインBL11及びBLB11を選択するためのカラム選択データである。
カラム選択データR_COL_SEL_FA[2]は、第1領域におけるデータの読み出しを行うために、図23に示すビットラインBL02及びBLB02と、ビットラインBL12及びBLB12を選択するためのカラム選択データである。
カラム選択データR_COL_SEL_FA[3]は、第1領域におけるデータの読み出しを行うために、図23に示すビットラインBL03及びBLB03と、ビットラインBL13及びBLB13を選択するためのカラム選択データである。
AND回路760Rには、第1領域選択データFA、否定演算されたカラムアドレスA[1]、否定演算されたカラムアドレスA[0]、及び否定演算されたライトイネーブル信号W/Eが入力される。
AND回路761Rには、第1領域選択データFA、否定演算されたカラムアドレスA[1]、カラムアドレスA[0]、及び否定演算されたライトイネーブル信号W/Eが入力される。
AND回路762Rには、第1領域選択データFA、カラムアドレスA[1]、否定演算されたカラムアドレスA[0]、及び否定演算されたライトイネーブル信号W/Eが入力される。
AND回路763Rには、第1領域選択データFA、カラムアドレスA[1]、カラムアドレスA[0]、及び否定演算されたライトイネーブル信号W/Eが入力される。
カラムデコーダ625は、第1領域選択データFAが"1"、カラムアドレスA[1]、A[0]が"0"、"0"、かつ、ライトイネーブル信号W/EがLレベルの場合は、カラム選択データR_COL_SEL_FA[0]を"1"にし、カラム選択データR_COL_SEL_FA[1]、R_COL_SEL_FA[2]、R_COL_SEL_FA[3]を"0"にする。
カラムデコーダ625は、第1領域選択データFAが"1"、カラムアドレスA[1]、A[0]が"0"、"1"、かつ、ライトイネーブル信号W/EがLレベルの場合は、カラム選択データR_COL_SEL_FA[1]を"1"にし、カラム選択データR_COL_SEL_FA[0]、R_COL_SEL_FA[2]、R_COL_SEL_FA[3]を"0"にする。
カラムデコーダ625は、第1領域選択データFAが"1"、カラムアドレスA[1]、A[0]が"1"、"0"、かつ、ライトイネーブル信号W/EがLレベルの場合は、カラム選択データR_COL_SEL_FA[2]を"1"にし、カラム選択データR_COL_SEL_FA[0]、R_COL_SEL_FA[1]、R_COL_SEL_FA[3]を"0"にする。
カラムデコーダ625は、第1領域選択データFAが"1"、カラムアドレスA[1]、A[0]が"1"、"1"、かつ、ライトイネーブル信号W/EがLレベルの場合は、カラム選択データR_COL_SEL_FA[3]を"1"にし、カラム選択データR_COL_SEL_FA[0]、R_COL_SEL_FA[1]、R_COL_SEL_FA[2]を"0"にする。
なお、第1領域選択データFAが"0"である場合は、第1領域におけるデータの読み出しを行わない場合であるため、カラム選択データR_COL_SEL_FA[0]、R_COL_SEL_FA[1]、R_COL_SEL_FA[2]、及びR_COL_SEL_FA[3]は、すべて"0"になる。
図24(G)に示すように、第1領域におけるデータの書き込みを行うためにカラムアドレスをデコードする回路740Wは、4入力型のAND(論理積)回路760W、761W、762W、763Wを含む。AND回路760W〜763Wには、それぞれ、4本の信号線が接続されており、それぞれ、第1領域選択データFA、カラムアドレスA[1]、A[0]、及びライトイネーブル信号W/Eが入力される。
AND回路760W、761W、762W、763Wは、それぞれ、カラム選択データW_COL_SEL_FA[0]、W_COL_SEL_FA[1]、W_COL_SEL_FA[2]、W_COL_SEL_FA[3]を出力する。
カラム選択データW_COL_SEL_FA[0]は、第1領域におけるデータの書き込みを行うために、図23に示すビットラインBL00及びBLB00と、ビットラインBL10及びBLB10を選択するためのカラム選択データである。
カラム選択データW_COL_SEL_FA[1]は、第1領域におけるデータの書き込みを行うために、図23に示すビットラインBL01及びBLB01と、ビットラインBL11及びBLB11を選択するためのカラム選択データである。
カラム選択データW_COL_SEL_FA[2]は、第1領域におけるデータの書き込みを行うために、図23に示すビットラインBL02及びBLB02と、ビットラインBL12及びBLB12を選択するためのカラム選択データである。
カラム選択データW_COL_SEL_FA[3]は、第1領域におけるデータの書き込みを行うために、図23に示すビットラインBL03及びBLB03と、ビットラインBL13及びBLB13を選択するためのカラム選択データである。
AND回路760Wには、第1領域選択データFA、否定演算されたカラムアドレスA[1]、否定演算されたカラムアドレスA[0]、及びライトイネーブル信号W/Eが入力される。
AND回路761Wには、第1領域選択データFA、否定演算されたカラムアドレスA[1]、カラムアドレスA[0]、及びライトイネーブル信号W/Eが入力される。
AND回路762Wには、第1領域選択データFA、カラムアドレスA[1]、否定演算されたカラムアドレスA[0]、及びライトイネーブル信号W/Eが入力される。
AND回路763Wには、第1領域選択データFA、カラムアドレスA[1]、カラムアドレスA[0]、及びライトイネーブル信号W/Eが入力される。
カラムデコーダ625は、第1領域選択データFAが"1"、カラムアドレスA[1]、A[0]が"0"、"0"、かつ、ライトイネーブル信号W/EがHレベルの場合は、カラム選択データW_COL_SEL_FA[0]を"1"にし、カラム選択データW_COL_SEL_FA[1]、W_COL_SEL_FA[2]、W_COL_SEL_FA[3]を"0"にする。
カラムデコーダ625は、第1領域選択データFAが"1"、カラムアドレスA[1]、A[0]が"0"、"1"、かつ、ライトイネーブル信号W/EがHレベルの場合は、カラム選択データW_COL_SEL_FA[1]を"1"にし、カラム選択データW_COL_SEL_FA[0]、W_COL_SEL_FA[2]、W_COL_SEL_FA[3]を"0"にする。
カラムデコーダ625は、第1領域選択データFAが"1"、カラムアドレスA[1]、A[0]が"1"、"0"、かつ、ライトイネーブル信号W/EがHレベルの場合は、カラム選択データW_COL_SEL_FA[2]を"1"にし、カラム選択データW_COL_SEL_FA[0]、W_COL_SEL_FA[1]、W_COL_SEL_FA[3]を"0"にする。
カラムデコーダ625は、第1領域選択データFAが"1"、カラムアドレスA[1]、A[0]が"1"、"1"、かつ、ライトイネーブル信号W/EがHレベルの場合は、カラム選択データW_COL_SEL_FA[3]を"1"にし、カラム選択データW_COL_SEL_FA[0]、W_COL_SEL_FA[1]、W_COL_SEL_FA[2]を"0"にする。
なお、第1領域選択データFAが"0"である場合は、第1領域におけるデータの書き込みを行わない場合であるため、カラム選択データW_COL_SEL_FA[0]、W_COL_SEL_FA[1]、W_COL_SEL_FA[2]、及びW_COL_SEL_FA[3]は、すべて"0"になる。
図24(H)に示すように、第2領域におけるデータの読み出しを行うためにカラムアドレスをデコードする回路750Rは、4入力型のAND(論理積)回路770R、771R、772R、773Rを含む。AND回路770R〜773Rには、それぞれ、4本の信号線が接続されており、それぞれ、第2領域選択データSA、カラムアドレスA[1]、A[0]、及びライトイネーブル信号W/Eが入力される。
AND回路770R、771R、772R、773Rは、それぞれ、カラム選択データR_COL_SEL_SA[0]、R_COL_SEL_SA[1]、R_COL_SEL_SA[2]、R_COL_SEL_SA[3]を出力する。
カラム選択データR_COL_SEL_SA[0]は、第2領域におけるデータの読み出しを行うために、図23に示すビットラインBL00及びBLB00と、ビットラインBL10及びBLB10を選択するためのカラム選択データである。
カラム選択データR_COL_SEL_SA[1]は、第2領域におけるデータの読み出しを行うために、図23に示すビットラインBL01及びBLB01と、ビットラインBL11及びBLB11を選択するためのカラム選択データである。
カラム選択データR_COL_SEL_SA[2]は、第2領域におけるデータの読み出しを行うために、図23に示すビットラインBL02及びBLB02と、ビットラインBL12及びBLB12を選択するためのカラム選択データである。
カラム選択データR_COL_SEL_SA[3]は、第2領域におけるデータの読み出しを行うために、図23に示すビットラインBL03及びBLB03と、ビットラインBL13及びBLB13を選択するためのカラム選択データである。
AND回路770Rには、第2領域選択データSA、否定演算されたカラムアドレスA[1]、否定演算されたカラムアドレスA[0]、及び否定演算されたライトイネーブル信号W/Eが入力される。
AND回路771Rには、第2領域選択データSA、否定演算されたカラムアドレスA[1]、カラムアドレスA[0]、及び否定演算されたライトイネーブル信号W/Eが入力される。
AND回路772Rには、第2領域選択データSA、カラムアドレスA[1]、否定演算されたカラムアドレスA[0]、及び否定演算されたライトイネーブル信号W/Eが入力される。
AND回路773Rには、第2領域選択データSA、カラムアドレスA[1]、カラムアドレスA[0]、及び否定演算されたライトイネーブル信号W/Eが入力される。
カラムデコーダ625は、第2領域選択データSAが"1"、カラムアドレスA[1]、A[0]が"0"、"0"、かつ、ライトイネーブル信号W/EがLレベルの場合は、カラム選択データR_COL_SEL_SA[0]を"1"にし、カラム選択データR_COL_SEL_SA[1]、R_COL_SEL_SA[2]、R_COL_SEL_SA[3]を"0"にする。
カラムデコーダ625は、第2領域選択データSAが"1"、カラムアドレスA[1]、A[0]が"0"、"1"、かつ、ライトイネーブル信号W/EがLレベルの場合は、カラム選択データR_COL_SEL_SA[1]を"1"にし、カラム選択データR_COL_SEL_SA[0]、R_COL_SEL_SA[2]、R_COL_SEL_SA[3]を"0"にする。
カラムデコーダ625は、第2領域選択データSAが"1"、カラムアドレスA[1]、A[0]が"1"、"0"、かつ、ライトイネーブル信号W/EがLレベルの場合は、カラム選択データR_COL_SEL_SA[2]を"1"にし、カラム選択データR_COL_SEL_SA[0]、R_COL_SEL_SA[1]、R_COL_SEL_SA[3]を"0"にする。
カラムデコーダ625は、第2領域選択データSAが"1"、カラムアドレスA[1]、A[0]が"1"、"1"、かつ、ライトイネーブル信号W/EがLレベルの場合は、カラム選択データR_COL_SEL_SA[3]を"1"にし、カラム選択データR_COL_SEL_SA[0]、R_COL_SEL_SA[1]、R_COL_SEL_SA[2]を"0"にする。
なお、第2領域選択データSAが"0"である場合は、第2領域におけるデータの読み出しを行わない場合であるため、カラム選択データR_COL_SEL_SA[0]、R_COL_SEL_SA[1]、R_COL_SEL_SA[2]、及びR_COL_SEL_SA[3]は、すべて"0"になる。
図24(I)に示すように、第2領域におけるデータの書き込みを行うためにカラムアドレスをデコードする回路750Wは、4入力型のAND(論理積)回路770W、771W、772W、773Wを含む。AND回路770W〜773Wには、それぞれ、4本の信号線が接続されており、それぞれ、第2領域選択データSA、カラムアドレスA[1]、A[0]、及びライトイネーブル信号W/Eが入力される。
AND回路770W、771W、772W、773Wは、それぞれ、カラム選択データW_COL_SEL_SA[0]、W_COL_SEL_SA[1]、W_COL_SEL_SA[2]、W_COL_SEL_SA[3]を出力する。
カラム選択データW_COL_SEL_SA[0]は、第2領域におけるデータの書き込みを行うために、図23に示すビットラインBL00及びBLB00と、ビットラインBL10及びBLB10を選択するためのカラム選択データである。
カラム選択データW_COL_SEL_SA[1]は、第2領域におけるデータの書き込みを行うために、図23に示すビットラインBL01及びBLB01と、ビットラインBL11及びBLB11を選択するためのカラム選択データである。
カラム選択データW_COL_SEL_SA[2]は、第2領域におけるデータの書き込みを行うために、図23に示すビットラインBL02及びBLB02と、ビットラインBL12及びBLB12を選択するためのカラム選択データである。
カラム選択データW_COL_SEL_SA[3]は、第2領域におけるデータの書き込みを行うために、図23に示すビットラインBL03及びBLB03と、ビットラインBL13及びBLB13を選択するためのカラム選択データである。
AND回路770Wには、第2領域選択データSA、否定演算されたカラムアドレスA[1]、否定演算されたカラムアドレスA[0]、及びライトイネーブル信号W/Eが入力される。
AND回路771Wには、第2領域選択データSA、否定演算されたカラムアドレスA[1]、カラムアドレスA[0]、及びライトイネーブル信号W/Eが入力される。
AND回路772Wには、第2領域選択データSA、カラムアドレスA[1]、否定演算されたカラムアドレスA[0]、及びライトイネーブル信号W/Eが入力される。
AND回路773Wには、第2領域選択データSA、カラムアドレスA[1]、カラムアドレスA[0]、及びライトイネーブル信号W/Eが入力される。
カラムデコーダ625は、第2領域選択データSAが"1"、カラムアドレスA[1]、A[0]が"0"、"0"、かつ、ライトイネーブル信号W/EがHレベルの場合は、カラム選択データW_COL_SEL_SA[0]を"1"にし、カラム選択データW_COL_SEL_SA[1]、W_COL_SEL_SA[2]、W_COL_SEL_SA[3]を"0"にする。
カラムデコーダ625は、第2領域選択データSAが"1"、カラムアドレスA[1]、A[0]が"0"、"1"、かつ、ライトイネーブル信号W/EがHレベルの場合は、カラム選択データW_COL_SEL_SA[1]を"1"にし、カラム選択データW_COL_SEL_SA[0]、W_COL_SEL_SA[2]、W_COL_SEL_SA[3]を"0"にする。
カラムデコーダ625は、第2領域選択データSAが"1"、カラムアドレスA[1]、A[0]が"1"、"0"、かつ、ライトイネーブル信号W/EがHレベルの場合は、カラム選択データW_COL_SEL_SA[2]を"1"にし、カラム選択データW_COL_SEL_SA[0]、W_COL_SEL_SA[1]、W_COL_SEL_SA[3]を"0"にする。
カラムデコーダ625は、第2領域選択データSAが"1"、カラムアドレスA[1]、A[0]が"1"、"1"、かつ、ライトイネーブル信号W/EがHレベルの場合は、カラム選択データW_COL_SEL_SA[3]を"1"にし、カラム選択データW_COL_SEL_SA[0]、W_COL_SEL_SA[1]、W_COL_SEL_SA[2]を"0"にする。
なお、第2領域選択データSAが"0"である場合は、第2領域におけるデータの書き込みを行わない場合であるため、カラム選択データW_COL_SEL_SA[0]、W_COL_SEL_SA[1]、W_COL_SEL_SA[2]、及びW_COL_SEL_SA[3]は、すべて"0"になる。
入出力ポート430A、430Bは、実施の形態2の入出力ポート430A、430Bと同様であり、第1パターン選択データF又は第2パターン選択データSに基づき、第1パターン又は第2パターンで、グローバルビットライン214を介して各ビットから読み出すデータ又は各ビットに書き込むデータを選択する。
奇数ビットD[n]及び偶数ビットD[n−1]の入出力ポート(I/O)430Aには、第1パターン選択データF及び第2パターン選択データSの両方が入力される。
以上で説明した実施の形態3のSRAM600によれば、第1パターン又は第2パターンによるデータの読み出し又は書き込みを行うために、奇数ビット又は偶数ビットに含まれるアドレスのビットセルをサブバンク450U又は450Lから千鳥状に選択することができる。
これは、例えば、図22に示す×印のある4カラムを含むビットを第1パターンで選択するか、×印のない4カラムを含むビットを第2パターンで選択するかに相当する。
また、実施の形態3のSRAM600では、第1領域と第2領域でのデータの読み出し又は書き込みを行うために、図22に白く示すビットと、グレーで示すビットとを選択することができる。
すなわち、実施の形態3のSRAM600によれば、同一アドレスのビットセルは、白で×印のあるビット、白で×印のないビット、グレーで×印のあるビット、グレーで×印のないビットによって表される4つのグループのいずれかに属するように分けられている。
4つのグループの各々に含まれるビットセルのうち、同一のカラム番号及びロウ番号のビットセルは、同一アドレスのビットセルである。
このため、実施の形態3のSRAM600によれば、白で×印のあるビット、白で×印のないビット、グレーで×印のあるビット、グレーで×印のないビットの4通りのビットの4通りのビットの選び方を選択することができる。
例えば、白で×印のあるビットに着目すると、隣接するビットは、異なるサブバンクにあり、かつ、カラム選択/読み書き回路213に対して反対側のサブアレイ(211A又は211B)に含まれている。
そして、白で×印のあるビットに着目すると、同一のサブアレイ211A又は211B内における隣のビットとの間には3ビットの間隔があることになる。
これは、1ビットが16カラムを含むSRAMと同等の構成であり、白で×印のないビット、グレーで×印のあるビット、グレーで×印のないビットのグループについても同様である。
このように、実施の形態3のSRAM600では、同一アドレスの複数のビットセルは、隣接ビットについて、互いに異なるサブバンク450Uとサブバンク450L内のサブブロック210に割り当てられ、かつ、カラム選択/読み書き回路213に対して反対側のサブアレイ(211A又は211B)に含まれている。
このため、比較例のSRAM30(図4参照)と同様に1ビットが4カラムを含む構成であっても、α線又は中性子線の入射によるデータ破壊が生じても、1ビットが16カラムを含むSRAMと同等の耐性を発揮することができる。
一方、1ビットのカラム数は4カラムで済むため、アスペクト比の変化(横長化)及びワードラインの長大化による動作速度の低下を抑制することができる。
以上、実施の形態3によれば、アスペクト比の変更、動作速度の低下を抑制しつつ、複数ビットにわたるデータ破壊の発生を抑制した半導体記憶装置及び半導体記憶装置の制御方法を提供することができる。
以上、本発明の例示的な実施の形態の半導体記憶装置及び半導体記憶装置の制御方法について説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
10、10A、10B、10C、10D、10E、10F ビットセル
11、12 インバータ
11A、11B MOSトランジスタ
12A、12B MOSトランジスタ
13、14 NMOSトランジスタ
N1、N2 記憶ノード
20 ビットセル
21、22、23、24 NMOSトランジスタ
30、30A SRAM
31、32 ワードラインドライバ
33 カラム選択/読み書き回路
100 サーバ
101 LSI
102 主記憶装置
103 補助記憶装置
111 プロセッサコア
112 L1インストラクションキャッシュ
113 L1データキャッシュ
114 L2キャッシュ
115 メモリコントローラ
200、200A、200B、200X、400、600 SRAM
210 サブブロック
211A、211B サブアレイ
212A、212B、412A、412B ワードラインドライバ
213、413 カラム選択/読み書き回路
214 グローバルビットライン
215A、215B 切替回路
220、420 デコーダ
221、421 ロウデコーダ
222 サブブロックデコーダ
223 上下選択デコーダ
224 パターン選択デコーダ
225、424 カラムデコーダ
230A、230B、430A、430B 入出力ポート(I/O)
240 タイマ
422 サブアレイデコーダ
423 パターン選択デコーダ
450U、450L サブバンク
本発明の実施の形態の半導体記憶装置は、データを保持する複数のメモリセルを前記データのビット毎にそれぞれ有する複数のメモリブロックと、同一アドレスの複数のメモリセルを特定する際に、隣接する前記ビット同士について異なるメモリブロック内のメモリセルを特定するデコーダと、前記デコーダが特定したメモリセルが保持するデータの読み出しと、前記デコーダが特定したメモリセルに対するデータの書き込みとを実行する読み書き制御部とを含む。

Claims (7)

  1. データを保持する複数のメモリセルをそれぞれ有する複数のメモリブロックと、
    同一アドレスの複数のメモリセルを特定する際に、隣接ビットについて異なるメモリブロック内のメモリセルを特定するデコーダと、
    前記デコーダが特定したメモリセルが保持するデータの読み出しと、前記デコーダが特定したメモリセルに対するデータの書き込みとを実行する読み書き制御部と
    を含む、半導体記憶装置。
  2. 前記半導体記憶装置において、
    前記メモリブロックは、前記読み書き制御部の一方の側又は他方の側に配設されるサブアレイであり、
    前記デコーダは、前記同一アドレスの複数のメモリセルを特定する際に、隣接ビットについて、前記読み書き制御部の一方の側のサブアレイ内のメモリセルと、前記読み書き制御部の他方の側のサブアレイ内のメモリセルとを特定する、請求項1記載の半導体記憶装置。
  3. 前記半導体記憶装置において、
    前記デコーダは、前記同一アドレスの複数のメモリセルを特定する際に、奇数ビットについて前記読み書き制御部の一方の側のサブアレイ内のメモリセルを選択するとともに、偶数ビットについて前記読み書き制御部の他方の側のサブアレイ内のメモリセルを選択するためのパターン選択データに基づいて、前記読み書き制御部の一方の側のサブアレイ内のメモリセルと、前記読み書き制御部の他方の側のサブアレイ内のメモリセルとを特定する、請求項2記載の半導体記憶装置。
  4. 前記半導体記憶装置において、
    前記メモリブロックは、前記メモリセルをそれぞれ含む複数のサブブロックが階層化されたサブバンクであり、前記サブバンクは、前記読み書き制御部で読み出し又は書き込みが行われるデータを当該半導体記憶装置の外部回路との間で入出力するための入出力部の一方の側と他方の側とに配設されており、
    前記デコーダは、前記同一アドレスの複数のメモリセルを特定する際に、隣接ビットについて、前記入出力部の一方の側のサブバンク内のメモリセルと、前記入出力部の他方の側のサブバンク内のメモリセルとを特定する、請求項1記載の半導体記憶装置。
  5. 前記半導体記憶装置において、
    前記デコーダは、前記同一アドレスの複数のメモリセルを特定する際に、奇数ビットについて前記入出力部の一方の側のサブバンク内のメモリセルを選択するとともに、偶数ビットについて前記入出力部の他方の側のサブバンク内のメモリセルを選択するためのパターン選択データに基づいて、前記入出力部の一方の側のサブバンク内のメモリセルと、前記入出力部の他方の側のサブバンク内のメモリセルとを特定する、請求項4記載の半導体記憶装置。
  6. 前記半導体記憶装置において、
    前記メモリブロックは、前記メモリセルをそれぞれ含む複数のサブブロックが階層化されたサブバンクであり、前記サブバンクは、前記読み書き制御部で読み出し又は書き込みが行われるデータを当該半導体記憶装置の外部回路との間で入出力するための入出力部の一方の側と他方の側とに配設されており、
    前記デコーダは、前記同一アドレスの複数のメモリセルを特定する際に、隣接ビットについて、前記入出力部の一方の側のサブバンク内のサブブロックと、前記入出力部の他方の側のサブバンク内のサブブロックとを特定するとともに、前記サブブロックの前記読み書き制御部の一方の側と他方の側とに配設されるサブアレイについて、1ビットずつ又は2ビットずつ、前記読み書き制御部の一方の側のサブアレイに含まれるメモリセルと、前記読み書き制御部の他方の側のサブアレイに含まれるメモリセルとを特定する、請求項1記載の半導体記憶装置。
  7. データを保持する複数のメモリセルをそれぞれ有する複数のメモリブロックを有する半導体記憶装置の制御方法において、
    前記半導体記憶装置のデコーダが、同一アドレスの複数のメモリセルを特定する際に、隣接ビットについて異なるメモリブロック内のメモリセルを特定するステップと、
    前記半導体記憶装置の読み書き制御部が、前記デコーダが特定したメモリセルが保持するデータの読み出しと、前記デコーダが特定したメモリセルに対するデータの書き込みとを実行するステップと
    を含む、半導体記憶装置の制御方法。
JP2013504446A 2011-03-15 2011-03-15 半導体記憶装置及び半導体記憶装置の制御方法 Pending JPWO2012124063A1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/056109 WO2012124063A1 (ja) 2011-03-15 2011-03-15 半導体記憶装置及び半導体記憶装置の制御方法

Publications (1)

Publication Number Publication Date
JPWO2012124063A1 true JPWO2012124063A1 (ja) 2014-07-17

Family

ID=46830192

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013504446A Pending JPWO2012124063A1 (ja) 2011-03-15 2011-03-15 半導体記憶装置及び半導体記憶装置の制御方法

Country Status (3)

Country Link
US (1) US20140003134A1 (ja)
JP (1) JPWO2012124063A1 (ja)
WO (1) WO2012124063A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10867681B2 (en) * 2018-03-23 2020-12-15 Taiwan Semiconductor Manufacturing Company, Ltd. SRAM memory having subarrays with common IO block

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5593598A (en) * 1979-01-05 1980-07-16 Nec Corp Memory unit
JPH038040A (ja) * 1989-06-05 1991-01-16 Koufu Nippon Denki Kk 1ビット誤リ情報記憶装置
JPH0644800A (ja) * 1992-07-27 1994-02-18 Mitsubishi Electric Corp 半導体記憶装置
JP2000100172A (ja) * 1998-07-22 2000-04-07 Mitsubishi Electric Corp 半導体記憶装置
JP2000268560A (ja) * 1999-03-15 2000-09-29 Nec Corp 半導体集積回路装置
JP2003077294A (ja) * 2001-08-31 2003-03-14 Mitsubishi Electric Corp メモリ回路
JP2003208795A (ja) * 2002-01-11 2003-07-25 Mitsubishi Electric Corp 半導体記憶装置
JP2004063074A (ja) * 2002-07-26 2004-02-26 Samsung Electronics Co Ltd 半導体メモリ装置
JP2005004947A (ja) * 2003-05-20 2005-01-06 Nec Electronics Corp メモリ装置及びメモリのエラー訂正方法
JP2007102977A (ja) * 2005-10-07 2007-04-19 Toshiba Corp 半導体記憶装置
JP2007140948A (ja) * 2005-11-18 2007-06-07 Elpida Memory Inc 積層メモリ
JP2008112503A (ja) * 2006-10-30 2008-05-15 Elpida Memory Inc 積層メモリ
JP2008217916A (ja) * 2007-03-06 2008-09-18 Matsushita Electric Ind Co Ltd メモリ装置およびメモリシステム
JP2010040143A (ja) * 2008-08-07 2010-02-18 Nec Electronics Corp 半導体集積回路
JP2010170641A (ja) * 2009-01-26 2010-08-05 Fujitsu Ltd 半導体記憶回路装置、読出制御方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0676598A (ja) * 1992-08-28 1994-03-18 Mitsubishi Electric Corp 半導体記憶装置
US6217234B1 (en) * 1994-07-29 2001-04-17 Discovision Associates Apparatus and method for processing data with an arithmetic unit
JP2002251900A (ja) * 2001-02-26 2002-09-06 Mitsubishi Electric Corp 半導体記憶装置

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5593598A (en) * 1979-01-05 1980-07-16 Nec Corp Memory unit
JPH038040A (ja) * 1989-06-05 1991-01-16 Koufu Nippon Denki Kk 1ビット誤リ情報記憶装置
JPH0644800A (ja) * 1992-07-27 1994-02-18 Mitsubishi Electric Corp 半導体記憶装置
JP2000100172A (ja) * 1998-07-22 2000-04-07 Mitsubishi Electric Corp 半導体記憶装置
JP2000268560A (ja) * 1999-03-15 2000-09-29 Nec Corp 半導体集積回路装置
JP2003077294A (ja) * 2001-08-31 2003-03-14 Mitsubishi Electric Corp メモリ回路
JP2003208795A (ja) * 2002-01-11 2003-07-25 Mitsubishi Electric Corp 半導体記憶装置
JP2004063074A (ja) * 2002-07-26 2004-02-26 Samsung Electronics Co Ltd 半導体メモリ装置
JP2005004947A (ja) * 2003-05-20 2005-01-06 Nec Electronics Corp メモリ装置及びメモリのエラー訂正方法
JP2007102977A (ja) * 2005-10-07 2007-04-19 Toshiba Corp 半導体記憶装置
JP2007140948A (ja) * 2005-11-18 2007-06-07 Elpida Memory Inc 積層メモリ
JP2008112503A (ja) * 2006-10-30 2008-05-15 Elpida Memory Inc 積層メモリ
JP2008217916A (ja) * 2007-03-06 2008-09-18 Matsushita Electric Ind Co Ltd メモリ装置およびメモリシステム
JP2010040143A (ja) * 2008-08-07 2010-02-18 Nec Electronics Corp 半導体集積回路
JP2010170641A (ja) * 2009-01-26 2010-08-05 Fujitsu Ltd 半導体記憶回路装置、読出制御方法

Also Published As

Publication number Publication date
WO2012124063A1 (ja) 2012-09-20
US20140003134A1 (en) 2014-01-02

Similar Documents

Publication Publication Date Title
US6606275B2 (en) High performance semiconductor memory devices
US6608780B2 (en) High performance semiconductor memory devices
US9275710B2 (en) Three dimensional cross-access dual-port bit cell design
TWI771090B (zh) 記憶體裝置、記憶體輸入/輸出以及形成記憶體裝置的方法
US11580059B2 (en) Multi-port memory architecture for a systolic array
KR20090027792A (ko) 복수의 로우 디코더를 공유하는 제어 블록을 갖는 반도체메모리 장치
US20120243285A1 (en) Multiple write during simultaneous memory access of a multi-port memory device
US11222670B2 (en) Circuit architecture to derive higher mux from lower mux design
JP2007213732A (ja) 半導体記憶装置
US6404693B1 (en) Integrated circuit memory devices that select sub-array blocks and input/output line pairs based on input/output bandwidth, and methods of controlling same
WO2011161798A1 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
US7215591B2 (en) Byte enable logic for memory
WO2012124063A1 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
US8120987B2 (en) Structure and method for decoding read data-bus with column-steering redundancy
TW201933346A (zh) 虛設字線追蹤電路
JP2002343086A (ja) 列クリアを用いてramに書き込む方法
JPH01263992A (ja) 半導体集積回路
JP4757607B2 (ja) 半導体メモリ
JP2000156078A (ja) 半導体記憶装置
US6144609A (en) Multiport memory cell having a reduced number of write wordlines
WO2003046918A2 (en) High performance semiconductor memory devices
JP2022533622A (ja) シフト可能メモリ、およびシフト可能メモリを動作させる方法
US9030887B2 (en) Semiconductor memory device and information processing apparatus
US8787075B2 (en) Low-voltage semiconductor memory
JP2009048753A (ja) 半導体記憶装置及びデータの格納方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141111

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150310