(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024127867
(43)【公開日】2024-09-20
(54)【発明の名称】ニューラルネットワークシステム及びその具現方法{NEURAL NETWORK SYSTEM AND IMPLEMENTING METHOD THEREOF}
(51)【国際特許分類】
G11C 16/10 20060101AFI20240912BHJP
G06N 3/063 20230101ALI20240912BHJP
G11C 11/54 20060101ALI20240912BHJP
G06G 7/60 20060101ALI20240912BHJP
G11C 16/34 20060101ALI20240912BHJP
【FI】
G11C16/10 150
G06N3/063
G11C11/54
G06G7/60
G11C16/34 140
【審査請求】有
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2024035127
(22)【出願日】2024-03-07
(31)【優先権主張番号】10-2023-0029751
(32)【優先日】2023-03-07
(33)【優先権主張国・地域又は機関】KR
(71)【出願人】
【識別番号】524088685
【氏名又は名称】ぺブル スクエア インコーポレイテッド
【氏名又は名称原語表記】PEBBLE SQUARE, INC.
【住所又は居所原語表記】1-1028, 25 Obongsandan 3-ro, Uiwang-si, Gyeonggi-do 16079 Republic of Korea
(74)【代理人】
【識別番号】110001139
【氏名又は名称】SK弁理士法人
(74)【代理人】
【識別番号】100130328
【弁理士】
【氏名又は名称】奥野 彰彦
(74)【代理人】
【識別番号】100130672
【弁理士】
【氏名又は名称】伊藤 寛之
(72)【発明者】
【氏名】イ、チュンヒョン
【テーマコード(参考)】
5B225
【Fターム(参考)】
5B225BA03
5B225DB02
5B225DB08
5B225EA01
5B225FA01
(57)【要約】 (修正有)
【課題】学習されたモデルを大規模ニューラルネットワークに移植するための超高速並列プログラミング方法及びその方法によって具現されるニューラルネットワークシステムを提供する。
【解決手段】ニューラルネットワークシステムにおいて、第1ロー(row)ライン601及び第1カラム(column)ライン611に位置するターゲットメモリセル600は、その構成要素が第1カラムライン、第1*ローライン602及び第1*カラムライン612に電気的に連結される。セル指定回路は、第1ローライン601に連結された自己参照回路500に対し、特定のカラムライン、すなわちターゲットラインを指定することで指定メモリセルを選択する。第1メモリセルは、連結されたローライン及びカラムラインとの交差点がアドレス(address)として決定され、第1メモリセルのそれぞれは、予め設定されたターゲット重みを有する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
ニューラルネットワークシステムにおいて、
アレイ状に配列された第1メモリセルを含むニューラルネットワーク回路と、
前記ニューラルネットワーク回路のロー(row)ラインまたはカラム(column)ラインに電気的に連結され、複数のターゲットメモリセルが予め設定されたターゲット重みを有するように前記連結されたローラインまたはカラムラインに電流を印加する自己参照回路と、
を含み、
前記ターゲットメモリセルは、
前記自己参照回路が連結されたローラインまたはカラムラインに位置する全てのメモリセルである、システム。
【請求項2】
前記自己参照回路は、
コントロールゲートに調整ゲート電圧が印加され、互いに並列に連結される複数の第2メモリセルと、
前記第2メモリセルの両端電圧と予め設定されたコンパレータ電圧との比較結果をデジタル信号に出力するコンパレータとを含む、請求項1に記載のシステム。
【請求項3】
前記複数の第2メモリセルは、
前記ターゲットメモリセルが有することができる重みの状態値(State)の数に基づいてその数が決定される、請求項2に記載のシステム。
【請求項4】
前記複数の第2メモリセルは、
前記コントロールゲートに互いに異なる調整ゲート電圧が印加され、互いに異なる出力電流-前記出力電流はゼロを含む-が流れ、
前記出力電流の組み合わせは、
前記重みの状態値に対応することを特徴とする、請求項3に記載のシステム。
【請求項5】
前記自己参照回路は、
前記ターゲットメモリセルが予め設定されたターゲット重みを有するように前記ターゲットメモリセルに前記出力電流の組み合わせを印加する、請求項4に記載のシステム。
【請求項6】
前記ニューラルネットワークシステムは、
前記ターゲットメモリセルが前記予め設定されたターゲット重みを有するように前記ターゲットメモリセルに対するプログラミング動作を実行する書き込み回路を含む、請求項1に記載のシステム。
【請求項7】
前記自己参照回路に一定の電圧が印加されるように基準電圧を提供するバンドギャップ回路をさらに含む、請求項1に記載のシステム。
【請求項8】
ニューラルネットワークシステムの具現方法において、
ニューラルネットワーク回路に含まれ、アレイ状に配列された第1メモリセルのターゲット重みを取得するステップと、
前記自己参照回路を調整するステップと、
前記調整された自己参照回路を前記ニューラルネットワーク回路のローラインまたはカラムラインに電気的に連結させ、前記ニューラルネットワーク回路の重みを調整するステップとを含み、
前記自己参照回路は、
複数のターゲットメモリセルが前記ターゲット重みを有するように前記連結されたローラインまたはカラムラインに電流を印加し、
前記ターゲットメモリセルは、
前記自己参照回路が連結されたローラインまたはカラムラインに位置する全てのメモリセルである、方法。
【請求項9】
前記自己参照回路は、
コントロールゲートに調整ゲート電圧が印加され、互いに並列に連結される複数の第2メモリセルと、
前記第2メモリセルの両端電圧と予め設定されたコンパレータ電圧との比較結果をデジタル信号に出力するコンパレータとを含む、請求項8に記載の方法。
【請求項10】
前記複数の第2メモリセルは、
前記ターゲットメモリセルが有することができる重みの状態値(State)の数に基づいてその数が決定される、請求項9に記載の方法。
【請求項11】
前記自己参照回路を調整するステップは、
前記複数の第2メモリセルに互いに異なる出力電流-前記出力電流はゼロを含む-が流れるように前記コントロールゲートに互いに異なる調整ゲート電圧を印加するステップを含み、
前記出力電流の組み合わせは、
前記重みの状態値に対応することを特徴とする、請求項10に記載の方法。
【請求項12】
前記自己参照回路は、
前記ターゲットメモリセルが予め設定されたターゲット重みを有するように前記ターゲットメモリセルに前記出力電流の組み合わせを印加する、請求項11に記載の方法。
【請求項13】
前記方法は、
前記ターゲットメモリセルが前記ターゲット重みを有するように前記ターゲットメモリセルに対するプログラミング動作を実行するステップをさらに含む、請求項8に記載の方法。
【請求項14】
前記方法は、
前記自己参照回路に一定の電圧が印加されるように基準電圧を提供するステップをさらに含む、請求項8に記載の方法。
【請求項15】
請求項8に記載の方法をコンピュータで実行するためのプログラムを記録したコンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューラルネットワークシステム及びその具現方法に関するものであり、より詳細には、学習されたモデルを大規模ニューラルネットワークに移植するための超高速並列プログラミング方法及びその方法によって具現されるニューラルネットワークシステムに関する。
【背景技術】
【0002】
人工ニューラルネットワーク(neural network)は、生物学的ニューラルネットワークを模倣するのであり、それらは入力される多数のデータによって学習されることができ、一般的な技術では導出しにくい結果を推定または近似するのに用いられる。人工ニューラルネットワークは信号を交換する相互連結されたニューロン(neuron)層を含み、シナプス(synapse)は学習または経験に基づいて調整が可能な重みを有する。
【0003】
ユーザが人工ニューラルネットワークを訓練させるためには、学習データの量が多いほど高性能のコンピュータ装置で実行される必要があり、ユーザが訓練されたニューラルネットワークを使用してエッジ装置において追加訓練を実行することができなければならない。
【0004】
しかしながら、エッジ装置の組み込みSoCで訓練されたディープラーニングモデルを正確に具現するために、そしてそのようなエッジ装置を量産するためには、重みプログラミングの精度と処理速度が非常に重要である。
【0005】
前述した背景技術は、発明者が本発明の導出のために保有していたり、本発明の導出過程で習得した技術情報であり、必ずしも本発明の出願前に一般公衆に公開された公知技術とは限らない。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本開示の目的は、ニューラルネットワークシステム及びその具現方法を提供することにある。本開示が解決しようとする課題は、以上で言及した技術的課題に限定されず、言及されていない他の技術的課題は、本発明の記載から当該分野で通常の知識を有する者に明確に理解されることができ、本開示の実施形態によってより明確に理解されるであろう。さらに、本開示が解決しようとする課題及び利点は、特許請求の範囲に示された手段及びその組み合わせで実現できることが分かるであろう。
【課題を解決するための手段】
【0007】
前述した技術的課題を解決するための手段として、本開示の第1側面は、ニューラルネットワークシステムにおいて、アレイ状に配列された第1メモリセルを含むニューラルネットワーク回路と、前記ニューラルネットワーク回路のロー(row)ラインまたはカラム(column)ラインに電気的に連結され、複数のターゲットメモリセルが予め設定されたターゲット重みを有するように前記連結されたローラインまたはカラムラインに電流を印加する自己参照回路とを含み、前記ターゲットメモリセルは、自己参照回路が連結されたローラインまたはカラムラインに位置する全てのメモリセルである、ニューラルネットワークシステムを提供することができる。
【0008】
本開示の第2側面は、ニューラルネットワーク回路に含まれ、アレイ状に配列された第1メモリセルのターゲット重みを取得するステップと、自己参照回路を調整するステップと、前記調整された自己参照回路を前記ニューラルネットワーク回路のローラインまたはカラムラインに電気的に連結して前記ニューラルネットワーク回路の重みを調整するステップとを含み、前記自己参照回路は、複数のターゲットメモリセルが前記ターゲット重みを有するように前記連結されたローラインまたはカラムラインに電流を印加し、前記ターゲットメモリセルは、前記自己参照回路が連結されたローラインまたはカラムラインに位置する全てのメモリセルである、ニューラルネットワークシステムの具現方法を提供することができる。
【0009】
本開示の第3側面は、第2側面の方法をコンピュータで実行するためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供することができる。
【0010】
その他にも、本発明を具現するための他の方法、他の装置及び前記方法を実行するためのプログラムを記録したコンピュータで読み取り可能な記録媒体をさらに提供することができる。
【0011】
前述したもの以外の他の側面、特徴、利点が、以下の図面、特許請求の範囲及び発明の詳細な説明から明確になるであろう。
【発明の効果】
【0012】
前述した本開示の課題解決手段によれば、大規模ニューラルネットワークを有する集積回路にシナプス素子の重みを並列にプログラミングすることにより、深層ニューラルネットワークモデルを超高速で移植する装置及びその動作方法を提供することができる。
【0013】
また、本開示の課題解決手段によれば、シナプス素子が高密度(highーdensity)の重み(weight)を有する場合でも、隣接シナプス素子のプログラミング時の妨害(disturbance)を最小限に抑えることにより、精度の高い移植装置及びその動作方法を提供することができる。
【0014】
実施形態による効果は、上記言及した効果に限定されず、言及されていない他の効果は、本発明の記載から当該分野で通常の知識を有する者に明確に理解されることができるだろう。
【図面の簡単な説明】
【0015】
【
図1】
図1は、一実施形態に係るニューラルネットワークシステムの具現を説明するための図である。
【
図2】
図2は、一実施形態に係るビット単位プログラミング方式を説明するための図である。
【
図3】
図3は、一実施形態に係るビット単位プログラミング方式を概略的に表現した概念図である。
【
図4】
図4は、一実施形態に係る自己参照プログラミング方式を概略的に表現した概念図である。
【
図5】
図5は、一実施形態に係る自己参照プログラミングを用いて具現したニューラルネットワークシステムの例示図である。
【
図6】
図6は、一実施形態に係る自己参照回路の動作を説明するための図である。
【
図7】
図7は、一実施形態に係る自己参照回路の例示図である。
【
図8】
図8は、一実施形態に係る自己参照プログラミングの結果を示すグラフである。
【
図9】
図9は、一実施形態に係るニューラルネットワークシステムの具現方法のフローチャートである。
【発明を実施するための形態】
【0016】
本発明を説明するにあたって、関連する公知技術の具体的な説明が本発明の要旨を不明瞭にする可能性があると判断される場合、その詳細な説明を省略することができ、他に定義されない限り、本明細書で使用される全ての用語は、本発明が属する技術分野で通常の知識を有する者によって一般的に理解されるのと同じ意味を有する。
【0017】
本明細書における「一実施形態に係る」、「一実施形態に関する」または「一実施形態の具現により」などの表現は、必ずしも全て同じ実施形態を指すものではない。
【0018】
実施形態は様々な変更を加えることができ、様々な形態を有することができ、一部の実施形態を図面に示し、詳細に説明する。しかしながら、これは実施形態を特定の開示形態に限定することを意図するものではなく、実施形態の思想及び技術的範囲に含まれる全ての変更、均等物ないし代替物を含むものと理解されるべきである。明細書で使用される用語は、単に実施形態を説明するために使用されたものであり、実施形態を限定しようとする意図ではない。
【0019】
実施形態で使用される用語は、本実施形態における機能を考慮するとともに可能な限り現在広く使用されている一般用語を選択したが、これは実施形態が属する技術分野に従事する技術者の意図または判例、新たな技術の出現などによって変わることができる。また、特定の場合、出願人が任意に選定した用語もあり、この場合、該当する部分において詳細にその意味を記載する。したがって、実施形態で使用される用語は、単なる用語の名称ではなく、その用語が有する意味と実施形態の全体にわたる内容に基づいて定義されるべきである。
【0020】
本開示の一部の実施形態は、機能的なブロック構成及び様々な処理ステップで表現されることができる。そのような機能ブロックの一部または全部は、特定の機能を実行する様々な数のハードウェア及び/またはソフトウェア構成で具現されることができる。例えば、本開示の機能ブロックは、1つ以上のマイクロプロセッサによって具現されるか、所定の機能のための回路構成によって具現されることができる。
【0021】
さらに、例えば、本開示の機能ブロックは、様々なプログラミングまたはスクリプト言語で具現されることができる。機能ブロックは、1つ以上のプロセッサで実行されるアルゴリズムで具現されることができる。さらに、本開示は、電子的な環境設定、信号処理及び/またはデータ処理などのために従来技術を採用することができる。
【0022】
「データベース」、「要素」、「手段」及び「構成」などの用語は広く使用されることができ、機械的及び物理的構成に限定されるものではない。さらに、明細書に記載された「~部」、「~モジュール」などの用語は、少なくとも1つの機能または動作を処理する単位を意味し、これはハードウェアまたはソフトウェアで具現されたり、ハードウェアとソフトウェアの結合で具現されることができる。
【0023】
さらに、図面に示された構成要素間の連結線または連結部材は、機能的連結及び/または物理的または回路的連結を例示的に示したものにすぎない。実際の装置では、代替可能または追加された様々な機能的連結、物理的連結、または回路連結によって構成要素間の連結が示されることができる。
【0024】
さらに、本明細書で使用される「第1」または「第2」などの序数を含む用語は、様々な構成要素を説明するために使用することができるが、構成要素は用語によって限定されるべきではない。用語は、1つの構成要素を他の構成要素と区別する目的でのみ使用される。
【0025】
また、図面上の一部の構成要素は、その大きさや割合などがやや誇張されて示されている場合がある。さらに、ある図面上に示されている構成要素が他の図面上には示されていない場合がある。
【0026】
明細書全体において、「実施形態」は、本開示で発明を容易に説明するための任意の区分であり、実施形態のそれぞれが互いに排他的である必要はない。例えば、一実施形態に開示された構成は、他の実施形態に適用及び/または具現されることができ、本開示の範囲から逸脱しない限り、変更されて適用及び/または具現さることができる。
【0027】
さらに、本開示で使用される用語は実施形態を説明するためのものであり、本実施形態を限定しようとする意図ではない。本開示における単数形は、特に言及しない限り、複数形も含む。
【0028】
以下では、添付の図面を参照し、本開示の実施形態について当該技術分野で通常の知識を有する者が容易に実施できるように詳細に説明する。しかしながら、本開示の実施形態は様々な異なる形態で具現されることができ、本開示で説明する実施形態に限定されない。
【0029】
以下では、これに基づいて図面を参照して本発明を詳細に説明する。
【0030】
図1は、一実施形態に係るニューラルネットワークシステムの具現を説明するための図である。
【0031】
図1を参照すると、訓練された人工ニューラルネットワークモデル10と実際のハードウェア20とを確認することができる。
【0032】
人工ニューラルネットワークモデル10が訓練されたということは、複数の学習データによって人工ニューラルネットワークモデル10の各層の重み(weight)が決定されたことを意味する。人工ニューラルネットワークモデル10の学習の結果である重みが中央クラウドサーバに記憶されている場合、人工ニューラルネットワークモデル10を用いるクラウドコンピューティング装置が中央クラウドサーバと通信し、人工ニューラルネットワークモデル10に入力値を送信して出力値を受信することができる。この場合、人工ニューラルネットワークモデル10が非常に複雑または大規模(Large-scale)である場合でも、クラウドコンピューティング装置で問題なく出力値を利用することができる。
【0033】
しかしながら、中央クラウドサーバと通信することなく装置自体でデータを処理するエッジコンピューティング(Edge Computing)装置の場合、人工ニューラルネットワークモデル10、すなわち学習によって決定された重みが実際のハードウェア20に正確に移植されなければならない。このとき、人工ニューラルネットワークモデル10が非常に複雑または大規模である場合に問題となる。
【0034】
人工ニューラルネットワークモデル10において、各重みの状態値(State)が非常に多様である場合(例えば、128個のState)、実際のハードウェア20で具現されるクロスバーアレイは高密度に形成される。実際のハードウェア20のニューラルネットワーク回路に含まれる各メモリセルは、隣接するメモリセルと同じワードライン(Word Line、WL)及びビットライン(Bit Line、BL)上に位置することになる。この場合、メモリセルに重みを移植するプログラム/削除(Program/erase)動作は、隣接するメモリセルに乱れ(disturb)を引き起こし、隣接するメモリセルの電流の拡張(broadening)及び移動(shift)が発生する可能性がある。このような乱れ現象は、高密度クロスバーアレイにおいて重みの各状態値が重なることができ、重みの正確な配置を困難にする。
【0035】
また、人工ニューラルネットワークモデル10が大規模である場合、メモリセルの数は数百万、または数千万個に至ることができる。人工ニューラルネットワークモデル10をハードウェア20に配置するために、多数のメモリセルに重みを移植し、そのようなハードウェア20を量産するにあたって非常に時間がかかるという問題がある。
【0036】
図2は、一実施形態に係るビット単位プログラミング方式を説明するための図である。
【0037】
図2を参照すると、ビット単位のプログラミングを用いて具現したニューラルネットワークシステム20は、ニューラルネットワーク回路200、アドレスデコーダ210及びコントローラ220を含むことができる。
【0038】
ニューラルネットワーク回路200は、アレイ状に配置されたメモリセルを含むことができる。
【0039】
一実施形態において、ニューラルネットワーク回路200のメモリセルはフラッシュメモリセルであることができる。メモリセルは、半導体基板に形成されたソース(Source)領域及びドレイン(Drain)領域を含み、ソース領域及びドレイン領域の間にはチャネル(Channel)領域が形成される。また、フローティングゲート(Floating Gate)がソース領域、ドレイン領域及びチャネル領域のうち少なくとも1つの領域上に形成され、ゲート絶縁膜を介して前記領域と絶縁される。
【0040】
一実施形態において、ニューラルネットワーク回路200のメモリセルはスプリットゲート型メモリセルであることができる。スプリットゲート型メモリセルは、半導体基板上に形成されたソース/ドレイン領域を含み、ソース/ドレイン領域の両側に隣接する半導体基板上には一対のフローティングゲートが配置される。フローティングゲートの上部面のそれぞれはゲート間酸化膜によって覆われ、コントロールゲートがゲート間酸化膜の上部面を覆うように形成され、フローティングゲートと絶縁される。フローティングゲート及び半導体基板の間にゲート絶縁膜が形成され、ソース/ドレイン領域の上部にはゲート絶縁膜によって絶縁されたセレクト(Select)ゲートが配置される。コントロールゲートとセレクトゲートは、フローティングゲートとコントロールゲートとの間に形成されたゲート間酸化膜が延び、絶縁される。
【0041】
一方、スプリットゲート型メモリセルは、フローティングゲートを基準として、ソース/ドレイン領域の反対側の両側領域には半導体基板上にソース領域またはドレイン領域が形成されることができる。ソース/ドレイン領域がソースとして動作するセルを奇数セル(odd cell)、ソース/ドレイン領域がドレインとして動作するセルを偶数セル(even cell)という。奇数セル及び偶数セルは、ソース/ドレイン領域を基準としてミラー対称構造を有することができる。
【0042】
一実施形態において、ニューラルネットワーク回路200のメモリセルは、ローラインまたはカラムラインからなるクロスバーアレイと、ワードライン及びビットラインからなるクロスバーアレイとを有する2層のクロスバーアレイ構造を有することができる。ワードライン端子はセレクトゲート(Select Gate)に連結され、ビットライン端子はドレイン領域に連結され、それぞれ書き込み(プログラム/削除、program/erase)動作及び読み取り動作を実行することができる。
【0043】
メモリセルは、ワードライン端子に高い正電圧が印加されることによって電子(electron)がフローティングゲートから除去される。これを削除動作という。具体的には、フローティングゲートの電子は、ワードライン端子に高い正電圧が印加されると、電子がフローティングゲートからトンネリング(Tunneling)して絶縁体を通過し、セレクトゲートに注入される。すなわち、ワードライン端子に注入される。
【0044】
メモリセルは、ワードライン端子に正電圧が、ソース領域に正電圧が印加されることによって電子がフローティングゲートに注入される。これをプログラム動作という。具体的には、ワードライン端子及びソース領域に正電圧が印加されると、電子電流はソース領域からドレイン領域に向かって流れる。電子がワードライン端子とフローティングゲートとの間に到達するにつれて加速及び加熱され、その一部が静電引力により絶縁膜を通過し、フローティングゲートに注入される。
【0045】
フラッシュメモリセルのソース領域、ドレイン領域、チャネル領域、フローティングゲート及びセレクトゲートの構成と配置は、フラッシュメモリの構造に応じて変更されることができる。
【0046】
一実施形態において、メモリセルはフラッシュメモリだけでなく、RRAM(Resistive Random Access Memory)、PRAM(Phase-Change Random Access Memory)、MRAM(Magnetic Random Access Memory)などに該当されることができ、メモリセルの類型はこれに限定されない。
【0047】
アドレスデコーダ210は、カラムデコーダ(X-address decoder)及びローデコーダ(Y-address decoder)を含むことができる。カラムデコーダはワードラインデコーダ及びビットラインデコーダを含むことができる。ローデコーダは、ソースラインデコーダ及びコントロールゲートデコーダを含むことができる。各デコーダは、ニューラルネットワーク回路200のメモリセルアレイへの入力をデコーディングすることができる。さらに、ソースラインデコーダは、ニューラルネットワーク回路200のメモリセルアレイの出力をデコーディングすることができる。
【0048】
コントローラ220は、アドレスデコーダ210に読み取り/書き込み動作を実行するメモリセルの位置を送信し、
を印加して書き込み動作を制御し、メモリセルから出力された電流を受信して読み取り動作を制御することができる。
【0049】
以下、ビット単位のプログラミング(bit-by-bit programming)方式について説明する。
【0050】
コントローラ220は、アドレスデコーダ210に信号を伝達して重みを記憶させる1つのメモリセル(説明の便宜上、第1メモリセル)を指定し、第1メモリセルに対応するワードラインを介してプログラム/削除電圧を印加することによって、第1メモリセルに重みを記憶させることができる。プログラム/削除動作の前後にはビットラインを介した読み取り動作が行われることができる。
【0051】
次に、コントローラ220は、アドレスデコーダ210に信号を伝達して重みを記憶させる第2メモリセルを指定し、第2メモリセルに対応するワードラインを介してプログラム/削除電圧を印加することによって、第2メモリセルに重みを記憶させることができる。同様に、プログラム/削除動作の前後にはビットラインを介した読み取り動作が行われることができる。
【0052】
このように、ニューラルネットワーク回路200の全てのメモリセルに順次プログラム/削除電圧を印加して学習されたモデルから決定された重みを記憶させてニューラルネットワークシステム20を具現することができる。
【0053】
図3は、一実施形態に係るビット単位プログラミング方式を概略的に表現した概念図である。
【0054】
図3を参照すると、ニューラルネットワーク回路のローラインがM本、カラムラインがN本の場合、
図2で説明したビット単位プログラミング方式を概略的に確認することができる。
【0055】
ビット単位プログラミング動作では、ローラインの数とカラムラインの数の積であるM*N個のメモリセルに直接重みを記憶させることになる。すなわち、プログラム/削除動作による重み削り(Trim)動作がメモリセルごとに直接的(Direct)に行われる。
【0056】
ただし、前述したようにワードラインまたはビットラインを共有するメモリセルは、重みが記憶された後に隣接メモリセルのプログラム/削除動作時に乱れが発生し、電流の拡張及び移動によってターゲット重みから離れることができる。乱れ現象は、プログラム/削除動作の繰り返しによって強化されることができ、高密度クロスバーアレイのニューラルネットワーク回路200の場合、重みの状態値が重なることができる。これはニューラルネットワークシステム20のエラーを引き起こす可能性がある。
【0057】
また、ビット単位プログラミングは、大規模なニューラルネットワークシステムの場合、数百万から数千万のメモリセルのそれぞれに対して書き込み/読み取り動作を実行する必要があるため、量産には適さないという問題もある。
【0058】
図4は、一実施形態に係る自己参照プログラミング方式を概略的に表現した概念図である。
【0059】
メモリセルの重みプログラミング方式には、前述したビット単位プログラミングだけでなく、繰り返しプログラミング(Iterative Programming)方式など、様々なプログラミング方式がある。
【0060】
繰り返しプログラミング方式は、ニューラルネットワーク回路のメモリセル全体にプログラム/削除動作、すなわち書き込み動作を行い、読み取り動作を通じて記憶された重みを確認した後、ターゲット重みとの差分値に該当するエラーを除去するために再び書き込み動作を行う。
【0061】
このとき、エラーを除去するための書き込み動作にはエラー訂正コード(Error Correction code)が適用されることができる。
【0062】
このようにメモリセル全体に対する書き込み動作及び読み取り動作を繰り返してメモリセルのターゲット電流の誤差値を減らすことができるため、
図2及び
図3で説明したビット単位プログラミング方式に比べて隣接メモリセルの乱れ現象を最小限に抑えることができる。
【0063】
ただし、高密度クロスバーアレイの場合、書き込み/読み取り動作で重みの状態値が十分に区別できるように誤差値を減らすためには、数十回の書き込み/読み取り動作の繰り返しが必要である。したがって、大規模なニューラルネットワークシステムの場合、プログラミングにかかる全体時間が長いため、繰り返しプログラミング方式も大規模なニューラルネットワークシステムが適用された製品の量産には適していない。
【0064】
繰り返しプログラミング方式は、ニューラルネットワークシステムの規模が十分に小さい場合の適用に適している。
【0065】
したがって、本発明に係る一実施形態において、小規模の組み込みシステムに対する重みプログラミングを実行し、プログラミングされた前記小規模の組み込みシステムを用いてニューラルネットワーク回路全体のプログラミングを実行する2ステップのプログラミング方式を開示する。
【0066】
例えば、
図4を参照すると、n個のメモリセルを有する小規模のクロスバーアレイに対してプログラム/削除動作による重み削り(1st Trim)動作を行い、プログラミングされた前記小規模のクロスバーアレイをローライン数(M)またはカラムライン数(N)だけ設けてニューラルネットワーク回路のローラインまたはカラムラインに電気的に連結し、各小規模のクロスバーアレイがカラムラインのメモリセルまたはローラインのメモリセル全体に対して、プログラム/削除動作による重み削り(2nd Trim)動作を実行することができる。
【0067】
すなわち、ロー単位プログラミング(row-by-row programming)またはカラム単位のプログラミング(column-by-column programming)が実行されることができる。
【0068】
以下では、ロー単位プログラミングを基準として一実施形態に係る自己参照プログラミング方式を説明するが、カラム単位プログラミングにも同様に適用することができ、原理は同じである。さらに、上記の説明において、小規模の組み込みシステム及び小規模のクロスバーアレイは自己参照回路を意味することができる。
【0069】
図5は、一実施形態に係る自己参照プログラミングを用いて具現したニューラルネットワークシステムの例示図である。
【0070】
図5を参照すると、ニューラルネットワークシステムは、自己参照回路500、ニューラルネットワーク回路510及びバンドギャップ回路520を含むことができる。
【0071】
ニューラルネットワーク回路510は、アレイ状に配置された複数のメモリセルを含むことができる。以下では、ニューラルネットワーク回路510に含まれるメモリセルを第1メモリセルという。
【0072】
第1メモリセルに関する説明のうち、
図2で上述した説明と重複する説明は省略する。すなわち、第1メモリセルはフラッシュメモリだけでなく、RRAM(Resistive Random Access Memory)、PRAM(Phase-Change Random Access Memory)、MRAM(Magnetic Random Access Memory)などに該当されることができる。
【0073】
バンドギャップ回路520は、自己参照回路500に一定の電圧が印加されるように基準電圧を提供することができる。バンドギャップ回路520は、外部環境によって出力が敏感に変化しないため、基準電圧源または基準電流源として動作することができ、バンドギャップリファレンス(Bandgap Reference)回路とも呼ばれる。バンドギャップ回路520は、複数の自己参照回路500に電気的に連結され、自己参照回路500に一定の電圧または一定の電流が印加されるように基準電圧または基準電流を提供することができる。
【0074】
一実施形態において、自己参照回路500は、ニューラルネットワーク回路510のローラインに電気的に連結されることができる。ニューラルネットワーク回路510がM本のローラインとN本のカラムラインとでクロスバーアレイを形成する場合、M本の自己参照回路500はニューラルネットワーク回路510の各ローラインに電気的に連結されることができる。自己参照回路500は、連結されたローラインに位置した第1メモリセルに対する重みプログラミングを実行することができる。以下では、第1メモリセルのうち自己参照回路500が連結されたローラインに位置する全てのメモリセルをターゲットメモリセルと定義する。
【0075】
一実施形態において、自己参照回路500は、複数のターゲットメモリセルが予め設定されたターゲット重みを有するように、連結されたローラインに電流を印加することができる。例えば、ニューラルネットワークシステムは、ターゲットメモリセルが予め設定されたターゲット重みを有するようにターゲットメモリセルに対するプログラミング動作を実行する書き込み回路(図示せず)をさらに含むことができる。すなわち、自己参照回路500は、ターゲットメモリセルに対する読み取り動作、具体的にはターゲットメモリセルに正確なソース電圧を伝達することができ、書き込み回路(図示せず)はターゲットメモリセルに対する書き込み動作を実行することができる。
【0076】
図6は、一実施形態に係る自己参照回路の動作を説明するための図である。
【0077】
図6を参照すると、
図5のニューラルネットワーク回路510を具体化したクロスバーアレイ回路と自己参照回路500を確認することができる。
【0078】
ニューラルネットワーク回路510は、第1クロスバーアレイと第2クロスバーアレイから構成されることができる。ニューラルネットワーク回路510のメモリセルは、2層のクロスバーアレイ構造を具現するためにスプリットゲートメモリセルから構成されることができる。説明の便宜上、第1クロスバーアレイの第1ローライン(以下、「第1ローライン」という)601及び第1カラムライン(以下、「第1カラムライン」という)611と、第2クロスバーアレイの第1ローライン(以下、「第1*ローライン」という)602及び第1カラムライン(以下、「第1*カラムライン」という)612について説明する。
【0079】
第1ローライン601は、メモリセルにソース電圧を供給する、ソースラインに該当することができる。第1カラムライン611は、読み取り動作を実行するビットラインに該当することができる。第1*ローライン602は、メモリセルに入力電圧を供給することができる。第1*カラムライン612は、書き込み動作を実行するワードラインに該当することができる。
【0080】
ニューラルネットワーク回路の第1ローライン601及び第1カラムライン611に位置するターゲットメモリセル600は、その構成要素が第1カラムライン611、第1*ローライン602及び第1*カラムライン612に電気的に連結されることができる。
【0081】
具体的には、ターゲットメモリセル600のドレイン領域は、第1カラムライン611に連結され、第1カラムラインからドレイン電圧が供給されることができる。ターゲットメモリセル600のコントロールゲートは、第1*ローライン602に連結され、第1*ローライン602からゲート電圧が供給されることができる。したがって、第1*ローライン602は、ターゲットメモリセル600に対する書き込み動作を実行することができる。ターゲットメモリセル600のセレクトゲートは、第1*カラムライン612に連結されることができる。ターゲットメモリセル600のソース領域は、自己参照回路500と電気的に連結されることができる。
【0082】
一実施形態において、第1ローライン601に連結された自己参照回路500に対し、セル指定回路(図示せず)は特定のカラムライン、すなわちターゲットラインを指定することで指定メモリセルを選択することができる。第1メモリセルは、連結されたローライン及びカラムラインとの交差点がアドレス(address)として決定され、第1メモリセルのそれぞれは、予め設定されたターゲット重みを有する。したがって、セル指定回路(図示せず)は、自己参照回路500からターゲット重みに該当する電流が適切なメモリセルに印加されるように指定メモリセルを選択することができる。
【0083】
図7は、一実施形態に係る自己参照回路の例示図である。
【0084】
図7を参照すると、自己参照回路500は、第2メモリセル710、コンパレータ720及びパスゲート730を含むことができる。
【0085】
一実施形態において、第2メモリセル710は、コントロールゲートに調整ゲート電圧を印加することができる。
【0086】
一実施形態において、第2メモリセル710は2つ以上であることができる。第2メモリセル710が2以上である場合、各第2メモリセル710は並列に連結されることができる。また、並列に連結された第2メモリセル710は、コントロールゲートに互いに異なる調整ゲート電圧が印加され、互いに異なる出力電流が流れることができる。このとき、第2メモリセル710が非活性化(turn off)状態の場合、電流が流れないため、前記出力電流はゼロを含むことができる。
【0087】
一実施形態において、第2メモリセル710の数は、ターゲットメモリセルが有することができる重みの状態値の数に基づいて決定されることができる。例えば、第1メモリセルが256個の状態値を有するようにニューラルネットワークシステムを構成する場合、自己参照回路500は第2メモリセル710を8個含むことができる。したがって、各第2メモリセル710の出力電流が互いに異なるように流れるように第2メモリセル710の重みプログラミングを実行することができ、8個の第2メモリセル710はそれぞれの活性化有無に応じて
状態値を出力することができる。一方、第2メモリセル710がスプリットゲート型メモリセルである場合、奇数セル及び偶数セルからそれぞれ正状態値及び負状態値を出力することができる。すなわち、第2メモリセル710は、それぞれの奇数セル及び偶数セルの出力に応じて
状態値を出力することができる。
【0088】
すなわち、第1メモリセルが
状態値を有するようにニューラルネットワークシステムを構成する場合、自己参照回路500は第2メモリセル710をn個含むことができる。また、上述した説明によれば、第2メモリセル710を流れる出力電流の組み合わせに応じてターゲットメモリセルの重みプログラミングが実行されるため、出力電流を重みの状態値に対応するように組み合わせることができる。結果として、出力電流の組み合わせは、パスゲート730を介して自己参照回路500が連結されたローラインの各ターゲットメモリセルに印加され、予め設定されたターゲット重みを有するように重みプログラミングが実行されることができる。
【0089】
一実施形態において、コンパレータ720は、第2メモリセル710の両端電圧と予め設定されたコンパレータ電圧
の比較結果をデジタル信号に出力することができる。例えば、コンパレータ720は、第2メモリセル710の両端電圧と予め設定されたコンパレータ電圧
が等しい場合、コンパレータ720の両端に電流が流れないことができる。具体的には、第2メモリセル710に調整ゲート電圧が印加されて第2メモリセル710にターゲット出力電流が流れると、第2メモリセル710のチャネルコンダクタンス(Conductance)と、自己参照回路500に連結されたバンドギャップ回路の電位が等しくなる。すなわち、コンパレータ720に入力される第2メモリセル710の両端電圧とコンパレータ電圧が等しくなるため、コンパレータ720はデジタル信号として第2メモリセル710の調整が完了したと決定することができる。
【0090】
一実施形態において、コンパレータ720は、自己参照回路500がニューラルネットワーク回路に連結されてターゲットメモリセル(第1メモリセル)がターゲット重みを有するように重みプログラミングが完了したか否かを判断することができる。例えば、ニューラルネットワーク回路のターゲットメモリセルに電流が印加され、ターゲットメモリセルがターゲット重みを有すると、ターゲットメモリセルのチャネルコンダクタンスと自己参照回路500の第2メモリセル710のチャネルコンダクタンスが等しくなる。すなわち、コンパレータ720に入力されるターゲットメモリセルの両端電圧とコンパレータ電圧が等しくなるため、コンパレータ720はデジタル信号としてターゲットメモリセルの重みプログラミングが完了したと決定することができる。
【0091】
一実施形態において、パスゲート730は、前記デジタル信号に応じて第2メモリセル710を流れる電流が通過することができる。
【0092】
一実施形態において、自己参照回路500の第2メモリセル710は、ビット単位プログラミング方式または繰り返しプログラミング方式でプログラミングされたものであることができる。具体的には、第2メモリセル710の調整ゲート電圧は、繰り返しプログラミング方式で決定され、各第2メモリセル710に印加されるものであることができる。前述したように、自己参照回路500は、第1メモリセルの重みの状態値の数に応じて決定される小規模の組み込みシステムであるため、ビット単位プログラミング方式または繰り返しプログラミング方式でも迅速にプログラミングすることができる。特に、繰り返しプログラミング方式を適用することによって、短時間で精度の高いプログラミングを実行することができる。
【0093】
図8は、一実施形態に係る自己参照プログラミングの結果を示すグラフである。
【0094】
図8を参照すると、自己参照プログラミングの結果として、各第1メモリセルが有する重み状態値の電流別累積分布関数を確認することができる。高密度のクロスバーアレイにおいて、重みの各状態値が明確に区別されるようにプログラミングされていることが確認できる。
【0095】
図8では、7bit stateについて示しているが、例示的なものに過ぎず、重みの状態値の数はこれに限定されるものではない。
【0096】
図9は、一実施形態に係るニューラルネットワークシステムの具現方法のフローチャートである。
【0097】
図9を参照すると、ニューラルネットワークシステムの具現方法は、ニューラルネットワークシステム具現装置(以下、「装置」という)によって実行されることができる。
【0098】
ステップ910において、装置は、ニューラルネットワーク回路に含まれ、アレイ状に配列された第1メモリセルのターゲット重みを取得することができる。
【0099】
ステップ920において、装置は、自己参照回路を調整することができる。
【0100】
一実施形態において、自己参照回路は、複数のターゲットメモリセルがターゲット重みを有するように、連結されたローラインまたはカラムラインに電流を印加することができる。このとき、ターゲットメモリセルは、自己参照回路が連結されたローラインまたはカラムラインに位置する全てのメモリセルを意味することができる。
【0101】
一実施形態において、自己参照回路は、コントロールゲートに調整ゲート電圧が印加され、互いに並列に連結される複数の第2メモリセルを含むことができる。
【0102】
一実施形態において、複数の第2メモリセルは、ターゲットメモリセルが有することができる重みの状態値(State)の数に基づいてその数が決定されるものであることができる。
【0103】
一実施形態において、自己参照回路は、第2メモリセルの両端の電圧と設定されたコンパレータ電圧との比較結果をデジタル信号に出力するコンパレータを含むことができる。
【0104】
一実施形態において、装置は、複数の第2メモリセルに互いに異なる出力電流が流れるようにコントロールゲートに互いに異なる調整ゲート電圧を印加することができる。このとき、出力電流はゼロを含むことができ、出力電流の組み合わせは重みの状態値に対応することができる。
【0105】
一実施形態において、自己参照回路は、ターゲットメモリセルが予め設定されたターゲット重みを有するようにターゲットメモリセルに出力電流の組み合わせを印加することができる。
【0106】
ステップ930において、装置は、調整された自己参照回路をニューラルネットワーク回路のローラインまたはカラムラインに電気的に連結し、ニューラルネットワーク回路の重みを調整することができる。
【0107】
一実施形態において、装置は、ニューラルネットワーク回路のターゲットラインを指定することによって、複数のターゲットメモリセルの中からターゲットラインに対応する指定メモリセルを選択することができる。
【0108】
一実施形態において、装置は、ターゲットメモリセルがターゲット重みを有するようにターゲットメモリセルに対するプログラミング動作を実行することができる。
【0109】
一実施形態において、装置は、自己参照回路に一定の電圧が印加されるように基準電圧を提供することができる。
【0110】
一方、本発明に係る実施形態は、コンピュータ上で様々な構成要素を介して実行することができるコンピュータプログラムの形態で具現されることができ、そのようなコンピュータプログラムはコンピュータで読み取り可能な媒体に記録されることができる。このとき、媒体は、ハードディスク、フロッピーディスク及び磁気テープなどの磁気媒体、CD-ROM及びDVDなどの光記録媒体、フロプティカルディスク(floptical disk)などの光磁気記録媒体(magneto-optical medium)、及びROM、RAM、フラッシュメモリなどのようなプログラム命令語を記憶及び実行するように特別に構成されたハードウェア装置を含むことができる。
【0111】
一方、前記コンピュータプログラムは、本発明のために特別に設計及び構成されているか、コンピュータソフトウェア分野の当業者に公知され使用可能なものであることができる。コンピュータプログラムの例には、コンパイラによって作成されるような機械語コードだけでなく、インタプリタなどを使用し、コンピュータによって実行されることができる高級言語コードも含まれることができる。
【0112】
一実施形態によれば、本開示の様々な実施形態に係る方法は、コンピュータプログラム製品(computer program product)に含まれて提供されることができる。コンピュータプログラム製品は、商品として販売者及び購入者の間で取引されることができる。コンピュータプログラム製品は、デバイスで読み取り可能な記憶媒体(例えば、compact disc read only memory(CD-ROM))の形態で配布されるか、またはアプリケーションストア(例えば、プレイストア(商標))を介して、または2つのユーザ装置間で直接、オンラインで配布(例えば、ダウンロードまたはアップロード)されることができる。オンライン配布の場合、コンピュータプログラム製品の少なくとも一部は、製造元のサーバ、アプリケーションストアのサーバ、または中継サーバのメモリなどのデバイスで読み取り可能な記憶媒体に少なくとも一時的に記憶されるか、一時的に生成されることができる。
【0113】
本発明に係る方法を構成するステップについて明らかに順序を記載したり反したりする記載がない場合、前記ステップは適当な順序で行われることができる。必ずしも前記ステップの記載順序に従って本発明が限定されるものではない。本発明において、全ての例または例示的な用語の使用は、単に本発明を詳細に説明するためのものであり、特許請求の範囲によって限定されない限り、前記の例または例示的な用語によって本発明の範囲が限定されるものではない。さらに、当業者は、様々な修正、組み合わせ及び変更が追加された特許請求の範囲またはその均等物の範囲内で設計条件及び要因によって構成され得ることを理解するであろう。
【0114】
したがって、本発明の思想は、前記説明した実施形態に限定されて決められてはならず、後述する特許請求の範囲のみならず、この特許請求の範囲と均等またはこれから等価的に変更された全ての範囲は、本発明の思想の範疇に属するといえるだろう。