(57)【要約】本開示は、キャッシュ及び複数の独立したアレイを有するメモリのためのインタフェースを含む。一実施形態は、キャッシュ及び複数の独立したメモリアレイを有するメモリデバイスと、コントローラと、コントローラからメモリデバイスに複数のコマンドを通信するように構成されるインタフェースとを備え、このインタフェースは、複数のコマンドのうちの最初の１つがメモリデバイスによって受信されるとアクティブ化し、複数のコマンドのすべてがメモリデバイスによって実行されると非アクティブ化するように構成されるピンを含む。
2021517692.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュ及び複数の独立したメモリアレイを有するメモリデバイスと、
コントローラと、
複数のコマンドを前記コントローラから前記メモリデバイスに通信するように構成されるインタフェースと、
を備え、
前記インタフェースは、
前記複数のコマンドの最初の１つが前記メモリデバイスによって受信されるとアクティブ化し、
前記複数のコマンドのすべてが前記メモリデバイスによって実行されると非アクティブ化する、
ように構成されるピンを含む、メモリシステム。
【請求項２】
前記複数のコマンドのそれぞれ１つは、それに関連する非決定論的アクセスタイミングを有する、請求項１に記載のメモリシステム。
【請求項３】
前記複数のコマンド中のコマンドの数量は、前記メモリデバイスと関連する最大レイテンシに対応する、請求項１〜２のいずれかに記載のメモリシステム。
【請求項４】
前記メモリデバイス及び前記コントローラは、前記複数のコマンドが前記コントローラから前記メモリデバイスに発行される順序を格納するように構成されるレジスタをそれぞれ含む、請求項１〜２のいずれかに記載のメモリシステム。
【請求項５】
メモリを動作させる方法であって、
インタフェースによって、複数のコマンドをコントローラから、キャッシュ及び複数の独立したメモリアレイを有するメモリデバイスに通信することと、
前記メモリデバイスが前記複数のコマンドのうちの最初の１つを受信すると、前記インタフェースのピンによって出力される信号をアクティブ化することと、
前記メモリデバイスが前記複数のコマンドのすべてを実行すると、前記インタフェースの前記ピンによって出力される前記信号を非アクティブ化することと、
を備える、前記方法。
【請求項６】
前記方法は、前記インタフェースの前記ピンによって出力される前記信号を非アクティブ化すると、前記インタフェースによって、前記メモリデバイスから前記コントローラに前記複数のコマンドと関連するデータを出力することを含む、請求項５に記載の方法。
【請求項７】
前記データが前記コントローラに出力される順序は、前記複数のコマンドが前記コントローラから前記メモリデバイスに発行される順序に対応する、請求項６に記載の方法。
【請求項８】
前記方法は、前記メモリデバイスから前記コントローラに前記複数のコマンドと関連する前記データを出力している間、前記コントローラから前記メモリデバイスに追加の複数のコマンドを、前記インタフェースによって通信することを含む、請求項６に記載の方法。
【請求項９】
キャッシュ及び複数の独立したメモリアレイを有するメモリデバイスと、
コントローラと、
複数のコマンドを前記コントローラから前記メモリデバイスに通信するように構成されるインタフェースと、
を備え、
前記インタフェースは、
前記複数のコマンドのうちの１つのコマンドが前記複数の独立したメモリアレイのうちの１つの上で実行されるとアクティブ化し、
前記複数のコマンドのうちの１つのコマンドが前記キャッシュ上で実行されると非アクティブ化する、
ように構成されるピンを含む、メモリシステム。
【請求項１０】
前記インタフェースは、前記複数のコマンドのうちの１つのコマンドが前記複数の独立したメモリアレイのうちの１つの上で実行されると、前記コマンドの前記実行の予期されるレイテンシと関連する情報を前記コントローラに提供するように構成されるバスを含む、請求項９に記載のメモリシステム。
【請求項１１】
前記コントローラは、前記コマンドの前記実行の前記予期されるレイテンシと関連する前記情報に基づき、前記コマンドと関連するデータを取得するために前記バスの占有を再スケジュールするように構成される、請求項１０に記載のメモリシステム。
【請求項１２】
前記ピンは、前記複数のコマンドのうちの１つのコマンドが前記複数の独立したメモリアレイのうちの１つの上で実行されると、前記コマンドの前記実行の予期されるレイテンシと関連する情報を前記コントローラに提供するように構成される、請求項９〜１０のいずれかに記載のメモリシステム。
【請求項１３】
前記ピンは、前記コマンドの実行ステータスと関連する情報を前記コントローラに提供するように構成される、請求項９〜１０のいずれかに記載のメモリシステム。
【請求項１４】
メモリを動作させる方法であって、
インタフェースによって、複数のコマンドをコントローラから、キャッシュ及び複数の独立したメモリアレイを有するメモリデバイスに通信することと、
前記複数のコマンドのうちの１つのコマンドが前記複数の独立したメモリアレイのうちの１つの上で実行されると、前記インタフェースのピンによって出力される信号をアクティブ化することと、
前記複数のコマンドのうちの１つのコマンドが前記キャッシュ上で実行されると、前記インタフェースの前記ピンによって出力される前記信号を非アクティブ化することと、
を備える、前記方法。
【請求項１５】
前記方法は、前記複数のコマンドの検知コマンドが前記複数の独立したメモリアレイのうちの１つの上で実行されると、前記インタフェースによって、前記検知コマンドの前記実行の予期されるレイテンシと関連する情報を前記コントローラに提供することを含む、請求項１４に記載の方法。
【請求項１６】
前記検知コマンドの前記実行の前記予期されるレイテンシと関連する前記情報は、前記複数の独立したメモリアレイのうちの前記１つの同じ位置に実行される新規の検知コマンドを前記検知コマンドとして発行する前に待機する、前記コントローラについて最小数のクロックサイクルを示す情報を含む、請求項１５に記載の方法。
【請求項１７】
前記方法は、前記インタフェースの前記ピンによって出力される前記信号がアクティブ化されるか、非アクティブ化されるかに基づき、前記インタフェースのバスによって出力されるデータが有効であるかどうかを前記コントローラによって決定することを含む、請求項１４〜１５のいずれかに記載の方法。
【請求項１８】
キャッシュ及び複数の独立したメモリアレイを有するメモリデバイスと、
コントローラと、
複数のコマンドを前記コントローラから前記メモリデバイスに通信するように構成されるインタフェースと、
を備え、
前記インタフェースは、
前記複数のコマンドのうちの１つのコマンドが前記複数の独立したメモリアレイのうちの１つの上で実行されるとアクティブ化し、
前記複数のコマンドのうちの１つのコマンドが前記キャッシュ上で実行されると非アクティブ化する、
ように構成される第一ピン、及び
前記第一ピンがアクティブ化されている間、前記第一ピンによって出力される信号と関連する情報をストローブするように構成される第二ピン、
を含む、メモリシステム。
【請求項１９】
前記メモリデバイスは、前記複数のコマンドを、それらが実行される順序に格納するように構成されるコマンドキューを含む、請求項１８に記載のメモリシステム。
【請求項２０】
前記第一ピンは、前記コマンドキューにおける空きエントリの数量と関連する情報を前記コントローラに提供するように構成される、請求項１９に記載のメモリシステム。
【請求項２１】
前記メモリデバイスは、前記第一ピンがアクティブ化されると前記複数のコマンドを、それらが前記キューに格納される前記順序とは順不同で実行するように構成される、請求項１９に記載のメモリシステム。
【請求項２２】
メモリを動作させる方法であって、
インタフェースによって、複数のコマンドをコントローラから、キャッシュ及び複数の独立したメモリアレイを有するメモリデバイスに通信することと、
前記複数のコマンドのうちの１つのコマンドが前記複数の独立したメモリアレイのうちの１つの上で実行されると、前記インタフェースの第一ピンによって出力される信号をアクティブ化することと、
前記複数のコマンドのうちの１つのコマンドが前記キャッシュ上で実行されると、前記インタフェースの前記第一ピンによって出力される前記信号を非アクティブ化することと、
前記第一ピンがアクティブ化されている間、前記インタフェースの前記第一ピンによって出力される前記信号と関連する情報を、前記インタフェースの第二ピンを使用してストローブすることと、
を備える、前記方法。
【請求項２３】
前記インタフェースの前記第一ピンによって出力される前記信号は、前記インタフェースのバスによって出力される信号と同期している、請求項２２に記載の方法。
【請求項２４】
前記方法は、前記複数のコマンドの検知コマンドまたはプログラムコマンドが前記複数の独立したメモリアレイのうちの１つの上で実行されると、前記インタフェースの前記第一ピンによって、前記検知コマンドまたは前記プログラムコマンドの前記実行の予期されるレイテンシと関連する情報を前記コントローラに提供することを含む、請求項２２〜２３のいずれかに記載の方法。
【請求項２５】
前記方法は、前記インタフェースの前記第一ピンによって出力される前記信号がアクティブ化されると、前記コントローラによって、前記複数のコマンドの以前に実行されたコマンドと関連するデータを出力するコマンドを前記メモリデバイスに発行することを含む、請求項２２〜２３のいずれかに記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、半導体メモリ及び方法に関し、より具体的には、キャッシュ及び複数の独立したアレイを有するメモリのためのインタフェースに関する。
【背景技術】
【０００２】
メモリデバイスは、通常、コンピュータまたは他の電子デバイスにおいて内部の半導体、集積回路及び／または外部の着脱可能なデバイスとして提供される。揮発性及び不揮発性メモリを含む多くの異なる種類のメモリが存在する。揮発性メモリは、そのデータを維持するために電力を必要とする場合があり、とりわけ、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、及び同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）を含み得る。不揮発性メモリは、電力が供給されていないときに格納されたデータを保持することができ、とりわけ、ＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、相変化ランダムアクセスメモリ（ＰＣＲＡＭ）、抵抗変化メモリ（ＲＲＡＭ）、及び磁気ランダムアクセスメモリ（ＭＲＡＭ）を含み得る。
【０００３】
メモリデバイスは、このデバイスの他のメモリ（メインメモリと称されることができる）よりも小さい、及び／または高速であることができる、キャッシュメモリを含むことができる。一例として、キャッシュメモリは、ＤＲＡＭを含むことができ、メインメモリは、ＤＲＡＭ、ＮＡＮＤもしくはＮＯＲフラッシュメモリ、ディスクストレージ、またはソリッドステートドライブ（ＳＳＤ）を含むことができる。メモリデバイスは、キャッシュメモリを利用してデータをキャッシュすることができ、このキャッシュメモリは、メモリデバイスの速度及び／またはパフォーマンスを改善することができる。
【０００４】
例えば、複数のアレイ（例えば、マルチバンク）アーキテクチャを含む既存のＤＲＡＭデバイスなどの、既存のメモリデバイスのためのコントローラは、それと関連する決定論的（例えば、固定）アクセス時間を有する、プログラム（例えば、書き込み）及び検知（例えば、読み出し）コマンドなどのコマンドを発行することができることにより、コントローラは、コマンドの実行が完了する時間を認識することができ、新規のコマンドを発行することができる。ただし、そのような決定論的アクセスタイミングスキームは、コマンドがキャッシュまたはメインメモリ上で最終的に実行されるようになるかどうかによって、コマンド（またはコマンドのグループ）を実行する時間が異なる場合がある（例えば、固定されていない場合がある）ため、キャッシュメモリを含むメモリデバイスと互換性がない場合がある。
【図面の簡単な説明】
【０００５】
【図１】本開示の一実施形態によるコンピューティングシステムのブロック図を示す。
【図２】本開示の一実施形態によるメモリシステムのブロック図を示す。
【図３】本開示の一実施形態による、図２のメモリシステムのインタフェースの動作の概念的な一例を示すタイミング図である。
【図４】本開示の一実施形態によるメモリシステムのブロック図を示す。
【図５】本開示の一実施形態による、図４のメモリシステムのインタフェースの動作の概念的な一例を示すタイミング図である。
【図６】本開示の一実施形態によるメモリシステムのブロック図を示す。
【図７】本開示の一実施形態による、図６のメモリシステムのインタフェースの動作の概念的な一例を示すタイミング図である。
【図８】本開示の一実施形態による、図６のメモリシステムのインタフェースの動作のさらなる概念的な一例を示すタイミング図である。
【図９】本開示の一実施形態による、図６のメモリシステムのインタフェースの動作のさらなる概念的な一例を示すタイミング図である。
【発明を実施するための形態】
【０００６】
本開示は、キャッシュ及び複数の独立したアレイを有するメモリのためのインタフェースを含む。一実施形態は、キャッシュ及び複数の独立したメモリアレイを有するメモリデバイスと、コントローラと、コントローラからメモリデバイスに複数のコマンドを通信するように構成されるインタフェースとを備え、このインタフェースは、複数のコマンドのうちの最初の１つがメモリデバイスによって受信されるとアクティブ化し、複数のコマンドのすべてがメモリデバイスによって実行されると非アクティブ化するように構成されるピンを含む。
【０００７】
本開示の実施形態は、キャッシュ及び複数のアレイ（例えば、マルチバンク）アーキテクチャを有するメモリデバイス（例えば、インタフェースすることができる通信プロトコル）と、メモリデバイスのコントローラとの間にインタフェースを提供することができ、このインタフェースは、それと関連する非決定論的（例えば、非固定）アクセス時間を有するコマンド（例えば、プログラム及び／または検知コマンド）をコントローラが発行することを可能にする。そのようなものとして、本開示の実施形態は、キャッシュ及びマルチバンクアーキテクチャを有するメモリデバイスを動作させる際に非決定論的アクセスタイミングスキームを利用することを可能にすることによって、マルチバンクアーキテクチャを有するメモリデバイスがキャッシュメモリを有することと関連する速度及び／またはパフォーマンスの利点を達成することも可能にし得る。
【０００８】
本明細書で使用される場合、「ａ」または「ａｎ」は、何かの１つ以上を指すことができ、「複数の」は、そのようなもののうちの２つ以上を指すことができる。例えば、１つのメモリデバイスは、１つ以上のメモリデバイスを指すことができ、複数のメモリデバイスは、２つ以上のメモリデバイスを指すことができる。加えて、特に図面の参照符号に関して、本明細書で使用される場合の指示子「Ｘ」は、そのように指定された特定の特徴の１つ以上が、本開示の実施形態と共に含まれ得ることを示す。
【０００９】
本明細書の図面は、最初の一桁または複数桁が描写図面の番号に対応し、残りの桁が図面の要素または構成要素を識別するという付番規則にしたがう。異なる図面間での類似の要素または構成要素は、類似の数字を使用することによって識別され得る。例えば、１２０は、図１の要素「２０」を指し得、類似の要素は、図２の２２０として指され得る。
【００１０】
図１は、本開示の一実施形態によるコンピューティングシステム１００のブロック図を示す。図１に示されるように、コンピューティングシステム１００は、ホスト１０２と、メモリシステム１０４の形の装置とを含むことができる。本明細書で使用されるように、「装置」は、それらに限定されないが、例えば、回路（複数可）、ダイ（複数可）、モジュール（複数可）、デバイス（複数可）、またはシステム（複数可）など、様々な構造のいずれかまたは構造の組み合わせを指すことができる。さらに、図１に示される例では、メモリシステム１０４がホスト１０２の外部にあるものとして示されているが、本開示の実施形態は、そのように限定されない。例えば、いくつかの実施形態では、メモリシステム１０４は、ホスト１０２の内部にあり得る（例えば、その中に含まれ得る）。
【００１１】
ホスト１０２は、ランダムアクセスメモリ（ＲＡＭ）（本開示の実施形態を不明瞭にしないように図１には示されていない）などのメモリ、及びメモリシステム１０４と通信するために、プロセッサ及び／またはコントローラなどのメモリアクセスデバイスを含むことができる。当業者は、「プロセッサ」が１つ以上のプロセッサ、例えば、並列処理システム、１つ以上のコプロセッサなどを意図することができることを理解するであろう。ホストの例は、ラップトップコンピュータ、パーソナルコンピュータ、デジタルカメラ、デジタル記録及び再生デバイス、モバイルデバイス（例えば、スマートフォン、タブレットなど）、ＰＤＡ、メモリカードリーダ、インタフェースハブなどを含み得る。
【００１２】
ホスト１０２は、チャネルを介してメモリシステム１０４にコマンドを送信することができる。例えば、ホスト１０２は、メモリシステム１０４と通信して、動作の中でも、情報（例えば、データ）を検知し（例えば、読み出し）、プログラムし（例えば、書き込み）、そして消去することができる。物理ホストインタフェース（図１に示されない）は、メモリシステム１０４と、物理ホストインタフェースに対して互換性のあるレセプタを有するホスト１０２との間に、制御、アドレス、データ、及び他の信号をパスするためにインタフェースを設けることができる。これらの信号は、例えば、チャネル（図１に示されない）を介して、データバス及び／またはアドレスバスなどのいくつかのバス上のホスト１０２とメモリシステム１０４との間で通信され得る。
【００１３】
図１に示されるように、メモリシステム１０４は、メモリデバイス１０６、コントローラ１０８、及びインタフェース１２０を含むことができる。コントローラ１０８は、メモリデバイス１０６と通信して、動作（例えば、コマンドをホスト１０２から受信することに応答して）の中でも、情報を検知する（例えば、読み出す）、プログラムする（例えば、書き込む）、及び／または消去することができる。コントローラ１０８は、例えば、制御回路及び／またはロジック（例えば、ハードウェア、ファームウェア、及び／またはソフトウェア）を含むことができる。コントローラ１０８は、メモリデバイス１０６と同じ物理デバイス（例えば、同じダイ）上に含まれ得る、またはメモリデバイス１０６を含む物理デバイスに通信可能に結合される別の物理デバイス上に含まれ得る。一実施形態では、コントローラ１０８のコンポーネントは、複数の物理デバイス（例えば、メモリデバイス１０６と同じダイ上のいくつかのコンポーネント、及び異なるダイ、モジュールまたは基板上のいくつかのコンポーネント）にわたって分散することができる。
【００１４】
図１に示されるように、メモリデバイス１０６は、キャッシュ１１０と、複数のアレイ（例えば、マルチバンク）アーキテクチャ中の複数の独立したメモリアレイ（例えば、バンク）１１１−１、１１１−２、．．．、１１１−Ｘとを含むことができる。キャッシュ１１０及び／またはアレイ１１１−１、１１１−２、．．．、１１１−Ｘは、例えば、ＤＲＡＭのような揮発性メモリを含むことができる。しかしながら、本開示の実施形態は、特定のタイプのメモリまたはメモリデバイスに限定されない。例えば、キャッシュ１１０及び／またはアレイ１１１−１、１１１−２、．．．、１１１−Ｘは、例えば、メモリタイプの中でも、ＳＲＡＭ、フラッシュ（例えば、ＮＡＮＤフラッシュ）メモリ、ＲＲＡＭ、またはＰＣＲＡＭなどの揮発性及び／または不揮発性メモリの他のタイプを含むことができる。
【００１５】
メモリアレイ１１１−１、１１１−２、．．．、１１１−Ｘは、メモリシステム１０４に対してメインメモリを設けるメモリセルのアレイを含むことができる、またはメモリシステム１０４の全体を通じて追加のメモリもしくはストレージとして使用され得る。キャッシュ１１０を使用して、読み出しコマンド及び／または書き込みコマンドの実行中に使用されるデータをキャッシュすることができる。例えば、キャッシュ１１０は、キャッシュとして使用されるメモリセル（例えば、ＤＲＡＭセル）のアレイを含むことができ、メモリアレイ１１１−１、１１１−２、．．．、１１１−Ｘにも格納されるデータを格納するように構成され得る。キャッシュ１１０及びメモリアレイ１１１−１、１１１−２、．．．、１１１−Ｘに格納されるデータは、コントローラ１０８によってアドレス指定されることができ、コマンドの実行中にキャッシュ１１０及び／またはアレイ１１１−１、１１１−２、．．．、１１１−Ｘに位置していることができる。
【００１６】
インタフェース１２０は、実行のために、コントローラ１０８からメモリデバイス１０６にコマンド（例えば、ホスト１０２からコントローラ１０８によって受信されるコマンド）を通信することができる。例えば、インタフェース１２０は、それと関連する非決定論的（例えば、非固定）アクセス時間を有するコマンド（例えば、プログラム及び／または検知コマンド）をコントローラ１０８が発行することを可能にすることができる。インタフェース１２０の例は、本明細書でさらに説明される。
【００１７】
図１に示される実施形態は、本開示の実施形態を不明瞭にしないために、例示されない追加の回路を含むことができる。例えば、メモリデバイス１０６は、Ｉ／Ｏ回路を通じてＩ／Ｏコネクタを介して提供されるアドレス信号をラッチするアドレス回路を含むことができる。アドレス信号をロウデコーダ及びカラムデコーダによって受信して復号し、メモリアレイ１１１−１、１１１−２、．．．、１１１−Ｘにアクセスすることができる。
【００１８】
図２は、本開示の一実施形態によるメモリシステム２０４のブロック図を示す。メモリシステム２０４は、図１に関連して前述されるメモリシステム１０４の一例であり得る。例えば、メモリデバイス２０６、コントローラ２０８、キャッシュ２１０、メモリアレイ２１１−１、２１１−２、．．．、２１１−Ｘ、及びインタフェース２２０は、図１に関連して前述される、それぞれメモリデバイス１０６、コントローラ１０８、キャッシュ１１０、メモリアレイ１１１−１、１１１−２、．．．、１１１−Ｘ、及びインタフェース１２０の例であることができる。
【００１９】
インタフェース２２０は、実行のために、コントローラ２０８からメモリデバイス２０６に複数のコマンドを通信する（例えば、コマンドバス２２４を介して）ことができる。例えば、コマンドは、コントローラ２０８によってグループに発行されてもよく、これは、本明細書ではバンチと称される場合がある。図２に示される例では、コマンドのグループ（例えば、バンチ）は、プログラム（例えば、書き込み）コマンド及び／または検知（例えば、読み出し）コマンドを含むことができる。例えば、コマンドのグループは、少なくとも１つの読み出しコマンド、及び少なくとも１つの書き込みコマンドを含み得る。しかしながら、コマンドのグループは、メモリアレイ２１１−１、２１１−２、．．．、２１１−Ｘのうちのいずれか１つと関連する単一コマンドだけを含むことができる（例えば、バンチはバンクごとに多くても１つの読み出しコマンドまたは書き込みコマンドを含むことができる）。
【００２０】
コントローラ２０８によって発行される複数のコマンドのそれぞれは、それと関連する非決定論的（例えば、非固定）アクセスタイミングを有することができる（例えば、コマンドを実行するのに必要な時間はそれがキャッシュ２１０の上で実行されるか、アレイ２１１−１、２１１−２、．．．、２１１−Ｘのうちの１つの上で実行されるかに依存することができる）。グループ内のコマンドの数量（例えば、数）は、メモリデバイス２０６に関連する最大レイテンシに対応し得る。最大レイテンシは、メモリアレイ２１１−１、２１１−２、．．．、２１１−Ｘの機能を飽和させることなく（例えば、利用可能なバンクの数を飽和させることなく）、グループの第一コマンドで始まり、そのデータバッファの入力及び／または出力パスを有効にするまでに、例えば、メモリデバイス２０６が必要とする時間であり得る。このタイムスロット外の追加のコマンドをコントローラ２０８にキューイングすることができる。
【００２１】
図２に示される例では、インタフェース２２０は、本明細書ではウェイトピンと称されることができるピン２２２、コマンドバス２２４、及びデータバス２２６を含む。ウェイトピン２２２は、グループ内の第一コマンドがメモリデバイス２０６によって受信されるとアクティブ化することができ、グループ内のすべてのコマンドがメモリデバイスによって実行されると非アクティブ化することができる。例えば、ウェイトピン２２２によって出力される信号は、メモリデバイス２０６がグループの第一コマンドを受信するとアクティブ化（例えば、アサート）され、グループのすべてのコマンドが実行されると非アクティブ化（例えば、デアサート）されることができる。
【００２２】
ウェイトピン２２２（例えば、ウェイトピン２２２によって出力される信号）が非アクティブ化されると、グループの読み出しコマンドと関連するデータ（例えば、読み出しコマンドの実行中に読み出されるデータ）は、インタフェース２２０のデータバス２２６によってコントローラ２０８に出力され得る。読み出しデータがコントローラ２０８に出力される順序は、グループの読み出しコマンドがコントローラ２０８からメモリデバイス２０６に発行された順序に対応することができる（例えば、読み出しコマンドの実行中に読み出されるデータは読み出しコマンドが発行された順序で出力され得る）。例えば、図２に示されるように、メモリデバイス２０６及びコントローラ２０８は、それぞれ、レジスタ２２８及び２３０をそれぞれ含むことができ、これらのレジスタは、グループのコマンドがコントローラからメモリデバイスに発行される順序を格納することができる。メモリデバイス２０６は、レジスタ２２８（例えば、レジスタ２２８に格納されるコマンド順序）を使用して、読み出しデータを、それらのそれぞれの読み出しコマンドがコントローラ２０８によって発行されたのと同じ順序で出力することができ、コントローラ２０８は、レジスタ２３０（例えば、レジスタ２３０に格納されるコマンドの順序）を使用して、メモリデバイスから到着する読み出しデータの順序を認識することができる。
【００２３】
読み出しデータがインタフェース２２０のデータバス２２６によってコントローラ２０８に出力されている間、コントローラ２０８によって発行されるコマンドの追加の（例えば、新しい）グループは、インタフェース２２０のコマンドバス２２４によってメモリデバイス２０６に通信され得る。このコマンドのオーバーラップは、レジスタ２２８及び２３０のコンテンツをそれぞれメモリデバイス２０６及びコントローラ２０８に保存することによって達成されることができる。例えば、メモリデバイス２０６は、ウェイトピン２２２が非アクティブ化されるとレジスタ２２８のコンテンツを複製することができ、コントローラ２０８は、新しいコマンドグループのシーケンスを開始する前にレジスタ２３０のコンテンツを複製することができる。
【００２４】
図３は、本開示の一実施形態による、図２に関連して前述されるインタフェース２２０の動作の概念的な一例を示すタイミング図３３５である。例えば、図３で参照されるウェイトピン、コマンドバス、及びデータバスは、図２に関連して前述される、ウェイトピン２２２、コマンドバス２２４、及びデータバス２２６にそれぞれ対応することができる。
【００２５】
図３に示される例では、インタフェース２２０のコマンドバスは、第一グループのコマンド（例えば、コマンドＡ、Ｂ、Ｃ、Ｄ、及びＥを含む）及び第二グループのコマンド（例えば、コマンドＦ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、及びＭを含む）をコントローラ２０８からメモリデバイス２０６に通信している。図３に示される例では、コマンドＡ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、及びＭは、読み出しコマンドであることができ、コマンドＢ及びＣは、書き込みコマンドであることができる。さらに、図３に示されるように、第一グループ中のコマンドの数は、バンク機能が飽和するようなメモリデバイス２０６に関連する最大レイテンシ（ｔＭＡＸ）に対応する（例えば、それによって制限される）が、第二グループ中のコマンドの数は、利用可能なバンクの数を飽和させる。
【００２６】
図３に示されるように、第一グループの第一コマンド（例えば、コマンドＡ）をメモリデバイスが受信すると、ウェイトピンをアクティブ化する。図３に示されるように、第一グループのすべてのコマンドを実行すると、ウェイトピンを非アクティブ化し、読み出しコマンドＡ、Ｄ、及びＥのそれぞれの実行中に読み出されるデータを、それらの実行順にデータバスがコントローラに出力する。
【００２７】
図３に示されるように、読み出しコマンドＡ、Ｄ、及びＥの実行中に読み出されるデータをデータバスが出力している間、コマンドバスは、第二グループのコマンドをメモリデバイスに通信し始め、ウェイトピンは、第二グループの第一コマンド（例えば、コマンドＦ）をメモリデバイスによって受信すると、もう一度アクティブ化される。図３に示されるように、第二グループのすべてのコマンドを実行すると、ウェイトピンを非アクティブ化し、読み出しコマンドＦ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、及びＭのそれぞれの実行中に読み出されるデータを、それらの実行順にデータバスがコントローラに出力する。
【００２８】
図４は、本開示の一実施形態によるメモリシステム４０４のブロック図を示す。メモリシステム４０４は、図１に関連して前述されるメモリシステム１０４の一例であり得る。例えば、メモリデバイス４０６、コントローラ４０８、キャッシュ４１０、メモリアレイ４１１−１、４１１−２、．．．、４１１−Ｘ、及びインタフェース４２０は、それぞれ、図１に関連して前述される、メモリデバイス１０６、コントローラ１０８、キャッシュ１１０、メモリアレイ１１１−１、１１１−２、．．．、１１１−Ｘ、及びインタフェース１２０の例であることができる。
【００２９】
インタフェース４２０は、実行のために、コントローラ４０８からメモリデバイス４０６に複数のコマンドを通信する（例えば、コマンドバス４２４を介して）ことができる。例えば、コマンドは、グループ（例えば、バンチ）にコントローラ４０８によって発行されてもよい。図４に示される例では、コマンドのグループ（例えば、バンチ）は、検知（例えば、読み出し）コマンドのみを含むことができる（例えば、バンチはいかなる書き込みコマンドをも含まない場合がある）。さらに、コントローラ４０８によって発行される複数のコマンドのそれぞれは、それと関連する非決定論的（例えば、非固定）アクセスタイミングを有することができる（例えば、コマンドを実行するのに必要な時間はそれがキャッシュ４１０上で実行されるか、アレイ４１１−１、４１１−２、．．．、４１１−Ｘのうちの１つの上で実行されるかに依存する場合がある）。
【００３０】
図４に示される例では、インタフェース４２０は、本明細書ではアラートピンと称されることができるピン４４２、コマンドバス４２４、及びデータバス４２６を含む。アラートピン４４２は、グループ内の読み出しコマンドのうちの１つがアレイ（例えば、バンク）４１１−１、４１１−２、．．．、４１１−Ｘのうちの１つの上で実行されるとアクティブ化することができ、グループ内の読み出しコマンドのうちの１つがキャッシュ４１０上で実行されると非アクティブ化することができる。例えば、アラートピン４４２によって出力される信号は、グループの読み出しコマンドがアレイ４１１−１、４１１−２、．．．、４１１−Ｘのうちの１つの上で実行されるとアクティブ化され（例えば、アサートされ）、グループの読み出しコマンドがキャッシュ４１０上で実行されると非アクティブ化される（例えば、デアサートされる）ことができる。アレイ４１１−１、４１１−２、．．．、４１１−Ｘのうちの１つの上でのコマンドの実行は、本明細書では「ミス」と称されることができ、キャッシュ４１０上でのコマンドの実行は、本明細書では「ヒット」と称されることができる。そのようなものとして、アラートピン４４２は、コマンドの実行ステータス（例えば、この実行ステータスのインディケーション）と関連する情報をコントローラ４０８に提供することができる。
【００３１】
グループの読み出しコマンドと関連するデータ（例えば、読み出しコマンドの実行中に読み出されるデータ）は、インタフェース４２０のデータバス４２６によってコントローラ４０８に出力されてもよい。アラートピン４４２によって出力される信号は、データバス４２６によって出力される信号と非同期（例えば、位相ずれ）であり得、コントローラ４０８は、アラートピン４４２によって出力される信号を使用して、データバス４２６によって出力されるデータの有効性を決定し得る。例えば、コントローラ４０８は、アラートピン４４２によって出力される信号がアクティブ化されるか、非アクティブ化されるかに基づき、データバス４２６によって出力されるデータが有効であるかどうかを判定することができる。信号がアクティブ化される（例えば、ミスを示す）場合、データは無効であることができ、信号が非アクティブ化される（例えば、ヒットを示す）場合、データは有効であることができる。
【００３２】
グループの読み出しコマンドがアレイ４１１−１、４１１−２、４１１−Ｘのうちの１つの上で実行されると（例えば、ミスの場合、この場合その他の方法により、データバス４２６は無効で無用なデータをコントローラ４０８に出力する）、データバス４２６は、読み出しコマンドの実行の予期されるレイテンシに関連する情報（例えば、ヒント）をコントローラ４０８に提供することができる。コマンドの実行の予期されるレイテンシは、コマンドを実行するのにかかることが予期される時間、及び／またはコマンドが実行されているアレイ（バンクなど）が実行のために新しいコマンドを受信するために利用可能である時間を指すことができる。コマンドの実行の予期されるレイテンシに関連する情報は、例えば、コマンドが現在実行されている場合にアレイの同じ位置（例えば、アドレス）に実行される新しいコマンドを発行する前に待機する、コントローラ４０８について最小数のクロックサイクルを示す情報を含むことができる。この情報は、コマンドが実行されている間にメモリデバイス４０６によって決定される（例えば、計算される）ことができる。
【００３３】
コントローラ４０８は、コマンドの実行の予期されるレイテンシに関連する情報に基づき、読み出しコマンドと関連する（例えば、この読み出しコマンドによって読み出される）データを取得するために、データバス４２６の占有を再スケジュールする。例えば、コントローラは、読み出しコマンドの実行の予期されるレイテンシに関連する情報を使用して、データがメモリデバイス４０６からコントローラ４０８に出力されるのに利用可能であるときに、タイムスロットに対して要求されたデータを取得するためにデータバス４２６上のタイムスロットを再スケジュールすることができる。
【００３４】
図５は、本開示の一実施形態による、図４に関連して前述されるインタフェース４２０の動作の概念的な一例を示すタイミング図５４５である。例えば、図５で参照されるアラートピン、コマンドバス、及びデータバスは、図４に関連して前述されるアラートピン４４２、コマンドバス４２４、及びデータバス４２６にそれぞれ対応することができる。
【００３５】
図５に示される例では、インタフェース４２０のコマンドバスは、コントローラ４０８からメモリデバイス４０６に読み出しコマンド（例えば、読み出しコマンドＡ、Ｂ、及びＣを含む）のグループを通信している。図５に示される例では、コマンドＡは、キャッシュ４１０上で実行される（例えば、コマンドＡはヒットをもたらす）。したがって、図５に示されるように、コマンドＡの実行時にアラートピンを非アクティブ化し（例えば、非アクティブ化したままであり）、コマンドＡの実行中に読み出されるデータをデータバスがコントローラ４０８に出力する。
【００３６】
この例を続けると、次にコマンドＢをアレイ（例えば、バンク）４１１−１、４１１−２、．．．、４１１−Ｘのうちの１つの上で実行する（例えば、コマンドＢはミスをもたらす）。したがって、図５に示されるように、コマンドＢの実行時にアラートピンは、アクティブ化され、コマンドＢの実行の予期されるレイテンシに関連する情報（例えば、ヒント）は、データバスによってコントローラ４０８に出力され、コントローラ４０８がコマンドＢの実行を再スケジュールする際に使用される。
【００３７】
この例を続けると、次にコマンドＣをキャッシュ４１０上で実行する（例えば、コマンドＣはヒットをもたらす）。したがって、図５に示されるように、コマンドＣの実行時にアラートピンを非アクティブ化し、コマンドＣの実行中に読み出されるデータをデータバスによってコントローラ４０８に出力する。
【００３８】
この例を続けると、コマンドＢをもう一度実行し（例えば、その再スケジューリングに従って）、ここではキャッシュ４１０上で実行する。したがって、図５に示されるように、コマンドＢの再実行時にアラートピンを非アクティブ化し（例えば、非アクティブ化したままであり）、ここではコマンドＢの実行中に読み出されるデータを、データバスによってコントローラ４０８に出力する。
【００３９】
図６は、本開示の一実施形態によるメモリシステム６０４のブロック図を示す。メモリシステム６０４は、図１に関連して前述されるメモリシステム１０４の一例であり得る。例えば、メモリデバイス６０６、コントローラ６０８、キャッシュ６１０、メモリアレイ６１１−１、６１１−２、．．．、６１１−Ｘ、及びインタフェース６２０は、それぞれ、図１に関連して前述される、メモリデバイス１０６、コントローラ１０８、キャッシュ１１０、メモリアレイ１１１−１、１１１−２、．．．、１１１−Ｘ、及びインタフェース１２０の例であることができる。
【００４０】
インタフェース６２０は、実行のために、コントローラ６０８からメモリデバイス６０６に複数のコマンドを通信する（例えば、コマンドバス６２４を介して）ことができる。例えば、コマンドは、グループ（例えば、バンチ）にコントローラ６０８によって発行されてもよい。図６に示される例では、コマンドのグループ（例えば、バンチ）は、検知（例えば、読み出し）コマンド及び／またはプログラム（例えば、書き込み）コマンドを含むことができる。例えば、コマンドのグループは、少なくとも１つの読み出しコマンド、及び少なくとも１つの書き込みコマンドを含み得る。さらに、コントローラ６０８によって発行される複数のコマンドのそれぞれは、それと関連する非決定論的（例えば、非固定）アクセスタイミングを有することができる（例えば、コマンドを実行するのに必要な時間はそれがキャッシュ６１０上で実行されるか、アレイ６１１−１、６１１−２、．．．、６１１−Ｘのうちの１つの上で実行されるかに依存することができる）。
【００４１】
図６に示される例では、インタフェース６２０は、本明細書ではアラートピンと称されることができる第一ピン６５２、本明細書ではａｌｅｒｔ＿Ｓピンと称されることができる第二ピン６５４、コマンドバス６２４、及びデータバス６２６を含む。ａｌｅｒｔ＿Ｓピンは、図６では単一のピン（例えば、６５４）として示されるが、いくつかの実施形態では、ａｌｅｒｔ＿Ｓピンは、２つのピンを含むことができる。
【００４２】
アラートピン６５２は、グループ内のコマンドのうちの１つがアレイ（例えば、バンク）６１１−１、６１１−２、．．．、６１１−Ｘのうちの１つの上で実行されると（例えば、ミス時に）アクティブ化することができ、グループ内のコマンドのうちの１つがキャッシュ６１０上で実行されると（例えば、ヒット時に）非アクティブ化することができる。例えば、アラートピン６５２によって出力される信号は、グループのコマンドがアレイ６１１−１、６１１−２、．．．、６１１−Ｘのうちの１つの上で実行されると（例えば、ミス時に）アクティブ化され（例えば、アサートされ）、グループのコマンドがキャッシュ６１０上で実行されると（例えば、ヒット時に）非アクティブ化される（例えば、デアサートされる）ことができる。
【００４３】
グループの書き込みコマンドに関連するデータ（例えば、書き込みコマンドの実行中に書き込まれるデータ）は、インタフェース６２０のデータバス６２６によってメモリデバイス６０６に入力されることができ、グループの読み出しコマンドに関連するデータ（例えば、読み出しコマンドの実行中に読み出されるデータ）は、データバス６２６によってコントローラ６０８に出力されることができる。アラートピン６５２によって出力される信号は、データバス６２６によって出力される信号と同期し得る（例えば、同相で）。コントローラ６０８は、アラートピン６５２によって出力される信号を使用して、読み出しコマンドの場合に、データバス６２６によって出力される読み出しデータの有効性を決定する（例えば、図４に関連してコントローラ４０８について前述されるものと類似した方式で）、または書き込みコマンドの場合に、データバスによって入力されるデータについての書き込み動作の完了を決定することができる。
【００４４】
グループの読み出しまたは書き込みコマンドがアレイ６１１−１、６１１−２、６１１−Ｘのうちの１つの上で実行されると（例えば、ミスの場合）、アラートピン６５２（例えば、アラートピン６５２によって出力される信号）は、コマンドの実行の予期されるレイテンシに関連する情報（例えば、ヒント）をコントローラ６０８に提供することができる。コマンドの実行の予期されるレイテンシ、及びコマンドの実行の予期されるレイテンシに関連する情報は、図４に関連して前述される、予期されるレイテンシ及びそれに関連する情報に類似していることができる。
【００４５】
コントローラ６０８は、コマンドの実行の予期されるレイテンシに関連する情報に基づき、読み出しコマンドによって読み出されるデータを取得するために、または書き込まれるデータを次の書き込みコマンドによって書き込むために、データバス６２６の占有を再スケジュールする。例えば、コントローラは、コマンドの実行の予期されるレイテンシに関連する情報を使用して、要求されたデータをタイムスロットに取得する、または書き込むために、データがメモリデバイス６０６から出力されるために利用可能であるときに、またはメモリデバイス６０６によって書き込まれることが許容されるときに、タイムスロットをデータバス６２６上で再スケジュールすることができる。
【００４６】
ａｌｅｒｔ＿Ｓピン６５４は、アラートピン６５２がアクティブ化されている間（例えば、読み出しまたは書き込みコマンドのいずれかについてのミスの結果として）、アラートピン６５２によって出力される信号に関連する情報をストローブすることができる。例えば、ａｌｅｒｔ＿Ｓピン６５４は、コントローラ６０８がメモリデバイス６０６から出力されるデータを処理することができるように、それぞれのクロックビートでアラートピン６５２によって伝えられるデータ値を同期させる、及び／またはアライメントすることができる。
【００４７】
いくつかの実施形態では、メモリデバイス６０６は、コマンドキュー（例えば、図６に示されるコマンドキュー６５６）を含むことができる。コマンドキュー６５６は、メモリデバイス６０６によって受信されたが、まだ実行されていないグループのコマンドを、それらが実行される順序で格納することができる。そのような一実施形態では、アラートピン６５２（例えば、アラートピン６５２によって出力される信号）は、実行されたコマンドがミスまたはヒットをもたらしたかどうかを示す情報、及びミスをもたらしたコマンドの予期されるレイテンシと関連する情報に加えて、コマンドキュー６５６内の空き（例えば、利用可能な）エントリの数量に関連する（例えば、この数量を示す）情報、及びコマンドキュー６５６に追加された（例えば、挿入された）ときにその実行されたコマンドに割り当てられる識別（例えば、ＩＤ）に関連する（例えば、ＩＤを示す）情報をコントローラ６０８に提供することができる。そのような一実施形態では、コントローラ６０８は、キューイングされたコマンドレジスタ（例えば、図６に示されるキューイングされたコマンドレジスタ６６６）を含むことができ、そこでミスを生成するすべての読み出し要求は、アラートピン６５２（例えば、アラートピン６５２によって出力される信号）を介してメモリデバイス６０６によって受信される関連した識別（例えば、ＩＤ）によってタグ付けされ得る。
【００４８】
コマンドキュー６５６中の空きエントリの数量に関連する情報、及び／またはコマンドキューの次の準備サイクルは、コントローラ６０８から受信する追加の固定タイミングコマンドに応答可能なアラートピン６５２によって提供され得る。このコマンドは、本明細書では「ＣＱステータス」コマンドと称される場合がある。一部の実施形態では、ＣＱステータスコマンドに応答可能な、ミスをもたらしたコマンドの予期されるレイテンシに関連する情報をも提供することができる。
【００４９】
コマンドがコマンドキュー６５６に追加されるときにこのコマンドに割り当てられる識別は、データバス６２６によって出力されるデータが有効であるかどうかを判定するためにコントローラ６０８によって使用されることができ、例えば、コマンドがコマンドキュー６５６に追加されるときに、メモリデバイス６０６によって割り当てられる一意のＩＤを含むことができ、このＩＤは、本明細書では「割り当てられたＩＤ  ｃｕｒｒ」と称されることができる。実行されたコマンドの「割り当てられたＩＤ  ｃｕｒｒ」フィールドをすべてゼロに対して比較することにより、コントローラ６０８は、実行されたコマンドがミスまたはヒットをもたらしたかどうか、そしてコマンドがミスをもたらした（例えば、「割り当てられたＩＤ  ｃｕｒｒ」がすべてゼロに等しくない）読み出しコマンドであるかどうかを判定し、メモリデバイス６０６によって後で出力されるデータのために、キューイングされたコマンドレジスタ６６６内で受信された「割り当てられたＩＤ  ｃｕｒｒ」によって対応する読み出し要求をタグ付けすることができる。さらに、ミスをもたらした読み出しコマンドの場合、コマンドがコマンドキュー６５６に追加されたときに、このコマンドに以前に割り当てられた「割り当てられたＩＤ  ｃｕｒｒ」は、本明細書では「割り当てられたＩＤ  ｐｒｅｖ」と称されることができ、コントローラ６０８に提供されることもできる。この「割り当てられたＩＤ  ｐｒｅｖ」フィールドが提供されるときに、これは、データバス６２５によって出力されるデータが有効であるが、ミスをもたらしたコマンドに関連付けられていないことをコントローラ６０８に示すことができる。むしろ、このデータは、以前の読み出しコマンドに関連付けられており、その実行は、同様にミスをもたらし、それと関連付けられる「割り当てられたＩＤ  ｐｒｅｖ」の値を有した。そのような場合、コントローラ６０８は、このフィールドを使用して、キューイングされたコマンドレジスタ６６６中でこのコマンドを探索し、その関連したデータを受信すると、そのコマンドを削除することができる。一例として、「割り当てられたＩＤ  ｃｕｒｒ」及び「割り当てられたＩＤ  ｐｒｅｖ」フィールドは、アラートピン６５２によって出力される信号内に６ビットフィールドをそれぞれ含むことができる。
【００５０】
メモリデバイス６０６は、アラートピン６５２がアクティブ化されると（例えば、グループのコマンドのうちの１つがミスをもたらすと）、グループのコマンドを、それらがコマンドキュー６５６に格納される順序とは順不同で実行することができる。例えば、コントローラ６０８は、アラートピン６５２（例えば、アラートピン６５２によって出力される信号）がアクティブ化されると同様にミスをもたらしたグループの以前に実行された読み出しコマンドに関連するデータを出力する追加の固定タイミングコマンドを、メモリデバイス６０６に発行することができる。本明細書では「順不同バースト読み出し（ＯｏＯＢＲ）」コマンドと称されることができるこのコマンドは、コマンドキュー６５６にキューイングされた、以前に実行された読み出しコマンドのデータ（データバス６２６を介して）及び「割り当てられたＩＤ  ｐｒｅｖ」（アラートピン６５２を介して）をメモリデバイス６０６が出力することをもたらすことができる。
【００５１】
アラートピン６５２によって提供される、ミスをもたらしたコマンドの予期されるレイテンシに関連する情報は、コマンドのタイプを示す情報、及びキューイングされたコマンドの実行が完了する時間を示す情報を含むことができる。例えば、アラートピン６５２によって出力される信号は、コマンドが読み出しコマンドであるか、書き込みコマンドであるかを示す情報と、コマンドが読み出しコマンドである場合に、読み出しコマンドの長さ、読み出しコマンドと関連する（例えば、この読み出しコマンドの実行中に読み出される）データがメモリデバイス６０６から出力されるために利用可能になる時間、及び読み出しデータの出力が開始される時間を示す情報とを含むことができる。
【００５２】
一例として、コマンドのタイプを示す情報は、コマンドが読み出しコマンドであるか書き込みコマンドであるかを示す１ビットのフィールドを含むことができる。さらに、コマンドの実行が完了する時間を示す情報は、コマンドの実行が完了する時間、及びコマンドが読み出しコマンドである場合に読み出しデータの出力を開始することができる時間を示す４ビットのフィールドを含むことができる。さらに、読み出しコマンドの長さを示す情報は、読み出しデータを出力するために必要なＯｏＯＢＲコマンドの長さを示す１ビットのフィールドを含むことができ、読み出しデータが出力されるために利用可能になる時間を示す情報は、読み出しデータが出力されるために利用可能になるまでのスケーリングされた時間を取得するための倍率として使用される２ビットのフィールドを含むことができる。
【００５３】
読み出しコマンド（例えば、バースト読み出しコマンド）のシーケンスの一例では、すべてゼロの「割り当てられたＩＤ  ｃｕｒｒ」フィールドを有するアラートピン６５２によって出力される信号は、第一出力タイムフレーム上でヒットが発生したことを示すことにより、データバス６２６によって出力されるデータ値が有効であることを示すことができ、信号の残りのビットは、キューイングされたコマンドの実行が完了する時間と、その関連したデータ（存在する場合）がデータバス６２６によってメモリデバイス６０６から出力されるために利用可能になる時間とを示すレイテンシ情報であることができる。対照的に、アラートピン６５２によって出力される信号は、後でその関連したデータをコントローラ６０８が受信する時間まで、キューイングされたコマンドレジスタ６６６中のコマンドをタグ付けするためにコントローラ６０８によって使用されることができる、ゼロではない「割り当てられたＩＤ  ｃｕｒｒ」フィールドを出力することによってミスを示すことができる。
【００５４】
さらに、ミスにより、出力される有効なデータがないことから、コマンドに関連するデータバス６２６の出力タイムフレームが無用になることができる。このような場合、メモリデバイス６０６がコマンドキュー６５６に以前にキューイングされた別の読み出しコマンドの実行を完了した場合に、この出力タイムフレームを代わりに使用して、その以前のコマンドに関連するデータをデータバス６２６上に出力することができ、そのＩＤをアラートピン６５２によって出力される「割り当てられたＩＤ  ｐｒｅｖ」フィールドにタグ付けし、データバス６２６によって出力されるデータが関連付けられているコマンドをコントローラ６０８に示すことができる。次に、メモリコントローラ６０８は、この情報を使用して、キューイングされたコマンドレジスタ６６６から対応するコマンドエントリを探索して削除することができる。
【００５５】
メモリデバイス６０６が出力タイムフレーム中にデータバス６２６上に出力するデータを含まない場合、アラートピン６５２によって出力される信号は、ゼロではない「割り当てられたＩＤ  ｃｕｒｒ」フィールドと、キューイングされたコマンドの実行が完了する時間（例えば、時刻）を示すフィールドとを含むことができる。コントローラ６０８は、この時間を使用して、ＯｏＯＢＲコマンドを発行してデータバス６２６からの読み出しデータと、アラートピン６５２によって出力される信号からの関連した「割り当てられたＩＤ  ｐｒｅｖ」とを取得することができる時間をスケジュールすることができる。また、メモリコントローラ６０８は、この情報を使用して、キューイングされたコマンドレジスタ６６６から対応するコマンドエントリを探索して削除することができる。
【００５６】
読み出しまたは書き込みコマンドのグループを発行する前に、コントローラ６０８は、アラートピン６５２によって出力される信号を使用して、コマンドキュー６５６内の空き（例えば、利用可能な）エントリ（例えば、位置）の数量を決定することができる。次に、コントローラ６０８は、空きエントリの数量以下である、いくつかのコマンドを含むコマンドのグループを発行することができる。グループのコマンドの実行中、コントローラ６０８は、アラートピン６５２によって出力される情報を監視して、コマンドキュー６５６に空きエントリがあるかどうか（例えば、コマンドキュー６５６がいっぱいであるかどうか）、またそのため追加のコマンドを発行することができるかどうかを判定することができる。例えば、コマンドがミスをもたらすと、そしてデータバス６２６によって出力されるデータが有効であることを示す情報をアラートピン６５２によって出力される信号が含まないと、コマンドキュー６５６内の空きエントリの数量を減分する（例えば、減少させる）ことができ、ミスをもたらした以前の読み出しコマンドと関連するデータがＯｏＯＢＲコマンドを使用してデータバス６２６によって出力されると、キュー内の空きエントリの数量を増分する（例えば、増加させる）ことができる。増分または減分後、コマンドキュー６５６に空きエントリがある場合、コントローラ６０８は、追加のコマンドを発行することができる。
【００５７】
書き込みコマンドのグループについて、それぞれのコマンドの実行が完了するときに、コントローラ６０８に情報を返すことはできない。したがって、コントローラ６０８は、コマンドがヒットまたはミスをもたらしたかどうかを示すアラートピン６５２によって出力される情報のみを使用して、コマンドキュー６５６内の空きエントリの数量を減少させることができる。コマンドキュー６５６がいっぱいではない場合、書き込みコマンドのそれぞれがミスをもたらす可能性があることにより、コマンドキュー６５６に空き位置を必要とする場合があることから、空きエントリの数量を示すアラートピン６５２によって出力される信号に含まれる情報をコントローラ６０８によって監視して、メモリデバイス６０６に発行することができる追加の書き込みコマンドの数を決定することができる。
【００５８】
コマンドキュー６５６がいっぱいになると、コントローラ６０８は、キューイングされたコマンドの実行が完了する時間を示すアラートピン６５２によって出力される信号に含まれる情報（例えば、フィールド）を使用して、キュー内の位置が利用可能になる（例えば、キューイングされたコマンドの実行が完了すると）時間、または利用可能になることができる（例えば、関連データを回復するＯｏＯＢＲコマンドが完了すると）時間を決定することができ、その結果、追加のコマンドが発行されることができる時間を決定することができる。さらに、コントローラ６０８は、ＣＱステータスコマンドをも発行して、コマンドキュー６５６内の空きエントリの更新された数量を取得し、この情報を使用して、追加のコマンドを発行することができるかどうかを、そして発行することができる追加のコマンド数を決定することができる。
【００５９】
図７は、本開示の一実施形態による、図６に関連して前述されるインタフェース６２０の動作の概念的な一例を示すタイミング図７６０である。例えば、図７で参照されるアラートピン、コマンドバス、及びデータバスは、図６に関連して前述される、アラートピン６５２、コマンドバス６２４、及びデータバス６２６にそれぞれ対応することができる。
【００６０】
図７に示される例では、インタフェース６２０のコマンドバスは、コントローラ６０８からメモリデバイス６０６に読み出しコマンド（例えば、読み出しコマンドＡ、Ｂ、及びＣを含む）のグループを通信している。図７に示される例では、コマンドＡは、キャッシュ６１０上で実行される（例えば、コマンドＡはヒットをもたらす）。したがって、図７に示されるように、コマンドＡの実行時にアラートピンを非アクティブ化し（例えば、非アクティブ化したままであり）、コマンドＡの実行中に読み出されるデータをデータバスがコントローラ６０８に出力する。
【００６１】
この例を続けると、次にコマンドＢは、アレイ（例えば、バンク）６１１−１、６１１−２、．．．、６１１−Ｘのうちの１つの上で実行される（例えば、コマンドＢはミスをもたらす）。したがって、アラートピンは、コマンドＢの実行時にアクティブ化され、コマンドＢの実行の予期されるレイテンシに関連する情報（例えば、ヒント）は、図７に示されるように、アラートピンによって（例えば、アラートピンによって出力される信号によって）コントローラ６０８に提供され、コントローラ６０８がコマンドＢの実行を再スケジュールする際に使用される。
【００６２】
この例を続けると、次にコマンドＣは、キャッシュ６１０上で実行される（例えば、コマンドＣはヒットをもたらす）。したがって、図７に示されるように、コマンドＣの実行時にアラートピンを非アクティブ化し、コマンドＣの実行中に読み出されるデータをデータバスがコントローラ６０８に出力する。
【００６３】
この例を続けると、コマンドＢをもう一度実行し（例えば、その再スケジューリングに従って）、ここではキャッシュ６１０上で実行する。したがって、図７に示されるように、コマンドＢの再実行時にアラートピンを非アクティブ化し（例えば、非アクティブ化したままであり）、ここではコマンドＢの実行中に読み出されるデータを、データバスがコントローラ６０８に出力する。
【００６４】
図８は、本開示の一実施形態による、図６に関連して前述されるインタフェース６２０の動作の追加の概念的な一例を示すタイミング図８６５である。例えば、図８で参照されるアラートピン、コマンドバス、及びデータバスは、図６に関連して前述される、アラートピン６５２、コマンドバス６２４、及びデータバス６２６にそれぞれ対応することができる。
【００６５】
図８に示される例では、インタフェース６２０のコマンドバスは、コントローラ６０８からメモリデバイス６０６に書き込みコマンド（例えば、書き込みコマンドＡ、Ｂ、Ｃ、及びＤを含む）のグループを通信している。図８に示される例では、コマンドＡは、キャッシュ６１０上で実行される（例えば、コマンドＡはヒットをもたらす）。したがって、図８に示されるように、コマンドＡの実行時にアラートピンを非アクティブ化し（例えば、非アクティブ化したままであり）、コマンドＡの実行中に書き込まれるデータをデータバスがメモリデバイス６０６に入力する。
【００６６】
この例を続けると、次にコマンドＢは、アレイ（例えば、バンク）６１１−１、６１１−２、．．．、６１１−Ｘのうちの１つの上で実行される（例えば、コマンドＢはミスをもたらす）。したがって、アラートピンは、コマンドＢの実行時にアクティブ化され、コマンドＢの実行の予期されるレイテンシに関連する情報（例えば、ヒント）は、図８に示されるように、アラートピンによって（例えば、アラートピンによって出力される信号によって）コントローラ６０８に提供される。コントローラ６０８は、この情報を使用して、コマンドＢが実行されているバンク上で実行される次のコマンド（例えば、コマンドＤ）をスケジュールすることができる。さらに、コマンドＢの実行中に書き込まれるデータは、図８に示されるように、データバスによってメモリデバイス６０６に入力される。
【００６７】
この例を続けると、次にコマンドＣは、キャッシュ６１０上で実行される（例えば、コマンドＣはヒットをもたらす）。したがって、図８に示されるように、コマンドＣの実行時にアラートピンを非アクティブ化し、コマンドＣの実行中に書き込まれるデータをデータバスがメモリデバイス６０６に入力する。
【００６８】
この例を続けると、次にコマンドＤは、コマンドＢが実行された同じバンク６１１−１、６１１−２、．．．、６１１−Ｘの上で実行される（例えば、コマンドＤはミスをもたらす）。したがって、図８に示されるように、コマンドＤの実行時にアラートピンをアクティブ化し、コマンドＤの実行中に書き込まれるデータをデータバスがメモリデバイス６０６に入力する。
【００６９】
図９は、本開示の一実施形態による、図６に関連して前述されるインタフェース６２０の動作の追加の概念的な一例を示すタイミング図９７０である。例えば、図９で参照されるアラートピン、コマンドバス、及びデータバスは、図６に関連して前述される、アラートピン６５２、コマンドバス６２４、及びデータバス６２６にそれぞれ対応することができる。さらに、図９に示される例は、メモリデバイス６０６がコマンドキュー（例えば、図６に関連して前述されるコマンドキュー６５６）を含む一実施形態に適用することができる。
【００７０】
図９に示される例では、インタフェース６２０のコマンドバスは、コントローラ６０８からメモリデバイス６０６に読み出しコマンド（例えば、読み出しコマンドＡ、Ｂ、及びＣを含む）のグループを通信している。図９に示される例では、コマンドＡは、キャッシュ６１０上で実行される（例えば、コマンドＡはヒットをもたらす）。したがって、図９に示されるように、コマンドＡの実行時にアラートピンを非アクティブ化し（例えば、非アクティブ化したままであり）、コマンドＡの実行中に読み出されるデータをデータバスがメモリデバイス６０６に出力する。
【００７１】
この例を続けると、コマンドＢは、アレイ（例えば、バンク）６１１−１、６１１−２、．．．、６１１−Ｘのうちの１つの上で実行される（例えば、コマンドＢはミスをもたらす）。したがって、アラートピンは、コマンドＢの実行時にアクティブ化され、コマンドＢがコマンドキュー６５６に追加されるときにこのコマンドＢに割り当てられる識別（例えば、割り当てられたＩＤ  ｃｕｒｒ）に関連付けられる情報は、図９に示されるように、アラートピンによって（例えば、アラートピンによって出力される信号によって）コントローラ６０８に提供され、コントローラ６０８がコマンドＢの実行を順不同で完了する際に使用される。さらに、図９に示されるように、ミスをもたらした、以前に発行された読み出しコマンド（例えば、コマンドＸ）に以前に割り当てられた識別（例えば、割り当てられたＩＤ  ｐｒｅｖ）に関連する情報も、アラートピンによってコントローラ６０８に提供され、コマンドＸの実行中に読み出されたデータは、データバスによってコントローラ６０８に出力される。
【００７２】
この例を続けると、コマンドＣは、アレイ（例えば、バンク）６１１−１、６１１−２、．．．、６１１−Ｘのうちの１つの上で実行される（例えば、コマンドＣはミスをもたらす）。したがって、アラートピンは、コマンドＣの実行時にアクティブ化され（例えば、アクティブ化されたままであり）、コマンドＣがコマンドキュー６５６に追加されたときにこのコマンドＣに割り当てられる識別（例えば、ＩＤ）に関連付けられる情報は、図９に示されるように、アラートピンによって（例えば、アラートピンによって出力される信号によって）コントローラ６０８に提供され、コントローラ６０８がコマンドＣの実行を順不同で完了する際に使用される。さらに、以前の読み出しコマンドＢの実行の予期されるレイテンシに関連する情報は、図９に示されるように、アラートピンによって（例えば、アラートピンによって出力される信号によって）コントローラ６０８に提供され、コントローラ６０８がコマンドＢの実行を順不同バースト読み出し（ＯｏＯＢＲ）コマンドとして再スケジュールする際に使用される。一方、図９に示されるように、データは、データバスによってコントローラ６０８に出力されない。
【００７３】
この例を続けると、図９に示されるように、次にコマンドＢに対してＯｏＯＢＲコマンドが発行された結果、キャッシュヒットをもたらす。したがって、図９に示されるように、アラートピンを非アクティブ化し、コマンドＢがコマンドキュー６５６に追加されたときにこのコマンドＢに割り当てられた識別（例えば、ここでは、割り当てられたＩＤ  ｐｒｅｖである）に関連付けられた情報をアラートピンが出力し、ここでは、コマンドＢの実行中に読み出されるデータをデータバスがコントローラ６０８に出力する。
【００７４】
特定の実施形態が本明細書で例示及び説明されてきたが、当業者は、同じ結果を達成するように推測される配置構成が、示された特定の実施形態に置き換えられ得ることを認識するであろう。この開示は、本開示の実施形態の適応または変形を網羅することを意図している。上記の説明は、例示的になされたものであり、限定的になされたものではないことが理解されるべきである。上記の実施形態と、本明細書に具体的に説明されていない他の実施形態との組み合わせは、上記の説明を考察すれば当業者にとって明らかとなるであろう。本開示の実施形態の範囲は、上記の構造及び方法が使用される他の用途を含む。したがって、本開示の実施形態の範囲は、添付された特許請求の範囲、ならびにこのような特許請求の範囲によって権利が与えられる均等物の全範囲を参照して定められるべきである。
【００７５】
前述の詳細な説明では、本開示を簡素化するために、単一の実施形態にいくつかの特徴をまとめている。本開示の方法は、開示された本開示の実施形態が、各請求項に明示的に記載されたものよりも多くの特徴を使用する必要があるという意図を反映したものとして解釈されるべきではない。むしろ、以下の特許請求の範囲が反映するように、発明の主題は、単一の開示された実施形態の全ての特徴よりも少ないところにある。したがって、以下の特許請求の範囲は、各請求項が別個の実施形態として独自に存在する状態で、本明細書によって発明を実施するための形態に組み込まれる。
【図１】
2021517692.tif 000003
【図２】
2021517692.tif 000004
【図３】
2021517692.tif 000005
【図４】
2021517692.tif 000006
【図５】
2021517692.tif 000007
【図６】
2021517692.tif 000008
【図７】
2021517692.tif 000009
【図８】
2021517692.tif 000010
【図９】
2021517692.tif 000011
【手続補正書】
【提出日】令和2年11月11日(2020.11.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
キャッシュ及び複数の独立したメモリアレイを有するメモリデバイスと、
コントローラと、
複数のコマンドを前記コントローラから前記メモリデバイスに通信するように構成されるインタフェースと、
を備え、
前記インタフェースは、
前記複数のコマンドの最初の１つが前記メモリデバイスによって受信されるとアクティブ化し、
前記複数のコマンドのすべてが前記メモリデバイスによって実行されると非アクティブ化する、
ように構成されるピンを含む、メモリシステム。
【請求項２】
前記複数のコマンドのそれぞれ１つは、それに関連する非決定論的アクセスタイミングを有する、請求項１に記載のメモリシステム。
【請求項３】
前記複数のコマンド中のコマンドの数量は、前記メモリデバイスと関連する最大レイテンシに対応する、請求項１〜２のいずれかに記載のメモリシステム。
【請求項４】
前記メモリデバイス及び前記コントローラは、前記複数のコマンドが前記コントローラから前記メモリデバイスに発行される順序を格納するように構成されるレジスタをそれぞれ含む、請求項１〜２のいずれかに記載のメモリシステム。
【請求項５】
前記インタフェースは、前記複数のコマンドのうちの１つのコマンドが前記複数の独立したメモリアレイのうちの１つの上で実行されると、前記コマンドの前記実行の予期されるレイテンシと関連する情報を前記コントローラに提供するように構成されるバスを含む、請求項１に記載のメモリシステム。
【請求項６】
前記コントローラは、前記コマンドの前記実行の前記予期されるレイテンシと関連する前記情報に基づき、前記コマンドと関連するデータを取得するために前記バスの占有を再スケジュールするように構成される、請求項５に記載のメモリシステム。
【請求項７】
前記ピンは、前記複数のコマンドのうちの１つのコマンドが前記複数の独立したメモリアレイのうちの１つの上で実行されると、前記コマンドの前記実行の予期されるレイテンシと関連する情報を前記コントローラに提供するように構成される、請求項１に記載のメモリシステム。
【請求項８】
前記ピンは、前記コマンドの実行ステータスと関連する情報を前記コントローラに提供するように構成される、請求項１に記載のメモリシステム。
【請求項９】
メモリを動作させる方法であって、
インタフェースによって、複数のコマンドをコントローラから、キャッシュ及び複数の独立したメモリアレイを有するメモリデバイスに通信することと、
前記メモリデバイスが前記複数のコマンドのうちの最初の１つを受信すると、前記インタフェースのピンによって出力される信号をアクティブ化することと、
前記メモリデバイスが前記複数のコマンドのすべてを実行すると、前記インタフェースの前記ピンによって出力される前記信号を非アクティブ化することと、
を備える、前記方法。
【請求項１０】
前記方法は、前記インタフェースの前記ピンによって出力される前記信号を非アクティブ化すると、前記インタフェースによって、前記メモリデバイスから前記コントローラに前記複数のコマンドと関連するデータを出力することを含む、請求項９に記載の方法。
【請求項１１】
前記データが前記コントローラに出力される順序は、前記複数のコマンドが前記コントローラから前記メモリデバイスに発行される順序に対応する、請求項１０に記載の方法。
【請求項１２】
前記方法は、前記メモリデバイスから前記コントローラに前記複数のコマンドと関連する前記データを出力している間、前記コントローラから前記メモリデバイスに追加の複数のコマンドを、前記インタフェースによって通信することを含む、請求項１０に記載の方法。
【請求項１３】
前記方法は、前記複数のコマンドの検知コマンドが前記複数の独立したメモリアレイのうちの１つの上で実行されると、前記インタフェースによって、前記検知コマンドの前記実行の予期されるレイテンシと関連する情報を前記コントローラに提供することを含む、請求項９に記載の方法。
【請求項１４】
前記検知コマンドの前記実行の前記予期されるレイテンシと関連する前記情報は、前記複数の独立したメモリアレイのうちの前記１つの同じ位置に実行される新規の検知コマンドを前記検知コマンドとして発行する前に待機する、前記コントローラについて最小数のクロックサイクルを示す情報を含む、請求項１３に記載の方法。
【請求項１５】
前記方法は、前記インタフェースの前記ピンによって出力される前記信号がアクティブ化されるか、非アクティブ化されるかに基づき、前記インタフェースのバスによって出力されるデータが有効であるかどうかを前記コントローラによって決定することを含む、請求項９に記載の方法。
【国際調査報告】
2021517692.tif 000012
2021517692.tif 000013
2021517692.tif 000014
2021517692.tif 000015
2021517692.tif 000016