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

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

▶ クアルコム,インコーポレイテッドの特許一覧

特表2024-512361再構成可能なアナログベースのニューラルネットワークにおけるマルチビットMACアレイのためのアナログ加算器
<>
  • 特表-再構成可能なアナログベースのニューラルネットワークにおけるマルチビットMACアレイのためのアナログ加算器 図1
  • 特表-再構成可能なアナログベースのニューラルネットワークにおけるマルチビットMACアレイのためのアナログ加算器 図2
  • 特表-再構成可能なアナログベースのニューラルネットワークにおけるマルチビットMACアレイのためのアナログ加算器 図3
  • 特表-再構成可能なアナログベースのニューラルネットワークにおけるマルチビットMACアレイのためのアナログ加算器 図4
  • 特表-再構成可能なアナログベースのニューラルネットワークにおけるマルチビットMACアレイのためのアナログ加算器 図5
  • 特表-再構成可能なアナログベースのニューラルネットワークにおけるマルチビットMACアレイのためのアナログ加算器 図6
  • 特表-再構成可能なアナログベースのニューラルネットワークにおけるマルチビットMACアレイのためのアナログ加算器 図7
  • 特表-再構成可能なアナログベースのニューラルネットワークにおけるマルチビットMACアレイのためのアナログ加算器 図8
  • 特表-再構成可能なアナログベースのニューラルネットワークにおけるマルチビットMACアレイのためのアナログ加算器 図9
  • 特表-再構成可能なアナログベースのニューラルネットワークにおけるマルチビットMACアレイのためのアナログ加算器 図10
  • 特表-再構成可能なアナログベースのニューラルネットワークにおけるマルチビットMACアレイのためのアナログ加算器 図11
  • 特表-再構成可能なアナログベースのニューラルネットワークにおけるマルチビットMACアレイのためのアナログ加算器 図12
  • 特表-再構成可能なアナログベースのニューラルネットワークにおけるマルチビットMACアレイのためのアナログ加算器 図13
  • 特表-再構成可能なアナログベースのニューラルネットワークにおけるマルチビットMACアレイのためのアナログ加算器 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-19
(54)【発明の名称】再構成可能なアナログベースのニューラルネットワークにおけるマルチビットMACアレイのためのアナログ加算器
(51)【国際特許分類】
   G06G 7/14 20060101AFI20240312BHJP
   G06G 7/60 20060101ALI20240312BHJP
   G06G 7/16 20060101ALI20240312BHJP
   G06G 7/184 20060101ALI20240312BHJP
【FI】
G06G7/14
G06G7/60
G06G7/16
G06G7/184
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023554359
(86)(22)【出願日】2022-03-09
(85)【翻訳文提出日】2023-09-06
(86)【国際出願番号】 US2022019640
(87)【国際公開番号】W WO2022192463
(87)【国際公開日】2022-09-15
(31)【優先権主張番号】17/197,359
(32)【優先日】2021-03-10
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
2.ZIGBEE
3.FIREWIRE
4.THUNDERBOLT
5.JAVA
6.JAVASCRIPT
7.VISUAL BASIC
(71)【出願人】
【識別番号】507364838
【氏名又は名称】クアルコム,インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100163522
【弁理士】
【氏名又は名称】黒田 晋平
(72)【発明者】
【氏名】セイエド・アラシュ・ミルハジ
(72)【発明者】
【氏名】アンキット・スリヴァスタヴァ
(72)【発明者】
【氏名】サミール・ワドファ
(57)【要約】
様々な実施形態は、マルチビット積和演算器(MAC)のためのデバイスおよび方法を含む。いくつかの実施形態は、第1の加算器キャパシタを有するアナログ加算器を含み得る。第1の加算器キャパシタは、複数のシングルビットMACから複数のシングルビットMAC出力を受け取ること、および複数のシングルビットMAC出力を記憶することによって、複数のシングルビットMAC出力を加算し得る。いくつかの実施形態では、アナログ加算器は、記憶されている複数のシングルビットMAC出力の加算に基づいてマルチビットMAC出力を出力し得る。
【特許請求の範囲】
【請求項1】
第1の加算器キャパシタを有するアナログ加算器を備える、マルチビット積和演算器(MAC)であって、
前記第1の加算器キャパシタが、
複数のシングルビットMACから複数のシングルビットMAC出力を受け取り、
前記複数のシングルビットMAC出力を記憶する
ことによって、前記複数のシングルビットMAC出力を加算するように構成され、
前記アナログ加算器が、前記記憶されている複数のシングルビットMAC出力の加算に基づいて、マルチビットMAC出力を出力するように構成される、マルチビットMAC。
【請求項2】
前記複数のシングルビットMACが各々、
第1のマルチビット値の個々のビットおよび第2のマルチビット値の異なるシングルビットを逐次乗算し、前記第1のマルチビット値および前記第2のマルチビット値がデジタル電圧によって表され、
前記複数のシングルビットMAC出力を生成するために前記乗算の結果を累算し、前記複数のシングルビットMAC出力がアナログ電圧である、ように構成される、請求項1に記載のマルチビットMAC。
【請求項3】
複数のシングルビットMACスイッチをさらに備え、前記複数のシングルビットMACスイッチの第1のシングルビットMACスイッチが、制御デバイスによって制御されるように、前記複数のシングルビットMACの第1のシングルビットMACと前記第1の加算器キャパシタを選択的かつ電気的に接続するように構成され、
前記第1の加算器キャパシタは、前記第1のシングルビットMACスイッチが前記第1のシングルビットMACと前記第1の加算器キャパシタを選択的かつ電気的に接続したことに応答して、複数のシングルビットMACから前記複数のシングルビットMAC出力を受け取ることが前記第1のシングルビットMACから前記複数のシングルビットMAC出力の第1のシングルビットMAC出力を受け取ることを備えるように構成され、
前記アナログ加算器がさらに、入力端および出力端を有する演算増幅器を備え、前記第1の加算器キャパシタが、前記入力端と出力端との間に電気的に接続され、前記演算増幅器が、
前記入力端において前記複数のシングルビットMAC出力を受け取ることと、
前記複数のシングルビットMAC出力の加重平均を生み出す前記複数のシングルビットMAC出力を加算することであって、
前記アナログ加算器が、
複数のシングルビットMAC出力を加算することが、前記複数のシングルビットMAC出力の前記加重平均を生み出す前記複数のシングルビットMAC出力を加算することを備え、
前記複数のシングルビットMAC出力を記憶することが、前記複数のシングルビットMAC出力の前記加重平均を記憶することを備える
ように構成される、加算することと、
前記複数のシングルビットMAC出力の前記加重平均をアナログデジタルコンバータにアナログ電圧として出力することであって、前記アナログ加算器が、マルチビットMAC出力を出力することが、前記複数のシングルビットMAC出力の前記加重平均を出力することと、を備えるように構成される、出力することと
を行うように構成される、請求項1に記載のマルチビットMAC。
【請求項4】
前記アナログ加算器がさらに、
複数の指定されたキャパシタを備え、前記複数の指定されたキャパシタの第1の指定されたキャパシタが、前記第1のシングルビットMACスイッチと前記第1の加算器キャパシタとの間に電気的に接続され、前記第1の指定されたキャパシタが2rというキャパシタ定格を有し、rが、前記第1のシングルビットMAC出力を生み出す際に使用される活性化値のビットと乗じられるビットの重み値における位置であり、前記第1の指定されたキャパシタが、
前記第1のシングルビットMAC出力を受け取ることと、
前記第1のシングルビットMAC出力を重み付けることと、
前記重み付けられた第1のシングルビットMAC出力を出力することであって、前記演算増幅器がさらに、
前記複数のシングルビットMAC出力を受け取ることが、前記重み付けられた第1のシングルビットMAC出力を受け取ることを備える
ように構成される、出力することと
を行うように構成され、
前記複数のシングルビットMAC出力を加算することが、前記重み付けられた第1のシングルビットMAC出力を加算することを備える、請求項3に記載のマルチビットMAC。
【請求項5】
複数のシングルビットMACスイッチをさらに備え、前記複数のシングルビットMACスイッチの第1のシングルビットMACスイッチが、制御デバイスによって制御されるように、前記複数のシングルビットMACの第1のシングルビットMACと前記第1の加算器キャパシタを選択的かつ電気的に接続するように構成され、
前記アナログ加算器がさらに、
前記第1のシングルビットMACに関連する前記第1の加算器キャパシタを含む、複数の加算器キャパシタであって、前記第1の加算器キャパシタが2rというキャパシタ定格を有し、rが、前記第1のシングルビットMACによって前記第1のシングルビットMAC出力を生み出す際に使用される活性化値のビットと乗じられるビットの重み値における位置であり、
前記第1の加算器キャパシタが、複数のシングルビットMACから前記複数のシングルビットMAC出力を受け取ることが、前記第1のシングルビットMACスイッチが前記第1のシングルビットMACと前記第1の加算器キャパシタを選択的かつ電気的に接続したことに応答して、前記第1のシングルビットMACから前記複数のシングルビットMAC出力の第1のシングルビットMAC出力を受け取ることを備えるように構成され、
第1の加算器キャパシタがさらに、
前記第1のシングルビットMAC出力を重み付けることであって、前記アナログ加算器が、前記複数のシングルビットMAC出力を記憶することが、前記重み付けられた第1のシングルビットMAC出力を記憶することを備えるように、構成される、重み付けることと、
前記重み付けられた第1のシングルビットMAC出力を出力することと
を行うように構成される、複数の加算器キャパシタと、
前記第1の加算器キャパシタに関連する第1の加算器スイッチを含む、複数の加算器スイッチであって、前記第1の加算器スイッチが、
前記制御デバイスによって制御されるように、前記第1のシングルビットMACスイッチを介して前記第1の加算器キャパシタを前記第1のシングルビットMACに選択的かつ電気的に接続し、
前記制御デバイスによって制御されるように、前記複数の加算器キャパシタの第2の加算器キャパシタを電気伝導バスに選択的かつ電気的に接続する前記複数の加算器スイッチの第2の加算器スイッチが、前記第1の加算器キャパシタから前記重み付けられた第1のシングルビットMAC出力を出力し、前記重み付けられた第1のシングルビットMAC出力を含む、複数の重み付けられたシングルビットMAC出力の加重平均を生み出すのと同時に、前記第1の加算器キャパシタを前記電気伝導バスに選択的かつ電気的に接続する
ように構成される、複数の加算器スイッチとを備え、
前記アナログ加算器が、マルチビットMAC出力を出力することが、前記複数の重み付けられたシングルビットMAC出力の前記加重平均を出力することを備えるように構成される、請求項1に記載のマルチビットMAC。
【請求項6】
前記複数のシングルビットMACスイッチと前記複数の加算器スイッチとの間に電気的に接続されるバッファをさらに備える、請求項5に記載のマルチビットMAC。
【請求項7】
複数のシングルビットMACスイッチをさらに備え、前記複数のシングルビットMACスイッチの第1のシングルビットMACスイッチが、制御デバイスによって制御されるように、前記複数のシングルビットMACの第1のシングルビットMACと前記第1の加算器キャパシタを選択的かつ電気的に接続するように構成され、
前記第1の加算器キャパシタが、複数のシングルビットMACから前記複数のシングルビットMAC出力を受け取ることが、前記第1のシングルビットMACスイッチが前記第1のシングルビットMACと前記第1の加算器キャパシタを選択的かつ電気的に接続したことに応答して、前記第1のシングルビットMACから前記複数のシングルビットMAC出力の第1のシングルビットMAC出力を受け取ることを備えるように構成され、
前記アナログ加算器がさらに、
前記第1の加算器キャパシタに関連する前記複数の加算器スイッチの第1の加算器スイッチを含む、複数の加算器スイッチと、
第2の加算器キャパシタとを備え、前記第2の加算器キャパシタが、前記複数の加算器スイッチの第2の加算器スイッチに関連し、前記第1の加算器キャパシタおよび前記第2の加算器キャパシタが、同じキャパシタ定格を有し、
前記第1の加算器スイッチが、
前記制御デバイスによって制御されるように、前記複数のシングルビットMACスイッチを介して、前記第1の加算器キャパシタを前記複数のシングルビットMACに選択的かつ電気的に接続し、
前記制御デバイスによって制御されるように、前記第1の加算器キャパシタを電気伝導バスに選択的かつ電気的に接続する
ように構成され、
前記第2の加算器スイッチが、
前記第1の加算器キャパシタが前記制御デバイスによって制御されるように前記第1の加算器キャパシタと前記第2の加算器キャパシタとの間で前記複数のシングルビットMAC出力を共有するのと同時に、前記第2の加算器キャパシタを前記電気伝導バスに選択的かつ電気的に接続し、
前記共有される複数のシングルビットMAC出力を出力する前記第2の加算器キャパシタをアナログデジタルコンバータに選択的かつ電気的に接続する
ように構成され、
前記アナログ加算器が、マルチビットMAC出力を出力することが、前記共有される複数のシングルビットMAC出力を出力することを備えるように構成される、請求項1に記載のマルチビットMAC。
【請求項8】
前記アナログ加算器がさらに、前記複数のシングルビットMACスイッチと前記複数の加算器スイッチとの間に電気的に接続されるバッファを備える、請求項7に記載のマルチビットMAC。
【請求項9】
複数のシングルビットMACスイッチをさらに備え、前記複数のシングルビットMACスイッチの第1のシングルビットMACスイッチが、制御デバイスによって制御されるように、前記複数のシングルビットMACの第1のシングルビットMACと前記第1の加算器キャパシタを選択的かつ電気的に接続するように構成され、
前記第1の加算器キャパシタは、複数のシングルビットMACから前記複数のシングルビットMAC出力を受け取ることが、前記第1のシングルビットMACスイッチが前記第1のシングルビットMACと前記第1の加算器キャパシタを選択的かつ電気的に接続したことに応答して、前記第1のシングルビットMACから前記複数のシングルビットMAC出力の第1のシングルビットMAC出力を受け取ることを備えるように構成され、
前記アナログ加算器がさらに、
第2の加算器キャパシタであって、前記第1の加算器キャパシタおよび前記第2の加算器キャパシタが同じ定格容量を有する、第2の加算器キャパシタと、
前記第1の加算器キャパシタと前記第2の加算器キャパシタとの間で前記複数のシングルビットMAC出力を共有する、前記第1の加算器キャパシタと前記第2の加算器キャパシタを前記制御デバイスによって制御されるように選択的かつ電気的に接続するように構成される、加算器スイッチとを備え、
前記第2の加算器キャパシタが、前記共有される複数のシングルビットMAC出力をアナログデジタルコンバータに出力するように構成され、前記アナログ加算器が、マルチビットMAC出力を出力することが、前記共有される複数のシングルビットMAC出力を出力することを備えるように構成される、請求項1に記載のマルチビットMAC。
【請求項10】
マルチビット乗算および累算の方法であって、
複数のシングルビット積和演算器(MAC)から複数のシングルビットMAC出力を受け取り、
前記複数のシングルビットMAC出力を記憶する
ことによって、アナログ加算器の第1の加算器キャパシタによって複数のシングルビットMAC出力を加算するステップと、
前記アナログ加算器による前記記憶されている複数のシングルビットMAC出力の加算に基づいて、マルチビットMAC出力を出力するステップとを備える、方法。
【請求項11】
第1のマルチビット値の個々のビットおよび第2のマルチビット値の異なる単一のビットを逐次乗算するステップであって、前記第1のマルチビット値および前記第2のマルチビット値がデジタル電圧によって表される、ステップと、
前記複数のシングルビットMAC出力を生成するために前記乗算の結果を累算するステップであって、前記複数のシングルビットMAC出力がアナログ電圧である、ステップとをさらに備える、請求項10に記載の方法。
【請求項12】
第1のシングルビットMACスイッチによって、前記複数のシングルビットMACの第1のシングルビットMACと前記第1の加算器キャパシタを選択的かつ電気的に接続するステップであって、
複数のシングルビットMACから前記複数のシングルビットMAC出力を受け取ることが、前記第1のシングルビットMACと前記第1の加算器キャパシタを選択的かつ電気的に接続したことに応答して、前記第1のシングルビットMACから前記複数のシングルビットMAC出力の第1のシングルビットMAC出力を受け取ることを備える、
ステップと、
前記アナログ加算器の演算増幅器の入力端において前記複数のシングルビットMAC出力を受け取るステップと、
前記複数のシングルビットMAC出力の加重平均を生み出す前記複数のシングルビットMAC出力を加算するステップであって、
複数のシングルビットMAC出力を加算することが、前記複数のシングルビットMAC出力の前記加重平均を生み出す前記複数のシングルビットMAC出力を加算することを備え、
前記複数のシングルビットMAC出力を記憶することが、前記複数のシングルビットMAC出力の前記加重平均を記憶することを備える、
ステップと、
前記複数のシングルビットMAC出力の前記加重平均をアナログデジタルコンバータにアナログ電圧として出力するステップとをさらに備え、
マルチビットMAC出力を出力することが、前記複数のシングルビットMAC出力の前記加重平均を出力することを備える、請求項10に記載の方法。
【請求項13】
前記アナログ加算器の第1の指定されたキャパシタによって前記第1のシングルビットMAC出力を受け取るステップであって、前記第1の指定されたキャパシタが2rというキャパシタ定格を有し、rが、前記第1のシングルビットMAC出力を生み出す際に使用される活性化値のビットと乗じられるビットの重み値における位置である、ステップと、
前記第1の指定されたキャパシタによって前記第1のシングルビットMAC出力を重み付けるステップと、
前記第1の指定されたキャパシタによって前記重み付けられた第1のシングルビットMAC出力を出力するステップとをさらに備え、
前記複数のシングルビットMAC出力を受け取ることが、前記重み付けられた第1のシングルビットMAC出力を受け取ることを備え、
前記複数のシングルビットMAC出力を加算することが、前記重み付けられた第1のシングルビットMAC出力を加算することを備える、請求項12に記載の方法。
【請求項14】
第1のシングルビットMACスイッチによって、前記複数のシングルビットMACの第1のシングルビットMACと前記第1の加算器キャパシタを選択的かつ電気的に接続するステップであって、
複数のシングルビットMACから前記複数のシングルビットMAC出力を受け取ることが、前記第1のシングルビットMACと前記第1の加算器キャパシタを選択的かつ電気的に接続したことに応答して、前記第1のシングルビットMACから前記複数のシングルビットMAC出力の第1のシングルビットMAC出力を受け取ることを備える、
ステップと、
第1の加算器スイッチによって、前記第1のシングルビットMACスイッチを介して前記第1の加算器キャパシタを前記第1のシングルビットMACに選択的かつ電気的に接続するステップと、
前記第1の加算器キャパシタによって前記第1のシングルビットMAC出力を重み付けるステップであって、
前記第1の加算器キャパシタが2rというキャパシタ定格を有し、rが、前記第1のシングルビットMACによって前記第1のシングルビットMAC出力を生み出す際に使用される活性化値のビットと乗じられるビットの重み値における位置であり、
前記複数のシングルビットMAC出力を記憶することが、前記重み付けられた第1のシングルビットMAC出力を記憶することを備える、
ステップと、
前記第1の加算器キャパシタによって前記重み付けられた第1のシングルビットMAC出力を出力するステップと、
第2の加算器キャパシタを電気伝導バスに選択的かつ電気的に接続する第2の加算器スイッチが、前記第1の加算器キャパシタによって前記重み付けられた第1のシングルビットMAC出力を前記電気伝導バスに出力し、前記重み付けられた第1のシングルビットMAC出力を含む複数の重み付けられたシングルビットMAC出力の加重平均を生み出すのと同時に、前記第1の加算器キャパシタを前記電気伝導バスに選択的かつ電気的に接続するステップとをさらに備え、
マルチビットMAC出力を出力することが、前記複数の重み付けられたシングルビットMAC出力の前記加重平均を出力することを備える、請求項10に記載の方法。
【請求項15】
前記第1のシングルビットMACスイッチと前記第1の加算器スイッチとの間に電気的に接続されるバッファをさらに備える、請求項14に記載の方法。
【請求項16】
第1のシングルビットMACスイッチによって、前記複数のシングルビットMACの第1のシングルビットMACと前記第1の加算器キャパシタを選択的かつ電気的に接続するステップであって、
複数のシングルビットMACから前記複数のシングルビットMAC出力を受け取ることが、前記第1のシングルビットMACと前記第1の加算器キャパシタを選択的かつ電気的に接続したことに応答して、前記第1のシングルビットMACから前記複数のシングルビットMAC出力の第1のシングルビットMAC出力を受け取ることを備える、
ステップと、
前記アナログ加算器の第1の加算器スイッチによって、前記第1のシングルビットMACスイッチを含む、複数のシングルビットMACスイッチを介して前記第1の加算器キャパシタを前記複数のシングルビットMACに選択的かつ電気的に接続するステップと、
前記第1の加算器スイッチによって、前記第1の加算器キャパシタを電気伝導バスに選択的かつ電気的に接続するステップと、
前記第1の加算器キャパシタが第2の加算器スイッチによって前記第1の加算器キャパシタと第2の加算器キャパシタとの間で前記複数のシングルビットMAC出力を共有するのと同時に、前記第2の加算器キャパシタを前記電気伝導バスに選択的かつ電気的に接続するステップであって、前記第1の加算器キャパシタおよび前記第2の加算器キャパシタが同じ定格容量を有する、ステップと、
前記共有される複数のシングルビットMAC出力を出力する前記第2の加算器キャパシタをアナログデジタルコンバータに選択的かつ電気的に接続するステップとをさらに備え、
マルチビットMAC出力を出力することが、前記共有される複数のシングルビットMAC出力を出力することを備える、請求項10に記載の方法。
【請求項17】
前記複数のシングルビットMACスイッチと前記第1の加算器スイッチとの間に電気的に接続されるバッファをさらに備える、請求項16に記載の方法。
【請求項18】
第1のシングルビットMACスイッチによって、複数のシングルビットMACの第1のシングルビットMACと前記第1の加算器キャパシタを選択的かつ電気的に接続するステップであって、
複数のシングルビットMACから前記複数のシングルビットMAC出力を受け取ることが、前記第1のシングルビットMACと前記第1の加算器キャパシタを選択的かつ電気的に接続したことに応答して、前記第1のシングルビットMACから前記複数のシングルビットMAC出力の第1のシングルビットMAC出力を受け取ることを備える、
ステップと、
前記第1の加算器キャパシタと第2の加算器キャパシタとの間で前記複数のシングルビットMAC出力を共有する、前記第1の加算器キャパシタと前記第2の加算器キャパシタを加算器スイッチによって選択的かつ電気的に接続するステップであって、前記第1の加算器キャパシタおよび前記第2の加算器キャパシタが同じ定格容量を有する、ステップと、
前記共有される複数のシングルビットMAC出力を前記第2の加算器キャパシタからアナログデジタルコンバータに出力するステップとをさらに備え、
マルチビットMAC出力を出力することが、前記共有される複数のシングルビットMAC出力を出力することを備える、請求項10に記載の方法。
【請求項19】
アナログ加算器を備える、マルチビット積和演算器(MAC)であって、前記アナログ加算器が、
第1の加算器キャパシタを含む、複数の加算器キャパシタと、
制御デバイスによって制御されるように、複数のシングルビットMACの第1のシングルビットMACと前記第1の加算器キャパシタを選択的かつ電気的に接続するように構成される、第1のシングルビットMACスイッチを含む、複数のシングルビットMACスイッチとを有し、
前記第1の加算器キャパシタが、
前記第1のシングルビットMACスイッチが前記第1のシングルビットMACと前記第1の加算器キャパシタを選択的かつ電気的に接続することに応答して、前記第1のシングルビットMACから第1の複数のシングルビットMAC出力を受け取り、
第1の複数のシングルビットMAC出力を記憶する
ことによって、前記第1の複数のシングルビットMAC出力を加算するように構成され、
前記アナログ加算器が、前記記憶されている第1の複数のシングルビットMAC出力の加算に基づいて、マルチビットMAC出力を出力するように構成される、マルチビットMAC。
【請求項20】
前記複数の加算器キャパシタがさらに、第2の加算器キャパシタおよび第3の加算器キャパシタを備え、前記第2の加算器キャパシタおよび前記第3の加算器キャパシタのペアの合成定格容量が、前記第1の加算器キャパシタの定格容量と同じであり、
前記アナログ加算器がさらに、
前記第1の加算器キャパシタと前記第2の加算器キャパシタとの間で前記第1の複数のシングルビットMAC出力を共有する、前記第1の加算器キャパシタと前記第2の加算器キャパシタを前記制御デバイスによって制御されるように選択的かつ電気的に接続するように構成される、第1の加算器スイッチと、
前記第2の加算器キャパシタと前記第3の加算器キャパシタとの間で前記共有される第1の複数のシングルビットMAC出力を共有する、前記第2の加算器キャパシタと前記第3の加算器キャパシタを前記制御デバイスによって制御されるように選択的かつ電気的に接続するように構成される、第2の加算器スイッチであって、前記第3の加算器キャパシタが、前記共有される第1の複数のシングルビットMAC出力を重み付けるように構成される、第2の加算器スイッチと、
電気伝導バスを介して重み付けられた共有される第2の複数のシングルビットMAC出力をアナログデジタルコンバータに出力する前記複数の加算器キャパシタの別の第3の加算器キャパシタが、前記重み付けられた共有される第1の複数のシングルビットMAC出力および前記重み付けられた共有される第2の複数のシングルビットMAC出力を前記共有される複数のシングルビットMAC出力の加重平均へと組み合わせるのと同時に、前記重み付けられた共有される第1の複数のシングルビットMAC出力を前記アナログデジタルコンバータに出力する前記第3の加算器キャパシタを、前記制御デバイスによって制御されるように前記電気伝導バスを介して前記アナログデジタルコンバータに選択的かつ電気的に接続するように構成される、第3の加算器スイッチと
を含む、複数の加算器スイッチを備え、
前記アナログ加算器が、マルチビットMAC出力を出力することが、前記共有される複数のシングルビットMAC出力の前記加重平均を出力することを備えるように構成される、請求項19に記載のマルチビットMAC。
【請求項21】
前記複数の加算器キャパシタがさらに、第2の加算器キャパシタを備え、
前記アナログ加算器がさらに、
前記第1の加算器キャパシタと前記第2の加算器キャパシタとの間で前記第1の複数のシングルビットMAC出力を共有する、前記第1の加算器キャパシタと前記第2の加算器キャパシタを前記制御デバイスによって制御されるように選択的かつ電気的に接続するように構成される、第1の加算器スイッチと、
電気伝導バスを介して、前記制御デバイスによって制御されるように、前記第2の加算器キャパシタを別の第2の加算器キャパシタに選択的かつ電気的に接続するように構成される、第2の加算器スイッチと
を含む、複数の加算器スイッチを備える、請求項19に記載のマルチビットMAC。
【請求項22】
前記第1の加算器スイッチが、前記第1の加算器キャパシタと前記第2の加算器キャパシタとの間で前記第1の複数のシングルビットMAC出力を共有する、前記第1の加算器キャパシタと前記第2の加算器キャパシタを前記制御デバイスによって制御されるように選択的かつ電気的に接続することが、前記第1の加算器キャパシタおよび前記第2の加算器キャパシタの各々のために前記第1の複数のシングルビットMAC出力を半分に分けることを備えるように構成され、
前記アナログ加算器がさらに、前記第1の複数のシングルビットMAC出力の前記半分の前記第1の加算器キャパシタをクリアするように構成され、
前記第1の加算器スイッチがさらに、前記第1の加算器キャパシタと前記第2の加算器キャパシタとの間で前記第1の複数のシングルビットMAC出力の前記半分を共有し、前記第1の加算器キャパシタと前記第2の加算器キャパシタの各々のために前記第1の複数のシングルビットMAC出力の前記半分を半分に分け、前記第1の複数のシングルビットMACの複数の4分の1を生み出す、前記第1の加算器キャパシタと前記第2の加算器キャパシタを前記制御デバイスによって制御されるように選択的かつ電気的に接続するように構成される、請求項21に記載のマルチビットMAC。
【請求項23】
前記複数の加算器スイッチがさらに、別の第1の加算器スイッチを備え、前記別の第1の加算器スイッチが、前記制御デバイスによって制御されるように別の第1の加算器キャパシタと前記別の第2の加算器キャパシタを選択的かつ電気的に接続するように構成され、一方、前記第2の加算器スイッチが、前記第2の加算器キャパシタと前記別の第2の加算器キャパシタを選択的かつ電気的に接続する、請求項21に記載のマルチビットMAC。
【請求項24】
前記複数の加算器スイッチがさらに、別の第1の加算器スイッチを備え、前記別の第1の加算器スイッチが、前記制御デバイスによって制御されるように別の第1の加算器キャパシタと前記別の第2の加算器キャパシタを選択的かつ電気的に切断するように構成され、一方、前記第2の加算器スイッチが、前記第2の加算器キャパシタと前記別の第2の加算器キャパシタを選択的かつ電気的に接続する、請求項21に記載のマルチビットMAC。
【請求項25】
マルチビット乗算および累算の方法であって、
複数のシングルビット積和演算器(MAC)スイッチの第1のシングルビットMACスイッチによって、複数のシングルビットMACの第1のシングルビットMACおよび複数の加算器キャパシタの第1の加算器キャパシタを選択的かつ電気的に接続するステップと、
前記第1のシングルビットMACスイッチが前記第1のシングルビットMACと前記第1の加算器キャパシタを選択的かつ電気的に接続することに応答して、前記第1のシングルビットMACから第1の複数のシングルビットMAC出力を受け取り、
前記第1の複数のシングルビットMAC出力を記憶する
ことによって、前記第1の複数のシングルビットMAC出力を加算するステップと、
前記記憶されている第1の複数のシングルビットMAC出力の加算に基づいて、マルチビットMAC出力を出力するステップとを備える、方法。
【請求項26】
前記第1の加算器キャパシタと前記第2の加算器キャパシタとの間で前記第1の複数のシングルビットMAC出力を共有する、前記複数の加算器キャパシタの前記第1の加算器キャパシタと第2の加算器キャパシタを、複数の加算器スイッチの第1の加算器スイッチによって選択的かつ電気的に接続するステップと、
前記第2の加算器キャパシタと第3の加算器キャパシタとの間で前記共有される第1の複数のシングルビットMAC出力を共有する、前記複数の加算器キャパシタの前記第2の加算器キャパシタと前記第3の加算器キャパシタを、前記複数の加算器スイッチの第2の加算器スイッチによって選択的かつ電気的に接続するステップであって、前記第2の加算器キャパシタおよび前記第3の加算器キャパシタのペアの合成定格容量が、前記第1の加算器キャパシタの定格容量と同じである、ステップと、
前記第3の加算器キャパシタによって前記共有される第1の複数のシングルビットMAC出力を重み付けるステップと、
電気伝導バスを介して重み付けられた共有される第2の複数のシングルビットMAC出力をアナログデジタルコンバータに出力する前記複数の加算器キャパシタの別の第3の加算器キャパシタが、前記重み付けられた共有される第1の複数のシングルビットMAC出力および前記重み付けられた共有される第2の複数のシングルビットMAC出力を前記共有される複数のシングルビットMAC出力の加重平均へと組み合わせるのと同時に、前記重み付けられた共有される第1の複数のシングルビットMAC出力を前記アナログデジタルコンバータに出力する前記第3の加算器キャパシタを、前記複数の加算器スイッチの第3の加算器スイッチによって前記電気伝導バスを介して前記アナログデジタルコンバータに選択的かつ電気的に接続するステップとをさらに備え、
マルチビットMAC出力を出力することが、前記共有される複数のシングルビットMAC出力の前記加重平均を出力することを備える、請求項25に記載の方法。
【請求項27】
前記第1の加算器キャパシタと第2の加算器キャパシタとの間で前記第1の複数のシングルビットMAC出力を共有する、前記複数の加算器キャパシタの前記第1の加算器キャパシタと前記第2の加算器キャパシタを、複数の加算器スイッチの第1の加算器スイッチによって選択的かつ電気的に接続するステップと、
前記複数の加算器スイッチの第2の加算器スイッチによって、電気伝導バスを介して前記第2の加算器キャパシタを前記複数の加算器キャパシタの別の第2の加算器キャパシタに選択的かつ電気的に接続するステップとをさらに備える、請求項25に記載の方法。
【請求項28】
前記第1の加算器キャパシタと前記第2の加算器キャパシタとの間で前記第1の複数のシングルビットMAC出力を共有する、前記第1の加算器キャパシタと前記第2の加算器キャパシタを選択的かつ電気的に接続することが、前記第1の加算器キャパシタおよび前記第2の加算器キャパシタの各々のために前記第1の複数のシングルビットMAC出力を半分に分けることを備え、
前記方法がさらに、
前記第1の複数のシングルビットMAC出力の前記半分の前記第1の加算器キャパシタをクリアするステップと、
前記第1の加算器キャパシタと前記第2の加算器キャパシタとの間で前記第1の複数のシングルビットMAC出力の前記半分を共有し、前記第1の加算器キャパシタと前記第2の加算器キャパシタの各々のために前記第1の複数のシングルビットMAC出力の前記半分を半分に分け、前記第1の複数のシングルビットMACの複数の4分の1を生み出す、前記第1の加算器キャパシタと前記第2の加算器キャパシタを前記第1の加算器スイッチによって制御されるように選択的かつ電気的に接続するステップとを備える、請求項27に記載の方法。
【請求項29】
前記第2の加算器スイッチが前記第2の加算器キャパシタと前記別の第2の加算器キャパシタを選択的かつ電気的に接続しながら、前記複数の加算器スイッチの別の第1の加算器スイッチによって、前記複数の加算器キャパシタの別の第1の加算器キャパシタと前記別の第2の加算器キャパシタを選択的かつ電気的に接続するステップをさらに備える、請求項27に記載の方法。
【請求項30】
前記第2の加算器スイッチが前記第2の加算器キャパシタと前記別の第2の加算器キャパシタを選択的かつ電気的に接続しながら、前記複数の加算器スイッチの別の第1の加算器スイッチによって、前記複数の加算器キャパシタの別の第1の加算器キャパシタと前記別の第2の加算器キャパシタを選択的かつ電気的に切断するステップをさらに備える、請求項27に記載の方法。
【発明の詳細な説明】
【背景技術】
【0001】
ニューラルネットワークは、様々なコンピューティングデバイスにおいてますます使用されるようになっている。これらのニューラルネットワークの電力効率は、コンピューティングデバイスにおけるニューラルネットワークの実装形態の重要な側面である。ニューラルネットワークの実装形態におけるデジタル計算は、多くの用途では非効率であることがわかっている。アナログニューラルネットワークが、より電力効率の高い代替物として実装される。しかしながら、アナログバイナリニューラルネットワークに対しては性能の向上が示されているが、アナログマルチビットニューラルネットワークには、アナログ計算を実行するときの計算性能のボトルネックがあり、可変ビット幅入力を使用した計算に対して柔軟性がない。
【発明の概要】
【課題を解決するための手段】
【0002】
様々な開示される実施形態は、マルチビット乗算および累算のための装置と方法を含み得る。実施形態は、第1の加算器キャパシタを有するアナログ加算器を有するマルチビット積和演算器(MAC)を含み、第1の加算器キャパシタは、複数のシングルビットMACから複数のシングルビットMAC出力を受け取り、複数のシングルビットMAC出力を記憶することによって、複数のシングルビットMAC出力を加算するように構成され、アナログ加算器は、記憶されている複数のシングルビットMAC出力の加算に基づいて、マルチビットMAC出力を出力するように構成される。
【0003】
いくつかの実施形態では、複数のシングルビットMACは各々、第1のマルチビット値の個々のビットおよび第2のマルチビット値の異なるシングルビットを逐次乗算し、第1のマルチビット値および第2のマルチビット値がデジタル電圧によって表され、複数のシングルビットMAC出力を生成するために乗算の結果を累算し、複数のシングルビットMAC出力がアナログ電圧である、ように構成される。
【0004】
いくつかの実施形態はさらに、複数のシングルビットMACスイッチを含んでもよく、複数のシングルビットMACスイッチの第1のシングルビットMACスイッチは、制御デバイスによって制御されるように、複数のシングルビットMACの第1のシングルビットMACと第1の加算器キャパシタを選択的かつ電気的に接続するように構成される。いくつかの実施形態では、第1の加算器キャパシタは、複数のシングルビットMACから複数のシングルビットMAC出力を受け取ることが、第1のシングルビットMACスイッチが第1のシングルビットMACと第1の加算器キャパシタを選択的かつ電気的に接続したことに応答して、第1のシングルビットMACから複数のシングルビットMAC出力の第1のシングルビットMAC出力を受け取ることを備えるように構成され、アナログ加算器は、入力端および出力端を有する演算増幅器を備え、第1の加算器キャパシタは、入力端と出力端との間に電気的に接続され、演算増幅器は、入力端において複数のシングルビットMAC出力を受け取り、複数のシングルビットMAC出力の加重平均を生み出す複数のシングルビットMAC出力を加算し、複数のシングルビットMAC出力の加重平均をアナログデジタルコンバータへのアナログ電圧として出力するように構成される。いくつかの実施形態では、アナログ加算器は、複数のシングルビットMAC出力を加算することが、複数のシングルビットMAC出力の加重平均を生み出す複数のシングルビットMAC出力を加算することを備え、複数のシングルビットMAC出力を記憶することが、複数のシングルビットMAC出力の加重平均を記憶することを備えるように、構成される。いくつかの実施形態では、アナログ加算器は、マルチビットMAC出力を出力することが、複数のシングルビットMAC出力の加重平均を出力することを備えるように構成される。
【0005】
いくつかの実施形態では、アナログ加算器は複数の指定されたキャパシタを備え、複数の指定されたキャパシタの第1の指定されたキャパシタは、第1のシングルビットMACスイッチと第1の加算器キャパシタとの間に電気的に接続され、第1の指定されたキャパシタは2rというキャパシタ定格を有し、rは、第1のシングルビットMAC出力を生み出す際に使用される活性化値のビットと乗じられるビットの重み値における位置であり、第1の指定されたキャパシタは、第1のシングルビットMAC出力を受け取り、第1のシングルビットMAC出力を重み付け、重み付けられた第1のシングルビットMAC出力を出力するように構成される。いくつかの実施形態では、演算増幅器は、複数のシングルビットMAC出力を受け取ることが、重み付けられた第1のシングルビットMAC出力を受け取ることを備え、複数のシングルビットMAC出力を加算することが、重み付けられた第1のシングルビットMAC出力を加算することを備えるように、構成される。
【0006】
いくつかの実装形態はさらに、複数のシングルビットMACスイッチを含んでもよく、複数のシングルビットMACスイッチの第1のシングルビットMACスイッチは、制御デバイスによって制御されるように、複数のシングルビットMACの第1のシングルビットMACと第1の加算器キャパシタを選択的かつ電気的に接続するように構成される。いくつかの実施形態では、第1の加算器キャパシタは、複数のシングルビットMACから複数のシングルビットMAC出力を受け取ることが、第1のシングルビットMACスイッチが第1のシングルビットMACと第1の加算器キャパシタを選択的かつ電気的に接続したことに応答して、第1のシングルビットMACから複数のシングルビットMAC出力の第1のシングルビットMAC出力を受け取ることを備えるように構成され、アナログ加算器はさらに、第1のシングルビットMACに関連する第1の加算器キャパシタを含む、複数の加算器キャパシタを備え、第1の加算器キャパシタは2rというキャパシタ定格を有し、rは、第1のシングルビットMACによって第1のシングルビットMAC出力を生み出す際に使用される活性化値のビットと乗じられるビットの重み値における位置である。いくつかの実施形態では、第1の加算器キャパシタは、第1のシングルビットMAC出力を重み付けることであって、アナログ加算器が、複数のシングルビットMAC出力を記憶することが、重み付けられた第1のシングルビットMAC出力を記憶することを備えるように構成される、重み付けることと、重み付けられた第1のシングルビットMAC出力を出力することとを行うように構成される。いくつかの実施形態では、アナログ加算器は、第1のキャパシタに関連する第1の加算器スイッチを含む複数の加算器スイッチを備え、第1の加算器スイッチは、制御デバイスによって制御されるように、第1のシングルビットMACスイッチを介して第1の加算器キャパシタを第1のシングルビットMACに選択的かつ電気的に接続することと、制御デバイスによって制御されるように、複数の加算器キャパシタの第2の加算器キャパシタを電気伝導バスに選択的かつ電気的に接続する複数の加算器スイッチの第2の加算器スイッチが、第1の加算器キャパシタから重み付けられた第1のシングルビットMAC出力を出力し、重み付けられた第1のシングルビットMAC出力を含む、複数の重み付けられたシングルビットMAC出力の加重平均を生み出すのと同時に、第1の加算器キャパシタを電気伝導バスに選択的かつ電気的に接続することとを行うように構成される。いくつかの実施形態では、アナログ加算器は、マルチビットMAC出力を出力することが、複数の重み付けられたシングルビットMAC出力の加重平均を出力することを備えるように構成される。
【0007】
いくつかの実施形態はさらに、複数のシングルビットMACスイッチと複数の加算器スイッチとの間に電気的に接続されるバッファを備える。
【0008】
いくつかの実施形態はさらに、複数のシングルビットMACスイッチを含んでもよく、複数のシングルビットMACスイッチの第1のシングルビットMACスイッチは、制御デバイスによって制御されるように、複数のシングルビットMACの第1のシングルビットMACと第1の加算器キャパシタを選択的かつ電気的に接続するように構成される。いくつかの実施形態では、第1の加算器キャパシタは、複数のシングルビットMACから複数のシングルビットMAC出力を受け取ることが、第1のシングルビットMACスイッチが第1のシングルビットMACと第1の加算器キャパシタを選択的かつ電気的に接続したことに応答して、第1のシングルビットMACから複数のシングルビットMAC出力の第1のシングルビットMAC出力を受け取ることを備えるように構成され、アナログ加算器は、第1の加算器キャパシタに関連する複数の加算器スイッチの第1の加算器スイッチを含む、複数の加算器スイッチと、第2の加算器キャパシタとを備え、第2の加算器キャパシタは、複数の加算器スイッチの第2の加算器スイッチに関連し、第1の加算器キャパシタおよび第2の加算器キャパシタは、同じ定格容量を有する。いくつかの実施形態では、第1の加算器スイッチは、制御デバイスによって制御されるように、複数のシングルビットMACスイッチを介して、第1の加算器キャパシタを複数のシングルビットMACに選択的かつ電気的に接続し、制御デバイスによって制御されるように、第1の加算器キャパシタを電気伝導バスに選択的かつ電気的に接続するように構成される。いくつかの実施形態では、第2の加算器スイッチは、第1の加算器キャパシタが制御デバイスによって制御されるように第1の加算器キャパシタと第2の加算器キャパシタとの間で複数のシングルビットMAC出力を共有するのと同時に、第2の加算器キャパシタを電気伝導バスに選択的かつ電気的に接続し、共有される複数のシングルビットMAC出力を出力する第2の加算器キャパシタをアナログデジタルコンバータに選択的かつ電気的に接続するように構成される。いくつかの実施形態では、アナログ加算器は、マルチビットMAC出力を出力することが、共有される複数のシングルビットMAC出力を出力することを備えるように構成される。
【0009】
いくつかの実施形態では、アナログ加算器は、複数のシングルビットMACスイッチと複数の加算器スイッチとの間に電気的に接続されるバッファを備える。
【0010】
いくつかの実施形態はさらに、複数のシングルビットMACスイッチを含んでもよく、複数のシングルビットMACスイッチの第1のシングルビットMACスイッチは、制御デバイスによって制御されるように、複数のシングルビットMACの第1のシングルビットMACと第1の加算器キャパシタを選択的かつ電気的に接続するように構成される。いくつかの実施形態では、第1の加算器キャパシタは、複数のシングルビットMACから複数のシングルビットMAC出力を受け取ることが、第1のシングルビットMACスイッチが第1のシングルビットMACと第1の加算器キャパシタを選択的かつ電気的に接続したことに応答して、第1のシングルビットMACから複数のシングルビットMAC出力の第1のシングルビットMAC出力を受け取ることを備えるように構成され、アナログ加算器は、第2の加算器キャパシタであって、第1の加算器キャパシタおよび第2の加算器キャパシタが同じ定格容量を有する、第2の加算器キャパシタと、第1の加算器キャパシタと第2の加算器キャパシタとの間で複数のシングルビットMAC出力を共有する、第1の加算器キャパシタと第2の加算器キャパシタを制御デバイスによって制御されるように選択的かつ電気的に接続するように構成される、加算器スイッチとを備え、第2の加算器キャパシタは、共有される複数のシングルビットMAC出力をアナログデジタルコンバータに出力するように構成される。いくつかの実施形態では、アナログ加算器は、マルチビットMAC出力を出力することが、共有される複数のシングルビットMAC出力を出力することを備えるように構成される。
【0011】
いくつかの実施形態は、第1の加算器キャパシタを含む複数の加算器キャパシタと、制御デバイスによって制御されるように、複数のシングルビットMACの第1のシングルビットMACと第1の加算器キャパシタを選択的かつ電気的に接続するように構成される第1のシングルビットMACスイッチを含む複数のシングルビットMACスイッチとを有する、アナログ加算器を備えるマルチビットMACを含み、第1の加算器キャパシタは、第1のシングルビットMACスイッチが第1のシングルビットMACと第1の加算器キャパシタを選択的かつ電気的に接続したことに応答して、第1のシングルビットMACから第1の複数のシングルビットMAC出力を受け取ることによって、および第1の複数のシングルビットMAC出力を記憶することによって、第1の複数のシングルビットMAC出力を加算するように構成され、アナログ加算器は、記憶されている第1の複数のシングルビットMAC出力の加算に基づいてマルチビットMAC出力を出力するように構成される。
【0012】
いくつかの実施形態では、複数の加算器キャパシタは、第2の加算器キャパシタおよび第3の加算器キャパシタを備え、第2の加算器キャパシタおよび第3の加算器キャパシタのペアの合成定格容量は第1の加算器キャパシタの定格容量と同じであり、アナログ加算器はさらに、第1の加算器キャパシタと第2の加算器キャパシタとの間で第1の複数のシングルビットMAC出力を共有する、第1の加算器キャパシタと第2の加算器キャパシタを制御デバイスによって制御されるように選択的かつ電気的に接続するように構成される、第1の加算器スイッチと、第2の加算器キャパシタと第3の加算器キャパシタとの間で共有される第1の複数のシングルビットMAC出力を共有する、第2の加算器キャパシタと第3の加算器キャパシタを制御デバイスによって制御されるように選択的かつ電気的に接続するように構成される、第2の加算器スイッチであって、第3の加算器キャパシタが、共有される第1の複数のシングルビットMAC出力を重み付けるように構成される、第2の加算器スイッチと、電気伝導バスを介して重み付けられた共有される第2の複数のシングルビットMAC出力をアナログデジタルコンバータに出力する複数の加算器キャパシタの別の第3の加算器キャパシタが、重み付けられた共有される第1の複数のシングルビットMAC出力および重み付けられた共有される第2の複数のシングルビットMAC出力を共有される複数のシングルビットMAC出力の加重平均へと組み合わせるのと同時に、重み付けられた共有される第1の複数のシングルビットMAC出力をアナログデジタルコンバータに出力する第3の加算器キャパシタを、制御デバイスによって制御されるように電気伝導バスを介してアナログデジタルコンバータに選択的かつ電気的に接続するように構成される、第3の加算器スイッチとを含む、複数の加算器スイッチを備える。いくつかの実施形態では、アナログ加算器は、マルチビットMAC出力を出力することが、共有される複数のシングルビットMAC出力の加重平均を出力することを含むように構成される。
【0013】
いくつかの実施形態では、複数の加算器キャパシタはさらに、第2の加算器キャパシタを備え、アナログ加算器はさらに、第1の加算器キャパシタと第2の加算器キャパシタとの間で第1の複数のシングルビットMAC出力を共有する、第1の加算器キャパシタと第2の加算器キャパシタを制御デバイスによって制御されるように選択的かつ電気的に接続するように構成される、第1の加算器スイッチと、電気伝導バスを介して、制御デバイスによって制御されるように第2の加算器キャパシタを別の第2の加算器キャパシタに選択的かつ電気的に接続するように構成される、第2の加算器スイッチとを含む、複数の加算器スイッチを備える。
【0014】
いくつかの実施形態では、第1の加算器スイッチは、第1の加算器キャパシタと第2の加算器キャパシタとの間で第1の複数のシングルビットMAC出力を共有する、第1の加算器キャパシタと第2の加算器キャパシタを制御デバイスによって制御されるように選択的かつ電気的に接続することが、第1の加算器キャパシタおよび第2の加算器キャパシタの各々のために第1の複数のシングルビットMAC出力を半分に分けることを備えるように構成され、アナログ加算器は、第1の複数のシングルビットMAC出力の半分の第1の加算器キャパシタをクリアするように構成され、第1の加算器スイッチは、第1の加算器キャパシタと第2の加算器キャパシタとの間で第1の複数のシングルビットMAC出力の半分を共有し、第1の加算器キャパシタと第2の加算器キャパシタの各々のために第1の複数のシングルビットMAC出力の半分を半分に分け、第1の複数のシングルビットMACの複数の4分の1を生み出す、第1の加算器キャパシタと第2の加算器キャパシタを制御デバイスによって制御されるように選択的かつ電気的に接続するように構成される。
【0015】
いくつかの実施形態では、複数の加算器スイッチは別の第1の加算器スイッチを備え、別の第1の加算器スイッチは、制御デバイスによって制御されるように別の第1の加算器キャパシタと別の第2の加算器キャパシタを選択的かつ電気的に接続するように構成され、一方、第2の加算器スイッチは、第2の加算器キャパシタと別の第2の加算器キャパシタを選択的かつ電気的に接続する。
【0016】
いくつかの実施形態では、複数の加算器スイッチは別の第1の加算器スイッチを備え、別の第1の加算器スイッチは、制御デバイスによって制御されるように別の第1の加算器キャパシタと別の第2の加算器キャパシタを選択的かつ電気的に切断するように構成され、一方、第2の加算器スイッチは、第2の加算器キャパシタと別の第2の加算器キャパシタを選択的かつ電気的に接続する。
【0017】
さらなる実施形態は、上で要約されたデバイス機能の動作を実行する方法を含む。さらなる態様は、上で要約されたデバイス機能のいずれかの機能を実行するための手段を有するマルチビットMACを含む。
【0018】
本明細書に組み込まれ、本明細書の一部を構成する添付の図面は、様々な実施形態の例示的な態様を示し、上で与えられた一般的な説明および以下で与えられる発明を実施するための形態とともに、特許請求の範囲の特徴を説明するのに役立つ。
【図面の簡単な説明】
【0019】
図1】様々な実施形態を実装するのに適した例示的なコンピューティングデバイスを示すコンポーネントブロック図である。
図2】様々な実施形態を実装するのに適したコンピュートインメモリ(CIM)および/またはニアメモリコンピュート(NMC)アレイを使用してマルチビット積和演算器(「MAC」)を実装するように構成される例示的なメモリデバイスを示すコンポーネントブロック図である。
図3】様々な実施形態を実装するのに適した能動積分器ベースの熱重み(thermal weight)を使用する例示的なマルチビットMACを示す回路図である。
図4】様々な実施形態を実装するのに適した能動積分器ベースのハードワイヤードバイナリ重み(hardwired binary weight)を使用する例示的なマルチビットMACを示す回路ブロック図である。
図5】様々な実施形態を実装するのに適した、負荷としてバイナリ容量性デジタルアナログコンバータ(DAC)を使用する例示的なマルチビットMACを示す回路ブロック図である。
図6】様々な実施形態を実装するのに適した、負荷として逐次バイナリ累算器を使用する例示的なマルチビットMACを示す回路図である。
図7】様々な実施形態を実装するのに適した、負荷として逐次バイナリ累算器を使用する例示的なマルチビットMACを示す回路図である。
図8】様々な実施形態を実装するのに適した、負荷として逐次バイナリ累算器を使用する例示的なマルチビットMACのシグナルフローを示すタイミング図である。
図9】様々な実施形態を実装するのに適したマルチビット活性化値およびマルチビット重み値のための例示的なシングルビットMAC出力加算器を示す回路図である。
図10】様々な実施形態を実装するのに適したマルチビット活性化値およびマルチビット重み値のための例示的なシングルビットMAC出力加算器を示す回路図である。
図11】ある実施形態によるマルチビットMACの制御のための方法を示すプロセスフロー図である。
図12】様々な態様とともに使用するのに適した例示的なモバイルコンピューティングデバイスを示すコンポーネントブロック図である。
図13】様々な態様とともに使用するのに適した例示的なモバイルコンピューティングデバイスを示すコンポーネントブロック図である。
図14】様々な態様とともに使用するのに適した例示的なサーバを示すコンポーネントブロック図である。
【発明を実施するための形態】
【0020】
添付の図面を参照して、様々な態様が詳細に説明される。可能な場合はいつでも、同じまたは同様の部分を指すために、図面全体にわたって同じ参照番号が使用される。特定の例および実装形態に対してなされる言及は、例示を目的としており、特許請求の範囲を限定するものではない。
【0021】
様々な態様は、再構成可能なアナログベースのニューラルネットワークにおける積和演算器(「MAC」)アレイのためのアナログ加算器を実装するためのデバイス、およびそのようなデバイスを操作する方法を含み得る。いくつかの実施形態は、アナログMACアレイのためのアナログ信号のスイッチトキャパシティブ(switched capacitive)累算を含み得る。いくつかの実施形態は、アナログMACアレイのための重み付けられた活性化ビットのアナログ信号の逐次累算を含み得る。いくつかの実施形態は、アナログMACアレイのための可変ビット幅累算のためのフレキシブルアナログ加算器を含み得る。いくつかの実施形態は、シングルビットMAC演算結果の入力からマルチビットMAC演算を達成するために、容量性電荷共有を使用したアナログ加算器を異なる組合せで含み得る。
【0022】
「積和演算器」および「MAC」という用語は、任意の数のビットおよびビットの組合せの乗算と累算の機能を実装または模擬するように構成されるコンピューティングデバイスのコンポーネントを指すために、本明細書では交換可能に使用される。たとえば、シングルビットMACは、シングルビット乗算および累算の機能を実装または模擬し得る。別の例として、マルチビットMACは、マルチビット乗算および累算の機能を実装または模擬し得る。本明細書で使用される場合、MACは、少なくとも一部アナログ電圧領域において、乗算および累算の機能を実装または模擬し得る。
【0023】
「記憶する」、「充電する」、および「荷電する」という用語は、電圧がキャパシタによって受け取られて保持されることを指すために本明細書において交換可能に使用され、それは、アナログ値が、キャパシタを入力電圧に接続し、それによりキャパシタを充電することによって「記憶される」ことがあるからである。「出力する」、「共有する」、および「放電する」という用語は、キャパシタを出力線に接続することによりキャパシタを放電することを通じてキャパシタによりもたらされる電圧に関して、本明細書において交換可能に使用される。「累算する」、「加算する」、および「合計する」という用語は、キャパシタまたはキャパシタアレイに記憶された電圧に関して、本明細書において交換可能に使用される。
【0024】
「プロセッサ」、「プロセッサコア」、「コントローラ」、および「制御デバイス」という用語は、別様に述べられない限り、ソフトウェアで構成されるプロセッサ、ハードウェアで構成されるプロセッサ、汎用プロセッサ、専用プロセッサ、シングルコアプロセッサ、同種のマルチコアプロセッサ、異種のマルチコアプロセッサ、マルチコアプロセッサのコア、マイクロプロセッサ、中央処理装置(CPU)、グラフィクス処理装置(GPU)、デジタルシグナルプロセッサ(DSP)など、コントローラ、マイクロコントローラ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、他のプログラマブルロジックデバイス、ディスクリートゲートロジック、トランジスタロジックなどの、いずれか1つまたはすべてを指すために、本明細書において交換可能に使用される。プロセッサは集積回路であってもよく、これは、集積回路の部品がシリコンなどの単一の半導体材料上に存在するように構成され得る。
【0025】
「コンピューティングデバイス」および「モバイルコンピューティングデバイス」という用語は、携帯電話、スマートフォン、パーソナルまたはモバイルマルチメディアプレーヤ、携帯情報端末(PDA)、ラップトップコンピュータ、タブレットコンピュータ、コンバーチブルラップトップ/タブレット(2-in-1コンピュータ)、スマートブック、ウルトラブック、ネットブロック、パームトップコンピュータ、ワイヤレス電子メール受信機、マルチメディアインターネット対応携帯電話、モバイルゲームコンソール、ワイヤレスゲームコントローラ、ならびに、メモリおよびプログラマブルプロセッサを含む同様の個人向け電子デバイスのうちのいずれか1つまたはすべてを指すために本明細書において交換可能に使用される。「コンピューティングデバイス」という用語はさらに、パーソナルコンピュータを含む据置型コンピューティングデバイス、デスクトップコンピュータ、オールインワンコンピュータ、ワークステーション、スーパーコンピュータ、メインフレームコンピュータ、組込み型コンピュータ、サーバ、ホームシアターコンピュータ、およびゲームコンソールを指すことがある。
【0026】
コンピュートインメモリ(CIM)およびニアメモリコンピュート(NMC)システムが、ニューラルネットワークのためのデータの高速な処理のためにコンピューティングデバイスにおいて展開されている。CIMまたはNMCシステムは、行列乗算などの何らかの演算を実施するように改変された、スタティックランダムアクセスメモリ(SRAM)などのメモリデバイスを使用する。行列は、ニューラルネットワークのための活性化および重み行列であり得る。一部のCIMおよびNMCシステムはメモリセルを含んでもよく、それらの各々が、シングルビット値を記憶し、記憶されているシングルビット値と入力シングルビット値を乗じるように構成されてもよい。一部のCIMおよびNMCシステムはメモリセルを含んでもよく、それらの各々が、マルチビット値を記憶し、記憶されているマルチビット値と入力シングルビット値を乗じるように構成されてもよい。行列のCIMおよびNMC乗算は、1つ1つの演算のためにメモリに値をロードする動作を避けることによって、プロセッサベースの乗算と比較してエネルギーと時間を節約することができる。乗算の結果は、アナログデジタルコンバータに出力され、それにより累算され得る。CIMまたはNMCシステムとアナログデジタルコンバータの組合せは、アナログMACとして機能し得る。
【0027】
アナログMACは、シングルビット幅の活性化および重み値を使用するバイナリニューラルネットワークにおいて、見込みのある性能を示している。しかしながら、アナログMACは、アナログ計算を実行するときの計算性能のボトルネック、および可変ビット幅入力を使用した計算に対する柔軟性がないことにより、マルチビット幅の活性化および/または重み値に対しては非効率であることがわかっている。アナログMACアレイのためにスイッチトキャパシティブ累算を実施することは、ディープニューラルネットワークにより高い柔軟性と効率性をもたらし得る。
【0028】
本明細書において説明される実施形態は、スイッチトキャパシタを使用したスイッチトキャパシティブ累算を使用して実装され得るアナログ加算器を使用して、アナログ加算器の上記の問題を解決する。いくつかの実施形態では、アナログ加算器は、スイッチトキャパシタの任意の数の構成または構成の組合せを使用し得る。スイッチトキャパシタの様々な構成は、熱コード(thermal code)ベースの重みを使用した積分器キャパシタ、ハードワイヤードバイナリ重みを使用した積分器キャパシタ、バイナリデジタルアナログコンバータ(DAC)、および逐次バイナリ累算器として、スイッチトキャパシタを含み得る。アナログ加算器は、アナログMACアレイの出力の電圧表現のスイッチトキャパシティブ累算のために構成され得る。
【0029】
アナログMACアレイは、「m」個のシングルビットMACの出力を「p」個のキャパシタに電気的に接続することによって実装され得る。シングルビットMACの各々は、「n」個の活性化値ビットを「m」個の重み値ビットのうちの1つと乗じ、乗算の結果を累算し、乗算および累算の結果を電圧として出力し得る。いくつかの実施形態では、活性化値および重み値のうちの少なくとも1つは、マルチビット幅の値であり得る。活性化値の各ビットが重み値のビットと乗じられるように、乗算が実施され得る。活性化値は、最下位ビットから最上位ビットへ、ビットごとに逐次シングルビットMACに入力されてもよく、各シングルビットMACは、各入力ビットを重み値ビットと乗じてもよい。シングルビットMACは、乗算の結果を累算し得る。各シングルビットMACは、本明細書でシングルビットMAC出力と呼ばれる、各乗算および累算の結果を出力し得る。本明細書の様々な実施形態および例は、各シングルビットMACがマルチビット活性化値の複数のビットとマルチビット重み値のビットを乗じることにより生じる、シングルビットMAC出力に関して説明される。しかしながら、様々な実施形態および例はまた、各シングルビットMACがマルチビット活性化値のビットとマルチビット重み値の複数のビットを乗じることにより生じる、シングルビットMAC出力を使用して実施され得る。
【0030】
マルチビットMACは、シングルビットMACのアナログMACアレイを任意の数のアナログ加算器およびアナログ加算器の任意の組合せに電気的に接続することによって実装され得る。シングルビットMACは、キャパシタにスイッチを介して選択的かつ電気的に接続されてもよく、キャパシタは、シングルビットMACの電圧出力を加算することによってアナログ加算器として機能してもよい。リレーおよび/またはトランジスタなどのスイッチが、任意のタイプの電気的に制御されたスイッチを含み得る。スイッチは、シングルビットMAC出力がいつキャパシタに電気的に接続され得るかを制御し得る。たとえば、スイッチは、様々なシングルビットMACを逐次キャパシタに電気的に接続し得る。いくつかのスイッチは、閉じられると、シングルビットMACとキャパシタの特定の組合せを電気的に接続し得る。いくつかのスイッチは、閉じられると、マルチビットMAC出力と本明細書で呼ばれるアナログ加算器結果をADCに出力し得る。いくつかのスイッチは、閉じられるとキャパシタをリセットし得る。コントローラは、様々なスイッチを制御して、乗算、加算、および出力を遂行し得る。
【0031】
いくつかの実施形態では、アナログ加算器は、熱ベースの重みを使用する積分器キャパシタとしてスイッチトキャパシタを使用して実装され得る。シングルビットMACは各々、シングルビットMACスイッチを介して、演算増幅器と演算増幅器のフィードバック経路に電気的に接続されるキャパシタとを有するアナログ加算器に電気的に接続され得る。シングルビットMACスイッチは、シングルビットMAC出力が演算増幅器およびキャパシタに逐次出力され、それらにより受け取られ得るように、制御され得る。マルチビット活性化値について、シングルビットMACスイッチは、シングルビットMAC出力の各々が演算増幅器に2q回出力されてそれにより受け取られ得るように制御されてもよく、「q」は、q=0である最下位ビットからq=n-1である最上位ビットまでの活性化値ビットの位置であってもよい。同様に、マルチビット重み値について、シングルビットMACスイッチは、シングルビットMAC出力の各々が演算増幅器に2r回出力されてそれにより受け取られ得るように制御されてもよく、「r」は、r=0である最下位ビットからr=m-1である最上位ビットまでの重み値ビットの位置であってもよい。キャパシタは充電されることがあり、演算増幅器の利得および出力電圧は上昇することがある。演算増幅器の電圧出力は、キャパシタのインピーダンスにより重み付けられた演算増幅器への電圧入力の経時的な積分であってもよく、これは、シングルビットMAC出力のための加算演算として機能し得る。
【0032】
いくつかの実施形態では、アナログ加算器は、ハードワイヤードバイナリ重みを使用する積分器キャパシタとしてスイッチトキャパシタを使用して実装され得る。熱ベースの重みを使用する積分器キャパシタについて上で説明された回路に加えて、ハードワイヤードバイナリ重みを使用する積分器キャパシタは、シングルビットMACと、フィードバック経路に電気的に接続されるキャパシタをもつ演算増幅器との間に電気的に接続される、キャパシタを含み得る。シングルビットMACは、シングルビットMAC出力を重み付けるために、異なる定格容量をもつ指定されたキャパシタとペアにされ得る。
【0033】
いくつかの実施形態では、アナログ加算器は、バイナリDACとしてスイッチトキャパシタを使用して実装され得る。シングルビットMACは、アナログ加算器へのシングルビットMACスイッチを介して、「m」個のキャパシタに電気的に接続され得る。アナログ加算器は、シングルビットMAC出力を受け取るためのキャパシタを電気的に接続し得る、任意選択のバッファおよび累算器スイッチを含み得る。シングルビットMACスイッチおよび累算器スイッチは、シングルビットMACの出力が指定されたキャパシタに出力され、それにより受け取られ得るように、制御され得る。各キャパシタは、キャパシタのすべての平均出力を生成するために、シングルビットMAC出力の重み付けのための異なる定格容量をもっていてもよい。
【0034】
いくつかの実施形態では、アナログ加算器は、逐次バイナリ累算器として機能するようにスイッチトキャパシタを使用して構成され得る。シングルビットMACは、1つのシングルビットMACをキャパシタのペアに接続するように構成されるシングルビットMACスイッチを介して、キャパシタのペアに並列に電気的に接続され得る。任意選択で、バッファは、シングルビットMACスイッチとキャパシタのペアとの間に電気的に接続され得る。キャパシタのペアは、同じ定格容量をもつサンプラキャパシタおよび累算器キャパシタを含み得る。サンプラリセットスイッチは、サンプラキャパシタを放電またはリセットするために、サンプラキャパシタをグラウンドに電気的に接続するために閉じられ得る。シングルビットMACスイッチは、シングルビットMACをサンプラキャパシタに電気的に接続するために閉じられてもよく、シングルビットMAC出力でサンプラキャパシタを充電または荷電する。累算器スイッチは、サンプラキャパシタの電荷または荷電を共有することによって累算器キャパシタを充電または荷電するために閉じられてもよい。このスイッチ制御プロセスは、活性化値ビットと重み値ビットの乗算および累算のすべてがアナログ加算器に逐次出力されるまで繰り返され得る。
【0035】
いくつかの実施形態では、累算器キャパシタは、サンプラキャパシタと同じ合成定格容量をもつ、複数のキャパシタを含み得る。各シングルビットMACは、サンプラキャパシタと累算器キャパシタのペアに電気的に接続され得る。累算器キャパシタの各々のためのMACアレイスイッチの数は、累算器キャパシタをMAC出力へ並列に電気的に接続するように構成され得る。累算器キャパシタの各々のためのMACアレイスイッチは、累算器キャパシタの電荷または荷電をMAC出力へ並列に放電または出力するように制御され得る。この構成における累算器キャパシタの合成出力が、適切な重みを伴うMACアレイ出力の平均であり得る。
【0036】
図1は、様々な実施形態とともに使用するのに適したコンピューティングデバイス100を含むシステムを示す。コンピューティングデバイス100は、プロセッサ104をもつSoC102、メモリ106、通信インターフェース108、メモリインターフェース110、周辺デバイスインターフェース120、およびMACコントローラ124を含み得る。コンピューティングデバイス100はさらに、有線またはワイヤレスモデムなどの通信コンポーネント112、メモリ114、およびワイヤレス通信リンクを確立するためのアンテナ116、および/または周辺デバイス122を含み得る。プロセッサ104は、様々な処理デバイスのいずれか、たとえば、いくつかのプロセッサコアを含み得る。
【0037】
「システムオンチップ」または「SoC」という用語は、通常、限定はされないが、処理デバイス、メモリ、および通信インターフェースを含む相互接続された電子回路のセットを指すために本明細書において使用される。プロセッサ104は、汎用プロセッサ、中央処理装置(CPU)、デジタルシグナルプロセッサ(DSP)、グラフィックス処理装置(GPU)、アクセラレーテッドプロセッシングユニット(APU)、セキュア処理装置(SPU)、知的財産装置(IPU)、カメラサブシステムのためのイメージプロセッサまたはディスプレイのためのディスプレイプロセッサなどのコンピューティングデバイスの特定のコンポーネントのサブシステムプロセッサ、補助プロセッサ、周辺デバイスプロセッサ、シングルコアプロセッサ、マルチコアプロセッサ、コントローラ、および/またはマイクロコントローラなどの、様々な異なるタイプのプロセッサおよび/またはプロセッサコアを含み得る。処理デバイスはさらに、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、他のプログラマブル論理デバイス、ディスクリートゲートロジック、トランジスタロジック、性能監視ハードウェア、ウォッチドッグハードウェア、および/または時間基準などの、他のハードウェアおよびハードウェアの組合せを具現化し得る。集積回路は、集積回路のコンポーネントがシリコンなどの単一の半導体材料上に存在するように構成され得る。
【0038】
SoC102は、1つまたは複数のプロセッサ104を含み得る。コンピューティングデバイス100は、2つ以上のSoC102を含んでもよく、それによって、プロセッサ104およびプロセッサコアの数を増やす。コンピューティングデバイス100はまた、SoC102に関連しないプロセッサ104を含み得る。個々のプロセッサ104は、マルチコアプロセッサであり得る。プロセッサ104は各々、コンピューティングデバイス100の他のプロセッサ104と同じであっても異なっていてもよい特定の目的のために構成され得る。同じまたは異なる構成のプロセッサ104およびプロセッサコアのうちの1つまたは複数は、一緒にグループ化され得る。プロセッサ104またはプロセッサコアのグループは、マルチプロセッサクラスタと呼ばれることがある。
【0039】
SoC102のメモリ106は、プロセッサ104またはSoC102の他のコンポーネントによるアクセスのためにデータおよびプロセッサ実行可能コードを記憶するために構成された、揮発性または不揮発性のメモリであり得る。コンピューティングデバイス100および/またはSoC102は、様々な目的のために構成された1つまたは複数のメモリ106、114を含み得る。1つまたは複数のメモリ106は、ランダムアクセスメモリ(RAM)もしくはメインメモリ、またはキャッシュメモリなどの、揮発性メモリを含み得る。これらのメモリ106は、データセンサまたはサブシステムから受信される限られた量のデータ、不揮発性メモリから要求され、様々な因子に基づいて将来アクセスされることを予期して不揮発性メモリからメモリ106にロードされるデータおよび/もしくはプロセッサ実行可能コード命令、ならびに/またはプロセッサ104によって生成され、不揮発性メモリには記憶されずに将来迅速にアクセスできるように一時的に記憶される中間処理データおよび/もしくはプロセッサ実行可能コード命令を一時的に保持するように構成され得る。いくつかの実施形態では、任意の数のメモリ106およびメモリ106の組合せは、ワンタイムプログラマブルメモリまたは読み取り専用メモリを含み得る。
【0040】
メモリ106は、プロセッサ104またはSoC102の他のコンポーネントのうちの1つまたは複数によるアクセスのために、別のメモリ106またはメモリ114などの別のメモリデバイスからメモリ106にロードされるデータおよびプロセッサ実行可能コードを、少なくとも一時的に記憶するように構成され得る。メモリ106にロードされたデータまたはプロセッサ実行可能コードは、プロセッサ104またはSoC102の他のコンポーネントによる機能の実行に応答してロードされ得る。機能の実行に応答してデータまたはプロセッサ実行可能コードをメモリ106にロードすることは、要求されたデータまたはプロセッサ実行可能コードがメモリ106にないことが原因で不成功または「ミス」になる、メモリ106へのメモリアクセス要求から生じることがある。ミスに応答して、要求されたデータまたはプロセッサ実行可能コードを他のメモリ106またはメモリ114からメモリ106にロードするために、別のメモリ106またはメモリ114へのメモリアクセス要求が行われてもよい。機能の実行に応答してデータまたはプロセッサ実行可能コードをメモリ106にロードすることは、別のメモリ106またはメモリ114へのメモリアクセス要求から生じることがあり、データまたはプロセッサ実行可能コードは、後のアクセスのためにメモリ106にロードされてもよい。
【0041】
メモリインターフェース110およびメモリ114は、コンピューティングデバイス100が、揮発性記憶媒体および/または不揮発性記憶媒体にデータとプロセッサ実行可能コードを記憶し、揮発性記憶媒体および/または不揮発性記憶媒体からデータとプロセッサ実行可能コードを取り出すことを可能にするために、協働してもよい。メモリ114は、メモリ114がプロセッサ104またはSoC102の他のコンポーネントのうちの1つまたは複数によるアクセスのためにデータまたはプロセッサ実行可能コードを記憶し得るような、メモリ106の実施形態とほとんど同じように構成され得る。いくつかの実施形態では、不揮発性であるメモリ114は、コンピューティングデバイス100の電源が切断された後も情報を保持し得る。電源が再び投入され、コンピューティングデバイス100が再起動すると、メモリ114に記憶された情報がコンピューティングデバイス100にとって利用可能になり得る。いくつかの実施形態では、揮発性であるメモリ114は、コンピューティングデバイス100の電源が切断された後は情報を保持しないことがある。メモリインターフェース110は、メモリ114へのアクセスを制御し、プロセッサ104またはSoC12の他のコンポーネントがメモリ114からデータを読み取り、メモリ114にデータを書き込むことを可能にしてもよい。
【0042】
MACコントローラ124は、マルチビットMAC130として構成され得る任意の数のシングルビットMAC126とアナログ加算器128およびそれらの組合せを制御するように構成されてもよく、本明細書においてさらに説明されるようにシングルビットMAC126の出力を組み合わせてもよい。いくつかの実施形態では、MACコントローラ124は、本明細書においてさらに説明されるように、アナログ加算器128の任意の数のスイッチおよびスイッチの組合せの制御を介して、シングルビットMAC126をアナログ加算器128の任意の数のコンポーネントおよびコンポーネントの組合せに選択的かつ電気的に接続するように、任意の数のスイッチおよびスイッチの組合せを制御するように構成され得る。いくつかの実施形態では、MACコントローラ124は、プロセッサ104であってもよく、および/またはプロセッサ104の一体のコンポーネントであってもよい。いくつかの実施形態では、シングルビットMAC126および/またはアナログ加算器128は、メモリ106の一体のコンポーネントであってもよい。
【0043】
コンピューティングデバイス100および/またはSoC102のコンポーネントのいくつかまたはすべてが、それでも様々な実施形態の機能を果たしながら、異なるように配置され、かつ/または組み合わされてもよい。コンピューティングデバイス100は、コンポーネントの各々の1つに限定されなくてもよく、各コンポーネントの複数のインスタンスがコンピューティングデバイス100の様々な構成に含まれてもよい。
【0044】
図2は、様々な実施形態を実装するのに適したコンピュートインメモリ(CIM)および/またはニアメモリコンピュート(NMC)アレイを使用してマルチビットMACを実装するように構成される、例示的なメモリデバイス(たとえば、図1のメモリ106)を示す。マルチビットMAC200(たとえば、図1のマルチビットMAC130)は、任意の数のシングルビットMAC206(たとえば、図1のシングルビットMAC126)、逐次積分器208(たとえば、図1のアナログ加算器128)、マルチビット重み処理ユニット210、およびアナログデジタルコンバータ(ADC)212を含み得る。シングルビットMAC206は、デジタル領域からアナログ領域に信号を変換するように機能し得る。逐次積分器208およびマルチビット重み処理ユニット210は、アナログ領域における信号を使用し生成して機能し得る。ADC212は、アナログ領域からデジタル領域に信号を変換するように機能し得る。したがって、マルチビットMAC200は、少なくとも一部、アナログ領域において機能し得る。
【0045】
マルチビットMAC200は、「n」ビットの活性化値204a、204b、204cのビットと「m」ビットの重み値のビットを並列に乗じるためのコンポーネントを有する、メモリデバイスのCIMおよび/またはNMCセルのグリッドとして構成され得る。「n」ビットの活性化値204a、204b、204cおよび「m」ビットの重み値のビットは、CIMおよび/またはNMCセルへのデジタル電圧信号によって表され得る。CIMおよび/またはNMCセルの各々は、「n」ビットの活性化値204a、204b、204cのビットと「m」ビットの重み値のビットを乗じ得る。マルチビットMAC200は「m」ビットの重み値を受け取ってもよく、CIMおよび/またはNMCセルの各々は「m」ビットの重み値を記憶してもよい。たとえば、CIMおよび/またはNMCセルのグリッドの各行は複数の「m」ビットの重み値を記憶してもよく、各行は同じ複数の「m」ビットの重み値を記憶してもよい。マルチビットMAC200は、「n」ビットの活性化値204a、204b、204cの逐次入力202を受け取り得る。たとえば、活性化値204a、204b、204cは、CIMおよび/またはNMCセルのグリッドの行への入力であり得る。「n」ビットの活性化値204a、204b、204cのビットは、CIMおよび/またはNMCセルの各々に逐次入力され得る。たとえば、「n」ビットの活性化値204a、204b、204cは、最下位ビットから最上位ビットに、CIMおよび/またはNMCセルのグリッドの行のCIMおよび/またはNMCセルの各々に逐次入力され得る。CIMおよび/またはNMCセルに入力される「n」ビットの活性化値204a、204b、204cのあらゆるビットが、CIMおよび/またはNMCセルの各々に並列に入力され得る。たとえば、「n」ビットの活性化値204a、204b、204cの最下位ビットは、CIMおよび/またはNMCセルのグリッドのそれぞれの行のCIMおよび/またはNMCセルへ並列に入力され得る。いくつかの実施形態では、「n」ビットの活性化値204a、204b、204cは、CIMおよび/またはNMCセルに入力インターフェース(図示せず)から流され得る。いくつかの実施形態では、「n」ビットの活性化値204a、204b、204cおよび/または「m」ビットの重み値は、レジスタ、バッファ、キャッシュ、ランダムアクセスメモリ(RAM)などのメモリ(図示せず)からCIMおよび/またはNMCセルに提供され得る。CIMおよび/またはNMCセルは、「n」ビットの活性化値204a、204b、204cの逐次受け取られるビットの各々を記憶されている「m」ビットの重み値と乗じ得る。CIMおよび/またはNMCグリッドのセルによる乗算の出力は、アナログ電圧であり得る。CIMおよび/またはNMCグリッドの各セルは、CIMおよび/またはNMCグリッドのセルによる乗算の出力を累算するように構成される、任意の数のキャパシタなどの電圧累算器(図示せず)およびその組合せに電気的に接続され得る。
【0046】
CIMおよび/またはNMCグリッドのセルと電気的に接続される電圧累算器との組合せは、シングルビットMAC206と本明細書では呼ばれることがある。シングルビットMAC206によって実行される乗算と累算から得られるシングルビットMAC出力は、シングルビットMAC206によって逐次積分器208に出力され得る。シングルビットMAC出力は、逐次積分器208へのアナログ電圧信号によって表され得る。
【0047】
逐次積分器208は、シングルビットMAC206のシングルビットMAC出力を受け取ってもよく、加算または累算を通じてシングルビットMAC出力を組み合わせてもよい。様々な実施形態は、逐次積分器208を実装するために使用され得るアナログ加算器を含む。いくつかの実施形態では、各逐次積分器208は、単一のシングルビットMAC206からのシングルビットMAC出力を加算し得る。逐次積分器208によるシングルビットMAC出力の加算は、たとえば図3図10に関して本明細書においてさらに説明されるように、様々な方式で経時的に実施され得る。逐次積分器208によるシングルビットMAC出力の加算は、ビットごとの乗算と累算の結果を表すシングルビットMAC出力を、各ビットのビット位置に対応する適切な重みをもつアナログ電圧信号として、累算されたシングルビットMAC出力に変換し得る。逐次積分器208によるシングルビットMAC出力の加算から得られる、累算されたシングルビットMAC出力は、マルチビット重み処理ユニット210に逐次積分器208によって出力され得る。
【0048】
マルチビット重み処理ユニット210は、逐次積分器208から累算されたシングルビットMAC出力を受け取ってもよく、累算されたシングルビットMAC出力の重み付けられた加算を実行して、マルチビットMAC出力とも本明細書では呼ばれる累算されたシングルビットMAC出力のバイナリ加重平均電圧を生み出してもよい。バイナリ加重平均電圧は、「n」ビットの活性化値204a、204b、204cと「m」ビットの重み値の乗算を表す電圧であり得る。バイナリ加重平均電圧は、アナログ信号でもあり得る。バイナリ加重平均電圧は、マルチビット重み処理ユニット210によってADC212に出力されてもよく、ADC212は、バイナリ加重平均電圧をデジタル信号に変換してもよい。
【0049】
図3図7図9、および図10は、様々な実施形態を実装するのに適したマルチビットMACの例を示す。図3を参照して、および図1図2に関して、マルチビットMAC300、400、500、600、700、900、1000(たとえば、図1のマルチビットMAC130、図2のマルチビットMAC200)は、任意の数のシングルビットMAC206a、206b、206c、206d(たとえば、図1のシングルビットMAC126、図2のシングルビットMAC206)、シングルビットMACスイッチ304a、304b、304c、304d、電気伝導バス306、316、および/またはADC212(たとえば、図2のADC212)を有する電気回路であり得る。
【0050】
シングルビットMAC206a、206b、206c、206dの各々は、「m」ビットの重み値(W1、W2、W3、...、Wm)のビットを記憶し得る。各シングルビットMAC206a、206b、206c、206dは、「n」ビットの活性化値(A1、A2、...、An)(たとえば、図2の「n」ビットの活性化値204a、204b、204c)の逐次入力(たとえば、図2の逐次入力202)を受け取り得る。「n」ビットの活性化値の各ビットは、シングルビットMAC206a、206b、206c、206dの各々に逐次入力され得る。たとえば、「n」ビットの活性化値は、最下位ビットから最上位ビットへ、シングルビットMAC206a、206b、206c、206dの各々に逐次入力され得る。「n」ビットの活性化値の任意のビットが、シングルビットMAC206a、206b、206c、206dの各々に並列に入力され得る。「n」ビットの活性化値および「m」ビットの重み値のビットは、シングルビットMAC206a、206b、206c、206dへのデジタル電圧信号によって表され得る。いくつかの実施形態では、「n」ビットの活性化値は、入力インターフェース(図示せず)からシングルビットMAC206a、206b、206c、206dに流され得る。いくつかの実施形態では、「n」ビットの活性化値および/または「m」ビットの重み値は、レジスタ、バッファ、キャッシュ、RAMなどのメモリ(図示せず)から、シングルビットMAC206a、206b、206c、206dに提供され得る。シングルビットMAC206a、206b、206c、206dは、「n」ビットの活性化値の逐次受け取られたビットの各々と、「m」ビットの重み値の受け取られたおよび/または記憶されたビットを乗じ(A1、A2、...、An x W1; A1、A2、...、An x W2; A1、A2、...、An x W3; ...A1、A2、...、An x Wm)、乗算の結果を累算し得る。シングルビットMAC206a、206b、206c、206dによって実行される乗算と累算から得られるシングルビットMAC出力は、本明細書においてさらに説明されるように、マルチビットMAC300、400、500、600、700、900、1000のアナログ加算器(たとえば、図1および図2のアナログ加算器128、逐次積分器208、マルチビット重み処理ユニット210)にシングルビットMAC206a、206b、206c、206dによって出力され得る。シングルビットMAC出力は、マルチビットMAC300、400、500、600、700、900、1000のアナログ加算器へのアナログ電圧信号によって表され得る。
【0051】
シングルビットMAC206a、206b、206c、206dは、電気伝導バス306を介してアナログ加算器に電気的に接続され得る。任意の数のシングルビットMACスイッチ304a、304b、304c、304dが、電気伝導バス306を介してシングルビットMAC206a、206b、206c、206dをアナログ加算器に選択的かつ電気的に接続するように、MACコントローラ(たとえば、図1のプロセッサ104、MACコントローラ124)によって制御され得る。たとえば、各シングルビットMAC206a、206b、206c、206dは、指定されたシングルビットMACスイッチ304a、304b、304c、304dを介して、アナログ加算器に選択的かつ電気的に接続され得る。シングルビットMAC206a、206b、206c、206dをアナログ加算器に電気的に接続する電子回路を閉じるように指定されたシングルビットMACスイッチ304a、304b、304c、304dを制御することによって、シングルビットMAC206a、206b、206c、206dをアナログ加算器に選択的かつ電気的に接続することは、シングルビットMAC206a、206b、206c、206dによって生成されるシングルビットMAC出力をアナログ加算器に出力し得る。
【0052】
シングルビットMACスイッチ304a、304b、304c、304dは、シングルビットMAC出力が、アナログ加算器にシングルビットMAC206a、206b、206c、206dによって逐次出力され、アナログ加算器によって受け取られ得るように、制御され得る。たとえば、シングルビットMACスイッチ304a、304b、304c、304dは、「n」ビットの活性化値の最下位ビット(A1)と「m」ビットの重み値のビット(W1、W2、W3、...、Wm)の乗算および乗算結果の累算の後に、シングルビットMAC206a、206b、206c、206dを電気的に接続するように制御され得る。シングルビットMACスイッチ304a、304b、304c、304dはさらに、「n」ビットの活性化値の次の上位ビット(A2)と「m」ビットの重み値のビット(W1、W2、W3、...、Wm)の乗算および累算の後に、シングルビットMAC206a、206b、206c、206dを次々に電気的に接続するように制御され得る。シングルビットMACスイッチ304a、304b、304c、304dのそのような逐次制御は、「n」ビットの活性化値の最上位ビット(An)まで、「n」ビットの活性化値の次の上位ビットの連続する乗算と累算を続けてもよい。シングルビットMACスイッチ304a、304b、304c、304dはさらに、本明細書においてさらに説明されるように、「n」ビットの活性化値のより上位のビットおよび「m」ビットの重み値のビットの連続する乗算と累算の前に、「n」ビットの活性化値のビットと「m」ビットの重み値のビットの乗算と累算に続いて、シングルビットMAC206a、206b、206c、206dを繰り返し電気的に接続するように構成され得る。
【0053】
図3図7は、単一のアナログ加算器を各々有する、マルチビットMAC300、400、500、600、700の例示的な実施形態を示す。単一のアナログ加算器の例は、図および説明を簡単にすることが目的であり、限定することは意図されない。特許請求の範囲は単一のアナログ加算器に限定されず、マルチビットMAC300、400、500、600、700の他の実施形態が、複数のアナログ加算器を各々使用してもよい。そのような実施形態では、マルチビットMAC300、400、500、600、700の複数のアナログ加算器の出力が組み合わせられ得る。同様に、図9および図10は、単一のアナログ加算器を各々有する、マルチビットMAC900、1000の例示的な実施形態を示す。いくつかの実施形態では、図9および図10の例に示されるマルチビットMAC900、1000の単一のアナログ加算器は各々、複数のアナログ加算器を含み得る。
【0054】
図3は、様々な実施形態を実装するのに適した積分器ベースの熱重みを使用する例示的なマルチビットMACを示す。図1から図3を参照すると、マルチビットMAC300は、任意の数のアナログ加算器を含み得る。いくつかの実施形態では、アナログ加算器は、任意の数の演算増幅器312および積分器キャパシタ314(加算器キャパシタとも呼ばれる)を含み得る。いくつかの実施形態では、アナログ加算器はさらに、任意の数のクリアスイッチ308および/または電気的なグラウンド310とそれらの組合せを含み得る。アナログ加算器の積分器キャパシタ314は、演算増幅器312のフィードバック経路に電気的に接続され得る。積分器キャパシタ314および演算増幅器312の入力端は、電気伝導バス306および指定されたシングルビットMACスイッチ304a、304b、304c、304dを介して、シングルビットMAC206a、206b、206c、206dに選択的かつ電気的に接続され得る。積分器キャパシタ314および演算増幅器312の入力端は、クリアスイッチ308を介して電気的なグラウンド310に選択的かつ電気的に接続され得る。積分器キャパシタ314および演算増幅器312の出力端は、電気伝導バス316を介してADC212に電気的に接続され得る。
【0055】
アナログ加算器は、演算増幅器312の入力端および積分器キャパシタ314において、シングルビットMAC206a、206b、206c、206dからシングルビットMAC出力を受け取り得る。積分器キャパシタ314は、シングルビットMAC出力を記憶し、さらなるシングルビットMAC出力が受け取られるにつれて、シングルビットMAC出力の合計を記憶し得る。マルチビットの「n」ビットの活性化値について、シングルビットMACスイッチ304a、304b、304c、304dは、シングルビットMAC出力の各々が演算増幅器312および積分器キャパシタ314に2q回出力されてそれらにより受け取られ得るように制御されてもよく、「q」は、q=0である最下位ビットからq=n-1である最上位ビットまでの活性化値ビットの位置であってもよい。同様に、マルチビットの「m」ビットの重み値について、シングルビットMACスイッチ304a、304b、304c、304dは、シングルビットMAC出力の各々が演算増幅器312および積分器キャパシタ314に2r回出力されてそれらにより受け取られ得るように制御されてもよく、「r」は、r=0である最下位ビットからr=m-1である最上位ビットまでの重み値ビットの位置であってもよい。いくつかの実施形態では、シングルビットMAC出力のすべてを出力して受け取るのに、2q x 2r回のサイクルを要することがある。積分器キャパシタ314は充電されることがあり、演算増幅器312の利得および出力電圧は上昇することがある。マルチビットMAC出力とも本明細書で呼ばれる、演算増幅器312のアナログ電圧出力は、積分器キャパシタ314のインピーダンスにより重み付けられた演算増幅器312への電圧入力の経時的な積分であってもよく、これは、シングルビットMAC出力のための重み付けられた加算演算として機能し得る。演算増幅器312によって出力されるアナログ電圧は、電気伝導バス316を介してADC212に出力されてそれにより受け取られ、ADC212によってデジタル信号に変換され得る。
【0056】
「n」ビットの活性化値と「m」ビットの重み値のビットのすべての乗算と加算を完了した後、マルチビットMAC300はリセットまたはクリアされ得る。クリアスイッチ308は、演算増幅器312の入力端および積分器キャパシタ314を含む、アナログ加算器を電気的なグラウンド310に選択的かつ電気的に接続するように、MACコントローラ(たとえば、図1のプロセッサ104、MACコントローラ124)によって制御され得る。マルチビットMAC300のコンポーネントを電気的なグラウンド310に電気的に接続することは、「n」ビットの活性化値および/または「m」ビットの重み値の異なる組合せの次の乗算と加算がマルチビットMAC300によって実施され得るように、マルチビットMAC300の中のあらゆる残っている電圧を放電し得る。
【0057】
積分器ベースの熱重みを使用するマルチビットMAC300は、「n」ビットの活性化値と「m」ビットの重み値のビットのすべての乗算と加算を完了するのに2n x 2m回のサイクルを要することがある。マルチビットMAC300は、「n」ビットの活性化値と「m」ビットの重み値の少なくとも1つが低いダイナミックレンジを有するようなシナリオに適していることがある。マルチビットMAC300は、バイナリ重みマルチビット活性化とともに使用するのに特に有用であり得る。
【0058】
図4は、様々な実施形態を実装するのに適した積分器ベースのハードワイヤードバイナリ重みを使用する例示的なマルチビットMACを示す。図1から図4を参照すると、マルチビットMAC400は、任意の数のアナログ加算器を含み得る。いくつかの実施形態では、アナログ加算器は、任意の数の演算増幅器312、積分器キャパシタ314(加算器キャパシタとも呼ばれる)、および指定されるキャパシタ402a、402b、402c、402dを含み得る。いくつかの実施形態では、アナログ加算器はさらに、任意の数のクリアスイッチ308および/または電気的なグラウンド310とそれらの組合せを含み得る。アナログ加算器の指定されたキャパシタ402a、402b、402c、402dは、関連するシングルビットMACスイッチ304a、304b、304c、304dを介して、シングルビットMAC206a、206b、206c、206dに選択的かつ電気的に接続され得る。アナログ加算器の積分器キャパシタ314は、演算増幅器312のフィードバック経路に電気的に接続され得る。積分器キャパシタ314および演算増幅器312の入力端は、電気伝導バス306を介して、指定されたキャパシタ402a、402b、402c、402dに電気的に接続され得る。指定されたキャパシタ402a、402b、402c、402d、積分器キャパシタ314、および演算増幅器312の入力端は、クリアスイッチ308を介して電気的なグラウンド310に選択的かつ電気的に接続され得る。積分器キャパシタ314および演算増幅器312の出力端は、電気伝導バス316を介してADC212に電気的に接続され得る。
【0059】
アナログ加算器は、指定されたキャパシタ402a、402b、402c、402dにおいて、シングルビットMAC206a、206b、206c、206dからシングルビットMAC出力を受け取り得る。各々の指定されたキャパシタ402a、402b、402c、402dは、特定のシングルビットMAC206a、206b、206c、206dと関連付けられ、それらに選択的かつ電気的に接続され得る。指定されたキャパシタ402a、402b、402c、402dは、指定されたキャパシタ402a、402b、402c、402dの定格容量(「C」)と、特定のシングルビットMAC206a、206b、206c、206dと乗じられる最下位ビットから最上位ビットまでの範囲における「n」ビットの活性化値および/または「m」ビットの活性化値のビットの位置との関係に基づいて、特定のシングルビットMAC206a、206b、206c、206dと関連付けられ得る。マルチビットの「n」ビットの活性化値について、指定されたキャパシタ402a、402b、402c、402dは、2qCという定格容量をもっていてもよく、「q」は、q=0である最下位ビットからq=n-1である最上位ビットまでの活性化値ビットの位置であってもよい。同様に、マルチビットの「m」ビットの重み値について、指定されたキャパシタ402a、402b、402c、402dは、2rCという定格容量をもっていてもよく、「r」は、r=0である最下位ビットからr=m-1である最上位ビットまでの重み値ビットの位置であってもよい。いくつかの実施形態では、各々の指定されたキャパシタ402a、402b、402c、402dは、関連する特定のシングルビットMAC206a、206b、206c、206dのための適切な定格容量を有する単一のキャパシタであり得る。いくつかの実施形態では、各々の指定されたキャパシタ402a、402b、402c、402dは、関連する特定のシングルビットMAC206a、206b、206c、206dのための適切な定格容量を合成で有する、直列および/または並列に電気的に接続された複数のキャパシタであり得る。指定されたキャパシタ402a、402b、402c、402dの定格容量は、関連する特定のシングルビットMAC206a、206b、206c、206dから指定されたキャパシタ402a、402b、402c、402dによって受け取られるシングルビットMAC出力のためのハードワイヤードバイナリ重みとして機能し得る。
【0060】
指定されたキャパシタ402a、402b、402c、402dは、関連するシングルビットMACスイッチ304a、304b、304c、304dを介して関連するシングルビットMAC206a、206b、206c、206dに選択的かつ電気的に接続されるとき、関連するシングルビットMAC206a、206b、206c、206dからシングルビットMAC出力を受け取り、記憶し得る。指定されたキャパシタ402a、402b、402c、402dは、関連するシングルビットMAC206a、206b、206c、206dに選択的かつ電気的に接続されるとき、シングルビットMAC出力を受け取ることによって充電し得る。指定されたキャパシタ402a、402b、402c、402dは、関連するシングルビットMAC206a、206b、206c、206dから選択的かつ電気的に切断されるとき、指定されたキャパシタ402a、402b、402c、402dの定格容量に関連して重み付けられるシングルビットMAC出力を出力し、または放電し得る。
【0061】
重み付けられたシングルビットMAC出力は、演算増幅器312の入力端および積分器キャパシタ314において受け取られ得る。積分器キャパシタ314は、たとえば、重み付けられたシングルビットMAC出力の形式で、シングルビットMAC出力を記憶し、さらなるシングルビットMAC出力が受け取られるにつれてシングルビットMAC出力の合計を、たとえば、さらなる重み付けられたシングルビットMAC出力が受け取られるにつれて重み付けられたシングルビットMAC出力の合計の形式で記憶してもよい。積分器キャパシタ314は充電されることがあり、演算増幅器312の利得および出力電圧は上昇することがある。マルチビットMAC出力とも本明細書で呼ばれる、演算増幅器312のアナログ電圧出力は、積分器キャパシタ314のインピーダンスにより重み付けられた演算増幅器312への電圧入力の経時的な積分であってもよく、これは、シングルビットMAC出力のための重み付けられた加算演算として機能し得る。演算増幅器312によって出力されるアナログ電圧は、電気伝導バス316を介してADC212に出力されてそれにより受け取られ、ADC212によってデジタル信号に変換され得る。
【0062】
「n」ビットの活性化値と「m」ビットの重み値のビットのすべての乗算と加算を完了した後、マルチビットMAC400はリセットまたはクリアされ得る。クリアスイッチ308は、指定されたキャパシタ402a、402b、402c、402d、演算増幅器312の入力端、および積分器キャパシタ314を含むアナログ加算器を、電気的なグラウンド310に選択的かつ電気的に接続するように制御され得る。マルチビットMAC400のコンポーネントを電気的なグラウンド310に電気的に接続することは、「n」ビットの活性化値および/または「m」ビットの重み値の異なる組合せの次の乗算と加算がマルチビットMAC400によって実施され得るように、マルチビットMAC400の中のあらゆる残っている電圧を放電し得る。
【0063】
積分器ベースのハードワイヤードバイナリ重みを使用するマルチビットMAC400は、積分器ベースの熱重み関数を使用するマルチビットMAC(たとえば、図3のマルチビットMAC300)として同様に構成されてもよく、両方とも演算増幅器312を有する加算器を含み、積分器キャパシタ314が演算増幅器312のフィードバック経路に電気的に接続される。しかしながら、積分器ベースの熱重み関数を使用するマルチビットMACは、受け取られたシングルビットMAC出力を重み付けるために、演算増幅器312および積分器キャパシタ314に依存する。代替として、マルチビットMAC400は、演算増幅器312および積分器キャパシタ314が重み付けられたシングルビットMAC出力を受け取る前にシングルビットMAC出力を重み付けるために、指定されたハードワイヤードキャパシタ402a、402b、402c、402dの定格容量を使用する。したがって、マルチビットMAC400は、積分器ベースの熱重み関数を使用するマルチビットMACよりも迅速に、シングルビットMAC出力の累算を実行し得る。たとえば、逐次受け取られるシングルビットMAC出力から積分器キャパシタ314が充電するのを待たなければいけないのではなく、マルチビットMAC400は、指定されたキャパシタ402a、402b、402c、402dを並列に充電し、重み付けられたシングルビットMAC出力を演算増幅器312および積分器キャパシタ314に出力し得る。
【0064】
図5は、様々な実施形態を実装するのに適した、負荷としてバイナリDACを使用する例示的なマルチビットMACを示す。図1から図5を参照すると、マルチビットMAC500は、任意の数のアナログ加算器を含み得る。いくつかの実施形態では、アナログ加算器は、任意の数の加算器スイッチ504a、504b、504cおよび加算器キャパシタ506a、506b、506cを含み得る。いくつかの実施形態では、アナログ加算器はさらに、任意の数の任意選択のバッファ502を含み得る。いくつかの実施形態では、アナログ加算器はさらに、任意の数のクリアスイッチ308、電気的なグラウンド310、および/または指定された電気的なグラウンド508とそれらの組合せを含み得る。アナログ加算器の加算器キャパシタ506a、506b、506cは、関連するシングルビットMACスイッチ304a、304b、304c、304d、関連する加算器スイッチ504a、504b、504c、および電気伝導バス306を介して、シングルビットMAC206a、206b、206c、206dに選択的かつ電気的に接続され得る。加算器キャパシタ506a、506b、506cは、関連する加算器スイッチ504a、504b、504cと電気的なグラウンド508との間に電気的に接続され得る。加算器キャパシタ506a、506b、506cは、加算器スイッチ504a、504b、504cおよびクリアスイッチ308を介して、電気的なグラウンド310に選択的かつ電気的に接続され得る。加算器キャパシタ506a、506b、506cは、電気伝導バス316を介してADC212に電気的に接続され得る。加算器スイッチ504a、504b、504cは、MACコントローラ(たとえば、図1のプロセッサ104、MACコントローラ124)によって加算器キャパシタ506a、506b、506cを電気伝導バス306、316に選択的かつ電気的に接続するように制御され得る。
【0065】
アナログ加算器は、加算器キャパシタ506a、506b、506cにおいて、シングルビットMAC206a、206b、206c、206dからシングルビットMAC出力を受け取り得る。各加算器キャパシタ506a、506b、506cは、シングルビットMAC206a、206b、206c、206dに選択的に、逐次、かつ電気的に接続され得る。加算器キャパシタ506a、506b、506cは、「n」ビットの活性化値および/または「m」ビットの重み値のビットの数に対応し得る異なる逐次的な定格容量(「C」)を有し得る。マルチビットの「n」ビットの活性化値について、加算器キャパシタ506a、506b、506cは、2qCという定格容量をもっていてもよく、「q」は0からn-1の値であってもよい。同様に、マルチビットの「m」ビットの重み値について、加算器キャパシタ506a、506b、506cは、2rCという定格容量をもっていてもよく、「r」は0からm-1までの値であってもよい。いくつかの実施形態では、各加算器キャパシタ506a、506b、506cは、定格容量の列における加算器キャパシタ506a、506b、506cの位置に対して適切な定格容量を有する単一のキャパシタであり得る。いくつかの実施形態では、各加算器キャパシタ506a、506c、506cは、定格容量の列における加算器キャパシタ506a、506b、506cの位置に対する適切な定格容量を合成で有する、直列および/または並列に電気的に接続される複数のキャパシタであり得る。加算器キャパシタ506a、506b、506cの定格容量は、シングルビットMAC206a、206b、206c、206dから加算器キャパシタ506a、506b、506cによって受け取られるシングルビットMAC出力のためのハードワイヤードバイナリ重みとして機能し得る。
【0066】
加算器キャパシタ506a、506b、506cは、関連するシングルビットMACスイッチ304a、304b、304c、304dおよび関連する加算器スイッチ504a、504b、504cを介してシングルビットMAC206a、206b、206c、206dに選択的かつ電気的に接続されるとき、シングルビットMAC206a、206b、206c、206dからシングルビットMAC出力を受け取り、記憶し得る。シングルビットMACスイッチ304a、304b、304c、304dおよび加算器スイッチ504a、504b、504cは、各加算器キャパシタ506a、506b、506cがシングルビットMAC出力を受け取るように、シングルビットMAC206a、206b、206c、206dからシングルビットMAC出力を出力するように制御され得る。たとえば、シングルビットMACスイッチ304a、304b、304c、304dは、シングルビットMAC出力をアナログ加算器に出力するためにシングルビットMAC206a、206b、206c、206dとアナログ加算器を電気的に接続する回路を閉じるように制御され得る。各加算器キャパシタ506a、506b、506cに関連する加算器スイッチ504a、504b、504cは、シングルビットMAC206a、206b、206c、206dおよび関連する加算器キャパシタ506a、506b、506cを電気的に接続する回路を閉じることによって、加算器キャパシタ506a、506b、506cの各々にシングルビットMAC出力を逐次荷電するように制御され得る。言い換えると、各加算器キャパシタ506a、506b、506cは、シングルビットMAC206a、206b、206c、206dの各々からシングルビットMAC出力を受け取り得る。いくつかの実施形態では、加算器スイッチ504a、504b、504cは、シングルビットMAC出力が加算器キャパシタ506a、506b、506cの定格容量に基づく順序で加算器キャパシタ506a、506b、506cに荷電されるような方式で制御され得る。加算器キャパシタ506a、506b、506cは、シングルビットMAC206a、206b、206c、206dに選択的かつ電気的に接続されるとき、シングルビットMAC出力を受け取ることによって充電し得る。
【0067】
加算器キャパシタ506a、506b、506cは、シングルビットMACスイッチ304a、304b、304c、304dによってシングルビットMAC206a、206b、206c、206dから選択的かつ電気的に切断されるとき、および加算器スイッチ504a、504b、504cによってADC212に選択的かつ電気的に接続されるとき、加算器キャパシタ506a、506b、506cの定格容量に関して重み付けられるシングルビットMAC出力を出力または放電し得る。加算器キャパシタ506a、506b、506cは、シングルビットMACスイッチ304a、304b、304c、304dによって関連するシングルビットMAC206a、206b、206c、206dのすべてから選択的かつ電気的に切断されるとき、および加算器スイッチ504a、504b、504cのすべてによってADC212に選択的かつ電気的に接続されるとき、重み付けられたシングルビットMAC出力を出力または放電し得る。
【0068】
重み付けられたシングルビットMAC出力は、電気伝導バス316およびADC212にアナログ電圧として出力され得る。重み付けられたシングルビットMAC出力は、電気伝導バス316上でのアナログ電圧の加算により組み合わせられてもよく、マルチビットMAC出力とも本明細書で呼ばれ、ADC212によってデジタル信号に変換される、アナログ電圧の加重平均をもたらす。
【0069】
「n」ビットの活性化値と「m」ビットの重み値のビットのすべての乗算と加算を完了した後、マルチビットMAC500はリセットまたはクリアされ得る。クリアスイッチ308は、加算器キャパシタ506a、506b、506cを含むアナログ加算器を電気的なグラウンド310に選択的かつ電気的に接続するように制御され得る。加算器スイッチ504a、504b、504cはまた、クリアスイッチ308を介して加算器キャパシタ506a、506b、506cを電気的なグラウンド310に電気的に接続するように制御され得る。マルチビットMAC500のコンポーネントを電気的なグラウンド310に電気的に接続することは、「n」ビットの活性化値および/または「m」ビットの重み値の異なる組合せの次の乗算と加算がマルチビットMAC500によって実施され得るように、マルチビットMAC500の中のあらゆる残っている電圧を放電し得る。
【0070】
いくつかの実施形態では、バッファ502は、シングルビットMAC206a、206b、206c、206dと加算器キャパシタ506a、506b、506cとの間に電気的に接続され得る。バッファ502は、シングルビットMAC206a、206b、206c、206dに対する加算器キャパシタ506a、506b、506cの電圧および/または電流の荷電効果を減らすように構成されるアナログバッファであり得る。いくつかの実施形態では、バッファ502は、バッファ502がない場合の荷電効果と比較して荷電効果を減らし得る。たとえば、バッファ502は、加算器キャパシタ506a、506b、506cとシングルビットMAC206a、206b、206c、206dの一致しない相対的なインピーダンスにより引き起こされる電圧降下を減らし得る。バッファ502は、シングルビットMAC206a、206b、206c、206dから加算器キャパシタ506a、506b、506cへのシングルビットMAC出力の線形性を改善するようにも構成され得る。いくつかの実施形態では、バッファ502は、バッファ502がない場合の線形性と比較して線形性を改善し得る。たとえば、バッファ502は、シングルビットMAC206a、206b、206c、206dと加算器キャパシタ506a、506b、506cとの間でのシングルビットMAC出力の伝達において損失が発生するとき、シングルビットMAC出力を線形に増幅することによって、シングルビットMAC出力の線形性を改善し得る。
【0071】
図6は、様々な実施形態を実装するのに適した、負荷として逐次バイナリ累算器を使用する例示的なマルチビットMACを示す。図1から図6を参照すると、マルチビットMAC600は、任意の数のアナログ加算器を含み得る。いくつかの実施形態では、アナログ加算器は、任意の数の加算器スイッチ604a、604bおよび加算器キャパシタ606a、606bを含み得る。いくつかの実施形態では、アナログ加算器はさらに、任意の数の任意選択のバッファ502を含み得る。いくつかの実施形態では、アナログ加算器はさらに、任意の数のクリアスイッチ308、電気的なグラウンド310、および/または指定された電気的なグラウンド508とそれらの組合せを含み得る。アナログ加算器の加算器キャパシタ606a、606bは、関連するシングルビットMACスイッチ304a、304b、304c、304d、関連する加算器スイッチ604a、604b、および電気伝導バス306を介して、シングルビットMAC206a、206b、206c、206dに選択的かつ電気的に接続され得る。加算器キャパシタ606a、606bは、加算器スイッチ604a、604bおよび電気伝導バス316を介して、互いに選択的かつ電気的に接続され得る。加算器キャパシタ606a、606bは、関連する加算器スイッチ604a、604bと電気的なグラウンド508との間に電気的に接続され得る。加算器キャパシタ606a、606bは、加算器スイッチ604a、604bおよびクリアスイッチ308を介して、電気的なグラウンド310に選択的かつ電気的に接続され得る。加算器キャパシタ606a、606bは、電気伝導バス316を介してADC212に電気的に接続され得る。加算器スイッチ604a、604bは、MACコントローラ(たとえば、図1のプロセッサ104、MACコントローラ124)によって加算器キャパシタ606a、606bを電気伝導バス306、316に選択的かつ電気的に接続するように制御され得る。
【0072】
アナログ加算器は、加算器キャパシタ606a、606bにおいて、シングルビットMAC206a、206b、206c、206dからシングルビットMAC出力を受け取り得る。加算器キャパシタ606a、606bは、サンプラキャパシタ606aおよび累算器キャパシタ606bを含み得る。サンプラキャパシタ606aは、シングルビットMAC206a、206b、206c、206dに選択的かつ電気的に接続され得る。累算器キャパシタ606bは、サンプラキャパシタ606aに選択的かつ電気的に接続され得る。加算器キャパシタ606a、606bは、同じ定格容量(「C」)を有し得る。いくつかの実施形態では、各加算器キャパシタ606a、606bは、その定格容量を有する単一のキャパシタであり得る。いくつかの実施形態では、各加算器キャパシタ606a、606bは、その定格容量を合成で有する、直列および/または並列に電気的に接続される複数のキャパシタであり得る。加算器キャパシタ606a、606bの定格容量は、シングルビットMAC206a、206b、206c、206dから加算器キャパシタ606a、606bによって受け取られるシングルビットMAC出力のためのハードワイヤードバイナリ重みとして機能し得る。
【0073】
サンプラキャパシタ606aは、関連するシングルビットMACスイッチ304a、304b、304c、304dおよび関連する加算器スイッチ604a、604b、すなわちサンプラスイッチ604aを介してシングルビットMAC206a、206b、206c、206dに選択的かつ電気的に接続されるとき、シングルビットMAC206a、206b、206c、206dからシングルビットMAC出力を受け取り、記憶し得る。シングルビットMACスイッチ304a、304b、304c、304dおよびサンプラスイッチ604aは、サンプラキャパシタ606aが特定の順序でシングルビットMAC出力を受け取るように、シングルビットMAC206a、206b、206c、206dからシングルビットMAC出力を出力するように制御され得る。いくつかの実施形態では、順序は、「n」ビットの活性化値および「m」ビットの重み値の最下位ビットの乗算と累算から開始して、「n」ビットの活性化値および「m」ビットの重み値の最上位ビットの乗算と累算まで、逐次的であり得る。たとえば、シングルビットMACスイッチ304a、304b、304c、304dは、シングルビットMAC出力をアナログ加算器に出力するためにシングルビットMAC206a、206b、206c、206dとアナログ加算器を電気的に接続する回路を逐次閉じるように制御され得る。サンプラキャパシタ606aに関連するサンプラスイッチ604aは、シングルビットMAC206a、206b、206c、206dとサンプラキャパシタ606aを電気的に接続する回路を閉じることによって、サンプラキャパシタ606aにシングルビットMAC出力を逐次荷電するように制御され得る。言い換えると、サンプラキャパシタ606aは、シングルビットMAC206a、206b、206c、206dの各々からシングルビットMAC出力を受け取り得る。いくつかの実施形態では、サンプラスイッチ604aは、シングルビットMAC出力を生み出すために乗じられる「n」ビットの活性化値および「m」ビットの重み値のビットのビット位置に基づく順序で、シングルビットMAC出力がサンプラキャパシタ606aに荷電されるような方式で制御され得る。サンプラキャパシタ606aは、シングルビットMAC206a、206b、206c、206dに選択的かつ電気的に接続されるとき、シングルビットMAC出力を受け取ることによって充電し得る。サンプラキャパシタ606aは、シングルビットMAC出力のサンプルを記憶してもよく、これは、シングルビットMAC出力のサンプルを累算器キャパシタ606bと共有することによって改変される、受け取られたシングルビットMAC出力の組合せを含んでもよい。シングルビットMAC出力のサンプルは、シングルビットMAC出力サンプルと本明細書で呼ばれる。サンプラキャパシタ606aは、各シングルビットMAC出力を受け取ったことに応答して、シングルビットMAC出力サンプルを記憶して出力し得る。
【0074】
累算器キャパシタ606bは、加算器スイッチ604a、604b、すなわちサンプラスイッチ604aおよび累算器スイッチ604bを介してサンプラキャパシタ606aに選択的かつ電気的に接続されるとき、サンプラキャパシタ606aからシングルビットMAC出力サンプルを受け取って記憶し得る。サンプラキャパシタ606aは、サンプラキャパシタ606aがシングルビットMAC206a、206b、206c、206dから選択的に切断され、加算器スイッチ604a、604bによって累算器キャパシタ606bに選択的に接続されるとき、シングルビットMAC出力サンプルを累算器キャパシタ606bに共有または出力し得る。累算器キャパシタ606bは、シングルビットMAC出力サンプルを受け取って記憶し得る。たとえば、シングルビットMACスイッチ304a、304b、304c、304dは、シングルビットMAC206a、206b、206c、206dからサンプラキャパシタ606aを選択的に切断するように制御され得る。サンプラスイッチ604aは、サンプラキャパシタ606aを電気伝導バス316に電気的に接続するように制御されてもよく、累算器スイッチ604bは、累算器キャパシタ606bを電気伝導バス316に電気的に接続するように制御されてもよい。サンプラキャパシタ606aは、シングルビットMAC出力サンプルを累算器キャパシタ606bに出力し得る。シングルビットMAC出力を受け取った後、シングルビットMAC出力サンプルは、サンプラキャパシタ606aおよび累算器キャパシタ606bによって共有され得る(図8に関連して本明細書でさらに説明されるように)。サンプラキャパシタ606aによって出力される各シングルビットMAC出力を受け取り、サンプラキャパシタ606aによってシングルビットMAC出力サンプルを出力し、累算器キャパシタ606bによってシングルビットMAC出力サンプルを受け取るプロセスは、「n」ビットの活性化値および「m」ビットの重み値のビットのすべての各乗算と加算について継続し得る。
【0075】
「n」ビットの活性化値と「m」ビットの重み値のビットの乗算と加算を完了した後、サンプラキャパシタ606aはリセットまたはクリアされ得る。クリアスイッチ308は、サンプラキャパシタ606aを電気的なグラウンド310に選択的かつ電気的に接続するように制御され得る。サンプラスイッチ604aは、サンプラキャパシタ606aを電気的なグラウンド310に選択的かつ電気的に接続するように制御され得る。累算器スイッチ604bは、電気的なグラウンド310から累算器キャパシタ606bを選択的かつ電気的に切断するように制御され得る。マルチビットMAC600のコンポーネントを電気的なグラウンド310に電気的に接続することは、「n」ビットの活性化値および/または「m」ビットの重み値の異なる組合せの次の乗算と加算がマルチビットMAC600によって実施され得るように、コンポーネントの中のあらゆる残っている電圧を放電し得る。
【0076】
累算器キャパシタ606bは、シングルビットMACスイッチ304a、304b、304c、304dによってシングルビットMAC206a、206b、206c、206dから選択的かつ電気的に切断されるとき、サンプラスイッチ604aによってサンプラキャパシタ606aから選択的かつ電気的に切断されるとき、および累算器スイッチ604bによってADC212に選択的かつ電気的に接続されるとき、シングルビットMAC出力サンプルを出力または放電し得る。累算器キャパシタ606bの出力は、マルチビットMAC出力とも本明細書で呼ばれる。シングルビットMAC出力サンプルは、電気伝導バス316およびADC212にアナログ電圧として出力され得る。電気伝導バス316上のアナログ電圧は、ADC212によってデジタル信号に変換され得る。
【0077】
「n」ビットの活性化値と「m」ビットの重み値のビットのすべての乗算と加算を完了した後、マルチビットMAC600はリセットまたはクリアされ得る。クリアスイッチ308は、加算器キャパシタ606a、606bを含むアナログ加算器を電気的なグラウンド310に選択的かつ電気的に接続するように制御され得る。加算器スイッチ604a、604bはまた、クリアスイッチ308を介して加算器キャパシタ606a、606bを電気的なグラウンド310に電気的に接続するように制御され得る。マルチビットMAC600のコンポーネントを電気的なグラウンド310に電気的に接続することは、「n」ビットの活性化値および/または「m」ビットの重み値の異なる組合せの次の乗算と加算がマルチビットMAC600によって実施され得るように、マルチビットMAC600の中のあらゆる残っている電圧を放電し得る。
【0078】
いくつかの実施形態では、バッファ502は、シングルビットMAC206a、206b、206c、206dと加算器キャパシタ606a、606bとの間に電気的に接続され得る。バッファ502は、シングルビットMAC206a、206b、206c、206dに対する加算器キャパシタ606a、606bの電圧および/または電流の荷電効果を減らすように構成されるアナログバッファであり得る。いくつかの実施形態では、バッファ502は、バッファ502がない場合の荷電効果と比較して荷電効果を減らし得る。たとえば、バッファ502は、加算器キャパシタ606a、606bとシングルビットMAC206a、206b、206c、206dの一致しない相対的なインピーダンスにより引き起こされる電圧降下を減らし得る。バッファ502は、シングルビットMAC206a、206b、206c、206dから加算器キャパシタ606a、606bへのシングルビットMAC出力の線形性を改善するようにも構成され得る。いくつかの実施形態では、バッファ502は、バッファ502がない場合の線形性と比較して線形性を改善し得る。たとえば、バッファ502は、シングルビットMAC206a、206b、206c、206dと加算器キャパシタ606a、606bとの間でのシングルビットMAC出力の伝達において損失が発生するとき、シングルビットMAC出力を線形に増幅することによって、シングルビットMAC出力の線形性を改善し得る。バッファ502は、大きい「n」ビットの活性化値および/または「m」ビットの重み値のための実装形態では省略されてもよく、そのような実装形態では、シングルビットMAC出力を共有することが、シングルビットMAC206a、206b、206c、206dとサンプラキャパシタ606aとの間に大きな損失を引き起こさないことがあるので、シングルビットMAC206a、206b、206c、206dのシングルビットMAC出力は大きい。シングルビットMAC206a、206b、206c、206dとサンプラキャパシタ606aとの間の損失は線形損失であることがあり、非線形性をもたらさないことがある。
【0079】
図7は、様々な実施形態を実装するのに適した、負荷として逐次バイナリ累算器を使用する例示的なマルチビットMACを示す。図1から図7を参照すると、マルチビットMAC700は、任意の数のアナログ加算器を含み得る。いくつかの実施形態では、アナログ加算器は、任意の数の加算器スイッチ702および加算器キャパシタ606a、606bを含み得る。いくつかの実施形態では、アナログ加算器はさらに、任意の数のクリアスイッチ308a、308b、電気的なグラウンド310a、310b、および/または指定された電気的なグラウンド508とそれらの組合せを含み得る。アナログ加算器の加算器キャパシタ606a、606bは、関連するシングルビットMACスイッチ304a、304b、304c、304d、関連する加算器スイッチ702、および電気伝導バス306を介して、シングルビットMAC206a、206b、206c、206dに選択的かつ電気的に接続され得る。加算器キャパシタ606a、606bは、加算器スイッチ702および電気伝導バス316を介して、互いに選択的かつ電気的に接続され得る。加算器キャパシタ606a、606bは、電気伝導バス316と電気的なグラウンド508との間に電気的に接続され得る。加算器キャパシタ606a、606bは、クリアスイッチ308a、308bを介して、電気的なグラウンド310a、310bに選択的かつ電気的に接続され得る。加算器キャパシタ606a、606bは、電気伝導バス316を介してADC212に電気的に接続され得る。加算器スイッチ702は、MACコントローラ(たとえば、図1のプロセッサ104、MACコントローラ124)によって加算器キャパシタ606a、606bを互いに選択的かつ電気的に接続するように制御され得る。
【0080】
アナログ加算器は、加算器キャパシタ606a、606bにおいて、シングルビットMAC206a、206b、206c、206dからシングルビットMAC出力を受け取り得る。加算器キャパシタ606a、606bは、サンプラキャパシタ606aおよび累算器キャパシタ606bを含み得る。サンプラキャパシタ606aは、シングルビットMAC206a、206b、206c、206dに選択的かつ電気的に接続され得る。累算器キャパシタ606bは、サンプラキャパシタ606aに選択的かつ電気的に接続され得る。加算器キャパシタ606a、606bは、同じ定格容量(「C」)を有し得る。いくつかの実施形態では、各加算器キャパシタ606a、606bは、その定格容量を有する単一のキャパシタであり得る。いくつかの実施形態では、各加算器キャパシタ606a、606bは、その定格容量を合成で有する、直列および/または並列に電気的に接続される複数のキャパシタであり得る。加算器キャパシタ606a、606bの定格容量は、シングルビットMAC206a、206b、206c、206dから加算器キャパシタ606a、606bによって受け取られるシングルビットMAC出力のためのハードワイヤードバイナリ重みとして機能し得る。
【0081】
サンプラキャパシタ606aは、関連するシングルビットMACスイッチ304a、304b、304c、304dを介してシングルビットMAC206a、206b、206c、206dに選択的かつ電気的に接続されるとき、シングルビットMAC206a、206b、206c、206dからシングルビットMAC出力を受け取り、記憶し得る。シングルビットMACスイッチ304a、304b、304c、304dは、サンプラキャパシタ606aが特定の順序でシングルビットMAC出力を受け取るように、シングルビットMAC206a、206b、206c、206dからシングルビットMAC出力を出力するように制御され得る。いくつかの実施形態では、順序は、「n」ビットの活性化値および「m」ビットの重み値の最下位ビットの乗算と累算から開始して、「n」ビットの活性化値および「m」ビットの重み値の最上位ビットの乗算と累算まで、逐次的であり得る。たとえば、シングルビットMACスイッチ304a、304b、304c、304dは、シングルビットMAC出力をアナログ加算器に出力するためにシングルビットMAC206a、206b、206c、206dとアナログ加算器を電気的に接続する回路を逐次閉じるように制御され得る。サンプラキャパシタ606aは、シングルビットMAC206a、206b、206c、206dおよびサンプラキャパシタ606aを電気的に接続する回路を閉じることによって、シングルビットMAC出力で逐次荷電され得る。言い換えると、サンプラキャパシタ606aは、シングルビットMAC206a、206b、206c、206dの各々からシングルビットMAC出力を受け取り得る。いくつかの実施形態では、シングルビットMACスイッチ304a、304b、304c、304dは、シングルビットMAC出力を生み出すために乗じられて累算される「n」ビットの活性化値および「m」ビットの重み値のビットのビット位置に基づく順序で、シングルビットMAC出力がサンプラキャパシタ606aに荷電されるような方式で制御され得る。サンプラキャパシタ606aは、シングルビットMAC206a、206b、206c、206dに選択的かつ電気的に接続されるとき、シングルビットMAC出力を受け取ることによって充電し得る。サンプラキャパシタ606aは、シングルビットMAC出力のサンプルを記憶してもよく、これは、シングルビットMAC出力のサンプルを累算器キャパシタ606bと共有することによって改変される、受け取られたシングルビットMAC出力の組合せを含んでもよい。シングルビットMAC出力のサンプルは、シングルビットMAC出力サンプルと本明細書で呼ばれる。サンプラキャパシタ606aは、各シングルビットMAC出力を受け取ったことに応答して、シングルビットMAC出力サンプルを記憶して出力し得る。
【0082】
累算器キャパシタ606bは、加算器スイッチ702を介してサンプラキャパシタ606aに選択的かつ電気的に接続されるとき、サンプラキャパシタ606aからシングルビットMAC出力サンプルを受け取って記憶し得る。サンプラキャパシタ606aは、サンプラキャパシタ606aがシングルビットMAC206a、206b、206c、206dから選択的に切断され、加算器スイッチ702によって累算器キャパシタ606bに選択的に接続されるとき、シングルビットMAC出力サンプルを累算器キャパシタ606bに放電または出力し得る。累算器キャパシタ606bは、シングルビットMAC出力サンプルを受け取って記憶し得る。たとえば、シングルビットMACスイッチ304a、304b、304c、304dは、シングルビットMAC206a、206b、206c、206dからサンプラキャパシタ606aを選択的に切断するように制御され得る。加算器スイッチ702は、電気伝導バス316を介してサンプラキャパシタ606aを累算器キャパシタ606bに電気的に接続するように制御され得る。サンプラキャパシタ606aは、シングルビットMAC出力サンプルを累算器キャパシタ606bに出力し得る。シングルビットMAC出力を受け取った後、シングルビットMAC出力サンプルは、図8に関連して本明細書でさらに説明されるように、サンプラキャパシタ606aおよび累算器キャパシタ606bによって共有され得る。サンプラキャパシタ606aによって出力される各シングルビットMAC出力を受信し、サンプラキャパシタ606aによってシングルビットMAC出力サンプルを出力し、累算器キャパシタ606bによってシングルビットMAC出力サンプルを受け取るプロセスは、「n」ビットの活性化値および「m」ビットの重み値のビットのすべての各乗算と加算について継続し得る。
【0083】
「n」ビットの活性化値と「m」ビットの重み値のビットの乗算と加算を完了した後、サンプラキャパシタ606aはリセットまたはクリアされ得る。クリアスイッチ308aは、サンプラキャパシタ606aを電気的なグラウンド310aに選択的かつ電気的に接続するように制御され得る。クリアスイッチ308bおよび加算器スイッチ702は、電気的なグラウンド310a、310bから累算器キャパシタ606bを選択的かつ電気的に切断するように制御され得る。マルチビットMAC700のコンポーネントを電気的なグラウンド310aに電気的に接続することは、「n」ビットの活性化値および/または「m」ビットの重み値の異なる組合せの次の乗算と加算がマルチビットMAC700によって実施され得るように、コンポーネントの中のあらゆる残っている電圧を放電し得る。
【0084】
累算器キャパシタ606bは、加算器スイッチ702によってシングルビットMAC206a、206b、206c、206dおよびサンプラキャパシタ606aから選択的かつ電気的に切断されるとき、および電気伝導バス316によってADC212に選択的かつ電気的に接続されるとき、シングルビットMAC出力サンプルを出力または放電し得る。累算器キャパシタ606bの出力は、マルチビットMAC出力とも本明細書で呼ばれる。シングルビットMAC出力サンプルは、電気伝導バス316およびADC212にアナログ電圧として出力され得る。電気伝導バス316上のアナログ電圧は、ADC212によってデジタル信号に変換され得る。
【0085】
「n」ビットの活性化値と「m」ビットの重み値のビットのすべての乗算と加算を完了した後、マルチビットMAC700はリセットまたはクリアされ得る。クリアスイッチ308a、308bは、加算器キャパシタ606a、606bを含むアナログ加算器を電気的なグラウンド310a、310bに選択的かつ電気的に接続するように制御され得る。マルチビットMAC700のコンポーネントを電気的なグラウンド310a、310bに電気的に接続することは、「n」ビットの活性化値および/または「m」ビットの重み値の異なる組合せの次の乗算と加算がマルチビットMAC700によって実施され得るように、マルチビットMAC700の中のあらゆる残っている電圧を放電し得る。
【0086】
図8は、様々な実施形態を実装するのに適した、逐次バイナリ累算器を使用する例示的なマルチビットMACの例示的なシグナルフローを示す。図1図8を参照すると、逐次バイナリ累算器を使用するマルチビットMAC(たとえば、図7のマルチビットMAC700)のための信号タイミング図800は、累算器クリアスイッチ制御信号(「累算器クリアスイッチ」)、サンプラクリアスイッチ制御信号(「サンプラクリアスイッチ」)、および加算器スイッチ制御信号(「加算器スイッチ」)、複数のシングルビットMAC出力信号(たとえば、「シングルビットMAC1」、「シングルビットMAC2」、...「シングルビットMACb」)、ならびにサンプラキャパシタ電圧測定値(「サンプラキャパシタ電圧」)および累算器キャパシタ電圧測定値(「累算器キャパシタ電圧」)を含み得る。累算器クリアスイッチ制御信号、サンプラクリアスイッチ制御信号、および加算器スイッチ制御信号は、累算器クリアスイッチ(たとえば、図7のクリアスイッチ308b)、サンプラクリアスイッチ(たとえば、図7のクリアスイッチ308a)、および加算器スイッチ(たとえば、図7の加算器スイッチ702)を制御するための制御デバイス(図示せず)によって出される制御信号であり得る。シングルビットMAC出力信号は、シングルビットMAC(たとえば、図7のシングルビットMAC206a、206b、206c、206d)によって出力されるシングルビットMAC出力であり得る。サンプラキャパシタ電圧測定値はサンプラキャパシタ(たとえば、図7のサンプラキャパシタ606a)の電圧であってもよく、累算器キャパシタ電圧測定値は累算器キャパシタ(たとえば、図7の累算器キャパシタ606b)の電圧であってもよい。図8に示される例は、図7を参照して本明細書において説明されるマルチビットMAC700に関連し得る。しかしながら、図8に示される例は、請求項または明細書の範囲を限定することは意図されず、それは、類似する制御信号、シングルビットMAC出力、およびキャパシタ電圧の測定が、図2から図6を参照して本明細書において説明される様々なマルチビットMAC200、300、400、500、600のために実施され得ることが明らかであるからである。
【0087】
信号タイミング図800では、時間T0において、累算器クリアスイッチ制御信号およびサンプラクリアスイッチ制御信号は、制御デバイスによってアサートされ得る。累算器クリアスイッチ制御信号およびサンプラクリアスイッチ制御信号は、サンプラクリアスイッチおよび累算器クリアスイッチなどのクリアスイッチを介してサンプラキャパシタと累算器キャパシタを電気的なグラウンド(たとえば、図7の電気的なグラウンド310a、310b)に選択的かつ電気的に接続するためにアサートされ得る。サンプラキャパシタおよび累算器キャパシタは電気的なグラウンドに電気的に接続され得るので、サンプラキャパシタ電圧測定値および累算器キャパシタ電圧測定値は、電圧をほとんどまたはまったく示さないことがある。本明細書において説明されるように、シングルビットMACスイッチ(たとえば、図7のシングルビットMACスイッチ304a、304b、304c、304d)は、サンプラキャパシタおよび累算器キャパシタからシングルビットMACを選択的かつ電気的に切断するように制御され得る。したがって、時間T0において、シングルビットMAC出力信号はどのような値ももたないことがある。加算器スイッチ制御信号は、時間T0において制御デバイスによってデアサートされ得る。
【0088】
時間T1において、累算器クリアスイッチ制御信号およびサンプラクリアスイッチ制御信号が、制御デバイスによってデアサートされてもよく、制御デバイスが、クリアスイッチを介して、サンプラキャパシタおよび累算器キャパシタを電気的なグラウンドから選択的かつ電気的に切断してもよい。第1のシングルビットMACは、「n」ビットの活性化値と「m」ビットの重み値の最下位ビットを乗じ、乗算の結果を累算し、第1のシングルビットMAC出力(たとえば、シングルビットMAC1)を出力し得る。第1のシングルビットMACは、第1のシングルビットMACスイッチを介してサンプラキャパシタに電気的に接続され、サンプラキャパシタにシングルビットMAC出力を出力し得る。サンプラキャパシタは、第1のシングルビットMAC出力を受け取り、第1のサンプラキャパシタ電圧測定値(Vmult1)を示し得る。加算器スイッチ制御信号は時間T0において制御デバイスによってデアサートされてもよく、サンプラキャパシタと累算器キャパシタとの間で電圧は共有されないことがある。したがって、累算器キャパシタ電圧測定値は、時間T0以降、前の電圧にとどまり得る。
【0089】
時間T2において、加算器スイッチ制御信号が、制御デバイスによってアサートされ得る。それに応答して、加算器スイッチは、サンプラキャパシタおよび累算器キャパシタを選択的かつ電気的に接続し得る。第1のサンプラキャパシタ電圧測定値は、サンプラキャパシタと累算器キャパシタとの間で共有され得る。サンプラキャパシタおよび累算器キャパシタがサンプラキャパシタ電圧測定値を共有するたびに、サンプラキャパシタ電圧測定値の電圧がサンプラキャパシタにおいて半分に分けられてもよく、その電圧の半分が累算器キャパシタに提供されてもよい。したがって、第1のサンプラキャパシタ電圧測定値は(Vmult1)/2になってもよく、第1の累算器キャパシタ電圧測定値(たとえば、第1のシングルビットMAC出力サンプル)は(Vmult1)/2になってもよい。
【0090】
時間T3において、加算器スイッチ制御信号がデアサートされてもよく、サンプラクリアスイッチ制御信号が制御デバイスによってアサートされてもよい。加算器スイッチ制御信号をデアサートすることは、加算器スイッチがサンプラキャパシタと累算器キャパシタを選択的かつ電気的に切断することを招き得る。サンプラクリアスイッチ制御信号をアサートすることは、クリアスイッチがサンプラキャパシタを電気的なグラウンドに選択的かつ電気的に接続することを招くことがあり、これは、第1のサンプラキャパシタ電圧測定値を0ボルトまたは0ボルト付近に引き下げることがある。第1の累算器キャパシタ電圧測定値は、(Vmult1)/2にとどまり得る。
【0091】
時間T4において、サンプラクリアスイッチ制御信号が制御デバイスによってデアサートされてもよく、第2のシングルビットMACが、「n」ビットの活性化値と「m」ビットの重み値の次の上位ビットを乗じ、乗算の結果を累算し、第2のシングルビットMAC出力(たとえば、シングルビットMAC2)を出力してもよい。サンプラクリアスイッチ制御信号をデアサートすることは、クリアスイッチがサンプラキャパシタを電気的なグラウンドから選択的かつ電気的に切断することを招き得る。サンプラキャパシタは、第2のシングルビットMAC出力を受け取り、第2のサンプラキャパシタ電圧測定値(Vmult2)を示し得る。
【0092】
時間T5において、加算器スイッチ制御信号が、制御デバイスによってアサートされ得る。それに応答して、加算器スイッチは、サンプラキャパシタおよび累算器キャパシタを選択的かつ電気的に接続し得る。第2のサンプラキャパシタ電圧測定値および第1の累算器キャパシタ電圧測定値は、サンプラキャパシタと累算器キャパシタとの間で共有され得る。サンプラキャパシタおよび累算器キャパシタが累算器キャパシタ電圧測定値を共有するたびに、累算器キャパシタ電圧測定値の電圧が累算器キャパシタにおいて半分に分けられてもよく、その電圧の半分がサンプラキャパシタに提供されてもよい。したがって、第2のサンプラキャパシタ電圧測定値は(Vmult1)/4+(Vmult2)/2になってもよく、第2の累算器キャパシタ電圧測定値(たとえば、第2のシングルビットMAC出力サンプル)は(Vmult1)/4+(Vmult2)/2になってもよい。
【0093】
時間T6において、加算器スイッチ制御信号がデアサートされてもよく、サンプラクリアスイッチ制御信号が制御デバイスによってアサートされてもよい。加算器スイッチ制御信号をデアサートすることは、加算器スイッチがサンプラキャパシタと累算器キャパシタを選択的かつ電気的に切断することを招き得る。サンプラクリアスイッチ制御信号をアサートすることは、クリアスイッチがサンプラキャパシタを電気的なグラウンドに選択的かつ電気的に接続することを招くことがあり、これは、第2のサンプラキャパシタ電圧測定値を0ボルトまたは0ボルト付近に引き下げることがある。第2の累算器キャパシタ電圧測定値は、(Vmult1)/4+(Vmult2)/2にとどまり得る。
【0094】
様々な期間を通じて、加算器スイッチ制御信号およびサンプラクリアスイッチ制御信号は、時間T1~T6において示されるパターンを繰り返してもよく、様々なシングルビットMACは、「n」ビットの活性化値と「m」ビットの重み値の次の上位のビットを繰り返し乗じ、乗算の結果を累算し、追加のシングルビットMAC出力を出力してもよい。サンプラキャパシタ電圧測定値および累算器キャパシタ電圧測定値は、それに従って変動し得る。
【0095】
時間Ts-2において、加算器スイッチ制御信号がデアサートされてもよく、サンプラクリアスイッチ制御信号が制御デバイスによってアサートされてもよい。加算器スイッチ制御信号をデアサートすることは、加算器スイッチがサンプラキャパシタと累算器キャパシタを選択的かつ電気的に切断することを招き得る。サンプラクリアスイッチ制御信号をアサートすることは、クリアスイッチがサンプラキャパシタを電気的なグラウンドに選択的かつ電気的に接続することを招くことがあり、これは、第(b-1)のサンプラキャパシタ電圧測定値を0ボルトまたは0ボルト付近に引き下げることがある。第2の累算器キャパシタ電圧測定値は、(Vmult1)/2b-1+(Vmult2)/2b-2+...+(Vmultb-1)/2にとどまり得る。
【0096】
時間Ts-1において、サンプラクリアスイッチ制御信号が制御デバイスによってデアサートされてもよく、第bのシングルビットMACが、「n」ビットの活性化値と「m」ビットの重み値の最上位ビットを乗じ、乗算の結果を累算し、第bのシングルビットMAC出力(たとえば、シングルビットMACb)を出力してもよい。サンプラクリアスイッチ制御信号をデアサートすることは、クリアスイッチがサンプラキャパシタを電気的なグラウンドから選択的かつ電気的に切断することを招き得る。サンプラキャパシタは、第2のシングルビットMAC出力を受け取り、第2のサンプラキャパシタ電圧測定値(Vmultb)を示し得る。
【0097】
時間Tsにおいて、加算器スイッチ制御信号が、制御デバイスによってアサートされ得る。それに応答して、加算器スイッチは、サンプラキャパシタおよび累算器キャパシタを選択的かつ電気的に接続し得る。第bのサンプラキャパシタ電圧測定値および第(b-1)の累算器キャパシタ電圧測定値は、サンプラキャパシタと累算器キャパシタとの間で共有され得る。第bのサンプラキャパシタ電圧測定値は、(Vmult1)/2b+(Vmult2)/2b-1+...+(Vmultb-1)/4+(Vmultb)/2になってもよく、第bの累算器キャパシタ電圧測定値(たとえば、第2のシングルビットMAC出力サンプル)は、(Vmult1)/2b+(Vmult2)/2b-1+...+(Vmultb-1)/4+(Vmultb)/2になってもよい。
【0098】
図9は、様々な実施形態を実装するのに適した、マルチビット活性化値およびマルチビット重みのためのシングルビットMAC出力加算器の例を示す。図1から図9を参照すると、マルチビットMAC900は、任意の数のアナログ加算器を含み得る。いくつかの実施形態では、アナログ加算器は、任意の数の加算器スイッチ908a、908b、908c、908d、910a、910b、910c、910d、912a、912b、912c、912d、および加算器キャパシタ904a、904b、904c、904d、906a、906b、906c、906d、906e、906f、906g、906hを含み得る。いくつかの実施形態では、アナログ加算器はさらに、任意の数の指定された電気的なグラウンド508を含み得る。サンプラキャパシタと本明細書で呼ばれる、アナログ加算器の加算器キャパシタ904a、904b、904c、904dは、関連するシングルビットMACスイッチ304a、304b、304c、304dを介して、シングルビットMAC206、206a、206b、206c、206dに選択的かつ電気的に接続され得る。加算器キャパシタ904a、904b、904c、904d、906a、906b、906c、906d、906e、906f、906g、906hは、加算器スイッチ908a、908b、908c、908d、910a、910b、910c、910dを介して互いに選択的かつ電気的に接続され得る。加算器キャパシタ904a、904b、904c、904d、906a、906b、906c、906d、906e、906f、906g、906hは、電気伝導バス316と電気的なグラウンド508との間に電気的に接続され得る。加算器キャパシタ904a、904b、904c、904d、906a、906b、906c、906d、906e、906f、906g、906hは、電気伝導バス316および加算器スイッチ912a、912b、912c、912dを介してADC212に電気的に接続され得る。加算器スイッチ908a、908b、908c、908d、910a、910b、910c、910d、912a、912b、912c、912dは、MACコントローラ(たとえば、図1のプロセッサ104、MACコントローラ124)によって、加算器キャパシタ904a、904b、904c、904d、906a、906b、906c、906d、906e、906f、906g、906hを互いに、およびADC212と、選択的かつ電気的に接続するように制御され得る。さらに、マルチビットMAC900のいくつかの実施形態は、図10を参照して示され説明されるように、任意の数のクリアスイッチと電気的なグラウンドおよびそれらの組合せを含み得る。
【0099】
アナログ加算器は、サンプラキャパシタ904a、904b、904c、904dにおいて、シングルビットMAC206、206a、206b、206c、206dからシングルビットMAC出力を受け取り得る。サンプラキャパシタ904a、904b、904c、904dは、シングルビットMAC206、206a、206b、206c、206dに選択的かつ電気的に接続され得る。第1の累算器キャパシタと本明細書で呼ばれる加算器キャパシタ906a、906c、906e、906gは、サンプラキャパシタ904a、904b、904c、904dに選択的かつ電気的に接続され得る。第2の累算器キャパシタと本明細書で呼ばれる加算器キャパシタ906b、906d、906f、906hは、第1の累算器キャパシタ906a、906c、906e、906gに選択的かつ電気的に接続され得る。サンプラキャパシタ904a、904b、904c、904d、ならびに第1および第2の累算器キャパシタ906a、906b、906c、906d、906e、906f、906g、906hのペアは、同じ定格容量(「C」)を合成で有し得る。第2の累算器キャパシタ906b、906d、906f、906hの定格容量は、「m」ビットの重み値のビットがそれと乗じられる「n」ビットの活性化値の、または「n」ビットの活性化値のビットがそれと乗じられる「m」ビットの重み値の、ビットのビット位置に比例し得る。たとえば、第2の累算器キャパシタ906b、906d、906f、906hの定格容量は、最下位ビットに対して最も低く、最上位ビットに対して最も高くてもよい。別の例として、第1の累算器キャパシタ906a、906c、906e、906gの定格容量は、最下位ビットに対して最も高く、最上位ビットに対して最も低くてもよい。第1の累算器キャパシタ906a、906c、906e、906gと第2の累算器キャパシタ906b、906d、906f、906hのペアの合成容量は、サンプラキャパシタ904a、904b、904c、904dの静電容量と等しくてもよい。いくつかの実施形態では、各加算器キャパシタ904a、904b、904c、904d、906a、906b、906c、906d、906e、906f、906g、906hは、単一のキャパシタであり得る。いくつかの実施形態では、各加算器キャパシタ904a、904b、904c、904d、906a、906b、906c、906d、906e、906f、906g、906hは、直列および/または並列に電気的に接続される複数のキャパシタであり得る。加算器キャパシタ904a、904b、904c、904d、906a、906b、906c、906d、906e、906f、906g、906hの定格容量は、シングルビットMAC206、206a、206b、206c、206dからアナログ加算器によって受け取られるシングルビットMAC出力のためのハードワイヤードバイナリ重みとして機能し得る。
【0100】
サンプラキャパシタ904a、904b、904c、904dは、関連するシングルビットMACスイッチ304a、304b、304c、304dを介してシングルビットMAC206、206a、206b、206c、206dに選択的かつ電気的に接続されるとき、シングルビットMAC206、206a、206b、206c、206dからシングルビットMAC出力を受け取り、記憶し得る。シングルビットMACスイッチ304a、304b、304c、304dは、サンプラキャパシタ904a、904b、904c、904dが特定の順序でシングルビットMAC出力を受け取るように、シングルビットMAC206、206a、206b、206c、206dからシングルビットMAC出力を出力するように制御され得る。いくつかの実施形態では、順序は、「n」ビットの活性化値および「m」ビットの重み値の最下位ビットの乗算から開始して、「n」ビットの活性化値および「m」ビットの重み値の最上位ビットの乗算まで、逐次的であり得る。たとえば、シングルビットMACスイッチ304a、304b、304c、304dは、シングルビットMAC出力をアナログ加算器に出力するためにシングルビットMAC206、206a、206b、206c、206dとアナログ加算器を電気的に接続する回路を逐次閉じるように制御され得る。サンプラキャパシタ904a、904b、904c、904dは、シングルビットMAC206、206a、206b、206c、206dとサンプラキャパシタ904a、904b、904c、904dを電気的に接続する回路を閉じることによって、シングルビットMAC出力で逐次荷電され得る。言い換えると、サンプラキャパシタ904a、904b、904c、904dは、シングルビットMAC206、206a、206b、206c、206dから、「n」ビットの活性化値および「m」ビットの重み値の各乗算と累算のためのシングルビットMAC出力を受け取り得る。いくつかの実施形態では、シングルビットMACスイッチ304a、304b、304c、304dは、シングルビットMAC出力を生み出すために乗じられる「n」ビットの活性化値および「m」ビットの重み値のビットのビット位置に基づく順序で、シングルビットMAC出力がサンプラキャパシタ904a、904b、904c、904dに荷電されるような方式で制御され得る。サンプラキャパシタ904a、904b、904c、904dは、シングルビットMAC206、206a、206b、206c、206dに選択的かつ電気的に接続されるとき、シングルビットMAC出力を受け取ることによって充電し得る。サンプラキャパシタ904a、904b、904c、904dは、シングルビットMAC出力のサンプルを記憶してもよく、これは、シングルビットMAC出力のサンプルを累算器キャパシタ906a、906b、906c、906d、906e、906f、906g、906hと共有することによって改変される、受け取られたシングルビットMAC出力の組合せを含んでもよい。シングルビットMAC出力のサンプルは、シングルビットMAC出力サンプルと本明細書で呼ばれる。サンプラキャパシタ904a、904b、904c、904dは、各シングルビットMAC出力を受け取ったことに応答して、シングルビットMAC出力サンプルを記憶して出力し得る。
【0101】
累算器キャパシタ906a、906b、906c、906d、906e、906f、906g、906hは、加算器スイッチ908a、908b、908c、908dおよび/または加算器スイッチ910a、910b、910c、910dを介してサンプラキャパシタ904a、904b、904c、904dに選択的かつ電気的に接続されるとき、サンプラキャパシタ904a、904b、904c、904dからシングルビットMAC出力サンプルを受け取って記憶し得る。サンプラキャパシタ904a、904b、904c、904dは、サンプラキャパシタ904a、904b、904c、904dが、加算器スイッチ908a、908b、908c、908d、および/または加算器スイッチ910a、910b、910c、910dによって、シングルビットMAC206、206a、206b、206c、206dから選択的に切断され、累算器キャパシタ906a、906b、906c、906d、906e、906f、906g、906hに選択的に接続されるとき、シングルビットMAC出力サンプルを累算器キャパシタ906a、906b、906c、906d、906e、906f、906g、906hに放電または出力し得る。累算器キャパシタ906a、906b、906c、906d、906e、906f、906g、906hは、シングルビットMAC出力サンプルを受け取って記憶し得る。たとえば、シングルビットMACスイッチ304a、304b、304c、304dは、シングルビットMAC206、206a、206b、206c、206dからサンプラキャパシタ904a、904b、904c、904dを選択的に切断するように制御され得る。加算器スイッチ908a、908b、908c、908dは、電気伝導バス316を介して、サンプラキャパシタ904a、904b、904c、904dを累算器キャパシタ906a、906b、906c、906d、906e、906f、906g、906hに電気的に接続するように制御され得る。加算器スイッチ910a、910b、910c、910dはまた、電気伝導バス316を介してサンプラキャパシタ904a、904b、904c、904dを第2の累算器キャパシタ906b、906d、906f、906hに電気的に接続するように制御され得る。サンプラキャパシタ904a、904b、904c、904dは、シングルビットMAC出力サンプルを累算器キャパシタ906a、906b、906c、906d、906e、906f、906g、906hに出力し得る。シングルビットMAC出力サンプルを受け取った後、シングルビットMAC出力サンプルは、図8を参照して本明細書においてさらに説明されるように、サンプラキャパシタ904a、904b、904c、904dおよび累算器キャパシタ906a、906b、906c、906d、906e、906f、906g、906hによって共有されてもよく、図8では、累算器キャパシタ906aおよび906b、906cおよび906d、906eおよび906f、906gおよび906hのペアが単一の累算器キャパシタとして表されてもよい。サンプラキャパシタ904a、904b、904c、904dによって出力される各シングルビットMAC出力を受け取り、サンプラキャパシタ904a、904b、904c、904dによってシングルビットMAC出力サンプルを出力し、累算器キャパシタ906a、906b、906c、906d、906e、906f、906g、906hによってシングルビットMAC出力サンプルを受け取るプロセスは、「n」ビットの活性化値および「m」ビットの重み値のビットのすべての各乗算と加算について継続し得る。
【0102】
第2の累算器キャパシタ906b、906d、906f、906hは、加算器スイッチ910a、910b、910c、910dによって、シングルビットMAC206、206a、206b、206c、206d、サンプラキャパシタ904a、904b、904c、904d、および第1の累算器キャパシタ906a、906c、906e、906gから選択的かつ電気的に切断され、加算器スイッチ912a、912b、912c、912dによってADC212に選択的かつ電気的に接続されるとき、シングルビットMAC出力サンプルを出力または放電し得る。加算器スイッチ910a、910b、910c、910dは、シングルビットMAC206、206a、206b、206c、206d、サンプラキャパシタ904a、904b、904c、904d、および第1の累算器キャパシタ906a、906c、906e、906gから、第2の累算器キャパシタ906b、906d、906f、906hを選択的かつ電気的に切断するように制御されてもよい。加算器スイッチ912a、912b、912c、912dは、電気伝導回路316を介して第2の累算器キャパシタ906b、906d、906f、906hをADC212に選択的かつ電気的に接続するように制御され得る。シングルビットMAC出力サンプルは、電気伝導バス316およびADC212に重み付けられたアナログ電圧として出力され得る。アナログ電圧の各々の重みは、アナログ電圧として出力する第2の累算器キャパシタ906b、906d、906f、906hの定格容量に基づき得る。マルチビットMAC出力と本明細書でも呼ばれることがある、伝導バス316上での重み付けられたアナログ電圧の合成は、重み付けられたアナログ電圧の重み付けられた平均アナログ電圧をもたらす、重み付けられたアナログ電圧の加算であってもよい。この合成は、累算器キャパシタ906b、906d、906f、906hが電気伝導バス316に並列に電気的に接続されることにより、重み付けられた平均アナログ電圧をもたらし得る。電気伝導バス316上の重み付けられた平均アナログ電圧は、ADC212によってデジタル信号に変換され得る。
【0103】
図10は、様々な実施形態を実装するのに適した、マルチビット活性化値およびマルチビット重みのためのシングルビットMAC出力加算器の例を示す。図1から図10を参照すると、マルチビットMAC1000は、任意の数のアナログ加算器を含み得る。いくつかの実施形態では、アナログ加算器は、任意の数の加算器スイッチ1004a、1004b、1004c、1004d、1006a、1006b、1006c、1006d、および加算器キャパシタ904a、904b、904c、904d、1002a、1002b、1002c、1002dを含み得る。いくつかの実施形態では、アナログ加算器はさらに、出力スイッチ1008を含み得る。いくつかの実施形態では、アナログ加算器はさらに、任意の数の指定された電気的なグラウンド508を含み得る。いくつかの実施形態では、アナログ加算器はさらに、任意の数のクリアスイッチ1010a、1010b、1010c、1010d、1014a、1014b、1014c、1014d、1016a、1016b、1016c、1016dおよび電気的なグラウンド1012とそれらの組合せを含み得る。サンプラキャパシタと本明細書で呼ばれる、アナログ加算器の加算器キャパシタ904a、904b、904c、904dは、関連するシングルビットMACスイッチ304a、304b、304c、304dを介して、シングルビットMAC206、206a、206b、206c、206dに選択的かつ電気的に接続され得る。加算器キャパシタ904a、904b、904c、904d、1002a、1002b、1002c、1002dは、加算器スイッチ1004a、1004b、1004c、1004d、1006a、1006b、1006c、1006dを介して互いに選択的かつ電気的に接続され得る。加算器キャパシタ904a、904b、904c、904d、1002a、1002b、1002c、1002dは、電気伝導バス316と電気的なグラウンド508との間に電気的に接続され得る。加算器キャパシタ904a、904b、904c、904d、1002a、1002b、1002c、1002dは、クリアスイッチ1014a、1014b、1014c、1014d、1016a、1016b、1016c、1016dを介して電気的なグラウンド508に選択的かつ電気的に接続され得る。たとえば、加算器キャパシタ904a、904b、904c、904d、1002a、1002b、1002c、1002dとクリアスイッチ1014a、1014b、1014c、1014d、1016a、1016b、1016c、1016dのペアは、電気的なグラウンド508に並列に電気的に接続され得る。加算器キャパシタ904d、1002dは、電気伝導バス316および出力スイッチ1008を介してADC212に電気的に接続され得る。シングルビットMAC206a、206b、206c、206dは、クリアスイッチ1010a、1010b、1010c、1010dを介して電気的なグラウンド1012に選択的かつ電気的に接続され得る。加算器スイッチ1004a、1004b、1004c、1004d、1006a、1006b、1006c、1006dは、加算器キャパシタ904a、904b、904c、904d、1002a、1002b、1002c、1002dを互いに選択的かつ電気的に接続するように制御されてもよく、出力スイッチ1008は、MACコントローラ(たとえば、図1のプロセッサ104、MACコントローラ124)によって加算器キャパシタ904a、904b、904c、904d、1002a、1002b、1002c、1002dをADC212に選択的かつ電気的に接続するように制御されてもよい。クリアスイッチ1010a、1010b、1010c、1010d、1014a、1014b、1014c、1014d、1016a、1016b、1016c、1016dも、MACコントローラによって制御され得る。
【0104】
アナログ加算器は、サンプラキャパシタ904a、904b、904c、904dにおいて、シングルビットMAC206、206a、206b、206c、206dからシングルビットMAC出力を受け取り得る。サンプラキャパシタ904a、904b、904c、904dは、シングルビットMAC206、206a、206b、206c、206dに選択的かつ電気的に接続され得る。累算器キャパシタと本明細書で呼ばれる加算器キャパシタ1002a、1002b、1002c、1002dは、サンプラキャパシタ904a、904b、904c、904dに選択的かつ電気的に接続され得る。サンプラキャパシタ904a、904b、904c、904dおよび累算器キャパシタ1002a、1002b、1002c、1002dは、同じ定格容量(「C」)を有し得る。いくつかの実施形態では、各加算器キャパシタ904a、904b、904c、904d、1002a、1002b、1002c、1002dは、単一のキャパシタであり得る。いくつかの実施形態では、各加算器キャパシタ904a、904b、904c、904d、1002a、1002b、1002c、1002dは、直列および/または並列に電気的に接続される複数のキャパシタであり得る。加算器キャパシタ904a、904b、904c、904d、1002a、1002b、1002c、1002dの定格容量は、シングルビットMAC206、206a、206b、206c、206dからアナログ加算器によって受け取られるシングルビットMAC出力のためのハードワイヤードバイナリ重みとして機能し得る。
【0105】
サンプラキャパシタ904a、904b、904c、904dは、関連するシングルビットMACスイッチ304a、304b、304c、304dを介してシングルビットMAC206、206a、206b、206c、206dに選択的かつ電気的に接続されるとき、シングルビットMAC206、206a、206b、206c、206dからシングルビットMAC出力を受け取り、記憶し得る。シングルビットMACスイッチ304a、304b、304c、304dは、サンプラキャパシタ904a、904b、904c、904dが特定の順序でシングルビットMAC出力を受け取るように、シングルビットMAC206、206a、206b、206c、206dからシングルビットMAC出力を出力するように制御され得る。いくつかの実施形態では、順序は、「n」ビットの活性化値および「m」ビットの重み値の最下位ビットの乗算から開始して、「n」ビットの活性化値および「m」ビットの重み値の最上位ビットの乗算まで、逐次的であり得る。たとえば、シングルビットMACスイッチ304a、304b、304c、304dは、シングルビットMAC出力をアナログ加算器に出力するためにシングルビットMAC206、206a、206b、206c、206dとアナログ加算器を電気的に接続する回路を逐次閉じるように制御され得る。サンプラキャパシタ904a、904b、904c、904dは、シングルビットMAC206、206a、206b、206c、206dとサンプラキャパシタ904a、904b、904c、904dを電気的に接続する回路を閉じることによって、シングルビットMAC出力で逐次荷電され得る。言い換えると、サンプラキャパシタ904a、904b、904c、904dは、シングルビットMAC206、206a、206b、206c、206dから、「n」ビットの活性化値および「m」ビットの重み値の各乗算と累算のためのシングルビットMAC出力を受け取り得る。いくつかの実施形態では、シングルビットMACスイッチ304a、304b、304c、304dは、シングルビットMAC出力を生み出すために乗じられる「n」ビットの活性化値および「m」ビットの重み値のビットのビット位置に基づく順序で、シングルビットMAC出力がサンプラキャパシタ904a、904b、904c、904dに荷電されるような方式で制御され得る。サンプラキャパシタ904a、904b、904c、904dは、シングルビットMAC206、206a、206b、206c、206dに選択的かつ電気的に接続されるとき、シングルビットMAC出力を受け取ることによって充電し得る。サンプラキャパシタ904a、904b、904c、904dは、シングルビットMAC出力のサンプルを記憶してもよく、これは、シングルビットMAC出力のサンプルを累算器キャパシタ1002a、1002b、1002c、1002dと共有することによって改変される、受け取られたシングルビットMAC出力の組合せを含んでもよい。シングルビットMAC出力のサンプルは、シングルビットMAC出力サンプルと本明細書で呼ばれる。サンプラキャパシタ904a、904b、904c、904dは、各シングルビットMAC出力を受け取ったことに応答して、シングルビットMAC出力サンプルを記憶して出力し得る。
【0106】
累算器キャパシタ1002a、1002b、1002c、1002dは、加算器スイッチ1004a、1004b、1004c、1004dを介してサンプラキャパシタ904a、904b、904c、904dに選択的かつ電気的に接続されるとき、サンプラキャパシタ904a、904b、904c、904dからシングルビットMAC出力サンプルを受け取って記憶し得る。サンプラキャパシタ904a、904b、904c、904dは、サンプラキャパシタ904a、904b、904c、904dが、加算器スイッチ1004a、1004b、1004c、1004dによって、シングルビットMAC206、206a、206b、206c、206dから選択的に切断され、累算器キャパシタ1002a、1002b、1002c、1002dに選択的に接続されるとき、シングルビットMAC出力サンプルを累算器キャパシタ1002a、1002b、1002c、1002dに放電または出力し得る。累算器キャパシタ1002a、1002b、1002c、1002dは、シングルビットMAC出力サンプルを受け取って記憶し得る。たとえば、シングルビットMACスイッチ304a、304b、304c、304dは、シングルビットMAC206、206a、206b、206c、206dからサンプラキャパシタ904a、904b、904c、904dを選択的に切断するように制御され得る。加算器スイッチ1004a、1004b、1004c、1004dは、電気伝導バス316を介してサンプラキャパシタ904a、904b、904c、904dを累算器キャパシタ1002a、1002b、1002c、1002dに電気的に接続するように制御され得る。サンプラキャパシタ904a、904b、904c、904dは、シングルビットMAC出力サンプルを累算器キャパシタ1002a、1002b、1002c、1002dに出力し得る。シングルビットMAC出力サンプルを受け取った後、シングルビットMAC出力サンプルは、図8を参照して本明細書でさらに説明されるように、サンプラキャパシタ904a、904b、904c、904dおよび累算器キャパシタ1002a、1002b、1002c、1002dによって共有され得る。サンプラキャパシタ904a、904b、904c、904dによって各シングルビットMAC出力を受け取り、サンプラキャパシタ904a、904b、904c、904dによってシングルビットMAC出力サンプルを出力し、累算器キャパシタ1002a、1002b、1002c、1002dによってシングルビットMAC出力サンプルを受け取るプロセスは、「n」ビットの活性化値および「m」ビットの重み値のビットのすべての各乗算と加算について継続し得る。
【0107】
いくつかの実施形態では、累算器キャパシタ1002a、1002b、1002c、1002dは、加算器スイッチ1004a、1004b、1004c、1004dによってシングルビットMAC206a、206b、206c、206dおよびサンプラキャパシタ904a、904b、904c、904dから選択的かつ電気的に切断されるとき、加算器スイッチ1006a、1006b、1006c、1006dによって累算器キャパシタ1002a、1002b、1002c、1002dに選択的かつ電気的に接続されるとき、および出力スイッチ1008によってADC212に選択的かつ電気的に接続されるとき、シングルビットMAC出力サンプルを出力または放電し得る。累算器キャパシタ1002a、1002b、1002c、1002dは、シングルビットMAC出力サンプルで充電されてもよく、加算器スイッチ1004a、1004b、1004c、1004dは、サンプラキャパシタ904a、904b、904c、904dから累算器キャパシタ1002a、1002b、1002c、1002dを選択的かつ電気的に切断するように制御されてもよい。シングルビットMAC206aのシングルビットMAC出力などの、「m」ビットの重み値の最下位ビットについて、アナログ加算器は、累算器キャパシタ1002aのシングルビットMAC出力サンプルの電荷を半分に分け得る。たとえば、アナログ加算器はサンプラキャパシタ904aをリセットしてもよく、一方、加算器スイッチ1004aはサンプラキャパシタ904aから累算器キャパシタ1002aを選択的かつ電気的に切断するように制御される。加算器スイッチ1004aは、累算器キャパシタ1002aおよびリセットサンプラキャパシタ904aを選択的かつ電気的に接続するように制御されてもよく、累算器キャパシタ1002aのシングルビットMAC出力サンプルをサンプラキャパシタ904aで分割する。加算器スイッチ1004aは、サンプラキャパシタ904aから累算器キャパシタ1002aを選択的かつ電気的に切断するように制御され得る。
【0108】
加算器スイッチ1006a、1006b、1006c、1006dは、最下位ビットから最上位ビットまで累算器キャパシタ1002a、1002b、1002c、1002dを逐次電気的に接続するように制御され得る。たとえば、加算器スイッチ1006aは、累算器キャパシタ1002a、1002bを選択的かつ電気的に接続するように制御されてもよく、一方、加算器スイッチ1006bは、累算器キャパシタ1002c、1002dから累算器キャパシタ1002a、1002bを選択的かつ電気的に切断するように制御されてもよい。累算器キャパシタ1002a、1002bは、シングルビットMAC出力サンプルを共有してもよく、これは、累算器キャパシタ1002a、1002bの各々のシングルビットMAC出力サンプルの半分を共有することを含んでもよい。たとえば、累算器キャパシタ1002a、1002bは、シングルビットMAC出力サンプルがサンプラキャパシタ904aで分割されるときに以前に半分にされたので、累算器キャパシタ1002aの元のシングルビットMAC出力サンプルの4分の1と、累算器キャパシタ1002bの元のシングルビットMAC出力サンプルの半分とを共有してもよい。共有されるシングルビットMAC出力サンプルは、累算器キャパシタ1002bの新しいシングルビットMAC出力サンプルであり得る。続いて、加算器スイッチ1006bは、累算器キャパシタ1002b、1002cを選択的かつ電気的に接続するように制御されてもよく、一方、加算器スイッチ1006a、1006cは、累算器キャパシタ1002a、1002dから累算器キャパシタ1002b、1002cを選択的かつ電気的に切断するように制御されてもよい。累算器キャパシタ1002b、1002cは、それらのシングルビットMAC出力サンプルを共有し得る。たとえば、累算器キャパシタ1002b、1002cは、累算器キャパシタ1002aの元のシングルビットMAC出力サンプルの8分の1および累算器キャパシタ1002bの元のシングルビットMAC出力サンプルの4分の1であり得る、累算器キャパシタ1002bの新しいシングルビットMAC出力サンプルの半分と、累算器キャパシタ1002cの元のシングルビットMAC出力サンプルの半分とを共有し得る。加算器スイッチ1006a、1006b、1006c、1006dは同様に、累算器キャパシタ1002a、1002b、1002c、1002dのすべてがシングルビットMAC出力サンプルを共有するまで、累算器キャパシタ1002a、1002b、1002c、1002dを選択的かつ電気的に接続および切断するように逐次制御され得る。
【0109】
出力スイッチ1008は、電気伝導回路316を介して累算器キャパシタ1006dをADC212に選択的かつ電気的に接続するように制御され得る。累算器キャパシタ1006d上のシングルビットMAC出力サンプルは、電気伝導バス316およびADC212に出力され得る累算器キャパシタ1002a、1002b、1002c、1002dのすべての共有されるシングルビットMAC出力サンプルの組合せの重み付けられたアナログ電圧であり得る。電気伝導バス316上の重み付けられた平均アナログ電圧は、ADC212によってデジタル信号に変換され得る。
【0110】
いくつかの実施形態では、サンプラキャパシタ904a、904b、904c、904d、および累算器キャパシタ1002a、1002b、1002c、1002dは、シングルビットMACスイッチ304a、304b、304c、304dによってシングルビットMAC206、206a、206b、206c、206dから選択的かつ電気的に切断されるとき、加算器スイッチ1004a、1004b、1004c、1004d、1006a、1006b、1006c、1006dによってサンプラキャパシタ904a、904b、904c、904dおよび累算器キャパシタ1002a、1002b、1002c、1002dに選択的かつ電気的に接続されるとき、および出力スイッチ1008によってADC212に選択的かつ電気的に接続されるとき、シングルビットMAC出力サンプルを出力または放電し得る。加算器スイッチ1004a、1004b、1004c、1004dは、サンプラキャパシタ904a、904b、904c、904dおよび累算器キャパシタ1002a、1002b、1002c、1002dのペアを、それらのペアがシングルビットMAC出力サンプルで充電され得るように、選択的かつ電気的に接続するように制御され得る。シングルビットMACスイッチ304a、304b、304c、304dは、シングルビットMAC206、206a、206b、206c、206dからサンプラキャパシタ904a、904b、904c、904dと累算器キャパシタ1002a、1002b、1002c、1002dのペアを選択的かつ電気的に切断するように制御され得る。シングルビットMAC206aのシングルビットMAC出力などの、「m」ビットの重み値の最下位ビットについて、アナログ加算器は、サンプラキャパシタ904aと累算器キャパシタ1002aのペアのシングルビットMAC出力サンプルの電荷を半分に分け得る。たとえば、アナログ加算器はサンプラキャパシタ904aをリセットしてもよく、一方、加算器スイッチ1004aはサンプラキャパシタ904aから累算器キャパシタ1002aを選択的かつ電気的に切断するように制御される。加算器スイッチ1004aは、累算器キャパシタ1002aおよびリセットサンプラキャパシタ904aを選択的かつ電気的に接続するように制御されてもよく、累算器キャパシタ1002aのシングルビットMAC出力サンプルをサンプラキャパシタ904aで分割する。加算器スイッチ1004aは、サンプラキャパシタ904aと累算器キャパシタ1002aのペアの選択的で電気的な接続を維持するように制御され得る。
【0111】
加算器スイッチ1006a、1006b、1006c、1006dは、最下位ビットから最上位ビットまで、サンプラキャパシタ904a、904b、904c、904dと累算器キャパシタ1002a、1002b、1002c、1002dのペアを逐次電気的に接続するように制御され得る。たとえば、加算器スイッチ1006aは、サンプラキャパシタ904aおよび累算器キャパシタ1002aのペアとサンプラキャパシタ904bと累算器キャパシタ1002bのペアを選択的かつ電気的に接続するように制御され得る。加算器スイッチ1006aは選択的で電気的な接続のために制御されるが、加算器スイッチ1006bは、サンプラキャパシタ904c、904dと累算器キャパシタ1002c、1002dのペアから、サンプラキャパシタ904a、904bと累算器キャパシタ1002a、1002bのペアを選択的かつ電気的に切断するように制御され得る。サンプラキャパシタ904a、904bと累算器キャパシタ1002a、1002bのペアは、それらのシングルビットMAC出力サンプルを共有してもよく、これは、サンプラキャパシタ904a、904bと累算器キャパシタ1002a、1002bのペアの各々のシングルビットMAC出力サンプルの半分を共有することを含んでもよい。たとえば、サンプラキャパシタ904a、904bと累算器キャパシタ1002a、1002bのペアは、シングルビットMAC出力サンプルが累算器キャパシタ1002aとサンプラキャパシタ904aとの間で分割されるときに以前に半分にされたので、サンプラキャパシタ904aと累算器キャパシタ1002aのペアの元のシングルビットMAC出力サンプルの4分の1と、サンプラキャパシタ904bと累算器キャパシタ1002bのペアの元のシングルビットMAC出力サンプルの半分とを共有してもよい。共有されるシングルビットMAC出力サンプルは、サンプラキャパシタ904bと累算器キャパシタ1002bのペアの新しいシングルビットMAC出力サンプルであり得る。続いて、加算器スイッチ1006bは、サンプラキャパシタ904b、904cと累算器キャパシタ1002b、1002cのペアを選択的かつ電気的に接続するように制御され得る。加算器スイッチ1006bは選択的で電気的な接続のために制御されるが、加算器スイッチ1006a、1006cは、サンプラキャパシタ904a、904dと累算器キャパシタ1002a、1002dのペアから、サンプラキャパシタ904b、904cと累算器キャパシタ1002b、1002cのペアを選択的かつ電気的に切断するように制御され得る。サンプラキャパシタ904b、904cと累算器キャパシタ1002b、1002cのペアは、それらのシングルビットMAC出力サンプルを共有し得る。たとえば、サンプラキャパシタ904b、904cと累算器キャパシタ1002b、1002cのペアは、サンプラキャパシタ904aと累算器キャパシタ1002aのペアの元のシングルビットMAC出力サンプルの8分の1およびサンプラキャパシタ904bと累算器キャパシタ1002bのペアの元のシングルビットMAC出力サンプルの4分の1であり得る、サンプラキャパシタ904bと累算器キャパシタ1002bのペアの新しいシングルビットMAC出力サンプルの半分と、サンプラキャパシタ904cと累算器キャパシタ1002cのペアの元のシングルビットMAC出力サンプルの半分とを共有し得る。加算器スイッチ1006a、1006b、1006c、1006dは同様に、サンプラキャパシタ904a、904b、904c、904dと累算器キャパシタ1002a、1002b、1002c、1002dのペアのすべてがシングルビットMAC出力サンプルを共有するまで、サンプラキャパシタ904a、904b、904c、904dと累算器キャパシタ1002a、1002b、1002c、1002dのペアを選択的かつ電気的に接続および切断するように逐次制御され得る。
【0112】
出力スイッチ1008は、電気伝導回路316を介してサンプラキャパシタ904dと累算器キャパシタ1002dのペアをADC212に選択的かつ電気的に接続するように制御され得る。サンプラキャパシタ904dと累算器キャパシタ1002dのペア上のシングルビットMAC出力サンプルは、電気伝導バス316およびADC212に出力され得るサンプラキャパシタ904a、904b、904c、904dと累算器キャパシタ1002a、1002b、1002c、1002dのペアのすべての共有されるシングルビットMAC出力サンプルの組合せの重み付けられたアナログ電圧であり得る。電気伝導バス316上の重み付けられた平均アナログ電圧は、ADC212によってデジタル信号に変換され得る。
【0113】
「n」ビットの活性化値と「m」ビットの重み値のビットのすべての乗算と加算を完了した後、マルチビットMAC1000はリセットまたはクリアされ得る。クリアスイッチ1014a、1014b、1014c、1014d、1016a、1016b、1016c、1016dは、加算器キャパシタ904a、904b、904c、904d、1002a、1002b、1002c、1002dを含むアナログ加算器を電気的なグラウンド508に選択的かつ電気的に接続するように、MACコントローラによって制御され得る。クリアスイッチ1010a、1010b、1010c、1010dは、シングルビットMAC206a、206b、206c、206dを電気的なグラウンド1012に選択的かつ電気的に接続するように、MACコントローラによって制御され得る。マルチビットMAC1000のコンポーネントを電気的なグラウンド508、1012に電気的に接続することは、「n」ビットの活性化値および/または「m」ビットの重み値の異なる組合せの次の乗算と加算がマルチビットMAC1000によって実施され得るように、マルチビットMAC1000の中のあらゆる残っている電圧を放電し得る。
【0114】
図11は、ある実施形態によるマルチビットMACの制御のための方法1100を示す。図1図11を参照すると、方法1100は、コンピューティングデバイス(たとえば、図1のモバイルコンピューティングデバイス100)で、プロセッサ(たとえば、図1のプロセッサ104、MACコントローラ124)において実行されるソフトウェアで、汎用ハードウェアで、専用ハードウェア(たとえば、図1図7図9、および図10のマルチビットMAC130、200、300、400、500、600、700、900、1000)で、または、他の個別のコンポーネント(たとえば、図1に示されるメモリ106、114)を含むマルチビットMAC制御システム内のプロセッサ実行ソフトウェアおよび様々なメモリ/キャッシュコントローラなどの、ソフトウェアで構成されるプロセッサと専用ハードウェアの組合せで、実施され得る。様々な実施形態において可能にされる代替の構成を包含するために、方法1100を実施するハードウェアは、本明細書では「MACデバイス」と呼ばれる。
【0115】
ブロック1102において、MACデバイスが、活性化値のビットの逐次的な入力を受け取り得る。活性化値のビットの逐次的な入力は、最下位ビットから最上位ビットまで、「n」ビットの活性化値のビットごとの入力を含み得る。
【0116】
ブロック1104において、MACデバイスが、逐次的な入力の各ビットと重み値のビットの積和演算を実行し得る。MACデバイスは、「n」ビットの活性化値の各ビットを「m」ビットの重み値のビットと乗じ得る。MACデバイスは、「n」ビットの活性化値の最下位ビットから最上位ビットの順序で、「n」ビットの活性化値の各ビットを「m」ビットの重み値のビットと逐次乗じ得る。いくつかの実施形態では、MACデバイスは、「n」ビットの活性化値の各ビットを「m」ビットの重み値のビットのすべてと逐次乗じ得る。たとえば、MACデバイスは、最下位ビットから最上位ビットまで、「n」ビットの活性化値の各ビットを「m」ビットの重み値のビットと乗じ、その後、最下位ビットから最上位ビットまで、「n」ビットの活性化値の各ビットを「m」ビットの重み値の別のビットと乗じ得る。いくつかの実施形態では、MACデバイスは、「n」ビットの活性化値の各ビットを「m」ビットの重み値のビットのすべてと並列に乗じ得る。たとえば、MACデバイスは、最下位ビットから最上位ビットまで、「n」ビットの活性化値の各ビットを「m」ビットの重み値のビットと乗じ、それと同時に、最下位ビットから最上位ビットまで、「n」ビットの活性化値の各ビットを「m」ビットの重み値の別のビットと乗じ得る。MACデバイスは、各乗算の結果を累算し得る。
【0117】
ブロック1106において、MACデバイスが、シングルビットMAC出力と本明細書で呼ばれる、乗算および累算の結果を出力するようにスイッチ(たとえば、図3図7図9、および図10のシングルビットMACスイッチ304a、304b、304c、304d)を制御し得る。いくつかの実施形態では、シングルビットMAC出力は、「n」ビット活性化値の各ビットと「m」ビットの重み値のビットの個々の乗算および累算の結果を含み得る。いくつかの実施形態では、シングルビットMAC出力は、「n」ビット活性化値の各ビットと「m」ビットの重み値のビットの累積的な乗算および累算の結果を含み得る。シングルビットMAC出力は、アナログ電圧信号という形式であり得る。MACデバイスは、様々なパターンでシングルビットMAC出力を出力するようにスイッチを制御し得る。たとえば、いくつかの実施形態では、MACデバイスは、乗算において使用される「n」ビットの活性化値の、次いで「m」ビットの重み値のビットのビット位置の昇順などで、各シングルビットMAC出力を逐次出力するように、スイッチを制御し得る。たとえば、いくつかの実施形態では、MACデバイスは、各シングルビットMAC出力を一度出力するようにスイッチを制御し得る。別の例では、いくつかの実施形態において、MACデバイスは、各シングルビットMAC出力を2q回出力するようにスイッチを制御してもよく、「q」は、q=0である最下位ビットからq=n-1である最上位ビットまでの活性化値ビットの位置であってもよい。同様に、マルチビットの「m」ビットの重み値について、MACデバイスは、各シングルビットMAC出力を2r回出力するようにスイッチを制御してもよく、「r」は、r=0である最下位ビットからr=m-1である最上位ビットまでの重み値ビットの位置であってもよい。いくつかの実施形態では、シングルビットMAC出力のすべてを出力するのに、2q x 2r回のサイクルを要することがある。
【0118】
ブロック1108において、MACデバイスが、シングルビットMAC出力を重み付け、加算し、および/または記憶し得る。いくつかの実施形態では、MACデバイスは、シングルビットMAC出力を異なる順序で重み付け、加算し、および/または記憶し得る。たとえば、いくつかの実施形態では、MACデバイスは、シングルビットMAC出力を加算して記憶する前に、シングルビットMAC出力を重み付け得る。別の例では、いくつかの実施形態では、MACデバイスは、シングルビットMAC出力を重み付ける前に、シングルビットMAC出力を加算して記憶し得る。別の例では、いくつかの実施形態において、MACデバイスは、シングルビットMAC出力を同時に重み付け、加算し、記憶し得る。別の例では、いくつかの実施形態において、MACデバイスは、シングルビットMAC出力を様々な組合せおよび順序で重み付け、加算し、および/または記憶することを繰り返し得る。別の例では、いくつかの実施形態において、MACデバイスは、シングルビットMAC出力を異なる順序のいずれかで繰り返し、重み付け、加算し、記憶し得る。いくつかの実施形態では、図3図7図9、および図10を参照して本明細書において説明されるように、MACデバイスのアナログ加算器(たとえば、図1の加算器128)は、ブロック1108において、シングルビットMAC出力を重み付け、加算し、および/または記憶することを実施し得る。いくつかの実施形態では、MACデバイスは、ブロック1108においてシングルビットMAC出力を重み付け、加算し、および/または記憶することを実施するように、様々なスイッチ(たとえば、図5の加算器スイッチ504a、504b、504c、図6および図7の加算器スイッチ604a、604b、図7の加算器スイッチ702、図9の加算器スイッチ908a、908b、908c、908d、910a、910b、910c、910d、912a、912b、912c、912d、図10の加算器スイッチ1004a、1004b、1004c、1004d、1006a、1006b、1006c、1006d)を制御し得る。いくつかの実施形態では、MACデバイスのキャパシタ(たとえば、図3および図4の積分器キャパシタ314、図4の指定されたキャパシタ402a、402b、402c、402d、図5の加算器キャパシタ506a、506b、506c、図6および図7の加算器キャパシタ606a、606b、図9の加算器キャパシタ904a、904b、904c、904d、906a、906b、906c、906d、906e、906f、906g、906h、図10の加算器キャパシタ904a、904b、904c、904d、1002a、1002b、1002c、1002d)は、ブロック1108においてシングルビットMAC出力を重み付け、加算し、および/または記憶することを実施するために使用され得る。
【0119】
ブロック1110において、MACデバイスが、シングルビットMAC出力を平均し得る。いくつかの実施形態では、シングルビットMAC出力を平均することは、ブロック1108においてシングルビットMAC出力を重み付けて加算することの一部であり得る。いくつかの実施形態では、シングルビットMAC出力を平均することは、複数のシングルビットMAC出力をADC(たとえば、図2図7図9、および図10のADC212)への出力において組み合わせることを含み得る。いくつかの実施形態では、図3図7図9、および図10を参照して本明細書において説明されるように、MACデバイスのアナログ加算器は、ブロック1110においてシングルビットMAC出力を平均し得る。MACデバイスは、ADCへの出力において複数のシングルビットMAC出力を組み合わせるように、様々なスイッチ(たとえば、図9の加算器スイッチ912a、912b、912c、912d、図10の加算器スイッチ1004a、1004b、1004c、1004d、1006a、1006b、1006c、1006d)を制御し得る。
【0120】
ブロック1112において、MACデバイスが、マルチビットMAC出力とも本明細書で呼ばれる、平均されたシングルビットMAC出力を出力し得る。MACデバイスは、平均されたシングルビットMAC出力をADCに出力し得る。いくつかの実施形態では、図3図7図9、および図10を参照して本明細書において説明されるように、MACデバイスのアナログ加算器は、ブロック1112において平均されたシングルビットMAC出力を出力し得る。いくつかの実施形態では、MACデバイスは、平均されたシングルビットMAC出力をADCに出力するように、様々なスイッチ(たとえば、図5の加算器スイッチ504a、504b、504c、図6および図7の加算器スイッチ604a、604b、図7の加算器スイッチ702、図9の加算器スイッチ908a、908b、908c、910a、910b、910c、910d、912a、912b、912c、912d、図10の出力スイッチ1008)を制御し得る。
【0121】
ブロック1114において、MACデバイスが、MACデバイスのストレージをクリアし得る。いくつかの実施形態では、図3図7図9、および図10を参照して本明細書において説明されるように、MACデバイスのアナログ加算器は、ブロック1114においてMACデバイスのストレージをクリアし得る。いくつかの実施形態では、MACデバイスは、MACデバイスのストレージ(たとえば、図3および図4の積分器キャパシタ314、図4の指定されたキャパシタ402a、402b、402c、402d、図5の加算器キャパシタ506a、506b、506c、図6および図7の加算器キャパシタ606a、606b、図9の加算器キャパシタ904a、904b、904c、904d、906a、906b、906c、906d、906e、906f、図10の加算器キャパシタ904a、904b、904c、904d、1002a、1002b、1002c、1002d)を電気的なグラウンド(たとえば、図3図7の電気的なグラウンド310、310a、310b)に電気的に接続するように、様々なスイッチ(たとえば、図3図7のクリアスイッチ308、308a、308b、図5の加算器スイッチ504a、504b、504c、図6および図7の加算器スイッチ604a、604b、図7の加算器スイッチ702、図9の加算器スイッチ908a、908b、908c、908d、910a、910b、910c、910d、912a、912b、912c、912d、図10の加算器スイッチ1004a、1004b、1004c、1004d、1006a、1006b、1006c、1006d)を制御し得る。MACデバイスのストレージを電気的なグラウンドに電気的に接続することは、ストレージの電圧を0ボルトまたは0ボルト付近に引き下げ得る。
【0122】
(限定はされないが、図1図11を参照して上で説明された実施形態を含む)様々な実施形態は、モバイルコンピューティングデバイスを含む多種多様なコンピューティングシステムにおいて実装されてもよく、様々な実施形態とともに使用するのに適したモバイルコンピューティングデバイスの例が図12に示されている。モバイルコンピューティングデバイス1200は、タッチスクリーンコントローラ1204および内部メモリ1206に結合されたプロセッサ1202を含み得る。プロセッサ1202は、汎用または特定の処理タスクのために指定された1つまたは複数のマルチコア集積回路であり得る。内部メモリ1206は、揮発性メモリまたは不揮発性メモリであってもよく、セキュアメモリおよび/もしくは暗号化メモリまたは非セキュアメモリおよび/もしくは非暗号化メモリ、あるいはそれらの任意の組合せであってもよい。活用され得るメモリタイプの例には、限定はされないが、DDR、LPDDR、GDDR、WIDEIO、RAM、SRAM、DRAM、P-RAM、R-RAM、M-RAM、STT-RAM、および埋込みDRAMがある。タッチスクリーンコントローラ1204およびプロセッサ1202はまた、抵抗性感知タッチスクリーン、容量性感知タッチスクリーン、赤外線感知タッチスクリーンなどの、タッチスクリーンパネル1212に結合され得る。加えて、モバイルコンピューティングデバイス1200のディスプレイは、タッチスクリーン機能を有する必要はない。
【0123】
モバイルコンピューティングデバイス1200は、互いに結合されたおよび/またはプロセッサ1202に結合された、通信を送受信するための1つまたは複数の無線信号トランシーバ1208(たとえば、Peanut、Bluetooth、ZigBee、Wi-Fi、RF無線)と、アンテナ1210とを有し得る。トランシーバ1208およびアンテナ1210は、様々なワイヤレス送信プロトコルスタックおよびインターフェースを実装するために、上述の回路とともに使用され得る。モバイルコンピューティングデバイス1200は、セルラーネットワークを介した通信を可能にするとともにプロセッサに結合される、セルラーネットワークワイヤレスモデムチップ1216を含み得る。
【0124】
モバイルコンピューティングデバイス1200は、プロセッサ1202に結合された周辺デバイス接続インターフェース1218を含み得る。周辺デバイス接続インターフェース1218は、1つのタイプの接続を受け入れるように単独で構成されてもよく、またはユニバーサルシリアルバス(USB)、FireWire、Thunderbolt、もしくはPCIeなどの、一般的もしくはプロプライエタリな様々なタイプの物理接続および通信接続を受け入れるように構成されてもよい。周辺デバイス接続インターフェース1218はまた、同様に構成された周辺デバイス接続ポート(図示せず)に結合されてもよい。
【0125】
モバイルコンピューティングデバイス1200はまた、オーディオ出力を提供するためのスピーカ1214を含み得る。モバイルコンピューティングデバイス1200はまた、本明細書で説明されるコンポーネントのすべてまたは一部を収容するための、プラスチック、金属、または材料の組合せで構築されたハウジング1220を含み得る。モバイルコンピューティングデバイス1200は、使い捨てまたは充電可能な電池などの、プロセッサ1202に結合された電源1222を含み得る。充電可能な電池はまた、モバイルコンピューティングデバイス1200の外部にある電源から充電電流を受けるために、周辺デバイス接続ポートに結合され得る。モバイルコンピューティングデバイス1200はまた、ユーザ入力を受け取るための物理ボタン1224を含み得る。モバイルコンピューティングデバイス1200はまた、モバイルコンピューティングデバイス1200をオンおよびオフするための電源ボタン1226を含み得る。
【0126】
(限定はされないが、図1図11を参照して上で説明された実施形態を含む)様々な実施形態は、ラップトップコンピュータ1300を含む様々な多種多様なコンピューティングシステムにおいて実装されもよく、ラップトップコンピュータ1300の例が図13に示されている。多くのラップトップコンピュータは、コンピュータのポインティングデバイスとして働くタッチパッドのタッチ面1317を含み、したがって、タッチスクリーンディスプレイを装備した上で説明されたコンピューティングデバイス上で実装されるものと同様のドラッグ、スクロール、およびフリックのジェスチャーを受け取り得る。ラップトップコンピュータ1300は通常、揮発性メモリ1312と、フラッシュメモリのディスクドライブ1313などの大容量不揮発性メモリとに結合されたプロセッサ1311を含む。加えて、コンピュータ1300は、プロセッサ1311に結合されたワイヤレスデータリンクおよび/またはセルラー電話トランシーバ1316に接続され得る、電磁放射を送受信するための1つまたは複数のアンテナ1308を有し得る。コンピュータ1300はまた、プロセッサ1311に結合されたフロッピーディスクドライブ1314およびコンパクトディスク(CD)ドライブ1315を含み得る。ノートブック構成では、コンピュータハウジングは、すべてがプロセッサ1311に結合されたタッチパッド1317、キーボード1318、およびディスプレイ1319を含む。コンピューティングデバイスの他の構成は、よく知られているように、(たとえば、USB入力を介して)プロセッサに結合されたコンピュータマウスまたはトラックボールを含んでもよく、それらはまた、様々な実施形態とともに使用されてもよい。
【0127】
(限定はされないが、図1図11を参照して上で説明された実施形態を含む)様々な実施形態は、様々な市販のサーバのいずれかなどの、固定されたコンピューティングシステムにおいて実装されてもよい。例示的なサーバ1400が、図14に示されている。そのようなサーバ1400は、通常、揮発性メモリ1402と、ディスクドライブ1404などの大容量不揮発性メモリとに結合された、1つまたは複数のマルチコアプロセッサアセンブリ1401を含む。図14に示されるように、マルチコアプロセッサアセンブリ1401は、それらをアセンブリのラックに挿入することによって、サーバ1400に追加され得る。サーバ1400はまた、プロセッサ1401に結合されたフロッピーディスクドライブ、コンパクトディスク(CD)、またはデジタル多用途ディスク(DVD)ディスクドライブ1406を含み得る。サーバ1400はまた、他のブロードキャストシステムコンピュータおよびサーバに結合されたローカルエリアネットワーク、インターネット、公衆交換電話網、ならびに/またはセルラーデータネットワーク(たとえば、CDMA、TDMA、GSM、PCS、3G、4G、LTE、または任意の他のタイプのセルラーデータネットワーク)などの、ネットワーク1405とのネットワークインターフェース接続を確立するための、マルチコアプロセッサアセンブリ1401に結合されたネットワークアクセスポート1403を含み得る。
【0128】
以下では、さらなる実施形態が、本発明の理解を容易にするために説明される。
【0129】
例1: 第1の加算器キャパシタを有するアナログ加算器を備えるマルチビット積和演算器(MAC)であって、第1の加算器キャパシタが、複数のシングルビットMACから複数のシングルビットMAC出力を受け取り、複数のシングルビットMAC出力を記憶することによって、複数のシングルビットMAC出力を加算するように構成され、アナログ加算器が、記憶されている複数のシングルビットMAC出力の加算に基づいて、マルチビットMAC出力を出力するように構成される、マルチビットMAC。
【0130】
例2: 複数のシングルビットMACが各々、第1のマルチビット値の個々のビットおよび第2のマルチビット値の異なるシングルビットを逐次乗算し、第1のマルチビット値および第2のマルチビット値がデジタル電圧によって表され、複数のシングルビットMAC出力を生成するために乗算の結果を累算し、複数のシングルビットMAC出力がアナログ電圧である、ように構成される、例1のマルチビットMAC。
【0131】
例3: 複数のシングルビットMACスイッチをさらに備え、複数のシングルビットMACスイッチの第1のシングルビットMACスイッチが、制御デバイスによって制御されるように、複数のシングルビットMACの第1のシングルビットMACと第1の加算器キャパシタを選択的かつ電気的に接続するように構成され、第1の加算器キャパシタが、複数のシングルビットMACから複数のシングルビットMAC出力を受け取ることが、第1のシングルビットMACスイッチが第1のシングルビットMACと第1の加算器キャパシタを選択的かつ電気的に接続したことに応答して、第1のシングルビットMACから複数のシングルビットMAC出力の第1のシングルビットMAC出力を受け取ることを備えるように構成され、アナログ加算器がさらに、入力端および出力端を有する演算増幅器を備え、第1の加算器キャパシタが、入力端と出力端との間に電気的に接続され、演算増幅器が、入力端において複数のシングルビットMAC出力を受け取ることと、複数のシングルビットMAC出力の加重平均を生み出す複数のシングルビットMAC出力を加算することであって、アナログ加算器が、複数のシングルビットMAC出力を加算することが、複数のシングルビットMAC出力の加重平均を生み出す複数のシングルビットMAC出力を加算することを備え、複数のシングルビットMAC出力を記憶することが、複数のシングルビットMAC出力の加重平均を記憶することを備えるように、構成される、加算することと、複数のシングルビットMAC出力の加重平均をアナログデジタルコンバータにアナログ電圧として出力することであって、アナログ加算器が、マルチビットMAC出力を出力することが、複数のシングルビットMAC出力の加重平均を出力することを備えるように構成される、出力することとを行うように構成される、例1または2のいずれかのマルチビットMAC。
【0132】
例4: アナログ加算器がさらに、複数の指定されたキャパシタを備え、複数の指定されたキャパシタの第1の指定されたキャパシタが、第1のシングルビットMACスイッチと第1の加算器キャパシタとの間に電気的に接続され、第1の指定されたキャパシタが2rというキャパシタ定格を有し、rが、第1のシングルビットMAC出力を生み出す際に使用される活性化値のビットと乗じられるビットの重み値における位置であり、第1の指定されたキャパシタが、第1のシングルビットMAC出力を受け取ることと、第1のシングルビットMAC出力を重み付けることと、重み付けられた第1のシングルビットMAC出力を出力することであって、演算増幅器がさらに、複数のシングルビットMAC出力を受け取ることが、重み付けられた第1のシングルビットMAC出力を受け取ることを備えるように構成される、出力することとを行うように構成され、複数のシングルビットMAC出力を加算することが、重み付けられた第1のシングルビットMAC出力を加算することを備える、例1、2、または3のいずれかのマルチビットMAC。
【0133】
例5: 複数のシングルビットMACスイッチをさらに備え、複数のシングルビットMACスイッチの第1のシングルビットMACスイッチが、制御デバイスによって制御されるように、複数のシングルビットMACの第1のシングルビットMACと第1の加算器キャパシタを選択的かつ電気的に接続するように構成され、アナログ加算器がさらに、第1のシングルビットMACに関連する第1の加算器キャパシタを含む、複数の加算器キャパシタであって、第1の加算器キャパシタが2rというキャパシタ定格を有し、rが、第1のシングルビットMACによって第1のシングルビットMAC出力を生み出す際に使用される活性化値のビットと乗じられるビットの重み値における位置であり、第1の加算器キャパシタが、複数のシングルビットMACから複数のシングルビットMAC出力を受け取ることが、第1のシングルビットMACスイッチが第1のシングルビットMACと第1の加算器キャパシタを選択的かつ電気的に接続したことに応答して、第1のシングルビットMACから複数のシングルビットMAC出力の第1のシングルビットMAC出力を受け取ることを備えるように構成され、第1の加算器キャパシタがさらに、第1のシングルビットMAC出力を重み付けることであって、アナログ加算器が、複数のシングルビットMAC出力を記憶することが、重み付けられた第1のシングルビットMAC出力を記憶することを備えるように、構成される、重み付けることと、重み付けられた第1のシングルビットMAC出力を出力することとを行うように構成される、複数の加算器キャパシタと、第1の加算器キャパシタに関連する第1の加算器スイッチを含む、複数の加算器スイッチであって、第1の加算器スイッチが、制御デバイスによって制御されるように、第1のシングルビットMACスイッチを介して第1の加算器キャパシタを第1のシングルビットMACに選択的かつ電気的に接続し、制御デバイスによって制御されるように、複数の加算器キャパシタの第2の加算器キャパシタを電気伝導バスに選択的かつ電気的に接続する複数の加算器スイッチの第2の加算器スイッチが、第1の加算器キャパシタから重み付けられた第1のシングルビットMAC出力を出力し、重み付けられた第1のシングルビットMAC出力を含む、複数の重み付けられたシングルビットMAC出力の加重平均を生み出すのと同時に、第1の加算器キャパシタを電気伝導バスに選択的かつ電気的に接続するように構成される、複数の加算器スイッチとを備え、アナログ加算器が、マルチビットMAC出力を出力することが、複数の重み付けられたシングルビットMAC出力の加重平均を出力することを備えるように構成される、例1または2のいずれかのマルチビットMAC。
【0134】
例6: 複数のシングルビットMACスイッチと複数の加算器スイッチとの間に電気的に接続されるバッファをさらに備える、例5のマルチビットMAC。
【0135】
例7: 複数のシングルビットMACスイッチをさらに備え、複数のシングルビットMACスイッチの第1のシングルビットMACスイッチが、制御デバイスによって制御されるように、複数のシングルビットMACの第1のシングルビットMACと第1の加算器キャパシタを選択的かつ電気的に接続するように構成され、第1の加算器キャパシタが、複数のシングルビットMACから複数のシングルビットMAC出力を受け取ることが、第1のシングルビットMACスイッチが第1のシングルビットMACと第1の加算器キャパシタを選択的かつ電気的に接続したことに応答して、第1のシングルビットMACから複数のシングルビットMAC出力の第1のシングルビットMAC出力を受け取ることを備えるように構成され、アナログ加算器がさらに、第1の加算器キャパシタに関連する複数の加算器スイッチの第1の加算器スイッチを含む、複数の加算器スイッチと、第2の加算器キャパシタとを備え、第2の加算器キャパシタが、複数の加算器スイッチの第2の加算器スイッチに関連し、第1の加算器キャパシタおよび第2の加算器キャパシタが、同じキャパシタ定格を有し、第1の加算器スイッチが、制御デバイスによって制御されるように、複数のシングルビットMACスイッチを介して、第1の加算器キャパシタを複数のシングルビットMACに選択的かつ電気的に接続し、制御デバイスによって制御されるように、第1の加算器キャパシタを電気伝導バスに選択的かつ電気的に接続するように構成され、第2の加算器スイッチが、第1の加算器キャパシタが制御デバイスによって制御されるように第1の加算器キャパシタと第2の加算器キャパシタとの間で複数のシングルビットMAC出力を共有するのと同時に、第2の加算器キャパシタを電気伝導バスに選択的かつ電気的に接続し、共有される複数のシングルビットMAC出力を出力する第2の加算器キャパシタをアナログデジタルコンバータに選択的かつ電気的に接続するように構成され、アナログ加算器が、マルチビットMAC出力を出力することが、共有される複数のシングルビットMAC出力を出力することを備えるように構成される、例1または2のいずれかのマルチビットMAC。
【0136】
例8: アナログ加算器がさらに、複数のシングルビットMACスイッチと複数の加算器スイッチとの間に電気的に接続されるバッファを備える、例7のマルチビットMAC。
【0137】
例9: 複数のシングルビットMACスイッチをさらに備え、複数のシングルビットMACスイッチの第1のシングルビットMACスイッチが、制御デバイスによって制御されるように、複数のシングルビットMACの第1のシングルビットMACと第1の加算器キャパシタを選択的かつ電気的に接続するように構成され、第1の加算器キャパシタが、複数のシングルビットMACから複数のシングルビットMAC出力を受け取ることが、第1のシングルビットMACスイッチが第1のシングルビットMACと第1の加算器キャパシタを選択的かつ電気的に接続したことに応答して、第1のシングルビットMACから複数のシングルビットMAC出力の第1のシングルビットMAC出力を受け取ることを備えるように構成され、アナログ加算器がさらに、第2の加算器キャパシタであって、第1の加算器キャパシタおよび第2の加算器キャパシタが同じ定格容量を有する、第2の加算器キャパシタと、第1の加算器キャパシタと第2の加算器キャパシタとの間で複数のシングルビットMAC出力を共有する、第1の加算器キャパシタと第2の加算器キャパシタを制御デバイスによって制御されるように選択的かつ電気的に接続するように構成される、加算器スイッチとを備え、第2の加算器キャパシタが、共有される複数のシングルビットMAC出力をアナログデジタルコンバータに出力するように構成され、アナログ加算器が、マルチビットMAC出力を出力することが、共有される複数のシングルビットMAC出力を出力することを備えるように構成される、例1または2のいずれかのマルチビットMAC。
【0138】
さらなる例は、例1、2、3、4、5、6、7、8、または9のいずれかにおいて要約されたデバイス機能の動作を実行する方法を含む。さらなる例は、例1、2、3、4、5、6、7、8、または9のいずれかにおいて要約されたデバイス機能のいずれかの機能を実行するための手段を有するマルチビットMACを含む。
【0139】
例10: 第1の加算器キャパシタを含む複数の加算器キャパシタと、制御デバイスによって制御されるように、複数のシングルビット積和演算器(MAC)の第1のシングルビットMACと第1の加算器キャパシタを選択的かつ電気的に接続するように構成される第1のシングルビットMACスイッチを含む複数のシングルビットMACスイッチとを有する、アナログ加算器を備えるマルチビットMACであって、第1の加算器キャパシタが、第1のシングルビットMACスイッチが第1のシングルビットMACと第1の加算器キャパシタを選択的かつ電気的に接続したことに応答して、第1のシングルビットMACから第1の複数のシングルビットMAC出力を受け取ることによって、および第1の複数のシングルビットMAC出力を記憶することによって、第1の複数のシングルビットMAC出力を加算するように構成され、アナログ加算器が、記憶されている第1の複数のシングルビットMAC出力の加算に基づいてマルチビットMAC出力を出力するように構成される、マルチビットMAC。
【0140】
例11: 複数の加算器キャパシタがさらに、第2の加算器キャパシタおよび第3の加算器キャパシタを備え、第2の加算器キャパシタおよび第3の加算器キャパシタのペアの合成定格容量が第1の加算器キャパシタの定格容量と同じであり、アナログ加算器がさらに、第1の加算器キャパシタと第2の加算器キャパシタとの間で第1の複数のシングルビットMAC出力を共有する、第1の加算器キャパシタと第2の加算器キャパシタを制御デバイスによって制御されるように選択的かつ電気的に接続するように構成される、第1の加算器スイッチと、第2の加算器キャパシタと第3の加算器キャパシタとの間で共有される第1の複数のシングルビットMAC出力を共有する、第2の加算器キャパシタと第3の加算器キャパシタを制御デバイスによって制御されるように選択的かつ電気的に接続するように構成される、第2の加算器スイッチであって、第3の加算器キャパシタが、共有される第1の複数のシングルビットMAC出力を重み付けるように構成される、第2の加算器スイッチと、電気伝導バスを介して重み付けられた共有される第2の複数のシングルビットMAC出力をアナログデジタルコンバータに出力する複数の加算器キャパシタの別の第3の加算器キャパシタが、重み付けられた共有される第1の複数のシングルビットMAC出力および重み付けられた共有される第2の複数のシングルビットMAC出力を共有される複数のシングルビットMAC出力の加重平均へと組み合わせるのと同時に、重み付けられた共有される第1の複数のシングルビットMAC出力をアナログデジタルコンバータに出力する第3の加算器キャパシタを、制御デバイスによって制御されるように電気伝導バスを介してアナログデジタルコンバータに選択的かつ電気的に接続するように構成される、第3の加算器スイッチとを含む、複数の加算器スイッチを備え、アナログ加算器が、マルチビットMAC出力を出力することが、共有される複数のシングルビットMAC出力の加重平均を出力することを備えるように構成される、例10のマルチビットMAC。
【0141】
例12: 複数の加算器キャパシタがさらに、第2の加算器キャパシタを備え、アナログ加算器がさらに、第1の加算器キャパシタと第2の加算器キャパシタとの間で第1の複数のシングルビットMAC出力を共有する、第1の加算器キャパシタと第2の加算器キャパシタを制御デバイスによって制御されるように選択的かつ電気的に接続するように構成される、第1の加算器スイッチと、電気伝導バスを介して、制御デバイスによって制御されるように第2の加算器キャパシタを別の第2の加算器キャパシタに選択的かつ電気的に接続するように構成される、第2の加算器スイッチとを含む、複数の加算器スイッチを備える、例10のマルチビットMAC。
【0142】
例13: 第1の加算器スイッチが、第1の加算器キャパシタと第2の加算器キャパシタとの間で第1の複数のシングルビットMAC出力を共有する、第1の加算器キャパシタと第2の加算器キャパシタを制御デバイスによって制御されるように選択的かつ電気的に接続することが、第1の加算器キャパシタおよび第2の加算器キャパシタの各々のために第1の複数のシングルビットMAC出力を半分に分けることを備えるように構成され、アナログ加算器がさらに、第1の複数のシングルビットMAC出力の半分の第1の加算器キャパシタをクリアするように構成され、第1の加算器スイッチがさらに、第1の加算器キャパシタと第2の加算器キャパシタとの間で第1の複数のシングルビットMAC出力の半分を共有し、第1の加算器キャパシタと第2の加算器キャパシタの各々のために第1の複数のシングルビットMAC出力の半分を半分に分け、第1の複数のシングルビットMACの複数の4分の1を生み出す、第1の加算器キャパシタと第2の加算器キャパシタを制御デバイスによって制御されるように選択的かつ電気的に接続するように構成される、例12のマルチビットMAC。
【0143】
例14: 複数の加算器スイッチがさらに、別の第1の加算器スイッチを備え、別の第1の加算器スイッチが、制御デバイスによって制御されるように別の第1の加算器キャパシタと別の第2の加算器キャパシタを選択的かつ電気的に接続するように構成され、一方、第2の加算器スイッチが、第2の加算器キャパシタと別の第2の加算器キャパシタを選択的かつ電気的に接続する、例12または13のいずれかのマルチビットMAC。
【0144】
例15: 複数の加算器スイッチがさらに、別の第1の加算器スイッチを備え、別の第1の加算器スイッチが、制御デバイスによって制御されるように別の第1の加算器キャパシタと別の第2の加算器キャパシタを選択的かつ電気的に切断するように構成され、一方、第2の加算器スイッチが、第2の加算器キャパシタと別の第2の加算器キャパシタを選択的かつ電気的に接続する、例12または13のいずれかのマルチビットMAC。
【0145】
さらなる例は、例10、11、12、13、14、または15のいずれかにおいて要約されたデバイス機能の動作を実行する方法を含む。さらなる例は、例のいずれかにおいて要約されたデバイス機能のいずれかの機能を実行するための手段を有するマルチビットMACを含む。
【0146】
様々な実施形態の動作を実行するためのプログラマブルプロセッサ上での実行のためのコンピュータプログラムコードまたは「プログラムコード」は、C、C++、C#、Smalltalk、Java、JavaScript、Visual Basic、Structured Query Language(たとえば、Transact-SQL)、Perlなどの高水準プログラミング言語または様々な他のプログラミング言語で記述され得る。本出願において使用されるようなコンピュータ可読記憶媒体に記憶されたプログラムコードまたはプログラムは、そのフォーマットがプロセッサによって理解可能である(オブジェクトコードなどの)機械語コードを指し得る。
【0147】
上記の方法の説明およびプロセスフロー図は、単に説明のための例として提供されており、様々な実施形態の動作が提示された順序で実行されなければならないことを要求または暗示するものではない。当業者によって理解されるように、上述の実施形態における動作の順序は、任意の順序で実行され得る。「その後」、「次いで」、「次に」などの単語は、動作の順序を限定するものではなく、これらの単語は単に、方法の説明を通して読者を導くために使用される。さらに、たとえば、冠詞「a」、「an」または「the」を使用する、単数形での請求項の要素へのいかなる言及も、その要素を単数形に限定するものとして解釈されるべきではない。
【0148】
様々な実施形態に関して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズム動作は、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装されてもよい。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、および動作が、上では全般にそれらの機能に関して説明された。そのような機能がハードウェアとして実装されるかまたはソフトウェアとして実装されるかは、具体的な適用例および全体的なシステムに課された設計制約に依存する。当業者は、説明された機能を具体的な適用例ごとに様々な方法で実装してもよいが、そのような実装の決定は、特許請求の範囲からの逸脱を引き起こすものとして解釈されるべきではない。
【0149】
本明細書で開示される実施形態に関して説明された様々な例示的な論理、論理ブロック、モジュール、および回路を実装するために使用されるハードウェアは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、ディスクリートゲートもしくはトランジスタロジック、ディスクリートハードウェアコンポーネント、または本明細書で説明された機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。汎用プロセッサはマイクロプロセッサであってもよいが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であってもよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つまたは複数のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。代替として、一部の動作または方法は、所与の機能に固有の回路によって実行されてもよい。
【0150】
1つまたは複数の実施形態では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装されてもよい。ソフトウェアにおいて実装される場合、機能は、1つまたは複数の命令またはコードとして、非一時的コンピュータ可読媒体または非一時的プロセッサ可読媒体上に記憶されてもよい。本明細書で開示される方法またはアルゴリズムの動作は、非一時的コンピュータ可読記憶媒体または非一時的プロセッサ可読記憶媒体上に存在し得るプロセッサ実行可能ソフトウェアモジュールにおいて具現化されてもよい。非一時的コンピュータ可読記憶媒体または非一時的プロセッサ可読記憶媒体は、コンピュータまたはプロセッサによってアクセスされ得る任意の記憶媒体であってもよい。限定ではなく例として、そのような非一時的コンピュータ可読媒体または非一時的プロセッサ可読媒体は、RAM、ROM、EEPROM、FLASHメモリ、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または命令もしくはデータ構造の形態で所望のプログラムコードを記憶するために使用され、かつコンピュータによってアクセスされ得る任意の他の媒体を含んでもよい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、およびBlu-ray(登録商標)ディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の組合せも、非一時的コンピュータ可読媒体および非一時的プロセッサ可読媒体の範囲に含まれる。加えて、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれ得る非一時的プロセッサ可読媒体および/または非一時的コンピュータ可読媒体上のコードおよび/または命令のうちの1つ、またはその任意の組合せもしくはセットとして存在してもよい。
【0151】
開示される実施形態の前述の説明は、任意の当業者が特許請求の範囲を製作または使用することを可能にするために提供される。これらの実施形態への様々な修正が当業者には容易に明らかになり、本明細書において定義される一般原理は、特許請求の範囲から逸脱することなく他の実施形態および実装形態に適用され得る。したがって、本開示は、本明細書で説明された実施形態および実装形態に限定されることは意図されず、本明細書で開示された特許請求の範囲、および原理、ならびに新規の特徴と一致する最も広い範囲が与えられるべきである。
【符号の説明】
【0152】
100 コンピューティングデバイス
102 SoC
104 プロセッサ
106 メモリ
108 通信インターフェース
110 メモリインターフェース
112 通信コンポーネント
114 メモリ
116 アンテナ
120 周辺デバイスインターフェース
122 周辺デバイス
124 MACコントローラ
126 シングルビットMAC
128 アナログ加算器
130 マルチビットMAC
200 マルチビットMAC
202 逐次入力
204 活性化値
206 シングルビットMAC
208 逐次積分器
210 マルチビット重み処理ユニット
212 アナログデジタルコンバータ(ADC)
304 シングルビットMACスイッチ
306 電気伝導バス
308 クリアスイッチ
310 グラウンド
312 演算増幅器
314 積分器キャパシタ
316 電気伝導バス
402 キャパシタ
502 バッファ
504 加算器スイッチ
506 加算器キャパシタ
508 グラウンド
604 加算器スイッチ
606 加算器キャパシタ
702 加算器スイッチ
904 加算器キャパシタ
906 加算器キャパシタ
908 加算器スイッチ
910 加算器スイッチ
912 加算器スイッチ
1002 加算器キャパシタ
1004 加算器スイッチ
1006 加算器スイッチ
1008 出力スイッチ
1010 クリアスイッチ
1012 グラウンド
1014 クリアスイッチ
1016 クリアスイッチ
1200 モバイルコンピューティングデバイス
1202 プロセッサ
1204 タッチスクリーンコントローラ
1206 内部メモリ
1208 無線信号トランシーバ
1210 アンテナ
1212 タッチスクリーンパネル
1214 スピーカ
1216 セルラーネットワークワイヤレスモデムチップ
1218 周辺デバイス接続インターフェース
1220 ハウジング
1222 電源
1224 物理ボタン
1226 電源ボタン
1300 ラップトップコンピュータ
1308 アンテナ
1311 プロセッサ
1312 揮発性メモリ
1313 ディスクドライブ
1314 フロッピーディスクドライブ
1315 コンパクトディスク(CD)ドライブ
1316 セルラー電話トランシーバ
1317 タッチパッドのタッチ面、タッチパッド
1318 キーボード
1319 ディスプレイ
1400 サーバ
1401 マルチコアプロセッサアセンブリ
1402 揮発性メモリ
1403 ネットワークアクセスポート
1404 ディスクドライブ
1405 ネットワーク
1406 デジタル多用途ディスク(DVD)ディスクドライブ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
【国際調査報告】