(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-06-11
(54)【発明の名称】トランジスタベースのニューラルネットワークのためのシステム、方法、およびコンピュータ装置
(51)【国際特許分類】
G06N 3/065 20230101AFI20240604BHJP
G06G 7/60 20060101ALI20240604BHJP
G06G 7/184 20060101ALI20240604BHJP
G06G 7/16 20060101ALI20240604BHJP
G06G 7/14 20060101ALI20240604BHJP
【FI】
G06N3/065
G06G7/60
G06G7/184
G06G7/16
G06G7/14
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024515727
(86)(22)【出願日】2022-05-06
(85)【翻訳文提出日】2023-11-22
(86)【国際出願番号】 CA2022050717
(87)【国際公開番号】W WO2022232947
(87)【国際公開日】2022-11-10
(32)【優先日】2021-05-07
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】523442172
【氏名又は名称】ブルーマインド インコーポレイテッド
(74)【代理人】
【識別番号】100105924
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】ゴッソン、ジョン リンデン
(72)【発明者】
【氏名】レビンソン、ロジャー
(57)【要約】
【解決手段】人工ニューラルネットワークを操作するためのコンピュータシステム、方法、および装置を提供する。システムはニューロンを含む。ニューロンは、入力信号を処理する電荷トラップ型トランジスタ(CTT)を含む複数のシナプスと、複数のシナプスからドレイン電流を受信する蓄積ブロックと、ドレイン電流から電荷を蓄積し、蓄積された信号の短期メモリとして機能する蓄積用キャパシタと、蓄積された電荷を放電サイクル中に放電することによって出力信号を生成する放電パルス発生器と、入力電圧としての出力信号を基準電圧と比較する比較器と、を備える。CTTは、シナプス重みを供給し、ドレイン電流は、複数のシナプスからの乗算の出力として生成される。比較器は、入力電圧が基準電圧を上回っている場合は第1出力を生成し、入力電圧が基準電圧を下回っている場合は第2出力を生成する。
【選択図】
図20
【特許請求の範囲】
【請求項1】
人工ニューラルネットワーク(ANN)を動作させるシステムであって、該システムはニューロンを含み、
前記ニューロンの各々は、
入力信号を処理する電荷トラップ型トランジスタ(CTT)を含む複数のシナプスと、
前記複数のシナプスからドレイン電流を受信する蓄積ブロックと、
前記ドレイン電流から電荷を蓄積し、蓄積された信号の短期メモリとして機能する蓄積用キャパシタと、
蓄積された電荷を放電サイクル中に放電することによって出力信号を生成する放電パルス発生器と、
入力電圧としての出力信号を基準電圧と比較する比較器と、
を備え、
前記CTTは、シナプス重みを供給し、
前記ドレイン電流は、複数のシナプスからの乗算の出力として生成され、
前記比較器は、入力電圧が基準電圧を上回っている場合は第1出力を生成し、入力電圧が基準電圧を下回っている場合は第2出力を生成することを特徴とするシステム。
【請求項2】
前記蓄積ブロックは、
前記複数のシナプスからドレイン電流を受信する記憶装置と、
前記シナプス重みを記憶し、前記入力信号を用いて前記シナプス重みの乗算を実行する複数の乗算器と、
前記複数の乗算器からの乗算出力を合計して累積信号を得る累積器と、
を含むことを特徴とする請求項1に記載のシステム。
【請求項3】
前記比較器は、少なくとも1つの相補型金属酸化膜半導体(CMOS)インバータのカスケードからなる閾値インバータ量子化(TIQ)比較器であり、
前記CMOSインバータの各々は、pチャネル金属酸化膜半導体(PMOS)トランジスタと、nチャネル金属酸化膜半導体(NMOS)トランジスタと、からなり、
前記基準電圧は、前記TIQ比較器によって自己生成されるTIQ比較器の閾値に対応し、
前記TIQ比較器の閾値は、前記PMOSトランジスタまたは前記NMOSトランジスタを介して調整可能であり、
前記TIQ比較器の閾値は、前記PMOSトランジスタの強度を前記NMOSトランジスタの強度で割った比率に対応することを特徴とする請求項2に記載のシステム。
【請求項4】
前記ドレイン電流は、複数のシナプスからの乗算の出力として生成され、入力信号とシナプス重みの積に等しい量の電荷を生成することを特徴とする請求項2に記載のシステム。
【請求項5】
前記ドレイン電流は、前記蓄積ブロックに接続する前に互いに接続し、
前記蓄積ブロックは、前記ドレイン電流を合計し、
前記ドレイン電流の合計は、蓄積信号として蓄積用キャパシタに伝送されることを特徴とする請求項2から4のいずれかに記載のシステム。
【請求項6】
前記CTTの各々は、入力としてシナプス重みと時間を表すドレイン電流との乗算を実行し、
すべての乗算結果は、前記蓄積用キャパシタに蓄積されることを特徴とする請求項2から5のいずれかに記載のシステム。
【請求項7】
前記蓄積ブロックは、前記ドレイン電流を有線OR関数として合計することを特徴とする請求項2から6のいずれかに記載のシステム。
【請求項8】
前記CTTの各々の閾値電圧は、対応するシナプス重みの値を記憶するようにプログラミングにより調整され、
前記CTTの各々は、電圧パルスが印加されるゲートを備え、
前記電圧パルスのソースは接地であり、
ゲート-ソース間電圧は一定であり、
前記電圧パルスは、時間を用いて情報を伝達することを特徴とする請求項2から7のいずれかに記載のシステム。
【請求項9】
前記シナプス重みを記憶するために抵抗が使われることを特徴とする請求項2から8のいずれかに記載のシステム
【請求項10】
前記抵抗は、前記CTTによって提供されることを特徴とする請求項9に記載のシステム。
【請求項11】
前記複数のシナプスは、前記シナプス重みを前記CTTの閾値電圧シフトに記憶することを特徴とする請求項2から10のいずれかに記載のシステム。
【請求項12】
制御信号として使用されるために、第1のスケーリングされた電流パルスからの電荷が前記蓄積用キャパシタに蓄積されることを特徴とする請求項2から11のいずれかに記載のシステム。
【請求項13】
前記ニューロンの各々の積分電荷は、前記入力信号と前記シナプス重みの積に比例し、
前記積分電荷の値は、放電まで一定であることを特徴とする請求項2から12のいずれかに記載のシステム。
【請求項14】
前記CTTを流れる電流が、カレントミラーによってミラーリングされ、前記蓄積用キャパシタに電荷を蓄積させて、重み付けされた入力の和に比例する電圧を生成することを特徴とする請求項2から13のいずれかに記載のシステム。
【請求項15】
前記放電パルス発生器は、放電周期カスコード電流源であることを特徴とする請求項2から14のいずれかに記載のシステム。
【請求項16】
前記ANNにおける減算機能を実現するために、前記放電パルス発生器は、蓄積中に蓄積された信号をさらに送信することを特徴とする請求項2から15のいずれかに記載のシステム。
【請求項17】
前記TIQ比較器の基準電圧に加えて、第2の基準電圧を備えることを特徴とする請求項3に記載のシステム。
【請求項18】
前記TIQ比較器の基準電圧の代わりに、第2の基準電圧を備えることを特徴とする請求項3に記載のシステム。
【請求項19】
出力信号として活性化パルスを生成することを特徴とする請求項2から18のいずれかに記載のシステム。
【請求項20】
前記複数のシナプスは、前記入力信号を受信し、前記入力信号の電圧を電流に変換し、出力信号として第2のスケーリングされた電流パルスを生成することを特徴とする請求項2から19のいずれかに記載のシステム。
【請求項21】
ANNの層間で情報を一時的に保持するエフェメラルメモリデバイスをさらに備え、
前記エフェメラルメモリデバイスは、
非同期制御可能な遅延を提供するアナログ・サブスレッショルド遅延ブロックを含む内側リングと、
前記内側リングをサポートする複数の非同期カウンタからなる外側リングと、
を備え、
前記内側リングと前記外側リングとは、連動して動作し、遅延状態を短期間で効率よく正確に記憶することを特徴とする請求項1から20のいずれかに記載のシステム。
【請求項22】
前記ANNは、
ニューロンで入力を受信する入力層と、
前記入力にシナプス重みを乗じて積を生成し、前記積にバイアスを加えて和を生成し、前記和を活性化関数に適用し、前記活性化関数を実行して出力信号を生成し、前記出力信号をニューロンの後続層にカスケード接続する少なくとも1つの隠れ層と、
出力信号を提供する出力層と、
を備え、
前記入力層、前記少なくとも1つの隠れ層および前記出力層の各々は、少なくとも1つのニューロンを含むことを特徴とする請求項2に記載のシステム。
【請求項23】
前記CTTのサブセットは、NMOS CTTであることを特徴とする請求項1から22のいずれかに記載のシステム。
【請求項24】
前記CTTのサブセットは、PMOS CTTであることを特徴とする請求項1から22のいずれかに記載のシステム。
【請求項25】
前記CTTの各々は、高誘電率金属ゲートを含み、電荷トラッピングプロセス中にドレインバイアスが印加されることを特徴とする請求項1から24のいずれかに記載のシステム。
【請求項26】
前記CTTの各々は、SiO
2の界面層を含むゲート誘電体からなることを特徴とする請求項1から25のいずれかに記載のシステム。
【請求項27】
前記ゲート誘電体の各々は、SiO
2の界面層とカスケード接続されたHfSiON層からなることを特徴とする請求項26に記載のシステム。
【請求項28】
前記CTTの各々は、電荷トラッピングプロセス中にドレインバイアスを印加し、他のキャリアをゲート誘電体中に安定にトラップさせることを特徴とする請求項26または27に記載のシステム。
【請求項29】
前記CTTの各々の閾値電圧は、前記ゲート誘電体中の各々にトラップされる電荷の量によって変調され、
前記ドレインバイアスの各々は、強化された局所加熱効果によって電荷トラッププロセスを強化し安定化させ、
前記CTTの各々の閾値電圧は、制御された量だけシフト可能であり、パラメータ値を符号化することを特徴とする請求項28に記載のシステム。
【請求項30】
前記重み値は、設定されたプログラミング電圧バイアスで長さの異なるゲートパルスを印加することによってプログラムされ、
正のプログラミングの間、正のゲートパルスが印加され、閾値電圧が第1の方向にシフトし、
負のプログラミングの間、負のゲートパルスが印加され、閾値電圧が第1の方向とは反対の第2の方向にシフトすることを特徴とする請求項29に記載のシステム。
【請求項31】
ゲートのソース電圧に一定振幅のパルスが印加されることを特徴とする請求項25から30のいずれかに記載のシステム。
【請求項32】
前記一定振幅のパルスは、前記ANNの後続層に直接伝搬されることを特徴とする請求項31に記載のシステム。
【請求項33】
前記一定振幅のパルスは、非線形関数を介してANNの後続層に伝搬されることを特徴とする請求項31記載のシステム。
【請求項34】
前記非線形関数は、整流線形ユニット(ReLU)であることを特徴とする請求項33に記載のシステム。
【請求項35】
前記第1出力は前記第2出力より高いことを特徴とする請求項1から34のいずれかに記載のシステム。
【請求項36】
前記第1出力は前記第2出力より低いことを特徴とする請求項1から34のいずれかに記載のシステム。
【請求項37】
ニューロンを含む人工ニューラルネットワーク(ANN)を動作させる方法であって、
複数の電荷トラップ型トランジスタ(CTT)を介して入力信号を処理するステップと、
前記CTTがシナプス重みを供給するステップと、
前記複数のCTTから乗算の出力としてドレイン電流を生成するステップと、
前記複数のCTTから前記ドレイン電流を受信するステップと
蓄積された信号のための短期メモリとして機能するように、前記ドレイン電流から電荷を蓄積するステップと、
蓄積された電荷を放電サイクル中に放電することによって、出力信号を生成するステップと、
比較器で入力電圧を基準電圧と比較するステップと、
を含み、
前記比較器は、前記入力電圧が前記基準電圧以上であれば第1の出力を生成し、前記入力電圧が前記基準電圧未満であれば第2の出力を生成することを特徴とする方法。
【請求項38】
前記複数のCTTから前記ドレイン電流を受信するステップは、
前記複数のシナプスから前記ドレイン電流を受信するステップと、
前記シナプス重みを記憶するステップと、
前記入力信号によってシナプス重みの乗算を実行するステップと、
前記乗算の出力を合計して累積信号を得るステップと、
を含むことを特徴とする請求項37に記載の方法。
【請求項39】
前記比較器は、閾値インバータ量子化(TIQ)比較器であり、
前記TIQ比較器は、少なくとも1つの相補型金属酸化膜半導体(CMOS)インバータのカスケードからなり、
前記CMOSインバータの各々は、pチャネル金属酸化膜半導体(PMOS)トランジスタおよびnチャネル金属酸化膜半導体(NMOS)トランジスタからなり、
前記基準電圧は、前記TIQ比較器によって自己生成されるTIQ比較器の閾値に対応し、
前記TIQ比較器の閾値は、前記PMOSトランジスタまたは前記NMOSトランジスタを介して調整可能であり、
前記TIQ比較器の閾値は、前記PMOSトランジスタの強度を前記NMOSトランジスタの強度で割った比率に対応することを特徴とする請求項37または38に記載の方法。
【請求項40】
前記入力信号は、前記CTTで受信され、
前記入力信号の電圧は、電流に変換され、
第2のスケーリングされた電流パルスが出力信号として生成されることを特徴とする請求項39に記載の方法。
【請求項41】
入力層が、入力を受信するステップと、
隠れ層が、前記入力にシナプス重みを乗算して積を生成するステップと、
前記隠れ層が、前記積にバイアスを加算して和を生成するステップと、
前記隠れ層が、前記和を活性化関数に適用するステップと、
前記隠れ層が、前記活性化関数を実行して出力信号を生成するステップと、
前記隠れ層が、前記出力信号をニューロンの後続層にカスケード接続するステップと、を含むことを特徴とする請求項39または40に記載の方法。
【請求項42】
ANNを較正するステップをさらに含み、
前記ANNを較正するステップは、
指定された基準重みブロックを決定するステップと、
前記指定された基準重みブロックに従って、カレントミラーを較正するステップと、
前記指定された基準重みブロックに従って、蓄積用キャパシタを較正するステップと、
前記指定された基準重みブロックに従って、前記TIQ比較器を較正するステップと、 前記指定された基準重みブロック内のCTTに記憶された各シナプス重みを較正するステップと、
を含むことを特徴とする請求項41に記載の方法。
【請求項43】
較正後、前記カレントミラー、前記蓄積用キャパシタおよび前記比較器は、それぞれ、前記指定された基準重みブロックと同期し、
前記カレントミラー、前記蓄積用キャパシタおよび比較器の較正が完了すると、各ニューロン信号経路は、指定された基準重みブロックと相対的にマッチングされ、
すべてのニューロンは、互いにレシオメトリックにマッチングされることを特徴とする請求項42に記載の方法。
【請求項44】
前記第1出力は前記第2出力より高いことを特徴とする請求項37から43のいずれかに記載の方法。
【請求項45】
前記第1出力は前記第2出力より低いことを特徴とする請求項37から43のいずれかに記載の方法。
【請求項46】
入力電圧と基準電圧とを比較するための閾値インバータ量子化(TIQ)比較器であって、
少なくとも1つの相補型金属酸化膜半導体(CMOS)インバータのカスケードと、
入力信号を受信する入力接続と、
出力信号を送信する出力接続と、
電力を受信する電源接続と、
接地と、
を備え、
前記CMOSインバータの各々は、pチャネル型金属酸化膜半導体(PMOS)トランジスタと、nチャンネル金属酸化膜半導体(NMOS)トランジスタと、を備え、
前記基準電圧は、TIQ比較器によって自己生成されたTIQ比較器の閾値に対応し、
前記入力電圧が閾値を上回ると、第2出力が第1出力に反転し、
前記入力電圧が閾値を下回ると、第1出力が第2出力に反転し、
前記TIQ比較器の閾値は、前記PMOSトランジスタまたは前記NMOSトランジスタを介して調整可能であり、
前記TIQ比較器の閾値は、前記PMOSトランジスタの強度を前記NMOSトランジスタの強度で割った比率に対応することを特徴とするTIQ比較器。
【請求項47】
前記PMOSトランジスタは、PMOS CTTであり、
前記NMOSトランジスタは、NMOS CTTであり、
前記TIQ比較器は、前記PMOS CTTおよび前記NMOS CTTによって較正されることを特徴とする請求項46に記載のTIQ比較器。
【請求項48】
前記PMOS CTTおよび前記NMOS CTTは、さらなるCTTを含む人工ニューラルネットワーク(ANN)上の基準値を較正するための調整可能な閾値を提供することを特徴とする請求項46または47に記載のTIQ比較器。
【請求項49】
前記さらなるCTTのサブセットは、PMOSデバイスであることを特徴とする請求項48に記載のTIQ比較器。
【請求項50】
前記さらなるCTTのサブセットは、NMOSデバイスであることを特徴とする請求項48に記載のTIQ比較器。
【請求項51】
当該TIQ比較器の閾値電圧が、重み行列に記録された閾値電圧を再プログラムすることによって維持され、再較正されることを特徴とする請求項46から50のいずれかに記載のTIQ比較器。
【請求項52】
当該TIQ比較器の閾値シフトの改善されたキャンセルを実現するために、相関二重サンプリングが使われることを特徴とする請求項46から51のいずれかに記載のTIQ比較器。
【請求項53】
前記相関二重サンプリングが蓄積用キャパシタの電圧を初期化することを特徴とする請求項52に記載のTIQ比較器。
【請求項54】
デュアルスロープTIQ比較器であることを特徴とする請求項46から53のいずれかに記載のTIQ比較器。
【請求項55】
前記第1出力は前記第2出力より高いことを特徴とする請求項46から54のいずれかに記載のTIQ比較器。
【請求項56】
前記第1出力は前記第2出力より低いことを特徴とする請求項46から54のいずれかに記載のTIQ比較器。
【請求項57】
人工ニューラルネットワーク(ANN)の層間で情報を一時的に保持するエフェメラルメモリデバイスであって、
非同期制御可能な遅延を提供するアナログ・サブスレッショルド遅延ブロックを含む内側リングと、
前記内側リングをサポートする複数の非同期カウンタからなる外側リングと、
を備え、
前記内側リングと前記外側リングとは、連動して動作し、遅延状態を短期間で効率よく正確に記憶することを特徴とするエフェメラルメモリデバイス。
【請求項58】
前記アナログ・サブスレッショルド遅延ブロックは、複数のサブスレッショルド・パストランジスタ・ロジック(PTL)遅延線素子を含むことを特徴とする請求項57に記載のエフェメラルメモリデバイス。
【請求項59】
前記非同期カウンタは、第1の非同期カウンタを含み、
前記第1の非同期カウンタは、1ビットの非同期サブスレッショルド・カウンタであり、
前記非同期カウンタはDフリップフロップを含むことを特徴とする請求項57または58に記載のエフェメラルメモリデバイス。
【請求項60】
複数の非同期カウンタをさらに含むことを特徴とする請求項59に記載のエフェメラルメモリデバイス。
【請求項61】
前記複数の非同期カウンタは、1ビットのカスケード接続されたサブスレッショルド・カウンタであることを特徴とする請求項60に記載のエフェメラルメモリデバイス。
【請求項62】
非同期に機能することを特徴とする請求項59から61のいずれかに記載のエフェメラルメモリデバイス。
【請求項63】
時間がナノワットまたはピコワットの電力消費空間に一時的に記憶されることを特徴とする請求項59から62のいずれかに記載のエフェメラルメモリデバイス。
【請求項64】
第1の活性化パルスを受信し、前記第1の非同期カウンタを介して第1の活性化パルスの幅を記憶し、
前記第1の非同期カウンタをカウントダウンすることにより、前記第1の活性化パルスを前記ANNの後続層に送信することを特徴とする請求項59から63のいずれかに記載のエフェメラルメモリデバイス。
【請求項65】
前記アナログ・サブスレッショルド遅延ブロックおよび前記第1の非同期カウンタは、内部遅延を伴う正帰還ループを共に形成し、これにより発振器が形成されることを特徴とする請求項59から64のいずれかに記載のエフェメラルメモリデバイス。
【請求項66】
前記発振器は、遅延線素子の周波数に基づいて発振する自己タイミング発振器であり、
当該エフェメラルメモリデバイスは、自己タイミング発振器によってクロックされ、
前記遅延線素子および前記第1の非同期カウンタによって作成される第2のカウンタをさらに含むことを特徴とする請求項59から65のいずれかに記載のエフェメラルメモリデバイス。
【請求項67】
前記発振器は、蓄積用キャパシタの放電中に有効になり、前記第1の非同期カウンタをトリガしてカウントアップし、
前記発振器は、前記蓄積用キャパシタの放電が完了すると無効になり、前記第1の非同期カウンタの値を保持し、
前記発振器は、その後再び有効になり、第1の時間の間に前記第1の非同期カウンタをゼロまでカウントダウンし、
前記第1の時間の間に、後続のニューロンへの入力としてパルスが生成されることを特徴とする請求項66に記載のエフェメラルメモリデバイス。
【請求項68】
前記蓄積用キャパシタの放電中に、ニューロンが第1の活性化パルスを生成し、
前記第1の活性化パルスがハイのとき、前記第1の活性化パルスは前記発振器を有効にし、
前記第1の活性化パルスがローのとき、前記第1の活性化パルスは前記発振器を無効にし、前記第1の非同期カウンタは停止し、前記第1の非同期カウンタは前記第1の活性化パルスのパルス幅を表す数値を記憶し、第1の非同期カウンタはさらに記憶された数値を一定期間保持することを特徴とする請求項67に記載のエフェメラルメモリデバイス。
【請求項69】
前記一定期間は数秒間であることを特徴とする請求項68に記載のエフェメラルメモリデバイス。
【請求項70】
前記第1の活性化パルスがハイのとき、前記第1の非同期カウンタはカウントアップし、
当該エフェメラルメモリデバイスが前記第1の活性化パルスを後続のニューロンに印加して遅延線素子を有効にし第1の活性化パルスに等しい第2の活性化パルスを生成するとき、前記第1の非同期カウンタはカウントダウンすることを特徴とする請求項67から69のいずれかに記載のエフェメラルメモリデバイス。
【請求項71】
前記第1の非同期カウンタは、当該第1の非同期カウンタと逆に構成された第2のカウンタと対になっており、
前記第2のカウンタは、前記第1の非同期カウンタがカウントダウンするとき、カウントアップして前記第1の活性化パルスの幅を記憶することを特徴とする請求項66から70のいずれかに記載のエフェメラルメモリデバイス。
【請求項72】
カウントアップする前記第2のカウンタは、前記蓄積用キャパシタの放電サイクルによって有効にされ、前記比較器が閾値電圧に従って状態を反転させるときに無効にされ、
カウントダウンする前記第1の非同期カウンタは、前記ANNの後続層に対する推論開始信号によって有効化されることを特徴とする請求項66から71のいずれかに記載のエフェメラルメモリデバイス。
【請求項73】
スペースと電力を節約するためにダイナミックロジックを使用することを特徴とする請求項57から72のいずれかに記載のエフェメラルメモリデバイス。
【請求項74】
タイムエフェメラルメモリデバイスを含むことを特徴とする請求項57から72のいずれかに記載のエフェメラルメモリデバイス。
【請求項75】
時間は、絶対時間、経過時間、遅延時間または時間変化率のうちのいずれかとして計算されることを特徴とする請求項74に記載のエフェメラルメモリデバイス。
【請求項76】
時間が絶対時間として計算され、すべての情報が時間に関して比量的に処理されることを特徴とする請求項74に記載のエフェメラルメモリデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
以下は、一般にニューラルネットワークおよび数値計算に関し、より具体的には、アナログベースのニューラルネットワークおよび計算のためのシステム、方法、およびコンピュータ装置に関する。
【背景技術】
【0002】
一般化された人工ニューラルネットワーク(ANN)は、生物学的な神経構造を借用した機械学習アーキテクチャとして説明されることがある。このアーキテクチャでは、第1の入力からのニューロンの活性化が後続の層にカスケードし、後続の層のニューロンの興奮性または抑制性のいずれかの挙動を引き起こすことができる。ニューラルネットワークは人工知能システムの基盤を形成し、技術ソリューションのほとんどすべての側面で応用されつつある。ニューラルネットワークおよび人工知能をコンピュータの問題に適用する際の最も重要な課題の1つは、ソリューションの総所有コスト、特にソリューションの消費電力である。従来のデータセンターでは、電力は制約事項ではなく、CPUやGPUなどの電力消費の激しいプロセッサが、さまざまな種類のデータに対してニューラルネットワーク・アルゴリズムを実行するために利用されている。しかし、人工知能を実世界のアプリケーションに向けることが急務となっている。例えば、様々な種類のセンサがデータを生成する具体的なケースでは、電力予算が大きな制約となる。この制約により、汎用CPUやGPUよりもはるかに効率的な、ニューラルネットワークアルゴリズムを処理する低消費電力方法の必要性が高まっている。
【0003】
図1Aには、一般的な従来のANN100が示されている。
図1Aは、基本的な推論システムアーキテクチャを示す。ANN100は、入力を受信する入力層102、計算を実行する隠れ層104および出力を提供する出力層106を含む。入力層102、隠れ層104および出力層106の各々は、1つ以上のニューロン108を含む。
【0004】
ANN100は、生物学的神経構造からその形態を緩やかに借用した機械学習アーキテクチャである。生物学的神経構造では、第1の入力信号(図示せず)からのニューロン108の活性化(例えば、入力層102における)は、後続の層(例えば、隠れ層104)にカスケードする。このカスケードは、後続の層のニューロンの興奮性行動または抑制性行動を引き起こす。
【0005】
個々のニューロン108は、単独で、または組み合わせて、さまざまな動作のいずれかを実行することができる。カスケードを受信するANN100の層のニューロン108は、前の層のニューロン108の値を、関連するシナプス重み(図示せず)と組み合わせることができる。ニューロン108は非線形スケーリングを適用してもよく、以下「活性化関数」と呼ぶ。前述の値の組み合わせは、乗算によって達成され、その後、他の積と合計される。乗算は、シナプス重みを乗じたニューロン108の活性化に従って実行される。
【0006】
活性化関数の結果として、有利には、進行層(例えば、隠れ層104)の出力が先行層(例えば、入力層102)に線形にマッピングされなくてもよい。非線形のスケーリングは、有利には、学習段階での勾配降下を可能にする。ニューロン108は、値をニューロンの後続層(例えば、出力層106)に伝播することができる。
【0007】
前述のプロセスは、従来のニューラルネットワーク(ANN100など)に実装される。従って、重要な計算タスクは、ベクトル-行列-乗算のようなANN100に実装することができる。この場合、入力またはニューロンの活性化のベクトルxiは、活性化を生成するために、乗算累積(MAC)関数(Σwij*xi)を使って、シナプス重みの行列wijと乗算される。
【0008】
実装では、積と和は絶対値(デジタルの場合は数値、アナログの場合は電圧または電流)に基づく。例えば、デジタル実装では、入力信号およびシナプス重みは2進数で表され、乗算はデジタル乗算器で実行され、結果はデジタル数として累積または合計される。この方法は、エネルギー効率およびシリコン面積効率が比較的低い。
【0009】
図1Bに、従来のANN100が実行し得るさまざまな機能のボックス図を示す。個々のニューロン108は、単独で、または組み合わせて、さまざまな動作を実行できる。ANN100の特定の層(隠れ層104など)のニューロン108は、
図1Aに記載された機能のいずれかを実行することができる。
【0010】
入力層102は、入力信号(図示せず)を受信する。入力層102はさらに、入力信号にニューロン108のシナプス重み(図示せず)を乗算する。112で、ANN100は、実行されたすべての乗算の結果を累積、つまり足し合わせる。114で、ANNは乗算の累積出力にバイアスを加え、その合計を活性化関数116に適用する。活性化関数116で、ANNは活性化関数を実行し、活性化関数の出力を後続のニューロンの層にカスケードする。
【0011】
図2は、従来のデジタル乗積アレイ200を示す。
図2は、
図1のANN100のような従来のANNの乗算および累算のような機能を計算することができる、乗算-累算アレイ200のデジタル実装を示す。
【0012】
アレイ200は、前の層102、104の前のニューロン108からの出力信号を受信する活性化メモリ202と、シナプス重みを供給する重みメモリ204と、入力信号を乗算し、乗算の出力を合計する乗算累積器(MACS)205と、加算されるMAC205の出力信号を累積する累積器206と、を含む。
【0013】
アレイ200は、乗算アキュムレータ205の可能な一実施形態を例示するMACユニット208をさらに含む。
【0014】
図11は、
図1AのANN100を実施するために、シナプス重みを記憶する抵抗を使用する従来のアナログ伝導ベースの推論システム1100を示す。
【0015】
システム1100では、メモリ素子が、所望のシナプス重みに比例する抵抗を作成するために使用される。メモリ素子は、半導体製造において特別な処理層を必要とする場合がある。抵抗器(図示せず)に電圧が印加され、その結果生じる電流は、I=V/Rとなるオームの法則から、入力信号と重量の積となる。重さは1/Rとして記憶される。
【発明の概要】
【発明が解決しようとする課題】
【0016】
このシステムは、プロセス、絶対電圧および温度に依存する。これらのパラメータの経時的なドリフトや誘導ノイズによって電流に誤差が生じ、計算の精度や、システム1100を使用して実装されたニューロンの性能に直接影響を与える可能性がある。このような非理想性を補正するために、複雑な技術が慎重に使用される場合がある。これにはコストがかかり、達成可能な性能が制限される。この困難さにより、アナログのインメモリコンピューティングは非常に困難であり、商業的にも非現実的なものとなっている。このようなインメモリ・ソリューションの実装に使用される技術の例としては、相変化メモリ(PCM)、抵抗RAM(RRAM)、FLASHメモリ、容量性メモリなどがある。本開示のシステム、方法、および装置は、これらの困難の少なくともいくつかを有利に克服し得る。
【0017】
入力層102と出力層106との間の計算は、シナプス重み105に従って行われてもよい。
【0018】
システム1100は、ANN100を実装するハードウェア1110をさらに含む。ハードウェア1110はトランジスタ1112を含む。トランジスタ1112は統合されてコンダクタンス対1114を形成してもよい。ハードウェア1110は、不揮発性メモリ1116をさらに含む。
【課題を解決するための手段】
【0019】
本開示は、ニューラルネットワーク処理の目的を含む多くの目的に最小限のコストで適用可能な、効率的でエレガントなアナログ処理システムを表す。本開示は、使用、および、コンピュータシステム、方法、および装置において実装される場合、較正機構において閾値を相殺するためにN型金属酸化膜半導体(NMOS)トランジスタの閾値を調整する電荷トラップトランジスタ(CTT)技術を利用するような、アナログ記憶機構および計算機構を含む実施形態を表す。ニューラルネットワークにおいて乗算、累積、非線形活性化などの機能を実行するニューロンは、相補型金属酸化膜半導体(CMOS)などの既存の標準的なシリコン処理技術を使うことによって較正できる。
【0020】
インテリジェントシステムに固有の電力およびコストの障壁を克服するために、アナログ/混合信号設計技術を使用して実装されるシリコンニューラルネットワークアーキテクチャが必要とされている。これらのアナログ・ソリューションは、安定性と信頼性を確保するための安定性メカニズムによって改善される可能性がある。有利には、前述の実施の形態で実装されるニューラルネットワークは、長期間にわたって日常的に使うことができる。
【0021】
本開示では、絶対電圧、電流、およびデバイス特性が精度に影響を与えない、電荷トラップ型トランジスタ(CTT)を含む多種多様なメモリタイプの使用を可能にするために、新規なアーキテクチャアプローチが利用されている。絶対電圧(または電流)に依存して値を適切にスケーリングすることに代えて、時間が基準として使われる。すべての計算は、時間に対してレシオメトリックに実行される。安定的な時間基準(例えば、水晶発振器)を得るのは一般に容易で低コストであるため、すべての計算をこの安定的な時間基準に対して行うことで、他のすべての依存関係を較正することができる。
【0022】
ある実施の形態では、ニューラルネットワーク処理を含む信号処理に必要な基本的な計算要素は、基本的な情報要素として、時間または位相を利用して実装される。この実施の形態は、性能が、アナログ信号処理ソリューションで一般に使われる電圧、電流、コンダクタンスまたはインダクタンスなどの絶対的な物理基準に直接依存しないため、従来のアプローチとは大きく異なる。時間または位相を適宜利用することで、他のアナログ・コンピューティング・アプローチよりも有利に、大幅な性能向上を実現できる。このような有利な性能向上には、環境および製造上の非理想に対する大きな感度が含まれる。
【0023】
ある実施の形態では、情報は、周期信号の時間または位相の変化として符号化される。他の物理現象は、レシオメトリックな意味での物理現象の瞬時値に関連してのみ重要な場合がある。
【0024】
ある実施の形態では、入力は時間パルスに変換され、続いて、CTT記憶構造のようなコンダクタンスがプログラムされ周期的に更新され得る素子のコンダクタンスによって重み付けされ、スケーリングされた電流パルスを生成する。電流パルスの結果としての電荷は蓄積蓄積用キャパシタに蓄積され、TIQコンパレータのようなコンパレータの制御信号として使われる。その後、カスケード接続された次の層またはエフェメラルメモリストレージのような一時的ストレージまたはエフェメラルメモリデバイスのいずれかに伝搬される。
【0025】
ある実施の形態では、閾値インバータ量子化(TIQ)比較器などの比較器が提供される。ある実施の形態では、TIQ比較器は、比較および量子化を実行する。ある実施の形態では、TIQ比較器は、トランジスタの一部が電荷トラップ・デバイスとして機能する少なくとも1つのインバータを含む。各インバータは2対のCTTを含み、各対はpチャネル金属酸化膜半導体(PMOS)トランジスタとnチャネル金属酸化膜半導体(NMOS)トランジスタとを含む。各インバータ1001のTIQ比較器の閾値は、インバータ1001のPMOS CTTの強度をインバータ1001のNMOS CTTの強度で割った比率に応じて設定される。各トランジスタの強度は、各トランジスタの幅、各トランジスタの長さ、各トランジスタの移動度、および/または各トランジスタの他の関連パラメータまたは要因に関連すると理解される。TIQ比較器デバイスは、CTT較正TIQ比較器であってもよい。
【0026】
ある実施の形態では、短い時間遅延の後に使用される情報を一時的に保持するエフェメラルメモリデバイスが提供される。エフェメラルメモリデバイスは、非同期制御可能遅延の内側リングを形成する複数のサブスレッショルド・パストランジスタ・ロジック(PTL)遅延線ブロックを含むことができる。内側リングは、非同期カウンタを形成するDフリップフロップの外側リングによってサポートされる場合がある。この組み合わせは、遅延状態の効率的な短期間正確な記憶を達成するために連動して動作することができる。
【0027】
ある実施の形態では、較正方法が提供される。実施の形態では、重みブロック→カレントミラー→蓄積用キャパシタ→比較器チェーンを含む1つの指定された基準構造に従って、すべてのデバイス動作を較正できる。一旦、基準チェーンが単位スケール時間(例えば、1pFコンデンサのフルスケール電荷を1μsで校正)に校正されると、すべてのカレントミラー/コンデンサ・比較器・チェーンは、同じ基準信号チェーンを使って較正される可能性がある。
【0028】
人工ニューラルネットワーク(ANN)を動作させるシステムが提供される。システムはニューロンを含む。各ニューロンは、入力信号を処理する電荷トラップ型トランジスタ(CTT)を含む複数のシナプスと、複数のシナプスからドレイン電流を受信する蓄積ブロックと、蓄積された信号の短期メモリとして機能するようにドレイン電流から電荷を蓄積する蓄積用キャパシタと、蓄積された電荷を放電サイクル中に放電することによって出力信号を生成する放電パルス発生器と、入力電圧としての出力信号を基準電圧と比較する比較器と、を備える。CTTは、シナプス重みを供給する。ドレイン電流は複数のシナプスからの乗算の出力として生成される。比較器は、入力電圧が基準電圧を上回っている場合は第1の出力を生成し、入力電圧が基準電圧を下回っている場合は第2の出力を生成する。
【0029】
ある実施の形態では、累積ブロックは、複数のシナプスからドレイン電流を受信する記憶装置と、シナプス重みを記憶し、入力信号によるシナプス重みの乗算を実行する複数の乗算器と、複数の乗算器からの乗算の出力を合計して累積信号を得る累積器と、を含む。
【0030】
ある実施の形態では、比較器は、少なくとも1つの相補型金属酸化膜半導体(CMOS)インバータのカスケードを含む閾値インバータ量子化(TIQ)比較器である。各CMOSインバータは、pチャネル金属酸化膜半導体(PMOS)トランジスタとnチャネル金属酸化膜半導体(NMOS)トランジスタを含む。基準電圧は、TIQ比較器によって自己生成されるTIQ比較器の閾値に対応する。TIQ比較器の閾値は、PMOSトランジスタまたはNMOSトランジスタを介して調整可能である。TIQ比較器の閾値は、PMOSトランジスタの強度をNMOSトランジスタの強度で割った比率に対応する。
【0031】
ドレイン電流は、複数のシナプスからの乗算の出力として生成されてもよく、入力信号とシナプス重みとの積に等しい量の電荷を生成してもよい。
【0032】
蓄積ブロックに接続する前に、ドレイン電流は一緒に接続してもよく、蓄積ブロックはドレイン電流を合計してもよく、ドレイン電流の合計は蓄積信号として蓄積のために蓄積用キャパシタに伝送されてもよい。
【0033】
各CTTは、入力としてシナプス重みおよび時間を表すドレイン電流の乗算を実行してもよく、すべての乗算が蓄積用キャパシタに蓄積されてもよい。
【0034】
蓄積ブロックは、ドレイン電流をワイヤードOR関数として合計してもよい。
【0035】
各CTTの閾値電圧は、対応するシナプス重みの値を記憶するようにプログラミングによって調整することができる。各CTTは、電圧パルスが印加されるゲートを含む。電圧パルスのソースは接地される。ゲート-ソース間電圧は一定である。電圧パルスは、時間を用いて情報を伝達する。
【0036】
抵抗は、シナプス重みを記憶するために使うことができる。
【0037】
この抵抗は、CTTによって提供されてもよい。
【0038】
このような場合、シナプス重みは、CTTの閾値電圧シフトに格納される。
【0039】
第1のスケーリングされた電流パルスからの電荷は、制御信号として使われるように蓄積用キャパシタ上に蓄積されてもよい。
【0040】
各ニューロンにおける積分電荷は、入力信号とシナプス重みの積に比例し、積分電荷の値は放電まで一定である。
【0041】
CTTを流れる電流は、重み付けされた入力の和に比例する電圧を生成するために、電荷をコンデンサ上の効果的に蓄積できるように、カレントミラーによってミラーリングされてもよい。
【0042】
放電パルス発生器は、放電サイクル・カスコード電流源であってもよい。
【0043】
放電パルス発生器は、ANNにおける減算機能を達成するために、蓄積中に蓄積された信号をさらに送信してもよい。
【0044】
TIQ比較器の基準電圧に加えて、第2の基準電圧がさらに提供されてもよい。
【0045】
TIQ比較器の基準電圧の代わりに、第2の基準電圧がさらに提供されてもよい。
【0046】
出力信号として活性化パルスがさらに生成されてもよい。
【0047】
複数のシナプスは、入力信号を受信し、入力信号の電圧を電流に変換し、出力信号として第2のスケーリングされた電流パルスを生成してもよい。
【0048】
システムは、ANNの層間で情報を一時的に保持するエフェメラルメモリデバイスをさらに含んでもよい。このエフェメラルメモリデバイスは、非同期制御可能な遅延を提供するアナログ・サブスレッショルド遅延ブロックを含む内側リングと、内側リングをサポートする複数の非同期カウンタを含む外側リングとを含む。内側リングと外側リングは、遅延状態の効率的で短期的な正確な記憶を達成するために連動して動作する。
【0049】
ANNは、ニューロンで入力を受信する入力層と、入力にシナプス重みを乗算して積を生成し、積にバイアスを加算して和を生成し、和を活性化関数に適用し、活性化関数を実行して出力信号を生成し、出力信号をニューロンの後続層にカスケード接続する少なくとも1つの隠れ層と、出力信号を提供する出力層と、を含んでもよい。入力層、少なくとも1つの隠れ層、および出力層の各々は、少なくとも1つのニューロンを含む。
【0050】
CTTのサブセットは、NMOS CTTであってもよい。
【0051】
CTTのサブセットは、PMOS CTTであってもよい。
【0052】
各CTTは、高誘電率金属ゲートを含み得る。ドレインバイアスは、電荷トラッピングプロセスの間に印加され得る。
【0053】
各CTTは、SiO2の界面層を含むゲート誘電体を含んでもよい。
【0054】
各ゲート誘電体は、SiO2の界面層およびカスケード接続されたHfSiON層を含んでもよい。
【0055】
各CTTは、電荷トラッピングプロセス中にドレインバイアスを印加して、他のキャリアをゲート誘電体中に安定にトラップさせることができる。
【0056】
各CTTの閾値電圧は、各ゲート誘電体にトラップされる電荷の量によって変調されてもよい。各ドレインバイアスは、強化された局所加熱効果によって電荷トラッププロセスを強化および安定化してもよい。各CTTの各閾値電圧は、制御された量だけシフト可能であってもよく、パラメータ値を符号化してもよい。
【0057】
重み値は、設定されたプログラミング電圧バイアスで長さの異なるゲートパルスを印加することによってプログラムされる。正のプログラミングの間、正のゲート電圧パルスが印加されてもよく、閾値電圧は第1の方向にシフトしてもよい。負のプログラミング時には負のパルスが印加され、閾値電圧は第1の方向とは反対の第2の方向にシフトする。
【0058】
ゲートのソース電圧に一定振幅パルスを印加してもよい
【0059】
定振幅パルスは、ANNの後続層に直接伝搬されてもよい。
【0060】
定振幅パルスは非線形関数を通過させ、ANNの後続層に伝搬させることができる。
【0061】
この非線形関数は、整流線形ユニット(ReLU)であってもよい。
【0062】
第1の出力は、第2の出力より高くてもよい。ある実施の形態では、第1の出力は高出力であってよく、第2の出力は低出力であってもよい。
【0063】
第1の出力は、第2の出力より低くてもよい。ある実施の形態では、第1の出力は低出力であってよく、第2の出力は高出力であってよい。
【0064】
ニューロンを含む人工ニューラルネットワーク(ANN)のための方法が提供される。この方法は、複数の電荷トラップ型トランジスタ(CTT)を介して入力信号を処理するステップと、CTTがシナプス重みを供給するステップと、複数のCTTから乗算の出力としてドレイン電流を生成するステップと、複数のCTTからドレイン電流を受信するステップと、蓄積された信号の短期メモリとして機能するようにドレイン電流から電荷を蓄積するステップと、蓄積された電荷を放電サイクル中に放電することによって出力信号を生成するステップと、比較器で入力電圧と基準電圧とを比較するステップと、を含む。比較器は、入力電圧が基準電圧以上であれば第1の出力を生成し、入力電圧が基準電圧未満であれば第2の出力を生成する。
【0065】
ある実施の形態では、複数のCTTからドレイン電流を受信するステップは、複数のシナプスからドレイン電流を受信するステップと、シナプス重みを記憶するステップと、入力信号によってシナプス重みの乗算を実行するステップと、乗算の出力を合計して累積信号を得るステップと、を含む。
【0066】
ある実施の形態では、比較器は閾値インバータ量子化(TIQ)比較器である。TIQ比較器は、少なくとも1つの相補型金属酸化膜半導体(CMOS)インバータのカスケードを含み、各カスケードCMOSインバータは、pチャネル金属酸化膜半導体(PMOS)トランジスタおよびnチャネル金属酸化膜半導体(NMOS)トランジスタを含む。基準電圧は、TIQ比較器によって自己生成されるTIQ比較器の閾値に対応する。TIQ比較器の閾値は、PMOSトランジスタまたはNMOSトランジスタを介して調整可能であり、TIQ比較器の閾値は、PMOSトランジスタの強度をNMOSトランジスタの強度で割った比率に対応する。
【0067】
入力信号はCTTで受信されてもよい。入力信号の電圧は電流に変換されてもよい。第2のスケーリングされた電流パルスが、出力信号として生成されてもよい。
【0068】
本方法は、入力層が入力を受信するステップと、隠れ層が入力にシナプス重みを乗算して積を生成するステップと、隠れ層が積にバイアスを加算して和を生成するステップと、隠れ層が和を活性化関数に適用するステップと、隠れ層が活性化関数を実行して出力信号を生成するステップと、隠れ層が出力信号をニューロンの後続層にカスケード接続するステップと、を含んでもよい。
【0069】
本方法は、ANNを較正するステップをさらに含んでもよい。ANNを較正するステップは、指定された基準重みブロックを決定するステップと、指定された基準重みブロックに従ってカレントミラーを較正するステップと、指定された基準重みブロックに従って蓄積用キャパシタを較正するステップと、指定された基準重みブロックに従ってTIQ比較器を較正するステップと、指定された基準重みブロック内のCTTに記憶された各シナプス重みを較正するステップと、を含んでもよい。
【0070】
較正後、カレントミラー、蓄積用キャパシタおよび比較器はそれぞれ、指定された基準重みブロックと同期していてもよい。カレントミラーの較正、コンデンサの較正および比較器の較正が完了すると、各ニューロンの信号経路は、指定された基準重みブロックに対して整合され、すべてのニューロンは、互いに比例的に整合される。
【0071】
第1出力は、第2出力より高くてもよい。ある実施の形態では、第1出力は高出力であってもよく、第2出力は低出力であってもよい。
【0072】
第1出力は、第2出力より低くてもよい。ある実施の形態では、第1出力は低出力であってもよく、第2出力は高出力であってもよい。
【0073】
入力電圧を基準電圧と比較する閾値インバータ量子化(TIQ)比較器が提供される。TIQ比較器は、入力信号を受信する入力接続と、少なくとも1つの相補型金属酸化膜半導体(CMOS)インバータのカスケードと、を含む。各CMOSインバータは、pチャネル金属酸化膜半導体(PMOS)トランジスタと、nチャネル金属酸化膜半導体(NMOS)トランジスタと、を含む。TIQ比較器はさらに、出力信号を送信する出力接続と、電力を受信する電源接続と、グラウンドと、を含む。基準電圧は、TIQ比較器によって自己生成されるTIQ比較器の閾値に対応する。入力電圧が閾値を超えると、第2出力が第1出力に反転する。入力電圧が閾値を下回ると、第1出力が第2出力に反転する。TIQ比較器の閾値は、PMOSトランジスタまたはNMOSトランジスタを介して調整可能である。TIQ比較器の閾値は、PMOSトランジスタの強度をNMOSトランジスタの強度で割った比率に対応する。
【0074】
PMOSトランジスタは、PMOS CTTであってもよい。NMOSトランジスタは、NMOS CTTであってもよい。TIQ比較器デバイスは、CTTによって較正されるように構成されてもよい。
【0075】
CTTは、さらなるCTTを含む人工ニューラルネットワーク(ANN)上で基準値を較正するために、TIQ比較器に調整可能な閾値を提供するように構成されてもよい。
【0076】
さらなるCTTのサブセットは、PMOSデバイスであってもよい。
【0077】
さらなるCTTのサブセットは、NMOSデバイスであってもよい。
【0078】
TIQ比較器デバイスの閾値電圧は、重み行列に記録された閾値電圧を再プログラムすることによって維持され、再較正されてもよい。
【0079】
TIQ比較器デバイスの閾値シフトの改善されたキャンセルを実現するために、相関二重サンプリングが使われてもよい。
【0080】
この場合、相関二重サンプリングは、コンデンサ上の電圧を初期化することができる。
【0081】
TIQ比較器は、デュアルスロープTIQ比較器であってもよい。
【0082】
第1出力は、第2出力より高くてもよい。ある実施の形態では、第1出力は高出力であってもよく、第2出力は低出力であってもよい。
【0083】
第1出力は、第2出力より低くてもよい。ある実施の形態では、第1出力は低出力であってもよく、第2出力は高出力であってもよい。
【0084】
人工ニューラルネットワーク(ANN)の層間で情報を一時的に保持するエフェメラルメモリデバイスが提供される。このエフェメラルメモリデバイスは、非同期制御可能な遅延を提供するアナログサブスレッショルド遅延ブロックを含む内側リングと、内側リングをサポートする複数の非同期カウンタを含む外側リングと、を含む。内側リングと外側リングとは、遅延状態の効率的で短期的な正確な記憶を実現するために、連動して動作する。
【0085】
アナログ・サブスレッショルド遅延ブロックは、複数のサブスレッショルド・パストランジスタ・ロジック(PTL)遅延線素子を含むことができる。
【0086】
非同期カウンタは、第1の非同期カウンタを含むことができる。第1の非同期カウンタは、1ビットの非同期サブスレッショルド・カウンタであってもよい。非同期カウンタはDフリップフロップを含んでもよい。
【0087】
エフェメラルメモリデバイスは、複数の非同期カウンタをさらに含むことができる。
【0088】
非同期カウンタは、1ビットのカスケード接続されたサブスレッショルド・カウンタであってもよい。
【0089】
エフェメラルメモリデバイスは、非同期的に機能してもよい。
【0090】
時間は、ナノワットまたはピコワットの電力消費空間に一時的に格納されてもよい。
【0091】
エフェメラルメモリデバイスは、第1の活性化パルスを受信し、第1の非同期カウンタを介して第1の活性化パルスの幅を記憶することができる。本装置は、第1の非同期カウンタをカウントダウンすることにより、第1の活性化パルスをANNの後続層に送信することができる。
【0092】
アナログ・サブスレッショルド遅延ブロックおよび第1の非同期カウンタは、内部遅延を伴う正帰還ループを共に形成することができる。これにより、発振器が形成される。
【0093】
発振器は、遅延線素子の周波数に基づいて発振する自己タイミング発振器であってもよい。エフェメラルメモリデバイスは、自己タイミング発振器によってクロックされ、遅延線素子および第1の非同期カウンタによって作成される第2のカウンタをさらに含んでもよい。
【0094】
発振器は、蓄積用キャパシタの放電中に有効になってもよい。発振器が有効になると、発振器は第1の非同期カウンタをトリガしてカウントアップする。蓄積用キャパシタの放電が完了すると、発振器は無効になり、第1の非同期カウンタは値を保持する。その後、発振器は再び有効になり、第1の非同期カウンタは第1の時間の間にゼロまでカウントダウンすることができる。第1の時間の間に、後続のニューロンへの入力としてパルスが生成されてもよい。
【0095】
蓄積用キャパシタの放電中に、ニューロンが第1の活性化パルスを生成してもよい。第1の活性化パルスがハイのとき、第1の活性化パルスは発振器を有効にしてもよい。第1の活性化パルスがローのとき、第1の活性化パルスが発振器を無効にし、第1の非同期カウンタは停止し、第1の非同期カウンタは第1の活性化パルスのパルス幅を表す数値を記憶し、第1の非同期カウンタはさらに記憶された数値を一定期間保持してもよい。
【0096】
時間の期間は数秒であってもよい。
【0097】
この場合、第1の活性化パルスがハイのとき、第1の非同期カウンタはカウントアップし、エフェメラルメモリデバイスが第1の活性化パルスを後続のニューロンに印加して遅延線素子を有効にし第1の活性化パルスに等しい第2の活性化パルスを生成するとき、第1の非同期カウンタはカウントダウンしてもよい。
【0098】
この場合、第1の非同期カウンタは、当該第1の非同期カウンタと逆に構成された第2のカウンタと対になっていてもよい。すなわち第2のカウンタは、第1の非同期カウンタがカウントダウンするとき、カウントアップして第1の活性化パルスの幅をさらに記憶する。
【0099】
従って、カウントアップする第2のカウンタは、蓄積用キャパシタの放電サイクルによって有効にされ、比較器が閾値電圧に従って状態を反転させるときに無効にされる。カウントダウンする第1の非同期カウンタは、ANNの後続層に対する推論開始信号によって有効化されてもよい。
【0100】
本装置は、スペースと電力を節約するためにダイナミックロジックを使用することができる。
【0101】
エフェメラルメモリデバイスは、タイムエフェメラルメモリデバイスを含んでもよい。
【0102】
時間は、絶対時間、経過時間、遅延時間または時間変化率のうちのいずれかとして計算されてもよい。
【0103】
時間は、絶対時間として計算されてもよい。すべての情報は、時間に対して比量的に処理されてもよい。
【0104】
他の態様および特徴は、いくつかの例示的な実施の形態に関する以下の説明を検討すれば、当業者に明らかだろう。
【図面の簡単な説明】
【0105】
本明細書に含まれる図面は、本明細書の物品、方法、および装置の様々な例を説明するものである。図面を参照されたい
【0106】
【
図1A】一般的な従来の人工ニューラルネットワーク(ANN)を示す図である。
【0107】
【
図1B】
図1AのANNが従来実行し得る異なる機能のボックス図である。
【0108】
【0109】
【
図3】実施の形態による、閾値インバータ量子化(TIQ)比較器を含むニューロンを示す図である。
【0110】
【
図4】実施の形態に従う、乗算だけでなく重み記憶にも電荷トラップ・トランジスタ(CTT)を利用するニューロンの簡略化された構造を示す図である。
【0111】
【
図5】実施の形態に従うニューロンを示す図である。
【0112】
【
図6】各ニューロンにおけるデュアルスロープパルス生成プロセスの追加的な詳細を示す図である。
【0113】
【
図7】実施の形態に従う、
図3、4および5のニューロンで使用するのに適した電荷トラップ型トランジスタ(CTT)を示す図である。
【0114】
【
図8】実施の形態に従う、
図7の複数のCTTを含むANNの例示的な層を示す図である。
【0115】
【
図9A】実施の形態に従う、カスコードされたカレントミラーを示す図である。
【0116】
【
図9B】実施の形態に従う、カスコードされたカレントミラーを示す図である。
【0117】
【
図10】実施の形態に従う、
図3および5のTIQ比較器を示す図である。
【0118】
【
図11】シナプス重みを記憶するために抵抗を使用する、従来のアナログ伝導ベースの推論システムを示す図である。
【0119】
【
図12】実施の形態に従う畳み込みニューラルネットワーク(CNN)を示す図である。
【0120】
【
図13】処理する2つの3×3行列を示す図である。
【0121】
【
図14】実施の形態に従う、
図12のCNNにおける簡略化されたシナプスを介した3×3の畳み込みニューロンの実装を示す図である。
【0122】
【
図15】実施の形態に従う、基準ブロック較正の方法のフロー図である。
【0123】
【
図16】実施の形態に従う、エフェメラルメモリスキームを示す図である。
【0124】
【
図17】実施の形態に従った、
図16のエフェメラルメモリスキームを実装するエフェメラルメモリデバイスを示す図である。
【0125】
【
図18】実施の形態に従った、
図17のエフェメラルメモリデバイスをさらに詳細に示す図である。
【0126】
【
図19】実施の形態に従う、
図17および18のエフェメラルメモリ構造をさらに詳細に示す図である
【0127】
【
図20】実施の形態に従った、ANNを使用する方法のフロー図である。
【発明を実施するための形態】
【0128】
特許請求される各実施の形態の例を提供するために、様々な装置またはプロセスを以下に説明する。以下に説明される実施の形態は、特許請求される実施の形態を限定するものではなく、特許請求される実施の形態は、以下に説明されるものとは異なるプロセスまたは装置を対象とし得る。特許請求される実施の形態は、以下に記載されるいずれか1つの装置またはプロセスの特徴のすべてを有する装置またはプロセス、あるいは以下に記載される複数またはすべての装置に共通する特徴に限定されない。
【0129】
本明細書に記載の1つまたは複数のシステムは、それぞれが、少なくとも1つのプロセッサ、データ記憶システム(揮発性および不揮発性メモリおよび/または記憶要素を含む)、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスを備える、プログラマブルコンピュータ上で実行されるコンピュータプログラムにおいて実装され得る。例えば、限定するものではないが、プログラマブルコンピュータは、プログラマブルロジックユニット、メインフレームコンピュータ、サーバ、およびパーソナルコンピュータ、クラウドベースのプログラムまたはシステム、ラップトップ、パーソナルデータアシスタント、携帯電話、スマートフォン、またはタブレットデバイスであってもよい。
【0130】
各プログラムは、コンピュータシステムと通信するために、高レベルの手続き型またはオブジェクト指向プログラミング言語および/またはスクリプト言語で実装されることが好ましい。しかし、プログラムは、必要に応じて、アセンブリ言語または機械語で実装することもできる。いずれにせよ、言語はコンパイル言語でも解釈言語でもよい。このような各コンピュータプログラムは、本明細書で説明する手順を実行するために記憶媒体またはデバイスがコンピュータによって読み取られたときに、コンピュータを構成および動作させるために、汎用または特殊目的のプログラマブルコンピュータによって読み取り可能な記憶媒体またはデバイスに記憶されることが好ましい。
【0131】
互いに通信する複数の構成要素を有する実施の形態の説明は、そのような構成要素がすべて必要であることを意味するものではない。それどころか、本発明の多種多様な可能な実施の形態を説明するために、様々なオプションの構成要素が記載されている。
【0132】
さらに、プロセスステップ、方法ステップ、アルゴリズムなどが(開示および/または特許請求の範囲において)順次順序で記載されてもよいが、そのようなプロセス、方法およびアルゴリズムは、代替の順序で動作するように構成されてもよい。換言すれば、記載され得るステップの任意の順序または順序は、ステップをその順序で実行する要件を必ずしも示すものではない。本明細書に記載されるプロセスのステップは、実用的であればどのような順序で実行されてもよい。さらに、いくつかのステップは同時に実行されてもよい。
【0133】
単一の装置または成形品が本明細書に記載されている場合、複数の装置/成形品(それらが協力しているか否かにかかわらず)が、単一の装置/成形品の代わりに使用されてもよいことは、容易に明らかであろう。同様に、本明細書において複数の装置または物品(それらが協働するか否かを問わない)が記載される場合、単一の装置/物品が複数の装置または物品の代わりに使用されてもよいことは容易に明らかであろう。
【0134】
本開示は、アナログ/混合信号設計技術および安定性機構を使用して実装される、シリコンニューラルネットワークアーキテクチャ、より一般的にはアルゴリズム計算機能におけるニューラルネットワークを実現する方法を説明する。有利には、本明細書で開示されるニューラルネットワークは、日常的な使用および長期間にわたる使用のために作製され得る。
【0135】
従来の計算エンジンは、von-Neumanアーキテクチャなどの従来の計算、GPUベースの計算(von-Neumanアーキテクチャに類似し、重い数学演算に調整される)、データフローアーキテクチャ、および前述の組み合わせを含む、いくつかのカテゴリに分類される。従来のソリューションは、従来のデジタル設計アプローチを用いてデジタルCMOSプロセス技術で実装されてきた。従来のソリューションは、メモリと演算能力の組み合わせを必要とする。実装間の相違は、主に、メモリと計算がどのように実装されるか、およびこれらの要素間で情報がどのように転送されるかに集中している。
【0136】
本開示は、計算要素とメモリ要素とを単一のデバイスに統合することに関する。実施の形態において、修正されたデータフローアーキテクチャは、実施の形態は完全にアナログおよび時間領域のままであるが、ニューラルネットワークなどの大規模な計算ワークロードを有利に処理するために利用され得る。有利なことに、本開示は、既存のアプローチと比較して、消費電力および面積利用率の低減につながる可能性がある。
【0137】
人間の脳がデータを処理する方法と同様に、本開示の概念は、時間に関連する情報の原理である。時間は、絶対時間、経過時間、時間の遅れ(位相として知られる)、時間の変化率(周波数)など、複数の方法で測定および利用することができる。本開示では、時間を絶対基準として利用することができる。時間が絶対基準として使用される場合、情報は時間に対して比量的に処理される。アナログ信号処理を利用する実施の形態では、システムは、電圧、電流、抵抗、蓄積用キャパシタンス、インダクタンスなどの絶対的な物理的特性またはパラメータに敏感であり、それらに依存する可能性がある。物理パラメータは、時間、温度、および製造プロセスによって変化する可能性があるため、物理パラメータの絶対値を基準として信頼すると、計算精度が低下する可能性がある。本開示では、少なくとも前述の理由から、絶対的な基準として時間に着目している。有利なことに、計算がレシオメトリックに行われるため、経時的な遅いドリフトであっても精度に影響を与えない場合がある。
【0138】
結果の文脈において、完全連結ニューラルネットワーク(FCNN)、複数の畳み込みニューラルネットワーク(CNN)、および再帰的ニューラルネットワーク(RNN)を含む複数のニューラルネットワークが、本開示に記載のアーキテクチャを使用してモデル化された。各デバイスおよびブロックは、28nm、22nmおよび14nmプロセス・ノードのファウンドリからのフィジカル・デザイン・キットに基づくトランジスタの詳細なSPICEデバイス・モデルおよびMOSRA信頼性モデルを使用してシミュレーションされた。この結果は、有利なことに、トランジスタを使用するあらゆる技術ノードに適用可能である。さらに、この結果は、同様の機能を果たすデバイスを持つ他のテクノロジー・ノードにも有利に適用できる可能性がある。以下の表1は、いくつかの業界標準ネットワークと関連アプリケーションの結果を示している。
表1:性能ベンチマーク
【表1】
【0139】
インメモリおよびアナログ計算の分野では、過去10年間に注目され、研究されてきた基盤技術が数多くある。表2は、エッジAI計算に適用されている複数の技術と、それらの技術を利用する例示的な企業名を示す。
表2:エッジAIアプリケーションをターゲットとするインメモリまたはアナログ計算に使用されるさまざまな技術
【表2】
【0140】
本開示は、ロボット工学のための自然言語処理、画像処理、および自然な動作処理などの用途のための一般化された人工知能、ならびに教師なし学習および家庭、工場、または病院のための自律ロボット支援を可能にするためのニューロモーフィックコンピューティングのいずれか1つ以上における用途を有することができる。
【0141】
本詳細な説明を通じて、用語「ANN」は人工ニューラルネットワークを指すと理解され、用語「CNN」は畳み込みニューラルネットワークを指すと理解され、用語「CTT」および「CTTs」は電荷トラップトランジスタを指すと理解される。「NMOS」という用語は「nチャネル金属酸化物半導体」を、「PMOS」という用語は「pチャネル金属酸化物半導体」を、「CMOS」という用語は「相補型金属酸化物半導体」を指すと理解される。
【0142】
本開示を通じて、CTTは、本明細書で表現される技術的要件を満たし、本明細書でさらに説明されるように電荷トラップ機能を実行する通常のトランジスタとして理解され得る。CTTは、本技術要件(例えば、
図7の議論において表現されるような)を満たし、電荷トラッピング機能を実行する任意のトランジスタである。従って、明示的に別段の規定がある場合を除き、トランジスタへの言及は、そのように言及されたトランジスタがCTTである実施の形態を含むと理解される。
【0143】
次に
図3を参照すると、実施の形態によるニューロン300が示される。ニューロン300は、入力信号を受信して処理する複数のシナプス302と、入力信号を蓄積する蓄積ブロック304と、蓄積された信号を一時的に記憶する蓄積蓄積用キャパシタ306と、出力信号を生成する放電パルス発生器308と、電圧を比較する比較器314とを含む。
【0144】
ニューロン300は、ANN(図示せず)の一部を形成してもよい。ニューロン300は、ANNの後続層への伝搬のために生成される活性化パルス312をさらに含む。
【0145】
このようなシナプスは、シナプス重みを供給するCTT(図示せず)を含む。
【0146】
蓄積ブロック304は、複数のシナプス302からドレイン電流(図示せず)を受信するための記憶装置(図示せず)を含む。蓄積デバイスは、電流を受信して蓄積することができる任意の蓄積デバイスであってよい。記憶装置はメモリであってもよい。ドレイン電流は、複数のシナプス302からの乗算の出力として生成される。ドレイン電流は、入力として固定電圧が印加されている期間に比例した量の電荷を生成する。
【0147】
蓄積ブロック304は、シナプス重みを記憶し、CTTによって処理される入力信号によってシナプス重みを乗算するための複数の乗算器(図示せず)をさらに含む。蓄積ブロック304は、複数の乗算器からの乗算の出力を合計するための蓄積器(図示せず)をさらに含む。
【0148】
蓄積蓄積用キャパシタ306は、蓄積された信号のための短期メモリとして機能するために、ドレイン電流から電荷を蓄積する。
【0149】
放電パルス発生器308は、蓄積された電荷を放電サイクル中に放電して出力信号を生成する。
【0150】
比較器314は、受信した入力信号が基準電圧以上である場合に、第1出力を生成する。比較器314は、受信した入力信号が基準電圧を下回る場合に、第2出力を生成する。ある実施の形態では、第1出力は第2出力よりも高く、第1出力は「高」出力と呼ばれ、第2出力は「低」出力と呼ばれる。別の実施の形態では、第1出力は第2出力より低く、第1出力は「低」出力と呼ばれ、第2出力は「高」出力と呼ばれる。
【0151】
ある実施の形態では、比較器314は、入力電圧を基準電圧と比較するための閾値インバータ量子化(TIQ)比較器314である。有利には、比較器314がTIQ比較器である実施の形態では、基準電圧VREFは、TIQ比較器314の固有の閾値電圧として比較器314によって自己生成される。
【0152】
TIQ比較器314は、少なくとも1つのCMOSインバータ(図示せず)のカスケードを含む。各CMOSインバータは、PMOSトランジスタ(図示せず)およびNMOSトランジスタ(図示せず)を含む。各CMOSインバータの伝達曲線によれば、入力信号が0ボルトから高い電圧になるにつれて、各CMOSインバータの閾値に達し、出力が第2出力から第1出力に反転する。例えば、ある実施の形態では、出力が低出力から高出力に反転することが含まれる。従って、閾値は暗黙の基準電圧として機能する。さらに、入力電圧が閾値を下回ると、高出力は第1出力から第2出力に状態を反転させる。例えば、ある実施の形態では、出力が高出力から低出力に反転することが含まれる。
【0153】
奇数個のインバータが使用される場合、CMOSインバータのカスケードの閾値に達するたびに、出力は反転状態になる。偶数(ゼロより大きい)のインバータが使用される場合、CMOSインバータのカスケードの閾値に到達するたびに、出力は反転状態にならない(すなわち、出力が反転して元に戻る)。
【0154】
ある実施の形態では、PMOSトランジスタおよびNMOSトランジスタはCTTであり、TIQ比較器314の閾値は、電荷トラッピング技術に従って、PMOS CTTまたはNMOS CTTの少なくとも1つを介して調整可能である。
【0155】
TIQ比較器314の閾値は、PMOSトランジスタの強度をNMOSトランジスタの強度で割った比率に対応する。
【0156】
TIQ比較器314の閾値は固有のものであり、有利にはCTT技術に従って調整され得る。CTTデバイス(
図7に関連して説明されるもののような)は、ニューラルネットワーク300の動作を効果的にするために、閾値または基準電圧を制御、修正その他の方法で変更するように作用し得る。
【0157】
通常の比較器のVREFまたは閾値は個別に生成されるため、通常の比較器は前述の機能を実行できない場合がある。有利なことに、前述のTIQ機能は、比較機能を実行するために使用されるトランジスタの数を最小限に抑え、基準電圧または閾値電圧のソースを排除し、TIQ比較器314の閾値を較正するメカニズムを提供することによって、通常の比較器に対する新規かつ発明的な改善を表す。
【0158】
本開示では、TIQ比較器314の前述の機能は、ニューロン300を較正するために閾値較正を使用することをさらに含む。
【0159】
複数のシナプス302は、入力として受け取った入力信号を伝搬する。蓄積ブロック304は、充電サイクル中に電荷を蓄積する。一実施形態では、蓄積ブロック304は、充電サイクル・カスコード・カレント・ミラーである。蓄積蓄積用キャパシタ306は、電流パルスからの結果電荷を蓄積し、蓄積された入力信号のための短期メモリの形態として機能する。
【0160】
放電パルス発生器308は、電荷を放電サイクル中に放電する。ある実施の形態では、放電パルス発生器308は、放電サイクル・カスケード電流源である。実施の形態において、放電パルス発生器308はさらに、減算機能を達成するために、充電サイクル中に入力信号を送信する。
【0161】
ニューロン300には、明示的なVrefを設けなくてもよい。Vrefは、TIQ比較器314自体の閾値として組み込まれていてもよい。ニューロン300は、TIQ比較器314の内蔵閾値を変更することに基づいて調整可能であってもよい。
【0162】
ある実施の形態では、CTTは、TIQ比較器314の調整可能な閾値、すなわち、ニューロン300の閾値を較正する方法を提供するために使用することができる。
【0163】
実施の形態では、相関二重サンプリングが、TIQ比較器314の閾値シフトの改善されたキャンセルを達成するために有利に採用され得る。相関二重サンプリングは、さらに有利には、蓄積蓄積用キャパシタ306の電圧を初期化する。
【0164】
ここで
図4を参照すると、実施の形態に従って、乗算だけでなく重み記憶にもCTTを利用する、本開示のニューロン400の簡略化された構造が示されている。
【0165】
ニューロン400は、アナログ伝導ベースの推論を実行するためのシナプス402a、402bおよび402cを含む。実施の形態では、シナプス402a、402bおよび402cは、CTT402a、402bおよび402cである。シナプス重みは、CTTs402a、402bおよび/または402cの閾値電圧シフトに記憶される。
【0166】
CTT402a、402bおよび402cは、それぞれ入力信号408a、408bおよび408cを受信する。入力信号408a、408b、408cは、それぞれCTT402a、402b、402cに印加される。
【0167】
CTT402a、402bおよび402cは、それぞれ、ドレイン電流403a、403bおよび403cを生成する。ドレイン電流403a、403bおよび403cはそれぞれ、入力信号408a、408bおよび408cと、CTT402a、402bおよび402cのそれぞれに記憶されたシナプス重みとの積に等しい量の電荷を生成する。
【0168】
ニューロン400は、ドレイン電流403a、403bおよび403cからの結果電荷を蓄積するための蓄積蓄積用キャパシタ404をさらに含む。
【0169】
ニューロン400は、比較器406をさらに含む。比較器406は、
図3のTIQ比較器314であってもよい。比較器406がTIQ比較器314である実施の形態では、蓄積蓄積用キャパシタ404の動作の放電段階中に、受信した入力電圧が比較器406の基準電圧を下回ると、比較器406の出力が第1出力から第2出力に反転し、受信した入力電圧が基準電圧を上回ると、出力が第2出力から第1出力に反転する。
【0170】
比較器406は、デュアルスロープTIQ比較器406であってもよく、活性化出力を生成してもよい。混合信号の実現では、入力は時間パルスに変換され、その後、ニューロン400のコンダクタンスによって重み付けされ、スケーリングされた電流パルス(図示せず)が生成される。スケーリングされた電流パルスからの電荷は、蓄積蓄積用キャパシタ404に蓄積され、その後、タイミングパルス408dを生成するために一定の速度で放電される。
【0171】
実施の形態では、ニューロン400はANN(図示せず)の一部を形成する。)タイミングパルス408dは、ANNの後続層に直接伝搬されてもよい。タイミングパルス408dは、整流線形ユニット(ReLU)などの非線形関数を通過させてから、ANNの後続層に伝搬させてもよい。タイミングパルス408dは、将来の使用のためにエフェメラルメモリデバイス(図示せず)に記憶されてもよい。エフェメラルメモリデバイスは、タイムエフェメラルメモリデバイスであってもよい。エフェメラルメモリデバイスおよび/またはタイム・エフェメラルメモリデバイスは、蓄積蓄積用キャパシタ404であってもよい。
【0172】
ニューロン400は、電気的な接地として機能するための接地416をさらに含む。
【0173】
図5を参照すると、実施の形態によるニューロン500が示されている。
【0174】
ニューロン500は、入力信号を受信するためのシナプス502a、502b、502cおよび502d(シナプス502と総称され、一般的にシナプス502と呼ばれる)を含み、シナプス重みを記憶および供給する。シナプス502は、任意の数のシナプスを含むことができる。
【0175】
ニューロン500はさらに、入力信号を蓄積するための蓄積ブロック504と、蓄積された信号を一時的に記憶するための蓄積蓄積用キャパシタ506と、出力信号を生成するための放電パルス発生器508と、電圧を比較するための比較器514と、シナプス502から蓄積ブロック504に電流を伝送するための、シナプス502のそれぞれに対応するドレイン520a、520b、520cおよび520d(ドレイン520と総称され、一般にドレイン520と呼ばれる)とを含む。
【0176】
ニューロン500は、ANN(図示せず)の一部を形成してもよい。ニューロン500はさらに、ANNの後続層への伝搬のために生成される活性化パルス512を含む。
【0177】
シナプス502は、受信した入力信号に基づいて乗算関数を実行する。各シナプス502は、一定期間電流を生成する。受信入力信号は、受信活性化パルス512であってもよい。各電流が生成される期間は、各シナプス502で受信される受信活性化パルス512の幅に等しい。このような受信活性化パルス512はそれぞれ異なる幅を有してもよい。
【0178】
蓄積ブロック504に接続する前に、ドレイン520は互いに接続する。蓄積ブロック504は、ドレイン520を介して送信された電流を合計する。ある実施の形態では、合計演算は有線OR関数と等価である。蓄積ブロック504での合計演算の結果は、さらに蓄積用キャパシタ506に信号として送信される。
【0179】
ある実施の形態では、蓄積ブロック504は、シナプス502を流れる電流をミラーリングするためのカレントミラーとして機能する。有利なことに、電流ミラーは、電源が低く、回路動作のヘッドルームが制限されている場合に使用することができる。
【0180】
蓄積ブロック504は、複数のシナプス502からのドレイン520からの送信電流を受信するための記憶装置(図示せず)と、シナプス重みを記憶し、シナプス重みに送信電流を乗算するための複数の乗算器(図示せず)と、を含む。蓄積ブロック504は、複数の乗算器からの乗算の出力を合計するための累積器(図示せず)をさらに含む。
【0181】
蓄積用キャパシタ506は、ニューロン500を接地するための底板516を含む。蓄積用キャパシタ506は、シナプス502からの電荷を蓄積するためのトッププレート518をさらに含む。ある実施の形態では、有利にはアクティブ積分器回路の実装は存在せず、単一の開ループ蓄積用キャパシタ506が蓄積された電荷を一時的に保存することができる。
【0182】
シナプス502のそれぞれに印加される電圧パルスは、同時に信号として送信を開始することができる。このような各信号は、ANNの前の層から受信された入力信号に従って、送信を停止する、または「ターンオフ」する。
【0183】
図5はさらに、変化する基準電圧のコンテキストにおける活性化パルス512を示すグラフ510を描いている。活性化パルス512の幅は、あるニューロン(ニューロン500など)からANNの層を越えて後続のニューロンへ渡される情報である。説明したようなデュアルスロープ多重累積関数は、活性化情報を伝達するために時間を使用する。
【0184】
グラフ510の第1の傾き522は、蓄積の時間、すなわち、受信した入力信号がドレイン520を横切って加算される時間を表す。これは、「乗算累積」動作の「累積」段階を表す。
【0185】
グラフ510の第2の傾き524は、活性化パルス512の発生を表し、その間に一定の基準電流が蓄積用キャパシタ506上の蓄積電荷を放電する。ダウン電流は、定電流によって蓄積用キャパシタ506から放電される電荷に関連する。生成された活性化パルス512は放電フェーズの開始時に開始し、蓄積用キャパシタ506のトッププレート518上の電圧が比較器514の閾値電圧以下に低下したときに停止する。
【0186】
次に
図6を参照すると、ニューロン500に活性化パルス512を発生させるためのデュアル・スロープ多重累積関数の追加的な詳細が描かれたグラフ600が示される。グラフ600において、積分された電荷は乗算積に比例するが、乗算積の絶対値は重要ではない。実施の形態では、活性化パルスは、
図5に関して説明したような活性化パルス512の生成のような定電流放電イベントまで、逓倍積の値が一定のままであるときに正常に生成される。
【0187】
グラフ600は、活性化パルス512を生成するために逓倍積関数を結合するために使用されるデュアルスローププロセスを描写する。グラフ600は電荷を表す縦軸614を含む。グラフ600はさらに、時間を表す横軸606を含む。
【0188】
グラフ600は、MAC積分が発生する第1の領域602を含む。第1の領域602において、蓄積用キャパシタ506に蓄積される電荷は逓倍積に比例する。このような乗算積は、
図13に示すような行列を参照して、Σ(W
ij*X
i)であってもよい。第1の領域602は、充電サイクルに対応する第1のスロープ608を含む。
【0189】
グラフ600は、蓄積用キャパシタ506の放電が単位基準で発生する第2の領域604を含む。蓄積用キャパシタ506の放電速度は、シナプス502で受信された受信入力信号とシナプス502で記憶されたシナプス重みの正規化されたドット積に比例する時間比分数を提供し、ANNの後続層の活性化パルス512を生成するために使用される。第2の領域604は、蓄積用キャパシタ506の放電サイクルに対応する第2のスロープ610を含む。
【0190】
第1のスロープ608および第2のスロープ610は、それぞれニューロン500の充電サイクルおよび放電サイクルを表す。グラフ600は、以前に生成された活性化パルス512がニューロン500に印加される充電サイクルを描いている。信号は、ドレイン電流520を介してシナプス502から蓄積ブロック504に伝達され、結果として生じる電流が合計される、すなわち「乗算と蓄積」の「蓄積」段階である。
【0191】
グラフ600はさらに放電サイクルを描いている。ANNの後続の層に進む活性化パルス512のパルス幅(図示せず)を生成するために、蓄積用キャパシタ506は既知の定電流を用いて放電される。蓄積用キャパシタ506が放電に要する時間によって、後続の層に進むパルス幅が決定される。
【0192】
図7に、実施の形態に係る、
図3、4および5のニューロン300、400および500のシナプス302、402および502で使用するのに適したCTT700を示す。
【0193】
CTT700は、入力信号を受信するためのゲート702を含む。CTT700は、入力電圧(または活性化)のための負基準を受信するための層ソース704を含む。CTT700は、温度のようなパラメータを補償するために可能な閾値調整を容易にするための層ボディバイアス706を含む。CTT700は、出力信号を伝送するためのレイヤドレイン708を含む。CTT700は、ゲート702とCTT700が適用される基板との間に介在するためのゲート誘電体(図示せず)を含む。ゲート誘電体は、トラップされた電荷を蓄積し、CTT700の閾値電圧を調整するために使用される。
【0194】
ある実施の形態では、CTT700は、電荷トラップ型重量蓄積トランジスタである。ある実施の形態では、CTT700はNMOS CTTである。ある実施の形態では、CTT700はPMOS CTTである。
【0195】
CTTデバイス700は、マルチレベル不揮発性メモリとして使用されてきた。高誘電率金属ゲート702を有するトランジスタ700における電荷トラッピング現象を利用し、電荷トラッピングプロセス中にドレインバイアスを印加することにより、CTT700における電荷トラッピングプロセスを強化することができる。
【0196】
SiO2の界面層(図示せず)に続いてカスケード接続されたHfSiON層(図示せず)をゲート誘電体として有するN型CTT700は、32nmより小さいCMOS技術のプロセスノードでは一般的なデバイスタイプである。N型CTTは、SiO2の界面層に続いて、窒化物HfSiON層と同様の高K材料をゲート誘電体として含む場合がある。
【0197】
CTT700の閾値電圧Vt(図示せず)は、トランジスタ700のゲート誘電体に閉じ込められた電荷の量によって変調される。ドレイン・バイアスは、強化された局所加熱効果により、電荷トラッピング・プロセスを強化し、安定化させる。
【0198】
シナプス増倍にCTT700を使用することは、ニューロン300、400、500の強度をエンコードし、CTT700のゲート702に印加される定電圧パルス幅として前層の振幅を伝送することによって行われる。シナプス逓倍は重み逓倍であってもよい。結果として生じるドレイン電流(ドレイン電流403、520など)は、Id=f(Vgs-Vt)であるため、Vgs(印加入力電圧)およびCTT700に関連する閾値電圧の関数である。すべてのCTT700は、シリコン製造プロセスに固有の公称Vtから始まるので、CTT700のプログラミング中、公称Vtは、CTT700によって蓄積される重量に比例する量だけシフトされる。このVtの変化、すなわちデルタVtは、特定のデバイス700またはシナプス302、402、502に関連する重量値を表す。サブスレッショルド領域でMOSFETを利用することにより、Idと(Vgs-Vt)との間の対数関係が可能になる。サブスレッショルドMOSFETを利用する回路では、Vtは一定であり、Vgsは変化する。これは、Vgsが制御信号である場合にうまく機能する。しかし、実施の形態では、CTT700のVtはシフトされ、その結果、Idの変化を誘発し、Vgsは時間的にパルスとして印加され、絶対電圧は一定である。
【0199】
ある実施の形態では、入力情報はパルス幅によって伝達されるので、前述のことは1つの電圧振幅で進行する。CTTs700を流れる電流は、ニューロン300、400または500によって積分され、蓄積用キャパシタ306、404または506に蓄積された電荷が、重み付けされた入力の和に等しくなる
【0200】
Q=Σ(I*t)
【0201】
シナプス重み(図示せず)のプログラミングは、技術に応じて、設定されたプログラミング電圧バイアス(例えば、Vgs=1.2Vから2.0V、Vds=1.0Vから1.8V)で、様々な長さ(例えば、50μsから10ms)のゲートパルスを印加することによって達成される。
【0202】
CTT700がニューロン(
図5のニューロン500など)を実装する実施の形態では、ニューラルネットワーク入力などの入力は、時間パルス(活性化パルス512など)に変換され、時間パルスの持続時間は、受信入力信号の大きさに比例する(パルス幅変調)。時間パルスは、ゲート702に印加される一定振幅のパルスである。電荷トラップ型トランジスタ700のコンダクタンスは、シナプス荷重(図示せず)に比例してあらかじめ調整されている。従って、CTT700からのドレイン電流520におけるドレイン電流パルス(図示せず)は、ゲート702において受信された時間パルスと以前に記憶されたシナプス重量の積に等しい量の電荷を生成する。CTT700からのドレイン電流パルスによって伝達されるような時間電流パルスからの結果としての電荷は、
図6に示すように、デュアルスロープ動作の第1のスロープ608の間に蓄積蓄積用キャパシタ506上に蓄積される。その後、固定電流が蓄積用キャパシタ506に印加され、第2のスロープ610の間に蓄積用キャパシタ506を放電する。
【0203】
電圧が閾値を超えると、比較器は状態を反転させる。比較器は、
図3の閾値インバータ量子化(TIQ)比較器314または
図5のTIQ比較器514であってもよく、ある実施の形態では、CTT較正されてもよい。時間パルスは、第2のスロープ610の持続時間のために生成される。時間パルスの幅は、ニューロン500の出力を表す。
【0204】
前述の実施の形態のアーキテクチャでは、ドレイン電流Iはシナプス重みを表し、時間tは活性化入力を表す。従って、各CTT700は、シナプス重みと活性化パルス512との乗算を実行する。すべてのシナプス乗算は、蓄積用キャパシタ306または蓄積用キャパシタ506などの単一の蓄積用キャパシタに蓄積される。
【0205】
図8に、実施の形態に係る、複数のCTT700、すなわち、CTT700a、700b、700c、700d、700eおよび700f(CTT700と総称され、一般にCTT700と呼ばれる)を含む例示的な層800を示す。層800は、任意の数のCTT700を含んでもよい。ある実施の形態では、層800は、
図3のニューロン300、
図4のニューロン400または
図5のニューロン500である。ある実施の形態では、層800は、シナプス重みの例示的な層である。
【0206】
図8において、シナプスからの乗算の出力としてドレイン電流(図示せず)がある。各CTT700は一定期間の電流量を生成する。加算は、蓄積用キャパシタ(図示せず)に一緒に取り込まれたドレイン電流として表される。
【0207】
図9Aおよび9Bは、それぞれ、実施の形態によるカレントミラー900および902を示す図である。
【0208】
カレントミラー900は、トランジスタ903a、903b、903cおよび903dを含む。ある実施の形態では、トランジスタ903a、903b、903cおよび903dは、電荷トラップ機能を実行しないので、CTT700ではない。
【0209】
カレントミラー902は、トランジスタ903e、903f、903g、903h、903i、903j、903k、903l、903mを含む。ある実施の形態では、トランジスタ903e、903f、903g、903h、903i、903j、903k、903l、903mは、電荷トラップ機能を実行しないので、CTT700ではない。
【0210】
カレントミラー900および902の設計には、良好な整合、高出力インピーダンス、および高速な過渡応答という、いくつかの設計上の制約がある。良好な整合を実現するために、トランジスタ903a、903bは、端子電圧、具体的にはVgとVdとを整合させることが有利である。このような整合電圧は、カスコード・カレント・ミラー構造の使用によって有利に達成される。カスコードカレントミラー構造は、VgとVdとの優れた整合を実現する。さらに、カスコード・カレント・ミラー構造は、この場合、ノード914と908において高い出力インピーダンスを示す。トランジスタ903a、903b、903c、903d、903e、903f、903g、903h、903i、903j、903k、903lおよび903mがサブスレッショルド動作領域にバイアスされたカスコード・カレント・ミラー構造を利用すると、カスコードカレントミラー900、902の性能がさらに向上する。
【0211】
ある実施の形態では、
図9Aのカスコードカレントミラー900は、
図3のニューロン300の蓄積ブロック304であってもよい。実施の形態では、
図9Bのカスコードカレントミラー902は、
図3のニューロン300の放電パルス発生器308であってもよい。
【0212】
CTTs700を通って流れる電流は、カスコードされたカレントミラー902によってミラーリングされ得、蓄積用キャパシタ306上の電荷の蓄積をもたらし、重み付けされた入力の和に比例する電圧を生成する。V=1/CΣ(I*t)。
【0213】
図10に、実施の形態に係る、閾値インバータ量子化比較のための閾値インバータ量子化(TIQ)比較器1000を示す。TIQ比較器1000は、
図3のTIQ比較器314であってもよい。
【0214】
TIQ比較器1000は、受信された入力信号がTIQ比較器の基準電圧を上回る場合に第1出力を生成し、受信された入力信号が基準電圧を下回る場合に第2出力を生成するための、2つのCMOSインバータ1001a、1001b(インバータ1001と総称され、一般にインバータ1001と呼ばれる)のカスケードを含む。TIQ比較器1000は、入力信号を受信するための入力接続1006をさらに含む。TIQ比較器1000は、出力信号を送信するための出力接続1008をさらに含む。TIQ比較器1000は、電力を受信するための電力接続1004をさらに含む。TIQ比較器1000は、TIQ比較器1000を接地するための接地1010をさらに含む。
【0215】
ある実施の形態では、第1出力は第2出力より高い。このような実施の形態では、第1出力は「高」出力と呼ばれ、第2出力は「低」出力と呼ばれる。
【0216】
ある実施の形態では、第1出力は第2出力より低い。このような実施の形態では、第1出力は「低」出力と呼ばれ、第2出力は「高」出力と呼ばれる。
【0217】
各インバータ1001a、1001bは、それぞれ、PMOSトランジスタ1002a、1002cおよびNMOSトランジスタ1002b、1002dを含む(トランジスタ1002a、1002b、1002c、1002dは、集合的にトランジスタ1002と呼ばれ、一般的にトランジスタ1002と呼ばれる)。トランジスタ1002の各々は、CTT700であってもよい。各インバータ1001に対するTIQ比較器1000の閾値は、PMOSトランジスタ1002の強度をNMOSトランジスタ1002の強度で割った比率に応じて設定される。各トランジスタ1002の強度は、各トランジスタ1002の幅、各トランジスタ1002の長さ、各トランジスタ1002の移動度、および/または各トランジスタ1002の任意の他の関連するパラメータまたは要因に関連すると理解される。さらに、微調整および較正は、
図13に示すような重み行列1302におけるのと同じ方法を用いて、閾値電圧を再プログラミングすることによって維持することができる。TIQ比較器1000は、CTT較正TIQ比較器1000であってもよい。
【0218】
図10において、トランジスタ1002の閾値電圧は、TIQオフセットを較正するために調整されてもよい。
【0219】
有利なことに、TIQ比較器1000のオフセットは、TIQ比較器1000内のトランジスタ1002のいずれか1つを調整することによって較正することができる。
【0220】
TIQ比較器1000の閾値電圧は、TIQ比較器1000によって自己生成される。入力接続1006を介して受信された入力電圧が閾値電圧を超えると、TIQ比較器1000の第1出力は第2出力に反転し、出力接続1008を介して送信される。入力接続1006を介して受信された入力電圧が閾値電圧を下回ると、第2出力は第1出力に反転し、出力接続1008を介して送信される。
【0221】
図12に、実施の形態に係るCNN1200に関して、本開示のアーキテクチャを用いてどのようにニューラルネットワークが構築され得るかを説明した例を示す。
図12は、画像分類のためのCNN1200の簡略図である。CNN1200は、層状に配置されたニューロン(例えば、
図5のニューロン500)によって実装されてもよい。
【0222】
CNN1200は、畳み込み層1204、プーリング層1206、完全連結層1208、隠れ層(図示せず)、および出力層1210を含む。
【0223】
CNN1200は、畳み込み層1204およびプーリング層1206を合わせて、入力画像1202の特徴を抽出するための特徴抽出器1201とみなすことができる。
【0224】
完全連結層1208および出力層1210は、両方あわせて、入力画像1202を分類するための分類器1209とみなされ得る。実施の形態において、分類器1209はさらに、入力画像1202の分類に対応する出力信号(図示せず)を送信することができる。
【0225】
図12において、各層1204、1206、1208は、ニューロン500などのニューロン(図示せず)を含む。
図12の各ニューロンは、
図5のシナプス502などのシナプス(図示せず)を含む。
図12のシナプスは、
図7のCTT700などのCTTを含む。CTT700の閾値電圧は、シナプス502のシナプス重みの値を記憶するためにプログラミングによって調整される。電圧パルス(図示せず)が各CTT700のゲート702に印加される。有利には、ソースは接地であってもよい。ゲート-ソース間電圧は一定であってもよいが、電圧パルスは、時間を用いて、活性化入力のための情報を伝達する。
【0226】
図14において、畳み込み層1204における例示的な計算が検査される。入力画像1202は画像を表すピクセル値の2次元配列である。各畳み込み層1204は、受け取った画素値に対して2次元の「ドット」積を実行する。入力画像1202は、3行3列または5行5列の行列のような、より小さな計算単位に分解される。
図13に示すように、3×3行列が例として提供される。
【0227】
図13では、入力画像120の一部が、畳み込み層120のニューロン500などのニューロンへの入力として受信されたピクセル値(X1、X2、...、X9)の3×3行列1302によって表されている。特徴フィルタに関連する特徴重みパラメータ(W1、W2、...、W9)は、3×3の行列1304によって表される。2つの行列1302、1304のドット積は、以下の式に従って、2つの行列1302、1304の各セルの積の和に等しい。
x・w=X
1*W
1+X
2*W
2+…+X
9*W
9
【0228】
図14に、CNN1200の畳み込み層1204における畳み込みニューロン1220の実装を示す。畳み込みニューロン1220は、ドット積の乗算部分を計算するためにCTT1215を利用するシナプス行列1214を含む。畳み込みニューロン1220は、シナプス行列1214の出力を蓄積するための蓄積用キャパシタ1216と、電圧を比較するための比較器1218とをさらに含む。比較器1218はTIQ比較器314であってもよい。活性化パルス(図示せず)は比較器1218の出力で生成される。
【0229】
畳み込みニューロン1220は入力データ1212を受信する。入力データ1212は行列の形であってもよい。
【0230】
ある実施の形態では、入力データ1212は入力信号である。
【0231】
ある実施の形態では、入力信号は、CNN1200の前の層から伝搬される。
【0232】
ある実施の形態では、畳み込みニューロン1220はCNN1200の第1層にあり、入力データ1212はCNN1200の外部からのCNN1200への入力である。
【0233】
ある実施の態様では、入力データ1212は、
図13の行列1302、1304を含む。
【0234】
ある実施の態様では、畳み込みニューロン1220は、
図3のニューロン300または
図5のニューロン500であってもよい。
【0235】
図14において、入力データ1212の積は、プーリング層1206(図示せず)などのCNN1200の後続の層に渡されるか、または信号としてエフェメラルメモリデバイス(図示せず)に格納される。
【0236】
完全に接続されたフィードフォワードニューラルネットワークの場合、複数の活性化パルス(
図5の活性化パルス512など)は、1つのニューロン(
図5のニューロン500など)に対して維持されなくてもよい。しかし、CNNのように活性化パルスを複数回再利用するANNの場合、1218の出力で生成された活性化パルスは、ANNの後続の層で処理する前に一時的に保存されてもよい。これらのANNの場合、エフェメラルメモリデバイスは活性化パルスの幅を一時的に記憶するために使われる。
【0237】
ある実施の形態では、畳み込みニューロン1220は、
図7のCTT700によって実装される。正のプログラミングの間、正のゲート電圧パルスがCTTのゲート702に印加され、各CTT700の閾値電圧が正の方向にシフトし得る。負のプログラミングの間、負のゲート電圧パルスがゲート702に印加され得、各CTT700の閾値電圧は反対方向にシフトし得る。
【0238】
シナプス乗算の間、ANNを実装するハードウェアの物理的パラメータの絶対値は、ANNに適用される較正のために重要ではない。
【0239】
シナプス乗算関数の積は電荷(すなわち、I*t)であり、シナプス出力(すなわち、電荷)の合計は蓄積用キャパシタ(蓄積用キャパシタ306または蓄積用キャパシタ506など)に記憶される可能性があることに留意する。本明細書で説明するメモリアーキテクチャでは、活性化パルス(図示せず)は、有利にはANNの後続層によって直接使用され得るので、メモリに記憶するためにデジタルに変換されなくてもよい。畳み込みニューロン1220が複数の活性化パルスを生成するために利用される場合、各活性化パルスはエフェメラルメモリデバイスによって記憶される。
【0240】
ある実施の形態では、較正の文脈において、ANNを実施する全体的なニューラルネットワークアルゴリズムは、ニューロン活性化パルス幅(図示せず)間の相対関係にのみ有利に依存する。絶対的な電圧、電流、または電荷には依存しない。ANNの全ニューロンが比較的正確であることを保証するために、各ニューロン(
図3のニューロン300など)の経路全体(シナプス302など)は、そのシナプスの各々(シナプス302など)を含めて、単一の「ゴールデン」ニューロン(図示せず)に対して相対的に較正することができる。このような較正は、有利なことに、すべてのニューロンがゴールデンニューロンに対して一定の関係を維持し、レシオメトリック精度を維持することを保証する。ある実施の形態では、初期プログラミング較正、連続温度較正、および周期的CTTドリフト較正を含む、解決策に関与するいくつかの較正がある。
【0241】
図15に、実施の形態に係る、基準ブロック較正のための方法1500を示す。方法1500は、
図3のニューロン300を較正するために実施され得る。1502において、ニューロン300は、指定された基準重みブロック(図示せず)を決定する。指定された基準重みブロックは、信号に従って較正された基準重みブロックであってもよい。指定された基準重みブロック、または「ゴールデンブロック」または「ゴールデン遅延ブロック」は、他のすべての遅延ブロックが較正されるブロックである。
【0242】
1504において、ニューロン300内のカレントミラー(たとえば、
図9aおよび9bに示すカレントミラー900および/または902)が、指定された基準重みブロックに従って較正される。較正後、電流ミラー900または902は、ゴールデン遅延ブロックと同期する。1506では、蓄積用キャパシタ306が、指定された基準重みブロックに従って較正される。較正後、蓄積用キャパシタ306はゴールデン遅延ブロックと同期する。1508で、比較器314が指定された基準重みブロックに従って較正される。較正後、比較器314はゴールデン遅延ブロックと同期する。このプロセスが完了すると、各ニューロン信号経路は、単一のゴールデン遅延ブロックに対してマッチングされる。有利なことに、すべてのニューロン300は互いに効果的にマッチングされ得る。1510において、CTT700に記憶された各シナプス重みは、指定された基準重みブロックにおいて較正される。
【0243】
コンポーネントが単一の基準重みブロック、たとえばゴールデン遅延ブロックに従って較正される場合、各コンポーネントは、有利にはシステム機能および効率を改善するために、同じ相対時間を維持することができる。
【0244】
本開示のさらなる利点は、ニューロンレベルでの較正が容易であり、その結果、完全なニューラルネットワーク(図示せず)内のすべてのニューロン300間のレシオメトリックマッチングが容易であることである。有利には、ANNにおいて良好な精度を達成するために、すべての活性化/重み積の相対比は、基準ブロック較正を通じて正確であり得る。
【0245】
ある実施の形態では、すべてのデバイス動作とすべてのニューロン信号経路が、1つの指定された基準重みブロック>カレントミラー→蓄積用キャパシタ→比較器チェーンに従って較正される。
【0246】
基準チェーンが単位スケール時間(例えば、1pF蓄積用キャパシタのフルスケール充電を1μsで行う)に較正されると、同じ基準重み(Iref)を使用して、すべてのカレントミラー→蓄積用キャパシタ>比較器チェーンが較正される。すべてのチェーンを定期的に較正して、デバイス特性のわずかなドリフトが確実に補正されるようにしてもよい。有利なことに、この較正プロセスによれば、すべてのニューロン信号経路間のすべての差異を効率的に較正することができる。有利なことに、前述の方法による較正は、時間だけが安定していても成功する可能性がある。
【0247】
温度補償は、少なくとも2つの方法のうちの1つで適用することができる。ある実施の形態では、バックバイアス電圧変調が適用される。実施の形態では、Vgsパルス電圧が調整されてもよい。前述の実施の形態のいずれかによって、基準チェーンは単位スケール時間に維持される。温度補償はグローバルであってもよい。温度補償は連続的であってもよい。有利なことに、温度補償は、温度によるグローバルドリフトが少量しか発生しないことを保証し、その結果、信号経路間の相対誤差をすべて無視できる程度に維持することができる。
【0248】
図16に、実施の形態による、情報を一時的に保持するためのエフェメラルメモリ方式1600を示す。エフェメラルメモリ方式1600は、
図17のエフェメラルメモリデバイス1700の実装の簡略化された図解である。
【0249】
エフェメラルメモリ方式1600は、活性化パルス(図示せず)を生成するための活性化1602と、活性化パルスを記憶するためのエフェメラルメモリ混合信号カウンタ1604と、活性化パルスを再生するための再生活性化1606と、を含む。
【0250】
次に
図17を参照すると、実施の形態による、情報を一時的に保持するためのエフェメラルメモリデバイス1700が示されている。エフェメラルメモリデバイス1700は、
図16のエフェメラルメモリ方式1600の一般的な実装を表す。ある態様では、保持される情報は、ニューロン300または500で受信された入力信号であってもよい。ある実施の形態では、エフェメラルメモリデバイス1700は、エフェメラルメモリデバイスであってもよい。
【0251】
エフェメラルメモリデバイス1700は、非同期制御可能遅延を提供するための内側リング1704を含む。内側リング1704は、非同期カウンタ1708を含む外側リング1706によって支持される。この組み合わせは、遅延状態の効率的な短期間正確な記憶を達成するために連動して動作する。
【0252】
エフェメラルメモリデバイス1700において、既存の装置、デバイス、方法、およびシステムに対して重要な利点は、装置が非同期に機能し得ることである。本装置1700は、物理的に小さなスペースでナノワット/ピコワットオーダーの消費電力を使用して時間を一時的に記憶するソリューションを提供し、これにより、より低い電力と小さなシリコン面積で機能を実現することができる。
【0253】
図18に、実施の形態による、情報を一時的に保持するためのエフェメラルメモリデバイス1800を示す。エフェメラルメモリデバイス1800は、より詳細に示す
図17のエフェメラルメモリデバイス1700の実装である。
【0254】
装置1800は、非同期制御可能な遅延を提供するための複数のサブスレッショルド・パストランジスタ・ロジック(PTL)遅延ライン・ブロック1802を含む内側リング1804を含む。外側リング1806は、非同期カウンタ1808を形成するDフリップフロップ(図示せず)を含む。
【0255】
エフェメラル、混合信号、時間メモリ構造のコンテキストにおいて、多くの人工ニューラルネットワークでは、フィルタ重みの特定のセットが、複数の活性化入力を処理するために層内で複数回使用される。中間活性化は、次の層が処理するためにすべての値が利用できるようになるまで保存されてもよい。ある実施の形態では、蓄積用キャパシタに接続されたトランジスタに関連するリーク電流のため、単純な蓄積用キャパシタでは不十分な場合がある。従って、エフェメラルメモリデバイス1800は、有利には、各活性化のパルス幅(または時間)を記憶するために使用され得る。エフェメラルメモリデバイス1800は、パルス幅または時間を非同期カウンタ1808に記憶し、その後に次のニューロンへの時間入力を駆動するために使用することができる。
【0256】
内側リング1804は、有効になると発振器(図示せず)として機能し、ニューロン・蓄積用キャパシタ(
図3の蓄積用キャパシタ306など)が放電している時間だけ有効になる。発振器は、有効になるとカウンタ1808をトリガしてカウントアップする。ニューロン・蓄積用キャパシタが放電されると、発振器は無効になり、カウンタ1808は値を保持する。その後、発振器が再び有効になり、カウンタ1808がゼロまでカウントダウンし、その間に、次のニューロンへの入力として、非同期カウンタ(図示せず)によってパルスが生成される。パルスを生成する非同期カウンターの絶対周波数は重要ではない。ある実施の形態では、発振周波数の一時的な安定性だけが精度にとって重要である。
【0257】
図19に、実施の形態に係る、情報を一時的に保持するためのエフェメラルメモリデバイス1900を示す。エフェメラルメモリデバイス1900は、より詳細に示された
図17の装置1700および
図18に示された装置1800の実施の形態である。実施の形態では、保持される情報は、ニューロン300または500で受信された入力信号である。
【0258】
ある実施の形態では、エフェメラルメモリデバイス1900は、エフェメラルメモリデバイスである。
【0259】
エフェメラルメモリデバイス1900は、非同期制御可能な遅延を提供するための内側リング1904を含む。装置1900は、内側リング1904を支持するための外側リング1906をさらに含む。外側リング1906は、非同期カウンタ1908を含む。非同期カウンタ1908は、第1の非同期カウンタ1909を含む。内側リング1904と外側リング1906は連動して機能し、遅延状態の効率的で短期的な正確な保存を実現する。
【0260】
内側リング1904は、非同期制御可能な遅延を提供するためのアナログ・サブスレッショルド遅延ブロック1902を含む。
【0261】
非同期カウンタ1908は、複数のDフリップフロップであってもよい。
【0262】
アナログ・サブスレッショルド遅延ブロック1902と正帰還と第1の非同期カウンタ1909を使用して、遅延素子の周波数に基づいて発振する自己タイミング発振器(図示せず)を作成することができる。エフェメラルメモリデバイス1900において、第1の非同期カウンタ1909は、自己タイミング発振器によってクロックされる。
【0263】
放電期間は、ニューロン300などのニューロンから活性化パルス(図示せず)を生成する。活性化パルスがハイのとき、活性化パルスは自己計時発振器を有効にする。活性化パルスがローのとき、活性化パルスは自己タイミング発振器を無効にし、非同期カウンタ1908は、活性化パルスのパルス幅を表す数値を記憶して停止する。非同期カウンタ1908は、有利には、記憶された数値を一定期間保持することができる。実施の形態において、非同期カウンタ1908は、好ましくは、記憶された数値を数秒間保持する。
【0264】
装置1900は、スペースと電力を節約するために、有利にはダイナミックロジックを使用することができる。
【0265】
起動パルスの間、非同期カウンタ1908はカウントアップ期間中にカウントアップする。エフェメラルメモリデバイス1900が、活性化パルスを後続のニューロン(ニューロン300など)に印加する場合、非同期カウンタ1908はカウントダウンし、アナログ・サブスレッショルド遅延ブロック1902を有効にして、プロセスを再生し、カウントアップ期間中に前の活性化パルスと等しい後続の活性化パルス(図示せず)を生成する。その結果、
図6のデュアル・スロープ・プロセスとなる。
【0266】
非同期カウンタ1908がカウントダウンし直すと、記憶された数が失われてもよい。ある実施の形態では、非同期カウンタ1908は、逆方向に動作するカウンタの別のバージョン(図示せず)と対にされてもよい。すなわち、非同期カウンタ1908がカウントダウンするときにカウントアップすることもあるし、その逆もある。
【0267】
ある実施の形態では、非同期カウンタ1908は1ビットの非同期サブスレッショルド・カウンタである。
【0268】
さらに、
図19に、単位時間およびその変化の例を示す。装置1900では、アップ・カウントは、蓄積蓄積用キャパシタ放電サイクルによって有効にされる。アップカウントは、ニューロン300などのニューロンの閾値によって無効にされる。装置1900では、ダウンカウントは、ANNの後続層に対する推論開始信号によって有効になる。
【0269】
非同期カウンタ1908は、放電フェーズ(
図6の傾き610に対応する)の開始時に有効化される。カウンタ1908は、TIQ比較器314が状態を反転するとき(すなわち、蓄積用キャパシタ306に現在かかっている電圧が基準電圧Vrefと等しくなるとき)に無効にされる。
【0270】
ある実施の形態では、アナログ・サブスレッショルド遅延ブロック1902によって提供される絶対遅延の欠陥は、装置1900が短い期間(ミリ秒単位で測定される)安定しており、非同期カウンタ1908がそれを補償するのに十分な余分な状態を有する限り、装置1900の正常な動作を妨げない。
【0271】
装置1900において、既存の装置、デバイス、方法、およびシステムに対する重要な利点は、装置1900が非同期に機能する可能性があることである。ナノワット/ピコワット電力消費空間に時間を一時的に格納するソリューションが提供される。本開示の利点は、より低い電力での機能性である。
【0272】
図20は、実施の形態による、ニューロン(ニューロン300など)を含むANNを使用する方法2000のフロー図である。
【0273】
2002において、入力信号は、複数のCTT700を介して処理される。
【0274】
2004において、ドレイン電流が、CTTs700からの乗算の出力として生成される。ドレイン電流は、入力として固定電圧が印加される期間に比例する量の電荷を生成する。
【0275】
2006において、ドレイン電流は複数のCTTs700から受信される。
【0276】
2008において、ドレイン電流からの電荷が蓄積され、蓄積された信号の短期メモリとして機能する。
【0277】
2010において、蓄積された放電サイクル中に電荷を放電することにより、出力信号が生成される。
【0278】
2012において、入力電圧が比較器314で基準電圧と比較される。比較器314は、TIQ比較器314であってもよい。
【0279】
2014において、入力電圧が比較器314の基準電圧を上回る場合、第1出力が生成される。
【0280】
2016において、入力電圧が比較器314の基準電圧を下回る場合、第2出力が生成される。
【0281】
ある実施の形態では、第1出力は第2出力より高い。このような実施の形態では、第1出力は「高」出力と呼ばれ、第2出力は「低」出力と呼ばれる。
【0282】
ある実施の形態では、第1出力は第2出力より低い。このような実施の形態では、第1出力は「低」出力と呼ばれ、第2出力は「高」出力と呼ばれる。
【0283】
上記の説明は、1つまたは複数の装置、デバイス、方法、またはシステムの例を提供するが、他の装置、デバイス、方法、またはシステムもまた、当業者によって解釈される特許請求の範囲内に含まれ得ることが理解されるであろう。
【手続補正書】
【提出日】2024-03-29
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
人工ニューラルネットワーク(ANN)を動作させるシステムであって、該システムはニューロンを含み、
前記ニューロンの各々は、
入力信号を処理する電荷トラップ型トランジスタ(CTT)を含む複数のシナプスと、
前記複数のシナプスからドレイン電流を受信する蓄積ブロックと、
前記ドレイン電流から電荷を蓄積し、蓄積された信号の短期メモリとして機能する蓄積用キャパシタと、
蓄積された電荷を放電サイクル中に放電することによって出力信号を生成する放電パルス発生器と、
入力電圧としての出力信号を基準電圧と比較する比較器と、
を備え、
前記CTTは、シナプス重みを供給し、
前記ドレイン電流は、複数のシナプスからの乗算の出力として生成され、
前記ドレイン電流は、前記シナプスで受信された時間パルスとシナプス重みとの積に等
しい量の電荷を生成し、
前記比較器は、入力電圧が基準電圧を上回っている場合は第1出力を生成し、入力電圧が基準電圧を下回っている場合は第2出力を生成
し、
前記比較器は、少なくとも1つの相補型金属酸化膜半導体(CMOS)インバータのカ
スケードからなる閾値インバータ量子化(TIQ)比較器であり、
前記CMOSインバータの各々は、pチャネル金属酸化膜半導体(PMOS)トランジ
スタと、nチャネル金属酸化膜半導体(NMOS)トランジスタと、からなり、
前記基準電圧は、前記TIQ比較器によって自己生成されるTIQ比較器の閾値に対応
し、
前記TIQ比較器の閾値は、前記PMOSトランジスタまたは前記NMOSトランジス
タを介して調整可能であり、
前記TIQ比較器の閾値は、前記PMOSトランジスタの強度を前記NMOSトランジ
スタの強度で割った比率に対応することを特徴とするシステム。
【請求項15】
ニューロンを含む人工ニューラルネットワーク(ANN)を動作させる方法であって、
複数の電荷トラップ型トランジスタ(CTT)を介して
、時間パルスに変換される入力信号を処理するステップと、
前記CTTがシナプス重みを供給するステップと、
前記複数のCTTから乗算の出力としてドレイン電流を生成するステップと、
前記複数のCTTから前記ドレイン電流を受信するステップと
蓄積された信号のための短期メモリとして機能するように、前記ドレイン電流から電荷を蓄積するステップと、
放電パルス発生器を用いて、蓄積された電荷を放電サイクル中に放電することによって、出力信号を生成するステップと、
比較器で入力電圧を基準電圧と比較するステップと、
を含み、
前記ドレイン電流は、シナプスで受信された時間パルスとシナプス重みとの積に等しい
量の電荷を生成し、
前記比較器は、前記入力電圧が前記基準電圧以上であれば第1の出力を生成し、前記入力電圧が前記基準電圧未満であれば第2の出力を生成し、
前記比較器は、閾値インバータ量子化(TIQ)比較器であり、
前記TIQ比較器は、少なくとも1つの相補型金属酸化膜半導体(CMOS)インバー
タのカスケードからなり、
前記CMOSインバータの各々は、pチャネル金属酸化膜半導体(PMOS)トランジ
スタおよびnチャネル金属酸化膜半導体(NMOS)トランジスタからなり、
前記基準電圧は、前記TIQ比較器によって自己生成されるTIQ比較器の閾値に対応
し、
前記TIQ比較器の閾値は、前記PMOSトランジスタまたは前記NMOSトランジス
タを介して調整可能であり、
前記TIQ比較器の閾値は、前記PMOSトランジスタの強度を前記NMOSトランジ
スタの強度で割った比率に対応することを特徴とする方法。
【請求項20】
前記非同期カウンタは、第1の非同期カウンタを含み、
前記第1の非同期カウンタは、1ビットの非同期サブスレッショルド・カウンタであり、
前記非同期カウンタはDフリップフロップを含むことを特徴とする請求項
18に記載のエフェメラルメモリデバイス。
【国際調査報告】