(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-20
(45)【発行日】2024-06-28
(54)【発明の名称】ニューロモーフィック装置、及びニューロモーフィック装置でマルチビットニューロモーフィック演算を処理する方法
(51)【国際特許分類】
G06N 3/063 20230101AFI20240621BHJP
【FI】
G06N3/063
(21)【出願番号】P 2019159423
(22)【出願日】2019-09-02
【審査請求日】2022-08-12
(31)【優先権主張番号】10-2018-0104736
(32)【優先日】2018-09-03
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100154922
【氏名又は名称】崔 允辰
(74)【代理人】
【氏名又は名称】木内 敬二
(72)【発明者】
【氏名】金 成浩
(72)【発明者】
【氏名】金 載興
(72)【発明者】
【氏名】李 載昊
【審査官】福西 章人
(56)【参考文献】
【文献】特開平07-210533(JP,A)
【文献】特開平04-195423(JP,A)
【文献】特開2004-318670(JP,A)
【文献】特表2001-507772(JP,A)
【文献】特開平06-259585(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
マルチビットニューロモーフィック演算を処理するニューロモーフィック装置において、
nビット軸索(axon)の下位i番目ビットの第1入力を受信する単一軸索回路と、
mビットシナプス荷重の下位j番目ビットの第2入力を保存し、前記第1入力と前記第2入力とのシナプス演算値を出力する単一シナプス回路と、
前記出力されたシナプス演算値に基づいて、前記軸索と前記シナプス荷重とのマルチビットニューロモーフィック演算結果の各ビット値を獲得する単一ニューロン回路と、
前記マルチビットニューロモーフィック演算結果を、下位ビット値から上位ビット値まで順次に獲得するために、前記単一軸索回路及び前記単一シナプス回路それぞれに、毎時点ごとに割り当てられる前記下位i番目ビットの前記第1入力、及び前記下位j番目ビットの前記第2入力を決定するコントローラを含み、
前記n及び前記mは、自然数であり、前記iは、1以上であり、前記n以下の自然数であり、前記jは、1以上であり、前記m以下の自然数であり、
前記単一ニューロン回路は、
互いに異なる時点において、前記単一ニューロン回路から出力されたシナプス演算値を利用して加算演算を行う単一加算器を含み、
前記単一加算器は、前記互いに異なる時点の以前時点のシナプス演算に対応す
る出力キャリ値を受信するように構成されるニューロモーフィック装置。
【請求項2】
前記コントローラは、
前記下位i番目ビット及び前記下位j番目ビットが、前記毎時点それぞれで互いに異なるように組み合わされるように、前記i及び前記jをマッピングすることを特徴とする請求項1に記載のニューロモーフィック装置。
【請求項3】
前記コントローラは、
前記単一軸索回路及び前記単一シナプス回路それぞれに、前記i及び前記jの和が最も小さいようにマッピングされた前記下位i番目ビット、及び前記下位j番目ビットの組み合わせから、前記i及び前記jの和が最も大きいようにマッピングされた前記下位i番目ビット、及び前記下位j番目ビットの組み合わせまで、順次に割り当てられるように、前記i及び前記jの値を変更することを特徴とする請求項2に記載のニューロモーフィック装置。
【請求項4】
前記下位i番目ビット、及び前記下位j番目ビットの組み合わせの総個数は、前記n及び前記mを乗じた値に対応することを特徴とする請求項2に記載のニューロモーフィック装置。
【請求項5】
前記単一軸索回路及び前記単一シナプス回路それぞれは、単一ビットの値を処理する回路であることを特徴とする請求項1に記載のニューロモーフィック装置。
【請求項6】
前記単一ニューロン回路は、
前記単一加算器を利用し、既設定の初期値、以前時点において、前記単一シナプス回路から出力されたシナプス演算値、現在時点において、前記単一シナプス回路から出力されたシナプス演算値、以前時点において、前記単一加算器によって処理された加算値、及び以前時点において、前記単一加算器によって決定されたキャリ(carry value)値のうち1以上を入力にする加算演算を行うことにより、前記マルチビットニューロモーフィック演算結果の前記各ビット値を獲得することを特徴とする請求項1に記載のニューロモーフィック装置。
【請求項7】
前記単一加算器から出力される加算値及びキャリのうち少なくとも一つは、前記マルチビットニューロモーフィック演算結果を示すビットのうちいずれか1つのビットの値に対応することを特徴とする請求項1に記載のニューロモーフィック装置。
【請求項8】
前記単一加算器は、
前記マルチビットニューロモーフィック演算結果を示すビットのうちいずれか1つのビットの値が獲得された後、前記マルチビットニューロモーフィック演算結果を示すビットのうち他のビットの値を獲得するために再使用されることを特徴とする請求項1に記載のニューロモーフィック装置。
【請求項9】
前記単一加算器は、
前記マルチビットニューロモーフィック演算結果を獲得するための中間積の間に、同一ビット桁に対応するシナプス演算値を入力として受信することにより、前記加算演算を行うことを特徴とする請求項1に記載のニューロモーフィック装置。
【請求項10】
前記コントローラは、
前記単一ニューロン回路により、前記マルチビットニューロモーフィック演算結果を示すビットが、最下位ビット(LSB)の値から最上位ビット(MSB)の値まで順次に獲得されるように、毎時点ごとに割り当てられる前記第1入力及び前記第2入力を決定することを特徴とする請求項1に記載のニューロモーフィック装置。
【請求項11】
前記単一ニューロン回路は、
前記マルチビットニューロモーフィック演算結果の各ビット値がいずれも獲得された場合、前記マルチビットニューロモーフィック演算結果を、既設定の臨界値と比較することにより、スパイクの出力いかんを判断することを特徴とする請求項1に記載のニューロモーフィック装置。
【請求項12】
ニューロモーフィック装置において、マルチビットニューロモーフィック演算を処理する方法において、
単一軸索(axon)回路に、毎時点ごとに割り当てられるnビット軸索の下位i番目ビットの第1入力、及び単一シナプス回路に、前記毎時点ごとに割り当てられるmビットシナプス荷重の下位j番目ビットの第2入力を決定する段階と、
前記単一軸索回路において、前記決定された第1入力を受信する段階と、
前記単一シナプス回路に、前記決定された第2入力が保存された場合、前記第1入力と前記第2入力とのシナプス演算値を出力する段階と、
単一ニューロン回路において、前記出力されたシナプス演算値に基づいて、前記軸索と前記シナプス荷重とのマルチビットニューロモーフィック演算結果の各ビット値を獲得する段階と、を含み、
前記決定する段階は、マルチビットニューロモーフィック演算結果が、下位ビット値から上位ビット値まで順次に獲得されるまで、前記毎時点ごとに割り当てられる前記第1入力及び前記第2入力を反復的に決定し、
前記n及び前記mは、自然数であり、前記iは、1以上であり、前記n以下の自然数であり、前記jは、1以上であり、前記m以下の自然数であり、
前記単一ニューロン回路は、
互いに異なる時点において、前記単一ニューロン回路から出力されたシナプス演算値を利用して加算演算を行う単一加算器を含み、
前記単一加算器は、前記互いに異なる時点の以前時点のシナプス演算に対応す
る出力キャリ値を受信するように構成される方法。
【請求項13】
前記決定する段階は、
前記下位i番目ビット及び前記下位j番目ビットが、前記毎時点それぞれにおいて、互いに異なるように組み合わされるように、前記i及び前記jをマッピングすることを特徴とする請求項12に記載の方法。
【請求項14】
前記決定する段階は、
前記単一軸索回路及び前記単一シナプス回路それぞれに、前記i及び前記jの和が最も小さいようにマッピングされた前記下位i番目ビット、及び前記下位j番目ビットの組み合わせから、前記i及び前記jの和が最も大きいようにマッピングされた前記下位i番目ビット、及び前記下位j番目ビットの組み合わせまで、順次に割り当てられるように、前記i及び前記jの値を変更することを特徴とする請求項13に記載の方法。
【請求項15】
前記下位i番目ビット、及び前記下位j番目ビットの組み合わせの総個数は、前記n及び前記mを乗じた値に対応することを特徴とする請求項13に記載の方法。
【請求項16】
前記獲得する段階は、
前記単一加算器を利用し、既設定の初期値、以前時点において、前記単一シナプス回路から出力されたシナプス演算値、現在時点において、前記単一シナプス回路から出力されたシナプス演算値、以前時点において、前記単一加算器によって処理された加算値、及び以前時点において、前記単一加算器によって決定されたキャリ値のうち1以上を入力にする加算演算を行うことにより、前記マルチビットニューロモーフィック演算結果の前記各ビット値を獲得することを特徴とする請求項12に記載の方法。
【請求項17】
前記単一加算器から出力される加算値及びキャリのうち少なくとも一つは、前記マルチビットニューロモーフィック演算結果を示すビットのうちいずれか1つのビットの値に対応することを特徴とする請求項12に記載の方法。
【請求項18】
前記獲得する段階は、
前記マルチビットニューロモーフィック演算結果を示すビットのうちいずれか1つのビットの値が獲得された場合、前記単一加算器を再使用することにより、前記マルチビットニューロモーフィック演算結果を示すビットのうち他のビットの値を獲得することを特徴とする請求項12に記載の方法。
【請求項19】
前記獲得する段階は、
前記マルチビットニューロモーフィック演算結果を獲得するための中間積の間に、同一ビット桁に対応するシナプス演算値を、前記単一加算器の入力として受信することにより、前記加算演算を行うことを特徴とする請求項12に記載の方法。
【請求項20】
前記決定する段階は、
前記単一ニューロン回路により、前記マルチビットニューロモーフィック演算結果を示すビットが、最下位ビット(LSB)の値から最上位ビット(MSB)の値まで順次に獲得されるように、毎時点ごとに割り当てられる前記第1入力及び前記第2入力を決定することを特徴とする請求項12に記載の方法。
【請求項21】
前記マルチビットニューロモーフィック演算結果の各ビット値がいずれも獲得された場合、前記単一ニューロン回路において、前記マルチビットニューロモーフィック演算結果を既設定の臨界値と比較することにより、スパイクの出力いかんを判断する段階をさらに含むことを特徴とする請求項12に記載の方法。
【請求項22】
請求項12ないし21のうちいずれか1項に記載の方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体。
【請求項23】
軸索(axon)回路と、
前記軸索回路と連結されたシナプス回路と、
前記シナプス回路に連結され、加算器を含むニューロン回路と、を含み、
前記ニューロン回路は、前記軸索回路に入力されるマルチビットアクチベーション入力と、前記シナプス回路に入力されるマルチビットシナプス荷重入力との乗算を、前記加算器を、時分割方式によって再使用することによって行い、
前記ニューロン回路は、
互いに異なる時点において、前記ニューロン回路から出力されたシナプス演算値を利用して加算演算を行う加算器を含み、
前記加算器は、前記互いに異なる時点の以前時点のシナプス演算に対応す
る出力キャリ値を受信するように構成されるニューロモーフィックプロセッサ。
【請求項24】
前記加算器は、全加算器であることを特徴とする請求項23に記載のニューロモーフィックプロセッサ。
【請求項25】
前記加算器は、単一加算器であることを特徴とする請求項23に記載のニューロモーフィックプロセッサ。
【請求項26】
前記ニューロモーフィックプロセッサは、
前記時分割方式を制御するコントローラをさらに含むことを特徴とする請求項23に記載のニューロモーフィックプロセッサ。
【請求項27】
軸索(axon)回路、前記軸索回路と連結されたシナプス回路、及び前記シナプス回路に連結され、加算器を含むニューロン回路を含むニューロモーフィックプロセッサと、
前記ニューロモーフィックプロセッサで処理されたデータを保存するメモリと、を含み、
前記ニューロモーフィックプロセッサは、前記軸索回路に入力されるマルチビットアクチベーション入力と、前記シナプス回路に入力されるマルチビットシナプス荷重入力との乗算を、前記ニューロン回路に含まれた前記加算器を、時分割方式によって再使用することによって行い、
前記ニューロン回路は、
互いに異なる時点において、前記ニューロン回路から出力されたシナプス演算値を利用して加算演算を行う加算器を含み、
前記加算器は、前記互いに異なる時点の以前時点のシナプス演算に対応す
る出力キャリ値を受信するように構成されるニューロモーフィック装置。
【請求項28】
前記ニューロモーフィックプロセッサは、
前記時分割方式により、前記加算器で処理される前記マルチビットアクチベーション入力の下位i番目ビット、及び前記マルチビットシナプス荷重入力の下位j番目ビットが互いに異なるように組み合わされるように決定するコントローラをさらに含むことを特徴とする請求項27に記載のニューロモーフィック装置。
【請求項29】
前記軸索回路及び前記シナプス回路それぞれは、
単一ビットの値を処理する単一軸索回路及び単一シナプス回路それぞれに該当することを特徴とする請求項27に記載のニューロモーフィック装置。
【請求項30】
前記メモリは、
前記軸索回路に提供される前記マルチビットアクチベーション入力、前記シナプス回路に提供される前記マルチビットシナプス荷重入力、及び前記乗算の演算結果を保存することを特徴とする請求項27に記載のニューロモーフィック装置。
【発明の詳細な説明】
【技術分野】
【0001】
後述の実施形態は、例えば、ニューロモーフィック装置、及びニューロモーフィック装置でマルチビットニューロモーフィック演算を処理する方法に関する。
【背景技術】
【0002】
人間の神経系に似ているニューロモーフィックプロセッサ(neuromorphic processor)への関心が高まっている。人間の神経系に存在するニューロン(neuron)とシナプス(synapse)とにそれぞれ対応する、ニューロン回路とシナプス回路とを設計し、ニューロモーフィックプロセッサを具現しようとする研究がなされてきた。そのようなニューロモーフィックプロセッサは、CNN(convolutional neural network)、RNN(recurrent neural network)、FNN(feedforward neural network)のような多様なニューラルネットワークを駆動するために利用され、データ分類(classification)またはイメージ認識(recognition)のような分野で活用される。
【発明の概要】
【発明が解決しようとする課題】
【0003】
従来より、ニューロモーフィック装置、及びニューロモーフィック装置でマルチビットニューロモーフィック演算を処理する方法を提供することが望まれていた。実施形態がなそうとする技術的課題は、前述のような技術的課題に限定されるものではなく、以下の実施形態から他の技術的課題が類推されるのである。
【課題を解決するための手段】
【0004】
一側面によれば、マルチビットニューロモーフィック演算を処理するニューロモーフィック装置は、nビット軸索(axon)の下位i番目ビットの第1入力を受信する単一軸索回路;mビットシナプス荷重の下位j番目ビットの第2入力を保存し、前記第1入力と前記第2入力とのシナプス演算値を出力する単一シナプス回路;前記出力されたシナプス演算値に基づいて、前記軸索と前記シナプス荷重とのマルチビットニューロモーフィック演算結果の各ビット値を獲得する単一ニューロン回路;及び前記マルチビットニューロモーフィック演算結果を、下位ビット値から上位ビット値まで順次に獲得するために、前記単一軸索回路及び前記単一シナプス回路それぞれに、毎時点ごとに割り当てられる前記下位i番目ビットの前記第1入力、及び前記下位j番目ビットの前記第2入力を決定するコントローラを含み、前記n及び前記mは、自然数であり、前記iは、1以上であり、前記n以下の自然数であり、前記jは、1以上であり、前記m以下の自然数である。
【0005】
他の側面によれば、ニューロモーフィック装置でマルチビットニューロモーフィック演算を処理する方法は、単一軸索回路に、毎時点ごとに割り当てられるnビット軸索の下位i番目ビットの第1入力、及び単一シナプス回路に、前記毎時点ごとに割り当てられるmビットシナプス荷重の下位j番目ビットの第2入力を決定する段階と、前記単一軸索回路で、前記決定された第1入力を受信する段階と、前記単一シナプス回路に、前記決定された第2入力が保存された場合、前記第1入力と前記第2入力とのシナプス演算値を出力する段階と、単一ニューロン回路で、前記出力されたシナプス演算値に基づいて、前記軸索と前記シナプス荷重とのマルチビットニューロモーフィック演算結果の各ビット値を獲得する段階と、を含み、前記決定する段階は、マルチビットニューロモーフィック演算結果が、下位ビット値から上位ビット値まで順次に獲得されるまで、前記毎時点ごとに割り当てられる前記第1入力及び前記第2入力を反復的に決定し、前記n及び前記mは、自然数であり、前記iは、1以上であり、前記n以下の自然数であり、前記jは、1以上であり、前記m以下の自然数である。
【0006】
さらに他の側面によれば、前記方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供する。
さらに他の側面によれば、軸索回路と、前記軸索回路と連結されたシナプス回路と、前記シナプス回路に連結され、加算器を含むニューロン回路と、を含み、前記ニューロン回路は、前記軸索回路に入力されるマルチビットアクチベーション入力と、前記シナプス回路に入力されるマルチビットシナプス荷重入力との乗算を、前記加算器を、時分割方式によって再使用することによって行うニューロモーフィックプロセッサを提供する。
【0007】
さらに他の側面によれば、軸索回路、前記軸索回路と連結されたシナプス回路、及び前記シナプス回路に連結され、加算器を含むニューロン回路を含むニューロモーフィックプロセッサと、前記ニューロモーフィックプロセッサで処理されたデータを保存するメモリと、を含み、前記ニューロモーフィックプロセッサは、前記軸索回路に入力されるマルチビットアクチベーション入力と、前記シナプス回路に入力されるマルチビットシナプス荷重入力との乗算を、前記ニューロン回路に含まれた前記加算器を、時分割方式によって再使用することによって行うニューロモーフィック装置を提供する。
【図面の簡単な説明】
【0008】
【
図1】生物学的ニューロンと、生物学的ニューロンの動作を模写した数学的モデルについて説明するための図面である。
【
図2】ニューロモーフィック演算を行うための二次元アレイ回路の構成について説明するための図面である。
【
図3A】一実施形態によるニューロモーフィック装置内ニューロモーフィックプロセッサの構成について説明するためのシンボルを図示した図面である。
【
図3B】一実施形態によるニューロモーフィックプロセッサの単一ニューロン回路の構成について説明するためのシンボルを図示した図面である。
【
図4】一実施形態によるニューロモーフィック装置のハードウェア構成を図示したブロック図である。
【
図5】一実施形態によるニューロモーフィックプロセッサの各単一回路の入力について説明するための図面である。
【
図6A】一実施形態により、ニューロモーフィック装置で遂行可能なマルチビットニューロモーフィック演算について説明するための図面である。
【
図6B】一実施形態により、マルチビットニューロモーフィック演算(すなわち、マルチビット乗算演算)を行うために被演算子を、軸索及びシナプス荷重にそれぞれマッピングすることについて説明するための図面である。
【
図6C】一実施形態により、マルチビットニューロモーフィック演算(すなわち、マルチビット乗算演算)の被演算子及び中間積を、時分割方式でニューロモーフィックプロセッサで処理することについて説明するための図面である。
【
図6D】一実施形態により、ニューロモーフィックプロセッサにおいて、マルチビットニューロモーフィック演算を時分割方式で処理するための仮想(virtual)シナプスアレイマッピングについて説明するための図面である。
【
図7A】一実施形態により、ニューロモーフィックプロセッサにおいて、マルチビットニューロモーフィック演算を処理するために、時分割方式で行われるシナプス演算の順序について説明するための図面である。
【
図7B】一実施形態により、ニューロモーフィックプロセッサにおいて、マルチビットニューロモーフィック演算を処理するために、時分割方式で行われるシナプス演算の順序について説明するための図面である。
【
図7C】従来のニューロモーフィックプロセッサで行われるシナプス演算の順序について説明するための図面である。
【
図8A】一実施形態により、ニューロモーフィックプロセッサが、時分割方式でマルチビットニューロモーフィック演算を行う過程について説明するための図面である。
【
図8B】一実施形態により、ニューロモーフィックプロセッサが、時分割方式でマルチビットニューロモーフィック演算を行う過程について説明するための図面である。
【
図8C】一実施形態により、ニューロモーフィックプロセッサが、時分割方式でマルチビットニューロモーフィック演算を行う過程について説明するための図面である。
【
図8D】一実施形態により、ニューロモーフィックプロセッサが、時分割方式でマルチビットニューロモーフィック演算を行う過程について説明するための図面である。
【
図8E】一実施形態により、ニューロモーフィックプロセッサが、時分割方式でマルチビットニューロモーフィック演算を行う過程について説明するための図面である。
【
図8F】一実施形態により、ニューロモーフィックプロセッサが、時分割方式でマルチビットニューロモーフィック演算を行う過程について説明するための図面である。
【
図8G】一実施形態により、ニューロモーフィックプロセッサが、時分割方式でマルチビットニューロモーフィック演算を行う過程について説明するための図面である。
【
図10A】一実施形態により、ニューロモーフィックプロセッサにおいて、3ビットx3ビット乗算演算を処理した結果について説明するための図面である。
【
図10B】一実施形態により、ニューロモーフィックプロセッサにおいて、3ビットx3ビット乗算演算を処理した結果について説明するための図面である。
【
図10C】一実施形態により、ニューロモーフィックプロセッサにおいて、3ビットx3ビット乗算演算を処理した結果について説明するための図面である。
【
図10D】一実施形態により、ニューロモーフィックプロセッサにおいて、3ビットx3ビット乗算演算を処理した結果について説明するための図面である。
【
図10E】一実施形態により、ニューロモーフィックプロセッサにおいて、3ビットx3ビット乗算演算を処理した結果について説明するための図面である。
【
図11】一実施形態により、ニューロモーフィックプロセッサにおいて、3ビットx2ビット乗算演算を処理した結果について説明するための図面である。
【
図12】一実施形態により、ニューロモーフィックプロセッサにおいて、4ビットx4ビット乗算演算を処理した結果について説明するための図面である。
【
図13】一実施形態によるニューロモーフィックプロセッサのハードウェア資源と、従来のニューロモーフィックプロセッサのハードウェア資源とを比較して説明するための図面である。
【
図14】一実施形態によるニューロモーフィック装置において、マルチビットニューロモーフィック演算を処理する方法のフローチャートである。
【
図15】一部実施形態による電子システムの構成を示すブロック図である。
【発明を実施するための形態】
【0009】
本実施形態で使用される用語は、本実施形態での機能を考慮しながら、可能な限り現在広く使用される一般的な用語を選択したが、それは、当技術分野の当業者の意図、判例、あるいは新たな技術の出現などによっても異なる。また、特定の場合には、任意に選定された用語もあり、その場合、当該実施形態の説明部分において、詳細にその意味を記載する。従って、本実施形態で使用される用語は、単純な用語の名称ではなく、その用語が有する意味と、本実施形態の全般にわたる内容とを基に定義されなければならない。
【0010】
本実施形態に係わる説明において、ある部分が他の部分と連結されているとするとき、それは、直接に連結されている場合だけではなく、その中間に、他の構成要素を挟んで電気的に連結されている場合も含む。また、ある部分がある構成要素を含むとするとき、それは、特別に反対となる記載がない限り、他の構成要素を除くものではなく、他の構成要素をさらに含んでもよいことを意味する。
【0011】
本実施形態で使用される「構成される」または「含む」というような用語は、明細書上に記載された多くの構成要素、または多くの段階を必ずしもいずれも含むものであると解釈されるものではなく、そのうち一部構成要素または一部段階は、含まれず、あるいは追加的な構成要素または段階をさらに含んでもよいと解釈されなければならない。
【0012】
また、本明細書で使用される「第1」または「第2」のように、序数を含む用語は、多様な構成要素についての説明に使用されるが、前記構成要素は、前記用語によって限定されるものではない。前記用語は、1つの構成要素を他の構成要素から区別する目的にも使用される。
【0013】
下記実施形態に係わる説明は、権利範囲を制限するものであると解釈されるものではなく、当該技術分野の当業者が容易に類推することができるものは、実施形態の権利範囲に属するものであると解釈されなければならないのである。以下、添付された図面を参照しながら、ただ例示のための実施形態について詳細に説明する。
【0014】
図1は、生物学的ニューロンと、生物学的ニューロンの動作を模写した数学的モデルと、について説明するための図面である。
【0015】
該生物学的ニューロンは、人間の神経系に存在する細胞を意味する。該生物学的ニューロンは、基礎的な生物学的計算個体の一つである。人間の頭脳は、およそ1,000億個ほどの生物学的ニューロンと、生物学的ニューロン間の100兆個ほどの連結(interconnect)とを含んでいる。
【0016】
図1を参照すれば、生物学的ニューロン10は、単一細胞である。生物学的ニューロン10は、細胞核(nucleus)、及び多様な細胞器官(organelles)を含む細胞体(neuron cell body)を含む。該多様な細胞器官は、ミトコンドリア、細胞体から放射される多数の樹状突起(dendrites)、及び多くの分岐拡張線(extension)で縦断する軸索突起(axon)を含む。
【0017】
一般的に、該軸索突起は、ニューロンから他のニューロンに信号を送信する機能を遂行し、該樹状突起は、他のニューロンから信号を受信する機能を遂行する。例えば、互いに異なるニューロンが連結されている場合、ニューロンが軸索突起を介して伝達した信号は、他のニューロンの樹状突起によって受信される。そのとき、ニューロン間において信号は、シナプス(synapse)と称される特化された連結を介して伝達され、さまざまなニューロンが互いに連結され、神経網(neural network)を形成する。シナプスを基準に神経伝達物質(neurotransmitter)を分泌するニューロンは、シナプス前ニューロン(pre-synaptic neuron)とも称され、神経伝達物質を介して伝達される情報を受けるニューロンは、シナプス後ニューロン(post-synaptic neuron)とも称される。
【0018】
一方、人間の頭脳は、多数のニューロンが互いに連結されて形成される神経網を介して、多様な信号を伝達して処理することにより、膨大な量の情報を学習して記憶することができる。人間の頭脳内のニューロン間の膨大な数の連結は、生物学的コンピュータの巨大並列属性(massively parallel nature)に直接係わるが、人工神経網を模写し、膨大な量の情報を効率的に処理するための多様な試みがなされてきた。例えば、人工神経網をニューロンレベルで具現するために設計されたコンピュータシステムとして、ニューロモーフィック装置が研究されている。
【0019】
一方、生物学的ニューロン10の動作は、数学的モデル11にも模写される。生物学的ニューロン10に対応する数学的モデル11は、ニューロモーフィック演算の一例であり、多数のニューロンからの情報に対して、シナプス荷重(synaptic weight)を乗ずる乗算演算、シナプス荷重が乗ぜられた値(ω0x0、ω1x1、ω2x2)に対する加算演算(Σ)、及び加算演算結果について、特性関数(b)及び活性関数(f)を適用する演算を含んでもよい。ニューロモーフィック演算により、ニューロモーフィック演算結果が提供される。ここで、x0、x1、x2、…のような値は、軸索値に該当し、ω0、ω1、ω2、…などの値は、シナプス荷重に該当する。
【0020】
図2は、ニューロモーフィック演算を行うための二次元アレイ回路の構成について説明するための図面である。
【0021】
図2を参照すれば、二次元アレイ回路の構成20は、N個(Nは、任意の自然数である)の軸索回路(A1ないしAN)210、M個(Mは、任意の自然数である)のニューロン回路(N1ないしNM)230、及びNxM個のシナプスアレイ(S11ないしSNM)220を含む。
【0022】
シナプスアレイ(S11ないしSNM)220の各シナプスは、軸索回路(A1ないしAN)210から第1方向に延長される第1方向ラインと、ニューロン回路(N1ないしNM)230から第2方向に延長される第2方向ラインとの交差点にも配置される。ここで、説明の便宜のために、第1方向は、行方向であり、第2方向は、列方向であるように図示されているが、それに制限されるものではなく、第1方向が列方向であり、第2方向が行方向であってもよい。
【0023】
軸索回路(A1ないしAN)210それぞれは、生物学的ニューロン10(
図1)の軸索突起を模写する回路を意味する。ニューロンの軸索突起は、ニューロンから他のニューロンに信号を送信する機能を遂行するので、ニューロンの軸索突起を模写する軸索回路(A1ないしAN)210それぞれは、アクチベーション(例えば、軸索a1,a2,…,aN)を入力され、第1方向ラインに伝達することができる。アクチベーションは、ニューロンを介して伝達される神経伝達物質に対応するものであり、軸索回路(A1ないしAN)210それぞれに入力される電気的信号を意味する。一方、軸索回路(A1ないしAN)210それぞれは、入力情報を保存するメモリ、レジスタまたはバッファを含んでもよい。一方、該アクチベーションは、バイナリ(binary)値を有するバイナリアクチベーションでもある。例えば、該バイナリアクチベーションは、論理値0または1に対応する1ビット情報を含んでもよい。ただし、必ずしもそれに制限されるものではなく、該アクチベーションは、ターナリ(ternary)値を有してもよく、マルチビット値を有してもい。
【0024】
シナプスアレイ(S11ないしSNM)220の各シナプスは、ニューロンとニューロンとの間のシナプスを模写する回路を意味する。シナプスアレイ(S11ないしSNM)220は、ニューロンとニューロンとの連結強度に対応するシナプス荷重を保存することができる。
図2においては、説明の便宜のために、各シナプスに保存されるシナプス荷重の例として、w1、w2、…、wMが図示されているが、各シナプスには、それ以外にも、他のシナプス荷重が保存されてもよい。シナプスアレイ(S11ないしSNM)220の各シナプスは、シナプス荷重を保存するためのメモリ素子を含むか、あるいはシナプス荷重を保存している他のメモリ素子にも連結される。ここで、そのようなメモリ素子は、例えば、メモリスタ(memrister)にも該当する。
【0025】
シナプスアレイ(S11ないしSNM)220それぞれは、対応する第1方向ラインを介し、軸索回路(A1ないしAN)210それぞれから伝達されるアクチベーション入力を受信することができ、保存されていたシナプス荷重とアクチベーション入力とのニューロモーフィック演算の結果を出力することができる。例えば、シナプス荷重とアクチベーション入力とのニューロモーフィック演算は、乗算演算(すなわち、AND演算)でもあるが、それに制限されるものではない。すなわち、シナプス荷重とアクチベーション入力とのニューロモーフィック演算の結果は、ニューロンとニューロンとの連結強度によって調節されるアクチベーションの強度または大きさを模写するための他の任意の適切な演算によって獲得される値でもある。
【0026】
シナプス荷重とアクチベーション入力とのニューロモーフィック演算により、軸索回路(A1ないしAN)210からニューロン回路(N1ないしNM)230に伝達される信号の大きさまたは強度が調節される。そのように、シナプスアレイ(S11ないしSNM)220を利用し、ニューロンとニューロンとの連結強度により、次のニューロンに伝達される信号の大きさまたは強度が調節される動作が模写される。
【0027】
ニューロン回路(N1ないしNM)230それぞれは、樹状突起を含むニューロンを模写する回路を意味する。ニューロンの樹状突起、は他のニューロンから信号を受信する機能を遂行するが、ニューロン回路(N1ないしNM)230それぞれは、対応する第2方向ラインを介して、シナプス荷重とアクチベーション入力とのニューロモーフィック演算の結果を受信することができる。ニューロン回路(N1ないしNM)230それぞれは、ニューロモーフィック演算の結果に基づいて、スパイク(spike)を出力するか否かということを決定することができる。例えば、ニューロン回路(N1ないしNM)それぞれは、ニューロモーフィック演算の結果を累積した値が、既設定の臨界値以上である場合、スパイクを出力することができる。ニューロン回路(N1ないしNM)230から出力されたスパイクは、次ステージの軸索回路に入力されるアクチベーションに対応する。
【0028】
一方、ニューロン回路(N1ないしNM)230は、シナプスアレイ(S11ないしSNM)220を基準に後端に位置するが、シナプス後ニューロン回路とも称され、軸索回路(A1ないしAN)210は、シナプスアレイ(S11ないしSNM)220を基準に前端に位置するが、シナプス前ニューロン回路とも称される。
【0029】
図3Aは、一実施形態によるニューロモーフィック装置内ニューロモーフィックプロセッサの構成について説明するためのシンボルを図示した図面である。
【0030】
図3Aを参照すれば、ニューロモーフィックプロセッサ30は、単一軸索回路310、単一シナプス回路320及び単一ニューロン回路330を含んでもよい。ここで、単一シナプス回路320は、外部の他のメモリデバイスに含まれたNxMシナプスメモリアレイ325からシナプス荷重を提供される。
【0031】
図2で説明された二次元アレイ(NxM)回路の構成20は、
図3Aに図示された単一軸索回路310、単一シナプス回路320及び単一ニューロン回路330を利用しても具現される。
図2の軸索回路(A1ないしAN)210は、単一軸索回路310に対応し、シナプスアレイ(S11ないしSNM)220は、単一シナプス回路320に対応し、単一ニューロン回路330は、ニューロン回路(N1ないしNM)230に対応する。
【0032】
図2の軸索回路(A1ないしAN)210のように動作されるために、ニューロモーフィックプロセッサ30において、単一軸索回路310は、時分割方式(time-division manner)で、軸索入力を処理する。また、同様に、
図2のシナプスアレイ(S11ないしSNM)220のように動作されるために、ニューロモーフィックプロセッサ30において、単一シナプス回路320も、時分割方式でシナプス荷重を保存する。
【0033】
具体的には、単一軸索回路310は、時点t1においては、
図2の軸索回路A1として動作され、単一軸索回路310は、時点t2においては、
図2の軸索回路A2として動作され、…、単一軸索回路310は、時点tNにおいては、
図2の軸索回路ANとしても動作される。そして、単一シナプス回路320は、時点t1-1時点においては、
図2のシナプスS11として動作され、単一シナプス回路320は、時点t1-2時点においては、
図2のシナプスS12で動作され、…、単一シナプス回路320は、時点tN-M時点においては、
図2のシナプスSNMとして動作される。一方、単一ニューロン回路330も、同一方式により、
図2のニューロン回路(N1ないしNM)230としても動作される。ここで、該時点は、いずれも任意の時点であり、時点の区分のために、互いに異なる参照記号によって説明された。
【0034】
そのように、単一軸索回路310、単一シナプス回路320及び単一ニューロン回路330それぞれが、時分割方式により、特定時点それぞれで動作されるのであるならば、単一回路(1x1)だけ具備されているとしても、複数の回路(NxM)が動作するようにも具現される。すなわち、
図2の二次元アレイ(NxM)回路の構成20は、時分割方式により、各単一回路を動作させることにより、単一回路(1x1)のニューロモーフィックプロセッサ30としても具現される。
【0035】
図3Bは、一実施形態によるニューロモーフィックプロセッサの単一ニューロン回路の構成について説明するためのシンボルを図示した図面である。
【0036】
図3Bを参照すれば、ニューロモーフィックプロセッサ30の単一ニューロン回路330は、単一加算器(single adder)321及び比較器323を含んでもよい。
【0037】
単一加算器321は、被加数B1、加数B2及び以前繰り上がり数(キャリ(carry value))C0の3つの入力、及び繰り上がりのない和S1、及び新たな繰り上がり数(キャリ)C1の2つの出力を有する組み合わせ回路を意味する。すなわち、単一加算器321は、全加算器(full adder)にも該当する。
【0038】
比較器323は、単一加算器321による加算結果C1S1と、既設定の臨界値とを比較する。ここで、既設定の臨界値は、次のニューロンにスパイクを出力するか否かということを判断するための基準に該当する。比較器323により、加算結果C1S1が既設定の臨界値以上であると判断された場合、単一ニューロン回路330は、スパイクを出力することができる。
【0039】
図4は、一実施形態によるニューロモーフィック装置のハードウェア構成を図示したブロック図である。
【0040】
図4を参照すれば、ニューロモーフィック装置100は、ニューロモーフィックプロセッサ112及びオンチップメモリ114が実装された(mounted)ニューロモーフィックチップ110と、外部メモリ120とを含む。ニューロモーフィックプロセッサ112は、単一軸索回路1121、単一シナプス回路1122、単一ニューロン回路1123及びコントローラ1124を含む。ただし、
図4に図示されたニューロモーフィック装置100には、本実施形態と係わる構成要素だけが図示されている。従って、ニューロモーフィック装置100には、
図4に図示された構成要素以外に、他の汎用的な構成要素、例えば、CPU(central processing unit)、GPU(graphics processing unit)、AP(application processor)、センサモジュール、通信モジュールなどがさらに含まれてもよいということは、当該技術分野の当業者であるならば、容易に理解することができるであろう。
【0041】
ニューロモーフィックプロセッサ112は、
図3Aのニューロモーフィックプロセッサ30に対応し、単一軸索回路1121は、
図3Aの単一軸索回路310に対応し、単一シナプス回路1122は、
図3Aの単一シナプス回路320に対応し、単一ニューロン回路1123は、
図3Aの単一ニューロン回路330に対応する。
ニューロモーフィックプロセッサ112は、
図3Aのニューロモーフィックプロセッサ30のように具現された単一プロセッシングユニット(または、単一プロセッサコア)を含んでもよいが、それに制限されるものではなく、ニューロモーフィックプロセッサ112は、それぞれが、
図3Aのニューロモーフィックプロセッサ30として具現された複数のプロセッシングユニット(または、プロセッサコア)を含んでもよい。
【0042】
ニューロモーフィック装置100は、PC(personal computer)、サーバデバイス、モバイルデバイス、埋め込みデバイスのような多種の電子デバイスに含まれた装置でもある。ニューロモーフィック装置100は、例えば、ニューラルネットワークを利用した音声認識、映像認識、映像分類などを行うスマートフォン、タブレットデバイス、AR(augmented reality)デバイス、IoT(internet of things)デバイス、自律走行自動車、ロボティクス、医療機器などに含まれたハードウェア構成にも該当する。すなわち、ニューロモーフィック装置100は、前述のような電子デバイスに搭載される専用ハードウェア加速器(HW accelerator)にも該当し、ニューロモーフィック装置100は、ニューラルネットワーク駆動のための専用モジュールであるNPU(neural processing unit)、TPU(Tensor processing unit)、Neural Engine、TrueNorth、Loihiのように動作するハードウェア加速器でもあるが、それらに制限されるものではない。
【0043】
ニューロモーフィックチップ110は、ニューロモーフィック装置100において、ニューラルネットワークを駆動するための全般的な機能を制御する役割を行う。例えば、ニューロモーフィックチップ110のニューロモーフィックプロセッサ112は、ニューロモーフィック装置100内の外部メモリ120に保存されたニューロモーフィックデータ(例えば、軸索入力値、シナプス荷重値など)にアクセスし、ニューロモーフィック関連プログラムを実行することにより、ニューロモーフィック装置100を全般的に制御する。一方、ニューロモーフィックチップ110は、ニューロモーフィック装置100の内部または外部に具備されたCPU、GPU、APなどの制御により、ニューラルネットワークを駆動することもできる。
【0044】
外部メモリ120は、ニューロモーフィックチップ110内で処理される各種ニューロモーフィックデータを保存するハードウェアであり、外部メモリ120は、ニューロモーフィックチップ110で処理されたデータ、及び処理されるデータを保存することができる。また、外部メモリ120は、ニューロモーフィックチップ110によって駆動されるアプリケーション、ドライバなどを保存することができる。外部メモリ120は、DRAM(dynamic random access memory)・SRAM(static random access memory)のようなRAM(random access memory)、ROM(read-only memory)、EEPROM(electrically erasable programmable read-only memory)、CD-ROM(compact disc read only memory)、ブルーレイ(Blu-ray(登録商標))、または他の光学ディスクストレージ、HDD(hard disk drive)、SSD(solid state drive)、またはフラッシュメモリを含んでもよい。
【0045】
ニューロモーフィックチップ110のオンチップメモリ114は、外部メモリ120から、シナプス前ニューロン回路のためのニューロモーフィックデータ(軸索値、シナプス値など)を読み取り、保存(または、バッファリング)し、保存されたニューロモーフィックデータを利用し、ニューラルネットワークを実行する。例えば、
図3Aで説明されたNxMシナプスメモリアレイ325は、オンチップメモリ114にも該当する。オンチップメモリ114は、ニューラルネットワークの実行結果として生成されたニューロモーフィック演算の結果、スパイク値のようなシナプス後ニューロン回路のためのデータを保存することもできる。
【0046】
ニューロモーフィックプロセッサ112の単一軸索回路1121、単一シナプス回路1122、単一ニューロン回路1123及びコントローラ1124の具体的な動作及び機能については、以下、他の図面を参照し、さらに詳細に説明する。
【0047】
図5は、一実施形態によるニューロモーフィックプロセッサの各単一回路の入力について説明するための図面である。
【0048】
図5を参照すれば、ニューロモーフィックプロセッサ112のコントローラ1124は、単一軸索回路1121に、毎時点ごとに割り当てられるnビット軸索510の下位i番目ビットの第1入力、及び単一シナプス回路1122に、毎時点ごとに割り当てられるmビットシナプス荷重520の下位j番目ビットの第2入力を決定する。ここで、n及びmは、自然数であり、iは、1以上n以下の自然数であり、jは、1以上m以下の自然数である。
【0049】
図5においては、説明の便宜のために、軸索510とシナプス荷重520とのそれぞれは、総3ビット(n=3、m=3)の値であると仮定して説明する。ただし、それに制限されるものではなく、本実施形態による軸索510とシナプス荷重520は、多様なビットの値を有することができる。
【0050】
コントローラ1124は、ある特定時点(例えば、時点tx)において、3ビット軸索(n=3)510の何番目ビット桁(すなわち、下位i番目ビット)のビット値を、第1入力として、単一軸索回路1121に割り当てるかということを決定する。すなわち、コントローラ1124は、iを決定することにより、時点txで割り当てられる第1入力を決定することができる。例えば、iは、1から3の値を有することができる。iが1である場合、下位1番目ビットの第1入力は、軸索510のLSB(least significant bit)のビット値に該当し、iが3である場合、下位3番目ビットの第1入力は、軸索510のMSB(most significant bit)のビット値に該当する。
【0051】
また、コントローラ1124は、ある特定時点(例えば、時点ty)において、3ビットシナプス荷重(m=3)520の何番目ビット桁(すなわち、下位j番目ビット)のビット値を、第2入力として、単一シナプス回路1122に割り当てるかということを決定する。すなわち、コントローラ1124は、jを決定することにより、時点tyで割り当てられる第2入力を決定することができる。例えば、jは、1から3の値を有することができる。jが1である場合、下位1番目ビットの第2入力は、シナプス荷重520のLSBのビット値に該当し、jが3の場合、下位3番目ビットの第2入力は、シナプス荷重520のMSBのビット値に該当する。
【0052】
前述のような方式により、コントローラ1124は、ニューロモーフィックプロセッサ112から最終的に出力されるマルチビットニューロモーフィック演算結果の下位ビット値から上位ビット値まで順次に獲得されるまで、毎時点ごとに、i値及びj値を変更させ、単一軸索回路1121及び単一シナプス回路1122それぞれに割り当てられる第1入力及び第2入力を反復的に決定する。ここで、該下位ビット値は、最終マルチビットニューロモーフィック演算結果のLSBのビット値を意味し、上位ビット値は、最終マルチビットニューロモーフィック演算結果のMSBのビット値を意味する。一方、第1入力及び第2入力の用語は、コントローラ1124によって決定されたビット桁の値を意味するのみ、毎時点において、コントローラ1124によって新たに更新される値を指す用語である。
【0053】
コントローラ1124は、下位i番目ビット及び下位j番目ビットが、毎時点それぞれにおいて、互いに異なるように組み合わされるように、i及びjをマッピングすることができる。例えば、コントローラ1124は、i及びjの和が最も小さいようにマッピングされた下位i番目ビット(例えば、LSB)及び下位j番目ビット(例えば、LSB)の組み合わせから、i及びjの和が最も大きいようにマッピングされた下位i番目ビット(例えば、MSB)及び下位j番目ビット(例えば、MSB)の組み合わせまで、単一軸索回路1121及び単一シナプス回路1122それぞれに順次に割り当てられるように、i及びjの値を変更してマッピングすることができる。そのとき、下位i番目ビット及び下位j番目ビットの組み合わせの総個数は、n及びmを乗じた値に対応し、
図5の例示においては、総9個(3x3)の組み合わせが存在する。例えば、コントローラ1124は、最初時点においては、軸索510のLSB(i=1)のビット値(第1入力)、及びシナプス荷重520のLSB(j=1)のビット値(第2入力)を最初にマッピングし、最後の時点においては、軸索510のMSB(i=3)のビット値(第1入力)、及びシナプス荷重520のMSB(j=3)のビット値(第2入力)を最後にマッピングして決定することができる。
【0054】
ニューロモーフィックプロセッサ112の単一軸索回路1121は、コントローラ1124によって決定された、nビット軸索510の下位i番目ビットの第1入力を受信する。また、ニューロモーフィックプロセッサ112の単一シナプス回路1122は、コントローラ1124によって決定された、mビットシナプス荷重520の下位j番目ビットの第2入力を保存する。
【0055】
単一軸索回路1121及び単一シナプス回路1122それぞれは、単一ビット値(すなわち、1ビット値)に対する処理が可能である回路である。従って、単一軸索回路1121及び単一シナプス回路1122それぞれは、軸索510のいずれの特定桁のビット値(第1入力)、及びシナプス荷重520のいずれの特定桁のビット値(第2入力)だけの処理を行うことができる。
【0056】
単一シナプス回路1122は、単一シナプス回路1122に、下位j番目ビットの第2入力が保存された場合、単一軸索回路1121で受信した第1入力と、単一シナプス回路122に保存された第2入力とのシナプス演算値を出力する。単一シナプス回路1122によって行われるシナプス演算は、第1入力と第2入力との乗算演算(すなわち、AND演算)でもあるが、それに制限されるものではない。
【0057】
ニューロモーフィックプロセッサ112の単一ニューロン回路1123は、単一シナプス回路1122から出力されたシナプス演算値に基づいて、nビット軸索510とmビットシナプス荷重520とのマルチビットニューロモーフィック演算結果の各ビット値を獲得する。それについては、以下、当該図面でもって、さらに詳細に説明する。
【0058】
図6Aは、一実施形態により、ニューロモーフィック装置で遂行可能なマルチビットニューロモーフィック演算について説明するための図面である。
【0059】
図6Aを参照すれば、マルチビットニューロモーフィック演算の一例として、3ビットバイナリ値間のマルチビット乗算演算が図示されている。該マルチビット乗算演算は、被演算子のうち少なくとも一つが複数個のビットを含む乗算演算を意味する。マルチビット乗算演算の第1被演算子611は、3ビットバイナリ値であるABC2であり、第2被演算子612は、3ビットバイナリ値であるDEF2であるとき、第1被演算子611及び第2被演算子612の乗算演算は、ビット別に乗算を行い、中間積を計算した後、計算された中間積を同一ビット桁に合わせて加えることによっても行われる。
【0060】
具体的には、第2被演算子DEF2 612のLSBであるFと、第1被演算子ABC2 611とを乗じ、第1中間積613であるGHIが獲得され、第2被演算子DEF2 612の下位2番目ビットであるEと、第1被演算子ABC2 611とを乗じ、第2中間積614であるJKLが獲得され、第2被演算子DEF2 612の下位3番目ビット(すなわち、MSB)であるDと、第1被演算子ABC2 611とを乗じ、第3中間積615であるMNOが獲得される。その後、獲得された中間積613,614及び615を、同一ビット桁に合わせて加えることにより、第1被演算子ABC2 611と第2被演算子DEF2 612とのマルチビット乗算演算結果616であるPQRSTU2が獲得される。以下においては、前述のニューロモーフィックプロセッサ112(
図4)が、
図6Aに図示されたマルチビットニューロモーフィック演算(すなわち、マルチビット乗算演算)を行う方法について、さらに詳細に説明する。
【0061】
図6Bは、一実施形態により、マルチビットニューロモーフィック演算(すなわち、マルチビット乗算演算)を行うために、被演算子を、軸索及びシナプス荷重にそれぞれマッピングすることについて説明するための図面である。
【0062】
図6Bを参照すれば、
図6Aの第1被演算子ABC2 611の各ビット値(A、B及びC)は、シナプス荷重620にマッピングされる。第1被演算子ABC2 611のMSBは、シナプス荷重620のMSBにマッピングされ、第1被演算子ABC2 611のLSBは、シナプス荷重620のLSBにマッピングされる。
【0063】
同じ方式により、
図6Aの第2被演算子DEF2 612の各ビット値(D、E及びF)は、軸索610にマッピングされる。第2被演算子DEF2 612のMSBは、軸索610のMSBにマッピングされ、第2被演算子DEF2 612のLSBは、軸索610のLSBにマッピングされる。
【0064】
しかし、それらに制限されるものではなく、本実施形態によれば、
図6Bで説明されたマッピング方式と異なり、
図6Aの第1被演算子ABC2 611及び第2被演算子DEF2 612は、他のマッピング方式によってでも、軸索610及びシナプス荷重620のビット桁にマッピングされる。ただし、他のマッピング方式が適用される場合、コントローラ1124は、マッピングされたビット桁に対応するように、i及びjの組み合わせを、前述のところと異なる方式によって決定することができる。
【0065】
図6Cは、一実施形態により、マルチビットニューロモーフィック演算(すなわち、マルチビット乗算演算)の被演算子及び中間積を、時分割方式により、ニューロモーフィックプロセッサで処理することについて説明するための図面である。
【0066】
図6Cを参照すれば、
図6Bで説明されたように、第1被演算子ABC2 631の各ビット値(A、B及びC)は、シナプス荷重620にマッピングされ、第2被演算子DEF2 632の各ビット値(D、E及びF)は、軸索610にマッピングされる。
【0067】
第1被演算子ABC2 631の各ビット値(A、B及びC)と、第2被演算子DEF2 632の各ビット値(D、E及びF)との乗算によって生成された第1中間積GHI 633、第2中間積JKL 634及び第3中間積MNO 635それぞれのビット値は、時分割方式によっても獲得される。具体的には、第1中間積GHI 633のビット値Iは、時点t0において獲得され、第1中間積GHI 633のビット値Hは、時点t1において獲得され、第2中間積JKL 634のビット値Lは、時点t2において獲得され、第3中間積MNO 635のビット値Mは、時点t8においても獲得される。
【0068】
一方、時点t0、時点t1、…、時点t8は、互いに異なる時点を意味する。例えば、時点t0から既設定の時間ほど遅延された時間が時点t1であり、時点t1から既設定の時間ほど遅延された時間が時点t2でもある。ただし、必ずしもそれらに制限されるものではない。また、明細書全体において、時点tは、ある特定瞬間のみを限定するためではなく、関連動作が遂行されるタイミングまたは時間区間を区別するためのものである。従って、明細書において、特定時点において遂行されると説明した動作が、必ずしも同時に遂行されるものではないということは、当該技術分野の当業者であるならば、容易に理解するであろう。
【0069】
第1被演算子ABC2 631と第2被演算子DEF2 632とのマルチビットニューロモーフィック演算(すなわち、マルチビット乗算演算)の結果636は、PQRSTU2である。
【0070】
マルチビットニューロモーフィック演算の結果であるPQRSTU2 636において、LSBに該当するUは、第1中間積GHI 633のIによって獲得される。マルチビットニューロモーフィック演算の結果PQRSTU2 636においてTは、第1中間積GHI 633のHと、第2中間積JKL 634のLとの和によって獲得される。マルチビットニューロモーフィック演算の結果PQRSTU2 636においてSは、第1中間積GHI 633のG、第2中間積JKL 634のK、第3中間積MNO 635のO、及び以前ビット桁で獲得されたキャリの和によって獲得される。そのような方式により、マルチビットニューロモーフィック演算の結果であるPQRSTU2 636は、LSBに該当するUからMSBに該当するPまで順次に獲得されるこ。すなわち、時点t0から時点t8まで順次に獲得された中間積633,634及び635のビット値の和に基づいて、マルチビットニューロモーフィック演算の結果であるPQRSTU2 636が獲得される。
【0071】
図6Dは、一実施形態により、ニューロモーフィックプロセッサにおいて、マルチビットニューロモーフィック演算を時分割方式で処理するための仮想(virtual)シナプスアレイマッピングについて説明するための図面である。
図6Dを参照すれば、前述のように、ニューロモーフィックプロセッサ112は、単一軸索回路1121、単一シナプス回路1122、単一ニューロン回路1123及びコントローラ1124を含むが、ニューロモーフィックプロセッサ112が、時分割方式によって動作されるとき、ニューロモーフィックプロセッサ112は、まるで1以上のニューロン回路、1以上のシナプス、1以上のニューロン回路を含む二次元シナプスアレイを処理するようにも動作される。本実施形態においては、ニューロモーフィックプロセッサ112が、時分割方式で処理するために、描写された二次元シナプスアレイを、仮想シナプスアレイ640という用語で称するようにするが、それに制限されるものではなく、他の用語で称されてもよい。すなわち、ニューロモーフィックプロセッサ112には、仮想シナプスアレイ640の物理的回路構成(例えば、1以上のニューロン回路、1以上のシナプス、及び1以上のニューロン回路)が実際に具現されたものではない。
【0072】
図6Dには、前掲の
図6Aないし
図6Cで説明されたマルチビットニューロモーフィック演算(3ビットx3ビットの乗算演算)と係わって説明するために、3x3仮想シナプスアレイ640が図示されている。しかし、本実施形態によれば、それ以外にも、多様な個数の行及び列を含むアレイが利用されてもよい。
【0073】
3x3仮想シナプスアレイ640において、軸索a3,a2,a1には、第2被演算子DEF 632(
図6C)がマッピングされ、シナプス荷重w3,w2,w1には、第1被演算子ABC 631(
図6C)がマッピングされる。軸索a1とシナプス荷重wtとが交差して提供されるシナプスにおいては、軸索(ビット値a1=F)とシナプス荷重(ビット値w1=C)とのシナプス演算が行われることにより、第1中間積GHI 633(
図6C)のビット値Iが獲得される。類似の方式により、3x3仮想シナプスアレイ640において、軸索a3,a2,a1とシナプス荷重w3,w2,w1とが交差して提供されるシナプスにおいては、シナプス演算が行われることにより、全ての中間積633,634及び635のビット値が、
図6Dに図示されているようにも、それぞれマッピングされる。
【0074】
コントローラ1124は、仮想シナプスアレイ640の、前述のような方式のマッピングが行われるように、単一軸索回路1121及び単一シナプス回路1122に提供される軸索及びシナプス荷重それぞれを決定する。
【0075】
図7A及び
図7Bは、一実施形態により、ニューロモーフィックプロセッサにおいて、マルチビットニューロモーフィック演算を処理するために、時分割方式で行われるシナプス演算の順序について説明するための図面である。
【0076】
図7Aを参照すれば、仮想シナプスアレイ710で交差する地点のシナプスにおいては、軸索とシナプス荷重とのシナプス演算が行われる。ニューロモーフィックプロセッサ112は、仮想シナプスアレイ710の交差する地点でのシナプス演算を、時分割方式で行うことができる。
【0077】
前掲の
図6C及び
図6Dで説明されたマッピング方式によれば、ニューロモーフィックプロセッサ112は、時点t0において、軸索a1を単一軸索回路1121に提供し、シナプス荷重w1を単一シナプス回路1122に提供し、軸索a1とシナプス荷重w1とのシナプス演算値を獲得する。次に、ニューロモーフィックプロセッサ112は、時点t1において、軸索a1を単一軸索回路1121に提供し、シナプス荷重w2を単一シナプス回路1122に提供し、軸索a1とシナプス荷重w2とのシナプス演算値を獲得する。類似の方式により、ニューロモーフィックプロセッサ112は、時点t8までシナプス演算を順次に行う。
【0078】
図7Bを参照すれば、
図7Aで説明された順序を、矢印によって図式化すれば、仮想シナプスアレイ710の対角線方向の順序で、時点t0から時点t8までのシナプス演算が行われるということが理解される。
【0079】
結局、そのような順序は、前述のように、コントローラ1124が、iとjとの和が最も小さいようにマッピングされた下位i番目ビット及び下位j番目ビットの組み合わせから、iとjとの和が最も大きいようにマッピングされた下位i番目ビット及び下位j番目ビットの組み合わせまで、単一軸索回路1121及び単一シナプス回路1122それぞれに順次に割り当てられるように、i及びjの値を変更してマッピングする方式によるものである。
【0080】
図7Cは、従来のニューロモーフィックプロセッサで行われるシナプス演算の順序について説明するための図面である。
図7Cを参照すれば、従来のニューロモーフィックプロセッサは、マルチビットニューロモーフィック演算を行うことができず、単に、1ビットのニューロモーフィック演算(1ビットx1ビット乗算演算)のみを行うことができる。すなわち、仮想シナプスアレイ720を参照して説明すれば、軸索それぞれと、シナプス荷重それぞれは、マルチビット被演算子の一部ビット値に該当せず、軸索それぞれとシナプス荷重それぞれは、1ビット被演算子そのものに該当するのみである。また、従来のニューロモーフィックプロセッサは、単に、
図7Cに図示された列方向の順にシナプス演算を行うだけであり、それは、時点t0で獲得されたシナプス演算値と、時点t3で獲得されたシナプス演算値は、互いに関連性がない独立したシナプス演算値であるのみであるという点を意味する。
【0081】
それと異なり、本実施形態によれば、ニューロモーフィックプロセッサ112は、仮想シナプスアレイ710の軸索及びシナプス荷重に、マルチビット被演算子の一部ビット値を割り当て、シネブティック演算を、
図7Bの対角線方向順序の時分割方式で行うことにより、従来のニューロモーフィックプロセッサと異なり、マルチビットニューロモーフィック演算が可能である。
【0082】
図8Aないし
図8Gは、一実施形態により、ニューロモーフィックプロセッサが、時分割方式で、マルチビットニューロモーフィック演算を行う過程について説明するための図面である。
【0083】
図8Aないし
図8Gにおいては、前掲の
図6Aないし
図7Bで説明された例示を利用し、マルチビットニューロモーフィック演算の遂行過程について説明する。
【0084】
一方、ニューロモーフィックプロセッサ112(
図4)の単一ニューロン回路1123(
図4)は、単一シナプス回路1122(
図4)から出力されたシナプス演算値に基づいて、nビット軸索とmビットシナプス荷重とのマルチビットニューロモーフィック演算結果の各ビット値を獲得する。単一ニューロン回路1123は、単一加算器(single adder(Adder))810を含む。
【0085】
図8Aを参照すれば、時点t0での過程について図示されている。
【0086】
コントローラ1124は、時点t0において、単一ニューロン回路1123に軸索a1を割り当て、単一シナプス回路1122にシナプス荷重w1を割り当てる。
【0087】
シナプス800は、シナプス荷重w1を保存する。シナプス800は、シナプス荷重w1が保存された場合、軸索a1とシナプス荷重w1とのシナプス演算を行うことにより、時点t0に対応するシナプス演算値を獲得する。
【0088】
単一加算器810は、既設定の初期値0を被加数として入力され、時点t0に対応するシナプス演算値を加数として入力され、既設定の初期値0を、以前キャリとして入力される。単一加算器810は、全ての入力が受信されれば、加算演算を行うことにより、加算値S0及びキャリC0を出力する。加算値S0は、マルチビットニューロモーフィック演算(マルチビット乗算演算)の結果を示すビットにおいて、LSBに該当する。また、キャリC0は、次に遂行される加算演算の以前キャリとして入力される。
【0089】
図8Bを参照すれば、時点t1及び時点t2での過程について図示されている。
【0090】
コントローラ1124は、時点t1において、単一ニューロン回路1123に軸索a1を割り当て、単一シナプス回路1122にシナプス荷重w2を割り当てる。シナプス801は、シナプス荷重w2が保存された場合、軸索a1とシナプス荷重w2とのシナプス演算を行うことにより、時点t1に対応するシナプス演算値を獲得する。単一加算器810は、キャリC0及び時点t1に対応するシナプス演算値を入力される。
【0091】
コントローラ1124は、時点t2において、単一ニューロン回路1123に軸索a2を割り当て、単一シナプス回路1122にシナプス荷重w1を割り当てる。シナプス801は、シナプス荷重w1が保存された場合、軸索a2とシナプス荷重w1とのシナプス演算を行うことにより、時点t2に対応するシナプス演算値を獲得する。
【0092】
単一加算器810は、キャリC0、時点t1に対応するシナプス演算値、及び時点t2に対応するシナプス演算値の全ての入力が受信された場合、加算演算を行うことにより、加算値S1及びキャリC1を出力する。加算値S1は、マルチビットニューロモーフィック演算(マルチビット乗算演算)の結果を示すビットにおいて、下位2番目ビットのビット値に該当する。また、キャリC1は、次に行われる加算演算の以前キャリとして入力される。
【0093】
図8Cは、時点t3及び時点t4での過程について図示している。
【0094】
コントローラ1124は、時点t3において、単一ニューロン回路1123に軸索a1を割り当て、単一シナプス回路1122にシナプス荷重w3を割り当てる。シナプス803は、時点t3に対応するシナプス演算値を獲得し、単一加算器810は、キャリC1、及び時点t3に対応するシナプス演算値を入力される。
【0095】
コントローラ1124は、時点t4において、単一ニューロン回路1123に軸索a2を割り当て、単一シナプス回路1122にシナプス荷重w2を割り当てる。シナプス804は、時点t4に対応するシナプス演算値を獲得する。
【0096】
単一加算器810は、キャリC1、時点t3に対応するシナプス演算値、及び時点t4に対応するシナプス演算値の全ての入力が受信された場合、加算演算を行うことにより、加算値P0及びキャリC2を出力する。加算値P0は、単一加算器810が、t5時間において、次の加算演算を行うための入力として利用される。また、キャリC2は、次に行われる加算演算の以前キャリとして入力される。
【0097】
図8Dを参照すれば、時点t5における過程について図示されている。
【0098】
コントローラ1124は、時点t5において、単一ニューロン回路1123に軸索a3を割り当て、単一シナプス回路1122にシナプス荷重w1を割り当てる。シナプス805は、時点t5に対応するシナプス演算値を獲得する。
【0099】
単一加算器810は、時点t5に対応するシナプス演算値、以前に獲得された加算値P0、及び既設定のキャリ0の全ての入力が受信された場合、加算演算を行うことにより、加算値S2及びキャリC3を出力する。加算値S2は、マルチビットニューロモーフィック演算(マルチビット乗算演算)の結果を示すビットにおいて、下位3番目ビットのビット値に該当する。また、キャリC3は、次に行われる加算演算の以前キャリとして入力される。
【0100】
図8Eを参照すれば、時点t6における過程について図示されている。
【0101】
コントローラ1124は、時点t6において、単一ニューロン回路1123に軸索a2を割り当て、単一シナプス回路1122にシナプス荷重w3を割り当てる。シナプス806は、時点t6に対応するシナプス演算値を獲得する。
【0102】
単一加算器810は、時点t6に対応するシネブティック演算値、既設定の初期値0及びキャリC2の全ての入力が受信された場合、加算演算を行うことにより、加算値P1及びキャリC4を出力する。加算値P1は、単一加算器810が、t7時間において、次の加算演算を行うための入力として利用される。また、キャリC4は、次に行われる加算演算の以前キャリとして入力される。
【0103】
図8Fを参照すれば、時点t7における過程について図示されている。
【0104】
コントローラ1124は、時点t7において、単一ニューロン回路1123に軸索a3を割り当て、単一シナプス回路1122にシナプス荷重w2を割り当てる。シナプス807は、時点t7に対応するシナプス演算値を獲得する。
【0105】
単一加算器810は、時点t7に対応するシナプス演算値、以前に獲得された加算値P1、及びキャリC3の全ての入力が受信された場合、加算演算を行うことにより、加算値S3及びキャリC5を出力する。加算値S3は、マルチビットニューロモーフィック演算(マルチビット乗算演算)の結果を示すビットにおいて、下位4番目ビットのビット値に該当する。また、キャリC5は、次に行われる加算演算の以前キャリとして入力される。
【0106】
図8Gを参照すれば、時点t8における過程について図示されている。
【0107】
コントローラ1124は、時点t8において、単一ニューロン回路1123に軸索a3を割り当て、単一シナプス回路1122にシナプス荷重w3を割り当てる。シナプス808は、時点t8に対応するシナプス演算値を獲得する。
【0108】
単一加算器810は、時点t8に対応するシナプス演算値、キャリC4及びキャリC5の全ての入力が受信された場合、加算演算を行うことにより、加算値S4及びキャリS5を出力する。加算値S4及びキャリC5それぞれは、マルチビットニューロモーフィック演算(マルチビット乗算演算)の結果を示すビットにおいて、下位5番目ビット及び下位6番目ビットのビット値に該当する。
【0109】
以上で説明されたように、単一ニューロン回路1123に含まれた単一加算器810は、加算演算を行うために、毎時点ごとに再使用される。すなわち、単一加算器810は、全ての入力が受信されれば、加算演算を行い、次の加算演算遂行のために、以前加算演算結果(例えば、加算値、キャリなど)を、単一加算器810に連結されたメモリ(バッファ、レジスタなど)に保存することができる。メモリに保存された以前の加算演算結果は、次の加算演算が行われる前にリセットされて再使用される。すなわち、本実施形態によるニューロモーフィックプロセッサ112は、単一加算器810の再使用を介して、マルチビット乗算演算を行うことができるので、ニューロモーフィックプロセッサを具現するための回路面積が低減される。
【0110】
【0111】
前述のように、ニューロモーフィックプロセッサ112のコントローラ1124は、マルチビットニューロモーフィック演算結果を、下位ビット値から上位ビット値まで順次に獲得するために、単一軸索回路1121に、毎時点(例えば、時点t0から時点t8まで)ごとに割り当てられる軸索510の下位i番目ビットの第1入力、及び単一シナプス回路1122に、毎時点(例えば、時点t0から時点t8まで)ごとに割り当てられるシナプス荷重520の下位j番目ビットの第2入力を決定する。単一シナプス回路1122は、単一シナプス回路122に第2入力が保存された場合、第1入力と第2入力とのシナプス演算値を出力する。単一ニューロン回路1123は、単一シナプス回路1122から出力されたシナプス演算値に基づいて、軸索510とシナプス荷重520とのマルチビットニューロモーフィック演算結果の各ビット値S5,S4,S3,S2,S1及びS0を獲得する。すなわち、ニューロモーフィックプロセッサ112は、演算順序及び演算時間を調整することにより、マルチビット被演算子のマルチビット乗算演算が可能である。
【0112】
一方、
図9のマルチビットニューロモーフィック演算結果S5S4S3S2S1S0の各ビット値は、
図6Aないし
図7Bで説明されたマルチビットニューロモーフィック演算結果PQRSTUの各ビット値に対応する。また、
図8Aないし
図9で説明されたt0ないしt8それぞれに対応するシネブティック演算値は、
図6Cで説明された中間積633,634及び635の各ビット値に対応する。
【0113】
図10Aないし
図10Eは、一実施形態により、ニューロモーフィックプロセッサにおいて、3ビットx3ビット乗算演算を処理した結果について説明するための図面である。
【0114】
図10Aを参照すれば、3ビットシナプス荷重0112と3ビット軸索1012とのマルチビット乗算演算を、前述の方式によって行えば、0011112の6ビット乗算結果が獲得される。
図10Bを参照すれば、3ビットシナプス荷重1112と3ビット軸索1112とのマルチビット乗算演算を、前述の方式によって行えば、1100012の6ビット乗算結果が獲得される。
図10Cを参照すれば、3ビットシナプス荷重1112と3ビット軸索0012とのマルチビット乗算演算を、前述の方式によって行えば、0001112の6ビット乗算結果が獲得される。
図10Dを参照すれば、3ビットシナプス荷重1112と3ビット軸索0002とのマルチビット乗算演算を、前述の方式によって行えば、0011102の6ビット乗算結果が獲得される。
図10Eを参照すれば、3ビットシナプス荷重0012と3ビット軸索1002とのマルチビット乗算演算を前述の方式によって行えば、0001002の6ビット乗算結果が獲得される。
【0115】
すなわち、ニューロモーフィックプロセッサ112は、前述の軸索及びシナプス荷重のビット値分配と時分割処理とにより、マルチビットニューロモーフィック演算(マルチビット乗算演算)を行うことができる。
【0116】
図11は、一実施形態により、ニューロモーフィックプロセッサにおいて、3ビットx2ビット乗算演算を処理した結果について説明するための図面である。これまで、マルチビットニューロモーフィック演算は、説明の便宜のために、3ビットx3ビットの乗算演算を例として挙げた。しかし、ニューロモーフィックプロセッサ112は、それ以外にも、多様なビットの乗算演算を、前述の軸索及びシナプス荷重のビット値分配と時分割処理とによって行うことができるという点は、当該技術分野の当業者であるならば、容易に理解することができるであろう。
【0117】
図11を参照すれば、3ビットシナプス荷重1112と2ビット軸索012とのマルチビット乗算演算を、前述の方式によって行えば、001112の5ビット乗算結果が獲得される。
【0118】
図12は、一実施形態により、ニューロモーフィックプロセッサにおいて、4ビットx4ビット乗算演算を処理した結果について説明するための図面である。
図12を参照すれば、4ビットシナプス荷重01012と4ビット軸索10102とのマルチビット乗算演算を、前述の方式によって行えば、001100102の8ビット乗算結果が獲得される。
【0119】
一方、ニューラルネットワークにおいては、レイヤごとに、演算精度が互いに異なり、またニューラルネットワークを並列処理するプロセッサコアごとに、演算精度が互いに異なりもする。そのとき、本実施形態によるニューロモーフィックプロセッサ112は、当該演算精度に基づく軸索及びシナプス荷重のビット値分配と時分割処理とのスケジューリングを行うことにより、ニューラルネットワークの実行に必要な多様な演算精度のデータを、ハードウェア構成の変更なしに処理することができる。
【0120】
図13は、一実施形態によるニューロモーフィックプロセッサのハードウェア資源と、従来のニューロモーフィックプロセッサのハードウェア資源とを比較して説明するための図面である。
【0121】
図13を参照すれば、
図7Cで説明された方式を利用する従来のニューロモーフィックプロセッサにおいては、ニューロン回路に具備されたビットカウンタ(bit counter)1301を利用して受信されたシナプス演算値に係わる加算(addition)または積分(integration)が行われた。ただし、ビットカウンタ1301を利用する従来のニューロモーフィックプロセッサは、マルチビットニューロモーフィック演算(マルチビット乗算演算)の遂行が不可能であった。一方、マルチビット乗算演算のために、ニューロン回路に具備された乗算器回路1302を利用する従来のニューロモーフィックプロセッサもあった。
【0122】
しかし、そのような従来ニューロモーフィックプロセッサのハードウェア資源と、本実施形態によるニューロモーフィックプロセッサ112のハードウェア資源とを比較すれた、本実施形態によるニューロモーフィックプロセッサ112は、従来ニューロモーフィックプロセッサと異なり、少ない回路素子を利用し、小面積でも回路具現が可能であると共に、マルチビット乗算演算が可能である。
【0123】
図14は、一実施形態によるニューロモーフィック装置において、マルチビットニューロモーフィック演算を処理する方法のフローチャートである。
図14を参照すれば、ニューロモーフィック装置のマルチビットニューロモーフィック演算の処理方法は、前述のニューロモーフィック装置において、時系列的に処理される段階によって構成される。従って、以下で省略された内容であるとしても、前述の図面で記述された内容は、
図14の方法にも適用される。
【0124】
1401段階において、ニューロモーフィック装置100のコントローラ1124は、単一軸索回路1121に、毎時点ごとに割り当てられるnビット軸索の下位i番目ビットの第1入力、及び単一シナプス回路1122に、毎時点ごとに割り当てられるmビットシナプス荷重の下位j番目ビットの第2入力を決定する。そのとき、コントローラ1124は、マルチビットニューロモーフィック演算結果が、下位ビット値から上位ビット値まで順次に獲得されるまで、毎時点ごとに割り当てられる第1入力及び第2入力を反復的に決定することができる。
【0125】
1402段階において、単一軸索回路1121は、決定された第1入力を受信する。
1403段階において、単一シナプス回路1122は、決定された第2入力が保存された場合、第1入力と第2入力とのシナプス演算値を出力する。
【0126】
1404段階において、単一ニューロン回路1123は、出力されたシナプス演算値に基づいて、軸索とシナプス荷重とのマルチビットニューロモーフィック演算結果の各ビット値を獲得する。
【0127】
図15は、一部実施形態による電子システムの構成を示すブロック図である。
【0128】
図15を参照すれば、電子システム1500は、ニューラルネットワークを基に、入力データをリアルタイムで分析し、有効な情報を抽出し、抽出された情報を基に、状況判断を行ったり、電子システム1500が搭載される電子デバイスの構成を制御したりすることができる。例えば、電子システム1500は、ドローン(drone)、先端運転支援システム(ADAS:advanced drivers assistance system)のようなロボット装置、スマートTV(television)、スマートフォン、医療デバイス、モバイルデバイス、映像表示デバイス、計測デバイス、IoTデバイスなどにも適用され、それ以外にも、多種の電子デバイスのうち少なくとも一つにも搭載される。
【0129】
電子システム1500は、プロセッサ1510、RAM 1520、ニューロモーフィック装置1530、メモリ1540、センサモジュール1550及び通信モジュール1560を含んでもよい。電子システム1500は、入出力モジュール、保安モジュール、電力制御装置などをさらに含んでもよい。電子システム1500のハードウェア構成のうち一部は、少なくとも1つの半導体チップにも搭載される。
【0130】
プロセッサ1510は、電子システム1500の全般的な動作を制御する。プロセッサ1510は、1つのプロセッサコア(single core)を含むか、あるいは複数のプロセッサコア(multi-core)を含んでもよい。プロセッサ1510は、メモリ1540に保存されたプログラム及び/またはデータを処理または実行することができる。一部実施形態において、プロセッサ1510は、メモリ1540に保存されたプログラムを実行することにより、ニューロモーフィック装置1530の機能を制御することができる。プロセッサ1510は、CPU、GPU、APなどによっても具現される。
【0131】
RAM 1520は、プログラム、データまたは命令(instructions)を一時的に保存することができる。例えば、メモリ1540に保存されたプログラム及び/またはデータは、プロセッサ1510の制御または起動コードにより、RAM 1520に一時的にも保存される。RAM 1520は、DRAMまたはSRAMなどのメモリによっても具現される。
【0132】
ニューロモーフィック装置1530は、受信される入力データを基に、ニューラルネットワークの演算を行い、遂行結果を基に、情報信号を生成することができる。ニューラルネットワークは、CNN、RNN、FNN、Deep Belief Networks、Restricted Boltzman Machinesなどを含んでもよいが、それらに制限されるものではない。ニューロモーフィック装置1530は、ニューラルネットワーク専用ハードウェア加速器自体またはそれを含む装置であり、前述のニューロモーフィック装置100(
図4)にも該当する。
【0133】
該情報信号は、音声認識信号、事物認識信号、映像認識信号、生体情報認識信号のような多種の認識信号のうち一つを含んでもよい。例えば、ニューロモーフィック装置1530は、ビデオストリームに含まれるフレームデータを入力データとして受信し、フレームデータから、フレームデータが示すイメージに含まれた事物に係わる認識信号を生成することができる。しかし、それに制限されるのではなく、電子システム1500が搭載された電子装置の種類または機能により、ニューロモーフィック装置1530は、多種の入力データを受信することができ、該入力データによる認識信号を生成することができる。
【0134】
メモリ1540は、データを保存するための保存場所であり、OS(operating system)、各種プログラム及び各種データを保存することができる。一実施形態において、メモリ1540は、ニューロモーフィック装置1530の演算遂行過程で生成される中間結果を保存することができる。
【0135】
メモリ1540は、DRAMでもあるが、それに限定されるものではない。メモリ1540は、揮発性メモリまたは不揮発性メモリのうち少なくとも一つを含んでもよい。不揮発性メモリは、ROM、PROM、EPROM、EEPROM、フラッシュメモリ、PRAM、MRAM、RRAM(登録商標)、FRAM(登録商標)などを含む。揮発性メモリはDRAM、SRAM、SDRAMなどを含む。一実施形態において、メモリ1540は、HDD、SSD、CF、SD、Micro-SD、Mini-SD、xDまたはmemory stickのうち少なくとも一つを含んでもよい。
【0136】
センサモジュール1550は、電子システム1500が搭載される電子装置周辺の情報を収集することができる。センサモジュール1550は、電子装置の外部から信号(例えば、映像信号、音声信号、磁気信号、生体信号、タッチ信号など)をセンシングまたは受信し、センシングまたは受信された信号をデータに変換することができる。そのために、センサモジュール1550は、センシング装置、例えば、マイク、撮像装置、イメージセンサ、ライダ(LIDAR:light detection and ranging)センサ、超音波センサ、赤外線センサ、バイオセンサ及びタッチセンサのような多種のセンシング装置のうち少なくとも一つを含んでもよい。
【0137】
センサモジュール1550は、変換されたデータを、ニューロモーフィック装置1530に入力データとして提供することができる。例えば、センサモジュール1550は、イメージセンサを含んでもよく、電子装置の外部環境を撮影してビデオストリームを生成させ、ビデオストリームの連続するデータフレームを、ニューロモーフィック装置1530に入力データとして順に提供することができる。しかし、それに制限されるのではなく、センサモジュール1550は、多種のデータをニューロモーフィック装置1530に提供することができる。
【0138】
通信モジュール1560は、外部デバイスと通信することができる多様な有線または無線のインターフェースを具備することができる。例えば、通信モジュール1560は、有線近距離通信網(例:LAN:local area network);Wi-Fi(wireless fidelity)のような無線近距離通信網(WLAN:wireless local area network);ブルートゥース(登録商標)(Bluetooth(登録商標))のような無線個人通信網(WPAN:wireless personal area network);無線USB(wireless universal serial bus)、Zigbee、NFC(near field communication)、RFID(radio frequency identification))、PLC(power line communication)、または3G(3rd generation)・4G(4th generation)・LTE(long-term evolution)のような移動通信網(mobile cellular network)に接続可能な通信インターフェースなどを含んでもよい。
【0139】
なお、前述の実施形態は、コンピュータで実行されるプログラムで作成可能であり、コンピュータで読み取り可能な記録媒体を利用し、前記プログラムを動作させる汎用デジタルコンピュータでも具現される。また、前述の実施形態で使用されたデータの構造は、コンピュータで読み取り可能な記録媒体に、多くの手段を介しても記録される。前記コンピュータで読み取り可能な記録媒体は、マグネチック記録媒体(例えば、ROM、フロッピーディスク、ハードディスクなど)、光学的判読媒体(例えば、CD-ROM(compact disc read only memory)、DVD(digital versatile disc)など)のような記録媒体を含む。
【0140】
以上、技術的内容について、望ましい実施形態を中心に説明したが、当該技術分野で当業者であるならば、技術の本質的な特性から外れない範囲で変形された形態に、本実施形態が具現されるということを理解することができるであろう。従って、開示された実施形態は、限定的な観点ではなく、説明的な観点から考慮されなければならない。権利範囲は、前述の説明ではなく、特許請求の範囲に示されており、それと同等な範囲内にある全ての差異は、本実施形態に含まれたものであると解釈されなければならないのである。
【0141】
上述の、ニューロモーフィック装置、及びニューロモーフィック装置でマルチビットニューロモーフィック演算を処理する方法は、例えば、ニューラルネットワーク関連の技術分野に効果的に適用可能である。
【符号の説明】
【0142】
30 ニューロモーフィックプロセッサ
100 ニューロモーフィック装置
110 ニューロモーフィックチップ
120 外部メモリ
310 単一軸索回路
320 単一シナプス回路
330 単一ニューロン回路
710 仮想シナプスアレイ
720 仮想シナプスアレイ
800 シナプス
810 単一加算器
1500 電子システム
1510 プロセッサ
1520 RAM
1530 ニューロモーフィック装置
1540 メモリ
1550 センサモジュール
1560 通信モジュール