(57)【特許請求の範囲】
【請求項１】
第１の数の出力ポートを有し、最大データ幅構成データをアクセスするためのコマンドを第１の数の出力ポートの１つの出力ポートから提供するメモリコントローラと、
リングトポロジーで前記メモリコントローラに接続された複数のメモリ装置とを有し、
各メモリ装置は、最大データ幅構成データを蓄積する入力／出力レジスタ、第２の数のデータ入力パッド、および第２の数のデータ出力パッドを有し、第２の数のデータ入力パッドの１つのデータ入力パッドにコマンドを受け取り、当該受け取ったコマンドに応答して前記入力／出力レジスタから前記最大データ幅構成データを読出し、当該最大データ幅構成データを第２の数のデータ出力パッドの１つのデータ出力パッドから他のメモリ装置またはメモリコントローラに提供し、
前記最大データ幅構成データは、１つのメモリ装置が第２の数のデータ入力パッドおよびデータ出力パッドを介してデータを入出力することができる最大データ幅を少なくとも表す、システム。
【請求項２】
最大データ幅構成データは、入力／出力レジスタにハードワイヤ接続される、請求項１に記載のシステム。
【請求項３】
メモリコントローラは、第１の数の入力ポートの１つの入力ポートから最大データ幅構成データを受け取る、第１の数の入力ポートを含む、請求項１に記載のシステム。
【請求項４】
第２の数のデータ入力パッドのすべては、１つのデータ入力パッドを除きディスエーブルされ、第２の数のデータ出力パッドの全ては、１つのデータ出力パッドを除きディスエーブルされる、請求項１に記載のシステム。
【請求項５】
メモリ装置は、メモリコントローラから受け取った構成（コンフィギュレーション）コードを蓄積するカレントアクティブ幅レジスタを含み、構成コードは、第３の数のデータ入力パッドと第３の数のデータ出力パッドをイネーブルする、請求項４に記載のシステム。
【請求項６】
第３の数は、第２の数以下である、請求項５に記載のシステム。
【請求項７】
メモリ装置は、パッケージ内にカプセル封止されたメモリダイを含み、パッケージは、第４の数のデータ入力ピンとデータ出力ピンを有する、請求項６に記載のシステム。
【請求項８】
前記データ入力ピンと前記データ入力パッドが互いに電気的に接続され、前記データ入力ピンと前記データ入力パッドとが接続された最も小さい共通の数は、第２の数および第４の数の小さい方である、請求項７に記載のシステム。
【請求項９】
第３の数は、１と最も小さい共通の数の間である、請求項８に記載のシステム。
【請求項１０】
システムはさらに、第１の数の出力ポートを第４の数の入力ピンに電気的に接続する第５の数の導電性トラックを含む、請求項９に記載のシステム。
【請求項１１】
第３の数は、最も小さい共通の数と導電性のトラックの第５の数より小さい、請求項１０に記載のシステム。
【請求項１２】
コンフィギュレーション（構成）コードを格納するカレントアクティブ幅レジスタと、
データ入力パッドからコンフィギュレーションコードを受け取り、コンフィギュレーションコードをカレントアクティブ幅レジスタに渡す第１のデータ入力／出力回路ブロックと、
カレントアクティブ幅レジスタに格納されたコンフィギュレーションコードに応答して選択的にイネーブルされる第２のデータ入力／出力回路ブロックと、
最大データ幅構成データを格納する入力／出力レジスタとを含み、
データ入力パッドから第１のデータ入力／出力回路ブロックを介して受け取ったコマンドに応答して前記入力／出力レジスタから読み出された最大データ幅構成データは、データ出力パッドを介して第１のデータ入力／出力回路ブロックにより提供され、
前記最大データ幅構成データは、１つのメモリ装置がデータ入力パッドおよびデータ出力パッドを介してデータを入出力することができる最大のデータ幅を少なくとも表す、メモリ装置。
【請求項１３】
カレントアクティブ幅レジスタ、第１のデータ入力／出力回路ブロック、第２のデータ入力／出力回路ブロック、入力／出力レジスタ、データ入力パッドおよびデータ出力パッドは、パッケージにカプセル封止されたメモリダイ上に形成される、請求項１２に記載のメモリ装置。
【請求項１４】
パッケージは、第１のデータ入力／出力回路ブロックに結合された厳密に１つのデータ入力ピンを含む、請求項１３に記載のメモリ装置。
【請求項１５】
パッケージは、第１のデータ入力／出力回路ブロックに結合された第１のデータ入力と、第２のデータ入力／出力回路ブロックに結合された第２のデータ入力ピンとを含む、請求項１３に記載のメモリ装置。
【請求項１６】
パッケージは、少なくとも１つの追加のデータ入力ピンを含む、請求項１４に記載のメモリ装置。
【請求項１７】
リングトポロジーでメモリコントローラに接続された複数のメモリ装置を有するシステムのためのデータ幅を設定する方法であって、
複数のメモリ装置の各々に格納されたコンフィギュレーション（構成）データをアクセスし、コンフィギュレーションデータは、メモリ装置の最大データ幅に対応しており、各メモリ装置は、複数のデータ入力パッドの１つのデータ入力パッドにメモリコントローラからのコマンドを受け取り、当該コマンドに応答して入力／出力レジスタから読み出された前記コンフィギュレーションデータを複数のデータ出力パッドの１つのデータ出力パッドから他のメモリ装置またはメモリコントローラに提供し、
すべてのコンフィギュレーションデータの最も小さいデータ幅を決定し、
複数のメモリ装置に１と最も小さいデータ幅との間の選択されたデータ幅を設定する、
方法。
【請求項１８】
前記アクセスすることは、少なくとも１つのメモリ装置に識別番号を割り当てることを含む、請求項１７に記載の方法。
【請求項１９】
前記アクセスすることは、１つのデータ幅に対応する単一データライン上に直列にリードコマンドを発することを含む、請求項１７に記載の方法。
【請求項２０】
選択されたデータ幅は、システムの動作プロファイルによって決定される、請求項１７に記載の方法。
【請求項２１】
前記動作プロファイルは、選択されたデータ幅をもっと小さいデータ幅になるように設定することにより、システムの性能を最大化することに対応する、請求項２０に記載の方法。
【請求項２２】
前記動作プロファイルは、選択されたデータ幅が１になるように設定することにより、システムの電力消費を最小限にすることに対応する、請求項２０に記載の方法。
【請求項２３】
前記設定することは、少なくとも１つのメモリ装置のカレントアクティブ幅レジスタに選択されたデータ幅に対応するコンフィギュレーションコードをロードすることを含む、請求項１７に記載の方法。
【請求項２４】
前記設定することは、カレントアクティブ幅レジスタにコンフィギュレーションコードを書き込むため少なくとも１つのメモリ装置にアドレスされたコマンドを発することを含む、請求項２３に記載の方法。
【請求項２５】
システムは、直列に接続された複数のメモリ装置を含む、請求項２３に記載の方法。
【請求項２６】
前記設定することは、複数のメモリ装置の各々のカレントアクティブ幅レジスタにコンフィギュレーションコードを書き込むため、複数のメモリ装置によって認識され得るブロードキャストアドレスを有するコマンドを発することを含む、請求項２５に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
フラッシュメモリは、ディジタルカメラやポータブルディジタル音楽プレイヤなどの民生電子装置の大量記憶としての広汎の不揮発性メモリタイプに広く使用されている。１つのフラッシュコンポーネントのサイズが典型的に小さいので、現在利用可能なフラッシュメモリコンポーネントの集積度は、２つのスタックされたダイから構成され、３２Ｇビット（４ＧＢ）であることができ、これは、一般的なＵＳＢフラッシュ装置の利用に適している。
【０００２】
８メガ（８００万）画素のディジタルカメラや、音楽やビデオ機能があるポータブルディジタルエンターテイメント装置の出現は、大量データを蓄積するための超高容量の要求を促しているが、これは、単一のフラッシュメモリ装置によって応じることができない。それゆえ、多数のフラッシュメモリ装置が共にメモリシステムに組み込まれ、利用可能な蓄積容量を効果的に増加させる。例えば、２０ＧＢのフラッシュメモリの蓄積密度がこのようなアプリケーションに要求される。
【０００３】
図１は、ホストシステム１２に結合される従来のシステム１０のブロック図である。従来のシステム１０は、ホストシステム１２と通信するメモリコントローラ１４と、多数の不揮発性メモリ装置１６とを含む。ホストシステム１２は、マイクロコントローラ、マイクロプロセッサ、またはコンピュータシステムのような処理装置を含む。図１の従来のシステム１０は、１つのチャンネル１８を含むように構成され、メモリ装置１６がチャンネル１８に並列に接続されている。当業者であれば、従来のシステム１０は、チャンネルに接続された多数のメモリ装置あるいは４つよりも少ないメモリ装置をもつことができることを理解されよう。
【０００４】
チャンネル１８は、１組の共通のバスを含み、バスは、全ての対応するメモリ装置に接続されたデータおよび制御線とを含む。各々のメモリ装置は、メモリコントローラ１４により提供された各チップ選択（イネーブル）信号ＣＥ１＃、ＣＥ２＃、ＣＥ３＃およびＣＥ４＃によって、動作可能（イネーブル）にされたり、非動作（ディスエーブル）にされる。“＃”は、信号がアクティブローの論理信号であることを示す。せいぜい、チップ選択信号の１つが、典型的に同時に選択される。メモリコントローラ１４は、ホストシステム１２の動作に応答して選択されたメモリ装置にチャンネル１８を介してコマンドおよびデータを発する責任がある。メモリ装置からのリードデータの出力は、チャンネル１８を経由してメモリコントローラ１４およびホストシステム１２へ転送される。従来のシステム１０の動作は、同期型または非同期型であることができる。図１は、クロック（ＣＫ）を使用する同期型システムの一例を示しており、クロックは、チャンネル１８上のデータ転送が同期されるように各々のメモリ装置１６に並列に提供される。従来のシステム１０は、概してマルチドロップバスを含むと言われ、メモリ装置１６がチャンネル１８に対して並列に接続されている。
【０００５】
従来のシステム１０では、不揮発性のメモリ装置１６は、実質的に互いに同一であることができ（しかし、同一は必要とされなくてもよい）、かつ典型的にＮＡＮＤフラッシュメモリである。当業者であれば、フラッシュメモリが複数のバンクに構成され、かつ各バンクが複数のブロックに構成されブロック消去を容易にすることを理解されよう。市販で入手可能なＮＡＮＤフラッシュメモリ装置は、２つのメモリバンクを有するものがある。
【０００６】
システムの性能に逆行して影響を与える可能性のある具体的な問題がある。従来のシステム１０の構成は、物理的な性能の制限を課している。システム間を延びる多数の並列信号が存在し、並列信号が搬送する信号のインテグリティは、クロストーク、シグナルスキュー（signal skew）、および同時のスイッチングノイズ（simultaneous switching noise、ＳＳＮ）によって劣化されることがある。このようなシステムにおける入力／出力の電力消費は、フラッシュコントローラとフラッシュメモリ装置間の各信号トラックが信号を送るために頻繁に充電されたり放電されたりするので、問題となる。システムクロックの周波数を増加させると、電力消費は増加する。
【０００７】
１つのメモリ装置の駆動能力は、長い信号トラックのローディングに比べて小さいので、チャンネルに並列に接続され得るメモリ装置の数に実用上の制限がある。さらに、メモリ装置の数が増えるにつれ、より多くのチップイネーブル信号（ＣＥ＃）が要求され、さらに、ＣＫは追加のメモリ装置へ配線される必要が生じ、それらのすべては、メモリ装置に配線されるだけ長くなる。広範囲のクロック分配によるクロック性能の問題は、従来より良く知られており、多くのメモリ装置１６を有する大規模な従来のシステムにおいて問題となる。それゆえ、従来のシステムにとって、多くのメモリ装置を含ませるためには、メモリ装置が多重チャンネルで拡張されるか、メモリシステムの周波数動作が制限されるかである；どちらの選択も妥協を含んでいる。多重チャンネルと追加のチップイネーブル信号を有するコントローラは、システムのコストを増加させる。さもなくば、システムは、少ない数のメモリ装置に制限される。
【０００８】
図１のマルチドロップの従来のシステム１０では、各メモリ装置１６のデータ幅は同一でなければならない。例えば、データチャンネル幅が３２ビットであるならば、各メモリ装置１６は、ｘ３２の装置でなければならない。もし、他のマルチドロップシステムが８ビットのデータチャンネル幅を有するならば、ｘ３２のメモリ装置を利用することはできない。代わりに、異なるｘ８のメモリ装置が、使用のために必要とされる。従って、メモリ装置の製造者は、可能性のあるシステムの構成に対応するために、種々のデータ幅を有する同一のメモリ装置のバージョンを生産することになる。
【０００９】
より小さなフォームファクタ製品を求める消費者が増加するにつれ、製造者は、図１の従来のシステム１０のような半導体チップによって占有される面積や空間を最小化する方法を見つける必要がある。各々のメモリ装置のチップは小さいけれども、チップをカプセル封止するパッケージは、チップの入力／出力パッドとプリント回路基板（ＰＣＢ）のトレース間の信号を結合するパッケージピンの数によって決定される大きなサイズを有する。残念ながら、図１の従来のシステム１０は、最小化されたＰＣＢ面積を要求するアプリケーションには適していない。各メモリ装置とメモリコントローラは、パッケージサイズが、データ幅の増加するにつれても大きくなるので、ｘ８、ｘ１６、もしくはｘ３２のデータチャンネル幅により、大きなＰＣＢの面積を占有する。もし、パッケージサイズを最小化するようにデータ幅が減少されるならば、総メモリシステムのピークの帯域幅が減少するので、性能は不利な影響を受ける。
【００１０】
それゆえ、最小の基板領域を消費する高性能システムを提供することが望まれる。
【図面の簡単な説明】
【００１１】
本発明の実施例は、添付の図面を参照して、例を利用することで、ここに説明される。
【図１】図１は、フラッシュ装置を含む従来のシステムのブロック図である。
【図２Ａ】図２Ａは、並列クロック信号を受け取るシステムのブロック図である。
【図２Ｂ】図２Ｂは、ソース同期クロック信号を直列に受け取るシステムのブロック図である。
【図３Ａ】図３Ａは、図２Ｂのシステムの詳細なブロック図である。
【図３Ｂ】図３Ｂは、図２Ａのシステムの詳細なブロック図である。
【図４】図４は、図３Ａと図３Ｂのシステムで利用されるための、コアと入力／出力インターフェースとを有する一般的なメモリ装置のブロック図である。
【図５Ａ】図５Ａは、パッケージを介してＰＣＢに相互接続されたメモリ装置の例示である。
【図５Ｂ】図５Ｂは、直列に接続されたメモリダイを含むパッケージ装置のシステムの例示である。
【図６】図６は、構成可能なデータ幅を有するメモリ装置の実施例のブロック図である。
【図７】図７は、動的に調整可能なシステムの実施例のブロック図である。
【図８Ａ】図８Ａは、本実施例による、システムのアクティブデータ幅をセットする方法のフローチャートである。
【図８Ｂ】図８Ｂは、構成可能なデータ幅を有するシステムの例示である。
【図９】図９は、図３Ａと図３Ｂのシステムのための、モジュラーコマンドパケット構造の例示である。
【図１０】図１０は、図３Ａと図３Ｂのシステムを動作するための例示的なモジュラーコマンドパケットを掲載する表である。
【図１１】図１１は、図３Ａと図３Ｂのシステムのメモリ装置における装置アドレス論理の回路例である。
【図１２】図１２は、図１１で示されたブロードキャストアドレス検出器の回路例である。
【図１３】図１３は、図１１で表されたブロードキャストアドレスの別の回路例である。
【図１４】図１４は、本実施例による、図３Ａと図３Ｂのシステムにおけるブロードキャスト動作を実行する方法のフローチャートである。
【図１５】図１５は、本実施例による、図３Ａと図３Ｂのシステムのための有効な読み出し動作を例示するシーケンス図である。
【図１６】図１６は、本実施例による、図３Ａと図３Ｂのシステムのための有効な読み出し動作を例示するシーケンス図である。
【図１７】図１７は、図６に示されたメモリ装置のデータ出力制御論理とデータ出力回路の回路例である。
【図１８】図１８は、無効な読み出し動作を例示するシーケンス図である。
【図１９】図１９は、他の無効な読み出し動作を例示するシーケンス図である。
【図２０】図２０は、他の無効な読み出し動作を例示するシーケンス図である。
【図２１】図２１は、本実施例による、データ出力禁止アルゴリズムのフローチャートである。
【発明の詳細な説明】
【００１２】
第１の態様では、メモリコントローラとメモリ装置とを有するシステムが提供される。メモリコントローラは、第１の数の出力ポートを含み、メモリコントローラは、第１の数の出力ポートのうちの１つの出力ポートから、最大データ幅構成データをアクセスするためのコマンドを提供する。メモリ装置は、最大データ幅構成データを格納するための入力／出力レジスタ、第２の数のデータ入力パッド、および第２の数のデータ出力パッドを含む。メモリ装置は、第２の数のデータ入力パッドのうちの１つのデータ入力パッドでコマンドを受け取り、第２の数のデータ出力パッドのうちの１つのデータ出力パッドから、最大データ幅構成データを提供する。本態様の実施例によれば、最大データ幅構成データは、入力／出力レジスタにハードワイヤー接続（hardwired）され、メモリコントローラは、第１の数の入力ポートのうちの１つの入力ポートから最大データ幅構成データを受け取るための第１の数の入力ポートを含む。他の実施例では、すべての第２の数のデータ入力パッドは、１つのデータを除いてディスエーブルされ、すべての第２の数のデータ出力パッドは、１つのデータ出力パッドを除いてディスエーブルされる。
【００１３】
実施例のある態様では、メモリ装置は、メモリコントローラから受け取られた構成コードを格納するためのカレントアクティブ幅レジスタを含む。構成コードは、第３の数のデータ入力パッドと第３の数のデータ出力パッドをイネーブルし、第３の数は、第２の数よりも小さいかそれに等しい。さらに、メモリ装置は、パッケージにカプセル封止されたメモリダイを含み、パッケージは、第４の数のデータ入力ピンとデータ出力ピンを有する。この実施例では、最も小さい共通の数のデータ入力ピンは、最も小さい共通の数のデータ入力パッドに電気的に接続さる、ここで、最も小さい共通の数は、第２の数および第４の数よりも小さい。第３の数は、１と最も小さい共通の数の間にあることができる。実施例の他の態様では、第１の数の出力ポートを第４の数の入力ピンへに電気的に接続する第５の数の導電性トラックが提供され、第３の数は、最も小さい共通の数と第５の数の導電性トラックよりも小さい。
【００１４】
第２の態様では、カレントアクティブ幅レジスタ、第１のデータ入力／出力回路ブロック、および第２のデータ入力／出力回路ブロックを有するメモリ装置が提供される。カレントアクティブ幅レジスタは、構成コードを格納アする。第１のデータ入力／出力回路ブロックは、データ入力パッドから構成コードを受け取る。データ入力／出力回路ブロックは、構成コードをカレントアクティブ幅レジスタへ送る。第２のデータ入力／出力回路ブロックは、カレントアクティブ幅レジスタに格納された構成コードに応答して選択的にイネーブルされる。本態様の実施例では、さらに、最大データ幅構成データを格納するための入力／出力レジスタが提供され、最大データ幅構成データは、データ出力パッドを介して、第１のデータ入力／出力回路ブロックにより提供される。本実施例のさらなる態様では、カレントアクティブ幅レジスタ、第１のデータ入力／出力回路ブロック、第２のデータ入力／出力回路ブロック、入力／出力レジスタ、データ入力パッド、およびデータ出力パッドは、パッケージ内に封止されたメモリダイに形成される。パッケージは、第１のデータ入力／出力回路ブロックに結合された１つのデータ入力ピンを厳密に含むことができる。これとは別に、パケージは、第１の入力／出力データ回路ブロックに結合された第１データ入力ピンと、第２の入力／出力回路ブロックに結合された第２のデータ入力ピンとを含むことができる。さらに、パッケージは、少なくとも１つ以上の追加のデータ入力ピンを含むことができる。
【００１５】
第３の態様では、リングトポロジー構成でメモリコントローラに接続された少なくとも１つのメモリ装置を有するシステムのためにデータ幅をセットする方法が提供される。この方法は、少なくとも１つのメモリ装置に格納された構成データをアクセスすることを含み、構成データは、少なくとも１つのメモリ装置の最大データに対応するものであり；すべての構成データの最小データ幅を決定し；そして、１と少なくとも１つのメモリ装置の最小データ幅との間の選択されたデータ幅をセットする。本態様の実施例によれば、アクセスは、少なくとも１つのメモリ装置に識別番号を割り当てること、１つのデータ幅に対応する単一のデータライン上にリードコマンドを直列に発することを含む。本実施例の態様では、選択されたデータ幅は、システムの動作プロファイルによって決定され、動作プロファイルは、選択されたデータ幅を最小のデータ幅にセットすることにより、システムの性能を最大化することに対応する。これとは別に、動作プロファイルは、選択されたデータ幅を１にセットすることによって、システムの消費電力最小化することに対応する。
【００１６】
本態様のさらなる実施例では、設定（セッティング）は、少なくとも１つのメモリ装置のカレントアクティブ幅レジスタに選択されたデータ幅に対応する構成コードをロードすることを含む。設定は、さらに、構成コードをカレントアクティブ幅レジスタに書き込むため、少なくとも１つのメモリ装置にアドレスされたコマンドを発することを含む。他の実施例では、システムは、直列に接続された複数のメモリ装置を含み、また設定は、複数のメモリ装置の各々のカレントアクティブ幅レジスタに構成コードを書き込むため、複数のメモリ装置によって認識することができるブロードキャストアドレスでコマンドを発することを含む。
【００１７】
第４の態様では、メモリコントローラを有するリングトポロジー構成で直列に接続されたメモリ装置にコマンドをブロードキャストする方法を提供する。この方法は、コマンドに対応するオペコードと、ブロードキャストアドレスとを有する１つのコマンドパケットを発すること；メモリ装置で直列にコマンドパケットを受け取り、各メモリ装置が割当てられた装置アドレスおよびブロードキャストアドレスを認識するよう構成されること；ブロードキャストアドレスに応答して各メモリ装置でオペコードを実行すること；そして、メモリ装置のうちの最後のメモリ装置からメモリコントローラへコマンドパケットを渡し、ブロードキャストを終了することを含む。本態様の実施例では、コマンドパケットは、２ｎの総装置アドレスを提供するため、ｎ−ビットの長さのアドレスフィールドを含み、総装置アドレス（２ｎ）−１は、装置アドレスを割当てられ、総装置アドレス（２ｎ）−１のうちの１つは、ブロードキャストアドレスである。ブロードキャストアドレスは、２ｎの総装置アドレスのうちの最も高い論理アドレスであることができ、各メモリ装置は、オペコードの実行をイネーブルするため、ブロードキャストアドレスを論理的にデコードする。これとは別に、割当てられたブロードキャストアドレスは、各メモリ装置に格納され、オペコードの実行をイネーブルするため、ブロードキャストアドレスが、割当てられたブロードキャストアドレスに一致するようにする。
【００１８】
第５の態様では、メモリ装置のデータ出力を禁止する方法が提供される。この方法は、リードデータを出力するためのデータ出力制御信号を受け取ること；そして、前に受け取ったコマンドが非リード関連コマンドに対応するとき、データ出力回路を禁止し、前に受け取ったコマンドがリード関連コマンドに対応するとき、データ出力回路をイネーブルすることを含む。本態様の実施例では、禁止することは、論理“１”のデータと論理“０”のデータの１つに対応する連続的な一連のデータを出力することを含む。イネーブルすることは、データ出力制御信号がアクティブな論理レベルにある間に、クロックに応答してシリアルデータレジスタを動作させ、リードデータを直列に提供することを含む。禁止することは、データ出力制御信号がアクティブな論理レベルにある間に、クロックをシリアルデータレジスタから非結合にすることを含む。本実施例では、前に受け取られたコマンドは、アクティブ論理レベルでコマンドラッチ信号に応答してラッチされ、書き込み動作に対応する制御信号がコマンドラッチ信号のアクティブ論理レベルに応答してラッチされたとき、クロックは、シリアルデータレジスタから論理的に非結合にされる。
【００１９】
第６の態様では、シリアルデータレジスタ、第１の論理回路および第２の論理回路を含む、リードデータ出力回路が提供される。シリアルデータレジスタは、クロックに応じて直列にリードデータを出力する。第１の論理回路は、データ出力制御信号のアクティブ論理レベルに応答して、クロックをシリアルデータレジスタに結合する。第２の論理回路は、非リード関連動作中にクロックをディスエーブルする。
【００２０】
図１の従来のシステム１０の多くの性能の問題を解決するシステムは、メモリ装置が、リングトポロジー構成（ring topology configuration）で、互いにかつメモリコントローラに直列に接続されるシステムである。図２Ａおよび図２Ｂは、本実施例によるシステムの概念的な本質を示したブロック図である。図２Ａは、並列クロック信号を受け取るシステムのブロック図であり、図２Ｂは、ソース同期型クロック信号を受け取る図２Ａと同一システムのブロック図である。クロック信号は、単一終端のクロック信号（single ended clock signal）か差動クロック対のどちらかであることができる。
【００２１】
図２Ａでは、システム２０は、少なくとも１つの出力ポートＳｏｕｔと入力ポートＳｉｎとを有するメモリコントローラ２２と、直列に接続されたメモリ装置２４、２６、２８および３０とを含む。図２Ａには示されていないが、各々のメモリ装置は、Ｓｉｎ入力ポートとＳｏｕｔ出力ポートとを有する。入力および出力ポートは、メモリ装置をメモリ装置の一部であるシステムにインターフェースする１つまたはそれ以上の物理的なピンまたは接続から成る。１つの実施例では、メモリ装置は、フラッシュメモリ装置であることができる。あるいは、メモリ装置は、ＤＲＡＭ、ＳＲＡＭまたは他のタイプのメモリ装置であることができ、メモリ装置は、コマンド（命令）を実行したり、次のメモリ装置にコマンドおよびデータを通過させるため、特定のコマンド構造に互換性のある入力／出力インターフェースを有する。図２Ａの例は、４つのメモリ装置を含んでいるが、他の実施例は、単一のメモリ装置か、適切な数のメモリ装置を含むことができる。従って、もし、メモリ装置２４が、Ｓｏｕｔに接続されるようにシステム２０の最初の装置であるならば、メモリ装置３０は、Ｓｉｎへ接続されるようにＮ番目または最後の装置であり、ここで、Ｎは、０よりも大きな整数である。メモリ装置２６ないし２８は、最初のメモリ装置と最後のメモリ装置間に介在する直列に接続されたメモリ装置である。各々のメモリ装置は、システムの電力投入の初期化後に、識別可能な識別（ＩＤ）番号、または装置アドレス（ＤＡ）を決定することができ、その結果、それらの装置は個々にアドレス可能である。共有の米国特許出願第１１／６２２，８２８号、発明の名称”APPARATUS AND METHOD FOR PRODUSING IDS FOR INBERCONNECTED DEVICES OF MIXED TYPE”,米国特許番号第１１／７５０，６４９号、発明の名称”APPARATUS AND METHOD FOR ESTABLISHING DEVICE IDENTIFIERS FOR SERIALLY INTERCONNEDTED DEVISED”,米国特許番号第１１／６９２，４５４号、発明の名称”APPARATUS AND METHOD FOR PRODUXING DEVICE IDENTIFIERS FOR SERIALLY INTERCONNECTED DEVICES OF MIXED TYPE”,米国特許番号第１１／６９２，４４６号、発明の名称”APPARATUS AND METHOD FOR PRODUXING IDENTIFIERS REGARDLESS OF MIXED DEVICE TYPE IN A SERIAL INTERCONNECTION”,米国特許番号第１１／６９２，３６２号、発明の名称”APPARATUS AND METHOD FOR IDENTIFYING DEVIDE TYPE OF SERIALLY INTERCONNEDTED DEVICES”,米国特許番号第１１／７７１，０２３号、発明の名称”ADDRESS ASSIGNMENT AND TYPE RECOGNITION OF SERIALLY INTERCONNEDTED MEMORY DEVICES OF MIXED TYPE”,および米国特許番号第１１／７７１，２４１号、発明の名称”SYSTEM AND METHOD OF OPERATING MEMORY DEVICES OF MIXED TYPE”は、システムに直列に接続されたメモリで装置についての装置アドレスを発生させかつ割り当てる方法を説明しており、それらの内容は引用することにより全体的にここに包含される。
【００２２】
メモリ装置２４ないし３０は、直列に接続されていると考えられる。なぜなら、１つのメモリ装置のデータ入力は、前のメモリ装置のデータ出力に接続され、これにより、連鎖の中の最初と最後のメモリ装置を除いて、直列接続のシステム構成を形成するからである。メモリコントローラ２２のチャンネルは、分離されたピンまたは同一のピンによって提供され、導電性のラインに接続されたデータ、アドレス、および制御情報を含む。図２Ａの実施例は、１つのチャンネルを含み、１つのチャンネルは、Ｓｏｕｔと対応するＳｉｎポートを含む。しかしながら、メモリコントローラ２２は、個々のメモリ装置の連鎖に適応する適切な数のチャンネルを含むことができる。図２Ａの例では、メモリコントローラ２２は、クロック信号ＣＫを提供し、クロック信号ＣＫは、すべてのメモリ装置に並列に接続される。
【００２３】
一般的な動作では、メモリコントローラ２２は、そのＳｏｕｔポートを通じてコマンド（命令）を発し、Ｓｏｕｔポートは、オペレーションコード（オペコード）、装置アドレス、読出しまたはプログラムのための任意のアドレス情報、およびプログラムのためのデータを含む。コマンドは、直列のビットストリームコマンドパケットのように発せられることができ、パケットは、予め決められた大きさのセグメントに論理的に分割されることができる。各セグメントは、例えば１バイトの大きさであることができる。ビットストリームは、時間上に提供されるビットのシーケンスまたは連続である。コマンドは、最初のメモリ装置２４によって受け取られ、メモリ装置２４は、装置アドレスを、割当てられたアドレスと比較する。もし、アドレスが一致するならば、メモリ装置２４は、コマンドを実行する。コマンドは、自身の出力ポートＳｏｕｔを介して次のメモリ装置２６へ渡され、同様の手順が繰り返される。最終的に、一致する装置アドレスを有するメモリ装置（以下、選択されたメモリ装置）は、コマンドによって特定された動作を実行する。もし、コマンドがリードデータコマンドであるならば、選択されたメモリ装置は、リードデータをその出力ポートＳｏｕｔ（図で示されていない）を介して出力し、これは、メモリコントローラ２２のＳｉｎポートに到達するまで介在するメモリ装置を介して直列に送られる。コマンドとデータは、直列のビットストリームで提供されるので、クロックは、直列のビットをクロックイン／アウトするために、また、内部のメモリ装置の動作を同期化するために、各々のメモリ装置によって使用される。このクロックは、システム２０のすべてのメモリ装置によって使用される。
【００２４】
図２Ａによるシステムで使用されるクロック周波数は、比較的低いので、終端しない十分な振幅（unterminated full swing）のＣＭＯＳの信号レベルは、堅牢なデータ通信を提供するために使用することができる。これはまた、ＬＶＴＴＬ信号として言及され、当業者には公知である。
【００２５】
図２Ａのシステム２０のさらなる性能の改善は、図２Ｂのシステムにより得ることができる。図２Ｂのシステム４０は、ソース同期クロック信号ＣＫを提供する別のメモリコントローラ４２から各々のメモリ装置にクロック信号ＣＫが直列に提供されることを除けば、図２Ａのシステム２０と類似している。各々のメモリ装置４４、４６、４８および５０は、クロック入力ポートにソース同期クロックを受け取ることができ、そしてそれを、クロック出力ポートを介してシステム内の次の装置へ転送することができる。システム４０の例では、クロック信号ＣＫは、１つのメモリ装置から、短い信号ラインを介して、別のメモリ装置へと送られる。それゆえ、並列クロック分配スキームに関連したクロック性能の問題は存在せず、クロックＣＫは、高い周波数で動作することができる。従って、システム４０は、図２Ａのシステム２０よりも非常に高速で動作することができる。例えば、高速トランシーバ論理（high speed transceiver logic、ＨＳＴＬ）信号送信は、高性能のデータ通信を提供するために利用され得る。ＨＳＴＬ信号送信フォーマットでは、各々のメモリ装置は、入力されるデータ信号の論理状態を決定するために用いられる基準電圧を受け取ることができる。他の類似の信号送信フォーマットは、ＳＳＴＬ信号送信フォーマットである。従って、システム２０と４０のメモリ装置のデータおよびクロック入力回路は、互いに異って構成される。ＨＳＴＬおよびＳＳＴＬ信号送信フォーマットの双方は、当業者には周知である。
【００２６】
図３Ａおよび図３Ｂは、システムのブロック図であり、図３Ａのシステムのメモリ装置は、クロックを並列に受け取り、図３Ｂのシステムのメモリ装置は、クロックを直列に受け取る。ここで述べられる実施例では、双方のシステムは、メモリコントローラを有するリングトポロジーで互いに直列に接続されたメモリ装置を有するシステムである。各々のメモリ装置は、メモリコントローラもしくは前のメモリ装置から受け取られた１つもしくはそれ以上のシリアルビットストリームでコマンドおよびデータを受け取るように設計される。概して、コマンドおよび読み出されたデータは、システム内の各メモリ装置を介して直列に流れる。従って、このようなメモリ装置は、それらの入力および出力インターフェース回路がデータを直列に受け取りかつ提供するので、シリアルメモリ装置として参照され得る。図３Ａと図３Ｂのシステムの実施例では、４つのメモリ装置が示され、メモリコントローラを有するリングトポロジーで直列に接続されているが、適切な数のメモリ装置がいずれのシステムにおいて含み得る。
【００２７】
図３Ａにおいて、システム１００は、メモリコントローラ１０２と、４つのメモリ装置１０４、１０６、１０８および１１０とを含む。メモリコントローラ１０２は、制御信号をメモリ装置へ並列に提供する。これらは、チップイネーブル信号ＣＥ＃と、リセット信号ＲＳＴ＃とを含む。ＣＥ＃の１つの使用例では、メモリ装置は、ＣＥ＃が低論理レベルにあるとき、イネーブルされる。先に検討された装置では、フラッシュメモリ装置が一旦プログラムまたは消去動作を開始すると、ＣＥ＃は、アサートされなくなるか(de-asserted)、つまりは高論理レベルに駆動される。しかしながら、本実施例では、アサートされないＣＥ＃は、ディスエーブルされたシリアルメモリ装置のＳｉｎからＳｏｕｔへの通信を無効にする効果を有する。シリアルメモリ装置はリング状に接続されるので、メモリ装置をディスエーブルすることは、リング内の通信を遮断し、メモリコントローラは、メモリシステム内のすべてのメモリ装置と通信することができなくなる。
その結果、ＣＥ＃は、すべてのシリアルメモリ装置への共通の信号であり、ＣＥ＃は、全体のメモリを低電力状態に置くために利用される。ＲＳＴ＃の１つの使用例では、メモリ装置は、ＲＳＴ＃が低論理レベルのとき、リセットモードにセットされる。リセットモードでは、電力は安定化され、メモリ装置は、すべての限りのあるステートマシンを（finite state machines）を初期化し、かつコンフィギュレーションおよび状態レジスタをデフォルト状態にリセットすることよって、動作のためそれ自身を準備させる。メモリコントローラ１０２は、相補的なクロック信号ＣＫおよびＣＫ＃を提供するクロック出力ポートＣＫＯ＃とＣＫＯと、システムの最後のメモリ装置からの相補的なクロック信号を受け取るクロック入力ポートＣＫＩ＃とＣＫＩを含む。各メモリ装置は、受信したクロックの位相を生成するためのＤＬＬもしくはＰＬＬのようなクロックシンセサイザを含むことができる。ある位相は、内部的に信頼性のある動作を確実にするため、入力データの有効なウィンドー内にクロックエッジを集めるために利用される。各メモリ装置は、相補的なクロック信号を次のメモリ装置のクロック入力ポートへ通過させるためのクロック出力ポートＣＫＯ＃およびＣＫＯと、メモリコントローラ１０２もしくは前のメモリ装置のいずれかから相補的なクロック信号を受け取るためのクロック入力ポートＣＫＩおよびＣＫＩ＃を有する。最後のメモリ装置１１０は、クロック信号を元のメモリコントローラ１０２へ提供する。
【００２８】
メモリコントローラ１０２のチャンネルは、データ出力ポートＳｏｕｔ、データ入力ポートＳｉｎ、コマンドストローブ入力ＣＳＩ、コマンドストローブ出力ＣＳＯ（ＣＳＩのエコー）、データストローブ入力ＤＳＩ、およびデータストローブ出力ＤＳＯ（ＤＳＩのエコー）を含む。出力ポートＳｏｕｔと入力ポートＳｉｎは、１ビットの幅か、もしくはｎビットの幅であることができる。ｎは正の整数であり、メモリコントローラの特性に依存する。例えば、ｎが１であるとすれば、１バイトのデータは、データをラッチする８つのクロックエッジ後に受け取られる。データをラッチするクロックエッジは、例えば、シングルデータレート（ＳＤＲ）動作の立ち上がりクロックエッジ、あるいは、例えば、ダブルデータレート（ＤＤＲ）の立ち上がりエッジおよび立下りエッジの双方であることができる。もし、ｎが２である場合は、１バイトのデータは、４つのラッチするクロックのエッジの後に受け取られる。もし、ｎが４である場合は、１バイトのデータは、２つのラッチするクロックエッジ後に受け取られる。メモリ装置は、ＳｏｕｔおよびＳｉｎの幅について、静的に構成されあるいは動的に構成されることができる。それゆえ、ｎが１よりも大きい場合の構成では、メモリコントローラは、並列のビットストリームのデータを提供する。ＣＳＩは、入力ポートＳｉｎに出現するラッチコマンドデータを制御しまたはイネーブルするために使用され、また、ＣＳＩは、コマンドがデータ入力ポートＳｉｎに存在するときの時間を定めるパルス持続時間を有する。より具体的には、コマンドデータは、多数のクロックサイクルによって測定された持続時間を有し、ＣＳＩ信号のパルス持続時間は、対応する持続時間を有することになる。ＤＳＩは、リードデータを出力するため、選択されたメモリ装置の出力ポートＳｏｕｔバッファをイネーブルするために用いられ、ＤＳＩは、データ出力ポートＳｏｕｔから提供されるリードデータの範囲を定めるパルス持続時間を有し、その結果、メモリコントローラは、最後のメモリ装置からのリターン中のデータをいつラッチすべきかを知る。
【００２９】
図３Ａのここで述べられた実施例は、高速動作を意図されているので、ＨＳＴＬ信号送信フォーマットのような高速信号送信フォーマットが使用される。それゆえ、基準電圧ＶＲＥＦは、各々のメモリ装置に提供され、かつＳｉｎ、ＣＳＩおよびＤＳＩ入力ポートで受け取られた信号の論理レベルを決定するために各メモリ装置によって利用される。基準電圧ＶＲＥＦは、例えばプリント回路基板上の他の回路によって発生されてもよく、基準電圧ＶＲＥＦは、ＨＳＴＬ信号の電圧スイングの中間地点に基づき、予め決められた電圧レベルにセットされる。
【００３０】
図３Ａの実施例の使用では、各メモリ装置は、プリント回路基板上に位置決めされ、あるメモリ装置のＳｏｕｔ出力ポートピンと、リング内の隣のメモリ装置のＳｉｎ入力ポートピンとの間の距離と信号トラックの長さが最小にされる。これとは別に、４つのメモリ装置は、システムインパッケージモジュール（ＳＩＰ）内に集めることができ、これは、さらに信号トラックの長さを最小にする。メモリコントローラ１０２およびメモリ装置１０４ないし１１０は、リングトポロジーを形成するために直列に接続され、すなわち、最後のメモリ装置１１０は、その出力をもとのメモリコントローラ１０２へ提供する。従って、メモリ装置１１０とメモリコントローラ１０２との間の距離が簡単に最小化されることが当業者に理解される。
【００３１】
図３Ｂでは、システム２００は、メモリコントローラ２０２と、メモリ装置２０４、２０６、２０８および２１０とを含む。メモリコントローラ２０２は、クロック信号が並列に提供されることを除いて、図３Ａで例示されたメモリコントローラ１０２のものと類似した機能を提供するよう設計され得る。それゆえ、各メモリ装置のクロック出力ポートＣＫＯ＃およびＣＫＯは、備え付けられていないか、あるいは接続されない。さらに、データおよびストローブ信号のための信号送信フォーマットは、図３Ｂのシステムと比較して図３Ａのシステムと異なる。例えば、図３Ｂのシステムの信号送信フォーマットは、フルスイングの終端しないＬＶＴＴＬ（full swing un-terminated LVTTL）信号送信フォーマットであることができる。低クロック周波数であるいは低クロック周波数と関連して使用されるＬＶＴＴＬ信号送信は、基準電圧ＶＲＥＦを使用しない。図３Ｂのシステムでのみ使用するためのメモリ装置は、ＶＲＥＦ入力を必要としない。もし、ＶＲＥＦ入力が存在すれば、それは、ＶＲＥＦを必要とする高速信号送信規定によりメモリ装置が通信を行うことができるためである。そのような場合、ＶＲＥＦは、都合の良い信号送信の中間地点以外の電圧レベルにセットされるか、もしくは、ＬＶＴＴＬ信号送信が利用されていることを示すようにセットされる。例えば、そのような装置にとっては、ＶＲＥＦは、ＶＤＤかＶＳＳのどちらかにセットされることができ、ＬＶＴＴＬ信号送信および図３Ｂによるネットワーク構成を示し、これは、ＨＳＴＬ信号送信および図３Ａによるネットワーク構成とは対照的である。
【００３２】
本実施例によれば、図３Ａのメモリ装置１０４、１０６、１０８および１１０と、図３Ｂのメモリ装置２０４、２０６、２０８および２１０は、他のメモリ装置に直列の相互接続のために設計された入力／出力インターフェースを有するあらゆるタイプのメモリ装置であることができる。ここで述べられた実施例によると、図３Ａおよび図３Ｂのメモリ装置は同一であることができ、それゆえ、図３Ａおよび図３Ｂのメモリ装置は、両システムにおいて動作可能である。その理由は、それらのメモリ装置が、ＬＶＴＴＬ入力信号またはＨＳＴＬ入力信号で動作することのできる入力および出力バッファ回路を有するからである。メモリ装置がＬＶＴＴＬもしくはＨＳＴＬ信号と等価な他のタイプの信号フォーマットで動作する入力および出力バッファ回路を含み得ることを当業者は理解しよう。これらのメモリ装置は、フラッシュメモリ装置を含むことができるが、これらのメモリ装置はまた、ＤＲＡＭ、ＳＲＡＭ、またはその他の適切なタイプの揮発性または不揮発性のメモリ装置であることができる。
【００３３】
図４は、図３Ａおよび図３Ｂのシステムでの使用に適したコアと入力／出力インターフェースとを有する一般的なメモリ装置の概念的な構成を例示するブロック図である。メモリ装置３００は、メモリコアを含み、メモリコアは、メモリアレイバンク３０２と３０４と、メモリアレイバンク３０２および３０４へアクセスするための制御およびＩ／Ｏ回路３０６を含む。当業者は、メモリアレイがシングルメモリバンク、もしくは２つ以上のメモリバンクで構成され得ることを理解しよう。メモリコアは、例えば、ＤＲＡＭ、ＳＲＡＭ、ＮＡＮＤフラッシュ、もしくはＮＯＲフラッシュメモリをベースとすることができる。もちろん、他の適切な新生のメモリやその対応する制御回路が利用され得る。それゆえ、メモリコアのタイプによって、回路ブロック３０６は、誤り訂正論理、電圧発生器、リフレッシュ論理、および、メモリタイプに備わった動作を実行するために必要とされる他の回路ブロックを含むことができる。
【００３４】
典型的に、メモリ装置は、内部の制御信号をアサートすることによって、受け取ったコマンドに応答して関連する回路を初期化するためのコマンドデコーダーを使用する。それらはまた、データ、コマンドおよびアドレスを受け取りかつラッチするための公知のＩ／Ｏ回路を含む。従来のフラッシュメモリの対応する回路とは異なり、本発明のメモリ装置は、シリアルインターフェースと制御論理ブロック３０８とを含む。このブロックは、ＲＳＴ＃、ＣＥ＃、ＣＫ＃、ＣＫ、ＣＳＩ、ＤＳＩおよびＳｉｎの入力を受け取り、Ｓｏｕｔ、ＣＳＯ、ＤＳＯ、ＣＫＯ、およびＣＫＯ＃の出力を提供する。
【００３５】
インターフェースおよび制御論理ブロック３０８は、共有の米国特許公開第２００７００７６４７９Ａ１で述べられているように、様々な機能に対して責任をもつ。インターフェースおよび制御論理ブロック３０８の例示的な機能は、装置に識別番号をセットすること、データを次の直列に接続されたメモリ装置へ渡すこと、ならびに、本来の動作を実行するために受け取ったコマンドをデコードすることを含む。この回路は、コマンドを直列に受け取り、メモリアレイに情報を蓄積しあるいはそこから抽出するコマンドを含むコアメモリ回路を制御するために特有な本来のコマンドに加えて、メモリ装置のシリアル動作を制御しまたは構成するべき特有のコマンドを含む。例えば、ここで述べられた実施例のメモリ装置は、シリアルリンクの管理に関連するコマンド（例えば、状態レジスタにリードアクセスを提供するコマンド）に加えて、情報の蓄積や抽出に関連する本来のコマンドの双方のコマンドに応じる。コマンドセットは、メモリ装置が直列に接続されたときにメモリコントローラによって利用可能な特徴を含むように拡張されることができる。例えば、状態レジスタ情報は、メモリ装置の状態を評価するために要求されることができる。
【００３６】
装置識別（ＩＤ）番号の設定は、いくつかの方法で行われることができる。例えば、装置ＩＤ番号は、各メモリ装置にプリセットされるか、あるいはハードワイヤードされることができ、もしくは、装置ＩＤ番号は、メモリコントローラによって割り当てられることができる。１つの技術は、ＩＤ番号が自身によって割り当てられ（セルフアサインメントされ）、これは、２００６年１２月２０日に出願された、共有の米国出願番号第１１／６１３，５６３号に開示され、それらの開示は、全体を参照することによって本明細書に含まれる。ＩＤ番号のセルフアサインメントでは、書き込みＩＤ動作は、最初のメモリ装置内で開始され、そのメモリ装置にＩＤを確立させる。最初のメモリ装置は、Ｓｉｎ入力の状態を取得することで第１の値を受け取る。最初のメモリ装置は、次に、第１の値から装置ＩＤを確立し、この確立は、第１の値を、装置に関連したストレージ（例えば、レジスタ）内に置くことを含む。最初のメモリ装置は、入力の取得した状態から第２の値を発生する。第２の値は、例えば、第１の値に１を増加した値であることができる。最初のメモリ装置は、Ｓｏｕｔ出力から第２のメモリ装置へ第２の値を出力する。第２のメモリ装置は、第２の値を受け取り、上記のプロセスを繰り返し、固有のＩＤを確立する。
【００３７】
他の装置ＩＤ番号の割り当て技術は、２００７年８月２２日に出願された米国出願番号第１１／８４３，０２４号に開示され、それらの内容は、参照することによって本明細書に含まれる。この技術では、システムのメモリ装置は、最初にリセット状態へと初期化され、さらにメモリコントローラは、反復して、固有の装置ＩＤ番号を各メモリ装置に発する。最初のメモリ装置は、割当てられたＩＤ番号を受け取りこれを承諾し、そして、リセット状態から抜け出す。リセット状態では、メモリ装置は、装置ＩＤ番号を後に続く次のメモリ装置へ渡さない。メモリコントローラは、割り当てられたＩＤ番号のエコーのためデータ入力を監視する。もし、エコーが、所定の時間期間後に受け取られない場合は、次のＩＤ番号が発せられ、リセット状態にない介在するメモリ装置は、ＩＤ番号を次のメモリ装置へ渡す。
【００３８】
図３Ａおよび図３Ｂのシステムは、各々がホストシステムに対し異なる利点を提供する、メモリ装置タイプの混合を含むことができる。混合タイプのメモリ装置を有するそのようなシステムは、２００６年１２月６日に出願された共有の米国特許出願第６０／８６８，７７３号において開示され、それらの開示は、全体を参照することによって本明細書に組み入れられる。さらなる詳細は、共有の米国特許出願第１１／７７１，０２３の『混合タイプの直列に相互接続されたメモリ装置のアドレスの割り当ておよびタイプの認識』と、共有の米国特許出願第１１／７７１，２４１号の『混合タイプのメモリ装置を動作するシステムおよび方法』で開示されたようなシステムであり、それらの内容は、参照することによって本明細書に組み入れられる。例えば、高速のＤＲＡＭメモリは、キャッシュとして利用することができ、その一方で、不揮発性のフラッシュメモリは、低電力の大容量データストレージのために利用されることができる。メモリ装置が使用されるタイプとは関係なく、各メモリ装置は、個々にアドレス可能であり、コマンドで動作し、これは、インターフェースおよび制御論理ブロック３０８が予め決められたプロトコルによるコマンドを受け取るためである。さらに、非メモリ装置であっても、図３Ａ、３Ｂのシステム内に含まれることができ、それらは、直列に受信したコマンドで動作することができ、かつコマンドやリードデータをシステム内の次の装置に渡すことができるように設けられる。
【００３９】
図３Ａ、図３Ｂおよび図４で示されたメモリ装置の利点は、ｘ８の物理的なデバイス幅であるよう製造されたメモリ装置であり、つまり、メモリ装置は、Ｓｉｎ[０：７]の直列入力ポートと、対応するＳｏｕｔ[０：７]の直列出力ポートとを有し、すべての入力および出力ポートを使用する必要がないということである。これが意味するところは、単一のｘ８のシリアルメモリ装置は、異なる効果のチャンネル幅を有する多様なシステムで使用されるように選択的かつ動的に構成され得ることである。この性能の利点は、システム設計者が、新しいシステムを構築するときに、広範な選択肢の入手可能なパーツから選ぶことができるという点である。この利点の他の面は、メモリ提供者が、狭いリンクを有するシステム内に本質的に広範なメモリ装置を受け入れさせることができる点である。
【００４０】
図５Ａは、ひとつの可能性のある方法で、メモリダイ４０２をカプセル封止するパッケージ４００の上から見た図を示している。メモリダイ４０２を有するパッケージ４００は、図３Ａおよび図３Ｂで示されたメモリ装置に対応する。パッケージ４００は、データ入力ピン４０４と、データ出力ピン４０８とを有し、それらは、ダイ４０２をプリント回路基板（ＰＣＢ）４１２に電気的に接続するための構造である。ＰＣＢ４１２には、一連の導電性トラックもしくはトレース４６０および４１０が含まれており、それらは、パッケージ４００のピン４０４および４０８に接続される。図５Ａでは、各組のトレース４０６および４１０は、８つの個々のトレースを含む。メモリダイ４０２は、データ入力パッド４１４と、対応するデータ出力パッド４１８とを有する。データ入力パッド４１４は、対応するデータ入力ピン４０４へ電気的に接続され、データ出力パッド４１８は、対応するデータ出力ピン４０８へ電気的に接続される。これらの電気的な接続は、ここではボンドワイヤ４１６として図５Ａに示されるが、この代わりにはんだバンプを使用することもできる。本実施例では、データ入出力のパッドとピンのみが示されているが、制御信号入力および出力、および電圧供給入力は、図の簡略化のために示されていない。
【００４１】
図５Ｂは、ひとつの可能性のある構成で、２つのメモリダイ４５２と４５４をカプセル封止するシステムインパッケージ（ＳＩＰ）４５０の側面を表す図であり、メモリダイ４５２および４５４は、図５Ａで示されたメモリダイ４０２と同じものである。各メモリダイは、データ入力パッド４１４とデータ出力パッド４１８を有する。マルチチップパッケージとしてもまた言及されるが、ＳＩＰ４５０は、データ入力ピン４５６とデータ出力ピン４５６とを有する。ここでは、データ入力ピン、データ出力ピン、データ入力パッドおよびデータ出力パッドの１つのみを示している。２つのメモリダイは、並んで位置決めされ、メモリダイ４５２は、ボンドワイヤ４６０を介してデータ入力ピン４５６に接続されたデータ入力パッド４１４を有し、メモリダイ４５４は、ボンドワイヤ４６２を介してデータ出力ピン４５８に接続されたデータ出力パッド４１８を有する。メモリ装置４５２は、ボンドワイヤ４６４を介して、メモリ装置４５４のデータ入力パッド４１４に接続されたデータ出力パッド４１８を有する。このような構成では、ボンドワイヤ４６０、４６２および４６４の内部配線は、ＰＣＢ４１２のリンク４０６／４１０と等価である。図５Ｂは、メモリダイの可能性のある内部レイアウトを示し、当業者であれば、ダイ４５２および４５４を積み重ねることが可能であることを理解するであろう。
【００４２】
図５Ａおよび図５Ｂの本実施例では、メモリダイは、ダイに形成された入力データパッドと出力データパッドの数で定義される物理的な装置幅(device width)を有する。パッケージ幅は、パッケージ上の入力データピンと出力データピンの数である。シリアルメモリ装置の入力ポートＳｉｎ[１：ｎ]および出力ポートＳｏｕｔ[１：ｎ]についてのピンは、パッケージ４００とメモリダイ４０２との結合である。リンク幅は、ＰＣＢ上に形成された導電性トラックの数である。図５Ａのメモリダイ４０２は、ｘ４の物理的な装置幅を有し、メモリダイ４０２は、データ入力パッド４１４を介して４つの入力データストリームを受け取りかつデータ出力パッド４１８を介して４つの対応するデータ出力ストリームを提供するよう製造される。パッケージ４００は、２つの入力データピン４０４と２つの対応するデータ出力ピン４１８とを有する。リンク幅は、合計８つであるが、上の２つだけがパッケージ４００のピンに接続されている。アクティブなまたはイネーブルされるメモリダイ４０２のデータ入力パッド４１４およびデータ出力パッド４１８の最大数は、パッケージ４００のデータピン４０４／４０８の最大数によって物理的に制限される。この観点から、メモリダイ４０２およびパッケージ４００のデータピンまたはデータパッドへの参照は、便宜上、データ入力と出力のパッドおよびピンの両方を含む。メモリダイ４０２の下の２つのデータパッド４１４／４１８は、接続されていないので、それらは使用から動的にディスエーブルされ、メモリダイ４０２は、上の２つのデータパッド４１４／４１８からのみデータを受け取りまたはデータを提供する。使用中に、下の２つのデータ入力パッド４１４は、オープンしたままにすることができ、下の２つのデータ出力パッド４１８は、ＶＳＳのような供給電圧に接続することができる。それゆえ、このパッケージ４００を含むシステムであれば、アクティブ幅は、ｘ１かｘ２のいずれかであることができる。このパッケージの例についての最大のアクティブ幅は、ｘ２であり、最大のアクティブ幅は、システムのデータ幅を参照する。本実施例のメモリダイ４０２は、ｘ４のダイとして製造されるけれども、メモリダイ４０２は、ｘ４の幅未満で動作するように動的に構成され得る。本実施例において、もし、このパッケージ４００のメモリダイ４０２がｘ４の幅で動作するように動的に構成されるならば、実際には予想していた半分のビットだけを受け取るであろう。そのように構成されたシステムは、非機能的であろう。
【００４３】
表１は、リンク幅、パッケージのデータピン数、合計で1、２、４、８のデータパッドで製造されたメモリダイについての使用可能なデータパッドの最大数の組合せの例を示している。
【００４４】
【表１】
0005408663.tif 000002
【００４５】
最後の列が表している“最大の使用可能なデータパス幅”は、これらの特性の各々の組合せにとって、システム内の装置のための使用可能な最大のデータパッドの数を例示している。最初の３つの列の各々の物理的な特性に等しいかそれよりも小さい最大の整数である。例えば、このメモリ装置を次のメモリ装置へ接続する物理的なリンク幅が２ビット幅であり、メモリダイがｘ２で製造されかつｘ４のパッケージにカプセル封止されるならば、最大の使用可能なデータパッドの数は、多くとも２である。表１に示されるすべての組合せは、物理的なパッケージのデータ幅が、メモリダイのデータ幅と等しいかそれよりも大きいという性質を有する。しかしながら、メモリダイのデータ幅は、一般に、パッケージのデータ幅よりも大きくすることができる。
【００４６】
それゆえ、本実施例で述べられたメモリ装置の動的な構成可能性は、適切な数のデータピンを有するパッケージでの使用を可能にする。パッケージがメモリ装置のアクティブなデータパッドよりも大きな数のデータピンを有している構成があることが表１に示されていることに留意すべきである。メモリ装置の特性を、メモリコントローラに直接利用することができるようにするために、メモリ装置は、これらの特性をエンコードする、メモリコントローラによって読取り可能な１つまたはそれ以上のレジスタを含む。特に、メモリ装置は、ダイのＳｉｎおよびＳｏｕｔデータポートの幅をエンコードするＩ／Ｏ幅レジスタを含み、この幅をメモリコントローラに利用可能にさせる。その他の実施例は、このようなレジスタ、または他のレジスタ内にも同様に、物理的なパッケージ幅を含ませることができる。これら２つの分類の実施例間の主な区別は、物理的なパッケージ幅がメモリダイのデータ幅と等しいかそれよりも大きいという表１に見られるような上記した制約から生じる。もし、この制約が存在する場合には、Ｉ／Ｏ幅レジスタは、メモリダイのデータ幅をエンコードすることのみ必要とする。もし、制約が存在しない場合には、Ｉ／Ｏ幅レジスタは、物理的なパッケージのデータ幅とメモリダイのデータ幅の２つか、２つのうちのより少ない方のいずれかをエンコードする必要がある。現在イネーブルされた入力および出力データピンの数を設定する目的で、パッケージに追加のピンを設けることは望ましくないので、ダイは、カレントアクティブ幅レジスタを含む。ダイは、このレジスタに格納された値により動的に構成され、使用のためにイネーブルされた入力および出力のパッドの数は、格納される値と等しいか、あるいはカレントアクティブデータ幅を示す他の適切な値に等しい。もしあっても、物理的な入力および出力データパッドとそれらに対応する回路の残りはディスエーブルされる。ＰＣＢおよび／またはシステム構成の物理的なリンク幅に基づき、メモリコントローラは、使用されていないデータパッドをディスエーブルし、全ての連絡（シリアルメモリ装置の中もしくは外側にある）を残りのイネーブルされたデータパッドに向かわせるための適切なデータをカレントアクティブ幅レジスタにロードする。
【００４７】
図６は、構成可能なデータ幅を有するメモリダイの部分的なブロック図の例である。回路ブロックの配列は、物理的なレイアウトもしくは製造されたダイ内のブロックの位置を表すことを意図していない。メモリダイは、図３Ａおよび図３Ｂで示されたシステムで使用されることができる。メモリダイ５００は、ｘ４のダイとして設計および製造され、それゆえ、４つのデータ入力パッド５０２と、４つの対応するデータ出力パッド５０４とを有する。データ入力パッド５０２とデータ出力パッド５０４の各対は、データＩ／Ｏ回路ブロック５０６に接続される。論理的に、一番上のデータＩ／Ｏ回路ブロック５０６は、最下位（least significant）であり、“Ｄａｔａ＿０”とラベルされる。残りのデータＩ／Ｏ回路ブロック５０６は、増加する論理的な重要さの順番で、“Ｄａｔａ＿１”、“Ｄａｔａ＿２”および“Ｄａｔａ＿３”とラベルされる。各データＩ／Ｏ回路ブロック５０６は、メモリコア５０８に接続され、メモリコア５０８は、メモリアレイ、制御ロジック、およびメモリダイ５００の適切な動作のために必要な回路を含む。各データＩ／Ｏ回路ブロック５０６は、入力データを、対応するデータ出力パッド５０４および／またはメモリコア５０８へ転送することができる。メモリコア５０８から読み出されたデータは、データ出力パッド５０４を介して出力するために、各データＩ／Ｏ回路ブロック５０６に提供され得る。いくつかのレジスタがメモリコア５０８へ結合され、それらは、Ｉ／Ｏ幅（Ｉ／Ｏ）レジスタ５１０、カレントアクティブ幅（ＣＡＷ）レジスタ５１２、割当てられた装置アドレス（ＡＤＡ）レジスタ５１４、およびブロードキャストアドレス（ＢＡ）検出器５１６を含む。
【００４８】
典型的に、メモリコア５０８は、内部に非常に多くのデータラインを有するとても広いアレイとして構成される。また、典型的に、広い内部のデータバスは、メモリコアをデータパッドへ結合する、狭いＩ／Ｏデータパスに結合される。広いメモリデータパスと狭い内部Ｉ／Ｏデータパス間の結合は、広いデータパスの特定ライン上の狭いデータパスにもしくは狭いデータパスからビットを送信する双方向のマルチプレクサの収集の等価によって達成される。当業者に周知であるこのマルチプレクサの機能を実行するためのいくつかの共通のメカニズムがある。先に検討されたメモリ装置では、これらのマルチプレクサの制御は、メモリコアアクセスのアドレスからの一部を引き出され、典型的に、特に列アドレスからであった。しかしながら、本発明のシリアルメモリ装置では、これらのマルチプレクサの制御は、カレントアクティブ幅レジスタの内容から追加的に得られる。広い内部データパスとＩ／Ｏパッドへの狭いＩ／Ｏデータパスとの間の配線は、現在使用されるＩ／Ｏパッドの数に依存する。この制御の性質は、当業者にとって周知であり、単一のメモリダイの設計は、機能テストもしくはパッケージング中に、固定された幅装置のうちの１つであるようにプログラムされるヒューズであることができるとき、共通であるこれらのマルチプレクサの制御の調整に類似している。類似の状況は、到来するコマンドの制御とアドレス部分を捕獲する問題に関して存在する。これらの部分は、図９との関連で後述されるが、ＣＡＷレジスタに格納された値によって異なるデータ入力パッド上に到達する。従って、装置アドレス、オペコードおよびメモリアレイアドレスを一時的に保持するレジスタの適切な位置に到来するビットをシャント（分路）するマルチプレクサは、ＣＡＷレジスタの内容に依存する部分でまたすべて制御されなければならない。
【００４９】
Ｉ／Ｏ幅レジスタ５１０は、メモリダイ５００の最大データ幅構成と選択的にデータパッドが物理的に接続されるパッケージピンの数とを示すデータを格納するようにハードワイヤ接続される。ハードワイヤ接続は、メモリ装置５００のパワーアップ後にセンスされる不揮発性データ格納手段をセットすることを含む。そのような不揮発性データ格納手段は、電気的にもしくはレーザーによって遮断することができるヒューズと、電気的に導電性のリンクを生成するように電気的にブロー（blown）されるアンチヒューズとを含む。当業者であれば、あらゆる適切な不揮発性のプログラミング技術が利用可能であることを理解するであろう。ＣＡＷレジスタ５１２は、２つの目的に役立つ。第１に、所望のデータ幅の構成がメモリコントローラによって決定されたとき、構成コードは、メモリコントローラによってシステム内のすべてのメモリ装置へ発せられる。この構成コードは、ＣＡＷレジスタ５１２にロードされ、使用されるべきデータＩ／Ｏ回路ブロック５０６のみをイネーブルさせ、これにより、電力を節約する。この構成コードはさらに、コマンドデコーダとしてメモリコア５０８の制御論理によって使用され、メモリ装置５００のカレントアクティブデータ幅構成に基づき受け取られまたは提供されたデータの適切なマッピングを確実にする。メモリ装置５００の初期のパワーアップ中に、デフォルトのカレントアクティブデータ幅構成が、最小の可能な設定、すなわちｘ１にセットされる。デフォルトのｘ１のカレントアクティブデータ幅セッティングでは、論理位置のＤａｔａ＿０に対応するデータＩ／Ｏ回路ブロック５０６のみがイネーブルされる。
【００５０】
ＡＤＡレジスタ５１４は、メモリコントローラによって発せられた、割当てられた装置アドレスを格納し、これにより、メモリ装置５００は明確にアドレスされたコマンドで動作する。従って、各メモリ装置にアドレスされたコマンドを発することによって、同一の構成コードは、システム内の各メモリ装置に発せられることができる。そのような全体的な動作は、割当てられた装置アドレスとは無関係に、すべてのメモリ装置に構成コードをブロードキャストすることにより、さらに効果的に実行され得る。後述するように、メモリ装置５００は、１つのアドレス、これはブロードキャストアドレスとして参照される、を認識するようにプリセットされ、そのブロードキャストアドレスは、いずれかのメモリ装置に割当てられるのではなく、すべてのメモリ装置によって認識される。選択的に、ブロードキャストアドレスは、システム内のメモリ装置の数と、割当てられた装置アドレスとに基づいて、動的に決定されることができる。それゆえ、このブロードキャストアドレスは、到来するコマンドに関連したアドレスとの比較のためにＢＡ検出器５１６のレジスタに格納される。
【００５１】
従って、図６に従って構成されたメモリ装置は、図３Ａおよび図３Ｂで示されたようなシステムで使用されることができる。いくつかの例では、システム内のすべてのメモリ装置は、機能的には同一であり、すなわち、それらは、同一のパッケージとその内部にメモリ装置を有する。しかしながら、メモリ装置の混合が、図３Ａおよび図３Ｂのシステムに含まれることができる。システム内のすべてのメモリ装置が同一の物理的なパッケージ幅を有し、かつダイは、同一のデータ幅を有することが可能であり、かつ望まれるが、これは必須ではない。メモリ装置の集合は、たとえメモリ装置が異なる特性を有している場合であっても、図３Ａおよび図３Ｂによるシステム内に配置することができる。
【００５２】
１つの実施例によれば、システムは、システム構築中もしくは作業中（in the filed）に、１つまたはそれ以上のメモリ装置を追加したり削除したりする機能を含む。図７は、動的に調整可能なシステムの実施例を例示したブロック図である。調整可能システム６００は、メモリコントローラ６０２と、固定されたメモリ装置６０４、６０６、６０８、６１０と、拡張リンク６１２、６１４、６１６、６１８、および６２０と、拡張モジュール６２２、６２４、および６２６とを含む。固定されたメモリ装置６０４、６０６、６０８および６１０は、互いに直列に接続され、また介在する拡張リンクに、およびメモリコントローラ６０２に直列に接続されている。各拡張リンクは、雄型、雌型、もしくは双方の結合手段であり、対応する結合手段を有するモジュールを取り外し可能に受け取り、保持する。各モジュールは、拡張リンクの端子に直列に接続された少なくとも１つの固定されたメモリ装置６１１を含む。ここで示された例では、拡張モジュール６２２および６２６の各々は、モジュール結合手段の入力コネクタと出力コネクタとの間に直列に接続された４つのメモリ装置を含む。モジュール６２４は、モジュール結合手段である入力コネクタと出力コネクタとの間に直列に接続された２つのメモリ装置を含む。それゆえ、拡張リンク内にモジュールを挿入することによって、追加の直列に接続されたメモリ装置が、固定されたメモリ装置間に動的に挿入され得る。拡張リンク６１４および６２０のように使用されない拡張リンクは、適切なジャンバ６２８および６３０を有し、チェーンの連続的な直列の電気的接続を維持する。
【００５３】
調整可能システム６００は、適切な数の固定されたメモリ装置と拡張リンクとを含むことができ、メモリモジュールは、適切な数の直列に接続されたメモリ装置を含むことができる。それゆえ、調整可能システム６００は、単に新しいモジュールを追加したり、または既存のモジュールをより大きな容量のモジュールへ交換することにより、全体の性能に影響を及ぼすことなく、メモリ容量を十分に拡張することが可能である。同一のチャンネルが追加的に直列に接続されたメモリ装置に使用されるので、メモリコントローラを交換する必要がなく、当業者であれば、ＣＥ＃やＲＳＴ＃のような並列の制御信号や電力供給を、挿入されたモジュールへどのように接続するのかを理解するであろう。モジュールが挿入された後に、もしくはモジュールが取り除かれた後に、メモリコントローラは、システム６００内の新しい一連のメモリ装置のために自動装置ＩＤ発生を開始することができる。
【００５４】
このような実施例において、システム内にメモリ装置を混合することができ、異なるメモリ装置は、異なる物理的なパッケージデータ幅とダイデータ幅とを有することができる。従って、システム６００の最大アクティブデータパス幅は、すべてのメモリ装置の中での、リンク幅、パッケージ幅およびダイ幅の最も小さなものである。通常のメモリ動作が開始され得る前に、システムの最大アクティブデータパス幅が決定される。システムの最大アクティブデータパス幅が一旦決定されると、すべてのメモリ装置は、最大データ幅に等しいかそれよりも小さいカレントアクティブデータで動作する。システムの最大データ幅の決定およびアクティブデータ幅の設定は、メモリコントローラによって実行される。図８Ａは、ここで説明された実施例による、システムのメモリ装置のカレントアクティブデータ幅をセットする方法の概要を示すフローチャートである。この方法は、図８Ｂに示された例示的システムを参照することによって説明される。
【００５５】
図８Ａの方法は、図８Ｂのシステムのパワーアップ初期化ルーチンの一部として実行される。メモリコントローラ７００は、最大ｘ４のデータ幅まで構成することが可能であとと仮定され、それゆえ、メモリコントローラ７００は、システムのＰＣＢ上に施された４つの物理的な導電ライン７０２に電気的に接続された４つのデータ出力ポートを有する。図８Ｂには示されていないが、メモリコントローラ７００は、最後のメモリ装置のデータ出力ポートに直接接続された４つの物理的な導電ラインに接続された４つのデータ入力ポートを有する。各メモリパッケージ７０４と７０６は、ＰＣＢの導電ライン７０２に結合されまたは選択的に結合されたデータピンを有する。図の簡略化のために、最後のメモリ装置からメモリコントローラ７００へのデータの戻りのパスは省略され、メモリ装置によって使用される制御信号も同様に省略されている。メモリパッケージ７０４は、２つの入力および出力のデータピンを有するが、他方、メモリパッケージ７０６は、４つの入力および出力のデータピンを有する。メモリ装置７０８は、ｘ４であるように製造され、メモリ装置７０８は、パッケージ７０４のピンに結合された最初の２つの入力／出力データパッドのみを有する。メモリ装置７１０は、ｘ１であるよう製造され、メモリ装置７１０は、パッケージ７０６の最上部のピンに結合された入力／出力データパッドを有する。
【００５６】
この方法は、システムのパワーアップ後に始まり、それゆえ、すべてのメモリ装置は、ｘ１のアクティブデータ幅構成にデフォルト（初期設定）され、メモリコントローラは、ステップ７５０で、ｘ１のデータ構成で出力するよう初期設定（デフォルト）する。この構成では、最も上のピンが論理Ｄａｔａ＿０の位置と仮定され、これは、デフォルトのアクティブデータ幅構成に使用される。すべてのメモリ装置は、メモリコントローラによって発せられたデータをｘ１のリンク幅で受け取る。メモリコントローラは、それからステップ７５２でＩＤ番号の生成を実行し、この実行は、メモリＩＤ番号の生成に向けられた上記の共有の米国特許出願に開示された技術に従う。ＩＤ番号が割当てられ、かつ各メモリ装置の各ＡＤＡレジスタ５１４に格納された後、メモリコントローラは、ステップ７５４で、対応するコマンドを発することによって各メモリ装置のＩ／Ｏ幅レジスタ５１０を個々にアクセスする。メモリコントローラは、次に、すべてのＩ／Ｏ幅レジスタデータを集合し、ステップ７５６で、システム内の全てのメモリ装置における、リンク幅、パッケージ幅、およびダイ幅の最も小さいものを算術的に決定する。例えば、図８Ｂのシステムでは、メモリ装置７０８は、２の範囲のアクティブデータ幅を有し、メモリ装置７１０は、１の範囲の最大アクティブデータ幅を有する。メモリ装置７１０は、２番目のデータピンを有していないので、共通のアクティブデータ幅は１つである。
【００５７】
Ｉ／Ｏ幅レジスタは、メモリコントローラに、リング内の各シリアルメモリ装置の物理的なパッケージデータ幅、および／またはメモリダイデータポート幅を知らせる。もし、双方が提供されない場合は、他方よりもより低い範囲（bound）が、慣行に従って、提供されている１つから必然的に推論されることができる。最大の利用可能なデータパス幅を決定するために、メモリコントローラは、また、システム内の最小リンク幅を識別しなければならない。これを認識するための最もストレートな方法は、リンクセグメントがメモリコントローラのデータポート幅よりも狭くならないようにすることを明確にすることであり、これを本質的に知ることである。代替は、すべてのリンクセグメントが同じ幅を有すること、およびリンクトレース４０６に接続された入力に弱いプルアップもしくはプルダウン抵抗（すなわち大きな抵抗値）を配置することにより、Ｓｉｎ入力ポートに接続されたリンクセグメントのリンク幅をメモリコントローラが決定することができることを要求することである。リングがディスエーブルされたとき（ＣＥ＃信号を介して）、入力の電圧を感知することにより、メモリコントローラは、リング周囲の最小のリンク幅を決定することができ、これにより、全体のリングの最大の使用可能なデータパス幅を計算することができる。依然として、多くのその他の代替は、すべてのリンク幅がリング内の最も狭いシリアルメモリ装置よりも必ず広いという慣行をあてにする。この想定により、メモリコントローラは、物理的なパッケージデータ幅上の単独で最大利用可能なデータパス幅および／またはリング内の装置のメモリダイデータポート幅を決定することができる。
【００５８】
ステップ７５８では、メモリコントローラ７００は、最大の利用可能なデータパス幅と等しいかそれよりも小さい値であるべきシステムについての最終的なアクティブデータパス幅をセットするために、好ましい動作プロファイルを適用する。例えば、１つの動作プロファイルは、高性能であることができ、第２の動作プロファイルは、最小限の電力消費であることができ、第３のプロファイルは、性能と電力のバランスされたものであることができる。高性能プロファイルでは、最大データ幅が選択される。他方、最小化された電力消費プロファイルは、最小データ幅（すなわちｘ１）が選択されるよう命令することができる。性能と電力がバランスされたプロファイルは、システムの最大データ幅より下の値であることができる。適応型のプロファイルは、特定の性能、電力および温度制約や最適化に依存して、通常動作の進行中にまたはあるシステムレベルの電力または性能の状態から他のものへ遷移するときに、アクティブデータパス幅を変化させる。例えば、アクティブデータ幅は、サーマルオーバー温度事象の結果として、システムの全体的なスロットリング（throttling）の一部として、大きな値から小さな値へと変化させることができる。メモリコントローラ７００もしくはホストシステム１２で動作するソフトウエアが使用される共通のアクティブデータ幅をいったん決定すると、各メモリ装置は、ステップ７６０で、ＣＡＷレジスタ５１２に適切な構成コードをロードするためにアクセスされる。これは、ブロードキャストコマンドまたはすべてのシリアルメモリ装置のアクティブデータパス幅を本質的に同時に変更する他の互換性のあるメカニズムによって実施される必要があり、なぜなら、もし、リング上の２つの隣接する装置がそれらを接続するリンクのカレントアクティブ幅の同じ見解(view)を持たないならば、リングは、たとえ一時的であっても、正確に動作することができないからである。図８Ｂの本例では、システムの最大の利用可能なデータ幅はｘ１であり、従って、メモリ装置７０８は、デフォルトのｘ１のデータ幅のままであり、メモリ装置７１０は、デフォルトのｘ１のデータ幅のままである。図８Ｂの例では、もし、すべてのメモリ装置がｘ１の最大データ幅を有する場合は、ステップ７５８は必要とされない。同様に、この場合、ステップ７６０は任意である。それは、すべてのシリアルメモリ装置が、ステップ７５０でｘ１の装置として既に動作しているからである。
【００５９】
全てのメモリ装置が、決定されたアクティブデータ幅を有するように構成され、さらに、初期化動作もしくは通常動作が開始され得る。他の初期化動作より前に、図８Ａの方法を実施することは有益である。なぜならば、もし、アクティブデータ幅がデフォルトｘ１の構成よりも大きくセットされるならば、次の動作がより迅速に実行され得るからである。異なる物理的なパッケージおよびダイパッドのデータ幅構成を有するメモリ装置の混合は、同一システム内で一緒に使用され得る。図７の実施例では、図８Ａの方法は、拡張モジュールが除去または追加された後のパワーアップの各時間後に実行される。
【００６０】
前述したように、ブロードキャスティングは、システム内のすべてのメモリ装置への共通のコマンドの分配を簡略化するための技術である。ブロードキャスティングがなければ、個別のコマンドが、装置アドレスによって各メモリ装置に発せられる。これでは、装置が既にコマンドを発行したトラックを維持する必要があるので、メモリコントローラにより多くの時間とオーバーヘッドを必要とする。もし、メモリコントローラが安全に遮断されなければ、コマンドを受け取らないメモリ装置が存在するかもしれない。図３Ａおよび図３Ｂのシステムでは、メモリコントローラによって発行されたいずれのコマンドパケットは、すべてのメモリ装置を介して伝播し、そして、コマンドの装置アドレスと一致する割当てられた装置アドレスを有するメモリ装置のみがコマンドで動作する。すべてのその他のメモリ装置は、コマンドを無視する。ここで述べられたブロードキャスティング技術では、メモリコントローラは、１つのコマンドパケットを発行し、このコマンドは、コマンドパケットが全てのメモリ装置を介して伝播されたときに各メモリ装置によって動作される。
【００６１】
コマンドパケット８００は、図９に例示される構成を有し、コマンドパケット８００は、３つのフィールドを含み、その２つは、特定のコマンドがメモリコントローラによって発せられることに依存して任意（選択的）である。最初のフィールドは、必須フィールドであり、コマンドフィールド８０２である。第１の選択的なフィールドは、アドレスフィールド８０４であり、第２の選択的なフィールドはデータフィールド８０６である。
【００６２】
コマンドフィールド８０２は、２つのサブフィールドを含み、第１のサブフィールドは、装置アドレス（ＤＡ）フィールド８０８であり、第２のサブフィールドは、オペコードフィールド８１０である。装置アドレスフィールド８０８は、適切な数のビット長であることができ、システム内の各メモリ装置をアドレスするために使用される。例えば、長さ１バイト（８ビット）の装置アドレスフィールド８０８は、２５６（２＾８）までのメモリ装置をアドレスするのに十分であるが、装置アドレスフィールド８０８は、所望の長さであることができる。１つのアドレスは、全てのメモリ装置に同時にアドレスするために、すなわち、ブロードキャストする動作のために用意しておくことができる。他の実施例では、装置アドレスフィールド８０８は、オペコード８１０が向けられるメモリ装置のタイプを示すための装置タイプフィールドを含むことができる。例えば、装置タイプフィールドは、ＤＲＡＭ、ＳＲＡＭ、もしくはフラッシュメモリを示すことができる。オペコードフィールド８１０は、適切な数のメモリ装置のためのコマンドを表すために、適切な数のビット長さであることができ、また、オペコードフィールド８１０は、バンクアドレスを含むことができる。例えば、フラッシュメモリコマンドセットは、固有の違いの観点から、ＤＲＡＭのコマンドセットとは異なったコマンドを有し、それゆえ、もし、システムが両タイプのメモリ装置を含むならば、オペコードフィールドには、両方のコマンドセットからすべての可能性のあるコマンドを伴う機能が割当てられる。しかしながら、種々のタイプのメモリを処理するための好ましい代替は、２つのコマンドの集合に分割されたオペコード空間を有することでる：リング動作に関連するコマンドと、メモリアレイ動作に関連するコマンドである。前者のセットは、全てのメモリタイプに一致することができるが、第２のグループはそうである必要はない。このグループのオペコードの記号論（semantics）は、メモリタイプに特有であろう。例えば、フラッシュメモリに発せられた際にプログラムを意味した特定のオペコードは、ＤＲＡＭに提供された際には、リフレッシュを意味することができる。メモリコントローラは、どの種類のメモリが各割当てられた装置アドレスであるかを知る必要があるので、これらの機能が同じオペコードを共有するかどうかは問題ではない。アドレスフィールド８０４は、オペコードによって特定された動作のタイプによって、メモリアレイの行アドレス（Ｒｏｗ Ａｄｄｒ）、列アドレス（Ｃｏｌ  Ａｄｄｒ）、またはフルアドレス（full address）のいずれかを提供するために使用される。データフィールド８０６は、メモリ装置へ書き込まれるかまたはプログラムされるべき適切な数のデータのビットを含む。それゆえ、書き込みデータが特定の動作のために必要とされないかもしれず、また、アドレスと書き込みデータの双方が特定の動作のために必要とされないかもしれないため、コマンドパケット８００は、サイズを可変する。
【００６３】
図１０は、図４で示された構成を有するフラッシュメモリ装置を動作するために使用され得るコマンドパケットの例の一覧表であり、前述された図３Ａおよび図３Ｂのシステムで使用される。図１０におけるバイトの位置は、それらがメモリ装置によって直列に受け取られる順序に対応する。コマンドフィールド８０２は、第１および第２のバイト位置を占め、それは、情報の最初のバイトとしての装置アドレス（ＤＡ）と、情報の２番目のバイトとしての動作に対応するオペコードとを含む。オペコードは、１６進法の値として表され、“Ｘ”は、バイトの後半分の４ビットがいかなる値であり得ることを示す。図１０のフラッシュのオペコードの特有のケースでは、いくつかのコマンドについてオペコードバイトの第２のニブルで、“Ｘ”で表された４つの使用されないビットは、バンクアドレスの位置である。この方法では、概念的に、いくつかのコマンドは、シリアルメモリ装置に向けられ、いくつかのコマンドは、装置内の特定のバンクに向けられる。オペコードスペースのこの構成は、単一のシリアルメモリ装置内のバンクからバンクの並行とその処理を容易にした。アドレスフィールド８０４は、３番目のバイトから５番目のバイト位置を占める３バイトの行アドレス（ＲＡ）を含むことができるが、他のコマンドのために短くし、３番目のバイトから４番目のバイト位置のみを占める２バイトの列アドレス（ＣＡ）を含むようにしてもよい。２バイトの列アドレスを含むコマンドにとって、データがそのような長さであるならば、データフィールド８０６は、５番目のバイトの位置から第２１１６番目のバイトの位置もしくはそれを超えて占有する。
【００６４】
メモリコントローラによって発せられたコマンドパケット８００は、システム内の各メモリ装置によって直列に受け取られ、コマンドフィールド８０２のＤＡサブフィールド８０８に一致する、割当てられた装置アドレスを有するメモリ装置のみが、オペコードサブフィールド８１０で動作する。コマンドパケットは、メモリ装置を通して、チェーンの次のメモリ装置へ転送される。オペコードは、特定の動作に特有なので、図４のメモリ装置３００のインターフェースおよび制御論理ブロック３０８は、コマンドパケットのアドレスおよび／またはデータ情報をラッチするために要求された回路を制御する。例えば、もし、ページリードコマンドパケットが、指定されたメモリ装置によって受け取られたならば、指定されたメモリ装置は、オペコードをデコードし、次の３バイトの行アドレスをラッチするように適切な回路を制御する。図１０に一覧で記載された例示的なコマンドパケットは、フラッシュメモリ動作に向けられる。異なる動作を有する他のタイプのメモリ装置のための一連のコマンドパケットは、上述のコマンド構造に従うことができる。もし、ＤＡサブフィールド８０８が長さｎビットである場合は、２ｎまでの総装置アドレスを提供することができ、これにより、２ｎのメモリ装置までアドレス可能である。ここで述べられた実施例では、（２ｎ）−１のアドレスが対応する数のメモリ装置に割当てられ、これらのアドレスのうちの１つは、ブロードキャストアドレスとして用意（リザーブ）される。
【００６５】
図１０において、“動作中断（Operation Abort）”コマンドは、特定のメモリ装置に向けられるよう表されている。しかしながら、このコマンドは、第１のバイトを１６進法のアドレスＦＦｈにセットすることによって、すべてのメモリ装置へブロードキャストされることができる。本実施例では、アドレスＦＦｈは、コマンドをブロードキャストするために用意された、割当てられていないＤＡであると仮定される。中断動作は、ソフトリセットに類ており、進行中のすべての動作は、メモリ装置をスタンバイ状態へ戻すように停止される。“Ｗｒｉｔｅ  ＣＡＷ  Ｒｅｇｉｓｔｅｒ”コマンドは、図１０のこのコマンドの装置アドレスがＦＦｈであるブロードキャストコマンドとして表されている。このコマンドは、ＣＡＷレジスタ５１２に選択されたアクティブデータ幅構成コードをロードするため、図８Ａの前述の方法で使用される。図１０では示されていないが、全てのメモリ装置をプリセットテストモードに置くためのテストコマンドもまた、ブロードキャストであることができる。
【００６６】
図３Ａおよび図３Ｂで示されたシステムのメモリ装置がブロードキャストコマンドに応答するため、単純な論理回路が予め決定されたブロードキャストアドレス（ＢＡ）を検出するために使用される。図１１は、ここで述べられた実施例の各メモリ装置内の装置アドレス論理の１つの可能性のある回路例を例示する回路図である。図６で示されたメモリ装置を参照すると、この論理は、メモリコア５０８内で実行されるであろう。
【００６７】
図１１において、装置アドレス論理８３０は、指定された装置アドレスかブロードキャストアドレスのいずれかに応答して受け取られたコマンドパケットで動作するよう、メモリ装置の他の論理および回路をイネーブルするマスターイネーブル信号ＥＮを発生する責任がある。装置アドレス論理８３０は、メモリコントローラからの割当てられた装置アドレスを格納するＡＤＡレジスタ５１４、ＸＮＯＲ論理８３２、ＡＮＤ論理８３３、ＯＲ論理８３４、およびＢＡ検出器５１６を含む。ＸＮＯＲ論理８３２は、ＡＤＡレジスタ５１４に格納されたすべてのｎビットを受け取り、コマンドパケットの装置アドレスＤＡ[１：ｎ]のｎビットとビット毎の比較を実行する。バスＤＡ[１：ｎ]は、一旦、カレントコマンドが完全に受け取られると、カレントコマンドの装置アドレスを伝える。コマンドの装置アドレス部分を受け取るのに必要とされる合計時間は、フィールドの幅（図１０の例の１バイト）と、ＣＡＷレジスタにエンコードされたカレントアクティブデータパス幅とに依存する。装置アドレスＤＡ[１：ｎ]は、少なくともコマンドパケットが完全に受け取られるまで、レジスタ（図では表されていない）内に一時的に保持される。ＸＮＯＲ論理８３２は、装置アドレスＤＡ[１：ｎ]のｎビット位置と、ＡＤＡレジスタ５１４のｎビットの位置との比較に応じて、ｎの中間出力信号を発生する。ＡＮＤ論理８３３は、すべてのｎの中間出力信号を受け取り、ＡＤＡレジスタ５１４とＤＡ[１：ｎ]との間のすべてのビット位置が一致する場合には、高論理レベルの単一のイネーブル信号ｅｎ１を発生する。ブロードキャストアドレス（ＢＡ）検出器５１６は、装置アドレス（ＤＡ）[１：ｎ]を受け取り、もし、ＢＡがシステム内のすべてのメモリ装置のための予め決定されたＢＡのセットと一致する場合は、高論理レベルの単一のイネーブル信号ｅｎ２を発生する。ＯＲ論理８３４は、ｅｎ１とｅｎ２の双方を受け取り、ｅｎ１かｅｎ２のいずれかが高論理レベルへ上昇するとき、高論理レベルのマスターイネーブル信号ＥＮを発生する。それゆえ、メモリ装置は、コマンドパケットが一致する装置アドレスもしくはブロードキャストアドレスを含むとき、コマンドに応じる。上記したように、ブロードキャストアドレスは、プリセットされ固定されることができ、あるいは、メモリコントローラによって動的に割当てられることができる。
【００６８】
図１２は、１つの実施例に従ったＢＡ検出器５１６の回路図である。この実施例では、ブロードキャストアドレスは、プリセットされ、固定され、デコーダ論理８３６によってデコードされる。この例では、プリセットされたブロードキャストアドレスは、論理“１”のビットの集合であり、それは最も高い論理アドレスを表す。それゆえ、デコーダ論理８３６は、ｎの入力を有するＮＡＮＤ論理ゲートとして実施され、各々は、装置アドレスＤＡ[１：ｎ]の１つのビット位置を受け取る。従って、ＤＡ[1：ｎ]がすべて論理“１”のビットであるならば、ｅｎ２は、低論理レベルである。当業者であれば、あらゆるデコーダ論理構成が予め選択されたブロードキャストアドレスに基づいて使用され得ることを理解し、つまり、イネーブル信号ｅｎ２は、ＤＡ[１：ｎ]と予め選択されたブロードキャストアドレス間の一致を示す論理レベルに駆動される。
【００６９】
図１３は、他の実施例によるＢＡ検出器５１６の回路図である。この実施例では、ブロードキャストアドレスは、メモリコントローラによって動的に割当てられ、ＢＡレジスタ８３８に格納される。この実施例では、メモリコントローラは、選択されたブロードキャストアドレスでＢＡレジスタ８３８をロードするコマンドで、各メモリ装置をアドレスする。このコマンドは、図１０で示された“Ｗｒｉｔｅ  ＣＡＷ  Ｒｅｇｉｓｔｅｒ”コマンドと類似し得る。いったんロードされると、ＢＡレジスタのｎビットは、ＸＯＲ論理８４０で、受け取られた装置アドレスＤＡ[１：ｎ]のｎビットと比較される。もし、すべてのビット位置が一致するならば、ＸＯＲ論理８４０は、装置アドレスＤＡ[１：ｎ]のｎビットの位置とＢＡレジスタ８３８のｎビットの位置との比較に対応する、ｎの中間出力信号を発生する。ＡＮＤ論理は、ｎの中間出力信号を受け取り、ＤＡ[１：ｎ]のすべてのアドレスビットが、ＢＡレジスタ８３８の対応するビットと一致するとき、高論理レベルに駆動された単一のイネーブル信号ｅｎ２を発生する。
【００７０】
装置アドレス論理８３０およびＢＡ検出器５１６の前述された実施例は、一致する装置アドレスもしくはブロードキャストアドレスが受け取られたとき、高論理レベルのイネーブル信号ｅｎ１およびｅｎ２を提供する論理回路で実施される。別の実施例では、反転された論理が使用されることができ、一致する装置アドレスもしくはブロードキャストアドレスが受け取られたとき、イネーブル信号ｅｎ１およびｅｎ２が低論理レベルに駆動される。
【００７１】
それゆえ、図３Ａおよび図３Ｂのシステムは、装置アドレスが割当てられる前後に、ブロードキャスト動作でアドレスされることができる。ブロードキャスト動作は、コマンドパケットがメモリコントローラによって発行されたときに初期化され、また、その動作は、メモリコントローラがシステム内の最後のメモリ装置から発行されたコマンドパケットを受け取るときに完了する。図１４は、図３Ａおよび図３Ｂのシステムのすべてのメモリ装置でブロードキャスト動作を実行する方法のフローチャートである。このシステムのブロードキャストは、メモリコントローラがプリセットまたは割当てられたブロードキャストアドレス（以下、単にブロードキャストアドレスと言う）を含むコマンドパケットを発するときのステップ８５０で始まる。コマンドパケットは、ステップ８５２のシステムの最初のメモリ装置（以下、メモリ装置ｉといい、ｉは、０よりも大きな整数の値である）によって受け取られる。受け取られたとき、図１１の装置アドレス論理８３０のような装置アドレス論理は、コマンドパケット内のブロードキャストアドレスを、格納されたブロードキャストアドレスに一致させ、もしくはブロードキャストアドレスをデコードし、有効なブロードキャストアドレスであるか否かを決定する。
【００７２】
有効であると決定した後、あるいはブロードキャストアドレスが一致した後、メモリ装置は、ステップ８５４で、コマンドパケットのオペコードコマンドを実行するようイネーブルされる。ステップ８５６で、コマンドパケットは、システムの次の装置へ転送され、これは、次のメモリ装置もしくはメモリコントローラであり得る。ステップ８５６から、次の装置が他のメモリ装置であるとき、方法は、ステップ８５２へ戻る。パラメータｉは、ステップ８６０で増加され、これは、ステップ８５２、８５４および８５６がシステム内の次に続くメモリ装置により実行されることを示す。最終的に、システム内の最後のメモリ装置がコマンドパケットをメモリコントローラへ渡すとき、この方法は、ステップ８５８からステップ８６２へ進む。ステップ８６２では、メモリコントローラは、それが当初に発したコマンドパケットを受け取り、ブロードキャスト動作は、すべてのメモリ装置がコマンドパケットを受け取りかつ動作したので、効果的に終了される。それゆえ、すべてのメモリ装置は、メモリコントローラからの単一の発行されたコマンドで動作を実行する。図１４のステップは、１つのステップは、前のステップが完了するまで始まらないというケースではない点で、厳密かつ連続的に実行される。図３Ａおよび図３Ｂのシステムでは、図１４の動作は、論理的もしくは概念的なシーケンスのイベントを示しており、必ずしも、実際のイベントの順序を示すものではない。各々のステップの時間は、次のステップの開始間のギャップよりも長くあることができ、複数のステップが発生することができ、それらのステップはばらばらの順序で発生するように現われ得る。例えば、ステップ８５４は、コマンドパケットのすべてのオペコードビットが受け取られるまで、開始することができない。もし、カレントアクティブデータパス幅がｘ１である場合、これは、パケットの開始から多くのクロックサイクルとなり得る。しかしながら、コマンドパケットを次の装置へ転送すること（ステップ８５６）は、ほとんど瞬時に開始される。実際、狭いカレントアクティブ幅と少ない数のシリアルメモリ装置を有するリングで、最初の装置が装置アドレスとオペコードとの双方のすべてを受け取る前に、コマンドパケットは、開始時にリング中のすべての方向に進むことができる。
【００７３】
図３Ａおよび図３Ｂのシステムにおいて、コマンドの発行は、コマンドストローブ入力ＣＳＩの主張（アサート）により伴って行われる。ＣＳＩは、入力ポートＳｉｎ上に現れるコマンドパケットの捕獲を制御するために使用され、これは、コマンドパケットがシリアルメモリ装置を介して出力ポートＳｏｕｔへ流れるからである。また、ＣＳＩのアサートは、受け取られるコマンドパケットの長さに対応するパルス持続時間を有する。メモリコントローラの設計者は、ＣＳＩパルスが発行されるコマンドパケットに同期することを保証するのみを必要とするので、本システムの実施例では、メモリコントローラによってコマンドを発行するためのプロトコルは簡単である。発行されたコマンドは、アドレスされたメモリ装置に出力データを提供することを命じる。予め決められた時間の後に、出力データは、出力のために準備され、すなわち、読み出されたデータは、内部のメモリのリード動作中に、リードデータレジスタへロードされる。シリアルメモリ装置は、選択され、かつデータを出力ために準備される。ここで説明されたシステムの実施例では、リード動作を実行する読出しのプロトコルは、データストローブ入力ＤＳＩのパルスがリードコマンドパケットを有するＣＳＩパルスの後に発行されることを確実にする。ＤＳＩは、読出しデータを出力するために、図６のＩ／Ｏ回路ブロック５０６のようなＳｏｕｔ出力ポートのための出力回路をイネーブルするために使用され、かつ読出しデータの長さが要求されていることに対応するパルス持続時間を有する。より具体的に、ＤＳＩパルスは、データＩ／Ｏ回路ブロック５０６を介してＳｏｕｔ出力ポートを通してクロックアウトされるように、リードデータレジスタからのデータをイネーブルする。各々の装置にとって、ＣＳＯおよびＤＳＯは、リング内の次の装置がコマンドおよびデータを適切に捕獲することができるように提供された、ＣＳＩおよびＤＳＩの時間シフトされたバージョンである。
【００７４】
図１５および１６は、制御信号ＣＳＩ、ＤＳＩとリードコマンドパケットに応答して、メモリ装置によって実行される有効なリード動作を例示するシーケンス図である。図１５では、ＣＳＩは、発行されるリードコマンドパケットの持続時間の間、パルスされる。到来するリードコマンドは、そのコマンドが解釈されると同時にＳｏｕｔポート上に送られる。選択的な最適化として、現在の装置（すなわち、ＤＡバイト＝ＡＤＡレジスタ）に明確にアドレスされてリードコマンドが一旦認識されると、リング内の次の装置へのコマンドの転送は、正当なコマンドの長さの境界で停止することができる。リードコマンドパケットは、図１０にリストされたコマンドを含むことができ、情報のタイプは、メモリ装置から読み出されるべきものである。もし、リードコマンドパケットがシステムの最後のメモリ装置にアドレスされたならば、ＣＳＩパルスとリードコマンドパケットは、各々の介在するメモリ装置を介して渡され、そして最後のメモリ装置によって動作される。メモリ装置がリードデータを準備するために必要な最小の時間が過ぎた後に、メモリコントローラは、ＤＳＩパルスを発することができる。このパルスは、介在するメモリ装置を通過し、そして、選択された最後のメモリ装置によってのみ動作される。データは、対応するＤＳＯパルスと整合して、ＤＳＩパルスの持続時間の間に選択された最後のメモリ装置のＳｏｕｔ出力にクロックアウトされる。データは、ＤＳＩの立ち上がりエッジに対する遅延の後に提供されることに留意すべきである。ここで説明された実施例において、この遅延は、単一のクロックサイクルであるが、この遅延は、メモリ装置の設計および構成に依存した数のクロックサイクルであることができる。コマンドの転送と出力データの双方にとって、対応するＣＳＯおよびＤＳＯストローブは、Ｓｏｕｔ上のデータと同時の出力である。
【００７５】
図１６では、ＣＳＩは、発行されたリードコマンドパケットの持続時間の間パルスされ、リードコマンドは、例えば、バーストリードコマンドに対応する。メモリ装置がリードデータを準備するために必要な最小時間が過ぎた後に、メモリコントローラは、リードデータの第１の部分を出力するように選択されたメモリ装置をイネーブルするための第１のＤＳＩパルスを発することができる。第１のＤＳＩパルスは、低論理レベルに駆動することによってアサートされず、一時的にデータ出力を停止または休止する。これは、例えば、他のシステム動作を適合させるために実行されてもよい。それから、メモリコントローラは、リードデータの第２の部分を出力するよう選択されたメモリ装置をイネーブルするための第２のＤＳＩパルスを発することができ、このデータは、シリアルデータレジスタ９０２に格納されたデータの残りの部分である。第２のＤＳＩパルスは、アサートされないようにすることができ、第３のＤＳＩパルスが、残りのデータのデータ出力を完了するために発せられることができる。本実施例によれば、一致する装置アドレスと適切なオペコードバイトによって示されたように、前のＣＳＩストローブが、選択されたメモリ装置のためのリードコマンドに関連されたときにのみ、選択されたメモリ装置のＳｏｕｔ出力上の出力データは、受け取られたＤＳＩストローブに応答してクロックアウトされる。図１５と図１６のシーケンスの双方において、少なくとも１つのＤＳＩパルスは、リードコマンドのために直ちにＣＳＩパルスに続く。当該シリアルメモリ装置にアドレスされた非リードコマンドパケットまたは他のシリアルメモリ装置へアドレスされたコマンドパケットの後にＤＳＩがメモリコントローラによってアサートされた場合、選択されたメモリ装置のメモリからリードデータを提供する出力回路は、リードデータを提供することを禁止される。リードデータは、ＤＳＩに応答して提供されるので、メモリ装置は、当該シリアルメモリ装置への非リードコマンドパケットのためのアサートされたＣＳＩを伴うＤＳＩアサートを無視することができる。他の実施例では、何が有効なＤＳＩ入力を構成するのかのルールは、異なるものであってもよい。例えば、もし、コマンドプロトコルにより非リードコマンドが１つの装置にデータ出力のために選択された他の装置を邪魔させない場合には、ＤＳＩパルスは、リングのそれよりも前後にある可能性のある他のシリアルメモリ装置に向けられることができる。この場合、そのようなＤＳＩパルスの間にＳｉｎポートに受け取られたビットは、メモリコントローラと他のシリアルメモリ装置間の連絡に干渉しないように、Ｓｏｕｔポートへコピーされる必要がある。当業者であれば、種々のコマンドプロトコルがＣＳＩおよびＤＳＩパルスやＳｉｎの内容を無視したり転送したりするための種々のルールを有する可能があることを理解されよう。
【００７６】
図１７は、図６のメモリ装置５００で実行されることのできるデータ出力制御論理およびデータ出力回路を示す回路図である。データ出力制御論理は、一例であり、データ出力回路が内部のリードデータを提供することをどのようにしてディスエーブルまたは禁止されるかを例示する。当業者であれば、他の論理構造が、同様の所望の結果を達成するために開発できることを理解するであろう。図１７は、データ出力セレクタ９００、シリアルデータレジスタ９０２、リードデータ出力コントローラ９０４、およびＩＤ発生ブロック９０５を示す。ここで説明される実施例では、データ出力セレクタ９００は、図６の各データＩ／Ｏ回路ブロック５０６で実施され、データ出力セレクタ９００は、シリアルデータレジスタ９０２から受け取られた内部リードデータＲＤ＿ＤＡＴＡと、ラッチ９０７を介してメモリ装置のＳｉｎ入力ポートからのパススルーデータＰ＿ＤＡＴＡとを受け取るマルチプレクサ９０６を含む。マルチプレクサ９０６は、データ選択信号ＤＳｅｌｅｃｔに応答してＰ＿ＤＡＴＡまたはＲＤ＿ＤＡＴＡのいずれかを転送する。選択された出力は、それから、出力ドライバ９０８によって出力ポートＳｏｕｔ上に駆動される。パススルーデータＰ＿ＤＡＴＡは、図の簡略化のために示されていないが、他の論理回路によって受け取られるシリアルストリームのデータである。これらの他の回路は、書き込みデータをメモリアレイへ送り、またコマンドデータをメモリ装置のコマンドデコーダへ送る。ＲＤ＿ｄａｔａは、マルチプレクサ９０９から提供され、マルチプレクサ９０９は、レジスタ選択信号Ｒｓｅｌｅｃｔに応じて、シリアルデータレジスタ９０２からのデータか、ＩＤ発生ブロック９０５からのデータのいずれかを送る。レジスタ選択信号Ｒｓｅｌｅｃｔは、特定のレジスタを読み出すコマンドに応答してコマンドデコーダから提供される。ＩＤ発生ブロック９０５は、図６、図１１、図１２および図１３で説明されたレジスタと、状態の情報を提供する他のレジスタと、更新されたＩＤ番号を提供するための追加の論理回路とを含む。例えば、メモリ装置がＩＤ番号を割当てられたときに、ＩＤ発生ブロック９０５は、更新されたＩＤ番号を発生させ、更新されたＩＤ番号は、ＩＤ発生フェーズの動作中にマルチプレクサ９０９に転送される。更新されたＩＤ番号は、それから、マルチプレクサ９０９および９０６を介して次のメモリ装置のためにＳｏｕｔへ送られる。
【００７７】
シリアルデータレジスタ９０２は、図６の各データＩ／Ｏ回路ブロック５０６もしくはメモリコア５０８の一部であることができるが、ここで説明された実施例では、シリアルデータレジスタ９０２は、メモリコア５０８の一部である。シリアルデータレジスタ９０２は、入力クロックの遷移に応答してデータを直列に出力するあらゆるタイプのデータレジスタであることができる。シリアルデータレジスタ９０２には、直列または並列でメモリアレイから読み出されたデータＭ＿ＤＡＴＡがロードされることができる。当業者は、図１７で使用可能な、従来より公知の異なるタイプのシリアルレジスタに精通しているであろう。
【００７８】
リードデータ出力コントローラ９０４は、ＣＳＩとＤＳＩの制御信号の有効および無効なシーケンス中に、シリアルデータレジスタ９０２を制御しなければならない。リードデータ出力コントローラ９０４は、ラッチ９１０と、ＡＮＤ論理回路９１２、９１４、９１６とを含む。ラッチ９１０は、ＣＳＩの高論理レベルに応答してラッチされる信号ＲＥＡＤを受け取る。ラッチ９０７と９１０との双方がレベル感知ラッチであることに留意すべきである。ＲＥＡＤ信号は、受け取られたコマンドが当該シリアル装置へアドレスされ、かついずれのタイプのリード動作に対応するときに、高論理レベルにセットされるが、ＲＥＡＤ信号は、受け取られたコマンドが、他のシリアルメモリ装置へアドレスされるか、もしくは認識されたリード動作ではないときには、低論理レベルにセットされる。コマンドデコーダは、読み書き動作を実行するために、アドレスされたメモリ装置への受け取られたコマンドをデコードするので、ＲＥＡＤの発生は、周知の論理によって簡単に達成されるであろう。ラッチ９１０の出力は、ＡＮＤ論理回路９１２の第１の入力により受け取られ、ＡＮＤ論理回路９１２は、第２の入力に内部クロック信号ＣＬＫを受け取る。内部クロック信号ＣＬＫは、外部クロック、もしくは外部クロックのバッファされたバージョンに応答してメモリ装置内で合成され得る。ＡＮＤ論理回路９１２は、ＣＬＫか、ラッチ９１０の出力に依存する低論理レベル出力のいずれかを通過させる。
【００７９】
ＣＬＫは、ロードされたデータをクロックアウトするシリアルデータレジスタ９０２を含めて、メモリ装置のその他の内部の回路により使用される。ＡＮＤ論理回路９１４は、ＡＮＤ論理回路９１２の出力を受け取る１つの入力と、ＤＳＩを受け取るもう１つの入力とを有する。それゆえ、ＡＮＤ論理回路９１２がＣＬＫを通過させるときに、ＣＬＫは、ＤＳＩが高論理レベルにあるときシリアルデータレジスタ９０２に送信される。そうでなければ、シリアルデータレジスタ９０２のクロック入力は、低論理レベルのままである。ＤＳＩはさらに、マルチプレクサ９０６を制御するために使用される。ＡＮＤ論理回路９１６は、ＤＳＩを受け取る１つの入力と、イネーブル信号ＥＮを受け取るもう１つの入力とを有する。ここで説明された実施例では、イネーブル信号ＥＮは、図１１で示された装置アドレス論理８３０により提供され、イネーブル信号ＥＮは、ブロードキャストアドレスまたは一致する装置アドレスのいずれかがメモリ装置によって受け取られたとき、高論理レベルにある。ここで述べられた実施例では、ＡＮＤ論理回路９１６は、ＤＳＩとＥＮとの双方が高論理レベルにあるとき、出力データ選択信号Ｄｓｅｌｅｃｔを高論理レベルに駆動する。こうした条件の下では、ＤＳＩがアサートされ、コマンドパケットの装置アドレスは、メモリ装置の装置アドレスと一致する。従って、Ｄｓｅｌｅｃｔは、ＲＤ＿ＤＡＴＡを通過させるようにマルチプレクサ９０６を制御する。そうでなければ、ＤＳＩがアサートされずに、またメモリ装置がアドレスされないときに、マルチプレクサ９０６は、Ｐ＿ＤＡＴＡを通過させるように制御される。
【００８０】
図１７の回路の動作は、ＤＳＩの有効なアサートの間の動作を例示する図１５のシーケンス図を参照して簡潔に説明される。先ず、ＣＳＩが高論理レベルに駆動されることでアサートされ、リードコマンドパケットが、メモリ装置のＳｉｎ入力に受け取られる。コマンドパケットがメモリ装置をアドレスし、ＥＮを高論理レベルにセットするし、さらにメモリ装置が、シリアルデータレジスタ９０２にメモリからのリードデータＭ＿ＤＡＴＡをロードするように内部リード動作を実行すると仮定する。コマンドパケットは、リード（読出し）関連コマンドであるので、信号ＲＥＡＤは、高論理レベルである。高論理レベルのＣＳＩで、ＣＬＫは、ＡＮＤ論理回路９１４に通過されるが、シリアルデータレジスタ９０２に結合することを妨げられる。後に、ＤＳＩが高論理レベルに駆動されてアサートされる。ＤＳＩが高論理レベルへ向かうやいなや、ＤＳｅｌｅｃｔは、ＲＤ＿ＤＡＴＡを通過させるようにマルチプレクサ９０６を制御する。高論理レベルのＤＳＩで、ＣＬＫは、シリアルデータレジスタ９０２に結合され、格納されたデータをマルチプレクサ９０６を介して出力ドライバ９０８にクロックアウトさせる。従って、Ｓｏｕｔ出力ポートに提供されたデータは、メモリ装置からの有効なリードデータである。ＤＳＩが低論理レベルに下降した後に再びアサートされる図１６の状況では、ＤＳＩが低論理レベルへ下降したとき、ＡＮＤ論理回路９１４は、ＡＮＤ論理回路９１２の出力をシリアルデータレジスタ９０２から非結合することに留意すべきである。ＤＳＩが再び立ち上がると、ＣＬＫは、シリアルデータレジスタ９０２に結合され、シリアルデータ出力を継続させる。
【００８１】
図１７の回路の動作は、ＤＳＩの無効なアサート中の動作を例示する、図１８から図２０を参照して簡潔に説明される。図１８では、ＣＳＩは、リード（読出し）関連コマンドではないコマンドパケットに関連してアサートされ、メモリ装置にアドレスされ、ここで、非リードコマンドは、例えば、書き込みコマンドに対応する。従って、信号ＲＥＡＤは、低論理レベルにあり、これは、ＣＳＩが高論理レベルにあるときにラッチされる。それゆえ、ＡＮＤ論理回路９１２は、ＣＬＫがＡＮＤ論理回路９１４に送られるのを禁止する。ＤＳＩが後にアサートされたとき、ＡＮＤ論理回路９１４は、静的な低論理信号をシリアルデータレジスタ９０２へ渡す。従って、ＣＬＫがＡＮＤ論理回路９１２によって禁止されているので、ＤＳＩはシリアルデータレジスタ９０２に影響力を与えない。それゆえ、ＲＤ＿ＤＡＴＡは、マルチプレクサ９０６に直接結合されたシリアルデータレジスタ９０２の最初のレジスタ回路に保持されているデータに対応するであろう。ＤＳＩをシリアルデータレジスタ９０２から禁止することによって、シリアルデータレジスタ９０２の可能性のあるランダムなデータが、Ｓｏｕｔ出力ポート上にアサートされることが禁止される。１つの実施例では、Ｓｏｕｔ出力ポートは、ＤＳＩパルス持続時間の間、１つの論理レベルに静的に保持される。それゆえ、メモリコントローラは、非リードに基づくコマンド後のＤＳＩのアサートであるような、無効な動作の結果である、連続的な“０”または“１”の論理状態のシーケンスを認識することができる。但し、アドレスされたメモリ装置は、例えば書き込み動作のような非リード動作を実行することに留意すべきである。
【００８２】
図１９では、ＣＳＩは、最初に、メモリ装置にアドレスされたリードコマンドに関連してアサートされる。従って、ＣＬＫは、図１５のシーケンス図について前述したのと同じ方法で、ＡＮＤ論理回路９１４に結合される。他方、メモリ装置は、リード動作を内部で実行し、シリアルデータレジスタ９０２にＭ＿ＤＡＴＡをロードする。ＣＳＩは、例えば書き込みコマンドパケットのような、同じメモリ装置へアドレスされた、発行された非リードコマンドパケットに関連して再びアサートされる。ラッチ９１０は、低論理レベルのＲＥＡＤをラッチし、その結果、ＡＮＤ論理回路９１２は、ＣＬＫをＡＮＤ論理回路９１４に結合されることを禁止する。ＤＳＩが後にアサートされたとき、ＤＳｅｌｅｃｔは、マルチプレクサ９０６を制御し、ＲＤ＿ＤＡＴＡを通過させるが、ＡＮＤ論理回路９１４は、ＣＬＫを受け取らない。それゆえ、シリアルデータレジスタ９０２は、ディスエーブルされ、最初のレジスタ回路に格納されたデータビットを除き、その内容を出力しない。ここで述べられた実施例では、非リードコマンドパケットが異なるメモリ装置へアドレスされたことは問題ではない。なぜなら、コマンドデコーダ論理は、高論理レベルへＲＥＡＤをセットするためにアクティブを維持することができるためである。このような場合では、先にアドレスされたメモリ装置は、コマンドに応答しないであろうし、また、そのマルチプレクサ９０６は、ＥＮが低論理レベルにセットされることによりＤＳＩがアサートされたときでさえ、Ｐ＿ＤＡＴＡを通過させるようにセットされる。非リードコマンドによってアドレスされたメモリ装置では、マルチプレクサ９０６は、ＲＤ＿ＤＡＴＡを送信するようセットされるが、シリアルデータレジスタ９０２は、図１８の状況で説明された方法で、ディスエーブルにされる。
【００８３】
図２０では、ＣＳＩは、最初に、メモリ装置にアドレスされたリードコマンドパケットに関連してアサートされ、リードコマンドは、例えば、バーストリードコマンドに対応する。従って、ＣＬＫは、図１５のシーケンス図で前述されたのと同じ方法で、ＡＮＤ論理回路９１４に結合される。ＤＳＩは、バーストリードコマンドを有する最初のＣＳＩストローブの後に、初めてアサートされる。マルチプレクサ９０６は、ＲＤ＿ＤＡＴＡを送信するよう制御され、シリアルデータレジスタ９０２は、クロックを受け取り、格納されたデータをＳｏｕｔ出力ポートへクロックアウトさせる。このバーストリードの例では、ＤＳＩは、低論理レベルに駆動されることでアサートされなくなり、一時的に停止、もしくは休止する。この状況は、図１６で示されたバーストリード動作と同じである。しかしながら、２番目のアサートされたＤＳＩパルスの代わりに、ＤＳＩがアサートされなくなった後に、ＣＳＩが非リードコマンドパケットに関連してアサートされる。このコマンドは、例えば書き込み動作に対応する。この非リードコマンドパケットは、いずれのメモリ装置にアドレスされることができる。すべてのメモリ装置では、ラッチ９１０が低論理レベルをＡＮＤ論理回路９１２へ出力ことにより、ＣＬＫがＡＮＤ論理回路９１４に結合されることを禁止し、次いで、ＣＬＫがシリアルデータレジスタ９０２に結合されることを禁止する。それゆえ、非リードコマンドパケットのためのＣＳＩのアサートに引き続くＤＳＩのアサートは、すべてのメモリ装置によって無視される。アドレスされたメモリ装置のＳｏｕｔ出力ポートは、ＤＳＩパルス持続時間の間、１つの論理レベルを有するデータを静的に提供する。
【００８４】
データ出力制御信号の有効および無効な発行は、例えば、図３Ａおよび図３Ｂのシステムの前述した実施例のＤＳＩであるが、これは、各メモリ装置によって従われるデータ出力禁止アルゴリズムの実施例に要約され得る。より具体的には、データ出力禁止アルゴリズムは、各メモリ装置のコマンドデコーダによって従われる。図２１は、本実施例によるデータ出力禁止アルゴリズムを要約したフローチャートである。
【００８５】
この方法は、ＤＳＩかＣＳＩのいいずれかである最初の制御信号がメモリ装置によって受け取られたときに、ステップ９５０で開始する。もし、ステップ９５２で、受け取られた制御信号が対応するコマンドを有するＣＳＩであるならば、ステップ９５３で決定されるように、コマンドが当該シリアルメモリ装置にアドレスされるならば、本方法は、９５４へと続く。ステップ９５４から、もし、ＣＭＤが非リード動作であるならば、本方法は、ステップ９５６へ進み、非リード動作を実行する。そして、メモリ装置は、次の制御信号を待つためにステップ９５０へ戻る。ステップ９５４へ戻って、もし、受け取られたＣＭＤがリード関連コマンドであるならば、リード動作がステップ９５８で実行され、リードデータを出力する準備をする。本方法は、それから次の制御信号が受け取られるステップ９５０へ戻る。もし、次の制御信号が、アサートされたＤＳＩであるならば、本方法は、シリアルメモリ装置が前のコマンドによって選択された場合には、ステップ９５２からステップ９６１を経由してステップ９６２に進行する。ステップ９６１は、前のコマンドの装置アドレスが、割り当てられた装置アドレスに一致することを確認する。そのような場合、前に受け取ったＣＭＤがリードコマンドに対応するならば、リードデータがステップ９６４で、受け取られたＤＳＩに応答して出力される。次の制御信号が他のＤＳＩである場合は、本方法は、ステップ９６４へ戻り、さらにデータを出力する。特定のループは、連続的なアサートされたＤＳＩ制御信号の数だけ継続することができ、これは、有効なデータ出力となる。
【００８６】
リードコマンドがステップ９５８で実行され、かつ別のＣＳＩが対応する非リード関連コマンドで受け取られるシナリオへ戻って、本方法は、ステップ９５２から９６２まで進み、ここで、コマンドが非リード関連コマンドであることが決定される。すると、データ出力動作は、ステップ９６６で中止される。それゆえ、非リード関連コマンドに対応するＣＳＩの後に受け取られたアサートされたＤＳＩは、中止されたデータ出力動作という結果になる。従って、もし、メモリコントローラが、ＤＳＩ制御パルスをアサートすることによって無効なリードコマンドを発するならば、静的な論理“０”もしくは“１”のデータストリームがそれに戻される。それゆえ、メモリコントローラは、無効なコマンドの結果であるこのようなデータパターンを認識することができ、ホストシステムにはデータは全く提供されない。図１９の状況では、メモリコントローラは、最初のリードコマンドパケットを再び発することができ、それは、オリジナルリード動作が、ＤＳＩのアサートの前に非リードコマンドパケットの発行で中止されたからである。
【００８７】
メモリ装置を有する前述されたシステムは、従来の並列マルチドロップシステムよりも非常に高速で動作し、それによって、より優れたパフォーマンスが提供される。各メモリ装置の性能とシステムの性能は、より多くのシリアル入力および出力のデータポートが提供されるにつれ、さらに改善される。もし、メモリ装置が、前述の構成可能なデータ幅の例を用いるならば、各メモリ装置は、動的に構成可能であり、最小限のアクティブな数のデータパッドで動作し、消費電力を低減する。メモリ装置は、ブロードキャスト動作において、メモリコントローラからすべてのメモリ装置へ直列に伝達された単一のコマンドの発行により構成可能である。システムの堅牢な動作は、データ出力禁止アルゴリズムを実行することによって保証され、そのアルゴリズムは、メモリコントローラが不適切にリード出力制御信号を発行するとき、有効なデータがメモリコントローラへ提供されることを抑制する。これらの前述した実施例は、各々が独立して実行可能であり、もしくは、システムのメモリ装置やメモリコントローラ内で互いに組み合わせて実行可能である。
【００８８】
上記した実施例の適用または修正を成すことができる。それゆえ、上記で検討された実施例は、例示的なものであって、限定的なものではないと考えられる。
【図１】
0005408663.tif 000003
【図２Ａ】
0005408663.tif 000004
【図２Ｂ】
0005408663.tif 000005
【図３Ａ】
0005408663.tif 000006
【図３Ｂ】
0005408663.tif 000007
【図４】
0005408663.tif 000008
【図５Ａ】
0005408663.tif 000009
【図５Ｂ】
0005408663.tif 000010
【図６】
0005408663.tif 000011
【図７】
0005408663.tif 000012
【図８Ａ】
0005408663.tif 000013
【図８Ｂ】
0005408663.tif 000014
【図９】
0005408663.tif 000015
【図１０】
0005408663.tif 000016
【図１１】
0005408663.tif 000017
【図１２】
0005408663.tif 000018
【図１３】
0005408663.tif 000019
【図１４】
0005408663.tif 000020
【図１５】
0005408663.tif 000021
【図１６】
0005408663.tif 000022
【図１７】
0005408663.tif 000023
【図１８】
0005408663.tif 000024
【図１９】
0005408663.tif 000025
【図２０】
0005408663.tif 000026
【図２１】
0005408663.tif 000027