(57)【特許請求の範囲】
【請求項１】
極値を識別する方法であって、メモリアレイにベクトルとして記憶されるＮ個のデータ値のセットの極値の位置を決定することを含み、極値の位置を決定する動作の数が、Ｎ個の値に関して一定のままであり、
前記Ｎ個のデータ値のセットの極値の位置を決定することは、複数のアクセスラインの中のより上位に関連付けされたインデックスを有するアクセスラインであって、ターゲットデータ値を記憶する少なくとも一つのメモリセルが接合されたアクセスラインを検出し、当該検出されたアクセスラインに結合された各メモリセルが記憶しているデータに基づくデータと、前記より上位に関連付けされたインデックスよりも一つ下位に関連付けられたインデックスを有するアクセスラインに結合された各メモリセルが記憶しているデータに基づくデータと、に対する論理積演算を行うことを含む、方法。
【請求項２】
前記極値の位置を決定する前記動作の数は、前記ベクトルの長さに関して変化する、請求項１に記載の方法。
【請求項３】
前記ベクトルは、ビットベクトルであり、各ビットベクトルはそれぞれ数値を表す、請求項１〜２のいずれか一項に記載の方法。
【請求項４】
前記Ｎ個のデータ値のセットの極値の位置を決定することは、
前記論理積演算の結果に前記ターゲットデータ値が存在する場合は、前記論理積演算の結果と、前記下位に関連付けられたインデックスよりも更に一つ下位に関連付けされたインデックスを有するアクセスラインに結合された各メモリセルが記憶しているデータに基づくデータと、に対する論理積演算を行い、
前記論理積演算の結果に前記ターゲットデータ値が存在しない場合は、前記検出されたアクセスラインに結合された各メモリセルが記憶しているデータに基づくデータと、前記更に一つ下位に関連付けられたインデックスを有するアクセスラインに結合された各メモリセルが記憶しているデータに基づくデータと、に対する論理積演算を行うこと、をさらに含む、請求項１〜３のいずれか一項に記載の方法。
【請求項５】
前記論理積演算の結果に前記ターゲットデータ値が存在するかどうかは、前記論理積演算の結果に対して論理和演算を実行することにより決定される、請求項４に記載の方法。
【請求項６】
メモリセルアレイと、前記アレイに結合された制御装置とを含む装置であって、
前記制御装置は、
検知回路に、
第１数のメモリセルの中の１つまたは複数のメモリセルがターゲットデータ値を記憶しているかどうかを決定するために、前記アレイに記憶されている幾つかのビットベクトルの中のより高いインデックスに対応する第１のアクセスラインに結合された前記第１数のメモリセルに記憶されているデータを検知させると共に、前記幾つかのビットベクトルの中のより低いインデックスに対応する第２のアクセスラインに結合された第２数のメモリセルに記憶されているデータを検知させ、
前記ターゲットデータ値が前記第１数のメモリセル中の１つまたは複数のメモリセルに記憶されているという決定に応答して、前記第１数のメモリセルに記憶されている前記データを前記第２数のメモリセルに記憶されている前記データと比較させ、
当該比較の結果が、前記第１数のメモリセルの中の前記ターゲットデータ値を記憶している１つまたは複数のメモリセルは前記第２数のメモリセルの中の前記ターゲットデータ値を記憶しているメモリセルと同じセンスラインに結合されている、ことを示していることに応答して、前記メモリセルアレイにおける前記比較の結果を記憶させるように構成される、装置。
【請求項７】
メモリセルのアレイにベクトルとして記憶されているデータのセットにおける極値を識別する方法であって、前記方法は、
前記メモリセルのアレイに結合された検知回路によって、特定のアクセスラインに結合された一群のメモリセルに記憶されたデータを検知すること、
前記検知回路によって、前記検知されたデータがターゲットデータ値を含んでいるかどうかを決定するために動作を実行すること、及び
前記検知されたデータが前記ターゲットデータ値を含んでいる場合、前記ターゲットデータ値を記憶している前記一群のメモリセルの中のメモリセルに結合されたセンスラインの位置を決定することを含み、
前記センスラインの位置を決定することは、前記検知されたデータに基づくデータと前記特定のアクセスラインの次の下位側アクセスラインに結合された一群のメモリセルに記憶されたデータに基づくデータとの論理積演算を前記検知回路によって実行することを含む、方法。
【請求項８】
前記検知回路によって、前記検知されたデータがターゲットデータ値を含んでいるかどうかを決定するために動作を実行することは、前記検知回路によりブロック論理和演算を実行することを含む、請求項７に記載の方法。
【請求項９】
前記ブロック論理和演算を前記検知回路により実行することは、
Ｉ／Ｏラインを前記ターゲットデータ値に対応するレベルまで充電すること、
複数の検知増幅器から前記Ｉ／Ｏラインに前記検知されたデータを転送すること、及び
前記Ｉ／Ｏラインの前記レベルが前記検知されたデータの転送に応じて変化するかどうかを決定することを含む、請求項８に記載の方法。
【請求項１０】
前記Ｉ／Ｏラインの前記レベルが前記検知されたデータの転送に応じて変化するかどうかを決定することは、前記レベルが閾値量で変化するかどうかを二次検知増幅器によって検出することを含み、前記Ｉ／Ｏラインの前記レベルが閾値量を越えて変化することは、前記検知されたデータが前記ターゲットデータ値を記憶していることを示す、請求項９に記載の方法。
【請求項１１】
前記検知されたデータが前記ターゲットデータ値を含まない場合、
前記検知回路により、前記特定のアクセスラインより低いベクトルのインデックスに対応する他のアクセスラインに結合された一群のメモリセルに記憶されているデータを検知すること、
前記検知回路により、前記他のアクセスラインに結合された前記一群のメモリセルから検知されたデータが前記ターゲットデータ値を含むかどうかを決定する動作を実行すること、及び
前記他のアクセスラインに結合された前記一群のメモリセルから検知されたデータが前記ターゲットデータ値を含む場合、前記他のアクセスラインに結合され且つ前記ターゲットデータ値を記憶するメモリセルに結合されたセンスラインの位置を決定することを更に含む、請求項７〜１０のいずれか一項に記載の方法。
【請求項１２】
センスラインに沿ってビットベクトルとして数値を記憶するメモリセルアレイ、及び前記アレイに結合された制御回路を含む装置であって、前記制御回路は、
前記メモリセルアレイに結合された検知回路により、特定のアクセスラインに結合された一群のメモリセルに記憶されているデータを検知すること、
前記検知回路により、前記検知されたデータがターゲットデータ値を記憶しているかどうかを決定する動作を実行すること、及び
前記検知されたデータが前記ターゲットデータ値を記憶していることに応答して、前記検知されたデータに基づくデータと前記特定のアクセスラインの次の下位側アクセスラインに結合された一群のメモリセルに記憶されたデータに基づくデータとの論理積演算を前記検知回路によって実行することを含むことにより、前記特定のアクセスラインに結合された一群のメモリセルの中の前記ターゲットデータ値を記憶しているメモリセルに結合されているセンスラインの位置を決定すること、
を制御するように構成されている、装置。
【請求項１３】
前記制御回路は、前記検知されたデータが前記ターゲットデータ値を含んでいるかどうかを決定するために、前記検知回路により、ブロック論理和演算を実行することを制御するように構成される、請求項１２に記載の装置。
【請求項１４】
センスラインに沿ってビットベクトルとして数値を記憶するメモリセルアレイと、
前記アレイに結合される制御回路であって、
第１のアクセスラインに結合された複数の第１メモリセルの各々が最上位ビットの情報として記憶しているデータ値を検知し、前記複数の第１メモリセルの中の少なくとも一つのメモリセルがターゲットデータ値を記憶しているかどうかを決定すること、
前記複数の第１メモリセルの中の少なくとも一つのメモリセルが前記ターゲットデータ値を記憶しているという決定に応答して、前記複数の第１メモリセルの各々が記憶しているデータ値と、第２アクセスラインに結合された複数の第２メモリセルの各々が前記最上位ビットの次の上位ビットの情報として記憶しているデータ値とを、第１の論理積演算を使用して比較すること、
前記第１の論理積演算から得られた値が前記ターゲットデータ値を含んでいる場合は、前記第１の論理積演算から得られた値と、第３アクセスラインに結合された複数の第３メモリセルの各々が前記次の上位ビットの更に次の上位ビットの情報として記憶しているデータ値とを、第２の論理積演算を使用して比較すること、及び
前記第１の論理積演算から得られた値が前記ターゲットデータ値を含んでいない場合は、前記複数の第１メモリセルの各々が記憶しているデータ値と、前記第３メモリセルの各々が記憶しているデータ値とを、第３の論理積演算を使用して比較すること、
を起こさせるように構成された制御回路と、
前記メモリセルアレイに結合された検知回路であって、複数の第１、第２および第３のメモリセルの各々が記憶しているデータ値の検知、並びに前記第１、第２および第３の第３の論理積演算を実行するように構成される検知回路と、を含む装置。
【請求項１５】
前記検知回路は、
前記メモリセルアレイの入力／出力（ＩＯ）ラインに電圧を充電するように構成された制御回路と、
前記メモリセルアレイの複数の相補センスライン対にそれぞれ結合された幾つかの一次検知増幅器と、
前記幾つかの一次検知増幅器にそれぞれ結合された幾つかのアキュムレータと、
前記ＩＯラインに結合され、前記ＩＯラインの電圧の変化を検知するよう構成される二次検知増幅器と、を含む、請求項１４に記載の装置。
【請求項１６】
複数のセンスライン、複数のアクセスライン、及びこれらセンスラインおよびアクセスラインの交点にそれぞれ配置された複数のメモリセルを有し、前記センスラインに沿った数値に対応するＮ個のビットベクトルを記憶するメモリセルのアレイと、
前記アレイに結合された回路であって、前記Ｎ個のビットベクトルの中で最大値および最小値の少なくとも一方の数値を取るビットベクトルを決定する回路と、を含み、
前記回路は、
前記最大値および最小値の前記少なくとも一方をターゲットとするデータ値を記憶しているメモリセルが少なくとも一つは結合されたアクセスラインであって、前記複数のアクセスラインの中で一番上位に位置するアクセスラインを決定し、
当該決定されたアクセスラインに結合された複数のメモリセルが記憶しているデータに基づく第１データの各々と、前記決定されたアクセスラインよりも一つだけ下位に位置するアクセスラインに結合された複数のメモリセルが記憶しているデータに基づく第２データの各々と、に対する論理積演算を実行し、
当該論理積演算の結果が前記ターゲットとするデータ値を含んでいる場合は、前記論理積演算の結果に基づく第３データの各々と、前記一つだけ下位に位置するアクセスラインよりも更に一つだけ下位に位置するアクセスラインに結合された複数のメモリセルが記憶しているデータに基づく第４データの各々と、に対する論理積演算を実行し、
当該論理積演算の結果が前記ターゲットとするデータ値を含んでいない場合は、前記第１データの各々と、前記第４データの各々と、に対する論理積演算を実行する、ように少なくとも構成されている、装置。
【請求項１７】
前記回路は、前記複数のアクセスラインの中で、各ビットベクトルの最上位ビットの情報を記憶しているメモリセルが結合されたアクセスラインから検索を始めて、前記ターゲットとするデータ値を記憶しているメモリセルが少なくとも一つは結合されたアクセスラインを決定する、ようにさらに構成されている請求項１６に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般的に、半導体メモリ及び方法に関し、特に、メモリセルのアレイに記憶された極値を識別する装置及び方法に関する。
【背景技術】
【０００２】
メモリデバイスは、典型的には、コンピュータまたは他の電子システム内の内部、半導体、集積回路として提供される。揮発性及び不揮発性メモリを含む多くの異なる種類のメモリがある。揮発性メモリは、そのデータ（例えば、ホストデータ、エラーデータ、など）を維持するために電力を必要とし、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、サイリスタランダムアクセスメモリ（ＴＲＡＭ）などを含む。不揮発性メモリは、電源が入っていない場合、記憶されたデータを保持することにより永続的なデータを提供することができ、ＮＡＮＤ型フラッシュメモリ、ＮＯＲ型フラッシュメモリ及び相変化ランダムアクセスメモリ（ＰＣＲＡＭ）、抵抗変化型メモリ（ＲＲＡＭ）などの抵抗可変メモリ、及びスピントルク伝達ランダムアクセスメモリ（ＳＴＴＲＡＭ）などの磁気ランダムアクセスメモリ（ＭＲＡＭ）を含む。
【０００３】
電子システムは、多くの場合、命令を読み出し、実行し、実行された命令の結果を適切な場所に記憶する幾つかの処理リソース（例えば、１つまたは複数のプロセッサ）を含んでいる。プロセッサは、例えば、算術論理ユニット（ＡＬＵ）回路、浮動小数点ユニット（ＦＰＵ）回路及び／または組み合わせ論理ブロック（以下、機能ユニット回路（ＦＵＣ）という）など幾つかの機能ユニットを含み、例えば、これらはデータ（例えば、１つまたは複数のオペランド）に対する論理積、論理和、否定、否定論理積、否定論理和、排他的論理和などの論理演算を実行することによって命令を実行するために使用することができる。例えば、ＦＵＣは、オペランドに対する加算、減算、乗算及び／または除算などの算術演算を実行するために使用することができる。
【０００４】
電子システムでの幾つかの構成要素は、実行のためＦＵＣに命令を提供することに関与する。命令は、例えば、コントローラ及び／またはホストプロセッサなどの処理リソースによって生成される。データ（例えば、命令が実行されるオペランド）は、ＦＵＣによってアクセス可能なメモリアレイに記憶されてもよい。命令及び／またはデータは、ＦＵＣがデータに命令の実行を開始する前にメモリアレイから取り出され、配列及び／またはバッファリングされてもよい。更に、異なるタイプの動作がＦＵＣを介して１つまたは複数のクロックサイクルで実行されるので、命令及び／またはデータの中間結果も配列され及び／またはバッファリングされてもよい。
【０００５】
命令の実行は、（例えば、プログラム実行の一部として）比較演算などの動作の実行を含むことができ、その結果が、例えば、アルゴリズムの実行フローの一部として処理リソースに提供（例えば、報告）される。比較演算は、Ｎ個のデータ値のセットの極値（例えば、最大値及び／または最小値）を識別する動作を含むことができる。比較演算の数は、どれがより大きい及び／またはより少ないかを識別するために、各要素と少なくとも１つの他の値の比較によるＯ（Ｎ）回の演算である。
【図面の簡単な説明】
【０００６】
【図１】本開示の幾つかの実施形態によるメモリ装置を含むコンピューティングシステム形態の装置のブロック図である。
【図２】本開示の幾つかの実施形態による検知回路に接続されたメモリアレイの一部の概略図を示す。
【図３】本開示の幾つかの実施形態による検知回路に接続されたメモリアレイの一部の概略図を示す。
【図４】本開示の幾つかの実施形態による極値を識別するための方法の一例を示す。
【図５】本開示の幾つかの実施形態による極値を識別するための方法の一例を示す。
【発明を実施するための形態】
【０００７】
本開示は、メモリセルのアレイに記憶されている極値（例えば、最大値または最小値）を識別する装置及び方法を含む。一つの例となる方法は、メモリアレイ内にベクトル（例えば、ビットベクトル）として記憶されているＮ個のデータ値のセットの極値の位置決定を含む。極値の位置の決定は、例えばＮ個の値に対して一定の演算の数を含んでもよい。例えば、極値を決定するために使用される演算の数は、ベクトルとしてメモリアレイに記憶されている１０のデータ値について、ベクトルとしてメモリアレイに記憶されている１００のデータ値の極値を決定するために使用される演算の数と同じであってもよい。この方法は、極値を記憶するセンスラインに結合されたメモリセルを読むことにより極値の値を決定する方法を含む。
【０００８】
本開示の幾つかの実施形態は、極値の位置（例えば、最大値及び／または最小値）及び極値の値を決定する利益を提供できる。例えば、幾つかの実施形態は、各センスラインが１０進数値を表現しているビットベクトルを記憶する各複数のメモリセルに結合されている場合に、メモリアレイにおけるどのセンスラインが極値を記憶するメモリセルに結合されているかを決定する方法を提供できる。最上位データ（例えば、ビットデータ）を記憶するメモリセルに結合されたアクセスラインは、ビットベクトルの最高インデックスのデータ値を記憶するメモリセルに結合されたアクセスラインを表す。例えば、ビットベクトル０１は、「１」の１０進数値を表し、またビットベクトル１１は、１０進数値３を表す。両方の場合（すなわち、ビットベクトル０１とビットベクトル１１）において、「１」の２進数データ値が、ビットベクトルの最高インデックスに対応するメモリセルに記憶される。極値（例えば、最大値）の位置を決めるには、ターゲットデータ値を記憶するメモリセルに結合された最高インデックスのアクセスラインを決定することができる。このような最大値及び／または最小値の決定は、ある数の論理演算（例えば、論理積、否定、否定論理和、否定論理積、排他的論理和など）の実行に関連付けられるが、実施形態はこれらの例に限定されるものではない
【０００９】
その数の論理演算は、幾つかのアクセスライン（例えば、アキュムレータの考察については図３を参照）に関するデータの蓄積よって実行ができる。例えば、ターゲットデータ値（例えば、最大値を決定する場合に２進数１及び／または最小値を決定する場合に２進数０）がアクセスラインに結合されたメモリセルに記憶されているかどうかの決定を実行することができる。例えば、１０進数値が、図２のセンスライン２０５-２に結合されたメモリセルに記憶されたビットベクトル００１１によって表され、またターゲットデータ値は「１」である場合、ターゲットデータ値を記憶するメモリセルに結合されたそのビットベクトルに対する最高インデックスのアクセスラインは、アクセスライン２０４-３（最初の「１」をビットベクトルに記憶するメモリセル２０３−１０に結合されているので）である。
【００１０】
本開示の以下の詳細な説明において、本開示の一部である添付図面が参照され、本開示の１つまたは複数の実施形態を実施する方法が例示的に示されている。これらの実施形態は、当業者が本開示の実施形態を実施できるように十分に詳細に記述され、他の実施形態を利用することができ、本開示の範囲から逸脱せずに、プロセス上、電気的及び／または構造的変更を行ってもよいことが理解される。以下、「Ｎ」、「Ｐ」、「Ｒ」などの指示子は、特に図面における参照番号に関して、指定された幾つかの特定の機能を指定するように示すことができる。以下、「幾つかの」特定のものは、１つまたは複数のそのような事物を指すことができる（例えば、幾つかのメモリアレイは、１つまたは複数のメモリアレイを指すことができる）。
【００１１】
本開示の図面では、最初の数字または数字（複数）が図面の番号に対応し、残りの数字は、図中の要素または構成要素を識別する番号付け規則に従う。異なる図面間で同様の要素または構成要素は、同様の数字を使用することによって識別することができる。例えば、１３０は、図１中の要素「３０」を参照し、同様の要素は、図２で２３０として参照される。本開示の様々な実施形態に示す要素が、本開示の更なる実施形態の番号を提供するために、追加、交換及び／または除去することができると理解される。加えて、理解されるように、図面に提供される要素の比率及び相対的な大きさは、本発明の特定の実施形態を例示説明することが意図され、限定するものと解釈されるべきではない。
【００１２】
図１は、本開示の幾つかの実施形態にかかるメモリデバイス１２０を含むコンピュータシステム１００の形態を持つ装置のブロック図である。本明細書で使用する場合、メモリデバイス１２０、メモリアレイ１３０及び／または検知回路１５０は、別々に「装置」とも見なされ得る。
【００１３】
システム１００は、メモリアレイ１３０を備えたメモリデバイス１２０に結合されたホスト１１０を含む。ホスト１１０は、様々な他のタイプのホストの中でも、特にパーソナルラップトップコンピュータ、デスクトップコンピュータ、デジタルカメラ、携帯電話、またはメモリカードリーダなどのホストシステムである。ホスト１１０は、システムのマザーボードまたはバックプレーンを含み、幾つかの処理リソース（例えば、１つまたは複数のプロセッサ、マイクロプロセッサ、または他の何らかの種類の制御回路）を含むことができる。システム１００は、個別の集積回路を含むことができるか、またはホスト１１０とメモリデバイス１２０の両方が同じ集積回路上にあってもよい。システム１００は、例えば、サーバシステム及び／または高性能コンピューティング（ＨＰＣ）システム及び／またはその一部であることができる。図１に示した例では、フォンノイマンアーキテクチャを有するシステムを示すが、本開示の実施形態は、フォンノイマンアーキテクチャに関連付けられる１つまたは複数の構成要素（例えば、ＣＰＵ、ＡＬＵなど）を含んでいない非フォンノイマンアーキテクチャ上（例えば、チューリングマシン）で実現することができる。
【００１４】
明確にするために、システム１００は、本開示に特に関連のある機能に焦点を合わせるために簡略化されている。メモリアレイ１３０は、例えば、ＤＲＡＭアレイ、ＳＲＡＭアレイ、ＳＴＴＲＡＭアレイ、ＰＣＲＡＭアレイ、ＴＲＡＭアレイ、ＲＲＡＭアレイ、ＮＡＮＤフラッシュアレイ、及び／またはＮＯＲフラッシュアレイである。アレイ１３０は、アクセスラインによって結合された行（本明細書では、行ライン、ワードラインまたは選択ラインとして参照され得る）及びセンスラインによって結合された列（本明細書では、ビットライン、ディジットライン及びデータラインとして参照され得る）として配置されたメモリセルを含むことができる。図１には単一のアレイ１３０が示されているが、実施形態はそのように限定されるものではない。例えば、メモリデバイス１２０は、幾つかのアレイ１３０（例えば、ＤＲＡＭセルの幾つかのバンク）を含んでもよい。ＤＲＡＭアレイの例は、図２と図３に関連して説明される。
【００１５】
メモリデバイス１２０は、Ｉ／Ｏ回路１４４を通して、Ｉ／Ｏバス１５６（例えば、データバス）を介して提供されるアドレス信号をラッチするためのアドレス回路１４２を含む。メモリアレイ１３０にアクセスするために、アドレス信号が行デコーダ１４６及び列デコーダ１５２によって受信され、復号される。データは、検知回路１５０を用いてセンスラインの電圧及び／または電流の変化を検知することによってメモリアレイ１３０から読むことができる。検知回路１５０は、メモリアレイ１３０からページ（例えば、行）のデータを読み、ラッチすることができる。Ｉ／Ｏ回路１４４は、Ｉ／Ｏバス１５６を介したホスト１１０との双方向データ通信のために使用することができる。書込回路１４８は、メモリアレイ１３０にデータを書き込むために使用される。
【００１６】
制御回路１４０は、ホスト１１０から制御バス１５４によって提供される信号を復号する。これらの信号は、データの読み出し、データの書き込み、及びデータ消去の動作を含むメモリアレイ１３０に対して実行される動作を制御するために使用されるチップイネーブル信号、ライトイネーブル信号、アドレスラッチ信号を含む。様々な実施形態では、制御回路１４０は、ホスト１１０からの命令を実行する役割を果たす。制御回路１４０は、ステートマシン、シーケンサ、または他のタイプのコントローラ（例えば、オンダイコントローラ）であってもよい。
【００１７】
検知回路１５０の一例は、図２、図３及び図４に関連して以下で更に記述する。例えば、幾つかの実施形態において、検知回路１５０は、幾つかの検知増幅器（例えば、図２に示す検知増幅器２０６-１、・・・、２０６-Ｐ、または図３に示す検知増幅器３０６）及び幾つかのアキュムレータ（例えば、図２に示す２３１-１〜２３１−Ｘのアキュムレータ及び図３に示すアキュムレータ３３１）を含むことができる。図３に示すように、アキュムレータは、データラッチとして機能する交差結合されたトランジスタを含み、幾つかの論理演算（例えば、論理積、否定、否定論理和、否定論理積、排他的論理和）を実行するために使用される他の検知回路に結合することができる。幾つかの実施形態では、検知回路（例えば、１５０）は入力としてアレイ１３０に記憶されたデータを使用して論理積演算を実行して、センスラインアドレスを介してバックアレイ１３０に転送せず（例えば、コラムデコード信号を出さず）、論理演算の結果を記憶するために用いることができる。したがって、様々なコンピューティング機能を、（デバイス１２０（例えば、制御回路１４０または他の場所）に位置しているＡＬＵ回路などのようなホスト１１０及び／または他の処理回路に関連付けられたプロセッサによって）検知回路１５０の外部の処理リソースによって実行するのではなく、検知回路を使用してアレイ１３０内で実行することができる。様々な以前の手法では、オペランドに関連付けられたデータは、例えば、検知回路を介してメモリから読まれ、ローカルＩ／Ｏラインを介して外部ＡＬＵ回路に提供される。外部ＡＬＵ回路は、オペランドを使用してコンピューティング機能を実行し、その結果はローカルＩ／Ｏラインを介してアレイに戻される。これに対して、本開示の幾つかの実施形態では、検知回路（例えば、１５０）はメモリ（例えば、アレイ１３０）に記憶されたデータに論理演算を実行し、検知回路に結合された別個ローカルＩ／Ｏラインを起動させずにメモリに結果を記憶するように構成することができる。例えば、ローカルのＩ／Ｏは、アレイ１３０チップの境界から離れてチップの他の部分に移動することができる、またはアレイ以外の集積回路内の他の構成要素に移動することができる。
【００１８】
図２は、本開示の幾つかの実施形態による、検知回路に結合されたメモリアレイ２０１の一部の概略図を示す。メモリアレイ２０１のメモリセル（一般的にメモリセル２０３という）は、アクセスライン（例えば、ワードライン）２０４-１、２０４-２、２０４-３、２０４-４、及び２０４-５に結合された行に配置され、センスライン（例えば、ディジットライン）２０５-１、２０５-２、２０５-３、２０５-４、２０５-Ｓに結合された列に配置されている。例えば、アクセスライン２０４-１は、セル２０３-１、２０３-２、２０３-３、２０３-４、・・・、２０３-Ｔを含む。メモリアレイ２０１は、特定の数のアクセスライン及び／またはセンスラインに限定されるものではない。図示されていないが、メモリセルの各列は、対応する相補センスライン対に関連付けることができる。
【００１９】
メモリセルの各列を検知増幅器２０６-１、２０６-２、２０６-３、２０６-４、・・・、２０６-Ｕに結合することができる。 ２０６-１〜２０６-Ｕの検知増幅器は、トランジスタ２０８-１、２０８-２、２０８-３、２０８-４、・・・、２０８-Ｖを介して、入力/出力ライン２６６（Ｉ／Ｏ、例えば、ローカルＩ／Ｏ）に接続されている。メモリセルの各列をアキュムレータ２３１-１、２３１-２、２３１-３、２３１-４、・・・、２３１−Ｘに連結することができる。列デコードライン２１０-１〜２１０-Ｗはトランジスタ２０８-１、２０８-２、２０８-３、２０８-４、・・・、２０８−Ｖのゲートに接続され、各検知増幅器２０６−１〜２０６−Ｕによって検知されたデータを二次検知増幅器２１２に転送するために選択的に起動させることができる。
【００２０】
アレイの各メモリセルに記憶されているデータ値（例えば、２進数値）は、ビットベクトルがアレイ内に垂直に記憶されるように配置することができる。例えば、センスライン２０５-１に結合されたメモリセルが１０進数値「１」を表すビットベクトルを記憶しようとすると、メモリセル２０３-１、２０３−５、２０３−９及び２０３−１３に記憶された２進数データ値は、（図２の例に示すように）それぞれ「０」、「０」、「０」、及び「１」である。更なる例として、メモリセル２０３−２、２０３−６、２０３−１０及び２０３−１４は、１０進数値（１０進数値）３を表すビットベクトルを記憶するために、データ値を記憶することができる（例えば、それぞれセンスライン２０５-２に結合された各降順メモリセルに２進数データ値 「０」、「０」、「１」及び「１」）。図２に示す例を引き続き参照すると、センスライン２０５−３に結合されたメモリセルは、１０進数値「２」を表すビットベクトルを記憶することができ（２進数データ値「０」、「０」、「１」及び「０」を、それぞれメモリセル２０３-３、２０３−７、２０３−１１及び２０３−１５に記憶することができる）、また、センスライン２０５−４に結合されたメモリセルは、１０進数値１を表すビットベクトルを記憶することができる（例えば、各メモリセル２０３−４、２０３−８、２０３−１２及び２０１３−１６に記憶されたビットベクトル０００１）。
【００２１】
以下に更に説明するように、本開示の実施形態は、センスラインの群のうち、どの特定のセンスラインが極値を表すビットベクトルを記憶するセルを含んでいるかを決定するために利用できる。例えば、図２に示す例では、各セル２０３- ２、２０３−６、２０３−１０及び２０３−１４に記憶されたビットベクトル００１１によって表されるように、センスライン２０５-１、２０５-２、２０５-３及び２０５-４に結合されたセルに記憶されたビットベクトルのうちの最大１０進数値は３である。センスライン２０５-１に関連付けられたビットベクトルの１０進数値は１（例えば、０００１）、センスライン２０５-３に関連付けられたビットベクトルの１０進数値は２（例えば、００１０）、センスライン２０５-４に関連付けられたビットベクトルの１０進数値は１（例えば、０００１）である。図２に示す例では、アクセスライン２０４-１（行４）は、記憶されたビットベクトルに関連付けられた最高インデックス（例えば、この例では２３のような最上位のビット位置）アクセスラインを表し、アクセスライン２０４-４（行１）は、記憶されたビットベクトルに関連付けられた最低インデックス（例えば、この例では２０のような最下位のビット位置）のアクセスラインを表している。本開示の実施形態は、記憶された極値の位置を決定するために使用することができる。すなわち、センスライン群の中のどのセンスラインが最大データ値を記憶するセル（この例では、例えば、センスライン２０５-２）を含んでいるのか、並びに実際の極値（例えば、この例では、１０進数値３）を決定することができる。
【００２２】
アレイ内のメモリセルに記憶された極値を識別することに関連する擬似コードの例を以下に示す。例えば、最大値を識別することに関連する擬似コードの例は以下を含む：
max:
ClearAccumulator
InvertAccumulator
WriteRow(destination)
Forall bits in  length {
ReadRow (src[bit])
if (AccumulatorBlockOr) {
WriteRow (destination)
exit-forall
}
}
Forall remaining bits in length {
AndRow (src[bit])
if (AccumulatorBlockOr) {
WriteRow (destination)
} else {
ReadRow (destination)
}
}
最小値を識別することに関連する擬似コードの例は以下を含む：
min:
ClearAccumulator 
InvertAccumulator
WriteRow (destination)
Forall bits in length {
ReadRow (src[bit])
InvertAccumulator
If (AccumulatorBlockOr) {
WriteRow (destination)
exit-forall
}
}
Forall remaining bits in length {
ReadRow (src[bit])
InvertAccumulator
AndRow (destination)
If(AccumulatorBlockOr) {
WriteRow (destination)
}
}
【００２３】
上に示した擬似コードに示すように、極値を認識するのは、２０５-１〜２０５-Ｓのセンスラインに結合されたアキュムレータ（例えば、２３１-１〜２３１-Ｘのアキュムレータ）をクリアする最初の動作を含む。アキュムレータのクリアは、アキュムレータに既知のデータ値（例えば、「１」、または「０」）を記憶することを含む。幾つかの例では、アキュムレータのクリアは、アキュムレータに特定のアクセスラインに結合されたメモリセルに記憶された既知のデータ値を読み込むことを含む。例えば、特定のアクセスラインに結合されたメモリセルは、２進数値「１」を記憶し得、全てのアキュムレータが２進数値「１」を記憶するように、２進数値「１」を各アキュムレータに読み込むことができる。これにより、アキュムレータは、以前にアキュムレータに記憶されていた可能性のあるデータ値を消去するために、既知のデータ値に設定することができる。上述の例の擬似コードに示すように、アキュムレータは、極値の値の識別に関連してアキュムレータに記憶されたデータ値を反転する動作をすることができる（例えば、２進数「０」を２進数「１」に反転し、また２進数「１」を２進数「０」に反転することができる）。アキュムレータ（例えば、２３１−１〜２３１-Ｘ）の動作は、図３に関連して更に説明する。 
【００２４】
上記の例示の擬似コードの「WriteRow（destination）」に示すように、アキュムレータに記憶されたデータ値は（例えば、クリア及び／または反転した後）、特定のアクセスライン（例えば、アクセスライン２０４-５などの出力先アクセスライン）に結合されたメモリセルに書くことができる。例えば、「出力行」に対応するアクセスライン（例えば、２０４-５）を起動することができ、２３１−１〜２３１-Ｘのアキュムレータに記憶されているデータの値が対応するセンスライン上に駆動され、出力行に（例えば、行０）に結合された対応するメモリセルに書き込むことができる。したがって、出力行に結合されたセルは、既知のデータ値を記憶することができ（例えば、「１」または「０」）、更に以下に説明するように、極値の値の識別に関連して最初のビットマスクとして使用することができる。
【００２５】
幾つかの実施形態においては、極値の識別は、ターゲットデータ値（例えば、２進数「１」）を記憶する１つまたは複数のセルを持つ最高の関連付けられたインデックスを有するアクセスラインを含めることができる。例えば、最高の関連するインデックス（例えば、最上位のアクセスライン）を有するアクセスライン（例えば、２０４-１）がターゲットデータ値を記憶するセルを含むかどうかを決定することができる。最上位のアクセスラインがターゲットデータ値を記憶するセルを含んでいるかどうかは、例えば、最上位のアクセスライン２０４-１に結合されたメモリセルに記憶されたデータ値を２３１−１〜２３１−Ｘのアキュムレータに読み込むことによって決定することができる（例えば、上記の疑似コードでは「ReadRow（src[bit]として示されている）。アキュムレータ１つまたは複数がターゲットデータ値を記憶するかどうかを決定するために「論理和」演算を実行できる（例えば、上記の疑似コードでは「if(AccumulatorBlockOr]として示されている）。
【００２６】
例示の「論理和」演算(本明細書では、「ブロック論理和」演算または「AccumulatorBlockOr」という)は、ターゲットデータ値が特定のアクセスライン（例えば、２０４-１）に結合されたメモリセルの１つまたは複数の中に記憶されているかどうかの決定を含むことができる。ブロック論理和演算の実行は、二次検知増幅器２１２に結合されたローカルＩ／Ｏライン２６６を特定の電圧に充電すること（例えば、プリチャージ）を含めることができる。Ｉ／Ｏライン２６６は、（例えば、図１に示す制御回路１４０のような制御回路及び／または図１に示す回路１５０のような検知回路を介して）、供給電圧（例えば、Ｖｃｃ）または接地電圧（例えば、０Ｖ）の電圧にプリチャージすることができる。
【００２７】
ブロック論理和演算は、検知増幅器（例えば、２０６−１〜２０６−Ｕ）を使用して、選択したアクセスラインに結合されたセルの検知（例えば、読み取り）を含むことができる。検知増幅器は、特定のデータ値（「１」または「０」）に対応する（例えば、図３に示す３０５-１及び３０５-２のような相補的なセンスラインの間の）差動電圧信号を増幅することができる。例えば、供給電圧（例えば、Ｖｃｃ）が論理１に対応し、接地電圧が論理０に対応する。検知されたデータ値は対応するアキュムレータ（例えば、２３１−１〜２３１-Ｘ）に記憶することができる。
【００２８】
ブロック論理和演算を実行するには、選択されたセルに結合された列デコードライン（例えば、２１０-１〜２１０-Ｗ）が対応するセンスラインの電圧がローカルＩ／Ｏライン２６６に転送するように（例えば、各トランジスタ２０８-１〜２０８-Ｖの電源が入るように）並行して起動することができる。検知回路（例えば、ＳＳＡ２１２）は、列デコードラインの起動に応答してローカルＩ／Ｏライン２６６のプリチャージ電圧が（例えば、特定の閾値量を超えて）変化するかどうかを検知することができる。
【００２９】
例えば、Ｉ／Ｏライン２６６がＶｃｃにプリチャージされ、選択されたアクセスラインに結合された選択されたセルのうちの１つまたは複数が論理０（例えば、０Ｖ）を記憶していると、ＳＳＡ２１２はＩ／Ｏライン２６６上で電圧のプルダウン（例えば、減少）を検知する。また、Ｉ／Ｏライン２６６は、接地電圧にプリチャージされ、選択されたアクセスラインに結合された選択されたセルのうちの１つまたは複数が論理１（例えば、Ｖｃｃ）を記憶していると、ＳＳＡ２１２は、Ｉ／Ｏライン２６６上で電圧のプルアップ（例えば、増加）を検知する。選択されたアクセスラインに結合された１つまたは複数の選択されたセルが特定のデータ値を記憶しているかどうかの決定は、効率的に論理「論理和」演算を実行することである。このように、増幅器の電圧２０６-１〜２０６-Ｕによって検知された及び／またはアキュムレータ２３１-１〜２３１-Ｘに記憶されたデータに対応する電圧は、ローカルＩ／Ｏライン２６６に平行に転送され、ブロック論理和演算の一部としてＳＳＡ２１２によって検知される。本開示の実施形態は、ローカルＩ／Ｏライン２６６の特定のプリチャージ電圧に及び／または論理１または論理０に対応する特定の電圧値に限定されるものではない。
【００３０】
なお、ブロック論理和演算は、アキュムレータに記憶されているデータ値または検知増幅器に記憶されているデータ値に対して行うことができる。例えば、図３に示すように、検知回路は、交差結合されたトランジスタ対３０８-１/３０８-２及び３０９-１/３０９-２を相補センスライン３０５-１/３０５-２から分離するために遮断することができるパストランジスタ３０７-１及び３０７-２を含む。よって、幾つかの実施形態では、検知増幅器２０６-１〜２０６-Ｕによって検知されたデータ値は、最初にアキュムレータ２３１-１〜２３１-Ｘに記憶されずにＳＳＡ２１２に転送することができる。実施形態は、上述の特定のブロック論理和演算に限定されない。
【００３１】
図２に示す例では、最上位のアクセスライン２０４-１に結合されたセル２０３-１、２０３-２、２０３-３及び２０３-４に記憶されたデータに対して実行されるブロック論理和演算は、いずれのセルもターゲットデータ値（例えば「１」）を記憶していない決定となる。よって、ＳＳＡ２１２はブロック論理和の結果を示す「０」を記憶することができる。 ブロック論理和の結果は、ＳＳＡ２１２から他の検知回路及び／または制御回路（例えば、図１に示す制御回路１４０）に転送することができる。最上位のアクセスライン２０４-１に結合されたセルのいずれもターゲットデータ値を記憶していないので、「if（AccumulatorBlockOR）」ループに示す「WriteRow(destination)」が発生せず、ブロック論理和が最上位の次のアクセスライン２０４-２に結合されたセル２０３-５、２０３−６、２０３-７及び２０３−８に記憶されたデータ上で実行される。例えば、アクセスライン２０４-２に結合されたセルによって記憶されたデータは、アキュムレータ２３１-１〜２３１-４に読み込まれ、対応する電圧が、列デコードライン２１０-１〜２１０-４の起動を介して、ローカルＩ／Ｏライン２６６に提供される。アクセスライン２０４-２に結合されたセルのいずれも「１」を記憶していないので、ＳＳＡ２１２はＩ／Ｏライン２６６上で電圧変化の閾値量を検出せず、ＳＳＡ２１２は再びブロック論理和演算の結果を示す「０」を記憶する。アクセスライン２０４-２に結合されたいずれのセルもターゲットデータ値を記憶していないので、次の最上位のアクセスライン２０４-３に結合されたセル２０３-９、２０３−１０、２０３−１１、及び２０３−１２に対してブロック論理和が実行される。この例では、セル２０３−１０及び２０３−１１はターゲットデータ値（例えば、論理「１」）を記憶する。よって、ＳＳＡは、ブロック論理和演算の一部として、ローカルＩ／Ｏライン２６６のプリチャージ電圧の変化を検出し、１つまたは複数のセルがターゲットデータ値を記憶していることを示す。したがって、ＳＳＡ２１２ は、ブロック論理和の結果を示すことができる「１」を記憶する（例えば、１つまたは複数のセルが論理「１」を記憶していると判定された）。その結果は、アクセスライン２０４-３がターゲットデータ値を記憶し、
それに結合された１つまたは複数のセルを有する最高インデックスのアクセスラインであることを示している。
【００３２】
以上に示した例の擬似コードに基づくと、アクセスライン２０４-３のセル２０３-９、２０３−１０、２０３−１１及び２０３−１２に記憶されているデータ値が、出力行２０４-５の対応するセルに（例えば、最初の 「if」節の「WriteRowdestination」）ステップの一部として）書き込まれる。よって、各アキュムレータ２３１-１、２３１-２、２３１-３及び２３１-４に読み取られた、セル２０３-９、２０３−１０、２０３−１１及び２０３−１２に記憶されたデータ値は、出力行２０４-５のセル２０３−１７、２０３−１８、２０３−１９及び２０３−２０に書き込まれる。したがって、上述の擬似コードに示す「forall bits in length」ループから出ると、セル２０３−１７、２０３−１８、２０３−１９及び２０３−２０はそれぞれ「０」、「１」、「１」及び「０」を記憶し、これらのデータ値は、上記の擬似コードに示す「Forall remaining bits in length」のループのビットマスクとして機能する。
【００３３】
幾つかの例形態においては、極値の識別は、幾つかのセンスラインの中から、どのセンスラインが極値を記憶するセンスラインに結合されたセルを含むかの決定に関連して幾つかの論理積演算を実行することを含むことができる。例えば、上記の擬似コードに示す「Forall remaining bits in length」のループを使用することができる。以下に記載するように、また上記の擬似コードに示すように、幾つかの論理積及びブロック論理和演算を次の最上位のアクセスライン毎に行うことができる。アクセスライン毎にアクセスライン上の演算を実行する過程では、出力行のセルに記憶されたデータ値は、後続のアクセスラインのビットマスクとして機能することができる。センスラインのうちのどの１つまたは複数が極値を記憶するセンスラインに結合されたセルを含むのかを示す結果を、出力行（例えば、２０４-５）のセルに記憶することができ、上述の過程を最下位のアクセスラインに対して実行後、極値の値を（それぞれのセルに）記憶するセンスラインを決定するために、出力行（例えば、２０４-５）を読むことができる（例えば、上記の擬似コードの「ReadRow（destination）」を参照）。
【００３４】
一例として、論理積演算（例えば、上記の擬似コードに示す「ＡＮＤRow（src）[bit]」）は、対応するアキュムレータ２３１-１〜２３１-４を使用して、出力行２０４−５に記憶されたデータ値（最上位ビットデータを記憶するアクセスラインに結合されたメモリセル２０３−９〜２０３−１２に記憶されたデータに対応する）及び次の最上位のビットデータを記憶するアクセスラインに結合されたメモリセルに記憶されたデータ（例えば、アクセスライン２０４-４に結合されたメモリセル）に対して実行することができる。論理積演算の結果は、対応するアキュムレータに記憶することができる。論理積演算を実行するためのアキュムレータの動作の更なる記述は、図３に関連して以下に説明する。
【００３５】
上述の例では、出力行２０４−５の各メモリセル２０３−１７、２０３−１８、２０３−１９及び２０３−２０に記憶され、ビットマスクとして機能する２進数データ値 「０」、「１」、「１」及び「０」と、アクセスライン２０４-４に結合された対応する各メモリセル２０３−１３、２０３−１４、２０３−１５、及び２０３−１６に記憶されたデータ値「１」、「１」、「０」及び「１」を、論理積演算することができる。論理積演算の結果は、対応するアキュムレータ２３１-１〜２３１−４に記憶することができる。この例では、論理積演算はアキュムレータ２３１-１が「０」を記憶する結果（例えば、セル２０３−１７に記憶された２進数値「０」とセル２０３−１３に記憶された２進数値「１」との論理積演算の結果）になる。また、論理積演算はアキュムレータ２３１-２が「１」を記憶する結果（例えば、セル２０３−１８に記憶された２進数値「１」とセル２０３−１４に記憶された２進数値「１」との論理積演算の結果）、アキュムレータ２３１-３が「０」を記憶する結果（例えば、セル２０３−１９に記憶された２進数値「１」とセル２０３−１５に記憶された２進数値「０」との論理積演算の結果）、アキュムレータ２３１-４が「０」を記憶する結果（例えば、セル２０３−２０に記憶された２進数値「０」とセル２０３−１６とに記憶された２進数値「１」の論理積演算の結果）となる。換言すれば、論理積演算の出力は、それぞれのアキュムレータ２３１-１、２３１-２、２３１-３及び２３１-４に記憶される２進数値「０」、「１」、「０」、「０」となることができる。
【００３６】
上記の擬似コードに示す二番目の「if」文（例えば、「if (AccumulatorBlockOr)」）によって表示されている通り、ブロック論理和演算は、アキュムレータに記憶された「論理積演算が行われた」データについて実行することができる。ブロック論理和演算は、特定のアクセスラインのセルとビットマスクのセル（例えば、出力行のセル）について実行される論理積演算の１つまたは複数の出力値がターゲットデータ値（例えば、「１」）を含むかどうかを決定するために使用できる。論理積が行われた値のブロック論理和の結果が、２進数「１」である（例えば、１つまたは複数の出力行のセルが「１」を記憶し、それとともに論理積が行われたセルもまた「１」を記憶する）場合、論理積演算の結果（対応するアキュムレータに記憶されている）が出力行に書き込まれる（例えば、WriteRow(destination)）。出力行のセルに記憶されたデータ値は、そして次の引き続くより低位のアクセスラインのビットマスクとして役立ち、またはそれらの値は、（記憶された値「１」を介して）どのセンスラインが対応する記憶されたビットベクトルの極値を記憶するか表示する。論理積値のブロック論理和の結果が２進数「０」である （例えば、出力行のセルと論理積演算が行われたどのセルも「１」を記憶せず、出力行に記憶された 「１」に整合しない）場合、論理積演算の結果（対応するアキュムレータに記憶されている）は出力行のセルに書き込まれない（例えば、出力行のセルに記憶されたビットマスクは変化しない）。出力行のセルに記憶された変化しないデータ値は、次の引き続くより低位のアクセスラインのビットマスクとしてそれでも役立ち、またはその値は、（記憶された値「１」を介して）どのセンスラインがそれぞれのセンスラインのセルに記憶された対応するビットベクトルの極値を記憶するか表示する。上述のプロセスが、次のより低位のアクセスラインについて続くと、出力行のセルに記憶された２進数「１」の数が、プロセスの最後に、「１」をなお記憶する出力行のセル（例えば、ビットマスク）が、どのセンスラインが極値を記憶するかを表示するまで減少される。
【００３７】
図２の例を参照すると、選択されたアクセスライン２０４−４のセル２０３−１３、２０３−１４、２０３−１５及び２０３−１６に記憶された値と論理積が行われた、アキュムレータ２３１−１、２３１−２、２３１−３及び２３１−４に記憶されたデータ値（例えば、出力行２０４−５のセル２０３−１７、２０３−１８、２０３−１９及び２０３−２０に記憶されたビットマスク値）について実行されるブロック論理和の結果は、２進数「１」である。つまり、論理積演算の後で、アキュムレータ２３１−１、２３１−２、２３１−３及び２３１−４は、それぞれ「０」 「１」 「０」及び「０」を記憶する。したがって、１つまたは複数の論理積が行われたデータ値が「１」であるので、ブロック論理和の結果は「１」である。ブロック論理和の結果が「１」であるので、現在アキュムレータに記憶されている現データ値が対応する出力行セルに書き込まれ、そのため出力行２０４−５のセル２０３−１７、２０３−１８、２０３−１９及び２０３−２０は、それぞれ「０」 「１」 「０」及び「０」を記憶する。更に、アクセスライン２０４−４は、最下位アクセスラインであるので、出力行２０４−５のセルに記憶されているデータ値は、ここで極値（例えば、この例では最大値）を記憶するセルを有するセンスラインを示す。
【００３８】
幾つかの実施形態において、極値は識別できる。例えば、上述のプロセスが完了した後、出力行のセルに記憶されているデータ値（例えば、ビットマスク）は読まれて制御回路（例えば、図１に示されている制御回路１４０）に報告されることができる。この例では、「１」のターゲット値がセル２０３−１８に記憶され、一方でセル２０３−１７、２０３−１９及び２０３−２０のデータ値が「０」を記憶することとなる 。したがって、センスライン２０５−２は、極値（例えば、２進数値“００１１”または１０進数値“３”）に対応するビットベクトルを記憶するセルを含む、センスラインの群（例えば、１０５−１〜２０５−４）からのセンスラインであると決定される。ビットベクトルとして記憶されるデータの値は、例えば、極値を記憶するセルを含むと決定されたセンスラインに結合されているセルを読むことによって識別される。この例では、セル２０３−２、２０３−６、２０３−１０及び２０３−１４を読むことができ、それらに記憶されているデータ値を、例えば、これらのセルに記憶されたビットベクトル値を識別するために、制御回路に報告することができる。上述の参照動作は、最大値の決定に限定されるものではなく、従って幾つかの極値を決定することができる。例えば、最小値を決定することに関連する例示の擬似コードが上で示されている。
【００３９】
アレイのベクトルとして記憶されているデータのセットの中の最小値の決定は、最大値を決定することに関連して上で説明したのと同様の方法で実施することができる。しかし、最小値の決定では、ターゲット値として、２進数「０」を使用することができる。したがって、上述のブロック論理和及び／または論理積演算は、１つまたは複数のセルが２進数「１」ではなく２進数「０」を記憶しているかどうかを決定することを含む。幾つかの実施形態において、アキュムレータはそれ自体に記憶されたデータ値を反転するために使用することができる。つまり、アキュムレータに記憶された値「１」を 「０」に反転し、アキュムレータに記憶された値「０」を「１」に反転することができる。反転動作は、図３に関連して下で更に記述される。
【００４０】
一例として、ベクトルとして記憶される多くのデータ値のなかの最小データ値を識別する一部分として、特定のアクセスラインに結合された４つのセルの１つまたは複数のセルが２進数「０」を記憶しているかどうかを（例えば、上記の擬似コードで示されている「forall bits in length」ループの一部分として）決定したいと仮定する。また、第１のセンスラインに結合されたセルがデータ値「１」を記憶しており、第２のセンスラインに結合されたセルがデータ値「１」を記憶しており、第３のセンスラインに結合されたセルがデータ値「０」を記憶しており、第４のセンスラインに結合されたセルがデータ値「１」を記憶していると仮定する。１つまたは複数のセルが「１」を記憶しているかどうかを決定するために、データは４つの対応するアキュムレータに読み込まれることができ、ブロック論理和動作を、上述の通り、実行することができる。しかし、１つまたは複数のセルが「０」を記憶しているかどうかを決定するために、アキュムレータに読み込まれたデータが反転され、そのため、第１のセンスラインに結合されたアキュムレータは「０」を記憶し、第２のセンスラインに結合されたアキュムレータは「０」を記憶し、第３のセンスラインに結合されたアキュムレータは「１」を記憶し、第４のセンスラインに結合されたアキュムレータは「０」を記憶する。つまり、特定のアクセスラインのセルからアキュムレータに読み込まれたデータ値の反転値についてブロック論理和演算が実行される。基本的に、上記の擬似コードの実行の一部分としてアキュムレータに記憶されたデータを反転することは、１つまたは複数の特定のセルが２進数「１」を記憶しているかどうかを決定することではなく、１つまたは複数の特定のセルが２進数「０」を記憶しているかどうかを決定する方法を提供する。従って、最大記憶ビットベクトル値を決定するために使用される同様の方法が、最小記憶ビットベクトル値を決定するために使用できる。
【００４１】
図３は本開示の幾つかの実施形態による検知回路に結合されたメモリアレイ３３０の一部分の概略図を示す。この例において、メモリアレイ３３０は、それぞれアクセスデバイス３０２（例えば、トランジスタ）と記憶素子３０３（例えば、コンデンサ）から成る１Ｔ１Ｃ（１トランジスタ１コンデンサ）メモリセルのＤＲＡＭアレイである。しかし、実施形態は、この例に限定されず、他の記憶素子アレイタイプ、例えば、ＰＣＲＡＭ記憶素子などを備えたクロスポイントアレイを含んでもよい。アレイ３３０のセルは、ワードライン３０４−０(行０)、３０４−１（行１）、３０４−２(行２)３０４−３（行３）、・・・、３０４−Ｎ（行Ｎ）によって結合された行と、センスライン(例えば、ディジットライン) ３０５−１(Ｄ)及び３０５−２(Ｄ＿)に結合された列に配列されている。この例では、セルの各列は一対の相補センスライン３０５−１(Ｄ)及び３０５−２(Ｄ＿)に関連付けられている。
【００４２】
幾つかの実施形態において、アキュムレータ(例えば、３３１)は、検知増幅器(例えば、３０６)及び／またはメモリセルアレイ(例えば、３３０)のトランジスタを有するピッチ上に形成される多くのトランジスタを含み、それらは特定の特徴サイズ(例えば、４Ｆ２、６Ｆ２など)に準拠する。下記で更に記述される通り、アキュムレータ３３１は、検知増幅器３０６とともに、アレイ３３０からのデータを入力として使用し、様々な演算動作を実行し、その結果を、センスラインアドレスアクセスを介してデータ転送することなく (例えば、列復号信号を駆動してデータがローカルＩ／Ｏライン(例えば、図２の２６６−１)を介してアレイと検知回路から外部の回路に転送されようにすることなく ) アレイ３３０に戻して記憶するように機能する。
【００４３】
図３に示された例では、アキュムレータ３３１に対応する回路は、センスラインＤ及びＤ の各々に結合された５個のトランジスタを含むが、実施形態はこの例に限定されない。トランジスタ３０７−１及び３０７−２は、それぞれセンスラインＤ及びＤ に結合された第１ソース／ドレイン領域、並びに交差結合ラッチ に結合された (例えば、交差結合ＮＭＯＳトランジスタ３０８-1及び３０８−２並びに交差結合トランジスタ３０９−１及び３０９−２などの一対の交差結合トランジスタのゲートに結合された) 第２のソース／ドレイン領域を有している。本明細書で、更に、記述の通り、トランジスタ３０８−１、３０８−２、３０９−１及び３０９−２を含む交差結合ラッチは、二次ラッチということができる(検知増幅器３０６に対応する交差結合ラッチは、この明細書では一次ラッチということができる)。
【００４４】
トランジスタ３０７−１及び３０７−２は、パストランジスタということができ、それぞれのセンスラインＤ及びＤ 上の電圧または電流をトランジスタ３０８−１、３０８−２、３０９−１及び３０９−２を含む交差結合ラッチの入力（例えば、二次ラッチの入力）に渡すために、それぞれの信号３１１−１(Ｐａｓｓｄ)及び３１１−２(Ｐａｓｓｄｂ) を介してパストランジスタを有効にする。この例では、トランジスタ３０７−１の第２ソース／ドレイン領域は、トランジスタ３０８−１及び３０９−１の第１ソース／ドレイン領域並びにトランジスタ３０８−２及び３０９−２のゲートに結合される。同様に、トランジスタ３０７−２の第２ソース／ドレイン領域は、トランジスタ３０８−２及び３０９−２の第１ソース／ドレイン領域並びにトランジスタ３０８−１及び３０９−１のゲートに結合される。
【００４５】
トランジスタ３０８−１及び３０８−２の第２ソース／ドレイン領域は、ネガティブ制御信号３１２−１（Ａｃｃｕｍｂ）に共通に結合される。トランジスタ３０９−１及び３０９−２の第２ソース／ドレイン領域は、ポジティブ制御信号３１２−２（Ａｃｃｕｍ）に共通に結合される。Ａｃｃｕｍ信号３１２−２は、供給電圧（例えば、Ｖｃｃ）であり、Ａｃｃｕｍｂ信号は、基準電圧（例えば、接地）であってもよい。イネーブル信号３１２−１及び３１２−２は、二次ラッチに対応するトランジスタ３０８−１、３０８−２、３０９−１及び３０９−２を含むラッチを起動する。起動された検知増幅器対は共通ノード３１７−１及び共通ノード３１７−２の間の差動電圧を増幅するよう作用し、ノード３１７−１はＡｃｃｕｍ信号及びＡｃｃｕｍｂ信号の１つに対して（例えば、Ｖｃｃ及び接地の１つに対して）駆動され、ノード３１７−２はＡｃｃｕｍ信号及びＡｃｃｕｍｂ信号の他の１つに対して駆動される。下で更に記述される通り、信号３１２−１及び３１２−２は、二次ラッチは論理演算（例えば、論理積演算）を実行するために使用されながら、アキュムレータとして機能するので、「Ａｃｃｕｍ」及び「Ａｃｃｕｍｂ」という符号が付されている。幾つかの実施形態において、アキュムレータは、二次ラッチを形成する交差結合トランジスタ３０８−１、３０８−２、３０９−１及び３０９−２並びにパストランジスタ３０７−１及び３０８−２を含む。
【００４６】
この例においては、アキュムレータ３３１は、それぞれディジットラインＤ及びＤ＿に結合された第１ソース／ドレイン領域を有する反転トランジスタ３１４−１及び３１４−２をも含む。トランジスタ３１４−１及び３１４−２の第２ソース／ドレイン領域は、トランジスタ３１６−１及び３１６−２の第１ソース／ドレイン領域にそれぞれ結合されている。トランジスタ３１６−１及び３１６−２の第２ソース／ドレイン領域は接地することができる。トランジスタ３１４−１及び３１４−２のゲートは、信号３１３（ＩｎｖＤ）に結合されている。トランジスタ３１６−１のゲートは、トランジスタ３０８−２のゲート、トランジスタ３０９−２のゲート及びトランジスタ３０８−１の第１ソース／ドレイン領域もまた結合されている共通ノード３１７−１に結合されている。相補的に、トランジスタ３１６−２のゲートは、トランジスタ３０８−１のゲート、トランジスタ３０９−１のゲート及びトランジスタ３０８−２の第１ソース／ドレイン領域もまた結合されている共通ノード３１７−２に結合されている。そのため、信号ＩｎｖＤを有効にすることによって、反転動作を実行することができ、この信号は二次ラッチに記憶されたデータ値を反転し、反転された値は駆動されてセンスライン３０５−１及び３０５−２に向けられる。
【００４７】
幾つかの実施形態において、図２に関連して上述のように、アキュムレータは極値の識別に関連して論理積演算を実行するために使用することができる。例えば、特定のセルに記憶されたデータ値は、対応する検知増幅器３０６によって検知することができる。データ値は、Ｐａｓｓｄ（３１１−１）及びＰａｓｓｄｂ（３１１−２）信号並びにＡｃｃｕｍｂ（３１２−１）およびＡｃｃｕｍ（３１２−２）信号を起動することによってアキュムレータ３３１のデータラッチに転送することができる。アキュムレータ３３１に記憶されたデータ値と同じセンスラインに結合された異なった特定のセルに記憶されたデータ値との論理積演算を行うために、その異なった特定のセルに結合されたアクセスラインを起動することができる。検知増幅器３０６は起動する（例えば、駆動する）ことができ、センスライン３０５−１及び３０５−２の差動信号を増幅する。Ｐａｓｓｄ（３１１−１）のみを起動すると（例えば、Ｐａｓｓｄｂ（３１１−２）を不起動状態にしながら）、センスライン３０５−１の電圧信号（例えば、論理「１」または論理「０」に対応するＶｃｃ）に対応するデータ値を累積することになる。Ａｃｃｕｍｂ及びＡｃｃｕｍ信号は、論理積演算の間は起動されたままである。
【００４８】
従って、異なった特定のセルに記憶されている（及び検知増幅器３０６で検知される）データ値が論理「０」の場合、アキュムレータの二次ラッチで記憶される値は、論理「０」を記憶するように、低にアサートされる（例えば、０Ｖのような接地電圧）。しかし、異なった特定のセルに記憶されている（及び検知増幅器３０６で検知される）値が論理「０」ではない場合、アキュムレータの二次ラッチは以前の値を保持する。従って、アキュムレータは、それが前に論理「１」を記憶しており、かつ異なった特定のセルが論理「１」を記憶している場合にのみ、論理「１」を記憶する。このため、アキュムレータ３３１は、論理積演算を実行するように動作する。上述の通り、反転信号３１３は、アキュムレータ３３１によって記憶されているデータ値を反転するために起動することができ、例えば、上述の通り、最小データ値を識別することに使用することができる。
【００４９】
図４は本開示の幾つかの実施形態による極値の識別方法の一例を示している。ブロック４７０で、本方法はメモリアレイのベクトルとして記憶されているＮ個のセットの極値の位置の決定を含む。極値の位置の決定は、Ｎ個の値に関して一定である回数の動作を含むことができる。つまり、極値の位置の決定動作の数は、Ｎの値が増加及び／または減少する際に、一定のままである。Ｎ個のセットは、メモリアレイにビットベクトルとして記憶できる。各ビットベクトルは、１０進数を表すことができる。例えば、４メモリセルのビットベクトル(例えば、図２のメモリセル２０３−２、２０３−６、２０３−１０及び２０３−１４)１０進数値(例えば、数値３)を表す4メモリセルの各々(例えば、２進数の「０」、 「０」、 「１」及び「１」)の各々の２進数値を記憶できる。
【００５０】
極値を決定する動作数は、ベクトル(例えば、ビットベクトル)の数値(１０進数値)を符号化するために使用される行ライン数に関して変化することができる。例えば、センスラインに結合された垂直の１０メモリセル(１０進数値を表す１０の２進数値に対応する)に記憶された１０進数値は、極値を決めるために、垂直の１００メモリセルに記憶された１０進数値とは異なる数の動作を取ることができる。極値を決定する動作数はターゲット値がメモリセルに記憶されているかどうかの決定を含むことができる。一例では、ターゲット値が最大値の位置を決定するとき、２進数値「１」を含むことができる。一例では、最小値を決定するとき、２進数値「０」を含むことができる。しかし、実施形態は、極値を表すとき、特定ターゲットの２進数値に限定されない。
【００５１】
本開示ブロック４７２では、本方法は、極値の決定された位置に基づき、センスラインに結合されたメモリセルを読むことによる極値の決定を含むことができる。例えば、図２において、メモリセル２０３−１４は、最大値を示す論理積演算（例えば、メモリセル２０３−１４の２進数値「１」のメモリセル２０３−１０の２進数値「１」との論理積演算を実行する）からターゲットデータ値（例えば、２進数値「１」）を記憶していると決定することできる。その表示は、動作を実行している間、他のセンスラインに結合されたメモリセルがターゲットデータ値を含まないということを決定する幾つかの動作に基づくことができる。
【００５２】
図５は本開示による幾つかの実施形態による極値の識別方法の一例を示す。極値は、最大値または最小値を含むことができる。最大値を決定するとき、ターゲットデータ値は２進数1を含むことができる。最小値を決定するとき、ターゲットデータ値は２進数０を含むことができる。メモリセルの一群は、メモリアレイの特定のアクセスライン（例えば、行）に結合された幾つかのセルを含むことができる。ベクトルは、それぞれのメモリアレイのそれぞれのセンスライン（例えば、列）に結合されたセルに記憶され、行の各メモリセルは、複数のセンスラインのそれぞれのセンスラインに結合することができる。複数の極値を決定することができる。例えば、結合されたセルに同じ極値のビットベクトル値を記憶する複数のセンスラインがある場合、複数の極値が決定され、位置を決定することができる。ターゲットデータ値を記憶したメモリセルの群のメモリセルに結合された複数のセンスラインの決定を実行することができる。
【００５３】
ブロック５７４では、本方法は、メモリセルに結合された検知回路により、特定のアクセスラインに結合されたメモリセルの一群に記憶されたデータを検知することを含むことができる。検知は、メモリセルアレイのメモリセルの行を読むことを含むことができる。本方法は、極値を決定するためにセンスラインに結合されたメモリセルに記憶されたデータを読むことを含むことができる。メモリセルの一群（例えば、図２のメモリセル２０３−９〜２０３−１２（「行２」）に記憶された検知データは、出力先アクセスライン（例えば、図２のアクセスライン２０４−５（「行０」）に結合されたメモリセルの一群に記憶することができる。本方法は、特定のアクセスラインに結合されたメモリセルの群に記憶されたデータを検知する前に、出力先アクセスラインに結合されたメモリセルの群にビットマスクを記憶することを含むことができる。ビットマスクは、特定のアクセスラインに結合されたメモリセルの群に記憶されたデータを含むことができる。
【００５４】
本方法は、特定のアクセスラインに結合されたメモリセルの群に記憶されたデータを検知する前に、メモリセルの群に関連付けられた幾つかのアキュムレータに記憶されたデータ値を反転することを含むことができる。本方法は、幾つかのアキュムレータに記憶されているデフォルトデータ値を反転する前に、デフォルトデータ値を記憶させることによって、幾つかのアキュムレータによって前に記憶されていたデータ値を消去することを含むことができる。本方法は、特定のアクセスラインに結合されたメモリセルの群に記憶されているデータを検知した後で、かつ、検知されたデータがターゲットデータ値を含んでいるかどうかの決定する動作を検知回路によって実行する前に、幾つかのアキュムレータに記憶されている、特定のアクセスラインに結合されたメモリセルのグループに記憶されているデータに対応する、幾つかのアキュムレータに記憶されたデータ値の第２の反転の実行を含むことができる。本方法は、出力先アクセスラインに結合されたメモリセルのグループに記憶されているデータと、他のアクセスラインに結合されたメモリセルグループに記憶されているデータを、出力データを提供するために比較する前に、ベクトルの次のより低いインデックスに対応する他のアクセスラインに記憶されているデータを反転することを含むことができる。
【００５５】
ブロック５７６では、本方法は、検知回路により、検知されたデータがターゲットデータ値に含まれるかどうか決定する動作を実行することを含むことができる。検知されたデータがターゲットデータ値を含むかどうかの決定動作の実行は、上述の通り、検知回路のアキュムレータによるブロック論理和演算の実行を含むことができる。検知回路のアキュムレータによって実行されるブロック論理和演算は、Ｉ／Ｏラインをターゲット値に対応するレベルに充電することを含むことができる。ブロック論理和演算は、複数の検知増幅器からＩ／Ｏラインに検知されたデータを転送することを含むことができる。ブロック論理和演算は、検知されたデータの転送に応じてＩ／Ｏラインのレベルが変化するかどうかを決定することを含むことができる。Ｉ／Ｏラインのレベルが変化するかどうかの決定は、二次検知増幅器により、そのレベル変化が少なくとも閾値程度かどうかを検出することを含むことができる。閾値程度の変化レベルは、検知されたデータがターゲットデータ値を記憶することを示すことができる。
【００５６】
ブロック５７８では、本方法は、検知されたデータがターゲットデータ値を含む場合、ターゲットデータ値を記憶するメモリセルの一群のメモリセルに結合されたセンスラインの位置を決定することを含むことができる。その決定は、アクセスライン（例えば、図２のアクセスライン２０４−５）に結合されたメモリセルの一群に記憶されているデータの、出力を提供するために他のアクセスライン（例えば、図２のアクセスライン２０４−４（「行１））に結合されたメモリセルの一群に記憶されているデータとの比較（例えば、論理積演算を実行すること）を含むことができる。他のアクセスラインは、特定のアクセスラインより低いインデックスの値に対応することができる（例えば、アクセスライン２０４−４に結合されたメモリセルはアクセスライン２０４−３より低いインデックスの値を記憶する）。
【００５７】
動作（例えば、ブロック論理和演算）を、検知回路を使用して比較からの出力に対して、出力データがターゲットデータ値（例えば、２進数値「１」）を含むかどうかを決定するために実行することができる。出力データがターゲットデータ値を含んでいる場合、ターゲットデータ値を記憶する他のアクセスラインに結合されたメモリセル群のメモリセルに結合されたセンスラインの位置を決定するために、決定を実行することができる。ターゲットデータ値を記憶する特定のアクセスラインに結合されたメモリセルの群のメモリセルに結合されたセンスラインの位置の決定は、出力先アクセスラインに結合されたメモリセルのグループに記憶されているデータを次の最上位アクセスラインに結合されたメモリセルの群に記憶されているデータと、追加の出力データを提供するために比較することを含むことができる。次の最上位アクセスラインは、その一方のアクセスラインより低いインデックスのベクトルに対応することができる。ターゲットデータ値を記憶するセンスラインの位置の決定は、検知回路により、追加の出力データがターゲットデータ値を含むかどうか決定するために、動作（例えば、追加のブロック論理和演算）を実行することを含むことができる。追加の出力データがターゲットデータ値を含む場合、ターゲットデータ値を記憶する次の最上位アクセスラインに結合されたメモリセルの群のメモリセルに結合されたセンスラインの位置の決定を実行することができる。
【００５８】
データ値を記憶する最上位アクセスラインとデータ値を記憶する次の最上位アクセスラインとの比較は、その比較の繰り返しと、追加の出力データが次の最上位アクセスラインより低いインデックスのベクトルに対応する各アクセスラインのターゲットデータ値を含むかどうかの決定を含むことができ、それぞれの出力データがターゲット値を含む場合、ターゲットデータ値を記憶しているそれぞれのアクセスラインに結合されたメモリセルの群のメモリセルに結合されたセンスラインの位置の決定を含むことができる。
【００５９】
検知データがターゲットデータ値を含まない場合、本方法は、メモリセルのアレイに結合された検知回路によって、他のアクセスラインに結合されたメモリセルの一群に記憶されているデータの検知を含むことができる。他のアクセスラインは、特定のアクセスラインより低いインデックスのベクトルに対応することができる。検知データがターゲットデータ値を含まない場合、本方法は、検知回路によって、他のアクセスラインに結合されたメモリセルの群から検知されたデータが、ターゲットデータ値を含むかどうか決定する動作を実行する（例えば、次の最上位アクセスラインに結合されたメモリセルについてブロック論理和を実行する）ことを含むことができる。他のアクセスラインに結合されたメモリセルの群から検知されたデータがターゲットデータ値を含む場合、本方法は、ターゲットデータ値を記憶している他のアクセスラインに結合されたメモリセル群のメモリセルに結合されたセンスラインの位置の決定を含むことができる。
【００６０】
特定の実施形態が本明細書で例示説明され記述されているが、当業者は、同じ結果を達成するために計算された構成が説明された特定の実施形態に置換できることを認識するであろう。この開示は、本開示の１つまたは複数の実施形態の改変形態または変形を範囲に含めることを意図している。上述の記載は、例示説明の方法で行われているものであり、限定的なものではないことであることが理解される。上述の実施形態とこの明細書で特に記載していない他の実施形態の組み合わせは、上述の記載を考察することによって、当業者にとって明らかであろう。本開示の1つまたは複数の実施形態の範囲は、上述の構造及び方法が使用される他の応用を含む。従って、本開示の1つまたは複数の実施形態の範囲は、特許請求の範囲を参酌して、特許請求の範囲に基づく権利が及ぶ均等の十分な範囲に沿って決められるべきである。
【００６１】
前述の発明の詳細な説明において、開示を簡素化する目的のために、幾つかの特長は、単一の実施形態にひとまとめにされている。この開示の方法は、本開示の開示された実施形態が、各請求項で明示的に言及されているより多くのの特長を使用しなければならないという意図を反映していると解釈されるべきではない。むしろ、次の請求項が反映している通り、発明の主題は、単一の開示された実施形態の全ての特長より少ないところにある。したがって、以下の請求項は、ここで発明の詳細な説明に組み込まれ、それぞれの請求項は、それ自体が別個の実施形態となっている。
【図１】
0006316952.tif 000002
【図２】
0006316952.tif 000003
【図３】
0006316952.tif 000004
【図４】
0006316952.tif 000005
【図５】
0006316952.tif 000006