(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-10
(54)【発明の名称】ビット・スキッピングを用いたアナログ対デジタル変換装置、デバイス、および方法
(51)【国際特許分類】
H03M 1/14 20060101AFI20241003BHJP
G06N 3/063 20230101ALI20241003BHJP
G06F 17/16 20060101ALI20241003BHJP
G06G 7/60 20060101ALI20241003BHJP
G06G 7/16 20060101ALI20241003BHJP
G06F 3/05 20060101ALI20241003BHJP
【FI】
H03M1/14 Z
G06N3/063
G06F17/16 M
G06G7/60
G06G7/16
G06F3/05 311Z
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024507891
(86)(22)【出願日】2022-08-03
(85)【翻訳文提出日】2024-02-07
(86)【国際出願番号】 IB2022057209
(87)【国際公開番号】W WO2023021354
(87)【国際公開日】2023-02-23
(32)【優先日】2021-08-19
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】カー、モノディープ
(72)【発明者】
【氏名】アグラワル、アンカー
(72)【発明者】
【氏名】カン、ミング
(72)【発明者】
【氏名】キム、キュ-ヒョン
【テーマコード(参考)】
5B056
5J022
【Fターム(参考)】
5B056BB64
5B056BB71
5J022AA14
5J022BA06
5J022CD02
(57)【要約】
ビット・スキッピングを用いたアナログ対デジタル変換を実行するための技術が開示される。例えば、方法は、アナログ入力からビットのセットを含むデジタル出力へのアナログ対デジタル変換を実行し、ビットのセットは、最上位ビットおよび1つまたは複数の追加ビットを含み、アナログ対デジタル変換は、最上位ビットに続く1つまたは複数の追加ビットのうちの所与のビットから始まる。
【特許請求の範囲】
【請求項1】
装置であって、
少なくとも1つのプロセッサと、
命令コードを含む少なくとも1つのメモリと
を備え、前記少なくとも1つのメモリおよび前記命令コードが、前記少なくとも1つのプロセッサにより、前記装置に少なくとも、
アナログ入力からビットのセットを含むデジタル出力へのアナログ対デジタル変換を実行することであって、前記ビットのセットが、最上位ビットおよび1つまたは複数の追加ビットを含み、前記アナログ対デジタル変換が、前記最上位ビットに続く前記1つまたは複数の追加ビットのうちの所与のビットから始まる、前記アナログ対デジタル変換を実行すること
を行わせるように構成される、装置。
【請求項2】
前記少なくとも1つのメモリおよび前記命令コードが、前記少なくとも1つのプロセッサにより、前記装置に、
1つまたは複数の指定条件を検出することと、
前記1つまたは複数の指定条件のうちの少なくとも1つを検出したことに応答して、前記ビットのセットのうちの別のビットから始まる前記アナログ対デジタル変換を再開始することと
を行わせるようにさらに構成される、請求項1に記載の装置。
【請求項3】
前記1つまたは複数の指定条件のうちの前記少なくとも1つを検出することが、前記1つまたは複数の追加ビットのうちの前記所与のビットに続く前記1つまたは複数の追加ビットのうちの連続するビットの閾値数の値に少なくとも部分的に基づく、請求項2に記載の装置。
【請求項4】
前記閾値数が、第1のベクトルと第2のベクトルとの2進乗算を実行するドット積エンジンの出力確率分布および前記アナログ対デジタル変換の出力における許容誤差のうちの少なくとも1つに少なくとも部分的に基づいて選択される、請求項3に記載の装置。
【請求項5】
前記最上位ビットに続く前記1つまたは複数の追加ビットのうちの前記所与のビットが、前記最上位ビットに続く前記1つまたは複数の追加ビットのうちの最初のビットを含み、前記ビットのセットのうちの他のビットから始まる前記アナログ対デジタル変換を再開始することが、前記最上位ビットから始まる前記アナログ対デジタル変換を再開始することを含む、請求項2に記載の装置。
【請求項6】
前記最上位ビット(MSB)に続く前記1つまたは複数の追加ビットのうちの前記所与のビットが、(MSB-k)番目のビットを含み、前記ビットのセットのうちの他のビットから始まる前記アナログ対デジタル変換を再開始することが、(MSB-k+l)番目のビットから始まる前記アナログ対デジタル変換を再開始することを含み、lが1以上の整数である、請求項2に記載の装置。
【請求項7】
kの値が、第1のベクトルと第2のベクトルとの2進乗算を実行するドット積エンジンの出力確率分布および前記アナログ対デジタル変換の出力における許容誤差のうちの少なくとも1つに少なくとも部分的に基づいて選択される、請求項6に記載の装置。
【請求項8】
第1のベクトルと第2のベクトルとの2進乗算を実行するように構成されたドット積総和計算ユニットを備え、
前記アナログ対デジタル変換が、逐次近似レジスタ・アナログ対デジタル変換器ユニットによって実行され、前記ドット積総和計算ユニットのアナログ出力が前記アナログ入力であり、前記装置が、前記逐次近似レジスタ・アナログ対デジタル変換器ユニットに動作可能に結合されたコントローラ・ロジックをさらに備え、前記コントローラ・ロジックが、前記ドット積総和計算ユニットの出力と重み付き2進コードのシーケンスとの比較に少なくとも部分的に基づいて、前記デジタル出力の前記ビットのセットの値を判定するように構成され、
重み付き2進コードの前記シーケンスが、前記最上位ビットに続く前記1つまたは複数の追加ビットのうちの所与のビットから始まる、請求項1に記載の装置。
【請求項9】
前記最上位ビット(MSB)に続く前記1つまたは複数の追加ビットのうちの前記所与のビットが、(MSB-k)番目のビットを含み、前記コントローラ・ロジックが、前記1つまたは複数の追加ビットのうちの前記所与のビットに続く前記1つまたは複数の追加ビットのうちの連続するビットの閾値数の値に少なくとも部分的に基づいて1つまたは複数の指定条件を検出したことに応答して、(MSB-k+l)番目のビットから始まる重み付き2進コードの新しいシーケンスを用いて前記デジタル出力の前記ビットのセットの前記値の判定を再開始するようにさらに構成され、lが1以上の整数である、請求項8に記載のシステム。
【請求項10】
前記システムが、人工知能システムの一部として実装される、請求項8に記載のシステム。
【請求項11】
前記システムが、1つまたは複数の集積回路の一部として実装される、請求項8に記載のシステム。
【請求項12】
方法であって、
アナログ入力からビットのセットを含むデジタル出力へのアナログ対デジタル変換を実行するステップであって、前記ビットのセットが、最上位ビットおよび1つまたは複数の追加ビットを含み、前記アナログ対デジタル変換が、前記最上位ビットに続く前記1つまたは複数の追加ビットのうちの所与のビットから始まる、前記ステップ
を含み、前記方法が、命令コードを実行するように構成された処理回路によって実行される、方法。
【請求項13】
1つまたは複数の指定条件を検出するステップと、
前記1つまたは複数の指定条件のうちの少なくとも1つを検出したことに応答して、前記ビットのセットのうちの別のビットから始まる前記アナログ対デジタル変換を再開始するステップと
をさらに含み、
前記最上位ビット(MSB)に続く前記1つまたは複数の追加ビットのうちの前記所与のビットが、(MSB-k)番目のビットを含み、前記ビットのセットのうちの他のビットから始まる前記アナログ対デジタル変換を再開始するステップが、(MSB-k+l)番目のビットから始まる前記アナログ対デジタル変換を再開始することを含み、lが1以上の整数である、請求項12に記載の方法。
【請求項14】
実行可能命令コードが具現化された非一過性コンピュータ可読記憶媒体を備える製造品であって、前記実行可能命令コードが、プロセッサによって実行されたときに、前記プロセッサに、
アナログ入力からビットのセットを含むデジタル出力へのアナログ対デジタル変換を実行するステップであって、前記ビットのセットが、最上位ビットおよび1つまたは複数の追加ビットを含み、前記アナログ対デジタル変換が、前記最上位ビットに続く前記1つまたは複数の追加ビットのうちの所与のビットから始まる、前記ステップ
を実行させる、製造品。
【請求項15】
前記実行可能命令コードが、前記プロセッサによって実行されたときに、前記プロセッサにさらに、
1つまたは複数の指定条件を検出するステップと、
前記1つまたは複数の指定条件のうちの少なくとも1つを検出したことに応答して、前記ビットのセットのうちの別のビットから始まる前記アナログ対デジタル変換を再開始するステップと
を実行させ、
前記最上位ビット(MSB)に続く前記1つまたは複数の追加ビットのうちの前記所与のビットが、(MSB-k)番目のビットを含み、前記ビットのセットのうちの他のビットから始まる前記アナログ対デジタル変換を再開始するステップが、(MSB-k+l)番目のビットから始まる前記アナログ対デジタル変換を再開始することを含み、lが1以上の整数である、請求項14に記載の製造品。
【請求項16】
システムであって、
第1のベクトルと第2のベクトルとの2進乗算を実行するように構成されたドット積総和計算ユニットと、
前記ドット積総和計算ユニットのアナログ出力をビットのセットを含むデジタル出力に変換するように構成された逐次近似レジスタ・アナログ対デジタル変換器ユニットであって、前記ビットのセットが最上位ビットおよび1つまたは複数の追加ビットを含む、前記逐次近似レジスタ・アナログ対デジタル変換器ユニットと、
前記逐次近似レジスタ・アナログ対デジタル変換器ユニットに動作可能に結合されたコントローラ・ロジックであって、前記ドット積総和計算ユニットの出力と重み付き2進コードのシーケンスとの比較に少なくとも部分的に基づいて前記デジタル出力の前記ビットのセットの値を判定するように構成される、前記コントローラ・ロジックと
を含み、
重み付き2進コードの前記シーケンスが、前記最上位ビットに続く前記1つまたは複数の追加ビットのうちの所与のビットから始まる、システム。
【請求項17】
前記最上位ビット(MSB)に続く前記1つまたは複数の追加ビットのうちの前記所与のビットが、(MSB-k)番目のビットを含み、前記コントローラ・ロジックが、前記1つまたは複数の追加ビットのうちの前記所与のビットに続く前記1つまたは複数の追加ビットのうちの連続するビットの閾値数の値に少なくとも部分的に基づいて1つまたは複数の指定条件を検出したことに応答して、(MSB-k+l)番目のビットから始まる重み付き2進コードの新しいシーケンスを用いて前記デジタル出力の前記ビットのセットの前記値の判定を再開始するようにさらに構成され、lが1以上の整数である、請求項16に記載のシステム。
【請求項18】
前記システムが、人工知能システムの一部として実装される、請求項16に記載のシステム。
【請求項19】
前記システムが、1つまたは複数の集積回路の一部として実装される、請求項16に記載のシステム。
【請求項20】
デバイスであって、
第1の信号を出力するように構成されたドット積総和回路であって、前記第1の信号が第1のベクトルと第2のベクトルとの2進乗算のドット積和を含む、前記ドット積総和回路と、
前記ドット積総和回路によって出力される前記第1の信号からビットのセットを含むデジタル出力への変換を実行するように構成された逐次近似レジスタ・アナログ対デジタル変換器であって、前記ビットのセットが最上位ビットおよび1つまたは複数の追加ビットを含む、前記逐次近似レジスタ・アナログ対デジタル変換器と
を備え、前記逐次近似レジスタ・アナログ対デジタル変換器が、
第2の信号を出力するように構成された逐次近似レジスタ・コントローラ回路、ならびに
前記ドット積総和回路に結合された第1の入力ノード、前記逐次近似レジスタ・コントローラ回路に結合された第2の入力ノード、および前記ドット積総和回路によって出力される第1の値と前記逐次近似レジスタ・コントローラ回路によって出力される第2の値との比較に少なくとも部分的に基づいて出力値を提供するように構成された出力ノードを備える、比較器回路
を備え、
前記逐次近似レジスタ・コントローラ回路が、重み付き2進コードのシーケンスが前記第2の信号として出力されるときに作成される前記比較器回路の出力値に少なくとも部分的に基づいて、前記デジタル出力の前記ビットのセットの値を判定するように構成され、
重み付き2進コードの前記シーケンスが、前記最上位ビットに続く前記1つまたは複数の追加ビットのうちの所与のビットから始まる、デバイス。
【請求項21】
前記最上位ビット(MSB)に続く前記1つまたは複数の追加ビットのうちの前記所与のビットが、(MSB-k)番目のビットを含み、前記逐次近似レジスタ・コントローラ回路が、前記1つまたは複数の追加ビットのうちの前記所与のビットに続く前記1つまたは複数の追加ビットのうちの連続するビットの閾値数の値に少なくとも部分的に基づいて1つまたは複数の指定条件を検出したことに応答して、重み付き2進コードの新しいシーケンスが前記第2の信号として出力されるときに作成される前記比較器回路の出力値に少なくとも部分的に基づいて、前記デジタル出力の前記ビットのセットの前記値の判定を再開始するようにさらに構成され、重み付き2進コードの前記新しいシーケンスが(MSB-k+l)番目のビットから始まり、lが1以上の整数である、請求項20に記載のデバイス。
【請求項22】
前記逐次近似レジスタ・コントローラ回路が、複数のコンデンサを介して前記比較器回路に結合される、請求項20に記載のデバイス。
【請求項23】
前記複数のコンデンサがそれぞれ異なる静電容量値を有する、請求項22に記載のデバイス。
【請求項24】
前記ドット積総和回路が複数の論理ANDゲートを備え、前記複数の論理ANDゲートのそれぞれが、前記第1のベクトルの第1のベクトル要素および前記第2のベクトルの第2のベクトル要素を入力として受け取り、前記複数の論理ANDゲートが、前記複数のコンデンサの第1のプレートに結合されたそれぞれの出力を有する、請求項22に記載のデバイス。
【請求項25】
前記複数のコンデンサのそれぞれが同じ静電容量値を有する、請求項22に記載のデバイス。
【請求項26】
前記複数の論理ANDゲートのそれぞれと前記複数のコンデンサとの間に複数のスイッチが結合され、前記複数のスイッチが、前記複数のコンデンサの第2のプレートに結合された共通線上の電圧が前記第1のベクトルと前記第2のベクトルとの前記ドット積和を表す第1の動作モードと、前記複数のコンデンサの前記第2のプレートに結合された前記共通線上の前記電圧が重み付き2進コードの前記シーケンスのうちの1つを表す第2の動作モードとの間で切り替えるように構成される、請求項25に記載のデバイス。
【請求項27】
前記ドット積総和回路が、複数のスイッチを介して複数の論理ANDゲートに結合された追加の複数のコンデンサを備え、前記複数の論理ANDゲートのそれぞれが、前記第1のベクトルの第1のベクトル要素および前記第2のベクトルの第2のベクトル要素を入力として受け取り、前記複数の論理ANDゲートが、前記追加の複数のコンデンサの第1のプレートに結合されたそれぞれの出力を有する、請求項22に記載のデバイス。
【請求項28】
前記ドット積総和回路が複数のビット・セル処理ユニットを備え、前記複数のビット・セル処理ユニットのそれぞれが、
前記第1のベクトルの前記要素のうちの1つを表す第1のベクトル要素値を記憶し、
前記第2のベクトルの前記要素のうちの1つを表す第2のベクトル要素値を入力として受け取り、
前記第1のベクトル要素値と前記第2のベクトル要素値との2進乗算を表す値を出力する、請求項20に記載のデバイス。
【請求項29】
前記複数のビット・セル処理ユニットのそれぞれが、抵抗処理ユニットおよびメモリ・セルのうちの1つを備える、請求項28に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本分野は、アナログ対デジタル変換(ADC:analog-to-digital conversion)に関し、より詳細には、限定されないがニューラル・ネットワーク・モデルに使用される積和(MAC:multiply-accumulate)回路などの混合信号回路におけるADCに関する。混合信号回路は、アナログ信号領域とデジタル信号領域との両方で動作する。したがって、ADCは通常、少なくともいくつかの計算を実行するために必要である。しかしながら、ADC変換エネルギーは、混合信号回路の設計における制限要因となる可能性がある。
【発明の概要】
【0002】
本発明の実施形態は、例えばニューラル・ネットワーク・モデルを実行するように構成された混合信号回路などにおいて、アナログ対デジタル変換計算を実行するための改良された技術を提供する。
【0003】
一実施形態では、装置は、少なくとも1つのプロセッサと、命令コードを含む少なくとも1つのメモリとを備える。少なくとも1つのメモリおよび命令コードは、少なくとも1つのプロセッサにより、装置に少なくとも、アナログ入力からビットのセットを含むデジタル出力へのアナログ対デジタル変換を実行することであって、ビットのセットが、最上位ビットおよび1つまたは複数の追加ビットを含み、アナログ対デジタル変換が、最上位ビットに続く1つまたは複数の追加ビットのうちの所与のビットから始まる、アナログ対デジタル変換を実行することを行わせるように構成される。
【0004】
別の実施形態では、方法は、アナログ入力からビットのセットを含むデジタル出力へのアナログ対デジタル変換を実行するステップであって、ビットのセットが、最上位ビットおよび1つまたは複数の追加ビットを含み、アナログ対デジタル変換が、最上位ビットに続く1つまたは複数の追加ビットのうちの所与のビットから始まる、ステップを含む。方法は、命令コードを実行するように構成された処理回路によって実行される。
【0005】
さらに別の実施形態では、製造品は、実行可能命令コードが具現化された非一過性コンピュータ可読記憶媒体を備え、実行可能命令コードは、プロセッサによって実行されたときに、プロセッサに、アナログ入力からビットのセットを含むデジタル出力へのアナログ対デジタル変換を実行するステップであって、ビットのセットが、最上位ビットおよび1つまたは複数の追加ビットを含み、アナログ対デジタル変換が、最上位ビットに続く1つまたは複数の追加ビットのうちの所与のビットから始まる、ステップを実行させる。
【0006】
さらなる実施形態では、システムは、第1のベクトルと第2のベクトルとの2進乗算を実行するように構成されたドット積総和(dot-product summation)計算ユニットと、ドット積総和計算ユニットのアナログ出力をビットのセットを含むデジタル出力に変換するように構成された逐次近似レジスタ(successive approximation register)・アナログ対デジタル変換器ユニットであって、ビットのセットが最上位ビットおよび1つまたは複数の追加ビットを含む、逐次近似レジスタ・アナログ対デジタル変換器ユニットと、逐次近似レジスタ・アナログ対デジタル変換器ユニットに動作可能に結合されたコントローラ・ロジックであって、ドット積総和計算ユニットの出力と重み付き2進コード(weighted binary code)のシーケンスとの比較に少なくとも部分的に基づいてデジタル出力のビットのセットの値を判定するように構成される、コントローラ・ロジックとを含む。重み付き2進コードのシーケンスは、最上位ビットに続く1つまたは複数の追加ビットのうちの所与のビットから始まる。
【0007】
追加の実施形態では、デバイスは、第1の信号を出力するように構成されたドット積総和回路であって、第1の信号が第1のベクトルと第2のベクトルとの2進乗算のドット積和を含む、ドット積総和回路と、ドット積総和回路によって出力される第1の信号からビットのセットを含むデジタル出力への変換を実行するように構成された逐次近似レジスタ・アナログ対デジタル変換器であって、ビットのセットが最上位ビットおよび1つまたは複数の追加ビットを含む、逐次近似レジスタ・アナログ対デジタル変換器とを備える。逐次近似レジスタ・アナログ対デジタル変換器は、第2の信号を出力するように構成された逐次近似レジスタ・コントローラ回路、ならびにドット積総和回路に結合された第1の入力ノード、逐次近似レジスタ・コントローラ回路に結合された第2の入力ノード、およびドット積総和回路によって出力される第1の値と逐次近似レジスタ・コントローラ回路によって出力される第2の値との比較に少なくとも部分的に基づいて出力値を提供するように構成された出力ノードを備える、比較器回路を備える。逐次近似レジスタ・コントローラ回路は、重み付き2進コードのシーケンスが第2の信号として出力されるときに作成される比較器回路の出力値に少なくとも部分的に基づいて、デジタル出力のビットのセットの値を判定するように構成される。重み付き2進コードのシーケンスは、最上位ビットに続く1つまたは複数の追加ビットのうちの所与のビットから始まる。
【0008】
本明細書に記載の実施形態に関するこれらおよび他の特徴ならびに利点は、添付の図面および以下の詳細な説明からより明らかになろう。
【0009】
次に、以下の図面を参照しながら本発明の実施形態について単なる例として説明する。
【図面の簡単な説明】
【0010】
【
図1A】1つまたは複数の例示的な実施形態が実装される際に用いられるニューラル・ネットワーク・アクセラレータおよびニューラル・ネットワーク・アクセラレータにおいて実行される計算の数学的表現を示す図である。
【
図1B】1つまたは複数の例示的な実施形態が実装される際に用いられるニューラル・ネットワーク・アクセラレータおよびニューラル・ネットワーク・アクセラレータにおいて実行される計算の数学的表現を示す図である。
【
図2】1つまたは複数の例示的な実施形態が実装される際に用いられる混合信号積和回路を示す図である。
【
図3A】1つまたは複数の例示的な実施形態が実装される際に用いられるドット積エンジンを示す図である。
【
図3B】1つまたは複数の例示的な実施形態が実装される際に用いられるドット積エンジンを示す図である。
【
図3C】1つまたは複数の例示的な実施形態が実装される際に用いられるドット積エンジンを示す図である。
【
図3D】1つまたは複数の例示的な実施形態が実装される際に用いられるドット積エンジンを示す図である。
【
図4】1つまたは複数の例示的な実施形態が実装される際に用いられるドット積計算に関連する代数表現を示す図である。
【
図5A】例示的な実施形態により利用されるドット積統計を示す図である。
【
図5B】例示的な実施形態により利用されるドット積統計を示す図である。
【
図5C】例示的な実施形態により利用されるドット積統計を示す図である。
【
図6】例示的な実施形態による、ドット積エンジンにおける最上位ビット・スキッピングを実装するエネルギー高効率アナログ対デジタル変換の動機を示す図である。
【
図7】例示的な実施形態による、ドット積エンジンにおける最上位ビット・スキッピングを実装するエネルギー高効率アナログ対デジタル変換の数学的表現を示す図である。
【
図8】例示的な実施形態による、ドット積エンジンにおける最上位ビット・スキッピングの実装に関連する誤差許容度を実証するためのサイクル・フローを示す図である。
【
図9】(A)および(B)は、例示的な実施形態による、エネルギー節約の比較を示す図である。
【
図10】例示的な実施形態による、ドット積エンジンで使用するためのビット・スキッピングを実装するエネルギー高効率アナログ対デジタル変換の方法論を示す図である。
【
図11】例示的な実施形態による、人工知能システムの代表的な実装形態を示す図である。
【
図12】例示的な実施形態による、代表的なプロセッサ・システムを示す図である。
【
図13】例示的な実施形態による、クラウド・コンピューティング環境を示す図である。
【
図14】例示的な実施形態による、抽象化モデル層を示す図である。
【発明を実施するための形態】
【0011】
添付の図面に示される様々な特徴は、一定の縮尺では描かれていない概略図であることを理解されたい。さらに、図面全体を通じて、同じもしくは同様の特徴、要素、または構造を示すために同じまたは類似の参照番号が使用されており、したがって、同じもしくは同様の特徴、要素、または構造についての詳細な説明は、図面のそれぞれに対して繰り返されない。さらに、本明細書で使用される「代表的」および「例示的」という用語は、「例、実例、または例示として機能すること」を意味する。本明細書で「代表的」もしくは「例示的」と説明される実施形態または設計は、他の実施形態または設計よりも好ましいまたは有利であると解釈されるべきではない。
【0012】
さらに、1つもしくは複数の機能を実行するまたは別の方法で何らかの機能を提供する回路(circuit)(本明細書では「回路(circuitry)」という用語が同じ意味で使用されることがある)、構造、要素、構成要素などに関連して使用される「するように構成される」という語句は、回路、構造、要素、構成要素などがハードウェア、ソフトウェア、および/またはその組合せにおいて実装される実施形態を包含することを意図しており、ハードウェアを含む実装形態では、ハードウェアが、ディスクリート回路要素(例えば、トランジスタ、インバータ、論理ゲートなど)、プログラマブル要素、処理デバイス、1つもしくは複数の集積回路、および/または他のタイプの回路、および/またはその組合せを含み得ることを理解されたい。したがって、単なる例として、回路、構造、要素、構成要素などが特定の機能性を提供するように構成されるように定義されている場合、限定はされないが、回路、構造、要素、構成要素などが、動作状態(例えば、システムに接続もしくは展開されている、電源が入っている、入力を受信している、または出力を作成している、あるいはその組合せの状態)にあるときに特定の機能を実行することを可能にする要素、処理デバイス、集積回路、または他のタイプの回路、あるいはその組合せからなる実施形態をカバーすること、および、回路、構造、要素、構成要素などが、非動作状態(例えば、システムに接続も展開もされていない、電源が入っていない、入力を受信していない、または出力を作成していない、あるいはその組合せの状態)にある、または部分的に動作状態にあるときの実施形態をカバーすることを意図している。
【0013】
ニューラル・ネットワーク・モデルは、人工知能システムで最も広く使用されているタイプの機械学習(ML)アルゴリズムの1つである。例えば、ニューラル・ネットワーク・モデルは、人間の脳の動作方法を模倣するプロセスを通じて、データのセットの基礎となる関係性またはパターンあるいはその両方を認識するために使用され得る。最初に、訓練データ・セットを使用してニューラル・ネットワーク・モデルを訓練し(訓練段階)、次いで、訓練済みのニューラル・ネットワーク・モデルを使用して、ターゲット・データ・セット内の関係性またはパターンあるいはその両方を認識する(推論段階)。
【0014】
ニューラル・ネットワーク・モデルを実行する多くのワークロードは、典型的には積和(MAC)演算を伴う多数の行列乗算を必要とする。一般に、累算演算はデジタル信号領域において実行される場合はエネルギー効率が低くなるが、アナログ信号領域の場合ははるかにエネルギー効率が高くなると理解される。したがって、乗算用のデジタル信号領域技術と累算用のアナログ信号領域技術とを組み合わせることによって、より効率的な積和演算を実現できることがさらに理解された。アナログ処理とデジタル処理とを組み合わせてMAC演算を実行する回路は、混合信号MAC(MS-MAC:mixed signal MAC)回路と呼ばれる。
【0015】
図1Aは、1つまたは複数の例示的な実施形態が実装される際に用いられる、ニューラル・ネットワーク・アクセラレータ100を示す。いくつかの例示的な実施形態では、ニューラル・ネットワーク・アクセラレータ100は、1つまたは複数のグラフィックス処理ユニット(GPU)、1つまたは複数のフィールド・プログラマブル・ゲート・アレイ(FPGA)、1つまたは複数の特定用途向け集積回路(ASIC)、1つまたは複数のマルチコア中央処理ユニット(CPU)、または他のタイプの回路あるいはその組合せにおいて実装される。例として、ニューラル・ネットワーク・アクセラレータ100またはその一部分は、実行可能プログラム・コード(例えば、命令コード、コンピュータ・プログラム・コードなど)でプログラムされた回路(例えば、回路、プロセッサ、メモリなど)を備える、特定の目的のためにカスタマイズされた、または他の方法で特定の目的のために構成された、上記デバイスのうちの1つまたは複数を備えることができる。単なる一例として、特定の目的は、人工知能システム(例えば、機械学習アルゴリズム)の実装および実行とすることができる。ニューラル・ネットワーク・アクセラレータ100はまた、例えばニューロモーフィック・コンピューティング・システムなどのシステム・オン・チップ(SoC)の一部であってもよい。しかしながら、そのような人工知能に基づく意思決定から恩恵を受ける他の様々なアプリケーションにおいてもニューラル・ネットワーク・アクセラレータ100を使用することができる。
【0016】
図示されるように、ニューラル・ネットワーク・アクセラレータ100は、ニューラル・ネットワークの畳み込み層および全結合層に対応する計算を実行するように構成された行列乗算エンジン102を備え、この計算は、典型的にはメモリ104からのデータに対する低精度整数計算を使用して実行され得る。次いで、結果は、出力先入れ先出し(FIFO)データ構造106を介して特殊関数ユニット108に転送され、特殊関数ユニット108は、限定されないが、バッチ正規化、シグモイド関数、整流線形単位(ReLU)関数、およびSoftMax関数などの1つまたは複数の活性化関数に対応する計算を実行する。特殊関数ユニット108における計算は、通常、アクセラレータにマッピングされるニューラル・ネットワークの正確度を維持するために高精度で実行される必要がある。
【0017】
しかしながら、行列乗算はニューラル・ネットワーク・ワークロードにおける計算の大部分を占めており、したがって、行列乗算エンジン102は、ニューラル・ネットワーク・アクセラレータ100によって消費される総電力のかなりの割合を消費する可能性があることが理解される。さらに、行列乗算エンジン102で実行される低精度の整数計算は少なくとも部分的にアナログ領域で動作することによって実行することができ、その結果、デジタル回路を使用してデジタル領域でその計算の全体を実行するアクセラレータと比較して総電力消費量が低いアクセラレータが得られることが理解される。
【0018】
図1Bは、例示的な実施形態による、
図1Aのニューラル・ネットワーク・アクセラレータ100における1つまたは複数の積和演算によって計算されるベクトル・ドット積(以下でさらに説明されるように、本明細書では内積とも呼ばれる)を可能にする数学的表現110を示す。
図1Bの例では、左側の方程式は、それぞれサイズ64の2つのベクトルxおよびベクトルwのドット積を数学的に表し、要素x
iおよびw
iはそれぞれ4ビットを有する。4ビット×4ビットの各積(4b*4b)は、16個の1ビット×1ビットの積(1b*1b)に分割される。右側の方程式は、1b*1bの乗算を数学的に表し、x
i,mおよびw
i,nはそれぞれ1ビットを有する。
【0019】
最初にビット単位の積が実行され、次いでビットの重みに基づいて総和が実行される。基本的に、4ビット×4ビット項は16個の1ビット積に分割され、1ビット積は、累算(総計)され、次いで、外総和(outer summation)によって2のべき乗で適切にスケーリングされて総合計が生成される。電力の考慮に基づいて、1b*1b乗算はデジタル領域で実行され、1b*1b乗算の内総和(inner summation)はアナログ領域で実行され、外総和はデジタル領域で実行される。アナログ領域ではアナログ回路が電力の点でデジタル回路よりも優れているので、内総和はアナログ領域で実行される。アナログ領域では16方式加算を行う利点がほとんどないので、16方式加算はデジタル領域で実行されてもよい。例示的な一実施形態では、内総和の入力および出力はデジタルである。
【0020】
図1Bは例示的な一実施形態を表しており、したがって、他の実施形態ではアナログ領域計算およびデジタル領域計算の異なる区分化を使用できることに留意されたい。さらに、数学的表現110として示されたドット積計算は、説明を容易にするための一例として意図されていることも理解されたい。したがって、要素x
iおよびw
iが異なる数のビットを有するベクトルxおよびwのドット積の実装形態、ならびに一方のベクトルが他方のベクトルと比較して異なる数の要素を有するベクトルxおよびwのドット積の実装形態は、本明細書で提供される教示に基づく代替実施形態によってサポートされる。
【0021】
図2は、例示的な一実施形態による、整数行列乗算を実行するための混合信号積和回路200を示す。混合信号積和回路200の一部または全部は、いくつかの実施形態では、
図1の行列乗算エンジン102の一部として実装される理解されたい。図示されるように、第1のデジタル入力Xの各ビットx
i、および第2のデジタル入力Wのデジタル重みw
iを表す対応するビットが、16個の1ビット(1b)ドット積エンジン210-1、210-2…、210-15、210-16(本明細書ではドット積エンジン210と総称される)のうちの1つに入力される。ドット積エンジン210は、以下でさらに説明されるように2進乗算演算で発生する1の数を効果的にカウントするので、カウンタと呼ばれ得る。一例では、第1のデジタル入力Xは、4ビットの要素によって表される活性化関数を表し、第2のデジタル入力Wは、4ビットの要素によって表される重みを表す。デジタル部分和220-1、220-2…、220-15、220-16(本明細書では部分和220と総称される)はそれぞれ、ドット積エンジン210-1、210-2…、210-15、210-16によって出力される。デジタル部分和220はデジタル低減回路230に入力され、デジタル低減回路230は外総和を実行してMS-MAC出力を生成する。
【0022】
図3A~
図3Dは、例示的な実施形態による、ドット積エンジン210によって実行される内積総和のために構成されたMS-MAC回路の例を示す。
図3A~
図3Dの例示的な実施形態では、入力ベクトルXおよびWがそれぞれ63個の要素を含み、各要素が4ビットを含むと仮定されている。一般に、MS-MAC回路は、デジタル・ロジックを使用してデジタル信号領域において乗算を実行し、電荷共有コンデンサを使用してアナログ領域において累算を実行する。実際、MS-MAC回路は、デジタル領域においてデジタル入力を乗算し、アナログ領域において乗算結果を累算し、累算された結果に基づいて2進重み付きデジタル・コードを生成する。2進重み付きデジタル・コードのビット数は、MS-MAC回路によって実行されるアナログ対デジタル変換動作のアナログ解像度または量子化レベル(p)と呼ばれる。63ビット入力のセットに対して一意の2進重み付きコードを生成するためには、pは6、すなわちD[0:5]である。
図3A~
図3D全体を通して、同様のまたは類似の機能性を提供する回路要素は、同じまたは類似の参照番号を利用する。
【0023】
より具体的には、
図3Aに示されるように、MS-MAC回路300は、アナログ・ドット積エンジン302と、逐次近似レジスタ(SAR)ADC304とを含む。図示されるように、アナログ・ドット積エンジン302は、SAR ADC304の比較器310に出力V
INを提供し、入力V
INは、アナログ・ドット積エンジン302によって作成される重みの和Σx
iw
iに比例する。アナログ・ドット積エンジン302は入力x[62:0]およびw[62:0]を受け取り、出力V
IN∝Σx
iw
iを作成する。比較器310の出力は、本明細書の別の箇所でさらに詳細に説明される最上位ビット(MSB)スキップ・ロジック308を実装するSARコントローラ306に入力される。SARコントローラ306は、2進重み付きコードD[0:5]を出力し、2進重み付きコードD[0:5]は(それぞれの静電容量値C、2C、4C、8C、16C、32Cを有する)コンデンサ312のセットに提供される。2進重み付きコードD[0:5]のビットがそれぞれコンデンサ312のセット(例えば、MSBから最下位ビット(LSB)まで)に結合されることを理解されたい。6ビット量子化の場合、SARコントローラ306の2進重み付き出力のMSB(D5)は32Cコンデンサに結合され、次のビット(D4)は16Cコンデンサに結合され、次のビット(D3)は8Cコンデンサに結合され、次のビット(D2)は4Cコンデンサに結合され、次のビット(D1)は2Cコンデンサに結合され、LSB(D0)は1Cコンデンサに結合される。SARコントローラ306から出力される2進重み付きコードD[0:5]は、図示されるようにバッファのセットおよびスイッチ314を介してコンデンサ312の底部プレートに提供される。SAR ADC304は、リセット・スイッチ316も含み、リセット・スイッチ316が開かれると、コンデンサ312の上部プレートが電気的に浮遊することが可能になる。
【0024】
図3Bは、アナログ・ドット積エンジン302の実装形態の一例を示すMS-MAC回路320を示す。
図3Bに示されるように、アナログ・ドット積エンジン302は、63個のANDゲート322のセットを含み、ANDゲート322のそれぞれは、入力x[62:0]およびw[62:0]の対応するセットの乗算を実行する。ANDゲート322の出力(すなわち、x
0*w
0、x
1*w
1、…、x
62*w
62)は、リセット・スイッチ324を介して、それぞれが同じ静電容量値Cを有するコンデンサ326の底部プレートに結合される。アナログ・ドット積エンジン302は、リセット・スイッチ328をさらに含む。コンデンサ326の上部プレートは、出力V
IN∝Σx
iw
iを比較器310に提供する。
【0025】
図3Cは、
図3Aに関して上述したものと同様の方法で機能するSAR ADC304を含むMS-MAC回路340を示す。MS-MAC回路340は、ビット・セル342のセットも含む。ビット・セル342は、抵抗ランダム・アクセス・メモリ(RRAM)、磁気抵抗ランダム・アクセス・メモリ(MRAM)、スタティック・ランダム・アクセス・メモリ(SRAM)などとして実装されてもよい。ビット・セル342は、抵抗処理ユニット(RPU)として作用してもよく、各ビット・セル342は、w
iのうちの1つの値を記憶する。入力x
iは、ビット・セル342に印加されたとき、V
INを作成するように複数のx
i*w
iに対して作用する。
【0026】
図3Dは、デジタル(論理)ANDゲート362-1、362-2、…、362-63のセット(本明細書ではANDゲート362と総称される)の入力端子を含む、MS-MAC回路360を示しており、これら入力端子はそれぞれ、データ入力x
0w
0、x
1w
1…、x
62w
62に接続され、一方、ANDゲート362のセットの出力端子はそれぞれ、スイッチ対364-1、364-2、…、364-63のセット(スイッチ対364と総称される)に接続される。スイッチ対364は、さらに説明されるように、SARコントローラ306によって生成される制御入力「sum」および「sar」を介して、MS-MAC回路360が総和動作フェーズとSAR動作フェーズとの間で切り替えられるようにする。SARコントローラ306は、MSBスキップ・ロジック308を実装するように構成され、これについては本明細書の他の箇所でさらに詳細に説明する。
【0027】
スイッチ対364は、コンデンサ366と総称されるコンデンサ366-1、366-2、…、366-63のセットのそれぞれの底部プレートに接続される。コンデンサ366はそれぞれ同じ静電容量C0=C1=・・・=C63を有する。コンデンサ366の上部プレートは、比較器310の第1の入力およびプリチャージ・スイッチ368に接続される。プリチャージ・スイッチ368は、さらに説明されるように、制御信号「prech」を介して、コンデンサ366の上部プレートに共通モード電圧VCMを選択的に印加する。比較器310の第2の入力は、VCMに接続される。電圧VCMは、比較器310が最良の感度/ノイズ特性を有する可能性が最も高い電圧である、比較器310の自然共通モード電圧に設定される。比較器310の出力は、SARコントローラ306に接続される。SARコントローラ306は、2進重み付きコードD[0:5]を出力する。また、図示されるように、データ入力および制御入力はそれぞれ、バッファ370によってバッファリングされることに留意されない。クロック信号(clk、明示的に図示せず)は、SARコントローラ306と比較器310との間のタイミングを同期させ、これはクロック・バッファ(明示的に図示せず)によってバッファリングされてもよい。
【0028】
図3Dに示されるように、MS-MAC回路360の場合、同じ組のコンデンサ366が入力総和とSAR変換との両方に利用される。これにより、電荷共有の減衰およびコンデンサの非線形性に関連する問題が軽減される。入力総和フェーズ中、コンデンサ366は個別に制御され、SAR変換動作中、コンデンサ366は2進重み付き方式で制御される。
【0029】
第1の動作フェーズ(sum)中、共通ノード372の電圧VSUMがVCMに等しくなるように、プリチャージ・スイッチ368が閉じられ、比較器310の入力が効果的に電気的に短絡される。同時に、ANDゲート362によって入力xi、wiの各対の積が計算され、各スイッチ対364のsumスイッチを閉じて各スイッチ対364のSARスイッチを開くように切り替えることによって、コンデンサ366のそれぞれの底部プレートに個別に印加される。コンデンサ366のそれぞれの底部プレートは、対応するANDゲート362の論理出力に応じて、動作の第1のフェーズの終了時に基準電圧(VREF、明示的に図示せず)または0Vのいずれかまで充電される。したがって、各コンデンサ366は、電荷Qi=C(xi*wi*VREF-VCM)を蓄積する。
【0030】
第2の動作フェーズ(SAR)中、最初にプリチャージ・スイッチ368が開かれ、コンデンサ366の上部プレートを接続する共通ノード372は電気的に浮遊することが可能になる。次に、SARコントローラ306の(バッファ370を通した)出力がコンデンサ366の動作構成を制御できるように、スイッチ対364は、SARコントローラ306の制御出力を通過させるように構成される(各スイッチ対364のsumスイッチが開かれ、各スイッチ対364のSARスイッチが閉じられる)。すなわち、コンデンサ366のセットは、このフェーズにおいて2進重み付き静電容量のアレイとして構成される、すなわち、コンデンサ366のサブセットは、SARコントローラ306のビット制御線のうちの所定のもの、例えばLSBからMSBに接続される。ビット制御線はそれぞれ、SARコントローラ306によって生成される2進重み付き出力(コード)内のビット、例えば、量子化レベル6の場合のD[0:5]に対応する。すなわち、SAR制御信号がスイッチ対364の対応するスイッチを閉じると、コンデンサ366のうちの所与のコンデンサがビット制御線のうちの所与のビット制御線に接続される。6ビット量子化の場合、SARコントローラ306の2進重み付き出力のMSB(D5)はコンデンサ306-32から306-63(32個のコンデンサ)に結合され、次のビット(D4)はコンデンサ306-16から306-31(16個のコンデンサ)に結合され、次のビット(D3)はコンデンサ306-8から306-15(8個のコンデンサ)に結合され、次のビット(D2)はコンデンサ306-4から306-7(4個のコンデンサ)に結合され、次のビット(D1)はコンデンサ306-2および306-3(2個のコンデンサ)に結合され、LSB(D0)はコンデンサ306-1(1個のコンデンサ)に結合される。
【0031】
ANDゲート362による乗算の結果およびその結果としてコンデンサ366のセットによって蓄えられる電荷に応じて、比較器310によって、出力ビットD[0:5]ごとに連続する反復において(1か0かの)判定が行われる。したがって、
図3Dに示す63方式データ入力に対する6ビットの2進重み付き出力を生成するには、6回のSAR反復が必要である。
【0032】
図3DのMS-MAC回路360によって実行されるドット積計算を要約すると、第1の動作フェーズ(第1のサイクル)において、ANDゲート362は、それぞれの入力で受信したデータを乗算し、ANDゲート362の出力は、コンデンサ366を駆動する。次いで、第2の動作フェーズ(第2のサイクルから第7のサイクル、すなわち、6ビットの2進重み付き出力に対応する)において、上記で説明したように通常のSAR ADC動作が実行される。
【0033】
図4は、
図3A~
図3Dに示すMS-MAC回路300、320、340、および360によって実行されるドット積計算に関連する代数表現400を示す。混合信号ドット積エンジン(MS-DPE:mixed signal dot product engine)は、63方式2進乗算において1の数をカウントする。本明細書では上述のように、行列乗算エンジン102の総エネルギー消費量、したがってエネルギー効率は、ドット積エンジン210のエネルギー消費量によって支配され、ドット積エンジン210のエネルギー消費量はさらにMS-MAC回路のADC変換エネルギーによって支配されることが理解される。例えば、
図3DのMS-MAC回路360のコンテキストでは、SAR ADC動作に関与する構成要素に関連するエネルギー消費量は、総エネルギー消費量の75%以上を占める。例示的な実施形態は、少なくとも部分的にMSBスキップ・ロジック308の使用を通じて、この問題および他の問題に対処するための解決策を提供する。
【0034】
図5Aから
図5Cは、例示的な実施形態により利用されるドット積統計を示す。より具体的には、表500は、入力ベクトルXおよびWのドット積における個々のビットの確率Pを示す。図示されるように、P(X
i=0)=0.5、P(Wi=0)=0.5であり、一方、P(X
iW
i=0)=0.25である。表510は、2bドット積エンジン(
【数1】
)における出力確率Pを示す。一様にランダムなX、Wの場合、81.25%の確率で出力(2ビット)のMSBがゼロになることに留意されたい。次に、63bドット積エンジン(例えば、
図2および
図3A~
図3Dの210)における出力確率Pが表520に示されている。したがって、
【数2】
であり、63bドット積出力のMSBは、ほとんどの場合0になる。言い換えれば、XおよびWの論理AND演算により、ドット積出力(例えば、SAR ADC出力)のMSBは「0」になる可能性が高くなる。例示的な実施形態は、この実現を利用し、ADC変換を(MSB-1)番目のビットから開始できるドット積計算方法論を提供する。すなわち、そのような実施形態は、MSBがゼロに等しいと仮定し、計算においてMSBを効率的にスキップする。MSBが1に等しいという低確率のイベント(例えば、(MSB-1)番目のビットからの連続したnビットがすべて1である、または任意の代替の検出条件)では、さらに説明されるように、この発生が検出され、SAR ADC動作は、限られた数のペナルティ・サイクルに従って再開始される。有利なことに、例示的な実施形態によるMSBスキッピングは、重みまたは活性化の事前計算を必要としない。
【0035】
図6は、例示的な実施形態によるドット積エンジンにおけるMSBスキップの動機をさらに示すグラフ600を示す。累積分布関数(CDF:cumulative distribution function)のコンテキストでグラフ表示されているように、
図2および
図3A~
図3Dの16個の63bドット積エンジン210すべての出力が28(6’b011100)未満であり、確率は98.9%を超える。
【0036】
例示を明確にするために、MSBのみをスキップするMSBスキップ・ロジック308に関して様々な実施形態が説明されることに留意されたい。しかしながら、MSBスキップ・ロジック308は、代わりにk個の最上位ビットを「スキップ」してもよく、k≧1である。kの選択は、
図5A~
図5Cおよび
図6に関して上述したように、利用されるドット積エンジンの出力確率分布の分析に少なくとも部分的に基づいてもよい。
【0037】
図7は、例示的な実施形態による、ドット積エンジンにおける最上位ビット・スキッピングを実装するエネルギー高効率アナログ対デジタル変換の数学的表現700を示す。より具体的には、Dビット・ドット積エンジンにおけるMS-MAC回路のADC計算部分は、
【数3】
と表され、ここで、N=ceiling(log
2(D))であり、nは誤差の確率が非常に低くなる(MSB-1)番目の位置からの最小ビット数である。
図7の数学的表現700に示されるように、2つの可能性が存在する。1つ目はMSBスキッピングが利用される場合であり、D項ドット積エンジンにはN-1サイクルがある。(MSB-1)番目の位置からの連続するnビットがすべて「1」であると判定される(例えば、MSBが1に等しいという低確率イベントを示している)場合、計算が再開始され、サイクル数はn+Nであり、ここで1≦n≦N-1である。追加または代替の検出条件を使用して、ADC計算の再開始をトリガすることができる。さらに、いくつかの実施形態では、そのような条件が検出された場合でも計算が再開始されないように、ある程度の量の誤差が許容されてもよい。
【0038】
典型的には、MS-MACには複数のドット積エンジンが存在する。例えば、
図2および
図3A~
図3Dに示されるように、4bのXおよびWの場合、
【数4】
を計算するには、16個のドット積エンジンが必要である。
【0039】
nを控えめに選択すると、誤差ペナルティが増加するが、ドット積エンジンの出力が
【数5】
を超える確率は確実に低くなる。
【0040】
ドット積エンジンのうちのいずれかで誤差が検出されると(nビットすべてが1)、すべてのドット積エンジンは(n+N)サイクルを要する。
【0041】
図8は、例示的な一実施形態による、ドット積エンジンにおけるMSBスキッピングの実装に関連する誤差許容度を実証するためのプロセス・サイクル・フロー800を示す。より具体的には、プロセス・サイクル・フロー800は、通常動作810(例えば、MSBがスキップされない)とエネルギー高効率動作820(例えば、MSBがスキップされる)との両方のサイクル0~5を示す。通常動作810の場合、サイクル0においてMSBが算出され、これは0または1に等しい値Cを有してもよい。次のサイクルにおいて、(MSB-1)番目が算出され、これもはやり0または1に等しいCに対応してもよい。これは、後続のサイクル(例えば、サイクル2以降)においても継続する。例示的な実施形態によれば、エネルギー高効率動作820の場合、MSBが0であると仮定することによって、サイクル0が「スキップ」されてもよく、その仮定により、サイクル1から処理が開始されてもよい。上述したように、いくつかの実施形態では、MSBスキッピングは、kの最上位ビットをスキップすることを含んでもよく、k≧1であり、したがって、エネルギー高効率動作820は、複数のサイクルをスキップしてもよい(例えば、k=2の場合、サイクル0およびサイクル1がスキップされることになる)。
【0042】
後続のnサイクルでビットが1である場合、エネルギー高効率動作820での計算が「再開始」される。再開始されると、プロセスは、MSBがスキップされない通常動作810に移行する。
図8に示されるように、平均変換サイクルは、
P(ΣX*W<E
TH)*(N-1)+P(ΣX*W≧E
TH)*(N+n)
と表され、ここで、E
THは上記の低確率イベント、すなわち、
【数6】
を表す。平均変換サイクルはまた、
(ΣX*W<E
TH)*(log
2D-1)+P(ΣX*W≧E
TH)*(log
2D+n)
と表されてもよい。上述したように、4bのXおよびWを有する63方式MACの場合、
P(ΣX*W<28)*5+P(ΣX*W≧28)*9=5.0444
であるように、E
THの値=28である。
【0043】
図9Aから
図9Cは、例示的な実施形態によるエネルギー節約の比較を示す。より具体的には、ADC SAR動作における6ビットの2進重み付き出力について、グラフ900は、元の手法(例えば、MSBスキッピングが使用されない)を示し、グラフ910は、例示的な実施形態によるエネルギー高効率手法(例えば、MSBスキッピングが使用される)を示す。エネルギー高効率手法を使用すると、通常の手法と比較して大幅なエネルギー節約(例えば、25%以上)を実現することができる。このようなエネルギー節約は、MS-MAC回路の様々な構成要素のエネルギー消費量(例えば、ADCの底部プレートのエネルギー、SAR制御およびドライバのエネルギーなど)を削減することによって達成することができ、このような削減は、ビット再構成可能性を提供するために必要とされる制御エネルギーの増加を相殺する以上のものである。
【0044】
図10は、k個の最上位ビットのスキッピングを利用した、エネルギー高効率混合信号ドット積計算のための方法論1000を示し、k≧1である。方法論1000は、上記のSARコントローラ306のMSBスキップ・ロジック308によって実装される機能の一例である。方法論1000は、ステップ1002で開始し、k個の最上位ビットが0である(例えば、SAR
MSBからSAR
MSB-(k-1)が0である)と仮定される。例えば、(MSBのみをスキップすることに対応する)k=1の場合、SAR
MSB=0と仮定される。(2つの最上位ビットMSBおよびMSB-1をスキップすることに対応する)k=2の場合、SAR
MSB=SAR
MSB-1=0と仮定される。計算は(MSB-k)番目のビットから開始される。ステップ1004において、SAR
MSB-kからSAR
MSB-n-kまでn個のSAR決定が計算される。
【0045】
ステップ1004に続いて、方法1000は決定ブロック1006に進むか、ステップ1008に直接継続する。決定ブロック1006は、1つまたは複数の指定条件を検出したことに応答して計算を再開始すべきかどうかを判定するために使用される。このような指定条件は、SARMSB-kからSARMSB-n-kに対して計算されたSAR決定の値に少なくとも部分的に基づいて検出されてもよい。本明細書の他の箇所で説明されるように、厳密ではない計算が許容される場合などにおいては、そのような計算の再開始は必須ではない。そのような実施形態の場合、決定ブロック1006はスキップされてもよく、処理はステップ1004からステップ1008に直接進む。
【0046】
決定ブロック1006がスキップされない場合、1つまたは複数の指定条件が検出されるかどうかに基づいて、計算を再開始すべきかどうかの判定が行われる。計算の再開始をトリガし得る指定条件の一例は、ステップ1004の計算がすべて1という出力を作成するとの判定(例えば、SARMSB-k:SARMSB-k-n+1==n’b111…1かどうか)である。ステップ1006の判定の結果が「いいえ」である場合、方法論はステップ1008に進み、ビットSARMSB-n-kからビットSAR0まで、残りの(N-n-k)個のSAR決定が計算され、ステップ1010において、正確なSAR出力が作成される。
【0047】
ステップ1006の判定の結果が「はい」である場合、方法論1000は別の決定ブロック1012に進む。決定ブロック1012では、MSBから計算を再開始することに直接進むべきかどうかについて、または、k未満の最上位ビットをスキップしながらMSBスキップ・ロジックが再試行されるようにkの値を減少させるべきかについて判定が行われる。決定ブロック1012の結果が「はい」の場合、kの値は減少する。いくつかの実施形態では、(例えば、連続する反復において、可能な限り多くのビットをスキップしながらMSBスキップ・ロジックが再試行されるように)決定ブロック1012が「はい」を出力するたびに、kが1だけ減分される。他の実施形態では、計算の繰り返しの再開始に関連する「ペナルティ」を軽減するために、決定ブロック1012が「はい」を出力するたびに、kが2以上減分されてもよい。次いで、方法論1000は決定ブロック1014に進み、決定ブロック1014は、決定ブロック1012が「はい」を出力したときに適用された減少の後にkの現在値=0であるかどうかを判定する。決定ブロック1014の結果が「はい」である場合、これは「スキップ」が行われない場合に対応し、方法論1000はステップ1016に進み、MSBから計算が開始される。決定ブロック1014の結果が「いいえ」である場合(例えば、決定ブロック1012が「はい」を出力したときに適用された減少の後に、k>0である場合)、処理は、減少した新しい値kを使用してステップ1002に戻る。
【0048】
決定ブロック1012の結果が「いいえ」である場合、または決定ブロック1014の結果が「はい」である場合、ステップ1016において、MSBから計算が再開始される。次いで、ステップ1018において通常のSAR動作が行われ、続いてステップ1010において正確なSAR出力が行われる。決定ブロック1012の出力は、既に実行されたステップ1002およびステップ1004の反復回数などの様々な因子に基づいて制御されてもよい。いくつかの実施形態では、決定ブロック1012の結果が「いいえ」となりステップ1014においてMSBから計算が再開始される前にビット・スキッピングが閾値回数だけ試行されるように、反復回数に対して閾値が設定される。いくつかの実施形態では、(例えば、決定ブロック1012が常に「いいえ」を出力し、決定ブロック1006が「はい」を出力する場合はいつでもステップ1016においてMSBから計算が再開始されるように)閾値は1に設定されてもよい
【0049】
2つの最上位ビットが「スキップ」されるように最初の反復においてステップ1002およびステップ1004がk=2で実行される例について考察する。決定ブロック1006において指定条件が検出された場合、および決定ブロック1012が「はい」を出力した場合、kは1だけ減少してもよい。次いで、第2の反復においてMSBのみがスキップされるように、ステップ1002およびステップ1004の第2の反復がk=1で実行されてもよい。決定ブロック1006において指定条件が再度検出された場合、処理はステップ1016に進み、MSBから計算が開始される(例えば、決定ブロック1012が「はい」を出力した場合でもkは0に減少することになり、したがって決定ブロック1014は「はい」を出力し、方法論はステップ1016に進むことになる)。
【0050】
図11は、例示的な実施形態による人工知能システム1100の代表的な実装形態を示す。図示されるように、システム1100は、データ・セット1110と、ニューラル・ネットワーク・モデル1120と、エネルギー高効率ADCを有するMACユニット1130とを備える。エネルギー高効率ADCを有するMACユニット1130は、本明細書の他の箇所で説明されているように、MSBスキッピング(例えば、MSBスキップ・ロジック309)を実装し、訓練モードにおける訓練データまたは推論モードにおける推論データ・セットを含み得るデータ・セット1110を利用して、ニューラル・ネットワーク・モデル1120の計算を実行する。
【0051】
代表的な一実施形態では、人工知能システム1100は、1つまたは複数の特定用途向け集積回路(ASIC)によって実装される。ASICは、実行可能プログラム・コード(例えば、命令コード、コンピュータ・プログラム・コードなど)でプログラムされたロジック(例えば、回路、プロセッサ、メモリなど)を含む、特定の目的のためにカスタマイズされた、もしくは他の方法で特定の目的のために構成された、集積回路(IC)チップまたはデバイスである。この代表的な事例において、特定の目的は、人工知能システム(例えば、機械学習アルゴリズム)の実装および実行である。ASICは、システム・オン・チップ(SoC)ともみなされる。1つまたは複数の例示的な実施形態とともに使用されるいくつかのASIC実装形態は、システムの構成(および再構成)を可能にする、ユーザが選択可能な基本論理機能(例えば、切り替え、比較などの様々な機能を提供するために複数のVLSIトランジスタ・デバイスで構成される、マルチプレクサ、比較器など)のセル・ライブラリを採用する。
【0052】
人工知能システム1100およびその一部は、1つまたは複数のマルチコア中央処理ユニット(CPU)、1つまたは複数のグラフィックス処理ユニット(GPU)、および1つまたは複数のフィールド・プログラマブル・ゲート・アレイ(FPGA)を含む技術などの代替の回路/プロセッサベースの技術で実現されることをさらに理解されたい。いくつかの実施形態では、人工知能システム1100は、2つ以上の回路/プロセッサベースの技術(例えば、ASIC、CPU、GPU、FPGAなど)の組合せとして実装され得る。
【0053】
図1~
図11に示される技術は、本明細書に記載のように、システムが別個のソフトウェア・モジュールを含み、別個のソフトウェア・モジュールのそれぞれが有形のコンピュータ可読記録可能記憶媒体上に具現化されるようなシステムを提供することを含むこともできる。すべてのモジュールのすべて(またはその任意のサブセット)は、例えば、同じ媒体上に存在することが可能であり、またはそれぞれが異なる媒体上に存在することが可能である。モジュールは、図に示される構成要素または本明細書で説明される構成要素あるいはその両方のいずれかまたはすべてを含むことができる。本発明の一実施形態では、モジュールは、例えばハードウェア・プロセッサ上で実行することができる。その場合、方法のステップは、上述したようにハードウェア・プロセッサで実行される、システムの別個のソフトウェア・モジュールを使用して実行され得る。さらに、コンピュータ・プログラム製品は、別個のソフトウェア・モジュールを有するシステムの提供を含む本明細書に記載の少なくとも1つの方法のステップを実施するために実行されるように適合されたコードを有する有形のコンピュータ可読記録可能記憶媒体を含むことができる。
【0054】
さらに、
図1~
図4に示される技術は、データ処理システムにおけるコンピュータ可読記憶媒体に記憶されたコンピュータ使用可能プログラム・コードを含み得るコンピュータ・プログラム製品を介して実装されることが可能であり、コンピュータ使用可能プログラム・コードは、遠隔データ処理システムからネットワークを介してダウンロードされたものである。また、本発明の一実施形態では、コンピュータ・プログラム製品は、サーバ・データ処理システムにおけるコンピュータ可読記憶媒体に記憶されたコンピュータ使用可能プログラム・コードを含むことができ、コンピュータ使用可能プログラム・コードは、遠隔システムを用いてコンピュータ可読記憶媒体で使用するために、ネットワークを介して遠隔データ処理システムにダウンロードされる。
【0055】
本発明の実施形態またはその要素は、メモリと、メモリに結合され代表的な方法のステップを実行するように構成された少なくとも1つのプロセッサとを含む装置の形式で実装され得る。
【0056】
いくつかの実施形態では、装置は、少なくとも1つのプロセッサと、命令コードを含む少なくとも1つのメモリとを備える。少なくとも1つのメモリおよび命令コードは、少なくとも1つのプロセッサにより、装置に少なくとも、アナログ入力からビットのセットを含むデジタル出力へのアナログ対デジタル変換を実行することであって、ビットのセットが、最上位ビットおよび1つまたは複数の追加ビットを含み、アナログ対デジタル変換が、最上位ビットに続く1つまたは複数の追加ビットのうちの所与のビットから始まる、アナログ対デジタル変換を実行することを行わせるように構成される。
【0057】
少なくとも1つのメモリおよび命令コードは、少なくとも1つのプロセッサにより、装置に、1つまたは複数の指定条件を検出することと、1つまたは複数の指定条件のうちの少なくとも1つを検出したことに応答して、ビットのセットのうちの別のビットから始まるアナログ対デジタル変換を再開始することとを行わせるようにさらに構成される。1つまたは複数の指定条件のうちの前記少なくとも1つを検出することは、1つまたは複数の追加ビットのうちの所与のビットに続く1つまたは複数の追加ビットのうちの連続するビットの閾値数の値に少なくとも部分的に基づいてもよい。閾値数は、第1のベクトルと第2のベクトルとの2進乗算を実行するドット積エンジンの出力確率分布およびアナログ対デジタル変換の出力における許容誤差のうちの少なくとも1つに少なくとも部分的に基づいて選択されてもよい。
【0058】
最上位ビットに続く1つまたは複数の追加ビットのうちの所与のビットは、最上位ビットに続く1つまたは複数の追加ビットのうちの最初のビットを含んでもよく、ビットのセットのうちの他のビットから始まるアナログ対デジタル変換を再開始することは、最上位ビットから始まるアナログ対デジタル変換を再開始することを含んでもよい。
【0059】
MSBに続く1つまたは複数の追加ビットのうちの所与のビットは、(MSB-k)番目のビットを含んでもよく、ビットのセットのうちの他のビットから始まるアナログ対デジタル変換を再開始することは、(MSB-k+l)番目のビットから始まるアナログ対デジタル変換を再開始することを含んでもよく、lは1以上の整数である。kの値は、第1のベクトルと第2のベクトルとの2進乗算を実行するドット積エンジンの出力確率分布およびアナログ対デジタル変換の出力における許容誤差のうちの少なくとも1つに少なくとも部分的に基づいて選択されてもよい。
【0060】
いくつかの実施形態では、方法は、アナログ入力からビットのセットを含むデジタル出力へのアナログ対デジタル変換を実行するステップであって、ビットのセットが、最上位ビットおよび1つまたは複数の追加ビットを含み、アナログ対デジタル変換が、最上位ビットに続く1つまたは複数の追加ビットのうちの所与のビットから始まる、ステップを含む。方法は、命令コードを実行するように構成された処理回路によって実行される。
【0061】
方法は、1つまたは複数の指定条件を検出するステップと、1つまたは複数の指定条件のうちの少なくとも1つを検出したことに応答して、ビットのセットのうちの別のビットから始まるアナログ対デジタル変換を再開始するステップとをさらに含んでもよい。MSBに続く1つまたは複数の追加ビットのうちの所与のビットは、(MSB-k)番目のビットを含んでもよく、ビットのセットのうちの他のビットから始まるアナログ対デジタル変換を再開始するステップは、(MSB-k+l)番目のビットから始まるアナログ対デジタル変換を再開始することを含んでもよく、lは1以上の整数である。
【0062】
いくつかの実施形態では、製造品は、実行可能命令コードが具現化された非一過性コンピュータ可読記憶媒体を備え、実行可能命令コードは、プロセッサによって実行されたときに、プロセッサに、アナログ入力からビットのセットを含むデジタル出力へのアナログ対デジタル変換を実行するステップであって、ビットのセットが、最上位ビットおよび1つまたは複数の追加ビットを含み、アナログ対デジタル変換が、最上位ビットに続く1つまたは複数の追加ビットのうちの所与のビットから始まる、ステップを実行させる。
【0063】
実行可能命令コードは、プロセッサによって実行されたときに、プロセッサにさらに、1つまたは複数の指定条件を検出するステップと、1つまたは複数の指定条件のうちの少なくとも1つを検出したことに応答して、ビットのセットのうちの別のビットから始まるアナログ対デジタル変換を再開始するステップとを実行させる。最上位ビット(MSB)に続く1つまたは複数の追加ビットのうちの所与のビットは、(MSB-k)番目のビットを含んでもよく、ビットのセットのうちの他のビットから始まるアナログ対デジタル変換を再開始するステップは、(MSB-k+l)番目のビットから始まるアナログ対デジタル変換を再開始することを含んでもよく、lは1以上の整数である。
【0064】
いくつかの実施形態では、システムは、第1のベクトルと第2のベクトルとの2進乗算を実行するように構成されたドット積総和計算ユニットと、ドット積総和計算ユニットのアナログ出力をビットのセットを含むデジタル出力に変換するように構成されたSAR ADCユニットであって、ビットのセットが最上位ビットおよび1つまたは複数の追加ビットを含む、SAR ADCユニットと、SAR ADCユニットに動作可能に結合されたコントローラ・ロジックであって、ドット積総和計算ユニットの出力と重み付き2進コードのシーケンスとの比較に少なくとも部分的に基づいてデジタル出力のビットのセットの値を判定するように構成される、コントローラ・ロジックとを含む。重み付き2進コードのシーケンスは、最上位ビットに続く1つまたは複数の追加ビットのうちの所与のビットから始まる。
【0065】
MSBに続く1つまたは複数の追加ビットのうちの所与のビットは、(MSB-k)番目のビットを含んでもよく、コントローラ・ロジックは、1つまたは複数の追加ビットのうちの所与のビットに続く1つまたは複数の追加ビットのうちの連続するビットの閾値数の値に少なくとも部分的に基づいて1つまたは複数の指定条件を検出したことに応答して、(MSB-k+l)番目のビットから始まる重み付き2進コードの新しいシーケンスを用いてデジタル出力のビットのセットの値の判定を再開始するようにさらに構成され、lは1以上の整数である。
【0066】
システムは、人工知能システムの一部として、1つまたは複数の集積回路の一部として、それらの組合せなどとして実装されてもよい。
【0067】
いくつかの実施形態では、デバイスは、第1の信号を出力するように構成されたドット積総和回路であって、第1の信号が第1のベクトルと第2のベクトルとの2進乗算のドット積和を含む、ドット積総和回路と、ドット積総和回路によって出力される第1の信号からビットのセットを含むデジタル出力への変換を実行するように構成されたSAR ADCであって、ビットのセットが最上位ビットおよび1つまたは複数の追加ビットを含む、SAR ADCとを備える。SAR ADCは、第2の信号を出力するように構成されたSARコントローラ回路、ならびにドット積総和回路に結合された第1の入力ノード、SARコントローラ回路に結合された第2の入力ノード、およびドット積総和回路によって出力される第1の値とSARコントローラ回路によって出力される第2の値との比較に少なくとも部分的に基づいて出力値を提供するように構成された出力ノードを備える、比較器回路を備える。SARコントローラ回路は、重み付き2進コードのシーケンスが第2の信号として出力されるときに作成される比較器回路の出力値に少なくとも部分的に基づいて、デジタル出力のビットのセットの値を判定するように構成される。重み付き2進コードのシーケンスは、最上位ビットに続く1つまたは複数の追加ビットのうちの所与のビットから始まる。
【0068】
MSBに続く1つまたは複数の追加ビットのうちの所与のビットは、(MSB-k)番目のビットを含み、SARコントローラ回路は、1つまたは複数の追加ビットのうちの所与のビットに続く1つまたは複数の追加ビットのうちの連続するビットの閾値数の値に少なくとも部分的に基づいて1つまたは複数の指定条件を検出したことに応答して、重み付き2進コードの新しいシーケンスが第2の信号として出力されるときに作成される比較器回路の出力値に少なくとも部分的に基づいて、デジタル出力のビットのセットの値の判定を再開始するようにさらに構成されてもよく、重み付き2進コードの新しいシーケンスは(MSB-k+l)番目のビットから始まり、lは1以上の整数である。
【0069】
SARコントローラ回路は、複数のコンデンサを介して比較器回路に結合されてもよい。
【0070】
複数のコンデンサは、それぞれ異なる静電容量値を有してもよい。ドット積総和回路は、複数の論理ANDゲートを備えてもよく、複数の論理ANDゲートのそれぞれは、第1のベクトルの第1のベクトル要素および第2のベクトルの第2のベクトル要素を入力として受け取り、複数の論理ANDゲートは、複数のコンデンサの第1のプレートに結合されたそれぞれの出力を有する。
【0071】
代替として、複数のコンデンサのそれぞれは同じ静電容量値を有してもよく、複数の論理ANDゲートのそれぞれと複数のコンデンサとの間に複数のスイッチが結合されてもよく、複数のスイッチは、複数のコンデンサの第2のプレートに結合された共通線上の電圧が第1のベクトルと第2のベクトルとのドット積和を表す第1の動作モードと、複数のコンデンサの第2のプレートに結合された共通線上の電圧が重み付き2進コードのシーケンスのうちの1つを表す第2の動作モードとの間で切り替えるように構成される。
【0072】
ドット積総和回路は、複数のスイッチを介して複数の論理ANDゲートに結合された追加の複数のコンデンサを備えてもよく、複数の論理ANDゲートのそれぞれは、第1のベクトルの第1のベクトル要素および第2のベクトルの第2のベクトル要素を入力として受け取り、複数の論理ANDゲートは、追加の複数のコンデンサの第1のプレートに結合されたそれぞれの出力を有する。
【0073】
ドット積総和回路は、複数のビット・セル処理ユニットを備えてもよく、複数のビット・セル処理ユニットのそれぞれは、第1のベクトルの要素のうちの1つを表す第1のベクトル要素値を記憶し、第2のベクトルの要素のうちの1つを表す第2のベクトル要素値を入力として受け取り、第1のベクトル要素値と第2のベクトル要素値との2進乗算を表す値を出力する。複数のビット・セル処理ユニットのそれぞれは、RPUおよびメモリ・セルのうちの1つを備えてもよい。
【0074】
さらに、本発明の実施形態は、コンピュータまたはワークステーション上で実行されるソフトウェアを利用することができる。
図12を参照すると、そのような実装は、例えば、プロセッサ1202と、メモリ1204と、例えばディスプレイ1206およびキーボード1208によって形成される入出力インターフェースとを使用してもよい。本明細書で使用される「プロセッサ」という用語は、例えば、マルチコアCPU、GPU、FPGA、または1つもしくは複数のASICなどの他の形式の処理回路、あるいはその組合せを含むものなど、任意の処理デバイスを含むことを意図している。さらに、「プロセッサ」という用語は、2つ以上の個別のプロセッサを指すことがある。「メモリ」という用語は、例えば、RAM(ランダム・アクセス・メモリ)、ROM(読み取り専用メモリ)、固定メモリ・デバイス(例えば、ハード・ドライブ)、リムーバブル・メモリ・デバイス(例えば、ディスケット)、フラッシュ・メモリなど、プロセッサ(例えば、CPU、GPU、FPGA、ASICなど)に関連付けられたメモリを含むことを意図している。さらに、本明細書で使用される「入出力インターフェース」という語句は、例えば、処理ユニット(例えば、マウス)にデータを入力するための機構、および処理ユニット(例えば、プリンタ)に関連付けられた結果を提供するための機構を含むことを意図している。プロセッサ1202、メモリ1204、ならびにディスプレイ1206およびキーボード1208などの入出力インターフェースは、例えば、データ処理ユニット1212の一部としてバス1210を介して相互接続され得る。好適な相互接続は、例えばバス1210を介して、コンピュータ・ネットワークとインターフェースするために提供されるネットワーク・カードなどのネットワーク・インターフェース1214、および媒体1218とインターフェースするために提供されるディスケットまたはCD-ROMドライブなどの媒体インターフェース1216にも提供され得る。
【0075】
したがって、本明細書に記載される本発明の方法論を実行するための命令またはコードを含むコンピュータ・ソフトウェアは、関連するメモリ・デバイス(例えば、ROM、固定メモリまたはリムーバブル・メモリ)に記憶され、利用される準備ができたときに、部分的にまたは全体的に(例えば、RAMの中に)ロードされ、CPUによって実行されてもよい。そのようなソフトウェアには、ファームウェア、常駐ソフトウェア、マイクロコードなどが含まれるが、これらに限定されない。
【0076】
プログラム・コードを記憶または実行あるいはその両方を行うのに好適なデータ処理システムは、システム・バス1210を介してメモリ要素1204に直接的または間接的に結合された少なくとも1つのプロセッサ1202を含むことになる。メモリ要素には、プログラム・コードの実際の実行中に使用されるローカル・メモリ、バルク・ストレージ、および実行中にバルク・ストレージからコードを取得しなければならない回数を低減するために少なくとも何らかのプログラム・コードの一時的なストレージを提供する、キャッシュ・メモリが含まれ得る。
【0077】
入力/出力またはI/Oデバイス(キーボード1208、ディスプレイ1206、ポインティング・デバイスなどを含むが、これらに限定されない)は、(バス1210などを介して)直接的にまたは介在するI/Oコントローラ(明瞭にするために省略されている)を通じてシステムに結合され得る。
【0078】
介在するプライベート・ネットワークまたはパブリック・ネットワークを通じてデータ処理システムが他のデータ処理システムまたは遠隔プリンタまたはストレージ・デバイスに結合できるように、ネットワーク・インターフェース1214などのネットワーク・アダプタもシステムに結合されてもよい。モデム、ケーブル・モデム、およびEthernet(R)カードは、現在利用可能なネットワーク・アダプタのタイプのごく一部にすぎない。
【0079】
特許請求の範囲を含む本明細書で使用される場合、「サーバ」には、サーバ・プログラムを実行する物理データ処理システム(例えば、
図12に示すシステム1212)が含まれる。このような物理サーバは、ディスプレイおよびキーボードを含んでも含まなくてもよいことが理解されよう。
【0080】
本発明は、あらゆる可能な技術的詳細レベルの統合におけるシステム、方法、またはコンピュータ・プログラム製品あるいはその組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数のコンピュータ可読記憶媒体)を含んでもよい。
【0081】
コンピュータ可読記憶媒体は、命令実行デバイスが使用するための命令を保持および記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または上記の任意の好適な組合せとすることができるが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、SRAM、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピ・ディスク、パンチカードまたは命令が記録された溝内の隆起構造体などの機械的に符号化されたデバイス、および上記の任意の好適な組合せが含まれる。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、または電線を介して送信される電気信号などの一過性の信号自体であると解釈されるべきではない。
【0082】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、またはワイヤレス・ネットワークあるいはその組合せを介して外部コンピュータまたは外部記憶デバイスにダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組合せを含んでもよい。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するために転送する。
【0083】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、または、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語および「C」プログラミング言語もしくは同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードもしくはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上で、一部がユーザのコンピュータ上で、一部がユーザのコンピュータ上かつ一部が遠隔コンピュータ上で、または全体が遠隔コンピュータ上もしくはサーバ上で実行されてもよい。後者のシナリオでは、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して接続されてもよい。いくつかの実施形態では、本発明の態様を実行するために、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行してもよい。
【0084】
本明細書では、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照しながら、本発明の態様について説明している。流れ図またはブロック図あるいはその両方の各ブロック、および流れ図またはブロック図あるいはその両方におけるブロックの組合せがコンピュータ可読プログラム命令によって実施されることが理解されよう。
【0085】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作を実施するための手段を作り出すように、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサに提供されて、マシンを作り出すものであってもよい。これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読記憶媒体が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作の態様を実施する命令を含む製造品を含むように、コンピュータ可読媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに対して特定の方式で機能するように指示できるものであってもよい。
【0086】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイスで実行される命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作を実施するように、コンピュータ実施プロセスを作り出すべくコンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【0087】
図中の流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能性、ならびに動作を示す。これに関して、流れ図またはブロック図における各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または一部を表すことがある。いくつかの代替の実装形態では、ブロックに記載された機能は、図に記載された順序とは異なる順序で行われてもよい。例えば、連続して示されている2つのブロックは、実際には、関与する機能性に応じて、1つのステップとして達成されるか、同時に、実質的に同時に、部分的にもしくは全体的に、時間的に重複する様式で実行されてもよく、または場合によっては、それらのブロックが逆の順序で実行されてもよい。ブロック図または流れ図あるいはその両方の各ブロック、およびブロック図または流れ図あるいはその両方におけるブロックの組合せは、指定された機能または動作を実行するか、あるいは専用ハードウェアとコンピュータ命令との組合せを遂行する専用ハードウェア・ベースのシステムによって実装されることにも留意されたい。
【0088】
本明細書に記載の方法のいずれも、コンピュータ可読記憶媒体上に具現化された別個のソフトウェア・モジュールを含むシステムを提供する追加のステップを含むことができること、すなわち、モジュールが、例えば本明細書で詳述する構成要素のいずれかまたはすべてを含むことができることに留意されたい。その場合、方法のステップは、上述したようにハードウェア・プロセッサ1202上で実行される、システムの別個のソフトウェア・モジュールまたはサブモジュールあるいはその両方を使用して実行され得る。さらに、コンピュータ・プログラム製品は、別個のソフトウェア・モジュールを有するシステムの提供を含む本明細書に記載の少なくとも1つの方法のステップを実施するために実装されるように適合されたコードを有するコンピュータ可読記憶媒体を含むことができる。
【0089】
いずれの場合も、本明細書に例示される構成要素は、様々な形式のハードウェア、ソフトウェア、またはそれらの組合せ、例えば、特定用途向け集積回路(ASIC)、機能回路、関連するメモリなどを伴う適切にプログラムされたデジタル・コンピュータなどにおいて実装されることを理解されたい。関連技術の当業者であれば、本明細書で提供される本発明の教示により、本発明の構成要素の他の実装形態を企図することが可能であろう。
【0090】
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に記載された教示の実装はクラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られているまたは後に開発される他の任意のタイプのコンピューティング環境と併せて実装されることが可能である。
【0091】
クラウド・コンピューティングは、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共用プールへの簡便なオンデマンドによるネットワーク・アクセスを可能にし、管理労力またはサービスのプロバイダとの対話を最小限に抑えて、これらの計算リソースを迅速にプロビジョニングおよび解放できるようにするためのサービス提供のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含み得る。
【0092】
特徴は、次の通りである。
【0093】
オンデマンド・セルフサービス:クラウド消費者は、サービスのプロバイダと人間との対話を必要とすることなく、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能を一方的にプロビジョニングすることができる。
【0094】
広範なネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、異種のシン・クライアント・プラットフォームまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的なメカニズムを介してアクセスされる。
【0095】
リソースのプール化:プロバイダの計算リソースは、マルチテナント・モデルを使用して複数の消費者にサービス提供するようにプール化され、要求に応じて、異なる物理リソースおよび仮想リソースが動的に割当ておよび再割当てされる。消費者は一般に、提供されたリソースの正確な位置について制御も知識も有していないが、より高い抽象化レベル(例えば、国、州、またはデータセンタ)で位置を特定することが可能であり得るという点で、位置の独立性があるといえる。
【0096】
迅速な柔軟性:機能を迅速かつ柔軟に、場合によっては自動的にプロビジョニングして、急速にスケール・アウトし、迅速に解放して急速にスケール・インすることができる。消費者にとっては、プロビジョニングに利用可能な機能は、しばしば無制限であるように見え、いつでも任意の数量で購入することができる。
【0097】
サービスの測定:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザ・アカウント)に適した一定の抽象化レベルでの計量機能を活用することによって、リソースの使用を自動的に制御および最適化する。リソースの使用状況を監視、制御、および報告することができ、利用するサービスのプロバイダと消費者との両方に透明性がもたらされる。
【0098】
サービス・モデルは、次の通りである。
【0099】
ソフトウェア・アズ・ア・サービス(SaaS):クラウド・インフラストラクチャ上で動作しているプロバイダのアプリケーションを使用するために、消費者に提供される機能である。アプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを介して様々なクライアント・デバイスからアクセス可能である。限定されたユーザ固有のアプリケーション構成設定の想定される例外として、消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能を含む基礎となるクラウド・インフラストラクチャを管理も制御もしない。
【0100】
プラットフォーム・アズ・ア・サービス(PaaS):プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者が作成または取得したアプリケーションをクラウド・インフラストラクチャ上に展開するために、消費者に提供される機能である。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージなどの基礎となるクラウド・インフラストラクチャを管理も制御もしないが、展開されたアプリケーション、および場合によっては環境構成をホストするアプリケーションを制御する。
【0101】
インフラストラクチャ・アズ・ア・サービス(IaaS):オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを消費者が展開および実行することができる、処理、ストレージ、ネットワーク、および他の基本的な計算リソースをプロビジョニングするために、消費者に提供される機能である。消費者は、基礎となるクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システム、ストレージ、展開されたアプリケーションを制御し、場合によっては選択されたネットワーク構成要素(例えば、ホスト・ファイアウォール)を限定的に制御する。
【0102】
展開モデルは、次の通りである。
【0103】
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに運用される。このクラウド・インフラストラクチャは、組織または第三者によって管理される場合があり、オンプレミスまたはオフプレミスに存在する場合がある。
【0104】
コミュニティ・クラウド:クラウド・インフラストラクチャは、複数の組織によって共有され、関心事項(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンス上の考慮事項)を共有している特定のコミュニティをサポートする。このクラウド・インフラストラクチャは、組織または第三者によって管理される場合があり、オンプレミスまたはオフプレミスに存在する場合がある。
【0105】
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆または大規模な業界グループにとって利用可能であり、クラウド・サービスを販売する組織によって所有される。
【0106】
ハイブリッド・クラウド:クラウド・インフラストラクチャは、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成であり、これらのクラウドは、固有のエンティティのままであるが、データおよびアプリケーションの移植性(例えば、クラウド間の負荷分散のためのクラウド・バースティング)を可能にする標準化された技術または専用の技術によって結び付けられる。
【0107】
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、および意味的相互運用性に重点を置いたサービス指向型である。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
【0108】
次に
図13を参照すると、例示的なクラウド・コンピューティング環境1350が示されている。図示のように、クラウド・コンピューティング環境1350は、例えば、携帯情報端末(PDA:personal digital assistant)もしくは携帯電話1354A、デスクトップ・コンピュータ1354B、ラップトップ・コンピュータ1354C、または自動車コンピュータ・システム1354Nあるいはその組合せなどのクラウド消費者によって使用されるローカル・コンピューティング・デバイスの通信相手となり得る1つまたは複数のクラウド・コンピューティング・ノード1310を含む。ノード1310は、互いに通信してもよい。これらは、本明細書で上述したようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、もしくはハイブリッド・クラウド、またはその組合せなどの1つまたは複数のネットワーク内で物理的にまたは仮想的にグループ化されてもよい(図示せず)。これにより、クラウド・コンピューティング環境1350は、インフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはその組合せを、クラウド消費者がローカル・コンピューティング・デバイス上にリソースを保持する必要のないサービスとして提供することが可能になる。
図13に示すコンピューティング・デバイス1354A~1354Nのタイプが例示のみを意図していること、およびコンピューティング・ノード1310およびクラウド・コンピューティング環境1350が、任意のタイプのネットワークまたはネットワーク・アドレス指定可能な接続あるいはその両方を介して(例えば、ウェブ・ブラウザを使用して)任意のタイプのコンピュータ化されたデバイスと通信できることを理解されたい。
【0109】
次に
図14を参照すると、クラウド・コンピューティング環境1350(
図13)によって提供される一組の機能抽象化層が示されている。
図14に示す構成要素、層、および機能は、例示のみを意図しており、本発明の実施形態はそれらに限定されないことを予め理解されたい。図示のように、以下の層および対応する機能が提供される。
【0110】
ハードウェアおよびソフトウェア層1460は、ハードウェア構成要素およびソフトウェア構成要素を含む。ハードウェア構成要素の例には、メインフレーム1461、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ1462、サーバ1463、ブレード・サーバ1464、ストレージ・デバイス1465、ならびにネットワークおよびネットワーキング構成要素1466が含まれる。いくつかの実施形態では、ソフトウェア構成要素には、ネットワーク・アプリケーション・サーバ・ソフトウェア1467およびデータベース・ソフトウェア1468が含まれる。
【0111】
仮想化層1470は、抽象化層を提供し、この層から仮想エンティティの以下の例、すなわち、仮想サーバ1471、仮想ストレージ1472、仮想プライベート・ネットワークを含む仮想ネットワーク1473、仮想アプリケーションおよびオペレーティング・システム1474、ならびに仮想クライアント1475が提供されてもよい。
【0112】
一例では、管理層1480は、以下に記載の機能を提供してもよい。リソース・プロビジョニング1481は、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよび他のリソースの動的な調達を提供する。計量および価格決定1482は、クラウド・コンピューティング環境内でリソースが利用されるときのコスト追跡、およびこれらのリソースの消費に対する課金または請求を提供する。一例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことがある。セキュリティは、クラウド消費者およびタスクのための本人確認、ならびにデータおよび他のリソースのための保護を提供する。ユーザ・ポータル1483は、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理1484は、要求されるサービス・レベルが満たされるようなクラウドの計算リソースの割当ておよび管理を提供する。サービス・レベル・アグリーメント(SLA)の計画および履行1485は、SLAに従って将来要求されることが予想されるクラウドの計算リソースの事前配置および調達を提供する。
【0113】
ワークロード層1490は、クラウド・コンピューティング環境が利用される機能の例を提供する。この層から提供されるワークロードおよび機能の例には、マッピングおよびナビゲーション1491、ソフトウェア開発およびライフサイクル管理1492、仮想教室教育配信1493、データ分析処理1494、トランザクション処理1495、ならびに、本発明の1つまたは複数の実施形態による(エネルギー高効率MS-DPE/MS-MAC計算を用いた)人工知能アルゴリズム処理1496が含まれる。
【0114】
本明細書で使用される用語は、特定の実施形態を説明することのみを目的としており、本発明を限定することを意図するものではない。単数形「a」、「an」および「the」は、本明細書で使用される場合、文脈上特に明記されていない限り、複数形も含むことを意図している。「備える(comprises)」または「備えている(comprising)」という用語あるいはその両方は、本明細書で使用される場合、記載された特徴、ステップ、動作、要素、または構成要素あるいはその組合せの存在を示すが、別の特徴、ステップ、動作、要素、構成要素、またはこれらのグループ、あるいはその組合せの存在または追加を除外するものではないことがさらに理解されよう。
【0115】
本発明の様々な実施形態の説明は、例示を目的として提示されたものであり、網羅的であること、または開示された実施形態に限定されることを意図したものではない。記載された実施形態の範囲および思想から逸脱することなく、当業者には多くの修正形態および変形形態が明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の適用例、もしくは市場で見られる技術に対する技術的改善を最もよく説明するために、または本明細書に開示された実施形態を当業者が理解できるように、選択されたものである。
【手続補正書】
【提出日】2024-04-02
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
装置であって、
少なくとも1つのプロセッサと、
命令コードを含む少なくとも1つのメモリと
を備え、前記少なくとも1つのメモリおよび前記命令コードが、前記少なくとも1つのプロセッサにより、前記装置に少なくとも、
アナログ入力からビットのセットを含むデジタル出力へのアナログ対デジタル変換を実行することであって、前記ビットのセットが、最上位ビットおよび1つまたは複数の追加ビットを含み、前記アナログ対デジタル変換が、前記最上位ビットに続く前記1つまたは複数の追加ビットのうちの所与のビットから始まる、前記アナログ対デジタル変換を実行すること
を行わせるように構成される、装置。
【請求項2】
前記少なくとも1つのメモリおよび前記命令コードが、前記少なくとも1つのプロセッサにより、前記装置に、
1つまたは複数の指定条件を検出することと、
前記1つまたは複数の指定条件のうちの少なくとも1つを検出したことに応答して、前記ビットのセットのうちの別のビットから始まる前記アナログ対デジタル変換を再開始することと
を行わせるようにさらに構成される、請求項1に記載の装置。
【請求項3】
前記1つまたは複数の指定条件のうちの前記少なくとも1つを検出することが、前記1つまたは複数の追加ビットのうちの前記所与のビットに続く前記1つまたは複数の追加ビットのうちの連続するビットの閾値数の値に少なくとも部分的に基づく、請求項2に記載の装置。
【請求項4】
前記閾値数が、第1のベクトルと第2のベクトルとの2進乗算を実行するドット積エンジンの出力確率分布および前記アナログ対デジタル変換の出力における許容誤差のうちの少なくとも1つに少なくとも部分的に基づいて選択される、請求項3に記載の装置。
【請求項5】
前記最上位ビットに続く前記1つまたは複数の追加ビットのうちの前記所与のビットが、前記最上位ビットに続く前記1つまたは複数の追加ビットのうちの最初のビットを含み、前記ビットのセットのうちの他のビットから始まる前記アナログ対デジタル変換を再開始することが、前記最上位ビットから始まる前記アナログ対デジタル変換を再開始することを含む、請求項2に記載の装置。
【請求項6】
前記最上位ビット(MSB)に続く前記1つまたは複数の追加ビットのうちの前記所与のビットが、(MSB-k)番目のビットを含み、前記ビットのセットのうちの他のビットから始まる前記アナログ対デジタル変換を再開始することが、(MSB-k+l)番目のビットから始まる前記アナログ対デジタル変換を再開始することを含み、lが1以上の整数である、請求項2に記載の装置。
【請求項7】
kの値が、第1のベクトルと第2のベクトルとの2進乗算を実行するドット積エンジンの出力確率分布および前記アナログ対デジタル変換の出力における許容誤差のうちの少なくとも1つに少なくとも部分的に基づいて選択される、請求項6に記載の装置。
【請求項8】
第1のベクトルと第2のベクトルとの2進乗算を実行するように構成されたドット積総和計算ユニットを備え、
前記アナログ対デジタル変換が、逐次近似レジスタ・アナログ対デジタル変換器ユニットによって実行され、前記ドット積総和計算ユニットのアナログ出力が前記アナログ入力であり、前記装置が、前記逐次近似レジスタ・アナログ対デジタル変換器ユニットに動作可能に結合されたコントローラ・ロジックをさらに備え、前記コントローラ・ロジックが、前記ドット積総和計算ユニットの出力と重み付き2進コードのシーケンスとの比較に少なくとも部分的に基づいて、前記デジタル出力の前記ビットのセットの値を判定するように構成され、
重み付き2進コードの前記シーケンスが、前記最上位ビットに続く前記1つまたは複数の追加ビットのうちの所与のビットから始まる、請求項1に記載の装置。
【請求項9】
前記最上位ビット(MSB)に続く前記1つまたは複数の追加ビットのうちの前記所与のビットが、(MSB-k)番目のビットを含み、前記コントローラ・ロジックが、前記1つまたは複数の追加ビットのうちの前記所与のビットに続く前記1つまたは複数の追加ビットのうちの連続するビットの閾値数の値に少なくとも部分的に基づいて1つまたは複数の指定条件を検出したことに応答して、(MSB-k+l)番目のビットから始まる重み付き2進コードの新しいシーケンスを用いて前記デジタル出力の前記ビットのセットの前記値の判定を再開始するようにさらに構成され、lが1以上の整数である、請求項8に記載の
装置。
【請求項10】
前記
装置が、人工知能システムの一部として実装される、請求項
1に記載の
装置。
【請求項11】
前記
装置が、1つまたは複数の集積回路の一部として実装される、請求項
1に記載の
装置。
【請求項12】
方法であって、
アナログ入力からビットのセットを含むデジタル出力へのアナログ対デジタル変換を実行するステップであって、前記ビットのセットが、最上位ビットおよび1つまたは複数の追加ビットを含み、前記アナログ対デジタル変換が、前記最上位ビットに続く前記1つまたは複数の追加ビットのうちの所与のビットから始まる、前記ステップ
を含み、前記方法が、命令コードを実行するように構成された処理回路によって実行される、方法。
【請求項13】
1つまたは複数の指定条件を検出するステップと、
前記1つまたは複数の指定条件のうちの少なくとも1つを検出したことに応答して、前記ビットのセットのうちの別のビットから始まる前記アナログ対デジタル変換を再開始するステップと
をさらに含み、
前記最上位ビット(MSB)に続く前記1つまたは複数の追加ビットのうちの前記所与のビットが、(MSB-k)番目のビットを含み、前記ビットのセットのうちの他のビットから始まる前記アナログ対デジタル変換を再開始するステップが、(MSB-k+l)番目のビットから始まる前記アナログ対デジタル変換を再開始することを含み、lが1以上の整数である、請求項12に記載の方法。
【請求項14】
実行可能命令コードが具現化された非一過性コンピュータ可読記憶媒体を備える製造品であって、前記実行可能命令コードが、プロセッサによって実行されたときに、前記プロセッサに、
アナログ入力からビットのセットを含むデジタル出力へのアナログ対デジタル変換を実行するステップであって、前記ビットのセットが、最上位ビットおよび1つまたは複数の追加ビットを含み、前記アナログ対デジタル変換が、前記最上位ビットに続く前記1つまたは複数の追加ビットのうちの所与のビットから始まる、前記ステップ
を実行させる、製造品。
【請求項15】
前記実行可能命令コードが、前記プロセッサによって実行されたときに、前記プロセッサにさらに、
1つまたは複数の指定条件を検出するステップと、
前記1つまたは複数の指定条件のうちの少なくとも1つを検出したことに応答して、前記ビットのセットのうちの別のビットから始まる前記アナログ対デジタル変換を再開始するステップと
を実行させ、
前記最上位ビット(MSB)に続く前記1つまたは複数の追加ビットのうちの前記所与のビットが、(MSB-k)番目のビットを含み、前記ビットのセットのうちの他のビットから始まる前記アナログ対デジタル変換を再開始するステップが、(MSB-k+l)番目のビットから始まる前記アナログ対デジタル変換を再開始することを含み、lが1以上の整数である、請求項14に記載の製造品。
【請求項16】
システムであって、
第1のベクトルと第2のベクトルとの2進乗算を実行するように構成されたドット積総和計算ユニットと、
前記ドット積総和計算ユニットのアナログ出力をビットのセットを含むデジタル出力に変換するように構成された逐次近似レジスタ・アナログ対デジタル変換器ユニットであって、前記ビットのセットが最上位ビットおよび1つまたは複数の追加ビットを含む、前記逐次近似レジスタ・アナログ対デジタル変換器ユニットと、
前記逐次近似レジスタ・アナログ対デジタル変換器ユニットに動作可能に結合されたコントローラ・ロジックであって、前記ドット積総和計算ユニットの出力と重み付き2進コードのシーケンスとの比較に少なくとも部分的に基づいて前記デジタル出力の前記ビットのセットの値を判定するように構成される、前記コントローラ・ロジックと
を含み、
重み付き2進コードの前記シーケンスが、前記最上位ビットに続く前記1つまたは複数の追加ビットのうちの所与のビットから始まる、システム。
【請求項17】
前記最上位ビット(MSB)に続く前記1つまたは複数の追加ビットのうちの前記所与のビットが、(MSB-k)番目のビットを含み、前記コントローラ・ロジックが、前記1つまたは複数の追加ビットのうちの前記所与のビットに続く前記1つまたは複数の追加ビットのうちの連続するビットの閾値数の値に少なくとも部分的に基づいて1つまたは複数の指定条件を検出したことに応答して、(MSB-k+l)番目のビットから始まる重み付き2進コードの新しいシーケンスを用いて前記デジタル出力の前記ビットのセットの前記値の判定を再開始するようにさらに構成され、lが1以上の整数である、請求項16に記載のシステム。
【請求項18】
前記システムが、人工知能システムの一部として実装される、請求項16に記載のシステム。
【請求項19】
前記システムが、1つまたは複数の集積回路の一部として実装される、請求項16に記載のシステム。
【請求項20】
デバイスであって、
第1の信号を出力するように構成されたドット積総和回路であって、前記第1の信号が第1のベクトルと第2のベクトルとの2進乗算のドット積和を含む、前記ドット積総和回路と、
前記ドット積総和回路によって出力される前記第1の信号からビットのセットを含むデジタル出力への変換を実行するように構成された逐次近似レジスタ・アナログ対デジタル変換器であって、前記ビットのセットが最上位ビットおよび1つまたは複数の追加ビットを含む、前記逐次近似レジスタ・アナログ対デジタル変換器と
を備え、前記逐次近似レジスタ・アナログ対デジタル変換器が、
第2の信号を出力するように構成された逐次近似レジスタ・コントローラ回路、ならびに
前記ドット積総和回路に結合された第1の入力ノード、前記逐次近似レジスタ・コントローラ回路に結合された第2の入力ノード、および前記ドット積総和回路によって出力される第1の値と前記逐次近似レジスタ・コントローラ回路によって出力される第2の値との比較に少なくとも部分的に基づいて出力値を提供するように構成された出力ノードを備える、比較器回路
を備え、
前記逐次近似レジスタ・コントローラ回路が、重み付き2進コードのシーケンスが前記第2の信号として出力されるときに作成される前記比較器回路の出力値に少なくとも部分的に基づいて、前記デジタル出力の前記ビットのセットの値を判定するように構成され、
重み付き2進コードの前記シーケンスが、前記最上位ビットに続く前記1つまたは複数の追加ビットのうちの所与のビットから始まる、デバイス。
【請求項21】
前記最上位ビット(MSB)に続く前記1つまたは複数の追加ビットのうちの前記所与のビットが、(MSB-k)番目のビットを含み、前記逐次近似レジスタ・コントローラ回路が、前記1つまたは複数の追加ビットのうちの前記所与のビットに続く前記1つまたは複数の追加ビットのうちの連続するビットの閾値数の値に少なくとも部分的に基づいて1つまたは複数の指定条件を検出したことに応答して、重み付き2進コードの新しいシーケンスが前記第2の信号として出力されるときに作成される前記比較器回路の出力値に少なくとも部分的に基づいて、前記デジタル出力の前記ビットのセットの前記値の判定を再開始するようにさらに構成され、重み付き2進コードの前記新しいシーケンスが(MSB-k+l)番目のビットから始まり、lが1以上の整数である、請求項20に記載のデバイス。
【請求項22】
前記逐次近似レジスタ・コントローラ回路が、複数のコンデンサを介して前記比較器回路に結合される、請求項20に記載のデバイス。
【請求項23】
前記複数のコンデンサがそれぞれ異なる静電容量値を有する、請求項22に記載のデバイス。
【請求項24】
前記ドット積総和回路が複数の論理ANDゲートを備え、前記複数の論理ANDゲートのそれぞれが、前記第1のベクトルの第1のベクトル要素および前記第2のベクトルの第2のベクトル要素を入力として受け取り、前記複数の論理ANDゲートが、前記複数のコンデンサの第1のプレートに結合されたそれぞれの出力を有する、請求項22に記載のデバイス。
【請求項25】
前記複数のコンデンサのそれぞれが同じ静電容量値を有する、請求項22に記載のデバイス。
【請求項26】
前記複数の論理ANDゲートのそれぞれと前記複数のコンデンサとの間に複数のスイッチが結合され、前記複数のスイッチが、前記複数のコンデンサの第2のプレートに結合された共通線上の電圧が前記第1のベクトルと前記第2のベクトルとの前記ドット積和を表す第1の動作モードと、前記複数のコンデンサの前記第2のプレートに結合された前記共通線上の前記電圧が重み付き2進コードの前記シーケンスのうちの1つを表す第2の動作モードとの間で切り替えるように構成される、請求項25に記載のデバイス。
【請求項27】
前記ドット積総和回路が、複数のスイッチを介して複数の論理ANDゲートに結合された追加の複数のコンデンサを備え、前記複数の論理ANDゲートのそれぞれが、前記第1のベクトルの第1のベクトル要素および前記第2のベクトルの第2のベクトル要素を入力として受け取り、前記複数の論理ANDゲートが、前記追加の複数のコンデンサの第1のプレートに結合されたそれぞれの出力を有する、請求項22に記載のデバイス。
【請求項28】
前記ドット積総和回路が複数のビット・セル処理ユニットを備え、前記複数のビット・セル処理ユニットのそれぞれが、
前記第1のベクトルの前記要素のうちの1つを表す第1のベクトル要素値を記憶し、
前記第2のベクトルの前記要素のうちの1つを表す第2のベクトル要素値を入力として受け取り、
前記第1のベクトル要素値と前記第2のベクトル要素値との2進乗算を表す値を出力する、請求項
24に記載のデバイス。
【請求項29】
前記複数のビット・セル処理ユニットのそれぞれが、抵抗処理ユニットおよびメモリ・セルのうちの1つを備える、請求項28に記載のデバイス。
【国際調査報告】