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

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

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

特開2024-162948コンピューティングシステム及びその動作の方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024162948
(43)【公開日】2024-11-21
(54)【発明の名称】コンピューティングシステム及びその動作の方法
(51)【国際特許分類】
   G11C 15/04 20060101AFI20241114BHJP
【FI】
G11C15/04 631W
G11C15/04 601R
G11C15/04 601W
【審査請求】有
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2023122776
(22)【出願日】2023-07-27
(31)【優先権主張番号】18/195,540
(32)【優先日】2023-05-10
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】599129074
【氏名又は名称】旺宏電子股▲ふん▼有限公司
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ポ-ハオ ツェン
(72)【発明者】
【氏名】ミン-シウ リー
(72)【発明者】
【氏名】ティアン-チ ボ
(57)【要約】      (修正有)
【課題】高性能の検索、比較及び/又はソートをイネーブルするコンピューティングシステム及び方法を提供する。
【解決手段】3D検索エンジンは、不揮発性メモリアレイのワードラインWL9010への適用のための検索を受信し、検索の情報のビット毎に2つのワードライン及びそれに対して検索するための記憶済み特徴のビット毎に2つのメモリストリングを使用し、任意選択でドントケア及び/又はワイルドカード符号化がイネーブルされ、検索のためのそれぞれの一致ラインとして不揮発性メモリアレイのそれぞれのビットラインを使用する。不揮発性メモリアレイのそれぞれのメモリストリングは、例えば検索すべき特徴に対応する、それぞれのデータ語を記憶するのに使用可能である。それぞれの複数のメモリストリングは、それぞれの共有ビットラインに並列に結合される。特徴及び検索の様々な符号化が、厳密、近似及び範囲一致をイネーブルする。
【選択図】図1A
【特許請求の範囲】
【請求項1】
複数のメモリ、各々が:
それぞれのセンスアンプに結合されたそれぞれの一致ライン、
それぞれのソースライン、及び
(a)前記それぞれの一致ライン及び(b)前記それぞれのソースラインに各々が結合されたそれぞれの複数のメモリストリング、各メモリストリングは、(c)それぞれの構成された状態及び(d)それぞれの制御入力を各々が有し、これらに応答しているそれぞれの複数の直列接続された浮遊ゲートトランジスタを含む
を有する;及び
前記複数の直列接続された浮遊ゲートトランジスタの各々の前記それぞれの制御入力のそれぞれの1つに各々が結合された複数のワードライン;及び
検索を受信し、検索符号化に従って前記複数のワードラインを駆動するようにイネーブルされた検索エンコーダ
を備え;
ここで、(e)各メモリストリングは、前記メモリストリングの前記複数の直列接続された浮遊ゲートトランジスタの前記制御入力に厳密に一致する前記メモリストリングの前記構成された状態に応答した一致発見インピーダンスを介して、前記それぞれのメモリストリングが結合されている前記それぞれの一致及びソースラインを結合するようにイネーブルされており、(f)各センスアンプは、それが結合されている前記一致ラインが前記一致発見インピーダンスを介して前記ソースラインに結合されるか否かのそれぞれのインジケーションを生成するようにイネーブルされ;
(g)各メモリストリングは、前記メモリストリングの前記複数の直列接続された浮遊ゲートトランジスタの前記制御入力に厳密に一致しない前記メモリストリングの前記構成された状態に応答した一致発見なしインピーダンスを介して、前記メモリストリングが結合されている前記それぞれの一致及びソースラインを結合するように更にイネーブルされており、(h)各センスアンプは、それが結合されている前記一致ラインが前記一致発見なしインピーダンスを介して前記ソースラインに結合されるか否かのそれぞれのインジケーションを生成するように更にイネーブルされている、コンピューティングシステム。
【請求項2】
前記複数のワードラインは、前記検索符号化に従ってペアにおいて動作し、前記構成された状態は、特徴符号化に従ってペアにおいて管理される、請求項1に記載のコンピューティングシステム。
【請求項3】
前記構成された状態の各々は、それぞれの閾値電圧に対応する、請求項1に記載のコンピューティングシステム。
【請求項4】
前記それぞれの制御入力の各々は、前記複数の直列接続された浮遊ゲートトランジスタのうちの1つ又は複数のそれぞれのゲートに結合されている、請求項3に記載のコンピューティングシステム。
【請求項5】
前記閾値電圧は、1つ又は複数のプログラミング動作を介して設定可能である、請求項3に記載のコンピューティングシステム。
【請求項6】
前記メモリストリングの各々は、制御入力が前記複数のワードラインから独立して前記それぞれのメモリストリングを選択的にイネーブル又はディスエーブルすることをイネーブルするそれぞれのメモリストリングに応答してデバイスをイネーブルするそれぞれのメモリストリングを含む、請求項1に記載のコンピューティングシステム。
【請求項7】
1つ又は複数の検索パラメータを受信する段階;
複数の検索符号化のうちの特定の検索符号化に従って前記検索パラメータを符号化して、ワードライン電圧のペアを生成する段階、前記特定の検索符号化は、複数の特徴符号化のうちの特定の特徴符号化に従って浮遊ゲートトランジスタのペアに記憶された特徴との一致についての検索をイネーブルし、ここで、前記特定の検索符号化及び前記特定の特徴符号化は、1、0、及び1又は0のいずれかの表現をイネーブルする;
前記生成されたワードライン電圧に従って浮遊ゲートトランジスタの前記ペアの複数の直列接続されたインスタンスのワードラインのペアを駆動する段階、前記複数の直列接続されたインスタンスは、複数の共有一致ラインに影響を与えるように並列に動作可能なそれぞれの複数のメモリストリングとして編成され、各共有一致ラインは、前記複数のメモリストリングのうちの2つ又はそれよりも多くに結合され、ワードラインの各ペアは、浮遊ゲートトランジスタの前記ペアの前記インスタンスのうちの少なくとも2つに結合されている;
前記複数の共有一致ライン上の電圧変化を検知して、いずれの前記複数の共有一致ラインが所定の検知閾値よりも高い電圧変化を有するのかを決定する段階;及び
前記決定する段階の結果を、前記検索パラメータ及び前記記憶済み特徴の間での相対一致のインジケーションとして提供する段階
を備える、コンピューティング方法。
【請求項8】
前記複数の検索符号化のうちの少なくとも1つ又は前記複数の特徴符号化のうちの少なくとも1つは、拡張符号化及びワンホット符号化のうちの少なくとも1つに従う、請求項7に記載のコンピューティング方法。
【請求項9】
前記複数の検索符号化のうちの少なくとも1つ又は前記複数の特徴符号化のうちの少なくとも1つは、逆拡張符号化に従う、請求項7に記載のコンピューティング方法。
【請求項10】
前記記憶済み特徴のうちの少なくとも1つは、ワンホット符号化を使用して記憶された範囲に対応する、請求項7に記載のコンピューティング方法。
【請求項11】
ワードライン電圧の前記ペアのうちの少なくとも1つは、ワンホット符号化として符号化された範囲に従う、請求項7に記載のコンピューティング方法。
【請求項12】
前記複数の検索符号化のうちの少なくとも1つ又は前記複数の特徴符号化のうちの少なくとも1つは、低効果符号化に従う、請求項7に記載のコンピューティング方法。
【請求項13】
ホストエージェントが検索を提供し、前記検索の1つ又は複数の結果を受信することをイネーブルするインターフェース回路;
メモリストリングの複数のブロック、各ブロックは、前記検索に応答して決定可能な電圧を有するワードラインの同じセットを各々が受信するそれぞれの複数のメモリストリングを有する;
前記複数のブロックの各々からの前記メモリストリングのうちの対応するメモリストリングに各々が結合された複数のセンスアンプ;及び
前記センスアンプから一致インジケーションを受信するようにイネーブルされた優先度エンコーダ回路
を備え;
ここで、前記センスアンプは、(1)前記センスアンプに結合された前記メモリストリングに記憶された特徴情報及び(2)前記センスアンプに結合された前記メモリストリングによって受信された前記ワードラインの間での一致に関して、(3)一致なしが存在すること、及び(4)少なくとも1つの一致が存在することを決定するようにイネーブルされており;
前記優先度エンコーダ回路は、前記センスアンプの前記決定に基づいて、前記センスアンプによって識別された任意の一致のうちの最高優先度一致として、前記結果の少なくとも一部分を示すようにイネーブルされている、コンピューティングシステム。
【請求項14】
前記ホストエージェントを更に備える、請求項13に記載のコンピューティングシステム。
【請求項15】
前記優先度エンコーダ回路は、前記センスアンプの前記決定に基づいて、前記センスアンプによって識別された任意の一致のうちの第2最高優先度一致として、前記結果の少なくとも一部分を示すようにイネーブルされている、請求項13に記載のコンピューティングシステム。
【請求項16】
前記特徴情報は、前記メモリストリングの浮遊ゲートトランジスタの閾値電圧を構成することによって前記メモリストリングに記憶される、請求項13に記載のコンピューティングシステム。
【請求項17】
前記複数のブロックのうちの2つ又はそれよりも多くが同時に動作可能である、請求項13に記載のコンピューティングシステム。
【請求項18】
特徴符号化が、前記特徴情報のうちの少なくとも一部を符号化するのに使用され、検索符号化が、前記検索のうちの少なくとも一部分を符号化するのに使用される、請求項13に記載のコンピューティングシステム。
【請求項19】
前記特徴符号化は、拡張符号化、逆拡張符号化、ワンホット符号化、及び低効果符号化のうちの少なくとも1つである、請求項18に記載のコンピューティングシステム。
【請求項20】
前記コンピューティングシステムは、システムオンチップ(SOC)の部分である、請求項13に記載のコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、3D-NANDメモリを使用して実装可能な、及びビッグデータ及び/又は人工知能(AI)処理に適用可能であるような、3Dインメモリ検索(IMS)に関する。
【背景技術】
【0002】
ビッグデータ及びAI(例えば、AIハードウェアアクセラレータ)の成長は、データの検索、比較、及び/又はソートの重大性を高めている。従来のシステムは、三値連想メモリ(TCAM)技術を使用する同時検索を実装する。
【0003】
従来のTCAM技術は、スタティックランダムアクセスメモリ(SRAM)技法を使用して実装可能であり、それゆえ、相対的に低いメモリ密度(単一のTCAMセルを形成するための16個のトランジスタ等)及び相対的に高い電力使用を有する。
【0004】
最近提案されたTCAM技術は、2トランジスタ2レジスタ(2T2R)技法及び2強誘電性電界効果トランジスタ(2FeFET)技法に基づく等の不揮発性メモリ技法を使用して実装可能である。しかしながら、不揮発実装TCAM技法は、単一のTCAMセルのために対にされたメモリ(又は1つの検索ビット又は1つのデータビットを実装するために対にされたメモリセル)を要求し、したがって、検索及びデータストレージの効率性が制限される。
【0005】
厳密一致及び近似一致動作を実行するようにイネーブルされたNANDフラッシュベースIMS機能を使用する例示の技法が、P.H.Tseng他「In-Memory-Searching Architecture Based on 3D-NAND Technology with Ultra-high Parallelism」2020 IEDM;及びP.H.Tseng他「In-Memory Approximate Computing Architecture Based on 3D-NAND Flash Memories」2022 VLSIにおいて記述されている。
【0006】
それゆえ、例えばビッグデータ及び/又はAI処理に関して、高性能の検索、比較、及び/又はソートをイネーブルする技法が必要とされている。
【発明の概要】
【0007】
1つ又は複数のコンピュータのシステムは、動作中にシステムにアクションを実行させるシステム上にインストールされたソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせを有することによって、特定の動作又はアクションを実行するように構成可能である。1つ又は複数のコンピュータプログラムは、データ処理装置によって実行されると、装置にアクションを実行させる命令を含むことによって特定の動作又はアクションを実行するように構成可能される。
【0008】
第1の態様は、複数のメモリを有するコンピューティングシステムを含む。メモリの各々は、任意選択で、それぞれのセンスアンプに結合されたそれぞれの一致ライン、それぞれのソースライン、及び(a)前記それぞれの一致ライン及び(b)前記それぞれのソースラインに各々が結合されたそれぞれの複数のメモリストリングを任意選択で有し、各メモリストリングは、(c)それぞれの構成された状態及び(d)それぞれの制御入力を各々が有し、これらに応答しているそれぞれの複数の直列接続された浮遊ゲートトランジスタを含む。前記エンジンは、前記直列接続された浮遊ゲートトランジスタの各々の前記それぞれの制御入力のそれぞれの1つに各々が結合された複数のワードライン;及び検索を受信し、検索符号化に従って前記ワードラインを駆動するようにイネーブルされた検索エンコーダも備え;ここで、(e)各メモリストリングは、前記メモリストリングの前記直列接続された浮遊ゲートトランジスタの前記制御入力に厳密に一致する前記メモリストリングの前記構成された状態に応答した一致発見インピーダンスを介して、前記それぞれのメモリストリングが結合されている前記それぞれの一致及びソースラインを結合するようにイネーブルされており、(f)各センスアンプは、それが結合されている前記一致ラインが前記一致発見インピーダンスを介して前記ソースラインに結合されるか否かのそれぞれのインジケーションを生成するようにイネーブルされ;(g)各メモリストリングは、前記メモリストリングの前記直列接続された浮遊ゲートトランジスタの前記制御入力に厳密に一致しない前記メモリストリングの前記構成された状態に応答した一致発見なしインピーダンスを介して、前記メモリストリングが結合されている前記それぞれの一致及びソースラインを結合するように更にイネーブルされており、(h)各センスアンプは、それが結合されている前記一致ラインが前記一致発見なしインピーダンスを介して前記ソースラインに結合されるか否かのそれぞれのインジケーションを生成するように更にイネーブルされている。
【0009】
第1の態様の他の実施形態は、対応するコンピュータシステム、装置、及び1つ又は複数のコンピュータ記憶デバイス上に記録されたコンピュータプログラムを含み、各々が、方法のアクションを実行するように構成されている。
【0010】
幾つかのコンピューティングシステムは、任意選択で、以下の特徴のうちの1つ又は複数を含む。前記ワードラインは、前記検索符号化に従ってペアにおいて動作し、前記構成された状態は、特徴符号化に従ってペアにおいて管理される、コンピューティングシステム。構成された状態の各々は、それぞれの閾値電圧に対応する。前記それぞれの制御入力の各々は、前記直列接続された浮遊ゲートトランジスタのうちのもう1つのそれぞれのゲートに結合されている。前記閾値電圧は、1つ又は複数のプログラミング動作を介して設定可能である。前記メモリストリングの各々は、任意選択で、制御入力が前記ワードラインから独立して前記それぞれのメモリストリングを選択的にイネーブル又はディスエーブルすることをイネーブルするそれぞれのメモリストリングに応答してデバイスをイネーブルするそれぞれのメモリストリングを含む。説明される技法の実装は、任意選択で、ハードウェア、方法又はプロセス、又はコンピュータアクセス可能媒体上のコンピュータソフトウェアを含む。
【0011】
第2の態様は、1つ又は複数の検索パラメータを受信する段階;複数の検索符号化のうちの特定の検索符号化に従って前記検索パラメータを符号化して、ワードライン電圧のペアを生成する段階、前記特定の検索符号化は、複数の特徴符号化のうちの特定の特徴符号化に従って浮遊ゲートトランジスタのペアに記憶された特徴との一致についての検索をイネーブルし、ここで、前記特定の検索符号化及び前記特定の特徴符号化は、1、0、及び1又は0のいずれかの表現をイネーブルする;前記生成されたワードライン電圧に従って浮遊ゲートトランジスタの前記ペアの複数の直列接続されたインスタンスのワードラインのペアを駆動する段階、前記直列接続されたインスタンスは、複数の共有一致ラインに影響を与えるように並列に動作可能なそれぞれの複数のメモリストリングとして編成され、各共有一致ラインは、前記メモリストリングのうちの2つ又はそれよりも多くに結合され、ワードラインの各ペアは、浮遊ゲートトランジスタの前記ペアの前記インスタンスのうちの少なくとも2つに結合されている;前記共有一致ライン上の電圧変化を検知して、いずれの前記共有一致ラインが所定の検知閾値よりも高い電圧変化を有するのかを決定する段階;及び前記決定する段階の結果を、前記検索パラメータ及び前記記憶済み特徴の間での相対一致のインジケーションとして提供する段階を備える方法を含む。第2の態様の他の実施形態は、対応するコンピュータシステム、装置、及び1つ又は複数のコンピュータ記憶デバイス上に記録されたコンピュータプログラムを含み、各々が、方法のアクションを実行するように構成されている。
【0012】
幾つかの方法は、任意選択で、以下の特徴のうちの1つ又は複数を含む。前記複数の検索符号化のうちの少なくとも1つ又は前記複数の特徴符号化のうちの少なくとも1つは、拡張符号化及びワンホット符号化のうちの少なくとも1つに従う、方法。前記複数の検索符号化のうちの少なくとも1つ又は前記複数の特徴符号化のうちの少なくとも1つは、逆拡張符号化に従う。前記記憶済み特徴のうちの少なくとも1つは、ワンホット符号化を使用して記憶された範囲に対応する。ワードライン電圧の前記ペアのうちの少なくとも1つは、ワンホット符号化として符号化された範囲に従う。前記複数の検索符号化のうちの少なくとも1つ又は前記複数の特徴符号化のうちの少なくとも1つは、低効果符号化に従う。説明される技法の実装は、任意選択で、ハードウェア、方法又はプロセス、又はコンピュータアクセス可能媒体上のコンピュータソフトウェアを含む。
【0013】
第3の態様は、ホストエージェントが検索を提供し、前記検索の1つ又は複数の結果を受信することをイネーブルするインターフェース回路;メモリストリングの複数のブロック、各ブロックは、前記検索に応答して決定可能な電圧を有するワードラインの同じセットを各々が受信するそれぞれの複数のメモリストリングを任意選択で有する;前記ブロックの各々からの前記メモリストリングのうちの対応するメモリストリングに各々が結合された複数のセンスアンプ;及び前記センスアンプから一致インジケーションを受信するようにイネーブルされた優先度エンコーダ回路を備え;ここで、前記センスアンプは、(1)前記センスアンプに結合された前記メモリストリングに記憶された特徴情報及び(2)前記センスアンプに結合された前記メモリストリングによって受信された前記ワードラインの間での一致に関して、(3)一致なしが存在すること、及び(4)少なくとも1つの一致が存在することを決定するようにイネーブルされており;前記優先度エンコーダ回路は、前記センスアンプの前記決定に基づいて、前記センスアンプによって識別された任意の一致のうちの最高優先度一致として、前記結果の少なくとも一部分を示すようにイネーブルされている、コンピューティングシステムを含む。幾つかのコンピューティングシステムは、対応するコンピュータシステム、装置、及び1つ又は複数のコンピュータ記憶デバイス上に記録されたコンピュータプログラムを含み、各々が、方法のアクションを実行するように構成されている。
【0014】
実装は、任意選択で、以下の特徴のうちの1つ又は複数を含む。前記コンピューティングシステムは、任意選択で、前記ホストエージェントを備える。前記優先度エンコーダ回路は、前記センスアンプの前記決定に基づいて、前記センスアンプによって識別された任意の一致のうちの第2最高優先度一致として、前記結果の少なくとも一部分を示すようにイネーブルされている。前記特徴情報は、前記メモリストリングの浮遊ゲートトランジスタの閾値電圧を構成することによって前記メモリストリングに記憶される。前記ブロックの2つ又はそれよりも多くが同時に動作可能である。特徴符号化が、前記特徴情報のうちの少なくとも一部を符号化するのに使用され、検索符号化が、前記検索のうちの少なくとも一部分を符号化するのに使用される。前記特徴符号化は、拡張符号化、逆拡張符号化、ワンホット符号化、及び低効果符号化のうちの少なくとも1つである。前記コンピューティングシステムは、システムオンチップ(SOC)の部分である。説明される技法の実装は、任意選択で、ハードウェア、方法又はプロセス、又はコンピュータアクセス可能媒体上のコンピュータソフトウェアを含む。
【図面の簡単な説明】
【0015】
図1A】例示の3D(検索)エンジンの概略を示す図である。
図1B】異なる詳細で図1Aの例示の3D(検索)エンジンの幾つかの態様を示す図である。
図1C図1Aの例示の3D(検索)エンジンの幾つかの態様をより詳細に示す図である。
【0016】
図1D】例示の2D(検索)エンジン及びその使用を示す図である。
【0017】
図1E】3D(検索)エンジンの2D(検索)エンジンの拡張符号化使用例を示す図である。
【0018】
図1F】3D(検索)エンジンの2D(検索)エンジンのワンホット符号化使用例を示す図である。
【0019】
図2】3D(検索)エンジンのための例示の拡張符号化を示す図である。
【0020】
図3】3D(検索)エンジンのための例示のワンホット符号化を示す図である。
【0021】
図4A】例示の拡張符号化及び対応する例示の低効果符号化を示す図である。
【0022】
図4B】1の入力と比較したハミング距離とともに例示の拡張符号化を示す図である。
【0023】
図4C】1、0、及びドントケアの比較をイネーブルする例示の閾値電圧及びワードライン電圧を示す図である。
【0024】
図4D】高及び低セル電流能力に対する高及び低ゲートオーバドライブに関するアイコンを示す図である。
【0025】
図4E】検索情報対記憶済みデータの関数としての浮遊ゲートトランジスタインピーダンスを示す図である。
【0026】
図5A】3D(検索)エンジンの検索入力のための例示の逆拡張符号化を示す図である。
【0027】
図5B】逆拡張符号化についての、記憶済みデータ値及び検索入力値の関数としての例示のハミング距離をグラフで示す図である。
【0028】
図6】拡張符号化についての、記憶済みデータ値及び検索入力値の関数としての例示のハミング距離をグラフで示す図である。
【0029】
図7A】記憶範囲を有するワンホット符号化の一例を示す図である。
【0030】
図7B】入力範囲例に対するワンホット符号化を示す図である。
【0031】
図8】3D(検索)エンジンについての例示の動作フローを示す図である。
【0032】
図9】例示の3Dエンジンデバイスを備える例示の3Dエンジンアプライアンスを示す図である。
【0033】
図10】3D(検索)エンジンを有する例示のハードウェアシステムを示す図である。
【発明を実施するための形態】
【0034】
3D検索エンジンのためのアーキテクチャに関する技法の詳細な説明が、図1A図10を参照して提供される。
【0035】
1つ又は複数のフロー図が本明細書において説明される。フロー図によって説明される処理は、コンピュータシステムにとってアクセス可能なメモリに記憶されたコンピュータプログラムを使用してプログラミングされたプロセッサを使用して実装可能及び/又は指示可能であり、専用ロジックハードウェア(フィールドプログラマブル集積回路を含む)を使用して、及びその様々な組み合わせを使用して、プロセッサによって実行可能である。様々なアクションは、達成される処理に影響を与えることなく、組み合わせ可能、並列に実行可能、及び/又は異なるシーケンスにおいて実行可能である。幾つかの事例では、アクションの再配置は、特定の他の変更も同様に行われる場合にのみ、同一の結果を達成する。他の事例では、アクションの再配置は、特定の条件が満たされる場合にのみ、同一の結果を達成する。さらに、明確性のために、本明細書におけるフロー図の幾つかは、開示される技法を理解するために必要ではない幾つかのアクションを省略する。示されるアクションの前、後、及び/又は間に、様々な追加のアクションが実行可能である。
【0036】
説明において使用される選択された頭字語、ニーモニック、及び略語の例は、以下のとおりである。
【表1】
【0037】
メモリストリングの一例は、直列接続された複数のメモリデバイスである。メモリデバイスの一例は、メモリデバイスの少なくとも2つの相互排他的な状態のうちの1つを示す情報を記憶するようにイネーブルされた要素である。状態は、メモリデバイスをプログラミングすることを介して設定可能であり、メモリデバイスの制御入力を活性化することを介して読み取り可能である。幾つかのタイプのメモリデバイスでは、プログラミングは、メモリデバイスの閾値電圧を構成することを介する。構成は、時として、メモリデバイスを(例えば、1又は0に)プログラミングすることと称される。時として、構成は、単に、値(例えば、1又は0)を記憶することと称される。
3D(検索)エンジンの概念
【0038】
本明細書において、例えばビッグデータ及び/又はAI処理に関して、高性能の検索、比較、及び/又はソートをイネーブルする3D-NANDメモリを使用して実装可能である新規の3D検索エンジンアーキテクチャが開示される。アーキテクチャは、低レイテンシ、高分解能、高コンテンツ密度、マルチブロック機能、及びロバストな信頼性を可能にする。アーキテクチャは、ビッグデータ検索、AIハードウェアアクセラレータ及び/又は分類器、近似計算、連想メモリ、少量データ学習(few-shot learning)、SSDデータ管理、DNA照合、データフィルタリング、超次元計算、並びに、長い検索語及び大きいデータ容量のためにイネーブルされたIMSから利益を享受する他の応用等の様々な分野に適用可能である。アーキテクチャは高性能の比較及びソート、並びに検索をイネーブルするので、「検索」という用語は、「3D(検索)エンジン」並びに「2D(検索)エンジン」におけるように括弧で挿入される。
【0039】
新規の3D(検索)エンジンは、不揮発性メモリアレイのワードラインへの適用のための検索を受信する。3D(検索)エンジンは、検索の情報のビットごとに2つのワードラインを使用する。3D(検索)エンジンは、検索のためのそれぞれの一致ラインとして不揮発性メモリアレイのそれぞれのビットラインを使用する。不揮発性メモリアレイのそれぞれのメモリストリング(例えば、NANDメモリストリング)は、例えば検索すべき特徴に対応する、それぞれのデータ語を記憶するのに使用可能である。それぞれの複数のメモリストリングは、それぞれの共有ビットラインに並列に結合される。
【0040】
幾つかの使用シナリオでは、3D(検索)エンジンの読み出しレイテンシは、複数のブロックを同時に動作させることによって(相対的に大きい電流過渡を潜在的に犠牲にして)削減される。この同時動作は、複数の活性化制御、例えば、複数のストリング選択ライン(SSL)を切り替えることを介する。
【0041】
幾つかの使用シナリオでは、3D(検索)エンジンは、例えば、任意選択の範囲検索能力を促進するために、拡張符号化及び/又はワンホット符号化を用いて使用される。
【0042】
3D(検索)エンジンは、例えば様々な検索、比較及び/又はソート動作のための、ビッグデータ及び/又はAIに対する特定の適用可能性を有する。ホストエージェントが、3D(検索)エンジンにおける特徴の記憶を指示し、次に、3D(検索)エンジンに検索を提供して、記憶済み特徴に対する一致を決定する。一致のインジケーションは、ホストエージェントに返される。
【0043】
3D(検索)エンジンは、複数の2D(検索)エンジンを使用して、2D(検索)エンジンにわたって動作を同時に実行し、「検索キューブ」又は単に「キューブ」と称され得る。3D(検索)エンジンは、複数の記憶済み特徴にわたって複数の検索パラメータを使用して複数の検索を同時に実行するようにイネーブルされる。幾つかの使用コンテキストでは、同時検索は、2D(検索)エンジンごとである。例えば、各2D(検索)エンジンは、一意検索動作の役割を負う。幾つかの使用コンテキストでは、同時検索は、特定の2D(検索)エンジン内である。例えば、特定の2D(検索)エンジンの異なる部分が、一意検索動作の役割を負う。幾つかの使用コンテキストでは、同時検索は、複数の2D(検索)エンジンにわたって、かつ2D(検索)エンジンのうちの1つ又は複数内で並列化される。検索パラメータ及び記憶済み特徴の間での一致のインジケーションは、処理のために2D(検索)エンジンによって提供される。処理は、例えば、検索パラメータ及び記憶済み特徴の間での全体類似度を決定すること、及び/又は、例えばバッファ、キャッシュ、及び/又は優先度符号化(回路)のうちの1つ又は複数を介して、検索パラメータに対して同様に比較される1つ又は複数の記憶済み特徴を識別することを含む。
【0044】
3D(検索)エンジンによって使用される各2D(検索)エンジンは、検索パラメータから決定されたものとして2D(検索)エンジンに提供された検索情報及び2D(検索)エンジンに記憶された特徴の間での一致が存在するか否かを検出するために、複数のメモリデバイスを備える。2D(検索)エンジンは、検出に応答して一致インジケーションを生成し、当該一致インジケーションをバッファ、キャッシュ、優先度符号化のために提供し、システムにおける使用のために出力する。特徴は、特徴記憶符号化に従って記憶される。検索情報は、検索符号化に従って符号化される。記憶及び特徴符号化の例としては、拡張符号化、ワンホット符号化、低効果符号化、及び逆拡張符号化が挙げられる。3D(検索)エンジンは、例えば記憶及び/又は特徴符号化に従って、厳密及び近似の一致を選択的に実行するようにイネーブルされる。厳密一致は、全ビット一致に対応し、例えば、検索パラメータの全ビットがメモリストリングに記憶された値の全ビットに一致する。近似一致は、全てよりも少ないビットの一致に対応し、例えば、1ビットを除く全ビットの一致、2ビットを除く全ビットの一致、又は代替的には或る割合のビット一致、例えば90%のビット一致(例えば、10ビットのうちの9ビットの一致)である。
【0045】
3D(検索)エンジンの制御エージェントは、2D(検索)エンジンを同時に選択的に動作させる。同時動作は、同時に動作する2D(検索)エンジンに提供された検索情報の同じセットに対して、同時一致決定をイネーブルする。各2D(検索)エンジンは、検索情報及び2D(検索)エンジンに記憶された特徴に従って一致インジケーションを生成する。3D(検索)エンジンの優先度エンコーダは、一致インジケーションを処理して、2D(検索)エンジン間及び/又は2D(検索)エンジンのうちの1つ又は複数内の相対一致を決定する。
【0046】
2D(検索)エンジンは、同時に動作可能な複数のメモリストリングを有する。2D(検索)エンジンのメモリストリングは、2D(検索)エンジンの一致ライン及びソースラインの間で並列に結合される。メモリストリングの各々は、それぞれの特徴を記憶するのに使用可能であり、各特徴は、複数のビットを有し、特徴符号化のうちの選択されたものに従って記憶される。メモリストリングの各々は、(符号化された)検索入力を、メモリストリングに記憶された(符号化された)特徴と比較するのに使用可能である。検索に先立って、制御エージェントは、選択された特徴符号化に従った特徴の、メモリデバイスへのペア単位プログラミングを実行する。ペア単位プログラミングは、特徴のビットごとにメモリデバイスの直列接続されたペアを使用することに従う。検索のために、制御エージェントは、検索情報に従って、かつ選択された検索符号化に従って、制御入力をペアにして駆動する。検索情報は、範囲に従って検索をイネーブルする符号化における使用のために、検索パターン及び任意選択のマスク及び/又は範囲情報を含む。検索の結果は、複数の一致インジケーションとして提供され、当該複数の一致インジケーションは、次に、任意選択でバッファ、キャッシュ、及び/又は優先度符号化される。
3D(検索)エンジンの例示の実装
【0047】
例示の3D(検索)エンジン実装は、メモリデバイスとして浮遊ゲートトランジスタを使用する。浮遊ゲートトランジスタは、NAND直列結合メモリストリングにおいてインスタンス化される。それゆえ、3D(検索)エンジンは、時として3D NAND検索エンジン、又はより広く検索システム、又は代替的にはコンピューティングシステムと称される。メモリストリングは、ひいては、共有ビットライン及び共有ソースラインの間で並列にインスタンス化される。共有ビットラインに結合されたメモリストリングは、時として2D(検索)エンジン、又はより広くメモリと称される。
【0048】
浮遊ゲートトランジスタは、少なくとも2つの相互排他的な状態に従って特徴のビットを記憶するようにプログラミングされる。プログラミングは、浮遊ゲートトランジスタの閾値電圧を構成する。プログラミングされた浮遊ゲートトランジスタは、記憶済み特徴、及び浮遊ゲートトランジスタの制御ゲートに結合されたワードライン上に提供された検索の間での一致を示すことに(例えば、インピーダンスの変化を介して)条件付きで応答する。
【0049】
ワードラインは、メモリストリングの浮遊ゲートデバイスにプログラミングされている記憶済み特徴の中から検索すべき1つ又は複数の検索入力を提供するのに使用可能である。各メモリストリングは、メモリストリングに結合されたワードラインを介して提供された検索値を、メモリストリングにプログラミングされている記憶済み特徴と比較するのに使用可能である。
【0050】
各共有ビットラインは、共有ビットラインに結合された各メモリストリングにそれぞれ提供された1つ又は複数の検索入力、及びそれぞれのメモリストリングの記憶済み特徴の間での0個、1つ、又はそれよりも多くの一致を示すための一致ラインとして使用可能である。
【0051】
共有ビットラインによって提供された一致インジケーションは、(例えば、所定の優先度スキームに従って)優先度符号化され、1つ又は複数の一致結果は、システムの1つ又は複数の他のエージェントに示される。それゆえ、複数の2D(検索)結果は、1つ又は複数の3D(検索)結果に組み合わされる。
【0052】
図1A図1Cは、3Dエンジン9000としてNANDベース3D(検索)エンジン等の例示の3D(検索)エンジンの様々な態様を共同で示している。
【0053】
図1Aは、例示の3D(検索)エンジンの概略を示し、図1Bは、異なる詳細で図1Aの例示の3D(検索)エンジンの幾つかの態様を示し、図1Cは、より詳細に図1Aの例示の3D(検索)エンジンの幾つかの態様を示している。
【0054】
図1Aに戻ると、明確性のために、図は簡略化されている。
【0055】
3Dエンジン9000は、2Dエンジン9050として、複数(例えば、128K)の同一の(又は代替的には、実質的に同様の)2D(検索)エンジンを備える。明確性のために、2D(検索)エンジンの1つを除く全ての一切の詳細は省略される。
【0056】
2Dエンジン9050の2D(検索)エンジンの各々は、3Dエンジン9000に提供された特徴情報を記憶するために、メモリストリング9030によって概念的に表される複数のメモリストリングを有する。記憶済み特徴は、記憶済み特徴9900によって概念的に表される。メモリストリング9030は、記憶済み特徴情報、及び3Dエンジン9000に提供された検索情報の間での一致を、一致ライン9040のそれぞれの一致ラインに条件付きで影響を与えることによって決定するのにも使用される。例えば、条件付きで影響を与えることは、検索入力の一部分及び記憶済み特徴の一部分の間での一致に基づいて一致ラインの事前充電された値を放電することを含む。
【0057】
特徴エンコーダ9003は、3Dエンジン9000に提供された(例えば、ホストエージェントによって調達された)特徴9001を受信する。これに応答して、特徴エンコーダ9003は、選択された特徴符号化を介して、記憶済み特徴9900の部分として記憶するための、2D(検索)エンジンのメモリストリングへの適用に適した特徴入力9004を生成する。各2D(検索)エンジンの各メモリストリングは、一意の特徴を記憶するようにイネーブルされ、それゆえ、特徴入力9004は、2Dエンジン9050の2D(検索)エンジンの各々への一意の結合を有するものとして表されている。一意の結合は、2D(検索)エンジンの各々への別個の信号、共有信号(例えば、バス)の共有時間多重化セット、又は一意の特徴を記憶するために2D(検索)エンジンの各々のメモリストリングの各々をイネーブルする他の任意の適した通信機構を介して実装可能である。
【0058】
検索エンコーダ9005は、3Dエンジン9000に提供された(例えば、ホストエージェントによって調達された)検索9002を受信する。これに応答して、検索エンコーダ9005は、選択された検索符号化を介して、検索入力9006及び記憶済み特徴9900の間での一致(存在する場合)を決定するための、2Dエンジン9050の2D(検索)エンジンのメモリストリングへの適用に適した検索入力9006を生成する。各2D(検索)エンジンは、同一の検索情報を受信し、それゆえ、検索入力9006は、2D(検索)エンジンの各々への並列結合を有するものとして表されている。これは、特徴情報の配信のために使用される一意の結合と対照的である。並列結合は、2D(検索)エンジンの各々への別個にバッファされた信号、結合信号(例えば、バス)の単一のセット、又は同一の検索情報を受信するために2D(検索)エンジンの各々をイネーブルする他の任意の適した通信機構を介して実装可能である。特定の2D(検索)エンジンの各メモリストリングの各メモリデバイスは、WL9010として示されているワードラインのサンプリングとして図1Aにおいて概念的に示されているように、(検索入力9006を介して提供されるような)一意のワードラインを受信する。各2D(検索)エンジンは、同一の検索情報を受信する間、2D(検索)エンジン内のメモリストリングの各々は、一意の検索情報を受信する。
【0059】
検索入力9006に応答して、かつ2D(検索)エンジンの各々の記憶済み特徴9900に基づいて、各2D(検索)エンジンビットライン(例えば、一致ライン9040の各々)は、それぞれの一致情報を、SA9007のそれぞれのセンスアンプに提供して、2D(検索)エンジンの各々について一致インジケーションを決定する。一致インジケーションは、次に、ページバッファ、キャッシュ、優先度エンコーダ9008によって処理され、出力一致結果9009として提供され、例えば結果9099としてホストエージェントに通信される。
【0060】
ここで図1Bを参照すると、図1Aの例示の3D(検索)エンジンの幾つかの態様が、より詳細に示されている。同一の要素識別子を有する図1B及び図1Aの要素は、同一の要素である。図1Aと同様に、明確性のために、図1Bは簡略化されている。
【0061】
3つの2D(検索)エンジン(2D(検索)エンジン_0 150、2D(検索)エンジン_128K-2 158、及び2D(検索)エンジン_128K-1 159)が、それぞれの同時に動作可能なメモリストリングを有するものとして示されている。図1Aに関して要約されているように、3Dエンジン9000は、センスアンプ回路を備える。2D(検索)エンジンごとに1つのセンスアンプ(まとめてSA9007)が存在する。明確性のために、3つのセンスアンプが示されており、各々が、示されている2D(検索)エンジンのそれぞれの1つに結合されている。3Dエンジン9000は、SA9007のセンスアンプの各々の出力を処理して、出力一致結果9009として照合検索の結果を生成する検知後回路(まとめて、ページバッファ、キャッシュ、優先度エンコーダ9008)を更に備える。
【0062】
2D(検索)エンジンの各々は、X及びZ次元において示されている。平面プロセスに基づく集積回路として構築された幾つかの変形形態では、集積回路の層は、Z次元において積み重ねられる。2D(検索)エンジンは、Y次元において配列される。
【0063】
ここで図1Cを参照すると、図1A及び図1Bの例示の3D(検索)エンジンの幾つかの態様が、より詳細に示されている。同一の要素識別子を有する図1C図1B及び図1Aの要素は、同一の要素である。図1A及び図1Bと同様に、明確性のために、図1Cは簡略化されている。
【0064】
2D(検索)エンジンの各々は、それぞれのビットラインを備える。特に、2D(検索)エンジン_0 150、2D(検索)エンジン_128K-2 158、及び2D(検索)エンジン_128K-1 159は、それぞれ、BL_0 140、BL_128K-2 148、及びBL_128K-1 149を備える。図1Aにおいて、各ビットラインは検索情報及び記憶された情報の間での一致を示すのに使用可能であるので、ビットラインはまとめて一致ライン9040と称されることに留意されたい。各2D(検索)エンジンは、複数のメモリストリング(例えば、512個のメモリストリング)を備える。明確性のために、4つのメモリストリングが示されている。各メモリストリングは、それぞれのSSL入力によって制御されるトランジスタを介して2D(検索)エンジンのビットラインに選択的に結合される。トランジスタ及びSSL入力は、共同で、SSL入力の活性化(非活性化)に基づいてメモリストリングを選択的にイネーブル(ディスエーブル)することをイネーブルする。各SSL入力は、2D(検索)エンジンの各々のメモリストリングに結合される。それゆえ、各SSL入力は、SSL入力の活性化(非活性化)に基づいてメモリストリングのブロックを選択的にイネーブル(ディスエーブル)することをイネーブルする。
【0065】
例えば、SSL0 170は、2D(検索)エンジン_0 150の第1のメモリストリングをBL_0 140に、2D(検索)エンジン_128K-2 158の第1のメモリストリングをBL_128K-2 148に、及び2D(検索)エンジン_128K-1 159の第1のメモリストリングをBL_128K-1 149に、各々をそれぞれのトランジスタを介して、選択的に結合するようにイネーブルされる。SSL0 170はまた、2D(検索)エンジン_0 150及び2D(検索)エンジン_128K-2 158の間での2D(検索)エンジンの128K-3の第1のメモリストリング(図示せず)を、それぞれのトランジスタを介してその中のビットラインにそれぞれ選択的に結合するようにイネーブルされる。
【0066】
別の事例の場合、SSL511 179は、2D(検索)エンジン_0 150の第512のメモリストリングをBL_0 140に、2D(検索)エンジン_128K-2 158の第512のメモリストリングをBL_128K-2 148に、及び2D(検索)エンジン_128K-1 159の第512のメモリストリングをBL_128K-1 149に、各々をそれぞれのトランジスタを介して、選択的に結合するようにイネーブルされる。SSL511 179はまた、2D(検索)エンジン_0 150及び2D(検索)エンジン_128K-2 158の間での2D(検索)エンジンの128K-3の第512のメモリストリング(図示せず)を、それぞれのトランジスタを介してその中のビットラインにそれぞれ選択的に結合するようにイネーブルされる。
【0067】
ビットラインと同様に、2D(検索)エンジンの各々は、それぞれのソースラインを含む(示されているが、明確性のために識別されていない)。各メモリストリングは、それぞれのGSL入力によって制御されるトランジスタを介して2D(検索)エンジンのソースラインに選択的に結合される。
【0068】
ここでもビットラインと同様に、例えば、GSL0 160は、2D(検索)エンジン_0 150の第1のメモリストリングを2D(検索)エンジン_0 150のソースラインに、2D(検索)エンジン_128K-2 158の第1のメモリストリングを2D(検索)エンジン_128K-2 158のソースラインに、及び2D(検索)エンジン_128K-1 159の第1のメモリストリングを2D(検索)エンジン_128K-1 159のソースラインに、各々をそれぞれのトランジスタを介して、選択的に結合するようにイネーブルされる。GSL0 160はまた、2D(検索)エンジン_0 150及び2D(検索)エンジン_128K-2 158の間での2D(検索)エンジンの128K-3の第1のメモリストリング(図示せず)を、それぞれのトランジスタを介してその中のソースラインにそれぞれ選択的に結合するようにイネーブルされる。ソースラインは、全て接地に接続されている。
【0069】
ここでもビットラインと同様に、別の事例の場合、GSL511 169は、2D(検索)エンジン_0 150の第512のメモリストリングを2D(検索)エンジン_0 150のソースラインに、2D(検索)エンジン_128K-2 158の第512のメモリストリングを2D(検索)エンジン_128K-2 158のソースラインに、及び2D(検索)エンジン_128K-1 159の第512のメモリストリングを2D(検索)エンジン_128K-1 159のソースラインに、各々をそれぞれのトランジスタを介して、選択的に結合するようにイネーブルされる。GSL511 169はまた、2D(検索)エンジン_0 150及び2D(検索)エンジン_128K-2 158の間での2D(検索)エンジンの128K-3の第512のメモリストリング(図示せず)を、それぞれのトランジスタを介してその中のソースラインにそれぞれ選択的に結合するようにイネーブルされる。
【0070】
SSL及びGSL入力は、2D(検索)エンジンの各々における対応するメモリストリングの各々における対応するトランジスタに並列に結合される。2D(検索)エンジンの各々に512個のメモリストリングが存在するので、512個のSSL入力及び512個のGSL入力が存在する。図1Cにおいて、GSL0 160の点線の拡張部が示されているが、GSL0 160及び2D(検索)エンジン_128K-1 159のトランジスタの間での結合は、明確性のために省略されていることに留意されたい。
【0071】
3Dエンジン9000では、メモリストリングの各々は、(各メモリストリングをビットライン及びソースラインに結合するトランジスタを除外する)128個の浮遊ゲートトランジスタの同じ長さである。3Dエンジン9000の平面集積回路プロセス実装では、特定の数の層が、メモリストリングを実装するのに使用される。メモリストリングの長さが増大するにつれて、メモリストリングを実装するのに使用される層の数も増大する。それゆえ、メモリストリングの長さを2倍にすると、メモリストリングを実装するのに使用される層も2倍になる。
【0072】
ここでワードラインを参照すると、概念的には、各2D(検索)エンジンは、ワードラインの同じ2Dアレイに結合される。X次元において、512個のメモリストリングの各々と1対1で対応する、512列のワードラインが存在する。Z次元において、メモリストリングの各々の浮遊ゲートトランジスタと1対1で対応する、128行のワードラインが存在する。それゆえ、ワードラインの2Dアレイは、512列×128行又は512*128個の個別のワードラインである。各ワードラインは、2D(検索)エンジンの各々における単一のメモリストリングの単一の浮遊ゲートトランジスタに結合する。図1Cにおいて、WL0_0 100の点線の拡張部が示されているが、WL0_0 100及び2D(検索)エンジン_128K-1 159の浮遊ゲートトランジスタの間での結合は、明確性のために省略されていることに留意されたい。
【0073】
例えば、WL0_0 100は、2D(検索)エンジン_0 150の第1のメモリストリングの浮遊ゲートトランジスタ、2D(検索)エンジン_128K-2 158の第1のメモリストリングの浮遊ゲートトランジスタ、及び2D(検索)エンジン_128K-1 159の第1のメモリストリングの浮遊ゲートトランジスタに結合する。WL0_0 100はまた、2D(検索)エンジン_0 150及び2D(検索)エンジン_128K-2 158の間での2D(検索)エンジンの128K-3の第1のメモリストリング(図示せず)の各々における浮遊ゲートトランジスタに結合する。
【0074】
別の事例の場合、WL0_511 109は、2D(検索)エンジン_0 150の第512のメモリストリングの浮遊ゲートトランジスタ、2D(検索)エンジン_128K-2 158の第512のメモリストリングの浮遊ゲートトランジスタ、及び2D(検索)エンジン_128K-1 159の第512のメモリストリングの浮遊ゲートトランジスタに結合する。WL0_511 109はまた、2D(検索)エンジン_0 150及び2D(検索)エンジン_128K-2 158の間での2D(検索)エンジンの128K-3の第512のメモリストリング(図示せず)の各々における浮遊ゲートトランジスタに結合する。
【0075】
この説明では、ワードラインは、時として、2Dコンテキストにおいてブロック番号及び層番号によって参照される。概念的には、ブロックはY及びZ次元において存在し、層はX及びY次元において存在する。概念的には、ブロック番号は列番号に対応し、層番号は行番号に対応する。
【0076】
ブロックは、2D(検索)エンジンの各々からのメモリストリングに対応する。具体的な例として、GSL511 169及びSSL511 179の間に結合されたメモリストリングは、ブロック番号511に対応する。別の具体的な例として、GSL0 160及びSSL0 170の間に結合されたメモリストリングは、ブロック番号0に対応する。
【0077】
層は、全ての2D(検索)エンジンのメモリストリングの各々からの浮遊ゲートトランジスタに対応する。具体的な例として、WL0_511 109及びWL0_0 100に結合された浮遊ゲートトランジスタは、層番号0の部分である。別の具体的な例として、WL1_511 119に結合された浮遊ゲートトランジスタは、層番号1の部分である。同様に、WL2_511 129、WL126_0 180、及びWL127_0 190にそれぞれ結合された浮遊ゲートトランジスタは、それぞれ層番号2、3、126、及び127の部分である。浮遊ゲートトランジスタの層が1つ又は複数の平面集積回路プロセス層に対応するが、層はまた、平面集積回路プロセスに関する層に対応する。
【0078】
それゆえ、ワードラインは、Z及びX次元において、それぞれ「WL」「<層番号>」及び「<ブロック番号>」として識別可能である。それゆえ、WL0_0 100は、層番号0及びブロック番号0である。WL0_511 109は、層番号0及びブロック番号511である。
【0079】
図1Dは、図1A及び図1Bの部分のコンテキストにおける2D(検索)エンジン_0 150を示している。多数のワードラインは、WL6_511付近のアイコンによって示されているように、上述された「WL」「<層番号>」及び「<ブロック番号>」スキームにおいて図示及び識別される。2D(検索)エンジン_0 150は、512個のメモリストリングを備える。明確性のために、4つのメモリストリングが示されている(MemStr0 130、MemStr1 131、MemStr510 138、及びMemStr511 139)。メモリストリングの各々の浮遊ゲートトランジスタは、ペアにして配置され、動作される。ペアのうちの1つの一例は、IMSデータビット134である。別の例は、IMSデータビット135である。概念的には、偶数で層番号を付与されたワードラインの各々は、ペアの浮遊ゲートトランジスタのうちの1つに結合される。例えば、層0のWL0_0、WL0_1...WL0_510、及びWL0_511は、各々層2のWL2_0...WL2_511等から、層126のWL126_0...WL126_511のような、ペアのうちのそれぞれの1つに結合される。さらに、奇数で層番号を付与されたワードラインの各々は、ペアの浮遊ゲートトランジスタのうちの他の1つに結合される。例えば、層1のWL1_0、WL1_1...WL1_510、及びWL1_511は、層0のWL0_0、WL0_1...WL0_510、及びWL0_511がそれぞれ結合されるペアの他の浮遊ゲートトランジスタにそれぞれ結合される。
【0080】
図1Dはまた、2D(検索)エンジンの特定の使用例を示している。
【0081】
各メモリストリングは、特徴を記憶するのに使用可能である。それゆえ、2D(検索)エンジン_0 150の512個のメモリストリングは、最大で512個の特徴を記憶するのに共同で使用可能である。明確性のために、特徴のうちの1つは、特徴0 1133として示されている。浮遊ゲートトランジスタのペアの各々は、特徴のうちの1つの単一のビットを記憶するのに使用可能である。メモリストリングの各々において64ペアの浮遊ゲートトランジスタが存在する。それゆえ、メモリストリングの各々は、最大で64ビットまでの特徴を記憶するのに使用可能である。
【0082】
各メモリストリングは、内部に記憶された特徴を、メモリストリングに結合されたワードラインを介して供給される検索入力と比較するのに使用可能である。メモリストリングの各浮遊ゲートトランジスタは、浮遊ゲートトランジスタによって記憶された特徴ビットに従ってワードライン電圧(例えば、プログラミングによって構成される浮遊ゲートトランジスタの閾値電圧)に応答する。例えば、ペアにして動作すると、浮遊ゲートトランジスタのペアは、一致発見インピーダンス(例えば、相対的に低いインピーダンス)を介してワードラインのペアを介して浮遊ゲートトランジスタのペアに提供された検索入力に対する一致を示す。このペアは、一致発見なしインピーダンス(例えば、相対的に高いインピーダンス)を介して一致の欠落を示す。それゆえ、メモリストリングの全体にわたって、ワードラインの対応するペアを介して提供されるようなマルチビット検索入力に一致する浮遊ゲートトランジスタの記憶済み特徴ビットの全てのペアに応答して、メモリストリングの全体は、対応するメモリストリング一致発見インピーダンスを示す。全て未満のペアの一致に応答して、メモリストリングの全体は、メモリストリング一致発見インピーダンスよりも高い対応するメモリストリングインピーダンスを示す。一致するペアなしに応答して、メモリストリングの全体は、対応するメモリストリング一致発見なしインピーダンスを示す。全ビット一致及びビット一致なしの極限の間では、メモリストリングは、適用されたワードライン入力と比較してビット対ビットで一致する記憶済み特徴ビットが対応してより多くなる(より少なくなる)につれて単調減少(増加)する対応するメモリストリングインピーダンスを示す。ストリング電流136Dは、示されるメモリストリングインピーダンスに基づくような、メモリストリングにおける電流を示す。
【0083】
例えば、MemStr0 130は、SSL0の活性化を介してBL_0 140に結合されるとともに、GSL0の活性化を介してCSL145に結合される。MemStr0 130に記憶された特徴0 1133は、IMSデータビット135の浮遊ゲートトランジスタペアにおいて単一の1ビットを除いて全て0ビットにプログラミングされる。
【0084】
MemStr0 130に結合された全てのワードラインペア(WL0_0、WL1_0...WL126_0、及びWL127_0)がペアにおいて全て0ビットについての検索を示す例に関して第1の動作シナリオを検討する。これに応答して、IMSデータビット135のペアを除く、MemStr0 130の全ての浮遊ゲートトランジスタペアは、一致発見インピーダンスを示す。IMSデータビット135のペアは、(ワードライン検索入力及び記憶済み特徴ビットの間での一致が存在しないので)一致発見なしインピーダンスを示す。それゆえ、MemStr0 130は、全体的には、メモリストリング一致発見インピーダンスよりも高いインピーダンスを示す。SA143は、インピーダンスがメモリストリング一致発見インピーダンスよりも高いことを検知し、検知出力144を介して、ワードラインペア及び特徴0 1133の間での一致が存在しないことを示す。
【0085】
IMSデータビット135に結合されたワードラインペア(WL2_0及びWL3_0)が1ビットのための検索を示すとともに、MemStr0 130に結合されたワードラインペアの残り(WL0_0、WL1_0、WL4_0、WL5_0...WL126_0、及びWL127_0)がペアにおいて0ビットのための検索を示す例に関する第2の動作シナリオを検討する。これに応答して、IMSデータビット135のペアを含む、MemStr0 130の全ての浮遊ゲートトランジスタペアは、一致発見インピーダンスを示す。それゆえ、MemStr0 130は、全体的には、メモリストリング一致発見インピーダンスに等しいインピーダンスを示す。SA143は、インピーダンスがメモリストリング一致発見インピーダンスであることを検知し、検知出力144を介して、ワードラインペア及び特徴0 1133の間での一致が存在することを示す。
【0086】
SA143は、検知を実行するとともに、例えば、検知時間間隔内にBL_0140上で所定の検知閾値よりも高い(又はよりも低い)電圧変化を検出することによって、検知出力144を生成する。幾つかの変形形態では、電圧変化は、MemStr0 130が示されるメモリストリングインピーダンスに従ってBL_0 140上で事前充電された値を放電することに起因する。インピーダンスがメモリストリング一致発見インピーダンスよりも高い第1の動作シナリオに応答して、BL_0 140は、インピーダンスがメモリストリング一致発見インピーダンスに等しい第2の動作シナリオと比較してより低速にMemStr0 130によって放電される。検知閾値及び/又は検知時間間隔は、検知速度(例えば、エンジン帯域幅及び/又はレイテンシ)及び雑音耐性(例えば、エンジンレジリエンス)に基づいて、一致発見インピーダンス及び一致発見以外のインピーダンスを区別することをイネーブルするように設定される。
【0087】
第1又は第2の動作シナリオのいずれかの場合、図1A図1B、及び図1Cのコンテキストで続けると、検知出力144は、他の2Dエンジンの対応するセンスアンプ情報とともに、ページバッファ、キャッシュ、優先度エンコーダ9008に提供される。ページバッファ、キャッシュ、優先度エンコーダ9008は、2Dエンジン検知出力の全体のコンテキストにおいて検知出力144をバッファ、キャッシュ、及び/又は優先度符号化する。
【0088】
幾つかの応用では、コントローラが、2D(検索)エンジンの複数のブロックを活性化して、同時に複数のブロックを検索することをイネーブルする。例えば、複数のSSL入力が、同じ検索動作中に複数のブロックを検索するために、同じ検索動作において活性化される。
【0089】
例えば、コントローラは、128K 2D(検索)エンジンの各々である2D(検索)エンジン_0 150...2D(検索)エンジン_128K-2 158、及び2D(検索)エンジン_128K-1 159において同時に2つのブロックを検索することをイネーブルするために、同じ検索動作においてSSL_511及びSSL_510を活性化する。それゆえ、コントローラは、2*128K個のブロックを同時に検索するように3Dエンジン9000をイネーブルする。代替的には、コントローラは、任意の2つのブロックを同時に検索することをイネーブルするために、同じ検索動作において任意の2つのSLL入力を活性化する。他の事例の場合、コントローラは、対応する複数のブロックを同時に検索することをイネーブルするために、同じ検索動作において任意の4つ、6つ、8つ、32個、64個、128個、256個、又は512個のSSL入力を活性化する。例えば、コントローラは、同じ検索動作において512個のSSL入力全てを活性化する。それゆえ、コントローラは、512*128K個のメモリストリングを含む512個のブロックを同時に検索するように3Dエンジン9000をイネーブルする。任意選択で、コントローラは、複数のブロックが同時に検索されるのか否か、及びどの程度の複数のブロックが同時に検索されるのかを指定する制御レジスタに応答する。
【0090】
図1A図1B、及び図1Cは、特定の数の2D(検索)エンジンを有するものとして例示の3D(検索)エンジンを示しており、当該2D(検索)エンジンの各々は、特定の数のメモリストリングを有し、当該メモリストリングの各々は、特定の数の(各々が浮遊ゲートトランジスタのそれぞれのペアとしての)IMSデータビットを有する。特に、3Dエンジン9000は、128K 2D(検索)エンジン(2D(検索)エンジン_0 150...2D(検索)エンジン_128K-1 159)を有するが、幾つかの変形形態は、より少ない又はより多くの2D(検索)エンジンを有する。各2D(検索)エンジンは、512個のメモリストリング(例えば、MemStr0 130...MemStr511 139)を有するが、幾つかの変形形態は、より少ない又はより多くのメモリストリングを有する。各メモリストリングは、(例えば、ワードラインペアWL0_1及びWL1_0...WL126_0及びWL127_0に結合された)64個のIMSデータビットを有するが、幾つかの変形形態は、メモリストリングごとにより少ない又はより多くのIMSデータビットを有する。
【0091】
2D(検索)エンジン及び関連付けられたセンスアンプ回路の幾つかの変形形態は、単一のビットのセンスアンプ分解能(例えば、一致/一致なし)をイネーブルする。幾つかの変形形態は、(例えば、一致なし、1つの一致、又は2つ又はそれよりも多くの一致を符号化するために)複数のビットのセンスアンプ分解能をイネーブルする。幾つかの変形形態は、デジタルではなくアナログであるセンスアンプインジケーションをイネーブルする。例えば、センスアンプ出力は、メモリストリング電流に基づく単調増加関数であり、メモリストリング電流は、検索入力及び記憶済み特徴の間での類似度の単調増加(又は減少)インジケータである。
【0092】
3D(検索)エンジンの幾つかの変形形態は、検索のための照合として(単一のメモリストリングに記憶された)最大で1つの特徴を識別することをイネーブルする。幾つかの変形形態は、検索のための照合として(複数のメモリストリングに記憶された)最大で複数の特徴を同時に識別することをイネーブルする。幾つかの変形形態は、検索のための照合として内部に記憶された1つ又は複数の特徴を有するものとして最大で1つの2D(検索)エンジンを同時に識別することをイネーブルする。幾つかの変形形態は、検索のための照合として内部に記憶された1つ又は複数の特徴を各々が有するものとして複数の2D(検索)エンジンを同時に識別することをイネーブルする。
【0093】
3D(検索)エンジンの幾つかの変形形態は、所定の2D(検索)エンジン優先度に従って一致インジケーションを優先度符号化することをイネーブルする(例えば、所定の2D(検索)エンジンは、最低優先度であり、別の所定の2D(検索)エンジンは、最高優先度である)。それゆえ、所定の最高優先度2D(検索)エンジンからの一致インジケーションは、最高優先度一致に対応する。さらに、所定の第2最高優先度2D(検索)エンジンからの一致インジケーションは、第2最高優先度一致に対応する。幾つかの変形形態は、メモリストリング内の記憶済み特徴ビットがそれぞれの検索入力ビットに一致する数(例えば、0個の一致、1つの一致、2つの一致、又は3つ又はそれよりも多くの一致)に従って優先度符号化することをイネーブルする。それゆえ、最高優先度一致は、それぞれの検索入力ビットに一致するメモリストリング内の記憶済み特徴ビットの最高数に対応し、第2最高優先度一致は、それぞれの検索入力ビットに一致するメモリストリング内の記憶済み特徴ビットの第2最高数に対応する。幾つかの変形形態は、メモリストリングが特定の2D(検索)エンジンに一致する数(例えば、0個の一致、1つの一致、2つの一致、又は3つ又はそれよりも多くの一致)に従って優先度符号化することをイネーブルする。それゆえ、最高優先度一致は、特定の2D(検索)エンジン内で一致するメモリストリングの最高数に対応し、第2最高優先度一致は、特定の2D(検索)エンジン内で一致するメモリストリングの第2最高数に対応する。
【0094】
幾つかの変形形態は、単一の一致している記憶済み特徴を識別する優先度符号化をイネーブルする。幾つかの変形形態は、複数の一致している記憶済み特徴を識別する優先度符号化をイネーブルする。幾つかの変形形態は、例えば検索に一致する最高数の記憶済み特徴ビットを有する単一の「最良に一致する」記憶済み特徴を識別する優先度符号化をイネーブルし、最高数は、最大の記憶済み特徴長さ未満である。幾つかの変形形態は、例えば複数の記憶済み特徴の各々についての検索に一致する記憶済み特徴ビットの数に従ってランク付けされた、複数の「最良に一致する」記憶済み特徴を識別する優先度符号化をイネーブルする。
【0095】
様々な使用シナリオにおいて(例えば、2D(検索)エンジンにプログラミングされた特徴、提供された検索情報、及び/又はこれらの符号化に起因して)、3D(検索)エンジンの様々な数の2D(検索)エンジンは、2D(検索)エンジンのメモリストリングのうちの1つ又は複数に記憶された1つ又は複数の特徴及び3D(検索)エンジンの2D(検索)エンジンに提供された検索情報の間での一致を検出する。
【0096】
幾つかの使用シナリオでは、2D(検索)エンジンの0個、1つ、又はそれよりも多くのメモリストリングが、一致を検出し、センスアンプ回路は、一致結果を複数のビットとして符号化する。例えば、センスアンプ回路は、0個のメモリストリングの一致、1つのメモリストリングの一致、2つのメモリストリングの一致、及び2つよりも多くのメモリストリングの一致を、4つの相互排他的符号化として符号化する。幾つかの変形形態は、2D(検索)エンジン優先度、一致する記憶済み特徴ビットの数、メモリストリング(例えば、特徴)の数等の1つ又は複数の要因に従って優先度符号化をイネーブルする。
【0097】
例えば、2D(検索)エンジン_0 150...2D(検索)エンジン_128K-1 159のいずれからも一致なしであることに応答して、SA9007は、全て0からなるベクトルをページバッファ、キャッシュ、優先度エンコーダ9008に提供する。これに応答して、ページバッファ、キャッシュ、優先度エンコーダ9008は、このオールゼロベクトルを、0個の一致を示すバイナリ値に優先度符号化し、当該バイナリ値を、出力一致結果9009を介して提供する。
【0098】
この例を続けると、2D(検索)エンジン_0 150の単一のメモリストリングが一致を検出することに応答して、SA9007は、2D(検索)エンジン_0 150に対応するLSBを1として、かつ他の全てのビットを0として有するベクトルを提供する。これに応答して、ページバッファ、キャッシュ、優先度エンコーダ9008は、このベクトルを、2D(検索)エンジン_0 150を一致するメモリストリングを有するものとして識別する非ゼロバイナリ値に符号化する。
【0099】
例を続けると、2D(検索)エンジン_0 150の複数のメモリストリングが一致を検出するとともに2D(検索)エンジン_128K-2 158の単一のメモリストリングが一致を検出することに応答して、SA9007は、2D(検索)エンジン_0 150に対応するビットを1として、2D(検索)エンジン_128K-2 158に対応する別のビットを1として、及び他の全てのビットを0として有するベクトルを提供する。これに応答して、ページバッファ、キャッシュ、優先度エンコーダ9008は、このベクトルを、2D(検索)エンジン_128K-2 158を最高優先度で一致するメモリストリングを有するものとして識別する非ゼロバイナリ値に符号化する。
3D(検索)エンジン符号化
【0100】
3D(検索)エンジンによって実行されるような検索、比較、及び/又はソートは、選択された特徴符号化(3D(検索)エンジンのメモリストリングへの特徴記憶のため)及び選択された検索符号化(メモリストリングによって実行される検索のため)に従う。特徴及び検索符号化は、メモリストリングによって実行される照合が特徴記憶のために選択された符号化のコンテキストであるので、互いに組み合わせて選択される。
【0101】
特徴を記憶し、及び/又は検索を実行するために3D(検索)エンジンにおいて使用可能な例示の符号化としては、拡張符号化、ワンホット符号化、低効果符号化(概念的には、削減されたパターン及び基板効果をイネーブルする拡張符号化の変形形態)、及び逆拡張符号化が挙げられる。
【0102】
簡単な導入として、図1E及び図1Fは、それぞれ、図1Dと同様の形式において、2D(検索)エンジン_0 150のコンテキストでの拡張符号化及びワンホット符号化使用例を示している。それに応じて、図2及び図3は、それぞれ、拡張符号化及びワンホット符号化例を示している。
3D(検索)エンジン拡張符号化
【0103】
まず拡張符号化を参照すると、Nビットバイナリ値(特徴又は検索のいずれか)が、2^Nビットフィールドにおいて符号化される。符号化は、ビットの2つの連続したフィールドを生成する。連続したフィールドの各々は、1又は0のいずれかの繰り返しである。それゆえ、2^N-1は、単一の先頭の0及び残りは全て1として符号化される。1の数は、符号化されている値に等しい。特別な事例として、0は、オールゼロとして符号化される。それゆえ、最上位ビットは、常に0である。したがって、幾つかの変形形態では、最上位ビットは実装されない。
【0104】
図2は、3D(検索)エンジンのための例示の拡張符号化を示している。表において2つの列が存在する。第1列である値251は、拡張符号化に従って符号化されることになる6ビットバイナリ値である。第2列である拡張符号化252は、第1列からの対応するバイナリ値の64ビットバイナリ拡張符号化である。読み易さのために、64ビット値は、アンダースコア(「_」)文字によって4ビットごとに分離される。簡潔性のために、表は、幾つかの値を省略する。
【0105】
図1Eは、3D(検索)エンジンの2D(検索)エンジン、特に図1Dの2D(検索)エンジン_0 150の拡張符号化使用例を示している。同一の要素識別子を有する図1E及び図1Dの要素は、同一の要素である。
【0106】
図2の拡張符号化に従って符号化される4つの例示の特徴は、図1Eの左側部分の表において要約される。特に、MemStr0 130は、1の拡張符号化(単一の1ビット及び63個の0ビット)で特徴0 1000Eを記憶するようにプログラミングされる。各特徴ビットは、メモリデバイスの直列ペアに記憶される。特徴拡張符号化は、図1Aの特徴エンコーダ9003によって実行される。MemStr1 131は、4の拡張符号化(4つの1ビット及び60個の0ビット)で特徴1 1001Eを記憶するようにプログラミングされる。特徴2-509は、特別に論述されない様々な値の拡張符号化を記憶するようにプログラミングされる。MemStr510 138は、5の拡張符号化(5つの1ビット(その4つが示されている)及び59個の0ビット)で特徴510 1510Eを記憶するようにプログラミングされる。MemStr511 139は、63の拡張符号化(63個の1ビット及び単一の0ビット)で特徴511 1511Eを記憶するようにプログラミングされる。
【0107】
示されている使用シナリオでは、検索も、図2の拡張符号化に従って符号化される。検索拡張符号化は、図1Aの検索エンコーダ9005によって実行される。値1についての検索は、単一の1ビット及び63個の0ビットについての検索としてワードラインのペア上で符号化される。検索がブロック0内であると仮定すると、検索のために使用されるワードラインのペアは、WL0_0、WL1_0...WL126_0、及びWL127_0である。ブロック0のワードライン上に提示される63の拡張符号化に応答して、MemStr0 130は、ストリング電流136Eによって示されるような電流をイネーブルする。電流は、SA143によって検知されると一致を示し、更なる処理のために検知出力144上に提示される。
【0108】
記憶済み特徴のいずれも対応する検索入力のうちのいずれかに一致しないことに応答して、電流は、SA143によって検知されると一致なしを示し、更なる処理のために検知出力144上に提示される。
【0109】
拡張符号化は、検索及び記憶済み特徴の間での近似一致のために使用可能である。最良の一致(例えば、高い類似度)は、最高メモリストリング電流(例えば、最低インピーダンス)を有する。最悪の一致(例えば、低い類似度)は、最低メモリストリング電流(例えば、最高インピーダンス)を有する。一致した(又は不一致の)ビットの数は、メモリストリング電流及び/又はインピーダンスの測定によって決定可能である。
【0110】
例示の検索拡張符号化分解能としては、32個の3D-NAND層を使用して実装される4ビット、64個の3D-NAND層を使用する5ビット、128個の3D-NAND層を使用する6ビット、256個の3D-NAND層を使用する7ビット、及び512個の3D-NAND層を使用する8ビットが挙げられる。それゆえ、分解能は、3D-NAND層の数が2倍になると1ビットだけ増大する。
3D(検索)エンジンワンホット符号化
【0111】
次にワンホット符号化を参照すると、Nビットバイナリ値(特徴又は検索のいずれか)が、2^Nフィールドにおいて符号化される。符号化は、単一の1ビットを、他の全てのビットが0である状態で、生成する。単一の1ビットは、符号化されている値に対応するビット位置にある。
【0112】
図3は、表として、3D(検索)エンジンのための例示のワンホット符号化を示している。表において2つの列が存在する。第1列である値351は、ワンホット符号化に従って符号化されることになる6ビットバイナリ値である。第2列であるワンホット符号化352は、第1列からの対応するバイナリ値の64ビットバイナリワンホット符号化である。読み易さのために、64ビット値は、アンダースコア(「_」)文字によって4ビットごとに分離される。簡潔性のために、表は、幾つかの値を省略する。
【0113】
図1Fは、3D(検索)エンジンの2D(検索)エンジン、特に図1Dの2D(検索)エンジン_0 150のワンホット符号化使用例を示している。同一の要素識別子を有する図1F及び図1Dの要素は、同一の要素である。
【0114】
図3のワンホット符号化に従って符号化される4つの例示の特徴は、図1Fの左側部分の表において要約される。特に、MemStr0 130は、1のワンホット符号化(ビット位置1にある単一の1ビット及び他の場所にある63個の0ビット)で特徴0 1000Fを記憶するようにプログラミングされる。各特徴ビットは、メモリデバイスの直列ペアに記憶される。特徴ワンホット符号化は、図1Aの特徴エンコーダ9003によって実行される。MemStr1 131は、3のワンホット符号化(ビット位置3にある単一の1ビット及び他の場所にある63個の0ビット)で特徴1 1001Fを記憶するようにプログラミングされる。特徴2-509は、特別に論述されない様々な値のワンホット符号化を記憶するようにプログラミングされる。MemStr510 138は、4のワンホット符号化(ビット位置4にある単一の1ビット及び他の場所にある63個の0ビット)で特徴510 1510Fを記憶するようにプログラミングされる。MemStr511 139は、63のワンホット符号化(ビット位置63にある単一の1ビット(最上位ビット)及び他の場所にある63個の0ビット)で特徴511 1511Fを記憶するようにプログラミングされる。
【0115】
示されている使用シナリオでは、検索も、図3のワンホット符号化に従って符号化される。検索ワンホット符号化は、図1Aの検索エンコーダ9005によって実行される。値1についての検索は、ビット位置1にある単一の1ビット及び63個の0ビットについての検索としてワードラインのペア上で符号化される。検索がブロック0内であると仮定すると、検索のために使用されるワードラインのペアは、WL0_0、WL1_0...WL126_0、及びWL127_0である。ブロック0のワードライン上に提示される1のワンホット符号化に応答して、MemStr0 130は、ストリング電流136Fによって示されるような電流をイネーブルする。電流は、SA143によって検知されると一致を示し、更なる処理のために検知出力144上に提示される。
【0116】
記憶済み特徴のいずれも対応する検索入力のうちのいずれかに一致しないことに応答して、電流は、SA143によって検知されると一致なしを示し、更なる処理のために検知出力144上に提示される。
3D(検索)エンジン低効果符号化
【0117】
次に低効果符号化を参照すると、符号化は、メモリストリングにおける浮遊ゲートトランジスタの削減されたパターン効果及び削減された基板効果をイネーブルする拡張符号化に対する変形形態である。概念的には、浮遊ゲートトランジスタ及び対応するワードラインは、同じ閾値電圧においてプログラミングされる浮遊ゲートトランジスタがメモリストリング内で互いに連続する傾向になるように再配置される。これは、実際にトランジスタを動かすことを伴うのではなく、拡張符号化を変更することによって、達成される。
【0118】
図4Aは、例示の拡張符号化及び対応する例示の低効果符号化を示している。簡潔性のために、例は、16個の浮遊ゲートトランジスタ、及びそれに応じて16個のワードラインのメモリストリングに関する。
【0119】
表形式において配置された3つの列が存在する。第1列である値461は、符号化されることになるバイナリ値である。第2列である拡張符号化462は、第1列からの値の8ビット拡張符号化である。第3列である低効果符号化463は、第1列からの値の等価な8ビット低効果符号化である。
【0120】
表は、行の3つのセクションを有する。第1のセクションである検索入力404は、3の同じ検索値のそれぞれの符号化を表す単一の行である。第2のセクションである記憶済み特徴464は、拡張符号化又は低効果符号化のうちの1つに従ってそれぞれの記憶済み特徴値を各々が表す9つの行を有する。第3のセクションであるメモリストリング430は、左から右に向かってそれぞれビットライン「BL」から開始し、ストリング選択ライン「SSL」を通り、複数のワードライン「WL...WL」を通り、接地選択ライン「GSL」を通り、電流ソースライン「CSL」において終端するように進むメモリストリングを示す。
【0121】
拡張符号化462における「HL」エントリは、1のデータビットに対応し、「LH」エントリは、0のデータビットに対応する。各「H」又は「L」文字は、浮遊ゲートトランジスタの閾値電圧に対応する。記憶済み特徴464における「H」エントリは、「高」閾値電圧に対応し、「L」エントリは、「低」閾値電圧に対応する。検索入力404におけるH2及びH1エントリは、2つのそれぞれのワードライン電圧に対応する。特定の検索入力は、3として示されている。拡張符号化462及び低効果符号化463における下線は、浮遊ゲートトランジスタ及び対応するワードラインの概念的な再配置を示すように機能する。
【0122】
図4Bは、1の入力と比較したハミング距離とともに例示の拡張符号化を示している。1の入力は、1の検索入力に対応し、入力450として拡張符号化に従って符号化されて示されている。例示の符号化は、図2のものである。表において3つの列が存在する。第1列である値451は、拡張符号化に従って符号化されることになる6ビットバイナリ値である。第2列である拡張符号化452は、第1列からの対応するバイナリ値の64ビットバイナリ拡張符号化である。第3列であるHD453は、それぞれの拡張符号化及び1の検索入力(入力450)の拡張符号化の間のハミング距離である。ハミング距離は、入力が記憶済み値に一致する場合、最小(0)である。ハミング距離は、入力が記憶済み値のほぼ全てのビットに対して不一致である場合、最大(62)である。読み易さのために、64ビット値は、アンダースコア(「_」)文字によって4ビットごとに分離される。簡潔性のために、表は、幾つかの値を省略する。
【0123】
図4Cは、1、0、及びドントケアの比較をイネーブルする例示の閾値電圧及びワードライン電圧を示している。この図の左側部分は、メモリ状態「1」セルを、メモリ状態「1」471として表す。この図の右側部分は、メモリ状態「0」セルを、メモリ状態「0」470として表す。この図は、浮遊ゲートトランジスタに特徴を記憶すること及びワードライン上の検索情報を浮遊ゲートトランジスタの制御ゲートに駆動することに関して、閾値電圧及びワードライン電圧の間の関係の2つのセットを表す。いずれかのセットが、使用シナリオに従って使用可能である。
【0124】
第1のセットは、V2 473の値を有する第1のワードライン電圧VH1及びV3 474の値を有する第2のワードライン電圧VH2に対応する。それゆえ、メモリ状態「1」471にあるようにプログラミングされた浮遊ゲートトランジスタに関して、(値V2 473を有する)VH1の印加又は(値V3 474を有する)VH2の印加のいずれかが、高ゲートオーバドライブをもたらす。メモリ状態「0」470にあるようにプログラミングされた浮遊ゲートトランジスタに関して、(値V3 474を有する)VH2の印加が、高ゲートオーバドライブをもたらす。しかしながら、(値V2 473を有する)VH1の印加は、それらの浮遊ゲートトランジスタの低ゲートオーバドライブをもたらす。
【0125】
第2のセットは、V1 472の値を有する第1のワードライン電圧VL及びV3 474の値を有する第2のワードライン電圧VHに対応する。それゆえ、メモリ状態「1」471にあるようにプログラミングされた浮遊ゲートトランジスタに関して、(V1 472の値を有する)VLの印加が、高ゲートオーバドライブをもたらす。さらに、メモリ状態「0」470にあるようにプログラミングされた浮遊ゲートトランジスタに関して、(V1 472の値を有する)VLの印加が、ゲートオーバドライブなしをもたらす。メモリ状態「1」471又はメモリ状態「0」470のいずれかにあるようにプログラミングされた浮遊ゲートトランジスタに関して、V3 474の値を有するVHの印加が、高ゲートオーバドライブをもたらす。
【0126】
図4Dは、概念的にはそれぞれ高及び低セル電流能力に対応する、低及び高浮遊ゲートトランジスタ及びセルインピーダンスに対する高及び低ゲートオーバドライブに関するアイコンを示している。高ゲートオーバドライブ483は、相対的に太い矢印によって、高ゲートオーバドライブを表す。低ゲートオーバドライブ484は、相対的に細い矢印によって、低ゲートオーバドライブを表す。高セル電流485は、2つの相対的に太い矢印によって、相対的に高いセル電流能力(例えば、相対的に低いインピーダンス)を示す。低セル電流486及び低セル電流487は、1つの相対的に太い矢印及び1つの相対的に細い矢印によって、相対的に低いセル電流能力(例えば、相対的に高いインピーダンス)を示す。
【0127】
図4Eは、検索情報対記憶済みデータの関数としての浮遊ゲートトランジスタ電流能力(例えば、インピーダンス)を示している。記憶済みデータ値499は、4つの列である、0を記憶490、1を記憶491、ドントケアを記憶492、及び無効を記憶493を有する。入力検索情報489は、3つの行である、0を検索480、1を検索481、及びワイルドカード482を有する。表における各セルは、図4Dにおいて示されたアイコンに従って各浮遊ゲートトランジスタのインピーダンスを表し、並びに、同様に図4Dにおいて示されたアイコンに従って各セルにおいて示された浮遊ゲートトランジスタのペアの実効インピーダンスを表す。セル4900、4902、4911、4912、4920、4921、4922、及び4932は、ペアにおける両方の浮遊ゲートトランジスタのゲートオーバドライブを表し、結果として相対的に低いインピーダンスがもたらされる。セル4901、4910、4930、及び4931は、ペアにおける1つの浮遊ゲートトランジスタのみのゲートオーバドライブを表し、結果として相対的に高いインピーダンスがもたらされる。相対的に低いインピーダンスは、検索及びデータの間での一致を表し、相対的に高いインピーダンスはそうではないことを表す。
【0128】
具体的な例として、閾値電圧及びワードライン電圧VH1(値V2 473を有する)及びVH2(値V3 474を有する)の間の関係の第1のセットの使用シナリオにおけるセル4900を検討する。VyはVH2に等しく、VxはVH1に等しい。それゆえ、Vy(VH2に等しい)によって制御される上側の浮遊ゲートトランジスタは、高ゲートオーバドライブ、それゆえ、低インピーダンスに対応する高電流能力を有する。Vx(VH1に等しい)によって制御される下側の浮遊ゲートトランジスタも、高ゲートオーバドライブ、それゆえ、低インピーダンスに対応する高電流能力を有する。したがって、全体的には、セル4900は、低インピーダンスに対応する高電流能力を有する。
【0129】
別の具体的な例として、閾値電圧及びワードライン電圧VL(値V1 472を有する)及び第2のワードライン電圧VH(値V3 474を有する)の間の関係の第2のセットの使用シナリオにおけるセル4900を検討する。VyはVHに等しく、VxはVLに等しい。それゆえ、Vy(VHに等しい)によって制御される上側の浮遊ゲートトランジスタは、高ゲートオーバドライブ、それゆえ、低インピーダンスに対応する高電流能力を有する。Vx(VLに等しい)によって制御される下側の浮遊ゲートトランジスタも、高ゲートオーバドライブ、それゆえ、低インピーダンスに対応する高電流能力を有する。したがって、全体的には、セル4900は、低インピーダンスに対応する高電流能力を有する。
3D(検索)エンジン逆拡張符号化
【0130】
次に逆拡張符号化を参照すると、符号化は、概念的には、拡張符号化の論理的反転であるが、特徴ではなく検索入力のみに適用される。逆拡張符号化は、近似一致に適用可能である。
【0131】
図5Aは、表として、記憶済み特徴のための例示(非逆の)拡張符号化と組み合わせた、3D(検索)エンジンの検索入力のための例示の逆拡張符号化を示している。
【0132】
表は、3つのセクションに編成される。上側セクションは、ワードラインへの適用のための検索入力を生成するために検索値に適用されるものとして、逆拡張符号化を記述している。中央セクションは、逆拡張符号化されたものとして、例示の入力を記述している。下側セクションは、例示の入力に対する記憶済み値の拡張符号化及びハミング距離を記述している。
【0133】
上側セクションにおける第1列である検索値555は、逆拡張符号化に従って符号化されることになる6ビットバイナリ検索値である。第2列である逆拡張符号化554は、第1列からの対応するバイナリ値の64ビットバイナリ逆拡張符号化である。拡張符号化と同様に、64ビットバイナリ値に対する逆拡張符号化において、最上位ビットは常に1であることに留意されたい。したがって、幾つかの変形形態では、最上位ビットは実装されない。
【0134】
中央セクションは、検索値例550としての検索値1の逆拡張符号化である。
【0135】
下側セクションにおける第1列である記憶済み値551は、メモリストリングへの記憶のための拡張符号化に従って符号化されることになる6ビットバイナリ特徴である。第2列である拡張符号化552は、第1列からの対応するバイナリ値の64ビットバイナリ拡張符号化である。第3列であるHD553は、それぞれの拡張符号化を有する記憶済み値及び逆拡張符号化における1の検索入力(検索値例550)の間のハミング距離である。64ビットバイナリ拡張符号化において、最上位ビットは常に0であること、及び64ビットバイナリ逆拡張符号化において、最上位ビットは常に1であることを想起されたい。したがって、64ビットバイナリ拡張符号化に従って符号化された特定の値を、64ビットバイナリ逆拡張符号化に従って符号化された特定の値と比較することは、最上位ビットにおいて常に不一致になる。したがって、HD533は、最上位ビットを無視する。ハミング距離は、記憶済み値が逆拡張符号化における検索入力に最も近い場合(最上位ビットを無視する場合)、最小(1)である。ハミング距離は、記憶済み値が逆拡張符号化における検索入力から最も遠い場合(最上位ビットを無視する場合)、最大(64)である。
【0136】
読み易さのために、表における64ビット値は、アンダースコア(「_」)文字によって4ビットごとに分離される。簡潔性のために、表は、幾つかの値を省略する。
【0137】
図5Bは、逆拡張符号化について、記憶済みデータ値(記憶済みデータ値590)及び検索入力値(検索入力値506)の関数としての例示のハミング距離(HD599)をグラフで示している。
【0138】
図6は、拡張符号化について、記憶済みデータ値(記憶済みデータ値690)及び検索入力値(検索入力値606)の関数としての例示のハミング距離(HD699)をグラフで示している。図6は、図5Bに対して比較すると、逆拡張符号化がどのように拡張符号化に対して「逆」であるのかを示している。
【0139】
図5B及び図6に関して、相対的に濃いシェーディングにおいて示されている相対的に高いHDと比較して、相対的に低いHDは、相対的に薄いシェーディングにおいて示されている。最低HDは0であり(等価性を示している)、最も薄いシェーディングにおいて示されている。最高HDは63であり(63ビットの不一致を示している)、最も濃いシェーディングにおいて示されている。
【0140】
図5B(逆拡張符号化)では、HDは、対角線に沿って0である。対照的には、図6(拡張符号化)では、対角線に沿ったHDは63である。さらに、図5B(逆拡張符号化)では、HDは、左下及び右上の隅において63である。対照的には、図6(拡張符号化)では、HDは、左下及び右上の隅において0である。それゆえ、図5BのHDは、図6のHDの「逆」である。
【0141】
逆拡張符号化は、検索及び記憶済み特徴の間での近似一致のために使用可能である。最良の一致(例えば、高い類似度)は、最低メモリストリング電流(例えば、最高インピーダンス)を有する。最悪の一致(例えば、低い類似度)は、最高メモリストリング電流(例えば、最低インピーダンス)を有する。一致した(又は不一致の)ビットの数は、メモリストリング電流及び/又はインピーダンスの測定によって決定可能である。
3D(検索)エンジンワンホット符号化の記憶済み及び入力範囲
【0142】
図7Aは、複数部分の表として、記憶範囲を有するワンホット符号化の一例を示している。表は、2つのセクションに編成される。上側セクションは、入力750として符号化されたワンホットとして例示の入力(値2)を記述している。下側セクションは、例示の入力に関するワンホット符号化された記憶済み範囲及び一致情報を記述している。
【0143】
下側セクションにおける第1列である値範囲751は、それに対して検索入力を照合すべき特徴として符号化及び記憶されることになる6ビット特徴のそれぞれの範囲のリストである。例えば、0~2は、0~2(0、1、又は2)から検索入力を照合すべき記憶済み特徴を指定する。第2列である範囲を有するワンホット符号化752は、第1列からの範囲についての64ビットバイナリワンホット符号化である。文字「X」は、浮遊ゲートデバイスの対応するペアが1又は0、例えば、ドントケアの検索入力のいずれかに一致するように構成されていることを示す。第3列である一致?753は、2の例示の入力(範囲を有するワンホット符号化752)が対応する記憶済み範囲の特徴に一致するか否かである。2の例示の入力は、表における最初の3つのワンホット符号化された範囲に一致する。範囲を有しないワンホット符号化(例えば、図3の拡張符号化352)は、2の例示の入力を、2の記憶済み特徴値とのみ一致することに留意されたい。
【0144】
読み易さのために、表における64ビット値は、アンダースコア(「_」)文字によって4ビットごとに分離される。簡潔性のために、表は、幾つかの値を省略する。
【0145】
図7Bは、複数部分の表として、入力範囲例に対するワンホット符号化を示している。表は、2つのセクションに編成される。上側セクションは、入力範囲例に対するワンホット符号化760としてワンホット符号化された例示の入力範囲(0~4)を記述している。文字「X」は、対応する検索入力が任意の対応する記憶済み特徴ビットに一致するためのワイルドカードであることを示す。下側セクションは、入力範囲例に関するワンホット符号化された記憶済み値及び一致情報を記述している。
【0146】
下側セクションにおける第1列である値761は、ワンホット符号化に従って符号化されることになる6ビットバイナリ値である。第2列であるワンホット符号化752は、第1列からの対応するバイナリ値の64ビットバイナリワンホット符号化である。第3列である一致?763は、0~4の例示の入力範囲が対応する記憶済み特徴に一致するか否かである。0~4の例示の入力範囲は、表における最初の3つのワンホット符号化された特徴に一致する。
【0147】
読み易さのために、64ビット値は、アンダースコア(「_」)文字によって4ビットごとに分離される。簡潔性のために、表は、幾つかの値を省略する。
【0148】
ワンホット符号化は、検索及び記憶済み特徴の間での厳密一致のために使用可能である。記憶済み範囲を有するワンホット符号化は、近似一致検索のために使用可能である。より多くのドントケアを有する記憶済み特徴をプログラミングすることは、記憶済み特徴が一致する検索入力の範囲を増大させる。入力範囲のワンホット符号化は、近似一致検索のために使用可能である。いずれのビットがワイルドカードであるかを変更することは、一致する検索入力の範囲を移動させる。例えば、XX1XX000...00の記憶済み特徴は、0~4の検索入力に一致し、0XX1XX000...00の記憶済み特徴は、1~5の検索入力に一致する。
3D(検索)エンジン動作
【0149】
図8は、エンジンフロー800として、3D(検索)エンジン(図1Aの3Dエンジン9000等)についての例示の動作フローを示している。フローは、「特徴及び検索符号化を選択する」801において開始する。幾つかの使用シナリオでは、特徴及び検索のために同一の符号化が使用される。幾つかの使用シナリオ、例えば、逆拡張符号化では、特徴対検索のために異なる符号化が使用される。フローは、次に、「特徴をプログラミングする」802に進む。それに対して検索されることになる特徴は、選択された特徴符号化に従ってプログラミングされる。フローは、次に「検索を符号化する」803に進む。検索は、選択された検索符号化に従って符号化される。幾つかの応用では、検索は、任意選択でマスク及び/又は範囲情報を含む1つ又は複数のパラメータに基づいて実行される。フローは、次に「ワードラインを駆動する」804に進む。ワードラインは、検索符号化に従って駆動される。フローは、次に「ビットラインを検知する」805に進む。ビットライン検知は、センスアンプによって実行される。フローは、次に「一致を優先度符号化する」806に進む。センスアンプによって提供されるような一致インジケーションは、(例えば、図1Aのページバッファ、キャッシュ、優先度エンコーダ9008によって実行されるように)優先度付けされた一致情報を決定するために処理される。フローは、次に、「結果を提供する」807に進む。結果は、例えば、(例えば、図1Aの出力一致結果9009として)ホストエージェントに提供される。フローは、次に任意選択で、次の検索を符号化するために戻るように進む(「検索を符号化する」803)。
3D(検索)エンジンデバイス及びアプライアンス
【0150】
図9は、それぞれ3Dエンジンアプライアンス940及び3Dエンジンデバイス950として例示の3Dエンジンデバイスを備える例示の3Dエンジンアプライアンスを示している。
【0151】
3Dエンジンアプライアンス940は、明確性のために単一のデバイス、3Dエンジンデバイス950として示されている3Dエンジンデバイスの1つ又は複数のインスタンス、並びにアプライアンスインターフェース941を備える。
【0152】
3Dエンジンデバイス950は、(例えば、図1A図1Cに関して図示及び説明されたような)3Dエンジン9000を備える。3Dエンジンデバイス950は、コントローラ951、エンジンインターフェース953、及びアナログソース954を更に備える。概念的には、3Dエンジンデバイス950及び/又は3Dエンジンアプライアンス940(3Dエンジン 9000以外)の要素は、3Dエンジン9000に、ホストから特徴9001及び検索9002を提供し、ホストに結果9099を返すように機能する。
【0153】
コントローラ951は、3Dエンジンデバイス950の様々なハードウェア回路ブロックの動作及びそれらの間の全体制御を提供するようにイネーブルされる。例えば、コントローラ951は、エンジンインターフェース953の動作を3Dエンジン9000と協調する。別の例の場合、コントローラ951は、アナログソース954の動作を、構成情報に対して協調する。別の例の場合、コントローラ951は、任意選択で、特徴及び/又は検索符号化、並びに、特徴プログラミングを、エンジンインターフェース953を介して指示され、かつ3Dエンジン9000に適用可能であるとして協調する。他の例の場合、コントローラ951は、様々な構成において、図8の動作801~807のうちの任意の1つ又は複数に関する動作を実行するようにイネーブルされる。
【0154】
エンジンインターフェース953は、3Dエンジン9000を使用するために(アプライアンスインターフェース941及びホスト/バスカップリング942を介したホスト等の)3Dエンジンデバイス950の外部のエージェントをインターフェースするようにイネーブルされる。例示の使用は、コマンド及びデータを受信し、並びに、特徴及び/又は検索符号化、特徴プログラミング、及び/又は検索要求に関するステータスを返すことである。
【0155】
アナログソース954は、1つ又は複数のアナログ出力を生成し、及び/又はこれらを、例えば、3D(検索)エンジンメモリアレイのメモリアレイ、ビットライン回路、センスアンプ回路、及び/又はワードライン回路に提供するようにイネーブルされる。アナログ出力は、例えば1つ又は複数のバイアス回路によって生成されるような0個又はそれよりも多くの電圧及び/又は電流源(参照源等)を備える。
【0156】
動作中、ホストは、例えば、ホスト/バスカップリング942及びアプライアンスインターフェース941を介して特徴及び/又は検索符号化の選択のためのコマンドを提供する。アプライアンスインターフェース941は、その後、コマンドをエンジンインターフェース953に提供し、コマンドは、コントローラ951によって指示されると3Dエンジン9000によって処理される。他の同様に処理されるコマンドの例としては、選択された特徴符号化に従った特徴プログラミング、及び選択された検索符号化に従った検索実行が挙げられる。ステータス又は処理されるコマンド及び検索の結果は、エンジンインターフェース953を介してコントローラ951及び/又は3Dエンジン9000によって提供されると、ホスト/バスカップリング942及びアプライアンスインターフェース941を介してホストに返される。3Dエンジンデバイス950の幾つかの変形形態では、コントローラ951は、同時に3Dエンジン9000の1つ又は複数の2D(検索)エンジンを動作させるようにイネーブルされる。
【0157】
動作中、3Dエンジンアプライアンス940の外部のホストは、3Dエンジン9000にプログラミングするために、3Dエンジンデバイス950のための特徴情報を提供する。その後、ホストは、1つ又は複数の検索パラメータを、アプライアンスインターフェース941を介して3Dエンジンアプライアンス940に提供する。
【0158】
図9は3Dエンジンデバイス950において使用され、ひいては3Dエンジンアプライアンス940において使用される3Dエンジン9000を示しているが、他の使用シナリオが可能である。例えば、様々な要素(例えば、集積回路、システムオンチップの1つ又は複数のダイ、及び/又はパッケージングされたダイ)は、3Dエンジン9000と同一の、これと実質的に同様の、又はこれに基づく1つ又は複数の3Dエンジン要素を含む。
【0159】
他の要素の区画化、要素間の結合、及び図に示されている要素の能力及び/又は容量、並びに追加の要素が、使用要件に従って企図される。
3D(検索)エンジンシステム
【0160】
図10は、3Dエンジンシステム1000として3D(検索)エンジンを有する例示のハードウェアシステムを示している。システムは、ハードウェアブロックCPU1010、GPU1020、RAM1030、(図9の)3Dエンジンアプライアンス940、SSD1050、HDD1060、及びI/O1070を備え、これらは、ハードウェアブロックバス/インターフェース1080によって結合される。
【0161】
CPU1010は、プログラミングされた命令を実行するようにイネーブルされたハードウェアユニットの任意の組み合わせ等の1つ又は複数の処理ユニット、マイクロプロセッサ、信号プロセッサ、AIプロセッサ等を備える。
【0162】
GPU1020は、グラフィックス処理、信号処理、及び/又はAI処理等の相対的に高い並列の処理を受ける処理のための処理を加速するようにイネーブルされたユニットの任意の組み合わせ等の1つ又は複数の処理ユニットを備える。
【0163】
RAM1030は、CPU1010及び/又はGPU1020の内部のストレージよりも大量における命令及び/又はデータの記憶のための1つ又は複数の記憶要素を備える。RAM1030は、例えば、DRAM及び/又はSRAM等の揮発性メモリ要素を介して、実装可能である。
【0164】
SSD1050は、任意選択で、HDD1060と比較して削減されたレイテンシでアクセス可能な命令及び/又はデータの記憶のためのフラッシュベース記憶要素等の1つ又は複数の記憶要素を備える。
【0165】
HDD1060は、任意選択で記憶するようにイネーブルされるSSD1050よりも大量の命令及び/又はデータの記憶のための回転ベース磁気及び/又は光学不揮発性記憶要素(例えば、ディスク)等の1つ又は複数の記憶要素を備える。
【0166】
I/O1070は、CPU1010、GPU1020、RAM1030、3Dエンジンアプライアンス940、SSD1050、及び/又はHDD1060の任意の組み合わせを、3Dエンジンシステム1000の外部の要素にインターフェースする要素を備える。例示の外部要素としては、マスストレージデバイス、ローカル及びワイドエリアネットワーク(インターネット等)、ヒューマンインターフェースコンポーネント(キーボード、マウス、及び/又はモニタ等)、及び3Dエンジンシステム1000によって別様に提供されない能力を拡大及び/又は拡張する能力を提供する他の要素が挙げられる。I/O1070は、1つ又は複数の直列及び/又は並列通信チャネル、並びに任意選択のプロトコル変換及び/又はそれに結合された要素間の通信を促進する適合能力を様々に備える。
【0167】
バス/インターフェース1080は、それに結合される要素(例えば、CPU1010、GPU1020、RAM1030、3Dエンジンアプライアンス940、SSD1050、HDD1060、及び/又はI/O1070)間の通信をイネーブルする。バス/インターフェース1080は、1つ又は複数の直列及び/又は並列通信チャネル、並びに任意選択のプロトコル変換及び/又はそれに結合された要素間の通信を促進する適合能力を様々に備える。
【0168】
他の要素の区画化、要素間の結合、及び図に示されている要素の能力及び/又は容量、並びに追加の要素が、使用要件に従って企図される。
【0169】
幾つかの状況では、3Dエンジンアプライアンス940は、(例えば、CPU1010及び/又はGPU1020上の)処理負荷の削減及び/又はローカルに処理を実行することによってバスインターフェース1080上のトラフィックの削減をイネーブルする。
【0170】
例えば、範囲一致をイネーブルするために(例えば、記憶済み特徴及び/又は検索入力範囲についての)ワンホット符号化を使用して、大規模データベースの中からの検索は、特徴がプログラミングされると全体的に3Dエンジンアプライアンス940内で達成される。別の例の場合、近似一致をイネーブルするために逆拡張符号化を使用して、大規模AIデータセットの中からの比較は、特徴がプログラミングされると全体的に3Dエンジンアプライアンス940内で達成される。別の例の場合、拡張及び/又はワンホット符号化を使用して、大規模データセットをソートすることは、特徴がプログラミングされると全体的に3Dエンジンアプライアンス940内で達成される。
3D(検索)エンジンの追加の情報
【0171】
本明細書において開示されるような3D(検索)エンジンのメモリアレイに適用可能な例示のメモリ技術としては、浮遊ゲート、スプリットゲート、SONOS、浮遊ドット、DRAM、DRAM状(例えば、2T0C)、FeFET、及びワードライン及びビットラインを介した検索と適合する任意のメモリ技術が挙げられる。例示的なSONOSメモリ技術(時として電荷捕獲メモリと称される)は、トラップを有する絶縁層(例えば、窒化ケイ素の)を使用して、チャネルから注入されると電荷を捕獲及び保持する。例示的な浮遊ドットメモリ技術は、概念的には、浮遊ゲートを浮遊シリコンナノドットに置き換えるか、又はポリシリコンゲート内に浮遊シリコンナノドットを埋め込む。例示的な2T0Cメモリ技術は、明示的なストレージキャパシタではなく電荷を蓄積するためにリードトランジスタの寄生容量を使用する。例示的なFeFETメモリ技術は、情報を記憶するためにゲート及びソースゲート導通領域の間に埋め込まれた強誘電体材料の永久電界分極を使用する。3D(検索)エンジンのメモリアレイに適用可能な例示のメモリ構造としては、2D構造(例えば、2Dフラッシュ構造)及び3D構造(例えば、3Dフラッシュ構造)が挙げられる。3D(検索)エンジンのメモリアレイに適用可能な例示のアレイアーキテクチャとしては、NOR/ORタイプアレイアーキテクチャ及びAND/NANDタイプアレイアーキテクチャが挙げられる。
【0172】
前述の開示は、限定的な意味ではなく意図された例示的な意味において、実装、変形形態、実施形態、及び例を提示することが理解される。本開示の趣旨及び以下の特許請求の範囲の範囲内にある修正及び組み合わせが認識可能であることが企図される。
図1A
図1B
図1C
図1D
図1E
図1F
図2
図3
図4A
図4B
図4C
図4D
図4E
図5A
図5B
図6
図7A
図7B
図8
図9
図10
【手続補正書】
【提出日】2024-09-05
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
複数のメモリ、各々が:
それぞれのセンスアンプに結合されたそれぞれの一致ライン、
それぞれのソースライン、及び
(a)前記それぞれの一致ライン及び(b)前記それぞれのソースラインに各々が結合されたそれぞれの複数のメモリストリング、各メモリストリングは、(c)それぞれの構成された状態及び(d)それぞれの制御入力を各々が有し、これらに応答しているそれぞれの複数の直列接続された浮遊ゲートトランジスタを含む
を有する;及び
前記複数の直列接続された浮遊ゲートトランジスタの各々の前記それぞれの制御入力のそれぞれの1つに各々が結合された複数のワードラインであって、前記複数のメモリが第1メモリ及び第2メモリを有し、前記複数のワードラインのうちの第1ワードラインは、メモリ間接続によって、前記第1メモリの第1メモリストリングの第1の直列接続された浮遊ゲートトランジスタを、前記第2メモリの第1メモリストリングの第1の直列接続された浮遊ゲートトランジスタに結合する、複数のワードライン;及び
検索を受信し、検索符号化に従って前記複数のワードラインを駆動するようにイネーブルされた検索エンコーダ
を備え;
ここで、(e)各メモリストリングは、前記メモリストリングの前記複数の直列接続された浮遊ゲートトランジスタの前記制御入力に厳密に一致する前記メモリストリングの前記構成された状態に応答した一致発見インピーダンスを介して、前記それぞれのメモリストリングが結合されている前記それぞれの一致及びソースラインを結合するようにイネーブルされており、(f)各センスアンプは、それが結合されている前記一致ラインが前記一致発見インピーダンスを介して前記ソースラインに結合されるか否かのそれぞれのインジケーションを生成するようにイネーブルされ;
(g)各メモリストリングは、前記メモリストリングの前記複数の直列接続された浮遊ゲートトランジスタの前記制御入力に厳密に一致しない前記メモリストリングの前記構成された状態に応答した一致発見なしインピーダンスを介して、前記メモリストリングが結合されている前記それぞれの一致及びソースラインを結合するように更にイネーブルされており、(h)各センスアンプは、それが結合されている前記一致ラインが前記一致発見なしインピーダンスを介して前記ソースラインに結合されるか否かのそれぞれのインジケーションを生成するように更にイネーブルされている、コンピューティングシステム。
【請求項2】
前記複数のワードラインは、前記検索符号化に従ってペアにおいて動作し、前記構成された状態は、特徴符号化に従ってペアにおいて管理される、請求項1に記載のコンピューティングシステム。
【請求項3】
前記構成された状態の各々は、それぞれの閾値電圧に対応する、請求項1に記載のコンピューティングシステム。
【請求項4】
前記それぞれの制御入力の各々は、前記複数の直列接続された浮遊ゲートトランジスタのうちの1つ又は複数のそれぞれのゲートに結合されている、請求項3に記載のコンピューティングシステム。
【請求項5】
前記閾値電圧は、1つ又は複数のプログラミング動作を介して設定可能である、請求項3に記載のコンピューティングシステム。
【請求項6】
前記メモリストリングの各々は、制御入力が前記複数のワードラインから独立して前記それぞれのメモリストリングを選択的にイネーブル又はディスエーブルすることをイネーブルするそれぞれのメモリストリングに応答してデバイスをイネーブルするそれぞれのメモリストリングを含む、請求項1に記載のコンピューティングシステム。
【請求項7】
1つ又は複数の検索パラメータを受信する段階;
複数の検索符号化のうちの特定の検索符号化に従って前記検索パラメータを符号化して、ワードライン電圧のペアを生成する段階、前記特定の検索符号化は、複数の特徴符号化のうちの特定の特徴符号化に従って浮遊ゲートトランジスタのペアに記憶された特徴との一致についての検索をイネーブルし、ここで、前記特定の検索符号化及び前記特定の特徴符号化は、1、0、及び1又は0のいずれかの表現をイネーブルする;
前記生成されたワードライン電圧に従って浮遊ゲートトランジスタの前記ペアの複数の直列接続されたインスタンスのワードラインのペアを駆動する段階、前記複数の直列接続されたインスタンスは、複数の共有一致ラインに影響を与えるように並列に動作可能なそれぞれの複数のメモリストリングとして編成され、各共有一致ラインは、前記複数のメモリストリングのうちの2つ又はそれよりも多くに結合され、ワードラインの各ペアは、浮遊ゲートトランジスタの前記ペアの前記インスタンスのうちの少なくとも2つに結合されており、前記複数のメモリストリングのうちの2つが、第1メモリおよび第2メモリにそれぞれ含まれ、前記複数のワードラインのうちの第1ワードラインは、メモリ間接続によって、前記第1メモリの前記複数のメモリストリングのうちの1つの第1の直列接続された浮遊ゲートトランジスタを、前記第2メモリの複数のメモリストリングのうち他の1つの第1の直列接続された浮遊ゲートトランジスタに結合し
前記複数の共有一致ライン上の電圧変化を検知して、いずれの前記複数の共有一致ラインが所定の検知閾値よりも高い電圧変化を有するのかを決定する段階;及び
前記決定する段階の結果を、前記検索パラメータ及び前記記憶済み特徴の間での相対一致のインジケーションとして提供する段階
を備える、コンピューティング方法。
【請求項8】
前記複数の検索符号化のうちの少なくとも1つ又は前記複数の特徴符号化のうちの少なくとも1つは、拡張符号化及びワンホット符号化のうちの少なくとも1つに従う、請求項7に記載のコンピューティング方法。
【請求項9】
前記複数の検索符号化のうちの少なくとも1つ又は前記複数の特徴符号化のうちの少なくとも1つは、逆拡張符号化に従う、請求項7に記載のコンピューティング方法。
【請求項10】
前記記憶済み特徴のうちの少なくとも1つは、ワンホット符号化を使用して記憶された範囲に対応する、請求項7に記載のコンピューティング方法。
【請求項11】
ワードライン電圧の前記ペアのうちの少なくとも1つは、ワンホット符号化として符号化された範囲に従う、請求項7に記載のコンピューティング方法。
【請求項12】
前記複数の検索符号化のうちの少なくとも1つ又は前記複数の特徴符号化のうちの少なくとも1つは、低効果符号化に従う、請求項7に記載のコンピューティング方法。
【請求項13】
ホストエージェントが検索を提供し、前記検索の1つ又は複数の結果を受信することをイネーブルするインターフェース回路;
メモリストリングの複数のブロック、各ブロックは、前記検索に応答して決定可能な電圧を有するワードラインの同じセットを各々が受信するそれぞれの複数のメモリストリングを有する;
前記複数のブロックの各々からの前記メモリストリングのうちの対応するメモリストリングに各々が結合された複数のセンスアンプ;及び
前記センスアンプから一致インジケーションを受信するようにイネーブルされた優先度エンコーダ回路
を備え;
ここで、前記センスアンプは、(1)前記センスアンプに結合された前記メモリストリングに記憶された特徴情報及び(2)前記センスアンプに結合された前記メモリストリングによって受信された前記ワードラインの間での一致に関して、(3)一致なしが存在すること、及び(4)少なくとも1つの一致が存在することを決定するようにイネーブルされており;
前記優先度エンコーダ回路は、前記センスアンプの前記決定に基づいて、前記センスアンプによって識別された任意の一致のうちの最高優先度一致として、前記結果の少なくとも一部分を示すようにイネーブルされている、コンピューティングシステム。
【請求項14】
前記ホストエージェントを更に備える、請求項13に記載のコンピューティングシステム。
【請求項15】
前記優先度エンコーダ回路は、前記センスアンプの前記決定に基づいて、前記センスアンプによって識別された任意の一致のうちの第2最高優先度一致として、前記結果の少なくとも一部分を示すようにイネーブルされている、請求項13に記載のコンピューティングシステム。
【請求項16】
前記特徴情報は、前記メモリストリングの浮遊ゲートトランジスタの閾値電圧を構成することによって前記メモリストリングに記憶される、請求項13に記載のコンピューティングシステム。
【請求項17】
前記複数のブロックのうちの2つ又はそれよりも多くが同時に動作可能である、請求項13に記載のコンピューティングシステム。
【請求項18】
特徴符号化が、前記特徴情報のうちの少なくとも一部を符号化するのに使用され、検索符号化が、前記検索のうちの少なくとも一部分を符号化するのに使用される、請求項13に記載のコンピューティングシステム。
【請求項19】
前記特徴符号化は、拡張符号化、逆拡張符号化、ワンホット符号化、及び低効果符号化のうちの少なくとも1つである、請求項18に記載のコンピューティングシステム。
【請求項20】
前記コンピューティングシステムは、システムオンチップ(SOC)の部分である、請求項13に記載のコンピューティングシステム。