(57)【要約】【課題】調整可能抵抗デバイスを含むＲＰＵデバイスの重み値を更新するために、抵抗処理ユニット（ＲＰＵ）・システムにおける重み更新動作を実行する、システムおよび方法を提供する。【解決手段】所与のＲＰＵデバイスのための重み更新動作は、ＲＰＵデバイスのための重み更新累積値を維持することと、ＲＰＵデバイスに接続された更新行制御ラインおよび更新列制御ライン上に印加される入力ベクトルの確率的ビット・ストリームの検出された一致に応答して、重み更新累積値を一単位更新値だけ調整することと、累積重み値が事前定義された閾値に到達することに応答して重み更新制御信号を生成することと、重み更新制御信号に応答して、調整可能抵抗デバイスのコンダクタンス・レベルを一単位コンダクタンス値だけ調整することであって、一単位コンダクタンス値が、ＲＰＵデバイスの一単位重み値に対応する、調整することと、を含む。【選択図】図１
2021518008.tif 000002
【特許請求の範囲】
【請求項１】
抵抗型処理ユニット（ＲＰＵ）・デバイスであって、
更新行制御ラインに接続された第１の入力および更新列制御ラインに接続された第２の入力を有する重み更新累積回路と、
前記重み更新累積回路の出力に接続された重み更新制御回路と、
前記重み更新制御回路に連結され、読み出し行制御ラインおよび読み出し列制御ラインに接続された調整可能抵抗デバイスと、を備え、
前記重み更新累積回路が、（ｉ）重み更新累積値ｈｉｊを維持し、前記更新行制御ラインおよび前記更新列制御ラインに印加される入力ベクトルの確率的ビット・ストリームのそれぞれの検出された一致に応答して前記重み更新累積値ｈｉｊを一単位更新値Δｈだけ調整し、（ｉｉ）累積重み値ｈｉｊが事前定義された閾値に到達したことに応答して前記重み更新制御回路に重み更新制御信号を出力する、ように構成され、
前記重み更新制御回路が、前記重み更新累積回路から出力される前記重み更新制御信号に応答して、前記調整可能抵抗デバイスのコンダクタンス・レベルを一単位コンダクタンス値Δｇだけ調整するように構成され、前記一単位コンダクタンス値Δｇが、前記ＲＰＵデバイスの一単位重み値Δｗに対応する、ＲＰＵデバイス。
【請求項２】
前記重み更新累積回路が、前記調整可能抵抗デバイスに接続された前記読み出し行制御ラインおよび前記読み出し列制御ラインに読み出し制御電圧を印加することによって、前記ＲＰＵデバイスの重み値ｗｉｊが感知される読み出し動作と同時に、累積重み更新動作を実行するように構成される、請求項１に記載のＲＰＵデバイス。
【請求項３】
前記重み更新累積回路および前記重み更新制御回路が、プログラミング極性制御信号を受信し、前記プログラミング極性制御信号の極性に依存して、前記重み更新累積値と前記調整可能抵抗デバイスの前記コンダクタンス・レベルとを（ｉ）インクリメントすること、および（ｉｉ）デクリメントすることのうちの１つによって、前記重み更新累積値および前記コンダクタンス・レベルを調整するように構成される、請求項１に記載のＲＰＵデバイス。
【請求項４】
前記重み更新累積回路が、
前記更新行制御ラインおよび前記更新列制御ラインに接続された入力を有する一致検出器と、
前記一致検出器の出力に接続されたデータ入力ポートを有する双方向デジタル・カウンタと、を備え、
前記一致検出器が、前記更新行制御ラインおよび前記更新列制御ラインに印加される前記入力ベクトルの前記確率的ビット・ストリームのそれぞれの検出された一致に応答して、前記双方向デジタル・カウンタの前記データ入力ポートに検出信号を出力するように構成され、
前記双方向デジタル・カウンタが、（ｉ）前記データ入力ポートに入力される前記検出信号に応答してカウント値を調整し、（ｉｉ）前記カウント値が事前定義されたカウント値に到達したことに応答して前記重み更新制御信号を前記重み更新制御回路に出力する、ように構成される、請求項１に記載のＲＰＵデバイス。
【請求項５】
前記重み更新制御回路が、前記調整可能抵抗デバイスのコンダクタンス・レベルを一単位コンダクタンス値Δｇだけ調整するためにプログラミング電圧パルスを生成するように構成される、パルス生成器回路を含む、請求項４に記載のＲＰＵデバイス。
【請求項６】
前記パルス生成器回路が、前記調整可能抵抗デバイスの前記コンダクタンス・レベルの調整に続いて前記双方向デジタル・カウンタのカウント値を事前定義された初期化カウント値にリセットするために、前記双方向デジタル・カウンタのリセット制御ポートに入力されるリセット制御信号を生成するように構成される、請求項５に記載のＲＰＵデバイス。
【請求項７】
前記事前定義されたカウント値が、前記双方向デジタル・カウンタの最小カウント値および最大カウント値のうちの１つを含む、請求項４に記載のＲＰＵデバイス。
【請求項８】
前記一致検出器が、ＡＮＤ論理回路を含む、請求項４に記載のＲＰＵデバイス。
【請求項９】
前記重み更新制御回路が、パルス生成器回路を含み、前記調整可能抵抗デバイスが、調整可能メモリスタ・デバイスを含み、前記パルス生成器回路が、前記調整可能メモリスタ・デバイスのコンダクタンス・レベルを一単位コンダクタンス値Δｇだけ調整するために前記調整可能メモリスタ・デバイスにわたってプログラミング電圧パルスを印加するように構成される、請求項１に記載のＲＰＵデバイス。
【請求項１０】
前記重み更新制御回路が、第１のスイッチおよび第２のスイッチを含み、前記第１のスイッチおよび前記第２のスイッチが、重み更新プロセスを実行するために前記パルス生成器回路の第１の出力端子および第２の出力端子にわたって前記調整可能メモリスタ・デバイスを選択的に接続するため、ならびに重み読み出し動作を実行するために前記調整可能メモリスタ・デバイスを前記読み出し行制御ラインおよび前記読み出し列制御ラインに選択的に接続するための、パス・イネーブル制御信号に応答する、請求項９に記載のＲＰＵデバイス。
【請求項１１】
前記パルス生成器回路が、前記ＲＰＵデバイスの設置領域内に位置する局所専用パルス生成器回路を含む、請求項９に記載のＲＰＵデバイス。
【請求項１２】
前記パルス生成器回路が、前記ＲＰＵデバイスの設置領域外に位置するグローバル・パルス生成器回路を含み、前記グローバル・パルス生成器回路が、複数のＲＰＵデバイスから成るアレイ内の少なくとも１つの他のＲＰＵデバイスと共有される、請求項９に記載のＲＰＵデバイス。
【請求項１３】
前記重み更新制御回路が、第１の電流源、第２の電流源、およびキャパシタを含み、前記調整可能抵抗デバイスが、読み出しトランジスタを含み、
前記キャパシタが、前記ＲＰＵデバイスのための重み電圧を記憶するように構成され、
前記読み出しトランジスタが、ゲート端子、第１のソース／ドレイン端子、および第２のソース／ドレイン端子を含み、前記ゲート端子が、前記キャパシタに接続され、前記第１のソース／ドレイン端子が、前記読み出し行制御ラインに接続され、前記第２のソース／ドレイン端子が、前記読み出し列制御ラインに接続され、
前記読み出しトランジスタが、前記読み出し行制御ラインおよび前記読み出し列制御ラインに印加される読み出し制御信号に応答して、前記読み出しトランジスタの前記ゲート端子に印加される前記キャパシタの前記重み電圧に応答する重み電流を生成するように構成され、
前記重み更新累積回路から出力される前記重み更新制御信号に応答して、前記重み更新制御回路が、（ｉ）前記キャパシタの重み電圧を一単位電圧変化＋ΔＶだけ増加させるために前記キャパシタに充電電流を印加するように、前記第１の電流源を選択的にアクティブ化すること、および（ｉｉ）前記キャパシタの重み電圧を一単位電圧変化−ΔＶだけ減少させるために前記キャパシタに放電電流を印加するように、前記第２の電流源を選択的にアクティブ化すること、のうちの１つを行うように構成される、請求項１に記載のＲＰＵデバイス。
【請求項１４】
請求項１に記載の前記ＲＰＵデバイスを含む、ＲＰＵクロスバー・アレイ・システム。
【請求項１５】
方法であって、
調整可能抵抗デバイスを含む抵抗型処理ユニット（ＲＰＵ）・デバイスの重み値を更新するための重み更新動作を実行することを含み、前記重み更新動作が、
前記ＲＰＵデバイスのための重み更新累積値ｈｉｊを維持することと、
前記ＲＰＵデバイスに接続された更新行制御ラインおよび更新列制御ライン上に印加される入力ベクトルの確率的ビット・ストリームの検出された一致に応答して、前記重み更新累積値ｈｉｊを一単位更新値Δｈだけ調整することと、
累積重み値ｈｉｊが事前定義された閾値に到達することに応答して重み更新制御信号を生成することと、
前記重み更新制御信号に応答して、前記調整可能抵抗デバイスのコンダクタンス・レベルを一単位コンダクタンス値Δｇだけ調整することであって、前記一単位コンダクタンス値Δｇが、前記ＲＰＵデバイスの一単位重み値Δｗに対応する、前記調整することと、
を含む、方法。
【請求項１６】
前記ＲＰＵデバイスの重み値ｗｉｊを読み出すための重み読み出し動作を実行することをさらに含み、前記重み読み出し動作が、
前記調整可能抵抗デバイスに接続された読み出し行制御ラインおよび読み出し列制御ライン上に読み出し制御電圧を印加することと、
前記読み出し制御電圧に応答して前記調整可能抵抗デバイスによって生成される読み出し電流を処理することであって、前記読み出し電流が、前記ＲＰＵデバイスの重み値ｗｉｊに対応する、前記処理することと、を含み、
前記重み読み出し動作が、前記重み更新動作の前記重み更新累積値を調整することと同時に実行される、請求項１５に記載の方法。
【請求項１７】
前記重み更新累積値を調整することが、双方向デジタル・カウンタのカウント値を調整することを含み、前記重み更新制御信号を生成することが、前記カウント値が事前定義されたカウント値に到達するときにキャリー制御信号を生成することを含む、請求項１５に記載の方法。
【請求項１８】
前記重み更新制御信号を生成することが、前記キャリー制御信号に応答してプログラミング電圧パルスを生成することと、前記調整可能抵抗デバイスの前記コンダクタンス・レベルを一単位コンダクタンス値Δｇだけ調整するために前記プログラミング電圧パルスを前記調整可能抵抗デバイスに印加することと、を含む、請求項１５に記載の方法。
【請求項１９】
前記調整可能抵抗デバイスの前記コンダクタンス・レベルの調整に続いて前記双方向デジタル・カウンタのカウント値を事前定義された初期化カウント値にリセットするために、前記双方向デジタル・カウンタのリセット制御ポートに入力されるリセット制御信号を生成することをさらに含む、請求項１８に記載の方法。
【請求項２０】
前記調整可能抵抗デバイスが、読み出しトランジスタ、および前記読み出しトランジスタのゲート端子に接続されたキャパシタを含み、前記キャパシタが、前記ＲＰＵデバイスについての重み電圧を記憶するように構成され、
前記重み更新制御信号に応答して前記調整可能抵抗デバイスのコンダクタンス・レベルを調整することが、
前記キャパシタの重み電圧を一単位電圧変化＋ΔＶだけ増加させるために前記キャパシタに充電電流を印加するように、第１の電流源を選択的にアクティブ化すること、および
前記キャパシタの重み電圧を一単位電圧変化−ΔＶだけ減少させるために前記キャパシタに放電電流を印加するように、第２の電流源を選択的にアクティブ化すること、
のうちの少なくとも１つを含む、請求項１５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、抵抗型処理ユニット（ＲＰＵ）・フレームワークに関し、特に、ＲＰＵ記憶セルに記憶された重み値を更新し、読み出すための技術に関する。
【背景技術】
【０００２】
近年、深層ニューラル・ネットワーク（ＤＮＮ）・ベース・モデルが、大規模ラベル付きデータセットの利用可能性および計算リソースの絶え間ない改善に起因して著しく進歩している。ＤＮＮは、例えば、物体／音声認識、言語変換、パターン抽出、および画像処理を含む様々なアプリケーションにおいて利用される。ＤＮＮモデルの品質は、大量の訓練データの処理およびニューラル・ネットワークの増大した複雑性に依存する。この点について、複雑なＤＮＮモデルの訓練は、ＤＮＮモデルの訓練を完結させるために多くの計算ノード（例えば、データセンタ規模の計算リソース）を有する並列および分散コンピューティング・フレームワークを用いて実行するのに何日または何週間も必要とし得る、時間のかかる計算集約的なタスクである。
【０００３】
訓練時間を減少させるために、ＤＮＮ作業負荷を処理するためのハードウェア・アクセラレーション技術が、従来のＣＭＯＳ技術において、または台頭してきている不揮発性メモリ（ＮＶＭ）技術を用いることによって、のいずれかで追及されている。しかしながら、ＲＰＵアクセラレータ・デバイスが、従来のハードウェア・アクセラレーション技術と比較するとより少ない電力を用いて、ＤＮＮ訓練を桁違いに加速させる可能性を有することが分かっている。ＤＮＮ訓練は、３つの反復サイクル：順方向、逆方向、および重み更新を含む逆伝播アルゴリズムに概して依存する。ＲＰＵ記憶セルの２次元（２Ｄ）クロスバー・アレイに基づくＲＰＵアクセラレータ・デバイスは、逆伝播アルゴリズムの３つのサイクル全てを並列で実行するように構成されてもよく、よって、中央処理装置（ＣＰＵ）およびグラフィック処理装置（ＧＰＵ）を用いた最先端の実施と比較してより低電力および減少した計算リソースで、ＤＮＮの訓練における著しいアクセラレーションを潜在的に提供すると判断されている。ＲＰＵアクセラレータは、重み値を局所的に記憶および更新してもよく、それによって、訓練プロセス中のデータ移動を最小化し、ＤＮＮ訓練プロセスの局所性および並列処理を十分に活用する。
【０００４】
ＲＰＵセルのアレイを含む確率的に訓練されたＤＮＮは、例えば、メモリスタ・デバイス、キャパシタ／読み出しトランジスタなどを含む様々な種類の調整可能抵抗デバイスを用いて実施されるシナプス重みを有し得る。ＤＮＮを適切に訓練し、高精度を達成するためには、調整可能抵抗デバイスの動作特性は、所与のＤＮＮアルゴリズムが著しい誤差ペナルティなしに耐性を有し得る許容できるＲＰＵデバイス・パラメータの厳重なセットの仕様を満たすべきである。これらの仕様は、例えば、単一の一致事象に起因する最小インクリメント式コンダクタンス変更（±Δｇｍｉｎ）、コンダクタンスの上下変化の非対称性、コンダクタンス値の調整可能範囲などの、ＲＰＵデバイス切り替え特性における変量を含む。
【０００５】
特に、ＤＮＮ訓練のための１つの重要な仕様が、ＲＰＵセルが少なくとも１０００のコンダクタンス・レベル（または段階）の分解能（または動的範囲）を伴う調整可能なコンダクタンスを有するべきであり、コンダクタンス・レベルは、最低コンダクタンス状態から最高コンダクタンス状態にアナログかつ対称的なインクリメント方式で（最大コンダクタンス状態と最小コンダクタンス状態との間のコンダクタンス差の大きさ（オン／オフ比）が少なくとも１桁で）（１ｎｓパルスを介して）切り替えられ得るということである。ＲＰＵセルにおいて最小単位重み値（±Δｗｍｉｎ）の上／下変化の対称性を実現するために、ＲＰＵセルの関連するコンダクタンス・レベルにおける、それぞれのインクリメント増加（ステップ・アップ、
【数１】
2021518008.tif 000003
）、およびインクリメント減少（ステップ・ダウン、
【数２】
2021518008.tif 000004
）が、わずか５％の不一致誤差の範囲内の同一量または類似量であるべきである。言い換えると、調整可能抵抗ＲＰＵデバイスは、本来アナログであり、同一であるが反対のパルス刺激がもたらされるときのコンダクタンス上下変化において対称的に応答すべきである。しかしながら、これらの要件にかかわらず、調整可能抵抗デバイスは、制限されたダイナミック・レンジ、分解能、および調整／プログラミング特性における可変性を表すことがあり、それが、ＲＰＵアーキテクチャのハードウェア実装を困難にする。
【発明の概要】
【０００６】
本発明の実施形態は、ＲＰＵセルにおける重み更新動作および重み読み出し動作を実行するためのＲＰＵセル・アーキテクチャおよび方法を含み、ＲＰＵセルにおいて、調整可能抵抗デバイスを含むＲＰＵセルのクロスバー・アレイの中で別個の重み更新累積動作および推論（重み読み出し）動作を独立して実行するために、別個の行列が利用される。
【０００７】
１つの実施形態は、ＲＰＵデバイスを含み、ＲＰＵデバイスは、更新行制御ラインに接続された第１の入力および更新列制御ラインに接続された第２の入力を有する重み更新累積回路と、重み更新累積回路の出力に接続された重み更新制御回路と、重み更新制御回路に連結され、読み出し行制御ラインおよび読み出し列制御ラインに接続された調整可能抵抗デバイスと、を備える。重み更新累積回路は、（ｉ）重み更新累積値ｈｉｊを維持し、更新行制御ラインおよび更新列制御ラインに印加される入力ベクトルの確率的ビット・ストリームのそれぞれの検出された一致に応答して重み更新累積値ｈｉｊを一単位更新値Δｈだけ調整し、（ｉｉ）累積重み値ｈｉｊが事前定義された閾値に到達したことに応答して重み更新制御回路に重み更新制御信号を出力する、ように構成される。重み更新制御回路は、重み更新累積回路から出力される重み更新制御信号に応答して、調整可能抵抗デバイスのコンダクタンス・レベルを一単位コンダクタンス値Δｇだけ調整するように構成され、一単位コンダクタンス値Δｇは、ＲＰＵデバイスの一単位重み値Δｗに対応する。
【０００８】
別の実施形態は、調整可能抵抗デバイスを含むＲＰＵデバイスの重み値を更新するための重み更新動作を実行する方法を含む。重み更新動作は、ＲＰＵデバイスのための重み更新累積値ｈｉｊを維持することと、ＲＰＵデバイスに接続された更新行制御ラインおよび更新列制御ライン上に印加される入力ベクトルの確率的ビット・ストリームの検出された一致に応答して、重み更新累積値ｈｉｊを一単位更新値Δｈだけ調整することと、累積重み値ｈｉｊが事前定義された閾値に到達したことに応答して重み更新制御信号を生成することと、重み更新制御信号に応答して、調整可能抵抗デバイスのコンダクタンス・レベルを一単位コンダクタンス値Δｇだけ調整することであって、一単位コンダクタンス値Δｇが、ＲＰＵデバイスの一単位重み値Δｗに対応する、調整することと、を含む。
【０００９】
他の実施形態は、添付図面と併せて読まれるべき以下の実施形態の詳細な説明において説明される。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態による、ＲＰＵセル・アーキテクチャを用いて実施され得るＲＰＵシステムを概略的に示す図である。
【図２】図１のＲＰＵシステムを用いて実行され得る、逆伝播プロセスの順方向パス動作を概略的に示す図である。
【図３】図１のＲＰＵシステムを用いて実行され得る、逆伝播プロセスの逆方向パス動作を概略的に示す図である。
【図４】図１のＲＰＵシステムを用いて実行され得る、逆伝播プロセスの重み更新動作を概略的に示す図である。
【図５】本発明の一実施形態による、別々の重み行列が別々の重み更新累積動作および推論（重み読み出し）動作を独立して実行するために実施される、ＲＰＵセル・アーキテクチャのハイレベル概略図である。
【図６】本発明の別の実施形態による、別々の重み行列が別々の重み更新累積動作および推論動作を独立して実行するために実施される、ＲＰＵセル・アーキテクチャを概略的に示す図である。
【図７】本発明の一実施形態による、図６のＲＰＵセルの動作モードを概略的に示す図である。
【図８】本発明の別の実施形態による、各ＲＰＵセルが別々の重み更新累積動作および推論動作を独立して実行するために別々の重み行列を実施する、ＲＰＵシステムのＲＰＵセルのアレイを概略的に示す図である。
【図９】本発明の別の実施形態による、別々の重み行列が別々の重み更新累積動作および推論動作を独立して実行するために実施される、ＲＰＵセル・アーキテクチャを概略的に示す図である。
【発明を実施するための形態】
【００１１】
本発明の実施形態は、調整可能抵抗デバイスを含むＲＰＵセルのクロスバー・アレイの中で別々の重み更新累積動作および推論（重み読み出し）動作を独立して実行するために別々の行列が利用されるＲＰＵセル・アーキテクチャおよび方法について、ここでさらに詳細に説明される。同一または類似の参照番号は、同一または類似の特徴、要素、または構造を示すために図面全体を通して使用され、よって、同一または類似の特徴、要素、または構造の詳細な説明は、各図面について反復されないことに留意すべきである。
【００１２】
図１は、本発明の実施形態による、ＲＰＵセル・アーキテクチャを用いて実施され得るＲＰＵシステム１００を概略的に示す図である。ＲＰＵシステム１００は、複数の行Ｒ１、Ｒ２、Ｒ３、．．．、Ｒｍおよび複数の列Ｃ１、Ｃ２、Ｃ３、．．．、Ｃｎに配列されたＲＰＵセル１１０の２次元（２Ｄ）クロスバー・アレイを含む。各行Ｒ１、Ｒ２、Ｒ３、．．．、ＲｍにおけるＲＰＵセル１１０は、それぞれの行制御ラインＲＬ１、ＲＬ２、ＲＬ３、．．．、ＲＬｍ（まとめて、行制御ラインＲＬ）に通常接続されている。各列Ｃ１、Ｃ２、Ｃ３、．．．、ＣｎにおけるＲＰＵセル１１０は、それぞれの列制御ラインＣＬ１、ＣＬ２、ＣＬ３、．．．、ＣＬｎ（まとめて、列制御ラインＣＬ）に通常接続されている。各ＲＰＵセル１１０は、行制御ラインおよび列制御ラインのうちのそれぞれ１つのクロスポイント（または交差点）に（およびその間に）接続されている。１つの例としての実施形態において、ＲＰＵシステム１００は、ＲＰＵセル１１０の４，０９６×４，０９６アレイを含む。
【００１３】
ＲＰＵシステム１００は、各行制御ラインＲＬ１、ＲＬ２、ＲＬ３、．．．、ＲＬｍに接続された周辺回路１２０−１、１２０−２、１２０−３、．．．、１２０−ｍ（まとめて、周辺回路１２０）の個々のブロック、ならびに各列制御ラインＣＬ１、ＣＬ２、ＣＬ３、．．．、ＣＬｎに接続された周辺回路１３０−１、１３０−２、１３０−３、．．．、１３０−ｎ（まとめて、周辺回路１３０）の個々のブロックをさらに含む。さらに、（行のための）周辺回路１２０−１、１２０−２、１２０−３、．．．、１２０−ｍの各ブロックは、データ入力／出力（Ｉ／Ｏ）インターフェース・ブロック１２５に接続されている。同様に、（列のための）周辺回路１３０−１、１３０−２、１３０−３、．．．、１３０−ｎの各ブロックは、データＩ／Ｏインターフェース・ブロック１３５に接続されている。ＲＰＵシステム１００は、ＲＰＵシステム１００の動作用の配電および制御信号ならびにクロック信号を提供するための電力、クロック、バイアス、およびタイミング回路などの様々な種類の回路ブロックを含む基準回路１４０をさらに含む。
【００１４】
いくつかの実施形態において、ＲＰＵシステム１００は、ＤＮＮ計算を実行するように構成され、各ＲＰＵセル１１０のコンダクタンスは、行列成分または重みｗｉｊを表し、重みｗｉｊは、周辺回路１２０および１３０の動作を通して更新され、またはアクセスされ得る（ｗｉｊは、ＲＰＵセル１１０のアレイ内のｉ行ｊ列の重み値を示す）。上述の通り、ＤＮＮ訓練は、概して、３つの反復サイクル：順方向サイクル、逆方向サイクル、および重み更新サイクルを含む逆伝播プロセスに依存する。ＲＰＵシステム１００は、逆伝播プロセスの３つのサイクル全てを並列で実行するように構成されてもよく、それによって、より低電力かつ減少した計算リソースでＤＮＮ訓練の著しい加速を潜在的にもたらす。ＲＰＵシステム１００は、アナログ領域におけるベクトル−行列乗算演算を並列方式で実行するように構成されてもよく、それは、相当するＣＰＵ／ＧＰＵ実施と比較して著しい性能強化（例えば１万倍以上）につながる。
【００１５】
行制御ラインＲＬおよび列制御ラインＣＬは、それぞれ例示を容易にするために単一の線として図１に示されているが、各行制御ラインおよび列制御ラインは、実施に依存して、各行および列内のＲＰＵセル１１０に接続された２つ以上の制御ラインを含み得ると理解されるべきである。例えば、１つの実施形態において、各行制御ラインＲＬおよび各列制御ラインＣＬは、「更新」制御ラインおよび「読み出し」制御ラインを含む１対の制御ラインを含む。所与のＲＰＵセル１１０のセル・コンダクタンス（例えば、重み値）は、所与のＲＰＵセル１１０に接続された所与の行および列について、更新および読み出し制御ラインをそれぞれ通して調整および感知され得る。
【００１６】
いくつかの実施形態において、周辺回路１２０および１３０の各ブロックは、逆伝播プロセスについての順方向、逆方向、および更新動作を実行するために、ＲＰＵセル１１０の２Ｄアレイにおけるそれぞれの行および列に接続された同一セットの回路ブロックを本質的に含む。例えば、１つの実施形態において、ＲＰＵセル更新動作をサポートする（例えば、所与のＲＰＵセル１１０の重み値を更新する）ために、周辺回路１２０および１３０の各ブロックは、一連の確率的に存在するパルスを生成し（所与のＲＰＵセル１１０内の）一致検出回路に印加するため、ならびに所与のＲＰＵセル１１０の重み値を更新する動作を実行するための、確率的パルス生成器ブロックおよび更新パルス駆動ブロックを含み、それらは、重み更新サイクル中に受信した更新ベクトルに応答する。特に、以下でさらに詳細に説明されるように、確率的パルスは、所与のＲＰＵセル１１０に接続された更新行制御ラインおよび更新列制御ライン上に送信され、ＲＰＵセル１１０内に記憶された重み値を更新するための様々な動作（例えば、乗算）を実行するために一致検出回路を用いて処理される。
【００１７】
さらに、１つの実施形態において、ＲＰＵセル読み出し／感知動作をサポートする（例えば、所与のＲＰＵセル１１０の重み値を読み出す）ために、周辺回路１２０および１３０の各ブロックは、（ｉ）順方向／逆方向サイクル中に受信した入力ベクトル値（読み出し入力値）に応答してＰＷＭ読み出しパルスを生成しＲＰＵセル１１０に印加するための、パルス幅変調（ＰＷＭ）回路および読み出しパルス駆動回路と、（ｉｉ）接続されたＲＰＵセル１１０から出力および累積される読み出し電流（ＩＲＥＡＤ）を積分するため、および後続の計算のために積分された電流をデジタル値（読み出し出力値）に変換するための、電流積分回路およびアナログ・デジタル（ＡＤＣ）回路と、を含む。
【００１８】
データＩ／Ｏインターフェース１２５は、（ｉ）外部制御信号を受信し、周辺回路１２０のブロックに更新および読み出し入力値を印加し、（ｉｉ）周辺回路１２０のブロックからデジタル読み出し出力値を受信し、処理のためにリモート要素にデジタル読み出し出力信号を送信するように構成されるインターフェースを提供する。同様に、データＩ／Ｏインターフェース１３５は、（ｉ）外部制御信号を受信し、周辺回路１３０のブロックに更新および読み出し入力値を印加し、（ｉｉ）周辺回路１３０のブロックからデジタル読み出し出力値を受信し、処理のためにリモート要素にデジタル読み出し出力信号を送信するように構成されるインターフェースを提供する。
【００１９】
ＲＰＵシステム１００内の各ＲＰＵセル１１０は、調整可能コンダクタンスを有するレジスタのような回路コンポーネントを含み、各ＲＰＵセル１１０のコンダクタンス値は、行列成分または重みを表す。例えば、いくつかの実施形態において、ＲＰＵセル１１０は、抵抗変化型ＲＡＭ（ＲＲＡＭ）システムにおいて使用される抵抗メモリ素子などの可変抵抗デバイスを用いて実施され得る。特に、当技術分野において既知の通り、抵抗メモリ・セルは、絶縁層（例えば、金属酸化物）が抵抗スイッチ挙動を通して可変抵抗を表す、金属−絶縁体−金属（ＭＩＭ）構造を含む。
【００２０】
他の実施形態において、ＲＰＵセル１１０は、キャパシタおよび１つまたは複数の読み出しトランジスタを含むアナログＣＭＯＳフレームワークを用いて実施され得る。キャパシタは、キャパシタ電圧の形態で重み値を記憶するＲＰＵセル内のメモリ素子の役割をする。以下でさらに詳細に説明されるように、キャパシタ電圧または重み電圧ＶＷは、読み出しトランジスタのチャネル抵抗を調節するために読み出しトランジスタのゲート端子に直接印加される。キャパシタに記憶される充電状態は、ドレイン電流を生成するために読み出しトランジスタにわたって小さなバイアスを印加することによってアクセスされ得る。ドレイン電流は、読み出し電流ＩＲＥＡＤを生成する。読み出し電流ＩＲＥＡＤは、ＲＰＵセルから流れ出し、周辺回路１２０および１３０の各ブロックにおいて処理される。
【００２１】
当技術分野において既知の通り、信号が一連の線形変換および非線形変換を通して進むことによって入力層から出力層へ伝播するように、完全接続型ＤＮＮは、全結合層の積層体を含む。ＤＮＮ全体が、出力層においてスコアを分類するために入力データをマッピングする、単一の微分可能誤差関数を表す。典型的には、ＤＮＮは、単純な確率的勾配降下（ＳＧＤ）法を用いて訓練され、それにおいて、各パラメータに関する誤差勾配が、逆伝播アルゴリズムを用いて計算される。逆伝播アルゴリズムは、収束基準を満たすまで何度も反復される３つのサイクル、順方向、逆方向、および重み更新から構成される。順方向および逆方向サイクルは、主に、図１に示されるＲＰＵシステムのＲＰＵデバイス・セル１１０の２Ｄクロスバー・アレイを用いてベクトル−行列乗算演算を順方向および逆方向に計算することを伴う。
【００２２】
図１のＲＰＵシステム１００において、ＲＰＵセルの２Ｄクロスバー・アレイ内のコンダクタンス値ｇｉｊが、重み値ｗｉｊの行列Ｗを形成する。順方向サイクル（図２）において、（電圧パルスの形態の）入力ベクトルが、ＲＰＵセル１１０においてベクトル−行列乗算を実行するために、２Ｄクロスバー・アレイ内の入力行のそれぞれを通して送信される。逆方向サイクル（図３）において、列から供給される電圧パルスが、ＲＰＵセル１１０に入力され、ベクトル−行列積が、重み行列Ｗの値の転置行列に対して計算される。順方向サイクルおよび逆方向サイクルとは対照的に、抵抗デバイスの２Ｄクロスバー・アレイ上の重み更新を実施することは、アレイ内の各クロスポイントＲＰＵデバイスにおいて局所的に実行される乗算演算およびインクリメント重み更新で構成される、ベクトル−ベクトル外積を計算することを必要とする。図２、図３、および図４は、図１のＲＰＵシステム１００を用いて実行され得る逆伝播アルゴリズムの順方向パス、逆方向パス、および重み更新動作をそれぞれ概略的に示す図である。
【００２３】
Ｎ個の入力ニューロンがＭ個の出力（または隠れ）ニューロンに接続される単一の全結合層について、順方向パス（図２）は、ベクトル−行列乗算ｙ＝Ｗｘを計算することを伴い、ここで、長さＮのベクトルｘは、入力ニューロンの活動を表し、大きさＭ×Ｎの行列Ｗは、入力ニューロンおよび出力ニューロンの各対間の重み値を記憶する。結果となる長さＭのベクトルｙは、各要素に対して非線形アクティブ化を実行することによってさらに処理され、次いで次の層に渡される。情報が最終出力層に到達すると、誤差信号が計算され、ネットワークを通して逆伝播される。順方向サイクルにおいて、ＲＰＵセル１１０のクロスバー・アレイに記憶されたコンダクタンス値は、行列を形成し、一方、入力ベクトルは、入力行Ｒ１、Ｒ２、Ｒ３、．．．、Ｒｍのそれぞれを通して電圧パルスとして送信される。
【００２４】
単一層上での逆方向サイクル（図３）もまた、重み行列の転置行列に対するベクトル−行列乗算、ｚ＝ＷＴδを伴い、ここで、Ｗは、重み行列を示し、長さＭのベクトルδは、出力ニューロンによって計算された誤差を表し、長さＮのベクトルｚは、ニューロン非線形性の導関数を用いてさらに処理され、次いで前の層に戻って渡される。逆方向サイクルにおいて、電圧パルスは、列ＣＬ１、ＣＬ２、ＣＬ３、．．．、ＣＬｎから入力としてＲＰＵセル１１０に供給され、ベクトル−行列積が、重み行列Ｗの転置行列に対して計算される。
【００２５】
最後に、更新サイクル（図４）において、重み行列Ｗは、順方向および逆方向サイクルにおいて使用される２つのベクトルの外積を実行することによって更新される。特に、抵抗デバイスの２Ｄクロスバー・アレイ上の重み更新を局所的にかつ全て並列で実施することは、アレイ・サイズとは関係なく、図１のＲＰＵシステムにおける各クロスポイント（ＲＰＵセル１１０）において局所的に実行されるべき乗算演算およびインクリメント重み更新で構成されるベクトル−ベクトル外積を計算することを必要とする。図４で概略的に示されるように、重み更新プロセスは、ｗｉｊ←ｗｉｊ＋ηｘｉ×δｊとして計算され、ここで、ｗｉｊは、ｉ行ｊ列の重み値を表し（単純化のため、層インデックスは省略される）、ｘｉは、入力ニューロンにおける活動であり、δｊは、出力ニューロンによって計算された誤差であり、ηは、グローバル学習率を示す。
【００２６】
要約すると、重み行列Ｗに対する全ての演算は、Ｍ行およびＮ列を有する２つの端末ＲＰＵデバイスの２Ｄクロスバー・アレイを用いて実施され得る。ここで、クロスバー・アレイに記憶されたコンダクタンス値が行列Ｗを形成する。順方向サイクルにおいて、入力ベクトルｘは、電圧パルスとして各行を通して送信され、結果となるベクトルｙは、列からの電流信号として読み出され得る。同様に、電圧パルスが、逆方向サイクルにおいて入力として列から供給されるとき、ベクトル−行列積は、重み行列の転置行列ＷＴに対して計算される。最後に、更新サイクルにおいて、ベクトルｘおよびδを表す電圧パルスが、行および列から同時に供給される。更新サイクルにおいて、各ＲＰＵセル１１０は、列および行から来る電圧パルスを処理することによって局所乗算および総和演算を実行し、したがってインクリメント重み更新を実現する。
【００２７】
重み更新サイクルについてのｘｉおよびδｊベクトルの積を判断するために、周辺回路ブロック１２０および１３０において確率的変換回路が、入力ベクトルｘｉおよびδｊを表す確率的ビット・ストリームを生成するために利用される。ベクトルｘｉおよびδｊについての確率的ビット・ストリームが、ＲＰＵセルの２Ｄクロスバー・アレイにおける行および列を通して供給され、所与のＲＰＵセルのコンダクタンスが、所与のＲＰＵセルに入力されるｘｉおよびδｊ確率的パルス・ストリームの一致に依存して変化する。重み更新動作のためのベクトル・クロス積演算が、実数を表す確率的ストリームの一致検出（ＡＮＤ論理ゲート演算を用いた）が乗算演算に相当するという既知の概念に基づいて実施される。
【００２８】
上述した３つの動作モード全てが、ニューラル・ネットワークを形成するＲＰＵセルが３つのサイクル全てにおいてアクティブであることを許容し、よって、ＤＮＮ訓練プロセス中にＲＰＵセルの更新された重み値を計算するための逆伝播アルゴリズムの非常に効率的な実施が可能になる。上述の通り、ＲＰＵセルのアレイを含む確率的に訓練されたＤＮＮは、例えば、メモリスタ・デバイス、キャパシタ／読み出しトランジスタなどを含む様々な種類の調整可能抵抗デバイスを用いて実施されるシナプス重みを有し得る。ＤＮＮを適切に訓練し、高精度を達成するために、調整可能抵抗デバイスの動作特性は、ＲＰＵセルにおける対称的なインクリメント（増加／減少）重み値更新±Δｗｍｉｎを実現する能力を含むがこれに限定されない、厳重なセットの仕様を満たすべきである。そのような対称性を実現するために、ＲＰＵシステムは、アナログかつ対称的なインクリメント方式で所与のＲＰＵセルのコンダクタンス・レベルを最低コンダクタンス状態から最高コンダクタンス状態に切り替えるように構成されるべきである。コンダクタンス・レベルの各インクリメント増加（ステップ・アップ、
【数３】
2021518008.tif 000005
）およびインクリメント減少（ステップ・ダウン、
【数４】
2021518008.tif 000006
）は、わずか５％の不一致誤差の範囲内の同一または類似の量であるべきである。特に、上／下の対称性
【数５】
2021518008.tif 000007
は、１．０±０．０５に等しくなるべきである。パラメータ
【数６】
2021518008.tif 000008
は、周辺回路によって定義される増幅係数を通してパラメータ
【数７】
2021518008.tif 000009
に比例することに留意すべきである。しかしながら、メモリスタ・デバイス（またはメモリスタ）などの調整可能抵抗デバイスは、典型的には調整／プログラミングの特性において可変性を表し、コンダクタンス・レベルの範囲（最小〜最高）にわたって対称的な重み更新を実現することを困難にしている。
【００２９】
調整可能抵抗デバイスの調整／プログラミング特性における可変性に対処するために、および緩和された仕様を有する調整可能抵抗デバイスを用いてＲＰＵシステムを実施するために、本発明の実施形態は、重み更新累積動作および推論（重み読み出し）動作を実行するために別々の行列が利用される、ＲＰＵセル・アーキテクチャを提供する。特に、図４に示されるように、従来のＲＰＵシステムは、重み更新プロセス：ｗｉｊ←ｗｉｊ＋ηｘｉ×δｊを実行するために単一の重み行列Ｗを利用する。ここで、ｗｉｊは、ｉ行ｊ列の重み値を表す。本発明の実施形態によるＲＰＵシステムは、重み行列Ｗだけでなく、Ｈと示される別の「隠れ重み更新累積」行列を用いて実施される。Ｈ行列は、重み更新累積プロセス：ｈｉｊ←ｈｉｊ＋ηｘｉ×δｊを実行するために利用され、ここで、ｈｉｊは、ｉ行ｊ列の重み更新累積値を表す。この方式では、重み更新累積値ｈｉｊが、事前指定された閾値ＨＴｈｒｅｓｈｏｌｄを満たすときに、対応する重み値ｗｉｊが、一単位ΔＷｍｉｎだけインクリメントまたはデクリメントされる。累積された重み更新動作は、更新パスにおいてＨ行列を用いて実行され、Ｈ行列は推論パスから隠される。推論パスのためのＷ行列は、累積された重み更新の繰返し毎に更新されるのではなく、ＲＰＵセルのＨ行列値ｈｉｊが事前指定された閾値ＨＴｈｒｅｓｈｏｌｄを満たすときに、所与のＲＰＵセル３００のためのＷ行列値ｗｉｊが更新される。
【００３０】
例えば、図５は、本発明の一実施形態による、別々の重み行列が別々の重み更新累積動作および推論（重み読み出し）動作を独立して実行するために実施される、ＲＰＵセル・アーキテクチャのハイレベルな概略図である。特に、図５は、重み更新累積回路３１０、重み更新制御回路３２０、および調整可能抵抗デバイス３３０を含むＲＰＵセル３００を示す。重み更新累積回路３１０は、更新行制御ラインおよび更新列制御ラインに接続された入力を有し、調整可能抵抗デバイス３３０は、読み出し行制御ラインおよび読み出し列制御ラインに接続される。重み更新累積回路３１０および重み更新制御回路３２０は、インクリメント重み値更新の方向（インクリメントまたはデクリメント）を制御するプログラミング極性制御信号（Ｖ＿Ｐｒｏｇ）を入力として受信する。いくつかの実施形態において、調整可能抵抗デバイス３３０は、メモリスタ・デバイス、または抵抗変化型ＲＡＭ（ＲＲＡＭ）において利用される抵抗メモリ・セルなどの所与の適用に適した他の種類の可変抵抗デバイスを用いて実施される。特に、当技術分野において既知の通り、抵抗メモリ・セルは、絶縁層（例えば金属酸化物）が抵抗スイッチ挙動を通して可変抵抗を表す、金属−絶縁体−金属（ＭＩＭ）構造を含む。
【００３１】
ＲＰＵセル３００において、重み更新累積回路３１０は、重み更新累積プロセス：ｈｉｊ←ｈｉｊ＋ηｘｉ×δｊを実行するために一致検出方法を用いて、局所乗算演算（ベクトル・クロス積演算）を実行するように構成される。上述の通り、重み更新動作は、実数を表す確率的ビット・ストリームの一致検出（例えばＡＮＤ演算）を実行することが、乗算演算に相当するという概念に基づいて実施される。この点について、ｘｉおよびδｊの積（ｈｉｊ←ｈｉｊ＋ηｘｉ×δｊにおける）は、更新行制御ラインおよび更新列制御ラインそれぞれの上で重み更新累積回路３１０にベクトルｘｉおよびδｊを表す確率的ビット・ストリームを入力することによって、計算される。重み更新累積回路３１０は、２つの入力確率的ビット・ストリームｘｉおよびδｊの一致に依存して、累積重み値ｈｉｊを更新する。
【００３２】
重み更新累積値ｈｉｊが、事前指定された閾値ＨＴｈｒｅｓｈｏｌｄを満たすとき、重み更新累積回路３１０は、更新制御信号（更新）を生成し、重み更新制御回路３２０に送信する。更新制御信号に応答して、重み更新制御回路３２０は、調整可能抵抗デバイス３３０のコンダクタンス・レベルを１段階だけ調整する（即ち、導電性レベルを１段階
【数８】
2021518008.tif 000010
だけインクリメントまたはデクリメントする）。言い換えると、重み更新制御回路３２０は、ＲＰＵセル３００の対応する重み値ｗｉｊを一単位ΔＷｍｉｎだけ調整し、新たな重み値ｗｉｊが、現在記憶されている重み値ｗｉｊに対してΔＷｍｉｎを加算すること、または減算すること（即ち、ｗｉｊ←ｗｉｊ＋±ΔＷｍｉｎ）によって計算される。累積重み更新値ｈｉｊおよび推論重み値ｗｉｊに対するインクリメント変更は、回路ブロック３１０および３２０に入力されるプログラミング極性制御信号（Ｖ＿Ｐｒｏｇ）の極性に依存して、増加され（上）または減少される（下）。
【００３３】
調整可能抵抗デバイス３３０の推論重み値ｗｉｊが、所与のＲＰＵセル３００において更新されるとき、重み更新制御回路３２０は、リセット制御信号（リセット）を生成し、重み更新累積回路３１０に送信する。リセット制御信号に応答して、重み更新累積回路３１０は、ｈｉｊの値を事前定義された、初期化値にリセットし、所与のＲＰＵセルについての新たな重み更新累積サイクルを開始する。
【００３４】
ＲＰＵセル３００の例示的フレームワークにおいて、推論動作（例えば、図２および図３に示される順方向／逆方向パス動作）は、ＲＰＵセル・アレイにわたってＨ行列に対して実行される重み更新累積動作から独立して、Ｗ行列に対して実行される。所与のＲＰＵセルのＷ行列値ｗｉｊは、所与のＲＰＵセルのＨ行列値ｈｉｊに対する各更新繰返しで更新されるのではなく、Ｈ行列値ｈｉｊが事前定義された閾値を満たすときに、Ｗ行列値ｗｉｊが更新される。このフレームワークでは、Ｗ行列値ｗｉｊについての状態数は、例えば、１２００状態から４０状態まで減少されてもよく、Ｈ行列値ｈｉｊについての状態数は、例えば３０であってもよい。この点について、所与のＲＰＵセルのＷ行列値は、所与のＲＰＵセルについてのＨ行列値が３０状態を通して循環する度に、一単位値±ΔＷｍｉｎだけ更新され得る。これは、１２００コンダクタンス・レベル（状態）、例えば４０個のＷ行列値のそれぞれについて３０個のＨ行列値（３０×４０＝１２００）を有するＲＰＵセルを、効果的にエミュレートする。
【００３５】
このフレームワークでは、Ｗ行列値に対するインクリメント更新が、Ｈ行列値に対するインクリメント更新より少ない頻度で実行され、それによって、Ｗ行列が、緩和された仕様および制約で調整可能抵抗デバイスを用いて実施されることを可能にする。例えば、１０００以上のコンダクタンス状態を有するメモリスタ・デバイスでＲＰＵセルを実施しなければならないわけではなく、メモリスタ・デバイスは、４０以下のレベルのコンダクタンス分解能で実施されてもよく、それによって緩和されたデバイス制約を提供する。例えば、図５の調整可能抵抗デバイス３３０は、酸化ハフニウム（ＨｆＯｘ）・ベースのＲＲＡＭデバイスを用いて実施され得る。さらに、このＲＰＵセル・フレームワークでは、Ｗ行列値に対するインクリメント更新は、対称的である必要はない。さらに、例示的なＲＰＵセル・フレームワークは、順方向および更新動作が同時に実行されることを可能にし、Ｗ行列に対するグローバル更新サイクルを実行する必要性を除去することによって、性能速度上昇を提供する。
【００３６】
いくつかの実施形態において、Ｈ行列値についての状態数は、適用に依存して３０以上であってもよい。図５のＲＰＵセル３００の例示的フレームワークでは、Ｈ行列値のインクリメント更新は、対称的であるべきである。この点について、重み更新累積回路３１０は、ＲＰＵセルのＨ行列値ｈｉｊの対称的なインクリメント／デクリメント更新を可能にするために、様々な回路トポロジおよび構成を用いて容易に実施され得る。重み更新累積回路３１０および関連するＲＰＵセル・アーキテクチャを実施するための代替的実施形態が、ここで図６、図７、図８、および図９に示される例としての実施形態を参照してさらに詳細に説明される。
【００３７】
例えば、図６は、本発明の別の実施形態によれば、別々の推論（重み読み出し）および重み更新累積動作を独立して実行するために別々の重み行列を実施する、ＲＰＵセル４００を概略的に示す図である。ＲＰＵセル４００は、重み更新累積回路４１０、パルス生成器回路４２０、調整可能抵抗デバイス４３０、ならびに第１のスイッチＳ１および第２のスイッチＳ２を含む。重み更新累積回路４１０は、一致検出器４１２および双方向デジタル・カウンタ４１４（または上／下カウンタ）を含む。パルス生成器回路４２０は、制御回路４２２およびパルス生成器４２４を含む。図６に示される重み更新累積回路４１０は、上述の通り図５の重み更新累積回路３１０の例としての実施形態である。さらに、図６に示されるパルス生成器回路４２０ならびに第１のスイッチＳ１および第２のスイッチＳ２が、上述の通り図５の重み更新制御回路３２０の例としての実施形態をまとめて提供する。
【００３８】
１つの実施形態において、一致検出器４１２は、更新行制御ラインおよび更新列制御ラインに接続された入力、ならびに双方向デジタル・カウンタ４１４のデータ入力（ＩＮ）に接続された出力を有するＡＮＤ論理ゲートを含む。確率的コンピューティング方式を用いた重み更新プロセスについて、ＡＮＤ論理ゲートは、局所乗算演算を可能にし、ＲＰＵセル４００のＨ行列値ｈｉｊのインクリメント更新が、更新行制御ラインおよび更新列制御ライン上の確率的パルスが一致する度に（例えば、ＡＮＤゲート入力が、一致する論理「１」パルスを有するときに）実行される。更新行制御ラインおよび更新列制御ラインでパルス一致が検出されるとき、一致検出器４１２は、例えば、双方向デジタル・カウンタ４１４のデータ入力ＩＮに、論理レベル「１」を出力する。
【００３９】
双方向デジタル・カウンタ４１４は、双方向デジタル・カウンタ４１４の上／下制御入力に印加されるプログラミング極性制御信号Ｖ＿Ｐｒｏｇの論理レベルに依存して、上または下のいずれか、双方向にカウントするように構成される任意の適当なデジタル・カウンタ回路構成を用いて、実施され得る。特に、双方向デジタル・カウンタ４１４は、任意の所与のカウント・シーケンスを通して任意の方向（上または下）にカウントするように構成され、カウント方向は、双方向デジタル・カウンタ４１４の上／下制御入力に印加されるＶ＿Ｐｒｏｇの論理レベルに基づいてカウント・シーケンス内の任意の点で逆方向にされ得る。
【００４０】
双方向デジタル・カウンタ４１４のカウント値が事前指定されたカウント値に到達するとき、双方向デジタル・カウンタ４１４は、パルス生成器回路４２０の入力に制御信号キャリーを出力する。キャリー制御信号に応答して、パルス生成器回路４２０は、パルス生成器回路４２０の正（＋）および負（−）の出力端子上に（事前指定された期間の）電圧パルスを生成し、それは、調整可能抵抗デバイス４３０のコンダクタンス・レベルを一単位±Δｇｍｉｎだけインクリメントまたはデクリメントのいずれかをするために調整可能抵抗デバイス４３０に印加される。コンダクタンス・レベルの単位変化±Δｇｍｉｎは、ＲＰＵセル４００の重み値ｗｉｊの単位変化±ΔＷｍｉｎに対応する（新たな重み値は、ΔＷｍｉｎを加算すること、または現在記憶されている重み値ｗｉｊからΔＷｍｉｎを減算すること（即ち、ｗｉｊ←ｗｉｊ＋±ΔＷｍｉｎ）によって計算される）。パルス生成器回路４２０は、双方向デジタル・カウンタ４１４を事前指定された初期化カウント値にリセットするために双方向デジタル・カウンタ４１４のリセット入力に印加されるリセット制御信号を生成し、出力する。
【００４１】
より具体的には、図６に示されるように、パルス生成器回路４２０の制御回路４２２は、（ｉ）双方向デジタル・カウンタ４１４からのキャリー信号出力を受信および処理すること、（ｉｉ）双方向デジタル・カウンタ４１４をリセットするためにリセット制御信号を生成および出力すること、（ｉｉｉ）第１のスイッチＳ１および第２のスイッチＳ２を制御するパス・イネーブル制御信号（Ｐａｔｈ＿Ｅｎ）を生成および出力すること、ならびに（ｉｖ）パルス生成器４２４に、パルス生成器回路４２０の出力端子（＋）および（−）上で重み更新パルスを生成および出力させる、パルス生成器４２４へのアクティブ化信号を生成すること、を含む様々な機能を実行するように構成される。
【００４２】
図６に示されるように、第１のスイッチＳ１および第２のスイッチＳ２は、制御回路４２２から出力されるＰａｔｈ＿Ｅｎ制御信号によって制御される。Ｐａｔｈ＿Ｅｎ制御信号の極性に依存して、ＲＰＵセル４００は、「更新パス」構成または「推論パス」構成のいずれかに構成される。更新パス構成において、第１のスイッチＳ１および第２のスイッチＳ２は、調整可能抵抗デバイス４３０をパルス生成器回路４２０の正（＋）および負（−）出力端子に、ならびにその間に接続するようにアクティブ化される。この構成では、パルス生成器回路４２０は、調整可能抵抗デバイス４３０のコンダクタンス値を一単位±Δｇｍｉｎだけインクリメントまたはデクリメントのいずれかをするために、重み更新電圧パルスを調整可能抵抗デバイス４３０に印加する。重み更新電圧パルスの極性は、Ｖ＿Ｐｒｏｇ制御信号の論理レベルに依存して、正（＋）または負（−）のいずれかである。例えば、正のパルス（所定のパルス幅を有する）は、調整可能抵抗デバイス４３０のコンダクタンス・レベルを一単位＋Δｇｍｉｎだけ増加させるためにパルス生成器回路４２０の出力に印加され、負のパルス（所定のパルス幅を有する）は、調整可能抵抗デバイス４３０のコンダクタンス・レベルを一単位−Δｇｍｉｎだけ減少させるためにパルス生成器回路４２０の出力に印加される。
【００４３】
一方、推論パス構成において、第１のスイッチＳ１および第２のスイッチＳ２は、ＲＰＵセル４００の重み値ｗｉｊを読み出すために、調整可能抵抗デバイス４３０を読み出し行制御ラインおよび読み出し列制御ラインに、ならびにその間に接続するようにアクティブ化される。例えば、推論パス構成において、事前定義された振幅を有する電圧パルスを読み出し行制御ラインおよび読み出し列制御ライン上に印加すること、次いで、調整可能抵抗デバイス４３０によって生成され、読み出し行制御ライン（逆方向動作）または読み出し列制御ライン（順方向動作）のいずれかに出力される読み出し電流Ｉｒｅａｄを測定することによって、ＲＰＵセル４００の重み値ｗｉｊが、順方向動作または逆方向（読み出し）動作あるいはその両方において読み出され得る。読み出し電流Ｉｒｅａｄは、周辺回路（図１参照）において統合およびデジタル化され、ベクトル−行列乗算演算を実行するように処理される。
【００４４】
第１のスイッチＳ１および第２のスイッチＳ２は、概して図６に示されているが、各スイッチＳ１およびＳ２が、重み更新パスまたは重み読み出し（推論）パスのいずれかを構成するためにＰａｔｈ＿Ｅｎ制御信号の論理レベルに応答するＲＰＵセル４００内のスイッチ回路を提供するために、１つまたは複数のＭＯＳＦＥＴトランジスタを用いて実施され得ると理解されるべきである。図６に示される例としての実施形態において、ＲＰＵセル４００の重み値を読み出すための推論動作（順方向パス動作および逆方向パス動作のための）は、重み更新累積回路４１０によって実行される累積重み更新動作と同時に実行され得る。さらに、所与のＲＰＵセル４００の重み更新動作が、他のＲＰＵセルにおける重み更新動作と同期することなく、かつ重み読み出し（推論）動作がＲＰＵアレイにおいて実行されているときであっても、調整可能抵抗デバイス４３０のコンダクタンス・レベルを調整するため局所的に実行され得るように、キャリー信号が生成され、双方向デジタル・カウンタ４１４から出力されるときに、パルス生成器回路４２０は、所与のＲＰＵセル４００についての重み更新動作を非同期方式で実行するように進行し得る。別の実施形態では、同期重み更新フレームワークが、適当な制御／タイミング・プロトコルを用いて実施されてもよく、それによって、アサートされた保留中のキャリー信号を有する複数のＲＰＵセルが、グローバル更新信号／サイクルが生成され／開始されるまで、例えばパルス生成器回路からのプログラミング・パルスの出力を遅延させることによって、それらの局所重み更新動作を同時に実行するように構成される。
【００４５】
１つの例としての実施形態において、ＲＰＵセルの局所重み更新動作が、以下のように実行され得る。ＲＰＵシステムの順方向および逆方向動作モードの間、制御回路４２２は、Ｐａｔｈ＿Ｅｎ制御信号を第１の論理レベル（例えば、Ｐａｔｈ＿Ｅｎ＝論理「１」）に設定し、それが、調整可能抵抗デバイス４３０を読み出し行制御ラインおよび読み出し列制御ラインに、ならびにその間に接続するために、第１のスイッチＳ１および第２のスイッチＳ２をアクティブ化する。この状態において、推論動作は、ＲＰＵセル４００の現在の重み値を読み出し／感知するためにＲＰＵシステムによって実行され得る。
【００４６】
キャリー制御信号が双方向デジタル・カウンタ４１４から出力されるとき、制御回路４２２は、Ｐａｔｈ＿Ｅｎ制御信号を第２の論理レベル（例えば、Ｐａｔｈ＿Ｅｎ＝論理「０」）に設定し、それが、調整可能抵抗デバイス４３０をパルス生成器回路４２０の正（＋）および負（−）出力端子に、ならびにその間に接続するために、第１のスイッチＳ１および第２のスイッチＳ２をアクティブ化する。この状態において、制御回路４２２は、パルス生成器ブロック４２４へのアクティブ化信号を生成し、それによって、パルス生成器ブロック４２４は、重み更新プログラミング・パルス（事前定義されたパルス幅を有する）を生成して調整可能抵抗デバイス４３０に印加し、調整可能抵抗デバイス４３０のコンダクタンス・レベルを一単位コンダクタンス・レベルだけ調整する。プログラミング・パルスが調整可能抵抗デバイス４３０に印加されると、制御回路４２２は、リセット制御信号を生成し、双方向デジタル・カウンタ４１４のリセット入力ポートに出力する。リセット制御信号に応答して、双方向デジタル・カウンタ４１４は、初期化カウント値にリセットされ、キャリー信号は、デアサートされる（例えば、論理「１」から論理「０」へ遷移する）。キャリー制御信号のデアサートに応答して、パルス生成器回路４２０の制御回路４２２は、第１のスイッチＳ１および第２のスイッチＳ２に、調整可能抵抗デバイス４３０を読み出し行制御ラインおよび読み出し列制御ラインに再接続させるために、Ｐａｔｈ＿Ｅｎ制御信号の論理状態を変更する。
【００４７】
図７は、本発明の一実施形態による、図６のＲＰＵセル４００の動作モードを概略的に示す図である。特に、図７は、双方向デジタル・カウンタ４１４が最小カウント値（Ｃ＿ｍｉｎ）から最大カウント値（Ｃ＿ｍａｘ）まで変動し得るカウント値５００の範囲を有することを概略的に示し、調整可能抵抗デバイス４３０は、最小コンダクタンス（Ｇ＿ｍｉｎ）から最大コンダクタンス（Ｇ＿ｍａｘ）まで変動し得る調整可能コンダクタンス５１０を有する。１つの実施形態では、本実施に依存して、双方向デジタル・カウンタ４１４は、Ｃ＿ｍｉｎ＝０からＣ＿ｍａｘ＝３１のカウント値の範囲を提供する５ビットのカウンタを含み、カウンタは、上下方向に動作し得る。さらに、１つの実施形態において、調整可能コンダクタンスの動的範囲は、最低コンダクタンス状態（Ｇ＿ｍｉｎ）から最高コンダクタンス状態（Ｇ＿ｍａｘ）までの４０の値を含み得る。
【００４８】
図７においてさらに示されるように、カウント・シーケンスの間にＣ＿ｍｉｎまたはＣ＿ｍａｘカウント値のいずれかに到達するときに、キャリー制御信号が、双方向デジタル・カウンタ４１４から出力される。上述の通り、一致検出器４１２に入力される更新行制御ラインおよび更新列制御ライン上に印加される確率的ビット・ストリームのそれぞれの検出された一致事象に応答して、双方向デジタル・カウンタ４１４のカウント値が、１カウント値増加または減少のいずれかにされる。キャリー制御信号に応答して、ＲＰＵセル４００の重み更新制御回路（例えば、パルス生成器４２０ならびにスイッチＳ１およびＳ２）が、調整可能抵抗デバイス４３０のコンダクタンスを一単位±Δｇｍｉｎだけインクリメントまたはデクリメントのいずれかをするように動作する。上述の通り、単位コンダクタンス・パラメータΔｇｍｉｎは、周辺回路において定義された増幅係数を通して単位重みパラメータΔｗｍｉｎに比例する。図７にさらに示されるように、リセット制御信号に応答して、双方向デジタル・カウンタ４１４のカウント値が、事前定義されたカウント・リセット値（Ｃ＿Ｒｅｓｅｔ）にリセットされ、Ｃ＿Ｒｅｓｅｔから始まる重み更新を累積するための次のカウント・サイクルを開始する。１つの実施形態において、Ｃ＿Ｒｅｓｅｔの値は、カウント・シーケンスの中間点であるように選択される。例えば、５ビット・カウンタの場合、Ｃ＿Ｒｅｓｅｔの値は、１５または１６であるように選択され得る。
【００４９】
図７に示されるプロセスでは、調整可能抵抗デバイス４３０のコンダクタンス・レベルは、カウント値がＣ＿ｍａｘまたはＣ＿ｍｉｎに到達する度にアナログかつインクリメント方式で調整される。この点について、Δｈｍｉｎが、カウント値の各インクリメントまたはデクリメントに対応するように、一致検出事象に応答する双方向デジタル・カウンタのカウント・シーケンスのインクリメント／デクリメントは、重み更新累積プロセス：ｈｉｊ←ｈｉｊ＋ηｘｉ×δｊをエミュレートする。デジタル・カウンタのカウント値における上下変化は本来対称的であるため、重み更新累積値ｈｉｊにおける上（
【数９】
2021518008.tif 000011
）および下（
【数１０】
2021518008.tif 000012
）の変化に対称性があり、上／下対称性
【数１１】
2021518008.tif 000013
が約１．０に等しいということが、必然的に続く。
【００５０】
本明細書において説明されるＲＰＵセル・フレームワークは、例えば、調整可能抵抗デバイスのコンダクタンス値における上下変化の対称性に関して、ＲＰＵセルにおいて使用される調整可能抵抗デバイスの仕様における緩和を可能にし、したがって、抵抗デバイスは、より少ない数のコンダクタンス状態（例えば、１０００以上の状態とは対照的に、４０状態）で実施され得る。調整可能抵抗デバイス（Ｗ行列を定義する）のコンダクタンス状態は、累積された重み更新（Ｈ行列によって定義される）が事前定義されたカウント閾値に到達することのみに応答してインクリメント方式で変更（上または下）される。本質的に、Ｈ行列値は、ＲＰＵセルの重み値の最下位ビット（ＬＳＢ）を表し、Ｗ行列値は、ＲＰＵセルの重み値の最上位ビット（ＭＳＢ）を表す。これは、実際に４０以下のレベル（１０００以上ではない）のコンダクタンス分解能を有するＲＰＵデバイスを利用する間、ＲＰＵシステムが、１０００以上の異なる重み値を有するＲＰＵセルに対してＤＮＮ訓練動作を実行するように構成されるＤＮＮの適用を用いて利用されることを可能にし、それによって、緩和されたデバイス制約を提供する。
【００５１】
図８は、本発明の別の実施形態による、各ＲＰＵセルが別々の推論（重み読み出し）動作および重み更新累積動作を独立して実行するために別々の重み行列を実施する、ＲＰＵシステムのＲＰＵセルのアレイを概略的に示す図である。特に、図８は、ＲＰＵセル・アレイの４つのＲＰＵセル６００−１、６００−２、６００−３、および６００−４を含むＲＰＵサブアレイ６００を示す。ＲＰＵセル６００−１、６００−２、６００−３、および６００−４は、更新行制御ライン、更新列制御ライン、読み出し行制御ライン、および読み出し列制御ラインのそれぞれに接続される。図８に示されるように、制御ラインの各行（ｉ）および（ｉ＋１）が、更新行制御ラインおよび読み出し行制御ラインの対を含み、制御ラインの各列（ｉ）および（ｉ＋１）が、更新列制御ラインおよび読み出し列制御ラインの対を含む。
【００５２】
図８にさらに示されるように、各ＲＰＵセル６００−１、６００−２、６００−３、および６００−４は、図６に示されるＲＰＵセル４００と同様に、重み更新累積回路４１０、調整可能抵抗デバイス４３０、ならびに第１のスイッチＳ１および第２のスイッチＳ２を含む。しかしながら、図８の例示的実施形態において、グローバル・パルス生成器６１０は、図６のＲＰＵセル４００内の局所パルス生成器回路４２０と同一または類似の機能を実行するために、サブアレイ６００において各ＲＰＵセル６００−１、６００−２、６００−３、および６００−４によって共通して利用される。図８の実施形態は、局所専用パルス生成器回路を有する各ＲＰＵセルとは対照的に、グローバル・パルス生成器回路６１０が複数のＲＰＵセルによって利用される、より領域（設置領域（フットプリント））効率の良い実施を提供する。
【００５３】
図８に概略的に示されるように、グローバル・パルス生成器６１０は、制御回路６１２およびパルス生成器６１４を含み、それらは、図６の局所パルス生成器回路４２０のそれぞれのコンポーネントと同一または類似の機能を有する。複数の制御ライン６２０（または制御バス）が、グローバル・パルス生成器６１０の制御回路６１２を、ＲＰＵセル・サブアレイ６００のＲＰＵセル６００−１、６００−２、６００−３、および６００−４のそれぞれにおける双方向デジタル・カウンタ４１４のリセット信号入力ポートおよびキャリー信号出力ポートに接続するように実施される。さらに、複数の制御ライン６２２が、グローバル・パルス生成器６１０の出力端子を、ＲＰＵセル・サブアレイ６００のＲＰＵセル６００−１、６００−２、６００−３、および６００−４のそれぞれにおける制御端子（グローバルＰＧ＋、グローバルＰＧ−）に接続するように実施される。図８の例としての実施形態は、ＲＰＵセル・アレイ内のＲＰＵセル６００の２×２サブアレイによって共有されているグローバル・パルス生成器回路６１０を示しているが、他の実施形態では、グローバル・パルス生成器回路６１０は、アレイ構成およびレイアウト仕様に依存して、ＲＰＵセルのより大きなサブアレイ（例えば、１０×１０サブアレイ）によって共有され得る。
【００５４】
１つの実施形態において、ＲＰＵセル・サブアレイ６００のＲＰＵセル６００−１、６００−２、６００−３、および６００−４のそれぞれにおけるスイッチＳ１およびＳ２は、（図６のＲＰＵセル・フレームワークにおける局所パルス生成器回路４２０によって生成されるＰａｔｈ＿Ｅｎ信号とは対照的に、）双方向デジタル・カウンタ４１４によって生成されるキャリー制御信号を用いて局所的に制御され得る。キャリー制御信号が、ＲＰＵセル６００−１、６００−２、６００−３、および６００−４のうちの所与の１つにおいて双方向デジタル・カウンタ４１４によってアサートされる（例えば、論理「１」）とき、所与のＲＰＵセルにおける局所スイッチＳ１およびＳ２は、関連する調整可能抵抗デバイス４３０を所与のＲＰＵセルにおける局所制御端子（グローバルＰＧ＋、グローバルＰＧ−）に、およびその間に接続するためにアクティブ化される。この構成では、ＲＰＵセル・サブアレイ６００のＲＰＵセル６００−１、６００−２、６００−３、および６００−４のうちの１つもしくは複数または全てが、所与の時間においてグローバル・パルス生成器６１０の出力端子に接続されたそれらのそれぞれの抵抗デバイス４３０を有し得る。
【００５５】
さらに、（ＲＰＵセル６００のサブアレイにおける１つまたは複数の双方向カウンタ４１４から）制御ライン６２０のうちの１つまたは複数で受信されるキャリー制御信号に応答して、グローバル・パルス生成器６１０の制御回路６１２は、アクティブ化制御信号をパルス生成器ブロック６１４に印加し、アクティブ化制御信号は、パルス生成器ブロック６１４に、制御ライン６２２でプログラミング・パルスを生成させ、ＲＰＵセル・サブアレイ６００における各ＲＰＵセル６００−１、６００−２、６００−３、および６００−４に出力させる。この構成では、各ＲＰＵセル６００−１、６００−２、６００−３、および６００−４は、パルス生成器６１４から出力されたプログラミング・パルスを受信するが、アサートされた保留中のキャリー信号を有するそれらのＲＰＵセルのみ、したがって、所与の時間にグローバル・パルス生成器６１０の出力端子（グローバルＰＧ＋、グローバルＰＧ−）に局所的に接続されたそれぞれの調整可能デバイス４３０は、プログラミング・パルスに応答して調整可能抵抗デバイス４３０のコンダクタンス・レベルを変更することにより、重み更新動作を実行する。この構成では、グローバル・パルス生成器６１０が、所与のサブアレイ６００内の全てのＲＰＵセルの重み値を同時に更新することが可能なプログラミング・パルスを生成するのに十分な電流駆動ケイパビリティを有すると仮定される。
【００５６】
プログラミング・パルスがＲＰＵセルの抵抗デバイス４３０に印加された後、制御回路６１２は、リセット制御信号を生成し、それは、接続されたＲＰＵセル内の双方向カウンタ４１４のリセット入力ポートに、制御ライン６２０を経て送信される。リセット制御信号に応答して、アサートされたキャリー制御信号を有する接続されたＲＰＵセルにおけるそれらの双方向カウンタ４１４のみが、それらのカウント値をリセットし、次いで、それぞれのキャリー制御信号をデアサートする。所与のＲＰＵセルにおけるキャリー制御信号のデアサートが、所与のＲＰＵセルにおける局所スイッチＳ１およびＳ２に、調整可能抵抗デバイス４３０をそれぞれの読み出し行制御ラインおよび読み出し列制御ラインに再接続させる。
【００５７】
図６、図８、および図９の例としての実施形態は、メモリスタまたは抵抗メモリ・セル（例えばＲＲＡＭデバイス）などの調整可能抵抗デバイスを利用するＲＰＵセル・フレームワークに基づくが、本明細書に説明される技術は、例えば、ＲＰＵセル重み値を記憶し読み出すための重み記憶キャパシタおよび読み出しトランジスタを用いた、アナログＣＭＯＳベースのフレームワークに基づくＲＰＵセルにおいて実施され得る。例えば、図９は、本発明の別の実施形態による、別々の推論（重み読み出し）動作および重み更新累積動作を独立して実行するために別々の重み行列が利用されるＲＰＵセル７００を概略的に示す図である。図９に示されるように、ＲＰＵセル７００は、重み更新累積回路７１０、第１のスイッチＳ１、第２のスイッチＳ２、第３のスイッチＳ３、制御回路７１５、第１の電流源７２０、第２の電流源７２２、重み記憶キャパシタ７３０、および読み出しトランジスタ７４０を含む。
【００５８】
重み更新累積回路７１０は、図６、図７、および図８の状況において上述した例としての実施形態においてと同一または類似の機能を実行する、一致検出器４１２および双方向デジタル・カウンタ４１４を含む。１つの実施形態において、第１の電流源７２０は、ＰＭＯＳトランジスタを用いて実施されてもよく、第２の電流源７２２は、ＮＭＯＳトランジスタを用いて実施されてもよい。第１の電流源７２０および第２の電流源７２２は、電源ノードＶＤＤおよびＶＳＳの間に直列で接続される。重み記憶キャパシタ７３０は、ノードＮ１と電源ノードＶＳＳとの間に接続される。読み出しトランジスタ７４０は、ノードＮ１に接続されるゲート端子、および読み出し行制御ラインおよび読み出し列制御ラインに接続されるソース／ドレイン端子を含む。制御回路７１５は、双方向カウンタ４１４からキャリー制御信号を受信する入力ポート、双方向カウンタ４１４にリセット制御信号を送信する出力ポート、およびＰａｔｈ＿Ｅｎ制御パルスを出力する出力ポートを含む。
【００５９】
図９に示されるように、第１のスイッチＳ１および第２のスイッチＳ２は、プログラミング極性信号Ｖ＿Ｐｒｏｇに応答して選択的にアクティブ化される。１つの実施形態において、スイッチＳ１は、論理「１」Ｖのプログラミング極性信号（Ｖ＿Ｐｒｏｇ＝１）に応答してアクティブ化され、スイッチＳ２は、論理「０」のプログラミング極性信号（Ｖ＿Ｐｒｏｇ＝０）に応答してアクティブ化される。さらに、上述の通り、双方向デジタル・カウンタ４１４のカウント方向は、プログラミング極性信号Ｖ＿Ｐｒｏｇによって制御され、双方向デジタル・カウンタ４１４は、論理「１」のプログラミング極性信号（Ｖ＿Ｐｒｏｇ＝１）に応答して「上」方向にカウントし、論理「０」のプログラミング極性信号（Ｖ＿Ｐｒｏｇ＝０）に応答して「下」方向にカウントする。さらに、スイッチＳ３は、制御回路７１５によって生成されるＰａｔｈ＿Ｅｎ制御パルスに応答して選択的にアクティブ化される。
【００６０】
ＲＰＵセル７００の設計において、重み記憶キャパシタ７３０は、充電の形態でＲＰＵセル７００の重み値を記憶するメモリ素子の役割をする。重み読み出し動作を実行するために、キャパシタ電圧または重み電圧ＶＷは、読み出しトランジスタ７４０のチャネル抵抗を調節するために、読み出しトランジスタ７４０のゲート端子に直接印加される。キャパシタ７３０に記憶される充電状態は、読み出しトランジスタ７４０のソース／ドレイン端子にわたって小さなバイアスを印加すること、および電流ＩＲＥＡＤを測定することによって、アクセスされ得る。上述の通り、順方向動作および逆方向（読み出し）動作について、事前定義された振幅、例えばＶＤＤおよびＶＤＤ−０．１を有する電圧パルスが、読み出し行制御ラインおよび読み出し列制御ラインから読み出しトランジスタ７４０に印加される。小さなソース−ドレイン電圧によって、読み出しトランジスタ７４０は、重み電圧ＶＷに依存するオン抵抗が読み出しトランジスタ７４０のゲート端子に直接印加される三極管領域において動作する。
【００６１】
ＲＰＵセル７００は、以下のような別々のＨおよびＷ行列値更新動作を用いて重み更新プロセスを実施する。上述の例としての実施形態においてのように、ＲＰＵセル７００は、確率的計算方式を利用し、一致検出器４１２は、更新行制御ラインおよび更新列制御ライン上の確率的ビット・ストリームの確率的パルス一致検出事象毎に、論理レベル「１」信号を、例えば双方向デジタル・カウンタ４１４のデータ入力ＩＮに出力する。双方向デジタル・カウンタ４１４のカウント値が事前指定されたカウント値（例えば図７のＣ＿ｍｉｎまたはＣ＿ｍａｘ）に到達するときに、双方向デジタル・カウンタ４１４は、制御信号キャリーを出力する。キャリー制御信号に応答して、制御回路７１５は、ＴＰＵＬＳＥによって定義されるプログラミング期間（存続期間）の間、第３のスイッチＳ３をアクティブ化し（閉じ）、ノードＮ１を記憶キャパシタ７３０に接続するために、Ｐａｔｈ＿Ｅｎプログラミング・パルス（事前定義されたパルス幅ＴＰＵＬＳＥを有する）を生成する。
【００６２】
プログラミング極性信号Ｖ＿Ｐｒｏｇの論理レベルに依存して、第１のスイッチＳ１が、第１の電流源７２０をノードＮ１に接続するためにアクティブ化されるか（Ｖ＿Ｐｒｏｇ＝１のとき）、または第２のスイッチＳ２が、第２の電流源７２２をノードＮ１に接続するためにアクティブ化される（Ｖ＿Ｐｒｏｇ＝０のとき）かのいずれかである。第１のスイッチＳ１がアクティブ化され（閉じられ）、第２のスイッチＳ２がアクティブ化されない（開かれる）とき、第１の電流源７２０によって生成される電流（ＩＥＶＥＮＴ）が、（プログラミング期間ＴＰＵＬＳＥの存続期間中）重み記憶キャパシタ７３０を充電し、キャパシタ７３０の重み電圧ＶＷを最小単位電圧変化＋ΔＶだけ増加させる。一方、第１のスイッチＳ１がアクティブ化されず（開かれ）、第２のスイッチＳ２がアクティブ化される（閉じられる）とき、第２の電流源７２２によって生成される電流（ＩＥＶＥＮＴ）が、（プログラミング期間ＴＰＵＬＳＥの存続期間中）重み記憶キャパシタ７３０を放電し、キャパシタ７３０の重み電圧ＶＷを最小単位電圧変化−ΔＶだけ減少させる。第３のスイッチは、プログラミング制御信号Ｐａｔｈ＿Ｅｎのプログラミング期間（ＴＰＵＬＳＥ）の存続期間中、アクティブ化される。プログラミング制御信号Ｐａｔｈ＿Ｅｎがデアサートされると、制御回路７１５は、双方向デジタル・カウンタ４１４をリセットするためにリセット制御信号を生成および出力する。
【００６３】
図９のＲＰＵセル７００において、更新毎の最小電圧変化量が、
【数１２】
2021518008.tif 000014
として判断され、ここで、ＩＥＶＥＮＴは、第１の電流源７２０および第２の電流源７２２それぞれからの充電電流および放電電流を示し、ＴＰＵＬＳＥ，ｍｉｎは、プログラミング制御信号Ｐａｔｈ＿Ｅｎの最小プログラミング・パルス幅を示す。１２００の状態（読み出しトランジスタ７４０のコンダクタンス・レベル）の従来のシステムでは、ＲＰＵセルは、比較的大きな重み電圧記憶キャパシタ７３０を必要とし、または、ある範囲未満に制御することが難しい非常に小さなＩＥＶＥＮＴを必要とする。しかしながら、隠れＨ行列を用いて別々の重み更新累積方式を実施する、図９に示されるＲＰＵセル７００の例示的フレームワークは、ＲＰＵセルが重み行列Ｗについてより少ない数（例えば４０）の状態を有することを可能にし、それは、キャパシタ７３０および読み出しトランジスタ７４０デバイスについての仕様を緩和するのに役立つ。さらに、Ｈ行列の実施は、Ｗ行列に対するより少ない更新頻度を可能にし、それによって、ＲＰＵセル重み値を実施するのに役立つ、メモリスタおよびキャパシタ／トランジスタなどの耐久性を制限されたＲＰＵデバイス上に加える圧力が小さくなる。それにより、ＲＰＵデバイスの寿命が延長される。
【００６４】
添付図面を参照して、例示的実施形態が本明細書に説明されているが、本発明は、それらの正確な実施形態に限定されず、添付された特許請求の範囲から逸脱することなく、当業者により様々な他の変更および修正がそこに行われ得ると理解されるべきである。
【図１】
2021518008.tif 000015
【図２】
2021518008.tif 000016
【図３】
2021518008.tif 000017
【図４】
2021518008.tif 000018
【図５】
2021518008.tif 000019
【図６】
2021518008.tif 000020
【図７】
2021518008.tif 000021
【図８】
2021518008.tif 000022
【図９】
2021518008.tif 000023
【手続補正書】
【提出日】令和3年4月13日(2021.4.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
抵抗型処理ユニット（ＲＰＵ）・デバイスであって、
更新行制御ラインに接続された第１の入力および更新列制御ラインに接続された第２の入力を有する重み更新累積回路と、
前記重み更新累積回路の出力に接続された重み更新制御回路と、
前記重み更新制御回路に連結され、読み出し行制御ラインおよび読み出し列制御ラインに接続された調整可能抵抗デバイスと、を備え、
前記重み更新累積回路が、（ｉ）重み更新累積値ｈｉｊを維持し、前記更新行制御ラインおよび前記更新列制御ラインに印加される入力ベクトルの確率的ビット・ストリームのそれぞれの検出された一致に応答して前記重み更新累積値ｈｉｊを一単位更新値Δｈだけ調整し、（ｉｉ）累積重み値ｈｉｊが事前定義された閾値に到達したことに応答して前記重み更新制御回路に重み更新制御信号を出力する、ように構成され、
前記重み更新制御回路が、前記重み更新累積回路から出力される前記重み更新制御信号に応答して、前記調整可能抵抗デバイスのコンダクタンス・レベルを一単位コンダクタンス値Δｇだけ調整するように構成され、前記一単位コンダクタンス値Δｇが、前記ＲＰＵデバイスの一単位重み値Δｗに対応する、ＲＰＵデバイス。
【請求項２】
前記重み更新累積回路が、前記調整可能抵抗デバイスに接続された前記読み出し行制御ラインおよび前記読み出し列制御ラインに読み出し制御電圧を印加することによって、前記ＲＰＵデバイスの重み値ｗｉｊが感知される読み出し動作と同時に、累積重み更新動作を実行するように構成される、請求項１に記載のＲＰＵデバイス。
【請求項３】
前記重み更新累積回路および前記重み更新制御回路が、プログラミング極性制御信号を受信し、前記プログラミング極性制御信号の極性に依存して、前記重み更新累積値と前記調整可能抵抗デバイスの前記コンダクタンス・レベルとを（ｉ）インクリメントすること、および（ｉｉ）デクリメントすることのうちの１つによって、前記重み更新累積値および前記コンダクタンス・レベルを調整するように構成される、請求項１または２に記載のＲＰＵデバイス。
【請求項４】
前記重み更新累積回路が、
前記更新行制御ラインおよび前記更新列制御ラインに接続された入力を有する一致検出器と、
前記一致検出器の出力に接続されたデータ入力ポートを有する双方向デジタル・カウンタと、を備え、
前記一致検出器が、前記更新行制御ラインおよび前記更新列制御ラインに印加される前記入力ベクトルの前記確率的ビット・ストリームのそれぞれの検出された一致に応答して、前記双方向デジタル・カウンタの前記データ入力ポートに検出信号を出力するように構成され、
前記双方向デジタル・カウンタが、（ｉ）前記データ入力ポートに入力される前記検出信号に応答してカウント値を調整し、（ｉｉ）前記カウント値が事前定義されたカウント値に到達したことに応答して前記重み更新制御信号を前記重み更新制御回路に出力する、ように構成される、請求項１から３のいずれか一項に記載のＲＰＵデバイス。
【請求項５】
前記重み更新制御回路が、前記調整可能抵抗デバイスのコンダクタンス・レベルを一単位コンダクタンス値Δｇだけ調整するためにプログラミング電圧パルスを生成するように構成される、パルス生成器回路を含む、請求項４に記載のＲＰＵデバイス。
【請求項６】
前記パルス生成器回路が、前記調整可能抵抗デバイスの前記コンダクタンス・レベルの調整に続いて前記双方向デジタル・カウンタのカウント値を事前定義された初期化カウント値にリセットするために、前記双方向デジタル・カウンタのリセット制御ポートに入力されるリセット制御信号を生成するように構成される、請求項５に記載のＲＰＵデバイス。
【請求項７】
前記事前定義されたカウント値が、前記双方向デジタル・カウンタの最小カウント値および最大カウント値のうちの１つを含む、請求項４から６のいずれか一項に記載のＲＰＵデバイス。
【請求項８】
前記一致検出器が、ＡＮＤ論理回路を含む、請求項４から７のいずれか一項に記載のＲＰＵデバイス。
【請求項９】
前記重み更新制御回路が、パルス生成器回路を含み、前記調整可能抵抗デバイスが、調整可能メモリスタ・デバイスを含み、前記パルス生成器回路が、前記調整可能メモリスタ・デバイスのコンダクタンス・レベルを一単位コンダクタンス値Δｇだけ調整するために前記調整可能メモリスタ・デバイスにわたってプログラミング電圧パルスを印加するように構成される、請求項１に記載のＲＰＵデバイス。
【請求項１０】
前記重み更新制御回路が、第１のスイッチおよび第２のスイッチを含み、前記第１のスイッチおよび前記第２のスイッチが、重み更新プロセスを実行するために前記パルス生成器回路の第１の出力端子および第２の出力端子にわたって前記調整可能メモリスタ・デバイスを選択的に接続するため、ならびに重み読み出し動作を実行するために前記調整可能メモリスタ・デバイスを前記読み出し行制御ラインおよび前記読み出し列制御ラインに選択的に接続するための、パス・イネーブル制御信号に応答する、請求項９に記載のＲＰＵデバイス。
【請求項１１】
前記パルス生成器回路が、前記ＲＰＵデバイスの設置領域内に位置する局所専用パルス生成器回路を含む、請求項９または１０に記載のＲＰＵデバイス。
【請求項１２】
前記パルス生成器回路が、前記ＲＰＵデバイスの設置領域外に位置するグローバル・パルス生成器回路を含み、前記グローバル・パルス生成器回路が、複数のＲＰＵデバイスから成るアレイ内の少なくとも１つの他のＲＰＵデバイスと共有される、請求項９または１０に記載のＲＰＵデバイス。
【請求項１３】
前記重み更新制御回路が、第１の電流源、第２の電流源、およびキャパシタを含み、前記調整可能抵抗デバイスが、読み出しトランジスタを含み、
前記キャパシタが、前記ＲＰＵデバイスのための重み電圧を記憶するように構成され、
前記読み出しトランジスタが、ゲート端子、第１のソース／ドレイン端子、および第２のソース／ドレイン端子を含み、前記ゲート端子が、前記キャパシタに接続され、前記第１のソース／ドレイン端子が、前記読み出し行制御ラインに接続され、前記第２のソース／ドレイン端子が、前記読み出し列制御ラインに接続され、
前記読み出しトランジスタが、前記読み出し行制御ラインおよび前記読み出し列制御ラインに印加される読み出し制御信号に応答して、前記読み出しトランジスタの前記ゲート端子に印加される前記キャパシタの前記重み電圧に応答する重み電流を生成するように構成され、
前記重み更新累積回路から出力される前記重み更新制御信号に応答して、前記重み更新制御回路が、（ｉ）前記キャパシタの重み電圧を一単位電圧変化＋ΔＶだけ増加させるために前記キャパシタに充電電流を印加するように、前記第１の電流源を選択的にアクティブ化すること、および（ｉｉ）前記キャパシタの重み電圧を一単位電圧変化−ΔＶだけ減少させるために前記キャパシタに放電電流を印加するように、前記第２の電流源を選択的にアクティブ化すること、のうちの１つを行うように構成される、請求項１に記載のＲＰＵデバイス。
【請求項１４】
請求項１に記載の前記ＲＰＵデバイスを含む、ＲＰＵクロスバー・アレイ・システム。
【請求項１５】
方法であって、
調整可能抵抗デバイスを含む抵抗型処理ユニット（ＲＰＵ）・デバイスの重み値を更新するための重み更新動作を実行することを含み、前記重み更新動作が、
前記ＲＰＵデバイスのための重み更新累積値ｈｉｊを維持することと、
前記ＲＰＵデバイスに接続された更新行制御ラインおよび更新列制御ライン上に印加される入力ベクトルの確率的ビット・ストリームの検出された一致に応答して、前記重み更新累積値ｈｉｊを一単位更新値Δｈだけ調整することと、
累積重み値ｈｉｊが事前定義された閾値に到達することに応答して重み更新制御信号を生成することと、
前記重み更新制御信号に応答して、前記調整可能抵抗デバイスのコンダクタンス・レベルを一単位コンダクタンス値Δｇだけ調整することであって、前記一単位コンダクタンス値Δｇが、前記ＲＰＵデバイスの一単位重み値Δｗに対応する、前記調整することと、
を含む、方法。
【請求項１６】
前記ＲＰＵデバイスの重み値ｗｉｊを読み出すための重み読み出し動作を実行することをさらに含み、前記重み読み出し動作が、
前記調整可能抵抗デバイスに接続された読み出し行制御ラインおよび読み出し列制御ライン上に読み出し制御電圧を印加することと、
前記読み出し制御電圧に応答して前記調整可能抵抗デバイスによって生成される読み出し電流を処理することであって、前記読み出し電流が、前記ＲＰＵデバイスの重み値ｗｉｊに対応する、前記処理することと、を含み、
前記重み読み出し動作が、前記重み更新動作の前記重み更新累積値を調整することと同時に実行される、請求項１５に記載の方法。
【請求項１７】
前記重み更新累積値を調整することが、双方向デジタル・カウンタのカウント値を調整することを含み、前記重み更新制御信号を生成することが、前記カウント値が事前定義されたカウント値に到達するときにキャリー制御信号を生成することを含む、請求項１５または１６に記載の方法。
【請求項１８】
前記重み更新制御信号を生成することが、前記キャリー制御信号に応答してプログラミング電圧パルスを生成することと、前記調整可能抵抗デバイスの前記コンダクタンス・レベルを一単位コンダクタンス値Δｇだけ調整するために前記プログラミング電圧パルスを前記調整可能抵抗デバイスに印加することと、を含む、請求項１７に記載の方法。
【請求項１９】
前記調整可能抵抗デバイスの前記コンダクタンス・レベルの調整に続いて前記双方向デジタル・カウンタのカウント値を事前定義された初期化カウント値にリセットするために、前記双方向デジタル・カウンタのリセット制御ポートに入力されるリセット制御信号を生成することをさらに含む、請求項１８に記載の方法。
【請求項２０】
前記調整可能抵抗デバイスが、読み出しトランジスタ、および前記読み出しトランジスタのゲート端子に接続されたキャパシタを含み、前記キャパシタが、前記ＲＰＵデバイスについての重み電圧を記憶するように構成され、
前記重み更新制御信号に応答して前記調整可能抵抗デバイスのコンダクタンス・レベルを調整することが、
前記キャパシタの重み電圧を一単位電圧変化＋ΔＶだけ増加させるために前記キャパシタに充電電流を印加するように、第１の電流源を選択的にアクティブ化すること、および
前記キャパシタの重み電圧を一単位電圧変化−ΔＶだけ減少させるために前記キャパシタに放電電流を印加するように、第２の電流源を選択的にアクティブ化すること、
のうちの少なくとも１つを含む、請求項１５に記載の方法。
【国際調査報告】
2021518008.tif 000024
2021518008.tif 000025