(57)【特許請求の範囲】
【請求項１】
直列に接続されている複数のメモリデバイスの１つに書き込みコマンドを動作させる方法であって、
前記メモリデバイスの第１のポートと関連する第１のＩＤ番号および前記メモリデバイスの第２のポートと関連する第２のＩＤ番号を、各前記メモリデバイスに記憶するステップと、
１つの前記メモリデバイスにより、前記第１のポートおよび前記第２のポートの少なくとも１つを介して、第１のコマンドＩＤ番号を有し、書き込みデータを伴う、書き込みコマンドを受け取るステップと、
前記書き込みコマンドが前記第１のポートで受け取られ、前記第１のコマンドＩＤ番号が前記第１のＩＤ番号と等しいときに、前記書き込みデータを前記１つのメモリデバイスのメモリアレイに書き込むステップと、
前記書き込みコマンドが前記第１のポートで受け取られ、前記第１のコマンドＩＤ番号が前記第１のＩＤ番号と等しくないときに、前記書き込みコマンドを実行せずに前記１つのメモリデバイスから前記第２のポートを介して送るステップと、
前記書き込みコマンドが前記第２のポートで受け取られ、前記第１のコマンドＩＤ番号が前記第２のＩＤ番号と等しいときに、前記書き込みデータを前記１つのメモリデバイスの前記メモリアレイに書き込むステップと、
前記書き込みコマンドが前記第２のポートで受け取られ、前記第１のコマンドＩＤ番号が前記第２のＩＤ番号と等しくないときに、前記書き込みコマンドを実行せずに前記１つのメモリデバイスから前記第１のポートを介して送るステップと、
を含む、方法。
【請求項２】
前記書き込みデータを前記１つのメモリデバイスの前記メモリアレイに書き込む前記ステップは、
前記１つのメモリデバイスのバッファへ前記書き込みデータを書き込むステップと、
前記バッファから前記メモリアレイへ前記書き込みデータを書き込むステップと、
を含む、請求項１に記載の方法。
【請求項３】
前記書き込みデータを前記１つのメモリデバイスの前記メモリアレイに書き込む前記ステップは、
前記メモリデバイスの前記第１のポートで前記書き込みデータの第１の部分を受け取るステップと、
前記メモリアレイの第１の部分へ、前記書き込みデータの前記第１の部分を書き込むステップと、
前記メモリデバイスの前記第２のポートで前記書き込みデータの第２の部分を受け取るステップと、
前記メモリアレイの第２の部分へ、前記書き込みデータの前記第２の部分を書き込むステップと、
を含む、請求項１に記載の方法。
【請求項４】
前記１つのメモリデバイスにより、前記第１のポート及び前記第２のポートの他方のポートを介して、第２のコマンドＩＤ番号を有する読み取りコマンドを受け取るステップと、
前記第２のコマンドＩＤ番号が前記第１のＩＤ番号と等しく、前記第１のポートで前記読み取りコマンドが受け取られたとき、前記１つのメモリデバイスの前記第１のポートから前記読み取りデータを出力するステップと、
前記第２のコマンドＩＤ番号が前記第２のＩＤ番号と等しく、前記第２のポートで前記読み取りコマンドが受け取られたとき、前記１つのメモリデバイスの前記第２のポートから前記読み取りデータを出力するステップと、
をさらに含む、請求項１に記載の方法。
【請求項５】
前記読み取りデータを出力する前記ステップは、
前記１つのメモリデバイスのバッファから前記読み取りデータを送るステップを含む、請求項４に記載の方法。
【請求項６】
前記読み取りデータを出力する前記ステップは、
前記１つのメモリデバイスの前記メモリアレイから前記読み取りデータを送るステップを含む、請求項５に記載の方法。
【請求項７】
前記読み取りデータを出力する前記ステップは、
前記１つのメモリデバイスの前記メモリアレイから前記読み取りデータを送るステップを含む、請求項４に記載の方法。
【請求項８】
前記第１のコマンドＩＤ番号と前記第２のコマンドＩＤ番号のそれぞれが、前記１つのメモリデバイスの前記第１のＩＤ番号と前記第２のＩＤ番号に相当するとき、前記メモリアレイに前記書き込みデータを書き込み、同時に前記メモリアレイから前記読み取りデータを送るステップと、
をさらに含む、請求項６に記載の方法。
【請求項９】
前記第１のコマンドＩＤ番号と前記第２のコマンドＩＤ番号のそれぞれが、前記１つのメモリデバイスの前記第１のＩＤ番号と前記第２のＩＤ番号に相当するとき、前記メモリアレイに前記書き込みデータを書き込み、同時に前記メモリアレイから前記読み取りデータを送るステップと、
をさらに含む、請求項７に記載の方法。
【請求項１０】
直列に接続されている複数のメモリデバイスの１つに読み取りコマンドを動作させる方法であって、
前記メモリデバイスの第１のポートで受け取られた第１のＩＤ番号および前記メモリデバイスの第２のポートと関連する第２のＩＤ番号を、各前記メモリデバイスに記憶するステップと、
１つの前記メモリデバイスにより、前記第１のポートおよび前記第２のポートの少なくとも１つを介して、第１のコマンドＩＤ番号を有する読み取りコマンドを受け取るステップと、
前記読み取りコマンドが前記第１のポートで受け取られ、前記第１のコマンドＩＤ番号が前記第１のＩＤ番号と等しいときに、読み取りデータを前記１つのメモリデバイスから出力するステップと、
前記読み取りコマンドが前記第１のポートで受け取られ、前記第１のコマンドＩＤ番号が前記第１のＩＤ番号と等しくないときに、前記読み取りコマンドを実行せずに前記１つのメモリデバイスから前記第２のポートを介して送るステップと、
前記読み取りコマンドが前記第２のポートで受け取られ、前記第１のコマンドＩＤ番号が前記第２のＩＤ番号と等しいときに、前記読み取りデータを前記１つのメモリデバイスから出力するステップと、
前記読み取りコマンドが前記第２のポートで受け取られ、前記第１のコマンドＩＤ番号が前記第２のＩＤ番号と等しくないときに、前記読み取りコマンドを実行せずに前記１つのメモリデバイスから前記第１のポートを介して送るステップと、
を含む方法。
【請求項１１】
前記読み取りデータを出力するステップは、
前記１つのメモリデバイスのバッファから前記読み取りデータを読み取るステップと、
前記１つのメモリデバイスから前記読み取りデータを出力するステップと、
を含む、請求項１０に記載の方法。
【請求項１２】
前記１つのメモリデバイスのバッファから前記読み取りデータを読み取るステップは、前記１つのメモリデバイスのメモリアレイから前記バッファへ前記読み取りデータを送るステップを含む、
請求項１１に記載の方法。
【請求項１３】
前記１つのメモリデバイスから前記読み取りデータを出力するステップは、
前記１つのメモリデバイスから前記第１のポートを介して、前記読み取りデータの第１の部分を出力するステップと、
前記１つのメモリデバイスから前記第２のポートを介して、前記読み取りデータの第２の部分を出力するステップと、
を含む、請求項１０に記載の方法。
【請求項１４】
前記１つのメモリデバイスから前記読み取りデータを出力するステップは、
前記第１の部分と前記第２の部分の１つを、前記第１のＩＤ番号と前記第２のＩＤ番号との差と等しいクロックサイクルの数だけ遅延させるステップを含む、請求項１３に記載の方法。
【請求項１５】
前記１つのメモリデバイスにより、前記第１のポート及び前記第２のポートの他方のポートを介して、第２のコマンドＩＤ番号を有し、書き込みデータを伴う、書き込みコマンドを受け取るステップと、
前記第２のコマンドＩＤ番号が前記第１のＩＤ番号と等しく、前記第１のポートで前記書き込みコマンドが受け取られたとき、前記１つのメモリデバイスのメモリアレイへ前記書き込みデータを書き込むステップと、
前記第２のコマンドＩＤ番号が前記第２のＩＤ番号と等しく、前記第２のポートで前記書き込みコマンドが受け取られたとき、前記１つのメモリデバイスの前記メモリアレイへ前記書き込みデータを書き込むステップと、
をさらに含む、請求項１０に記載の方法。
【請求項１６】
前記１つのメモリデバイスにより、前記第１のポート及び前記第２のポートの他方のポートを介して、第２のコマンドＩＤ番号を有し、書き込みデータを伴う、書き込みコマンドを受け取るステップと、
前記第２のコマンドＩＤ番号が前記第１のＩＤ番号と等しく、前記第１のポートで前記書き込みコマンドが受け取られたとき、前記１つのメモリデバイスのメモリアレイへ前記書き込みデータを書き込むステップと、
前記第２のコマンドＩＤ番号が前記第２のＩＤ番号と等しく、前記第２のポートで前記書き込みコマンドが受け取られたとき、前記１つのメモリデバイスの前記メモリアレイへ前記書き込みデータを書き込むステップと、をさらに含み、
前記第１のコマンドＩＤ番号と前記第２のコマンドＩＤ番号の両方が、前記１つのメモリデバイスの前記第１のＩＤ番号と前記第２のＩＤ番号の１つにそれぞれ相当するとき、前記メモリアレイに前記書き込みデータを書き込むステップと、前記メモリアレイから前記読み取りデータを送るステップとが、同時に行われる、
請求項１２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、メモリインターフェイスに関する。より詳細には、本発明は、ループチェーン接続されたメモリにおける双方向通信を提供する高速インターフェイス（interface、接続装置）に関する。
【背景技術】
【０００２】
メモリデバイスはデータを記憶するのに使用される。高帯域幅を有する大容量のメモリシステムの需要が近年高まっている。大容量のメモリシステムでは、複数のデバイスが共通のバスを共有し得る。例えば、データバスまたはクロック信号は、単一のバス、または導体素子のセットを共有し得る。このバス共有は、各デバイスの容量性負荷の増大を引き起こす。負荷の増大は信号品質ならびに信号の切り替え速度を低下させ、ひいては、より低速のクロック制御が必要になり、結果的に帯域幅が低減されることになる。
【０００３】
デイジーチェーン（縦続接続、数珠繋ぎ）相互接続１００が図１に示されており、ループチェーン相互接続２００が図２に示されており、メモリデバイスは、バスにかかる容量性負荷を低減するために直列に接続されている。しかし、各メモリデバイスは、データを書き込み、または読み取るのに、フルチャネルではなくチャネルの半分だけを使用する。というのは、書き込みコマンドまたは読み取りコマンドが発行されるときにデータが一方向にのみ流れるからである。
【０００４】
関連出願の相互参照
本出願は、その全体が参照により本明細書に組み込まれる、２０１０年５月３１日に出願された同時係属の米国仮特許出願第６１／３４９９４３号および２０１１年１月２４日に出願された米国特許出願第１３／０１２７５４号の優先権を主張する実用特許出願である。
【発明の概要】
【課題を解決するための手段】
【０００５】
一態様において、本発明は、デバイスにおいてデバイスの第１のポートで受け取られる第１のＩＤ番号およびデバイスの第２のポートで受け取られる第２のＩＤ番号を記憶するステップを含む、複数のデバイスを動作させるための方法を特徴とする。デバイスは、第１および第２のポートの少なくとも１つを介してデータコマンドを受け取る。データコマンドはコマンドＩＤ番号を有する。デバイスは、データコマンドが第１のポートで受け取られるときにコマンドＩＤ番号の少なくとも１つが第１のＩＤ番号と等しく、データコマンドが第２のポートで受け取られるときにコマンドＩＤ番号が第２のＩＤ番号と等しいときにデータコマンドを実行する。
【０００６】
別の態様において、本発明は、第１のポート、第２のポートおよびデバイスリソースと通信するコマンド状態マシン(state machine)を備える高速インターフェイスデバイスを特徴とする。コマンド状態マシンは、第１のポートで受け取られる第１のデータコマンドおよび第２のポートで受け取られる第２のデータコマンドの少なくとも１つに応答して、これらの間のデータフローを制御する。第１のポートは、データレジスタおよびページバッファと通信する第１のデータバッファと、データ・ストローブ・レジスタと通信する第１のデータ・ストローブ・バッファと、コマンド・ストローブ・レジスタと通信する第１のコマンド・ストローブ・バッファとをさらに備える。データバッファおよびコマンド状態マシンは、第１のコマンド・ストローブ・バッファに応答してコマンドを受け取る。第２のポートは、データレジスタおよびページバッファと通信する第２のデータバッファと、データ・ストローブ・レジスタと通信する第２のデータ・ストローブ・バッファと、コマンド・ストローブ・レジスタと通信する第２のコマンド・ストローブ・バッファとをさらに備える。データバッファおよびコマンド状態マシンは、第２のコマンド・ストローブ・バッファに応答してコマンドを受け取る。デバイスリソースはページバッファと通信する。ページバッファは、第１のデータ・ストローブ・バッファおよび第２のデータ・ストローブ・バッファの少なくとも１つに応答してデータを受け取る。
【０００７】
別の態様において、本発明は、第１のコントローラポートおよび第２のコントローラポートを含むコントローラにデイジーチェーン接続された複数のデバイスを備えるデイジーチェーン接続システムを特徴とする。各コントローラポートは、各デバイスにデータおよびコマンドを伝えることができる。各デバイスは、第１のポート、第２のポートおよびデバイスリソースと通信するコマンド状態マシンを備える。コマンド状態マシンは、第１のポートで受け取られる第１のデータコマンドおよび第２のポートで受け取られる第２のデータコマンドの少なくとも１つに応答して、これらの間のデータフローを制御する。第１のポートは、データレジスタおよびページバッファと通信する第１のデータバッファと、データ・ストローブ・レジスタと通信する第１のデータ・ストローブ・バッファと、コマンド・ストローブ・レジスタと通信する第１のコマンド・ストローブ・バッファとをさらに備える。データバッファおよびコマンド状態マシンは、第１のコマンド・ストローブ・バッファに応答してコマンドを受け取る。第２のポートは、データレジスタおよびページバッファと通信する第２のデータバッファと、データ・ストローブ・レジスタと通信する第２のデータ・ストローブ・バッファと、コマンド・ストローブ・レジスタと通信する第２のコマンド・ストローブ・バッファとをさらに備える。データバッファおよびコマンド状態マシンは、第２のコマンド・ストローブ・バッファに応答してコマンドを受け取る。デバイスリソースはページバッファと通信する。ページバッファは、第１のデータ・ストローブ・バッファおよび第２のデータ・ストローブ・バッファの少なくとも１つに応答してデータを受け取る。
【図面の簡単な説明】
【０００８】
本発明の上記その他の利点は、以下の説明を添付の図面と併せて参照することにより、より良く理解することができ、図面において類似の数字は、様々な図における類似の構造要素および特徴を示す。図面は必ずしも縮尺通りであるとは限らず、本発明の原理を説明することに重点が置かれている。
【図１】デイジーチェーン相互接続を有する従来のメモリシステムである。
【図２】ループチェーン相互接続を有する従来のメモリシステムである。
【図３】本発明の一実施形態による双方向ループチェーン相互接続を有するメモリシステムである。
【図４】本発明の一実施形態による、図３に示すメモリデバイスのブロック図である。
【図５Ａ】本発明の一実施形態による、図４に示すデータ入力／出力ブロックのブロック図である。
【図５Ｂ】本発明の一実施形態による、図４に示す制御信号入力／出力ブロックのブロック図である。
【図６Ａ】本発明の一実施形態による、ＳＥＴＩＤコマンドが発行されるときの信号の方向を示す概略図である。
【図６Ｂ】本発明の一実施形態による、ＳＥＴＩＤコマンドが発行されるときの信号の方向を示す概略図である。
【図６Ｃ】本発明の一実施形態による、ＷＲＩＴＥコマンドが発行されるときの信号の方向を示す概略図である。
【図６Ｄ】本発明の一実施形態による、ＷＲＩＴＥコマンドが発行されるときの信号の方向を示す概略図である。
【図６Ｅ】本発明の一実施形態による、ＲＥＡＤコマンドが発行されるときの信号の方向を示す概略図である。
【図６Ｆ】本発明の一実施形態による、ＲＥＡＤコマンドが発行されるときの信号の方向を示す概略図である。
【図７Ａ】本発明の一実施形態による、メモリデバイスによって実行される方法の流れ図である。
【図７Ｂ】本発明の一実施形態による、メモリデバイスによって実行される方法の流れ図である。
【図７Ｃ】本発明の一実施形態による、メモリデバイスによって実行される方法の流れ図である。
【図７Ｄ】本発明の一実施形態による、メモリデバイスによって実行される方法の流れ図である。
【図７Ｅ】本発明の一実施形態による、メモリデバイスによって実行される方法の流れ図である。
【図７Ｆ】本発明の一実施形態による、メモリデバイスによって実行される方法の流れ図である。
【図７Ｇ】本発明の一実施形態による、メモリデバイスによって実行される方法の流れ図である。
【図８Ａ】本発明の一実施形態による、メモリデバイスによって実行される方法のタイミング図である。
【図８Ｂ】本発明の一実施形態による、メモリデバイスによって実行される方法のタイミング図である。
【図８Ｃ】本発明の一実施形態による、メモリデバイスによって実行される方法のタイミング図である。
【図８Ｄ】本発明の一実施形態による、メモリデバイスによって実行される方法のタイミング図である。
【図９Ａ】本発明の一実施形態による、同時のＲＥＡＤ動作およびＷＲＩＴＥ動作についての信号の方向を示す概略図である。
【図９Ｂ】本発明の一実施形態による、同時のＲＥＡＤ動作およびＷＲＩＴＥ動作についての信号の方向を示す概略図である。
【図９Ｃ】本発明の一実施形態による、同時のＷＲＩＴＥ動作についての信号の方向を示す概略図である。
【図９Ｄ】本発明の一実施形態による、同時のＲＥＡＤ動作についての信号の方向を示す概略図である。
【図９Ｅ】図９Ａから図９Ｄの実施形態に示すメモリデバイスのブロック図である。
【図１０Ａ】本発明の一実施形態による信号の方向を示す概略図である。
【図１０Ｂ】図１０Ａの実施形態に示すメモリデバイスのブロック図である。
【発明を実施するための形態】
【０００９】
本発明の実施形態は、書き込みおよび読み取りを含む動作についての通信帯域幅を最適化するための、メモリコントローラと複数のデバイスとの間の双方向ループチェーン接続を提供する。各デバイスによって共有される信号にかかる容量性負荷を低減すれば、信号スルーレートが改善され、よって、より高速なシステムクロック速度および帯域幅が提供される。通信帯域幅は、ループチェーン構成において複数の既存の通信路上で情報を送信することによって改善される。ループチェーンとは、同じ機能ブロック、例えば図３に示すメモリコントローラ３１０などにおいて開始し、終了するデイジーチェーンである。
【００１０】
一例では、複数の経路上の通信が並行して行われる。別の例では、ある経路上の通信は、別の経路上の通信と時間的にオーバーラップする。様々な図および用途で示すループチェーン接続は、各デバイスを出入りする２つの通信ポートを示している。各デバイスは、任意の数のポートを有することができるものと想定される。例えば二次元配列は、４ポートすべてでデバイスとの通信をオーバーラップさせることを可能にする４つのポートを有するはずである。別の例では、三次元配列は、６ポートすべてでデバイスとの通信をオーバーラップさせることを可能にする、各デバイスへの６つのポートを有するはずである。
【００１１】
様々な図および用途で示すデバイスは、メモリデバイスを示している。各デバイスは、例えば、画像センシング、レーダビーム形成、音響システムなどに使用される変換器デバイスとすることもできると考えられる。またデバイスは、メッシュ通信ネットワークにおいて使用されるトランシーバデバイスとすることもできるはずである。
【００１２】
図３に、本発明の一実施形態によるメモリシステム３００を示す。メモリコントローラ３１０が、複数のメモリデバイス３２０、３２１、３２ｉ、３２ｉ＋１、３２ｎ−１、および３２ｎの全般的制御を提供する。制御信号およびデータ信号が、コントローラと各メモリデバイスとの間において双方向で伝えられる。例えば、図３では、コマンドストローブＣＳ０、データストローブＤＳ０、およびデータ信号ＤＡＴＡ０が、コントローラ３１０とメモリデバイス３２０の１つのポートとの間で伝えられる。コマンドストローブＣＳ１、データストローブＤＳ１、およびデータ信号ＤＡＴＡ１が、メモリデバイス３２０とデイジーチェーン内の次のメモリデバイス３２１との間で伝えられる。データ信号の幅は、それだけに限らないが、４、８、１６といった任意の実行可能な幅である。メモリコントローラ３１０はクロック信号ＣＬＫを各デバイスに提供する。
【００１３】
図４に、図３に示すメモリデバイス３２０の１つのブロック図を示す。各メモリデバイスは、対応する信号を受け取り、提供するための双方向バッファＤＡＴＡＬ４１０、ＤＡＴＡＲ４１１、ＤＳＬ４２０、ＣＳＬ４２１、ＤＳＲ４２２、およびＣＳＲ４２３を含む。状態マシン４３０がＣＬＫ信号を受け取り、双方向バッファ４１０、４１１、４２０、４２１、４２２、４２３と、内部レジスタ４４０、４４１、４４２、４４３、４４４、および４４５とに制御信号を提供する。ページバッファ４６０および４６１は、メモリアレイ４７０へのデータ書き込み動作および読み取り動作のための一時的なデータ記憶を提供する。メモリデバイス３２０が変換器やトランシーバといった別のデバイスの代わりに使用される別の実施形態では、メモリアレイ４７０はデバイスリソースである。例えば、デバイスが変換器デバイスであるとき、デバイスリソースは、電気信号（電圧など）と圧力との間で変換を行う変換器である。デバイスがトランシーバデバイスであるとき、デバイスリソースは、無線周波数放射と電気信号（電圧など）との間での変換を行うトランシーバである。
【００１４】
メモリデバイス３２０は、デバイスＩＤ番号を有するＷＲＩＴＥコマンドを、ＣＳＬ４２１、ＤＳＬ４２０、およびＤＡＴＡＬ４１０のポートと、ＣＳＲ４２３、ＤＳＲ４２２、およびＤＡＴＡＲ４１１のポートの両方から受け取ることができる。受け取られたデバイスＩＤ番号がメモリデバイス３２０に登録されたデバイスＩＤ番号と同じである場合には、メモリデバイス３２０は、入力データをページバッファ４６０および４６１に書き込む。受け取られたデバイスＩＤ番号がメモリデバイス３２０に登録されたデバイスＩＤ番号と異なる場合には、メモリデバイス３２０は、ＤＡＴＡＬ４１０からＤＡＴＡＲ４１１へ、またはＤＡＴＡＲ４１１からＤＡＴＡＬ４１０へデータを渡す。
【００１５】
またメモリデバイス３２０は、デバイスＩＤ番号を有するＲＥＡＤコマンドを、ＣＳＬ４２１、ＤＳＬ４２０、およびＤＡＴＡＬ４１０のポートと、ＣＳＲ４２３、ＤＳＲ４２２、およびＤＡＴＡＲ４１１のポートの両方から受け取ることもできる。受け取られたデバイスＩＤ番号がメモリデバイス３２０に登録されたデバイスＩＤ番号と同じである場合には、メモリデバイス３２０は、ページバッファ４６０および４６１からＤＡＴＡＬ４１０およびＤＡＴＡＲ４１１へ読み出しを行う。受け取られたデバイスＩＤ番号がメモリデバイス３２０に登録されたデバイスＩＤ番号と異なる場合には、メモリデバイス３２０は、ＤＡＴＡＬ４１０からＤＡＴＡＲ４１１へ、またはＤＡＴＡＲ４１１からＤＡＴＡＬ４１０へデータを渡す。
【００１６】
図５Ａは、図４に示すＤＡＴＡＬ入力／出力ブロック４１０のブロック図である。３状態バッファ５１０および５２０が、状態マシン４３０およびインバータ５５０によって制御される。マルチプレクサ５３０が、ＤＡＴＡＬ４１０へ出力するために、レジスタ４４５またはバッファ４６０からデータを選択する。デマルチプレクサ５４０が、ＤＡＴＡＬ４１０から、状態マシン４３０、レジスタ４４４またはバッファ４６０へ入力データを提供する。ＤＡＴＡＲブロック４１１は同様の構造を有し、ＤＡＴＡＬブロック４１０と同様に作動することを当業者は理解するであろう。
【００１７】
図５Ｂは、図４に示すＤＳＬ入力／出力ブロック４２０のブロック図である。３状態バッファ５１１および５２１が、状態マシン４３０およびインバータ５５１によって制御される。マルチプレクサ５３１が、状態マシン４３０またはレジスタ４４２からの出力を選択する。デマルチプレクサが、ＤＳＬから状態マシン４３０またはレジスタ４４２へデータを提供する。ＣＳＬ４２１、ＤＳＲ４２２、およびＣＳＲ４２３の各ブロックは、同様の構造を有し、ＤＳＬブロック４２０と同様に作動することを当業者は理解するであろう。
【００１８】
図６Ａおよび図６Ｂに、ＳＥＴＩＤコマンドが発行されるときのコマンドストローブ信号、データストローブ信号、およびデータ信号の方向を示す。なお、コントローラ３１０と各メモリデバイス３２０、３２１、３２ｉ、３２ｉ＋１、３１ｎ−１および３２ｎとの間で、信号方向は、すべて時計周りであり（図６Ａ）、またはすべて反時計回りである（図６Ｂ）。
【００１９】
図６Ｃおよび図６Ｄに、ＷＲＩＴＥコマンドが発行されるときの信号の方向を示す。なお、信号方向は、図６Ｃではコントローラ３１０から第１のメモリデバイス３２０の方へ向かい、図６Ｄではコントローラ３１０から最後のメモリデバイス３２ｎの方へ向かう。
【００２０】
図６Ｅおよび図６Ｆに、ＲＥＡＤコマンドが発行されるときの信号の方向を示す。なお、信号方向は、図６Ｅでは第１のメモリデバイス３２０からコントローラ３１０の方へ向かい、図６Ｆでは最後のメモリデバイス３２ｎからコントローラ３１０の方へ向かう。
【００２１】
図７Ａおよび図７Ｂは、図６Ａおよび図６Ｂに示すＳＥＴＩＤコマンドについての流れ図である。ステップ７００で、コントローラ３１０は、コントローラ３１０が書き込みまたは読み取りを行う相手の、図６Ａに示すループチェーン内のデバイスに対応するデバイスＩＤを割り当てる。ステップ７００で、コントローラ３１０は、コントローラ３１０が書き込みまたは読み取りを行う相手の、図６Ｂに示すループチェーン内のデバイスに対応する逆回りのデバイスＩＤを割り当てる。一実施形態では、デバイスＩＤと逆回りのデバイスＩＤとがループチェーン内の同じデバイスを指す場合には、ＷＲＩＴＥコマンドは、分割トランザクションにおいて、ワードの半分をデバイスの一方のポートに書き込み、ワードのもう半分をデバイスの他方のポートに書き込む。別の実施形態では、デバイスＩＤと逆回りのデバイスＩＤとが異なるデバイスを指す場合には、一方のデバイスにはフルワードの書き込みまたは読み取りが行われ、第２のデバイスには異なるフルワードの書き込みまたは読み取りが行われる。ステップ７００で、コントローラ３１０は、待ち時間変数Ｚおよび待ち時間制御フラグＬを割り当てる。待ち時間制御フラグが有効である場合には、前述の分割トランザクションは、ワードの両半分が同じクロックサイクルにコントローラ３１０に届くように、読み取られるワードの半分を遅延させる。
【００２２】
ステップ７０１、ステップ７０２、およびステップ７０３で、コントローラ３１０は、図６Ａに示すデバイス、例えばデバイス３２０に、ＳＥＴＩＤコマンドおよびデバイスＩＤを伝える。デバイス３２０は、ＣＳＬストローブがアクティブ化されるときに、ＤＡＴＡＬにおいてＳＥＴＩＤコマンドとデバイスＩＤの両方を受け取る。一実施形態では、ＣＳＬはアクティブであるときｈｉｇｈである。ステップ７１１、ステップ７１２、およびステップ７１３で、コントローラ３１０は、図６Ｂに示すデバイス、例えばデバイス３２０に、ＳＥＴＩＤコマンドおよび逆回りのデバイスＩＤを伝える。デバイス３２０は、ＣＳＲストローブがアクティブ化されるときに、ＤＡＴＡＲにおいてＳＥＴＩＤコマンドと逆回りのデバイスＩＤの両方を受け取る。一実施形態では、ＣＳＲはアクティブであるときｈｉｇｈである。
【００２３】
待ち時間制御フラグが有効（例えばＬ＝１）である場合には、待ち時間変数Ｚに、デバイスＩＤと逆回りのデバイスＩＤとの数値差の絶対値が割り当てられる。例えば、図６Ａでは、デバイス３２０がループチェーン内の６つのデバイスのうちの最初のデバイスであった場合には、デバイスＩＤが１に割り当てられ、逆回りのデバイスＩＤが６に割り当てられ、待ち時間変数は５である。デバイス３２０が分割トランザクションで読み取られるときには、ワードの半分がＤＡＴＡＲから読み取られ５つのデバイスを通過してコントローラ３１０に到達する。ワードのもう半分は、５サイクルの遅延後にＤＡＴＡＬから読み取られ、それによって、ワードの最初の半分と同じサイクルにおいてコントローラ３１０に到達する。待ち時間変数を計算した後で、待ち時間制御フラグが有効である場合、ＳＥＴＩＤコマンドは、デバイスの他方のポート、すなわち、ステップ７０９ではＤＡＴＡＲに、ステップ７１９ではＤＡＴＡＬに送られる。ステップ７１０で、デバイスＩＤは１増分され、図６Ａに示す時計回りで次のデバイスに送られる。同様に、ステップ７２０で、逆回りのデバイスＩＤは１増分され、図６Ｂに示す反時計回りで次のデバイスに送られる。
【００２４】
図７Ｃ、図７Ｄ、および図７Ｅは、ＷＲＩＴＥコマンドについての流れ図である。ステップ７２１およびステップ７２２で、ＷＲＩＴＥコマンドもしくはＲＥＡＤコマンドについてのデータコマンドＩＤがデバイスＩＤと一致しない場合、または同様に、逆回りのコマンドＩＤが逆回りのデバイスＩＤと一致しない場合には、コマンドは、ステップ７２６、ステップ７２７、およびステップ７２８に示すように、そのコマンドがそこから受け取られた他方のポートへ再送される。
【００２５】
ステップ７２３でコマンドがＷＲＩＴＥコマンドであり、コマンドＩＤがデバイスＩＤと一致し、または逆回りのコマンドＩＤが逆回りのデバイスＩＤと一致する場合には、ＷＲＩＴＥコマンドは処理される。デバイスＩＤと逆回りのコマンドＩＤの両方がそれぞれのコマンドＩＤと逆回りのコマンドＩＤと一致する一実施形態では、ＷＲＩＴＥコマンドは、図７Ｅに示すように、分割トランザクションを実行する。図７Ｅでは、図４に示すようにデータバッファ４１０へ受け取られた書き込みデータが、まず、ステップ７３０でページバッファ４６０へ送られる。データバッファ４１１へ受け取られた書き込みデータは、次いで、ステップ７３２で、ページバッファ４６１へ送られる。ページバッファ４６０および４６１のコンテンツは、次いで、ステップ７３６で、メモリアレイ４７０へ送られる。逆に、書き込みデータがまずデータバッファ４１１へ受け取られ、次いで、ステップ７３３で、ページバッファ４６１へ送られる場合には、データバッファ４１０へ受け取られた書き込みデータは、ステップ７３５で、ページバッファ４６０へ送られる。ページバッファ４６０および４６１に含まれる２つのハーフワードは、次いで、ステップ７３６で、メモリアレイ４７０へ送られる。別の実施形態では、ページバッファ４６０および４６１は、同じクロックサイクルにデータバッファ４１０およびデータバッファ４１１からデータを受け取ることができるデュアル・ポート・メモリである。別の実施形態では、メモリアレイ４７０は、データバッファ４１０および４１１と直接やりとりすることのできるマルチポートメモリである。
【００２６】
図７Ｃ、図７Ｄ、図７Ｆ、および図７Ｇは、ＲＥＡＤコマンドについての流れ図である。ステップ７２４でコマンドがＲＥＡＤコマンドであり、コマンドＩＤがデバイスＩＤと一致し、または逆回りのコマンドＩＤが逆回りのデバイスＩＤと一致する場合には、ＲＥＡＤコマンドは図７Ｆおよび図７Ｇに示すように処理される。コマンドＩＤがデバイスＩＤと一致し、または逆回りのコマンドＩＤが逆回りのデバイスＩＤと一致し、コマンドがＲＥＡＤコマンドでもＷＲＩＴＥコマンドでもない場合には、ＯＴＨＥＲコマンドが処理される。一実施形態では、ＯＴＨＥＲコマンドは、ファームウェア構成可能であり、メモリアレイ４７０へのテスト・モード・アクセスを提供する。
【００２７】
ステップ７３７およびステップ７３８で、読み取られるべきデータがページバッファにおいて利用できない場合、データはメモリアレイ４７０からページバッファ４６０および４６１へ送られる。別の実施形態では、読み取られるべきデータは、複数のポートを有するメモリアレイ４７０から直接読み取られる。ステップ７３９で、待ち時間制御フラグが有効でない場合には、ページバッファ４６０からのデータは、デバイスの一方のポートの読み取られるべきデータバッファ４１０へ送られ、ページバッファ４６１からのデータは、デバイスの他方のポートの読み出されるべきデータバッファ４１１へ送られる。
【００２８】
ステップ７３９で、待ち時間制御フラグが有効であり、図６Ｅに示すように、デバイスＩＤ（Ｘ）が逆回りのデバイスＩＤ（Ｙ）より小さい場合には、データは、ページバッファ４６１から、デバイス３２０の読み出されるべきデータバッファ４１１へ送られ、ページバッファ４６０からのデータは、デバイスＩＤと逆回りのデバイスＩＤとの数値差の絶対値と等しい遅延の後で、読み出されるべきデータバッファ４１０へ送られる。これにより、両方のページバッファ４６０および４６１からのデータが確実に同じクロックサイクルにコントローラ３１０に届く。
【００２９】
ステップ７３９で、待ち時間制御フラグが有効であり、デバイスＩＤ（Ｘ）が、図６Ｆに示すように、逆回りのデバイスＩＤ（Ｙ）以上である場合には、データは、ページバッファ４６０から、デバイス３２ｎの読み出されるべきデータバッファ４１０へ送られ、ページバッファ４６１からのデータは、デバイスＩＤと逆回りのデバイスＩＤとの数値差の絶対値と等しい遅延の後で、読み出されるべきデータバッファ４１１へ送られる。これにより、両方のページバッファ４６０および４６１からのデータが確実に同じクロックサイクルにコントローラ３１０に届く。
【００３０】
図８Ａは、図７Ａおよび図７Ｂの流れ図で説明したＳＥＴＩＤコマンドについてのタイミング図である。まず、メモリコントローラ３１０は、ＣＳＵ、ＤＳＵ、およびＤＡＴＡＵにおいて、０とし得るＩＤ番号を有するＣＳＥＴＩＤコマンドを送る。図３のメモリデバイス３２０は、ＩＤ番号を０として登録し、１増分され得るＩＤ番号を有するＳＥＴＩＤコマンドを次のメモリデバイス３２１へ渡す。ＳＥＴＩＤコマンドはその後、各メモリデバイスからループチェーン内の次のメモリデバイスへ渡されてメモリコントローラ３１０に到達し、その結果、メモリデバイス３２０から３２ｎは、それぞれ、０からｎまでの番号を有する登録ＩＤを持つことになる。次いで、メモリコントローラ３１０は、ＣＳＤ、ＤＳＤ、およびＤＡＴＡＤにおいて、０とし得る逆回りのＩＤ番号を有するＳＥＴＩＤコマンドを送る。メモリデバイス３２ｎは、逆回りのＩＤ番号０を登録し、１増分され得る逆回りのＩＤ番号を有するＳＥＴＩＤコマンドを次のメモリデバイス３２ｎ−１へ渡す。ＳＥＴＩＤコマンドはその後、各メモリデバイスからループチェーン内の次のメモリデバイスへ渡されてメモリコントローラ３１０に到達し、その結果、メモリデバイス３２ｎから３２０は、それぞれ、０からｎまでの逆回りの登録ＩＤ番号を持つことになる。２つのＳＥＴＩＤコマンドの発行の後で、各メモリデバイスは、ＩＤ番号および逆回りのＩＤ番号を有し、これらのＩＤ番号は、ループチェーン内のデバイスの数および各デバイスの位置を示す。したがって、各デバイスは、両方のハーフワードが同じクロックサイクルにコントローラ３１０に届くように、一方のポートから、第２のポートにおける他方のハーフワードの伝送に対して遅延されたハーフワードを送ることができる。各デバイスに２つを上回るポート、例えば三次元配列の６つのポートなどが存在するときには、各ポートから読み取られたデータが同じサイクルにコントローラに届くように、様々なデバイスポートが異なる量だけ遅延されることが考えられる。
【００３１】
図８Ｂは、図７Ｃ、図７Ｄ、および図７Ｅの流れ図で説明したＷＲＩＴＥコマンドについてのタイミング図である。メモリコントローラは、ＣＳＵ、ＤＳＵ、およびＤＡＴＡＵにおいて、０とｎとの間とし得るコマンドＩＤ番号の後にデバイスに書き込まれるべきハーフワードが続くものを伴うＷＲＩＴＥコマンドを送る。また、メモリコントローラは、ＣＳＤ、ＤＳＤ、およびＤＡＴＡＤにおいても、同じデバイスに対応する逆回りのコマンドＩＤ番号の後に書き込まれるべきデータのもう半分が続くものを伴うＷＲＩＴＥコマンドを送る。ＷＲＩＴＥコマンドは、コマンドＩＤ番号がデバイスＩＤ番号と一致するまでループチェーンを送られる。また、ＷＲＩＴＥコマンドは、逆回りのコマンドＩＤ番号が逆回りのデバイスＩＤ番号と一致するまで、ループチェーンを逆方向にも送られる。必要以上にＷＲＩＴＥコマンドを伝搬しないことにより、全般的なシステム電力が低減される。別の実施形態では、ＷＲＩＴＥコマンドは、ループチェーン全体を通って伝搬することが可能であり、これによって各デバイスの論理計算量が低減される。コマンドＩＤ番号とデバイスＩＤ番号とが、または逆回りのコマンドＩＤ番号と逆回りのデバイスＩＤ番号とが一致した後で、それぞれのコマンドＩＤ番号が、コマンドストローブをアクティブ化することによりデバイスへ読み込まれ、１つまたは複数のデータが、データストローブをアクティブ化することによりデバイスへ読み込まれる。
【００３２】
図８Ｃおよび図８Ｄに、図７Ｃ、図７Ｄ、図７Ｆ、および図７Ｇの流れ図で説明したＲＥＡＤコマンドについてのタイミング図を示す。一実施形態では、０から［（ｎ＋１）／２］−１までの登録ＩＤ番号を有するデバイスを含む、メモリコントローラのＣＳＵ、ＤＳＵ、およびＤＡＴＡＵに近いメモリデバイスからデータを読み出す間の待ち時間を最小限に抑えるために、メモリコントローラは、ＣＳＵ、ＤＳＵ、およびＤＡＴＡＵにおいて、０から［（ｎ＋１）／２］−１までとし得るＩＤ番号を有するＲＥＡＤコマンドを送る。同様に、（ｎ＋１）／２からｎまでの登録ＩＤ番号を有するデバイスを含む、メモリコントローラのＣＳＤ、ＤＳＤ、およびＤＡＴＡＤに近いメモリデバイスからデータを読み出すために、メモリコントローラは、ＣＳＤ、ＤＳＤ、およびＤＡＴＡＤにおいて、（ｎ＋１）／２からｎまでとし得るＩＤ番号を有するＲＥＡＤコマンドを送る。
【００３３】
別の実施形態では、読み取り帯域幅を最適化するために、コマンドＩＤ番号を有するＲＥＡＤコマンドがＣＳＵ、ＤＳＵ、およびＤＡＴＡＵにおいて送られ、コマンドＩＤ番号とデバイスＩＤ番号とが一致するメモリデバイスに到達するまでメモリデバイスからメモリデバイスへと渡される。また、逆回りのコマンドＩＤ番号を有するＲＥＡＤコマンドも、ＣＳＤ、ＤＳＤ、およびＤＡＴＡＤにおいて発行され、逆回りのコマンドＩＤ番号と逆回りのデバイスＩＤ番号とが一致するメモリデバイスに到達するまでメモリデバイスからメモリデバイスへと渡される。次いでデバイスは、図４に示すように、ページバッファ４６０からＤＡＴＡＬへデータワードの半分を読み出し、ページバッファ４６１からＤＡＴＡＲへデータワードのもう半分を読み出す。
【００３４】
図９Ａおよび図９Ｂに、同時のＲＥＡＤおよびＷＲＩＴＥについての信号の方向を示す。図９Ａでは、メモリコントローラ９１０は、ＣＳＵ、ＤＳＵ、およびＤＡＴＡＵにおいて、０とｎとの間とし得るデバイスＩＤ番号ｉを有するＷＲＩＴＥコマンドを送り、ＣＳＤ、ＤＳＤ、およびＤＡＴＡＤにおいて、ｉとｎの間とし得る逆回りのデバイスＩＤ番号を有するＲＥＡＤコマンドを送る。例えば、メモリコントローラ９１０は、デバイス９２ｎ−１から読み取る間にデバイス９２１に書き込むことができる。図９Ｂでは、メモリコントローラ９１０は、ＣＳＵ、ＤＳＵ、およびＤＡＴＡＵにおいて、０とｎとの間とし得るデバイスＩＤ番号ｉを有するＲＥＡＤコマンドを送り、ＣＳＤ、ＤＳＤ、およびＤＡＴＡＤにおいて、ｉとｎとの間とし得るデバイスＩＤ番号を有するＷＲＩＴＥコマンドを送る。メモリコントローラ９１０は、１つのメモリデバイスまたは２つの異なるメモリデバイスとの間で同時にデータの書き込みおよび読み取りを行う。例えば、メモリコントローラ９１０は、デバイス９２ｎ−１に書き込む間にデバイス９２１から読み取ることができ、あるいはメモリコントローラ９１０は、デバイス９２１の読み取りおよび書き込みを行うこともできるはずである。
【００３５】
図９Ｃに、２つの同時のＷＲＩＴＥコマンドについての信号の方向を示す。メモリコントローラ９１０は、ＣＳＵ、ＤＳＵ、およびＤＡＴＡＵにおいて、０とｎ−１の間とし得るデバイスＩＤ番号ｉを有するＷＲＩＴＥコマンドを送り、ＣＳＤ、ＤＳＤ、およびＤＡＴＡＤにおいて、ｉ＋１とｎとの間とし得る逆回りのデバイスＩＤ番号を有するＷＲＩＴＥコマンドを送る。メモリコントローラ９１０は、２つの異なるメモリデバイスへデータを同時に書き込む。
【００３６】
図９Ｄに、２つの同時のＲＥＡＤコマンドについての信号の方向を示す。メモリコントローラ９１０は、ＣＳＵ、ＤＳＵ、およびＤＡＴＡＵにおいて、０とｎ−１の間とし得るデバイスＩＤ番号ｉを有するＲＥＡＤコマンドを送り、ＣＳＤ、ＤＳＤ、およびＤＡＴＡＤにおいて、ｉ＋１とｎとの間とし得る逆回りのデバイスＩＤ番号を有するＲＥＡＤコマンドを送る。メモリコントローラ９１０は、２つの異なるメモリデバイスからデータを同時に読み取る。
【００３７】
図９Ｅは、同時アクセスについてのメモリデバイス９２０の実施形態のブロック図である。別の実施形態では、ページバッファ９４０および９４１は、１つのデュアル・ポート・メモリである。
【００３８】
図１０Ａに、ソース・シンクロナス・クロックを有するループバックシステムについての信号の方向を示す。図１０Ｂに、図１０Ａに示すソース・シンクロナス・クロックについてのメモリデバイス１０２０のブロック図を示す。図１０Ａでは、メモリコントローラ１０１０はＣＬＫにおいてクロックを送る。メモリデバイス１０２０〜１０２ｎは、ＣＬＫＬｉからＣＬＫＲｏへと、ＣＬＫＲｉからＣＬＫＬｏへクロック（ＣＬＫ）を渡す。メモリコントローラ１０１０は、クロックと同期されたコマンドを送り、それによって、クロックスキューを最小限に抑え、高クロック速度を提供する。
【００３９】
メモリデバイス１０２０〜１０２ｎは、ＣＬＫＬｉと同期されたコマンド・ストローブ・バッファ４２１、データ・ストローブ・バッファ４２０、およびデータバッファ４１０においてコマンドを受け取り、必要な場合には、ＣＬＫＲｏと同期されたコマンド・ストローブ・バッファ４２３、データ・ストローブ・バッファ４２２、およびデータバッファ４１１においてコマンドを送る。
【００４０】
以上本発明を、特定の好ましい実施形態を参照して図示し、説明したが、添付の特許請求の範囲で定義される本発明の趣旨および範囲を逸脱することなく形態および詳細に様々な変更が加えられ得ることを当業者は理解するはずである。
【図１】
0005643896.tif 000002
【図２】
0005643896.tif 000003
【図３】
0005643896.tif 000004
【図４】
0005643896.tif 000005
【図５Ａ】
0005643896.tif 000006
【図５Ｂ】
0005643896.tif 000007
【図６Ａ】
0005643896.tif 000008
【図６Ｂ】
0005643896.tif 000009
【図６Ｃ】
0005643896.tif 000010
【図６Ｄ】
0005643896.tif 000011
【図６Ｅ】
0005643896.tif 000012
【図６Ｆ】
0005643896.tif 000013
【図７Ａ】
0005643896.tif 000014
【図７Ｂ】
0005643896.tif 000015
【図７Ｃ】
0005643896.tif 000016
【図７Ｄ】
0005643896.tif 000017
【図７Ｅ】
0005643896.tif 000018
【図７Ｆ】
0005643896.tif 000019
【図７Ｇ】
0005643896.tif 000020
【図８Ａ】
0005643896.tif 000021
【図８Ｂ】
0005643896.tif 000022
【図８Ｃ】
0005643896.tif 000023
【図８Ｄ】
0005643896.tif 000024
【図９Ａ】
0005643896.tif 000025
【図９Ｂ】
0005643896.tif 000026
【図９Ｃ】
0005643896.tif 000027
【図９Ｄ】
0005643896.tif 000028
【図９Ｅ】
0005643896.tif 000029
【図１０Ａ】
0005643896.tif 000030
【図１０Ｂ】
0005643896.tif 000031