特許第6333477号(P6333477)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヒューレット パッカード エンタープライズ デベロップメント エル ピーの特許一覧

特許6333477ドット積を求めるためのメムリスティブクロスバーアレイ
<>
  • 特許6333477-ドット積を求めるためのメムリスティブクロスバーアレイ 図000007
  • 特許6333477-ドット積を求めるためのメムリスティブクロスバーアレイ 図000008
  • 特許6333477-ドット積を求めるためのメムリスティブクロスバーアレイ 図000009
  • 特許6333477-ドット積を求めるためのメムリスティブクロスバーアレイ 図000010
  • 特許6333477-ドット積を求めるためのメムリスティブクロスバーアレイ 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6333477
(24)【登録日】2018年5月11日
(45)【発行日】2018年5月30日
(54)【発明の名称】ドット積を求めるためのメムリスティブクロスバーアレイ
(51)【国際特許分類】
   G06F 12/00 20060101AFI20180521BHJP
   G06F 7/53 20060101ALI20180521BHJP
   G11C 13/00 20060101ALN20180521BHJP
【FI】
   G06F12/00 560F
   G06F12/00 592
   G06F12/00 597Z
   G06F7/53
   !G11C13/00 270G
【請求項の数】15
【全頁数】18
(21)【出願番号】特願2017-519526(P2017-519526)
(86)(22)【出願日】2014年10月23日
(65)【公表番号】特表2018-501537(P2018-501537A)
(43)【公表日】2018年1月18日
(86)【国際出願番号】US2014062010
(87)【国際公開番号】WO2016064406
(87)【国際公開日】20160428
【審査請求日】2017年4月11日
(73)【特許権者】
【識別番号】515153738
【氏名又は名称】ヒューレット パッカード エンタープライズ デベロップメント エル ピー
【氏名又は名称原語表記】Hewlett Packard Enterprise Development LP
(74)【代理人】
【識別番号】100087642
【弁理士】
【氏名又は名称】古谷 聡
(74)【代理人】
【識別番号】100082946
【弁理士】
【氏名又は名称】大西 昭広
(74)【代理人】
【識別番号】100121061
【弁理士】
【氏名又は名称】西山 清春
(74)【代理人】
【識別番号】100195693
【弁理士】
【氏名又は名称】細井 玲
(72)【発明者】
【氏名】ジェ,ニン
(72)【発明者】
【氏名】ヤン,ジアンフア
(72)【発明者】
【氏名】ストラカン,ジョン,ポール
(72)【発明者】
【氏名】フ,ミャオ
【審査官】 後藤 彰
(56)【参考文献】
【文献】 特開2009−282782(JP,A)
【文献】 米国特許出願公開第2007/0233761(US,A1)
【文献】 特開2005−251381(JP,A)
【文献】 米国特許出願公開第2013/0028004(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06F 7/53
G11C 13/00
(57)【特許請求の範囲】
【請求項1】
ドット積を求めるためのメムリスティブクロスバーアレイであって、
1以上の行ラインと、
前記行ラインと交差して1以上の交差部を形成する1以上の列ラインと、
前記交差部において、前記行ラインと前記列ラインの間に結合された1以上の抵抗変化型メモリデバイスと、
前記抵抗変化型メモリデバイスのそれぞれの列ラインを通って該抵抗変化型メモリデバイスから出力される全ての電流を収集するための電流収集ライン
を備え、
前記抵抗変化型メモリデバイスは、1以上のプログラミング信号を受け取り、該プログラミング信号は、行列内の1以上の値を定め、
前記抵抗変化型メモリデバイスは、1以上のベクトル信号を受け取り、該ベクトル信号は、前記抵抗変化型メモリデバイスに加えられる1以上のベクトル値を定め、
前記収集された電流は、前記行列の行列値と前記ベクトル値とのドット積に等しいことからなる、メムリスティブクロスバーアレイ。
【請求項2】
それぞれの抵抗変化型メモリデバイスに基準電圧を加えるために、それぞれの行ラインに接続された1以上の回路をさらに備える、請求項1のメムリスティブクロスバーアレイ。
【請求項3】
前記回路は、前記メムリスティブクロスバーアレイの動作領域をシフトさせ、該動作領域のシフトは、前記回路への電圧入力の電圧と、前記回路への基準電圧入力の電圧との比に基づく、請求項2のメムリスティブクロスバーアレイ。
【請求項4】
前記比は、前記電圧入力最大電圧に対する前記基準電圧入力の電圧の比であり、該比が1/2である、請求項3のメムリスティブクロスバーアレイ。
【請求項5】
前記回路は、負帰還オペアンプである、請求項2〜4のいずれかのメムリスティブクロスバーアレイ。
【請求項6】
前記ドット積の合計と積の全ての計算が、前記メムリスティブクロスバーアレイによって同時に実行される、請求項1〜5のいずれかのメムリスティブクロスバーアレイ。
【請求項7】
前記メムリスティブクロスバーアレイは、第2のコンピュータプログラムに関してアクセラレータとして使用され、これによって、前記メムリスティブクロスバーアレイの出力が、該第2のコンピュータプログラムに対する入力として、処理装置に結合されることからなる、請求項1〜6のいずれかのメムリスティブクロスバーアレイ。
【請求項8】
ドット積を得る方法であって、
1以上の第1の電圧を、メムリスティブクロスバーアレイ内の対応する数の行ラインに加えて、該行ラインと1以上の列ラインとの間の交差部に配置された対応する数のメモリスタの抵抗値を変化させるステップであって、前記第1の電圧は、行列内の対応する数の値をそれぞれ定める、ステップと、
1以上の第2の電圧を、前記メムリスティブクロスバーアレイ内の対応する数の行ラインに加えるステップであって、前記第2の電圧は、対応する数のベクトル値を定める、ステップと、
前記列ラインからの出力電流を収集するステップであって、収集された出力電流は前記ドット積を定める、ステップ
を含む方法。
【請求項9】
それぞれのメモリスタに初期電圧を加えて、該メモリスタの抵抗を初期抵抗に設定するステップをさらに含む、請求項8の方法。
【請求項10】
前記初期電圧が、それぞれの行ラインに接続された1以上の回路によってそれぞれのメモリスタに加えられる、請求項9の方法。
【請求項11】
メムリスティブクロスバーアレイの動作領域をシフトさせるステップをさらに含み、該動作領域のシフトは、前記回路への電圧入力の電圧値と、前記回路への基準電圧入力の電圧値との比に基づく、請求項10の方法。
【請求項12】
前記比は、前記電圧入力最大電圧値に対する前記基準電圧入力の電圧値の比であり、該比が1/2である、請求項11の方法。
【請求項13】
ドット積を求めるためのコンピューティング装置であって、
プロセッサと、
前記プロセッサに結合されたメモリスタクロスバーアレイ
を備え、
前記メモリスタクロスバーアレイは、
1以上の行ラインと、
前記行ラインと交差して1以上の交差部を形成する1以上の列ラインと、
前記交差部において、前記行ラインと前記列ラインの間に結合された1以上のメモリスタデバイスと、
1以上の回路
を備え、
前記メモリスタデバイスは、1以上のプログラミング信号を受け取り、該プログラミング信号は、行列内の1以上の値を定め、
前記メモリスタデバイスは、1以上のベクトル信号を受け取り、該ベクトル信号は、前記メモリスタデバイスに加えられる1以上のベクトル値を定め、
前記1以上の回路は、それぞれのメモリスタデバイスに基準電圧を加えて、該メモリスタデバイスの抵抗を初期抵抗に設定するために、それぞれの行ラインに接続され、
前記回路は、該回路への電圧入力の電圧と、該回路への基準電圧入力の電圧との比に基づいて、前記メリスクロスバーアレイの動作領域をシフトさせることからなる、コンピューティング装置。
【請求項14】
前記メモリスタクロスバーアレイは、前記メモリスタデバイスのそれぞれの列ラインを通って該メモリスタデバイスから出力される全ての電流を収集するための電流収集ラインをさらに備え、
前記収集された電流は、前記行列の行列値と前記ベクトル値とのドット積に等しいことからなる、請求項13のコンピューティング装置。
【請求項15】
前記プロセッサは、前記メリスクロスバーアレイの出力を第2のコンピュータプログラムに入力する、請求項13または14コンピューティング装置
【発明の詳細な説明】
【背景技術】
【0001】
しばしばメモリスタと呼ばれる抵抗変化型メモリ素子(resistivememory element)は、該メモリスタに電圧または電流を加えることによって異なる抵抗状態にプログラムすることができるデバイスである。メモリスタの状態をプログラミングした後に、該メモリスタの状態を読み取ることができる。メモリスタの状態は、該デバイスを不揮発性とみなすのに十分な長さの一定期間にわたって安定である。いくつかのメモリスタをクロスバーアレイ内に含めることができ、該クロスバーアレイ内では、いくつかの列ラインといくつかの行ラインが交差部で交差しており、該メモリスタは、該交差部で該列ライン及び該行ラインに結合している。
【先行技術文献】
【特許文献】
【0002】
【特許文献1】(補充可能性あり)
【図面の簡単な説明】
【0003】
添付の図面は、本明細書に開示されている原理の種々の例を示すものであって、本開示の一部である。図示の例は、単に説明のために提供したものであって、特許請求の範囲を限定するものではない。
図1】本明細書に開示されている原理の1例にしたがう、ドット積を求めるためのコンピューティングシステムの図である。
図2】本明細書に開示されている原理の1例にしたがう、図1のコンピューティングシステムの差動モードドット積エンジン(DPE)メモリスタアレイ内で使用されるメムリスティブクロスバーアレイの図である。
図3】本明細書に開示されている原理の1例にしたがう、図1及び図2の差動モードドット積エンジン(DPE)メモリスタアレイの回路図である。
図4】本明細書に開示されている原理の1例にしたがう、メモリスタの電流対電圧ループを示す図3のメムリスティブデバイスの関数のグラフである。
図5】本明細書に開示されている原理の1例にしたがう、図1及び図3の差動モードDPEメムリスティブアレイの動作方法を示すフローチャートである。 図面を通じて、同じ参照番号は類似の(ただし、必ずしも同一ではない)要素を示している。
【発明を実施するための形態】
【0004】
メモリスタのクロスバーアレイを、不揮発性固体メモリ、プログラマブルロジック(プログラム可能な論理回路)、信号処理、制御システム、パターン認識、及びその他の用途を含む種々の用途で使用することができる。本出願は、たとえば、いくつかの入力行列値(行列値は、該行列の各成分の値である。行列値は、マトリックス値またはマトリクス値ともいう。以下同じ)といくつかの入力ベクトル値とのドット積を求めるために使用されるメムリスティブクロスバーアレイに向けられている。メムリスティブクロスバーアレイは、いくつかの行ライン(行ラインは行線ともいう。以下同じ)、該行ラインと交差していくつかの交差部を形成するいくつかの列ライン(列ラインは列線ともいう。以下同じ)、及び、該交差部において該行ラインと該列ラインの間に結合されたいくつかの抵抗変化型メモリデバイスを備える。線形性を改善し、良好な信号対雑音比及び改善されたノイズマージンを得るために、いくつかの増幅器が、それぞれの行ラインに接続され、それぞれの抵抗変化型メモリデバイスに基準電圧を印加して該増幅器を異なる領域で動作させる。
【0005】
抵抗変化型メモリデバイス(抵抗変化型メモリ素子ともいう。以下同じ)はまた、いくつかのプログラミング信号を受け取る。それらのプログラミング信号は、行列(マトリックス)内のいくつかの値を定める(すなわち、それぞれのプログラミング信号に対応してそれぞれの値が決まる)。それらの抵抗変化型メモリデバイスはまた、いくつかのベクトル信号を受け取る。それらのベクトル信号は、該抵抗変化型メモリデバイスに加えられることになるいくつかのベクトル値を表している。該抵抗変化型メモリデバイスのそれぞれの列ラインを通って該抵抗変化型メモリデバイスから出力される全ての電流を収集するために、電流収集ラインが、それぞれの列ラインの出力に結合される。収集された電流は、行列値とベクトル値のドット積に等しい。
【0006】
本明細書及び特許請求の範囲で使用されている「ドット積」という用語は、スカラーを生成する2つのベクトルの積として広義に理解されるべきであることが意図されており、ここで、該ドット積の値は、それらのベクトルの大きさとそれらのベクトル間の角度の余弦(コサイン)との積である。1例では、それらのベクトルを、ドット積を得るために乗算することができる行列(マトリックス)として表すことができる。ドット積の他の通常の名称としてスカラー積や内積がある。ドット積の計算は、デジタルコンピュータにとって計算コストが高いタスクである。これは、特に、行列が、密行列の場合などのように、疎ではないかまたは対称ではない時に当てはまる。対称行列は、正方行列であり、自身の転置行列と等しい。疎行列は、要素(成分)のほとんどがゼロである行列である。これとは対照的に、行列の要素(成分)のほとんどが非ゼロの場合には、その行列は密であるとみなされる。
【0007】
さらに、本明細書及び特許請求の範囲で使用されている「いくつかの」という用語またはこれに類似の用語は、1(1を含む)から無限大までの任意の正の数(0は数ではないが数がないことを表す)として広義に理解されるべきことが意図されている。
【0008】
以下の説明では、説明の便宜上、本発明によるシステム及び方法を完全に理解できるようにするために、多くの特定の細部が説明されている。しかしながら、当業者には、それらの特定の細部なくして、本発明による装置、システム、及び方法を実施できることは明らかであろう。本明細書における「1例」もしくはこれに類似の用語は、その例に関連して説明されている特定の特徴、構造、または特性が、説明されているように含まれるが、他の例には含まれなくてもよいことを意味する。
【0009】
図1は、本開示の原理の1例にしたがう、ドット積を求めるためのコンピューティングシステム(100)の図である。コンピューティングシステム(100)を、電子装置において実施することができる(または電子装置に組み込むことができる)。電子装置の例には、いくつかある中でも特に、サーバー、デスクトップコンピューター、ラップトップコンピュータ、携帯情報端末(PDA)、モバイル機器、スマートフォン、ゲーム機、及びタブレットが含まれる。
【0010】
コンピューティングシステム(100)を、独立型のハードウェア、モバイル用途、コンピューティングネットワーク経由、またはそれらの組み合わせを含む任意のデータ処理状況で使用することができる。さらに、コンピューティングシステム(100)を、コンピューティングネットワーク、パブリッククラウドネットワーク、プライベートクラウドネットワーク、ハイブリッドクラウドネットワーク、その他の形態のネットワーク、または、それらの組み合わせにおいて使用することができる。1例では、コンピューティングシステム(100)によって提供される方法は、たとえば、サードパーティーによってネットワークを通じたサービスとして提供される。この例では、該サービスは、いくつかのアプリケーションをホストするSaaS(Software as a Service:サービスとしてのソフトウェア)や、たとえば、とりわけ、オペレーティングシステム、ハードウェア、及び記憶装置を含むコンピューティングプラットフォームをホストするPaaS(Platform as a Service:サービスとしてのプラットフォーム)や、たとえば、とりわけ、サーバー、記憶要素、ネットワーク、及び構成要素(コンポーネント)などの装備をホストするIaaS(Infrastructure as a Service:サービスとしてのインフラストラクチャー)や、APIaaS(API as a Service:クラウド型APIサービス)や、その他の形態のネットワークサービス、またはそれらの組み合わせなどを含むことができる。本発明によるシステムを、1つまたは複数のハードウェアプラットフォームにおいて実施することができ、この場合、該システム内のモジュールを1つのプラットフォームにおいてまたは複数のプラットフォームにわたって実行することができる。それらのモジュールを、種々の形態のクラウド技術及びハイブリッドクラウド技術で動作させることができ、または、クラウドにおいてもしくはクラウド外で実施することができるSaaSとして提供することができる。別の例では、コンピューティングシステム(100)によって提供される方法は、ローカル管理者によって実行される。
【0011】
コンピューティングシステム(100)は、その所望の機能を達成するために、種々のハードウェアコンポーネントを備えている。それらのハードウェアコンポーネントには、いくつかのプロセッサ(101)、いくつかのデータ記憶装置(102)、いくつかの周辺機器アダプタ(103)、及び、いくつかのネットワークアダプタ(104)がある。これらのハードウェアコンポーネントを、いくつかのバス及び/又はネットワーク接続を用いて相互接続することができる。1例では、プロセッサ(101)、データ記憶装置(102)、周辺機器アダプタ(103)、及びネットワークアダプタ(104)を、バス(105)を介して通信可能に接続することができる。
【0012】
プロセッサ(101)は、データ記憶装置(102)から実行可能コードを取り出して、該実行可能コードを実行するためのハードウェアアーキテクチャを有することができる。該実行可能コードは、プロセッサ(101)によって実行されると、プロセッサ(101)に、いくつかの(数の)第1の電圧を、メムリスティブクロスバーアレイ内の対応する数の行ラインに加えて、該行ラインといくつかの列ラインとの間の交差部に配置された対応する数のメモリスタの抵抗値を変化させるという機能を少なくとも実施させることができる。ここで、該第1の電圧のそれぞれは、行列内の対応する数の値をそれぞれ表す。該実行可能コードはまた、プロセッサ(101)によって実行されると、プロセッサ(101)に、いくつかの(数の)第2の電圧を、メムリスティブクロスバーアレイ内の対応する数の行ラインに加えるという機能を少なくとも実施させることができる。ここで、該第2の電圧のそれぞれは、対応する数のベクトル値をそれぞれ表す。該実行可能コードはさらに、プロセッサ(101)によって実行されると、プロセッサ(101)に、列ラインからの出力電流を収集する(集める)という機能を少なくとも実施させることができる。ここで、該収集された出力電流はドット積を表す。コンピューティングシステム(100)の機能は、本明細書及び/又は図面に記載されている方法にしたがう。プロセッサ(101)は、コードを実行している間に、いくつかの残りのハードウェアユニットから入力を受けとり、及び、それらのハードウェアウニットに出力を提供することができる。
【0013】
データ記憶装置(102)は、プロセッサ(101)または他の処理装置によって実行される実行可能なプログラムコードなどのデータを格納することができる。説明されるように、データ記憶装置(102)は、プロセッサ(101)が本明細書に記載されている機能を少なくとも実施するために実行するいくつかのアプリケーションを表すコンピュータコードを格納することができる。
【0014】
データ記憶装置(102)は、揮発性メモリ及び不揮発性メモリを含む種々のタイプのメモリ(記憶装置)モジュールを含むことができる。たとえば、今の例のデータ記憶装置(102)は、ランダムアクセスメモリ(RAM)(106)、読取り専用メモリ(ROM)(107)、及びハードディスクドライブ(HDD)メモリ(108)を備えている。他の多くのタイプのメモリを使用することもでき、本明細書では、本開示の原理の特定の用途に適合しうる(1つ以上の)さまざまなタイプのメモリをデータ記憶装置(102)において使用することが考慮されている。いくつかの例では、データ記憶装置(102)内の(2以上の)異なるタイプのメモリを、データ記憶の(2以上の)異なる必要性に対してそれぞれ使用することができる。たとえば、いくつかの例では、プロセッサ(101)は、読取り専用メモリ(ROM)(107)からブートすることができ、ハードディスクドライブ(HDD)メモリ(108)に不揮発性記憶を維持することができ、及び、ランダムアクセスメモリ(RAM)(106)に格納されているプログラムコードを実行することができる。
【0015】
データ記憶装置(102)は、とりわけ、コンピュータ可読媒体、またはコンピュータ可読記憶媒体、または非一時的なコンピュータ可読媒体を含むことができる。たとえば、データ記憶装置(102)を、電子、磁気、光学、電磁、赤外線、もしくは半導体システム/装置/デバイス、または、これらの任意の適切な組み合わせとすることができる(ただし、それらに限定されない)。コンピュータ可読記憶媒体のより具体的な例は、たとえば、いくつかのワイヤ(電線)を有する電気的接続、携帯型コンピュータディスケット(たとえばフロッピーディスク)、ハードディスク、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、消去可能PROM(EPROMまたはフラッシュメモリ)、携帯型コンパクトディスク読取り専用メモリ(CD−ROM)、光学式記憶装置、磁気記憶装置、または、これらの任意の適切な組み合わせを含むことができる。本明細書の文脈において、コンピュータ可読記憶媒体を、命令実行システム/装置/デバイスによってまたはそれらに関連して使用されるコンピュータ使用可能プログラムコードを含むことができもしくは格納することができる任意の有形の媒体とすることができる。別の例では、コンピュータ可読記憶媒体を、命令実行システム/装置/デバイスによってまたはそれらに関連して使用されるプログラムを含むことができもしくは格納することができる任意の非一時的な媒体とすることができる。
【0016】
コンピューティングシステム(100)内のハードウェアアダプタ(103、104)は、プロセッサ(101)が、コンピューティングシステム(100)内外の他の種々のハードウェア要素とインターフェースできるようにする。たとえば、周辺機器アダプタ(103)は、たとえば、表示装置(109)やマウスやキーボードなどの入力/出力装置とのインターフェースを提供することができる。周辺機器アダプタ(103)はまた、外部記憶装置などの他の外部装置、及び、たとえば、サーバー、スイッチ、及びルーターなどのいくつかのネットワーク装置、及び、クライアント装置、及びその他のタイプのコンピューティング装置、及びこれらの任意の組み合わせに対するアクセスを提供することができる。
【0017】
表示装置(109)を、コンピューティングシステム(100)のユーザーがコンピューティングシステム(100)の機能と相互作用(対話など)し、及び該機能を実施できるようにするために設けることができる。周辺機器アダプタ(103)はまた、プロセッサ(101)と、表示装置(109)、プリンター、または他の媒体出力装置との間のインターフェースを生成することができる。ネットワークアダプタ(104)は、たとえばネットワーク内の他のコンピューティング装置とのインターフェースを提供することができ、これによって、コンピューティングシステム(100)と該ネットワーク内に配置された他の装置との間のデータ伝送を可能にする。
【0018】
コンピューティングシステム(100)は、プロセッサ(101)によって実行されると、表示装置(109)に、データ記憶装置(102)に格納されているいくつかのアプリケーションを表す実行可能なプログラムコードに関連付けられているいくつかのグラフィカルユーザーインターフェース(GUI)を表示することができる。これらのGUIは、たとえば、より詳細に後述するように、ユーザーが、コンピューティングシステム(100)と対話して、差動モードドット積エンジン(DPE)メモリスタアレイ(110)に関連(もしくはそれと共同)して行列値及びベクトル値を入力できるようにするインタラクティブな(すなわち対話型の)スクリーンショットを表示することができる。さらに、ユーザーは、表示装置(109)のGUIにおいていくつかのインタラクティブなジェスチャーをする(またはジェスチャー入力をする)ことによって、入力データに基づくドット積の値を得ることができる。表示装置(109)の例には、いくつかある中でも特に、コンピュータの画面、ラップトップコンピュータの画面、モバイル機器の画面、携帯情報端末(PDA)の画面、及びタブレットの画面が含まれる。
【0019】
コンピューティングシステム(100)はさらに、差動モードドット積エンジン(DPE)メムリスティブアレイ(110)を備えることができる。より詳しく後述するように、差動モードDPEメムリスティブアレイ(110)は、複数の入力の加重和(重み付き和)を計算するためにアレイ内で相互に機能し合ういくつかのメモリスタを含むいくつかの要素を備えている。差動モードDPEメムリスティブアレイ(110)を、いくつかのアプリケーションで使用することができる。たとえば、差動モードDPEメムリスティブアレイ(110)をしきい値論理ゲート(TLG)として使用して、行列積(マトリックス積)を計算し、その出力をある閾値と比較することができる。したがって、差動モードDPEメムリスティブアレイ(110)を、より汎用的な処理装置で実行されるソフトウェアで可能な速さよりも速くいくつかの機能を実行するアクセラレータとして使用することができる。差動モードDPEメムリスティブアレイ(110)は、コンピューティングシステム(100)の内部にある装置として図示されているが、別の例では、差動モードDPEメムリスティブアレイ(110)を、コンピューティングシステム(100)に結合された周辺装置とすることができ、または、コンピューティングシステム(100)に結合された周辺装置内に含めることができる。
【0020】
コンピューティングシステム(100)はさらに、本明細書で説明されているシステム及び方法の実施に使用されるいくつかのモジュールを備えている。コンピューティングシステム(100)内の種々のモジュールは、個別に実行されることができる実行可能なプログラムコードを備えている。この例では、それらの種々のモジュールを、別個のコンピュータプログラム製品として格納することができる。別の例では、コンピューティングシステム(100)内のそれらの種々のモジュールを、いくつかのコンピュータプログラム製品内で組み合わせることができ、この場合、それぞれのコンピュータプログラム製品はいくつかの該モジュールを含む。
【0021】
コンピューティングシステム(100)は、プロセッサ(101)によって実行されると、差動モードDPEメムリスティブアレイ(110)の機能を支援するドット積エンジンモジュール(111)を備えることができる。ドット積エンジンモジュール(111)は、たとえば、ドット積の数学的計算で処理される行列を定める(または指定する)いくつかの入力値を受け取る。ドット積エンジンモジュール(111)は、差動モードDPEメムリスティブアレイ(110)内のいくつかのメモリスタをプログラムするために、それらの入力値を、それらのメモリスタへのプログラミング信号として差動モードDPEメムリスティブアレイ(110)に送ることができる。ドット積エンジンモジュール(111)はまた、それらのメモリスタにプログラムされた行列に関連して処理されるベクトル入力を受け取ることができる。ドット積エンジンモジュール(111)はさらに、ドット積を表す値を得て、分析またはさらなる処理のために、該値をコンピューティングシステム(100)または別のコンピューティング装置にデータとして伝送することができる。
【0022】
図2は、本開示の原理の1例にしたがう、図1のコンピューティングシステム(100)の差動モードドット積エンジン(DPE)メモリスタアレイ(110)内で使用されるメムリスティブクロスバーアレイ(200)の図である。メムリスティブクロスバーアレイ(200)は、いくつかの導電性の行ライン(201)、及びいくつかの導電性の列ライン(202)を備えることができる。図2には、3つの行ライン(201)と4つの列ライン(202)が示されているが、任意の数の行ライン(201)及び任意の数の列ライン(202)を、メムリスティブクロスバーアレイ(200)に設けることができる。行ライン(201)と列ライン(202)は破線(207)で示されているように交差部で交差している。いくつかの抵抗変化型メモリデバイスすなわち「メモリスタ」(203)が、それらの交差部(207)に配置されて、行ライン(201)と列ライン(202)を電気的に接続する。
【0023】
メムリスタンスは、メモリスタと呼ばれる電子部品の特性である。電荷が回路を一方向に流れると、該回路の該電子部品の抵抗(値)は増加する。電荷が該回路内を該一方向とは逆の方向に流れると、該抵抗(値)は減少する。印加電圧をオフにすることによって電荷の流れを止めた場合には、該電子部品は、該電子部品が有していた直近の抵抗値(すなわち、電荷の流れが止められる直前に有していた抵抗値)を「記憶しておき」、電荷の流れが再び開始したときの該回路の抵抗値は、該回路が最後にアクティブであったときの抵抗値である。メモリスタは、その抵抗値を変化させることができる抵抗デバイスである。
【0024】
メモリスタ(203)内のコンダクタンスチャンネルを、各メモリスタ(203)内に形成することができ、メモリスタ(203)をビットとして個別にアドレス指定することができる。クロスバーは、第1の組の平行なワイヤ(201)の各ワイヤを、該第1の組のワイヤ(201)と交差する第2の組の平行なワイヤ(202)の全ての要素に接続するスイッチの配列(アレイ)である。図2の例では、行ライン(201)と列ライン(202)は互いに垂直であるが、行ライン(201)と列ライン(202)を任意の角度で交差させることができる。
【0025】
メモリスタ(203)を、マイクロスケールまたはナノスケールで作製することができ、及び、メモリや論理回路のベースなどの、多種多様な電子回路のコンポーネント(構成要素)として使用することができる。メモリスタ(203)がメモリのベースとして使用されるときは、メモリスタ(203)を、情報のビットである1または0を格納するために使用することができる。メモリスタ(203)が、本明細書に記載されているように論理回路として使用されるときは、メモリスタ(203)を、フィールドプログラマブルゲートアレイ中のビットを表すために用いることができ、または、ワイヤードロジックプログラマブルロジックアレイのベースとして用いることができ、または、本明細書に記載されているように、ドット積エンジンとして用いることができる。本明細書に開示されているメモリスタ(203)を様々な他の用途で使用することもできる。メモリスタ(203)を、たとえば、メモリスタを形成する化学気相成長(化学蒸着)、スパッタリング、エッチング、リソグラフィー、もしくはその他の方法などの任意の適切な製造プロセスを通じて作製することができる。
【0026】
図2のメムリスティブクロスバーアレイ(200)はさらに、V、V、及びVとして示されているいくつかの入力値(205)を含んでいる。それらの入力値(205)を、該クロスバーアレイ内のそれぞれの交差部における個々のメモリスタ(203)の抵抗値を変化させて、それぞれの交差部におけるそれぞれの値が数学的行列(数学的マトリックス)内のそれぞれの値を表すところの該行列の表現(たとえばマッピング)を生成するために使用されるプログラム信号(プログラミング信号ともいう。以下同じ)とすることができる。個々のメモリスタ(203)の抵抗値のこの変化は、低い値から高い値への、または、高い値から低い値へのアナログ的な変化である。かくして、これらのメモリスタは、それらが有していた最後の抵抗値を「記憶している」点において「記憶抵抗器」である。
【0027】
入力値(205)を、該クロスバーアレイ中の各交差部における個々のメモリスタ(203)の抵抗値を読み出すために使用される読み出し信号とすることもでき、また、下記するように、計算に関わるそれぞれのメモリスタ(203)において行列値にベクトル値を乗じるための手段とすることもできる。本明細書ではベクトル信号と呼ばれる該読み出し信号を、メムリスティブクロスバーアレイ(200)の行ライン(201)に対する第2の入力値(205)として加えることができる。該ベクトル信号は、該プログラム信号によって表される行列に乗じられるベクトルを表すことができる。1例では、それらのベクトル信号は、メモリスタ(203)をプログラムするために使用される第1の電圧よりも小さい電圧値を有し、これによって、それらのベクトル信号によって加えられた電圧レベルが、該第1の電圧によってプログラムされているメモリスタ(203)の抵抗値を変えないようにする。該ベクトル信号は、このように、メモリスタ(203)の抵抗値を変えないことによって、読み出し信号として機能する。
【0028】
該ベクトル信号は、メモリスタ(203)のそれぞれの交差部(207)においてメモリスタ(203)と相互作用をし、その結果生じた電流は、206におけるそれぞれの列ライン(202)の端部において収集される。それぞれの列ライン(202)の和は、図2に示されているように、
【数1】

によって表される。ここで、gi1〜gi4は、メモリスタ(203)のコンダクタンス(値)である。これらの電圧値から得られたこれらの和は、列ベクトルの値を表している。より詳細に後述するように、それぞれの列ライン(202)のこれらの和を、変換回路(313)によって電流収集ライン(311)において合計して、図3に示されている信号値
【数2】

を得ることもできる。1例では、メモリスタ(203)の抵抗値を既知の値に設定するために、プログラム信号及びベクトル信号を加える前に、初期信号をメモリスタ(203)に加えることができる。
【0029】
図3は、本開示の原理の1例にしたがう、図1及び図2の差動モードDPEメムリスティブアレイ(110)の回路図(300)である。図3の差動モードDPEメムリスティブアレイ(110)は、図示のとおり1つの回路配置を有するものとして示されているが、本発明によるシステム及び方法の機能を達成するために任意の数の回路配置を使用することができる。図3に示されている差動モードDPEメムリスティブアレイ(110)は、図2に関して上述した行ライン(201)、列ライン(202)、及びメモリスタ(203)を備えている。上記のごとく、省略記号(301、302)で示されているように、任意の数の行ライン(201)及び任意の数の列ライン(202)を、差動モードDPEメムリスティブアレイ(110)内に含めることができる。1例では、差動モードDPEメムリスティブアレイ(110)に含まれる行ライン(201)及び列ライン(202)の数を、本明細書に記載されているシステム及び方法を用いて計算されるドット積の行列のサイズと同じかまたはこれより大きくすることができる。
【0030】
差動モードDPEメムリスティブアレイ(110)はさらに、たとえば行ライン(201)の入力端子において、演算増幅器(オペアンプ)(303)などのいくつかの差動入力回路を備えることができる。図3にはオペアンプ(303)が示されているが、任意のタイプの差動入力回路を使用することができる。オペアンプ(303)は、利得安定性、線形性、周波数応答、及びステップ応答を改善し、及び、製造や環境に起因するパラメータ変動に対する感度を低減するために、オペアンプ(303)の出力の一部をその入力から減じる負帰還を有する(すなわち負帰還オペアンプである)ように設計される。本明細書に記載されているように、入力電圧(Vin1、Vin2、…、Vinn)及び基準電圧(Vref1、Vref2、…、Vrefn)をオペアンプ(303)に印加して(加えて)、ドット積の値を得ることができる。
【0031】
オペアンプ(303)はまた、差動モードDPEメムリスティブアレイ(110)を作製するために、差動増幅器として設計される。DPEメムリスティブアレイ(110)の各出力について、以下の関係がある。
【数3】

ここで、Rfは、オペアンプ(303)のフィードバック抵抗(値)であり、Riは、ドット積の計算前に予め決められているメモリスタの複数レベルのアナログ抵抗(値)である。
【0032】
メモリスタ(203)は、電圧が高いほどより大きな非線形性を有するアナログデバイスである。メモリスタ(203)は、信号が小さい間は比較的良好な線形性を有する。たとえば、[0V、1V](図4の404)の領域でメモリスタ(203)を動作させた場合は、[−1/2V、1/2V]の領域(図4の405)でメモリスタ(203)動作させた場合に比べて非線形性が大きい。これは図4に示されている。
【0033】
図4は、本開示の原理の1例にしたがう、メモリスタの電流対電圧ループを示す図3のメムリスティブデバイス(203)の関数のグラフである。図4に示されているように、x軸は、メモリスタ(203)から見た(すなわち該メモリスタが受ける)電圧値を表し、y軸は、メモリスタ(203)から見た(すなわち該メモリスタに流れる)電流値を表している。図4に示されている関数、曲線及び値は、例に過ぎず、特定の値を示すことは意図されていない。いくつかの例では、図4の電流対電圧ループを、挟みつぶされた形のヒステリシス曲線として示すことができる。図4に示されているように、メモリスタ(203)の電流/電圧ループ(401)は、第1のライン(402)によって示されている[−1/2V、1/2V]の領域(405)の方が、第2のライン(403)によって示されている[0V、1V](404)の領域よりも(該領域では比較的非線形である)はるかに線形性が高い。
【0034】
負性抵抗という用語は、負の微分抵抗(NDR)(Δv/Δi<0)を意味している。NDRは、非線形のいくつかの原因のうちの1つでありうる。[0V、1V](404)の領域を、大信号動作領域と呼ぶことができる。メモリスタ(203)は、[0V、1V](404)の領域内ではより非線形でありうるが、[−1/2V、1/2V]の領域(405)では、オーム性を有するものとして分類されることができる。負性抵抗デバイスは非線形性であるので、正のオーム抵抗が電気回路で通常示す挙動よりも複雑な挙動を示す。
【0035】
ドット積エンジン(DPE)メモリスタアレイの用途において、メモリスタ(203)の線形の電流/電圧挙動は出力エラーを低減する。同相(コモン)モードDPEメモリスタアレイは、種々の1抵抗(0T1R)回路アーキテクチャ、1トランジスタ−1抵抗(1T1R)回路アーキテクチャ、及び1スイッチ−1抵抗(1S1R)回路アーキテクチャで使用される。しかしながら、メモリスタ(203)は非線形挙動を示す。これとは対照的に、本明細書において提案されている差動モードDPE構成は、線形性に関してより良好な性能を提供する。
【0036】
したがって、オペアンプ(303)の動作領域をシフト(移動)させるために、図3においてVref1、Vref2、…、Vrefnとして示されている基準電圧を用いて入力を微分することができる。1例では、所与のオペアンプ(303)に対するVrefの値は、最大電圧入力であるVin(Vin_max)の1/2に選択される。これは、大信号[0、V]の動作領域を小信号[−1/2V、1/2V]の動作領域にシフトさせることになる。この微分によるシフトでは、線形性が改善されることによってより高い精度が達成され、かつ、より良好な信号対雑音比及び改善されたノイズマージンが得られる。数学的には、非線形性を、一次の微分dV/dIによって表すことができる。2次の微分は傾向を明らかにする。微分が一定で、2×dIや2×dVなどの大きな範囲を想定した場合には、値はより大きくなるだろう。
【0037】
さらに、より詳細に後述するように、Voutを、所望の正の整数値に容易に再マッピングすることができる。差動モードDPEメムリスティブアレイ(110)は、Vin1、Vin2、…、Vinnのすべての値が−1/2Vであるときでも良好に動作する。
【0038】
差動モードDPEメムリスティブアレイ(110)はさらに、列ライン(202)に沿ってメモリスタ(203)から受け取った電流をそれぞれの出力電圧(Vout1、Vout2、Voutm)に変換するためのいくつかの電流増幅器(310)を備えることができる。1例では、電流増幅器(310)は、トランスインピーダンス増幅器(TIA。トランスインピーダンスアンプともいう)である。TIAは、電流−電圧変換器であり、図3に示されている演算増幅器を用いて実施される。TIAは、差動モードDPEメムリスティブアレイ(110)の電流出力を使用可能な電圧に増幅するために使用される。
【0039】
列ライン(202)からの電流を、収集ライン(311)を用いて収集する(集める)ことができる。収集された電流
【数4】

は、行列値とベクトル値のドット積を表す。図3に示されているように、変換回路(313)を、電流増幅器(310)と収集ライン(311)との間に配置することができる。電流増幅器(310)から出力された電圧が収集される場合には、全ての電圧は、キルヒホッフの電圧法則にしたがって等しくされて、ドット積のための値は失われるだろう。そのため、メモリスタ(203)から得られた電流が合計される。1例では、電流増幅器(310)によって出力される電圧ではなく、電流を収集できるようにするために、電流増幅器(310)を取り除くことができる。別の例では、図3に示されているように、変換回路(313)が、個々の電流増幅器(310)から出力された電圧を収集し、それらの電圧を電流に変換して、該電流を合計する。しかしながら、メモリスタ(203)からの電流の和を得てドット積を得るために、任意の回路設計を使用することができる。
【0040】
図3の差動モードDPEメムリスティブアレイ(110)は、オペアンプ(303)及びトランスインピーダンス増幅器(310)を含むものとして示されているが、本明細書に記載されている本発明によるシステム及び方法の機能を達成するために、任意の数の回路配置を使用することができる。
【0041】
差動モードDPEメムリスティブアレイ(110)はさらに、いくつかのセレクタ(312)を備えることができる。いくつかの例では、プログラミング信号を加えている間に、スニークパス電流が、差動モードDPEメムリスティブアレイ(110)内に生じうる。スニークパス電流は、回路内の意図されていない電流経路である。本発明による差動モードDPEメムリスティブアレイ(110)の例では、スニークパス電流は、図5のブロック501及び502に関連して説明されているように、ターゲットのメモリスタがプログラムされているかまたは読み取られているときに、いくつかの近傍のメモリスタ(203)に影響を与えうる。1例では、電圧がターゲットのメモリスタ(203)に加えられると、近傍のメモリスタ(203)には、差動モードDPEメムリスティブアレイ(110)内を流れるスニークパス電流による該電圧の一部が生じうる。このスニークパス電流によって、それらの近傍のメモリスタ(203)は、予期せずにかつ不正確にプログラムされ、または別のやり方で不適切に使用されることになる。
【0042】
1例では、いくつかのセレクタ(312)を、差動モードDPEメムリスティブアレイ(110)内に含めることができる。図3に示されているように、それらのセレクタを、それぞれの交差部(207)においてそれぞれのメモリスタ(203)と直列に配置することができる。図3には、該図内を明瞭にするために1つのセレクタ(312)が示されているが、任意の数のセレクタ(312)を、メモリスタ(302)の各々と直列に配置することができる。セレクタは、メモリスタ(203)によって表される選択されたビットだけが読み出されまたはプログラムされるのを確保するために、メモリスタ(203)をスニーク電流経路から保護する任意の回路要素である。セレクタは、マルチプレクサ(mux)と呼ばれることもある。このようにして、近傍のメモリスタ(203)に影響を与えることなく、ターゲットのメモリスタ(203)に電流を集中させることができる。図3に示されているように、メモリスタ(203)とセレクタ(312)は、1セレクタ−1メモリスタ(1S1M)回路アーキテクチャ、または、上記した、1セレクタ−1抵抗(1S1R)回路アーキテクチャ、または1トランジスタ−1抵抗(1T1R)(トランジスタがセレクタの代わりに使用されている)回路アーキテクチャ、または1抵抗(0T1R)回路アーキテクチャを形成することができる。
【0043】
図5は、本開示の原理の1例にしたがう、図1及び図3の差動モードDPEメムリスティブアレイ(110)の動作の方法を示すフローチャートである。図5の方法は、いくつかの(数の)第1の電圧を、メムリスティブクロスバーアレイ内の対応する数の行ライン(201)に加えて、それらの行ライン(201)と(該行ラインの各々と交差する)列ライン(202)の間のそれぞれの交差部(207)に配置された対応する数のメモリスタ(203)の抵抗値を変化させる(ブロック501)ことから開始することができる。それらの第1の電圧は、行列内の対応する数の値をそれぞれ表す、上記のプログラム電圧である。このようにして、数学的行列は、差動モードDPEメムリスティブアレイ(110)にマッピングされ、ドット積の数学的処理における第1の組の値として処理される準備が整う。
【0044】
1例では、負の値を有する数学的行列を表すために、2倍の幅及び長さを有する1つの差動モードDPEメムリスティブアレイ(110)または2以上の差動モードDPEメムリスティブアレイ(110)を使用することができる。この例では、2倍の幅及び長さを有する該1つの差動モードDPEメムリスティブアレイ(110)または該2以上の差動モードDPEメムリスティブアレイ(110)を、上記のように、コンピューティングシステム(100)に結合することができる。
【0045】
図5の方法は、続いて、いくつかの(数の)第2の電圧を、差動モードDPEメムリスティブアレイ(110)内の対応する数の行ライン(201)に加えるステップ(ブロック502)に進むことができる。それらの第2の電圧は、行列値とベクトル値とのドット積を得るために、メモリスタ(203)にプログラムされた行列値に加えられるいくつかのベクトル値を表す。それらの第2の電圧が、差動モードDPEメムリスティブアレイ(110)のメモリスタ(203)に加えられると、それらのメモリスタ(203)は、該メモリスタ(203)を電流が流れるようにする電圧入力(Vin1、Vin2、…、Vinn)を受ける。それらのメモリスタ(203)を流れる電流レベルは、電圧入力(Vin1、Vin2、…、Vinn)にそれらのメモリスタ(203)のコンダクタンスを乗じた値であり、メモリスタのコンダクタンスは、該メモリスタ(203)の抵抗値を変化させた第1の電圧によって定まる。ベクトル信号は読み出し信号として機能する。ベクトル信号によって加えられた電圧レベルが、第1の電圧によってプログラムされたメモリスタ(203)の抵抗値を変化させないように、該ベクトル信号によって加えられる電圧レベルは、メモリスタ(203)をプログラムするために使用される第1の電圧よりも小さい。
【0046】
このように、第2の電圧を印加することによって個々のメモリスタ(203)から得られた電流は、それぞれのメモリスタ(203)においてプログラミング信号によって得られた行列値に、該それぞれのメモリスタ(203)においてベクトル信号によって得られたベクトル値を乗じたものに等しい。
【0047】
図5の方法は、続いて、列ライン(202)からの出力電流を収集するステップ(ブロック503)に進むことができる。ここで、収集された出力電流はドット積を表す。図3に示されているように、収集ライン(311)を用いて、列ライン(202)によって収集されたメモリスタ(203)の出力電流をさらに収集することができる。図3の差動モードDPEメムリスティブアレイ(110)は、メモリスタ(203)によって出力された電流をそれぞれの出力電圧(Vout1、Vout2、Vout)に変換するためのトランスインピーダンス増幅器(310)を含むものとして示されている。しかしながら、所望の値を得るために、任意の回路トポロジーまたは回路設計を使用することができる。収集された電流
【数5】

などの、収集ライン(311)から得られた収集された信号は、行列値とベクトル値のドット積を表す。
【0048】
図5のプロセスは、新たな数学的行例及びベクトルを表すために、ブロック501にループバックし、該ブロックにおいて、いくつかの新たな第1の電圧が、差動モードDPEメムリスティブアレイ(110)内の対応する数の行ライン(201)に加えられて、対応する数のメモリスタ(203)の抵抗値を変化させる(ブロック601)ことができる。このようにして、新たな抵抗値が、該新たな数学的行列を表すメムリスティブクロスバーアレイのメモリスタ(203)にプログラムされる。該方法は、続いて、メモリスタ(203)にプログラムされた行列値に加えられる対応する数の新たなベクトル値を表す新たな第2の電圧を、差動モードDPEメムリスティブアレイ(110)内の対応する数の行ライン(201)に加える(502)ことによって、上記のブロック502及び503に進むことができる。
【0049】
本発明によるシステム及び方法を通じて、電圧及び電流が、列ライン(202)の端部で収集され、さらに、収集ライン(311)を用いて収集されるものとして説明されている。しかしながら、電圧値、または電流値、または他の回路パラメータなどの所望の出力を得るために、任意の回路トポロジーまたは回路設計を使用することができる。
【0050】
本明細書では、本発明によるシステム及び方法のいくつかの側面が、本開示の原理のいくつかの例にしたがう方法、装置(システム)及びコンピュータプログラム製品のフローチャート及び/又はブロック図を参照して説明されている。該フローチャート及び該ブロック図の各ブロック、並びに、該フローチャート中のブロックと該ブロック図中のブロックとの組み合わせを、コンピュータ使用可能プログラムコードによって実施することができる。該コンピュータ使用可能プログラムコードを、汎用コンピュータのプロセッサ、専用コンピュータ、または他のプログラム可能なデータ処理装置に提供して、該コンピュータ使用可能プログラムコードが、たとえばコンピューティングシステム(100)のプロセッサ(101)または他のプログラム可能なデータ処理装置によって実行されたときに、該フローチャート及び/又はブロック図の1つもしくは複数のブロックで指定ないし規定されている機能もしくは動作を実施するようにするマシン(装置)を生成することができる。1例では、該コンピュータ使用可能プログラムコードを、該コンピュータプログラム製品の一部であるコンピュータ可読記憶媒体内に具現化することができる。1例では、該コンピュータ可読記憶媒体は、非一時的なコンピュータ可読媒体である。
【0051】
明細書及び図面は、ドット積を求める(決定する)ためのコンピューティング装置及び関連する方法を記述している。該コンピューティングデバイスは、プロセッサ、及び該プロセッサに結合されたメモリスタクロスバーアレイを備えている。該メモリスタクロスバーアレイは、いくつかの行ライン、該行ラインと交差していくつかの交差部を形成するいくつかの列ライン、及び、該交差部において該行ラインと該列ラインとの間に結合されたいくつかのメモリスタデバイスを備える。それらのメモリスタデバイスは、いくつかのプログラミング信号を受け取る。該プログラミング信号は、行列内のいくつかの値を定める(すなわち、それぞれのプログラミング信号に対応してそれぞれの値が決まる)。該メモリスタデバイスはまた、いくつかのベクトル信号を受け取る。該ベクトル信号は、該メモリスタデバイスに加えられるいくつかのベクトル値を定める(すなわち、それぞれのベクトル信号に対応してそれぞれのベクトル値が決まる)。該メモリスタクロスバーアレイはさらに、それぞれの抵抗変化型メモリデバイスに基準電圧を加えて、該抵抗変化型メモリデバイスを初期抵抗(値)に設定するために、それぞれの行ラインに接続されたいくつかの増幅器を備える。該増幅器は、該増幅器への電圧入力の電圧と該増幅器への基準電圧入力の電圧との比に基づいて、メムリスティブクロスバーアレイの動作領域をシフトさせる。
【0052】
ドット積を決定するためのこの抵抗型クロスバーアレイは、いくつかある利点の中でも特に下記の(1)〜(5)を含む利点を有しうる。
(1)メムリスティブデバイスを使用しないDPEと比べて、ドット積計算の処理が速く、かつ、該計算のエネルギー効率が良い。
(2)差動モードでのDPE動作によって、線形性がより良好な領域でメモリスタを動作させることができ、かつ、より良好な信号対雑音比及びノイズマージンがもたらされる。
(3)大信号([0V、1V])から小信号([−1/2V、1/2V])への動作領域のシフトによって、メモリスタが意図せず切り替わるリスクが低減し、これによって、出力エラーが低減する。
(4)動作電圧が小さくされることによって、メモリスタデバイスに対する電気的ストレスの影響も小さくなり、これによって、該デバイスの耐久性が向上する。
(5)0T1R、1T1R、及び1S1Rを含む複数の方式に適合する設計ないし構成を提供する。
【0053】
上記の記述は、開示されている原理のいくつかの例を図示し及び説明するために提示されたものである。この記述は、それらの原理を網羅することも、それらの原理を開示した形態そのものに限定することも意図していない。上記の教示に照らして多くの修正及び変更が可能である。
図1
図2
図3
図4
図5