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

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

▶ ルネサスエレクトロニクス株式会社の特許一覧

<>
  • 特許-半導体装置 図1
  • 特許-半導体装置 図2
  • 特許-半導体装置 図3
  • 特許-半導体装置 図4
  • 特許-半導体装置 図5
  • 特許-半導体装置 図6
  • 特許-半導体装置 図7
  • 特許-半導体装置 図8
  • 特許-半導体装置 図9
  • 特許-半導体装置 図10
  • 特許-半導体装置 図11
  • 特許-半導体装置 図12
  • 特許-半導体装置 図13
  • 特許-半導体装置 図14
  • 特許-半導体装置 図15
  • 特許-半導体装置 図16
  • 特許-半導体装置 図17
  • 特許-半導体装置 図18
  • 特許-半導体装置 図19
  • 特許-半導体装置 図20
  • 特許-半導体装置 図21
  • 特許-半導体装置 図22
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-28
(45)【発行日】2022-10-06
(54)【発明の名称】半導体装置
(51)【国際特許分類】
   H01L 21/82 20060101AFI20220929BHJP
   H01L 21/822 20060101ALI20220929BHJP
   H01L 27/04 20060101ALI20220929BHJP
   H01L 21/8238 20060101ALI20220929BHJP
   H01L 27/092 20060101ALI20220929BHJP
   H01L 21/8234 20060101ALI20220929BHJP
   H01L 27/088 20060101ALI20220929BHJP
   H01L 21/8229 20060101ALI20220929BHJP
   H01L 27/102 20060101ALI20220929BHJP
【FI】
H01L21/82 D
H01L27/04 D
H01L27/04 F
H01L27/092 K
H01L27/088 B
H01L21/82 W
H01L21/82 L
H01L27/102 391
【請求項の数】 12
(21)【出願番号】P 2019020844
(22)【出願日】2019-02-07
(65)【公開番号】P2020129582
(43)【公開日】2020-08-27
【審査請求日】2021-07-14
(73)【特許権者】
【識別番号】302062931
【氏名又は名称】ルネサスエレクトロニクス株式会社
(74)【代理人】
【識別番号】110002066
【氏名又は名称】弁理士法人筒井国際特許事務所
(72)【発明者】
【氏名】藪内 誠
【審査官】市川 武宜
(56)【参考文献】
【文献】米国特許出願公開第2010/0172190(US,A1)
【文献】特開2007-080314(JP,A)
【文献】特開2018-045753(JP,A)
【文献】特表2008-501205(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H01L 21/82
H01L 21/822
H01L 21/8238
H01L 21/8234
H01L 21/8229
H01L 27/04
H01L 27/088
H01L 27/092
H01L 27/102
(57)【特許請求の範囲】
【請求項1】
データ線と、
前記データ線に接続され、3値以上のデータを格納し、入力された入力データと、格納されているデータと、前記データ線におけるデータとの間で積和演算を行う、複数の積和演算機能付きメモリセルと、
を備え、
前記積和演算機能付きメモリセルは、
絶対値データを格納する複数の第1メモリセルと、
符号データを格納する第2メモリセルと、
を備え、
前記複数の積和演算機能付きメモリセルによる積和演算の結果が、前記データ線から出力される、半導体装置。
【請求項2】
請求項に記載の半導体装置において、
前記データ線は、第1データ線と第2データ線とを備え、
前記積和演算機能付きメモリセルは、
前記複数の第1メモリセルに格納された絶対値データによって制御される複数の第1スイッチと、
前記第2メモリセルに格納された符号データによって制御される複数の第2スイッチと、
前記入力データによって制御される複数の第3スイッチと、
を備え、
前記第1データ線または前記第2データ線は、前記複数の第1メモリセルに格納されている前記絶対値データと、前記第2メモリセルに格納されている前記符号データと、前記入力データとに従って、前記第1スイッチ、前記第2スイッチおよび前記第3スイッチを介して、電圧配線に接続され、
前記複数の第1メモリセルに格納された絶対値データは、重み付けされたデータであり、前記複数の第1スイッチ、前記複数の第2スイッチおよび前記複数の第3スイッチのそれぞれは、対応する絶対値データの重み付けに従ったサイズを有する、
半導体装置。
【請求項3】
請求項に記載の半導体装置において、
前記積和演算機能付きメモリセルは、前記積和演算の結果を表す電圧を出力する、半導体装置。
【請求項4】
複数の第1データ線と、
前記複数の第1データ線のそれぞれに接続された複数の積和演算機能付きメモリセルと、
前記複数の第1データ線のそれぞれに接続され、接続された第1データ線におけるアナログ信号をデジタル信号に変換する複数のアナログ/デジタル変換回路と、
複数の入力データを保持する入力データ保持回路と、
前記入力データ保持回路に接続され、前記入力データをアナログ信号へ変換するデジタル/アナログ変換回路とを、
を備え、
前記積和演算機能付きメモリセルは、3値以上のデータを格納し、格納しているデータと、入力データと、接続されている第1データ線におけるデータとの間で積和演算を実行
前記入力データ保持回路に保持されている前記入力データが、前記デジタル/アナログ変換回路によってアナログ信号に変換され、前記デジタル/アナログ変換回路からのアナログ信号が前記入力データとして、前記積和演算機能付きメモリセルに供給され、
前記積和演算の結果は、接続されている第1データ線を介して、前記アナログ/デジタル変換回路に供給される、半導体装置。
【請求項5】
請求項に記載の半導体装置において、
複数の第2データ線を、さらに備え、
前記複数の積和演算機能付きメモリセルには、前記第2データ線を介してデータが書き込まれる、半導体装置。
【請求項6】
複数の第1データ線と、
前記複数の第1データ線のそれぞれに接続された複数の積和演算機能付きメモリセルと、
を備え、
前記積和演算機能付きメモリセルは、3値以上のデータを格納し、格納しているデータと、入力データと、接続されている第1データ線におけるデータとの間で積和演算を実行
前記複数の第1データ線のそれぞれは、1組のデータ線よりなり、
前記1組のデータ線に接続され、前記1組のデータ線のうちの1つのデータ線にリファレンスを供給するリファレンスセルと、前記1組のデータ線に接続されたコンパレータとを備え、
前記コンパレータによって、前記1組のデータ線間の電位差が増幅され、増幅された電位差に基づいたデータがシリアルに出力される、半導体装置。
【請求項7】
請求項に記載の半導体装置において、
前記リファレンスセルは、前記積和演算機能付きメモリセルと同等の駆動力を備えた第1リファレンスセルと、前記積和演算機能付きメモリセルの半分の駆動力を備えた第2リファレンスセルとを備え、
前記電位差に基づいたデータが、符号ビット、最上位ビットから最下位ビットに向けてシリアルに出力する、半導体装置。
【請求項8】
請求項に記載の半導体装置において、
前記1組のデータ線に接続され、前記1組のデータ線に接続されている複数の積和演算機能付きメモリセルにおける積和演算の結果が、“0”であるか否かを検出し、“0”の場合、所定の論理値を、積和演算の結果として出力する、半導体装置。
【請求項9】
請求項に記載の半導体装置において、
前記シリアルに出力されるデータのデータ長は、可変である、半導体装置。
【請求項10】
請求項に記載の半導体装置において、
前記半導体装置は、
前記複数の積和演算機能付きメモリセルが配置されたセルアレイと、
前記リファレンスセルが配置されたリファレンスアレイと、
前記1組のデータ線をバイアスするバイアス回路とスイッチ回路とを含むソーススイッチと、
を備え、
前記セルアレイ、前記リファレンスアレイおよび前記ソーススイッチは、分散して配置され、
前記積和演算機能付きメモリセルを構成する複数のトランジスタの一部と、前記リファレンスセルを構成する複数のトランジスタの一部が、前記コンパレータを構成するトランジスタとして用いられる、半導体装置。
【請求項11】
請求項に記載の半導体装置において、
前記リファレンスセルは、特性を変更することが可能な端子を備える、半導体装置。
【請求項12】
請求項10に記載の半導体装置において、
前記積和演算を行う積和演算モードを有効にするか否かを示す積和演算モードイネーブル信号が供給されるMACE端子と、
リセット信号が供給されるRST端子と、
前記セルアレイから積和演算機能付きメモリセルを指定するアドレスが供給されるYA端子と、
前記積和演算機能付きメモリセルに書き込まれるデータが供給されるD端子と、
前記積和演算をマスクするか否かを示す積和演算マスク信号が供給されるMEM端子と、
前記積和演算の結果を出力するMQ端子と、
を、さらに備える、半導体装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体装置に関し、例えばAI(Artificial Intelligence)等の積和演算を大量に実行することが要求される半導体装置に関する。
【背景技術】
【0002】
近年、ディープラーニングによる機械学習の発展に伴って、様々なところでAIが応用されつつある。しかしながら、この手法では、大量の積和演算が要求されるため、例えばGPU(Graphics Processing Unit)等によって、積和演算の処理をアクセラレーションすることが行われる。また、積和演算の処理だけでなく、処理を行うのに付随して、大量のデータ転送処理も発生する。これらの処理を行うために、消費電力が非常に大きくなと言う課題が生じている。
【0003】
この課題を解決することができれば、IoT(Internet of Things)等において、エッジであるセンサ側のシステムでAIを利用することができるようになり、AIをさらに様々に利用することが可能となる。
【0004】
積和演算に付随して発生するデータ転送処理を減らす技術として非特許文献1に記載されている技術がある。
【先行技術文献】
【非特許文献】
【0005】
【文献】VLSI circuit 2018、“A Mixed-Signal Binarized Convolutional-Neural-Network Accelerator Integrating Dense Weight Storage and Multiplication for Reduced Data Movement” 2018年6月18日
【発明の概要】
【発明が解決しようとする課題】
【0006】
非特許文献1では、データ転送処理を減らすために、積演算において掛ける数が、スタテック型揮発性メモリ(以下、SRAM)のメモリセルに格納される。また、非特許文献1では、低消費電力化を図るために、積演算において掛ける数および掛けられる数の両方を、”0”、”1”の2値で表し、その2値を”-1”と”1”と定義している。これにより、否定排他的論理和(XNOR)の結果が、”-1”と”1”の掛け算となるようにしている。さらに、非特許文献1では、データ線に複数のメモリセルを接続することにより、各メモリセルにおける積演算の和を、データ線電圧として観測している。これにより、積和演算のうち積演算の部分において、掛ける数に係わるデータ転送処理の回数を低減し、和演算の部分を複数のメモリセルのデータ線への1回の読み出しにより実現している。
【0007】
しかしながら、例えば浮動小数点のような多ビットの積和演算を考えた場合、多ビットを2値にするのでは、圧縮し過ぎで、機械学習や推論の精度が低下すると言う課題がある。また、学習等に要する時間も膨大になると言う課題も生じる。
【0008】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0009】
一実施の形態に係わる半導体装置は、次のとおりである。
【0010】
すなわち、半導体装置は、データ線に接続され、3値のデータを格納し、格納されたデータと入力された入力データとデータ線におけるデータとの間で積和演算を行うメモリセルを備える。3値は、例えば+1、0、-1である。
【発明の効果】
【0011】
一実施の形態によれば、学習や推論の精度を向上させながら、低消費電力化を図ることが可能な半導体装置を提供することができる。
【図面の簡単な説明】
【0012】
図1】実施の形態1に係わる積和演算機能付きメモリセルの構成を示す図である。
図2】実施の形態1に係わる積演算メモリセルの構成を示す回路図である。
図3】実施の形態2に係わる半導体装置のレイアウトを示す平面図である。
図4】(A)~(D)は、実施の形態2に係わる半導体装置のレイアウトを示す図である。
図5】(A)および(B)は、実施の形態3に係わる半導体装置のレイアウトを示す平面図である。
図6】実施の形態4に係わる半導体装置の構成を示す回路図である。
図7】(A)および(B)は、実施の形態4に係わる半導体装置のレイアウトを示す平面図である。
図8】(A)~(D)は、実施の形態4に係わる半導体装置の断面を示す断面図である。
図9】実施の形態5に係わる積演算メモリセルの構成を示す回路図である。
図10】実施の形態6に係わる積演算メモリセルの構成を示す回路図である。
図11】実施の形態7に係わる半導体装置の構成を示すブロック図である。
図12】(A)および(B)は、実施の形態8に係わる半導体装置を説明するための図である。
図13】実施の形態9に係わる半導体装置の構成を示す図である。
図14】(A)~(D)は、実施の形態9に係わる半導体装置の構成を示す図である。
図15】(A)および(B)は、実施の形態9に係わるA/D変換を説明するためのタイミング図である。
図16】(A)および(B)は、実施の形態10に係わる半導体装置の構成を示す図である。
図17】(A)および(B)は、実施の形態10を説明するための図である。
図18】(A)~(D)は、実施の形態11に係わるA/D変換を説明するための図である。
図19】実施の形態11に係わる半導体装置の構成を示す回路図である。
図20】(A)および(B)は、実施の形態11に係わる半導体装置のタイミング図である。
図21】実施の形態12に係わるリファレンスセルの構成を示す回路図である。
図22】実施の形態1~12に係わる半導体装置が備える外部端子を示す図である。
【発明を実施するための形態】
【0013】
以下、本発明の各実施の形態について、図面を参照しつつ説明する。なお、開示はあくまでも一例にすぎず、当業者において、発明の主旨を保っての適宜変更について容易に想到し得るものについては、当然に本発明の範囲に含有されるものである。また、図面は説明をより明確にするため、実際の態様に比べ、各部の幅、厚さ、形状等について模式的に表される場合があるが、あくまで一例であって、本発明の解釈を限定するものではない。
【0014】
また、本明細書と各図において、既出の図に関して前述したものと同様の要素には、同一の符号を付して、詳細な説明を適宜省略することがある。
【0015】
(実施の形態1)
<積和演算機能付きメモリセルの構成>
図1は、実施の形態1に係わる積和演算機能付きメモリセル(以下、積演算メモリセルと称する)の構成を示す図である。図1には、データ線(第1データ線、第2データ線)PBL、NBLに接続された2つの積演算メモリセルが例示されている。積演算メモリセル1は、互いに同じ構成を備えているため、図1には、1つの積演算メモリセル1についてのみ等価回路が示されている。積演算メモリセル1は、3値を格納するために、2つのメモリセル(第1メモリセル、第2メモリセル)2、3を備えている。また、積演算メモリセル1は、メモリセル2、3以外に、3つのスイッチ(第1~第3スイッチ)4~6と、定電流源7とを備えている。
【0016】
メモリセル2、3は、SRAMのメモリセルであり、後で図2において説明する一対の相補データ線およびワード線に接続されており、一対の相補データ線およびワード線を用いて、メモリセル2、3に論理値が書き込まれる。スイッチ4、5は、メモリセル2、3に対応し、対応するメモリセルに、例えば論理値“1”が格納されているとき、オン状態となる。スイッチ4は、ノードn1とデータ線PBLとの間に接続され、スイッチ5は、ノードn1とデータ線NBLとの間に接続されている。また、スイッチ6は、ノードn1と定電流源7との間に接続され、定電流源7は接地電圧Vsに接続されている。このスイッチ6は、入力配線INP_Lに与えられる入力データINPに対応し、入力データINPが例えば論理値“1”のとき、オン状態となる。
【0017】
メモリセル2、3の両方が論理値“0”を格納しているとき、積演算メモリセル1は、論理値“0”を格納しているものとする。また、メモリセル2が論理値“1”を格納し、メモリセル3が論理値“0”を格納しているとき、積演算メモリセル1は、論理値“+1”を格納しているものとする。さらに、メモリセル2が論理値“0”を格納し、メモリセル3が論理値“1”を格納しているとき、積演算メモリセル1は、論理値“-1”を格納しているものとする。
【0018】
これにより、積演算メモリセル1に論理値“0”が格納されているとき、スイッチ4および5はオフ状態となり、入力データINPが例え論理値“1”であっても、データ線PBL、NBLから定電流源7に電流は流れない。
【0019】
これに対して、積演算メモリセル1に論理値“+1”が格納されているとき、スイッチ4はオン状態となり、スイッチ5はオフ状態となる。このとき、入力データINPが論理値“1”であれば、オン状態のスイッチ4および6を介して、データ線PBLから定電流源7に電流が流れ、データ線PBLの電圧は低下する。このとき、データ線NBLの電圧は低下しない。一方、このとき、入力データINPが論理値“0”であれば、オン状態のスイッチ6がオフ状態となるため、データ線PBL、NBLから定電流源7に電流は流れず、データ線PBLおよびNBLの電圧は低下しない。
【0020】
さらに、積演算メモリセル1に論理値“-1”が格納されているときには、スイッチ5はオン状態となり、スイッチ4はオフ状態となる。このとき、入力データINPが論理値“1”であれば、オン状態のスイッチ5および6を介して、データ線NBLから定電流源7に電流が流れ、データ線NBLの電圧は低下し、データ線PBLの電圧は低下しない。一方、このとき、入力データINPが論理値“0”であれば、オン状態のスイッチ6がオフ状態となるため、データ線PBL、NBLから定電流源7に電流は流れず、データ線PBLおよびNBLの電圧は低下しない。
【0021】
すなわち、メモリセル2が、積演算メモリセル1に論理値“+1”を格納するのに用いられ、メモリセル3が、積演算メモリセル1に論理値“-1”を格納するのに用いられていると見なすことができる。
【0022】
これにより、積演算メモリセル1に格納されている3値と入力データINPの値との間で積演算が実行される。すなわち、入力データの論理値と、積演算メモリセルの論理値に従って、0×0、0×(+1)、0×(-1)、1×0、1×(+1)、1×(-1)の6つの状態が形成される。この場合、入力データの論理値と積演算メモリセル1に格納されている論理値との間で積演算が実行され、積演算の結果が論理値“1”のとき、データ線PBLと定電流源7との間を電流が流れ、データ線PBLの電圧が低下する。これに対して、積演算の結果が論理値“-1”のとき、データ線NBLと定電流源7との間を電流が流れ、データ線NBLの電圧が低下する。
【0023】
図1において、紙面の下側に示した積演算メモリセル1は、同様に、積演算メモリセル1に格納されている3値の論理値と入力データINPの論理値との間で、積演算を実行し、積演算の結果に従って、データ線PBL、PBLから電流を引き抜くように、動作する。
【0024】
データ線PBL、NBLのそれぞれにおいて、紙面の上側に示した積演算メモリセル1の積演算結果に従った電流と、紙面の下側に示した積演算メモリセル1の積演算の結果に従った電流とが、重畳されて、データ線PBL、NBLのそれぞれにおいて電流・電圧が定まる。すなわち、2つの積演算メモリセル1において得られた積が、データ線PBL、NBLによって、和を求めるように和演算が実行される。和演算の結果である積和演算の結果は、データ線PBL、NBLを介して出力される。
【0025】
図2は、実施の形態1に係わる積演算メモリセルの構成を示す回路図である。図2には、図1に示した2つの積演算メモリセル1のうち、1つの積演算メモリセルの回路構成のみが示されている。メモリセルの構成を、メモリセル2を例にして説明する。メモリセル2は、所謂、6トランジスタにより構成されたSRAMのメモリセルである。すなわち、メモリセル2は、複数のPチャンネル型電界効果トランジスタ(P型FETと称する)と複数のNチャンネル型電界効果トランジスタ(N型FETと称する)によって構成されている。なお、図2および以降で説明する図面においては、P型FETはゲート電極に○印を付して、N型FETと区別する。また、チャンネル型を区別しない場合、電界効果トランジスタは、以下、FETと称する。
【0026】
メモリセル2は、P型FETP1とN型FETN1によって構成された第1インバータ回路IV1と、P型FETP2とN型FETN2によって構成された第2インバータ回路IV2とを備えている。第1インバータ回路IV1と第2インバータ回路IV2は、電源電圧Vdと接地電圧Vsとの間に接続されている。また、第1インバータ回路IV1の入力は、第2インバータ回路IV2の出力に接続され、第2インバータ回路IV2の入力は第1インバータ回路IV1の出力に接続されている。すなわち、第1インバータ回路IV1と第2インバータ回路IV2は、ラッチ回路を構成するように交差接続されている。第2インバータ回路IV2および第1インバータ回路IV1の入力と、一対の相補データ線BB、BTとの間に転送用N型FETN3、N4が接続されている。転送用N型FETN3、N4のゲート電極は、ワード線PWLに接続されている。
【0027】
一対の相補データ線BB、BTおよびワード線PWLは、メモリセル2に、データを書き込む際に用いられる。すなわち、メモリセル2にデータを書き込む際、書き込むべきデータの論理値に従った相補の電圧(ハイレベルとロウレベル)が、相補データ線BB、BTに供給され、ワード線PWLにハイレベルが供給される。これにより、転送用N型FETN3、N4を介して、一対の相補データ線BB、BTにおける相補の電圧が、第1インバータ回路IV1および第2インバータ回路IV2により構成されたラッチ回路に供給され、メモリセル2に論理値“0”または“1”が書き込まれる。メモリセル2に保持されている論理値は、ノードn2から出力される。
【0028】
メモリセル3は、メモリセル2と同じ構成を備えているが、転送用N型FETN3、N4のゲート電極は、前記したワード線PWLとは異なるワード線NWLに接続されている。これにより、ワード線NWLをワード線PWLと異なるタイミングでハイレベルにすることにより、メモリセル2とは異なる論理値を、メモリセル3に書き込みことが可能となっている。すなわち、実施の形態1においては、積演算メモリセル1に論理値“+1”を格納するのに用いるメモリセル2をワード線PWLで制御し、積演算メモリセル1に論理値“-1”を格納するのに用いるメモリセル3をワード線NWLで制御している。
【0029】
図1で説明したスイッチ4は、N型FETN5によって構成され、スイッチ5は、N型FETN6によって構成され、スイッチ6は、N型FETN7によって構成されている。すなわち、N型FETN5のソース・ドレイン経路は、ノードn1とデータ線PBLとの間に接続され、そのゲート電極は、メモリセル2のノードn2に接続されている。また、N型FETN6のソース・ドレイン経路は、ノードn1とデータ線NBLとの間に接続され、そのゲート電極は、メモリセル3のノードn2に接続されている。さらに、N型FETN7のソース・ドレイン経路は、ノードn1と電圧配線CVSSとの間に接続され、そのゲート電極には、入力データINPが供給されている。特に制限されないが、電圧配線CVSSには、図示されていない定電流源7が接続されている。勿論、電圧配線CVSSに、接地電圧Vsが供給されるようにしてもよい。
【0030】
特に制限されないが、実施の形態1においては、データ線PBL、NBLと電源電圧Vdとの間に、負荷10および11がそれぞれ接続されている。負荷10および11を介して、データ線PBL、NBLに電流が供給される。
【0031】
<積演算メモリセルへの論理値の書き込みおよび積演算>
積演算メモリセル1に論理値“+1”を書き込み場合、相補データ線BTにハイレベルを供給し、相補データ線BBにロウレベルを供給した状態で、ワード線PWLをハイレベルにする。これにより、メモリセル2が選択され、メモリセル2内の転送用N型FETN3、N4がオン状態となり、第2インバータ回路IV2の入力にロウレベルが供給される。その結果、メモリセル2におけるラッチ回路は、ノードn2をハイレベル状態にするような状態をラッチする。続けて、相補データ線BBにハイレベルを供給し、相補データ線BTにロウレベルを供給した状態で、ワード線NWLをハイレベルにする。これにより、メモリセル3が選択され、メモリセル3内の転送用N型FETN3、N4がオン状態となり、第2インバータ回路IV2の入力にハイレベルが供給される。その結果、メモリセル3におけるラッチ回路は、ノードn2をロウレベル状態にするような状態をラッチする。
【0032】
これにより、N型FETN5はオン状態となり、N型FETN6はオフ状態となる。この状態で、入力データINPが例えばハイレベルであれば、N型FETN7がオン状態となり、N型FETN5およびN7が、データ線PBLから電圧配線CVSSへ電流を流させる電流パスを形成することになる。
【0033】
積演算メモリセル1に論理値“+1”を書き込む場合を説明したが、論理値“-1”を書き込む場合および論理値“0”を書き込む場合も同様である。積演算メモリセル1に論理値“-1”が書き込まれている場合、入力データINPがハイレベルであれば、N型FETN6とN7とによって、データ線NBLと電圧配線CVSSとを接続する電流パスが形成されることになる。一方、積演算メモリセル1に論理値“0”が書き込まれている場合には、入力データINPがハイレベルであっても、データ線PBL、NBLと電圧配線CVSSとを接続する電流パスは形成されない。
【0034】
<和演算>
図2に示した積演算メモリセル1が、データ線PBL、NBLに多数個接続されている。これにより、各積演算メモリセルにおいて形成される電流パスの数の和に応じた電流が、データ線PBL、NBLを流れることになる。すなわち、データ線PBLには、論理値“+1”側の積の和に対応した電流が流れ、データ線NBLには、論理値“-1”側の積の和に対応した電流が流れることになる。これにより、論理値“+1”側の積和演算の結果が、データ線PBLに出力され、論理値“-1”側の積和演算の結果が、データ線NBLに出力されることになる。従って、データ線PBLにおける電流とデータ線NBLにおける電流との差分を、アナログ/デジタル変換(A/D変換)することにより、期待する積和演算の結果を得ることができる。勿論、データ線PBL、NBLのそれぞれを流れる電流をA/D変換し、得られたデジタル信号の差分を求めるようにしてもよい。
【0035】
実施の形態1においては、積演算メモリセル1に、積和演算で用いられる、“+1”、“0”、“-1”の3値の論理値が格納される。そのため、学習や推論で用いられるデータが、圧縮され過ぎるのを防ぐことが可能であり、学習や推論の精度を向上させることが可能である。また、積演算メモリセル1に格納されている論理値を変更しなくても、入力データINPを変えることにより、多数の積和演算を行うことが可能である。そのため、データ転送処理の回数を低減することが可能である。さらに、和演算は、データ線PBL、NBLからそれぞれの積演算メモリセル1が電流を引き抜くことにより実現されるため、1回の動作で複数の和演算を実行することが可能となる。これにより、データ転送処理の回数をさらに低減させ、消費電力を低減することが可能である。
【0036】
(実施の形態2)
図3は、実施の形態2に係わる半導体装置のレイアウトを示す平面図である。図3には、図2で説明した積演算メモリセル1のレイアウトが示されている。実施の形態2においては、所謂プレーナー型のFETを用いて積演算メモリセル1が形成されている。図3において、細い破線で囲まれたセル領域CARに、1つの積演算メモリセル1が配置されている。実施の形態2においては、セル領域CARの中央を通過する二点鎖線で示す仮想直線CNTを中心として、メモリセル2とメモリセル3が対称に配置されている。
【0037】
図3において、実線で囲まれた領域は、FETのゲート電極を形成する配線を示し、破線で囲まれた領域は、FETのソース領域あるいはドレイン領域を形成する半導体領域を示している。また、一点鎖線で囲まれた領域は、第1層目の金属配線層(導電層)M1により形成された金属配線を示している。さらに実線で囲まれ、×印が付された領域は、コンタクト領域を示している。コンタクト領域によって、例えばコンタクト領域と重なっている2つの層間が電気的に接続されている。図3には、ゲート電極部に、図2で説明したP型FETおよびN型FETの符号が付されている。符号が付されたゲート電極部が、符号のFETを構成するゲート電極を構成している。
【0038】
積演算メモリセルを構成するP型FETP1、P2およびN型FETN1~N7のゲート電極は、仮想直線CNTと平行するように配置されている。また、相補データ線BB側のP型FETP1およびN型FETN1を構成するゲート電極は、延伸して、スイッチを構成するN型FETN5またはN6のゲート電極を構成している。すなわち、メモリセル2、3を構成するP型FETP1およびN型FETN1のゲート電極と、スイッチを構成するN型FETN5またはN6のゲート電極が一体的に形成されている。さらに、スイッチ6を構成するN型FETN7は、メモリセル2と3との対称性を維持するために、2つ並列に配置されている。
【0039】
図3に示したレイアウトでは、データ線PBL、NBLと半導体領域とを接続するコンタクト領域が、セル領域CARの境界に配置されている。同様に、相補データ線BBと半導体領域とを接続するコンタクト領域も、セル領域CARの境界に配置されている。そのため、図示しないが、図3に示した積演算メモリセル1の隣の積演算メモリセル1は、二点鎖線で示す仮想Y軸直線Y1、Y2を基準として、図3に示した積演算メモリセル1がミラー反転した状態で配置されている。これにより、隣接する積演算メモリセル1間で、データ線PBL、NBLと、相補データ線BBを兼用することが可能となっている。
【0040】
実施の形態1においては、図3に示した領域上に、さらに4層の金属配線層M2~M5が積層される。この4層の金属配線層を、図を用いて説明する。
【0041】
図4は、実施の形態2に係わる半導体装置のレイアウトを示す図である。図4(A)は、図3に示した第1層目の金属配線層M1の上層に形成された2層目の金属配線層M2による配線を示し、図4(B)は、2層目の金属配線層M2の上層に形成された3層目の金属配線層M3による配線を示している。また、図4(C)は、3層目の金属配線層M3の上層に形成された4層目の金属配線層M4による配線を示し、図4(D)は、4層目の金属配線層M4の上層に形成された5層目の金属配線層M5による配線を示している。
【0042】
図4において、実線で囲まれ、×印が付された領域は、ビア領域を示している。ビア領域において、下層側の金属配線と上層側の金属配線との間の絶縁層に開口部が設けられ、開口部を介して、下層側の金属配線と上層側に金属配線とが電気的に接続されている。すなわち、図4(A)では、太い一点鎖線で示した第1層目の金属配線と細い二点鎖線で示されている第2層目の金属配線とがビア領域によって接続され、図4(B)では、細い二点鎖線で示した第2層目の金属配線と太い二点鎖線で示されている第3層目の金属配線とがビア領域によって接続されている。また、図4(C)では、太い二点鎖線で示した第3層目の金属配線と細い二点鎖線で示されている第4層目の金属配線とがビア領域によって接続され、図4(D)では、細い二点鎖線で示した第4層目の金属配線と太い二点鎖線で示されている第5層目の金属配線とがビア領域によって接続されている。
【0043】
実施の形態2においては、図4(A)に示した第2層目の金属配線層M2により形成された金属配線によって、相補データ線BB、BTが構成されている。また、図4(B)に示した第3層目の金属配線層M3により形成された金属配線によって、ワード線NWL、PWLが構成されている。
【0044】
また、実施の形態2においては、積和演算の機能を達成するための配線、すなわち図2に示したデータ線PBL、NBLおよび電圧配線CVSSは、互いに異なる2つの金属配線層により形成された金属配線が用いられている。すなわち、図4(A)に示した第2層目の金属配線層M2により形成された金属配線と、図4(C)に示した第4層目の金属配線層M4により形成された金属配線とが、データ線PBL、NBLおよび電圧配線CVSSとして用いられており、同一の方向に延在している。これにより、積和演算の機能を達成するための配線は、2つの金属配線が並列的に接続された構成となり、配線抵抗を小さくすることが可能である。<和演算>で説明したように、積和演算の結果は、電流に変換される。そのため、配線抵抗が大きいと、電流パスを形成している積演算メモリセルの位置によって、電流値が変化してしまうため、実施の形態2のように、配線抵抗を小さくすることが望ましい。
【0045】
接地電圧Vsを供給する金属配線は、図4(D)に示すように、第5層目の金属配線層M5によって形成されている。接地電圧Vsを供給する金属配線は、図4(D)に示すように、データ線PBL、NBLおよび電圧配線CVSSを部分的に覆うように配置されている。これにより、接地電圧Vsを供給する金属配線は、データ線PBL、NBLおよび電圧配線CVSSに対して、ノイズシールドとして機能する。
【0046】
実施の形態2によれば、小面積で積演算メモリセル1を形成することが可能である。また、配線抵抗のバラツキ等に対して積和演算機能の耐性を向上させることが可能である。
【0047】
(実施の形態3)
実施の形態3においては、積演算メモリセル1が、所謂フィンFETと呼ばれる3次元構造のFETによって構成されている。図5は、実施の形態3に係わる半導体装置のレイアウトを示す平面図である。図5には、図2に示した積演算メモリセル1が、フィン型FETによって構成されたレイアウトが示されている。ここで、図5(A)において、実線で囲まれた領域は、ゲート電極を示し、破線で囲まれた領域は、フィンを示し、細い二点鎖線で囲まれた領域は、第1層目の金属配線層M1によって形成された金属配線を示している。
【0048】
また、図5(A)において、細い一点鎖線で囲まれた領域は、ゲート電極と他の領域とを接続するためのゲート用ローカルインターコネクト(LIC)領域を示し、太い一点破線で囲まれた領域は、フィンと他の領域とを接続するためのフィン(Fin)用LIC領域を示している。さらに実線で囲まれ、×印が付されている領域は、コンタクト領域を示している。フィンFETを製造するプロセスでは、フィンと金属配線との間の接続は、コンタクト領域によって接続するのではなく、LIC領域によって接続されている。
【0049】
実施の形態3においても、実施の形態2と同様に、メモリセル2と3は、仮想直線CNTを中心として対称的に配置され、隣の積演算メモリセルは、仮想Y軸直線Y1、Y2を基準としてミラー反転して配置される。実施の形態3においては、スイッチを構成するN型FETN5、N6とスイッチを構成するN型FETN7とが分離されている。すなわち、図面において、N型FETN7は、N型FETN5、N6の上側に配置され、N型FETN5、N6の共通ソース領域とN型FETN7のドレイン領域とが、LIC領域によって接続されている。
【0050】
実施の形態2の積演算メモリセルにおいては、第1層目の金属配線層M1から第5層目の金属配線層M5を用いて配線が行われていたが、実施の形態3においては、第1層目と第2層目の金属配線層によって形成された金属配線によって、接続が行われている。図5(B)には、第2層目の金属配線層によって形成された金属配線が示されている。図5(B)において、太い二点鎖線で囲まれた領域は、第2層目の金属配線層M2によって形成された金属配線を示している。実施の形態3では、ワード線PWL、NWLと、入力データINPを供給する入力配線INP_Lと、接地電圧Vsを供給する配線が、第2層目の金属配線層によって形成されている。勿論、実施の形態2と同様に、データ線NBL、PBLおよび電圧配線CVSSを、上層の金属配線層により形成された金属配線と接続して、これらの配線抵抗の低減を図ってもよい。
【0051】
実施の形態3によれば、フィンFETによって、積演算メモリセルを備えた半導体装置を実現することが可能である。
【0052】
(実施の形態4)
実施の形態4においては、1組のデータ線PBL、NBLが、同じ入力配線INP_Lに接続された複数の積演算メモリセル1によって兼用されている。すなわち、1組のデータ線PBL、NBLと1つの入力配線INP_Lに、複数の積演算メモリセル1が接続され、選択信号によって複数の積演算メモリセル1から積演算メモリセルが選択され、選択された積演算メモリセルによってデータ線PBL、NBLと入力配線INP_Lが用いられる。
【0053】
図6は、実施の形態4に係わる半導体装置の構成を示す回路図である。半導体装置100は、データ線PBL、NBLに接続された複数の積演算メモリセルを備えている。図6では、データ線PBL、NBLに接続された2つの積演算メモリセル1_0、1_1が例示されている。積演算メモリセル1_0と1_1の構成は同じであるため、図6には、積演算メモリセル1_0についてのみ、詳しい構成が示されている。
【0054】
積演算メモリセル1_0は、図2に示した積演算メモリセル1と類似している。相異点は、選択用にN型FETN8およびN9が追加され、このN型FETN8およびN9に選択信号としてカラムアドレスYA0が供給されている点である。N型FETN8のソース・ドレイン経路が、N型FETN5とデータ線PBLとの間に接続され、N型FETN9のソース・ドレイン経路が、N型FETN6とデータ線NBLとの間に接続されている。これらの選択用N型FETN8、N9のゲート電極には、カラムアドレスYA0が、共通に供給されている。これにより、カラムアドレスYA0をハイレベルにすることによって、積演算メモリセル1_0が選択されたときには、N型FETN5、N6が、データ線PBL、NBLに接続され、積演算が実行される。すなわち、積演算メモリセル1_0に格納されている論理値と入力データINPの論理値との間で積演算が実行され、積演算の結果と、データ線PBL、NBLにおける論理値との間で和演算が実行される。なお、このとき、カラムアドレスYA1はロウレベルにしておくことで、積演算メモリセル1_1は選択されないようにする。
【0055】
カラムアドレスYA1によって積演算メモリセル1_1が選択された場合には、積演算メモリセル1_1に格納されている論理値と入力データINPの論理値との間で積演算が実行され、積演算の結果と、データ線PBL、NBLにおける論理値との間で和演算が実行されることになる。
【0056】
なお、実施の形態4では、積演算メモリセル1_0と1_1は、異なる相補データ線BB0、BT0、BB1、BT1に接続されている。そのため、ワード線NWL、PWLが、積演算メモリセル1_0と1_1に対して共通になっていても、積演算メモリセル1_0と1_1には、互いに異なる3値の論理値を書き込むことが可能である。勿論、積演算メモリセル1_0と1_1とに対して、相補データ線を共通にし、ワード線が異なるようにしてもよい。また、実施の形態4では、積演算メモリセル1_0と1_1に対して、入力データINPを供給する入力配線INP_Lが共通になっているが、勿論別々の入力配線を用いるようにしてもよい。
【0057】
図6においては、カラムアドレスYA0、YA1が積演算メモリセル1_0、1_1に供給されるようにしたことで、積演算メモリセル1によって構成されるアドレス空間を広げることが可能である。これにより、例えば、積和演算を実行する複数のデータを、予め積演算メモリセル1_0、1_1に格納しておき、カラムアドレスによって、積和演算を実行するデータを選択することができる。
【0058】
<変形例>
変形例においては、カラムアドレスYA0と、YA1とが同時にハイレベルにされる。これにより、積演算メモリセル1_0において積演算された結果と、積演算メモリセル1_1において積演算された結果と、データ線PBL、NBLにおけるデータとの間で和演算を実行することが可能となる。積演算メモリセル1_0と1_1とを組み合わせることによって、1つの組み合わせ積演算メモリセルが構成されていると見なすと、1つの組み合わせ積演算メモリセルには、“+1”、“0”、“-1”の3値ではなく、“+2”、“+1”、“0”、“-1”、“+2”のような3値を超える5値を格納することが可能であり、5値の論理値と入力データINPとの間で積演算を実行することが可能である。2つの積演算メモリセルを組み合わせる例を示したが、組み合わせる積演算メモリセルの数を増やすことにより、より多値のデータを組み合わせ積演算メモリセルに格納することが可能である。
【0059】
図7は、実施の形態4に係わる半導体装置のレイアウトを示す平面図である。図7には、図5と同様に、フィンFETによって、図6に示した積演算メモリセル1_0を形成したときのレイアウトが示されている。ここで、図7(A)は、図5(A)と類似しており、相異点は、カラムアドレスYAを供給する配線と、選択用のN型FETN8、N9とが追加されていることである。また、図7(B)には、図5(B)と同様に、第2層目の金属配線層M2によって形成された金属配線が、太い二点鎖線によって囲まれた領域として示されている。
【0060】
図8は、実施の形態4に係わる半導体装置の断面を示す断面図である。すなわち、図8(A)は、図7(A)および(B)におけるA-A’断面を示し、図8(B)は、図7(A)および(B)におけるB-B’断面を示し、図8(C)は、図7(A)および(B)におけるC-C’断面を示し、図8(D)は、図7(A)および(B)におけるD-D’断面を示している。図8(A)~(C)に示すように、第2層目の金属配線層M2で形成された金属配線は、第1層目の金属配線層M1で形成された金属配線と重なるように配置され、電気的に接続されている。これにより、金属配線の低抵抗化が図られている。
【0061】
第2層目以上の金属配線層は、図4(B)~(D)に示したのと同様にすることで、微細化に伴う金属配線の高抵抗化を抑制することが可能である。この場合も、データ線NBL、PBLおよび電圧配線CVSSは、例えば図4(C)に示すように、3層目以上の金属配線層によって形成する。なお、図8では、層間、例えば金属配線層M1とM2間の絶縁膜は省略されている。
【0062】
実施の形態4によれば、積演算メモリセルによって構成されるメモリのアドレス空間を広げて、メモリ容量を増大させることができる。また、積演算メモリセルに格納されるデータをさらに多値化することが可能であり、学習、推論の精度を向上させることができる。さらに、ユーザーは、カラムアドレスを操作することにより、メモリの大容量化と精度向上とを選択することが可能であり、自由度を高くすることが可能である。
【0063】
(実施の形態5)
積演算メモリセルには、入力データINPに対して掛けるデータが格納される。実施の形態5においては、この掛けるデータの多値化を効率的に行うことが可能な積演算メモリセルが、提供される。
【0064】
実施の形態4で述べた積演算メモリセルでは、メモリ容量の増加とデータの多値化をフレキシブルに変更することが可能である。しかしながら、多値化だけを行う場合を考えると、積演算メモリセルを構成するFETの数が増加する。例えば、実施の形態4において1つの組み合わせ積演算メモリセルに、“+7”~“-7”の15値のデータを格納させる場合、図6に示したようにメモリセル2および3のそれぞれを構成するのに6個のFETを必要とする。また、選択および積和機能を実現するために、スイッチを構成するFETと選択用のFETも必要とされる。そのため、1つの積演算メモリセルを構成するのに、メモリセル用の12個のFETと選択・積和機能用のFETとが必要とされる。15値のデータを格納するためには、7つの積演算メモリセルによって、1つの組み合わせ積演算メモリセルを構成することになる。そのため、1つの組み合わせ積演算メモリセルは、FETとして、(2個のメモリセル(12個のFET)+選択・積和機能用のFET)×7のFETを必要することになる。
【0065】
図9は、実施の形態5に係わる積演算メモリセルの構成を示す回路図である。積演算メモリセル20は、4つのメモリセル21_0~21_3と、12個のN型FETN10_1~N10_3、N11_1~N11_3、N12_1~N12_3、N13_1~N13_3とを備えている。メモリセル21_0~21_3は、例えば図2に示したメモリセル2と同じ構成を有している。そのため、メモリセル21_0~21_3のそれぞれは、6個のFETによって構成されている。
【0066】
N型FET(第2スイッチ)N10_1~N10_3のゲート電極は、メモリセル21_0の一方の出力に接続され、N型FET(第2スイッチ)N11_1~N11_3のゲート電極は、メモリセル21_0の他方の出力に接続されている。ここで、メモリセル21_1の一方の出力は、図2に示したN型FETN1とP型FETP1との間を接続するノードが該当し、他方の出力は、図2に示したノードn2が相当する。
【0067】
N型FETN10_1のソース・ドレイン経路と、N型FETN11_1のソース・ドレイン経路は、データ線PBLとNBLとの間で直列接続されている。また、N型FETN10_1とN11_1とを接続するノードと、電圧配線CVSSとの間には、N型FET(第1スイッチ)N12_1のソース・ドレイン経路とN型FETN13_1のソース・ドレイン経路が直列的に接続されている。N型FET(第3スイッチ)N13_1のゲート電極には、入力データINPが供給され、N型FETN12_1のゲート電極は、メモリセル21_1のノードn2(図2参照)が接続されている。N型FETN10_2、N11_2、N12_2、N13_2およびメモリセル21_2も、前記したN型FETN10_1、N11_1、N12_1、N13_1およびメモリセル21_1と同様に接続されている。また、N型FETN10_3、N11_3、N12_3、N13_3およびメモリセル21_3も、前記したN型FETN10_1、N11_1、N12_1、N13_1およびメモリセル21_1と同様に接続されている。
【0068】
メモリセル(第2メモリセル)21_0には、積演算メモリセル20に格納する多値のデータの正負を示す符号ビットが格納される。また、メモリセル(第1メモリセル)21_1~21_3には、格納する多値のデータの絶対値を示すビットが格納される。実施の形態5においては、多値のデータは、“1”、“2”、“4”に重み付けされたビットによって表され、重み“1”を表すビットが、メモリセル21_1に格納され、重み“2”を表すビットが、メモリセル21_2に格納され、重み“4”を表すビットが、メモリセル21_3に格納される。
【0069】
N型FETN10_1~N10_3、N11_1~N11_3、N12_1~N12_3、N13_1~N13_3は、対応するメモリセルに格納される重みに応じた電流を流すことが可能なように設定されている。例えば、メモリセル21_1に対応するN型FETN10_1、N11_1、N12_1、N13_1のサイズを基準サイズとした場合、メモリセル21_2に対応するN型FETN10_2、N11_2、N12_2、N13_2のサイズは、基準サイズの2倍に設定される。また、メモリセル21_3に対応するN型FETN10_3、N11_3、N12_3、N13_3のサイズは、基準サイズの4倍に設定される。
【0070】
例えば、入力データINPがハイレベルの論理値“1”で、メモリセル21_2および21_3からロウレベルの論理値“0”が出力され、メモリセル21_1からハイレベルの論理値“1”が出力されている場合、N型FETN12_1、N13_1がオン状態となり、これらのN型FETを、“1”を表す基準電流が流れることになる。このとき、メモリセル21_0に格納されている符号ビットによって、N型FETN10_1~N10_3またはN11_1~N11_3がオン状態となる。その結果、データ線PBLまたはNBLから、電圧配線CVSSに向かって基準電流が流れることになる。
【0071】
同様に、例えば入力データINPがハイレベルの論理値“1”で、メモリセル21_2および21_3からハイレベルの論理値“1”が出力され、メモリセル21_1からロウレベルの論理値“0”が出力されている場合、N型FETN12_2、13_2、N12_3、N13_3がオン状態となる。このときの符号ビットによって、N型FETN10_1~N10_3またはN11_1~N11_3がオン状態となる。その結果、データ線PBLまたはNBLから、電圧配線CVSSに向かって基準電流の6倍の電流が流れることになる。
【0072】
このようにして、入力データINPと積演算メモリセル20に格納されているデータとの積演算が実行され、積演算の実行結果に応じた電流が、データ線PBLまたはNBLから、電圧配線CVSSに向かって流れ、和演算を行うことが可能となる。
【0073】
図9に示した積演算メモリセル20は、4個のメモリセルと12個のN型FETによって構成することができる。それぞれのメモリセルは、6個のFETにより構成されるため、積演算メモリセル20が必要とするFETの数は、4×6+12=36個となる。実施の形態4で必要とされるFETの数は、メモリセルを構成するFETの数を計算しただけでも、2×7×6=84となる。メモリセルを構成するFETの数だけを考えても、14個のメモリセルを4個に低減することが可能である。
【0074】
図9では省略しているが、メモリセル21_0~21_3は、図2で説明したように、ワード線および相補データ線が接続されている。ワード線と相補データ線によって、メモリセル21_0~21_3からメモリセルを選択し、選択したメモリセルに符号ビットまたは絶対値ビットを書き込む。図9の例では、絶対値ビットの数が3ビットであり、符号ビットの数が1ビットである。そのため、3ビットをデコードすることにより、“0”~“7”を表し、符号ビットによって正負の符号を付けることにより、“+7”~“0”~“-7”の15値を表すことができる。
【0075】
実施の形態5によれば、より多値のデータを、少ない数のFETによって構成された積演算メモリセルに格納することができるため、小面積化を図ることができる。
【0076】
(実施の形態6)
図10は、実施の形態6に係わる積演算メモリセルの構成を示す回路図である。実施の形態6では、和演算を電圧で実現する積演算メモリセルが提供される。図10において、30は積演算メモリセルを示している。積演算メモリセル30は、2つのメモリセル2、3と、メモリセル2、3に対応したナンド回路31、32と、イネーブル信号ENに基づいて制御されるスイッチ34~37と、メモリセル2、3に対応した容量素子38、39とを備えている。
【0077】
図1で説明したように、メモリセル2は、積演算メモリセル30に論理値“+1”を格納するのに用いられ、メモリセル3は、積演算メモリセル30に論理値“-1”を格納するのに用いられる。ナンド回路31には、メモリセル2の出力と入力データINPとが供給され、ナンド回路31は、否定論理積を実行して出力する。同様に、ナンド回路32には、メモリセル3の出力と入力データINPとが供給され、ナンド回路32は、否定論理積を実行して出力する。
【0078】
ナンド回路31の出力は、スイッチ35を介して容量素子38の一方の電極に供給され、ナンド回路32の出力は、スイッチ37を介して容量素子39の一方の電極に供給される。容量素子38および39の他方の電極には、接地電圧Vsが供給される。また、容量素子38の一方の電極は、スイッチ34を介してデータ線PBLに接続され、容量素子39の一方の電極は、スイッチ36を介してデータ線NBLに接続されている。
【0079】
スイッチ35と37は、イネーブル信号ENによって、オン状態またはオフ状態に制御される。スイッチ34と36には、論理反転されたイネーブル信号/ENが供給されている。図10では、インバータ回路33が、イネーブル信号ENを論理反転して、イネーブル信号/ENを出力している。このインバータ回路33は、積演算メモリセル30に設けてもよいし、複数の積演算メモリセル30に対して、共通に設けるようにしてもよい。
【0080】
図10に示した積演算メモリセル30においては、イネーブル信号ENがロウレベルの論理値“0”のときに、ナンド回路31、32において実施された否定論理積の結果が、対応する容量素子38、39に蓄えられる。蓄えられた結果とデータ線PBL、NBLにおけるデータとの和演算が、イネーブル信号ENがハイレベルの論理値“1”のときに、実行される。以下、具体的に説明する。
【0081】
イネーブル信号ENがロウレベルのとき、スイッチ35および37には、ハイレベルのイネーブル信号/ENが供給されているため、スイッチ35および37はオン状態となる。これにより、ナンド回路31、32の出力は、電気的に容量素子38、39の一方の電極に接続される。このとき、スイッチ34、36は、ロウレベルのイネーブル信号ENによってオフ状態となっており、容量素子38、39の一方の電極とデータ線PBL、NBLとは電気的に分離されている。これにより、容量素子38は、対応するメモリセル2に格納されている論理値と入力データINPの論理値との間の否定論理積の結果に従って充電される。同様に、容量素子39は、対応するメモリセル3に格納されている論理値と入力データINPの論理値との間の否定論理積の結果に従って充電される。
【0082】
次に、イネーブル信号ENがハイレベルとなることにより、スイッチ35および37はオフ状態となり、スイッチ34および36は、データ線PBL、NBLと容量素子38、39の一方の電極とを電気的に接続するようにオン状態となる。容量素子38が、データ線PBLに接続されることにより、データ線PBLの寄生容量等と容量素子38との間で電荷分散が行われ、データ線PBLの電圧が決定される。同様に、データ線NBLの電圧は、容量素子39とデータ線NBLの寄生容量等との間で行われる電荷分散によって決定される。
【0083】
次に、積演算メモリセル30における積演算の結果が、“0”、“+1”および“-1”になる場合について説明する。
【0084】
積演算の結果が“0”になるのは入力データINPが”0”、または、メモリセル2、3の両方の格納データが”0”の時である。このときには、ナンド回路31、32の出力が電源電圧Vdのようなハイレベルとなるため、スイッチ35、37を介して、容量素子38、39は、電源電圧Vdがチャージされる。半導体装置内で、例えば積和命令が発行されることによりイネーブル信号ENが、ロウレベルからハイレベルに変化する。これにより、容量素子38、39が、データ線PBL、NBLに接続される。
【0085】
一方、積演算の結果が“+1”のときは、メモリセル2に対応する容量素子38が、接地電圧Vsのようなロウレベルにディスチャージされる。また、積演算の結果が“-1”のときは、メモリセル3に対応する容量素子39が、ロウレベルにディスチャージされる。イネ-ブル信号ENがハイレベルへ変化するのを受けて容量素子38、39はデータ線PBL、NBにそれぞれ接続される。
【0086】
データ線PBL、NBLには、複数の積演算メモリセルが接続されている。そのため、データ線PBL、NBLに接続された電源電圧Vdにチャージされている容量素子の個数と、接地電圧Vsにディスチャージされている容量素子の個数の差が、積和結果となる。具体的にはデータ線PBLとNBLとの電圧差が、積和結果となる。
【0087】
実施の形態6では、容量素子を用いて和演算が実行されるため、FETの電流バラツキ等による影響を低減することが可能である。
【0088】
(実施の形態7)
図11は、実施の形態7に係わる半導体装置の構成を示すブロック図である。半導体装置の例としては、大量の積和演算を実行するマイコンが挙げられる。マイコンは、複数の回路ブロックを含んでいるが、図11には、説明に必要な回路ブロックのみが示されている。図11において、40は、半導体装置に形成された積和演算機能付きメモリマクロ(以下、メモリマクロと称する)を示している。
【0089】
メモリマクロ40は、実施の形態1~6で説明した積演算メモリセルがマトリクス状に配置されたメモリアレイ41と、A/D変換部42と、入力データをラッチし、駆動するINPラッチ(入力データ保持回路)&ドライバ48と、主にA/D変換部42およびINPラッチ&ドライバ48を制御するMAC制御部43とを備えている。また、メモリマクロ40は、ロウデコーダ&ワードドライバ44と、データライト/センス部45と、入出力ラッチ回路部46と、リード/ライト制御部47とを備えている。リード/ライト制御部47は、主にロウデコーダ&ワードドライバ44、データライト/センス部45および入出力ラッチ回路部46を制御するが、メモリマクロ40の全体的な制御も行う。
【0090】
メモリアレイ41は、複数のメモリセル列41_0~41_nによって構成されている。また、A/D変換部42は、複数のA/D変換回路42_0~42_nによって構成されている。同様に、データライト/センス部45も、複数のデータライト/センス単位回路45_0~45_nによって構成され、入出力ラッチ回路部46も、複数の入出力ラッチ単位回路46_0~46_nによって構成されている。
【0091】
メモリセル列41_0~41_nと、A/D変換回路42_0~42_nと、データライト/センス単位回路45_0~45_nと、入出力ラッチ単位回路46_0~46_nとは、一対一に対応している。例えば、メモリセル列41_0と、A/D変換回路42_0と、データライト/センス単位回路45_0と、入出力ラッチ単位回路46_0とが、一対一に対応している。
【0092】
メモリセル列41_0は、例えば図2に示した相補データ線(第2データ線)BB、BTと、データ線(第1データ線)PBL、NBLと、相補データ線BB、BTおよびデータ線PBL、NBLに接続された複数の積演算メモリセル1を備えている。なお、相補データ線BB、BTおよびデータ線PBL、NBLは、図11において符号49_Hで示す方向に延在している。メモリセル列41_0に対応するA/D変換回路42_0は、対応するメモリセル列41_0に設けられているデータ線PBL、NBL間の電流量の差をデジタル信号に変換し、積和演算の結果を、MQ出力データMQ[0]として出力する。
【0093】
入出力ラッチ単位回路46_0には、対応するメモリセル列41_0に配置されている積演算メモリセル1に格納される入力データが、入力データD[0]として供給される。入出力ラッチ単位回路46_0は、供給された入力データD[0]をラッチし、対応するデータライト/センス単位回路45_0を介して、対応するメモリセル列41_0に設けられている相補データ線BB、BTに供給して、入力データD[0]を、積演算メモリセル1に書き込む。また、特に制限されないが、入出力ラッチ回路46_0は、データライト/センス単位回路45_0を介して、メモリセル列41_0に設けられている相補データ線BB、BTを用いて、積演算メモリセル1に書き込まれているデータをラッチ、出力データQ[0]として出力する。
【0094】
メモリセル列41_0と、これに対応するA/D変換回路42_0、データライト/センス単位回路45_0および入出力ラッチ単位回路46_0を例にして説明したが、残りのメモリセル列41_1~41_nと、これに対応するA/D変換回路42_1~42_n、データライト/センス単位回路45_1~45_nおよび入出力ラッチ単位回路46_1~46_nも同様である。
【0095】
図11において、BWM[0]~BWM[n]は、入出力ラッチ単位回路の単位で、入力データの書き込みをマスクするビットライトイネーブル信号である。例えば、入力データD[0]~D[n]が、時間的に並列に入出力ラッチ回路部46に供給されているときに、ビットライトイネーブル信号BWM[0]をディセーブルにする。これにより、入出力ラッチ単位回路46_0は、供給されている入力データD[0]の書き込みを行わないように動作する。
【0096】
また、図11において、MEM[0]~MEM[n]は、A/D変換回路単位で、積和演算をマスクする積和演算マスク信号である。例えば、積和演算マスク信号MEM[0]をディセーブルにすることにより、メモリセル列41_0で積和演算が行われないように設定される。
【0097】
メモリアレイ41には、図2に示したようなワード線NWL、PWLが、複数配置されている。例えば、複数のワード線は、図11において符号49_Vの方向に延在し、方向49_Hで示される方向に配列されている。ロウデコーダ&ワードドライバ44は、複数のワード線に接続されており、複数の積演算メモリセルに入力データD[0]~D[n]を書き込むときと、読み出すときに、複数のワード線からワード線を選択し、選択したワード線にハイレベルを供給する。この場合、ロウデコーダ&ワードドライバ44は、積演算メモリに接続されている2つのワード線NWL、PWL(図2)を1つの組として選択する。選択されたワード線に接続されている積演算メモリに対して、前記した入力データの書き込みと読み出しが行われることになる。
【0098】
メモリセルアレイ41には、入力データINP(図2)を供給する入力配線が、複数配置されている。入力配線は、図11において、方向49_Vの方向に延在し、方向49_Hの方向に配列されている。INPラッチ&ドライバ48は、複数の入力配線に接続されている。INPラッチ&ドライバ48には、乗算される入力データID[0]~ID[m]が供給される。INPラッチ&ドライバ48は、供給された入力データID[0]~ID[m]をラッチし、入力データINPとして、入力配線に供給する。
これにより、入力データID[0]~ID[m]に対応した入力データINPが、メモリセル列41_0~41_nのそれぞれに配置されている複数の積演算メモリセルに供給される。それぞれの演算メモリセルにおいては、格納されているデータと、入力データINPとの積演算が行われ、メモリセル列ごとに、積演算の結果の和演算が実行されて、MQ出力データMQ[0]~MQ[n]として出力される。
【0099】
実施の形態7によれば、メモリセル列ごとに、A/D変換回路が設けられているため、同時に複数の積和演算を実施することが可能であり、積和演算の高速化を図ることが可能である。
【0100】
(実施の形態8)
実施の形態8では、入力データINPが多値化された半導体装置が提供される。例えば実施の形態5では、積演算メモリセルに格納される数(データ)を多値化する構成を説明した。これに対して、実施の形態8では、積演算メモリセルに格納されている数に対して掛けられる数を多値化する構成を説明する。
【0101】
図12は、実施の形態8に係わる半導体装置を説明するための図である。ここで、図12(A)は、実施の形態7に係わる半導体装置50の構成を示すブロック図であり、図12(B)は、図12(A)に示した半導体装置50の動作を説明するための特性図である。
【0102】
図12(A)は、図11と類似しているので、相異点を主に説明する。図11に対して、図12においては、INPラッチ&ドライバ48が変更されている。すなわち、図11に示したINPラッチ&ドライバ48は、INPラッチ回路48_1と、D/A変換回路48_2と、INPドライバ回路48_3に変更されている。
【0103】
半導体装置50に供給される入力データID[0]~ID[m]は、多値化されたデジタル信号である。INPラッチ回路48_1は、入力データID[0]~ID[m]をラッチし、D/A変換回路48_2に供給する。D/A変換回路48_2は、供給された入力データID[0]~ID[m]のそれぞれを、対応するアナログ値に変換して、INPドライバ回路48_3へ出力する。INPドライバ回路48_3は、供給された入力データID[0]~ID[m]に対応するアナログ値を、入力データINP(図2)として、メモリセルアレイ41に配置されている入力配線に供給する。
【0104】
入力配線を介して、アナログ値の入力データINPが供給された積演算メモリセルは、格納されているデータと供給されたアナログ値との間で、積演算を実行する。図2に示した積演算メモリセル1を例にして述べると、格納されているデータが、論理値“+1”または“-1”の場合、N型FETN5またはN6を介して、供給されたアナログ値に従った電流が、データ線PBLまたはNBLから電圧配線CVSSへ流れる。すなわち、積演算メモリセル1において、電流型の積演算が実行され、データ線PBLまたはNBLにおいて電流型の和演算が実行されることになる。
【0105】
図12(B)は、積演算メモリセルに供給される入力データとデータ線PBL、NBLから積演算メモリセルへ流れる電流との関係を示す特性図である。例えば図2に示すように、入力データは、N型FETN7のゲート電極に供給され、このN型FETN7を流れるドレイン電流に応じた電流が、データ線PBLから電圧配線CVSSに流れることになる。FETN7を流れるドレイン電流は非線形であるため、図12(B)に示すように、電圧に対して電流は非線形となる。
【0106】
実施の形態8においては、データ線PBL、NBLから積演算メモリセルに流れる電流が、入力データID[0]~ID[m]によって表される電圧値に対して線形になるように、入力配線に供給されるアナログ値が調整される。この調整は、例えばD/A変換回路48_2における変換特性を調整するようにしてもよいし、D/A変換回路48_2から出力されたアナログ値をINPドライバ回路48_3において調整するようにしてもよい。これにより、積演算において、掛けられる数も多値化することが可能となる。
【0107】
実施の形態8によれば、積演算において掛けられる数も多値化をすることが可能となるため、学習、推論の精度をさらに向上させることが可能である。
【0108】
(実施の形態9)
実施の形態9では、実施の形態8で説明したメモリセル列およびメモリセル列に対応するA/D変換回路の一例を説明する。
【0109】
図13および図14は、実施の形態9に係わる半導体装置の構成を示す図である。図13には、1つのメモリセル列とそれに関連する部分が示されている。具体的には、図8(A)に示したメモリセル列41_0と、それに関連する部分が、図13(A)に例示されている。
【0110】
メモリセル列41_0は、データ線PBL、NBLと、データ線PBL、NBLのそれぞれに接続された複数の積演算メモリセルTbcと、2種類のリファレンスセルR1、R0.5とを備えている。図13の例では、リファレンスセルR1として、128個のリファレンスセルR1(0)~R1(127)と、1個のリファレンスセルR0.5とが、メモリセル列41_0に設けられている。図13において、AL[0]~AL[147]は、メモリセル列41_0を横切るように配置された入力配線に供給される入力データを示している。
【0111】
積演算メモリセルTbcとしては、図14(A)に示す積演算メモリセルが用いられている。図14(A)に示した積演算メモリセルの構成は、図6に示したものと同じであるため、説明は省略する。
【0112】
メモリセル列41_0において、同じ入力配線には4つの積演算メモリセルが接続されている。同じ入力配線に接続された4つの積演算メモリセルTbcから1つの積演算メモリセルTbcを選択するカラムアドレスが、図14(A)では、符号YAとして示されている。4つの積演算メモリセルTbcから1つの積演算メモリセルを選択するために、カラムアドレスYAは、4ビットYA[0:3]によって構成されている。カラムアドレスYAによって選択された積演算メモリセルにおいて、入力配線を介して供給された入力データAL[0]~AL[147]が、選択された積演算メモリセルに格納されているデータと積演算される入力データINPとなる。
【0113】
図14(B)には、リファレンスセルR1の構成が示されている。リファレンスセルR1は、積演算メモリセルTbcと同様に、データ線PBLとNBLとの間に、ソース・ドレイン経路が直列的に接続されたN型FETN14~N17と、N型FETN15とN16との間を接続するノードと電圧配線CVSSとの間に接続されたN型FETN18とを備えている。すなわち、リファレンスセルR1は、積演算メモリセルTbcと類似した構造を有している。異なる点は、カラムアドレスYAの代わりに、電源電圧Vdが、N型FETN14とN17のゲート電極に供給され、メモリセル2、3の出力の代わりに選択信号RN、RPが供給され、入力データINPの代わりに制御信号CDが供給されていることである。リファレンスセルR1を、積演算メモリセルTbcと類似した構造とすることにより、リファレンスセルR1は、データ線PBL、NBLに対して、積演算メモリセルTbcと同等(=1)の駆動力を有するようにされている。
【0114】
図14(C)には、リファレンスセルR0.5の構成が示されている。リファレンスセルR0.5は、リファレンスセルR1と類似した構成を有している。相異点は、リファレンスセルR0.5においては、N型FETN15とN16との間を接続するノードと電圧配線CVSSとの間に接続されたN型FETが、N18_1~N18_3に増えていることである。これにより、データ線PBL、NBLに対する、リファレンスセルR0.5の駆動力は、リファレンスセルR1、言い換えるならば、積演算メモリセルTbcの駆動力の半分(=0.5)となっている。
【0115】
図13に戻って、説明する。図13において、60は制御ロジック部を示し、61は比較回路を示し、62はシュミットトリガ型ナンド回路を示し、N19はN型FETを示している。データ線PBL、NBLは、比較回路61と、シュミットトリガ型ナンド回路62とに接続されている。また、積演算メモリセルTbcにおける電圧配線CVSS、リファレンスセルR1、R0.5における電圧配線CVSSは、N型FETN19を介して接地電圧Vsに接続されている。
【0116】
制御ロジック部60には、比較回路61からの比較結果OUTと、シュミットトリガ型ナンド回路62からの制御信号PSが供給される。また、制御ロジック部60は、前記したカラムアドレスYA[0:3]と、比較回路61を制御する制御信号と、N型FETN19を制御する積和演算イネーブル信号MACEBFと、選択信号RN、RPと、制御信号CDを出力する。後で説明するが、制御ロジック部60と比較回路61とによって、A/D変換の機能が提供される。すなわち、制御ロジック部60と比較回路61によって、A/D変換回路が構成されていると見なすことができる。このA/D変換回路によって得られた結果が、積和演算の結果となり、MQ出力データMQ[0]として出力される。
【0117】
各積演算メモリセルTbcは、図2等でしたように3値のデータを格納している。すなわち、各積演算メモリセルTbcは、“+1”、“0”、“-1”のいずれかの論理値を格納している。また、入力データINPとしては、2値のデータが供給される。すなわち、“0”または“1”が入力データINPとして、積演算メモリセルTbcに供給される。
【0118】
実施の形態9において、積和演算は、式(1)に示すように、論理値が“+1”側の積和値と、論理値が“-1”側の積和値に分離して演算する。ここで、MQは、積和演算の結果であるMQ出力データを示し、INP(i)は、i番目の入力データINPの論理値を示し、Tbc(i,YA)は、i番目であってカラムアドレスがYAの積演算メモリセルに格納されている論理値を示している。さらにTbcp(i)は、論理値“+1”を格納したi番目の積演算メモリセルを示し、Tbcn(i)は、論理値“―1”を格納したi番目の積演算メモリセルを示している。
【0119】
【数1】
【0120】
ここで、Tbcp(i)は、式(2)で表され、Tbcnは、式(3)で表される。
【0121】
【数2】
【0122】
<A/D変換>
次に一例を用いて、A/D変換の動作を説明する。実施の形態9においては、8つのステップでA/D変換を行う。図15は、実施の形態9に係わるA/D変換を説明するためのタイミング図である。図15(A)および(B)において横軸は時間を示している。また、1st~8thは、前記した8つのステップを示している。
【0123】
一例として、積和演算により、“+1”側の積和値が「46」で、“-1”側の積和値が「17」の場合を説明する。すなわち、データ線PBLにおける電流が、積和値「46」を示し、データ線NBLにおける電流が、積和値「17」を示している。この場合、積和値の差分は、「29」となる。この差分に対応したMQ出力データMQ[0]が、制御ロジック部60から出力される。
【0124】
図15(A)において、第1ステップ1stのとき、比較回路61は、データ線PBLとNBLの電流を比較する。「46」>「17」であるため、制御ロジック部60は、符号“+”を示す論理値“0”を、MQ出力データとして出力する。また、データ線PBLの電流の方が大きいため、制御ロジック部60は、選択信号RPをハイレベルにし、選択信号RNをロウレベルにする。さらに、制御ロジック部60は、データ線PBLにリファレンスセルR0.5を接続し、データ線NBLに指定した個数のリファレンスセルを接続する。ここでの指定の個数は、128個あるリファレンスセルR1の半分の数である「64」である。
【0125】
第2ステップ2ndにおいて、制御ロジック部60は、制御信号CDによって、データ線PBLに接続されているリファレンスセルR0.5におけるN型FETN18_1~N18_3をオン状態にする。また、制御ロジック部60は、制御信号CDによって、データ線NBLに接続されている64個のリファレンスセルR1におけるN型FETN18をオン状態にする。これにより、データ線PBLにおける値は、46+0.5=46.5となり、データ線NBLにおける値は、17+64=81となる。比較回路61は、この「46.5」と「81」とを比較する。比較の結果、データ線NBLの値が大きくなるため、制御ロジック部60は、論理値“0”をMQ出力データMQ[0]として出力する。
【0126】
第3ステップ3rdでは、制御ロジック部60は、指定の個数として「64」の半分の「32」を指定し、制御信号CDによって、N型FETN18、N18_1~N18_3をオン状態にする。これにより、データ線PBLの値は、以前と同じ「46.5」であるが、データ線NBLの値は、17+32=49となる。比較回路61による比較によって、データ線NBLの値が大きいと判定されるため、制御ロジック部60は、論理値“0”をMQ出力データMQ[0]として出力する。
【0127】
第4ステップ4thでも、制御ロジック部60は、第3ステップ3rdと同様に、リファレンスセルR1の個数を指定して、制御信号CDを出力する。ただし、第4ステップ4thでは、リファレンスセルR1の個数として、半分の「16」を指定する。これにより、比較回路61は、データ線PBLにおける値「46.5」とデータ線NBLにおける値17+16=33とを比較する。第4ステップ4thでは、データ線PBLの値が、データ線NBLの値よりも大きくなるため、制御ロジック部60は、論理値”1”をMQ出力データMQ[0]として出力する。
【0128】
第5ステップ5thでは、制御ロジック部60は、リファレンスセルR1の個数として「24」を指定する。これにより、データ線NBLの値は、17+24=41となり、比較回路61の比較により、データ線PBLの値が、データ線NBLの値よりも大きいと判定されるため、制御ロジック部60は、論理値”1”をMQ出力データMQ[0]として出力する。
【0129】
以降、第6ステップ6th~第8ステップ8thまで、リファレンスセルR1を指定する個数を、「28」、「30」、「29」と変化させながら、データ線PBLとデータ線NBLが比較される。比較により、データ線PBLの値が、データ線NBLの値よりも大きいとき、制御ロジック部60は、論理値”1”をMQ出力データMQ[0]として出力し、データ線NBLの値が、データ線PBLの値よりも大きいとき、制御ロジック部60は、論理値”0”をMQ出力データMQ[0]として出力する。
【0130】
これにより、積和演算の結果が、シリアルな8ビットに変換される。なお、最初のビットは符号ビットであり、符号ビットに続いて、最上位ビットから最下位ビットに向けて、順次ビットが出力される。
【0131】
次に、符号ビットが“-”となる例を、図15(B)を参照して説明する。ここでは、“+1”側の積和値が「17」、“-1”側の積和値が「46」の場合、すなわちデータ線PBLにおける値が「17」、データ線NBLにおける値が「46」の場合を説明する。「17」<「46」であるため、第1ステップ1stにおいて、制御ロジック部60は、符号が“-”を表す論理値“1”をMQ出力データMQ[0]として出力する。また、データ線NBLの値が大きいため、選択信号RPをロウレベルにし、選択信号RNをハイレベルにする。さらに、データ線NBLに対して、リファレンスセルR0.5を接続し、データ線PBLに指定した個数のリファレンスセルR1を接続する。
【0132】
制御ロジック部60は、第2ステップ2nd以降は、図15(A)と同様な動作を行うが、符号が“-”であるため、制御ロジック部60は、反転した論理値をMQ出力データMQ[0]として出力する。すなわち、制御ロジック部60は、データ線PBLの値が、データ線NBLの値よりも大きいとき、論理値“0”をMQ出力データMQ[0]として出力し、データ線NBLの値が、データ線PBLの値よりも大きいとき、論理値“1”をMQ出力データMQ[0]として出力する。これにより、図15(B)に示すように、シリアルに変換されたデジタル信号が、MQ出力データMQ[0]として出力される。
【0133】
このように、実施の形態9においては、二分法を用いて、データ線PBLとNBLの差を探索し、結果がシリアルのデジタル信号に変換されて出力される。
【0134】
実施の形態9においては、図15に示したMQ出力データMQ[0]のデータ長が、ユーザーの希望するデータ長になったところで、処理を終了させることが可能である。これにより、無駄なA/D変換に掛かる電力と時間を削減することが可能である。
【0135】
実施の形態9においては、さらに消費電力を低減するために、シュミットトリガ型ナンド回路62が設けられている。シュミットトリガ型ナンド回路62は、図14(D)に示すような構成を有している。すなわち、シュミットトリガ型ナンド回路62は、P型FETP3~P5とN型FETN18~N23によって構成されている。
【0136】
シュミットトリガ型ナンド回路62は、“+1”側の論理積が「0」で、“-1”側の論理積が「0」の場合を検出する回路として機能する。機械学習や推論においては、積和演算の結果として“+1”側も“-1”側も積和値が「0」という状態が多々発生する。実施の形態9に係わる構成では、積和値が「0」の場合、データ線PBL、NBLの電荷を接地電圧Vs側に引き抜くパスが発生しない。そのため、データ線PBL、NBLの電圧は、電源電圧Vdに維持されることになる。論理閾値を電源電圧Vd側に高くしたシュミットトリガ型ナンド回路62を用いることにより、データ線PBLとNBLの両方が、電源電圧Vdレベルであることを検知することができる。検知した結果は、制御信号PSによって、制御ロジック部60に通知される。なお、シュミットトリガ型ナンド回路62は、N型FETN19とともに、積和演算イネーブル信号MACEBFによって制御される。すなわち、N型FETN19がオン状態となるときに、シュミットトリガ型ナンド回路62は、動作可能となるように制御される。
【0137】
データ線PBLとNBLの両方が、電源電圧Vdレベルであることが、制御信号PSによって通知されると、制御ロジック部60は、前記したA/D変換の動作を行わずに、論理値“0”をMQ出力データMQ[0]として出力する。これにより、消費電力をさらに低減することが可能である。
【0138】
実施の形態9においては、例えば、148個の入力データAL[0]~AL[147]が、実質的に同時に入力配線に供給される。これにより、メモリセル列41_0においては、148個の積演算が実質的に同時に実施され、148個の積演算の結果の和演算も、実質的に同時に実施されることになる。
【0139】
実施の形態9によれば、ユーザーが自由に、MQ出力データMQ[0]のデータ長を変えることができるため、消費電力と性能のトレードオフに係わる調整の自由度が増すことが可能である。また、論理積が「0」となる場合には、A/D変換の動作を行わず、MQ出力データとして論理値“0”を出力するため、消費電力の低減を図ることが可能である。
【0140】
(実施の形態10)
図16および図17は、実施の形態10に係わる半導体装置の構成を示す図である。図15(A)は、図13と類似しているので、主に相異点を説明する。図16(A)において、P型FETP6およびP7は、データ線PBL、NBLと電源電圧Vdとの間に、そのソース・ドレイン経路が接続され、データ線PBL、NBLをバイアスするバイアス回路を構成している。また、図16(A)においては、図13に示した比較回路61がバッファ回路61として示されている。
【0141】
図16(A)および(B)に示すように、メモリセルには、データ線PBL、NBLに、148行×4列=592個の積演算メモリセルTbcと、128個のリファレンスセルR1と、1個のリファレンスセルR0.5が接続されている。
【0142】
図17は、実施の形態10を説明するための図である。図17(A)には、コンパレータの構成が示されている。コンパレータは、一対のN型FETと、負荷と、電流源とを備えている。一対のN型FETが差動FETを構成し、コンパレータは、差動FETのゲート電極における電位差を増幅して、出力する。実施の形態10においては、積演算メモリセルTbc、リファレンスセルR1、R0.5においてスイッチを構成するFETが、コンパレータの差動FETとして用いられる。積演算メモリセルTbcを例にして説明すると、図17(A)において破線で示すように、スイッチを構成するN型FETN6、N7およびN9が、一対の差動FETの一方のFETとして機能し、スイッチを構成するN型FETN5、N7およびN8が、一対の差動FETの他方のFETとして機能する。この場合、データ線PBL、NBLに接続されたP型FETP6、P7は、差動FETへ電流を供給する電流供給部と見なすことができ、N型FETN19は、差動FETに対するスイッチ回路と見なすことができる。実施の形態10では、P型FETP6、P7とN型FETN19とを備える回路を、ソーススイッチS-SWと称する。
【0143】
積演算メモリセルを構成するFETの一部を、コンパレータを構成するFETとして機能させる例を説明したが、リファレンスセルR1、R0.5についても同様である。すなわち、リファレンスセルR1においては、N型FETN16~N18が、一方の差動FETとして機能し、N型FETN14、N15、18が、他方の差動FETとして機能する。また、リファレンスセルR0.5においては、N型FETN16、N17、N18_1~N18_3が、一方の差動FETとして機能し、N型FETN14、N15、18_1~N18_3が、他方の差動FETとして機能する。
【0144】
これにより、“+1”側あるいは“-1”側の積和値が小さいときに、コンパレータによってデータ線PBL、NBLの差電位を増幅することが可能となり、動作マージンを広げることが可能である。また、ソーススイッチS-SWを、図17(B)に示すように、分散して配置することにより、データ線PBL、NBLおよび電圧配線CVSSのデータ偏りによる誤動作を低減することが可能である。
【0145】
図16(A)に示すように、リファレンスセルR0.5は、制御信号CD0.5によって制御され、リファレンスセルR1は、7つの制御信号CD[0:6]によって制御される。この場合、制御信号CD[0]には、1個のリファレンスセルR1が接続され、制御信号CD[1]には、2個のリファレンスセルR1が接続され、制御信号CD[2]には、4個のリファレンスセルR1が接続される。また、制御信号CD[3]には、8個のリファレンスセルR1が接続され、制御信号CD[4]には、16個のリファレンスセルR1が接続され、制御信号CD[5]には、32個のリファレンスセルR1が接続され、制御信号CD[6]には、64個のリファレンスセルR1が接続されている。すなわち、制御信号CD[0:6]は重み付けされている。
【0146】
また、図17(B)では、積演算メモリセルTbcによって構成されたTbcアレイおよびリファレンスセルR1により構成されたR1アレイも分散されて配置されていると見なすこともできる。このように、分散配置することにより、TbcアレイおよびR1アレイにおいても、データの偏りによる誤動作を低減することが可能である。
【0147】
実施の形態10によれば、“+1”側、“-1”側の積和値が、小さいときに、データ線PBL、NBLの差電位を増幅することが可能となり、動作マージンを広げることが可能である。また、ソーススイッチS-SW、Tbcアレイ、R1アレイを分散配置することにより、誤動作を低減することが可能である。
【0148】
(実施の形態11)
実施の形態9では、MQ出力データMQ[0]のデータ長を、ユーザーが任意に変えることができる例を示した。言い換えるならば、ユーザーが、任意に、MQ出力データMQ[0]のデータ長を圧縮する例を、実施の形態9として説明した。実施の形態11においては、他のデータ圧縮を、ユーザーが選択することが可能な構成が提供される。
【0149】
図18は、実施の形態11に係わるA/D変換を説明するための図である。
【0150】
実施の形態9での説明と同様に、A/D変換回路は8ビットに変換するものとして説明する。最大分解能のデータ長が8ビットの場合、積和演算の結果の値と、MQ出力データMQ[0]で表される出力値は、図18(A)に示すように、一対一に対応する。
【0151】
これに対して、実施の形態9で説明したように、A/D変換の動作を途中で止めた場合、例えば6サイクル(=図15の第6ステップ:6thに相当)で止めた場合、6ビットの出力値で表される値は、“-31”~“+31”の範囲となる。このときの状態が、図18(B)に示されている。図18(B)において、破線は、最大分解能の場合を示しており、6サイクルで止めた場合には、実線で示すように、最大分解能で表される真の値を1/4に圧縮した状態となる。すなわち、A/D変換回路の特性は、真の値に対して1/4に圧縮した状態を出力する関数で表わされることになる。
【0152】
しかしながら、用途によっては、所定の値までは、真の値に等しい値が出力されるような関数がA/D変換として望まれる場合がある。例えば、6サイクルを指定したときに、図18(C)に示すように、“-31”~“+31”の範囲が、真の値と等しくなり、範囲外では一定となるような関数が望まれる場合がある。
【0153】
出力値が“+38”の場合を例にして、図18(B)の場合と図18(C)の場合を示すと、図18(D)に示すようになる。図18(D)おいて、条件1は7ビット目まで、真の値を示すように指定した場合を示し、条件2は図18(B)のような圧縮を指定した場合を示している。条件1では、7ビット目まで真の値となるのに対して、条件2では、7ビット目が真の値に対して1/2の値となっている点が異なる。これらは用途によって変わるため、どちらかを選択できるようにすることが必要となる。
【0154】
図19は、実施の形態11に係わる半導体装置の構成を示す回路図である。図19には、1組のデータ線PBL、NBLに係わる部分の回路が示されている。また、図20は、実施の形態11に係わる半導体装置のタイミング図である。ここで、図20(A)は、データ長を8ビットに指定した場合を示し、図20(B)は、データ長を7ビットとし、図18(C)に示すような変換を指定した場合を示している。
【0155】
1組のデータ線PBL、NBLには、P型FETP30~P32によって構成されたプリチャージ回路が接続されている。また、データ線PBL、NBLは、一対の転送スイッチを介して差動センスアンプに接続されている。一対の転送スイッチは、差動センスアンプ活性化信号MACSAFBによって制御されるN型FETN30、N34とP型FETP36、P37とによって構成されている。また、差動センスアンプは、N型FETN31~N33とP型FETP33~P33によって構成され、差動アンプ活性化信号MACSAEBによってP型FETP33とN型FETN33がオン状態となることにより、一対の転送スイッチを介して供給されたデータ線PBL、NBL間の電位差を増幅し、ラッチする。なお、データ線PBL、NBLには、実施の形態10で説明したコンパレータにより増幅された電位差が供給される。
【0156】
差動センスアンプの出力は、ナンド回路ND30、ND31、インバータ回路IV30~IV32、P型FET38~P41、N型FETN35~N38によって構成された切り替えセレクタに供給されている。ナンド回路ND30、ND31に供給されている制御信号BLSELがハイレベルかロウレベルかにより、ナンド回路ND30またはND31の出力がロウレベルになる。例えば、ナンド回路ND30の出力がロウレベルとなることにより、増幅されたデータ線PBLにおける電圧が選択され、インバータ回路IV33を介して、MQ出力データMQ[0]として出力される。これに対して、ナンド回路ND31の出力がロウレベルの場合、増幅されたデータ線NBLにおける電圧が選択され、インバータ回路IV33を介して、MQ出力データMQ[0]として出力される。これは、実施の形態9で説明したように、符号が“+”か“-”かによって、反転するためである。
【0157】
切り替えセレクタの出力は、ノア回路NR30、P型FETP42、P43およびN型FETN39、N40によって構成されたラッチ回路によってラッチされる。このラッチ回路によって、MQ出力データMQ[0]の論理値が保持されるとともに、ラッチ回路の出力は、制御信号MQCとして、ラッチ回路FF31~FF34に供給される。
【0158】
積和演算マスク信号MEMは、反転されてラッチ回路FF30でラッチされ、反転マスク信号MEとなる。この反転マスク信号MEと差動センスアンプ制御信号MACSAEとによって、ナンド回路ND32が、前記した差動アンプ活性化信号MACSAEBを形成する。さらに、反転マスク信号MEと積和演算モードイネーブル信号MACEとに基づいて、ナンド回路ND33が、積和演算イネーブル信号MACEBFを形成する。前記したプリチャージ回路は、積和演算イネーブル信号MACEBFと同位相の制御信号によって制御される。
【0159】
また、オン状態にするリファレンスセルR1の数を定める制御信号CDは、ラッチ回路FF32~FF34によって生成される。なお、制御信号CDは、7ビットであるが、図19には、そのうちの3ビットであるCD[4]~CD[6]と生成するラッチ回路のみが示されている。
【0160】
図20(A)では、まず初期化状態にするために、リセット信号RSTがハイレベルにされる。これにより、積和演算マスク信号MEMが、反転されてラッチ回路FF30でラッチされる。また、ラッチ回路FF31~FF34がリセットされる。次に、差動センスアンプ制御信号MACSAEがハイレベルに変化する。これに基づいて、データ線PBLとNBLとの間の電位差が差動センスアンプによりラッチされる。このとき、制御信号BLSELは、ラッチ回路FF31がリセットされているため、ハイレベルとなる。
【0161】
そのため、このときの差動センスアンプにラッチされている状態が、”+1”側の積和値>”-1”側の積和値(データ線PBLの電圧>データ線のNBLの電圧)の場合には、論理値”0”が、MQデータとして出力される。
【0162】
その後、制御信号CNT1がアサートされると、ラッチ回路FF31の出力である制御信号BLSELがロウレベルとなり、ハイレベルの選択信号PRと、ロウレベルの選択信号PNが、インバータ回路IV34、IV35によって生成される。また、MQ出力データは、データ線NBL側からの出力されているため、“+1”側の積和値<“-1”側の積和値の場合、論理値“0”が出力される。これとともに、制御信号CNT[7]がアサートされて、制御信号CD[6]がハイレベルとなる。制御信号CD[6]がハイレベルとなることにより、64個のリファレンスセルR1がオン状態となる。次のタイミングでは、制御信号CNT[6]がアサートされて、制御信号CD[5]がハイレベルとなる。これにより、32個のリファレンスセルR1がオン状態となる。このように、制御信号CNT[7]~CNT[4]をアサートしていくことにより、リファレンスセルR1をオン状態にする数が調整されながら、積和値に対応した論理値が求まる。
【0163】
次に、データ長を7ビットに減らした場合を、図20(B)を参照して説明する。図18(C)に示すような変換するには、制御信号CNT[7]をアサートせずに、所望の制御信号CNT[n]からアサートすることで、実現することができる。
【0164】
具体的には、初期化状態が終わった後、符号ビットの出力が終わったタイミングで、制御信号CNTIとともに制御信号CNT[6]をアサートする。制御信号CNT[6]は、制御信号CD[6]を出力するラッチ回路FF32のイネーブルEにも接続されているが、最初だけ、制御信号C1STを論理値“1”にすることにより、制御信号CNT[6]用のラッチ回路FF32を動作させないようにする。これで、制御信号CD[6]はロウレベルを維持することになる。これにより、分解能は“-63”~“+63”までになり、図18(C)に示したのと同様に、データ長が7ビットまで、真の値と等しい値が出力される。このように、出力されるMQ出力データMQ[0]のデータ長は、ユーザーによって変更することが可能であり、データ長は可変である。
【0165】
実施の形態9で説明した制御信号PSは、ラッチ回路FF30のリセット端子に接続されている。そのため、図14(D)に示したシュミットトリガ型ナンド回路62が制御信号PSを出力することにより、ラッチ回路FF30から出力されている反転マスク信号MEはロウレベルとなる。これにより、積和演算イネーブル信号MACEBFがロウレベルとなり、積和演算動作は実行されない。また、反転マスク信号MEがロウレベルとなることにより、P型FETP43およびノア回路NR30を含むMQ出力データ用のラッチ回路は、リセットされる。すなわち、P型FETP43がオン状態となり、ハイレベルが、MQ出力データ用のラッチ回路からインバータ回路IV33に供給されることになり、MQ出力データはロウレベルの論理値”0”に固定される。
【0166】
実施の形態11によれば、ユーザーが自由に出力データ長を変える事ができるため、パワーと性能のトレードオフの調整自由度が増す。また、1組のデータ線に接続された積演算メモリセルにおける積和演算の結果が、論理値“0”であるか否かが、シュミットトリガ型ナンド回路62によって検出され、“0”の場合には、制御信号PSにより、MQ出力データは所定の論理値に設定され、A/D変換動作は実行されないため、低消費電力化を図ることができる。
【0167】
(実施の形態12)
図21は、実施の形態12に係わるリファレンスセルの構成を示す回路図である。図14で説明したように、リファレンスセルR1は、積演算メモリセルと類似した構成である。そのため、積演算メモリセルTbcの特性のバラツキに合わせて、リファレンスセルR1の特性もばらつくことになる。従って、リファレンスセルR1については、特性のバラツキを考慮する必要性は低い。
【0168】
これに対して、リファレンスセルR0.5は、FETを直列的に接続して流れる電流を絞り、積演算メモリセルの半分の電流が流れるように設定している。そのため、直列接続のFETの特性に、製造バラツキによるバラツキが発生すると、リファレンスセルR0.5を流れる電流が、積演算メモリセルの半分の電流に相当しないことが危惧される。実施の形態12においては、図14(C)に示したN型FETN18_1~N18_8が、図21に示すように、N型FETN50_1~N50_4、N51_1~N51_およびN52_1~N52_2に変更されている。ここで、N型FETN52_1、N52_2のゲート電極には、制御信号CDが供給される。一方、N型FETN50_1~50_4のゲート電極は、電流調整用のトリミング端子TRM0に接続され、N型FETN51_1~51_3のゲート電極は、電流調整用のトリミング端子TRM1に接続されている。
【0169】
リファレンスセルR0.5を流れる電流が、積演算メモリセルTbcを流れる電流の半分になるように、トリミング端子TRM0または/およびTRM1を、例えばN型FETN52_1、N52_2のゲート電極に接続する。トリミング端子TRM0、TRM1は、リファレンスセルR0.5の特性を変更する端子と見なすことができる。
【0170】
実施の形態12によれば、製造バラツキの影響を低減することが可能である。
【0171】
図22は、実施の形態1~12に係わる半導体装置が備える外部端子を示している。実施の形態1~12に係わる半導体装置は、多数の外部端子を備えているが、図22には、実施の形態1~12で説明した信号に係わる外部端子のみが、代表として示されている。図22には、外部端子名と、その個数、入力/出力の区別および機能が示されている。
【0172】
図22において、MACE端子には、積和演算モードを有効にするか否かを示す積和演算モードイネーブル信号MACEが供給され、RST端子には、リセット信号RSTが供給され、YA端子には、カラムアドレスYAが供給される。D端子には、積演算メモリセルに書き込まれる入力データDが供給され、MEM端子には、積和演算をマスクする積和演算マスク信号MEMが供給される。また、Q端子からは、積演算メモリセルに格納されているデータが出力され、MQ端子からは、積和演算の結果である積和演算出力データ(MQ出力データ)が出力される。
【0173】
勿論、図22に示した外部端子は、一例であって、これに限定されるものではない。
【0174】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【0175】
1、1_0、1_1,20、30、Tbc 積和演算機能付きメモリセル
2、3、21_0~21_3 メモリセル
4~6 スイッチ
7 定電流源
40 メモリマクロ
INP_L 入力配線
BB、BT 相補データ線
N1~N19、N30~N40、N14~N52_2 N型FET
NBL、PBL データ線
NWL、PWL ワード線
P1~P7、P30~P47 P型FET
R1、R0.5 リファレンスセル
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22