(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023124082
(43)【公開日】2023-09-06
(54)【発明の名称】半導体装置
(51)【国際特許分類】
G11C 11/417 20060101AFI20230830BHJP
H10B 10/00 20230101ALI20230830BHJP
【FI】
G11C11/417
H01L27/11
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2022027660
(22)【出願日】2022-02-25
(71)【出願人】
【識別番号】302062931
【氏名又は名称】ルネサスエレクトロニクス株式会社
(74)【代理人】
【識別番号】110000350
【氏名又は名称】ポレール弁理士法人
(72)【発明者】
【氏名】北形 大樹
(72)【発明者】
【氏名】田中 信二
【テーマコード(参考)】
5B015
5F083
【Fターム(参考)】
5B015JJ45
5B015KB91
5F083BS27
5F083GA11
5F083LA01
5F083LA03
5F083LA10
5F083LA12
5F083LA16
5F083LA21
5F083ZA01
5F083ZA12
5F083ZA21
(57)【要約】
【課題】メモリセルの電流や容量等の特性値のばらつきが低減可能な技術を提供することである。
【解決手段】半導体装置は、第一のデータ線と、第二のデータ線と、第一のデータ線および第二のデータ線に接続されるメモリセルと、を備える。メモリセルは、複数のスイッチと、第一のデータ保持回路と、第二のデータ保持回路と、第三のデータ保持回路と、第四のデータ保持回路と、入力線と、を備える。第三のデータ保持回路の保持する値に基づいて複数のスイッチのうち第一のデータ線に接続されるスイッチが制御される共に、第四のデータ保持回路の保持する値に基づいて複数のスイッチのうち第二のデータ線に接続されるスイッチが制御されることにより、メモリセルの特性値が変更可能である。
【選択図】
図4
【特許請求の範囲】
【請求項1】
第一のデータ線と、
第二のデータ線と、
前記第一のデータ線および前記第二のデータ線に接続されるメモリセルと、
前記第一のデータ線および前記第二のデータ線に接続される判定回路と、
を備え、
前記メモリセルは、
前記第一のデータ線および前記第二のデータ線に接続される複数のスイッチと、
第一のデータ保持回路と、
第二のデータ保持回路と、
第三のデータ保持回路と、
第四のデータ保持回路と、
入力線と、
を備え、
前記第一のデータ保持回路の保持する値と前記入力線に供給される入力データに基づいて前記複数のスイッチのうち前記第一のデータ線に接続されるスイッチが制御されると共に、前記第二のデータ保持回路の保持する値と前記入力線に供給される入力データに基づいて前記複数のスイッチのうち前記第二のデータ線に接続されるスイッチが制御されることにより、積演算が行われ、
前記第三のデータ保持回路の保持する値に基づいて前記複数のスイッチのうち前記第一のデータ線に接続されるスイッチが制御されると共に、前記第四のデータ保持回路の保持する値に基づいて前記複数のスイッチのうち前記第二のデータ線に接続されるスイッチが制御されることにより、前記メモリセルの特性値が変更可能な、半導体装置。
【請求項2】
請求項1の半導体装置において、
前記第一のデータ線および前記第二のデータ線に前記メモリセルが複数接続され、
複数の前記メモリセルのそれぞれの前記入力線に並行して入力データが供給され、
複数の前記メモリセルにおいて、前記入力データと前記第一のデータ保持回路および前記第二のデータ保持回路に格納されたデータによる積演算の結果が前記第一のデータ線および前記第二のデータ線に出力され、
複数の前記メモリセルから出力されたデータの和演算が行われる、半導体装置。
【請求項3】
請求項2の半導体装置において、
さらに、前記第一のデータ線および前記第二のデータ線に接続され、前記特性値の基準値を供給可能なリファレンスセルを備え、
前記第三のデータ保持回路および前記第四のデータ保持回路により選択される経路のうち前記基準値に近い特性値を出力する経路が選択される、半導体装置。
【請求項4】
請求項3の半導体装置において、
複数の前記メモリセルに共通に接続される複数の電流源を備え、電流値に基づいて、前記経路の選択の際に前記複数の電流源の何れかを選択可能な、半導体装置。
【請求項5】
請求項2の半導体装置において、
前記第一のデータ保持回路、前記第二のデータ保持回路、前記第三のデータ保持回路および前記第四のデータ保持回路はSRAMで構成され、前記SRAMは第一の動作状態および前記第一の動作状態よりもの電力が削減される第二の動作状態で動作可能であり、前記第二の動作状態で積和演算が行われる、半導体装置。
【請求項6】
請求項1の半導体装置において、
前記第一のデータ保持回路および前記第二のデータ保持回路は第一レイアウトで形成されるSRAMで構成され、前記第三のデータ保持回路および前記第四のデータ保持回路は第二レイアウトで形成されるSRAM構成される、半導体装置。
【請求項7】
第一のデータ線と、
第二のデータ線と、
共通電源線と、
3値のデータが格納され、格納されたデータと入力される入力データと前記第一のデータ線および前記第二のデータ線におけるデータとの間で積和演算が行われるメモリセルと、
を備え、
前記メモリセルは、
前記第一のデータ線と前記共通電源線との間のパスを導通または遮断させるための第一のデータ保持回路および第一のスイッチと、
前記第二のデータ線と前記共通電源線との間のパスを導通または遮断させるための第二のデータ保持回路および第二のスイッチと、
前記第一のデータ線と前記共通電源線との間のパスを切り替えるための第三のデータ保持回路および第三のスイッチと、
前記第二のデータ線と前記共通電源線との間のパスを切り替えるための第四のデータ保持回路および第四のスイッチと、
を備える、半導体装置。
【請求項8】
請求項7の半導体装置において、
前記第一のスイッチは前記第一のデータ保持回路に保持されるデータに基づいて制御され、
前記第二のスイッチは前記第二のデータ保持回路に保持されるデータに基づいて制御され、
前記第三のスイッチは前記第三のデータ保持回路に保持されるデータに基づいて制御され、
前記第四のスイッチは前記第四のデータ保持回路に保持されるデータに基づいて制御される、半導体装置。
【請求項9】
請求項8の半導体装置において、さらに、
前記第一のデータ線および前記第二のデータ線に接続され、前記第一のデータ線および前記第二のデータ線にリファレンスを供給するリファレンスセルと、
前記第一のデータ線および前記第二のデータ線に接続される判定回路と、
を備え、
前記判定回路の判定結果に基づいて前記第三のデータ保持回路および前記第四のデータ保持回路に格納されるデータが決定される、半導体装置。
【請求項10】
請求項9の半導体装置において、
さらに、前記第一のデータ線および前記第二のデータ線に接続され、前記第一のデータ線および前記第二のデータ線に前記リファレンスよりも小さいリファレンスを供給する第二のリファレンスセルを備える、半導体装置。
【請求項11】
第一のデータ線と、
第二のデータ線と、
共通電源線と、
第一の入力と、第二の入力と、第三の入力を備え、前記第一から第三の入力に制御される複数のスイッチを介して、前記第一のデータ線、或いは、第二のデータ線を共通電源線と接続する複数のメモリセルと、
前記第一のデータ線および前記第二のデータ線に接続される判定回路と、
を備え、
前記メモリセルは、
前記第一のデータ線と前記共通電源線との間に接続され、前記第一の入力に制御される第一のスイッチと、
前記第二のデータ線と前記共通電源線との間に接続され、前記第二の入力に制御される第二のスイッチと、
前記第一のデータ線と前記共通電源線との間に接続され、前記第三の入力に制御される第三のスイッチと、
前記第二のデータ線と前記共通電源線との間に接続され、前記第三の入力に制御される第四のスイッチと、
前記第一のデータ線と前記共通電源線との間に接続される第五のスイッチと、該第五のスイッチを制御する第一のデータ保持回路と、
前記第二のデータ線と前記共通電源線との間に接続される第六のスイッチと、該第六のスイッチを制御する第二のデータ保持回路とを備える、半導体装置。
【請求項12】
請求項11の半導体装置において、
さらに、前記第一のデータ線および前記第二のデータ線に接続され、前記第一のデータ線および前記第二のデータ線に前記メモリセルと同等の電流、或いは、電圧を供する構成のリファレンスセルを備え、
前記判定回路の判定結果に基づいて前記第一のデータ保持回路および前記第二のデータ保持回路に格納されるデータが決定される、半導体装置。
【請求項13】
請求項12の半導体装置において、
さらに、前記第一のデータ線および前記第二のデータ線に接続され、前記第一のデータ線および前記第二のデータ線に前記メモリセルよりも小さい電流、或いは、電圧を供する構成の第二のリファレンスセルを備える、半導体装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は半導体装置に関し、例えば積和演算を大量に実行することが要求される半導体装置に適用可能である。
【背景技術】
【0002】
ディープラーニングによる機械学習の発展に伴って、様々なところで人工知能(Artificial Intelligence:AI)が応用されつつある。この手法では、大量の積和演算が要求されるため、積和演算の処理をアクセラレーションするAIアクセラレータが用いられる。
【0003】
AIアクセラレータには、プロセッシング・イン・メモリ(Processing in Memory:PIM)が用いられることがある。例えば、特開2020-129582号公報(特許文献1)には、データ線に接続され、3値のデータを格納し、格納されたデータと入力された入力データとデータ線におけるデータとの間で積和演算を行うメモリセルを備える半導体装置が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1の構成では、データ線に接続されるメモリセルの数が増加すると、メモリセルの電流や容量等の特性値のばらつきにより安定した和演算が実施できないことがある。
【0006】
本開示のその他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0007】
本開示のうち代表的なものの概要を簡単に説明すれば次の通りである。すなわち、半導体装置は、第一のデータ線と、第二のデータ線と、第一のデータ線および第二のデータ線に接続されるメモリセルと、を備える。メモリセルは、複数のスイッチと、第一のデータ保持回路と、第二のデータ保持回路と、第三のデータ保持回路と、第四のデータ保持回路と、入力線と、を備える。第三のデータ保持回路の保持する値に基づいて複数のスイッチのうち第一のデータ線に接続されるスイッチが制御される共に、第四のデータ保持回路の保持する値に基づいて複数のスイッチのうち第二のデータ線に接続されるスイッチが制御されることにより、メモリセルの特性値が変更可能である。
【発明の効果】
【0008】
上記半導体装置によれば、メモリセルの特性値のばらつきの低減が可能である。
【図面の簡単な説明】
【0009】
【
図1】
図1は実施形態における推論装置の構成例を示すブロック図である。
【
図2】
図2は
図1に示す積和演算装置の構成例を示すブロック図である。
【
図3】
図3は
図2に示すメモリアレイにおける1つのメモリセル列とそれに関連する部分を示す図である。
【
図4】
図4は
図3に示す積演算メモリセルの構成例を示す図である。
【
図5】
図5は
図4に示す積演算メモリセルの構成例の詳細を示す回路図である。
【
図6】
図6は
図5に示す積演算メモリセルのレイアウトを示す平面図である。
【
図7】
図7は
図3に示す推論用リファレンスセルの構成例を示す図である。
【
図8】
図8は
図3に示す調整用リファレンスセルの構成例を示す図である。
【
図11】
図11は誤りが発生する場合のA/D変換を説明するための図である。
【
図12】
図12(a)は積演算メモリセルおよび調整用リファレンスセルの電流比較を説明する図である。
図12(b)は積演算メモリセルと調整用リファレンスセルの電流比較を説明する図である。
【
図13】
図13は積演算メモリセル(ME[0])の電流パスを示す図である。
【
図14】
図14は調整用リファレンスセルの電流パスを示す図である。
【
図16】
図16は第一変形例における積演算メモリセルの構成を示す図である。
【
図17】
図17は第二変形例における積演算メモリセルの構成を示す図である。
【
図18】
図18は第三変形例における積演算メモリセルの構成を示す図である。
【
図19】
図19は第四変形例における調整用リファレンスセルの構成を示す図である。
【
図20】
図20は第五変形例におけるメモリセルアレイの構成を示す図である。
【
図21】
図21は実施形態におけるデータ線および共通電源線における電圧を示す図である。
【
図22】
図22は第五変形例におけるデータ線および共通電源線における電圧を示す図である。
【
図23】
図23は第六変形例における積演算メモリセルの構成を示す図である。
【発明を実施するための形態】
【0010】
以下、実施形態および変形例について、図面を用いて説明する。ただし、以下の説明において、同一構成要素には同一符号を付し繰り返しの説明を省略することがある。
【0011】
<推論装置の構成>
図1は実施形態における推論装置の構成例を示すブロック図である。
【0012】
実施形態における推論装置は、AIアクセラレータ130、中央処理装置(CPU)200、撮像装置(IMAGING DEVICE)300および表示装置(DISPLAY DEVICE)400を備える。撮像装置300はカメラやスキャナ等であり、イメージデータを取得して中央処理装置200に提供する。中央処理装置200は提供されたイメージデータを処理してAIアクセラレータ130に提供する。AIアクセラレータ130は提供されたイメージデータに基づいて推論を行い、推論結果を中央処理装置200に提供する。中央処理装置200は提供された推論結果を処理して表示装置400に提供する。表示装置400は提供された推論結果を表示する。
【0013】
AIアクセラレータ130は、積和演算装置100を多数集めて構成された集積ブロック110およびその制御回路(CNTR)120を備える。積和演算装置100はPIMアーキテクチャにより構成されている。AIアクセラレータ130は、例えば、積和演算装置100を内蔵したマイクロコントローラ等の一つの半導体基板上に形成される半導体装置である。
【0014】
<積和演算装置の構成>
図2は
図1に示す積和演算装置の構成例を示すブロック図である。実施形態における積和演算装置100は、積和演算処理に加えて、積和演算処理を行う積和演算機能付きメモリセル(以下、「積演算メモリセル」という。)の特性値のばらつきを低減する調整機能を備える。
【0015】
積和演算装置100は、メモリセルアレイ101、電流源(CS)102、定電流源(CCS)としての共通電源線スイッチ(CVSW)103およびセンスアンプ104を備える。積和演算装置100は、さらに、推論用制御回路(I_CNTR)105、調整用制御回路(T_CNTR)106、入力バッファ(IB)107およびメモリコントローラ(M_CNTR)108を備える。
【0016】
メモリセルアレイ101は複数の積演算メモリセル(ME)10により構成される。積演算メモリセル10はデータ線(PBL)13aおよびデータ線(NBL)13bに接続されている。入力バッファ107から供給される入力データによってデータ線13a,13bに接続された積演算メモリセル10の数の和を比較回路としてのセンスアンプ104で判定することで、積和演算を行う。
【0017】
積演算メモリセル10は、積演算メモリセル10に格納されている3値の論理値と入力データの論理値との間で、積演算を実行し、積演算の結果に従って、データ線13a,13bから電流を引き抜くように、動作する。実施形態の積演算メモリセル10は電流センスを用いた例である。
【0018】
データ線13aおよびデータ線13bのそれぞれにおいて、複数の積演算メモリセル10の積演算結果に従った電流が重畳されて、データ線13aおよびデータ線13bのそれぞれにおいて電流・電圧が定まる。すなわち、複数の積演算メモリセル10において得られた積が、データ線13aおよびデータ線13bによって、和を求めるように和演算が実行される。和演算の結果である積和演算の結果は、データ線13aおよびデータ線13bを介して出力される。
【0019】
推論用制御回路105は後述する推論用リファレンスセル等を制御してAD変換を行う。調整用制御回路106は、積演算メモリセル10の後述する電流パスを最適化し、ばらつきを低減するために使用される。詳細については後述する。
【0020】
<メモリアレイのメモリセル列の構成>
図3は
図2に示すメモリアレイにおける1つのメモリセル列とそれに関連する部分を示す図である。
【0021】
メモリセルアレイ101におけるメモリセル列は、複数の積演算メモリセル10、複数の推論用リファレンスセル(IREF)20、調整用リファレンスセル(TREF)30および微調整セル(FT)40を備えている。各セルはデータ線13aおよびデータ線13bに接続されている。データ線13aおよびデータ線13bには、電流源(CS)102、共通電源スイッチ(CVSW)103およびセンスアンプ(SA)104も接続されている。以下、各セルについて説明する。
【0022】
<積演算メモリセル(ME)の構成>
図4は
図3に示す積演算メモリセルの構成例を示す図である。
【0023】
積演算メモリセル10は、積和演算を行うために、2個の重み用のメモリセル(MC)11a,11bおよび8個のスイッチ12a~12d,12i~12lを備えている。積演算メモリセル10は、さらに、電流パスを切り替えるために、4個のパス切替用のメモリセル(MC)11c~11fおよび8個のスイッチ12e~12h,12m~12pを備えている。
【0024】
スイッチ12e,12fは、データ線13aおよびメモリセル11cに接続され、メモリセル11cに、例えば論理値“1”が格納されているとき、スイッチ12eはオン状態、スイッチ12fはオフ状態となる。スイッチ12c,12dは、それぞれノードn1とスイッチ12e,12fとの間に接続されている。スイッチ12c,12dは入力線(IL)15に接続され、入力線15に与えられる入力データ(ID)が例えば論理値“1”を示すハイレベルのとき、オン状態となる。
【0025】
スイッチ12a,12bは、ノードn1およびメモリセル11aに接続され、メモリセル11aに、例えば論理値“1”が格納されているとき、スイッチ12a,12bはオン状態となる。スイッチ12g,12hは、スイッチ12a,12bと共通電源線14との間に接続されると共に、メモリセル11eに接続されている。メモリセル11eに、例えば論理値“1”が格納されているとき、スイッチ12gはオン状態、スイッチ12hはオフ状態となる。
【0026】
スイッチ12m,12nは、データ線13bおよびメモリセル11dに接続され、メモリセル11dに、例えば論理値“1”が格納されているとき、スイッチ12mはオン状態、スイッチ12nはオフ状態となる。スイッチ12k,12lは、それぞれノードn2とスイッチ12m,12nとの間に接続されている。このスイッチ12k,12lは入力線15に接続され、入力線15に与えられる入力データが例えば論理値“1”のとき、オン状態となる。
【0027】
スイッチ12i,12jは、ノードn2およびメモリセル11bに接続され、メモリセル11bに、例えば論理値“1”が格納されているとき、スイッチ12i,12jはオン状態となる。スイッチ12o,12pは、スイッチ12i,12jと共通電源線(CVSS)14との間に接続されると共に、メモリセル11fに接続されている。メモリセル11fに、例えば論理値“1”が格納されているとき、スイッチ12oはオン状態、スイッチ12pはオフ状態となる。
【0028】
(積和演算)
メモリセル11aは、同相の値(T)をスイッチ12a,12bに与え、メモリセル11bは同相の値(T)をスイッチ12i,12jに与える。これにより、入力線15に供給される入力データ(ID)が論理値“1”を示すハイレベルとなるとき、積演算メモリセル10の積演算は、メモリセル11a,11bに保持されるデータにより制御される。
【0029】
積和演算は、下記(a)~(c)の3値で演算される。そのため、メモリセル11a,11bの双方の値を論理値“1”とすることは禁止される。
(a)データ線13a側を共通電源線14に接続(論理値“+1”)
(b)データ線13b側を共通電源線14に接続(論理値“-1”)
(c)データ線13a側と共通電源線14との接続、およびデータ線13b側と共通電源線14との接続、の双方を遮断(論理値“0”)
【0030】
和演算は、データ線13aおよびデータ線13bにおいて,積演算メモリセル10のスイッチを介した電流により行われる。
【0031】
メモリセル11a,11bの両方が論理値“0”を格納しているとき、積演算メモリセル10は、論理値“0”を格納しているものとする。また、メモリセル11aが論理値“1”を格納し、メモリセル11bが論理値“0”を格納しているとき、積演算メモリセル10は、論理値“+1”を格納しているものとする。さらに、メモリセル11aが論理値“0”を格納し、メモリセル11bが論理値“1”を格納しているとき、積演算メモリセル10は、論理値“-1”を格納しているものとする。ここで、メモリセル11c,11d,11e,11fに論理値“1”が格納されているとして、以下説明する。
【0032】
これにより、積演算メモリセル10に論理値“0”が格納されているとき、スイッチ12a,12b,12i,12jはオフ状態となる。このため、入力データ(ID)が例えば論理値“1”であっても、データ線13aおよびデータ線13bから共通電源線14に電流は流れない。
【0033】
これに対して、積演算メモリセル10に論理値“+1”が格納されているとき、スイッチ12a,12bはオン状態となり、スイッチ12i,12jはオフ状態となる。このとき、入力データ(ID)が論理値“1”であれば、オン状態のスイッチ12e,12c,12a,12gを介して、データ線13aから共通電源線14に電流が流れ、データ線13aの電圧は低下する。このとき、データ線13bの電圧は低下しない。一方、このとき、入力データ(ID)が論理値“0”であれば、オン状態のスイッチ12c,12d,12k,12lがオフ状態となる。このため、データ線13aおよびデータ線13bから共通電源線14に電流は流れず、データ線13aおよびデータ線13bの電圧は低下しない。
【0034】
さらに、積演算メモリセル10に論理値“-1”が格納されているときには、スイッチ12i,12jはオン状態となり、スイッチ12a,12bはオフ状態となる。このとき、入力データ(ID)が論理値“1”であれば、オン状態のスイッチ12m,12k,12i,12oを介して、データ線13bから共通電源線14に電流が流れ、データ線13bの電圧は低下し、データ線13aの電圧は低下しない。一方、このとき、入力データが論理値“0”であれば、オン状態のスイッチ12c,12d,12k,12lがオフ状態となる。このため、データ線13aおよびデータ線13bから共通電源線14に電流は流れず、データ線13aおよびデータ線13bの電圧は低下しない。
【0035】
すなわち、メモリセル11aが、積演算メモリセル10に論理値“+1”を格納するのに用いられ、メモリセル11bが、積演算メモリセル10に論理値“-1”を格納するのに用いられていると見なすことができる。
【0036】
これにより、積演算メモリセル10に格納されている3値と入力データ(ID)の値との間で積演算が実行される。すなわち、入力データ(ID)の論理値と、積演算メモリセル10の論理値に従って、0×0、0×(+1)、0×(-1)、1×0、1×(+1)、1×(-1)の6つの状態が形成される。この場合、入力データ(ID)の論理値と積演算メモリセル10に格納されている論理値との間で積演算が実行される。積演算の結果が論理値“1”のとき、データ線13aと共通電源線14との間を電流が流れ、データ線13aの電圧が低下する。これに対して、積演算の結果が論理値“-1”のとき、データ線13bと共通電源線14との間を電流が流れ、データ線13bの電圧が低下する。
【0037】
(電流パス切替)
スイッチ12a~12hの幾つかが直列に接続(縦続接続)されることにより、データ線13aが共通電源線14に接続される電流パスが形成される。複数の電流パスが形成可能である。スイッチ12a~12hのオン状態/オフ状態により、複数の電流パスの一つが選択され、電流パスが切り替えられる。スイッチ12i~12pの幾つかが直列に接続(縦続接続)されることにより、データ線13bが共通電源線14に接続される電流パスが形成される。複数の電流パスが形成可能である。スイッチ12i~12pのオン状態/オフ状態により、複数の電流パスの一つが選択され、電流パスが切り替えられる。
【0038】
メモリセル11cは相補の値(T/B)をスイッチ12e,12fに与えているため、スイッチ12e,12fの一方がオン状態にされ、他方がオフ状態にされる。メモリセル11dは相補の値(T/B)をスイッチ12m,12nに与えているため、スイッチ12m,12nの一方がオン状態にされ、他方がオフ状態にされる。メモリセル11eは相補の値(T/B)をスイッチ12g,12hに与えているため、スイッチ12g,12hの一方がオン状態にされ、他方がオフ状態にされる。メモリセル11fは相補の値(T/B)をスイッチ12o,12pに与えているため、スイッチ12o,12pの一方がオン状態にされ、他方がオフ状態にされる。これにより、データ線13aおよびデータ線13bに関して、それぞれ4種の電流パスのどれか一つが選択される。
【0039】
<積演算メモリセル(ME)の詳細構成>
図5は
図4に示す積演算メモリセルの構成を示す回路図である。
【0040】
積演算メモリセル10におけるデータ保持回路としてのメモリセル11a~11fはスタティック・ランダム・アクセス・メモリ(Static Random Access Memory:SRAM)のメモリセルで構成される。SRAMのメモリセルは、例えば6トランジスタにより構成される。メモリセル11a~11fの各保持データは、通常のSRAM動作用の3対のデータ線対(BT[2:0]、BB[2:0])16a~16fと2本のワード線(WL[1:0])17a,17bによって制御される。これにより、6個のSRAMのメモリセルの一つを外部から指定して値を書き込みおよび読出しができる。積演算メモリセル10におけるスイッチ12a~12pは、NMOSトランジスタによって構成されている。
【0041】
メモリセル11a~11fの構成を、メモリセル11cを例にして説明する。メモリセル11cは、複数のPチャンネル型電界効果トランジスタ(PMOSトランジスタと称する)と複数のNチャンネル型電界効果トランジスタ(NMOSトランジスタと称する)によって構成されている。なお、本開示の図面においては、PMOSトランジスタはゲート電極に○印を付して、NMOSトランジスタと区別する。また、チャンネル型を区別しない場合、電界効果トランジスタは、以下、MOSトランジスタと称する。
【0042】
メモリセル11cは、PMOSトランジスタP1とNMOSトランジスタN1によって構成された第1インバータ回路IV1と、PMOSトランジスタP2とNMOSトランジスタN2によって構成された第2インバータ回路IV2と、を備えている。第1インバータ回路IV1と第2インバータ回路IV2は、電源電圧(Vd)が供給される電源線と接地電位(Vs)が供給される接地線との間に接続されている。また、第1インバータ回路IV1の入力は、第2インバータ回路IV2の出力に接続され、第2インバータ回路IV2の入力は第1インバータ回路IV1の出力に接続されている。すなわち、第1インバータ回路IV1と第2インバータ回路IV2は、ラッチ回路を構成するように交差接続されている。第2インバータ回路IV2および第1インバータ回路IV1の入力と、一対の相補データ線(BT[0]、BB[0])16a,16bとの間に転送用NMOSトランジスタN3,N4が接続されている。転送用NMOSトランジスタN3,N4のゲート電極は、ワード線(WL[0])17aに接続されている。
【0043】
一対の相補データ線16a,16bおよびワード線17aは、メモリセル11cに、データを書き込む際に用いられる。すなわち、メモリセル11cにデータを書き込む際、書き込むべきデータの論理値に従った相補の電圧(ハイレベルとロウレベル)が、相補データ線16a,16bに供給され、ワード線17aにハイレベルが供給される。これにより、転送用NMOSトランジスタN3,N4を介して、一対の相補データ線16a,16bにおける相補の電圧が、第1インバータ回路IV1および第2インバータ回路IV2により構成されたラッチ回路に供給される。これにより、メモリセル11cに論理値“0”または“1”が書き込まれる。メモリセル11cに保持されている論理値は、ノードn3,n4から出力される。ノードn3,n4はスイッチ12e,12fを構成するNMOSトランジスタのゲートに接続されている。
【0044】
メモリセル11aは、メモリセル11cと同じ構成を備えているが、転送用NMOSトランジスタN3,N4は、一対の相補データ線16a,16bとは異なる一対の相補データ線(BT[1]、BB[1])16c,16dに接続されている。メモリセル11aに保持されている論理値は、ノードn3のみから出力される。これにより、メモリセル11cとは異なる論理値を、メモリセル11aに書き込みことが可能となっている。ノードn3はスイッチ12a,12bを構成するNMOSトランジスタのゲートに接続されている。
【0045】
メモリセル11eは、メモリセル11cと同じ構成を備えている。しかし、メモリセル11eの転送用NMOSトランジスタN3,N4は、一対の相補データ線16a,16bおよび一対の相補データ線16c,16dとは異なる一対の相補データ線(BT[2]、BB[2])16e,16fに接続されている。これにより、メモリセル11cとは異なる論理値を、メモリセル11aに書き込みことが可能となっている。メモリセル11eに保持されている論理値は、ノードn3,n4から出力される。ノードn3,n4はスイッチ12g,12hを構成するNMOSトランジスタのゲートに接続されている。
【0046】
メモリセル11dは、メモリセル11cと同じ構成を備えているが、転送用NMOSトランジスタN3,N4のゲート電極は、ワード線17aとは異なるワード線(WL[1])17bに接続されている。これにより、ワード線17bをワード線17aと異なるタイミングでハイレベルにすることにより、メモリセル11cとは異なる論理値を、メモリセル11dに書き込みことが可能となっている。メモリセル11dに保持されている論理値は、ノードn3,n4から出力される。ノードn3,n4はスイッチ12g,12hを構成するNMOSトランジスタのゲートに接続されている。
【0047】
メモリセル11bは、メモリセル11aと同じ構成を備えているが、転送用NMOSトランジスタN3,N4のゲート電極は、ワード線17aとは異なるワード線17bに接続されている。これにより、ワード線17bをワード線17aと異なるタイミングでハイレベルにすることにより、メモリセル11aとは異なる論理値を、メモリセル11dに書き込みことが可能となっている。すなわち、積演算メモリセル10に論理値“+1”を格納するのに用いるメモリセル11aをワード線17aで制御し、積演算メモリセル10に論理値“-1”を格納するのに用いるメモリセル11bをワード線17bで制御している。メモリセル11bに保持されている論理値は、ノードn3から出力される。ノードn3はスイッチ12i,12jを構成するNMOSトランジスタのゲートに接続されている。
【0048】
メモリセル11fは、メモリセル11e同じ構成を備えているが、転送用NMOSトランジスタN3,N4のゲート電極は、ワード線17aとは異なるワード線17bに接続されている。これにより、ワード線17bをワード線17aと異なるタイミングでハイレベルにすることにより、メモリセル11eとは異なる論理値を、メモリセル11fに書き込みことが可能となっている。メモリセル11fに保持されている論理値は、ノードn3,n4から出力される。ノードn3,n4はスイッチ12o,12pを構成するNMOSトランジスタのゲートに接続されている。
【0049】
<積演算メモリセル(ME)のレイアウト>
図6は
図5に示す積演算メモリセルのレイアウト例を示す平面図である。
【0050】
ワード線(WL[1:0])および入力線(IL[0])はX方向に沿って延伸して配置されている。データ線対(BT[2:0]、BB[2:0])、共通接地線(CVSS)、データ線(PBL)およびデータ線(NBL)はX方向と直交するY方向に沿って延伸して配置されている。
【0051】
メモリセル11fの左側にスイッチ12o,12pが配置され、スイッチ12o,12pの左側に共通接地線(CVSS)が配置されている。メモリセル11fの右側にメモリセル11eが配置され、メモリセル11eの右側にスイッチ12g,12hが配置されている。
【0052】
メモリセル11a,11bの左側にスイッチ12a,12bが配置され、スイッチ12a,12bの左側にスイッチ12i,12jが配置されている。メモリセル11a,11bの右側にスイッチ12k,12lが配置されている。
【0053】
メモリセル11dの左側にデータ線(NBL)が配置され、データ線(NBL)の左側にスイッチ12m,12nが配置されている。メモリセル11dの右側にメモリセル11cが配置されている。メモリセル11cの右側にデータ線(PBL)が配置され、データ線(PBL)の右側にスイッチ12e,12fが配置され、スイッチ12e,12fの右側にスイッチ12c,12dが配置されている。
【0054】
パス切替用のメモリセル11f,11eおよびメモリセル11d,11cは、それぞれ二つのセルがX方向に並んで配置され、重み用のメモリセル11a,11bは、二つのセルがY方向に並んで配置されている。隣接するメモリセル間で、相補データ線(BT、BB)を兼用することが可能となっている。
【0055】
重み用のメモリセル11a,11bと、パス切替用のメモリセル11f,11eおよびメモリセル11d,11cとは、異なるレイアウトのセルが使用されている。前者は、いわゆる横型SRAMセル、後者は縦型SRAMセルが使用される。
【0056】
図6において、実線で囲まれた領域は、MOSトランジスタのゲート電極を形成する配線POを示し、一点鎖線で囲まれた領域は、MOSトランジスタのソース領域あるいはドレイン領域を形成する半導体領域ODを示している。また、破線で囲まれた領域は、第1層目の金属配線層(導電層)M1により形成された金属配線を示している。さらに実線で囲まれ、×印が付された領域は、コンタクト領域COを示している。コンタクト領域COによって、例えばコンタクト領域COと重なっている2つの層間が電気的に接続されている。ゲート電極部に、
図5で説明したPMOSトランジスタおよびNMOSトランジスタの符号が付されている。符号が付されたゲート電極部が、符号のMOSトランジスタを構成するゲート電極を構成している。
【0057】
縦型SRAMセルであるメモリセル11eについて説明する。メモリセル11eを構成するPMOSトランジスタP1,P2およびNMOSトランジスタN3,N4のゲート電極は、X方向と平行するように配置されている。また、PMOSトランジスタP1およびPMOSトランジスタP2を構成するゲート電極は、延伸して、それぞれNMOSトランジスタN1およびNMOSトランジスタN2のゲート電極を構成している。すなわち、PMOSトランジスタP1およびNMOSトランジスタN1のゲート電極は一体的に形成されている。PMOSトランジスタP2およびNMOSトランジスタN2のゲート電極が一体的に形成されている。PMOSトランジスタP1,P2のゲート電極はY方向に並べられている。NMOSトランジスタN1~N4のゲート電極はY方向に並べられている。隣接するメモリセル11fはメモリセル11eと点対称に配置されている。メモリセル11c,11dはメモリセル11e,11fはと同様に構成される。
【0058】
横型SRAMセルであるメモリセル11aについて説明する。メモリセル11aを構成するPMOSトランジスタP1,P2およびNMOSトランジスタN3,N4のゲート電極は、X方向と平行するように配置されている。また、PMOSトランジスタP1およびPMOSトランジスタP2を構成するゲート電極は、延伸して、それぞれNMOSトランジスタN1およびNMOSトランジスタN2のゲート電極を構成している。すなわち、PMOSトランジスタP1およびNMOSトランジスタN1のゲート電極は一体的に形成されている。PMOSトランジスタP2およびNMOSトランジスタN2のゲート電極が一体的に形成されている。PMOSトランジスタP1,P2のゲート電極はY方向に並べられている。NMOSトランジスタN1,N3のゲート電極はY方向に並べられている。NMOSトランジスタN2,N4のゲート電極はY方向に並べられている。隣接するメモリセル11bはメモリセル11aと線対称に(ミラー反転した状態で)配置されている。
【0059】
メモリセル11a~11fは6個のSRAMセルで構成するため、面積オーバーヘッドの削減が重要となる。重み用のメモリセル11a,11bはTノードのみ制御に用いるため2つのセルのTノードが同じ側に出る横型セルで構成する。そして、パス切り替え用のメモリセル11c~11fはTノードおよびBノードを両方用いるためTノードおよびBノードが同じ側に出る縦型セルで構成する。これらの構成により、配線効率を高めることができるのでセル面積を削減できる。メモリセルを2種類のSRAMレイアウト(縦型SRAMセル、横型SRAMセル)を併用して構成することで、面積効率を高めることができる。
【0060】
<積演算メモリセル(ME)への論理値の書き込みおよび積演算>
図5に戻って、積演算メモリセルへの論理値の書き込みについて説明する。
【0061】
積演算メモリセル10に論理値“+1”を書き込み場合、相補データ線16cにハイレベルを供給し、相補データ線16dにロウレベルを供給した状態で、ワード線17aをハイレベルにする。これにより、メモリセル11aが選択され、メモリセル11a内の転送用NMOSトランジスタN3,N4がオン状態となり、第1インバータ回路IV1の入力にロウレベルが供給される。その結果、メモリセル11aにおけるラッチ回路は、ノードn3をハイレベル状態にするような状態をラッチする。
【0062】
続けて、相補データ線16dにハイレベルを供給し、相補データ線16cにロウレベルを供給した状態で、ワード線17bをハイレベルにする。これにより、メモリセル11bが選択され、メモリセル11b内の転送用NMOSトランジスタN3,N4がオン状態となり、第1インバータ回路IV1の入力にハイレベルが供給される。その結果、メモリセル11bにおけるラッチ回路は、ノードn3をロウレベル状態にするような状態をラッチする。
【0063】
これにより、スイッチ12a,12bはオン状態となり、スイッチ12i,12jはオフ状態となる。また、メモリセル11c,11eに論理値“1”が書き込まれているとすると、この状態で、入力線15に供給される入力データ(ID)が例えばハイレベルであれば、スイッチ12c,12d,12e,12gがオン状態となる。これにより、スイッチ12e,12c,12a,12gが、データ線13aから共通電源線14へ電流を流させる電流パスを形成することになる。
【0064】
積演算メモリセル10に論理値“+1”を書き込む場合を説明したが、論理値“-1”を書き込む場合および論理値“0”を書き込む場合も同様である。ここで、メモリセル11d,11fに論理値“1”が書き込まれているとする。積演算メモリセル10に論理値“-1”が書き込まれている場合、入力データ(ID)がハイレベルであれば、スイッチ12m,12k,12i,12oによって、データ線13bと共通電源線14とを接続する電流パスが形成されることになる。一方、積演算メモリセル10に論理値“0”が書き込まれている場合には、入力データ(ID)がハイレベルであっても、データ線13aおよびデータ線13bと共通電源線14とを接続する電流パスは形成されない。
【0065】
<和演算>
図2に示すように、積演算メモリセル(ME)10は、データ線13aおよびデータ線13bに多数個接続されている。これにより、各積演算メモリセル10において形成される電流パスの数の和に応じた電流が、データ線13aおよびデータ線13bを流れることになる。すなわち、データ線13aには、論理値“+1”側の積の和に対応した電流が流れ、データ線13bには、論理値“-1”側の積の和に対応した電流が流れることになる。これにより、論理値“+1”側の積和演算の結果が、データ線13aに出力され、論理値“-1”側の積和演算の結果が、データ線13bに出力されることになる。従って、データ線13aにおける電流とデータ線13bにおける電流との差分を、アナログ/デジタル変換(A/D変換)することにより、期待する積和演算の結果を得ることができる。もちろん、データ線13aおよびデータ線13bのそれぞれを流れる電流をA/D変換し、得られたデジタル信号の差分を求めるようにしてもよい。
【0066】
積演算メモリセル10に、積和演算で用いられる、“+1”、“0”、“-1”の3値の論理値が格納される。そのため、学習や推論で用いられるデータが、圧縮され過ぎるのを防ぐことが可能であり、学習や推論の精度を向上させることが可能である。また、積演算メモリセル10に格納されている論理値を変更しなくても、入力データ(ID)を変えることにより、多数の積和演算を行うことが可能である。そのため、データ転送処理の回数を低減することが可能である。さらに、和演算は、データ線13aおよびデータ線13bからそれぞれの積演算メモリセル10が電流を引き抜くことにより実現されるため、1回の動作で複数の和演算を実行することが可能となる。これにより、データ転送処理の回数をさらに低減させ、消費電力を低減することが可能である。
【0067】
<電流源(CS)>
図3に戻って、電流源(CS)について説明する。
【0068】
1組のデータ線13a,13bには、PMOSトランジスタP3~P6によって構成された電流源(CS)102が接続されている。PMOSトランジスタP3,P6は、データ線13aと電圧(Vd)の電源との間に、そのソース・ドレイン経路が接続され、データ線13aをバイアスするバイアス回路を構成している。PMOSトランジスタP4,P5は、データ線13bと電圧(Vd)の電源との間に、そのソース・ドレイン経路が接続され、データ線13bをバイアスするバイアス回路を構成している。電流源102を介して、データ線13aおよびデータ線13bに電流が供給される。
【0069】
<共通電源スイッチ(CVSW)>
共通電源線(CVSS)14には、
図3に示す共通電源スイッチ(CVSW)103を介して接地電位(Vs)が供給される。共通電源スイッチ103はNMOSトランジスタN5で構成され、NMOSトランジスタN5のゲートに積和演算イネーブル信号(MACE)が供給される。接地電位(Vs)に代えて定電流源(CCS)が接続されてもよい。
【0070】
<センスアンプ(SA)>
また、データ線13aおよびデータ線13bは、一対の転送スイッチを介してラッチ形のセンスアンプ(SA)104に接続されている。一対の転送スイッチは、比較イネーブル信号(CE)によって制御されるNMOSトランジスタN7,N8とおよびその反転信号(/CE)よって制御されるPMOSトランジスタP7,P8とによって構成されている。
【0071】
また、センスアンプ(SA)104は、インバータ回路IV3とそれに交差接続されるインバータ回路IV4によって構成される。比較イネーブル信号(CE)およびその反転信号(/CE)によってPMOSトランジスタP7,P8とNMOSトランジスタN7,N8がオン状態となる。これにより、一対の転送スイッチを介して供給されたデータ線13aとデータ線との間の電位差を増幅し、ラッチする。すなわち、センスアンプ104は、データ線13aの電流の値とデータ線13bの電流の値とを比較する比較回路である。
【0072】
センスアンプ104の論理値“1”または“0”の出力は、推論用制御回路105に供給されている。
【0073】
<推論用リファレンスセル(IREF)>
図7は
図3に示す推論用リファレンスセルの構成例を示す図である。
【0074】
推論用リファレンスセル20は、積演算メモリセル10と類似した構造を有している。メモリセル11a,11bの出力の代わりに選択信号(PS、NS)が供給される信号線(PL)21aおよび信号線(NL)21bがスイッチ12a,12b,12i,12jに接続されている点が異なる。また、入力線(IL)15の代わりに制御信号(CD)が供給される信号線(RL)25が接続されている点が異なる。推論用リファレンスセル20を、積演算メモリセル10と類似した構造とすることにより、推論用リファレンスセル20は、データ線13aおよびデータ線13bに対して、積演算メモリセル10と同等の駆動力を有するようにされている。推論用リファレンスセル20にも、電流パスを切り替える調整機能を備える。
【0075】
<調整用リファレンスセル(TREF)>
図8は
図3に示す調整用リファレンスセルの構成例を示す図である。
【0076】
調整用リファレンスセル30は、積演算メモリセル10と類似した構造を有している。データ線13aとスイッチ12e,12fの間に選択用のスイッチ31a,31bが配置されている点が異なる。また、データ線13bとスイッチ12m,12nの間に選択用のスイッチ32a,32bが配置されている点が異なる。さらに、スイッチ12e,12f,12m,12nが共通のノードn6に接続されている点が異なる。さらに、入力線(IL)15の代わりに制御信号(TCD)が供給される信号線(TL)35が接続されている点が異なる。
【0077】
信号線33aに供給される選択信号(TPE)がハイレベル、信号線33bに選択信号(TPEB)がロウレベルのとき、スイッチ31a,31bによって、スイッチ12e,12f,12m,12nはデータ線13aに接続される。信号線34aに供給される選択信号(TNE)がハイレベル、信号線34bに選択信号(TNEB)がロウレベルのとき、スイッチ32a,32bによって、スイッチ12e,12f,12m,12nはデータ線13bに接続される。
【0078】
調整用リファレンスセル30を、積演算メモリセル10と類似した構造とすることにより、調整用リファレンスセル30は、データ線13aおよびデータ線13bに対して、積演算メモリセル10と同等の駆動力を有するようにされている。
【0079】
調整用リファレンスセル30は、積演算メモリセル10と同様に複数のメモリセルを用いて電流パスを切り替える機能を有する。さらに、調整用リファレンスセル30は積和演算に使用しないため6個のメモリセルをすべてパス切り替えに使用できる。データ線13aおよびデータ線13bに接続される選択用のスイッチ31a,31b,32a,32bを備えることにより、8通りの電流パスを選択できる。パス切り替え可能な回路構成とすることで積演算メモリセルに近い電流値を実現できる。
【0080】
<微調整セル(FT)>
図9は
図3に示す微調整セルの構成例を示す図である。微調整セル40は電流の大小判定に用いられる。
【0081】
微調整セル40は、NMOSトランジスタN14~N17と、NMOSトランジスタN18_1~N18_nと、を備える。NMOSトランジスタN14~N17は、データ線13aとデータ線13bとの間に、ソース・ドレイン経路が直列的に接続されている。NMOSトランジスタN18_1~N18_nはNMOSトランジスタN15とNMOSトランジスタN16との間を接続するノードと共通電源線14との間にソース・ドレイン経路が直列的に接続されている。制御信号(FTL)が供給される信号線(FL)41がNMOSトランジスタN14とNMOSトランジスタN17のゲート電極に接続されている。そして、選択信号(FTPS)が供給される信号線(FPL)42aがNMOSトランジスタN15のゲートに接続されている。そして、選択信号(FTNS)が供給される信号線(FNL)42bがNMOSトランジスタN16のゲートに接続され、電源電圧(Vd)(あるいはパルス化した制御信号)が供給される電源線43がNMOSトランジスタN18_1~N18_nのゲートに接続されている。
【0082】
複数段直列に接続されたNMOSトランジスタN18_1~N18_nを有するので、微量の電流を信号線42a,42bにより選択したデータ線13aおよびデータ線13bに流すことができる。直列の段数(NMOSトランジスタN18_1~N18_nの数)を変えた微調整セル(FT)40を複数備えることにより、複数の微小電流値を選択できる。例えば、微小電流値は積演算メモリセル10の電流の1%、2%、5%等である。なお、微調整セル40として、積演算メモリセル10の電流の50%程度のものも有することにより、後述する積演算メモリセル10と推論用リファレンスセル20との電流の大小判定にも利用することができる。
【0083】
<A/D変換>
一例を用いて、メモリセルアレイ101におけるA/D変換の動作について
図7および
図10を参照して説明する。
図10はA/D変換を説明するための図である。A/D変換は推論用制御回路105により制御され、8つのステップでA/D変換が行われる。
【0084】
推論用リファレンスセル20は、推論用制御回路105から出力される8つの制御信号(CD[7:0])によって制御される。
図10に示す例の場合、制御信号(CD[0])が供給される信号線には、1個のリファレンスセル20が接続される。制御信号(CD[1])が供給される信号線には、2個のリファレンスセル20が接続される。制御信号(CD[2])が供給される信号線には、4個のリファレンスセル20が接続される。また、制御信号(CD[3])が供給される信号線には、8個のリファレンスセル20が接続される。制御信号(CD[4])が供給される信号線には、16個のリファレンスセル20が接続される。制御信号(CD[5])が供給される信号線には、32個のリファレンスセル20が接続される。制御信号(CD[6])が供給される信号線には、64個のリファレンスセル20が接続される。すなわち、制御信号(CD[6:0])は重み付けされている。また、1以下の差分の検出のために、制御信号(CD[7])が供給される信号線には、1個の駆動力を半分にしたリファレンスセル20(以下、0.5セルと称する)が接続される。
【0085】
一例として、積和演算により、“+1”側の積和値が「32」で、“-1”側の積和値が「21」の場合を説明する。すなわち、データ線13aにおける電流が、積和値「32」(#PBL=32)を示し、データ線13bにおける電流が、積和値「21」(#NBL=21)を示している。この場合、積和値の差分は、「11」となる。この差分に対応した出力データ(MQ[0])が、推論用制御回路105のAD変換の制御ロジック部(ADC)105aから出力される。
【0086】
第1ステップ(1st)のとき、比較回路としてのセンスアンプ104は、データ線13aとデータ線13bの電流を比較する。「32」>「21」であるため、制御ロジック部105aは、符号“+”を示す論理値“0”を、出力データ(MQ[0])として出力する。また、データ線13aの電流の方が大きいため、制御ロジック部105aは、選択信号(NS)をハイレベルにし、選択信号(PS)をロウレベルにする。さらに、制御ロジック部105aは、データ線13aに0.5セルを接続し得る状態にし、データ線13bに指定した個数の推論用リファレンスセル20を接続し得る状態にする。ここでの指定の個数は、「64」である。ここで、指定された推論用リファレンスセル20の信号線21bに供給される選択信号(NS)をハイレベルにすることにより、スイッチ12k,12lがオン状態となり、指定された推論用リファレンスセル20のスイッチを介して共通電源線(CVSS)がデータ線13bに接続され得る状態になる。また、0.5セルの信号線21aに供給される選択信号(PS)をハイレベルにすることにより、スイッチ12aと12bがオン状態となり、0.5セルのスイッチを介して共通電源線(CVSS)がデータ線13aに接続され得る状態になる。この後、信号線(RL)25をハイレベルにすることによって、スイッチ12c、12d、12k、12lをオン状態にし、スイッチを介して共通電源線(CVSS)がデータ線に接続される。この状態をセルがデータ線に接続されたと称する。
【0087】
第2ステップ(2nd)において、制御ロジック部105aは、信号線(RL)25によって、0.5セルにおけるスイッチ12c、12dをオン状態にし、0.5セルはデータ線13aに接続される。また、制御ロジック部105aは、信号線(RL)25によって、64個の推論用リファレンスセル20におけるスイッチ12k,12lをオン状態にし、64個の推論用リファレンスセルをデータ線13bに接続する。これにより、データ線13aにおける値は、「32+α」となり、データ線13bにおける値は、21+64=85となる。ここで、αは0.5セルにより加算される電流値であり、1より小さい値である。センスアンプ104は、この「32+α」と「85」とを比較する。比較の結果、データ線13bの値が大きくなるため、制御ロジック部105aは、論理値“0”を出力データ(MQ[0])として出力する。
【0088】
第3ステップ(3rd)では、制御ロジック部105aは、指定の個数として「64」の半分の「32」を指定し、信号線25に供給する制御信号(CD)によって、スイッチ12k,12lをオン状態にする。これにより、データ線13aの値は、以前と同じ「32+α」であるが、データ線13bの値は、21+32=53となる。センスアンプ104による比較によって、データ線13bの値が大きいと判定されるため、制御ロジック部105aは、論理値“0”を出力データ(MQ[0])として出力する。
【0089】
第4ステップ(4th)では、制御ロジック部105aは、推論用リファレンスセル20の個数として「16」を指定する。これにより、データ線13aの値は、以前と同じ「32+α」であるが、データ線13bの値は、21+16=37となる。センスアンプ104の比較により、データ線13bの値が大きいと判定されるため、制御ロジック部105aは、論理値”0”を出力データ(MQ[0])として出力する。
【0090】
第5ステップ(5th)でも、制御ロジック部105aは、第4ステップ(4th)と同様に、推論用リファレンスセル20の個数を指定して、制御信号(CD)を信号線25に出力する。ただし、第5ステップ(5th)では、推論用リファレンスセル20の個数として、半分の「8」を指定する。これにより、センスアンプ104は、データ線13aにおける値「32+α」とデータ線13bにおける値21+8=29とを比較する。第5ステップ(5th)では、データ線13aの値が、データ線13bの値よりも大きくなるため、制御ロジック部105aは、論理値”1”を出力データ(MQ[0])として出力する。
【0091】
第5ステップ(5th)において、データ線13bにおける値に「8」を加算したが、データ線13aにおける値がデータ線13bにおける値よりも大きくなった。第6ステップ(6th)では、制御ロジック部105aは、推論用リファレンスセル20の個数として「8+4=12」を指定する。これにより、データ線13aの値は、以前と同じ「32+α」であるが、データ線13bの値は、21+12=33となる。センスアンプ104の比較により、データ線13bの値が大きいと判定されるため、制御ロジック部105aは、論理値”0”を出力データ(MQ[0])として出力する。
【0092】
第7ステップ(7th)では、制御ロジック部105aは、推論用リファレンスセル20の個数として「8+2=10」を指定する。これにより、データ線13aの値は、以前と同じ「32+α」であるが、データ線13bの値は、21+10=31となる。センスアンプ104の比較により、データ線13aの値が、データ線13bの値よりも大きいと判定されるため、制御ロジック部105aは、論理値”1”を出力データ(MQ[0])として出力する。
【0093】
第7ステップ(7th)において、データ線13bにおける値に「8+2」を加算したが、データ線13aにおける値がデータ線13bにおける値よりも大きくなった。第8ステップ(8th)では、制御ロジック部105aは、推論用リファレンスセル20の個数として「8+2+1=11」を指定する。これにより、データ線13aの値は、以前と同じ「32+α」であるが、データ線13bの値は、21+11=32となる。センスアンプ104の比較により、データ線13aの値が、データ線13bの値よりも大きいと判定されるため、制御ロジック部105aは、論理値”1”を出力データ(MQ[0])として出力する。
【0094】
述したように、推論用リファレンスセル20を指定する個数を変化させながら、データ線13aとデータ線13bの電流値が比較される。比較により、データ線13aの値が、データ線13bの値よりも大きいとき、制御ロジック部105aは、論理値”1”を出力データ(MQ[0])として出力する。そして、データ線13bの値が、データ線13aの値よりも大きいとき、制御ロジック部105aは、論理値”0”を出力データ(MQ[0])として出力する。
【0095】
これにより、積和演算の結果が、シリアルな8ビットに変換される。なお、最初のビットは符号ビットであり、符号ビットに続いて、最上位ビットから最下位ビットに向けて、順次ビットが出力される。
図10に示す例では、AD変換結果である出力(Output)は0b0000_1011=11(=32-21)である。
【0096】
このように、二分法を用いて、データ線13aとデータ線13bの電流の差を探索し、結果がシリアルのデジタル信号に変換されて出力される。
図10に示した出力データ(MQ[0])のデータ長が、ユーザーの希望するデータ長になったところで、処理を終了させることが可能である。これにより、無駄なA/D変換に掛かる電力と時間を削減することが可能である。
【0097】
電流の少ない方のデータ線の電流にリファレンスセルの電流を加算して二分法を用いて比較する方法のため、データ線に接続される積演算メモリセルが多い場合、積演算メモリセルの電流のばらつきが重畳されてより大きなレベルで誤りが発生する。これについて、
図11を用いて説明する。
図11は誤りが発生する場合のA/D変換を説明するための図である。
【0098】
図10に示す場合と同じく、積和演算により、“+1”側の積和値が「32」で、“-1”側の積和値が「21」の場合を説明する。メモリセル電流のばらつきにより、右向きの矢印「→」で示すように、データ線13aの値がβ減少し、左向きの矢印「←」で示すように、データ線13bの値がγ増加するとする。すなわち、データ線13aの値が「32-β」、データ線13bの値が「21+γ」となる。
【0099】
図11に示す例では、メモリセル電流のばらつきの影響は第4ステップ(4th)までは現れない。第1ステップから第4ステップは、
図10に示す場合と同様である。
【0100】
第5ステップ(5th)では、制御ロジック部105aは、推論用リファレンスセル20の個数として「8」を指定する。これにより、データ線13bの値は、21+γ+8=29+γとなる。データ線13aにおける値は「32+α-β」である。ここで、例えば、0<α<1、β=4、γ=3であるとすると、データ線13aにおける値「32+α-β」は「28+α」となり、データ線13bの値「29+γ」は「32」となる。0<α<1であるので、センスアンプ104の比較により、データ線13bの値が大きいと判定されるため、制御ロジック部105aは、論理値“0”を出力データ(MQ[0])として出力する。
【0101】
第6ステップ(6th)でも、推論用リファレンスセル20の個数として、半分の「4」を指定する。これにより、データ線13bの値は、21+γ+4=25+γとなる。データ線13aにおける値「32+α-β」である。β=4、γ=3であるので、データ線13aにおける値「32+α-β」は「28+α」となり、データ線13bの値「25+γ」は「28」となる。0<α<1であるので、センスアンプ104の比較により、データ線13aの値が、データ線13bの値よりも大きくなるため、制御ロジック部105aは、論理値”1”を出力データ(MQ[0])として出力する。
【0102】
第7ステップ(7th)では、制御ロジック部105aは、推論用リファレンスセル20の個数として「4+2=6」を指定する。これにより、データ線13aの値は、以前と同じ「32+α-β」であるが、データ線13bの値は、21+γ+6=27+γとなる。β=4、γ=3であるので、データ線13aにおける値「32+α-β」は「28+α」となり、データ線13bの値「27+γ」は「30」となる。0<α<1であるので、センスアンプ104の比較により、データ線13bの値が大きいと判定されるため、制御ロジック部105aは、論理値”0”を出力データ(MQ[0])として出力する。
【0103】
第8ステップ(8th)では、制御ロジック部105aは、推論用リファレンスセル20の個数として「4+1=5」を指定する。これにより、データ線13aの値は、以前と同じ「32+α-β」であるが、データ線13bの値は、21+γ+5=26+γとなる。β=4、γ=3であるので、データ線13aにおける値「32+α-β」は「28+α」となり、データ線13bの値「26+γ」は「29」となる。0<α<1であるので、センスアンプ104の比較により、データ線13bの値が大きいと判定されるため、制御ロジック部105aは、論理値”0”を出力データ(MQ[0])として出力する。
【0104】
図11に示す例では、AD変換結果である出力(Output)は0b0000_0100=4となり、正常値「32-21=11」とは異なり、誤りが発生する。
【0105】
<調整動作>
調整用リファレンスセル30および微調整セル40を使用した、積演算メモリセル10および推論用リファレンスセル20の電流調整について
図12(a)、
図12(b)、
図13~
図15を参照して説明する。
【0106】
図12(a)は積演算メモリセルおよび調整用リファレンスセルの電流比較を説明する図である。
図12(b)は積演算メモリセルおよび調整用リファレンスセルに微調整セルを加えた電流比較を説明する図である。
図12(a)および
図12(b)では積演算メモリセル(ME[N:0])10は(N+1)個、推論用リファレンスセル(IREF[M:0])20は(M+1)個備えている例が示されている。ここで、N、Mは自然数である。
図13は積演算メモリセル(ME[0])の電流パスを示す図である。
図14は調整用リファレンスセルの電流パスを示す図である。
図15は微調整セルの電流パスを示す図である。
【0107】
(ステップ0)
すべての積演算メモリセル10および推論用リファレンスセル20のパス選択用のメモリセル11c~11fに論理値“0”を書き込んで初期化を行う。
【0108】
(ステップ1)
一つの積演算メモリセル10、または、推論用リファレンスセル20を選択して、重み用のメモリセル11a,11bで接続されるデータ線13aまたはデータ線13bを選択する。一例として、
図12(a)に示すように、積演算メモリセル(ME[0])が選択される。また、
図13に示すように、重み用のメモリセル11aに論理値“1”がメモリセル11bに論理値“0”が書き込まれてデータ線13aが接続される。メモリセル11c~11fに論理値“0”が書き込まれているので、
図13の太い実線で示すように、電流パスが形成される。
【0109】
(ステップ2)
調整対象セルとしての積演算メモリセル10または推論用リファレンスセル20が接続されるデータ線とは異なるデータ線側に調整用リファレンスセル30を接続して比較動作を行う。このときは、微調整セル40は制御信号(FTL)によりデータ線13a,13bの何れとも接続しないようにされている。データ線13aの電流の値とデータ線13bの電流の値との大小判定はデータ線13a,13bに接続されたセンスアンプ104により行い、センスアンプ104の出力をレジスタに格納する。
【0110】
ステップ1では積演算メモリセル10のデータ線13aが選択されているので、調整用リファレンスセル30においては、データ線13bが選択される。すなわち、選択信号(TNE)及び(TPEB)がハイレベル、選択信号(TNEB)及び(TPE)がロウレベルにされて、データ線13bが接続される。
図14に示すように、例えば、メモリセル11aに論理値“0”がメモリセル11bに論理値“1”が書き込まれる。メモリセル11c~11fに論理値“0”が書き込まれているので、
図14の太い実線で示すように、電流パスが形成される。
【0111】
(ステップ3)
ステップ2における1回目の比較結果で、流れる電流が小さい方のデータ線側に微調整セル40を接続した状態で、再度比較動作を行う。調整用リファレンスセル30と積演算メモリセル10の電流値が非常に近い場合には、微調整セル40の電流加算によって比較結果が変化するため、これを検知して調整用リファレンスセル30と積演算メモリセル10が一致したと判定する。
【0112】
図12(b)では、データ線13bに流れる電流が小さい場合であり、微調整セル40においては、データ線13bが選択される。すなわち、制御信号(FTL)および選択信号(FTNS)がハイレベルにされて、データ線13bが接続され、
図15の太い実線で示すように、電流パスが形成される。
【0113】
(ステップ4)
積演算メモリセル10と調整用リファレンスセル30との電流が一致すれば次のセルに進み、ステップ1以降の調整を行う。不一致の場合は、パス選択用のメモリセル11c~11fに書き込む論理値を変えて該当セル内のパスを切り替えてステップ2以降の動作を繰り返す。調整用リファレンスセル30との電流が一致する積演算メモリセル10の電流パスを検索する。ステップ1で選択した積演算メモリセル10、または、推論用リファレンスセル20の全電流パスを検索しても調整用リファレンスセル30と電流が一致しなかった場合は、調整用リファレンスセル30のメモリセル11a~11fの論理値を変えて調整用リファレンスセル内の電流パスを切り替え、ステップ0以降のすべての積演算メモリセル10および推論用リファレンスセル20のパス選択をやり直す。
【0114】
このようにして、すべての積演算メモリセル(ME[N:0])および推論用リファレンスセル(IREF[M:0])の電流は、一つの調整用リファレンスセルの電流パスを基準に調整が行われる。
【0115】
実施形態によれば、下記の一つまたは複数の効果を有する。
【0116】
(1)パス切替により積演算メモリセルおよび推論用リファレンスセルの特性値の変更が可能である。
【0117】
(2)データ保持回路としてのメモリセルによって積演算メモリセルおよび推論用リファレンスセルの特性値を維持することができる。
【0118】
(3)積演算メモリセル電流のばらつきを低減できるので、推論時の誤動作を防止することが可能である。
【0119】
(4)定期的に調整することによりトランジスタの経時劣化による誤動作を防止することが可能である。
【0120】
(5)温度等の使用環境に合った動作状態に調整することができるので、信頼性を向上させることが可能である
【0121】
<変形例>
以下、実施形態の代表的な変形例について、幾つか例示する。以下の変形例の説明において、上述の実施形態にて説明されているものと同様の構成および機能を有する部分に対しては、上述の実施形態と同様の符号が用いられ得るものとする。そして、かかる部分の説明については、技術的に矛盾しない範囲内において、上述の実施形態における説明が適宜援用され得るものとする。また、上述の実施形態の一部、および、複数の変形例の全部または一部が、技術的に矛盾しない範囲内において、適宜、複合的に適用され得る。
【0122】
(第一変形例)
図16は第一変形例における積演算メモリセル10の構成を示す回路図である。第一変形例における積演算メモリセル10は、容量を用いたAD変換を行う(和演算を電圧(容量)で行う)ため、容量センスに対応させるセルの例である。
【0123】
第一変形例における積演算メモリセル10は、四つのメモリセル(MC)11a,11b,11e,11fと、メモリセル11a,11bに対応したスイッチ12a,12iと、入力線(IL)に供給される入力データ(ID)に基づいて制御されるスイッチ12c,12kと、を備える。積演算メモリセル10は、さらに、メモリセル11e,11fに対応したスイッチ12g,12oと、主容量素子18aと、メモリセル11e,11fに対応した調整用の容量素子18b,18cとを備える。主容量素子18aの容量値をCa、容量素子18bの容量値をCb、容量素子18cの容量値をCcとする。Cb,Cc<<Caである。
【0124】
図4で説明したように、メモリセル11aは、積演算メモリセル10に論理値“+1”を格納するのに用いられ、メモリセル11bは、積演算メモリセル10に論理値“-1”を格納するのに用いられる。スイッチ12aには、メモリセル11aの出力が供給される。スイッチ12iには、メモリセル11bの出力が供給される。スイッチ12gには、メモリセル11eの出力が供給される。スイッチ12oには、メモリセル11fの出力が供給される。スイッチ12cには、入力データ(ID)が供給される。スイッチ12kには、入力データ(ID)が供給される。
【0125】
スイッチ12aとスイッチ12fとの接続点であるノードn5には主容量素子18aの一方の電極に接続されている。ノードn5にはスイッチ12gを介して容量素子18bの一方の電極に接続され、ノードn5にはスイッチ12oを介して容量素子18cの一方の電極に接続されている。主容量素子18a、容量素子18bおよび容量素子18cの他方の電極には、共通電源線(CVSS)が接続されている。ノードn5は、スイッチ12a,12cを介してデータ線13aに接続され、スイッチ12i,12kを介してデータ線13bに接続されている。共通電源線14には電源電圧(Vd)が供給されるプリチャージ回路(不図示)が接続されている。また、データ線13aおよびデータ線13bにも電源電圧(Vd)が供給されるプリチャージ回路(不図示)が接続されている。
【0126】
入力データ(ID)がロウレベルのとき、スイッチ12c,12kはオフ状態となっており、主容量素子18aの一方の電極とデータ線13aおよびデータ線(NBL)13bとは電気的に分離されている。
【0127】
次に、入力データ(ID)がハイレベルとなることにより、スイッチ12c,12kは、データ線13aおよびデータ線13bと主容量素子18aの一方の電極とを電気的に接続可能にするようにオン状態となる。メモリセル11aに論理値“1”が格納されてスイッチ12aがオン状態になる場合、主容量素子18aがデータ線13aに接続される。これにより、データ線13aの寄生容量等19aと主容量素子18aとの間で電荷分散が行われ、データ線13aの電圧が決定される。メモリセル11bに論理値“1”が格納されてスイッチ12iがオン状態になる場合、主容量素子18aがデータ線13bに接続される。これにより、データ線13bの電圧は、主容量素子18aとデータ線13bの寄生容量等19bとの間で行われる電荷分散によって決定される。
【0128】
次に、積演算メモリセル10における積演算の結果が、“0”、“+1”および“-1”になる場合について説明する。
【0129】
積演算の結果が“0”になるのは入力データ(ID)が”0”、または、メモリセル11a,11bの両方の格納データが”0”のときである。このときには、スイッチ12c,12kがオフ状態、または、スイッチ12a,12iがオフ状態にされる。これにより、主容量素子18aが、データ線13aおよびデータ線13bから遮断される。
【0130】
一方、積演算の結果が“+1”になるのは、入力データ(ID)が”1”、メモリセル11aの格納データが”1”およびメモリセル11bの格納データが”0”のときである。このときには、スイッチ12c,12kがオン状態、スイッチ12aがオン状態、スイッチ12iがオフ状態にされる。これにより、主容量素子18aが、データ線13aに接続され、データ線13bから遮断される。
【0131】
また、積演算の結果が“-1”になるのは、入力データ(ID)が”1”およびメモリセル11aの格納データが”0”およびメモリセル11bの格納データが”1”のときである。このときには、スイッチ12c,12kがオン状態、スイッチ12aがオフ状態、スイッチ12iがオン状態にされる。これにより、主容量素子18aはデータ線13aから遮断され、データ線13bに接続される。
【0132】
データ線13aおよびデータ線13bには、複数の積演算メモリセル10が接続されている。そのため、データ線13aに接続された電源電圧(Vd)にチャージされている主容量素子18aの個数と、データ線13bに接続された電源電圧(Vd)にチャージされている主容量素子18aの個数の差が、積和結果となる。この場合、電流が流れないので、ハイインピーダンス(Hi-Z)で判定が行われる。推論時はデータ線13aの寄生容量19aおよびデータ線13bの寄生容量19bと導通した積演算メモリセル10の容量を用いて積和演算が行われる。具体的にはデータ線13aとデータ線13bとの電圧差が、積和結果となる。
【0133】
データ線13aとデータ線13bに接続された主容量素子18aの容量のばらつきを調整するため、主容量素子18aに対して、調整用の容量素子18b,18cを接続し、パス切り替えにより適切な合成容量が構成される。この構成により、データ線13aおよびデータ線13bに対して四通りの容量の切り替えが可能となる。以下、具体的に説明する。
【0134】
メモリセル11eに論理値“0”およびメモリセル11fに論理値“0”が格納されているとき、スイッチ12gおよびスイッチ12oはオフ状態にされる。これにより、主容量素子18aの一方の電極のみがノードn5に接続される。
【0135】
メモリセル11eに論理値“1”およびメモリセル11fに論理値“0”が格納されているとき、スイッチ12gはオン状態にされ、スイッチ12oはオフ状態にされる。これにより、主容量素子18aの一方の電極および容量素子18bの一方の電極がノードn5に接続される。
【0136】
メモリセル11eに論理値“0”およびメモリセル11fに論理値“1”が格納されているとき、スイッチ12gはオフ状態にされ、スイッチ12oはオン状態にされる。これにより、主容量素子18aの一方の電極および容量素子18cの一方の電極がノードn5に接続される。
【0137】
メモリセル11eに論理値“1”およびメモリセル11fに論理値“1”が格納されているとき、スイッチ12gはオン状態にされ、スイッチ12oはオン状態にされる。これにより、主容量素子18aの一方の電極、容量素子18bの一方の電極および容量素子18cの一方の電極がノードn5に接続される。
【0138】
本変形例では容量判定を用いるが、実施形態と同様に特性値の変更が可能で、メモリセルによってその値を維持することができる。また、調整機能により、同一データ線につながる複数の積演算メモリセルの特性を基準値に調整することで、推論時の誤動作を防止することが可能となる。
【0139】
(第二変形例)
図17は第二変形例における積演算メモリセルの構成を示す図である。
【0140】
実施形態では、データ線13a側に一つの重み用のメモリセル11a、データ線13b側に一つの重み用のメモリセル11bが配置される。一方、第二変形例では、データ線13a側およびデータ線13b側のそれぞれに複数の重み用のメモリセルが配置される。
【0141】
データ線13a側に四つの重み用のメモリセル11a0~11a3が配置され、それぞれの出力は四つのアンド回路AN0~AN3に供給される。アンド回路AN0~AN3には、それぞれカラム選択信号線WS0~WS3が供給される。アンド回路AN0~AN3は論理積を実行し、それらの出力はオア回路OR1に出力される。オア回路OR1は論理和を実行し、その出力はアンド回路AN4に出力される。アンド回路AN4には、入力線15により入力データ(ID)が供給される。アンド回路AN4は論理積を実行し、その出力はスイッチ12a,12bに供給される。
【0142】
データ線13b側に四つの重み用のメモリセル11b0~11b3が配置され、それぞれの出力は四つのアンド回路AN5~AN8に供給される。アンド回路AN5~AN8には、それぞれカラム選択信号線WS0~WS3が供給される。アンド回路AN5~AN8は論理積を実行し、それらの出力はオア回路OR2に出力される。オア回路OR2は論理和を実行し、その出力はアンド回路AN9に出力される。アンド回路AN9には、入力線15により入力データ(ID)が供給される。アンド回路AN9は論輪積を実行し、その出力はスイッチ12i,12jに供給される。
【0143】
例えば、カラム選択信号線WS0がハイレベルにされることによってメモリセル11a0,11b0が選択された場合には、メモリセル11a0,11b0に格納されている論理値と入力データ(ID)の論理値との間で積演算が実行される。そして、積演算の結果と、データ線13aにおける電流値とデータ線13bにおける電流値との間で和演算が実行されることになる。なお、このとき、カラム選択信号線WS1~WS3はロウレベルにしておくことで、メモリセル11a1~11a3,11b1~11b3は選択されないようにされる。
【0144】
重み用のメモリセルを複数配置し、カラム選択できるようにしているので、重み用のメモリセルのビット幅の調整が可能である。この場合、面積を大きく削減可能である。
【0145】
(第三変形例)
図18は第三変形例における積演算メモリセルの構成を示す図である。
【0146】
第三変形例における積演算メモリセル10では、実施形態における積演算メモリセル10において、重み用のメモリセル11a,11bの代わりにメモリアレイ101の外に配置したSRAMマクロからの複数の重み用の配線PW,NWが用いられる。データ線13a側の複数の重み用の配線PWの一つがスイッチ12a、12bを構成するNMOSトランジスタのゲートに接続される。そして、データ線13b側の複数の重み用の配線NWの一つがスイッチ12i、12jを構成するNMOSトランジスタのゲートに接続される。重み用の配線PW,NWは、メモリアレイ101に含まれる積演算メモリセル10に対応した数設けられ、複数の積演算メモリセル10に重みデータを同時入力することで演算が実行される。例えば、重み用の配線PW、NWはそれぞれ32本設けられる。
【0147】
実施形態のように、重み用のメモリセルを積演算メモリセルの内部に有するよりも積演算メモリセルの外のSRAMマクロで重みデータを保持して、そこから直接供給する方が面積的に有利になる可能性がある。
【0148】
(第四変形例)
図19は第四変形例における調整用リファレンスセルの構成を示す図である。
【0149】
実施形態における調整用リファレンスセル30はデータ線13a側の選択用のスイッチ31a,31bおよびデータ線13b側の選択用のスイッチ32a,32bをセル内に有する。このため、積演算メモリセル10とは完全に同じ構成ではなく、一定の電流値のずれを生じる。
【0150】
第四変形例における調整用リファレンスセル30は、積演算メモリセル10と全く同じ構成の二つのP側調整用リファレンスセル30aおよびN側調整用リファレンスセル30bをデータ線13aおよびデータ線13bにそれぞれ別々に接続して構成される。これにより、調整用リファレンスセル30の電流値をさらに積演算メモリセル10に近づけることが可能となり、実施形態より精密な積和演算が可能になる。推論時の誤動作を防止することができる。なお、P側調整用リファレンスセル30aとN側調整用リファレンスセル30bを互いに調整してから積演算メモリセル10の調整を開始する。
【0151】
(第五変形例)
図20は第五変形例におけるメモリセルアレイの構成を示す図である。
図21は実施形態におけるデータ線および共通電源線における電圧を示す図である。
図22は第五変形例におけるデータ線および共通電源線における電圧を示す図である。
図21および
図22のグラフの横軸は時間(TIME)、縦軸は電圧(VOLTAGE)である。
【0152】
実施形態おける共通電源スイッチ103は一つのスイッチで構成される。第五変形例における共通電源スイッチ103は並列接続される複数のスイッチ103a,103bで構成される。複数のスイッチ103a,103bは異なる駆動力のNMOSトランジスタで構成される。スイッチ103a,103bはスイッチSWa,SWbを介して共通電源線14に接続される。
【0153】
調整時は常に積演算メモリセルおよび推論用リファレンスセル等の一セルのみが導通され、データ線13aまたはデータ線13bが放電される。実際の推論時は動作ごとに導通セル数が異なるため、共通電源線(CVSS)の電位が異なる。
図21に示すように、推論時の導通セルが少ない場合(IS)の共通電源線(CVSS)の電位と調整時(TU)の共通電源線(CVSS)の電位との差は小さい。推論時の導通セル数が多い場合(IM)の共通電源線(CVSS)の電位と調整時(TU)の共通電源線(CVSS)の電位との差は大きい。このため、調整時に電流を揃えたとしても、推論時にボディバイアスのかかり方によって電流値がずれる可能性がある。
【0154】
例えば、推論時にはスイッチSWaがオン状態にされると共にスイッチSWbがオフ状態にされてスイッチ103aが使用される。調整時にはスイッチSWaがオフ状態にされると共にスイッチSWbがオン状態にされてスイッチ103bが使用される。スイッチ103bを構成するNMOSトランジスタのゲート幅はスイッチ103aを構成するNMOSトランジスタのゲート幅よりも小さく設定される。
【0155】
導通セル数が多い場合に精度が落ちやすいため、
図22に示すように、推論時の導通セル数が多い場合(IM)の共通電源線(CVSS)の電位と調整時(TU)の共通電源線(CVSS)の電位との差が小さくなるようスイッチ103bが使用される。なお、推論時の導通セルが少ない場合(IS)の共通電源線(CVSS)の電位と調整時(TU)の共通電源線(CVSS)の電位との差は大きくなるが、導通セルが少ない場合の精度への影響は少ない。
【0156】
調整時に異なるサイズの共通電源スイッチを使用し、導通セル数が多い場合の推論時の状況を再現させる。これにより、推論時の誤動作を防止することができる。
【0157】
(第六変形例)
図23は第六変形例における積演算メモリセルの構成を示す図である。
図23のグラフの横軸は時間(TIME)、縦軸は電圧(VOLTAGE)である。
【0158】
SRAMメモリには、動作モードとして、通常動作モード(NO_M)と、レジューム・スタンバイ(Resume Standby:RS)モード(RS_M)と、がある。通常動作モードは、データ読出しおよびデータ書込みを行うときの動作モードである。RSモードは、データを消失しない程度に電源電圧を絞って書込まれたデータを保持した状態で消費電力を低減させる動作モードである。メモリアレイの接地配線の電位を接地電位(0V)よりも高い電位(電源電位と接地電位との間の電位)に設定することにより電源電圧が絞られる。
【0159】
実施形態では、メモリセル11a~11fを構成するSRAMメモリのNMOSトランジスタN1,N2のソースには接地電位(Vs)が供給され、通常モードで推論動作が行われる。本変形例では、RSモードで推論動作(MAC)が行われる。
【0160】
本変形例におけるメモリセル11a~11fを構成するSRAMメモリのNMOSトランジスタN1,N2のソースが接続されるノードn5には電流源CSmが接続される。そして、RSモードでは電流源CSmの駆動力を落としてノードn5の電位を接地電位(Vs)よりも高くしてソースバイアスを変化させる。これにより、メモリセル11a~11fを構成するオフ状態のMOSトランジスタのサブスレッショルドリーク電流を低減することができる。
【0161】
メモリセル11a~11fの相補データ(T、B)を保持するノードn3,n4に接続されるNMOSトランジスタのゲートのうち、ハイレベル(H)側は影響なく、ロウレベル(L)側は遮断状態維持のため推論に影響なく、リーク電力の削減が可能である。これについて、以下説明する。
【0162】
例えば、メモリセル11eにおいて、相補データ(T)を保持するノードn3がハイレベル側であり、相補データ(B)を保持するノードn4がロウレベル側である。ノードn3は通常動作モードからRSモードになってもハイレベル(H)の電位が維持され、スイッチ12gを構成するNMOSトランジスタのゲートの電位が維持されるので、セル電流(IC)に影響しない。ノードn4はRSモードになると、ロウレベル(L)の電位は上昇するが、スイッチ12hを構成するNMOSトランジスタの遮断を維持するので、リーク電流(IL)による推論の影響はない。
【0163】
以上、本開示者らによってなされた開示を実施の形態に基づき具体的に説明したが、本開示は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【0164】
10・・・積演算メモリセル(メモリセル)
11a・・・メモリセル(第一のデータ保持回路)
11b・・・メモリセル(第二のデータ保持回路)
11e,11c・・・メモリセル(第三のデータ保持回路)
11f,11d・・・メモリセル(第四のデータ保持回路)
12a~12p・・・スイッチ
13a・・・データ線(PBL、第一のデータ線)
13b・・・データ線(NBL、第二のデータ線)
15・・・入力線(IL)
104・・・センスアンプ(比較回路)
130・・・AIアクセラレータ(半導体装置)