(57)【要約】【課題】抵抗型処理ユニット（ＲＰＵ）アレイを提供する。【解決手段】一組の導電性列ワイヤは、一組の導電性行ワイヤと一組の導電性列ワイヤとの間の交差部にクロスポイントを形成するように構成される。複数の２端子ＲＰＵは、ヒステリシスによって定義されたコンダクタンス状態を各々が有するヒステリシス２端子ＲＰＵであり、クロスポイントの各々に、複数の２端子ＲＰＵのうちの２端子ＲＰＵが位置する。【選択図】図３３
2020514886.tif 000002
【特許請求の範囲】
【請求項１】
抵抗型処理ユニット（ＲＰＵ）アレイであって、
一組の導電性行ワイヤと、
一組の導電性列ワイヤであり、前記一組の導電性行ワイヤと前記一組の導電性列ワイヤとの間の交差部に複数のクロスポイントを形成するように構成された、前記一組の導電性列ワイヤと、
ヒステリシスによって定義されたコンダクタンス状態を各々が有する複数のヒステリシス２端子ＲＰＵである複数の２端子ＲＰＵであり、前記複数のクロスポイントの各々に、前記複数の２端子ＲＰＵのうちの２端子ＲＰＵが位置する、前記複数の２端子ＲＰＵと
を備える、抵抗型処理ユニット（ＲＰＵ）アレイ。
【請求項２】
前記コンダクタンス状態の変化が所定の量のパルスの遅延を有するようにするよう、前記複数の２端子ＲＰＵの前記ヒステリシスが構成された、請求項１に記載のＲＰＵアレイ。
【請求項３】
前記所定の量のパルスがいくつかの更新パルスである、請求項２に記載のＲＰＵアレイ。
【請求項４】
前記更新パルスが、前記一組の導電性行ワイヤと前記一組の導電性列ワイヤの両方に印加されるように構成された、請求項３に記載のＲＰＵアレイ。
【請求項５】
前記コンダクタンス状態の前記変化が、前記コンダクタンス状態の第１の方向から第２の方向への切り換わり、または前記コンダクタンス状態の前記第２の方向から前記第１の方向への切り換わりと定義された、請求項２に記載のＲＰＵアレイ。
【請求項６】
前記コンダクタンス状態の前記第１の方向から前記第２の方向への切り換わりと、前記コンダクタンス状態の前記第２の方向から前記第１の方向への切り換わりとで、前記遅延が等しい、請求項５に記載のＲＰＵアレイ。
【請求項７】
前記更新パルスが、正パルスと負パルスとの間で切り換わる、請求項３に記載のＲＰＵアレイ。
【請求項８】
前記正パルスが、前記コンダクタンス状態の前記第１の方向を生じさせ、前記負パルスが、前記コンダクタンス状態の前記第２の方向を生じさせる、請求項７に記載のＲＰＵアレイ。
【請求項９】
前記複数の２端子ＲＰＵが、第１の方向の傾きと第２の方向の傾きとの間の前記コンダクタンス状態の不均衡を有する不均衡デバイスであり、
前記複数の２端子ＲＰＵ内の前記ヒステリシスが前記不均衡を低下させる、
請求項１に記載のＲＰＵアレイ。
【請求項１０】
抵抗型処理ユニット（ＲＰＵ）アレイを形成する方法であって、前記方法が、
一組の導電性行ワイヤを提供すること、
一組の導電性列ワイヤであり、前記一組の導電性行ワイヤと前記一組の導電性列ワイヤとの間の交差部に複数のクロスポイントを形成するように構成された、前記一組の導電性列ワイヤを提供すること、および
ヒステリシスによって定義されたコンダクタンス状態を各々が有する複数のヒステリシス２端子ＲＰＵである複数の２端子ＲＰＵであり、前記複数のクロスポイントの各々に、前記複数の２端子ＲＰＵのうちの２端子ＲＰＵが位置する、前記複数の２端子ＲＰＵを提供すること
を含む方法。
【請求項１１】
前記コンダクタンス状態の変化が所定の量のパルスの遅延を有するようにするよう、前記複数の２端子ＲＰＵの前記ヒステリシスが構成された、請求項１０に記載の方法。
【請求項１２】
前記所定の量のパルスがいくつかの更新パルスである、請求項１１に記載の方法。
【請求項１３】
前記更新パルスが、前記一組の導電性行ワイヤと前記一組の導電性列ワイヤの両方に印加されるように構成された、請求項１２に記載の方法。
【請求項１４】
前記コンダクタンス状態の前記変化が、前記コンダクタンス状態の第１の方向から第２の方向への切り換わり、または前記コンダクタンス状態の前記第２の方向から前記第１の方向への切り換わりと定義された、請求項１１に記載の方法。
【請求項１５】
前記コンダクタンス状態の前記第１の方向から前記第２の方向への切り換わりと、前記コンダクタンス状態の前記第２の方向から前記第１の方向への切り換わりとで、前記遅延が等しい、請求項１４に記載の方法。
【請求項１６】
前記更新パルスが、正パルスと負パルスとの間で切り換わる、請求項１２に記載の方法。
【請求項１７】
前記正パルスが、前記コンダクタンス状態の前記第１の方向を生じさせ、前記負パルスが、前記コンダクタンス状態の前記第２の方向を生じさせる、請求項１６に記載の方法。
【請求項１８】
前記複数の２端子ＲＰＵが、第１の方向の傾きと第２の方向の傾きとの間の前記コンダクタンス状態の不均衡を有する不均衡デバイスであり、
前記複数の２端子ＲＰＵ内の前記ヒステリシスが前記不均衡を低下させる、
請求項１０に記載の方法。
【請求項１９】
ヒステリシス動作のための方法であって、前記方法が、
少なくとも１つのヒステリシス抵抗型処理ユニット（ＲＰＵ）によって更新パルスが受け取られるようにすること、および
前記少なくとも１つのヒステリシスＲＰＵが、前記更新パルスに応答して、コンダクタンス状態の変化を有するようにすること
を含み、前記コンダクタンス状態の前記変化が、所定の量の前記更新パルスの遅延を有する、
方法。
【請求項２０】
前記コンダクタンス状態の前記変化が、前記コンダクタンス状態の第１の方向から第２の方向への切り換わり、または前記コンダクタンス状態の前記第２の方向から前記第１の方向への切り換わりである、請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の発明者または共同発明者による先行技術の開示に関する記述
以下の開示は、米国特許法１０２（ｂ）（１）（Ａ）の下に提出されたものである。
【０００２】
開示："Acceleration of Deep Neural Network Training with Resistive Cross-Point Devices: Design Considerations" by Tayfun Gokmen and Yurii Vlasov, published July 21,2016 in Front. Neurosci. 10:333, pages 1-13。この開示は参照によって本明細書に組み込まれている。
【背景技術】
【０００３】
本発明は一般に計算システムに関し、より詳細には、ニューラル・ネットワーク訓練のためのヒステリシス更新（hysteretic update）を含む抵抗型処理ユニット（resistive processing unit：ＲＰＵ）デバイスに関する。
【０００４】
「機械学習」は、データから学習する電子システムの主たる機能を大まかに記述するために使用されている。機械学習および認知科学において、人工ニューラル・ネットワーク（artificial neural network：ＡＮＮ）または深層ニューラル・ネットワーク（deep neural network：ＤＮＮ）は、動物の生物学的ニューラル・ネットワーク、特に脳から発想を得た統計的学習モデルの一群である。ＡＮＮを使用して、多数の入力に依存する全体に未知のシステムおよび機能を推定または近似することができる。ＡＮＮは、２端子ＲＰＵのクロスバー・アレイから形成される。クロスバー・アレイは、ＡＮＮアーキテクチャ、ニューロモーフィック（neuromorphic）マイクロチップおよび超高密度不揮発性メモリを含むさまざまな電子回路およびデバイスを形成するために使用される高密度、低コストの回路アーキテクチャである。基本的なクロスバー・アレイ構成は、一組の導電性行ワイヤと、この一組の導電性行ワイヤと交差するように形成された一組の導電性列ワイヤとを含む。これらの２組のワイヤ間の交差部は、薄膜材料から形成することができるいわゆるクロスポイント・デバイスによって分離されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】"Acceleration of Deep Neural Network Training with Resistive Cross-Point Devices: Design Considerations" by Tayfun Gokmen and Yurii Vlasov, published July 21,2016 in Front. Neurosci. 10:333, pages 1-13
【非特許文献２】"Learning representations byback-propagating errors" in Nature 323, 533-536, by Rumelhart,D. E., Hinton, G. E., and Williams, R. J. (1986)
【非特許文献３】Jensen et al., 2013
【発明の概要】
【発明が解決しようとする課題】
【０００６】
抵抗型処理ユニット（ＲＰＵ）アレイ、抵抗型処理ユニット（ＲＰＵ）アレイを形成する方法およびヒステリシス動作のための方法を提供する。
【課題を解決するための手段】
【０００７】
１つまたは複数の実施形態によれば、抵抗型処理ユニット（ＲＰＵ）アレイが提供される。このＲＰＵアレイは、一組の導電性行ワイヤと、一組の導電性列ワイヤであり、一組の導電性行ワイヤと一組の導電性列ワイヤとの間の交差部に複数のクロスポイントを形成するように構成された、一組の導電性列ワイヤとを含む。複数の２端子ＲＰＵは、ヒステリシスによって定義されたコンダクタンス状態を各々が有する複数のヒステリシス２端子ＲＰＵである。複数のクロスポイントの各々に、複数の２端子ＲＰＵのうちの２端子ＲＰＵが位置する。
【０００８】
１つまたは複数の実施形態によれば、抵抗型処理ユニット（ＲＰＵ）アレイを形成する方法が提供される。この方法は、一組の導電性行ワイヤを提供すること、および一組の導電性列ワイヤであり、一組の導電性行ワイヤと一組の導電性列ワイヤとの間の交差部に複数のクロスポイントを形成するように構成された、一組の導電性列ワイヤを提供することを含む。この方法は、ヒステリシスによって定義されたコンダクタンス状態を各々が有する複数のヒステリシス２端子ＲＰＵである複数の２端子ＲＰＵを提供することを含む。複数のクロスポイントの各々に、複数の２端子ＲＰＵのうちの２端子ＲＰＵが位置する。
【０００９】
１つまたは複数の実施形態によれば、ヒステリシス動作のための方法が提供される。この方法は、少なくとも１つのヒステリシス抵抗型処理ユニット（ＲＰＵ）によって更新パルスが受け取られるようにすること、および前記少なくとも１つのヒステリシスＲＰＵが、更新パルスに応答して、コンダクタンス状態の変化を有するようにすることを含む。コンダクタンス状態の変化は、所定の量の更新パルスの遅延を有する。
【００１０】
次に、添付図面を参照して本発明の実施形態を単なる例として説明する。
【図面の簡単な説明】
【００１１】
【図１】各クロスポイントにおいて実行される式（１）の本来の重み更新規則の略図である。
【図２】１つまたは複数の実施形態による、各クロスポイントにおいて単純な「ＡＮＤ」演算を使用する式（２）の確率的更新規則の略図である。
【図３】１つまたは複数の実施形態による、上昇コンダクタンス変化に対するＲＰＵデバイスによる確率的更新規則の実装を可能にするパルシング・スキームを示す図である。
【図４】１つまたは複数の実施形態による、下降コンダクタンス変化に対するＲＰＵデバイスによる確率的更新規則の実装を可能にするパルシング・スキームを示す図である。
【図５】１つまたは複数の実施形態による、式（２）に対する試験誤差のグラフである。
【図６】１つまたは複数の実施形態による、式（２）に対する試験誤差のグラフである。
【図７】１つまたは複数の実施形態による、ＲＰＵデバイスのさまざまな非線形応答を示す図である。
【図８】１つまたは複数の実施形態による、試験誤差のグラフである。
【図９】１つまたは複数の実施形態による、試験誤差のグラフである。
【図１０】１つまたは複数の実施形態による、試験誤差のグラフである。
【図１１】１つまたは複数の実施形態による、試験誤差のグラフである。
【図１２】１つまたは複数の実施形態による、試験誤差のグラフである。
【図１３】１つまたは複数の実施形態による、試験誤差のグラフである。
【図１４】１つまたは複数の実施形態による、試験誤差のグラフである。
【図１５】１つまたは複数の実施形態による、試験誤差のグラフである。
【図１６】１つまたは複数の実施形態による、試験誤差のグラフである。
【図１７】１つまたは複数の実施形態による、図１０〜１６のストレス試験のレーダ図である。
【図１８】１つまたは複数の実施形態による、２つ以上のパラメータの効果が組み合わされたときの訓練結果を示す図である。
【図１９】１つまたは複数の実施形態による、順方向（または逆方向）サイクル中の単一の列（または行）の動作を示す略図である。
【図２０】１つまたは複数の実施形態による、図１８のモデル３のネットワークに対する試験誤差のグラフである。
【図２１】１つまたは複数の実施形態による、加速器ＲＰＵチップのアーキテクチャの略図である。
【図２２】１つまたは複数の実施形態による、ＲＰＵデバイス上のさまざまなオン／オフ比に対する許容可能なノイズ・レベルのグラフである。
【図２３】１つまたは複数の実施形態による、さまざまなＲＰＵシステム設計と現状技術との比較の概要を示す表である。
【図２４】１つまたは複数の実施形態による、ＲＰＵデバイス仕様の概要を示す表である。
【図２５】１つまたは複数の実施形態による、ヒステリシスを有しない不均衡（imbalanced）ＲＰＵデバイスのコンダクタンス変化に対してヒステリシスを有する不均衡ＲＰＵデバイスのコンダクタンス変化を示す図である。
【図２６】１つまたは複数の実施形態による、ヒステリシス量と更新パルスの数との間の関係を示すヒステリシス・モデルを示す図である。
【図２７】１つまたは複数の実施形態による、異なる程度のヒステリシスを用いた訓練結果を示す試験誤差のグラフである。
【図２８】１つまたは複数の実施形態による、異なる程度のヒステリシスを用いた訓練結果を示す試験誤差のグラフである。
【図２９】１つまたは複数の実施形態による、ヒステリシスのパルス数を示す試験誤差のグラフである。
【図３０】１つまたは複数の実施形態による、ヒステリシスが不均衡係数（imbalance factor）を再正規化することを示すグラフである。
【図３１】１つまたは複数のデバイスによる、抵抗型処理ユニット・アレイを形成する方法のフロー・チャートである。
【図３２】１つまたは複数の実施形態による、ヒステリシス動作のための方法のフロー・チャートである。
【図３３】１つまたは複数の実施形態による、例示的なＲＰＵアレイを示す図である。
【発明を実施するための形態】
【００１２】
ＡＮＮまたは深層ニューラル・ネットワーク（ＤＮＮ）はしばしば、模擬「ニューロン」として機能し、電子信号の形態の「メッセージ」を相互に交換する、相互接続されたプロセッサ要素のいわゆる「ニューロモーフィック」システムとして実施される。生物学的ニューロン間でメッセージを運ぶシナプス神経伝達物質接続のいわゆる「可塑性（plasticity）」と同様に、模擬ニューロン間で電子的メッセージを運ぶＡＮＮ内の接続には、所与の接続の強さまたは弱さに対応する数値重みが与えられる。それらの重みは、経験に基づいて調整および調節することができ、このことは、ＡＮＮを、入力に対して適応可能とし、学習が可能なものとする。例えば、手書き文字認識用のＡＮＮは、入力画像の画素によって活性化され得る一組の入力ニューロンによって定められる。ネットワークの設計者によって決定された関数によって重み付けおよび変換がなされた後、これらの入力ニューロンの活性化は、しばしば「隠れ」ニューロンと呼ばれる他の下流ニューロンに渡される。このプロセスが、出力ニューロンが活性化されるまで繰り返される。活性化された出力ニューロンは、どの文字が読み取られたのかを決定する。
【００１３】
クロスポイント・アレイまたはクロスワイヤ・アレイとしても知られるクロスバー・アレイは、ＡＮＮアーキテクチャ、ニューロモーフィック・マイクロチップおよび超高密度不揮発性メモリを含むさまざまな電子回路およびデバイスを形成するために使用される高密度、低コストの回路アーキテクチャである。基本的なクロスバー・アレイ構成は、一組の導電性行ワイヤと、この一組の導電性行ワイヤと交差するように形成された一組の導電性列ワイヤとを含む。これらの２組のワイヤ間の交差部は、薄膜材料から形成することができるいわゆるクロスポイント・デバイスによって分離されている。
【００１４】
クロスポイント・デバイスは、事実上、ＡＮＮのニューロン間の重み付き接続として機能する。高いエネルギー効率を有するシナプス可塑性をエミュレートするために、ナノスケールの２端子デバイス、例えば「理想的な」コンダクタンス状態切り換え特性を有するメモリスタ（memristor）がしばしば、クロスポイント・デバイスとして使用される。理想的なメモリスタ材料のコンダクタンス状態（例えば抵抗の逆数）は、行および列ワイヤの個々のワイヤ間に印加される電圧を制御することによって変更することができる。高導通状態または低導通状態を達成する、交差部におけるメモリスタ材料のコンダクタンス状態の変更によって、ディジタル・データを格納することができる。メモリスタ材料のコンダクタンス状態を選択的に設定することによって、メモリスタ材料を、２つ以上の相異なるコンダクタンス状態を維持するようにプログラムすることもできる。材料の両端に電圧を印加し、標的クロスポイント・デバイスを流れる電流を測定することによって、メモリスタ材料のコンダクタンス状態を読み出すことができる。
【００１５】
電力消費を制限するため、ＡＮＮチップ・アーキテクチャのクロスポイント・デバイスはしばしば、オフライン学習技法を利用するように設計され、この場合、最初の訓練段階が解決された後、標的関数の近似は変化しない。オフライン学習は、クロスバー型ＡＮＮアーキテクチャのクロスポイント・デバイスを、非常に少ない電力しか消費しないように単純化することを可能にする。
【００１６】
電力消費をより少なくする潜在性があるにもかかわらず、典型的には、訓練データに対して入力−出力対を整合させるため、訓練中にＡＮＮモデル内の調整可能なかなりの数のパラメータ（例えば重み）を変更する必要があるために、オフライン訓練の実行は、困難かつリソース集約的なものとなり得る。したがって、電力節約型のオフライン学習技法を優先するためにＡＮＮアーキテクチャのクロスポイント・デバイスを単純化することは、典型的には、訓練速度および訓練効率が最適化されないことを意味する。
【００１７】
本発明の１つまたは複数の実施形態は、深層ニューラル・ネットワーク訓練に使用される抵抗型デバイスのアレイを提供する。深層ニューラル・ネットワーク訓練の例を論じることがあるが、実施形態は、本明細書で議論されるタイプの例だけに限定されないことを理解すべきである。抵抗型デバイスは、抵抗型処理ユニット（ＲＰＵ）、クロスポイント・デバイスなどと呼ばれ、１つまたは複数の実施形態は、ＲＰＵデバイスをどのように利用すれば、完全に接続された層、畳み込み層などからなる深層ニューラル・ネットワークを訓練することができるのかを記述する。異なる不完全性を有するさまざまなＤＮＮ訓練をＲＰＵデバイス上で実行することを、必要なＲＰＵデバイス仕様から導き出すことができる。全てのデバイス仕様の中で、上昇変化および下降変化に応答した非対称性は、例えばＲＰＵデバイス上で非対称性が最大５〜６％でしかないなど、最も小さな許容差（tolerance）を有する。１つまたは複数の実施形態において、実験者は、ヒステリシス更新をＲＰＵに導入することによって許容差をどのように増大させるのかを例示する。ヒステリシスはＲＰＵデバイスに意図的に組み込まれ、ヒステリシスＲＰＵデバイスはＤＮＮ訓練に使用される。これは、ヒステリシスが有害ではないためである（しかしながら、この手法が、現状技術のＲＰＵデバイスに対して反直観的（counterintuitive）であることがある）。
【００１８】
ＲＰＵデバイスにおける非対称性は、ＲＰＵデバイスのコンダクタンスの上昇変化および下降変化の不均衡を生じさせる。実施形態は、ＲＰＵデバイスにおける非対称性の問題に対処し、したがって不均衡を改善するように構成される。不均衡に対する許容差を大幅に増大させることができるように、実施形態は、ＲＰＵデバイスにヒステリシス更新を導入する。より詳細には、実施形態は、その切り換え挙動の中にヒステリシスを有するＲＰＵデバイスを用いてニューラル・ネットワーク訓練を実行する（この切り換え挙動は、更新に応答したコンダクタンスの上昇および下降切り換え挙動である）。ヒステリシスは有害ではないため、たとえヒステリシスＲＰＵデバイスが均衡している場合であっても（すなわち、そのコンダクタンスの上昇および下降変化が均衡を保っている場合であっても）、そのヒステリシスＲＰＵデバイスを利用することができる。
【００１９】
ヒステリシスを有するＲＰＵデバイスをどのように利用すれば、ＲＰＵデバイスのコンダクタンスの上昇および下降変化を改善することができるのかを例示するため、図２５は、１つまたは複数の実施形態によるヒステリシス・モデルを示す。図２５のヒステリシス・モデルは、（図１〜２４および２６〜３３に示されているものなど）本明細書で論じられているどのＲＰＵデバイスにも当てはまることを理解すべきである。このヒステリシス・モデルは、コンダクタンス値の上昇および下降変化に不均衡があるような非対称性を有するＲＰＵデバイスに対するものだが、このヒステリシス・モデルは、（非対称性を有しない）均衡したＲＰＵデバイスにも当てはまり得ることを理解すべきである。図２５のグラフ８０５は、ヒステリシスを有しない不均衡ＲＰＵデバイスの時間の経過に伴うコンダクタンス値を示し、またはより具体的には、そのようなデバイスのコンダクタンス値の変化を示す。グラフ８１５は、ヒステリシスを有する不均衡ＲＰＵデバイスの時間の経過に伴うコンダクタンス値（より具体的にはコンダクタンス値の変化）を示す。グラフ８１０は、ヒステリシスを有しないＲＰＵデバイスおよびヒステリシスを有するＲＰＵデバイスに入力された更新（例えばバックプロパゲーション（backpropagation）アルゴリズムによる更新重みサイクル・パルス）を示す。
【００２０】
グラフ８０５と８１０の両方のグラフから分かるように、グラフ８０５の入力更新パルスの符号（＋または−）の変化は、グラフ８０５および８１０においてコンダクタンス値の方向変化を引き起こす。更新パルスの正符号（＋）は、コンダクタンス値の増大を引き起こし、これが、両方のグラフ８０５および８１５のコンダクタンス曲線の正の勾配（すなわち上向きの勾配）として示されている。更新パルスの負符号（−）は、コンダクタンス値の低下を引き起こし、これが、両方のグラフ８０５および８１５のコンダクタンス曲線の負の勾配（すなわち下向きの勾配）として示されている。しかしながら、グラフ８１５に示されたヒステリシスＲＰＵデバイスは、コンダクタンス値の増大（すなわち正の勾配）からコンダクタンス値の低下（負の勾配）への切り換えおよびコンダクタンス値の低下からコンダクタンス値の増大への切り換えの遅延を有する。ＲＰＵデバイスのこの非対称性は補正するのが難しいことが認識される。しかしながら、（切り換えの遅延を引き起こす）ヒステリシスは、非対称性に起因する不均衡に対するＲＰＵデバイスの許容差を改善する。
【００２１】
ニューラル・ネットワーク訓練中に各ＲＰＵデバイスは多くの更新を得る。デバイスが、（＋）方向および（−）方向に沿ってランダムな更新を得るとき、均衡ＲＰＵデバイスでは、これらのランダムの更新が正味の重み変化を相殺し、正味の重み変化を引き起こさない。しかしながら、非対称ＲＰＵデバイスでは、これらのランダムな更新がドリフト成分を生じさせ、非対称性方向に沿って重みを移動させる傾向がある。非対称性に起因するこの望まれていないドリフト成分は、実施形態において論じられるように、ヒステリシス・デバイスによって軽減される。実施形態によれば、ヒステリシスは、非常にランダムな上昇および下降重み更新をフィルタにかけ、したがって非対称性の短所を効果的に低減させる。
【００２２】
図２６は、１つまたは複数の実施形態による、ヒステリシス量と更新パルスの数との間の関係を示すヒステリシス・モデルを示す。図２６には、一例として、ヒステリシスを有する不均衡ＲＰＵデバイスのグラフ８１５が示されている。ヒステリシス量ｈｎは、コンダクタンスの平坦な勾配またはゼロ勾配として識別され、ヒステリシスは、上昇および下降コンダクタンス値の変化／切り換えで生じる。ヒステリシス量ｈｎは、方向を変化させる（すなわちコンダクタンス値を上昇から下降へまたは下降から上昇へ変化させる）のに必要なパルスの数である。ヒステリシス量ｈｎは設定／設計することができる。一実施形態では、ヒステリシス量ｈｎを２更新パルス、１０更新パルス、１００更新パルスなどに設定することができる。
【００２３】
さらに、コンダクタンスの（−）変化と（＋）変化に対するヒステリシス量は等しい。すなわち、ＲＰＵデバイス内でのヒステリシスのそれぞれの発生に対して、ヒステリシスの時間間隔は同じである。Δｇは、ｘｉおよびδｊにおいて印加された電圧シーケンスに応答したＲＰＵのコンダクタンス値の変化であることに留意されたい。したがって、Δｇは、電圧パルス（すなわち更新パルス）に対するＲＰＵの応答である。異なるＲＰＵデバイスは、例えば製造の違いに起因する、正パルスに起因するコンダクタンス値の異なる変化量（Δｇ＋ｍｉｎ）、および負パルスに起因するコンダクタンス値の異なる変化量（Δｇ−ｍｉｎ）を示し得る。さらに、正および負のパルシング・スキームによってどれくらいの重み変化Δｗが得られるのかの平均が存在する。異なるΔｗ＋ｍｉｎおよびΔｗ−ｍｉｎを有するＲＰＵアレイ中の非対称ＲＰＵデバイスは、ＤＮＮ訓練に悪影響を与える。
【００２４】
以下に、抵抗型クロスポイント・デバイス（すなわちＲＰＵデバイス）を用いた（例えばＤＮＮ訓練などの）訓練に関するさらなる議論を提供する。理解および説明を容易にするため副見出しが利用される。
【００２５】
先行技術の洗練された音声および物体認識法を凌ぐ性能によって、ＤＮＮは大きな成功を示した。しかしながら、ＤＮＮの訓練は、大量の計算リソースおよび莫大な訓練時間を必要とする極めて計算集約的なタスクであり、このことが、ＤＮＮのさらなる応用を妨げている。例えば、１０００台のマシンを含むクラスタ上で３日間訓練された１０億個の接続を有するＤＮＮでは、７０％の相対的向上が示された。
【００２６】
ＤＮＮの訓練は一般に、本質的に局所的で並列なバックプロパゲーション・アルゴリズムに依存する。バックプロパゲーション・アルゴリズムのさらなる詳細については、参照により本明細書に組み込まれる"Learning representations by back-propagating errors" inNature 323, 533-536, by Rumelhart, D. E., Hinton, G.E., and Williams, R. J. (1986)を参照することができる。この局所性および並列性を利用している、ＤＮＮ訓練を加速するためのさまざまハードウェア手法が探査され、ＧＰＵ、ＦＰＧＡまたは特別に設計されたＡＳＩＣを用いる現在の発展につながる異なるレベルの成功を納めた。アルゴリズムの局所性および並列性を完全に利用することによってさらなる加速が可能である。Ｎ個のニューロンをＮ個のニューロンにマップする完全に接続されたＤＮＮ層に関しては、局所格納および同じノード上での重み値の処理を使用してデータ移動を最小化し、ノードを一緒に接続して、ＤＮＮ全体が調和し得る大規模なＮ×Ｎシストリック（systolic）アレイとすることにより、大幅な加速を達成することができる。したがって、Ｏ（Ｎ２）の通常の時間複雑性（time complexity）の代わりに、この問題を、アレイ・サイズから独立した一定の時間Ｏ（１）に低減させることができる。しかしながら、対処可能な問題のサイズは、アレイ内のノードの数に限定され、この数を１０億までスケールアップすることは、たとえ最も進歩したＣＭＯＳ技術をもってしても困難である。最近、生物学的系において観察されるスパイク・タイミング依存可塑性（spike-timing-dependent plasticity：ＳＴＤＰ）から発想を得た学習規則を有するニューラル・ネットワークを実装するために、相変化メモリ（phase change memory：ＰＣＭ）および抵抗型ランダム・アクセス・メモリ（resistive random access memory：ＲＲＡＭ）などの不揮発性メモリ（non-volatile memory：ＮＶＭ）技術に基づく新規のナノ電子デバイスの概念が探査された。より最近になって、バックプロパゲーション・アルゴリズムを使用したＤＮＮ訓練を加速させるためにそれらを実装することが検討され、２７×から９００×の範囲の加速係数（acceleration factor）、さらには２１４０×の加速係数、ならびに電力および面積の大幅な低減が報告された。以前に開発されたメモリ技術を使用するこれらのボトムアップ手法は全て、非常に有望であるように思われる。しかしながら、推定される加速係数は、ＮＶＭセルとしてのそれらの用途に固有のデバイス仕様によって制限される。メモリ用途に対して有益であるかまたは無関係であると通常は考えられる、高いオン／オフ比、ディジタル・ビットごとの格納および非対称なセット／リセット動作などのデバイス特性が、ＤＮＮ訓練の加速に対する限界となっている。周辺回路および全体システムを適切に設計することによって、これらの非理想的なデバイス特性を潜在的に補償することができるが、それも部分的でしかなく、その対価として演算時間が大幅に増大する。
【００２７】
対照的に、実験者は、１つまたは複数の実施形態によるトップダウン型の手法を提供する。この手法では、抵抗型デバイスに対して特定の要件を課すシステムおよびＣＭＯＳ回路の設計によって、ＤＮＮ訓練の極限の加速（ultimate acceleration）が達成される。実験者は、重みを同時に格納および処理することができ、ファウンドリＣＭＯＳ技術によって１０億個のノードにスケーリング可能な抵抗型処理ユニット（ＲＰＵ）デバイスの概念を提供する。現状技術の他の手法とは対照的に、この分析から得られる最終的なＲＰＵデバイス特性は、単一のデバイスが、アルゴリズムが必要とする全ての演算を、追加の回路コンポーネントなしで実行することを可能にする。推定によれば、現実的な電力および面積の制約を有する単一のチップ上で、３０，０００×に近い加速係数が達成可能である。
【００２８】
ＲＰＵデバイス概念の定義
バックプロパゲーション・アルゴリズムは３つのサイクルからなる。これらの３つサイクルは、順方向、逆方向および重み更新であり、これらのサイクルは、収束判定基準が満たされるまで何度も繰り返される。順方向および逆方向サイクルは主に、順方向および逆方向のベクトル−行列乗算を計算することを含む。この演算は、２端子抵抗型処理ユニットの２Ｄクロスバー・アレイ上で実行することができる。順方向サイクルでは、クロスバー・アレイ内の格納されたコンダクタンス値が行列を形成し、その行列において、各入力行に入力ベクトルが電圧パルスとして伝送される。逆方向サイクルでは、入力として列から電圧パルスが供給されたときに、行列の転置行列上でベクトル−行列積が計算される。これらの演算は、必要なＯ（１）時間複雑性を達成するが、これが達成されるのは、訓練アルゴリズムの３つのサイクルのうちの２つのサイクルに対してだけである。
【００２９】
順方向および逆方向サイクルとは対照的に、アレイ・サイズから独立して、抵抗型デバイスの２Ｄクロスバー・アレイ上で、局所的にかつ全て並列に、重み更新を実装することは、困難のように見えることがある。重み更新は、図１に示されているように、各クロスポイントで局所的に実行される乗算演算とインクリメンタル重み更新とからなるベクトル−ベクトル外積を計算することを含む。対応する更新規則は通常、次のように表現される。
ｗｉｊ←ｗｉｊ＋ηｘｉδｊ    式（１）
【００３０】
上式で、ｗｉｊは、第ｉ行第ｊ列の重み値を表し（単純にするために層添字は省略されている）、ｘｉは、入力ニューロンにおける活性、δｊは、出力ニューロンによって計算された誤差、ηは、大域的学習率（global learning rate）である。第ｉ行と第ｊ列はＲＰＵデバイスにおいて交差する。
【００３１】
重みの格納と処理の両方を実行することができる２端子デバイス（ＲＰＵ）のアレイ上での局所的で並列な更新を実装するため、実験者は最初に、確率的計算技法を使用することによって、この乗算演算自体を大幅に単純にすることに決めた。２つの確率的ストリームを使用することによって、この乗算演算を単純なＡＮＤ演算にすることができることが示された。例えば、図２は、ニューロンからコード化された数（ｘｉおよびδｊ）が、確率的翻訳機（stochastic translator：ＳＴＲ）を使用して確率的ビット・ストリームに翻訳される、確率的更新規則を示す。それらの確率的ビット・ストリームは次いでクロスバー・アレイに送られ、そこでは、各ＲＰＵデバイスが、ｘｉからのビットとδｊからのビットが一致したときに、そのコンダクタンス（ｇｉｊ）をわずかに変化させる。このスキームにおいて、実験者は、更新規則を次のように書くことができる。
【数１】
2020514886.tif 000003
【００３２】
上式で、ＢＬは、更新サイクル中に使用される、ＳＴＲの出力における確率的ビット・ストリームの長さ、Δｗｍｉｎは、単一の一致事象に起因する重み値の変化、
【数２】
2020514886.tif 000004
および
【数３】
2020514886.tif 000005
は、ベルヌーイ過程によって特徴づけられる確率変数であり、上付き添字ｎは、試験シーケンスにおけるビット位置を表す。
【数４】
2020514886.tif 000006
および
【数５】
2020514886.tif 000007
が１に等しい確率はそれぞれＣｘｉおよびＣδｊによって与えられる。Ｃは、ＳＴＲにおける利得係数である。
【００３３】
式（２）の確率的更新規則を可能にする１つのパルシング・スキームが図３に示されている。行（Ａｉ）および列（Ｂｊ）上の対応するそれぞれのＳＴＲから、正および負の振幅を有する電圧パルスが送られる。２値ストリームにコード化された浮動小数点数とは対照的に、確率的ストリームに翻訳された対応する数は、そのようなパルスの母集団全体によって表される。クロスポイントにおいて２端子ＲＰＵデバイスが一致事象を区別するため、単一のパルス振幅がデバイスの切り換え電圧（ＶＳ）の半分であるとき、デバイスのコンダクタンス値はあまり大きく変化すべきではない。しかしながら、２つのパルスが一致し、ＲＰＵデバイスが完全な電圧（ＶＳ）を感知したとき、コンダクタンスは非ゼロ量Δｇｍｉｎだけ変化すべきである。パラメータΔｇｍｉｎは、周辺回路によって定義される増幅係数によってΔｗｍｉｎに比例する。コンダクタンスの上昇変化と下降変化の両方を可能にするため、図４に示されているように、更新サイクル中にパルスの極性を切り換えることができる。この乗算の符号は、更新サイクル中に使用されるパルスの極性によって決定される。したがって、ｘｉ＞０の場合、この符号付き乗算は、上昇サイクルと下降サイクルの両方のサイクル中にｘｉ＞０に対応する行をポピュレートすることによって実行することができ、一方、列は、δｊの符号に応じて上昇サイクルまたは下降サイクルのどちらかで選択的にポピュレートされる。一部の行について負値（ｘｉ＜０）が存在する場合には同様の演算を繰り返すことができる。この提案されたパルシング・スキームは、単純に一致事象の統計に依存することによって、アレイ内の全てのＲＰＵデバイスが並列に動作し、乗算演算を局所的に実行することを可能にし、したがって、訓練アルゴリズムの重み更新サイクルに対するＯ（１）時間複雑性を達成する。
【００３４】
図１は、各クロスポイントにおいて実行される式（１）の本来の重み更新規則の略図であり、図２は、各クロスポイントにおいて単純なＡＮＤ演算を使用する式（２）の確率的更新規則の略図であることを認識すべきである。ＲＰＵデバイスによる確率的更新規則の実装を可能にするこのパルシング・スキームは、上昇コンダクタンス変化については図３に、下降コンダクタンス変化については図４に示されている。
【００３５】
確率的更新規則を使用するＲＰＵアレイを用いたネットワーク訓練
この手法の妥当性を試験するため、実験者は、それぞれ７８４、２５６、１２８および１０個のニューロンを有する完全に接続された層からなる深層ニューラル・ネットワークを用いて達成された分類の正確さを比較した。このネットワークは、６０，０００例の手書き数字の画像からなる標準ＭＮＩＳＴ（Mixed National Institute of Standards and Technology）訓練データセットを用い、クロスエントロピー目的関数およびバックプロパゲーション・アルゴリズムを使用して訓練される。２８×２８画素の各画像の未処理の画素値が入力として与えられ、一方、ロジスティック・シグモイドおよびソフトマックス（softmax）活性化関数がそれぞれ隠れ層および出力層で使用される。両方の活性化関数に対する温度パラメータは１であると仮定される。
【００３６】
図５、６および７（全体を図５〜７と呼ぶ）は、ＭＮＩＳＴデータセットを用いたＤＮＮの試験誤差に関する。図６では、１、２および３と記された線がそれぞれ、ＢＬ＝１０ならびに非線形性比ｋ＝０．５、０．４および０．１を有する確率的モデルに対応する。図７は、ｋ＝０、０．５および１でのＲＰＵデバイスのさまざまな非線形応答を示す。
【００３７】
より詳細には、図５および６は、１０，０００個の画像からなるＭＮＩＳＴ試験データセットに対する一組の分類誤差曲線を示す。図５の白い円で示された曲線は、浮動小数点乗算演算を用いた式（１）によって定義される従来の更新規則を使用してネットワークが訓練されるベースライン・モデルに対応し、１、２および３と記された線はそれぞれ、確率的ビット長ＢＬ＝１、２および１０を有する式（２）の確率的モデルに対応する。ここでは、以下の実験の全体を通じてミニバッチ・サイズ１が選択される。訓練は、訓練データセット中の６０，０００個の全ての画像に対して繰返し実行され、６０，０００個の画像が単一の訓練エポック（training epoch）を構成する。エポック０〜１０、１１〜２０および２１〜３０に対してそれぞれη＝０．０１、０．００５および０．００２５の学習率が使用される。このベースライン・モデルは、３０エポックで、この試験データに関する２．０％の分類誤差に到達する。
【００３８】
ベースライン・モデルと、式（２）の確率的更新規則を訓練が使用する確率的モデルとの間の公平な比較を実施するためには、学習率が整合する必要がある。最も一般的な形態では、確率的モデルに対する重み値の平均変化を次のように書くことができる。
【数６】
2020514886.tif 000008
【００３９】
したがって、確率的モデルに対する学習率は、３つのパラメータＢＬ、ΔｗｍｉｎおよびＣによって制御され、これらのパラメータは、ベースライン・モデルで使用される学習率と整合するように調整されるべきである。確率的更新規則は、乗算演算の代わりに単純なＡＮＤ演算を使用することを可能にするが、演算の結果はもはや正確でなく、
【数７】
2020514886.tif 000009
によってスケーリングする標準偏差と平均の比による、確率的（probablistic）なものになる。確率的ビット・ストリーム長ＢＬを増大させると誤差は小さくなるであろうが、更新時間は増大するであろう。このネットワークがベースライン・モデルと同様の分類誤差に到達することを可能にするＢＬ値の許容可能な範囲を見つけるため、実験者は、異なるＢＬ値を使用し、一方で、上で論じたようにベースライン・モデルに対して使用される学習率と整合させるためにΔｗｍｉｎ＝η／ＢＬおよびＣ＝１を設定して、訓練を実行した。図５に示されているとおり、確率的モデルがベースライン・モデルから区別できないものになるためには、ＢＬは、１０という小さなもので十分である。
【００４０】
加えて、確率的更新規則に関しては、単一の更新サイクルに対する重み値の変化が、ＢＬ×Δｗｍｉｎを境界とし、この条件は、ＳＴＲからのパルスを発生させる確率（ＣｘｉおよびＣδｊ）が１に近いかまたは１よりも大きい場合に起こる可能性がある。シミュレーションでは、重み更新におけるこのクリッピングの影響も考慮され、図５に示されているように、その影響は、１０という低いＢＬに関して性能を低下させない。
【００４１】
ベースライン・モデルに匹敵する分類誤差にこのアルゴリズムが収束するために、そのくらい強いデバイス切り換え特性の非線形性が必要であるのかを判定するため、非線形性係数を、図６に示されているように変化させる。非線形性係数は、半電圧と全電圧における２つのコンダクタンス変化の比ｋ＝Δｇ（ＶＳ／２）／Δｇ（ＶＳ）と定義される。図７に示されているように、ｋ≒１の値は、飽和型の非線形応答に対応し、ｋ＝０．５であるとき、応答は、典型的には理想的なメモリスタに対して考えられるような線形であり、ｋ≒０の値は、整流型の非線形応答に対応する。図６に示されているとおり、このアルゴリズムは、線形応答に関して収束することができない。しかしながら、０．１よりも小さい非線形性係数ｋは、ベースライン・モデルに匹敵する分類誤差を達成するのに十分である。
【００４２】
これらの結果は、確率的モデルにおける更新は確率的（probablistic）であるが、分類誤差は、ベースライン・モデルによって達成される分類誤差から区別できないものなり得ることを立証している。非線形切り換え特性を有するアナログＲＰＵデバイスのアレイ上での確率的更新規則の実装は、アルゴリズムの局所性および並行性を効果的に利用する。その結果として、更新時間は、アレイ・サイズから独立したものになり、ＢＬに比例する一定値であり、したがって必要なＯ（１）時間複雑性を達成する。
【００４３】
ＲＰＵデバイス仕様の導出
現状技術におけるニューラル・ネットワーク訓練用のクロスバーアレイとしてのそれらの潜在的実装を考慮して、さまざまな材料、物理的機構およびデバイス概念を分析した。これらの技術は当初、ストレージ・クラスのメモリ用途向けに開発された。しかしながら、提案されたＲＰＵ概念の実現に適用されたときのこれらの技術の固有の限界が、大幅な加速につながるのか、または反対に性能を制限するかについては事前に明白であるわけではない。例えば、ＰＣＭデバイスは、訓練中にコンダクタンスを増大させることしかできず、したがって何回かの更新の後、ネットワークは飽和する。定期的に重みを順次リセットすることによってこの問題を軽減することもできるが、このことはＯ（１）時間複雑性に背くため、その対価として訓練時間が長くなる。
【００４４】
１つまたは複数の実施形態によれば、Ｏ（１）時間複雑性に到達したときの極限の加速を達成するのに必要なデバイス仕様を決定するため、実験者は一連の訓練を実行した。その概要が図８、９、１０、１１、１２、１３、１４、１５および１６（全体を図８〜１６と呼ぶ）に示されている。図８〜１６では、各図が、他の全てのパラメータを固定したまま単一のパラメータをスキャンする（または変化させる）特定の「ストレス試験」に対応し、  したがって、そのストレス試験において、実験者は、重大な誤差ペナルティなくアルゴリズムが許容し得る許容可能なＲＰＵデバイス・パラメータを探査することができる。ストレス試験は、単一の一致事象に起因するインクリメンタルなコンダクタンス変化、上昇コンダクタンス変化と下降コンダクタンス変化の非対称性、コンダクタンス値の調節可能範囲、およびシステム内のさまざまなタイプのノイズなどのＲＰＵデバイス切り換え特性の変動を含む。一致事象は、ＲＰＵデバイスが接続された列（例えばδｊ）および行（ｘｉ）から送られた２つの電圧パルスのオーバラップと定義される。
【００４５】
図８〜１６に示された全ての確率的モデルで、ｋ＝０およびＢＬ＝１０が使用されている。ベースライン・モデルに対して使用された学習率と整合させるため、ｘｉおよびδｊは、
【数８】
2020514886.tif 000010
として定義されるＣを有する確率的ストリームに翻訳される。このことは、平均学習率を、ベースライン・モデルのそれと同じにすることを可能にする。
【００４６】
理想的には、ＲＰＵデバイスはアナログであるべきであり、すなわち、単一の一致事象に起因するコンダクタンス変化Δｇｍｉｎは任意に小さくあるべきであり、したがって、許された全てのコンダクタンス値を連続的にカバーすべきである。重大な誤差ペナルティを生み出さない、単一の一致事象に起因する許容可能な最大Δｇｍｉｎを決定するため、図８に示されているように、他のパラメータは固定したまま、パラメータΔｗｍｉｎを０．３２と０．０００３２の間でスキャンする（変動または変化させる）。大きなΔｗｍｉｎについては、Δｗｍｉｎが確率的更新規則の標準偏差を制御するため収束が不十分だが、より小さなΔｗｍｉｎについては、結果がベースライン・モデルに近づいている。０．０１よりも小さいΔｗｍｉｎは、３０番目のエポックの終わりに２．３％の分類誤差を生み出す。この分類誤差は、ベースライン・モデルの２．０％の分類誤差よりも０．３％高いだけである。線１、２および３はそれぞれ、Δｗｍｉｎ＝０．１、０．０３２および０．０１である確率的モデルに対応する。図９〜１６の曲線は全て、Δｗｍｉｎ＝０．００１を使用している。
【００４７】
アルゴリズムが収束するためにＲＰＵデバイスがサポートすべき最小および最大コンダクタンス値を決定するために、図９に示されているような一組の訓練曲線が計算される。各曲線は、重みの絶対値｜ｗｉｊ｜が０．１と３の間で変動するある境界よりも低く維持される重み範囲によって定義される。具体的には、図９では、線１、２および３がそれぞれ、０．１、０．２および０．３を境界とする重みを有する確率的モデルに対応する。他のパラメータは図８と全く同じであり、結果が主に重み範囲の選択によって定められると仮定するため、Δｗｍｉｎは０．００１とした。０．３よりも大きな値を境界する重み｜ｗｉｊ｜を有するモデルは、上で定義された０．３％の許容可能な誤差ペナルティ判定基準に帰着する。パラメータΔｇｍｉｎ（およびｇｉｊ）は、周辺回路によって定義される増幅係数によってΔｗｍｉｎ（およびｗｉｊ）に比例するため、その最小コンダクタンス値からその最大コンダクタンス値までＲＰＵデバイスを移動させるのに必要な一致事象の数は、（ｍａｘ（ｇｉｊ）−ｍｉｎ（ｇｉｊ））／Δｇｍｉｎ＝（ｍａｘ（ｗｉｊ）−ｍｉｎ（ｗｉｊ））／Δｗｍｉｎとして導き出すことができる。これは、ＲＰＵデバイス上に格納されるために必要な状態の数（例えば６００状態）に対するより低い推定値を与える。単一の一致事象に起因するインクリメンタル・コンダクタンス変化の変動Δｇｍｉｎに対するアルゴリズムの許容差を決定するため、各一致事象に対して使用されるΔｗｍｉｎ値は、ガウス分布を有する確率変数であると仮定される。対応する結果が図１０に示されており、この図では、平均Δｗｍｉｎ値を０．００１に設定したまま、標準偏差を変動させている。実験者のモデルでは、ランダム値が−１（または−１００％）よりも小さい場合に、Δｗｍｉｎが、反対方向に変化する一致事象を有することができる。見て分かるとおり、このアルゴリズムは、各一致事象に対する重み変化に関するランダム性に対してロバストであり、平均値の１５０％よりも小さい標準偏差を有するモデルは許容可能な０．３％の誤差ペナルティに到達する。図１０では、線１、２および３がそれぞれ、Δｗｍｉｎの一致事象間変動が１０００％、３２０％および１００％である確率的モデルに対応する。
【００４８】
図１１に示された確率的モデルに関しては、単一の一致事象Δｇｍｉｎに起因するインクリメンタルなコンダクタンス変化のデバイス間変動（さらに別のランダム性）が導入される。具体的には、図１１では、線１、２および３がそれぞれ、Δｗｍｉｎの１０００％、３２０％および１００％のデバイス間変動を有する確率的モデルに対応する。この場合には、ＲＰＵデバイスごとに使用されるΔｗｍｉｎが、訓練の始めにガウス分布からサンプリングされ、次いで、この固定値が、訓練の全体を通じて各一致事象に対して使用される。図１１の全ての確率的モデルについて、０．００１の平均Δｗｍｉｎ値が使用され、モデルごとに標準偏差を変動させる。実験者のモデルでは、ランダム値が−１（または−１００％）未満である場合に、モデルが、訓練の全体を通じて反対方向の更新を実行するいくつかのデバイスを有することが許される。結果は、このアルゴリズムが、デバイス間変動に対してもロバストであること、および平均値の１１０％までの標準偏差を有するモデルについては許容可能な誤差ペナルティを達成することができることを示している。デバイス間変動は、異なるＲＰＵデバイスに対するアレイ内のパラメータの変動と定義される。
【００４９】
コンダクタンス値の上限および下限のデバイス間変動に対するアルゴリズムの許容差を決定するため、実験者は、図１２のモデルに関してＲＰＵデバイスごとに異なる上限および下限を仮定する。各ＲＰＵデバイスに対して使用される境界は、訓練の始めにガウス分布からサンプリングされ、訓練の全体を通じて使用される。図１２の全ての確率的モデルについては、結果が主に上限および下限のデバイス間変動によって定められると仮定するため、上限に対しては１．０の平均値（下限に対しては−１．０の平均値）が使用される。標準偏差が十分な大きさになると、いくつかのデバイスは、正の重み値だけまたは負の重み値だけをコード化することがあることに留意されたい。さらに、いくつかのデバイスが下限よりも小さい上限を有することさえあり、それらのデバイスは中間点で固定されると仮定され、更新に応答しない。これらの全ての寄与を含めて、図１２は、このアルゴリズムが境界の変動に対してロバストであること、および平均の最大８０％の標準偏差を有するモデルは、許容可能な０．３％の誤差ペナルティを達成することができることを示している。図１２では、線１、２および３がそれぞれ、上限および下限の１０００％、３２０％および１００％のデバイス間変動を有する確率的モデルに対応する。
【００５０】
製造されたＲＰＵデバイスではさらに、図３および４に示されているように、正パルスに起因するコンダクタンス値の変化量
【数９】
2020514886.tif 000011
と負パルスに起因するコンダクタンス値の変化量
【数１０】
2020514886.tif 000012
とが異なることがある。上昇変化
【数１１】
2020514886.tif 000013
と下降変化
【数１２】
2020514886.tif 000014
の間の非対称性をアルゴリズムがどれくらい許容できるのかを判定するため、図１３および１４に示されているように、重み値の上昇変化と下降変化を変動させる。図１３では、線１、２および３がそれぞれ、下降変化の方が０．５、０．７５および０．９だけ弱い確率的モデルに対応する。図１４では、線１、２および３がそれぞれ、上昇変化の方が０．５、０．７５および０．９だけ弱い確率的モデルに対応する。
【００５１】
図１３および１４ではともに、この大域的非対称性が、ＲＰＵデバイス・アレイ全体にわたって均一であるとみなされている。図１３の各モデルに関しては、
【数１３】
2020514886.tif 000015
が０．００１に固定されており、
【数１４】
2020514886.tif 000016
を、上昇値よりも０．９５ないし０．２５弱く変動させる。同様に、図１４は、
【数１５】
2020514886.tif 000017
を０．００１に固定し、
【数１６】
2020514886.tif 000018
を変動させた類似の結果を示す。結果は、確率的モデルが許容可能な０．３％の誤差ペナルティを達成するためには上昇変化と下降変化がかなり均衡している（互いに対して１０％）必要があることを示している。実験者は、平均に対する閾値を定義し、したがって許容可能な閾値として５％不均衡が使用される。図１４には見られるが図１３には見られない大きな変動は驚くべきものではないこと、その変動は、更新の確率的性質によるものではないことに留意されたい。実験者は、不均衡項を含む浮動小数点乗算を使用して訓練を実行し、それでも同様の挙動を観察した。
【００５２】
非対称性のデバイス間変動に対するアルゴリズムの許容差を決定するため、図１３および１４で考慮した大域的非対称性とは対照的に、図１５の曲線は、
【数１７】
2020514886.tif 000019
の標準偏差のさまざまな値に対して計算される。各ＲＰＵデバイスに対するパラメータ
【数１８】
2020514886.tif 000020
および
【数１９】
2020514886.tif 000021
は、訓練の始めにガウス分布からサンプリングされ、次いで、訓練の全体を通じて各一致事象に対して使用される。全てのモデルは、
【数２０】
2020514886.tif 000022
および
【数２１】
2020514886.tif 000023
の平均値が０．００１であると仮定する。許容可能な０．３％の誤差ペナルティを達成するためには、
【数２２】
2020514886.tif 000024
の標準偏差が、平均値の６％未満である必要がある。図１５では、線１、２および３がそれぞれ、４０、２０および６％だけ変化する上昇および下降のデバイス間変動を有する確率的モデルに対応する。
【００５３】
アナログ計算は、全て加法的な熱ノイズ、散弾ノイズ（shot noise）などのさまざまなノイズ源に対して敏感であり、単一の不偏ガウス・ノイズとしてモデル化することができる。重み更新サイクル中のノイズ・ペナルティの影響は、図１０、１１、１２、１３、１４および１５で既に考慮されている。順方向および逆方向サイクル中のノイズに対するアルゴリズムの許容差を推定するため、実験者は、変動する標準偏差を有するベクトル−行列乗算の結果にガウス・ノイズを注入した。ベクトル−行列乗算の結果が計算された後、結果として生じるベクトルの各要素に、独立したランダム・ノイズが加えられる。図１６に示されたデータに関して、順方向サイクルと逆方向サイクルの両方に対して同じノイズ分布が使用され、０．１の標準偏差を有するノイズについては、許容可能な０．３％の誤差ペナルティに到達する。この値は、１であるシグモイド・ニューロン温度パラメータの１０％である。しかしながら、順方向サイクルに対するノイズ要件と逆方向サイクルに対するノイズ要件は全く同じでなくてもよい。実際、計算によれば、実験者が順方向サイクルだけにノイズを導入したとき、このアルゴリズムは、６０％の標準偏差で最大６倍のノイズを許容することができる。逆方向サイクルは、１０％の閾値でそれほど寛容でなく、したがって、逆方向サイクルは、図１６から導き出された閾値を指定する。図１６では、線１、２および３がそれぞれ、１である活性化関数温度に関して正規化された、１００％、６０％および１０％のベクトル−行列乗算のノイズを有する確率的モデルに対応する。
【００５４】
図１７は、図８〜１６で実行された「ストレス試験」から導き出されたＲＰＵデバイスの仕様の概要を示すレーダ図である。軸Ｃ〜Ｉはそれぞれ図１０〜１６の実験に対応する。実線１は、これらのパラメータに対して決定された、許容可能な０．３％の誤差ペナルティに対する閾値を結んでいる。これらの仕様は、ＮＶＭ（不揮発性メモリ）技術に対して典型的なパラメータとはかなり異なることに留意されたい。ＮＶＭデバイスのストレージはディジタルであり、典型的には数ビットを超えず、この制約は、読出しおよび書込み動作のための高い信号対雑音比を達成するためにシステム要件によって課される。加えて、書込み動作は、以前に格納された全ての値を上書きするため履歴に依存しない。対照的に、ニューラル・ネットワーク動作の重み値は、非常に高い信号対雑音比で書き込まれたり、分解されたりする必要がない。実際に、このアルゴリズムは、重み更新（パラメータＣ）において最大１５０％のノイズに耐えることができ、列または行上の最大１０％の読出しノイズ（パラメータＩ）を許容することができる。しかしながら、ＮＶＭデバイス上の数ビットのストレージ容量とは対照的に、ＲＰＵデバイスが重み更新の履歴を追跡し続けるためには多数の一致事象（図９から６００超）が必要である。加えて、ＮＶＭデバイスに必要なビット・レベル間のフルスイング・ライティングの高い耐久性とは対照的に、ＲＰＵデバイスは、小さなインクリメンタル変化（Δｇｍｉｎ）だけに対する高い耐久性を有する必要がある。図１７で考慮される全てのパラメータの組み合わされた寄与は加法的であることがあり、したがって許容可能な０．３％の誤差ペナルティを超えることがある。図１８は、２つ以上のパラメータの効果が組み合わされたときの訓練結果を示す。全てのパラメータ（Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、ＨおよびＩ）が閾値において組み合わされたとき、試験誤差は５．０％に達し、これは、ベースライン・モデルよりも３．０％高い。用途によってはこのペナルティが許容可能であることもあるが、このペナルティは、上で考慮した０．３％の誤差ペナルティよりも高い。この３．０％のペナルティは、相関していない寄与の単純な加法的影響よりも高い。このことは、これらのパラメータのうちの少なくともいくつかのパラメータが相互に作用していることを示している。このことは、さまざまなパラメータ間の許容差をトレードオフすることによって誤差ペナルティを最適化する可能性を開く。例えば、図１８の曲線２によって示されている、パラメータＣ、ＤおよびＥだけを閾値において組み合わせるモデルは、０．９％の誤差ペナルティを与え、これは、個々の寄与の予想された和に近い。これらのパラメータは、デバイス動作の不完全性およびデバイス間ミスマッチによって定められ、これらの不完全性およびミスマッチは全て、所与の技術における製造公差によって制御されることに留意されたい。深くスケーリングされたＣＭＯＳ技術に対しても、製造公差は３０％を超えず、この値は、図１８の曲線２の計算のために使用される１５０％、１１０％および８０％よりもはるかに小さい。対応する許容差を３０％に設定することによって、誤差ペナルティに対するＣ、ＤおよびＥの寄与を排除���ることができる（データは示さない）。図１８では、線１、２および３がそれぞれ、１である活性化関数温度に関して正規化された、１００％、６０％および１０％のベクトル−行列乗算のノイズを有する確率的モデルに対応する。図１７および１８を全体に図１７〜１８と呼ぶことができる。
【００５５】
図１７のパラメータの中で、ＲＰＵデバイスのコンダクタンス値の上昇変化と下降変化との間の非対称性（パラメータＦ、ＧおよびＨ）は、最も制限的なものであり、１つまたは複数の実施形態によれば、コンダクタンス値の上昇変化と下降変化の間のこの非対称性は、本明細書で論じられているとおり、ヒステリシスによって解決される。パラメータＦ（またはＧ）は、正および負の更新サイクルにおいてパルス電圧またはパルス数あるいはその両方を制御することによって補償することができる大域的非対称性であり、したがって、５％の閾値よりも高い非対称性であっても、周辺回路を適切に設計することによって排除することができる。対照的に、非対称性のデバイス間変動によって定義されるパラメータＨは、各ＲＰＵデバイスが順次アドレスされる場合に限り周辺回路によって補償することができる。Ｏ（１）時間複雑性を維持するためには、デバイス・ミスマッチ・パラメータＨおよびノイズ・パラメータＩをともに、誤差ペナルティを低減させるように最適化することができる。図１８の曲線３を境界とする陰影が付けられたエリアによって示された結果として生じるモデルは、せいぜい０．３％の誤差ペナルティを達成する。このモデルについては、パラメータＣ、ＤおよびＥが３０％に設定され、Ｆ（またはＧ）がゼロに設定され、Ｈが２％に設定され、Ｉが６％に設定される。あるいは、ノイズ・パラメータＩを２．５％に制限し、デバイス・ミスマッチ許容差Ｈを４％に増大させることによっても同じ結果（データは示さない）を達成することができ、これは、よりノイズの少ない回路を設計することと引き換えに、アレイ製造を単純にすることができる。
【００５６】
上で検討したパラメータに加えて、ＲＰＵデバイスはさらに、格納されたコンダクタンス値Δｇｍｉｎ（ｇｉｊ）に関するコンダクタンス変化に対する依存性を示すことがある。このような挙動は、Δｗｍｉｎ（ｗｉｊ）と書くことができるその時点の重み値に依存する更新規則を導入する。実験者は、重み値に対する１次または２次依存性を含むΔｗｍｉｎ（ｗｉｊ）に対する異なる関数形を有する重み依存更新規則を含むシミュレーションを実行した。最初の一組のシミュレーションにおいて、実験者は、更新が、
【数２３】
2020514886.tif 000025
となるような形で所与の任意の重み値に対して均衡しており、したがって重み範囲の全体にわたって不均衡判定基準Ｈを既に満たしていると仮定する。これらのシミュレーション結果は、ｇｉｊに対するΔｇｍｉｎの依存性が重要なパラメータではないことを示している。なぜならば、Δｗｍｉｎを約１０倍に変更したときであっても、０．３％よりも大きな追加の誤差ペナルティが観察されないためである。しかしながら、実験者が、均衡していない重み依存更新を導入するとき、実験者は、追加の誤差ペナルティを観察する。これは、この条件が不均衡判定基準Ｈに違反しているためである。
【００５７】
回路レベルおよびシステム・レベル設計の考慮事項
Ｏ（１）時間複雑性動作が強いられたときには、サイズＮ×ＮのＲＰＵアレイ上でのバックプロパゲーション・アルゴリズムを用いたＤＮＮ訓練の極限の加速を近似することができる。この場合、全体の加速はＮ２に比例し、このことは非常に大きなアレイにとって有利である。アレイ、周辺回路および全体システムの設計は一般に、特定の作業負荷および分類タスクのためのネットワーク・パラメータの最適化に基づくべきである。このような設計に対する一般的な方法論を開発するため、実験者は、上に提示された分析の結果を一例として使用する。しかしながら、開発された手法は、図５〜１８でＭＮＩＳＴデータセットを分類するために使用された比較的に単純な３層ネットワークよりも複雑なケースのより大きなクラスに対して有効であることを理解すべきである。
【００５８】
ＲＰＵアレイ設計
クロスバー・アレイ（すなわちＲＰＵデバイスのアレイ）の現実的な技術的実装では、大幅なＲＣ（抵抗コンデンサ（resistance capacitor））遅延および電圧降下の原因となる伝送線の抵抗および寄生容量によって、アレイ・サイズが制限される。さらなる分析のため、実験者は、ＲＰＵデバイスが、バックエンドオブライン（back-end-of-line：ＢＥＯＬ）スタックの中間金属レベル間に組み込まれていると仮定する。このことは、上位の厚い金属レベルが出力分布に対して使用され、それよりも下位の金属レベルおよびＲＰＵアレイの下のエリアが、周辺ＣＭＯＳ回路のために使用されることを可能にする。スケーリングされたＣＭＯＳ技術における典型的な中間金属レベルは、３６０ｎｍ（ナノメートル）の厚さおよび２００ｎｍの幅を有する。対応する典型的な線抵抗は、約ｒｌｉｎｅ＝０．３６Ω／μｍ（オーム／マイクロメートル）であり、寄生容量は、Ｃｌｉｎｅ＝０．２ｆＦ／μｍ（フェムトファラド／マイクロメートル）である。更新サイクル中に使用されるパルスの合理的なクロック周波数が１ＧＨｚ（ギガヘルツ）であると仮定し、ＲＣ遅延が、パルス幅（０．１ｎｓ）のせいぜい１０％であることを可能にすると、最も長い線長は、ｌｌｉｎｅ＝１．６４ｍｍ（ミリメートル）であるべきである。合理的な線間隔が２００ｎｍであると仮定すると、その結果、４０９６×４０９６個のＲＰＵデバイスを有するアレイに帰着する。ＲＰＵデバイスのコンダクタンス値は正の値しかとりえないため、実験者は、全く同じ一対のＲＰＵデバイス・アレイを使用して、正の重み値
【数２４】
2020514886.tif 000026
および負の重み値
【数２５】
2020514886.tif 000027
をコード化すると仮定する。重み値（ｗｉｊ）は、一対のＲＰＵアレイの全く同じ位置に位置する対応する２つのデバイスに格納された２つのコンダクタンス値の差
【数２６】
2020514886.tif 000028
に比例する。面積を最小にするために、これらの２つのアレイを互いに積み重ねて、連続した４つの金属レベルを占有し、その結果、総面積をＡａｒｒａｙ＝２．６８ｍｍ２にすることができる。このアレイ・サイズでは、１ｎｓ（ナノ秒）パルスを使用して実行される完全な更新サイクル（正と負の両方）を、ＢＬ＝１０において２０ｎｓで完了することができる。
【００５９】
平均ＲＰＵデバイス抵抗Ｒｄｅｖｉｃｅを推定するため、実験者は、Ｎ×Ｒｌｉｎｅ／Ｒｄｅｖｉｃｅによって定義される伝送線上の電圧降下はせいぜい１０％であると仮定する。Ｒｌｉｎｅは、ｒｌｉｎｅ×ｌｌｉｎｅに等しい全体の線抵抗である。この全体の線抵抗に対するライン・ドライバ（line driver）の出力抵抗の寄与は、適切な回路設計によって最小化することができる。したがって、Ｎ＝４０９６のアレイ・サイズに関して、平均ＲＰＵデバイス抵抗は、Ｒｄｅｖｉｃｅ＝２４ＭΩ（メガオーム）である。この抵抗値を使用し、３つの全ての訓練サイクルについて動作電圧は１Ｖであり、図５〜１８のモデルに関して典型的な各デバイスについて活性は平均して約２０％であると仮定すると、一対のＲＰＵアレイ上での電力散逸は、Ｐａｒｒａｙ＝０．２８Ｗ（ワット）と推定することができる。
【００６０】
周辺回路の設計
図１９は、順方向（または逆方向）サイクル中の単一の列（または行）の動作を示す。この図は、コンデンサＣｉｎｔ上の微分電流（differential current）を積分する演算増幅器（オペアンプ）、およびアナログ−ディジタル変換器（ＡＤＣ）を示している。更新サイクルとは対照的に、確率的翻訳機は必要ない。ここで、実験者は、調節可能な持続時間を有する固定振幅Ｖｉｎ＝１Ｖのパルスによって入力ベクトルが表されるときには時間エンコーディング・スキームが使用されると仮定する。パルス幅は１ｎｓの倍数であり、入力ベクトルの値に比例する。各ＲＰＵデバイスにおいて生成された電流は、列（または行）上で合計され、その全電流が、図１９に示されているように、電流読出し回路によって測定時間ｔｍｅａｓにわたって積分される。正および負の重みをコード化するために使用される全く同じＲＰＵアレイの各ＲＰＵアレイには、正および負の電圧パルスが別々に供給される。両方のアレイからの電流は、コンデンサＣｉｎｔ上の微分電流を積分するオペアンプおよびＡＤＣからなる周辺回路に送られる。時間コード化されたパルスに関して、ＲＰＵアレイへの入力における時間量子化誤差は、パルスの総数に逆比例してスケーリングし、したがって、それは、確率的パルシング・スキームに比べて優れた手法であることに留意されたい。図１８のモデルに関して、２０よりも大きなパルス数（約５ビット分解能）は、対応する誤差ペナルティを排除するのに十分である。
【００６１】
実験者は、単一のＲＰＵタイル（tile）を、４０９６×４０９６個のデバイスを含む一対のアレイであって、３つの全てのサイクルにおいてアレイの並列動作をサポートする周辺回路を備える一対のアレイと定義する。周辺回路は、ＡＤＣと、オペアンプと、乱数発生器からなるＳＴＲと、列および行に沿って信号を導くために使用されるライン・ドライバとを含む。図２１に示されているように、ＲＰＵタイルからの信号は、非線形関数（non-linear funciton：ＮＬＦ）回路に向かって導かれる。この回路は、サイクル・タイプ（例えば逆方向サイクル、順方向サイクルまたは更新サイクル）および対応する層の位置に応じて、活性化関数（すなわちシグモイド、ソフトマックス）およびそれらの導関数、ならびに算術演算（すなわち乗算）を計算する。信号飽和を回避するため、ＮＬＦへの入力信号は、タイル境界においてある閾値によって制限される。具体的には、図２１は、加速器ＲＰＵチップのアーキテクチャの略図である。下部にＲＰＵタイルが位置し、上部にＮＬＦディジタル計算回路があり、バスまたはＮｏＣ（ネットワーク・オン・チップ）によってオンチップ通信が提供され、オフチップ通信はＩ／Ｏ回路に依存する。
【００６２】
図２０は、図１８のモデル３のネットワークに対する試験誤差を示しているが、ベクトル−行列乗算の結果に境界｜α｜が課されている。このことは、ＮＬＦ入力を制限することと等価である。曲線１は、図２０の隠れ層のシグモイド活性化関数だけに｜α｜＝３が課されたモデルに対応する。曲線２および３はそれぞれ、図２０のシグモイド活性化関数とソフトマックス活性化関数の両方に｜α｜＝３および１２が課されたモデルに対応する。隠れ層のニューロンに対して、ＮＬＦ回路は、シグモイド活性化関数を計算すべきである。このシグモイドＮＬＦへの入力が｜α｜＝３に制限されているとき、結果として生じる誤差ペナルティは、図２０の曲線１によって示されているように、追加の０．４％を超えない。
【００６３】
図２０の曲線２によって示されているように、出力層のニューロンは、対応する入力も｜α｜＝３に制限されたときに非常に大きな誤差に帰着するソフトマックスＮＬＦ演算を実行する。設計をよりフレキシブルかつプログラム可能にするためには、隠れ層と出力層の両方の層のＮＬＦが同じ境界を有することが望まれる。ソフトマックスＮＬＦとシグモイドＮＬＦの両方のＮＬＦの境界がともに｜α｜＝１２に制限されているとき、全体のペナルティは、図２０の曲線３によって示されているように許容可能範囲内にある。図１８の結果からとられた６％の許容可能なノイズ・レベルおよびＡＤＣへの入力における−１Ｖから１Ｖの間の動作電圧範囲を仮定すると、必要な対応するビット分解能および電圧ステップはそれぞれ９ビットおよび３．９ｍＶである。これらの数値は、ＡＤＣへの入力（またはオペアンプの出力）における許容可能な全体の積分されたＲＭＳ（自乗平均）電圧ノイズは５．０ｍＶを超えるべきではないことを示している。
【００６４】
ノイズ分析
入力換算ノイズ（input referred noise）の許容可能レベルを推定するためには、オペアンプの積分関数が定義されるべきである。オペアンプの出力における電圧は下式として導き出すことができる。
【数２７】
2020514886.tif 000029
【００６５】
上式で、βは、ＲＰＵデバイスのコンダクタンス・オン／オフ比である。この式は、Ｎ個の全てのＲＰＵデバイスが同時に寄与していると仮定している。このことは、非常に大きなコンデンサまたは大きな電圧振幅を必要とするであろう回路を設計することをより困難にし得る。しかしながら、ＮＬＦ変換に課された所与の境界｜α｜および重み値に対する｜ｗｉｊ｜に関して、出力電圧が、｜α｜／｜ｗｉｊ｜個のデバイスの同時寄与に対応するレベルを必ず超えなければならないというわけではない。上で示したとおり、許容可能な境界｜α｜＝１２および｜ｗｉｊ｜＝０．６は十分であるため、式（４）の数Ｎに２０を代入することができる。ＡＤＣに供給されるＶｏｕｔ信号は１Ｖを超えるべきではなく、Ｒｄｅｖｉｃｅが２４ＭΩであると仮定すると、積分コンデンサＣｉｎｔの選択は、積分時間ｔｍｅａｓおよびオン／オフ比βによって決定される。図２２は、ＲＰＵデバイス上のさまざまなオン／オフ比βおよび積分時間ｔｍｅａｓに対する許容可能な入力換算ノイズ・レベルを示す。曲線１、２および３はそれぞれ、２０ｎｓ、８０ｎｓおよび１６０ｎｓのｔｍｅａｓに対応する。このノイズ・レベルは、積分器ベースの回路における標準ノイズ分析（Jensen et al., 2013）を使用して計算されたオペアンプの入力換算ノイズに対応する。ｔｍｅａｓが２０ｎｓであるとした場合、上で論じた量子化誤差の考慮事項に従えば、許容可能なノイズ・レベルは、図２２の曲線１に示されているように
【数２８】
2020514886.tif 000030
程度でしかないなど比較的に低い。オン／オフ比βを数桁増大させた場合でも、より高いノイズに対応することには役立たない。より高いノイズに対応するためにはｔｍｅａｓを増大させる必要があるが、それには、全体の演算時間が増大するというペナルティが伴う。図２２の曲線から分かるとおり、所与のノイズ・レベルに関して、２〜１０の小さなオン／オフ比は許容可能となり得る。それは、実際、ＮＶＭ用途に対して典型的な数桁高いオン／オフ比に比べれば非常に穏当である。ｔｍｅａｓおよびβがそれぞれ８０ｎｓおよび８と選択されたとき、図２２の曲線２によって示される許容可能な入力換算ノイズの対応するレベルは、
【数２９】
2020514886.tif 000031
として導き出すことができる。このバジェット（budget）は、逆方向パスに対する要件を使用して計算されたものであり、順方向パスについては、上で論じたように、許容可能なノイズ・レベルが、約６倍の約
【数３０】
2020514886.tif 000032
の値を有することに留意されたい。対応する静電容量Ｃｉｎｔも、式（４）を使用して１０３ｆＦと計算することができる。
【００６６】
熱ノイズ、散弾ノイズおよび供給電圧ノイズなどを含むさまざまなノイズ源が、オペアンプの全体の許容可能な入力換算ノイズ・レベルに寄与し得る。４０９６×４０９６個のＲＰＵデバイスを含むアレイの対による熱ノイズは、
【数３１】
2020514886.tif 000033
として推定することができる。ＲＰＵデバイスの正確な物理的実装および非線形Ｉ−Ｖ応答のタイプに応じて、ＲＰＵアレイによって生成される散弾ノイズ・レベルは変動しうる。ダイオードのようなモデルを仮定すると、アレイ全体からの全散弾ノイズは、列（または行）の中のいくつかの活性ＲＰＵデバイスの平方根としてスケーリングし、したがってアレイの全体の瞬時活性に依存する。図５〜１８のモデルに対して典型的なネットワークの平均活性は、逆方向サイクルでは１％未満であり、順方向サイクルではそれよりもはるかに高い（約２０％）。対応して、これらの活性の結果、逆方向および順方向サイクルの散弾ノイズ値はそれぞれ
【数３２】
2020514886.tif 000034
および
【数３３】
2020514886.tif 000035
になる。したがって、逆方向サイクルにおけるノイズは、値
【数３４】
2020514886.tif 000036
の熱ノイズによって支配され、散弾ノイズとともに、寄与は、
【数３５】
2020514886.tif 000037
の全ノイズ・バジェットに合致する。対照的に、
【数３６】
2020514886.tif 000038
の値を有する順方向サイクルにおけるノイズは散弾ノイズによって支配され、これも、
【数３７】
2020514886.tif 000039
の対応する全ノイズ・バジェットに合致する。より高い作業負荷または電圧上のノイズ、増幅器ノイズなどを含む追加のノイズ寄与に対しては、より長い積分時間またはより小さなアレイ・サイズが必要であることに留意されたい。
【００６７】
システム・レベル設計の考慮事項
周辺回路によって占有されたタイル面積および対応する散逸電力は、４０９６個のＡＤＣからの寄与によって支配される。順方向および逆方向サイクルのｔｍｅａｓが８０ｎｓであると仮定すると、１２．５ＭＳｓａｍｐｌｅｓ／秒において９ビットの分解能で動作するＡＤＣが必要である。この性能を提供することができる現状技術のＳＡＲ−ＡＤＣは、現状技術のＳＡＲ−ＡＤＣの使用が、４０９６個のＡＤＣからなるアレイについて１０４ｍｍ２の総面積および１Ｗの総電力に帰着するような態様で、０．０２５６ｍｍ２の面積を占有し、０．２４ｍＷの電力を消費する。この面積は、ＲＰＵアレイ自体よりもはるかに大きく、したがって、総電力を不変に保ちつつサンプリング・レートを増大させることによって、異なる列（または行）間のＡＤＣを時間多重化することは合理的である。各ＡＤＣが６４本の列（または行）によって共用されると仮定すると、総ＡＤＣ面積を１．６４ｍｍ２まで低減させることができ、各ＡＤＣは、約８００ＭＳｓａｍｐｌｅｓ／秒で動作する。実験者は、ＲＰＵデバイス・アレイが、周辺ＣＭＯＳ回路の上にある中間金属レベル上に構築されると仮定しているため、総タイル面積は、他の回路（回路の面積も最適化される）のために約１．０ｍｍ２を残した、２．６８ｍｍ２のＲＰＵアレイ面積によって決定される。例えば、列（または行）内で生成されたストリームに対しては演算が実行されず、このことは、対応する分類試験に対する追加の誤差ペナルティがないことによって立証されている（データは示さない）ため、２進データを確率的ビット・ストリームに翻訳するために使用される乱数発生器の数を大幅に減らし、２つだけにすることができる。したがって、単一のタイルの総面積は２．６８ｍｍ２であり、一方、オペアンプおよびＳＴＲに対して０．７Ｗが確保されると仮定すると、ＲＰＵアレイと全ての周辺回路（すなわちＡＤＣ、オペアンプ、ＳＴＲ）の両方によって散逸する総電力は２．０Ｗと推定することができる。更新サイクルの持続時間が２０ｎｓ、ＲＰＵアレイ・サイズが４０９６×４０９６である場合、単一のタイル（ＲＰＵタイル）上の１秒当たりの重み更新の数は、８３９ＴｅｒａＵｐｄａｔｅｓ／ｓと推定することができる。これは、４１９ＴｅｒａＵｐｄａｔｅｓ／ｓ／Ｗの電力効率、および３１９ＴｅｒａＵｐｄａｔｅｓ／ｓ／ｍｍ２の面積効率に翻訳される。順方向（または逆方向）サイクルに対して８０ｎｓが与えられた場合、順方向および逆方向サイクル中のタイル・スループットは４１９ＴｅｒａＯｐｓ／ｓと推定することができ、電力効率および面積効率はそれぞれ２１０ＴｅｒａＯｐｓ／ｓ／Ｗおよび１５６ＴｅｒａＯｐｓ／ｓ／ｍｍ２である。効率のこれらの数字は、現状技術のＣＰＵおよびＧＰＵ性能メトリックよりも約５桁（１０５）優れている。多数のタイルがシステム・オン・チップとして一緒に統合されると、単一のＲＰＵタイルに対して達成される電力および面積効率は低下しうる。図２１に示されているように、プログラム可能なＮＬＦ回路、コヒーレントなバスまたはネットワーク・オン・チップ（ＮｏＣ）を介したオンチップ通信、オフチップＩ／Ｏ回路などのために、追加の電力および面積が確保されている���きである。チップ上のＲＰＵタイルの数を増やすと、最初は総チップ・スループットの加速が生じ得るが、ＲＰＵタイルは、電力、面積、通信帯域幅または計算リソースあるいはこれらの組合せによって制限されるため、最終的には飽和するであろう。現状技術の高性能ＣＰＵまたはＧＰＵを、単一のチップ上の６００ｍｍ２の最大面積および２５０Ｗの電力を推定するための基準として採用することができる。タイルの数を最大５０から１００にスケーリングするのに、タイル１つ当たりの電力および面積はそれほど大きなものではなく、システムが効率的であるために必要な通信帯域幅および計算リソースが難点となることがあり得る。単一のＲＰＵタイルに対する通信帯域幅は、全体で約９０ＧＢ／ｓの一方向帯域幅を与える順方向（または逆方向）サイクルに対して１列（または１行）当たり５ビットの入力および９ビットの出力を仮定して推定することができ、これらの９０ＧＢ／ｓの一方向帯域幅はさらに更新サイクル通信要件を満たす。この数字は、現状技術のＣＰＵ内の単一のコアと近くのＬ２キャッシュとの間の通信帯域幅の約１／３である。現状技術のオンチップ・コヒーレント・バス（（３ＴＢ／ｓ超）またはＮｏＣ（２．５ＴＢ／ｓ））は、離れたタイル（すなわちＲＰＵタイル）間に十分な通信帯域幅を提供することができる。サイクル時間が８０ｎｓ、列または行において生成される数が４０９６個であると仮定すると、単一のＲＰＵタイルに対するＯ（１）時間複雑性を維持するために必要な計算リソースは５１ＧｉｇａＯｐｓ／ｓであると推定することができる。ｎ個のＲＰＵタイルの並列動作をサポートするため、計算リソースは、Ｏ（ｎ）によってスケーリングされる必要があり、したがって、チップ上の総電力包絡線を２５０Ｗ未満に維持するために、所与の時点において活性であり得るＲＰＵタイルの数を制限する必要がある。例えば、現状技術のＣＰＵの単一のコアは、約５０ＧｉｇａＦＬＯＰ／ｓを達成することができ、それは、１つのＲＰＵタイルをサポートするのに十分であるであろう。しかしながら、１コア当たり２０Ｗを仮定すると、最大電力に到達するのは１２個のＲＰＵタイルだけである。この設計点に対する対応する電力効率は、図２３の表１の設計１に示されているように２０ＴｅｒａＯｐｓ／ｓ／Ｗとなるであろう。図２３の表１は、さまざまなＲＰＵシステム設計と現状技術のＣＰＵおよびＧＰＵとの比較の概要を示したものである。現状技術ＧＰＵの３２個のコアによって同じ計算リソースを提供することができるが、電力効率はより良好であり、したがって最大５０個のタイルが並列に動作することを可能にする。この設計に対する対応する電力効率は、表１の設計２に示されているように８４ＴｅｒａＯｐｓ／ｓ／Ｗとなるであろう。限定されたビット分解能で固定小数点数を演算する電力および面積効率に優れた専用のディジタル回路を設計することによって、同時に動作することができるＲＰＵタイルの数をさらに増大させることを予見することができる。代替設計は、表１の設計３に示されているようなより大きなネットワーク・サイズを扱うようにより多数のタイルを適合させるため、タイル・データを逐次的に処理することができる少数の計算���アに基づくことができる。例えば、１００個のＲＰＵタイルと単一の５０ＧｉｇａＯｐｓ／ｓ計算コアとを備えるチップは、１６億個もの重みを用いてネットワークを扱うことができ、計算コアおよび通信バスからの２０Ｗを仮定すると約２２Ｗだけを散逸させ、ＲＰＵタイルに関しては、所与の任意の時点において活性なのが１つだけであるため、２Ｗだけを散逸させる。これは、２０ＴｅｒａＯｐｓ／ｓ／Ｗの電力効率を与え、この値は、現状技術のＣＰＵおよびＧＰＵよりも４桁（１０４）優れている。
【００６８】
理解され得るように、１つまたは複数の実施形態は、局所的かつ並列にデータを同時に格納および処理することができる、したがってＤＮＮ訓練の大幅な加速を提供するＲＰＵデバイスの構成を提供する。さまざまなＲＰＵデバイスおよびシステム・パラメータならびに技術的不完全性および異なるノイズ源に対する訓練アルゴリズムの許容差について論じた。この分析は、実験者が、図２４の表２に概要が示されたＲＰＵデバイスに対する仕様のリストを定めることを可能にした。図２４の表２は、１つまたは複数の実施形態による、ＲＰＵデバイス仕様の概要である。既存のＮＶＭ技術に基づくＲＰＵデバイスに対する現時点の競争相手は、全ての判定基準を同時に満たすわけではないであろう。しかしながら、表２の結果を、適当なＣＭＯＳ適合技術を用いてＲＰＵデバイス概念を実現するために物理的機構、材料およびデバイス設計を探索する系統的探索のガイドとして使用することができる。
【００６９】
実験者は、深層ニューラル・ネットワーク訓練の多くの桁数（１０３、１０４、１０５または１０６倍、またはこれらの組合せ）の加速を提供することができ、同時に必要な電力およびコンピュータ・ハードウェア・リソースを大幅に減らすＲＰＵアレイ構成に基づくさまざまなシステム設計の分析を示した。結果の概要が表１に示されている。この分析は、（ネットワーク・サイズに応じて、）電力と加速係数とを取引するＲＰＵ加速器チップに対する異なる設計選択を実施することができることを示している。
【００７０】
実施形態によれば、図２１の記載された加速器チップ設計はフレキシブルであり、同様の加速係数を有する完全に接続された層以外の異なるタイプのＤＮＮアーキテクチャに対応することができる。例えば、類似の手法で、ＲＰＵアレイに畳み込み層をマップすることもでき、当業者は、畳み込み層を理解している。この場合、アレイは、順方向および逆方向サイクルに対するベクトル−行列乗算を実行する代わりに、行列−行列乗算を実行する必要がある。これは、入力行列の列をＲＰＵアレイの列に順次送ることによって達成することができる。加えて、活性化関数の計算だけでなく、マックスプーリング（max-pooling）および２段抽出（sub-sampling）をも実行するように、周辺ＮＬＦ回路を再プログラミングする必要がある。層間の必要な接続性は、ネットワーク内のタイル・アドレスを再プログラムすることによって達成することができる。畳み込み層に対する更新サイクルは、順方向および逆方向サイクル中に使用される２つの行列の積の計算を必要とすることがある。これは、入力行列の列および誤差行列の列を同時にＲＰＵアレイに順次送ることによって達成することができる。更新サイクル中に、各ＲＰＵデバイスは、一連の局所乗算および総和演算を実行し、したがって、各ＲＰＵデバイスは、更新中に２つの行列の積を計算する。ＲＰＵアレイ上の３つのサイクル（例えば順方向、逆方向および更新サイクル）は全て、畳み込み層と完全に接続された層の両方に対して同様であり、再プログラミングを必要としないことに留意されたい。実際、畳み込み層を、１よりも大きなミニバッチ・サイズを有する完全に接続された層と見ることができる。ＲＰＵ加速器チップのスループットは、ＤＮＮアーキテクチャおよびミニバッチ・サイズサイズから独立しており、したがって、ＲＰＵ加速器チップは、同様のＲＰＵアレイ・サイズに対して同様の加速係数を達成する。しかしながら、ＲＰＵデバイスおよびシステムの仕様は、本明細書に記載された手法を使用して、異なるＤＮＮアーキテクチャおよびデータセットに対して再考されるべきである。最近の大部分のＤＮＮアーキテクチャは、１０億程度のパラメータ数を有する、多くの畳み込み層と完全に接続された層との組合せに基づく。この分析は、単一のＲＰＵ加速器チップを使用して、このような大きなＤＮＮを訓練することができることを示す。現時点では多数のＧＰＵ上での訓練に数日かかるＩｍａｇｅＮｅｔ分類のサイズの問題は、１つまたは複数の実施形態に基づく単一のＲＰＵ加速器チップ上では１分もかからないことがある。
【００７１】
図２７および２８は、１つまたは複数の実施形態による、（ＲＰＵデバイスに対して）ヒステリシスを用いた訓練結果のグラフである。上述のとおり、１つの訓練エポックは６０，０００個の訓練画像に等しい。図２７は、１００％の不均衡を有するＲＰＵデバイスの試験誤差％を、訓練エポックに対して示す。１００％不均衡なデバイスの例は、正の方向のコンダクタンス変化（Δｇ＋ｍｉｎ）が、負の方向の変化（Δｇ−ｍｉｎ）よりも係数２だけ強い（すなわち２倍である）ようなデバイス、またはこれとは逆のデバイスである。比較のため、図２７は、２、４、８、１６および３２パルスのヒステリシスｈｎの曲線に対してヒステリシスが無い比較曲線を示している。図２７はさらに、最も高い正確さおよび最も低い試験誤差（例えば２％の試験誤差は、ＲＰＵデバイスが、その時間の９８％で正しい結果に到達することを意味する）を表す浮動小数点（ＦＰ）数ベースラインの曲線を（円として）を示している。１つまたは複数の実施形態によれば、デバイス不均衡が１００％であっても、ヒステリシスＲＰＵデバイスは、ヒステリシスｈｎ＝３２パルスを使用することによって約２％の試験誤差を達成することができる。ＲＰＵデバイスのヒステリシスは同じであり続けること（例えばｈｎ＝３２パルスのままであること）、ならびに図２７および２８の例は、異なるヒステリシスを有するＲＰＵデバイスを表すことに留意すべきである。ヒステリシスは、ＲＰＵデバイスの物理的構造の関数であり、論じたどのＲＰＵデバイスも、実施形態に基づくヒステリシスＲＰＵデバイスとなり得る。ヒステリシスを有しないデバイスを達成する方がより難しいことがあるため、ヒステリシス・デバイスは、規則的に製造することができる。電荷拡散または磁気デバイスの磁壁運動などの機構は通常、ヒステリシスである。さらに、大部分のメモリスタ・デバイスは（一般に）ヒステリシスである。
【００７２】
同様に、図２８は、６０％の不均衡を有するＲＰＵデバイスの試験誤差％を、訓練エポックに対して示す。比較のため、図２８は、２、４、８、１６パルスのヒステリシスｈｎの曲線に対してヒステリシスが無い比較曲線を示している。図２８はさらに、最も高い正確さおよび最も低い試験誤差（例えば２％の試験誤差は、ＲＰＵデバイスが、その時間の９８％で正しい結果に到達することを意味する）を表す浮動小数点（ＦＰ）数ベースラインの曲線を（円として）を示している。デバイス不均衡が６０％であっても、ヒステリシスＲＰＵデバイスは、ヒステリシスｈｎ＝１６パルスを使用することによって約２％の試験誤差を達成することができる。ＲＰＵデバイスの不均衡がより小さいため、図２８は、図２７よりも低いヒステリシスｈｎで（約）２％の試験誤差に到達することができる。
【００７３】
図２９は、１つまたは複数の実施形態による、３０番目のエポックにおける試験誤差率を、６０％不均衡と１００％不均衡の両方について、ヒステリシスを有するＲＰＵデバイスに対して示すグラフである。
【００７４】
図３０は、１つまたは複数の実施形態による、ヒステリシスが不均衡係数を再正規化する（すなわち固定する）ことを示すグラフである。不均衡係数はｒであり、
【数３８】
2020514886.tif 000040
であり、この式は
【数３９】
2020514886.tif 000041
と同じである。ヒステリシス項なし（すなわちｈｎ＝０）で不均衡係数ｒが単独で導入されるときには、約２．３％の試験誤差率を使用して、約５％の許容可能な閾値が導き出される。しかしながら、図３０に示されているように非ゼロ・ヒステリシス項が導入されるときには、このヒステリシス項が不均衡係数を再正規化する。変動する不均衡項およびヒステリシス項を用いてニューラル・ネットワーク訓練が実行されるときには、再正規化された不均衡項ｒ／（ｈｎ＋１）を使用してネットワーク訓練の性能を予測することができることが示されている。図３０の各データ点の標識は、使用された不均衡値（ｒ）が、対応するデータ点に対するものであることを示し、再正規化された非対称性ｒ／（ｈｎ＋１）が、訓練結果を制御する関連パラメータであることは明らかである。
【００７５】
図３１は、１つまたは複数の実施形態による、（図３３のＲＰＵアレイ１５００などの）抵抗型処理ユニット（ＲＰＵ）アレイを形成する方法のフロー・チャート１３００である。ＲＰＵアレイ１５００は説明目的で提供される。図１〜３０、３２および３３を参照することができる。
【００７６】
ブロック１３０２で、一組の導電性行ワイヤ１５０２Ａ〜Ｎを提供する。ブロック１３０４で、一組の導電性列ワイヤ１５０４Ａ〜Ｎであり、一組の導電性行ワイヤ１５０２Ａ〜Ｎと一組の導電性列ワイヤ１５０４Ａ〜Ｎとの間の交差部に複数のクロスポイントを形成するように構成された、一組の導電性列ワイヤ１５０４Ａ〜Ｎを提供する。ブロック１３０６で、ヒステリシスによって定義されたコンダクタンス状態を各々が有する複数のヒステリシス２端子ＲＰＵである複数の２端子ＲＰＵ１５５０であり、複数のクロスポイントの各々に、複数の２端子ＲＰＵ１５５０のうちの２端子ＲＰＵが位置する、複数の２端子ＲＰＵ１５５０を提供する。
【００７７】
複数の２端子ＲＰＵ１５５０のヒステリシスは、コンダクタンス状態の変化が所定の量のパルスの遅延を有するようにするよう、構成される。この所定の量のパルス（すなわちヒステリシスｈｎ）は、いくつかの更新サイクル・パルスである。（バックプロパゲーション・アルゴリズムの）更新パルスは、一組の導電性行ワイヤ５０２Ａ〜Ｎと一組の導電性列ワイヤ１５０４Ａ〜Ｎの両方に（同時にまたはほぼ同時に）印加されるように構成される。コンダクタンス状態の変化は、コンダクタンス状態の第１の方向から第２の方向への切り換わり、またはコンダクタンス状態の第２の方向から第１の方向への切り換わりと定義と定義される。
【００７８】
この遅延（すなわちヒステリシス）は、コンダクタンス状態の第１の方向から第２の方向への切り換わりと、コンダクタンス状態の第２の方向から第１の方向への切り換わりとで等しい。更新パルスは、正パルスと負パルスとの間で切り換わる。正パルスは、コンダクタンス状態の第１の方向を生じさせ、負パルスは、コンダクタンス状態の第２の方向を生じさせる。
【００７９】
複数の２端子ＲＰＵ１５５０は、第１の方向の傾きと第２の方向の傾きとの間のコンダクタンス状態の不均衡を有する不均衡デバイスである。複数の２端子ＲＰＵ１５５０内のヒステリシスは不均衡を低下させる。
【００８０】
図３２は、１つまたは複数の実施形態による、ヒステリシス動作のための方法のフロー・チャート１４００である。図１〜３１および３３を参照することができる。ブロック１４０２で、少なくとも１つのヒステリシス抵抗型処理ユニット（ＲＰＵ）１５５０によって（１つまたは複数の電圧源からの）更新パルスを受け取る。ブロック１４０４で、前記少なくとも１つのヒステリシスＲＰＵ１５５０が、更新パルスに応答して、コンダクタンス状態の変化を有するようにする。このコンダクタンス状態の変化は、所定の量の更新パルスの遅延（すなわちヒステリシスｈｎ）を有する。
【００８１】
技術的な利益は、ニューラル・ネットワーク訓練のためのヒステリシス更新を含む抵抗型処理ユニット／デバイスを含む。ヒステリシス抵抗型処理ユニット／デバイスは、抵抗型処理ユニットにヒステリシス更新を導入することによって許容差を増大させて、抵抗型処理ユニットの非対称性に起因する不均衡を補正し、それによって抵抗型処理ユニットのコンダクタンス値の上昇変化と下降変化における不均衡（不等性）を補正する。
【００８２】
本発明のさまざまな実施形態の以上の説明は、例示のために示したものであり、以上の説明が網羅的であること、または、以上の説明が、開示された実施形態だけに限定されることは意図されていない。当業者には、記載された実施形態の範囲および思想を逸脱しない多くの変更および変形が明らかである。本明細書で使用した用語は、それらの実施形態の原理、実用的用途、もしくは市販されている技術にはない技術的改良点を最もよく説明するように、または本明細書に開示された実施形態を当業者が理解できるように選択した。
【００８３】
本発明は、インテグレーションの任意の可能な技術的詳細レベルにおいて、システム、方法またはコンピュータ・プログラム製品、あるいはこれらの組合せとすることができる。このコンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体を含むことができる。
【００８４】
このコンピュータ可読ストレージ媒体は、命令実行デバイスが使用するための命令を保持および格納することができる有形のデバイスとすることができる。このコンピュータ可読ストレージ媒体は例えば、限定はされないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたはこれらの適当な組合せとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、リードオンリー・メモリ（ＲＯＭ）、消去可能プログラム可能リードオンリー・メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク・リードオンリー・メモリ（ＣＤ−ＲＯＭ）、ディジタル・バーサタイル・ディスク（ＤＶＤ）、メモリ・スティック、フロッピー（Ｒ）・ディスク、機械的にコード化されたデバイス、例えばパンチカードまたはその上に命令が記録された溝の中の一段高くなった構造体、およびこれらの適当な組合せを含む。本明細書で使用されるコンピュータ可読ストレージ媒体は、それ自体が一時的信号、例えば電波もしくは他の自由に伝搬する電磁波、ウェーブガイドもしくは他の伝送体内を伝搬する電磁波（例えば光ファイバ・ケーブル内を通る光パルス）、または電線を通して伝送される電気信号であると解釈されるべきではない。
【００８５】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から対応するそれぞれのコンピューティング／処理デバイスにダウンロードすることができ、またはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークまたは無線ネットワークあるいはそれらの組合せを介して外部コンピュータもしくは外部ストレージ・デバイスにダウンロードすることができる。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバ、あるいはこれらの組合せを含んでもよい。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、コンピュータ可読プログラム命令をネットワークから受け取り、それらのコンピュータ可読プログラム命令を、対応するそれぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【００８６】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データもしくは集積回路用の構成データであってもよく、またはＳｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋または他の同種のものなどのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同種のプログラミング言語などの手続き型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組合せで書かれた、ソース・コードもしくはオブジェクト・コードであってもよい。このコンピュータ可読プログラム命令は、全体がユーザのコンピュータ上で実行されてもよく、一部がユーザのコンピュータ上で実行されてもよく、独立型ソフトウェア・パッケージとして実行されてもよく、一部がユーザのコンピュータ上で、一部が遠隔コンピュータ上で実行されてもよく、または全体が遠隔コンピュータもしくはサーバ上で実行されてもよい。上記の最後のシナリオでは、遠隔コンピュータが、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、またはこの接続が、外部コンピュータに対して（例えばインターネット・サービス・プロバイダを使用してインターネットを介して）実施されてもよい。いくつかの実施形態では、本発明の態様を実行するために、例えばプルグラム可能論理回路、フィールド・プルグラム可能ゲート・アレイ（ＦＰＧＡ）またはプルグラム可能論理アレイ（ＰＬＡ）を含む電子回路が、このコンピュータ可読プログラム命令の状態情報を利用してその電子回路をパーソナライズすることにより、このコンピュータ可読プログラム命令を実行してもよい。
【００８７】
本明細書では、本発明の態様が、本発明の実施形態に基づく方法、装置（システム）およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方の図を参照して説明される。それらのフローチャート図またはブロック図あるいはそれらの両方の図の各ブロック、およびそれらのフローチャート図またはブロック図あるいはその両方の図のブロックの組合せは、このコンピュータ可読プログラム命令によって実装することができることが理解される。
【００８８】
これらのコンピュータ可読プログラム命令は、マシンを形成する汎用コンピュータ、専用コンピュータまたは他のプルグラム可能データ処理装置のプロセッサに、それらのコンピュータまたは他のプルグラム可能データ処理装置のプロセッサによって実行されるこれらの命令が、これらのフローチャートまたはブロック図あるいはその両方の図のブロックに指定された機能／動作を実装する手段を生成するような態様で提供することができる。これらのコンピュータ可読プログラム命令はさらに、特定の方式で機能するようにコンピュータ、プルグラム可能データ処理装置または他のデバイスあるいはこれらの組合せに指図することができるコンピュータ可読ストレージ媒体に、その中に命令が格納されたコンピュータ可読ストレージ媒体が、これらのフローチャートまたはブロック図あるいはその両方の図のブロックに指定された機能／動作の態様を実装する命令を含む製造物品を含むような態様で格納することができる。
【００８９】
コンピュータ可読プログラム命令はさらに、コンピュータ、他のプルグラム可能装置または他のデバイス上で一連の動作ステップを実行させて、コンピュータによって実装される工程を生み出すために、このコンピュータ、他のプルグラム可能データ処理装置または他のデバイス上に、このコンピュータ、他のプルグラム可能装置または他のデバイス上で実行されるこれらの命令が、これらのフローチャートまたはブロック図あるいはその両方の図のブロックに指定された機能／動作を実装するような態様でロードすることができる。
【００９０】
添付図中のフローチャートおよびブロック図は、本発明のさまざまな実施形態に基づくシステム、方法およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能および動作を示す。この点に関して、それらのフローチャートまたはブロック図の各ブロックは、指定された論理機能を実装する１つまたは複数の実行可能命令を含む、命令のモジュール、セグメントまたは部分を表すことがある。いくつかの代替的実装では、これらのブロックに示された機能が、図に示された順序とは異なる順序で実施される。例えば、連続して示された２つのブロックが、実際は、実質的に同時に実行されることがあり、または、含まれる機能によってはそれらのブロックが逆の順序で実行されることもある。それらのブロック図またはフローチャート図あるいはその両方の図の各ブロック、ならびにそれらのブロック図またはフローチャート図あるいはその両方の図のブロックの組合せを、指定された機能もしくは動作を実行しまたは専用ハードウェアとコンピュータ命令の組合せを実行するハードウェアベースの専用システムによって実装することができることにも留意すべきである。
【図１】
2020514886.tif 000042
【図２】
2020514886.tif 000043
【図３】
2020514886.tif 000044
【図４】
2020514886.tif 000045
【図５】
2020514886.tif 000046
【図６】
2020514886.tif 000047
【図７】
2020514886.tif 000048
【図８】
2020514886.tif 000049
【図９】
2020514886.tif 000050
【図１０】
2020514886.tif 000051
【図１１】
2020514886.tif 000052
【図１２】
2020514886.tif 000053
【図１３】
2020514886.tif 000054
【図１４】
2020514886.tif 000055
【図１５】
2020514886.tif 000056
【図１６】
2020514886.tif 000057
【図１７】
2020514886.tif 000058
【図１８】
2020514886.tif 000059
【図１９】
2020514886.tif 000060
【図２０】
2020514886.tif 000061
【図２１】
2020514886.tif 000062
【図２２】
2020514886.tif 000063
【図２３】
2020514886.tif 000064
【図２４】
2020514886.tif 000065
【図２５】
2020514886.tif 000066
【図２６】
2020514886.tif 000067
【図２７】
2020514886.tif 000068
【図２８】
2020514886.tif 000069
【図２９】
2020514886.tif 000070
【図３０】
2020514886.tif 000071
【図３１】
2020514886.tif 000072
【図３２】
2020514886.tif 000073
【図３３】
2020514886.tif 000074
【国際調査報告】
2020514886.tif 000075
2020514886.tif 000076