以下、本発明の半導体記憶装置、及び、情報処理装置を適用した実施の形態について説明する。
ここでは、実施の形態の半導体記憶装置について説明する前に、比較例の半導体記憶装置とその問題点について説明する。
<比較例>
図1は、SRAM(Static Random Access Memory)に用いられるシングルポート型のビットセルの構造を概略的に示す図であり、図2は図1のビットセルの構造を詳細に示す図である。
図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(High)レベルにして、ワードラインWLを駆動すると、ビットラインBL、BLBのいずれか一方が記憶ノードN1又はN2によりL(Low)レベルにされ、読み出しデータとして出力される。
一方、データを書き込む際は、一対のビットラインBL、BLBのいずれか一方をHレベル、他方をLレベルにした状態で、ワードラインWLを駆動し、記憶ノードN1、N2に書き込みを行う。
図1、図2に示すような6トランジスタ型のビットセル10は、1つのビットセル10においてデータの読み出しと書き込みを同時に行うことはできず、読み出しと書き込みは異なるサイクルで行われる。
図3は、10トランジスタ型のマルチポートビットセルを示す図である。図3に示すマルチポートビットセル20は、2つのインバータ11、12と、トランジスタ13、14、21、22、23、24を含む。
2つのインバータ自体は、図1に示したシングルポート型のビットセル10に含まれるインバータ11、12と同一であり、それぞれが2つのトランジスタを含むため(図2参照)、ここでは同一符号を用い、その説明を省略する。
図3に示すマルチポート型のビットセル20は、ワードラインが3本あり、書き込み用ワードラインWWL(Write Word Line)A、WWLBと、読み出し用ワードラインRWL(Read Word Line)とを含む。また、ビットラインは二対あり、正極性の書き込み用ビットラインWBL(Write Bit Line)、負極性の書き込み用ビットラインWBLB(Write Bit Line Bar)、及び正極性の読み出し用ビットラインRBL(Read Bit Line)、負極性の読み出し用ビットラインRBLB(Read Bit Line Bar)を含む。
読み出し用ワードラインRWLには、NMOSトランジスタ13、14のゲートがそれぞれ接続されている。NMOSトランジスタ13のドレインは読み出し用ビットラインRBLに接続され、ソースは記憶ノードN2に接続されている。また、NMOSトランジスタ14のドレインは読み出し用ビットラインRBLBに接続され、ソースは記憶ノードN1に接続されている。
書き込み用ワードラインWWLAには、NMOSトランジスタ21のゲートが接続されている。NMOSトランジスタ21のドレインは書き込み用ビットラインWBLに接続され、ソースはNMOSトランジスタ22のドレインに接続されている。また、NMOSトランジスタ22のドレインはNMOSトランジスタ21のソースに接続され、ソースは接地され、ゲートは記憶ノードN2に接続されている。
書き込み用ワードラインWWLBには、NMOSトランジスタ23のゲートが接続されている。NMOSトランジスタ23のドレインは書き込み用ビットラインWBLBに接続され、ソースはNMOSトランジスタ24のドレインに接続されている。
また、NMOSトランジスタ24のドレインはNMOSトランジスタ23のソースに接続され、ソースは接地され、ゲートは記憶ノードN1に接続されている。
データを読み出す際は、読み出し用ワードラインRWLと、読み出し用ビットラインRBL、RBLBとでビットセル20を選択する。
データを書き込む際は、書き込み用ワードラインWWLA、WWLBと、書き込み用ビットラインWBL、WBLBとでビットセル20を選択する。
ビットセル20は、読み出しに用いるトランジスタ13、14と、書き込みに用いるトランジスタ21、22、23、24を含み、読み出しと書き込みで別々のワードライン及びビットラインを用いるため、同時に読み書きを行うことができる。
図4は、擬似マルチポート型のビットセル30を示す図である。
図4に示すように、ビットセル30は、ビットラインBLに接続されたNMOSトランジスタ13のゲートがワードラインWLA_Lに接続され、ビットラインBLBに接続されたNMOSトランジスタ14のゲートがワードラインWLB_Lに接続されている。その他の構成は、図1に示すビットセル10と同様である。
ビットセル30では、データを読み出す際は、一対のワードラインWLA_L、WLB_LをともにHレベルにするとともに、一対のビットラインBL、BLBを選択してビットセル30の記憶ノードN1、N2のデータを読み出す。
また、データを書き込む際は、ワードラインWLA_L、WLB_LをともにHレベルにするとともに、ビットラインBL、BLBを選択して、ビットセル30の記憶ノードN1、N2にデータを書き込む。
このように、擬似マルチポート型のビットセル30は、記憶ノードN1、N2で保持されている2つのデータを同時に読み出すことができるとともに、記憶ノードN1、N2にデータを書き込むことができる。擬似マルチポート型のビットセル30は、所謂2リード・1ライト(2R1W)型のSRAMを構築することができる。
次に、図5を用いて、比較例の擬似マルチポート型のビットセル30を含むSRAM40について説明する。
図5は、比較例の擬似マルチポート型のビットセル30を含むSRAM40を示す図である。
SRAM40は、主な構成要素として、サブアレイ41、42、ワードラインドライバ43、及びファイナルワードラインドライバ44を含む。
サブアレイ(sub array)41、42は、複数の擬似マルチポート型のビットセル30を含む。図5には、説明の便宜上、サブアレイ41の内部にワードラインWLA_L、WLB_Lを1本ずつ示し、サブアレイ42の内部にワードラインWLA_R、WLB_Rを1本ずつ示す。
サブアレイ41の内部に示すワードラインWLA_L、WLB_Lは、図4に示すワードラインWLA_L、WLB_Lに対応する。ワードラインWLA_L、WLB_Lの添え字"_L"は、図5において、サブアレイ41がファイナルワードラインドライバ44の左側に位置することを示す。
また、サブアレイ42の内部に示すワードラインWLA_R、WLB_Rは、図4に示すワードラインWLA_L、WLB_Lと同様の一対のワードラインである。図5では、サブアレイ42がファイナルワードラインドライバ44の右側に位置するため、添え字"_R"を付す。
このように、図5には、サブアレイ41の内部にワードラインWLA_L、WLB_Lを1本ずつ示し、サブアレイ42の内部にワードラインWLA_R、WLB_Rを1本ずつ示す。
しかしながら、実際には、サブアレイ41の内部には、ワードラインWLA_L、WLB_Lの対が複数あり、擬似マルチポート型のビットセル30が行方向(図5中の縦方向)に複数配列される。同様に、サブアレイ42の内部には、ワードラインWLA_R、WLB_Rの対が複数あり、擬似マルチポート型のビットセル30が行方向(図5中の縦方向)に複数配列される。
また、図5では図示を省くが、サブアレイ41、42の内部には、複数対のビットラインが配列され、複数のマルチポート型のビットセル30が接続されている。また、図5では、ビットラインを駆動するドライバ等を省略する。
以上のようにして、サブアレイ41、42の内部には、それぞれ、複数の擬似マルチポート型のビットセル30がマトリクス状に配列される。
ワードラインドライバ43は、サブアレイ41の隣に配設される。ワードラインドライバ43は、NAND演算部43A、43Bを含む。NAND演算部43Aには、ワードライン選択信号WLAと、イネーブル信号ENA_Aが入力される。NAND演算部43Bには、ワードライン選択信号WLBと、イネーブル信号ENA_Bが入力される。
図5には、Aワードライン(WLA_L、WLA_R)とBワードライン(WLB_L、WLB_R)との対を一つ示すが、上述のように、実際には、マトリクス状に配列されるビットセル30に対応して、Aワードライン(WLA_L、WLA_R)とBワードライン(WLB_L、WLB_R)の対は、複数対配列される。
このため、NAND演算部43A、43Bは、実際には、複数対のAワードライン(WLA_L、WLA_R)とBワードライン(WLB_L、WLB_R)に対応して、複数配設される。
ワードライン選択信号WLAは、複数本あるワードラインWLA_L、WLA_Rのうちの特定のワードラインWLA_L、WLA_Rを選択するための選択信号である。イネーブル信号ENA_Aは、ワードラインWLA_L、WLA_Rを活性化することを有効な状態にする信号である。
ワードラインWLA_L、WLA_Rは、NAND演算部43Aに入力されるワードライン選択信号WLAとイネーブル信号ENA_AがともにHレベルのときに、活性化されてHレベルになる。
ワードライン選択信号WLBは、複数本あるワードラインWLB_L、WLB_Rのうちの特定のワードラインWLB_L、WLB_Rを選択するための選択信号である。イネーブル信号ENA_Bは、ワードラインWLB_L、WLB_Rを活性化することを有効な状態にする信号である。
ワードラインWLB_L、WLB_Rは、NAND演算部43Bに入力されるワードライン選択信号WLBとイネーブル信号ENA_BがともにHレベルのときに、活性化されてHレベルになる。
ファイナルワードラインドライバ44は、サブアレイ41と42の間に配設される。ファイナルワードラインドライバ44は、インバータ44AL、44AR、44BL、44BRを含む。
インバータ44AL及び44ARの入力端子は、ワードラインドライバ43のNAND演算部43Aの出力端子に接続される。インバータ44ALの出力端子は、サブアレイ41のワードラインWLA_Lに接続され、インバータ44ARの出力端子は、サブアレイ42のワードラインWLA_Rに接続される。
インバータ44AL及び44ARは、NAND演算部43Aから出力される選択信号XWLAを反転して、それぞれ、ワードラインWLA_L及びWLA_Rに出力する。選択信号XWLAは、ワードライン選択信号WLAを反転させた信号である。
このため、イネーブル信号ENA_AがHレベルのときには、選択信号WLAと、インバータ44AL、44ARの出力は等しくなる。すなわち、ワードラインWLA_L及びWLA_Rには、選択信号WLAと信号レベルの等しい信号が出力される。
インバータ44BL及び44BRの入力端子は、ワードラインドライバ43のNAND演算部43Bの出力端子に接続される。インバータ44BLの出力端子は、サブアレイ41のワードラインWLB_Lに接続され、インバータ44BRの出力端子は、サブアレイ42のワードラインWLB_Rに接続される。
インバータ44BL及び44BRは、NAND演算部43Bから出力される選択信号XWLBを反転して、それぞれ、ワードラインWLB_L及びWLB_Rに出力する。選択信号XWLBは、ワードライン選択信号WLBを反転させた信号である。
このため、イネーブル信号ENA_BがHレベルのときには、選択信号WLBと、インバータ44BL、44BRの出力は等しくなる。すなわち、ワードラインWLB_L及びWLB_Rには、選択信号WLBと信号レベルの等しい信号が出力される。
以上のように、サブアレイ41に含まれる擬似マルチポート型のビットセル30(図4参照)をマルチポートとして動作させてデータを読み出す場合とデータを書き込む場合には、ワードラインドライバ43で2本のワードラインWLA_L及びWLB_Lを個別に制御する必要がある。
同様に、サブアレイ42に含まれる擬似マルチポート型のビットセル30(図4参照)をマルチポートとして動作させてデータを読み出す場合とデータを書き込む場合には、ワードラインドライバ43で2本のワードラインWLA_R及びWLB_Rを個別に制御する必要がある。
このように、サブアレイ41、42に含まれる擬似マルチポート型のビットセル30(図4参照)をマルチポートとして動作させてデータを読み出す場合とデータを書き込む場合には、Aワードライン(WLA_L、WLA_R)とBワードライン(WLB_L、WLB_R)を個別に制御する必要がある。
次に、図6を用いて、擬似マルチポート型のビットセル30(図4参照)をシングルポートのビットセルとして動作させるSRAM50について説明する。
図6は、比較例の擬似マルチポート型のビットセル30を含むSRAM50を示す図である。
SRAM50は、主な構成要素として、サブアレイ51、52、ワードラインドライバ53、及びファイナルワードラインドライバ54を含む。
サブアレイ(sub array)51、52は、図5に示すSRAM40のサブアレイ41、42と同様に、マトリクス状に配列される複数の擬似マルチポート型のビットセル30(図4参照)を含むが、各擬似マルチポート型のビットセル30がシングルポートのビットセルとして動作される点が異なる。
なお、図6では図示を省くが、サブアレイ51、52の内部には、複数対のビットラインが配列され、複数のマルチポート型のビットセル30が接続されている。また、図6では、ビットラインを駆動するドライバ等を省略する。
ここで、シングルポートのビットセルとしての動作とは、一対のワードラインのうちの一方のみを用いてデータの読み出しを行うことをいう。例えば、マルチポートのビットセルをシングルポートのビットセルとしても用いることができれば、1つのLSI(Large Scale Integrated circuit:半導体集積回路)の中に作製したマルチポートのビットセルの一部をシングルポートのビットセルとして動作させることができる。
このようなことができれば、LSIで作製するメモリ等の低コスト化が図れるとともに、マルチポートセルのビットセルとして動作するビットセルと、シングルポートのビットセルとして動作するビットセルとの製造上のばらつきを相殺することができ、動作特性を向上させることができる。
このため、ここでは、擬似マルチポート型のビットセル30をシングルポートのビットセルとして動作することについて検討する。
各擬似マルチポート型のビットセル30をシングルポートのビットセルとして動作させるため、サブアレイ51、52は、Aワードライン(WLA_L、WLA_R)とBワードライン(WLB_L、WLB_R)が共通の制御信号で活性化される。
ワードラインドライバ53は、サブアレイ51の隣に配設され、NAND演算部53Aを含む。NAND演算部53Aには、ワードライン選択信号WLAと、イネーブル信号ENA_Aが入力される。ワードライン選択信号WLAと、イネーブル信号ENA_Aは、図5に示すSRAM40のワードライン選択信号WLAと、イネーブル信号ENA_Aと同様の制御信号である。
図6には、AワードラインWLA_L、WLA_Rを1本ずつ示すが、実際には、マトリクス状に配列されるビットセル30に対応して、AワードラインWLA_L、WLA_Rは複数ずつ配列される。このため、NAND演算部53Aは、実際には、各AワードラインWLA_L、WLA_Rに対応して、複数配設される。
NAND演算部53Aの出力端子は、サブアレイ51、52の間に配設されるファイナルワードラインドライバ54のインバータ54AL、54AR、54BL、54BRの入力端子に接続される。
ファイナルワードラインドライバ54は、インバータ54AL、54AR、54BL、54BRを含む。インバータ54AL、54AR、54BL、54BRの入力端子は、ワードラインドライバ53のNAND演算部53Aの出力端子に接続されている。
このため、インバータ54AL、54AR、54BL、54BRには、ワードラインドライバ53のNAND演算部53Aから、共通の制御信号として、選択信号XWLAが入力される。これは、SRAM50に含まれる各擬似マルチポート型のビットセル30(図4参照)をシングルポートのビットセルとして動作させるためである。
図6に示すSRAM50では、各擬似マルチポート型のビットセル30がシングルポートのメモリとして駆動されるため、Aワードライン(WLA_L、WLA_R)とBワードライン(WLB_L、WLB_R)に入力される駆動信号は図7に示すような動作波形になる。
図7は、比較例のSRAM50の動作を示すタイミングチャートである。図7では、Aワードライン(WLA_L、WLA_R)をWLA_L/Rと示し、Bワードライン(WLB_L、WLB_R)をWLB_L/Rと示す。
Aワードライン(WLA_L/R)とBワードライン(WLB_L/R)に入力される駆動信号は、ワードラインドライバ53のNAND演算部53Aが出力する選択信号XWLAがインバータ54AL、54AR、54BL、54BRで反転された信号である。
すなわち、Aワードライン(WLA_L/R)とBワードライン(WLB_L/R)に入力される駆動信号は、図7に示すように、NAND演算部53Aに入力されるイネーブル信号ENA_AがHレベルの状態で、ワードライン選択信号WLAのHレベル/Lレベルを反映した信号になる。
ここで、SRAM50にデータを書き込むとき(WRITE動作時)は、図4に示すビットセルの記憶ノードN1、N2の両方にデータを書き込む必要がある。
このため、データを書き込むとき(WRITE動作時)は、Aワードライン(WLA_L/R)とBワードライン(WLB_L/R)をともに活性化する必要がある。
一方、SRAM50からデータを読み出すとき(READ動作時)は、図4に示すビットセル30の記憶ノードN1、N2のいずれか一方からデータを読み出すことができれば足り、記憶ノードN1、N2の両方からデータを読み出す必要はない。記憶ノードN1、N2のいずれか一方のデータを読み出せば、ビットセル30に保持されたデータを把握することができるからである。
このため、データを読み出すとき(READ動作時)は、Aワードライン(WLA_L/R)とBワードライン(WLB_L/R)のいずれか一方を活性化すれば十分である。従って、例えば、Aワードライン(WLA_L/R)を活性化してSRAM50からデータを読み出す場合は、Bワードライン(WLB_L/R)を活性化する必要はない。
しかしながら、図6に示す比較例のSRAM50では、データを読み出すとき(READ動作時)にも図7に破線の楕円で示すようにBワードライン(WLB_L/R)が活性化されるため、本来必要のない余分な電力消費が生じるという問題がある。
この問題を解決するには、データを書き込むときは、Aワードライン(WLA_L/R)とBワードライン(WLB_L/R)をともに活性化し、データを読み出すときは、Aワードライン又はBワードラインのいずれか一方のみを活性化することにより、消費電力の低減を図ることのできる回路が必要である。
ここで、図8を用いて、データを読み出すときは、Aワードライン又はBワードラインのいずれか一方のみを活性化する回路について検討する。
図8は、比較例のSRAM60を示す図である。
SRAM60は、主な構成要素として、サブアレイ51、52、ワードラインドライバ53、及びファイナルワードラインドライバ64を含む。SRAM60は、図6に示すSRAM50のファイナルワードラインドライバ54の構成を変形したものである。
このため、サブアレイ(sub array)51、52とワードラインドライバ53は、図6に示すSRAM50と同様のものであり、ここでは重複説明を省略する。
なお、図8では、図6と同様に、サブアレイ51、52の内部に配設されるビットラインとビットラインを駆動するドライバ等を省略する。
ファイナルワードラインドライバ64は、インバータ54AL、54AR、NOR演算部64L、64Rを含む。インバータ54AL、54ARは、図6に示すファイナルワードラインドライバ54のインバータ54AL、54ARと同様である。
ファイナルワードラインドライバ64には、インバータ65から切替信号R/Wが入力される。インバータ65は、SRAM60のローカルコントロールブロック(図6では図示を省略)に含まれ、ライトイネーブル(Write Enable)信号を反転させた切替信号R/Wを出力する。
ここでは、ライトイネーブル信号のLレベルは、書き込み(WRITE)動作を有効にする信号レベル)であり、Hレベルは、書き込み(WRITE)動作を無効にする信号レベルである。すなわち、ライトイネーブル信号のHレベルは、読み出し(READ)動作を可能にする信号レベルである。
切替信号R/Wは、ライトイネーブル信号がLレベルの時にLレベルであり、ライトイネーブル信号がHレベルのときにHレベルになる。ここでは、一例として、切替信号R/WのLレベルは、書き込み(WRITE)動作を行う際の信号レベルであり、切替信号R/WのHレベルは、読み出し(READ)動作を行う際の信号レベルであることとする。
NOR演算部64L、64Rの一方の入力端子(図8中の下側の入力端子)には、ワードラインドライバ53のNAND演算部53Aの出力端子が接続される。NOR演算部64L、64Rの他方の入力端子(図8中の上側の入力端子)には、インバータ65の出力端子が接続される。
ここで、図9を用いて、SRAM60の動作について説明する。
図9は、比較例のSRAM60の動作を示すタイミングチャートである。
書き込み(WRITE)動作を行うときには、インバータ65が出力する切替信号R/WがLレベルであり、NOR演算部64L、64Rの出力は、インバータ54AL、54ARと同一の信号レベルになる。
従って、書き込み(WRITE)動作時には、Aワードライン(WLA_L/R)とBワードライン(WLB_L/R)の両方に、図9に示すように、ワードライン選択信号WLAの信号レベルを反映した駆動信号が入力される。
一方、読み出し(READ)動作を行うときには、インバータ65が出力する切替信号R/WがHレベルであり、NOR演算部64L、64Rの出力は、選択信号XWLAの信号レベルに関わらず、Lレベルに保持される。
従って、読み出し(READ)動作時には、Aワードライン(WLA_L/R)には、図9に示すように、ワードライン選択信号WLAの信号レベルを反映した駆動信号が入力される。また、このとき、Bワードライン(WLB_L/R)に入力される駆動信号は、図9に示すように、Lレベルに保持される。すなわち、読み出し時には、Bワードライン(WLB_L/R)は活性化されない。
このように、読み出し時にBワードラインを活性化せずに済むため、シングルポートのメモリとしての動作を行う際に、図7に破線で示したような本来必要のない余分な電力消費が生じることが無くなる。
ところで、図8に示すSRAM60のファイナルワードラインドライバ64は、NOR演算部64L、64Rを含む。
一般に、LSI(Large Scale Integrated circuit:大規模集積回路)でNOR回路とインバータを作製する場合、NOR回路は、インバータの2倍以上のサイズ(面積)が必要であり、消費電力も略サイズ(面積)の比率に応じて増大する。
また、インバータ65については、2つのNOR演算部64L、64RがBワードライン(WLB_L/R)に十分な信号レベルの駆動信号を出力できるようにするために、NOR演算部64L、64Rの約8倍程度のサイズ(面積)が必要になり、消費電力も略サイズ(面積)の比率に応じて増大する。
以上より、図8に示すSRAM60では、ファイナルワードラインドライバ64での消費電力が増大するため、読み出し時にBワードラインを活性化せずに済んでも、トータルでは消費電力を低減できないという問題がある。
以上のように、擬似マルチポートセル型のビットセル30を含む比較例のSRAM50、60には、シングルポートのメモリとして動作させた場合に、消費電力の低減を達成できないという問題がある。
擬似マルチポート型のビットセル30は、シングルポートのメモリとしても動作させることができるため、LSIの中に作製したマルチポートのビットセルの一部をシングルポートのビットセルとして動作させることができれば、メモリ等の低コスト化が図れる。また、これに加えて、マルチポートセルのビットセルとして動作するビットセルと、シングルポートのビットセルとして動作するビットセルとの製造上のばらつきを相殺することができ、動作特性を向上させることができる。
このため、以下で説明する実施の形態では、消費電力の低減を図った半導体記憶装置を提供することを目的とする。
<実施の形態>
図10は、実施の形態の半導体記憶装置を含む情報処理装置を示す図である。
実施の形態では、一例として情報処理装置がサーバ80の実施形態について説明する。
図10に示すように、サーバ80は、LSI(Large Scale Integrated circuit:大規模集積回路)81、主記憶装置82、及び補助記憶装置83を含む。LSI81と主記憶装置82の間、及び主記憶装置82と補助記憶装置83の間は、例えば、それぞれ専用のバスで接続されている。
LSI81は、プロセッサコア91、L1(Level−1:一次)インストラクションキャッシュ92、L1データキャッシュ93、L2(Level−2:二次)キャッシュ94、及びメモリコントローラ95を有する。
プロセッサコア91は、例えば、CPU(Central Processing Unit:中央演算処理装置)コア(Core)であり、情報処理装置としてのサーバ80の演算処理を行う演算処理装置である。ここで、プロセッサコア91、L1インストラクションキャッシュ92、及びL1データキャッシュ93は、CPUとして一体化されていてもよい。プロセッサコア91は、複数あってもよく、その場合は、各プロセッサコア91にL1インストラクションキャッシュ92とL1データキャッシュ93が一つずつ接続されていてもよい。
L1インストラクションキャッシュ92は、プロセッサコア91の演算処理に必要なプログラムを一時的に記憶する一次命令キャッシュである。L1インストラクションキャッシュは、例えば、SRAMが用いられる。
L1データキャッシュ93は、プロセッサコア91が演算処理に必要なデータ、又は演算処理で生成されたデータを一時的に記憶する一次データキャッシュである。実施の形態では、L1データキャッシュ93に、実施の形態の半導体記憶装置としてのSRAMを用いる形態について説明する。なお、詳細な構造については、後述する。
L2キャッシュ94は、メモリ階層構造において主記憶装置82に近いという意味で、L1インストラクションキャッシュ92及びL1データキャッシュ93よりも下位のキャッシュであり、典型的には、L1インストラクションキャッシュ92及びL1データキャッシュ93よりも処理速度は低いが、容量の大きいキャッシュである。L2キャッシュ94は、例えば、SRAMで実現される。
メモリコントローラ95は、LSI81が主記憶装置82との間でデータの読み書きを行う際の制御を行う制御装置であり、例えば、LSIで実現される。
主記憶装置82は、例えば、DRAM(Dynamic Random Access Memory:ダイナミックランダムアクセスメモリ)又はROM(Read Only Memory:読み出し専用メモリ)であり、補助記憶装置83は、例えば、ハードディスクである。
なお、サーバ80は、外部装置との通信を行うデータ入出力インタフェース等を含んでいてもよい。
図11は、実施の形態のSRAM100を示す図である。図11は、SRAM100の物理的な配置ではなく、各構成要素の接続関係をブロック図として表す図である。
実施の形態のSRAM100は、半導体記憶装置の一例である。SRAM100は、例えば、図10に示すL1データキャッシュ93として用いられる。
SRAM100は、サブアレイ110、アドレスデコーダ120、ロウ選択部(row選択部)130A、サブアレイ選択部(sub array選択部)130B、及びカラム選択部(column選択部)130Cを含む。
SRAM100は、さらに、ワードラインドライバ(WL driver)140、ファイナルワードラインドライバ(Final WL driver)150、及びグローバル選択部(Global-R/W select)160を含む。
SRAM100は、さらに、ローカル制御部(Local-R/W select & WL control)170、ローカルブロック(Local-R/W block)180、及びグローバルブロック(Global-R/W block)190を含む。
サブアレイ110は、マトリクス状に配列される複数の擬似マルチポート型のビットセル30を含む。擬似マルチポート型のビットセル30は、擬似マルチポートセルの一例である。
サブアレイ110は、メモリブロックの一例である。ビットセル30は、比較例のSRAM50、60のビットセル30と同様であり、図4に示す回路構成を有する。このため、ビットセル30の回路構成についての説明は省略する。
図11には、説明の便宜上、カラム方向(図11中の横方向)に3列、かつ、ロウ方向(図11中の縦方向)に2行に配列される6つのビットセル30を示すが、実際には、カラム方向及びロウ方向にさらに多くのビットセル30が配列される。
サブアレイ110には、2対のワードラインWLA00、WLB00、WLA01、WLB01を示すとともに、3対のビットラインBL00、BLB00、BL01、BLB01、BL02、BLB02を示す。
しかしながら、上述のように、実際にはさらに多くのビットセル30がサブアレイ110に含まれるため、さらに多くのワードライン及びビットラインがサブアレイ110に含まれる。
なお、ここでは、AワードラインWLA00及びWLA01と、BワードラインWLB00及びWLB01とに分けて説明する場合がある。
各ビットセル30、ワードラインWLA00、WLB00、WLA01、WLB01、及びビットラインBL00、BLB00、BL01、BLB01、BL02、BLB02の接続関係は、図4に示すビットセル30、ワードラインWLA_L、WLB_L、及びビットラインBL、BLBと同様である。
アドレスデコーダ120には、読み出し命令又は書き込み命令に含まれる入力アドレスが入力される。アドレスデコーダ120の出力端子は、矢印で示す信号線101A、101B、101Cを介して、それぞれ、ロウ選択部130A、サブアレイ選択部130B、及びカラム選択部130Cの各入力端子に接続されている。
入力アドレスは、SRAM100を含むサーバ80のプロセッサコア111(図10参照)からアドレスデコーダ120に入力される。入力アドレスは、ロウを特定するためのロウアドレス、サブアレイを特定するためのサブアレイアドレス、及びカラムを特定するためのカラムアドレスを含む。
アドレスデコーダ120は、入力アドレスに含まれるロウアドレス、サブアレイアドレス、及びカラムアドレスをデコードし、ロウ選択データ、サブアレイ選択データ、及びカラム選択データを生成する。
アドレスデコーダ120は、ロウ選択データ、サブアレイ選択データ、及びカラム選択データを、それぞれ、ロウ選択部130A、サブアレイ選択部130B、及びカラム選択部130Cに出力する。
ロウ選択部(row選択部)130Aの入力端子は、矢印で示す信号線101Aを介してアドレスデコーダ120に接続されており、出力端子は、矢印で示す信号線102Aを介してワードラインドライバ140に接続されている。
ロウ選択部130Aは、アドレスデコーダ120から入力されるロウ選択データをワードラインドライバ140に伝送する。なお、ロウ選択部130Aは、入力アドレスのうちロウ選択データに関する一部のデータをデコードする機能を有していてもよい。
サブアレイ選択部(sub array選択部)130Bの入力端子は、矢印で示す信号線101Bを介してアドレスデコーダ120に接続されており、出力端子は、矢印で示す信号線102B、102Cを介してワードラインドライバ140及びローカル制御部170に接続されている。
サブアレイ選択部130Bは、アドレスデコーダ120から入力されるサブアレイ選択データをワードラインドライバ140及びローカル制御部170に伝送する。サブアレイ選択部130Bは、メモリブロックの一例であるサブアレイ110Aを選択するブロック選択部の一例である。
なお、サブアレイ選択部130Bは、入力アドレスのうちサブアレイ選択データに関する一部のデータをデコードする機能を有していてもよい。
カラム選択部(column選択部)130Cの入力端子は、矢印で示す信号線101Cを介してアドレスデコーダ120に接続されており、出力端子は、矢印で示す信号線102Dを介してローカルブロック180に接続されている。
カラム選択部130Cは、アドレスデコーダ120から入力されるカラム選択データをローカル制御部170に伝送する。なお、カラム選択部130Cは、入力アドレスのうちカラム選択データに関する一部のデータをデコードする機能を有していてもよい。
ワードラインドライバ(WL driver)140は、第1ワードラインドライバの一例である。ワードラインドライバ140の入力端子は、矢印で示す信号線102A及び102Bを介してロウ選択部130A及びサブアレイ選択部130Bにそれぞれ接続されている。ワードラインドライバ140の出力端子は、矢印で示す信号線103Aを介してファイナルワードラインドライバ150に接続されている。
ワードラインドライバ140は、ロウ選択部130Aから入力されるロウ選択データと、サブアレイ選択部130Bから入力されるサブアレイ選択データとに基づき、ワードライン選択信号WLAを生成する。ワードラインドライバ140は、ワードライン選択信号WLAをファイナルワードラインドライバ150に入力する。
ファイナルワードラインドライバ(Final WL driver)150は、ワードラインドライバ140から入力されるワードライン選択信号WLAと、ローカル制御部170から入力される切替信号R/Wとに基づいて、ロウの選択(ワードラインの選択)を行う。
グローバル選択部(Global-R/W select)160は、SRAM100を含むサーバ80のプロセッサコア111(図10参照)からライトイネーブル(Wright Enable)信号WEが入力される。
グローバル選択部160の出力端子は、矢印で示す信号線104を介して、ローカル制御部170に接続されている。説明の便宜上、図11にはローカル制御部170を1つのみ示すが、実際にはローカル制御部170は複数ある。グローバル選択部160は、ライトイネーブル信号WEを複数のローカル制御部170に分配する。
ローカル制御部(Local-R/W select & WL control)170の入力端子は、矢印で示す信号線102B及び104を介して、サブアレイ選択部130B及びグローバル選択部160の出力端子にそれぞれ接続される。ローカル制御部170の出力端子は、矢印で示す信号線103B及び105を介して、ファイナルワードラインドライバ150及びローカルブロック180にそれぞれ接続されている。
ローカル制御部170は、サブアレイ選択部130Bから入力されるサブアレイ選択データと、グローバル選択部160から入力されるライトイネーブル信号WEとに基づき、切替信号R/Wを生成する。ローカル制御部170は、切替信号R/Wをファイナルワードラインドライバ150に出力する。
また、ローカル制御部170は、グローバル選択部160から入力されるライトイネーブル信号WEに基づき、読み書き制御信号を生成する。ローカル制御部170は、読み書き制御信号を、矢印で示す信号線105を介して、ローカルブロック180に出力する。
なお、ローカル制御部170は、制御部の一例である。
ローカルブロック(Local-R/W block)180の入力端子は、矢印で示す信号線102D及び105を介して、カラム選択部130C及びローカル制御部170にそれぞれ接続されている。また、ローカルブロック180のデータ入力端子は、グローバルビットライン191を介して、グローバルブロック190に接続されており、データ出力端子は、グローバルビットライン192を介して、グローバルブロック190に接続されている。
また、ローカルブロック180は、ビットラインBL00、BLB00、BL01、BLB01、BL02、BLB02を介して、サブアレイ110のビットセル30に接続されている。
ローカルブロック180は、カラム選択部130Cから入力されるカラム選択データと、ローカル制御部170から入力される読み書き制御信号とに基づいて、サブアレイ110のビットセル30に対してデータの読み出し又は書き込みを行う。
グローバルブロック(Global-R/W block)190は、ローカルブロック180と、サーバ80(図10参照)のプロセッサコア91及びL2キャッシュ94との間で、データの授受を行う。
次に、図12を用いて、SRAM100の物理的な配置と接続関係について説明する。
図12は、実施の形態のSRAM100を示す図(その1)である。なお、図12では、図11に示す構成要素と同様の構成要素には同一符号を付し、その説明を省略又は簡略化する。
図12には、SRAM100のサブアレイ110A、110B、ワードラインドライバ140、及びファイナルワードラインドライバ150の物理的な配置と接続関係を示す。
サブアレイ110A、110Bは、図11に示すサブアレイ110と同様のものである。図12には、説明の便宜上、2つのサブアレイ110A、110Bを示すが、SRAM100の内部には、実際にはさらに多くのサブアレイが配置される。
ワードラインドライバ140は、NAND演算部140Aを含む。NAND演算部140Aには、ワードライン選択信号WLAと、イネーブル信号ENA_Aが入力される。ワードライン選択信号WLAは、複数本あるワードラインWLA_L、WLA_Rのうちの特定のワードラインWLA_L、WLA_Rを選択するための選択信号である。イネーブル信号ENA_Aは、ワードラインWLA_L、WLA_Rを活性化することを有効な状態にする信号である。
なお、ワードラインWLA_L、WLA_Rは、図11に示すワードラインWLA00、WLA01に対応する。
ファイナルワードラインドライバ150は、インバータ151AL、151AR、NOR演算部152、及びインバータ153、154L、154Rを含む。ファイナルワードラインドライバ150は、第2ワードラインドライバの一例である。
インバータ151AL及び151ARの入力端子と、NOR演算部152の一方の入力端子(図12中の左側の入力端子)とは、ワードラインドライバ140のNAND演算部140Aの出力端子に接続される。
インバータ151AL及び151ARの出力端子は、それぞれ、サブアレイ110A、110BのワードラインWLA_L、WLA_Rに接続されている。
なお、インバータ151AL及び151ARは、ワードラインドライバ140から出力されるワードライン選択信号WLAをサブアレイ110A、110Bに含まれるビットセル30の一対のワードライン(Aワードライン、Bワートライン)のうちの一方(Aワードライン)に出力する出力部の一例である。
NOR演算部152の一方の入力端子(図12中の左側の入力端子)は、ワードラインドライバ140のNAND演算部140Aの出力端子に接続され、他方の入力端子(図12中の右側の入力端子)は、インバータ170Aの出力端子に接続されている。
なお、NOR演算部152は、ワードライン選択信号WLAと、切替信号R/Wとの否定論理和を一対のワードライン(Aワードライン、Bワートライン)のうちの他方(Bワードライン)に出力する否定論理和演算部の一例である。
インバータ170Aは、図11に示すローカル制御部170に含まれるインバータであり、切替信号R/WをNOR演算部152の他方の入力端子に出力する。なお、インバータ170Aの入力側の接続関係等については後述する。切替信号R/Wは、ビットセル30への書き込み又は読み出しを選択する読み書き選択信号の一例である。
NOR演算部152の出力端子は、インバータ153の入力端子に接続されている。
インバータ153の出力端子は、インバータ154L及び154Rの入力端子に接続されている。インバータ154L及び154Rの出力端子は、それぞれ、サブアレイ110A、110Bのワ―ドラインWLB_L、WLB_Rに接続されている。
なお、ワードラインWLB_L、WLB_Rは、図11に示すワードラインWLB00、WLB01に対応する。
次に、SRAM100のサブアレイ110、ロウ選択部130A、サブアレイ選択部130B、カラム選択部130C、ワードラインドライバ140、ファイナルワードラインドライバ150、ローカル制御部170、及びローカルブロック180の物理的な配置と接続関係について説明する。
図13は、実施の形態のSRAM100を示す図(その2)である。なお、図13では、図11及び図12に示す構成要素と同様の構成要素には同一符号を付し、その説明を省略又は簡略化する。
図13には、サブアレイ110A、110B、110C、110D、選択部130、ワードラインドライバ140A、140B、及びファイナルワードラインドライバ150A、150Bを示す。
また、図13には、さらに、ローカル制御部170、及びローカルブロック180A、180Bを示す。
図12には、4つのサブアレイ110A、110B、110C、110Dを示すが、すべて図11に示すサブアレイ110と同様である。ここでは、16個のサブアレイ(sub array 0 〜 sub array 15)が図13中の縦方向に配列されている形態を示す。サブアレイ110C、110Aは、それぞれ、15個目と16個目のサブアレイ(sub array 14, sub array 15)である。同様に、サブアレイ110D、110Bは、それぞれ、15個目と16個目のサブアレイ(sub array 14, sub array 15)である。
なお、図12に示すサブアレイ110A、110Bは、図12に示すサブアレイ110A、110Bに対応する。
選択部130は、図11に示すロウ選択部130A、サブアレイ選択部130B、及びカラム選択部130Cを1つのブロックとして表したものである。ロウ選択部130A、サブアレイ選択部130B、及びカラム選択部130Cは、実際のLSIの内部では、一つのブロックとして実現することができる。
なお、ここでは、選択部130としてロウ選択部130A、サブアレイ選択部130B、及びカラム選択部130Cを一つに纏める形態を示すが、ロウ選択部130A、サブアレイ選択部130B、カラム選択部130Cは、別々のブロックとして実現されてもよいし、図11に示すアドレスデコーダ120の内部に組み込まれてもよい。
図13には、選択部130の構成要素のうち、インバータ131A、131B、132A、132B、133A、133Bのみを示す。131A、131B、132A、132B、133A、133Bは、図11に示すサブアレイ選択部130Bに含まれる。
インバータ131A、131Bには、図11に示すアドレスデコーダ120からサブアレイ選択データ(sub array select 14, 15)が入力される。インバータ131Aの出力端子と131Bの出力端子とは、それぞれ、インバータ132A及び133Aの入力端子と、インバータ132B及び133Bの入力端子とに接続されている。
インバータ132Aの出力端子は、ローカル制御部170のNAND演算部171Aの一方の入力端子(図13中の上側の入力端子)に接続されている。また、インバータ132Bの出力端子は、ローカル制御部170のNAND演算部171Bの一方の入力端子(図13中の上側の入力端子)に接続されている。
インバータ133A、133Bは、実際には図13の選択部130の左側に存在するローカル制御部(図13に示すローカル制御部170と同様のローカル制御部)に接続されている。
ワードラインドライバ140A、140Bは、図11に示すワードラインドライバ140と同様である。図13には、2つのワードラインドライバ140A、140Bを示す。
なお、ワードラインドライバ140Aは、図12に示すワードラインドライバ140に対応する。
ファイナルワードラインドライバ150A、150Bは、図11に示すファイナルワードラインドライバ150と同様である。図13に示す2つのファイナルワードラインドライバ150A、150Bのうちのファイナルワードラインドライバ150Aは、図12に示すファイナルワードラインドライバ150に対応する。
ローカル制御部170は、インバータ170A1、170A2、NAND演算部171A、171B、インバータ172、173、174、175を含む。
インバータ170A1、170A2の入力端子は、それぞれ、NAND演算部171A、171Bの出力端子に接続されている。インバータ170A1の出力端子は、ファイナルワードラインドライバ150AのNOR演算部152の他方の入力端子(図12中の左側の入力端子)に接続されている。インバータ170A1は、図12に示すインバータ170Aに対応する。
同様に、インバータ170A2の出力端子は、ファイナルワードラインドライバ150BのNOR演算部の他方の入力端子に接続されている。
インバータ170A1、170A2は、それぞれ、切替信号R/Wをファイナルワードラインドライバ150A、150BのNOR演算部152の他方の入力端子に出力する。
NAND演算部171A、171Bの一方の入力端子(図13中の上側の入力端子)は、それぞれ、選択部130のインバータ132A、132Bの出力端子に接続されている。NAND演算部171A、171Bの他方の入力端子(図13中の下側の入力端子)は、ともにインバータ174の出力端子に接続されている。
なお、インバータ170A1とNAND演算部171Aとの組み合わせ、及び、インバータ170A2とNAND演算部171Bとの組み合わせは、それぞれ、論理積演算部の一例である。
インバータ172は、図11に示すグローバル選択部160の内部で分配されたライトイネーブル信号WEが入力される。インバータ172の出力端子は、インバータ172及び174の入力端子に接続される。
インバータ173の入力端子は、インバータ172の出力端子に接続され、出力端子はローカルブロック180Aに接続される。インバータ173は、読み書き制御信号のうちのREAD信号をローカルブロック180Aに出力する。
インバータ174の入力端子は、インバータ172の出力端子に接続され、出力端子は、インバータ175の入力端子と、NAND演算部171A及び171Bの他方の入力端子(図13中の下側の入力端子)に接続される。
インバータ175の入力端子は、インバータ174の出力端子に接続され、出力端子は、ローカルブロック180Aに接続される。インバータ175は、読み書き制御信号のうちのWRITE信号をローカルブロック180Aに出力する。
なお、図13には、説明の便宜上、ローカル制御部170のインバータ173、175から、それぞれ、読み書き制御信号のREAD信号、WRITE信号をローカルブロック180Aに出力する部分の回路構成を示す。しかしながら、ローカル制御部170は、ローカルブロック180Bにも読み書き制御信号のREAD信号、WRITE信号を出力する。
ローカルブロック180A、180Bは、図11に示すローカルブロック180と同様である。ローカルブロック180A、180Bのうち、ローカルブロック180Aは、図11に示すローカルブロック180に対応する。
次に、図14を用いて、図11に示すアドレスデコーダ120、グローバル選択部160、及びグローバルブロック190を含めたSRAM100の構成について説明する。
図14は、実施の形態のSRAM100を示す図(その3)である。なお、図14では、図11乃至図13に示す構成要素と同様の構成要素には同一符号を付し、その説明を省略又は簡略化する。
図14には、サブアレイ110A、110B、110C、110D、アドレスデコーダ120、選択部130、ワードラインドライバ140A、140B、及びファイナルワードラインドライバ150A、150Bを示す。
また、図14には、さらに、グローバル選択部160、ローカル制御部170、ローカルブロック180A、180B、及びグローバルブロック190A、190Bを示す。
サブアレイ110A、110B、110C、110Dは、図13に示すサブアレイ110A、110B、110C、110Dと同様であるが、サブアレイ110A、110Bについては、図12と同様に、ワードラインWLA_L、WLA_R、WLB_L、WLB_Rを示す。
アドレスデコーダ120は、入力アドレスに含まれるロウアドレス、サブアレイアドレス、及びカラムアドレスをデコードし、ロウ選択データ、サブアレイ選択データ、及びカラム選択データを生成する。図14では、サブアレイ選択データ(sub array select)のみを示す。サブアレイ選択データは、メモリブロック選択信号が表すデータの一例である。
選択部130は、インバータ131A、132A、133Aのみを示し、図13に示すインバータ131B、132B、133Bは、省略する。
ワードラインドライバ140A、140Bは、図13に示すワードラインドライバ140A、140Bと同様であるが、ワードラインドライバ140Aについては、図11に示すワードラインドライバ140と同様のサイズで示す。
ファイナルワードラインドライバ150A、150Bは、図13に示すファイナルワードラインドライバ150A、150Bと同様である。ファイナルワードラインドライバ150Aについては、図11に示すファイナルワードラインドライバ150と同様に内部回路(インバータ151AL、151AR、NOR演算部152、及びインバータ153、154L、154R)を示す。
グローバル選択部160は、グローバルブロック190Aと190Bの間に配設されている。グローバル選択部160は、インバータ161、162A、162Bを含む。
インバータ161には、SRAM100を含むサーバ80のプロセッサコア111(図10参照)からライトイネーブル信号WEが入力される。インバータ161の出力端子は、インバータ162A及び162Bの入力端子に接続される。
インバータ162Aの入力端子は、インバータ161の出力端子に接続され、出力端子は、ローカル制御部170のインバータ172の入力端子に接続される。
インバータ161に入力されるライトイネーブル信号WEは、インバータ161の出力側でインバータ162Aと162Bに分配され、グローバル選択部160から出力される。
インバータ162Aの出力は、ライトイネーブル信号WEと同相であるため、ローカル制御部170のインバータ172には、グローバル選択部160の内部で分配されたライトイネーブル信号WEが入力される。
ローカル制御部170は、図13に示すローカル制御部170と同様であるが、図14には、インバータ170A1、NAND演算部171A、インバータ172、173、174、175のみを示し、図13に示すインバータ170A2、NAND演算部171Bを省略する。
ローカルブロック180A、180Bは、図13に示すローカルブロック180A、180Bと同様である。
グローバルブロック190A、190Bは、図11に示すグローバルブロック190と同様である。グローバルブロック190A、190Bは、グローバル選択部160の両脇に配置されている。
グローバルブロック190Aは、ローカルブロック180Aと、サーバ80(図10参照)のプロセッサコア91及びL2キャッシュ94との間で、データの授受を行う。同様に、グローバルブロック190Bは、ローカルブロック180Bと、サーバ80(図10参照)のプロセッサコア91及びL2キャッシュ94との間で、データの授受を行う。
次に、実施の形態のSRAM100におけるデータの書き込みと読み出しの動作について説明する。
SRAM100にデータの書き込み(WRITE)を行う際には、Lレベルのライトイネーブル信号WEがグローバル選択部160のインバータ161に入力される。これにより、グローバル選択部160で分配されるライトイネーブル信号WEは、Lレベルになる。
Lレベルのライトイネーブル信号WEがローカル制御部170のインバータ172に入力されると、インバータ173が出力する読み書き制御信号のREAD信号はLレベルになり、インバータ175が出力する読み書き制御信号のWRITE信号はHレベルになる。
また、このとき、インバータ174の出力はLレベルであるため、NAND演算部171Aの他方の入力端子(図13中の右側の入力端子)の入力レベルはLレベルになる。また、このとき、サブアレイ110A、110Bは選択されているため、アドレスデコーダ120から選択部130に入力されるサブアレイ選択データ(sub array select 15)はHレベルである。
このため、NAND演算部171Aの出力は、Hレベルになる。これは、NAND演算部171Aが、サブアレイ選択データ(sub array select 15)と、ライトイネーブル信号WEに基づくインバータ174の出力との否定論理積を演算するからである。
この結果、ローカル制御部170のインバータ170A1が出力する切替信号R/WはLレベルになる。
ローカル制御部170のインバータ170A1から出力されるLレベルの切替信号R/Wは、ファイナルワードラインドライバ150AのNOR演算部152の他方の入力端子(図14中の右側の入力端子)に入力される。
NOR演算部152の他方の入力端子(図14中の右側の入力端子)にLレベルの切替信号R/Wが入力されると、NOR演算部152の出力は、NOR演算部152の一方の入力端子(図14中の左側の入力端子)に入力される選択信号XWLAの信号レベルを反転させた信号レベルになる。
ここで、選択信号XWLAの信号レベルは、ワードライン選択信号WLAの信号レベルを反転させたものであるため、SRAM100にデータの書き込み(WRITE)を行う際には、NOR演算部152の出力は、ワードライン選択信号WLAの信号レベルに等しくなる。すなわち、NOR演算部152の出力は、ワードライン選択信号WLAの信号レベルに合わせて、HレベルとLレベルの間で遷移する。
NOR演算部152の出力は、インバータ153とインバータ154L、154Rで二回反転されてワードラインWLB_L、WLB_Rに出力される。すなわち、ワードラインWLB_L、WLB_Rには、ワードライン選択信号WLAの信号レベルと同一の制御信号は出力される。
この結果、SRAM100にデータの書き込み(WRITE)を行う際には、ワードラインWLB_L、WLB_Rは、ワードライン選択信号WLAの信号レベルがHレベルの時に活性化され、Lレベルのときに不活性化される。
なお、ワードラインWLA_L、WLA_Rには、選択信号XWLAがインバータ151AL、151ARで反転されて出力されるため、ワードラインWLA_L、WLA_Rは、ワードライン選択信号WLAの信号レベルがHレベルの時に活性化され、Lレベルのときに不活性化される。
以上より、SRAM100にデータの書き込み(WRITE)を行う際には、ワードライン選択信号WLAの信号レベルがHレベルの時に、ワードラインWLA_L、WLA_R、ワードラインWLB_L、WLB_Rが活性化される。
従って、擬似マルチポート型のサブアレイ30の記憶ノードN1、N2(図4参照)にデータを書き込みことができる。
次に、SRAM100からデータの読み出し(READ)を行う際の動作について説明する。
SRAM100からデータの読み出し(READ)を行う際には、Hレベルのライトイネーブル信号WEがグローバル選択部160のインバータ161に入力される。これにより、グローバル選択部160で分配されるライトイネーブル信号WEは、Hレベルになる。
Hレベルのライトイネーブル信号WEがローカル制御部170のインバータ172に入力されると、インバータ173が出力する読み書き制御信号のREAD信号はHレベルになり、インバータ175が出力する読み書き制御信号のWRITE信号はLレベルになる。
また、このとき、インバータ174の出力はHレベルであるため、NAND演算部171Aの他方の入力端子(図13中の右側の入力端子)の入力レベルはHレベルになる。また、このとき、サブアレイ110A、110Bは選択されているため、アドレスデコーダ120から選択部130に入力されるサブアレイ選択データ(sub array select 15)はHレベルである。
このため、NAND演算部171Aの出力は、Lレベルになる。この結果、ローカル制御部170のインバータ170A1が出力する切替信号R/WはHレベルになる。
ローカル制御部170のインバータ170A1から出力されるHレベルの切替信号R/Wは、ファイナルワードラインドライバ150AのNOR演算部152の他方の入力端子(図14中の右側の入力端子)に入力される。
NOR演算部152の他方の入力端子(図14中の右側の入力端子)にHレベルの切替信号R/Wが入力されると、NOR演算部152の出力は、NOR演算部152の一方の入力端子(図14中の左側の入力端子)に入力される選択信号XWLAの信号レベルに関わらず、Lレベルになる。
NOR演算部152の出力は、インバータ153とインバータ154L、154Rで二回反転されてワードラインWLB_L、WLB_Rに出力される。すなわち、ワードラインWLB_L、WLB_Rには、常にLレベルの制御信号が出力される。
この結果、SRAM100からデータの読み出し(READ)を行う際には、ワードラインWLB_L、WLB_Rは、常にLレベルに保持され、不活性化される。
なお、ワードラインWLA_L、WLA_Rには、選択信号XWLAがインバータ151AL、151ARで反転されて出力されるため、ワードラインWLA_L、WLA_Rは、ワードライン選択信号WLAの信号レベルがHレベルの時に活性化され、Lレベルのときに不活性化される。
以上より、SRAM100からデータの読み出し(READ)を行う際には、ワードライン選択信号WLAの信号レベルがHレベルの時に、ワードラインWLA_L、WLA_Rが活性化される。また、このとき、ワードラインWLB_L、WLB_Rは、常にLレベルに保持され、不活性化される。
従って、擬似マルチポート型のサブアレイ30の記憶ノードN2(図4参照)に保持されるデータを読み出すことができる。
以上のように、実施の形態のSRAM100によれば、データの書き込みは、Aワードライン(WLA_L/R)及びBワードライン(WLB_L/R)をともに活性化させることにより、擬似マルチポート型のサブアレイ30の記憶ノードN1、N2(図4参照)にデータを書き込みことができる。
一方、データを読み出す際は、Aワードライン(WLA_L/R)を活性化させて、Bワードライン(WLB_L/R)を活性化させずに、擬似マルチポート型のサブアレイ30の記憶ノードN2(図4参照)に保持されるデータを読み出すことができる。
すなわち、擬似マルチポート型のビットセル30を用いたSRAM100をシングルポートのメモリとして動作させることができる。
このようなSRAM100におけるデータの書き込み(WRITE)と読み出し(READ)の動作は、比較例のSRAM60(図8参照)のデータの書き込み(WRITE)と読み出し(READ)の動作(図9)と同様である。
また、実施の形態のSRAM100は、以下の理由により、消費電力の低減を図ることができる。
ファイナルワードラインドライバ150Aは、図6に示す比較例のSRAM50のファイナルワードラインドライバ54に、NOR演算部152とインバータ153を追加した構成を有する。
ここで、ファイナルワードラインドライバ150Aは、NOR演算部152の出力側にインバータ153を有する。また、インバータ153の出力側には、インバータ154L、154Rが接続されている。
インバータ153の出力側にインバータ154L、154Rを接続すると、いわゆるFO4(Fan Out of Four)の効果により、インバータ153のサイズをインバータ154Lと154Rの合計のサイズの1/4にすることができる。
また、NOR演算部152の出力側にインバータ153を接続することにより、NOR演算部152のサイズをインバータ153の1/4にすることができる。
また、Aワードライン(WLA_L/R)とBワードライン(WLB_L/R)は、サブアレイ110A、110Bの中で、16対ずつ設けられている。すなわち、1つのファイナルワードラインドライバ150Aの中に、NOR演算部152は16個あることになる。16個のNOR演算部152の他方の入力端子(図14中の右側の入力端子)には、共通の(1つの)インバータ170A1が接続されている。
従って、インバータ170A1は、いわゆるFO4(Fan Out of Four)の効果により、16個のNAND演算部170A1のサイズの1/4にすることができる。
また、インバータ171の出力側にインバータ170A1が接続されているため、いわゆるFO4(Fan Out of Four)の効果により、インバータ171のサイズは、インバータ170A1のサイズの1/4にすることができる。
ここで、例えば、インバータ151AL、151AR、154L、154Rのサイズがすべて'8'であるとする。インバータ153は、インバータ154L、154Rに制御信号を供給するため、FO4の効果により、インバータ153のサイズは'4'(=('8'+'8')/4)で足り、NOR演算部152のサイズは'1'で足りることになる。
また、この場合に、サイズが'1'のNOR演算部152が16個有り、インバータ170A1のサイズは、16個のNOR演算部152の1/4である。このため、インバータ170A1のサイズは'4'である。
また、インバータ171Aのサイズは、インバータ170A1のサイズの1/4であるため、'1'である。
ここで、図8に示すSRAM60のファイナルワードラインドライバ64のNOR演算部64L、64Rのサイズは、ともに'8'であるため、図8に示すインバータ65のサイズは'64'であることが必要になる。
このように、実施の形態のSRAM100では、ファイナルワードラインドライバ150AのNOR演算部152とインバータ153のサイズが小さくて済むので、図8に示す比較例のSRAM60のファイナルワードラインドライバ64に比べると、省電力化を図ることができる。なお、このように省電力化を図ることができるのは、ファイナルワードラインドライバ150Bについても同様である。
また、ローカル制御部170のインバータ170A1のサイズ('4')は、図8に示すSRAM60で対応するインバータ65のサイズ('64')の1/16で済むので、このことによっても省電力化を図ることができる。
以上より、擬似マルチポート型のビットセル30を用いたSRAM100をシングルポートのメモリとして動作させつつ、消費電力の低減を実現することができる。
また、実施の形態のSRAM100では、データの読み出しを行う際には、ファイナルワードラインドライバ150Aのインバータ151AL及び151ARを介してAワードライン(WLA_L/R)を活性化する。これは、図6に示す比較例のSRAM50と図8に示す比較例のSRAM60と同様である。このため、データの読み出しの速度は、図6及び図8に示す比較例のSRAM50及び60と同等である。
一方、実施の形態のSRAM100において、データの書き込みを行う際には、Bワードライン(WLB_L/R)については、ファイナルワードラインドライバ150AのNOR演算部152及びインバ―タ152とインバータ154L、154Rを介して、活性化を行うことになる。
これは、図6に示すSRAM50に比べると、Bワードライン(WLB_L/R)については、NOR演算部152とインバータ153による遅延が生じることを意味する。
しかしながら、一般的に、データの読み書きの速度が速いSRAMにおいても、データの書き込みの速度は、データの読み出しの速度に比べて問題になりにくい。
従って、NOR演算部152とインバータ153を含むことによるデータの書き込み時の速度への影響は最小限であり、特に問題になることはないと考えられる。
また、上述のように、擬似マルチポート型のビットセル30を含むSRAM100は、省電力化を図りつつ、シングルポートのメモリとして動作させることができるメモリである。
このため、1つのLSIの中に、マルチポートの動作を行わせるメモリと、シングルポートの動作が可能なSRAM100とを作製すれば、メモリの低コスト化を図ることができる。
また、これに加えて、マルチポートセルのビットセルとして動作するビットセルと、シングルポートのビットセルとして動作するビットセルとの製造上のばらつきを相殺することができ、動作特性を向上させることができる。
以上、本発明の例示的な実施の形態の半導体記憶装置、及び、情報処理装置について説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
以上の実施の形態に関し、さらに以下の付記を開示する。
(付記1)
複数の擬似マルチポートセルを含む複数のメモリブロックと、
前記メモリブロックに含まれる前記擬似マルチポートセルを特定するアドレスをデコードして出力するアドレスデコーダと、
前記アドレスデコーダから出力されるアドレスに含まれるロウアドレスに基づき、前記メモリブロックに含まれる前記擬似マルチポートセルのワードラインを選択するワードライン選択信号を出力する第1ワードラインドライバと、
前記第1ワードラインドライバから出力されるワードライン選択信号を前記メモリブロックに含まれる前記擬似マルチポートセルの一対のワードラインのうちの一方に出力する出力部と、前記ワードライン選択信号と、前記擬似マルチポートセルへの書き込み又は読み出しを選択する読み書き選択信号との否定論理和を前記一対のワードラインのうちの他方に出力する否定論理和演算部とを有し、当該擬似マルチポートセルへのデータの書き込み時に前記一対のワードラインをともに活性化し、データの読み出し時に前記一方のワードラインのみを活性化する第2ワードラインドライバと
を含む、半導体記憶装置。
(付記2)
前記アドレスに含まれる、前記メモリブロックを指定するブロックアドレスに基づき、前記メモリブロックを選択するメモリブロック選択信号を出力するブロック選択部と、
前記メモリブロックに含まれる前記擬似マルチポートセルへのデータの書き込みの可否を表すライトイネーブル信号と、前記ブロック選択部から出力される前記メモリブロック選択信号との論理積を演算する論理積演算部を有し、前記擬似マルチポートセルへのデータの書き込み時にHレベルの前記読み書き選択信号を出力し、データの読み出し時にLレベルの前記読み書き選択信号を出力する制御部と
をさらに含む、付記1記載の半導体記憶装置。
(付記3)
論理積演算部は、否定論理積演算部と、当該否定論理積演算部の出力側に接続されるインバータとを有する、付記2記載の半導体記憶装置。
(付記4)
第2ワードラインドライバは、前記否定論理和演算部の出力側に、前記否定論理和を前記一対のワードラインのうちの前記他方に出力する、偶数段の直列に接続されるインバータを含む、付記1乃至3のいずれか一項に記載の半導体記憶装置。
(付記5)
複数の擬似マルチポートセルを含む複数のメモリブロックと、
前記メモリブロックに含まれる前記擬似マルチポートセルを特定するアドレスをデコードして出力するアドレスデコーダと、
前記アドレスデコーダから出力されるアドレスに含まれるロウアドレスに基づき、前記メモリブロックに含まれる前記擬似マルチポートセルのワードラインを選択するワードライン選択信号を出力する第1ワードラインドライバと、
前記第1ワードラインドライバから出力されるワードライン選択信号を前記メモリブロックに含まれる前記擬似マルチポートセルの一対のワードラインのうちの一方に出力する出力部と、前記ワードライン選択信号と、前記擬似マルチポートセルへの書き込み又は読み出しを選択する読み書き選択信号との否定論理和を前記一対のワードラインのうちの他方に出力する否定論理和演算部とを有し、当該擬似マルチポートセルへのデータの書き込み時に前記一対のワードラインをともに活性化し、データの読み出し時に前記一方のワードラインのみを活性化する第2ワードラインドライバと
を含む、半導体記憶装置と、
前記半導体記憶装置の前記擬似マルチポートセルへのデータの書き込み、又は、前記半導体記憶装置の前記擬似マルチポートセルからのデータの読み出しを行う演算処理部と
を含む、情報処理装置。