(57)【要約】  システムおよびこのシステムで使用される集積回路チップは、ノード間でデータおよびコマンドを転送するために各コンポーネントのノードを相互接続するためにリング状のバスを利用する。説明されているシステムの例は、１つまたはそれより多い再プログラム可能な不揮発性メモリセルアレイを有するメモリであり、この不揮発性メモリセルアレイがリングバスによって互いに接続され、且つシステムコントローラに接続されている。
2008509499.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードとコントローラとをつなぎ合わせるリングバスにデータを巡回させて転送する方法において、
前記ノードのうちの少なくとも１つを、転送されるデータのソースとして確立し、前記ノードのうちの少なくとも１つの別のノードを、転送されるデータの宛先として確立するために、コマンドを前記リングバスに一定方向に巡回させて前記コントローラから前記ノードへ渡すステップと、
前記少なくとも１つのソースノードに接続されたメモリから前記少なくとも１つのソースノードに設けられた一時データ記憶装置へ転送されるべきデータを読み出すステップと、
その後、前記読み出されたデータを前記リングバスに前記一定方向に巡回させて前記少なくとも１つのソースノードの前記一時データ記憶装置から転送するステップと、
その後、前記少なくとも１つの宛先ノードに設けられた一時データ記憶装置に、前記転送されたデータを書き込むステップと、
その後、前記少なくとも１つの宛先ノードの前記一時データ記憶装置から、前記一時データ記憶装置に接続されたメモリへ、前記転送されたデータを書き込むステップと、
を含む方法。
【請求項２】
請求項１記載の方法において、
前記コマンドを前記リングバスに巡回させて渡すステップが、コマンドを前記コントローラから、前記リングバスに接続されたコントローラノードを通って渡すステップを含む方法。
【請求項３】
請求項２記載の方法において、
前記コントローラ内および前記コントローラノード内に含まれるバッファメモリを通って、ホストへおよびホストからデータを転送するステップをさらに含む方法。
【請求項４】
請求項１記載の方法において、
前記リングバスに接続された別のノードを通って、ホストへおよびホストからデータを転送するステップをさらに含む方法。
【請求項５】
請求項１記載の方法において、
前記コマンドを渡すステップが、前記ノードのうちの少なくとも２つを、転送されるデータのソースとして確立し、前記ノードのうちの少なくとも２つを、転送されるデータの宛先として確立するステップを含み、前記読み出されたデータを転送するステップが、データを前記リングバスに巡回させて少なくとも２つの連続するタイムスロットで前記少なくとも２つのソースノードから転送するステップを含み、前記転送されたデータを書き込むステップが、前記少なくとも２つの連続するタイムスロットとは別のものから前記少なくとも２つの宛先ノードへ、前記転送されるデータを書き込むステップを含む方法。
【請求項６】
請求項５記載の方法において、
前記読み出されたデータを転送するステップが、任意の不使用のタイムスロットの数を減らすために前記少なくとも２つの連続するタイムスロットの数を調節するステップをさらに含む方法。
【請求項７】
請求項５記載の方法において、
前記コマンドを前記リングバスに巡回させて渡すステップが、前記連続するタイムスロットの使用を含まない方法。
【請求項８】
請求項１記載の方法において、
前記読み出されたデータを前記リングバスに巡回させて転送するステップが、前記読み出されたデータを、前記少なくとも１つのソースノードから、前記少なくとも１つのソースノードに戻るまで、前記リングに完全に巡回させて転送するステップをさらに含む方法。
【請求項９】
請求項８記載の方法において、
前記リングを巡回させて完全に転送された後に、前記読み出されたデータの有効性を前記少なくとも１つのソースノードにおいてベリファイするステップをさらに含む方法。
【請求項１０】
請求項９記載の方法において、
前記読み出されたデータの有効性をベリファイするステップが、前記リングに完全に巡回させて転送された後の前記読み出されたデータと、前記リングバスの前記少なくとも１つのソースノードに置かれた前記読み出されたデータとを比較するステップを含む方法。
【請求項１１】
請求項８記載の方法において、
前記リングバス上の記憶位置において誤り訂正技術を用いて前記読み出されたデータをチェックするステップをさらに含む方法。
【請求項１２】
請求項１１記載の方法において、
前記誤り訂正技術を用いて前記読み出されたデータをチェックするステップが、前記コントローラ内で生じる方法。
【請求項１３】
請求項１１記載の方法において、
誤り訂正技術を用いて前記読み出されたデータをチェックするステップが、前記データを、前記少なくとも１つのソースノードおよび前記少なくとも１つの宛先ノードのほかに、ノードを通って前記リングバスに接続された誤り訂正回路に通すステップを含む方法。
【請求項１４】
請求項１記載の方法において、
前記リングバスに前記コマンドが巡回し、前記ノードのうちの少なくとも１つを、転送されるデータのソースとして確立し、前記ノードのうちの少なくとも１つの別のノードを、転送されるデータの宛先として確立する前記コマンドは、前記コントローラだけが発生する方法。
【請求項１５】
請求項１記載の方法において、
前記読み出されたデータを前記リングバスに巡回させて転送するステップの前に、前記複数のノードを設定するためにコマンドおよびデータを前記リングバスに巡回させて前記コントローラから送出するステップをさらに含む方法。
【請求項１６】
請求項１記載の方法において、
前記読み出されたデータを前記リングバスに巡回させて転送するステップが、前記転送中の読み出されたデータと同期させるシステムクロックソースの１またはそれより多いサイクルの前記複数のノードの個々のものに遅延を課すステップを含む方法。
【請求項１７】
請求項１記載の方法において、
前記コマンドを前記リングバスに巡回させて渡すステップが、前記リングバスの少なくとも第１の導体を通じてそのように行なうステップを含み、前記読み出されたデータを前記リングバスに巡回させて転送するステップが、前記第１の導体とは異なる前記リングバスの少なくとも第２の導体でそのように行なうステップを含む方法。
【請求項１８】
請求項１記載の方法において、
前記コマンドを前記リングバスに巡回させて渡すステップが、（１）前記少なくとも１つのノードを、前記コマンドを受け取る前記複数のノードのうちの別の少なくとも１つによってデータのソースとして確立し、次に、前記少なくとも１つのノードをデータのソースとして設定するステップと、（２）前記少なくとも１つのノードを、前記コマンドを受け取る前記複数のノードのうちの別の少なくとも１つによってデータの宛先として確立し、次に、前記少なくとも１つのノードをデータの宛先として設定するステップと、を含む方法。
【請求項１９】
請求項１記載の方法において、
前記転送されるデータを前記少なくとも１つのソースノードに接続されたメモリから読み出すステップが、前記少なくとも１つのソースノードに接続された再プログラム可能な不揮発性メモリセルの少なくとも第１のユニットからデータを読み出すステップを含む方法。
【請求項２０】
請求項１記載の方法において、
前記少なくとも１つの宛先ノードに接続されたメモリへ前記転送されたデータを書き込むステップが、前記少なくとも１つの宛先ノードに接続された再プログラム可能な不揮発性メモリセルの少なくとも第２のユニットへ前記転送されたデータを書き込むステップを含む方法。
【請求項２１】
請求項１９または２０のいずれか記載の方法において、
メモリセルの前記第１および第２のユニットが、１つの集積回路チップ上の全部のメモリセルより少ないそれぞれの第１および第２のプレーンを含む方法。
【請求項２２】
請求項１９または２０のいずれか記載の方法において、
メモリセルの前記第１および第２のユニットが、それぞれの第１および第２の集積回路チップ上にメモリセルアレイ全体を含む方法。
【請求項２３】
請求項２記載の方法において、
前記読み出されたデータを、前記コントローラノード、前記少なくとも１つのソースノード、および前記少なくとも１つの宛先ノードとは異なる、前記複数のノードのうちの別の１つに接続されたバッファメモリに一時的に記憶するステップをさらに含む方法。
【請求項２４】
請求項１記載の方法において、
前記データを一時データ記憶装置に読み出すステップが、前記読み出されたデータを、前記少なくとも１つのソースノードに設けられた少なくとも２つのデータレジスタのうちの１つに転送するステップを含む方法。
【請求項２５】
請求項１記載の方法において、
前記データを一時データ記憶装置に書き込むステップが、前記転送されたデータを、前記少なくとも１つの宛先ノードに設けられた少なくとも２つのデータレジスタのうちの１つに書き込むステップを含む方法。
【請求項２６】
請求項１記載の方法において、
前記複数のノードのうちの１つに接続されたメモリからの第２のデータセットを前記複数のノードのうちの１つにある一時データ記憶装置の一部分に読み出すステップと、前記リングバスからの第３のデータセットを前記複数のノードのうちの１つにある一時データ記憶装置の別の一部分に書き込むステップを同時に行なうステップをさらに含む方法。
【請求項２７】
メモリシステムにおいて、
データ通信ノードを備える少なくとも１つの再プログラム可能な不揮発性メモリユニットと、
別のデータ通信ノードを有するホストデータ入出力回路と、
それぞれのデータ通信ノードをリング状につなぎ合わせるバスと、
前記１つまたはそれより多いデータ通信ノードからのデータの複数のチャネルを、転送されるデータの複数のチャネルの数を含むようになっている複数の時分割多重化データフレームを通じて、前記リングバスに一方向に完全に巡回させて同時転送させるように、前記リングバスと作用的に接続されたマイクロコントローラを含むコントローラと、
を備えるメモリシステム。
【請求項２８】
請求項２７記載のメモリシステムにおいて、
前記コントローラが、前記リングバスを通じて設定コマンドを送る前記リングバスを通して、データ転送のために前記通信ノードのうちの選択されたものにさらに作用的に接続されるメモリシステム。
【請求項２９】
請求項２８記載のメモリシステムにおいて、
前記少なくとも１つのメモリユニットが、設定回路と、前記リングバスおよび前記設定回路に接続され、前記コントローラから設定コマンドを受け取って実行するコマンドノードとをさらに備えるメモリシステム。
【請求項３０】
請求項２７記載のメモリシステムにおいて、
前記少なくとも１つのメモリユニットの少なくとも１つの前記データ通信ノードが、メモリサブシステムと前記リングバスとの間で転送される少なくとも２片のデータを同時に記憶するように接続される少なくとも２つのレジスタを備えるメモリシステム。
【請求項３１】
請求項２７記載のメモリシステムにおいて、
前記コントローラがホストデータ入出力回路を含み、前記コントローラが前記別のデータ通信ノードを介して前記リングバスに接続されるメモリシステム。
【請求項３２】
請求項２７記載のメモリシステムにおいて、
前記コントローラが、コマンド信号ノードを介して前記リングバスに接続されるメモリシステム。
【請求項３３】
請求項２７記載のメモリシステムにおいて、
前記少なくとも１つのメモリユニットが、それぞれ、データ通信ノードを備える２またはそれより多い複数の再プログラム可能な不揮発性メモリユニットを備えるメモリシステム。
【請求項３４】
請求項３３記載のメモリシステムにおいて、
前記２またはそれより多いメモリユニットが、１つの集積回路チップ上に２つまたはそれより多いプレーンを備えるメモリシステム。
【請求項３５】
請求項３３記載のメモリシステムにおいて、
前記２またはそれより多いメモリユニットが、それぞれの２つまたはそれより多い別個の集積回路チップ上に形成されるメモリシステム。
【請求項３６】
請求項２７記載のメモリシステムにおいて、
複数チャネルのデータが前記リングバスに巡回させて転送されるときに前記複数チャネルのデータが通過できるように前記リングバスに作用的に接続された誤り訂正回路をさらに備えるメモリシステム。
【請求項３７】
請求項３６記載のメモリシステムにおいて、
前記コントローラが、前記誤り訂正回路を含むメモリシステム。
【請求項３８】
フラッシュメモリシステムにおいて、
フラッシュメモリセルのアレイと、データノードと、前記データノードと前記アレイの間に接続される少なくとも１つのデータ記憶レジスタとをそれぞれ備える複数のフラッシュメモリデータ記憶ユニットと、
前記データ記憶ユニット間のアドレスおよびステータス情報の通信のためにデータ記憶ユニットに接続され、またコマンドノードに接続される少なくとも１つのコマンドユニットと、
インターフェイスノードを有するコントローラと、
前記データと、コマンドノードと、前記インターフェイスノードをリング状につなぎ合わせるバスと、を備え、
前記コントローラが、前記バスを通じて前記コマンドユニットにコマンドを出すことによってデータ記憶ユニット間および前記データ記憶ユニットと前記コントローラの間でデータを転送するように作用し、前記少なくとも１つのレジスタが前記転送されたデータのソースまたは宛先であるメモリシステム。
【請求項３９】
請求項３８記載のメモリシステムにおいて、
前記少なくとも１つのレジスタが２つまたはそれより多いレジスタを備え、前記コントローラが、アドレス指定された記憶ユニットの前記少なくとも２つの記憶レジスタの一方を、前記転送されたデータのソースまたは宛先となるように前記バスを通じて選択するようにさらに動作するメモリシステム。
【請求項４０】
集積回路チップにおいて、
再プログラム可能な不揮発性メモリセルの少なくとも２つのサブアレイと、
少なくとも２つのデータ記憶レジスタであって、前記少なくとも２つのサブアレイのそれぞれがデータを転送するように前記データ記憶レジスタのうちの少なくとも１つと作用的に接続される、データ記憶レジスタと、
少なくとも２つのバスノードであって、前記少なくとも２つのバスノードのそれぞれがデータを転送するように前記データ記憶レジスタのうちの少なくとも１つと作用的に接続される、バスノードと、
前記集積回路チップへのバス入力を提供する第１の複数の外部接点セットと、
前記集積回路チップからのバス出力を提供する第２の複数の外部接点セットと、
前記少なくとも２つのバスノードを前記第１および第２の外部接点セットと直列接続し、それによって前記集積回路チップが前記第１および第２の接点セットを介して連続するリング状に他の集積回路チップと接続できるバスと、
を備える集積回路チップ。
【請求項４１】
請求項４０記載の集積回路チップにおいて、
前記少なくとも２つのバスノードが、前記少なくとも２つのサブアレイと前記少なくとも２つのレジスタを設定するコマンドを受け取るようになっている、選択されたデータを前記少なくとも２つのサブアレイと前記少なくとも２つのバスノードとの間で転送するためのコマンドノードを備える集積回路チップ。
【請求項４２】
請求項４０記載の集積回路チップにおいて、
前記少なくとも２つのデータ記憶レジスタが、データを転送するように前記少なくとも２つのサブアレイの別の１つと作用的に接続される前記レジスタのうちの少なくとも２つを備える集積回路チップ。
【請求項４３】
集積回路チップにおいて、
再プログラム可能な不揮発性メモリセルの少なくとも１つのアレイと、
データを転送するように前記少なくとも１つのアレイと作用的に接続された少なくとも１つのバスノードと、
前記集積回路チップへのバス入力を提供する第１の複数の外部接点セットと、
再プログラム可能な不揮発性メモリセルの少なくとも１つのアレイを含む別の集積回路チップの入力バス接点と接続するために、前記集積回路チップからの第１のバス出力を提供する第２の複数の外部接点セットと、
戻りバス接続を確立するために使用可能とされる前記集積回路チップからの第２のバス出力を提供する第３の複数の外部接点セットと、
前記少なくとも１つのバスノードを前記バス入力外部接点セットおよび前記バス出力外部接点セットと作用的に直列接続するバスと、
を備える集積回路チップ。
【請求項４４】
請求項４３記載の集積回路チップにおいて、
前記第３の接点セットが、前記第２の接点セットと少なくとも１つの再プログラム可能な不揮発性メモリセルのアレイを備える別の集積回路チップの入力バス接点とが接続されていないときに、前記第２のバス出力を提供するために使用可能とされる集積回路チップ。
【請求項４５】
請求項４３記載の集積回路チップにおいて、
バスデータの一時記憶装置および前記一時記憶装置を前記第３の接点セットに接続するドライバを備え、前記記憶装置に記憶されるデータを前記第３の接点セットに与えるための回路と、やはり前記回路チップ上で前記一時記憶装置に接続される第４の複数の外部接点セットとをさらに備える集積回路チップ。
【請求項４６】
集積回路チップにおいて、
再プログラム可能な不揮発性メモリセルの少なくとも１つのアレイと、
データを転送するように前記少なくとも１つのアレイと作用的に接続された少なくとも１つのバスノードと、
前記集積回路チップへのバス入力を提供する第１の複数の外部接点セットと、
前記集積回路チップからのバス出力を提供する第２の複数の外部接点セットと、
前記少なくとも１つのバスノードを前記第１および第２の外部接点セットと直列接続し、それによって前記集積回路チップが前記第１および第２の接点セットを介して連続するリング状に他の集積回路チップと接続できるバスと、を備え、
前記少なくとも１つのバスノードは、前記バスが受け取ったデータの一時記憶装置と前記記憶されたデータを前記バスに出力するドライバとを含む集積回路チップ。
【請求項４７】
請求項４６記載の集積回路チップにおいて、
前記少なくとも１つのノードが、前記少なくとも１つのノードの識別番号を記憶する第１のレジスタと、前記少なくとも１つのノード用の前記バス上のデータのチャネル番号を記憶する第２のレジスタとをさらに備え、それによってバスとのインターフェイスをとる場合に、前記ノードが時分割多重式に動作される集積回路チップ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的には、バス構造と、電子システムのコンポーネント間の通信を行なうための電子システム内のバス構造の動作とに関し、より具体的には、特にフラッシュメモリシステムにおいて、そのようなことを行なうリングバスの使用法に関する。
【背景技術】
【０００２】
特に小形のファクタカードの形態の、今日使用されている再プログラム可能な不揮発性メモリ製品の多くが商業的に成功を収めている。これらは、１つまたはそれより多い集積回路チップ状に形成されるフラッシュＥＥＰＲＯＭ（電気的に消去可能でプログラム可能なリードオンリメモリ）セルのアレイを採用している。必ずではないが通常は独立した集積回路チップ上に存在するメモリコントローラは、カードを着脱できるホストとインターフェイスして、カード内のメモリアレイの動作を制御する。そのようなコントローラは一般に、マイクロプロセッサと、何らかの不揮発性リードオンリメモリ（ＲＯＭ）と、不揮発性ランダムアクセスメモリ（ＲＡＭ）と、プログラミング中および読み出し中にデータがコントローラを通過するときにデータから誤り訂正符号（ＥＣＣ）を計算するものなどの１つまたはそれより多い特別の回路とを備えている。
【０００３】
フラッシュメモリを利用する市販のカードのいくつかは、コンパクトフラッシュ（登録商標）（ＣＦ）カード、マルチメディアカード（ＭＭＣ）、セキュアデジタル（ＳＤ）カード、ミニＳＤカード、スマートメディアカード、ｘＤピクチャカード、トランスフラッシュカード、およびメモリスティックカードである。ホストには、パーソナルコンピュータ、ノートブック形パソコン、個人用携帯情報端末（ＰＤＡ）、種々のデータ通信デバイス、デジタルカメラ、移動電話、ポータブルオーディオプレーヤ、自動車音響システム、および同様なタイプの設備などがある。多くのホストは、１つまたはそれより多い市販のメモリカード対応を受け入れるスロットを１つまたはそれより多く有し、および／またはユニバーサルシリアルバス（ＵＳＢ）の差込口などを介してカードリーダに接続できる。ホストのＵＳＢ差込口に直接差し込んでホストをドライブ内のメモリに接続するＵＳＢフラッシュドライブも使用できる。また、メモリカードおよびフラッシュドライブの実施例のほかに、その代わりとして、フラッシュメモリシステムを種々のタイプのホストシステムに埋め込むことも可能である。前述したものならびに他のフラッシュメモリ製品は、本願の譲受人であるサンディスク  コーポレイションから入手できる。
【０００４】
２種類の汎用メモリセルアレイアーキテクチャのＮＯＲおよびＮＡＮＤが主として商品として実装されてきた。一般的なＮＯＲアレイでは、メモリセルは、隣接するビットラインソースと、セルの行に沿って延びるワードラインにコントロールゲートが接続された状態で列方向に延びるドレイン拡散部との間に接続される。メモリセルは、ソースとドレインの間のセルチャネル領域の少なくとも一部分の上に配置される少なくとも１つの蓄積素子を備えている。したがって、蓄積素子上にプログラムされる電荷レベルはセルの動作特性を制御し、アドレス指定されたメモリセルに適切な電圧を印加することによって読み出すことができる。このようなセルの例、メモリシステムにおけるそれらの使用法、およびそれらの製造方法は、米国特許第５，０７０，０３２号（特許文献１）、米国特許第５，０９５，３４４号（特許文献２）、米国特許第５，３１３，４２１号（特許文献３）、米国特許第５，３１５，５４１号（特許文献４）、米国特許第５，３４３，０６３号（特許文献５）、米国特許第５，６６１，０５３号（特許文献６）、および米国特許第６，２２２，７６２号（特許文献７）に記載されている。
【０００５】
ＮＡＮＤアレイは、セル列を形成するように、個々のビットラインと基準電位との間に、１つまたはそれより多い選択トランジスタと一緒に接続された、１６個、３６個などの、２より多いメモリセルから成る直列ストリングを利用する。ワードラインは、多数のこれら列内のセルを横切って延びる。ストリングを通る電流がアドレス指定されたセルに蓄積された電荷のレベルに依存するようにストリング内の残りのセルを強くオンに転換させることによって、プログラミング中に列内の個々のセルを読み出し、ベリファイする。ＮＡＮＤアーキテクチャのアレイの例およびメモリシステムの一部としてのその動作は、米国特許第５，５７０，３１５号（特許文献８）、米国特許第５，７７４，３９７号（特許文献９）、米国特許第６，０４６，９３５号（特許文献１０）、米国特許第６，５２２，５８０号（特許文献１１）、および米国公開特許出願第２００３／０１４２７８号（特許文献１２）に記載されている。
【０００６】
前述した援用されている特許に記載されているように、現在のフラッシュＥＥＰＲＯＭアレイの電荷蓄積素子は、最も一般的には、導電性フローティングゲートである。フラッシュＥＥＰＲＯＭシステムで有用な別のタイプのメモリセルは、不揮発式に電荷を蓄積する導電性フローティングゲートの代わりに、非導電性の誘電材料を利用する。誘電式の蓄積素子を採用するいくつかの特定のセル構造およびアレイは、米国公開特許出願第２００３／０１０９０９３号（特許文献１３）においてハラリらによって説明されている。
【０００７】
集積回路の応用例のほとんど全てにおいてそうであるように、いくつかの集積回路機能を実装するために必要なシリコン基板領域を小さくするという圧力はフラッシュメモリセルアレイにおいても存在する。一定サイズのメモリカードおよび他タイプのパッケージの記憶容量を増加させるために、または、記憶容量を増加させ且つサイズを縮小させるために、シリコン基板の特定領域に記憶できるデジタルデータ量を増やすことが絶えず望まれている。データの記憶密度を増加させるための方法の１つは、１つのメモリセルおよび／または１つの記憶素子すなわち蓄積素子に１ビットより多いデータを記憶させることである。これは、蓄積素子電荷レベル電圧のウィンドウを２より多いステートに分けることによって達成される。そのような４つのステートを使用することによって各セルに２ビットのデータを記憶させることができ、８つのステートを使用することによって各蓄積素子に３ビットのデータを記憶させることができ、等々となる。フローティングゲートを用いたマルチステートフラッシュＥＥＰＲＯＭ構造およびその動作は、米国特許第５，０４３，９４０号（特許文献１４）および米国特許第５，１７２，３３８号（特許文献１５）に記載され、また、誘電式フローティングゲートを用いた構造については前述した米国公開特許出願第２００３／０１０９０９３号（特許文献１３）に記載されている。マルチステートメモリセルの選択部分が、米国特許第５，９３０，１６７号（特許文献１６）および米国特許第６，４５６，５２８号（特許文献１７）に記載されているように、さまざまな理由のために２ステート（バイナリ）で作動される場合もある。
【０００８】
フラッシュメモリセルは再プログラミングの前に消去される。一般的なフラッシュメモリセルアレイのメモリセルは、一緒に消去される個別のセルブロックに分割される。すなわち、このブロックが消去単位であり、同時に消去可能な最小数のセルである。各ブロックは一般に１つまたはそれより多いページのデータを記憶している。ページはプログラミングおよび読み出しの最小単位であるが、メモリセルの別々のサブアレイまたはプレーンで、１つより多いページを並列にプログラムしたり、読み出したりすることができる。各ページは、一般に、１つまたはそれより多いデータセクタを格納し、セクタのサイズはホストシステムによって定められる。セクタの一例は、磁気ディスクドライブについて確立されている規格にしたがって５１２バイトのユーザデータと、ユーザデータおよび／またはユーザデータを記憶するブロックに関する数バイトのオーバーヘッド情報とを含んでいる。そのようなメモリは一般に各ブロック内の１６ページ、３２ページまたはそれより多いページで構成され、各ページは１つまたはそれより多いホストデータセクタを記憶している。
【０００９】
ユーザデータをメモリアレイにプログラミングしている間の並列処理の度合いを増加させ、メモリアレイからユーザデータを読み出すために、通常、アレイはサブアレイに分割される。サブアレイは一般にプレーンと呼ばれ、データセクタを同時にいくつかまたは全部のプレーンのそれぞれへプログラムしたり、それぞれから読み出したりできるような並列動作を可能とするために、それ自体のデータレジスタおよび他の回路を備えている。単一の集積回路上のアレイが物理的にいくつかのプレーンに分割されていてもよいし、各プレーンが別個の１つまたはそれより多い集積回路チップから形成されていてもよい。そのようなメモリの実装例は、米国特許第５，７９８，９６８号（特許文献１８）および米国特許第５，８９０，１９２号（特許文献１９）に記載されている。
【００１０】
メモリをさらに有効に管理するために、ブロックをリンクさせて仮想ブロックまたはメタブロックを形成してもよい。すなわち、各メタブロックは、いくつかまたは全部のプレーンのそれぞれから１つのブロックを含むように定められる。メタブロックの使用法は、米国公開特許出願第２００２／００９９９０４号（特許文献２０）に記載されている。メタブロックは、データをプログラムし、且つ読み出す場合ための宛先としてホスト論理ブロックアドレスによって特定される。同様に、メタブロックの全ブロックは一般に一緒に消去される。
【００１１】
そのような大きなブロックおよび／またはメタブロックで動作されるメモリシステム内のコントローラは、効率的な動作を維持するために、ホストによって課せられる数多くの機能を実施する。また、メモリの記憶容量を有効利用するために、反復的なデータ整理統合（ガーベッジコレクション）が実施される。ガーベッジコレクションを実施している時、コントローラは一般にメモリに対するデータ転送というその主要機能を一時停止するため、システム性能に潜在的な悪影響を及ぼす。メモリアレイチップ自体に関するデータコピーの制限が、米国特許第６，２６６，２７３号（特許文献２１）に記載されている。
【００１２】
一般的なフラッシュメモリシステムは１つまたはそれより多い、それぞれがメモリセルのアレイおよび関連する周辺回路を含んでいる集積回路チップと、コントローラを含んでいる別の集積回路チップとを備えている。いくつかの応用例では、１つのチップ上にコントローラおよびメモリアレイが含まれている。いずれの場合においても、データ、アドレス、コマンドおよびステータス情報は、全部のメモリシステムコンポーネントが作用的に接続された共通両方向システムバスを介し、コントローラと、１つまたはそれより多いフラッシュメモリセルアレイ、サブアレイ、プレーン、または集積回路チップとの間でやりとりされる。
【特許文献１】米国特許第５，０７０，０３２号
【特許文献２】米国特許第５，０９５，３４４号
【特許文献３】米国特許第５，３１３，４２１号
【特許文献４】米国特許第５，３１５，５４１号
【特許文献５】米国特許第５，３４３，０６３号
【特許文献６】米国特許第５，６６１，０５３号
【特許文献７】米国特許第６，２２２，７６２号
【特許文献８】米国特許第５，５７０，３１５号
【特許文献９】米国特許第５，７７４，３９７号
【特許文献１０】米国特許第６，０４６，９３５号
【特許文献１１】米国特許第６，５２２，５８０号
【特許文献１２】米国公開特許出願第２００３／０１４２７８号
【特許文献１３】米国公開特許出願第２００３／０１０９０９３号
【特許文献１４】米国特許第５，０４３，９４０号
【特許文献１５】米国特許第５，１７２，３３８号
【特許文献１６】米国特許第５，９３０，１６７号
【特許文献１７】米国特許第６，４５６，５２８号
【特許文献１８】米国特許第５，７９８，９６８号
【特許文献１９】米国特許第５，８９０，１９２号
【特許文献２０】米国公開特許出願第２００２／００９９９０４号
【特許文献２１】米国特許第６，２６６，２７３号
【発明の開示】
【００１３】
フラッシュメモリシステムの動作速度はこのようなバスを使用することによって制限される。単一バスは比較的長いので、システムの動作周波数は、ラウンドトリップ遅延およびこのバスに特有の大容量性負荷によって限定される。バスを介した通信が、コントローラとフラッシュメモリチップのうちの１つとの間でしか行なわれない場合もある。システムのある記憶位置間の１データユニットの伝送でバスがふさがっているとき、システムの他のコンポーネントがデータ転送のためにバスを使えないことがある。データは通常、メモリセルの個々のユニット間（すなわち、個々のアレイ、サブアレイ、プレーン、またはチップ間）で直接転送されることはない。むしろ、そのようなデータ転送は、一般に、転送の一部としてバッファメモリに一次記憶させるために共通バスを介してデータをコントローラに渡すことを含む。
【００１４】
したがって、本願明細書に記載されている従来のバスに対する改善策として、コントローラと、メモリシステムのすべてのメモリセルアレイ、サブアレイ、プレーンおよび集積回路チップとは、個々のバスインターフェイス回路（ノード）を介して互いにループまたはリング状に接続される。ノード間のリングバスのセグメントを個別に駆動することにより、駆動される各セグメントのキャパシタンス量を大幅に減少させ、したがって許容できるバスの動作周波数が増加する。データは、メモリセルアレイ、サブアレイ、プレーンおよびチップ間、ならびにそれらのうちのいずれかとコントローラとの間で、直接通信できる。しかし、通信されるデータは、必ずしも最初にコントローラを通過しなくてもよい。バスは閉じられたループを形成し、データ、コマンド、ステータス情報はループを巡回して単一方向に転送されることが好ましい。データは、リングを完全に巡回してデータが送出されたノードまで転送されることが好ましく、この箇所において転送後のデータの有効性を任意に確認してもよい。本願明細書に記載されているリングバスは、前述した背景技術の欄に記載されているものをはじめとする従来のメモリシステムで使用されている一般的なバスと置換することも可能である。
【００１５】
好ましい実施例において、一般にシステムコントローラのものであるただ１つのマスタノードが、リングバスによって接続された他の全部のノードの動作を制御する。コントローラによって出される特定のコマンドは、アドレス指定されたノードだけにこのコマンドを実行させる追加ノードアドレスによって、１つまたはそれより多いノードにアドレス指定される。初期化コマンドおよび設定コマンドをはじめとするグローバルコマンドはすべてのノードに受け付けられる。データがバスを巡回してノード間で転送される前に、ノードは、特定の転送に対応するようにセットアップされる。例えば、１つのメモリユニット（例えば、チップ、サブアレイまたはプレーン）から別のものへデータが転送される場合、データがソースユニットから、そのノードに接続されたレジスタへ読み出され、宛先ノードはデータを受け入れるように設定される。次に、後続の転送コマンドにより、コマンドによって条件付けられたソースと宛先ノードとの間で計画された転送が行なわれる。このシステムおよび動作の利点は、そのようなデータ転送を、メモリとコントローラノードの間のように、メモリのユニット間で直接行なえることである。
【００１６】
リングバスの動作に含むことができる別の特徴は時分割多重方式である。すなわち、データは割当てられたタイムスロットまたはフレームでバスを巡回して転送される。したがって、多数のデータフレームを同時に転送することができる。使用されるタイムスロット数は、同時に転送されるデータフレームの数と等しくなるように動的に調節されることが好ましい。データフレームは、すべてがリングの周りの同一ソースまたは同一宛先ノードを有していなくてもよい。したがって、リングバスのデータ伝送速度の分数であるその個々のフレームレートで特定のコンポーネントに対してデータが転送されるので、バスノードと接続されるメモリシステムコンポーネントのデータ帯域幅の要件として、バスほど高くないことが要求される。具体例として、データ転送のためにノードをセットアップするのに用いられるコマンドは、時分割多重化なしで、添付された所期のノードのアドレスにより、バスを巡回して伝送される。その後、計画されたデータ転送が複数のタイムスロットを使用することによって実行される。タイムスロットのうちの１つを使用することによってステータス情報をバスに巡回させて送信することもできる。
【００１７】
別の特徴として、メモリから読み出されるデータの完全性は、一般にコントローラによって提供され、最も利便的には誤り訂正符号（ＥＣＣ）を実行する専用回路によって提供される、誤り訂正機能にデータを通すことによって簡単に確認できる。望み通りにデータがリングを巡回して完全に転送されれば、ソースおよび宛先ノードがコントローラノードに対してどこに位置していようと、データは常にコントローラノードを通過する。データ転送を始めるノードは、転送によってデータが壊されていないことを保証するために、バス上に置かれたこのノードが受け取るバス巡回後のデータを任意にベリファイすることもできる。
【００１８】
さらに別の特徴として、プロセッサ、バッファメモリおよびＥＣＣ回路を含む、コントローラのさまざまな機能およびコンポーネントを、ノードを介してシステムリングバスに個別に接続することもできる。ノード・ツー・ノードコマンドおよびデータ転送のフレキシビリティと並列性はさらに増大する。メモリシステムの他のコンポーネントが関係しないときに、その効率的な動作のためにコントローラのコンポーネント間でコマンドおよびデータを直接転送するために従来形のコントローラバスを備えることもできる。
【００１９】
既存の従来形のコントローラとの下位互換性を与えるために、メモリセルアレイ集積回路チップは、リングバスを使用するようになっているコントローラが用いられるときに前述したリングバスを接続することもできる、従来形バスと接続するためのインターフェイスを備えることができる。このデュアルモードのバスインターフェイスにより、他のタイプのコントローラを備えるメモリシステム内でこのフラッシュメモリチップを使用することが可能となる。
【００２０】
集積回路メモリチップの一実施例において、１つまたはそれより多いメモリデータノードが、外部入力バス接点と外部出力バス接点の間に直列接続される。次に、これらのバス接点を一緒に接続することによって、１つまたはそれより多いメモリチップがコントローラチップと直列接続されて、それらが閉ループ状に接続される。複数のメモリチップは、別のメモリチップのバス入力に接続されたあるチップのバス出力に接続される。１枚のプリント回路基板（ＰＣＢ）を用いてさまざまな個数のメモリチップを有するメモリカードを従来通りに製造できるようにするために、個々のメモリチップは、直列に隣接するメモリチップと接続するためのバス出力パッドと、コントローラチップに戻すバス経路に接続するためのバス出力パッド、という２セットのバス出力パッドを備えることができる。ＰＣＢに装着されている各メモリチップの戻りバス出力パッドは、１から最大数までの任意の数のメモリチップのためのコントローラへの戻りバス経路を形成するＰＣＢ上の１セットの導体に接続される。よって、戻りバス出力パッドは、一連のメモリチップの最後で有効となって、ＰＣＢ上の戻りバス導体と作用的に接続するが、他のすべてのメモリチップの戻りバス出力パッドは無効となる。正確に言えば、他のメモリチップの他の出力は別のメモリチップのバス入力と接続されて、メモリチップの直列接続およびリングバスを形成する。
【００２１】
本発明の他の態様、利点および特徴は、添付図面と組み合わせて解釈されるべきである以下の本発明の例示の実施例の説明に記載されている。本願明細書では、本発明を説明するために、１タイプのフラッシュメモリシステムの実施例しか説明しないが、本発明のさまざまな態様が、そのコンポーネント間でデータを転送する高い周波数のバスを必要とする多様なタイプのメモリシステムで実施され得る。また、本発明の多くの態様および特徴は、内部バスを利用する他のタイプの電子システムの同様な利点によって実施可能である。
【００２２】
本願明細書に記載されている、特許、特許出願、論文および他のタイプの出版物のすべては、いずれの場合においても、その全体が参照により本願明細書において援用されている。
【発明を実施するための最良の形態】
【００２３】
図１を参照すると、以下の本発明の種々の態様および特徴の説明の背景技術を提供するために、従来のバスを備えた一般的なフラッシュメモリシステムが示されている。図１ではメモリチップ１５は１つしか示されていないが、システムコントローラは、通常、システムバス１３を介して１つまたはそれより多い集積回路メモリチップに並列接続される１つの集積回路チップ１１に実装される。示されている特定のバス１３は、データを搬送するための独立した導体セット１７と、メモリアドレス用のセット１９と、制御およびステータス信号用のセット２１を備えている。あるいは、１セットの導体をこれら３つの機能の間で時分割することもできる。
【００２４】
一般的なコントローラチップ１１は、インターフェイス回路２５を介してシステムバス１３とインターフェイスする、それ自体の従来式の内部バス２３を有している。通常このバスに接続される一次機能は、（マイクロプロセッサまたはマイクロコントローラなどの）プロセッサ２７、このシステムを初期化（「ブート」）するためのコードを含んでいるリードオンリメモリ（ＲＯＭ）２９、メモリとホストとの間で転送されるデータをバッファするために主として使用されるリードオンリメモリ（ＲＡＭ）３１、およびメモリとホストとの間のコントローラを通過するデータの誤り訂正符号（「ＥＣＣ」）を計算して確認する回路３３である。コントローラバス２３は回路３５を介してホストシステムとインターフェイスする。メモリカード内に含まれている図１のシステムの場合、これは、カードの外部接点３７を介して行なわれる。クロック３９がコントローラ１１の他の各コンポーネントと接続されて利用される。
【００２５】
システムバス１３に接続されている他のものと同様に、通常メモリチップ１５は、複数のサブアレイまたはプレーンに構成されたメモリセルのアレイを備えている。分かりやすくするために、２つのそのようなプレーン４１および４３が示されているが、そのようなプレーンは４つまたは８つある方が一般的である。あるいは、メモリチップ１５はプレーンに分割されないメモリセルアレイを備えていてもよい。しかし、そのように分割される場合、各プレーンはそれ自体の列制御回路４５および４７を有し、列制御回路４５および４７は互いに独立に動作できる。回路４５および４７は、システムバス１３のアドレス部１９からそのそれぞれのメモリセルアレイのアドレスを受け取り、それらを復号化して、特定の１つまたはそれより多いそれぞれのビットライン４９および５１をアドレス指定する。プレーン４１および４３は、アドレスバス１９上で受信されたアドレスを受けて行制御回路５５を通じてアドレス指定される共通ワードライン５３を有する。現在のところ、メモリセルアレイ４１および４３のＮＡＮＤアーキテクチャが好適である。Ｐウェル電圧制御回路６１および６３のように、ソース電圧制御回路５７および５９もそれぞれのプレーンに接続されている。
【００２６】
システムバス１３のデータ部１７に接続されているそれぞれのデータ入出力回路６５および６７を通って、プレーン４１および４３にデータが入出力される。回路６５および６７は、それぞれの列制御回路４５および４７を介してプレーンに接続されたライン６９および７１を介して、そのそれぞれのプレーンのメモリセルにデータをプログラムし、且つこのメモリセルからデータを読み出す両方の役割を果たす。
【００２７】
コントローラ１１は、データをプログラムし、データを読み出し、種々のハウスキーピングマターを削除および追加するようにメモリチップ１５の動作を制御するが、各メモリチップもまた、コントローラ１１からのコマンドを実行してこのような機能を実施する何らかの制御用回路を備えている。インターフェイス回路７３がシステムバス１３の制御およびステータス部２１に接続されている。コントローラからのコマンドはステートマシン７５に供給され、その後、ステートマシン７５はこれらのコマンドを実行するために他の回路を厳密に制御する。制御ライン７７〜８１は、ステートマシン７５とこれら他の回路とを図１に示されているように接続する。ステートマシン７５からのステータス情報は、ライン８３を介してインターフェイス７３に送られ、バス部２１を介してコントローラ１１に送信される。
【００２８】
コントローラチップ１１とメモリチップ１５の種々の部分との間の通信は、コントローラとメモリチップが並列接続されている単一システムバス１３を介した通信の制限に左右されることが、図１のメモリシステムから分かる。
【００２９】
（例示的なリングバスの実施形態の詳細な説明）
前述した従来のバス１５の代わりにリングバスを用いたメモリシステムの第１の実施形態が図２〜図９に示されている。最初に図２を参照すると、コントローラ集積回路チップ１０１と単一メモリチップ１０３がメモリシステムを形成しているが、別のメモリチップを含むことも可能である。メモリチップ１０３はメモリセルの４つのプレーン１０５〜１０８を有するように示されているが、そうではなく、使用されるメモリプレーンが、４つより少なくてもよいし、たとえ１つであってもよいし、または４つより多くてもよい。列制御回路１１０〜１１３がそれぞれのプレーン１０５〜１０８に接続されている。２つのデータレジスタＡまたはＢの一方を選択するそれぞれの多重化回路１１５〜１１８を介して、データがメモリプレーン１０５〜１０８へプログラムされ、また、メモリプレーン１０５〜１０８から読み出される。データのプログラミング中、そのマルチプレクサによって選択される特定プレーンのレジスタＡまたはＢの一方に記憶されているデータが、当該プレーンにプログラムされる。同様に、データの読み出し中、プレーンから読み出されたデータは、そのマルチプレクサによって選択されるレジスタＡまたはＢの一方に書き込まれる。これら２つのレジスタを使用することは要件ではなく、単一のレジスタを使用することも可能であるが、これら２つのレジスタは、メモリシステムの動作時のフレキシビリティおよび並列処理の度合いを増加させる。コマンドおよび制御回路１２１は、図１のシステムの制御回路のステートマシン７５および種々のものと同様の機能を提供する。
【００３０】
図２の例において、メモリアレイプレーン１０５〜１０８のそれぞれは、プレーンから読み出されるデータおよびプレーンにプログラムされるデータを、リングバスインターフェイスノード１２３〜１２６の対応する１つを介して送受信する。各プレーンのデータレジスタＡおよびＢの両方が、このプレーンのノードに接続される。コントローラ１０１からのコマンドはリングバスインターフェイスノード１２７によって受け取られ、ステータス信号はこの同じノードを介してコントローラに送り戻される。ノード１２７はメモリ集積回路チップ１０３の制御回路１２１に接続されている。このシステムに追加のメモリチップ（図２には示されていない）が含まれる場合、この具体例では、各メモリチップが自己のコマンドインターフェイスノードを備えることになる。
【００３１】
同様に、コントローラチップ１０１はコントローラ１３０に接続されるリングバスノード１２８を備えている。図２のコントローラ１３０は、ノードインターフェイス１２８（図２）がメモリインターフェイス２５に置き換わることを除き、図１のコントローラ１１と同様とすることが可能である。
【００３２】
ノード１２３〜１２８は、データ、アドレス、コマンドおよびステータス情報をこれらノード間で転送するために、ループ状につなぎ合わされている。このループは、コントローラから１３０からのデータを搬送する１つのライン１３３と、コントローラ１３０からのコマンドを搬送する別のライン１３５とを有するリングバスによって形成されている。あるいは、情報転送帯域幅を広くするために２つまたはそれより多いラインを使用すること、および／または２つまたはそれより多いコマンドラインをリングバスに備えることが可能であるが、これは、バスノード回路構成と動作が複雑化して費用が強いられる。このバスには、クロック信号をノードに搬送するさらに別のライン１３７を備えることもできる。あるいは、データライン１３３上およびコマンドライン１３５上の情報に自動タイミングフォーマットが採用される場合には、クロックラインを省略することができる。
【００３３】
図２のシステムは、１クロックサイクルまたは数クロックサイクルの遅延が各ノードに好適に導入された状態で、データおよびコマンドがリングバス上をパイプライン式に転送されるように動作させられる。データライン１３３、コマンドライン１３５、およびクロックライン１３７は、集積回路チップ１０１および１０３上およびそれらの間で同じ経路をたどり、各ノード内で、３本のライン内の信号に同じ遅延が導入される。情報は、従来のバスでそうであったようにバス全体に存在するのではなく、隣接するノード間のバスのセグメントに沿ってポイントからポイントへ転送されるだけであり、それによってきわめて高い周波数のリングバス動作が可能となる。バス上の信号は、利用可能な電力供給電圧によってその振幅が設定された状態で、完全にデジタルとすることができる。しかし、動作周波数の増加および電力損の低減は、低電圧スイング信号送信、完全微分信号送信、擬微分信号送信、ダブルデータレート、または最新モードドライバの使用など、適切な高速信号送信技術を利用することによっても達成できる。
【００３４】
コマンドはコントローラノード１２８だけが発信することが好ましい。これによって、コントローラノード１２８がリングバスの単一マスタとなる。コマンドコードは、コマンドライン１３５上のコントローラノード１２８から送出され、１つまたはそれより多い他のノード１２３〜１２７によって実行される。１つのノードだけが、コマンド実行の対象とされる場合、このノードの対応識別コードがデータライン１３３上を同時に転送される。したがって、対象ノードは、実行用コマンドを受け入れる唯一のノードとなる。
【００３５】
データライン１３３上を転送されるデータは、いずれか１つのノード１２３〜１２８（ソースノード）から発信され、いずれか１つまたはそれより多い他のノード（宛先ノード）に向けられる。そのようなデータ転送の前に、ソースノードおよび宛先ノードがデータ転送用に設定される。その後、リングバスを巡回するデータ転送が行なわれる。転送されるデータは、リングバス全体を巡回して進み、発信ノードに戻ることが好ましい。これにより、ＥＣＣを用いることによってデータの有効性を確認するノードなど、そうするように設定されたいずれの他のノードも転送データを読み出すことができるように、徹底される。これにより、最初の転送データと比較することによって、または冗長パリティビットを使用することによって、リングバス巡回転送中に生じた誤りがないか、発信ノードが受信データを確認することも可能となる。
【００３６】
ほとんどの場合に好ましい図２のシステムのある特定の動作中、データは、時分割多重化を利用して、フレーム式またはタイムスロット式にデータライン１３３上にリングバスを巡回するように送出される。これにより、異なるデータセクタなど、異なるソースおよび／または宛先ノードを有する場合もある２つまたはそれより多い異なるデータチャネルのリングバスを巡回する同時転送が可能となる。各データ転送に使用されるタイムスロット数は、実行される同時データ転送数に対応するように選択される。これにより、個々のノードに接続されているメモリデータプログラミングおよび書き込回路と同様に、個々のノードの特定機能が、より少ない帯域幅で動作できるようにしながら、リングバスの帯域幅が十分に利用される。
【００３７】
図３Ａのタイミング図を参照すると、同時に時分割多重化された３つのチャネル０〜２のデータ伝送が示されている。データライン１３３上の次に始まるフレームが有効データを含んでいることを示すマーカとして、１サイクルの「ｐｉｐ」がコマンドライン１３５に送出される。ｐｉｐは、データライン１３３上のタイムフレームに挿入される、ｐｉｐと同じクロックサイクル中に始まるデータのソースであるいずれかのノードによって、コマンドライン１３５に挿入されるのが最も一般的である。したがって、リングバスのデータライン１３３およびコマンドライン１３５は、同様に経路設定して同期するように動作させる必要がある。データタイムスロットのタイミングおよび定義は、そのようにするのにｐｉｐを利用しない以下に説明する態様で制御される。
【００３８】
図３Ａの例では、データフレームＡ、ＢおよびＣが、チャネル０、１および２でそれぞれ送出される。チャネル１は２サイクル用の有効データを搬送せず、その時間の後、イニシャルデータフレームＢがリングバスで転送有効となる。１チャネルのデータがメモリフレームノード１２３〜１２７のいずれかの間をこのように転送されることにより、データがメモリとホストシステムとの間で転送されるときに、コントローラ１３０を通る必要なくメモリチップ１０３内のプレーン間でデータ転送が行なわれるか、または、１つ以上のそれらとコントローラノード１２８との間でデータ転送が行なわれる。
【００３９】
Ｄ個のノードを有するリングバスを巡回してデータを転送するために時分割多重化を行なう２通りの具体的な実施例が、図３Ｂおよび３Ｃのタイミング図によって概念的に示されている。各タイムフレームの持続時間（長さ）は、Ａクロックサイクルである。以下に説明する具体例のデータバスタイムスロットは４クロックサイクルであるが、数字Ａは、わずか１とすることも、８、１６、３２、またはそれより多い数とすることも可能である。データが通過するノードによるデータの遅延は、Ｂクロックサイクルとして示されている。パラメータＡおよびＢのそれぞれは、通常、メモリシステム内に作り込まれるので、システムの動作中に変更することはできない。Ｃ個のタイムスロットが使用される。
【００４０】
図３Ｂに示されているリングバス動作時、チャネル（タイムスロット）の個数Ｃはバス上のノード数Ｄと等しくされる。フレーム長Ａもノード間のバス遅延Ｂと等しくなるようにされ、ＡおよびＢの測定はいずれもクロックサイクル数で行なわれる。各ノードは、一般にＢ個の記憶レジスタステージを有することにより、各ノードを通過する、遅延Ｂに等しい数のビットを格納する。これらのパラメータを使用することにより、データをバス上の各データノードに同時に転送することが可能となる。すべてのタイムスロットの各データビット位置に対して１つの記憶レジスタがバスの周りに存在する。これにより、割当てられたＣ個のデータタイムスロットが各ノードを絶えず循環する。したがって、一般的なデータ転送動作に用いることができる最大数のチャネルが存在する。実際には、通常データを送受信しない各制御ノードのチャネルが含まれるので、結果的に１つまたはそれより多い余分のチャネルが出てくる。これらは、コントローラにステータス情報を送り戻すために使用できる。１つのチャネルは通常、システム内の各メモリチップのステータス情報を送るために使用される。
【００４１】
しかし、図３Ｂに示されているように時分割多重化を実施するのに便利ではあるが、この最大数のデータチャネルが必要なことは滅多にない。したがって、データバスの帯域幅を最大限に使用するために、特定のデータ転送動作に必要とされる程度の少ない数のタイムスロットＣを使用することが好ましい。図３Ｃのタイミング図は、所期のデータ転送に必要なものになるように作ることができるが、図３Ｂに示されているように動作する場合に生じ得る多くの空タイムスロットを含む必要がない、動的に選択されたＣ個のチャネルを備えたバスの動作を示す。
【００４２】
図３Ｃには、バス上のＤ個のノードよりも少ない数のＣ個のチャネルが使用される場合が示されている。この例では、ノードからのデータの連続フレームは、同時に同じチャネルアイデンティティを備える少なくとも２つのタイムスロットでリングバスを巡回させられる。例えば、バス上にＤ＝１２個のノードが存在し、同時転送されるＣ＝６個のデータチャネルを多重化によって動的に指定した場合、各チャネルはバスに２回出現する。Ｄ／Ｃが整数であり、この例では整数が２であるので、これは比較的単純明快である。しかし、Ｄ／Ｃが整数ではない、より頻繁に起こる事例が図３Ｃに示されている。このような場合、１つまたはそれより多い不使用のタイムスロットが挿入され、不使用のタイムスロットは「ヌルスロット」と呼ばれる。ノード数Ｄからヌルスロット数を減じた数字をタイムスロット数Ｃで割ったときに整数となるように、複数のヌルスロットが挿入される。すなわち、（Ｄ−ヌルスロット数）／Ｃを整数にする。
【００４３】
データバスを介して転送されるデータの全部でＣ個の一連のフレーム（タイムスロット）が、１「サイクル」を形成するように図３Ｃに示されている。この例では、データを通過させるバス上のＤ個のノードより少ない、バスを巡回するタイムスロットのグループを形成するために、サイクルが全部でＮ回繰り返される。一連のタイムスロットをノード数Ｄと等しくするために、このグループを実質的にＮサイクル＋ヌルスロットまで拡張するようにヌルスロットが加えられる。図３Ｃの例では、Ｎ＝Ｄ−１であり、足りない１の分の埋め合わせは、示されているヌルスロットの挿入によって遂行される。Ｎ＝Ｄ−２である別の事例では、例えば、２つのヌルスロットが挿入される。これにより、グループのデータを１度でバスを完全に１周移動させるのに必要な総クロックサイクル数が、このリングのまわりの１ビット格納位置の総数と等しくなる。数量ＮおよびＣは、所期のデータ転送動作について、リングの周りを循環させる不使用のヌルスロットの数が最小限になるように選択される。というのは、ヌルスロットの使用により、バスのデータ転送帯域幅が幾分か少なくなるからである。必要な場合、ヌルスロットは関連するデータチャネルを有さず、リングのまわりをノード・ツー・ノードで連続的に循環する。「ドントケア」値を有するヌルデータは、ヌルスロット内でノード・ツー・ノードで渡される。
【００４４】
図２のデータノード１２３〜１２６のそれぞれの回路の実施例が図４に示されている。リングバスのデータライン１３３上の１ビットのデータの信号はレジスタステージ１５１によって受信され、直列式に連続するレジスタ１５２、１５４および１５６を通される。４クロックサイクルのタイムスロット長Ａに合うように、４つのレジスタステージが示されている。最後のステージ１５６の出力および最初のステージ１５１の出力は、いずれもスイッチング回路１５３へ入力として接続されている。これにより、回路１５３は１遅延サイクルまたは４遅延サイクルで動作可能となる。スイッチング回路１５３の出力は、ドライバ１５５を介してデータライン１３３に戻るように接続されている。最も一般的な構成において、スイッチング回路１５３の入力が、その出力ドライバ１５５に接続されたレジスタ１５６からのものである場合、データノードのレジスタ１５１が受信する１ビットのデータは４クロックサイクル後にデータライン１３３上に戻され、リングバスの別のセグメントを介して次のデータノードに転送される。同様に、スイッチング回路１５３の入力が、その出力ドライバ１５５に接続されたレジスタ１５１からのものである場合、遅延は１クロックサイクルである。ノードによってそのレジスタＡまたはＢの一方からデータラインにデータが戻されるタイムスロット中、スイッチング回路１５３はこれらデータバス入力をその出力に接続させない。
【００４５】
データバスが、示されている単一ラインではなく、２本またはそれより多い並列なデータラインを使用する場合、各ラインごとに別個のレジスタステージが設けられ、スイッチング回路１５３はそれらを一緒に切り換える。例えば、データバスが４本のラインを含んでいる場合、データノードは各ラインに１つずつレジスタステージを備えている。そのような場合、各ノードがそれを介して１つのタイムスロットの４ビットを転送する場合の総遅延は、４クロックサイクルではなく１クロックサイクルである。これによってバスの帯域幅は大きくなって有利であるが、システムの回路構成および動作が複雑化する。
【００４６】
データノードへのコマンドライン１３５の入力は、他の一連の４つのレジスタ１５７、１５８、１６０および１６２に同様に接続されている。コマンドは、データライン１３３上のデータと同時に、すなわち同じ遅延が課せられた状態で、コマンドライン１３５に送られる。最後のレジスタ１６２の出力は、データレジスタ経路と同様、最初のレジスタステージ１５８の出力のようにスイッチング回路１５３に接続される。これらの入力はいずれもスイッチング回路１５３によってドライバ１５９に接続し、コマンド情報を１または４クロックサイクルの遅延を付けてリングバスの次のセグメントに送ることができる。ノードがコマンドライン１３５にｐｉｐを送出する必要があるとき、これらの入力はいずれもドライバに接続されない。これは、ノードによって、データバス１３３を通じて、次に生じるタイムスロットに有効データが置かれることを示す。データバスが２つまたはそれより多いラインを含む場合、２つのバスが同期して動作するように、コマンドバスは、並列レジスタの使用を含め、同様に構成されることが好ましい。
【００４７】
クロック信号ライン１３７はドライバ１６１と直接接続され、データとコマンドレジスタステージのために刻時を行い、また、データノードの残りの回路のためのクロック信号を供給する。
【００４８】
デコーダ１６３が、レジスタ１５７の出力でコマンドライン１３５からコントローラコマンドを受け取り、レジスタ１５１の出力でデータライン１３３上の関連データを受け取る。デコーダの機能の１つは、引き続いて起こるデータ伝送中にデータを受信または送信するようにそのノードを設定するコマンドを実行することである。データライン１３３に供給されるコマンドに関係するデータは、コマンドの対象となるノード識別番号、データの送信または受信に使用されるチャネル番号、レジスタＡとＢのどちらが使用されるか、転送されるデータ長、および他の設定情報などである。
【００４９】
レジスタ１６５は、メモリシステムの始動時または他の初期化時に記憶されるノードの固有識別番号を含んでいる。システムコントローラによって出されるグローバル初期化コマンドがこれを行なうことが好ましい。識別番号は、動作中、コントローラからのノード用のコマンドのアドレスとして使用される。リングバス上のすべてのノードがコマンドを受信するが、コマンドは、このコマンドの対象とされるノードの識別番号とともに、バスを通じて伝送される。そのため、識別番号でアドレス指定された１つまたは複数のノードだけがこのコマンドを記憶して、次に実行するように応答する。
【００５０】
別のレジスタ１６７は、特定のノードが通信している時分割多重化されたデータバスのチャネルの番号を含んでいる。このチャネル番号は、一般に、データバス１３３を通じた毎回のノードとのデータ伝送前にノードの設定の一部として書き直される。データ伝送中、データを送信または受信するためのノードに割当てられたチャネルのタイムスロットの出現を識別するために、記憶されたチャネル番号が使用される。現在の転送動作で転送されるデータの長さは別のレジスタ１６８に記憶され、レジスタＡまたはＢのどちらを転送に使用するかの指定はレジスタ１７０に記憶されている。レジスタ１６７、１６８および１７０のパラメータは、バスを巡回してコマンドライン１３５を通じて送られる、レジスタ１６５に記憶されるノード識別番号を含むコマンドによって、デコーダ１６３を通じてこれらのレジスタにロードされる。
【００５１】
図４のスイッチング回路１５３は、データバスライン１３３とレジスタＡおよびＢ（図２に示されているもの）の一方との間に、それぞれのデータライン１６９および１７１の一方を通じて接続を確立する。制御回路は、一方のレジスタＡまたはＢとデータライン１３３との間でデータを転送するようにノードを設定する。ノードのメモリプレーンに記憶するためにバスからデータを転送するとき、回路１５３は、ライン１８２上の復号化された制御信号によって選択された通りにレジスタ１５１またはレジスタ１５６の一方の出力でバスライン１３３から、ライン１７７上の制御信号によって選択された通りにレジスタＡおよびＢの一方へ、データを送る。しかし、ノードに割当てられたタイムスロット中に、選択された一方のレジスタＡまたはＢからデータバスライン１３３へ逆方向にデータを転送するとき、スイッチング回路１５３は、レジスタ１５１とドライバ１５５の間のデータバスライン１３３のセグメントを切断する一方、選択されたレジスタの出力をドライバ１５５に接続する。それ以外のとき、スイッチング回路１５３は、１または４クロックサイクルの遅延を与えることを除き、データについては何もせずにデータをノードに通すように接続される。レジスタ１５１またはレジスタ１５６の一方とドライバ１５５との間のデータバスライン１３３のパススルー接続は、ノードがそのデータレジスタＡまたはＢの一方とデータバス１３３との間でデータを転送していないときに維持される。
【００５２】
適切な時間にこれらの接続を行なうようにスイッチング回路１５３を制御するのは、制御ライン１７５〜１７９および１８２を通じたデコーダ１６３からの信号および別の制御ライン１８０を通じたチャネルカウンタ１８１の出力からの信号である。カウンタ１８１は、デコーダ１６３によって、ライン１８３〜１８６を通じて４つの信号により制御される。ライン１８３は、ノードによるデータ転送動作の最初にカウンタ１８１をリセットする初期化信号を搬送する。ライン１８５は、データ伝送のためのノードのセットアップの一部としてコントローラによって伝えられる、現在のデータ伝送に使用されるチャネル数のデータを搬送する。リングバス上のノード数Ｄもライン１８６を通じてカウンタ１８１に供給され、サイクル数Ｎ（図３Ｃ参照）は回路１８４を通じて伝えられる。カウンタ１８１は、最大チャネル数まで数え、次に最小チャネル数にリセットされ、休止され、再び数えはじめる、といったことを行なう。現在の数、したがって現在のチャネル数が、ライン１８０を通じてスイッチング回路１５３に入力される。回路１５３は、この数と、レジスタ１６７から制御ライン１７５を通じてデコーダによって供給された、ノードに割当てられたチャネル数とを比較する。これらの数が同じであるとき、回路１５３は、レジスタ１６８から制御ライン１７６を通じて供給されたデータ伝送の長さから判断される通りに、転送が完了するまでデータバス１３３に対してデータを送受信するようにノードを切り換える。
【００５３】
ライン１７７上の制御信号は、ノードのレジスタＡまたはレジスタＢのどちらを使ってデータを転送するかを指定する。ライン１７８および１７９は回路１５３を次のように切り換える信号を搬送する。（１）データバス１３３からデータを受け取るように切り換える。この場合、データバスはノードを通り、制御ライン１７７によって識別されるレジスタがこのノードに接続されている。（２）ノードに割当てられたタイムスロット中に、識別されたレジスタからバスライン１３３にデータを転送するように切り換える。このタイムスロット中、バスライン１３３はノードを通らない。（３）レジスタＡまたはＢと接続せずに、データバスライン１３３がノードを通るように切り換える。
【００５４】
図４に関連して説明されているデータインターフェイスノードは、バス１３３とレジスタＡおよびＢとの間のデータ転送を制御する。バス１３３へ転送するための、メモリセルアレイプレーンからレジスタＡまたはＢへのデータの読み出し、または、レジスタＡまたはＢからメモリセルアレイへの、バス１３３から得られたデータのプログラミングは、コマンドリングバスインターフェイスノード１２７（図２）を通して制御される。コマンドノード回路の例が図５に示され、ここで、図４の構成要素に対応するものはプライム符号（’）を付けた同じ参照番号で識別されている。レジスタ１９３は、デコーダ１９７からのライン１９５内の制御信号によって使用可能とされるとすぐに、コマンドバス１３５から受信されるコマンドデータを記憶する。同様に、レジスタ１９９は、デコーダからのライン２０１内の信号によって使用可能とされると、データバス１３３から受信されるコマンドを記憶する。レジスタ１９９の主な用途は、読み出しまたはプログラミングのためにアクセスされるメモリセルアレイ内のアドレスを記憶することである。
【００５５】
レジスタ１９３および１９９内のデータは、それぞれのライン２０３および２０５を通じて出力される。ライン２０３および２０５は、ステータス信号ライン２０７とともに、信号パス２０９を通じてメモリアレイ制御回路１２１（図２）に接続されている。ライン２０３によって搬送される主なコマンドは、ライン２０５でアドレスによって指定される位置にある１つまたはそれより多いメモリプレーン１０５〜１０８およびレジスタＡまたはＢの一方に対してデータをプログラムするコマンドおよびデータを読み出すコマンドである。ライン２０３で搬送されるコマンドコードは、メモリチップ１０３内のコマンドおよび制御回路１２１（図２）のプロトコルによって指定されるものである。このプロトコルは、リングバス内で使用されるコマンドコードのプログラムと同じである必要はない。例えば、リングバスのコマンドコードは、メモリセルアレイで使用されるコマンドコードと異なる長さのものであってもよい。この場合、コード翻訳機（図示せず）をコマンドレジスタ１９３（図５）の出力に組み込むこともできる。あるプロトコルを別のプロトコルに変換するためのマッピング情報をシステム構成コマンドによって翻訳機にロードしてもよい。ステータスライン２０７は、制御回路１２１から出力されてスイッチング回路２１１を通ったステータス信号を、ノード間でデータを転送するためのメモリシステムをセットアップするときに指定される時分割多重化チャネルの１つで、データバスライン１３３へ供給する。
【００５６】
図５のスイッチング回路２１１は、図４のスイッチング回路１５３より機能が単純である。データライン１３３は、ライン２０７からのステータス情報をライン１３３に送るタイムスロット中を除き、ライン２１４の制御信号で選択されたレジスタ１５１’またはレジスタ１５６’とドライバ１５５’との間を常に通されている。設定されたタイムスロットの出現は、図４のスイッチング回路１５３と同様に、チャネルカウンタ１８１’からのスイッチング回路２１１と、ライン１７５’における割当てられたチャネル番号とによって確認される。別のノードに転送するためにデータをフラッシュメモリからレジスタＡおよびＢの一方または両方に読み出す前に、または、別のノードからレジスタ１９３および１９９に転送されてきたデータをフラッシュメモリにプログラムした後、システムコントローラからレジスタ１９３および１９９へのコマンドおよびアドレスの受信がデータ転送の前または後に生じているあいだ、ノード間のデータ転送中にステータス情報がバス１３３に供給される。
【００５７】
いずれもコントローラ１３０によってそのリングバスノード１２８（図２）を通じて発せられた、図２〜５のメモリシステムを動作させるためのコマンドセットが、図６Ａ〜６Ｉに示されている。それぞれのバスライン１３５（ＣＭＮＤ）および１３３（ＤＡＴＡ）を介してリングバスの３つのノードを通るコマンドおよびデータの転送が、便利のために時系列で生じる通りに示されている。当然のことながら、メモリシステムは３つより多いリングバスノードを有する可能性が高い。その場合、図６Ａ〜６Ｉに示されているパターンは各ノードの信号を示すように展開される。あるノードの信号は、直前のノードのものから１クロックサイクル遅延される。各コマンドの直前のクロックサイクルでコマンドラインにｐｉｐが送出されることに注意されたい。この具体例では、データラインを通じて送られるデータの冒頭にマーキングも施される。示されている１サイクルのｐｉｐではなく、各コマンドの前のｐｉｐが複数のクロックサイクルを占有してもよいし、また、後続のコマンドを使用可能にするために必要な固有コードとして定義されてもよい。これにより、送られてくるコマンドの誤検出が大幅に改善される。
【００５８】
図６Ａ、６Ｂおよび６Ｃのコマンドは、リングバス上のあらゆるノードで実行される設定コマンドである。図６Ａまたは図６Ｂの別のコマンドにより、各ノードのレジスタ１６５および１６５’（図４および５）に固有ノード識別（ＩＤ）番号が記憶される。図６Ａにおいて、冒頭にｐｉｐが付せられた設定ＩＤコマンドがコマンドライン１５３を通じて送られる。その後、固有識別（ＩＤ）番号がデータライン１３３上に続くが、この固有識別番号の冒頭にもコマンドライン上でｐｉｐが付される。コントローラノードの後のバス上の最初のノードによって受信されたＩＤ番号は、ノードスイッチング回路１５３または２１１（図４および５）の一部である回路によって増分され、増分された番号はリングバスを巡回して順々に次のノードに送信される。
【００５９】
図６Ｂにおいて、リングバスの連続ノードで使用される一連のＩＤ番号は、直前のノードの増分回路ではなく、コントローラ回路１３０（図２）によって決定される。これにより、ノードへのＩＤ番号の割当てに、より大きなフレキシビリティが与えられる。コントローラ１３０はリングバスの隣接する最初のノードの１つのＩＤ番号だけを送出するのではなく、バス上の各ノードについてＩＤ番号を１つずつ、ＩＤ番号ストリングとして送出する。各ノードは受けとった最初のＩＤ番号を取り除いて、残りをリングバス上の次のノードに順々に再送信する。
【００６０】
図６Ｃにはチャネルリセットコマンドが示され、コントローラはシステム上の各ノードが受け取って実行するコマンドをコマンドバスライン１３５を通じて送出する。ノードがこのコマンドを受け取ると、このノードの割当チャネル番号レジスタ１６７および１６７’（図４および５）がリセットされる。
【００６１】
図６Ｄ、６Ｅおよび６Ｆの３つのコマンドは、コマンドノード１２７（図２および５）など、リングバスシステム上の識別されたコマンドノードに送られて受信される。図６Ｄのアドレス入力コマンドは、アクセス対象のフラッシュメモリアドレスを識別する。このコマンドはコマンドライン１３５を通じてバスを巡回して送られ、一方、このコマンドを受信させたい１つのコマンドノードのＩＤ番号がデータライン１３３を通じて送られる。ノードＩＤに続くのは、その後のステップで何らかの動作が実施されるべきメモリセルアレイのアドレスである。次に、コントローラによって送出されたＩＤと一致するＩＤをそのレジスタ１６５’に有する１つのノードは、このアドレスをそのアドレスレジスタ１９９（図５）にロードする。バスを巡回してノードからノードへ同じＩＤよびアドレスが渡されるが、一致するＩＤを備えた１つのコマンドノードだけが、このアドレスを受け入れて記憶するように自己を許可する。
【００６２】
図６Ｄの１つまたはそれより多いアドレス入力コマンドによってアドレス指定されたフラッシュメモリの一部分を動作される関連するコマンドセットが図６Ｅに示されている。図６Ｅに列挙されているコマンドのうちの１つのコマンドの固有コードがコマンドライン１３５を通じて送られ、このコマンドの宛先とされる１つのコマンドノードのＩＤがデータライン１３３を通じて送られる。次に、このコマンドは、識別されたコマンドノードのコマンドレジスタ１９３（図５）にロードされ、すぐに実行される。図６Ｅの読み出しモードコマンドは、リングバスによるデータの転送に備えて、図６Ｄのコマンドで以前にロードされたアドレスにあるフラッシュメモリ内のデータをフラッシュメモリからレジスタに読み出させる。同様に、図６Ｅのマルチブロックプログラムコマンドは、レジスタから、図６Ｄのアドレスコマンドで以前に供給されたアドレスにあるフラッシュメモリの２つまたはそれより多いプレーンにデータを並列にプログラムするために使用できる。図６Ｅのコマンドのうちの１つを実行することが望まれるコマンドノードが１つより多くメモリシステムに存在する場合、図６Ｄおよび６Ｅのコマンドがそれぞれに別個に送られる。
【００６３】
読み出し、プログラミングまたは他の動作中にコマンドノードによってステータス信号を送出することが望まれる場合、そうするようにコマンドノードを設定するために図６Ｆのステータス読み出しコマンドが使用される。コマンドライン１３５を通じて固有コマンドが送られ、他方、このコマンドによるセットアップが望まれる１つのコマンドノードのＩＤがデータライン１３３を通じて送られる。ステータス情報が送られるチャネル番号が、データライン上のノードＩＤに続く。その後、このチャネル番号は割当てられたチャネル番号レジスタ１６７’（図５）にロードされる。
【００６４】
図６Ｇは、後続のデータコマンドを受けて、リングバスのデータライン１３３とレジスタＡまたはＢの一方とのあいだでデータを転送するためにデータノードを調整するために使用される関連する入力および出力コマンドを示す。入力または出力コマンドは、コントローラによってコマンドバスライン１３５を通じて送られ、その後、対象ノードのＩＤ、データを転送するチャネル番号（タイムスロット）、データ転送に使用されるレジスタＡまたはＢ、およびデータ転送の長さが続く。その後、送られたチャネル番号がデータノードのレジスタ１６７（図４）にロードされ、選択されたレジスタＡまたはＢおよびデータ転送の長さがデコーダ１６３に一時的に記憶され、それぞれのデコーダ出力１７７および１７６によって供給される。
【００６５】
すべての関連するデータノードが、１度に１つずつ、図６Ｇのコマンドを受け取って実行することによってデータ転送が行なわれるように設定されると、図６Ｈのデータオンコマンドによって転送が行なわれる。データオンコマンドは、コントローラによってバスのコマンドライン１３５を通じて送られ、転送を実行するのに必要な設定パラメータはデータライン１３３を通じて送られる。これらのパラメータは、図３Ｃのタイミング図によって示されているグループ化されたチャネル転送に引き続き、データ転送に使用されるチャネル（タイムスロット）数Ｃ、１グループのタイムスロット内のサイクル数Ｎ、およびリングバス上のノード数Ｄなどである。これらのパラメータはデータノード（図４）に記憶され、データ転送中にライン１８４、１８５および１８６を通じてチャネルカウンタ１８１に供給される。その後、データは、図６Ｇの入力または出力コマンドに指定された各ノードの固有チャネルを通じて、このコマンドによって指定された通りに、このコマンドを受信した各ノードのレジスタＡまたはＢの一方へ、または一方から、転送される。
【００６６】
図６Ｈのデータオンコマンドは、割当てられた時分割多重化チャネルでリングバスに巡回させるようにデータを転送させる。各データチャネルで転送できるのは、チャネルの幅、すなわちそれぞれに割当てられた時間の長さに応じて、限られた量のデータである。図６Ｈでは、説明が簡単となるように、長さ４クロックサイクルとすることによって４ビットのデータを搬送するように個々のチャネル（データフレーム）が示されているが、実際は、もっとずっと大きくすることができる。各データノードは、図３Ｃに示されているグループ化チャネルサイクル技術にしたがって、以前に転送されたフレームがリングバス巡回回路を完了してノードに戻る前に、別のフレームのデータを転送してもよい。これは、ノードから転送されるすべてのデータがこのように転送されるまで続く。
【００６７】
データオンコマンドの実行中にデータが転送されるあいだにコントローラがリングバスを通じて別のコマンドノードまたはデータノードコマンドを送出する前に、転送を中断する必要がある。これを行なうためのデータオフコマンドが図６Ｉに示されている。データ転送中にソースデータノードがデータオフコマンドを受信すると、ソースデータノードはその後にデータオンコマンドを受信するまで、データ転送を中断する。しかし、データオフコマンドの後に他のチャネルに有効なデータが存在する場合があるので、転送されるデータの宛先ノードは関連するデータを受け取り続ける。単にデータをそれらに渡すように設定されたこれらのノードは、そのようにし続ける。データオフコマンドによってデータ転送を中断する理由の１つは、データオフコマンド後で、且つ、再設定されたデータ転送が後からのデータオンコマンドによって再開される前に、入力および／または出力コマンドの使用によって行なえるように、チャネルを追加する、データを送信または受信するように追加ノードを設定するなどができるからである。再設定されたデータ転送の新しいパラメータは、後続のデータオンコマンドの一部として指定される。
【００６８】
図６Ｉのデータオフコマンドは、関連するコマンドコードを有しないという点が他のすべてのコマンドと異なる。このコマンドは、先行するコマンドがデータオンコマンドであった場合のみ使用されてもよい。データオフコマンドは、コマンドラインを通じて任意のチャネルで拡張ｐｉｐとしてコントローラによって出力される。データラインは、データオフコマンドとは関係のない、このチャネルに適切なデータを搬送する。
【００６９】
直前に説明したコマンドの使用によるノード間のデータ転送の全体のプロセスを図７に略説する。転送されるフラッシュメモリプレーン内のデータは最初にレジスタ、この例では１つまたはそれより多いプレーンのそれぞれのレジスタＡまたはＢの一方、に移動される。第１のステップ２２１により、フラッシュメモリアドレスが、１つまたはそれより多いメモリプレーンにそれぞれ対応付けられている個々のコマンドノードに順々に送られる。その後、プレーのアドレス指定された位置からその対応レジスタＡまたはＢへデータを読み出すステップ２２２が続く。
【００７０】
これらのデータソースノードも、ステップ２２３で示されているように、構成される各ノード毎に図６Ｇの出力コマンドを使用することによって、データを送信するように設定される。ステップ２２４において、データ宛先ノードが、設定される各ノード毎に入力コマンドを使用することによってこれらのデータを受信するように設定される。ステップ２２３および２２４は、ステップ２２２と同時に実施できる。バスを巡回するノード間のデータ転送が開始される前にノード間のステップ２２２の転送が完了したという確認を受け取るために、ステップ２２２が開始された後にステータス読み出しコマンド（図６Ｆ）が出されてもよい。
【００７１】
データ転送用のソースノードおよび宛先ノードをセットアップするためのステップ２２３および２２４の完了後、ステップ２２２が完了したことを確認時に、これがなされる場合、ステップ２２５で、図６Ｈのデータオンコマンドが出される。これにより、データがリングバスを通じてソースノードのレジスタから宛先ノードのレジスタに動かされる。ソースノードレジスタおよび宛先ノードレジスタは、コントローラ１３０を通じてホストとデータを送受信するために使用される、コントローラノード１２８（図２）のそれらを備えている。
【００７２】
次いで、宛先ノードのレジスタに記憶されたデータはフラッシュメモリにプログラムされる。ステップ２２６において、コマンドノードによって制御されるフラッシュメモリ内のアドレスが、図６Ｄのアドレス入力コマンドによってこのコマンドノードに送られる。コマンドノードが複数ある場合、このステップは、各コマンドノート毎に別々に実施される。次に、レジスタからフラッシュメモリへのプログラミングを最大可能並列処理で行なわせるために、図６Ｅのプログラミングコマンドの１つが送られる。これらの技術により、データを（１）コントローラ内のレジスタを介したホストとフラッシュメモリ内の記憶位置との間、（２）フラッシュメモリ内の記憶位置間、の一方または両方で動かすことができる。
【００７３】
ステップ２２６の開始はステップ２２５の完了を待つ必要はなく、むしろステップ２２５と同時に実施できる。コントロールノードの動作とデータノードの動作の場合、または別個のレジスタの２つのノードの動作の場合、同時動作が可能である。
【００７４】
図６Ａ〜６Ｉのコマンドを使用することによるデータ転送の説明が図８および９に記載されている。図８は、この例で使用される特定の所望データソースおよび宛先を用いて、図２〜５のメモリシステムを概略的に示すものであり、図９は、所望の転送を実行するためのコマンドを順々に列挙してある。ホストシステムによって書き込まれたデータのセクタ１９、２０および２１がコントローラバッファＲＡＭから転送される。フラッシュメモリに書き込みがなされるようにコントローラを通じてホストシステムとメモリシステムが接続されている。これらのデータセクタは、それぞれ、メモリプレーンＡ、ＢおよびＣに転送される。同時に、プレーンＣのセクタＲ６がプレーンＤに転送される。
【００７５】
図８および９の例は、まだ説明されていない終了コマンド（図６Ｅ）の使用法を示すものでもある。終了コマンドは、ここでは、コマンド＃４で開始されたステータス読み出し動作を終了させるためのコマンド＃１０（図９）として使用される。また、データオフコマンドは、それぞれのデータオンコマンド＃８および＃１３の実行を停止するためのコマンド＃９および＃１４として、２回使用される。データオフコマンド＃９の理由は、それぞれの出力および入力コマンド＃１１および＃１２によって行なわれる、セクタＲ６の転送のためにソースノードと宛先ノードを設定するためにデータ転送を中断するためである。これは、フラッシュメモリ読み出しコマンド＃３の実行に比較的長い時間がかかり、この時間中にコントローラがコマンド＃４〜＃８を出すことができるので、必要である。次に別のデータオンコマンド＃１３が発せられる。これによって、チャネル０で、セクタＲ６が転送されるデータに追加され、チャネル１、２および３を通じたデータセクタ１９、２０および２１の転送が再開される。後から開始されるデータセクタＲ６の転送が完了する前に生じるデータセクタ１９、２０および２１の転送の完了後に、別のデータオフコマンド＃１４が発せられ、それによって後続のデータオンコマンド＃１５が、セクタＲ６の転送を終了させるために使用されるチャネル数を減少させる場合がある。ほとんど常に行なわれるデータ転送に必要なチャネル数だけを指定することにより、メモリの性能に悪影響を及ぼす空データのタイムスロットをなくすことが望ましい。
【００７６】
図８および９に示されているデータ転送の例が単一リングバス上で特定の動作を同時に実施することにも注意されたい。これは、前述したアーキテクチャおよびコマンド構造の特徴である。例えば、データオンコマンド＃８を受けて、時分割多重化を用いている結果として、データの３つのセクタ１９、２０および２１が同時に転送される。各セクタは異なるソースノードと宛先ノードを備えている。データオンコマンド＃１３を受けて、４つのデータセクタ１９、２０、２１およびＲ６が一緒にバスを巡回して転送される。また、コマンド＃４中、データセクタ１９、２０および２１の転送がチャネル１、２および３を通じて行なわれるのと同時に、ステータス読み出しコマンドがチャネル０を通じて実行される。また、前述したように、コマンド＃４〜＃７およびコマンド＃８の一部は、フラッシュメモリ読み出しコマンド＃３が実行されている間に実行される。また、リングバスを巡回して転送されるデータは、コントローラのＥＣＣ回路によってこれらのデータがコントローラノードを通るときにチェックしてもよい。これはデータ転送と同時に行なわれる。
【００７７】
コマンドを用いて前述したようにシステムを動作させながら作ることができる、図２のメモリシステムアーキテクチャの変形例は数多く存在する。４つのメモリプレーンを有するメモリチップの代わりに、図１０に示されているように、メモリチップは単一の非分割形メモリセルアレイを有することもできる。ここでは、２つのメモリチップ２３１および２３３が、リングバス内のコントローラチップ１０１と接続されるように示されている。メモリチップ２３１および２３３のそれぞれが、前述したようにリング状のバスによって接続された単一コマンドノードと単一データノードを備えている。特定のシステムで２より多いメモリチップを使用することもできる。
【００７８】
別の可能な変形例が図１１に示され、ここで、２つのメモリチップ２３５および２３７のそれぞれもリングバス上のコントローラチップ１０１と接続されているが、各メモリチップは単一の組み合わせられたコマンドおよびデータノード２３９および２４１をそれぞれ備えている。ノード２３９および２４１は、それぞれ、１つの回路に組み合わせられた図４および図５の別個のノード回路を備えている。このことの利点は、スイッチング、コマンドデコーダ、チャネルカウンタ、種々の記憶レジスタなどといった重複するコンポーネントを削除することによってノード回路を小さくできることである。
【００７９】
単一パラレルバスを通じてメモリチップと通信する従来形コントローラに下位互換性を有するメモリ集積回路チップを提供するために、メモリチップは従来のバスインターフェイスならびにリングバスノードおよび外部接続を備えることができる。そのようなメモリチップが図１２に示されている。このメモリチップは４つのリングバスノード２４５〜２４８を含み、それぞれが４つのマルチプレクサ２５１〜２５４のうちの１つの、１つの入力に接続されている。マルチプレクサ２５１〜２５４のそれぞれの他の入力は、共通バス２５７を介して従来形のバスインターフェイス回路２５９に接続されている。これにより、メモリチップの外部接続パッドで終端する従来のバス２６１が提供される。次に、これらのバスパッドは、システムコントローラに接続され、任意で他のメモリチップに接続される。図１のコントローラ１１と同様な従来形コントローラ２６３も、図２のコントローラチップ１０１と同様なリングバスノード付きコントローラ２６５も、これらのバスパッドに接続できる。
【００８０】
メモリアレイとそのコマンドと制御回路（図１２には示されていない）の部分をそれぞれのリングバスノード２４５〜２４８に個別に接続するために、または、より一般的なバス２５７に並列に接続するために、メモリシステムに装着するとき、任意のチップのマルチプレクサ２５１〜２５４は永久に設定されることが好ましい。メモリシステムで使用されているものにしたがって、いずれかのタイプのコントローラ２６３または２６５にチップを接続するようにマルチプレクサ２５１〜２５４を設定するために、メモリチップの外部ピンを追加してもよい。チップのリングバスの入力２６７は、従来形のバスインターフェイス２６１の入力ラインセット、この事例では３本のラインのセット、に接続される。リングバスの出力２６９は、従来形バス２６９の３つの異なる導体の別のセットに接続される。したがって、コントローラ２６５がメモリシステムで使用される場合、バスが従来の方法で使用されないので、コントローラは従来形の外部バスの２セットのラインと接続される。そのため、いずれのタイプのコントローラとの接続にも対応させるために、メモリチップの外部パッドの数を増加させる必要がない。
【００８１】
マルチプレクサ２５１〜２５４を設定するためにメモリチップの追加の外部ピンを使用する代わりとなるのは、リングバスの入力および出力ラインとして使用されない従来のバス２５７のピンを使用することである。これらのピンは、リングバスノード２４５〜２４８を選択するようにマルチプレクサ２５１〜２５４を設定するための、予め定められた状態の組合せに永久に設定することもできる。状態の組合せは、従来形のバス２５７の正常動作時には起こらないイリーガルな組合せとなるように選択できる。
【００８２】
図２、１０および１１に示されているシステムの例では、リングバスノードインターフェイスがメモリインターフェイス２５に置き換えられていることを除き、コントローラ１３０は図１の既存のコントローラ１１と非常によく似ている。しかし、単一バスノードインターフェイスを介してコントローラの多数のコンポーネントおよび機能のそれぞれにアクセスするのではなく、それぞれが自己のノードを有することによって、これらのコンポーネントおよび機能をリングバスに分散させることができる。この例は図１３に示されている。前に例示および説明されているものを含む多数の可能な構成の単一集積回路チップ上および複数の個別チップ上のメモリアレイのコマンドおよびデータノードを表すために、いくつかのリングバスノード２７５〜２７９が示されている。図１３のシステムとの違いは、単一のコントローラノードが複数のそのようなノードに置き換わったことである。これらの複数のコントローラノードは、それぞれ、コントローラの全部の回路および機能より少ない回路および機能と接続されている。この具体例には、７つのコントローラリングバスノード２８１〜２８７が含まれている。これらは個別に、不揮発性メモリキャッシュ２８９、揮発性メモリキャッシュ２９１、ＥＣＣ回路２９３、主としてメモリとホスト間で転送されるデータを一時記憶するための揮発性データバッファメモリ２９５、実行されるファームウェアコードを記憶するための揮発性メモリ２９７、プロセッサ２９９、およびホストインターフェイス回路３０１にそれぞれ接続されている。別のコントローラノードを使用することによって他の機能を追加することができるし、図１３に示されている１つまたはそれより多いコントローラ機能を削除することもできるし、１つの共有バスノードを介してリングバスに接続するために特定のコンポーネントおよび機能を組み合わせることもできる。
【００８３】
コントローラ動作内のコマンドおよびデータの動作をリングバスの負担にしないために、プロセッサ２９９と図１３に示されているような他の特定のコントローラ機能との間の直接交信を可能にする別個の並列コントローラバス３０３を備えることが望ましい。プロセッサ２９９にシステムのフラッシュメモリからメモリ２９７へファームウェアをロードさせるためにシステムの初期化中に使用されるブートコードを記憶するための追加の不揮発性メモリ３０５をコントローラバス３０３に接続することもできる。これにより、コントローラコンポーネントの１つとメモリノード２７５〜２７９に接続されたフラッシュメモリコンポーネントとの間でデータまたはコマンドが転送されるとき、主として使用するための、特定のコントローラコンポーネントとリングバスの接続が残る。前述した一例は、有効性を確認するために、バスに巡回させて転送される、特にフラッシュメモリから読み出されたデータをＥＣＣ回路２９３に通すことである。修正するために使用されるＥＣＣアルゴリズムの機能内でＥＣＣ回路２９３によって検出された誤りは、プロセッサ２９９で修正されることが好ましい。他の例は、リングバスをバッファメモリ２９５およびキャッシュメモリ２８９と２９１に直接接続することなどである。
【００８４】
メモリチップをそれ自身によってコントローラと、または１つ、２つまたはそれより多い他のメモリチップと接続しやすくすることが望ましい。メモリカードの製造時、コントローラおよび１つまたはそれより多いメモリチップが、チップとカードの外部接点とを相互接続する電気導体をも提供する小形のプリント回路基板（ＰＣＢ）に物理的に装着される。ＰＣＢ上で従来の並列バスが使用されるときに、種々の記憶機能を備えたカードを製造可能とするために、１つからある限定数までのさまざまな個数のメモリチップを含むような機能を備えたＰＣＢを提供するというのは比較的明白である。しかし、１つまたはそれより多いチップがリングバスに接続されると、ＰＣＢ上のリングバスの、メモリチップとコントローラチップをつなぎ合わせる部分は、さまざまな数の直列接続されたチップに対応できなくてはならない。列の最後のメモリチップの出力はコントローラに戻って接続されるので、さまざまな数のメモリチップでこれを簡単に行なえる何らかの方法が望ましい。
【００８５】
そのようにするそのような技術の１つが図１４に示されている。コントローラチップ３１１と２つのメモリチップ３１３および３１５が、メモリカードの一部として１枚のＰＣＢ上でつなぎ合わされている。コントローラ３１１は少なくとも１つのバスノードを備え、各メモリチップは複数のバスノードを備えている。メモリチップ３１３は、コントローラチップ３１１のバス出力に接続されたバス入力３１７と、第２のメモリチップ３１５のバス入力に接続された第１の出力３１９とを有する。第２の出力３２１もメモリチップ３１３上に設けられ、列の最後のメモリチップの出力をコントローラチップ３１１のバス入力へ戻すように、ＰＣＢ上のチップ間に含まれるバスの一部３２３に接続されている。しかし、メモリチップ３１３は列の最後ではないので、この戻り出力３２１はチップ上で無効とされ、出力３１９が有効状態に維持される。第２のメモリチップ３１５は同様に２つのバス出力３２５および３２７を有する。というのは、すべてのメモリチップはきわめて簡単に同じにされ、チップ３１５が列の最後であるので戻り出力３２７は有効状態に維持されるからである。そして、ＰＣＢバス戻り部分３２３とのその接続によってリングが完成する。次いで、チップ３１５の第２の出力３２５がチップ３１５上で無効とされ、何かと接続される必要はない。
【００８６】
図１４の配置構成によれば、さまざまな数のチップを比較的簡単に直列接続することができるが、ＰＣＢ上のバス部３２３の長さは、多くの場合、チップ上のバスセグメントよりはるかに高いキャパシタンスレベルを有する可能性がある。これは、リングバス全体の動作周波数を制限する可能性があるので、この効果を最小限にできるように戻りバス経路を提供することが強く望まれる。これは、図１５のカードシステムでは、メモリチップ３３１および３３３上の戻り経路の大部分をそれ自身で形成し、個別に動作されるより短いセグメントへの戻り経路を遮断することによって達成される。これにより、リングバスのどのセグメントの最大キャパシタンスも低レベルに保たれる。
【００８７】
メモリチップ３３１を例にとると、このメモリチップは、（図１５にあるように）１つだけある場合には、リングバス入力３３５と、次のメモリチップに直列接続するための出力３３７を有する。コントローラに戻すための第２の出力３３９がメモリチップ内に保持されている。戻り経路の一部分３４１は、ＰＣＢ上ではなくメモリチップ内に含まれている。戻り経路３４１は、前述したノードと同様に、その入力および出力バスセグメントと戻り出力３４５を駆動するドライバとを切断するための１クロックサイクルの遅延を含むステージ３４３に接続される。例えば、チップ３３１は図１５にはないが、このメモリチップが列の最後ではない場合、次の順番のメモリチップをその戻りバス出力に接続するための戻りバス入力３４７が提供される。
【００８８】
図１５の２メモリチップの例では、第１のチップ３３１の出力３３７は、列の次のメモリチップ３３３の入力と接続できるように使用可能とされるが、その戻り出力３３９は無効にされる。第２のメモリチップ３３３は列の最後のチップであるので、このチップの戻り出力３４９は使用可能とされる。その後、バスは、回路３４３と同じレジスタおよびドライバ回路３５１を通って、第１のチップ３３１上の入力３４７までチップ３３３上の戻り経路をたどる。実のところ、一連の列内のどの位置にでも接続できるただ１つのメモリ集積回路チップを作ることが非常に望ましい。最後のメモリチップ３３３の第２の出力３５３は無効とされ、非接続のままである。言うまでもなく、最後のチップ３３３の戻りバス入力３５５には何も接続されない。
【００８９】
本発明のさまざまな態様をその例示の実施形態に関連し説明してきたが、本発明が、添付の特許請求の範囲の全範囲内においてその権利が保護されるべきであることが理解できよう。
【図面の簡単な説明】
【００９０】
【図１】従来のバスアーキテクチャを利用する既存の一般的なフラッシュメモリシステムの略ブロック図である。
【図２】リングバスアーキテクチャを利用するフラッシュメモリシステムの第１の実施形態の略ブロック図である。
【図３Ａ】図２のシステムのリングバスの時分割多重動作の一態様を示すタイミング図である。
【図３Ｂ】図２のシステムのリングバスの時分割多重動作の別の態様を示すタイミング図である。
【図３Ｃ】図２のシステムのリングバスの時分割多重動作のさらに別の態様を示すタイミング図である。
【図４】図２のシステムのリングバスデータインターフェイスブロックの略回路図である。
【図５】図２のシステムのリングバスコマンドインターフェイスブロックの略回路図である。
【図６Ａ】１つのコマンドを、図２のリングバスシステムにおける使用例を説明しながら示す。
【図６Ｂ】別のコマンドを、図２のリングバスシステムにおける使用例を説明しながら示す。
【図６Ｃ】さらに別のコマンドを、図２のリングバスシステムにおける使用例を説明しながら示す。
【図６Ｄ】さらに別のコマンドを、図２のリングバスシステムにおける使用例を説明しながら示す。
【図６Ｅ】さらに別のコマンドを、図２のリングバスシステムにおける使用例を説明しながら示す。
【図６Ｆ】さらに別のコマンドを、図２のリングバスシステムにおける使用例を説明しながら示す。
【図６Ｇ】さらに別のコマンドを、図２のリングバスシステムにおける使用例を説明しながら示す。
【図６Ｈ】さらに別のコマンドを、図２のリングバスシステムにおける使用例を説明しながら示す。
【図６Ｉ】代替コマンドを、図２のリングバスシステムにおける使用例を説明しながら示す。
【図７】図６Ａ〜図６Ｉのコマンドを用いることによる図２のリングバスシステムの動作を説明するフローチャートである。
【図８】図２のシステムにおける具体的なデータ転送の例を示す。
【図９】図８に示されているデータ転送の例を実施するための、図６Ａ〜図６Ｉで識別された一連のコマンドを示す表である。
【図１０】リングバスアーキテクチャを利用するフラッシュメモリシステムの第２の実施形態の略ブロック図である。
【図１１】リングバスアーキテクチャを利用するフラッシュメモリシステムの第３の実施形態の略ブロック図である。
【図１２】リングバスアーキテクチャを利用するフラッシュメモリシステムの第４の実施形態の略ブロック図である。
【図１３】リングバスアーキテクチャを利用するフラッシュメモリシステムの第５の実施形態の略ブロック図である。
【図１４】リングバスアーキテクチャを利用するフラッシュメモリシステムの第６の実施形態の略ブロック図である。
【図１５】リングバスアーキテクチャを利用するフラッシュメモリシステムの第７の実施形態の略ブロック図である。
【図１】
2008509499.tif 000003
【図２】
2008509499.tif 000004
【図３Ａ】
2008509499.tif 000005
【図３Ｂ】
2008509499.tif 000006
【図３Ｃ】
2008509499.tif 000007
【図４】
2008509499.tif 000008
【図５】
2008509499.tif 000009
【図６Ａ】
2008509499.tif 000010
【図６Ｂ】
2008509499.tif 000011
【図６Ｃ】
2008509499.tif 000012
【図６Ｄ】
2008509499.tif 000013
【図６Ｅ】
2008509499.tif 000014
【図６Ｆ】
2008509499.tif 000015
【図６Ｇ】
2008509499.tif 000016
【図６Ｈ】
2008509499.tif 000017
【図６Ｉ】
2008509499.tif 000018
【図７】
2008509499.tif 000019
【図８】
2008509499.tif 000020
【図９Ａ】
2008509499.tif 000021
【図９Ｂ】
2008509499.tif 000022
【図１０】
2008509499.tif 000023
【図１１】
2008509499.tif 000024
【図１２】
2008509499.tif 000025
【図１３】
2008509499.tif 000026
【図１４】
2008509499.tif 000027
【図１５】
2008509499.tif 000028
【国際調査報告】
2008509499.tif 000029
2008509499.tif 000030
2008509499.tif 000031