IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ アプライド マテリアルズ インコーポレイテッドの特許一覧

特表2023-546821バイナリ重み付け電荷再分配回路のための適応型セトリング時間制御
<>
  • 特表-バイナリ重み付け電荷再分配回路のための適応型セトリング時間制御 図1
  • 特表-バイナリ重み付け電荷再分配回路のための適応型セトリング時間制御 図2
  • 特表-バイナリ重み付け電荷再分配回路のための適応型セトリング時間制御 図3
  • 特表-バイナリ重み付け電荷再分配回路のための適応型セトリング時間制御 図4
  • 特表-バイナリ重み付け電荷再分配回路のための適応型セトリング時間制御 図5
  • 特表-バイナリ重み付け電荷再分配回路のための適応型セトリング時間制御 図6
  • 特表-バイナリ重み付け電荷再分配回路のための適応型セトリング時間制御 図7
  • 特表-バイナリ重み付け電荷再分配回路のための適応型セトリング時間制御 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-11-08
(54)【発明の名称】バイナリ重み付け電荷再分配回路のための適応型セトリング時間制御
(51)【国際特許分類】
   H03M 1/66 20060101AFI20231031BHJP
   G06G 7/16 20060101ALI20231031BHJP
【FI】
H03M1/66 C
G06G7/16
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023521307
(86)(22)【出願日】2021-09-29
(85)【翻訳文提出日】2023-06-01
(86)【国際出願番号】 US2021052508
(87)【国際公開番号】W WO2022076211
(87)【国際公開日】2022-04-14
(31)【優先権主張番号】63/089,491
(32)【優先日】2020-10-08
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/092,227
(32)【優先日】2020-11-07
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390040660
【氏名又は名称】アプライド マテリアルズ インコーポレイテッド
【氏名又は名称原語表記】APPLIED MATERIALS,INCORPORATED
【住所又は居所原語表記】3050 Bowers Avenue Santa Clara CA 95054 U.S.A.
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】イェン, シェ-ファ
(72)【発明者】
【氏名】チャン, シャオフェン
【テーマコード(参考)】
5J022
【Fターム(参考)】
5J022AB01
(57)【要約】
ベクトル-マトリックス乗算を実行するための方法及び回路は、1ビットDACを使用して、バイナリエンコードされた値の入力ベクトルをアナログ信号に変換することと、ビット順序ごとにベクトル-マトリックス乗算演算を連続的に実行することとを含み得る。当該方法は、連続的に実行された演算ごとに、現在のビット順序に対応するスイッチを操作することをさらに含み得る。スイッチを操作することにより、乗算器の出力に対応する値が、現在のビット順序に対応するキャパシタに保存される。スイッチが操作されている間の時間間隔は、他のスイッチの時間間隔に対して均一ではない場合があり、時間間隔は、キャパシタのセトリング時間に少なくとも部分的に基づき得る。当該方法は、複数のキャパシタに保存された値のビット順序重み付け加算を実行し、ベクトル-マトリックス乗算の結果を生成することをさらに含み得る。
【選択図】図5
【特許請求の範囲】
【請求項1】
ベクトル-マトリックス乗算を実行するための方法であって、
複数の1ビットデジタル/アナログ変換器(DAC)を使用して、複数のバイナリエンコードされた値を含むデジタル入力ベクトルを複数のアナログ信号に変換することと、
アナログベクトルマトリックス乗算器を使用して、前記複数のアナログ信号のビット順序ごとに重み付けマトリックスを使用するベクトル-マトリックス乗算演算を連続的に実行することと、
連続的に実行されたベクトル-マトリックス乗算演算ごとに、現在のビット順序に対応する複数のスイッチのうちの1つのスイッチを操作することであって、
前記スイッチを操作することにより、前記アナログベクトルマトリックス乗算器の出力に対応する値が、複数のキャパシタのうちのキャパシタに保存され、前記キャパシタが、前記現在のビット順序に対応し、かつ
前記スイッチが操作されている間の時間間隔が、前記複数のスイッチのうちの他のスイッチが操作されている間の時間間隔に対して均一ではなく、前記時間間隔が、前記キャパシタのセトリング時間に少なくとも部分的に基づく、
複数のスイッチのうちの1つのスイッチを操作することと、
前記複数のキャパシタに保存された値のビット順序重み付け加算を実行し、前記ベクトル-マトリックス乗算の結果を生成することと
を含む方法。
【請求項2】
前記ベクトル-マトリックス乗算の前記結果を生成した後、前記複数のキャパシタに保存された前記値をクリアするリセットスイッチを操作することをさらに含む、請求項1に記載の方法。
【請求項3】
前記アナログベクトルマトリックス乗算器の前記出力が、アナログ電流を含む、請求項1に記載の方法。
【請求項4】
連続的に実行されたベクトル-マトリックス乗算演算ごとに、ドライバ回路を通して、前記アナログ電流をアナログ電圧に変換し、前記アナログ電圧を前記キャパシタに保存することを含む、請求項3に記載の方法。
【請求項5】
前記ビット順序重み付け加算を実行することが、
前記複数のスイッチを操作して、前記複数のキャパシタに保存された電荷を再分配することと、
並列に配置された前記複数のキャパシタにわたって電圧を測定することと
を含む、請求項1に記載の方法。
【請求項6】
操作中に前記キャパシタのための前記セトリング時間を測定することと、
測定後の前記セトリング時間に基づき、前記時間間隔を動的に調整することと
をさらに含む、請求項1に記載の方法。
【請求項7】
前記複数のキャパシタが、ビット順序ごとに2倍になるキャパシタンスを有する、請求項1に記載の方法。
【請求項8】
連続的なビット順序の結果を保存かつ集計するための方法であって、
ビット順序演算から複数のビット順序の結果を連続的に受け取ることと、
複数の時間間隔の間に、前記複数のビット順序の結果に対応する値を複数のエネルギー保存要素に連続的に保存することと、
前記複数の時間間隔が長さにおいて不均一であるように、前記複数の時間間隔の長さを制御することと
を含む方法。
【請求項9】
前記複数の時間間隔の前記長さが、最上位ビット(MSB)から最下位ビット(LSB)へ長さにおいて短くなる、請求項8に記載の方法。
【請求項10】
前記複数のエネルギー保存要素が、複数のスイッチのうちの対応するスイッチと対にされる、請求項8に記載の方法。
【請求項11】
前記複数の時間間隔の前記長さが、ビット順序に対応する複数のスイッチにおけるスイッチを連続的に閉じることによって制御される、請求項8に記載の方法。
【請求項12】
前記複数の時間間隔が、前記複数のエネルギー保存要素に保存された前記値がクリアされるリセット時間間隔を含む、請求項8に記載の方法。
【請求項13】
前記複数の時間間隔が、前記複数のエネルギー保存要素に保存された前記値が再分配される加算時間間隔をさらに含む、請求項12に記載の方法。
【請求項14】
前記複数の時間間隔は、前記複数のビット順序の結果に対応する前記値が、前記複数のエネルギー保存要素に保存された保存時間間隔をさらに含み、
前記保存時間間隔が、前記加算時間間隔又は前記リセット時間間隔より短い均一の長さを有する、請求項13に記載の方法。
【請求項15】
前記複数の時間間隔は、前記複数のビット順序の結果に対応する前記値が、前記複数のエネルギー保存要素に保存された保存時間間隔をさらに含み、
前記保存時間間隔が、前記加算時間間隔及び前記リセット時間間隔とは異なる非均一の長さを有する、請求項13に記載の方法。
【請求項16】
ビット順序演算から複数のビット順序の結果を受け取るための入力部、
前記入力部を通して受け取った前記ビット順序の結果に対応する値を保存する複数のキャパシタ、
複数の時間間隔の間に、前記複数のキャパシタのうちのどのキャパシタが、前記ビット順序の結果に対応する前記値を保存するかを制御する複数のスイッチ、及び
前記複数の時間間隔が長さにおいて不均一であるように、前記複数の時間間隔の長さを制御するコントローラ
を備えている連続ビット順序加算回路。
【請求項17】
前記コントローラが、プロセッサを備えている、請求項16に記載の加算回路。
【請求項18】
前記コントローラが、ステートマシン回路を備えている、請求項16に記載の加算回路。
【請求項19】
前記複数のキャパシタが、前記複数のスイッチと対にされる、請求項16に記載の加算回路。
【請求項20】
前記複数の時間間隔が、前記複数のキャパシタのためのセトリング時間に基づいて制御される、請求項16に記載の加算回路。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
[0001]本出願は、2020年10月8日出願に出願された「ADAPTIVE SETTLING TIME CONTROL FOR BINARY-WEIGHTED CHARGE REDISTRIBUTION CIRCUITS」と題する米国仮出願第63/089,491号の利益を主張する、2020年11月7日に出願された「ADAPTIVE SETTLING TIME CONTROL FOR BINARY-WEIGHTED CHARGE REDISTRIBUTION CIRCUITS」と題する米国非仮出願第17/092,227号に対する優先権を主張しており、付録を含むその全体的な内容は、あらゆる目的のために参照により全体がここに組み込まれる。
【0002】
[0002]本開示は、概して、バイナリ重み付けキャパシタアレイを使用するシリアル電荷再分配に関する。具体的には、本開示は、バイナリ重み付けアレイのキャパシタに関連付けられたスイッチのための適応型タイミング制御に関する。
【背景技術】
【0003】
[0003]ベクトル-マトリックス乗算演算は、ベクトルとマトリックスの積の和として定義することができる。具体的には、式1を用いて、積を合計するベクトル-マトリックス乗算演算を定義することができる。
【0004】
[0004]式1では、Xは、(バイナリビットを用いて電子環境で表現可能な)値からなる入力ベクトルであり、Wijは、マトリックスの重み付け値を表す。Yは、積ベクトルを合計して得られる出力ベクトルである。この関数は、様々な信号処理、画像処理、及びニューラルネットワークの利用などの人工知能用途において用途がある。
【0005】
[0005]この式をデジタルで実行すると、相当な量の処理リソース及び/又はエネルギーを消費する可能性がある。従来のアナログ構成要素やデジタルとアナログのハイブリッド構成要素は、比較的多くの数のクロックサイクル、及び/又は比較的大きな設置面積を必要とし得る。
【発明の概要】
【0006】
[0006]幾つかの実施形態では、ベクトル-マトリックス乗算を実行するための方法は、複数の1ビットデジタル/アナログ変換器(DAC:digital-to-analog converter)を使用して、複数のバイナリエンコードされた値を含むデジタル入力ベクトルを複数のアナログ信号に変換することを含み得る。当該方法は、アナログベクトルマトリックス乗算器を使用して、複数のアナログ信号のビット順序ごとに重み付けマトリックスを使用するベクトル-マトリックス乗算演算を連続的に実行することをさらに含み得る。当該方法は、連続的に実行されたベクトル-マトリックス乗算演算ごとに、現在のビット順序に対応する複数のスイッチのうちの1つのスイッチを操作することをさらに含み得る。スイッチを操作することにより、アナログベクトルマトリックス乗算器の出力に対応する値が、複数のキャパシタのうちのキャパシタに保存され得る。キャパシタは、現在のビット順序に対応し得る。スイッチが操作されている間の時間間隔は、複数のスイッチのうちの他のスイッチが操作されている間の時間間隔に対して均一ではない場合がある。時間間隔は、キャパシタのセトリング時間に少なくとも部分的に基づき得る。当該方法は、複数のキャパシタに保存された値のビット順序重み付け加算を実行し、ベクトル-マトリックス乗算の結果を生成することをさらに含み得る。
【0007】
[0007]任意の実施形態では、以下の特徴のいずれか又はすべてが、任意の組み合わせで、制限なく含まれ得る。当該方法は、ベクトル-マトリックス乗算の結果を生成した後、複数のキャパシタに保存された値をクリアするリセットスイッチを操作することをさらに含み得る。アナログベクトルマトリックス乗算器の出力は、アナログ電流を含み得る。連続的に実行されたベクトル-マトリックス乗算演算ごとに、ドライバ回路を通して、アナログ電流をアナログ電圧に変換してもよく、アナログ電圧をキャパシタに保存してもよい。ビット順序重み付け加算を実行することは、複数のスイッチを操作して、複数のキャパシタに保存された電荷を再分配することと、並列に配置され得る複数のキャパシタにわたって電圧を測定することとを含み得る。キャパシタのためのセトリング時間は、操作中に測定されてもよく、セトリング時間に基づく時間間隔は、測定後に動的に調整されてもよい。複数のキャパシタは、ビット順序ごとに2倍になるキャパシタンスを有し得る。
【0008】
[0008]幾つかの実施形態では、連続的なビット順序の結果を保存かつ集計するための方法は、ビット順序演算から複数のビット順序の結果を連続的に受け取ることと、複数の時間間隔の間に、複数のビット順序の結果に対応する値を複数のエネルギー保存要素に連続的に保存することと、複数の時間間隔が長さにおいて不均一であるように、複数の時間間隔の長さを制御することとを含み得る。
【0009】
[0009]任意の実施形態では、以下の特徴のいずれか又はすべてが、任意の組み合わせで、制限なく含まれ得る。複数の時間間隔の長さは、最上位ビット(MSB:most-significant bit)から最下位ビット(LSB:least-significant bit)へ長さにおいて短くなり得る。複数のエネルギー保存要素は、複数のスイッチのうちの対応するスイッチと対にされ得る。複数の時間間隔の長さは、ビット順序に対応する複数のスイッチにおけるスイッチを連続的に閉じることによって制御され得る。複数の時間間隔は、複数のエネルギー保存要素に保存された値がクリアされるリセット時間間隔を含み得る。複数の時間間隔は、複数のエネルギー保存要素に保存された値が再分配される加算時間間隔をさらに含み得る。複数の時間間隔は、複数のビット順序の結果に対応する値が、複数のエネルギー保存要素に保存された保存時間間隔をさらに含み得る。保存時間間隔は、加算時間間隔又はリセット時間間隔より短い均一の長さを有し得る。複数の時間間隔は、複数のビット順序の結果に対応する値が、複数のエネルギー保存要素に保存され得る保存時間間隔をさらに含み得る。保存時間間隔は、加算時間間隔及びリセット時間間隔とは異なる非均一の長さを有し得る。
【0010】
[0010]幾つかの実施形態では、連続ビット順序加算回路は、ビット順序演算から複数のビット順序の結果を受け取るための入力部、入力部を通して受け取ったビット順序の結果に対応する値を保存する複数のキャパシタ、複数の時間間隔の間に、複数のキャパシタのうちのどのキャパシタが、ビット順序の結果に対応する値を保存するかを制御する複数のスイッチ、及び複数の時間間隔が長さにおいて不均一であるように、複数の時間間隔の長さを制御するコントローラを含み得る。
【0011】
[0011]任意の実施形態では、以下の特徴のいずれか又はすべてが、任意の組み合わせで、制限なく含まれ得る。コントローラは、プロセッサ及び/又はステートマシンを含み得る。複数のキャパシタは、複数のスイッチと対にされ得る。複数の時間間隔は、複数のキャパシタのためのセトリング時間に基づいて制御され得る。
【0012】
[0012]様々な実施形態の性質及び利点のさらなる理解は、以下の図を参照することによって実現され得る。添付の図面では、類似した構成要素及び/又は特徴は、同じ参照符号を有し得る。さらに、同じ種類の様々な構成要素は、参照符号の後にダッシュを付けて、類似の構成要素同士を区別する第2の符号によって、区別することができる。本明細書において第1の参照符号のみが使用される場合、その記載は、第2の参照符号に関わりなく、同じ第1の参照符号を有する類似の構成要素のうちの任意の1つに適用することが可能である。
【図面の簡単な説明】
【0013】
図1】ビット順序のバイナリ値に対してアナログ構成要素を用いてベクトル乗算を実行するベクトル-マトリックス乗算回路の一実施形態を示す。
図2】アナログベクトルマトリックス乗算器の実施形態を示す。
図3】アナログ加算回路の実施形態を示す。
図4】ベクトル-マトリックス乗算演算を実行するための方法の実施形態を示す。
図5】幾つかの実施形態に係る、シリアル電荷再分配を実行するために使用されるスイッチキャパシタアレイのための例示的な回路を示す。
図6】幾つかの実施形態に係る、不均一な時間間隔を使用するタイミング図を示す。
図7】幾つかの実施形態に係る、簡略化された、より短いサイクル時間のアプローチを示す。
図8】幾つかの実施形態に係る、連続的なビット順序の結果を保存かつ集計するための方法のフロー図を示す。
【発明を実施するための形態】
【0014】
[0021]ビット順序乗算器-積算器(MAC:multiplier-accumulator)演算などのビット順序演算のための加算回路は、スイッチキャパシタネットワークを含み得る。スイッチキャパシタネットワークにおける各並列経路は、対応するキャパシタを備えたスイッチを含み得る。キャパシタは、バイナリビット順序の昇順に対応して、サイズが連続的に2倍となり得る。各ビット順序の結果が生成されると、値が対応するキャパシタに保存され得る。ビット順序演算の終了時に、キャパシタにわたって電荷が再分配され、演算の結果を表す最終的なアナログ電圧が生成され得る。ビット順序演算ごとの時間間隔は、長さが均一であり得る。具体的には、ネットワーク内の各キャパシタのスイッチング時間が同一であり得る。しかしながら、このため、より小さなキャパシタのためのセトリング時間がより大きなキャパシタに比べて著しく短くなり得るので、総サイクル時間が不必要に長くなる場合がある。
【0015】
[0022]これらの実施形態は、バイナリ重み付けキャパシタアレイにおけるシリアル電荷再分配のための適応型タイミング制御を説明する。適応型タイミング制御は、個々のキャパシタのためのセトリング時間に基づいて、各キャパシタスイッチのためのタイミング制御を適応的に変更することにより、全体の電荷再分配プロセスの速度を向上させることができる。これにより、結果の精度に影響を与えることなく、回路が動作し得る速度を向上させることができる。キャパシタの測定されたセトリング時間に基づいて、不均一なサイクル時間を動的に制御することができ、種々の動作モードがあることにより、結果が生成される際に速度と精度との間のトレードオフが可能になる。蓄積サイクル時間は、リセット及び/又は加算サイクル時間より短い場合があり、これにより、演算の総時間がさらに短縮され得る。
【0016】
[0023]ここに詳述する実施形態は、従来のアナログ実施形態と比べて、より短い時間(例えば、より少ないクロックサイクル)でMAC演算を実行することを可能にし、デジタル入力信号のデコードを必要としない。むしろ、バイナリエンコードされた(又は「ビット順序の」)値の形の入力ベクトルを受信することができる。このような値は、通常、最下位ビット(LSB)から最上位ビット(MSB)、又はMSBからLSBに配列される(例えば、14の値を表す「1110」)。これらの値は、アナログドメインで乗算され、次いでアナログ又はデジタルドメインで加算され得る。ここで詳述する配列は、バイナリエンコードされた値のアナログ変換に直接実行され、入力ベクトルを一連のパルス(例えば、14の値を表すための14のパルス)に変換する必要はない。そのため、従来のアナログ配列に比べ、計算をかなり速く行うことができる。より具体的には、ベクトル-マトリックス乗算を実行するための演算サイクルの回数を
倍減らすことができる。この式では、分母に示される追加の2サイクルは、実装形態によって異なる可能性がある。例えば、ここに詳述する実施形態は、従来のアナログMAC設計と比べて25.6倍に高速化され得る、8ビット入力ベクトルに対するベクトル-マトリックス乗算を実行することができる。
【0017】
[0024]さらに、ここで詳述する配列は、従来のアナログMAC設計よりも大幅にスペースを節約する可能性がある。1ビットデジタル/アナログ変換器(DAC)を使用することで、並列に受信したバイナリ値を変換するマルチビットDACを使用する場合に比べて、面積がより少なく済む場合がある。具体的には、複数の1ビットDACを用いて、バイナリエンコードされた入力ベクトルを並列にバイナリエンコードされたアナログ電圧値に変換することができる。例えば、4ビット入力ベクトルの場合、1ビットDACからバイナリエンコードされたアナログ電圧値を出力するために4クロックサイクル(LSBで1サイクル、第2のLSBで1サイクル、第2のMSBで1サイクル、MSBで1サイクル)が必要となる場合がある。1ビットDACの数は、入力ベクトルの数(式1のXi)に依存し得る。
【0018】
[0025]マトリックス乗算演算は、一度に入力ベクトルの値の各ビット順序に対して連続的に実行され得る。各1ビットDACの並列出力は、ベクトルマトリックス乗算回路の重み付け構成要素に入力することができる。ベクトルマトリックス乗算回路は、Xが乗算される式1のWijマトリックスに対応する種々の重み付け構成要素を有し得る。ベクトルマトリックス乗算回路は、入力ベクトルのビット順序ごとに乗算演算を行うことができる。したがって、入力ベクトルが4ビット長の値を含む場合、ベクトルマトリックス乗算回路は、時間ドメインにおいて、4つのビット順序のそれぞれについて連続的に乗算演算を実行し得る。ベクトルマトリックス乗算回路からの出力は、加算回路に出力される連続信号(例えば、乗算結果を示す電流又は何らかの電気的特性を有する信号)であってもよい。
【0019】
[0026]加算回路は、マトリックス乗算演算が行われた後に、ビット順序の重み付き加算を行うように機能し得る。加算回路は、アナログドメイン又はデジタルドメインにおいて機能し得る。加算回路は、ベクトルマトリックス乗算回路からの信号を受信し、各マトリックス乗算演算の指標を適切なビット順序に重み付けされるように保存し、加算を行って出力値Yを決定することができる。
【0020】
[0027]図1は、バイナリエンコードされた入力に対して、アナログ構成要素を用いてベクトル乗算が行われる回路100の一実施形態を示す。回路100は、1ビットDAC114、アナログベクトルマトリックス乗算器122、及び加算構成要素132を含み得る。回路100は、3つのセクションに分かれていると理解することができる。セクション110は、(入力ベクトルを表す)バイナリエンコードされたデジタル信号を受信し、バイナリエンコードされたデジタル信号をバイナリエンコードされたアナログ信号に変換する。セクション120は、バイナリエンコードされたアナログ信号を受信し、バイナリエンコードされたアナログ信号と予め定義されたマトリックス(例えば、重み付けマトリックス)との間の乗算を示すバイナリエンコードされた積を出力する。セクション130は、ビット順序重み付け加算を実行して、バイナリエンコードされた積を加算し、バイナリエンコードされた信号のビット順序重み付けを考慮する。したがって、適切に和を求めることができるように、バイナリエンコードされた入力信号の各ビットの適切なビット順序が維持される。セクション130は、セクション120の積の出力を効率的に加算するために、アナログ構成要素を使用し得る。セクション130は、デジタルドメインにおいても機能し得る。
【0021】
[0028]具体的には、セクション110では、複数のデジタル入力信号112が並列で受信され得る。デジタル入力信号112は、バイナリエンコードされた値を表し、デジタル入力信号112の各デジタル入力信号は、式1のベクトルXの値を表し得る。入力信号112のバイナリビットは、電圧レベル(例えば、1なら高、ゼロなら低)、パルス(例えば、1ならパルス、ゼロならパルスなし)又は時間(例えば、1なら第1の継続時間のパルス、ゼロなら第2の継続時間のパルス)で表すことができる。図示されているように、4つのデジタル入力信号(112-1、112-2、112-3、及び112-4)が並列で受信され得る。これらの入力信号は、それぞれ入力ベクトルの別の値を受信し得る。他の実施形態では、図1に具体的に示したよりも少ない数の又は多くのデジタル入力信号を受信してもよい。デジタル入力信号112は、それぞれバイナリエンコードされてもよい。したがって、回路のデジタル部分のクロックサイクルごとに、特定のビット順序のビットがデジタル入力信号112として受信され得る。例えば、4ビットのバイナリ値が各デジタル入力信号112を介して入力されている場合、並列にアナログドメインに受信されかつ変換されるバイナリ値のビットごとに、4つのクロックサイクルが使用され得る。デジタル入力信号112は、ビット順序の各値が、最下位ビット(LSB)から最上位ビット(MSB)、MSBからLSB、又は任意の予め定義されたパターンであるように、バイナリエンコードされ得る。
【0022】
[0029]デジタル入力信号112は、1ビットDAC114に入力され得る。ここでも、図示のように、4つの1ビットDAC114(114-1、114-2、114-3、及び114-4)が存在する。他の実施形態では、より少ない数の又はより多くの数の1ビットDAC114が存在し得る。バイナリエンコードされたデジタル入力信号112のそれぞれに単一の1ビットDACが存在し得る。1ビットDAC114はそれぞれ、受信したデジタル値を示すアナログ信号を出力することができる。したがって、バイナリエンコードされたアナログ信号116(116-1、116-2、116-3、116-4)は、デジタル入力信号112のアナログ変換を表し得る。
【0023】
[0030]セクション120では、アナログベクトルマトリックス乗算器122は、バイナリエンコードされたアナログ信号116を受信し得る。アナログベクトルマトリックス乗算器122は、入力値の各ビット順序に対して乗算演算を連続的に実行することができる(例えば、LSBに対して第1のクロックサイクル、第2のLSBに対して第2のクロックサイクル、第2のMSBに対して第3のクロックサイクル、等)。したがって、受信したバイナリエンコードされたアナログ信号116の各ビット順序に対して、別個の乗算演算が実行され得る。アナログベクトルマトリックス乗算器122の可能な実施形態に関するさらなる詳細が、図2に関連して以下に提供される。バイナリエンコードされた乗算結果信号124が、加算構成要素132に出力され得る。
【0024】
[0031]加算構成要素132は、ビット順序重み付け加算の機能性を実行していると理解されてよい。加算構成要素132は、アナログベクトルマトリックス乗算器122によって現在評価されているビットのビット順序を適切に考慮し、ビット順序が考慮されるように出力を保存し、加算機能を実行し得る。ここに詳述されるように、ビット順序重み付けは、加算構成要素132によって実行することができ、これにより、入力値は、ベクトルマトリックス乗算回路によって評価されているときに、バイナリエンコードされた状態に留まることが可能となる。
【0025】
[0032]加算回路の可能なアナログ実施形態では、電荷の蓄積及び再分配を用いて、受動的なビット順序重み付け加算を実行することができる。バイナリエンコードされた信号がアナログベクトルマトリックス乗算器122から受信されると、加算構成要素132は、電荷蓄積を使用して、部分的な加算を蓄積することができる。すべてのビット順序(例えば、4つのビット値を有する入力ベクトルに対して4つのビット順序)が、アナログベクトルマトリックス乗算器122によって乗算され、加算構成要素132が、電荷蓄積を使用するなどして部分加算を蓄積すると、電荷が再分配され、最終加算値を表す電圧が出力され得る。加算構成要素132のアナログ実装形態の可能な実施形態に関するさらなる詳細が、図3において以下に示される。
【0026】
[0033]図2は、アナログに変換された入力ベクトルの単一ビット順序を評価するアナログベクトルマトリックス乗算器の実施形態200を示す。アナログベクトルマトリックス乗算器201は、図1のアナログベクトルマトリックス乗算器122の実施形態を表し得る。しかしながら、実施形態200は、一例に過ぎないことを理解されたい。図2では、バイナリベクトル入力Xは、Wijと乗算されることになっている。アナログベクトルマトリックス乗算器201は、複数の重み付け素子(202、204、206、208、210、212、214、及び216)を含み得る。各重み付け要素は、1ビットDACからバイナリエンコードされたアナログ信号116のバイナリエンコードされたアナログ信号を受信し得る。この実施例では、重み付け要素は、受信したバイナリエンコードされたアナログ信号の電圧、及び特定の重み付け要素の重み付け値に基づいて電流を出力し得る。例えば、各重み付け要素は、様々な導電率を用いて実装され得る。重み付け構成要素の導電率を変えることで、入力電圧に応じて出力される電流の量を変動させることができる。例えば、電圧が1Vで、重み付けブロックの導電率が8μSの場合、8μAの出力を得ることができる。この値は、そのビット順序に基づいてさらに重み付けされ得る。したがって、最下位ビットの場合、乗数は1となり、第2のLSBの場合、乗数は2となる、等々である。幾つかの実施形態では、各重み付け要素によって使用される重み付けは、予め決定され、製造時に固定され得る。他の実施形態では、各重み付け要素の重み付けは、製造後に設定可能であり、実施形態200の使用中に再設定可能であり得る。
【0027】
[0034]各重み付け要素(202、204、206、208、210、212、214、及び216)の出力は、電流などの電気特性であり得る。同じ電流出力に接続された重み付け要素から出力された電流を加算してもよい。したがって、電流出力220は、重み付け要素202、204、206、及び208による電流出力の加算を含んでもよく、電流出力222は、重み付け要素210、212、214、及び216による電流出力の加算を含んでもよい。
【0028】
[0035]入力ベクトルの各値の単一ビットが一度に評価される(かつ、アナログベクトルマトリックス乗算器201によってビット順序が考慮されない)。例えば、4つの4ビット値を有する入力ベクトルでは、各値のMSBが最初に評価され、次に各値の第2のMSB、次に第2のLSB、最後に各値のLSBが評価され得る(したがって、1ビットDACによって出力されたバイナリエンコードされたデータの4つのクロックサイクルに対応する)。他の実施形態では、評価は、LSBからMSBへ進行するか、又は任意の他の予め定義された順序で進行し得る。本書で後に詳述するように、アナログベクトルマトリックス乗算器201の出力は、加算回路によって重み付けされ得る。これにより、ベクトルマトリックス乗算器によって乗算演算が行われているビットのビット順序が考慮される。
【0029】
[0036]重み付け要素の列数は任意であり、入力ベクトルが乗算される重み付けマトリックスに基づき得る。したがって、実施形態200では2つの列が存在するが、他の要素では、カラムの数がより少なくてもよいし、より多くてもよい。重み付け要素の行の数は、入力ベクトルに存在する値の数に対応し得る。例えば、式2は、アナログベクトルマトリックス乗算器201が出力する電流を表し得る。
【0030】
[0037]続けて例を見ると、電流出力(例えば、電流出力220、222)が共に接続され、バイナリエンコードされた乗算結果信号124が生成され得る。加算構成要素132は、各ビット順序を適切に重み付けし、保存し、次いで加算して、正確な最終加算値を得る。
【0031】
[0038]図3は、アナログ加算回路の実施形態300を示す。電圧、電流、電荷、又は他の何らかの電気的特性の形態であり得る信号を蓄積かつ再分配するために、様々な異なる種類の回路が使用可能であることを理解されたい。アナログ加算回路の重要な点は、アナログベクトルマトリックス乗算器201の受信出力に適切なビット重み付けを適用したことである。例えば、アナログベクトルマトリックス乗算器201によって入力ベクトルの第2のLSBに対応する出力が出力される場合、アナログ加算回路は、LSBの2倍で第3のLSBの半分のビット重み付けを適用する。実施形態300は、図1の加算構成要素132を表し得る。入力301は、アナログベクトルマトリックス乗算器からのバイナリエンコードされた乗算結果信号124を表す。入力301は、感知増幅器310に供給される。感知増幅器310は、感知増幅器310によって入力301で受信した電流に基づいて電圧を出力する。具体的には、実施形態300は、受動的電荷共有及び再分配を用いることが可能である。このような配列は、電力の消費を減らし、出力値への熱雑音の影響を低減することに役立ち得る。
【0032】
[0039]実施形態300は、キャパシタ-スイッチアレイ302を備えている。キャパシタは、ビット順序で重み付けすることができ、これは、各キャパシタのキャパシタンスが、特定のビット順序に対して重み付けされた電荷量を受動的に保存するように選択され得ることを意味する。一例として、4ビットの値を出力するために、4つのキャパシタが存在する。キャパシタ316-1は、LSBに対応する電荷を格納するために使用され得る。したがって、キャパシタ316-1は、C(Cは単位値)のキャパシタンスを有し得る。キャパシタ316-2は、第2のLSBに対応する電荷を保存するために使用され得る。したがって、キャパシタ316-2は、2C(Cの2倍の重みを表し、したがって、バイナリビット順序の第2のLSBに対応する)のキャパシタンスを有し得る。キャパシタ316-3は、第2のMSBに対応する電荷を保存するために使用され得る。したがって、キャパシタ316-3は、4Cのキャパシタンスを有し得る。キャパシタ316-4は、MSBに対応する電荷を保存するために使用され得る。したがって、キャパシタ316-4は、8Cのキャパシタンスを有し得る。各キャパシタは、アナログベクトルマトリックス乗算器の出力を示す電荷を保存するために使用されるビット順序に対応するキャパシタンスを有する。キャパシタンスは、式3により算出でき、Cは単位値であり、Nは入力ベクトルの値の中のビット数である。
キャパシタンス=2N-1C 式3
【0033】
[0040]スイッチ制御ロジック330(デジタルであり、セクション110と同じクロックで接続され得る)は、スイッチ312、314-1、314-2、314-3、314-4、及び314-5が開かれるか、又は閉じられるかを制御できる。簡略化のため、図3では、スイッチ制御ロジック330とスイッチ312及び314との間の通信は示されていない。スイッチ制御ロジック330は、専用のロジック回路であってもよいし、又は処理システムの一部として組み込まれてもよい。スイッチ制御ロジック330は、スイッチ312が開いている間、最初にスイッチ314-1、314-2、314-3、314-4、及び314-5を閉じることがある。スイッチ314-5はリセットとして機能し、キャパシタ316-1、316-2、316-3、316-4に存在する電荷をグランド320へ放電させることができる。
【0034】
[0041]スイッチ制御ロジック330は、次いで、アナログベクトルマトリックス乗算器122によって評価されている現在のビット順序に関連するキャパシタンスを有するキャパシタがバイナリエンコードされた乗算結果信号124に接続されるように、スイッチを制御することができる。スイッチ制御ロジック330は、スイッチ312を開けて、スイッチ314-2、314-3、314-4、及び314-5を閉じることができる。したがって、スイッチ314-1のみが閉じたままとなり、キャパシタ316-1を感知増幅器310の出力部に接続することができる。このクロックサイクルの間、アナログベクトルマトリックス乗算器122は、LSBに対応するバイナリエンコードされた乗算結果信号を出力し得る。次のクロックサイクルでは、スイッチ制御ロジック330は、スイッチ312を閉じたままにし、スイッチ314-1を開き、スイッチ314-2を閉じ得る。このクロックサイクルの間、アナログベクトルマトリックス乗算器122は、第2のLSBに対応するバイナリエンコードされた乗算結果信号を出力し得る。キャパシタ316-2がキャパシタ316-1の2倍のキャパシタンスを有することにより、適切なビット重み付けが保存された電荷量に受動的に適用される。次のクロックサイクルでは、スイッチ制御ロジック330は、スイッチ312を閉じたままにし、スイッチ314-2を開き、スイッチ314-3を閉じ得る。このクロックサイクルの間、アナログベクトルマトリックス乗算器122は、第2のMSBに対応するバイナリエンコードされた乗算結果信号を出力し得る。キャパシタ316-3がキャパシタ316-2の2倍のキャパシタンスを有することにより、適切なビット重み付けが保存された電荷量に受動的に適用される。次のクロックサイクルでは、スイッチ制御ロジック330は、スイッチ312を閉じたままにし、スイッチ314-3を開き、スイッチ314-4を閉じ得る。このクロックサイクルの間、アナログベクトルマトリックス乗算器122は、MSBに対応するバイナリエンコードされた乗算結果信号を出力し得る。キャパシタ316-4がキャパシタ316-3の2倍のキャパシタンスを有することにより、適切なビット重み付けが保存された電荷量によって受動的に適用される。この段階で、スイッチされたキャパシタ-スイッチアレイ302は、バイナリエンコードされた乗算結果をビット順序重み付けキャパシタに電荷として個別に保存する。
【0035】
[0042]この時点で、キャパシタ316-1、216-2、316-3、及び316-4の各々は、キャパシタの特定のビット順序に対応する電荷量(Q)を保存する。所与のビット順序Nについて、特定のキャパシタに保存される電荷量は、式4で定義することができる。
Q=2N-1*C*V 式4
【0036】
[0043]したがって、電荷量は、感知増幅器310によって出力された電圧をキャパシタのキャパシタンスに乗じたものに等しい。式3に関連して詳述するように、キャパシタンスは、ビット順序が進むたびに2N-1の係数で増加する。
【0037】
[0044]次のクロックサイクルの間、スイッチ制御ロジック330は、スイッチ312を開き、スイッチ314-5を開いたままにし、スイッチ314-1、314-2、314-3、及び314-4を閉じ得る。このステップは、電荷再分配ステップと理解してもよい。各キャパシタはそのビット順序に対応する電荷量を保存するので、電荷再分配段階において、個々のキャパシタの電荷は、キャパシタ316-1、316-2、及び316-3にわたって分配され、最終的な加算値を示すことになる。一旦再分配が行われると、その加算はキャパシタ316の上部プレートにおける電圧値として表され、これは加算出力134を介して出力される。式5は、各コンデンサに保存された電荷に基づいて、加算出力134を介して出力される電圧値を表す。
【0038】
[0045]式5では、各キャパシタの電荷は、キャパシタの関連するビット順序に基づく適切な重み付け量を加算出力134としてVOutへ寄与させる。VOutは、アナログベクトル-マトリックス乗算の最終的な重み付け加算を表す。
【0039】
[0046]総じて、入力ベクトルが4ビット値を含む場合、加算プロセスは、有効な加算出力134が出力されるまで6クロックサイクルを要することがある。より一般的に言えば、加算プロセスは、値のビットごとにリセットクロックサイクル、再分配クロックサイクル、及びクロックサイクルを要することがある。
【0040】
[0047]図3は4つのキャパシタを図示しているが、この実施形態は例示のみを目的としていることを理解されたい。入力ベクトルの値に対して異なるビット数を適用させるために、キャパシタの数を増減してもよい。代替的な実施形態では、加算出力134からコモンモード干渉を打ち消すことができるように、微分加算回路(differential summation circuitry)が実装され得る。さらに、他の実施形態では、代替的な受動アナログ構成要素を使用して、電荷を保存かつ加算し、加算出力134を決定することができる。さらに他の実施形態では、加算回路は、デジタル回路を使用して実装されてもよい。
【0041】
[0048]図1から3に詳述したシステム及び回路を使用して、様々な方法を実行することができる。図4は、ベクトル-マトリックス乗算演算を実行するための方法400の実施形態を示す。方法400は、図1から図3の回路を使用して、又はそのような回路の代替的なバージョンを使用して実行することができる。すなわち、図2及び図3のような回路のような回路の具体例は、図1の回路及び図4の方法をどのように実施できるかの例であることを理解されたい。幾つかの実施形態では、デジタル加算回路を使用してもよい。
【0042】
[0049]ブロック410では、バイナリエンコードされた信号のビット順序は、バイナリエンコードされたアナログ信号に変換され得る。この機能を実現するために、複数の1ビットDACを並列に使用してもい。したがって、各DACは、所定のビット順序について、デジタル信号をアナログ信号に並列に変換することができる。各DACは、入力ベクトルの特定のビット順序を示すバイナリエンコードされたデジタル信号を受信し得る。各ベクトルはN個のビットを有し得る。そのため、1ビットDACがバイナリエンコードされたデジタル信号をアナログ信号に変換するためには、N回のクロックサイクルを要する場合がある。例えば、バイナリエンコードされたデジタル信号が「10011」である場合、このバイナリエンコードされた値(最も右端の桁がLSBであると仮定すると、19の値を表す)が1ビットDACによって出力されるまでに5クロックサイクルを要することがある。各1ビットDACが出力されるアナログ電圧は、各1ビットDACに供給される電力電圧に依存し得る。
【0043】
[0050]ブロック420では、ベクトルマトリックス乗算が、受信したバイナリエンコードされたアナログ信号のビット順序に対して連続的に実行される。ブロック420は、1ビットDACから受信した入力ベクトルの特定のビット順序に対して実行され得る。すなわち、ブロック420は、最初に、入力ベクトルの値の各LSBに対して実行され得る(その後、ブロック420の次の反復の間に、第2のLSBが評価され得る)。典型的に、最初に評価されるビットは、入力ベクトルの値のMSB又はLSBのいずれかになる。ベクトルマトリックス乗算は、図2の実施形態200と同様の回路によって実行されてもよい。アナログ乗算回路の他の実施形態も実装可能であることを理解されたい。ベクトルマトリックス乗算乗算器は、アナログ入力値と重み付けとの積を示す電流の重み付けされた量をそれぞれ生じさせる重み付け構成要素を含み得る。このような電流、又は他の電気的特性を加算回路に出力することができる。
【0044】
[0051]ブロック430では、ブロック420でベクトルマトリックス乗算器が乗算機能を実行した所定のビット順序に対して、ベクトルマトリックス乗算器の出力(電流又は電圧の形態であり得る)が、適切なビット順序重み付けで保存され得る。受信した信号の指標は、アナログベクトルマトリックス乗算器によって評価されたビットのビット順序に応じて重み付けされ、保存される。例えば、アナログベクトルマトリックス乗算器による評価がLSBからMSBへ行われる場合、後続の各ビットは、加算回路によって保存されるときに前のビットと比べて2倍の重みが付与され得る。これは例示に過ぎないが、感知増幅器は、アナログベクトルマトリックス乗算器からの受信電流を電圧に変換し得る。加算回路の幾つかの実施例では、電圧は、ブロック420が実行されたビット順序に対応するキャパシタンスを有する特定のキャパシタを荷電するために使用され得る。したがって、例えば、LSBが評価される場合、アナログマトリックス乗算器の出力が、Cのキャパシタンスを有するキャパシタを荷電するために使用されてもよく、第2のLSBが評価される場合、アナログマトリックス乗算器の出力が、2Cのキャパシタンスを有するキャパシタを荷電するために使用されてもよい、等々である。
【0045】
[0052]ブロック435では、追加のビット順序がまだ評価されていない場合、方法400は、ブロック410に戻り、入力ベクトルの次のビット順序に対して実行され得る。したがって、各ビット順序が、アナログベクトルマトリックス乗算器によって連続的に評価され、対応する出力が、そのビット順序に対応する重み付けで加算回路によって連続的に保存される。乗算演算がブロック420のすべてのビット順序に対して実行され、ブロック430で保存された場合、方法400はブロック440に進むことができる。したがって、入力ベクトルの各値が4ビットを有する場合、ブロック420及び430は、4回、すなわち、値の各ビットにつき1回ずつ実行される。
【0046】
[0053]ブロック440では、例えば、蓄積を実行することにより、加算値が決定され得る。幾つかの実施形態では、加算値は、アナログドメインで決定される。ブロック430で保存された様々なビット順序重み付け値が加算され得る。これは例示に過ぎないが、スイッチ-キャパシタアレイが使用される場合、キャパシタの電荷は、キャパシタ間で再分配され(これは総電荷を蓄積するのに役立つ)、特定のビット順序に対応する各キャパシタのキャパシタンスによってビット重み付けがなされることがある。このために、スイッチ-キャパシタアレイを絶縁するためにスイッチを開いてもよく、キャパシタに直接接続されたすべてのスイッチ(例えば、図3の314-1、314-2、314-3、及び314-4)を閉じてもよい。各キャパシタの電荷は、キャパシタのフィールド間で再分配され得る。しかし、電荷の総量は、一定に留まることになり、キャパシタ間のキャパシタンス差により、適切にビット順序重み付けされることになる。他の実施形態では、キャパシタアレイを使用するよりも、別の形態のアナログ回路又はデジタル回路を使用して、各乗算結果の適切なビット順序を用いて最終的な加算値を決定することができる。
【0047】
[0054]ブロック450では、加算の指標が出力される。幾つかの実施形態では、加算の指標は、電圧の大きさなどのアナログな電気特性として出力される。例えば、図3のようにキャパシタアレイの上部プレートにおける電圧は、ベクトル-マトリックス乗算の加算を表し得る。この電圧は、測定可能であり、場合によっては数値を決定するために使用される。例えば、ADCのような別の回路がこの出力電圧を利用して、電圧をデジタルドメインに戻すことがある。
【0048】
[0055]図5は、幾つかの実施形態に係る、シリアル電荷再分配を実行するために使用される連続的ビット順序加算回路を示す。スイッチキャパシタアレイ516を使用して、上述したベクトル-マトリックス乗算演算の出力のための加算回路を実装することができる。上述したように、回路は、ドライバ510を含み得る。ドライバ510は、ベクトル-マトリックス乗算演算などのビット順序演算からの連続的な個々のビット順序の結果を受信するための入力を受信する。なお、この回路は、あらゆるビット順序演算に使用してもよい。上述したベクトル-マトリックス乗算演算は、例示として提供されているに過ぎず、限定を意図するものではない。単一のアナログ出力に変換される、ビット順序に基づいた個々の連続的な結果を生成する任意の演算が、この回路を用いて、加算演算を実行し、最終的な出力を生成することができる。
【0049】
[0056]入力504は、ビット順序演算の出力から受信されるアナログ電流であり得る。ドライバ510は、アナログ電流を対応する電圧信号に変換し得る。代替的に、入力504は、ドライバ510によって昇圧又はスケーリングされるアナログ電圧であってもよい。ドライバ510の出力が、入力スイッチ514に供給され得る。入力スイッチ514は、後述するリセット動作の際に開かれ得る。入力スイッチ514を通過した後、ドライバ510からの信号(例えば、アナログ電圧)は、スイッチキャパシタアレイ516の脚部の1つに入り得る。
【0050】
[0057]上述したように、スイッチキャパシタアレイ516は、対応する複数のキャパシタに連結される複数のスイッチ506を含み得る。各スイッチ-キャパシタの対は、図5に示されているように、互いに直列に配置されてもよい。次いで、複数のスイッチ-キャパシタの対が互いに並列に配置されてもよい。複数のスイッチ506は、コントローラ502によって操作され得る。コントローラ502は、複数のスイッチ506を個別に操作する個々の信号を生成し得る。例えば、スイッチ506は、トランジスタを用いて実装されてもよく、コントローラ502は、それらのトランジスタのゲートに電圧を供給して、トランジスタの導通/非導通を制御することができる。スイッチ506は、リレー、トライアック、又は他のスイッチング回路素子を用いて実装されてもよく、コントローラ502は、それらのスイッチを開閉させる電圧/電流を供給し得る。コントローラ502は、スイッチ506のタイミング及び/又は上述した乗算器-蓄積器動作のための他のタイミング信号を制御するプロセッサ/マイクロプロセッサ又はマイクロコントローラによって実装され得る。マイクロプロセッサ又はマイクロコントローラは、マイクロプロセッサ又はマイクロコントローラにタイミング信号を生成させる動作を実行させる、命令メモリ又はメモリデバイスに保存された命令を実行し得る。代替的に、コントローラ502は、スイッチ506のためのタイミング出力を生成するフィールドプログラマブルゲートアレイ(FPGA)又は他のプログラマブル論理回路などのステートマシン回路によって実装され得る。幾つかの実施形態では、コントローラ502は、並列の又は直列の通信ポートを介してデジタル出力を生成するコンピュータシステムによって実装され得る。
【0051】
[0058]上述したように、キャパシタ508は、対応するビット順序ごとに2倍になるキャパシタンスを有する回路素子を用いて実装され得る。図5に示されるように、最下位ビットに対応するビット順序演算結果は、「C」のキャパシタンスを有するキャパシタ508-Nに保存され得る。次の最下位ビットの結果は、「2C」のキャパシタンスを有するキャパシタ508-4に格納され得る、等々である。対応するビット順序の結果の値を、対応するキャパシタ508に個別にかつ連続的に保存するために、スイッチ506が操作され得る。各々のキャパシタ508のキャパシタンスの大きさは、セトリング時間に影響を与え得る。セトリング時間は、ドライバ510からの値を対応するキャパシタに保存するのに必要な時間として定義され得る。なお、図5のキャパシタは例示として提供されているに過ぎず、限定を意図していない。キャパシタは、各種キャパシタ、スーパーキャパシタなどの任意のエネルギー保存素子と置き換えられてもよい。
【0052】
[0059]アナログベクトルマトリックス乗算器の各演算がビット順序ごとに連続的に実行されるので、出力が重み付けマトリックスから提供され得る。ビット順序ごとに、スイッチ506が作動して、乗算演算の出力に対応する値を対応するキャパシタに保存し得る。例えば、LSBのための値を保存するために、スイッチ506-Nが閉じられ、その一方で、複数のスイッチ506のうちの残りのスイッチが開いたままであり得る。入力スイッチ514が閉じられ、リセットスイッチ500が開いたままであってもよい。ビット順序キャパシタと対になったスイッチを作動させることは、定められた時間間隔の間スイッチを閉じ、時間間隔の終了時にスイッチを開くことを含み得る。幾つかの実施形態では、キャパシタに対して、スイッチ506-Nからわずかに遅れて入力スイッチ514を作動させてもよい。例えば、スイッチ506-Nを閉じた後、時間間隔の開始時に入力スイッチ514を閉じてもよい。時間間隔の終了時に、入力スイッチ514が開かれ、次いで、スイッチ506-Nが開かれてもよい。
【0053】
[0060]時間間隔520、522、524が、図5のスイッチの各々に関連付けられ得る。リセット時間間隔522は、リセットスイッチ500及び複数のスイッチ506が閉じて、キャパシタ508に保存された値がリセットスイッチ500の接地接続を介して放出されたとき(これが、キャパシタに保存された値を効果的にクリアする)に開始することができる。加算時間間隔524は、リセットスイッチ500及び入力スイッチ514が開かれ、複数のスイッチ506が閉じることにより、電荷がキャパシタ508にわたって再分配されたときに開始することができる。加算時間間隔524は、複数のキャパシタ508にわたって電圧518を測定することをさらに含み得る。複数のキャパシタ508は、図5に示されるように並列に配置され得る。この電圧518は、ビット順序演算の出力(例えば、MAC結果)を表し得る。乗算マトリックスからキャパシタ508へ値が転送される複数の蓄積段階時間間隔520は、複数のスイッチ506の各ビット順序スイッチが入力スイッチ514と共に閉じられるときに開始することができる。各々の蓄積段階時間間隔520は、スイッチが開けられたときに終了し得る。蓄積時間間隔は、保存時間間隔と呼ばれてもよい。
【0054】
[0061]幾つかの実装形態では、これらの各々の時間間隔520、522、524は、均一であり得る。他の実装形態では、リセット間隔522及び/又は加算時間間隔524は、蓄積段階時間間隔520とは異なっていてもよく、各々の蓄積段階時間間隔520は、長さが均一であってもよい。
【0055】
[0062]図6は、幾つかの実施形態に係る、不均一な時間間隔を使用したタイミング図を示す。均一な時間間隔を使用することで、コントローラ502の設計を簡素化することができるが、時間間隔の均一化により、各MAC演算の合計サイクル時間626が不用意に長くなる場合がある。しかし、種々のサイズのキャパシタがスイッチキャパシタアレイに使用されるので、これらのキャパシタの各々のセトリング時間が異なることがある。ドライバが任意の接続されたキャパシタを荷電できる速度は、ドライバに付けられた負荷(例えば、スイッチキャパシタアレイでドライバによって荷電される総キャパシタンス)に依存し得る。スイッチのタイミングを制御する1つの方法としては、個々のキャパシタのいずれかの最長のセトリング時間を決定し、その時間に基づいてスイッチを制御する方法がある。この方法により、スイッチが開く前にいずれかのキャパシタの電荷が適切に落ち着き、正確な結果をキャパシタに保存することができる。スイッチをあまりにも早く開けると、キャパシタに保存された電荷が、ドライバによって供給された電圧を正確に表さないことがある。
【0056】
[0063]しかしながら、ここに記載された幾つかの実施形態は、スイッチキャパシタアレイのスイッチ制御のために適応型タイミングを使用し得る。特に最上位ビット(MSB)のキャパシタ値が最下位ビット(LSB)のキャパシタに比べて非常に大きい場合、均一なサイクル時間を使用することは最も効率的な解決ではない場合がある。図6は、均一サイクル時間アプローチの下で使用され得る蓄積時間間隔620を示す。その結果、総サイクル時間626が得られる
【0057】
[0064]本実施例では、リセット時間間隔622及び加算時間間隔624は、蓄積時間間隔620と同じ均一な長さであり得る。他の実施形態では、これらは蓄積時間間隔620と異なり得る。図6は、適応型アプローチを用いて、蓄積時間間隔630に使用される不均一なサイクル時間をさらに示す。蓄積時間間隔630は、互いに対して長さが不均一であってもよく、リセット時間間隔632及び/又は加算時間間隔634に対して長さが不均一であってもよい。幾つかの実施形態では、蓄積時間間隔630の長さは、各々の対応するキャパシタのセトリング時間に少なくとも部分的に基づき得る。ビット順序演算のより下位のビットに関連付けられた小さなキャパシタは、より短いセトリング時間を要することがあり、ビット順序演算のより上位のビットに関連付けられた大きなキャパシタは,より長い整定時間を要することがある。図6に示すように、コントローラは、このセトリング時間に基づいて、これらのキャパシタに対応するスイッチを操作し得る。例えば、MSBのための蓄積時間間隔630-1は、次の最上位ビットのための蓄積時間間隔630-2よりも大きい、等々である。同じように、リセット時間間隔632及び/又は加算時間間隔634は、図6に図示された他の時間間隔に対して不均一な長さを有し得る。これらの時間間隔632、634は、キャパシタの値を完全にリセットするために使用される時間、及び/又は加算段階で電荷がキャパシタに完全に再分配された後の時間に少なくとも部分的に基づき得る。
【0058】
[0065]これらの時間間隔の不均一な長さは、コントローラにプログラムされ得る。これらの時間間隔を実験室や実験環境で直接測定して、スイッチキャパシタアレイに使用されるキャパシタサイズに必要なセトリング時間を決定することができる。セトリング時間は、総負荷の既知の時定数を用いて計算してもよいし、回路シミュレーションソフトウェアを使用してシミュレーションしてもよい。
【0059】
[0066]幾つかの実施形態では、これらの時間間隔の不均一な長さは、動作中にコントローラによって動的に調整され得る。例えば、スイッチキャパシタアレイは、コントローラにフィードバックする電圧測定回路(例えば、アナログ/デジタル変換器に連結された分圧器)を含み得る。コントローラは、実際のMAC演算中に、各キャパシタのためのセトリング時間を動的に測定することができる。各ビット順序に関連する時定数が、経時的に変化したり、温度によって変化したり、かつ/又はその他の環境条件によって影響を受けたりする可能性があるので、時間間隔630は、総サイクル時間636を最小化するために可能な限り短いように、動的に調整され得る。
【0060】
[0067]幾つかの実施形態では、コントローラは、蓄積サイクル時間630を増減させる種々の動作モードを使用し得る。例えば、コントローラは、結果の正確さを重視する第1の動作モードを使用し得る。この第1の動作モードは、蓄積時間間隔630の各々に時間を追加するか、又は時間間隔630の長さを一定の割合の量だけ増加させ、可能な限り値の正確な保存を確実に行うことができる。これにより正確さの向上とサイクル時間の延長との兼ね合いが実現する。対照的に、第2の動作モードは、正確さを犠牲にして、総サイクル時間636を減少させるために、時間間隔630の1つ又は複数の長さを量的に又は一定の割合で減少させ得る。複数の動作モードを各方向に追加することが可能であり、これにより、複数のレベルでの精度の増減とともに、複数のレベルでの速度増減を実現する。
【0061】
[0068]図7は、幾つかの実施形態に係る、簡略化されたより短いサイクル時間のアプローチを示す。このアプローチでは、リセット時間間隔732及び/又は加算時間間隔734よりも短い均一な蓄積時間間隔730が使用される。これにより、蓄積時間間隔730の制御を簡略化しつつ、蓄積時間間隔730をリセット時間間隔732及び/又は加算時間間隔734よりも短くすることができる。概して、リセット時間間隔632及び/又は加算時間間隔634は、両方の蓄積時間間隔730の蓄積時間に使用される時間間隔よりも長い場合がある。蓄積時間間隔730を均一に減らしても、総サイクル時間736が、均一サイクル時間アプローチの総サイクル時間626よりも依然として短い場合がある。蓄積時間間隔730の長さは、スイッチキャパシタアレイにおいて最大のセトリング時間(例えば、MSBに関連するキャパシタのためのセトリング時間)に設定され得る。
【0062】
[0069]図8は、幾つかの実施形態に係る、連続的なビット順序の結果を保存かつ集計するための方法のフロー図を示す。当該方法は、ビット順序演算から複数のビット順序の結果を連続的に受け取ること(802)を含み得る。上述したように、ビット順序演算は、1ビットDACを使用して、バイナリエンコードされた値のデジタル入力ベクトルをアナログ信号に変換することを含む、上述したビット順序乗算手順を含み得る。アナログベクトルマトリックス乗算器は、図1及び図2に示されるように、ビット順序のアナログ入力信号ごとに重み付けマトリックスを使用するベクトル-マトリックス乗算演算を連続的に実行し得る。これらの入力は、アナログ電圧又は電流として受信されてもよく、スイッチキャパシタアレイのために、昇圧又はスケーリングされた電圧を出力するドライバを通過し得る。
【0063】
[0070]当該方法は、複数の時間間隔の間に、複数のビット順序の結果に対応する値を複数のエネルギー保存要素に保存すること(804)をさらに含み得る。図5に図示され、かつ上述したように、対応する複数のスイッチを操作することによって、これらの値をキャパシタに保存することができる。スイッチ及びキャパシタは、スイッチキャパシタアレイの並列な脚部において対で配置され得る。コントローラは、図5で上述したように、スイッチを操作する出力信号を生成することができ、これにより、規定された時間間隔の間に値をキャパシタに保存することが可能になる。
【0064】
[0071]当該方法は、複数の時間間隔が長さにおいて不均一であるように、複数の時間間隔の長さを制御すること(806)をさらに含み得る。時間間隔の長さの不均一を相対的に測定することができる。例えば、時間間隔は、対応するキャパシタごとの、測定され、推定され、シミュレーションされ、又は既知のセトリング時間に少なくとも部分的に基づき得る。より小さいキャパシタのための時間間隔は、より大きいキャパシタのための時間間隔より短い場合がある。動作中に各キャパシタのセトリング時間を測定することにより、これらの時間間隔を動的に制御し、ドリフト、温度変化、プロセス変化、経年変化、及び動作間のセトリング時間の一貫性に影響を与え得る特性を補正することができる。これらの時間間隔は、図5から図7で上述したように制御することができる。
【0065】
[0072]上述した方法、システム、及びデバイスは、実施例である。様々な構成は、必要に応じて、様々な手順又は構成要素を省略、置換、又は追加してもよい。例えば、代替的な構成では、方法が、記載とは異なる順序で実行されてもよく、かつ/又は、様々な段階が、追加、省略、及び/若しくは組み合わせされてもよい。さらに、特定の構成に関連して記載された特徴を、様々な他の構成において組み合わせてもよい。構成の種々の態様又は要素を同様に組み合わせてもよい。さらに、技術は進歩するので、多くの要素は例示であり、本開示又は特許請求の範囲を限定するものではない。
【0066】
[0073]例示的な構成(実装形態を含む)を完全に理解するために、具体的な詳細が発明を実施するための形態に記載されている。しかし、これらの具体的な詳細がなくても、構成を実施することは可能である。例えば、構成が不明瞭にならないよう、不必要な詳細を省いて周知の回路、プロセス、アルゴリズム、構造、及び技法を示した。本記載は、例示的な構成を提供するだけであり、特許請求の範囲に記載された範囲、適用性、又は構成を限定するものではない。むしろ、構成の以上の説明は、記載された技法を実施するための実施可能な説明を当業者に提供することになる。本開示の精神又は範囲から逸脱することなく、要素の機能及び配置に様々な変更を加えてもよい。
【0067】
[0074]さらに、構成は、フロー図やブロック図として示されるプロセスとして記載してもよい。フロー図やブロック図では、動作が連続なプロセスとして表現されることもあるが、多くの動作は並列に又は同時に行われてもよい。さらに、動作の順序を並べ替えてもよい。プロセスは、図面に含まれない追加のステップを有し得る。
【0068】
[0075]幾つかの例示的な構成を説明してきたが、本開示の精神から逸脱することなく、様々な修正例、代替的な構造、及び均等物を用いてもよい。例えば、上記の要素は、より大きなシステムの構成要素であってもよく、本発明の用途に対して他のルールが優先したり、さもなければ本発明の用途を変更することができる。さらに、上記の要素を検討する前、検討する間、又は検討した後に、幾つかのステップを実行してもよい。
図1
図2
図3
図4
図5
図6
図7
図8
【国際調査報告】