(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-12
(54)【発明の名称】三進活性化を用いたコンピュートインメモリ
(51)【国際特許分類】
G06F 7/49 20060101AFI20240305BHJP
【FI】
G06F7/49
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023555369
(86)(22)【出願日】2022-03-10
(85)【翻訳文提出日】2023-09-08
(86)【国際出願番号】 US2022019856
(87)【国際公開番号】W WO2022197534
(87)【国際公開日】2022-09-22
(32)【優先日】2021-03-17
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】507364838
【氏名又は名称】クアルコム,インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100163522
【氏名又は名称】黒田 晋平
(72)【発明者】
【氏名】セイエド・アラシュ・ミルハジ
(72)【発明者】
【氏名】アンキット・スリヴァスタヴァ
(72)【発明者】
【氏名】サミール・ワドフワ
(72)【発明者】
【氏名】レン・リ
(72)【発明者】
【氏名】シュレン・モーハン
(57)【要約】
格納ビットを格納するためのクロス結合インバータのペアを含む、コンピュートインメモリビットセルが提供される。コンピュートインメモリビットセルは、格納ビットを入力ベクトルビットと乗算するためのスイッチのペアによって形成される論理ゲートを含む。コントローラは、計算動作段階の間に符号ビットに応答してスイッチのペアを制御し、実行動作段階の間に大きさビットに応答してスイッチのペアを制御する。
【特許請求の範囲】
【請求項1】
出力ノードに接続されるスイッチのペアを有するビットセルと、
前記出力ノードに結合されるキャパシタと、
第1の記憶素子および複数の追加の記憶素子と、
前記メモリのための第1の動作段階の間に前記第1のビットに応答して前記スイッチのペアを制御するように前記第1の記憶素子から第1のビットを選択するように構成され、前記メモリのための第2の動作段階の間に前記第2のビットに応答して前記スイッチのペアを制御するように前記複数の追加の記憶素子から第2のビットを選択するように構成される、コントローラと
を備える、メモリ。
【請求項2】
ビット線をさらに備え、前記キャパシタが、前記出力ノードに結合される第1の端子および前記ビット線に結合される第2の端子を含む、請求項1に記載のメモリ。
【請求項3】
前記第1の記憶素子が、符号ビットを記憶するように構成され、前記複数の追加の記憶素子が、複数の大きさビットを記憶するように構成される、請求項1に記載のメモリ。
【請求項4】
前記コントローラが、前記第1の動作段階の間に前記第1のビットを選択し、前記第2の動作段階の間に前記第2のビットを選択するように構成される、マルチプレクサを含む、請求項3に記載のメモリ。
【請求項5】
前記コントローラがさらに、前記第1のビットが第1の二進値を有することに応答して、前記スイッチのペアの中の第1のスイッチを閉じ、前記スイッチのペアの中の第2のスイッチを開き、前記第1のビットが前記第1の二進値の補数である第2の二進値を有することに応答して、前記第1のスイッチを開き、前記第2のスイッチを閉じるように、前記第1の動作段階の間に構成される、請求項1に記載のメモリ。
【請求項6】
前記コントローラがさらに、前記第2のビットが前記第1の二進値を有することに応答して、前記第1のスイッチおよび前記第2のスイッチのスイッチング状態を逆にし、前記第2のビットが前記第2の二進値を有することに応答して、前記第1のスイッチおよび前記第2のスイッチのスイッチング状態を維持するように、前記第2の動作段階の間に構成される、請求項5に記載のメモリ。
【請求項7】
前記ビットセルが、第2のインバータとクロス結合される第1のインバータを備え、前記スイッチのペアが、前記第1のインバータの出力ノードと前記出力ノードとの間に結合される第1のスイッチを含み、前記第2のインバータの出力ノードと前記出力ノードとの間に結合される第2のスイッチを含む、請求項1に記載のメモリ。
【請求項8】
前記第1のスイッチが第1の送信ゲートを備え、前記第2のスイッチが第2の送信ゲートを備える、請求項7に記載のメモリ。
【請求項9】
前記第1のスイッチおよび前記第2のスイッチが、前記出力ノードに結合される唯一のスイッチである、請求項7に記載のメモリ。
【請求項10】
前記出力ノードとグランドとの間に結合される第3のスイッチをさらに備える、請求項7に記載のメモリ。
【請求項11】
前記コントローラがさらに、前記第1の動作段階の前の事前充電動作段階の間に前記第3のスイッチをオンにし、前記第1の動作段階および前記第2の動作段階の間に前記第3のスイッチをオフにするように構成される、請求項10に記載のメモリ。
【請求項12】
前記第1のスイッチが第1のp型金属酸化膜半導体(PMOS)トランジスタであり、前記第2のスイッチが第2のPMOSトランジスタであり、前記第3のスイッチがn型金属酸化膜半導体(NMOS)トランジスタである、請求項10に記載のメモリ。
【請求項13】
コモンモード電圧のためのノードと前記ビット線との間に結合される第3のスイッチをさらに備え、前記コントローラがさらに、前記第1の動作段階の間に前記第3のスイッチを閉じ、前記第2の動作段階の間に前記第3のスイッチを開くように構成される、請求項7に記載のメモリ。
【請求項14】
前記第3のスイッチが第1のPMOSトランジスタである、請求項13に記載のメモリ。
【請求項15】
前記メモリが携帯電話に組み込まれる、請求項1に記載のメモリ。
【請求項16】
格納ビットを符号付き入力ビットと乗算するようにビットセルを制御する方法であって、
第1の動作段階の間に、前記符号付き入力ビットの符号が第1の二進値を有することに応答して、前記格納ビットのためのノードと出力ノードとの間に結合される第1のスイッチを閉じ、前記格納ビットの補数のためのノードと前記出力ノードとの間に結合される第2のスイッチを開くステップと、
前記第1の動作段階の間に、前記符号付きビットの前記符号が第2の二進値を有することに応答して、前記第1のスイッチを開き前記第2のスイッチを閉じるステップと、
第2の動作段階の間に、前記符号付き入力ビットの大きさが前記第1の二進値を有することに応答して、前記第1の動作段階の間に確立された前記第1のスイッチと前記第2のスイッチのスイッチング状態を逆にするステップと、
前記第2の動作段階の間に、前記符号付き入力ビットの前記大きさが前記第2の二進値を有することに応答して、前記第1の動作段階の間に確立された前記第1のスイッチおよび前記第2のスイッチの前記スイッチング状態を維持するステップと
を備える、方法。
【請求項17】
前記第1の二進値が二進の1の値であり、前記第2の二進値が二進の0の値である、請求項16に記載の方法。
【請求項18】
前記第1の動作段階の間に、ビット線をコモンモード電圧のためのノードに接続するステップをさらに備え、前記ビット線がキャパシタを通じて前記出力ノードに結合される、請求項16に記載の方法。
【請求項19】
前記第2の動作段階の間に前記コモンモード電圧のための前記ノードから前記ビット線を切り離すステップをさらに備える、請求項18に記載の方法。
【請求項20】
格納ビットを格納するように構成されるビットセルであって、前記格納ビットのためのノードと出力ノードとの間に結合される第1のスイッチと、前記格納ビットの補数のためのノードと前記出力ノードとの間に結合される第2のスイッチとを含む、ビットセルと、
前記出力ノードに接続される第1のプレートを有するキャパシタと、
第1の動作段階の間に前記第1のスイッチおよび前記第2のスイッチのスイッチング状態を制御するために、入力ワードの符号が第1の二進値を有することに応答して前記第2のスイッチを開いて前記第1のスイッチを閉じ、前記入力ワードの前記符号が第2の二進値を有することに応答して前記第1のスイッチを開いて前記第2のスイッチを閉じるように構成されるコントローラと
を備え、前記第2の二進値は前記第1の二進値の補数である、メモリ。
【請求項21】
前記キャパシタの第2のプレートに結合されるビット線をさらに備える、請求項20に記載のメモリ。
【請求項22】
前記入力ワードを格納するための入力バッファをさらに備え、前記コントローラがさらに、前記入力バッファの中の選択された大きさビットが前記第1の二進値を有することに応答して、前記第1のスイッチおよび前記第2のスイッチの前記スイッチング状態を逆にするように第2の動作段階の間に構成される、請求項20に記載のメモリ。
【請求項23】
前記コントローラがさらに、前記入力バッファの中の前記選択された大きさビットが前記第2の二進値を有することに応答して、前記第1のスイッチおよび前記第2のスイッチの前記スイッチング状態を維持するように前記第2の動作段階の間に構成される、請求項22に記載のメモリ。
【請求項24】
前記メモリが複数の追加のビットセルを含む積和回路に含まれ、各々の追加のビットセルが対応するキャパシタを含む、請求項23に記載のメモリ。
【請求項25】
複数の列を含むメモリアレイをさらに備え、前記積和回路が前記複数の列の中の列を形成するように構成される、請求項24に記載のメモリ。
【請求項26】
前記複数の列に1対1で対応する複数のアナログデジタルコンバータをさらに備える、請求項25に記載のメモリ。
【請求項27】
各アナログデジタルコンバータが、マルチビットアナログデジタルコンバータである、請求項26に記載のメモリ。
【請求項28】
コンピュートインメモリのための動作の方法であって、
第1の動作段階の間に、符号ビットに応答して、ビットセルとキャパシタのプレートとの間に結合されるスイッチのペアを制御するステップと、
第2の動作段階の間に、大きさビットに応答して、前記スイッチのペアを制御するステップと
を備える、方法。
【請求項29】
前記第1の動作段階の間に前記スイッチのペアを制御するステップが、前記符号ビットが第1の二進値を有することに応答して、前記スイッチのペアの中の第1のスイッチを閉じ、前記スイッチのペアの中の第2のスイッチを開くステップを備える、請求項28に記載の方法。
【請求項30】
前記第1の動作段階の間に前記スイッチのペアを制御するステップがさらに、前記符号ビットが前記第1の二進値の補数である第2の二進値を有することに応答して、前記第1のスイッチを開き前記第2のスイッチを閉じるステップを備える、請求項29に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、米国出願第17/204,649号の優先権を主張する。上記の出願は、全体が参照により本明細書に組み込まれる。
【0002】
本出願はコンピュートインメモリに関し、より具体的には、三進活性化を用いたコンピュートインメモリに関する。
【背景技術】
【0003】
従来のビットセルと異なり、コンピュートインメモリ(CiM)ビットセルは、ビットを格納するだけではなく、入力ビットとの格納ビットの乗算のための論理ゲートも含む。CiMは人工知能などの用途に対して計算時間を大幅に高速化し、それは、古典的なフォンノイマン型コンピュータアーキテクチャにおいて実行されるような、後続の乗算のために算術論理ユニットに運ばれることになるメモリからのビットの取り出しを、付随する乗算が必要としないからである。代わりに、乗算はメモリ自体において行われる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
コンピュートインメモリビットセルは、人工知能などの計算集約的な用途に対して従来のビットセルよりも有利であるが、コンピュートインメモリビットセルの格納ビットと乗算される入力ビットの符号(正または負)に対処することに関する問題が生じる。符号に対処するために、入力ビットの二進の0の値は-1を表すものと見なされてもよい。この対処法では、入力ビットの集合体が入力ベクトルを形成する。二進の0が-1と対応付けられるので、各入力ベクトルは奇数を表す。たとえば、-7は入力ベクトル[-1,-1,-1]により表されてもよく、7は入力ベクトル[1,1,1]により表されてもよい。符号付きの実装形態において入力ベクトルがこのように奇数に限定されることは、計算精度を低下させる。加えて、そのような従来の符号付きの実装形態では、コンピュートインメモリビットセルのキャパシタの充電と放電により、大量のエネルギーが消費されることがある。
【課題を解決するための手段】
【0005】
出力ノードに接続されるスイッチのペアを有するビットセルと、出力ノードに結合されるキャパシタと、第1の記憶素子および複数の追加の記憶素子と、メモリのための第1の動作段階の間に第1のビットに応答してスイッチのペアを制御するように第1の記憶素子から第1のビットを選択するように構成され、メモリのための第2の動作段階の間に第2のビットに応答してスイッチのペアを制御するように複数の追加の記憶素子から第2のビットを選択するように構成される、コントローラとを含む、メモリが提供される。
【0006】
加えて、第1の動作段階の間に、符号付き入力ビットの符号が第1の二進値を有することに応答して、格納ビットのためのノードと出力ノードとの間に結合される第1のスイッチを閉じ、格納ビットの補数のためのノードと出力ノードとの間に結合される第2のスイッチを開くステップと、第1の動作段階の間に、符号付き入力ビットの符号が第2の二進値を有することに応答して、第1のスイッチを開き、第2のスイッチを閉じるステップと、第2の動作段階の間に、符号付き入力ビットの大きさが第1の二進値を有することに応答して、第1の動作段階の間に確立された第1のスイッチと第2のスイッチのスイッチング状態を逆にするステップと、第2の動作段階の間に、符号付き入力ビットの大きさが第2の二進値を有することに応答して、第1の動作段階の間に確立された第1のスイッチと第2のスイッチのスイッチング状態を維持するステップとを含む、格納ビットを符号付き入力ビットと乗算するようにビットセルを制御する方法が提供される。
【0007】
その上、格納ビットを格納するように構成されるビットセルであって、格納ビットのためのノードと出力ノードとの間に結合される第1のスイッチと、格納ビットの補数のためのノードと出力ノードとの間に結合される第2のスイッチとを含む、ビットセルと、出力ノードに接続される第1のプレートを有するキャパシタと、第1の動作段階において第1のスイッチと第2のスイッチのスイッチング状態を制御するために、入力ワードの符号が第1の二進値を有することに応答して、第2のスイッチを開いて第1のスイッチを閉じ、入力ワードの符号ビットが第2の二進値を有することに応答して、第1のスイッチを開いて第2のスイッチを閉じるように構成される、コントローラとを含む、メモリが提供され、第2の二進値は第1の二進値の補数である。
【0008】
最後に、第1の動作段階の間に、符号ビットに応答してビットセルとキャパシタのプレートとの間に結合されるスイッチのペアを制御するステップと、第2の動作段階の間に、大きさビットに応答してスイッチのペアを制御するステップとを含む、コンピュートインメモリのための動作の方法が提供される。
【0009】
これらおよび他の有利な特徴は、以下の詳細な説明を通じてより理解される場合がある。
【図面の簡単な説明】
【0010】
【
図1】本開示のある態様による、スイッチのペアを含むコンピュートインメモリビットセルの回路図である。
【
図2】本開示のある態様による、スイッチのペアが送信ゲートのペアを備えるような
図1のコンピュートインメモリビットセルの実装形態を示す図である。
【
図3】本開示のある態様による、スイッチのペアがPMOSトランジスタのペアを備えるような
図1のコンピュートインメモリビットセルの実装形態を示す図である。
【
図4】本開示のある態様による、コンピュートインメモリビットセルのために三進計算の間に入力バッファから選択するためのコントローラの態様を示す図である。
【
図5】本開示のある態様による、三進計算を実行するコンピュートインメモリビットセルのいくつかの動作波形を示す図である。
【
図6】本開示のある態様による、三進計算のために構成され、積和(MAC)回路を形成するように編成される、コンピュートインメモリビットセルの列を示す図である。
【
図7】本開示のある態様による、各列が三進計算のために構成される積和回路を含む、複数の列を有するアレイを含むメモリを示す図である。
【
図8】本開示のある態様による、コンピュートインメモリビットセルの例示的な三進計算のフローチャートである。
【
図9】本開示のある態様による、三進計算のために構成されるコンピュートインメモリビットセルのアレイを各々組み込むいくつかの例示的な電子システムを示す図である。
【発明を実施するための形態】
【0011】
本開示の実施形態およびそれらの利点は、以下の詳細な説明を参照することによって最も良く理解される。同様の参照番号が、図の1つまたは複数に示される同様の要素を識別するために使用されることを理解されたい。
【0012】
深層学習および他の機械学習の用途において、畳み込み層は基本的な構成要素である。畳み込み層は、前の層からの(または分析されている画像などの入力データからの)入力ベクトルとのフィルタ重みビットの乗算のためのノードの集合体を含む。ノードはニューロンとも呼ばれることがある。処理速度を高めるために、ニューロンまたはノードは、コンピュートインメモリビットセルを使用して実装される。計算精度を高め、電力消費を減らすために、入力ベクトルが奇数または偶数の符号値を有することがある三進計算技法が提供される。この技法は、コンピュートインメモリビットセルにおいて得られる計算結果が、読み取りビット線の電圧を上げるか、変えないか、または下げるかのいずれかであってもよいので、「三進」計算技法と表記される。
【0013】
本明細書において開示される三進計算は、三進活性化とも呼ばれる。三進計算は、スイッチとキャパシタのペアを含むあらゆる適切なコンピュートインメモリビットセルを用いて実践されてもよい。例示的なコンピュートインメモリ(CiM)ビットセル100が
図1に示される。クロス結合インバータ120および125のペアは、出力ノードwtにビットを格納する。この格納されたビットは、フィルタ重みビットとも呼ばれる。したがって、出力ノードwtは、フィルタ重みビットノードwtとも表記される。クロス結合インバータ120および125のペアは、相補フィルタ重みビットノードwtbに相補フィルタ重みビット(フィルタ重みビットの補数)も格納する。フィルタ重みビットノードwtはインバータ120の出力ノードであるが、相補フィルタ重みビットノードwtbはインバータ125の出力ノードである。コンピュートインメモリビットセル100の中の論理ゲートは、左(L)スイッチおよび(R)スイッチにより形成される。Lスイッチは、フィルタ重みビットノードwtと出力ノード105を結合する。同様に、Rスイッチは、相補フィルタ重みビットノードwtbと出力ノード105を結合する。キャパシタCは、出力ノード105と読み取りビット線(RBL)を結合する。本明細書では、CiM用途に対する「ビットセル」という用語は、インバータ120および125ならびにLスイッチおよびRスイッチを指すものと理解され、それは、これらのデバイスが半導体ダイ上に実装されるトランジスタにより形成されるからである。対照的に、キャパシタCは、代替の実装形態では他のCiMビットセルと共有されてもよい受動デバイスである。
【0014】
コンピュートインメモリビットセル100は、符号付き入力ビットとのフィルタ重みビットの乗算を計算する。符号付き入力ビットは、符号付き入力ベクトル内のビットである。符号付き入力ベクトルは、符号付き入力ワードとも表記されることがある。フィルタ重みビットとの符号付き入力ビットの乗算のための本明細書で開示される有利な三進活性化をより理解するために、奇数の大きさのみを有する入力ベクトルとの符号付き乗算がまず論じられる。前に述べられたように、入力ベクトルの符号付きの実装形態は通常、-1または1のいずれかを表すものとして見なされるように、符号付き入力ベクトルの入力ビットを制限する。たとえば、入力ビットに対する二進の0は-1に対応付けられてもよいが、二進の1は1に対応付けられる。そのような対応付けでは、符号付き入力ベクトルは奇数のみを表すことができる。たとえば、[-1,-1,-1]という入力ベクトルは、-7という符号付きの値を表す。同様に、[1,1,1]という入力ベクトルは、7という符号付きの値を表す。このようにして、奇数のみの符号付き表現における3ビット幅の入力ベクトルは、個々の入力ビットの二進値に応じて、-7、-5、-3、-1、1、3、5、および7という奇数値を表すことがある。
【0015】
一実装形態では、LスイッチおよびRスイッチの各々が、送信ゲートを使用して実装される。送信ゲートは、強い0(送信ゲートを通じてグランドを通す)と強い1(送信ゲートを通じて電源電圧VDDを通す)の両方を通してもよいが、p型金属酸化膜半導体(PMOS)トランジスタとn型金属酸化膜半導体(NMOS)トランジスタの両方を必要とすることがある。LスイッチとRスイッチの各々を実装するために、PMOSトランジスタなどの単一のトランジスタも使用されてもよいが、PMOSトランジスタは強い0を通すことができず、代わりに強い1と弱い0(トランジスタ閾値電圧の要件によりグランドではなく正の電圧)しか通すことができない。
【0016】
フィルタ重みビットとの入力ビットの乗算を実行するためのコンピュートインメモリビットセル100の動作段階の数は、強い0と強い1の両方がスイッチの実装形態により通される可能性があるかどうかに依存する。乗算において、最終的な結果は、出力ノード105の接地(強い0を通す)か、または電源電圧VDDへの出力ノード105の充電(強い1を通す)かのいずれかである。LスイッチおよびRスイッチのPMOS実装形態は強い0を通すことができないので、出力ノード105はまず、事前充電段階において接地される。しかし、LスイッチおよびRスイッチの送信ゲートの実装形態は強い0を通すことができるので、送信ゲートの実装形態では事前充電段階は必要ない。奇数のみの符号付きの乗算の以下の議論は、LスイッチおよびRスイッチが送信ゲートであるので、乗算が計算動作段階と累算動作段階を通じて行われると仮定する。代わりに、LスイッチおよびRスイッチがPMOSトランジスタを使用して実装される場合、出力ノード105が二進の0へと(たとえば、グランドへと)最初に放電される可能性があるように、事前充電動作段階が必要である。そうすると、後続の計算段階は、二進の0を表すように出力ノード105を放電したままにしてもよく、または、二進の1を表すように出力ノード105を電源電圧VDDに充電してもよい。
【0017】
計算段階の前に、読み取りビット線は、事前充電PMOSトランジスタP1をオンにすることによって事前充電される。事前充電トランジスタP1のソースは、コモンモード電圧VCMのためのノードに接続する。このコモンモード電圧VCMは、いくつかの実装形態では電源電圧VDDに等しくてもよく、または代替の実装形態では電源電圧VDDの一部であってもよい。以下の議論は、一般性を失うことなく、コモンモード電圧VCMが電源電圧VDDの半分に等しいと仮定する。事前充電段階があるかどうかにかかわらず、読み取りビット線がコモンモード電圧VCMに充電された状態を保つように、事前充電トランジスタP1は計算段階の間はオンのままである。
【0018】
計算段階において、入力ビットが二進の0(これは上で論じられたように-1と対応付けられる)である場合、Rスイッチは閉じられ、Lスイッチは開かれる。フィルタ重みビットが二進の1である場合、次いでRスイッチが0をグランド出力ノード105に通すので、キャパシタCが基準電圧VCMに充電される。逆に、フィルタ重みビットが二進の0である場合、出力ノード105は、計算段階の間に電源電圧VDDに充電されるので、基準電圧VCMが電源電圧VDDに等しい実装形態では、キャパシタCは放電される。
【0019】
入力ビットが二進の1である場合、スイッチは相補的に制御される。その場合、計算段階の間に閉じられるのはLスイッチであり、開かれるのはRスイッチである。フィルタ重みビットが二進の1である場合、出力ノード105は電源電圧VDDに充電されるので、キャパシタCは-VCMに充電される。フィルタ重みビットが0である場合、出力ノード105は放電されたままであるので、キャパシタCはVCMに充電されたままである。
【0020】
入力ビットは、活性化ベクトルの一部である活性化ビットとも表記されることがある。入力ベクトルが奇数の大きさのみを有する実装形態に対する計算段階における活性化(Act)ビットと、フィルタ重みビット(Wt)と、出力ノード(Out)の二進状態との間に得られる関係は、以下のTable1(表1)において要約されてもよい。
【表1】
したがって、出力ノード電圧の二進状態(グランドを表す0および電源電圧VDDを表す1)は、活性化ビットとフィルタ重みビットの否定排他的論理和(XNOR)であるので、得られるCiM計算結果はXNORに基づく計算と呼ばれることがあることがわかる。
【0021】
累算段階が計算段階の後に続く。累算段階において、事前充電トランジスタP1はオフにされるので、読み取りビット線は浮く。次いで、出力ノード105が接地される。キャパシタCが計算段階において-VCMに充電された場合、読み取りビット線電圧は次いで、コモンモード電圧VCM未満へと引き込まれる。逆に、キャパシタCが計算段階において充電されたままである場合、読み取りビット線電圧は計算段階において影響を受けない。読み取りビット線は、ビットセル100を含むCiMビットセルの列(
図1に示されない)にわたって延びることに留意されたい。累算段階において、列のキャパシタCはしたがって、そのすべての底部のプレートがそれぞれの出力ノード105の接地を通じて接地されている。キャパシタCはすべて、頂部のプレートまたは端子が読み取りビット線に結合されている。したがって、読み取りビット線は、累算段階において、すべてのキャパシタCからの共有される電荷を累算する。
【0022】
活性化ビットは二進の0または二進の1のいずれかであるので、活性化ビットがそれから導出される、大きさが奇数のみの対応する活性化ベクトルの負および正の符号を表現するには、0が-1と対応付けられることが必要であることがある(1は1のままである)。得られるXNORに基づく計算は、従来のフォンノイマン型コンピュータアーキテクチャが使用された場合よりも効率的であるが、符号付き活性化ベクトルを奇数のみに制限することは、計算精度を下げる。加えて、計算段階から累算段階への移行におけるキャパシタCの充電と放電によって、大量のエネルギーが消費されることがある。
【0023】
電力消費を減らして精度を高めるために、容量性CiMビットセルのための三進計算方式が与えられる。容量性CiMビットセルは、XNORに基づく計算方式においてCiMビットセル100について前に論じられたように並べられてもよい。したがって、三進計算において制御されるLスイッチおよびRスイッチがある。これらのLスイッチおよびRスイッチが送信ゲートである場合、計算段階と実行段階のみが必要である。代わりに、LスイッチおよびRスイッチを形成するためにPMOSトランジスタが使用される場合、以下でさらに論じられるように、事前充電段階が含まれてもよい。
【0024】
例示的なCiMビットセル200の送信ゲート実装形態が
図2に示されている。インバータ120および125、読み取りビット線RBL、ならびに事前充電トランジスタP1が、ビットセル100について論じられたように並べられる。フィルタ重みビットノードwt(インバーター120の出力)は、Lスイッチを形成する送信ゲートT1を通って出力ノード105に結合する。キャパシタCは、ビットセル100について論じられたように、出力ノード105と読み取りビット線RBLを結合する。NMOSトランジスタM1と並列に並べられたPMOSトランジスタP2は、送信ゲートT1を形成する。活性化ビット信号(Act)はトランジスタM1のゲートを制御するが、活性化ビット信号の補数(ActB)はトランジスタP2のゲートを制御する。したがって、トランジスタゲートT1は、活性化ビット信号が真(正論理での実装形態では二進の1)であるときは閉じられ、活性化ビット信号が偽(正論理の実装形態では二進の0)であるときは開かれる。代替の実装形態では、負論理の活性化ビット信号が使用されてもよいことを理解されたい。
【0025】
Rスイッチを形成する送信ゲートT2は、同様にPMOSトランジスタP3とNMOSトランジスタM2の並列の組合せにより形成されるので、類似している。相補活性化ビット信号(ActB)はトランジスタM2のゲートを制御するが、活性化ビット信号(Act)はトランジスタP3のゲートを制御する。したがって、トランジスタゲートT2は、活性化ビット信号が偽(正論理の実装形態では二進の0)であるときは閉じられ、活性化ビットが真(正論理では二進の1)であるときは開かれる。送信ゲートT1およびT2は強い1と強い0の両方を通すことができるので、事前充電動作段階ではビットセル200が出力ノード105を接地する必要はないが、読み取りビット線はトランジスタP1のスイッチオンを通じて事前充電される。
【0026】
ここで
図3を参照すると、LスイッチとRスイッチが強い0を通すことができない、代替のコンピュートインメモリビットセル300が示される。インバータ120および125、読み取りビット線RBL、ならびに事前充電トランジスタP1が、ビットセル100について論じられたように並べられる。PMOSトランジスタP2は、フィルタ重みビットノードwtと出力ノード105との間のLスイッチ結合を形成する。PMOSトランジスタP3は、相補フィルタ重みビットノードwtbと出力ノード105との間のRスイッチ結合を形成する。キャパシタCは、ビットセル100および200について論じられたように、出力ノード105と読み取りビット線を結合する。相補活性化ビット信号ActBは、トランジスタP2のゲートを制御する。したがって、活性化ビット信号Actが真であるとき、左スイッチはオンにされる。同様に、活性化ビット信号が偽であるときトランジスタP3がオンにされるように、活性化ビット信号ActはトランジスタP3のゲートを制御する。
【0027】
トランジスタP2とP3のいずれもが強い0を通すことができないので、出力ノード105は最初に、事前充電動作段階においてNMOSリセットトランジスタM3によって放電される。トランジスタM3のソースはグランドに接続し、そのドレインは出力ノード105に接続する。読み取りワード線(RWL)は、トランジスタM3のゲートを制御する。読み取りワード線RWLは、事前充電トランジスタP1もオンである初期事前充電段階の間にアサートされる。したがって、トランジスタM3は、事前充電動作段階の間にオンにされるので、キャパシタCはコモンモード電圧VCMに充電され得る。事前充電動作段階は、ビットセル200について論じられたものなどの送信ゲートの実装形態では不要である。
【0028】
事前充電動作段階が使用されるかどうかにかかわらず、符号付き活性化ベクトルの符号は符号ビットにより表されてもよい。符号付き活性化ベクトルのための活性化ビット(これは大きさビットとも表記されることがある)は、従来の二進ワードの場合のように、最下位ビット(LSB)から最上位ビット(MSB)に並べられてもよい。たとえば、3ビット幅の符号付き活性化ベクトルでは、活性化ビットは[0 0 0]から[1 1 1]にわたってもよい。そのような3ビット幅の実装形態では、たとえば、5または-5という符号付き活性化ベクトルの値の活性化ビット部分はしたがって、両方とも[011]により表されてもよい。符号ビットは、符号付き活性化ベクトルの負または正の符号をそれぞれ表すために、0または1のいずれかである。符号ビットが活性化ビットと乗算される場合、結果は-1、-0、0、および1という4つのあり得る値のうちの1つを有することがある。
【0029】
活性化ビットとの符号ビットの乗算に対してこれらの4つのあり得る値を仮定すると、三進計算における計算段階は、前に論じられた従来のXNORに基づく計算とはかなり異なる。XNORに基づく計算では、LスイッチおよびRスイッチの制御は、活性化ビットの二進状態に依存していた。しかし、三進計算段階では、LスイッチおよびRスイッチの制御は、以下のTable 2(表2)に示されるような符号ビットのみに依存する。
【表2】
計算段階において、活性化ビットの値にかかわらず、符号ビットが正である(正論理の実装形態では1に等しい)場合、Lスイッチは閉じられ、Rスイッチは開かれる。事前充電トランジスタP1は、計算段階の間はオンのままである。逆に、符号ビットが負である(正論理の実装形態では0に等しい)場合、計算段階の間、Rスイッチは閉じられ、Lスイッチは開かれる。やはり、負の符号ビットによるRスイッチおよびLスイッチのこの制御は、対応する活性化ビットの値とは無関係である。
【0030】
計算段階に続く実行動作段階の間に、事前充電トランジスタP1は、コモンモード電圧VCMのためのノードに関して読み取りビット線を浮かせるために、オフにされる。活性化ビットが二進の1である場合、実行段階におけるLスイッチおよびRスイッチの閉/開スイッチング状態は、計算段階の間にLスイッチおよびRスイッチがあったスイッチング状態から逆にされる。言い換えると、LスイッチまたはRスイッチが計算段階の間に閉じられていた場合、活性化ビットが二進の1であれば、同じスイッチが実行段階の間に開かれる。同様に、LスイッチまたはRスイッチが計算段階の間に開かれていた場合、活性化ビットが二進の1であれば、同じスイッチが実行段階の間に閉じられる。活性化ビットが二進の0である場合、計算段階からのLスイッチおよびRスイッチの閉/開スイッチング状態は、実行段階の間は変化しないままにされる。
【0031】
容量性CiMビットセルについての三進の動作とXNORに基づく動作の違いに留意されたい。XNORに基づく動作では、累算段階は常に出力ノード105を接地する。しかし、三進実行段階における出力ノード105の二進状態は、1(電源電圧VDDに充電される)または0(グランドに放電される)であってもよい。実行段階の間、出力ノード105はしたがって、グランドから電源電圧(VDD)に昇圧されることがあり、グランドに放電されたままであることがあり、電源電圧VDDに充電されたままであることがあり、または電源電圧VDDからグランドに放電されることがある。したがって、出力ノード電圧に対するこれらの4つのあり得る結果を仮定すると、得られる動作が実際に三進であることが理解でき、それは、出力ノード電圧が実行段階においてグランドからVDDに移行する場合、読み取りビット線電圧がコモンモード電圧VCMを上回って昇圧されることがあるからである。逆に、出力ノードが計算段階と実行段階の両方において接地されたままである場合、読み取りビット線電圧は変化しない(コモンモード電圧に等しい)ままである。同様に、出力ノードが計算段階と実行段階の両方において電源電圧VDDに充電されたままである場合、読み取りビット線電圧は変化しない。最後に、出力ノード電圧が計算段階における電源電圧VDDから実行段階におけるグランドへと移行する場合、読み取りビット線電圧は、実行段階におけるコモンモード電圧から低下する。
【0032】
XNORに基づく計算では、累算段階はコモンモード電圧から読み取りビット線電圧を放電することしかできないので、コモンモード電圧からの読み取りビット線電圧の上昇はない。したがって、三進に基づく計算における読み取りビット線の出力電圧の振れ幅は、XNORに基づく計算から得られる出力電圧の振れ幅の2倍である。三進に基づく計算のこの出力電圧の振れ幅の増加は、本明細書においてさらに説明されるように、計算におけるアナログデジタル変換ノイズの低減に関して有利である。
【0033】
したがって、三進計算は、XNORに基づく計算とは異なるように機能する。XNORに基づく計算では、符号ビットがないので、(もしあれば)事前充電段階の間にLスイッチとRスイッチが両方とも開かれ、コントローラは次いで、計算段階の間に活性化ビットに基づいてこれらのスイッチを制御する。しかし、三進計算では、
図4に示されるように、LスイッチおよびRスイッチのコントローラ400は、左スイッチおよび右スイッチを制御するために計算段階の間に符号ビットを見て、次いで実行段階の間に活性化ビットを見る。たとえば、符号付き活性化ベクトルは、第1の記憶素子および複数の追加の記憶素子を含むバッファ410に格納されてもよい。コントローラ400のための計算/実行制御信号415は、計算段階がアクティブであるか実行段階がアクティブであるかに応じて、マルチプレクサ405によるバッファ410からの選択を制御する。計算段階において、制御信号415は、バッファ410の中の第1の記憶素子から符号ビットを選択するためにマルチプレクサ405を制御する。次いで、符号ビットは、活性化ビット信号(Act)および相補活性化ビット信号ActBを形成するために計算段階の間に論理回路425によって使用され、これらの信号は(送信ゲートの実装形態では)Lスイッチの開/閉状態を制御する。インバータ420は、Rスイッチのスイッチング状態がLスイッチのスイッチング状態に対して相補的であることを示すように、概念的である。ビットセル200に関して論じられるように、ActおよびActB活性化ビット信号は、Lスイッチのスイッチング状態に加えてRスイッチのスイッチング状態を制御する。
【0034】
計算段階に続く実行段階において、制御信号415は、現在の計算結果の大きさ(ビット重要性)に応じて、バッファ410の中の複数の追加の記憶素子からの活性化ビットの選択を制御する。たとえば、第1の実行サイクルは、LSB活性化ビットM0から開始してもよい。連続する実行サイクルにおいて、次に上位の活性化ビットが選択される。バッファ410において、活性化ビットは、LSB活性化ビットM0からMSB活性化ビットM6にわたる。しかしながら、他の実装形態では、MSBからLSBへと選択することなどの、ビットの代替的な配列が使用されてもよいことが理解されるだろう。したがって、そのような符号付きの7ビット幅の活性化ベクトルの乗算は、7つの連続する計算段階および実行段階を伴い、各実行段階はそれぞれの活性化ビットを対象とし、各計算段階は同じ符号ビットに応答する。選択された活性化ビットの二進値に応じて、Table2(表2)に関して論じられたように、論理回路425は、実行段階におけるLスイッチおよびRスイッチの開/閉スイッチング状態を、計算段階においてそれらがあった状態の逆にするか、またはそれらを変えないままにするかのいずれかである。実行段階に続いて、本明細書においてさらに論じられるように、格納フィルタ重みビットとの符号付き活性化ビットの三進に基づく乗算は、アナログデジタルコンバータなどを通じて、読み取りビット線電圧から検知される。
【0035】
三進に基づく計算の電力消費の好都合な低減は、
図5の4つの例示的な計算および実行サイクルの例示的なスイッチング波形に関してより理解される可能性がある。波形500の第1のセットにおいて、フィルタ重みビットは二進の1である。波形505の第2のセットにおいて、フィルタ重みビットは二進の0である。事前充電トランジスタP1のオン状態およびオフ状態は、連続する計算段階および実行段階について波形500と505の両方に共通である。これらの波形において、キャパシタCの底部のプレートの二進状態(電源電圧VDDに充電される、または接地される)はCbotと表記される。この底部のプレートは、出力ノード105に接続するキャパシタCのプレートである。対照的に、読み取りビット線に接続するキャパシタCのプレートは、頂部のプレートと表記されることがある。
【0036】
前に述べられたように、符号付き活性化ビットを形成するための活性化ビットとの符号ビットの乗算は、+1、+0、-0、および-1という4つのあり得る値のうちの1つをもたらす。波形500は、-1の値について計算段階で開始する。計算段階において、-1の活性化の負の符号により、Rスイッチはオンであり、Lスイッチはオフである。フィルタ重みビットは二進の1であるので、相補フィルタ重みビットは二進の0である。この二進の0は、オンにされたRスイッチを通ってCbotのプレートを接地する。実行段階において、活性化ビットの二進の1という大きさは、LおよびRのスイッチング状態の逆転を強いる。したがって、-1の実行段階について、Lスイッチはオンであり、Rスイッチはオフである。Lスイッチのスイッチオンにより、フィルタ重みビットの二進の1という値が、キャパシタCのCbotプレートを電源電圧VDDに充電することが可能になる。
【0037】
500の波形では、-1の活性化の後に+0の活性化値がある。したがって、Lスイッチは+0の活性化のための計算段階においてオンのままであり、Rスイッチはオフのままである。したがって、Cbot電圧は、この計算段階の間、電源電圧VDDに充電されたままである。+0の活性化についての後続の実行段階において、+0の活性化の大きさが0であるので、スイッチング状態は変化しない。したがって、Cbot電圧は、電源電圧VDDに充電されたままである。これは、Cbot電圧が累算段階の間に常に接地されるような、従来のXNORに基づく手法を超える電力消費の削減を示す。
【0038】
+0の活性化の後に+1の活性化がある。波形500において、Lスイッチはしたがって、+1の活性化のための計算段階の間はオンであり、Rスイッチはオフである。Lスイッチのスイッチオンにより、フィルタ重みビットの二進の1という値が、Cbot電圧を電源電圧VDDに充電し続けることが可能になる。後続の実行段階において、LスイッチおよびRスイッチのスイッチング状態が逆にされるので、RスイッチのスイッチオンによりCbot電圧が接地される。
【0039】
+1の活性化の後に-0の活性化がある(活性化の順序は、処理されている活性化ベクトルに依存し、波形500および505は、すべてのあり得る活性化値が示されるように、特定の順序の活性化を使用することに留意されたい)。活性化は負の符号を有するので、Cbot電圧の接地を続けるために、波形500の-0の活性化についての計算段階の間、Rスイッチは閉じられ、Lスイッチは開かれる。後続の実行段階において、活性化の大きさが二進の0であることにより、Rスイッチは閉じられたままであり、Lスイッチは開かれたままである。したがって、Cbot電圧は、-0の活性化について計算サイクルおよび実行サイクルの間は変化しないままであり、これはまた、従来のXNORに基づく計算が実行された場合に発生したであろう変化するCbot電圧と比較して、電力消費を減らす。
【0040】
ここで、波形505が論じられる。前に述べられたように、フィルタ重みビットは波形505について二進の0である。これらのスイッチング状態は活性化のみに依存するので、Rスイッチング状態およびLスイッチング状態(オンまたはオフ)は、波形500について論じられたようになる。+0の活性化について、Cbot電圧は接地されたままであるので、波形505は、従来のXNORに基づく手法を超える電力の節約を示す。具体的には、Lスイッチがオンになるので、+0の活性化についての計算段階の間、Cbot電圧は接地され、これは、接地されたフィルタ重みビットがLスイッチを通ってキャパシタCの底部のプレートを接地することを可能にする。二進の0という大きさが、LスイッチおよびRスイッチのスイッチング状態を計算段階での値から変化しないままにするので、Cbot電圧のこの接地された状態は、+0の活性化についての実行段階の間は変化しないままである。加えて、505の波形についての-0の活性化は、従来のXNORに基づく手法を超える電力の節約を示す。具体的には、-0の活性化の負の値により、-0の活性化についての計算段階の間、Rスイッチはオンになり、Lスイッチはオフになり、これは、相補フィルタ重みビットの二進のhighの値が、閉じられたRスイッチを通ってCbot電圧を電源電圧VDDに充電することを可能にする。そうすると、スイッチング状態は、-0の活性化の二進の0という大きさにより、波形505における-0の活性化についての後続の実行段階の間、変化しないままである。したがって、Cbot電圧は、-0の活性化についての実行段階の間、電源電圧に充電されたままである。対照的に、Cbot電圧は、XNORに基づく計算では接地されていたであろう。
【0041】
いくつかの例示的なCiMビットセルアレイ
本明細書において開示されるような三進に基づく計算のために構成されるCiMビットセルは、積和(MAC)回路を形成するように編成されてもよい。
図6に示される例示的なMAC回路600がここで論じられる。MAC回路600は、CiMビットセル100、200、または300について論じられたものなどの、各々実装された複数のCiMビットセルを含む。一般に、MAC回路600に含まれるビットセルの数は、フィルタサイズに依存する。例示をわかりやすくするために、MAC回路600は、第0のフィルタ重みビットW0を記憶する第0のビットセルから第6のフィルタ重みビットW6を記憶する第6のビットセルにわたる、7個だけのCiMビットセルの例を含むものとして示されている。読み取りビット線RBLはその列にわたって延びる。各ビットセルは、
図4、
図5、およびTable 2(表2)に関して論じられたような三進に基づく計算の間にビットセル100、200、または300に関して論じられたように動作する。
【0042】
複数のMAC回路は、
図7に示されるようなメモリアレイ700を含むメモリを形成するように並べられてもよい。ビットセル100、200、または300の各列は、対応するMAC回路を形成する。たとえば、フィルタサイズはアレイ700では128であるので、アレイ700の各列は128個のビットセル100、200、または300を有する。したがって、活性化ベクトル720は、128個の入力サンプルを有する。メモリアレイ700において、各入力サンプルは、複数ビットの入力サンプルである。任意の所与の計算および実行段階に対して、活性化ビットは、第1の活性化ビットdin1から第128の活性化ビットdin128にわたる複数の活性化ビットを生み出すように、各マルチビットサンプルから選択される。各活性化ベクトル720の符号ビットは示されないが、バッファ410に関して論じられたように含まれる。フィルタ重みビットをメモリアレイ700に書き込むための書き込み操作の後、各活性化ベクトル720は逐次サンプリングされるので、各MAC回路は、それぞれの活性化ビットが対応するフィルタ重みビットにより乗じられる計算段階を実行する。計算段階の後には実行段階がある。XNORに基づく手法では、MAC回路の中の各ビットセルのための出力ノード105は接地されるので、実行段階は累算段階と表記される。したがって、MAC回路の中の様々なキャパシタCからの電荷が、対応する読み取りビット線に累積される。しかし、三進に基づく計算では、前に論じられたように様々な出力ノード105が接地されていることもありまたは充電されたままであることもあるので、キャパシタCの電荷は実行段階の間と同じ方式では累積されない。しかしながら、実行段階は、読み取りビット線電圧がMAC回路内のすべてのCiMビットセルに対する計算結果の加算(累算)を表すという、同じ目標を達成する。しかしながら、XNORに基づく計算とは異なり、活性化ベクトル720は奇数と偶数の両方の符号付きの値を有することがあるので、計算精度が向上することに留意されたい。加えて、キャパシタCの底部のプレートの充電と放電は、
図5に関して述べられたように減少する。din1などの各入力サンプルは、マルチビット入力サンプルであってもよいことに留意されたい。たとえば、din1は3ビット幅のサンプルdin1であってもよい。各CiMビットセルは二進乗算を実行するので、マルチビット入力サンプルの中の様々なビットは、アレイ700の中の各MAC回路によって逐次処理される。したがって、各MAC回路のための逐次積分器705は、マルチビット入力サンプルの重み(ビットの大きさ)に従って累算結果を重み付けるように機能する。たとえば、入力ベクトル720の各サンプルが、最下位ビット(LSB)サンプルから最上位ビット(MSB)サンプルにわたる3ビット幅のサンプルであるとする。したがって、各逐次積分器705は、それらのビットの大きさに従って累算結果を加算する。加えて、フィルタ重み自体が、マルチビットフィルタ重みであってもよい。各CiMビットセルは二進のフィルタ重みを記憶するので、1つのMAC回路が、1つのフィルタ重みビット(たとえば、LSB重み)のために使用されてもよく、近隣のMAC回路が、次に上位のフィルタ重みビットのために使用されてもよく、以下同様である。そのような実施形態では、3つの隣接するMAC回路が、3ビット幅のフィルタ重みの実施形態のために使用される。マルチビット重み付き加算回路710は、(マルチビット入力サンプルの場合に必要であるような、対応する逐次積分器705を通じて処理されるような)対応するMAC累算値を累算し、フィルタ重みビットの二進の重みに従ってMAC累算値を加算する。最後に、アナログデジタルコンバータ(ADC)715が、最後の累算結果をデジタル化する。しかしながら、前に論じられたように、三進活性化により読み取りビット線上での出力電圧の振れ幅が2倍になることにより、このデジタル化は大きく改善される。
【0043】
格納ビットを符号付き入力ビットと乗算するようにCiMビットセルを制御する方法が、
図8のフローチャートに関してここで論じられる。方法は行為800を含み、これは、第1の動作段階の間に起こり、符号付き入力ビットの符号が第1の二進値を有することに応答し、格納ビットのためのノードと出力ノードとの間に結合される第1のスイッチを閉じ、格納ビットの補数のためのノードと出力ノードとの間に結合される第2のスイッチを開くステップとを含む。活性化が正であることに応答してLスイッチを閉じることとRスイッチを開くことは、行為800の例である。方法は行為805も含み、これは、第1の動作段階の間に起こり、符号付きビットの符号が第2の二進値を有することに応答し、第1のスイッチを開き第2のスイッチを閉じるステップを含む。活性化が負であることに応答してLスイッチを開くこととRスイッチを閉じることは、行為805の例である。方法はさらに行為810を含み、これは、第2の動作段階の間に起こり、符号付き入力ビットの大きさが第1の二進値を有することに応答し、第1の動作段階の間に確立された第1のスイッチと第2のスイッチのスイッチング状態を逆にするステップを含む。活性化の大きさが二進の1であることに応答したLスイッチとRスイッチのスイッチング状態の切り替えは、行為810の例である。最後に、方法は行為815を含み、これは、第2の動作段階の間に起こり、符号付き入力ビットの大きさが第2の二進値を有することに応答し、第1の動作段階の間に確立された第1のスイッチと第2のスイッチのスイッチング状態を変化しないままにするステップを含む。活性化の大きさが二進の0であることに応答して計算段階において確立されたのと同じスイッチング状態を有するように、実行段階の間にLスイッチおよびRスイッチを制御することは、行為815の例である。
【0044】
本明細書で開示されるような三進活性化を用いたコンピュートインメモリビットセルは、有利には、任意の適切なモバイルデバイスまたは電子システムに組み込まれてもよい。たとえば、
図9に示されるように、携帯電話900、ラップトップコンピュータ905、およびタブレットPC910はすべて、本開示による機械学習の用途などのためのコンピュートインメモリビットセルを有するコンピュートインメモリを含んでもよい。音楽プレーヤ、ビデオプレーヤ、通信デバイス、およびパーソナルコンピュータなどの他の例示的な電子システムも、本開示によって構築されたコンピュートインメモリを用いて構成されてもよい。
【0045】
ここで、以下の一連の例示的な条項において本開示が要約される。
条項1.出力ノードに接続されるスイッチのペアを有するビットセルと、
出力ノードに結合されるキャパシタと、
第1の記憶素子および複数の追加の記憶素子と、
メモリのための第1の動作段階の間に第1のビットに応答してスイッチのペアを制御するように第1の記憶素子から第1のビットを選択するように構成され、メモリのための第2の動作段階の間に第2のビットに応答してスイッチのペアを制御するように複数の追加の記憶素子から第2のビットを選択するように構成される、コントローラとを備える、メモリ。
条項2.ビット線をさらに備え、キャパシタが、出力ノードに結合される第1の端子およびビット線に結合される第2の端子を含む、条項1のメモリ。
条項3.第1の記憶素子が、符号ビットを記憶するように構成され、複数の追加の記憶素子が、複数の大きさビットを記憶するように構成される、条項1から2のいずれかのメモリ。
条項4.コントローラが、第1の動作段階の間に符号ビットを選択し、第2の動作段階の間に複数の大きさビットから第2のビットを選択するように構成される、マルチプレクサを含む、条項3のメモリ。
条項5.コントローラがさらに、第1のビットが第1の二進値を有することに応答して、スイッチのペアの中の第1のスイッチを閉じ、スイッチのペアの中の第2のスイッチを開き、第2のビットが第1の二進値の補数である第2の二進値を有することに応答して、第1のスイッチを開き、第2のスイッチを閉じるように、第1の動作段階の間に構成される、条項4のメモリ。
条項6.コントローラがさらに、第2のビットが第1の二進値を有することに応答して、第1のスイッチおよび第2のスイッチのスイッチング状態を逆にし、第2のビットが第2の二進値を有することに応答して、第1のスイッチおよび第2のスイッチのスイッチング状態を維持するように、第2の動作段階の間に構成される、条項5のメモリ。
条項7.ビットセルが、第2のインバータとクロス結合される第1のインバータを備え、スイッチのペアが、第1のインバータの出力ノードと出力ノードとの間に結合される第1のスイッチを含み、第2のインバータの出力ノードと出力ノードとの間に結合される第2のスイッチを含む、条項2から6のいずれかのメモリ。
条項8.第1のスイッチが第1の送信ゲートを備え、第2のスイッチが第2の送信ゲートを備える、条項7のメモリ。
条項9.第1のスイッチおよび第2のスイッチが、出力ノードに結合される唯一のスイッチである、条項7から8のいずれかのメモリ。
条項10.出力ノードとグランドとの間に結合される第3のスイッチをさらに備える、条項7のメモリ。
条項11.コントローラがさらに、第1の動作段階の前の事前充電動作段階の間に第3のスイッチをオンにし、第1の動作段階および第2の動作段階の間に第3のスイッチをオフにするように構成される、条項10のメモリ。
条項12.第1のスイッチが第1のp型金属酸化膜半導体(PMOS)トランジスタであり、第2のスイッチが第2のPMOSトランジスタであり、第3のスイッチがn型金属酸化膜半導体(NMOS)トランジスタである、条項10から11のいずれかのメモリ。
条項13.コモンモード電圧のためのノードとビット線との間に結合される第3のスイッチをさらに備え、コントローラがさらに、第1の動作段階の間に第3のスイッチを閉じ、第2の動作段階の間に第3のスイッチを開くように構成される、条項7のメモリ。
条項14.第3のスイッチが第1のPMOSトランジスタである、条項13のメモリ。
条項15.メモリが携帯電話に組み込まれる、条項1から14のいずれかのメモリ。
条項16.格納ビットを符号付き入力ビットと乗算するようにビットセルを制御する方法であって、
第1の動作段階の間に、符号付き入力ビットの符号が第1の二進値を有することに応答して、格納ビットのためのノードと出力ノードとの間に結合される第1のスイッチを閉じ、格納ビットの補数のためのノードと出力ノードとの間に結合される第2のスイッチを開くステップと、
第1の動作段階の間に、符号付きビットの符号が第2の二進値を有することに応答して、第1のスイッチを開き第2のスイッチを閉じるステップと、
第2の動作段階の間に、符号付き入力ビットの大きさが第1の二進値を有することに応答して、第1の動作段階の間に確立された第1のスイッチと第2のスイッチのスイッチング状態を逆にするステップと、
第2の動作段階の間に、符号付き入力ビットの大きさが第2の二進値を有することに応答して、第1の動作段階の間に確立された第1のスイッチと第2のスイッチのスイッチング状態を変化しないままにするステップとを備える、方法。
条項17.第1の二進値が二進の1の値であり、第2の二進値が二進の0の値である、条項16の方法。
条項18.第1の動作段階の間に、ビット線をコモンモード電圧のためのノードに接続するステップをさらに備え、ビット線がキャパシタを通じて出力ノードに結合される、条項16から17のいずれかの方法。
条項19.第2の動作段階の間にコモンモード電圧のためのノードからビット線を切り離すステップをさらに備える、条項18の方法。
条項20.格納ビットを格納するように構成されるビットセルであって、格納ビットのためのノードと出力ノードとの間に結合される第1のスイッチと、格納ビットの補数のためのノードと出力ノードとの間に結合される第2のスイッチとを含む、ビットセルと、
出力ノードに接続される第1のプレートを有するキャパシタと、
第1の動作段階において第1のスイッチおよび第2のスイッチのスイッチング状態を制御するために、入力ワードの符号ビットが第1の二進値を有することに応答して第2のスイッチを開いて第1のスイッチを閉じ、符号ビットが第2の二進値を有することに応答して第1のスイッチを開いて第2のスイッチを閉じるように構成されるコントローラとを備え、第2の二進値は第1の二進値の補数である、メモリ。
条項21.キャパシタの第2のプレートに結合されるビット線をさらに備える、条項20のメモリ。
条項22.入力ワードを格納するための入力バッファをさらに備え、コントローラがさらに、入力バッファの中の選択された大きさビットが第1の二進値を有することに応答して、第1のスイッチおよび第2のスイッチのスイッチング状態を逆にするように第2の動作段階の間に構成される、条項20から21のいずれかのメモリ。
条項23.コントローラがさらに、入力バッファの中の選択された大きさビットが第2の二進値を有することに応答して、第1のスイッチおよび第2のスイッチのスイッチング状態を維持するように第2の動作段階の間に構成される、条項22のメモリ。
条項24.メモリが複数の追加のビットセルを含む積和回路に含まれ、各々の追加のビットセルが対応するキャパシタを含む、条項20から23のいずれかのメモリ。
条項25.複数の列を含むメモリアレイをさらに備え、積和回路が複数の列の中の列を形成するように構成される、条項24のメモリ。
条項26.複数の列に1対1で対応する複数のアナログデジタルコンバータをさらに備える、条項25のメモリ。
条項27.各アナログデジタルコンバータが、マルチビットアナログデジタルコンバータである、条項26のメモリ。
条項28.コンピュートインメモリのための動作の方法であって、
第1の動作段階の間に、符号ビットに応答して、ビットセルの中のインバータのペアとキャパシタのプレートとの間に結合されるスイッチのペアを制御するステップと、
第2の動作段階の間に、大きさビットに応答して、スイッチのペアを制御するステップとを備える、方法。
条項29.第1の動作段階の間にスイッチのペアを制御するステップが、符号ビットが第1の二進値を有することに応答して、スイッチのペアの中の第1のスイッチを閉じ、スイッチのペアの中の第2のスイッチを開くステップを備える、条項28の方法。
条項30.第1の動作段階の間にスイッチのペアを制御するステップがさらに、符号ビットが第1の二進値の補数である第2の二進値を有することに応答して、第1のスイッチを開き第2のスイッチを閉じるステップを備える、条項29の方法。
【0046】
本開示のデバイスの材料、装置、構成および使用方法において、それらの範囲から逸脱することなく、多くの修正、置換、および変形が行われ得ることが理解されるだろう。このことに照らして、本明細書で図示および説明された特定の実施形態は、それらのいくつかの例にすぎないので、本開示の範囲はそのような特定の実施形態の範囲に限定されるべきではなく、むしろ、以下に添付される特許請求の範囲およびそれらの機能的等価物の範囲と完全に同じであるべきである。
【符号の説明】
【0047】
105 出力ノード
120 クロス結合インバータ
125 クロス結合インバータ
405 マルチプレクサ
410 バッファ
415 制御信号
420 インバータ
425 論理回路
700 メモリアレイ
705 逐次積分器
710 マルチビット重み付き加算回路
715 アナログデジタルコンバータ
720 活性化ベクトル
900 携帯電話
905 ラップトップコンピュータ
910 タブレットPC
【手続補正書】
【提出日】2023-09-08
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
メモリであって、
出力ノードに接続されるスイッチのペアを有するビットセルと、
前記出力ノードに結合されるキャパシタと、
第1の記憶素子および複数の追加の記憶素子と、
前記メモリのための第1の動作段階の間に第1のビットに応答して前記スイッチのペアを制御するように前記第1の記憶素子から
前記第1のビットを選択するように構成され、かつ前記メモリのための第2の動作段階の間に第2のビットに応答して前記スイッチのペアを制御するように前記複数の追加の記憶素子から
前記第2のビットを選択するように構成される、
コントローラと
を備え、
前記コントローラがさらに、前記第1のビットが第1の二進値を有することに応答して前記スイッチのペアの中の第1のスイッチを閉じ、前記スイッチのペアの中の第2のスイッチを開き、かつ前記第1のビットが前記第1の二進値の補数である第2の二進値を有することに応答して前記第1のスイッチを開き、かつ前記第2のスイッチを閉じるように、前記第1の動作段階の間に
構成され、
前記コントローラがさらに、前記第2のビットが前記第1の二進値を有することに応答して、前記第1のスイッチおよび前記第2のスイッチのスイッチング状態を逆にし、かつ前記第2のビットが前記第2の二進値を有することに応答して、前記第1のスイッチおよび前記第2のスイッチのスイッチング状態を維持するように、前記第2の動作段階の間に構成される、
メモリ。
【請求項2】
ビット線をさらに備え、前記キャパシタが前記出力ノードに結合される第1の端子および前記ビット線に結合される第2の端子を含む、請求項1に記載のメモリ。
【請求項3】
前記第1の記憶素子が符号ビットを記憶するように構成され、前記複数の追加の記憶素子が複数の大きさビットを記憶するように構成される、請求項1に記載のメモリ。
【請求項4】
前記コントローラが、前記第1の動作段階の間に前記第1のビットを選択し、かつ前記第2の動作段階の間に前記第2のビットを選択するように構成される、マルチプレクサを含む、請求項3に記載のメモリ。
【請求項5】
前記ビットセルが、第2のインバータとクロス結合される第1のインバータを備え、前記スイッチのペアが、前記第1のインバータの出力ノードと前記出力ノードとの間に結合される第1のスイッチを含み、前記第2のインバータの出力ノードと前記出力ノードとの間に結合される第2のスイッチを含む、請求項1に記載のメモリ。
【請求項6】
前記第1のスイッチが第1の送信ゲートを備え、前記第2のスイッチが第2の送信ゲートを備える、請求項
5に記載のメモリ。
【請求項7】
前記第1のスイッチおよび前記第2のスイッチが、前記出力ノードに結合される唯一のスイッチである、請求項
5に記載のメモリ。
【請求項8】
メモリであって、
出力ノードに接続されるスイッチのペアを有するビットセルであって、前記ビットセルが、第2のインバータとクロス結合される第1のインバータを備え、前記スイッチのペアが、前記第1のインバータの出力ノードと前記出力ノードとの間に結合される第1のスイッチを含み、前記第2のインバータの出力ノードと前記出力ノードとの間に結合される第2のスイッチを含む、ビットセルと、
前記出力ノードに結合されるキャパシタと、
第1の記憶素子および複数の追加の記憶素子と、
前記メモリのための第1の動作段階の間に第1のビットに応答して前記スイッチのペアを制御するように前記第1の記憶素子から前記第1のビットを選択するように構成され、前記メモリのための第2の動作段階の間に第2のビットに応答して前記スイッチのペアを制御するように前記複数の追加の記憶素子から前記第2のビットを選択するように構成される、コントローラと、
前記出力ノードとグランドとの間に結合される第3のスイッチと
を備える、メモリ。
【請求項9】
前記コントローラが、前記第1の動作段階の前の事前充電動作段階の間に前記第3のスイッチをオンにし、前記第1の動作段階および前記第2の動作段階の間に前記第3のスイッチをオフにするようにさらに構成される、請求項
8に記載のメモリ。
【請求項10】
前記第1のスイッチが第1のp型金属酸化膜半導体(PMOS)トランジスタであり、前記第2のスイッチが第2のPMOSトランジスタであり、前記第3のスイッチがn型金属酸化膜半導体(NMOS)トランジスタである、請求項
8に記載のメモリ。
【請求項11】
コモンモード電圧のためのノードと前記ビット線との間に結合される第3のスイッチをさらに備え、前記コントローラが、前記第1の動作段階の間に前記第3のスイッチを閉じ、前記第2の動作段階の間に前記第3のスイッチを開くようにさらに構成される、請求項
5に記載のメモリ。
【請求項12】
前記第3のスイッチが第1のPMOSトランジスタである、請求項
11に記載のメモリ。
【請求項13】
前記メモリが携帯電話に組み込まれる、請求項1に記載のメモリ。
【請求項14】
格納ビットを符号付き入力ビットと乗算するようにビットセルを制御する方法であって、
第1の動作段階の間に、前記符号付き入力ビットの符号が第1の二進値を有することに応答して、前記格納ビットのためのノードと出力ノードとの間に結合される第1のスイッチを閉じ、かつ前記格納ビットの補数のためのノードと前記出力ノードとの間に結合される第2のスイッチを開くステップと、
前記第1の動作段階の間に、前記符号付きビットの前記符号が第2の二進値を有することに応答して、前記第1のスイッチを開きかつ前記第2のスイッチを閉じるステップと、
第2の動作段階の間に、前記符号付き入力ビットの大きさが前記第1の二進値を有することに応答して、前記第1の動作段階の間に確立された前記第1のスイッチと前記第2のスイッチのスイッチング状態を逆にするステップと、
前記第2の動作段階の間に、前記符号付き入力ビットの前記大きさが前記第2の二進値を有することに応答して、前記第1の動作段階の間に確立された前記第1のスイッチおよび前記第2のスイッチの前記スイッチング状態を維持するステップと
を備える、方法。
【請求項15】
前記第1の二進値が二進の1の値であり、前記第2の二進値が二進の0の値である、請求項
14に記載の方法。
【請求項16】
前記第1の動作段階の間に、ビット線をコモンモード電圧のためのノードに接続するステップをさらに備え、前記ビット線がキャパシタを通じて前記出力ノードに結合される、請求項
14に記載の方法。
【請求項17】
前記第2の動作段階の間に前記コモンモード電圧のための前記ノードから前記ビット線を切り離すステップをさらに備える、請求項
16に記載の方法。
【請求項18】
メモリであって、
格納ビットを格納するように構成されるビットセルであって、前記格納ビットのためのノードと出力ノードとの間に結合される第1のスイッチと、前記格納ビットの補数のためのノードと前記出力ノードとの間に結合される第2のスイッチとを含む、ビットセルと、
前記出力ノードに接続される第1のプレートを有するキャパシタと、
第1の動作段階の間に前記第1のスイッチおよび前記第2のスイッチのスイッチング状態を制御するために、入力ワードの符号が第1の二進値を有することに応答して前記第2のスイッチを開いて前記第1のスイッチを閉じ、前記入力ワードの前記符号が第2の二進値を有することに応答して前記第1のスイッチを開いて前記第2のスイッチを閉じるように構成されるコントローラ
であって、前記第2の二進値は前記第1の二進値の補数であ
る、コントローラと、
前記入力ワードを格納するための
入力バッファであって、前記コントローラが、前記入力バッファの中の選択された大きさビットが前記第1の二進値を有することに応答して、前記第1のスイッチおよび前記第2のスイッチの前記スイッチング状態を逆にするように第2の動作段階の間にさらに構成される、入力バッファと
を備える、メモリ。
【請求項19】
前記キャパシタの第2のプレートに結合されるビット線をさらに備える、請求項
18に記載のメモリ。
【請求項20】
前記コントローラが、前記入力バッファの中の前記選択された大きさビットが前記第2の二進値を有することに応答して、前記第1のスイッチおよび前記第2のスイッチの前記スイッチング状態を維持するように前記第2の動作段階の間にさらに構成される、請求項
18に記載のメモリ。
【請求項21】
前記メモリが複数の追加のビットセルを含む積和回路に含まれ、各々の追加のビットセルが対応するキャパシタを含む、請求項
20に記載のメモリ。
【請求項22】
複数の列を含むメモリアレイをさらに備え、前記積和回路が前記複数の列の中の列を形成するように構成される、請求項
21に記載のメモリ。
【請求項23】
前記複数の列に1対1で対応する複数のアナログデジタルコンバータをさらに備える、請求項
22に記載のメモリ。
【請求項24】
各アナログデジタルコンバータが、マルチビットアナログデジタルコンバータである、請求項
23に記載のメモリ。
【請求項25】
コンピュートインメモリのための動作の方法であって、
第1の動作段階の間に、符号ビットに応答して、ビットセルとキャパシタのプレートとの間に結合されるスイッチのペアを制御するステップと、
第2の動作段階の間に、大きさビットに応答して、前記スイッチのペアを制御するステップと
を
備え、
前記第1の動作段階の間に前記スイッチのペアを制御するステップが、前記符号ビットが第1の二進値を有することに応答して、前記スイッチのペアの中の第1のスイッチを閉じ、前記スイッチのペアの中の第2のスイッチを開くステップを
備え、
前記第1の動作段階の間に前記スイッチのペアを制御するステップがさらに、前記符号ビットが前記第1の二進値の補数である第2の二進値を有することに応答して、前記第1のスイッチを開き前記第2のスイッチを閉じるステップを備える、
方法。
【国際調査報告】