(57)【要約】本開示の実施例は、メモリ内で除算演算を実行するための装置及び方法を提供する。実施例の装置は、センス線及び第１の本数の選択線に接続された第１の数のメモリセルを含む第１アドレス空間を備える。第１アドレス空間は、被除数値を記憶する。第２アドレス空間は、センス線及び第２の本数の選択線に接続された第２の数のメモリセルを含む。第２アドレス空間は、除数値を記憶する。第３アドレス空間は、センス線及び第３の本数の選択線に接続された第３の数のメモリセルを含む。第３アドレス空間は、剰余値を記憶する。検出回路は、被除数値及び除数値を受け取り、被除数値を除数値で割り、剰余結果を第３の数のメモリセルに記憶させるように構成することができる。【選択図】図２Ａ
2017503229.tif 000002
【特許請求の範囲】
【請求項１】
除算演算の実行方法であって、
メモリアレイのセンス線に接続された複数のメモリセルの第１部分に記憶された被除数値の論理表現、及び前記メモリアレイの前記センス線に接続された前記複数のメモリセルの第２部分に記憶された除数値の論理表現を用いて除算演算を実行すること、並びに
前記除算演算の結果の商の値の論理表現を、前記メモリアレイの前記センス線に接続された前記複数のメモリセルの第３部分に記憶させること、を含む方法。
【請求項２】
前記被除数値の前記論理表現を、前記センス線に接続された前記複数のメモリセルの前記第１部分にビットベクトルとして記憶させることをさらに含み、前記複数のメモリセルの前記第１部分の各メモリセルは、前記ビットベクトルの各ビットを記憶する、請求項１に記載の方法。
【請求項３】
前記除数値の前記論理表現を、前記センス線に接続された前記複数のメモリセルの前記第２部分にビットベクトルとして記憶させることをさらに含み、前記複数のメモリセルの前記第２部分の各メモリセルは、前記ビットベクトルの各ビットを記憶する、請求項１に記載の方法。
【請求項４】
前記商の値の前記論理表現を記憶させることは、前記商の値の前記論理表現を、前記センス線に接続された前記複数のメモリセルの前記第３部分にビットベクトルとして記憶させることを含み、前記複数のメモリセルの前記第３部分の各メモリセルは、前記ビットベクトルの各ビットを記憶する、請求項１に記載の方法。
【請求項５】
前記商の値は、前記除数値で前記被除数値を完全に割った回数を表す整数である、請求項１に記載の方法。
【請求項６】
前記複数のメモリセルの前記第１部分はＮ個のメモリセルで構成されており、前記除算演算を実行することは、
前記複数のメモリセルの前記第１部分のＮ番目のメモリセルに記憶されたビットを前記複数のメモリセルの第４部分の第１メモリセルにコピーすることであって、前記複数のメモリセルの前記第４部分は、前記除算演算の前記結果の剰余値の論理表現を記憶すること、及び
前記除数値を前記剰余値と比較することを含む、請求項１から請求項５のいずれか一項に記載の方法。
【請求項７】
前記除数値が前記剰余値以下である場合、
前記除数値を前記剰余値から引き、得られた値の論理表現を前記剰余値の前記論理表現として前記複数のメモリセルの前記第４部分に記憶させること、
前記商の値の前記論理表現をシフトし、インクリメントして、前記商の値を更新すること、及び
前記剰余値の前記論理表現をシフトして前記剰余値を更新することをさらに含む、請求項６に記載の方法。
【請求項８】
前記除数値が前記剰余値よりも大きい場合、
前記商の値の前記論理表現をシフトして前記商の値を更新すること、及び
前記剰余値の前記論理表現をシフトして前記剰余値を更新することをさらに含む、請求項７に記載の方法。
【請求項９】
前記複数のメモリセルの前記第１部分のＮ−１番目のメモリセルに記憶されたビットを前記複数のメモリセルの前記第４部分の前記第１メモリセルにコピーすること、及び
前記除数値を前記剰余値と比較することをさらに含む、請求項８に記載の方法。
【請求項１０】
前記複数のメモリセルの前記第１部分の前記Ｎ番目のメモリセルに記憶された前記ビットを前記複数のメモリセルの前記第４部分の前記第１メモリセルにコピーする前に、前記剰余値及び前記商の値を０に初期化することをさらに含む、請求項８または請求項９に記載の方法。
【請求項１１】
前記比較に応じたマスクを作成することをさらに含み、前記マスクは、前記除数値が前記剰余値以下であるかどうか、または前記除数値が前記剰余値よりも大きいかどうかを示す、請求項８または請求項９に記載の方法。
【請求項１２】
センス線及び第１の本数の選択線に接続された第１の数のメモリセルを含むメモリアレイの第１アドレス空間であって、被除数値を記憶する第１アドレス空間と、
前記センス線及び第２の本数の選択線に接続された第２の数のメモリセルを含む前記メモリアレイの第２アドレス空間であって、除数値を記憶する第２アドレス空間と、
前記センス線及び第３の本数の選択線に接続された第３の数のメモリセルを含む前記メモリアレイの第３アドレス空間であって、剰余値を記憶する第３アドレス空間と、
検出回路であって、
前記被除数値及び前記除数値を受け取り、
前記被除数値を前記除数値で割り、
前記剰余値を前記第３アドレス空間に記憶させるように構成された検出回路と、
を備える装置。
【請求項１３】
前記センス線に接続された前記第１の数のメモリセルは、前記センス線に接続されたＮ個のメモリセルで構成されており、前記被除数値を前記除数値で割るように構成されている前記検出回路は、
前記第１の数のメモリセルのＮ番目のメモリセルに記憶されたビットを前記第３の数のメモリセルの第１メモリセルにコピーし、
前記除数値を前記剰余値と比較するように構成されている前記検出回路からなる、請求項１２に記載の装置。
【請求項１４】
前記剰余値を前記第３アドレス空間に記憶させるように構成されている前記検出回路は、
前記除数値が前記剰余値以下である場合、
前記除数値を前記剰余値から引き、得られた値の論理表現を前記第３の数のメモリセルに記憶させ、
前記得られた値の前記論理表現をシフトして前記剰余値を更新するように構成されている前記検出回路からなり、
前記被除数値を前記除数値で割るように構成されている前記検出回路はさらに、前記メモリアレイの第４アドレス空間に記憶された商の値の論理表現をシフトし、インクリメントするように構成されている前記検出回路からなる、請求項１３に記載の装置。
【請求項１５】
前記被除数値を前記除数値で割るように構成されている前記検出回路はさらに、前記除数値が前記剰余値よりも大きい場合、前記商の値の前記論理表現をシフトして前記商の値を更新するように構成されている前記検出回路からなる、請求項１４に記載の装置。
【請求項１６】
前記剰余値を前記第３アドレス空間に記憶させるように構成されている前記検出回路は、前記除数値が前記剰余値よりも大きい場合、前記剰余値の論理表現をシフトして前記剰余値を更新するように構成されている前記検出回路からなる、請求項１５に記載の装置。
【請求項１７】
前記被除数値を前記除数値で割るように構成されている前記検出回路はさらに、前記比較に応じたマスクを作成するように構成されている前記検出回路からなり、前記マスクは、前記除数値が前記剰余値以下であるかどうか、または前記除数値が前記剰余値よりも大きいかどうかを示す、請求項１６に記載の装置。
【請求項１８】
前記センス線及び第４の本数の選択線に接続された第４の数のメモリセルを含む前記メモリアレイの第４アドレス空間をさらに備え、前記第４アドレス空間及び前記検出回路は、前記第４の数のメモリセルに商の値を記憶させるように構成されている、請求項１２から請求項１７のいずれか一項に記載の装置。
【請求項１９】
前記検出回路は、前記メモリアレイの前記メモリセルと間隔を置いて形成されたトランジスタを備える、請求項１２から請求項１７のいずれか一項に記載の装置。
【請求項２０】
前記検出回路は、センス線アドレスアクセスを介してデータを転送することなく、前記被除数値を前記除数値で割るように構成されている、請求項１２から請求項１７のいずれか一項に記載の装置。
【請求項２１】
前記検出回路は、前記第１の数のメモリセル、前記第２の数のメモリセル、前記第３の数のメモリセル、及び前記第４の数のメモリセルと間隔を置いて設けられたトランジスタを含む計算素子を備える、請求項１２から請求項１７のいずれか一項に記載の装置。
【請求項２２】
複数の除算演算の実行方法であって、
メモリアレイの複数のセンス線に接続されたメモリセルの複数の第１部分に記憶された複数の被除数値を、前記メモリアレイの前記複数のセンス線に接続された前記メモリセルの複数の第２部分に記憶された複数の除数値で割ること、
前記複数の被除数値を前記複数の除数値で割った結果の複数の商の値を、前記メモリアレイの前記複数のセンス線に接続された前記メモリセルの複数の第３部分に記憶させること、及び
前記複数の被除数値を前記複数の除数値で割った前記結果の複数の剰余値を、前記メモリアレイの前記複数のセンス線に接続された前記メモリセルの複数の第４部分に記憶させることを含み、
前記複数の除算演算の実行に用いられる複数の計算は、前記複数の除算演算のいずれか１つの実行に用いられる複数の計算と同一である、方法。
【請求項２３】
前記メモリセルの前記複数の第１部分のそれぞれは、前記複数のセンス線の異なるセンス線に接続されており、前記複数の被除数値のそれぞれは、前記複数の第１部分の異なる第１部分に記憶される、請求項２２に記載の方法。
【請求項２４】
前記メモリセルの前記複数の第２部分のそれぞれは、前記複数のセンス線の異なるセンス線に接続されており、前記複数の除数値のそれぞれは、前記複数の第２部分の異なる第２部分に記憶される、請求項２３に記載の方法。
【請求項２５】
前記複数の除算演算のそれぞれは、前記複数の被除数値の各被除数値を前記複数の除数値の各除数値で割ることを含み、前記複数の除算演算の各除算演算の前記被除数値及び前記除数値は、前記複数のセンス線のうちの同一のセンス線に接続されたメモリセルに記憶される、請求項２４に記載の方法。
【請求項２６】
複数のセンス線に接続されたメモリセルの前記複数の第１部分のそれぞれは、前記複数のセンス線のうちの１本に接続されたＮ個のメモリセルで構成されており、前記複数の被除数値を前記複数の除数値で割ることは、
前記複数のメモリセルの前記第１部分のＮ番目のメモリセルに記憶された各ビットを前記複数のメモリセルの前記第４部分の第１メモリセルのそれぞれにコピーすることを含み、
前記複数のメモリセルの前記第１部分の前記Ｎ番目のメモリセルに記憶された各ビットをコピーすることに伴う複数の計算は、前記複数の被除数値、前記複数の除数値、及び前記複数の剰余値の大きさによらず変わらない、請求項２５に記載の方法。
【請求項２７】
前記複数の被除数値を前記複数の除数値で割ることは、前記複数の除数値を前記複数の剰余値と比較することを含む、請求項２６に記載の方法。
【請求項２８】
前記複数の剰余値のうちの対応する剰余値以下である前記除数値のそれぞれについて、
前記対応する剰余値から除数値を引き、得られた値の論理表現を、前記対応する剰余値の論理表現として前記複数のメモリセルの対応する第４部分に記憶させること、
対応する商の値の論理表現をシフトし、インクリメントして前記対応する商の値を更新すること、及び
前記対応する剰余値の前記論理表現をシフトして前記対応する剰余値を更新することをさらに含む、請求項２７に記載の方法。
【請求項２９】
前記複数の剰余値のうちの対応する剰余値よりも大きい前記除数値のそれぞれについて、
前記対応する商の値の前記論理表現をシフトして前記対応する商の値を更新すること、及び
前記対応する剰余値の前記論理表現をシフトして前記対応する剰余値を更新することをさらに含む、請求項２８に記載の方法。
【請求項３０】
前記複数のメモリセルの前記第１部分のＮ−１番目のメモリセルに記憶された各ビットを、前記複数のメモリセルの前記第４部分の前記第１メモリセルのそれぞれにコピーすること、及び
前記複数の除数値を前記複数の剰余値と比較することをさらに含む、請求項２９に記載の方法。
【請求項３１】
前記複数のメモリセルの前記第１部分の前記Ｎ番目のメモリセルに記憶された各ビットを前記複数のメモリセルの前記第４部分の前記第１メモリセルにコピーする前に、前記複数の剰余値及び前記複数の商の値を０に初期化することをさらに含む、請求項３０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、半導体メモリ装置及び方法に関し、より具体的には、メモリ用の除算演算に関連した装置及び方法に関する。
【背景技術】
【０００２】
メモリデバイスは、通常、コンピュータまたは他の電子システムの内部に搭載された半導体集積回路として提供される。メモリには、揮発性メモリ及び不揮発性メモリを含む多くの異なる種類がある。揮発性メモリは、内部データ（例えば、ホストデータ、エラーデータなど）を維持するために電力が必要となり得る。揮発性メモリとしては、ランダムアクセスメモリ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ＲＡＭ）、ダイナミックランダムアクセスメモリ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ＤＲＡＭ）、スタティックランダムアクセスメモリ（ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ＳＲＡＭ）、シンクロナスダイナミックランダムアクセスメモリ（ｓｙｎｃｈｒｏｎｏｕｓ  ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ＳＤＲＡＭ）、及びサイリスタランダムアクセスメモリ（ｔｈｙｒｉｓｔｏｒ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ＴＲＡＭ）などが挙げられる。不揮発性メモリは、電力が供給されていないときにも記憶データを保持することによって永続的なデータを提供することができる。不揮発性メモリとしては、ＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、並びに、相変化ランダムアクセスメモリ（ｐｈａｓｅ  ｃｈａｎｇｅ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ＰＣＲＡＭ）、抵抗変化型ランダムアクセスメモリ（ｒｅｓｉｓｔｉｖｅ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ＲＲＡＭ）、及びスピントルクトランスファランダムアクセスメモリ（ｓｐｉｎ  ｔｏｒｑｕｅ  ｔｒａｎｓｆｅｒ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ＳＴＴ  ＲＡＭ）などの磁気抵抗変化型ランダムアクセスメモリ（ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ＭＲＡＭ）といった抵抗可変メモリなどを挙げることができる。
【０００３】
電子システムには、複数の処理リソース（例えば、１つ以上のプロセッサ）が含まれることが多い。これらの処理リソースは、命令を取得して実行し、実行された命令の結果を適切な領域に記憶させることができる。プロセッサは、算術論理ユニット（ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ：ＡＬＵ）回路、浮動小数点ユニット（ｆｌｏａｔｉｎｇ  ｐｏｉｎｔ  ｕｎｉｔ：ＦＰＵ）回路、及び／または組み合わせ論理ブロックなどの複数の機能ユニット（例えば、本明細書では機能ユニット回路（ｆｕｎｃｔｉｏｎａｌ  ｕｎｉｔ  ｃｉｒｃｕｉｔｒｙ：ＦＵＣ）と呼ばれる）を備えることができ、例えば、組み合わせ論理ブロックを用いて、ＡＮＤ、ＯＲ、ＮＯＴ、ＮＡＮＤ、ＮＯＲ及びＸＯＲ論理演算などの論理演算をデータ（例えば、１つ以上のオペランド）に実行することによって命令を実行することができる。
【０００４】
電子システム内の複数の構成要素は、実行用のＦＵＣへの命令の提供に関わっている場合がある。かかる命令は、例えば、コントローラ及び／またはホストプロセッサなどの処理リソースによって生成され得る。データ（例えば、命令の実行を受けるオペランド）は、ＦＵＣによってアクセス可能なメモリアレイに記憶され得る。命令及び／またはデータは、ＦＵＣがデータに対して命令を実行し始める前に、メモリアレイから取得されてもよく、さらには、順序付けられ、かつ／またはバッファされてもよい。さらに、各種演算が、ＦＵＣを通じて１つまたは複数のクロックサイクル内で実行され得るときには、命令及び／またはデータの途中結果も、順序付けられ、かつ／またはバッファされ得る。
【０００５】
多くの場合、処理リソース（例えば、プロセッサ及び／または関連ＦＵＣ）は、メモリアレイの外部にあってよく、データには、（例えば、命令を実行するために）処理リソースとメモリアレイの間のバスを介してアクセスすることができる。データは、メモリアレイから当該メモリアレイの外部にあるレジスタにバスを介して移動させることができる。
【図面の簡単な説明】
【０００６】
【図１】本開示のいくつかの実施形態に係るメモリデバイスを含む演算処理システムの形態をとった装置のブロック図である。
【図２Ａ】本開示のいくつかの実施形態に係るメモリアレイの一部の概略図である。
【図２Ｂ】本開示のいくつかの実施形態に係る検出回路を用いた複数の論理演算の実行に関するタイミング図である。
【図２Ｃ−１】本開示のいくつかの実施形態に係る検出回路を用いた複数の論理演算の実行に関するタイミング図である。
【図２Ｃ−２】本開示のいくつかの実施形態に係る検出回路を用いた複数の論理演算の実行に関するタイミング図である。
【図２Ｄ−１】本開示のいくつかの実施形態に係る検出回路を用いた複数の論理演算の実行に関するタイミング図である。
【図２Ｄ−２】本開示のいくつかの実施形態に係る検出回路を用いた複数の論理演算の実行に関するタイミング図である。
【図３Ａ】本開示のいくつかの実施形態に係る一連の除算演算の実行に関連した特定のフェーズにおける一部のアレイのセルの状態を示す論理図である。
【図３Ｂ】本開示のいくつかの実施形態に係る一連の除算演算の実行に関連した特定のフェーズにおける一部のアレイのセルの状態を示す論理図である。
【図３Ｃ】本開示のいくつかの実施形態に係る一連の除算演算の実行に関連した特定のフェーズにおける一部のアレイのセルの状態を示す論理図である。
【図３Ｄ】本開示のいくつかの実施形態に係る一連の除算演算の実行に関連した特定のフェーズにおける一部のアレイのセルの状態を示す論理図である。
【図３Ｅ】本開示のいくつかの実施形態に係る一連の除算演算の実行に関連した特定のフェーズにおける一部のアレイのセルの状態を示す論理図である。
【図３Ｆ】本開示のいくつかの実施形態に係る一連の除算演算の実行に関連した特定のフェーズにおける一部のアレイのセルの状態を示す論理図である。
【図３Ｇ】本開示のいくつかの実施形態に係る一連の除算演算の実行に関連した特定のフェーズにおける一部のアレイのセルの状態を示す論理図である。
【図３Ｈ】本開示のいくつかの実施形態に係る一連の除算演算の実行に関連した特定のフェーズにおける一部のアレイのセルの状態を示す論理図である。
【図３Ｉ】本開示のいくつかの実施形態に係る一連の除算演算の実行に関連した特定のフェーズにおける一部のアレイのセルの状態を示す論理図である。
【図３Ｊ】本開示のいくつかの実施形態に係る一連の除算演算の実行に関連した特定のフェーズにおける一部のアレイのセルの状態を示す論理図である。
【図３Ｋ】本開示のいくつかの実施形態に係る一連の除算演算の実行に関連した特定のフェーズにおける一部のアレイのセルの状態を示す論理図である。
【発明を実施するための形態】
【０００７】
本開示は、メモリ用の除算演算に関する装置及び方法を含む。（例えば、メモリアレイ内の）ビットベクトルに記憶可能な論理値の実施例は、センス線及び第１の本数の選択線に接続されたメモリセルを含む第１アドレス空間を備える。第１アドレス空間のメモリセルは、被除数値を記憶することができる。第２アドレス空間は、センス線及び第２の本数の選択線に接続されたメモリセルを含む。第２アドレス空間のメモリセルは、除数値を記憶することができる。除算演算の結果は、センス線及び第３の本数の選択線に接続されたメモリセルを含む第３アドレス空間に記憶される。第３アドレス空間のメモリセルは、商の値を記憶することができる。第４アドレス空間は、センス線及び第４の本数の選択線に接続されたメモリセルを含む。第４アドレス空間のメモリセルは、剰余値を記憶することができる。
【０００８】
本明細書で使用する場合、被除数値は、除算演算において割られる数値である。除数値は、除算演算において被除数値を割る値である。除算演算の結果は、商の値及び剰余値とすることができる。商の値は、除数値で被除数値を割ることが可能な全回数を表すことができる。剰余値は、除数値で被除数値を割ることが可能な全回数の剰余を表すことができる。例えば、被除数値が１１であり、かつ除数値が５である場合、被除数値（例えば、１１）を除数値（例えば、５）で割った結果は、商の値が２となり、剰余値が１となる。
【０００９】
本開示のいくつかの実施形態は、従来の手法と比較して、複数の除算演算（例えば、除算機能）の実行に伴う計算数及び時間を削減することができる。複数の除算演算を並列に（例えば、同時に）実行することが可能であるため、その計算及び時間を削減することができる。複数の除算演算を並列に実行することにより、複数の除算演算の実行に伴う計算を削減することができる。複数の除算演算を並列に実行することにより、複数の計算を実行する際の消費電力も削減することができる。例えば、いくつかの実施形態は、（例えば、メモリアレイ内の複数のメモリセルにおいて２値形式で）論理的に記憶されたデータ（例えば、被除数値及び除数値）を用いた除算機能の実行を提供することができる。実施形態は、メモリアレイ及び／または検出回路からバス（例えば、データバス、アドレスバス、制御バスなど）を介してデータを転送せずとも除算機能を実行することができる。除算機能には、複数の論理演算（例えば、ＡＮＤ、ＮＯＴ、ＮＯＲ、ＮＡＮＤ、ＸＯＲなど）の実行を含めることができる。しかしながら、実施形態は、これらの実施例に限定されない。
【００１０】
従来の手法では、データ（例えば、被除数値及び除数値）は、メモリアレイ及び検出回路から（例えば、入出力（ｉｎｐｕｔ／ｏｕｔｐｕｔ：Ｉ／Ｏ）線を含むバスを介して）、処理リソースが使用可能な複数のレジスタに転送され得る。処理リソースは、プロセッサ、マイクロプロセッサ及び／または計算エンジンなどであり、これらの処理リソースは、ＡＬＵ回路及び／または適切な論理演算を実行するように構成された他の機能ユニット回路を含み得る。しかしながら、１つの被除数値と１つの除数値のみをＡＬＵ回路が用いることにより、１つの除算機能（例えば、除算演算）の実行が可能である。メモリとレジスタの間でバスを介してデータを転送すると、消費電力及び所要時間の増大が避けられない可能性がある。処理リソースがメモリアレイと同一のチップに位置しているとしても、メモリアレイから計算回路にデータを移動させる際には、例えば、センス線からＩ／Ｏ線にデータを転送するためにセンス線アドレスアクセスを実行すること（例えば、列デコード信号を発行すること）、データをメモリアレイの周辺部に移動させること、及び除算機能に関連したレジスタにデータを提供することが必要となり得るため、電力消費が増大する可能性がある。
【００１１】
本開示の以下の詳細な説明では、本明細書の一部をなす添付図面を参照する。これらの図面では、本開示の１つ以上の実施形態がどのように実施され得るかが一例として示されている。これらの実施形態は、本開示の実施形態を当業者が実施できる程度まで十分詳しく説明されている。さらには、他の実施形態を利用することも可能であること、並びに、プロセスの変更、電気的変更、及び／または構造上の変更を本開示の範囲から逸脱せずになし得ることを理解すべきである。本明細書で使用する場合、指示子「Ｎ」は、特に図面内の参照番号については、そのように指示された複数の特定の特徴を含む可能性があることを示す。本明細書で使用する場合、「複数の」特定のものは、かかるものの１つ以上を指すことができる（例えば、複数のメモリアレイは、１つ以上のメモリアレイを指すことができる）。
【００１２】
本明細書の図面は、先頭の数字（１桁または複数桁）が図面番号に対応し、残りの数字が図面内の要素または構成部分を識別するという付番規則に従っている。異なる図面間で類似の要素または構成部分は、類似の数字を使用することによって識別される場合がある。例えば、２０４は、図２Ａの要素「０４」を参照する場合があり、類似の要素は、図３Ａでは３０４として参照される場合がある。理解されるであろうが、本明細書の様々な実施形態に示した要素を追加し、交換し、かつ／または削除することができ、それによって本開示の別の実施形態がいくつか提供される。加えて、理解されるであろうが、図面内に記載された要素の比率及び相対的な大きさは、本発明のある実施形態を例示することを意図したものであり、限定的な意味として解釈されるべきではない。
【００１３】
図１は、本開示のいくつかの実施形態に係るメモリデバイス１６０を含む演算処理システム１００の形態をとった装置のブロック図である。本明細書で使用する場合、メモリデバイス１６０、メモリアレイ１３０及び／または検出回路１５０は、「装置」として別途考慮される場合もある。
【００１４】
システム１００は、メモリデバイス１６０に接続されたホスト１１０を備えており、メモリデバイス１６０にはメモリアレイ１３０が搭載されている。ホスト１１０は、様々な異なる種類のホストの中でも、パーソナルラップトップコンピュータ、デスクトップコンピュータ、デジタルカメラ、携帯電話またはメモリカードリーダーなどのホストシステムとすることができる。ホスト１１０は、システムマザーボード及び／またはバックプレーンを含むことができ、さらには、複数の処理リソース（例えば、１つ以上のプロセッサ、マイクロプロセッサ、または他の何らかの種類の制御回路）を含むことができる。システム１００は、独立した集積回路で構成することができ、あるいは、ホスト１１０とメモリデバイス１６０の両方を同一の集積回路とすることもできる。システム１００は、例えば、サーバーシステム、または高性能演算処理（ｈｉｇｈ  ｐｅｒｆｏｒｍａｎｃｅ  ｃｏｍｐｕｔｉｎｇ：ＨＰＣ）システム、またはこれらの一部、あるいはこれらの組み合わせとすることができる。図１に示した実施例は、フォン・ノイマン・アーキテクチャを備えたシステムを示しているが、本開示の実施形態は、非フォン・ノイマン・アーキテクチャ（例えば、チューリングマシン）で実装することもできる。このアーキテクチャは、フォン・ノイマン・アーキテクチャに付随することの多い１つ以上の構成要素（例えば、ＣＰＵ、ＡＬＵなど）を含まなくてもよい。
【００１５】
分かりやすくするため、システム１００は、本開示に特定の関連性を有する特徴に焦点を当てるために簡略化されている。メモリアレイ１３０は、例えば、ＤＲＡＭアレイ、ＳＲＡＭアレイ、ＳＴＴ  ＲＡＭアレイ、ＰＣＲＡＭアレイ、ＴＲＡＭアレイ、ＲＲＡＭアレイ、ＮＡＮＤフラッシュアレイ及び／またはＮＯＲフラッシュアレイとすることができる。メモリアレイ１３０は、選択線（本明細書では、ワード線またはアクセス線と呼ぶことがある）によって接続された各行と、センス線（本明細書では、桁線またはデータ線と呼ぶことがある）によって接続された各列とに配列されたメモリセルを含むことができる。図１には単一のアレイ１３０を示したが、実施形態はそのように限定されない。例えば、メモリデバイス１６０は、複数のアレイ１３０（例えば、ＤＲＡＭセルからなる複数のバンク）を備えてもよい。図２Ａに関連して、ＤＲＡＭアレイの実施例について説明する。
【００１６】
メモリデバイス１６０は、Ｉ／Ｏバス１５６（例えば、データバス）を介し、Ｉ／Ｏ回路１４４を通じて提供されたアドレス信号をラッチするアドレス回路１４２を備える。メモリアレイ１３０にアクセスするためには、アドレス信号を受け取り、これらを行デコーダ１４６及び列デコーダ１５２によってデコードする。いくつかの実施例では、アドレス信号は、これよりも多くのまたは少ない行デコーダによってデコードすることができる。例えば、メモリデバイスは、３つの行デコーダを備えることができる。本明細書で使用する場合、行デコーダを選択デコーダと呼ぶことがある。センス線での電圧及び／または電流の変化を検出回路１５０を用いて検出することにより、メモリアレイ１３０からデータを読み出すことができる。検出回路１５０は、メモリアレイ１３０からの１ページ分（例えば、１行分）のデータを読み出してラッチすることができる。Ｉ／Ｏ回路１４４は、ホスト１１０との双方向のデータ通信をＩ／Ｏバス１５６を介して行うのに使用することができる。書き込み回路１４８は、メモリアレイ１３０にデータを書き込むのに使用される。
【００１７】
いくつかの実施例では、デコーディングという用語には、プリデコーディング、最終デコーディング、並びに／または、行デコーダ１４６及び／もしくは列デコーダ１５２内で実施されるその他の種類のデコーディングを含めることができる。いくつかの実施例では、プリデコーディングという用語には、アドレスが別個にアドレス指定されないようにプリデコーディングプロセスを実装する回路が含まれる。プリデコーディング及びデコーディングという用語を本明細書で使用することにより、別個にアドレス指定可能な線及び／または個々にアドレス指定可能な線という各用語を区別することができる。
【００１８】
いくつかの実施例では、メモリアレイ１３０内の複数の選択線及び／またはセンス線を、個々にアドレス指定し、かつ／またはメモリアレイ１３０の他の選択線及び／またはセンス線から独立してデコードすることができる。本明細書で使用する場合、個別のアドレスは、特定の選択線を活性化するのにデコーディングを必要としないアドレスとすることができる。例えば、アドレス回路１４２は、複数の選択線に関連したアドレスを受け取ることができるが、これらの複数の選択線は、当該複数の選択線に関連したアドレスをデコードせずとも活性化することができる。いくつかの実施例では、個々にアドレス指定された行、及び／または別個にアドレス指定された行を、完全にデコードされた行と呼ぶことができる。メモリアレイ１３０に関連したメモリセルは、通常であれば、数あるメモリ構成の中でも、例えば、ＤＲＡＭアレイ、ＳＲＡＭアレイ、ＳＴＴ  ＲＡＭアレイ、ＰＣＲＡＭアレイ、ＴＲＡＭアレイ、ＲＲＡＭアレイ、ＮＡＮＤフラッシュアレイ、及び／またはＮＯＲフラッシュアレイに使用されるメモリセルで構成することができる。
【００１９】
制御回路１４０は、ホスト１１０から制御バス１５４によって提供された信号をデコードする。これらの信号には、チップイネーブル信号、ライトイネーブル信号及びアドレスラッチ信号を含めることが可能であり、これらの信号を使用して、メモリアレイ１３０で実行される動作を制御する。このような動作としては、データの読み出し動作、データの書き込み動作、及びデータの消去動作などがある。様々な実施形態では、制御回路１４０は、ホスト１１０からの命令を実行する役割を果たす。制御回路１４０は、ステートマシン、シーケンサ、または他の何らかの種類のコントローラとすることができる。
【００２０】
検出回路１５０の実施例については、図２Ａ及び図３Ａ〜３Ｋに関連して以下でさらに説明する。例えば、いくつかの実施形態では、検出回路１５０は、複数のセンスアンプ及び複数の計算素子を備えることができる。これらの計算素子には、累算器を含めてもよく、これらの計算素子を使用して、（例えば、相補センス線に関連したデータに）論理演算を実行することができる。いくつかの実施形態では、検出回路（例えば、１５０）を使用することにより、アレイ１３０に記憶されたデータを入力として用いて除算演算を実行し、その除算演算の結果を、センス線アドレスアクセスを介して転送することなく（例えば、列デコード信号を発行することなく）メモリアレイ１３０に再度記憶させることができる。メモリアレイ１３０内の選択線及びセンス線に接続されたメモリセルは、除算演算及び／または当該除算演算の実行に伴う計算を実行している間に、一時記憶域（例えば、レジスタ）として機能することができる。このようにして、検出回路の外部にある処理リソースによって（例えば、デバイス１６０に（例えば、制御回路１４０もしくは他の場所に）配置された、ホスト１１０及び／もしくはＡＬＵ回路などの他の処理回路に関連したプロセッサによって）実行されること以外に、かつ／またはそれに加えて、検出回路１５０を用いて除算機能を実行することができる。
【００２１】
従来の様々な手法では、除算演算に関連したデータを、例えば、検出回路を介してメモリから読み出し、外部のＡＬＵに提供する。外部のＡＬＵ回路は、オペランドを用いて除算機能を実行し、その結果を、ローカルＩ／Ｏ線を介してメモリアレイに再度転送することができる。これに対して、本開示のいくつかの実施形態では、検出回路（例えば、１５０）は、メモリアレイ１３０内のメモリセルに記憶されたデータに除算演算を実行し、その結果を、検出回路に接続されたローカルＩ／Ｏ線をイネーブルにせずにメモリアレイ１３０に再度記憶させるように構成されている。
【００２２】
このようにして、いくつかの実施形態では、除算機能を実行するために、アレイ１３０及び検出回路１５０の外部にあるレジスタ及び／またはＡＬＵを必要としなくてもよい。というのも、検出回路１５０は、メモリアレイ１３０のアドレス空間を用いて、除算機能の実行に伴う適切な計算を実行することができるためである。さらに、この除算機能は、外部の処理リソースを使用せずに実行することができる。
【００２３】
図２Ａは、本開示のいくつかの実施形態に係るメモリアレイ２３０の一部の概略図である。本実施例では、メモリアレイ２３０は、１Ｔ１Ｃ（ｏｎｅ  ｔｒａｎｓｉｓｔｏｒ  ｏｎｅ  ｃａｐａｃｉｔｏｒ）メモリセル２７０−０、２７０−１、２７０−２、…、２７０−Ｎ−１、２７０−Ｎ（例えば、総称してメモリセル２７０と呼ばれる）のＤＲＡＭアレイであり、各セルは、アクセスデバイス２０２（例えば、トランジスタ）及び記憶素子２０３（例えば、コンデンサ）で構成されている。
【００２４】
いくつかの実施形態では、メモリセル２７０は、破壊読み出し式のメモリセルである（例えば、メモリセルに記憶されたデータを読み出すと当該データが破壊されるため、読み出してから、そのセルに当初記憶されたデータのリフレッシュが行われる）。メモリセル２７０は、選択線２０４−０（行０）、２０４−１（行１）、２０４−２（行２）、…、２０４−Ｎ−１（行Ｎ−１）、２０４−Ｎ（行Ｎ）によって接続された各行と、センス線（例えば、桁線）２０５−０（Ｄ）及び２０５−１（Ｄ＿）によって接続された各列とに配列されている。いくつかの実施形態では、メモリアレイ２３０は、別々の回路に接続されているアドレス空間を備えることができる。
【００２５】
本実施例では、セルの各列は、相補センス線２０５−０（Ｄ）及び２０５−１（Ｄ＿）のペアに関連付けられている。図２Ａにはメモリセル２７０の１つの列のみが示されているが、実施形態はそのように限定されない。例えば、ある特定のアレイは、複数列のセル及び／または複数のセンス線（例えば、４，０９６、８，１９２、１６，３８４など）を備えてもよい。図２Ａでは、メモリセル２７０は、センス線２０５−０に接続されている。個々のセルトランジスタ２０２のゲートは、当該セルトランジスタに対応する選択線２０４−０〜２０４−Ｎ（例えば、総称して選択線２０４と呼ばれる）にそれぞれ接続されており、個々のセルトランジスタにおいて、第１のソース／ドレイン領域は当該セルトランジスタに対応する選択線２０５−０に、第２のソース／ドレイン領域は当該セルトランジスタに対応するコンデンサ２０３に、それぞれ接続されている。図２Ａには図示されていないが、センス線２０５−１も、これに接続されたメモリセルを有し得る。
【００２６】
いくつかの実施例では、センス線２０５に接続されている各メモリセル２７０は、ビットを記憶することができる。これらのビットは、１つの値及び／または複数の値（例えば、被除数値、除数値、商の値及び／または剰余値）の論理表現を表すことができる。例えば、被除数値は、４つのビットベクトルによって表すことができ、これらのビットベクトルを、メモリセル２７０−０、メモリセル２７０−１、メモリセル２７０−２及びメモリセル２７０−３に記憶させることができる。いくつかの実施例では、ビットベクトルは、図２Ａ及び図３Ａ〜３Ｋに用いられているものよりも多くのまたは少ないビットによって表すことができる。例えば、被除数値は、数あるビットベクトルの大きさの中でも、８ビットベクトル、１６ビットベクトル及び／または３２ビットベクトルによって表すことができる。いくつかの実施例では、値に対する各ビットベクトルの表現を、選択線２０４に沿って左右にではなく、センス線２０５に沿って上下に記憶させることができる。
【００２７】
値に対する各ビットベクトルの論理表現には、インデックスを付けることができる。例えば、メモリセル２７０−０に記憶されたビットを第１インデックスに関連付けることができ、メモリセル２７０−１に記憶されたビットを第２インデックスに関連付けることができ、メモリセル２７０−２に記憶されたビットを第３インデックスに関連付けることができ、メモリセル２７０−３に記憶されたビットを第４インデックスに関連付けることができる。一実施例として、第１インデックスは、記憶したビットベクトルの最上位ビット（ｍｏｓｔ  ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ：ＭＳＢ）を示すことができ、第４インデックスは、記憶したビットベクトルの最下位ビット（ｌｅａｓｔ  ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ：ＬＳＢ）を示すことができる。図２Ａに関して用いられたインデックス付けは例示であって、限定的ではない。いくつかの実施形態では、他のインデックス付け方式及び／または順序を用いることができる。例えば、メモリ２７０−３に記憶されたビットを第１インデックスに関連付けることができ、メモリセル２７０−２に記憶されたビットを第２インデックスに関連付けることができ、メモリセル２７０−１に記憶されたビットを第３インデックスに関連付けることができ、メモリセル２７０−０に記憶されたビットを第４インデックスに関連付けることができる。さらに、本明細書に記載された演算は、複数の異なるレイアウト及び／またはメモリセル配置を用いて実行することができる。
【００２８】
メモリアレイ２３０の各センス線に複数の値を記憶させることができる。例えば、メモリセル２７０−０、２７０−１、２７０−２、２７０−３は、第１の被除数値を表す複数のビットを記憶することができ、メモリセル２７０−４、２７０−５、２７０−６、２７０−７は、第１の除数値を表す複数のビットを記憶することができ、メモリセル２７０−８、２７０−９、２７０−１０、２７０−１１は第１の商の値を表す複数のビットを記憶することができ、メモリセル２７０−１２、２７０−１３、２７０−１４、２７０−１５は第１の剰余値を表す複数のビットを記憶することができる（例えば、メモリセル２７０−３〜２７０−１５は、図２Ａには示されていない）。メモリセル２７０−０〜２７０−１５は、第１のセンス線に接続することができる。異なるセンス線に接続されたメモリセルは、第２の被除数値、第２の除数値、第２の商の値及び／または第２の剰余値を表す複数のビットを記憶することができる。
【００２９】
いくつかの実施例では、選択線２０４−０及び複数のセンス線（例えば、センス線２０５−０及びセンス線２０５−１）に接続されたメモリセルを同時に活性化することができる。さらに、メモリセル２７０−０、メモリセル２７０−１、メモリセル２７０−２、２７０−３も同時に活性化することができる。いくつかの実施例では、独立にアドレス指定された選択線２０４及び／またはセンス線２０５を同時に活性化して、複数のメモリセルを同時に活性化することができる。
【００３０】
検出回路は、センスアンプ２０６及び計算素子２３１を備える。この検出回路は、図１に示した検出回路１５０とすることができる。センスアンプ２０６は、メモリセルの特定の列に対応する相補センス線Ｄ、Ｄ＿に接続されている。センスアンプ２０６は、選択されたセル（例えば、メモリセル２７０）に記憶された状態（例えば、論理データ値）を判別するように動作することができる。実施形態は、実施例のセンスアンプ２０６に限定されない。例えば、本明細書に記載されたいくつかの実施形態に係る検出回路は、電流モードセンスアンプ及び／またはシングルエンド型センスアンプ（例えば、１本のセンス線に接続されたセンスアンプ）を含むことができる。
【００３１】
いくつかの実施形態では、計算素子（例えば、２３１）は、センスアンプ（例えば、２０６）及び／またはメモリアレイ（例えば、２３０）のメモリセル２７０を構成するトランジスタと間隔を置いて形成された複数のトランジスタを含むことができる。なお、これらのメモリセルは、特定の加工寸法（例えば、４Ｆ２、６Ｆ２など）に準拠していてもよい。以下でさらに説明するように、計算素子２３１は、センスアンプ２０６と連携して、メモリアレイ２３０内のメモリセル２７０からのデータを入力として用いて除算演算を実行するように動作することができ、その結果を、センス線アドレスアクセスを介してデータを転送することなく（例えば、列デコード信号を発行し、それによってメモリアレイ及び検出回路からローカルＩ／Ｏ線を介して外部回路にデータを転送することなく）、メモリアレイ２３０内のメモリセル２７０に再度記憶させることができる。このようにして、本開示のいくつかの実施形態では、除算演算及びこれに関連した計算を、従来の様々な手法よりも少ない電力を用いて実行することが可能となる。さらに、いくつかの実施形態では、計算機能を実行するためにローカルＩ／Ｏ線を介してデータを転送する必要がないため、従来の手法に比べて、計算素子（例えば、２３１）及びメモリセル２７０を用いた並列処理能力を高めることが可能となる。
【００３２】
図２Ａに示した実施例では、計算素子２３１に対応する回路は、センス線Ｄ及びＤ＿のそれぞれに５つのトランジスタが接続された構成をとっている。ただし、実施形態は、この実施例に限定されない。トランジスタ２０７−１及び２０７−２は、センス線Ｄ及びＤ＿にそれぞれ接続された第１のソース／ドレイン領域と、クロスカップル型ラッチに接続された（例えば、クロスカップル型ＮＭＯＳトランジスタ２０８−１及び２０８−２並びにクロスカップル型ＰＭＯＳトランジスタ２０９−１及び２０９−２などの、クロスカップル型トランジスタのペアの各ゲートに接続された）第２のソース／ドレイン領域とを有する。本明細書でさらに説明するように、トランジスタ２０８−１、２０８−２、２０９−１及び２０９−２を含むクロスカップル型ラッチは、２次ラッチと呼ぶことができる（センスアンプ２０６に対応するクロスカップル型ラッチは、本明細書では１次ラッチと呼ぶことができる）。
【００３３】
トランジスタ２０７−１及び２０７−２は、パストランジスタと呼ぶことができる。これらのトランジスタは、各信号２１１−１（Ｐａｓｓｄ）及び２１１−２（Ｐａｓｓｄｂ）を介してイネーブルにすることができ、それによって各センス線Ｄ及びＤ＿の電圧または電流が、トランジスタ２０８−１、２０８−２、２０９−１及び２０９−２を含むクロスカップル型ラッチの入力（例えば、２次ラッチの入力）に送られるようになっている。本実施例では、トランジスタ２０７−１の第２のソース／ドレイン領域は、トランジスタ２０８−１及び２０９−１の第１のソース／ドレイン領域、並びにトランジスタ２０８−２及び２０９−２の各ゲートに接続されている。同様に、トランジスタ２０７−２の第２のソース／ドレイン領域は、トランジスタ２０８−２及び２０９−２の第１のソース／ドレイン領域、並びにトランジスタ２０８−１及び２０９−１の各ゲートに接続されている。
【００３４】
トランジスタ２０８−１及び２０８−２の第２のソース／ドレイン領域は、負の制御信号２１２−１（Ａｃｃｕｍｂ）に共通に接続されている。トランジスタ２０９−１及び２０９−２の第２のソース／ドレイン領域は、正の制御信号２１２−２（Ａｃｃｕｍ）に共通に接続されている。Ａｃｃｕｍ信号２１２−２は、電源電圧（例えば、Ｖｃｃ）とすることができ、Ａｃｃｕｍｂ信号は、基準電圧（例えば、グラウンド）とすることができる。信号２１２−１及び２１２−２をイネーブルにすると、２次ラッチに対応する、トランジスタ２０８−１、２０８−２、２０９−１及び２０９−２を含むクロスカップル型ラッチが活性化される。活性化されたセンスアンプのペアは、共通ノード２１７−１と共通ノード２１７−２の間の差動電圧を増幅するように動作し、それにより、ノード２１７−１は、Ａｃｃｕｍ信号電圧とＡｃｃｕｍｂ信号電圧の一方の電圧に（例えば、Ｖｃｃとグラウンドの一方に）駆動され、ノード２１７−２は、Ａｃｃｕｍ信号電圧とＡｃｃｕｍｂ信号電圧の他方の電圧に駆動される。以下でさらに説明するように、２次ラッチは、論理演算（例えば、除算演算）の実行に使用されている間は累算器として機能することができるため、信号２１２−１は「Ａｃｃｕｍｂ」に、信号２１２−２は「Ａｃｃｕｍ」に、それぞれラベル付けされている。いくつかの実施形態では、累算器は、２次ラッチを形成するクロスカップル型トランジスタ２０８−１、２０８−２、２０９−１及び２０９−２、並びにパストランジスタ２０７−１及び２０８−２を含む。本明細書でさらに説明するように、いくつかの実施形態では、センスアンプに接続された累算器を含む計算素子は、論理演算を実行するように構成することができる。この論理演算には、相補センス線のペアの少なくとも一方における信号（例えば、電圧または電流）によって表されたデータ値の累算演算を実行することが含まれる。
【００３５】
計算素子２３１は、各桁線Ｄ及びＤ＿に接続された第１のソース／ドレイン領域を有する反転トランジスタ２１４−１及び２１４−２も含む。反転トランジスタ２１４−１及び２１４−２の第２のソース／ドレイン領域は、トランジスタ２１６−１及び２１６−２の第１のソース／ドレイン領域にそれぞれ接続されている。トランジスタ２１４−１及び２１４−２の各ゲートは、信号２１３（ＩｎｖＤ）に接続されている。トランジスタ２１６−１のゲートは、共通ノード２１７−１に接続されており、このノードに対しては、トランジスタ２０８−２のゲート、トランジスタ２０９−２のゲート、及びトランジスタ２０８−１の第１のソース／ドレイン領域も接続されている。相補的に、トランジスタ２１６−２のゲートは、共通ノード２１７−２に接続されており、このノードに対しては、トランジスタ２０８−１のゲート、トランジスタ２０９−１のゲート、及びトランジスタ２０８−２の第１のソース／ドレイン領域も接続されている。このようにして、信号ＩｎｖＤをイネーブルにすると、２次ラッチに記憶されたデータ値が反転されるようになり、この反転値がセンス線２０５−０及び２０５−１へと駆動される。
【００３６】
図２Ａでは、計算素子２３１は、除算演算を実行するように構成されている。以下の実施例では、アレイ２３０に記憶されたデータを入力として用いて除算演算をどのように実行するか、及びその除算演算の結果を、検出回路（例えば、センスアンプ２０６及び計算素子２３１）の動作を通じて当該アレイにどのように記憶させるかについて説明する。この実施例は、選択線２０４−０〜２０４−Ｎに接続され、かつセンス線２０５−０に共通に接続されたメモリセル２７０に記憶されたビット（例えば、論理１または論理０）を除算演算に対する各入力として用いることを含む。この除算演算の結果を、センス線２０５−０に接続されたメモリセルに記憶させることができる。
【００３７】
一実施例として、計算素子２３１は、センス線２０５−０に接続されている複数のメモリセル２７０の第１部分及び第２部分に記憶された被除数値及び除数値を用いることができる。第１部分は、第１の数のメモリセルを含むことができる。第２部分は、第２の数のメモリセルを含むことができる。除算演算の途中結果は、センス線２０５−０に接続されているメモリセルの第３部分及び／または第４部分に保存することができる。
【００３８】
除算演算は、被除数値を記憶するメモリセル２７０−０〜２７０−３に記憶されたビットを、剰余値を記憶するメモリセル２７０−１２〜２７０−１５のメモリセル２７０−１２にコピーすることを含むことができる。メモリセル２７０−０〜２７０−３に記憶されたビットは、連続的に（例えば、１つずつ）メモリセル２７０−１２にコピーすることができる。メモリセル２７０−０〜２７０−３に記憶されたビットは、メモリセル２７０−０〜２７０−３にこれらを記憶させたときの順序に対して逆の順序でコピーすることができる。例えば、メモリセル２７０−３に記憶されたビットをメモリセル２７０−１２にコピーしてから、メモリセル２７０−２に記憶されたビットをメモリセル２７０−１２にコピーすることができる。
【００３９】
いくつかの実施例では、メモリセル２７０−０〜２７０−３に記憶されたビットを、剰余ビットベクトルの第１インデックスに関連付けられたメモリセルにコピーすることができる。メモリセル２７０−１２は剰余ビットベクトルの第１インデックスに関連付けられているが、これは、メモリセル２７０−１２が剰余ビットベクトルの第１ビットを記憶することができるためである。例えば、５に等しい剰余値は、ビットベクトル［０１０１］によって表すことができる。このビットベクトルは、メモリセル２７０−１２〜２７０−１５に記憶させることができる。ビットベクトル［０１０１］の第１ビットは、１に等しくすることができ、この第１ビットを、第１インデックスに関連付けられたメモリセル２７０−１２に記憶させることができる。ビットベクトル［０１０１］の第２ビットは、０に等しくすることができ、この第２ビットを、第２インデックスに関連付けられたメモリセル２７０−１３に記憶させることができる。第３インデックスに関連付けられたメモリセル２７０−１４は、１に等しくすることができる。第４インデックスに関連付けられたメモリセル２７０−１５は、０に等しくすることができる。
【００４０】
この除算演算を分割して、計算を反復させることができる。本明細書で使用する場合、計算は、除算演算の実行に伴う計算演算を表すことができる。例えば、数ある計算の中でも、コピー演算を計算とすることができ、かつ／または、加算演算を計算とすることができる。被除数値のビットの１つを剰余ビットベクトルの第１インデックスに関連付けられたメモリセルにコピーする度に、除算演算の反復を開始することができる。
【００４１】
剰余ビットベクトルの第１インデックスに関連付けられたメモリセルにビットをコピーする度に、マスクを作成することができる。マスクは、除数値が、対応する剰余値以下であるかどうかを示すことができる。除数値が剰余値以下である場合、マスクの対応ビットを１に等しい値に設定することができ、除数値を剰余値から引くことができ、この減算の結果の論理表現（例えば、ビットベクトル）を記憶し、シフトすることができ、さらに、剰余値のビットベクトルの第１インデックスに関連付けられたメモリセルにコピーされたビットが、反復すべき被除数値の最終ビットではない場合には、剰余値を更新するために、商の値の論理表現（例えば、ビットベクトル）を１だけインクリメントすることができる。除数値が剰余値よりも大きい場合、マスクの対応ビットを０に設定する。その後、商の値の論理表現及び剰余値の論理表現をそれぞれシフトして、商の値及び剰余値を更新することができる。シフト操作については、図３Ａ〜３Ｋに関してさらに説明する。この除算演算は、図３Ａ〜３Ｋの実施例として与えられる。
【００４２】
本開示の実施形態は、図２Ａに示した特定の検出回路構成に限定されない。例えば、異なる計算素子回路を使用して、本明細書に記載されたいくつかの実施形態に係る論理演算を実行することができる。図２Ａには示されていないが、いくつかの実施形態では、アレイ２３０、センスアンプ２０６及び／または計算素子２３１に制御回路を接続することができる。このような制御回路は、例えば、当該アレイ及び検出回路と同一のチップに、かつ／または外部プロセッサなどの外部処理リソースに実装されてもよく、本明細書に記載された論理演算を実行するために、上記アレイ及び検出回路に対応する様々な信号のイネーブル／ディセーブルを制御することができる。さらに、図２Ａには相補センス線の１つのペア（２０５−０／２０５−１）を示しているが、アレイ２３０は、複数の相補センス線のペアを含むことができる。
【００４３】
疑似コードの実施例を以下に挙げる。この疑似コードは、メモリにおいて除算演算を実行するための概要を提示するものである。
2017503229.tif 000003
【００４４】
いくつかの実施形態では、除算演算を実行するために利用可能な数ある演算の中でも、減算演算、加算演算、比較演算、シフト演算及び／またはコピー演算を用いて除算演算を実行することができる。減算演算、加算演算、比較演算、シフト演算、及び／またはコピー演算は、ブール演算及び非ブール演算を用いて実行することができる。いくつかの実施形態では、ブール演算及び非ブール演算は、論理演算（例えば、ＮＡＮＤ、ＡＮＤ、ＮＯＲ、ＯＲなど）を用いて実行することができる。計算素子２３１と連携してＮＡＮＤ、ＡＮＤ、ＮＯＲ及びＯＲ論理演算を実行する実施例を、図２Ｂ、２Ｃ−１、２Ｃ−１、２Ｄ−１及び２Ｄ−２に挙げる。
【００４５】
表１に、加算演算を実行するために実行可能な複数の命令の実施例を挙げる。表１に挙げた実施例は、メモリアレイ２３０の一部に記憶された値（例えば、加数）の論理表現（例えば、ビットベクトル）に、１（ｏｎｅ）を加えるものである。ビットベクトル「ｓｒｃｄｅｓｔ［ｐ］」は加数の論理表現であり、このビットベクトルを、メモリアレイ２３０内の第１の数のメモリセルに記憶させることができる。ビットベクトルｓｒｃｄｅｓｔ［ｐ］は、１が加えられる数値の論理表現である。Ｐは、ビットベクトルｓｒｃｄｅｓｔ［ｐ］に関連付けられているインデックスを表す。例えば、ビットベクトル［０１１］は値３の論理表現であり、このビットベクトルを、メモリセル２７０−０〜２７０−２に記憶させることができ、それにより、ビットｓｒｃｄｅｓｔ［０］は１に等しく、ビットｓｒｃｄｅｓｔ［１］は１に等しく、ビットｓｒｃｄｅｓｔ［２］は０に等しくなる。ビットベクトルｔｍｐ［ｐ］は記憶変数の論理表現であり、このビットベクトルを、メモリアレイ２３０内の第２の数のメモリセルに記憶させることができる。例えば、ビットベクトルｔｍｐ［ｐ］をメモリセル２７０−３〜２７０−５に記憶させることができる。
【表１】
2017503229.tif 000004
【００４６】
加算演算は、２つのステージに分けることができる。「１の加算」ステージは、第１のビットベクトルｓｒｃｄｅｓｔ［ｐ］の論理表現に１を加えることができる。「１の加算」ステージにおいて、「ｒｅａｄ  ｓｒｃｄｅｓｔ［０］」コールは、ビットベクトルｓｒｃｄｅｓｔ［ｐ］の第１インデックスを用いてビットを読み出す（例えば、ラッチする）ことができる。例えば、本明細書で説明するように、メモリセル２７０−０に記憶されたビットは、センスアンプ２０６及び／または計算素子２３１においてラッチすることができる。「ｗｒｉｔｅ  ｔｍｐ［０］」コールは、メモリセル２７０−３（例えば、ビットベクトルｔｍｐ［０］の第１インデックス）内のセンスアンプ２０６及び／または計算素子２３１においてラッチされている値を、メモリセル２７０−３を活性化することによって記憶させることができる。「ｗｒｉｔｅ−ｉｎｖｅｒｔｅｄ  ｓｒｃｄｅｓｔ［０］」コールは、センスアンプ２０６及び／または計算素子２３１に記憶されているビットを反転することができ、その反転ビットを、メモリセル２７０−０を活性化することによってメモリセル２７０−０に記憶させることができる。
【００４７】
「残りの全Ｐビット用」ステージは、ビットベクトルｓｒｃｄｅｓｔ［ｐ］の第１インデックスの後の全てのインデックスに対して表１の各コールを実行することにより、第１ステージの剰余をビットベクトルｓｒｃｄｅｓｔ［ｐ］の他のビットに移すことができる。例えば、第１反復において、「ｒｅａｄ  ｓｒｃｄｅｓｔ［ｐ］」コールは、メモリセル２７０−１に記憶されたビットをセンスアンプ２０６及び／または計算素子２３１にてラッチすることにより、メモリセル２７０−１に記憶されたビットを読み出すことができる。「ｏｒ  ｔｍｐ［０］」コールは、ラッチされたビット（例えば、メモリセル２７０−１から読み出されたビット）とメモリセル２７０−３に記憶されたビットとを用いたＯＲ演算を実行することができる。メモリセル２７０−３に記憶されたビットは、「ｒｅａｄ  ｓｒｃｄｅｓｔ［ｐ］」コールの後にラッチすることができる。このＯＲ演算は、後述するように計算素子２３１において実行することができる。「ｗｒｉｔｅ  ｔｍｐ［１］」コールは、メモリセル２７０−４を活性化することによってＯＲ演算の結果をメモリセル２７０−４に記憶させることができる。「ｒｅａｄ  ｓｒｃｄｅｓｔ［ｐ］」コールは、メモリアレイ２７０−１に記憶されたビットをセンスアンプ２０６にてラッチすることができる。「ｎａｎｄ  ｔｍｐ［０］」コールは、ラッチされたビット（例えば、センスアンプ２０６及び／または計算素子２３１に記憶されたビット）とメモリセル２７０−３に記憶されたビットとを入力として用いたＮＡＮＤ演算を実行することができる。メモリセル２７０−３に記憶されたビットは、センスアンプ２６０にてラッチすることができ、「ｒｅａｄ  ｓｒｃｄｅｓｔ［ｐ］」コールの後のＮＡＮＤ演算の入力として計算素子２３１に与えることができる。「ｗｒｉｔｅ−ｉｎｖｅｒｔｅｄ  ｔｍｐ［０］」コールは、ＮＡＮＤ演算の結果を計算素子２３１にて反転することができる。メモリセル２７０−３を活性化することにより、この反転ビットをメモリセル２７０−３に記憶させることができる。「ａｎｄ  ｔｍｐ［１］」コールは、ＮＡＮＤ演算の結果とメモリセル２７０−４に記憶されたビットとを入力として用いたＡＮＤ演算を実行することができる。「ｗｒｉｔｅ  ｓｒｃｄｅｓｔ［ｐ］」コールは、ＡＮＤ演算の結果をメモリセル２７０−１に記憶させることができる。この時点で、第２ステージの第２反復を、ｐの第３インデックスを用いて実行することができる。この加算演算は、当該加算演算がビットベクトルｓｒｃｄｅｓｔ［ｐ］の最終インデックスに達したときに終了させることができる。
【００４８】
表２に、減算演算を実行するために実行可能な複数の命令の実施例を挙げる。表２に示した減算演算は、表１に用いた構文を利用して行うことができる。この減算演算は、３つのステージを含むことができる。すなわち、「セットアップ」ステージ、「残りの全Ｐビットのループ（Ｌｏｏｐ−ｔｈｒｏｕｇｈ  ｒｅｍａｉｎｉｎｇ  Ｐ  ｂｉｔｓ）」ステージ、及び「クリーンアップ」ステージである。表２に挙げた各命令は、ビットベクトルｍｉｎｕｅｎｄ［ｐ］、ビットベクトルｓｕｂｔｒａｈｅｎｄ［ｐ］、ビットベクトルｔｍｐ［ｐ］及びビットベクトルｒｅｓｕｌｔ［ｐ］を用いる。ビットベクトルｓｕｂｔｒａｈｅｎｄ［ｐ］は、減数値の論理表現であり、他方、ビットベクトルｍｉｎｕｅｎｄ［ｐ］は、被減数値の論理表現である。減算演算では、被減数値から減数値が引かれる。ビットベクトルｒｅｓｕｌｔ［ｐ］は、当該ビットベクトルｒｅｓｕｌｔ［ｐ］に記憶させることができる減算演算の結果値の論理表現である。ビットベクトルｔｍｐ［ｐ］は、減算演算の実行中に一時記憶域として用いられる値の論理表現である。これらのビットベクトルｍｉｎｕｅｎｄ［ｐ］、ｓｕｂｔｒａｈｅｎｄ［ｐ］、ｔｍｐ［ｐ］及びｒｅｓｕｌｔ［ｐ］を、メモリアレイ２３０内の複数のメモリセル２７０に記憶させることができる。例えば、ビットベクトルｍｉｎｕｅｎｄ［ｐ］をメモリセル２７０−０〜２７０−３に記憶させることができ、ビットベクトルｓｕｂｔｒａｈｅｎｄ［ｐ］をメモリセル２７０−４〜２７０−７に記憶させることができ、ビットベクトルｔｍｐ［ｐ］をメモリセル２７０−８〜２７０−１１に記憶させることができ、ビットベクトルｒｅｓｕｌｔ［ｐ］をメモリセル２７０−１２〜２７０−１５に記憶させることができる。この減算演算は、減数値の２の補数を計算すること、及びこの減数値の２の補数を被減数値に加えることを含むことができる。減数値の２の補数をビットごとに計算して、これを被減数値の対応ビットに加えるようにすることができる。
【表２】
2017503229.tif 000005
2017503229.tif 000006
【００４９】
表３に、コピー演算及び／またはシフト演算を実行するために実行可能な複数の命令の実施例を挙げる。コピー演算は、入力値及び出力値として、入力及び出力をそれぞれ用いることができる。ビットベクトルｉｎｐｕｔ［ｐ］は、入力値の論理表現である。ビットベクトルｏｕｔｐｕｔ［ｐ］は、出力値の論理表現である。ビットベクトルｉｎｐｕｔ［ｐ］のインデックスごとに、センスアンプ２０６及び／または計算素子２３１にて対応ビットをラッチすることにより、ビットベクトルｉｎｐｕｔ［ｐ］に対応するメモリセルから１ビットを読み出す。ラッチした対応ビットを、ビットベクトルｉｎｐｕｔ［ｐ］と同一のインデックスを用いて、ビットベクトルｏｕｔｐｕｔ［ｐ］に対応するメモリセルに記憶させることができる。左シフト演算は、ビットベクトルｏｕｔｐｕｔ［ｐ］のインデックスにシフト値を加えてから、ビットベクトルｏｕｔｐｕｔ［ｐ］に対応するメモリセルにビットを記憶させることを含むことができる。例えば、「ｒｅａｄ  ｉｎｐｕｔ［ｐ］」コールは、ビットベクトルｉｎｐｕｔ［ｐ］に対応するメモリアレイ２３０の第１部分のうちの第１インデックスを有するメモリセルに記憶されているビットをラッチすることができ、「ｗｒｉｔｅ  ｏｕｔｐｕｔ［ｐ］」コールは、当該ビットを、ビットベクトルｏｕｔｐｕｔ［ｐ］に対応するメモリアレイ２３０の第２部分のうちの第２インデックスを有するメモリセルに記憶させることができる。
【表３】
2017503229.tif 000007
【００５０】
表４に、比較演算を実行するために実行可能な複数の命令の実施例を挙げる。比較演算は、除数値を剰余値と比較して、除数値が剰余値よりも大きいかどうかを判定することができる。ビットベクトルｄｉｖｉｓｏｒ［ｐ］は、除数値の論理表現である。ビットベクトルｒｅｍａｉｎｄｅｒ［ｐ］は、剰余値の論理表現である。「ｒｅａｄ  ｄｉｖｉｓｏｒ［ｍａｘ］」コールに用いられているＭａｘは、ビットベクトルｄｉｖｉｓｏｒ［ｐ］及び／またはビットベクトルｒｅｍａｉｎｄｅｒ［ｐ］に関連付けられている最上位インデックスを表す。ビットｄｉｆｆｅｒｅｎｃｅ＿ｆｏｕｎｄ＿ｙｅｔ［０］及びビットｂｉｔ  ｄｉｆｆｅｒｅｎｃｅ＿ｔｈｉｓ＿ｔｉｍｅ［０］は、一時記憶域として用いられる変数の論理表現である。ビットｒｅｓｕｌｔ［０］は、結果変数の論理表現である。この比較演算は、「セットアップ」ステージ、「残りの全Ｐビットのループ」ステージ、及び「クリーンアップ」ステージを含む。「セットアップ」ステージは、ビットベクトルｄｉｖｉｓｏｒ［ｐ］及びビットベクトルｒｅｍａｉｎｄｅｒ［ｐ］の最大インデックスを使用する。「残りの全Ｐビットのループ」ステージは、最大インデックスより１つ小さいインデックスから始まり、ビットベクトルｄｉｖｉｓｏｒ［ｐ］及びビットベクトルｒｅｍａｉｎｄｅｒ［ｐ］の第１インデックスに到達するまでインデックスをデクリメントすることによってループする。例えば、最大インデックスが４である場合、「残りの全Ｐビットのループ」ステージは、３に等しいインデックスから始まり、１に等しい第１インデックスに達するまでインデックスをデクリメントする。「クリーンアップ」ステージは、ビットｒｅｓｕｌｔ［０］を反転し、当該ビットをビットｒｅｓｕｌｔ［０］に関連したメモリセルに記憶させる。
【表４】
2017503229.tif 000008
【００５１】
図２Ｂは、本開示のいくつかの実施形態に係る検出回路を用いた複数の論理演算の実行に関するタイミング図２８５−１である。タイミング図２８５−１は、論理演算（例えば、Ｒ入力論理演算）の第１演算フェーズの実行に関する信号（例えば、電圧信号）を示す図である。図２Ｂに記載した第１演算フェーズは、例えば、ＡＮＤ、ＮＡＮＤ、ＯＲまたはＮＯＲ演算の第１演算フェーズとすることができる。さらに後述するように、図２Ｂに示した演算フェーズの実行により、従来の処理手法よりもエネルギー消費を大幅に少なく（例えば、約半分に）することができる。というのも、従来の処理手法では、計算機能を実行するために、電圧レールの間で（例えば、電源とグラウンドの間で）フルスイングさせることが必要となり得るためである。
【００５２】
図２Ｂに示した実施例では、相補的な論理値（例えば、「１」及び「０」）に対応する電圧レールは、電源電圧２７４（ＶＤＤ）及びグラウンド電圧２７２（Ｇｎｄ）である。論理演算を実行する前に、平衡状態を生じさせることができる。例えば、相補センス線Ｄ及びＤ＿を共に短絡して、平衡電圧２２５（ＶＤＤ／２）になるようにする。平衡状態については、図３に関連して以下でさらに説明する。
【００５３】
時刻ｔ１では、平衡信号２２６が非活性化され、選択された行（例えば、データ値が検出され、当該データ値が第１の入力として用いられるメモリセルに対応する行）が活性化される。信号２０４−０は、選択された行（例えば、行２０４−０）に印加された電圧信号を表す。行信号２０４−０が、選択されたセルに対応するアクセストランジスタ（例えば、２０２）の閾電圧（Ｖｔ）に到達すると、当該アクセストランジスタがターンオンし、このトランジスタにより、選択されたメモリセルに（例えば、当該セルが１Ｔ１ＣのＤＲＡＭセルである場合にはコンデンサ２０３に）センス線Ｄが接続される。これにより、（例えば、信号２０５−０及び２０５−１によってそれぞれ示されるように）時刻ｔ２と時刻ｔ３の間において、センス線Ｄとセンス線Ｄ＿の間に差動電圧信号が生じる。選択されたセルの電圧は、信号２０３によって表される。エネルギー保存の法則により、（例えば、センス線Ｄにセルを接続することによって）ＤとＤ＿の間に差動信号が生じてもエネルギーは消費されない。これは、行信号２０４の活性化／非活性化に関連したエネルギーを、当該行に接続された複数のメモリセルにわたって均すことができるためである。
【００５４】
時刻ｔ３では、センスアンプ（例えば、２０６）が活性化する（例えば、正の制御信号２３１がハイになり、負の制御信号２２８がローになる）。これにより、ＤとＤ＿の間の差動信号が増幅され、その結果、論理１に対応する電圧（例えば、ＶＤＤ）または論理０に対応する電圧（例えば、グラウンド）が、センス線Ｄに生じる（さらに、もう一方の電圧が相補センス線Ｄ＿に生じる）。これにより、検出データ値が、センスアンプ２０６の１次ラッチに記憶されるようになる。主なエネルギー消費は、平衡電圧ＶＤＤ／２からレール電圧ＶＤＤまでセンス線Ｄ（２０５−０）を充電する際に生じる。
【００５５】
時刻ｔ４では、パストランジスタ２０７−１及び２０７−２が、（例えば、制御線２１１−１及び２１１−２に印加される各制御信号Ｐａｓｓｄ及びＰａｓｓｄｂを通じて）イネーブルにされる。制御信号２１１−１及び２１１−２を総称して制御信号２１１と呼ぶ。本明細書で使用する場合、ＰａｓｓｄやＰａｓｓｄｂなどの様々な制御信号は、これらの信号が印加される制御線を参照することによって参照され得る。例えば、Ｐａｓｓｄ信号を制御信号２１１−１と呼ぶことができる。時刻ｔ５では、累算器制御信号Ａｃｃｕｍｂ及びＡｃｃｕｍが、各制御線２１２−１及び２１２−２を通じて活性化される。後述するように、累算器制御信号２１２−１及び２１２−２は、次の演算フェーズのために活性化された状態を保ち得る。このようにして本実施例では、制御信号２１２−１及び２１２−２を活性化することにより、計算素子２３１の２次ラッチ（例えば、累算器）が活性化される。センスアンプ２０６に記憶された検出データ値は、２次ラッチに転送される（例えば、コピーされる）。
【００５６】
時刻ｔ６では、パストランジスタ２０７−１及び２０７−２がディセーブルにされる（例えば、ターンオフされる）。しかしながら、累算器制御信号２１２−１及び２１２−２が活性化された状態を保っているため、累算結果は、２次ラッチ（例えば、累算器）に記憶される（例えば、ラッチされる）。時刻ｔ７では、行信号２０４−０が非活性化され、時刻ｔ８では、メモリアレイのセンスアンプが非活性化される（例えば、センスアンプ制御信号２２８及び２３１が非活性化される）。
【００５７】
時刻ｔ９では、センス線電圧信号２０５−０及び２０５−１がこれらの各レール値から平衡電圧２２５（ＶＤＤ／２）に移ることによって示されているように、センス線ＤとＤ＿が平衡状態になる（例えば、平衡信号２２６が活性化される）。この平衡状態では、エネルギー保存の法則により、ほとんどエネルギーが消費されない。平衡状態にするには、相補センス線Ｄ及びＤ＿を共に短絡して平衡電圧にすることが必要となり得る。本実施例では、この平衡電圧はＶＤＤ／２である。平衡状態は、例えば、メモリセルの検出動作の前に生じさせることができる。
【００５８】
図２Ｃ−１及び２Ｃ−２は、それぞれ、本開示のいくつかの実施形態に係る検出回路を用いた複数の論理演算の実行に関するタイミング図２８５−２及び２８５−３である。タイミング図２８５−２及び２８５−３は、論理演算（例えば、Ｒ入力論理演算）の複数の中間演算フェーズの実行に関する信号（例えば、電圧信号）を示す図である。例えば、タイミング図２８５−２は、Ｒ入力ＮＡＮＤ演算またはＲ入力ＡＮＤ演算の複数の中間演算フェーズに対応し、タイミング図２８５−３は、Ｒ入力ＮＯＲ演算またはＲ入力ＯＲ演算の複数の中間演算フェーズに対応する。例えば、ＡＮＤ演算またはＮＡＮＤ演算を実行することは、図２Ｂに記載したものなどの初期演算フェーズに続いて、図２Ｃ−１に示した演算フェーズを１回以上実行することを含むことができる。同様に、ＯＲ演算またはＮＯＲ演算を実行することは、図２Ｂに記載したものなどの初期演算フェーズに続いて、図２Ｃ−２に示した演算フェーズを１回以上実行することを含むことができる。
【００５９】
タイミング図２８５−２及び２８５−３に示すように、時刻ｔ１では、平衡状態が不可にされている（例えば、平衡信号２２６が非活性化されている）。その後、選択された行（例えば、データ値が検出され、当該データ値が第２の入力、第３の入力などの入力として使用されるメモリセルに対応する行）が活性化される。信号２０４−１は、選択された行（例えば、行２０４−１）に印加された電圧信号を表す。行信号２０４−１が、選択されたセルに対応するアクセストランジスタ（例えば、２０２）の閾電圧（Ｖｔ）に到達すると、当該アクセストランジスタがターンオンし、このトランジスタにより、選択されたメモリセルに（例えば、当該セルが１Ｔ１ＣのＤＲＡＭセルである場合にはコンデンサ２０３に）センス線Ｄが接続される。これにより、（例えば、信号２０５−０及び２０５−１によってそれぞれ示されるように）時刻ｔ２と時刻ｔ３の間において、センス線Ｄとセンス線Ｄ＿の間に差動電圧信号が生じる。選択されたセルの電圧は、信号２０３によって表される。エネルギー保存の法則により、（例えば、センス線Ｄにセルを接続することによって）ＤとＤ＿の間に差動信号が生じても、エネルギーは消費されない。これは、行信号２０４の活性化／非活性化に関連したエネルギーを、当該行に接続された複数のメモリセルにわたって均すことができるためである。
【００６０】
時刻ｔ３では、センスアンプ（例えば、２０６）が活性化する（例えば、正の制御信号２３１がハイになり、負の制御信号２２８がローになる）。これにより、ＤとＤ＿の間の差動信号が増幅され、その結果、論理１に対応する電圧（例えば、ＶＤＤ）または論理０に対応する電圧（例えば、グラウンド）が、センス線Ｄに生じる（さらに、もう一方の電圧が相補センス線Ｄ＿に生じる）。これにより、検出データ値が、センスアンプ２０６の１次ラッチに記憶されるようになる。主なエネルギー消費は、平衡電圧ＶＤＤ／２からレール電圧ＶＤＤまでセンス線Ｄ（２０５−０）を充電する際に生じる。
【００６１】
タイミング図２８５−２及び２８５−３に示すように、（例えば、選択されたセルが検出された後の）時刻ｔ４では、個々の論理演算に応じて、制御信号２１１−１（Ｐａｓｓｄ）及び２１１−２（Ｐａｓｓｄｂ）のうちの一方のみが活性化される（例えば、パストランジスタ２０７−１及び２０７−２のうちの一方のみがイネーブルにされる）。例えば、タイミング図２８５−２は、ＮＡＮＤ演算またはＡＮＤ演算の中間フェーズに対応する。そのため、制御信号２１１−１は時間ｔ４で活性化され、制御信号２１１−２は非活性化された状態を保つ。逆に、タイミング図２８５−３は、ＮＯＲ演算またはＯＲ演算の中間フェーズに対応する。そのため、制御信号２１１−２は時間ｔ４で活性化され、制御信号２１１−１は非活性化された状態を保つ。累算器制御信号２１２−１（Ａｃｃｕｍｂ）及び２１２−２（Ａｃｃｕｍ）が、図２Ｂに記載した初期演算フェーズ中に活性化されたこと、及びこれらの信号が１つ以上の中間演算フェーズ中も活性化された状態を保っていることを上記から想起すること。
【００６２】
累算器を予め活性化していたため、Ｐａｓｓｄ（２１１−１）のみを活性化することにより、電圧信号２０５−０に対応するデータ値が累算される。同様に、Ｐａｓｓｄｂ（２１１−２）のみを活性化することにより、電圧信号２０５−１に対応するデータ値が累算される。例えば、実施例のＡＮＤ／ＮＡＮＤ演算（例えば、タイミング図２８５−２）ではＰａｓｓｄ（２１１−１）のみが活性化されるが、選択されたメモリセル（例えば、本実施例における行１のメモリセル）に記憶されたデータ値が論理０である場合、２次ラッチに関連した累算値がローにアサートされ、それにより、２次ラッチには論理０が記憶される。行１のメモリセルに記憶されたデータ値が論理０ではない場合、２次ラッチは、当該ラッチに記憶された行０のデータ値（例えば、論理１または論理０）を保持する。このようにして、このＡＮＤ／ＮＡＮＤ演算の実施例では、２次ラッチは、０（ｚｅｒｏ）の累算器として機能する。同様に、実施例のＯＲ／ＮＯＲ演算（例えば、タイミング図２８５−３）ではＰａｓｓｄｂのみが活性化されるが、選択されたメモリセル（例えば、本実施例における行１のメモリセル）に記憶されたデータ値が論理１である場合、２次ラッチに関連した累算値がハイにアサートされ、それにより、２次ラッチには論理１が記憶される。行１のメモリセルに記憶されたデータ値が論理１ではない場合、２次ラッチは、当該ラッチに記憶された行０のデータ値（例えば、論理１または論理０）を保持する。このようにして、このＯＲ／ＮＯＲ演算の実施例では、２次ラッチは、実質的に１（ｏｎｅ）の累算器として機能する。これは、Ｄ＿の電圧信号２０５−１によって累算器の真のデータ値が設定されるためである。
【００６３】
図２Ｃ−１及び２Ｃ−２に示したものなどの中間演算フェーズの終了時、Ｐａｓｓｄ信号（例えば、ＡＮＤ／ＮＡＮＤの場合）またはＰａｓｓｄｂ信号（例えば、ＯＲ／ＮＯＲの場合）が、（例えば、時刻ｔ５で）非活性化され、（例えば、時刻ｔ６で）選択された行が非活性化され、（例えば、時刻ｔ７で）センスアンプが非活性化され、（例えば、時刻ｔ８で）平衡状態が生じる。図２Ｃ−１または２Ｃ−２に示したものなどの中間演算フェーズを繰り返して、複数の別の行からの結果を累算することができる。一実施例として、タイミング図２８５−２または２８５−３のシーケンスを、行２のメモリセルについては次の（例えば、第２の）時間に、行３のメモリセルについてはその次の（例えば、第３の）時間などに実行することができる。例えば、１０入力ＮＯＲ演算の場合、図２Ｃ−２に示した中間フェーズを９回行って１０入力論理演算のうちの９つの入力を与えると共に、（例えば、図２Ｂに記載したような）初期演算フェーズ中に１０番目の入力を判別することができる。
【００６４】
図２Ｄ−１及び２Ｄ−２は、それぞれ、本開示のいくつかの実施形態に係る検出回路を用いた複数の論理演算の実行に関するタイミング図２８５−４及び２８５−５である。タイミング図２８５−４及び２８５−５は、論理演算（例えば、Ｒ入力論理演算）の最終演算フェーズの実行に関する信号（例えば、電圧信号）を示す図である。例えば、タイミング図２８５−４は、Ｒ入力ＮＡＮＤ演算またはＲ入力ＮＯＲ演算の最終演算フェーズに対応し、タイミング図２８５−５は、Ｒ入力ＡＮＤ演算またはＲ入力ＯＲ演算の最終演算フェーズに対応する。例えば、ＮＡＮＤ演算を実行することは、図２Ｃ−１に関連して記載された中間演算フェーズを複数回反復してから図２Ｄ−１に示した演算フェーズを実行することを含むことができ、ＮＯＲ演算を実行することは、図２Ｃ−２に関連して記載された中間演算フェーズを複数回反復してから図２Ｄ−１に示した演算フェーズを実行することを含むことができ、ＡＮＤ演算を実行することは、図２Ｃ−１に関連して記載された中間演算フェーズを複数回反復してから図２Ｄ−２に示した演算フェーズを実行することを含むことができ、ＯＲ演算を実行することは、図２Ｃ−２に関連して記載された中間演算フェーズを複数回反復してから図２Ｄ−２に示した演算フェーズを実行することを含むことができる。以下に示した表５は、本明細書に記載された複数の実施形態に係る複数のＲ入力論理演算の実行に関連した演算フェーズのシーケンスに対応する図を示す。
【表５】
2017503229.tif 000009
【００６５】
図２Ｄ−１及び２Ｄ−２の最終演算フェーズは、Ｒ入力論理演算の結果をメモリアレイ（例えば、アレイ２３０）の行に記憶させることに関連して記載されている。しかしながら、前述のように、いくつかの実施形態では、この結果を、当該アレイに再度記憶させる以外にも、適切な場所に（例えば、Ｉ／Ｏ線を介して、コントローラ及び／またはホストプロセッサに関連した外部レジスタや、異なるメモリデバイスのメモリアレイに）記憶させることができる。
【００６６】
タイミング図２８５−４及び２８５−５に示すように、時刻ｔ１では、平衡状態が不可とされている（例えば、平衡信号２２６が非活性化されている）ため、センス線Ｄ及びＤ＿がフローティングになっている。時間ｔ２では、どの論理演算が実行されているかに応じて、ＩｎｖＤ信号２１３またはＰａｓｓｄ及びＰａｓｓｄｂ信号２１１が活性化される。本実施例では、ＮＡＮＤ演算またはＮＯＲ演算（図２Ｄ−１を参照）の場合にはＩｎｖＤ信号２１３が活性化され、ＡＮＤ演算またはＯＲ演算（図２Ｄ−２を参照）の場合にはＰａｓｓｄ及びＰａｓｓｄｂ信号２１１が活性化される。
【００６７】
（例えば、ＮＡＮＤ演算またはＮＯＲ演算に関連して）時刻ｔ２でＩｎｖＤ信号２１３を活性化することにより、トランジスタ２１４−１／２１４−２がイネーブルになり、２次ラッチに記憶されたデータ値が反転する。このとき、センス線Ｄまたはセンス線Ｄ＿がローに引かれる。このようにして、信号２１３を活性化することにより、累算出力が反転する。従って、ＮＡＮＤ演算の場合、先の演算フェーズ（例えば、初期演算フェーズ及び１つ以上の中間演算フェーズ）で検出されたメモリセルのいずれかが論理０を記憶していた場合（例えば、ＮＡＮＤ演算のＲ入力のいずれかが論理０であった場合）、センス線Ｄ＿は、論理０に対応する電圧（例えば、グラウンド電圧）を伝達し、センス線Ｄは、論理１に対応する電圧（例えば、ＶＤＤなどの電源電圧）を伝達する。このＮＡＮＤの実施例の場合、従来の演算フェーズで検出されたメモリセルの全てが論理１を記憶していた（例えば、ＮＡＮＤ演算のＲ入力の全てが論理１であった）場合、センス線Ｄ＿は、論理１に対応する電圧を伝達し、センス線Ｄは、論理０に対応する電圧を伝達する。次に、時刻ｔ３では、センスアンプ２０６の１次ラッチが活性化される（例えば、センスアンプを作動させる）ことにより、Ｄ及びＤ＿が、適切なレールに駆動される。この時、センス線Ｄは、先の演算フェーズ中に検出されたメモリセルから判別された各入力データ値をＮＡＮＤした結果を伝達する。このようにして、センス線Ｄは、入力データ値のいずれかが論理０である場合にはＶＤＤになり、入力データ値の全てが論理１である場合にはグラウンドになる。
【００６８】
ＮＯＲ演算の場合、先の演算フェーズ（例えば、初期演算フェーズ及び１つ以上の中間演算フェーズ）で検出されたメモリセルのいずれかが論理１を記憶していた場合（例えば、ＮＯＲ演算のＲ入力のいずれかが論理１であった場合）、センス線Ｄ＿は、論理１に対応する電圧（例えば、ＶＤＤ）を伝達し、センス線Ｄは、論理０に対応する電圧（例えば、グラウンド）を伝達する。このＮＯＲの実施例の場合、先の演算フェーズで検出されたメモリセルの全てが論理０を記憶していた（例えば、ＮＯＲ演算のＲ入力の全てが論理０であった）場合、センス線Ｄ＿は、論理０に対応する電圧を伝達し、センス線Ｄは、論理１に対応する電圧を伝達する。次に、時刻ｔ３では、センスアンプ２０６の１次ラッチが活性化される。この時、センス線Ｄは、先の演算フェーズ中に検出されたメモリセルから判別された各入力データ値をＮＯＲした結果を保持する。このようにして、センス線Ｄは、入力データ値のいずれかが論理１である場合にはグラウンドになり、入力データ値の全てが論理０である場合にはＶＤＤになる。
【００６９】
図２Ｄ−２を参照すると、（例えば、ＡＮＤまたはＯＲ演算に関連して）Ｐａｓｓｄ及びＰａｓｓｄｂ信号２１１を活性化することにより、計算素子２３１の２次ラッチに記憶された累算出力がセンスアンプ２０６の１次ラッチに転送される。例えば、ＡＮＤ演算の場合、先の演算フェーズ（例えば、図２Ｂの第１演算フェーズ、及び図２Ｃ−１の中間演算フェーズの１つ以上の反復）で検出されたメモリセルのいずれかが論理０を記憶していた場合（例えば、ＡＮＤ演算のＲ入力のいずれかが論理０であった場合）、センス線Ｄ＿は、論理１に対応する電圧（例えば、ＶＤＤ）を伝達し、センス線Ｄは、論理０に対応する電圧（例えば、グラウンド）を伝達する。このＡＮＤの実施例の場合、先の演算フェーズで検出されたメモリセルの全てが論理１を記憶していた（例えば、ＡＮＤ演算のＲ入力の全てが論理１であった）場合、センス線Ｄ＿は、論理０に対応する電圧を伝達し、センス線Ｄは、論理１に対応する電圧を伝達する。次に、時刻ｔ３では、センスアンプ２０６の１次ラッチが活性化される。この時、センス線Ｄは、先の演算フェーズ中に検出されたメモリセルから判別された各入力データ値をＡＮＤした結果を伝達する。このようにして、センス線Ｄは、入力データ値のいずれかが論理０である場合にはグラウンドになり、入力データ値の全てが論理１である場合にはＶＤＤになる。
【００７０】
ＯＲ演算の場合、先の演算フェーズ（例えば、図２Ｂの第１演算フェーズ、及び図２Ｃ−２に示した中間演算フェーズの１つ以上の反復）で検出されたメモリセルのいずれかが論理１を記憶していた場合（例えば、ＯＲ演算のＲ入力のいずれかが論理１であった場合）、センス線Ｄ＿は、論理０に対応する電圧（例えば、グラウンド）を伝達し、センス線Ｄは、論理１に対応する電圧（例えば、ＶＤＤ）を伝達する。このＯＲの実施例の場合、先の演算フェーズで検出されたメモリセルの全てが論理０を記憶していた（例えば、ＯＲ演算のＲ入力の全てが論理０であった）場合、センス線Ｄは、論理０に対応する電圧を伝達し、センス線Ｄ＿は、論理１に対応する電圧を伝達する。次に、時刻ｔ３では、センスアンプ２０６の１次ラッチが活性化される。この時、センス線Ｄは、先の演算フェーズ中に検出されたメモリセルから判別された各入力データ値をＯＲした結果を伝達する。このようにして、センス線Ｄは、入力データ値のいずれかが論理１である場合にはＶＤＤになり、入力データ値の全てが論理０である場合にはグラウンドになる。
【００７１】
次に、Ｒ入力ＡＮＤ、ＯＲ、ＮＡＮＤ及びＮＯＲ演算の結果を、アレイ２３０のメモリセルに再度記憶させることができる。図２Ｄ−１及び２Ｄ−２に示した実施例では、Ｒ入力論理演算の結果を、行Ｒ（例えば、２０４−Ｒ）に接続されたメモリセルに記憶させる。論理演算の結果を行Ｒのメモリセルに記憶させるためには、行Ｒを活性化することによって行Ｒのアクセストランジスタ２０２をイネーブルにすることが必要となるにすぎない。行Ｒのメモリセルのコンデンサ２０３は、センス線Ｄのデータ値（例えば、論理１または論理０）に対応する電圧に駆動される。これにより、それまで行Ｒのメモリセルに記憶されていたどのようなデータ値も実質的に上書きされる。なお、行Ｒのメモリセルは、論理演算用の入力として使用されたデータ値を記憶していたメモリセルと同一にすることができることに注意されたい。例えば、論理演算の結果を、行０のメモリセルまたは行１のメモリセルに再度記憶させることができる。
【００７２】
タイミング図２８５−４及び２８５−５は、時刻ｔ３にて、正の制御信号２３１及び負の制御信号２２８が非活性化されて（例えば、信号２３１がハイになり、信号２２８がローになる）、センスアンプ２０６が活性化される場合を示している。時刻ｔ４では、時刻ｔ２で活性化された各信号（例えば、２１３または２１１）が非活性化される。なお、実施形態は、本実施例に限定されない。例えば、いくつかの実施形態では、センスアンプ２０６を、時刻ｔ４の後（例えば、信号２１３または信号２１１が非活性化された後）に活性化してもよい。
【００７３】
図２Ｄ−１及び２Ｄ−２に示すように、時刻ｔ５にて、行Ｒ（２０４−Ｒ）が活性化される。これにより、選択されたセルのコンデンサ２０３が、累算器に記憶された論理値に対応する電圧に駆動される。時刻ｔ６では、行Ｒが非活性化され、時刻ｔ７では、センスアンプ２０６が非活性化され（例えば、信号２２８及び２３１が非活性化される）、時刻ｔ８にて平衡状態が生じる（例えば、信号２２６が活性化されて、相補センス線２０５−０／２０５−１の各電圧が平衡電圧に至る）。
【００７４】
いくつかの実施形態では、図２Ａに記載されたもののような検出回路（例えば、メモリセルと間隔を置いて形成された回路）により、多数の論理演算を並列に実行することが可能となる。例えば、１６Ｋの列を有するアレイでは、当該アレイ及び検出回路からバスを介してデータを転送することなく、かつ／または当該アレイ及び検出回路からＩ／Ｏ線を介してデータを転送することなく、１６Ｋの論理演算を並列に実行することができる。
【００７５】
また、当業者は、Ｒ入力論理演算（例えば、ＮＡＮＤ、ＡＮＤ、ＮＯＲ、ＯＲなど）を実行できることにより、主要な数学的機能、及び／またはパターン比較機能の中でも、加算、減算、乗算及び除算などのより複雑な演算処理機能の実行が可能となることを理解するであろう。例えば、一連のＮＡＮＤ演算を組み合わせて、全加算器機能を実行することができる。一実施例として、キャリーイン及びキャリーアウトと共に２つのデータ値を加算するために１２個のＮＡＮＤゲートが全加算器に必要となった場合、２つの３２ビット数を加えるためには、合計で３８４回のＮＡＮＤ演算（１２×３２）が実行される可能性がある。本開示の実施形態は、ブール代数でなくてもよい論理演算（例えば、コピー、比較など）の実行に使用することもできる。
【００７６】
加えて、いくつかの実施形態では、実行される論理演算への入力は、検出回路（例えば、１５０）が接続されているメモリアレイに記憶されたデータ値でなくてもよい。例えば、論理演算への複数の入力を、メモリアレイ（例えば、２３０）の行を活性化せずにセンスアンプ（例えば、２０６）によって検出することができる。一実施例として、センスアンプ２０６が、これに接続されたＩ／Ｏ線を介して上記複数の入力を受け取ることができる。かかる入力は、例えば、ホストプロセッサ（例えば、ホスト１１０）及び／または外部コントローラからのように、メモリアレイ２３０の外部ソースから、（例えば、適切なＩ／Ｏ線を介して）センスアンプ２０６に提供されてもよい。別の実施例として、論理演算の実行に関連して、特定のセンスアンプ（例えば、２０６）及びそれに対応する計算素子（例えば、２３１）への入力を、異なるセンスアンプ／計算素子のペアから受け取ってもよい。例えば、セルの第１列に接続された第１累算器に記憶されたデータ値（例えば、論理的結果）を、セルの異なる列に関連した異なる（例えば、隣接した）センスアンプ／計算素子のペアに転送してもよい。このペアは、第１列と同一のアレイに位置していてもよく、位置していなくてもよい。
【００７７】
本開示の実施形態は、図２Ａに示した特定の検出回路構成に限定されない。例えば、異なる計算素子回路を使用して、本明細書に記載されたいくつかの実施形態に係る論理演算を実行することができる。図２Ａには示されていないが、いくつかの実施形態では、アレイ２３０、センスアンプ２０６及び／または計算素子２３１に制御回路を接続することができる。このような制御回路は、例えば、当該アレイ及び検出回路と同一のチップに、かつ／または外部プロセッサなどの外部処理リソースに実装されてもよく、本明細書に記載された論理演算を実行するために、上記アレイ及び検出回路に対応する様々な信号のイネーブル／ディセーブルを制御することができる。
【００７８】
図２Ａ、２Ｂ、２Ｃ−１、２Ｃ−２、２Ｄ−１及び２Ｄ−２に関連して記載された論理演算フェーズの実施例では、データ値（例えば、メモリセルから検出されたデータ値及び／またはセンス線の電圧または電流に対応するデータ値）を累算することが必要となる。エネルギー保存の法則により、論理演算フェーズを実行する際に消費されるエネルギーは、センス線ＤまたはＤ＿の容量をＶＤＤ／２からＶＤＤまで充電する間に消費されるエネルギーにほぼ等しい。この充電は、（例えば、図２Ｂ、２Ｃ−１、２Ｃ−２、２Ｄ−１及び２Ｄ−２に示した時刻ｔ３にて）センスアンプが活性化されるときに開始される。このように、論理演算を実行することにより、近似的には、センス線（例えば、桁線）をＶＤＤ／２からＶＤＤまで充電するのに用いられるエネルギーが消費される。一方、従来の様々な処理手法では、往々にして、レールからレールまで（例えば、グラウンドからＶＤＤまで）センス線を充電するのに用いられるエネルギー量が少なくとも消費されるが、これは、本明細書に記載された実施形態と比べて２倍以上となる場合がある。
【００７９】
図３Ａは、本開示のいくつかの実施形態に係る一連の除算演算の実行に関連した特定のフェーズにおける一部のアレイ３３０のセルの状態を示す論理図である。図３Ａは、図２Ａのメモリアレイ２３０及び図１のメモリアレイ１３０に類似したメモリアレイ３３０を含む。メモリアレイ３３０は、センス線３０５−０、３０５−１、３０５−２、３０５−３、３０５−４、３０５−５（例えば、通常、センス線３０５と呼ばれる）を含む。これよりも多くのまたは少ないセンス線をメモリアレイ３３０に含めることができる。各センス線３０５は、異なる除算演算を表す。例えば、６つの異なる除算演算を、６本の異なるセンス線に接続されている複数のメモリセルに記憶された値に基づき、（例えば、並列に）実行することができる。
【００８０】
メモリアレイ３３０は、選択線３０４−０、３０４−１、３０４−２、３０４−３、３０４−４、３０４−５、３０４−６、３０４−７、３０４−８、３０４−９、３０４−１０、３０４−１１、３０４−１２、３０４−１３、３０４−１４、３０４−１５、３０４−１６（例えば、通常、選択線３０４と呼ばれる）も含む。図３Ａでは、第１の除算演算は、被除数値３２０−０を除数値３２２−０で割ることによって構成することができる。この第１の除算演算の結果を、商の値３２４−０及び剰余値３２６−０に記憶させることができる。第２の除算演算は、被除数値３２０−１を除数値３２２−１で割ることによって構成することができる。この第２の除算演算の結果を、商の値３２４−１及び剰余値３２６−１に記憶させることができる。第３の除算演算は、被除数値３２０−２を除数値３２２−２で割ることによって構成することができる。この第３の除算演算の結果を、商の値３２４−２及び剰余値３２６−２に記憶させることができる。第４の除算演算は、被除数値３２０−３を除数値３２２−３で割ることによって構成することができる。この第４の除算演算の結果を、商の値３２４−３及び剰余値３２６−３に記憶させることができる。第５の除算演算は、被除数値３２０−４を除数値３２２−４で割ることによって構成することができる。この第５の除算演算の結果を、商の値３２４−４及び剰余値３２６−４に記憶させることができる。第６の除算演算は、被除数値３２０−５を除数値３２２−５で割ることによって構成することができる。この第６の除算演算の結果を、商の値３２４−５及び剰余値３２６−５に記憶させることができる。
【００８１】
被除数値３２０−０、３２０−１、３２０−２、３２０−３、３２０−４、３２０−５（例えば、通常、被除数値３２０と呼ばれる）、除数値３２２−０、３２２−１、３２２−２、３２２−３、３２２−４、３２２−５（例えば、通常、除数値３２２と呼ばれる）、商の値３２４−０、３２４−１、３２４−２、３２４−３、３２４−４、３２４−５、及び剰余値３２６−０、３２６−１、３２６−２、３２６−３、３２６−４、３２６−５を、ビットベクトルとして、選択線３０４及びセンス線３０５に接続されているメモリセルに記憶させることができる。例えば、複数のメモリセルに記憶されている被除数値３２０−０は、５に等しい値を有することができる。被除数値３２０−０は、ビットベクトル［０１０１］によって表すことができ、このビットベクトルを、センス線３２０−０及び選択線３０４−０、３０４−１、３０４−２、３０４−３に接続されているメモリセルに記憶させることができる。
【００８２】
図３Ａは、メモリアレイ３３０内のメモリセルの初期状態を示している。例えば、商の値及び剰余値を記憶するメモリセルは、０の値を表すビットベクトル［００００］を用いて初期化することができる。被除数値３２０−０を記憶するメモリセルは、初期化されてビットベクトル［０１０１］を記憶する。被除数値３２０−０は５に等しい。被除数値３２０−１を記憶するメモリセルは、初期化されてビットベクトル［０１１１］を記憶する。被除数値３２０−１は７に等しい。被除数値３２０−２を記憶するメモリセルは、初期化されてビットベクトル［００１１］を記憶する。被除数値３２０−２は３に等しい。被除数値３２０−３を記憶するメモリセルは、初期化されてビットベクトル［０１１０］を記憶する。被除数値３２０−３は６に等しい。被除数値３２０−４を記憶するメモリセルは、初期化されてビットベクトル［１０００］を記憶する。被除数値３２０−４は８に等しい。被除数値３２０−５を記憶するメモリセルは、初期化されてビットベクトル［１１００］を記憶する。被除数値３２０−５は１２に等しい。
【００８３】
除数値３２２−０を記憶するメモリセルは、初期化されてビットベクトル［０１００］を記憶する。記憶された除数値３２２−０は、４に等しい。除数値３２２−１を記憶するメモリセルは、初期化されてビットベクトル［００１０］を記憶する。除数値３２２−１は２に等しい。除数値３２２−２を記憶するメモリセルは、初期化されてビットベクトル［０００１］を記憶する。除数値３２２−２は１に等しい。除数値３２２−３を記憶するメモリセルは、初期化されてビットベクトル［００１１］を記憶する。除数値３２２−３は３に等しい。除数値３２２−４を記憶するメモリセルは、初期化されてビットベクトル［０１０１］を記憶する。除数値３２２−４は５に等しい。除数値３２２−５を記憶するメモリセルは、初期化されてビットベクトル［０１１０］を記憶する。除数値３２２−５は６に等しい。
【００８４】
図３Ａは、マスク３２８−０、３２８−１、３２８−２、３２８−３、３２８−４、３２８−５（例えば、通常、マスク３２８と呼ばれる）も含む。マスク３２８については、図３Ｃにおいてさらに説明する。
【００８５】
図３Ｂ〜３Ｋは、本開示のいくつかの実施形態に係る除算演算の実行に関連した種々のフェーズにわたる、（例えば、計算後の）アレイ部３３０のメモリセルの状態を示す論理図である。図３Ａは、アレイ部３３０のメモリセルの最初の（例えば、初期化された）状態を示している。
【００８６】
図３Ｂは、除算演算の実行に関連した特定のフェーズにおける（例えば、図３Ａに示したものに続くフェーズにおける）アレイ部３３０のセルの状態を示す論理図である。
【００８７】
除算演算を実行する際の第１計算は、被除数値３２０を表すビットベクトルの第４インデックスに関連付けられたメモリセルに記憶されたビットを、剰余値３２６を表すビットベクトルの第１インデックスに関連付けられたメモリセルにコピーすることである。例えば、被除数値３２０−０を記憶するメモリセルのうち、図３Ａのセンス線３０５−０及び選択線３０４−３に接続されているメモリセルに記憶されたビット（例えば、０）を、剰余値３２６−０を記憶するメモリセルのうちのセンス線３０５−０及び選択線３０４−１２に接続されているメモリセルにコピーする。被除数値３２０−１を記憶するメモリセルのうち、図３Ａのセンス線３０５−１及び選択線３０４−３に接続されているメモリセルに記憶されたビット（例えば、０）を、剰余値３２６−１を記憶するメモリセルのうちのセンス線３０５−１及び選択線３０４−１２に接続されているメモリセルにコピーする。被除数値３２０−１を記憶するメモリセルのうち、図３Ａのセンス線３０５−２及び選択線３０４−３に接続されているメモリセルに記憶されたビット（例えば、０）を、剰余値３２６−２を記憶するメモリセルのうちのセンス線３０５−２及び選択線３０４−１２に接続されているメモリセルにコピーする。被除数値３２０−３を記憶するメモリセルのうち、図３Ａのセンス線３０５−３及び選択線３０４−３に接続されているメモリセルに記憶されたビット（例えば、０）を、剰余値３２６−３を記憶するメモリセルのうちのセンス線３０５−３及び選択線３０４−１２に接続されているメモリセルにコピーする。被除数値３２０−４を記憶するメモリセルのうち、図３Ａのセンス線３０５−４及び選択線３０４−３に接続されているメモリセルに記憶されたビット（例えば、１）を、剰余値３２６−４を記憶するメモリセルのうちのセンス線３０５−４及び選択線３０４−１２に接続されているメモリセルにコピーする。被除数値３２０−５を記憶するメモリセルのうち、図３Ａのセンス線３０５−５及び選択線３０４−３に接続されているメモリセルに記憶されたビット（例えば、１）を、剰余値３２６−５を記憶するメモリセルのうちのセンス線３０５−５及び選択線３０４−１２に接続されているメモリセルにコピーする。従って、このコピー演算の後、剰余値３２６−０、…、３２６−５を表すビットベクトルは、［００００］、［００００］、［００００］、［００００］、［０００１］及び［０００１］にそれぞれ更新されて、更新後の剰余値０、０、０、０、１及び１をそれぞれ表す。
【００８８】
図３Ｃは、除算演算の実行に関連した特定のフェーズにおける（例えば、図３Ｂに示したものに続くフェーズにおける）アレイ部３３０のセルの状態を示す論理図である。
【００８９】
図３Ｃでは、複数のマスク３２８が作成される。本明細書で使用する場合、マスクは、２値を比較した（例えば、被除数値を剰余値と比較した）後に作成されるマスク、及び／または複数の値を比較した後に作成されるマスクとすることができる。例えば、マスク３２８−０は、除数値３２２−０を剰余値３２６−０と比較した結果を示すことができる。マスク３２８−１は、除数値３２２−１を剰余値３２６−１と比較した結果を示すことができる。マスク３２８−２は、除数値３２２−２を剰余値３２６−２と比較した結果を示すことができる。マスク３２８−３は、除数値３２２−３を剰余値３２６−３と比較した結果を示すことができる。マスク３２８−４は、除数値３２２−４を剰余値３２６−４と比較した結果を示すことができる。マスク３２８−５は、除数値３２２−５を剰余値３２６−５と比較した結果を示すことができる。比較により、除数値が剰余値以下であるかどうかを判定することができる。マスク３２８−０、３２８−１、３２８−２、３２８−３、３２８−４、３２８−５（例えば、通常、マスク３２８と呼ばれる）を記憶するメモリセルは、除数値が剰余値よりも大きいときに０に設定することができ、除数値が剰余値以下であるときには１に設定される。除数値３２２がいずれも剰余値３２６以下ではないため、図３Ｃのマスク３２８は、全て０に設定される。例えば、除数値３２２−５（例えば、６）が剰余値３２６−５（例えば、１）よりも大きいため、マスク３２８−５のメモリセルは０に設定される。
【００９０】
図３Ｄは、除算演算の実行に関連した特定のフェーズにおける（例えば、図３Ｃに示したものに続くフェーズにおける）アレイ部３３０のセルの状態を示す論理図である。
【００９１】
図３Ｄでは、０に等しい値を有するマスク３２８に関連する商の値３２４の論理表現（例えば、ビットベクトル）が、商の値を更新するためにシフトされる。すなわち、除数値３２２が剰余値３２６よりも大きいため、商の値３２４の論理表現がシフトされる。いくつかの実施例では、シフトは、左シフト及び／または下へのシフトとして表すこともできる。シフトは、メモリセルに記憶されたビットを、当該ビットが当初記憶されたメモリセルよりも大きいインデックスに関連した異なるメモリセルにコピーすることを含むことができる。例えば、センス線３０５−０及び選択線３０４−８に接続されているメモリセルに記憶されたビット（例えば、０）を、センス線３０５−０及び選択線３０４−９に接続されているメモリセルにコピーするときにシフトが行われる。上記の実施例では、センス線３０５−０及び選択線３０４−８に接続されているメモリセルは、１に等しいインデックスに関連付けられている。このインデックスは、センス線３０５−０及び選択線３０４−９に接続されているメモリセルに関連付けられた、２に等しいインデックスよりも小さい。
【００９２】
図３Ｅは、除算演算の実行に関連した特定のフェーズにおける（例えば、図３Ｄに示したものに続くフェーズにおける）アレイ部３３０のセルの状態を示す論理図である。
【００９３】
図３Ｅでは、全てのマスク３２８が０に等しい値を有するため、（剰余値３２４を更新するために）全ての剰余値３２４の論理表現が同様にシフトされる。例えば、センス線３０５−４及び選択線３０４−１２〜３０４−１５に接続されたメモリセルに記憶されたビットは、センス線３０５−４及び選択線３０４−１３〜３０４−１６に接続されたメモリセルにシフトされる。センス線３０５−４及び選択線３０４−１２に接続されたメモリセルに記憶されたビットは、センス線３０５−４及び選択線３０４−１３に接続されたメモリセルにシフトされる（例えば、コピーされる）。センス線３０５−４及び選択線３０４−１２に接続されたメモリセルは、当該メモリセルに記憶されたビットを０に等しく設定することによって空にされる。（例えば、ビットベクトル［０００１］からビットベクトル［００１０］に）シフトすることにより、剰余値３２６−４及び３２６−５が更新されて、２（ｔｗｏ）の値を有するようになる。
【００９４】
この状態が、除算演算の第１反復の終わりである。除算演算の第２反復（図３Ａ〜３Ｋには図示せず）は、センス線３０５−０〜センス線３０５−５及び選択線３０４−２に接続されているメモリセルに記憶されたビットを、センス線３０５−０〜センス線３０５−５及び選択線３０４−１２に接続されているメモリセルにコピーすることを含む。この第２反復は、マスクを再作成することを含むこともできる。第２反復は、マスクが１または０に等しい値を有するかどうかを判定することを含むことができる。第２反復は、マスクが１に等しい値を有すると判定された場合、剰余値から除数値を引くこと、及びその結果の論理表現を剰余値として記憶させることを含む。マスクが１（ｏｎｅ）に等しい値を有する場合、商の値の論理表現（ビットベクトル）がシフトされ、１（ｏｎｅ）だけインクリメントされて、商の値が更新される。マスクが１（ｏｎｅ）に等しい値を有する場合、かつ、センス線３０５−０〜センス線３０５−５及び選択線３０４−２に接続されているメモリセルが第１インデックスを有しない場合、上記の減算演算の結果に対する論理表現をシフトして剰余値を更新する。
【００９５】
図３Ｆは、除算演算の実行に関連した特定のフェーズにおける（例えば、図３Ｅに示したものに続くフェーズにおける）アレイ部３３０のセルの状態を示す論理図である。
【００９６】
図３Ｆでは、被除数値３２０を表すビットベクトルの第１インデックスに関連付けられたメモリセルに記憶されたビットを、剰余値３２６を表すビットベクトルの第１インデックスに関連付けられたメモリセルにコピーする。例えば、センス線３２０−０〜センス線３２０−５及び選択線３０４−０に接続されたメモリセルに記憶されたビットを、センス線３２０−０〜センス線３２０−５及び選択線３０４−１２に接続されたメモリセルにコピーする。
【００９７】
図３Ｇは、除算演算の実行に関連した特定のフェーズにおける（例えば、図３Ｆに示したものに続くフェーズにおける）アレイ部３３０のセルの状態を示す論理図である。
【００９８】
図３Ｇでは、マスク３２８が再作成されている。例えば、除数値３２２−０（例えば、４）が剰余値３２６−０（例えば、５）未満であるため、マスク３２８−０は１に等しい。除数値３２２−３（例えば、３）が剰余値３２６−６（例えば、０）よりも大きいので、マスク３２８−３は０に等しい。
【００９９】
図３Ｈは、除算演算の実行に関連した特定のフェーズにおける（例えば、図３Ｇに示したものに続くフェーズにおける）アレイ部３３０のセルの状態を示す論理図である。
【０１００】
図３Ｈでは、関連マスクが１に等しかった剰余値３２６から除数値３２２が引かれている。例えば、除数値３２２−０（例えば、４）は、図３Ｇの剰余値３２６−０（例えば、５）から引かれ、その結果は、図３Ｈに示すように、剰余値３２６−０（例えば、１）を記憶するメモリセルに記憶された。同様に、除数値３２２−４（例えば、５）は、図３Ｇの剰余値３２６−４（例えば、８）から引かれ、この減算結果は、図３Ｈの剰余値３２６−４（例えば、３）を記憶するメモリセルに記憶された。しかしながら、除数値３２２−３及び除数値３２２−５は、剰余値３２６−３及び３２６−５から引かれなかったが、これは、関連マスク３２８−３及びマスク３２８−５が０に等しかったためである。
【０１０１】
図３Ｉは、除算演算の実行に関連した特定のフェーズにおける（例えば、図３Ｈに示したものに続くフェーズにおける）アレイ部３３０のセルの状態を示す論理図である。
【０１０２】
図３Ｉでは、商の値３２４−０、３２４−１、３２４−２及び３２４−４の論理表現がシフトされ、１だけインクリメントされている。これは、対応するマスク３２８−０、３２８−１、３２８−２及び３２４−４が１に等しかったためである。例えば、図３Ｈの商の値３２４−１（例えば、１）を記憶するメモリセルに記憶されたビットが下にシフトされて、この商の値が一時的に２の値に更新される。図３Ｉでは、（例えば、一時的に２の）商の値３２４−１の論理表現が１だけインクリメントされて、図３Ｉの商の値は３に等しい値に更新される。
【０１０３】
図３Ｉでは、剰余値３２６−０、３２６−１、３２６−２、３２６−４の論理表現は、関連マスクの値３２８−０、３２８−１、３２８−２、３２８−４が１に等しくてもシフトされない。これは、図３Ｆにおいてコピーされたこれらのビットが、１に等しいインデックスを有する、センス線３２０−０〜センス線３２０−５及び選択線３０４−０に接続されているメモリセルからコピーされたためである。すなわち、コピーするビットがこれ以上ないため、剰余値３２６−０、３２６−１、３２６−２、３２６−４は、除算演算の最終的な剰余値である。同様に、商の値３２４−０、３２４−１、３２４−２、３２４−４は、除算演算の最終的な商の値である。
【０１０４】
しかしながら、図３Ｊ及び図３Ｋに示すように、０に等しい値を有するマスクに関連する商の値及び剰余値の論理表現はシフトされる。
【０１０５】
図３Ｊは、除算演算の実行に関連した特定のフェーズにおける（例えば、図３Ｉに示したものに続くフェーズにおける）アレイ部３３０のセルの状態を示す論理図である。
【０１０６】
図３Ｊでは、商の値３２４−３、３２４−５の論理表現が左にシフトされる。例えば、図３Ｉの商の値３２４−３、３２４−５は、これらが左にシフトされる前には１に等しい値を有し、これらが左にシフトされた後には２に等しい値を有した。
【０１０７】
図３Ｋは、除算演算の実行に関連した特定のフェーズにおける（例えば、図３Ｊに示したものに続くフェーズにおける）アレイ部３３０のセルの状態を示す論理図である。
【０１０８】
図３Ｋでは、剰余値３２６−３、３２６−５の論理表現が左にシフトされる。例えば、図３Ｊの剰余値３２６−３、３２６−５は、これらが左にシフトされる前には０に等しい値を有し、これらが左にシフトされた後には０に等しい値を有した。このようにシフト操作を行っても、剰余値３２６−３、３２６−５は影響を受けない。これは、これらの剰余値が、このシフト操作の前に０に等しく、結果として、これらの剰余値に０ビットがシフトされても、これらの剰余値は影響を受けないためである。
【０１０９】
［結論］
本開示は、センス線を用いた除算のための装置及び方法を含む。実施例の装置は、センス線及び第１の本数の選択線に接続された第１の数のメモリセルを含むメモリアレイの第１アドレス空間を備える。第１アドレス空間は、被除数値を記憶する。メモリアレイの第２アドレス空間は、センス線及び第２の本数の選択線に接続された第２の数のメモリセルを備える。第２アドレス空間は、除数値を記憶する。メモリアレイの第３アドレス空間は、センス線及び第３の本数の選択線に接続された第３の数のメモリセルを備える。第３アドレス空間は、剰余値を記憶する。検出回路は、被除数値及び除数値を受け取り、被除数値を除数値で割り、除算の剰余結果を第３の数のメモリセルに記憶させるように構成することができる。
【０１１０】
本明細書では特定の実施形態について例示し、図示してきたが、当業者は、図示された特定の実施形態を、同一結果を得るために意図された配置構成で置き換えることができることを理解するであろう。本開示は、本開示の１つ以上の実施形態の適応または変形を包含することを意図したものである。上記の説明は、例示的になされたものであり、限定的になされたものではないことを理解すべきである。上記の実施形態と、本明細書に具体的に記載されていない他の実施形態との組み合わせは、上記の説明を考察すれば当業者にとって明らかとなるであろう。本開示の１つ以上の実施形態の範囲には、上記の構造及び方法を使用する他の適用例が含まれる。従って、本開示の１つ以上の実施形態の範囲は、添付された特許請求の範囲、並びにかかる特許請求の範囲の権利が与えられる均等物の全範囲を参照して定められるべきである。
【０１１１】
前述の詳細な説明では、本開示を簡素化するために、単一の実施形態にいくつかの特徴をまとめている。本開示の方法は、開示された本開示の実施形態が、各請求項に明示的に記載されたものよりも多くの特徴を用いる必要があるという意図を反映したものとして解釈すべきではない。むしろ、以下の特許請求の範囲が反映するように、発明の主題は、単一の開示された実施形態の全ての特徴より少ないところにある。従って、以下の特許請求の範囲は、各請求項が別個の実施形態として独自に存在する状態で、本明細書によって発明を実施するための形態に援用される。
【図２Ｂ】
2017503229.tif 000010
【図２Ｃ−１】
2017503229.tif 000011
【図２Ｃ−２】
2017503229.tif 000012
【図２Ｄ−１】
2017503229.tif 000013
【図２Ｄ−２】
2017503229.tif 000014
【図１】
2017503229.tif 000015
【図２Ａ】
2017503229.tif 000016
【図３Ａ】
2017503229.tif 000017
【図３Ｂ】
2017503229.tif 000018
【図３Ｃ】
2017503229.tif 000019
【図３Ｄ】
2017503229.tif 000020
【図３Ｅ】
2017503229.tif 000021
【図３Ｆ】
2017503229.tif 000022
【図３Ｇ】
2017503229.tif 000023
【図３Ｈ】
2017503229.tif 000024
【図３Ｉ】
2017503229.tif 000025
【図３Ｊ】
2017503229.tif 000026
【図３Ｋ】
2017503229.tif 000027
【手続補正書】
【提出日】平成28年6月14日(2016.6.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
除算演算の実行方法であって、
メモリアレイのセンス線に接続されたＮ個のメモリセルの第１部分に記憶された被除数値の論理表現、及び前記メモリアレイの前記センス線に接続された前記Ｎ個のメモリセルの第２部分に記憶された除数値の論理表現を用いて除算演算を実行すること、
前記除算演算の結果の商の値の論理表現を、前記メモリアレイの前記センス線に接続された前記Ｎ個のメモリセルの第３部分に記憶させること、を含み、
前記除算演算を実行することは、
前記Ｎ個のメモリセルの前記第１部分のＮ番目のメモリセルに記憶されたビットを前記Ｎ個のメモリセルの第４部分の第１メモリセルにコピーすることであって、前記Ｎ個のメモリセルの前記第４部分は、前記除算演算の前記結果の剰余値の論理表現を記憶すること、並びに
前記除数値を前記剰余値と比較すること、を含む方法。
【請求項２】
前記被除数値の前記論理表現を、前記センス線に接続された前記Ｎ個のメモリセルの前記第１部分にビットベクトルとして記憶させることをさらに含み、前記Ｎ個のメモリセルの前記第１部分の各メモリセルは、前記ビットベクトルの各ビットを記憶する、請求項１に記載の方法。
【請求項３】
前記除数値の前記論理表現を、前記センス線に接続された前記Ｎ個のメモリセルの前記第２部分にビットベクトルとして記憶させることをさらに含み、前記Ｎ個のメモリセルの前記第２部分の各メモリセルは、前記ビットベクトルの各ビットを記憶する、請求項１または請求項２に記載の方法。
【請求項４】
前記商の値の前記論理表現を記憶させることは、前記商の値の前記論理表現を、前記センス線に接続された前記Ｎ個のメモリセルの前記第３部分にビットベクトルとして記憶させることを含み、前記Ｎ個のメモリセルの前記第３部分の各メモリセルは、前記ビットベクトルの各ビットを記憶する、請求項１から請求項３のいずれか一項に記載の方法。
【請求項５】
前記除数値が前記剰余値以下である場合、
前記除数値を前記剰余値から引き、得られた値の論理表現を前記剰余値の前記論理表現として前記Ｎ個のメモリセルの前記第４部分に記憶させること、
前記商の値の前記論理表現をシフトし、インクリメントして、前記商の値を更新すること、及び
前記剰余値の前記論理表現をシフトして前記剰余値を更新することをさらに含む、請求項１から請求項４のいずれか一項に記載の方法。
【請求項６】
前記除数値が前記剰余値よりも大きい場合、
前記商の値の前記論理表現をシフトして前記商の値を更新すること、及び
前記剰余値の前記論理表現をシフトして前記剰余値を更新することをさらに含む、請求項５に記載の方法。
【請求項７】
前記Ｎ個のメモリセルの前記第１部分のＮ−１番目のメモリセルに記憶されたビットを前記Ｎ個のメモリセルの前記第４部分の前記第１メモリセルにコピーすること、及び
前記除数値を前記剰余値と比較することをさらに含む、請求項６に記載の方法。
【請求項８】
前記比較に応じたマスクを作成することをさらに含み、前記マスクは、前記除数値が前記剰余値以下であるかどうか、または前記除数値が前記剰余値よりも大きいかどうかを示す、請求項６に記載の方法。
【請求項９】
センス線及び第１の本数の選択線に接続された第１の数のメモリセルを含むメモリアレイの第１アドレス空間であって、被除数値を記憶するように構成されている第１アドレス空間と、
前記センス線及び第２の本数の選択線に接続された第２の数のメモリセルを含む前記メモリアレイの第２アドレス空間であって、除数値を記憶するように構成されている第２アドレス空間と、
前記センス線及び第３の本数の選択線に接続された第３の数のメモリセルを含む前記メモリアレイの第３アドレス空間であって、剰余値を記憶するように構成されている第３アドレス空間と、
前記メモリアレイに接続された制御部であって、
前記被除数値を前記除数値で割る検出回路、並びに
前記剰余値を前記第３アドレス空間に記憶させること
を制御するように構成された制御部と、を備え、
前記検出回路は、前記メモリアレイの前記メモリセルと間隔を置いて形成されたトランジスタを備える、装置。
【請求項１０】
前記センス線に接続された前記第１の数のメモリセルは、前記センス線に接続されたＮ個のメモリセルで構成されており、前記被除数値を前記除数値で割るように制御可能な前記検出回路は、
前記第１の数のメモリセルのＮ番目のメモリセルに記憶されたビットを前記第３の数のメモリセルの第１メモリセルにコピーし、
前記除数値を前記剰余値と比較するように制御可能な前記検出回路からなる、請求項９に記載の装置。
【請求項１１】
前記剰余値を前記第３アドレス空間に記憶させることを制御するように構成されている前記制御部は、
前記除数値が前記剰余値以下である場合、
前記除数値を前記剰余値から引き、得られた値の論理表現を前記第３の数のメモリセルに記憶させ、
前記得られた値の前記論理表現をシフトして前記剰余値を更新する前記検出回路を制御するように構成されている前記制御部からなり、
前記被除数値を前記除数値で割るように制御可能な前記検出回路はさらに、前記メモリアレイの第４アドレス空間に記憶された商の値の論理表現をシフトし、インクリメントするように制御可能な前記検出回路からなる、請求項１０に記載の装置。
【請求項１２】
前記検出回路は、センス線アドレスアクセスを介してデータを転送することなく、前記被除数値を前記除数値で割るように制御可能である、請求項９から請求項１１のいずれか一項に記載の装置。
【請求項１３】
前記検出回路は、前記第１の数のメモリセル、前記第２の数のメモリセル及び前記第３の数のメモリセルと間隔を置いて設けられたトランジスタを含む計算素子を備える、請求項９から請求項１２のいずれか一項に記載の装置。
【請求項１４】
複数の除算演算の実行方法であって、
メモリアレイの複数のセンス線に接続されたメモリセルの複数の第１部分に記憶された複数の被除数値を、前記メモリアレイの前記複数のセンス線に接続された前記メモリセルの複数の第２部分に記憶された複数の除数値で割ることであって、
前記メモリセルの前記複数の第１部分のそれぞれが、前記複数のセンス線の異なるセンス線に接続されており、前記複数の被除数値のそれぞれが、前記複数の第１部分の異なる第１部分に記憶され、
前記メモリセルの前記複数の第２部分のそれぞれが、前記複数のセンス線の異なるセンス線に接続されており、前記複数の除数値のそれぞれが、前記複数の第２部分の異なる第２部分に記憶されること、
前記複数の被除数値を前記複数の除数値で割った結果の複数の商の値を、前記メモリアレイの前記複数のセンス線に接続された前記メモリセルの複数の第３部分に記憶させること、並びに
前記複数の被除数値を前記複数の除数値で割った前記結果の複数の剰余値を、前記メモリアレイの前記複数のセンス線に接続された前記メモリセルの複数の第４部分に記憶させることを含み、
前記複数の除算演算の実行に用いられる複数の計算は、前記複数の除算演算のいずれか１つの実行に用いられる複数の計算と同一であり、
前記複数の除算演算のそれぞれは、前記複数の被除数値の各被除数値を前記複数の除数値の各除数値で割ることを含み、前記複数の除算演算の各除算演算の前記被除数値及び前記除数値は、前記複数のセンス線のうちの同一のセンス線に接続されたメモリセルに記憶され、
複数のセンス線に接続されたメモリセルの前記複数の第１部分のそれぞれは、前記複数のセンス線のうちの１本に接続されたＮ個のメモリセルで構成されており、
前記複数の被除数値を前記複数の除数値で割ることは、前記複数のメモリセルの前記第１部分のＮ番目のメモリセルに記憶された各ビットを前記複数のメモリセルの前記第４部分の第１メモリセルのそれぞれにコピーすることを含み、
前記複数のメモリセルの前記第１部分の前記Ｎ番目のメモリセルに記憶された各ビットをコピーすることに伴う複数の計算は、前記複数の被除数値、前記複数の除数値、及び前記複数の剰余値の大きさによらず変わらない、方法。
【請求項１５】
センス線及び第１の本数の選択線に接続された第１の数のメモリセルを含むメモリアレイの第１アドレス空間であって、被除数値を記憶するように構成されている第１アドレス空間と、
前記センス線及び第２の本数の選択線に接続された第２の数のメモリセルを含む前記メモリアレイの第２アドレス空間であって、除数値を記憶するように構成されている第２アドレス空間と、
前記センス線及び第３の本数の選択線に接続された第３の数のメモリセルを含む前記メモリアレイの第３アドレス空間であって、剰余値を記憶するように構成されている第３アドレス空間と、
前記メモリアレイに接続された制御部であって、
前記被除数値を前記除数値で割る検出回路、並びに
前記剰余値を前記第３アドレス空間に記憶させること
を制御するように構成された制御部と、を備え、
前記センス線に接続された前記第１の数のメモリセルは、前記センス線に接続されたＮ個のメモリセルで構成されており、
前記被除数値を前記除数値で割るように制御可能な前記検出回路は、
前記第１の数のメモリセルのＮ番目のメモリセルに記憶されたビットを前記第３の数のメモリセルの第１メモリセルにコピーし、
前記除数値を前記剰余値と比較するように制御可能な前記検出回路からなる、装置。
【請求項１６】
センス線及び第１の本数の選択線に接続された第１の数のメモリセルを含むメモリアレイの第１アドレス空間であって、被除数値を記憶するように構成されている第１アドレス空間と、
前記センス線及び第２の本数の選択線に接続された第２の数のメモリセルを含む前記メモリアレイの第２アドレス空間であって、除数値を記憶するように構成されている第２アドレス空間と、
前記センス線及び第３の本数の選択線に接続された第３の数のメモリセルを含む前記メモリアレイの第３アドレス空間であって、剰余値を記憶するように構成されている第３アドレス空間と、
前記メモリアレイに接続された制御部であって、
前記被除数値を前記除数値で割るように構成された検出回路、並びに
前記剰余値を前記第３アドレス空間に記憶させること
を制御するように構成された制御部と、を備え、
前記検出回路は、センス線アドレスアクセスを介してデータを転送することなく、前記被除数値を前記除数値で割るように構成されている、装置。
【請求項１７】
センス線及び第１の本数の選択線に接続された第１の数のメモリセルを含むメモリアレイの第１アドレス空間であって、被除数値を記憶するように構成されている第１アドレス空間と、
前記センス線及び第２の本数の選択線に接続された第２の数のメモリセルを含む前記メモリアレイの第２アドレス空間であって、除数値を記憶するように構成されている第２アドレス空間と、
前記センス線及び第３の本数の選択線に接続された第３の数のメモリセルを含む前記メモリアレイの第３アドレス空間であって、剰余値を記憶するように構成されている第３アドレス空間と、
前記メモリアレイに接続された制御部であって、
前記被除数値を前記除数値で割るように構成された検出回路、並びに
前記剰余値を前記第３アドレス空間に記憶させること
を制御するように構成された制御部と、を備え、
前記検出回路は、前記第１の数のメモリセル、前記第２の数のメモリセル及び前記第３の数のメモリセルと間隔を置いて設けられたトランジスタを含む計算素子を備える、装置。
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2017503229.tif 000028
【図２Ａ】
2017503229.tif 000029
【図２Ｂ】
2017503229.tif 000030
【図２Ｃ−１】
2017503229.tif 000031
【図２Ｃ−２】
2017503229.tif 000032
【図２Ｄ−１】
2017503229.tif 000033
【図２Ｄ−２】
2017503229.tif 000034
【図３Ａ】
2017503229.tif 000035
【図３Ｂ】
2017503229.tif 000036
【図３Ｃ】
2017503229.tif 000037
【図３Ｄ】
2017503229.tif 000038
【図３Ｅ】
2017503229.tif 000039
【図３Ｆ】
2017503229.tif 000040
【図３Ｇ】
2017503229.tif 000041
【図３Ｈ】
2017503229.tif 000042
【図３Ｉ】
2017503229.tif 000043
【図３Ｊ】
2017503229.tif 000044
【図３Ｋ】
2017503229.tif 000045
【国際調査報告】
2017503229.tif 000046
2017503229.tif 000047
2017503229.tif 000048