(57)【要約】半導体素子は、外部データインタフェース、外部ステータスインタフェース、及び複数の内部データインタフェースを有するブリッジ素子とを有する。複数のメモリ素子は、内部データインタフェースのうちの１つを介してブリッジ素子にそれぞれ接続される。メモリ素子のそれぞれは、ブリッジ素子の入力に接続されるレディ／ビジー出力を有する。前記ブリッジ素子は、外部ステータスインタフェースで受信されたステータス要求コマンドに応答して、外部ステータスインタフェースのパケットフォーマットで各レディ／ビジー出力の現在の状態を出力し、外部データインタフェースで受信したステータス読み出しコマンドに応答して、内部データインタフェースの一つを介して、選択されたメモリ素子のステータスレジスタから情報を読み出し、外部データインタフェースで情報を提供する。【選択図】図６
2015520459.tif 000002
【特許請求の範囲】
【請求項１】
データ及びコマンドを送受信する外部データインタフェース、ステータス情報を送受信する外部ステータスインタフェース、及び複数の内部データインタフェースを有するブリッジ素子と、
前記内部データインタフェースのうちの１つを介して前記ブリッジ素子にそれぞれ接続され、前記メモリ素子のそれぞれが、前記ブリッジ素子の入力に接続されるレディ／ビジー出力を有する、複数のメモリ素子と、
を備える、半導体素子であって、
前記ブリッジ素子は、
ステータス要求コマンドに応答して、パケットフォーマットで各レディ／ビジー出力の状態を出力し、
ステータス読み出しコマンドに応答して、少なくとも１つのメモリ素子のステータスレジスタから情報を提供する、ように構成される、半導体素子。
【請求項２】
各レディ／ビジー出力の前記状態は、各レディ／ビジー出力の現在状態である、請求項１に記載の半導体素子。
【請求項３】
前記ブリッジ素子は、各レディ／ビジー出力の前記現在状態を前記外部ステータスインタフェースに出力するように構成される、請求項２に記載の半導体素子。
【請求項４】
前記ブリッジ素子は、前記外部ステータスインタフェースで受信されるステータス要求コマンドに応答して、各レディ／ビジー出力の前記現在状態を出力するように構成される、請求項２に記載の半導体素子。
【請求項５】
前記ブリッジ素子は、前記少なくとも１つのメモリ素子の前記ステータスレジスタからの前記情報を前記外部データインタフェースで提供するように構成される、請求項１に記載の半導体素子。
【請求項６】
前記ブリッジ素子は、前記ステータス読み出しコマンドに応答して、前記少なくとも１つのメモリ素子のステータスレジスタから情報を読み出すように構成される、請求項５に記載の半導体素子。
【請求項７】
前記少なくとも１つのメモリ素子は、前記ステータス読み出しコマンドに応答して選択される、請求項５に記載の半導体素子。
【請求項８】
前記少なくとも１つのメモリ素子は、前記複数のメモリ素子の全てである、請求項５に記載の半導体素子。
【請求項９】
メモリコントローラと、
複数の、請求項１に記載の半導体素子と、を備え、
各半導体素子のブリッジ素子は、前記ブリッジ素子の外部データインタフェース及び外部ステータスインタフェースを介して、リングトポロジーで前記コントローラに直列接続される、半導体メモリシステム。
【請求項１０】
半導体素子を動作させる方法であって、前記半導体素子は、ブリッジ素子と、複数の内部データインタフェースを介して前記ブリッジ素子に接続される複数のメモリ素子とを有し、前記方法は
各メモリ素子のレディ／ビジー状態をパケットフォーマットで出力すること、
少なくとも１つのメモリ素子のステータスレジスタから情報を出力すること、
を含む、方法。
【請求項１１】
各メモリ素子の前記レディ／ビジー状態は、各メモリ素子の現在レディ／ビジー状態である、請求項１０に記載の方法。
【請求項１２】
各メモリ素子のレディ／ビジー状態を出力することは、各メモリ素子のレディ／ビジー状態を前記半導体素子のステータス出力に出力することを含む、請求項１１に記載の方法。
【請求項１３】
前記半導体素子のステータス入力で、ステータス要求コマンドを受信することを更に含み、
各メモリ素子のレディ／ビジー状態を出力することは、前記外部ステータスインタフェースで受信される前記ステータス要求コマンドに応答して、各メモリ素子のレディ／ビジー状態を出力することを含む、請求項１１に記載の方法。
【請求項１４】
前記ブリッジ素子は、前記少なくとも１つのメモリ素子の前記ステータスレジスタからの前記情報を前記外部データインタフェースで提供するように構成される、請求項１０に記載の方法。
【請求項１５】
前記半導体素子のデータ入力でステータス読み出しコマンドを受信することを更に含み、
少なくとも１つのメモリ素子ステータスレジスタから情報を出力することは、前記ステータス読み出しコマンドに応答して、少なくとも１つのメモリ素子ステータスレジスタから情報を出力することを含む、請求項１４に記載の方法。
【請求項１６】
前記ステータス読み出しコマンドに応答して、前記少なくとも１つのメモリ素子を選択することを更に含む、請求項１５に記載の方法。
【請求項１７】
前記少なくとも１つのメモリ素子は、前記複数のメモリ素子の全てである、請求項１５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２０１２年５月２９日に出願された米国仮特許出願第６１／６５２，５１３号明細書の優先権を主張するものであり、この仮特許出願の内容を参照により本明細書に援用する。
【０００２】
本発明は、一般的には、複数の直列接続された半導体素子からコントローラにステータス情報を通信する装置及び方法に関する。
【背景技術】
【０００３】
コンピュータ及び他の情報技術システムは通常、メモリ等の半導体素子を含む。半導体素子はコントローラによって制御され、コントローラは、コンピュータの中央演算処理装置（ＣＰＵ）の一部をなすこともあれば、又はＣＰＵとは別個であることもある。コントローラは、半導体素子と情報をやりとりするインタフェースを有する。通信し得る情報のタイプ及びそのようなコントローラ素子通信を実行する従来技術において開示される様々な実施態様が多数あることも理解されるだろう。メモリ素子のレディ又はビジー状態は、メモリ素子からコントローラに通信し得る情報の単なる一タイプの例である。
【０００４】
リングトポロジーを有するメモリシステムの例は、２００８年８月２１日に公開された「SYSTEM HAVING ONE OR MORE MEMORY DEVICES」という名称の米国特許出願公開第２００８／０２０１５４８号明細書、２００８年２月２８日に公開された「SCALABLE MEMORY SYSTEM」という名称の米国特許出願公開第２００８／００４９５０５号明細書、２００８年２月２８日に公開された「MODULAR COMMAND STRUCTURE FOR MEMORY AND MEMORY SYSTEM」という名称の米国特許出願公開第２００８／００５２４４９号明細書、２０１０年４月１５日に公開された「COMPOSITE MEMORY HAVING A BRIDGING DEVICE FOR CONNECTING DISCRETE MEMORY DEVICES TO A SYSTEM」という名称の米国特許出願公開第２０１０／００９１５３６号明細書に記載されており、これらの全てを参照により本明細書に援用する。以下の説明での様々なポイントにおいて、特定のコマンド、アドレス及びデータフォーマット、プロトコル、内部装置構造、及び／又はバストランザクション等の例を参照し得、上記特許引用文献を参照して、更なる詳細例を素早く取得可能なことを当業者は理解するだろう。
【０００５】
リングトポロジーを有するメモリシステムでは、コマンドパケットは、コントローラから発せられ、最終的にコントローラに戻るまで、ポイントツーポイント様式で各メモリ素子を通して、メモリ素子のリングを通る。図１Ａは、並列クロック信号を受信するシステム例のブロック図であり、一方、図１Ｂは、ソース同期クロック信号を受信する図１Ａと同じシステムのブロック図である。クロック信号は、シングルエンドクロック信号であってもよく、又は差動クロック対であってもよい。
【０００６】
図１Ａでは、システム２０は、少なくとも１つの出力ポートＸｏｕｔ及び入力ポートＸｉｎを有するメモリコントローラ２２と、直列接続されるメモリ素子２４、２６、２８、及び３０とを含む。図１Ａに示されていないが、各メモリ素子は、Ｘｉｎ入力ポート及びＸｏｕｔ出力ポートを有する。入力ポート及び出力ポートは、メモリ素子を、メモリ素子が一部をなすシステムにインタフェースする１つ又は複数の物理的なピン又は接続からなる。場合によっては、メモリ素子はフラッシュメモリ素子である。図１Ａの現在の例は４つのメモリ素子を含むが、代替の例は、単一のメモリ素子又は任意の適する数のメモリ素子を含むことができる。したがって、メモリ素子２４が、Ｘｏｕｔに接続されるため、システム２０の最初の素子である場合、メモリ素子３０は、Ｘｉｎに接続されるため、Ｎ番目又は最後の素子であり、ここで、Ｎは０よりも大きな整数である。そうすると、メモリ素子２６〜２８は、最初のメモリ素子と最後のメモリ素子との間に介在する、直列接続されたメモリ素子である。各メモリ素子は、システムの電源投入初期化時に離散識別（ＩＤ）番号をとるか、又は素子アドレス（ＤＡ）をとることができ、それにより、メモリ素子は個々にアドレス指定可能である。本願と同じ譲受人に譲渡された「APPARATUS AND METHOD FOR PRODUCING IDS FOR INTERCONNECTED DEVICES OF MIXED TYPE」という名称の米国特許出願公開第２００８／００１５５１７９号明細書、「APPARATUS AND METHOD FOR ESTABLISHING DEVICE IDENTIFIERS FOR SERIALLY INTERCONNECTED DEVICES」という名称の米国特許出願公開第２００７／０２３３９１７号明細書、「APPARATUS AND METHOD FOR PRODUCING DEVICE IDENTIFIERS FOR SERIALLY INTERCONNECTED DEVICES OF MIXED TYPE」という名称の米国特許出願公開第２００８／０１８１２１４号明細書、「APPARATUS AND METHOD FOR PRODUCING IDENTIFIERS REGARDLESS OF MIXED DEVICE TYPE IN A SERIAL INTERCONNECTION」という名称の米国特許出願公開第２００８／０１９２６４９号明細書、「APPARATUS AND METHOD FOR IDENTIFYING DEVICE TYPE OF SERIALLY INTERCONNECTED DEVICES」という名称の米国特許出願公開第２００８／０２１５７７８号明細書、「ADDRESS ASSIGNMENT AND TYPE RECOGNITION OF SERIALLY INTERCONNECTED MEMORY DEVICES OF MIXED TYPE」という名称の米国特許出願公開第２００８／０１４０８９９号明細書、及び「SYSTEM AND METHOD OF OPERATING MEMORY DEVICES OF MIXED TYPE」という名称の米国特許出願公開第２００８／０１４０９１６号明細書は、システムの直列接続されたメモリ素子の素子アドレスを生成し、割り当てる方法を記載しており、これらを全て参照により本明細書に援用する。
【０００７】
メモリ素子２４〜３０は、１つのメモリ素子のデータ入力は前のメモリ素子のデータ出力に接続されるため、直列接続されるものと考えられ、それにより、チェイン内の最初と最後のメモリ素子を除き、直列接続システム編成を形成する。メモリコントローラ２２のチャネルは、導電線に接続された、別個のピン又は同じピンによって提供されるデータ、アドレス、及び制御情報を含む。図１Ａの例は１つのチャネルを含み、１つのチャネルが、Ｘｏｕｔポートと、対応するＸｉｎポートとを含む。しかし、メモリコントローラ２２は、別個のメモリ素子チェインに対応する任意の適する数のチャネルを含むことができる。図１Ａの例では、メモリコントローラ２２はクロック信号ＣＫを提供し、これは、全てのメモリ素子に並列接続される。
【０００８】
一般的な動作では、メモリコントローラ２２は、Ｘｏｕｔポートを通してコマンドを発行し、コマンドは、オペレーションコード（ｏｐコード）と、素子アドレスと、任意選択的な、読み取り又はプログラミングのアドレス情報と、プログラミングに関するデータとを含む。コマンドは、直列ビットストリームコマンドパケットとして発行することができ、この場合、パケットは論理的に、所定サイズのセグメントに細分することができる。各セグメントのサイズは、例えば、１バイトであることができる。ビットストリームは、時間の経過に伴って提供されるビットシーケンス又はビットシリーズである。コマンドは最初のメモリ素子２４によって受信され、このメモリ素子２４は、素子アドレスを、割り当てられたアドレスと比較する。アドレスが一致する場合、メモリ素子２４はコマンドを実行する。コマンドは、そのメモリ素子２４の出力ポートＸｏｕｔを通して次のメモリ素子２６に渡され、メモリ素子２６で同じ手順が繰り返される。最終的に、選択されたメモリ素子と呼ばれる、一致する素子アドレスを有するメモリ素子が、コマンドによって特定される動作を実行することになる。コマンドがデータ読み取りコマンドである場合、選択されたメモリ素子は、その出力ポートＸｏｕｔ（図示せず）を通して、読みとられたデータを出力し、このデータは、メモリコントローラ２２のＸｉｎポートに達するまで、介在するメモリ素子を直列に渡される。コマンド及びデータは直列ビットストリームで提供されるため、クロックは、各メモリ素子により、シリアルビットをクロックイン／アウトするため、及び内部メモリ素子動作を同期するために使用される。このクロックは、システム２０内の全てのメモリ素子によって使用される。
【０００９】
図１Ａのシステム２０のより具体的な例の更なる詳細は、先に言及した米国特許出願公開第２００８／０２０１５４８号明細書の図３Ａ及び段落５３〜５６において提供されている。
【００１０】
図１Ａのシステム２０を超える更なる性能改善を、図１Ｂのシステムによって得ることができる。図１Ｂのシステム４０は、図１Ａのシステム２０と同様であるが、クロック信号ＣＫは、ソース同期クロック信号ＣＫを提供する代替のメモリコントローラ４２から各メモリ素子に直列に提供される。各メモリ素子４４、４６、４８、及び５０は、それぞれのクロック入力ポートでソース同期クロックを受信し、それぞれのクロック出力ポートを介して、システム内の次の素子に転送し得る。システム４０の幾つかの例では、クロック信号ＣＫは、短い信号線を介してあるメモリ素子から別のメモリ素子に渡される。したがって、配列クロック分配システムに関連するクロック性能問題のいずれも存在せず、ＣＫは高周波数で動作することができる。したがって、システム４０は、図１Ａのシステム２０よりも高速で動作することができる。
【００１１】
図１Ｂのシステム４０のより具体的な例の更なる詳細は、先に言及した米国特許出願公開第２００８／０２０１５４８号明細書の図３Ｂ及び段落５７から５８において提供されている。
【００１２】
これより図２を参照する。図２は、メモリコントローラ２１０と、複数のメモリ素子２１２とを含むシステム２００のブロック図である。示されるシステムは、多くの側面において、図１Ａのシステムと同様であり得、Ｘｏｕｔポート及びＸｉｎポートは、複数の線によってより細かい粒度で詳細に示されており、複数の線のうちの１つは、素子のリングに沿って素子から素子に延びるステータス線であり、各素子は、独立ステータスリング２１４を提供する追加の組のＩＯピン（すなわち、ＤＱピンに加えて）を含む。これらの追加のＩＯピンは、メモリコントローラ２１０及び各メモリ素子２１２でＳＩ及びＳＯと記される。ＳＩピン及びＳＯピンはそれぞれ、本明細書では、ステータス入力ピン及びステータス出力ピンとも呼ばれる。
【００１３】
これより図３を参照し、図３は、システム２００と同様であるシステム３００のブロック図であるが、システム３００は、図１Ｂに関連して説明された直列分配クロックを利用する。
【００１４】
図２及び図３の実施形態例によれば、メモリ素子２１２又は３１２は、プログラム、読み出し、消去等の内部動作を完了したとき、ステータスレジスタを、完了された動作についての情報で更新する。ステータスレジスタの更新を完了すると、メモリ素子は自動的に、ステータスリング２１４又は３１４を介して再びコントローラ２１０又は３１０にそのステータスレジスタの内容を送信し、それにより、未解決の動作が完了したことをコントローラ２１０又は３１０に通知し得る。この構成の１つの欠点は、潜在的に、個々の各メモリ素子２１２、３１２によって決定されるときに、ステータスリング２１４、３１４を介して多くのステータスパケットを送信する必要があり得、バスの競合が生じ得ることである。
【００１５】
図２又は図３のシステム内のステータス指示を実施することにおける他の変形が意図される。例えば、単純な非同期型実施が代替の一実施形態例である。任意のメモリ素子２１２又は３１２は、特定の内部動作（例えば、ページ読み出し、ページプログラム、ブロック消去、動作アボート等）が完了すると、ステータスリング２１４又は３１４上で単一のストローブパルスを発行して、動作の完了をコントローラ２１０又は３１０に通知することができる。しかし、単一のストローブパルスの発行は、必ずしも幾つかの動作が完了した場合のみに限られるわけではなく、むしろより一般的に、単一のストローブパルスは、メモリ素子内の何らかの形態のステータス変化の指示を提供することが意図される。実施形態例によるメモリ素子がそれぞれ、ストローブパルスを生成する回路と、ストローブパルスを出力する回路とを備え得ることも意図される。
【００１６】
少なくとも幾つかの非同期型実施では、ステータスパルスは、発行側メモリ素子の識別情報についての詳細情報を含まないため、コントローラ２１０又は３１０は、例えば、ステータスレジスタ読み出しコマンドを装置のリングに沿ってブロードキャストすることによって発行側メモリ素子の識別情報を学習し得る。素子のリング内の各メモリ素子２１２又は３１２は、各ＣＳＩピンでステータスレジスタ読み出しコマンドを受信し、コマンドを処理し、次の下流メモリ素子に転送し、次に、この下流メモリ素子は、ステータスレジスタ読み出しコマンドを同様に扱う。このプロセス中、各メモリ素子２１２又は３１２は、メモリ素子のＱ出力ピンで送出されるステータスパケットに各ステータス情報を添付する。ステータスパケットがコントローラ２１０又は３１０に到着すると、ステータスパケットを処理して、どのメモリ素子が動作を完了したのか、及びその動作が首尾よく完了したか（それとも失敗したか）の特定を得ることができる。幾つかの例では、コントローラが、ステータスレジスタ読み出しコマンドを常にはすぐにブロードキャストせず、むしろ、ある数（すなわち、１よりも大きな数）のステータスパルスを受信するまで、ステータスレジスタ読み出しコマンドのブロードキャストを待つことにより、これらのステータスレジスタ読み出しコマンドに関連するバス使用オーバーヘッドを低減することが可能であり得る。この構成の１つの欠点は、ステータスレジスタブロードキャストコマンドに対する応答が潜在的に、データバス上で大量の帯域幅を占有することがあり、読み出し動作及び書き込み動作等のメモリ素子の主な動作とのバス競合が生じるおそれがあることである。
【００１７】
更なる複雑性が、複数のマルチチップパッケージ４０４（「ＭＣＰ」）を有する図４に示されるＨＬＮＡＮＤリングトポロジメモリシステム４００において生じ、各パッケージは、チャネルＸｉｎ／Ｘｏｕｔを介してコントローラ４０２に直列接続された、複数のＮＡＮＤダイ４１４と、少なくとも１つのブリッジチップ４１２とを有し、チャネルＸｉｎ／Ｘｏｕｔは、図２及び図３に示されるように複数のピンに細分し得る。同時に発生する読み出し、プログラム、及び消去等の多くの動作があり得る。個々の各ＮＡＮＤダイ４１４はレディ／ビジーピンＲ／Ｂ＃（図示せず）を有して、任意の１つのダイでの動作の進行を示す。ＨＬＮＡＮＤリング構成は、示されるよりも多数の素子、例えば、それぞれ１６個のＮＡＮＤダイを有する１６個のＭＣＰを有し得、合計で２５６個のＲ／Ｂ＃信号を有し得る。これらをコントローラ４０２に個々に直接接続することは、明らかに非実用的である。更なる問題は、動作がＲ／Ｂ＃信号によって示されるように完了すると、コントローラ４０２が、ＮＡＮＤダイ４１４でのステータスレジスタを読み出して、動作が首尾よく完了したか否か、又はエラーが発生したか否かを判断しなければならないことである。進行中の多くの同時動作がある場合、主ＨＬＮＡＮＤコマンド／データインタフェースを介する個々のステータスレジスタの読み出しは、これらの読み出しがない場合には読み出しトランザクション及び書き込みトランザクションに利用可能な大きな帯域幅を消費することがある。
【００１８】
本願の譲受人に譲渡された米国特許出願公開第２０１１／０２５８３６６号明細書には、リングトポロジーで接続されたメモリ素子からステータス情報を読み出す幾つかの技法が記載されており、この特許出願を参照により本明細書に援用する。まず、ステータス信号が、リング内の前の素子から入力端子ＳＩを通して各素子に提供され、各素子は、出力端子ＳＯを通してリング上の次の素子にステータス信号を提供する。素子は通常、ＳＩ上で受信した情報をＳＯ出力に渡す。読み出し動作、プログラム動作、又は消去動作の完了等のイベントがある装置内で発生すると、メモリ素子は、ＳＯ上でステータスパケットを出力する。ステータスパケットはヘッダを含み、それにより、コントローラは、情報、装置識別子、完了したメモリ動作についての情報を提供するステータスビット、及び恐らくは、パケットの正確性を保証するための誤り修正ビットを適宜認識し復号化することができる。入力パケットが、リング内の上流装置から検出される場合、ローカルステータスパケットは、入力パケットが完了するまで保持されることになる。この構成には、ステータスをパケットをコントローラに送るに当たり競合及び／又は遅延が生じる可能性を含め、ＳＩ／ＳＯチャネルで大きな帯域幅を占有するという欠点がある。
【００１９】
米国特許出願公開第２０１１／０２５８３６６号明細書において開示される第２の技法は、同じＳＩ−ＳＯステータスリングトポロジーを使用する。読み出し動作、プログラム動作、又は消去動作の完了等のイベントが、ある装置内で発生する場合、装置は、１クロックサイクル持続時間パルスをＳＯに追加する。パルスがＳＩ上で同時に受信される場合、ブリッジチップは、パルスを２クロックサイクルに延長する。コントローラは、受信されたパルスの全幅を観測して、所与の時間期間内で発生するイベントの数を特定することができる。厳密にどの装置及びどのＮＡＮＤダイが、パルスをトリガーしたかを見つけ出すために、コントローラは、コマンド／データインタフェースを使用してステータス読み出しコマンドを発行しなければならない。この構成は、ＳＩ／ＳＯチャネルでの装置生成帯域幅使用を低減するが、複数の動作が同時に実行されている場合、コントローラが、どの素子がパルスをＳＩ／ＳＯに追加したかを識別することができという欠点がある。その結果、コントローラは、ブロードキャストステータス読み出しコマンドを発行しなければならず、これは、このコマンドの発行がなければ、コマンド及びデータに使用することができるコマンド／データインタフェースで大きな帯域幅を消費する。
【発明の概要】
【００２０】
したがって、コントローラが、個々のメモリ素子から高速且つ効率的にレディ／ビジー情報及びステータス情報を取得可能な、直列接続されたメモリシステムが必要とされている。
【００２１】
本発明の一目的は、従来技術の欠点のうちの１つ又は複数に対処することである。
【００２２】
一態様では、半導体素子はブリッジ素子を有し、ブリッジ素子は、外部データインタフェースと、外部ステータスインタフェースと、複数の内部データインタフェースとを有する。複数のメモリ素子はそれぞれ、内部データインタフェースのうちの１つを介してブリッジ素子に接続される。各メモリ素子は、ブリッジ素子の入力に接続されるレディ／ビジー出力を有する。ブリッジ素子は、外部ステータスインタフェースで受信されるステータス要求コマンドに応答して、外部ステータスインタフェース上でパケットフォーマットで各レディ／ビジー出力の現在状態を出力し、内部データインタフェースのうちの１つを介して、選択されたメモリ素子のステータスレジスタから情報を読み出し、外部データインタフェースで受信されるステータス読み出しコマンドに応答して、外部データインタフェースで情報を提供するように構成される。
【００２３】
追加の一態様では、半導体素子は、ブリッジ素子と、複数の内部データインタフェースを介してブリッジ素子に接続される複数のメモリ素子とを有する、半導体素子を動作させる方法は、半導体素子のステータス入力でステータス要求コマンドを受信すること、ステータス要求コマンドに応答して、半導体素子のステータス出力上で、パケットフォーマットで各メモリ素子の現在のレディ／ビジー状態を出力すること、半導体素子のデータ入力上で、ステータス読み出しコマンドを受信すること、ステータス読み出しコマンドに応答して、半導体素子のデータ出力で、選択されたメモリ素子のステータスレジスタから情報を出力することを含む。
【００２４】
本発明の実施形態の追加及び／又は代替の特徴、態様、及び利点は、以下の説明、添付図面、及び添付の特許請求の範囲から明らかになるだろう。
【図面の簡単な説明】
【００２５】
【図１Ａ】並列クロック信号を有するメモリシステム例のブロック図である。
【図１Ｂ】ソース同期クロック信号を有するメモリシステム例のブロック図である。
【図２】追加のＩ／Ｏピンを示す、並列クロック信号を有するメモリシステム例のブロック図である。
【図３】追加のＩ／Ｏピンを示す、ソース同期クロック信号を有するメモリシステム例のブロック図である。
【図４】直列接続されたマルチピンパッケージを有する代替のメモリシステムのブロック図である。
【図５】第１の実施形態によるメモリシステムのブロック図である。
【図６】図５のメモリシステムでのマルチチップパッケージの第１の実施形態のブロック図である。
【図７】アドレス指定されたステータスパケットを使用するステータス要求のタイミング図である。
【図８】ブロードキャストデータパケットを使用するステータス要求のタイミング図である。
【図９】ブロードキャストアドレスを用いてアドレス指定されたステータスパケットを使用するステータス要求のタイミング図である。
【図１０】ページプログラム動作及びステータス読み出しコマンドのタイミング図である。
【図１１】ブロック消去動作及びステータス読み出しコマンドのタイミング図である。
【図１２】ページ読み出しコマンドのタイミング図である。
【図１３】図５のメモリシステムでのマルチチップパッケージの第２の実施形態のブロック図である。
【発明を実施するための形態】
【００２６】
図５及び図６を参照すると、メモリシステム５００は、ポイントツーポイントリングを形成するハイパーリンク（ＨＬ）バスを通して４個のマルチチップ（ＭＣＰ）メモリ素子５０４に接続されるコントローラ５０２を含む。より多数又はより少数のＭＣＰ５０４を使用可能なことが意図される。８ビットＨＬデータバスＤ［７：０］、Ｑ［７：０］は、命令及び書き込みデータをコントローラ５０２からＭＣＰ５０４に通信するとともに、読み出しデータをＭＣＰ５０４からコントローラ５０２に通信する。差動クロックＣＫ／ＣＫ＃は、コントローラ５０２から全てのＭＣＰ５０４に提供される。マルチドロップクロック構造が図５に示されるが、シリアルクロック構造を代替的に使用してもよいことが意図され、シリアルクロック構造では、各素子は、リング内の前の素子からクロック信号を受信する。一般に、シリアルクロック構造は、ソース同期動作及びクロックへの負荷低減に起因して、マルチドロップクロック構造よりも高速の動作が可能である。各ＭＣＰ５０４は、コントローラ５０２からチップイネーブル信号ＣＥ＃及びリセット信号Ｒ＃も受信する。ポイントツーポイントシリアル信号ＳＣＯ／ＣＳＩ（コマンドストローブ）及びＤＳＯ／ＤＳＩ（データストローブ）が、Ｑ［７：０］／Ｄ［７：０］バス上でコマンド、書き込みデータ、及び読み出しデータを識別する。ステータス情報は、更に詳細に考察するように、ＳＴＯ／ＳＴＩリングで提供される。
【００２７】
図６を参照すると、各ＭＣＰ５０４は、１６個のメモリダイ５０６を含む。ダイ５０６はＮＡＮＤフラッシュメモリダイであるが、任意の他の適するタイプのメモリダイ、例えば、ＮＯＲフラッシュ又はＤＲＡＭを使用してもよいことが意図される。ブリッジチップ５０８は、例えば、非同期ＮＡＮＤ、トグルモードＮＡＮＤ、又はＯＮＦＩであり得るネイティブプロトコルで、ダイ５０６と通信する内部インタフェースを提供するブリッジ素子である。ＭＣＰ５０４は代替的には、１６よりも少数若しくは多数のダイ５０６を含むことができ、又は４よりも少数若しくは多数の内部チャネルを含むことができる。図１３を参照すると、ＭＣＰ５０４は代替的には、２つ以上の直列接続ブリッジチップ５０８を含むことができ、内部チャネル毎に２つのダイ５０６を有することができる。再び図６を参照すると、各ダイ５０６をブリッジチップ５０８に接続する内部インタフェースは、並列データバスＤＱ［７：０］、レディ／ビジーピンＲ／Ｂ＃、及び個々のチップイネーブルピンＣＥ＃と、コマンド及びデータストローブと、差動クロック信号とを含み得る他のピン（図示せず）を含む。異なるプロトコルが異なる信号接続を必要とすることを理解されたい。例えば、非同期ＮＡＮＤは通常、内部インタフェースにＡＬＥ、ＣＬＥ、ＷＥ＃、及びＷＰ＃信号を含む。ＯＮＦＩ又はトグルモード等の同期ＮＡＮＤは、異なる信号又は追加の信号を有し得る。例えば、ＯＮＦＩ  ＮＡＮＤは、ＷＥ＃信号を必要としないが、通常、ＣＬＫ信号及びＤＱＳ信号を含む。機能的インタフェースを提供するのに必要とされる全ての信号は、当業者によって既知であり、理解されているはずである。各内部チャネルを共有するダイ５０６を代替的に、図２及び図３のダイ２１２、３１２がコントローラ２１０、３１０に直列接続される方法と同様に、ポイントツーポイントデータバスを含むシリアルインタフェースを介してリッジチップ５０８に接続してもよいことが意図される。ダイ５０６は、Ｖｃｃ、Ｖｓｓ、Ｖｃｃｑ、Ｖｒｅｆ、及びＶｐｐ等の電力接続も必要とし、これらはＭＣＰ５０４のピンから直接提供し得る。
【００２８】
なお図６を参照すると、各ダイ５０６は、Ｒ／Ｂ＃ピンを介してステータスの変化をブリッジチップ５０８に通信する。次に、ブリッジチップ５０８は、ステータス読み出しコマンドを介してダイ５０６上のステータスレジスタを読み出し、完了した動作が首尾よく完了したか（パス）、それともエラーが発生したか（フェイル）等の追加の情報を特定し得る。ステータス読み出しコマンドは、ブリッジチップ５０８とダイ５０６との間の内部インタフェースＤＱを介して通信される。内部インタフェースＤＱは他のダイ５０６と共有され、他のダイ５０６は、命令又はデータ転送等の他の動作にインタフェースを使用し得る。競合は、ブリッジチップ５０８を使用して、他の動作間でステータス読み出しコマンドをスケジュールすることによって管理することができる。ブリッジチップ５０８は、更に詳細に考察するように、コントローラ５０２の要求時に、ステータス読み出しコマンドを発行し、ステータス情報をＳＴＯピンに出力する。
【００２９】
図７を参照すると、コントローラ５０２によってステータス要求を実行する一方法は、ＳＴＯでアドレス指定されるステータスパケット７０２を使用する。コントローラはまず、論理レベル「１」の後にＭＣＰｘの装置ＩＤバイト７０４が続く２つのフラグビットを用いてステータスパケットの開始を示すことにより、ＭＣＰのステータスを要求する。ステータスパケットの開始は代替的に、バイト指向プロトコルにおいて８つの「１」により、又はアイドル状態から区別可能な任意の他のビットパターン、この例では連続した「０」によって示してもよい。装置は、開始フラグを検出した後、少なくとも最大ステータスパケット長と同じ長さの時間期間にわたり、別の開始フラグを認識しない。
【００３０】
コントローラは、ＭＣＰｘが、次のステータスパケット７１０前に、ステータス情報７０８を挿入するのに十分なスペース７０６があることを保証する。ＭＣＰｘは、ブランクステータスパケット７０２を受信すると、装置ＩＤバイトを認識し、更に詳細に後述するように、ローカルステータス情報７１０をＳＴＯストリームに挿入する。ステータスパケット７１０はＭＣＰＹにアドレス指定されているため、ＭＣＰｘは、ステータスパケット７１０を変更せずに出力に渡す。同様に、更に下流のＭＣＰｙは、続くステータスパケット７１０内の装置ＩＤバイト７１２を認識し、それ自体のステータス情報７１４を挿入する。この図では、クロックは、簡潔にするために示されていない。リング内の各装置は、約１クロックサイクルだけステータス情報を遅延させる。コントローラは、システム内の全ての装置の連続順次ポーリングを実施し得る。代替的には、コントローラは、その装置のステータスの変化が予期される場合のみ、例えば、読み出し、プログラム、又は消去コマンドがその装置に送信された後のみ、特定の装置にアドレス指定されたステータス要求を送信し得る。ステータス変化が予期される場合のみステータス要求を送信することにより、消費電力が低減するが、幾らか追加のコントローラ複雑性が必要とされる。
【００３１】
図８を参照すると、ステータス要求は代替的には、ブロードキャストステータスパケット８０２を使用してコントローラ５０２によって実行し得、これは、全ての装置が応答する単一のステータス要求である。コントローラ５０２は、適切なフラグビットを用いてステータスパケットの開始を示して、ＳＴＩ／ＳＴＯのアイドル状態から要求を区別する。ここでは、全ての装置がコマンドに応答するため、装置アドレスは必要ない。コントローラ５０２は、リング内の装置の数に基づいて、全ての装置がそれぞれのステータス情報を添付することができる十分なスペースを連続パケット間に残す。コントローラ５０２が、リング内の装置の数がより少数である場合、ＳＴＯ／ＳＴＩリングリンクでブロードキャストステータス読み出しコマンドをより頻繁に発行可能なことを理解されたい。リング内の各ＭＣＰ５０４は、更に詳細に後述するように、リング内の上流装置がステータス情報８０４を添付することができる適切なオフセットを残して、そのローカルステータス情報８０４をステータスパケット８０２に添付する。オフセットは、各装置のローカルＩＤと、各ＭＣＰ５０４からのステータス情報の既知の固定長とに基づいて、各装置によって計算することができる。ＳＴＩ上でコントローラ５０２によって受信されるステータスパケット８０６は、リング内の全てのＭＣＰ５０４についてのステータス情報を含む。
【００３２】
図９を参照すると、ステータス要求は代替的には、図７の実施形態と同様であるが、ブロードキャスト装置ＩＤ（「ＢＩＤ」）、例えば、「１１１１１１１１」に対応する装置ＩＤフィールド９０４を有するアドレス指定ステータスパケット９０２を使用して、コントローラ５０２によって実行し得る。各ＭＣＰ５０４は、図８の実施形態と同様にして、ＢＩＤを認識し、そのローカルステータス情報９０６をステータスパケット９０２に添付する。ブロードキャスト専用のアドレスを用いてアドレス指定されたパケットの一般技法は、本願の譲受人に譲渡された米国特許出願第２０１０／０１６２０５３号明細書に記載されており、この特許出願の内容を参照により本明細書に援用する。
【００３３】
各ＭＣＰ５０４は、コントローラ５０２がシステム内の全てのダイ５０６のＲ／Ｂ＃ステータスを特定できるようにするフォーマットで、ステータス要求に応答してローカルステータス情報を出力する。フォーマットの一例は、４つの内部データインタフェースを有する１６ダイＭＣＰ５０４の場合について、以下の表に示される。最初の１６ビットＲ／Ｂ＃［ｎ］はそれぞれ、ＭＣＰ５０４内のｎ番目のダイからのＲ／Ｂ＃信号の論理レベルを表し、次の４つのビットＤＱＢｎはそれぞれ、ｎ番目の内部データインタフェースの現在の状態を表す（１＝ビジー、０＝非アクティブ）。最後のビットは、コマンドパケットエラー（ＣＰＥ）ビット（１＝エラー、０＝非エラー）であり、残りのビットは、他の目的で使用してもよく、又はコントローラ５０２によって無視される。他のフォーマットを使用してもよく、コントローラ５０２に通信されるステータスビット（Ｒ／Ｂ＃ピン及び／又は内部データインタフェース）数に基づいて、フォーマットを変更してもよいことを理解されたい。
【００３４】
【表１】
2015520459.tif 000003
【００３５】
これらのステータスビットは、コントローラ５０２が、ブリッジチップ５０８が既に利用可能な情報のみに基づいて、したがって、ＭＣＰ５０４の内部インタフェースでのいかなる帯域幅を使用せずに、ＨＬインタフェースで発行されたコマンドの進行を追跡できるようにする。Ｒ／Ｂ＃及びデータインタフェースステータスビットは、更に詳細に後述するように、様々なダイ５０６で実行される動作の現在ステータスを示す。コントローラ５０２が、動作が首尾よく完了したか否か等の１つ又は複数のダイ５０６についてのより詳細なステータス情報を必要とする場合、コントローラ５０２は、ステータス読み出しコマンドを、１つ又は複数のダイ５０６又はＭＣＰ５０４にアドレス指定されたＨＬデータバスで送信し得る。ステータス読み出しコマンドに応答して、関連付けられたブリッジチップ５０８は、ＭＣＰ５００の内部インタフェースを介してアドレス指定されたダイ５０６のステータスを要求し、ステータス情報をコントローラ５０２に返す。
【００３６】
図１０を参照して、ページプログラム（書き込み）コマンド（ＰＰＧＭ）のタイミング図を示す。コマンド／データストローブ及びクロック等の信号の幾つかは、明確にするために省かれている。ＰＰＧＭコマンドは、ＨＬバスを介してコントローラ５０２によって送信され、ＭＣＰ５０４によって受信される。バーストデータロードコマンド（図示せず）を介してブリッジチップ５０８上でＳＲＡＭに前に記憶された書き込みデータは、バーストデータロード（ＢＤＬ）コマンドと共にＭＣＰ５０４の内部ＤＱバスを介して適切なダイ５０６のページバッファに転送される。内部ＤＱバスが使用中である間、対応するＤＱＢステータスビットは論理ハイであり、バスの活動を反映する。データが転送された後、ブリッジチップ５０８は、ダイ５０６に対してページプログラム動作を開始し、これは、ページプログラム動作ｔＰＲＯＧの持続時間にわたり、適切なＲ／Ｂ＃ステータスビットでのビジーとして示される。コントローラ５０２は、ダイ５０６のＲ／Ｂ＃ステータスを返すステータス要求コマンドを発行することにより、動作の進行を監視することができる。コントローラ５０２は任意選択的に、ｔＰＲＯＧＲＡＭの指定された最大持続時間にわたって待ってから、ダイ５０６にアドレス指定されたステータス要求コマンドを発行し、ＳＴバスでの帯域幅使用を低減し得る。ダイ５０６のＲ／Ｂ＃ステータスで示されるように、プログラミングが完了すると、コントローラ５０２は、同じダイ５０６にアドレス指定されたステータス読み出し（ＳＲＤ）コマンドを発行することにより、動作の合格／不合格ステータスをチェックすることができる。ブリッジチップ５０８は、内部ＤＱバスでステータス読み出しコマンドを開始し、ＨＬインタフェースでコントローラ５０２に返すステータス情報を取得する。
【００３７】
ダイ５０６のステータスレジスタの読み出しは、ブリッジチップ５０８とダイ５０６との間での内部インタフェースの使用を必要とする。同じ内部インタフェースを共有している別のダイ５０６が、ブリッジチップ５０８と命令又はデータを交換している場合、競合がある。ダイの動作とステータス読み出し動作との間での内部インタフェースの競合を最小に抑えるために、ブリッジチップ５０８はまず、ブリッジチップ５０８の内部状態及び個々のダイ５０６からのＲ／Ｂ＃信号のみから特定することができるステータス情報をコントローラ５０２に提供する。コントローラ５０２は次に、追加のステータス情報を指定されたダイ５０６からステータス読み出しコマンドを通して要求し得る。これらのステータス読み出しコマンドは、内部インタフェースを使用するが、数はより少なく、ブリッジチップ５０８は、他のコマンド及びデータトランザクションの中でこれらのコマンドをスケジュールして、競合を回避することができる。
【００３８】
図１１を参照して、ブロック消去コマンド（ＢＥＲＳ）のタイミング図を示す。コマンド／データストローブ及びクロック等の信号の幾つかは、明確にするために省かれている。ＢＥＲＳコマンドは、ＨＬバスを介してコントローラ５０２によって送信され、ＭＣＰ５０４によって受信される。図１０のＰＰＧＭコマンドとは異なり、ＢＥＲＳコマンドにデータは付随しない。ＢＥＲＳコマンドは、ＭＣＰ５０４の内部ＤＱバスを介して適切なダイ５０６に転送される。内部ＤＱバスが使用中である間、ＤＱＢステータスビットは論理ハイであり、バスの活動を反映する。次に、ダイ５０６はブロック消去コマンドを開始し、その持続時間（ｔＢＥＲＳ）中、ダイ５０６は、適切なＲ／Ｂ＃ステータスビット上でビジーとして示される。ダイ５０６が内部でブロック消去コマンドを実行している間、ＤＱＢステータスビットは論理ローに遷移し、同じ内部チャネル上でブリッジチップ５０８が命令を他のダイ５０６に送信するのに内部ＤＱバスを利用可能であることを示す。ダイ５０６のＲ／Ｂ＃ステータスで示されるように、ブロック消去が完了すると、コントローラ５０２は、同じダイ５０６にアドレス指定されたステータス読み出し（ＳＲＤ）コマンドを発行することにより、動作の合格／不合格をステータスをチェックすることができる。ブリッジチップ５０８は、内部ＤＱバスでステータス読み出しコマンドを開始し、ステータス情報を取得して、ＨＬインタフェース上でコントローラ５０２に返す。
【００３９】
図１２を参照して、ページ読み出しコマンド（ＰＲＤ）のタイミング図を示す。コマンド／データストローブ及びクロック等の信号の幾つかは、明確にするために省かれている。ＰＲＤコマンドは、ＨＬバスを介してコントローラ５０２によって送信され、ＭＣＰ５０４によって受信される。ＰＲＤコマンドは、ＭＣＰ５０４の内部ＤＱバスを介して適切なダイ５０６に転送される。ブリッジチップ５０８は、ダイ５０６での内部読み出し動作を完了させることができる時間ｔＲにわたって待ち、完了はダイ５０６のＲ／Ｂ＃ステータスの変更によって示される。ブリッジチップ５０８は次に、バーストデータ読み出しコマンド（ＢＤＲ）をＤＱバス上で発行する。ダイ５０６は次に、ＤＱバスを介して要求されたデータをブリッジチップ５０８に転送し、ブリッジチップ５０８のＳＲＡＭに記憶される。ＤＱバスが使用中である間、ＤＱＢステータスビットが論理ハイであり、バスの活動を反映する。次に、ブリッジチップ５０８は、ＨＬバスを介してデータをコントローラ５０２に送信する。コントローラ５０２は、動作が首尾よく完了すると、要求されたデータを受信することになるため、ステータス読み出しコマンドを発行する必要がない。
【００４０】
なお図１２を参照すると、約１００μｓであり得る時間ｔＲ中、ＤＱインタフェースは使用されておらず、同じ内部ＤＱインタフェースで他のダイ５０６に向けられる動作を実行するために利用可能である（オプションＡ）。ブリッジチップ５０８が、Ｒ／Ｂ＃［ｎ］がハイになる（読み出しデータの利用可能性を示す）前に、同じＤＱインタフェースｎ他のダイ５０６の１つにアドレス指定された命令を受信する場合、命令を開始することができる。Ｒ／Ｂ＃［ｎ］がハイになるまでに、動作が完了しない場合、データをブリッジチップＳＲＡＭに転送するバーストデータ読み出しが遅延される。ブリッジチップ５０８が、Ｒ／Ｂ＃［ｎ］がハイになった後に命令を受信する場合、バーストデータ読み出し動作は、新しい命令が開始される前に完了する。この手法により、ＤＱバスが続く命令の実行に利用可能になるときの幾らかの不確実性を犠牲にして、ｔＲ間隔中に内部ＤＱバスの使用が可能になる。代替（オプションＢ）として、続く命令は、ｔＲ中に「使用中」であるＤＱバスを考慮して、内部ＢＤＲが完了するまで阻止することができ、その場合、ＤＱＢｘ信号を期間全体にわたってアサートすることができる。これは、スケジューリングを簡易化し、ＭＣＰ５０４のより決定論的な動作を提供する。
【００４１】
ブリッジチップ５０８が、ＭＣＰ５００内で発生するイベントに応答して非同期にではなく、コントローラ５０２の要求時に、ステータス情報をコントローラ５０２に提供することを理解されたい。このようにして、例えば、２つのイベントが２つの異なるＭＣＰ５００で同時に発生する場合、ＳＴＩ／ＳＴＯバスでの競合はなくなり、ＨＬデータバスでコントローラ５０２によって管理される。さらに、本方法は、コントローラ５０２によるステータス要求から、コントローラ５０２による要求されたステータス情報の受信までに均一なタイミングを生み出す。さらに、コントローラ５０２は、要求された場合のみ、ステータス情報を要求することができ、これは、動作が完了する都度よりも頻度が低いことがある。
【００４２】
本発明の上記実施形態への変更及び改善が、当業者に明らかになり得る。上記説明は、限定ではなく例として意図される。したがって、本発明の範囲は、添付の特許請求の範囲によってのみ限定されることが意図される。
【図１Ａ】
2015520459.tif 000004
【図１Ｂ】
2015520459.tif 000005
【図２】
2015520459.tif 000006
【図３】
2015520459.tif 000007
【図４】
2015520459.tif 000008
【図５】
2015520459.tif 000009
【図６】
2015520459.tif 000010
【図７】
2015520459.tif 000011
【図８】
2015520459.tif 000012
【図９】
2015520459.tif 000013
【図１０】
2015520459.tif 000014
【図１１】
2015520459.tif 000015
【図１２】
2015520459.tif 000016
【図１３】
2015520459.tif 000017
【国際調査報告】
2015520459.tif 000018
2015520459.tif 000019