(57)【特許請求の範囲】
【請求項１】
バックエンドチャンネル及びフロントエンドチャンネルを備えたメモリコントローラであって、
前記バックエンドチャンネルは、
コマンドを保持するように構成されたコマンドキューと、
前記キュー内の少なくとも複数のコマンドを変更し、かつ、前記変更されたコマンドを実行するように構成された回路であって、少なくとも複数のコマンドを変更するように構成された前記回路は、前記キュー内の複数のコマンドが１つのコマンドに組み合わされ得る場合に前記キュー内の前記複数のコマンドを変更するように構成された回路を備え、前記キュー内の複数のコマンドが１つのコマンドに組み合わされ得る場合に前記キュー内の前記複数のコマンドを変更するように構成された前記回路は、部分的に重複している複数のコマンドを１つのコマンドに組み合わせるように構成された回路を備える、回路と、
を含み、
前記フロントエンドチャンネルは、
ホストからコマンドを受信し、前記バックエンドチャンネルにコマンドを送信し、かつ、複数の機能のグループの中から選択された幾つかの機能を実行するように構成された回路を含み、
前記複数の機能のグループは、
前記コマンドが前記バックエンドチャンネルに送信される順序を変更することと、
前記ホストから受信された複数の組み合わせ可能なコマンドを１つのコマンドに組み合わせることと、
前記ホストから受信されたコマンドであって、前記ホストから受信された他のコマンドによって上書きされることになるコマンドを、消去することと、
を含む、メモリコントローラ。
【請求項２】
少なくとも複数のコマンドを変更するように構成された前記回路は、前記複数のコマンドが前記キュー内に保持されながら前記複数のコマンドを変更するように構成された回路を備える、請求項１記載のメモリコントローラ。
【請求項３】
少なくとも複数のコマンドを変更するように構成された前記回路は、前記キュー内のコマンドが前記キュー内に保持されている順序を変えるように構成された回路を備える、請求項２記載のメモリコントローラ。
【請求項４】
前記変更されたコマンドを実行するように構成された前記回路は、前記変えられた順序に従って前記キュー内のコマンドを実行するように構成された回路を備える、請求項３記載のメモリコントローラ。
【請求項５】
前記バックエンドチャンネルの前記回路は、前記キュー内のコマンドが変更されることが可能かどうかを判定するようにさらに構成されている、請求項１乃至請求項４のうちいずれか１項記載のメモリコントローラ。
【請求項６】
少なくとも複数のコマンドを変更するように構成された前記回路は、前記キュー内の前記複数のコマンドが前記キュー内の別のコマンドによって上書きされる場合に前記キュー内の前記複数のコマンドを変更するように構成された回路、を備える、請求項５記載のメモリコントローラ。
【請求項７】
前記キュー内の複数のコマンドが１つのコマンドに組み合わされ得る場合に前記キュー内の前記複数のコマンドを変更するように構成された前記回路は、前記キュー内の複数のコマンドが単一コマンドに組み合わされ得る場合に前記キュー内の前記複数のコマンドを変更するように構成された回路を備える、請求項６記載のメモリコントローラ。
【請求項８】
前記キュー内の複数のコマンドが１つのコマンドに組み合わされ得る場合に前記キュー内の前記複数のコマンドを変更するように構成された前記回路は、連続する複数のコマンドを１つのコマンドに組み合わせるように構成された回路、を備える、請求項７記載のメモリコントローラ。
【請求項９】
前記キュー内の複数のコマンドが前記キュー内の別のコマンドによって上書きされる場合に前記キュー内の前記複数のコマンドを変更するように構成された前記回路は、前記キュー内のコマンドが前記キュー内の他のコマンドによって上書きされるかどうかを判定し、かつ、前記他のコマンドによって上書きされる前記コマンドを消去する、ように構成された回路を備える、請求項８記載のメモリコントローラ。
【請求項１０】
バックエンドチャンネル及びフロントエンドチャンネルを備えたメモリコントローラであって、
前記バックエンドチャンネルは、
複数のコマンドを保持するように構成されたコマンドキューと、
複数の機能の第１のグループの中から選択された幾つかの機能を実行するように構成されたプロセッサと、
を含み、
前記複数の機能の第１のグループは、
コマンドが前記キュー内に保持される順序を変更することと、
前記キュー内の複数の組み合わせ可能なコマンドを１つのコマンドに組み合わせることであって、前記複数の組み合わせ可能なコマンドは、部分的に重複している複数のコマンドを含む、ことと、
前記キュー内のコマンドであって、前記キュー内の他のコマンドによって上書きされることになるコマンドを、消去することと、
を含み、
前記フロントエンドチャンネルは、
ホストから複数のコマンドを受信し、かつ、前記バックエンドチャンネルに複数のコマンドを送信するように構成されたコマンドディスパッチャと、
複数の機能の第２のグループの中から選択された幾つかの機能を実行するように構成されたコマンドプロセッサと、
を含み、
前記複数の機能の第２のグループは、
前記コマンドディスパッチャが前記バックエンドチャンネルにコマンドを送信する順序を変更することと、
前記コマンドディスパッチャが前記ホストから受信した複数の組み合わせ可能なコマンドを１つのコマンドに組み合わせることと、
前記コマンドディスパッチャが前記ホストから受信したコマンドであって、前記コマンドディスパッチャが前記ホストから受信した他のコマンドによって上書きされることになるコマンドを、消去することと、
を含む、メモリコントローラ。
【請求項１１】
前記キューは、前記コマンドディスパッチャが前記コマンドを前記バックエンドチャンネルに送信する順序でコマンドを保持するように構成されている、請求項１０記載のメモリコントローラ。
【請求項１２】
前記キューは、前記コマンドディスパッチャによって保持され得るコマンドの数と等しい数のコマンドを保持するように構成されている、請求項１０記載のメモリコントローラ。
【請求項１３】
前記コマンドディスパッチャは、前記コマンドディスパッチャが前記ホストから前記コマンドを受信する順序で前記コマンドを前記バックエンドチャンネルへ送信するように構成されている、請求項１０記載のメモリコントローラ。
【請求項１４】
前記コマンドプロセッサは、前記コマンドディスパッチャが前記ホストからコマンドを受信することができないとき、前記複数の機能の第２のグループの中から選択された前記幾つかの機能を実行するように構成されている、請求項１０記載のメモリコントローラ。
【請求項１５】
前記コマンドプロセッサは、前記バックエンドチャンネルの前記プロセッサによって実行される前記複数の機能の第１のグループ内の機能が、前記コマンドディスパッチャ内に保持されたコマンドで実行される予定がないかどうかを判定し、かつ、前記コマンドディスパッチャ内に保持されたコマンドであって、該コマンドで、前記バックエンドチャンネルの前記プロセッサによって実行される前記複数の機能の第１のグループ内の機能を実行させる予定のないコマンドを、マーク付けするように構成されており、
前記バックエンドチャンネルの前記プロセッサは、マーク付けされたコマンドで、前記複数の機能の第１のグループ内の前記機能を実行しないように構成されている、請求項１１記載のメモリコントローラ。
【請求項１６】
複数のバックエンドチャンネル及びフロントエンドチャンネルを備えたメモリコントローラであって、
前記複数のバックエンドチャンネルは、
複数のコマンドを保持するように構成されたコマンドキューと、
前記コマンドキュー内のコマンドを変更し、かつ、前記変更されたコマンドが前記キュー内に保持される順序に従って前記変更されたコマンドを実行するように構成された、プロセッサと、
を含み、
前記コマンドを変更することが、複数の機能の第１のグループの中から選択された幾つかの機能を実行することを含み、
前記複数の機能の第１のグループは、
コマンドが前記キュー内に保持される順序を変更することと、
前記キュー内の部分的に重複しているコマンドを１つのコマンドに組み合わせることと、
前記キュー内の連続しているコマンドを１つのコマンドに組み合わせることと、
前記キュー内のコマンドであって、前記キュー内の他のコマンドによって上書きされることになるコマンドを、消去することと、
を含み、
前記フロントエンドチャンネルは、ホストからコマンドを受信し、前記バックエントチャンネルにコマンドを送信し、かつ、複数の機能の第２のグループの中から選択された幾つかの機能を実行するように構成された回路を含み、
前記複数の機能の第２のグループは、
前記コマンドが前記バックエントチャンネルに送信される順序を変更することと、
前記ホストから受信された複数の組み合わせ可能なコマンドを１つのコマンドに組み合わせることと、
前記ホストから受信されたコマンドであって、前記ホストから受信された他のコマンドによって上書きされることになるコマンドを、消去することと、
を含む、メモリコントローラ。
【請求項１７】
複数のコマンドを保持するように構成された前記コマンドキューが、複数の読み出しコマンドを保持するように構成されたコマンドキューを備え、前記複数の読み出しコマンドが、以前の読み出しコマンドに応じて以前に読み出されたメモリアレイにおける複数のメモリセルに格納されたデータを読み出すためのコマンドを含み、前記メモリコントローラが、前記アレイにアクセスすることなく、以前に読み出されたデータを読み出すように前記コマンドを実行するようにさらに構成されている、請求項１６記載のメモリコントローラ。
【請求項１８】
前記複数のバックエンドチャンネルが、前記以前に読み出されたデータを保持するように構成されたデータバッファを含み、前記プロセッサが、前記データバッファにアクセスすることにより、前記複数の読み出しコマンドのうちの少なくとも１つの少なくとも一部を実行するように構成されている、請求項１７記載のメモリコントローラ。
【請求項１９】
前記フロントエンドチャンネルが、前記複数のバックエンドチャンネルに対して連結されたフロントエンド・ダイレクトメモリアクセス（ＤＭＡ）を含み、
前記複数のバックエンドチャンネルがチャンネルＤＭＡを含み、
前記フロントエンドＤＭＡが前記チャンネルＤＭＡに対して連結されている、請求項１８記載のメモリコントローラ。
【請求項２０】
メモリデバイスを動作させる方法であって、
バックエンドチャンネルのキュー内に保持された複数のコマンドを変更することであって、該複数のコマンドを変更することは、複数の機能の第１のグループの中から選択された幾つかの機能を実行することを含む、ことと、
前記変更されたコマンドが前記キュー内に保持される順序に従って、前記変更されたコマンドを実行することと、
フロントエンドチャンネルの回路によって、ホストからコマンドを受信することと、
前記フロントエンドチャンネルの前記回路によって、前記バックエンドチャンネルにコマンドを送信することと、
前記フロントエンドチャンネルの前記回路によって、複数の機能の第２のグループの中から選択された幾つかの機能を実行することと、
を含み、
前記複数の機能の第１のグループは、
コマンドが前記キュー内に保持される順序を変更することと、
前記キュー内の複数の組み合わせ可能なコマンドを１つのコマンドに組み合わせることとであって、前記複数の組み合わせ可能なコマンドは、部分的に重複している複数のコマンドを含む、ことと、
前記キュー内のコマンドであって、前記キュー内の他のコマンドによって上書きされることになるコマンドを、消去することと、
を含み、
前記複数の機能の第２のグループは、
前記コマンドが前記バックエントチャンネルに送信される順序を変更することと、
前記ホストから受信された複数の組み合わせ可能なコマンドを１つのコマンドに組み合わせることと、
前記ホストから受信されたコマンドであって、前記ホストから受信された他のコマンドによって上書きされることになるコマンドを、消去することと、
を含む、方法。
【請求項２１】
前記キュー内の複数の組み合わせ可能なコマンドを１つのコマンドに組み合わせることが、前記キュー内の複数の組み合わせ可能なコマンドを単一コマンドに組み合わせることを含む、請求項２０記載の方法。
【請求項２２】
前記複数の組み合わせ可能なコマンドが、連続している複数のコマンドを含む、請求項２１記載の方法。
【請求項２３】
前記変更されたコマンドが実行されている間に、前記キュー内に追加のコマンドを受信することと、
前記変更されたコマンドが実行されている間に、前記追加のコマンドを変更することと、
を含む、請求項２０乃至請求項２２のうちいずれか１項記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、半導体メモリ装置、方法及びシステムに関し、より具体的にはコマンドの変更に関する。
【背景技術】
【０００２】
メモリ装置は、通常、コンピュータ又は他の電子機器において内部の半導体集積回路として設けられている。揮発性及び不揮発性メモリを含む多くの様々な種類のメモリがある。揮発性メモリは、そのデータを保持するために電力を必要とすることができ、数ある中でも、ランダム・アクセス・メモリ（ＲＡＭ）、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、及び、同期型ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ）を含むことができる。不揮発性メモリは、無電力時に格納された情報を保持することによって永続的データを提供することができ、数ある中でも、ＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、読み出し専用メモリ（ＲＯＭ）、電気的消去書き込み可能ＲＯＭ（ＥＥＰＲＯＭ）、消去書き込み可能ＲＯＭ（ＥＰＲＯＭ）、及び、相変化ランダム・アクセス・メモリ（ＰＣＲＡＭ）を含むことができる。
【０００３】
メモリ装置は、ソリッドステート・ドライブ（ＳＳＤ）を形成するように組み合わせられることができる。ＳＳＤは、様々な他の種類の不揮発性及び揮発性メモリの中でも、例えばＮＡＮＤフラッシュメモリ及びＮＯＲフラッシュメモリ等の不揮発性メモリを含むことができ、及び／又は、例えばＤＲＡＭ及びＳＲＡＭ等の揮発性メモリを含むことができる。
【０００４】
ＳＳＤは、例えば、性能、大きさ、重さ、耐久性、動作温度範囲、及び消費電力の観点でハードドライブに勝る利点を有する場合があることから、コンピュータ用の主記憶装置としてハードディスク・ドライブに取って代わるように使用されてもよい。例えば、ＳＳＤは、磁気ディスクドライブと関連するシーク時間、待ち時間、及び他の電気機械的遅延を改善し得るそれらの可動部品の欠如のため、磁気ディスクドライブと比較したとき優れた性能を有する場合がある。ＳＳＤ製造業者は、内部バッテリー供給を使用しなくてもよく、従ってドライブをより多用途且つ小型にすることができるフラッシュＳＳＤを作り出すために不揮発性フラッシュメモリを使用する場合がある。
【０００５】
ＳＳＤは、例えば複数のメモリチップ等、複数のメモリ装置を含んでもよい（本願明細書で用いられる場合、「複数の」何かは、１つ以上のそのようなものを参照する可能性があり、例えば、複数のメモリ装置は、１つ以上のメモリ装置を参照する可能性がある）。当業者が理解するように、メモリチップは、複数のダイを含んでもよい。各ダイは、複数のメモリアレイとその上の周辺回路とを含んでもよい。メモリアレイは、各プレーンがメモリセルの複数の物理ブロックを含んでいる複数のプレーンを含んでもよい。各物理ブロックは、データの複数のセクタを格納することができるメモリセルの複数のページを含んでもよい。
【０００６】
数ある中でも、プログラムコマンド、読み出しコマンド、及び消去コマンド等のコマンドは、ＳＳＤの動作中に使用される場合がある。例えば書き込み等の書き込みコマンドは、ソリッドステート・ドライブ上にデータをプログラムするように使用されてもよく、読み出しコマンドは、ソリッドステート・ドライブ上のデータを読み出すように使用されてもよく、消去コマンドは、ソリッドステート・ドライブ上のデータを消去するように使用されてもよい。
【図面の簡単な説明】
【０００７】
【図１】本開示の１つ以上の実施態様にかかるメモリシステムのブロック図である。
【図２】本開示の１つ以上の実施態様に従って動作されることができるメモリコントローラの機能ブロック図である。
【図３】本開示の１つ以上の実施態様にかかるチャンネル・コマンドキューのブロック図である。
【図４Ａ】本開示の１つ以上の実施態様にかかるチャンネル・コマンドキューのブロック図である。
【図４Ｂ】本開示の１つ以上の実施態様にかかるチャンネル・コマンドキューのブロック図である。
【発明を実施するための形態】
【０００８】
本開示は、コマンドを変更するための方法、装置、モジュール、及びシステムを含む。１つの装置実施態様は、コマンドを保持するように構成されたコマンドキューを含むチャンネルを含むメモリコントローラと、キュー内の少なくとも複数のコマンドを変更し且つ変更されたコマンドを実行するように構成された電気回路とを含む。
【０００９】
以下の本開示の詳細な説明において、本願明細書の一部を形成し且つ本開示の１つ以上の実施態様がどのように実践される場合があるかが例として示される添付図面に対して参照がなされる。これらの実施態様は、当業者が本開示の実施態様を実践することが可能なように十分詳細に記載されるが、当然のことながら、他の実施態様が利用されてもよく、そのプロセス、電気的及び／又は構造的変更が本開示の範囲から逸脱することなくなされてもよい。本願明細書で使用される場合、指示子「Ｎ」及び「Ｍ」は、特に図面における参照符号に関して、そのように指定された複数の特定の機能を本開示の１つ以上の実施態様に含むことができることを示している。指示子は、同一の又は異なる数の特定の機能を表すことができる。
【００１０】
本願明細書における図面は、最初の桁（単数または複数）が図面番号に対応し且つ残りの桁が図面中の要素又は部品を識別する符号付け慣習に従う。異なる図面間の同様の要素又は部品は、同様の桁の使用によって識別される場合がある。例えば、１０１は、図１における要素「０１」のことを指す場合があり、同様の要素が図２における２０１のことを指す場合がある。理解されるように、本願明細書における様々な実施態様において示される要素は、本開示の複数の追加の実施態様を提供するように、追加、交換、及び／又は、除去されることができる。さらに、理解されるように、図面において設けられる要素の比率及び相対的な大きさは、本発明の実施態様を説明することを目的としており、限定的な意味にとられるべきではない。
【００１１】
図１は、本開示の１つ以上の実施態様にかかるメモリシステム１２０のブロック図を図示している。１つ以上の実施態様において、メモリシステム１２０は、ソリッドステート・ドライブとすることができる。図１の実施態様は、メモリシステム１２０の１つの実施態様の部品及びアーキテクチャを図示している。図１に図示された実施態様において、メモリシステム１２０は、コントローラ１０１と、インターフェースコネクタ１０３と、メモリアレイ１３０−１、・・・、１３０−Ｎとを含む。１つ以上の実施態様において、メモリシステム１２０は、メモリシステム１２０を包囲するためにハウジングを含むことができるが、そのようなハウジングは、不可欠ではない。
【００１２】
インターフェースコネクタ１０３は、メモリシステム１２０とコンピューティングデバイス等の他の装置との間で情報を通信するように使用されることができる。例えば、メモリシステム１２０がコンピューティングデバイスにおけるデータ格納のために使用されるとき、インターフェース１０３は、数ある中でもシリアル・アドバンスド・テクノロジー・アタッチメント（ＳＡＴＡ）とすることができる。
【００１３】
コントローラ１０１は、メモリアレイ１３０−１、・・・、１３０−Ｎ上で、数ある中でも読み出し、プログラム（例えば書き込み）、及び消去動作を実行するようにメモリアレイ１３０−１、・・・、１３０−Ｎと通信することができる。コントローラ１０１は、メモリシステム１２０における動作を管理するように使用されることができる。コントローラ１０１は、複数の集積回路である場合がある電気回路を有することができる。コントローラ１０１はまた、複数の個別部品である場合がある電気回路を有することもできる。１つ以上の実施態様に関して、コントローラ１０１における電気回路は、複数のメモリアレイにわたるアクセスを制御するための制御回路を含むことができる。コントローラ１０１における電気回路はまた、外部ホストとメモリシステム１２０との間のトランスレーション・レイヤを提供するための制御回路を含むことができる。従って、メモリコントローラは、適切な時間における適切なＩ／Ｏ接続において適切な信号を受信するようにメモリアレイのＩ／Ｏ接続（図１において図示されていない）を選択的に連結することができる。同様に、ホストとメモリシステム１２０との間の通信プロトコルは、メモリアレイ、例えばメモリアレイ１３０−１、・・・、１３０−Ｎのアクセスに必要とされるものとは異なるものとすることができる。その後、メモリコントローラ１０１は、メモリアレイに対する所望のアクセスを達成するようにホストから受信されたコマンドを適切なコマンドに変換することができる可能性がある。
【００１４】
メモリアレイ１３０−１、・・・、１３０−Ｎは、様々な種類の揮発性及び不揮発性メモリアレイ（数ある中でも、例えば、フラッシュ及びＤＲＡＭアレイ等）とすることができる。１つ以上の実施態様において、メモリアレイ１３０−１、・・・、１３０−Ｎは、ソリッドステート・メモリアレイとすることができる。メモリアレイ１３０−１、・・・、１３０−Ｎは、ユニットにグループ化されることができる複数のメモリセルを含むことができる。本願明細書で使用される場合、ユニットは、ページ、物理ブロック、プレーン、アレイ全体、又は、メモリセルの他のグループ等、複数のメモリセルを含むことができる。例えば、メモリアレイは、各プレーンが複数の物理ブロックを含んでいる複数のプレーンを含むことができる。各物理ブロックにおけるメモリセルは、ユニットとしてともに消去されることができる。例えば、各物理ブロックにおけるセルは、略同時に消去されることができる。例えば、各物理ブロックにおけるセルは、単一動作でともに消去されることができる。物理ブロックは、複数のページを含むことができる。各ページにおけるメモリセルは、ユニットとしてともにプログラムされることができる。例えば、各ページにおけるセルは、略同時にプログラムされることができる。各ページにおけるメモリセルはまた、ユニットとしてともに読み出されることもできる。例として、１２８ＧＢのメモリ装置は、ページあたり４３１４バイトのデータ、物理ブロックあたり１２８ページ、プレーンあたり２０４８物理ブロック、及び、装置あたり１６プレーンを含むことができる。しかしながら、実施態様は、この例に限定されない。
【００１５】
メモリシステムの物理セクタは、論理セクタに対応することができ、ユーザデータとともに、誤り訂正コード（ＥＣＣ）情報、及び、論理ブロックアドレス（ＬＢＡ）情報等のオーバーヘッド情報を含むことができる。当業者が理解するように、論理ブロックアドレス指定は、情報の論理セクタを識別するためにホストによって頻繁に使用されるスキームである。例として、各物理セクタは、数あるバイト数の中でも、例えば、２５６バイト、５１２バイト、又は、１０２４バイトのデータを表す情報を格納することができる。しかしながら、本開示の実施態様は、物理セクタに格納される又は論理セクタに関連する特定数のバイトのデータに限定されない。
【００１６】
図２は、本開示の１つ以上の実施態様に従って動作されることができるメモリコントローラ２０１の機能ブロック図を図示している。１つ以上の実施態様において、メモリコントローラ２０１は、ソリッドステート・ドライブコントローラとすることができる。１つ以上の実施態様において、メモリコントローラ２０１は、図１に示されたコントローラ１０１と類似であるようにすることができる。
【００１７】
図２に示されるように、メモリコントローラ２０１は、フロントエンド部及びバックエンド部を含む。フロントエンド部は、フロントエンドチャンネルに対応することができ、バックエンド部は、例えばバックエンドチャンネル１  ２１０−１、・・・、バックエンドチャンネルＮ  ２１０−Ｎ等、複数のバックエンドチャンネルに対応することができる。メモリコントローラ２０１は、メモリアレイ２３０−１、・・・、２３０−Ｎ上で、数ある動作の中でも、読み出し、プログラム（例えば書き込み）、及び、消去動作を実行するために、メモリアレイ２３０−１、・・・、２３０−Ｎと通信するようにフロントエンドチャンネル及びバックエンドチャンネルを使用することができる。１つ以上の実施態様において、メモリアレイ２３０−１、・・・、２３０−Ｎは、ソリッドステート・メモリアレイとすることができる。１つ以上の実施態様において、メモリアレイ２３０−１、・・・、２３０−Ｎは、図１に示されるメモリアレイ１３０−１、・・・、１３０−Ｎと類似であるようにすることができる。
【００１８】
図２に示されるように、コントローラ２０１の、例えばフロントエンドチャンネル等の、フロントエンド部は、ホストインターフェース２０２と、コマンドプロセッサ２０４と、フロントエンド・ダイレクトメモリアクセス（ＤＭＡ）２０６と、コマンドディスパッチャ２０８とを含む。バックエンドチャンネル２１０−１、・・・、２１０−Ｎは、バックエンドチャンネル・プロセッサ２１１−１、・・・、２１１−Ｎと、バックエンドチャンネル・ＤＭＡ２１３−１、・・・、２１３−Ｎと、バックエンドチャンネル・コマンドキュー２１５−１、・・・、２１５−Ｎと、データバッファ２１７−１、・・・、２１７−Ｎと、ＥＣＣエンジン／アレイ・インターフェース２１９−１、・・・、２１９−Ｎとを含むことができる。図２に示された実施態様はバックエンドチャンネル・プロセッサを含むように各バックエンドチャンネル２１０−１、・・・、２１０−Ｎを図示しているが、本開示の実施態様は、そのようには限定されない。例えば、バックエンド部は、例えば、各バックエンドチャンネル２１０−１、・・・、２１０−Ｎ上で動作することができる特定用途向け集積回路（ＡＳＩＣ）等の単一バックエンドプロセッサ又はハードウェアロジック等の電気回路を含むことができる。
【００１９】
図２に図示された実施態様において、フロントエンドチャンネルは、フロントエンド・ＤＭＡ２０６及びコマンドディスパッチャ２０８を介して、例えばバックエンドチャンネル２１０−１、・・・、２１０−Ｎ等のバックエンドチャンネルに対して連結されることができる。例えば、フロントエンド・ＤＭＡ２０６は、バックエンドチャンネル・プロセッサ２１１−１、・・・、２１１−Ｎと、バックエンドチャンネル・ＤＭＡ２１３−１、・・・、２１３−Ｎに対して連結されることができる。コマンドディスパッチャ２０８は、バックエンドチャンネル・コマンドキュー２１５−１、・・・、２１５−Ｎに対して連結されることができる。ホストインターフェース２０２は、コントローラ２０１とコンピューティングデバイス等のホスト装置（図示されていない）との間で情報を通信するように使用されることができる。１つ以上の実施態様において、ホストインターフェース２０２は、例えば図１に示されたインターフェースコネクタ１０３等のインターフェースコネクタを介して、コントローラ２０１とホスト装置との間で情報を通信するように使用されることができる。
【００２０】
１つ以上の実施態様において、ホスト装置とコントローラ２０１との間で通信される情報は、数あるコマンド中でも、プログラムコマンド、読み出しコマンド、及び、消去コマンドなどの、複数のコマンドを含むことができる。例えば書き込みコマンド等のプログラムコマンドは、メモリアレイ２３０−１、・・・、２３０−Ｎ上にデータを書き込むように使用されることができ、読み出しコマンドは、メモリアレイ２３０−１、・・・、２３０−Ｎ上のデータを読み出すように使用されることができ、消去コマンドは、メモリアレイ２３０−１、・・・、２３０−Ｎ上のデータを消去するように使用される場合がある。コマンドは、数ある情報の中でも、命令された動作の種類（例えば、プログラム、読み出し、又は、消去）、量（例えば論理セクタの数）、及び、コマンドの実行が開始されるべき位置（例えば開始アドレス）を示す情報を含むことができる。コマンドがプログラムコマンドである場合、コマンドの後に、対応するメモリセルにプログラムされるべきデータが続くことができる（必ずしもすぐにではない）。１つ以上の実施態様において、量は、メモリセルの数に対応するホストの論理セクタの数とすることができる。１つ以上の実施態様において、コマンドに含まれる「位置」は、論理ブロックアドレス（ＬＢＡ）とすることができる。
【００２１】
データバッファ２１７−１、・・・、２１７−Ｎは、ホストから、ホストインターフェース２０２、フロントエンドＤＭＡ２０６、及び、バックエンドチャンネルＤＭＡ２１３−１、・・・、２１３−Ｎを介して、メモリアレイ２３０−１、・・・、２３０−Ｎ上にプログラムされるべきデータを受信することができる。データは、ＥＣＣエンジン／アレイ・インターフェース２１９−１、・・・、２１９−Ｎを介して、データバッファ２１７−１、・・・、２１７−Ｎからメモリアレイ２３０−１、・・・、２３０−Ｎへと送られることができる。
【００２２】
１つ以上の実施態様において、ＬＢＡは、ホストの論理セクタと関連付けられることができ、例えば、ホストの各論理セクタは、特定のＬＢＡと関連付けられることができる。例えば、ＬＢＡ１０００は、第１の論理セクタと関連付けられることができ、ＬＢＡ１００１は、第２の論理セクタと関連付けられることができ、ＬＢＡ１００２は、第３の論理セクタと関連付けられることができる等である。さらなる例として、ＬＢＡ１０００から始まる１６個の論理セクタに対応するアレイにおけるメモリセルをプログラムするためのコマンドは、例えばＬＢＡ１０００から１０１６と関連付けられた論理セクタに対応するメモリセル等、ＬＢＡ１０００から１０１６と関連付けられたメモリセルをプログラムすることができる。
【００２３】
コマンドディスパッチャ２０８は、ホストインターフェース２０２を介して、ホストから複数のコマンドを受信することができる。コマンドディスパッチャ２０８は、受信されたコマンドを保持することができ、適切なバックエンドチャンネル２１０−１、・・・、２１０−Ｎに対してコマンドを送ることができる。例えば、バックエンドチャンネル・キュー２１５−１、・・・、２１５−Ｎは、コマンドディスパッチャ２０８からコマンドを受信することができる。１つ以上の実施態様において、バックエンドチャンネル２１０−１、・・・、２１０−Ｎは、コマンドディスパッチャ２０８がホストからコマンドを受信する順序でコマンドを受信することができる。１つ以上の実施態様において、コマンドディスパッチャ２０８は、特定数までのコマンドを保持することができ、例えばコマンドディスパッチャ２０８が限度いっぱいである場合等、特定数のコマンドを保持している場合には、コマンドパッチャ２０８は、ホストからコマンドを受信することができなくなる場合がある。
【００２４】
１つ以上の実施態様において、バックエンドチャンネル・キュー２１５−１、・・・、２１５−Ｎは、コマンドディスパッチャ２０８から受信された複数のコマンドを保持することができる。１つ以上の実施態様において、キューは、コマンドが実行されるであろう順序でコマンドを保持することができる。１つ以上の実施態様において、キューは、コマンドがコマンドディスパッチャから受信される順序でコマンドを保持することができる。１つ以上の実施態様において、各キューは、コマンドディスパッチャ２０８によって保持されることができるコマンド数と等しい数のコマンドを保持することができる。例えば、１つ以上の実施態様において、コマンドディスパッチャ２０８及びキューは、それぞれ、３２個のコマンドまで保持することができる。しかしながら、本開示の実施態様は、特定数のコマンドに限定されない。
【００２５】
１つ以上の実施態様によれば、バックエンドチャンネル・プロセッサ２１１−１、・・・、２１１−Ｎは、キュー内に保持されたコマンドが変更されることができるかどうかを判定することができ、コマンドがキュー内に保持されるとき等、それに応じてコマンドを変更することができる。１つ以上の実施態様において、コマンドがキュー内に保持される順序を変えることができる場合、キュー内の複数のコマンドを１つのコマンド（例えば単一コマンド）に組み合わせることができる場合、又は、キュー内の複数のコマンドがキュー内の次のコマンドによって上書きされる場合、コマンドは変更されることができる。１つ以上の実施態様において、コマンドの変更は、数ある変更の中でも、コマンドがキュー内に保持される順序を変えること、キュー内の複数の組み合わせ可能なコマンドを単一コマンドに組み合わせること、又は、キュー内の次のコマンドによって上書きされるキュー内の複数のコマンドを消去することを含むことができる。
【００２６】
１つ以上の実施態様において、キュー内に保持されるコマンドは組み合わせ可能であり、例えばそれらが重複コマンドである場合には単一コマンドに組み合わされることができる。本願明細書で用いられる場合、重複コマンドは、重複論理ブロックアドレス（ＬＢＡ）等の重複アドレスと関連付けられた複数のコマンドである。例えば、重複コマンドは、コマンドが実行されるべきメモリアレイにおける共通位置と関連付けられたコマンドを含むことができる。具体例は、例えば論理ブロックアドレス（ＬＢＡ）１０００から始まるホストからの４８個の論理セクタのデータ等、ホストの４８個の論理セクタに対応するアレイにおけるメモリセルにプログラムするための第１のコマンドと、ＬＢＡ１０４０から始まるホストの１６個の論理セクタに対応するアレイにおけるメモリセルにプログラムするための第２のコマンドとを含む。第１及び第２のコマンドは、双方のコマンドがＬＢＡ１０４０から始まる同じ８個の論理セクタと関連付けられていることから、重複コマンドである。従って、これら２つのコマンドは、ＬＢＡ１０００から始まる５６個の論理セクタに対応するメモリセルにプログラムするための単一コマンドに組み合わされることができる。キュー内に保持された重複コマンドは、コマンドがキュー内に受信された順序にかかわらず組み合わされることができる。
【００２７】
１つ以上の実施態様において、キュー内に保持されたコマンドは組み合わせ可能であり、例えば、コマンドが連続コマンドである場合に単一コマンドに組み合わされることができる。本願明細書で用いられる場合、連続コマンドは、コマンドが実行されるべき連続ＬＢＡ等の連続アドレスと関連付けられた複数のコマンドである。例えば、連続コマンドは、他のコマンドのうちの１つと関連付けられた論理セクタにすぐに先行する又はすぐに後続する論理セクタと関連付けられたコマンドを含むことができる。具体例は、ＬＢＡ１０００から始まるホストの１６個の論理セクタに対応するアレイにおけるメモリセルをプログラムするための第１のコマンドと、ＬＢＡ１０１６から始まるホストの３２個の論理セクタに対応するアレイにおけるメモリセルをプログラムするための第２のコマンドとを含む。例えば第２のコマンドと関連付けられた位置が第１のコマンドと関連付けられた位置にすぐに後続する等、第１のコマンドと関連付けられたアドレスが第２のコマンドと関連付けられたアドレスにすぐに先行していることから、第１及び第２のコマンドは連続コマンドである。従って、これら２つのコマンドは、ＬＢＡ１０００から始まるホストの４８個の論理セクタに対応してメモリセルにプログラムするための単一コマンドに組み合わされることができる。キュー内に保持される連続コマンドは、それらがキュー内に受信される順序にかかわらず組み合わされることができる。
【００２８】
１つ以上の実施態様において、キュー内の第１のコマンドは、第１のコマンド及び次のコマンドが、双方とも、コマンドが実行されるべき同じＬＢＡ等の同じアドレスと関連付けられている場合に、キュー内の次のコマンドによって上書きされる。例えば、ＬＢＡ１０００から始まるホストの１６個の論理セクタに対応するアレイにおけるメモリセルをプログラムするための第１のコマンドは、第１のコマンド及び次のコマンドが、双方とも、同じアドレスと関連付けられていることから、ＬＢＡ１０００から始まるホストの１６個の論理セクタに対応するアレイにおけるメモリセルをプログラムするための次のコマンドによって上書きされる。従って、第１のコマンドは消去されることができる。
【００２９】
１つ以上の実施態様において、キュー内の第１のコマンドは、第１のコマンドと関連付けられているアドレスが、次のコマンドと関連付けられているアドレスの範囲内である場合に、キュー内の次のコマンドによって上書きされる。例えば、ＬＢＡ１０００から始まるホストの１６個の論理セクタに対応するアレイにおけるメモリセルをプログラムするための第１のコマンドは、ＬＢＡ１０００から始まるホストの４８個の論理セクタに対応するアレイにおけるメモリセルをプログラムするための次のコマンドによって上書きされる。従って、第１のコマンドは消去されることができる。
【００３０】
バックエンドチャンネル・プロセッサ２１１−１、・・・、２１１−Ｎは、変更されたコマンドがキュー内に保持される順序に従って、変更されたコマンドを実行することができる。例えば、コマンドがキュー内に保持される順序を変えることによってコマンドが変更された場合には、バックエンドチャンネル・プロセッサは、変えられた順序に従ってコマンドを実行することができる。複数のコマンドを単一コマンドに組み合わせることによってコマンドが変更された場合には、バックエンドチャンネル・プロセッサは、複数のコマンドを個別に実行する代わりに単一コマンドを実行することができる。次のコマンドによって上書きされたコマンドを消去することによってコマンドが変更された場合には、バックエンドチャンネル・プロセッサは、次のコマンドを実行することができ、消去されたコマンドを実行しない。
【００３１】
１つ以上の実施態様において、バックエンドチャンネル・コマンドキュー２１５−１、・・・、２１５−Ｎ内に保持されたコマンドが、複数のコマンドを単一コマンドに組み合わせることによって変更された場合には、同様に単一コマンドに組み合わせ可能でもあるコマンドディスパッチャ２０８に保持されたいかなるコマンドも、完了したとみなすことができる。バックエンドチャンネル・プロセッサ２１１−１、・・・、２１１−Ｎは、そのようなコマンドが完了した旨をコマンドプロセッサ２０４に対して通信することができる。例えば、ＬＢＡ１０００から始まるホストの５６個の論理セクタに対応するメモリセルをプログラムするためのコマンド等、ＬＢＡ１０００から始まるホストの４８個の論理セクタに対応するアレイにおけるメモリセルをプログラムするためのキュー２１５−１内の第１のコマンドと、ＬＢＡ１０４０から始まるホストの１６個の論理セクタに対応するアレイにおけるメモリセルをプログラムするためのキュー２１５−Ｎ内の第２のコマンドが、単一コマンドに組み合わされる場合には、ＬＢＡ１０００から始まるホストの１６個の論理セクタに対応するメモリセルをプログラムするためのコマンドディスパッチャ２０８に保持されるコマンドは、完了したとみなされることができ、例えば、このコマンドが単一コマンドに組み合わせ可能であることから、バックエンドチャンネル・プロセッサ２１１−１は、このコマンドが完了した旨をコマンドプロセッサ２０４に対して通信することができる。
【００３２】
バックエンドチャンネル・プロセッサ２１１−１、・・・、２１１−Ｎはまた、変更されたコマンドに従って、メモリアレイ２３０−１、・・・、２３０−Ｎにプログラムされるべきデータを変更することもできる。例えば、バックエンドチャンネル・プロセッサ２１１−１、・・・、２１１−Ｎは、変更されたコマンドに適合させるようにデータを変更することができる。バックエンドチャンネル・プロセッサ２１１−１、・・・、２１１−Ｎは、例えばデータがフロントエンド・ＤＭＡ２０６からデータバッファ２１７−１、・・・、２１７−Ｎに対して送られるときに、データバッファ２１７−１、・・・、２１７−Ｎがデータを受信する前に、データを変更することができる。バックエンドチャンネル・プロセッサ２１１−１、・・・、２１１−Ｎはまた、データがデータバッファ２１７−１、・・・、２１７−Ｎからメモリアレイ２３０−１、・・・、２３０−Ｎに対して送られた後に、データを変更することもできる。
【００３３】
１つ以上の実施態様において、バックエンドチャンネル・コマンドキュー２１５−１、・・・、２１５−Ｎは、バックエンドチャンネル・プロセッサ２１１−１、・・・、２１１−Ｎが変更されたコマンドを実行しているとき、コマンドディスパッチャ２０８から受信された追加のコマンドを保持することができる。バックエンドチャンネル・プロセッサ２１１−１、・・・、２１１−Ｎは、変更されたコマンドを実行しながら追加のコマンドを変更することができる。
【００３４】
ＥＣＣエンジン／アレイ・インターフェース２１９−１、・・・、２１９−Ｎは、メモリコントローラ２０１をメモリアレイ２３０−１、・・・、２３０−Ｎに連結するように使用されることができる。バックエンドチャンネル・プロセッサ２１１−１、・・・、２１１−Ｎは、ＥＣＣエンジン／アレイ・インターフェース２１９−１、・・・、２１９−Ｎを介して、メモリアレイ２３０−１、・・・、２３０−Ｎ上の変更されたコマンドを実行することができる。図２に示された実施態様は、バックエンドチャンネル・プロセッサ２１１−１、・・・、２１１−Ｎを通して伝達するようなコマンドを図示しているが、本開示の実施態様は、そのようには限定されない。例えば、コマンドは、ＥＣＣエンジン／アレイ・インターフェース２１９−１、・・・、２１９−Ｎを介して、バックエンドチャンネル・コマンドキュー２１５−１、・・・、２１５−Ｎからメモリアレイ２３０−１、・・・、２３０−Ｎに対して直接伝達することができる。
【００３５】
データバッファ２１７−１、・・・、２１７−Ｎは、メモリアレイ２３０−１、・・・、２３０−Ｎにある複数のメモリセル上で実行された、例えば以前の読み出しコマンドに応じて読み出されたデータ等、複数の以前の読み出し動作中に読み出されたデータを保持することができる。１つ以上の実施態様において、バックエンドチャンネル・コマンドキュー２１５−１、・・・、２１５−Ｎ内に保持されたコマンドは、例えばそのデータが既にデータバッファ２１７−１、・・・、２１７−Ｎに保持された、以前に読み出されている複数のメモリセルを読み出すための複数のコマンドを含むことができる。そのような実施態様において、バックエンドチャンネル・プロセッサ２１１−１、・・・、２１１−Ｎは、例えばメモリアレイ２３０−１、・・・、２３０−Ｎにアクセスすることなく、データバッファ２１７−１、・・・、２１７−Ｎにアクセスすることにより、又は、データバッファにないデータについてのみメモリアレイにアクセスするのみにより、これらの読み出しコマンドを実行することができる。
【００３６】
１つ以上の実施態様において、複数の組み合わせ可能なコマンドを単一コマンドに組み合わせることによってコマンドを変更することは、メモリシステムによって実行されるパーシャルページプログラミング動作をなくす又は数を減らすことを可能にし、これにより、システムの全体的性能及び／又は信頼性を改善することができる。当業者には明らかなように、パーシャルページプログラミング動作は、新たなブロックを位置付けること、古いブロックに位置するページに格納されたデータをデータバッファへ読み出すこと、データバッファ内のデータが新たなデータと古いブロック内のページから読み出されたデータとの双方を含むようにデータバッファ内のデータを新たなデータと統合及び／又は置換すること、並びに、データバッファ内のデータにより新たなブロック内のページをプログラムすることを含むことができる。パーシャルページプログラミング動作はまた、古いブロック内の残りのページに格納されたデータの新たなブロック内の残りのページへ移動すること（例えば、古いブロック内の残りのページに格納されたデータを読み出すこと、及び新たなブロック内の残りのページをこのデータによりプログラムすること）、消去のための古いブロックをマーク付けすること、並びに、古いブロックを消去することを含むこともできる。
【００３７】
当業者には理解されるであろうように、パーシャルページプログラミング動作は、ページの一部のみをプログラムするためのコマンドからもたらされる（例えばそのコマンドによって開始される）可能性がある。例えば、ページの一部のみをプログラムするためのコマンドは、ページの残りの部分をプログラムするためのコマンドが既に実行されている場合にパーシャルページプログラミングを開始することができる。しかしながら、パーシャルページプログラミング動作は、本開示の１つ以上の実施態様に従って、ページの一部のみをプログラムするためのコマンドを、ページの残りの部分をプログラムするための複数のコマンドと組み合わせることによって回避されることができ、例えば、上述されたパーシャルページプログラミング動作と関連付けられた動作を実行する必要性が回避されることができる。例えば、ＬＢＡ３０００から始まるホストの４個の論理セクタに対応するメモリセルを含むページをともなうパーシャルページプログラミング動作は、本開示の１つ以上の実施態様に従って、ＬＢＡ３０００から始まるホストの２個の論理セクタに対応するページにおけるメモリセルをプログラムするためのコマンドを、ＬＢＡ３００２から始まるホストの２個の論理セクタに対応するページにおけるメモリセルをプログラムするためのコマンドと組み合わせることによって回避されることができる。
【００３８】
１つ以上の実施態様において、コマンドプロセッサ２０４は、バックエンドチャンネル・プロセッサ２１１−１、・・・、２１１−Ｎによって実行される機能と類似であるようにする機能を実行することができる。例えば、コマンドプロセッサ２０４は、コマンドディスパッチャ２０８に保持されたコマンドが変更されることができるかどうかを判定することができ、コマンドがコマンドディスパッチャ２０８に保持されたとき、それに応じてコマンドを変更することができる。コマンドは、コマンドがバックエンドチャンネルに対して送られる順序を変えることができる場合、複数のコマンドが単一コマンドに組み合わせることができる場合、複数のコマンドが次のコマンドによって上書きされる場合等に変更されることができる。コマンドを変更することは、コマンドディスパッチャ２０８がコマンドをバックエンドチャンネルに対して送る順序を変えることと、コマンドディスパッチャ２０８によって受信された複数の組み合わせ可能なコマンドを単一コマンドに組み合わせることと、コマンドディスパッチャ２０８によって受信される次のコマンドによって上書きされる複数のコマンドであって、コマンドディスパッチャ２０８によって受信された複数のコマンドを、消去すること等を含むことができる。
【００３９】
１つ以上の実施態様において、コマンドプロセッサ２０４は、これらの機能を実行することができ、例えば、コマンドディスパッチャ２０８に保持されたコマンドが変更されることができるかどうかを判定し、コマンドディスパッチャ２０８がホストからコマンドを受信することができないとき、コマンドがコマンドディスパッチャ２０８に保持されると、それに応じてコマンドを変更することができる。例えば、コマンドプロセッサ２０４は、コマンドディスパッチャ２０８が限度いっぱいであるときに、これらの機能を実行することができる。
【００４０】
１つ以上の実施態様において、コマンドプロセッサ２０４は、コマンドディスパッチャ２０８に保持されたコマンドが、バックエンドチャンネル・プロセッサ２１１−１、・・・、２１１−Ｎによって変更されないコマンドであるかどうかを判定することができる。コマンドプロセッサ２０４が、コマンドディスパッチャ２０８に保持された複数のコマンドがバックエンドチャンネル・プロセッサによって変更されないものと判定した場合には、コマンドプロセッサ２０４は、バックエンドチャンネル・プロセッサによって変更されないコマンドとして、これらのコマンドを、例えばタグ付け等、マーク付けすることができる。変更されないとしてコマンドプロセッサ２０４によってマーク付けされたコマンドは、コマンドがバックエンドチャンネル・コマンドキュー２１５−１、・・・、２１５−Ｎ内に保持されたとき、バックエンドチャンネル・プロセッサ２１１−１、・・・、２１１−Ｎによって変更されない。例えば、バックエンドチャンネル・コマンドキュー２１５−１がＬＢＡ１０００から始まるホストの４８個の論理セクタに対応するアレイにおけるメモリセルをプログラムするための第１のコマンドと、ＬＢＡ１０４０から始まるホストの１６個の論理セクタに対応するアレイにおけるメモリセルをプログラムするための第２のコマンドとを保持しており、コマンドプロセッサ２０４がこれらのコマンドの１つ又は双方を変更されないコマンドとしてマーク付けしている場合、バックエンドチャンネル・プロセッサ２１１−１は、これら２つのコマンドを例えば組み合わせる等の変更を行わない。変更されないコマンドは、例えば、第１のプログラムコマンドの後に読み出しコマンドが続き、読み出しコマンドの後に、最初のプログラムコマンドを上書きすることを目的とする第２のプログラムコマンドが続く動作等、上書き動作の一部であるコマンドを含むことができる。しかしながら、本開示の実施態様は、そのようには限定されず、変更される予定にないコマンドは、他の種類のコマンドを含むことができる。
【００４１】
本開示の１つ以上の実施態様に従ってメモリ装置を動作させることは、例えば反復的なコマンドを除去して複数のコマンドを１つのコマンドに組み合わせることにより、複数のコマンドを実行するのに使用される時間を減らすことができ、それにより、メモリ装置の効率を向上させることができる。さらに、バックエンドチャンネルがメモリアレイ２３０−１、・・・、２３０−Ｎと、例えば近傍に配置される等、密に結合されることができることから、メモリ装置の効率を、１つ以上の本開示の実施態様に従ってこれを動作させることによって向上することができる。
【００４２】
図３は、１つ以上の本開示の実施態様にかかるチャンネル・コマンドキュー３１５のブロック図を図示している。１つ以上の実施態様において、チャンネル・コマンドキュー３１５は、図２に示されたバックエンドチャンネル・コマンドキュー２１５−１、・・・、２１５−Ｎと類似であるようにすることができる。
【００４３】
図３に示されるように、チャンネル・コマンドキュー３１５は、チャンネル・コマンドスロット１  ３２５−１と、チャンネル・コマンドスロット２  ３２５−２と、チャンネル・コマンドスロット３  ３２５−３と、チャンネル・コマンドスロット４  ３２５−４と、・・・チャンネル・コマンドスロットＭ  ３２５−Ｍとを含む。各チャンネル・コマンドスロット３２５−１、３２５−２、３２５−３、３２５−４、・・・、３２５−Ｍは、１つのコマンドを保持することができ、例えば、チャンネル・コマンドキュー３１５は、最大でＭ個までのコマンドを保持することができる。１つ以上の実施態様において、チャンネル・コマンドキュー３１５内に保持されたコマンドは、本願明細書において上述されたように変更されることができる。
【００４４】
１つ以上の実施態様において、チャンネル・コマンドキュー３１５におけるスロットの数、例えばチャンネル・コマンドキュー３１５によって保持されることができるコマンドの数は、図２に示されたコマンドディスパッチャ２０８等のチャンネル・コマンドキュー３１５がコマンドを受信する装置によって保持されることができるコマンドの数と等しくすることができる。例えば、コマンドディスパッチャ２０８が最大で３２個までのコマンドを保持することができる場合、チャンネル・コマンドキュー３１５は、３２個のスロットを有することができ、例えばチャンネル・コマンドキュー３１５は、最大で３２個までのコマンドを保持することができる。しかしながら、本開示の実施態様は、そのようには限定されず、チャンネル・コマンドキュー３１５は、異なる数のスロットを有することができる。
【００４５】
１つ以上の実施態様において、チャンネル・コマンドキュー３１５は、コマンドが実行されるべき順序でコマンドを保持することができる。１つ以上の実施態様において、チャンネル・コマンドキュー３１５は、チャンネル・コマンドキュー３１５がコマンドを受信する順序でコマンドを保持することができる。例えば、チャンネル・コマンドスロット１ ３２５−１は、チャンネル・コマンドキュー３１５によって最初に実行されるべきコマンド、及び／又は、最初に受信されたコマンドを保持することができ、チャンネル・コマンドスロット１ ３２５−２は、チャンネル・コマンドスロット１ ３２５−１に保持されたコマンドが実行された後に実行されるべきコマンド、及び／又は、チャンネル・コマンドスロット１ ３２５−１に保持されたコマンドが受信された後に受信されたコマンドを保持することができ、チャンネル・コマンドスロット２ ３２５−３は、チャンネル・コマンドスロット２ ３２５−２に保持されたコマンドが実行された後に実行されるべきコマンド、及び／又は、チャンネル・コマンドスロット２ ３２５−２に保持されたコマンドが受信された後に受信されたコマンドを保持することができる、等々である。
【００４６】
図４Ａは、１つ以上の本開示の実施態様にかかるチャンネル・コマンドキュー４１５のブロック図を図示している。１つ以上の実施態様において、チャンネル・コマンドキュー４１５は、図２に示されたバックエンドチャンネル１・コマンドキュー２１５−１、・・・、２１５−Ｎ、又は、図３に示されたチャンネル・コマンドキュー３１５と類似であるようにすることができる。チャンネル・コマンドキュー４１５は、図３に示されたチャンネル・コマンドスロット１  ３２５−１と、チャンネル・コマンドスロット２  ３２５−２と、チャンネル・コマンドスロット３  ３２５−３と、チャンネル・コマンドスロット４  ３２５−４と、・・・チャンネル・コマンドスロットＭ  ３２５−Ｍと類似であるようにすることができる、チャンネル・コマンドスロット４２５−１、４２５−２、４２５−３、４２５−４、４２５−５、４２５−６、４２５−７、４２５−８、・・・、４２５−Ｍを含む。
【００４７】
図４Ａに図示された実施態様において、各チャンネル・コマンドスロット４２５−１乃至４２５−Ｍは、コマンドを保持している。例えば、チャンネル・コマンドスロット４２５−１は、コマンド１を保持しており、チャンネル・コマンドスロット４２５−２は、コマンド２を保持している等々である。コマンド１は、ＬＢＡ１０００から始まる例えばホストからのデータの１６個の論理セクタ等のホストの１６個の論理セクタに対応するアレイにおけるメモリセルをプログラムするためのコマンドである。コマンド２は、ＬＢＡ２０００から始まるホストの４個の論理セクタに対応するアレイにおけるメモリセルを読み出すためのコマンドである。コマンド３は、ＬＢＡ１０００から始まるホストの４８個の論理セクタに対応するアレイにおけるメモリセルをプログラムするためのコマンドである。コマンド４は、ＬＢＡ２００２から始まるホストの１０個の論理セクタに対応するアレイにおけるメモリセルを読み出すためのコマンドである。コマンド５は、ＬＢＡ２０００から始まるホストの１６個の論理セクタに対応するアレイにおけるメモリセルを読み出すためのコマンドである。コマンド６は、ＬＢＡ１０４０から始まるホストの１６個の論理セクタに対応するアレイにおけるメモリセルをプログラムするためのコマンドである。コマンド７は、ＬＢＡ３０００から始まるホストの２個の論理セクタに対応するアレイにおけるメモリセルをプログラムするためのコマンドである。コマンド８は、ＬＢＡ３００２から始まるホストの２個の論理セクタに対応するアレイにおけるメモリセルをプログラムするためのコマンドである。
【００４８】
チャンネル・コマンドキュー４１５内に保持されたコマンドは、本開示の１つ以上の実施態様に従って変更されることができる。例えば、チャンネル・コマンドスロット４２５−１、４２５−３、及び４２５−６内のコマンドは、ＬＢＡ１０００から始まるホストの５６個の論理セクタに対応するアレイにおけるメモリセルをプログラムするための１つのコマンド（例えば単一コマンド）に組み合わされることができる。チャンネル・コマンドスロット４２５−２及び４２５−４内のコマンドは、消去されることができる。チャンネル・コマンドスロット４２５−７及び４２５−８内のコマンドは、ＬＢＡ３０００から始まるホストの４個の論理セクタに対応するアレイにおけるメモリセルをプログラムするための単一コマンドに組み合わされることができる。
【００４９】
図４Ｂは、図４Ａに示されたコマンドが本開示の１つ以上の実施態様に従って変更された後のチャンネル・コマンドキュー４１５のブロック図を図示している。図４Ｂに示されるように、チャンネル・コマンドスロット４２５−１に保持されたコマンド１は、ＬＢＡ１０００から始まるホストの５６個の論理セクタに対応するアレイにおけるメモリセルをプログラムするためのコマンドであり、チャンネル・コマンドスロット４２５−２に保持されたコマンド２は、ＬＢＡ２０００から始まるホストの１６個の論理セクタに対応するアレイにおけるメモリセルを読み出すためのコマンドであり、チャンネル・コマンドスロット４２５−３に保持されたコマンド３は、ＬＢＡ３０００から始まるホストの４個の論理セクタに対応するアレイにおけるメモリセルをプログラムするためのコマンドである。
【００５０】
［まとめ］
本開示は、コマンドを変更するための方法、装置、モジュール、及びシステムを含む。１つの装置実施態様は、チャンネルを含むメモリコントローラを備え、チャンネルは、コマンドを保持するように構成されたコマンドキューと、キュー内の少なくとも複数のコマンドを変更し且つ変更されたコマンドを実行するように構成された回路とを含む。
【００５１】
具体的な実施態様が本願明細書において図示されて説明されてきたが、当業者は、同じ成果を達成するように計画された構成が、示された具体的な実施態様に取って代わることができるということを理解するであろう。この開示は、本開示の１つ以上の実施態様の適応例又は変形例を包含することを目的としている。上述した説明は例として行われており、限定されるものではないことが理解されるべきである。上述した実施態様の組み合わせや、本願明細書において具体的に記載されていない他の実施態様は、上述した説明を検討することによって当業者にとって明らかであろう。本開示の１つ以上の実施態様の範囲は、上述した構造及び方法が使用される他の用途を含む。従って、本開示の１つ以上の実施態様の範囲は、そのような特許請求の範囲が与えられるあらゆる種類の均等物に加え、添付された特許請求の範囲を参照して決定されなければならない。
【００５２】
上述の発明を実施するための形態において、いくつかの特徴は、開示の合理化のために単一の実施態様にまとめられている。本開示の方法は、本開示の開示された実施態様が、各特許請求の範囲に明示的に列挙されたよりも多くの特徴を使用する必要があるという目的を反映するものとして解釈されない。むしろ、以下の特許請求の範囲が反映しているように、発明の主題は、単一の開示された実施態様の全ての特徴よりも少ない。従って、以下の特許請求の範囲は、各特許請求の範囲が個別の実施態様としてそれ自身に基づく状態で、本願明細書に発明を実施するための形態の中に組み込まれる。
【図１】
0005354404.tif 000002
【図２】
0005354404.tif 000003
【図３】
0005354404.tif 000004
【図４Ａ】
0005354404.tif 000005
【図４Ｂ】
0005354404.tif 000006