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

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

▶ 旺宏電子股▲ふん▼有限公司の特許一覧

特開2024-160913コンピュテーショナルメモリ及びメモリシステムのためのアーキテクチャ
<>
  • 特開-コンピュテーショナルメモリ及びメモリシステムのためのアーキテクチャ 図1
  • 特開-コンピュテーショナルメモリ及びメモリシステムのためのアーキテクチャ 図2
  • 特開-コンピュテーショナルメモリ及びメモリシステムのためのアーキテクチャ 図3
  • 特開-コンピュテーショナルメモリ及びメモリシステムのためのアーキテクチャ 図4
  • 特開-コンピュテーショナルメモリ及びメモリシステムのためのアーキテクチャ 図5
  • 特開-コンピュテーショナルメモリ及びメモリシステムのためのアーキテクチャ 図6A
  • 特開-コンピュテーショナルメモリ及びメモリシステムのためのアーキテクチャ 図6B
  • 特開-コンピュテーショナルメモリ及びメモリシステムのためのアーキテクチャ 図6C
  • 特開-コンピュテーショナルメモリ及びメモリシステムのためのアーキテクチャ 図6D
  • 特開-コンピュテーショナルメモリ及びメモリシステムのためのアーキテクチャ 図7
  • 特開-コンピュテーショナルメモリ及びメモリシステムのためのアーキテクチャ 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024160913
(43)【公開日】2024-11-15
(54)【発明の名称】コンピュテーショナルメモリ及びメモリシステムのためのアーキテクチャ
(51)【国際特許分類】
   G11C 15/04 20060101AFI20241108BHJP
【FI】
G11C15/04 631W
G11C15/04 601R
G11C15/04 601W
【審査請求】有
【請求項の数】22
【出願形態】OL
(21)【出願番号】P 2023147714
(22)【出願日】2023-09-12
(31)【優先権主張番号】18/143,777
(32)【優先日】2023-05-05
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】599129074
【氏名又は名称】旺宏電子股▲ふん▼有限公司
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】曾 柏皓
(57)【要約】      (修正有)
【課題】コンピュテーショナルソリッドステートドライブ(SSD)技術などにおいて、プロセッサ利用率及び/又はバス帯域幅利用率を低減する方法を提供する。
【解決手段】コンピュテーショナルシステムは、プロセッサ及び/又はバスリソースではなく、コンピュテーショナルSSDのリソースを使用して、コンピュテーショナル技法(例えば、サーチ、計算、及び/又はアクセス)を実行し、処理要素及びストレージデバイスの間の情報移動を低減又は最小化する。
【選択図】図1
【特許請求の範囲】
【請求項1】
メモリシステムを操作するための方法であって、
メモリアレイのメモリストリングの第1部分を、(i)前記メモリアレイのワードライン上で駆動される第1電圧、及び、(ii)前記メモリストリングの前記第1部分の予め定められた動作条件に従って、第1に検知する段階;
前記メモリアレイのメモリストリングの第2部分を、(i)前記メモリアレイのワードライン上で駆動される第2電圧、及び、(ii)前記メモリストリングの前記第2部分の動的動作条件に従って第2に検知する段階;及び
前記第2に検知する段階の結果を提供前記第1に検知する段階;
を備え、ここで、前記第2電圧は、前記第1に検知する段階の結果に基づく、
方法。
【請求項2】
前記動的動作条件は、動的値に従って、前記メモリストリングの第2部分のビットライン回路端子を操作することによって生成される、請求項1に記載の方法。
【請求項3】
前記第2に検知する段階は、前記メモリストリングにおける第2部分に格納された値及び前記動的値の間の近似的なマッチをカウントすることを含む、請求項2に記載の方法。
【請求項4】
前記第2に検知する段階は、前記メモリストリングの第2部分の電流に従って加算することを含む、請求項2に記載の方法。
【請求項5】
前記動的値はアナログ値であり、前記メモリストリングの第2部分に格納された値はアナログ値であり、前記加算はアナログ技法に従う、請求項4に記載の方法。
【請求項6】
前記第2に検知する段階は、前記メモリストリングの第2部分の前記電流をスケーリングし、次に、加算することを含む、請求項5に記載の方法。
【請求項7】
前記動的動作条件は、動的値及びマスク値に基づき、前記メモリストリングの第2部分のいずれかに格納された任意の値に前記動的値をマッチさせることを可能にする、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記動的動作条件は、動的値及びマスク値に基づき、前記メモリストリングの第2部分のいずれかに格納された任意の値に前記動的値をマッチさせることを不能にする、請求項1から6のいずれか一項に記載の方法。
【請求項9】
前記第2に検知する段階の前記結果は、乗累算演算を示し、前記乗累算演算の第1オペランドは動的値であり、前記動的動作条件は前記動的値に従って判定され、前記乗累算演算の第2オペランドは、前記メモリストリングの第2部分にプログラムされる値に対応する、請求項1から6のいずれか一項に記載の方法。
【請求項10】
前記動的動作条件は、動的値に従って判定され、前記第2に検知する段階の前記結果は、前記メモリストリングの第2部分にプログラムされた値のうちの前記動的値についてのサーチ動作を示す、請求項1から6のいずれか一項に記載の方法。
【請求項11】
メモリストリングの第1及び第2部分を含むメモリアレイ、ここで、前記メモリストリングの第1部分の前記メモリストリングの1又は複数、及び、前記メモリストリングの第2部分の前記メモリストリングの1又は複数はそれぞれ、複数の連続的に接続されたメモリデバイスを含む;
前記メモリストリングが編成される、それぞれの行のそれぞれの制御入力に結合された端子を有するワードライン回路;
前記メモリストリングのそれぞれのビットライン端子に結合された端子を有するビットライン回路;
前記メモリストリングのそれぞれの検知増幅器端子に結合された端子を有するセンスアンプ回路;
を備え、
ここで、前記メモリストリングの第1部分の前記ビットライン端子に結合された前記ビットライン回路の前記端子は、同一の予め定められた動作条件を前記メモリストリングの第1部分の前記ビットライン端子に提供することが可能であり;
ここで、前記メモリストリングの第2部分の前記ビットライン端子に結合された前記ビットライン回路の前記端子は、前記メモリストリングの第2部分の前記ビットライン端子にそれぞれの動的値を提供することが可能であり;
ここで、前記ワードライン回路は、第1及び第2ワードライン制御値の1つに従って、前記制御入力を選択的に駆動することが可能であり、前記第1ワードライン制御値は、提供された値に対応し、前記第2ワードライン制御値は、前記メモリストリングの前記第1部分の前記ビットライン端子に結合された前記端子を介して提供される情報に基づいて前記センスアンプ回路によって生成された結果に対応する
メモリシステム。
【請求項12】
前記センスアンプ回路に結合され、前記メモリストリングの第2部分に格納された値及びそれぞれの前記動的値の間の厳密なマッチをカウントすることが可能であるカウント回路を更に備える、請求項11に記載のメモリシステム。
【請求項13】
前記センスアンプ回路に結合され、前記メモリストリングの第2部分の電流に従って加算することを可能にする加算回路を更に備える、請求項11に記載のメモリシステム。
【請求項14】
それぞれの前記動的値はアナログ値であり、前記メモリストリングの第2部分に格納された値はアナログ値であり、前記加算回路は、アナログ技法に従って動作可能である、請求項13に記載のメモリシステム。
【請求項15】
前記加算回路は更に、加算の前に前記電流をスケーリングすることが可能である、請求項14に記載のメモリシステム。
【請求項16】
前記メモリアレイにアクセスすることが可能である1又は複数のプロセッサを更に備える、請求項11から15のいずれか一項に記載のメモリシステム。
【請求項17】
前記メモリストリングの第2部分の前記ビットライン端子に結合された前記ビットライン回路の前記端子は更に、同一の予め定められた動作条件を、前記メモリストリングの第2部分の前記ビットライン端子に提供することが可能であり、前記センスアンプ回路に結合された、前記メモリストリングの第2部分に格納された値から読み取られた結果のページをキャッシュすることが可能であるページキャッシュ回路を更に含む、請求項11から15のいずれか一項に記載のメモリシステム。
【請求項18】
メモリストリングの第1及び第2部分を含むメモリアレイ、ここで、前記メモリストリングの第1部分の前記メモリストリングの1又は複数、及び、前記メモリストリングの第2部分の前記メモリストリングの1又は複数はそれぞれ、複数の連続的に接続されたメモリデバイスを含む;
前記メモリストリングが編成される、それぞれの行のそれぞれの制御入力に結合された端子を有するワードライン回路;
前記メモリストリングのそれぞれのビットライン端子に結合され、同一の予め定められた動作条件を前記ビットライン端子に提供することが可能である端子を有するビットライン回路;
前記メモリストリングのそれぞれの検知増幅器端子に結合された端子を有するセンスアンプ回路
を備え、前記ワードライン回路は、第1及び第2ワードライン制御値の1つに従って前記制御入力を選択的に駆動することが可能であり、前記第1ワードライン制御値は、提供された値に対応し、前記第2ワードライン制御値は、前記メモリストリングの前記第1部分の前記ビットライン端子に結合された前記端子を介して提供される情報に基づいて前記センスアンプ回路によって生成された結果に対応する、
メモリシステム。
【請求項19】
前記提供された値は、キー及びマスクを含み、前記制御入力の前記選択的な駆動は、前記キーのそれぞれのビット及び前記マスクの対応するそれぞれのビットからそれぞれ判定される複数のエンコーディングに従って、それぞれのペアにおける前記制御入力を選択的に駆動することを含み、(i)前記複数のエンコーディングの第1のものは、前記提供された値がゼロであることに応答して、格納されたゼロ値を選択的にマッチすることを可能にし、(ii)前記複数のエンコーディングの第2のものは、前記提供された値が1であることに応答して、格納された1つの値を選択的にマッチすることを可能にし、(iii)前記複数のエンコーディングの第3のものは、前記提供された値がゼロ又は1であることに応答して、格納されたゼロの値又は格納された1の値を選択的にマッチすることを可能にし、(iv)前記複数のエンコーディングの4分の1は、任意の格納された値を前記提供された値に選択的にマッチすることを不能にする、請求項18に記載のメモリシステム。
【請求項20】
少なくとも1つのメモリデバイスを含む前記メモリアレイを含むコンピュテーショナルソリッドステートドライブ(SSD)にアクセスすることが可能である1又は複数のプロセッサを更に備える、請求項18又は19に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュテーショナルソリッドステートドライブ(SSD)を可能にするメモリを含む、計算を実行することが可能なメモリに関する。
【背景技術】
【0002】
データ量の増加は、データをリアルタイムに管理、編成、選択、及び分析するための処理、ストレージ、及び、帯域幅要件を増加させる。これらの要件の増加に対処するための技法が必要である。
【0003】
例示的な従来のシステムにおいて、データは、バスを通じてプロセッサからアクセス可能であるストレージデバイスに格納される。処理の前に、データがバスを通じてストレージデバイスからプロセッサ(及び/又は、プロセッサから直接的にアクセス可能であるメモリ)へ移される。次に、データはプロセッサによって操作され、任意選択的に結果がバスを通じてストレージデバイスへ返される。したがって、データ量が増加するにつれて、プロセッサ利用率及び/又はバス帯域幅利用率が増加する。いくつかの使用シナリオにおいて、スループットは、プロセッサ及びストレージデバイスの間の帯域幅及び/又はレイテンシによって制限される。例えばプロセッサ利用率及び/又はバス帯域幅利用率を低減するための技法が必要である。
【発明の概要】
【0004】
1又は複数のコンピュータのシステムは、動作中にシステムに動作及び/又はアクションを実行及び/又は制御させる、システムにインストールされたソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせを有することにより、特定の動作及び/又はアクションを実行するように構成可能である。1又は複数のコンピュータプログラムが、データ処理装置によって実行されるときに装置に動作及び/又はアクションを実行させる命令を含むことにより、特定の動作及び/又はアクションを実行するように構成可能である。
【0005】
メモリシステムを操作するための方法の第1態様は、メモリアレイのメモリストリングの第1部分を、(i)メモリアレイのワードライン上で駆動される第1電圧、及び、(ii)メモリストリングの第1部分の予め定められた動作条件に従って第1に検知する段階;メモリアレイのメモリストリングの第2部分を、(i)メモリアレイのワードライン上で駆動される第2電圧、及び、(ii)メモリストリングの第2部分の動的動作条件に従って第2に検知する段階;及び第2に検知する段階の結果を提供する段階を備え、ここで、第2電圧は、第1の検知の結果に基づく。本態様の他の実施形態は、対応するコンピュータシステム、装置、及び、1又は複数のコンピュータストレージデバイスに記録されたコンピュータプログラムを備え、その各々は、方法のアクションを実行するよう構成される。
【0006】
変形は、任意選択的に、以下の特徴の1又は複数を含む。第1態様では、動的動作条件は、動的値に従って、メモリストリングの第2部分のビットライン回路端子を操作することによって生成される。第2に検知する段階は任意選択的に、メモリストリングにおける第2部分に格納された値及び動的値の間の近似的なマッチをカウントすることを含む。第2に検知する段階は任意選択的に、メモリストリングの第2部分の電流に従って加算することを含む。動的値はアナログ値であり、メモリストリングの第2部分に格納された値はアナログ値であり、加算は、アナログ技法に従う。第2に検知する段階は任意選択的に、スケーリングし、次に、メモリストリングの第2部分の電流を加算することを含む。動的動作条件は、メモリストリングの第2部分のいずれかに格納された任意の値に動的値をマッチさせることを可能にする動的値及びマスク値に基づく。動的動作条件は、メモリストリングの第2部分のいずれかに格納された任意の値に動的値をマッチさせることを不能にする動的値及びマスク値に基づく。第2に検知する段階の結果は、乗累算演算を示し、乗累算演算の第1オペランドは動的値であり、動的動作条件は動的値に従って判定され、乗累算演算の第2オペランドは、メモリストリングの第2部分にプログラムされる値に対応する。動的動作条件は、動的値に従って判定され、第2の検知の結果は、メモリストリングの第2部分にプログラムされた値のうちの動的値についてのサーチ動作を示す。記載された技法の実装は、任意選択的に、ハードウェア、方法又はプロセス、又はコンピュータアクセス可能媒体上のコンピュータソフトウェアを含む。
【0007】
メモリシステムの第2の態様は任意選択的に、メモリストリングの第1及び第2部分を含むメモリアレイ、ここで、メモリストリングの第1部分のメモリストリングの1又は複数、及び、メモリストリングの第2部分のメモリストリングの1又は複数はそれぞれ、複数の連続的に接続されたメモリデバイスを含む;メモリストリングが編成される、それぞれの行のそれぞれの制御入力に結合された端子を有するワードライン回路;メモリストリングのそれぞれのビットライン端子に結合された端子を有するビットライン回路;メモリストリングのそれぞれの検知増幅器端子に結合された端子を有するセンスアンプ回路;を備え、ここで、メモリストリングの第1部分のビットライン端子に結合されたビットライン回路の端子は、同一の予め定められた動作条件をメモリストリングの第1部分のビットライン端子に提供することが可能であり;ここで、メモリストリングの第2部分のビットライン端子に結合されたビットライン回路の端子は、メモリストリングの第2部分のビットライン端子にそれぞれの動的値を提供することが可能であり;ここで、ワードライン回路は、第1及び第2ワードライン制御値の1つに従って、制御入力を選択的に駆動することが可能であり、第1ワードライン制御値は、提供された値に対応し、第2ワードライン制御値は、メモリストリングの第1部分のビットライン端子に結合された端子を介して提供される情報に基づいてセンスアンプ回路によって生成された結果に対応する。本態様の他の実施形態は、対応するコンピュータシステム、装置、及び、1又は複数のコンピュータストレージデバイスに記録されたコンピュータプログラムを備え、その各々は、方法のアクションを実行するよう構成される。
【0008】
変形は任意選択的に、以下の特徴の1又は複数を含む。第2態様は任意選択的に、センスアンプ回路に結合され、メモリストリングの第2部分に格納された値及びそれぞれの動的値の間の厳密なマッチをカウントすることが可能であるカウント回路を備える。システムは任意選択的に、センスアンプ回路に結合され、メモリストリングの第2部分の電流に従って加算することを可能にする加算回路を備える。それぞれの動的値はアナログ値であり、メモリストリングの第2部分に格納された値はアナログ値であり、加算回路は、アナログ技法に従って動作可能である。加算回路は更に、加算の前に電流をスケーリングすることが可能である。システムは任意選択的に、メモリアレイにアクセスすることが可能である1又は複数のプロセッサを含む。メモリストリングの第2部分のビットライン端子に結合されたビットライン回路の端子は更に、同一の予め定められた動作条件を、メモリストリングの第2部分のビットライン端子に提供することが可能であり、センスアンプ回路に結合された、メモリストリングの第2部分に格納された値から読み取られた結果のページをキャッシュすることが可能であるページキャッシュ回路を任意選択的に含む。記載された技法の実装は、任意選択的に、ハードウェア、方法又はプロセス、又はコンピュータアクセス可能媒体上のコンピュータソフトウェアを含む。
【0009】
システムの第3態様は任意選択的に、メモリストリングの第1及び第2部分を含むメモリアレイ、ここで、メモリストリングの第1部分のメモリストリングの1又は複数、及び、メモリストリングの第2部分のメモリストリングの1又は複数はそれぞれ、複数の連続的に接続されたメモリデバイスを含む;メモリストリングが編成される、それぞれの行のそれぞれの制御入力に結合された端子を有するワードライン回路;メモリストリングのそれぞれのビットライン端子に結合され、同一の予め定められた動作条件をビットライン端子に提供することが可能である端子を有するビットライン回路;メモリストリングのそれぞれの検知増幅器端子に結合された端子を有するセンスアンプ回路を備え、ワードライン回路は、第1及び第2ワードライン制御値の1つに従って制御入力を選択的に駆動することが可能であり、第1ワードライン制御値は、提供された値に対応し、第2ワードライン制御値は、メモリストリングの第1部分のビットライン端子に結合された端子を介して提供される情報に基づいてセンスアンプ回路によって生成された結果に対応する。本態様の他の実施形態は、対応するコンピュータシステム、装置、及び、1又は複数のコンピュータストレージデバイスに記録されたコンピュータプログラムを備え、その各々は、方法のアクションを実行するよう構成される。
【0010】
変形は任意選択的に、以下の特徴の1又は複数を含む。第3態様では、提供された値は任意選択的に、キー及びマスクを含み、制御入力の選択的な駆動は任意選択的に、キーのそれぞれのビット及びマスクの対応するそれぞれのビットからそれぞれ判定される複数のエンコーディングに従って、それぞれのペアにおける制御入力を選択的に駆動することを含み、(i)エンコーディングの第1のものは、提供された値がゼロであることに応答して、格納されたゼロ値を選択的にマッチすることを可能にし、(ii)エンコーディングの第2のものは、提供された値が1であることに応答して、格納された1つの値を選択的にマッチすることを可能にし、(iii)エンコーディングの第3のものは、提供された値がゼロ又は1であることに応答して、格納されたゼロの値又は格納された1の値を選択的にマッチすることを可能にし、(iv)エンコーディングの4分の1は、任意の格納された値を提供された値に選択的にマッチさせることを不能にする。システムは、メモリアレイを任意選択的に含む少なくとも1つのメモリデバイスを任意選択的に含むコンピュテーショナルソリッドステートドライブ(SSD)にアクセスすることを可能にする1又は複数のプロセッサを任意選択的に含む。記載された技法の実装は、任意選択的に、ハードウェア、方法又はプロセス、又はコンピュータアクセス可能媒体上のコンピュータソフトウェアを含む。
【0011】
上記の態様の変形は、ハードウェア、方法又はプロセス、又は、コンピュータアクセス可能媒体上のコンピュータソフトウェアを任意選択的に含む。
【0012】
本開示の他の態様及び特長は、図面、詳細な説明、及び請求項から明らかである。
【図面の簡単な説明】
【0013】
図1】1又は複数コンピュテーショナルソリッドステートドライブ(SSD)に基づく例示的なハードウェアシステムを示す。
【0014】
図2】コース(coarse)サーチの結果に応じたファイン(fine)サーチが後に続くコースサーチを実行するための例示的なコンピュテーショナルメモリを示す。
【0015】
図3】コースサーチの結果に応じた計算が後に続くコースサーチを実行するための例示的なコンピュテーショナルメモリを示す。
【0016】
図4】コースサーチの結果に応じたアクセス動作が後に続くコースサーチを実行するための例示的なコンピュテーショナルメモリを示す。
【0017】
図5】コンピュテーショナルメモリを操作するための技法の例示的なフロー図を示す。
【0018】
図6A】ワードライン上で提供される情報を介したサーチをまとめて示す。
図6B】ワードライン上で提供される情報を介したサーチをまとめて示す。
【0019】
図6C】ビットライン上で提供される情報を介したサーチをまとめて示す。
図6D】ビットライン上で提供される情報を介したサーチをまとめて示す。
【0020】
図7】例示的なコンピュテーショナルSSDを示す。
【0021】
図8】コンピュテーショナルSSDを有する例示的なハードウェアシステムを示す。
【発明を実施するための形態】
【0022】
コンピュテーショナルソリッドステートドライブ(SSD)についてのアーキテクチャに関する技法の詳細な説明が図1~8を参照して提供される。
【0023】
1又は複数のフロー図が本明細書において説明される。フロー図によって説明される処理は、コンピュータシステムにとってアクセス可能なメモリに記憶されたコンピュータプログラムを使用してプログラミングされたプロセッサを使用して実装可能及び/又は指示可能であり、専用ロジックハードウェア(フィールドプログラマブル集積回路を含む)を使用して、及びその様々な組み合わせを使用して、プロセッサによって実行可能である。様々なアクションは、達成される処理に影響を与えることなく、組み合わせ可能、並列に実行可能、及び/又は異なるシーケンスにおいて実行可能である。いくつかの事例では、アクションの再配置は、特定の他の変更も同様に行われる場合にのみ、同一の結果を達成する。他の事例では、アクションの再配置は、特定の条件が満たされる場合にのみ、同一の結果を達成する。さらに、明確性のために、本明細書におけるフロー図のいくつかは、開示される技法を理解するために必要ではないいくつかのアクションを省略する。示されるアクションの前、後、及び/又は間に、様々な追加のアクションが実行可能である。
【0024】
説明において使用される選択された頭字語、ニーモニック、及び略語の例は、以下のとおりである。
【表1】
【0025】
例示的なキー値ストア(例えば、キー値SSD)は、オブジェクト記述(例えばキー)を受信して、それに応答して、オブジェクト記述によって識別可能なオブジェクト(例えば、キーに対応する値)にアクセスするオブジェクトベースのストレージである。いくつかのキー値ストアにおいて、変換レイヤは、オブジェクト記述、及び、不揮発性ストレージの基盤となるデータブロックへの対応する参照の間で変換する。
コンピュテーショナルSSDの概念
【0026】
本明細書に記載される、コンピュテーショナルSSD技術に基づくシステムは、プロセッサ利用率及び/又はバス帯域幅利用率を低減する。システムは、プロセッサ及び/又はバスリソースではなく、コンピュテーショナルSSDのリソースを使用して、コンピュテーショナル技法(例えば、サーチ、計算、及び/又はアクセス)を実行し、したがって、処理要素及びストレージデバイスの間の情報移動を低減又は最小化することが可能である。コンピュテーショナルSSD技術は、増加し続けるデータ量をリアルタイムに管理、編成、選択、及び分析することを可能にする。コンピュテーショナルSSD(場合により、「スマートSSD」と称される)は、例えば、コンピュテーショナルSSDのリソースを使用して、データをローカルで格納し、操作し、CIM、IMC、及び/又はIMSを実行することなどが可能である。したがって、コンピュテーショナルSSDを使用することによって、システムの処理、ストレージ、及び帯域幅要件が低減される。
【0027】
さらに、コンピュテーショナルSSDの使用は、他のタスクのためにCPU及び/又はGPUリソースを使用することを可能にし、早い結果を可能にする。いくつかの使用シナリオにおいて、コンピュテーショナルSSDの使用は、追加のプロセッサ及び/又はサーバを購入する必要性を低減する。いくつかの使用シナリオにおいて、コンピュテーショナルSSDの使用は、追加の電力及び/又は冷却のリソースを購入する必要性を低減する。いくつかの使用シナリオにおいて、コンピュテーショナルSSDの使用は、様々な用途を加速するための自己処理技術を使用する新しい知見及び機会を可能にする。コンピュテーショナルSSD技術が適用可能である例示的な用途は、映像処理、データベース管理、及び人工知能を含む。
【0028】
例示的なコンピュテーショナルSSDは、コースサーチ機能に応じた第2機能が後に続くコースサーチ機能を実行することを可能にする。例示的なコンピュテーショナルSSDは、2つの部分、すなわち、(1)コースサーチ機能に特化した部分、及び、(2)第2機能に特化した部分において使用可能である単一のメモリアレイに基づく。例示的な第2機能は、ファインサーチ(例えば、IMS)機能、計算(例えば、IMC)機能、及び、アクセス(例えば、キー/値ペアについての値)機能を含む。
【0029】
1つの具体的な例として、本明細書に記載されたコンピュテーショナルSSDを使用して、キー値SSDが実装可能である。
【0030】
コンピュテーショナルSSDは、1又は複数のコンピュテーショナルメモリから構成される。コンピュテーショナルSSDは、コンピュテーショナルメモリのうち同一のものを使用して、複数の機能を実行することが可能となる。例えば、特定のコンピュテーショナルメモリに対して第1機能が実行され、次に、特定のコンピュテーショナルメモリに対して第2機能(例えば、第1機能の結果に基づく)が実行される。いくつかの場合において、複数の機能が同一のコンピュテーショナルメモリの同一のメモリアレイに対して実行される。
【0031】
サーチ動作の例については、第1機能は、コースフィルタ及び/又はサーチ機能を含み、第2機能は、ファインフィルタ及び/又はサーチ機能を含む。計算動作の例については、第1機能は、コースフィルタ及び/又はサーチ機能を含み、第2機能は、メモリ内計算機能を含む。アクセス動作の例については、第1機能は、コースフィルタ及び/又はサーチ機能を含み、第2機能は、データアクセス機能を含む。
【0032】
いくつかのシナリオにおいて、データベースの関心の無い又は不要な部分に関する処理を低減又は除去するためにコースフィルタ及び/又はサーチ機能が使用可能である。例えば、コースフィルタ機能に応答して、コースフィルタ及び/又はサーチ機能によって判定されるワードラインが、その後のアクションにおける使用のためにアクティブ化される。サーチ、計算、及びアクセス動作の例において、その後のアクションはそれぞれ、ファインフィルタ及び/又はサーチ機能、メモリ内計算機能、及びデータアクセス機能を含む。
【0033】
いくつかの変形において、コースフィルタ及び/又はサーチ機能は、例えば三値CAMと類似した、ワードライン上で提供されるサーチ情報を使用する。いくつかの変形において、ファインサーチ機能は、例えばハイパーディメンション(hyper-dimensional)サーチに関するビットライン上に提供されるサーチ情報を使用する。いくつかの変形において、計算機能は、ビットライン上で提供される計算情報を使用する。いくつかの変形において、アクセス機能は、例えばCPU及び/又はGPUによる使用のために、キー値ペアのキーに対応する値を提供するために使用可能である。
例示的なコンピュテーショナルSSDシステム
【0034】
いくつかのコンピュテーショナルSSDシステムにおいて、1又は複数のコンピュテーショナルSSDが、第1機能の結果に応じた第2機能が後に続く第1機能を実行することが可能となる。第1の例では、第1機能はコースサーチ機能であり、第2機能はファインサーチ機能である。第2の例では、第1機能はコースサーチ機能であり、第2機能は計算機能である。第3の例では、第1機能はコースサーチ機能であり、第2機能はアクセス機能である。
【0035】
いくつかの構成可能なコンピュテーショナルSSDシステムにおいて、1又は複数のコンピュテーショナルSSDは、第1機能の結果に応じて第2の構成可能な機能が後に続く第1機能を実行することを可能にする。様々な例では、第2機能の構成の粒度は、例えば、SSDの全体から構成可能なコンピュテーショナルSSDの単一メモリアレイまで様々である。例えば、SSDは、コースサーチ機能としての第1機能及びファインサーチ機能である第2機能を用いて構成されたSSDの全体を有する、特化したサーチコンピュテーショナルSSDとして構成される。例えば、別のSSDが、計算機能について構成されたメモリアレイの第1部分、及び、アクセス機能を用いて構成されたメモリアレイの第2部分で構成される。
【0036】
図1は、コンピュテーショナルSSDシステム100としての1又は複数のコンピュテーショナルSSDに基づく例示的なハードウェアシステムを示す。システムは、ハードウェアブロックCPU110、GPU120、DRAM130、及び、ハードウェアブロックPCIeバス180によって結合されたコンピュテーショナルSSD140の1又は複数のインスタンスを含む。コンピュテーショナルSSD140の各インスタンスは、図7のコンピュテーショナルSSD700の1又は複数のインスタンスなど、1又は複数のコンピュテーショナルSSDを含む。コンピュテーショナルSSD140のインスタンスは、機能:コース、ファイン、計算、アクセス126によって示されるコンピュテーショナルSSDに関する機能を実行することが可能となる。
【0037】
CPU110は、プログラミングされた命令を実行することが可能なハードウェアユニットの任意の組み合わせ等の1又は複数の処理ユニット、マイクロプロセッサ、信号プロセッサ、AIプロセッサ等を備える。GPU120は、グラフィックス処理、信号処理、及び/又はAI処理など、比較的高度な並列処理を受ける処理を加速させることが可能であるユニットの任意の組み合わせなどの1又は複数の処理ユニットを含む。DRAM130は、CPU110及び/又はGPU120の内部のストレージより大量に命令及び/又はデータを格納するための1又は複数のDRAMデバイスを含む。PCIeバス180は、1又は複数のPCIeバス180を使用して、それに結合された要素(例えば、CPU110、GPU120、及びコンピュテーショナルSSD140のインスタンス)の間の通信を可能にする。コンピュテーショナルSSD140のインスタンスは、それぞれのコンピュテーショナルSSD上に格納されたデータに対して、データをCPU110、DRAM130、及び/又はGPU120に移すことなく、コースサーチ、ファインサーチ、計算、及びアクセス機能を実行することが様々に可能となる。
【0038】
コンピュテーショナルSSDシステム100は、従来の処理要素(例えば、CPU110及び/又はGPU120)及びコンピュテーショナルストレージ要素(例えば、コンピュテーショナルSSD140の1又は複数のインスタンス)の間のデータ移動の低減又は最小化を可能にする。SSD上で利用可能である、ローカルに格納されたデータを使用して、様々なコンピュテーショナル動作がコンピュテーショナルSSDに対して実行される。
【0039】
他の要素の区画化、要素間の結合、及び図に示されている要素の能力及び/又は容量、並びに追加要素が、使用要件に従って企図される。
コンピュテーショナルメモリ
【0040】
コンピュテーショナルメモリの3つの例が記載されている。第1の例は、連続する2つのIMS動作、例えば、コースサーチの結果に応じたファインサーチが後に続くコースサーチである。第2の例は、コースサーチの結果に応じたIMC動作と連続するIMS動作、例えば、計算動作が後に続くコースサーチである。第3の例は、コースサーチの結果に応じたアクセス動作と連続するIMS動作、例えば、アクセス動作が後に続くコースサーチである。
コンピュテーショナルメモリ――IMS=>IMS
【0041】
コンピュテーショナルメモリの第1の例(連続する2つのIMS動作)に戻ると、単一のコンピュテーショナルメモリアレイは、コースサーチの結果に応じたファインサーチが後に続くコースサーチ(例えば、TCAMとして動作する)をそれぞれ実行することが可能である2つの部分(IMS動作の各々について1つ)を有する。概念的には、コースサーチ部分は、(例えば、ワードライン入力を介して)フィルタを実装し、ファインサーチ部分によって実行される計算(例えば、ビットライン入力を介するハイパーディメンションサーチ)を低減する。
【0042】
動作の例として、選択されたコースサーチ情報(例えば、任意選択的にキーマスク情報と併せたキーのすべて又は任意の部分)が、単一コンピュテーショナルメモリアレイ(「アレイ」)のワードラインについての(コースサーチ)値を生成するために使用される。コースサーチ部分のビットラインは、コースサーチ部分のメモリデバイスに格納されたコースサーチ情報にワードライン値をマッチさせることを可能にするために操作される。メモリデバイスは、メモリストリングと称されるデバイスの連続するグループに配置される。各メモリストリングは、メモリストリングに格納されたコースサーチ情報にワードライン値をマッチさせることを可能にする。メモリストリングは、例えばインピーダンスを変更することによるマッチを示す。インピーダンスの変更は次に、電圧の変更によって、メモリストリングが結合されるビットライン上に反映される。例えば、メモリストリングは、ビットラインを放電することによってマッチを示す。コースサーチ部分の検知増幅器(センスアンプ)は、ビットライン電圧変化を(ある場合に)検出し、応答としてマッチ結果を生成する。厳密なマッチ及び/又は近似的なマッチは、コースサーチ部分のメモリデバイスに格納されたワードライン値及びコースサーチ情報の間の高い類似度に対応する。例えば、ワンホットエンコーディングにおいて、マッチは「1」としてコードされ、ミスマッチは「0」としてコードされる。
【0043】
その後、マッチは次に、アレイのワードラインについての値を生成する(ファインサーチ)ために使用される。例示的なワンホットエンコーディング(単一マッチ)において、単一のワードラインが「読み取り」に駆動され、残りのワードラインが「通過」に駆動され、コースマッチ結果に従ってファインサーチを可能する。同時に、ファインサーチ部分のビットラインが、マッチする選択されたファインサーチパラメータ(例えば、任意選択的にハイパーディメンションマスク情報と併せて、1又は複数のハイパーディメンションサーチパラメータのすべて又は任意の部分)に従って操作され、ファインサーチ情報は、ファインサーチ部分のメモリデバイスに格納される。ファインサーチ部分のセンスアンプは、ビットライン変更を検出し、ファインサーチパラメータ及びメモリデバイスに格納されたファインサーチ情報の間の高い類似度を示すマッチ結果を生成し、マッチ結果は次に。1又は複数のビットラインにわたって組み合わされ(例えばカウントされ)、1又は複数の全体的な結果を判定する。例えば、全体の結果のうち最高のものは、最良のマッチに対応する。
【0044】
コースサーチ部分は、第1部分におけるワードラインのペア及び連続するメモリデバイスのペアを介して、「マッチ1」及び「マッチ0」マッチ動作、並びに、任意選択的に「何でもマッチ」(例えば、「考慮しない」又は代替的に「ワイルドカード」)、並びに、「いずれにもマッチしない」(例えば、「無効値」、又は代替的に、「無効サーチ」)マッチ動作に適応する。同様に、ファインサーチ部分は、第2部分におけるビットラインのペア及び対応するメモリデバイスのペアを介して、同様のエンコーディングに適応する。
【0045】
図2は、コンピュテーショナルメモリ200として、コースサーチの結果に応じてファインサーチが後に続くコースサーチを実行するための例示的なコンピュテーショナルメモリを示す。
【0046】
コンピュテーショナルメモリ200は、2つの部分、すなわち、コースサーチを実行するためのコース210、及び、ファインサーチを実行するためのファイン220を含む。コース部分212及びファイン部分222は、同一のメモリアレイであるアレイ250の部分である。ワードライン回路252は、コースサーチの結果をファインサーチに提供することが可能となる。
【0047】
コース210は、ビットライン回路211、コース部分212、及びセンスアンプ回路214を含む。コース部分212は、各々が複数の直列に結合されたメモリデバイスを含む複数のメモリストリングを含む。メモリストリングは、概念的に、ビットライン回路211及びセンスアンプ回路214に結合され、したがって、図の縦方向において直列に結合される。メモリストリングは、図の水平方向において概念的に複製され、ワードラインは、メモリストリングの各々の対応するデバイスを水平次元に結合する。各メモリストリングについて、メモリストリングの一端(例えば、ビットライン端子)が、ビットライン回路211に結合され、メモリストリングの他端(例えば、センスライン端子)がセンスアンプ回路214に結合される。
【0048】
ビットライン回路211は、予め定められた値に従ってビットライン端子の各々を操作することが可能であるビットライン回路を含む。例えば、ビットライン回路211は、コース部分212のビットライン端子の各々についてプリチャージャを含む。プリチャージャは、(他の回路、例えば、ワードライン回路252及び/又はセンスアンプ回路214と併せて)コース部分212のメモリストリングをプリチャージするように動作する。
【0049】
センスアンプ回路214は、1又は複数の予め定められた閾値に従ってコース部分212のセンスアンプ端子の各々の電流及び/又は電圧変化を判定することが可能であるセンス回路を含む。例えば、センスアンプ回路214は、センスアンプ端子の各々についてセンスアンプを含む。センスアンプは、(他の回路、例えば、ワードライン回路252及び/又はビットライン回路211と併せて)コース部分212のメモリストリングの電流及び/又は電圧変化を判定するように動作する。センスアンプ回路214は、コースサーチ結果215を介して、変化の結果をワードライン回路252に提供する。
【0050】
コース部分212のメモリストリングの電流及び/又は電圧変化は、例えば、メモリストリングの直列に結合されたメモリデバイスの格納された値、及び、ワードライン回路252によってワードラインに提供される値に基づくメモリストリングの選択的放電に起因する。
【0051】
ファイン220は、ビットライン回路221、ファイン部分222、センスアンプ回路224、及び後処理(カウント)225を含む。ファイン部分222(コース部分212と同様)は、各々が複数の直列に結合されたメモリデバイスを含む複数のメモリストリングを含む。メモリストリングはビットライン回路221及びセンスアンプ回路224に結合され、したがって、概念的に図の縦方向において直列に結合される。メモリストリングは、図の水平方向において概念的に複製され、ワードラインは、メモリストリングの各々の対応するデバイスを水平次元に結合する。各メモリストリングについて、メモリストリングの一端(例えば、ビットライン端子)が、ビットライン回路221に結合され、メモリストリングの他端(例えば、センスライン端子)がセンスアンプ回路224に結合される。
【0052】
ビットライン回路221(ビットライン回路211といくつかの点で類似している)は、(ビットライン回路211における予め定められた値ではなく)ファインサーチパラメータ229によって提供される動的値に従ってビットライン端子の各々を操作することが可能であるビットライン回路を含む。例えば、ビットライン回路221は、ファイン部分222のビットライン端子の各々について条件付きプリチャージャを含む。ビットライン回路221は、IMSセル(ファイン)227によって概念的に示されるように、ペアのビットライン端子を操作する。条件付きプリチャージャは、(他の回路、例えば、ワードライン回路252及び/又はセンスアンプ回路224と併せて)ファイン部分222のメモリストリングを条件付きでプリチャージするように動作する。
【0053】
センスアンプ回路224は、1又は複数の予め定められた閾値に従ってファイン部分222のセンスアンプ端子の各々の電流及び/又は電圧変化を判定することが可能であるセンス回路を含む。例えば、センスアンプ回路224は、センスアンプ端子の各々についてセンスアンプを含む。センスアンプは、(他の回路、例えば、ワードライン回路252及び/又はビットライン回路221と併せて)ファイン部分222のメモリストリングの電流及び/又は電圧変化を判定するように動作する。センスアンプ回路224は、センスアンプの各々についての単一2進数桁など、変化の結果を後処理(カウント)225に提供する。各単一2進数桁は、2つの相互に排他的な条件、すなわち、(1)変化が閾値より小さい、又はそれに等しいこと、及び、(2)変化が閾値より大きいこと、の1つを示す。
【0054】
ファイン部分222のメモリストリングの電流及び/又は電圧変化は、例えば、メモリストリングの直列に結合されたメモリデバイスの格納された値、及び、ワードライン回路252によってワードラインに提供される値に基づく、条件付きでプリチャージメモリストリングの選択的放電に起因する。
【0055】
後処理(カウント)225は、変化が閾値より大きい(又は代替的に、閾値より小さい、又は、それに等しい)ことを示すセンスアンプ回路224のセンスアンプはいくつかをカウントすることが可能であるカウント回路を含む。カウントは、ファインサーチ結果226を介して(例えばホストに)提供される、コース部分212及び/又はファイン部分222に格納された様々な値とそれぞれ比べられるコースサーチパラメータ219及び/又はファインサーチパラメータ229の相対的なマッチを示す。別の例では、センスアンプ回路224のセンスアンプの第1部分の出力は、ファインサーチ結果226を介して提供される第1結果として共にカウントされ、センスアンプ回路224のセンスアンプの残り部分の出力は、ファインサーチ結果226を介して提供される第2結果と共にカウントされる。ファインサーチパラメータ229の様々な部分、例えば、1又は複数のハイパーディメンションの比較を可能にするために、センスアンプ及びカウントの様々な構成が使用可能である。
【0056】
したがって、ファインサーチ結果226は、コース部分212に格納されたコースサーチパラメータ219情報、ファインサーチパラメータ229に基づく情報、ファイン部分222に格納された情報、及び、後処理(カウント)225によって実行されるようなカウントに基づく情報を包含する。
【0057】
ワードライン回路252は、2つのモードで、例えば、動作の第1フェーズ中に第1モード、次に、動作の第2フェーズ中に第2モードで条件付きで動作することが可能であるワードライン変換及び駆動回路を含む。第1モードにおいて、1又は複数のサーチパラメータ、コースサーチパラメータ219(例えば、キー及び任意選択的にマスク)は、(例えば、キー情報218のそれぞれのインスタンスに対して並列に比較するために)コース部分212のメモリストリングを使用してコースサーチ機能を実行することに好適である電圧に変換される。第1モードにおいて、ワードライン回路252は、IMSセル(コース)217によって概念的に示されるペアの電圧を変換する。第2モードにおいて、第1モードにおける動作からの1又は複数の結果、コースサーチ結果215が、ファイン部分222のメモリストリングを使用してファインサーチ機能を実行するのに好適である電圧に変換される。いくつかの変形では、第2モードにおいて、第2モードにおいて使用されない回路はアクティブ化されない(例えば、コースサーチ部分におけるビットラインは、第2モードにおいてアクティブ化されない)。
【0058】
いくつかの変形及び/又は使用シナリオにおいて、動作の第1フェーズ中に、コース210は、厳密なマッチを可能にするTCAMとして機能し、センスアンプ回路214の最多で1つのセンスアンプが、厳密なマッチに対応する変更を検出する。(厳密なマッチの検出に応答する)動作の第2フェーズにおいて、ファイン220が1回操作される。ワードライン回路252は、(コースサーチ結果215上で表される厳密なマッチに対応する)アレイ250のワードラインのうち単一のものを、読み取りのために駆動する(例えば、電圧Vreadを提供する)。ワードライン回路252は、アレイ250の残りのワードラインを、通過させる(passing)ためにアクティブ化する(例えば、電圧Vpassを提供する)。
【0059】
コース210及び/又はファイン220は、様々な特徴に従って、独立に実装可能である。特徴は、マッチタイプ(例えば、厳密及び/又は近似)、マッチの数(ゼロ、1、及び/又は、複数)、及び、コースマッチの順序(並列又は逐次)を含む。例示的なマッチタイプは、厳密なマッチ及び近似的なマッチを含む。厳密なマッチは、全ビットマッチに対応し、例えば、サーチパラメータの全ビットがメモリストリングに記憶された値の全ビットにマッチする。近似的なマッチは、すべてよりも少ないビットマッチに対応し、例えば、1ビットを除く全ビットマッチ、2ビットを除く全ビットマッチ、又は代替的には或る割合のビットマッチ、例えば90%のビットマッチ(例えば、10ビットのうちの9)である。例えば、コース210は、厳密なマッチを実行することが可能であり、ファイン220は、近似的なマッチを実行することが可能である。別の例では、コース210及びファイン220の両方は、厳密なマッチを実行することが可能である(又は、近似的なマッチを実行することが可能である)。マッチの例示的な数は、最多で1つのマッチ、及び、最多で複数のマッチを含む。例えば、コース210は、最多で1つのマッチ(厳密又は近似のいずれか)を検出することが可能であり、ファイン220は、最多で1つのマッチ(厳密又は近似のいずれか)を検出することが可能である。別の例では、コース210は、最多で複数のマッチ(厳密又は近似のいずれか)を検出することが可能であり、ファイン220は、最多で複数のマッチ(厳密又は近似のいずれか)を検出することが可能である。コースマッチ順序の例は、ファイン部分222の単一の使用など、すべてのマッチ(厳密又は近似)の並列処理を含む。コースマッチ順序の別の例は、ファイン部分222のそれぞれの単一の使用における各マッチ(厳密又は近似)の直列処理を含む。例えば、2つのコースマッチがある場合、応答して、ファイン部分222が2回連続で、コースマッチの各々について1回使用される。以下は、マッチタイプ、マッチの数、及びコースマッチ順序のいくつかの例示的な組み合わせの記載である。
【0060】
いくつかの同様の変形及び/又は使用シナリオにおいて、センスアンプ回路214の複数のセンスアンプは、対応する複数の厳密なマッチを検出する。1つの技法によれば、複数のマッチに応答して、動作の第2フェーズが、厳密なマッチの各々について連続的に繰り返され、後処理(カウント)225によって実行されるようなカウントが、連続する反復にわたって実行される。例えば、センスアンプ回路214の第1、第2、及び第3のセンスアンプの各々は、厳密なマッチを検出する。応答して、動作の第2フェーズは、3回繰り返され(すなわち、第1の反復、第2の反復、及び第3の反復を含む3反復)、カウントは、3反復にわたって実行される。第1の反復は、カウントを開始する。動作の第2フェーズは、動作の第1フェーズにおけるマッチを検出する第1センスアンプによって検出されるマッチを使用して、第1回目に実行される。後処理(カウント)225は、カウントを開始するために、第1の反復において実行されるような動作の第2フェーズの結果を使用して、カウントを開始する。第2の反復は、カウントを継続する。動作の第2フェーズは、動作の第1フェーズにおけるマッチを検出する第2センスアンプによって検出されるマッチを使用して、第2回目に実行される。後処理(カウント)225は、第1の反復の結果の前にカウントされた結果を用いて、第2の第1の反復の結果をカウントすることによって、カウントを継続するために第2の反復において実行されるような動作の第2フェーズの結果を使用してカウントを継続する。第3の反復はカウントを完了する。動作の第2フェーズは、動作の第1フェーズにおけるマッチを検出する第3センスアンプによって検出されるマッチを使用して、第3回目に実行される。後処理(カウント)225は、第1及び第2の反復の前にカウントされた結果を用いて、第3の反復の結果をカウントすることによって、カウントを完了するために第3の反復において実行されるような動作の第2フェーズの結果を使用してカウントを完了する。別の技法によれば、複数のマッチに応答して、動作の第2フェーズが1回実行され、アレイ250の複数のワードラインがアクティブ化される(複数の厳密なマッチに対応する)。例えば、センスアンプ回路214の第1、第2、及び第3のセンスアンプの各々は、厳密なマッチを検出する。応答して、動作の第2フェーズは1回実行される。後処理(カウント)225は、カウントを実行するために動作の第2フェーズの結果を使用して、カウントを実行する。
【0061】
いくつかの変形及び/又は使用シナリオにおいて、コース210は、厳密及び近似マッチTCAMとして動作可能である。動作の第1フェーズ中に、コース210は、厳密及び近似的なマッチを可能にするTCAMとして動作する。したがって、センスアンプ回路214のセンスアンプのゼロ又はより多くがマッチを検出する。応答して、動作の第2フェーズは、マッチの各々について連続で繰り返され、後処理(カウント)225によって実行されるようなカウントが、連続する反復にわたって実行される。1つの近似的なマッチ技法について、センスアンプ回路214のセンスアンプは、(例えば、異なる検知期間を介して直列に、又は、複数の検出機構の並列動作を介して並列に)1より多くの閾値に従って、変更を検出することが可能である。例えば、1つの閾値が厳密なマッチに対応し、別の閾値が近似的なマッチ(例えば、1又は2ビットを除くすべてのマッチ)に対応する。近似的なマッチのそれぞれの量は、それぞれの閾値を介して(例えば、それぞれの検知期間を介して)実装可能である。例えば、近似的なマッチの第1の量(2又はより少ないビットのミスマッチに対応する)は、第1閾値を介して(例えば、第1検知期間を介して)実装される。近似的なマッチの第2の量(4又はより少ないビットのミスマッチに対応する)が、第2の閾値を介して(例えば、第1検知期間より大きい第2検知期間を介して)実装される。
【0062】
いくつかの変形及び/又は使用シナリオにおいて、ファイン220は、ワードライン値に従って、サーチパラメータに対して、格納された情報を厳密に、及び近似的にマッチするように動作可能である。動作の第2フェーズ中に、ファイン220は、厳密及び近似的なマッチを検出するように動作し、したがって、センスアンプ回路224のセンスアンプのうちゼロ又はより多くがマッチを検出する。各検出は、それぞれのマッチが厳密であるか、又は近似的であるかを示す。更に、コース210についての近似的なマッチに関して記載されるものなどの技法がファイン220に適用可能である。後処理(カウント)225は、厳密及び近似的なマッチを適宜にカウントすることが可能である。例えば、厳密なマッチは、近似的なマッチより大きい値をカウントする。
【0063】
アレイ250のディメンション、並びに、コース部分212及びファイン部分222の間の割り当てが、利用に従って変動する。例えば、コース部分212は、N個のメモリストリングを有し、ファイン部分222は、M個のメモリストリングを有し、アレイ250は合計でN+Mのメモリストリングを有する。メモリストリングの各々は、アレイ250における合計L×(N+M)個のメモリデバイスについて、メモリストリングの各々において(連続する)L個のメモリデバイスを有する。アレイ250に結合されたワードライン回路252のL個のワードラインがある。ワードラインの各々は、概念的に「アレイ250」の「幅」全体にわたって、N+M個のメモリデバイスを(並列に)結合する。コース部分212のN個のメモリストリングの各々は、ビットライン回路211のそれぞれのビットライン回路及びセンスアンプ回路214のそれぞれのセンスアンプに結合される。したがって、ビットライン回路211にN個のビットライン回路、及び、センスアンプ回路214にN個のセンスアンプがある。同様に、ファイン部分222におけるM個のメモリストリングの各々は、ビットライン回路221におけるそれぞれのビットライン回路、及び、センスアンプ回路224のそれぞれのセンスアンプに結合される。したがって、ビットライン回路221にM個のビットライン回路があり、センスアンプ回路224にM個のセンスアンプがある。具体的な例として、N=48、M=128K-48、及びL=48である。別の具体的な例として、N=232、M=128K-232、及びL=232である。
【0064】
いくつかの変形において、コースサーチ結果215が、例えば、ホストへのインタフェース回路を介して、どこかで選択的に提供される。
【0065】
センスアンプ回路224及び後処理(カウント)225の間の機能の区分は任意である。例えば、センスアンプ回路224に組み込まれた後処理(カウント)225のいくつかの、又はすべての機能を有する変形が想定され、その逆も成立する。
【0066】
IMSセル(コース)217の例示的な実装は、図6A及び図6Bに関して記載される。IMSセル(ファイン)227の例示的な実装が、図6C及び図6Dに関して記載される。いくつかの変形において、IMSセルにおけるデバイス(コース)217及び/又はIMSセル(ファイン)227のペアが、SONOSデバイスのペアを用いて実装される。
コンピュテーショナルメモリ――IMS=>IMC
【0067】
コンピュテーショナルメモリの第2の例(IMC動作が後に続くIMS動作)に継続して、第1の例と同様に、単一のコンピュテーショナルメモリアレイは、コースサーチの結果に応じた計算が後に続くコースサーチをそれぞれ実行することが可能である(例えば、TCAMとして動作する)2つの部分(IMS動作について1、IMC動作について1)を有する。概念的に、コースサーチ部分は、(例えば、ワードライン入力を介して)フィルタを実装して、計算部分によって実行される計算(例えば、ビットライン入力を介して計算)を低減する。
【0068】
動作の例として、コースサーチ部分は、第1の例と同様であり、同様に使用される。したがって、コースサーチ部分は、TCAMとして操作され、例示的な結果は、ワンホットエンコーディングされる。更に、コースサーチ部分からのマッチは次に、アレイのワードラインについての値を生成(計算)するために使用される。同時に、計算部分のビットラインは、ドット積の第1ベクトル入力のそれぞれの項/ビットに従って操作されるなど、計算に従って操作される。計算部分のメモリセルにおける格納された情報は、ドット積の第2入力ベクトルのそれぞれの項/ビットに対応する。
【0069】
具体的な例として、TCAMの結果は、マッチされたカテゴリに対応し、第1ベクトル入力は、ニューロン値に対応し、第2ベクトル入力は、ニューロン値に適用するための重みに対応する。別の具体的な例として、計算部分のビットラインは、第1ベクトル入力を表す(例えばアナログ)電圧に駆動される(各ビットライン電圧は、第1ベクトルの要素に対応する)。メモリセルの閾値電圧は、第2入力ベクトルを表す電圧にプログラムされる(各メモリセル閾値電圧は、第2ベクトルの要素に対応する)。ビットラインにわたる電流の加算(summing)(任意選択的に、スケーリング(scaled))は、個別の積(ビットライン電圧に、閾値電圧によって部分的に判定されたメモリセル電流を乗算した値)を、第1及び第2入力ベクトルのドット積結果に累積するように機能する。スケーリングの1つの形態は、2進値を効果的にエンコーディングすることなどのために、2の累乗に従う。スケーリングの別の形態は、特徴の有意性に従うスケーリングなど、相対的な重要性に従う。いくつかの変形は、計算部分のすべてのビットラインにわたって単一の和を生成する。他の変形は、計算部分のビットラインのそれぞれのグループに対応する複数の和を生成する。
【0070】
計算部分における検知は、多値であり、デジタル又はアナログ技法のいずれかを介してエンコーディングされる。例えば、アナログ技法において、計算部分のセンスアンプは、ビットライン変更に応答し、アナログ出力を生成し、それは次に、任意選択的にアナログ技法を介してスケーリングされる。次に、スケーリングされたアナログ出力は、例えば、アナログ加算を介して組み合わされ、計算結果を生成する。具体的な例の文脈において、計算結果は、ドット積結果に対応する。計算結果は任意選択的に、2進表現に変換される。
【0071】
図3は、コースサーチ、それに続く、コースサーチの結果に応じた計算を実行するための例示的なコンピュテーショナルメモリをコンピュテーショナルメモリ300として示す。
【0072】
図2のコンピュテーショナルメモリ200と同様に、コンピュテーショナルメモリ300は、2つの部分、すなわち、コースサーチを実行するためのコース310、及び、計算を実行するための計算320を含む。コース部分312及び計算部分322は、同一のメモリアレイの部分、アレイ350である。ワードライン回路352は、コースサーチの結果を計算に提供することが可能である。
【0073】
図3のいくつかの要素は、図2の対応する要素と同一、実質的に同様、又は同様であり、その更なる記載については、対応する要素を参照されたい。例えば、センスアンプ回路314は、センスアンプ回路214のように、コース部分312のセンスアンプ端子の各々の電流及び/又は電圧変化を判定することが可能であるセンス回路を含む。別の例では、IMSセル(コース)317及びキー情報318はそれぞれ、IMSセル(コース)217及びキー情報218に対応する。最後の例として、ビットライン回路311は、ビットライン回路211のように、予め定められた値に従って、ビットライン端子の各々を操作することが可能であるビットライン回路を含む。更に、アレイ350はアレイ250に対応し、コース310はコース210に対応し、計算320は、ファイン220(後処理(カウント)225等とは異なる機能を有する後処理(スケーリング及び加算)325)に概ね対応する。図3の要素は、要素識別子の最後の2桁によって識別される図2の要素に対応する。したがって、以下の記載では、動作が図2の対応する要素とは異なる、又は、図2に存在しない図3の要素に焦点を当てる。
【0074】
コンピュテーショナルメモリ200は、コースサーチを目的とし、次に、ファインサーチを目的とする。対照的に、コンピュテーショナルメモリ300は、コースサーチを目的とし、次に、計算を目的とする。コースサーチを考慮すると、いくつかの変形において、コース310は、コース210と同一に動作する。ファインサーチに対して計算を考慮すると、計算320は、ファイン220とは異なるように動作する。ビットライン回路321は、重み328に対するビットライン回路221(IMSセル(ファイン)227)によって例示されるようなペアではなく、個々に計算部分322のメモリストリングを操作する。ビットライン回路321は任意選択的に、アナログ値に従って、メモリストリングを駆動することが可能である。計算部分322は任意選択的、アナログ値を格納することが可能である。センスアンプ回路324及び後処理(スケーリング及び加算)325は、任意選択的に、アナログ値などを用いて動作することが可能である。
【0075】
より具体的には、ビットライン回路321は、条件付きプリチャージ技法又は継続的に提供される技法などを介して、それぞれの電圧及び/又は電流に対して互いに独立してビットラインを操作することが可能である。センスアンプ回路324のセンスアンプは、デジタル(例えば、それぞれの複数の端子上の複数のビット)又はアナログ(例えば、単一の端子上の異なる電流)技法のいずれかを介して、2より多くの値を表すことが可能である。後処理(スケーリング及び加算)325は、1又は複数のスケールファクタに従って、センスアンプ結果(電圧又は電流)を任意選択的にスケーリングすることが可能である。例えば、それぞれのスケールファクタは、センスアンプ回路324のセンスアンプ出力のそれぞれのグループに適用される。スケーリングの1つの形態は、アナログ技法を介するものである。スケーリングの別の形態は、デジタル技法を介するものである。後処理(スケーリング及び加算)325は更に、例えば、アナログ加算及び/又はデジタル加算を介して、任意選択的にスケーリングされたセンスアンプ出力を組み合わせることが可能である。後処理(スケーリング及び加算)325の1又は複数の出力は、計算結果326を介して1又は複数の結果として提示される。いくつかの変形において、センスアンプ回路324及び後処理(スケーリング及び加算)325の動作は、組み合わされ、(例えば、アナログ加算を介する)組み合わせは概念的、いくつかの又はすべての検知の前に発生し、低減された数のセンスアンプが使用される。いくつかの変形において、計算結果326の出力は、アナログであり、他の変形において出力はデジタルである。
【0076】
ファイン部分222のように、計算部分322のメモリストリングの電流及び/又は電圧変化は、例えば、メモリストリングの直列に結合されたメモリデバイスの格納された値、及び、ワードライン回路352によってワードラインに提供される値に基づく、条件付きでプリチャージメモリストリングの選択的放電に起因する。
【0077】
したがって、計算結果326は、コースサーチパラメータ319に基づく情報、コース部分312に格納される情報、計算パラメータ329に基づく情報、計算部分322に格納された情報、及び、後処理(スケーリング及び加算)325によって実行される加算を包含する。
【0078】
ワードライン回路252のように、ワードライン回路352は、動作のそれぞれの第1及び第2フェーズ中に、2つのモードで条件付きで動作することが可能である。動作の第1モードは、ワードライン回路252と同一である。まとめると、1又は複数のサーチパラメータ(コースサーチパラメータ319)が、(キー情報318によって概念的に示されるように)コース部分312のメモリストリングを使用してコースサーチ機能を実行するのに好適な電圧に(IMSセル(コース)317によって概念的に示されるように)ペアで変換される。第2モードにおいて、第1モードにおける動作からの1又は複数の結果、コースサーチ結果315は、(ファイン部分222のようにファインサーチ機能ではなく)計算部分322のメモリストリングを使用して計算機能を実行するのに好適な電圧に変換される。例えば、ワードライン回路352は、読み取り(例えば、電圧Vreadを提供する)のために、コースサーチ結果315によって表されるアレイ350のワードラインのうちゼロ又はより多くを駆動する(厳密なマッチに対応する)。ワードライン回路352は、通過させるために、アレイ350の残りのワードラインを駆動する(例えば、電圧Vpassを提供する)。
【0079】
重みとして使用されるメモリセルの例が重み328として示される。いくつかの変形において、重みとして使用される各メモリセルは、それぞれのSONOSデバイスを用いて実装され、それぞれの重み値は、それぞれの閾値電圧として実装される。いくつかの変形において、重みとして使用される各メモリセルは、SLC技法、MLC技法、TLC技法、QLC技法、又はアナログ技法を使用して実装される。
【0080】
カテゴリとして使用されるメモリセルの行の例がカテゴリ327として示される。
【0081】
いくつかの変形及び/又は使用シナリオにおいて、計算部分322の小部分が、それぞれの特徴に従って使用され、計算部分322の全体にわたる後処理(スケーリング及び加算)325における加算は、特徴にわたる全体スコアを生成する。全体スコアは、例えば、最高スコアの複数のインスタンスをランク付けすることなどのために、分類結果として使用可能である。いくつかの変形において、計算320は、照会及び計算部分322における選択されたインスタンスの間の可能性スコアを計算するMAC処理を実行するために機能する。選択されたインスタンスは、コース310によって判定され、効率を改善するために機能する。
コンピュテーショナルメモリ――IMS=>アクセス
【0082】
コンピュテーショナルメモリの第3の例(アクセス動作が後に続くIMS動作)に継続して、第1の例と同様に、単一コンピュテーショナルメモリアレイは、コースサーチの結果に応じたアクセス動作が後に続くコースサーチ(例えば、TCAMとして動作する)をそれぞれ実行することが可能である2つの部分(IMS動作に1つ、アクセス動作に1つ)を有する。概念的には、コースサーチ部分は、(例えばワードライン入力を介して)フィルタを実装し、アクセス部分によって実行されるアクセスコストを低減する(例えば、1又は複数の結果の値を提供する)。
【0083】
動作の例として、コースサーチ部分は、第1の例と同様であり、同様に使用される。したがって、コースサーチ部分は、TCAMとして操作され、例示的な結果は、ワンホットエンコーディングされる。更に、コースサーチ部分からのマッチは次に、アレイのワードラインについての値を生成(アクセス動作)するために使用される。同時に、アクセス動作部分のビットラインが、ワードラインによって選択されるように、アクセス動作部分のメモリセルから格納された値を読み取ることを可能にするように操作される。アクセス動作部分のセンスアンプは、選択されたメモリセルから格納された値を検出し、例えば、データのページを提供する。
【0084】
具体的な例として、コースサーチ部分における格納された値は、キー値に対応し、それぞれの値に対応するアクセス動作部分における格納された値に対して、(任意選択的にマスクされた)入力キーをマッチさせる。コースサーチ部分は、最多で1つのマッチが見つかるように使用され、1つのワードラインのみがアクセス動作中にアクティブ化される。したがって、コンピュテーショナルメモリは、キー値ストアとして動作可能である。
【0085】
図4は、コースサーチの結果に応じたアクセス動作が後に続くコースサーチを実行するための例示的なコンピュテーショナルメモリをコンピュテーショナルメモリ400として示す。
【0086】
図2のコンピュテーショナルメモリ200と同様に、コンピュテーショナルメモリ400は、2つの部分、すなわち、コースサーチを実行するためのコース410、及び、アクセス動作を実行するためのアクセス420を含む。コース部分412及びアクセス部分422は、同一のメモリアレイアレイ450の部分である。ワードライン回路452は、コースサーチの結果をアクセス動作に提供することが可能となる。
【0087】
図4のいくつかの要素は、図2の対応する要素と同一、実質的に同様、又は同様であり、その更なる記載については、対応する要素を参照されたい。例えば、IMSセル(コース)417及びキー情報418はそれぞれ、IMSセル(コース)217及びキー情報218に対応する。更に、アレイ450はアレイ250に対応し、コース410はコース210に対応し、アクセス420はファイン220に概ね対応し(ビットライン回路421は、ファインサーチパラメータ229に対応する入力が無く、後処理(カウント)225は、ファイン220における対応する要素が無い)、以下同様である。図3のように、図4の要素は、要素識別子の最後の2桁によって識別される図2の要素に対応する。したがって、以下の記載は、図2の対応する要素とは動作が異なる図4の要素に焦点を当てる。
【0088】
ワードライン回路252と同様に、ワードライン回路452は、読み取りのために、(コースサーチ結果415に表される厳密なマッチに対応する)アレイ450のワードラインのうち単一のものを駆動する(例えば、電圧Vreadを提供する)。ワードライン回路452は、アレイ450の残りのワードラインを、通過させるためにアクティブ化する(例えば、電圧Vpassを提供する)。
【0089】
ビットライン回路421は、形態的にビットライン回路221に対応するが、予め定められた値に従ってアクセス部分422のビットライン端子を操作するという点で異なり、例えば、(ビットライン回路211と同様に)ビットライン端子の各々についてのプリチャージャを含む。プリチャージャは、(他の回路、例えば、ワードライン回路452及び/又はセンスアンプ回路424と併せて)アクセス部分422のメモリストリングをプリチャージするように動作する。
【0090】
センスアンプ回路424は、センスアンプ回路224に対応する。しかしながら、更なる処理のために結果を別の要素に提供するのではなく、結果は、アクセス結果426として、(例えば、2進エンコーディングにおいて)直接提供される。結果は、選択されたデータのページに対応し、その例はページデータ427として示される。
【0091】
したがって、アクセス結果426は、コースサーチパラメータ419に基づく情報、並びに、コース部分412及びアクセス部分422に格納される情報を包含する。
【0092】
上記コンピュテーショナルメモリのいくつかの変形において、ワードラインは、アレイの2つの部分にわたって連続する。例えば、ワードライン(例えば、WL1...WL48)は、コース部分212及びファイン部分222(図2)にわたって連続する。他の例では、ワードラインは、コース部分312及び計算部分322(図3)、並びに、コース部分412及びアクセス部分422(図4)にわたって連続する。いくつかの変形において、2つの部分のワードラインは、別々に駆動される。例えば、ワードラインは、2つの部分の間で連続しない。
【0093】
上記コンピュテーショナルメモリのいくつかの変形において、ビットライン回路及び/又はセンスアンプ回路は、アレイの2つの部分の間で区分される。例えば、ビットライン回路211及びビットライン回路221は、コース部分212及びファイン部分222(図2)に及ぶビットライン回路の2つのセグメントである。他の例では、ビットライン回路311及びビットライン回路321は、コース部分312及び計算部分322(図3)に及ぶビットライン回路の2つのセグメントであり、ビットライン回路411及びビットライン回路421は、コース部分412及びアクセス部分422に及ぶビットライン回路の2つのセグメントである。同様の例では、センスアンプ回路214及びセンスアンプ回路224は、コース部分212及びファイン部分222(図2)に及ぶセンスアンプ回路の2つのセグメントである。他の同様の例では、センスアンプ回路314及びセンスアンプ回路324は、コース部分312及び計算部分322(図3)に及ぶセンスアンプ回路の2つのセグメントであり、センスアンプ回路414及びセンスアンプ回路424は、コース部分412及びアクセス部分422に及ぶセンスアンプ回路の2つのセグメントである。区分されたセンスアンプ回路のいくつかの例において、センスアンプ後処理がセンスアンプ回路のセグメントに含まれる。例として、センスアンプ回路214が、センスアンプ回路の第1セグメントに含まれ、センスアンプ回路224は、後処理(カウント)225とまとめて、センスアンプ回路(図2)の第2セグメントに含まれる。別の例として、センスアンプ回路314がセンスアンプ回路の第1セグメントに含まれ、センスアンプ回路324は、後処理(スケーリング及び加算)325とまとめて、センスアンプ回路の第2セグメント(図3)に含まれる。
【0094】
上記コンピュテーショナルメモリのいくつかの変形において、ビットラインが入力として使用されているかどうかに応じて、ビットラインが、例えば予め定められた値に従って、又は動的値に従ってプリチャージされる。他の変形において、ビットラインは、プリチャージされるのではなく、予め定められた又は動的値に従って駆動される。
【0095】
上記コンピュテーショナルメモリのいくつかの変形において、各メモリセルは、例えば、2進又はアナログ技法を介して、1又は複数のシンボルを格納することが可能である。例えば、メモリセルは、デバイス閾値電圧などのアナログ値として単一シンボルを格納することが可能である。具体的な例として、SONOSセルの閾値電圧をプログラムすることは、(例えばアナログ)データストレージのために使用可能である。別の例では、メモリセルは、SLC技法を使用して、例えば、情報の単一ビットとして解釈される単一シンボルを格納することが可能である。他の例では、メモリセルは、MLC、TLC、又はQLC技法を使用して、複数のシンボルを格納することが可能である。
【0096】
上記コンピュテーショナルメモリのいくつかの変形において、(例えば、ページバッファ回路として実装される)ページバッファ及び/又は(例えば、ページキャッシュ回路として実装される)ページキャッシュが、結果を格納するために使用される。例えば、ファインサーチ結果226が、ファイン部分222(図2)と関連付けられてページバッファに格納される。他の例では、計算結果326は、計算部分322(図3)と関連付けられてページバッファに格納され、アクセス結果426は、アクセス部分422(図4)と関連付けられてページバッファ及び/又はページキャッシュに格納される。別の例では、アクセス結果426が、センスアンプ回路424に結合されたページキャッシュ回路に格納される。ページキャッシュ回路は、アクセス部分422から読み取られた結果のページをキャッシュすることが可能である。結果のページは、例えば、ページデータ427に格納された情報に対応する。
コンピュテーショナルメモリデバイス
【0097】
いくつかの要素(例えば、集積回路、システムオンチップの1又は複数のダイ、及び/又は、パッケージングダイ)は、スタンドアロンコンポーネントとして使用可能及び/又はシステムにおけるコンポーネントとして使用可能であるメモリコンポーネントを実装するための1又は複数の任意選択のハードウェア回路ブロックと共に、1又は複数のコンピュテーショナルメモリ(図2のコンピュテーショナルメモリ200、図3のコンピュテーショナルメモリ300、及び/又は、図4のコンピュテーショナルメモリ400など)を含む。例えば、ハードウェア回路は、コンピュテーショナルSSDにおけるコンピュテーショナルメモリ(構成可能コンピュテーショナルメモリデバイス765としての、図7のコンピュテーショナルSSD700、及び/又は、図8のコンピュテーショナルSSD840など)の使用を可能にする。別の例では、任意選択のハードウェア回路ブロックは、システムオンチップのコンポーネントとしてのコンピュテーショナルメモリの使用を可能にする。
【0098】
例示的な任意選択のハードウェア回路ブロックは、I/Oインタフェース、コントローラ、及びアナログソースである。
【0099】
I/Oインタフェースは、コンピュテーショナルメモリを使用するために、コンピュテーショナルメモリの外部のエージェント(ホストなど)にインタフェースすることを可能にする。例示的な使用は、コンピュテーショナルメモリのアレイを構成すること(図5のアレイの構成501など)、コンピュテーショナルメモリのアレイをプログラムすること(図5のアレイのプログラム502など)、第1機能を実行し任意選択的で第1機能(図5の第1機能503など)の結果を受信するようにコンピュテーショナルメモリに指示すること、第2機能を実行し任意選択的に第2機能(図5の第2機能504など)の結果を受信するようにコンピュテーショナルメモリに指示することである。
【0100】
コントローラは、1又は複数のコンピュテーショナルメモリの様々なハードウェア回路ブロックの、及びその間の動作の全体的な制御を提供することが可能である。例えば、コントローラは、コンピュテーショナルメモリのメモリアレイの部分との間で、I/Oインタフェースの動作を調整する。別の例では、コントローラは、構成情報を参照して、アナログソースの動作を調整する。別の例では、コントローラは任意選択的に、第1機能に応じた第2機能の順序を調整する。
【0101】
アナログソースは、1又は複数のアナログ出力を生成し、及び/又は、例えば、コンピュテーショナルメモリのメモリアレイ、ビットライン回路、センスアンプ回路、及び/又はワードライン回路に提供することが可能である。アナログ出力は、例えば1又は複数のバイアス回路によって生成されるようなゼロ個又はそれよりも多くの電圧及び/又は電流源(参照源等)を備える。
コンピュテーショナルメモリ動作
【0102】
図5は、他の図のいずれかにおいて示される、又は参照されるコンピュテーショナルSSD技法などに関して、コンピュテーショナルメモリを操作するための技法についての例示的なフロー図を示す。
【0103】
フローは、4つのアクション、すなわち、アレイの構成501、アレイのプログラム502、第1機能503、及び第2機能504で進行する。フローは、3種類の専用アレイの1つ、及び、3種類の専用アレイの任意の1又は複数に従って構成可能であるアレイについてのものである。専用アレイのタイプの各々についてのフローが記載され、次に、構成可能なアレイについてのフローが記載される。
【0104】
3種類の専用アレイのいずれかについてのフローは、アレイのプログラム502で開始する。第1サーチに応じた第2IMS(ファインサーチ)が後に続く第1IMS(コースサーチ)に特化したアレイ(図2のアレイ250など)を考慮する。フローの詳細は、コース519及びファイン529のアクションによって示される。
【0105】
フローは、値を専用アレイのそれぞれの部分に格納することによって、アレイのプログラム502で開始する。アレイのコースサーチ部分は、アレイのコースサーチ部分を使用してマッチのためにサーチされる値を用いてプログラムされる(コースアレイのプログラム512)。アレイのファインサーチ部分は、アレイのファインサーチ部分のビットラインを介して供給されるサーチ情報を格納しマッチするための値を用いてプログラムされる(ファインアレイのプログラム522)。
【0106】
その後、フローは、第1機能503に進む。2つの機能のうち第1のもの(コースサーチに対応する)は、アレイのコースサーチ部分を使用して実行される。アレイのワードラインは駆動され、アレイのコースサーチ部分のビットラインは、操作及び検知される(WLの駆動、BLの操作、検知513)。より具体的には、アレイのワードラインは、コースサーチ情報(例えば、キー情報及び任意選択的にマスク)に従って駆動される。アレイのコースサーチ部分のビットラインは、アレイのコースサーチ部分がワードラインに関して可読メモリとして動作することを可能にする予め定められた値、及び、アレイのコースサーチ部分にプログラムされた値に従って操作される。アレイのコースサーチ部分のビットラインは、ワードライン、及び、第1機能の結果としてプログラムされた値の間のマッチを判定するために検知される。第1機能の結果(コースサーチ)は、第2機能による使用のために提供される。
【0107】
その後、フローは第2機能504に進む。2つの機能のうち第2のもの(ファインサーチ)は、アレイのファインサーチ部分を使用して実行される。アレイのワードラインが駆動され、アレイのファインサーチ部分のビットラインが操作され、検知され、カウントされる(WLの駆動;BLの操作;検知及びカウント524)。より具体的には、ワードラインは、コースサーチの結果に従って駆動される。アレイのファインサーチ部分のビットラインは、アレイのファインサーチ部分の格納された値のうち、アレイのファインサーチ部分が(並列に)サーチするサーチパラメータとして提供される、それぞれの動的値に従って操作される。アレイのファインサーチ部分のビットラインは、マッチを判定するために検知され、次に、マッチは、全体の1又は複数の最高のマッチを第2機能の結果として判定するために(例えば、1又は複数グループにおいて)カウントされる。第2機能の結果(ファインサーチ)は次に、他のエージェントによる使用のために利用可能である。したがって、第2IMSが後に続く第1IMSに特化したアレイのためのフローが完了される。
【0108】
次に、IMSに応じたIMC(計算)が後に続くIMS(コースサーチ)に特化したアレイ(図3のアレイ350など)を考慮する。フローの詳細は、コース519及び計算539のアクションによって示される。
【0109】
第1及び第2IMSサーチに特化したアレイについては、フローは、専用アレイのそれぞれの部分に値を格納することにより、アレイのプログラム502で開始する。アレイのコースサーチ部分は、アレイのコースサーチ部分を使用してマッチのためにサーチされる値を用いてプログラムされる(コースアレイのプログラム512)。アレイの計算部分は、アレイの計算部分のビットラインを介して供給される計算パラメータを格納し、それを用いて計算するための値でプログラムされる(計算アレイのプログラム532)。
【0110】
第1及び第2IMSサーチに特化したアレイについては、フローはその後、第1機能503に進み、ワードラインを駆動しアレイのコースサーチ部分のビットラインを操作及び検知することによって第1機能を実行する(WLの駆動;BLの操作;検知513)。第1機能の結果(コースサーチ)は、第2機能による使用のために提供される。
【0111】
第1及び第2IMSサーチに特化したアレイについては、フローはその後、第2機能504に進む。2つの機能のうち第2のもの(計算)が、アレイの計算部分を使用して実行される。アレイのワードラインが駆動され、アレイの計算部分のビットラインが操作され、検知され、加算される(WLの駆動;BLの操作;検知及び加算534)。より具体的には、アレイのワードラインは、コースサーチの結果に従って駆動される。アレイの計算部分のビットラインは、アレイの計算部分が、アレイの計算部分の格納された値と共に(並列に)計算オペランドとして使用する計算パラメータとして提供されるそれぞれの動的値に従って操作される。アレイの計算部分のビットラインは、それぞれの中間の結果(例えば、それぞれのアナログ電流又は電圧)を判定するために検知される。中間の結果は次に、組み合わされて(例えば、アナログ技法を使用して加算されて)、第2機能の1又は複数の結果を生成する。結果は任意選択的にデジタル表現に変換される。いくつかの変形において、検知及び加算が共に実行される。第2機能(計算)の結果は次に、他のエージェントによる使用のために利用可能である。したがって、IMCが後に続くIMSに特化したアレイについてのフローが完了する。
【0112】
次に、IMSに応じたアクセス動作が後に続くIMS(コースサーチ)に特化したアレイ(図4のアレイ450など)を考慮する。フローの詳細は、コース519及びアクセス549のアクションによって示される。
【0113】
第1及び第2IMSサーチに特化したアレイについては、フローは、専用アレイのそれぞれの部分に値を格納することにより、アレイのプログラム502で開始する。アレイのコースサーチ部分は、アレイのコースサーチ部分を使用してマッチのためにサーチされる値を用いてプログラムされる(コースアレイのプログラム512)。アレイのアクセス動作部分は、その後のアクセス動作による読み取りのために利用可能である、格納する値を用いてプログラムされる(アクセスアレイのプログラム542)。
【0114】
第1及び第2IMSサーチに特化したアレイについては、フローはその後、第1機能503に進み、ワードラインを駆動しアレイのコースサーチ部分のビットラインを操作及び検知することによって第1機能を実行する(WLの駆動;BLの操作;検知513)。第1機能の結果(コースサーチ)は、第2機能による使用のために提供される。
【0115】
第1及び第2IMSサーチに特化したアレイについては、フローはその後、第2機能504に進む。2つの機能のうち第2のもの(アクセス動作)が、アレイのアクセス動作部分を使用して実行される。アレイのワードラインが駆動され、アレイのアクセス動作部分のビットラインが操作及び検知される(WLの駆動;BLの操作;検知544)。より具体的には、ワードラインは、コースサーチの結果に従って駆動される。アレイのアクセス動作部分のビットラインは、アレイのアクセス動作部分がワードラインに関して可読メモリとして動作することを可能にする予め定められた値、及び、アレイのファインサーチ部分においてプログラムされた値に従って操作される。アレイのアクセス動作部分のビットラインは、第2機能の1又は複数の結果をまとめて形成するそれぞれのデジタル結果を判定するために検知される。第2機能(アクセス動作)の結果は次に、他のエージェントによる使用のために利用可能である。したがって、アクセス動作が後に続くIMSに特化したアレイについてのフローが完了する。
【0116】
構成可能なアレイのフローは、アレイの構成501のアクションで開始する。構成可能なアレイ(図2図3、及び/又は図4の要素の構成可能な組み合わせなど)は、それぞれのタイプの動作の各々に特化した割り当て、すなわち、ファインサーチ、計算、及びアクセス動作に従って構成される。
【0117】
次に、フローは構成可能550によって示されるような構成に従って、各割り当てについて(任意選択的に並列で)個々に進む。したがって、第1IMSサーチに応じた第2IMS(ファインサーチ)が後に続く第1IMS(コースサーチ)として構成された各割り当てについて、フローがコース519及びファイン529に従って進む。IMSサーチに応じたIMC(計算)が後に続く第1IMS(コースサーチ)として構成される各割り当てについては、フローがコース519及び計算539に従って進む。IMSに応じたアクセス動作が後に続く第1IMS(コースサーチ)として構成された各割り当てについては、フローは、コース519及びアクセス549に従って進む。
例示的なワードライン及びビットラインベースのサーチ
【0118】
図6A及び図6Bは、ワードライン上で提供される情報を介するサーチをまとめて示す。図6C及び図6Dは、ビットライン上で提供される情報を介するサーチをまとめて示す。
【0119】
第1から図6A図6B、及び、ワードラインを介したサーチを参照すると、コース部分612及びIMSセル(コース)617はそれぞれ、図2のコース部分212及びIMSセル(コース)217に対応する(ただし、図6Aは、図2に示されるいくつかの詳細を省略する)。T1 671及びT2 672は、BL1 693上で連続し、それぞれワードラインWL1 691及びWL2 692に結合される。図6Bは、格納された情報に対してサーチ情報をマッチすることを可能にする、T1 671及びT2 672をプログラムするための閾値電圧、並びに、WL1 691及びWL2 692を駆動するためのサーチ電圧の例を示す。
【0120】
図6Bに示されるT1 671及びT2 672についての閾値電圧は、ゼロだけ(「0」)、1だけ(「1」)、何でも(「X」)、及び無し(「無効」)に対するマッチを可能にするエンコーディングを指定する。図6Bに示されるWL1 691及びWL2 692についてのサーチ電圧は、ゼロだけ「0」、1だけ(「1」)、何でも/ワイルドカード(「WC」)、及び無し(「無効」)をサーチすることを可能にするエンコーディングを指定する。1つの具体的な例として、ゼロに対するマッチのために、T1 671は、Vt.Highの閾値電圧にプログラムされ、T2 672は、Vt.Lowの閾値電圧にプログラムされる。ゼロをサーチするために、WL1 691は、V.High2に駆動され、WL2 692は、V.High1に駆動される。図6Bにおける表の最終行は、2つの閾値電圧Vt.Low及びVt.High、並びに、2つのサーチ電圧V.High1及びV.High2の間の例示的な関係を示す。具体的には、2つの閾値電圧(Vt.Low及びVt.High)は、2つのサーチ電圧(V.High1及びV.High2)のいずれかより低い。換言すると、2つのサーチ電圧は、2つの閾値電圧のいずれかより高い。追加的に、Vt.Lowは、Vt.Highより低い電圧であり、V.High1は、V.High2より低い電圧である。具体的な例として、Vt.Low(最低の電圧)は、-1V、Vt.Highは3V、V.High1は4V、V.High2(最高の電圧)は5Vである。
【0121】
動作中に、メモリアレイのコース部分のメモリデバイス(例えば、図2のコース部分212のBL1、...BL48のメモリデバイス)のペアは、図6Bに従って、サーチするためのデータを用いてプログラムされる。プログラムは、例えば、図5のコースアレイのプログラム512の一部として実行される。次に、サーチが、図6Bによるワードライン(例えば、図2のWL1、WL2、...、WL47、WL48)のペアの駆動に従って実行される。サーチは、図5のWLの駆動;BLの操作;検知513の一部として実行される。
【0122】
次に図6C図6D、及び、ビットラインを介してサーチを参照すると、ファイン部分622及びIMSセル(ファイン)627はそれぞれ、図2のファイン部分222及びIMSセル(ファイン)227に対応する(ただし、図6Cは、図2に示されるいくつかの詳細を省略する)。T1681及びT2682は、それぞれのビットラインBL128K-1698及びBL128K699に結合され、ワードラインを共有する。図6Dは、格納された情報に対するサーチ情報のマッチを可能にする、T1681及びT2682をプログラムするための閾値電圧、並びに、BL128K-1698及びBL128K699を駆動するためのサーチ電圧の例を示す。
【0123】
図6Bと同様に、図6Dに示されるT1 681及びT2 682についての閾値電圧は、ゼロのみ(「0」)、1のみ(「1」)、何でも(「X」)、及び無し(「無効」)に対するマッチを可能にするためにエンコーディングを指定する。図6Dに示されるBL128K-1698及びBL128K699についてのサーチ電圧は、ゼロのみ「0」、1のみ(「1」)、何でも/ワイルドカード(「WC」)、及び無し(「無効」)のサーチを可能にするためにエンコーディングを指定する。1つの具体的な例として、ゼロに対するマッチのために、T1 681は、Vt.Highの閾値電圧にプログラムされ、T2 682は、Vt.Lowの閾値電圧にプログラムされる。ゼロをサーチするために、BL128K-1698がV.Highに駆動され、BL128K699がV.Lowに駆動される。図6Dにおける表の最終行は、閾値電圧Vt.Low及びVt.High、並びに、サーチ電圧V.Low及びV.Highの間の例示的な関係を示す。具体的には、2つの閾値電圧(Vt.Low及びVt.High)が、2つのサーチ電圧(V.Low及びV.High)の間の電圧レベルに関して混合される。V.Lowは最低の電圧であり、Vt.Lowは次に高い電圧であり、V.Highは次に高い電圧であり、Vt.Highは最高の電圧である。具体的な例として、V.Lowは0Vであり、Vt.Lowは1Vであり、V.Highは2Vであり、Vt.Highは3Vである。
【0124】
動作中に、メモリアレイのファイン部分のメモリデバイス(例えば、図2のBL49、BL50、BL128K-1、BL128Kのメモリデバイス)のペアが、図6Dに従って、サーチするためのデータを用いてプログラムされる。プログラミングは、例えば、図5のファインアレイのプログラム522の一部として実行される。次に、図6Dに従って、ビットライン(例えば、図2のBL128K-1及びBL128K)の駆動ペアに従ってサーチが実行される。サーチは、例えば、図5のWLの駆動;BLの操作;検知及びカウント524の一部として実行される。
【0125】
(例えば図6Bのような)ワードラインエンコーディングの例として、サーチ情報は2進キー値であり、ゼロ及び1のサーチだけが可能になる。別の例として、サーチ情報は、2進キー値と等しい長さの2進マスク値と併せて、2進キー値である。2進マスク値における各ビットは、2進キー値における対応するビットが無視される(例えば、何でもマッチする)か、又は、対応する2進キー値ビットに従ってマッチするかを示す。更に別の例として、前の例の上に構築すると、2進キー値における対応するビットが無効とみなされる(例えば、何もマッチしない)かどうかを示すために、別の2進マスク値が更に使用される。例えば、4ビットキー値は0b0111であり、対応するマスク値は0b0001であり、結果として、0b011xをサーチし、それにより、0b110又は0b0111の格納された値に対してマッチが行われる。(例えば、図6Dのような)ビットラインエンコーディングの同様の例は、サーチ値だけ、マスク値と併せたサーチ値、及び/又は、複数のマスク値と併せたサーチ値を使用する。例えば、4ビットサーチ(例えば、キー)値は0b1010であり、対応するマスク値は0b1000であり、結果として、0bx010をサーチし、それにより、0b1010又は0b0010の格納された値に対するマッチが行われる。
コンピュテーショナルSSD
【0126】
コンピュテーショナルSSDリソースは、計算サーバ、データベースサーバ、IMSサーバ、IMCサーバ、及びAIアクセラレータなど、様々システム(スマートSSDを使用するシステムなど)において使用可能である。
【0127】
図7は、コンピュテーショナルSSD700として例示的なコンピュテーショナルSSDを示す。
【0128】
コンピュテーショナルSSD700は、コンピュテーショナルメモリデバイスの少なくとも1つのインスタンス、例えば、コンピュテーショナルメモリデバイス762、コンピュテーショナルメモリデバイス763、コンピュテーショナルメモリデバイス764、又は構成可能コンピュテーショナルメモリデバイス765の少なくとも1つを含む。コースサーチ710、ファインサーチ720、計算730、及びアクセス740のそれぞれのインスタンスは、構成に従って、互いに同様、実質的に同様、又は、同一であることに留意されたい。
【0129】
コンピュテーショナルメモリデバイス762は、ファインサーチ能力を実装することを目的とし、ファインサーチ720を実装するための情報を第2機能752に提供するコースサーチ710を実装するために2つの部分として動作可能であるメモリアレイを含む。コンピュテーショナルメモリデバイス762は、例えば、大きいスケールのサーチ能力を提供することを目的とするシステム(データベースサーバなど)において使用可能である。
【0130】
コンピュテーショナルメモリデバイス763は、計算能力を実装することを目的として、計算730を実装するための情報を第2機能753に提供するコースサーチ710を実装するために2つの部分として動作可能であるメモリアレイを含む。コンピュテーショナルメモリデバイス763は、例えば、大きいスケールの計算能力を提供することを目的とするサーバ(AIシステムなど)において使用可能である。
【0131】
コンピュテーショナルメモリデバイス764は、アクセス能力を実装することを目的とし、アクセス740を実装するための情報を第2機能754に提供するコースサーチ710を実装するために2つの部分として動作可能であるメモリアレイを含む。コンピュテーショナルメモリデバイス764は、例えば、キー値SSDベースシステムなど、キー値情報を提供することを目的とするサーバにおいて使用可能である。
【0132】
構成可能コンピュテーショナルメモリデバイス765は、例えば、構成に従って、データベースサーバ、AI、システム、及び/又はキー値SSDベースシステムにおいて使用可能などである、構成可能なコンピュテーショナルSSD能力を目的とする。構成可能コンピュテーショナルメモリデバイス765は、ファインサーチ720、計算730、及びアクセス740の1つに判定される構成を実装するための情報を構成可能な第2機能755に提供するコースサーチ710を実装するために2つの部分として動作可能であるメモリアレイを含む。
【0133】
インタフェース780は、ホスト/バスカップリング782を介して、ホスト及び/又はバスにコンピュテーショナルメモリデバイスをインタフェースする。
【0134】
コンピュテーショナルSSD700は、図8のコンピュテーショナルSSD840の例示的な実装であり、ホスト/バスカップリング782は、図8のバス/インタフェース880に結合するように機能する。
【0135】
コースサーチ710は、図2のコース210、図3のコース310、及び/又は、図4のコース410によって例示される。
【0136】
ファインサーチ720は、図2のファイン220によって例示される。計算730は、図3の計算320によって例示される。アクセス740は図4のアクセス420によって例示される。
【0137】
他の要素の区画化、要素間の結合、及び図に示されている要素の能力及び/又は容量、並びに追加要素が、使用要件に従って企図される。
コンピュテーショナルSSDシステム
【0138】
図8は、コンピュテーショナルSSDを有する例示的なハードウェアシステムをコンピュテーショナルSSDシステム800として示す。システムは、ハードウェアブロックバス/インタフェース880によって結合される、ハードウェアブロックCPU810、GPU820、RAM830、コンピュテーショナルSSD840、従来のSSD850、HDD860、及びI/O870を含む。
【0139】
コンピュテーショナルSSD840は、図7のコンピュテーショナルSSD700の1又は複数のインスタンスを含む。
【0140】
CPU810は、プログラミングされた命令を実行することが可能なハードウェアユニットの任意の組み合わせ等の1又は複数の処理ユニット、マイクロプロセッサ、信号プロセッサ、AIプロセッサ等を備える。処理ユニットの1又は複数は、任意選択的に、1又は複数の内部レジスタ(そのいくつかは、任意選択的に、アーキテクチャ的に可視である)、1又は複数のキャッシュメモリ、及び/又は、レジスタ、キャッシュ、及び、内部メモリ812によって表される、1又は複数の内部メモリ(バッファリング及び/又は融合(coalescing)に関するものなど)を含む。
【0141】
GPU820は、グラフィックス処理、信号処理、及び/又はAI処理等の相対的に高度な並列処理を受ける処理のための処理を加速することが可能なユニットの任意の組み合わせ等の1又は複数の処理ユニットを備える。CPU810のレジスタ、キャッシュ、及び内部メモリ812と同様に、処理ユニットの1又は複数は、任意選択的に、1又は複数の内部レジスタ(そのいくつかは、レジスタ、キャッシュ、及び内部メモリ822によって表される、任意選択的にアーキテクチャ的に可視である)、1又は複数のキャッシュメモリ、及び/又は、1又は複数の内部メモリ(バッファリング及び/又は融合に関するものなど)を含む。
【0142】
RAM830は、CPU810及び/又はGPU820の内部のストレージより大量に命令及び/又はデータの記憶のための1又は複数の記憶要素を備える。RAM830は、例えば、DRAM及び/又はSRAM等の揮発性メモリ要素を介して、実装可能である。
【0143】
従来のSSD850は、任意選択的にHDD860と比較して低減したレイテンシでアクセス可能である命令及び/又はデータを格納するためのフラッシュベースのストレージ要素など、1又は複数のストレージ要素を含む。
【0144】
HDD860は、任意選択的に従来のSSD850が格納可能である量より大量に命令及び/又はデータを格納するための回転ベースの磁気及び/又は不揮発性光ストレージ要素(例えばディスク)など、1又は複数のストレージ要素を含む。
【0145】
I/O870は、CPU810、GPU820、RAM830、コンピュテーショナルSSD840、従来のSSD850、及び/又はHDD860の任意の組み合わせをコンピュテーショナルSSDシステム800の外部の要素とインタフェースするための要素を含む。例示的な外部要素は、大容量ストレージデバイス、ローカル及びワイドエリアネットワーク(インターネットなど)、ヒューマンインタフェースコンポーネント(キーボード、マウス、及び/又はモニタなど)、及び、さもなければコンピュテーショナルSSDシステム800によって提供されない能力を拡張及び/又は強化するために能力を提供する他の要素を含む。
【0146】
バスインタフェース880は、それに結合された要素(例えば、CPU810、GPU820、RAM830、コンピュテーショナルSSD840、従来のSSD850、HDD860、及び/又は、I/O870)間の通信を可能にする。I/O870は、1又は複数の直列及び/又は並列通信チャネル、並びに任意選択のプロトコル変換及び/又はそれに結合された要素間の通信を促進する適合能力を様々に備える。
【0147】
概念的に、コンピュテーショナルSSDシステム800における様々なストレージ要素は、全体的な命令及び/又はデータアクセス時間を低減すること、命令及び/又はデータストレージの全体的なコストを低減すること、及び/又は、ストレージ能力に関する電力消費を低減することなどのために、メモリ階層を含む。例えば、CPU810のレジスタ、キャッシュ、及び内部メモリ812、並びに、GPU820のレジスタ、キャッシュ、及び内部メモリ822はまとめて、より最高のレベルのメモリ階層を含む。メモリ階層は更に、(上位から下位レベルの)RAM830、従来のSSD850、HDD860、及び任意選択的に、I/O870(インターネットを介してアクセス可能であるウェブサイト情報など)を介してアクセス可能であるストレージを含む。例において、より上位レベルのメモリ階層は、下位レベルより低いレイテンシ及びより低い容量を有する。例えば、レジスタ、キャッシュ、及び内部メモリ812、並びに、レジスタ、キャッシュ、及び内部メモリ822は、RAM830より低いアクセスレイテンシ及び/又は記憶容量を有する。一方、RAM830は、従来のSSD850より低いアクセスレイテンシ、及び/又は記憶容量等を有する。
【0148】
例の第1の変形において、コンピュテーショナルSSD840は、RAM830及び従来のSSD850及び/又はHDD860の間のメモリ階層のレベルを含み、アクセスレイテンシ及び/又は記憶容量のギャップを橋渡しする。例の第2の変形において、I/O870を介してアクセス可能であるレジスタ、キャッシュ、及び内部メモリ812、レジスタ、キャッシュ、及び内部メモリ822、RAM830、従来のSSD850、HDD860、及び/又はストレージのいずれか1又は複数は、コンピュテーショナルSSD840の技法に基づく要素によって強化され、アクセスレイテンシが減少し、及び/又は、記憶容量が増加する。他の例において、コンピュテーショナルSSD840の技法を使用して、SCM、NVDIMM、CXLメモリ、SSD、及び/又は、DRAM様ストレージの様々な組み合わせが実装される。更に他の例において、コンピュテーショナルSSD840は、処理をローカルで実行することによって、(例えばCPU810及び/又はGPU820上の)処理負荷を低減すること、及び/又は、バス/インタフェース880上のトラフィックを低減させることが可能である。
【0149】
他の要素の区画化、要素間の結合、及び図に示されている要素の能力及び/又は容量、並びに追加要素が、使用要件に従って企図される。
コンピュテーショナルSSDの追加情報
【0150】
図2図3、及び図4は、コンピュテーショナルSSDについてのアーキテクチャに適用可能である技術を示す。他の技術も、異なるメモリ技術などに従って適用可能である。
【0151】
本明細書において開示されるコンピュテーショナルSSDのメモリアレイに適用可能である例示的なメモリ技術は、浮遊ゲート、スプリットゲート、SONOS、浮遊ドット、DRAM、DRAM様(例えば、2T0C)、FeFET、並びに、ワードライン及びビットラインを介してサーチと互換性のある任意のメモリ技術を含む。例示的なSONOSメモリ技術(時として電荷捕獲メモリと称される)は、トラップを有する絶縁層(例えば、窒化ケイ素の)を使用して、チャネルから注入されると電荷を捕獲及び保持する。例示的な浮遊ドットメモリ技術は、概念的には、浮遊ゲートを浮遊シリコンナノドットに置き換えるか、又はポリシリコンゲート内に浮遊シリコンナノドットを埋め込む。例示的な2T0Cメモリ技術は、明示的なストレージキャパシタではなく電荷を蓄積するためにリードトランジスタの寄生容量を使用する。例示的なFeFETメモリ技術は、情報を記憶するためにゲート及びソースゲート導通領域の間に埋め込まれた強誘電体材料の永久電界分極を使用する。コンピュテーショナルSSDのメモリアレイに適用可能である例示的なメモリ構造は、2D構造(例えば、2Dフラッシュ構造)及び3D構造(例えば、3Dフラッシュ構造)を含む。計算SSDのメモリアレイに適用可能である例示的なアレイアーキテクチャは、NOR/ORタイプのアレイアーキテクチャ、及び、AND/NANDタイプのアレイアーキテクチャを含む。
【0152】
前述の開示は、限定的な意味ではなく意図された例示的な意味において、実装、変形形態、実施形態、及び例を提示することが理解される。本開示及び以下の請求項の範囲の思想中の修正及び組み合わせが識別可能であると想定される。
図1
図2
図3
図4
図5
図6A
図6B
図6C
図6D
図7
図8
【手続補正書】
【提出日】2024-10-30
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
メモリシステムを操作するための方法であって、
メモリアレイのメモリストリングの第1部分を、(i)前記メモリアレイのワードライン上で駆動される第1電圧、及び、(ii)前記メモリストリングの前記第1部分の予め定められた動作条件に従って、第1に検知する段階;
前記メモリアレイのメモリストリングの第2部分を、(i)前記メモリアレイのワードライン上で駆動される第2電圧、及び、(ii)前記メモリストリングの前記第2部分の動的動作条件に従って第2に検知する段階;及び
前記第2に検知する段階の結果を提供る段階;
を備え、記第2電圧は、前記第1に検知する段階の結果に基づ
前記動的動作条件は、ファインサーチ、計算、及びアクセス動作のうちの少なくとも1つから選択される、
方法。
【請求項2】
前記動的動作条件は、動的値に従って、前記メモリストリングの第2部分のビットライン回路端子を操作することによって生成される、請求項1に記載の方法。
【請求項3】
前記第2に検知する段階は、前記メモリストリング第2部分に格納された値及び前記動的値の間の近似的なマッチをカウントする段階を含む、請求項2に記載の方法。
【請求項4】
前記第2に検知する段階は、前記メモリストリングの第2部分の電流に従って加算する段階を含む、請求項2に記載の方法。
【請求項5】
前記動的値はアナログ値であり、前記メモリストリングの第2部分に格納された値はアナログ値であり、前記加算はアナログ技法に従う、請求項4に記載の方法。
【請求項6】
前記第2に検知する段階は、前記メモリストリングの第2部分の前記電流をスケーリングし、次に、加算することを含む、請求項5に記載の方法。
【請求項7】
前記動的動作条件は、動的値及びマスク値に基づき、前記メモリストリングの第2部分のいずれかに格納された任意の値に前記動的値をマッチさせることを可能にする、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記動的動作条件は、動的値及びマスク値に基づき、前記メモリストリングの第2部分のいずれかに格納された任意の値に前記動的値をマッチさせることを不能にする、請求項1から6のいずれか一項に記載の方法。
【請求項9】
前記第2に検知する段階の前記結果は、乗累算演算を示し、前記乗累算演算の第1オペランドは動的値であり、前記動的動作条件は前記動的値に従って判定され、前記乗累算演算の第2オペランドは、前記メモリストリングの第2部分にプログラムされる値に対応する、請求項1から6のいずれか一項に記載の方法。
【請求項10】
前記動的動作条件は、動的値に従って判定され、前記第2に検知する段階の前記結果は、前記メモリストリングの第2部分にプログラムされた値のうちの前記動的値についてのサーチ動作を示す、請求項1から6のいずれか一項に記載の方法。
【請求項11】
メモリストリングの第1部分及び第2部分を含むメモリアレイ、ここで、前記メモリストリングの第1部分の前記メモリストリングの1又は複数、及び、前記メモリストリングの第2部分の前記メモリストリングの1又は複数はそれぞれ、複数の連続的に接続されたメモリデバイスを含む;
前記メモリストリングが編成される、それぞれの行のそれぞれの制御入力に結合された端子を有するワードライン回路;
前記メモリストリングのそれぞれのビットライン端子に結合された端子を有するビットライン回路;
前記メモリストリングのそれぞれの検知増幅器端子に結合された端子を有するセンスアンプ回路;
を備え、
記メモリストリングの第1部分の前記ビットライン端子に結合された前記ビットライン回路の前記端子は、同一の予め定められた動作条件を前記メモリストリングの第1部分の前記ビットライン端子に提供することが可能であり;
記メモリストリングの第2部分の前記ビットライン端子に結合された前記ビットライン回路の前記端子は、前記メモリストリングの第2部分の前記ビットライン端子にそれぞれの動的値を提供することが可能であり;
前記ワードライン回路は、第1ワードライン制御値及び第2ワードライン制御値のうちの1つに従って、前記制御入力を選択的に駆動することが可能であり、前記第1ワードライン制御値は、提供された値に対応し、前記第2ワードライン制御値は、前記メモリストリングの前記第1部分の前記ビットライン端子に結合された前記端子を介して提供される情報に基づいて前記センスアンプ回路によって生成された結果に対応し、
前記動的値は、動的動作条件に対応し、前記動的動作条件は、ファインサーチ、計算、及びアクセス動作のうちの少なくとも1つから選択される、
メモリシステム。
【請求項12】
前記センスアンプ回路に結合され、前記メモリストリングの第2部分に格納された値及びそれぞれの前記動的値の間の厳密なマッチをカウントすることが可能であるカウント回路を更に備える、請求項11に記載のメモリシステム。
【請求項13】
前記センスアンプ回路に結合され、前記メモリストリングの第2部分の電流に従って加算することを可能にする加算回路を更に備える、請求項11に記載のメモリシステム。
【請求項14】
メモリストリングの第1部分及び第2部分を含むメモリアレイ、ここで、前記メモリストリングの第1部分の前記メモリストリングの1又は複数、及び、前記メモリストリングの第2部分の前記メモリストリングの1又は複数はそれぞれ、複数の連続的に接続されたメモリデバイスを含む;
前記メモリストリングが編成される、それぞれの行のそれぞれの制御入力に結合された端子を有するワードライン回路;
前記メモリストリングのそれぞれのビットライン端子に結合された端子を有するビットライン回路;
前記メモリストリングのそれぞれの検知増幅器端子に結合された端子を有するセンスアンプ回路;
を備え、
前記メモリストリングの第1部分の前記ビットライン端子に結合された前記ビットライン回路の前記端子は、同一の予め定められた動作条件を前記メモリストリングの第1部分の前記ビットライン端子に提供することが可能であり;
前記メモリストリングの第2部分の前記ビットライン端子に結合された前記ビットライン回路の前記端子は、前記メモリストリングの第2部分の前記ビットライン端子にそれぞれの動的値を提供することが可能であり;
前記ワードライン回路は、第1ワードライン制御値及び第2ワードライン制御値のうちの1つに従って、前記制御入力を選択的に駆動することが可能であり、前記第1ワードライン制御値は、提供された値に対応し、前記第2ワードライン制御値は、前記メモリストリングの前記第1部分の前記ビットライン端子に結合された前記端子を介して提供される情報に基づいて前記センスアンプ回路によって生成された結果に対応し、
前記センスアンプ回路に結合され、前記メモリストリングの第2部分の電流に従って加算することを可能にする加算回路を更に備える、
メモリシステム。
【請求項15】
それぞれの前記動的値はアナログ値であり、前記メモリストリングの第2部分に格納された値はアナログ値であり、前記加算回路は、アナログ技法に従って動作可能である、請求項13に記載のメモリシステム。
【請求項16】
前記加算回路は更に、加算の前に前記電流をスケーリングすることが可能である、請求項15に記載のメモリシステム。
【請求項17】
前記メモリアレイにアクセスすることが可能である1又は複数のプロセッサを更に備える、請求項11から16のいずれか一項に記載のメモリシステム。
【請求項18】
前記メモリストリングの第2部分の前記ビットライン端子に結合された前記ビットライン回路の前記端子は更に、同一の予め定められた動作条件を、前記メモリストリングの第2部分の前記ビットライン端子に提供することが可能であり、前記センスアンプ回路に結合された、前記メモリストリングの第2部分に格納された値から読み取られた結果のページをキャッシュすることが可能であるページキャッシュ回路を更に含む、請求項11から16のいずれか一項に記載のメモリシステム。
【請求項19】
メモリストリングの第1部分及び第2部分を含むメモリアレイ、ここで、前記メモリストリングの第1部分の前記メモリストリングの1又は複数、及び、前記メモリストリングの第2部分の前記メモリストリングの1又は複数はそれぞれ、複数の連続的に接続されたメモリデバイスを含む;
前記メモリストリングが編成される、それぞれの行のそれぞれの制御入力に結合された端子を有するワードライン回路;
前記メモリストリングのそれぞれのビットライン端子に結合され、同一の予め定められた動作条件を前記ビットライン端子に提供することが可能である端子を有するビットライン回路;
前記メモリストリングのそれぞれの検知増幅器端子に結合された端子を有するセンスアンプ回路
を備え、前記ワードライン回路は、第1ワードライン制御値及び第2ワードライン制御値のうちの1つに従って前記制御入力を選択的に駆動することが可能であり、前記第1ワードライン制御値は、提供された値に対応し、前記第2ワードライン制御値は、前記メモリストリングの前記第1部分の前記ビットライン端子に結合された前記端子を介して提供される情報に基づいて前記センスアンプ回路によって生成された結果に対応
前記メモリストリングの第2部分の前記ビットライン端子に結合された前記ビットライン回路の前記端子は、前記メモリストリングの第2部分の前記ビットライン端子に動的値を提供することが可能であり、
前記動的値は、動的動作条件に対応し、前記動的動作条件は、ファインサーチ、計算、及びアクセス動作のうちの少なくとも1つから選択される、
メモリシステム。
【請求項20】
前記提供された値は、キー及びマスクを含み、前記制御入力の前記選択的な駆動は、前記キーのそれぞれのビット及び前記マスクの対応するそれぞれのビットからそれぞれ判定される複数のエンコーディングに従って、それぞれのペアにおける前記制御入力を選択的に駆動することを含み、(i)前記複数のエンコーディングの第1のものは、前記提供された値がゼロであることに応答して、格納されたゼロ値を選択的にマッチすることを可能にし、(ii)前記複数のエンコーディングの第2のものは、前記提供された値が1であることに応答して、格納された1つの値を選択的にマッチすることを可能にし、(iii)前記複数のエンコーディングの第3のものは、前記提供された値がゼロ又は1であることに応答して、格納されたゼロの値又は格納された1の値を選択的にマッチすることを可能にし、(iv)前記複数のエンコーディングの4のものは、任意の格納された値を前記提供された値に選択的にマッチすることを不能にする、請求項19に記載のメモリシステム。
【請求項21】
メモリストリングの第1部分及び第2部分を含むメモリアレイ、ここで、前記メモリストリングの第1部分の前記メモリストリングの1又は複数、及び、前記メモリストリングの第2部分の前記メモリストリングの1又は複数はそれぞれ、複数の連続的に接続されたメモリデバイスを含む;
前記メモリストリングが編成される、それぞれの行のそれぞれの制御入力に結合された端子を有するワードライン回路;
前記メモリストリングのそれぞれのビットライン端子に結合され、同一の予め定められた動作条件を前記ビットライン端子に提供することが可能である端子を有するビットライン回路;
前記メモリストリングのそれぞれの検知増幅器端子に結合された端子を有するセンスアンプ回路
を備え、前記ワードライン回路は、第1ワードライン制御値及び第2ワードライン制御値のうちの1つに従って前記制御入力を選択的に駆動することが可能であり、前記第1ワードライン制御値は、提供された値に対応し、前記第2ワードライン制御値は、前記メモリストリングの前記第1部分の前記ビットライン端子に結合された前記端子を介して提供される情報に基づいて前記センスアンプ回路によって生成された結果に対応し、
前記提供された値は、キー及びマスクを含み、前記制御入力の前記選択的な駆動は、前記キーのそれぞれのビット及び前記マスクの対応するそれぞれのビットからそれぞれ判定される複数のエンコーディングに従って、それぞれのペアにおける前記制御入力を選択的に駆動することを含み、(i)前記複数のエンコーディングの第1のものは、前記提供された値がゼロであることに応答して、格納されたゼロ値を選択的にマッチすることを可能にし、(ii)前記複数のエンコーディングの第2のものは、前記提供された値が1であることに応答して、格納された1つの値を選択的にマッチすることを可能にし、(iii)前記複数のエンコーディングの第3のものは、前記提供された値がゼロ又は1であることに応答して、格納されたゼロの値又は格納された1の値を選択的にマッチすることを可能にし、(iv)前記複数のエンコーディングの第4のものは、任意の格納された値を前記提供された値に選択的にマッチすることを不能にする、
メモリシステム。
【請求項22】
少なくとも1つのメモリデバイスを含む前記メモリアレイを含むコンピュテーショナルソリッドステートドライブ(SSD)にアクセスすることが可能である1又は複数のプロセッサを更に備える、請求項19から21のいずれか一項に記載のメモリシステム。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0010
【補正方法】変更
【補正の内容】
【0010】
変形は任意選択的に、以下の特徴の1又は複数を含む。第3態様では、提供された値は任意選択的に、キー及びマスクを含み、制御入力の選択的な駆動は任意選択的に、キーのそれぞれのビット及びマスクの対応するそれぞれのビットからそれぞれ判定される複数のエンコーディングに従って、それぞれのペアにおける制御入力を選択的に駆動することを含み、(i)エンコーディングの第1のものは、提供された値がゼロであることに応答して、格納されたゼロ値を選択的にマッチすることを可能にし、(ii)エンコーディングの第2のものは、提供された値が1であることに応答して、格納された1つの値を選択的にマッチすることを可能にし、(iii)エンコーディングの第3のものは、提供された値がゼロ又は1であることに応答して、格納されたゼロの値又は格納された1の値を選択的にマッチすることを可能にし、(iv)エンコーディングの4のものは、任意の格納された値を提供された値に選択的にマッチさせることを不能にする。システムは、メモリアレイを任意選択的に含む少なくとも1つのメモリデバイスを任意選択的に含むコンピュテーショナルソリッドステートドライブ(SSD)にアクセスすることを可能にする1又は複数のプロセッサを任意選択的に含む。記載された技法の実装は、任意選択的に、ハードウェア、方法又はプロセス、又はコンピュータアクセス可能媒体上のコンピュータソフトウェアを含む。