(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】2021518008
(43)【公表日】20210729
(54)【発明の名称】重み更新回路および推論回路を別個に有する抵抗型処理ユニット・アーキテクチャ
(51)【国際特許分類】
   G06N 3/063 20060101AFI20210702BHJP
   G11C 13/00 20060101ALI20210702BHJP
   G06G 7/60 20060101ALI20210702BHJP
【FI】
   !G06N3/063
   !G11C13/00 200
   !G06G7/60
【審査請求】未請求
【予備審査請求】未請求
【全頁数】30
(21)【出願番号】2020548670
(86)(22)【出願日】20190401
(85)【翻訳文提出日】20200911
(86)【国際出願番号】IB2019052663
(87)【国際公開番号】WO2019202427
(87)【国際公開日】20191024
(31)【優先権主張番号】15/954,170
(32)【優先日】20180416
(33)【優先権主張国】US
(81)【指定国】 AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JO,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所】アメリカ合衆国10504 ニューヨーク州 アーモンク ニュー オーチャード ロード
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100108501
【弁理士】
【氏名又は名称】上野 剛史
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】キム、セヨン
【住所又は居所】アメリカ合衆国10598 ニューヨーク州ヨークタウン・ハイツ キッチャワン・ロード1101
(72)【発明者】
【氏名】ゴクメン、タイフン
【住所又は居所】アメリカ合衆国10598 ニューヨーク州ヨークタウン・ハイツ キッチャワン・ロード1101
(57)【要約】
【課題】調整可能抵抗デバイスを含むRPUデバイスの重み値を更新するために、抵抗処理ユニット(RPU)・システムにおける重み更新動作を実行する、システムおよび方法を提供する。
【解決手段】所与のRPUデバイスのための重み更新動作は、RPUデバイスのための重み更新累積値を維持することと、RPUデバイスに接続された更新行制御ラインおよび更新列制御ライン上に印加される入力ベクトルの確率的ビット・ストリームの検出された一致に応答して、重み更新累積値を一単位更新値だけ調整することと、累積重み値が事前定義された閾値に到達することに応答して重み更新制御信号を生成することと、重み更新制御信号に応答して、調整可能抵抗デバイスのコンダクタンス・レベルを一単位コンダクタンス値だけ調整することであって、一単位コンダクタンス値が、RPUデバイスの一単位重み値に対応する、調整することと、を含む。
【選択図】図1
【特許請求の範囲】
【請求項1】
抵抗型処理ユニット(RPU)・デバイスであって、
更新行制御ラインに接続された第1の入力および更新列制御ラインに接続された第2の入力を有する重み更新累積回路と、
前記重み更新累積回路の出力に接続された重み更新制御回路と、
前記重み更新制御回路に連結され、読み出し行制御ラインおよび読み出し列制御ラインに接続された調整可能抵抗デバイスと、を備え、
前記重み更新累積回路が、(i)重み更新累積値hijを維持し、前記更新行制御ラインおよび前記更新列制御ラインに印加される入力ベクトルの確率的ビット・ストリームのそれぞれの検出された一致に応答して前記重み更新累積値hijを一単位更新値Δhだけ調整し、(ii)累積重み値hijが事前定義された閾値に到達したことに応答して前記重み更新制御回路に重み更新制御信号を出力する、ように構成され、
前記重み更新制御回路が、前記重み更新累積回路から出力される前記重み更新制御信号に応答して、前記調整可能抵抗デバイスのコンダクタンス・レベルを一単位コンダクタンス値Δgだけ調整するように構成され、前記一単位コンダクタンス値Δgが、前記RPUデバイスの一単位重み値Δwに対応する、RPUデバイス。
【請求項2】
前記重み更新累積回路が、前記調整可能抵抗デバイスに接続された前記読み出し行制御ラインおよび前記読み出し列制御ラインに読み出し制御電圧を印加することによって、前記RPUデバイスの重み値wijが感知される読み出し動作と同時に、累積重み更新動作を実行するように構成される、請求項1に記載のRPUデバイス。
【請求項3】
前記重み更新累積回路および前記重み更新制御回路が、プログラミング極性制御信号を受信し、前記プログラミング極性制御信号の極性に依存して、前記重み更新累積値と前記調整可能抵抗デバイスの前記コンダクタンス・レベルとを(i)インクリメントすること、および(ii)デクリメントすることのうちの1つによって、前記重み更新累積値および前記コンダクタンス・レベルを調整するように構成される、請求項1に記載のRPUデバイス。
【請求項4】
前記重み更新累積回路が、
前記更新行制御ラインおよび前記更新列制御ラインに接続された入力を有する一致検出器と、
前記一致検出器の出力に接続されたデータ入力ポートを有する双方向デジタル・カウンタと、を備え、
前記一致検出器が、前記更新行制御ラインおよび前記更新列制御ラインに印加される前記入力ベクトルの前記確率的ビット・ストリームのそれぞれの検出された一致に応答して、前記双方向デジタル・カウンタの前記データ入力ポートに検出信号を出力するように構成され、
前記双方向デジタル・カウンタが、(i)前記データ入力ポートに入力される前記検出信号に応答してカウント値を調整し、(ii)前記カウント値が事前定義されたカウント値に到達したことに応答して前記重み更新制御信号を前記重み更新制御回路に出力する、ように構成される、請求項1に記載のRPUデバイス。
【請求項5】
前記重み更新制御回路が、前記調整可能抵抗デバイスのコンダクタンス・レベルを一単位コンダクタンス値Δgだけ調整するためにプログラミング電圧パルスを生成するように構成される、パルス生成器回路を含む、請求項4に記載のRPUデバイス。
【請求項6】
前記パルス生成器回路が、前記調整可能抵抗デバイスの前記コンダクタンス・レベルの調整に続いて前記双方向デジタル・カウンタのカウント値を事前定義された初期化カウント値にリセットするために、前記双方向デジタル・カウンタのリセット制御ポートに入力されるリセット制御信号を生成するように構成される、請求項5に記載のRPUデバイス。
【請求項7】
前記事前定義されたカウント値が、前記双方向デジタル・カウンタの最小カウント値および最大カウント値のうちの1つを含む、請求項4に記載のRPUデバイス。
【請求項8】
前記一致検出器が、AND論理回路を含む、請求項4に記載のRPUデバイス。
【請求項9】
前記重み更新制御回路が、パルス生成器回路を含み、前記調整可能抵抗デバイスが、調整可能メモリスタ・デバイスを含み、前記パルス生成器回路が、前記調整可能メモリスタ・デバイスのコンダクタンス・レベルを一単位コンダクタンス値Δgだけ調整するために前記調整可能メモリスタ・デバイスにわたってプログラミング電圧パルスを印加するように構成される、請求項1に記載のRPUデバイス。
【請求項10】
前記重み更新制御回路が、第1のスイッチおよび第2のスイッチを含み、前記第1のスイッチおよび前記第2のスイッチが、重み更新プロセスを実行するために前記パルス生成器回路の第1の出力端子および第2の出力端子にわたって前記調整可能メモリスタ・デバイスを選択的に接続するため、ならびに重み読み出し動作を実行するために前記調整可能メモリスタ・デバイスを前記読み出し行制御ラインおよび前記読み出し列制御ラインに選択的に接続するための、パス・イネーブル制御信号に応答する、請求項9に記載のRPUデバイス。
【請求項11】
前記パルス生成器回路が、前記RPUデバイスの設置領域内に位置する局所専用パルス生成器回路を含む、請求項9に記載のRPUデバイス。
【請求項12】
前記パルス生成器回路が、前記RPUデバイスの設置領域外に位置するグローバル・パルス生成器回路を含み、前記グローバル・パルス生成器回路が、複数のRPUデバイスから成るアレイ内の少なくとも1つの他のRPUデバイスと共有される、請求項9に記載のRPUデバイス。
【請求項13】
前記重み更新制御回路が、第1の電流源、第2の電流源、およびキャパシタを含み、前記調整可能抵抗デバイスが、読み出しトランジスタを含み、
前記キャパシタが、前記RPUデバイスのための重み電圧を記憶するように構成され、
前記読み出しトランジスタが、ゲート端子、第1のソース/ドレイン端子、および第2のソース/ドレイン端子を含み、前記ゲート端子が、前記キャパシタに接続され、前記第1のソース/ドレイン端子が、前記読み出し行制御ラインに接続され、前記第2のソース/ドレイン端子が、前記読み出し列制御ラインに接続され、
前記読み出しトランジスタが、前記読み出し行制御ラインおよび前記読み出し列制御ラインに印加される読み出し制御信号に応答して、前記読み出しトランジスタの前記ゲート端子に印加される前記キャパシタの前記重み電圧に応答する重み電流を生成するように構成され、
前記重み更新累積回路から出力される前記重み更新制御信号に応答して、前記重み更新制御回路が、(i)前記キャパシタの重み電圧を一単位電圧変化+ΔVだけ増加させるために前記キャパシタに充電電流を印加するように、前記第1の電流源を選択的にアクティブ化すること、および(ii)前記キャパシタの重み電圧を一単位電圧変化−ΔVだけ減少させるために前記キャパシタに放電電流を印加するように、前記第2の電流源を選択的にアクティブ化すること、のうちの1つを行うように構成される、請求項1に記載のRPUデバイス。
【請求項14】
請求項1に記載の前記RPUデバイスを含む、RPUクロスバー・アレイ・システム。
【請求項15】
方法であって、
調整可能抵抗デバイスを含む抵抗型処理ユニット(RPU)・デバイスの重み値を更新するための重み更新動作を実行することを含み、前記重み更新動作が、
前記RPUデバイスのための重み更新累積値hijを維持することと、
前記RPUデバイスに接続された更新行制御ラインおよび更新列制御ライン上に印加される入力ベクトルの確率的ビット・ストリームの検出された一致に応答して、前記重み更新累積値hijを一単位更新値Δhだけ調整することと、
累積重み値hijが事前定義された閾値に到達することに応答して重み更新制御信号を生成することと、
前記重み更新制御信号に応答して、前記調整可能抵抗デバイスのコンダクタンス・レベルを一単位コンダクタンス値Δgだけ調整することであって、前記一単位コンダクタンス値Δgが、前記RPUデバイスの一単位重み値Δwに対応する、前記調整することと、
を含む、方法。
【請求項16】
前記RPUデバイスの重み値wijを読み出すための重み読み出し動作を実行することをさらに含み、前記重み読み出し動作が、
前記調整可能抵抗デバイスに接続された読み出し行制御ラインおよび読み出し列制御ライン上に読み出し制御電圧を印加することと、
前記読み出し制御電圧に応答して前記調整可能抵抗デバイスによって生成される読み出し電流を処理することであって、前記読み出し電流が、前記RPUデバイスの重み値wijに対応する、前記処理することと、を含み、
前記重み読み出し動作が、前記重み更新動作の前記重み更新累積値を調整することと同時に実行される、請求項15に記載の方法。
【請求項17】
前記重み更新累積値を調整することが、双方向デジタル・カウンタのカウント値を調整することを含み、前記重み更新制御信号を生成することが、前記カウント値が事前定義されたカウント値に到達するときにキャリー制御信号を生成することを含む、請求項15に記載の方法。
【請求項18】
前記重み更新制御信号を生成することが、前記キャリー制御信号に応答してプログラミング電圧パルスを生成することと、前記調整可能抵抗デバイスの前記コンダクタンス・レベルを一単位コンダクタンス値Δgだけ調整するために前記プログラミング電圧パルスを前記調整可能抵抗デバイスに印加することと、を含む、請求項15に記載の方法。
【請求項19】
前記調整可能抵抗デバイスの前記コンダクタンス・レベルの調整に続いて前記双方向デジタル・カウンタのカウント値を事前定義された初期化カウント値にリセットするために、前記双方向デジタル・カウンタのリセット制御ポートに入力されるリセット制御信号を生成することをさらに含む、請求項18に記載の方法。
【請求項20】
前記調整可能抵抗デバイスが、読み出しトランジスタ、および前記読み出しトランジスタのゲート端子に接続されたキャパシタを含み、前記キャパシタが、前記RPUデバイスについての重み電圧を記憶するように構成され、
前記重み更新制御信号に応答して前記調整可能抵抗デバイスのコンダクタンス・レベルを調整することが、
前記キャパシタの重み電圧を一単位電圧変化+ΔVだけ増加させるために前記キャパシタに充電電流を印加するように、第1の電流源を選択的にアクティブ化すること、および
前記キャパシタの重み電圧を一単位電圧変化−ΔVだけ減少させるために前記キャパシタに放電電流を印加するように、第2の電流源を選択的にアクティブ化すること、
のうちの少なくとも1つを含む、請求項15に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、抵抗型処理ユニット(RPU)・フレームワークに関し、特に、RPU記憶セルに記憶された重み値を更新し、読み出すための技術に関する。
【背景技術】
【0002】
近年、深層ニューラル・ネットワーク(DNN)・ベース・モデルが、大規模ラベル付きデータセットの利用可能性および計算リソースの絶え間ない改善に起因して著しく進歩している。DNNは、例えば、物体/音声認識、言語変換、パターン抽出、および画像処理を含む様々なアプリケーションにおいて利用される。DNNモデルの品質は、大量の訓練データの処理およびニューラル・ネットワークの増大した複雑性に依存する。この点について、複雑なDNNモデルの訓練は、DNNモデルの訓練を完結させるために多くの計算ノード(例えば、データセンタ規模の計算リソース)を有する並列および分散コンピューティング・フレームワークを用いて実行するのに何日または何週間も必要とし得る、時間のかかる計算集約的なタスクである。
【0003】
訓練時間を減少させるために、DNN作業負荷を処理するためのハードウェア・アクセラレーション技術が、従来のCMOS技術において、または台頭してきている不揮発性メモリ(NVM)技術を用いることによって、のいずれかで追及されている。しかしながら、RPUアクセラレータ・デバイスが、従来のハードウェア・アクセラレーション技術と比較するとより少ない電力を用いて、DNN訓練を桁違いに加速させる可能性を有することが分かっている。DNN訓練は、3つの反復サイクル:順方向、逆方向、および重み更新を含む逆伝播アルゴリズムに概して依存する。RPU記憶セルの2次元(2D)クロスバー・アレイに基づくRPUアクセラレータ・デバイスは、逆伝播アルゴリズムの3つのサイクル全てを並列で実行するように構成されてもよく、よって、中央処理装置(CPU)およびグラフィック処理装置(GPU)を用いた最先端の実施と比較してより低電力および減少した計算リソースで、DNNの訓練における著しいアクセラレーションを潜在的に提供すると判断されている。RPUアクセラレータは、重み値を局所的に記憶および更新してもよく、それによって、訓練プロセス中のデータ移動を最小化し、DNN訓練プロセスの局所性および並列処理を十分に活用する。
【0004】
RPUセルのアレイを含む確率的に訓練されたDNNは、例えば、メモリスタ・デバイス、キャパシタ/読み出しトランジスタなどを含む様々な種類の調整可能抵抗デバイスを用いて実施されるシナプス重みを有し得る。DNNを適切に訓練し、高精度を達成するためには、調整可能抵抗デバイスの動作特性は、所与のDNNアルゴリズムが著しい誤差ペナルティなしに耐性を有し得る許容できるRPUデバイス・パラメータの厳重なセットの仕様を満たすべきである。これらの仕様は、例えば、単一の一致事象に起因する最小インクリメント式コンダクタンス変更(±Δgmin)、コンダクタンスの上下変化の非対称性、コンダクタンス値の調整可能範囲などの、RPUデバイス切り替え特性における変量を含む。
【0005】
特に、DNN訓練のための1つの重要な仕様が、RPUセルが少なくとも1000のコンダクタンス・レベル(または段階)の分解能(または動的範囲)を伴う調整可能なコンダクタンスを有するべきであり、コンダクタンス・レベルは、最低コンダクタンス状態から最高コンダクタンス状態にアナログかつ対称的なインクリメント方式で(最大コンダクタンス状態と最小コンダクタンス状態との間のコンダクタンス差の大きさ(オン/オフ比)が少なくとも1桁で)(1nsパルスを介して)切り替えられ得るということである。RPUセルにおいて最小単位重み値(±Δwmin)の上/下変化の対称性を実現するために、RPUセルの関連するコンダクタンス・レベルにおける、それぞれのインクリメント増加(ステップ・アップ、
【数1】
)、およびインクリメント減少(ステップ・ダウン、
【数2】
)が、わずか5%の不一致誤差の範囲内の同一量または類似量であるべきである。言い換えると、調整可能抵抗RPUデバイスは、本来アナログであり、同一であるが反対のパルス刺激がもたらされるときのコンダクタンス上下変化において対称的に応答すべきである。しかしながら、これらの要件にかかわらず、調整可能抵抗デバイスは、制限されたダイナミック・レンジ、分解能、および調整/プログラミング特性における可変性を表すことがあり、それが、RPUアーキテクチャのハードウェア実装を困難にする。
【発明の概要】
【0006】
本発明の実施形態は、RPUセルにおける重み更新動作および重み読み出し動作を実行するためのRPUセル・アーキテクチャおよび方法を含み、RPUセルにおいて、調整可能抵抗デバイスを含むRPUセルのクロスバー・アレイの中で別個の重み更新累積動作および推論(重み読み出し)動作を独立して実行するために、別個の行列が利用される。
【0007】
1つの実施形態は、RPUデバイスを含み、RPUデバイスは、更新行制御ラインに接続された第1の入力および更新列制御ラインに接続された第2の入力を有する重み更新累積回路と、重み更新累積回路の出力に接続された重み更新制御回路と、重み更新制御回路に連結され、読み出し行制御ラインおよび読み出し列制御ラインに接続された調整可能抵抗デバイスと、を備える。重み更新累積回路は、(i)重み更新累積値hijを維持し、更新行制御ラインおよび更新列制御ラインに印加される入力ベクトルの確率的ビット・ストリームのそれぞれの検出された一致に応答して重み更新累積値hijを一単位更新値Δhだけ調整し、(ii)累積重み値hijが事前定義された閾値に到達したことに応答して重み更新制御回路に重み更新制御信号を出力する、ように構成される。重み更新制御回路は、重み更新累積回路から出力される重み更新制御信号に応答して、調整可能抵抗デバイスのコンダクタンス・レベルを一単位コンダクタンス値Δgだけ調整するように構成され、一単位コンダクタンス値Δgは、RPUデバイスの一単位重み値Δwに対応する。
【0008】
別の実施形態は、調整可能抵抗デバイスを含むRPUデバイスの重み値を更新するための重み更新動作を実行する方法を含む。重み更新動作は、RPUデバイスのための重み更新累積値hijを維持することと、RPUデバイスに接続された更新行制御ラインおよび更新列制御ライン上に印加される入力ベクトルの確率的ビット・ストリームの検出された一致に応答して、重み更新累積値hijを一単位更新値Δhだけ調整することと、累積重み値hijが事前定義された閾値に到達したことに応答して重み更新制御信号を生成することと、重み更新制御信号に応答して、調整可能抵抗デバイスのコンダクタンス・レベルを一単位コンダクタンス値Δgだけ調整することであって、一単位コンダクタンス値Δgが、RPUデバイスの一単位重み値Δwに対応する、調整することと、を含む。
【0009】
他の実施形態は、添付図面と併せて読まれるべき以下の実施形態の詳細な説明において説明される。
【図面の簡単な説明】
【0010】
【図1】本発明の実施形態による、RPUセル・アーキテクチャを用いて実施され得るRPUシステムを概略的に示す図である。
【図2】図1のRPUシステムを用いて実行され得る、逆伝播プロセスの順方向パス動作を概略的に示す図である。
【図3】図1のRPUシステムを用いて実行され得る、逆伝播プロセスの逆方向パス動作を概略的に示す図である。
【図4】図1のRPUシステムを用いて実行され得る、逆伝播プロセスの重み更新動作を概略的に示す図である。
【図5】本発明の一実施形態による、別々の重み行列が別々の重み更新累積動作および推論(重み読み出し)動作を独立して実行するために実施される、RPUセル・アーキテクチャのハイレベル概略図である。
【図6】本発明の別の実施形態による、別々の重み行列が別々の重み更新累積動作および推論動作を独立して実行するために実施される、RPUセル・アーキテクチャを概略的に示す図である。
【図7】本発明の一実施形態による、図6のRPUセルの動作モードを概略的に示す図である。
【図8】本発明の別の実施形態による、各RPUセルが別々の重み更新累積動作および推論動作を独立して実行するために別々の重み行列を実施する、RPUシステムのRPUセルのアレイを概略的に示す図である。
【図9】本発明の別の実施形態による、別々の重み行列が別々の重み更新累積動作および推論動作を独立して実行するために実施される、RPUセル・アーキテクチャを概略的に示す図である。
【発明を実施するための形態】
【0011】
本発明の実施形態は、調整可能抵抗デバイスを含むRPUセルのクロスバー・アレイの中で別々の重み更新累積動作および推論(重み読み出し)動作を独立して実行するために別々の行列が利用されるRPUセル・アーキテクチャおよび方法について、ここでさらに詳細に説明される。同一または類似の参照番号は、同一または類似の特徴、要素、または構造を示すために図面全体を通して使用され、よって、同一または類似の特徴、要素、または構造の詳細な説明は、各図面について反復されないことに留意すべきである。
【0012】
図1は、本発明の実施形態による、RPUセル・アーキテクチャを用いて実施され得るRPUシステム100を概略的に示す図である。RPUシステム100は、複数の行R1、R2、R3、...、Rmおよび複数の列C1、C2、C3、...、Cnに配列されたRPUセル110の2次元(2D)クロスバー・アレイを含む。各行R1、R2、R3、...、RmにおけるRPUセル110は、それぞれの行制御ラインRL1、RL2、RL3、...、RLm(まとめて、行制御ラインRL)に通常接続されている。各列C1、C2、C3、...、CnにおけるRPUセル110は、それぞれの列制御ラインCL1、CL2、CL3、...、CLn(まとめて、列制御ラインCL)に通常接続されている。各RPUセル110は、行制御ラインおよび列制御ラインのうちのそれぞれ1つのクロスポイント(または交差点)に(およびその間に)接続されている。1つの例としての実施形態において、RPUシステム100は、RPUセル110の4,096×4,096アレイを含む。
【0013】
RPUシステム100は、各行制御ラインRL1、RL2、RL3、...、RLmに接続された周辺回路120−1、120−2、120−3、...、120−m(まとめて、周辺回路120)の個々のブロック、ならびに各列制御ラインCL1、CL2、CL3、...、CLnに接続された周辺回路130−1、130−2、130−3、...、130−n(まとめて、周辺回路130)の個々のブロックをさらに含む。さらに、(行のための)周辺回路120−1、120−2、120−3、...、120−mの各ブロックは、データ入力/出力(I/O)インターフェース・ブロック125に接続されている。同様に、(列のための)周辺回路130−1、130−2、130−3、...、130−nの各ブロックは、データI/Oインターフェース・ブロック135に接続されている。RPUシステム100は、RPUシステム100の動作用の配電および制御信号ならびにクロック信号を提供するための電力、クロック、バイアス、およびタイミング回路などの様々な種類の回路ブロックを含む基準回路140をさらに含む。
【0014】
いくつかの実施形態において、RPUシステム100は、DNN計算を実行するように構成され、各RPUセル110のコンダクタンスは、行列成分または重みwijを表し、重みwijは、周辺回路120および130の動作を通して更新され、またはアクセスされ得る(wijは、RPUセル110のアレイ内のi行j列の重み値を示す)。上述の通り、DNN訓練は、概して、3つの反復サイクル:順方向サイクル、逆方向サイクル、および重み更新サイクルを含む逆伝播プロセスに依存する。RPUシステム100は、逆伝播プロセスの3つのサイクル全てを並列で実行するように構成されてもよく、それによって、より低電力かつ減少した計算リソースでDNN訓練の著しい加速を潜在的にもたらす。RPUシステム100は、アナログ領域におけるベクトル−行列乗算演算を並列方式で実行するように構成されてもよく、それは、相当するCPU/GPU実施と比較して著しい性能強化(例えば1万倍以上)につながる。
【0015】
行制御ラインRLおよび列制御ラインCLは、それぞれ例示を容易にするために単一の線として図1に示されているが、各行制御ラインおよび列制御ラインは、実施に依存して、各行および列内のRPUセル110に接続された2つ以上の制御ラインを含み得ると理解されるべきである。例えば、1つの実施形態において、各行制御ラインRLおよび各列制御ラインCLは、「更新」制御ラインおよび「読み出し」制御ラインを含む1対の制御ラインを含む。所与のRPUセル110のセル・コンダクタンス(例えば、重み値)は、所与のRPUセル110に接続された所与の行および列について、更新および読み出し制御ラインをそれぞれ通して調整および感知され得る。
【0016】
いくつかの実施形態において、周辺回路120および130の各ブロックは、逆伝播プロセスについての順方向、逆方向、および更新動作を実行するために、RPUセル110の2Dアレイにおけるそれぞれの行および列に接続された同一セットの回路ブロックを本質的に含む。例えば、1つの実施形態において、RPUセル更新動作をサポートする(例えば、所与のRPUセル110の重み値を更新する)ために、周辺回路120および130の各ブロックは、一連の確率的に存在するパルスを生成し(所与のRPUセル110内の)一致検出回路に印加するため、ならびに所与のRPUセル110の重み値を更新する動作を実行するための、確率的パルス生成器ブロックおよび更新パルス駆動ブロックを含み、それらは、重み更新サイクル中に受信した更新ベクトルに応答する。特に、以下でさらに詳細に説明されるように、確率的パルスは、所与のRPUセル110に接続された更新行制御ラインおよび更新列制御ライン上に送信され、RPUセル110内に記憶された重み値を更新するための様々な動作(例えば、乗算)を実行するために一致検出回路を用いて処理される。
【0017】
さらに、1つの実施形態において、RPUセル読み出し/感知動作をサポートする(例えば、所与のRPUセル110の重み値を読み出す)ために、周辺回路120および130の各ブロックは、(i)順方向/逆方向サイクル中に受信した入力ベクトル値(読み出し入力値)に応答してPWM読み出しパルスを生成しRPUセル110に印加するための、パルス幅変調(PWM)回路および読み出しパルス駆動回路と、(ii)接続されたRPUセル110から出力および累積される読み出し電流(IREAD)を積分するため、および後続の計算のために積分された電流をデジタル値(読み出し出力値)に変換するための、電流積分回路およびアナログ・デジタル(ADC)回路と、を含む。
【0018】
データI/Oインターフェース125は、(i)外部制御信号を受信し、周辺回路120のブロックに更新および読み出し入力値を印加し、(ii)周辺回路120のブロックからデジタル読み出し出力値を受信し、処理のためにリモート要素にデジタル読み出し出力信号を送信するように構成されるインターフェースを提供する。同様に、データI/Oインターフェース135は、(i)外部制御信号を受信し、周辺回路130のブロックに更新および読み出し入力値を印加し、(ii)周辺回路130のブロックからデジタル読み出し出力値を受信し、処理のためにリモート要素にデジタル読み出し出力信号を送信するように構成されるインターフェースを提供する。
【0019】
RPUシステム100内の各RPUセル110は、調整可能コンダクタンスを有するレジスタのような回路コンポーネントを含み、各RPUセル110のコンダクタンス値は、行列成分または重みを表す。例えば、いくつかの実施形態において、RPUセル110は、抵抗変化型RAM(RRAM)システムにおいて使用される抵抗メモリ素子などの可変抵抗デバイスを用いて実施され得る。特に、当技術分野において既知の通り、抵抗メモリ・セルは、絶縁層(例えば、金属酸化物)が抵抗スイッチ挙動を通して可変抵抗を表す、金属−絶縁体−金属(MIM)構造を含む。
【0020】
他の実施形態において、RPUセル110は、キャパシタおよび1つまたは複数の読み出しトランジスタを含むアナログCMOSフレームワークを用いて実施され得る。キャパシタは、キャパシタ電圧の形態で重み値を記憶するRPUセル内のメモリ素子の役割をする。以下でさらに詳細に説明されるように、キャパシタ電圧または重み電圧Vは、読み出しトランジスタのチャネル抵抗を調節するために読み出しトランジスタのゲート端子に直接印加される。キャパシタに記憶される充電状態は、ドレイン電流を生成するために読み出しトランジスタにわたって小さなバイアスを印加することによってアクセスされ得る。ドレイン電流は、読み出し電流IREADを生成する。読み出し電流IREADは、RPUセルから流れ出し、周辺回路120および130の各ブロックにおいて処理される。
【0021】
当技術分野において既知の通り、信号が一連の線形変換および非線形変換を通して進むことによって入力層から出力層へ伝播するように、完全接続型DNNは、全結合層の積層体を含む。DNN全体が、出力層においてスコアを分類するために入力データをマッピングする、単一の微分可能誤差関数を表す。典型的には、DNNは、単純な確率的勾配降下(SGD)法を用いて訓練され、それにおいて、各パラメータに関する誤差勾配が、逆伝播アルゴリズムを用いて計算される。逆伝播アルゴリズムは、収束基準を満たすまで何度も反復される3つのサイクル、順方向、逆方向、および重み更新から構成される。順方向および逆方向サイクルは、主に、図1に示されるRPUシステムのRPUデバイス・セル110の2Dクロスバー・アレイを用いてベクトル−行列乗算演算を順方向および逆方向に計算することを伴う。
【0022】
図1のRPUシステム100において、RPUセルの2Dクロスバー・アレイ内のコンダクタンス値gijが、重み値wijの行列Wを形成する。順方向サイクル(図2)において、(電圧パルスの形態の)入力ベクトルが、RPUセル110においてベクトル−行列乗算を実行するために、2Dクロスバー・アレイ内の入力行のそれぞれを通して送信される。逆方向サイクル(図3)において、列から供給される電圧パルスが、RPUセル110に入力され、ベクトル−行列積が、重み行列Wの値の転置行列に対して計算される。順方向サイクルおよび逆方向サイクルとは対照的に、抵抗デバイスの2Dクロスバー・アレイ上の重み更新を実施することは、アレイ内の各クロスポイントRPUデバイスにおいて局所的に実行される乗算演算およびインクリメント重み更新で構成される、ベクトル−ベクトル外積を計算することを必要とする。図2、図3、および図4は、図1のRPUシステム100を用いて実行され得る逆伝播アルゴリズムの順方向パス、逆方向パス、および重み更新動作をそれぞれ概略的に示す図である。
【0023】
N個の入力ニューロンがM個の出力(または隠れ)ニューロンに接続される単一の全結合層について、順方向パス(図2)は、ベクトル−行列乗算y=Wxを計算することを伴い、ここで、長さNのベクトルxは、入力ニューロンの活動を表し、大きさM×Nの行列Wは、入力ニューロンおよび出力ニューロンの各対間の重み値を記憶する。結果となる長さMのベクトルyは、各要素に対して非線形アクティブ化を実行することによってさらに処理され、次いで次の層に渡される。情報が最終出力層に到達すると、誤差信号が計算され、ネットワークを通して逆伝播される。順方向サイクルにおいて、RPUセル110のクロスバー・アレイに記憶されたコンダクタンス値は、行列を形成し、一方、入力ベクトルは、入力行R1、R2、R3、...、Rmのそれぞれを通して電圧パルスとして送信される。
【0024】
単一層上での逆方向サイクル(図3)もまた、重み行列の転置行列に対するベクトル−行列乗算、z=Wδを伴い、ここで、Wは、重み行列を示し、長さMのベクトルδは、出力ニューロンによって計算された誤差を表し、長さNのベクトルzは、ニューロン非線形性の導関数を用いてさらに処理され、次いで前の層に戻って渡される。逆方向サイクルにおいて、電圧パルスは、列CL1、CL2、CL3、...、CLnから入力としてRPUセル110に供給され、ベクトル−行列積が、重み行列Wの転置行列に対して計算される。
【0025】
最後に、更新サイクル(図4)において、重み行列Wは、順方向および逆方向サイクルにおいて使用される2つのベクトルの外積を実行することによって更新される。特に、抵抗デバイスの2Dクロスバー・アレイ上の重み更新を局所的にかつ全て並列で実施することは、アレイ・サイズとは関係なく、図1のRPUシステムにおける各クロスポイント(RPUセル110)において局所的に実行されるべき乗算演算およびインクリメント重み更新で構成されるベクトル−ベクトル外積を計算することを必要とする。図4で概略的に示されるように、重み更新プロセスは、wij←wij+ηx×δとして計算され、ここで、wijは、i行j列の重み値を表し(単純化のため、層インデックスは省略される)、xは、入力ニューロンにおける活動であり、δは、出力ニューロンによって計算された誤差であり、ηは、グローバル学習率を示す。
【0026】
要約すると、重み行列Wに対する全ての演算は、M行およびN列を有する2つの端末RPUデバイスの2Dクロスバー・アレイを用いて実施され得る。ここで、クロスバー・アレイに記憶されたコンダクタンス値が行列Wを形成する。順方向サイクルにおいて、入力ベクトルxは、電圧パルスとして各行を通して送信され、結果となるベクトルyは、列からの電流信号として読み出され得る。同様に、電圧パルスが、逆方向サイクルにおいて入力として列から供給されるとき、ベクトル−行列積は、重み行列の転置行列Wに対して計算される。最後に、更新サイクルにおいて、ベクトルxおよびδを表す電圧パルスが、行および列から同時に供給される。更新サイクルにおいて、各RPUセル110は、列および行から来る電圧パルスを処理することによって局所乗算および総和演算を実行し、したがってインクリメント重み更新を実現する。
【0027】
重み更新サイクルについてのxおよびδベクトルの積を判断するために、周辺回路ブロック120および130において確率的変換回路が、入力ベクトルxおよびδを表す確率的ビット・ストリームを生成するために利用される。ベクトルxおよびδについての確率的ビット・ストリームが、RPUセルの2Dクロスバー・アレイにおける行および列を通して供給され、所与のRPUセルのコンダクタンスが、所与のRPUセルに入力されるxおよびδ確率的パルス・ストリームの一致に依存して変化する。重み更新動作のためのベクトル・クロス積演算が、実数を表す確率的ストリームの一致検出(AND論理ゲート演算を用いた)が乗算演算に相当するという既知の概念に基づいて実施される。
【0028】
上述した3つの動作モード全てが、ニューラル・ネットワークを形成するRPUセルが3つのサイクル全てにおいてアクティブであることを許容し、よって、DNN訓練プロセス中にRPUセルの更新された重み値を計算するための逆伝播アルゴリズムの非常に効率的な実施が可能になる。上述の通り、RPUセルのアレイを含む確率的に訓練されたDNNは、例えば、メモリスタ・デバイス、キャパシタ/読み出しトランジスタなどを含む様々な種類の調整可能抵抗デバイスを用いて実施されるシナプス重みを有し得る。DNNを適切に訓練し、高精度を達成するために、調整可能抵抗デバイスの動作特性は、RPUセルにおける対称的なインクリメント(増加/減少)重み値更新±Δwminを実現する能力を含むがこれに限定されない、厳重なセットの仕様を満たすべきである。そのような対称性を実現するために、RPUシステムは、アナログかつ対称的なインクリメント方式で所与のRPUセルのコンダクタンス・レベルを最低コンダクタンス状態から最高コンダクタンス状態に切り替えるように構成されるべきである。コンダクタンス・レベルの各インクリメント増加(ステップ・アップ、
【数3】

)およびインクリメント減少(ステップ・ダウン、
【数4】

)は、わずか5%の不一致誤差の範囲内の同一または類似の量であるべきである。特に、上/下の対称性
【数5】

は、1.0±0.05に等しくなるべきである。パラメータ
【数6】

は、周辺回路によって定義される増幅係数を通してパラメータ
【数7】

に比例することに留意すべきである。しかしながら、メモリスタ・デバイス(またはメモリスタ)などの調整可能抵抗デバイスは、典型的には調整/プログラミングの特性において可変性を表し、コンダクタンス・レベルの範囲(最小〜最高)にわたって対称的な重み更新を実現することを困難にしている。
【0029】
調整可能抵抗デバイスの調整/プログラミング特性における可変性に対処するために、および緩和された仕様を有する調整可能抵抗デバイスを用いてRPUシステムを実施するために、本発明の実施形態は、重み更新累積動作および推論(重み読み出し)動作を実行するために別々の行列が利用される、RPUセル・アーキテクチャを提供する。特に、図4に示されるように、従来のRPUシステムは、重み更新プロセス:wij←wij+ηx×δを実行するために単一の重み行列Wを利用する。ここで、wijは、i行j列の重み値を表す。本発明の実施形態によるRPUシステムは、重み行列Wだけでなく、Hと示される別の「隠れ重み更新累積」行列を用いて実施される。H行列は、重み更新累積プロセス:hij←hij+ηx×δを実行するために利用され、ここで、hijは、i行j列の重み更新累積値を表す。この方式では、重み更新累積値hijが、事前指定された閾値HThresholdを満たすときに、対応する重み値wijが、一単位ΔWminだけインクリメントまたはデクリメントされる。累積された重み更新動作は、更新パスにおいてH行列を用いて実行され、H行列は推論パスから隠される。推論パスのためのW行列は、累積された重み更新の繰返し毎に更新されるのではなく、RPUセルのH行列値hijが事前指定された閾値HThresholdを満たすときに、所与のRPUセル300のためのW行列値wijが更新される。
【0030】
例えば、図5は、本発明の一実施形態による、別々の重み行列が別々の重み更新累積動作および推論(重み読み出し)動作を独立して実行するために実施される、RPUセル・アーキテクチャのハイレベルな概略図である。特に、図5は、重み更新累積回路310、重み更新制御回路320、および調整可能抵抗デバイス330を含むRPUセル300を示す。重み更新累積回路310は、更新行制御ラインおよび更新列制御ラインに接続された入力を有し、調整可能抵抗デバイス330は、読み出し行制御ラインおよび読み出し列制御ラインに接続される。重み更新累積回路310および重み更新制御回路320は、インクリメント重み値更新の方向(インクリメントまたはデクリメント)を制御するプログラミング極性制御信号(V_Prog)を入力として受信する。いくつかの実施形態において、調整可能抵抗デバイス330は、メモリスタ・デバイス、または抵抗変化型RAM(RRAM)において利用される抵抗メモリ・セルなどの所与の適用に適した他の種類の可変抵抗デバイスを用いて実施される。特に、当技術分野において既知の通り、抵抗メモリ・セルは、絶縁層(例えば金属酸化物)が抵抗スイッチ挙動を通して可変抵抗を表す、金属−絶縁体−金属(MIM)構造を含む。
【0031】
RPUセル300において、重み更新累積回路310は、重み更新累積プロセス:hij←hij+ηx×δを実行するために一致検出方法を用いて、局所乗算演算(ベクトル・クロス積演算)を実行するように構成される。上述の通り、重み更新動作は、実数を表す確率的ビット・ストリームの一致検出(例えばAND演算)を実行することが、乗算演算に相当するという概念に基づいて実施される。この点について、xおよびδの積(hij←hij+ηx×δにおける)は、更新行制御ラインおよび更新列制御ラインそれぞれの上で重み更新累積回路310にベクトルxおよびδを表す確率的ビット・ストリームを入力することによって、計算される。重み更新累積回路310は、2つの入力確率的ビット・ストリームxおよびδの一致に依存して、累積重み値hijを更新する。
【0032】
重み更新累積値hijが、事前指定された閾値HThresholdを満たすとき、重み更新累積回路310は、更新制御信号(更新)を生成し、重み更新制御回路320に送信する。更新制御信号に応答して、重み更新制御回路320は、調整可能抵抗デバイス330のコンダクタンス・レベルを1段階だけ調整する(即ち、導電性レベルを1段階
【数8】

だけインクリメントまたはデクリメントする)。言い換えると、重み更新制御回路320は、RPUセル300の対応する重み値wijを一単位ΔWminだけ調整し、新たな重み値wijが、現在記憶されている重み値wijに対してΔWminを加算すること、または減算すること(即ち、wij←wij+±ΔWmin)によって計算される。累積重み更新値hijおよび推論重み値wijに対するインクリメント変更は、回路ブロック310および320に入力されるプログラミング極性制御信号(V_Prog)の極性に依存して、増加され(上)または減少される(下)。
【0033】
調整可能抵抗デバイス330の推論重み値wijが、所与のRPUセル300において更新されるとき、重み更新制御回路320は、リセット制御信号(リセット)を生成し、重み更新累積回路310に送信する。リセット制御信号に応答して、重み更新累積回路310は、hijの値を事前定義された、初期化値にリセットし、所与のRPUセルについての新たな重み更新累積サイクルを開始する。
【0034】
RPUセル300の例示的フレームワークにおいて、推論動作(例えば、図2および図3に示される順方向/逆方向パス動作)は、RPUセル・アレイにわたってH行列に対して実行される重み更新累積動作から独立して、W行列に対して実行される。所与のRPUセルのW行列値wijは、所与のRPUセルのH行列値hijに対する各更新繰返しで更新されるのではなく、H行列値hijが事前定義された閾値を満たすときに、W行列値wijが更新される。このフレームワークでは、W行列値wijについての状態数は、例えば、1200状態から40状態まで減少されてもよく、H行列値hijについての状態数は、例えば30であってもよい。この点について、所与のRPUセルのW行列値は、所与のRPUセルについてのH行列値が30状態を通して循環する度に、一単位値±ΔWminだけ更新され得る。これは、1200コンダクタンス・レベル(状態)、例えば40個のW行列値のそれぞれについて30個のH行列値(30×40=1200)を有するRPUセルを、効果的にエミュレートする。
【0035】
このフレームワークでは、W行列値に対するインクリメント更新が、H行列値に対するインクリメント更新より少ない頻度で実行され、それによって、W行列が、緩和された仕様および制約で調整可能抵抗デバイスを用いて実施されることを可能にする。例えば、1000以上のコンダクタンス状態を有するメモリスタ・デバイスでRPUセルを実施しなければならないわけではなく、メモリスタ・デバイスは、40以下のレベルのコンダクタンス分解能で実施されてもよく、それによって緩和されたデバイス制約を提供する。例えば、図5の調整可能抵抗デバイス330は、酸化ハフニウム(HfOx)・ベースのRRAMデバイスを用いて実施され得る。さらに、このRPUセル・フレームワークでは、W行列値に対するインクリメント更新は、対称的である必要はない。さらに、例示的なRPUセル・フレームワークは、順方向および更新動作が同時に実行されることを可能にし、W行列に対するグローバル更新サイクルを実行する必要性を除去することによって、性能速度上昇を提供する。
【0036】
いくつかの実施形態において、H行列値についての状態数は、適用に依存して30以上であってもよい。図5のRPUセル300の例示的フレームワークでは、H行列値のインクリメント更新は、対称的であるべきである。この点について、重み更新累積回路310は、RPUセルのH行列値hijの対称的なインクリメント/デクリメント更新を可能にするために、様々な回路トポロジおよび構成を用いて容易に実施され得る。重み更新累積回路310および関連するRPUセル・アーキテクチャを実施するための代替的実施形態が、ここで図6、図7、図8、および図9に示される例としての実施形態を参照してさらに詳細に説明される。
【0037】
例えば、図6は、本発明の別の実施形態によれば、別々の推論(重み読み出し)および重み更新累積動作を独立して実行するために別々の重み行列を実施する、RPUセル400を概略的に示す図である。RPUセル400は、重み更新累積回路410、パルス生成器回路420、調整可能抵抗デバイス430、ならびに第1のスイッチS1および第2のスイッチS2を含む。重み更新累積回路410は、一致検出器412および双方向デジタル・カウンタ414(または上/下カウンタ)を含む。パルス生成器回路420は、制御回路422およびパルス生成器424を含む。図6に示される重み更新累積回路410は、上述の通り図5の重み更新累積回路310の例としての実施形態である。さらに、図6に示されるパルス生成器回路420ならびに第1のスイッチS1および第2のスイッチS2が、上述の通り図5の重み更新制御回路320の例としての実施形態をまとめて提供する。
【0038】
1つの実施形態において、一致検出器412は、更新行制御ラインおよび更新列制御ラインに接続された入力、ならびに双方向デジタル・カウンタ414のデータ入力(IN)に接続された出力を有するAND論理ゲートを含む。確率的コンピューティング方式を用いた重み更新プロセスについて、AND論理ゲートは、局所乗算演算を可能にし、RPUセル400のH行列値hijのインクリメント更新が、更新行制御ラインおよび更新列制御ライン上の確率的パルスが一致する度に(例えば、ANDゲート入力が、一致する論理「1」パルスを有するときに)実行される。更新行制御ラインおよび更新列制御ラインでパルス一致が検出されるとき、一致検出器412は、例えば、双方向デジタル・カウンタ414のデータ入力INに、論理レベル「1」を出力する。
【0039】
双方向デジタル・カウンタ414は、双方向デジタル・カウンタ414の上/下制御入力に印加されるプログラミング極性制御信号V_Progの論理レベルに依存して、上または下のいずれか、双方向にカウントするように構成される任意の適当なデジタル・カウンタ回路構成を用いて、実施され得る。特に、双方向デジタル・カウンタ414は、任意の所与のカウント・シーケンスを通して任意の方向(上または下)にカウントするように構成され、カウント方向は、双方向デジタル・カウンタ414の上/下制御入力に印加されるV_Progの論理レベルに基づいてカウント・シーケンス内の任意の点で逆方向にされ得る。
【0040】
双方向デジタル・カウンタ414のカウント値が事前指定されたカウント値に到達するとき、双方向デジタル・カウンタ414は、パルス生成器回路420の入力に制御信号キャリーを出力する。キャリー制御信号に応答して、パルス生成器回路420は、パルス生成器回路420の正(+)および負(−)の出力端子上に(事前指定された期間の)電圧パルスを生成し、それは、調整可能抵抗デバイス430のコンダクタンス・レベルを一単位±Δgminだけインクリメントまたはデクリメントのいずれかをするために調整可能抵抗デバイス430に印加される。コンダクタンス・レベルの単位変化±Δgminは、RPUセル400の重み値wijの単位変化±ΔWminに対応する(新たな重み値は、ΔWminを加算すること、または現在記憶されている重み値wijからΔWminを減算すること(即ち、wij←wij+±ΔWmin)によって計算される)。パルス生成器回路420は、双方向デジタル・カウンタ414を事前指定された初期化カウント値にリセットするために双方向デジタル・カウンタ414のリセット入力に印加されるリセット制御信号を生成し、出力する。
【0041】
より具体的には、図6に示されるように、パルス生成器回路420の制御回路422は、(i)双方向デジタル・カウンタ414からのキャリー信号出力を受信および処理すること、(ii)双方向デジタル・カウンタ414をリセットするためにリセット制御信号を生成および出力すること、(iii)第1のスイッチS1および第2のスイッチS2を制御するパス・イネーブル制御信号(Path_En)を生成および出力すること、ならびに(iv)パルス生成器424に、パルス生成器回路420の出力端子(+)および(−)上で重み更新パルスを生成および出力させる、パルス生成器424へのアクティブ化信号を生成すること、を含む様々な機能を実行するように構成される。
【0042】
図6に示されるように、第1のスイッチS1および第2のスイッチS2は、制御回路422から出力されるPath_En制御信号によって制御される。Path_En制御信号の極性に依存して、RPUセル400は、「更新パス」構成または「推論パス」構成のいずれかに構成される。更新パス構成において、第1のスイッチS1および第2のスイッチS2は、調整可能抵抗デバイス430をパルス生成器回路420の正(+)および負(−)出力端子に、ならびにその間に接続するようにアクティブ化される。この構成では、パルス生成器回路420は、調整可能抵抗デバイス430のコンダクタンス値を一単位±Δgminだけインクリメントまたはデクリメントのいずれかをするために、重み更新電圧パルスを調整可能抵抗デバイス430に印加する。重み更新電圧パルスの極性は、V_Prog制御信号の論理レベルに依存して、正(+)または負(−)のいずれかである。例えば、正のパルス(所定のパルス幅を有する)は、調整可能抵抗デバイス430のコンダクタンス・レベルを一単位+Δgminだけ増加させるためにパルス生成器回路420の出力に印加され、負のパルス(所定のパルス幅を有する)は、調整可能抵抗デバイス430のコンダクタンス・レベルを一単位−Δgminだけ減少させるためにパルス生成器回路420の出力に印加される。
【0043】
一方、推論パス構成において、第1のスイッチS1および第2のスイッチS2は、RPUセル400の重み値wijを読み出すために、調整可能抵抗デバイス430を読み出し行制御ラインおよび読み出し列制御ラインに、ならびにその間に接続するようにアクティブ化される。例えば、推論パス構成において、事前定義された振幅を有する電圧パルスを読み出し行制御ラインおよび読み出し列制御ライン上に印加すること、次いで、調整可能抵抗デバイス430によって生成され、読み出し行制御ライン(逆方向動作)または読み出し列制御ライン(順方向動作)のいずれかに出力される読み出し電流Ireadを測定することによって、RPUセル400の重み値wijが、順方向動作または逆方向(読み出し)動作あるいはその両方において読み出され得る。読み出し電流Ireadは、周辺回路(図1参照)において統合およびデジタル化され、ベクトル−行列乗算演算を実行するように処理される。
【0044】
第1のスイッチS1および第2のスイッチS2は、概して図6に示されているが、各スイッチS1およびS2が、重み更新パスまたは重み読み出し(推論)パスのいずれかを構成するためにPath_En制御信号の論理レベルに応答するRPUセル400内のスイッチ回路を提供するために、1つまたは複数のMOSFETトランジスタを用いて実施され得ると理解されるべきである。図6に示される例としての実施形態において、RPUセル400の重み値を読み出すための推論動作(順方向パス動作および逆方向パス動作のための)は、重み更新累積回路410によって実行される累積重み更新動作と同時に実行され得る。さらに、所与のRPUセル400の重み更新動作が、他のRPUセルにおける重み更新動作と同期することなく、かつ重み読み出し(推論)動作がRPUアレイにおいて実行されているときであっても、調整可能抵抗デバイス430のコンダクタンス・レベルを調整するため局所的に実行され得るように、キャリー信号が生成され、双方向デジタル・カウンタ414から出力されるときに、パルス生成器回路420は、所与のRPUセル400についての重み更新動作を非同期方式で実行するように進行し得る。別の実施形態では、同期重み更新フレームワークが、適当な制御/タイミング・プロトコルを用いて実施されてもよく、それによって、アサートされた保留中のキャリー信号を有する複数のRPUセルが、グローバル更新信号/サイクルが生成され/開始されるまで、例えばパルス生成器回路からのプログラミング・パルスの出力を遅延させることによって、それらの局所重み更新動作を同時に実行するように構成される。
【0045】
1つの例としての実施形態において、RPUセルの局所重み更新動作が、以下のように実行され得る。RPUシステムの順方向および逆方向動作モードの間、制御回路422は、Path_En制御信号を第1の論理レベル(例えば、Path_En=論理「1」)に設定し、それが、調整可能抵抗デバイス430を読み出し行制御ラインおよび読み出し列制御ラインに、ならびにその間に接続するために、第1のスイッチS1および第2のスイッチS2をアクティブ化する。この状態において、推論動作は、RPUセル400の現在の重み値を読み出し/感知するためにRPUシステムによって実行され得る。
【0046】
キャリー制御信号が双方向デジタル・カウンタ414から出力されるとき、制御回路422は、Path_En制御信号を第2の論理レベル(例えば、Path_En=論理「0」)に設定し、それが、調整可能抵抗デバイス430をパルス生成器回路420の正(+)および負(−)出力端子に、ならびにその間に接続するために、第1のスイッチS1および第2のスイッチS2をアクティブ化する。この状態において、制御回路422は、パルス生成器ブロック424へのアクティブ化信号を生成し、それによって、パルス生成器ブロック424は、重み更新プログラミング・パルス(事前定義されたパルス幅を有する)を生成して調整可能抵抗デバイス430に印加し、調整可能抵抗デバイス430のコンダクタンス・レベルを一単位コンダクタンス・レベルだけ調整する。プログラミング・パルスが調整可能抵抗デバイス430に印加されると、制御回路422は、リセット制御信号を生成し、双方向デジタル・カウンタ414のリセット入力ポートに出力する。リセット制御信号に応答して、双方向デジタル・カウンタ414は、初期化カウント値にリセットされ、キャリー信号は、デアサートされる(例えば、論理「1」から論理「0」へ遷移する)。キャリー制御信号のデアサートに応答して、パルス生成器回路420の制御回路422は、第1のスイッチS1および第2のスイッチS2に、調整可能抵抗デバイス430を読み出し行制御ラインおよび読み出し列制御ラインに再接続させるために、Path_En制御信号の論理状態を変更する。
【0047】
図7は、本発明の一実施形態による、図6のRPUセル400の動作モードを概略的に示す図である。特に、図7は、双方向デジタル・カウンタ414が最小カウント値(C_min)から最大カウント値(C_max)まで変動し得るカウント値500の範囲を有することを概略的に示し、調整可能抵抗デバイス430は、最小コンダクタンス(G_min)から最大コンダクタンス(G_max)まで変動し得る調整可能コンダクタンス510を有する。1つの実施形態では、本実施に依存して、双方向デジタル・カウンタ414は、C_min=0からC_max=31のカウント値の範囲を提供する5ビットのカウンタを含み、カウンタは、上下方向に動作し得る。さらに、1つの実施形態において、調整可能コンダクタンスの動的範囲は、最低コンダクタンス状態(G_min)から最高コンダクタンス状態(G_max)までの40の値を含み得る。
【0048】
図7においてさらに示されるように、カウント・シーケンスの間にC_minまたはC_maxカウント値のいずれかに到達するときに、キャリー制御信号が、双方向デジタル・カウンタ414から出力される。上述の通り、一致検出器412に入力される更新行制御ラインおよび更新列制御ライン上に印加される確率的ビット・ストリームのそれぞれの検出された一致事象に応答して、双方向デジタル・カウンタ414のカウント値が、1カウント値増加または減少のいずれかにされる。キャリー制御信号に応答して、RPUセル400の重み更新制御回路(例えば、パルス生成器420ならびにスイッチS1およびS2)が、調整可能抵抗デバイス430のコンダクタンスを一単位±Δgminだけインクリメントまたはデクリメントのいずれかをするように動作する。上述の通り、単位コンダクタンス・パラメータΔgminは、周辺回路において定義された増幅係数を通して単位重みパラメータΔwminに比例する。図7にさらに示されるように、リセット制御信号に応答して、双方向デジタル・カウンタ414のカウント値が、事前定義されたカウント・リセット値(C_Reset)にリセットされ、C_Resetから始まる重み更新を累積するための次のカウント・サイクルを開始する。1つの実施形態において、C_Resetの値は、カウント・シーケンスの中間点であるように選択される。例えば、5ビット・カウンタの場合、C_Resetの値は、15または16であるように選択され得る。
【0049】
図7に示されるプロセスでは、調整可能抵抗デバイス430のコンダクタンス・レベルは、カウント値がC_maxまたはC_minに到達する度にアナログかつインクリメント方式で調整される。この点について、Δhminが、カウント値の各インクリメントまたはデクリメントに対応するように、一致検出事象に応答する双方向デジタル・カウンタのカウント・シーケンスのインクリメント/デクリメントは、重み更新累積プロセス:hij←hij+ηx×δをエミュレートする。デジタル・カウンタのカウント値における上下変化は本来対称的であるため、重み更新累積値hijにおける上(
【数9】

)および下(
【数10】

)の変化に対称性があり、上/下対称性
【数11】

が約1.0に等しいということが、必然的に続く。
【0050】
本明細書において説明されるRPUセル・フレームワークは、例えば、調整可能抵抗デバイスのコンダクタンス値における上下変化の対称性に関して、RPUセルにおいて使用される調整可能抵抗デバイスの仕様における緩和を可能にし、したがって、抵抗デバイスは、より少ない数のコンダクタンス状態(例えば、1000以上の状態とは対照的に、40状態)で実施され得る。調整可能抵抗デバイス(W行列を定義する)のコンダクタンス状態は、累積された重み更新(H行列によって定義される)が事前定義されたカウント閾値に到達することのみに応答してインクリメント方式で変更(上または下)される。本質的に、H行列値は、RPUセルの重み値の最下位ビット(LSB)を表し、W行列値は、RPUセルの重み値の最上位ビット(MSB)を表す。これは、実際に40以下のレベル(1000以上ではない)のコンダクタンス分解能を有するRPUデバイスを利用する間、RPUシステムが、1000以上の異なる重み値を有するRPUセルに対してDNN訓練動作を実行するように構成されるDNNの適用を用いて利用されることを可能にし、それによって、緩和されたデバイス制約を提供する。
【0051】
図8は、本発明の別の実施形態による、各RPUセルが別々の推論(重み読み出し)動作および重み更新累積動作を独立して実行するために別々の重み行列を実施する、RPUシステムのRPUセルのアレイを概略的に示す図である。特に、図8は、RPUセル・アレイの4つのRPUセル600−1、600−2、600−3、および600−4を含むRPUサブアレイ600を示す。RPUセル600−1、600−2、600−3、および600−4は、更新行制御ライン、更新列制御ライン、読み出し行制御ライン、および読み出し列制御ラインのそれぞれに接続される。図8に示されるように、制御ラインの各行(i)および(i+1)が、更新行制御ラインおよび読み出し行制御ラインの対を含み、制御ラインの各列(i)および(i+1)が、更新列制御ラインおよび読み出し列制御ラインの対を含む。
【0052】
図8にさらに示されるように、各RPUセル600−1、600−2、600−3、および600−4は、図6に示されるRPUセル400と同様に、重み更新累積回路410、調整可能抵抗デバイス430、ならびに第1のスイッチS1および第2のスイッチS2を含む。しかしながら、図8の例示的実施形態において、グローバル・パルス生成器610は、図6のRPUセル400内の局所パルス生成器回路420と同一または類似の機能を実行するために、サブアレイ600において各RPUセル600−1、600−2、600−3、および600−4によって共通して利用される。図8の実施形態は、局所専用パルス生成器回路を有する各RPUセルとは対照的に、グローバル・パルス生成器回路610が複数のRPUセルによって利用される、より領域(設置領域(フットプリント))効率の良い実施を提供する。
【0053】
図8に概略的に示されるように、グローバル・パルス生成器610は、制御回路612およびパルス生成器614を含み、それらは、図6の局所パルス生成器回路420のそれぞれのコンポーネントと同一または類似の機能を有する。複数の制御ライン620(または制御バス)が、グローバル・パルス生成器610の制御回路612を、RPUセル・サブアレイ600のRPUセル600−1、600−2、600−3、および600−4のそれぞれにおける双方向デジタル・カウンタ414のリセット信号入力ポートおよびキャリー信号出力ポートに接続するように実施される。さらに、複数の制御ライン622が、グローバル・パルス生成器610の出力端子を、RPUセル・サブアレイ600のRPUセル600−1、600−2、600−3、および600−4のそれぞれにおける制御端子(グローバルPG+、グローバルPG−)に接続するように実施される。図8の例としての実施形態は、RPUセル・アレイ内のRPUセル600の2×2サブアレイによって共有されているグローバル・パルス生成器回路610を示しているが、他の実施形態では、グローバル・パルス生成器回路610は、アレイ構成およびレイアウト仕様に依存して、RPUセルのより大きなサブアレイ(例えば、10×10サブアレイ)によって共有され得る。
【0054】
1つの実施形態において、RPUセル・サブアレイ600のRPUセル600−1、600−2、600−3、および600−4のそれぞれにおけるスイッチS1およびS2は、(図6のRPUセル・フレームワークにおける局所パルス生成器回路420によって生成されるPath_En信号とは対照的に、)双方向デジタル・カウンタ414によって生成されるキャリー制御信号を用いて局所的に制御され得る。キャリー制御信号が、RPUセル600−1、600−2、600−3、および600−4のうちの所与の1つにおいて双方向デジタル・カウンタ414によってアサートされる(例えば、論理「1」)とき、所与のRPUセルにおける局所スイッチS1およびS2は、関連する調整可能抵抗デバイス430を所与のRPUセルにおける局所制御端子(グローバルPG+、グローバルPG−)に、およびその間に接続するためにアクティブ化される。この構成では、RPUセル・サブアレイ600のRPUセル600−1、600−2、600−3、および600−4のうちの1つもしくは複数または全てが、所与の時間においてグローバル・パルス生成器610の出力端子に接続されたそれらのそれぞれの抵抗デバイス430を有し得る。
【0055】
さらに、(RPUセル600のサブアレイにおける1つまたは複数の双方向カウンタ414から)制御ライン620のうちの1つまたは複数で受信されるキャリー制御信号に応答して、グローバル・パルス生成器610の制御回路612は、アクティブ化制御信号をパルス生成器ブロック614に印加し、アクティブ化制御信号は、パルス生成器ブロック614に、制御ライン622でプログラミング・パルスを生成させ、RPUセル・サブアレイ600における各RPUセル600−1、600−2、600−3、および600−4に出力させる。この構成では、各RPUセル600−1、600−2、600−3、および600−4は、パルス生成器614から出力されたプログラミング・パルスを受信するが、アサートされた保留中のキャリー信号を有するそれらのRPUセルのみ、したがって、所与の時間にグローバル・パルス生成器610の出力端子(グローバルPG+、グローバルPG−)に局所的に接続されたそれぞれの調整可能デバイス430は、プログラミング・パルスに応答して調整可能抵抗デバイス430のコンダクタンス・レベルを変更することにより、重み更新動作を実行する。この構成では、グローバル・パルス生成器610が、所与のサブアレイ600内の全てのRPUセルの重み値を同時に更新することが可能なプログラミング・パルスを生成するのに十分な電流駆動ケイパビリティを有すると仮定される。
【0056】
プログラミング・パルスがRPUセルの抵抗デバイス430に印加された後、制御回路612は、リセット制御信号を生成し、それは、接続されたRPUセル内の双方向カウンタ414のリセット入力ポートに、制御ライン620を経て送信される。リセット制御信号に応答して、アサートされたキャリー制御信号を有する接続されたRPUセルにおけるそれらの双方向カウンタ414のみが、それらのカウント値をリセットし、次いで、それぞれのキャリー制御信号をデアサートする。所与のRPUセルにおけるキャリー制御信号のデアサートが、所与のRPUセルにおける局所スイッチS1およびS2に、調整可能抵抗デバイス430をそれぞれの読み出し行制御ラインおよび読み出し列制御ラインに再接続させる。
【0057】
図6、図8、および図9の例としての実施形態は、メモリスタまたは抵抗メモリ・セル(例えばRRAMデバイス)などの調整可能抵抗デバイスを利用するRPUセル・フレームワークに基づくが、本明細書に説明される技術は、例えば、RPUセル重み値を記憶し読み出すための重み記憶キャパシタおよび読み出しトランジスタを用いた、アナログCMOSベースのフレームワークに基づくRPUセルにおいて実施され得る。例えば、図9は、本発明の別の実施形態による、別々の推論(重み読み出し)動作および重み更新累積動作を独立して実行するために別々の重み行列が利用されるRPUセル700を概略的に示す図である。図9に示されるように、RPUセル700は、重み更新累積回路710、第1のスイッチS1、第2のスイッチS2、第3のスイッチS3、制御回路715、第1の電流源720、第2の電流源722、重み記憶キャパシタ730、および読み出しトランジスタ740を含む。
【0058】
重み更新累積回路710は、図6、図7、および図8の状況において上述した例としての実施形態においてと同一または類似の機能を実行する、一致検出器412および双方向デジタル・カウンタ414を含む。1つの実施形態において、第1の電流源720は、PMOSトランジスタを用いて実施されてもよく、第2の電流源722は、NMOSトランジスタを用いて実施されてもよい。第1の電流源720および第2の電流源722は、電源ノードVDDおよびVSSの間に直列で接続される。重み記憶キャパシタ730は、ノードN1と電源ノードVSSとの間に接続される。読み出しトランジスタ740は、ノードN1に接続されるゲート端子、および読み出し行制御ラインおよび読み出し列制御ラインに接続されるソース/ドレイン端子を含む。制御回路715は、双方向カウンタ414からキャリー制御信号を受信する入力ポート、双方向カウンタ414にリセット制御信号を送信する出力ポート、およびPath_En制御パルスを出力する出力ポートを含む。
【0059】
図9に示されるように、第1のスイッチS1および第2のスイッチS2は、プログラミング極性信号V_Progに応答して選択的にアクティブ化される。1つの実施形態において、スイッチS1は、論理「1」Vのプログラミング極性信号(V_Prog=1)に応答してアクティブ化され、スイッチS2は、論理「0」のプログラミング極性信号(V_Prog=0)に応答してアクティブ化される。さらに、上述の通り、双方向デジタル・カウンタ414のカウント方向は、プログラミング極性信号V_Progによって制御され、双方向デジタル・カウンタ414は、論理「1」のプログラミング極性信号(V_Prog=1)に応答して「上」方向にカウントし、論理「0」のプログラミング極性信号(V_Prog=0)に応答して「下」方向にカウントする。さらに、スイッチS3は、制御回路715によって生成されるPath_En制御パルスに応答して選択的にアクティブ化される。
【0060】
RPUセル700の設計において、重み記憶キャパシタ730は、充電の形態でRPUセル700の重み値を記憶するメモリ素子の役割をする。重み読み出し動作を実行するために、キャパシタ電圧または重み電圧Vは、読み出しトランジスタ740のチャネル抵抗を調節するために、読み出しトランジスタ740のゲート端子に直接印加される。キャパシタ730に記憶される充電状態は、読み出しトランジスタ740のソース/ドレイン端子にわたって小さなバイアスを印加すること、および電流IREADを測定することによって、アクセスされ得る。上述の通り、順方向動作および逆方向(読み出し)動作について、事前定義された振幅、例えばVDDおよびVDD−0.1を有する電圧パルスが、読み出し行制御ラインおよび読み出し列制御ラインから読み出しトランジスタ740に印加される。小さなソース−ドレイン電圧によって、読み出しトランジスタ740は、重み電圧Vに依存するオン抵抗が読み出しトランジスタ740のゲート端子に直接印加される三極管領域において動作する。
【0061】
RPUセル700は、以下のような別々のHおよびW行列値更新動作を用いて重み更新プロセスを実施する。上述の例としての実施形態においてのように、RPUセル700は、確率的計算方式を利用し、一致検出器412は、更新行制御ラインおよび更新列制御ライン上の確率的ビット・ストリームの確率的パルス一致検出事象毎に、論理レベル「1」信号を、例えば双方向デジタル・カウンタ414のデータ入力INに出力する。双方向デジタル・カウンタ414のカウント値が事前指定されたカウント値(例えば図7のC_minまたはC_max)に到達するときに、双方向デジタル・カウンタ414は、制御信号キャリーを出力する。キャリー制御信号に応答して、制御回路715は、TPULSEによって定義されるプログラミング期間(存続期間)の間、第3のスイッチS3をアクティブ化し(閉じ)、ノードN1を記憶キャパシタ730に接続するために、Path_Enプログラミング・パルス(事前定義されたパルス幅TPULSEを有する)を生成する。
【0062】
プログラミング極性信号V_Progの論理レベルに依存して、第1のスイッチS1が、第1の電流源720をノードN1に接続するためにアクティブ化されるか(V_Prog=1のとき)、または第2のスイッチS2が、第2の電流源722をノードN1に接続するためにアクティブ化される(V_Prog=0のとき)かのいずれかである。第1のスイッチS1がアクティブ化され(閉じられ)、第2のスイッチS2がアクティブ化されない(開かれる)とき、第1の電流源720によって生成される電流(IEVENT)が、(プログラミング期間TPULSEの存続期間中)重み記憶キャパシタ730を充電し、キャパシタ730の重み電圧Vを最小単位電圧変化+ΔVだけ増加させる。一方、第1のスイッチS1がアクティブ化されず(開かれ)、第2のスイッチS2がアクティブ化される(閉じられる)とき、第2の電流源722によって生成される電流(IEVENT)が、(プログラミング期間TPULSEの存続期間中)重み記憶キャパシタ730を放電し、キャパシタ730の重み電圧Vを最小単位電圧変化−ΔVだけ減少させる。第3のスイッチは、プログラミング制御信号Path_Enのプログラミング期間(TPULSE)の存続期間中、アクティブ化される。プログラミング制御信号Path_Enがデアサートされると、制御回路715は、双方向デジタル・カウンタ414をリセットするためにリセット制御信号を生成および出力する。
【0063】
図9のRPUセル700において、更新毎の最小電圧変化量が、
【数12】

として判断され、ここで、IEVENTは、第1の電流源720および第2の電流源722それぞれからの充電電流および放電電流を示し、TPULSE,minは、プログラミング制御信号Path_Enの最小プログラミング・パルス幅を示す。1200の状態(読み出しトランジスタ740のコンダクタンス・レベル)の従来のシステムでは、RPUセルは、比較的大きな重み電圧記憶キャパシタ730を必要とし、または、ある範囲未満に制御することが難しい非常に小さなIEVENTを必要とする。しかしながら、隠れH行列を用いて別々の重み更新累積方式を実施する、図9に示されるRPUセル700の例示的フレームワークは、RPUセルが重み行列Wについてより少ない数(例えば40)の状態を有することを可能にし、それは、キャパシタ730および読み出しトランジスタ740デバイスについての仕様を緩和するのに役立つ。さらに、H行列の実施は、W行列に対するより少ない更新頻度を可能にし、それによって、RPUセル重み値を実施するのに役立つ、メモリスタおよびキャパシタ/トランジスタなどの耐久性を制限されたRPUデバイス上に加える圧力が小さくなる。それにより、RPUデバイスの寿命が延長される。
【0064】
添付図面を参照して、例示的実施形態が本明細書に説明されているが、本発明は、それらの正確な実施形態に限定されず、添付された特許請求の範囲から逸脱することなく、当業者により様々な他の変更および修正がそこに行われ得ると理解されるべきである。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【手続補正書】
【提出日】20210413
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
抵抗型処理ユニット(RPU)・デバイスであって、
更新行制御ラインに接続された第1の入力および更新列制御ラインに接続された第2の入力を有する重み更新累積回路と、
前記重み更新累積回路の出力に接続された重み更新制御回路と、
前記重み更新制御回路に連結され、読み出し行制御ラインおよび読み出し列制御ラインに接続された調整可能抵抗デバイスと、を備え、
前記重み更新累積回路が、(i)重み更新累積値hijを維持し、前記更新行制御ラインおよび前記更新列制御ラインに印加される入力ベクトルの確率的ビット・ストリームのそれぞれの検出された一致に応答して前記重み更新累積値hijを一単位更新値Δhだけ調整し、(ii)累積重み値hijが事前定義された閾値に到達したことに応答して前記重み更新制御回路に重み更新制御信号を出力する、ように構成され、
前記重み更新制御回路が、前記重み更新累積回路から出力される前記重み更新制御信号に応答して、前記調整可能抵抗デバイスのコンダクタンス・レベルを一単位コンダクタンス値Δgだけ調整するように構成され、前記一単位コンダクタンス値Δgが、前記RPUデバイスの一単位重み値Δwに対応する、RPUデバイス。
【請求項2】
前記重み更新累積回路が、前記調整可能抵抗デバイスに接続された前記読み出し行制御ラインおよび前記読み出し列制御ラインに読み出し制御電圧を印加することによって、前記RPUデバイスの重み値wijが感知される読み出し動作と同時に、累積重み更新動作を実行するように構成される、請求項1に記載のRPUデバイス。
【請求項3】
前記重み更新累積回路および前記重み更新制御回路が、プログラミング極性制御信号を受信し、前記プログラミング極性制御信号の極性に依存して、前記重み更新累積値と前記調整可能抵抗デバイスの前記コンダクタンス・レベルとを(i)インクリメントすること、および(ii)デクリメントすることのうちの1つによって、前記重み更新累積値および前記コンダクタンス・レベルを調整するように構成される、請求項1または2に記載のRPUデバイス。
【請求項4】
前記重み更新累積回路が、
前記更新行制御ラインおよび前記更新列制御ラインに接続された入力を有する一致検出器と、
前記一致検出器の出力に接続されたデータ入力ポートを有する双方向デジタル・カウンタと、を備え、
前記一致検出器が、前記更新行制御ラインおよび前記更新列制御ラインに印加される前記入力ベクトルの前記確率的ビット・ストリームのそれぞれの検出された一致に応答して、前記双方向デジタル・カウンタの前記データ入力ポートに検出信号を出力するように構成され、
前記双方向デジタル・カウンタが、(i)前記データ入力ポートに入力される前記検出信号に応答してカウント値を調整し、(ii)前記カウント値が事前定義されたカウント値に到達したことに応答して前記重み更新制御信号を前記重み更新制御回路に出力する、ように構成される、請求項1から3のいずれか一項に記載のRPUデバイス。
【請求項5】
前記重み更新制御回路が、前記調整可能抵抗デバイスのコンダクタンス・レベルを一単位コンダクタンス値Δgだけ調整するためにプログラミング電圧パルスを生成するように構成される、パルス生成器回路を含む、請求項4に記載のRPUデバイス。
【請求項6】
前記パルス生成器回路が、前記調整可能抵抗デバイスの前記コンダクタンス・レベルの調整に続いて前記双方向デジタル・カウンタのカウント値を事前定義された初期化カウント値にリセットするために、前記双方向デジタル・カウンタのリセット制御ポートに入力されるリセット制御信号を生成するように構成される、請求項5に記載のRPUデバイス。
【請求項7】
前記事前定義されたカウント値が、前記双方向デジタル・カウンタの最小カウント値および最大カウント値のうちの1つを含む、請求項4から6のいずれか一項に記載のRPUデバイス。
【請求項8】
前記一致検出器が、AND論理回路を含む、請求項4から7のいずれか一項に記載のRPUデバイス。
【請求項9】
前記重み更新制御回路が、パルス生成器回路を含み、前記調整可能抵抗デバイスが、調整可能メモリスタ・デバイスを含み、前記パルス生成器回路が、前記調整可能メモリスタ・デバイスのコンダクタンス・レベルを一単位コンダクタンス値Δgだけ調整するために前記調整可能メモリスタ・デバイスにわたってプログラミング電圧パルスを印加するように構成される、請求項1に記載のRPUデバイス。
【請求項10】
前記重み更新制御回路が、第1のスイッチおよび第2のスイッチを含み、前記第1のスイッチおよび前記第2のスイッチが、重み更新プロセスを実行するために前記パルス生成器回路の第1の出力端子および第2の出力端子にわたって前記調整可能メモリスタ・デバイスを選択的に接続するため、ならびに重み読み出し動作を実行するために前記調整可能メモリスタ・デバイスを前記読み出し行制御ラインおよび前記読み出し列制御ラインに選択的に接続するための、パス・イネーブル制御信号に応答する、請求項9に記載のRPUデバイス。
【請求項11】
前記パルス生成器回路が、前記RPUデバイスの設置領域内に位置する局所専用パルス生成器回路を含む、請求項9または10に記載のRPUデバイス。
【請求項12】
前記パルス生成器回路が、前記RPUデバイスの設置領域外に位置するグローバル・パルス生成器回路を含み、前記グローバル・パルス生成器回路が、複数のRPUデバイスから成るアレイ内の少なくとも1つの他のRPUデバイスと共有される、請求項9または10に記載のRPUデバイス。
【請求項13】
前記重み更新制御回路が、第1の電流源、第2の電流源、およびキャパシタを含み、前記調整可能抵抗デバイスが、読み出しトランジスタを含み、
前記キャパシタが、前記RPUデバイスのための重み電圧を記憶するように構成され、
前記読み出しトランジスタが、ゲート端子、第1のソース/ドレイン端子、および第2のソース/ドレイン端子を含み、前記ゲート端子が、前記キャパシタに接続され、前記第1のソース/ドレイン端子が、前記読み出し行制御ラインに接続され、前記第2のソース/ドレイン端子が、前記読み出し列制御ラインに接続され、
前記読み出しトランジスタが、前記読み出し行制御ラインおよび前記読み出し列制御ラインに印加される読み出し制御信号に応答して、前記読み出しトランジスタの前記ゲート端子に印加される前記キャパシタの前記重み電圧に応答する重み電流を生成するように構成され、
前記重み更新累積回路から出力される前記重み更新制御信号に応答して、前記重み更新制御回路が、(i)前記キャパシタの重み電圧を一単位電圧変化+ΔVだけ増加させるために前記キャパシタに充電電流を印加するように、前記第1の電流源を選択的にアクティブ化すること、および(ii)前記キャパシタの重み電圧を一単位電圧変化−ΔVだけ減少させるために前記キャパシタに放電電流を印加するように、前記第2の電流源を選択的にアクティブ化すること、のうちの1つを行うように構成される、請求項1に記載のRPUデバイス。
【請求項14】
請求項1に記載の前記RPUデバイスを含む、RPUクロスバー・アレイ・システム。
【請求項15】
方法であって、
調整可能抵抗デバイスを含む抵抗型処理ユニット(RPU)・デバイスの重み値を更新するための重み更新動作を実行することを含み、前記重み更新動作が、
前記RPUデバイスのための重み更新累積値hijを維持することと、
前記RPUデバイスに接続された更新行制御ラインおよび更新列制御ライン上に印加される入力ベクトルの確率的ビット・ストリームの検出された一致に応答して、前記重み更新累積値hijを一単位更新値Δhだけ調整することと、
累積重み値hijが事前定義された閾値に到達することに応答して重み更新制御信号を生成することと、
前記重み更新制御信号に応答して、前記調整可能抵抗デバイスのコンダクタンス・レベルを一単位コンダクタンス値Δgだけ調整することであって、前記一単位コンダクタンス値Δgが、前記RPUデバイスの一単位重み値Δwに対応する、前記調整することと、
を含む、方法。
【請求項16】
前記RPUデバイスの重み値wijを読み出すための重み読み出し動作を実行することをさらに含み、前記重み読み出し動作が、
前記調整可能抵抗デバイスに接続された読み出し行制御ラインおよび読み出し列制御ライン上に読み出し制御電圧を印加することと、
前記読み出し制御電圧に応答して前記調整可能抵抗デバイスによって生成される読み出し電流を処理することであって、前記読み出し電流が、前記RPUデバイスの重み値wijに対応する、前記処理することと、を含み、
前記重み読み出し動作が、前記重み更新動作の前記重み更新累積値を調整することと同時に実行される、請求項15に記載の方法。
【請求項17】
前記重み更新累積値を調整することが、双方向デジタル・カウンタのカウント値を調整することを含み、前記重み更新制御信号を生成することが、前記カウント値が事前定義されたカウント値に到達するときにキャリー制御信号を生成することを含む、請求項15または16に記載の方法。
【請求項18】
前記重み更新制御信号を生成することが、前記キャリー制御信号に応答してプログラミング電圧パルスを生成することと、前記調整可能抵抗デバイスの前記コンダクタンス・レベルを一単位コンダクタンス値Δgだけ調整するために前記プログラミング電圧パルスを前記調整可能抵抗デバイスに印加することと、を含む、請求項17に記載の方法。
【請求項19】
前記調整可能抵抗デバイスの前記コンダクタンス・レベルの調整に続いて前記双方向デジタル・カウンタのカウント値を事前定義された初期化カウント値にリセットするために、前記双方向デジタル・カウンタのリセット制御ポートに入力されるリセット制御信号を生成することをさらに含む、請求項18に記載の方法。
【請求項20】
前記調整可能抵抗デバイスが、読み出しトランジスタ、および前記読み出しトランジスタのゲート端子に接続されたキャパシタを含み、前記キャパシタが、前記RPUデバイスについての重み電圧を記憶するように構成され、
前記重み更新制御信号に応答して前記調整可能抵抗デバイスのコンダクタンス・レベルを調整することが、
前記キャパシタの重み電圧を一単位電圧変化+ΔVだけ増加させるために前記キャパシタに充電電流を印加するように、第1の電流源を選択的にアクティブ化すること、および
前記キャパシタの重み電圧を一単位電圧変化−ΔVだけ減少させるために前記キャパシタに放電電流を印加するように、第2の電流源を選択的にアクティブ化すること、
のうちの少なくとも1つを含む、請求項15に記載の方法。
【国際調査報告】