(57)【要約】  システムおよび方法はメモリアレイにおけるメモリ動作に関する。センスアンプを使用して比較演算が実行される。検索ビットの真バージョンおよび補バージョンがメモリアレイのデータ行に記憶されたデータビットの真バージョンおよび補バージョンと比較され、真センスアンプ入力および補センスアンプ入力が生成される。真センスアンプ入力および補センスアンプ入力がセンスアンプにおいて増幅され、シングルエンド一致信号が生成される。シングルエンド一致信号をデータ行における他のシングルエンド一致信号とアグリゲートして、データ行全体に対する比較演算に関してヒットが生じるかそれともミスが生じるかを判定することができる。
2019519058.tif 000002
【特許請求の範囲】
【請求項１】
メモリアレイにおいてメモリ動作を実行する方法であって、
真センスアンプ入力および補センスアンプ入力を生成するために、第1の検索ビットの真バージョンおよび補バージョンを前記メモリアレイのデータ行に記憶された第1のデータビットの真バージョンおよび補バージョンと比較するステップと、
第1のシングルエンド一致信号を生成するために、前記真センスアンプ入力および前記補センスアンプ入力をセンスアンプにおいて増幅するステップと
を含む、方法。
【請求項２】
前記データ行に関するヒットまたはミス表示を生成するために、前記第1のシングルエンド一致信号を、2つ以上の検索ビットと前記データ行内の2つ以上のデータビットとの比較による2つ以上の他のシングルエンド一致信号と前記第1のシングルエンド一致信号をアグリゲートするステップをさらに含む、請求項1に記載の方法。
【請求項３】
静的論理ゲートにおいて前記アグリゲートするステップを実行するステップを含む、請求項2に記載の方法。
【請求項４】
前記第1のシングルエンド一致信号および2つ以上の他のシングルエンド一致信号を複数のシングルレベルプルダウントランジスタに結合し、前記複数のシングルレベルプルダウントランジスタの出力から動的ヒット信号を生成し、かつ前記動的ヒット信号をアグリゲートすることによって、前記アグリゲートするステップを実行するステップを含む、請求項2に記載の方法。
【請求項５】
真値を有する前記第1の検索ビットおよび前記第1のデータビットの論理値のXOR関数を使用して前記比較するステップを実行するステップを含む、請求項1に記載の方法。
【請求項６】
第1の検索ビットの真バージョンおよび補バージョンをメモリアレイのデータ行に記憶された第1のデータビットの真バージョンおよび補バージョンと比較して、真センスアンプ入力および補センスアンプ入力を生成するように構成される論理手段と、
第1のシングルエンド一致信号を生成するために、前記真センスアンプ入力および前記補センスアンプ入力を増幅して第1のシングルエンド一致信号を生成するように構成されるセンスアンプと
を備える、装置。
【請求項７】
前記データ行に関するヒットまたはミス表示を生成するために、2つ以上の検索ビットと前記データ行内の2つ以上のデータビットとの比較による2つ以上の他のシングルエンド一致信号と前記第1のシングルエンド一致信号をアグリゲートするように構成されるアグリゲーション論理手段をさらに備える、請求項6に記載の装置。
【請求項８】
前記アグリゲーション論理手段は静的論理ゲートを備える、請求項7に記載の装置。
【請求項９】
前記第1のシングルエンド一致信号および2つ以上のシングルエンド一致信号に結合され、かつ動的ヒット信号を生成するように構成される複数のシングルレベルプルダウントランジスタを備え、前記アグリゲーション論理手段は、前記複数のシングルレベルプルダウントランジスタの出力をアグリゲートするように構成される、請求項7に記載の装置。
【請求項１０】
前記論理手段は、真値を有する前記第1の検索ビットおよび前記第1のデータビットの論理値のXOR関数を実行するように構成されるXOR論理手段を備える、請求項6に記載の装置。
【請求項１１】
セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、コンピュータ、ラップトップ、タブレット、通信デバイス、サーバ、およびモバイルフォンからなるグループから選択されたデバイスに統合される、請求項6に記載の装置。
【請求項１２】
真入力および補入力を生成するために、第1の検索ビットの真バージョンおよび補バージョンをメモリアレイのデータ行に記憶された第1のデータビットの真バージョンおよび補バージョンと比較するための手段と、
第1のシングルエンド一致信号を生成するために、前記真入力および前記補入力を増幅するための手段と
を備える、装置。
【請求項１３】
前記データ行に関するヒットまたはミス表示を生成するために、2つ以上の検索ビットと前記データ行内の2つ以上のデータビットとの比較による2つ以上の他のシングルエンド一致信号と前記第1のシングルエンド一致信号をアグリゲートするための手段をさらに備える、請求項12に記載の装置。
【請求項１４】
前記アグリゲートするための手段は静的論理ゲートを備える、請求項13に記載の装置。
【請求項１５】
前記アグリゲートするための手段は動的論理ゲートを備える、請求項13に記載の装置。
【請求項１６】
前記比較するための手段は、真値を有する前記第1の検索ビットおよび前記第1のデータビットの論理値のXOR関数を実行するための手段を備える、請求項12に記載の装置。
【請求項１７】
セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、コンピュータ、ラップトップ、タブレット、通信デバイス、サーバ、およびモバイルフォンからなるグループから選択されたデバイスに統合される、請求項12に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
開示する態様は、メモリを備える処理システムに関する。より詳細には、例示的な態様は、比較演算を伴うメモリ動作における遅延および複雑さを低減させることに関する。
【背景技術】
【０００２】
処理システムは、データ、命令などを記憶するように構成されるメモリシステムを含む。プロセッサに関連付けられたキャッシュなどのメモリは、たとえばデータアレイを含んでもよい。アクセス動作(たとえば、読取り/書込み)の場合、データアレイがアクセスされることがあり、データアレイのいずれかのラインが、プロセッサが必要とするデータを保持しているかどうかを判定するために検索が実行される場合がある。データは、当技術分野で知られている様々な方法(たとえば、ダイレクトマップ、セットアソシアティブなど)で構成されることがある。
【０００３】
キャッシュにおいて所望のデータを探索することは、アクセスアドレス(たとえば、アクセス動作に関連するアドレスの1つまたは複数のビット)からインデックスを取得し、そのインデックスに対応するキャッシュ内の位置を検索して、キャッシュがそのアドレスに対応するデータを保持しているかどうかを判定することを含んでもよい。たとえば、タグアレイが、記憶されているデータに対応するアドレスの少なくとも一部を含むタグを保持することがあり、キャッシュを検索することが、アクセスアドレスおよびインデックスに対応する位置におけるタグの各ビットを(たとえば、ビット単位で一致しているかどうかを)比較することを含む場合がある。一致がある場合、キャッシュヒットが判定され、インデックスに対応する位置からデータが読み出される場合がある。
【０００４】
一致があるかどうかを判定するためのビット単位比較は、タグ(またはより一般的には記憶されたライン)のビットを読み出し、次いで読み出された各ビットをアクセスアドレス(またはより一般的には、検索ワード)の対応するビットと比較することを含むことができる。次いで、各ビットについてのビット単位比較の結果、すなわち一致または不一致が、すべてのビットにわたる比較の結果についてアグリゲートされ、検索ワードと記憶されたラインとの全体的なヒット/ミス表示または一致/不一致表示が判定されることがある。
【０００５】
検索を伴う従来のメモリアクセス動作では、上述のステップ、すなわちビット単位読取りと、その後に行われるビット単位比較と、その後に行われる記憶されたラインの複数のすべてのビットにわたるアグリゲーションがシリアル化される。したがって、この検索は顕著な遅延を伴うことができる。高性能のコンピューティングに対する需要が絶えず増大しているので、メモリアクセス速度を向上させる必要があり、それに応じて従来の検索演算に伴う遅延を短縮する必要がある。
【発明の概要】
【課題を解決するための手段】
【０００６】
本発明の例示的な実施形態は、メモリアレイにおけるメモリ動作に関するシステムおよび方法を対象とする。センスアンプを使用して比較演算が実行される。検索ビットの真バージョンおよび補バージョンがメモリアレイのデータ行に記憶されたデータビットの真バージョンおよび補バージョンと比較され、真センスアンプ入力および補センスアンプ入力が生成される。真センスアンプ入力および補センスアンプ入力がセンスアンプにおいて増幅され、シングルエンド一致信号が生成される。シングルエンド一致信号をデータ行における2つ以上の他のシングルエンド一致信号とアグリゲートして、データ行全体に対する比較演算に関してヒットが生じるかそれともミスが生じるかを判定することができる。
【０００７】
たとえば、例示的な態様は、メモリアレイにおいてメモリ動作を実行する方法であって、第1の検索ビットの真バージョンおよび補バージョンをメモリアレイのデータ行に記憶された第1のデータビットの真バージョンおよび補バージョンと比較して、真センスアンプ入力および補センスアンプ入力を生成するステップと、真センスアンプ入力および補センスアンプ入力をセンスアンプにおいて増幅して第1のシングルエンド一致信号を生成するステップとを含む方法を対象とする。
【０００８】
別の例示的な態様は、第1の検索ビットの真バージョンおよび補バージョンをメモリアレイのデータ行に記憶された第1のデータビットの真バージョンおよび補バージョンと比較して、真センスアンプ入力および補センスアンプ入力を生成するように構成される論理と、真センスアンプ入力および補センスアンプ入力を増幅して第1のシングルエンド一致信号を生成するように構成されるセンスアンプとを備える装置を対象とする。
【０００９】
また別の例示的な態様は、第1の検索ビットの真バージョンおよび補バージョンをメモリアレイのデータ行に記憶された第1のデータビットの真バージョンおよび補バージョンと比較して、真入力および補入力を生成するための手段と、真入力および補入力を増幅して第1のシングルエンド一致信号を生成するための手段とを備える装置を対象とする。
【００１０】
添付の図面は、本発明の実施形態の説明を補助するために提供されたものであり、単に実施形態を図解するために提供されたものにすぎず、本発明を制限することは意図されない。
【図面の簡単な説明】
【００１１】
【図１Ａ】従来の比較回路の実装形態を示す図である。
【図１Ｂ】従来の比較回路の実装形態を示す図である。
【図２Ａ】本開示の例示的な態様によるシングルビット比較回路の実装形態を示す図である。
【図２Ｂ】本開示の例示的な態様によるシングルビット比較回路の実装形態を示す図である。
【図３Ａ】本開示の例示的な態様によるマルチビット比較回路の実装形態を示す図である。
【図３Ｂ】本開示の例示的な態様によるマルチビット比較回路の実装形態を示す図である。
【図４】本開示の例示的な態様によるメモリ動作を実行する方法に関係するフローチャートである。
【図５】本開示の態様が有利に使用される場合がある例示的なコンピューティングデバイスを示す図である。
【発明を実施するための形態】
【００１２】
本発明の具体的な実施形態を対象とする後続の記述および関係する図面において、本発明の態様が開示される。本発明の範囲を逸脱することなく、代替実施形態が考案されてもよい。加えて、本発明のよく知られている要素については、本発明の関連する詳細を不明瞭にしないように、詳細には説明せず、または省略される。
【００１３】
「例示的」という語は、本明細書では「例、事例、または例示としての働きをすること」を意味するために使用される。「例示的」として本明細書で説明するいかなる実施形態も、他の実施形態よりも好ましい、または有利であると必ずしも解釈されるべきでない。同様に、「本発明の実施形態」という用語は、本発明のすべての実施形態が、説明する特徴、利点、または動作モードを含むことを必要としない。
【００１４】
本明細書において使用される用語は、特定の実施形態を説明するためのものにすぎず、本発明の実施形態を限定することを意図しない。本明細書において使用される場合、単数形"a"、"an"、および"the"は、文脈が別段明確に示さない限り、複数形も含むことを意図する。本明細書で使用される場合、「含む/備える(comprises)」、「含む/備える(comprising)」、「含む(includes)」、および/または「含む(including)」という用語は、述べられた機能、整数、ステップ、動作、要素、および/または構成要素の存在を指定するが、1つまたは複数の他の機能、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在もしくは追加を排除するものではないことをさらに理解されたい。
【００１５】
さらに、多くの実施形態については、たとえばコンピューティングデバイスの要素によって実行されるアクションのシーケンスの観点から説明する。本明細書において説明する様々なアクションは、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって、1つまたは複数のプロセッサによって実行されるプログラム命令によって、あるいは両方の組合せによって実行することができることが認識されよう。さらに、本明細書で説明するこれらのアクションのシーケンスは、実行されると、関連するプロセッサに本明細書で説明する機能を実行させるコンピュータ命令の対応するセットを記憶した、任意の形態のコンピュータ可読記憶媒体内で完全に具現化されるものと見なすことができる。したがって、本発明の様々な態様は、いくつかの異なる形態で具現化されてもよく、それらのすべてが、請求する主題の範囲内に入ることが企図されている。加えて、本明細書で説明する実施形態ごとに、任意のそのような実施形態の対応する形式については、本明細書では、たとえば説明した動作を実行する「ように構成される論理」として説明することがある。
【００１６】
本開示の例示的な態様は、効率的なメモリアクセス動作を対象とする。より詳細には、例示的な態様は、たとえばステップおよび付随する論理およびそれに伴う遅延を低減させることによって、検索演算に関連する遅延を短縮することを含む。例示的な態様について説明するために、周知の6トランジスタ(6T)構成として構成される標準的なスタティックランダムアクセスメモリ(SRAM)を備える例示的なメモリアレイについて考察する(本開示の範囲から逸脱せずに、8T、10Tなどの、ビットセルの他の知られている構成も可能であることに留意されたい)。
【００１７】
当技術分野で知られているように、SRAMビットセルに記憶されたデータビットを読み取る場合、記憶されたデータビットに関して読み取られた真値および補数値をセンスアンプを使用して増幅してもよい。例示的な態様では、たとえばデータビットと検索入力との比較を伴う検索演算の速度は、まずデータビットの真値および補数値を検索入力の真値および補数値と比較し、次いで比較の結果をセンスアンプにおいて増幅することによって向上する。したがって、センスアンプの出力は、検索入力とデータビットが一致したかそれとも不一致であったかを示す。メモリアレイの行におけるすべてのセンスアンプからの一致出力をアグリゲートすることによって、1つまたは複数の検索ビットを含む検索ワードを行の対応する2つ以上のデータビットと比較するためのヒット/ミス表示を取得することができる。
【００１８】
したがって、例示的な検索演算では、読取り動作は、比較演算が開始されるまで完了しない(たとえば、センスアンプによる読取りデータの増幅が開始されない)。むしろ、比較はセンス増幅段階よりも前に実行され、比較結果がセンスアンプに与えられ、センスアンプの出力が、検索されるビットごとに一致/不一致を直接表示するのを可能にする。これらの例示的な態様および他の例示的な態様について以下の節で説明する。
【００１９】
まず、図1A〜図1Bを参照して、従来の比較演算について説明する。より詳細には、図1Aは、比較回路100と呼ばれる第1の従来の比較回路の概略図を示す。比較回路100は、メモリアレイ(図示せず)のインデックスに対応する位置を検索し、たとえば検索ワードのnビットとインデックスに対応する位置におけるデータ行のnビットとがビット単位で一致するかどうかを判定するために設けられてもよい。単一のデータビット、たとえばデータ行のビット[0]について検討すると、ビット[0]は、たとえば6トランジスタ(6T)SRAMビットセル構成として実装される標準的なSRAMビットセル(図示せず)内に記憶されることがある。ビット[0]を読み取ることは、6T SRAMビットセルの真分岐および補分岐を読み出すことと、センスアンプを使用して真分岐と補分岐との差を拡大し、安定した真値および補数値を生成することを含む。図示のように、センスアンプ102は、ビット[0]に記憶された値の真値および補数値に対応するデータ_t104およびデータ_c106を生成するために使用することができる。
【００２０】
検索ワードの対応する検索ビットの真値および補数値はそれぞれ、入力cmp_in_t108およびcmp_in_c110として示され、これらの入力は動的信号(たとえば、アクティブロー信号)であってもよい。検索ビットは、たとえば検索ビットの補数値cmp_in_c110とビット[0]の真値data_t104とのNANDを行うためのNANDゲート112と検索ビットの真値cmp_in_t108とビット[0]の補数値data_c106とのNANDを行うためのNANDゲート114を使用して実施されるXOR関数またはXOR論理を使用し、NANDゲート130においてNANDゲート112および114の出力のNANDを実行することによって、ビット[0]と比較される。NANDゲート112の出力は、miss_t116の反転値として示され、この反転値は、cmp_in_c110とdata_t104の両方がハイである場合はローであり、それ以外の場合はハイである。NANDゲート114の出力は、miss_c118の反転値として示され、この反転値は、cmp_in_t108とdata_c106の両方がハイである場合はローであり、それ以外の場合はハイである。出力NANDゲート130(前述のように、NANDゲート112および114の出力のNANDである)は、miss[0]132として示される検索ビットとビット[0]との比較に関するミス表示を与える。miss[0]132は、NANDゲート112および114の出力のうちの多くとも一方がハイである場合はハイであり、それ以外の場合はローである。したがって、検索ビットとビット[0]が不一致である場合にmiss[0]132がハイになる。同様に、図1Aにおけるバスmiss[n:1]126によって示されるように、残りのn-1ビットについてミス表示が取得される。次いで、すべてのnビットに関するミス表示が、静的比較論理120(たとえば、すべてのnビットに関するミス表示、miss[n:0]のnビットNAND関数を実施する)として示される論理ブロックにおいてアグリゲートされ、比較回路100の出力として全体的なhit122が判定される(たとえば、hit122は、動的信号、たとえばアクティブハイ信号でもあり、すべてのnビットに関するミス表示、miss[n:0]がローである場合にハイになる)
。
【００２１】
したがって、静的比較論理120実装形態では、比較回路100は、センスアンプ102の出力からdata_t104およびdata_c106を生成する第1の段と、たとえば上述のようにNANDゲート112、114、および130を使用することによって、ビット[0]と検索ビットとの比較に基づいてmiss[0]132を判定する第2の段と、静的比較論理120においてmiss[0]132をmiss[n:1]126とアグリゲートしてhit122を生成する第3の段の3つのシリアル段を含む。
【００２２】
図1Bは、比較回路150と呼ばれる第2の従来の比較回路の概略図を示す。比較回路150は、図1Aの比較回路100と同じ結果を取得するために使用されてもよいが、以下の節で説明するように実装形態がわずかに異なる。比較回路100と同様に、比較回路150もまた3つの段を含み、第1の段において、センスアンプ152は、メモリアレイ(図示せず)の行におけるデータビット[0]の読取り動作に対応する真出力および補出力data_t154およびdata_c156を生成する。第2の段では、検索ビットの真バージョンおよび補バージョン、cmp_in_t158およびcmp_in_c160がそれぞれnチャネル電界効果トランジスタ(NFET)プルダウンスタック164および162に与えられる(プルダウンスタック162および164の各々が2つのNFETを直列に含み、一方のNFETのゲートがdata_t154/data_c156によって制御され、かつ一方のNFETのゲートがそれぞれcmp_in_c160/cmp_in_t158によって制御され、動的論理においてXOR関数または比較関数が実施されることに留意されたい)。信号hit_dynamic170は最初、プリチャージ位相の間にプリチャージトランジスタまたはプルアップトランジスタ174によって高状態にプリチャージ(precharge)され、プリチャージ位相が終わった後、プルアップトランジスタ174がオフにされ、検索ビットとビット[0]との間にミスまたは不一致が生じた場合には出力信号hit_dynamic170が立ち下り、それ以外の場合、すなわちヒットまたは一致が生じた場合には、hit_dynamic170がハイのままになる。同様に、data_t/c[n:1]166として集合的に示されるデータワードの残りのn-1ビットからの真データ信号および補データ信号と、cmp_in_t/c[n:1]168として集合的に示される対応するn-1真検索ビットおよび補検索ビットとが、NFETまたはプルダウンスタック(図示せず)を使用して比較され、すべてのnビットからのhit_dynamic信号が第3段においてNANDゲート180でアグリゲートされhit172が生成される。したがって、比較回路150においてすべてのnビットにわたって比較結果をアグリゲートしてhit172を生成する
動的論理実装形態は、上述のように3つの段を含む。
【００２３】
本開示の例示的な態様では、比較演算に含まれる段の数が少なくなる。より詳細には、メモリに記憶されたデータを読み取り、そのデータを検索データと比較するためのプロセスが比較結果を得るために単一の段内で実施されてもよく、比較結果は、センスアンプによって増幅することができ、それによって比較の場合、センスアンプ出力は比較の結果を直接与える。たとえば、シングルビット比較の場合、検索ビットが、データビットの真バージョンまたは補バージョンのいずれかを選択するためのコントロールとして使用される。選択結果はセンスアンプによって増幅され、したがってセンスアンプの出力は、データビットと検索ビットとの間に一致が生じたかそれとも不一致が生じたかを示す。さらに、センスアンプが比較の結果の真バージョンおよび補バージョン(たとえば、一致出力およびその補数、不一致出力)を出力できるにもかかわらず、いくつかの態様では、検索されるすべてのビットにわたるアグリゲーションにセンスアンプのシングルエンド出力が使用されるだけでよい。センスアンプからのシングルエンド出力を使用すると、nビットデータワードに関する全体的なヒット/ミス判定における判定のためのアグリゲーション論理が簡略化される。次に、静的論理および動的論理を使用する例示的な比較回路の実装形態について、以下の節において説明する。
【００２４】
最初に、図2Aを参照すると、例示的なシングルビット比較演算において実施される機能を示すために回路200が図示される。信号bl202およびbl_l204は、データビット、たとえばデータ行に記憶されたビット[0]の値の真バージョンおよび補バージョンであってもよい。cmp_data[0]206として示された信号は、ビット[0]と比較すべき検索ワード(cmp_dataと呼ばれる)の対応するビットの値を表してもよい(図を簡潔にするために、この図にはcmp_data[0]206の真バージョンおよび補バージョンは示されない)。cmp_data[0]206とビット[0]との比較は、cmp_data[0]206が"1"である場合にビット[0]の真値、すなわちbl202を選択し、cmp_data[0]が"0"である場合に補数値bl_l204を選択するマルチプレクサ(mux)210によって実施されると見なされてもよい(より詳細には、cmp_data[0]206の値が"1"である場合、mux210の"1"入力に対応するbl202がmux210の出力、すなわちmatch201として選択され、bl202が"0"である場合(cmp_data[0]206が"1"であるので)不一致が生じ、したがってmatch201は論理"0"として生成されるが、bl202が"1"である場合一致が生じ、したがってmatch201は論理"1"として生成される。一方、cmp_data[0]206の値が論理"0"である場合、mux210の"0"入力に対応するbl_l204がmatch201として選択され、bl_l204の値が論理"1"である場合(cmp_data[0]206が"0"であるので)一致が生じ、したがってmatch201は論理"1"になるが、bl_l204が論理"0"である場合不一致が生じ、したがってmatch201は論理"0"になる)。別な見方をすると、回路200は、cmp_data[0]206とビット[0]のXOR関数を実施してmatch201を生成するものと見なすことができ、cmp_data[0]206がビット[0]と一致する場合match201がハイになり、それ以外では不一致が生じ、match201がローになる。
【００２５】
回路200の上記の機能に留意して、次に例示的なシングルビット比較演算を実施するための比較回路250について図2Bを参照しながら説明する。図2Bにおいて、検索ビット(たとえば、cmp_data[0]206)の真バージョンおよび補バージョン、すなわちcmp_in_t[0]252およびcmp_in_c[0]254が比較回路250への入力として受け取られる。この場合も、ビット[0]の真バージョンおよび補バージョン、すなわちbl202およびbl_l204が同じく入力として受け取られる。図2Aのmux210の機能は、図2Bにおけるパストランジスタ272、274、276、および278を使用して実施される。
【００２６】
より詳細には、cmp_in_t[0]252がハイまたは論理"1"である(すなわち、補数値cmp_in_c[0]254がローまたは論理"0"である)場合、パストランジスタ278および274がオンにされてbl202およびbl_l204をそれぞれ真入力および補入力sa_in_t258およびsa_in_c256としてセンスアンプ262に与える(一方、パストランジスタ272および276はオフにされる)。したがって、この場合にbl202もハイである場合一致が生じ、sa_in_t258が"1"になり、それによってセンスアンプ262がhit(またはmatch)208を"1"として(またはmiss/mismatch309を"0"として)生成する。信号hit208またはmiss209のいずれか一方が、(図3Aおよび図3Bを参照しながら説明するように)選択される特定の実装形態に応じてデータワードの残りのn-1ビットの一致結果をアグリゲートするためのセンスアンプ262のシングルエンド出力として使用されてもよい。同様に、bl202がローまたは"0"である場合、不一致が生じ、sa_in_c256が"1"になり、それによってセンスアンプ262がmiss209を"1"として生成するかまたはhit208を"0"として生成する。
【００２７】
一方、cmp_in_t[0]252がローまたは論理"0"であり、すなわち補数値cmp_in_c[0]254がハイまたは論理"1"である場合、パストランジスタ274および278がオフにされ、パストランジスタ276および272がオンにされ、bl202およびbl_l204がそれぞれ入力sa_in_c256およびsa_in_t258としてセンスアンプ262に与えられる(上述のようにcmp_in_t[0]が"1"である場合の逆または「スウィズル接続(swizzled connection)」)。これに応じて、bl202が"1"である場合、不一致が生じ、sa_in_c256が"1"になり、それによってセンスアンプ262がmiss209を"1"として生成するかまたはhit208を"0"として生成し、bl202がローまたは"0"である場合一致が生じ、sa_in_t358が"1"になり、それによってセンスアンプ262がhit208を"1"として生成するかまたはmiss209を"0"として生成する。
【００２８】
次に図3Aおよび図3Bを参照すると、たとえば図2Bの比較回路250を使用するマルチビット比較演算の実装形態が示される。まず図3Aを参照すると、比較回路300が示され、比較回路300は、たとえばメモリアレイ(図示せず)のインデックスに対応する位置に記憶されたデータ行が検索ワードとビット単位で一致しているかどうかを判定する際に使用されてもよい。たとえば、比較回路300は、検索ワードのnビットが行のnビットとビット単位で一致しているかどうかを比較するために使用されてもよい。図2Aおよび図2Bを参照しながら説明した(真信号および補信号bl202およびbl_l204を含む)ビット[0]がデータ行のnビットのうちの1つであり、cmp_in_t[0]252およびcmp_in_c[0]254が、nビット検索ワードの対応する検索ビット(たとえば、cmp_data[0]206)の真バージョンおよび補バージョンであることからわかるように、図2Bを参照しながら説明したように入力sa_in_t258およびsa_in_c256がセンスアンプ262に与えられる。シングルエンド出力hit208は、図2Bと同様にセンスアンプ262によって生成されるように示され、図3Aでは、データ[0]と検索ワードの対応するビットとの一致表示に対応するようにヒット[0]として指定されている。
【００２９】
同様に、残りのn-1ビットに関するビット単位比較のシングルエンド出力が、hit[n:1]302として示されるバス上に与えられてもよい。次いで、nビットに関するすべてのヒット信号が(たとえば、nビットANDゲートなどの静的論理ゲートを使用して実装される)静的比較論理304においてアグリゲートされ、nビットを含むデータワード全体に対する検索演算についての全体的なhit306が生成されてもよい。
【００３０】
次に図3Bを参照すると、たとえば図2Bの比較回路250を使用するマルチビット比較演算の別の実装形態が、比較回路350を参照して示される。図3Aの比較回路300と同様に、図3Bの比較回路350も、センスアンプ262の出力においてビット[0]とcmp_data[0]206(図2A参照)を比較した結果を生成するように構成される。より詳細には、この場合も、図2Bを参照しながら説明したように入力sa_in_t258およびsa_in_c256がセンスアンプ262に与えられ、この場合この構成ではシングルエンド出力のmiss209が使用され、miss[0]209と呼ばれる。この場合に示されるように、miss[0]209は、動的ヒット信号のhit_dynamic366とグランドとの間に結合されるNFET364として示されるシングルレベルプルダウントランジスタに与えられてもよい。hit_dynamic366は最初に、プリチャージトランジスタ362を介してプリチャージされ、プリチャージトランジスタ362はプリチャージ位相の間にプリチャージされてもよい。プリチャージ位相が完了した後、miss[0]209がハイである場合、hit_dynamic366がローにプルされ、比較に関する不一致を示し、それ以外の場合、hit_dynamic366はハイのままであり、一致を示してもよい。残りのn-1ビットからの同様の一致表示がバスhit[n:1]352によって与えられてもよく、複数のシングルレベルプルダウントランジスタの出力からのすべてのn個の一致結果がNANDゲート368においてアグリゲートまたはマージされ、nビットのデータ行全体とnビット検索ワードとの比較に関するヒット/ミス表示であるhit356が与えられてもよい。いくつかの実装形態では、一致結果をマージするために図示のようなn入力NANDゲート368が使用されることがあるが、いくつかの実装形態では、(たとえば、NFET364と同様の2つ以上のNFETゲートを使用して、2つ以上のビット単位比較の対応する不一致表示のためにhit_dynamic366をプルダウンすることによって)hit_dynamic366などの1つまたは複数の信号に対するビット単位比較演算のn個の一致結果のうちの2つ以上に対してドット演算を実行することによって一致結果をマージすることも可能であることが理解されよう。
【００３１】
以上のように、図3Aおよび図3Bの回路300および350におけるマルチビット検索演算は、より少ない段によって実現することができ、それに応じてレイテンシが向上する。第1の段では、各検索ビットと対応するデータビットとの比較結果が判定され、センスアンプの出力において生成され、複数の同様のビット単位比較に対応する複数のセンスアンプからの第2の段の出力において、アグリゲートされマルチビット検索結果が生成される。このアグリゲーションは、複数のセンスアンプからのシングルエンド出力を使用して実行することができ、それによってレイテンシおよびコストが低減する。
【００３２】
例示的な態様は、本明細書に開示されたプロセス、機能、および/またはアルゴリズムを実行するための様々な方法を含むことが了解されよう。たとえば、図4に示すように、例示的な一態様は、以下でさらに説明するように、メモリアレイにおいてメモリ動作を実行する方法(400)を含むことができる。
【００３３】
ブロック402は、第1の検索ビットの真バージョンおよび補バージョン(たとえば、それぞれcmp_in_t[0]252およびcmp_in_c[0]254)をメモリアレイのデータ行内に記憶された第1のデータビットの真バージョンおよび補バージョン(たとえば、それぞれbl202およびbl_l204)と比較して真センスアンプ入力および補センスアンプ入力(たとえば、sa_in_t258およびsa_in_c256)を生成することを含むことができる。
【００３４】
ブロック404は、真センスアンプ入力および補センスアンプ入力をセンスアンプ(たとえば、センスアンプ262)において増幅して第1のシングルエンド一致信号(たとえば、hit208またはmiss209)を生成することを含むことができる。
【００３５】
次に、本開示の例示的な態様が利用される場合がある例示的な装置について、図5に関して説明する。図5は、コンピューティングデバイス500のブロック図を示す。コンピューティングデバイス500の態様は、図4の方法400を実行するように構成されてもよい。図4の説明では、コンピューティングデバイス500は、プロセッサ502と、キャッシュ504と、キャッシュコントローラ506と、メモリ510とを含むように示される。キャッシュ504は、検索すべきデータ行を含む上述のようなSRAMメモリを備えてもよく、キャッシュコントローラ506は、キャッシュ504のインデックスに対応する位置におけるデータ行が検索ワードとビット単位で一致しているかどうかを判定するための例示的な態様に従って構成されるマルチビット比較回路300または350を含んでもよい。図5において、プロセッサ502がメモリ510に結合され、プロセッサ502とメモリ510との間に1レベルのキャッシュ504が位置するように例示的に示されるが、当技術分野で知られている他のメモリ構成もコンピューティングデバイス500によってサポートされる場合があることが理解されよう。
【００３６】
図5はまた、プロセッサ502およびディスプレイ528に結合されるディスプレイコントローラ526を示す。場合によっては、コンピューティングデバイス500はまた、ワイヤレス通信に使用されてもよく、図5は、プロセッサ502に結合されるコーダ/デコーダ(コーデック)534(たとえば、オーディオおよび/またはボイスコーデック)ならびにコーデック534に結合されるスピーカ536およびマイクロフォン538、ならびにプロセッサ502に結合されるワイヤレスコントローラ540に結合されるワイヤレスアンテナ542などの任意のブロックを点線で示している。これらの任意のブロックのうちの1つまたは複数が存在する場合、特定の態様では、プロセッサ502、ディスプレイコントローラ526、キャッシュ504、キャッシュコントローラ506、メモリ510、およびワイヤレスコントローラ540は、システムインパッケージまたはシステムオンチップデバイス522内に含まれる。
【００３７】
したがって、特定の態様では、入力デバイス530および電源544が、システムオンチップデバイス522に結合される。さらに、特定の態様では、図5に示すように、1つまたは複数の任意のブロックが存在する場合、ディスプレイ528、入力デバイス530、スピーカ536、マイクロフォン538、ワイヤレスアンテナ542、および電源544は、システムオンチップデバイス522の外部に位置する。しかしながら、ディスプレイ528、入力デバイス530、スピーカ536、マイクロフォン538、ワイヤレスアンテナ542、および電源544の各々は、インターフェースまたはコントローラなどの、システムオンチップデバイス522の構成要素に結合することができる。
【００３８】
図5は、概して、コンピューティングデバイスを示すが、プロセッサ502およびメモリ510がまた、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、コンピュータ、ラップトップ、タブレット、通信デバイス、モバイルフォン、サーバ、または他の類似のデバイスに統合されてもよいことに留意されたい。
【００３９】
当業者は、情報および信号が、様々な異なる技術および技法のいずれかを使用して表されてよいことを了解されよう。たとえば、上記の説明全体にわたって言及されることがあるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表されてもよい。
【００４０】
さらに、本明細書で開示する実施形態に関して説明する様々な例証的な論理ブロック、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装されてもよいことが、当業者には了解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、上記では、様々な例証的な構成要素、ブロック、モジュール、回路、およびステップについて、全般的にそれらの機能の観点から説明した。そのような機能が、ハードウェアとして実現されるか、ソフトウェアとして実現されるかは、特定の適用例と、システム全体に課される設計制約とによって決まる。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装してもよいが、そのような実装形態の決定は、本発明の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【００４１】
本明細書において開示される実施形態に関して説明した方法、シーケンス、および/またはアルゴリズムは、ハードウェアにおいて直接具現化される場合も、プロセッサによって実行されるソフトウェアモジュールにおいて具現化される場合も、あるいは2つの組合せにおいて具現化される場合もある。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形の記憶媒体内に存在してもよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替として、記憶媒体は、プロセッサと一体化してもよい。
【００４２】
したがって、本発明の一実施形態は、本開示の態様によるメモリ動作を実行する方法を具現化するコンピュータ可読媒体を含むことができる。したがって、本発明は、示された例に限定されず、本明細書で説明する機能を実施するためのあらゆる手段が本発明の実施形態に含まれる。
【００４３】
前述の開示は本発明の例示的な実施形態を示すが、添付の特許請求の範囲によって定義される本発明の範囲を逸脱することなく、本明細書では様々な変更および修正を行うことが可能であることに留意されたい。本明細書で説明した本発明の実施形態による方法請求項の機能、ステップ、および/またはアクションは、いずれかの特定の順序で実施される必要はない。さらに、本発明の要素は、単数で説明し、あるいは特許請求することが可能であるが、単数に対する制限が明確に言及されていない限り、複数が企図されている。
【符号の説明】
【００４４】
100  比較回路
102  センスアンプ
104  data_t
106  data_c
108  入力cmp_in_t
110  入力cmp_in_c
112  NANDゲート
114  NANDゲート
116  miss_t
118  miss_c
120  静的比較論理
122  hit
126  バスmiss[n:1]
130  出力NANDゲート
132  miss[0]
150  比較回路
152  センスアンプ
154  真出力data_t
156  補出力data_c
158  検索ビットの真バージョンcmp_in_t
160  検索ビットの補バージョンcmp_in_c
162、164  nチャネル電界効果トランジスタ(NFET)プルダウンスタック
166  data_t/c[n:1]
168  cmp_in_t/c[n:1]
170  信号hit_dynamic
172  hit
174  プリチャージトランジスタまたはプルアップトランジスタ
180  NANDゲート
200  回路
201  match
202  信号bl
204  信号bl_l
206  cmp_data[0]
208  hit(またはmatch)
209  miss
210  マルチプレクサ(mux)
250  比較回路
252  cmp_in_t[0]
254  cmp_in_c[0]
256  sa_in_c
258  sa_in_t
262  センスアンプ
272、274、276、278  パストランジスタ
300  比較回路
302  hit[n:1]
304  静的比較論理
309  miss/mismatch
350  比較回路
352  バスhit[n:1]
356  hit
358  sa_in_t
362  プリチャージトランジスタ
364  NFET
366  動的ヒット信号hit_dynamic
368  NANDゲート
500  コンピューティングデバイス
502  プロセッサ
504  キャッシュ
506  キャッシュコントローラ
510  メモリ
522  システムインパッケージデバイスまたはシステムオンチップデバイス
526  ディスプレイコントローラ
528  ディスプレイ
530  入力デバイス
534  コーダ/デコーダ(コーデック)
536  スピーカ
538  マイクロフォン
540  ワイヤレスコントローラ
542  ワイヤレスアンテナ
544  電源
【図１Ａ】
2019519058.tif 000003
【図１Ｂ】
2019519058.tif 000004
【図２Ａ】
2019519058.tif 000005
【図２Ｂ】
2019519058.tif 000006
【図３Ａ】
2019519058.tif 000007
【図３Ｂ】
2019519058.tif 000008
【図４】
2019519058.tif 000009
【図５】
2019519058.tif 000010
【手続補正書】
【提出日】平成30年11月19日(2018.11.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリアレイにおいてメモリ動作を実行する方法であって、
真センスアンプ入力および補センスアンプ入力を生成するために、前記メモリアレイのデータ行に記憶された第1のデータビットの真バージョンおよび補バージョンを増幅するかまたは前記真バージョンおよび前記補バージョンの読取り動作を完了する前に、第1の検索ビットの真バージョンおよび補バージョンを前記第1のデータビットの前記真バージョンおよび前記補バージョンと比較するステップと、
第1のシングルエンド一致信号を生成するために、前記真センスアンプ入力および前記補センスアンプ入力をセンスアンプにおいて増幅するステップと
を含む、方法。
【請求項２】
前記データ行に関するヒットまたはミス表示を生成するために、2つ以上の検索ビットと前記データ行内の2つ以上のデータビットとの比較による2つ以上の他のシングルエンド一致信号と前記第1のシングルエンド一致信号をアグリゲートするステップをさらに含む、請求項1に記載の方法。
【請求項３】
静的論理ゲートにおいて前記アグリゲートするステップを実行するステップを含む、請求項2に記載の方法。
【請求項４】
前記第1のシングルエンド一致信号および前記2つ以上の他のシングルエンド一致信号を複数のシングルレベルプルダウントランジスタに結合し、前記複数のシングルレベルプルダウントランジスタの出力から動的ヒット信号を生成し、かつ前記動的ヒット信号をアグリゲートすることによって、前記アグリゲートするステップを実行するステップを含む、請求項2に記載の方法。
【請求項５】
真値を有する前記第1の検索ビットおよび前記第1のデータビットの論理値のXOR関数を使用して前記比較するステップを実行するステップを含む、請求項1に記載の方法。
【請求項６】
真センスアンプ入力および補センスアンプ入力を生成するために、メモリアレイのデータ行に記憶された第1のデータビットの真バージョンおよび補バージョンを増幅するかまたは前記真バージョンおよび前記補バージョンの読取り動作を完了する前に、第1の検索ビットの真バージョンおよび補バージョンを前記第1のデータビットの前記真バージョンおよび前記補バージョンと比較するように構成される論理手段と、
第1のシングルエンド一致信号を生成するために、前記真センスアンプ入力および前記補センスアンプ入力を増幅するように構成されるセンスアンプと
を備える、装置。
【請求項７】
前記データ行に関するヒットまたはミス表示を生成するために、2つ以上の検索ビットと前記データ行内の2つ以上のデータビットとの比較による2つ以上の他のシングルエンド一致信号と前記第1のシングルエンド一致信号をアグリゲートするように構成されるアグリゲーション論理手段をさらに備える、請求項6に記載の装置。
【請求項８】
前記アグリゲーション論理手段は静的論理ゲートを備える、請求項7に記載の装置。
【請求項９】
前記第1のシングルエンド一致信号および前記2つ以上のシングルエンド一致信号に結合され、かつ動的ヒット信号を生成するように構成される複数のシングルレベルプルダウントランジスタを備え、前記アグリゲーション論理手段は、前記複数のシングルレベルプルダウントランジスタの出力をアグリゲートするように構成される、請求項7に記載の装置。
【請求項１０】
前記論理手段は、真値を有する前記第1の検索ビットおよび前記第1のデータビットの論理値のXOR関数を実行するように構成されるXOR論理手段を備える、請求項6に記載の装置。
【請求項１１】
セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、コンピュータ、ラップトップ、タブレット、通信デバイス、サーバ、およびモバイルフォンからなるグループから選択されたデバイスに統合される、請求項6に記載の装置。
【請求項１２】
請求項1から5のいずれか一項に記載の方法を実行するための手段を備える、装置。
【国際調査報告】
2019519058.tif 000011
2019519058.tif 000012
2019519058.tif 000013