(57)【要約】【課題】ニューロモーフィック装置、及びニューロモーフィック装置でマルチビットニューロモーフィック演算を処理する方法を提供する。【解決手段】マルチビットニューロモーフィック演算を処理するニューロモーフィック装置は、軸索の第１入力を受信する単一軸索回路；第１入力と、シナプス荷重の第２入力とのシナプス演算値を出力する単一シナプス回路；及び出力されたシナプス演算値に基づいて、軸索とシナプス荷重とのマルチビットニューロモーフィック演算結果の各ビット値を獲得する単一ニューロン回路；を含む。【選択図】図９
2020038655.tif 000002
【特許請求の範囲】
【請求項１】
マルチビットニューロモーフィック演算を処理するニューロモーフィック装置において、
ｎビット軸索（axon）の下位ｉ番目ビットの第１入力を受信する単一軸索回路と、
ｍビットシナプス荷重の下位ｊ番目ビットの第２入力を保存し、前記第１入力と前記第２入力とのシナプス演算値を出力する単一シナプス回路と、
前記出力されたシナプス演算値に基づいて、前記軸索と前記シナプス荷重とのマルチビットニューロモーフィック演算結果の各ビット値を獲得する単一ニューロン回路と、
前記マルチビットニューロモーフィック演算結果を、下位ビット値から上位ビット値まで順次に獲得するために、前記単一軸索回路及び前記単一シナプス回路それぞれに、毎時点ごとに割り当てられる前記下位ｉ番目ビットの前記第１入力、及び前記下位ｊ番目ビットの前記第２入力を決定するコントローラを含み、
前記ｎ及び前記ｍは、自然数であり、前記ｉは、１以上であり、前記ｎ以下の自然数であり、前記ｊは、１以上であり、前記ｍ以下の自然数であるニューロモーフィック装置。
【請求項２】
前記コントローラは、
前記下位ｉ番目ビット及び前記下位ｊ番目ビットが、前記毎時点それぞれで互いに異なるように組み合わされるように、前記ｉ及び前記ｊをマッピングすることを特徴とする請求項１に記載のニューロモーフィック装置。
【請求項３】
前記コントローラは、
前記単一軸索回路及び前記単一シナプス回路それぞれに、前記ｉ及び前記ｊの和が最も小さいようにマッピングされた前記下位ｉ番目ビット、及び前記下位ｊ番目ビットの組み合わせから、前記ｉ及び前記ｊの和が最も大きいようにマッピングされた前記下位ｉ番目ビット、及び前記下位ｊ番目ビットの組み合わせまで、順次に割り当てられるように、前記ｉ及び前記ｊの値を変更することを特徴とする請求項２に記載のニューロモーフィック装置。
【請求項４】
前記下位ｉ番目ビット、及び前記下位ｊ番目ビットの組み合わせの総個数は、前記ｎ及び前記ｍを乗じた値に対応することを特徴とする請求項２に記載のニューロモーフィック装置。
【請求項５】
前記単一軸索回路及び前記単一シナプス回路それぞれは、単一ビットの値を処理する回路であることを特徴とする請求項１に記載のニューロモーフィック装置。
【請求項６】
前記単一ニューロン回路は、
互いに異なる時点において、前記単一ニューロン回路から出力されたシナプス演算値を利用して加算演算を行う単一加算器を含むことを特徴とする請求項１に記載のニューロモーフィック装置。
【請求項７】
前記単一ニューロン回路は、
前記単一加算器を利用し、既設定の初期値、以前時点において、前記単一シナプス回路から出力されたシナプス演算値、現在時点において、前記単一シナプス回路から出力されたシナプス演算値、以前時点において、前記単一加算器によって処理された加算値、及び以前時点において、前記単一加算器によって決定されたキャリ（carry value）値のうち１以上を入力にする加算演算を行うことにより、前記マルチビットニューロモーフィック演算結果の前記各ビット値を獲得することを特徴とする請求項６に記載のニューロモーフィック装置。
【請求項８】
前記単一加算器から出力される加算値及びキャリのうち少なくとも一つは、前記マルチビットニューロモーフィック演算結果を示すビットのうちいずれか１つのビットの値に対応することを特徴とする請求項６に記載のニューロモーフィック装置。
【請求項９】
前記単一加算器は、
前記マルチビットニューロモーフィック演算結果を示すビットのうちいずれか１つのビットの値が獲得された後、前記マルチビットニューロモーフィック演算結果を示すビットのうち他のビットの値を獲得するために再使用されることを特徴とする請求項６に記載のニューロモーフィック装置。
【請求項１０】
前記単一加算器は、
前記マルチビットニューロモーフィック演算結果を獲得するための中間積の間に、同一ビット桁に対応するシナプス演算値を入力として受信することにより、前記加算演算を行うことを特徴とする請求項６に記載のニューロモーフィック装置。
【請求項１１】
前記コントローラは、
前記単一ニューロン回路により、前記マルチビットニューロモーフィック演算結果を示すビットが、最下位ビット（ＬＳＢ）の値から最上位ビット（ＭＳＢ）の値まで順次に獲得されるように、毎時点ごとに割り当てられる前記第１入力及び前記第２入力を決定することを特徴とする請求項１に記載のニューロモーフィック装置。
【請求項１２】
前記単一ニューロン回路は、
前記マルチビットニューロモーフィック演算結果の各ビット値がいずれも獲得された場合、前記マルチビットニューロモーフィック演算結果を、既設定の臨界値と比較することにより、スパイクの出力いかんを判断することを特徴とする請求項１に記載のニューロモーフィック装置。
【請求項１３】
ニューロモーフィック装置において、マルチビットニューロモーフィック演算を処理する方法において、
単一軸索（axon）回路に、毎時点ごとに割り当てられるｎビット軸索の下位ｉ番目ビットの第１入力、及び単一シナプス回路に、前記毎時点ごとに割り当てられるｍビットシナプス荷重の下位ｊ番目ビットの第２入力を決定する段階と、
前記単一軸索回路において、前記決定された第１入力を受信する段階と、
前記単一シナプス回路に、前記決定された第２入力が保存された場合、前記第１入力と前記第２入力とのシナプス演算値を出力する段階と、
単一ニューロン回路において、前記出力されたシナプス演算値に基づいて、前記軸索と前記シナプス荷重とのマルチビットニューロモーフィック演算結果の各ビット値を獲得する段階と、を含み、
前記決定する段階は、マルチビットニューロモーフィック演算結果が、下位ビット値から上位ビット値まで順次に獲得されるまで、前記毎時点ごとに割り当てられる前記第１入力及び前記第２入力を反復的に決定し、
前記ｎ及び前記ｍは、自然数であり、前記ｉは、１以上であり、前記ｎ以下の自然数であり、前記ｊは、１以上であり、前記ｍ以下の自然数である方法。
【請求項１４】
前記決定する段階は、
前記下位ｉ番目ビット及び前記下位ｊ番目ビットが、前記毎時点それぞれにおいて、互いに異なるように組み合わされるように、前記ｉ及び前記ｊをマッピングすることを特徴とする請求項１３に記載の方法。
【請求項１５】
前記決定する段階は、
前記単一軸索回路及び前記単一シナプス回路それぞれに、前記ｉ及び前記ｊの和が最も小さいようにマッピングされた前記下位ｉ番目ビット、及び前記下位ｊ番目ビットの組み合わせから、前記ｉ及び前記ｊの和が最も大きいようにマッピングされた前記下位ｉ番目ビット、及び前記下位ｊ番目ビットの組み合わせまで、順次に割り当てられるように、前記ｉ及び前記ｊの値を変更することを特徴とする請求項１４に記載の方法。
【請求項１６】
前記下位ｉ番目ビット、及び前記下位ｊ番目ビットの組み合わせの総個数は、前記ｎ及び前記ｍを乗じた値に対応することを特徴とする請求項１４に記載の方法。
【請求項１７】
前記獲得する段階は、
互いに異なる時点において、前記単一ニューロン回路から出力されたシナプス演算値を利用する単一加算器の加算演算により、前記各ビット値を獲得することを特徴とする請求項１３に記載の方法。
【請求項１８】
前記獲得する段階は、
前記単一加算器を利用し、既設定の初期値、以前時点において、前記単一シナプス回路から出力されたシナプス演算値、現在時点において、前記単一シナプス回路から出力されたシナプス演算値、以前時点において、前記単一加算器によって処理された加算値、及び以前時点において、前記単一加算器によって決定されたキャリ値のうち１以上を入力にする加算演算を行うことにより、前記マルチビットニューロモーフィック演算結果の前記各ビット値を獲得することを特徴とする請求項１７に記載の方法。
【請求項１９】
前記単一加算器から出力される加算値及びキャリのうち少なくとも一つは、前記マルチビットニューロモーフィック演算結果を示すビットのうちいずれか１つのビットの値に対応することを特徴とする請求項１７に記載の方法。
【請求項２０】
前記獲得する段階は、
前記マルチビットニューロモーフィック演算結果を示すビットのうちいずれか１つのビットの値が獲得された場合、前記単一加算器を再使用することにより、前記マルチビットニューロモーフィック演算結果を示すビットのうち他のビットの値を獲得することを特徴とする請求項１７に記載の方法。
【請求項２１】
前記獲得する段階は、
前記マルチビットニューロモーフィック演算結果を獲得するための中間積の間に、同一ビット桁に対応するシナプス演算値を、前記単一加算器の入力として受信することにより、前記加算演算を行うことを特徴とする請求項１７に記載の方法。
【請求項２２】
前記決定する段階は、
前記単一ニューロン回路により、前記マルチビットニューロモーフィック演算結果を示すビットが、最下位ビット（ＬＳＢ）の値から最上位ビット（ＭＳＢ）の値まで順次に獲得されるように、毎時点ごとに割り当てられる前記第１入力及び前記第２入力を決定することを特徴とする請求項１３に記載の方法。
【請求項２３】
前記マルチビットニューロモーフィック演算結果の各ビット値がいずれも獲得された場合、前記単一ニューロン回路において、前記マルチビットニューロモーフィック演算結果を既設定の臨界値と比較することにより、スパイクの出力いかんを判断する段階をさらに含むことを特徴とする請求項１３に記載の方法。
【請求項２４】
請求項１３ないし２３のうちいずれか１項に記載の方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体。
【請求項２５】
軸索（axon）回路と、
前記軸索回路と連結されたシナプス回路と、
前記シナプス回路に連結され、加算器を含むニューロン回路と、を含み、
前記ニューロン回路は、前記軸索回路に入力されるマルチビットアクチベーション入力と、前記シナプス回路に入力されるマルチビットシナプス荷重入力との乗算を、前記加算器を、時分割方式によって再使用することによって行うニューロモーフィックプロセッサ。
【請求項２６】
前記加算器は、全加算器であることを特徴とする請求項２５に記載のニューロモーフィックプロセッサ。
【請求項２７】
前記加算器は、単一加算器であることを特徴とする請求項２５に記載のニューロモーフィックプロセッサ。
【請求項２８】
前記ニューロモーフィックプロセッサは、
前記時分割方式を制御するコントローラをさらに含むことを特徴とする請求項２５に記載のニューロモーフィックプロセッサ。
【請求項２９】
軸索（axon）回路、前記軸索回路と連結されたシナプス回路、及び前記シナプス回路に連結され、加算器を含むニューロン回路を含むニューロモーフィックプロセッサと、
前記ニューロモーフィックプロセッサで処理されたデータを保存するメモリと、を含み、
前記ニューロモーフィックプロセッサは、前記軸索回路に入力されるマルチビットアクチベーション入力と、前記シナプス回路に入力されるマルチビットシナプス荷重入力との乗算を、前記ニューロン回路に含まれた前記加算器を、時分割方式によって再使用することによって行うニューロモーフィック装置。
【請求項３０】
前記ニューロモーフィックプロセッサは、
前記時分割方式により、前記加算器で処理される前記マルチビットアクチベーション入力の下位ｉ番目ビット、及び前記マルチビットシナプス荷重入力の下位ｊ番目ビットが互いに異なるように組み合わされるように決定するコントローラをさらに含むことを特徴とする請求項２９に記載のニューロモーフィック装置。
【請求項３１】
前記軸索回路及び前記シナプス回路それぞれは、
単一ビットの値を処理する単一軸索回路及び単一シナプス回路それぞれに該当することを特徴とする請求項２９に記載のニューロモーフィック装置。
【請求項３２】
前記メモリは、
前記軸索回路に提供される前記マルチビットアクチベーション入力、前記シナプス回路に提供される前記マルチビットシナプス荷重入力、及び前記乗算の演算結果を保存することを特徴とする請求項２９に記載のニューロモーフィック装置。
【発明の詳細な説明】
【技術分野】
【０００１】
後述の実施形態は、例えば、ニューロモーフィック装置、及びニューロモーフィック装置でマルチビットニューロモーフィック演算を処理する方法に関する。
【背景技術】
【０００２】
人間の神経系に似ているニューロモーフィックプロセッサ（neuromorphic processor）への関心が高まっている。人間の神経系に存在するニューロン（neuron）とシナプス（synapse）とにそれぞれ対応する、ニューロン回路とシナプス回路とを設計し、ニューロモーフィックプロセッサを具現しようとする研究がなされてきた。そのようなニューロモーフィックプロセッサは、ＣＮＮ（convolutional neural network）、ＲＮＮ（recurrent neural network）、ＦＮＮ（feedforward neural network）のような多様なニューラルネットワークを駆動するために利用され、データ分類（classification）またはイメージ認識（recognition）のような分野で活用される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
従来より、ニューロモーフィック装置、及びニューロモーフィック装置でマルチビットニューロモーフィック演算を処理する方法を提供することが望まれていた。実施形態がなそうとする技術的課題は、前述のような技術的課題に限定されるものではなく、以下の実施形態から他の技術的課題が類推されるのである。
【課題を解決するための手段】
【０００４】
一側面によれば、マルチビットニューロモーフィック演算を処理するニューロモーフィック装置は、ｎビット軸索（axon）の下位ｉ番目ビットの第１入力を受信する単一軸索回路；ｍビットシナプス荷重の下位ｊ番目ビットの第２入力を保存し、前記第１入力と前記第２入力とのシナプス演算値を出力する単一シナプス回路；前記出力されたシナプス演算値に基づいて、前記軸索と前記シナプス荷重とのマルチビットニューロモーフィック演算結果の各ビット値を獲得する単一ニューロン回路；及び前記マルチビットニューロモーフィック演算結果を、下位ビット値から上位ビット値まで順次に獲得するために、前記単一軸索回路及び前記単一シナプス回路それぞれに、毎時点ごとに割り当てられる前記下位ｉ番目ビットの前記第１入力、及び前記下位ｊ番目ビットの前記第２入力を決定するコントローラを含み、前記ｎ及び前記ｍは、自然数であり、前記ｉは、１以上であり、前記ｎ以下の自然数であり、前記ｊは、１以上であり、前記ｍ以下の自然数である。
【０００５】
他の側面によれば、ニューロモーフィック装置でマルチビットニューロモーフィック演算を処理する方法は、単一軸索回路に、毎時点ごとに割り当てられるｎビット軸索の下位ｉ番目ビットの第１入力、及び単一シナプス回路に、前記毎時点ごとに割り当てられるｍビットシナプス荷重の下位ｊ番目ビットの第２入力を決定する段階と、前記単一軸索回路で、前記決定された第１入力を受信する段階と、前記単一シナプス回路に、前記決定された第２入力が保存された場合、前記第１入力と前記第２入力とのシナプス演算値を出力する段階と、単一ニューロン回路で、前記出力されたシナプス演算値に基づいて、前記軸索と前記シナプス荷重とのマルチビットニューロモーフィック演算結果の各ビット値を獲得する段階と、を含み、前記決定する段階は、マルチビットニューロモーフィック演算結果が、下位ビット値から上位ビット値まで順次に獲得されるまで、前記毎時点ごとに割り当てられる前記第１入力及び前記第２入力を反復的に決定し、前記ｎ及び前記ｍは、自然数であり、前記ｉは、１以上であり、前記ｎ以下の自然数であり、前記ｊは、１以上であり、前記ｍ以下の自然数である。
【０００６】
さらに他の側面によれば、前記方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供する。
さらに他の側面によれば、軸索回路と、前記軸索回路と連結されたシナプス回路と、前記シナプス回路に連結され、加算器を含むニューロン回路と、を含み、前記ニューロン回路は、前記軸索回路に入力されるマルチビットアクチベーション入力と、前記シナプス回路に入力されるマルチビットシナプス荷重入力との乗算を、前記加算器を、時分割方式によって再使用することによって行うニューロモーフィックプロセッサを提供する。
【０００７】
さらに他の側面によれば、軸索回路、前記軸索回路と連結されたシナプス回路、及び前記シナプス回路に連結され、加算器を含むニューロン回路を含むニューロモーフィックプロセッサと、前記ニューロモーフィックプロセッサで処理されたデータを保存するメモリと、を含み、前記ニューロモーフィックプロセッサは、前記軸索回路に入力されるマルチビットアクチベーション入力と、前記シナプス回路に入力されるマルチビットシナプス荷重入力との乗算を、前記ニューロン回路に含まれた前記加算器を、時分割方式によって再使用することによって行うニューロモーフィック装置を提供する。
【図面の簡単な説明】
【０００８】
【図１】生物学的ニューロンと、生物学的ニューロンの動作を模写した数学的モデルについて説明するための図面である。
【図２】ニューロモーフィック演算を行うための二次元アレイ回路の構成について説明するための図面である。
【図３Ａ】一実施形態によるニューロモーフィック装置内ニューロモーフィックプロセッサの構成について説明するためのシンボルを図示した図面である。
【図３Ｂ】一実施形態によるニューロモーフィックプロセッサの単一ニューロン回路の構成について説明するためのシンボルを図示した図面である。
【図４】一実施形態によるニューロモーフィック装置のハードウェア構成を図示したブロック図である。
【図５】一実施形態によるニューロモーフィックプロセッサの各単一回路の入力について説明するための図面である。
【図６Ａ】一実施形態により、ニューロモーフィック装置で遂行可能なマルチビットニューロモーフィック演算について説明するための図面である。
【図６Ｂ】一実施形態により、マルチビットニューロモーフィック演算（すなわち、マルチビット乗算演算）を行うために被演算子を、軸索及びシナプス荷重にそれぞれマッピングすることについて説明するための図面である。
【図６Ｃ】一実施形態により、マルチビットニューロモーフィック演算（すなわち、マルチビット乗算演算）の被演算子及び中間積を、時分割方式でニューロモーフィックプロセッサで処理することについて説明するための図面である。
【図６Ｄ】一実施形態により、ニューロモーフィックプロセッサにおいて、マルチビットニューロモーフィック演算を時分割方式で処理するための仮想（virtual）シナプスアレイマッピングについて説明するための図面である。
【図７Ａ】一実施形態により、ニューロモーフィックプロセッサにおいて、マルチビットニューロモーフィック演算を処理するために、時分割方式で行われるシナプス演算の順序について説明するための図面である。
【図７Ｂ】一実施形態により、ニューロモーフィックプロセッサにおいて、マルチビットニューロモーフィック演算を処理するために、時分割方式で行われるシナプス演算の順序について説明するための図面である。
【図７Ｃ】従来のニューロモーフィックプロセッサで行われるシナプス演算の順序について説明するための図面である。
【図８Ａ】一実施形態により、ニューロモーフィックプロセッサが、時分割方式でマルチビットニューロモーフィック演算を行う過程について説明するための図面である。
【図８Ｂ】一実施形態により、ニューロモーフィックプロセッサが、時分割方式でマルチビットニューロモーフィック演算を行う過程について説明するための図面である。
【図８Ｃ】一実施形態により、ニューロモーフィックプロセッサが、時分割方式でマルチビットニューロモーフィック演算を行う過程について説明するための図面である。
【図８Ｄ】一実施形態により、ニューロモーフィックプロセッサが、時分割方式でマルチビットニューロモーフィック演算を行う過程について説明するための図面である。
【図８Ｅ】一実施形態により、ニューロモーフィックプロセッサが、時分割方式でマルチビットニューロモーフィック演算を行う過程について説明するための図面である。
【図８Ｆ】一実施形態により、ニューロモーフィックプロセッサが、時分割方式でマルチビットニューロモーフィック演算を行う過程について説明するための図面である。
【図８Ｇ】一実施形態により、ニューロモーフィックプロセッサが、時分割方式でマルチビットニューロモーフィック演算を行う過程について説明するための図面である。
【図９】図８Ａないし図８Ｇで説明された過程を要約して説明するための図面である。
【図１０Ａ】一実施形態により、ニューロモーフィックプロセッサにおいて、３ビットｘ３ビット乗算演算を処理した結果について説明するための図面である。
【図１０Ｂ】一実施形態により、ニューロモーフィックプロセッサにおいて、３ビットｘ３ビット乗算演算を処理した結果について説明するための図面である。
【図１０Ｃ】一実施形態により、ニューロモーフィックプロセッサにおいて、３ビットｘ３ビット乗算演算を処理した結果について説明するための図面である。
【図１０Ｄ】一実施形態により、ニューロモーフィックプロセッサにおいて、３ビットｘ３ビット乗算演算を処理した結果について説明するための図面である。
【図１０Ｅ】一実施形態により、ニューロモーフィックプロセッサにおいて、３ビットｘ３ビット乗算演算を処理した結果について説明するための図面である。
【図１１】一実施形態により、ニューロモーフィックプロセッサにおいて、３ビットｘ２ビット乗算演算を処理した結果について説明するための図面である。
【図１２】一実施形態により、ニューロモーフィックプロセッサにおいて、４ビットｘ４ビット乗算演算を処理した結果について説明するための図面である。
【図１３】一実施形態によるニューロモーフィックプロセッサのハードウェア資源と、従来のニューロモーフィックプロセッサのハードウェア資源とを比較して説明するための図面である。
【図１４】一実施形態によるニューロモーフィック装置において、マルチビットニューロモーフィック演算を処理する方法のフローチャートである。
【図１５】一部実施形態による電子システムの構成を示すブロック図である。
【発明を実施するための形態】
【０００９】
本実施形態で使用される用語は、本実施形態での機能を考慮しながら、可能な限り現在広く使用される一般的な用語を選択したが、それは、当技術分野の当業者の意図、判例、あるいは新たな技術の出現などによっても異なる。また、特定の場合には、任意に選定された用語もあり、その場合、当該実施形態の説明部分において、詳細にその意味を記載する。従って、本実施形態で使用される用語は、単純な用語の名称ではなく、その用語が有する意味と、本実施形態の全般にわたる内容とを基に定義されなければならない。
【００１０】
本実施形態に係わる説明において、ある部分が他の部分と連結されているとするとき、それは、直接に連結されている場合だけではなく、その中間に、他の構成要素を挟んで電気的に連結されている場合も含む。また、ある部分がある構成要素を含むとするとき、それは、特別に反対となる記載がない限り、他の構成要素を除くものではなく、他の構成要素をさらに含んでもよいことを意味する。
【００１１】
本実施形態で使用される「構成される」または「含む」というような用語は、明細書上に記載された多くの構成要素、または多くの段階を必ずしもいずれも含むものであると解釈されるものではなく、そのうち一部構成要素または一部段階は、含まれず、あるいは追加的な構成要素または段階をさらに含んでもよいと解釈されなければならない。
【００１２】
また、本明細書で使用される「第１」または「第２」のように、序数を含む用語は、多様な構成要素についての説明に使用されるが、前記構成要素は、前記用語によって限定されるものではない。前記用語は、１つの構成要素を他の構成要素から区別する目的にも使用される。
【００１３】
下記実施形態に係わる説明は、権利範囲を制限するものであると解釈されるものではなく、当該技術分野の当業者が容易に類推することができるものは、実施形態の権利範囲に属するものであると解釈されなければならないのである。以下、添付された図面を参照しながら、ただ例示のための実施形態について詳細に説明する。
【００１４】
図１は、生物学的ニューロンと、生物学的ニューロンの動作を模写した数学的モデルと、について説明するための図面である。
【００１５】
該生物学的ニューロンは、人間の神経系に存在する細胞を意味する。該生物学的ニューロンは、基礎的な生物学的計算個体の一つである。人間の頭脳は、およそ１，０００億個ほどの生物学的ニューロンと、生物学的ニューロン間の１００兆個ほどの連結（interconnect）とを含んでいる。
【００１６】
図１を参照すれば、生物学的ニューロン１０は、単一細胞である。生物学的ニューロン１０は、細胞核（nucleus）、及び多様な細胞器官（organelles）を含む細胞体（neuron cell body）を含む。該多様な細胞器官は、ミトコンドリア、細胞体から放射される多数の樹状突起（dendrites）、及び多くの分岐拡張線（extension）で縦断する軸索突起（axon）を含む。
【００１７】
一般的に、該軸索突起は、ニューロンから他のニューロンに信号を送信する機能を遂行し、該樹状突起は、他のニューロンから信号を受信する機能を遂行する。例えば、互いに異なるニューロンが連結されている場合、ニューロンが軸索突起を介して伝達した信号は、他のニューロンの樹状突起によって受信される。そのとき、ニューロン間において信号は、シナプス（synapse）と称される特化された連結を介して伝達され、さまざまなニューロンが互いに連結され、神経網（neural network）を形成する。シナプスを基準に神経伝達物質（neurotransmitter）を分泌するニューロンは、シナプス前ニューロン（pre-synaptic neuron）とも称され、神経伝達物質を介して伝達される情報を受けるニューロンは、シナプス後ニューロン（post-synaptic neuron）とも称される。
【００１８】
一方、人間の頭脳は、多数のニューロンが互いに連結されて形成される神経網を介して、多様な信号を伝達して処理することにより、膨大な量の情報を学習して記憶することができる。人間の頭脳内のニューロン間の膨大な数の連結は、生物学的コンピュータの巨大並列属性（massively parallel nature）に直接係わるが、人工神経網を模写し、膨大な量の情報を効率的に処理するための多様な試みがなされてきた。例えば、人工神経網をニューロンレベルで具現するために設計されたコンピュータシステムとして、ニューロモーフィック装置が研究されている。
【００１９】
一方、生物学的ニューロン１０の動作は、数学的モデル１１にも模写される。生物学的ニューロン１０に対応する数学的モデル１１は、ニューロモーフィック演算の一例であり、多数のニューロンからの情報に対して、シナプス荷重（synaptic weight）を乗ずる乗算演算、シナプス荷重が乗ぜられた値（ω０ｘ０、ω１ｘ１、ω２ｘ２）に対する加算演算（Σ）、及び加算演算結果について、特性関数（ｂ）及び活性関数（ｆ）を適用する演算を含んでもよい。ニューロモーフィック演算により、ニューロモーフィック演算結果が提供される。ここで、ｘ０、ｘ１、ｘ２、…のような値は、軸索値に該当し、ω０、ω１、ω２、…などの値は、シナプス荷重に該当する。
【００２０】
図２は、ニューロモーフィック演算を行うための二次元アレイ回路の構成について説明するための図面である。
【００２１】
図２を参照すれば、二次元アレイ回路の構成２０は、Ｎ個（Ｎは、任意の自然数である）の軸索回路（Ａ１ないしＡＮ）２１０、Ｍ個（Ｍは、任意の自然数である）のニューロン回路（Ｎ１ないしＮＭ）２３０、及びＮｘＭ個のシナプスアレイ（Ｓ１１ないしＳＮＭ）２２０を含む。
【００２２】
シナプスアレイ（Ｓ１１ないしＳＮＭ）２２０の各シナプスは、軸索回路（Ａ１ないしＡＮ）２１０から第１方向に延長される第１方向ラインと、ニューロン回路（Ｎ１ないしＮＭ）２３０から第２方向に延長される第２方向ラインとの交差点にも配置される。ここで、説明の便宜のために、第１方向は、行方向であり、第２方向は、列方向であるように図示されているが、それに制限されるものではなく、第１方向が列方向であり、第２方向が行方向であってもよい。
【００２３】
軸索回路（Ａ１ないしＡＮ）２１０それぞれは、生物学的ニューロン１０（図１）の軸索突起を模写する回路を意味する。ニューロンの軸索突起は、ニューロンから他のニューロンに信号を送信する機能を遂行するので、ニューロンの軸索突起を模写する軸索回路（Ａ１ないしＡＮ）２１０それぞれは、アクチベーション（例えば、軸索ａ１，ａ２，…，ａＮ）を入力され、第１方向ラインに伝達することができる。アクチベーションは、ニューロンを介して伝達される神経伝達物質に対応するものであり、軸索回路（Ａ１ないしＡＮ）２１０それぞれに入力される電気的信号を意味する。一方、軸索回路（Ａ１ないしＡＮ）２１０それぞれは、入力情報を保存するメモリ、レジスタまたはバッファを含んでもよい。一方、該アクチベーションは、バイナリ（binary）値を有するバイナリアクチベーションでもある。例えば、該バイナリアクチベーションは、論理値０または１に対応する１ビット情報を含んでもよい。ただし、必ずしもそれに制限されるものではなく、該アクチベーションは、ターナリ（ternary）値を有してもよく、マルチビット値を有してもい。
【００２４】
シナプスアレイ（Ｓ１１ないしＳＮＭ）２２０の各シナプスは、ニューロンとニューロンとの間のシナプスを模写する回路を意味する。シナプスアレイ（Ｓ１１ないしＳＮＭ）２２０は、ニューロンとニューロンとの連結強度に対応するシナプス荷重を保存することができる。図２においては、説明の便宜のために、各シナプスに保存されるシナプス荷重の例として、ｗ１、ｗ２、…、ｗＭが図示されているが、各シナプスには、それ以外にも、他のシナプス荷重が保存されてもよい。シナプスアレイ（Ｓ１１ないしＳＮＭ）２２０の各シナプスは、シナプス荷重を保存するためのメモリ素子を含むか、あるいはシナプス荷重を保存している他のメモリ素子にも連結される。ここで、そのようなメモリ素子は、例えば、メモリスタ（memrister）にも該当する。
【００２５】
シナプスアレイ（Ｓ１１ないしＳＮＭ）２２０それぞれは、対応する第１方向ラインを介し、軸索回路（Ａ１ないしＡＮ）２１０それぞれから伝達されるアクチベーション入力を受信することができ、保存されていたシナプス荷重とアクチベーション入力とのニューロモーフィック演算の結果を出力することができる。例えば、シナプス荷重とアクチベーション入力とのニューロモーフィック演算は、乗算演算（すなわち、ＡＮＤ演算）でもあるが、それに制限されるものではない。すなわち、シナプス荷重とアクチベーション入力とのニューロモーフィック演算の結果は、ニューロンとニューロンとの連結強度によって調節されるアクチベーションの強度または大きさを模写するための他の任意の適切な演算によって獲得される値でもある。
【００２６】
シナプス荷重とアクチベーション入力とのニューロモーフィック演算により、軸索回路（Ａ１ないしＡＮ）２１０からニューロン回路（Ｎ１ないしＮＭ）２３０に伝達される信号の大きさまたは強度が調節される。そのように、シナプスアレイ（Ｓ１１ないしＳＮＭ）２２０を利用し、ニューロンとニューロンとの連結強度により、次のニューロンに伝達される信号の大きさまたは強度が調節される動作が模写される。
【００２７】
ニューロン回路（Ｎ１ないしＮＭ）２３０それぞれは、樹状突起を含むニューロンを模写する回路を意味する。ニューロンの樹状突起、は他のニューロンから信号を受信する機能を遂行するが、ニューロン回路（Ｎ１ないしＮＭ）２３０それぞれは、対応する第２方向ラインを介して、シナプス荷重とアクチベーション入力とのニューロモーフィック演算の結果を受信することができる。ニューロン回路（Ｎ１ないしＮＭ）２３０それぞれは、ニューロモーフィック演算の結果に基づいて、スパイク（spike）を出力するか否かということを決定することができる。例えば、ニューロン回路（Ｎ１ないしＮＭ）それぞれは、ニューロモーフィック演算の結果を累積した値が、既設定の臨界値以上である場合、スパイクを出力することができる。ニューロン回路（Ｎ１ないしＮＭ）２３０から出力されたスパイクは、次ステージの軸索回路に入力されるアクチベーションに対応する。
【００２８】
一方、ニューロン回路（Ｎ１ないしＮＭ）２３０は、シナプスアレイ（Ｓ１１ないしＳＮＭ）２２０を基準に後端に位置するが、シナプス後ニューロン回路とも称され、軸索回路（Ａ１ないしＡＮ）２１０は、シナプスアレイ（Ｓ１１ないしＳＮＭ）２２０を基準に前端に位置するが、シナプス前ニューロン回路とも称される。
【００２９】
図３Ａは、一実施形態によるニューロモーフィック装置内ニューロモーフィックプロセッサの構成について説明するためのシンボルを図示した図面である。
【００３０】
図３Ａを参照すれば、ニューロモーフィックプロセッサ３０は、単一軸索回路３１０、単一シナプス回路３２０及び単一ニューロン回路３３０を含んでもよい。ここで、単一シナプス回路３２０は、外部の他のメモリデバイスに含まれたＮｘＭシナプスメモリアレイ３２５からシナプス荷重を提供される。
【００３１】
図２で説明された二次元アレイ（ＮｘＭ）回路の構成２０は、図３Ａに図示された単一軸索回路３１０、単一シナプス回路３２０及び単一ニューロン回路３３０を利用しても具現される。図２の軸索回路（Ａ１ないしＡＮ）２１０は、単一軸索回路３１０に対応し、シナプスアレイ（Ｓ１１ないしＳＮＭ）２２０は、単一シナプス回路３２０に対応し、単一ニューロン回路３３０は、ニューロン回路（Ｎ１ないしＮＭ）２３０に対応する。
【００３２】
図２の軸索回路（Ａ１ないしＡＮ）２１０のように動作されるために、ニューロモーフィックプロセッサ３０において、単一軸索回路３１０は、時分割方式（time-division manner）で、軸索入力を処理する。また、同様に、図２のシナプスアレイ（Ｓ１１ないしＳＮＭ）２２０のように動作されるために、ニューロモーフィックプロセッサ３０において、単一シナプス回路３２０も、時分割方式でシナプス荷重を保存する。
【００３３】
具体的には、単一軸索回路３１０は、時点ｔ１においては、図２の軸索回路Ａ１として動作され、単一軸索回路３１０は、時点ｔ２においては、図２の軸索回路Ａ２として動作され、…、単一軸索回路３１０は、時点ｔＮにおいては、図２の軸索回路ＡＮとしても動作される。そして、単一シナプス回路３２０は、時点ｔ１−１時点においては、図２のシナプスＳ１１として動作され、単一シナプス回路３２０は、時点ｔ１−２時点においては、図２のシナプスＳ１２で動作され、…、単一シナプス回路３２０は、時点ｔＮ−Ｍ時点においては、図２のシナプスＳＮＭとして動作される。一方、単一ニューロン回路３３０も、同一方式により、図２のニューロン回路（Ｎ１ないしＮＭ）２３０としても動作される。ここで、該時点は、いずれも任意の時点であり、時点の区分のために、互いに異なる参照記号によって説明された。
【００３４】
そのように、単一軸索回路３１０、単一シナプス回路３２０及び単一ニューロン回路３３０それぞれが、時分割方式により、特定時点それぞれで動作されるのであるならば、単一回路（１ｘ１）だけ具備されているとしても、複数の回路（ＮｘＭ）が動作するようにも具現される。すなわち、図２の二次元アレイ（ＮｘＭ）回路の構成２０は、時分割方式により、各単一回路を動作させることにより、単一回路（１ｘ１）のニューロモーフィックプロセッサ３０としても具現される。
【００３５】
図３Ｂは、一実施形態によるニューロモーフィックプロセッサの単一ニューロン回路の構成について説明するためのシンボルを図示した図面である。
【００３６】
図３Ｂを参照すれば、ニューロモーフィックプロセッサ３０の単一ニューロン回路３３０は、単一加算器（single adder）３２１及び比較器３２３を含んでもよい。
【００３７】
単一加算器３２１は、被加数Ｂ１、加数Ｂ２及び以前繰り上がり数（キャリ（carry value））Ｃ０の３つの入力、及び繰り上がりのない和Ｓ１、及び新たな繰り上がり数（キャリ）Ｃ１の２つの出力を有する組み合わせ回路を意味する。すなわち、単一加算器３２１は、全加算器（full adder）にも該当する。
【００３８】
比較器３２３は、単一加算器３２１による加算結果Ｃ１Ｓ１と、既設定の臨界値とを比較する。ここで、既設定の臨界値は、次のニューロンにスパイクを出力するか否かということを判断するための基準に該当する。比較器３２３により、加算結果Ｃ１Ｓ１が既設定の臨界値以上であると判断された場合、単一ニューロン回路３３０は、スパイクを出力することができる。
【００３９】
図４は、一実施形態によるニューロモーフィック装置のハードウェア構成を図示したブロック図である。
【００４０】
図４を参照すれば、ニューロモーフィック装置１００は、ニューロモーフィックプロセッサ１１２及びオンチップメモリ１１４が実装された（mounted）ニューロモーフィックチップ１１０と、外部メモリ１２０とを含む。ニューロモーフィックプロセッサ１１２は、単一軸索回路１１２１、単一シナプス回路１１２２、単一ニューロン回路１１２３及びコントローラ１１２４を含む。ただし、図４に図示されたニューロモーフィック装置１００には、本実施形態と係わる構成要素だけが図示されている。従って、ニューロモーフィック装置１００には、図４に図示された構成要素以外に、他の汎用的な構成要素、例えば、ＣＰＵ（central processing unit）、ＧＰＵ（graphics processing unit）、ＡＰ（application processor）、センサモジュール、通信モジュールなどがさらに含まれてもよいということは、当該技術分野の当業者であるならば、容易に理解することができるであろう。
【００４１】
ニューロモーフィックプロセッサ１１２は、図３Ａのニューロモーフィックプロセッサ３０に対応し、単一軸索回路１１２１は、図３Ａの単一軸索回路３１０に対応し、単一シナプス回路１１２２は、図３Ａの単一シナプス回路３２０に対応し、単一ニューロン回路１１２３は、図３Ａの単一ニューロン回路３３０に対応する。
ニューロモーフィックプロセッサ１１２は、図３Ａのニューロモーフィックプロセッサ３０のように具現された単一プロセッシングユニット（または、単一プロセッサコア）を含んでもよいが、それに制限されるものではなく、ニューロモーフィックプロセッサ１１２は、それぞれが、図３Ａのニューロモーフィックプロセッサ３０として具現された複数のプロセッシングユニット（または、プロセッサコア）を含んでもよい。
【００４２】
ニューロモーフィック装置１００は、ＰＣ（personal computer）、サーバデバイス、モバイルデバイス、埋め込みデバイスのような多種の電子デバイスに含まれた装置でもある。ニューロモーフィック装置１００は、例えば、ニューラルネットワークを利用した音声認識、映像認識、映像分類などを行うスマートフォン、タブレットデバイス、ＡＲ（augmented reality）デバイス、ＩｏＴ（internet of things）デバイス、自律走行自動車、ロボティクス、医療機器などに含まれたハードウェア構成にも該当する。すなわち、ニューロモーフィック装置１００は、前述のような電子デバイスに搭載される専用ハードウェア加速器（ＨＷ accelerator）にも該当し、ニューロモーフィック装置１００は、ニューラルネットワーク駆動のための専用モジュールであるＮＰＵ（neural processing unit）、ＴＰＵ（Tensor processing unit）、Neural Engine、TrueNorth、Ｌｏｉｈｉのように動作するハードウェア加速器でもあるが、それらに制限されるものではない。
【００４３】
ニューロモーフィックチップ１１０は、ニューロモーフィック装置１００において、ニューラルネットワークを駆動するための全般的な機能を制御する役割を行う。例えば、ニューロモーフィックチップ１１０のニューロモーフィックプロセッサ１１２は、ニューロモーフィック装置１００内の外部メモリ１２０に保存されたニューロモーフィックデータ（例えば、軸索入力値、シナプス荷重値など）にアクセスし、ニューロモーフィック関連プログラムを実行することにより、ニューロモーフィック装置１００を全般的に制御する。一方、ニューロモーフィックチップ１１０は、ニューロモーフィック装置１００の内部または外部に具備されたＣＰＵ、ＧＰＵ、ＡＰなどの制御により、ニューラルネットワークを駆動することもできる。
【００４４】
外部メモリ１２０は、ニューロモーフィックチップ１１０内で処理される各種ニューロモーフィックデータを保存するハードウェアであり、外部メモリ１２０は、ニューロモーフィックチップ１１０で処理されたデータ、及び処理されるデータを保存することができる。また、外部メモリ１２０は、ニューロモーフィックチップ１１０によって駆動されるアプリケーション、ドライバなどを保存することができる。外部メモリ１２０は、ＤＲＡＭ（dynamic random access memory）・ＳＲＡＭ（static random access memory）のようなＲＡＭ（random access memory）、ＲＯＭ（read-only memory）、ＥＥＰＲＯＭ（electrically erasable programmable read-only memory）、ＣＤ−ＲＯＭ（compact disc read only memory）、ブルーレイ（Blu-ray（登録商標））、または他の光学ディスクストレージ、ＨＤＤ（hard disk drive）、ＳＳＤ（solid state drive）、またはフラッシュメモリを含んでもよい。
【００４５】
ニューロモーフィックチップ１１０のオンチップメモリ１１４は、外部メモリ１２０から、シナプス前ニューロン回路のためのニューロモーフィックデータ（軸索値、シナプス値など）を読み取り、保存（または、バッファリング）し、保存されたニューロモーフィックデータを利用し、ニューラルネットワークを実行する。例えば、図３Ａで説明されたＮｘＭシナプスメモリアレイ３２５は、オンチップメモリ１１４にも該当する。オンチップメモリ１１４は、ニューラルネットワークの実行結果として生成されたニューロモーフィック演算の結果、スパイク値のようなシナプス後ニューロン回路のためのデータを保存することもできる。
【００４６】
ニューロモーフィックプロセッサ１１２の単一軸索回路１１２１、単一シナプス回路１１２２、単一ニューロン回路１１２３及びコントローラ１１２４の具体的な動作及び機能については、以下、他の図面を参照し、さらに詳細に説明する。
【００４７】
図５は、一実施形態によるニューロモーフィックプロセッサの各単一回路の入力について説明するための図面である。
【００４８】
図５を参照すれば、ニューロモーフィックプロセッサ１１２のコントローラ１１２４は、単一軸索回路１１２１に、毎時点ごとに割り当てられるｎビット軸索５１０の下位ｉ番目ビットの第１入力、及び単一シナプス回路１１２２に、毎時点ごとに割り当てられるｍビットシナプス荷重５２０の下位ｊ番目ビットの第２入力を決定する。ここで、ｎ及びｍは、自然数であり、ｉは、１以上ｎ以下の自然数であり、ｊは、１以上ｍ以下の自然数である。
【００４９】
図５においては、説明の便宜のために、軸索５１０とシナプス荷重５２０とのそれぞれは、総３ビット（ｎ＝３、ｍ＝３）の値であると仮定して説明する。ただし、それに制限されるものではなく、本実施形態による軸索５１０とシナプス荷重５２０は、多様なビットの値を有することができる。
【００５０】
コントローラ１１２４は、ある特定時点（例えば、時点ｔｘ）において、３ビット軸索（ｎ＝３）５１０の何番目ビット桁（すなわち、下位ｉ番目ビット）のビット値を、第１入力として、単一軸索回路１１２１に割り当てるかということを決定する。すなわち、コントローラ１１２４は、ｉを決定することにより、時点ｔｘで割り当てられる第１入力を決定することができる。例えば、ｉは、１から３の値を有することができる。ｉが１である場合、下位１番目ビットの第１入力は、軸索５１０のＬＳＢ（least significant bit）のビット値に該当し、ｉが３である場合、下位３番目ビットの第１入力は、軸索５１０のＭＳＢ（most significant bit）のビット値に該当する。
【００５１】
また、コントローラ１１２４は、ある特定時点（例えば、時点ｔｙ）において、３ビットシナプス荷重（ｍ＝３）５２０の何番目ビット桁（すなわち、下位ｊ番目ビット）のビット値を、第２入力として、単一シナプス回路１１２２に割り当てるかということを決定する。すなわち、コントローラ１１２４は、ｊを決定することにより、時点ｔｙで割り当てられる第２入力を決定することができる。例えば、ｊは、１から３の値を有することができる。ｊが１である場合、下位１番目ビットの第２入力は、シナプス荷重５２０のＬＳＢのビット値に該当し、ｊが３の場合、下位３番目ビットの第２入力は、シナプス荷重５２０のＭＳＢのビット値に該当する。
【００５２】
前述のような方式により、コントローラ１１２４は、ニューロモーフィックプロセッサ１１２から最終的に出力されるマルチビットニューロモーフィック演算結果の下位ビット値から上位ビット値まで順次に獲得されるまで、毎時点ごとに、ｉ値及びｊ値を変更させ、単一軸索回路１１２１及び単一シナプス回路１１２２それぞれに割り当てられる第１入力及び第２入力を反復的に決定する。ここで、該下位ビット値は、最終マルチビットニューロモーフィック演算結果のＬＳＢのビット値を意味し、上位ビット値は、最終マルチビットニューロモーフィック演算結果のＭＳＢのビット値を意味する。一方、第１入力及び第２入力の用語は、コントローラ１１２４によって決定されたビット桁の値を意味するのみ、毎時点において、コントローラ１１２４によって新たに更新される値を指す用語である。
【００５３】
コントローラ１１２４は、下位ｉ番目ビット及び下位ｊ番目ビットが、毎時点それぞれにおいて、互いに異なるように組み合わされるように、ｉ及びｊをマッピングすることができる。例えば、コントローラ１１２４は、ｉ及びｊの和が最も小さいようにマッピングされた下位ｉ番目ビット（例えば、ＬＳＢ）及び下位ｊ番目ビット（例えば、ＬＳＢ）の組み合わせから、ｉ及びｊの和が最も大きいようにマッピングされた下位ｉ番目ビット（例えば、ＭＳＢ）及び下位ｊ番目ビット（例えば、ＭＳＢ）の組み合わせまで、単一軸索回路１１２１及び単一シナプス回路１１２２それぞれに順次に割り当てられるように、ｉ及びｊの値を変更してマッピングすることができる。そのとき、下位ｉ番目ビット及び下位ｊ番目ビットの組み合わせの総個数は、ｎ及びｍを乗じた値に対応し、図５の例示においては、総９個（３ｘ３）の組み合わせが存在する。例えば、コントローラ１１２４は、最初時点においては、軸索５１０のＬＳＢ（ｉ＝１）のビット値（第１入力）、及びシナプス荷重５２０のＬＳＢ（ｊ＝１）のビット値（第２入力）を最初にマッピングし、最後の時点においては、軸索５１０のＭＳＢ（ｉ＝３）のビット値（第１入力）、及びシナプス荷重５２０のＭＳＢ（ｊ＝３）のビット値（第２入力）を最後にマッピングして決定することができる。
【００５４】
ニューロモーフィックプロセッサ１１２の単一軸索回路１１２１は、コントローラ１１２４によって決定された、ｎビット軸索５１０の下位ｉ番目ビットの第１入力を受信する。また、ニューロモーフィックプロセッサ１１２の単一シナプス回路１１２２は、コントローラ１１２４によって決定された、ｍビットシナプス荷重５２０の下位ｊ番目ビットの第２入力を保存する。
【００５５】
単一軸索回路１１２１及び単一シナプス回路１１２２それぞれは、単一ビット値（すなわち、１ビット値）に対する処理が可能である回路である。従って、単一軸索回路１１２１及び単一シナプス回路１１２２それぞれは、軸索５１０のいずれの特定桁のビット値（第１入力）、及びシナプス荷重５２０のいずれの特定桁のビット値（第２入力）だけの処理を行うことができる。
【００５６】
単一シナプス回路１１２２は、単一シナプス回路１１２２に、下位ｊ番目ビットの第２入力が保存された場合、単一軸索回路１１２１で受信した第１入力と、単一シナプス回路１２２に保存された第２入力とのシナプス演算値を出力する。単一シナプス回路１１２２によって行われるシナプス演算は、第１入力と第２入力との乗算演算（すなわち、ＡＮＤ演算）でもあるが、それに制限されるものではない。
【００５７】
ニューロモーフィックプロセッサ１１２の単一ニューロン回路１１２３は、単一シナプス回路１１２２から出力されたシナプス演算値に基づいて、ｎビット軸索５１０とｍビットシナプス荷重５２０とのマルチビットニューロモーフィック演算結果の各ビット値を獲得する。それについては、以下、当該図面でもって、さらに詳細に説明する。
【００５８】
図６Ａは、一実施形態により、ニューロモーフィック装置で遂行可能なマルチビットニューロモーフィック演算について説明するための図面である。
【００５９】
図６Ａを参照すれば、マルチビットニューロモーフィック演算の一例として、３ビットバイナリ値間のマルチビット乗算演算が図示されている。該マルチビット乗算演算は、被演算子のうち少なくとも一つが複数個のビットを含む乗算演算を意味する。マルチビット乗算演算の第１被演算子６１１は、３ビットバイナリ値であるＡＢＣ２であり、第２被演算子６１２は、３ビットバイナリ値であるＤＥＦ２であるとき、第１被演算子６１１及び第２被演算子６１２の乗算演算は、ビット別に乗算を行い、中間積を計算した後、計算された中間積を同一ビット桁に合わせて加えることによっても行われる。
【００６０】
具体的には、第２被演算子ＤＥＦ２ ６１２のＬＳＢであるＦと、第１被演算子ＡＢＣ２ ６１１とを乗じ、第１中間積６１３であるＧＨＩが獲得され、第２被演算子ＤＥＦ２ ６１２の下位２番目ビットであるＥと、第１被演算子ＡＢＣ２ ６１１とを乗じ、第２中間積６１４であるＪＫＬが獲得され、第２被演算子ＤＥＦ２ ６１２の下位３番目ビット（すなわち、ＭＳＢ）であるＤと、第１被演算子ＡＢＣ２ ６１１とを乗じ、第３中間積６１５であるＭＮＯが獲得される。その後、獲得された中間積６１３，６１４及び６１５を、同一ビット桁に合わせて加えることにより、第１被演算子ＡＢＣ２ ６１１と第２被演算子ＤＥＦ２ ６１２とのマルチビット乗算演算結果６１６であるＰＱＲＳＴＵ２が獲得される。以下においては、前述のニューロモーフィックプロセッサ１１２（図４）が、図６Ａに図示されたマルチビットニューロモーフィック演算（すなわち、マルチビット乗算演算）を行う方法について、さらに詳細に説明する。
【００６１】
図６Ｂは、一実施形態により、マルチビットニューロモーフィック演算（すなわち、マルチビット乗算演算）を行うために、被演算子を、軸索及びシナプス荷重にそれぞれマッピングすることについて説明するための図面である。
【００６２】
図６Ｂを参照すれば、図６Ａの第１被演算子ＡＢＣ２ ６１１の各ビット値（Ａ、Ｂ及びＣ）は、シナプス荷重６２０にマッピングされる。第１被演算子ＡＢＣ２ ６１１のＭＳＢは、シナプス荷重６２０のＭＳＢにマッピングされ、第１被演算子ＡＢＣ２ ６１１のＬＳＢは、シナプス荷重６２０のＬＳＢにマッピングされる。
【００６３】
同じ方式により、図６Ａの第２被演算子ＤＥＦ２ ６１２の各ビット値（Ｄ、Ｅ及びＦ）は、軸索６１０にマッピングされる。第２被演算子ＤＥＦ２ ６１２のＭＳＢは、軸索６１０のＭＳＢにマッピングされ、第２被演算子ＤＥＦ２ ６１２のＬＳＢは、軸索６１０のＬＳＢにマッピングされる。
【００６４】
しかし、それらに制限されるものではなく、本実施形態によれば、図６Ｂで説明されたマッピング方式と異なり、図６Ａの第１被演算子ＡＢＣ２ ６１１及び第２被演算子ＤＥＦ２ ６１２は、他のマッピング方式によってでも、軸索６１０及びシナプス荷重６２０のビット桁にマッピングされる。ただし、他のマッピング方式が適用される場合、コントローラ１１２４は、マッピングされたビット桁に対応するように、ｉ及びｊの組み合わせを、前述のところと異なる方式によって決定することができる。
【００６５】
図６Ｃは、一実施形態により、マルチビットニューロモーフィック演算（すなわち、マルチビット乗算演算）の被演算子及び中間積を、時分割方式により、ニューロモーフィックプロセッサで処理することについて説明するための図面である。
【００６６】
図６Ｃを参照すれば、図６Ｂで説明されたように、第１被演算子ＡＢＣ２ ６３１の各ビット値（Ａ、Ｂ及びＣ）は、シナプス荷重６２０にマッピングされ、第２被演算子ＤＥＦ２ ６３２の各ビット値（Ｄ、Ｅ及びＦ）は、軸索６１０にマッピングされる。
【００６７】
第１被演算子ＡＢＣ２ ６３１の各ビット値（Ａ、Ｂ及びＣ）と、第２被演算子ＤＥＦ２ ６３２の各ビット値（Ｄ、Ｅ及びＦ）との乗算によって生成された第１中間積ＧＨＩ ６３３、第２中間積ＪＫＬ ６３４及び第３中間積ＭＮＯ ６３５それぞれのビット値は、時分割方式によっても獲得される。具体的には、第１中間積ＧＨＩ ６３３のビット値Ｉは、時点ｔ０において獲得され、第１中間積ＧＨＩ ６３３のビット値Ｈは、時点ｔ１において獲得され、第２中間積ＪＫＬ ６３４のビット値Ｌは、時点ｔ２において獲得され、第３中間積ＭＮＯ ６３５のビット値Ｍは、時点ｔ８においても獲得される。
【００６８】
一方、時点ｔ０、時点ｔ１、…、時点ｔ８は、互いに異なる時点を意味する。例えば、時点ｔ０から既設定の時間ほど遅延された時間が時点ｔ１であり、時点ｔ１から既設定の時間ほど遅延された時間が時点ｔ２でもある。ただし、必ずしもそれらに制限されるものではない。また、明細書全体において、時点ｔは、ある特定瞬間のみを限定するためではなく、関連動作が遂行されるタイミングまたは時間区間を区別するためのものである。従って、明細書において、特定時点において遂行されると説明した動作が、必ずしも同時に遂行されるものではないということは、当該技術分野の当業者であるならば、容易に理解するであろう。
【００６９】
第１被演算子ＡＢＣ２ ６３１と第２被演算子ＤＥＦ２ ６３２とのマルチビットニューロモーフィック演算（すなわち、マルチビット乗算演算）の結果６３６は、ＰＱＲＳＴＵ２である。
【００７０】
マルチビットニューロモーフィック演算の結果であるＰＱＲＳＴＵ２ ６３６において、ＬＳＢに該当するＵは、第１中間積ＧＨＩ ６３３のＩによって獲得される。マルチビットニューロモーフィック演算の結果ＰＱＲＳＴＵ２ ６３６においてＴは、第１中間積ＧＨＩ ６３３のＨと、第２中間積ＪＫＬ ６３４のＬとの和によって獲得される。マルチビットニューロモーフィック演算の結果ＰＱＲＳＴＵ２ ６３６においてＳは、第１中間積ＧＨＩ ６３３のＧ、第２中間積ＪＫＬ ６３４のＫ、第３中間積ＭＮＯ ６３５のＯ、及び以前ビット桁で獲得されたキャリの和によって獲得される。そのような方式により、マルチビットニューロモーフィック演算の結果であるＰＱＲＳＴＵ２ ６３６は、ＬＳＢに該当するＵからＭＳＢに該当するＰまで順次に獲得されるこ。すなわち、時点ｔ０から時点ｔ８まで順次に獲得された中間積６３３，６３４及び６３５のビット値の和に基づいて、マルチビットニューロモーフィック演算の結果であるＰＱＲＳＴＵ２ ６３６が獲得される。
【００７１】
図６Ｄは、一実施形態により、ニューロモーフィックプロセッサにおいて、マルチビットニューロモーフィック演算を時分割方式で処理するための仮想（virtual）シナプスアレイマッピングについて説明するための図面である。
図６Ｄを参照すれば、前述のように、ニューロモーフィックプロセッサ１１２は、単一軸索回路１１２１、単一シナプス回路１１２２、単一ニューロン回路１１２３及びコントローラ１１２４を含むが、ニューロモーフィックプロセッサ１１２が、時分割方式によって動作されるとき、ニューロモーフィックプロセッサ１１２は、まるで１以上のニューロン回路、１以上のシナプス、１以上のニューロン回路を含む二次元シナプスアレイを処理するようにも動作される。本実施形態においては、ニューロモーフィックプロセッサ１１２が、時分割方式で処理するために、描写された二次元シナプスアレイを、仮想シナプスアレイ６４０という用語で称するようにするが、それに制限されるものではなく、他の用語で称されてもよい。すなわち、ニューロモーフィックプロセッサ１１２には、仮想シナプスアレイ６４０の物理的回路構成（例えば、１以上のニューロン回路、１以上のシナプス、及び１以上のニューロン回路）が実際に具現されたものではない。
【００７２】
図６Ｄには、前掲の図６Ａないし図６Ｃで説明されたマルチビットニューロモーフィック演算（３ビットｘ３ビットの乗算演算）と係わって説明するために、３ｘ３仮想シナプスアレイ６４０が図示されている。しかし、本実施形態によれば、それ以外にも、多様な個数の行及び列を含むアレイが利用されてもよい。
【００７３】
３ｘ３仮想シナプスアレイ６４０において、軸索ａ３，ａ２，ａ１には、第２被演算子ＤＥＦ ６３２（図６Ｃ）がマッピングされ、シナプス荷重ｗ３，ｗ２，ｗ１には、第１被演算子ＡＢＣ ６３１（図６Ｃ）がマッピングされる。軸索ａ１とシナプス荷重ｗｔとが交差して提供されるシナプスにおいては、軸索（ビット値ａ１＝Ｆ）とシナプス荷重（ビット値ｗ１＝Ｃ）とのシナプス演算が行われることにより、第１中間積ＧＨＩ ６３３（図６Ｃ）のビット値Ｉが獲得される。類似の方式により、３ｘ３仮想シナプスアレイ６４０において、軸索ａ３，ａ２，ａ１とシナプス荷重ｗ３，ｗ２，ｗ１とが交差して提供されるシナプスにおいては、シナプス演算が行われることにより、全ての中間積６３３，６３４及び６３５のビット値が、図６Ｄに図示されているようにも、それぞれマッピングされる。
【００７４】
コントローラ１１２４は、仮想シナプスアレイ６４０の、前述のような方式のマッピングが行われるように、単一軸索回路１１２１及び単一シナプス回路１１２２に提供される軸索及びシナプス荷重それぞれを決定する。
【００７５】
図７Ａ及び図７Ｂは、一実施形態により、ニューロモーフィックプロセッサにおいて、マルチビットニューロモーフィック演算を処理するために、時分割方式で行われるシナプス演算の順序について説明するための図面である。
【００７６】
図７Ａを参照すれば、仮想シナプスアレイ７１０で交差する地点のシナプスにおいては、軸索とシナプス荷重とのシナプス演算が行われる。ニューロモーフィックプロセッサ１１２は、仮想シナプスアレイ７１０の交差する地点でのシナプス演算を、時分割方式で行うことができる。
【００７７】
前掲の図６Ｃ及び図６Ｄで説明されたマッピング方式によれば、ニューロモーフィックプロセッサ１１２は、時点ｔ０において、軸索ａ１を単一軸索回路１１２１に提供し、シナプス荷重ｗ１を単一シナプス回路１１２２に提供し、軸索ａ１とシナプス荷重ｗ１とのシナプス演算値を獲得する。次に、ニューロモーフィックプロセッサ１１２は、時点ｔ１において、軸索ａ１を単一軸索回路１１２１に提供し、シナプス荷重ｗ２を単一シナプス回路１１２２に提供し、軸索ａ１とシナプス荷重ｗ２とのシナプス演算値を獲得する。類似の方式により、ニューロモーフィックプロセッサ１１２は、時点ｔ８までシナプス演算を順次に行う。
【００７８】
図７Ｂを参照すれば、図７Ａで説明された順序を、矢印によって図式化すれば、仮想シナプスアレイ７１０の対角線方向の順序で、時点ｔ０から時点ｔ８までのシナプス演算が行われるということが理解される。
【００７９】
結局、そのような順序は、前述のように、コントローラ１１２４が、ｉとｊとの和が最も小さいようにマッピングされた下位ｉ番目ビット及び下位ｊ番目ビットの組み合わせから、ｉとｊとの和が最も大きいようにマッピングされた下位ｉ番目ビット及び下位ｊ番目ビットの組み合わせまで、単一軸索回路１１２１及び単一シナプス回路１１２２それぞれに順次に割り当てられるように、ｉ及びｊの値を変更してマッピングする方式によるものである。
【００８０】
図７Ｃは、従来のニューロモーフィックプロセッサで行われるシナプス演算の順序について説明するための図面である。図７Ｃを参照すれば、従来のニューロモーフィックプロセッサは、マルチビットニューロモーフィック演算を行うことができず、単に、１ビットのニューロモーフィック演算（１ビットｘ１ビット乗算演算）のみを行うことができる。すなわち、仮想シナプスアレイ７２０を参照して説明すれば、軸索それぞれと、シナプス荷重それぞれは、マルチビット被演算子の一部ビット値に該当せず、軸索それぞれとシナプス荷重それぞれは、１ビット被演算子そのものに該当するのみである。また、従来のニューロモーフィックプロセッサは、単に、図７Ｃに図示された列方向の順にシナプス演算を行うだけであり、それは、時点ｔ０で獲得されたシナプス演算値と、時点ｔ３で獲得されたシナプス演算値は、互いに関連性がない独立したシナプス演算値であるのみであるという点を意味する。
【００８１】
それと異なり、本実施形態によれば、ニューロモーフィックプロセッサ１１２は、仮想シナプスアレイ７１０の軸索及びシナプス荷重に、マルチビット被演算子の一部ビット値を割り当て、シネブティック演算を、図７Ｂの対角線方向順序の時分割方式で行うことにより、従来のニューロモーフィックプロセッサと異なり、マルチビットニューロモーフィック演算が可能である。
【００８２】
図８Ａないし図８Ｇは、一実施形態により、ニューロモーフィックプロセッサが、時分割方式で、マルチビットニューロモーフィック演算を行う過程について説明するための図面である。
【００８３】
図８Ａないし図８Ｇにおいては、前掲の図６Ａないし図７Ｂで説明された例示を利用し、マルチビットニューロモーフィック演算の遂行過程について説明する。
【００８４】
一方、ニューロモーフィックプロセッサ１１２（図４）の単一ニューロン回路１１２３（図４）は、単一シナプス回路１１２２（図４）から出力されたシナプス演算値に基づいて、ｎビット軸索とｍビットシナプス荷重とのマルチビットニューロモーフィック演算結果の各ビット値を獲得する。単一ニューロン回路１１２３は、単一加算器（single adder（Adder））８１０を含む。
【００８５】
図８Ａを参照すれば、時点ｔ０での過程について図示されている。
【００８６】
コントローラ１１２４は、時点ｔ０において、単一ニューロン回路１１２３に軸索ａ１を割り当て、単一シナプス回路１１２２にシナプス荷重ｗ１を割り当てる。
【００８７】
シナプス８００は、シナプス荷重ｗ１を保存する。シナプス８００は、シナプス荷重ｗ１が保存された場合、軸索ａ１とシナプス荷重ｗ１とのシナプス演算を行うことにより、時点ｔ０に対応するシナプス演算値を獲得する。
【００８８】
単一加算器８１０は、既設定の初期値０を被加数として入力され、時点ｔ０に対応するシナプス演算値を加数として入力され、既設定の初期値０を、以前キャリとして入力される。単一加算器８１０は、全ての入力が受信されれば、加算演算を行うことにより、加算値Ｓ０及びキャリＣ０を出力する。加算値Ｓ０は、マルチビットニューロモーフィック演算（マルチビット乗算演算）の結果を示すビットにおいて、ＬＳＢに該当する。また、キャリＣ０は、次に遂行される加算演算の以前キャリとして入力される。
【００８９】
図８Ｂを参照すれば、時点ｔ１及び時点ｔ２での過程について図示されている。
【００９０】
コントローラ１１２４は、時点ｔ１において、単一ニューロン回路１１２３に軸索ａ１を割り当て、単一シナプス回路１１２２にシナプス荷重ｗ２を割り当てる。シナプス８０１は、シナプス荷重ｗ２が保存された場合、軸索ａ１とシナプス荷重ｗ２とのシナプス演算を行うことにより、時点ｔ１に対応するシナプス演算値を獲得する。単一加算器８１０は、キャリＣ０及び時点ｔ１に対応するシナプス演算値を入力される。
【００９１】
コントローラ１１２４は、時点ｔ２において、単一ニューロン回路１１２３に軸索ａ２を割り当て、単一シナプス回路１１２２にシナプス荷重ｗ１を割り当てる。シナプス８０１は、シナプス荷重ｗ１が保存された場合、軸索ａ２とシナプス荷重ｗ１とのシナプス演算を行うことにより、時点ｔ２に対応するシナプス演算値を獲得する。
【００９２】
単一加算器８１０は、キャリＣ０、時点ｔ１に対応するシナプス演算値、及び時点ｔ２に対応するシナプス演算値の全ての入力が受信された場合、加算演算を行うことにより、加算値Ｓ１及びキャリＣ１を出力する。加算値Ｓ１は、マルチビットニューロモーフィック演算（マルチビット乗算演算）の結果を示すビットにおいて、下位２番目ビットのビット値に該当する。また、キャリＣ１は、次に行われる加算演算の以前キャリとして入力される。
【００９３】
図８Ｃは、時点ｔ３及び時点ｔ４での過程について図示している。
【００９４】
コントローラ１１２４は、時点ｔ３において、単一ニューロン回路１１２３に軸索ａ１を割り当て、単一シナプス回路１１２２にシナプス荷重ｗ３を割り当てる。シナプス８０３は、時点ｔ３に対応するシナプス演算値を獲得し、単一加算器８１０は、キャリＣ１、及び時点ｔ３に対応するシナプス演算値を入力される。
【００９５】
コントローラ１１２４は、時点ｔ４において、単一ニューロン回路１１２３に軸索ａ２を割り当て、単一シナプス回路１１２２にシナプス荷重ｗ２を割り当てる。シナプス８０４は、時点ｔ４に対応するシナプス演算値を獲得する。
【００９６】
単一加算器８１０は、キャリＣ１、時点ｔ３に対応するシナプス演算値、及び時点ｔ４に対応するシナプス演算値の全ての入力が受信された場合、加算演算を行うことにより、加算値Ｐ０及びキャリＣ２を出力する。加算値Ｐ０は、単一加算器８１０が、ｔ５時間において、次の加算演算を行うための入力として利用される。また、キャリＣ２は、次に行われる加算演算の以前キャリとして入力される。
【００９７】
図８Ｄを参照すれば、時点ｔ５における過程について図示されている。
【００９８】
コントローラ１１２４は、時点ｔ５において、単一ニューロン回路１１２３に軸索ａ３を割り当て、単一シナプス回路１１２２にシナプス荷重ｗ１を割り当てる。シナプス８０５は、時点ｔ５に対応するシナプス演算値を獲得する。
【００９９】
単一加算器８１０は、時点ｔ５に対応するシナプス演算値、以前に獲得された加算値Ｐ０、及び既設定のキャリ０の全ての入力が受信された場合、加算演算を行うことにより、加算値Ｓ２及びキャリＣ３を出力する。加算値Ｓ２は、マルチビットニューロモーフィック演算（マルチビット乗算演算）の結果を示すビットにおいて、下位３番目ビットのビット値に該当する。また、キャリＣ３は、次に行われる加算演算の以前キャリとして入力される。
【０１００】
図８Ｅを参照すれば、時点ｔ６における過程について図示されている。
【０１０１】
コントローラ１１２４は、時点ｔ６において、単一ニューロン回路１１２３に軸索ａ２を割り当て、単一シナプス回路１１２２にシナプス荷重ｗ３を割り当てる。シナプス８０６は、時点ｔ６に対応するシナプス演算値を獲得する。
【０１０２】
単一加算器８１０は、時点ｔ６に対応するシネブティック演算値、既設定の初期値０及びキャリＣ２の全ての入力が受信された場合、加算演算を行うことにより、加算値Ｐ１及びキャリＣ４を出力する。加算値Ｐ１は、単一加算器８１０が、ｔ７時間において、次の加算演算を行うための入力として利用される。また、キャリＣ４は、次に行われる加算演算の以前キャリとして入力される。
【０１０３】
図８Ｆを参照すれば、時点ｔ７における過程について図示されている。
【０１０４】
コントローラ１１２４は、時点ｔ７において、単一ニューロン回路１１２３に軸索ａ３を割り当て、単一シナプス回路１１２２にシナプス荷重ｗ２を割り当てる。シナプス８０７は、時点ｔ７に対応するシナプス演算値を獲得する。
【０１０５】
単一加算器８１０は、時点ｔ７に対応するシナプス演算値、以前に獲得された加算値Ｐ１、及びキャリＣ３の全ての入力が受信された場合、加算演算を行うことにより、加算値Ｓ３及びキャリＣ５を出力する。加算値Ｓ３は、マルチビットニューロモーフィック演算（マルチビット乗算演算）の結果を示すビットにおいて、下位４番目ビットのビット値に該当する。また、キャリＣ５は、次に行われる加算演算の以前キャリとして入力される。
【０１０６】
図８Ｇを参照すれば、時点ｔ８における過程について図示されている。
【０１０７】
コントローラ１１２４は、時点ｔ８において、単一ニューロン回路１１２３に軸索ａ３を割り当て、単一シナプス回路１１２２にシナプス荷重ｗ３を割り当てる。シナプス８０８は、時点ｔ８に対応するシナプス演算値を獲得する。
【０１０８】
単一加算器８１０は、時点ｔ８に対応するシナプス演算値、キャリＣ４及びキャリＣ５の全ての入力が受信された場合、加算演算を行うことにより、加算値Ｓ４及びキャリＳ５を出力する。加算値Ｓ４及びキャリＣ５それぞれは、マルチビットニューロモーフィック演算（マルチビット乗算演算）の結果を示すビットにおいて、下位５番目ビット及び下位６番目ビットのビット値に該当する。
【０１０９】
以上で説明されたように、単一ニューロン回路１１２３に含まれた単一加算器８１０は、加算演算を行うために、毎時点ごとに再使用される。すなわち、単一加算器８１０は、全ての入力が受信されれば、加算演算を行い、次の加算演算遂行のために、以前加算演算結果（例えば、加算値、キャリなど）を、単一加算器８１０に連結されたメモリ（バッファ、レジスタなど）に保存することができる。メモリに保存された以前の加算演算結果は、次の加算演算が行われる前にリセットされて再使用される。すなわち、本実施形態によるニューロモーフィックプロセッサ１１２は、単一加算器８１０の再使用を介して、マルチビット乗算演算を行うことができるので、ニューロモーフィックプロセッサを具現するための回路面積が低減される。
【０１１０】
図９は、図８Ａないし図８Ｇで説明された過程を要約して説明するための図面である。
【０１１１】
前述のように、ニューロモーフィックプロセッサ１１２のコントローラ１１２４は、マルチビットニューロモーフィック演算結果を、下位ビット値から上位ビット値まで順次に獲得するために、単一軸索回路１１２１に、毎時点（例えば、時点ｔ０から時点ｔ８まで）ごとに割り当てられる軸索５１０の下位ｉ番目ビットの第１入力、及び単一シナプス回路１１２２に、毎時点（例えば、時点ｔ０から時点ｔ８まで）ごとに割り当てられるシナプス荷重５２０の下位ｊ番目ビットの第２入力を決定する。単一シナプス回路１１２２は、単一シナプス回路１２２に第２入力が保存された場合、第１入力と第２入力とのシナプス演算値を出力する。単一ニューロン回路１１２３は、単一シナプス回路１１２２から出力されたシナプス演算値に基づいて、軸索５１０とシナプス荷重５２０とのマルチビットニューロモーフィック演算結果の各ビット値Ｓ５，Ｓ４，Ｓ３，Ｓ２，Ｓ１及びＳ０を獲得する。すなわち、ニューロモーフィックプロセッサ１１２は、演算順序及び演算時間を調整することにより、マルチビット被演算子のマルチビット乗算演算が可能である。
【０１１２】
一方、図９のマルチビットニューロモーフィック演算結果Ｓ５Ｓ４Ｓ３Ｓ２Ｓ１Ｓ０の各ビット値は、図６Ａないし図７Ｂで説明されたマルチビットニューロモーフィック演算結果ＰＱＲＳＴＵの各ビット値に対応する。また、図８Ａないし図９で説明されたｔ０ないしｔ８それぞれに対応するシネブティック演算値は、図６Ｃで説明された中間積６３３，６３４及び６３５の各ビット値に対応する。
【０１１３】
図１０Ａないし図１０Ｅは、一実施形態により、ニューロモーフィックプロセッサにおいて、３ビットｘ３ビット乗算演算を処理した結果について説明するための図面である。
【０１１４】
図１０Ａを参照すれば、３ビットシナプス荷重０１１２と３ビット軸索１０１２とのマルチビット乗算演算を、前述の方式によって行えば、００１１１１２の６ビット乗算結果が獲得される。図１０Ｂを参照すれば、３ビットシナプス荷重１１１２と３ビット軸索１１１２とのマルチビット乗算演算を、前述の方式によって行えば、１１０００１２の６ビット乗算結果が獲得される。図１０Ｃを参照すれば、３ビットシナプス荷重１１１２と３ビット軸索００１２とのマルチビット乗算演算を、前述の方式によって行えば、０００１１１２の６ビット乗算結果が獲得される。図１０Ｄを参照すれば、３ビットシナプス荷重１１１２と３ビット軸索０００２とのマルチビット乗算演算を、前述の方式によって行えば、００１１１０２の６ビット乗算結果が獲得される。図１０Ｅを参照すれば、３ビットシナプス荷重００１２と３ビット軸索１００２とのマルチビット乗算演算を前述の方式によって行えば、０００１００２の６ビット乗算結果が獲得される。
【０１１５】
すなわち、ニューロモーフィックプロセッサ１１２は、前述の軸索及びシナプス荷重のビット値分配と時分割処理とにより、マルチビットニューロモーフィック演算（マルチビット乗算演算）を行うことができる。
【０１１６】
図１１は、一実施形態により、ニューロモーフィックプロセッサにおいて、３ビットｘ２ビット乗算演算を処理した結果について説明するための図面である。これまで、マルチビットニューロモーフィック演算は、説明の便宜のために、３ビットｘ３ビットの乗算演算を例として挙げた。しかし、ニューロモーフィックプロセッサ１１２は、それ以外にも、多様なビットの乗算演算を、前述の軸索及びシナプス荷重のビット値分配と時分割処理とによって行うことができるという点は、当該技術分野の当業者であるならば、容易に理解することができるであろう。
【０１１７】
図１１を参照すれば、３ビットシナプス荷重１１１２と２ビット軸索０１２とのマルチビット乗算演算を、前述の方式によって行えば、００１１１２の５ビット乗算結果が獲得される。
【０１１８】
図１２は、一実施形態により、ニューロモーフィックプロセッサにおいて、４ビットｘ４ビット乗算演算を処理した結果について説明するための図面である。図１２を参照すれば、４ビットシナプス荷重０１０１２と４ビット軸索１０１０２とのマルチビット乗算演算を、前述の方式によって行えば、００１１００１０２の８ビット乗算結果が獲得される。
【０１１９】
一方、ニューラルネットワークにおいては、レイヤごとに、演算精度が互いに異なり、またニューラルネットワークを並列処理するプロセッサコアごとに、演算精度が互いに異なりもする。そのとき、本実施形態によるニューロモーフィックプロセッサ１１２は、当該演算精度に基づく軸索及びシナプス荷重のビット値分配と時分割処理とのスケジューリングを行うことにより、ニューラルネットワークの実行に必要な多様な演算精度のデータを、ハードウェア構成の変更なしに処理することができる。
【０１２０】
図１３は、一実施形態によるニューロモーフィックプロセッサのハードウェア資源と、従来のニューロモーフィックプロセッサのハードウェア資源とを比較して説明するための図面である。
【０１２１】
図１３を参照すれば、図７Ｃで説明された方式を利用する従来のニューロモーフィックプロセッサにおいては、ニューロン回路に具備されたビットカウンタ（bit counter）１３０１を利用して受信されたシナプス演算値に係わる加算（addition）または積分（integration）が行われた。ただし、ビットカウンタ１３０１を利用する従来のニューロモーフィックプロセッサは、マルチビットニューロモーフィック演算（マルチビット乗算演算）の遂行が不可能であった。一方、マルチビット乗算演算のために、ニューロン回路に具備された乗算器回路１３０２を利用する従来のニューロモーフィックプロセッサもあった。
【０１２２】
しかし、そのような従来ニューロモーフィックプロセッサのハードウェア資源と、本実施形態によるニューロモーフィックプロセッサ１１２のハードウェア資源とを比較すれた、本実施形態によるニューロモーフィックプロセッサ１１２は、従来ニューロモーフィックプロセッサと異なり、少ない回路素子を利用し、小面積でも回路具現が可能であると共に、マルチビット乗算演算が可能である。
【０１２３】
図１４は、一実施形態によるニューロモーフィック装置において、マルチビットニューロモーフィック演算を処理する方法のフローチャートである。図１４を参照すれば、ニューロモーフィック装置のマルチビットニューロモーフィック演算の処理方法は、前述のニューロモーフィック装置において、時系列的に処理される段階によって構成される。従って、以下で省略された内容であるとしても、前述の図面で記述された内容は、図１４の方法にも適用される。
【０１２４】
１４０１段階において、ニューロモーフィック装置１００のコントローラ１１２４は、単一軸索回路１１２１に、毎時点ごとに割り当てられるｎビット軸索の下位ｉ番目ビットの第１入力、及び単一シナプス回路１１２２に、毎時点ごとに割り当てられるｍビットシナプス荷重の下位ｊ番目ビットの第２入力を決定する。そのとき、コントローラ１１２４は、マルチビットニューロモーフィック演算結果が、下位ビット値から上位ビット値まで順次に獲得されるまで、毎時点ごとに割り当てられる第１入力及び第２入力を反復的に決定することができる。
【０１２５】
１４０２段階において、単一軸索回路１１２１は、決定された第１入力を受信する。
１４０３段階において、単一シナプス回路１１２２は、決定された第２入力が保存された場合、第１入力と第２入力とのシナプス演算値を出力する。
【０１２６】
１４０４段階において、単一ニューロン回路１１２３は、出力されたシナプス演算値に基づいて、軸索とシナプス荷重とのマルチビットニューロモーフィック演算結果の各ビット値を獲得する。
【０１２７】
図１５は、一部実施形態による電子システムの構成を示すブロック図である。
【０１２８】
図１５を参照すれば、電子システム１５００は、ニューラルネットワークを基に、入力データをリアルタイムで分析し、有効な情報を抽出し、抽出された情報を基に、状況判断を行ったり、電子システム１５００が搭載される電子デバイスの構成を制御したりすることができる。例えば、電子システム１５００は、ドローン（drone）、先端運転支援システム（ＡＤＡＳ：advanced drivers assistance system）のようなロボット装置、スマートＴＶ（television）、スマートフォン、医療デバイス、モバイルデバイス、映像表示デバイス、計測デバイス、ＩｏＴデバイスなどにも適用され、それ以外にも、多種の電子デバイスのうち少なくとも一つにも搭載される。
【０１２９】
電子システム１５００は、プロセッサ１５１０、ＲＡＭ １５２０、ニューロモーフィック装置１５３０、メモリ１５４０、センサモジュール１５５０及び通信モジュール１５６０を含んでもよい。電子システム１５００は、入出力モジュール、保安モジュール、電力制御装置などをさらに含んでもよい。電子システム１５００のハードウェア構成のうち一部は、少なくとも１つの半導体チップにも搭載される。
【０１３０】
プロセッサ１５１０は、電子システム１５００の全般的な動作を制御する。プロセッサ１５１０は、１つのプロセッサコア（single core）を含むか、あるいは複数のプロセッサコア（multi-core）を含んでもよい。プロセッサ１５１０は、メモリ１５４０に保存されたプログラム及び／またはデータを処理または実行することができる。一部実施形態において、プロセッサ１５１０は、メモリ１５４０に保存されたプログラムを実行することにより、ニューロモーフィック装置１５３０の機能を制御することができる。プロセッサ１５１０は、ＣＰＵ、ＧＰＵ、ＡＰなどによっても具現される。
【０１３１】
ＲＡＭ １５２０は、プログラム、データまたは命令（instructions）を一時的に保存することができる。例えば、メモリ１５４０に保存されたプログラム及び／またはデータは、プロセッサ１５１０の制御または起動コードにより、ＲＡＭ １５２０に一時的にも保存される。ＲＡＭ １５２０は、ＤＲＡＭまたはＳＲＡＭなどのメモリによっても具現される。
【０１３２】
ニューロモーフィック装置１５３０は、受信される入力データを基に、ニューラルネットワークの演算を行い、遂行結果を基に、情報信号を生成することができる。ニューラルネットワークは、ＣＮＮ、ＲＮＮ、ＦＮＮ、Deep Belief Networks、Restricted Boltzman Machinesなどを含んでもよいが、それらに制限されるものではない。ニューロモーフィック装置１５３０は、ニューラルネットワーク専用ハードウェア加速器自体またはそれを含む装置であり、前述のニューロモーフィック装置１００（図４）にも該当する。
【０１３３】
該情報信号は、音声認識信号、事物認識信号、映像認識信号、生体情報認識信号のような多種の認識信号のうち一つを含んでもよい。例えば、ニューロモーフィック装置１５３０は、ビデオストリームに含まれるフレームデータを入力データとして受信し、フレームデータから、フレームデータが示すイメージに含まれた事物に係わる認識信号を生成することができる。しかし、それに制限されるのではなく、電子システム１５００が搭載された電子装置の種類または機能により、ニューロモーフィック装置１５３０は、多種の入力データを受信することができ、該入力データによる認識信号を生成することができる。
【０１３４】
メモリ１５４０は、データを保存するための保存場所であり、ＯＳ（operating system）、各種プログラム及び各種データを保存することができる。一実施形態において、メモリ１５４０は、ニューロモーフィック装置１５３０の演算遂行過程で生成される中間結果を保存することができる。
【０１３５】
メモリ１５４０は、ＤＲＡＭでもあるが、それに限定されるものではない。メモリ１５４０は、揮発性メモリまたは不揮発性メモリのうち少なくとも一つを含んでもよい。不揮発性メモリは、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、ＰＲＡＭ、ＭＲＡＭ、ＲＲＡＭ（登録商標）、ＦＲＡＭ（登録商標）などを含む。揮発性メモリはＤＲＡＭ、ＳＲＡＭ、ＳＤＲＡＭなどを含む。一実施形態において、メモリ１５４０は、ＨＤＤ、ＳＳＤ、ＣＦ、ＳＤ、Micro−ＳＤ、Mini−ＳＤ、ｘＤまたはmemory stickのうち少なくとも一つを含んでもよい。
【０１３６】
センサモジュール１５５０は、電子システム１５００が搭載される電子装置周辺の情報を収集することができる。センサモジュール１５５０は、電子装置の外部から信号（例えば、映像信号、音声信号、磁気信号、生体信号、タッチ信号など）をセンシングまたは受信し、センシングまたは受信された信号をデータに変換することができる。そのために、センサモジュール１５５０は、センシング装置、例えば、マイク、撮像装置、イメージセンサ、ライダ（ＬＩＤＡＲ：light detection and ranging）センサ、超音波センサ、赤外線センサ、バイオセンサ及びタッチセンサのような多種のセンシング装置のうち少なくとも一つを含んでもよい。
【０１３７】
センサモジュール１５５０は、変換されたデータを、ニューロモーフィック装置１５３０に入力データとして提供することができる。例えば、センサモジュール１５５０は、イメージセンサを含んでもよく、電子装置の外部環境を撮影してビデオストリームを生成させ、ビデオストリームの連続するデータフレームを、ニューロモーフィック装置１５３０に入力データとして順に提供することができる。しかし、それに制限されるのではなく、センサモジュール１５５０は、多種のデータをニューロモーフィック装置１５３０に提供することができる。
【０１３８】
通信モジュール１５６０は、外部デバイスと通信することができる多様な有線または無線のインターフェースを具備することができる。例えば、通信モジュール１５６０は、有線近距離通信網（例：ＬＡＮ：local area network）；Ｗｉ−Ｆｉ（wireless fidelity）のような無線近距離通信網（ＷＬＡＮ：wireless local area network）；ブルートゥース（登録商標）（Bluetooth（登録商標））のような無線個人通信網（ＷＰＡＮ：wireless personal area network）；無線ＵＳＢ（wireless universal serial bus）、Zigbee、ＮＦＣ（near field communication）、ＲＦＩＤ（radio frequency identification））、ＰＬＣ（power line communication）、または３Ｇ（３ｒｄ generation）・４Ｇ（４th generation）・ＬＴＥ（long-term evolution）のような移動通信網（mobile cellular network）に接続可能な通信インターフェースなどを含んでもよい。
【０１３９】
なお、前述の実施形態は、コンピュータで実行されるプログラムで作成可能であり、コンピュータで読み取り可能な記録媒体を利用し、前記プログラムを動作させる汎用デジタルコンピュータでも具現される。また、前述の実施形態で使用されたデータの構造は、コンピュータで読み取り可能な記録媒体に、多くの手段を介しても記録される。前記コンピュータで読み取り可能な記録媒体は、マグネチック記録媒体（例えば、ＲＯＭ、フロッピーディスク、ハードディスクなど）、光学的判読媒体（例えば、ＣＤ−ＲＯＭ（compact disc read only memory）、ＤＶＤ（digital versatile disc）など）のような記録媒体を含む。
【０１４０】
以上、技術的内容について、望ましい実施形態を中心に説明したが、当該技術分野で当業者であるならば、技術の本質的な特性から外れない範囲で変形された形態に、本実施形態が具現されるということを理解することができるであろう。従って、開示された実施形態は、限定的な観点ではなく、説明的な観点から考慮されなければならない。権利範囲は、前述の説明ではなく、特許請求の範囲に示されており、それと同等な範囲内にある全ての差異は、本実施形態に含まれたものであると解釈されなければならないのである。
【０１４１】
上述の、ニューロモーフィック装置、及びニューロモーフィック装置でマルチビットニューロモーフィック演算を処理する方法は、例えば、ニューラルネットワーク関連の技術分野に効果的に適用可能である。
【符号の説明】
【０１４２】
30  ニューロモーフィックプロセッサ
100  ニューロモーフィック装置
110  ニューロモーフィックチップ
120  外部メモリ
310  単一軸索回路
320  単一シナプス回路
330  単一ニューロン回路
710  仮想シナプスアレイ
720  仮想シナプスアレイ
800  シナプス
810  単一加算器
1500  電子システム
1510  プロセッサ
1520  ＲＡＭ
1530  ニューロモーフィック装置
1540  メモリ
1550  センサモジュール
1560  通信モジュール
【図１】
2020038655.tif 000003
【図２】
2020038655.tif 000004
【図３Ａ】
2020038655.tif 000005
【図３Ｂ】
2020038655.tif 000006
【図４】
2020038655.tif 000007
【図５】
2020038655.tif 000008
【図６Ａ】
2020038655.tif 000009
【図６Ｂ】
2020038655.tif 000010
【図６Ｃ】
2020038655.tif 000011
【図６Ｄ】
2020038655.tif 000012
【図７Ａ】
2020038655.tif 000013
【図７Ｂ】
2020038655.tif 000014
【図７Ｃ】
2020038655.tif 000015
【図８Ａ】
2020038655.tif 000016
【図８Ｂ】
2020038655.tif 000017
【図８Ｃ】
2020038655.tif 000018
【図８Ｄ】
2020038655.tif 000019
【図８Ｅ】
2020038655.tif 000020
【図８Ｆ】
2020038655.tif 000021
【図８Ｇ】
2020038655.tif 000022
【図９】
2020038655.tif 000023
【図１０Ａ】
2020038655.tif 000024
【図１０Ｂ】
2020038655.tif 000025
【図１０Ｃ】
2020038655.tif 000026
【図１０Ｄ】
2020038655.tif 000027
【図１０Ｅ】
2020038655.tif 000028
【図１１】
2020038655.tif 000029
【図１２】
2020038655.tif 000030
【図１３】
2020038655.tif 000031
【図１４】
2020038655.tif 000032
【図１５】
2020038655.tif 000033