本発明のサンプル実施形態の次の詳細な説明では、添付図面を参照するが、添付図面は、本明細書の一部を形成し、本発明を実践できる特定のサンプル実施形態を例として示すものである。これらの実施形態は、当業者が本発明を実践することを可能にするのに十分に詳細に説明されるが、他の実施形態を利用できることと、本発明の範囲から逸脱せずに論理的変更、機械的変更、電気的変更、および他の変更を行えることとを理解されたい。したがって、次の詳細な説明は、限定的な意味で解釈されてはならず、本発明の範囲は、添付の特許請求の範囲によって定義される。
全般的に、本発明は、例えば混合されたタイプのメモリデバイスを有するメモリシステムなど、半導体デバイスを制御する装置および方法を提供する。
本発明の実施形態を、これから、メモリシステムの態様で説明する。メモリシステムは、メモリコントローラおよびメモリデバイスのシリアル相互接続構成を含む。
一部のメモリサブシステムは、インターフェースと共に、例えばフラッシュメモリデバイスなどの複数のメモリデバイスを使用する。ここで、コマンドストリングを、そのコマンドがデバイスのうちの1つで実行されるのみである可能性がある場合であっても、デバイスのすべてに供給することができる。コマンドがその上で実行されるデバイスを選択するために、コマンドストリングは、そのコマンドが向けられるメモリデバイスを識別するデバイス識別子(ID)またはデバイスアドレスを含むことができる。コマンドストリングを受け取る各デバイスは、コマンドストリングに含まれるIDをそのデバイスに関連するIDと比較する。この2つが一致する場合には、そのデバイスは、そのコマンドがそのデバイスに向けられると仮定して、そのコマンドを実行する。
前に述べたように、異なるインターフェース仕様を有する多数の異なるメモリデバイスタイプがある。伝統的なアーキテクチャを使用する変化するデバイスタイプまたは異なるデバイスタイプを有するメモリシステムの設計は、エンジニアリング設計、ソフトウェア開発、および検証に長い時間を伴う。また、パラレルインターフェース方式は、PCB (プリント回路基板)またはMCP (マルチチップパッケージ)上の多すぎる物理的配線またはルーティングを伴う可能性があり、この配線またはルーティングは、より高速の動作でさまざまな雑音問題を引き起こす可能性がある。より多くの信号線は、システムが密度および特徴において増大する時に、より複雑な基盤設計およびより多くの空間要件を意味する。改善されたメモリシステムアーキテクチャの必要がある。
メモリデバイスのシリアル相互接続の詳細は、その内容が全体的に参照によって本明細書に組み込まれている、2005年12月30日に出願した米国特許出願第11/324,023号、2006年3月28日に出願した米国仮出願第60/787,710号、名称「Serial Interconnection of Memory Devices」、および2006年5月23日に出願した米国仮出願第60/802,645号、名称「Serial Interconnection of Memory Devices」に開示されている。
図2Aに、本発明の実施形態によるメモリシステムを示す。図2Aを参照すると、メモリシステムは、コントローラ100ならびにシリアル相互接続構成の複数のデバイス300-0、300-1、…、および300-Nを含む。Nは、1より大きい整数である。この特定の例では、シリアル相互接続されたメモリデバイスの個数は、(N+1)である。コントローラ100ならびにデバイス300-0、300-1、…、および300-Nは、例えばリンクなど、任意の適当な接続を使用して相互接続される。図示の例では、リンクは、シリアルリンクである。コントローラ100ならびにデバイス300-0、300-1、…、および300-Nは、シリアルリンクL0、L1、L2、…、LNおよびL(N+1)を介して相互接続される。
コントローラ100は、コントローラ動作回路網130を有する。デバイス300-0、300-1、…、および300-Nのそれぞれは、デバイス動作回路網230を有し、デバイス動作回路網230は、メモリ動作制御およびメモリ初期化機能を実行する。デバイス300-0、300-1、…、および300-Nは、それぞれのメモリ320-0、320-1、…、および320-Nなどのそれぞれのメモリタイプ固有コンポーネントを有する。デバイス300-0、300-1、…、および300-Nのそれぞれは、複数のサポートされるメモリタイプからのメモリタイプを有する。複数のサポートされるメモリタイプは、実施態様固有の基礎で定義される。各デバイスのメモリタイプに関する情報またはメモリタイプの識別は、そのレジスタ250に格納される。しかし、デバイスのタイプは、コントローラ100には未知である。コントローラ動作回路網およびデバイス動作回路網のそれぞれは、入出力回路網、例えばインターフェース回路網を含む。
図2Bに、本発明の一実施形態による例のメモリシステムを示す。図2Bを参照すると、メモリシステム40は、メモリコントローラ10ならびにシリアル相互接続構成の複数のメモリデバイス30-0、30-1、…、および30-Nを含む。Nは、1より大きい整数である。この特定の例では、シリアル相互接続されたメモリデバイスの個数は、(N+1)である。メモリコントローラ10ならびにメモリデバイス30-0、30-1、…、および30-Nは、例えば、シリアルリンクL0、L1、L2、…、LNおよびL(N+1)などを使用して相互接続される。
メモリコントローラ10は、出力インターフェース11、入力インターフェース12、およびコントローラ動作回路網13を有する。いくつかの実施態様で、図示の例に示されているように、メモリコントローラ10は、別の電子回路(図示せず)との接続のための別のインターフェース14をも有する。メモリコントローラ10は、他のコンポーネントを有してもよいが、これらは、図を単純にするために図示されていない。
メモリデバイス30-0、30-1、…、および30-Nのいくつかのコンポーネントは、同一の番号を付けられている。例えば、メモリデバイス30-0、30-1、…、および30-Nのそれぞれは、入力インターフェース21、出力インターフェース22、ならびにメモリ動作制御およびメモリ初期化機能を実行するメモリデバイス動作回路網23を有する。しかし、メモリデバイス30-0、30-1、…、および30-Nは、それぞれのメモリコア32-0、32-1、…、32-Nなどのそれぞれのメモリタイプ固有コンポーネントを有する。メモリデバイス30-0、30-1、…、および30-Nのそれぞれは、複数のサポートされるメモリタイプからのデバイスタイプを有する。複数のサポートされるメモリタイプは、実施態様固有の基礎で定義される。これは、固定されたものとすることができ、あるいは、いくつかの実施形態で、例えばメモリデバイスタイプを経時的に追加することによって、変更の対象にすることができる。所与の構成が、複数のサポートされるメモリデバイスタイプのそれぞれのメモリデバイスを必ずしも含まない可能性があるが、メモリコントローラ10およびインターフェースは、この機能性を可能にするように設計されている。複数のサポートされるメモリデバイスタイプに関する多数の可能性がある。
複数のサポートされるメモリタイプは、例えば、NANDフラッシュEEPROM、NORフラッシュEEPROM、ANDフラッシュEEPROM、DiNORフラッシュEEPROM、シリアルフラッシュEEPROM、DRAM、SRAM、ROM、EPROM、FRAM、MRAM(磁気抵抗ランダムアクセスメモリ)、およびPCRAMのうちの任意の複数を含むことができる。サポートされるメモリタイプの他の組合せも可能である。
メモリデバイス30-0、30-1、…、および30-Nのそれぞれは、そのメモリタイプを知っている。これは、例えば、25によって示されるレジスタに格納することができるが、より一般的には、メモリデバイス30-0、30-1、…、および30-Nのそれぞれに、そのメモリデバイスタイプの識別を維持するための任意の適当な回路網を与えることができる。メモリデバイス30-0、30-1、…、および30-Nのそれぞれがそれによってそのデバイスタイプを知る、他の機構も、可能である。メモリデバイス30-0、30-1、…、および30-Nのそれぞれは、他のコンポーネントを有してもよいが、これらは、図を単純にするために図示されていない。
動作中に、メモリコントローラ10のコントローラ動作回路網13は、メモリ動作制御およびメモリ初期化機能を実行する。コントローラ動作回路網13は、出力インターフェース11を介してメモリコマンドを送る。各メモリコマンドのデータパスは、メモリデバイス30-0、30-1、…、および30-NとシリアルリンクL0、L1、L2、…、LNおよびL(N+1)との組合せによってもたらされる。例えば、メモリコマンドが、第2メモリデバイス30-1宛である場合に、そのメモリコマンドは、シリアルリンクL0およびL1を介して第1メモリデバイス30-0をトラバースする。メモリコマンドが、第2メモリデバイス30-1からの応答を要請する場合には、その応答は、シリアルリンクL2、…、LN、およびL(N+1)を介してメモリコントローラ10に戻って第3メモリデバイス、…、第N(最後の)デバイス30-Nをトラバースする。
上で注記したように、メモリデバイス30-0、30-1、…、および30-Nのそれぞれは、複数のサポートされるデバイスタイプのうちの任意の1つとすることができる。メモリコントローラ10のコントローラ動作回路網13は、出力インターフェース11を介してデバイスタイプに固有のメモリコマンドを送り、入力インターフェース12を介してメモリ応答を要請するメモリコマンドに関するそのような応答を受け取るように動作可能である。例えば、コントローラ動作回路網13が、第2メモリデバイス30-1宛のコマンドを発行する場合に、発行されるコマンドは、第2メモリデバイス30-1のデバイスタイプに固有であり、このデバイスタイプは、他のメモリデバイスのデバイスタイプとは異なる可能性がある。メモリデバイス30-0、30-1、…、および30-Nのそれぞれは、メモリデバイスにアドレッシングされたこれらのメモリコマンドを実行し、出力インターフェース22を介して、別のメモリデバイスにアドレッシングされたメモリコマンドを転送する。メモリシステム40は、異なるデバイスタイプまたは混合されたメモリデバイスタイプに関してならびにメモリ密度拡張に関して、システムの全体的性能を犠牲にせずに適当に拡張することができる。
一般に、メモリシステム40は、2フェーズの動作すなわち、図2Cに示された35によって示される初期化フェーズおよび36によって示される通常動作フェーズを実行する。初期化フェーズ35では、メモリデバイス30-0、30-1、…、および30-Nは、デバイスアドレスを割り当てられる。割り当てられたデバイスアドレスは、メモリデバイス内に保持される。その後、通常動作フェーズ36で、ターゲットメモリデバイスすなわちアドレッシングされたメモリデバイスが、データアクセス動作を実行する。
メモリコントローラ10のコントローラ動作回路網13は、メモリデバイス30-0、30-1、…、および30-Nを制御するために出力インターフェース11を介してメモリコマンドを送る。これを達成できる多数の形がある。例のために、第1および第2の実施態様を下で説明するが、他の実施態様が可能である。
第1の実施態様では、コントローラ動作回路網13がメモリコマンドを送る。コマンドのそれぞれは、組み合わされて複数のメモリデバイスの選択されたメモリデバイスを一意に識別する第1部分および第2部分を有する。いくつかの実施態様で、第1部分は、選択されたメモリデバイスのデバイスタイプを識別し、第2部分は、選択されたメモリデバイスのデバイスアドレスを識別する。各メモリコマンドは、選択されたメモリデバイスによって実行される選択されたコマンドを識別するコマンド部分をも有する。各メモリコマンドは、適当に他の部分、例えば、さらなるアドレス情報およびデータをも含んでもよい。
第1実施態様では、メモリデバイス、例えば第1メモリデバイス30-0が、メモリコマンドを受け取る時に、そのメモリデバイス動作回路網23が、そのメモリコマンドの第1部分および第2部分の組合せに応答して、そのメモリコマンドがそのメモリデバイス(例えば、第1メモリデバイス30-0)にアドレッシングされているかどうかを判定する。例えば、メモリデバイス動作回路網23は、先ず、デバイスタイプを示す第1部分を解釈する。第1部分によって示されるデバイスタイプが、デバイスタイプレジスタ25によって与えられる第1メモリデバイス30-0のデバイスタイプとは異なる場合に、そのデバイスのメモリデバイス動作回路網23は、受け取られたメモリコマンドのさらなる部分を調べる必要がない。したがって、受け取られたコマンドが他のメモリデバイス30-1、…、および30-Nのうちの1つにアドレッシングされていると判定される。したがって、メモリデバイス動作回路網23は、出力インターフェース22を介してメモリコマンドを転送する。しかし、第1部分によって示されるデバイスタイプが、第1メモリデバイス30-0のデバイスタイプと同一である場合には、メモリデバイス動作回路網23は、第2部分によって示されるデバイスアドレスが第1メモリデバイス30-0のデバイスアドレスと一致するかどうかを判定する。この2つのデバイスアドレスの間に一致がある場合には、メモリデバイス動作回路網23は、コマンド部分によって示される選択されたコマンドを実行する。そうでない場合には、メモリデバイス動作回路網23は、出力インターフェース22を介してメモリコマンドを転送する。
第2実施態様では、メモリコントローラ10のコントローラ動作回路網13は、メモリコマンドを送ることによって複数のメモリデバイスを制御する。メモリコマンドのそれぞれは、複数のメモリデバイスの選択されたメモリデバイスを一意に識別する第1部分を含む。第1部分は、選択されたメモリデバイスのデバイスアドレスを識別する。第2実施態様では、メモリコマンドがデバイスタイプを含む必要がない。各メモリコマンドは、選択されたメモリデバイスによって実行される選択されたコマンドを識別するコマンド部分をも有する。前と同様に、各メモリコマンドは、適当に他の部分をも含んでよい。第2実施態様では、メモリデバイス、例えば第1メモリデバイス30-0が、メモリコマンドを受け取る時に、そのメモリデバイス動作回路網23が、メモリコマンドの第1部分に応答して、そのメモリコマンドがそのデバイス(例えば、第1メモリデバイス30-0)にアドレッシングされているかどうかを判定する。メモリデバイス動作回路網23は、第1部分によって示されるデバイスアドレスが、第1メモリデバイス30-0のデバイスアドレスと一致するかどうかを判定する。この2つのデバイスアドレスの間に一致がある場合には、メモリデバイス動作回路網23は、コマンド部分によって示される選択されたコマンドを実行する。そうでない場合には、メモリデバイス動作回路網23は、出力インターフェース22を介してメモリコマンドを転送する。
いくつかの実施態様で、メモリコントローラ10のコントローラ動作回路網13は、インターフェース14を介して受け取られる要求に応答して出力インターフェース11を介してメモリコマンドを送るように動作可能であり、さらに、入力インターフェース12を介して受け取られるメモリ応答を使用して要求に応答するように動作可能である。インターフェース14は、メモリシステム40を使用する別のデバイスまたはシステム(図示せず)への任意の適当なインターフェースとすることができる。
メモリコマンドに関する多数の可能性がある。これらは、読取り動作、書込み動作、消去動作、状況読取り動作、ID読取り動作、構成レジスタ書込み動作、アドレス書込み動作、およびリセット動作のうちの1つまたは複数を含むことができる。これらを、他のメモリコマンドとすることができる。
メモリコントローラ10がメモリコマンドを送る形は、デバイスアドレスが割り当てられる形に依存してもよい。デバイスアドレスの割当てに関する例の実施態様を、下で与える。
デバイスアドレスをメモリデバイス30-0、30-1、…、および30-Nに割り当てる多数の形がある。いくつかの実施態様では、デバイスアドレスは、事前に決定されるかハードワイヤドである。他の実施態様では、コントローラ動作回路網13が、初期化ステージ中にデバイスアドレスを割り当てる。例のために、第1および第2の実施態様を下で説明するが、他の実施態様が可能である。
第1実施態様では、コントローラ動作回路網13は、複数のサポートされるデバイスタイプのデバイスタイプごとに、出力インターフェース11を介して、そのデバイスタイプの各メモリデバイスにデバイスアドレスを割り当てるためにそれぞれの初期化メッセージを送るように動作可能である。メモリデバイス30-0、30-1、…、および30-Nのそれぞれは、この初期化メッセージを受け取り、処理する。例えば、第1メモリデバイス30-0は、第1入力インターフェース21を介して初期化メッセージを受け取る。受け取られる初期化メッセージごとに、その初期化メッセージが第1メモリデバイス30-0以外の別のデバイスタイプに関するものであることが示される場合には、メモリデバイス動作回路網23が、出力インターフェース22を介してその初期化メッセージを転送する。しかし、初期化メッセージが、第1メモリデバイス30-0のデバイスタイプに関するものであることが示される場合には、メモリデバイス動作回路網23は、初期化メッセージからデバイスアドレスを判定する。これは、初期化メッセージからデバイスアドレスを読み取ることを含む。いくつかの実施態様では、初期化メッセージから読み取られるデバイスアドレスが、第1メモリデバイス30-0のデバイスアドレスになる。メモリデバイス動作回路網23は、新しいデバイスアドレスと共に、出力インターフェース22を介して初期化メッセージを転送する。他のメモリデバイス30-1、…、および30-Nのそれぞれは、類似する初期化プロセスを実行する。送られたそれぞれの初期化メッセージごとに、コントローラ動作回路網13は、入力インターフェース12を介してそれぞれの初期応答を受け取り、そのデバイスタイプのメモリデバイスがない場合を除いて、この初期化応答から、そのデバイスタイプの各メモリデバイスのデバイスアドレスを判定することができる。
例えば、いくつかの実施態様で、デバイスアドレスを割り当てられるメモリデバイスごとに、次のデバイスに転送される新しいデバイスアドレスは、デバイスアドレスの増分である。したがって、所与のデバイスタイプの第1メモリデバイスが、0のアドレスを割り当てられる場合に、所与のデバイスタイプの最後のメモリデバイスは、m-1のアドレスを割り当てられ、ここで、mは、所与のデバイスタイプのメモリデバイスの個数である。所与のデバイスタイプの最後のメモリデバイスの増分されたデバイスアドレスを示す初期化応答を入力インターフェース12を介して受け取ることによって、コントローラ動作回路網13は、その所与のデバイスタイプの各メモリデバイスのデバイスアドレスを判定することができる。複数のデバイスタイプがある場合に、メモリコントローラ10が、どの物理デバイスがどのタイプであるかを知らないことに留意されたい。そうではなく、メモリコントローラ10は、各タイプのメモリデバイスが何個あるかを知る。例えば、4つのNANDデバイスおよび4つのNORデバイスがある場合がある。4つのNANDデバイスは、それぞれタイプ=NANDおよびアドレス=0、1、2、3を有し、4つのNORデバイスは、それぞれタイプ=NORおよびアドレス=0、1、2、3を有する。次に、NANDメモリデバイスおよびNORメモリデバイスの物理アドレスにかかわりなく、タイプ部分およびアドレス部分を含むコマンドは、必ずターゲットデバイスを見つける。デバイス番号付けの2つの異なるセット(すなわち、デバイスタイプおよびデバイスアドレス)を実施することによって、メモリコントローラ10は、どのデバイスアドレスがメモリシステム40内でどのデバイスタイプに割り当てられているかを考慮する必要がない。
第2実施態様では、メモリコントローラ10のコントローラ動作回路網13は、デバイスアドレスをメモリデバイス30-0、30-1、…、および30-Nに割り当てる初期化メッセージを出力インターフェース11を介して送るように動作可能である。メモリデバイス30-0、30-1、…、および30-Nは、その初期化メッセージを受け取り、処理する。例えば、第1メモリデバイス30-0は、入力インターフェース21を介して初期化メッセージを受け取り、そのメモリデバイス動作回路網23が、受け取られた初期化メッセージからデバイスアドレスを読み取る。いくつかの実施態様では、初期化メッセージから読み取られるデバイスアドレスが、第1メモリデバイス30-0のデバイスアドレスになる。メモリデバイス動作回路網23は、新しいデバイスアドレスと共に、出力インターフェース22を介して初期化メッセージを転送する。他のメモリデバイス30-1、…、および30-Nのそれぞれは、類似する初期化プロセスを実行する。最終的に、メモリコントローラ10のコントローラ動作回路網13は、入力インターフェース12を介して初期化応答を受け取り、この初期化応答から、各メモリデバイスのデバイスアドレスを判定することができる。
例えば、メモリデバイス30-0、30-1、…、および30-Nのそれぞれについて、次のデバイスに転送される新しいデバイスアドレスは、デバイスアドレスの増分である。したがって、第1メモリデバイス30-0が、0のアドレスを割り当てられる場合に、最後のメモリデバイス30-Nは、Nのアドレスを割り当てられ、ここで、メモリデバイスの個数は(N+1)である。最後のメモリデバイス30-Nの増分されたデバイスアドレスを示す初期化応答を入力インターフェース12を介して受け取ることによって、コントローラ動作回路網13は、各メモリデバイスのデバイスアドレスを判定することができる。
上で説明した第2実施態様によれば、メモリデバイス30-0、30-1、…、および30-Nのそれぞれのデバイスアドレスを割り当てたならば、コントローラ動作回路網13は、各メモリデバイスのデバイスタイプを判定する。デバイスアドレスごとに、コントローラ動作回路網13は、出力インターフェース11を介して、デバイスアドレスのメモリデバイスのデバイスタイプを判定する追加初期化メッセージを送る。メモリデバイス30-0、30-1、…、および30-Nのそれぞれは、その追加初期化メッセージを受け取り、処理する。
例えば、第1メモリデバイス30-0が、第1入力インターフェース21を介して追加初期化メッセージを受け取る時に、第1メモリデバイス30-0は、追加初期化メッセージで示されるデバイスアドレスに基づいて、その追加初期化メッセージが第1メモリデバイス30-0宛であるかどうかを判定する。そうである場合には、第1メモリデバイス30-0は、そのデバイスタイプの識別を用いて、出力インターフェース22を介して追加初期化メッセージに応答する。追加初期化メッセージが、他のメモリデバイス30-1、…、および30-Nのうちの1つ宛である場合には、第1メモリデバイス30-0は、追加初期化メッセージを出力インターフェース22を介して転送する。他のメモリデバイス30-1、…、および30-Nのそれぞれは、追加初期化メッセージの類似する処理を実行する。メモリコントローラ10のコントローラ動作回路網13は、メモリデバイスごとに、入力インターフェース12を介して、メモリデバイスのデバイスタイプを示す初期化応答を受け取る。
コントローラ動作回路網13について上で説明した第1および第2の実施態様が、例のみのために非常に特定であることを理解されたい。変形形態および修正形態が可能である。例えば、第1実施態様を、各メモリデバイスにデバイスアドレスを割り当てるために複数の初期化メッセージを用いるものとして上で説明したが、その代わりに、この目的の1つまたは複数の初期化メッセージがあってもよい。また、第2実施態様を、各メモリデバイスのデバイスタイプを判定するために複数の追加初期化メッセージを用いるものとして上で説明したが、その代わりに、この目的の1つまたは複数の追加初期化メッセージがあってもよい。説明した例では、受け取られる初期化メッセージのアドレスが、デバイスアドレスとして確立され、新しいアドレスが、生成され、次のデバイスに送られる。もう1つの実施態様では、各メモリデバイスが、アドレスを受け取り、これをデバイスアドレスとして確立する前に増分する。この実施態様の詳細な例は、これによってその全体が参照によって本明細書に組み込まれる、本願と同一の譲受人に譲渡された同時係属の米国特許出願第11/529,293号、名称「Packet Based ID Generation for Serially Interconnected Devices」に記載されている。
上で与えた例は、インターフェースに言及する。そのようなインターフェースに関する多数の可能性があることを理解されたい。特定のインターフェースが、下で説明する例で与えられる。より一般的には、任意の適当なインターフェースを実施してもよい。
いくつかの実施態様で、メモリコントローラ10は、メモリデバイス30-0、30-1、…、および30-Nのそれぞれとの接続用のリセット出力(図示せず)を有する。これの例は、下で説明する例で与える。より一般的に、メモリシステム40を、任意の適当なリセット実施態様を使用することによってリセットしてよい。
いくつかの実施態様で、メモリコントローラ10は、メモリデバイス30-0、30-1、…、および30-Nのそれぞれとの接続用のシリアルクロック出力(図示せず)を有する。これの例は、下で説明する例で与える。より一般的に、メモリシステム40に、任意の適当なクロック実施態様を使用することによってシリアルクロックを供給することができる。
いくつかの実施態様で、メモリコントローラ10は、メモリデバイス30-0、30-1、…、および30-Nのそれぞれとの接続用のチップ選択(図示せず)を有する。これの例は、下で説明する例で与える。より一般的に、メモリデバイス30-0、30-1、…、および30-Nを、任意の適当なデバイスイネーブル実施態様を使用することによってイネーブルすることができる。
図2Cに、図2Bに示されたメモリシステムの動作を示す。図2Bおよび2Cを参照すると、メモリコントローラ10のコントローラ動作回路網13は、デバイス30-0、30-1、…、および30-Nを制御するために出力インターフェース11を介してメモリコマンドを送る。コントローラ動作回路網13は、メモリコマンドを送ることによってデバイス30-0、30-1、…、および30-Nを制御する。これを達成できる多数の形がある。例のために、いくつかの例の実施態様を下で説明するが、他の実施態様が可能である。
一般に、メモリシステム40は、2フェーズの動作すなわち、35によって示される初期化フェーズおよび36によって示される通常動作フェーズを実行する。初期化フェーズ35(または初期化モード)では、デバイス30-0、30-1、…、および30-Nは、デバイスアドレスを割り当てられる。割り当てられたデバイスアドレスは、デバイス30-0、30-1、…、および30-N内に保持される。その後、通常動作フェーズ36(または通常動作モード)で、ターゲットメモリデバイスすなわちアドレッシングされたメモリデバイスが、データアクセス動作を実行する。
初期化フェーズ35の例で、コントローラ動作回路網13は、メモリコマンドを送る。コマンドは、デバイスに一意アドレスを割り当てるためのデバイスアドレス割当ての部分と、デバイスアドレス関連番号の部分とを有する。一実施態様で、コントローラ動作回路網13からのコマンドのデバイスアドレス関連番号は、初期値または初期番号であり、この初期番号は、デバイスのそれぞれによって増分される。増分された番号のそれぞれが、それぞれのデバイス内でそのデバイスアドレスとして保持される。
通常動作フェーズ36の例では、コントローラ10のコントローラ動作回路網13は、メモリコマンドを送る。メモリコマンドは、デバイスアドレスと共に、複数のメモリデバイスのうちの選択されたメモリデバイスを一意に識別する第1部分を含む。デバイスタイプは、メモリコマンドには含まれない。各メモリコマンドは、選択されたメモリデバイスによって実行される選択されたコマンドを識別するコマンド部分をも有する。各メモリコマンドは、適宜、他の部分をも含んでよい。メモリデバイス、例えば第1デバイス30-0が、メモリコマンドを受け取る時に、そのデバイス動作回路網23は、メモリコマンドの第1部分に応答して、そのメモリコマンドがそのデバイス(すなわち、第1デバイス30-0)にアドレッシングされているかどうかを判定する。デバイス動作回路網23は、第1部分によって示されるデバイスアドレスが、第1デバイス30-0のデバイスアドレスと一致するかどうかを判定する。この2つのデバイスアドレスの間に一致がある場合には、デバイス30-0のデバイス動作回路網23は、コマンド部分によって示される選択されたコマンドを実行する。そうでない場合には、デバイス動作回路網23は、出力インターフェース22を介してメモリコマンドを次のデバイス(例えば、第2デバイス30-1)に転送する。
いくつかの実施態様で、コントローラ10のコントローラ動作回路網13は、インターフェース14を介して受け取られる要求に応答して出力インターフェース11を介してメモリコマンドを送るように動作可能であり、入力インターフェース12を介して受け取られるメモリ応答を使用して要求に応答するようにさらに動作可能である。インターフェース14は、メモリシステム40を使用する別のデバイスまたはシステム(図示せず)への任意の適当なインターフェースとすることができる。
メモリコマンドに関する多数の可能性がある。これは、読取り動作、書込み動作、消去動作、状況読取り動作、DA読取り動作、構成レジスタ書込み動作、アドレス書込み動作、およびリセット動作のうちの1つまたは複数を含むことができる。これらを、他のメモリコマンドとすることができる。
コントローラ10がメモリコマンドを送る形は、デバイスアドレスが割り当てられる形に依存してよい。デバイスアドレスを割り当てる例の実施態様を、下記で説明する。
次の説明および図面では、いくつかの符号が、信号および接続に使用される。例えば、「SCLK」は、メモリデバイスのクロック信号およびクロック入力接続を表し、「SIP」は、シリアル入力ポート信号およびシリアル入力ポート接続を表し、「SOP」は、シリアル出力ポート信号およびシリアル出力ポート接続を表し、「IPE」は、入力ポートイネーブル信号および入力ポートイネーブル接続を表し、「OPE」は、出力ポートイネーブル信号および出力ポートイネーブル接続を表し、「CS#」は、チップ選択信号およびチップ選択入力接続またはチップ選択入力ポートを表し、「RST#」は、リセット信号およびリセット入力信号またはリセット入力ポートを表す。また、同一の符号が、同一のまたは対応するブロック、接続、信号、および回路網に使用される。
図3A、3B、3C、3D、3E、および3Fは、本発明の実施形態による特定の例のメモリシステムを示す。これらの図が、非常に特定であり、例としてのみ提供されることを理解されたい。
図3Aに、例のメモリシステムの全般的構成を示す。メモリシステム41は、メモリコントローラ50および複数(n+1)個のメモリデバイスを含み、nは、整数である。この特定の例では、メモリコントローラ50およびメモリデバイスは、シリアルリンクを用いて接続される。シリアル相互接続構成は、第1デバイス80(「デバイス0」)、第2デバイス81(「デバイス1」)、第3デバイス82(「デバイス2」)、…、および第(n+1)デバイス83(「デバイスn」)を含む。
図3Aを参照すると、メモリコントローラ50は、メモリデバイス80、81、82、…、および83のそれぞれに接続された、リセットポート51、チップ選択ポート52、およびシリアルクロックポート53を有する。したがって、メモリデバイス80、81、82、…、および83のそれぞれは、リセットポート61、チップ選択ポート62、およびシリアルクロックポート63を有する。メモリコントローラ50は、第1メモリデバイス80に接続された、シリアル出力54、入力イネーブル55、および出力イネーブル56を含む出力インターフェースを有する。したがって、第1メモリデバイス80は、シリアル入力64、入力イネーブル65、および出力イネーブル66を含む入力インターフェースを有する。第1メモリデバイス80は、シリアル出力67、入力イネーブルエコー68、および出力イネーブルエコー69を含む出力インターフェースをも有する。他のメモリデバイス81、82、および83のそれぞれは、対応する入力インターフェース64、65、および66ならびに出力インターフェース67、68、および69を有し、その結果、メモリデバイス80、81、82、…、および83が、シリアルリンクを介して相互接続されるようになる。メモリコントローラ50は、最後のメモリデバイス83の出力インターフェース67、68、および69との接続のためのシリアル入力57、入力イネーブルエコー58、および出力イネーブルエコー59を含む入力インターフェースを有する。
メモリコントローラ50は、図2Bに示されたメモリコントローラのコンポーネントに類似するコンポーネント(図示せず)を有するが、これらは、図を単純にするために図示されていない。
メモリデバイス80、81、82、…、および83は、それぞれメモリ80A、81A、82A、…、および83Aなど、など、メモリタイプ固有コンポーネントを有する。しかし、図示の例では、これらのデバイスタイプが、指定されない。メモリデバイス80、81、82、…、および83のそれぞれは、そのインターフェースとそのメモリとの間のインターフェース回路(図示せず)を有する。メモリデバイス80、81、82、…、および83のそれぞれは、そのデバイスタイプの識別を維持するレジスタ60をも有する。他の実施態様では、メモリデバイス80、81、82、…、および83のそれぞれは、そのデバイスタイプの識別を維持する代替回路網を有する。メモリデバイス80、81、82、…、および83のそれぞれは、他のコンポーネントを有してよいが、これらは、図を単純にするために図示されていない。
動作中に、メモリシステム41は、上で図2Bを参照して説明したメモリシステム40に似た形で動作する。しかし、説明のために、メモリシステム41の動作のさらなる例の詳細を、追加の図面を参照して以下で説明する。
図3Bに、第1の特定の例のメモリシステム42を示す。メモリシステム42は、図3Bに示されたメモリシステム41に類似する。メモリシステム42は、図3Bの例と同一であるメモリコア84A、85A、86A、87Aを有する(n+1)個のメモリデバイス84、85、86、…、および87を含む。図3Bに示された特定の例では、第1メモリデバイス84が、NORフラッシュメモリコア84Aを有し、第2、第3、…、および第(n+1)メモリデバイス85、86、…、および87は、それぞれNANDフラッシュメモリコア85A、86A、…、および87Aを有する。図3Cの例は、タイプごとのアドレッシング方式が使用される、すなわち、前に導入した第1アドレッシング方式が使用されるという点で、図3Bの例とは異なる。タイプおよびアドレスは、1つのNORデバイスおよび「n」個のNANDデバイスがあると仮定して、「NOR-0」、「NAND-0」、「NAND-1」、…、および「NAND-(n-1)」として示される。
上で注記したように、メモリデバイス84、85、86、…87は、任意の適当なデバイスタイプであるものとすることができる。この点を例示するために、さまざまなまたは混合されたデバイスタイプを有する追加の例のメモリシステムを、図3D、3E、および3Fを参照して示す。
図3Cに、第2の特定の例のメモリシステム43を示す。メモリシステム43は、メモリシステム43が異なるメモリデバイスを有することを除いて、図3Cに示されたメモリシステム42と同一である。図3Cに示された特定の例では、メモリシステム43は、それぞれ混合されたメモリコア88A、89A、90A、…、および91Aを有する複数(n+1)個のメモリデバイス88、89、90、…、および91を含む。第1メモリデバイス88は、SRAMメモリコア88Aを有し、第2メモリデバイス89は、NORフラッシュメモリコア89Aを有する。第3、…、および第(n+1)メモリデバイス91は、それぞれNANDフラッシュメモリ90A、…、および91Aを有する。メモリデバイスは、タイプごとのアドレッシング方式を使用してアドレッシングされる。タイプおよびアドレスは、1つのSRAMデバイス、1つのNORデバイス、および「(n-1)」個のNANDデバイスがあると仮定して、「SRAM-0」、「NOR-0」、「NAND-0」、…、および「NAND-(n-2)」として示される。
図3Dは、複数(n+1)個のメモリデバイスを示す第3の特定の例のメモリシステム44を示す図である。図3Dを参照すると、メモリシステム44は、メモリシステム44が異なるメモリデバイス92、93、…、94、および95を有することを除いて、図3Cに示されたメモリシステム42と同一である。図3Dに示された詳細では、メモリデバイス92、93、…、94、および95のメモリコア92A、93A、94A、…および95Aが混合されている。図示の例では、第1、第2、第3、…、および第nのメモリデバイス92、93、…、および94が、それぞれNANDフラッシュメモリコア92A、93A、…、および94Aを有する。最後の(n+1)番目のメモリデバイス95は、NORフラッシュメモリコア95Aを有する。メモリデバイスは、タイプごとのアドレッシング方式を使用してアドレッシングされる。タイプおよびアドレスは、「n」個のNANDデバイスおよび1つのNORデバイスがあると仮定して、「NAND-0」、「NAND-1」、…「NAND-(n-1)」、および「NOR-0」として示される。メモリコントローラ50は、図3Bの例と図3Dの例との間の物理的レイアウトの差を知らないことを留意されたい。
図3Eに、第4の特定の例のメモリシステム45を示す。メモリシステム45は、メモリシステム45が異なるメモリデバイス96、97、98、…、および99を有することを除いて、図3Cに示されたメモリシステム42と同一である。図3Eに示された特定の例では、メモリデバイス96、97、98、…、および99のメモリコア96A、97A、98A、…および99Aが、混合される。図示の例では、第1メモリデバイス96が、NANDフラッシュメモリコア96Aを有する。第2メモリデバイス97は、NORフラッシュメモリコア97Aを有する。第3、…、および最後の第(n+1)メモリデバイス98、…、および99は、それぞれNANDフラッシュメモリコア98A、…、および99Aを有する。メモリデバイスは、タイプごとのアドレッシング方式を使用してアドレッシングされる。タイプおよびアドレスは、「n」個のNANDデバイスおよび1個のNORデバイスがあると仮定して、「NAND-0」、「NOR-0」、「NAND-1」、…、および「NAND-(n-1)」として示される。メモリコントローラ50が、図3B〜3Eの例の間での物理レイアウトの相違を知らないことに留意されたい。
図3B〜3Eの4つの例が、メモリコントローラ50が少なくともNORフラッシュデバイス、NANDフラッシュデバイス、およびSRAMデバイスと相互作用できると仮定して、同一の回路レイアウト、同一のメモリコントローラ50、およびメモリデバイスの「ロット」または「ソケット」を用いて実施できることがわかる。次に、サポートされるデバイスタイプの任意の配置を、「ロット」または「ソケット」にインストールすることができ、図3B、3C、3D、および3Eは、これのそれぞれの例である。
図3A〜3Eに示された例のそれぞれで、リセット信号、チップ選択信号、およびシリアルクロック信号は、マルチドロップの形で供給される。図3Fに示されたもう1つの実施態様では、シリアルクロックは、出力エコークロック信号「SCLK_O」の追加を伴って、ポイントツーポイントリングタイプスキームで接続される。SCLKは、メモリコントローラ50Aならびにメモリデバイス180、181、182、…および183を同期化するシステムクロックである。各メモリデバイスからのエコークロック信号出力は、次のメモリデバイスのクロック入力SCLKに供給される。メモリコントローラ50Aならびにメモリデバイス180、181、182、…および183は、それぞれマスタデバイスおよびスレーブデバイスとして動作する。割り当てられるアドレスは、(n+1)個のメモリデバイスがあると仮定して、「デバイス0」、「デバイス1」、「デバイス2」、…、「デバイスn」として示されている。
提示された例では、クロッキングは、SDR (シングルデータレート)に基づくが、他の適当なクロッキング方式を企図できることを理解されたい。他の適当なクロッキング方式は、例えば、DDR (ダブルデータレート)、QDR (クワッドデータレート)、立ち上がりエッジSDR、または立ち下がりエッジSDRを含むことができる。企図できる他の適当なクロッキング方式もあり得る。
図3Gは、メモリデバイスの例のSDR動作の相対タイミングシーケンスを示す。図3Gは、1ポートでの動作を示す。図3Aおよび図3Gを参照すると、動作は、デバイス80、81、82、…および83に転送される情報を、デバイスのシリアルクロックポート63に供給されるクロック信号SCLKの異なる時刻に取り込むことができるというものである。SDR実施態様の例では、デバイスのうちの1つにそのシリアル入力64で供給される情報を、クロック信号SCLKの立ち上がりエッジで取り込むことができる。SDR動作では、チップ選択信号が、同時にすべてのデバイスをイネーブルするように共通して接続され、その結果、第1デバイスの入力データが、シリアル相互接続構成を介して転送可能になる。代替案では、SDR動作で、SIP接続でデバイスに供給される情報を、クロック信号SCLKの立ち下がりエッジで取り込むことができる。
図3Hは、メモリデバイスの例のDDR動作の相対タイミングシーケンスを示す。図3Hは、1つのポートでの動作を示す。DDR動作では、クロック信号SCLKの立ち上がりエッジと立ち下がりエッジとの両方を使用して、シリアル入力64に供給される情報を取り込むことができる。
図4Aに、図3A〜3Eに示されたメモリデバイスとして使用される例のメモリデバイスブロックを示す。図4Aを参照すると、メモリデバイス140Aは、メモリデバイスのうちの任意の1つを表し、デバイスコントローラ/プロセッサ142A、デバイスタイプ一致デターミナ143、メモリ144、デバイスタイプレジスタ146、アドレス一致デターミナ147、デバイスアドレスレジスタ148、およびアドレス増分オペレータ149を含む。デバイスコントローラ/プロセッサ142Aは、メモリデバイス140Aの動作を制御する。メモリ144は、例えば、NANDフラッシュメモリ、NORフラッシュメモリ、SRAM、DRAMなど、任意のタイプのメモリを含む。デバイスタイプレジスタ146は、図3A〜3Eに示したそのデバイスタイプの識別を維持するレジスタ60を含む。デバイスアドレスレジスタ148は、そのメモリデバイス140Aのデバイスコントローラ/プロセッサ142Aによって割り当てられたデバイスアドレス(DA)を保持する。デバイスタイプレジスタ146の詳細を、図5Aに示す。デバイスタイプ一致デターミナ143およびアドレス一致デターミナ147は、デバイスコントローラ/プロセッサ142Aによる制御の下で関連する一致判定機能を実行する。アドレス増分オペレータ149は、デバイスアドレス増分(すなわち、「DA+1」)の機能を実行する。
デバイス140Aは、メモリコントローラ(例えば、図3Aに示されたメモリコントローラ50)に結合された、リセットポート「RST#」、チップ選択ポート「CS#」、およびシリアルクロックポート「SCLK」を有する。デバイスコントローラ/プロセッサ142Aは、前のメモリデバイスまたはメモリコントローラに接続された、そのメモリデバイスのシリアル入力「SIP」、入力イネーブル「IPE」、および出力イネーブル「OPE」に接続される。また、デバイスコントローラ/プロセッサ142Aは、次のメモリデバイスに接続された、そのメモリデバイスのシリアル出力「SOP」、入力イネーブルエコー「IPEQ」、および出力イネーブルエコー「OPEQ」に接続される。メモリ144は、フラッシュメモリコアに対応する。デバイスタイプレジスタ146は、そのデバイスタイプの表示を維持するタイプレジスタ60に対応する。
メモリコントローラによって発行されるメモリコマンドの例のフォーマットは、次のとおりである。
TYPEは、特定のメモリデバイスタイプの識別のためのデバイスタイプである。TDAは、特定のメモリデバイスのアドレスの識別のためのターゲットデバイスアドレスである。CMDは、ターゲットメモリデバイスによって実行される動作コマンドである。DATAは、メモリデバイスのプロセスまたは制御に対する情報(番号または値)を含む。さまざまな動作コマンドCMDの例を、表1に示す。
もう一度図4Aを参照すると、デバイスコントローラ/プロセッサ142Aは、シリアル入力(SI)に含まれるデバイスタイプおよびデバイスアドレスに応答して、メモリコマンドがそのメモリデバイス140Aにアドレッシングされているかどうかを判定する。例えば、デバイスタイプ一致デターミナ143は、デバイスコントローラ/プロセッサ142Aによる制御の下で、SI内のデバイスタイプ(「DTs」)がデバイスタイプレジスタ146に保持されたデバイスタイプ(「DTr」)と一致するかどうかを判定する。これらの間の一致の場合に、デバイスタイプ一致デターミナ143は、タイプ一致表示143Mを、デバイスコントローラ/プロセッサ142Aに供給する。次に、アドレス一致デターミナ147は、デバイスコントローラ/プロセッサ142Aによる制御の下で、SIに含まれるデバイスアドレス(「DAs」)がデバイスアドレスレジスタ148に保持されたデバイスアドレス(「DAr」)と一致するかどうかを判定する。これらの間の一致の場合に、アドレス一致デターミナ147は、アドレス一致表示147Mをデバイスコントローラ/プロセッサ142Aに供給する。
図2Cに示された初期化フェーズ35の動作で、タイプ一致表示143Mおよびアドレス一致表示147Mに応答して、デバイスコントローラ/プロセッサ142Aは、SIに含まれるデバイスアドレス(DA)を、アドレス増分動作149に供給し、アドレス増分動作149は、「+1」の計算を実行する。したがって、計算されたまたは増分されたアドレス(DA+1)が、デバイスコントローラ/プロセッサ142Aに出力される。増分されたデバイスアドレスは、SOPを介して次のデバイスに供給される。タイプ一致表示143Mおよびアドレス一致表示14M7のどちらもが供給されない場合には、デバイスコントローラ/プロセッサ142Aは、コマンドをSOPを介して次のデバイスに転送する。
図2Cに示されたデータアクセスフェーズ36の通常動作では、タイプ一致表示143Mおよびアドレス一致表示147Mに応答して、デバイスコントローラ/プロセッサ142Aが、SIに含まれる受け取られたコマンドを実行する。タイプ一致表示143Mおよびアドレス一致表示147Mのどちらもが供給されない場合には、デバイスコントローラ/プロセッサ142Aは、SOPを介してコマンドを次のデバイスに転送する。
図4Bに、図3Fに示されたメモリデバイスとして使用される例のメモリデバイスを示す。図4Bに示されたメモリデバイス140Bは、図3Fに示されたメモリデバイスのうちの任意の1つを表す。メモリデバイス140Bは、図4Aに示されたメモリデバイス140Aに類似する。メモリデバイス140Bのデバイスコントローラ/プロセッサ142Bは、それに供給される入力クロックと同期化される出力クロックを出力するクロックシンクロナイザ191を含む。クロックシンクロナイザ191は、前のメモリデバイスから入力されるクロック信号SCLKの出力エコークロック信号SCLK_0をもたらす位相ロックループ(PLL)または遅延ロックループ(DLL)を含むことができる。デバイス140Bの他の動作は、図4Aで示したデバイス140Aの動作と同一である。
図3A〜3Fを参照して上で提示した例では、メモリデバイスのそれぞれが、レジスタ(例えば、デバイスタイプレジスタ146)を有する。フラッシュメモリ(例えば、NANDフラッシュメモリ、NORフラッシュメモリなど)は、例えば製造業者コード、メモリ密度、ページサイズ、ブロックサイズ、バンク数、入出力構成、もしくは任意のクリティカルなAC/DC特性など、有用な情報を識別するために、フラッシュセルコアアレイの余分のセクションを利用するデバイスの内部の工場でプログラムされるレジスタを含む。しかし、上で注記したように、いくつかの実施態様で、レジスタは、デバイスタイプの識別を維持するのに使用される。あるレジスタがデバイスタイプを示す多数の形がある。例を、図5Aを参照して下で与える。
図5Aを参照すると、例のレジスタブロック120は、物理的ハードプログラマブルレジスタユニットの一種であるタイプレジスタを有する。レジスタブロック120は、eFuse (electrically programmable fuse)アレイ121およびeFuseレベル検出論理ユニット122を有する。図示の例では、eFuseアレイ121は、ビット7、6、5、…、1、および0の8ビット構成を有して図示されている。この特定の例では、最初の4つのビット7〜4は、「0000」であり、第2の4つのビット3〜0は「0111」である。これは、例えば、「07h」(=00000111)を表す。特定の実施態様で、この構成は、PCRAMメモリタイプを示す。異なる構成が、異なるデバイスタイプを示すことができる。図示の例では、「閉」および「開」のヒューズが、それぞれ「0」および「1」を示す。そのような「0」および「1」の論理は、eFuseレベル検出
論理ユニット122によって検出され、検出されたビット状況(ビット7〜0)が、図4Aに示されたデバイスコントローラ/プロセッサ142Aに供給される。代替案では、レジスタブロック120が、従来のポリヒューズまたは金属ヒューズ、OTP (One Time Programmableメモリ)、あるいは任意の不揮発性プログラマブルコンポーネントを有することができる。
図5Bに、各デバイスタイプの例の符号化方式の表を示す。この表では、「RFU」が、「将来の使用に予約済み」を意味する。図5Bを参照すると、この表は、10個のメモリタイプすなわち、NANDフラッシュ、NORフラッシュ、DRAM、SRAM、PSRAM、DiNORフラッシュ、FeRAM、PCRAM、シリアルEEPROM、およびMRAMのそれぞれの符号化方式を定義する。例えば、SRAMメモリタイプは、「03h」の符号化方式を有する。NANDフラッシュタイプは、「00h」を割り当てられ、NORフラッシュタイプは、「01h」を割り当てられる。この例では、ビット構造は、MSB(最上位ビット)からLSB(最下位ビット)へである。他の実施態様では、これを順序において逆転することができ、これは、最初に、MSBではなくLSBから始まる。一部のレジスタ構成は、将来の使用のために予約済み(RFU)である。
図2Cに示された初期化フェーズ35を実施する多数の形がある。上で注記したように、各メモリデバイスは、メモリタイプを有する。タイプ依存アドレッシングを用いてデバイスアドレスを割り当てるプロセスを、下で図6Aを参照して説明する。
図6Aは、タイプ依存アドレッシングを用いてデバイスアドレスを割り当てる方法を示す。このプロセスが、例のみのために非常に固有であることを理解されたい。この方法は、複数のメモリデバイスがシリアル相互接続される任意のメモリシステム(例えば、図3Bに示されたメモリシステム)に適用可能である。
図3Bおよび6Aを参照すると、パワーアップ初期化がある時(ステップ6-1)に、メモリコントローラ50は、デバイスタイプ「m」のメモリデバイスのデバイスアドレス書込み動作を実行する(ステップ6-2)。デバイスアドレス書込み動作は、すべてのメモリデバイスがパワーアップ中に当初に「00h」にセットされたデバイスアドレスを有するので、「00h」のターゲットデバイスアドレス(TDA)を有する。デバイスアドレス書込み動作が、各メモリデバイスをトラバースする時に、そのターゲットデバイスアドレスは、「00h」のままになり、その結果、各メモリデバイスは、デバイスアドレス書込み動作を処理するようになる。デバイスアドレス書込み動作は、メモリデバイスのそれぞれをトラバースする。デバイスタイプ「m」の各メモリデバイスは、デバイスアドレス書込み動作によって示されるデバイスアドレスに基づいて、そのデバイスアドレスを割り当てられる。そのデバイスアドレスを割り当てられる各メモリデバイスは、デバイスアドレス書込み動作を次のメモリデバイスに転送する前に、それによって示されるデバイスアドレスを増分する。
最終的に、デバイスアドレス書込み動作は、メモリコントローラ50に戻る。デバイスアドレス書込み動作が、信号入力イネーブルエコー(IPEQ)およびシリアル入力(SIP)によって示されるように待機(ステップ6-4)を伴ってメモリコントローラ50に戻って到着する(ステップ6-3のYES)場合に、メモリコントローラ50は、デバイスタイプ「m」のメモリデバイスの個数がデバイスアドレス書込み動作によって示されるデバイスアドレス(「NA」)と等しくなると判定し、メモリコントローラ50は、「m」を増分する(ステップ6-5)。その後、メモリコントローラ50は、追加のデバイスタイプがあるかどうかを「m」の値に基づいて判定する(ステップ6-6)。追加のデバイスタイプがある場合に(ステップ6-6のYES)、動作は、ステップ6-2に戻る。追加のデバイスタイプごとに、メモリコントローラ50は、ステップ6-2から6-5までを繰り返す。メモリコントローラ50は、「m」のすべての可能な値に対応するすべての可能なデバイスタイプのメモリデバイスにデバイスアドレスを割り当てることを試みる。これは、メモリコントローラ50が、どのデバイスタイプがメモリシステムに存在するかを前もって知らない場合があるので、実行される。追加のデバイスタイプがもうない場合に(ステップ6-6のNO)、プロセスは、終了する(ステップ6-7)。
上で述べたステップ6-2の詳細を、図6Bに示す。図3B、4A、6A、および6Bを参照すると、デバイスアドレス書込み動作を受け取ったデバイスは、受け取ったデバイスタイプ「m」がデバイスタイプレジスタ146に登録されたそのデバイスタイプと一致するかどうかを判定する(ステップ6-8)。これは、デバイスコントローラ/プロセッサ142Aおよびデバイスタイプ一致デターミナ143によって実行される。デバイスタイプ一致がある(ステップ6-8のYES)場合には、デバイスは、ターゲットデバイスアドレス(TDA)がデバイスアドレスレジスタ148に登録されたデバイスアドレスと一致するかどうかをさらに判定する(ステップ6-9)。これは、デバイスコントローラ/プロセッサ142Aおよびアドレス一致デターミナ147によって実行される。デバイスアドレス一致がある(ステップ6-9のYES)場合には、受け取られたデバイスアドレスが、デバイスアドレスレジスタ148に登録され(ステップ6-10)、受け取られたデバイスアドレスが増分される(DA+1)(ステップ6-11)。そのようなデバイスアドレス増分は、デバイスコントローラ/プロセッサ142Aおよびアドレス増分オペレータ149によって実行される。デバイスタイプ一致がない(ステップ6-8のNO)場合には、デバイスアドレス割当てもデバイスアドレス増分も実行されない。また、デバイスアドレス一致がない(ステップ6-9のNO)場合には、デバイスアドレス割当てもアドレス増分も実行されない。
図6Aおよび6Bを参照して上で説明したプロセスのさらなる説明を提供するために、タイミング図を、図7A、7B、7C、および7Dを参照して下で説明する。
図7A、7B、7C、および7Dに、タイプ依存アドレッシングを用いるデバイスアドレスの割当てに関する信号のタイミングシーケンスを示す。このタイミング図は、相互接続された1つのNORタイプフラッシュデバイスおよび「n」個のNANDタイプフラッシュデバイスを有するメモリシステムから生じる可能性がある例の信号を示す。この種類のメモリシステムは、図3Dのメモリシステム42に類似する。
上で説明したように、メモリコントローラによって発行されるメモリコマンドは、フォーマットされる。例えば、このメモリシステムでは、NANDフラッシュデバイスだけが、「0」からのデバイスアドレスを割り当てられ、メモリコントローラによって発行されるメモリコマンドは、次のとおりである。
このメモリコマンドにおいて、
TYPE (00h)は、「NANDフラッシュ」デバイスを識別する(図5Bを参照されたい)。
TDA (00h)は、初期化動作が実行される時にデバイスアドレス「0」を保持するデバイスを識別する。シリアル相互接続構成のすべてのメモリデバイスが、「0」にリセットされていると仮定する。
CMD (39h)は、実行される動作が「デバイスアドレス書込み」であることを識別する(表1を参照されたい)。
DATA (00h)は、デバイスアドレスの初期番号が「0」であることを識別する。
図7A〜7Dを参照すると、このタイミング図の最上部には、7-1によって示される電源の信号(VDD)がある。このタイミング図は、それぞれ7-2および7-3によって示される、デバイス_0の入力イネーブル(IPE)およびシリアル入力(SIP)の信号を含む。このタイミング図は、それぞれ7-4および7-5によって示される、デバイス_1の入力イネーブル(IPE_1)およびシリアル入力(SIP_1)の信号を含む。このタイミング図は、それぞれ7-6および7-7によって示される、デバイス_2の入力イネーブル(IPE_2)およびシリアル入力(SIP_2)の信号を含む。このタイミング図は、それぞれ7-8および7-9によって示される、デバイス_(n-1)の入力イネーブル(IPE_n-1)およびシリアル入力(SIP_n-1)の信号を含む。このタイミング図は、それぞれ7-10および7-11によって示される、デバイス_nの入力イネーブル(IPE_n)およびシリアル入力(SIP_n)の信号を含む。最後に、このタイミング図は、それぞれ7-12および7-13によって示される、メモリシステムのシリアル相互接続構成の最後のメモリデバイスであるデバイス_nの入力イネーブルエコー(IPEQ)およびシリアル出力(SOP)の信号を含む。
例えば、この種類のメモリシステムが、図3Dのメモリシステム42に適用される場合に、デバイス_0、デバイス_1、…、デバイス_(n-1)、およびデバイス_nは、それぞれメモリデバイス92、93、…、94、および95に対応する。
図3Dおよび7A〜7Dを参照すると、メモリシステムは、VDD 7-1がハイ状態に遷移することによって示されるように、パワーオンされる。そのすぐ後に、第1のデバイスアドレス書込み動作7-14が、メモリコントローラ50によって発行される。第1のデバイスアドレス書込み動作7-14は、NANDフラッシュのデバイスタイプを示す。第1のデバイスアドレス書込み動作7-14は、各メモリデバイスをトラバースする。各NANDフラッシュメモリデバイスは、デバイスアドレス書込み動作によって示されるデバイスアドレスに基づいてそのデバイスアドレスを割り当てられる。そのデバイスアドレスを割り当てられる各メモリデバイスは、第1のデバイスアドレス書込み動作を次のメモリデバイスに転送する前に、それによって示されるデバイスアドレスを増分する。「n」個のNANDフラッシュメモリデバイスに対応する、合計「n」回の増分がある。最後のメモリデバイスによる増分はない。というのは、このメモリデバイスが、NANDフラッシュデバイスではなく、NORフラッシュデバイスであるからである。第1のデバイスアドレス書込み動作7-14は、メモリコントローラに戻る。メモリコントローラは、NANDフラッシュデバイスの個数が、第1のデバイスアドレス書込み動作によって示される「n」と等しいと判定する。
メモリコントローラ50は、追加のデバイスタイプごとに、追加のデバイスアドレス書込み動作を発行する。NORフラッシュのデバイスタイプを示す第2のデバイスアドレス書込み動作7-15が、発行される。NORフラッシュデバイスのデバイスアドレス割当てのためのメモリコマンドは、次のとおりである。
第2のデバイスアドレス書込み動作7-15は、各メモリデバイスをトラバースする。NANDフラッシュデバイスのどれもが、第2のデバイスアドレス書込み動作によって示されるデバイスアドレスを増分しない。NORデバイスである最後のメモリデバイスは、「00h」としてそのデバイスアドレス(TDA)を割り当てられる。最後のメモリデバイスは、第2のデバイスアドレス書込み動作をメモリコントローラに転送する前に、それによって示されるデバイスアドレスを増分もする。第2のデバイスアドレス書込み動作7-15を受け取る時に、メモリコントローラは、第2のデバイスアドレス書込み動作によって示されるデバイスアドレスに基づいて、1つのNORデバイスがあると判定する。
追加のデバイスアドレス書込み動作を、メモリコントローラによって発行することができるが、これは、図を単純にするために図示されていない。例えば、SRAMがデバイスアドレスを割り当てられる場合に、メモリコントローラによって発行されるメモリコマンドのTYPEは、「03h」になる(図5Bを参照されたい)。
シリアル相互接続構成のデバイスは、メモリコントローラによって発行されるコマンドに応答して動作を実行する。
図3D、4A、および図7A〜7Dを参照すると、メモリコントローラ50は、NANDフラッシュのデバイスタイプに関する第1のデバイスアドレス書込み動作を発行する。IPEがハイである間に、SIPに含まれるTYPE (NANDフラッシュ)、TDA (00h)、CMD (39h)、およびDATA (00h)が、第1デバイス92(すなわち、デバイス_0)に供給される。CMD (39h)は、デバイス92のデバイスコントローラ/プロセッサ142Aに、「デバイスアドレス書込み」動作を実行させる。SIPのTYPE (DTs)とデバイスタイプレジスタ146に保持されたデバイスタイプ(DTr)との両方が、NANDフラッシュであり、したがって、デバイスタイプ一致デターミナ143は、デバイスタイプ一致結果(すなわち、タイプ一致表示143M)をもたらす。また、TDAは、「00h」であり、(DAs)は、デバイスアドレスレジスタ148に保持されたデバイスアドレス(DAr)と一致し、したがって、アドレス一致デターミナ147は、デバイスアドレス一致結果(すなわち、アドレス一致表示147M)をもたらす。デバイスタイプ一致結果に応答して、アドレス増分オペレータ149は、DATAと1との加算を実行して、アドレス増分(「DA+1」)を達成する。デバイスアドレス一致結果に応答して、デバイスコントローラ/プロセッサ142Aは、デバイスアドレスレジスタ148に、前に保持されたアドレスを受け取られたアドレス(SIPのDATAの値または番号)に置換させ、その結果、デバイス92は、「NAND-0」としてセットされるようになる。SIPのDATAの番号は、増分されたアドレス番号によって置換される。DATAを除く命令全体(SIPの)が、バイパスされる。したがって、TYPE (NANDフラッシュ)、TDA (00h)、CMD (39h)、および増分されたDATA (01h)を含む変更されたSIP (SIP_1)が、次のデバイス93(すなわち、デバイス_1)に送られる。
これらの動作は、ハイへのIPE遷移とハイヘのIPE_1遷移との間の時間期間TP1-SI中に実行される。デバイス93は、同一の動作を実行し、「NAND-1」としてセットされる。DATAを除く命令全体(SIP_1の)が、バイパスされる。これらの動作は、ハイへのIPE_1遷移とハイヘのIPE_2遷移との間の時間期間TP1-1中に実行される。受け取られたDATAは、1つだけ増分され、増分されたDATA (02h)が、デバイス93から次のデバイス94(すなわち、デバイス_2)へのSIP_2に含まれる。これらの動作は、時間期間TP1-2中に実行される。同様に、デバイス94は、同一の動作を実行し、「NAND-(n-1)」としてセットされる。DATAを除く命令全体(SIP_(n-1)の)が、バイパスされる。これらの動作は、ハイへのIPE_(n-1)遷移とハイヘのIPE_n遷移との間の時間期間TP1-(n-1)中に実行される。しかし、デバイス95は、同一の動作を実行しない。SIP_nに含まれるTYPE (NANDフラッシュ)、TDA (00h)、CMD (39h)、およびDATA (nh)という入力命令に応答して、デバイス95は、デバイスタイプ一致なし(すなわち、不一致)を判定し、その命令を無視する。したがって、DATA (nh)は、DATA増分なしで、次のデバイスについて同一のままになる。デバイス95(最後のデバイス)からの命令出力は、時間期間TP1-SO中にフィードバックとしてメモリコントローラ50に転送される。メモリコントローラ50は、DATAの番号または値から、NANDタイプデバイスの総数が「n」であることを認識する。
次に、メモリコントローラ50は、NORフラッシュのデバイスタイプに関する第2のデバイスアドレス書込み動作を発行する。やはりIPEハイ中に、SIPに含まれるTYPE (NORフラッシュ)、TDA (00h)、CMD (39h)、およびDATA (00h)が、第1デバイス92(すなわち、デバイス_0)に供給される。CMD (39h)は、デバイス92のデバイスコントローラ/プロセッサ142Aに、デバイスタイプ一致判定を実行させる。SIPのTYPE (DTs)は、NORフラッシュであり、デバイスタイプレジスタ146に保持されたデバイスタイプ(DTr)は、NANDフラッシュである。したがって、デバイスタイプ一致デターミナ143は、デバイスタイプ一致なし結果(すなわち不一致)をもたらし、デバイス92は、受け取られた(または入力された)デバイスアドレス書込み命令を無視する。DATAは、増分なしで同一のままである。デバイス92(デバイスコントローラ/プロセッサ142A)は、TYPE (NORフラッシュ)、TDA (00h)、CMD (39h)、およびDATA (00h)を次のデバイス93に転送する。TYPE (NORフラッシュ)、TDA (00h)、CMD (39h)、および増分されていないDATA (00h)を含む変更されないSIP (SIP_1)が、次のデバイス93(すなわち、デバイス_1)に送られる。これらの動作は、ハイへのIPE遷移とハイへのIPE_1遷移との間の時間期間TP2-SI中に実行される。
受け取られたSIP_1に応答して、デバイス93は、同一の動作を実行する。デバイスタイプの不一致に起因して、デバイス93(デバイスコントローラ/プロセッサ142A)は、受け取られた命令(デバイスアドレス書込み)を無視し、DATAバイトは、増分なしで同一のままになる。デバイス93は、SIP_2に含まれるTYPE (NORフラッシュ)、TDA (00h)、CMD (39h)、およびDATA (00h)を次のデバイス94(すなわち、デバイス_2)に転送する。これらの動作は、ハイへのIPE遷移とハイへのIPE_2遷移の間の時間期間TP2-1中に実行される。同様に、TYPE (NORフラッシュ)、TDA (00h)、CMD (39h)、およびDATA (00h)を含むSIP_2に応答して、デバイス94は、同一の機能を実行する。デバイスタイプの不一致に起因して、デバイス94は、デバイスアドレス書込みを無視し、DATAは、増分なしで同一のままになる。これらの動作は、時間期間TP2-(n-1)中に実行される。
TYPE (NORフラッシュ)、TDA (00h)、CMD (39h)、およびDATA (00h)を含むSIP_nに応答して、デバイス95は、デバイスタイプ一致判定を実行する。SIPのTYPE (DTs)とデバイスタイプレジスタ146に保持されたデバイスタイプ(DTr)との両方が、NORフラッシュであり、したがって、デバイスタイプ一致デターミナ143は、デバイスタイプ一致結果(すなわち、タイプ一致表示143M)をもたらす。また、TDAは「00h」であり、(DAs)はデバイスアドレスレジスタ148に保持されたデバイスアドレス(DAr)と一致し、したがって、アドレス一致デターミナ147は、デバイスアドレス一致結果(すなわち、アドレス一致表示147M)をもたらす。
デバイスタイプ一致結果に応答して、アドレス増分オペレータ149は、DATAと1との加算を実行して、アドレス増分(「DA+1」)を達成する。デバイスアドレス一致結果に応答して、デバイス95のデバイスコントローラ/プロセッサ142Aは、デバイスアドレスレジスタ148に、前に保持されたアドレスを受け取られたアドレス(SIPのDATAの値または番号)に置換させ、その結果、デバイス95は、「NOR-0」としてセットされるようになる。SIPのDATAの番号は、増分されたアドレス番号によって置換される。DATAを除く命令全体(SIPの)が、バイパスされる。したがって、SOPに含まれるTYPE (NORフラッシュ)、TDA (00h)、CMD (39h)、および増分されたDATA (01h)が、出力される。デバイス95は、最後のデバイスなので、出力SOPは、メモリコントローラ50に送られる。これらの動作は、ハイへのIPE_n遷移とハイへのIPEQ遷移との間の時間期間TP2-n中に実行される。デバイス95から出力される命令は、時間期間TP2-SO中にフィードバックとしてメモリコントローラ50に転送される。メモリコントローラ50は、DATAの番号または値から、NORタイプデバイスの総数が「1」であることを認識する。
その後、時刻TAMEに、メモリコントローラ50が、もう1つのデバイスタイプに関するもう1つのデバイスアドレス書込み動作を発行する。初期化すべきデバイスタイプがもうない場合には、システム44は、通常動作(例えば、図2Cに示されたフェーズ2)の準備ができている。
例の詳細を、これから、図3A〜3Fを参照して上で提示した例の文脈で与える。これらの詳細は、タイプ依存アドレッシングを有する実施態様に関する。これらの実施態様では、各メモリデバイスが、デバイスタイプおよびデバイスアドレスを有し、このデバイスタイプとデバイスアドレスとの両方が、アドレッシング目的に使用される。代替実施態様は、タイプ依存アドレッシングを使用するが、その詳細は、下で、異なるセクション見出しの下で与える。このセクションで与えられる詳細が、例のみのために非常に固有であることを理解されたい。
図8に、タイプ依存アドレッシングを用いる例の入力の信号のタイミングシーケンスを示す。このタイミング図は、上で図3A〜3Fを参照して説明した例のメモリシステムのすべてのメモリデバイスに適用可能である。タイミング図の最上部に、8-1によって示されるチップ選択(CS#)および8-2によって示されるシリアルクロック(SCLK)の信号がプロットされている。また、このタイミング図は、入力インターフェースに関する信号すなわち、8-3によって示される入力イネーブル(IPE)、8-4によって示されるシリアル入力(SIP)、および8-5によって示される出力イネーブル(OPE)を含む。さらに、このタイミング図は、出力インターフェースからの信号すなわち、8-6によって示されるシリアル出力(SOP)を含む。
チップ選択CS# 8-1は、アクティブ「ロウ」であり、したがって、メモリシステム内で接続されたメモリデバイスのすべてをイネーブルするために、論理「ロウ」でなければならない。SCLK 8-2は、フリーランニングシリアルクロック信号である。IPE 8-3は、シリアライズされたバイトモードでの入力ストリームの始めを示す論理「ロウ」から論理「ハイ」への遷移点を有する。論理「ハイ」状態のIPE 8-3を受け取るメモリデバイスは、バイトモード定義でのSIPポートを介するデータストリーミングを処理する準備ができていなければならない。SIP 8-4の第1バイトは、「デバイスタイプ」の情報を担持する。第1バイトは、立ち上がりエッジに対して参照されるSCLK 8-2の8サイクルを、最初にMSB(最上位ビット)、最後にLSB(最下位ビット)の順で含む。第1バイトに続いて、SIP 8-4の第2バイトは、「デバイスアドレス」情報(例えば、ターゲットデバイスアドレス(TDA))を担持し続ける。「コマンド」情報を担持する第3バイトが、第2バイトに続き、「ロウ/カラムアドレス」を担持する第4、第5、ならびに/または第6およびさらなるバイトが続く。適用可能な場合に(例えば、書込み関連動作)、1つまたは複数のデータ入力バイトが続く。
このタイミング図に示されているように、IPE 8-3に沿ったSIP 8-4の「シリアルバイト」の位置合わせは、SCLK 8-2の立ち上がりエッジを使用する一連の8クロックサイクルとして定義される。他の実施態様では、SCLK 8-2の立ち下がりエッジを使用することもできる。SCLK 8-2の立ち上がりエッジと立ち下がりエッジとの両方が使用される場合には、クロッキングの「ダブルエッジ」のゆえに、1つの「シリアルバイト」を形成するのに4クロックサイクルだけが必要になる。1つのバイトは、8つのビットを含み、1ビットは、論理「ハイ」または論理「ロウ」の状態のいずれかを表す。
図示の例では、SOP 8-6は、論理「ドントケア」として示される。というのは、メモリデバイスが、次のメモリデバイスへのデータ出力をイネーブルしていないからである。しかし、メモリデバイスが、次のメモリデバイスへのデータ出力をイネーブルしていなければならない場合には、そのメモリデバイスは、出力イネーブル(OPE)を論理「ハイ」に駆動させ、SOP 8-6は、論理「ドントケア」にはならない。
その代わりに、情報を担持するSIP 8-4のバイトは、LSBを先に、MSBを最後の位置にいかせるものであってもよい。
メモリデバイスがデータを受け取っており、データを次のメモリデバイスに転送している時の例を、図9を参照して下で与える。
図9に、2つの隣接するメモリデバイスを介する例のシグナリングのタイミングシーケンスを示す。このタイミング図は、図3C、3D、3E、および3Fを参照して上で説明した例のメモリシステムの隣接するメモリデバイスの各対に適用可能である。この例では、デバイス0という名前の第1デバイスおよびデバイス1という名前の第2デバイスが、説明のために選択される。すべての信号名の接尾辞「_D0」および「_D1」は、説明のために、それぞれ2つのデバイスすなわちデバイス0およびデバイス1を表す。このタイミング図の最上部に、9-1によって示されるシリアルクロック(SCLK)の信号がプロットされている。次に、このタイミング図は、デバイス0の入力インターフェースの信号すなわち、それぞれ9-2、9-3、および9-4によって示される入力イネーブル(IPE_D0)、シリアル入力(SIP_D0)、および出力イネーブル(OPE_D0)を含む。次に、このタイミング図は、デバイス1の出力インターフェースからの信号すなわち、それぞれ9-5、9-6、および9-7によって示される、シリアル出力(SOP_D0)、入力イネーブルエコー(IPEQ_D0)、および出力イネーブルエコー(OPEQ_D0)を含む。次に、このタイミング図は、デバイス1の入力インターフェースからの信号すなわち、それぞれ9-8、9-9、および9-10によって示される入力イネーブル(IPE_D1)、シリアル入力(SIP_D1)、および出力イネーブル(OPE_D1)を含む。第2メモリデバイスすなわちデバイス1の入力インターフェースへの信号入力が、第1メモリデバイスすなわちデバイス0の出力インターフェースからの信号出力と同一であることに留意されたい。次に、このタイミング図は、デバイス1の出力インターフェースからの信号すなわち、それぞれ9-11、9-12、および9-13によって示される、シリアル出力(SOP_D1)、入力イネーブルエコー(IPEQ_D1)、および出力イネーブルエコー(OPEQ_D1)を含む。
このタイミング図は、説明のためのみに提供され、したがって、すべての波形は、実際の動作を示してはいない。時刻T2に、IPE_D0 9-2は、SCLK 9-1の立ち上がりエッジで論理「ハイ」に遷移し、これは、SIP_D0 9-3を介するシリアルデータストリームインの始めを意味する。次に、デバイス0は、SIP_D0 9-3の受取りを開始し、シリアルストリームイン情報に従って適当な動作を処理する。また、デバイス0は、IPE_D0 9-4の論理「ハイ」状態をIPEQ_D0 9-6にエコーし、このIPEQ_D0 9-6は、デバイス1のIPEポートに接続される。また、SIP_D0 9-3のストリームインデータは、SOP_D0 9-5にエコーされ、このSOP_D0 9-5は、デバイス1のSOPポートに接続される。この手順は、時刻T10まで継続され、時刻T10に、IPE_D0 9-2の論理「ロウ」状態が、SCLK 9-1の立ち上がりエッジで検出される。デバイス1レベルでは、IPE_D1 9-8が、デバイス0レベルでのIPEQ_D0 9-7信号と論理的に同一の信号波形を示す。というのは、IPEQ_D0 9-6が、ワイヤまたは他の相互接続方法を介して直接にIPE_D1 9-8に接続されるからである。また、SIP_D1 9-9は、デバイス0レベルのSOP_D0 9-5信号と論理的に同一の信号波形を示す。というのは、SOP_D0 9-5が、ワイヤまたは他の相互接続方法を介して直接にSIP_D1 9-9に接続されるからである。デバイス1では、デバイス0に類似する手順が発生し、SOP_D1 9-11へのSIP_D1 9-9のエコーおよびIPEQ_D1 9-12へのIPE_D1 9-8のエコーをもたらす。
図示の例では、エコー手順に関する1クロックサイクルの待ち時間がある。しかし、より一般的に、任意の適当なクロックサイクル待ち時間を実施することができる。例えば、1/2クロックサイクル、2クロックサイクル、または3つ以上のクロックサイクルのクロックサイクル待ち時間を実施することができる。各メモリデバイスを介するクロックサイクル待ち時間は、メモリシステムの総クロック待ち時間を決定する。1クロックサイクル待ち時間およびシステム内の4つのデバイスを仮定すると、最後のデバイスのSOP_D3およびIPEQ_D3は、オリジナルのSIP_D0 9-3信号およびIPE_D0 9-2信号から4クロックサイクルの待ち時間を有する。デバイス0レベルのT13からT17までに、OPE_D0 9-4信号がアクティブであり、信号SOP_D0 9-5を介するデバイス0からのシリアル出力動作を引き起こす。時刻T13に、OPE_D0 9-4の論理「ハイ」状態が、SCLK 9-1の立ち上がりエッジに検出され、その後、デバイス0は、そのデバイスの前の状態に従うSOP_D0 9-5ポートを介するシリアルデータストリームの出力を開始する。この例では、デバイス0は、シリアルデータを出力するために選択され、デバイス1は、選択されず、したがって、デバイス1は、SIP_D1 9-9信号(SOP_D0 9-5と同一)をSOP_D1 9-11ポートにエコーするのみである。OPEポートと共のシリアル出力動作は、シリアル入力手順と同一のクロック待ち時間を有する。
図3A〜3Fを参照して説明した例で、最後のデバイス83、87、91、95、または99からの出力イネーブルエコー(OPEQ) 69は、それぞれのメモリコントローラ50に接続される。この形で、メモリコントローラ50は、クロック待ち時間の個数をカウントする必要がなく、クロック待ち時間の個数は、相互接続されたデバイスの個数によって決定される。メモリコントローラは、最後のデバイスからのOPEQ信号の立ち上がり点を検出でき、相互接続内のデバイスからのシリアルデータ出力ストリーミングの開始点を判断することができる。最後のデバイス83、87、91、95、または99からの出力イネーブルエコー(OPEQ) 69がメモリコントローラ10に接続されない代替実施態様では、メモリコントローラ50は、シリアルデータがシリアル入力(SIP) 57を介して受け取られる時に関して、クロック待ち時間の以前の知識に基づいて予測することができる。
図8および9を参照して上で説明したタイミング図では、SIPおよび(適用可能な場合に)SOPについてプロットされた信号が、メモリ動作を含み、このメモリ動作は、所定のフォーマットに従う。メモリ動作に関する例の所定のフォーマットの表を、下で図10を参照して説明する。
図10に、タイプ依存アドレッシングを用いるメモリ動作の例の所定のフォーマットの表を示す。この表が、例のためにのみ非常に固有であることを理解されたい。この表では、
TYPE: ターゲットデバイスタイプ
TDA: ターゲットデバイスアドレス
CMD: コマンドコード
CA: カラムアドレス
RA: ロウアドレス
である。
注 *1:TDA (ターゲットデバイスアドレス)は、パワーアップまたはハードリセットの後に第1のデバイスアドレス書込みコマンドが発行される時に「00h」である。
図10を参照すると、この表は、異なるメモリ動作の変化するフォーマットを示す。この表では、8つメモリ動作すなわち、読取り、書込み、消去、状況読取り、ID読取り、構成レジスタ書込み、デバイスアドレス書込み、およびリセットがリストされている。他のメモリ動作があってもよいが、これらは、表を単純にするために示されていない。第1バイトは、デバイスタイプ(TYPE)を定義する。この情報を、SIPポートを介するデータのシリアル入力ストリームを処理すべきか否かを判断するために、オンチップの事前にプログラムされるデバイスタイプレジスタ値と比較することができる。デバイスタイプと共に、第2列は、ターゲットデバイスアドレス(TDA)を指定し、これは、同一のデバイスタイプのメモリデバイスの間で区別するのに使用される。第3バイトは、コマンド定義(CMD)を定義する。適当な場合に(例えば、読取り動作)、第4、第5、および/またはさらなるバイトは、ロウアドレス(RA)および/またはカラムアドレス(CA)情報を定義する。適当な場合に(例えば、書込み動作)、追加のバイトが、動作によって送られるデータ(DATA)を定義する。
デバイスタイプ、デバイスアドレス、およびコマンドは、これらがデバイスタイプに固有になる形で符号化される。例の符号化方式を、図10から13までを参照して下で説明する。これらの符号化方式が、例のみのために非常に固有であることを理解されたい。符号化方式は、製造業者によって、彼ら自身の目的のために異なる形で変更され得る。
図11に、タイプ依存アドレッシングの例の符号化方式の表を示す。この表では、
DA[7:0]:デバイスアドレス(この例では、デバイスの最大個数=28=256個である)
CA[11:0]:カラムアドレス(この例では、カラムの最大個数=212=4096個である)
RA[17:0]:ロウアドレス(この例では、ロウの最大個数=218=262144個である)
図11を参照すると、この表は、デバイスアドレス(TDA)、ロウアドレス(RA)、およびカラムアドレス(CA)の符号化方式を定義する。この例では、デバイスアドレスは、合計8ビットを有し、したがって、システム内で構成できるデバイスの最大個数は、28=256個である。しかし、このデバイスアドレス定義を、適宜別のシリアルバイト(1つまたは複数)を使用して拡張することができる。また、ロウアドレスバイトおよびカラムアドレスバイトは、デバイスアドレスフォーマットと類似する形で示される。図5Bの表について上で注記したように、表の定義を、その代わりに、LSBを先に有するために逆の順序とすることができる。
図12に、タイプ依存アドレッシングを用いるNANDフラッシュコマンドの例の符号化方式の表を示す。
この表では、
*1:ターゲットDAは、「デバイスアドレス書込み」コマンドがパワーアップまたはハードリセットの後に発行される時に00hでなければならない。
*2:ロウアドレスバイトおよびカラムアドレスバイトは、同一位置のページ読取りコマンドが前に発行された場合に、供給されない場合がある。
図12を参照すると、このテーブルは、13個のコマンドすなわち、ページ読取り、ランダムデータ読取り、コピーのためのページ読取り、コピーのためのターゲットアドレス入力、シリアルデータ入力、ランダムデータ入力、ページプログラム、ブロック消去、状況読取り、ID読取り、構成レジスタ書込み、デバイスアドレス書込み、およびリセットのそれぞれについて符号化方式を定義する。各コマンドは、デバイスタイプ(デバイスTYPE)を含み、このデバイスタイプは、図5Bの表によれば、NANDフラッシュメモリについて「00h」である。次に、各コマンドは、デバイスアドレス(ターゲットDA)を含み、このデバイスアドレスは、「有効」として示される。デバイスアドレスは、シリアル相互接続内の特定のデバイスを選択するために任意のデバイスアドレスを識別することができる。デバイスアドレス列は、適当な場合に、より多くのバイトに拡張することができる。次に、各コマンドは、コマンド定義を含む。図示のコマンド定義は、従来のNANDフラッシュメモリコマンド定義に類似する。この表の第4列および第5列は、それぞれ、NANDフラッシュデバイスのメモリセルアレイブロック内の特定のロウ位置およびカラム位置の選択のための、ロウアドレスおよびカラムアドレスを表す。この表に示されているように、一部のコマンドは、ロウアドレスおよび/またはカラムアドレスを含まない。
ロウアドレス範囲およびカラムアドレス範囲ごとのバイト数は、特定の密度のメモリアレイサイズに従って変更することができる。ロウアドレスおよびカラムアドレスを、いずれかの形で切り替えることができる。したがって、カラムアドレスバイトを、その代わりに最初にすることができ、ロウアドレスバイトがカラムアドレスに続くことができる。これは、特定のメモリチップ設計プリファレンスに依存する。最後の列は、例えば「シリアルデータ入力(80h)」、「ランダムデータ入力(85h)」、および「構成レジスタ書込み(A0h)」などの「書込み」動作コマンドの入力データカラム定義を示す。この入力データバイトは、デバイス仕様に従って、1バイトもの小ささまたはNバイトもの大きさとすることができる。「状況読取り(70h)」コマンドは、同一のシリアルリンクポートSOPを使用して各デバイスの状況をチェックするために必要であり、そうでなければ、各デバイスは、状況表示のために別々の余分なハードピンを必要とする。これを、異なる16進数定義に変更することもできる。「デバイスアドレス書込み(39h)」コマンドは、相互接続されたデバイスが、ハードピン構成ではなくソフト生成されるデバイス番号を使用する場合に使用される。「リセット(FFh)」コマンドは、各選択されたデバイスに対してソフトリセット機能を実行することができる。このソフトリセットは、相互接続内のすべてのデバイスに接続
される「RST#」ポートを使用する「ハードリセット」から区別される。
図13に、タイプ依存アドレッシングを用いるNORフラッシュコマンドの例の符号化方式の表を示す。この表では、
注*1:ターゲットDAは、パワーアップまたはハードリセットの後に「デバイスアドレス書込み」コマンドが発行される時に「00h」でなければならない。
注*2:ロウアドレスバイトおよびカラムアドレスバイトは、同一位置の読取りコマンドが前に発行された場合に、供給されない場合がある。
図13の表は、図12の表と類似するフォーマットに従う。しかし、図13の表は、12個のコマンドすなわち、読取り、バッファへの書込み、フラッシュするためにバッファをプログラムする(確認)、チップ消去、セクタ消去、プログラム/消去一時停止、プログラム/消去再開、状況読取り、ID読取り、構成レジスタ書込み、デバイスアドレス書込み、およびリセットの異なるセットを有すると見ることができる。各コマンドは、デバイスタイプ(デバイスTYPE)を含み、このデバイスTYPEは、図5Bの表によれば、NORフラッシュメモリについて「01h」である。「DNエントリ書込み(39h)」コマンドは、相互接続されたデバイスが、ハードピン構成ではなくソフト生成されるデバイス番号を使用する場合に使用される。図12の表と同様に、「リセット(FFh)」コマンドは、各選択されたデバイスに対してソフトリセット機能を実行することができる。このソフトリセットは、相互接続内のすべてのデバイスに接続される「RST#」ポートを使用する「ハードリセット」から区別される。
図14に、タイプ依存アドレッシングを用いてメモリ動作を処理する方法を示す。このプロセスは、全般的な概念を示す。特定のコマンドまたは動作流れ図が、この例と異なる場合がある。例えば、データの読取りまたは書込みを伴わない動作は、データの転送を伴わない。また、コマンドが、ロウアドレスまたはカラムアドレスを伴わない場合に、メモリデバイスは、ロウ/カラムアドレスバイトを転送しない。シリアル信号ストリームバイトが、相互接続内の各デバイスのIPE、SIP、OPE、またはSOPを介してバイパスされる時には、バイパス回路が1クロック待ち時間を用いて設計される場合に、1クロックサイクルの待ち時間遅延がある。
図14を参照すると、メモリデバイスがメモリコマンドを受け取る時に、そのメモリデバイスは、メモリコマンドによって示されるデバイスタイプを、そのタイプレジスタによって示されるそれ自体のデバイスタイプと比較する(ステップ14-1)。メモリコマンドは、そのメモリコマンドによって示されるデバイスタイプに固有である。メモリデバイスは、メモリコマンドのデバイスタイプがそのレジスタのデバイスタイプと一致するかどうかを判定する(ステップ14-2)。この2つのデバイスタイプの間にタイプ一致がある場合に(ステップ14-2のYES)、メモリデバイスは、さらに、メモリコマンドによって示されるデバイスアドレスを、そのデバイスアドレスレジスタによって示されるそれ自体のデバイスアドレスと比較する(ステップ14-3)。メモリデバイスは、メモリコマンドのデバイスアドレスがそのレジスタのデバイスアドレスと一致するかどうかを判定する(ステップ14-4)。アドレス一致がある場合に(ステップ14-4のYES)、メモリデバイスは、そのコマンドを実行する(ステップ14-5)。コマンドに応じて、これは、メモリデバイスが、メモリコマンドによって示されるロウアドレスおよびカラムアドレスを処理することを伴う場合があり、メモリコマンドの一部として受け取られたデータを処理することを伴う場合もある。しかし、デバイスタイプの一致がない場合(ステップ14-2のNO)、またはデバイスアドレスの一致がない場合(ステップ14-4のNO)に、メモリデバイスは、メモリコマンドを次のメモリデバイスに転送すること以外に、メモリコマンドの内部処理を実行しない(ステップ14-6)。
図14を参照して上で説明したメモリ動作を処理するプロセスのさらなる説明を提供するために、図15Aおよび15Bを参照して、タイミング図を下で説明する。
図15Aおよび15Bに、タイプ依存アドレッシングを用いるメモリ動作の処理に関する信号のタイミングシーケンスを示す。このタイミング図は、図3Bのメモリシステムから生じる可能性がある例の信号を示し、図3Bのメモリシステムは、相互接続された1つのNORタイプフラッシュデバイス84および3つのNANDタイプフラッシュデバイス85、86、…、および87を有する。
メモリコントローラによって発行されるNANDフラッシュデバイスのページ読取りに関するメモリコマンドは、次のとおりである。
このメモリコマンドにおいて、
TYPE (00h)は、「NANDフラッシュ」デバイスを識別する(図5Bを参照されたい)。
TDA (01h)は、デバイスアドレス「1」を保持するデバイスを識別する。
CMD (00h)は、実行される動作が「ページ読取り」であることを識別する。
Raw/Column Addressesは、DATAではなく、メモリのロウアドレスおよびカラムアドレスを識別する。
同様に、NORフラッシュデバイスのページ読取りに関するメモリコマンドは、次のとおりである。
図3B、15A、および15Bを参照すると、NORタイプフラッシュデバイス84は、相互接続の最初のデバイスである(すなわち、メモリコントローラ50に最も近い)。このデバイスは、「NOR-0」として一意のタイプおよびデバイス番号(または、タイプおよびデバイス識別、あるいはタイプおよびデバイスアドレス)を有する。NANDタイプフラッシュデバイス85、86、…、および87は、NOR-0デバイス84の次に直列に接続され、「NAND-0」、「NAND-1」、および「NAND-(n-1)」として一意のデバイス番号を有する。このタイミング図の最上部に、15-1によって示されるシリアルクロック(SCLK)の信号がある。次に、このタイミング図は、それぞれ15-2、15-3、15-4、および15-5によって示される、各メモリデバイス84、85、86、…、および87のシリアル入力(SIP)の信号を含む。次に、このタイミング図は、それぞれ15-6、15-7、15-8、および15-9によって示される、各メモリデバイス84、85、86、…、および87の出力イネーブル(OPE)の信号を含む。次に、このタイミング図は、15-10によって示される、最後のメモリデバイス87の出力イネーブルエコー(OPEQ)の信号を含む。最後に、このタイミング図は、それぞれ15-11、15-12、15-13、および15-14によって示される、各メモリデバイス84、85、86、…、および87のシリアル出力(SOP)の信号を含む。単純な説明のために、IPE、CS#、RST#などの他の信号は、このタイミング図には示されていない。
このタイミング図では、15-15によって示されるように、「NAND-1のページ読取りコマンドセット」が、先ず、デバイスタイプ(TYPE=NAND)、ターゲットデバイスアドレス(DA=1)、コマンド(00h)、およびロウ/カラムアドレスを伴って発行される。入力信号のこのシリアルストリームは、シーケンス内のデバイスを介して渡され、選択されたデバイス(このケースではNAND-1)だけが、デバイスの内部で所与の「ページ読取り」コマンドを処理する。通常、NANDタイプフラッシュメモリは、NANDフラッシュセルからデータレジスタブロックにデータを転送する内部「ページ読取り動作」にはるかにより長い時間(通常は20μ秒)を要する。したがって、メモリコントローラは、その20μ秒という時間にわたって待たなければならない。しかし、メモリコントローラは、NAND-1の長いページ読取り時間にわたって待っている間に、NORタイプフラッシュデバイスすなわちNOR-0にアクセスすることができる。したがって、15-16に示されているように、「NOR-0のページ読取りコマンドセット」が、「NAND-1のページ読取りコマンドセット」の直後に発行される。NORタイプフラッシュメモリは、例えば100ナノ秒など、非常に速い読取りアクセス時間を有し、したがって、メモリコントローラは、NOR-0からの「デマンドページング」などの多数の高速動作を実行することができる。「デマンドページング」は、仮想メモリを実施する単純な方法である。
デマンドページングを使用するシステムでは、オペレーティングシステムが、ページにアクセスする試みが行われる場合(すなわち、ページフォールトが発生する場合)に限って、そのページを物理メモリにコピーする。したがって、プロセスは、物理メモリ内にそのページのいずれをも有しないで実行を開始することになり、多数のページフォールトが、プロセスのページのワーキングセットのほとんどが物理メモリに配置されるまでに発生する。15-17によって示されるように、NOR-0からの最後の読取りデータ出力は、NAND-2のSOPポートに現れ、このSOPポートは、接続されたメモリデバイスの総数が4なので、4クロックサイクル待ち時間の後にコントローラのSOPポートに直接に接続される。長い時間にわたって待った後に、メモリコントローラは、NAND-1にアクセスすることができる。この時に、15-18によって示されるように、メモリコントローラは、ロウ/カラムアドレスバイトなしで「NAND-1のページ読取りコマンドセット」を発行し、OPE 15-6信号を論理「ロウ」から論理「ハイ」状態にし、これによって、NAND-1デバイス内の出力回路網がイネーブルされ、その後、NAND-1からの読取りデータ出力が、15-19によって示されるように直列に接続されたSIP/SOPポートを介してストリームアウトされ始める。メモリコントローラのSOPポートでの最終的なデータ出力には4クロックサイクルの待ち時間がある。
図16Aに、図3A〜3Eに示されたメモリデバイスとして使用されるもう1つの例のメモリデバイスブロックを示す。図16Aに示されたメモリデバイス140Aは、図4Aに示されたメモリデバイス140Aに類似する。図16Aを参照すると、アドレス増分オペレータ149は、デバイスコントローラ/プロセッサ142Aからの初期フェーズの要求に応答して動作を実行する。そのような特定の例で、割り当てられるデバイスアドレスは、そのデバイスによって増分されたデバイスアドレスである。各デバイスは、図6Aに示されたデバイスアドレス割当て方法を実行する。しかし、図6Bのステップ6-10および6-11は、図16Bに示されているよう逆にされる。
図3B、4A、16A、および16Bを参照すると、デバイスアドレス書込み動作を受け取ったデバイスは、受け取られたデバイスタイプ(「DTs」)がデバイスタイプレジスタ146に登録されたそのデバイスのデバイスタイプと一致するかどうかを判定する(ステップ16-8)。デバイスタイプ一致(ステップ16-8のYES)またはデバイスタイプ一致結果がある場合に、アドレス一致デターミナ147は、ターゲットデバイスアドレス(TDA)(すなわち、「DAs」)がデバイスアドレスレジスタ148に登録されたデバイスアドレス(DAr)と一致するかどうかを判定する(ステップ16-9)。デバイスアドレス一致(ステップ16-9のYES)またはデバイスアドレス一致結果がある場合に、デバイスアドレス一致デターミナ147は、アドレス一致表示147Mを出力する。次に、受け取られたデバイスアドレス(「DA」)が、アドレス増分オペレータ149によって増分される(ステップ16-10)。増分されたアドレス(「DA+1」)は、デバイスアドレスレジスタ148に登録され(ステップ16-11)、増分されたデバイスアドレスは、次のデバイスに送られる。デバイスタイプ一致がない(ステップ16-8のNO)または非デバイスタイプ一致結果がある場合には、デバイスアドレス割当てもデバイスアドレス増分も実行されない。また、デバイスアドレス一致がない(ステップ16-9のNO)または非デバイスアドレス一致結果がある場合には、デバイスアドレス割当てもアドレス増分も実行されない。
図16Cに、図16Aのデバイスによって実行されるもう1つのデバイスアドレス割当て動作を示す。図16Cのステップ16-8および16-9は、図16Bのこれらのステップと同一である。デバイスタイプ一致(ステップ16-8のYES)およびデバイスアドレス一致(ステップ16-9のYES)がある場合に、受け取られたデバイスアドレス(「DA」)が、アドレス増分オペレータ149によって増分される(ステップ16-12)。増分されたアドレス(「DA+1」)が、デバイスアドレスレジスタ148に登録され(ステップ16-13)、増分されたデバイスアドレスは、次のデバイスに送られる(ステップ16-14)。
図17に、図3Fに示されたメモリデバイスとして使用されるもう1つの例のメモリデバイスブロックを示す。図17に示されたメモリデバイス140Bは、図4Aに示されたメモリデバイス140Aに類似する。図17を参照すると、アドレス増分オペレータ149は、デバイスコントローラ/プロセッサ142Bからの初期フェーズの要求に応答して動作を実行する。デバイス140Bは、図16Bの動作に似た動作を実行する。アドレス増分オペレータ149によって与えられる増分されたデバイスアドレスは、デバイスアドレスレジスタ148に登録され、次のデバイスに送られる。
図18に、本発明のもう1つの実施形態による2チャネルのメモリシステムを示す。図18を参照すると、メモリコントローラ150の第1チャネルは、シリアルリンクを介して接続されたメモリデバイスの第1シリアル相互接続構成151に接続される。同様に、メモリコントローラ150の第2チャネルは、シリアルリンクを介して接続されたメモリデバイスの第2シリアル相互接続構成152に接続される。シリアル相互接続構成151のそれぞれの最後のデバイスからのシリアル出力(SOP)、入力イネーブルエコー(IPEQ)、および出力イネーブルエコー(OPEQ)は、メモリコントローラ150にフィードバックされる。
メモリデバイスの第1シリアル相互接続構成151の詳細を、図19Aに示す。メモリデバイスの第2シリアル相互接続構成152の詳細を、図19Bに示す。
図19Aを参照すると、メモリデバイスの第1シリアル相互接続構成151は、シリアル相互接続された(n+1)個のNORフラッシュメモリデバイス160、161、162、…、および163を含む。デバイス160、161、162、…、および163は、それぞれNORフラッシュメモリコア160A、161A、162A、…、および163Aを含む。デバイス160、161、162、…、および163のそれぞれは、そのメモリタイプ(NORフラッシュ)を保持するレジスタ60を有する。初期化の動作中に、デバイス160、161、162、…、および163は、それぞれデバイスアドレス「NOR-0」、「NOR-1」、「NOR-2」、…、および「NOR-n」を割り当てられる。割り当てられたデバイスアドレスは、デバイスのレジスタ(図示せず)に保持される。
図19Bを参照すると、メモリデバイスの第2シリアル相互接続構成152は、シリアル相互接続された(n+1)個のNANDフラッシュメモリデバイス170、171、172、…、および173を含む。デバイス170、171、172、…、および173は、それぞれNANDフラッシュメモリコア170A、171A、172A、…、および173Aを含む。デバイス170、171、172、…、および173のそれぞれは、そのメモリタイプ(NANDフラッシュ)を保持するレジスタ60を有する。初期化の動作中に、デバイス170、171、172、…、および173は、それぞれデバイスアドレス「NAND-0」、「NAND-1」、「NAND-2」、…、および「NAND-n」を割り当てられる。割り当てられたデバイスアドレスは、デバイスのレジスタ(図示せず)に保持される。
代替案では、メモリデバイスの第1シリアル相互接続構成151が、混合されたタイプのデバイスを含んでもよい。また、メモリデバイスの第2シリアル相互接続構成152が、混合されたタイプのデバイスを含んでもよい。
図20Aおよび20Bに、図18に示されたメモリシステム内で使用される他の特定の例のメモリデバイスの概略を示す。
図20Aを参照すると、メモリデバイスの第1シリアル相互接続構成151は、図3Bの例と同一であるメモリコア210A、211A、212A、および213Aを有する(n+1)個のメモリデバイス210、211、212、…、および213を含む。図3Bに示された特定の例では、第1メモリデバイス210は、NORフラッシュメモリコア210Aを有し、第2、第3、…、および第(n+1)のメモリデバイス211、212、…、および213は、それぞれNANDフラッシュメモリコア211A、212A、…、および213Aを有する。図3Cの例は、タイプごとのアドレッシング方式が使用される、すなわち、前に導入した第1アドレッシング方式が使用されるという点で、図3Bの例とは異なる。タイプおよびアドレスは、1つのNORデバイスおよび「n」個のNANDデバイスがあると仮定して、「NOR-0」、「NAND-0」、「NAND-1」、…、および「NAND-(n-1)」として示される。
図20Bを参照すると、メモリデバイスの第2シリアル相互接続構成152は、それぞれ混合されたメモリコア220A、221A、222A、…、および223Aを有する複数(n+1)個のメモリデバイス220、221、222、…、および223を含む。第1メモリデバイス220は、SRAMメモリコア220Aを有し、第2メモリデバイス221は、NORフラッシュメモリコア221Aを有する。第3、…、および第(n+1)メモリデバイス222、…、および223は、それぞれNANDフラッシュメモリコア222A、…、および223Aを有する。メモリデバイスは、タイプごとのアドレッシング方式を使用してアドレッシングされる。タイプおよびアドレスは、1つのSRAMデバイス、1つのNORデバイス、および「n-1」個のNANDデバイスがあると仮定して、「SRAM-0」、「NOR-0」、「NAND-0」、…、および「NAND-(n-2)」として示される。
上で説明した実施形態では、あるメモリコマンド(例えば、SIPの「デバイスアドレス書込み」コマンド)が、別のメモリコマンド(例えば、SIP_1の「デバイスアドレス書込み」コマンド)とオーバーラップされない。もう1つの実施形態では、デバイスへのシリアル入力内のメモリコマンドを、図21に示されているようにオーバーラップさせることができる。しかし、これは、あるデバイスによるデバイスアドレス(DATA)増分が、他のデバイスがアドレス(DATA)増分を実行する前に完了しなければならないことを必要とする。
データ、情報、または信号の送出が、単一ビットまたは複数のビットによって実行されることは、当業者に明白であろう。例えば、シリアル入力SIPおよびシリアル出力SOPを介するデータ伝送は、図22に示されているように単一ビットまたは複数のビット(Mビット)によって実行され、Mは、1より大きい整数である。インターフェースは、単一の入出力ピンまたは複数の入出力ピンを含んでよい。
図23に、本発明のもう1つの実施形態によるメモリシステムを示す。図23に示されたメモリシステムは、複数のメモリデバイスのシリアル相互接続構成351およびデバイスの動作を制御するメモリコントローラ350を含む。この構成のメモリデバイスの詳細を、図24に示す。図示の例では、構成は、(n+1)個のメモリデバイスすなわち、デバイス0、デバイス1、デバイス2、…、およびデバイスnを含む。メモリデバイスのそれぞれは、複数のポートを有する。図24の特定の例では、各デバイスは、2ポートデバイスである。メモリコントローラ350は、リセット信号「RST#」、チップ選択信号「CS#」、およびシリアルクロック信号「SCLK」をメモリデバイスのそれぞれのそれぞれのポートに供給する。
図23および24を参照すると、第1メモリデバイス(デバイス0)は、複数のデータ入力ポート(SIP1、SIP2)、複数のデータ出力ポート(SOP1、SOP2)、複数の制御入力ポート(IPE1,IPE2)、および複数の制御出力ポート(OPE1、OPE2)を有する。データ信号および制御信号は、メモリコントローラ350から第1メモリデバイスに送られる。第2メモリデバイス(デバイス1)は、デバイス1が接続されるデバイス0と同一のタイプのポートを有する。例えば、デバイス1は、デバイス0からデータ信号および制御信号を受け取る。構成内の最後のメモリデバイス(デバイスn)は、データ信号および制御信号を、所定の待ち時間の値にメモリコントローラ350に戻って供給する。各メモリデバイスは、IPE1、IPE2、OPE1、およびOPE2(すなわち、制御出力ポート)のエコー(IPEQ1、IPEQ2、OPEQ1、OPEQ2)を後続デバイスに出力する。
図25に、本発明のもう1つの実施形態によるメモリシステムを示す。図25に示されたメモリシステムは、メモリコントローラ450および複数のメモリデバイスのシリアル相互接続構成451を含む。デバイスの構成を、図26に示す。メモリデバイスのそれぞれは、複数のポートを有する。図26の特定の例では、各デバイスが、2ポートデバイスである。メモリコントローラ450は、デバイスのポートの極性に対応する信号の複数のグループを供給する。図示の例では、リセット信号「RST#1」、チップ選択信号「CS#1」、およびシリアルクロック信号「SCLK1」が、メモリデバイスのそれぞれのそれぞれのポート1に供給される。同様に、ポート2について、リセット信号「RST#2」、チップ選択信号「CS#2」、およびシリアルクロック信号「SCLK2」が、メモリデバイスのそれぞれのそれぞれのポートに供給される。
図23〜26に示されたメモリシステムおよびデバイスで、図4Aおよび16Aに示されたデバイスを、メモリデバイスのシリアル相互接続構成において使用することができる。また、図4Bおよび17に示されたデバイスを、メモリデバイスのシリアル相互接続構成で使用することができる。その場合に、クロック信号SCLKは、図3Fに示されているように送られる必要があり、各デバイスは、次のデバイスのために出力エコークロック信号「SCLK_O」を供給するクロック同期回路を有する。
上で説明した実施形態で、デバイス要素および回路が、説明を単純にするために、図面に示されているように互いに接続される。本発明の特定の応用では、要素、回路などを、互いに直接に接続することができる。また、要素、回路などを、デバイスまたは装置の動作に必要な他の要素、回路などを介して互いに間接に接続することができる。したがって、デバイスおよび装置の実際の構成では、要素および回路が、お互いに直接にまたは間接に結合され、または接続される。
半導体デバイスを、デバイスとして実施できることは、当業者に明白であろう。
本発明の上で説明した実施形態は、例のみとして意図されている。添付の特許請求の範囲のみによって定義される本発明の範囲から逸脱しない代替形態、修正形態、および変形形態を、当業者によって特定の実施形態に対してもたらすことができる。