IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 独立行政法人科学技術振興機構の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024111064
(43)【公開日】2024-08-16
(54)【発明の名称】記憶回路および処理回路
(51)【国際特許分類】
   G11C 11/418 20060101AFI20240808BHJP
   G11C 7/18 20060101ALI20240808BHJP
   G11C 11/54 20060101ALI20240808BHJP
   G06F 12/00 20060101ALI20240808BHJP
【FI】
G11C11/418 120
G11C7/18
G11C11/54
G06F12/00 560F
【審査請求】有
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2024096368
(22)【出願日】2024-06-14
(62)【分割の表示】P 2024008592の分割
【原出願日】2021-01-29
(31)【優先権主張番号】P 2020020954
(32)【優先日】2020-02-10
(33)【優先権主張国・地域又は機関】JP
(31)【優先権主張番号】P 2020178364
(32)【優先日】2020-10-23
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】503360115
【氏名又は名称】国立研究開発法人科学技術振興機構
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】菅原 聡
(72)【発明者】
【氏名】塩津 勇作
(57)【要約】
【課題】並列処理を可能とする。
【解決手段】記憶回路は、複数の行及び複数の列に行列状に配列され、相補的な一対の記憶ノードを各々有する複数のメモリセルと、前記複数の列に各々少なくとも2つのビット線が設けられ、列方向に配列されたメモリセルに接続する複数のビット線と、前記複数の行は、少なくとも2つの行を各々有する複数のブロックに分割され、前記複数のブロックの各々において、前記少なくとも2つのビット線の各々は、ブロック内の前記少なくとも2つの行のうち1つの行に設けられたメモリセルにおける前記一対の記憶ノードの少なくとも1つの記憶ノードに接続され、前記少なくとも2つの行のうち残りの行に設けられたメモリセルに接続されない。
【選択図】図46
【特許請求の範囲】
【請求項1】
複数の行及び複数の列に行列状に配列され、相補的な一対の記憶ノードを各々有する複数のメモリセルと、
前記複数の列に各々少なくとも2つのビット線が設けられ、列方向に配列されたメモリセルに接続する複数のビット線と、
前記複数の行は、少なくとも2つの行を各々有する複数のブロックに分割され、
前記複数のブロックの各々において、前記少なくとも2つのビット線の各々は、ブロック内の前記少なくとも2つの行のうち1つの行に設けられたメモリセルにおける前記一対の記憶ノードの少なくとも1つの記憶ノードに接続され、前記少なくとも2つの行のうち残りの行に設けられたメモリセルに接続されない、記憶回路。
【請求項2】
前記複数のブロックのうち1つのブロック内の前記少なくとも2つのビット線から並列にデータが読み出される、請求項1に記載の記憶回路。
【請求項3】
前記複数の列における前記1つのブロック内の前記少なくとも2つのビット線から並列にデータが読み出される、請求項2に記載の記憶回路。
【請求項4】
前記複数の行にそれぞれ設けられ、行方向に配列されたメモリセルに接続する複数の第1ワード線を備える、請求項1から3のいずれか一項に記載の記憶回路。
【請求項5】
請求項1から3のいずれか一項に記載の記憶回路であるメモリと、
第1層の複数の第1ノードに対応する複数の第1データに複数の重みによる重み付けをそれぞれ行った後に加算することにより、第2層の複数の第2ノードに対応する複数の第2データのうち1つの第2データを算出する処理を前記複数の第2データについて行うことによって、前記複数の第2データを算出し、前記複数の第2データのうち少なくとも2つの第2データの処理を並列に処理する処理部と、
を備え、
前記複数のメモリセルは、前記複数の重みをそれぞれ格納し、1つの第2データに対応する複数の重みは同じ行に、異なる第2データに対応する複数の重みは異なる行に格納し、
前記処理部は、前記少なくとも2つの第2データの処理を並列に処理するときに、前記複数のブロックのうち1つのブロック内の前記少なくとも2つのビット線から並列にデータを読み出す処理装置。
【請求項6】
請求項1から3のいずれか一項に記載の記憶回路であるメモリと、
第1層の複数の第1ノードに対応する複数の第1データのうち1つの第1データに複数の重みによる重み付けを行うことで第2層の複数の第2ノードに対応する複数の第2データの各々一部を算出する処理を前記複数の第1データについて行い、前記複数の第2データの各々について、前記複数の第2データの一部を前記複数の第1データ分加算することで前記複数の第2データを算出し、前記複数の第1データのうち少なくとも1つの第2データの処理を並列に処理する処理部と、
を備え、
前記複数のメモリセルは、前記複数の重みをそれぞれ格納し、1つの第1データに対応する複数の重みは同じ行に、異なる第1データに対応する複数の重みは異なる行に格納し、
前記処理部は、前記少なくとも2つの第1データの処理を並列に処理するときに、前記複数のブロックのうち1つのブロック内の前記少なくとも2つのビット線から並列にデータを読み出す処理装置。
【請求項7】
請求項1から3のいずれか一項に記載の記憶回路である第1メモリと、
請求項1から3のいずれか一項に記載の記憶回路である第2メモリと、
第1層の複数の第1ノードに対応する複数の第1データに複数の第1重みによる重み付けをそれぞれ行った後に加算することにより、第2層の複数の第2ノードに対応する複数の第2データのうち1つの第2データを算出する処理を前記複数の第2データについて行うことによって、前記複数の第2データを算出し、前記複数の第2データのうち少なくとも2つの第2データの処理を並列に処理する第1処理部と、
前記複数の第2データのうち1つの第2データに複数の第2重みによる重み付けを行うことで第3層の複数の第3ノードに対応する複数の第3データの各々一部を算出する処理を前記複数の第2データについて行い、前記複数の第3データの各々について、前記複数の第3データの一部を前記複数の第2データ分加算することで前記複数の第3データを算出し、前記複数の第2データのうち少なくとも2つの第2データの処理を並列に処理する第2処理部と、
を備え、
前記第1メモリにおける前記複数のメモリセルは、前記複数の第1重みをそれぞれ格納し、1つの第2データに対応する複数の第1重みは同じ行に、異なる第2データに対応する複数の第1重みは異なる行に格納し、
前記第2メモリにおける前記複数のメモリセルは、前記複数の第2重みをそれぞれ格納し、1つの第2データに対応する複数の第2重みは同じ行に、異なる第2データに対応する複数の第2重みは異なる行に格納し、
前記第2処理部が前記複数の第2データのうち1つの第2データの処理を実行しているときに、並列して前記第1処理部は前記複数の第2データのうち別の第2データの処理を実行し、
前記第1処理部は、前記少なくとも2つの第2データの処理を並列に処理するときに、前記第1メモリにおける前記複数のブロックのうち1つのブロック内の前記少なくとも2つのビット線から並列にデータを読み出し、
前記第2処理部は、前記少なくとも2つの第2データの処理を並列に処理するときに、前記第2メモリにおける前記複数のブロックのうち1つのブロック内の前記少なくとも2つのビット線から並列にデータを読み出す処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、記憶回路および処理回路に関する。
【背景技術】
【0002】
不揮発性記憶素子を用いることなく、CMOS(Complementary Metal Oxide Semiconductor)から構成されたインバータを用いた擬似不揮発性SRAM(VNR-SRAM)または超低電圧(ULV)リテンションSRAM(Static Random Access Memory)(ULVR-SRAM)が知られている(例えば特許文献1)。VNR-SRAMでは、ULVリテンションが可能なシュミットトリガ(ST)モードと通常の電圧でSRAMと同等の回路性能を実現できるブーステッドインバータ(BI)モードとを切り替え可能なデュアルモードインバータを用いる。このULVリテンションSRAMをいわゆるパワーゲーティング(PG)に用いることができる。
【0003】
また、双安定回路と不揮発性記憶素子を有するメモリセル(NV-SRAM)を用いた記憶回路が知られている(例えば特許文献2)。NV-SRAMでは双安定回路のデータを不揮発性記憶素子にストアし、電力消費を減らしつつ、必要な場合に不揮発性記憶素子のデータを双安定回路にリストアし、当該データを利用な状態とする。
【0004】
更にまた、ニューラルネットワークの重み係数等の係数を記憶するためのSRAMと、積和や評価関数の演算回路を組み合わせることによって、ニューラルネットワークの処理を高速に行うことが検討されている(例えば非特許文献1)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】国際公開第2016/158691号
【特許文献2】国際公開第2009/028298号
【非特許文献】
【0006】
【非特許文献1】IEEE JOURNAL OF SOLID-STATE CIRCUITS, VOL. 53, pp,983-994, 2018.
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1のVNR-SRAMでは、ULVリテンションすることで、セルの記憶内容を失うことなく、待機時電力を削減することができる。しかしながら、VNR-SRAMでは、1つのメモリセルに14個または10個のトランジスタを用いる(以下、それぞれ14Tセル、10Tセルと称する)。このため、メモリセルが大型化してしまう、または、セル面積が増大するという第1の課題がある。また、10Tセルのようにトランジスタを減らすと、ULVリテンションの安定性(ノイズマージン)は低下する。
【0008】
また、特許文献2のNV-SRAMでは、メモリセル内の不揮発性記憶素子を用いることで、待機時にメモリセルの電源を遮断することができるため、待機時電力を削減できる。しかしながら,1つのメモリセルに不揮発性記憶素子に加えて8個トランジスタを用いる。このため、メモリセルが小型化しづらい、またはセル面積が増大するという第2の課題がある。
【0009】
本発明は、上記第1の課題または第2の課題に鑑み、小型化またはトランジスタ数を減らすことが可能な記憶回路を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明は、複数の行及び複数の列に行列状に配列され、相補的な一対の記憶ノードを各々有する複数のメモリセルと、前記複数の列に各々少なくとも2つのビット線が設けられ、列方向に配列されたメモリセルに接続する複数のビット線と、前記複数の行は、少なくとも2つの行を各々有する複数のブロックに分割され、前記複数のブロックの各々において、前記少なくとも2つのビット線の各々は、ブロック内の前記少なくとも2つの行のうち1つの行に設けられたメモリセルにおける前記一対の記憶ノードの少なくとも1つの記憶ノードに接続され、前記少なくとも2つの行のうち残りの行に設けられたメモリセルに接続されない、記憶回路である。
【発明の効果】
【0011】
本発明によれば、小型化またはトランジスタ数を減らすことが可能な記憶回路を提供することができる。
【図面の簡単な説明】
【0012】
図1図1は、比較例1におけるメモリセルのループ表示の回路図である。
図2図2は、比較例1におけるメモリセルのクロスカップル表示の回路図である。
図3図3は、比較例2におけるメモリセルのループ表示の回路図である。
図4図4は、比較例2におけるメモリセルのクロスカップル表示の回路図である。
図5図5は、実施例1におけるメモリセルのループ表示の回路図である。
図6図6は、実施例1におけるメモリセルのクロスカップル表示の回路図である。
図7A図7Aは、実施例1におけるメモリアレイのブロック図である。
図7B図7Bは、実施例1におけるパワースイッチおよび選択回路を示す図である。
図7C図7Cは、実施例1におけるメモリアレイの別の例を示すブロック図である。
図8図8(a)および図8(b)は、実施例1のVDDリテンション状態におけるWLPおよびWFBに対するSNMおよびスタンバイパワーを示す図である。
図9図9(a)および図9(b)は、実施例1および比較例3のVDDリテンション状態およびリード/ライト状態のリードにおけるVWLに対するSNMおよびスタンバイパワーを示す図である。
図10図10(a)から図10(c)は、実施例1、比較例2および3のVDDリテンション状態およびリード/ライト状態におけるSNMを示す図である。
図11図11は、実施例1のULVリテンション状態におけるインバータ回路の伝達特性を示す図である。
図12図12(a)および図12(b)は、実施例1における双安定回路の回路図である。
図13図13(a)および図13(b)は、実施例1、比較例2および3のULVリテンション状態における双安定回路のバタフライカーブを示す図である。
図14図14(a)は、実施例1、比較例2および3のULVリテンション状態におけるSNMを示す図、図14(b)は、実施例1のULVリテンション状態におけるVVDDに対するSNMおよびスタンバイパワーを示す図である。
図15図15は、実施例1および比較例3におけるスタンバイパワーを示す図である。
図16図16は、実施例1の変形例1におけるメモリセルのループ表示の回路図である。
図17図17は、実施例1の変形例1におけるメモリセルのクロスカップル表示の回路図である。
図18図18は、実施例1の変形例2におけるメモリセルのループ表示の回路図である。
図19図19は、実施例1の変形例2におけるメモリセルのクロスカップル表示の回路図である。
図20図20は、実施例1およびその変形例2のULVリテンション状態における双安定回路のバタフライカーブを示す図である。
図21図21(a)および図21(b)は、それぞれヘッダPS・PDFB・タイプ1型およびフッタPS・PUFB・タイプ1型の各電圧を示す図である。
図22図22は、実施例2における仮想電源方式のメモリセルの回路図である。
図23図23は、実施例2の仮想電源方式におけるパワースイッチおよび選択回路を示す図である。
図24図24は、実施例2における仮想接地方式のメモリセルの回路図である。
図25図25は、実施例2の仮想接地方式におけるパワースイッチおよび選択回路を示す図である。
図26図26は、実施例2におけるメモリアレイのブロック図である。
図27図27(a)から図27(c)は、実施例2におけるメモリセルの動作を示す図である。
図28図28(a)から図28(c)は、実施例2におけるメモリセルの動作を示す図である。
図29図29は、実施例2におけるメモリセルの動作を示す図である。
図30図30は、シミュレーション3におけるホールド状態のWLPに対するSNMおよびスタンバイパワーを示す図である。
図31図31は、シミュレーション3におけるリード動作およびホールド状態のVWLに対するSNMを示す図である。
図32図32(a)および図32(b)は、シミュレーション3におけるH-ストア動作の電圧VSRに対するそれぞれ電流Im1およびSNMを示す図である。
図33図33(a)および図33(b)は、シミュレーション3におけるL-ストア動作の電圧Vcに対するそれぞれ電流Im2およびSNMを示す図である。
図34図34(a)および図34(b)は、シミュレーション3におけるリストア動作のそれぞれFFおよびFSの電圧VSRに対するSNMを示す図である。
図35図35(a)は、実施例2におけるSNMを示す図であり、図35(b)は、実施例2および比較例3のスタンバイパワーを示す図である。
図36図36は、実施例2の変形例1に係るメモリセルの回路図である。
図37図37は、実施例3におけるBNNモデルを示す図である。
図38図38は、実施例3におけるn-to-1コネクションの演算を行う演算回路のブロック図である。
図39図39(a)は、実施例3における1-to-nコネクションの演算を行う演算回路のブロック図であり、図39(b)は、蓄積器のブロック図である。
図40図40は、実施例3におけるBNN装置のブロック図である。
図41図41は、実施例3において処理部52が行うn-to-1コネクションの処理を示すフローチャートである。
図42図42は、実施例3において処理部62が行う1-to-nコネクションの処理を示すフローチャートである。
図43図43は、実施例3における時間に対する処理を示す図である。
図44図44は、実施例2におけるメモリの例を示すブロック図である。
図45図45は、実施例3の変形例1におけるBNN装置のブロック図である。
図46図46は、実施例3の変形例1におけるメモリの例を示す図である。
図47図47は、実施例3の変形例2における2R1W型NV-SRAMメモリセルの例を示す回路図である。
図48図48は、実施例3の変形例2における2R1W型ULVR-SRAMメモリセルの例を示す回路図である。
図49図49(a)は、実施例3の変形例2のリード動作における2R1W型NV-SRAMメモリセルのVWWLに対するSNMを示す図、図49(b)は、リード動作における2R1W型ULVR-SRAMメモリセルのVWWLに対するSNMを示す図である。
図50図50は、実施例3の変形例2における2RW型NV-SRAMメモリセルの例を示す回路図である。
図51図51は、実施例3の変形例2における2RW型ULVR-SRAMメモリセルの例を示す回路図である。
図52図52は、実施例3の変形例2における2R1W型メモリの例を示す図である。
図53図53は、実施例3の変形例2における2RW型メモリの例を示す図である。
図54図54は、実施例3の変形例における時間に対する処理を示す図である。
図55図55(a)から図55(c)は、層数mに対する規格化した処理時間を示す図である。
図56図56は、実施例3の変形例4に係るNV-SRAMメモリセルの回路図である。
図57図57は、実施例3の変形例4に係るULVR-SRAMメモリセルの回路図である。
図58図58は、実施例3の変形例4におけるBNN装置のブロック図である。
図59図59(a)および図59(b)は、それぞれ比較例4および実施例3の変形例5のパワースイッチ付近のブロック図である。
図60図60は、実施例3の変形例5における6Tセルの回路図である。
図61図61(a)および図61(b)は、それぞれ比較例4および実施例3の変形例5におけるVDDLに対するSNMおよびスタンバイパワーを示す図である。
【発明を実施するための形態】
【0013】
図1図2:比較例1
図3図4:比較例2
図5図7C:実施例1
図8(a)~図10(c):シミュレーション1、比較例2、3、実施例1
図11図15:シミュレーション2、比較例2、3、実施例1
図16図17:実施例1の変形例1
図18図20:実施例1の変形例2
図21:実施例1およびその変形例
図22図29:実施例2
図30図35(b):シミュレーション3、実施例2
図36:実施例2の変形例1
図37図44:実施例3
図45図46:実施例3の変形例1
図47図53:実施例3の変形例2
図54図55(c):実施例3、その変形例1~3のシミュレーション
図56図58:実施例3の変形例4
図59(a)~図61(b):実施例3の変形例5
【0014】
実施例について説明する前に比較例について説明する。
【0015】
[比較例1]
比較例1は、特許文献1に比べフィードバックトランジスタの導電型およびゲートの接続先が異なっている。図1および図2は、比較例1におけるメモリセル10の回路図である。図1はループ表示の回路図であり、図2はクロスカップル表示の回路図である。図1図2とは同じ回路であるが、動作の説明には図1のループ表示がわかりやすく、回路面積等の説明には図2のクロスカップル表示がわかりやすい。
【0016】
図1および図2に示すように、インバータ回路14および16は、FETm1~m3およびm1a~m3aを備えている。FETm1、m2およびm3aはNチャネルMOSFETであり、FETm1a、m2aおよびm3はPチャネルMOSFETである。
【0017】
FETm1、m2、m1aおよびm2aはグランド線15bと電源線15a(仮想電源線)との間に直列に接続されている。FETm1、m2、m1aおよびm2aのゲートは入力ノードN1に接続されている。FETm2とm2aとの間は出力ノードN2である。FETm1およびm2は、インバータ回路14および16のドライバであり、FETm1aおよびm2aはロードである。
【0018】
FETm1とm2との間の中間ノードN3とバイアスノードN4との間にFETm3が接続され、FETm1aとm2aとの間の中間ノードN3aとバイアスノードN4aとの間にFETm3aが接続されている。FETm3およびm3aのゲートは入力ノードN1に接続されている。FETm3およびm3aはフィードバックトランジスタFBTrである。
【0019】
記憶ノードQ1およびQ2はFETm5を介しビット線BLおよびBLBにそれぞれ接続されている。FETm5のゲートはワード線WLに接続されている。FETm5はNチャネルFETであり、パストランジスタである。
【0020】
ドライバ26はインバータ27aおよび27bを備えている。インバータ27aは制御信号VCTRLを反転した信号VFNをバイアスノードN4に出力し、インバータ27bは信号VFNを反転した信号VFPをバイアスノードN4aに出力する。パワースイッチ(PS)30は、電源15cの電圧VDDを仮想電源電圧VVDDに変換し電源線15aに供給する。パワースイッチ30は不図示の制御回路からの制御信号により仮想電源電圧VVDDを切り替える。
【0021】
比較例1に係るメモリセルは、制御信号VCTRLによりインバータ回路14および16のモードをSTモードとBIモードに変更できる。制御信号VCTRLがハイレベル(VVDDH、例えば1.2V)のとき、インバータ回路14および16はBIモードとなる。制御信号VCTRLがローレベル(VGND、例えば0V)のとき、インバータ回路14および16はSTモードとなる。
【0022】
STモードは、インバータ回路14および16の伝達特性にヒステリシスを有するモードであり、BIモードは、インバータ回路14および16の伝達特性にヒステリシスを実質的に有さないモードである。STモードでは、インバータ回路14および16に加わる仮想電源電圧VVDD-VGNDを通常の電圧(例えば1.2V)とすると、リーク電流が大きくなる。BIモードでは、電圧VVDD-VGNDを通常の電圧としてもSTモードよりリーク電流が小さい。なお、ヒステリシスを実質的に有さないとはSTモードのような意図的なヒステリシスを有さないことであり、意図しないヒステリシスを有することを許容する。
【0023】
BIモードでは、メモリセル10は、通常のSRAMセルとして機能する。STモードでは、電圧(VVDD-VGND)を例えば0.2Vと超低電圧(ULV:Ultralow Voltage)としても双安定回路12はデータを保持する。
【0024】
表1は、比較例1における状態を示す表である。
【0025】
【表1】
【0026】
メモリセル10にデータの読み出しおよび書き込みを行う状態はリード/ライト状態である。リード/ライト状態のとき、制御信号VCTRLはハイレベルHである。これにより、インバータ回路14および16はBIモードとなる。パワースイッチ30は仮想電源電圧VVDDをVVDDH(例えば1.2V)とする。電圧(VVDD-VGND)はVH(例えば1.2V)となる。読み出しまたは書き込みを行うメモリセル10のワード線WLの電圧VWLをハイレベル(例えば1.2V)とすることにより、FETm5がオンし、双安定回路12からのデータの読み出しまたは書き込みが可能となる。
【0027】
通常動作のときに、データを保持している状態はVDDリテンション状態である。VDDリテンション状態のとき、制御信号VCTRLはハイレベルHであり、インバータ回路14および16はBIモードである。仮想電源電圧VVDDはVVDDH(例えば1.2V)であり、電圧(VVDD-VGND)はVH(例えば1.2V)である。読み出しまたは書き込みを行わないためワード線WLの電圧VWLはローレベル(例えば0V)であり、FETm5はオフである。
【0028】
メモリセル10のデータを超低電圧で保持する状態はULVリテンション状態である。ULVリテンション状態のとき、制御信号VCTRLはローレベルLであり、インバータ回路14および16はSTモードである。パワースイッチ30は、仮想電源電圧VVDDをVVDDL(例えば0.2V)とする。電圧(VVDD-VGND)はVHより低いVL(例えば0.2V)となる。電圧VWLはローレベル(例えば0V)であり、FETm5はオフである。
【0029】
[比較例2]
図3および図4は、比較例2におけるメモリセル10の回路図である。図3はループ表示の回路図であり、図4はクロスカップル表示の回路図である。
【0030】
図3および図4に示すように、比較例2では、FETm2a、m3a、ドライバ26が設けられていない。その他の構成は比較例1と同じである。
【0031】
表2は、比較例2における状態を示す表である。
【0032】
【表2】
【0033】
表2に示すように、バイアスノードN4の電圧はモードによらずVFN(例えば0.2V)で一定である。リード/ライト状態のとき、不図示の制御回路からの制御信号によりパワースイッチ30は仮想電源電圧VVDDをVVDDH(例えば1.2V)とする。双安定回路12に加わる仮想電源電圧(VVDD-VGND)はVH(例えば1.2V)となる。このとき、インバータ回路14および16はBIモードとなる。ワード線WLの電圧VWLはハイレベル(例えば1.2V)である。VDDリテンション状態のとき、仮想電源電圧VVDDはVVDDH(例えば1.2V)であり、電圧(VVDD-VGND)はVH(例えば1.2V)であり、インバータ回路14および16はBIモードである。ワード線WLの電圧VWLはローレベル(0V)である。
【0034】
ULVリテンション状態のとき、パワースイッチ30は仮想電源電圧VVDDをVVDDL(例えば0.2V)とする。電圧(VVDD-VGND)はVHより低いVL(例えば0.2V)となる。このとき、インバータ回路14および16はSTモードとなる。電圧VWLはローレベル(例えば0V)である。比較例1と同様に、ULVリテンション状態では消費電力を抑制できる。
【0035】
N型チャネルのFETm1とm2との間にフィードバックトランジスタFBTrとしてFETm3を設けるタイプをプルダウン型フィードバックPDFBと呼ぶ。P型チャネルのFETm1aとm2aとの間にフィードバックトランジスタFBTrとしてFETm3aを設けるタイプをプルアップ型フィードバックPUFBと呼ぶ。FETm3とm3aを両方設けるタイプをプルアッププルダウン型フィードバックPUPDFBと呼ぶ。比較例1はPUPDFBであり、比較例2はPDFBである。
【0036】
FBTrとFBTrが接続されるFETが異なる導電型チャネルの場合、異導電型チャネルFBTrと呼ぶ。PDFBである比較例2では、FBTrであるFETm3はP型チャネルであり、FETm3が接続されるFETm1およびm2はN型チャネルである。よって、PDFBにおいてFBTrがP型チャネルのときは異導電型チャネルFBTrである。PUFBにおいてFBTrがN型チャネルのとき、異導電型チャネルFBTrである。FBTrとFBTrが接続されるFETが同じ導電型チャネルの場合、同導電型チャネルFBTrと呼ぶ。PDFBにおいてFBTrがN型チャネルのとき、PUFBにおいてFBTrがP型チャネルのとき、同導電型チャネルFBTrである。
【0037】
異導電型チャネルFBTrでは、ゲートは、同じインバータ回路の入力ノードまたは相手方のインバータ回路の出力ノードに接続される。同導電型チャネルFBTrでは、ゲートは、同じインバータ回路の出力ノードまたは相手方のインバータ回路の入力ノードに接続される。比較例1および2は異導電型チャネルFBTrである。特許文献1では、同導電型チャネルFBTrが開示されている。
【0038】
電源線15aと電源15cとの間にパワースイッチ30を設け、パワースイッチ30は仮想電源電圧VVDDを設定し、電圧VVDD-VGNDをメモリセル10の電源電圧とする方式をヘッダPSと呼ぶ。グランド線15bとグランドとの間にパワースイッチ30を設け、パワースイッチ30は仮想接地電圧VVGNDを設定し、VDD-VVGNDをメモリセル10の電源電圧とする方式をフッタPSと呼ぶ。電源線15aと電源15cとの間とグランド線15bとグランドとの間の両方にパワースイッチ30を設け、パワースイッチ30は仮想電源電圧VVDDおよび仮想接地電圧VVGNDを設定し、VVDD-VVGNDをメモリセル10の電源電圧とする方式をデュアルPSと呼ぶ。比較例1および2はヘッダPSである。
【0039】
ドライバ26を設け、制御信号VCTRLによりバイアスノードN4およびN4aにハイレベルおよびローレベルを印加することでSTモードとBIモードを切り替える方式をタイプ2と呼ぶ。ドライバ26を設けず、バイアスノードN4を定電圧(一定のバイアス)とする方式をタイプ1と呼ぶ。比較例1はタイプ2であり、比較例2はタイプ1である。
【0040】
まとめると、比較例1は、PUPDFB、異導電型チャネルFBTr、ヘッダPS、タイプ2である。比較例2は、PDFB、異導電型チャネルFBTr、ヘッダPS、タイプ1である。
【0041】
異導電型チャネルFBTrでは、同導電型チャネルFBTrよりULVリテンション状態における双安定回路12の動作安定性(例えばノイズマージン)が向上することを説明する。
【0042】
例えば比較例2において、FETm3がN型チャネル(すなわち同導電型チャネル)の場合、インバータ回路14および16のFETm3のゲートはそれぞれインバータ回路14および16の出力ノードN2に接続されている。ULVリテンション状態において、例えば記憶ノードQ1およびQ2がそれぞれローレベルおよびハイレベルのとき、インバータ回路14のFETm3はオンし、中間ノードN3は電圧VFNのバイアスノードN4から充電される。しかし、FETm3がN型チャネルであり、FETm3の閾値電圧Vthは正のため、バイアスノードN4からの充電電位は、不十分である。これにより、FBTrであるFETm3のフィードバック効果が低下し、ULVリテンション状態における双安定回路の動作安定性が低下する場合がある。
【0043】
一方、比較例2のようにFETm3がP型チャネル(すなわち異導電型チャネル)のとき、例えば記憶ノードQ1およびQ2がそれぞれローレベルおよびハイレベルのとき、インバータ回路14のFETm3がオンする。中間ノードN3は電圧がVFNであるバイアスノードN4から充電される。FETm3がP型チャネルであり、FETm3のゲートにはソースおよびドレインに対し十分低い電圧が加わるため、中間ノードN3をVFNにプルアップできる。これにより、FETm3のフィードバック効果が十分に生じる。よって、ULVリテンション状態における双安定回路の動作安定性を向上させることができる。
【0044】
次に、比較例2がタイプ1となることを説明する。比較例2では、VFNをVVDDL程度の一定のバイアスとする。電源線15aにVVDDHが印加されると、VFNはVVDDHに対し十分に低いため、インバータ回路14および16はBIモードとなる。電源線15aにVVDDLが印加されると、VFNはVGNDに対し高く、VVDDLに等しい、またはVVDDLに近いため、インバータ回路14および16はSTモードとなる。このように、PDFB・ヘッダPSでは、ドライバ26が不要となる。同様にPUFB・フッタPSでは、ドライバ26が不要となる。
【0045】
比較例1では、メモリセル10内のトランジスタの個数は14個であり、かつドライバ26を設ける。これにより、図2のように、回路の面積が大きくなる。インバータ回路14および16に対するプルアップ側とインバータ回路14および16に対するプルダウン側の両方のFBTr(FETm3およびm3a)によりフィードバックをかけるため、ULVリテンション状態におけるノイズマージンが大きくなる。これにより、VVDDLを例えば0.15Vとすることができ、消費電力を抑制できる可能性がある。
【0046】
比較例2では、メモリセル10内のトランジスタの個数は10個であり、かつドライバ26が不要である。これにより、図4のように回路の面積を小さくできる。しかし、プルダウン側のFBTr(FETm3)のみによりフィードバックをかけるため、ULVリテンション状態におけるノイズマージンが比較例1より小さくなる。これにより、VVDDLは例えば0.2Vとなる。よって、比較例1より消費電力が大きくなる。
【実施例0047】
実施例1は、PDFB、異導電型チャネルFBTr、ヘッダPS、タイプ1の例である。実施例1では、比較例2のロードであるFETm1aとパストランジスタであるFETm5とを1つのFETm4としている。これにより、メモリセル10内のトランジスタの個数を8個と比較例2よりさらに削減できる。さらに、ULVリテンションにおけるノイズマージンを増大できる。
【0048】
[メモリセルの説明]
図5および図6は、実施例1におけるメモリセルの回路図である。図5はループ表示の回路図であり、図6はクロスカップル表示の回路図である。
【0049】
図5および図6に示すように、メモリセル10は、インバータ回路14および16を主に備えている。インバータ回路14および16はループ状に接続され双安定回路12を構成している。インバータ回路14および16は、FETm1~m4を各々備えている。FETm1およびm2はNチャネルMOSFETであり、FETm3およびm4はPチャネルMOSFETである。FETm1~m4は例えばノーマリオフ型トランジスタである。
【0050】
FETm1において、ソースはグランド電圧VGNDが印加されたグランド線15bに接続され、ドレインは中間ノードN3に接続され、ゲートは入力ノードN1に接続されている。FETm2において、ソースは中間ノードN3に接続され、ドレインは出力ノードN2に接続され、ゲートは入力ノードN1に接続されている。FETm1およびm2はドライバである。
【0051】
FETm3において、ソースおよびドレインの一方は中間ノードN3に接続され、ソースおよびドレインの他方はバイアスノードN4に接続され、ゲートは入力ノードN1に接続されている。FETm3はフィードバックトランジスタFBTrである。
【0052】
FETm4において、ソースおよびドレインの一方は出力ノードN2に接続され、ソースおよびドレインの他方は制御線CTRL1またはCTRL2に接続され、ゲートはワード線WLに接続されている。FETm4は、リード/ライト状態ではパストランジスタとして機能し、VDDリテンション状態およびULVリテンション状態ではロードとして機能する。
【0053】
インバータ回路14の入力ノードN1とインバータ回路16の出力ノードN2は記憶ノードQ1に接続され、インバータ回路16の入力ノードN1とインバータ回路14の出力ノードN2は記憶ノードQ2に接続されている。記憶ノードQ1とQ2は相補的なノードである。記憶ノードQ1はインバータ回路16のFETm4を介し制御線CTRL1に接続され、記憶ノードQ2はインバータ回路14のFETm4を介し制御線CTRL2に接続されている。
【0054】
選択回路32は、制御線CTRL1をビット線BLおよび電源線15a(仮想電源線)のいずれか一方に接続する。選択回路32aは、制御線CTRL2をビット線BLBおよび電源線15aのいずれか一方に接続する。パワースイッチ(PS)30は、電源15cの電圧VDDを仮想電源電圧VVDDに変換し電源線15aに供給する。
【0055】
[メモリアレイの説明]
図7Aは、実施例1におけるメモリアレイのブロック図である。図7Aに示すように、メモリアレイ22は、メモリセル10を有する複数のブロック24に分割されている。ブロック24の個数は適宜設計可能である。メモリアレイ22内には複数のメモリセル10がn列にマトリックス状に配置されている。メモリアレイ22内には、行方向にワード線WLが延伸し、列方向に制御線CTRL1およびCTRL2が延伸している。各メモリセル10には、ワード線WL、制御線CTRL1およびCTRL2が接続されている。図7Aでは、1列からn列の制御線CTRL1およびCTRL2をそれぞれ制御線CTRL11およびCTRL21からCTRL1nおよびCTRL2nと示している。
【0056】
メモリアレイ22に対応し、制御回路28、パワースイッチ30および周辺回路38が設けられている。制御回路28は、パワースイッチ30および周辺回路38を制御する。
【0057】
パワースイッチ30は、制御回路28からの制御信号にしたがって、電源15cの電圧VDDから、例えば分圧回路によって、得られ仮想電源電圧VVDDを出力する。電圧VVDD-VGNDが双安定回路12に加わる電圧となる。周辺回路38は、WLデコーダ31、選択回路32b、プリチャージ回路33および読出書込回路34を備えている。図7Aでは、図5および図6の選択回路32および32aを選択回路32bとして説明する。以下の同様の図も同じである。
【0058】
メモリセル10がデータを保持するときには、選択回路32bは制御線CTRL11およびCTRL21からCTRL1nおよびCTRL2nに電源線15aを接続するようにスイッチする。メモリセル10からデータを読み出しまたは書き込むときには、選択回路32bは制御線CTRL11およびCTRL21からCTRL1nおよびCTRL2nにそれぞれビット線BL1およびBLB1からBLnおよびBLBnを接続するようにスイッチする。WLデコーダ31は行アドレスに基づきワード線WLを選択する。読出書込回路34に列アドレスが入力する。読出書込回路34は列アドレスに基づきビット線BL1およびBLB1からBLnおよびBLBnから選択する列に対応するビット線BLおよびBLBを選択する。プリチャージ回路33はビット線BLおよびBLBをプリチャージする。読出書込回路34は、選択されたメモリセル10の双安定回路12にデータを書き込みまたは双安定回路12からデータを読み出しバス25に出力する。
【0059】
周辺回路の別の例を図7Bおよび図7Cを用い説明する。図7Bは、実施例1におけるパワースイッチおよび選択回路を示す図である。図7Bに示すように、パワースイッチ30は、FETPS1およびPS2を備えている。FETPS1およびPS2はPチャネルFETである。FETPS1は電源15cHと電源線15aとの間に接続され、FETPS2は電源15cLと電源線15aとの間に接続されている。電源15cHおよび電源15cLにはそれぞれ電源電圧VDDHおよびVDDLが供給されている。
【0060】
FETPS1およびPS2のゲートにはそれぞれ信号VPS1およびVPS2が入力する。信号VPS1およびVPS2がそれぞれローレベルおよびハイレベルのとき、FETPS1およびPS2はそれぞれオンおよびオフし、仮想電源電圧VVDDはVDDHとなる。仮想電源電圧VVDDがVDDHとなるのは、リード/ライト状態およびVDDリテンション状態のときであり、電圧VVDD-VGNDは例えば1.2Vである。信号VPS1およびVPS2がそれぞれハイレベルおよびローレベルのとき、FETPS1およびPS2はそれぞれオフおよびオンし、仮想電源電圧VVDDはVDDLとなる。仮想電源電圧VVDDがVDDLとなるのは、ULVリテンション状態のときであり、電圧VVDD-VGNDは例えば0.2Vである。信号VPS1およびVPS2がともにハイレベルのとき、FETPS1およびPS2はともにオフし、仮想電源電圧VVDDが遮断される。仮想電源電圧VVDDが遮断されるのは、シャットダウン状態のときである。
【0061】
電源線15aと制御線CTRL1およびCTRL2との間にプリチャージ/選択回路33aが設けられている。プリチャージ/選択回路33aはFETM10~M12を備えている。FETM10は電源線15aと制御線CTRL1との間に接続されている。FETM11は電源線15aと制御線CTRL2との間に接続されている。FETM12は制御線CTRL1とCTRL2との間に接続されている。FETM10~M12はPチャネルFETである。FETM10~M12のゲートには選択信号Selが入力する。制御線CTRL1およびCTRL2と読出書込回路34に接続されたビット線BLおよびBLBとの間に選択回路32bが設けられている。選択回路32bはトランスファーゲートM13およびM14を備えている。トランスファーゲートM13はビット線BLと制御線CTRL1との間に接続されている。トランスファーゲートM14はビット線BLBと制御線CTRL2との間に接続されている。トランスファーゲートM13およびM14に選択信号Sel´およびSel´の相補信号SelB´が入力する。
【0062】
図7Cは、実施例1におけるメモリアレイの別の例を示すブロック図である。図7Cに示すように、プリチャージ/選択回路33aはパワースイッチ30とメモリアレイ22との間に設けられている。プリチャージ/選択回路33aは図7BのFETM10~M12を備え、選択回路32bは図7BのトランスファーゲートM13およびM14を備えている。
【0063】
選択信号Selがローレベルのとき、FETM10~M12はオンし、制御線CTRL1およびCTRL2に仮想電源電圧VVDDが供給される。選択信号Selがハイレベルのとき、FETM10~M12はオフする。FETM10~M12がオフであり、かつ選択信号Sel´がハイレベルのとき、トランスファーゲートM13およびM14はオンし、制御線CTRL1およびCTRL2はビット線BLおよびBLBとして機能する。FETM10~M12がオンであり、かつ選択信号Sel´がローレベルのとき、トランスファーゲートM13およびM14はオフし、制御線CTRL1およびCTRL2はビット線BLおよびBLBから切断される。以上のように、制御線CTRL1およびCTRL2の端にプリチャージ/選択回路33aが接続し、制御線CTRL1およびCTRL2の他の端に選択回路32bが接続されていてもよい。
【0064】
図7Aおよび図7Cの電子回路の制御回路28はパワースイッチ30を制御し、双安定回路12がデータを保持するULVリテンション状態において、実施例1の表3の電圧VVDD-VGNDの電圧VL(0.2V)をリード/ライト状態(第2状態)における電圧VH(1.2V)より低くする。これにより、ULVリテンション状態における消費電力を抑制できる。
【0065】
表3は、実施例1における状態を示す表である。
【0066】
【表3】
【0067】
バイアスノードN4は定電圧VFN(例えば0.2V)である。リード/ライト状態のとき、選択回路32bは制御線CTRL(図5および図6では制御線CTRL1およびCTRL2)にビット線BL(図5および図6ではビット線BLおよびBLB)を接続する。パワースイッチ30は仮想電源電圧VVDDをVVDDH(例えば1.2V)とする。電圧VVDD-VGNDはVH(例えば1.2V)となる。リード状態ではビット線BLおよびBLBはほぼVVDDHとなる。ライト状態ではビット線BLおよびBLBの一方はほぼVVDDHとなり、他方はほぼVGNDとなる。記憶ノードQ1およびQ2のハイレベルはほぼVVDDHとなり、ローレベルはほぼVGNDとなる。インバータ回路14および16はBIモードとなる。
【0068】
読み出しまたは書き込むメモリセル10のワード線WLの電圧VWLを電圧V1(例えば0.25V)とする。電圧V1は記憶ノードQ1およびQ2がハイレベルおよびローレベルのいずれのときにもFETm4がオンする電圧とする。これにより、メモリセル10からデータの読み出しおよび書き込みが可能となる。
【0069】
VDDリテンション状態のとき、選択回路32bは制御線CTRL(図5および図6では制御線CTRL1およびCTRL2)に電源線15aを接続する。パワースイッチ30は仮想電源電圧VVDDをVVDDH(例えば1.2V)とする。電圧VVDD-VGNDはVH(例えば1.2V)となる。インバータ回路14および16はBIモードとなる。
【0070】
ワード線WLの電圧VWLを電圧V2(例えば1.1V)とする。電圧V2はVVDDHより少し低いため、記憶ノードQ1およびQ2がハイレベルおよびローレベルのいずれのときでもFETm4はわずかにオンする。これにより、FETm4はインバータ回路14および16のロードとして機能する。VDDリテンション状態では、双安定回路12のデータが保持される。
【0071】
ULVリテンション状態のとき、選択回路32bは制御線CTRL(図5および図6では制御線CTRL1およびCTRL2)に電源線15aを接続する。パワースイッチ30は仮想電源電圧VVDDをVVDDL(例えば0.2V)とする。電圧VVDD-VGNDはVL(例えば0.2V)となる。インバータ回路14および16はSTモードとなる。
【0072】
ワード線WLの電圧VWLを電圧V3(例えば0.2V)とする。電圧V3がゲートに加わると、記憶ノードQ1およびQ2がハイレベルおよびローレベルのいずれのときでもFETm4がオフするが、FETm4のリーク電流によりFETm4はインバータ回路14および16のロードとして機能する。ULVリテンション状態では、超低電圧で双安定回路12のデータが保持される。これにより、リーク電流による消費電力を抑制できる。
【0073】
[シミュレーション1]
シミュレーション1はVDDリテンション状態およびリード/ライト状態のリード時におけるSNM(Static Noise Margin)およびスタンバイパワーのシミュレーションである。
【0074】
シミュレーションは、実施例1、比較例2および6個のトランジスタを用いたSRAMセル(6T)である比較例3について行った。シミュレーション条件は以下である。
【0075】
実施例1における各FETのチャネル幅W/長さLは以下である。
【0076】
FETm1、m2(ドライバ):100nm/60nm
FETm3(フィードバックトランジスタ):WFB/60nm
FETm4(パストランジスタ/ロード):WLP/60nm
実施例1における各電圧は以下である。
【0077】
VVDDH=1.2V
VGND=0V
VFN=0.2V
VWL=1.1Vまたは0.25V
【0078】
比較例2における各FETのチャネル幅W/長さLは以下である。
【0079】
FETm1、m2(ドライバ):165nm/60nm
FETm1a(ロード):100nm/60nm
FETm3(フィードバックトランジスタ):120nm/60nm
FETm5(パストランジスタ):100nm/60nm
比較例2における各電圧は以下である。
【0080】
VVDDH=1.2V
VGND=0V
VFN=0.2V
比較例3における各FETのチャネル幅W/長さLは以下である。
【0081】
ドライバ:150nm/60nm
ロード:100nm/60nm
パストランジスタ:100nm/60nm
比較例3における各電圧は以下である。
【0082】
VVDD=1.2V
VGND=0V
【0083】
実施例1では、制御線CTRL1およびCTRL2からメモリセル10に仮想電源電圧VVDDが供給される。このため、FETm4のサイズおよびVDDリテンション状態におけるワード線WLの電圧VWLによりノイズマージンおよび待機時電力が決まる。また、VFNを一定のバイアスとしているため、BIモードでもFETm3によりSTモードより弱いがフィードバックがかかる。このため、FETm3のサイズによりノイズマージンを設計可能である。
【0084】
そこで、FETm4のサイズ(チャネル幅WLP)およびFETm3のサイズ(チャネル幅WFB)を変え、VDDリテンション状態におけるSNM(Static Noise Margin)およびスタンバイ電力をシミュレーションした。スタンバイ電力は、データを保持している状態における各FETのリーク電流の合計に相当する。また、ワード線WLの電圧VWLを変え、VDDリテンション状態におけるSNMおよびスタンバイパワーをシミュレーションした。SNMは雑音余裕であり、SNMが小さいと双安定回路12のデータが雑音等により反転しやすくなり、SNMが大きいと双安定回路12のデータが雑音等により反転しにくくなる。SNMの指標としてSNMを80mV以上とすることを目標とした。
【0085】
図8(a)および図8(b)は、実施例1のVDDリテンション状態におけるWLPおよびWFBに対するSNMおよびスタンバイパワーを示す図である。SNMのTTはPFETおよびNFETの閾値電圧がTypicalなときのSNMである。SNMのFFはPFETおよびNFETの閾値電圧がいずれもプロセス変動によりTypical値よりFast(F)側(低い方)に3σずれたときのSNMである。SNMのSSはPFETおよびNFETの閾値電圧がいずれもプロセス変動によりTypical値よりSlow(S)側(高い方)に3σずれたときのSNMである。SNMのFSおよびSFはPFETおよびNFETの閾値電圧の一方がTypical値よりF側に、他方がTypical値よりS側に3σずれたときのSNMである。TT、FF、SS、FSおよびSFのSNMが確保されていれば、PFETおよびNFETの閾値電圧が±3σの範囲内でばらついたとしてもSNMを確保できる。比較例3では、パストランジスタのチャネル幅Wは一定である。
【0086】
図8(a)に示すように、WFB=230nmおよびVWL=1.1Vのとき、WLPを100nmから300nmまで変化させている。WLPが大きくなるとSNMは大きくなる。WLPが100nm以上ではいずれのSNMも80mV以上である。SNMが大きくなるとスタンバイパワーが大きくなる。実施例1のスタンバイパワーが比較例3(6T)より小さくなるのはWLPが110nm以下のときである。そこで、WLPを110nmに設定する。
【0087】
図8(b)に示すように、WLP=110nmおよびVWL=1.1Vのとき、WFBを100nmから300nmまで変化させている。WFBが大きくなるとSNMは大きくなる。WFBが230nm以上ではいずれのSNMも80mV以上である。実施例1のスタンバイパワーはWFBに依存せずいずれのWFBでも比較例3より小さい。以上より、WFBを230nmに設定する。
【0088】
図9(a)および図9(b)は、実施例1および比較例3のVDDリテンション状態およびリード/ライト状態のリードにおけるVWLに対するSNMおよびスタンバイパワーを示す図である。図9(b)は、図9(a)のVWLが1.1V付近の拡大図である。SNMを80mV以上とすることを目標とした。SNM=80mVを破線で示した。
【0089】
図9(a)に示すように、WLP=110nmおよびWFB=230nmのとき、VWLを0Vから1.2Vまで変化させている。SNMはVWL=0.7V付近がピークであり、VWLが0.7Vより小さくなるとSNMは小さくなり、VWLが0.7Vより大きくなるとSNMは小さくなる。VWLが小さくなるとスタンバイパワーは大きくなる。
【0090】
図9(b)に示すように、VWLが1.1V以上では、実施例1のスタンバイパワーは比較例3より小さくなる。VWLが1.15V以下では、いずれのSNMも80mV以上である。そこで、VDDリテンション状態におけるVWLを1.1Vとした。
【0091】
リード/ライト状態ではFETm4をオンするためVWLを低くする。しかし、SNMは大きいことが好ましい。図9(a)のように、VWLが0.25V以上ではいずれのSNMも80mV以上である。そこで、VWLを0.25Vとした。
【0092】
実施例1、比較例2および3について、リード/ライト状態およびVDDリテンション状態におけるSNMをシミュレーションした。実施例1では、WLP=110nm、WFP=230nmとし、VDDリテンション状態のVWL=1.1V、リード/ライト状態のVWL=0.25Vとした。
【0093】
図10(a)から図10(c)は、実施例1、比較例2および3のVDDリテンション状態およびリード/ライト状態におけるSNMを示す図である。図10(a)はVDDリテンション状態のSNMであり、図10(b)はリード/ライト状態においてリードのときのSNMであり、図10(c)はリード/ライト状態においてライトのときのSNMである。
【0094】
図10(a)に示すように、VDDリテンション状態では、実施例1のSNMは比較例2および3より小さいものの、すべてのSNMにおいて80mVより大きい。図10(b)に示すように、リードでは、実施例1のSNMは比較例2および3とほぼ同じであり、すべてのSNMにおいて80mVより大きい。図10(c)に示すように、ライトでは、実施例1のSNMは比較例2および3より大きく、すべてのSNMにおいて80mVより大きい。以上のように、実施例1では、すべてのSNMにおいて80mVより大きい。また、TTのSNMは100mVより大きい。このように、実施例1では、リード/ライト状態およびVDDリテンション状態において十分なノイズマージンを確保できる。図9(a)および図9(b)でのVWLの最適化は、VDDリテンション状態およびリード/ライト状態のリードで行っているが、図10(a)から図10(c)のように、リード/ライト状態のライトにおいてもSNMを増加させることができる。
【0095】
[シミュレーション2]
シミュレーション2はULVリテンション状態におけるインバータ回路14および16の伝達特性、双安定回路12のバタフライカーブ、SNMおよびスタンバイパワーのシミュレーションである。
【0096】
特に記載されていない各FETのチャネル幅W/長さLおよび各電圧はシミュレーション1と同じである。実施例1では、WLP=110nm、WFP=230nmとした。比較例3ではVVDD=0.2Vである。
【0097】
実施例1について、ワード線WLの電圧VWLを変えULVリテンション状態におけるインバータ回路14および16の伝達特性をシミュレーションした。
【0098】
図11は、実施例1のULVリテンション状態におけるインバータ回路の伝達特性を示す図であり、インバータ回路14および16の入力電圧Vin(入力ノードN1の電圧)に対する出力電圧Vout(出力ノードN2)を示す図である。
【0099】
図11に示すように、Vinを高くしていくフォワードスイープでは、VWLを高くすると、出力電圧Voutがハイレベルからローレベルにシフトする閾値電圧がVinの高い方にシフトしている。Vinを低くしていくバックワードスイープでは、VWLを高くすると、出力電圧Voutがローレベルからハイレベルにシフトする閾値電圧がVinの低い方にシフトしている。バックワードスイープでは、VWLを高くすると閾値電圧がよりVinの低い方にシフトする。
【0100】
図12(a)および図12(b)は、実施例1における双安定回路の回路図である。双安定回路12の回路は図5および図6においてULVリテンション状態の回路図であり、原理がわかりやすくなるように表示している。図12(a)および図12(b)のうちインバータ回路14の入力電圧Vinおよび出力電圧Voutについて説明する。
【0101】
図12(a)を参照し、フォワードスイープについて説明する。初期状態では、入力電圧Vinはローレベル(例えば0V)であり、出力電圧Voutはハイレベル(例えば0.2V)である。この状態では、インバータ回路14において、FETm1およびm2はオフであり、FETm3はオンである。FETm4はVWL=0.2Vではオフであるが、リーク電流が流れる。VWLが0.2Vより低いとFETm4はオンする。このため、出力ノードN2は点線矢印92のようにFETm4のリーク電流またはオン電流により制御線CTRL1のVVDDLから充電され、中間ノードN3は点線矢印93のようにバイアスノードN4のVFNにより充電されている。
【0102】
入力電圧Vinが高くなったときに、出力電圧Voutをローレベルとするためには、実線矢印90のように出力ノードN2から中間ノードN3に放電される。しかし、実線矢印91のように中間ノードN3からグランド線15bに放電されないと、出力ノードN2から中間ノードN3に放電できない。このため、中間ノードN3が放電した後に出力ノードN2が放電するため、出力電圧Voutがローレベルとなる閾値電圧はVinの高い方にシフトする。
【0103】
図12(b)を参照し、バックワードスイープについて説明する。初期状態では、入力電圧Vinはハイレベル(例えば0.2V)であり、出力電圧Voutはローレベル(例えば0V)である。この状態では、インバータ回路14において、FETm1およびm2はオンであり、FETm3およびm4はオフである。このため、中間ノードN3は点線矢印95のようにグランド線15bに放電される。FETm4はVWL=0.2Vではオフであるが、リーク電流が流れる。VWLが0.2Vより低いとFETm4は弱くオンする。点線矢印94のFETm2を介した放電が点線矢印96のFETm4を介した充電より速いため、出力ノードN2は中間ノードN3に放電されている。
【0104】
入力電圧Vinが低くなると、FETm1がオフしFETm3がオンするため、実線矢印97のように中間ノードN3はバイアスノードN4のVFNにより充電される。FETm2がオフしFETm4がオフまたは弱いオンであると、点線矢印96のように出力ノードN2は制御線CTRL1のVVDDLから充電される。しかし、FETm4のオフ電流に近い電流で出力ノードN2が充電されるため、充電はVWLに依存する。これにより、出力電圧Voutがハイレベルとなる閾値電圧は、VWLを高くすると、Vinの低い方にシフトする。特にFETm4のゲートにはVWLが印加されている。このため、点線矢印96の電流の大きさはVWLに依存する。VWLが高いとFETm4の電流は小さいため、閾値電圧はVinの低い方によりシフトする。
【0105】
実施例1、比較例2および3の双安定回路12におけるバタフライカーブをシミュレーションした。実施例1においてVWL=0.2Vとした。
【0106】
図13(a)および図13(b)は、実施例1、比較例2および3のULVリテンション状態における双安定回路のバタフライカーブを示す図である。図13(a)は、Q1がローレベルかつQ2がハイレベルのときが動作点であり、図13(b)は、Q1がハイレベルかつQ2がローレベルのときが動作点である。
【0107】
図13(a)および図13(b)に示すように、比較例3の6T-SRAMでは、バタフライカーブの開口(lobe)が狭くノイズマージンが小さい。比較例2では動作点側の開口が広くなりノイズマージンが大きくなる。実施例1では動作点側の開口が比較例2より更に広くなりノイズマージンが比較例2よりさらに大きくなる。
【0108】
実施例1、比較例2および3のULVリテンション状態におけるSNMをシミュレーションした。
【0109】
図14(a)は、実施例1、比較例2および3のULVリテンション状態におけるSNMを示す図である。図14(a)に示すように、比較例3では、いずれのSNMも80mVより小さく、ノイズマージンが小さい。比較例2では、いずれのSNMも80mV以上であり、ノイズマージンが大きい。実施例1では、いずれのSNMも130mV以上であり、比較例2よりノイズマージンが大きい。実用的なSNMを80mVとすると、実施例1では、VVDDを0.2Vより低くすることもできる。VVDDを0.2Vとすると、SNMは130mV以上となり双安定回路12はVVDDを0.2Vより低くした場合に比べより安定となる。
【0110】
実施例1のULVリテンション状態において、VVDDを変化させ、SNMおよびスタンバイパワーをシミュレーションした。
【0111】
図14(b)は、実施例1のULVリテンション状態におけるVVDDに対するSNMおよびスタンバイパワーを示す図である。図14(b)に示すように、実施例1では、VVDDを0.1から0.2Vまで変化させている。VVDDが高くなると、SNMが大きくなり、かつスタンバイパワーが大きくなる。VVDDが0.15V以上では全てのSNMは80mV以上である。そこで、ULVリテンション状態におけるVVDD(すなわちVVDDL)を0.15Vとすることもできる。
【0112】
実施例1および比較例3について、各VVDDに対するスタンバイパワーをシミュレーションした。
【0113】
図15は、実施例1および比較例3におけるスタンバイパワーを示す図である。数字は、比較例3においてVVDD=1.2Vのときのスタンバイパワーに対するスタンバイパワーの削減率を示している。
【0114】
図15に示すように、比較例3では、リード/ライトを行う通常状態ではVVDD=1.2Vである。このとき、スタンバイパワーは約4.4nWである。比較例3において、リードおよびライトは行わずデータを保持するスリープ状態では、VVDD=0.8Vである。このとき、スタンバイパワーの削減率は44%である。
【0115】
実施例1において、VDDリテンション状態のときVVDD=1.2Vである。このときのスタンバイパワーの削減率は7%である。ULVリテンション状態のとき、VVDD=0.2Vとすると、スタンバイパワーの削減率は95%である。さらに、VVDD=0.15Vとすると、スタンバイパワーの削減率は97%である。
【0116】
比較例2では、メモリセル10内のトランジスタの個数は10個であるが、実施例1では、メモリセル10内のトランジスタの個数を8個と削減できる。これにより、図4図6との比較のように回路面積を抑制できる。さらに、図14(a)のように、ULVリテンション状態におけるノイズマージンを比較例2より大きくできる。比較例2と同じノイズマージンとすると、VVDDLを比較例2より低くできる。これにより、スタンバイパワーをより抑制できる。
【0117】
[実施例1の変形例1]
実施例1の変形例1は、PUFB、異導電型チャネルFBTr、フッタPS、タイプ1の例である。図16および図17は、実施例1の変形例1におけるメモリセル10の回路図である。図16はループ表示の回路図であり、図17はクロスカップル表示の回路図である。なお、PUFB・フッタPSでは、VDDリテンション状態ではなくVSSリテンション状態であるが、ここでは実施例1と合わせるためVDDリテンション状態と呼ぶ。
【0118】
図16および図17に示すようにインバータ回路14および16は、FETm1a~m4aを各々備えている。FETm1aおよびm2aはPチャネルMOSFETであり、FETm3aおよびm4aはNチャネルMOSFETである。
【0119】
FETm1aにおいて、ソースは電源電圧VDDが印加された電源線15aに接続されている。選択回路32は、制御線CTRL1をビット線BLおよびグランド線15b(仮想グランド線)のいずれか一方に接続する。選択回路32aは、制御線CTRL2をビット線BLBおよびグランド線15bのいずれか一方に接続する。パワースイッチ(PS)30は、グランド15dの電圧VGNDを仮想接地電圧VVGNDに変換しグランド線15bに供給する。バイアスノードN4には一定のバイアスVFPが印加されている。その他の回路構成は実施例1の図5および図6のFETm1~m4をFETm1a~m4aにそれぞれ置き換えた回路と同じである。
【0120】
表4は、実施例1の変形例1における状態を示す表である。
【0121】
【表4】
【0122】
バイアスノードN4は定電圧VFP(例えば1.0V)である。リード/ライト状態のとき、選択回路32および32aは制御線CTRL1およびCTRL2にビット線BLおよびBLBをそれぞれ接続する。パワースイッチ30は仮想接地電圧VVGNDをVVGNDL(例えば0V)とする。双安定回路12に加わる仮想電源電圧VDD-VVGNDはVH(例えば1.2V)となる。リード状態ではビット線BLおよびBLBをほぼVVGNDLにできる。ライト状態ではビット線BLおよびBLBの一方をほぼVVGNDLにでき、他方をほぼVDDにできる。記憶ノードQ1およびQ2のハイレベルはほぼVDDとなり、ローレベルはほぼVVGNDLとなる。インバータ回路14および16はBIモードとなる。読み出しまたは書き込むメモリセル10のワード線WLの電圧VWLを電圧V1(例えば0.9V)とする。
【0123】
VDDリテンション状態のとき、選択回路32および32aは制御線CTRL1およびCTRL2にグランド線15bを接続する。パワースイッチ30は仮想接地電圧VVGNDをVVGNDL(例えば0V)とする。電圧VDD-VVGNDはVH(例えば1.2V)となる。インバータ回路14および16はBIモードとなる。ワード線WLの電圧VWLを電圧V2(例えば0.1V)とする。
【0124】
ULVリテンション状態のとき、選択回路32および32aは制御線CTRL1およびCTRL2にグランド線15bを接続する。パワースイッチ30は仮想接地電圧VVGNDをVVGNDH(例えば1.0V)とする。電圧VDD-VVGNDはVL(例えば0.2V)となる。インバータ回路14および16はSTモードとなる。ワード線WLの電圧VWLを電圧V3(例えば1.0V)とする。ULVリテンション状態では、超低電圧で双安定回路12のデータが保持される。これにより、リーク電流による消費電力を抑制できる。
【0125】
[実施例1の変形例2]
実施例1の変形例2は、PDFB、同導電型チャネルFBTr、ヘッダPS、タイプ1の例である。図18および図19は、実施例1の変形例2におけるメモリセル10の回路図である。図18はループ表示の回路図であり、図19はクロスカップル表示の回路図である。
【0126】
図18および図19に示すようにインバータ回路14および16においてFETm3はNチャネルFETである。インバータ回路14のFETm3のゲートは、インバータ回路14の出力ノードN2またはインバータ回路16の入力ノードN1に接続され、インバータ回路16のFETm3のゲートは、インバータ回路16の出力ノードN2またはインバータ回路14の入力ノードN1に接続されている。その他の回路構成は実施例1の図5および図6と同じである。なお、図7Bと同様に、選択回路32および32aの一部はパワースイッチ30と制御線CTRL1およびCTRL2との間に設けられたプリチャージ/選択回路33aであり、選択回路32および32aの他の一部は読出書込回路34と制御線CTRL1およびCTRL2との間に設けられた選択回路32bでもよい。
【0127】
実施例1の変形例2のULVリテンション状態におけるバタフライカーブをシミュレーションした。シミュレーション条件は実施例1のシミュレーション2とほぼ同じである。VVDDを0.2Vとした。実施例1の変形例2では、VWL=0.1Vのときノイズマージンが最も大きくなるため、VWL=0.1Vとした。
【0128】
図20は、実施例1およびその変形例2のULVリテンション状態における双安定回路のバタフライカーブを示す図である。図20は、Q1がローレベルかつQ2がハイレベルのときが動作点である。実施例1のバタフライカーブは図13(a)と同じである。
【0129】
図20に示すように、実施例1の変形例2では、動作点側の開口は実施例1の動作点側の開口より小さい。このように、フィードバックトランジスタ(FETm3)がFETm1およびm3と同導電型チャネルの場合、異導電型チャネルよりノイズマージンが小さくなる。動作点側の開口は図13(a)の比較例3より広い。よって、ULVリテンションにより比較例3より消費電力を抑制できる。さらに、比較例2より回路面積を削減できる。
【0130】
実施例1およびその変形例によれば、インバータ回路14(第1インバータ回路)およびインバータ回路16(第2インバータ回路)において、FETm1(第1FET)(またはFETm1a)では、ソースがグランド線15b(または電源線15a)に接続され、ドレインが中間ノードN3に接続され、ゲートが入力ノードN1に接続されている。なお、実施例1およびその変形例2のようなPDFBではグランド線15bが電源線に相当し、実施例1の変形例1のようなPUFBでは電源線15aが電源線に相当する。
【0131】
FETm2(第2FET)(またはFETm2a)では、ソースが中間ノードN3に接続され、ドレインが出力ノードN2に接続されている。FETm3(第3FET)(またはFETm3a)では、ソースおよびドレインの一方が中間ノードN3に接続され、ソースおよびドレインの他方がバイアスノードN4に接続されている。FETm4(第4FET)(またはFETm4a)では、ソースおよびドレインの一方が出力ノードN2に接続され、ソースおよびドレインの他方が制御線CTRL1またはCTRL2に接続されている。FETm4(またはm4a)の導電型(第2導電型)は、FETm1およびm2(またはFETm1aおよびm2a)の導電型(第1導電型)と反対である。
【0132】
記憶ノードQ1(第1記憶ノード)において、インバータ回路14の入力ノードN1およびインバータ回路16の出力ノードN2が接続され、記憶ノードQ2(第2記憶ノード)において、インバータ回路14の出力ノードN2およびインバータ回路16の入力ノードN1が接続される。これにより、双安定回路12が形成される。
【0133】
インバータ回路14および16のFETm4(またはFETm4a)のゲートはワード線WLに接続されている。インバータ回路14のFETm3(またはFETm3a)のゲートは、インバータ回路14の入力ノードN1、出力ノードN2、インバータ回路16の入力ノードN1および出力ノードN2のいずれか1つのノードに接続されている。インバータ回路16のFETm3(またはFETm3a)のゲートは、インバータ回路16の入力ノードN1、出力ノードN2、インバータ回路14の入力ノードN1および出力ノードN2のいずれか1つのノードに接続されている。
【0134】
以上のような回路構成により、インバータ回路14および16のロードとパストランジスタとをFETm4(またはFETm4a)により共用できる。よって、比較例2に比べ回路面積を削減できる。また、FBTrであるFETm3(またはFETm3a)により、ULVリテンション状態でのノイズマージンが比較例3より広くなる。よって、消費電力を削減できる。
【0135】
実施例1およびその変形例1では、FETm3(またはFETm3a)は、FETm1およびm2(またはFETm1aおよびm2a)の第1導電型チャネルと反対の第2導電型のチャネルである。すなわちFBTrは異導電型チャネルである。このとき、インバータ回路14のFETm3(またはFETm3a)のゲートは、インバータ回路14の入力ノードN1またはインバータ回路16の出力ノードN2に接続され、インバータ回路16のFETm3(またはFETm3a)のゲートは、インバータ回路16の入力ノードN1またはインバータ回路14の出力ノードN2に接続されている。
【0136】
これにより、実施例1のシミュレーション2のように、ULVリテンション状態におけるノイズマージンを比較例2より大きくできる。また、VVDDLを低くすることで、消費電力を抑制できる。
【0137】
実施例1の変形例2のように、FETm3は、FETm1およびm2と同じ第1導電型チャネルである。すなわちFBTrは同導電型チャネルである。このとき、インバータ回路14のFETm3のゲートは、インバータ回路14の出力ノードN2またはインバータ回路16の入力ノードN1に接続され、インバータ回路16のFETm3のゲートは、インバータ回路16の出力ノードN2またはインバータ回路14の入力ノードN1に接続されている。
【0138】
これにより、ULVリテンション状態におけるノイズマージンを比較例3より大きくできる。また、VVDDLを低くすることで、消費電力を抑制できる。
【0139】
図7Aおよび図7Cの電子回路の制御回路28はパワースイッチ30(電源回路)を制御し、双安定回路12がデータを保持するULVリテンション状態(第1状態)において、実施例1の表3の電圧VVDD-VGNDおよび実施例1の変形例1の表4のVDD-VVGNDの電圧VL(第1電圧)をリード/ライト状態(第2状態)における電圧VH(第2電圧)より低くする。これにより、ULVリテンション状態における消費電力を抑制できる。
【0140】
なお、電圧VLは、実施例1ではULVリテンション状態におけるグランド線15bと制御線CTRL1およびCTRL2との間の電圧VVDD-VGNDに相当し、実施例1の変形例1ではULVリテンション状態における電圧VDDの電源線15aと制御線CTRL1およびCTRL2との間の電圧VDD-VVGNDに相当する。電圧VHは、リード/ライト状態における記憶ノードQ1とQ2との間の電圧に相当する。
【0141】
電圧VLは電圧VHより小さければよいが、ULVリテンション状態においてSNMを確保しかつ消費電力を抑制する観点から、電圧VLは電圧VHの1/2以下が好ましく、1/4以下がより好ましく、1/5以下がさらに好ましく、さらに1/6以下がより好ましい。特に、消費電力を抑制する観点から1/10程度が好ましい。電圧VLは0Vより大きい。
【0142】
制御回路28は、選択回路32bを制御し、リード/ライト状態において、双安定回路12からデータをリードまたはライトするためのビット線BLおよびBLBを制御線CTRL1およびCTRL2に接続する。すなわち、制御線CTRL1およびCTRL2をビット線BLおよびBLBに設定する。これにより、制御線CTRL1およびCTRL2を介し、双安定回路12からデータをリードまたはライトできる。
【0143】
実施例1およびその変形例2のようにPDFBのとき(すなわち第1導電型がN型のとき)、FETm4はP型である。このため、リード/ライト状態においてFETm4をオンするためワード線WLの電圧VWLをグランド線15bの電圧VGND(例えば0V)とすることが一般的である。しかし、図9(a)のように、VWLを0Vとすると、SNMが小さくなる。
【0144】
そこで、リード/ライト状態において、制御回路28は、パワースイッチ30のワード線WLの電圧VWLをグランド線15bの電圧より高くする。例えば実施例1およびその変形例2ではVGND=0Vに対しVWL=0.25Vとする。これにより、図9(a)のように、SNMが目標である80mVより小さくなることを抑制できる。
【0145】
実施例1の変形例1のようにPUFBのとき(すなわち第1導電型がP型のとき)、制御回路28は、ワード線WLの電圧VWLを電源線15aの電圧VDDより低くする。例えば実施例1の変形例1ではVDD=1.2Vに対しVWL=0.9Vとする。これにより、PDFBと同様に、SNMが小さくなることを抑制できる。
【0146】
VDDリテンションおよびリード/ライト状態では、VWLがグランド線15b(または電源線15a)の電圧に近すぎるとリードにおけるSNMが大きくならない。よって、グランド線15b(または電源線15a)の電圧とVWLとの差は、VHの1/10以上が好ましく、1/5以上がより好ましく、図9(a)のように1/2程度がさらに好ましい。
【0147】
ULVリテンション状態では、VWLが高くなるとFETm4がオンしなくなり動作速度が低下する。このため、グランド線15b(または電源線15a)の電圧とVWLとの差は、電圧VHの1/2以下が好ましく、1/4以下がより好ましく、1/5以下がさらに好ましい。実施例1では、速度性能を優先してグランド線15bの電圧とVWLとの差を1/6程度とした。
【0148】
ULVリテンション状態では、図12(a)および図12(b)において、出力ノードN2がローレベル(例えばGND=0V)のときFETm4はオフし、出力ノードN2がハイレベル(例えばVVDDL=0.2V)のときFETm4はオンすることが好ましい。よって、VWLはVGND以上かつVVDDL以下であることが好ましい。すなわち、制御回路28は、ワード線WLとグランド線15b(または電源線15a)との間の電圧を電圧VL、または電圧VLより低くすることが好ましい。例えば、実施例1ではVL=0.2Vに対しVWL-VGND=0.2Vである。実施例1の変形例1ではVL=0.2Vに対しVDD-VWL=0.2Vである。実施例1の変形例2ではVL=0.2Vに対しVWL-VGND=0.1Vである。
【0149】
図11のように、実施例1ではVWLがVGNDに近すぎるとノイズマージンが小さくなる。よって、ワード線WLとグランド線15b(または電源線15a)との間の電圧は電圧VLの1/4以上が好ましく、1/2以上がより好ましい。図11においてVWL=0.2Vにおいてノイズマージンが最大となるように、ワード線WLとグランド線15b(または電源線15a)との間の電圧は電圧VLでもよい。
【0150】
実施例1およびその変形例2のようにPDFBのとき(すなわち第1導電型がN型のとき)、FETm4はP型である。このため、グランド線15bと制御線CTRL1およびCTRL2との間の電圧をVVDD-VGND=VH(例えば1.2V)とするVDDリテンション状態においてFETm4をオフするためワード線WLの電圧VWLをVVDD(例えば1.2V)とすることが一般的である。しかし、図9(b)のように、VWLを1.2Vとすると、SNMが小さくなる。
【0151】
そこで、VDDリテンション状態(第3状態)において、制御回路28は、ワード線WLとグランド線15bとの間の電圧をVHより小さくする。例えば、実施例1およびその変形例2ではVH=1.2Vに対しVWL-VGND=1.1Vとする。これにより、図9(b)のように、SNMが小さくなることを抑制できる。
【0152】
実施例1の変形例1のようにPUFBのとき(すなわち第1導電型がP型のとき)、制御回路28は、ワード線WLと電源線15aとの間の電圧をVHより小さくする。例えば、実施例1の変形例1ではVH=1.2Vに対しVDD-VWL=1.1Vとする。これにより、SNMが小さくなることを抑制できる。
【0153】
VWLがグランド線15b(または電源線15a)の電圧に近すぎるとSNMが大きくならない。よって、グランド線15b(または電源線15a)の電圧とVWLとの差はVHの49/50以下が好ましく、19/20以下がより好ましく、9/10以下がさらに好ましい。
【0154】
図9(b)のように、VWLが低くなるとスタンバイパワーが大きくなる。このため、グランド線15b(または電源線15a)の電圧とVWLとの差は、電圧VHの1/2以上が好ましく、3/4以上がより好ましく、4/5以上がさらに好ましい。
【0155】
ULVリテンション状態、VDDリテンション状態およびリード/ライト状態のいずれにおいても、バイアスノードN4には一定のバイアスであるVFNまたはVFPが供給される。これにより、ドライバ26が不要となり、回路面積を削減できる。バイアスノードN4に供給される電圧VFNおよびVFPの好ましい範囲について考察する。
【0156】
図21(a)および図21(b)は、それぞれヘッダPS・PDFB・タイプ1型およびフッタPS・PUFB・タイプ1型の各電圧を示す図である。図21(a)では、VGNDに対するVVDDHおよびVVDDLを縦方向に示し、図21(b)では、VDDに対するVVGNDLおよびVVGNDHを縦方向に示す。
【0157】
図21(a)に示すように、ヘッダPSでは、リード/ライト状態およびVDDリテンション状態では電源線15aにVVDDH、グランド線15bにVGNDが供給される。このとき、VFNをVVDDL程度の一定のバイアスとすると、VFNはVVDDHに対し十分低いため、インバータ回路14および16はBIモードとなる。ULVリテンション状態では電源線15aにVVDDL、グランド線15bにVGNDが供給される。このとき、VFNをVVDDL程度とすると、VFNはVGNDに対し高いため、インバータ回路14および16はSTモードとなる。
【0158】
定電圧VFNはVVDDHより小さくVGNDより大きければよい。すなわち、VFNは、リード/ライト状態における記憶ノードQ1の電圧と記憶ノードQ2の電圧の間(図21(a)の範囲40)であればよい。定電圧VFNがVVDDHに近すぎると、仮想電源電圧VVDDをVVDDHとしたときに、インバータ回路14および16はBIモードとなり難い。定電圧VFNがVGNDに近すぎると、仮想電源電圧VVDDをVVDDLとしたときに、インバータ回路14および16はSTモードとなり難い。よって、仮想電源電圧VVDDによって双安定回路12のモードを自動的に切り替えるには、定電圧VFNは、VVDDHとVGNDとの中点の電圧以下(すなわち(VVDDH-VGND)/2以下)が好ましく、VVDDLにVVDDLとVGNDの差の電圧の1/2を加えた電圧以下(すなわちVVDDL+(VVDDL-VGND)/2以下)がより好ましく、さらには、(VVDDH-VGND)/2と、VVDDLとVGNDとの中点の電圧程度(すなわち(VVDDL-VGND)/2程度)と、の間(図21(a)の範囲41)が好ましく、VVDDL+(VVDDL-VGND)/2と、(VVDDL-VGND)/2程度と、の間(図21(a)の範囲42)が好ましい。さらには、VVDDL程度が好ましい。
【0159】
図21(b)に示すように、フッタPSでは、リード/ライト状態およびVDDリテンション状態ではグランド線15bにVVGNDL、電源線15aにVDDが供給される。このとき、VFPをVVGNDH程度の一定のバイアスとすると、VFPはVVGNDLに対し十分高いため、インバータ回路14および16はBIモードとなる。ULVリテンション状態ではグランド線15bにVVGNDH、電源線15aにVDDが供給される。このとき、VFPをVVGNDH程度とすると、VFPはVDDに対し低いため、インバータ回路14および16はSTモードとなる。
【0160】
定電圧VFPはVVGNDLより大きくVDDより小さければよい。すなわち、VFPは、リード/ライト状態における記憶ノードQ1の電圧と記憶ノードQ2の電圧の間(図21(b)の範囲40)であればよい。定電圧VFPがVVGNDLに近すぎると、仮想接地電圧VVGNDをVVGNDLとしたときに、インバータ回路14および16はBIモードとなり難い。定電圧VFPがVDDに近すぎると、仮想接地電圧VVGNDをVVGNDHとしたときに、インバータ回路14および16はSTモードとなり難い。よって、仮想接地電圧VVGNDによって双安定回路12のモードを自動的に切り替えるためには、定電圧VFPは、VDDとVVGNDLとの中点の電圧以上(すなわち(VDD-VVGNDL)/2以上)が好ましく、VVGNDHにVDDとVVGNDHの差の電圧の1/2を減じた電圧以上(すなわちVVGNDH-(VDD-VVGNDH)/2以上)がより好ましく、さらには、(VDD-VVGNDL)/2と、VDDとVVGNDHとの中点の電圧程度(すなわちVVGNDH+(VDD-VVGNDH)/2程度)と、の間(図21(b)の範囲41)が好ましく、VVGNDH-(VDD-VVGNDH)/2と、VVGNDH+(VDD-VVGNDH)/2程度と、の間(図21(b)の範囲42)が好ましい。さらにVVGNDH程度が好ましい。
【0161】
実施例1およびその変形例では、ドライバ26を設けないタイプ1を例に説明したが、ドライバ26を設けるタイプ2でもよい。PDFBとPUFB、異導電型チャネルと同導電型チャネル、およびヘッダPSとフッタPSとデュアルPSの組み合わせは任意に設定できる。
【0162】
また、SRAMセルを例に説明したが、マスタスレーブ型フリップフロップ回路等のフリップフロップ回路に実施例1およびその変形例の双安定回路を用いてもよい。マスタスレーブ型フリップフロップ回路では、双安定回路12のループ内にクロック信号に同期してオンオフするパスゲート等のスイッチを設けてもよい。
【実施例0163】
実施例2は、メモリセルが不揮発性記憶素子を有する例である。
[仮想電源方式のメモリセルの説明]
図22は、実施例2における仮想電源電圧VVDDを用いる仮想電源方式のメモリセルの回路図である。図22に示すように、仮想電源方式では、パワースイッチ30が電源線15a(仮想電源線)と電源15cとの間に設けられている。メモリセル10は、インバータ回路14および16、FETM5、M6、不揮発性記憶素子としてスピントランスファートルク磁気トンネル接合素子(STT-MTJ:以下では単に強磁性トンネル接合素子と呼ぶ)MTJ1およびMTJ2を主に備えている。
【0164】
インバータ回路14および16はループ状に接続され双安定回路12を構成している。インバータ回路14は、FETM2およびM4を備えている。インバータ回路16はFETM1およびM3を備えている。FETM1、M2、M5およびM6はNチャネルMOSFETであり、FETM3およびM4はPチャネルMOSFETである。
【0165】
FETM1(第1FET)およびM2(第2FET)において、ソースはグランド電圧VGNDが印加されたグランド線15bに接続され、ドレインはそれぞれ記憶ノードQ1(第1記憶ノード)およびQ2(第2記憶ノード)に接続され、ゲートはそれぞれ記憶ノードQ2およびQ1に接続されている。記憶ノードQ1とQ2は相補的なノードである。FETM1およびM2はドライバである。
【0166】
FETM3(第3FET)およびM4(第4FET)において、ソースおよびドレインの一方はそれぞれ記憶ノードQ1およびQ2に接続され、ソースおよびドレインの他方はそれぞれ制御線CTRL1(第1制御線)およびCTRL2(第2制御線)に接続され、ゲートはワード線WLに接続されている。FETM3およびM4は、リード動作およびライト動作のときはパストランジスタとして機能し、ホールド状態、ストア動作およびリストア動作のときはロードとして機能する。
【0167】
記憶ノードQ1と制御線CTRL0との間にFETM5と強磁性トンネル接合素子MTJ1とが接続され、記憶ノードQ2と制御線CTRL0との間にFETM6と強磁性トンネル接合素子MTJ2とが接続されている。FETM5(第1スイッチ)およびM6(第2スイッチ)において、ソースおよびドレインの一方は、それぞれ記憶ノードQ1およびQ2に接続され、ソースおよびドレインの他方は強磁性トンネル接合素子MTJ1およびMTJ2にそれぞれ接続されている。ゲートはスイッチ線SRに接続されている。
【0168】
強磁性トンネル接合素子MTJ1(第1不揮発性記憶素子)およびMTJ2(第2不揮発性記憶素子)は、それぞれフリー層17、トンネル絶縁膜18およびピン層19を有している。フリー層17は制御線CTRL0に接続され、ピン層19はFETM5およびM6に接続されている。フリー層17およびピン層19は強磁性体からなる。フリー層17とピン層19との磁化方向が平行な状態(平行状態)では、MTJ1およびMTJ2の抵抗値が低くなる。フリー層17とピン層19との磁化方向が反平行な状態(反平行状態)では、MTJ1およびMTJ2の抵抗値が平行状態より高くなる。MTJ1およびMTJ2は、MTJ1およびMTJ2の磁化状態(すなわち抵抗値)によりデータをストアする。不揮発性記憶素子としてMTJを例に説明するが、不揮発性記憶素子は、巨大磁気抵抗(GMR)素子、ReRAM(Resistance Random Access Memory)に用いられるような可変抵抗素子、または、PRAM(Phase change RAM)に用いられる相変化素子でもよい。
【0169】
選択回路32は、制御線CTRL1をビット線BLおよび電源線15aのいずれか一方に接続する。選択回路32aは、制御線CTRL2をビット線BLBおよび電源線15aのいずれか一方に接続する。パワースイッチ(PS)30は、電源15cの電圧VDDを仮想電源電圧VVDDに変換し電源線15aに供給する。
【0170】
図23は、実施例2の仮想電源電圧を用いる仮想電源方式におけるパワースイッチおよび選択回路を示す図である。図23に示すように、メモリセル10はNV-SRAMセルである。その他の回路構成は図7Bと同じである。実施例2では、仮想電源電圧VVDDがVDDHとなるのは、ストア動作およびリストア動作のときであり、電圧VVDD-VGNDは例えば1.2Vである。仮想電源電圧VVDDがVDDLとなるのは、ホールド状態のときであり、電圧VVDD-VGNDは例えば1.0Vである。FETM10~M12がオフするのは、リード動作およびライト動作のときである。
【0171】
[仮想接地方式のメモリセルの説明]
図24は、実施例2における仮想接地方式のメモリセル10の回路図である。図24に示すように、仮想接地方式では、パワースイッチ30がグランド線15b(仮想グランド線)とグランド15dとの間に設けられている。FETM1~M6の代わりにFETM1a~M6aが設けられている。FETM1a、M2a、M5aおよびM6aは、PチャネルFETであり、FETM3aおよびM4aはNチャネルFETである。
【0172】
FETM1aおよびM2aのソースは電源線15aに接続されている。MTJ1およびMTJ2のピン層19は制御線CTRL0に接続され、フリー層17はFETM5およびM6に接続されている。選択回路32は、制御線CTRL1をビット線BLおよびグランド線15bのいずれか一方に接続する。選択回路32aは、制御線CTRL2をビット線BLBおよびグランド線15bのいずれか一方に接続する。パワースイッチ(PS)30は、グランド15dの電圧VGNDを仮想接地電圧VVGNDに変換しグランド線15bに供給する。その他の構成は、仮想電源方式の図22と同じであり説明を省略する。
【0173】
図25は、実施例2の仮想接地方式におけるパワースイッチおよび選択回路を示す図である。図25に示すように、選択回路32bは、読出書込回路34に接続されるビット線BLおよびBLBとグランド線15bとのいずれかを制御線CTRL1およびCTRL2に接続する。パワースイッチ30は、FETPS1aおよびPS2aを備えている。FETPS1aおよびPS2aはNチャネルFETである。FETPS1aはグランド15dLとグランド線15bとの間に接続され、FETPS2aはグランド15dHとグランド線15bとの間に接続されている。グランド15dLおよび15dHにはそれぞれグランド電圧VGNDLおよび電圧VGNDHが供給されている。
【0174】
FETPS1aおよびPS2aのゲートにはそれぞれ信号VPS1およびVPS2が入力する。信号VPS1およびVPS2がそれぞれハイレベルおよびローレベルのとき、FETPS1aおよびPS2aはそれぞれオンおよびオフし、仮想接地電圧VVGNDはVGNDLとなる。仮想接地電圧VVGNDがVGNDLとなるのは、ストア動作およびリストア動作のときであり、VDD-VVGNDは例えば1.2Vである。信号VPS1およびVPS2がそれぞれローレベルおよびハイレベルのとき、FETPS1aおよびPS2aはそれぞれオフおよびオンし、仮想接地電圧VVGNDはVGNDHとなる。仮想接地電圧VVGNDがVGNDHとなるのは、ホールド状態のときであり、VDD-VVGNDは例えば1.0Vである。信号VPS1aおよびVPS2aがともにローレベルのとき、FETPS1aおよびPS2aはともにオフし、仮想接地電圧VVGNDが遮断される。仮想接地電圧VVGNDが遮断されるのは、シャットダウン状態のときである。
【0175】
プリチャージ/選択回路33aは、FETM10~M12を備えている。電源15cと制御線CTRL1との間にFETM10が接続されている。電源15cと制御線CTRL2との間にFETM11が接続されている。制御線CTRL1とCTRL2との間にFETM12が接続されている。FETM10~M12のゲートには選択信号Selが入力する。選択信号Selがローレベルのとき、FETM10~M12はオンし、制御線CTRL1およびCTRL2に電源電圧VDDが印加される。FETM10~M12がオンするのは、リード動作のプリチャージのときである。選択信号Selがハイレベルのとき、FETM10~M12はオフし、選択回路32bは制御線CTRL1およびCTRL2をビット線BLおよびBLBまたはグランド線15bに接続する。
【0176】
以下仮想電源方式を例に、実施例2のメモリアレイおよび動作について説明する。
【0177】
[メモリアレイの説明]
図26は、実施例2におけるメモリアレイのブロック図である。図26に示すように、メモリアレイ22は、メモリセル10を有する複数のブロック24に分割されている。ブロック24の個数は適宜設計可能である。メモリアレイ22内には複数のメモリセル10がマトリックス状に配置されている。メモリアレイ22内には、行方向にワード線WLおよびスイッチ線SRが延伸し、列方向に制御線CTRL0~CTRL2が延伸している。各メモリセル10には、ワード線WL、スイッチ線SR、制御線CTRL0~CTRL2が接続されている。図26では、1列からn列の制御線CTRL1およびCTRL2をそれぞれ制御線CTRL11およびCTRL21からCTRL1nおよびCTRL2nと示している。
【0178】
メモリアレイ22に対応し、制御回路28、パワースイッチ30および周辺回路38が設けられている。制御回路28は、パワースイッチ30および周辺回路38を制御する。周辺回路38は、WLデコーダ31、選択回路32b、プリチャージ/選択回路33a、読出書込回路34、SRデコーダ35および列デコーダ36を備えている。
【0179】
リード動作およびライト動作において、選択回路32bは制御線CTRL11およびCTRL21からCTRL1nおよびCTRL2nにそれぞれビット線BL1およびBLB1からBLnおよびBlBnを接続する。WLデコーダ31は行アドレスに基づきワード線WLを選択する。読出書込回路34は列アドレスに基づきビット線BL1およびBLB1からBLnおよびBLBnから選択する列に対応するビット線BLおよびBLBを選択する。プリチャージ/選択回路33aはビット線BLおよびBLBをプリチャージする。読出書込回路34は、選択されたメモリセル10の双安定回路12にデータを書き込みまたは双安定回路12からデータを読み出しバス25に出力する。
【0180】
ストア動作およびリストア動作において、選択回路32bは制御線CTRL11およびCTRL21からCTRL1nおよびCTRL2nに電源線15aを接続する。ストア動作において、SRデコーダ35は行アドレスに基づきスイッチ線SRを選択する。列デコーダ36は列アドレスに基づき制御線CTRL0を選択する。WLデコーダ31および列デコーダ36に選択されたメモリセル10において双安定回路12のデータが強磁性トンネル接合素子MTJ1およびMTJ2に不揮発的にストアされる。
【0181】
[動作の説明]
図27(a)から図29は、実施例2におけるメモリセルの動作を示す図である。Hはハイレベル、Lはローレベルを示し、括弧内は電圧の例を示す。
【0182】
図27(a)に示すように、双安定回路12において、記憶ノードQ1およびQ2の電圧がそれぞれH(例えば1.2V)およびL(例えば0V)に設定されている場合について説明する。双安定回路12のデータを読み出すリード動作のとき、制御回路28は選択回路32bに制御線CTRL1およびCTRL2をビット線BLおよびBLBとして機能させる。例えば制御回路28は図23のFETM10~M12をオフさせ、トランスファーゲートM13およびM14をオンさせる。制御回路28は、ワード線WLをL(例えば0V)とし、FETM5およびM6をオフさせ(例えばスイッチ線SRをL(例えば0V)とする)、制御線CTRL0をL(例えば0V)に設定する。読出書込回路34は制御線CTRL1およびCTRL2をH(例えば1.2V)とし、双安定回路のデータを読み出す。
【0183】
図27(b)に示すように、双安定回路12にデータを書き込むライト動作について、記憶ノードQ1の電圧をHからLに書き換え、記憶ノードQ2の電圧をLからHに書き換える場合を例に説明する。制御回路28は選択回路32bに制御線CTRL1およびCTRL2をビット線BLおよびBLBとして機能させる。制御回路28は、ワード線WLをLとし、FETM5およびM6をオフさせ、制御線CTRL0をLとする。読出書込回路34はビット線BLおよびBLBをそれぞれL(例えば0V)およびH(例えば1.2V)に設定する。これにより、記憶ノードQ1およびQ2にそれぞれLおよびHが書き込まれる。
【0184】
図27(c)に示すように、双安定回路12が揮発的にデータを保持するホールド状態のとき、制御回路28はパワースイッチ30および選択回路32bに制御線CTRL1およびCTRL2にHとして電圧VDDH(例えば1.2V)を印加させる。例えば制御回路28は図23のFETM10~M12をオンさせ、トランスファーゲートM13およびM14をオフさせ、FETPS1をオン、PS2をオフさせる。制御回路28は、ワード線WLをH(例えば1.2V)とし、FETM5およびM6をオフさせ、制御線CTRL0をLとする。これにより、記憶ノードQ1およびQ2はそれぞれHおよびLに維持される。以上のように、リード動作、ライト動作およびホールド状態では、FETM5およびM6がオフするため、MTJ1およびMTJ2の影響は双安定回路12に及ばない。
【0185】
双安定回路12のデータをMTJ1およびMTJ2に不揮発的にストアする動作について説明する。ストア動作では、MTJ1およびMTJ2の一方を高抵抗に設定するH-ストア動作(第1ストア動作)とMTJ1およびMTJ2の他方を低抵抗に設定するL-ストア動作(第2ストア動作)とを行う。H-ストア動作とL-ストア動作のいずれを先に実行してもよい。H-ストア動作とL-ストア動作との間をホールド状態としてもよい。
【0186】
図28(a)に示すように、記憶ノードQ1およびQ2がそれぞれHおよびLの場合を例に説明する。H-ストア動作のとき、制御回路28はパワースイッチ30および選択回路32bに制御線CTRL1およびCTRL2にHとして電圧VDDHを印加させる。制御回路28は、ワード線WLをLとし、FETM5およびM6をオン(例えば電圧VSRを0.7Vとする)させ、制御線CTRL0をLとする。これにより、記憶ノードQ1からMTJ1を介し制御線CTRL0に電流Im1が流れる。よって、MTJ1は反平行状態となり高抵抗となる。
【0187】
図28(b)に示すように、L-ストア動作のとき、制御回路28はパワースイッチ30および選択回路32bに制御線CTRL1およびCTRL2にHとして電圧VDDHを印加させる。制御回路28は、ワード線WLをH´(例えば0.8V)とし、FETM5およびM6をオン(例えば電圧VSRを0.7Vとする)させ、制御線CTRL0をVc(例えば0.5V)とする。これにより、制御線CTRL0から記憶ノードQ2へMTJ2を介し電流Im2が流れる。よって、MTJ2は平行状態となり低抵抗となる。
【0188】
図28(a)および図28(b)のように、FETM1およびM2がN型チャネルとき、H-ストア動作(第1ストア動作)のワード線WLの電圧VWL(第1電圧)は、L-ストア動作(第2ストア動作)の電圧VWL(第4電圧)より低く、H-ストア動作の制御線CTRL0の電圧Vc(第3電圧)は、L-ストア動作の電圧Vc(第6電圧)より低い。H-ストア動作およびL-ストア動作における制御線CTRL1およびCTRL2の電圧(第2電圧および第5電圧)はグランド線15bの電圧VGNDより高い。これにより、双安定回路12のデータをMTJ1およびMTJ2にストアできる。なお、図24のように、FETM1aおよびM2aがP型チャネルのとき、第1電圧は、第4電圧より高く、第3電圧は、第6電圧より高い。第2電圧および第5電圧は電源線15aの電圧VDDより低い。
【0189】
図28(c)に示すように、ストア動作の後に電源をシャットダウンする(電圧VVDD-VGNDを0Vとする)シャットダウン状態とする。シャットダウン状態のとき、制御回路28はパワースイッチ30および選択回路32bに制御線CTRL1およびCTRL2にLとして電圧VGND(例えば0V)を印加させる。制御回路28は、ワード線WLをLとし、FETM5およびM6をオフさせ、制御線CTRL0をLとする。このように、制御回路28はメモリセル10の電源をシャットダウンとする。シャットダウン状態では、MTJ1およびMTJ2はそれぞれ高抵抗および低抵抗に維持される。なお、制御回路28および周辺回路38の電源はシャットダウンしてもよいししなくてもよい。
【0190】
図29に示すように、MTJ1およびMTJ2がそれぞれ高抵抗および低抵抗の場合を例に説明する。MTJ1およびMTJ2のデータを双安定回路12にリストアするリストア動作のとき、制御回路28はパワースイッチ30および選択回路32bに制御線CTRL1およびCTRL2をLからH´(例えば1.0V)に立ち上げる。制御回路28は、ワード線WLをL´(例えば0.1V)とし、FETM5およびM6をオンさせ(例えば電圧VSRを0.7Vとする)、制御線CTRL0をLとする。制御線CTRL1からFETM3およびM5を介しMTJ1に電流Im3が流れる。同様に、制御線CTRL2からFETM4およびM6を介しMTJ2に電流Im4が流れる。MTJ1およびMTJ2はそれぞれ高抵抗および低抵抗なため、電流Im4はIm3より大きい。これにより、記憶ノードQ2の電圧は記憶ノードQ1の電圧より速く低くなる。よって、記憶ノードQ1およびQ2はそれぞれHおよびLに安定する。以上によりリストア動作が完了する。リストア動作の後はホールド状態とすることで、双安定回路12は揮発的にデータを保持する。また、リード動作およびライト動作を行う。
【0191】
図27(a)および図27(b)のように、制御回路28は、双安定回路12にデータを揮発的にライトするライト動作並びに双安定回路12からリードするリード動作のときFETM5およびM6をオフする。図28(a)、図28(b)および図29のように、双安定回路12からMTJ1およびMTJ2にデータを不揮発的にストアするストア動作のとき並びにMTJ1およびMTJ2から双安定回路12にデータをリストアするリストア動作のときFETM5およびM6をオンする。これにより、ライト動作およびリード動作のとき、MTJ1およびMTJ2が双安定回路12に影響することを抑制できる。
【0192】
[シミュレーション3]
実施例2における適切なチャネル幅および電圧をシミュレーションした。シミュレーション3では、以下のステップS1~S5を行い、各チャネル幅および電圧を決定した。まず、比較例3(6T-SRAM)の類推により、以下のように各FETのチャネル幅を設定した。各FETのチャネル長は60nmである。
【0193】
FETM1、M2:WDRV=150nm
FETM3,M4:WLP=100nm
FETM5、M6:WSR=100nm
【0194】
[ステップS1]
ステップS1では、実施例2の双安定回路12の4Tセル(FETM1~M4)のホールド状態におけるSNMからFETM3およびM4のチャネル幅WLPを決定した。図30は、シミュレーション3におけるホールド状態のWLPに対するSNMおよびスタンバイパワーを示す図である。FETM1およびM2のチャネル幅WDRVは150nm、ワード線WLの電圧VWLは1.2V、制御線CTRL1およびCTRL2の電圧VDDHは1.2Vである。SNMは、TT、SS、SF、FSおよびFFについて図示した。スタンバイパワーは、実施例2(4Tセル)のシミュレーション結果を実線、比較例3(6Tセル)のシミュレーション結果を破線とした。
【0195】
図30に示すように、WLPが大きくなるとSNMは大きくなるがスタンバイパワーも大きくなる。WLPが105nm以上で全てのSNMが80mV以上となる。WLPが110nm以上となるとスタンバイパワーが比較例3を上回る。これらのことからWLPを105nmに決定した。
【0196】
[ステップS2]
ステップS2では、4Tセルのリード動作およびホールド状態のSNMからリード動作、ライト動作およびホールド状態のワード線WLの電圧VWLを決定した。図31は、シミュレーション3におけるリード動作およびホールド状態のVWLに対するSNMを示す図である。FETM1およびM2のチャネル幅WDRVは150nm、FETM3およびM4のチャネル幅WLPは105nm、制御線CTRL1およびCTRL2の電圧VDDHは1.2Vである。SNMは、TT、SS、SF、FSおよびFFについて図示した。VWLが0V付近は、FETM3およびM4をオンするリード動作およびライト動作に対応し、VWLが1.2V付近はFETM3およびM4をオフするホールド状態に対応する。
【0197】
図31に示すように、SNMはVWLに依存する。VWLが0Vから高くなるとSNMは大きくなり、VWLが1.2Vから低くなるとSNMは大きくなる。VWLが0.7V~0.8VにおいてSNMは最も大きくなる。VWL=0Vおよび1.2VにおいてSNMは80mV以上であるため、リード動作およびライト動作のVWLを0Vに決定し、ホールド状態のVWLを1.2Vに決定した。
【0198】
[ステップS3]
ステップS3では、H-ストア動作における電流Im1(図28(a)参照)を設計した。電流Im1はMTJ1およびMTJ2が平行状態から反平行状態に切り替わる閾値電流Icの1.2倍を目標とした。ストア動作では、双安定回路12のデータを保持するため制御線CTRL1およびCTRL2はH(1.2V)である。Hの記憶ノードQ1からMTJ1に電流Im1を流すため、制御線CTRL0の電圧Vcを0Vとする。FETM5およびM6をオンする。記憶ノードQ1がLにならないように、FETM3をオンさせる。このため、ワード線WLの電圧VWLを0Vとする。
【0199】
図32(a)および図32(b)は、シミュレーション3におけるH-ストア動作の電圧VSRに対するそれぞれ電流Im1およびSNMを示す図である。図32(a)に示すように、電圧VSRが高くなると電流Im1が大きくなる。電圧VSRが0.7V以上で電流Im1は1.2Ic以上となる。図32(b)に示すように、電圧VSRが高くなると、SNMは小さくなる。電圧VSRが0.95V以上となるとSNMが80mVを下回る。SNMが80mV以上かつ電流Im1が1.2Ic付近となるように、電圧VSRを0.7Vに決定した。
【0200】
[ステップS4]
ステップS4では、L-ストア動作における電流Im2(図28(b)参照)を設計した。電流Im2はMTJ1およびMTJ2が反平行状態から平行状態に切り替わる閾値電流Icの1.2倍以上を目標とした。双安定回路12のデータを保持するため制御線CTRL1およびCTRL2はH(1.2V)である。制御線CTRL0からLの記憶ノードQ2にMTJ2を介し電流Im2を流すため、制御線CTRL0の電圧VcをLより高くする。FETM5およびM6をオンするため電圧VSRはH-ストア動作と同じ0.7Vとする。ワード線WLの電圧VWLと制御線CTRL0の電圧Vcを変化させた。
【0201】
図33(a)および図33(b)は、シミュレーション3におけるL-ストア動作の電圧Vcに対するそれぞれ電流Im2およびSNMを示す図である。SFが最も小さいため、SFをSNMとして示している。図33(a)に示すように、制御線CTRL0の電圧Vcが大きくなると電流Im2が大きくなり、ワード線WLの電圧VWLが大きくなると電流Im2が大きくなる。電圧VWLが低くなると電流Im2が小さくなるのは、電圧VWLが0V付近ではFETM4が完全にオンし、記憶ノードQ2の電圧が高くなってしまうためである。
【0202】
図33(b)に示すように、電圧VWLを0Vから高くするとSNMは大きくなるがVWLが0.4V以上となるとSNMは小さくなる。VWLが0.9Vでは、SNMは80mVより小さくなる。電圧VWLが高くなるとFETM4がオフし、データを維持できないためである。電圧VWLを0.5V~0.8Vとすると、電圧Vcを適切に選択することで電流Im2=1.2IcとSNMが100mV以上を達成できる。電圧VWLを0.8Vに、電圧Vcを0.5Vに決定した。このように、L-ストア動作の電圧VWLをH-ストア動作の電圧VWLより高くすることで、L-ストア動作におけるSNMの低下を抑制できる。
【0203】
また、L-ストア動作のときの電圧VWLはFETM3およびM4が少しオンする程度が好ましい。よって、FETM1およびM2がN型チャネルのとき、L-ストア動作における電圧VWLは制御線CTRL1およびCTRL2の電圧より低いことが好ましい。また、FETM1aおよびM2aがP型チャネルのとき、第2ストア動作における電圧VWLは制御線CTRL1およびCTRL2の電圧より高いことが好ましい。これにより、SNMを大きくできる。第2ストア動作のときの電圧VWLは、VGND+1/4(VDD-VGND)以上かつVDD-1/4(VDD-VGND)以下が好ましい。
【0204】
[ステップS5]
ステップS5では、リストア動作におけるスイッチ線SRの電圧VSRおよびワード線WLの電圧VWLを決定した。リストア動作では、制御線CTRL0の電圧Vcを0Vとし、制御線CTRL1およびCTRL2の電圧を上昇させる。制御線CTRL1およびCTRL2の電圧を電圧VDDH(1.2V)まで上昇させなくても双安定回路12にデータは復帰される。そこで、リストア動作では、制御線CTRL1およびCTRL2の電圧を1.0Vまで引き上げたところで終了する。リストア動作後に、例えばホールド状態とするときに制御線CTRL1およびCTRL2の電圧をVDDH(1.2V)まで上昇させる。これにより、制御線CTRL1およびCTRL2の電圧が1.0V以上において電圧VSRを0Vに、電圧VWLを1.0V以上にできるため消費電力を削減できる。
【0205】
図34(a)および図34(b)は、シミュレーション3におけるリストア動作のそれぞれFFおよびFSの電圧VSRに対するSNMを示す図である。制御線CTRL1およびCTRL2の電圧が1.0VのときのSNMである。図34(a)および図34(b)に示すように、FETM3およびM4がオフした状態(例えばVWL=0.8V)で、スイッチ線SRの電圧VSRを高くするとHの記憶ノードQ1の電圧が低下し、SNMが小さくなる。ワード線WLの電圧VWLを低くしFETM3およびM4をオンさせることで、Hの記憶ノードQ1に制御線CTRL1から電流が流れ、記憶ノードQ1のHを維持でき、SNMが大きくなる。電圧VWLを低くしすぎるとLの記憶ノードQ2の電圧が高くなりSNMが低下する。これらを考慮し、電圧VSRをストア動作と同じ0.7Vに決定し、電圧VWLを0.1Vに決定した。
【0206】
リストア動作を実行するとき、ワード線WLの電圧VWLは、ライト動作のときの記憶ノードQ1およびQ2のうち低い方の電圧VDD(例えば0V)より高く、記憶ノードQ1およびQ2のうち高い方の電圧VGND(例えば1.2V)より低い。これにより、図34(a)および図34(b)のように、SNMを大きくできる。リストア動作のときの電圧VWLは、FETM1およびM2がN型チャネルとき、VGND+1/4(VDD-VGND)より低いことが好ましく、FETM1aおよびM2aがP型チャネルとき、VDD-1/4(VDD-VGND)より高いことが好ましい。
【0207】
表5は、以上のステップS1~S5に基づき決定した、各FETのチャネル幅、各電圧を示す。
【0208】
【表5】
【0209】
表5において、リード動作、ライト動作、H-ストア動作およびL-ストア動作におけるワード線WLの電圧VWLは、アクセスするメモリセル10における電圧VWLである。アクセスしないメモリセル10の電圧VWLはFETM3およびM4がオフする1.2V(ハイレベル)である。
【0210】
表5では、ホールド状態、リード動作およびライト動作のときに、スイッチ線SRの電圧VSRとしてLより低い-0.2Vを印加している。これは、FETM5およびM6のリーク電流を抑制するためである。電圧VSRはFETM5およびM6がオフする電圧であればよい。ホールド状態、リード動作およびライト動作のときのFETM5およびM6のリーク電流を抑制するためには、制御線CTRL0の電圧VcをLより高くしてもよい。例えば電圧Vcを0.05Vとしてもよい。電圧VSRをLより低くし、かつ電圧VcをLより高くしてもよい。
【0211】
H-ストア動作、L-ストア動作およびリストア動作における電圧VSRは、FETM5およびM6がオンする程度であればよい。ホールド状態におけるワード線WLの電圧VWLはFETM3およびM4がオフする程度の電圧であればよく、リード動作、ライト動作、H-ストア動作およびリストア動作の電圧VWLはFETM3およびM4がオンする程度であればよい。チャネル幅および各電圧は表5の例に限らず適宜設定できる。
【0212】
表5の数値を用い、各状態および動作におけるSNMをシミュレーションした。図35(a)は、実施例2におけるSNMを示す図である。図35(a)に示すように、ホールド状態のFSのSNMが最も小さい。全ての状態および動作の全てのコーナにおいてSNMは80mV以上である。TTでは、全ての状態および動作においてSNMは100mV以上である。
【0213】
実施例2におけるスタンバイパワーをシミュレーションし、図15において説明した比較例3(6Tセル)と比較した。図35(b)は、実施例2および比較例3のスタンバイパワーを示す図である。
【0214】
図35(b)に示すように、比較例3では、VVDD=1.2Vとする通常動作に対するVVDD=0.8Vとするスリープ状態の削減率は44%である。比較例3のVVDD=1.2Vに対する実施例2のVVDD=1.2Vのときのスタンバイパワーの削減率は11%である。さらに、実施例2におけるVVDD=1.2Vに対するシャットダウン状態のスタンバイパワーの削減率は99.99%である。
【0215】
以上のように、実施例2では、FETM1およびM2を第1導電型のチャネルのFETとし、FETM3およびM4を第1導電型と反対の第2導電型のチャネルのFETとし、FETM3およびM4をパストランジスタおよびロードとして用いる。これにより、スタンバイパワーを低くできかつトランジスタの個数を6個にできるため小型化ができる。
【0216】
[実施例2の変形例1]
図36は、実施例2の変形例1に係るメモリセルの回路図である。図36に示すように、実施例2の変形例1では、実施例1の図6の記憶ノードQ1と制御線CTRL0との間にFETM5およびMTJ1が接続され、記憶ノードQ2と制御線CTRL0との間にFETM6およびMTJ2が接続されている。このように、双安定回路12を実施例1およびその変形例の双安定回路としてもよい。図7Bおよび図23と同様に、制御線CTRL1およびCTRL2の端にプリチャージ/選択回路33aが接続し、制御線CTRL1およびCTRL2の他の端に選択回路32bが接続されていてもよい。
【0217】
メモリセル10へのアクセス間隔が短い場合には、データを双安定回路12にULVリテンションし、アクセス間隔が長い場合にはデータをMTJ1およびMTJ2にストアし、シャットダウンする。これにより、消費電力をより削減できる。
【実施例0218】
実施例3は、BinaryNETまたはXNOR-NETなどの2値化ニューラルネットワーク(BNN:Binary Neural Network)への応用例である。BNNは、推論精度をあまり劣化させずに、省電力および少ないメモリで実現可能でありエッジコンピューティングへの応用が期待されている。エッジコンピューティングでは、常に学習や推論をしていることはないが、BNN装置に記憶された重みなどのデータをメモリに保持しておく必要がある。したがって、メモリの待機時電力の削減が課題になる。ULVR-SRAMまたはNV-SRAMをBNN装置(BNNアクセラレータ)のメモリ部分に用いることで、メモリの待機時電力の削減が可能になる。
【0219】
図37は、実施例3におけるBNNモデルを示す図である。以下では、Batch Normalization Free Technique(Y. Yonekawa and H. Nakahara, "On-chip Memory Based Binarized Convolutional Deep Neural Network Applying Batch Normalization Free Technique on an FPGA", 2017 IEEE International Parallel and Distributed Processing Symposium Workshops, pp. 98-105,2017)を用いたBNNモデルについて示す。
【0220】
図37に示すように、X層、Y層およびZ層の3層を例に説明する。層の数は4層以上でもよい。X層はノードx1~xnを有し、Y層はノードy1~ynを有し、Z層はノードz1~znを有する。ノードx1~xn、y1~ynおよびz1~znは各々1ビットである。X層の各ノードx1~xnの出力はそれぞれ1ビットの重みw1i~wni(iは1~nの整数)が積算されノードyiに入力する。さらに、ノードyiにはノードlから整数バイアスW0iが入力する。これらの総和に対して評価関数を通すことでノードyiの出力を得る。すべてのi(1からnまでの整数)について上記演算を行うことで、すべてのノードyiのデータが求まる。Y層のノードyjの出力には1ビットの重みw´j1~w´jn(jは1~nの整数)が積算され各ノードzk(kは1からnの整数)に入力する。ノードzjにはノードlから整数バイアスW´j0が入力する。すべてのj(1からnのまでの整数)について上記演算を行い、各ノードzjではそれぞれの入力を加算していく。この演算終了後、これらの総和に対して評価関数を通すことで各ノードzk(k=1~n)の出力を得る。重み行列w11~wnnおよびw´11~w´nnの各データは1ビットであり、整数バイアス列W01~W0nおよびW´10~W´n0の各データは整数(多ビット)である。Z層以降に層が存在する場合も同様である。
【0221】
実施例3では、X層からY層を算出する演算は、ノードx1~xnからノードy1への実線に相当する演算を行い、次にノードx1~xnからノードy2への破線に相当する演算を行い、次にノードx1~xnからノードy3への点線に相当する演算を行う。その後順次ノードy4~ynへの演算を行う。これをn-to-1コネクションという。Y層からZ層を算出する演算は、ノードy1からノードz1~znへの実線の演算を行い、次にノードy2からノードz1~znへの破線の演算を行い、次にノードy3からノードz1~znへの点線の演算を行う。これを1-to-nコネクションという。1-to-nコネクションの実線および破線の演算はそれぞれn-to-1コネクションの破線および点線の演算と並列に行うことができる。
【0222】
図38は、実施例3におけるn-to-1コネクションの演算を行う演算回路のブロック図である。図38に示すように、演算回路50は、メモリ51および処理部52を備えている。処理部52は、XNOR回路53、カウンタ54、加算器55、評価部56および出力部57を備えている。入力部48はnビットのラッチ回路であり、ノードx1~xnのデータを保持する。XNOR回路53は、入力部48からノードx1~xnのデータを取得し、メモリ51から重み列w1i~wniを取得し、ノードx1~xnのデータと重み列w1i~wniとをXNOR演算する。カウンタ54は、XNOR回路53の出力をビットカウントし総和を演算する。すなわち、n個のXNOR回路53の出力のビットが1の個数を演算する。加算器55は、メモリ51から整数バイアスW0iを取得し、カウンタ54の出力に加算する。評価部56は、加算器55の出力を評価関数fと比較することで1ビットの結果を出力部57にノードyiのデータとして出力する。出力部57は1ビットのラッチ回路であり、ノードyiのデータを保持する。
【0223】
図39(a)は、実施例3における1-to-nコネクションの演算を行う演算回路のブロック図である。図39(a)に示すように、演算回路60は、メモリ61および処理部62を備えている。処理部62は、XNOR回路63、蓄積器64、加算器65、評価部66および出力部67を備えている。XNOR回路63は、出力部57からノードyiのデータを取得し、メモリ61から重み列w´i1~w´inを取得し、ノードyiのデータと重み列w´i1~w´inとをXNOR演算する。
【0224】
図39(b)は、蓄積器のブロック図である。図39(b)に示すように、蓄積器64は加算器64cおよびラッチ回路64dを備えている。加算器64cはラッチ回路64dの出力とXNOR回路63の出力を加算する。ラッチ回路64dは加算器64cの出力を保持する。ラッチ回路64dは、あらかじめリセットしておき、iが1からnまで変化したときに各iにおけるXNOR回路63の出力を順次加え合わせる。そして、i=nのとき演算結果の数値を加算器65に出力する。このように、蓄積器64はn個のXNOR回路63の出力それぞれについて、i=1~nの出力を蓄積する。
【0225】
図39(a)に戻り、加算器65は、メモリ61から整数バイアス列W´10~W´n0を取得し、蓄積器64の出力列に加算する。評価部66は、加算器65の出力列を評価関数fと比較することで各々1ビットの結果を出力部67にノードz1~znのデータとして出力する。出力部67はnビットのラッチ回路であり、ノードz1~znのデータを保持する。
【0226】
図40は、実施例3におけるBNN装置のブロック図である。図40に示すように、メモリ51(第1メモリ)および61(第2メモリ)は行列状である。メモリ51は、整数バイアス列W01~W0nと重み行列w11~wnnを格納する。重みw11~wnnは各々メモリセル10(第1メモリセル)に格納される。メモリ51では、1つのノードyiに対応する複数の重みw1i~wniは同じ行に格納され、異なるノードyiに対応する複数の重み(例えばw11~wn1とw12~wn2)は異なる行に格納される。同じ行の複数のメモリセル10は列方向に延伸する複数のビット線BL(第1ビット線)にそれぞれ接続されている。各整数バイアス(W01~W0n)は、多ビットであり、メモリセル10に格納される。
【0227】
メモリ61は、整数バイアス列W´10~W´n0と重み行列w´11~w´nnを格納する。重みw´11~w´nnは各々メモリセル10´(第2メモリセル)に格納される。メモリ61では、1つの第2ノードyiに対応する複数の重みw´i1~w´inは同じ行に、異なる第2ノードyiに対応する複数の重み(例えばw´11~w´1nとw´21~w´2n)は異なる行に格納される。同じ行の複数のメモリセル10´は列方向に延伸する複数の第2ビット線BL´にそれぞれ接続されている。各整数バイアス(W´10~W´n0)は、多ビットであり、メモリセル10´に格納される。
【0228】
メモリ51および61に上記のように重み行列を格納することで、処理部52は、ノードyiの処理を行うとき、メモリ51から複数のビット線BLを介し複数の第1重みw1i~wniを取得できる。また、処理部62は、ノードyiの処理を行うとき、メモリ61から第2ビット線BL´を介し複数の重みw´i1~w´inを取得することができる。これにより、処理部52および62において効率的に処理を行うことができる。メモリセル10および10´は6T-SRAMセルでもよいが、実施例1、2およびその変形例のメモリセル10でもよい。処理部52および62の少なくとも一部は専用回路として実現されていてもよい。処理部52および62の少なくとも一部はプロセッサがソフトウエアと協働し実現されてもよい。この場合、処理部52および62の少なくとも一部がプロセッサとなる。
【0229】
演算回路50では、XNOR回路53は重み行列w11~wnnの列に対応し設けられ、入力部48のノードx1~xnの出力データと重み列w1i~wniをXNOR演算する。カウンタ54がXNOR回路53の出力ビットをカウントする。加算器55、評価部56および出力部57は図38の説明と同じである。
【0230】
演算回路60では、XNOR回路63から出力部67までは重み行列w´11~w´nnの列に対応し設けられている。XNOR回路63は、出力部57のノードyiの出力データと重み列w´i1~w´inをXNOR演算する。蓄積器64から出力部67までは列ごとに行う。その他の動作は図39(a)の説明と同じである。層が4層以上の場合、出力部67のノードz1~znは次の層のn-to-1コネクション処理の入力データ列となる。
【0231】
図41は、実施例3において処理部52が行うn-to-1コネクションの処理を示すフローチャートである。図41に示すように、処理部52は、iを1に設定する(ステップS10)。処理部52は、メモリ51から重み列w1i~wniを取得する(ステップS12)。処理部52は、ノードx1~xnのデータと重み列w1i~wniとのXNORを算出する(ステップS14)。処理部52は、各XNORの算出結果をビットカウントし総和を演算する(ステップS16)。処理部52は、メモリ51から重みW0iを取得し、ステップS16の総和に加算する(ステップS18)。処理部52は、ステップS18の結果と評価関数fとの比較を行うことで1ビットのノードyiのデータを算出し保持する(ステップS20)。処理部52はi=nか判定する(ステップS22)。Noの場合、処理部52はi=i+1としステップS12に進む(ステップS24)。Yesの場合、n-to-1コネクション処理を終了する。処理部52は、各回路の動作を制御する制御回路を備え、制御回路がステップS10~S24を実行してもよい。
【0232】
図42は、実施例3において処理部62が行う1-to-nコネクションの処理を示すフローチャートである。図42に示すように、処理部62は、iを1に設定する(ステップS30)。処理部62は、メモリ61から重み列w´i1~w´inを取得する(ステップS32)。処理部62は、図41のステップS20からノードyiのデータを取得し、ノードyiのデータと重み列w´i1~w´inとのXNORを算出する(ステップS34)。処理部62は、n個のXNORの算出結果を各々蓄積する(ステップS36)。処理部62はi=nか判定する(ステップS38)。Noの場合、処理部62はi=i+1とし、ステップS32に戻る(ステップS40)。ステップS38においてYesのとき、処理部62は、メモリ61から重みW´10~W´n0を取得し、ステップS36のn個の結果に各々加算する(ステップS42)。処理部62は、ステップS42のn個の結果と評価関数fとの比較を各々行うことで各々1ビットのノードz1~znのデータを算出し保持する(ステップS44)。その後、1-to-nコネクション処理を終了する。ノードz1~znのデータは次の層のn-to-1コネクションをするときの入力データ列となる。処理部62は、各回路の動作を制御する制御回路を備え、制御回路がステップS30~S44を実行してもよい。
【0233】
図43は、実施例3の処理動作を時間軸に沿って示す説明図である。図43において実施例3の処理動作を、後述するケース1、ケース2の処理動作と比較できるように図示している。処理71~74は、層間の演算を示している。例えば処理71は図37のX層の各ノードx1~xnからY層の各ノードy1~ynを演算する処理であり、処理72はY層の各ノードy1~ynからZ層の各ノードz1~znを演算する処理である。処理73はZ層の各ノードz1~znから後段の層の各ノードを演算する処理である。処理74は、さらに後段の処理である。処理70は、1個のノードに対応する処理を示す。n-to-1コネクション処理では、n個のノードx1~xnから1個のノードyiを算出する処理が処理70に対応する。1-to-nコネクション処理では、1個のノードyiからn個のノードz1~znを算出する処理が処理70に対応する。処理71~74は、各々n個の処理70をシーケンシャルに実行する。
【0234】
ケース1では、処理71~74は全てn-to-1コネクション処理、または全て1-to-nコネクション処理である。この場合、処理71~74を並列処理することができない。ケース2では、処理71および73は1-to-nコネクション処理であり、処理72および74はn-to-1コネクション処理である。この場合、処理71と72を並列処理することができない。処理72と処理73とは並列処理できる。
【0235】
実施例3では、処理71および73はn-to-1コネクション処理であり、処理72および74は1-to-nコネクション処理である。この場合、処理71のi+1個目の処理70と処理72のi個目の処理を並列に処理できる。よって、処理70と処理71とはn+1個の処理70の時間で処理できる。処理72の終了後、処理73を開始する。処理73のi+1個目の処理70と処理74のi個目の処理を並列に処理できる。
【0236】
以上のように、ケース2では、ケース1より処理時間を短縮できるが、実施例3はケース2よりさらに処理時間を短縮できる。
【0237】
実施例3のメモリ51および61に実施例1の図7Aのメモリアレイ22または実施例2の図26のメモリアレイ22を用いることができる。これにより、消費電力を抑制できる。
【0238】
図44は、実施例3におけるメモリの例を示すブロック図である。図44に示すように、メモリ51および61の行毎にパワースイッチPS1~PSnを設ける。さらにパワースイッチPS1~PSnをそれぞれ別の状態に独立して制御するパワースイッチ制御回路58を設ける。これにより、行毎に仮想電源電圧VVDD1~VVDDnを設定できる。n-to-1コネクション処理および1-to-nコネクション処理のときに、パワースイッチ制御回路58は、処理を行うデータが格納された行は、データを読み出し可能な状態となるように第1電源電圧を供給する。パワースイッチ制御回路58は、それ以外の行を、実施例1のメモリアレイをメモリ51および61に用いる場合ではULVリテンション状態とし、実施例2のメモリアレイを用いる場合ではシャットダウン状態とする。
【0239】
例えば、図41において処理部52がi番目の処理を行うとき、または、図42において処理部62がi番目の処理を行うとき、パワースイッチ制御回路58は、メモリ51または61のi番目の行に供給する仮想電源電圧VVDDiをメモリセル10または10´からデータを読み出し可能な第1電源電圧にし、i番目の行以外の行に供給する仮想電源電圧VVDDを第1電源電圧より低く、メモリセル10または10´がデータを保持可能な第2電源電圧とするまたは電源電圧をシャットダウンする。実施例1のメモリアレイをメモリ51または61に用いる場合第2電源電圧は、ULVリテンション状態となる電圧である。実施例2のメモリアレイをメモリ51または61に用いる場合電源電圧はシャットダウンされる。パワースイッチ制御回路58は、i番目の行以外の行の内少なくとも一部の行に第2電源電圧を供給するまたは電源電圧をシャットダウンすればよい。
【0240】
このパワースイッチ制御回路58の制御によって、メモリ51、61の消費電力を抑制できる。これにより、ニューラルネットワーク全体の消費電力を減らすことができる。パワースイッチPS1~PSnの制御は前述した制御に限らず、メモリ51、61のULVリテンション状態からデータを読み出せるようになるまでの復帰時間や、実施例2のメモリアレイではシャットダウン状態からデータを読み出せるようになるまでの復帰時間を考慮し、n-to-1コネクション処理および1-to-nコネクション処理を行う行の近傍の行もデータを読み出し可能な状態となるように電力を供給してもよい。各仮想電源電圧VVDD1~VVDDnは複数段階あってもよい。この場合、仮想電源電圧の数に相当するパワースイッチを設ける。図44では、各行ごとにパワースイッチを設けているが、複数の行毎にパワースイッチを設けてもよい。仮想電源方式を例に説明したが仮想接地方式でもよい。
【0241】
図44では、ニューラルネットワーク処理のn-to-1コネクション処理および1-to-nコネクション処理の両方において、前述のパワースイッチPS1~PSnの制御によって、電力消費を減らす例を説明した。本出願の第四の発明においては、n-to-1コネクション処理および1-to-nコネクション処理の少なくとも一方の処理において、前述のパワースイッチPS1~PSnの制御によって、電力消費を減らすようにしてもよい。また、n-to-1コネクション処理および1-to-nコネクション処理が多層に繰り返される、ディ-プラーニングによって学習された推論器を有する処理装置において、n-to-1コネクション処理および1-to-nコネクション処理の何れか一方の少なくとも一層分に、前述のパワースイッチPS1~PSnの制御を行うことによって、電力消費を減らすことができる。これらは全て本出願の第四の発明の実施の形態に含まれる。
【0242】
メモリ51および61におけるメモリセル10および10´に比較例3の6Tセルおよび実施例1のULVR-SRAMセルを用いた場合について、BNN装置の消費電力をシミュレーションした。メモリセル10および10´を6Tセルとした場合、電源電圧を通常状態の7割とするスリープ状態にすると、メモリの消費電力は50%~60%削減できた。メモリセル10および10´を実施例1のULVR-SRAMセルとすると、6Tセルの通常状態に比べメモリの消費電力を90%~95%削減できた。このように、メモリセル10および10´に、実施例1のULVR-SRAMセルまたは実施例2のNV-SRAMセルを用いることによりBNN装置の消費電力を削減できる。また、メモリセル10および10´に、特許文献1に記載のULVR-SRAMセルまたは特許文献2に記載のNV-SRAMセルを用いてもよい。これにより、待機時電力を削減できる。
【0243】
実施例3によれば、図41のステップS14のように、処理部52(第1処理部)は、X層(第1層)の複数の第1ノードx1~xnに対応する複数の第1データに複数の第1重みw1i~wniによる重み付けをそれぞれ行った後にステップS18のように加算することにより、ステップS16、S18およびS20のように、Y層(第2層)の複数の第2ノードy1~ynに対応する複数の第2データのうち1つの第2ノードyiのデータを算出する。処理部52は、この処理を複数の第2ノードy1~ynについて行うことで複数の第2データを算出する。図42のステップS32のように、処理部62(第2処理部)は、複数の第2ノードy1~ynのうち1つの第2ノードyiのデータに複数の第2重みw´i1~w´inによる重み付けをすることでZ層(第3層)の第3ノードz1~znに対応する複数の第3データの各々一部を算出する処理を複数の第2ノードy1~ynについて行う。ステップS36およびS44のように、処理部62は、複数の第3ノードz1~znの各々について、複数の第3ノードz1~znのデータの一部を複数の第2ノードy1~yn分加算することで複数の第3ノードz1~znのデータを算出する。そして、処理部52は、処理部62が行う複数の第2データのうち1つの第2ノードyiの処理と並列に、複数の第2データのうち別の第2ノードyi+1の処理を行う。これにより、図43のように、処理装置の処理時間を短縮できる。
【0244】
ノードx1~xn、y1~ynおよびz1~znのデータ、重みw11~wnnおよび重みw´11~w´nnは各々1ビットである。これにより、BNNを処理することができる。BNNでは、処理部52は、複数の第1ノードx1~xnのデータと複数の第1重みw1i~wniとをXNOR演算することにより重み付けを行い、処理部62は、第2ノードyiのデータと複数の第2重みw´i1~w´inとをXNOR演算することにより重み付けを行う。これにより、BNNにおいて重みづけをすることができる。
【0245】
[実施例3の変形例1]
図45は、実施例3の変形例1におけるBNN装置のブロック図である。図45に示すように、実施例3の変形例1では、処理部52においてXNOR回路53aおよび53b、カウンタ54aおよび54b、加算器55aおよび55b、評価部56aおよび56b並びに出力部57aおよび57bが各々メモリ51の複数行分設けられている。処理部52は、メモリ51の複数の行に対応する処理を並列に処理する。処理部62においてXNOR回路63aおよび63bが各々メモリ61の複数行分設けられている。処理部62は、メモリ61の複数の行に対応する処理を並列に処理する。
【0246】
図46は、実施例3の変形例1におけるメモリの例を示す図である。図46ではセンスアンプ44aおよび44b以外の周辺回路の図示を省略している。図46に示すように、メモリ51および61にはメモリセル10aおよび10bが行列状に配列されている。ビット線BL1およびBLB1とビット線BL2およびBLB2とが列方向に延伸している。同じ列のメモリセル10aおよび10bのうちメモリセル10aの記憶ノードQ1およびQ2(図1および図22等参照)はそれぞれビット線BL1およびBLB1に接続され、ビット線BL2およびBLB2には接続されていない。メモリセル10bの記憶ノードQ1およびQ2はそれぞれビット線BL2およびBLB2に接続され、ビット線BL1およびBLB1には接続されていない。
【0247】
1つの列に複数のセンスアンプ44aおよび44bが設けられている。ビット線BL1およびBLB1はセンスアンプ44aに接続され、ビット線BL2およびBLB2はセンスアンプ44bに接続されている。センスアンプ44aおよび44bはそれぞれワード線WLにより選択されたメモリセル10aおよび10bのデータを読み出す。センスアンプ44aおよび44bはそれぞれXNOR回路53a(または63a)およびXNOR回路53b(または63b)に読み出したデータを出力する。すなわち、処理部52および62は、並列処理する1つの処理を行うとき、メモリ51および61からBL1およびBLB1を介し重みを取得し、並列処理する別の1つの処理を行うとき、メモリ51および61からビット線BL2およびBLB2を介し重みを取得する。これにより、実施例3の変形例2において後述するマルチポートセルを用いることなく、メモリ51または61から複数の行の重み列を並列にXNOR回路53aおよび53b(または63aおよび63b)に出力できる。メモリセル10は、比較例3のような6Tセルでもよいし、実施例1、2およびその変形例のメモリセル10でもよい。
【0248】
[実施例3の変形例2]
実施例3の変形例2は、メモリ51および61にマルチポートセルを用いる例である。マルチポートセルとして、ライト用ポートが1個、リード用ポートが2個の2R1W型と、ライト用ポートおよびリード用ポートがともに2個の2RW型について説明する。
【0249】
図47は、実施例3の変形例2における2R1W型NV-SRAMメモリセルの例を示す回路図である。図47に示すように、ワード線としてWWL、RWL1およびRWL2が設けられている。WWLはライト用ワード線であり、RWL1およびRWL2は、リード用ワード線である。制御線CTRL1~CTRL3が設けられている。
【0250】
FETM3のゲートはWWLに接続され、ソースおよびドレインの一方は記憶ノードQ1に接続され、ソースおよびドレインの他方は制御線CTRL1に接続されている。FETM41のゲートはRWL1に接続され、ソースおよびドレインの一方は記憶ノードQ2に接続され、ソースおよびドレインの他方は制御線CTRL2に接続されている。FETM42のゲートはRWL2に接続され、ソースおよびドレインの一方は記憶ノードQ2に接続され、ソースおよびドレインの他方は制御線CTRL3に接続されている。その他の構成は実施例2と同じであり説明を省略する。
【0251】
表6は、各状態および動作における各線の電圧を示す表である。
【0252】
【表6】
【0253】
表6において、ライト動作、リード動作1およびリード動作2におけるワード線WWL、RWL1およびRWL2の電圧は、アクセスするメモリセル10における電圧である。アクセスしないメモリセル10のワード線WWL、RWL1およびRWL2の電圧は1.2Vである。
【0254】
表6に示すように、ホールド状態では、WWL、RWL1、RWL2およびCTRL1~CTRL3の電圧は1.2V(ハイレベル)であリ、FETM3、M41およびM42はオフである。ライト動作のとき、ライトするセル10のWWLの電圧を0V(ローレベル)とする。これにより、ライトするセルのFETM3がオンする。ワード線RWL1およびRWL2の電圧は1.2VでありFETM41およびM42はオフである。制御線CTRL1の電圧を1.2Vまたは0Vとすることで、記憶ノードQ1がHまたはLとなる。これにより、セル10にデータがライトされる。
【0255】
リード動作1のとき、リードするセル10のRWL1の電圧を0Vとする。これにより、リードするセル10のFETM41がオンする。RWL2の電圧は1.2Vであり、FETM42はオフである。WWLの電圧は0.7Vであり、FETM3を若干オンさせる。制御線CTRL2の電圧を1.2Vからフローティング(FL)とすることで、制御線CTRL2から記憶ノードQ2のデータをリードする。リード動作2のときの各電圧はリード動作1と同様である。その他の動作は実施例2と同じである。
【0256】
図48は、実施例3の変形例2における2R1W型ULVR-SRAMメモリセルの例を示す回路図である。図48に示すように、ワード線としてWWL、RWL1およびRWL2が設けられている。制御線CTRL1~CTRL3が設けられている。
【0257】
FETm4のゲートはWWLに接続され、ソースおよびドレインの一方は記憶ノードQ1に接続され、ソースおよびドレインの他方は制御線CTRL1に接続されている。FETm41のゲートはRWL1に接続され、ソースおよびドレインの一方は記憶ノードQ2に接続され、ソースおよびドレインの他方は制御線CTRL2に接続されている。FETm42のゲートはRWL2に接続され、ソースおよびドレインの一方は記憶ノードQ2に接続され、ソースおよびドレインの他方は制御線CTRL3に接続されている。その他の構成は実施例1と同じであり説明を省略する
【0258】
表7は、各状態および動作における各線の電圧を示す表である。
【0259】
【表7】
【0260】
表7に示すように、ホールド状態では、ワード線WWL、RWL1およびRWL2の電圧は1.1Vであり、CTRL1~CTRL3の電圧は、1.2Vであリ、FETm4、m41およびm42はオフである。ライト動作のとき、ライトするメモリセル10のWWLの電圧を0.3Vとする。これにより、ライトするメモリセル10のFETm3がオンする。ワード線RWL1およびRWL2の電圧は1.1VでありFETm41およびm42はオフである。制御線CTRL1の電圧を1.2Vまたは0Vとすることで、記憶ノードQ1がHまたはLとなる。これにより、メモリセル10にデータがライトされる。
【0261】
リード動作1のとき、リードするメモリセル10のRWL1の電圧を0.3Vとする。これにより、リードするメモリセル10のFETm41がオンする。RWL2の電圧は1.1Vであり、FETm42はオフである。WWLの電圧は0.6Vであり、FETm4を若干オンさせる。制御線CTRL2の電圧を1.2Vからフローティング(FL)とすることで、制御線CTRL2から記憶ノードQ2のデータをリードする。リード動作2はリード動作1と同様である。アクセスしないメモリセル10のワード線WWL、RWL1およびRWL2の電圧は1.1Vである。その他の動作は実施例1と同じである。
【0262】
2R1W型NV-SRAMセルおよび2R1W型ULVR-SRAMセルについて、リード動作1および2のときのワード線WWLの電圧VWWLに対するSNMをシミュレーションした。2R1W型NV-SRAMメモリセルでは、WLP=105nm、WDRV=150nm、ワード線RWL1およびRWL2の電圧VRWL=0Vとした。2R1W型ULVR-SRAMメモリセルでは、VVDD=1.2V、BIモード、WLP=110nm、WFB=230nmとした。
【0263】
図49(a)は、実施例3の変形例2のリード動作における2R1W型NV-SRAMメモリセルのVWWLに対するSNMを示す図、図49(b)は、リード動作における2R1W型ULVR-SRAMメモリセルのVWWLに対するSNMを示す図である。図49(a)および図49(b)に示すように、ワード線WWLの電圧VWWLが高くなるとSNMが小さくなる。リード動作では、ライト用のワード線WWLを選択せず、FETM3およびFETm4はオフとする。しかし、FETM3およびFETm4を完全にオフすると、SNMが小さくなる。そこで、リード動作1および2におけるライト用のワード線WWLの電圧VWWL(例えば0.6V)をライト動作における電圧VWWL(例えば0.3V)より高くする。さらに、リード動作1の電圧VWWL(例えば0.6V)をリード動作2用のワード線RWL1の電圧(例えば1.2V)より低くする。リード動作2のときも同様である。これにより、SNMを大きくできる。
【0264】
図50は、実施例3の変形例2における2RW型NV-SRAMメモリセルの例を示す回路図である。図50に示すように、ワード線としてWL1およびWL2が設けられている。制御線としてCTRL1、CTRL1´、CTRL2およびCTRL2´が設けられている。
【0265】
FETM31(第3FET)のゲートはWL1(第1ワード線)に接続され、ソースおよびドレインの一方は記憶ノードQ1(第1記憶ノード)に接続され、ソースおよびドレインの他方は制御線CTRL1(第1制御線)に接続されている。FETM32(第5FET)のゲートはWL2(第2ワード線)に接続され、ソースおよびドレインの一方は記憶ノードQ1に接続され、ソースおよびドレインの他方は制御線CTRL1´(第4制御線)に接続されている。FETM41(第4FET)のゲートはWL1に接続され、ソースおよびドレインの一方は記憶ノードQ2に接続され、ソースおよびドレインの他方は制御線CTRL2(第2制御線)に接続されている。FETM42(第6FET)のゲートはWL2に接続され、ソースおよびドレインの一方は記憶ノードQ2に接続され、ソースおよびドレインの他方は制御線CTRL2´(第5制御線)に接続されている。その他の構成は実施例2と同じであり説明を省略する。
【0266】
表8は、各状態および動作における各線の電圧を示す表である。
【0267】
【表8】
【0268】
表8に示すように、ホールド状態では、ワード線WL1、WL2、制御線CTRL1、CTRL1´、CTRL2およびCTRL2´の電圧は1.2V(ハイレベル)であリ、FETM31、M32、M41およびM42はオフである。ライト動作1およびリード動作1のとき、WL1、CTRL1およびCTRL2を用い、FETM31およびM41を介しデータのライトおよびリードを行う。WL2、CTRL1´およびCTRL2´を1.2Vとし、FETM32およびM42をオフさせる。ライト動作2およびリード動作2はライト動作1およびリード動作1と同様である。アクセスしないメモリセル10のワード線WL1およびWL2の電圧は1.2Vである。その他の動作は実施例2と同じである。
【0269】
図51は、実施例3の変形例2における2RW型ULVR-SRAMメモリセルの例を示す回路図である。図51に示すように、ワード線としてWL1およびWL2が設けられている。制御線としてCTRL1、CTRL1´、CTRL2およびCTRL2´が設けられている。
【0270】
FETm41(第3FET、第4FET)のゲートはWL1(第1ワード線)に接続され、ソースおよびドレインの一方は記憶ノードQ1およびQ2に接続され、ソースおよびドレインの他方は制御線CTRL1(第1制御線)およびCTRL2(第2制御線)に接続されている。FETm42(第5FET、第6FET)のゲートはWL2(第2ワード線)に接続され、ソースおよびドレインの一方は記憶ノードQ1およびQ2に接続され、ソースおよびドレインの他方は制御線CTRL1´(第3制御線)およびCTRL2´(第4制御線)に接続されている。その他の構成は実施例1と同じであり説明を省略する。
【0271】
表9は、各状態および動作における各線の電圧を示す表である。
【0272】
【表9】
【0273】
表9に示すように、ホールド状態では、WL1およびWL2の電圧は1.1Vであり、CTRL1、2、1´および2´の電圧は1.2Vであり、FETm41およびm42はオフである。ライト動作1およびリード動作1のとき、WL1、CTRL1およびCTRL2を用い、FETm41を介しデータのライトおよびリードを行う。WL2の電圧を1.1V、CTRL1´およびCTRL2´の電圧を1.2Vとし、FETm42をオフさせる。ライト動作2およびリード動作2はライト動作1およびリード動作1と同様である。アクセスしないメモリセル10のワード線WL1およびWL2の電圧は1.1Vである。その他の動作は実施例2と同じである。
【0274】
図52は、実施例3の変形例2における2R1W型メモリの例を示す図である。図52ではセンスアンプ44aおよび44b以外の周辺回路の図示を省略している。図52に示すように、メモリ51および61にはメモリセル10が行列状に配列されている。メモリセル10は、2R1W型NV-SRAMセルまたは2R1W型ULVR-SRAMセルである。制御線CTRL2はセンスアンプ44aに接続され、制御線CTRL3はセンスアンプ44bに接続されている。センスアンプ44aはワード線RWL1により選択されたメモリセル10のデータを読み出し、センスアンプ44bはワード線RWL2により選択されたメモリセル10のデータを読み出す。センスアンプ44aおよび44bはそれぞれXNOR回路53a(または63a)およびXNOR回路53b(または63b)に読み出したデータを出力する。これにより、メモリ51または61から複数の行の重み列を並列にXNOR回路53aおよび53b(または63aおよび63b)に出力できる。メモリセル10は、6Tセルでもよい。
【0275】
図53は、実施例3の変形例2における2RW型メモリの例を示す図である。図53ではセンスアンプ44aおよび44b以外の周辺回路の図示を省略している。図53に示すように、メモリセル10は、2RW型NV-SRAMセルまたは2RW型ULVR-SRAMセルである。制御線CTRL1およびCTRL2はセンスアンプ44aに接続され、制御線CTRL1´およびCTRL2´はセンスアンプ44bに接続されている。センスアンプ44aはワード線WL1により選択されたメモリセル10のデータを読み出し、センスアンプ44bはワード線WL2により選択されたメモリセル10のデータを読み出す。その他の構成は図52と同じである。センスアンプ44aおよび44bはそれぞれXNOR回路53a(または63a)およびXNOR回路53b(または63b)に読み出したデータを出力する。これにより、メモリ51または61から複数の行の重み列を並列にXNOR回路53aおよび53b(または63aおよび63b)に出力できる。メモリセル10は、6Tセルでもよい。
【0276】
図54は、実施例3の変形例における時間に対する処理を示す図である。ケース1、ケース2および実施例3は図43と同じであり説明を省略する。実施例3の変形例1および2では、メモリ51および61の2行分の処理を並列に行うことができる。これにより、処理71を処理71aおよび71bに並列処理できる。同様に処理72aおよび72bが並列処理でき、処理73aおよび73bが並列処理でき、処理74aおよび74bが並列処理できる。よって、実施例3に比べ処理時間を短縮できる。
【0277】
実施例3の変形例3では、メモリ51および61の4行分の処理を並列に行う。これにより、処理71を処理71a~71dに並列処理できる。同様に処理72a~72dが並列処理でき、処理73a~73dが並列処理でき、処理74a~74dが並列処理できる。よって、実施例3の変形例1および2に比べさらに処理時間を短縮できる。
【0278】
実施例3およびその変形例について処理時間をシミュレーションした。入力のX層および他の各層のノードの個数を各々nとし、X層を除く層数をm(mは偶数)とした。図55(a)から図55(c)は、層数mに対する規格化した処理時間T/t0を示す図である。t0は規格化のための値である。図55(a)から図55(c)は、それぞれn=256、n=512およびn=1024である。図55(a)から図55(c)に示すように、nによらず、実施例3はケース1およびケース2より処理時間が短い。実施例3の変形例1および2では、処理時間が実施例3の約1/2である。実施例3の変形例3では、処理時間が実施例3の約1/4である。
【0279】
実施例3の変形例1~3によれば、処理部52は、複数の第2ノードy1~ynのうち少なくとも2つの第2ノードの処理を並列に処理し、処理部62は、複数の第2ノードy1~ynのうち少なくとも2つの第2ノードの処理を並列に処理する。これにより、図54のように、処理時間を短縮できる。
【0280】
図47図48図50および図51のように、複数のメモリセル10は、相補的な一対の記憶ノードQ1およびQ2を各々有し、一対の記憶ノードQ1およびQ2の少なくとも1つの記憶ノードは並列に列方向に延伸する制御線CTRL2(第1ビット線)とCTRL3またはCTRL2´(第2ビット線)とに接続されている。処理部52は、並列処理する第2データの処理のうち1つの処理を行うとき、メモリ51から第1ビット線を介し複数の第1重みを取得し、別の1つの処理を行うとき、メモリ51から第2ビット線を介し複数の第1重みを取得する。これにより、処理部52において、2つの処理を並列に実行できる。
【0281】
図47図48図50および図51のように、処理部62は、並列処理する第2データの処理のうち1つの処理を行うとき、メモリ61から制御線CTRL2(第3ビット線)を介し複数の第1重みを取得し、別の1つの処理を行うとき、メモリ61から制御線CTRL3またはCTRL2´(第4ビット線)を介し複数の第1重みを取得する。これにより、処理部62において、2つの処理を並列に実行できる。
【0282】
図47のように、メモリセル10および10´が2R1W型NV-SRAMメモリセルのとき、FETM3のソースおよびドレインの他方は第1制御線CTRL1に接続され、ゲートは第1ワード線WWLに接続されている。FETM41のソースおよびドレインの他方は第2制御線CTRL2に接続され、ゲートは第2ワード線RWL1に接続されている。FETM42(第5FET)のソースおよびドレインの一方は記憶ノードQ2に接続され、ソースおよびドレインの他方は第4制御線CTRL3に接続され、ゲートが第3ワード線RWL2に接続されている。
【0283】
メモリセル10および10´が2R1W型ULVR-SRAMメモリセルのとき、図48のように、インバータ回路16(第2インバータ回路)において、FETm4のソースおよびドレインの他方は第1制御線CTRL1に接続され、ゲートは第1ワード線WWLに接続されている。インバータ回路14において、FETm41のソースおよびドレインの他方は第2制御線CTRL2に接続され、ゲートは第2ワード線RWL1に接続されている。FETm42のソースおよびドレインの一方が第2記憶ノードQ2に接続され、ソースおよび前記ドレインの他方が第3制御線CTRL3に接続され、ゲートが第3ワード線RWL2に接続されている。
【0284】
制御回路28は、ワード線WWLを用い、図47におけるFETM3または図48におけるインバータ回路16のFETm4をオンし、制御線CTRL1を用い双安定回路12にデータをライトする。制御回路28は、ワード線RWL1を用いFETM41またはFETm41をオンし、制御線CTRL2を用い双安定回路12からデータをリードし、ワード線RWL2を用いFETM42またはFETm42をオンし、制御線CTRL3を用い双安定回路12からデータをリードする。これにより、2R1W型NV-SRAMセルおよび2R1W型ULVR-SRAMセルにおいて、1つの制御線CTRL1を用いて、双安定回路12にデータをライトすることができる。また、ワード線RWL1およびRWL2を用い双安定回路12からデータをリードする制御線CTRL2およびCTRL3を選択することができる。
【0285】
表6および表7のように、FETM1、M2、FETm1およびm2がN型チャネルのとき、制御回路28は、双安定回路12からデータをリードするときのワード線WWLの電圧を、双安定回路12にデータをライトするときのワード線WWLの電圧より高くし、かつ双安定回路12からデータをリードするときのワード線RWL1およびRWL2の電圧のうち高い方の電圧より低くする。これにより、リードするときのSNMを向上させることができる。リード動作のときのワード線WWLの電圧は、ライト動作のときのワード線WWLの電圧より(VDD-VGND)/10以上高いことが好ましく、リード動作のときのワード線RWL1およびRWL2の電圧のうち高い方の電圧より(VDD-VGND)/10以上低いことが好ましい。
【0286】
FETM1a、M2a、FETm1aおよびm2aがP型チャネルのとき、制御回路28は、双安定回路12からデータをリードするときのワード線WWLの電圧を、双安定回路12にデータをライトするときのワード線WWLの電圧より低くし、かつ双安定回路12からデータをリードするときのワード線RWL1およびRWL2のうち低い方の電圧より高くする。これにより、リードするときのSNMを向上できる。リード動作のときのワード線WWLの電圧は、ライト動作のときのワード線WWLの電圧より(VDD-VGND)/10以上低いことが好ましく、リード動作のときのワード線RWL1およびRWL2の電圧のうち高い方の電圧より(VDD-VGND)/10以上高いことが好ましい。
【0287】
[実施例3の変形例4]
図56は、実施例3の変形例4に係るNV-SRAMメモリセルの回路図である。図56に示すように、セル78および78´は、実施例2のメモリセル10および10´とXNOR回路79を備えている。XNOR回路79は、FETM7~M9を備えている。FETM7において、ソースおよびドレインの一端は制御線CTRL1に接続され、ソースおよびドレインの他端はノードN5に接続され、ゲートは記憶ノードQ2に接続されている。FETM8において、ソースおよびドレインの一端は制御線CTRL2に接続され、ソースおよびドレインの他端はノードN5に接続され、ゲートは記憶ノードQ1に接続されている。FETM9において、ソースおよびドレインの一端はグランド線15bに接続され、ソースおよびドレインの他端は出力線SAINに接続され、ゲートはノードN5に接続されている。
【0288】
メモリセル10のホールド状態において、XNOR回路79は、記憶ノードQ1と制御線CTRL1のXNOR(記憶ノードQ2と制御線CTRL2のXNORにも対応する)を出力線SAINに出力する。制御線CTRL1に1ビットの演算用データ(例えばHは1.2V、Lは0V)を入力し、制御線CTRL2に演算用データの相補データを入力する。出力線SAINには演算用データと記憶ノードQ1のXNORが出力される。
【0289】
図57は、実施例3の変形例4に係るULVR-SRAMメモリセルの回路図である。図57に示すように、セル78および78´は、実施例1のメモリセル10および10´とXNOR回路79を備えている。XNOR回路79の回路構成および機能は、図56と同じである。
【0290】
図58は、実施例3の変形例4におけるBNN装置のブロック図である。図58に示すように、メモリ51および61内のメモリセルは、図56または図57のセル78および78´である。処理部52および62はXNOR回路を備えていない。メモリ51からXNORを出力するとき、入力部48のノードx1~xnのデータおよびその相補データはメモリ51のそれぞれ制御線CTRL1および制御線CTRL2に入力する。メモリ51のセンスアンプは各列の出力線SAINからデータを読み出し、カウンタ54に出力する。メモリ61からXNORを出力するとき、出力部57のノードyiのデータおよびその相補データはメモリ61の制御線CTRL1および制御線CTRL2に入力する。メモリ61のセンスアンプは各列の出力線SAINからデータを読み出し、蓄積器64に出力する。
【0291】
実施例3の変形例4のように、XNOR回路79は各セル78および78´に設けられていてもよい。実施例3の変形例1~3において、XNOR回路79を各セル78に設けてもよい。
【0292】
実施例3の変形例4によれば、図56および図57のように、メモリ51および61は、メモリセル10および10´に対応するXNOR回路79(第1XNOR回路および第2XNOR回路)を備える。これにより、処理部52および62にXNOR回路53および63を設けなくてもよい。
【0293】
[実施例3の変形例5]
図59(a)および図59(b)は、それぞれ比較例4および実施例3の変形例5のパワースイッチ付近のブロック図である。図59(a)に示すように、比較例4では、メモリアレイの1行に複数の6Tセル10が配列している。1行のセル10の個数は例えば512個である。1行のメモリセル10の電源線15a(仮想電源線)は共通に接続されている。パワースイッチ30では、スリープ状態用の電圧VDDLの電源15cLと電源線15aとの間に1個のFETPS2が設けられている。なお、電圧VDDHの電源15cHおよびパワースイッチ用FETPS1は図示を省略する。FETPS2がオンすると、電源線15aの仮想電源電圧VVDDはVDDLとなる。
【0294】
図59(b)に示すように、実施例3の変形例5では、パワースイッチ30は、メモリセル10毎にFETPS2が設けられ、各FETPS2は、スリープ状態用の電圧VDDLの電源15cLと電源線15aとの間に接続されている。なお、電圧VDDHの電源15cHおよびパワースイッチ用FETPS1は図示を省略する。FETPS2がオンすると、電源線15aの仮想電源電圧VVDDはVDDLとなる。
【0295】
図60は、実施例3の変形例5における6Tセルの回路図である。図60に示すように、メモリセル10および10´では、双安定回路12は、PFETM1´とNFETM1を有するインバータ回路14とPFETM2´とNFETM2を有するインバータ回路16を備えている。インバータ回路14と16とはループ状に接続されている。パストランジスタ用のNFETM3およびM4が設けられている。パワースイッチ30は、電圧VDDHを供給する電源15cHと電源線15aとを接続するFETPS1と、電圧VDDLを供給する電源15cLと電源線15aとを接続するFETPS2と、を備えている。電圧VDDHは、リードまたはライト動作のときの電源電圧(第2電源電圧)であり、例えば1.2Vである。電圧VDDLは、双安定回路12がデータを保持するがライトおよびリード動作は行わないスリープ状態のときの電源電圧(第1電源電圧)であり、例えばVDDHの1/3~1/4である。FETPS1(第2パワースイッチ)およびFETPS2(第1パワースイッチ)は、1個につき1個または数個(例えば10個以下)のメモリセル10の仮想電源線15aに接続されている。なお、FETPS1は、FETPS2より多くのセルにより接続されていてもよい。例えば1個のFETPS1は、64個、128個または256個のメモリセル10に接続されていてもよい。
【0296】
比較例4として、FETPS2を512個のメモリセル10に共通に設ける場合と、実施例3の変形例5として、FETPS2を1個のメモリセル10毎に設ける場合と、についてSNMおよびスタンバイパワーをシミュレーションした。図61(a)および図61(b)は、それぞれ比較例4および実施例3の変形例5におけるVDDLに対するSNMおよびスタンバイパワーを示す図である。
【0297】
図61(a)に示すように、比較例4では、VDDLが1.2VのときSNMは100mV~180mVである。VDDLを低くするとSNMは小さくなる。全てのSNMが80mV以上となる最小のVDDLは0.8Vである。このため、スリープ状態のVDDLを0.8Vと設定する。VDDLを0.8Vとしたときのスタンバイパワーは約1.6nWである。
【0298】
図61(b)に示すように、実施例3の変形例5では、VDDLが1.2VのときSNMは300mV以上である。VDDLを低くするとSNMは小さくなる。全てのSNMが80mV以上となる最小のVDDLは0.35Vである。このため、スリープ状態のVDDLを0.35Vと設定する。VDDLを0.35Vとしたときのスタンバイパワーは約0.5nWである。このように、図59(b)の実施例3の変形例5では、図59(a)の比較例4に比べ、待機時電力を削減できる。
【0299】
このように、実施例3の変形例5においてVDDLを低くしてもSNMを大きくできるのは、FETPS2に複数のメモリセル10を接続した場合は仮想電源電圧VVDDがVDDLより低くなってしまいSNMが劣化してしまうが、1個のメモリセル10のみ(または数個)接続した場合は仮想電源電圧VVDDをVDDLに保つことができるためである。
【0300】
実施例3の変形例5によれば、メモリセル10および10´として6Tメモリセルを用いても、リテンションのための電源電圧を低くできる。よって、メモリセルの面積を小さくしかつ消費電力を抑制できる。仮想電源方式を例に説明したが仮想接地方式でもよい。実施例3の変形例5を実施例3およびその変形例1~4のBNN装置に適用してもよい。実施例3およびその変形例は、BNN装置以外のニューラルネットワーク装置にも応用可能である。
【0301】
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0302】
10 メモリセル
12 双安定回路
14、16 インバータ回路
22 メモリアレイ
28 制御回路
30 パワースイッチ
32、32a、32b 選択回路
51、61 メモリ
52、62 処理部
79 XNOR回路
図1
図2
図3
図4
図5
図6
図7A
図7B
図7C
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38
図39
図40
図41
図42
図43
図44
図45
図46
図47
図48
図49
図50
図51
図52
図53
図54
図55
図56
図57
図58
図59
図60
図61