(57)【要約】  グローバル基準信号源と、第１の加算ノードおよび第２の加算ノードと、第１の加算ノードおよび第２の加算ノードに沿って配置された複数の別個の対の電流発生回路と、第１の加算ノードに配置される複数の別個の対のそれぞれの第１の電流発生回路および第２の加算ノードに配置される複数の別個の対のそれぞれの第２の電流発生回路と、ローカルＤＡＣがグローバル基準源からの基準信号に基づいて第１の加算ノードと第２の加算ノードとの間の差動電流を調整する、第１の加算ノードと第２の加算ノードそれぞれと電気的に通信して配置される共通モード電流回路と、および第１の加算ノードおよび第２の加算ノードから取得されたバイナリ出力値電流値を生成するコンパレータまたは有限状態機械と、を含む、混合信号集積回路。【選択図】図１
2021518590.tif 000002
【特許請求の範囲】
【請求項１】
複数のローカル差動電流回路を動作させるバイナリ加重グローバル基準信号源と、
第１の加算ノードおよび第２の加算ノードであって、前記第１の加算ノードおよび前記第２の加算ノードが、前記複数の差動電流回路のうちの１つの差動電流回路と電気的に通信して配置される、第１の加算ノードおよび第２の加算ノードと、
前記第１の加算ノードおよび前記第２の加算ノードに沿って配置された複数の別個の対のプログラム可能な電流源であって、前記複数の別個の対のそれぞれの第１のプログラム可能な電流源が、前記第１の加算ノードに配置され、
前記複数の別個の対のそれぞれの第２のプログラム可能な電流源が前記第２の加算ノードに配置され、
前記複数の別個の対のプログラム可能な電流源の各対が、入力信号に基づいて前記第１の加算ノードと前記第２の加算ノードとの間に差動電流信号を設定する、複数の別個の対のプログラム可能な電流源と、
前記第１の加算ノードと前記第２の加算ノードそれぞれと電気的に通信して配置され、共通電流値を前記第１の加算ノードおよび前記第２の加算ノードそれぞれに供給するか、またはそれぞれから減らす共通モード制御回路と、
バイナリ加重グローバル基準源からの１つ以上の基準信号に基づいて前記第１の加算ノードと前記第２の加算ノードとの間の前記差動電流を調整する前記ローカル差動電流回路と、
前記第１の加算ノードと前記第２の加算ノードの出力に基づいてアナログ値を評価し、前記評価に基づいてバイナリ出力値を生成するコンパレータと、を備える集積回路。
【請求項２】
前記第１の加算ノードの第１の電流値の出力と前記第２の加算ノードの第２の電流値の出力の合計がゼロに等しくなるまで、前記ローカル差動電流回路が、前記第１の加算ノードと前記第２の加算ノードとの間の前記差動電流を調整する、請求項１に記載の集積回路。
【請求項３】
前記コンパレータは、前記第１の加算ノードと前記第２の加算ノードのそれぞれの合計電流値の相対的な状態を評価し、前記第１の加算ノードと前記第２の加算ノードのいずれが、より大きい電流値を有するか、またはより小さい電流値を有するかを判定する、請求項１に記載の集積回路。
【請求項４】
前記ローカル差動電流回路は、前記第１の加算ノードと前記第２の加算ノードのいずれがより大きい電流信号値を出力するかに基づいて、前記第１の加算ノードと前記第２の加算ノードに漸次より小さい差動電流信号増分を供給することによって前記第１の加算ノードと前記第２の加算ノードとの間の前記差動電流信号を増やしたり減らしたりする、請求項３に記載の集積回路。
【請求項５】
共通モード回路は、共通モード電流値を前記第１の加算ノードと前記第２の加算ノードのそれぞれに供給する単一増幅器駆動回路およびスイッチトキャパシタフィードバック回路のうちの一方を備える、請求項１に記載の集積回路。
【請求項６】
前記スイッチトキャパシタフィードバック回路は、
生成された共通モードフィードバック電圧を追跡する目標電圧値を動作させる第１の増幅器と、
前記共通モードフィードバック回路でスイッチング信号から敏感な出力電圧を保護する第２の増幅器と、を含む、請求項６に記載の集積回路。
【請求項７】
共通モード電流回路は、それぞれが２つのトランジスタのうちの１つと電気的に通信して配置され、それぞれが前記２つのトランジスタのそれぞれでゲート電圧を所望の共通モード電圧に動作させる少なくとも２つの増幅器を含む補正回路を備える、請求項１に記載の集積回路。
【請求項８】
前記共通モード電流回路は、それぞれが２つのトランジスタのそれぞれと電気的に通信して配置され、前記２つのトランジスタのそれぞれでゲート電圧を所望の共通モード電圧に動作させる前記２つのトランジスタのそれぞれの間で切り替える単一増幅器を含む補正回路を備える、請求項１に記載の集積回路。
【請求項９】
前記共通モード電流回路は、前記第１の加算ノードと前記第２の加算ノードの容量性入力ノードへの出力電圧をショートすることによって自動的にゼロになるフロントエンド増幅器を含む補正回路を備え、前記フロントエンド増幅器の出力電圧差動が少なくとも２つのトランジスタにゲート電圧として保存される、請求項１に記載の集積回路。
【請求項１０】
前記バイナリ加重グローバル基準信号源は、バイナリサーチアルゴリズムの各段階で前記バイナリ加重グローバル基準信号源が、前記複数のローカル差動電流回路がそれぞれ、前記複数のローカル差動電流回路それぞれの、それぞれのローカルの状態を調整するためにバイナリ加重値を設定するように、バイナリサーチアルゴリズムを実行する、請求項１に記載の集積回路。
【請求項１１】
前記複数のローカル差動電流回路がそれぞれ、
共有信号経路に沿って配置され、
加算ノードの別個の対と電気的に通信して配置され、
前記バイナリ加重グローバル基準源が、複数のバイナリ加重信号を前記共有信号経路に沿って前記複数のローカル差動電流回路それぞれに供給する、請求項１に記載の集積回路。
【請求項１２】
複数のローカルデジタルアナログ変換器（ＤＡＣ）を動作させるグローバル基準信号源と、
第１の加算ノードおよび第２の加算ノードであって、前記第１の加算ノードおよび前記第２の加算ノードが前記複数のローカルＤＡＣのうちの１つのローカルＤＡＣと電気的に通信して配置される、第１の加算ノードおよび第２の加算ノードと、
前記第１の加算ノードおよび前記第２の加算ノードに沿って配置された複数の別個の対の電流発生回路であって、前記複数の別個の対それぞれの電流発生回路は、前記第１の加算ノードに配置され、前記複数の別個の対それぞれの第２の電流発生回路は、前記第２の加算ノードに配置され、
前記複数の別個の対の電流発生回路の各対は、入力信号に基づいて前記第１の加算ノードと前記第２の加算ノードとの間に差動電流信号を設定する、複数の別個の対の電流発生回路と、
前記第１の加算ノードおよび前記第２の加算ノードそれぞれと電気的に通信して配置され、共通電流値を前記第１の加算ノードおよび前記第２の加算ノードそれぞれに供給するか、またはそれぞれから減らす共通モード電流回路と、
前記グローバル基準源からの１つ以上の基準信号に基づいて前記第１の加算ノードと前記第２の加算ノードとの間の前記差動電流を調整する前記ローカルＤＡＣと、
前記第１の加算ノードおよび前記第２の加算ノードの出力に基づいてアナログ値を評価し、前記評価に基づいてバイナリ出力値を生成するコンパレータまたは有限状態機械と、を備える、混合信号集積回路。
【請求項１３】
前記グローバル基準源は、バイナリサーチアルゴリズム、最下位ビットサーチアルゴリズム、非バイナリサーチアルゴリズム、対数サーチアルゴリズム、およびカスタムユーザ定義サーチ関数のうちの１つを実行する、請求項１２に記載の混合信号集積回路。
【請求項１４】
集積回路を実装する方法であって、
複数の別個のプログラム可能な電流源それぞれでアナログ入力信号を受信することと、
前記複数の別個のプログラム可能な電流源それぞれによって、前記複数の別個のプログラム可能な電流源それぞれの両端間に前記アナログ入力信号を印加することに基づいて差動電流信号を生成することと、
前記複数の別個のプログラム可能な電流源それぞれによって、第１の加算ノードおよび第２の加算ノードに前記差動電流信号を供給することと、
前記第１の加算ノードと前記第２の加算ノードとの間の平均電圧を測定することと、
前記測定に応じて、共通電流信号を前記第１の加算ノードおよび前記第２の加算ノードのそれぞれに供給することと、
ローカル差動電流源によって、サーチベースの差動電流信号を前記第１の加算ノードおよび前記第２の加算ノードに供給することと、
前記第１の加算ノードおよび前記第２の加算ノードの前記差動電流信号の加重和の差に基づいてバイナリ出力値を生成することと、を含む、集積回路を実装する方法。
【請求項１５】
前記ローカル差動電流源は、大きさが同じだが方向が逆の前記第１の加算ノードと前記第２の加算ノードそれぞれに既知の変化する電流信号を供給する、請求項１４に記載の方法。
【請求項１６】
計算を実施するためＮサイクルの全体にわたる前記ローカル差動電流源に基準信号のＮビットの全体を供給するＮビットグローバルデジタルアナログ変換器を備えるグローバル基準源を実装することをさらに含む、請求項１４に記載の方法。
【請求項１７】
前記第１の加算ノードおよび前記第２の加算ノードに沿って前記差動電流信号を評価することと、
出力信号を前記ローカル差動電流源に返すことであって、前記出力信号が、目標電圧に対する前記第１の加算ノードおよび前記第２の加算ノードの測定された電圧の位置を示す、返すことと、をさらに含む、請求項１４に記載の方法。
【請求項１８】
Ｎサイクル後に、前記第１の加算ノードと前記第２の加算ノードそれぞれの合計電流値の間の加重和の差値を計算することと、
前記加重和の差をバイナリ出力コードに変換することと、をさらに含む、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１８年３月１９日出願の米国仮特許出願第６２／６４４，９０８号の利益を主張し、その全体は参照により本明細書に組み込まれる。
【０００２】
本明細書に記載の本発明は、一般に集積回路のアーキテクチャ分野に関し、より詳細には、新規の有用な混合信号集積回路および集積回路のアーキテクチャ分野の混合信号を計算する方法に関する。
【背景技術】
【０００３】
今日、人工知能および機械学習の様々な実装形態が、多くの技術分野で革新の契機になっている。人工知能（ＡＩ）システムおよび人工知能のモデル（アルゴリズムを含む）は、機械学習（深層学習）、推論、推理能力、および機械の大規模データ処理能力（例えば、コンピュータおよび／またはコンピューティングサーバ）を可能にする多くのシステムアーキテクチャおよびモデルによって定義される。これらのＡＩシステムおよびモデルは、自然言語処理、画像認識、企画立案、意思決定などの１つまたは複数の特定のタスクを行うため、集中的に訓練されることが多い。例えば、これらのＡＩシステムおよびモデルのサブセットは、人工ニューラルネットワークモデルを含む。人工ニューラルネットワークモデルの訓練は、多くの場合、使用前にモデルの関連するニューラルネットワークアルゴリズムを微調整するため訓練周期全体で数千時間と何テラバイトもの訓練データとを必要とする可能性がある。
【０００４】
しかし、訓練が終わると、ニューラルネットワークモデルまたはニューラルネットワークアルゴリズムを素早く展開して、訓練周期中に使用されるより大きい訓練データに比べると比較的小さいデータセットに基づいて推論して、特定タスクを成し遂げることができる（例えば、音声入力データからの音声を認識して）。小さいデータセットに戻づくニューラルネットワークモデルまたはニューラルネットワークアルゴリズムによる推論は、ニューラルネットワークモデルが計算して、正しい回答になる、または環境についての兆候になるものについての予言になり得る。
【０００５】
さらに、１つまたは複数のニューラルネットワークアルゴリズムを実装するニューラルネットワークモデルは、訓練フェーズで要求したのと同じ量の計算源を要求しない可能性があるが、その分野のニューラルネットワークモデルを展開して、重要な回路区域、エネルギー、および計算力を要求し続けて、データおよび推論を分類するか、または結果を予言する。例えば、加重和計算は、ニューラルネットワークアプリケーションを含む、パターンマッチングアプリケーションおよび機械学習アプリケーションで一般に使用される。加重和計算では、集積回路は、１組の入力（ｘｉ）に１組の重み（ｗｉ）を乗じ、各乗算演算の結果を合計して最終結果（ｚ）を計算するように機能できる。しかし、機械学習アプリケーションのための典型的な加重和計算は、加重和計算の計算コストを高くさせて伝統的なデジタル回路で計算する何百または何千もの重みを含む。具体的には、デジタルメモリから何百または何千もの重みにアクセスするには、非常に多くの計算時間（すなわち、レイテンシを増加する）と非常に多くのエネルギーを必要とする。
【０００６】
したがって、ニューラルネットワークモデルなどの加重和計算を計算するために要求される伝統的なデジタル回路は、ニューラルネットワークモデルに要求される何十万もの重みを保存するために必要な大量のデジタルメモリ回路を収容するため大きくなりがちである。回路のサイズが大きくなるため、多くの伝統的なコンピュータおよび回路の計算力を可能にするためより多くのエネルギーが必要になる。
【０００７】
その上、人工知能モデル、すなわち、ニューラルネットワークモデルを実装するためのこれらの伝統的なコンピュータおよび回路は、分散型コンピューティングシステム（例えば、クラウド）において、または多くのオンサイトコンピューティングサービスを使用するときなど、遠隔コンピューティング処理に適する可能性がある。しかし、これらの遠隔人工知能処理システムを遠隔、エッジコンピューティングデバイスまたはフィールド機器用に推論を計算する際に使用するとき、レイテンシの問題は、明白である。すなわち、これらの伝統的な遠隔システムが、遠隔フィールド機器で使用される推論を生成するためニューラルネットワークモデルの実装を求める場合、遠隔フィールド機器からの入力データを受信する際に回避不能な遅延が存在する。入力データは、バンド幅が変動してネットワーク上で転送されることが必要な場合が多いので、続いて遠隔コンピューティングシステムによって生成される推論は、同じか、または類似のネットワークを介して、遠隔フィールド機器に返信される必要がある。
【０００８】
ＡＩ処理システムをフィールドレベルで（例えば、局所的に遠隔フィールド機器で）実装することは、一部のレイテンシの課題を解決するための提案された解決策であってもよい。しかし、一部のこれらの伝統的なＡＩコンピュータおよびシステムをエッジデバイスで実装する試み（例えば、遠隔フィールド機器）は、データを処理し、推論を生成する際に使用されるコンピューティングシステムの要求される複雑なアーキテクチャにより、上述のように、相当な量のエネルギーを消費する多くの回路を備えるかさばるシステムをもたらす恐れがある。したがって、追加のないこうした提案は、現在の技術で実行できないおよび／また持続できない可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
したがって、大きく、かさばる（エッジ）デバイスにならず、レイテンシを低減し、省エネルギーでもありながら、リアルタイムまたはほぼリアルタイムで必要な計算パワーを有して予言または推論をする、フィールドの局所に（例えば、ローカルＡＩ）かつエッジデバイスで使用されることが好ましい人工知能モデルを実装する展開可能なシステムに対するニーズがある。
【課題を解決するための手段】
【００１０】
本出願の以下に記載された実施形態は、ＡＩおよび機械学習を実装する伝統的なシステムおよび集積回路アーキテクチャの不備を処理することが可能なこうした先進的かつ改善された集積回路および実装技術を提供する。
【００１１】
一実施形態では、集積回路には、複数のローカル差動電流回路を動作させる加重グローバル基準信号源、複数の差動電流回路のうちの１つの差動電流回路と電気的に通信して配置される第１の加算ノードおよび第２の加算ノード、それぞれの第１のプログラム可能な電流源が第１の加算ノードに配置され、それぞれの第２のプログラム可能な電流源が第２の加算ノードに配置され、プログラム可能な電流源の各対が入力信号に基づいて第１の加算ノードと第２の加算ノードとの間に差動電流信号を設定する、第１の加算ノードおよび第２の加算ノードに沿って配置された複数の別個の対のプログラム可能な電流源、第１の加算ノードと第２の加算ノードのそれぞれに電気的に通信して配置され、共通電流値を第１の加算ノードと第２の加算ノードのそれぞれに供給するか、それぞれから減らす共通モード制御回路、バイナリ加重グローバル基準源からの１つまたは複数の基準信号に基づいて第１の加算ノードと第２の加算ノードとの間の差動電流を調整するローカル差動電流回路、および第１の加算ノードと第２の加算ノードとの出力に基づいてアナログ値を評価し、その評価に基づいてバイナリ出力値を生成するコンパレータが含まれる。
【００１２】
一実施形態では、第１の加算ノードの第１の電流値の出力と第２の加算ノードの第２の電流値の出力の合計がゼロに等しくなるまで、ローカル差動電流回路は、第１の加算ノードと第２の加算ノードとの間の差動電流を調整する。
【００１３】
一実施形態では、コンパレータは、第１の加算ノードと第２の加算ノードのそれぞれの合計電流値の相対的な状態を評価し、第１の加算ノードと第２の加算ノードのいずれが、より大きい電流値を有するか、またはより小さい電流値を有するかを判定する。
【００１４】
一実施形態では、ローカル差動電流回路は、第１の加算ノードと第２の加算ノードのいずれがより大きい電流信号値を出力するかに基づいて第１の加算ノードと第２の加算ノードに漸次より小さい差動電流信号増分を供給することによって第１の加算ノードと第２の加算ノードとの間の差動電流信号を増やしたり減らしたりする。
【００１５】
一実施形態では、共通モード回路は、共通モード電流値を第１の加算ノードと第２の加算ノードのそれぞれに供給する単一増幅器駆動回路およびスイッチトキャパシタフィードバック回路のうちの１つを備える。
【００１６】
一実施形態では、スイッチトキャパシタフィードバック回路は、生成された共通モードフィードバック電圧を追跡する目標電圧値を動作させる第１の増幅器および共通モードフィードバック回路のスイッチング信号からの敏感な出力電圧から保護する第２の増幅器を含む。
【００１７】
一実施形態では、共通モード電流回路は、それぞれが２つのトランジスタのうちの１つと電気的に通信して配置され、それぞれが２つのトランジスタのそれぞれでゲート電圧を所望の共通モード電圧に動作させる少なくとも２つの増幅器を含む補正回路を備える。
【００１８】
一実施形態では、共通モード電流回路は、それぞれが２つのトランジスタのうちの１つと電気的に通信して配置され、２つのトランジスタのそれぞれでゲート電圧を所望の共通モード電圧に動作させる２つのトランジスタのそれぞれの間で切り替える単一増幅器を含む補正回路を備える。
【００１９】
一実施形態では、共通モード電流回路は、フロントエンド増幅器の出力電圧差動が少なくとも２つのトランジスタにゲート電圧として保存される、第１の加算ノードと第２の加算ノードの容量性入力ノードへの出力電圧をショートすることによって自動的にゼロになるフロントエンド増幅器を含む補正回路を備える。
【００２０】
一実施形態では、バイナリ加重グローバル基準信号源は、バイナリサーチアルゴリズムの各段階でバイナリ加重グローバル基準信号源が、複数のローカル差動電流回路がそれぞれ、複数のローカル差動電流回路それぞれの、それぞれのローカルの状態を調整するためにバイナリ加重値を設定するように、バイナリサーチアルゴリズムを実行する。
【００２１】
一実施形態では、複数のローカル差動電流回路はそれぞれ、共有信号経路に沿って配置され、加算ノードの別個の対と電気的に通信して配置され、バイナリ加重グローバル基準源は、複数のローカル差動電流回路のそれぞれに共有信号経路に沿って複数のバイナリ加重信号を供給する。
【００２２】
一実施形態では、混合信号集積回路には、複数のローカルデジタルアナログ変換器（ＤＡＣ）を動作させるグローバル基準信号源、複数のローカルＤＡＣのうちの１つのローカルＤＡＣと電気的に通信して配置される第１の加算ノードおよび第２の加算ノード、複数の別個の対のそれぞれの第１の電流発生回路が第１の加算ノードに配置され、複数の別個の対のそれぞれの第２の電流発生回路が第２の加算ノードに配置され、電流発生回路の各対が入力信号に基づいて第１の加算ノードと第２の加算ノードとの間に差動電流信号を設定する、第１の加算ノードおよび第２の加算ノードに沿って配置された複数の別個の対の電流発生回路、第１の加算ノードと第２の加算ノードのそれぞれに電気的に通信して配置され、共通電流値を第１の加算ノードと第２の加算ノードのそれぞれに供給するか、それぞれから減らす共通モード回路、グローバル基準源からの１つまたは複数の基準信号に基づいて第１の加算ノードと第２の加算ノードとの間の差動電流を調整するローカルＤＡＣ、および第１の加算ノードと第２の加算ノードとの出力に基づいてアナログ値を評価し、その評価に基づいてバイナリ出力値を生成するコンパレータまたは有限状態機械が含まれる。
【００２３】
一実施形態では、グローバル基準源は、バイナリサーチアルゴリズム、最下位ビットサーチアルゴリズム、非バイナリサーチアルゴリズム、対数サーチアルゴリズム、およびカスタムユーザ定義サーチ関数のうちの１つを実行する。
【００２４】
一実施形態では、集積回路を実装する方法は、複数の別個のプログラム可能な電流源のそれぞれでアナログ入力信号を受け取ること、複数の別個のプログラム可能な電流源のそれぞれによって、複数の別個のプログラム可能な電流源のそれぞれの両端間にアナログ入力信号を印加することに基づいて、差動電流信号を生成すること、複数の別個のプログラム可能な電流源のそれぞれによって、第１の加算ノードおよび第２の加算ノードに差動電流信号を供給すること、第１の加算ノードと第２の加算ノードとの間の平均電圧を測定すること、測定に応じて、第１の加算ノードおよび第２の加算ノードのそれぞれに共通電流信号を供給すること、ローカル差動電流源によって、第１の加算ノードおよび第２の加算ノードにサーチベースの差動電流信号を供給すること、および第１の加算ノードと第２の加算ノードの差動電流信号の加重和の差に基づいてバイナリ出力値を生成することを含む。
【００２５】
一実施形態では、ローカル差動電流源は、大きさが同じだが方向が逆の第１の加算ノードと第２の加算ノードのそれぞれに既知の変化する電流信号を供給する。
【００２６】
一実施形態では、方法は、計算を実施するためＮサイクルの全体にわたるローカル差動電流源に基準信号のＮビットの全体を供給するＮビットグローバルデジタルアナログ変換器を備えるグローバル基準源を実装することをさらに含む。
【００２７】
一実施形態では、方法は、第１の加算ノードと第２の加算ノードに沿って差動電流信号を評価すること、出力信号が目標電圧に対する第１の加算ノードおよび第２の加算ノードの測定された電圧の位置を示すローカル差動電流源に出力信号を返すことをさらに含む。
【００２８】
一実施形態では、方法は、Ｎサイクル後に、第１の加算ノードと第２の加算ノードのそれぞれの合計電流値の間の加重和の差値を計算すること、および加重和の差をバイナリ出力コードに変換することをさらに含む。
【図面の簡単な説明】
【００２９】
【図１】図１は、本出願の１つまたは複数の実施形態による集積回路１００の概略図を示す。
【図２】図２は、本出願の１つまたは複数の実施形態による集積回路を使用して加重和計算を実施する方法を示す。
【図３】図３は、本出願の１つまたは複数の実施形態による集積回路の第２の概略アーキテクチャを示す。
【図３Ａ】図３Ａは、本出願の１つまたは複数の実施形態による共通モード回路を実装するバリアントアーキテクチャの概略図を示す。
【図３Ｂ】図３Ｂは、本出願の１つまたは複数の実施形態による共通モード回路を実装するバリアントアーキテクチャの概略図を示す。
【図３Ｃ】図３Ｃは、本出願の１つまたは複数の実施形態による共通モード回路を実装するバリアントアーキテクチャの概略図を示す。
【図３Ｄ】図３Ｄは、本出願の１つまたは複数の実施形態による共通モード回路を実装するバリアントアーキテクチャの概略図を示す。
【図３Ｅ】図３Ｅは、本出願の１つまたは複数の実施形態による共通モード回路を実装するバリアントアーキテクチャの概略図を示す。
【図４】図４は、本出願の１つまたは複数の実施形態による集積回路の第３の概略アーキテクチャを示す。
【図５】図５は、本出願の１つまたは複数の実施形態による集積回路の第４の概略アーキテクチャを示す。
【図６】図６は、本出願の１つまたは複数の実施形態による集積回路の第５の概略アーキテクチャを示す。
【図７】図７は、本出願の１つまたは複数の実施形態による集積回路内にローカル電流源のアレイを有するグローバル基準源を実装する概略図を示す。
【図７Ａ】図７Ａは、本出願の１つまたは複数の実施形態による集積回路内にローカル電流源のアレイを有するグローバル基準源を実装する概略図を示す。
【図７Ｂ】図７Ｂは、本出願の１つまたは複数の実施形態による集積回路内にローカル電流源のアレイを有するグローバル基準源を実装する概略図を示す。
【図７Ｃ】図７Ｃは、本出願の１つまたは複数の実施形態による集積回路内にローカル電流源のアレイを有するグローバル基準源を実装する概略図を示す。
【図８】図８は、本出願の１つまたは複数の実施形態による集積回路内のグローバル基準源のバイナリ加重実装形態の概略図を示す。
【図８Ａ】図８Ａは、本出願の１つまたは複数の実施形態による集積回路内のグローバル基準源のバイナリ加重実装形態の概略図を示す。
【図９】本出願の１つまたは複数の実施形態によるＮサイクル計算の概略図を示す。
【発明を実施するための形態】
【００３０】
本出願の好ましい実施形態の以下の説明は、本発明をこれらの好ましい実施形態に制限することを意図するものではなく、むしろ当業者がこれらの発明を作製し使用できるようにすることを意図する。
【００３１】
Ｉ．混合信号計算大要
計算集約的プログラムまたはアプリケーション（例えば、深層ニューラルネットワークアルゴリズム）などを実装する際に使用される伝統的な集積回路では、通常の集積回路（ＩＣ）アーキテクチャは、大きい面積および力を必要とする比較的大きい回路を含んで、計算を実行、実施する。これは  デジタル信号を処理することは（例えば、バイナリ信号）、大きくて電力消費の激しい回路の実装を要求する場合が多いためである。したがって、人工知能モデルなどの多くの技術的な計算集約的なプログラムの実装に対して、デジタル信号を処理するためのこれらの大型回路を有する結果としてのコンピュータＩＣもまた、大きくて、したがって、空間が制限されたエッジデバイスなどを含むことにあまり適していない。
【００３２】
さらに、ニューラルネットワークモデルなどの計算集約的アプリケーションを実装する集積回路の大多数の計算量は、  数千から数万の行列乗算を実施するものである。さらに、ニューラルネットワークモデルのためのデジタル信号の処理では、２つの数字の積が計算され、積がその後、アキュムレータに追加される積和演算も実施され得る。したがって、デジタル回路のみ、または主としてデジタル回路を使用して、ニューラルネットワークモデルを実装する場合、結果としてのデジタル回路は、計算を実施して大量のエネルギーを消費し、神経細胞用重み係数および多くの積和演算の結果として生じる製品を貯蔵する。
【００３３】
計算のため必要な電力を低減するための技術的な解決策として、計算集約的プロセスができる集積回路の全体的なサイズは、面積効率およびエネルギー効率を達成するため様々な他の集積回路の電気回路構成と並んで極めて面積効率の良いデジタルアナログ変換器（ＤＡＣ）を使用して（根本的に大きい、または面積集約的な標準ＤＡＣではなくて）実装できる混合信号コンピューティングアーキテクチャを提供することを含む。したがって、ＤＡＣアーキテクチャの伝統的な実装は、集積回路が要求するエネルギーおよびその全体的なサイズを低減するために有用であり得るが、計算集約的ＡＩプログラムおよびアプリケーションを処理するために必要であり得る多くのＤＡＣにより、ＤＡＣアーキテクチャのこれらの伝統的な実装は、適していない可能性がある。
【００３４】
しかし、本出願の実施形態は、１つまたは複数のアナログデジタル変換器と動作可能に通信できるグローバル（基準信号源）ＤＡＣを様々な形態で実装することにより、少なくとも上述の技術的課題を解決する。
【００３５】
したがって、加重和計算を実施する集積回路が提供される。集積回路は、対に相互接続され配置された複数の電流発生要素、正の加算ノード、負の加算ノード、および入力発生回路を含むのが好ましい。電流発生要素の各対に対して、各要素の制御端子は入力ノードに電気的にせ接続される。電流発生要素のうちの１つは、正の加算ノードに接続された端子（例えば、ドレーンなど）を有するが、他の電流発生要素は、負の加算ノードに接続された端子（例えば、ドレーンなど）を有する。両方の電流発生要素上の残りの端子は、共有することができる基準に接続される。入力ノードが、活性化電圧にあり、２つの加算ノードが所定の目標電圧にある場合、電流発生要素の各対は、２つの加算ノードに所定の量の電流を供給する。本明細書で言及される活性化電圧は、プログラム可能な電流源によって供給される電流が電圧と共に増加し始める電圧値に関する。したがって、活性化電圧は、プログラム可能な電流源に検出可能電流信号を生成させる電圧値に関係し得る。これら２つの供給された電流の差は値を示し、値は、複数の電流発生要素の対の中で変動する。各対は、同じ２つの加算ノードに電気的に接続されるので、それらの電流は、当然これらのノードで合計され、その結果、２つのノードの間の電流の全体的な差は、対の値の合計に等しくなる。
【００３６】
上記を達成するため、集積回路は、共通モード電流発生回路、差動電流発生回路、および比較回路を含む。共通モード電流回路は、２つの加算ノードの平均電圧を測定し、平均電圧が目標電圧に等しくなるように各ノードに同じ電流を出力する。差動電流回路は、大きさが同じだが方向が逆の既知の変化する電流を各線に出力する。本明細書で論じたように、追加で、または代替で、差動電流回路は、大きさが変動し同じ方向（すなわち、同じ信号）か、または逆の方向（例えば、異なる信号）の既知の変化する電流を各線に出力するように機能することができる。比較回路は、どの加算線の電圧が大きいかを示す信号を出力する。比較出力回路が変化するとき、２つの加算ノードはしばらくの間目標電圧に等しくなり、差動電流回路によって生成される電流は、加算値に等しく、差動電流の値は、結果として記録され得ることが知られている。
【００３７】
したがって、ＤＡＣのアーキテクチャ面積の低減を達成でき、エッジコンピューティングデバイスなどが入力データの源で局地的にＡＩ計算することを含む複雑でコンピュータ集約的な動作を実施することができるコンピュータ効率および電力効率が達成され得る。
【００３８】
ＩＩ．アレイＤＡＣ大要
上述の混合信号計算アーキテクチャの改良として、本出願の１つ以上の実施形態は、参照によりその全体が本願に組み込まれる、米国仮特許出願第６２／５５９，３５４号および米国特許出願第１６／１２７，４８８号に記載の、動作可能に通信し複数のローカル（出力）ＤＡＣの制御であるグローバル（基準信号源）ＤＡＣを実装する。本明細書に記載のその実施形態およびさらなる実施形態は、チップ上で非常に大きい面積を費やさずに、多くの正確なＤＡＣの作成を可能にすることにより、混合信号コンピューティングアーキテクチャに関する根本的な技術的課題を解決するように機能する。対称的に、デバイスのサイズに関して低い束縛を要求する様々な構成部品のマッチングの制約により、最新のＤＡＣは、通常大きくなる可能性がある。この技術的課題は、ＤＡＣの解像度が６〜８ビットを越えると、さらに明らか、かつ解決しがたくなる。その結果、これらの伝統的なＤＡＣは、ＤＡＣのアーキテクチャで雑音や速度が考慮されると、エネルギー効率およびサイズ効率がよくない可能性がある。
【００３９】
グローバル（基準）ＤＡＣは、ローカル（ミラー）ＤＡＣそれぞれに対する信号源（一部の実施形態では、基準信号源のみ）として機能する。好ましい実施形態では、ローカルＤＡＣは、複数のクロックサイクルにわたってグローバルＤＡＣによって発生したアナログ基準信号を連続的に蓄積するように機能する。こうした実施形態では、ローカルＤＡＣそれぞれによる蓄積は、新しいまたは全体的な出力（例えば、基準信号の蓄積を表す電荷）を供給するコンデンサ上または他のエネルギー貯蔵デバイス上にある。
【００４０】
したがって、各ローカルＤＡＣは、通常基準信号を供給するそれぞれの専用の基準デバイスを必要とするので、上述の方法でグローバルＤＡＣを実装することにより、ローカルＤＡＣを動作させるために必要な多くの高精密基準デバイスの低減が可能になる。伝統的なＤＡＣでは、基準信号の発生ならびに出力回路は、一般に単一の大きいＤＡＣに組み込まれ得る。したがって、本出願のいくつかの実施形態では、グローバルＤＡＣは、複数のローカルＤＡＣそれぞれに信号伝達し、それによって正確なＤＡＣを実装するマッチング要求を改善する正確な源、より具体的には、複数のローカル出力ＤＡＣを動作させるための複数の基準信号源ＤＡＣに対する要求（例えば、１対１の一致を除く）を提供するように機能する。したがって、ＤＡＣのアーキテクチャ面積の低減を達成でき、エッジコンピューティングデバイスなどが入力データの源で局地的にＡＩ計算することを含む複雑でコンピュータ集約的な動作を実施することを可能にするコンピュータ効率および電力効率が達成され得る。
【００４１】
ＩＩＩ．バイナリマトリックス大要
グローバルＤＡＣによって制御されるローカルＤＡＣのアレイを含むアーキテクチャを実装する混合信号計算回路には、伝統的な集積回路上に著しい動作効率およびチップサイズ効率を提供しながら、動作効率を改良し、その計算速度を上げる機会がさらに存在する。
【００４２】
したがって、本出願の１つ以上の実施形態は、アナログデジタル変換器（ＡＤＣ）アーキテクチャ毎に１つのＤＡＣを可能にし、計算毎に２Ｎサイクルより計算毎にＮサイクルだけを必要とするバイナリサーチアルゴリズムの使用も可能にするアレイＤＡＣトポロジを有利に実装する。
こうした実装の技術的利点には、エネルギー効率（より少ないエネルギー使用）ならびに行列乗算計算および／または類似の計算の間集積回路の改良された動作性能（例えば、より速い計算）が含まれる。
【００４３】
例えば、非バイナリ加重グローバルＤＡＣの一部のＡＤＣアーキテクチャへの実装では、グローバルＤＡＣは、通常、ビット値の基本的または完全なスイープを実施することを要求される。こうした例では、８ビットグローバルＤＡＣを実装する場合、８ビットグローバルＤＡＣは、２５６ビット値（２８）を通してスイープするように機能し、それに応じて、アレイのＡＤＣそれぞれに２５６基準信号を生成する。したがって、こうした実装を用いて計算を実施するため少なくとも２５６クロックサイクルが必要である。
【００４４】
上述の通り、バイナリ加重ＤＡＣは、およそＮサイクルでＮビット計算を実施するためその機能を提案されている。
【００４５】
いずれの適切なサーチアルゴリズムが、ＬＳＢ（最下位ビット）最初のバイナリサーチ、非バイナリを含むがそれに限定されないバイナリサーチを越えて実装され得ることに留意されたい。
【００４６】
ＩＶ．混合信号計算アーキテクチャ
図１に示すように、計算集約的プログラムおよび／または計算集約的アプリケーションのための混合信号計算を実装する集積回路１００は、入力回路１１０、複数のプログラム可能な電流源１２０、第１の加算ノード１３０、第２の加算ノード１４０、および読み出し回路１５０（例えば、アナログデジタル変換器（ＡＤＣ））を含む。好ましくは、読み出し回路１５０は、図８Ａに例として示すように、差動電流回路１５１および共通モード電流回路１５６を含む。
【００４７】
集積回路１００は、電流発生要素（例えば、複数のプログラム可能な電流源など）に計算の重みまたは同様の係数を予め保存し、入力に応答して電流値を生成するため電流発生要素を使用することによって（デジタルドメインよりも）アナログドメインにおいて計算集約的アプリケーションまたは計算集約的プログラムのための加重和計算を実施するように機能するのが好ましいが、混合信号回路は、電流発生要素によって生成された電流値の加重和計算に基づいて出力コード（例えば、デジタル出力）を識別するため実装することができる。
【００４８】
入力（発生）回路１１０は、プログラム可能な電流源１２０のアレイの１つ以上に入力信号を提供するように機能するのが好ましい。いくつかの実施形態では、入力回路１１０は、複数のプログラム可能な電流源１２０に１組の入力信号を生成する、かつ／または提供するように構成される。入力回路は、１つまたは複数の入力信号源からデジタル（例えば、バイナリ）入力信号またはアナログ入力信号を受信するように機能できる。１つまたは複数の入力信号源は、入力回路１１０、外部入力センサ（例えば、カメラなど）、スイッチ、オフチップデバイスまたはオフチップ回路（例えば、オフチップメモリなど）などと動作可能に信号通信する別の集積回路層を含んでもよい。入力回路１１０は、追加でまたは代替で、プログラム可能な電流源の各対が一連の入力信号を受信し、それに応じて一連の対応する出力を生成する多段方式の集積回路１００内にデジタル入力信号を提供するように機能してもよい。
【００４９】
いくつかの実施形態では、入力回路１１０は、それぞれがプログラム可能な電流源１２０の信号入力端子と電気的に通信し得る複数の信号出力ポートを備える単一回路として構成することができる。すなわち、各信号出力ポートは、プログラム可能な電流源１２０または対のプログラム可能な電流源１２０の対応する信号入力受信端子に電気的に結合されるか、そうでなければ、電気的に接続され得る。追加でまたは代替で、入力回路１１０は、それぞれがプログラム可能な電流源１２０の信号入力端子と電気的に通信して配置される単一信号出力ポートを含む複数の異種の回路として構成することができる。
【００５０】
いくつかの実施形態では、入力回路１１０は、デジタル入力信号をアナログ入力信号に変換するように構成され得る。こうした実施形態では、入力回路１１０は、デジタル入力信号を受信し、デジタル入力信号を回路１００のアナログ電気回路構成に理解可能なアナログ出力信号に変換するように機能するデジタルアナログ変換器を含み得る。例えば、入力回路１１０は、デジタルセンサからバイナリ入力信号を受信し、バイナリ入力信号を電圧信号に変換し、電圧信号をプログラム可能な電流源１２０に渡すように機能してもよい。したがって、入力回路１１０は、プログラム可能な電流源１２０を制御するため受信した入力信号に基づいて変動する電圧信号を生成するように構成される電圧コントローラ回路（例えば、コンピュータプロセッサなどを有するマイクロコントローラ）を含んでもよい。
【００５１】
好ましい実施形態では、対のプログラム可能な電流源１２０のゲート端子を接続することによって電気的に通信して配置されるか、または電気的に接続される複数のプログラム可能な電流源１２０は、対に配置することができるが、プログラム可能な電流源は、任意の適切な方法で対で接続できることに留意されたい。好ましくは、プログラム可能な電流源の異種の対は、行または列に配置され、それにより柱状または長手方向配列を形成するが、様々な実施形態では、プログラム可能な電流源の対は、３列より多く、または３列より少なく配置されるか、もしくは任意の適切な数の列で配置されてもよい。追加で、プログラム可能な電流源１２０の電気的に接続された対は、さらに、上述の通り、入力回路１１０に電気的に通信して配置されるか、または電気的に接続されてもよい。すなわち、１対のプログラム可能な電流源１２０の１つ以上のゲート端子を使用して、プログラム可能な電流源１２０の対を互いにならびに入力回路１１０の入力ノード（ポート）または回路に電気的に接続することができる。いくつかの実施形態では、プログラム可能な電流源１２０の各対は、入力回路１１０の出力ノードに電気的に通信して配置される制御端子を含み、対の１つまたは複数の端子は、複数の対のプログラム可能な電流源のそれぞれの中で共有され得る基準発生器または基準回路に接続されてもよい。いくつかの実施形態では、基準発生器は、プログラム可能な電流源１２０の各対に対して基準値を生成および供給するように機能し得るグローバルデジタルアナログ変換器（ＤＡＣ）などの任意の適切な基準源を備える。こうした構成の結果、入力回路１１０は、１対のプログラム可能な電流源１２０のゲート端子を介して単一入力信号を送信することができてもよく、対の電流源それぞれは、入力回路１１０から同じ単一入力信号を受信するように機能する。
【００５２】
１対のプログラム可能な電流源１２０の各プログラム可能な電流源１２０のソース端子は、接地または任意の適切な基準電圧に接続されてもよいが、各プログラム可能な電流源１２０のドレーン端子は、それぞれの電流加算ノードに接続される。好ましい実施形態では、１対の電流源の第１のプログラム可能な電流源１２０のドレーン端子は、第１の電流加算ノード１３０に電気的に接続することができ、１対の電流源の第２のプログラム可能な電流源１２０のドレーン端子は、第２の電流加算ノード１４０に電気的に接続することができる。同様に、電流源の対の第１のプログラム可能な電流源１２０および第２のプログラム可能な電流源１２０のそれぞれのソース端子は、それぞれの接地または任意の適切な基準電圧に電気的に接続することができる。
【００５３】
好ましい実施形態では、対のプログラム可能な電流源１２０のアレイは、回路１００内に配置され得る。こうした実施形態では、アレイの各対のプログラム可能な電流源１２０の第１のプログラム可能な電流源は、第１の電流加算ノード１３０を共有することができ、各対のプログラム可能な電流源１２０の第２のプログラム可能な電流源は、第２の電流加算ノード１４０を共有することができる。こうした実施形態の第１の加算ノード１３０は、第１のプログラム可能な電流源のそれぞれによって供給された正の電流を合計するように機能でき、第２の加算ノード１４０は、第２のプログラム可能な電流源のそれぞれによって供給された負の値を表す電流（例えば、負に加重された電流）を合計するように機能することができる。したがって、対のプログラム可能な電流源１２０のアレイは、第１の加算ノード１３０と第２の加算ノード１４０それぞれに沿ってプログラム可能な電流源１２０のアレイによって供給された電流を合計するため、キルヒホッフの電流則（ＫＣＬ）を利用して回路１００に配置することができる。
【００５４】
一実装形態では、プログラム可能な電流源１２０の２つ以上のアレイが、図５に例として示す回路１００に配置されてもよい。このマルチカラム配置では、プログラム可能な電流源１２０の２つ以上のアレイはそれぞれ、図３〜４に例として示すように、入力発生回路１１０を共有する列を形成し、差動電流回路１５１の論理回路１５２（例えば、コンピュータプロセッサ、処理回路などを有するマイクロコントローラ）を制御する。この構成では、入力発生回路１１０を含む回路１００の１つ以上の構成要素および少なくとも差動電流回路１５１のマイクロコントローラは、複製されないので、回路１００で縮尺を達成できる。
【００５５】
プログラム可能な電流源１２０の２つ以上のアレイが、回路１００に配置され得る第２の実施形態では、図６に例として示すように、プログラム可能な電流源１２０の複数の列またはアレイが、差動電流回路１５３、共通モード電流回路１５６および電流源１５８、ならびに比較回路１６０を共有できるように、アナログマルチプレクサ１７０が、回路１００内に追加で配置されてもよい。好ましくは、アナログマルチプレクサ１７０は、プログラム可能な電流源１２０の第１の列またはアレイから、および別にプログラム可能な電流源１２０の第２の列またはアレイから加重合計電流を受け取るように機能する。動作の際には、アナログマルチプレクサ１７０は、プログラム可能な電流源のそれぞれの列またはアレイから読み出し回路１５０に加重合計電流を交互に入れ替えるように機能してもよい。この方法で、読み出し回路１５０のアナログデジタル変換器の機能は、複数の列にわたって償却することができる。この実装形態がプログラム可能な電流源１２０の２つの列またはアレイで図示されるが、アナログマルチプレクサは、プログラム可能な電流源１２０の任意の数の列またはアレイを実装するように縮尺できることを理解されたい。
【００５６】
第２の実装形態の変形では、プログラム可能な電流源１２０の複数の列それぞれの出力状態は、プログラム可能な電流源１２０の各列からの出力結果が回路１００で実施された加重和計算の終わりにシフトチェーンから外にシフトできるようにシフトチェーンに結合されてもよい。これにより、回路１００に実装されたプログラム可能な電流源１２０の複数の列それぞれに対して出力回路を位置付ける十分な空間がない場合に、回路１００の回路区域での効率的な働きを可能にする。
【００５７】
第１の加算ノード１３０および第２の加算ノード１４０は、電荷を伝達または搬送できる任意の種類の導管を含んでもよい。例えば、第１の加算ノード１３０および第２の加算ノード１４０は、
電気伝導体（例えば、金属ワイヤまたは金属線、導電性流体など）を含んでもよい。任意の適切な電気伝導体が、第１の加算ノード１３０および第２の加算ノード１４０を実装するために使用されてもよいことに留意されたい。
【００５８】
複数のプログラム可能な電流源１２０はそれぞれ、（アナログ）入力信号（例えば、電圧など）に応じて電流値を発生するように機能するのが好ましい。好ましい実施形態では、プログラム可能な電流源１２０は、電圧が印加されると電流値を発生するように機能する抵抗回路を備える。抵抗回路は、任意の種類の再構成可能抵抗器（すなわち、調整可能な抵抗器）であってよく、好ましくは、抵抗回路は、任意の適切なまたは再構成可能な抵抗値あるいは係数を保存するようにプログラムすることができるＮＯＲフラッシュトランジスタを備える。追加でまたは代替で、抵抗回路は、メモリスタとも呼ばれる場合がある、誘電性固体材料にわたって抵抗を変化させるように動作する１つの種類の不揮発性ランダムアクセスコンピュータメモリである抵抗ランダムアクセスメモリ（ＲＲＡＭまたはＲｅＲＡＭ）を備える。いくつかの実施形態では、プログラム可能な電流源１２０は、１端子（１Ｔ）ＮＯＲフラッシュトランジスタまたは２端子（２Ｔ）ＮＯＲフラッシュトランジスタおよび／もしくは他のフラッシュメモリを使用して実装されてもよい。プログラム可能な電流源は、他の種類のＮＯＲ型およびＮＡＮＤ型フラッシュデバイス、ＲＲＡＭデバイス、または当技術分野で既知の任意の適切なデバイスを含む様々な電流発生デバイスによって実装できることを理解されたい。
【００５９】
好ましい実施形態では、プログラム可能な電流源１２０は、重みまたは係数で事前構成することができる。例えば、機械学習モデル（例えば、ニューラルネットワークモデル）の重みおよび／または係数は、プログラム可能な電流源１２０の対にマッピングすることができる。
【００６０】
上述したように、プログラム可能な電流源１２０は、同じ入力電圧信号がプログラム可能な電流源１２０の対の両端間に印加されたとき、プログラム可能な電流源１２０の対が、特定のまたは所定の値になるようにプログラムされている差を有する１対の電流（対のそれぞれの電流源による電流出力）を出力するように、対にかつ前もってプログラムされて（すなわち、予めプログラムされて）配置されるのが好ましい。したがって、プログラム可能な電流源１２０の対によって供給されるそれぞれの電流間の差は、（正の）加算ノード１３０と電気的に通信して配置されるプログラム可能な電流源を所定の値（例えば、正の重みまたは正の係数）にプログラムすること、および／または（負の）加算ノード１４０と電気的に通信して配置されるプログラム可能な電流源を所定の値（例えば、正の重みまたは正の係数）にプログラムすることによって生成することができる。したがって、所定の差値を有するプログラム可能な電流源１２０による電流の対の出力は、２つの加算ノードがそれぞれ目標電圧（ＶＴＡＲＧＥＴ）にあるという状態の間に、入力回路１００が、電圧入力を含む入力信号をプログラム可能な電流源１２０の対に提供するとき、達成され得る。さらに、以下により詳細に記載するように、読み出し回路１５０は、２つの加算ノードの目標電圧状態を生成するように機能でき、この状態を生成すると同時に、読み出し回路１５０は、プログラム可能な電流源１２０の電流の合計差を決定するように機能することもできる。したがって、加重和計算結果は、所与の１組の入力に対する合計電流差を決定することにより、この方法で決定することができる。
【００６１】
読み出し回路１５０は、加重和電流信号からデジタル出力信号またはコードを決定するように機能するのが好ましい。読み出し回路１５０は、所与の１組の入力に対する加重和計算結果を決定するため共同して動作する差動電流回路１５１、共通モード電流回路１５６、およびコンパレータ回路１６０を含むのが好ましい。
【００６２】
本出願の１つ以上の実施形態では、読み出し回路１５０は、アナログデジタル変換器（ＡＤＣ）を備えるのが好ましい。製造上の欠陥に起因する場合が多い生産性の課題により、集積回路１００は、故障を説明するため冗長ＡＤＣを実装してもよい。１つまたは複数の特定の実装形態では、故障の場合、ＡＤＣ全体に代わることができる、列の冗長が実装されてもよい。列および／または行の冗長が実装されてもよいことに留意されたい。
【００６３】
さらに、こうした実施形態では、複数の冗長ＡＤＣ（Ｘ）が、集積回路のＮ個のＡＤＣの各組用に配置されてもよい。使用または動作の際には、冗長ＡＤＣの出力は、所与の組の全てのＮ個のＡＤＣ出力に多重送信されてもよい。
このアーキテクチャにより、余分な寄生を敏感なアナログノードに追加しない透明な設計が可能になる。一変形実装形態では、各欠陥ＡＤＣまたはこわれたＡＤＣは、冗長ＡＤＣが要求されるとき、１つだけ移動されてもよい。この方法では、ルーティングは少ないが、デジタル機構は、冗長の実装を認識していることを要求されてもよい。例えば、チップのブリングアップ後、不良ＡＤＣの位置は、フューズなどに保存され、冗長ＡＤＣは、欠陥ＡＤＣを交換するように設定される。
【００６４】
差動電流回路１５１は、電流源１５３および電流源１５３を使用して電流発生電流を制御する差動マイクロコントローラ回路１５２を含むのが好ましい。差動電流回路１５１は、差動電流値を第１の電流加算ノード１３０および第２の電流加算ノード１４０に対して生成し供給するように機能するのが好ましい。使用の際には、差動電流回路１５１および関連する電流源１５３は、既知の差を有する２つの電流を一度に生成するように機能することができ、１つの電流を第１の加算ノード１３０および第２の加算ノード１４０にそれぞれ供給する。好ましくは、差動電流回路の電流源によって生成された２つの差動電流は、大きさが等しくてもよいが、反対符号（例えば、同じ大きさの１つの正の電流、１つの負の電流、（５０Ａ、−５０Ａ））を有する。追加でまたは代替で、差動電流回路１５１の２つの電流源１５３によって生成された２つの差動電流は、差動電流回路１５１からの入力信号に基づく２つの電流源１５３によって供給された第１の電流信号および第２の電流信号尾が異なる大きさ（例えば、（＋８Ａ、＋２Ａ）、（＋４Ａ、＋６Ａ）など）を持つことができるように大きさが変動してもよい。
【００６５】
差動電流回路１５１の２つの差動電流源１５３はそれぞれ、第１の電流加算ノード１３０と第２の電流加算ノード１４０の一方と電気的に通信していてもよい。いくつかの実施形態では、２つの差動電流源１５３はそれぞれ、第１の電流加算ノード１３０と第２の電流加算ノード１４０の一方と直接の電気接続を共有し、その結果、２つの電流源のそれぞれの端子は、第１の電流加算ノード１３０と第２の電流加算ノード１４０の一方と電気的に接続されるか、または電気的に結合される。
【００６６】
一実装形態では、差動回路１５１は、コントローラとして作用するカレントミラーを有するデジタルアナログ変換器（ＤＡＣ）を備え、それは、１組の既知のデジタル入力値またはデジタル入力コードで予めプログラムされるか、またはそれへのアクセスを有する。ＤＡＣは、既知のまたは事前設定されたデジタル入力値をアナログ信号（例えば、差動電流信号）に変換することによって２つの電流源１５３によって供給される差動電流信号を変動するように機能する。カレントミラーは、装荷に関わらず出力電流を一定に保持しながら、一方の能動デバイス（または電流源）を通る第１の電流を別の能動デバイスでその電流を制御することによって複製するように機能することができる。好ましい実施形態では、カレントミラーを定義する回路は、電流の方向を逆にするように機能する反転電流増幅器を含む。
【００６７】
使用の際には、カレントミラーを有するＤＡＣは、ＤＡＣへの入力として既知のデジタル値の組を通してランプまたはスイープし、第１の加算ノード１３０および第２の加算ノード１４０それぞれに加えることができる結果としての（および変動する）電流信号を出力するように機能することができる。好ましい実施形態では、ＤＡＣは、最も負の既知のデジタル値から最も正の既知のデジタル値にランプまたはスイープすることができる。追加でまたは代替で、ＤＡＣは、最も正の既知のデジタル値から最も負の既知のデジタル値にスイープすることができる。これらの実施形態のいくつかは、２つの差動電流を生成するためカレントミラーなどを有するＤＡＣを備える差動電流回路を実装することができるが、差動電流を生成する任意の適切なデバイスおよび／または既知のデバイスを実装してもよいことを理解されたい。
【００６８】
共通モード電流回路１５６は、図１に例として示すように、２つの電流源１５８、共通モード制御回路１５７（例えば、コンピュータプロセッサ、処理回路などを有するマイクロコントローラ）、増幅器、および共通源増幅器段階を備えるのが好ましい。共通モード電流回路は、第１の加算ノード１３０および第２の加算ノード１４０の平均電圧を（電圧、電流、または任意の電気的パラメータもしくは電荷を感知できる）測定回路を介して測定するように機能するのが好ましい。これに対し、共通モード制御回路１５７は、第１の加算ノード１３０および第２の加算ノード１４０の平均電圧が目標電圧（ＶＴＡＲＧＥＴ）に等しくなるか、または実質的に等しくなるように電流源１５８を変調して、第１の加算ノード１３０および第２の加算ノード１４０それぞれに電流信号を出力するように機能することができる。好ましい実施形態では、２つの電流源１５８によって生成されるか、または供給され、それぞれの加算ノード１３０、１４０の出力される電流信号は、大きさおよび符号が等しい。
【００６９】
一実装形態では、図３Ａに示すように、共通モード制御回路１５７は、第１の加算ノード１３０および第２の加算ノード１４０それぞれで入力が、所望の共通モード電圧（ＶＴＡＲＧＥＴ）に等しくなるまで、回路１５７のトランジスタの電圧ゲートを動作させるため増幅器Ａで実装されてもよい。共通モード制御回路１５７のトランジスタは、１つまたは複数のＮＭＯＳトランジスタ、ＰＭＯＳトランジスタ、および／または任意の適切な若しくは既知のトランジスタで実装できることに留意されたい。
【００７０】
追加でまたは代替で、図３Ｂに示すように、共通モード制御回路１５７は、回路１５７のトランジスタのゲート電圧を変調するため、スイッチトキャパシタフィードバックネットワークで実装できる。
【００７１】
共通モード制御回路１５７がスイッチトキャパシタフィードバックネットワークを含む好ましい実施形態では、スイッチトキャパシタフィードバックネットワークは、出力電圧ノードに障害を引き起こす共通モード制御回路１５７のスイッチング信号からの敏感な出力電圧を保護するアーキテクチャで作成されてもよい。また、共通モードフィードバック電圧は、プログラム可能な電流源（例えば、フラッシュセルなど）によって生成される共通モード電流の最大範囲を網羅するため大振幅を必要とする場合があるため、スイッチトキャパシタフィードバック回路の実効利得は一般の環境におけるよりも高くなるはずである。図３Ｃに例として示すように、スイッチトキャパシタフィードバックネットワークは、生成された共通モードフィードバック電圧を追跡するため理想的な電圧（目標電圧）を動作させる増幅器Ａ１で好ましくは実装され得る。さらに、共通モードフィードバック回路でスイッチング信号から敏感な出力電圧を保護する増幅器Ａ２が、設けられてもよい。
【００７２】
回路１００の回路設計内の不完全な回路構成要素および／または１つまたは複数の副作用により、補正回路および／または補正方法が、回路１００の設計における副作用または他の意図しない問題を和らげるため回路１００内に実装されてもよい。一例として、
共通モード電流駆動トランジスタ間のオフセットは、プログラム可能な電流源１２０を通る電流にオフセットを引き起こすように機能し、それにより、入力回路１１０からの入力信号を乱す場合がある。したがって、回路１００を実装する前に、共通モード回路１５６が、電流のオフセットを補うため校正されてもよい（すなわち、電流のオフセットが校正される）。
【００７３】
例えば、１つまたは複数の実装形態では、共通モード制御回路１５７は、追加でまたは代替で、供給モード従属性オフセット用の回路を含んでもよい。上述のように、供給モード出力電圧を調整するために使用されるトランジスタは、製造後にいくつかのパラメータ不整合がある場合があり、それにより、共通モードフィードバック回路からの同じ入力電圧を与えられた場合でも２つのデバイス間に異なるトランスコンダクタンス値を引き起こし、２つのトランジスタが異なる電流値を生成する場合がある。電流値または電流エラーのこの差異は、ＡＤＣ増幅器（例えば、フロントエンドＡＤＣ増幅器）の出力上の差動電圧として現れ、ＡＤＣでのオフセットをもたらす。したがって、共通モードの電流変化のため、このトランジスタデバイスのエラーは、どの共通モード電流の場合が計算されているかに応じて、より大きい実行電流エラーを引き起こしたり、より小さい実行電流エラーを引き起こしたりする場合がある。本出願の１つ以上の実施形態では、オフセットまたはトランジスタデバイスのエラーは、１つの共有された共通モード調整トランジスタを備える２つの電流ステアリングトランジスタのゲート電圧を調節することによって訂正され得る。
【００７４】
図３Ｄに例として示す第１の実装形態では、回路１５７が既知の動作状態にあるとき、所望の共通モード電圧に等しい出力を満たす値に（ＮＭＯＳ）トランジスタのゲート電圧を動作させるように、２つの増幅器が設けられてもよい。この第１の実装形態の変形では、共通モード制御回路１５７は、動作の２つの相において共通モード目標電圧に一致する電圧値を生成するため、２つのトランジスタ間で切り替えることができる単一の増幅器のみで実装されてもよい。
【００７５】
図３Ｅに例として示すように、第２の実装形態では、出力電圧が容量性入力ノードに対してショートし、電圧差動が、２つの（ＮＭＯＳ）トランジスタ上のゲート電圧として保存されるＡＤＣのフロントエンドの増幅器は、自動的にゼロになり得る。したがって、フラッシュセルによって生成された差動電流値を訂正するのを避けるため、入力は、オフセット訂正（すなわち、自動ゼロ化）相の間、反転され、その後、入力は、計算（すなわち、非自動ゼロ化）相を非反転される。この二相プロセスは、信号が訂正されるのを維持するように機能でき、（ＮＭＯＳ）電流ステアリングトランジスタのゲートの反転値を保存することによって信号を二倍にする。
【００７６】
好ましくは、補正校正の第１の相では、プログラム可能な電流源１２０の選択された組は、第１の加算ノード１３０（例えば、正の加算ノード）に電気的に接続されてもよい。この実装形態では、共通モード回路１５６の増幅器は、第１の加算ノード１３０が、目標電圧（Ｖｔａｒｇｅｔ）に等しいか、または実質的に等しくなるように、電圧基準（Ｖｒｅｆ）に参照される第１のコンデンサを動作させるように機能する。この相では、Ｖｒｅｆは、共通モード回路１５６の増幅器の良好な動作状態を可能にするように選択され、オフセットなくＶｔａｒｇｅｔを達成するためＰ型金属酸化物半導体（ＰＭＯＳ）デバイス（例えば、トランジスタ）のゲート上に必要な公称値を表すことができる。その結果、共通モード電流回路１５６の増幅器は、理想的な状態からそのトランジスタのオフセットを表す第１のコンデンサの両端間に電圧を動作させる。
【００７７】
第２の相では、（同じ電流信号を有する）プログラム可能な電流源１２０のプログラム可能な電流源１２０の選択された組（すなわち、同じ組）は、第２の加算ノード１４０（例えば、負の加算ノード）に接続されてもよい。共通モード回路１５６の増幅器は、第２の加算ノード１４０が、目標電圧（Ｖｔａｒｇｅｔ）に等しいか、または実質的に等しくなるように、電圧基準（Ｖｒｅｆ）にも参照されてよい第２のコンデンサを動作させるように機能し得る。
【００７８】
補正校正の第１の相と第２の相の結果、第１のコンデンサと第２のコンデンサとの間の電圧差は、２つのＰＭＯＳデバイスによって生成されたオフセット電流（例えば、補正電流）の差を表すことができる。補正校正は、校正の第１の相と第２の相との間のプログラム可能な電流源１２０の任意の組を実装でき、第１の相あるいは第２の相の第１の加算ノード１３０または負の加算ノード１４０のいずれかで動作するように機能できることに留意されたい。回路１００内の実装されたトランジスタは、ｎチャンネル金属酸化物半導体電界効果（ＮＭＯＳ）であってよいが、共通モード回路１５６のトランジスタは、ＰＭＯＳであってもよく、ＮＭＯＳトランジスタとＰＭＯＳトランジスタの配置は、反転されるか交換してもよく、その結果、共通モード回路１５６はＮＭＯＳトランジスタを実装し、ＰＭＯＳトランジスタは、差動電流回路１５１を含む他の箇所に実装されてよい。
【００７９】
動作の際には、共通モード回路１５６の増幅器は、共通モード電流駆動源１５８がそれぞれその対応する保存されたオフセットによって修正された電圧を受け取るように差を保存するコンデンサの底板を動作させるように機能できる。
【００８０】
第１の加算ノード１３０および第２の加算ノード１４０は、プログラム可能な電流源１２０と差動電流回路１５１の合計を含む差動電流の２つの源を有するのが好ましい。動作の際には、差動電流の２つの源が等しいが逆向きであるとき、それらは相殺され、結果として全体の差動電流はない。差動電流がないというこの状態が満たされると、共通モード電流回路１５６および２つの電流源１５８は、第１の加算ノード１３０と第２の加算ノード１４０をＶＴＡＲＧＥＴに等しくなるようにし、それにより、全ての差動電流が正しい電圧状態にあることによって知られる状態を可能にする。
【００８１】
読み出し回路１５０は、電流源１５３によって生成された差動電流を変更し、比較回路１６０の出力を読み取ることによって差動電流の２つの源の間の等しいが逆の電流状態を識別または判定するように機能するのが好ましい。差動電流の２つの源の間の差が等しくないとき、２つの加算ノード１３０、１４０のうちの一方の加算ノードは、他の加算ノードの決定された電圧より大きい決定された電圧を有し、比較回路１６０は、加算ノードの電圧がより高いことを示す第１の出力を維持または生成する。より高い電圧値を有するノードは、差動電力回路１５１がプログラム可能な電流源１２０の合計より、より正のまたはより負の差動電流を供給しているかどうか次第であり得る。いくつか詳細に上述したように、差動電流回路１５１によって供給された差動電流は、最も負の値から最も正の値に、または逆に最も正の値から最も負の値にスイープされてもよく、比較回路１６０は、電流の２つの差が交差する点でその出力を変更する。すなわち、２つの差動電流源の合計がゼロに等しいか、または第１の加算ノード１３０と第２の加算ノード１４０両方の合計の電圧値が（ＶＴＡＲＧＥＴ）に等しいとき、比較回路１６０は、その出力を変更する。比較回路１６０がその出力を変更するとき、差動電流回路によって加算ノードに供給される差動電流値は、２つのプログラム可能な電流源１２０の加重和の差を表すデジタル出力コードを生成するためアナログデジタル変換器によって記録および参照されてもよい。さらにそのとき、差動電流回路によって供給された記録された２つの差動電流値は、第１の加算ノード１３０と第２の加算ノード１４０の２つの差動電流の合計に関して、大きさは等しいが、方向は逆であった。
【００８２】
Ｖ．ＤＡＣのアレイを実装する混合信号計算アーキテクチャ
図７に示すように、計算集約的なプログラムおよび／またはアプリケーションのための混合信号コンピューティングを実施するシステム７００は、グローバル基準発生器７１０、複数のローカルアキュムレータ７２０、および共有信号経路７２５を含む。図７Ａに示すように、ローカルアキュムレータ７２０はそれぞれ、エネルギー貯蔵デバイス７２２およびカレントミラー７２４を含み得る。
【００８３】
システム７００は、好ましくはデジタルアナログ変換器の典型的な機能を少なくとも２つの構成要素デバイスに二（２）分割するため機能する。いくつかの実施形態では、第１の構成要素は、１つまたは複数の（アナログ）基準信号を定義するかまたは発生させるため機能するグローバル基準発生器７１０を含む。いくつかの実施形態では、グローバル基準発生器７１０は、バイナリ加重グローバル基準発生器を備えてもよい。いくつかの実施形態では、第２の構成要素は、共有信号経路７２５を介してグローバル基準発生器７１０から基準信号を受信するように機能し、いくつかの実施形態では、時間の設定期間にわたり基準信号の値の算術関数（例えば、足し算、引き算など）を実施するためさらに機能する１組のローカル蓄積デバイスを含む。
【００８４】
システム７００は、小さい、ローカル蓄積デバイスのセットを含む第２の構成要素に対して、第１の構成要素を大きくでき、正確な基準信号を発生できるようにすることによって、少なくとも上述の構成で、規模の効率性および面積の効率性を達成するように（例えば、小さい集積回路を作る）機能する。すなわち、第１の構成要素の面積および電力（マッチして、雑音を制限する）が、ここで償却される。したがって、システム７００は、極めて高い面積効率および電力効率を持ちながら、計算集約的動作を実施できる集積回路アーキテクチャを可能にする。
【００８５】
グローバル基準発生器７１０は、複数のローカルアキュムレータ７２０それぞれに対して基準信号を発生するように機能する。好ましくは、グローバル基準発生器７１０は、図７〜７Ａに示すように、グローバルデジタルアナログ変換器（ＤＡＣ）を備える。こうした場合では、グローバルＤＡＣは、外部源からのデジタル信号（例えば、二進数または入力）を入力として受信するように機能でき、アナログ基準信号  （例えば、電圧または電流信号）を複数のローカルＤＡＣに出力するように機能できる。したがって、グローバルＤＡＣは、アナログ基準信号をグローバルＤＡＣで受信したデジタル入力に基づいて、ローカルアキュムレータ（例えば、ローカルＤＡＣ）に発生するように機能し得る。追加で、または代替で、グローバル基準発生器７１０によって発生し、各ローカルアキュムレータに送信された基準信号は、ローカルアキュムレータ７２０の機能を制御するか、または動作させるために使用できる、電流または電圧などのアナログ基準信号であってもよい。したがって、グローバル基準発生器７１０によって提供されるグローバル基準信号は、ローカルアキュムレータ７２０を互いにならびに同じグローバル基準発生器７１０に動作可能に接続する共有信号経路７２５（例えば、共有、または共通のケーブル）を介してローカルアキュムレータ７２０に送信されるのが好ましい。
【００８６】
図７Ｂに関連して、図７Ｂは、複数のローカルＤＡＣ（ＬＤＡＣ）が単一グローバルＤＡＣ（ＧＤＡＣ）から１つまたは複数のアナログ基準信号を受信するように機能するグローバルＤＡＣローカルＤＡＣアーキテクチャの一実装形態を示す。したがって、各ローカルＤＡＣで受信されるローカル入力（例えば、Ａ＿入力、Ｂ＿入力など）は、一定量の電荷を発生する調整可能抵抗器に加えることができる。したがって、いくつかの実施形態では、調整可能抵抗器の各列が、組み合わせて（ニューラルネットワークの）ニューロンとして機能し、ニューロン列のそれぞれの調整可能抵抗器で発生した電流出力は、集められて、単一の集合した電流出力（例えば、ニューロン出力）を形成できる。しかし、調整可能抵抗器の列は、任意の適切な計算技術または計算アーキテクチャに加えることができる。
【００８７】
図７Ｃを参照すると、グローバル基準発生器７１０が、ローカルアキュムレータ７２０の増幅器ベースの積分器に対してバイアス電圧（例えば、グローバル基準信号）を発生するように機能するローカルアキュムレータ７２０の別の実装形態が、図示される。こうした実装形態の技術的優位は、単一電流源（２つの電流源よりも）を備えたローカルアキュムレータ７２０を可能にすることを含む。増幅器ベースの積分器を備えたローカルアキュムレータ７２０の好ましい構成では、（トランジスタ）スイッチが、オンオフ状態を作動させる場合に起きる電荷注入の効果を低減するダミー経路が実装されてもよい。こうした構成は、追加のトランジスタで達成され得る。
【００８８】
一般に、グローバル基準発生器７１０は、より良いマッチングおよび雑音性能を備えた高速アナログ設計で構成され得る。追加で、または代替で、グローバル基準発生器７１０の構成は、グローバル基準発生器７１０がアナログ基準信号を発生でき、また、グローバル基準発生器７１０が複数のローカルアキュムレータ７２０それぞれに対して大きくなる基準信号発生デバイスおよび／または回路を含み得る。追加で、または代替で、グローバル基準発生器７１０は、基準信号を順次（例えば、１つずつ）または同時に（例えば、クロックサイクル毎に多重信号）送信するように構成され得る。グローバル基準発生器７１０は、本明細書で考えられるか、そうでなければ当業者に既知の任意の適切な方法で、基準信号を発生し、かつ／または送信するように構成され得ることに留意されたい。
【００８９】
共有信号経路７２５は、単一信号線、信号トレース、または複数のローカルアキュムレータ７２０への多重接続を有する信号経路であってよい。共有信号経路は、グローバル基準発生器７１０から、それに接続されるかまたは共有信号経路７２５に沿って位置付けられる複数のローカルアキュムレータ７２０それぞれへ、基準信号の伝送を可能にするように機能するのが好ましい。共有信号経路７２５は、共有信号経路７２５に沿って伝送されるグローバル基準発生器７１０  から生じる任意の基準信号がコピーされるか、そうでなければ、共有信号経路７２５に接続されたローカルアキュムレータ７２０それぞれによって反映され得るように構成され得る。
【００９０】
一実装形態では、共有信号経路７２５は、グローバル基準発生器７１０によって使用されて、連続した（アナログ）基準信号を提供できる。したがって、こうした実装形態では、共有信号経路７２５は、単一のビット基準信号をクロックサイクル毎にローカルアキュムレータ７２０に供給するように機能し得る。例えば、グローバル基準発生器７１０が、３ビットＤＡＣなどを含む場合、共有信号経路７２５は、３ビットそれぞれを個別に、順次に複数のローカルアキュムレータ７２０それぞれに提供できる。このように、共有信号経路７２５は、単一信号源（例えば、グローバル基準発生器）が、ローカルアキュムレータ７２０それぞれの専用信号源の代わりに、正確な基準信号を多重ローカルアキュムレータに提供できるようにする。こうした構成の技術的利点は、計算集約的アプリケーションおよび／またはプログラム（例えば、ニューラルネットワークモデルなど）を実装する相当により小さい回路である。
【００９１】
ローカルアキュムレータ７２０は、アナログ出力をローカル出力受信器（例えば、ローカルアナログデジタル変換器）などに発生するように機能し得る。好ましい実施形態では、複数のローカルアキュムレータ７２０は、グローバル基準発生器７１０からのグローバル基準信号を使用して、いくつかのクロックサイクルにわたってアナログ出力を発生するように機能し得る複数のローカルデジタルアナログ変換器（ＬＤＡＣ）を備える。グローバル基準発生器７１０の基準信号発生モードに応じて、複数のローカルアキュムレータ７２０は、アナログ出力を単一クロックサイクルにわたって発生できることに留意されたい。各ＬＤＡＣの基準信号は、グローバル基準発生器７１０によって供給することができ、一般に、基準信号発生デバイスおよび／または回路は、大きいため、ＬＤＡＣの構成は、一般に基準信号発生デバイスを除く可能性がある。
【００９２】
いくつかの実施形態では、複数のＬＤＡＣはそれぞれ、以下でより詳細に論じるように、結果として生じる基準信号を出力するように機能する１つまたは複数の種類の基準信号の蓄積／集合／加算／再構成回路を含むことができることを留意されたい。すなわち、一部の実施形態では、ローカルアキュムレータ７２０（またはＬＤＡＣ）は、基準信号を蓄積するように機能できると同時に、一部の変形例では、ローカルアキュムレータがエネルギー貯蔵デバイスを増やす／減らす、またはグローバル基準発生器７１０の符号化スキームおよび各ローカルアキュムレータの構成に基づいて加算機能を実施することもできる。
【００９３】
上述のように、複数のローカルアキュムレータ７２０はそれぞれ、エネルギー貯蔵デバイス、カレントミラー７２４、および一部の実施形態では、コンパレータ回路を含み得る。エネルギー貯蔵デバイスは、局地的にローカルアキュムレータ７２０で電流または電圧値を含むアナログエネルギー値などのエネルギー値を貯蔵するように機能するのが好ましい。好ましくは、エネルギー貯蔵デバイスは、コンデンサを備えるが、エネルギー貯蔵デバイスは、直列で動作するフラッシュトランジスタなどの任意の適切な電気エネルギー貯蔵要素であってよい。一部の実施形態では、複数のローカルアキュムレータ７２０はそれぞれ、１つまたは複数の信号入力（例えば、順次入力）に基づいて、エネルギー貯蔵デバイスに対して算術関数を実施するように機能し得る。したがって、ローカルアキュムレータ７２０は、エネルギー貯蔵デバイスに電荷を加える、かつ／または減らすように機能し得る。各ローカルアキュムレータ７２０は、追加で、または代替で、１つまたは複数の信号入力に基づいてコンデンサの（電圧）電荷を統合するように機能してもよい。
【００９４】
複数のローカルアキュムレータ７２０それぞれのカレントミラー７２４は、共有信号経路７２５を通じて提供された基準電流信号を複製する、またはコピーするように機能する。具体的には、一部の実施形態では、グローバル基準発生器７１０は、共有信号経路７２５を経由して基準電流信号を提供するように機能する。基準電流信号は、共有信号経路７２５に接続され、それに沿って位置付けられた各ローカルアキュムレータ７２０によって受信され得る。したがって、カレントミラー７２４を各ローカルアキュムレータ７２０で使用して、ローカルアキュムレータ７２０は、出力信号を発生する、または蓄積するため基準電流信号（例えば、グローバル基準信号）をコピーするように機能する。
【００９５】
好ましい実施形態では、カレントミラー７２４は、ローディングにかかわらず、出力電流を一定に維持しながら一（１）回路の別の能動デバイスの電流を制御することによって、１つの能動デバイスを介して電流をコピーするように設計された回路を含む。カレントミラー７２４は、変動する信号電流または一定の信号電流（グローバル基準発生器７１０が、一定のまたは変動するグローバル基準信号を提供するかどうかに応じて）をコピーし、回路へバイアス電流および／またはアクティブロードを提供するように機能し得る。好ましくは、カレントミラー７２４を定義する回路は、ほとんどの実施形態で、電流の方向を逆にするように機能すると同時に、電流制御型電流源であってもよい反転電流増幅器（理想的には）を含む。しかし、電流ミラーは、基準電流信号をコピーする任意の適切な回路を含むことができることに留意されたい。
【００９６】
図７Ａを参照すると、グローバル基準発生器７１０が、ローカルアキュムレータ７２０内の２つのカレントミラー７２４に対してバイアス電圧（例えば、グローバル基準信号）を発生するように機能するローカルアキュムレータ７２０の一実装形態が、図示される。グローバル基準発生器７１０によって提供されるバイアス電圧は、カレントミラー７２４内でコピーされた電流が加重されるように、発生され得る。例えば、システム１００のグローバル基準発生器７１０のバイナリ実装形態では、グローバル基準発生器７１０によって発生したバイアス電圧は、クロックサイクル毎に更新され得る。このように、カレントミラー７２４内のコピーされた電流は、二進法で変化する。この実装形態では、連続入力などが、ローカルアキュムレータ７２０のエネルギー貯蔵デバイス７２２  （コンデンサ）上の一部の電荷に加えられてもよく、一部の電荷は、エネルギー貯蔵デバイス７２２から減ぜられてもよい。エネルギー貯蔵デバイス７２２に加えられるか、またはそこから減らされる電荷の量は、ローカルアキュムレータ７２０内のコピーされた電流の関数であるのが好ましく、コピーされた電流は、二進法で変化するので、加えられた電荷または減らされた電荷は、同様の方法または同じ方法で変化するように機能する。したがって、Ｎビット（例えば、８ビット）のグローバルＤＡＣなどに対して、Ｎ（例えば、Ｎ＝８）クロックサイクルは、要求された出力をローカルＤＡＣで作成するように要求される。
【００９７】
ＶＩ．バイナリ  −  荷重グローバル基準源
図８に示すように、集積回路８００は、バイナリ加重グローバル基準信号源８０５、対のプログラム可能な電流源８２０、共通モード電流回路８５６、ローカル差動電流源８５１、コンパレータ８６０、有限状態機械８７０を実装する。集積回路８００のプログラム可能な電流源８２０の各対は、第１の加算ノード８３０と第２の加算ノード８４０との間に差動電流を設定するように機能するのが好ましい。共通モード電流回路８５６は、第１の加算ノード８３０と第２の加算ノード８４０に対して配置することができ、対のプログラム可能な電流源８２０を動作の既知の領域（例えば、平均基準電圧など）に追いやるかまたは仕向けるため、第１の加算ノード８３０と第２の加算ノード８４０に電流を供給するか、それらから電流を減らすように機能する。
【００９８】
さらに、集積回路８００のプログラム可能な電流源８２０の各対は、第１の加算ノード８３０と第２の加算ノード８４０との間の差動電流値を調整するように機能する異種のローカル差動電流源（例えば、ローカルデジタルアナログ変換器（ＬＤＡＣ））と電気的に通信して配置される。したがって、対のプログラム可能な電流源の複数の列は、アレイを定義する集積回路８００内に配置することができ、対のプログラム可能な電流源の各列は、別個の独立したローカル差動電流源８５１を含むことができる。したがって、複数のローカル差動電流源８５１は、複数のローカル差動電流源が同じグローバル基準信号発生器８０５に電気的に結合されるアレイに存在してもよい。
【００９９】
ローカル差動電流源８５１は、グローバル基準信号源８０５によって供給された基準信号値を鏡映するように機能するローカルＤＡＣを備えるのが好ましい。さらに、各ローカルＤＡＣは、ローカルＤＡＣのメモリ内に予め保存することができる値にしたがってローカルＤＡＣがアナログ出力信号を生成できるそれ自体のメモリ状態を含んでもよい。動作の際には、バイナリサーチアルゴリズムの各段階で、グローバル基準信号源が、アレイ内に配置された各ローカルＤＡＣがそのローカル状態を調整し、相応するように差動電流信号を出力するように機能するバイナリ加重値を設定するように、グローバル基準信号源８０５はバイナリサーチアルゴリズムを実行するように機能してもよい。コンパレータ８６０を使用して、集積回路は、どのノードが長い（または短い）電流信号を有するかを判定するため、第１の加算ノード８３０と第２の加算ノード８４０それぞれの電流の相対状態を評価するように機能してもよい。評価に応じて、ローカルＤＡＣは、グローバルＤＡＣから供給されたバイナリ加重基準信号に基づいて、漸次より小さい増分を用いて第１の加算ノード８３０と第２の加算ノード８４０との間の電流差動を増やしたり減らしたりするように機能し得る。したがって、第１の加算ノード８３０と第２の加算ノード８４０のそれぞれの差動電流調整後、かつＮビットグローバルＤＡＣからの基準信号を受信するＮサイクル後、一比較ビットはローカルＤＡＣに出力されてもよい。
【０１００】
一変形では、集積回路８００は、一プログラム可能な電流源および一加算ノードを有するシングルエンド回路として実装されてもよい。こうした実装形態では、共通モード電流回路は、図８Ａに例として示されるように、アーキテクチャから除外されてもよい。
【０１０１】
ＶＩＩ．バイナリマトリックスを実装する方法
図２に示すように、方法２００は、入力信号を受信することＳ２１０、１対の加算ノードの間に差動電流を生成することＳ２２０、既知の動作領域に対の加算ノードに沿って差動電流を調整することＳ２３０、対の加算ノードに差動電流を供給するまたは減らすことＳ２４０、第１の加算ノードおよび第２の加算ノードの差動電流信号に基づいて出力信号を発生することＳ２４５、および対の差動電流の加重和の差または画定出力コードを識別することＳ２５０を含む。
【０１０２】
入力信号を受信することを含むＳ２１０は、デジタル（例えば、バイナリ）入力またはアナログ入力に応じてプログラム可能な電流源で１つまたは複数の入力信号の受信を可能にするように機能する。１つまたは複数の入力信号は、１つまたは複数の外部デバイス（例えば、外部センサなど）、上流のローカルデバイス、別の回路層などから供給されてもよい。好ましい実施形態では、１つまたは複数の入力信号は、デジタル入力信号またはアナログ入力信号を含む。デジタル入力信号を受信する場合、Ｓ２１０は、プログラム可能な電流源によって生成される所定の差動電流に関連付けられた活性化状態、またはプログラム可能な電流源によって差動電流信号が生成されない非活性化状態だけを有するデジタル入力信号を生成するため方法２００を実装するシステムの入力回路を実装するように機能し得る。すなわち、各デジタル入力信号またはバイナリ入力信号は、これも電流信号に対してゼロの値を含む単一または有限の関連するアナログ電流応答に関連付けることができる。
【０１０３】
追加でまたは代替で、アナログ入力信号を方法２００を実装するシステムに受信する場合、Ｓ２１０は、複数の対応する所定の電流信号を有する複数の活性化状態およびプログラム可能な電流源によって差動電流が生成されない非活性化状態を有するアナログ入力信号を生成するため入力回路を実装するように機能できる。
【０１０４】
アナログ入力信号が１つまたは複数のプログラム可能な電流源で受信される場合、Ｓ２２０は、各プログラム可能な電流源によって１つまたは複数の電流信号を生成するため、プログラム可能な電流源の両端にアナログ入力信号を印加するように機能してもよい。好ましくは、対になっている１組のプログラム可能な電流源は、合算された場合、プログラム可能な電流源の出力電流信号がゼロより大きい大きさを有する差動電流信号を生成するように機能できる。好ましい実施形態では、Ｓ２１０に実装された入力回路は、電圧制御入力回路を備え、したがって、プログラム可能な電流源それぞれによって受信された入力信号は電圧信号を含む。したがって、電圧信号がプログラム可能な電流源の調整可能抵抗要素の両端に印加されるとき、結果の電流が生成される。好ましくは、プログラム可能な電流源はそれぞれ、各プログラム可能な電流源の抵抗要素の抵抗長を変更する予め保存された重みまたは係数を含む。
【０１０５】
追加でまたは代替で、バイナリ入力信号がプログラム可能な電流源の１つ以上で受信される場合、所定の電流信号が、バイナリ入力信号を処理するプログラム可能な電流源によって生成され得る。
【０１０６】
適宜、１対の加算ノードの各加算ノードに沿って加算電流を含むＳ２２５は、第１の加算ノードで複数の電流信号を合計し、第２の加算ノードで複数の電流信号を合計するように機能する。具体的には、好ましい実施形態では、プログラム可能な電流源は、対の第１の電流源が第１の加算ノードと電気的に通信し、対の第２の電流源が第２の加算ノードに電気的に通信して、対で配置され得る。さらに、プログラム可能な電流源の複数の対は、複数の対のそれぞれの第１の電流源が第１の加算ノードを（電気的接続により）共有し、複数の対のそれぞれの第２の電流源が第２の加算ノードを（電気的接続により）共有するように配置され得る。したがって、こうした構成では、各対の第１の電流源は、第１の加算ノードに電流を供給することができ、各対の第２の電流源は第２の加算ノードに別の電流を供給することができる。
【０１０７】
したがって、Ｓ２２５は、第１の加算ノードに供給される電流のほかプログラム可能な電流源のアレイによって第２の加算ノードに供給される電流信号も合計するように機能するのが好ましい。
【０１０８】
加算ノードの対の各加算ノードに共通電流信号を印加することを含むＳ２３０は、対の加算ノードの間の平均電圧を測定し、これに対し、対の加算ノードに２つの共通電流信号を生成し供給するように機能する。２つの共通電流信号は、同じ大きさと方向を持つのが好ましい。したがって、Ｓ２３０は、所定の目標電圧に一致するため対の加算ノードの平均電圧を調整する２つの共通電流信号を使用するように機能し得る。
【０１０９】
好ましい実施形態では、Ｓ２３０は、２つの電流源およびマイクロコントローラ回路を備える共通モード電流回路を使用して共通電流信号を発生するように機能する。Ｓ２３０によって実装されると、マイクロコントローラは、対の加算ノードの平均電圧を測定し、
対の加算ノードの平均目標電圧に到達するため共通電流信号を計算し、２つの共通電流源を介して対の加算ノードの各加算ノードに共通電流信号を供給する。
【０１１０】
差動電流信号を１対の加算ノードに供給することを含むＳ２４０は、同じ大きさであるが、対の第１の加算ノードおよび第２の加算ノードそれぞれに対する方向が逆（すなわち、一方は正で一方は負）であるサーチベースの差動電流信号を生成するように機能するのが好ましい。追加でまたは代替で、Ｓ２４０は、変動する大きさを有し、かつ／または同じ（例えば、両方とも正の信号か両方とも負の信号）か逆（例えば、一方が正の信号で一方が負の信号）方向である対の加算ノードに差動電流信号を供給するように機能してもよい。
【０１１１】
好ましい実施形態では、Ｓ２４０は、ローカル差動電流信号源（例えば、ローカルＤＡＣ）のアレイと一緒にグローバル基準信号源（例えば、グローバルＤＡＣ）を実装するように機能してもよい。Ｓ２４０に実装されるグローバル基準信号源は、ローカル差動電流信号源のアレイに対して共通基準信号源として機能できる。例えば、集積回路は、対のプログラム可能な電流源のアレイまたは複数の列を実装できる。こうした例では、各列は、共通モード電流回路、ローカル差動電流信号源、少なくとも１つのコンパレータ、および任意で有限状態機械などを含むことができる。したがって、こうした実装形態のグローバル基準信号源は、アレイの対のプログラム可能な電流源のそれぞれの列内に配置された各ローカル差動電流信号源に基準信号を共有信号経路に沿って供給するように機能し得る。
【０１１２】
好ましい実施形態では、Ｓ２４０によって実装されたグローバル基準信号源は、グローバルＤＡＣを備え、ローカル差動電流信号源はそれぞれ、ローカルＤＡＣを備える。好ましくは、グローバルＤＡＣは、計算を実施するためＮサイクルの全体にわたるローカルＤＡＣに基準信号のＮビットの全体を供給するように機能するＮビットグローバルＤＡＣを備える。
【０１１３】
第１の実装形態では、Ｓ２４０は、１対のプログラム可能な電流源によって潜在的に供給される第１の加算ノードおよび第２の加算ノード内の電流信号の検出に応じて、ローカル差動電流源に（アレイの列の）第１の加算ノードおよび第２の加算ノードに１組の初期差動電流信号を供給させるように機能してもよい。こうした実装形態では、ローカル差動電流源は、ノードにグローバル基準信号源からのＮの合計ビットのうちの初期（または第１の）基準信号ビットに基づいて初期差動電流信号を生成し、供給するように機能してもよい。
【０１１４】
さらに、この第１の実装形態では、Ｓ２４０は、コンパレータまたは有限状態機械などの一方からの出力信号（Ｓ２４５）に応じてローカル差動電流源を使用して第１の加算ノードおよび第２の加算ノードに後続の差動電流信号を供給するように機能してもよい。出力信号は、第１の加算ノードと第２の加算ノードの差動電流の合計の電圧が目標電圧（ＶＴＡＲＧＥＴ）より大きいか小さいか、または合計の電圧がＶＴＡＲＧＥＴ値と交差したかどうかを示す。
【０１１５】
第２の実装形態では、Ｓ２４０は、コンパレータか有限状態機械などのうちの一方からの出力信号に応じてローカル差動電流源に、差動電流信号の初期セットを第１の加算ノードおよび第２の加算ノードに供給させるように機能してもよい。すなわち、この第２の実装形態では、差動電流信号の初期セットは、コンパレータまたは有限状態機械からの信号出力が最初に受信された後でのみローカル差動電流源によって供給され得る。こうした第２の実装形態では、ローカル差動電流源は、グローバル基準信号源からのＮの合計ビットのうちの初期の（または第１の）基準信号ビットに基づいて初期差動電流信号を生成するように機能できる。
【０１１６】
好ましい実施形態では、グローバル基準信号源は、所定のパターンにより、かつ／または所定の組の値によりローカル差動電流源のアレイに１組のＮビット基準信号を生成するように機能してもよい。例えば、グローバル基準信号源は、それぞれの後続の基準信号の供給で大きさが減少する（または増加する）１組のＮビット基準信号を生成するように機能してもよい。いくつかの実施形態では、１組のＮビット基準信号の基準信号の減少は、規則正しく、所定の減衰アルゴリズムに基づくことができる。例えば、グローバル基準信号源は、後続の基準信号の大きさを２分の１（例えば、１／２、１／４、１／８、１／１６など）または任意の適切な小数値または減衰率によって減少させるように機能できる。したがって、グローバル基準信号源からの１組のＮビット基準信号値に対し、Ｎビット基準信号の組の最初の基準信号が最大で、Ｎビット基準信号値の組の最後の基準信号が最小であるように、基準信号の値は減少してもよい。したがって、１組のＮビット基準信号の基準信号値の減少する連続体は、図９に例として示すように、加算ノードの結果としての電圧がＮサイクルの終わりに電圧基準に収束できるように各ローカル差動電流源に供給されてもよい。
【０１１７】
第１の加算ノードと第２の加算ノードの差動電流信号に基づいて出力信号を生成することを含むＳ２４５は、第１の加算ノードと第２の加算ノードに沿って差動電流源を評価し、出力信号をローカル差動電流源に返すように機能する。上述のように、出力信号は、目標電圧に関して第１の加算ノードと第２の加算ノードの測定された電圧の位置を示すのが好ましい。
【０１１８】
第１の実装形態では、Ｓ２４５は、ローカル差動電流源に出力信号を生成するため有限状態機械を実装するように機能できる。この第１の実装形態では、Ｓ２４５は、第１の加算ノードと第２の加算ノードの電流信号の加重和の差および結果としてのノードの電圧を決定し、さらに、予め設定された目標電圧値にノードの結果としての電圧の比較を生成するように機能し得る。Ｓ２４５は、有限状態機械に結果としての電圧と目標電圧の比較を出力するのが好ましい。
【０１１９】
この第１の実装形態では、有限状態機械は、２つの識別可能な状態で実装されるのが好ましく、ローカル差動電流源に２つの状態のうちの一方を出力するように機能する。例えば、有限状態機械は、第１の加算ノードおよび第２の加算ノードの結果としての電圧が、目標電圧値より大きい（すなわち、上）か小さい（すなわち、下）かを識別するように予めプログラムすることができる。別の例では、有限状態機械は、第１の加算ノードおよび第２の加算ノードの結果としての電圧が目標電圧と交差したか、または目標電圧値と交差していないかを識別するように予めプログラムすることができる。有限状態機械で、Ｓ２４５は、決定的を決定するように機能してもよい。
【０１２０】
有限状態機械は、この第１の実装形態では、２つの識別可能な状態のみで実装され得るが、有限状態機械は、任意の数の状態（例えば、３、４、５、６…ｎ状態）で実装されてもよく、利用可能な数の状態から１つの状態を出力するよう機能してもよい。
【０１２１】
第２の実装形態では、Ｓ２４５は、コンパレータでの目標電圧に対する加算ノードの対の電圧の状態を解読するため複数のコンパレータ（例えば、３つのコンパレータ）を実装するように機能できる。例えば、第１のコンパレータは、加算ノードの対の電圧が目標電圧より大きい（上）かどうかを判定するように機能でき、第２のコンパレータは加算ノードの対の電圧が目標電圧と交差するかどうかを判定するように機能でき、第３のコンパレータは加算ノードの対の電圧が目標電圧より小さい（下）かどうかを判定するように機能できる。複数のコンパレータの出力は、ローカル差動電流源にフィードバックされ得る。
【０１２２】
したがって、Ｓ２４５から出力信号を受信すると、Ｓ２４０は、１組の差動電流を第１の加算ノードと第２の加算ノードに供給するように機能するのが好ましい。好ましくは、ローカル差動電流源は、有限状態機械などからの出力信号の値に基づいて第１の加算ノードおよび第２の加算ノードに電流を供給するか、またはそれらから電流を減らす差動電流信号を生成するように機能する。すなわち、有限状態機械によって供給される出力信号が、第１の加算ノードと第２の加算ノードの結果としての電圧が目標電圧より下である（または低い）ことを示す場合、ローカル差動電流源は、第１の加算ノードと第２の加算ノードの合計の差の電流信号値を増やし、その結果、ノードの結果としての電圧値を増やす差動電流信号を生成するように機能し得る。この方法では、ノードの結果としての電圧は、目標電圧の方に移動する。逆に言えば、有限状態機械によって供給される出力信号が、第１の加算ノードと第２の加算ノードの結果としての電圧が目標電圧より上である（または大きい）ことを示す場合、ローカル差動電流源は、第１の加算ノードと第２の加算ノードの合計の差の電流信号値を減らす（下げる）差動電流信号を生成するように機能してもよく、その結果、ノードの結果としての電圧値を減らす。
【０１２３】
追加でまたは代替で、Ｓ２４５は、Ｎサイクルの間、ローカル差動電流源の活動を記録するように機能してもよい。すなわち、ローカル差動電流源が、Ｎサイクルの各サイクルの間、第１の加算ノードと第２の加算ノードに減らすかまたは供給する差動電流信号の各組に対して、Ｓ２４５は、差動電流信号値の各組を記録するように機能する。
【０１２４】
加算ノードの対の加重和の差を計算することを含むＳ２５０は、Ｎサイクルの完了に応じて加算ノードの対の加重和の差を概算するように機能する。
【０１２５】
具体的には、Ｓ２５０は、Ｎサイクルの終わりにコンパレータにおいて目標基準電圧である第１の加算ノードおよび第２の加算ノードの加重和の差の電圧値をまず概算することによって加算ノードの対の加重和の差を計算するように機能してもよい。Ｓ２５０は続いて、Ｎサイクルの間にローカル差動電流源によって供給された差動電流信号の電圧によって第１の加算ノードと第２の加算ノードのおよその電圧値を減らすように機能してもよい。Ｓ２５０はさらに、共通モード電流回路に基づいて第１の加算ノードおよび第２の加算ノードに供給されたまたは減らされた電圧によって第１の加算ノードと第２の加算ノードのおよその電圧値を減らしてもよい（Ｓ２３０）。
【０１２６】
したがって、第１の加算ノードと第２の加算ノードの低減された電圧値が計算されると、Ｓ２５０は、コンパレータに加えられた抵抗器の値（Ｒａｐｐ）に基づくか、または第１の加算ノードと第２の加算ノードの合計電流信号がコンパレータに入る前に、第１の加算ノードおよび第２の加算ノードの電流信号の加重和の差を計算するように機能してもよい。計算の例は、第１の加算ノードおよび第２の加算ノードの電流信号の加重和の差を決定することであってもよい（例えば、Ｉｗｅｉｇｈｔｅｄ  ｓｕｍ  ｄｉｆｆ＝Ｖｒｅｄ／Ｒａｐｐ）。
【０１２７】
追加でまたは代替で、Ｓ２５０は、電流信号の加重和の差を行列乗算計算に対応する出力コードに変換するように機能してもよい。
【０１２８】
シングルエンド型集積回路が実装され得る一変形では、Ｓ２５０は、出力クロス信号に基づく単一加算ノードに沿って合計電流値を決定するように機能してもよい。こうした実装形態では、グローバル基準信号源は、ローカル電流源（ローカルＤＡＣ）にシーケンシャル基準信号のビット入力を提供することができる。次に、ローカル電流源は、シーケンシャル基準信号のビット入力に基づいて単一加算ノードに電流信号を供給するか、または減らすように機能できる。
【０１２９】
この変形では、単一加算ノードに沿った合計電流信号は、コンパレータに入る電圧に変換され得る。Ｓ２５０は、単一加算ノードの電圧を電圧基準と比較するように機能し得る。具体的には、Ｓ２５０は、比較された電圧値が交差した時間を記録するように機能し得るカウンタ回路にコンパレータ回路の値を集めるかまたは渡すように機能できる。記録された時間は、単一加算ノードに供給されたかまたは減らされた電流信号を生成するため、デジタル信号がローカル電流源で活動状態であった時間と比較されてもよい。
【０１３０】
具体的には、Ｓ２５０は、単一加算ノードの電圧値がコンパレータでの電圧基準に等しい時、または例を識別するように機能できる。追加でまたは代替で、Ｓ２５０は、単一加算ノードの電圧値がコンパレータでの電圧基準を交差する時、又は例を識別するように機能してもよい。Ｓ２５０は、単一加算ノードの電圧が電圧基準に等しいかまたは交差する時を記録するように機能できる。
【０１３１】
単一加算ノードの電圧と電圧基準との間に等価性が検出された時、または単一加算ノードの電圧が電圧基準を交差した時を使用して、Ｓ２５０は、電圧基準との等価の時または電圧基準を交差する時に単一加算ノードの電圧を生成した（グローバル信号基準源から）ローカル電流源への関連するデジタル入力コードまたは基準信号を識別するように機能し得る。
【０１３２】
追加でまたは代替で、Ｓ２５０は、比較された電流値が交差した時にＤＡＣ内で入力された、または活動状態であったデジタルコードに対応するデジタルコード（例えば、マルチビット信号）を出力するように機能し得る。
【０１３３】
方法２００は、本発明および／またはその範囲内で本発明の実施形態を達成するため任意の適切な順序で実装できるか、本明細書に記載の本開示に照らして容易に考えられ得る例示的な方法であることを理解されたい。したがって、順序および工程のステップは、本明細書に記載の例示的な順序に制限されるべきではない。
【０１３４】
好ましい実施形態およびその変形の方法は、コンピュータ可読媒体の格納するコンピュータ可読命令を受信するように構成された機械として少なくとも部分的に具現化でき、かつ／または実施できる。命令は、リソグラフィシステムならびにそれにより実装されるプロセッサおよび／またはコントローラの１つまたは複数の部分と統合されるのが好ましいコンピュータ実行可能構成要素によって実行されるのが好ましい。コンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、フラッシュメモリ、ＥＥＰＲＯＭ、光デバイス（ＣＤまたはＤＶＤ）、ハードドライブ、フロッピドライブ、あるいは任意の適切なデバイスなどの任意の適切なコンピュータ可読媒体に格納できる。コンピュータ実行可能構成要素は、汎用プロセッサまたは特定用途向けプロセッサであるのが好ましいが、任意の適切な専用ハードウェアまたはハードウェア／ファームウェア組み合わせデバイスが、その命令を代替でまたは追加で実行してもよい。
【０１３５】
簡潔さのため省略するが、好ましい実施形態は、本明細書に記載の様々な方法、装置、およびシステムの全ての組み合わせおよび順列を含む。
【０１３６】
以下の特許請求の範囲に定義される本発明の範囲から逸脱しないかぎり、本発明の好ましい実施形態に修正および変更がなされ得ることが、上述の詳細な説明ならびに図面および特許請求の範囲から、当業者であればわかるであろう。
【図１】
2021518590.tif 000003
【図２】
2021518590.tif 000004
【図３】
2021518590.tif 000005
【図３Ａ】
2021518590.tif 000006
【図３Ｂ】
2021518590.tif 000007
【図３Ｃ】
2021518590.tif 000008
【図３Ｄ】
2021518590.tif 000009
【図３Ｅ】
2021518590.tif 000010
【図４】
2021518590.tif 000011
【図５】
2021518590.tif 000012
【図６】
2021518590.tif 000013
【図７】
2021518590.tif 000014
【図７Ａ】
2021518590.tif 000015
【図７Ｂ】
2021518590.tif 000016
【図７Ｃ】
2021518590.tif 000017
【図８】
2021518590.tif 000018
【図８Ａ】
2021518590.tif 000019
【図９】
2021518590.tif 000020
【国際調査報告】
2021518590.tif 000021