(57)【要約】本開示はコマンドキューイングのための装置及び方法を含む。いくつかの実施形態はホストから待ち行列に入れられたコマンド要求をメモリシステムで受信することと、メモリシステムからホストに、メモリシステムがメモリシステムのコマンド待ち行列にコマンドを受け入れる準備が完了していることを示すコマンド応答を送信することと、コマンド応答を送信することに応えて、ホストからコマンドのためのコマンド記述子ブロックをメモリシステムで受信することを含む。【選択図】図１
2017513089.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングシステムでのコマンドキューイング方法であって、
ホストから待ち行列に入れられたコマンド要求をメモリシステムで受信することと、
前記メモリシステムから前記ホストに、前記メモリシステムが前記メモリシステムのコマンド待ち行列にコマンドを受け入れる準備が完了していることを示すコマンド応答を送信することと、
前記コマンド応答を送信することに応えて、前記ホストから前記コマンドのためのコマンド記述子ブロックを前記メモリシステムで受信することと、
を含む、前記コマンドキューイング方法。
【請求項２】
前記方法が、前記メモリシステムの前記コマンド待ち行列に、前記コマンド記述子ブロックに記述される前記コマンドを追加することを含む、請求項１に記載の前記方法。
【請求項３】
前記コマンド記述子ブロックが前記コマンドのための優先順位情報を含む、請求項１に記載の前記方法。
【請求項４】
前記優先順位情報が、前記コマンドが実行のための最高の優先順位を有する前記コマンド待ち行列に入れられることを示すパラメータを含む、請求項３に記載の前記方法。
【請求項５】
前記優先順位情報が、前記コマンドが実行のための時系列的な優先順位を有する前記コマンド待ち行列に入れられることを示すパラメータを含む、請求項３に記載の前記方法。
【請求項６】
前記優先順位情報が、前記コマンドが実行のための優先順位のない前記コマンド待ち行列に入れられることを示すパラメータを含む、請求項３に記載の前記方法。
【請求項７】
前記コマンドのための前記コマンド記述子ブロックがコマンド動作コード、優先順位情報、タスクタグ、コマンド引数、開始アドレス、及びブロックカウントを含む、請求項１から３のいずれか１項に記載の前記方法。
【請求項８】
前記方法が、前記メモリシステムが転送状態にあるときに前記メモリシステムで前記待ち行列に入れられたコマンド要求を受信することを含む、請求項１から３のいずれか１項に記載の前記方法。
【請求項９】
前記方法が、前記コマンド応答を送信することに応えて転送状態から受信状態に前記メモリシステムを変更することを含む、請求項１から３のいずれか１項に記載の前記方法。
【請求項１０】
前記方法が、埋め込みマルチメディアカード（ｅ．ＭＭＣ）プロトコルを使用するコマンドキューイングを含む、請求項１から３のいずれか１項に記載の前記方法。
【請求項１１】
メモリシステムでのコマンドキューイング方法であって、
ホストから待ち行列に入れられたコマンド要求をメモリシステムで受信することに応えてコマンド待ち行列にコマンドを入れ、前記待ち行列に入れられたコマンド要求を受信することに応えて、前記メモリシステムから前記ホストに、前記メモリシステムが前記メモリシステムの前記コマンド待ち行列に前記コマンドを受け入れる準備が完了していることを示すコマンド応答を送信し、前記コマンド応答を受信することに応えて前記ホストから前記コマンドのためのコマンド記述子ブロックを前記メモリシステムで受信することと、
前記ホストから転送準備完了コマンドを前記メモリシステムで受信し、前記転送準備完了コマンドを受信することに応えて前記メモリシステムから前記ホストに、前記ホスト及び前記メモリシステムでのコマンド実行を可能にする情報を有するデータパケットを含むデータ転送要求を送信することによって前記コマンドを実行することと、
を含む、前記方法。
【請求項１２】
前記コマンドを実行することが、前記コマンドが書込みコマンドであるときに前記ホストからデータ受信コマンドを前記メモリシステムで受信することを含む、請求項１１に記載の前記方法。
【請求項１３】
前記ホストから前記データ受信コマンドを受信することに応えて、前記メモリシステムが受信状態に移行し、前記ホストが前記メモリシステムにデータを送信する、請求項１２に記載の前記方法。
【請求項１４】
前記コマンドを実行することが、前記コマンドが読取りコマンドであるときに、前記ホストからデータ送信コマンドを前記メモリシステムで受信することを含む、請求項１１から１３のいずれか１項に記載の前記方法。
【請求項１５】
前記ホストから前記データ送信コマンドを受信することに応えて、前記メモリシステムがデータ送信状態に移行し、前記メモリシステムが前記ホストにデータを送信する、請求項１４に記載の前記方法。
【請求項１６】
メモリシステムでのコマンド実行方法であって、
ホストから第１の数の待ち行列に入れられたコマンド要求をメモリシステムで受信することと、
前記第１の数の待ち行列に入れられたコマンド要求を受信することに応えて、前記メモリシステムのコマンド待ち行列に第１の数のコマンドを入れることと、
前記ホストから第１の数の転送準備完了コマンドを前記メモリシステムで受信し、前記第１の数の転送準備完了コマンドを受信することに応えて前記メモリシステムから前記ホストに第１の数のデータ転送要求を送信することによって前記第１の数のコマンドを実行することであって、前記第１の数のデータ転送要求がそれぞれ、前記ホスト及び前記メモリシステムでのコマンド実行を可能にする情報を有するデータパケットを含む、実行することと、
前記ホストから第２の数の待ち行列に入れられたコマンド要求を前記メモリシステムで受信することと、
前記第２の数の待ち行列に入れられたコマンド要求を受信することに応えて、前記メモリシステムの前記コマンド待ち行列に第２の数のコマンドを入れることと、
前記第１の数のコマンドの前記実行を中断し、前記第２の数のコマンドからのコマンドを実行することであって、前記第２の数のコマンドからの前記コマンドが、前記コマンドが実行のための最高の優先順位を有する前記コマンド待ち行列に入れられることを示すパラメータを含む、実行することと、
を含む、前記方法。
【請求項１７】
前記方法が、前記ホストから転送準備完了コマンドを前記メモリシステムで受信し、前記転送準備完了コマンドを受信することに応えて前記メモリシステムから前記ホストにデータ転送要求を送信することによって、前記第２の数のコマンドの前記コマンドを実行することを含み、前記データ転送要求は、前記ホスト及び前記メモリシステムでのコマンド実行を可能にする情報を有するデータパケットを含む、請求項１６に記載の前記方法。
【請求項１８】
前記方法が、前記第１の数のコマンド内の少なくとも一部分がデータバス上でデータ転送を介して実行されている間に、コマンドライン上で前記ホストから前記第２の数の待ち行列に入れられたコマンド要求を前記メモリシステムで受信することを含む、請求項１６から１７のいずれか１項に記載の前記方法。
【請求項１９】
前記方法が、前記第１の数のコマンドの内の２つ以上を並行して実行することを含む、請求項１６から１７のいずれか１項に記載の前記方法。
【請求項２０】
前記方法が、前記第２の数のコマンドからの前記コマンドの実行が開始した後に、前記第１の数のコマンドの実行を再開することを含む、請求項１９に記載の前記方法。
【請求項２１】
前記方法が、前記第１の数のコマンドのそれぞれの優先順位情報に基づいて前記第１の数のコマンドを実行することを含む、請求項１９に記載の前記方法。
【請求項２２】
コントローラと、
前記コントローラに結合されたメモリデバイスと、
を備える装置であって、前記装置が、
ホストから待ち行列に入れられたコマンド要求を前記コントローラで受信し、前記待ち行列に入れられたコマンド要求を受信することに応えて、前記コントローラから前記ホストに、前記装置がコマンド待ち行列にコマンドを受け入れる準備が完了していることを示すコマンド応答を送信する、
前記コマンド応答を送信することに応えて、前記ホストからコマンドのためのコマンド記述子ブロックを前記コントローラで受信し、前記コントローラの前記コマンド待ち行列に前記コマンド記述子ブロックに記述される前記コマンドを追加する、
前記ホストから転送準備完了コマンドを前記コントローラで受信し、前記転送準備完了コマンドを受信することに応えて前記コントローラから前記ホストに、コマンド実行を可能にするための情報を有するデータパケットを含むデータ転送要求を送信する、及び
前記コマンドを実行する
ように構成される、前記装置。
【請求項２３】
装置が、前記ホストからデータ受信コマンドを前記コントローラで受信し、転送状態からデータ受信状態に移行し、前記ホストからデータを前記装置で受信することによって前記コマンドを実行するように構成される、請求項２２に記載の前記装置。
【請求項２４】
装置が、前記ホストからデータ送信コマンドを前記コントローラで受信し、転送状態からデータ送信状態に移行し、前記メモリデバイスから前記ホストにデータを送信することによって前記コマンドを実行するように構成される、請求項２２に記載の前記装置。
【請求項２５】
前記装置が、前記ホストからタスク管理機能要求コマンドを受信し、前記ホストに前記コマンド待ち行列内のいくつかのコマンドのそれぞれのステータスを送信するように構成される、請求項２２から２４のいずれか１項に記載の前記装置。
【請求項２６】
前記装置が、前記ホストからタスク管理機能要求コマンドを受信し、前記コマンド待ち行列のいくつかのコマンドのそれぞれを打ち切るように構成される、請求項２２から２４のいずれか１項に記載の前記装置。
【請求項２７】
装置が、前記コマンド待ち行列の前記いくつかのコマンドを打ち切り、前記ホストから以降の待ち行列に入れられたコマンド要求を受信すると、タスク待ち行列ステータスレジスタ及び前記例外イベントステータスフィールドの待ち行列エラービットをリセットするように構成される、請求項２６に記載の前記装置。
【請求項２８】
コントローラと、
前記コントローラに結合されたメモリデバイスと、
を備える装置であって、前記装置が、
ホストから待ち行列に入れられたコマンド要求を前記コントローラで受信し、前記待ち行列に入れられたコマンド要求を受信することに応えて、前記コントローラから前記ホストに、前記装置がコマンド待ち行列にコマンドを受け入れる準備が完了していることを示すコマンド応答を送信する、
前記コマンド応答を送信することに応えて、前記ホストからコマンドのためのコマンド記述子ブロックを前記コントローラで受信し、前記コントローラの前記コマンド待ち行列に前記コマンド記述子ブロックに記述される前記コマンドを追加する、
前記ホストから転送準備完了コマンドを前記コントローラで受信し、前記転送準備完了コマンドを受信することに応えて前記コントローラから前記ホストに、コマンド実行を可能にするための情報を有するデータパケットを含むデータ転送要求を送信する、及び
前記コマンドを実行する
ように構成される、前記装置。
【請求項２９】
前記装置が、前記ホストからデータを受信することによって前記コマンドを実行するように構成され、前記装置が、前記ホストに前記データバスの制御を変更する与え、データ送信状態からデータ受信状態に移行するように構成される、請求項２８に記載の前記装置。
【請求項３０】
装置がホストにデータを送信することによって前記コマンドを実行するように構成され、前記装置が前記データバスの制御を維持し、データ送信状態に留まるように構成される、請求項２８から２９のいずれか１項に記載の前記装置。
【請求項３１】
メモリデバイスを備えるメモリシステムと、
前記メモリシステムに結合されるホストと、
を備える装置であって、前記装置が、
前記ホストから前記メモリシステムに第１の数の待ち行列に入れられたコマンド要求を送信する、
前記第１の数の待ち行列に入れられたコマンド要求を受信することに応えて前記メモリシステムのコマンド待ち行列に第１の数のコマンドを入れる、
前記ホストから前記メモリシステムに第１の数の転送準備完了コマンドを送信し、前記第１の数の転送準備完了コマンドを受信することに応えて前記メモリシステムから前記ホストに、それぞれが前記ホスト及び前記メモリシステムでのコマンドの実行を可能にする情報を有するデータパケットを含む第１の数のデータ転送要求を送信する、
コマンドライン上で前記ホストから前記メモリシステムにいくつかのデータ受信コマンド及びいくつかのデータ送信コマンドを送信し、前記いくつかのデータ受信コマンド及び前記いくつかのデータ送信コマンドを送信することに応えて、データバス上で前記メモリシステムから前記ホストにデータを送信し、前記ホストから前記メモリシステムにデータを送信することによって前記第１の数のコマンドを並行して実行する
ように構成される、前記装置。
【請求項３２】
前記装置が、前記データバス上で前記メモリシステムから前記ホストにデータを送信する一方で、前記コマンドライン上で前記ホストから前記メモリシステムに前記いくつかのデータ受信コマンド及び前記いくつかのデータ送信コマンドを送信することによって前記第１の数のコマンドを同時に実行するように構成される、請求項３１に記載の前記装置。
【請求項３３】
前記装置が、前記データバス上で前記ホストから前記メモリシステムにデータを送信する一方で、前記コマンドライン上で前記ホストから前記メモリシステムに前記いくつかのデータ受信コマンド及び前記いくつかのデータ送信コマンドを送信することによって前記第１の数のコマンドを同時に実行するように構成される、請求項３１に記載の前記装置。
【請求項３４】
前記装置が、
前記ホストから前記メモリシステムに第２の数の待ち行列に入れられたコマンド要求を送信し、前記第１の数の待ち行列に入れられたコマンド要求を受信することに応えて、前記メモリシステムの前記コマンド待ち行列に前記第２の数のコマンドを入れる、及び
前記第１の数のコマンドの前記実行を中断し、第２の数のコマンドからのコマンドが実行のための最高の優先順位を有する前記コマンド待ち行列に入れられることを示すパラメ−タを含む前記第２の数のコマンドからの前記コマンドを実行する
ように構成される、請求項３１から３３のいずれか１項に記載の前記装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して半導体メモリ及び方法に関し、より詳細にはコマンドキューイングに関する。
【背景技術】
【０００２】
メモリデバイスは、通常、コンピュータまたは他の電子機器内の内部半導体、集積回路、及び／または外部取外し可能なデバイスとして提供される。揮発性メモリ及び不揮発性メモリを含んだ多くの異なるタイプのメモリがある。揮発性メモリはそのデータを維持するために電力を必要とすることがあり、とりわけランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、及び同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）を含むことがある。不揮発性メモリは、電力を供給されていないときに記憶されているデータを保持することができ、とりわけＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、相変化ランダムアクセスメモリ（ＰＣＲＡＭ）、抵抗変化型メモリ（ＲＲＡＭ）、スピントルク注入ランダムアクセスメモリ（ＳＴＴＲＡＭ）、及び磁気ランダムアクセスメモリ（ＭＲＡＭ）を含むことがある。
【０００３】
メモリデバイスは互いに結合して、埋め込まれた記憶解決策としてまたはソリッドステートドライブとして、例えばメモリデバイスを含むメモリカード等のメモリシステムを形成できる。メモリカード等のメモリシステムは、多様な他のタイプの不揮発性メモリ及び揮発メモリの中でも、例えばＮＡＮＤフラッシュメモリ及び／若しくはＮＯＲフラッシュメモリ等の不揮発性メモリを含むことがある、ならびに／または例えばＤＲＡＭ及び／若しくはＳＲＡＭ等の揮発性メモリを含むことがある。フラッシュメモリデバイスは、例えばフローティングゲート等の電荷蓄積構造内にデータを記憶するメモリセルを含むことがあり、幅広い範囲の電子用途のために不揮発性メモリとして活用されて良い。フラシュメモリデバイスは、通常、高メモリ密度、高信頼性、及び低消費電力を可能にする１トランジスタメモリセルを使用する。
【０００４】
ソリッドステートドライブは、性能、サイズ、重量、耐久性、動作温度範囲、及び電力消費の点でハードドライブに優る優位点を有することがあるので、メモリシステムは、コンピューティングシステムでいくつかのホストと使用されるポータブルメモリまたは埋込式記憶解決策として、及び／またはコンピューティングシステム用のメインストレージデバイスとしてハードディスクドライブに代わるために使用できる。例えば、メモリシステムは、メモリシステムに可動部品が欠如しているため磁気ディスクドライブとの比較時に優れた性能を有することがあり、このことが磁気ディスクドライブと関連付けられるシークタイム、待ち時間、及び他の電気機械遅延を回避して良い。メモリシステム製造業者は、内部電池電源を使用せず、したがってドライブがより多用途且つコンパクトとなることを可能にするメモリシステムを作成するために不揮発性メモリを使用できる。
【０００５】
メモリシステムは、例えば、いくつかのメモリチップ等、いくつかのメモリデバイスを含むことがある。当業者が理解するように、メモリチップは、例えば、ＬＵＮが１つまたは複数の金型であることがある、いくつかの金型及び／または論理ユニット（ＬＵＮ）を含むことがある。各金型は、いくつかのメモリアレイ及びメモリアレイ上の周辺回路網を含むことがある。メモリアレイは、いくつかの物理ページに編成されたいくつかのメモリセルを含むことがあり、物理ページはいくつかのブロックに編成できる。フラッシュメモリセルのアレイは一度に１ページ、プログラミングし、一度に１ブロック、消去できる。メモリシステムで実行される読取り動作、書込み動作、及び消去動作等の動作は、メモリシステム内でメモリデバイスによって動作を管理するために、メモリシステム内で利用可能なリソースの量で制限されることがある。
【図面の簡単な説明】
【０００６】
【図１】本開示のいくつかの実施形態に係るメモリシステムを含むコンピューティングシステムの形の装置のブロック図である。
【図２】本開示のいくつかの実施形態に係るメモリシステムでのコマンドキューイングのための方法の例を示す図である。
【図３】本開示のいくつかの実施形態に係るコマンドブロック記述子の例を示す図である。
【図４Ａ】本開示のいくつかの実施形態に係るメモリシステムのコマンド待ち行列でコマンドを実行するための方法の例を示す図である。
【図４Ｂ】本開示のいくつかの実施形態に係るメモリシステムのコマンド待ち行列でコマンドを実行するための方法の例を示す図である。
【図４Ｃ】本開示のいくつかの実施形態に係るメモリシステムのコマンド待ち行列でコマンドを実行するための方法の例を示す図である。
【図４Ｄ】本開示のいくつかの実施形態に係るメモリシステムのコマンド待ち行列でコマンドを実行するための方法の例を示す図である。
【図５】本開示のいくつかの実施形態に係るデータ転送要求に含まれるデータ転送要求ヘッダの例を示す図である。
【図６】本開示のいくつかの実施形態に係るメモリシステムでのコマンドキューイング及び実行のための方法の例を示す図である。
【発明を実施するための形態】
【０００７】
本開示はコマンドキューイングのための装置及び方法を含む。いくつかの実施形態は、ホストから待ち行列に入れられているコマンド要求をメモリシステムで受信することと、メモリシステムからホストに、メモリシステムがメモリシステムのコマンド待ち行列にコマンドを受け入れる準備ができていることを示すコマンド応答を送信することと、コマンド応答を送信することに応えて、ホストからコマンドのためのコマンド記述子ブロックをメモリシステムで受信することを含む。
【０００８】
本開示のいくつかの実施形態は、埋め込みマルチメディアカード（ｅ．ＭＭＣ）プロトコルを使用し制御されるコマンドのためにコマンドキューイング及び並行コマンド実行を組み込むことができる。ｅ．ＭＭＣプロトコルを使用しながら、コマンドキューイング及び並行コマンド実行を可能にするために、新しいコマンドクラスをｅ．ＭＭＣプロトコルのコマンドに導入し、追加することができる。例えば、ＣＭＤ４３等の待ち行列に入れられたコマンド要求コマンド、例えばＣＭＤ４４等の転送準備完了コマンド、例えばＣＭＤ４５等のタスク管理機能要求コマンド、例えばＣＭＤ４６等のデータ受信コマンド、及び例えばＣＭＤ４７等のデータ送信コマンドは、ｅ．ＭＭＣプロトコルにコマンドクラスとして追加できる。これらのコマンドは、メモリシステムのｅ．ＭＭＣ状態機械へのマイナーな変更で、またはメモリシステムのｅ．ＭＭＣ状態機械へ１つの状態変化を追加するだけで、コマンドキューイング及び並行コマンド実行を可能にするために、ｅ．ＭＭＣプロトコルの中に組み込むことができる。
【０００９】
本明細書に使用されるように、「いくつかの」何かは１つまたは複数の係ることを指すことがある。例えば、いくつかのメモリセルは１つまたは複数のメモリセルを指すことがある。さらに、本明細書に使用される記述子「Ｍ」及び「Ｎ」は、特に図面中の参照番号に関して、このように設計されたいくつかの特定の機能が、本開示のいくつかの実施形態で含むことができることを示す。
【００１０】
本明細書の図は、１つまたは複数の第１の数字が図面の図番号に相当し、残りの数字が図面中の要素または構成要素を識別する番号付けの規則に従う。異なる図の間の類似した要素または構成要素は、類似する数字を使用することにより識別されて良い。例えば、１０４は図１の要素「０４」を参照して良く、類似する要素は図２で２０４として参照されて良い。
【００１１】
図１は、本開示のいくつかの実施形態に係るメモリシステム１０４を含んだコンピューティングシステム１００の形の装置のブロック図である。本明細書に使用されるように、メモリシステム１０４、コントローラ１２５、またはメモリデバイス１３０−１、．．．、１３０−Ｎも別々に「装置」と見なされる可能性がある。メモリシステム１０４は、メモリカード等のいくつかのメモリシステムの内のいずれかであることがあり、ホストインタフェース１０６、コントローラ１２５、及び例えばＮＡＮＤフラッシュデバイス等のソリッドステートメモリデバイス等、メモリシステム１０４に記憶ボリュームを提供する複数のメモリデバイス１３０−１、．．．、１３０−Ｎを含むことがある。メモリシステム１０４は、バックプレーンまたはバス等のホストインタフェース１０６を介してホスト１０２に通信で結合できる。
【００１２】
ホスト１０２の例は、他のホストシステムの中でも、ラップトップコンピュータ、パーソナルコンピュータ、デジタルカメラ、デジタル記録装置及びデジタルプレイバック装置、携帯電話、ＰＤＡ、メモリカード読取装置、及びインタフェースハブを含むことがある。メモリシステム１０４は、例えば、他のコネクタ及びインタフェースの中でもシリアルアドバンスドテクノロジーアタッチメント（ＳＡＴＡ）、ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）、ユニバーサルシリアルバス（ＵＳＢ）、ファイバチャネル、またはイーサネット接続を含むことがある、ホストインタフェース１０６を介してホスト１０２に結合されるクラウドストレージネットワーキングインフラストラクチャの一部であることがある。ただし、一般に、ホストインタフェース１０６は、例えばコマンドライン及び／またはデータバス上でメモリシステム１０４とホスト１０２との間で制御信号、アドレス信号、データ信号、及び他の信号を渡すためのインタフェースを提供できる。
【００１３】
ホスト１０２は、例えばメモリ及びバス制御に通信で結合されるパラレルプロセッサ、コプロセッサ等のいくつかのプロセッサを含むことがある。いくつかのプロセッサはいくつかのマイクロプロセッサ、または例えばいくつかの特定用途向け集積回路（ＡＳＩＣ）等、いくつかの他のタイプの制御回路網であることがある。コンピューティングシステム１００の他の構成要素はプロセッサを有しても良い。メモリ及びバス制御は、例えばダイナミックランダムアクセスメモリ（ＤＲＡＭ）、グラフィックユーザーインタフェース、及び／または例えばディスプレイモニタ、キーボード、マウス等の他のユーザーインタフェース等、メモリ及びバス制御に直接的に通信で結合される他の構成要素を有することがある。
【００１４】
コントローラ１２５は、他の動作の中でもデータの読取り動作、書込み動作、及び消去動作を制御するために、例えばメモリデバイス１３０−１から１３０−Ｎ等のメモリと通信できる。コントローラ１２５は、例えば１つまたは複数の集積回路／論理等のハードウェア及び／若しくはファームウェア、ならびに／またはメモリへのアクセスを制御するため及び／若しくはホスト１０２とメモリとの間のデータ転送を容易にするためのソフトウェアの形のいくつかの構成要素を含むことがある。
【００１５】
図１に示される例では、コントローラ１２５はコマンド待ち行列１２６及びステータスレジスタ１２７を含む。しかしながら、コントローラ１２５は、本開示の実施形態を分かりにくくしないために図示されていない多様な他の構成要素を含むことがある。また、コマンド待ち行列１２６及びステータスレジスタ１２７はコントローラ１２５に常駐しているとして示されているが、いくつかの実施形態では、コマンド待ち行列１２６及びステータスレジスタ１２７は、例えば独立した構成要素としてシステム１００内の他の場所に常駐して良い、またはシステムの異なる構成要素に常駐して良い。
【００１６】
コマンド待ち行列１２６は、実行のためにホスト１０２からメモリシステム１０４によって受信されるいくつかのコマンドを含むことがある。コマンド待ち行列１２６は、コマンド待ち行列１２６内のコマンドのそれぞれのためのコマンド記述子ブロックに含まれるコマンドと関連付けられる情報を含むことがある。ステータスレジスタ１２７は、コマンド待ち行列１２６内のコマンドのそれぞれについて、例えばタスク休止、タスク有効化、タスク完了、タスクエラー、及び／またはタスク打切り等のステータス情報を記憶するレジスタであることがある。コマンド待ち行列１２６及びステータスレジスタ１２７は、例えばコマンドと関連付けられた情報を記憶するために、例えばＤＲＡＭメモリセル等の揮発性メモリセル、及び／またはフラッシュメモリセル、ＲＲＡＭメモリセル、ＭＲＡＭメモリセル、ＳＴＴＲＡＭメモリセル、及び／またはＰＣＲＡＭメモリセル等の不揮発性メモリを含むことがある。コマンド待ち行列１２６内のコマンドの実行中にホストから受信されるデータは、メモリデバイス１３０−１から１３０−Ｎに記憶される前に、ＥＣＣモジュールによってデータに対してエラー訂正符号（ＥＣＣ）動作を実行させることがある。
【００１７】
メモリシステム１０４は、メモリデバイス１３０−１、．．．１３０−Ｎとコントローラ１２５との間で、例えばデータ信号、制御信号、及び／またはアドレス信号等の多様な信号及び／またはコマンドを送信／受信するためにバス１２０を含む。図１に示されている例は単一のバス１２０を含んでいるが、メモリシステム１０４は、いくつかの実施形態では、いくつかの別々のデータバス、制御バス、及び／またはアドレスバス等、例えばチャネル等のいくつかのバスを含むことがある。バス１２０は複数のメモリデバイス１３０−１、．．．、１３０−Ｎによって共有され、オープンＮＡＮＤフラッシュインタフェース（ＯＮＦＩ）に関係するバス構造を含むが、これに限定されるものではない多様なタイプのバス構造を有することがある。また、バス１２０は、コンパクトフラッシュインタフェース、マルチメディアカード（ＭＭＣ）、セキュアデジタル（ＳＤ）、家庭用電化製品アドバンスドテクノロジーアタッチメント（ＣＥ−ＡＴＡ）、業界標準アーキテクチャ（ＩＳＡ）、マイクロチャネルアーキテクチャ（ＭＣＡ）、拡張ＩＳＡ（ＥＩＳＡ）、インテリジェントドライブエレクトロニクス（ＩＤＥ）、ＶＥＳＡローカルバス（ＶＬＢ）、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）、カードバス、ユニバーサルシリアルバス（ＵＳＢ）、アドバンスドグラフィックスポート（ＡＧＰ）、パーソナルコンピュータメモリカードインターナショナルアソシエーションバス（ＰＣＭＣＩＡ）、ファームウェア（ＩＥＥＥ  １３９４）、及び小型コンピュータ用周辺機器インタフェース（ＳＣＳＩ）を含むが、これらに限定されない多様なタイプのバス構造を含むことがある。バス１２０は、例えば配線で接続された共有物理バスであることがある。
【００１８】
図１に示されるコンピューティングシステム１００は係るシステムの一例である。しかしながら、本開示の実施形態は図１に図示される構成に制限されていない。
【００１９】
図１に示されるように、メモリデバイス１３０−１、．．．、１３０−Ｎは、メモリシステム１０４に記憶ボリュームを提供するいくつかのメモリアレイ１１２−１、１１２−２、．．．、１１２−Ｍを含むことがあるいくつかの金型及び／またはチップを含むことがある。メモリアレイ１１２−１、１１２−２、．．．、１１２−Ｍは、その上に周辺回路網を含むことがある。いくつかの実施形態では、メモリアレイ１１２−１、１１２−２、．．．、１１２−Ｍは、ホストインタフェース１０６を介してホスト１０２からのコマンドを独立して実行する、及び／またはホストインタフェース１０６を介してホスト１０２にステータスを送信することができるメモリシステム１０４の最小構成要素であることがある。メモリアレイ１１２−１、１１２−２、．．．、１１２−Ｍは、例えばＮＡＮＤアーキテクチャを有するフラッシュメモリアレイを含むことがある。しかしながら、実施形態は特定のタイプのメモリアレイまたはアレイアーキテクチャに制限されず、ＲＲＡＭメモリセル、ＭＲＡＭメモリセル、ＳＴＴＲＡＭメモリセル、及び／またはＰＣＲＡＭメモリセルを有するメモリアレイを含むことがあるだろう。
【００２０】
図１に示される実施形態は、本開示の実施形態を分かりにくくしないために図示されていない追加の回路網、論理、及び／または構成要素を含むことがある。例えば、メモリデバイス１３０−１、．．．、１３０−Ｎは、Ｉ／Ｏ回路網を通してＩ／Ｏコネクタ上で提供されるアドレス信号をラッチするためにアドレス回路網を含むことがある。信号は、メモリシステム１０２にアクセスするために行デコーダ及び列デコーダによって受信され、復号されることがある。
【００２１】
図２は本開示のいくつかの実施形態に係るメモリシステムでのコマンドキューイングのための方法の例を示す図である。図２で、例えばＣＭＤ４３等の待ち行列に入れられたコマンド要求２４０−１は、ホスト２０２からメモリシステム２０４に送信できる。待ち行列に入れられたコマンド要求２４０−１はメモリシステム２０４に対し、ホスト２０２が、メモリシステム２０４がメモリシステム２０４のコマンド待ち行列に追加するためにメモリシステム２０４にコマンドを送信することを希望していることを示すことがある。メモリシステム２０４は、待ち行列に入れられたコマンド要求を受信することに応えて、ホストにコマンド応答２４２−１を送信できる。コマンド応答２４２−１は、例えば、コマンド待ち行列がいっぱいである等、メモリシステム２０４がコマンド待ち行列にコマンドを受け入れる準備が完了していないことを示す、一（１）に設定される待ち行列ビジービットを含むことがある。ホスト２０２が、待ち行列ビジービットが一（１）に設定されたコマンド応答２４２−１を受信するとき、ホスト２０２はメモリシステム２０４にコマンドブロック記述子を送り返さない。いくつかの実施形態では、ホスト２０２は、メモリシステム２０４が待ち行列ビジービットがゼロ（０）に設定されたコマンド応答を送り返すまで、メモリシステム２０４にいくつかの待ち行列に入れられたコマンド要求を送信できる。例えば、しばらくすると、ホスト２０２はメモリシステム２０４に、待ち行列に入れられたコマンド要求２４０−１と同じ情報を含む別の待ち行列に入れられたコマンド要求２４０−Ｐを送信できる。メモリシステム２０４のコマンド待ち行列がコマンド待ち行列に追加するためのコマンドを受け入れる準備が完了している場合、メモリシステム２０４はホスト２０２に、メモリシステム２０４がコマンド待ち行列にコマンドを追加する準備が完了していることを示す、待ち行列ビジービットがゼロ（０）に設定されたコマンド応答２４２−０を送信できる。ホスト２０２は、メモリシステム２０４にコマンド記述子ブロック２４４を送信し、メモリシステム２０４はコマンド待ち行列に、コマンド記述子ブロック２４４に記述されるコマンドを入れる。コマンド記述子ブロック２４４は、ホスト２０２及びメモリシステム２０４がコマンドを実行する準備が完了しているときに、ホスト２０２及びメモリシステム２０４がコマンドを実行できるようにするコマンドに関する情報を含む。
【００２２】
いくつかの実施形態では、ホスト２０２は、メモリシステム２０４に、例えばＣＭＤ４５等のタスク管理機能要求コマンドを送信できる。タスク管理機能要求コマンドは、例えば図１のステータスレジスタ１２７等のステータスレジスタをチェックして、例えば、図１のコマンド待ち行列１２６等のコマンド待ち行列でコマンドのそれぞれのステータスを決定するために使用できる。メモリシステム２０４はホスト２０２に、コマンド待ち行列内のコマンドのそれぞれのステータスを返すことができる。いくつかの実施形態では、タスク管理機能要求コマンドは、コマンド待ち行列を打ち切る表示とともにホスト２０２からメモリシステム２０４に送信することができ、それによりコマンド待ち行列内のコマンドのそれぞれはメモリシステム２０４によって打ち切られる。また、例えばＣＭＤ１２等の停止コマンド、及び／または高優先順位中断（ＨＰＩ）コマンドは、ホスト２０２からメモリシステム２０４に送信することができ、このことがメモリシステム２０４にコマンド待ち行列を打ち切らせる。
【００２３】
いくつかの実施形態では、コマンド待ち行列がコマンドを受け入れる準備が完了していることを示すいくつかのコマンド応答を受信することに応えて、いくつかのコマンドは、ホストがメモリシステムにいくつかの待ち行列に入れられたコマンド要求を、次いでメモリシステムにいくつかのコマンド記述子ブロックを送信するときにコマンド待ち行列に追加できる。いくつかの待ち行列に入れられたコマンド要求はコマンドライン上でホストから受信でき、これによりコマンド待ち行列からのコマンドがデータバス上でメモリシステムで実行されている間に、待ち行列に入れられたコマンド要求はメモリシステムによって受信され、メモリシステムによって応答できる。
【００２４】
図３は、本開示のいくつかの実施形態に係るコマンドブロック記述子３４４の例を示す。図３で、コマンドブロック記述子３４４は、コマンドブロック記述子３４４に含まれる情報に従ってコマンドをコマンド待ち行列に入れ、実行できるように、コマンドと関連付けられた情報を提供するいくつかのフィールドを含む。コマンドブロック記述子は、他の数のバイトの中でも例えば３２バイトを含むことがある。この例で、コマンドブロック記述子３４４は３２バイトを含むことがあり、ｂｙｔｅ０はコマンド動作コード３４１と関連付けられ、ｂｙｔｅ１はコマンド優先順位情報３４３と関連付けられ、ｂｙｔｅ２は予約され、ｂｙｔｅ３はコマンドタスクタグ３４５と関連付けられ、ｂｙｔｅｓ４から７はコマンド引数３４６と関連付けられ、ｂｙｔｅｓ８から１１はコマンド開始アドレス３４８と関連付けられ、ｂｙｔｅｓ１２から１３は予約され、ｂｙｔｅｓ１４から１５はコマンドブロックカウント３４９と関連付けられ、ｂｙｔｅｓ１６から３１は予約される。例として、コマンド動作ｂｙｔｅ３４１は、読取りコマンドに対応する０１ｈの値に設定できる。コマンド動作ｂｙｔｅ３４１は、書込みコマンドに対応する０２ｈの値に設定できる。コマンド優先順位情報３４３は、コマンド待ち行列内の実行のために優先順位の順序を示すことがある。コマンド優先順位情報３４３バイトは、コマンドが優先順位なしにコマンド待ち行列に入れられる単純な優先順位に対応する００ｈの値に設定できる。コマンド優先順位情報３４３バイトは、メモリシステムがいつコマンドを受信したのかに基づいてコマンドが時系列的に実行されるように、コマンドがコマンド待ち行列に入れられる順序付けられた優先順位に対応する０１ｈの値に設定できる。コマンド優先順位情報３４３バイトは、コマンドが次に実行されるコマンドである待ち行列の先頭優先順位に対応する０２ｈの値に設定できる。コマンドタスクタグ３４５バイトは、コマンド待ち行列内の他のコマンドからコマンドを区別するために使用される一意の識別子に対応することがある。コマンドタスクタグｂｙｔｅ３４５は、００ｈからＦＦｈに至る値に設定できる。例えば、確実な書込みまたは強制プログラミング要求等のコマンド引数３４６、コマンド開始アドレス３４８、及びコマンドブロック３４９カウントは、ｅ．ＭＭＣプロトコルに従った値に設定できる。
【００２５】
いくつかの実施形態では、コマンド記述子ブロックは、例えば３２バイト未満等、任意の数のバイトを含むことがある。例えば、他の情報の中でも、コマンド優先順位、コマンドタグ、タスク属性、コマンド引数、及び／またはブロックカウント等のなんらかの情報が待ち行列に入れられたコマンド要求の中に含まれるとき、コマンド記述子ブロックは３２バイト未満を含むことがある。
【００２６】
図４Ａから図４Ｄは、本開示のいくつかの実施形態に係るメモリシステム４０４のコマンド待ち行列のコマンドを実行するための方法の例を示す。図４Ａでは、いったんホスト４０２がメモリシステム４０４のコマンド待ち行列に１つまたは複数のコマンドを送信すると、ホスト４０２は、ホスト４０２がデータを送信または受信する準備が完了すると、メモリシステム４０４に例えばＣＭＤ４４等の転送準備完了コマンド４５０を送信できる。メモリシステム４０４は、転送準備完了コマンド４５０を受信することに応えて、ホスト４０２にデータ転送要求４５２−０を送信できる。データ転送要求４５２−０は、次に実行の準備が完了しているコマンド待ち行列内のコマンドに対応することがある。いくつかの実施形態では、データ転送要求は、メモリシステム４０４がデータを送信または受信する準備が完了してない場合、否定応答を提供し、データ転送を要求しなくて良い。いくつかの実施形態では、データ転送要求は、データバスを使用するのではなく、コマンド／応答信号を使用し、送達されて良い。データ転送要求４５２−０は、コマンド実行のとき、データ転送の方向を示す方向ビットを含むことがある。例えば、１に設定される方向ビットは、コマンドが、データがホストからメモリシステムに送信される書込みコマンドであることを示す。データ転送要求４５２−０は、コマンド待ち行列からのどのコマンドが実行されているのを識別するためにコマンドタグフィールドを含むことがあり、データのどの部分が転送される必要があるのかを示すためにデータオフセットフィールド及びデータサイズフィールドを含むこともある。図４Ａで、転送準備完了コマンドを受信することに応えて送信されるデータ転送要求４５２−０は、コマンドが、データがメモリシステムからホストに送信される読取りコマンドであることを示す、０に設定される方向ビットを含む。データ転送要求４５２−０で０に設定される方向ビットは、メモリシステム４０４がバスの制御を維持し、メモリシステム４０４からホスト４０２にコマンドで要求される読取りデータを送信できるようにする。メモリシステム４０４は、データ転送要求の方向ビットが０に設定されているときデータ送信状態に留まり、したがっていくつかの実施形態では、方向ビットが０に設定されたデータ転送要求はメモリシステム４０４で状態変化を引き起こさない。いくつかの実施形態では、メモリシステムは、メモリシステム４０４が方向ビットが０に設定されたデータ転送要求を送信するときにメモリシステム４０４がデータ送信状態に留まるように構成できる。
【００２７】
図４Ｂで、いったんホスト４０２がメモリシステム４０４のコマンド待ち行列に１つまたは複数のコマンドを送信すると、ホスト４０２は、ホスト４０２がデータを送信または受信する準備が完了すると、メモリシステム４０４に例えばＣＭＤ４４等の転送準備完了コマンド４５０を送信できる。メモリシステム４０４は、転送準備完了コマンド４５０を受信することに応えて、ホスト４０２に、コマンドの実行中のデータ転送の方向を示すために方向ビットを含むデータ転送要求４５２−１を送信できる。いくつかの実施形態では、メモリシステム４０４がデータを送信または受信する準備が完了していない場合、データ転送要求は否定応答を提供し、データ転送を要求しなくて良い。いくつかの実施形態では、データ転送要求は、データバスを使用するのではなくコマンド／応答信号を使用し、送達されて良い。図４Ｂで、転送準備完了コマンドを受信することに応えて送信されるデータ転送要求４５２−１は、書込みコマンドに対応する、１に設定された方向ビットを含む。データ転送要求４５２−１は、コマンド待ち行列からのどのコマンドが実行されているのかを識別するためにコマンドタグフィールドを含むことがあり、データのどの部分が転送される必要があるのかを示すためにデータオフセットフィールド及びデータサイズフィールドを含むこともある。データ転送要求４５２−１で１に設定される方向ビットは、ホスト４０２がバスを制御し、ホスト４０２からメモリシステム４０４にコマンドで要求された書込みデータを送信できるようにする。メモリシステム４０４は、データ転送要求４５２−１の方向ビットが１に設定されるとき、データ送信状態からデータ受信状態に移行する。いくつかの実施形態では、メモリシステムの状態機械は、メモリシステム４０４が方向ビットが１に設定されたデータ転送要求を送信するときに、メモリシステム４０４がデータ送信状態からデータ受信状態に変化するように構成できる。
【００２８】
図４Ｃで、いったんホスト４０２がメモリシステム４０４のコマンド待ち行列に１つまたは複数のコマンドを送信すると、ホスト４０２は、ホスト４０２がデータを送信または受信する準備が完了すると、メモリシステム４０４に例えばＣＭＤ４４等の転送準備完了コマンド４５０を送信できる。メモリシステム４０４は、転送準備完了コマンド４５０を受信することに応えて、ホスト４０２に、コマンドの実行中のデータ転送の方向を示すために方向ビットを含むデータ転送要求４５２−０で応答できる。いくつかの実施形態では、データ転送要求は、メモリシステム４０４がデータを送信または受信する準備が完了していない場合、否定応答を提供し、データ転送を要求しなくて良い。いくつかの実施形態では、データ転送要求は、データバスを使用するのではなく、コマンド／応答信号を使用し送達されて良い。図４Ｃで、転送準備完了コマンド４５０を受信することに応えて送信されたデータ転送要求４５２−０は、読取りコマンドに対応する、０に設定された方向ビットを含む。データ転送要求４５２−０は、コマンド待ち行列からどのコマンドが実行されているのかを識別するためにコマンドタグフィールドを含むことがあり、データのどの部分が転送される必要があるのかを示すためにデータオフセットフィールド及びデータサイズフィールドを含むこともある。方向ビットが０に設定されたデータ転送要求４５２−０を受信することに応えて、ホスト４０２はメモリシステム４０４に、例えばＣＭＤ４７等のデータ送信コマンド４５８を送信する。データ送信コマンド４５８は、メモリシステム４０４にホスト４０２にデータを送信するように要求し、したがってメモリシステム４０４は転送状態からデータ送信状態に移行し、メモリシステム４０４はバスを制御し、メモリシステム４０４からホスト４０２にコマンドで要求された読取りデータを送信する。すべてのデータが転送されると、メモリシステム４０４はデータ送信状態から転送状態に戻る。いくつかの実施形態では、メモリシステムの状態機械は、メモリシステム４０４が、データ転送要求４５２−０を送信後にデータ送信状態から転送状態に変化し、次いでメモリシステム４０４がホストからデータ送信コマンド４５８を受信すると、転送状態からデータ送信状態に変化するように構成できる。
【００２９】
図４Ｄで、いったんホスト４０２がメモリシステム４０４のコマンド待ち行列に１つまたは複数のコマンドを送信すると、ホスト４０２は、ホスト４０２がデータを送信または受信する準備が完了するとき、メモリシステム４０４に例えばＣＭＤ４４等の転送準備完了コマンド４５０を送信できる。メモリシステム４０４は、転送準備完了コマンド４５０を受信することに応えて、ホスト４０２に、コマンドの実行中のデータ転送の方向を示すために方向ビットを含むデータ転送要求４５２−１を送信できる。いくつかの実施形態では、データ転送要求は、メモリシステム４０４がデータを送信または受信する準備が完了していない場合、否定応答を提供し、データ転送を要求しなくて良い。いくつかの実施形態で、データ転送要求は、データバスを使用するのではなく、コマンド／応答信号を使用し、送達されて良い。図４Ｄで、転送準備完了コマンド４５０を受信することに応えて送信されたデータ転送要求４５２−１は、書込みコマンドに対応する、１に設定された方向ビットを含む。データ転送要求４５２−１は、コマンド待ち行列からどのコマンドが実行されているのかを識別するためにコマンドタグフィールドを含むことがあり、データのどの部分が転送される必要があるのかを示すためにデータオフセットフィールド及びデータサイズフィールドを含むこともある。方向ビットが１に設定されたデータ転送要求４５２−１を受信することに応えて、ホスト４０２はメモリシステム４０４に、例えばＣＭＤ４６等のデータ受信コマンド４６０を送信する。データ受信コマンド４６０はメモリシステム４０４に、メモリシステム４０４がホスト４０２からデータを受信することを示し、したがってメモリシステム４０４は転送状態からデータ受信状態に移行し、メモリシステム４０４は、ホスト４０２がバスを制御し、ホスト４０２からメモリシステム４０４にコマンドで要求された書込みデータを送信できるようにする。すべてのデータが転送されると、メモリシステム４０４はデータ受信状態から転送状態に戻る。
【００３０】
いくつかの実施形態では、メモリシステムの状態機械は、メモリシステム４０４がデータ転送要求を送信後にデータ送信状態から転送状態に変化し、次いでメモリシステム４０４がホスト４０２からデータ受信コマンド４６０を受信すると転送状態からデータ受信状態に変化するように構成できる。
【００３１】
いくつかの実施形態では、エラーがコマンドの実行中に発生すると、コマンドは失敗する。メモリシステムは、コマンドの実行中にエラーがあったことを示すエラービットを有するコマンド応答で、ホストからの追加の待ち行列に入れられたコマンド要求に応えることができる。また、ホストは、コマンド待ち行列内のコマンドのステータスに関する更新を受け取るためにタスク管理機能要求コマンドでメモリシステムに問い合わせることもできる。
【００３２】
図５は、本開示のいくつかの実施形態に従ってデータ転送要求に含まれるデータ転送要求ヘッダ５５２の例を示す。図５で、データ転送要求ヘッダ５５２は、コマンドをホストによって識別し、メモリデバイスによって実行できるようにコマンドと関連付けられた情報を提供するいくつかのフィールドを含む。データ転送要求ヘッダは、他の数のビットの中でも、例えば３２ビットを含むことがある。データ転送要求ヘッダ５５２は３２バイトを含み、ｂｙｔｅｓ０から１は予約され、ｂｙｔｅ２は転送方向５５１と関連付けられ、ｂｙｔｅ３はコマンドタスクタグ５４５と関連付けられ、ｂｙｔｅｓ４から１１は予約され、ｂｙｔｅｓ１２から１３はデータバッファオフセット５５３と関連付けられ、ｂｙｔｅｓ１４から１５はコマンド転送長さ５５５と関連付けられ、ｂｙｔｅｓ１６から３１は予約される。転送方向５５１バイトは、読取りコマンドに対応する００ｈの値に設定できる。転送方向５５１バイトは、書込みコマンドに対応する０１ｈの値に設定できる。コマンドタスクタグ５４５バイトは、実行されるコマンド待ち行列の他のコマンドからコマンドを区別し、識別するために使用される一意の識別子に対応できる。コマンドタスクタグ５４５バイトは、００ｈからＦＦｈに至る値に設定できる。データバッファオフセット５５３は、タスクの完全なデータ転送の中のデータ転送のオフセットであることがある。データ転送要求５５２は任意の数のバイトから構成されて良い。例えば、データ転送要求は、たとえ上述された同じフィールドを含んでいても、データ転送要求がコマンド／応答信号を使用し送達されるとき３２バイト未満から構成されて良い。
【００３３】
図６は、本開示のいくつかの実施形態に係るメモリシステムでのコマンドキューイング及び実行のための方法の例を示す。図６に示される方法は、並行して実行されるいくつかのコマンドを含み、コマンド及びコマンド応答は、コマンドと関連付けられたデータがデータバス上でメモリシステムとホストとの間で転送されている間に、コマンドライン上でホストとメモリシステムとの間で送信される。したがって、いくつかの実施形態では、データバスはコマンドラインで送信されるコマンドに基づいてホストまたはメモリシステムによって制御でき、データバスは、コマンドがコマンドライン上で送信されている間にホストとメモリデバイスの間でデータを転送し、使用できる。例えば、コマンドは、ホストとメモリシステムとの間で送信されるコマンドを介してコマンド待ち行列に追加できる。一方、コマンド待ち行列内のコマンドと関連付けられたデータはデータバスでホストとメモリシステムとの間で送信される。
【００３４】
図６で、第１のコマンド６４７−１と関連付けられた、例えばＣＭＤ４３等の第１の待ち行列に入れられたコマンド要求６４０−１は、ホスト６０２からメモリシステム６０４に送信される。第１のコマンド６４７−１は４ＫＢの読取りコマンドである。それに応じて、メモリシステム６０４はコマンド応答（不図示）を送信でき、ホスト６０２は、第１のコマンド６４７−１をコマンド待ち行列に追加できるように、第１のコマンドのためのコマンドブロック記述子（不図示）を送信できる。
【００３５】
第２のコマンド６４７−２と関連付けられた、例えばＣＭＤ４３等の第２の待ち行列に入れられたコマンド要求６４０−２は、ホスト６０２からメモリシステム６０４に送信される。第２のコマンド６４７−２は１６ＫＢの書込みコマンドである。それに応じて、メモリシステム６０４はコマンド応答（不図示）を送信でき、ホスト６０２は、第２のコマンド６４７−２をコマンド待ち行列に追加できるように、第２のコマンドのためのコマンドブロック記述子（不図示）を送信できる。コマンド待ち行列はここで、実行のために準備完了した２つのコマンド、つまり第１のコマンド６４７−１及び第２のコマンド６４７−２を有する。
【００３６】
例えばＣＭＤ４４等の転送準備完了コマンド６５０−１は、コマンドライン６０５上でホスト６０２からメモリシステム６０４に送信される。図６で、メモリシステム６０４はコマンドを実行する準備が完了しておらず、ホスト６０２にこのようなことを示すコマンド応答を送信する。ホスト６０２は、しばらくしてから次いでメモリシステム６０４に再び、例えばＣＭＤ４４等の転送準備完了コマンド６５０−１を送信する。メモリシステム６０４は、コマンド、４ＫＢ読取りコマンド６４７−１、及びデータ転送の方向を識別するデータ転送要求６５２−１で転送準備完了コマンド６５０−１に応答する。ホスト６０２は、データ転送要求６５２−１を受信することに応えて、メモリシステム６０４にデータバス６０６を制御させ、第１のコマンド６４７−１と関連付けられたデータ６５７−１の４ＫＢを送信させる、例えばＣＭＤ４７等のデータ送信コマンド６５８−１を送信する。
【００３７】
第１のコマンド６４７−１と関連付けられたデータの４ＫＢが、データバス６０６上でメモリシステム６０４からホスト６０２に送信されている間に、例えばＣＭＤ４４等の転送準備完了コマンド６５０−２、及び第３のコマンド６４７−３と関連付けられた、ＣＭＤ４３等の第３の待ち行列に入れられたコマンド要求６４０−３はコマンドライン６０５上でホスト６０２からメモリシステム６０４に送信される。第３のコマンド６４７−３は、メモリシステム６０４が第３の待ち行列に入れられたコマンド要求６４０−３にコマンド応答（不図示）を送信すると、コマンド待ち行列に加えられ、ホスト６０２は、第３のコマンド６４７−３をコマンド待ち行列に加えることができるように第３のコマンドのためのコマンドブロック記述子（不図示）を送信できる。メモリシステム６０４は、第２のコマンド６４７−２、１６ＫＢの書込みコマンド、データ転送の方向、ならびに例えばデータオフセット及びデータサイズ等の転送されるデータの部分を識別するデータ転送要求６５２−２で転送準備完了コマンド６５０−２に応答する。ホスト６０２は、データ転送要求６５２−２を受信することに応えて、ホスト６０２にデータバス６０６を制御させ、メモリシステム６０４に第２のコマンド６４７−２と関連付けられたデータ６５７−２の８ＫＢを送信させる、例えばＣＭＤ４６等のデータ受信コマンド６６０−２を送信する。
【００３８】
第２のコマンド６４７−２と関連付けられたデータの８ＫＢがデータバス６０６上でホスト６０２からメモリシステム６０４に送信されている間に、例えばＣＭＤ４４等の転送準備完了コマンド６５０−３がコマンドライン６０５上でホスト６０２からメモリシステム６０４に送信される。メモリシステム６０４は、第３のコマンド６４７−３、８ＫＢの読取りコマンド、及びデータ転送の方向を識別するデータ転送要求６５２−３をコマンドライン６０５上で送信することによって転送準備完了コマンド６５０−３に応答する。第３のコマンド６４７−３に示される優先順位はコマンド６４７−２よりも高い優先順位であったため、コマンド６４７−３は次に実行され、第２のコマンド６４７−２の実行は、例えば第２のコマンド６４７−２と関連付けられた１６ＫＢの内の８ＫＢだけがホスト６０２からメモリシステム６０４に送信された状態で休止される。一方、第３のコマンドは実行される。ホスト６０２は、データ転送要求６５２−３を受信することに応えて、メモリシステム６０４にデータバス６０６を制御させ、第３のコマンド６４７−３と関連付けられたデータ６５７−３の８ＫＢを送信させる、例えばＣＭＤ４７等のデータ送信コマンド６５８−３を送信する。
【００３９】
第４のコマンド６４７−４と関連付けられた、例えばＣＭＤ４３等の第４の待ち行列に入れられたコマンド要求６４０−４は、ホスト６０２からメモリシステム６０４に送信される。第４のコマンド６４７−４は８ＫＢの読取りコマンドである。それに応じて、メモリシステム６０４はコマンド応答（不図示）を送信でき、ホスト６０２は、第４のコマンド６４７−４をコマンド待ち行列に加えることができるように第４のコマンドのためのコマンドブロック記述子（不図示）を送信できる。コマンド待ち行列はここで３つのコマンド、つまり部分的に実行された第２のコマンド６４７−２、及び実行中である第３のコマンド６４７−３、及び実行準備が完了している第４のコマンド６４７−４を有する。
【００４０】
第３のコマンド６４７−３と関連付けられたデータの８ＫＢが、データバス６０６上でメモリシステム６０４からホスト６０２に送信されている間に、例えばＣＭＤ４４等の転送準備完了コマンド６５０−２がコマンドライン６０５上で再びホスト６０２からメモリシステム６０４に送信され、これにより第２のコマンド６４７−２の実行は再開して良い。メモリシステム６０４は、第２のコマンド６４７−２、１６ＫＢの書込みコマンド、データ転送の方向、ならびに例えばデータオフセット及びデータサイズ等の転送されるデータの部分を識別するデータ転送要求６５２−２で転送準備完了コマンド６５０−２に応答する。ホスト６０２は、データ転送要求６５２−２を受信することに応えて、ホスト６０２にデータバス６０６を制御させ、メモリシステム６０４に第２のコマンド６４７−２と関連付けられたデータ６５７−２の８ＫＢを送信させて第２のコマンド６４７−２の実行を完了する、例えばＣＭＤ４６等のデータ受信コマンド６６０−２を送信する。
【００４１】
第２のコマンド６４７−２と関連付けられたデータの８ＫＢがデータバス６０６上でホスト６０２からメモリシステム６０４に送信されている間に、例えばＣＭＤ４４等の転送準備完了コマンド６５０−４はコマンドライン６０５上でホスト６０２からメモリシステム６０４に送信される。メモリシステム６０４は、第４のコマンド６４７−４、８ＫＢの読取りコマンド、及びデータ転送の方向を識別するデータ転送要求６５２−４で転送準備完了コマンド６５０−４に応答する。ホスト６０２は、データ転送要求６５２−４を受信することに応えて、メモリシステム６０４にデータバス６０６を制御させ、第４のコマンド６４７−４と関連付けられたデータ６５７−４の８ＫＢを送信させる、例えばＣＭＤ４７等のデータ送信コマンド６５８−４を送信する。
【００４２】
ホスト６０２は、メモリシステム６０４に転送準備完了コマンド６５０−５及び６５０−６を送信するが、コマンド待ち行列は空であり、したがってメモリシステム６０４はホスト６０２に、コマンド待ち行列が空であることを示すコマンド応答（不図示）を送信する、及び／またはメモリシステム６０４はコマンド６５０−５及び６５０−６に応えてデータ転送要求を送信しない。
【００４３】
特定の実施形態が本明細書に示され、説明されているが、当業者は、同じ結果を達成するために計算された構成が示されている特定の実施形態の代わりに使用できることを理解するだろう。本開示は本開示のいくつかの実施形態の適応または変形をカバーすることを目的とする。上記説明が、制限的な様式ではなく例示的な様式で行われていることが理解されるべきである。上記実施形態、及び本明細書に具体的に説明されていない他の実施形態の組合せは、上記説明を検討すると当業者に明らかになるだろう。本開示のいくつかの実施形態の範囲は、上記の構造及び方法が使用される他の用途を含む。したがって、本開示のいくつかの実施形態の範囲は添付請求項に関して、係る特許請求の範囲が権利がある完全な範囲の同等物とともに決定されるべきである。
【００４４】
上記の発明を実施するための形態では、いくつかの特徴は本開示を合理化する目的で単一の実施形態にともにまとめられている。この開示方法は、本開示の開示されている実施形態が各請求項に明示的に記載されるよりも多くの特徴を使用しなければならない旨の意図を反映するとして解釈されるべきではない。むしろ、以下の特許請求の範囲が反映するように、本発明の主題は単一の開示されている実施形態のすべてに満たない特徴にある。したがって、以下の特許請求の範囲は、各請求項がそれ自体別の実施形態として自立した状態でこれにより発明を実施するための形態に組み込まれる。
【図１】
2017513089.tif 000003
【図２】
2017513089.tif 000004
【図３】
2017513089.tif 000005
【図４Ａ】
2017513089.tif 000006
【図４Ｂ】
2017513089.tif 000007
【図４Ｃ】
2017513089.tif 000008
【図４Ｄ】
2017513089.tif 000009
【図５】
2017513089.tif 000010
【図６】
2017513089.tif 000011
【手続補正書】
【提出日】平成28年8月24日(2016.8.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピューティングシステムでのコマンドキューイング方法であって、
ホスト（１０２）から待ち行列に入れられたコマンド要求（２４０）をメモリシステム（１０４）で受信することであって、前記待ち行列に入れられたコマンド要求が前記メモリシステムに対し、前記ホストが、前記メモリシステムが前記メモリシステムのコマンド待ち行列に含むためのコマンドを送信する準備が完了していることを示す、受信することと、
前記メモリシステム（１０４）から前記ホスト（１０２）に、前記メモリシステムが前記メモリシステム（１０４）のコマンド待ち行列（１２６）にコマンドを受け入れる準備が完了していることを示すコマンド応答（２４２）を送信することと、
前記コマンド応答（２４２）を送信することに応えて、前記ホスト（１０２）から前記コマンドのためのコマンド記述子ブロック（２４４）を前記メモリシステム（１０４）で受信することと、
前記ホストから前記メモリシステムへのデータ転送を示す転送ビットの方向に応えて前記メモリシステムから前記ホストにデータ受信コマンドを送信し、前記メモリシステムから前記ホストへのデータ転送を示す転送ビットの前記方向に応えて前記ホストからデータ送信コマンドを受信することによって前記コマンドを実行すること、
を含む、前記コマンドキューイング方法。
【請求項２】
前記方法が、前記メモリシステム（１０４）の前記コマンド待ち行列（１２６）に、前記コマンド記述子ブロック（２４４）に記述される前記コマンドを追加することを含む、請求項１に記載の前記方法。
【請求項３】
前記コマンド記述子ブロック（２４４）が前記コマンドのための優先順位情報（３４３）を含む、請求項１に記載の前記方法。
【請求項４】
前記優先順位情報（３４３）が、前記コマンドが実行のための最高の優先順位を有する前記コマンド待ち行列（１２６）に入れられることを示すパラメータを含む、請求項３に記載の前記方法。
【請求項５】
前記優先順位情報（３４３）が、前記コマンドが実行のための時系列的な優先順位を有する前記コマンド待ち行列（１２６）に入れられることを示すパラメータを含む、請求項３に記載の前記方法。
【請求項６】
前記優先順位情報（３４３）が、前記コマンドが実行のための優先順位のない前記コマンド待ち行列（１２６）に入れられることを示すパラメータを含む、請求項３に記載の前記方法。
【請求項７】
前記コマンドのための前記コマンド記述子ブロック（２４４）がコマンド動作コード（３４１）、優先順位情報（３４３）、タスクタグ（３４５）、コマンド引数（３４６）、開始アドレス（３４８）、及びブロックカウント（３４９）を含む、請求項１から３のいずれか１項に記載の前記方法。
【請求項８】
前記方法が、前記メモリシステム（１０４）が転送状態にあるときに前記メモリシステム（１０４）で前記待ち行列に入れられたコマンド要求（２４０）を受信することを含む、請求項１から３のいずれか１項に記載の前記方法。
【請求項９】
前記方法が、前記コマンド応答（２４２）を送信することに応えて転送状態から受信状態に前記メモリシステム（１０４）を変更することを含む、請求項１から３のいずれか１項に記載の前記方法。
【請求項１０】
前記方法が、埋め込みマルチメディアカード（ｅ．ＭＭＣ）プロトコル（３４６、３４８、３４９）を使用するコマンドキューイングを含む、請求項１から３のいずれか１項に記載の前記方法。
【請求項１１】
コントローラ（１２５）と、
前記コントローラ（１２５）に結合されたメモリデバイス（１３０）と、
を備える装置であって、前記装置が、
ホストが、前記コントローラが前記コントローラ（１２５）のコマンド待ち行列（１２６）に含むためのコマンドを送信する準備が完了していることを前記コントローラに対して示す待ち行列に入れられたコマンド要求（２４０）を前記ホスト（１０２）から前記コントローラで受信し、前記待ち行列に入れられたコマンド要求（２４０）を受信することに応えて、前記コントローラ（１２５）から前記ホスト（１０２）に、前記装置が前記コマンド待ち行列（１２６）にコマンドを受け入れる準備が完了していることを示すコマンド応答（２４２）を送信する、
前記コマンド応答（２４２）を送信することに応えて、前記ホスト（１０２）からコマンドのためのコマンド記述子ブロック（２４４）を前記コントローラ（１２５）で受信し、前記コントローラの前記コマンド待ち行列（１２６）に、前記コマンド記述子ブロック（２４４）に記述される前記コマンドを追加する、
前記ホストから転送準備完了コマンド（４５０）を前記コントローラ（１２５）で受信し、前記転送準備完了コマンド（４５０）を受信することに応えて、前記コントローラから前記ホストに、コマンド実行を可能にするためのデータ転送ビット（４５２）の方向を含む情報を有するデータパケットを含むデータ転送要求（４５２）を送信する、及び
前記メモリシステムから前記ホストにデータ受信コマンド（４６０）を送信し、前記ホストから前記メモリシステム（１０４）へのデータ転送を示す転送ビット（４５２）の前記方向に応えて転送状態から受信状態に移行し、前記ホスト（１０２）からデータ送信コマンド（４５８）を受信し、前記メモリシステム（１０４）から前記ホスト（１０２）へのデータ転送を示す転送ビット（４５２）の前記方向に応えて受信状態に留まることによって前記コマンドを実行する
ように構成される、前記装置。
【請求項１２】
前記装置が前記ホストからデータ受信コマンド（４６０）を前記コントローラで受信し、転送状態からデータ受信状態に移行し、前記ホスト（１０２）からデータを前記装置で受信することによって前記コマンドを実行するように構成される、請求項１１に記載の前記装置。
【請求項１３】
前記装置が、前記ホスト（１０２）からデータ送信コマンド（４５８）を前記コントローラで受信し、転送状態からデータ送信状態に移行し、前記メモリデバイスから前記ホスト（１０２）にデータを送信することによって前記コマンドを実行するように構成される、請求項１１に記載の前記装置。
【請求項１４】
前記装置が、前記ホストからタスク管理機能要求コマンド（１２７）を受信し、前記ホスト（１０２）に前記コマンド待ち行列（１２６）内のいくつかのコマンドのそれぞれのステータスを送信するように構成される、請求項１１に記載の前記装置。
【請求項１５】
前記装置が、前記ホスト（１０２）からタスク管理機能要求コマンドを受信し、前記コマンド待ち行列（１２６）のいくつかのコマンドのそれぞれを打ち切るように構成される、請求項１１に記載の前記装置。
【請求項１６】
装置が、前記コマンド待ち行列（１２６）の前記いくつかのコマンドを打ち切り、前記ホスト（１０２）から以降の待ち行列に入れられたコマンド要求を受信すると、タスク待ち行列ステータスレジスタ（１２７）及び前記例外イベントステータスフィールドの待ち行列エラービットをリセットするように構成される、請求項１５に記載の前記装置。
【手続補正書】
【提出日】平成29年4月3日(2017.4.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピューティングシステムでのコマンドキューイング方法であって、
ホストから待ち行列に入れられたコマンド要求をメモリシステムで受信することであって、前記待ち行列に入れられたコマンド要求が前記メモリシステムに対し、前記ホストが、前記メモリシステムが前記メモリシステムのコマンド待ち行列に含むためのコマンドを送信する準備が完了していることを示す、受信することと、
前記メモリシステムから前記ホストに、前記メモリシステムが前記メモリシステムのコマンド待ち行列にコマンドを受け入れる準備が完了していることを示すコマンド応答を送信することと、
前記コマンド応答を送信することに応えて、前記ホストから前記コマンドのためのコマンド記述子ブロックを前記メモリシステムで受信することと、
前記ホストから前記メモリシステムへのデータ転送を示す転送ビットの方向に応えて前記メモリシステムから前記ホストにデータ受信コマンドを送信し、前記メモリシステムから前記ホストへのデータ転送を示す転送ビットの前記方向に応えて前記ホストからデータ送信コマンドを受信することによって前記コマンドを実行すること、
を含む、コマンドキューイング方法。
【請求項２】
前記コマンドキューイング方法が、前記メモリシステムの前記コマンド待ち行列に、前記コマンド記述子ブロックに記述される前記コマンドを追加することを含む、請求項１に記載のコマンドキューイング方法。
【請求項３】
前記コマンド記述子ブロックが前記コマンドのための優先順位情報を含む、請求項１に記載のコマンドキューイング方法。
【請求項４】
前記優先順位情報が、前記コマンドが実行のための最高の優先順位を有する前記コマンド待ち行列に入れられることを示すパラメータを含む、請求項３に記載のコマンドキューイング方法。
【請求項５】
前記優先順位情報が、前記コマンドが実行のための時系列的な優先順位を有する前記コマンド待ち行列に入れられることを示すパラメータを含む、請求項３に記載のコマンドキューイング方法。
【請求項６】
前記優先順位情報が、前記コマンドが実行のための優先順位のない前記コマンド待ち行列に入れられることを示すパラメータを含む、請求項３に記載のコマンドキューイング方法。
【請求項７】
前記コマンドのための前記コマンド記述子ブロックがコマンド動作コード、優先順位情報、タスクタグ、コマンド引数、開始アドレス、及びブロックカウントを含む、請求項１から３のいずれか１項に記載のコマンドキューイング方法。
【請求項８】
前記コマンドキューイング方法が、前記メモリシステムが転送状態にあるときに前記メモリシステムで前記待ち行列に入れられたコマンド要求を受信することを含む、請求項１から３のいずれか１項に記載のコマンドキューイング方法。
【請求項９】
前記コマンドキューイング方法が、前記コマンド応答を送信することに応えて転送状態から受信状態に前記メモリシステムを変更することを含む、請求項１から３のいずれか１項に記載のコマンドキューイング方法。
【請求項１０】
前記コマンドキューイング方法が、埋め込みマルチメディアカード（ｅ．ＭＭＣ）プロトコルを使用するコマンドキューイングを含む、請求項１から３のいずれか１項に記載のコマンドキューイング方法。
【請求項１１】
コントローラと前記コントローラに結合されたメモリデバイスとを含むメモリシステムと、
前記メモリシステムに結合されたホストと、
を備える装置であって、前記装置が、
前記ホストが、前記コントローラが前記コントローラのコマンド待ち行列に含むためのコマンドを送信する準備が完了していることを前記コントローラに対して示す待ち行列に入れられたコマンド要求を前記ホストから前記コントローラで受信し、前記待ち行列に入れられたコマンド要求を受信することに応えて、前記コントローラから前記ホストに、前記装置が前記コマンド待ち行列にコマンドを受け入れる準備が完了していることを示すコマンド応答を送信する、
前記コマンド応答を送信することに応えて、前記ホストからコマンドのためのコマンド記述子ブロックを前記コントローラで受信し、前記コントローラの前記コマンド待ち行列に、前記コマンド記述子ブロックに記述される前記コマンドを追加する、
前記ホストから転送準備完了コマンドを前記コントローラで受信し、前記転送準備完了コマンドを受信することに応えて、前記コントローラから前記ホストに、コマンド実行を可能にするためのデータ転送ビットの方向を含む情報を有するデータパケットを含むデータ転送要求を送信する、及び
前記メモリシステムから前記ホストにデータ受信コマンドを送信し、前記ホストから前記メモリシステムへのデータ転送を示す転送ビットの前記方向に応えて転送状態から受信状態に移行し、前記ホストからデータ送信コマンドを受信し、前記メモリシステムから前記ホストへのデータ転送を示す転送ビットの前記方向に応えて受信状態に留まることによって前記コマンドを実行する
ように構成される、装置。
【請求項１２】
前記装置が、前記ホストからデータ受信コマンドを前記コントローラで受信し、転送状態からデータ受信状態に移行し、前記ホストからデータを前記装置で受信することによって前記コマンドを実行するように構成される、請求項１１に記載の装置。
【請求項１３】
前記装置が、前記ホストからデータ送信コマンドを前記コントローラで受信し、転送状態からデータ送信状態に移行し、前記メモリデバイスから前記ホストにデータを送信することによって前記コマンドを実行するように構成される、請求項１１に記載の装置。
【請求項１４】
前記装置が、前記ホストからタスク管理機能要求コマンドを受信し、前記ホストに前記コマンド待ち行列内のいくつかのコマンドのそれぞれのステータスを送信するように構成される、請求項１１に記載の装置。
【請求項１５】
前記装置が、前記ホストからタスク管理機能要求コマンドを受信し、前記コマンド待ち行列のいくつかのコマンドのそれぞれを打ち切るように構成される、請求項１１に記載の装置。
【請求項１６】
装置が、前記コマンド待ち行列の前記いくつかのコマンドを打ち切り、前記ホストから以降の待ち行列に入れられたコマンド要求を受信すると、タスク待ち行列ステータスレジスタ及び例外イベントステータスフィールドの待ち行列エラービットをリセットするように構成される、請求項１５に記載の装置。
【国際調査報告】
2017513089.tif 000012
2017513089.tif 000013
2017513089.tif 000014