(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-04
(54)【発明の名称】畳み込み演算を実行するためのクロスバー回路
(51)【国際特許分類】
G06F 17/10 20060101AFI20240927BHJP
G11C 13/00 20060101ALI20240927BHJP
【FI】
G06F17/10 A
G11C13/00 270J
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024522495
(86)(22)【出願日】2022-10-18
(85)【翻訳文提出日】2024-06-07
(86)【国際出願番号】 US2022078281
(87)【国際公開番号】W WO2023069935
(87)【国際公開日】2023-04-27
(32)【優先日】2021-10-18
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】522359877
【氏名又は名称】テトラメム、インク.
(74)【代理人】
【識別番号】110001416
【氏名又は名称】弁理士法人信栄事務所
(72)【発明者】
【氏名】フー、ミヤオ
(72)【発明者】
【氏名】イェン、ウェンボウ
(72)【発明者】
【氏名】ジェイ、ニング
【テーマコード(参考)】
5B056
【Fターム(参考)】
5B056BB26
5B056HH03
(57)【要約】
本開示のいくつかの実施態様に従って畳み込み演算を実行するための装置が提供される。装置は、第1の複数のクロスポイント素子を包含する第1のクロスバー回路と、第2の複数のクロスポイント素子を包含する第2のクロスバー回路と、第1のクロスバー回路および第2のクロスバー回路に入力信号を印加するワード・ライン・ロジックと、を含む。ワード・ライン・ロジックは、1つ以上の2次元畳み込みカーネルおよび1つ以上の深さ方向畳み込みカーネルを使用して畳み込まれる入力データを表す入力信号を提供するように構成される。第1のクロスバー回路は、入力データと2次元畳み込みカーネルの畳み込みを表す第1の複数の出力信号を出力するように構成される。第2のクロスバー回路は、入力データと深さ方向畳み込みカーネルの畳み込みを表す第2の複数の出力信号を出力するように構成される。
【特許請求の範囲】
【請求項1】
複数のワード・ラインと複数のビット・ラインを接続する複数のクロスポイント素子と、
複数の選択ラインであって、前記複数のクロスポイント素子の第1のグループを接続する第1の選択ラインと、前記複数のクロスポイント素子の第2のグループを接続する第2の選択ラインとを包含する複数の選択ラインと、
を包含し、
前記複数のクロスポイント素子の前記第1のグループは、
前記複数のビット・ラインのうちの第1のビット・ラインと前記複数のワード・ラインのうちの第1のワード・ラインとを接続する第1のクロスポイント素子と、
前記複数のビット・ラインのうちの第2のビット・ラインと前記複数のワード・ラインのうちの第2のワード・ラインとを接続する第2のクロスポイント素子と、
を包含し、
前記複数のクロスポイント素子の前記第2のグループは、
前記第2のワード・ラインと前記第1のビット・ラインとを接続する第3のクロスポイント素子と、
第3のワード・ラインと前記第2のビット・ラインとを接続する第4のクロスポイント素子と、
を包含する装置。
【請求項2】
前記装置は、さらに、前記複数の選択ラインを介して前記複数のクロスポイント素子のうちの1つ以上を選択的に有効にする選択ロジックを包含する、請求項1に記載の装置。
【請求項3】
前記選択ロジックは、前記第1の選択ラインを介して前記複数のクロスポイント素子の前記第1のグループを有効にする、請求項2に記載の装置。
【請求項4】
前記選択ロジックは、前記第2の選択ラインを介して前記複数のクロスポイント素子の前記第2のグループを有効にする、請求項3に記載の装置。
【請求項5】
前記装置は、さらに、
複数の深さ方向畳み込みカーネルの第1の複数の要素を前記複数のクロスポイント素子の前記第1のグループにマップし、かつ、
前記複数の深さ方向畳み込みカーネルの第2の複数の要素を前記複数のクロスポイント素子の前記第2のグループにマップする、
プログラミング・ロジックを包含する、
請求項4に記載の装置。
【請求項6】
さらに、前記複数のワード・ラインに接続されるワード・ライン・ロジックを包含し、
前記ワード・ライン・ロジックは、
複数の深さ方向畳み込みカーネルを使用して畳み込まれる入力データを受け取り、
前記入力データを表す複数の入力信号を生成し、かつ、
前記複数のクロスポイント素子のうちの前記選択ロジックによって有効にされている1つ以上のクロスポイント素子に前記複数の入力信号を印加する、
請求項2に記載の装置。
【請求項7】
さらに、前記複数のビット・ラインを介して出力される複数の出力信号に基づいてデジタル出力を生成するセンシング・ロジックを包含し、
前記デジタル出力は、前記入力データと前記複数の深さ方向畳み込みカーネルの畳み込みを表す、請求項6に記載の装置。
【請求項8】
前記複数のクロスポイント素子の前記第1のグループは、さらに、前記第3のワード・ラインと第3のビット・ラインとを接続する第5のクロスポイント素子を包含し、
前記複数のクロスポイント素子の前記第2のグループは、さらに、第4のワード・ラインと前記第3のビット・ラインとを接続する第6のクロスポイント素子を包含する、請求項1に記載の装置。
【請求項9】
前記複数の選択ラインは、前記複数のビット・ラインと平行でない、請求項1に記載の装置。
【請求項10】
前記複数の選択ラインは、前記複数のワード・ラインと平行でない、請求項9に記載の装置。
【請求項11】
前記複数のクロスポイント素子のうちの少なくとも1つは、トランジスタおよびメモリスタを包含する、
請求項1に記載の装置。
【請求項12】
前記第1の選択ラインおよび前記第2の選択ラインは、第1の選択レジスタに接続される、請求項1に記載の装置。
【請求項13】
前記第1の選択ラインは、第1の選択レジスタに接続され、前記第2の選択ラインは、第2の選択レジスタに接続される、請求項1に記載の装置。
【請求項14】
複数のカーネルをクロスバー回路の複数のクロスポイント素子にマップすることと、
前記クロスバー回路の複数の選択ラインを介して前記複数のクロスポイント素子を有効にすることと、
前記複数のクロスポイント素子に、前記複数のカーネルを使用して畳み込まれる入力データを表す複数の入力信号を印加することと、
前記クロスバー回路の複数のビット・ラインを介して前記入力データと前記カーネルとの畳み込み結果を表す複数の出力信号を出力することと、
を包含し、
前記複数の選択ラインは、前記複数のクロスポイント素子の第1のグループを接続する第1の選択ラインと、前記複数のクロスポイント素子の第2のグループとを接続する第2の選択ラインとを包含し、
前記複数のクロスポイント素子の前記第1のグループは、第1のワード・ラインと第1のビット・ラインとを接続する第1のクロスポイント素子と、第2のワード・ラインと第2のビット・ラインとを接続する第2のクロスポイント素子とを包含し、
前記複数のクロスポイント素子の前記第2のグループは、前記第2のワード・ラインと前記第1のビット・ラインとを接続する第3のクロスポイント素子と、第3のワード・ラインと前記第2のビット・ラインとを接続する第4のクロスポイント素子とを包含する、
方法。
【請求項15】
前記複数のカーネルを前記クロスバー回路の前記複数のクロスポイント素子にマップすることは、
前記複数のカーネルのうちの第1のカーネルの第1の要素を前記第1のクロスポイント素子にマップすることと、
前記複数のカーネルのうちの第2のカーネルの第1の要素を前記第2のクロスポイント素子にマップすることと、
を包含する、請求項14に記載の方法。
【請求項16】
前記複数のカーネルを前記クロスバー回路の前記複数のクロスポイント素子にマップすることは、さらに、
前記第1のカーネルの第2の要素を前記第3のクロスポイント素子にマップすることと、
前記第2のカーネルの第2の要素を前記第4のクロスポイント素子にマップすることと、
を包含する、請求項15に記載の方法。
【請求項17】
前記複数の選択ラインを介して前記複数のクロスポイント素子を有効にすることは、第1の選択電圧を前記第1の選択ラインに印加して前記複数のクロスポイント素子の前記第1のグループを有効にすることを包含する、請求項14に記載の方法。
【請求項18】
前記複数の選択ラインを介して前記複数のクロスポイント素子を有効にすることは、第2の選択電圧を前記第2の選択ラインに印加して前記複数のクロスポイント素子の前記第2のグループを有効にすることを包含する、請求項14に記載の方法。
【請求項19】
前記複数のクロスポイント素子に、前記複数のカーネルを使用して畳み込まれる前記入力データを表す前記複数の入力信号を印加することは、
前記クロスバー回路の第1のワード・ラインを介して前記第1のクロスポイント素子に第1の入力信号を印加することと、
前記クロスバー回路の第2のワード・ラインを介して前記第2のクロスポイント素子に第2の入力信号を印加することと、
を包含し、
前記第1の入力信号は、前記入力データの第1のチャンネルの第1の部分を表し、前記第2の入力信号は、前記入力データの第2のチャンネルの第2の部分を表す、
請求項14に記載の方法。
【請求項20】
さらに、記憶装置から、連続アドレス内に記憶されている第1のデータ項目および第2のデータ項目を取り出すこと、
を包含し、
前記第1の入力信号は、前記第1のデータ項目を表し、前記第2の入力信号は、前記第2のデータ項目を表す、
請求項19に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
この出願は、2022年10月18日に『Crossbar Circuits For Performing Convolution Operations(畳み込み演算を実行するためのクロスバー回路)』の発明の名称で提出された米国特許出願第17/504,478号に基づき優先権を主張するものであり、当該出願は、その全体が本明細書中で援用される。
【0002】
本開示の実装は、概してクロスバー回路に関し、より具体的には、正規の2D畳み込み演算および深さ方向(depth-wise)畳み込み演算を実行するためのクロスバー回路に関する。
【背景技術】
【0003】
クロスバー回路は、抵抗性スイッチング材料等のメモリ素子を交差部に挟み込む導電ラインの相互接続を伴う回路構造を言うことができる。抵抗性スイッチング材料は、たとえば、メモリスタ(抵抗変化型メモリ(RRAMまたはReRAM)と呼ばれることもある)を含むことができる。クロスバー回路は、インメモリ・コンピューティング応用、不揮発性ソリッド・ステート・メモリ、画像処理応用、ニューラル・ネットワーク等の実装に使用することができる。
【発明の概要】
【課題を解決するための手段】
【0004】
以下は、本開示のいくつかの態様の基本的な理解を提供するための簡略化した本開示の概要である。この概要は、本開示の広範囲にわたる大要ではない。ここには、本開示の鍵となるか、または重要な要素の識別、ないしは本開示の特定の実装の範囲または特許請求の範囲の線引きのいずれも意図されていない。単にこれは、後に提供される、より詳細な説明への序章として本開示のいくつかの概念を簡単な形式で提示することを目的とする。
【0005】
本開示の1つ以上の態様によれば、深さ方向畳み込み演算を実行するための装置が提供される。前記装置は、複数のワード・ラインと複数のビット・ラインを接続する複数のクロスポイント素子と;複数の選択ラインとを含む。前記複数の選択ラインは、前記複数のクロスポイント素子の第1のグループを接続する第1の選択ラインと、前記複数のクロスポイント素子の第2のグループを接続する第2の選択ラインとを含む。前記複数のクロスポイント素子の前記第1のグループは、前記複数のビット・ラインのうちの第1のビット・ラインと前記複数のワード・ラインのうちの第1のワード・ラインを接続する第1のクロスポイント素子と、前記複数のビット・ラインのうちの第2のビット・ラインと前記複数のワード・ラインのうちの第2のワード・ラインを接続する第2のクロスポイント素子とを含む。前記複数のクロスポイント素子の前記第2のグループは、前記第2のワード・ラインと前記第1のビット・ラインを接続する第3のクロスポイント素子と、第3のワード・ラインと前記第2のビット・ラインを接続する第4のクロスポイント素子とを含む。
【0006】
いくつかの実施態様において、さらに前記装置は、前記複数の選択ラインを介して前記複数のクロスポイント素子のうちの1つ以上を選択的に有効にするように構成された選択ロジックを含む。
【0007】
いくつかの実施態様において、さらに前記選択ロジックは、前記第1の選択ラインを介して前記第1の複数のクロスポイント素子を有効にするように構成される。
【0008】
いくつかの実施態様において、さらに前記選択ロジックは、前記第2の選択ラインを介して前記第2の複数のクロスポイント素子を有効にするように構成される。
【0009】
いくつかの実施態様において、さらに前記装置は、前記深さ方向畳み込みカーネルの第1の複数の要素を前記第1の複数のクロスポイント素子にマップし、かつ、前記深さ方向畳み込みカーネルの第2の複数の要素を前記第2の複数のクロスポイント素子にマップするように構成されたプログラミング・ロジックを含む。
【0010】
いくつかの実施態様において、さらに前記装置は、前記複数のワード・ラインに接続されるワード・ライン・ロジックを含み、前記ワード・ライン・ロジックは、複数の深さ方向畳み込みカーネルを使用して畳み込まれる入力データを受け取り、前記入力データを表す複数の入力信号を生成し、かつ、前記複数のクロスポイント素子のうちの前記選択ロジックによって有効にされている1つ以上のクロスポイント素子に前記複数の入力信号を印加するように構成される。
【0011】
いくつかの実施態様において、さらに前記装置は、前記複数のビット・ラインを介して出力される複数の出力信号に基づいてデジタル出力を生成するセンシング・ロジックを含み、前記デジタル出力が、前記入力データと前記複数の深さ方向畳み込みカーネルの畳み込みを表す。
【0012】
いくつかの実施態様において、前記第1の複数のクロスポイント素子は、さらに、前記第3のワード・ラインと第3のビット・ラインを接続する第5のクロスポイント素子を含む。いくつかの実施態様において、前記第2の複数のクロスポイント素子は、さらに、第4のワード・ラインと前記第3のビット・ラインを接続する第6のクロスポイント素子を含む。
【0013】
いくつかの実施態様において、前記複数の選択ラインは、前記複数のビット・ラインと平行でない。
【0014】
いくつかの実施態様において、前記複数の選択ラインは、前記複数のワード・ラインと平行でない。
【0015】
いくつかの実施態様において、前記複数のクロスポイント素子のうちの少なくとも1つは、トランジスタおよびメモリスタを含む。
【0016】
いくつかの実施態様において、前記第1の選択ラインおよび前記第2の選択ラインは、第1の選択レジスタに接続される。
【0017】
いくつかの実施態様において、前記第1の選択ラインは第1の選択レジスタに接続され、前記第2の選択ラインは第2の選択レジスタに接続される。
【0018】
本開示の1つ以上の態様によれば、クロスバー・ベースの装置を使用して深さ方向畳み込みを実行するための方法が提供される。前記方法は、複数のカーネルをクロスバー回路の複数のクロスポイント素子にマップすることと、前記クロスバー回路の複数の選択ラインを介して前記複数のクロスポイント素子を有効にすることと、前記複数のクロスポイント素子に、前記複数のカーネルを使用して畳み込まれる入力データを表す複数の入力信号を印加することと、前記クロスバー回路の複数のビット・ラインを介して前記入力データと前記カーネルの畳み込み結果を表す複数の出力信号を出力することと、を含み、前記複数の選択ラインは、前記クロスポイント素子の第1のグループと前記クロスポイント素子の第2のグループを接続する第1の選択ラインとを含む。前記クロスポイント素子の前記第1のグループは、第1のワード・ラインと第1のビット・ラインを接続する第1のクロスポイント素子と、第2のワード・ラインと第2のビット・ラインを接続する第2のクロスポイント素子とを含む。前記クロスポイント素子の前記第2のグループは、前記第2のワード・ラインと前記第1のビット・ラインを接続する第3のクロスポイント素子と、第3のワード・ラインと前記第2のビット・ラインを接続する第4のクロスポイント素子とを含む。
【0019】
いくつかの実施態様において、前記複数のカーネルは、深さ方向畳み込み演算の実行に使用される複数の深さ方向畳み込みカーネルを含む。
【0020】
いくつかの実施態様において、前記複数のカーネルを前記クロスバー回路の前記複数のクロスポイント素子にマップすることは、前記第1のクロスポイント素子のコンダクタンス値を前記複数のカーネルのうちの第1のカーネルの第1の要素を表す第1の値にプログラムすることと、前記第1のクロスポイント素子のコンダクタンス値を前記複数のカーネルのうちの第2のカーネルの第1の要素を表す第2の値にプログラムすることとを含む。
【0021】
いくつかの実施態様において、前記複数のカーネルを前記クロスバー回路の前記複数のクロスポイント素子にマップすることは、さらに、前記第3のクロスポイント素子のコンダクタンス値を前記第1のカーネルの第2の要素を表す第3の値にプログラムすることと、前記第4のクロスポイント素子のコンダクタンス値を前記第2のカーネルの第2の要素を表す第4の値にプログラムすることとを含む。
【0022】
いくつかの実施態様において、前記複数の選択ラインを介して前記複数のクロスポイント素子を有効にすることは、第1の選択電圧を前記第1の選択ラインに印加して前記クロスポイント素子の前記第1のグループを有効にすることを含む。
【0023】
いくつかの実施態様において、前記複数の選択ラインを介して前記複数のクロスポイント素子を有効にすることは、第2の選択電圧を前記第2の選択ラインに印加して前記クロスポイント素子の前記第2のグループを有効にすることを含む。
【0024】
いくつかの実施態様において、前記複数のクロスポイント素子に、前記複数のカーネルを使用して畳み込まれる前記入力データを表す前記複数の入力信号を印加することは、前記クロスバー回路の第1のワード・ラインを介して前記第1のクロスポイント素子に第1の入力信号を印加することと、前記クロスバー回路の第2のワード・ラインを介して前記第2のクロスポイント素子に第2の入力信号を印加することと、を含み、前記第1の入力信号は、前記入力データの第1のチャンネルの第1の部分を表し、前記第2の入力信号は、前記入力データの第2のチャンネルの第2の部分を表す。
【0025】
いくつかの実施態様において、さらに前記方法は、記憶装置から、連続アドレス内に記憶されている第1のデータ項目および第2のデータ項目を取り出すことを含み、前記第1の入力信号は、前記第1のデータ項目を表し、前記第2の入力信号は、前記第2のデータ項目を表す。
【0026】
本開示のいくつかの実施態様に従って、正規の2D畳み込み演算および深さ方向畳み込み演算を実行するための装置が提供される。前記装置は、第1の複数のクロスポイント素子を含む第1のクロスバー回路と、第2の複数のクロスポイント素子を含む第2のクロスバー回路と、複数のワード・ラインを介して前記第1のクロスバー回路と前記第2のクロスバー回路に接続されるワード・ライン・ロジックとを含む。いくつかの実施態様において、前記ワード・ライン・ロジックが、複数のワード・ラインを介して複数の入力信号を前記第1のクロスバー回路および前記第2のクロスバー回路に提供するように構成される。前記入力信号は、複数の2次元畳み込みカーネルおよび複数の深さ方向畳み込みカーネルを使用して畳み込まれる入力データを表すことができる。
【0027】
さらに前記装置は、前記第1のクロスバー回路に接続される第1の複数のビット・ラインと、前記第2のクロスバー回路に接続される第2の複数のビット・ラインとを包含する。前記第1のクロスバー回路は、前記第1の複数のビット・ラインを介して、前記入力データと前記複数の2次元畳み込みカーネルの畳み込み結果を表す第1の複数の出力信号を出力するように構成される。前記第2のクロスバー回路は、前記第2の複数のビット・ラインを介して、前記入力データと前記複数の深さ方向畳み込みカーネルの畳み込み結果を表す第2の複数の出力信号を出力するように構成される。
【0028】
いくつかの実施態様において、前記第2の複数の出力信号は、第1のビット・ラインを介して出力される第1の出力信号と第2のビット・ラインを介して出力される第2の出力信号とを含む。前記第1の出力信号は、前記入力データの第1のチャンネルと第1の深さ方向畳み込みカーネルの畳み込みを表す。前記第2の出力信号は、前記入力データの第2のチャンネルと第2の深さ方向畳み込みカーネルの畳み込みを表す。
【0029】
いくつかの実施態様において、さらに前記装置は、第1の複数の選択ラインを介して前記第1のクロスバー回路の前記第1の複数のクロスポイント素子のうちの1つ以上を選択的に有効にするように構成された第1の選択ロジックと、第2の複数の選択ラインを介して前記第2のクロスバー回路の前記第2の複数のクロスポイント素子のうちの1つ以上を選択的に有効にするように構成された第2の選択ロジックを包含する。
【0030】
いくつかの実施態様において、前記第2の複数の選択ラインは、前記第2の複数のクロスポイント素子の第1のグループを接続する第1の選択ラインを含む。前記第2の複数のクロスポイント素子の前記第1のグループは、前記複数のビット・ラインのうちの第1のビット・ラインと前記複数のワード・ラインのうちの第1のワード・ラインを接続する第1のクロスポイント素子と、前記複数のビット・ラインのうちの第2のビット・ラインと前記複数のワード・ラインのうちの第2のワード・ラインを接続する第2のクロスポイント素子とを含む。
【0031】
いくつかの実施態様において、前記第2の複数の選択ラインは、前記第2の複数のクロスポイント素子の第2のグループを接続する第2の選択ラインを含む。前記第2の複数のクロスポイント素子の前記第2のグループは、第3のワード・ラインと前記第1のビット・ラインを接続する第3のクロスポイント素子と、第4のワード・ラインと前記第2のビット・ラインを接続する第4のクロスポイント素子とを含む。
【0032】
いくつかの実施態様において、前記第2の選択ロジックは、前記第1の選択ラインに接続される選択レジスタを含む。
【0033】
いくつかの実施態様において、さらに前記選択レジスタは、前記第2の複数の選択ラインのうちの1つ以上のほかの選択ラインに接続される。
【0034】
いくつかの実施態様において、前記第2の選択ロジックは、前記第1の選択ラインに第1の選択電圧を印加することによって前記第2の複数のクロスポイント素子のうちの前記第1のグループを有効にするように構成される。
【0035】
いくつかの実施態様において、前記第2の選択ロジックは、前記第2の選択ラインに第2の選択電圧を印加することによって前記第2の複数のクロスポイント素子のうちの前記第2のグループを有効にするように構成される。
【0036】
いくつかの実施態様において、さらに前記装置は、前記2次元畳み込みカーネルを記憶するべく前記第1の複数のクロスポイント素子のうちの1つ以上をプログラムし、かつ、前記複数の深さ方向畳み込みカーネルを記憶するべく前記第2の複数のクロスポイント素子のうちの1つ以上をプログラムするように構成されたプログラミング回路を含む。
【0037】
いくつかの実施態様において、さらに前記装置は、前記第1の複数の出力信号および前記第2の複数の出力信号に基づいてデジタル出力を生成するセンシング・ロジックを含む。
【0038】
いくつかの実施態様において、前記第2の複数のクロスポイント素子のうちの少なくとも1つは、トランジスタおよびメモリスタを包含する。
【0039】
いくつかの実施態様において、前記第1のワード・ラインと前記第2のワード・ラインの間に少なくとも1つのほかのワード・ラインがある。
【0040】
本開示のいくつかの実施態様に従って、畳み込みを実行するための方法が提供される。前記方法は、クロスバー・ベースの装置のワード・ライン・ロジックを介して、前記クロスバー・ベースの装置の第1のクロスバー回路および第2のクロスバー回路に複数の入力信号を提供することであって、前記複数の入力信号が、複数の2次元畳み込みカーネルおよび複数の深さ方向畳み込みカーネルを使用して畳み込まれる入力データを表すことと、前記第1のクロスバー回路を使用して前記入力データと前記複数の2次元畳み込みカーネルの畳み込み結果を表す第1の複数の出力信号を出力することと、前記第2のクロスバー回路を使用して前記入力データと前記複数の深さ方向畳み込みカーネルの畳み込み結果を表す第2の複数の出力信号を出力することとを含む。
【0041】
いくつかの実施態様において、さらに前記畳み込みを実行するための方法が、前記複数の2次元カーネルを記憶するべく前記第1のクロスバー回路の第1の複数のクロスポイント素子をプログラムすることを含む。
【0042】
いくつかの実施態様において、さらに前記畳み込みを実行するための方法は、前記クロスバー・ベースの装置の第1の複数の選択ラインを介して前記第1のクロスバー回路の前記第1の複数のクロスポイント素子を有効にすることと、前記クロスバー・ベースの装置の第1の複数のビット・ラインを介して前記第1の複数の出力信号を出力することとを含む。
【0043】
いくつかの実施態様において、さらに前記畳み込みを実行するための方法は、前記複数の深さ方向畳み込みカーネルを記憶するべく前記第2のクロスバー回路の第2の複数のクロスポイント素子をプログラムすることを含む。
【0044】
いくつかの実施態様において、さらに前記畳み込みを実行するための方法は、前記クロスバー・ベースの装置の第2の複数の選択ラインを介して前記第2のクロスバー回路の前記第2の複数のクロスポイント素子を有効にすることと、前記クロスバー・ベースの装置の第2の複数のビット・ラインを介して前記第2の複数の出力信号を出力することとを含む。
【0045】
いくつかの実施態様において、前記複数の深さ方向畳み込みカーネルを記憶するべく前記第2のクロスバー回路の前記第2の複数のクロスポイント素子をプログラムすることは、第1のカーネルの第1の要素を記憶するべく第1のクロスポイント素子をプログラムすることであって、前記第1のクロスポイント素子が第1のビット・ラインと第1のワード・ラインを接続することと、第2のカーネルの第1の要素を記憶するべく第2のクロスポイント素子をプログラムすることであって、前記第2のクロスポイント素子が第2のビット・ラインと第2のワード・ラインを接続することとを含む。
【0046】
いくつかの実施態様において、前記第2の複数のクロスポイント素子を有効にすることは、前記第2の複数の選択ラインのうちの第1の選択ラインを介して前記第1のクロスポイント素子および前記第2のクロスポイント素子を有効にすることを含む。
【0047】
本開示は、以下に与えられている詳細な説明から、また本開示の多様な実施態様を示した添付図面からより完全に理解されることになろう。しかしながら、これらの図面は、説明および理解のためのものであり、特定の実施態様に対する本開示の限定として解釈されるべきではない。
【図面の簡単な説明】
【0048】
【
図1】本開示のいくつかの実装に従ったクロスバー・ベースの装置の一例を図解した概略図である。
【
図2】本開示のいくつかの実装に従ったクロスポイント素子の一例を図解した概略図である。
【
図3】本開示のいくつかの実装に従ったクロスバー回路の一例を図示した概略図である。
【
図4A】本開示のいくつかの実施態様に従った深さ方向畳み込み演算を実行するためのクロスバー回路およびマッピング・スキームの一例を図解した概略図である。
【
図4B】本開示のいくつかの実施態様に従った深さ方向畳み込み演算を実行するためのクロスバー回路およびマッピング・スキームの一例を図解した概略図である。
【
図4C】本開示のいくつかの実施態様に従った深さ方向畳み込み演算を実行するためのクロスバー回路およびマッピング・スキームの一例を図解した概略図である。
【
図4D】本開示のいくつかの実施態様に従った深さ方向畳み込み演算を実行するためのクロスバー回路およびマッピング・スキームの一例を図解した概略図である。
【
図4E】本開示のいくつかの実施態様に従った深さ方向畳み込み演算を実行するためのクロスバー回路およびマッピング・スキームの一例を図解した概略図である。
【
図5A】本開示のいくつかの実施態様に従ったクロスバー回路を使用して深さ方向畳み込みを実行するための方法の一例を図解したフローチャートである。
【
図5B】本開示のいくつかの実施態様に従ったクロスバー回路を使用して深さ方向畳み込みを実行するための方法の一例を図解したフローチャートである。
【
図6A】畳み込み演算の一例を図解した説明図である。
【
図6B】畳み込み演算の一例を図解した説明図である。
【
図7A】開示のいくつかの実施態様に従った画像データの記憶に使用することができるデータ構造の一例を図解した説明図である。
【
図7B】開示のいくつかの実施態様に従った画像データの記憶に使用することができるデータ構造の一例を図解した説明図である。
【発明を実施するための形態】
【0049】
本開示の態様は、畳み込み演算を実行するためのクロスバー・ベースの装置およびクロスバー回路、および当該クロスバー・ベースの装置およびクロスバー回路を使用して畳み込み演算を実行するための方法を提供する。
【0050】
クロスバー回路は、機械学習アルゴリズムを実行するニューラル・ネットワークの実装に使用することができる。ニューラル・ネットワークは、2D畳み込み演算、深さ方向畳み込み演算等の多様なタイプの畳み込み演算を実行する複数の畳み込みレイヤを含むことができる。2D畳み込みは、入力データに対して単一の畳み込みカーネルを適用することによって実行することができる。より詳細には、畳み込みカーネルを使用し、その畳み込みカーネルと同じサイズを伴う入力データの各部をスキャンして畳み込み結果を生成することができる。畳み込みカーネルおよび入力データは、同数のチャンネルを有する。たとえば、3×3×3カーネルを使用する3チャンネルの画像に対する2D畳み込みの実行は、3×3×3カーネルを使用した3×3×3のサイズを有する画像の部分に対するスカラー行列乗算の実行を必要とすることがある。別の例として、画像に対する深さ方向畳み込みの実行は、それぞれのカーネルを用いた画像の各チャンネルの畳み込み、および畳み込み出力を重ね合わせることを必要とすることがある。より特定的な例としては、画像に対する深さ方向畳み込みの実行が、3×3カーネルを使用するその例の各チャンネルの畳み込みを必要とすることがある。
【0051】
画像は、メモリ内に3次元配列として記憶することができる。たとえば、画像の各要素を3次元配列によって表すことができ、それにおいて、最後の次元はチャンネル次元(たとえば、高さ値(h)、幅値(w)、およびチャンネル値(c)の配列)を表す。画像の第1のチャンネルの第1の要素、画像の第2のチャンネルの第1の要素、および画像の第3のチャンネルの第1の要素は、それぞれ(h0,w0,c0)、(h0,w0,c1)、および(h0,w0,c2)として表すことができる。画像の第1のチャンネルの第2の要素、画像の第2のチャンネルの第2の要素、および画像の第3のチャンネルの第2の要素は、それぞれ(h1,w0,c0)、(h1,w0,c1)、および(h1,w0,c2)として表すことができる。要素(h0,w0,c0)、(h0,w0,c1)、(h0,w0,c2)、(h1,w0,c0)、(h1,w0,c1)、および(h1,w0,c2)は、メモリの連続するアドレス内に記憶することができる。たとえば、画像を、
図7Aおよび7Bに示されるとおりのデータ構造を利用してメモリ内に記憶することができる。
【0052】
上記のように、同一の画像に対して2D畳み込みおよび深さ方向畳み込みを実行することは、異なるカーネルを使用するその画像の異なる部分の畳み込みを必要とする。たとえば、3×3×3の2D畳み込みカーネルを使用して画像の3×3×3部分の畳み込みを行うために、従来のクロスバー回路は、
図7Aに示されるとおりアドレス710、720、および730に記憶されているデータ項目を取り出すことができる。別の例として、画像の3×3×3部分に対して深さ方向畳み込みを実行するために、従来のクロスバー回路は、第1の3×3カーネルを用いてアドレス711、714、717、721、724、727、731、743、および737内に記憶されているデータ項目の畳み込みを行うことができる。従来のクロスバー回路は、第2の3×3カーネルを用いてアドレス712、715、718、722、725、728、732、735、および738内に記憶されているデータ項目の畳み込みを行うことができる。従来のクロスバー回路は、さらに、第3の3×3カーネルを用いてアドレス713、716、719、723、726、729、733、736、および739内に記憶されているデータ項目の畳み込みを行うことができる。そのため、同一の画像に対して2D畳み込みおよび深さ方向畳み込みを実行するために、従来のクロスバー回路は、異なるメモリ・アクセス・パターンを利用してメモリから画像データを取り出さなければならないことがあり、その結果として低いメモリ・アクセス効率および高い(演算)能力消費を招く。
【0053】
本開示は、2D畳み込み演算および深さ方向畳み込み演算中に効率的なメモリ・アクセスを可能にする2D畳み込みおよび深さ方向畳み込みの両方を実行することができるクロスバー・ベースの装置を提供する。
【0054】
いくつかの実施態様において、クロスバー・ベースの装置が、2D畳み込みを実行するための第1のクロスバー回路および深さ方向畳み込みを実行するための第2のクロスバー回路を含むことができる。第1のクロスバー回路および第2のクロスバー回路のそれぞれは、交差するワード・ラインとビット・ラインを接続するクロスポイント素子を含むことができる。
【0055】
第1のクロスバー回路は、第1の複数の選択ラインを介して第1の選択ロジックに接続することができる。第1の複数の選択ラインのそれぞれは、第1のクロスバー回路の複数のクロスポイント素子を接続することができる。第1の選択ロジックは、第1の複数の選択ラインのうちの1つ以上に接続されたクロスポイント素子を選択的に有効にすることができる。
【0056】
第2のクロスバー回路は、第2の複数の選択ラインを介して第2の選択ロジックに接続することができる。第2の複数の選択ラインのそれぞれは、同じワード・ラインまたはビット・ラインに接続されない第2のクロスバー回路の複数のクロスポイント素子を接続することができる。第2の選択ロジックは、第2の複数の選択ラインのうちの1つ以上に接続されたクロスポイント素子を選択的に有効にすることができる。
【0057】
第1のクロスバー回路および第2のクロスバー回路は、ワード・ラインを介してワード・ライン(WL)ロジックに接続することができる。WLロジックは、クロスバー・ベースの装置と関連付けされた記憶装置(たとえば、入力バッファ)の連続アドレス内に記憶されている画像データを取り出すことができる。WLロジックは、さらに、取り出した画像データに基づいて入力信号(たとえば、電圧信号)を生成し、その入力信号を第1のクロスバー回路および第2のクロスバー回路にワード・ラインを介して印加することができる。
【0058】
第1のクロスバー回路は、2D畳み込み演算を実行するための2D畳み込みカーネルを記憶するべくプログラムすることができる。たとえば、第1のクロスバー回路のクロスポイント素子を、2D畳み込みカーネルを表すコンダクタンス値にプログラムすることができる。入力信号に応答して、第1のクロスバー回路は、画像と2D畳み込みカーネルの畳み込み結果を表す電流信号を出力することができる。
【0059】
第2のクロスバー回路は、深さ方向畳み込み演算を実行するための深さ方向畳み込みカーネルを記憶するべくプログラムすることができる。たとえば、第2のクロスバー回路のクロスポイント素子を、深さ方向畳み込みカーネルを表すコンダクタンス値にプログラムすることができる。入力信号に応答して、第2のクロスバー回路は、深さ方向カーネルの畳み込み結果を表す電流信号を出力することができる。したがって、クロスバー・ベースの装置は、同一のメモリ・アクセス・パターンを利用して2D畳み込みおよび深さ方向畳み込みの両方を実行することができ、これは、クロスバー・ベースの装置を組み込んだニューラル・ネットワークの効率的なメモリ使用を可能にすることができる。
【0060】
図1は、本開示のいくつかの実施態様に従った畳み込み演算を実行するための装置100の一例を図解した概略図である。ここでは、装置100をクロスバー・ベースの装置と呼ぶこともある。装置100は、機械学習アルゴリズムを実行するためのニューラル処理ユニット(NPU)またはNPUの一部とすることができる。
【0061】
図示されるとおり、装置100は、畳み込み演算を実行するための第1のクロスバー回路101および第2のクロスバー回路102を含むことができる。第1のクロスバー回路101および第2のクロスバー回路102のそれぞれは、1つ以上のクロスバー・アレイを含むことができる。クロスバー・アレイのそれぞれは、1つ以上のワード・ライン(WL)111、ビット・ライン(BL)113等の複数の交差するワイヤを含むことができる。さらにクロスバー・アレイは、ワード・ラインとビット・ラインの間の1つ以上の交差部を接続する1つ以上のクロスポイント素子120を含むことができる。j番目のワード・ラインとk番目のビット・ラインを接続するクロスポイント素子を、クロスポイント素子120(j,k)と呼ぶことができる。クロスポイント素子のそれぞれは、メモリスタ、相変化メモリ(PCM)素子、浮遊ゲート素子、スピントロニクス素子、抵抗変化型メモリ(RRAM)、スタティック・ランダム・アクセス・メモリ(SRAM)等のプログラマブル抵抗を備えた素子とすることができる。いくつかの実施態様において、クロスポイント素子120は、1-トランジスタ-1-メモリスタ(1T1M)の回路構造、1-セレクタ-1-抵抗(1S1R)構造、2-抵抗(2R)構造等であることと、それらを含むことの両方またはいずれか一方であってよい。いくつかの実施態様において、1つ以上のクロスポイント素子120は、
図2に関連して説明するとおりのクロスポイント素子200を含むことができる。
【0062】
図1に図解されるとおり、第1のクロスバー回路101および第2のクロスバー回路は、ワード・ライン111(たとえば、WL 111-1、111-2、111-3、111-4等)を介してワード・ライン(WL)ロジック103に接続することができ、またビット・ライン113を介してプログラミング回路104およびセンシング回路105に接続することができる。WLロジック103は、クロスバー回路101および/またはクロスバー回路102に印加される入力信号に入力データを変換するための任意の適切な構成要素を含むことができる。入力信号のそれぞれは、電圧信号、電流信号等とすることができる。いくつかの実施態様において、WLロジック103は、入力データをアナログ信号に変換することができる1つ以上のデジタル・アナログ変換器(DAC)とすることができる。
【0063】
プログラミング回路104は、クロスポイント素子120を適切なコンダクタンス値にプログラムすることができる。たとえば、クロスポイント素子をプログラムすることは、そのクロスポイント素子にわたる適切な電圧信号または電流信号の印加が必要とすることがある。各クロスポイント素子の抵抗は、高抵抗状態と低抵抗状態間で電気的に切り換えることができる。クロスポイント素子をセットすることは、高抵抗状態から低抵抗状態へのクロスポイントの抵抗の切り換えを必要とすることがある。クロスポイント素子をリセットすることは、低抵抗状態から高抵抗状態へのクロスポイントの抵抗の切り換えを必要とすることがある。
【0064】
第1のクロスバー回路101は、選択ライン140を介して第1の選択ロジック106に接続することができる。第2のクロスバー回路102は、選択ライン130を介して第2の選択ロジック107に接続することができる。選択ライン130および140のそれぞれは、任意の適切な導電材料を含むことができる。いくつかの実施態様において、各選択ライン130および140は金属ワイヤとすることと、それを含むことの両方またはいずれか一方であってよい。適切な電圧(ここでは、選択電圧と呼ぶこともある)が所与の選択ライン130に印加されている間は、その選択ライン130に接続されているクロスポイント素子を有効にすることができる。第1の選択ロジック106は、1つ以上の選択ライン140を介して第1のクロスバー回路101の1つ以上のクロスポイント素子を選択的に(たとえば、1つ以上の選択ライン140に選択電圧を印加することによって)有効にすることができる。第2の選択ロジック107は、1つ以上の選択ライン130を介して第2のクロスバー回路102の1つ以上のクロスポイント素子を選択的に(たとえば、1つ以上の選択ライン130に選択電圧を印加することによって)有効にすることができる。
【0065】
センシング回路105は、ビット・ライン113を通って流れる電流に基づいて出力信号を生成することができる。いくつかの実施態様において、センシング回路105は、電流をデジタル出力に変換するための任意の適切な構成要素を含むことができる。たとえば、センシング回路105は、複数のアナログ・デジタル変換器(ADC)(図示せず)を含むことができる。ADCのそれぞれは、それぞれのビット・ラインを通って流れる電流をデジタル出力に変換することができる。いくつかの実施態様において、入力信号が電圧信号Vを含むことができる。出力信号は、電流信号Iを含むことができる。入力信号と出力信号間の関係は、I=VGとして表すことができ、それにおいて、Gは、クロスポイント素子120のコンダクタンス値を表す。そのため、入力信号は、オームの法則に従ってクロスポイント素子のそれぞれにおいて、それのコンダクタンスによって重み付けされる。重み付けされた電流は、各ビット・ラインを介して出力され、キルヒホッフの電流法則に従って積算することができる。
【0066】
クロスバー回路101および102のそれぞれは、ベクトル行列の乗算(VMM)を実行するように構成することができる。VMM演算は、Y=XAとして表すことができ、それにおいて、Y、X、Aのそれぞれは、それぞれの行列を表す。より詳細には、たとえば、入力ベクトルXを、クロスバー回路101および/または102の入力電圧Vにマップすることができる。行列Aは、コンダクタンス値Gにマップすることができる。出力電流Iは読み出して、出力結果Yにマップし戻すことができる。
【0067】
いくつかの実施態様において、第1のクロスバー回路101および第2のクロスバー回路102は、異なるタイプの畳み込み演算を実行することができる。たとえば、第1のクロスバー回路101は、2D畳み込み演算を実行することができる。第2のクロスバー回路102は、深さ方向畳み込みを実行することができる。
【0068】
入力データに対する2D畳み込みの実行は、その入力データに対する単一の畳み込みカーネルの適用を必要とすることがある。畳み込みカーネルは、複数の次元(たとえば、幅、高さ、チャンネル等)によって定義される特定のサイズを有することができる。畳み込みカーネルを、入力データのその畳み込みカーネルと同じサイズを有する部分に適用して出力を生成することができる。出力は、入力データのその部分の位置に対応する位置にある畳み込み結果の要素にマップすることができる。
【0069】
たとえば、
図6Aに示されるとおり、カーネル620を使用して画像610に対する2D畳み込みを実行し、出力画像630を生成することができる。画像610は、第1のチャンネル610a、第2のチャンネル610b、および第3のチャンネル610cを含むことができる。画像610のサイズは、幅(w)、高さ(h)、およびチャンネル(c)によって定義することができる。一例として、画像610のサイズを7×7×3とすることができる。カーネル620のサイズは、3×3×3とすることができる。カーネル620を、画像610の第1の部分611に適用することができる。図示されるとおり、第1の部分611のサイズは、カーネル620のサイズと同じである。カーネル620による第1の部分611のスカラー乗算を行って出力画像の第1の要素631を獲得することができる。カーネル620を使用して画像610の複数の3×3×3サイズの部分のそれぞれをスキャンし、出力画像630の要素を生成することができる。いくつかの実施態様において、画像610内の5×5×1のその種の部分にカーネル620を適用し、5×5×1の出力画像630を生成することができる。
【0070】
画像610の要素は、高さ値、幅値、およびチャンネル値の3次元配列によって定義することができる。たとえば、
図6Aに示されるとおり、画像610の第1の部分611を、3つのチャンネル611a、611b、および611cの画像として考えることができる。チャンネル611a、611b、および611cの画像のそれぞれは、
図6Aに示されるとおり、多様な幅(w)値、高さ(h)値、およびチャンネル(c)値によって定義される9つの要素を含むことができる。画像610は、
図7A-7Bに図解されているデータ構造を利用して3次元配列として記憶装置内に記憶することができる。
【0071】
入力データに対する深さ方向畳み込みの実行は、入力データの各チャンネルの、そのチャンネルに対応するそれぞれのカーネルを用いた畳み込み、および畳み込み出力を重ね合わせることを必要とすることがある。たとえば、画像610に対する深さ方向畳み込みの実行は、カーネル621、623、および625のそれぞれを使用する画像610の各チャンネルの畳み込みを必要とすることがある。カーネル621、623、および625のそれぞれは、
図6Aのカーネル620のチャンネルに対応させることができる。カーネル621を用いた画像610のチャンネル611aの畳み込みは、同じ位置にある画像610のチャンネル611aの要素とカーネル621の要素間の要素ごとの乗算の実行を必要とすることがある。カーネル621を使用する画像610の第1のチャンネル611aの畳み込みは、出力641を生成することができる。カーネル623を使用する画像610の第2のチャンネル611bの畳み込みは、出力643を生成することができる。カーネル625を使用する画像610の第3のチャンネル611cの畳み込みは、出力645を生成することができる。出力641、643、および645は、出力640として重ね合わせることができる。その後、出力640に対し、1×1×3カーネル650を使用してポイントごとの畳み込みを実行し、出力画像630を生成することができる。
【0072】
図1に戻って参照するが、WLロジック103は、装置100と関連付けされた記憶装置からクロスバー回路101および/または102によって処理される入力データを取り出すことができる。記憶装置は、いくつかの実施態様において入力バッファとすることができる。WLロジック103は、入力データをベクトルに変換することができ、さらに、そのベクトルを表す入力信号を生成することができる。入力信号は、1つ以上のワード・ライン111を介してクロスバー回路101および/または102に印加することができる。
【0073】
いくつかの実施態様において、111-1、111-2、111-3、・・・、111-nを介して第1のクロスバー回路および第2のクロスバー回路に印加される入力信号は、記憶装置の連続アドレス内に記憶されたデータに対応させることができる。たとえば、
図6A-6Bの画像610の第1の部分611に対して畳み込みを実行するために、WLロジック103は、
図7Aに示されるとおりの記憶装置のアドレス710、720、および/または730内に記憶されている画像610の第1の部分611の画像データを取り出すことができる。
【0074】
より詳細には、たとえば、記憶装置の1番目のアドレス711内に記憶されている1番目のデータ項目を第1のクロスバー回路および第2のクロスバー回路に、ワード・ライン111aを介して適用することができる。記憶装置の2番目のアドレス712内に記憶されている2番目のデータ項目は、ワード・ライン111bを介して第1のクロスバー回路および第2のクロスバー回路に印加される2番目の入力信号と対応させることができる。記憶装置の3番目のアドレス713内に記憶されている3番目のデータ項目は、ワード・ライン111cを介して第1のクロスバー回路および第2のクロスバー回路に印加される3番目の入力信号と対応させることができる。記憶装置のi番目のアドレス内に記憶されているi番目のデータ項目は、111iを介して第1のクロスバー回路および第2のクロスバー回路に適用することができる。1番目のアドレス、2番目のアドレス、・・・、i番目のアドレス等は、連続であるとすることができる。
【0075】
プログラミング回路104は、2D畳み込み演算を実行するための2D畳み込みカーネルを記憶するべく第1のクロスバー回路101をプログラムすることができる。たとえば、2D畳み込みカーネルをベクトルに変換し、所与のビット・ラインに接続される第1のクロスバー回路の複数のクロスポイント素子にマップすることができる。特に、クロスポイント素子のコンダクタンス値を、2D畳み込みカーネルを表す値にプログラムすることができる。第1のクロスバー回路101は、入力信号に応答して画像と2D畳み込みカーネルの畳み込みを表す電流信号を所与のビット・ラインを介して出力することができる。いくつかの実施態様において、第1のクロスバー回路101が、それぞれのビット・ラインに接続されたクロスポイント素子に対して2D畳み込みカーネルのそれぞれをマップすることによって複数の2D畳み込みカーネルを記憶することができる。第1のクロスバー回路101は、第1の複数のビット・ライン113aを介して畳み込み結果を表す複数の出力信号(たとえば、電流信号)を出力することができる。
【0076】
プログラミング回路104は、深さ方向畳み込み演算を実行するための深さ方向畳み込みカーネルを記憶するべくプログラムすることができる第2のクロスバー回路102をプログラムすることができる。たとえば、第2のクロスバー回路のクロスポイント素子を、深さ方向畳み込みカーネルを表すコンダクタンス値にプログラムすることができる。入力信号に応答して、第2のクロスバー回路は、第2の複数のビット・ライン113bを介して深さ方向畳み込み演算の畳み込み結果を表す電流信号を出力することができる。いくつかの実施態様において、
図3-4Dに関連して説明するとおり、クロスバー回路102は1つ以上のクロスバー回路を含むことができる。
【0077】
図2は、本開示のいくつかの実施態様に従った一例のクロスポイント素子200を図解した概略図である。図示されとおり、クロスポイント素子200は、ビット・ライン(BL)211、選択ライン(SEL)213、およびワード・ライン(WL)215に接続することができる。ビット・ライン211、選択ライン213、およびワード・ライン215は、それぞれ、
図1に関連して説明されるとおりのビット・ライン113、選択ライン130または140、およびワード・ライン111とすることができる。
【0078】
クロスポイント素子200は、RRAM素子201およびトランジスタ203を含むことができる。トランジスタは、3端子素子であり、それぞれをゲート(G)、ソース(S)、およびドレイン(D)としてマークすることができる。トランジスタ203は、RRAM素子201と直列に接続することができる。
図2に示されるとおり、RRAM素子201の第1の電極をトランジスタ203のドレインと接続することができる。RRAM素子201の第2の電極は、ビット・ライン211と接続することができる。トランジスタ203のソースは、ワード・ライン215と接続することができる。トランジスタ203のゲートは、選択ライン213と接続することができる。RRAM素子201は、
図3A-5Bに関連して以下に説明されるとおり、1つ以上のRRAM素子を含むことができる。またクロスポイント素子200は、1-トランジスタ-1-抵抗(1T1R)構成であると言うこともできる。トランジスタ203は、セレクタをはじめ電流コントローラとしての役を果たすことができ、プログラミング中にRRAM素子201に対して電流コンプライアンスを設定することができる。トランジスタ203のゲート電圧は、プログラミング中にクロスポイント素子200に対して電流コンプライアンスを設定することが可能であり、したがって、クロスポイント素子200のコンダクタンスおよびアナログ的挙動をコントロールすることが可能である。たとえば、クロスポイント素子200を高抵抗状態から低抵抗状態にセットするとき、ビット・ライン(BL)211を介してセット信号(たとえば、電圧信号、電流信号)を提供することができる。選択電圧またはゲート電圧とも呼ばれる別の電圧を、選択ライン(SEL)213を介してトランジスタのゲートに印加してゲートを開き、電流コンプライアンスを設定することができ、その間、ワード・ライン(WL)215は、グラウンドに設定することができる。クロスポイント素子200を低抵抗状態から高抵抗状態にリセットするときには、選択ライン213を介してトランジスタ203のゲートにゲート電圧を印加し、トランジスタのゲートを開くことができる。一方、ワード・ライン215を介してリセット信号をRRAM素子201へ送ることができ、その間、ビット・ライン211は、グラウンドに設定することができる。
【0079】
図3は、深さ方向畳み込み演算を実行することができる一例のクロスバー回路300を図解した説明図である。クロスバー回路300は、
図1に関連して説明されるとおりのクロスバー回路102とすることができる。
【0080】
図示されるとおり、クロスバー回路300は、ワード・ライン111、ビット・ライン113、クロスポイント素子120、選択ライン130(たとえば、選択ライン130-1、130-2等)を含むことができる。いくつかの実施態様において、選択ラインの数n-m+1とすることができ、それにおいてnおよびmは、それぞれワード・ライン111の数およびビット・ライン113の数を参照する。
【0081】
いくつかの実施態様において、各選択ライン130は、ビット・ラインないしはワード・ラインのいずれも共有しない複数のクロスポイント素子(たとえば、異なる行および異なる列にあるクロスポイント素子)を電気的に接続することができる。選択ライン130は、いくつかの実施態様において、ビット・ライン113またはワード・ライン111と平行にならない。たとえば、選択ライン130-1は、第1のクロスポイント素子120(1,1)、第2のクロスポイント素子120(2,2)、第3のクロスポイント素子120(3,3)等を接続することができる。第1のクロスポイント素子120(1,1)は、第1のワード・ライン111-1と第1のビット・ライン113-1を接続することができる。第2のクロスポイント素子120(2,2)は、第2のワード・ライン111-2と第2のビット・ライン113-2を接続することができる。第3のクロスポイント素子120(3,3)は、第3のワード・ライン111-3と第3のビット・ライン113-3を接続することができる。そのため、第1のクロスポイント素子、第2のクロスポイント素子、および第3のクロスポイント素子は、同一のワード・ラインまたは同一のビット・ラインに接続されない。別の例として、選択ライン130-2は、クロスポイント素子120(2,1)、120(3,2)、・・・、120((m+1),m)を接続することができる。
【0082】
適切な電圧を所与の選択ライン130に印加している間は、その選択ライン130に接続されているクロスポイント素子を有効にすることができる。選択ライン130のうちの1つ以上によって有効にすることができるクロスポイント素子は、本明細書中で『有効セル』とも呼ばれる。選択ライン130によって有効にすることができないクロスポイント素子は、本明細書中で『ダミーセル』とも呼ばれる。ダミーセルは、クロスバー回路300が深さ方向畳み込み演算を実行するときに機能しない。1つの実装において、ダミーセルは選択ラインに接続されない。別の実装において、ダミーセルは1つ以上の選択ライン(図示せず)に接続されるが、畳み込み演算中に有効になることがない。さらなる実装において、クロスバー回路300はダミーセルを含まない。図示されるとおり、有効セルは、いくつかの実施態様において平行四辺形の形状を形成することができる。
【0083】
入力データ(たとえば、1つ以上の画像)に対して深さ方向畳み込み演算を実行するために、クロスバー回路300は、その入力データに対応する1つ以上の行列と深さ方向畳み込みカーネルに対応する1つ以上の行列の行列乗算を計算することができる。入力データは、複数のチャンネルを有することができる。深さ方向畳み込みカーネルは、複数の2次元カーネルに分割することができる。2次元カーネルのそれぞれは、入力データのそれぞれのチャンネルの畳み込みに使用することができる。カーネルの要素は、クロスバー回路300のクロスポイント素子に、そのカーネルのその要素の値に対応する値にそのクロスポイント素子のコンダクタンスをプログラムすることによってマップすることができる。クロスポイント素子は、
図4A-4Eに関連して以下に説明されている1つ以上のマッピング・スキームを利用して深さ方向畳み込みカーネルを記憶するべくプログラムすることができる。
【0084】
一例として、カーネルを使用する入力データの第1のチャンネルの畳み込みは、第1の画像の第1のチャンネルを表す第1の行列とカーネルを表す第2の行列の行列乗算の計算を必要とすることがある。クロスバー回路300は、クロスポイント素子のコンダクタンス値がカーネルの要素の値を表すことができるようにクロスポイント素子をプログラムすることが(たとえば、コンダクタンス値に対応するプログラミング信号を使用してクロスポイント素子をプログラムすることによって)できる。第1の行列は、第1の行列の部分を表す複数のベクトルに変換することができる。クロスバー回路300は、そのベクトルを表す複数の入力信号を受け取ることができる。ワード・ラインを介してその入力信号がクロスバー回路300に印加されたとき、オームの法則によって各クロスポイント素子を通る電流が、そのコンダクタンスと、そのクロスポイント素子に接続されているワード・ラインに印加された対応する電圧の積になる。キルヒホッフの電流法則によって、同一のビット・ラインに接続されている各クロスポイント素子からの電流が積算される。各ビット・ラインからの出力電流は、乗算-積算演算結果、および入力データの第1のチャンネルとカーネルの畳み込みを表す。
【0085】
クロスバー回路300は、
図4A-4Eに関連して以下に説明されているカーネル・マッピング・スキームを利用して複数の深さ方向畳み込み演算を並列に実行することができる。
【0086】
図4Aは、本開示のいくつかの実施態様に従った深さ方向畳み込み演算を実行するための一例のクロスバー回路400aを図解している。クロスバー回路400aは、
図3に関連して説明されるとおりのクロスバー回路300とすることと、それを含むことの両方またはいずれか一方であってよい。
【0087】
図示されるとおり、クロスバー回路400aは、複数のワード・ライン(たとえば、ワード・ライン401、403、405)と複数のビット・ライン(ビット・ライン407-1、407-2、407-3、・・・、407-m)を接続する複数のクロスポイント素子420(たとえば、420(1,1)、420(2,2)等)を含むことができる。クロスポイント素子420(j,k)は、j番目のワード・ラインとk番目のビット・ラインを接続するクロスポイント素子を参照することができる。クロスバー回路400aは、さらに、クロスポイント素子420のうちの1つ以上を選択的に有効にするための選択ラインを含むことができる。たとえば、第1の選択ライン430-1は、クロスバー回路400aの第1のグループのクロスポイント素子(たとえば、クロスポイント素子420(1,1)、420(2,2)、420(3,3)、・・・、420(m,m))を接続することができる。第2の選択ライン430-2は、クロスバー回路400aの第2のグループのクロスポイント素子(たとえば、クロスポイント素子420(m+1、1)、420(m+2、2)、420(m+3、3)、・・・、420(m+m、m))を接続することができる。第iの選択ライン430-iは、クロスバー回路400aの第iのグループのクロスポイント素子(たとえば、クロスポイント素子420(2m+i-1、1)、420(2m+i、2)、420(2m+i+1、3)、・・・、420(3m+i-1、m))を接続することができる。
図4Aに示されているクロスポイント素子、ワード・ライン、ビット・ライン、および選択ラインは、
図1-3におけるそれらの対応部分と同じであってよい。
【0088】
クロスバー回路400aは、複数のカーネルを記憶して深さ方向畳み込み演算を並列に実行することができる。カーネルのそれぞれは、入力データのそれぞれのチャンネルの部分の畳み込みに使用することができる。同じ位置(たとえば、同じ幅および同じ高さによって定義される位置)にあるカーネルの要素を、同じ選択ラインに接続されているクロスポイント素子にマップすることができる。所与のカーネルの要素は、同じビット・ラインに接続されている複数のクロスポイント素子にマップすることができる。たとえば、各カーネルの第1の要素を、第1の選択ラインに接続されているクロスポイント素子にマップすることができる。より詳細には、たとえば、第1のカーネルの第1の要素、第2のカーネルの第1の要素、第3のカーネルの第1の要素、・・・、および第mのカーネルの第1の要素を、それぞれクロスポイント素子420(1,1)、420(2,2)、420(3,3)、・・・、および420(m,m)にマップすることができる。別の例として、各カーネルの第2の要素を、第2の選択ライン430-2に接続されているクロスポイント素子にマップすることができる。より詳細には、たとえば、第1のカーネルの第2の要素、第2のカーネルの第2の要素、第3のカーネルの第2の要素、・・・、および第mのカーネルの第2の要素を、それぞれクロスポイント素子420(m+1、1)、420(m+2、2)、420(m+3、3)、・・・、420(m+m、m)にマップすることができる。別の例として、各カーネルの第iの要素を、第iの選択ライン430-iに接続されているクロスポイント素子(たとえば、クロスポイント素子420(2m+i-1、1)、420(2m+i、2)、420(2m+i+1、3)、・・・、420(3m+i-1、m))にマップすることができる。
【0089】
1つの実装において、ワード・ライン401-mと403-1が互いに隣接する。たとえば、選択ライン430-1と430-2は、それぞれ、
図4Cの選択ライン434-1および434-2に対応することができる。別の実装において、ワード・ライン401-mと403-1が互いに隣接しない。ワード・ライン401-mと403-1の間には、1つ以上のほかのワード・ライン(図示せず)が位置決めされる。たとえば、選択ライン430-1および430-2は、それぞれ、
図4Bの選択ライン431-1および432-1に対応することができる。同様にワード・ライン403-mおよび405-1は、互いに隣接する、または隣接しないとすることができる。
【0090】
クロスバー回路は、m個の深さ方向畳み込み演算を並列に実行することができる。深さ方向畳み込み演算のそれぞれは、入力データの部分とi個の要素を有するカーネルの畳み込みを生成することができる。たとえば、第1の選択ライン、第2の選択ライン、・・・、および第iの選択ラインを(たとえば、選択ラインのそれぞれに適切な電圧を印加することによって)選択することができる。第1の選択ライン、第2の選択ライン、・・・、および第iの選択ラインに接続されているクロスポイント素子を、したがって、有効にすることができる。畳み込まれる入力データを表す入力信号を、有効にされたクロスポイント素子に接続されているワード・ラインを介して有効にされたクロスポイント素子に印加することができる。たとえば、入力信号411-1、411-2、411-3、・・・、411-mを、それぞれ、ワード・ライン401-1、401-2、401-3、・・・、401-mを介して第1のグループのクロスポイント素子に印加することができる。入力信号413-1、413-2、413-3、・・・、413-mを、それぞれ、ワード・ライン403-1、403-2、403-3、・・・、403-mを介して第2のグループのクロスポイント素子に印加することができる。入力信号415-1、415-2、415-3、・・・、415-mを、それぞれ、ワード・ライン405-1、405-2、405-3、・・・、405-mを介して第3のグループのクロスポイント素子に印加することができる。入力信号411-1、411-2、・・・、411-mは、第1の幅値(たとえば、w0)に対応する入力データの部分に対応することができる。入力信号413-1、413-2、・・・、413-mは、第2の幅値(たとえば、w1)に対応する入力データの第2の部分に対応することができる。入力信号415-1、415-2、・・・、415-mは、第3の幅値(たとえば、w2)に対応する入力データの第3の部分に対応することができる。入力信号411-1、413-1、415-1は、入力データの第1のチャンネル(たとえば、c0)に対応することができる。入力信号411-2、413-2、415-2は、入力データの第2のチャンネル(たとえば、c1)に対応することができる。入力信号411-3、413-3、415-3は、入力データの第3のチャンネル(たとえば、c2)に対応することができる。一例として、入力信号411、413、および415は、それぞれ、
図7のアドレス710、720、および730内に記憶されているデータ項目を表すことができる。より詳細には、たとえば、入力信号411-1、411-2、・・・、411-mは、記憶装置の連続するアドレス711、713、・・・、719内に記憶されているデータ項目を表すことができる。
【0091】
ビット・ライン417(たとえば、ビット・ライン417-1、417-2、417-3、・・・、および417-m)を介して出力される積算された電流は、入力データのチャンネルとそのビット・ラインに接続されているクロスポイント素子にマップされたカーネルの畳み込みを表すことができる。たとえば、第1の出力信号、第2の出力信号、第3の出力信号、・・・、第mの出力信号を、それぞれ、ビット・ライン417-1、417-2、417-3、・・・、および417-mを介して出力することができる。第1の出力信号は、入力データの第1のチャンネルと第1のカーネルの畳み込みを表すことができる。第2の出力信号は、入力データの第2のチャンネルと第2のカーネルの畳み込みを表すことができる。
【0092】
図4Bを参照するが、クロスバー回路400bは、第1の複数のクロスポイント素子421を接続する第1のグループの選択ライン431、第2の複数のクロスポイント素子422を接続する第2のグループの選択ライン432、・・・、および第iのグループのクロスポイント素子423を接続する第iのグループの選択ライン433を含むことができる。選択ライン431、432、および433のそれぞれは、
図4Aに関連して説明されるとおりの選択ライン430であるとすることができる。複数のクロスポイント素子421、422、および423のうちの各クロスポイント素子は、
図4Aに関連して説明されるとおりのクロスポイント素子420であるとすることができる。選択ラインのグループのそれぞれは、特定の数の選択ラインを含むことができる。異なる選択ラインのグループ(たとえば、選択ラインのグループ431と432)が有する選択ラインの数は、同じとすることができるか、または同じでないとすることができる。
【0093】
クロスバー回路400bは、複数のカーネルを使用する複数の深さ方向畳み込み演算を並列に実行するように、また複数のグループのカーネルを順次に使用して深さ方向畳み込み演算を実行するように構成することができる。たとえば、第1の複数のカーネルのそれぞれの第1の要素を、選択ライン431-1に接続されているクロスポイント素子にマップすることができる。第1の複数のカーネルのそれぞれの第2の要素を、選択ライン432-1に接続されているクロスポイント素子にマップすることができる。第1の複数のカーネルのそれぞれの第iの要素を、選択ライン433-1に接続されているクロスポイント素子にマップすることができる。第2の複数のカーネルのそれぞれの第1の要素、第2の要素、・・・、第iの要素は、それぞれ、選択ライン431-2、432-2、・・・、および433-2に接続されているクロスポイント素子にマップすることができる。第nの複数のカーネルのそれぞれの第1の要素、第2の要素、・・・、第iの要素は、それぞれ、選択ライン431-N、432-N、・・・、および433-Nに接続されているクロスポイント素子にマップすることができる。第1の複数のカーネル、第2の複数のカーネル、および第3の複数のカーネルの各カーネルは、深さ方向畳み込み演算の実行に使用される深さ方向畳み込みカーネルとすることができる。
【0094】
第1の複数のカーネルを使用して深さ方向畳み込み演算を実行するために、選択ラインのグループのそれぞれの第1の選択ライン(たとえば、選択ライン431-1、432-1、・・・、433-1)を選択、そのほかの選択ラインを非選択とすることができる。たとえば、選択ラインのグループのそれぞれの第1の選択ラインに適切な選択電圧を印加することができる。したがって、選択ラインのグループの第1の選択ラインに接続されたクロスポイント素子を有効にすることができる。第1の複数のカーネルを使用して畳み込まれる第1の入力データを表す第1の入力信号を有効にされているクロスポイント素子に、それらの有効にされているクロスポイント素子に接続されているワード・ライン(図示せず)を介して印加することができる。
【0095】
別の例としては、第2の複数のカーネルを使用して深さ方向畳み込み演算を実行するために、選択ラインのグループのそれぞれの第2の選択ライン(たとえば、選択ライン431-2、432-2、・・・、433-2)を選択することができる。したがって、選択ライン431-2、432-2、・・・、433-2に接続されているクロスポイント素子を有効にすることができる。第2の複数のカーネルを使用して畳み込まれる第2の入力データを表す第2の入力信号を有効にされているクロスポイント素子に、それらの有効にされているクロスポイント素子に接続されているワード・ライン(図示せず)を介して印加することができる。
【0096】
図4Cは、本開示のいくつかの実施態様に従った一例のクロスバー回路400cを図解している。
【0097】
図示されるとおり、クロスバー回路400cは、クロスポイント素子のグループ424、425、・・・、426、および選択ロジック460aを含むことができる。クロスポイント素子のグループ424、425、・・・、426は、それぞれ、選択ライン434、435、および436を介して選択ロジック460aに接続することができる。選択ライン434、435、および436のそれぞれは、
図4Aの選択ライン430であることと、それを含むことの両方またはいずれか一方であってよい。クロスポイント素子のグループ424、425、・・・、426の各クロスポイント素子は、上に
図4Aに関連して説明されるとおりの複数のクロスポイント素子420を含むことができる。クロスバー・アレイ424内のクロスポイント素子は、選択ライン434を介して選択ロジック460aの第1の部分461に接続することができる。クロスバー・アレイ425内のクロスポイント素子は、選択ライン435を介して選択ロジック460aの第2の部分463に接続することができる。クロスバー・アレイ426内のクロスポイント素子は、選択ライン436を介して選択ロジック460aの第3の部分465に接続することができる。選択ロジック460aは、選択レジスタ461-1、461-2、461-3、461-4、461-5、461-6、・・・、461-N、463-1、463-2、463-3、463-4、463-5、463-6、・・・、463-N、465-1、465-2、465-3、465-4、465-5、465-6、・・・、および465-Nを含むことができる。図示されるとおり、選択ライン434、435、および436のそれぞれは、選択ロジック460aのそれぞれの選択レジスタに接続することができる。同じ選択ラインに接続されているクロスポイント素子は、畳み込み演算の実行のために同時に有効にし、使用することができる。選択ライン434、435、および436のそれぞれは、特定の数のクロスポイント素子に接続することができる。クロスバー回路400cのうちの1つの選択ラインに接続されるクロスポイント素子の数は、クロスバー回路400cが並列に実行することができる畳み込み演算の数に対応させることができる。
【0098】
深さ方向畳み込みカーネルは、深さ方向畳み込み演算を実行するためにクロスバー回路400cの1つ以上のクロスポイント素子にマップすることができる。たとえば、
図4Bに関連して説明されるとおり、第1の複数のカーネル、第2の複数のカーネル、および第3の複数のカーネルを、それぞれ、クロスポイント素子424、425、および426にマップすることができる。第1の複数のカーネルを使用して深さ方向畳み込み演算を実行するために、クロスバー回路400cは、選択ライン434を介してクロスポイント素子424を有効にすることができる。第1の複数のカーネルを使用して畳み込まれる第1の入力データを表す第1の入力信号を、有効にされているクロスポイント素子424に印加することができる。これらの入力信号のそれぞれは、第1の入力データの部分を表す電圧信号とすることができる。ビット・ライン417-1、417-2、・・・、417-mを介して生成された出力は、第1の入力データと第1の複数のカーネルの畳み込み結果を表すことができる。
【0099】
第2の複数のカーネルを使用して深さ方向畳み込み演算を実行するために、クロスバー回路400cは、選択ライン435を介してクロスポイント素子425を有効にすることができる。第2の複数のカーネルを使用して畳み込まれる第2の入力データを表す第2の入力信号を、有効にされているクロスポイント素子425に印加することができる。第2の入力信号のそれぞれは、第2の入力データの部分を表す電圧信号とすることができる。ビット・ライン417-1、417-2、・・・、417-mを介して生成された出力は、第2の入力データと第2の複数のカーネルの畳み込み結果を表すことができる。
【0100】
クロスバー回路400cは、任意の適切なサイズのカーネルを使用して深さ方向畳み込み演算を実行することができる。一例として、クロスポイント素子のグループ424、425、426のそれぞれは、8つのカーネルを記憶することができ、かつ8つの異なるチャンネルによりこれらの8つのカーネルを使用して入力データの畳み込みを並列に行うことができる。クロスポイント素子のグループ424、425、426のそれぞれは、クロスバー・アレイと呼ばれることもある。クロスバー回路400cは、3つのチャンネルの入力データに対して深さ方向畳み込み演算を実行することができる。3つの深さ方向畳み込みカーネルをクロスバー回路400cにマップし、それぞれ、第1のチャンネルの入力データ、第2のチャンネルの入力データ、および第3のチャンネルの入力データの畳み込みを行うことができる。深さ方向畳み込みカーネルのサイズ(たとえば、幅の次元と高さの次元によって定義される)は、同じであるとすることができる。一例として、第1のカーネル、第2のカーネル、および第3のカーネルのそれぞれを、3の幅および3の高さを有する3×3カーネルとすることができる。
【0101】
いくつかの実施態様において、クロスバー回路400cは、3の幅および3の高さを有する3×3の深さ方向カーネルを使用して入力データに対して深さ方向畳み込み演算を実行することができる。たとえば、クロスバー回路400cは、第1の3×3カーネル、第2の3×3カーネル、および第3の3×3カーネルを、それらのカーネルの要素を表す値にクロスバー回路400cのクロスポイント素子のコンダクタンスを設定することによって記憶することができる。たとえば、第1のカーネルの第1の要素、第2のカーネルの第1の要素、および第3のカーネルの第1の要素を、それぞれ、クロスポイント素子420(1,1)、420(2,2)、および420(3,3)にマップすることができる。第1のカーネルの第1の要素、第2のカーネルの第1の要素、および第3のカーネルの第1の要素は、第1の幅値(たとえば、w0)および第1の高さ値(たとえば、h0)によって定義することができる。第1のカーネルの第2の要素、第2のカーネルの第2の要素、および第3のカーネルの第2の要素は、それぞれ、クロスポイント素子420(4,1)、420(5,2)、および420(6,3)にマップすることができる。第1のカーネルの第2の要素、第2のカーネルの第2の要素、および第3のカーネルの第2の要素は、第1の幅値(たとえば、w0)および第2の高さ値(たとえば、h1)によって定義することができる。第1のカーネルの第3の要素は、クロスポイント素子420(7,1)にマップすることができる。第2のカーネルの第3の要素は、クロスポイント素子420(8,2)にマップすることができる。第3のカーネルの第3の要素は、クロスポイント素子420(9,3)にマップすることができる。第1のカーネルの第3の要素、第2のカーネルの第3の要素、および第3のカーネルの第3の要素は、第1の幅(たとえば、w0)および第3の高さ(たとえば、h2)によって定義することができる。
【0102】
第1のカーネル、第2のカーネル、および第3のカーネルの残りの要素は、類似の態様でクロスバー回路400cにマップすることができる。たとえば、第1のカーネルの第iの要素、第2のカーネルの第iの要素、および第3のカーネルの第iの要素を、第iの選択ラインによって接続されている3つのクロスポイント素子にマップすることができる。第1のカーネル(w2h2c0)の第9の要素は、クロスポイント素子420(27,1)(図示せず)にマップすることができる。第2のカーネル(w2h2c1)の第9の要素は、クロスポイント素子420(28,2)(図示せず)にマップすることができる。第3のカーネル(w2h2c2)の第9の要素は、クロスポイント素子420(29,3)(図示せず)にマップすることができる。
【0103】
深さ方向畳み込み演算を実行するために、複数の入力信号を複数のワード・ライン(図示せず)に印加することができる。ワード・ラインのそれぞれは、有効にされているクロスポイント素子に接続することができる。たとえば、第1の入力信号、第2の入力信号、第3の入力信号、第4の入力信号、・・・、および第9の入力信号を、それぞれ、クロスバー回路の第1のワード・ライン、第2のワード・ライン、第3のワード・ライン、第4のワード・ライン、・・・、および第9のワード・ラインに印加することができる。第1の入力信号は、第1の幅(w0)および第1の高さ(h0)によって定義される画像の第1のチャンネルの第1の要素を表すことができる。第2の入力信号は、第1の幅および第1の高さによって定義される画像の第2のチャンネルの第1の要素を表すことができる。第3の入力信号は、第1の幅および第1の高さによって定義される画像の第3のチャンネルの第1の要素を表すことができる。いくつかの実施態様において、第1の入力信号、第2の入力信号、・・・、および第9の入力信号は、それぞれ、
図7に図解されるとおりの連続アドレス711、712、713、714、715、716、717、718、および719内に記憶されているデータ項目を表すことができる。
【0104】
第1のカーネルが第1のビット・ラインに接続されているクロスポイント素子にマップされることから、第1のビット・ライン417-1を介して出力される積算された電流は、入力データの第1のチャンネルと第1のカーネルの畳み込みを表すことができる。同様に、第2のビット・ライン417-2を介して出力される積算された電流は、入力データの第2のチャンネルと第2のカーネルの畳み込みを表すことができる。第3のビット・ラインを介して出力される積算された電流は、画像の第3のチャンネルと第3のカーネルの畳み込みを表すことができる。
【0105】
図4Dおよび4Eは、本開示のいくつかの実施態様に従ったクロスバー回路400dによって深さ方向畳み込みを実行するためのカーネル・マッピング・スキームの一例を図解している。
【0106】
図示されるとおり、クロスバー回路400dは、クロスバー・アレイ450bおよび選択ロジック460bを含むことができる。クロスバー・アレイは、
図3に関連して先に述べたように1つ以上のクロスバー・アレイ300を含むことができる。選択ライン130-1、130-2、130-3、・・・、130-8を選択レジスタ462接続し、同時に有効にすることができる。いくつかの実施態様において、クロスバー回路400dは、9つ以上のクロスバー・アレイを含むことができる。したがって、クロスバー回路400dは、72の選択ラインを含むことができる。72の選択ラインは、9つのグループに分けることができる。選択ラインのグループのそれぞれは、8つの選択ラインを含むことができる。同じグループ内の選択ラインは、共有される選択レジスタに接続し、同時に選択することができる。そのため、同じグループの選択ラインによって接続されているクロスポイント素子は、同時に有効にすることができる。
【0107】
図4Cに関連して先に述べたように3×3カーネルを使用して3チャンネルの画像に対して深さ方向畳み込みを実行するために、クロスバー回路400dは、それらのカーネルを記憶するべくクロスポイント素子をプログラムすることができる。クロスバー回路400cは、64セットの1チャンネル3×3カーネルを記憶することができ、8つの異なるチャンネルを用いてそれらのうちの8つを同時に走らせることが可能である。
【0108】
たとえば、
図4Eに示されるとおり、第1のカーネルの第1の要素、第2の要素、および第3の要素を、それぞれ、クロスポイント素子120(1,1)、120(9,1)、および120(17,1)にマップすることができる。第2のカーネルの第1の要素、第2の要素、および第3の要素は、それぞれ、クロスポイント素子120(2,2)、120(10,2)、および120(18,2)にマップすることができる。第3のカーネルの第1の要素、第2の要素、および第3の要素は、それぞれ、クロスポイント素子120(3,3)、120(11,3)、および120(19,3)にマップすることができる。第1のカーネル、第2のカーネル、および第3のカーネルの残りの要素は、類似の態様でクロスバー回路400cにマップすることができる。第1のカーネル(w2h2c0)の第9の要素は、クロスポイント素子120(65,1)(図示せず)にマップすることができる。第2のカーネル(w2h2c1)の第9の要素は、クロスポイント素子120(66,2)にマップすることができる。第3のカーネル(w2h2c2)の第9の要素は、クロスポイント素子120(67,3)にマップすることができる。
【0109】
深さ方向畳み込みのチャンネルの数が8より小さい場合には、入力バッファ内にデータ・ギャップが必要となることがある。ギャップの数は、ビット・ラインの数(8)からチャンネルの数を減じた数とすることができる。
【0110】
図5Aおよび5Bは、本開示のいくつかの実施態様に従ったクロスバー回路使用して深さ方向畳み込みを実行するための方法500および550の例を図解したフローチャートである。クロスバー回路は、クロスバー回路102、300、400a、400b、400c、および/または400dとすることと、それらを含むことの両方またはいずれか一方であってよい。
【0111】
複数の深さ方向畳み込みカーネルをクロスバー回路の複数のクロスポイント素子にマップすることができる場合、プロセス500は、ブロック505から開始することができる。クロスポイント素子は、複数の選択ラインに接続することができる。選択ラインのそれぞれは、クロスバー回路の異なるワード・ラインおよび異なるビット・ラインに接続されているクロスポイント素子を接続することができる。一例として、これらのクロスポイント素子は、
図4Aに関連して説明されるとおり、選択ライン430-1、430-2、・・・、430-iに接続されているクロスポイント素子を含むことができる。別の例として、これらのクロスポイント素子は、
図4Bに関連して説明されるとおり、選択ライン431-1、432-1、・・・、433-1に接続されているクロスポイント素子を含むことができる。さらなる例として、これらのクロスポイント素子は、
図4Cに関連して説明されるとおり、選択ライン434に接続されているクロスポイント素子を含むことができる。
【0112】
いくつかの実施態様において、深さ方向畳み込みカーネルのそれぞれの第1の要素を、第1の選択ラインに接続されている第1のグループのクロスポイント素子(たとえば、
図4Aの選択ライン430-1に接続されているクロスポイント素子、
図4Bの選択ライン431-1に接続されているクロスポイント素子)にマップすることができる。深さ方向畳み込みカーネルのそれぞれの第2の要素は、第2の選択ラインに接続されている第2のグループのクロスポイント素子(たとえば、
図4Aの選択ライン430-2に接続されているクロスポイント素子、
図4Bの選択ライン432-1に接続されているクロスポイント素子、
図4Cの選択ライン434-2に接続されているクロスポイント素子)にマップすることができる。深さ方向畳み込みカーネルのそれぞれの第iの要素は、第iの選択ラインに接続されている第iのグループのクロスポイント素子(たとえば、
図4Aの選択ライン430-iに接続されているクロスポイント素子、
図4Bの選択ライン433-1に接続されているクロスポイント素子、
図4Cの選択ライン434-Nに接続されているクロスポイント素子)にマップすることができる。いくつかの実施態様において、カーネルのそれぞれをk×kカーネルとすることができる。
【0113】
深さ方向畳み込みカーネルは、クロスポイント素子に、そのカーネルの要素を表す値にそのクロスポイント素子のコンダクタンス値をプログラムすることによってマップすることができる。たとえば、第1のカーネルの第1の要素は、第1のカーネルの第1の要素を表す第1のコンダクタンス値に第1のクロスポイント素子をプログラムすることによって第1のクロスポイント素子にマップすることができる。第1のクロスポイント素子は、クロスバー回路の第1のビット・ラインと第1のワード・ラインを接続することができる。別の例としては、第2のカーネルの第1の要素を第2のクロスポイント素子に、第2のカーネルの第1の要素を表す第2のコンダクタンス値に第2のクロスポイント素子をプログラムすることによってマップすることができる。第2のクロスポイント素子は、クロスバー回路の第2のビット・ラインと第2のワード・ラインを接続することができる。第1のカーネルの第1の要素および第2のカーネルの第1の要素は、第1の高さ値および第1の幅値に対応する。さらに別の例としては、第1のカーネルの第2の要素を第3のクロスポイント素子に、第1のカーネルの第2の要素を表す第3のコンダクタンス値に第3のクロスポイント素子をプログラムすることによってマップすることができる。第3のクロスポイント素子は、第2のワード・ラインと第1のビット・ラインを接続することができる。さらなる例としては、第2のカーネルの第2の要素を第4のクロスポイント素子に、第2のカーネルの第2の要素を表す第4のコンダクタンス値に第4のクロスポイント素子をプログラムすることによってマップすることができる。第4のクロスポイント素子は、クロスバー回路の第3のワード・ラインと第2のビット・ラインを接続することができる。第1のカーネルの第2の要素および第2のカーネルの第2の要素は、第2の高さ値および第1の幅値に対応することができる。
【0114】
ブロック510において、複数の選択ラインを介して複数のクロスポイント素子を有効にすることができる。たとえば、第1の選択ラインを介して第1のグループのクロスポイント素子を有効にすることができる。第1のグループのクロスポイント素子は、第1のクロスポイント素子および第2のクロスポイント素子を含むことができる。別の例として、第2の選択ラインを介して第2のグループのクロスポイント素子を有効にすることができる。第2のグループのクロスポイント素子は、第3のクロスポイント素子および第4のクロスポイント素子を含むことができる。いくつかの実施態様において、クロスポイント素子の有効にすることは、複数の選択ラインのそれぞれに対する適切な選択電圧の印加を必要とすることがある。
【0115】
ブロック515において、クロスバー回路に複数の入力信号を印加することができる。これらの入力信号は、有効にされているクロスポイント素子に接続されている複数のワード・ライン(たとえば、
図4Aに関連して説明されるワード・ライン401、403、および405)を介してクロスバー回路に印加することができる。これらの入力信号は、クロスバー回路にマップされているカーネルを使用して畳み込まれる入力データを表すことができる。たとえば、複数の入力信号は、入力データの第1のチャンネルの第1の部分を表す第1の入力信号、および入力データの第2のチャンネルの第2の部分を表す第2の入力信号を含むことができる。第1の入力信号および第2の入力信号は、それぞれ、第1のワード・ラインおよび第2のワード・ラインを介してクロスバー回路に印加することができる。いくつかの実施態様において、入力データは1つ以上の画像を含むことができる。
【0116】
ブロック520において、クロスバー回路は、入力データとカーネルの畳み込み結果を表す複数の出力信号をクロスバー回路の複数のビット・ラインを介して生成することができる。これらの出力信号は、たとえば、
図4Aに関連して説明されるとおり、ビット・ライン407-1、407-2、・・・、407-mを介して出力される出力信号417-1、417-2、・・・、417-mとすることができる。一例として、入力データの第1の部分と第1のカーネルの第1の畳み込みを表す第1の出力信号(たとえば、
図4Aの出力信号417-1)を、第1のビット・ラインを介して出力することができる。別の例として、入力データの第2の部分と第2のカーネルの第2の畳み込みを表す第2の出力信号(たとえば、
図4Aの出力信号417-2)を、第2のビット・ラインを介して出力することができる。入力データの第1の部分および入力データの第2の部分は、それぞれ、入力データの第1のチャンネルおよび入力データの第2のチャンネルに対応させることができる。
【0117】
第1の複数のカーネルをクロスバー回路の第1の複数のクロスポイント素子にマップすることができる場合、プロセス550は、555から開始することができる。第1の複数のクロスポイント素子は、第1のグループの選択ラインに接続することができる。第1のグループの選択ラインのそれぞれは、ビット・ラインまたはワード・ラインを共有しない複数のクロスポイント素子を接続することができる。一例として、
図4Bに関連して先に述べたように、第1の複数のカーネルを、選択ライン431-1、432-1、・・・、および433-1に接続されているクロスポイント素子にマップすることができる。別の例として、
図4Cに関連して先に述べたように、第1の複数のカーネルを、選択ライン434-1、434-2、・・・、434-Nに接続されているクロスポイント素子にマップすることができる。
【0118】
560において、第2の複数のカーネルをクロスバー回路の第2の複数のクロスポイント素子にマップすることができる。第2の複数のクロスポイント素子は、第2のグループの選択ラインに接続することができる。第2のグループの選択ラインのそれぞれは、ビット・ラインまたはワード・ラインを共有しない複数のクロスポイント素子を接続することができる。一例として、
図4Bに関連して先に述べたように、第2の複数のカーネルを、選択ライン431-2、432-2、・・・、および433-2に接続されているクロスポイント素子にマップすることができる。別の例としては、
図4Cに関連して先に述べたように、第1の複数のカーネルを、選択ライン435-1、435-2、・・・、435-Nに接続されているクロスポイント素子にマップすることができる。
【0119】
565において、第1のグループの選択ラインを介して第1の複数のクロスポイント素子を有効にすることができる。たとえば、適切な選択電圧を第1のグループの選択ラインのそれぞれに印加することができる。より特定的な例として、
図4Bの選択ライン431-1、432-1、・・・、433-1に接続されているクロスポイント素子を有効にすることができる。別のより特定的な例としては、選択ライン434-1、434-2、・・・、434-Nに接続されているクロスポイント素子を有効にすることができる。
【0120】
570において、第1の複数の入力信号を第1の複数のクロスポイント素子に提供することができる。第1の複数の入力信号のそれぞれは、第1の複数のカーネルを使用して畳み込まれる第1の入力データの部分を表すことができる。第1の複数の入力信号は、第1の複数のワード・ラインを介して第1の複数のクロスポイント素子に印加することができる。第1の複数のワード・ラインのそれぞれは、第1の複数のクロスポイント素子のそれぞれのクロスポイント素子に接続することができる。
【0121】
575において、クロスバー回路の複数のビット・ラインを介して第1の複数の出力信号を出力することができる。第1の出力信号は、第1の入力データと第1の複数のカーネルの畳み込み結果を表すことができる。これらのビット・ラインは、たとえば、
図4Bおよび4Cに関連して先に述べたように、ビット・ライン413-1、413-2、・・・、417-mとすることができる。
【0122】
580において、第2のグループの選択ラインを介して第2の複数のクロスポイント素子を有効にすることができる。たとえば、適切な選択電圧を第2のグループの選択ラインのそれぞれに印加することができる。より特定的な例として、
図4Bの選択ライン431-2、432-2、・・・、433-2に接続されているクロスポイント素子を有効にすることができる。別のより特定的な例として、選択ライン435-1、435-2、・・・、435-Nに接続されているクロスポイント素子を有効にすることができる。
【0123】
585において、第2の複数の入力信号を第2の複数のクロスポイント素子に提供することができる。第2の複数の入力信号は、第2の複数のカーネルを使用して畳み込まれる第2の入力データを表すことができる。第2の複数の入力信号は、第2の複数のワード・ラインを介して第2の複数のクロスポイント素子に印加することができる。第2の複数のワード・ラインのそれぞれは、第2の複数のクロスポイント素子のそれぞれのクロスポイント素子に接続することができる。
【0124】
590において、クロスバー回路の複数のビット・ラインを介して第2の複数の出力信号を出力することができる。第2の出力信号は、第2の入力データと第2の複数のカーネルの畳み込み結果を表すことができる。
【0125】
説明の簡素化のために、この開示の方法は、一連の作用として図示され、説明されている。しかしながら、この開示に従った作用は、多様な順序でと、同時にまたはいずれか一方で起こり得、また本明細書中に提示および説明のない他の作用とともに生じることが可能である。さらにまた、開示されている発明の内容に従った方法の実装に、図解された必ずしもすべての作用が必要とならないことがある。それに加えて、この分野の当業者は、状態図またはイベントを介して一連の相互に関連した状態として代替的に方法を表すことが可能であると理解し、かつ認識することになるであろう。
【0126】
用語『概略で』、『約』、および『実質的に』は、いくつかの実施態様において目標諸元の±20%以内、いくつかの実施態様において目標諸元の±10%以内、いくつかの実施態様において目標諸元の±5%以内、さらには、いくつかの実施態様において目標諸元の±2%以内を意味するために使用することができる。用語『概略で』および『約』は、目標諸元を含むことができる。
【0127】
以上の説明には、多くの詳細が示されている。しかしながら、これらの具体的な詳細を伴わずに開示を実施し得ることは明らかになるであろう。いくつかの場合において、周知の構造および装置が詳細にではなく、むしろ開示の不明瞭化を回避するためにブロック図形式で示されている。
【0128】
用語『第1の』、『第2の』、『第3の』、『第4の』等は、本明細書中に使用されているとき、異なる要素の間を区別するラベルを意味し、それらの数値的な指定に従った順序的な意味を必ずしも有していないことがある。
【0129】
用語『例』または『例示的』は、例、場合、または例証として資することを意味するためにここでは使用されている。本明細書中で『例』または『例示的』として説明されている態様または設計は、必ずしもほかの態様または設計より好ましいか、または有利であるとして解釈されない。むしろ、『例』または『例示的』という用語の使用には、具体的な態様で概念を提示することが意図されている。この出願において使用されるとき、用語『または』は、排他的な『または』というよりはむしろ包括的な『または』を意味することが意図されている。言い換えると、明細に述べられていない限り、または文脈から明らかでない限り、『Xは、AまたはBを含む』は、任意の自然な包括的な並べ替えを意味することが意図されている。すなわち、XがAを含むか;XがBを含むか;またはXがAおよびBの両方を含むのであれば、これらの場合のいずれの下においても『XがAまたはBを含む』が満たされる。それに加えて、この出願および付随する請求項において使用されるときの『ある』および数量指定のないことは、明細に述べられているか、または単数形式であることの指定が文脈から明らかである場合を除き、概して『1つ以上』を意味するものと解釈されるべきである。この明細書全体を通じて『ある実装』または『1つの実装』と言及するときは、当該実装に関連して説明されている特定の特徴、構造、または特性が少なくとも1つの実装に含まれることを意味する。したがって、この明細書全体を通じて随所に現れる『ある実装』または『1つの実装』という語句が、すべてが同一の実装を参照している必然性はない。
【0130】
以上の説明を読んだ後であれば、本開示の多くの変更および修正がこの分野の当業者に明らかになることは疑いようがないが、例証により示され、説明されているあらゆる特定の実施態様が限定として見做されることが、いかなる形においても意図されていないことは理解されるものとする。したがって、多様な実施態様の詳細に対する参照が請求の範囲の限定を意図していることはなく、それら自体は、開示として考えられるそれらの特徴のみを列挙しているに過ぎない。
【符号の説明】
【0131】
100 装置
101 第1のクロスバー回路
102 第2のクロスバー回路、クロスバー回路
103 ワード・ライン(WL)ロジック、WLロジック
104 プログラミング回路
105 センシング回路
106 第1の選択ロジック
107 第2の選択ロジック
111 ワード・ライン(WL)、ワード・ライン
111-1、111-2、111-3、111-4、111-n、111a、111b、111c ワード・ライン
113、113-1、113-2、113-3、113a、113b ビット・ライン(BL)、ビット・ライン
120 クロスポイント素子
130、140 選択ライン
200 クロスポイント素子
201 RRAM素子
203 トランジスタ
211 ビット・ライン(BL)、ビット・ライン
213 選択ライン(SEL)、選択ライン
215 ワード・ライン(WL)、ワード・ライン
300 クロスバー回路、クロスバー・アレイ
400a、400b、400c、400d クロスバー回路
401、401-1、401-2、401-3、401-m ワード・ライン
403、403-1、403-2、403-3、403-m ワード・ライン
405、405-1、405-2、405-3、405-m ワード・ライン
407-1、407-2、407-3、407-m ビット・ライン
411、411-1、411-2、411-3、411-m 入力信号
413、413-1、413-2、413-3、413-m 入力信号
415、415-1、415-2、415-3、415-m 入力信号
417、417-1、417-2、417-3、417-m ビット・ライン
420、421、422、423、424、425、426 クロスポイント素子、クロスバー・アレイ
430、430-1、430-2、430-i 選択ライン
430c クロスバー回路
431、431-1、431-2、431-N 選択ライン
432、432-1、432-2、432-N 選択ライン
433、433-1、433-2、433-N 選択ライン
434、434-1、434-2、434-N 選択ライン
435、435-1、435-2、435-N 選択ライン
436 選択ライン
450b クロスバー・アレイ
460a、460b 選択ロジック
461 第1の部分
461-1、461-2、461-3、461-4、461-5、461-6、461-N 選択レジスタ
462 選択レジスタ
463 第2の部分
463-1、463-2、463-3、463-4、463-5、463-6、463-N 選択レジスタ
465 第3の部分
465-1、465-2、465-3、465-4、465-5、465-6、465-N 選択レジスタ
610 画像
610a 第1のチャンネル
610b 第2のチャンネル
610c 第3のチャンネル
611 第1の部分
611a 第1のチャンネル
611b 第2のチャンネル
611c 第3のチャンネル
620、621、623、625 カーネル
630 出力画像
631 第1の要素
640、641、643、645 出力
650 1×1×3カーネル
710、711、712、713、714、715、716、717、718、719 アドレス
720、721、722、723、724、725、726、727、728、729 アドレス
730、731、732、733、735、736、737、738、739、743 アドレス
【手続補正書】
【提出日】2024-06-07
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
複数のワード・ラインと
第1の複数のビット・ラインを接続する
第1の複数のクロスポイント素子
を包含する第1のクロスバー回路と、
複数のワード・ラインと第2の複数のビット・ラインを接続する第2の複数のクロスポイント素子を包含する第2のクロスバー回路と、
複数の選択ラインであって、前記
第2の複数のクロスポイント素子の第1のグループを接続する第1の選択ラインと、前記
第2の複数のクロスポイント素子の第2のグループを接続する第2の選択ラインと
、前記第1の複数のクロスポイント素子の第3のグループを接続する第3の選択ラインと、を包含する複数の選択ラインと、
を包含し、
前記
第2の複数のクロスポイント素子の前記第1のグループは、
前記
第2の複数のビット・ラインのうちの第1のビット・ラインと前記複数のワード・ラインのうちの第1のワード・ラインとを接続する第1のクロスポイント素子と、
前記
第2の複数のビット・ラインのうちの第2のビット・ラインと前記複数のワード・ラインのうちの第2のワード・ラインとを接続する第2のクロスポイント素子と、
を包含し、
前記
第2の複数のクロスポイント素子の前記第2のグループは、
第3のワード・ラインと前記第1のビット・ラインとを接続する第3のクロスポイント素子と、
第4のワード・ラインと前記第2のビット・ラインとを接続する第4のクロスポイント素子と、
を包含
し、
前記第1の複数のクロスポイント素子の前記第3のグループは、前記第1の複数のビット・ラインのうちの第3のビット・ラインと前記複数のワード・ラインに接続される、
装置。
【請求項2】
前記装置は、さらに、
前記第1のクロスバー回路に接続された第1の選択ロジックと、
前記第2のクロスバー回路に接続された第2の選択ロジックを包含する、請求項1に記載の装置。
【請求項3】
前記
第2の選択ロジックは、前記第1の選択ラインを介して前記
第2の複数のクロスポイント素子の前記第1のグループ
に接続される、請求項2に記載の装置。
【請求項4】
前記
第2の選択ロジックは、前記第2の選択ラインを介して前記
第2の複数のクロスポイント素子の前記第2のグループ
に接続される、請求項3に記載の装置。
【請求項5】
前記装置は、さらに、
複数の深さ方向畳み込みカーネルの第1の複数の要素を前記
第2の複数のクロスポイント素子の前記第1のグループにマップし、かつ、
前記複数の深さ方向畳み込みカーネルの第2の複数の要素を前記
第2の複数のクロスポイント素子の前記第2のグループにマップする、
プログラミング・ロジックを包含する、
請求項4に記載の装置。
【請求項6】
さらに、前記複数のワード・ラインに接続されるワード・ライン・ロジックを包含し、
前記ワード・ライン・ロジックは、
複数の深さ方向畳み込みカーネルを使用して畳み込まれる入力データを受け取り、
前記入力データを表す複数の入力信号を生成し、かつ、
前記
第2の複数のクロスポイント素子のうちの前記
第2の選択ロジックによって有効にされている1つ以上のクロスポイント素子に前記複数の入力信号を印加する、
請求項2に記載の装置。
【請求項7】
さらに、前記
第1の複数のビット・ラインと
前記第2の複数のビット・ラインとを介して出力される複数の出力信号に基づいてデジタル出力を生成するセンシング・ロジックを包含し、
前記デジタル出力は、前記入力データと前記複数の深さ方向畳み込みカーネルの畳み込みを表す、請求項6に記載の装置。
【請求項8】
前記
第1の選択ラインと前記第2の選択ラインは、前記
第2の複数のビット・ラインと平行でない、請求項1に記載の装置。
【請求項9】
前記
第1の選択ラインと前記第2の選択ラインは、前記複数のワード・ラインと平行でない、請求項
8に記載の装置。
【請求項10】
前記
第2の複数のクロスポイント素子のうちの少なくとも1つは、トランジスタおよびメモリスタを包含する、
請求項1に記載の装置。
【請求項11】
前記第1の選択ラインおよび前記第2の選択ラインは、第1の選択レジスタに接続される、請求項1に記載の装置。
【請求項12】
前記第1の選択ラインは、第1の選択レジスタに接続され、前記第2の選択ラインは、第2の選択レジスタに接続される、請求項1に記載の装置。
【請求項13】
複数のカーネルをクロスバー回路の複数のクロスポイント素子にマップすることと、
前記クロスバー回路の複数の選択ラインを介して前記複数のクロスポイント素子を有効にすることと、
前記複数のクロスポイント素子に、前記複数のカーネルを使用して畳み込まれる入力データを表す複数の入力信号を印加することと、
前記クロスバー回路の複数のビット・ラインを介して前記入力データと前記カーネルとの畳み込み結果を表す複数の出力信号を出力することと、
を包含し、
前記複数の選択ラインは、前記複数のクロスポイント素子の第1のグループを接続する第1の選択ラインと、前記複数のクロスポイント素子の第2のグループとを接続する第2の選択ラインとを包含し、
前記複数のクロスポイント素子の前記第1のグループは、第1のワード・ラインと第1のビット・ラインとを接続する第1のクロスポイント素子と、第2のワード・ラインと第2のビット・ラインとを接続する第2のクロスポイント素子とを包含し、
前記複数のクロスポイント素子の前記第2のグループは、前記第
3のワード・ラインと前記第1のビット・ラインとを接続する第3のクロスポイント素子と、第
4のワード・ラインと前記第2のビット・ラインとを接続する第4のクロスポイント素子とを包含する、
方法。
【請求項14】
前記複数のカーネルを前記クロスバー回路の前記複数のクロスポイント素子にマップすることは、
前記複数のカーネルのうちの第1のカーネルの第1の要素を前記第1のクロスポイント素子にマップすることと、
前記複数のカーネルのうちの第2のカーネルの第1の要素を前記第2のクロスポイント素子にマップすることと、
を包含する、請求項
13に記載の方法。
【請求項15】
前記複数のカーネルを前記クロスバー回路の前記複数のクロスポイント素子にマップすることは、さらに、
前記第1のカーネルの第2の要素を前記第3のクロスポイント素子にマップすることと、
前記第2のカーネルの第2の要素を前記第4のクロスポイント素子にマップすることと、
を包含する、請求項
14に記載の方法。
【請求項16】
前記複数の選択ラインを介して前記複数のクロスポイント素子を有効にすることは、第1の選択電圧を前記第1の選択ラインに印加して前記複数のクロスポイント素子の前記第1のグループを有効にすることを包含する、請求項
13に記載の方法。
【請求項17】
前記複数の選択ラインを介して前記複数のクロスポイント素子を有効にすることは、第2の選択電圧を前記第2の選択ラインに印加して前記複数のクロスポイント素子の前記第2のグループを有効にすることを包含する、請求項
13に記載の方法。
【請求項18】
前記複数のクロスポイント素子に、前記複数のカーネルを使用して畳み込まれる前記入力データを表す前記複数の入力信号を印加することは、
前記クロスバー回路の
前記第1のワード・ラインを介して前記第1のクロスポイント素子に第1の入力信号を印加することと、
前記クロスバー回路の
前記第2のワード・ラインを介して前記第2のクロスポイント素子に第2の入力信号を印加することと、
を包含し、
前記第1の入力信号は、前記入力データの第1のチャンネルの第1の部分を表し、前記第2の入力信号は、前記入力データの第2のチャンネルの第2の部分を表す、
請求項
13に記載の方法。
【請求項19】
さらに、
連続アドレス内に記憶されている第1のデータ項目および第2のデータ項目を取り出すこと、
を包含し、
前記第1の入力信号は、前記第1のデータ項目を表し、前記第2の入力信号は、前記第2のデータ項目を表す、
請求項
18に記載の方法。
【請求項20】
前記第1の選択回路は、前記第3の選択ラインを介して前記第1の複数のクロスポイント素子のうちの前記第3のグループに接続される、請求項2に記載の装置。
【国際調査報告】