(57)【要約】  入力データ（ｘ０〜ｘｎ）と、結合重み係数（ｗ０〜ｗｎ）との積和演算結果に応じて出力データ（ｙ）を出力するニューラルネットワーク演算回路において、データ線（ＢＬ０、ＳＬ０）との間に不揮発性半導体記憶素子（ＲＰ）とセルトランジスタ（Ｔ０）が直列接続され、データ線（ＢＬ１、ＳＬ１）との間に不揮発性半導体記憶素子（ＲＮ）とセルトランジスタ（Ｔ１）が直列接続され、セルトランジスタ（Ｔ０、Ｔ１）のゲートにワード線（ＷＬ０〜ＷＬｎ）が接続される演算ユニット（ＰＵ０〜ＰＵｎ）を備え、ＲＰ、ＲＮに結合重み係数（ｗ０〜ｗｎ）を格納し、ワード線選択回路（３０）が、ｘ０〜ｘｎに応じてＷＬ０〜ＷＬｎを選択状態あるいは非選択状態とし、判定回路（５０）がＢＬ０、ＢＬ１に流れる電流値を判定することで出力データ（ｙ）を出力する。
2019049741.tif 000002
【特許請求の範囲】
【請求項１】
第１の論理値、あるいは第２の論理値のデータを取り得る複数の入力データと、
複数の入力データに各々対応する複数の結合重み係数と、
複数の入力データと、対応する結合重み係数との積和演算結果に応じて第１の論理値、あるいは第２の論理値の出力データを出力するニューラルネットワーク演算回路であって、
複数のワード線と、
第１のデータ線と、
第２のデータ線と、
第３のデータ線と、
第４のデータ線と、
第１の不揮発性半導体記憶素子と第１のセルトランジスタとの直列接続で構成され、
第１の不揮発性半導体記憶素子の一端が第１のデータ線に、第１のセルトランジスタの一端が第２のデータ線に、第１のセルトランジスタのゲートがワード線に接続され、
第２の不揮発性半導体記憶素子と第２のセルトランジスタとの直列接続で構成され、
第２の不揮発性半導体記憶素子の一端が第３のデータ線に、第２のセルトランジスタの一端が第４のデータ線に、第２のセルトランジスタのゲートがワード線に接続される複数の演算ユニットと、
複数のワード線を選択状態あるいは非選択状態とするワード線選択回路と、
第１のデータ線と第３のデータ線、あるいは第２のデータ線と第４のデータ線に生じる電圧値あるいは電流値の大小関係を判定して第１の論理値、あるいは第２の論理値のデータを出力する判定回路とを備え、
複数の演算ユニットの第１の不揮発性半導体記憶素子と第２の不揮発性半導体記憶素子に複数の結合重み係数を格納し、
ワード線選択回路が、複数の入力データに応じて複数のワード線を選択状態あるいは非選択状態とし、
判定回路が出力データを出力する、
不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
【請求項２】
前記複数の演算ユニットの第１の不揮発性半導体記憶素子と第２の不揮発性半導体記憶素子への前記複数の結合重み係数の格納において、
前記結合重み係数が正の値の場合、前記第１の不揮発性半導体記憶素子に流れる電流値が前記結合重み係数の値に比例した電流値となるように、前記第１の不揮発性半導体記憶素子に書き込みを行い、
前記結合重み係数が負の値の場合、前記第２の不揮発性半導体記憶素子に流れる電流値が前記結合重み係数の値に比例した電流値となるように、前記第２の不揮発性半導体記憶素子に書き込みを行う、
請求項１記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
【請求項３】
前記複数の演算ユニットの第１の不揮発性半導体記憶素子と第２の不揮発性半導体記憶素子への前記複数の結合重み係数の格納において、
前記結合重み係数が正の値の場合、前記第１の不揮発性半導体記憶素子に流れる電流値が前記第２の不揮発性半導体記憶素子に流れる電流値よりも大きくなり、且つその電流差が前記結合重み係数の値に比例した電流値となるように、前記第１の不揮発性半導体記憶素子と第２の不揮発性半導体記憶素子に書き込みを行い、
前記結合重み係数が負の値の場合、前記第２の不揮発性半導体記憶素子に流れる電流値が前記第１の不揮発性半導体記憶素子に流れる電流値よりも大きくなり、且つその電流差が前記結合重み係数の値に比例した電流値となるように、前記第１の不揮発性半導体記憶素子と第２の不揮発性半導体記憶素子に書き込みを行う、
請求項１記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
【請求項４】
前記ワード線選択回路は、
前記入力データが第１の論理値の場合、対応するワード線を非選択状態とし、
前記入力データが第２の論理値の場合、対応するワード線を選択状態とする、
請求項１記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
【請求項５】
前記第１のデータ線あるいは前記第２のデータ線に、結合重み係数が正の値である複数の入力データと、対応する正の値の結合重み係数との積和演算結果に対応した電流値が流れ、
前記第３のデータ線あるいは前記第４のデータ線に、結合重み係数が負の値である複数の入力データと、対応する負の値の結合重み係数との積和演算結果に対応した電流値が流れる、
請求項１記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
【請求項６】
前記判定回路は、
前記第１のデータ線あるいは第２のデータ線に流れる電流値が前記第３のデータ線あるいは第４のデータ線に流れる電流値よりも小さい場合、第１の論理値を出力し、
前記第１のデータ線あるいは第２のデータ線に流れる電流値が前記第３のデータ線あるいは第４のデータ線に流れる電流値よりも大きい場合、第２の論理値を出力する、
請求項１記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
【請求項７】
前記第１の不揮発性半導体記憶素子と前記第２の不揮発性半導体記憶素子は、抵抗変化型素子で形成される抵抗変化型記憶素子である、
請求項１記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
【請求項８】
前記第１の不揮発性半導体記憶素子と前記第２の不揮発性半導体記憶素子は、磁気抵抗変化型素子で形成される磁気抵抗変化型記憶素子である、
請求項１記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
【請求項９】
前記第１の不揮発性半導体記憶素子と前記第２の不揮発性半導体記憶素子は、相変化型素子で形成される相変化型記憶素子である、
請求項１記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
【請求項１０】
前記第１の不揮発性半導体記憶素子と前記第２の不揮発性半導体記憶素子は、強誘電体型素子で形成される強誘電体型記憶素子である、
請求項１記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は低消費電力化と大規模集積化が可能な不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路、及びその動作方法に関する。
【背景技術】
【０００２】
情報通信技術の進展に伴い、あらゆるものがインターネットに繋がるIoT(Internet of Things)技術の到来が注目されている。IoT技術において、様々な電子機器がインターネットに接続されることで、機器の高性能化が期待されているが、更なる高性能化を実現する技術として、電子機器自らが学習と判断を行う人工知能(AI：Artificial Intelligence)技術の研究開発が近年活発に行われている。【０００３】
人工知能技術において、人間の脳型情報処理を工学的に模倣したニューラルネットワーク技術が用いられており、ニューラルネットワーク演算を高速、低消費電力で実行する半導体集積回路の研究開発が盛んに行われている。【０００４】
特許文献１、特許文献２、特許文献３に従来のニューラルネットワーク演算回路が開示されている。ニューラルネットワークは複数の入力が各々異なる結合重み係数を有するシナプスと呼ばれる結合で接続されたニューロンと呼ばれる(パーセプトロンと呼ばれる場合もある)基本素子から構成され、複数のニューロンが互いに接続されることで、画像認識や音声認識といった高度な演算処理を行うことができる。ニューロンでは各入力と各結合重み係数を乗算したものを全て加算した積和演算動作が行われる。積和演算回路は入力や結合重み係数を格納するメモリ回路とレジスタ回路、入力と結合重み係数を乗算する乗算回路、乗算結果を累積加算するアキュムレータ回路、及びこれらの回路ブロックの動作制御を行う制御回路で構成される。これからの回路ブロックは全てデジタル回路で構成される。【０００５】
非特許文献１に、従来のニューラルネットワーク演算回路の別の例が開示されている。ニューラルネットワーク演算回路をアナログ抵抗値(コンダクタンス)が設定可能な抵抗変化型不揮発性メモリを用いて構成するものであり、不揮発性メモリ素子に結合重み係数に相当するアナログ抵抗値(コンダクタンス)を格納し、入力に相当するアナログ電圧値を不揮発性メモリ素子に印加し、このとき不揮発性メモリ素子に流れるアナログ電流値を利用する。ニューロンで行われる積和演算動作は、複数の結合重み係数を複数の不揮発性メモリ素子にアナログ抵抗値(コンダクタンス)として格納し、複数の入力に相当する複数のアナログ電圧値を複数の不揮発性メモリ素子に印加し、複数の不揮発性メモリ素子に流れる電流値を合算したアナログ電流値を積和演算結果として得ることで行われる。不揮発性メモリ素子を用いたニューラルネットワーク演算回路は、前述したデジタル回路で構成されるニューラルネットワーク演算回路と比べて低消費電力化が実現可能であり、アナログ抵抗値(コンダクタンス)が設定可能な抵抗変化型不揮発性メモリのプロセス開発、デバイス開発、及び回路開発が近年盛んに行われている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−１８８７６７号公報
【特許文献２】特開平６−２５９５８５号公報
【特許文献３】特開平２−１６１５５６号公報
【非特許文献】
【０００７】
【非特許文献１】M. Prezioso, et al., “Training and operation of an integrated neuromorphic network based on metal-oxide memristors,” Nature, no. 521, pp. 61-64, 2015.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、前述した従来のニューラルネットワーク演算回路は以下に示す課題があった。【０００９】
すなわち、デジタル回路で構成されるニューラルネットワーク演算回路では、大量の入力データや結合重み係数を格納する大容量のメモリ回路とレジスタ回路、浮動小数点で表現される大量の入力データと結合重み係数との積和演算を行う大規模な乗算回路と累積加算回路(アキュムレータ回路)、及びこれらの回路ブロックの動作制御を行う大規模な制御回路を搭載する必要があり、半導体集積回路のチップ面積増大が課題である。【００１０】
また、高速なニューラルネットワーク演算を行うためには、大規模なデジタル回路を高速に動作させる必要があるため、現在製品化されているニューラルネットワーク演算処理を行う半導体チップの消費電力は数十ワットから数百ワットと非常に大きく、半導体集積回路の消費電力増大も課題である。【００１１】
一方、デジタル回路で構成されるニューラルネットワーク演算回路の消費電力増大を解決するために、近年アナログ抵抗値(コンダクタンス)が設定可能な抵抗変化型不揮発性メモリを用いたニューラルネットワーク演算回路が提案されている。複数の結合重み係数を複数の不揮発性メモリ素子にアナログ抵抗値(コンダクタンス)として格納し、複数の入力データに相当する複数のアナログ電圧値を複数の不揮発性メモリ素子に印加し、複数の不揮発性メモリ素子に流れる電流値を合算したアナログ電流値を積和演算結果として得ることで積和演算動作を行うものであるが、ニューロンの入力及び出力がアナログ電圧値あるいはアナログ電流値で処理されるため、ニューロン間の情報伝達をアナログ値で行う必要があり、大規模なニューラルネットワーク回路の半導体集積回路への実装が困難、すなわち大規模な半導体集積化が困難という課題がある。ニューロン間の情報伝達を容易にするために、アナログ−デジタル変換回路(ADコンバータ回路)を用いてアナログ値をデジタル値に変換して情報伝達を行い、デジタル−アナログ変換回路(DAコンバータ回路)を用いてデジタル値をアナログ値に変換する方法もあるが、大規模なニューラルネットワーク回路を実装する場合、アナログ−デジタル変換回路(ADコンバータ回路)とデジタル−アナログ変換回路(DAコンバータ回路)を大量に搭載する必要があり、半導体集積化の観点から好ましくない。【００１２】
本発明は上記課題を鑑みてなされたものであり、低消費電力化と大規模集積化が可能な不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路を提供することにある。
【課題を解決するための手段】
【００１３】
本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路は、第１の論理値、あるいは第２の論理値のデータを取り得る複数の入力データと、複数の入力データに各々対応する複数の結合重み係数と、複数の入力データと、対応する結合重み係数との積和演算結果に応じて第１の論理値、あるいは第２の論理値の出力データを出力するニューラルネットワーク演算回路であって、複数のワード線と、第１のデータ線と、第２のデータ線と、第３のデータ線と、第４のデータ線と、第１の不揮発性半導体記憶素子と第１のセルトランジスタとの直列接続で構成され、第１の不揮発性半導体記憶素子の一端が第１のデータ線に、第１のセルトランジスタの一端が第２のデータ線に、第１のセルトランジスタのゲートがワード線に接続され、第２の不揮発性半導体記憶素子と第２のセルトランジスタとの直列接続で構成され、第２の不揮発性半導体記憶素子の一端が第３のデータ線に、第２のセルトランジスタの一端が第４のデータ線に、第２のセルトランジスタのゲートがワード線に接続される複数の演算ユニットと、複数のワード線を選択状態あるいは非選択状態とするワード線選択回路と、第１のデータ線と第３のデータ線、あるいは第２のデータ線と第４のデータ線に生じる電圧値あるいは電流値の大小関係を判定して第１の論理値、あるいは第２の論理値のデータを出力する判定回路とを備え、複数の演算ユニットの第１の不揮発性半導体記憶素子と第２の不揮発性半導体記憶素子に複数の結合重み係数を格納し、ワード線選択回路が、複数の入力データに応じて複数のワード線を選択状態あるいは非選択状態とし、判定回路が出力データを出力する。【００１４】
また、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路において、複数の演算ユニットの第１の不揮発性半導体記憶素子と第２の不揮発性半導体記憶素子への複数の結合重み係数の格納において、結合重み係数が正の値の場合、第１の不揮発性半導体記憶素子に流れる電流値が結合重み係数の値に比例した電流値となるように、第１の不揮発性半導体記憶素子に書き込みを行い、結合重み係数が負の値の場合、第２の不揮発性半導体記憶素子に流れる電流値が結合重み係数の値に比例した電流値となるように、第２の不揮発性半導体記憶素子に書き込みを行ってもよい。【００１５】
また、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路において、複数の演算ユニットの第１の不揮発性半導体記憶素子と第２の不揮発性半導体記憶素子への複数の結合重み係数の格納において、結合重み係数が正の値の場合、第１の不揮発性半導体記憶素子に流れる電流値が第２の不揮発性半導体記憶素子に流れる電流値よりも大きくなり、且つその電流差が結合重み係数の値に比例した電流値となるように、第１の不揮発性半導体記憶素子と第２の不揮発性半導体記憶素子に書き込みを行い、結合重み係数が負の値の場合、第２の不揮発性半導体記憶素子に流れる電流値が第１の不揮発性半導体記憶素子に流れる電流値よりも大きくなり、且つその電流差が結合重み係数の値に比例した電流値となるように、第１の不揮発性半導体記憶素子と第２の不揮発性半導体記憶素子に書き込みを行ってもよい。【００１６】
また、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路において、ワード線選択回路は、入力データが第１の論理値の場合、対応するワード線を非選択状態とし、入力データが第２の論理値の場合、対応するワード線を選択状態としてもよい。【００１７】
また、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路において、第１のデータ線あるいは第２のデータ線に、結合重み係数が正の値である複数の入力データと、対応する正の値の結合重み係数との積和演算結果に対応した電流値が流れ、第３のデータ線あるいは第４のデータ線に、結合重み係数が負の値である複数の入力データと、対応する負の値の結合重み係数との積和演算結果に対応した電流値が流れてもよい。【００１８】
また、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路において、判定回路は、第１のデータ線あるいは第２のデータ線に流れる電流値が第３のデータ線あるいは第４のデータ線に流れる電流値よりも小さい場合、第１の論理値を出力し、第１のデータ線あるいは第２のデータ線に流れる電流値が第３のデータ線あるいは第４のデータ線に流れる電流値よりも大きい場合、第２の論理値を出力するとしてもよい。【００１９】
また、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路において、第１の不揮発性半導体記憶素子と第２の不揮発性半導体記憶素子は、抵抗変化型素子で形成される抵抗変化型記憶素子、磁気抵抗変化型素子で形成される磁気抵抗変化型記憶素子、相変化型素子で形成される相変化型記憶素子、強誘電体型素子で形成される強誘電体型記憶素子、いずれかであってもよい。
【発明の効果】
【００２０】
本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路は、ニューロンの入力データと出力データが０データあるいは１データの２値のデジタル値を取り得るニューラルネットワーク回路であり、結合重み係数を第１のデータ線と第２のデータ線との間に直列接続される第１の不揮発性半導体記憶素子と第１のセルトランジスタ、第３のデータ線と第４のデータ線との間に直列接続される第２の不揮発性半導体記憶素子と第２のセルトランジスタとで構成される演算ユニットを備え、第１の不揮発性半導体記憶素子と第２の不揮発性半導体記憶素子に例えば抵抗値(コンダクタンス)として格納する。【００２１】
ここで、結合重み係数が正の値の場合は、第１の不揮発性半導体記憶素子に流れる電流値が結合重み係数の値に比例した電流値となるように、第１の不揮発性半導体記憶素子に書き込みを行い(第２の不揮発性半導体記憶素子に流れる電流値はゼロ)、結合重み係数が負の値の場合は、第２の不揮発性半導体記憶素子に流れる電流値が結合重み係数の値に比例した電流値となるように、第２の不揮発性半導体記憶素子に書き込みを行う(第１の不揮発性半導体記憶素子に流れる電流値はゼロ)。【００２２】
あるいは、結合重み係数が正の値の場合は、第１の不揮発性半導体記憶素子に流れる電流値が第２の不揮発性半導体記憶素子に流れる電流値よりも大きくなり、且つその電流差が結合重み係数の値に比例した電流値となるように、第１の不揮発性半導体記憶素子と第２の不揮発性半導体記憶素子に書き込みを行い、結合重み係数が負の値の場合、第２の不揮発性半導体記憶素子に流れる電流値が第１の不揮発性半導体記憶素子に流れる電流値よりも大きくなり、且つその電流差が結合重み係数の値に比例した電流値となるように、第１の不揮発性半導体記憶素子と第２の不揮発性半導体記憶素子に書き込みを行う。この書き込み方法は不揮発性半導体記憶素子に流れる電流値をゼロに設定できない場合、あるいは、１つの不揮発性半導体記憶素子のみで結合重み係数の値に比例した電流値を設定できない場合に有効である。【００２３】
ワード線選択回路が入力データ(０データあるいは１データ)に応じて、第１のセルトランジスタと第２のセルトランジスタのゲートに接続されるワード線を非選択状態(０データの場合)、あるいは選択状態(１データの場合)とすることで、演算ユニットを非活性化状態、あるいは活性化状態とする。【００２４】
第１の不揮発性半導体記憶素子が接続される第１のデータ線には結合重み係数が正の値である複数の入力データと、対応する正の値の結合重み係数との積和演算結果に対応した電流値が流れ、第２の不揮発性半導体記憶素子が接続される第３のデータ線には結合重み係数が負の値である複数の入力データと、対応する負の値の結合重み係数との積和演算結果に対応した電流値が流れる。【００２５】
判定回路が第１のデータ線に流れる電流値と、第３のデータ線に流れる電流値との大小関係を判定して出力データ(０データあるいは１データ)を出力する。すなわち、入力データと結合重み係数の積和演算結果が負の値の場合に０データが出力され、正の値の場合に１データが出力される。【００２６】
本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路は、上述の動作により、不揮発性半導体記憶素子に流れる電流値を用いてニューラルネットワーク回路の積和演算動作を行う。これにより、従来のデジタル回路で構成される大容量のメモリ回路やレジスタ回路、大規模な乗算回路や累積加算回路(アキュムレータ回路)、及び複雑な制御回路を搭載することなく、積和演算動作を行うことが可能となるため、ニューラルネットワーク演算回路の低消費電力化、及び半導体集積回路のチップ面積縮小化が可能となる。また、ニューロンの入力データと出力データが０データあるいは１データの２値のデジタルデータを取り得るニューラルネットワーク回路であるため、ニューロン間の情報伝達をデジタル伝送することが可能となり、複数のニューロンを用いた大規模なニューラルネットワーク回路の実装が容易となり、半導体集積化が可能となる。【００２７】
すなわち、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路は、低消費電力化と大規模集積化を実現することが可能である。詳細は後述する実施例により開示される。
【図面の簡単な説明】
【００２８】
【図１Ａ】図１Ａは、ニューラルネットワーク演算で用いられるニューロンを示す図である。
【図１Ｂ】図１Ｂは、図１Ａのニューロンの演算処理を行う詳細回路構成を示す図である。
【図２】図２は、ディープニューラルネットワークの構成を示す図である。
【図３】図３は、ニューラルネットワーク演算におけるニューロンの計算を示す図である。
【図４】図４は、ニューラルネットワーク演算におけるニューロンの計算において、バイアス係数ｂの演算を入力ｘ０と結合重み係数ｗ０に割り当てた場合の計算を示す図である。
【図５】図５は、実施形態に係るニューラルネットワーク演算におけるニューロンの活性化関数ｆを示す図である。
【図６】図６は、実施形態に係る不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の全体構成を示す図である。
【図７Ａ】図７Ａは、図６におけるメモリセルアレイを構成する不揮発性半導体記憶素子であるメモリセルＭＣの回路図を示したものである。
【図７Ｂ】図７Ｂは、メモリセルＭＣの断面図を示したものである。
【図７Ｃ】図７Ｃは、メモリセルＭＣの各動作モードにおける印加電圧を示す図である。
【図８Ａ】図８Ａは、実施形態に係るニューラルネットワーク演算回路の動作原理を示す計算を示す図である。
【図８Ｂ】図８Ｂは、実施形態に係る演算ユニットＰＵｉの動作を示す図である。
【図９Ａ】図９Ａは、演算ユニットＰＵｉの動作を示す図である。
【図９Ｂ】図９Ｂは、実施形態に係る演算ユニットＰＵｉの入力ｘｉに対するワード線ＷＬｉの状態を示す図である。
【図９Ｃ】図９Ｃは、実施形態に係る演算ユニットＰＵｉの抵抗変化素子ＲＰ、ＲＮの電流範囲、及び抵抗変化素子に書き込む電流値の計算を示す図である。
【図９Ｄ】図９Ｄは、実施形態に係る演算ユニットＰＵｉの入力ｘｉと結合重み係数ｗｉとの積和演算動作を示す図である。
【図１０Ａ】図１０Ａは、第１の実施形態に係るニューラルネットワーク演算の構成、及び結合重み係数の値を示す図である。
【図１０Ｂ】図１０Ｂは、第１の実施形態に係るニューラルネットワーク演算の結合重み係数の値を示す図である。
【図１１】図１１は、第１の実施形態に係るニューラルネットワーク演算回路の詳細構成を示す図である。
【図１２Ａ】図１２Ａは、第１の実施形態に係る演算ユニットの抵抗変化素子の電流範囲、及び抵抗変化素子に書き込む電流値を示す図である。
【図１２Ｂ】図１２Ｂは、第１の実施形態に係る演算ユニットＰＵ０〜ＰＵ３の抵抗変化素子ＲＰ、ＲＮの電流範囲、及び抵抗変化素子ＲＰ、ＲＮに書き込む電流値（抵抗値）を示す図である。
【図１３Ａ】図１３Ａは、第２の実施形態に係るニューラルネットワーク演算の構成を示す図である。
【図１３Ｂ】図１３Ｂは、第２の実施形態に係るニューラルネットワーク回路の真理値表を示す図である。
【図１３Ｃ】図１３Ｃは、第２の実施形態に係るニューラルネットワーク回路の結合重み係数を示す図である。
【図１３Ｄ】図１３Ｄは、第２の実施形態に係るニューラルネットワーク回路の入力層、隠れ層、出力層の演算動作を示す図である。
【図１４Ａ】図１４Ａは、第２の実施形態に係る演算ユニットの抵抗変化素子の電流範囲、及び抵抗変化素子に書き込む電流値を示す図である。
【図１４Ｂ】図１４Ｂは、第２の実施形態に係るニューラルネットワーク演算回路の演算ユニットの抵抗変化素子の電流範囲、及び抵抗変化素子に書き込む電流値を示す図である。
【発明を実施するための形態】
【００２９】
以下、本発明の実施形態について、図面を参照して説明する。
【００３０】
図１Ａ及び図１Ｂは、実施形態に係る不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の詳細構成を示す図である。図１Ａはニューラルネットワーク演算で用いられるニューロンを示す図であり、図１Ｂは図１Ａのニューロンが行う演算処理を本発明で実施する場合の詳細回路構成を示す図であり、本発明の特徴を示した代表図面である。図１Ａ及び図１Ｂについては後述で詳細に説明する。
【００３１】
＜ニューラルネットワーク演算＞
始めに、ニューラルネットワーク演算の基礎理論について説明する。
【００３２】
図２は、ディープニューラルネットワークの構成を示す図である。ニューラルネットワークは入力データが入力される入力層１、入力層１の入力データを受けて演算処理を行う隠れ層２(中間層と呼ばれる場合もある)、隠れ層２の出力データを受けて演算処理を行う出力層３から構成される。入力層１、隠れ層２、出力層３の各々において、ニューロン１０と呼ばれるニューラルネットワークの基本素子が多数存在し、各々のニューロン１０は結合重み１１を介して接続されている。複数の結合重み１１は各々異なる結合重み係数を有してニューロン間を接続している。ニューロン１０には複数の入力データが入力され、ニューロン１０ではこれら複数の入力データと対応する結合重み係数との積和演算動作が行われ出力データとして出力される。ここで、隠れ層２は複数段(図２では４段)のニューロンが連結された構成であり、深いニューラルネットワークを形成しているという意味で、図２に示すようなニューラルネットワークはディープニューラルネットワークと呼ばれる。
【００３３】
図３はニューラルネットワーク演算におけるニューロンの計算を示す図であり、ニューロン１０が行う計算式を図３の式(１)、式(２)に示す。ニューロン１０はｎ個の入力ｘ１〜ｘｎが各々結合重み係数ｗ１〜ｗｎを有する結合重みで接続されており、入力ｘ１〜ｘｎと結合重み係数ｗ１〜ｗｎとの積和演算が行われる。ニューロン１０はバイアス係数ｂを有しており、入力ｘ１〜ｘｎと結合重み係数ｗ１〜ｗｎとの積和演算結果にバイアス係数ｂが加算される。ニューロン１０は活性化関数ｆを有しており、入力ｘ１〜ｘｎと結合重み係数ｗ１〜ｗｎとの積和演算結果にバイアス係数ｂを加算した結果に対して活性化関数の演算処理を行い出力ｙが出力される。
【００３４】
図４はニューラルネットワーク演算におけるニューロンの計算において、バイアス係数ｂの演算を入力ｘ０と結合重み係数ｗ０に割り当てた場合の計算を示す図であり、ニューロン１０が行う計算式を図４の式(１)、式(２)に示す。前述した図３において、ニューロン１０は入力ｘ１〜ｘｎと結合重み係数ｗ１〜ｗｎとの積和演算と、バイアス係数ｂの加算演算が行われるが、図４に示す通り、バイアス係数ｂの加算演算を入力ｘ０＝１、結合重み係数ｗ０＝ｂとして、ｎ＋１個の入力ｘ０〜ｘｎが各々結合重み係数ｗ０〜ｗｎを有する結合重みで接続されたニューロン１０と解釈することができる。図４の式(１)、式(２)に示す通り、ニューロン１０の計算を入力ｘ０〜ｘｎと結合重み係数ｗ０〜ｗｎとの積和演算のみで簡潔に表現できる。本実施形態では図４に示す通り、バイアス係数ｂの加算演算の表現を入力ｘ０＝１と結合重み係数ｗ０＝ｂとして表現することにする。
【００３５】
図５は実施形態に係るニューラルネットワーク演算におけるニューロンの活性化関数ｆを示す図であり、ｘ軸は活性化関数ｆの入力ｕ、ｙ軸は活性化関数ｆの出力ｆ(ｕ)である。本発明の実施形態では活性化関数ｆはステップ関数を使用する。本実施形態では活性化関数としてステップ関数を使用するが、ニューラルネットワーク演算で使用されるその他の活性化関数としてシグモイド関数などがある。図５に示す通り、ステップ関数は入力ｕが負の値(＜０)の場合は出力ｆ(ｕ)＝０を出力し、入力ｕが正の値(≧０)の場合は出力ｆ(ｕ)＝１を出力する関数である。前述した図４のニューロン１０において、ステップ関数の活性化関数ｆを使用した場合、入力ｘ０〜ｘｎと結合重み係数ｗ０〜ｗｎとの積和演算結果が負の値の場合は出力ｙ＝０が出力され、積和演算結果が正の値の場合は出力ｙ＝１が出力される。
【００３６】
＜不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の全体構成＞
図６は、実施形態に係る不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の全体構成を示す図である。本発明のニューラルネットワーク演算回路は、メモリセルアレイ２０、ワード線選択回路３０、カラムゲート４０、判定回路５０、書き込み回路６０、制御回路７０を備えている。
【００３７】
メモリセルアレイ２０は不揮発性半導体記憶素子がマトリックス状に配置されており、不揮発性半導体記憶素子にはニューラルネットワーク演算で使用される結合重み係数が格納される。メモリセルアレイ２０は複数のワード線ＷＬ０〜ＷＬｎ、複数のビット線ＢＬ０〜ＢＬｍ、複数のソース線ＳＬ０〜ＳＬｍを有している。
【００３８】
ワード線選択回路３０はメモリセルアレイ２０のワード線ＷＬ０〜ＷＬｎを駆動する回路である。ニューラルネットワーク演算のニューロンの入力に対応してワード線を選択状態、あるいは非選択状態とする(後述)。
【００３９】
カラムゲート４０はビット線ＢＬ０〜ＢＬｍ、ソース線ＳＬ０〜ＳＬｍに接続され、複数のビット線、複数のソース線から所定のビット線、ソース線を選択して、後述する判定回路５０、書き込み回路６０に接続する回路である。
【００４０】
判定回路５０はカラムゲート４０を介してビット線ＢＬ０〜ＢＬｍ、ソース線ＳＬ０〜ＳＬｍが接続され、ビット線あるいはソース線に流れる電流値を検知して出力データを出力する回路である。メモリセルアレイ２０のメモリセルに格納されたデータの読み出し、及びニューラルネットワーク演算のニューロンの出力データを出力する(後述)。
【００４１】
書き込み回路６０はカラムゲート４０を介してビット線ＢＬ０〜ＢＬｍ、ソース線ＳＬ０〜ＳＬｍが接続され、メモリセルアレイ２０の不揮発性半導体記憶素子に書き換え電圧を印加する回路である。
【００４２】
制御回路７０はメモリセルアレイ２０、ワード線選択回路３０、カラムゲート４０、判定回路５０、書き込み回路６０の動作を制御する回路であり、メモリセルアレイ２０のメモリセルに対する読み出し動作、書き込み動作、及びニューラルネットワーク演算動作の制御を行う。
【００４３】
＜不揮発性半導体記憶素子の構成＞
図７Ａ〜図７Ｃは、実施形態に係る不揮発性半導体記憶素子の回路図、断面図、及び各動作における印加電圧を示す図である。
【００４４】
図７Ａは、図６におけるメモリセルアレイ２０を構成する不揮発性半導体記憶素子であるメモリセルＭＣの回路図を示したものである。メモリセルＭＣは抵抗変化素子ＲＰとセルトランジスタＴ０の直列接続されたもので構成され、１つのセルトランジスタＴ０と１つの抵抗変化素子ＲＰから構成される『１Ｔ１Ｒ』型のメモリセルである。抵抗変化素子ＲＰは抵抗変化型メモリReRAM(Resistive Random Access Memory)と呼ばれる不揮発性半導体記憶素子である。メモリセルＭＣのワード線ＷＬはセルトランジスタＴ０のゲート端子に接続され、ビット線ＢＬは抵抗変化素子ＲＰに接続され、ソース線ＳＬはセルトランジスタＴ０のソース端子に接続される。
【００４５】
図７Ｂは、メモリセルＭＣの断面図を示したものである。半導体基板８０上に拡散領域８１ａ、８１ｂが形成されており、拡散領域８１ａがセルトランジスタＴ０のソース端子として、拡散領域８１ｂがセルトランジスタのドレイン端子として作用する。拡散領域８１ａ、８１ｂ間がセルトランジスタＴ０のチャネル領域として作用し、このチャネル領域上に酸化膜８２、ポリシリコンで形成されるゲート電極８３が形成され、セルトランジスタＴ０として動作する。セルトランジスタＴ０のソース端子である拡散領域８１ａはビア８４ａを介して第１配線層８５ａであるソース線ＳＬに接続される。セルトランジスタＴ０のドレイン端子である拡散領域８１ｂはビア８４ｂを介して第１配線層８５ｂに接続される。さらに、第１配線層８５ｂはビア８６を介して第２配線層８７に接続され、第２配線層８７はビア８８を介して抵抗変化素子ＲＰに接続される。抵抗変化素子ＲＰは下部電極８９、抵抗変化層９０、上部電極９１から構成される。抵抗変化素子ＲＰはビア９２を介して第３配線層９３であるビット線ＢＬに接続される。
【００４６】
図７Ｃは、メモリセルＭＣの各動作モードにおける印加電圧を示す図である。
【００４７】
リセット動作(高抵抗化)はワード線ＷＬにVg_reset(例えば2V)の電圧を印加することでセルトランジスタＴ０を選択状態とし、ビット線ＢＬにVreset(例えば2.0V)の電圧を印加し、ソース線ＳＬに接地電圧VSS(0V)を印加する。これにより、抵抗変化素子ＲＰの上部電極に正の電圧が印加され高抵抗状態に抵抗変化する。セット動作(低抵抗化)はワード線ＷＬにVg_set(例えば2.0V)の電圧を印加することでセルトランジスタＴ０を選択状態とし、ビット線ＢＬに接地電圧VSS(0V)を印加し、ソース線ＳＬにVset(例えば2.0V)の電圧を印加する。これにより、抵抗変化素子ＲＰの下部電極に正の電圧が印加され低抵抗状態に抵抗変化する。
【００４８】
読み出し動作はワード線ＷＬにVg_read(例えば1.1V)の電圧を印加することでセルトランジスタＴ０を選択状態とし、ビット線ＢＬにVread(例えば0.4V)の電圧を印加し、ソース線ＳＬに接地電圧VSS(0V)を印加する。これにより、抵抗変化素子ＲＰが高抵抗状態(リセット状態)の場合は小さなメモリセル電流が流れ、また、抵抗変化素子ＲＰが低抵抗状態(セット状態)の場合は大きなメモリセル電流が流れ、この電流値の差異を判定回路で判定することでメモリセルに格納されたデータの読み出し動作を行う。
【００４９】
メモリセルＭＣを０データあるいは１データを格納する半導体メモリとして用いる場合は抵抗変化素子ＲＰの抵抗値は高抵抗状態(０データ)と低抵抗状態(１データ)の２つの抵抗状態(デジタル)のみを取り得るが、本発明のニューラルネットワーク演算回路として用いる場合は抵抗変化素子ＲＰの抵抗値を多階調(アナログ)の値に設定して使用する。
【００５０】
＜不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の詳細構成＞
図１Ａ及び図１Ｂは、実施形態に係る不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の詳細構成を示す図である。
【００５１】
図１Ａはニューラルネットワーク演算で用いられるニューロンを示す図であり、図４と同一である。ニューロン１０はｎ＋１個の入力ｘ０〜ｘｎが各々結合重み係数ｗ０〜ｗｎを有して入力されており、入力ｘ０〜ｘｎは０データあるいは１データのいずれかの値を、結合重み係数ｗ０〜ｗｎは多階調(アナログ)の値を取り得る。入力ｘ０〜ｘｎと結合重み係数ｗ０〜ｗｎとの積和演算結果に対して、図５に示したステップ関数である活性化関数ｆの演算が行われて出力ｙが出力される。
【００５２】
図１Ｂは、図１Ａのニューロン１０の演算処理を行う詳細回路構成を示す図である。メモリセルアレイは、複数のワード線ＷＬ０〜ＷＬｎ、複数のビット線ＢＬ０、ＢＬ１、複数のソース線ＳＬ０、ＳＬ１を有している。
【００５３】
ニューロン１０の入力ｘ０〜ｘｎとしてワード線ＷＬ０〜ＷＬｎが対応しており、入力ｘ０がワード線ＷＬ０に、入力ｘ１がワード線ＷＬ１に、入力ｘｎ−１がワード線ＷＬｎ−１に、入力ｘｎがワード線ＷＬｎに対応している。ワード線選択回路３０は入力ｘ０〜ｘｎに応じてワード線ＷＬ０〜ＷＬｎを選択状態あるいは非選択状態とする回路である。入力が０データの場合はワード線を非選択状態とし、入力が１データの場合はワード線を選択状態とする。ニューラルネットワーク演算では入力ｘ０〜ｘｎは各々０データあるいは１データの値を任意に取り得るため、入力ｘ０〜ｘｎの中に１データが複数個ある場合、ワード線選択回路３０は複数のワード線を同時に多重選択することになる。
【００５４】
ニューロン１０の結合重み係数ｗ０〜ｗｎとしてメモリセルから構成される演算ユニットＰＵ０〜ＰＵｎが対応しており、結合重み係数ｗ０が演算ユニットＰＵ０に、結合重み係数ｗ１が演算ユニットＰＵ１に、結合重み係数ｗｎ−１が演算ユニットＰＵｎ−１に、結合重み係数ｗｎが演算ユニットＰＵｎに対応している。
【００５５】
演算ユニットＰＵ０は抵抗変化素子ＲＰとセルトランジスタＴ０から構成されるメモリセルと、抵抗変化素子ＲＮとセルトランジスタＴ１から構成されるメモリセルとから構成される。すわなち、１つの演算ユニットは２つのメモリセルから構成される。演算ユニットＰＵ０はワード線ＷＬ０、ビット線ＢＬ０、ＢＬ１、ソース線ＳＬ０、ＳＬ１に接続されており、ワード線ＷＬ０はセルトランジスタＴ０、Ｔ１のゲート端子に、ビット線ＢＬ０は抵抗変化素子ＲＰに、ソース線ＳＬ０はセルトランジスタＴ０のソース端子に、ビット線ＢＬ１は抵抗変化素子ＲＮに、ソース線ＳＬ１はセルトランジスタＴ１のソース端子に接続されている。入力ｘ０は演算ユニットＰＵ０のワード線ＷＬ０として入力され、結合重み係数ｗ０は演算ユニットＰＵ０の２つの抵抗変化素子ＲＰ、ＲＮに抵抗値(コンダクタンス)として格納される。演算ユニットＰＵ１、ＰＵｎ−１、ＰＵｎの構成も演算ユニットＰＵ０の構成と同様であるため詳細な説明は割愛する。すなわち、入力ｘ０〜ｘｎは各々演算ユニットＰＵ０〜ＰＵｎに接続されるワード線ＷＬ０〜ＷＬｎとして入力され、結合重み係数ｗ０〜ｗｎは各々演算ユニットＰＵ０〜ＰＵｎの抵抗変化素子ＲＰ、ＲＮに抵抗値(コンダクタンス)として格納される。
【００５６】
ビット線ＢＬ０はカラムゲートトランジスタＹＴ０を介して判定回路５０に接続され、ビット線ＢＬ１はカラムゲートトランジスタＹＴ１を介して判定回路５０に接続される。カラムゲートトランジスタＹＴ０、ＹＴ１のゲート端子はカラムゲート制御信号ＹＧに接続されており、カラムゲート制御信号ＹＧが活性化されるとビット線ＢＬ０、ＢＬ１は判定回路５０に接続される。ソース線ＳＬ０はディスチャージトランジスタＤＴ０を介して接地電圧に接続され、ソース線ＳＬ１はディスチャージトランジスタＤＴ１を介して接地電圧に接続される。ディスチャージトランジスタＤＴ０、ＤＴ１のゲート端子はディスチャージ制御信号ＤＩＳに接続されており、ディスチャージ制御信号ＤＩＳが活性化されるとソース線ＳＬ０、ＳＬ１は接地電圧に設定される。ニューラルネットワーク演算動作を行う場合はカラムゲート制御信号ＹＧ、ディスチャージ制御信号ＤＩＳを活性化することで、ビット線ＢＬ０、ＢＬ１を判定回路５０に、ソース線ＳＬ０、ＳＬ１を接地電圧に接続する。
【００５７】
判定回路５０はカラムゲートトランジスタＹＴ０、ＹＴ１を介して接続されるビット線ＢＬ０、ＢＬ１に流れる電流値を検知、比較して出力ｙを出力する回路である。出力ｙは０データあるいは１データのいずれかの値を取り得る。ビット線ＢＬ０に流れる電流値がビット線ＢＬ１に流れる電流値より小さい場合は０データの出力ｙを出力し、ビット線ＢＬ０に流れる電流値がビット線ＢＬ１に流れる電流値より大きい場合は１データの出力ｙを出力する。すなわち、判定回路５０はビット線ＢＬ０、ＢＬ１に流れる電流値の大小関係を判定して出力ｙを出力する回路である。
【００５８】
以上のように構成された不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の動作原理と動作方法、及び結合重み係数を抵抗変化素子へ格納する方法について、以降詳細に説明する。
【００５９】
＜不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の動作原理＞
図８Ａ及び図８Ｂは、実施形態に係るニューラルネットワーク演算回路の動作原理を示す計算、及び演算ユニットの動作を示す図である。
【００６０】
図８Ａは、実施形態に係るニューラルネットワーク演算回路の動作原理を示す計算を示す図である。図８Ａの式(１)に示す通り、ニューロン１０が行う演算は入力ｘｉと結合重み係数ｗｉの積和演算結果に対してステップ関数である活性化関数ｆの演算処理を行ったものである。本発明では図８Ａの式(２)に示す通り、結合重み係数ｗｉを抵抗変化素子(メモリセル)に流れる電流値Ｉｉに置き換えて、入力ｘｉと抵抗変化素子(メモリセル)に流れる電流値Ｉｉとの積和演算を行うことが特徴である。
【００６１】
ここで、ニューラルネットワーク演算における結合重み係数ｗｉは正の値(≧０)、負の値(＜０)の双方を取り、積和演算動作において入力ｘｉと結合重み係数ｗｉの積が正の値の場合は加算、負の値の場合は減算が行われる。しかしながら、抵抗変化素子(メモリセル)に流れる電流値Ｉｉは正の値しか取り得ることができないため、入力ｘｉと結合重み係数ｗｉの積が正の値の場合の加算演算は電流値Ｉｉの加算で実現可能であるが、入力ｘｉと結合重み係数ｗｉの積が負の値の場合の減算演算を正の値の電流値Ｉｉを用いて行うには工夫が必要である。
【００６２】
図８Ｂは、実施形態に係る演算ユニットＰＵｉの動作を示す図である。演算ユニットＰＵｉの構成は図１Ａ及び図１Ｂで説明したものであり、詳細な説明は割愛する。本発明は結合重み係数ｗｉを２個の抵抗変化素子ＲＰ、ＲＮに格納することが特徴であり、抵抗変化素子ＲＰに設定する抵抗値をＲｐｉ、抵抗変化素子ＲＮに設定する抵抗値をＲｎｉとし、ビット線ＢＬ０、ＢＬ１に印加する電圧をＶｂｌとし、抵抗変化素子ＲＰ、ＲＮに流れる電流値をＩｐｉ、Ｉｎｉとする。本発明では正の積和演算結果をビット線ＢＬ０に流れる電流に加算し、負の積和演算結果をビット線ＢＬ１に流れる電流に加算することが特徴であり、上記のように電流が流れるよう抵抗変化素子ＲＰ、ＲＮの抵抗値Ｒｐｉ、Ｒｎｉ(電流値Ｉｐｉ、Ｉｎｉ)を設定する。この演算ユニットＰＵｉを図１Ｂに示すように入力ｘ０〜ｘｎ(結合重み係数ｗ０〜ｗｎ)の個数だけビット線ＢＬ０、ＢＬ１に並列接続することで、ニューロン１０の正の積和演算結果をビット線ＢＬ０に流れる電流値として、負の積和演算結果をビット線ＢＬ１に流れる電流値として得ることができる。図８Ａの式(３)、式(４)、式(５)に上述した動作の計算を示す。すなわち、演算ユニットＰＵｉの抵抗変化素子ＲＰ、ＲＮに対して結合重み係数ｗｉに相当する抵抗値Ｒｐｉ、Ｒｎｉを適切に書き込むことで、ビット線ＢＬ０、ＢＬ１に各々正の積和演算結果、負の積和演算結果に対応した電流値を得ることが可能となる。
【００６３】
図８Ａの式(５)において、活性化関数ｆはステップ関数(入力が負の値(＜０)の場合は０データ出力、正の値の場合(≧０)は１データ出力)であるため、正の積和演算結果であるビット線ＢＬ０に流れる電流値が負の積和演算結果であるビット線ＢＬ１に流れる電流値より小さい場合、すなわち全ての積和演算結果が負の値の場合は０データを出力し、正の積和演算結果であるビット線ＢＬ０に流れる電流値が負の積和演算結果であるビット線ＢＬ１に流れる電流値より大きい場合、すなわち全ての積和演算結果が正の値の場合は１データを出力するようにビット線ＢＬ０、ＢＬ１に流れる電流値を検出、判定することで、ニューロン１０のニューラルネットワーク演算が抵抗変化素子ＲＰ、ＲＮを有する演算ユニットＰＵｉを用いて可能となる。
【００６４】
図９Ａ〜図９Ｄは、実施形態に係る演算ユニットの詳細動作を示す図である。図９Ａは演算ユニットＰＵｉの動作を示す図であり、図８Ｂと同一であるため詳細な説明は割愛する。以下、演算ユニットＰＵｉにおける、入力ｘｉと結合重み係数ｗｉとの積和演算動作について説明する。
【００６５】
図９Ｂは、実施形態に係る演算ユニットＰＵｉの入力ｘｉに対するワード線ＷＬｉの状態を示す図である。入力ｘｉは０データあるいは１データのいずれかの値を取り、入力ｘｉが０データの場合、ワード線ＷＬｉは非選択状態とされ、入力ｘｉが１データの場合、ワード線ＷＬｉは選択状態とされる。ワード線ＷＬｉはセルトランジスタＴ０、Ｔ１のゲート端子に接続されており、ワード線ＷＬｉが非選択状態の場合、セルトランジスタＴ０、Ｔ１は非活性化状態(遮断状態)となり、抵抗変化素子ＲＰ、ＲＮの抵抗値Ｒｐｉ、Ｒｎｉに係わらずビット線ＢＬ０、ＢＬ１に電流が流れない。一方、ワード線ＷＬｉが選択状態の場合、セルトランジスタＴ０、Ｔ１は活性化状態(接続状態)となり、抵抗変化素子ＲＰ、ＲＮの抵抗値Ｒｐｉ、Ｒｎｉに基づいてビット線ＢＬ０、ＢＬ１に電流が流れる。
【００６６】
図９Ｃは、実施形態に係る演算ユニットＰＵｉの抵抗変化素子ＲＰ、ＲＮの電流範囲、及び抵抗変化素子に書き込む電流値の計算を示す図である。抵抗変化素子ＲＰ、ＲＮが流す電流値の取り得る範囲を最小値Ｉｍｉｎから最大値Ｉｍａｘとして説明する。ニューロンに入力される結合重み係数の絶対値|ｗｉ|が０〜１の範囲となるよう正規化を行い、正規化後の結合重み係数|ｗｉ|に比例した電流値(アナログ値)となるように抵抗変化素子に書き込む電流値を決定する。
【００６７】
結合重み係数ｗｉが正の値(≧０)の場合、入力ｘｉ(０データあるいは１データ)と結合重み係数ｗｉ(≧０)との積和演算結果(≧０)を正の積和演算結果の電流が流れるビット線ＢＬ０に電流値として加算するために、ビット線ＢＬ０に接続される抵抗変化素子ＲＰに対して、結合重み係数の絶対値|ｗｉ|に比例した電流値Ｉｍｉｎ＋(Ｉｍａｘ−Ｉｍｉｎ)×|ｗｉ|が流れる抵抗値Ｒｐｉの書き込みを行い、ビット線ＢＬ１に接続される抵抗変化素子ＲＮに対して、電流値Ｉｍｉｎ(結合重み係数０相当)となる抵抗値Ｒｎｉの書き込みを行う。
【００６８】
一方、結合重み係数ｗｉが負の値(＜０)の場合、入力ｘｉ(０データあるいは１データ)と結合重み係数ｗｉ(＜０)との積和演算結果(＜０)を負の積和演算結果の電流が流れるビット線ＢＬ１に電流値として加算するために、ビット線ＢＬ１に接続される抵抗変化素子ＲＮに対して、結合重み係数の絶対値|ｗｉ|に比例した電流値Ｉｍｉｎ＋(Ｉｍａｘ−Ｉｍｉｎ)×|ｗｉ|が流れる抵抗値Ｒｎｉの書き込みを行い、ビット線ＢＬ０に接続される抵抗変化素子ＲＰに対して、電流値Ｉｍｉｎ(結合重み係数０相当)となる抵抗値Ｒｐｉの書き込みを行う。
【００６９】
上述のように抵抗変化素子ＲＰ、ＲＮに書き込む抵抗値(電流値)を設定することで、ビット線ＢＬ０に流れる電流(正の積和演算結果に相当)と、ビット線ＢＬ１に流れる電流(負の積和演算結果に相当)との差分電流(Ｉｍａｘ−Ｉｍｉｎ)×|ｗｉ|が入力と結合重み係数との積和演算結果に相当する電流値として得られる。結合重み係数の絶対値|ｗｉ|を０〜１の範囲となるよう正規化する方法の詳細は後述する。
【００７０】
図９Ｄは、実施形態に係る演算ユニットＰＵｉの入力ｘｉと結合重み係数ｗｉとの積和演算動作を示す図である。
【００７１】
入力ｘｉが０データの場合、結合重み係数ｗｉの値に関係なく、積和演算結果ｘｉ×ｗｉは０となる。入力ｘｉが０データであるため、ワード線ＷＬｉは非選択状態となり、セルトランジスタＴ０、Ｔ１は非活性化状態(遮断状態)となるため、ビット線ＢＬ０、ＢＬ１に流れる電流値Ｉｐｉ、Ｉｎｉは０となる。すなわち、積和演算結果ｘｉ×ｗｉが０であるため、正の積和演算結果に相当する電流が流れるビット線ＢＬ０、負の積和演算結果に相当する電流が流れるビット線ＢＬ１の双方に電流が流れない。
【００７２】
入力ｘｉが１データ、結合重み係数ｗｉが正の値(≧０)の場合、積和演算結果ｘｉ×ｗｉは正の値(≧０)となる。入力ｘｉが１データであるため、ワード線ＷＬｉは選択状態となり、セルトランジスタＴ０、Ｔ１は活性化状態(接続状態)となるため、抵抗変化素子ＲＰ、ＲＮの抵抗値に基づいて、ビット線ＢＬ０、ＢＬ１に図９Ｃで説明した電流Ｉｐｉ、Ｉｎｉが流れる。ビット線ＢＬ０に流れる正の積和演算結果に相当する電流Ｉｐｉと、ビット線ＢＬ１に流れる負の積和演算結果に相当する電流Ｉｎｉとの差分電流(Ｉｍａｘ−Ｉｍｉｎ)×|ｗｉ|が入力ｘｉと結合重み係数ｗｉとの積和演算結果ｘｉ×ｗｉ(≧０)に相当する電流として、ビット線ＢＬ０にビット線ＢＬ１と比べて多く流れる。
【００７３】
入力ｘｉが１データ、結合重み係数ｗｉが負の値(＜０)の場合、積和演算結果ｘｉ×ｗｉは負の値(＜０)となる。入力ｘｉが１データであるため、ワード線ＷＬｉは選択状態となり、セルトランジスタＴ０、Ｔ１は活性化状態(接続状態)となるため、抵抗変化素子ＲＰ、ＲＮの抵抗値に基づいて、ビット線ＢＬ０、ＢＬ１に図９Ｃで説明した電流Ｉｐｉ、Ｉｎｉが流れる。ビット線ＢＬ０に正の積和演算結果に相当する電流Ｉｐｉと、ビット線ＢＬ１に負の積和演算結果に相当する電流Ｉｎｉとの差分電流(Ｉｍａｘ−Ｉｍｉｎ)×|ｗｉ|が入力ｘｉと結合重み係数ｗｉとの積和演算結果ｘｉ×ｗｉ(≦０)に相当する電流として、ビット線ＢＬ１にビット線０と比べて多く流れる。
【００７４】
このように、入力ｘｉと結合重み係数ｗｉとの積和演算結果に相当する電流がビット線ＢＬ０、ＢＬ１に流れ、正の積和演算結果の場合はビット線ＢＬ０にビット線ＢＬ１と比べて多く流れ、負の積和演算結果の場合はビット線ＢＬ１にビット線ＢＬ０と比べて多く流れる。演算ユニットＰＵｉを入力ｘ０〜ｘｎ(結合重み係数ｗ０〜ｗｎ)の個数だけビット線ＢＬ０、ＢＬ１に並列接続することで、ニューロン１０の積和演算結果をビット線ＢＬ０に流れる電流と、ビット線ＢＬ１に流れる電流の差分電流として得ることができる。
【００７５】
ここで、ビット線ＢＬ０、ＢＬ１に接続される判定回路を用いて、ビット線ＢＬ０に流れる電流値がビット線ＢＬ１に流れる電流値より小さい場合、すなわち積和演算結果が負の値の場合に０データの出力データを出力し、ビット線ＢＬ０に流れる電流値がビット線ＢＬ１に流れる電流値より大きい場合、すなわち積和演算結果が正の値の場合に１データの出力データを出力するようにすると、判定回路がステップ関数の活性化関数の演算を行うことに相当し、積和演算と活性化関数の演算処理を行うニューラルネットワーク演算が可能となる。
【００７６】
＜不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の第１の実施形態＞
前述にて本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の動作原理について説明した。以下では具体的な実施形態について説明する。
【００７７】
図１０Ａは、第１の実施形態に係るニューラルネットワーク演算の構成を示す図であり、図１０Ｂは、第１の実施形態に係るニューラルネットワーク演算の結合重み係数の値を示す図である。図１０Ａに示す通り、ニューロン１０は４つの入力ｘ０〜ｘ３と対応する結合重み係数ｗ０〜ｗ３を有しており、ニューロン１０が行う演算を図１０Ａの式(１)に示す。ニューロン１０の活性化関数ｆはステップ関数である。
【００７８】
図１０Ｂに示す通り、ニューロン１０が有する結合重み係数はｗ０＝＋０．６、ｗ１＝−０．９、ｗ２＝−１．２、ｗ３＝＋１．５である。以下、図１０Ａ及び図１０Ｂに示すニューロン１０の演算動作を行う不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路について説明する。
【００７９】
図１１は、第１の実施形態に係るニューラルネットワーク演算回路の詳細構成を示す図である。図１１において、図１Ｂの構成要件と同一のものは同一の符号、番号を付与しており、その詳細な説明は割愛する。第１の実施形態のニューラルネットワーク演算回路は４入力、１出力のニューロンであり、結合重み係数ｗ０〜ｗ３を格納する４つの演算ユニットＰＵ０〜ＰＵ３、及び入力ｘ０〜ｘ３に対応する４本のワード線ＷＬ０〜ＷＬ３、抵抗変化素子ＲＰとセルトランジスタＴ０が接続されるビット線ＢＬ０、ソース線ＳＬ０、抵抗変化素子ＲＮとセルトランジスタＴ１が接続されるビット線ＢＬ１、ソース線ＳＬ１を備えている。
【００８０】
ニューラルネットワーク演算動作を行う場合、入力ｘ０〜ｘ３に応じてワード線ＷＬ０〜ＷＬ３を各々選択状態、非選択状態とし、演算ユニットＰＵ０〜ＰＵ３のセルトランジスタＴ０、Ｔ１を選択状態、非選択状態とする。ビット線ＢＬ０、ＢＬ１はカラムゲートＹＴ０、ＹＴ１を介して判定回路５０からビット線電圧が供給され、ソース線ＳＬ０、ＳＬ１はディスチャージトランジスタＤＴ０、ＤＴ１を介して接地電圧に接続される。これにより、ビット線ＢＬ０に正の積和演算結果に相当する電流が流れ、ビット線ＢＬ１に負の積和演算結果に相当する電流が流れる。判定回路５０はビット線ＢＬ０、ＢＬ１に流れる電流の大小関係を検知、判定することで出力ｙを出力する。すなわち、ニューロン１０の積和演算結果が負の値(＜０)の場合は０データを出力し、正の値(≧０)の場合は１データを出力する。判定回路５０は積和演算結果を入力とした活性化関数ｆ(ステップ関数)の演算結果を出力する。
【００８１】
図１２Ａ及び図１２Ｂは、第１の実施形態に係る演算ユニットＰＵ０〜ＰＵ３の抵抗変化素子ＲＰ、ＲＮの電流範囲、及び抵抗変化素子ＲＰ、ＲＮに書き込む電流値(抵抗値)を示す図である。図１２Ａに示す通り、第１の実施形態では抵抗変化素子ＲＰ、ＲＮが流す電流値の取り得る範囲は０ｕＡから５０ｕＡとする。すなわち、電流値の最小値Ｉｍｉｎは０ｕＡ、電流値の最大値Ｉｍａｘは５０ｕＡであり、５０ｕＡの電流範囲(ダイナミックレンジ)を使用する。
【００８２】
図１２Ｂに示す通り、始めに結合重み係数ｗ０〜ｗ３を０〜１の範囲となるよう正規化を行う。本実施形態では、結合重み係数ｗ０〜ｗ３の絶対値が最大のものはｗ３＝＋１．５であり、この結合重み係数の正規化後の値をｗ３＝＋１．０とする。この正規化により残りの結合重み係数の正規化後の値はｗ０＝＋０．４、ｗ１＝−０．６、ｗ２＝−０．８となる。
【００８３】
次に、図１２Ａに示す通り、正規化された結合重み係数を用いて演算ユニットＰＵ０〜ＰＵ３の抵抗変化素子ＲＰ、ＲＮに書き込む電流値を決定する。図１２Ｂに抵抗変化素子ＲＰ、ＲＮに書き込む電流値の計算結果を示す。結合重み係数ｗ０の正規化後の値は＋０．４と正の値のため、抵抗変化素子ＲＰに書き込む電流値は２０ｕＡ、抵抗変化素子ＲＮに書き込む電流値は０ｕＡとなる。結合重み係数ｗ１の正規化後の値は−０．６と負の値のため、抵抗変化素子ＲＰに書き込む電流値は０ｕＡ、抵抗変化素子ＲＮに書き込む電流値は３０ｕＡとなる。結合重み係数ｗ２の正規化後の値は−０．８と負の値のため、抵抗変化素子ＲＰに書き込む電流値は０ｕＡ、抵抗変化素子ＲＮに書き込む電流値は４０ｕＡとなる。結合重み係数ｗ３の正規化後の値は＋１．０と正の値のため、抵抗変化素子ＲＰに書き込む電流値は５０ｕＡ、抵抗変化素子ＲＮに書き込む電流値は０ｕＡとなる。このように演算ユニットＰＵ０〜ＰＵ３の抵抗変化素子ＲＰ、ＲＮに電流値(抵抗値)を書き込むことで、ニューラルネットワーク演算を行うことが可能となる。
【００８４】
＜不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の第２の実施形態＞
図１３Ａ〜図１３Ｄは、第２の実施形態に係るニューラルネットワーク回路の構成、真理値表、結合重み係数の値、及び入力層、隠れ層、出力層の演算動作を示す図である。
【００８５】
図１３Ａは、第２の実施形態に係るニューラルネットワーク回路の構成を示す図である。第２の実施形態のニューラルネットワーク回路は入力層１、隠れ層２、出力層３を有した多層ニューラルネットワーク回路である。
【００８６】
入力層１は３つの入力ｘ０〜ｘ２を有しており、入力ｘ０は常時１データの入力であり、前述の図４で示した通り、入力ｘ０とその結合重み係数で隠れ層２のバイアス係数の演算を行うものである。２つの入力ｘ１、ｘ２が外部から入力データとして入力される。
【００８７】
隠れ層２は１つの入力ｙ０と３つのニューロンｙ１〜ｙ３を有しており、入力ｙ０は常時１データの入力であり、前述の図４で示した通り、入力ｙ０とその結合重み係数で出力層３のバイアス係数の演算を行うものである。３つのニューロンｙ１〜ｙ３は各々入力層１から３つの入力ｘ０〜ｘ２とその結合重み係数を受けて出力ｙ１〜ｙ３を出力する。
【００８８】
出力層３は１つのニューロンｚ１を有しており、隠れ層２から４つの入力ｙ０〜ｙ３とその結合重み係数を受けて出力ｚ１を出力する。
【００８９】
ニューロンｙ１〜ｙ３、ｚ１のニューラルネットワーク演算の計算を図１３Ａの式(１)と式(２)に示す。ここで、結合重み係数ｗｉｋ＿ｙは隠れ層２のニューロンｙ１〜ｙ３の計算で使用される結合重み係数、結合重み係数ｗｉｋ＿ｚは出力層３の計算で使用される結合重み係数であり、活性化関数ｆはステップ関数である。
【００９０】
図１３Ｂは、第２の実施形態に係るニューラルネットワーク回路の真理値表を示す図である。２つの入力のｘ１、ｘ２、出力ｚ１は０データあるいは１データの値を取り、出力ｚ１は入力ｘ１、ｘ２が共に１データの場合のみ１データを出力し、その他の場合は０データを出力する。すなわち、第２の実施形態に係るニューラルネットワーク回路は出力ｚ１が入力ｘ１、ｘ２のＡＮＤ論理を出力する回路である。
【００９１】
図１３Ｃは、の第２の実施形態に係るニューラルネットワーク回路の結合重み係数を示す図である。隠れ層２のニューロンｙ１〜ｙ３は各々３つの入力ｘ０〜ｘ２に対応した３つの結合重み係数を有している。また、出力層３のニューロンｚ１は４つの入力ｙ０〜ｙ３に対応した４つの結合重み係数を有している。
【００９２】
図１３Ｄは、第２の実施形態に係るニューラルネットワーク回路の入力層、隠れ層、出力層の演算動作を示す図である。入力層１の入力の組み合わせは４通りである。隠れ層２における入力層１からの入力ｘ０〜ｘ２を受けたニューロンｙ１〜ｙ３の積和演算結果と積和演算結果を入力とした活性化関数(ステップ関数)の出力結果、及び出力層３における隠れ層２からの入力ｙ０〜ｙ３を受けたニューロンｚ１の積和演算結果と積和演算結果を入力とした活性化関数(ステップ関数)の出力結果は図１３Ｄの通りであり、図１３Ｂの真理値表に示す通り、出力ｚ１は入力ｘ１、ｘ２のＡＮＤ論理が出力される。
【００９３】
図１４Ａ及び図１４Ｂは、第２の実施形態に係るニューラルネットワーク演算回路の演算ユニットの抵抗変化素子の電流範囲、及び抵抗変化素子に書き込む電流値を示す図である。図１４Ａに示す通り、第１の実施形態と同様、第２の実施形態では抵抗変化素子ＲＰ、ＲＮが流す電流値の取り得る範囲は０ｕＡから５０ｕＡとする。すなわち、電流値の最小値Ｉｍｉｎは０ｕＡ、電流値の最大値Ｉｍａｘは５０ｕＡであり、５０ｕＡの電流範囲(ダイナミックレンジ)を使用する。
【００９４】
図１４Ｂは、隠れ層２のニューロンｙ１〜ｙ３、出力層３のニューロンｚ１のニューラルネットワーク演算に使用する結合重み係数を演算ユニットの抵抗変化素子ＲＰ、ＲＮに書き込む電流値を示す図である。始めに結合重み係数を０〜１の範囲に正規化された結合重み係数を算出し、正規化後の結合重み係数から抵抗変化素子ＲＰ、ＲＮに書き込む電流値を決定する。結合重み係数の正規化はニューロン毎に実施する。
【００９５】
隠れ層２のニューロンｙ１の結合重み係数ｗ１０＿ｙ＝＋０．８、ｗ１１＿ｙ＝−０．６、ｗ１２＿ｙ＝−０．４を抵抗変化素子ＲＰ、ＲＮに書き込む電流値を計算する方法を説明する。３つの結合重み係数を各々３つの演算ユニットの抵抗変化素子ＲＰ、ＲＮに抵抗値(電流値)として書き込む。結合重み係数の正規化を行うにあたり、結合重み係数ｗ１０＿ｙ、ｗ１１＿ｙ、ｗ１２＿ｙの絶対値が最大のものはｗ１０＿ｙ＝＋０．８であり、この結合重み係数の正規化後の値をｗ１０＿ｙ＝＋１．０とする。この正規化により残りの結合重み係数の正規化後の値はｗ１１＿ｙ＝−０．７５、ｗ１２＿ｙ＝−０．５となる。
【００９６】
次に、図１４Ａに示す通り、正規化された結合重み係数を用いて、演算ユニットの抵抗変化素子ＲＰ、ＲＮに書き込む電流値を決定する。図１４Ｂに抵抗変化素子ＲＰ、ＲＮに書き込む電流値の計算結果を示す。結合重み係数ｗ１０＿ｙの正規化後の値は＋１．０と正の値のため、抵抗変化素子ＲＰに書き込む電流値は５０ｕＡ、抵抗変化素子ＲＮに書き込む電流値は０ｕＡとなる。結合重み係数ｗ１１＿ｙの正規化後の値は−０．７５と負の値のため、抵抗変化素子ＲＰに書き込む電流値は０ｕＡ、抵抗変化素子ＲＮに書き込む電流値は３７．５ｕＡとなる。結合重み係数ｗ１２＿ｙの正規化後の値は−０．５と負の値のため、抵抗変化素子ＲＰに書き込む電流値は０ｕＡ、抵抗変化素子ＲＮに書き込む電流値は２５ｕＡとなる。同様に、隠れ層２のニューロンｙ２、ｙ３、出力層３のニューロンｚ１に対して演算ユニットの抵抗変化素子ＲＰ、ＲＮに書き込む電流値を計算した結果を図１４Ｂに示す。
【００９７】
ニューラルネットワーク回路の演算動作は、メモリセルアレイに配置される複数の演算ユニットの抵抗変化素子ＲＰ、ＲＮに対して図１４Ｂに示す電流値(抵抗値)を書き込み、始めに入力層１の入力データを入力とし、隠れ層２の演算に必要な結合重み係数が格納された演算ユニットを選択してビット線に流れる電流を検知、判定することで、隠れ層２の出力データを決定する。次に隠れ層２の出力データと入力として、出力層３の演算に必要な結合重み係数が格納された演算ユニットを選択してビット線に流れる電流を検知、判定することで、出力層３の出力データを決定する。このように動作させることで、多層ニューラルネットワーク演算を行うことが可能となる。
【００９８】
＜結言＞
以上のように、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路は、不揮発性半導体記憶素子に流れる電流値を用いてニューラルネットワーク回路の積和演算動作を行う。これにより、従来のデジタル回路で構成される大容量のメモリ回路やレジスタ回路、大規模な乗算回路や累積回路(アキュムレータ回路)、及び複雑な制御回路を搭載することなく、積和演算動作を行うことが可能となるため、ニューラルネットワーク演算回路の低消費電力化、及び半導体集積回路のチップ面積縮小化が可能となる。また、ニューロンの入力データと出力データが０データ、あるいは１データの２値のデジタルデータを取り得るニューラルネットワーク回路であるため、ニューロン間の情報伝達をデジタル伝送することが可能となり、複数のニューロンを用いた大規模なニューラルネットワーク回路の実装が容易となり、大規模なニューラルネットワーク回路の半導体集積化が可能となる。すなわち、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路は、低消費電力化と大規模集積化を実現することが可能である。
【００９９】
以上、本発明の実施形態を説明してきたが、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路は、上述の例示にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更等を加えたものに対しても有効である。
【０１００】
例えば、上記実施形態の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路は、抵抗変化型不揮発性メモリ(ReRAM)の例であったが、本発明は、磁気抵抗型不揮発性メモリ(MRAM)、相変化型不揮発性メモリ(PRAM)、強誘電体型不揮発性メモリ(FeRAM)等、抵抗変化型メモリ以外の不揮発性半導体記憶素子でも適用可能である。
【産業上の利用可能性】
【０１０１】
本発明に係る不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路は、不揮発性半導体記憶素子を用いて積和演算動作を行う構成のため、従来のデジタル回路を用いた乗算回路や累積回路(アキュムレータ回路)等を搭載することなく、積和演算動作を行うことが可能である。また、入力データと出力データを２値のデジタル化することで大規模なニューラルネットワーク回路を容易に集積化することが可能である。【０１０２】
従って、ニューラルネットワーク演算回路の低消費電力化と大規模集積化を実現することができるという効果を有し、例えば、自らが学習と判断を行う人工知能(AI：Artificial Intelligence)技術を搭載した半導体集積回路、及びそれらを搭載した電子機器等に対して有用である。
【符号の説明】
【０１０３】
１  入力層
２  隠れ層
３  出力層
１０  ニューロン
１１  結合重み
２０  メモリセルアレイ
３０  ワード線選択回路
４０  カラムゲート
５０  判定回路 
６０  書き込み回路
７０  制御回路
８０  半導体基板
８１ａ、８１ｂ  拡散領域
８２  酸化膜
８３  ゲート電極(ワード線)
８４ａ、８４ｂ、８６、８８、９２  ビア
８５ａ、８５ｂ  第１配線層
８７  第２配線層
８９  下部電極
９０  抵抗変化層
９１  上部電極
９３  第３配線層
ｘ０〜ｘｎ  入力
ｗ０〜ｗｎ  結合重み係数
ｂ  バイアス係数
ｆ  活性化関数
ｙ  出力
ＰＵ０〜ＰＵｎ  演算ユニット
ＭＣ  メモリセル
Ｔ０、Ｔ１  セルトランジスタ
ＲＰ、ＲＮ  抵抗変化素子
ＹＴ０、ＹＴ１  カラムゲートトランジスタ
ＤＴ０、ＤＴ１  ディスチャージトランジスタ
ＷＬ０〜ＷＬｎ  ワード線
ＢＬ０〜ＢＬｍ  ビット線
ＳＬ０〜ＳＬｍ  ソース線
ＹＧ  カラムゲート選択信号
ＤＩＳ  ディスチャージ制御信号
Ｖｂｌ  ビット線電圧
Ｒｐｉ、Ｒｎｉ  抵抗変化素子の抵抗値
Ｉｐｉ、Ｉｎｉ  抵抗変化素子に流れる電流値
【図１Ａ】
2019049741.tif 000003
【図１Ｂ】
2019049741.tif 000004
【図２】
2019049741.tif 000005
【図３】
2019049741.tif 000006
【図４】
2019049741.tif 000007
【図５】
2019049741.tif 000008
【図６】
2019049741.tif 000009
【図７Ａ】
2019049741.tif 000010
【図７Ｂ】
2019049741.tif 000011
【図７Ｃ】
2019049741.tif 000012
【図８Ａ】
2019049741.tif 000013
【図８Ｂ】
2019049741.tif 000014
【図９Ａ】
2019049741.tif 000015
【図９Ｂ】
2019049741.tif 000016
【図９Ｃ】
2019049741.tif 000017
【図９Ｄ】
2019049741.tif 000018
【図１０Ａ】
2019049741.tif 000019
【図１０Ｂ】
2019049741.tif 000020
【図１１】
2019049741.tif 000021
【図１２Ａ】
2019049741.tif 000022
【図１２Ｂ】
2019049741.tif 000023
【図１３Ａ】
2019049741.tif 000024
【図１３Ｂ】
2019049741.tif 000025
【図１３Ｃ】
2019049741.tif 000026
【図１３Ｄ】
2019049741.tif 000027
【図１４Ａ】
2019049741.tif 000028
【図１４Ｂ】
2019049741.tif 000029
【国際調査報告】
2019049741.tif 000030
2019049741.tif 000031
2019049741.tif 000032