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

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

▶ 学校法人慶應義塾の特許一覧

<>
  • 特開-半導体装置 図1
  • 特開-半導体装置 図2
  • 特開-半導体装置 図3
  • 特開-半導体装置 図4
  • 特開-半導体装置 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024155089
(43)【公開日】2024-10-31
(54)【発明の名称】半導体装置
(51)【国際特許分類】
   G11C 14/00 20060101AFI20241024BHJP
【FI】
G11C14/00 230
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023069504
(22)【出願日】2023-04-20
(71)【出願人】
【識別番号】598121341
【氏名又は名称】慶應義塾
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】山▲崎▼ 信行
(72)【発明者】
【氏名】中別府 将太
(57)【要約】
【課題】不揮発性記憶部への書き込み動作における消費エネルギーを低減する。
【解決手段】不揮発性記憶部を備える半導体装置が、半導体装置の状態を示す状態情報に基づいて不揮発性記憶部に対する書き込み成功率を予測する予測回路部と、書き込み成功率の予測結果に基づいて不揮発性記憶部に対する書き込み動作を制御する記憶制御部と、書き込み動作の結果に基づいて、機械学習モデルのモデルパラメタを更新する学習回路部と、を備える。
【選択図】図3
【特許請求の範囲】
【請求項1】
不揮発性記憶部を備える半導体装置であって、
前記半導体装置の状態を示す状態情報に基づいて前記不揮発性記憶部に対する書き込み成功率を予測する予測回路部と、
前記書き込み成功率の予測結果に基づいて前記不揮発性記憶部に対する書き込み動作を制御する記憶制御部と、
を備える半導体装置。
【請求項2】
請求項1に記載の半導体装置であって、
前記予測回路部は、前記状態情報及び前記不揮発性記憶部への電流流入時間に基づいて前記書き込み成功率を予測し、
前記記憶制御部は、前記書き込み成功率が閾値以上となる前記電流流入時間で前記書き込み動作を実行する、
半導体装置。
【請求項3】
請求項2に記載の半導体装置であって、
前記状態は、前記不揮発性記憶部の温度及び前記半導体装置の電圧を含む、
半導体装置。
【請求項4】
請求項2又は3に記載の半導体装置であって、
前記不揮発性記憶部は、磁気トンネル接合素子を含む、
半導体装置。
【請求項5】
請求項3に記載の半導体装置であって、
前記予測回路部は、前記温度、前記電圧及び前記電流流入時間を説明変数とし、前記書き込み成功率を目的変数とする機械学習モデルを用いて、前記書き込み成功率を予測する、
半導体装置。
【請求項6】
請求項5に記載の半導体装置であって、
前記書き込み動作の結果に基づいて、前記機械学習モデルのモデルパラメタを更新する学習回路部をさらに備える、
半導体装置。
【請求項7】
請求項5又は6に記載の半導体装置であって、
前記機械学習モデルは、多層ニューラルネットワークである、
半導体装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、半導体装置に関する。
【背景技術】
【0002】
省エネルギーかつ高信頼性を要求される組込みシステムでは、消費エネルギーを抑制することができる不揮発性デバイスが利用されている。例えば、特許文献1には、フリップフロップと不揮発性記憶部とを備え、不揮発性記憶部に記憶されているデータとフリップフロップが保持するデータとが同一でない場合、フリップフロップが保持するデータを不揮発性記憶部に書き込ませる制御を行う半導体装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2018-101456号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来技術では、確率的にデータを記憶する不揮発性素子を用いているため、高確率でデータの書き込みが成功するように書き込み動作を制御する。そのため、従来技術では、消費エネルギーを低減する余地がある。
【0005】
本開示の一態様は、上記のような技術的課題に鑑みて、不揮発性記憶部への書き込み動作における消費エネルギーを低減することを目的とする。
【課題を解決するための手段】
【0006】
本開示の一態様による半導体装置は、不揮発性記憶部を備える半導体装置であって、半導体装置の状態を示す状態情報に基づいて不揮発性記憶部に対する書き込み成功率を予測する予測回路部と、書き込み成功率の予測結果に基づいて不揮発性記憶部に対する書き込み動作を制御する記憶制御部と、を備える。
【発明の効果】
【0007】
本開示の一態様によれば、不揮発性記憶部への書き込み動作における消費エネルギーを低減することができる。
【図面の簡単な説明】
【0008】
図1】従来技術におけるストア動作の一例を示すフローチャートである。
図2】予測モデルの一例を示すブロック図である。
図3】半導体装置の機能構成の一例を示すブロック図である。
図4】実施形態におけるストア動作の一例を示すフローチャートである。
図5】決定処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。
【0010】
[実施形態]
近年、例えば自動車、ロボット又は宇宙機等の様々な組込みシステムが社会インフラを担っている。組込みシステムは例えばバッテリ等のようなエネルギー量に制限があるエネルギー源で駆動することが多いため、消費エネルギーを削減することが求められる。また、社会インフラを担う組込みシステムの故障は事故の原因となるため、高い信頼性を担保することも重要である。
【0011】
省エネルギーかつ高信頼性を満たすためには、電源を落としてもデータを保持できる不揮発性デバイスが有用である。特許文献1には、パワーゲーティングにより消費エネルギーを削減しつつ、不意に電源が落ちてもデータを保持することで高い信頼性を担保する不揮発性デバイスが開示されている。特許文献1に開示された不揮発性デバイスは、「VR-NVFF(Verify and Retryable Non-Volatile Flip-Flop)」とも呼ばれる。
【0012】
VR-NVFFは、フリップフロップ部(以下、「FF」とも呼ぶ)、不揮発性素子部及び検証回路部で構成される。フリップフロップ部は通常のフリップフロップ回路と同様に動作する。フリップフロップ部が保持する値は、電源を落とすと消失する。不揮発性素子部は、2個の磁気トンネル接合(MTJ; Magnetic Tunnel Junction)素子により1ビットの値を記憶する。不揮発性素子部に記憶された値は、電源を落としても保持される。検証回路部は、フリップフロップ部が保持する値と不揮発性素子部に記憶された値とを比較検証する。
【0013】
フリップフロップ部が保持する値を不揮発性素子部に書き込む動作は、ストア動作と呼ばれる。不揮発性素子部に記憶された値をフリップフロップ部に復元する動作は、リストア動作と呼ばれる。不揮発性素子部に記憶された値を検証回路部に復元し、フリップフロップ部が保持する値と検証回路部が保持する値とを比較検証する動作は、検証動作と呼ばれる。
【0014】
本開示の一実施形態では、VR-NVFFを備える半導体装置において、不揮発性素子部にデータを書き込むストア動作を省エネルギーで実現することを目的とする。一の側面では、本実施形態によれば、不揮発性記憶部への書き込み動作における消費エネルギーを低減することができる。
【0015】
<磁気トンネル接合素子>
磁気トンネル接合素子(以下、「MTJ素子」とも呼ぶ)は、磁化方向の違いにより値を記憶する不揮発性素子である。MTJ素子は、電流を流す方向により、低抵抗状態と高抵抗状態とを切り替えることが可能であり、この現象を利用して値の書き込みを行う。MTJ素子は、電源を落としても状態が保持される特徴を活かし、不揮発性記憶部として用いられる。参考文献1には、MTJ素子の状態遷移が発生する確率(言い替えると、MTJ素子への書き込みが成功する確率)が、温度、電圧及び電流流入時間等に依存することが開示されている。
【0016】
〔参考文献1〕Sun, J. Z.: "Spin-transfer torque switched magnetic tunnel junction for memory technologies," Journal of Magnetism and Magnetic Materials, Vol. 559, p. 169479 (online), DOI: https://doi.org/10.1016/j.jmmm.2022.169479 (2022).
【0017】
しかしながら、実チップ上では、ある電流流入時間におけるMTJ素子の書き込み成功率を動的に予測することは困難である。例えば、実チップではプロセスがばらつくことや、温度及び電圧が動的に変化すること等が、予測を困難とする要因として挙げられる。
【0018】
参考文献2には、MTJ素子を用いた確率的スイッチングデバイスが開示されている。参考文献2に開示された確率的スイッチングデバイスは、MTJ素子への書き込みが確率的な動作であることを応用している。しかしながら、参考文献2では、プロセスのばらつきや温度及び電圧の動的な変化等を考慮してMTJ素子の書き込み成功率を動的に予測することは行っていない。
【0019】
〔参考文献2〕米国特許出願公開第2019/130954号明細書
【0020】
<ストア動作の流れ>
VR-NVFFは、2個のMTJ素子に対して書き込みを行うため、ストア動作の成功率はMTJ素子の書き込み成功率に依存する。VR-NVFFは、MTJ素子への書き込みが確率的な動作であることを踏まえ、不揮発性素子部に対する書き込み成功率を向上するために、書き込み動作を行った後に検証動作を行い、失敗していた場合は再度書き込み動作を行うといった工程を繰り返す。
【0021】
MTJ素子への書き込みでは、電流流入時間を長くするほど成功率が向上する。一方、電流流入時間を長くすれば、それだけ消費エネルギーは増大する。VR-NVFFでは、不揮発性素子部への書き込みの消費エネルギーを削減するために、1回目の書き込み動作における電流流入時間を短くし、2回目以降の書き込み動作における電流流入時間を長くする制御を行う。
【0022】
VR-NVFFを備える半導体装置のストア動作について、図1を参照しながら説明する。図1は、従来技術におけるストア動作の一例を示すフローチャートである。なお、ストア動作は半導体装置の制御部により実行される。
【0023】
ステップS1において、半導体装置の制御部は、不揮発性素子部への書き込みが必要か否かを検証する。具体的には、制御部はVR-NVFFの検証回路部に、フリップフロップ部が保持する値と不揮発性素子部に記憶された値とを比較検証させ、その検証結果を出力させる。
【0024】
検証回路部が出力した検証結果が、フリップフロップ部が保持する値と不揮発性素子部に記憶された値とが異なることを示す場合、制御部は不揮発性素子部への書き込みが必要と判定する。一方、検証回路部が出力した検証結果が、フリップフロップ部が保持する値と不揮発性素子部に記憶された値とが等しいことを示す場合、制御部は不揮発性素子部への書き込みが不要と判定する。
【0025】
不揮発性素子部への書き込みが必要と判定した場合(YES)、制御部はステップS2に処理を進める。一方、不揮発性素子部への書き込みが不要と判定した場合(NO)、制御部はストア動作を終了する。
【0026】
ステップS2において、半導体装置の制御部は、VR-NVFFに短時間書き込み動作を実行させる。短時間書き込み動作は、予め定めた第1の電流流入時間でフリップフロップ部が保持する値を不揮発性素子部に書き込む動作である。第1の電流流入時間は、統計的にある程度の書き込み成功率(例えば、80%程度)が期待できる電流流入時間を任意に定めればよい。第1の電流流入時間は、例えば40ナノ秒である。
【0027】
ステップS3において、半導体装置の制御部は、ステップS2で実行した短時間書き込み動作の書き込み結果を判定する。具体的には、制御部はVR-NVFFの検証回路部に、フリップフロップ部が保持する値と不揮発性素子部に記憶された値とを比較検証させ、その検証結果を出力させる。
【0028】
検証回路部が出力した検証結果が、フリップフロップ部が保持する値と不揮発性素子部に記憶された値とが等しいことを示す場合、制御部は短時間書き込み動作が成功したと判定する。一方、検証回路部が出力した検証結果が、フリップフロップ部が保持する値と不揮発性素子部に記憶された値とが異なることを示す場合、制御部は短時間書き込み動作が失敗したと判定する。
【0029】
短時間書き込み動作が成功した場合(YES)、制御部はストア動作を終了する。一方、短時間書き込み動作が失敗した場合(NO)、制御部はステップS4に処理を進める。
【0030】
ステップS4において、半導体装置の制御部は、書き込み回数を示すカウンタが所定の閾値未満であるか否かを判定する。所定の閾値は、書き込みを再試行する上限回数である。上限回数は任意に定めればよいが、例えば16である。
【0031】
カウンタが閾値未満である場合(YES)、制御部はステップS6に処理を進める。このとき、制御部はカウンタをインクリメントする。一方、カウンタが閾値以上である場合(NO)、制御部はステップS5に処理を進める。
【0032】
ステップS5において、半導体装置の制御部は、割り込みを通知し、ストア動作を中断する。
【0033】
ステップS6において、半導体装置の制御部は、VR-NVFFに長時間書き込み動作を実行させる。長時間書き込み動作は、予め定めた第2の電流流入時間でフリップフロップ部が保持する値を不揮発性素子部に書き込む動作である。第2の電流流入時間は第1の電流流入時間よりも長く設定される。第2の電流流入時間は、統計的にほぼ100%の書き込み成功率が期待できる電流流入時間を定めればよい。第2の電流流入時間は、例えば100ナノ秒である。
【0034】
半導体装置の制御部はVR-NVFFに長時間書き込み動作を実行させた後、ステップS3に処理を戻す。その後、制御部は、不揮発性素子部への書き込みが成功するか、カウンタが上限回数に達するまで、長時間書き込み動作を繰り返し実行する。
【0035】
<ストア動作の消費エネルギー>
本実施形態では、ストア動作における消費エネルギーを以下のようにモデル化する。ここで、モデル化する消費エネルギーは、複数のVR-NVFFで構成されるメモリバンクを備える半導体装置におけるストア動作の消費エネルギーである。以下では、本モデルを消費エネルギーモデルと呼ぶ。
【0036】
なお、消費エネルギーモデルは、下記3点を仮定している。
(1)1回目の長時間書き込み動作で書き込みが成功する。
(2)N個のVR-NVFFに対してストア動作を実行する。
(3)MTJ素子の消費エネルギーのみを考慮する。
【0037】
【数1】
【0038】
ここで、消費エネルギーモデルの各パラメタは、以下のとおりである。
・Estore:ストア動作全体の消費エネルギー
・Efirstverify:1回目の検証動作の消費エネルギー
・Eshortstore:短時間書き込み動作の消費エネルギー
・Esecondverify:2回目の検証動作の消費エネルギー
・Elongstore:長時間書き込み動作の消費エネルギー
・Ethirdverify:3回目の検証動作の消費エネルギー
・Everify:検証動作の消費エネルギー(VR-NVFF1個あたり)
・N:NVFFの総数
・N1:1回目の検証動作後、FFとMTJ素子とで値が異なるVR-NVFFの総数
・N2:2回目の検証動作後、FFとMTJ素子とで値が異なるVR-NVFFの総数
・V:電圧
・I:MTJ素子に流入する電流値
・tshortstore:短時間書き込み動作の電流流入時間
・tlongstore:長時間書き込み動作の電流流入時間
・Pshortstore:短時間書き込み動作の成功率
・Plongstore:長時間書き込み動作の成功率
【0039】
消費エネルギーモデルに基づくと、短時間書き込み動作の成功率Pshortstoreは短時間書き込み動作の電流流入時間tshortstoreに依存することがわかる。したがって、短時間書き込み動作の消費エネルギーEshortstoreと長時間書き込み動作の消費エネルギーElongstoreの和(Eshortstore+Elongstore)を最小化するように、短時間書き込み動作の電流流入時間tshortstoreを設定すべきである。
【0040】
また、消費エネルギーモデルに基づくと、長時間書き込み動作の成功率Plongstoreは長時間書き込み動作の電流流入時間tlongstoreに依存することがわかる。したがって、長時間書き込み動作の成功率Plongstoreが100%に近くなり、かつ長時間書き込み動作の消費エネルギーElongstoreを最小化するように、長時間書き込み動作の電流流入時間tlongstoreを設定すべきである。
【0041】
<書き込み動作の成功率>
MTJ素子への書き込み成功率モデルは複数存在するが(参考文献1等参照)、本実施形態では、MTJ素子への書き込み動作の成功率を以下のようにモデル化する。なお、書き込み動作の成功条件は、不揮発性素子部を構成する2個のMTJ素子両方への書き込みに成功したことである。以下では、本モデルを成功率モデルと呼ぶ。
【0042】
【数2】
【0043】
ここで、成功率モデルの各パラメタは、以下のとおりである。
・Pstore:ストア動作の成功率
・Psw:MTJ素子の書き込み成功率(MTJ素子1個あたり)
・t:電流流入時間
・T:MTJ素子の温度
・V:電圧
・I:MTJ素子に流入する電流値
・RMTJ:MTJ素子の抵抗値
・τ0:試行時間(1ナノ秒程度)
・Eb:エネルギー障壁
・kb:ボルツマン定数
・Ic:クリティカル電流値
・ν:定数(1≦ν≦2)
【0044】
成功率モデルに基づくと、書き込み動作の成功率Pstoreは、MTJ素子の書き込み成功率Pswを用いて計算可能であることがわかる。また、MTJ素子の書き込み成功率Pswは、温度T、電圧V及び電流流入時間tに依存することがわかる。
【0045】
<電流流入時間の決定手法>
ある電流流入時間におけるMTJ素子の書き込み成功率を動的に予測し、MTJ素子への書き込み動作における電流流入時間を適切に制御すれば、ストア動作の消費エネルギーをより効果的に削減することができる。
【0046】
本実施形態では、機械学習により動的にストア動作全体の消費エネルギーEstoreを最小化する電流流入時間tを決定する。具体的には、温度T、電圧V及び電流流入時間tを説明変数とし、書き込み成功率Pswを目的関数とする機械学習モデルを用いて、MTJ素子の書き込み成功率を予測する。以下、この機械学習モデルを「予測モデル」と呼ぶ。
【0047】
図2は、予測モデルの一例を示すブロック図である。図2に示されているように、本実施形態における予測モデル100は、温度T、電圧V及び電流流入時間tを入力とし、書き込み成功率Pswを出力する。
【0048】
上記の成功率モデルに基づくと、温度T、電圧V及び電流流入時間tと書き込み成功率Pswとは、非線形関数で表現されることがわかる。そのため、予測モデルは、非線形関数を予測可能とするために、多層ニューラルネットワークで構成するとよい。多層ニューラルネットワークの構造は限定されないが、例えば、8層4ノードの順伝播型ニューラルネットワークを用いることができる。ただし、層数及びノード数はこれらに限定されず、計算量及び予測精度に応じて任意に設計すればよい。
【0049】
予測モデルは、予め様々な温度T、電圧V及び電流流入時間tで書き込み動作を行い、その温度T、電圧V及び電流流入時間tに書き込み成功率を関連付けた学習データを用いて学習することができる。予測モデルは、オフラインで学習した学習済みの予測モデルを使い続けてもよいし、書き込み動作を行うたびにオンラインで再学習可能としてもよい。
【0050】
学習済みの予測モデルは、MTJ素子を用いる半導体装置の制御部にハードウェアとして組み込むとよい。予測モデルを再学習可能とするために、予測モデルのモデルパラメタは不揮発性の記憶部に記憶するとよい。モデルパラメタを記憶する記憶部は、制御対象とするVR-NVFFでもよいし、その他の記憶部でもよい。
【0051】
また、本実施形態では、学習済みの予測モデルによる予測結果に基づいて、消費エネルギーEstoreを最小化する電流流入時間(以下、「最適電流流入時間」と呼ぶ)を探索する。最適電流流入時間は、書き込み成功率がほぼ100%と予測される電流流入時間tのうち最も短い電流流入時間tである。そして、本実施形態では、探索された最適電流流入時間に従って、MTJ素子への書き込み動作における電流流入時間tを決定する。
【0052】
さらに、本実施形態では、書き込み動作を行ったときの温度T、電圧V、電流流入時間t及び書き込み結果(成功又は失敗)に基づいて、予測モデルを再学習する。これにより、書き込み動作を繰り返すに連れて、半導体装置の動作環境に対して予測モデルを最適化することができる。
【0053】
<半導体装置の機能構成>
本実施形態における半導体装置の機能構成について、図3を参照しながら説明する。図3は、半導体装置の機能構成の一例を示すブロック図である。
【0054】
図3に示されているように、本実施形態における半導体装置1は、N(≧1)個の不揮発性フリップフロップ2及び制御部3を備える。不揮発性フリップフロップ2は、電源を落としてもデータを保持できる不揮発性デバイスである。不揮発性フリップフロップ2は、例えば、VR-NVFFである。制御部3は、不揮発性フリップフロップ2の動作を制御する。
【0055】
図3では、半導体装置1がN個の不揮発性フリップフロップ2を備える例が示されているが、半導体装置1が備える不揮発性フリップフロップ2の数は限定されない。複数個の不揮発性フリップフロップ2を備える場合、制御部3がすべての不揮発性フリップフロップ2を制御すればよい。
【0056】
不揮発性フリップフロップ2は、フリップフロップ部21、不揮発性素子部22(不揮発性記憶部の一例)及び検証回路部23を備える。制御部3は、取得部31、予測回路部32、決定部33、記憶制御部34及び学習回路部35を備える。
【0057】
フリップフロップ部21は、フリップフロップ回路で構成される揮発性の記憶部である。
【0058】
不揮発性素子部22は、2個のMTJ素子で構成される不揮発性の記憶部である。
【0059】
検証回路部23は、フリップフロップ部21が保持する値と不揮発性素子部22が保持する値とを比較検証し、検証結果を出力する。検証回路部23が出力する検証結果は、フリップフロップ部21が保持する値と不揮発性素子部22に記憶された値とが同一であるか否かを示す真理値である。
【0060】
取得部31は、半導体装置1の状態を示す状態情報を取得する。状態情報は、半導体装置1の温度を計測した温度データ、及び半導体装置1の電源電圧を示す電圧データを含む。温度データは、半導体装置1が備える温度センサから取得することができる。電圧データは、半導体装置1の電源から取得することができる。
【0061】
なお、上記の成功率モデルではMTJ素子の温度をパラメタとしていたが、MTJ素子自体の温度を計測することは困難である。一方、半導体装置1の温度センサで計測できる温度はMTJ素子の温度と同視できる。そのため、本実施形態では半導体装置1が備える温度センサで計測される温度をMTJ素子の温度として用いる。
【0062】
予測回路部32は、取得部31が出力した状態情報に基づいて、不揮発性素子部22の書き込み成功率を予測する。具体的には、予測回路部32は、学習済みの予測モデルに、温度、電圧及び電流流入時間を入力することで、書き込み成功率を予測する。予測モデルに入力する温度及び電圧は、状態情報に含まれる温度データ及び電圧データから取得する。予測モデルに入力する電流流入時間は、決定部33により選択される。
【0063】
決定部33は、予測回路部32による書き込み成功率の予測結果に基づいて、電流流入時間を決定する。具体的には、決定部33は、予測対象とする電流流入時間を選択し、その電流流入時間における書き込み成功率の予測結果を予測回路部32から取得する。決定部33は、電流流入時間を変化させながら書き込み成功率の予測結果を取得することを繰り返し、ストア動作の消費エネルギーを最小化する最適電流流入時間を探索する。
【0064】
また、決定部33は、探索された最適電流流入時間に基づいて、MTJ素子への書き込み動作における電流流入時間を決定する。具体的には、記憶制御部34は、最適電流流入時間を長時間書き込み動作における電流流入時間(第2の電流流入時間)として決定する。また、記憶制御部34は、最適電流流入時間よりも短い電流流入時間を短時間書き込み動作における電流流入時間(第1の電流流入時間)として決定する。
【0065】
記憶制御部34は、決定部33により決定した電流流入時間に従って、ストア動作を制御する。言い替えると、記憶制御部34は、決定部33により決定した第1の電流流入時間に従って、短時間書き込み動作を実行する。また、記憶制御部34は、決定部33により決定した第2の電流流入時間に従って、長時間書き込み動作を実行する。
【0066】
学習回路部35は、記憶制御部34による書き込み動作の結果に基づいて、予測モデルを再学習する。具体的には、学習回路部35は、記憶制御部34により短時間書き込み動作又は長時間書き込み動作が実行されるたびに、不揮発性フリップフロップ2の検証回路部23から検証結果を取得し、書き込み動作が成功したか否かを判定する。また、学習回路部35は、書き込み動作が成功した不揮発性フリップフロップ2の数に基づいて、書き込み成功率を計算する。書き込み成功率は、M(≦N)を書き込み動作が成功した不揮発性フリップフロップ2の数として、M/Nである。そして、学習回路部35は、書き込み動作を実行したときの温度、電圧及び電流流入時間に、書き込み成功率を関連付けた学習データを生成する。
【0067】
そして、学習回路部35は、生成した学習データに基づいて予測モデルのモデルパラメタを更新する。具体的には、学習回路部35は、学習データに含まれる温度、電圧及び電流流入時間に基づいて予測回路部32により書き込み成功率を予測する。次に、学習回路部35は、書き込み成功率の予測結果と学習データに含まれる書き込み成功率との誤差を計算する。そして、学習回路部35は、誤差が最小化するように予測モデルのモデルパラメタを更新する。モデルパラメタの更新は、例えば誤差逆伝播法等に基づいて行えばよい。
【0068】
<ストア動作の処理手順>
本実施形態における半導体装置1が実行するストア動作について、図4及び図5を参照しながら説明する。図4は、本実施形態におけるストア動作の一例を示すフローチャートである。
【0069】
ステップS11において、半導体装置1の制御部3は、電流流入時間の決定処理を実行する。電流流入時間の決定処理は、不揮発性素子部22への書き込み動作における電流流入時間を決定する処理である。
【0070】
≪電流流入時間の決定処理≫
電流流入時間の決定処理(図4のステップS11)について、図5を参照しながらより詳細に説明する。図5は、決定処理の一例を示すフローチャートである。
【0071】
ステップS21において、制御部3の取得部31は、半導体装置1が備える温度センサから温度データを取得する。次に、取得部31は、半導体装置1の電源から電圧データを取得する。そして、取得部31は、温度データ及び電圧データを含む状態情報を、予測回路部32に送る。
【0072】
ステップS22において、制御部3の決定部33は、予測対象とする電流流入時間を選択する。1回目のステップS22では、決定部33は、予め定めた電流流入時間の初期値を選択すればよい。電流流入時間の初期値は、予測モデルを学習したときに決定しておけばよい。そして、決定部33は、選択した電流流入時間を、予測回路部32に送る。
【0073】
ステップS23において、制御部3の予測回路部32は、取得部31から状態情報を受け取る。また、予測回路部32は、決定部33から電流流入時間を受け取る。次に、予測回路部32は、状態情報から温度及び電圧を取得する。続いて、予測回路部32は、学習済みの予測モデルに温度、電圧及び電流流入時間を入力する。予測モデルは、温度、電圧及び電流流入時間に基づいて書き込み成功率を予測し、その予測結果を出力する。
【0074】
ステップS24において、制御部3の決定部33は、予測回路部32が出力した予測結果が所定の条件を満たすか否かを判定する。書き込み成功率の予測結果が所定の条件を満たす場合(YES)、制御部3の決定部33はステップS25に処理を進める。一方、書き込み成功率の予測結果が所定の条件を満たさない場合(NO)、制御部3の決定部33はステップS22に処理を戻す。
【0075】
所定の条件は、予測された最適電流流入時間が最適か否かを判定するための条件である。所定の条件は、例えば、書き込み成功率が予め定めた閾値以上であり、かつ予め定めた閾値との差が所定の範囲以内であること等である。書き込み成功率に対する閾値は100%に近い値を定めればよい。閾値は、例えば99.999%である。
【0076】
MTJ素子への書き込みは電流流入時間が長いほど成功率が高くなる。一方、書き込み成功率が100%近くなると電流流入時間を長くしても成功率の向上幅はわずかとなる。したがって、書き込み成功率と電流流入時間(すなわち消費エネルギー量)とのバランスを考慮し、高い確率で書き込みに成功する電流流入時間のうち最も短い電流流入時間を探索するとよい。
【0077】
2回目以降のステップS22では、ステップS23で予測回路部32が出力した予測結果に基づいて、予測対象とする電流流入時間を再選択する。例えば、書き込み成功率の予測結果が所定の閾値未満であった場合、決定部33は、前回よりも長い電流流入時間を選択すればよい。また、例えば、書き込み成功率の予測結果が所定の閾値以上、かつ所定の範囲外であった場合、決定部33は、前回よりも短い電流流入時間を選択すればよい。
【0078】
ステップS25において、制御部3の決定部33は、書き込み成功率の予測結果が所定の条件を満たしたときの電流流入時間を、最適電流流入時間として決定する。次に、決定部33は、最適電流流入時間に基づいて、第1の電流流入時間及び第2の電流流入時間を決定する。そして、決定部33は、第1の電流流入時間及び第2の電流流入時間を記憶制御部34に設定する。
【0079】
図4に戻って説明する。ステップS12において、半導体装置1の制御部3は、不揮発性素子部22への書き込みが必要か否かを検証する。具体的には、制御部3は、不揮発性フリップフロップ2の検証回路部23に、フリップフロップ部21が保持する値と不揮発性素子部22に記憶された値とを比較検証させ、その検証結果を出力させる。
【0080】
検証回路部23が出力した検証結果が、フリップフロップ部21が保持する値と不揮発性素子部22に記憶された値とが異なることを示す場合、制御部3は、不揮発性素子部22への書き込みが必要と判定する。一方、検証回路部23が出力した検証結果が、フリップフロップ部21が保持する値と不揮発性素子部22に記憶された値とが等しいことを示す場合、制御部3は、不揮発性素子部22への書き込みが不要と判定する。
【0081】
不揮発性素子部22への書き込みが必要と判定した場合(YES)、制御部3はステップS13に処理を進める。一方、不揮発性素子部22への書き込みが不要と判定した場合(NO)、制御部3はストア動作を終了する。
【0082】
ステップS13において、半導体装置1の制御部3は、不揮発性フリップフロップ2に短時間書き込み動作を実行させる。具体的には、制御部3の記憶制御部34が、ステップS11で決定した第1の電流流入時間で、フリップフロップ部21が保持する値を不揮発性素子部22へ書き込ませる。
【0083】
ステップS14において、半導体装置1の制御部3は、ステップS13で実行した短時間書き込み動作の書き込み結果に基づいて、予測モデルを再学習する。具体的には、制御部3は、不揮発性フリップフロップ2の検証回路部23に、フリップフロップ部21が保持する値と不揮発性素子部22に記憶された値とを比較検証させ、その検証結果を出力させる。
【0084】
検証回路部23が出力した検証結果が、フリップフロップ部21が保持する値と不揮発性素子部22に記憶された値とが等しいことを示す場合、学習回路部35は短時間書き込み動作が成功したと判定する。一方、検証回路部23が出力した検証結果が、フリップフロップ部21が保持する値と不揮発性素子部22に記憶された値とが異なることを示す場合、学習回路部35は短時間書き込み動作が失敗したと判定する。
【0085】
次に、学習回路部35は、Mを書き込み動作が成功した不揮発性フリップフロップ2として、書き込み成功率M/Nを計算する。学習回路部35は、短時間書き込み動作を実行したときの温度、電圧及び電流流入時間に、書き込み成功率を関連付ける。これにより、学習データが生成される。
【0086】
続いて、学習回路部35は、学習データに含まれる温度、電圧及び電流流入時間に基づいて書き込み成功率を予測する。次に、学習回路部35は、書き込み成功率の予測結果と学習データに含まれる書き込み成功率との誤差を計算する。そして、学習回路部35は、誤差が最小化するように予測モデルのモデルパラメタを更新する。
【0087】
なお、予測モデルの再学習は行わず、オフラインで学習した予測モデルを使用し続けてもよい。この場合、制御部3は、ステップS14をスキップし、ステップS15に処理を進めればよい。
【0088】
ステップS15において、半導体装置1の制御部3は、ステップS13で実行した短時間書き込み動作の書き込み結果を判定する。短時間書き込み動作が成功した場合(YES)、制御部3はストア動作を終了する。一方、短時間書き込み動作が失敗した場合(NO)、制御部3はステップS16に処理を進める。
【0089】
ステップS16において、半導体装置1の制御部3は、書き込み回数を示すカウンタが所定の閾値未満であるか否かを判定する。カウンタが閾値未満である場合(YES)、制御部3はカウンタをインクリメントし、ステップS18に処理を進める。一方、カウンタが閾値以上である場合(NO)、制御部3はステップS17に処理を進める。
【0090】
ステップS17において、半導体装置1の制御部3は、割り込みを通知し、ストア動作を中断する。
【0091】
ステップS18において、半導体装置1の制御部3は、不揮発性フリップフロップ2に長時間書き込み動作を実行させる。具体的には、制御部3の記憶制御部34が、ステップS11で決定した第2の電流流入時間で、フリップフロップ部21が保持する値を不揮発性素子部22へ書き込ませる。
【0092】
半導体装置1の制御部3は、不揮発性フリップフロップ2に長時間書き込み動作を実行させた後、ステップS14に処理を戻す。長時間書き込み動作を実行した後のステップS14では、制御部3は、ステップS18で実行した長時間書き込み動作の書き込み結果に基づいて、予測モデルを再学習する。その後、制御部3は不揮発性素子部22への書き込みが成功するか、カウンタが上限回数に達するまで、長時間書き込み動作を繰り返し実行する。
【0093】
<実施形態の効果>
本実施形態における半導体装置1は、半導体装置1の状態に基づいて不揮発性素子部22に対する書き込み成功率を予測し、その予測結果に基づいて不揮発性素子部22に対する書き込み動作を制御する。例えば、半導体装置1の状態に応じて消費エネルギーが最小化するように書き込み動作を制御すれば、書き込み動作における消費エネルギーを低減することができる。したがって、本実施形態によれば、不揮発性素子部22への書き込み動作における消費エネルギーを低減することができる。
【0094】
本実施形態における半導体装置1は、半導体装置1の状態及び不揮発性素子部22への電流流入時間に基づいて書き込み成功率を予測し、書き込み成功率が閾値以上となる電流流入時間で書き込み動作を実行する。したがって、本実施形態によれば、所定の書き込み成功率を維持できる範囲で、不揮発性素子部22への書き込み動作における消費エネルギーを最小化することができる。
【0095】
本実施形態における半導体装置1の状態は、不揮発性素子部22の温度及び半導体装置1の電圧を含む。したがって、本実施形態によれば、不揮発性素子部22の温度及び半導体装置1の電圧に応じて、不揮発性素子部22への書き込み動作における消費エネルギーを低減することができる。
【0096】
本実施形態における不揮発性素子部22は、磁気トンネル接合素子を含む。したがって、本実施形態によれば、磁気トンネル接合素子を備える不揮発性素子部22への書き込み動作における消費エネルギーを低減することができる。
【0097】
本実施形態における半導体装置1は、温度、電圧及び電流流入時間を説明変数とし、書き込み成功率を目的変数とする機械学習モデルを用いて、書き込み成功率を予測する。したがって、本実施形態によれば、不揮発性素子部22の温度、半導体装置1の電圧及び不揮発性素子部22への電流流入時間に基づいて、書き込み成功率を予測することができる。
【0098】
本実施形態における半導体装置1は、書き込み動作の結果に基づいて、機械学習モデルを再学習する。したがって、本実施形態によれば、半導体装置1の動作環境に応じて予測モデルを最適化することができる。
【0099】
本実施形態における機械学習モデルは、多層ニューラルネットワークである。したがって、本実施形態によれば、半導体装置1の状態と書き込み成功率とが非線形な関係にある場合であっても、半導体装置1の状態に基づいて書き込み成功率を予測することができる。
【0100】
[補足]
上記の実施形態では、VR-NVFFを備える半導体装置を対象として、不揮発性素子部への書き込み動作における消費エネルギーを低減する構成を説明した。しかしながら、本開示の一実施形態を適用可能な不揮発性デバイスは、VR-NVFFに限定されない。本開示の一実施形態は、半導体装置の状態に応じて書き込み成功率が変動する不揮発性デバイスを備える半導体装置であれば、どのようなものであっても適用することができる。
【0101】
例えば、本開示の一実施形態は、VR-NVFF以外のNVFFを備える半導体装置に適用することができる。VR-NVFF以外のNVFFとしては、例えば、PSM-NVFF(pseudo-spin-MOSFETs NVFF)等が挙げられる。また、例えば、本開示の一実施形態は、磁気抵抗メモリ(MRAM; Magnetoresistive Random Access Memory)や強誘電体メモリ(FeRAM; Ferroelectric Random Access Memory)等の不揮発性デバイスを備える半導体装置に適用することができる。
【0102】
以上、本発明の実施の形態について詳述したが、本発明はこれらの実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形又は変更が可能である。
【符号の説明】
【0103】
1 半導体装置
2 不揮発性フリップフロップ
3 制御部
21 フリップフロップ部
22 不揮発性素子部
23 検証回路部
31 取得部
32 予測回路部
33 決定部
34 記憶制御部
35 学習回路部
図1
図2
図3
図4
図5