(57)【特許請求の範囲】
【請求項１】
ドット積を求めるためのメムキャパシティブクロスバーアレイであって、
１以上の行ラインと、
前記行ラインと交差して１以上の交差部を形成する１以上の列ラインと、
前記交差部において、前記行ラインと前記列ラインの間に結合された１以上の容量性メモリデバイスと、
前記容量性メモリデバイスのそれぞれの列ラインを通って該容量性メモリデバイスから出力される全ての電荷を収集するための電荷収集ライン
を備え、
前記容量性メモリデバイスは、１以上のプログラミング信号を受け取り、該プログラミング信号は、行列内の１以上の値を定め、
前記容量性メモリデバイスは、１以上のベクトル信号を受け取り、該ベクトル信号は、前記容量性メモリデバイスに加えられる１以上のベクトル値を定め、
前記収集された電荷は、前記行列値と前記ベクトル値のドット積に等しいことからなる、メムキャパシティブクロスバーアレイ。
【請求項２】
前記容量性メモリデバイスはさらに、１以上のグランド信号を受け取り、該グランド信号は、前記容量性メモリデバイスから全ての電荷を除去する、請求項１のメムキャパシティブクロスバーアレイ。
【請求項３】
前記行ラインに結合された１以上の行ゲートと、
電荷ラインであって、該電荷ラインを流れる電流が加えられたときに前記行ゲートを開くための電荷ライン
をさらに備える、請求項１のメムキャパシティブクロスバーアレイ。
【請求項４】
前記電荷ラインはクロック制御信号として機能する、請求項３のメムキャパシティブクロスバーアレイ。
【請求項５】
最後の容量性メモリ素子と前記電荷収集ラインとの間において前記列ラインに結合された１以上の列ゲートと、
評価ライン
をさらに備え、
前記評価ラインは、該評価ラインを流れる電流が加えられたときに前記列ゲートを開くことからなる、請求項１のメムキャパシティブクロスバーアレイ。
【請求項６】
前記評価ラインは、クロック制御信号として機能する、請求項５のメムキャパシティブクロスバーアレイ。
【請求項７】
前記メムキャパシティブクロスバーアレイは、第２のコンピュータプログラムに関してアクセラレータとして使用され、これによって、前記メムキャパシティブクロスバーアレイの出力が、前記第２のコンピュータプログラムに対する入力として、処理装置に結合されることからなる、請求項１のメムキャパシティブクロスバーアレイ。
【請求項８】
ドット積を得る方法であって、
プログラミング信号を１以上の容量性メモリデバイスに加えるステップと、
ベクトル信号を加えるステップ
を含み、
前記容量性メモリデバイスは、１以上の行ラインと１以上の列ラインの間に形成された１以上の交差部において結合され、前記プログラミング信号は、行列内の１以上の値を定め、
前記ベクトル信号は、前記容量性メモリデバイスに加えられる１以上のベクトル値を定めることからなる、方法。
【請求項９】
１以上のグランド信号を加えるステップをさらに含む請求項８の方法であって、前記グランド信号は、前記容量性メモリデバイスから全ての電荷を除去することからなる、方法。
【請求項１０】
容量性メモリデバイスにプログラミング信号を加える前記ステップが、前記容量性メモリデバイスを充電するために、前記行ラインに結合された１以上の電荷ゲートを開くステップを含むことからなる、請求項８の方法。
【請求項１１】
前記電荷ゲートを閉じるステップと、
前記列ラインの出力を得るために、前記列ラインに結合された１以上の評価ゲートを開くステップであって、前記列ラインの出力は前記ドット積を定めることからなる、ステップ
をさらに含む、請求項１０の方法。
【請求項１２】
前記容量性メモリデバイスのそれぞれの列ラインを通って前記容量性メモリデバイスから出力される全ての電荷を電荷収集ラインにおいて収集するステップをさらに含む請求項８の方法であって、該収集された電荷は、前記行列値と前記ベクトル値のドット積に等しいことからなる、方法。
【請求項１３】
ドット積を求めるためのコンピューティング装置であって、
プロセッサと、
メムキャパシティブクロスバーアレイと、
実行可能コードを含むメモリデバイス
を備え、
前記実行可能コードは、前記プロセッサによって実行されると、
行列内の１以上の値を定める１以上のプログラミング信号を入力するステップと、
１以上のベクトル値を定める１以上のベクトル信号を入力するステップと、
前記メムキャパシティブクロスバーアレイから１以上の出力を収集するステップと、
前記収集された出力を、前記行列値と前記ベクトル値のドット積として返すステップ
を実施することからなる、コンピューティング装置。
【請求項１４】
行列内の１以上の値を定める１以上のプログラミング信号を入力する前記ステップは、１以上の容量性メモリデバイスに前記プログラミング信号を加えるステップを含み、
前記１以上の容量性メモリデバイスは、１以上の行ラインと１以上の列ラインの間に形成された１以上の交差部において結合され、
それぞれの容量性メモリデバイスに加えられるそれぞれのプログラミング信号は、前記行列内のエントリを定めることからなる、請求項１３のコンピューティング装置。
【請求項１５】
１以上のベクトル値を定める１以上のベクトル信号を入力する前記ステップは、１以上の容量性メモリデバイスに前記ベクトル信号を加えるステップを含み、
前記１以上の容量性メモリデバイスは、１以上の行ラインと１以上の列ラインの間に形成された１以上の交差部において結合され、
それぞれの容量性メモリデバイスに加えられるそれぞれのベクトル信号は、ベクトル値を定めることからなる、請求項１３のコンピューティング装置。
【発明の詳細な説明】
【背景技術】
【０００１】
しばしばメムキャパシタとも呼ばれる容量性メモリ素子（capacitivememory element）は、該メムキャパシタに電圧または電流を加えることによって異なる容量状態にプログラムすることができるデバイスである。メムキャパシタの状態をプログラミングした後に、該メムキャパシタ（の状態ないし内容）を読み取ることができる。メムキャパシタの状態は、一定期間にわたって安定である。いくつかのメムキャパシタをクロスバーアレイ内に含めることができ、該クロスバーアレイ内では、いくつかの列ラインといくつかの行ラインが交差部で交差しており、該メムキャパシタは、該交差部で該列ライン及び該行ラインに結合している。
【先行技術文献】
【特許文献】
【０００２】
【特許文献１】（補充可能性あり）
【図面の簡単な説明】
【０００３】
添付の図面は、本明細書に開示されている原理の種々の例を示すものであって、本開示の一部をなす。図示の例は、単に説明のために提供したものであって、特許請求の範囲を限定するものではない。
【図１】本明細書に開示されている原理の１例にしたがう、ドット積を求めるためのコンピューティングシステムの図である。
【図２】本明細書に開示されている原理の１例にしたがう、図１のコンピューティングシステムのドット積エンジン（ＤＰＥ）メムキャパシティブアレイ内で使用されるメムキャパシティブクロスバーアレイの図である。
【図３】本明細書に開示されている原理の１例にしたがう、図１及び図２のＤＰＥメムキャパシティブアレイの回路図である。
【図４】本明細書に開示されている原理の１例にしたがう、図１及び図３のＤＰＥメムキャパシティブアレイの動作方法を示すフローチャートである。
【発明を実施するための形態】
【０００４】
図面を通じて、同じ参照番号は類似の（ただし、必ずしも同一ではない）要素を示している。
【０００５】
メムキャパシタのクロスバーアレイを、不揮発性固体メモリ、プログラマブルロジック（プログラム可能な論理回路）、信号処理、制御システム、パターン認識、及びその他の用途を含む種々の用途で使用することができる。本出願は、ドット積を求めるためのメムキャパシティブクロスバーアレイに向けられている。メムキャパシティブクロスバーアレイは、いくつかの行ライン（行ラインは行線ともいう。以下同じ）、該行ラインと交差していくつかの交差部を形成するいくつかの列ライン（列ラインは列線ともいう。以下同じ）、及び、該交差部において該行ラインと該列ラインの間に結合されたいくつかの容量性メモリデバイスを備える。本明細書ではメムキャパシタと呼ばれる容量性メモリデバイスは、いくつかのグランド信号（接地信号）を受け取る。それらのグランド信号は、該容量性メモリデバイスから全ての電荷を除去する。それらのメムキャパシタはまた、いくつかのプログラミング信号を受け取る。それらのプログラミング信号は、行列（マトリックス）内のいくつかの値を定める（または指定する）。それらのメムキャパシタはまた、いくつかのベクトル信号を受け取る。それらのベクトル信号は、該メムキャパシタに提供されることになるいくつかのベクトル値を定める（または指定する）。メムキャパシティブクロスバーアレイはまた、該メムキャパシタのそれぞれの列ラインを通って該メムキャパシタから出力される全ての電荷を収集するための電荷収集ラインを備える。収集された電荷は、行列値（行列の各成分の値。マトリックス値またはマトリクス値ともいう。以下同じ）とベクトル値のドット積に等しい。
【０００６】
本出願は、クロスバーアレイ内のメムキャパシタと電荷評価を利用して、いくつかの行列値といくつかのベクトル値のドット積を求める（すなわち決定する）ドット積エンジン（ＤＰＥ）に向けられている。該ＤＰＥは、他の装置に比べて少ない電力消費でドット積評価を実行し、及び、該システム内のスニークパス漏れ（たとえばスニークパス電流）を除去する。該ＤＰＥは、経時的な電流の積分に依存するフレキシブルな出力測定分解能を有する。
【０００７】
本明細書及び特許請求の範囲で使用されている「ドット積」という用語は、スカラーを生成する２つのベクトルの積として広義に理解されるべきであることが意図されており、ここで、該ドット積の値は、それらのベクトルの大きさとそれらのベクトル間の角度の余弦（コサイン）との積である。１例では、それらのベクトルを、ドット積を得るために乗算することができる行列（マトリックス）として表すことができる。ドット積の他の通常の名称にはスカラー積及び内積が含まれる。
【０００８】
さらに、本明細書及び特許請求の範囲で使用されている「いくつかの」という用語またはこれに類似の用語は、１（１を含む）から無限大までの任意の正の数（０は数ではないが数がないことを表す）として広義に理解されるべきことが意図されている。
【０００９】
以下の説明では、説明の便宜上、本発明によるシステム及び方法を完全に理解できるようにするために、多くの特定の細部が説明されている。しかしながら、当業者には、それらの特定の細部なくして、本発明の装置、システム、及び方法を実施できることは明らかであろう。本明細書における「１例」もしくはこれに類似の用語は、その例に関連して説明されている特定の特徴、構造、または特性が、説明されているように含まれるが、他の例には含まれなくてもよいことを意味する。
【００１０】
図１は、本開示の原理の１例にしたがう、ドット積を求めるためのコンピューティングシステム（１００）の図である。コンピューティングシステム（１００）を、電子装置において実施することができる（または電子装置に組み込むことができる）。電子装置の例には、いくつかある中でも特に、サーバー、デスクトップコンピューター、ラップトップコンピュータ、携帯情報端末（ＰＤＡ）、モバイル機器、スマートフォン、ゲーム機、及びタブレットが含まれる。
【００１１】
コンピューティングシステム（１００）を、独立型のハードウェア、モバイル用途、コンピューティングネットワーク経由、またはそれらの組み合わせを含む任意のデータ処理状況で使用することができる。さらに、コンピューティングシステム（１００）を、コンピューティングネットワーク、パブリッククラウドネットワーク、プライベートクラウドネットワーク、ハイブリッドクラウドネットワーク、その他の形態のネットワーク、または、それらの組み合わせにおいて使用することができる。１例では、コンピューティングシステム（１００）によって提供される方法は、たとえば、サードパーティーによってネットワークを通じたサービスとして提供される。この例では、該サービスは、いくつかのアプリケーションをホストするＳａａＳ（Software as a Service：サービスとしてのソフトウェア）や、たとえば、とりわけ、オペレーティングシステム、ハードウェア、及び記憶装置を含むコンピューティングプラットフォームをホストするＰａａＳ（Platform as a Service：サービスとしてのプラットフォーム）や、たとえば、とりわけ、サーバー、記憶要素、ネットワーク、及び構成要素（コンポーネント）などの装備をホストするＩａａＳ（Infrastructure as a Service：サービスとしてのインフラストラクチャー）や、ＡＰＩａａＳ（API as a Service：クラウド型ＡＰＩサービス）や、その他の形態のネットワークサービス、またはそれらの組み合わせなどを含むことができる。本発明によるシステムを、１つまたは複数のハードウェアプラットフォームにおいて実施することができ、この場合、該システム内のモジュールを１つのプラットフォームにおいてまたは複数のプラットフォームにわたって実行することができる。それらのモジュールは、種々の形態のクラウド技術及びハイブリッドクラウド技術で動作させることができ、または、クラウドにおいてもしくはクラウド外で実施することができるＳａａＳとして提供されることができる。別の例では、コンピューティングシステム（１００）によって提供される方法は、ローカル管理者によって実行される。
【００１２】
コンピューティングシステム（１００）は、その所望の機能を達成するために、種々のハードウェアコンポーネントを備えている。それらのハードウェアコンポーネントには、いくつかのプロセッサ（１０１）、いくつかのデータ記憶装置（１０２）、いくつかの周辺機器アダプタ（１０３）、及び、いくつかのネットワークアダプタ（１０４）がある。これらのハードウェアコンポーネントを、いくつかのバス及び／又はネットワーク接続を用いて相互接続することができる。１例では、プロセッサ（１０１）、データ記憶装置（１０２）、周辺機器アダプタ（１０３）、及びネットワークアダプタ（１０４）を、バス（１０５）を介して通信可能に接続することができる。
【００１３】
プロセッサ（１０１）は、データ記憶装置（１０２）から実行可能コードを取り出して、該実行可能コードを実行するためのハードウェアアーキテクチャを有することができる。該実行可能コードは、プロセッサ（１０１）によって実行されると、プロセッサ（１０１）に、いくつかの第１の電圧を、メムキャパシティブクロスバーアレイ内の対応する数の行ラインに加えて、該行ラインといくつかの列ラインとの間の交差部に配置された対応する数のメムキャパシタのキャパシタンス値（容量値）を変化させるという機能を少なくとも実施させることができる。ここで、該第１の電圧のそれぞれは、行列内の対応する数の値をそれぞれ表す。該実行可能コードはまた、プロセッサ（１０１）によって実行されると、プロセッサ（１０１）に、いくつかの第２の電圧を、メムキャパシティブクロスバーアレイ内の対応する数の行ラインに加えるという機能を少なくとも実施させることができる。ここで、該第２の電圧のそれぞれは、対応する数のベクトル値をそれぞれ表す。該実行可能コードはさらに、プロセッサ（１０１）によって実行されると、プロセッサ（１０１）に、列ラインからの出力電流を収集させる（集めさせる）という機能を少なくとも実施させることができる。ここで、該収集された出力電流はドット積を表す。コンピューティングシステム（１００）の機能は、本明細書及び／又は図面に記載されている方法にしたがう。プロセッサ（１０１）は、コードを実行している間に、いくつかの残りのハードウェアユニットから入力を受けとり、及び、それらのハードウェアウニットに出力を提供することができる。
【００１４】
データ記憶装置（１０２）は、プロセッサ（１０１）または他の処理装置によって実行される実行可能なプログラムコードなどのデータを格納することができる。説明されるように、データ記憶装置（１０２）は、プロセッサ（１０１）が本明細書に記載されている機能を少なくとも実施するために実行するいくつかのアプリケーションを表すコンピュータコードを格納することができる。
【００１５】
データ記憶装置（１０２）は、揮発性メモリ及び不揮発性メモリを含む種々のタイプのメモリ（記憶装置）モジュールを含むことができる。たとえば、今の例のデータ記憶装置（１０２）は、ランダムアクセスメモリ（ＲＡＭ）（１０６）、読取り専用メモリ（ＲＯＭ）（１０７）、及びハードディスクドライブ（ＨＤＤ）メモリ（１０８）を備えている。他の多くのタイプのメモリを使用することもでき、本明細書では、本開示の原理の特定の用途に適合しうる（１つ以上の）さまざまなタイプのメモリをデータ記憶装置（１０２）において使用することが考慮されている。いくつかの例では、データ記憶装置（１０２）内の（２以上の）異なるタイプのメモリを、データ記憶の（２以上の）異なる必要性に対してそれぞれ使用することができる。たとえば、いくつかの例では、プロセッサ（１０１）は、読取り専用メモリ（ＲＯＭ）（１０７）からブートすることができ、ハードディスクドライブ（ＨＤＤ）メモリ（１０８）に不揮発性記憶を維持することができ、及び、ランダムアクセスメモリ（ＲＡＭ）（１０６）に格納されているプログラムコードを実行することができる。
【００１６】
データ記憶装置（１０２）は、とりわけ、コンピュータ可読媒体、またはコンピュータ可読記憶媒体、または非一時的なコンピュータ可読媒体を含むことができる。たとえば、データ記憶装置（１０２）を、電子、磁気、光学、電磁、赤外線、もしくは半導体システム／装置／デバイス、または、これらの任意の適切な組み合わせとすることができる（ただし、それらに限定されない）。コンピュータ可読記憶媒体のより具体的な例は、たとえば、いくつかのワイヤ（電線）を有する電気的接続、携帯型コンピュータディスケット（たとえばフロッピーディスク）、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭまたはフラッシュメモリ）、携帯型コンパクトディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、光学式記憶装置、磁気記憶装置、または、これらの任意の適切な組み合わせを含むことができる。本明細書の文脈において、コンピュータ可読記憶媒体を、命令実行システム／装置／デバイスによってまたはそれらに関連して使用されるコンピュータ使用可能プログラムコードを含むことができもしくは格納することができる任意の有形の媒体とすることができる。別の例では、コンピュータ可読記憶媒体を、命令実行システム／装置／デバイスによってまたはそれらに関連して使用されるプログラムを含むことができもしくは格納することができる任意の非一時的な媒体とすることができる。
【００１７】
コンピューティングシステム（１００）内のハードウェアアダプタ（１０３、１０４）は、プロセッサ（１０１）が、コンピューティングシステム（１００）内外の他の種々のハードウェア要素とインターフェースできるようにする。たとえば、周辺機器アダプター（１０３）は、たとえば、表示装置（１０９）やマウスやキーボードなどの入力／出力装置とのインターフェースを提供することができる。周辺機器アダプター（１０３）はまた、外部記憶装置などの他の外部装置、及び、たとえば、サーバー、スイッチ、及びルーターなどのいくつかのネットワーク装置、及び、クライアント装置、及びその他のタイプのコンピューティング装置、及びこれらの任意の組み合わせに対するアクセスを提供することができる。
【００１８】
表示装置（１０９）を、コンピューティングシステム（１００）のユーザーがコンピューティングシステム（１００）の機能と相互作用（対話など）し、及び該機能を実施できるようにするために設けることができる。周辺機器アダプタ（１０３）はまた、プロセッサ（１０１）と、表示装置（１０９）、プリンター、または他の媒体出力装置との間のインターフェースを生成することができる。ネットワークアダプタ（１０４）は、たとえばネットワーク内の他のコンピューティング装置とのインターフェースを提供することができ、これによって、コンピューティングシステム（１００）と該ネットワーク内に配置された他の装置との間のデータ伝送を可能にする。
【００１９】
コンピューティングシステム（１００）は、プロセッサ（１０１）によって実行されると、表示装置（１０９）に、データ記憶装置（１０２）に格納されているくつかのアプリケーションを表す実行可能なプログラムコードに関連付けられているいくつかのグラフィカルユーザーインターフェース（ＧＵＩ）を表示することができる。これらのＧＵＩは、たとえば、より詳細に後述するように、ユーザーが、コンピューティングシステム（１００）と対話して、ドット積エンジン（ＤＰＥ）メムキャパシティブアレイ（１１０）に関連（もしくは共同）して行列値及びベクトル値を入力できるようにするインタラクティブな（すなわち対話型の）スクリーンショットを表示することができる。さらに、ユーザーは、表示装置（１０９）のＧＵＩにおいていくつかのインタラクティブなジェスチャーをする（またはジェスチャー入力をする）ことによって、入力データに基づくドット積の値を得ることができる。表示装置（１０９）の例は、いくつかある中でも特に、コンピュータの画面、ラップトップコンピュータの画面、モバイル機器の画面、携帯情報端末（ＰＤＡ）の画面、及びタブレットの画面を含む。ＤＰＥメムキャパシティブアレイ（１１０）は、コンピューティングシステム（１００）の内部の装置として図示されているが、別の例では、ＤＰＥメムキャパシティブアレイ（１１０）を、コンピューティングシステム（１００）に結合された周辺装置とすることができ、または、コンピューティングシステム（１００）に結合された周辺装置に含めることができる。
【００２０】
コンピューティングシステム（１００）はさらに、ドット積エンジン（ＤＰＥ）メムキャパシティブアレイ（１１０）を備えることができる。より詳しく後述するように、ＤＰＥメムキャパシティブアレイ（１１０）は、複数の入力の加重和（重み付き和）を計算するためにアレイ内で相互に機能し合ういくつかのメムキャパシタを含むいくつかの要素を備えている。ＤＰＥメムキャパシティブアレイ（１１０）を、いくつかのアプリケーションで使用することができる。たとえば、ＤＰＥメムキャパシティブアレイ（１１０）をしきい値論理ゲート（ＴＬＧ）として使用して、行列積（マトリックス積）を計算し、その出力をある閾値と比較することができる。したがって、ＤＰＥメムキャパシティブアレイ（１１０）を、より汎用的な処理装置で実行されるソフトウェアで可能な速さよりも速くいくつかの機能を実行するアクセラレータとして使用することができる。ＤＰＥメムキャパシティブアレイ（１１０）は、コンピューティングシステム（１００）の内部にある装置として図示されているが、別の例では、ＤＰＥメムキャパシティブアレイ（１１０）を、コンピューティングシステム（１００）に結合された周辺装置とすることができ、または、コンピューティングシステム（１００）に結合された周辺装置に含めることができる。
【００２１】
コンピューティングシステム（１００）はさらに、本明細書で説明されているシステム及び方法の実施に使用されるいくつかのモジュールを備えている。コンピューティングシステム（１００）内の種々のモジュールは、個別に実行されることができる実行可能なプログラムコードを備えている。この例では、それらの種々のモジュールを、別個のコンピュータプログラム製品として格納することができる。別の例では、コンピューティングシステム（１００）内のそれらの種々のモジュールを、いくつかのコンピュータプログラム製品内で組み合わせることができ、この場合、それぞれのコンピュータプログラム製品はいくつかの該モジュールを含む。
【００２２】
コンピューティングシステム（１００）は、プロセッサ（１０１）によって実行されると、ＤＰＥメムキャパシティブアレイ（１１０）の機能を支援するドット積エンジンモジュール（１１１）を備えることができる。ドット積エンジンモジュール（１１１）は、たとえば、ドット積の数学的計算で処理される行列を定める（または指定する）いくつかの入力値を受け取る。ドット積エンジンモジュール（１１１）は、ＤＰＥメムキャパシティブアレイ（１１０）内のいくつかのメムキャパシタをプログラムするために、それらの入力値を、それらのメムキャパシタへのプログラミング信号としてＤＰＥメムキャパシティブアレイ（１１０）に送ることができる。ドット積エンジンモジュール（１１１）はまた、それらのメムキャパシタにプログラムされた行列に関連して処理されるベクトル入力を受け取ることができる。ドット積エンジンモジュール（１１１）はさらに、ドット積を表す値を得て、分析またはさらなる処理のために、該値をコンピューティングシステム（１００）または別のコンピューティング装置にデータとして伝送することができる。
【００２３】
図２は、本開示の原理の１例にしたがう、図１のコンピューティングシステム（１００）のドット積エンジン（ＤＰＥ）メムキャパシティブアレイ（１１０）内で使用されるメムキャパシティブクロスバーアレイ（２００）の図である。メムキャパシティブクロスバーアレイ（２００）は、いくつかの導電性の行ライン（２０１）、及びいくつかの導電性の列ライン（２０２）を備えることができる。図２には、３つの行ライン（２０１）と４つの列ライン（２０２）が示されているが、任意の数の行ライン（２０１）及び任意の数の列ライン（２０２）を、メムキャパシティブクロスバーアレイ（２００）に設けることができる。行ライン（２０１）と列ライン（２０２）は破線（２０７）で示されているように交差部で交差している。いくつかの容量性メモリデバイスすなわち「メムキャパシタ」（２０３）が、それらの交差部（２０７）に配置されて、行ライン（２０１）と列ライン（２０２）を電気的に接続する。
【００２４】
メムキャパシタンスは、メムキャパシタと呼ばれる電子部品の特性である。電荷がある回路を一方向に流れると、該回路内のメムキャパシタのキャパシタンスは増加する。電荷が該回路内を該一方向とは逆の方向に流れると、該メムキャパシタのキャパシタンスは減少する。印加電圧をオフにすることによって電荷の流れを止めた場合には、該メムキャパシタは、該メムキャパシタが有していた直近のキャパシタンス（すなわち、電荷の流れが止められる直前に有していたキャパシタンス）を「記憶」しており、電荷の流れが再び開始したときの該回路のキャパシタンスは、該回路が最後にアクティブであったときのキャパシタンスである。メムキャパシタは、そのキャパシタンスを変更することができるコンデンサデバイスである。コンデンサに蓄積されている電荷Ｑを以下の関係で表すことができる。
【数１】
0006311076.tif 000002
ここで、Ｃはコンデンサのキャパシタンスであり、Ｖはコンデンサに加えられている電圧である。メムキャパシタは、そのキャパシタンスが記憶可能でありかつ利用可能な複数の状態を有していることを除いて、同様の関係を有している。
【００２５】
メムキャパシタ（２０３）内のコンダクタンスチャンネルを、各メムキャパシタ（２０３）内に形成することができ、メムキャパシタ（２０３）をビットとして個別にアドレス指定することができる。クロスバーは、第１の組の平行なワイヤ（２０１）の各ワイヤを、該第１の組のワイヤ（２０１）と交差する第２の組の平行なワイヤ（２０２）の全ての要素に接続するスイッチの配列（アレイ）である。図２の例では、行ライン（２０１）と列ライン（２０２）は互いに垂直であるが、行ライン（２０１）と列ライン（２０２）を任意の角度で交差させることができる。
【００２６】
メムキャパシタ（２０３）を、マイクロスケールまたはナノスケールで作製することができ、及び、メモリや論理回路のベースなどの、多種多様な電子回路のコンポーネント（構成要素）として使用することができる。メムキャパシタ（２０３）がメモリのベースとして使用されるときは、メムキャパシタ（２０３）を、情報のビットである１または０を格納するために使用することができる。メムキャパシタ（２０３）が、本明細書に記載されているように論理回路として使用されるときは、メムキャパシタ（２０３）を、フィールドプログラマブルゲートアレイ中のビットを表すために用いることができ、または、ワイヤードロジックプログラマブルロジックアレイのベースとして用いることができ、または、本明細書に記載されているように、ドット積エンジンとして用いることができる。本明細書に開示されているメムキャパシタ（２０３）を様々な他の用途で使用することもできる。メムキャパシタ（２０３）を、たとえば、メムキャパシタを形成する化学気相成長（化学蒸着）、スパッタリング、エッチング、リソグラフィー、もしくはその他の方法などの任意の適切な製造プロセスを通じて作製することができる。
【００２７】
図２のメムキャパシティブクロスバーアレイ（２００）はさらに、Ｖ１、Ｖ２、及びＶ３として示されているいくつかの入力値（２０５）を含んでいる。それらの入力値（２０５）を、該クロスバーアレイ内のそれぞれの交差部における個々のメムキャパシタ（２０３）のキャパシタンス値を変化させて、それぞれの交差部におけるそれぞれの値が数学的行列（数学的マトリックス）内のそれぞれの値を表すところの該行列の表現（たとえばマッピング）を生成するために使用されるプログラム信号とすることができる。個々のメムキャパシタ（２０３）のキャパシタンスのこの変化は、低い値から高い値への、または、高い値から低い値へのアナログ的な変化である。かくして、これらのメムキャパシタは、それらが有していた最後のキャパシタンスを「記憶している」点において「メモリキャパシタ」である。
【００２８】
入力値（２０５）を、該クロスバーアレイ中の各交差部における個々のメムキャパシタ（２０３）のキャパシタンス値を読み出すために使用される読み出し信号とすることもでき、また、下記するように、計算に関わるそれぞれのメムキャパシタ（２０３）において行列値にベクトル値を乗じるための手段とすることもできる。本明細書ではベクトル信号と呼ばれる該読み出し信号を、メムキャパシティブクロスバーアレイ（２００）の行ライン（２０１）に対する入力値（２０５）として加えることができる。該ベクトル信号は、該プログラム信号によって表される行列に乗じられるベクトルを表すことができる。１例では、それらのベクトル信号は、メムキャパシタ（２０３）をプログラムするために使用される第１の電圧よりも小さい電圧値を有し、これによって、それらのベクトル信号によって加えられた電圧レベルが、該第１の電圧によってプログラムされているメムキャパシタ（２０３）のキャパシタンス値を変えないようにする。該ベクトル信号は、このように、メムキャパシタ（２０３）のキャパシタンス値を変えないことによって、読み出し信号として機能する。
【００２９】
該ベクトル信号は、メムキャパシタ（２０３）のそれぞれの交差部（２０７）においてメムキャパシタ（２０３）と相互作用をし、その結果生じた電圧は、２０６におけるそれぞれの列ライン（２０２）の端部において収集される。それぞれの列ライン（２０２）の和は、図２に示されているように、
【数２】
0006311076.tif 000003
によって表される。これらの電圧値から得られたこれらの和は、列ベクトルの値を表している。より詳細に後述するように、それぞれの列ライン（２０２）のこれらの和を、電荷収集ラインを通じて合計して、図３に示されている信号値
【数３】
0006311076.tif 000004
を得ることもできる。１例では、メムキャパシタ（２０３）から全ての電荷を除去するために、プログラム信号及びベクトル信号を加える前に、初期グランド信号をメムキャパシタ（２０３）に加えることができる。
【００３０】
図３は、本開示の原理の１例にしたがう、図１及び図２のＤＰＥメムキャパシティブアレイの回路図（３００）である。図３のＤＰＥメムキャパシティブアレイ（１１０）は図示のとおり１つの回路配置を有するものとして示されているが、本発明によるシステム及び方法の機能を達成するために任意の数の回路配置を使用することができる。図３に示されているＤＰＥメムキャパシティブアレイ（１１０）は、図２に関して上述した行ライン（２０１）、列ライン（２０２）、及びメムキャパシタ（２０３）を備えている。上記のごとく、省略記号（３０１、３０２）で示されているように、任意の数の行ライン（２０１）及び任意の数の列ライン（２０２）を、ＤＰＥメムキャパシティブアレイ（１１０）に含めることができる。
【００３１】
ＤＰＥメムキャパシティブアレイ（１１０）はさらに、電荷ライン（３０９）、いくつかの電荷ゲート（３０４）、評価ライン（３０５）、及び、いくつかの評価ゲート（３０６）を備えることができる。メムキャパシタ（２０３）に電荷が蓄積するのを防止するために電荷ゲート（３０４）及び評価ゲート（３０６）を設けることができる。１例では、電荷ゲート（３０４）及び評価ゲート（３０６）はトランジスタである。メムキャパシタ（２０３）は、電界中で静電気的にエネルギーを蓄えるために使用されるという点でコンデンサ（キャパシタ）と同様に機能する。メムキャパシタ（２０３）は、誘電体（すなわち絶縁体）によって分離されたプレートと呼ばれる少なくとも２つの導電体を含んでいる。該導電体の例には、いくつかある導電材料の形態の中でも特に、金属もしくは導電性電解質の薄膜、ホイル、もしくは焼結ビーズ（sintered bead）を含めることができる。非導電性で絶縁性の誘電体は、メムキャパシタ（２０３）の電荷容量を大きくするように作用する。誘電体の例には、いくつかある絶縁体のタイプの中でも特に、ガラス、セラミック、プラスチックフィルム、空気、真空、紙、マイカ、または酸化物層が含まれる。メモリスタとは異なり、メムキャパシタ（２０３）は、理想的には、エネルギーを浪費しない。その代わり、メムキャパシタ（２０３）は、そのプレート間に静電界の形態でエネルギーを蓄える。入力電圧、たとえばプログラム信号に起因して、ＤＰＥメムキャパシティブアレイ（１１０）内のメムキャパシタ（２０３）が、それらの各々に蓄えられている電荷を漏らさないことを、または該電荷を完全には放電しないことを確実にするために、電荷ゲート（３０４）及び評価ゲート（３０６）が、行ライン（２０１）及び列ライン（２０２）に結合される。
【００３２】
電荷ゲート（３０４）及び評価ゲート（３０６）の開閉をクロックに同期した制御信号（クロック制御信号）に関連して実行して、電荷ゲート（３０４）及び評価ゲート（３０６）の開閉を制御することができる。信号を電荷ライン（３０３）及び評価ライン（３０５）に送って、電荷ゲート（３０４）及び評価ゲート（３０６）を開くことができる。１例では、プログラム電圧すなわち読み出し電圧が行ライン（２０１）に加えられるたびに、信号を電荷ライン（３０３）に送って電荷ゲート（３０４）を開くことができる。同様に、ドット積を決定するために電荷（ｑ）が収集されるたびに、信号を評価ライン（３０５）に送って評価ゲート（３０６）を開くことができる。
【００３３】
上述したように、プログラム信号及び読み出し信号を、Ｖin１、Ｖin２、及びＶinｎによって示されている入力値としてＤＰＥメムキャパシティブアレイ（１１０）の行ライン（２０１）に入力することができる。その結果生じた電荷（Ｑ）を、Ｑout１、Ｑout２、及びＱoutｎによって示されている出力電荷値としてＤＰＥメムキャパシティブアレイ（１１０）の列ライン（２０２）から得ることができる。これらの出力電荷値（Ｑout１、Ｑout２、及びＱoutｎ）を、収集ライン（３０７）において収集することもできる。列ライン（２０２）及び収集ライン（３０７）において収集された電荷を、下記の式を用いて表すこと、すなわち、電流などの異なる値に変換することができる。
【数４】
0006311076.tif 000005
ここで、Ｉは電流であり、dＱは電荷の変化量であり、dtは時間の変化量である。
【００３４】
式２を用いて、より長い期間にわたって電流の変化を監視（モニタ）した場合にはより高い分解能が得られ、より短い期間にわたって電流の変化を監視した場合にはより低い分解能が得られるように、収集された電流の分解能を調整することができる。出力電荷値（Ｑout１、Ｑout２、及びＱoutｎ）によって決定される出力電流は、電圧×インダクタンスの合計である。換言すれば、メムキャパシタ（２０３）内の電荷は、電流の積分に等しく、また、電圧に比例する。初期電圧Ｖ（t０）を表すために積分定数が加えられる。キャパシタ（コンデンサ）方程式の積分形式は以下のとおりである。
【数５】
0006311076.tif 000006
これを微分してＣを掛けると、下記の式が得られる。
【数６】
0006311076.tif 000007
【００３５】
ＤＰＥメムキャパシティブアレイ（１１０）内で、たとえばメモリスタの代わりにメムキャパシタ（２０３）を使用することは、いくつかの利点を有する。そのような利点の１つは、メムキャパシタ（２０３）が、計算を時間領域から周波数領域へと拡張することが可能になることである。換言すれば、本発明によるＤＰＥメムキャパシティブアレイ（１１０）は、ＤＣ（直流）信号を用いる代わりに、ＡＣ（交流）信号を用いてドット積を計算する。
【００３６】
たとえば、ＡＣ信号を異なるメムキャパシタ（２０３）にプログラムすることができる。メムキャパシタ（２０３）の異なるキャパシタンス値は異なるＲＣ遅延を生じさせる。式３に含まれている、本明細書ではタウ（τ）とも呼ばれるＲＣ時定数は、ＲＣ回路の秒単位での時定数であり、下記の式で表されるように、オーム単位での回路抵抗値とファラド単位での回路キャパシタンス値との積に等しい。
【数７】
0006311076.tif 000008
【００３７】
電圧入力がＶ０×cos(w×t)の場合には、電流は、
【数８】
0006311076.tif 000009
である。ここで、w＝２×π×ｆであり、ｆは周波数である。したがって、位相遅延がπ／２で同じ周波数ｆで動作するサンプリング回路では、sin(w×t)は常に１に等しい。かかる理解に基づくと、式６は下記の式と等価である。
【数９】
0006311076.tif 000010
したがって、追加の周波数領域の計算を、ＤＰＥメムキャパシティブアレイ（１１０）内のメムキャパシタ（２０３）に異なるＡＣ信号を注入することによって実行することができる。
【００３８】
ＡＣ信号の使用はまた、メムキャパシタアレイに対するＤＣ信号を用いる計算が漏洩電流（スニーク電流。迂回電流ともいう）の問題を生じる状況を作り出すことから、電圧を使用する場合よりも有利でありうる。飽和していないメムキャパシタ（２０３）は異なる電圧に充電されるので、ＤＣ信号がＤＰＥメムキャパシティブアレイ（１１０）から取り除かれると、飽和していないメムキャパシタ（２０３）間に電流が流れる。たとえ全てのメムキャパシタ（２０３）が飽和している場合であっても、ＤＣ信号の例では、一旦メムキャパシタ（２０３）が自由に放電すると、メムキャパシタ（２０３）が有している電荷（Ｃ）が異なることに起因して、メムキャパシタ（２０３）は異なる速さでそのように放電する。この状況では、ＤＣ信号が印加されている状態において、漏洩電流がＤＰＥメムキャパシティブアレイ（１１０）内で再び生じる。しかしながら、ＡＣ信号を用いることによって、該デバイスないし装置は、漏洩電流の問題が常に排除されている状態を維持することができ、出力を正しい周波数でサンプリングして、ドット積の計算結果を得ることができる。したがって、ＡＣ信号の印加は、ＤＣ信号の印加よりも効果的でありかつ効率が良い。
【００３９】
図４は、本開示の原理の１例にしたがう、図１及び図３のＤＰＥメムキャパシティブアレイの動作の方法（４００）を示すフローチャートである。図４の方法は、いくつかの行ライン（２０１）といくつかの列ライン（２０２）の間に形成されたいくつかの交差部（２０７）において（交差している行ラインと列ラインにそれぞれ）結合されたいくつかの容量性メモリデバイス（２０３）にプログラミング信号を加えるステップ（ブロック４０１）から開始することができる。上記したように、該プログラム信号は、数学的行列内のいくつかの値を定める（または指定する）。該プログラミング信号は、該数学的行列をＤＰＥメムキャパシティブアレイ（１１０）にマッピングするために、それらのメムキャパシタ（２０３）に（アドレス指定されて）送られるいくつかの入力電圧値を含むことができる。
【００４０】
コンピューティングシステム（１００）は、プログラミング信号を加えるステップ（ブロック４０１）において、電気信号を電荷ライン（３０３）に加えることができる。電荷ライン（３０３）への電気信号の印加によって、電荷ゲート（３０４）が開き、これによって、プログラム電圧を行ライン（２０１）に加えることができるようになる。
【００４１】
方法（４００）は、続いて、読み出し信号を加えるステップ（ブロック４０２）に進むことができる。該読み出し信号は、ＤＰＥメムキャパシティブアレイ（１１０）の容量性メモリデバイス（２０３）に加えられるいくつかのベクトル値を表している。該読み出し信号は、ＤＰＥメムキャパシティブアレイ（１１０）の行ライン（２０１）に加えられる。上記のように、これらのベクトル信号は、ブロック４０１において加えられたプログラム信号によって表される行列に乗じられるベクトルを表している。このようにして、ＤＰＥメムキャパシティブアレイ（１１０）にマッピングされた数学的行列がベクトル信号の印加によって乗算される。
【００４２】
上記のように、メムキャパシタ（２０３）から列ライン（２０２）及び収集ライン（３０７）を介して電流を収集して、行列値とベクトル値のドット積を表す最終的な電流を得ることができる。コンピューティングシステム（１００）は、電流を収集するために、評価ライン（３０５）に電気信号を加えることができる。評価ライン（３０５）に電気信号を加えることによって、評価ゲート（３０６）が開き、これによって、メムキャパシタ（２０３）から列ライン（２０２）を介して電流を収集することができるようになる。
【００４３】
新たな数学的行列及びベクトルを表すために、図４のプロセスは、ブロック４０１にループバックし、いくつかの新たな第１の電圧を、ＤＰＥメムキャパシティブアレイ（１１０）内の対応する数の行ライン（２０１）に加えて（ブロック４０１）、対応する数のメムキャパシタ（２０３）のキャパシタンス値を変化させることができる。このようにして、新たな数学的行列を表す新たな容量値（キャパシタンス値）が、ＤＰＥメムキャパシティブアレイ（１１０）のメムキャパシタ（２０３）にプログラムされる。該方法は、上記のように、続いてブロック４０２に進んで、メムキャパシタ（２０３）にプログラムされた行列値に加えられる対応する数の新たなベクトル値を表す新たな第２の電圧を、ＤＰＥメムキャパシティブアレイ（１１０）内の対応する数の行ライン（２０１）に加える（４０２）ことができる。
【００４４】
１例では、ブロック４０１において、いくつかのグランド信号（接地信号）が、プログラム信号でメムキャパシタ（２０３）をプラグラムする前で、かつ、ドット積の計算の繰り返しの間に加えられる。該グランド信号は、それらの容量性メモリデバイスから全ての電荷を除去する。かくして、図４のプロセスを、電荷モードＤＰＥ動作と呼ぶことができる。
【００４５】
本明細書には、本発明によるシステム及び方法のいくつかの側面が、本開示の原理のいくつかの例にしたがう方法、装置（システム）及びコンピュータプログラム製品のフローチャート及び／又はブロック図を参照して説明されている。該フローチャート及び該ブロック図の各ブロック、並びに、該フローチャート中のブロックと該ブロック図中のブロックとの組み合わせを、コンピュータ使用可能プログラムコードによって実施することができる。該コンピュータ使用可能プログラムコードを、汎用コンピュータのプロセッサ、専用コンピュータ、または他のプログラム可能なデータ処理装置に提供して、該コンピュータ使用可能プログラムコードが、たとえばコンピューティングシステム（１００）のプロセッサ（１０１）または他のプログラム可能なデータ処理装置によって実行されたときに、該フローチャート及び／又はブロック図の１つもしくは複数のブロックで指定ないし規定されている機能もしくは動作を実施するマシン（装置）を生成することができる。１例では、該コンピュータ使用可能プログラムコードを、該コンピュータプログラム製品の一部であるコンピュータ可読記憶媒体内に具現化することができる。１例では、該コンピュータ可読記憶媒体は、非一時的なコンピュータ可読媒体である。
【００４６】
明細書及び図面は、ドット積を求める（決定する）ための方法、及びメムキャパシティブクロスバーアレイを記述している。メムキャパシティブクロスバーアレイは、いくつかの行ライン、該行ラインと交差していくつかの交差部を形成するいくつかの列ライン、及び、該交差部において該行ラインと該列ラインとの間に結合されたいくつかの容量性メモリデバイスを備える。それらの容量性メモリデバイスは、いくつかのプログラミング信号を受け取る。該プログラミング信号は、行列内のいくつかの値を定める（または指定する）。該容量性メモリデバイスはまた、いくつかのベクトル信号を受け取る。該ベクトル信号は、該容量性メモリデバイスに加えられるいくつかのベクトル値を定める（または指定する）。該メムキャパシティブクロスバーアレイはまた、該容量性メモリデバイスのそれぞれの列ラインを通って該容量性メモリデバイスから出力される全ての電荷を収集するための電荷収集ラインを備える。収集された電荷は、該行列中の値（行列値）とベクトル値のドット積に等しい。
【００４７】
ドット積を求める（決定する）ためのメムキャパシティブクロスバーアレイは、下記の（１）〜（６）を含むいくつかの利点を有しうる。
（１）メモリスタの代わりにメムキャパシタを使用することによってスニークパス漏れ（たとえばスニークパス電流）が除去される。
（２）電荷共有がメモリスタシステムにおける線形性に関連する問題を実質的に解消する階段関数で行われる。
（３）メムキャパシティブクロスバーアレイ内に静的電流がないために電力消費が少ない。
（４）積分期間を異ならせることによって出力測定分解能を調整できる。
（５）いくつかある利点の中でも特に、スニークパス漏れに対処するために追加の回路要素を必要としうるメモリスタシステムに比べて製造コストが低い。
（６）メムキャパシタを使用することによって、計算の領域が時間領域から周波数領域に拡張され、この結果、異なるサンプリングシステムを用いて異なるＡＣ信号を計算信号として使用できる。
【００４８】
上記の記述は、開示されている原理のいくつかの例を図示し及び説明するために提示されたものである。この記述は、それらの原理を網羅することも、それらの原理を開示した形態そのものに限定することも意図していない。上記の教示に照らして多くの修正及び変更が可能である。
【図１】
0006311076.tif 000011
【図２】
0006311076.tif 000012
【図３】
0006311076.tif 000013
【図４】
0006311076.tif 000014