(57)【要約】【課題】学習や推論の精度を向上させながら、低消費電力化を図ることが可能な半導体装置を提供する【解決手段】半導体装置は、データ線ＰＢＬ、ＮＢＬに接続され、３値のデータを格納し、格納されたデータと入力された入力データＩＮＰとデータ線ＰＢＬ、ＮＢＬにおけるデータとの間で積和演算を行う積演算メモリセル１を備える。【選択図】図１
2020129582.tif 000002
【特許請求の範囲】
【請求項１】
データ線に接続され、３値のデータを格納し、格納されたデータと、入力された入力データと、前記データ線におけるデータとの間で積和演算を行うメモリセルを備えた、半導体装置。
【請求項２】
請求項１に記載の半導体装置において、
前記データ線は、第１データ線と第２データ線とを備え、
前記メモリセルは、
第１メモリセルと、
第２メモリセルと、
前記第１データ線に接続され、前記第１メモリセルに保持されているデータによって制御される第１スイッチと、
前記第２データ線に接続され、前記第２メモリセルに保持されているデータによって制御される第２スイッチと、
前記入力データによって制御される第３スイッチと、
を備え、
前記第１メモリセルと前記第２メモリセルとに格納されているデータと、前記入力データとに従って、前記第１データ線または前記第２データ線が、前記第３スイッチと前記第１スイッチまたは前記第３スイッチと前記第２スイッチを介して、電圧配線に接続される、半導体装置。
【請求項３】
請求項２に記載の半導体装置において、
前記第１データ線、前記第２データ線および前記電圧配線は、前記半導体装置において互いに異なる層に形成された複数の配線によって構成される、半導体装置。
【請求項４】
請求項３に記載の半導体装置において、
前記互いに異なる層は、上下において隣接した導電層であり、前記複数の配線は、同一の方向に延在している、半導体装置。
【請求項５】
データ線と、
前記データ線に接続され、３値以上のデータを格納し、入力された入力データと、格納されているデータと、前記データ線におけるデータとの間で積和演算を行う、複数の積和演算機能付きメモリセルと、
を備え、
前記複数の積和演算機能付きメモリセルによる積和演算の結果が、前記データ線から出力される、半導体装置。
【請求項６】
請求項５に記載の半導体装置において、
前記積和演算機能付きメモリセルは、
絶対値データを格納する複数の第１メモリセルと、
符号データを格納する第２メモリセルと、
を備える、半導体装置。
【請求項７】
請求項６に記載の半導体装置において、
前記データ線は、第１データ線と第２データ線とを備え、
前記積和演算機能付きメモリセルは、
前記複数の第１メモリセルに格納された絶対値データによって制御される複数の第１スイッチと、
前記第２メモリセルに格納された符号データによって制御される複数の第２スイッチと、
前記入力データによって制御される複数の第３スイッチと、
を備え、
前記第１データ線または前記第２データ線は、前記複数の第１メモリセルに格納されている前記絶対値データと、前記第２メモリセルに格納されている前記符号データと、前記入力データとに従って、前記第１スイッチ、前記第２スイッチおよび前記第３スイッチを介して、電圧配線に接続され、
前記複数の第１メモリセルに格納された絶対値データは、重み付けされたデータであり、前記複数の第１スイッチ、前記複数の第２スイッチおよび前記複数の第３スイッチのそれぞれは、対応する絶対値データの重み付けに従ったサイズを有する、
半導体装置。
【請求項８】
請求項５に記載の半導体装置において、
前記積和演算機能付きメモリセルは、前記積和演算の結果を表す電圧を出力する、半導体装置。
【請求項９】
複数の第１データ線と、
前記複数の第１データ線のそれぞれに接続された複数の積和演算機能付きメモリセルと、
を備え、
前記積和演算機能付きメモリセルは、３値以上のデータを格納し、格納しているデータと、入力データと、接続されている第１データ線におけるデータとの間で積和演算を実行する、
半導体装置。
【請求項１０】
請求項９に記載の半導体装置において、
前記複数の第１データ線のそれぞれに接続され、接続された第１データ線におけるアナログ信号をデジタル信号に変換する複数のアナログ／デジタル変換回路と、
複数の入力データを保持する入力データ保持回路と、
を、さらに備え、
前記入力データ保持回路に保持されているデータが、前記入力データとして、前記積和演算機能付きメモリセルに供給され、
前記積和演算の結果は、接続されている第１データ線を介して、前記アナログ／デジタル変換回路に供給される、半導体装置。
【請求項１１】
請求項１０に記載の半導体装置において、
複数の第２データ線を、さらに備え、
前記複数の積和演算機能付きメモリセルには、前記第２データ線を介してデータが書き込まれる、半導体装置。
【請求項１２】
請求項１０に記載の半導体装置において、
前記入力データ保持回路に接続され、前記入力データをアナログ信号へ変換するデジタル／アナログ変換回路を、さらに備え、
前記デジタル／アナログ変換回路からのアナログ信号が、前記積和演算機能付きメモリセルの入力データとして供給される、半導体装置。
【請求項１３】
請求項９に記載の半導体装置において、
前記複数の第１データ線のそれぞれは、１組のデータ線よりなり、
前記半導体装置は、前記１組のデータ線に接続され、前記１組のデータ線のうちの１つのデータ線にリファレンスを供給するリファレンスセルと、前記１組のデータ線に接続されたコンパレータとを備え、
前記コンパレータによって、前記１組のデータ線間の電位差が増幅され、増幅された電位差に基づいたデータがシリアルに出力される、半導体装置。
【請求項１４】
請求項１３に記載の半導体装置において、
前記リファレンスセルは、前記積和演算機能付きメモリセルと同等の駆動力を備えた第１リファレンスセルと、前記積和演算機能付きメモリセルの半分の駆動力を備えた第２リファレンスセルとを備え、
前記電位差に基づいたデータが、符号ビット、最上位ビットから最下位ビットに向けてシリアルに出力する、半導体装置。
【請求項１５】
請求項１４に記載の半導体装置において、
前記１組のデータ線に接続され、前記１組のデータ線に接続されている複数の積和演算機能付きメモリセルにおける積和演算の結果が、“０”であるか否かを検出し、“０”の場合、所定の論理値を、積和演算の結果として出力する、半導体装置。
【請求項１６】
請求項１４に記載の半導体装置において、
前記シリアルに出力されるデータのデータ長は、可変である、半導体装置。
【請求項１７】
請求項１３に記載の半導体装置において、
前記半導体装置は、
前記複数の積和演算機能付きメモリセルが配置されたセルアレイと、
前記リファレンスセルが配置されたリファレンスアレイと、
前記１組のデータ線をバイアスするバイアス回路とスイッチ回路とを含むソーススイッチと、
を備え、
前記セルアレイ、前記リファレンスアレイおよび前記ソーススイッチは、分散して配置され、
前記積和演算機能付きメモリセルを構成する複数のトランジスタの一部と、前記リファレンスセルを構成する複数のトランジスタの一部が、前記コンパレータを構成するトランジスタとして用いられる、半導体装置。
【請求項１８】
請求項１３に記載の半導体装置において、
前記リファレンスセルは、特性を変更することが可能な端子を備える、半導体装置。
【請求項１９】
請求項１７に記載の半導体装置において、
前記積和演算を行う積和演算モードを有効にするか否かを示す積和演算モードイネーブル信号が供給されるＭＡＣＥ端子と、
リセット信号が供給されるＲＳＴ端子と、
前記セルアレイから積和演算機能付きメモリセルを指定するアドレスが供給されるＹＡ端子と、
前記積和演算機能付きメモリセルに書き込まれるデータが供給されるＤ端子と、
前記積和演算をマスクするか否かを示す積和演算マスク信号が供給されるＭＥＭ端子と、
前記積和演算の結果を出力するＭＱ端子と、
を、さらに備える、半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、例えばＡＩ（Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ）等の積和演算を大量に実行することが要求される半導体装置に関する。
【背景技術】
【０００２】
近年、ディープラーニングによる機械学習の発展に伴って、様々なところでＡＩが応用されつつある。しかしながら、この手法では、大量の積和演算が要求されるため、例えばＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等によって、積和演算の処理をアクセラレーションすることが行われる。また、積和演算の処理だけでなく、処理を行うのに付随して、大量のデータ転送処理も発生する。これらの処理を行うために、消費電力が非常に大きくなと言う課題が生じている。
【０００３】
この課題を解決することができれば、ＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）等において、エッジであるセンサ側のシステムでＡＩを利用することができるようになり、ＡＩをさらに様々に利用することが可能となる。
【０００４】
積和演算に付随して発生するデータ転送処理を減らす技術として非特許文献１に記載されている技術がある。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】ＶＬＳＩ  ｃｉｒｃｕｉｔ  ２０１８、“Ａ  Ｍｉｘｅｄ−Ｓｉｇｎａｌ  Ｂｉｎａｒｉｚｅｄ  Ｃｏｎｖｏｌｕｔｉｏｎａｌ−Ｎｅｕｒａｌ−Ｎｅｔｗｏｒｋ  Ａｃｃｅｌｅｒａｔｏｒ  Ｉｎｔｅｇｒａｔｉｎｇ  Ｄｅｎｓｅ  Ｗｅｉｇｈｔ  Ｓｔｏｒａｇｅ  ａｎｄ  Ｍｕｌｔｉｐｌｉｃａｔｉｏｎ  ｆｏｒ  Ｒｅｄｕｃｅｄ  Ｄａｔａ  Ｍｏｖｅｍｅｎｔ”  ２０１８年６月１８日
【発明の概要】
【発明が解決しようとする課題】
【０００６】
非特許文献１では、データ転送処理を減らすために、積演算において掛ける数が、スタテック型揮発性メモリ（以下、ＳＲＡＭ）のメモリセルに格納される。また、非特許文献１では、低消費電力化を図るために、積演算において掛ける数および掛けられる数の両方を、”０”、”１”の２値で表し、その２値を”−１”と”１”と定義している。これにより、否定排他的論理和（ＸＮＯＲ）の結果が、”−１”と”１”の掛け算となるようにしている。さらに、非特許文献１では、データ線に複数のメモリセルを接続することにより、各メモリセルにおける積演算の和を、データ線電圧として観測している。これにより、積和演算のうち積演算の部分において、掛ける数に係わるデータ転送処理の回数を低減し、和演算の部分を複数のメモリセルのデータ線への１回の読み出しにより実現している。
【０００７】
しかしながら、例えば浮動小数点のような多ビットの積和演算を考えた場合、多ビットを２値にするのでは、圧縮し過ぎで、機械学習や推論の精度が低下すると言う課題がある。また、学習等に要する時間も膨大になると言う課題も生じる。
【０００８】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
一実施の形態に係わる半導体装置は、次のとおりである。
【００１０】
すなわち、半導体装置は、データ線に接続され、３値のデータを格納し、格納されたデータと入力された入力データとデータ線におけるデータとの間で積和演算を行うメモリセルを備える。３値は、例えば＋１、０、−１である。
【発明の効果】
【００１１】
一実施の形態によれば、学習や推論の精度を向上させながら、低消費電力化を図ることが可能な半導体装置を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１に係わる積和演算機能付きメモリセルの構成を示す図である。
【図２】実施の形態１に係わる積演算メモリセルの構成を示す回路図である。
【図３】実施の形態２に係わる半導体装置のレイアウトを示す平面図である。
【図４】（Ａ）〜（Ｄ）は、実施の形態２に係わる半導体装置のレイアウトを示す図である。
【図５】（Ａ）および（Ｂ）は、実施の形態３に係わる半導体装置のレイアウトを示す平面図である。
【図６】実施の形態４に係わる半導体装置の構成を示す回路図である。
【図７】（Ａ）および（Ｂ）は、実施の形態４に係わる半導体装置のレイアウトを示す平面図である。
【図８】（Ａ）〜（Ｄ）は、実施の形態４に係わる半導体装置の断面を示す断面図である。
【図９】実施の形態５に係わる積演算メモリセルの構成を示す回路図である。
【図１０】実施の形態６に係わる積演算メモリセルの構成を示す回路図である。
【図１１】実施の形態７に係わる半導体装置の構成を示すブロック図である。
【図１２】（Ａ）および（Ｂ）は、実施の形態８に係わる半導体装置を説明するための図である。
【図１３】実施の形態９に係わる半導体装置の構成を示す図である。
【図１４】（Ａ）〜（Ｄ）は、実施の形態９に係わる半導体装置の構成を示す図である。
【図１５】（Ａ）および（Ｂ）は、実施の形態９に係わるＡ／Ｄ変換を説明するためのタイミング図である。
【図１６】（Ａ）および（Ｂ）は、実施の形態１０に係わる半導体装置の構成を示す図である。
【図１７】（Ａ）および（Ｂ）は、実施の形態１０を説明するための図である。
【図１８】（Ａ）〜（Ｄ）は、実施の形態１１に係わるＡ／Ｄ変換を説明するための図である。
【図１９】実施の形態１１に係わる半導体装置の構成を示す回路図である。
【図２０】（Ａ）および（Ｂ）は、実施の形態１１に係わる半導体装置のタイミング図である。
【図２１】実施の形態１２に係わるリファレンスセルの構成を示す回路図である。
【図２２】実施の形態１〜１２に係わる半導体装置が備える外部端子を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の各実施の形態について、図面を参照しつつ説明する。なお、開示はあくまでも一例にすぎず、当業者において、発明の主旨を保っての適宜変更について容易に想到し得るものについては、当然に本発明の範囲に含有されるものである。また、図面は説明をより明確にするため、実際の態様に比べ、各部の幅、厚さ、形状等について模式的に表される場合があるが、あくまで一例であって、本発明の解釈を限定するものではない。
【００１４】
また、本明細書と各図において、既出の図に関して前述したものと同様の要素には、同一の符号を付して、詳細な説明を適宜省略することがある。
【００１５】
（実施の形態１）
＜積和演算機能付きメモリセルの構成＞
図１は、実施の形態１に係わる積和演算機能付きメモリセル（以下、積演算メモリセルと称する）の構成を示す図である。図１には、データ線（第１データ線、第２データ線）ＰＢＬ、ＮＢＬに接続された２つの積演算メモリセルが例示されている。積演算メモリセル１は、互いに同じ構成を備えているため、図１には、１つの積演算メモリセル１についてのみ等価回路が示されている。積演算メモリセル１は、３値を格納するために、２つのメモリセル（第１メモリセル、第２メモリセル）２、３を備えている。また、積演算メモリセル１は、メモリセル２、３以外に、３つのスイッチ（第１〜第３スイッチ）４〜６と、定電流源７とを備えている。
【００１６】
メモリセル２、３は、ＳＲＡＭのメモリセルであり、後で図２において説明する一対の相補データ線およびワード線に接続されており、一対の相補データ線およびワード線を用いて、メモリセル２、３に論理値が書き込まれる。スイッチ４、５は、メモリセル２、３に対応し、対応するメモリセルに、例えば論理値“１”が格納されているとき、オン状態となる。スイッチ４は、ノードｎ１とデータ線ＰＢＬとの間に接続され、スイッチ５は、ノードｎ１とデータ線ＮＢＬとの間に接続されている。また、スイッチ６は、ノードｎ１と定電流源７との間に接続され、定電流源７は接地電圧Ｖｓに接続されている。このスイッチ６は、入力配線ＩＮＰ＿Ｌに与えられる入力データＩＮＰに対応し、入力データＩＮＰが例えば論理値“１”のとき、オン状態となる。
【００１７】
メモリセル２、３の両方が論理値“０”を格納しているとき、積演算メモリセル１は、論理値“０”を格納しているものとする。また、メモリセル２が論理値“１”を格納し、メモリセル３が論理値“０”を格納しているとき、積演算メモリセル１は、論理値“＋１”を格納しているものとする。さらに、メモリセル２が論理値“０”を格納し、メモリセル３が論理値“１”を格納しているとき、積演算メモリセル１は、論理値“−１”を格納しているものとする。
【００１８】
これにより、積演算メモリセル１に論理値“０”が格納されているとき、スイッチ４および５はオフ状態となり、入力データＩＮＰが例え論理値“１”であっても、データ線ＰＢＬ、ＮＢＬから定電流源７に電流は流れない。
【００１９】
これに対して、積演算メモリセル１に論理値“＋１”が格納されているとき、スイッチ４はオン状態となり、スイッチ５はオフ状態となる。このとき、入力データＩＮＰが論理値“１”であれば、オン状態のスイッチ４および６を介して、データ線ＰＢＬから定電流源７に電流が流れ、データ線ＰＢＬの電圧は低下する。このとき、データ線ＮＢＬの電圧は低下しない。一方、このとき、入力データＩＮＰが論理値“０”であれば、オン状態のスイッチ６がオフ状態となるため、データ線ＰＢＬ、ＮＢＬから定電流源７に電流は流れず、データ線ＰＢＬおよびＮＢＬの電圧は低下しない。
【００２０】
さらに、積演算メモリセル１に論理値“−１”が格納されているときには、スイッチ５はオン状態となり、スイッチ４はオフ状態となる。このとき、入力データＩＮＰが論理値“１”であれば、オン状態のスイッチ５および６を介して、データ線ＮＢＬから定電流源７に電流が流れ、データ線ＮＢＬの電圧は低下し、データ線ＰＢＬの電圧は低下しない。一方、このとき、入力データＩＮＰが論理値“０”であれば、オン状態のスイッチ６がオフ状態となるため、データ線ＰＢＬ、ＮＢＬから定電流源７に電流は流れず、データ線ＰＢＬおよびＮＢＬの電圧は低下しない。
【００２１】
すなわち、メモリセル２が、積演算メモリセル１に論理値“＋１”を格納するのに用いられ、メモリセル３が、積演算メモリセル１に論理値“−１”を格納するのに用いられていると見なすことができる。
【００２２】
これにより、積演算メモリセル１に格納されている３値と入力データＩＮＰの値との間で積演算が実行される。すなわち、入力データの論理値と、積演算メモリセルの論理値に従って、０×０、０×（＋１）、０×（−１）、１×０、１×（＋１）、１×（−１）の６つの状態が形成される。この場合、入力データの論理値と積演算メモリセル１に格納されている論理値との間で積演算が実行され、積演算の結果が論理値“１”のとき、データ線ＰＢＬと定電流源７との間を電流が流れ、データ線ＰＢＬの電圧が低下する。これに対して、積演算の結果が論理値“−１”のとき、データ線ＮＢＬと定電流源７との間を電流が流れ、データ線ＮＢＬの電圧が低下する。
【００２３】
図１において、紙面の下側に示した積演算メモリセル１は、同様に、積演算メモリセル１に格納されている３値の論理値と入力データＩＮＰの論理値との間で、積演算を実行し、積演算の結果に従って、データ線ＰＢＬ、ＰＢＬから電流を引き抜くように、動作する。
【００２４】
データ線ＰＢＬ、ＮＢＬのそれぞれにおいて、紙面の上側に示した積演算メモリセル１の積演算結果に従った電流と、紙面の下側に示した積演算メモリセル１の積演算の結果に従った電流とが、重畳されて、データ線ＰＢＬ、ＮＢＬのそれぞれにおいて電流・電圧が定まる。すなわち、２つの積演算メモリセル１において得られた積が、データ線ＰＢＬ、ＮＢＬによって、和を求めるように和演算が実行される。和演算の結果である積和演算の結果は、データ線ＰＢＬ、ＮＢＬを介して出力される。
【００２５】
図２は、実施の形態１に係わる積演算メモリセルの構成を示す回路図である。図２には、図１に示した２つの積演算メモリセル１のうち、１つの積演算メモリセルの回路構成のみが示されている。メモリセルの構成を、メモリセル２を例にして説明する。メモリセル２は、所謂、６トランジスタにより構成されたＳＲＡＭのメモリセルである。すなわち、メモリセル２は、複数のＰチャンネル型電界効果トランジスタ（Ｐ型ＦＥＴと称する）と複数のＮチャンネル型電界効果トランジスタ（Ｎ型ＦＥＴと称する）によって構成されている。なお、図２および以降で説明する図面においては、Ｐ型ＦＥＴはゲート電極に○印を付して、Ｎ型ＦＥＴと区別する。また、チャンネル型を区別しない場合、電界効果トランジスタは、以下、ＦＥＴと称する。
【００２６】
メモリセル２は、Ｐ型ＦＥＴＰ１とＮ型ＦＥＴＮ１によって構成された第１インバータ回路ＩＶ１と、Ｐ型ＦＥＴＰ２とＮ型ＦＥＴＮ２によって構成された第２インバータ回路ＩＶ２とを備えている。第１インバータ回路ＩＶ１と第２インバータ回路ＩＶ２は、電源電圧Ｖｄと接地電圧Ｖｓとの間に接続されている。また、第１インバータ回路ＩＶ１の入力は、第２インバータ回路ＩＶ２の出力に接続され、第２インバータ回路ＩＶ２の入力は第１インバータ回路ＩＶ１の出力に接続されている。すなわち、第１インバータ回路ＩＶ１と第２インバータ回路ＩＶ２は、ラッチ回路を構成するように交差接続されている。第２インバータ回路ＩＶ２および第１インバータ回路ＩＶ１の入力と、一対の相補データ線ＢＢ、ＢＴとの間に転送用Ｎ型ＦＥＴＮ３、Ｎ４が接続されている。転送用Ｎ型ＦＥＴＮ３、Ｎ４のゲート電極は、ワード線ＰＷＬに接続されている。
【００２７】
一対の相補データ線ＢＢ、ＢＴおよびワード線ＰＷＬは、メモリセル２に、データを書き込む際に用いられる。すなわち、メモリセル２にデータを書き込む際、書き込むべきデータの論理値に従った相補の電圧（ハイレベルとロウレベル）が、相補データ線ＢＢ、ＢＴに供給され、ワード線ＰＷＬにハイレベルが供給される。これにより、転送用Ｎ型ＦＥＴＮ３、Ｎ４を介して、一対の相補データ線ＢＢ、ＢＴにおける相補の電圧が、第１インバータ回路ＩＶ１および第２インバータ回路ＩＶ２により構成されたラッチ回路に供給され、メモリセル２に論理値“０”または“１”が書き込まれる。メモリセル２に保持されている論理値は、ノードｎ２から出力される。
【００２８】
メモリセル３は、メモリセル２と同じ構成を備えているが、転送用Ｎ型ＦＥＴＮ３、Ｎ４のゲート電極は、前記したワード線ＰＷＬとは異なるワード線ＮＷＬに接続されている。これにより、ワード線ＮＷＬをワード線ＰＷＬと異なるタイミングでハイレベルにすることにより、メモリセル２とは異なる論理値を、メモリセル３に書き込みことが可能となっている。すなわち、実施の形態１においては、積演算メモリセル１に論理値“＋１”を格納するのに用いるメモリセル２をワード線ＰＷＬで制御し、積演算メモリセル１に論理値“−１”を格納するのに用いるメモリセル３をワード線ＮＷＬで制御している。
【００２９】
図１で説明したスイッチ４は、Ｎ型ＦＥＴＮ５によって構成され、スイッチ５は、Ｎ型ＦＥＴＮ６によって構成され、スイッチ６は、Ｎ型ＦＥＴＮ７によって構成されている。すなわち、Ｎ型ＦＥＴＮ５のソース・ドレイン経路は、ノードｎ１とデータ線ＰＢＬとの間に接続され、そのゲート電極は、メモリセル２のノードｎ２に接続されている。また、Ｎ型ＦＥＴＮ６のソース・ドレイン経路は、ノードｎ１とデータ線ＮＢＬとの間に接続され、そのゲート電極は、メモリセル３のノードｎ２に接続されている。さらに、Ｎ型ＦＥＴＮ７のソース・ドレイン経路は、ノードｎ１と電圧配線ＣＶＳＳとの間に接続され、そのゲート電極には、入力データＩＮＰが供給されている。特に制限されないが、電圧配線ＣＶＳＳには、図示されていない定電流源７が接続されている。勿論、電圧配線ＣＶＳＳに、接地電圧Ｖｓが供給されるようにしてもよい。
【００３０】
特に制限されないが、実施の形態１においては、データ線ＰＢＬ、ＮＢＬと電源電圧Ｖｄとの間に、負荷１０および１１がそれぞれ接続されている。負荷１０および１１を介して、データ線ＰＢＬ、ＮＢＬに電流が供給される。
【００３１】
＜積演算メモリセルへの論理値の書き込みおよび積演算＞
積演算メモリセル１に論理値“＋１”を書き込み場合、相補データ線ＢＴにハイレベルを供給し、相補データ線ＢＢにロウレベルを供給した状態で、ワード線ＰＷＬをハイレベルにする。これにより、メモリセル２が選択され、メモリセル２内の転送用Ｎ型ＦＥＴＮ３、Ｎ４がオン状態となり、第２インバータ回路ＩＶ２の入力にロウレベルが供給される。その結果、メモリセル２におけるラッチ回路は、ノードｎ２をハイレベル状態にするような状態をラッチする。続けて、相補データ線ＢＢにハイレベルを供給し、相補データ線ＢＴにロウレベルを供給した状態で、ワード線ＮＷＬをハイレベルにする。これにより、メモリセル３が選択され、メモリセル３内の転送用Ｎ型ＦＥＴＮ３、Ｎ４がオン状態となり、第２インバータ回路ＩＶ２の入力にハイレベルが供給される。その結果、メモリセル３におけるラッチ回路は、ノードｎ２をロウレベル状態にするような状態をラッチする。
【００３２】
これにより、Ｎ型ＦＥＴＮ５はオン状態となり、Ｎ型ＦＥＴＮ６はオフ状態となる。この状態で、入力データＩＮＰが例えばハイレベルであれば、Ｎ型ＦＥＴＮ７がオン状態となり、Ｎ型ＦＥＴＮ５およびＮ７が、データ線ＰＢＬから電圧配線ＣＶＳＳへ電流を流させる電流パスを形成することになる。
【００３３】
積演算メモリセル１に論理値“＋１”を書き込む場合を説明したが、論理値“−１”を書き込む場合および論理値“０”を書き込む場合も同様である。積演算メモリセル１に論理値“−１”が書き込まれている場合、入力データＩＮＰがハイレベルであれば、Ｎ型ＦＥＴＮ６とＮ７とによって、データ線ＮＢＬと電圧配線ＣＶＳＳとを接続する電流パスが形成されることになる。一方、積演算メモリセル１に論理値“０”が書き込まれている場合には、入力データＩＮＰがハイレベルであっても、データ線ＰＢＬ、ＮＢＬと電圧配線ＣＶＳＳとを接続する電流パスは形成されない。
【００３４】
＜和演算＞
図２に示した積演算メモリセル１が、データ線ＰＢＬ、ＮＢＬに多数個接続されている。これにより、各積演算メモリセルにおいて形成される電流パスの数の和に応じた電流が、データ線ＰＢＬ、ＮＢＬを流れることになる。すなわち、データ線ＰＢＬには、論理値“＋１”側の積の和に対応した電流が流れ、データ線ＮＢＬには、論理値“−１”側の積の和に対応した電流が流れることになる。これにより、論理値“＋１”側の積和演算の結果が、データ線ＰＢＬに出力され、論理値“−１”側の積和演算の結果が、データ線ＮＢＬに出力されることになる。従って、データ線ＰＢＬにおける電流とデータ線ＮＢＬにおける電流との差分を、アナログ／デジタル変換（Ａ／Ｄ変換）することにより、期待する積和演算の結果を得ることができる。勿論、データ線ＰＢＬ、ＮＢＬのそれぞれを流れる電流をＡ／Ｄ変換し、得られたデジタル信号の差分を求めるようにしてもよい。
【００３５】
実施の形態１においては、積演算メモリセル１に、積和演算で用いられる、“＋１”、“０”、“−１”の３値の論理値が格納される。そのため、学習や推論で用いられるデータが、圧縮され過ぎるのを防ぐことが可能であり、学習や推論の精度を向上させることが可能である。また、積演算メモリセル１に格納されている論理値を変更しなくても、入力データＩＮＰを変えることにより、多数の積和演算を行うことが可能である。そのため、データ転送処理の回数を低減することが可能である。さらに、和演算は、データ線ＰＢＬ、ＮＢＬからそれぞれの積演算メモリセル１が電流を引き抜くことにより実現されるため、１回の動作で複数の和演算を実行することが可能となる。これにより、データ転送処理の回数をさらに低減させ、消費電力を低減することが可能である。
【００３６】
（実施の形態２）
図３は、実施の形態２に係わる半導体装置のレイアウトを示す平面図である。図３には、図２で説明した積演算メモリセル１のレイアウトが示されている。実施の形態２においては、所謂プレーナー型のＦＥＴを用いて積演算メモリセル１が形成されている。図３において、細い破線で囲まれたセル領域ＣＡＲに、１つの積演算メモリセル１が配置されている。実施の形態２においては、セル領域ＣＡＲの中央を通過する二点鎖線で示す仮想直線ＣＮＴを中心として、メモリセル２とメモリセル３が対称に配置されている。
【００３７】
図３において、実線で囲まれた領域は、ＦＥＴのゲート電極を形成する配線を示し、破線で囲まれた領域は、ＦＥＴのソース領域あるいはドレイン領域を形成する半導体領域を示している。また、一点鎖線で囲まれた領域は、第１層目の金属配線層（導電層）Ｍ１により形成された金属配線を示している。さらに実線で囲まれ、×印が付された領域は、コンタクト領域を示している。コンタクト領域によって、例えばコンタクト領域と重なっている２つの層間が電気的に接続されている。図３には、ゲート電極部に、図２で説明したＰ型ＦＥＴおよびＮ型ＦＥＴの符号が付されている。符号が付されたゲート電極部が、符号のＦＥＴを構成するゲート電極を構成している。
【００３８】
積演算メモリセルを構成するＰ型ＦＥＴＰ１、Ｐ２およびＮ型ＦＥＴＮ１〜Ｎ７のゲート電極は、仮想直線ＣＮＴと平行するように配置されている。また、相補データ線ＢＢ側のＰ型ＦＥＴＰ１およびＮ型ＦＥＴＮ１を構成するゲート電極は、延伸して、スイッチを構成するＮ型ＦＥＴＮ５またはＮ６のゲート電極を構成している。すなわち、メモリセル２、３を構成するＰ型ＦＥＴＰ１およびＮ型ＦＥＴＮ１のゲート電極と、スイッチを構成するＮ型ＦＥＴＮ５またはＮ６のゲート電極が一体的に形成されている。さらに、スイッチ６を構成するＮ型ＦＥＴＮ７は、メモリセル２と３との対称性を維持するために、２つ並列に配置されている。
【００３９】
図３に示したレイアウトでは、データ線ＰＢＬ、ＮＢＬと半導体領域とを接続するコンタクト領域が、セル領域ＣＡＲの境界に配置されている。同様に、相補データ線ＢＢと半導体領域とを接続するコンタクト領域も、セル領域ＣＡＲの境界に配置されている。そのため、図示しないが、図３に示した積演算メモリセル１の隣の積演算メモリセル１は、二点鎖線で示す仮想Ｙ軸直線Ｙ１、Ｙ２を基準として、図３に示した積演算メモリセル１がミラー反転した状態で配置されている。これにより、隣接する積演算メモリセル１間で、データ線ＰＢＬ、ＮＢＬと、相補データ線ＢＢを兼用することが可能となっている。
【００４０】
実施の形態１においては、図３に示した領域上に、さらに４層の金属配線層Ｍ２〜Ｍ５が積層される。この４層の金属配線層を、図を用いて説明する。
【００４１】
図４は、実施の形態２に係わる半導体装置のレイアウトを示す図である。図４（Ａ）は、図３に示した第１層目の金属配線層Ｍ１の上層に形成された２層目の金属配線層Ｍ２による配線を示し、図４（Ｂ）は、２層目の金属配線層Ｍ２の上層に形成された３層目の金属配線層Ｍ３による配線を示している。また、図４（Ｃ）は、３層目の金属配線層Ｍ３の上層に形成された４層目の金属配線層Ｍ４による配線を示し、図４（Ｄ）は、４層目の金属配線層Ｍ４の上層に形成された５層目の金属配線層Ｍ５による配線を示している。
【００４２】
図４において、実線で囲まれ、×印が付された領域は、ビア領域を示している。ビア領域において、下層側の金属配線と上層側の金属配線との間の絶縁層に開口部が設けられ、開口部を介して、下層側の金属配線と上層側に金属配線とが電気的に接続されている。すなわち、図４（Ａ）では、太い一点鎖線で示した第１層目の金属配線と細い二点鎖線で示されている第２層目の金属配線とがビア領域によって接続され、図４（Ｂ）では、細い二点鎖線で示した第２層目の金属配線と太い二点鎖線で示されている第３層目の金属配線とがビア領域によって接続されている。また、図４（Ｃ）では、太い二点鎖線で示した第３層目の金属配線と細い二点鎖線で示されている第４層目の金属配線とがビア領域によって接続され、図４（Ｄ）では、細い二点鎖線で示した第４層目の金属配線と太い二点鎖線で示されている第５層目の金属配線とがビア領域によって接続されている。
【００４３】
実施の形態２においては、図４（Ａ）に示した第２層目の金属配線層Ｍ２により形成された金属配線によって、相補データ線ＢＢ、ＢＴが構成されている。また、図４（Ｂ）に示した第３層目の金属配線層Ｍ３により形成された金属配線によって、ワード線ＮＷＬ、ＰＷＬが構成されている。
【００４４】
また、実施の形態２においては、積和演算の機能を達成するための配線、すなわち図２に示したデータ線ＰＢＬ、ＮＢＬおよび電圧配線ＣＶＳＳは、互いに異なる２つの金属配線層により形成された金属配線が用いられている。すなわち、図４（Ａ）に示した第２層目の金属配線層Ｍ２により形成された金属配線と、図４（Ｃ）に示した第４層目の金属配線層Ｍ４により形成された金属配線とが、データ線ＰＢＬ、ＮＢＬおよび電圧配線ＣＶＳＳとして用いられており、同一の方向に延在している。これにより、積和演算の機能を達成するための配線は、２つの金属配線が並列的に接続された構成となり、配線抵抗を小さくすることが可能である。＜和演算＞で説明したように、積和演算の結果は、電流に変換される。そのため、配線抵抗が大きいと、電流パスを形成している積演算メモリセルの位置によって、電流値が変化してしまうため、実施の形態２のように、配線抵抗を小さくすることが望ましい。
【００４５】
接地電圧Ｖｓを供給する金属配線は、図４（Ｄ）に示すように、第５層目の金属配線層Ｍ５によって形成されている。接地電圧Ｖｓを供給する金属配線は、図４（Ｄ）に示すように、データ線ＰＢＬ、ＮＢＬおよび電圧配線ＣＶＳＳを部分的に覆うように配置されている。これにより、接地電圧Ｖｓを供給する金属配線は、データ線ＰＢＬ、ＮＢＬおよび電圧配線ＣＶＳＳに対して、ノイズシールドとして機能する。
【００４６】
実施の形態２によれば、小面積で積演算メモリセル１を形成することが可能である。また、配線抵抗のバラツキ等に対して積和演算機能の耐性を向上させることが可能である。
【００４７】
（実施の形態３）
実施の形態３においては、積演算メモリセル１が、所謂フィンＦＥＴと呼ばれる３次元構造のＦＥＴによって構成されている。図５は、実施の形態３に係わる半導体装置のレイアウトを示す平面図である。図５には、図２に示した積演算メモリセル１が、フィン型ＦＥＴによって構成されたレイアウトが示されている。ここで、図５（Ａ）において、実線で囲まれた領域は、ゲート電極を示し、破線で囲まれた領域は、フィンを示し、細い二点鎖線で囲まれた領域は、第１層目の金属配線層Ｍ１によって形成された金属配線を示している。
【００４８】
また、図５（Ａ）において、細い一点鎖線で囲まれた領域は、ゲート電極と他の領域とを接続するためのゲート用ローカルインターコネクト（ＬＩＣ）領域を示し、太い一点破線で囲まれた領域は、フィンと他の領域とを接続するためのフィン（Ｆｉｎ）用ＬＩＣ領域を示している。さらに実線で囲まれ、×印が付されている領域は、コンタクト領域を示している。フィンＦＥＴを製造するプロセスでは、フィンと金属配線との間の接続は、コンタクト領域によって接続するのではなく、ＬＩＣ領域によって接続されている。
【００４９】
実施の形態３においても、実施の形態２と同様に、メモリセル２と３は、仮想直線ＣＮＴを中心として対称的に配置され、隣の積演算メモリセルは、仮想Ｙ軸直線Ｙ１、Ｙ２を基準としてミラー反転して配置される。実施の形態３においては、スイッチを構成するＮ型ＦＥＴＮ５、Ｎ６とスイッチを構成するＮ型ＦＥＴＮ７とが分離されている。すなわち、図面において、Ｎ型ＦＥＴＮ７は、Ｎ型ＦＥＴＮ５、Ｎ６の上側に配置され、Ｎ型ＦＥＴＮ５、Ｎ６の共通ソース領域とＮ型ＦＥＴＮ７のドレイン領域とが、ＬＩＣ領域によって接続されている。
【００５０】
実施の形態２の積演算メモリセルにおいては、第１層目の金属配線層Ｍ１から第５層目の金属配線層Ｍ５を用いて配線が行われていたが、実施の形態３においては、第１層目と第２層目の金属配線層によって形成された金属配線によって、接続が行われている。図５（Ｂ）には、第２層目の金属配線層によって形成された金属配線が示されている。図５（Ｂ）において、太い二点鎖線で囲まれた領域は、第２層目の金属配線層Ｍ２によって形成された金属配線を示している。実施の形態３では、ワード線ＰＷＬ、ＮＷＬと、入力データＩＮＰを供給する入力配線ＩＮＰ＿Ｌと、接地電圧Ｖｓを供給する配線が、第２層目の金属配線層によって形成されている。勿論、実施の形態２と同様に、データ線ＮＢＬ、ＰＢＬおよび電圧配線ＣＶＳＳを、上層の金属配線層により形成された金属配線と接続して、これらの配線抵抗の低減を図ってもよい。
【００５１】
実施の形態３によれば、フィンＦＥＴによって、積演算メモリセルを備えた半導体装置を実現することが可能である。
【００５２】
（実施の形態４）
実施の形態４においては、１組のデータ線ＰＢＬ、ＮＢＬが、同じ入力配線ＩＮＰ＿Ｌに接続された複数の積演算メモリセル１によって兼用されている。すなわち、１組のデータ線ＰＢＬ、ＮＢＬと１つの入力配線ＩＮＰ＿Ｌに、複数の積演算メモリセル１が接続され、選択信号によって複数の積演算メモリセル１から積演算メモリセルが選択され、選択された積演算メモリセルによってデータ線ＰＢＬ、ＮＢＬと入力配線ＩＮＰ＿Ｌが用いられる。
【００５３】
図６は、実施の形態４に係わる半導体装置の構成を示す回路図である。半導体装置１００は、データ線ＰＢＬ、ＮＢＬに接続された複数の積演算メモリセルを備えている。図６では、データ線ＰＢＬ、ＮＢＬに接続された２つの積演算メモリセル１＿０、１＿１が例示されている。積演算メモリセル１＿０と１＿１の構成は同じであるため、図６には、積演算メモリセル１＿０についてのみ、詳しい構成が示されている。
【００５４】
積演算メモリセル１＿０は、図２に示した積演算メモリセル１と類似している。相異点は、選択用にＮ型ＦＥＴＮ８およびＮ９が追加され、このＮ型ＦＥＴＮ８およびＮ９に選択信号としてカラムアドレスＹＡ０が供給されている点である。Ｎ型ＦＥＴＮ８のソース・ドレイン経路が、Ｎ型ＦＥＴＮ５とデータ線ＰＢＬとの間に接続され、Ｎ型ＦＥＴＮ９のソース・ドレイン経路が、Ｎ型ＦＥＴＮ６とデータ線ＮＢＬとの間に接続されている。これらの選択用Ｎ型ＦＥＴＮ８、Ｎ９のゲート電極には、カラムアドレスＹＡ０が、共通に供給されている。これにより、カラムアドレスＹＡ０をハイレベルにすることによって、積演算メモリセル１＿０が選択されたときには、Ｎ型ＦＥＴＮ５、Ｎ６が、データ線ＰＢＬ、ＮＢＬに接続され、積演算が実行される。すなわち、積演算メモリセル１＿０に格納されている論理値と入力データＩＮＰの論理値との間で積演算が実行され、積演算の結果と、データ線ＰＢＬ、ＮＢＬにおける論理値との間で和演算が実行される。なお、このとき、カラムアドレスＹＡ１はロウレベルにしておくことで、積演算メモリセル１＿１は選択されないようにする。
【００５５】
カラムアドレスＹＡ１によって積演算メモリセル１＿１が選択された場合には、積演算メモリセル１＿１に格納されている論理値と入力データＩＮＰの論理値との間で積演算が実行され、積演算の結果と、データ線ＰＢＬ、ＮＢＬにおける論理値との間で和演算が実行されることになる。
【００５６】
なお、実施の形態４では、積演算メモリセル１＿０と１＿１は、異なる相補データ線ＢＢ０、ＢＴ０、ＢＢ１、ＢＴ１に接続されている。そのため、ワード線ＮＷＬ、ＰＷＬが、積演算メモリセル１＿０と１＿１に対して共通になっていても、積演算メモリセル１＿０と１＿１には、互いに異なる３値の論理値を書き込むことが可能である。勿論、積演算メモリセル１＿０と１＿１とに対して、相補データ線を共通にし、ワード線が異なるようにしてもよい。また、実施の形態４では、積演算メモリセル１＿０と１＿１に対して、入力データＩＮＰを供給する入力配線ＩＮＰ＿Ｌが共通になっているが、勿論別々の入力配線を用いるようにしてもよい。
【００５７】
図６においては、カラムアドレスＹＡ０、ＹＡ１が積演算メモリセル１＿０、１＿１に供給されるようにしたことで、積演算メモリセル１によって構成されるアドレス空間を広げることが可能である。これにより、例えば、積和演算を実行する複数のデータを、予め積演算メモリセル１＿０、１＿１に格納しておき、カラムアドレスによって、積和演算を実行するデータを選択することができる。
【００５８】
＜変形例＞
変形例においては、カラムアドレスＹＡ０と、ＹＡ１とが同時にハイレベルにされる。これにより、積演算メモリセル１＿０において積演算された結果と、積演算メモリセル１＿１において積演算された結果と、データ線ＰＢＬ、ＮＢＬにおけるデータとの間で和演算を実行することが可能となる。積演算メモリセル１＿０と１＿１とを組み合わせることによって、１つの組み合わせ積演算メモリセルが構成されていると見なすと、１つの組み合わせ積演算メモリセルには、“＋１”、“０”、“−１”の３値ではなく、“＋２”、“＋１”、“０”、“−１”、“＋２”のような３値を超える５値を格納することが可能であり、５値の論理値と入力データＩＮＰとの間で積演算を実行することが可能である。２つの積演算メモリセルを組み合わせる例を示したが、組み合わせる積演算メモリセルの数を増やすことにより、より多値のデータを組み合わせ積演算メモリセルに格納することが可能である。
【００５９】
図７は、実施の形態４に係わる半導体装置のレイアウトを示す平面図である。図７には、図５と同様に、フィンＦＥＴによって、図６に示した積演算メモリセル１＿０を形成したときのレイアウトが示されている。ここで、図７（Ａ）は、図５（Ａ）と類似しており、相異点は、カラムアドレスＹＡを供給する配線と、選択用のＮ型ＦＥＴＮ８、Ｎ９とが追加されていることである。また、図７（Ｂ）には、図５（Ｂ）と同様に、第２層目の金属配線層Ｍ２によって形成された金属配線が、太い二点鎖線によって囲まれた領域として示されている。
【００６０】
図８は、実施の形態４に係わる半導体装置の断面を示す断面図である。すなわち、図８（Ａ）は、図７（Ａ）および（Ｂ）におけるＡ−Ａ’断面を示し、図８（Ｂ）は、図７（Ａ）および（Ｂ）におけるＢ−Ｂ’断面を示し、図８（Ｃ）は、図７（Ａ）および（Ｂ）におけるＣ−Ｃ’断面を示し、図８（Ｄ）は、図７（Ａ）および（Ｂ）におけるＤ−Ｄ’断面を示している。図８（Ａ）〜（Ｃ）に示すように、第２層目の金属配線層Ｍ２で形成された金属配線は、第１層目の金属配線層Ｍ１で形成された金属配線と重なるように配置され、電気的に接続されている。これにより、金属配線の低抵抗化が図られている。
【００６１】
第２層目以上の金属配線層は、図４（Ｂ）〜（Ｄ）に示したのと同様にすることで、微細化に伴う金属配線の高抵抗化を抑制することが可能である。この場合も、データ線ＮＢＬ、ＰＢＬおよび電圧配線ＣＶＳＳは、例えば図４（Ｃ）に示すように、３層目以上の金属配線層によって形成する。なお、図８では、層間、例えば金属配線層Ｍ１とＭ２間の絶縁膜は省略されている。
【００６２】
実施の形態４によれば、積演算メモリセルによって構成されるメモリのアドレス空間を広げて、メモリ容量を増大させることができる。また、積演算メモリセルに格納されるデータをさらに多値化することが可能であり、学習、推論の精度を向上させることができる。さらに、ユーザーは、カラムアドレスを操作することにより、メモリの大容量化と精度向上とを選択することが可能であり、自由度を高くすることが可能である。
【００６３】
（実施の形態５）
積演算メモリセルには、入力データＩＮＰに対して掛けるデータが格納される。実施の形態５においては、この掛けるデータの多値化を効率的に行うことが可能な積演算メモリセルが、提供される。
【００６４】
実施の形態４で述べた積演算メモリセルでは、メモリ容量の増加とデータの多値化をフレキシブルに変更することが可能である。しかしながら、多値化だけを行う場合を考えると、積演算メモリセルを構成するＦＥＴの数が増加する。例えば、実施の形態４において１つの組み合わせ積演算メモリセルに、“＋７”〜“−７”の１５値のデータを格納させる場合、図６に示したようにメモリセル２および３のそれぞれを構成するのに６個のＦＥＴを必要とする。また、選択および積和機能を実現するために、スイッチを構成するＦＥＴと選択用のＦＥＴも必要とされる。そのため、１つの積演算メモリセルを構成するのに、メモリセル用の１２個のＦＥＴと選択・積和機能用のＦＥＴとが必要とされる。１５値のデータを格納するためには、７つの積演算メモリセルによって、１つの組み合わせ積演算メモリセルを構成することになる。そのため、１つの組み合わせ積演算メモリセルは、ＦＥＴとして、（２個のメモリセル（１２個のＦＥＴ）＋選択・積和機能用のＦＥＴ）×７のＦＥＴを必要することになる。
【００６５】
図９は、実施の形態５に係わる積演算メモリセルの構成を示す回路図である。積演算メモリセル２０は、４つのメモリセル２１＿０〜２１＿３と、１２個のＮ型ＦＥＴＮ１０＿１〜Ｎ１０＿３、Ｎ１１＿１〜Ｎ１１＿３、Ｎ１２＿１〜Ｎ１２＿３、Ｎ１３＿１〜Ｎ１３＿３とを備えている。メモリセル２１＿０〜２１＿３は、例えば図２に示したメモリセル２と同じ構成を有している。そのため、メモリセル２１＿０〜２１＿３のそれぞれは、６個のＦＥＴによって構成されている。
【００６６】
Ｎ型ＦＥＴ（第２スイッチ）Ｎ１０＿１〜Ｎ１０＿３のゲート電極は、メモリセル２１＿０の一方の出力に接続され、Ｎ型ＦＥＴ（第２スイッチ）Ｎ１１＿１〜Ｎ１１＿３のゲート電極は、メモリセル２１＿０の他方の出力に接続されている。ここで、メモリセル２１＿１の一方の出力は、図２に示したＮ型ＦＥＴＮ１とＰ型ＦＥＴＰ１との間を接続するノードが該当し、他方の出力は、図２に示したノードｎ２が相当する。
【００６７】
Ｎ型ＦＥＴＮ１０＿１のソース・ドレイン経路と、Ｎ型ＦＥＴＮ１１＿１のソース・ドレイン経路は、データ線ＰＢＬとＮＢＬとの間で直列接続されている。また、Ｎ型ＦＥＴＮ１０＿１とＮ１１＿１とを接続するノードと、電圧配線ＣＶＳＳとの間には、Ｎ型ＦＥＴ（第１スイッチ）Ｎ１２＿１のソース・ドレイン経路とＮ型ＦＥＴＮ１３＿１のソース・ドレイン経路が直列的に接続されている。Ｎ型ＦＥＴ（第３スイッチ）Ｎ１３＿１のゲート電極には、入力データＩＮＰが供給され、Ｎ型ＦＥＴＮ１２＿１のゲート電極は、メモリセル２１＿１のノードｎ２（図２参照）が接続されている。Ｎ型ＦＥＴＮ１０＿２、Ｎ１１＿２、Ｎ１２＿２、Ｎ１３＿２およびメモリセル２１＿２も、前記したＮ型ＦＥＴＮ１０＿１、Ｎ１１＿１、Ｎ１２＿１、Ｎ１３＿１およびメモリセル２１＿１と同様に接続されている。また、Ｎ型ＦＥＴＮ１０＿３、Ｎ１１＿３、Ｎ１２＿３、Ｎ１３＿３およびメモリセル２１＿３も、前記したＮ型ＦＥＴＮ１０＿１、Ｎ１１＿１、Ｎ１２＿１、Ｎ１３＿１およびメモリセル２１＿１と同様に接続されている。
【００６８】
メモリセル（第２メモリセル）２１＿０には、積演算メモリセル２０に格納する多値のデータの正負を示す符号ビットが格納される。また、メモリセル（第１メモリセル）２１＿１〜２１＿３には、格納する多値のデータの絶対値を示すビットが格納される。実施の形態５においては、多値のデータは、“１”、“２”、“４”に重み付けされたビットによって表され、重み“１”を表すビットが、メモリセル２１＿１に格納され、重み“２”を表すビットが、メモリセル２１＿２に格納され、重み“４”を表すビットが、メモリセル２１＿３に格納される。
【００６９】
Ｎ型ＦＥＴＮ１０＿１〜Ｎ１０＿３、Ｎ１１＿１〜Ｎ１１＿３、Ｎ１２＿１〜Ｎ１２＿３、Ｎ１３＿１〜Ｎ１３＿３は、対応するメモリセルに格納される重みに応じた電流を流すことが可能なように設定されている。例えば、メモリセル２１＿１に対応するＮ型ＦＥＴＮ１０＿１、Ｎ１１＿１、Ｎ１２＿１、Ｎ１３＿１のサイズを基準サイズとした場合、メモリセル２１＿２に対応するＮ型ＦＥＴＮ１０＿２、Ｎ１１＿２、Ｎ１２＿２、Ｎ１３＿２のサイズは、基準サイズの２倍に設定される。また、メモリセル２１＿３に対応するＮ型ＦＥＴＮ１０＿３、Ｎ１１＿３、Ｎ１２＿３、Ｎ１３＿３のサイズは、基準サイズの４倍に設定される。
【００７０】
例えば、入力データＩＮＰがハイレベルの論理値“１”で、メモリセル２１＿２および２１＿３からロウレベルの論理値“０”が出力され、メモリセル２１＿１からハイレベルの論理値“１”が出力されている場合、Ｎ型ＦＥＴＮ１２＿１、Ｎ１３＿１がオン状態となり、これらのＮ型ＦＥＴを、“１”を表す基準電流が流れることになる。このとき、メモリセル２１＿０に格納されている符号ビットによって、Ｎ型ＦＥＴＮ１０＿１〜Ｎ１０＿３またはＮ１１＿１〜Ｎ１１＿３がオン状態となる。その結果、データ線ＰＢＬまたはＮＢＬから、電圧配線ＣＶＳＳに向かって基準電流が流れることになる。
【００７１】
同様に、例えば入力データＩＮＰがハイレベルの論理値“１”で、メモリセル２１＿２および２１＿３からハイレベルの論理値“１”が出力され、メモリセル２１＿１からロウレベルの論理値“０”が出力されている場合、Ｎ型ＦＥＴＮ１２＿２、１３＿２、Ｎ１２＿３、Ｎ１３＿３がオン状態となる。このときの符号ビットによって、Ｎ型ＦＥＴＮ１０＿１〜Ｎ１０＿３またはＮ１１＿１〜Ｎ１１＿３がオン状態となる。その結果、データ線ＰＢＬまたはＮＢＬから、電圧配線ＣＶＳＳに向かって基準電流の６倍の電流が流れることになる。
【００７２】
このようにして、入力データＩＮＰと積演算メモリセル２０に格納されているデータとの積演算が実行され、積演算の実行結果に応じた電流が、データ線ＰＢＬまたはＮＢＬから、電圧配線ＣＶＳＳに向かって流れ、和演算を行うことが可能となる。
【００７３】
図９に示した積演算メモリセル２０は、４個のメモリセルと１２個のＮ型ＦＥＴによって構成することができる。それぞれのメモリセルは、６個のＦＥＴにより構成されるため、積演算メモリセル２０が必要とするＦＥＴの数は、４×６＋１２＝３６個となる。実施の形態４で必要とされるＦＥＴの数は、メモリセルを構成するＦＥＴの数を計算しただけでも、２×７×６＝８４となる。メモリセルを構成するＦＥＴの数だけを考えても、１４個のメモリセルを４個に低減することが可能である。
【００７４】
図９では省略しているが、メモリセル２１＿０〜２１＿３は、図２で説明したように、ワード線および相補データ線が接続されている。ワード線と相補データ線によって、メモリセル２１＿０〜２１＿３からメモリセルを選択し、選択したメモリセルに符号ビットまたは絶対値ビットを書き込む。図９の例では、絶対値ビットの数が３ビットであり、符号ビットの数が１ビットである。そのため、３ビットをデコードすることにより、“０”〜“７”を表し、符号ビットによって正負の符号を付けることにより、“＋７”〜“０”〜“−７”の１５値を表すことができる。
【００７５】
実施の形態５によれば、より多値のデータを、少ない数のＦＥＴによって構成された積演算メモリセルに格納することができるため、小面積化を図ることができる。
【００７６】
（実施の形態６）
図１０は、実施の形態６に係わる積演算メモリセルの構成を示す回路図である。実施の形態６では、和演算を電圧で実現する積演算メモリセルが提供される。図１０において、３０は積演算メモリセルを示している。積演算メモリセル３０は、２つのメモリセル２、３と、メモリセル２、３に対応したナンド回路３１、３２と、イネーブル信号ＥＮに基づいて制御されるスイッチ３４〜３７と、メモリセル２、３に対応した容量素子３８、３９とを備えている。
【００７７】
図１で説明したように、メモリセル２は、積演算メモリセル３０に論理値“＋１”を格納するのに用いられ、メモリセル３は、積演算メモリセル３０に論理値“−１”を格納するのに用いられる。ナンド回路３１には、メモリセル２の出力と入力データＩＮＰとが供給され、ナンド回路３１は、否定論理積を実行して出力する。同様に、ナンド回路３２には、メモリセル３の出力と入力データＩＮＰとが供給され、ナンド回路３２は、否定論理積を実行して出力する。
【００７８】
ナンド回路３１の出力は、スイッチ３５を介して容量素子３８の一方の電極に供給され、ナンド回路３２の出力は、スイッチ３７を介して容量素子３９の一方の電極に供給される。容量素子３８および３９の他方の電極には、接地電圧Ｖｓが供給される。また、容量素子３８の一方の電極は、スイッチ３４を介してデータ線ＰＢＬに接続され、容量素子３９の一方の電極は、スイッチ３６を介してデータ線ＮＢＬに接続されている。
【００７９】
スイッチ３５と３７は、イネーブル信号ＥＮによって、オン状態またはオフ状態に制御される。スイッチ３４と３６には、論理反転されたイネーブル信号／ＥＮが供給されている。図１０では、インバータ回路３３が、イネーブル信号ＥＮを論理反転して、イネーブル信号／ＥＮを出力している。このインバータ回路３３は、積演算メモリセル３０に設けてもよいし、複数の積演算メモリセル３０に対して、共通に設けるようにしてもよい。
【００８０】
図１０に示した積演算メモリセル３０においては、イネーブル信号ＥＮがロウレベルの論理値“０”のときに、ナンド回路３１、３２において実施された否定論理積の結果が、対応する容量素子３８、３９に蓄えられる。蓄えられた結果とデータ線ＰＢＬ、ＮＢＬにおけるデータとの和演算が、イネーブル信号ＥＮがハイレベルの論理値“１”のときに、実行される。以下、具体的に説明する。
【００８１】
イネーブル信号ＥＮがロウレベルのとき、スイッチ３５および３７には、ハイレベルのイネーブル信号／ＥＮが供給されているため、スイッチ３５および３７はオン状態となる。これにより、ナンド回路３１、３２の出力は、電気的に容量素子３８、３９の一方の電極に接続される。このとき、スイッチ３４、３６は、ロウレベルのイネーブル信号ＥＮによってオフ状態となっており、容量素子３８、３９の一方の電極とデータ線ＰＢＬ、ＮＢＬとは電気的に分離されている。これにより、容量素子３８は、対応するメモリセル２に格納されている論理値と入力データＩＮＰの論理値との間の否定論理積の結果に従って充電される。同様に、容量素子３９は、対応するメモリセル３に格納されている論理値と入力データＩＮＰの論理値との間の否定論理積の結果に従って充電される。
【００８２】
次に、イネーブル信号ＥＮがハイレベルとなることにより、スイッチ３５および３７はオフ状態となり、スイッチ３４および３６は、データ線ＰＢＬ、ＮＢＬと容量素子３８、３９の一方の電極とを電気的に接続するようにオン状態となる。容量素子３８が、データ線ＰＢＬに接続されることにより、データ線ＰＢＬの寄生容量等と容量素子３８との間で電荷分散が行われ、データ線ＰＢＬの電圧が決定される。同様に、データ線ＮＢＬの電圧は、容量素子３９とデータ線ＮＢＬの寄生容量等との間で行われる電荷分散によって決定される。
【００８３】
次に、積演算メモリセル３０における積演算の結果が、“０”、“＋１”および“−１”になる場合について説明する。
【００８４】
積演算の結果が“０”になるのは入力データＩＮＰが”０”、または、メモリセル２、３の両方の格納データが”０”の時である。このときには、ナンド回路３１、３２の出力が電源電圧Ｖｄのようなハイレベルとなるため、スイッチ３５、３７を介して、容量素子３８、３９は、電源電圧Ｖｄがチャージされる。半導体装置内で、例えば積和命令が発行されることによりイネーブル信号ＥＮが、ロウレベルからハイレベルに変化する。これにより、容量素子３８、３９が、データ線ＰＢＬ、ＮＢＬに接続される。
【００８５】
一方、積演算の結果が“＋１”のときは、メモリセル２に対応する容量素子３８が、接地電圧Ｖｓのようなロウレベルにディスチャージされる。また、積演算の結果が“−１”のときは、メモリセル３に対応する容量素子３９が、ロウレベルにディスチャージされる。イネ−ブル信号ＥＮがハイレベルへ変化するのを受けて容量素子３８、３９はデータ線ＰＢＬ、ＮＢにそれぞれ接続される。
【００８６】
データ線ＰＢＬ、ＮＢＬには、複数の積演算メモリセルが接続されている。そのため、データ線ＰＢＬ、ＮＢＬに接続された電源電圧Ｖｄにチャージされている容量素子の個数と、接地電圧Ｖｓにディスチャージされている容量素子の個数の差が、積和結果となる。具体的にはデータ線ＰＢＬとＮＢＬとの電圧差が、積和結果となる。
【００８７】
実施の形態６では、容量素子を用いて和演算が実行されるため、ＦＥＴの電流バラツキ等による影響を低減することが可能である。
【００８８】
（実施の形態７）
図１１は、実施の形態７に係わる半導体装置の構成を示すブロック図である。半導体装置の例としては、大量の積和演算を実行するマイコンが挙げられる。マイコンは、複数の回路ブロックを含んでいるが、図１１には、説明に必要な回路ブロックのみが示されている。図１１において、４０は、半導体装置に形成された積和演算機能付きメモリマクロ（以下、メモリマクロと称する）を示している。
【００８９】
メモリマクロ４０は、実施の形態１〜６で説明した積演算メモリセルがマトリクス状に配置されたメモリアレイ４１と、Ａ／Ｄ変換部４２と、入力データをラッチし、駆動するＩＮＰラッチ（入力データ保持回路）＆ドライバ４８と、主にＡ／Ｄ変換部４２およびＩＮＰラッチ＆ドライバ４８を制御するＭＡＣ制御部４３とを備えている。また、メモリマクロ４０は、ロウデコーダ＆ワードドライバ４４と、データライト／センス部４５と、入出力ラッチ回路部４６と、リード／ライト制御部４７とを備えている。リード／ライト制御部４７は、主にロウデコーダ＆ワードドライバ４４、データライト／センス部４５および入出力ラッチ回路部４６を制御するが、メモリマクロ４０の全体的な制御も行う。
【００９０】
メモリアレイ４１は、複数のメモリセル列４１＿０〜４１＿ｎによって構成されている。また、Ａ／Ｄ変換部４２は、複数のＡ／Ｄ変換回路４２＿０〜４２＿ｎによって構成されている。同様に、データライト／センス部４５も、複数のデータライト／センス単位回路４５＿０〜４５＿ｎによって構成され、入出力ラッチ回路部４６も、複数の入出力ラッチ単位回路４６＿０〜４６＿ｎによって構成されている。
【００９１】
メモリセル列４１＿０〜４１＿ｎと、Ａ／Ｄ変換回路４２＿０〜４２＿ｎと、データライト／センス単位回路４５＿０〜４５＿ｎと、入出力ラッチ単位回路４６＿０〜４６＿ｎとは、一対一に対応している。例えば、メモリセル列４１＿０と、Ａ／Ｄ変換回路４２＿０と、データライト／センス単位回路４５＿０と、入出力ラッチ単位回路４６＿０とが、一対一に対応している。
【００９２】
メモリセル列４１＿０は、例えば図２に示した相補データ線（第２データ線）ＢＢ、ＢＴと、データ線（第１データ線）ＰＢＬ、ＮＢＬと、相補データ線ＢＢ、ＢＴおよびデータ線ＰＢＬ、ＮＢＬに接続された複数の積演算メモリセル１を備えている。なお、相補データ線ＢＢ、ＢＴおよびデータ線ＰＢＬ、ＮＢＬは、図１１において符号４９＿Ｈで示す方向に延在している。メモリセル列４１＿０に対応するＡ／Ｄ変換回路４２＿０は、対応するメモリセル列４１＿０に設けられているデータ線ＰＢＬ、ＮＢＬ間の電流量の差をデジタル信号に変換し、積和演算の結果を、ＭＱ出力データＭＱ［０］として出力する。
【００９３】
入出力ラッチ単位回路４６＿０には、対応するメモリセル列４１＿０に配置されている積演算メモリセル１に格納される入力データが、入力データＤ［０］として供給される。入出力ラッチ単位回路４６＿０は、供給された入力データＤ［０］をラッチし、対応するデータライト／センス単位回路４５＿０を介して、対応するメモリセル列４１＿０に設けられている相補データ線ＢＢ、ＢＴに供給して、入力データＤ［０］を、積演算メモリセル１に書き込む。また、特に制限されないが、入出力ラッチ回路４６＿０は、データライト／センス単位回路４５＿０を介して、メモリセル列４１＿０に設けられている相補データ線ＢＢ、ＢＴを用いて、積演算メモリセル１に書き込まれているデータをラッチ、出力データＱ［０］として出力する。
【００９４】
メモリセル列４１＿０と、これに対応するＡ／Ｄ変換回路４２＿０、データライト／センス単位回路４５＿０および入出力ラッチ単位回路４６＿０を例にして説明したが、残りのメモリセル列４１＿１〜４１＿ｎと、これに対応するＡ／Ｄ変換回路４２＿１〜４２＿ｎ、データライト／センス単位回路４５＿１〜４５＿ｎおよび入出力ラッチ単位回路４６＿１〜４６＿ｎも同様である。
【００９５】
図１１において、ＢＷＭ［０］〜ＢＷＭ［ｎ］は、入出力ラッチ単位回路の単位で、入力データの書き込みをマスクするビットライトイネーブル信号である。例えば、入力データＤ［０］〜Ｄ［ｎ］が、時間的に並列に入出力ラッチ回路部４６に供給されているときに、ビットライトイネーブル信号ＢＷＭ［０］をディセーブルにする。これにより、入出力ラッチ単位回路４６＿０は、供給されている入力データＤ［０］の書き込みを行わないように動作する。
【００９６】
また、図１１において、ＭＥＭ［０］〜ＭＥＭ［ｎ］は、Ａ／Ｄ変換回路単位で、積和演算をマスクする積和演算マスク信号である。例えば、積和演算マスク信号ＭＥＭ［０］をディセーブルにすることにより、メモリセル列４１＿０で積和演算が行われないように設定される。
【００９７】
メモリアレイ４１には、図２に示したようなワード線ＮＷＬ、ＰＷＬが、複数配置されている。例えば、複数のワード線は、図１１において符号４９＿Ｖの方向に延在し、方向４９＿Ｈで示される方向に配列されている。ロウデコーダ＆ワードドライバ４４は、複数のワード線に接続されており、複数の積演算メモリセルに入力データＤ［０］〜Ｄ［ｎ］を書き込むときと、読み出すときに、複数のワード線からワード線を選択し、選択したワード線にハイレベルを供給する。この場合、ロウデコーダ＆ワードドライバ４４は、積演算メモリに接続されている２つのワード線ＮＷＬ、ＰＷＬ（図２）を１つの組として選択する。選択されたワード線に接続されている積演算メモリに対して、前記した入力データの書き込みと読み出しが行われることになる。
【００９８】
メモリセルアレイ４１には、入力データＩＮＰ（図２）を供給する入力配線が、複数配置されている。入力配線は、図１１において、方向４９＿Ｖの方向に延在し、方向４９＿Ｈの方向に配列されている。ＩＮＰラッチ＆ドライバ４８は、複数の入力配線に接続されている。ＩＮＰラッチ＆ドライバ４８には、乗算される入力データＩＤ［０］〜ＩＤ［ｍ］が供給される。ＩＮＰラッチ＆ドライバ４８は、供給された入力データＩＤ［０］〜ＩＤ［ｍ］をラッチし、入力データＩＮＰとして、入力配線に供給する。
これにより、入力データＩＤ［０］〜ＩＤ［ｍ］に対応した入力データＩＮＰが、メモリセル列４１＿０〜４１＿ｎのそれぞれに配置されている複数の積演算メモリセルに供給される。それぞれの演算メモリセルにおいては、格納されているデータと、入力データＩＮＰとの積演算が行われ、メモリセル列ごとに、積演算の結果の和演算が実行されて、ＭＱ出力データＭＱ［０］〜ＭＱ［ｎ］として出力される。
【００９９】
実施の形態７によれば、メモリセル列ごとに、Ａ／Ｄ変換回路が設けられているため、同時に複数の積和演算を実施することが可能であり、積和演算の高速化を図ることが可能である。
【０１００】
（実施の形態８）
実施の形態８では、入力データＩＮＰが多値化された半導体装置が提供される。例えば実施の形態５では、積演算メモリセルに格納される数（データ）を多値化する構成を説明した。これに対して、実施の形態８では、積演算メモリセルに格納されている数に対して掛けられる数を多値化する構成を説明する。
【０１０１】
図１２は、実施の形態８に係わる半導体装置を説明するための図である。ここで、図１２（Ａ）は、実施の形態７に係わる半導体装置５０の構成を示すブロック図であり、図１２（Ｂ）は、図１２（Ａ）に示した半導体装置５０の動作を説明するための特性図である。
【０１０２】
図１２（Ａ）は、図１１と類似しているので、相異点を主に説明する。図１１に対して、図１２においては、ＩＮＰラッチ＆ドライバ４８が変更されている。すなわち、図１１に示したＩＮＰラッチ＆ドライバ４８は、ＩＮＰラッチ回路４８＿１と、Ｄ／Ａ変換回路４８＿２と、ＩＮＰドライバ回路４８＿３に変更されている。
【０１０３】
半導体装置５０に供給される入力データＩＤ［０］〜ＩＤ［ｍ］は、多値化されたデジタル信号である。ＩＮＰラッチ回路４８＿１は、入力データＩＤ［０］〜ＩＤ［ｍ］をラッチし、Ｄ／Ａ変換回路４８＿２に供給する。Ｄ／Ａ変換回路４８＿２は、供給された入力データＩＤ［０］〜ＩＤ［ｍ］のそれぞれを、対応するアナログ値に変換して、ＩＮＰドライバ回路４８＿３へ出力する。ＩＮＰドライバ回路４８＿３は、供給された入力データＩＤ［０］〜ＩＤ［ｍ］に対応するアナログ値を、入力データＩＮＰ（図２）として、メモリセルアレイ４１に配置されている入力配線に供給する。
【０１０４】
入力配線を介して、アナログ値の入力データＩＮＰが供給された積演算メモリセルは、格納されているデータと供給されたアナログ値との間で、積演算を実行する。図２に示した積演算メモリセル１を例にして述べると、格納されているデータが、論理値“＋１”または“−１”の場合、Ｎ型ＦＥＴＮ５またはＮ６を介して、供給されたアナログ値に従った電流が、データ線ＰＢＬまたはＮＢＬから電圧配線ＣＶＳＳへ流れる。すなわち、積演算メモリセル１において、電流型の積演算が実行され、データ線ＰＢＬまたはＮＢＬにおいて電流型の和演算が実行されることになる。
【０１０５】
図１２（Ｂ）は、積演算メモリセルに供給される入力データとデータ線ＰＢＬ、ＮＢＬから積演算メモリセルへ流れる電流との関係を示す特性図である。例えば図２に示すように、入力データは、Ｎ型ＦＥＴＮ７のゲート電極に供給され、このＮ型ＦＥＴＮ７を流れるドレイン電流に応じた電流が、データ線ＰＢＬから電圧配線ＣＶＳＳに流れることになる。ＦＥＴＮ７を流れるドレイン電流は非線形であるため、図１２（Ｂ）に示すように、電圧に対して電流は非線形となる。
【０１０６】
実施の形態８においては、データ線ＰＢＬ、ＮＢＬから積演算メモリセルに流れる電流が、入力データＩＤ［０］〜ＩＤ［ｍ］によって表される電圧値に対して線形になるように、入力配線に供給されるアナログ値が調整される。この調整は、例えばＤ／Ａ変換回路４８＿２における変換特性を調整するようにしてもよいし、Ｄ／Ａ変換回路４８＿２から出力されたアナログ値をＩＮＰドライバ回路４８＿３において調整するようにしてもよい。これにより、積演算において、掛けられる数も多値化することが可能となる。
【０１０７】
実施の形態８によれば、積演算において掛けられる数も多値化をすることが可能となるため、学習、推論の精度をさらに向上させることが可能である。
【０１０８】
（実施の形態９）
実施の形態９では、実施の形態８で説明したメモリセル列およびメモリセル列に対応するＡ／Ｄ変換回路の一例を説明する。
【０１０９】
図１３および図１４は、実施の形態９に係わる半導体装置の構成を示す図である。図１３には、１つのメモリセル列とそれに関連する部分が示されている。具体的には、図８（Ａ）に示したメモリセル列４１＿０と、それに関連する部分が、図１３（Ａ）に例示されている。
【０１１０】
メモリセル列４１＿０は、データ線ＰＢＬ、ＮＢＬと、データ線ＰＢＬ、ＮＢＬのそれぞれに接続された複数の積演算メモリセルＴｂｃと、２種類のリファレンスセルＲ１、Ｒ０．５とを備えている。図１３の例では、リファレンスセルＲ１として、１２８個のリファレンスセルＲ１（０）〜Ｒ１（１２７）と、１個のリファレンスセルＲ０．５とが、メモリセル列４１＿０に設けられている。図１３において、ＡＬ［０］〜ＡＬ［１４７］は、メモリセル列４１＿０を横切るように配置された入力配線に供給される入力データを示している。
【０１１１】
積演算メモリセルＴｂｃとしては、図１４（Ａ）に示す積演算メモリセルが用いられている。図１４（Ａ）に示した積演算メモリセルの構成は、図６に示したものと同じであるため、説明は省略する。
【０１１２】
メモリセル列４１＿０において、同じ入力配線には４つの積演算メモリセルが接続されている。同じ入力配線に接続された４つの積演算メモリセルＴｂｃから１つの積演算メモリセルＴｂｃを選択するカラムアドレスが、図１４（Ａ）では、符号ＹＡとして示されている。４つの積演算メモリセルＴｂｃから１つの積演算メモリセルを選択するために、カラムアドレスＹＡは、４ビットＹＡ［０：３］によって構成されている。カラムアドレスＹＡによって選択された積演算メモリセルにおいて、入力配線を介して供給された入力データＡＬ［０］〜ＡＬ［１４７］が、選択された積演算メモリセルに格納されているデータと積演算される入力データＩＮＰとなる。
【０１１３】
図１４（Ｂ）には、リファレンスセルＲ１の構成が示されている。リファレンスセルＲ１は、積演算メモリセルＴｂｃと同様に、データ線ＰＢＬとＮＢＬとの間に、ソース・ドレイン経路が直列的に接続されたＮ型ＦＥＴＮ１４〜Ｎ１７と、Ｎ型ＦＥＴＮ１５とＮ１６との間を接続するノードと電圧配線ＣＶＳＳとの間に接続されたＮ型ＦＥＴＮ１８とを備えている。すなわち、リファレンスセルＲ１は、積演算メモリセルＴｂｃと類似した構造を有している。異なる点は、カラムアドレスＹＡの代わりに、電源電圧Ｖｄが、Ｎ型ＦＥＴＮ１４とＮ１７のゲート電極に供給され、メモリセル２、３の出力の代わりに選択信号ＲＮ、ＲＰが供給され、入力データＩＮＰの代わりに制御信号ＣＤが供給されていることである。リファレンスセルＲ１を、積演算メモリセルＴｂｃと類似した構造とすることにより、リファレンスセルＲ１は、データ線ＰＢＬ、ＮＢＬに対して、積演算メモリセルＴｂｃと同等（＝１）の駆動力を有するようにされている。
【０１１４】
図１４（Ｃ）には、リファレンスセルＲ０．５の構成が示されている。リファレンスセルＲ０．５は、リファレンスセルＲ１と類似した構成を有している。相異点は、リファレンスセルＲ０．５においては、Ｎ型ＦＥＴＮ１５とＮ１６との間を接続するノードと電圧配線ＣＶＳＳとの間に接続されたＮ型ＦＥＴが、Ｎ１８＿１〜Ｎ１８＿３に増えていることである。これにより、データ線ＰＢＬ、ＮＢＬに対する、リファレンスセルＲ０．５の駆動力は、リファレンスセルＲ１、言い換えるならば、積演算メモリセルＴｂｃの駆動力の半分（＝０．５）となっている。
【０１１５】
図１３に戻って、説明する。図１３において、６０は制御ロジック部を示し、６１は比較回路を示し、６２はシュミットトリガ型ナンド回路を示し、Ｎ１９はＮ型ＦＥＴを示している。データ線ＰＢＬ、ＮＢＬは、比較回路６１と、シュミットトリガ型ナンド回路６２とに接続されている。また、積演算メモリセルＴｂｃにおける電圧配線ＣＶＳＳ、リファレンスセルＲ１、Ｒ０．５における電圧配線ＣＶＳＳは、Ｎ型ＦＥＴＮ１９を介して接地電圧Ｖｓに接続されている。
【０１１６】
制御ロジック部６０には、比較回路６１からの比較結果ＯＵＴと、シュミットトリガ型ナンド回路６２からの制御信号ＰＳが供給される。また、制御ロジック部６０は、前記したカラムアドレスＹＡ［０：３］と、比較回路６１を制御する制御信号と、Ｎ型ＦＥＴＮ１９を制御する積和演算イネーブル信号ＭＡＣＥＢＦと、選択信号ＲＮ、ＲＰと、制御信号ＣＤを出力する。後で説明するが、制御ロジック部６０と比較回路６１とによって、Ａ／Ｄ変換の機能が提供される。すなわち、制御ロジック部６０と比較回路６１によって、Ａ／Ｄ変換回路が構成されていると見なすことができる。このＡ／Ｄ変換回路によって得られた結果が、積和演算の結果となり、ＭＱ出力データＭＱ［０］として出力される。
【０１１７】
各積演算メモリセルＴｂｃは、図２等でしたように３値のデータを格納している。すなわち、各積演算メモリセルＴｂｃは、“＋１”、“０”、“−１”のいずれかの論理値を格納している。また、入力データＩＮＰとしては、２値のデータが供給される。すなわち、“０”または“１”が入力データＩＮＰとして、積演算メモリセルＴｂｃに供給される。
【０１１８】
実施の形態９において、積和演算は、式（１）に示すように、論理値が“＋１”側の積和値と、論理値が“−１”側の積和値に分離して演算する。ここで、ＭＱは、積和演算の結果であるＭＱ出力データを示し、ＩＮＰ（ｉ）は、ｉ番目の入力データＩＮＰの論理値を示し、Ｔｂｃ（ｉ，ＹＡ）は、ｉ番目であってカラムアドレスがＹＡの積演算メモリセルに格納されている論理値を示している。さらにＴｂｃｐ（ｉ）は、論理値“＋１”を格納したｉ番目の積演算メモリセルを示し、Ｔｂｃｎ（ｉ）は、論理値“―１”を格納したｉ番目の積演算メモリセルを示している。
【０１１９】
【数１】
2020129582.tif 000003
【０１２０】
ここで、Ｔｂｃｐ（ｉ）は、式（２）で表され、Ｔｂｃｎは、式（３）で表される。
【０１２１】
【数２】
2020129582.tif 000004
【０１２２】
＜Ａ／Ｄ変換＞
次に一例を用いて、Ａ／Ｄ変換の動作を説明する。実施の形態９においては、８つのステップでＡ／Ｄ変換を行う。図１５は、実施の形態９に係わるＡ／Ｄ変換を説明するためのタイミング図である。図１５（Ａ）および（Ｂ）において横軸は時間を示している。また、１ｓｔ〜８ｔｈは、前記した８つのステップを示している。
【０１２３】
一例として、積和演算により、“＋１”側の積和値が「４６」で、“−１”側の積和値が「１７」の場合を説明する。すなわち、データ線ＰＢＬにおける電流が、積和値「４６」を示し、データ線ＮＢＬにおける電流が、積和値「１７」を示している。この場合、積和値の差分は、「２９」となる。この差分に対応したＭＱ出力データＭＱ［０］が、制御ロジック部６０から出力される。
【０１２４】
図１５（Ａ）において、第１ステップ１ｓｔのとき、比較回路６１は、データ線ＰＢＬとＮＢＬの電流を比較する。「４６」＞「１７」であるため、制御ロジック部６０は、符号“＋”を示す論理値“０”を、ＭＱ出力データとして出力する。また、データ線ＰＢＬの電流の方が大きいため、制御ロジック部６０は、選択信号ＲＰをハイレベルにし、選択信号ＲＮをロウレベルにする。さらに、制御ロジック部６０は、データ線ＰＢＬにリファレンスセルＲ０．５を接続し、データ線ＮＢＬに指定した個数のリファレンスセルを接続する。ここでの指定の個数は、１２８個あるリファレンスセルＲ１の半分の数である「６４」である。
【０１２５】
第２ステップ２ｎｄにおいて、制御ロジック部６０は、制御信号ＣＤによって、データ線ＰＢＬに接続されているリファレンスセルＲ０．５におけるＮ型ＦＥＴＮ１８＿１〜Ｎ１８＿３をオン状態にする。また、制御ロジック部６０は、制御信号ＣＤによって、データ線ＮＢＬに接続されている６４個のリファレンスセルＲ１におけるＮ型ＦＥＴＮ１８をオン状態にする。これにより、データ線ＰＢＬにおける値は、４６＋０．５＝４６．５となり、データ線ＮＢＬにおける値は、１７＋６４＝８１となる。比較回路６１は、この「４６．５」と「８１」とを比較する。比較の結果、データ線ＮＢＬの値が大きくなるため、制御ロジック部６０は、論理値“０”をＭＱ出力データＭＱ［０］として出力する。
【０１２６】
第３ステップ３ｒｄでは、制御ロジック部６０は、指定の個数として「６４」の半分の「３２」を指定し、制御信号ＣＤによって、Ｎ型ＦＥＴＮ１８、Ｎ１８＿１〜Ｎ１８＿３をオン状態にする。これにより、データ線ＰＢＬの値は、以前と同じ「４６．５」であるが、データ線ＮＢＬの値は、１７＋３２＝４９となる。比較回路６１による比較によって、データ線ＮＢＬの値が大きいと判定されるため、制御ロジック部６０は、論理値“０”をＭＱ出力データＭＱ［０］として出力する。
【０１２７】
第４ステップ４ｔｈでも、制御ロジック部６０は、第３ステップ３ｒｄと同様に、リファレンスセルＲ１の個数を指定して、制御信号ＣＤを出力する。ただし、第４ステップ４ｔｈでは、リファレンスセルＲ１の個数として、半分の「１６」を指定する。これにより、比較回路６１は、データ線ＰＢＬにおける値「４６．５」とデータ線ＮＢＬにおける値１７＋１６＝３３とを比較する。第４ステップ４ｔｈでは、データ線ＰＢＬの値が、データ線ＮＢＬの値よりも大きくなるため、制御ロジック部６０は、論理値”１”をＭＱ出力データＭＱ［０］として出力する。
【０１２８】
第５ステップ５ｔｈでは、制御ロジック部６０は、リファレンスセルＲ１の個数として「２４」を指定する。これにより、データ線ＮＢＬの値は、１７＋２４＝４１となり、比較回路６１の比較により、データ線ＰＢＬの値が、データ線ＮＢＬの値よりも大きいと判定されるため、制御ロジック部６０は、論理値”１”をＭＱ出力データＭＱ［０］として出力する。
【０１２９】
以降、第６ステップ６ｔｈ〜第８ステップ８ｔｈまで、リファレンスセルＲ１を指定する個数を、「２８」、「３０」、「２９」と変化させながら、データ線ＰＢＬとデータ線ＮＢＬが比較される。比較により、データ線ＰＢＬの値が、データ線ＮＢＬの値よりも大きいとき、制御ロジック部６０は、論理値”１”をＭＱ出力データＭＱ［０］として出力し、データ線ＮＢＬの値が、データ線ＰＢＬの値よりも大きいとき、制御ロジック部６０は、論理値”０”をＭＱ出力データＭＱ［０］として出力する。
【０１３０】
これにより、積和演算の結果が、シリアルな８ビットに変換される。なお、最初のビットは符号ビットであり、符号ビットに続いて、最上位ビットから最下位ビットに向けて、順次ビットが出力される。
【０１３１】
次に、符号ビットが“−”となる例を、図１５（Ｂ）を参照して説明する。ここでは、“＋１”側の積和値が「１７」、“−１”側の積和値が「４６」の場合、すなわちデータ線ＰＢＬにおける値が「１７」、データ線ＮＢＬにおける値が「４６」の場合を説明する。「１７」＜「４６」であるため、第１ステップ１ｓｔにおいて、制御ロジック部６０は、符号が“−”を表す論理値“１”をＭＱ出力データＭＱ［０］として出力する。また、データ線ＮＢＬの値が大きいため、選択信号ＲＰをロウレベルにし、選択信号ＲＮをハイレベルにする。さらに、データ線ＮＢＬに対して、リファレンスセルＲ０．５を接続し、データ線ＰＢＬに指定した個数のリファレンスセルＲ１を接続する。
【０１３２】
制御ロジック部６０は、第２ステップ２ｎｄ以降は、図１５（Ａ）と同様な動作を行うが、符号が“−”であるため、制御ロジック部６０は、反転した論理値をＭＱ出力データＭＱ［０］として出力する。すなわち、制御ロジック部６０は、データ線ＰＢＬの値が、データ線ＮＢＬの値よりも大きいとき、論理値“０”をＭＱ出力データＭＱ［０］として出力し、データ線ＮＢＬの値が、データ線ＰＢＬの値よりも大きいとき、論理値“１”をＭＱ出力データＭＱ［０］として出力する。これにより、図１５（Ｂ）に示すように、シリアルに変換されたデジタル信号が、ＭＱ出力データＭＱ［０］として出力される。
【０１３３】
このように、実施の形態９においては、二分法を用いて、データ線ＰＢＬとＮＢＬの差を探索し、結果がシリアルのデジタル信号に変換されて出力される。
【０１３４】
実施の形態９においては、図１５に示したＭＱ出力データＭＱ［０］のデータ長が、ユーザーの希望するデータ長になったところで、処理を終了させることが可能である。これにより、無駄なＡ／Ｄ変換に掛かる電力と時間を削減することが可能である。
【０１３５】
実施の形態９においては、さらに消費電力を低減するために、シュミットトリガ型ナンド回路６２が設けられている。シュミットトリガ型ナンド回路６２は、図１４（Ｄ）に示すような構成を有している。すなわち、シュミットトリガ型ナンド回路６２は、Ｐ型ＦＥＴＰ３〜Ｐ５とＮ型ＦＥＴＮ１８〜Ｎ２３によって構成されている。
【０１３６】
シュミットトリガ型ナンド回路６２は、“＋１”側の論理積が「０」で、“−１”側の論理積が「０」の場合を検出する回路として機能する。機械学習や推論においては、積和演算の結果として“＋１”側も“−１”側も積和値が「０」という状態が多々発生する。実施の形態９に係わる構成では、積和値が「０」の場合、データ線ＰＢＬ、ＮＢＬの電荷を接地電圧Ｖｓ側に引き抜くパスが発生しない。そのため、データ線ＰＢＬ、ＮＢＬの電圧は、電源電圧Ｖｄに維持されることになる。論理閾値を電源電圧Ｖｄ側に高くしたシュミットトリガ型ナンド回路６２を用いることにより、データ線ＰＢＬとＮＢＬの両方が、電源電圧Ｖｄレベルであることを検知することができる。検知した結果は、制御信号ＰＳによって、制御ロジック部６０に通知される。なお、シュミットトリガ型ナンド回路６２は、Ｎ型ＦＥＴＮ１９とともに、積和演算イネーブル信号ＭＡＣＥＢＦによって制御される。すなわち、Ｎ型ＦＥＴＮ１９がオン状態となるときに、シュミットトリガ型ナンド回路６２は、動作可能となるように制御される。
【０１３７】
データ線ＰＢＬとＮＢＬの両方が、電源電圧Ｖｄレベルであることが、制御信号ＰＳによって通知されると、制御ロジック部６０は、前記したＡ／Ｄ変換の動作を行わずに、論理値“０”をＭＱ出力データＭＱ［０］として出力する。これにより、消費電力をさらに低減することが可能である。
【０１３８】
実施の形態９においては、例えば、１４８個の入力データＡＬ［０］〜ＡＬ［１４７］が、実質的に同時に入力配線に供給される。これにより、メモリセル列４１＿０においては、１４８個の積演算が実質的に同時に実施され、１４８個の積演算の結果の和演算も、実質的に同時に実施されることになる。
【０１３９】
実施の形態９によれば、ユーザーが自由に、ＭＱ出力データＭＱ［０］のデータ長を変えることができるため、消費電力と性能のトレードオフに係わる調整の自由度が増すことが可能である。また、論理積が「０」となる場合には、Ａ／Ｄ変換の動作を行わず、ＭＱ出力データとして論理値“０”を出力するため、消費電力の低減を図ることが可能である。
【０１４０】
（実施の形態１０）
図１６および図１７は、実施の形態１０に係わる半導体装置の構成を示す図である。図１５（Ａ）は、図１３と類似しているので、主に相異点を説明する。図１６（Ａ）において、Ｐ型ＦＥＴＰ６およびＰ７は、データ線ＰＢＬ、ＮＢＬと電源電圧Ｖｄとの間に、そのソース・ドレイン経路が接続され、データ線ＰＢＬ、ＮＢＬをバイアスするバイアス回路を構成している。また、図１６（Ａ）においては、図１３に示した比較回路６１がバッファ回路６１として示されている。
【０１４１】
図１６（Ａ）および（Ｂ）に示すように、メモリセルには、データ線ＰＢＬ、ＮＢＬに、１４８行×４列＝５９２個の積演算メモリセルＴｂｃと、１２８個のリファレンスセルＲ１と、１個のリファレンスセルＲ０．５が接続されている。
【０１４２】
図１７は、実施の形態１０を説明するための図である。図１７（Ａ）には、コンパレータの構成が示されている。コンパレータは、一対のＮ型ＦＥＴと、負荷と、電流源とを備えている。一対のＮ型ＦＥＴが差動ＦＥＴを構成し、コンパレータは、差動ＦＥＴのゲート電極における電位差を増幅して、出力する。実施の形態１０においては、積演算メモリセルＴｂｃ、リファレンスセルＲ１、Ｒ０．５においてスイッチを構成するＦＥＴが、コンパレータの差動ＦＥＴとして用いられる。積演算メモリセルＴｂｃを例にして説明すると、図１７（Ａ）において破線で示すように、スイッチを構成するＮ型ＦＥＴＮ６、Ｎ７およびＮ９が、一対の差動ＦＥＴの一方のＦＥＴとして機能し、スイッチを構成するＮ型ＦＥＴＮ５、Ｎ７およびＮ８が、一対の差動ＦＥＴの他方のＦＥＴとして機能する。この場合、データ線ＰＢＬ、ＮＢＬに接続されたＰ型ＦＥＴＰ６、Ｐ７は、差動ＦＥＴへ電流を供給する電流供給部と見なすことができ、Ｎ型ＦＥＴＮ１９は、差動ＦＥＴに対するスイッチ回路と見なすことができる。実施の形態１０では、Ｐ型ＦＥＴＰ６、Ｐ７とＮ型ＦＥＴＮ１９とを備える回路を、ソーススイッチＳ−ＳＷと称する。
【０１４３】
積演算メモリセルを構成するＦＥＴの一部を、コンパレータを構成するＦＥＴとして機能させる例を説明したが、リファレンスセルＲ１、Ｒ０．５についても同様である。すなわち、リファレンスセルＲ１においては、Ｎ型ＦＥＴＮ１６〜Ｎ１８が、一方の差動ＦＥＴとして機能し、Ｎ型ＦＥＴＮ１４、Ｎ１５、１８が、他方の差動ＦＥＴとして機能する。また、リファレンスセルＲ０．５においては、Ｎ型ＦＥＴＮ１６、Ｎ１７、Ｎ１８＿１〜Ｎ１８＿３が、一方の差動ＦＥＴとして機能し、Ｎ型ＦＥＴＮ１４、Ｎ１５、１８＿１〜Ｎ１８＿３が、他方の差動ＦＥＴとして機能する。
【０１４４】
これにより、“＋１”側あるいは“−１”側の積和値が小さいときに、コンパレータによってデータ線ＰＢＬ、ＮＢＬの差電位を増幅することが可能となり、動作マージンを広げることが可能である。また、ソーススイッチＳ−ＳＷを、図１７（Ｂ）に示すように、分散して配置することにより、データ線ＰＢＬ、ＮＢＬおよび電圧配線ＣＶＳＳのデータ偏りによる誤動作を低減することが可能である。
【０１４５】
図１６（Ａ）に示すように、リファレンスセルＲ０．５は、制御信号ＣＤ０．５によって制御され、リファレンスセルＲ１は、７つの制御信号ＣＤ［０：６］によって制御される。この場合、制御信号ＣＤ［０］には、１個のリファレンスセルＲ１が接続され、制御信号ＣＤ［１］には、２個のリファレンスセルＲ１が接続され、制御信号ＣＤ［２］には、４個のリファレンスセルＲ１が接続される。また、制御信号ＣＤ［３］には、８個のリファレンスセルＲ１が接続され、制御信号ＣＤ［４］には、１６個のリファレンスセルＲ１が接続され、制御信号ＣＤ［５］には、３２個のリファレンスセルＲ１が接続され、制御信号ＣＤ［６］には、６４個のリファレンスセルＲ１が接続されている。すなわち、制御信号ＣＤ［０：６］は重み付けされている。
【０１４６】
また、図１７（Ｂ）では、積演算メモリセルＴｂｃによって構成されたＴｂｃアレイおよびリファレンスセルＲ１により構成されたＲ１アレイも分散されて配置されていると見なすこともできる。このように、分散配置することにより、ＴｂｃアレイおよびＲ１アレイにおいても、データの偏りによる誤動作を低減することが可能である。
【０１４７】
実施の形態１０によれば、“＋１”側、“−１”側の積和値が、小さいときに、データ線ＰＢＬ、ＮＢＬの差電位を増幅することが可能となり、動作マージンを広げることが可能である。また、ソーススイッチＳ−ＳＷ、Ｔｂｃアレイ、Ｒ１アレイを分散配置することにより、誤動作を低減することが可能である。
【０１４８】
（実施の形態１１）
実施の形態９では、ＭＱ出力データＭＱ［０］のデータ長を、ユーザーが任意に変えることができる例を示した。言い換えるならば、ユーザーが、任意に、ＭＱ出力データＭＱ［０］のデータ長を圧縮する例を、実施の形態９として説明した。実施の形態１１においては、他のデータ圧縮を、ユーザーが選択することが可能な構成が提供される。
【０１４９】
図１８は、実施の形態１１に係わるＡ／Ｄ変換を説明するための図である。
【０１５０】
実施の形態９での説明と同様に、Ａ／Ｄ変換回路は８ビットに変換するものとして説明する。最大分解能のデータ長が８ビットの場合、積和演算の結果の値と、ＭＱ出力データＭＱ［０］で表される出力値は、図１８（Ａ）に示すように、一対一に対応する。
【０１５１】
これに対して、実施の形態９で説明したように、Ａ／Ｄ変換の動作を途中で止めた場合、例えば６サイクル（＝図１５の第６ステップ：６ｔｈに相当）で止めた場合、６ビットの出力値で表される値は、“−３１”〜“＋３１”の範囲となる。このときの状態が、図１８（Ｂ）に示されている。図１８（Ｂ）において、破線は、最大分解能の場合を示しており、６サイクルで止めた場合には、実線で示すように、最大分解能で表される真の値を１／４に圧縮した状態となる。すなわち、Ａ／Ｄ変換回路の特性は、真の値に対して１／４に圧縮した状態を出力する関数で表わされることになる。
【０１５２】
しかしながら、用途によっては、所定の値までは、真の値に等しい値が出力されるような関数がＡ／Ｄ変換として望まれる場合がある。例えば、６サイクルを指定したときに、図１８（Ｃ）に示すように、“−３１”〜“＋３１”の範囲が、真の値と等しくなり、範囲外では一定となるような関数が望まれる場合がある。
【０１５３】
出力値が“＋３８”の場合を例にして、図１８（Ｂ）の場合と図１８（Ｃ）の場合を示すと、図１８（Ｄ）に示すようになる。図１８（Ｄ）おいて、条件１は７ビット目まで、真の値を示すように指定した場合を示し、条件２は図１８（Ｂ）のような圧縮を指定した場合を示している。条件１では、７ビット目まで真の値となるのに対して、条件２では、７ビット目が真の値に対して１／２の値となっている点が異なる。これらは用途によって変わるため、どちらかを選択できるようにすることが必要となる。
【０１５４】
図１９は、実施の形態１１に係わる半導体装置の構成を示す回路図である。図１９には、１組のデータ線ＰＢＬ、ＮＢＬに係わる部分の回路が示されている。また、図２０は、実施の形態１１に係わる半導体装置のタイミング図である。ここで、図２０（Ａ）は、データ長を８ビットに指定した場合を示し、図２０（Ｂ）は、データ長を７ビットとし、図１８（Ｃ）に示すような変換を指定した場合を示している。
【０１５５】
１組のデータ線ＰＢＬ、ＮＢＬには、Ｐ型ＦＥＴＰ３０〜Ｐ３２によって構成されたプリチャージ回路が接続されている。また、データ線ＰＢＬ、ＮＢＬは、一対の転送スイッチを介して差動センスアンプに接続されている。一対の転送スイッチは、差動センスアンプ活性化信号ＭＡＣＳＡＦＢによって制御されるＮ型ＦＥＴＮ３０、Ｎ３４とＰ型ＦＥＴＰ３６、Ｐ３７とによって構成されている。また、差動センスアンプは、Ｎ型ＦＥＴＮ３１〜Ｎ３３とＰ型ＦＥＴＰ３３〜Ｐ３３によって構成され、差動アンプ活性化信号ＭＡＣＳＡＥＢによってＰ型ＦＥＴＰ３３とＮ型ＦＥＴＮ３３がオン状態となることにより、一対の転送スイッチを介して供給されたデータ線ＰＢＬ、ＮＢＬ間の電位差を増幅し、ラッチする。なお、データ線ＰＢＬ、ＮＢＬには、実施の形態１０で説明したコンパレータにより増幅された電位差が供給される。
【０１５６】
差動センスアンプの出力は、ナンド回路ＮＤ３０、ＮＤ３１、インバータ回路ＩＶ３０〜ＩＶ３２、Ｐ型ＦＥＴ３８〜Ｐ４１、Ｎ型ＦＥＴＮ３５〜Ｎ３８によって構成された切り替えセレクタに供給されている。ナンド回路ＮＤ３０、ＮＤ３１に供給されている制御信号ＢＬＳＥＬがハイレベルかロウレベルかにより、ナンド回路ＮＤ３０またはＮＤ３１の出力がロウレベルになる。例えば、ナンド回路ＮＤ３０の出力がロウレベルとなることにより、増幅されたデータ線ＰＢＬにおける電圧が選択され、インバータ回路ＩＶ３３を介して、ＭＱ出力データＭＱ［０］として出力される。これに対して、ナンド回路ＮＤ３１の出力がロウレベルの場合、増幅されたデータ線ＮＢＬにおける電圧が選択され、インバータ回路ＩＶ３３を介して、ＭＱ出力データＭＱ［０］として出力される。これは、実施の形態９で説明したように、符号が“＋”か“−”かによって、反転するためである。
【０１５７】
切り替えセレクタの出力は、ノア回路ＮＲ３０、Ｐ型ＦＥＴＰ４２、Ｐ４３およびＮ型ＦＥＴＮ３９、Ｎ４０によって構成されたラッチ回路によってラッチされる。このラッチ回路によって、ＭＱ出力データＭＱ［０］の論理値が保持されるとともに、ラッチ回路の出力は、制御信号ＭＱＣとして、ラッチ回路ＦＦ３１〜ＦＦ３４に供給される。
【０１５８】
積和演算マスク信号ＭＥＭは、反転されてラッチ回路ＦＦ３０でラッチされ、反転マスク信号ＭＥとなる。この反転マスク信号ＭＥと差動センスアンプ制御信号ＭＡＣＳＡＥとによって、ナンド回路ＮＤ３２が、前記した差動アンプ活性化信号ＭＡＣＳＡＥＢを形成する。さらに、反転マスク信号ＭＥと積和演算モードイネーブル信号ＭＡＣＥとに基づいて、ナンド回路ＮＤ３３が、積和演算イネーブル信号ＭＡＣＥＢＦを形成する。前記したプリチャージ回路は、積和演算イネーブル信号ＭＡＣＥＢＦと同位相の制御信号によって制御される。
【０１５９】
また、オン状態にするリファレンスセルＲ１の数を定める制御信号ＣＤは、ラッチ回路ＦＦ３２〜ＦＦ３４によって生成される。なお、制御信号ＣＤは、７ビットであるが、図１９には、そのうちの３ビットであるＣＤ［４］〜ＣＤ［６］と生成するラッチ回路のみが示されている。
【０１６０】
図２０（Ａ）では、まず初期化状態にするために、リセット信号ＲＳＴがハイレベルにされる。これにより、積和演算マスク信号ＭＥＭが、反転されてラッチ回路ＦＦ３０でラッチされる。また、ラッチ回路ＦＦ３１〜ＦＦ３４がリセットされる。次に、差動センスアンプ制御信号ＭＡＣＳＡＥがハイレベルに変化する。これに基づいて、データ線ＰＢＬとＮＢＬとの間の電位差が差動センスアンプによりラッチされる。このとき、制御信号ＢＬＳＥＬは、ラッチ回路ＦＦ３１がリセットされているため、ハイレベルとなる。
【０１６１】
そのため、このときの差動センスアンプにラッチされている状態が、”＋１”側の積和値＞”−１”側の積和値（データ線ＰＢＬの電圧＞データ線のＮＢＬの電圧）の場合には、論理値”０”が、ＭＱデータとして出力される。
【０１６２】
その後、制御信号ＣＮＴ１がアサートされると、ラッチ回路ＦＦ３１の出力である制御信号ＢＬＳＥＬがロウレベルとなり、ハイレベルの選択信号ＰＲと、ロウレベルの選択信号ＰＮが、インバータ回路ＩＶ３４、ＩＶ３５によって生成される。また、ＭＱ出力データは、データ線ＮＢＬ側からの出力されているため、“＋１”側の積和値＜“−１”側の積和値の場合、論理値“０”が出力される。これとともに、制御信号ＣＮＴ［７］がアサートされて、制御信号ＣＤ［６］がハイレベルとなる。制御信号ＣＤ［６］がハイレベルとなることにより、６４個のリファレンスセルＲ１がオン状態となる。次のタイミングでは、制御信号ＣＮＴ［６］がアサートされて、制御信号ＣＤ［５］がハイレベルとなる。これにより、３２個のリファレンスセルＲ１がオン状態となる。このように、制御信号ＣＮＴ［７］〜ＣＮＴ［４］をアサートしていくことにより、リファレンスセルＲ１をオン状態にする数が調整されながら、積和値に対応した論理値が求まる。
【０１６３】
次に、データ長を７ビットに減らした場合を、図２０（Ｂ）を参照して説明する。図１８（Ｃ）に示すような変換するには、制御信号ＣＮＴ［７］をアサートせずに、所望の制御信号ＣＮＴ［ｎ］からアサートすることで、実現することができる。
【０１６４】
具体的には、初期化状態が終わった後、符号ビットの出力が終わったタイミングで、制御信号ＣＮＴＩとともに制御信号ＣＮＴ［６］をアサートする。制御信号ＣＮＴ［６］は、制御信号ＣＤ［６］を出力するラッチ回路ＦＦ３２のイネーブルＥにも接続されているが、最初だけ、制御信号Ｃ１ＳＴを論理値“１”にすることにより、制御信号ＣＮＴ［６］用のラッチ回路ＦＦ３２を動作させないようにする。これで、制御信号ＣＤ［６］はロウレベルを維持することになる。これにより、分解能は“−６３”〜“＋６３”までになり、図１８（Ｃ）に示したのと同様に、データ長が７ビットまで、真の値と等しい値が出力される。このように、出力されるＭＱ出力データＭＱ［０］のデータ長は、ユーザーによって変更することが可能であり、データ長は可変である。
【０１６５】
実施の形態９で説明した制御信号ＰＳは、ラッチ回路ＦＦ３０のリセット端子に接続されている。そのため、図１４（Ｄ）に示したシュミットトリガ型ナンド回路６２が制御信号ＰＳを出力することにより、ラッチ回路ＦＦ３０から出力されている反転マスク信号ＭＥはロウレベルとなる。これにより、積和演算イネーブル信号ＭＡＣＥＢＦがロウレベルとなり、積和演算動作は実行されない。また、反転マスク信号ＭＥがロウレベルとなることにより、Ｐ型ＦＥＴＰ４３およびノア回路ＮＲ３０を含むＭＱ出力データ用のラッチ回路は、リセットされる。すなわち、Ｐ型ＦＥＴＰ４３がオン状態となり、ハイレベルが、ＭＱ出力データ用のラッチ回路からインバータ回路ＩＶ３３に供給されることになり、ＭＱ出力データはロウレベルの論理値”０”に固定される。
【０１６６】
実施の形態１１によれば、ユーザーが自由に出力データ長を変える事ができるため、パワーと性能のトレードオフの調整自由度が増す。また、１組のデータ線に接続された積演算メモリセルにおける積和演算の結果が、論理値“０”であるか否かが、シュミットトリガ型ナンド回路６２によって検出され、“０”の場合には、制御信号ＰＳにより、ＭＱ出力データは所定の論理値に設定され、Ａ／Ｄ変換動作は実行されないため、低消費電力化を図ることができる。
【０１６７】
（実施の形態１２）
図２１は、実施の形態１２に係わるリファレンスセルの構成を示す回路図である。図１４で説明したように、リファレンスセルＲ１は、積演算メモリセルと類似した構成である。そのため、積演算メモリセルＴｂｃの特性のバラツキに合わせて、リファレンスセルＲ１の特性もばらつくことになる。従って、リファレンスセルＲ１については、特性のバラツキを考慮する必要性は低い。
【０１６８】
これに対して、リファレンスセルＲ０．５は、ＦＥＴを直列的に接続して流れる電流を絞り、積演算メモリセルの半分の電流が流れるように設定している。そのため、直列接続のＦＥＴの特性に、製造バラツキによるバラツキが発生すると、リファレンスセルＲ０．５を流れる電流が、積演算メモリセルの半分の電流に相当しないことが危惧される。実施の形態１２においては、図１４（Ｃ）に示したＮ型ＦＥＴＮ１８＿１〜Ｎ１８＿８が、図２１に示すように、Ｎ型ＦＥＴＮ５０＿１〜Ｎ５０＿４、Ｎ５１＿１〜Ｎ５１＿およびＮ５２＿１〜Ｎ５２＿２に変更されている。ここで、Ｎ型ＦＥＴＮ５２＿１、Ｎ５２＿２のゲート電極には、制御信号ＣＤが供給される。一方、Ｎ型ＦＥＴＮ５０＿１〜５０＿４のゲート電極は、電流調整用のトリミング端子ＴＲＭ０に接続され、Ｎ型ＦＥＴＮ５１＿１〜５１＿３のゲート電極は、電流調整用のトリミング端子ＴＲＭ１に接続されている。
【０１６９】
リファレンスセルＲ０．５を流れる電流が、積演算メモリセルＴｂｃを流れる電流の半分になるように、トリミング端子ＴＲＭ０または／およびＴＲＭ１を、例えばＮ型ＦＥＴＮ５２＿１、Ｎ５２＿２のゲート電極に接続する。トリミング端子ＴＲＭ０、ＴＲＭ１は、リファレンスセルＲ０．５の特性を変更する端子と見なすことができる。
【０１７０】
実施の形態１２によれば、製造バラツキの影響を低減することが可能である。
【０１７１】
図２２は、実施の形態１〜１２に係わる半導体装置が備える外部端子を示している。実施の形態１〜１２に係わる半導体装置は、多数の外部端子を備えているが、図２２には、実施の形態１〜１２で説明した信号に係わる外部端子のみが、代表として示されている。図２２には、外部端子名と、その個数、入力／出力の区別および機能が示されている。
【０１７２】
図２２において、ＭＡＣＥ端子には、積和演算モードを有効にするか否かを示す積和演算モードイネーブル信号ＭＡＣＥが供給され、ＲＳＴ端子には、リセット信号ＲＳＴが供給され、ＹＡ端子には、カラムアドレスＹＡが供給される。Ｄ端子には、積演算メモリセルに書き込まれる入力データＤが供給され、ＭＥＭ端子には、積和演算をマスクする積和演算マスク信号ＭＥＭが供給される。また、Ｑ端子からは、積演算メモリセルに格納されているデータが出力され、ＭＱ端子からは、積和演算の結果である積和演算出力データ（ＭＱ出力データ）が出力される。
【０１７３】
勿論、図２２に示した外部端子は、一例であって、これに限定されるものではない。
【０１７４】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１７５】
１、１＿０、１＿１，２０、３０、Ｔｂｃ  積和演算機能付きメモリセル
２、３、２１＿０〜２１＿３  メモリセル
４〜６  スイッチ
７  定電流源
４０  メモリマクロ
ＩＮＰ＿Ｌ  入力配線
ＢＢ、ＢＴ  相補データ線
Ｎ１〜Ｎ１９、Ｎ３０〜Ｎ４０、Ｎ１４〜Ｎ５２＿２  Ｎ型ＦＥＴ
ＮＢＬ、ＰＢＬ  データ線
ＮＷＬ、ＰＷＬ  ワード線
Ｐ１〜Ｐ７、Ｐ３０〜Ｐ４７  Ｐ型ＦＥＴ
Ｒ１、Ｒ０．５  リファレンスセル
【図１】
2020129582.tif 000005
【図２】
2020129582.tif 000006
【図３】
2020129582.tif 000007
【図４】
2020129582.tif 000008
【図５】
2020129582.tif 000009
【図６】
2020129582.tif 000010
【図７】
2020129582.tif 000011
【図８】
2020129582.tif 000012
【図９】
2020129582.tif 000013
【図１０】
2020129582.tif 000014
【図１１】
2020129582.tif 000015
【図１２】
2020129582.tif 000016
【図１３】
2020129582.tif 000017
【図１４】
2020129582.tif 000018
【図１５】
2020129582.tif 000019
【図１６】
2020129582.tif 000020
【図１７】
2020129582.tif 000021
【図１８】
2020129582.tif 000022
【図１９】
2020129582.tif 000023
【図２０】
2020129582.tif 000024
【図２１】
2020129582.tif 000025
【図２２】
2020129582.tif 000026