(57)【特許請求の範囲】
【請求項１】
複数の異なる記憶装置のそれぞれについてコマンド操作を決定するステップ１１０と、
それぞれの前記コマンド操作を１つ又は複数のサイクルの１つ又は複数のプリミティブに分解するステップ１２０と、
前記１つ又は複数のプリミティブをメモリコントローラのコマンド変換データ構造に格納するステップ１４０と
を備え、
前記コマンド変換データ構造が、１つ又は複数の記憶装置の前記コマンド操作の１つ又は複数のセットに対応する１つ又は複数のプロトコルごとに、前記プリミティブのうちの１つ又は複数についての１つ又は複数の持続時間、又は、１つ又は複数の前記プリミティブの後の１つ又は複数の遅延を含む、
方法。
【請求項２】
前記１つ又は複数のサイクルが、コマンドサイクル、アドレスサイクル、及びデータサイクルで構成されるグループから選択された１つ又は複数を含む、請求項１に記載の方法。
【請求項３】
１つ又は複数のコマンド操作の少なくとも一部を指定するためにプリミティブの１つ又は複数のシーケンスを決定するステップ１３０と、
前記コマンド変換データ構造内のプリミティブの前記１つ又は複数のシーケンスをメモリコントローラに格納するステップ１４０と
を更に含む、請求項１に記載の方法。
【請求項４】
１つ又は複数のコマンド操作の少なくとも一部を指定するためにプリミティブの１つ又は複数のシーケンスを決定するステップ１３０と、
プリミティブの前記１つ又は複数のシーケンスのそれぞれを選択的に実行するためにメモリコントローラ内のシーケンサのファームウェアをプログラムするステップと
を更に含む、請求項１に記載の方法。
【請求項５】
前記コマンド変換データ構造が、１つ又は複数の記憶装置のコマンド操作の１つ又は複数のセットについての１つ又は複数の信号インターフェース定義を含む、請求項１に記載の方法。
【請求項６】
前記複数の異なる記憶装置が少なくとも２つの異なるフラッシュメモリ装置を含む、請求項１に記載の方法。
【請求項７】
複数の異なる記憶装置それぞれについて決定されたコマンド操作から分解された１つ又は複数のプリミティブを備えるメモリコントローラのコマンド変換データ構造をプログラムするステップ５１０と、
前記メモリコントローラによって処理装置からコマンド操作を受信するステップ５２０と、
前記メモリコントローラによって、前記コマンド変換データ構造を使用して、それぞれのコマンド操作を１つ又は複数の対応するプリミティブのセットに変換するステップ５３０と、
前記メモリコントローラから所与の記憶装置に１つ又は複数の対応するプリミティブの前記セットを出力するステップ５４０と
を備え、
所与のコマンド操作の１つ又は複数の対応するプリミティブへの前記変換が、所与のプリミティブの持続時間又は所与のプリミティブの後の遅延を含む、方法。
【請求項８】
前記コマンド変換データ構造が前記メモリコントローラのセットアップ処理でプログラムされる、請求項７に記載の方法。
【請求項９】
所与のコマンド操作の一部が１つ又は複数のプリミティブの対応するシーケンスに変換される、請求項７に記載の方法。
【請求項１０】
所与のコマンド操作の１つ又は複数の対応するプリミティブへの前記変換が１つ又は複数の信号インターフェース定義を含む、請求項７に記載の方法。
【請求項１１】
前記１つ又は複数のプリミティブが、コマンドサイクル、アドレスサイクル、及びデータサイクルで構成されるグループから選択された１つ又は複数を含む、請求項７に記載の方法。
【請求項１２】
コマンド操作をプリミティブにマッピングするコマンド変換データ構造４３０であって、前記プリミティブが、複数の異なる記憶装置それぞれについて決定されたコマンド操作から分解されるコマンド変換データ構造４３０と、
処理装置からコマンド操作を受信して、前記コマンド変換データ構造を使用して、それぞれの受信したコマンド操作を１つ又は複数の対応するプリミティブのセットに変換するためのフロントエンド４２０と、
受信したコマンド操作ごとに、所与の記憶装置に１つ又は複数の対応するプリミティブの前記セットを出力するためのバックエンド４４０と
を備え、
前記コマンド変換データ構造４３０が、１つ又は複数のコマンド操作の少なくとも一部を、所与のプリミティブの持続時間又は所与のプリミティブの後の遅延にマッピングする、メモリコントローラ。
【請求項１３】
前記コマンド変換データ構造４３０が、コマンド操作を、プリミティブ、１つ又は複数のプリミティブの持続時間、及び１つ又は複数のプリミティブの後の遅延にマッピングし、
前記フロントエンド４２０が、前記コマンド変換データ構造を使用して、それぞれの受信したコマンド操作を、１つ又は複数の対応するプリミティブの前記セット、対応する持続時間のうちの１つ又は複数、及び対応する遅延に変換し、
前記バックエンド４４０が、１つ又は複数の対応するプリミティブの前記セット、並びに前記対応する持続時間、及び前記対応する遅延のうちの１つ又は複数を、受信したコマンド操作ごとに出力する、請求項１２に記載のメモリコントローラ。
【請求項１４】
前記コマンド変換データ構造４３０が、１つ又は複数のコマンド操作の少なくとも一部を、プリミティブのシーケンス、前記プリミティブのうちの１つ又は複数の持続時間、及び１つ又は複数の前記プリミティブの後の遅延にマッピングし、
前記フロントエンド４２０が、所与の受信したコマンド操作の少なくとも一部を、プリミティブの所与のシーケンス、前記プリミティブのうちの１つ又は複数の前記持続時間、及び前記所与のシーケンス内の１つ又は複数の前記プリミティブの後の前記遅延に変換し、
前記バックエンド４４０が、プリミティブの前記所与のシーケンス、及び前記プリミティブのうちの１つ又は複数の前記持続時間、並びに前記所与の受信されたコマンド操作についての前記所与のシーケンス内の１つ又は複数の前記プリミティブの後の前記遅延を出力する、請求項１２に記載のメモリコントローラ。
【請求項１５】
前記複数の異なる記憶装置が少なくとも２つの異なるフラッシュメモリ装置を含む、請求項１２に記載のメモリコントローラ。
【請求項１６】
前記プリミティブが、コマンドサイクル、アドレスサイクル、及びデータサイクルで構成されるグループから選択された１つ又は複数を含む、請求項１２に記載のメモリコントローラ。
【発明の詳細な説明】
【背景技術】
【０００１】
従来の電子装置は、通常１つ又は複数のタイプのメモリを含む。一般に、メモリコントローラは電子装置の１つ又は複数の処理装置と１つ又は複数の記憶ユニットと間のデータの流れを管理するために利用される。従来の電子装置における一般的なタイプのメモリはフラッシュメモリである。フラッシュメモリは、メモリの大きなセクション内で消去及びプログラムされるように設計されている。
【０００２】
従来技術では、記憶装置について、複数のアーキテクチャ、コマンドセット、プロトコル、バスインターフェース、及び同様の基準がある。例えば、フラッシュメモリ装置についても、例えばＯＮＦＩ、サムスン、及びＪＥＤＥＣといったレガシーなどの複数の基準がある。このようなフラッシュメモリ基準はそれぞれわずかに異なり、それぞれの基準によってベンダー独自のコマンドが可能になる。従来のメモリコントローラは、一般的に単一のメモリ基準、又は基準の小さなサブセットで機能する。異なるアーキテクチャ、コマンドセット、プロトコル、信号インターフェース定義、及び同様のものは、従来のメモリコントローラが異なる記憶装置へのメモリアクセスをサポートするのを妨げる。従って、複数の基準をサポートするためのメモリコントローラ技術が継続的に求められている。
【発明の概要】
【０００３】
本技術は、以下の説明、及び本技術の実施形態を示すために使用される添付の図面を参照することによって、最もよく理解できる。
【０００４】
本技術の実施形態は、プログラム可能メモリコントローラ、並びにそのセットアップ及び操作を対象とする。セットアップの実施形態では、１つ又は複数の記憶装置のためのコマンドセットが決定される。１つ又は複数の記憶装置は、１つ又は複数の異なるアーキテクチャを有し、異なる基準を満たし、異なる通信プロトコルを利用し、異なるインターフェース及び／又は同様のものを有する、１つ又は複数のフラッシュメモリ装置を含むことができる。それぞれのコマンド操作は、１つ又は複数のプリミティブに分解される。プリミティブは、コマンドサイクル、アドレスサイクル、及び／又はデータサイクルを含むことができる。コマンド操作と１つ又は複数のプリミティブとの間のマッピングは、メモリコントローラのコマンド変換データ構造に格納される。
【０００５】
操作の実施形態では、メモリコントローラのコマンド変換データ構造は、１つ又は複数のコマンド操作と１つ又は複数のプリミティブとの間のマッピングとともにプログラムされる。１つ又は複数のプリミティブは、１つ又は複数の記憶装置について決定された１つ又は複数のコマンド操作から分解される。その後、メモリコントローラは１つ又は複数の処理装置からコマンド操作を受信する。それぞれの受信したコマンド操作は、メモリコントローラによって、コマンド変換データ構造を使用して１つ又は複数の対応するプリミティブのセットに変換される。次いで、メモリコントローラは、受信したコマンド操作ごとに１つ又は複数の対応するプリミティブのセットを出力する。適切なプリミティブが、適切な記憶装置及び／又は適切な処理装置に出力される。
【０００６】
添付の図面の図において、本技術の実施形態を限定するためではなく例として示す。図面において同様の参照番号は類似の要素を指す。
【図面の簡単な説明】
【０００７】
【図１】本技術の一実施形態による、メモリコントローラセットアップ処理の流れ図である。
【図２】本技術の一実施形態による、メモリコントローラを含む例示的なシステムのブロック図である。
【図３】本技術の一実施形態による、コマンド操作のプリミティブへの分解の例を示す図である。
【図４】本技術の一実施形態による、例示的なメモリコントローラのブロック図である。
【図５】本技術の一実施形態による、メモリコントローラの操作の流れ図である。
【図６】本技術の一実施形態による、プリミティブ及び／又はマクロの１つ又は複数のセットのインタリーブの例を示す図である。
【本発明の詳細な説明】
【０００８】
次に、本技術の実施形態を詳細に参照する。本技術の実施形態の例は添付の図面に示されている。本技術をこれらの実施形態と併せて説明するが、これらの実施形態は本発明をこれらの実施形態に限定することを意図するものではないことが理解されよう。反対に、本発明は代替、修正、及び同等物をカバーすることを意図し、それらの代替、修正、及び同等物は添付の特許請求の範囲によって定義される本発明の範囲内に含まれ得る。更に、以下の本技術の詳細な説明では、本技術の完全な理解を可能にするために数々の特定の詳細を説明する。しかし、本技術はこれらの特定の詳細なしに実施できることが理解されよう。他の例では、本技術の態様を無用に不明瞭にしないために、よく知られている方法、手順、コンポーネント、及び回路は詳細に説明しない。
【０００９】
本技術の実施形態は、異なるコマンドセット、プロトコル、及びインターフェース、並びに将来の新しいコマンドセット、プロトコル、及びインターフェースをサポートするプログラム可能メモリコントローラ技術を対象とする。更に、実施形態はコマンドごとにプロセッサとメモリコントローラとの間で渡されるデータの量を減少させる。
【００１０】
図１を参照すると、本技術の一実施形態によるメモリコントローラセットアップ処理が示されている。メモリコントローラのセットアップ処理は、メモリコントローラを含む例示的なシステムを示す図２を参照して更に説明される。メモリコントローラ２１０は、１つ又は複数の処理装置２２０と１つ又は複数の記憶ユニット２３０との間のデータの流れを管理する。処理装置２００は、マイクロプロセッサ、中央処理装置（ＣＰＵ）、グラフィック処理装置（ＧＰＵ）、マイクロコントローラ、又は他の何らかの類似の処理装置である場合がある。一実装形態では、記憶ユニット２３０は、フラッシュメモリアレイ、回路、チップ、カード、モジュール、又は同様のものである場合がある。一実装形態では、メモリコントローラ２１０は別々の回路である場合がある。他の実装形態では、メモリコントローラ２１０は処理装置２２０に不可欠な場合がある。
【００１１】
再び図１を参照すると、セットアップ処理は、１１０で、１つ又は複数の記憶装置のコマンド操作を決定するステップを含む。一実装形態では、記憶装置は１つ又は複数の異なるフラッシュメモリ装置である場合がある。コマンド操作は、例えばＯＮＦＩ、ＪＥＤＥＣ及び／又は同等のものなどの１つ又は複数のメモリ基準についてのページ読取り、ページ書込み、及び同等のものを含むことができる。コマンド操作は、１つ又は複数のプロトコルを構成する１つ又は複数のコマンド操作の１つ又は複数のセットを含むことができる。コマンド操作を１つ又は複数の信号インターフェース定義に関連付けることもできる。
【００１２】
１２０で、コマンド操作はそれぞれ１つ又は複数のサイクルの１つ又は複数のプリミティブに分解される。プリミティブは、１つ若しくは複数のコマンド（ＣＭＤ）サイクル、１つ若しくは複数のアドレス（ＡＤＤＲ）サイクル、及び／又は１つ若しくは複数のデータ（ＤＡＴＡ）サイクルを含むことができる。コマンド操作は、１つ又は複数のコマンド操作の１つ又は複数のセットに対応する１つ又は複数のプロトコルごとに、プリミティブのうちの１つ又は複数についての１つ又は複数の持続時間に分解することもできる。コマンド操作は、１つ又は複数のコマンド操作の１つ又は複数のセットに対応する１つ又は複数のプロトコルごとに、１つ又は複数のプリミティブの後で１つ又は複数の遅延に分解することもできる。１つ又は複数のプリミティブの前の持続時間及び／又は１つ又は複数のプリミティブの後の遅延は、１つ又は複数のプロトコルのタイミングパラメータを実装できる。コマンド操作は、コマンド操作の１つ又は複数のセットについての１つ又は複数の信号インターフェース定義に分解することもできる。信号インターフェース定義は、プリミティブ及び／又はプロトコルごとに、様々なピンの状態及び／又は使用を定義できる。
【００１３】
次に図３を参照すると、コマンド操作３１０のプリミティブ３２０〜３５０への例示的な分解が示されている。コマンド操作３１０は、例えばページ読取りコマンド操作である場合があり、プリミティブは「読取り」プリミティブ（例えば、ＣＭＤ１）３２０、「アドレス」プリミティブ（例えば、ＡＤＤＲ）３３０、及び「ゴー（ｇｏ）」プリミティブ（例えば、ＣＭＤ２）３４０、並びに「データアウト」プリミティブ（例えば、ＤＯＵＴ）３５０を含むことができる。他の例では、ページ書込み操作は、「書込み」プリミティブ（例えば、ＣＭＤ３）、「アドレス」プリミティブ（例えば、ＡＤＤＲ）、「データイン」プリミティブ（例えば、ＤＩＮ）、及び「ゴー」プリミティブ（例えば、ＣＭＤ２）に分解され得る。「読取り」プリミティブ（例えば、ＣＭＤ１）、「ゴー」プリミティブ（例えば、ＣＭＤ２）、及び「書込み」プリミティブ（例えば、ＣＭＤ３）は、コマンドサイクルプリミティブの例である。「アドレス」プリミティブ（例えば、ＡＤＤＲ）は、アドレスサイクルプリミティブの例である。「データイン」プリミティブ（例えば、ＤＩＮ）、及び「データアウト」プリミティブ（例えば、ＤＯＵＴ）は、データサイクルプリミティブの例である。
【００１４】
メモリプロトコルをプリミティブに分解することによって、プリミティブを構成要素としてつなげることにより複雑なシーケンスを任意で構築できる。１３０で、１つ又は複数のコマンド操作の少なくとも一部を指定するためにプリミティブの１つ又は複数のシーケンスを任意で決定できる。一実装形態では、１つ又は複数の共通で使用されるプリミティブのシーケンスごとにマクロを指定できる。所与のシーケンスについてのマクロは、１つ若しくは複数のプリミティブ、１つ若しくは複数の持続時間、及び／又は１つ若しくは複数の遅延から生成される。一実装形態では、持続時間及び遅延は、「ビジー」及び／又は「ポーリング」の概念によって実装され得る。ビジー、及び／又はポーリングの概念は、プリミティブ間にタイミングを実装するために利用される。しかし、ビジーはバス上には乗せられない。プリミティブ及びマクロの例示的なセットは表１に示されている。
【００１５】
【表１】
0005787444.tif 000002
【００１６】
１４０で、１つ又は複数のプリミティブがメモリコントローラのコマンド変換データ構造に格納される。コマンド変換データ構造は、プログラム可能メモリコントローラのコマンド操作とプリミティブとの間のマッピングとともにプログラムされ得る。１つ又は複数のコマンド操作とプリミティブの１つ又は複数のシーケンスとの間のマッピングは、１つ又は複数の記憶装置の１つ又は複数のコマンド操作の１つ又は複数のセットに対応する１つ又は複数のプロトコルごとに、１つ又は複数のプリミティブについての１つ又は複数の持続時間も含むことができる。１つ又は複数のコマンド操作とプリミティブの１つ又は複数のシーケンスとの間のマッピングは、１つ又は複数の記憶装置のコマンド操作の１つ又は複数のセットに対応する１つ又は複数のプロトコルごとに、１つ又は複数のプリミティブの後の１つ又は複数の遅延も含むことができる。１つ又は複数のコマンド操作とプリミティブの１つ又は複数のシーケンスとの間のマッピングは、１つ又は複数の記憶装置のコマンド操作の１つ又は複数のセットについての１つ又は複数の信号インターフェース定義も含むことができる。データ構造は、マイクロコード又は同様のものとして、ブート開始時にメモリコントローラにプログラムされ得る。マイクロコードは、異なる記憶装置基準、異なるプロトコル、及び／又は１つ若しくは複数の異なる記憶装置の特定の特徴に適合するために、メモリコントローラに書き込まれてプログラムされる。
【００１７】
プリミティブの１つ又は複数のシーケンスも１３０で決定された場合には、シーケンスもマクロとしてコマンド変換データ構造に格納され得る。このような場合、データ構造は、操作コマンドと、プリミティブ及び基準ごとの任意なマクロとの間にマッピングを提供する。他の実装形態では、メモリコントローラのファームウェアが、プリミティブの１つ又は複数のシーケンスを選択的に実行するようにプログラムされ得る。
【００１８】
上述のセットアップ処理は、ハードウェア、ソフトウェア（例えば、１つ又は複数のコンピューティングデバイス可読メディアに格納されたコンピューティングデバイス実行可能命令）、ファームウェア（例えば、コンピューティングデバイスプログラム可能回路）、或いはハードウェア、ソフトウェア、及び／又はファームウェアの１つ又は複数の組合せに実装され得る。
【００１９】
次に図４を参照すると、本技術の一実施形態による例示的なメモリコントローラが示されている。例示的なメモリコントローラの操作は、図５を参照して更に説明される。メモリコントローラ２１０は、コマンドバッファ４１０、フロントエンド４２０、コントローラメモリ（例えば、コンピューティングデバイス可読メディア）４３０、バックエンド４４０、コントローラファームウェア４５０、及びパッドインターフェース４６０を含むことができる。コントローラも、コマンド先入れ先出し（ＦＩＦＯ）バッファ、データ及びアドレスＦＩＦＯバッファ、シーケンサＦＩＦＯバッファ、ステータスレジスタ、コンフィギュレーションレジスタ、制御ロジック、及び／又は同様のものなどの、他の複数の要素を含むことが理解される。更に、１つ又は複数の要素は、書込みバックエンド及び読取りバックエンドなどの複数のサブ要素として構成され得る。同様に、フロントエンド４２０はプログラムメモリ４３０を含むことができ、及び／又はバックエンド４４０はプログラム可能ファームウェア４５０を含むことができる。
【００２０】
次に図５を参照すると、５１０で、メモリコントローラのコマンド変換データ構造が、１つ又は複数の記憶装置について決定された１つ又は複数のコマンド操作から分解された１つ又は複数のプリミティブとともにプログラムされる。一実装形態では、コマンド変換データ構造はコントローラメモリ４３０に格納される。コマンド変換データ構造は、ブート開始時などセットアップ処理においてプログラムされ得る。コマンド変換データ構造は、１つ又は複数のコマンド操作と１つ又は複数のプリミティブとの間にマッピングを含むことができる。コマンド変換データ構造は、１つ又は複数のコマンド操作と１つ又は複数のプリミティブの１つ又は複数のシーケンスとの間にもマッピングを含むことができる。コマンド変換データ構造のマッピングは、１つ又は複数の記憶装置の１つ又は複数のコマンド操作の１つ又は複数のセットに対応する１つ又は複数のプロトコルごとに、１つ又は複数のプリミティブについての１つ又は複数の持続時間も含むことができる。コマンド変換データ構造のマッピングは、１つ又は複数の記憶装置のコマンド操作の１つ又は複数のセットに対応する１つ又は複数のプロトコルごとに、１つ又は複数のプリミティブの後の１つ又は複数の遅延も含むことができる。コマンド変換データ構造のマッピングは、１つ又は複数の記憶装置のコマンド操作の１つ又は複数のセットについての１つ又は複数の信号インターフェース定義も含むことができる。
【００２１】
その後、５２０で、１つ又は複数の処理装置２２０からメモリコントローラ２１０によってコマンド操作４７０が受信される。一実装形態では、受信されたコマンド操作４７０はメモリコントローラ２１０のコマンドバッファ４１０でバッファされ得る。コマンドバッファ４１０は先入れ先出し（ＦＩＦＯ）バッファである場合がある。
【００２２】
５３０で、コマンド操作４７０は、メモリコントローラによって、コマンド変換データ構造を使用して１つ又は複数の対応するプリミティブ４８０のセットにそれぞれ変換される。所与のコマンド操作の一部も、コマンド変換データ構造を使用して、本明細書でマクロと呼ばれる１つ又は複数のプリミティブの１つ又は複数のシーケンスに変換され得る。コマンド操作の１つ若しくは複数の対応するプリミティブ及び／又は１つ若しくは複数のプリミティブのシーケンスへの変換は、プリミティブのうちの１つ又は複数の持続時間も含むことができる。コマンド操作の変換は、１つ又は複数のプリミティブの後の１つ又は複数の遅延も含むことができる。コマンド操作の１つ又は複数の対応するプリミティブ及び／又はシーケンスへの変換は、１つ又は複数の信号インターフェース定義も含むことができる。一実装形態では、フロントエンド４２０は、プログラムメモリ４３０内のコマンド操作プリミティブデータ構造にマップされたように、受信したコマンド操作４７０をプリミティブ及び／又はマクロ４８０のセットに変換する。
【００２３】
一実装形態では、ページ読取りを実行するために、メモリコントローラのフロントエンドは表１を使用して「１」プリミティブコードが続く「０」プリミティブコードを発行することができ、また、同じタスクを達成するために「２」プリミティブコードを発行することもできる。また一方で、前者によって可能とされた柔軟性は、メモリセルアレイの異なるチップイネーブル（ＣＥ）又は論理ユニット（ＬＵＮ）にわたる操作のインタリービングを可能にする。このようなプリミティブのインタリービングによってパフォーマンスを改善できる。他の例では、この手法によって、たとえハードウェアが４ＫＢだけをサポートするように設計されていても、８ＫＢページデバイスのサポートが可能になる。これは、６、８、及び０を発行することによって行うことができる。
【００２４】
別の実装形態では、プリミティブは、マイクロ命令セットの一部として使用され、及び、ポインタの表又は実質的なマイクロコードとして構成され得るメモリコントローラコマンドのセットの一部として使用される。例示的なマイクロ命令セット及び対応するメモリコントローラコマンドのセットは、表２に示される。
【００２５】
【表２】
0005787444.tif 000003
【００２６】
５４０で、メモリコントローラから１つ若しくは複数の記憶装置及び／又は１つ若しくは複数の処理装置にプリミティブのセットが出力される。一実装形態では、バックエンド４４０は、いかなる適用可能な持続時間及び／又は遅延も含む、プリミティブ及び／又はマクロ４８０の適切なパラメータを符号化する。次いで、バックエンド４４０は、それぞれの受信したコマンド操作４７０に対応するプリミティブ及び／又はマクロ４８０のセットを、何らかの適用可能な信号インターフェース定義に従って対応するビットストリーム４９０に変換する。パッドインターフェース４６０は適切なタイミングでビットストリーム４９０を出力する。
【００２７】
別の実装形態では、選択されたプリミティブ及び／又はマクロはハードウェアシーケンスに組み込まれ得る。ハードウェアシーケンスはバックエンド４４０のプログラム可能ファームウェア４５０に実装され得る。
【００２８】
図６に示されるように、バックエンド４５０もプリミティブ及び／又はマクロの１つ若しくは複数のセットをインタリーブできる。例えば、それぞれのページ読取りは第１コマンドプリミティブ（例えば、ＣＭＤ１）並びにアドレスプリミティブ（例えば、ＡＤＤＲ）、第２コマンドプリミティブ（例えば、ＣＭＤ２）、遅延（例えば、ビジー）、及びデータプリミティブ（例えば、ＤＯＵＴ）に変換され得る。２つのページ読取りは、第１ページ読取りにおける遅延（例えば、ビジー）の間に、第２ページ読取りのプリミティブの一部が発行されるようにインタリーブできる。このような場合、第１ページ読取り（例えば、ＰＡＧＥ１）の遅延（例えば、ビジー）の間に、第２ページ読取り（例えば、ＰＡＧＥ２）についての第１コマンドプリミティブが発行されることができる。インタリーブされたページ読取りの結果、記憶ユニットから返されたデータは連続して返され、したがって対応するデータプリミティブ（例えば、ＤＯＵＴ）を何らかの適用可能な遅延（例えば、ＰＯＬＬ）でインタリーブできる。
【００２９】
上記に示したように、それぞれのプリミティブはプリミティブ後の持続時間及び／又は遅延（クロックサイクルにおける）とともにプログラムされ得る。これにより、メモリコントローラ２１０はどのような必要なタイミングパラメータにも合わせることができる。例えば、フラッシュデバイスに対処する共通操作はある種のレディステータスについてのポーリングである。このポーリングを手動で行わなければならず、したがってクロックサイクルを消費してしまうことから、ファームウェアを開放するために、構築されたシーケンスの一部としてこのチェックを自律的に実行するためのサポートが利用できる。
【００３０】
上述のように、プリミティブごとに様々なピンの状態及び／又は使用を定義するためにコマンド変換データ構造を拡張して、それによって可変信号インターフェース定義に対処できる。例えばある基準では、ピンＡはフラッシュからのデータをクロックインするために使用されるクロックのような信号を参照し、他の基準では代わりにピンＢが使用される。同様にダブルデータレート（ＤＤＲ）、及びシングルデータレート（ＳＤＲ）プロトコルも、プリミティブごとに指定され得る。
【００３１】
上述のメモリコントローラ及び／又はメモリコントローラによって実行される機能は、ハードウェア、ソフトウェア（例えば、１つ又は複数のコンピューティングデバイス可読メディアに格納されたコンピューティングデバイス実行可能命令）、ファームウェア（例えば、コンピューティングデバイスプログラム可能回路）、或いはハードウェア、ソフトウェア、及び／又はファームウェアの１つ又は複数の組合せに実装され得る。
【００３２】
本技術の特定の実施形態の上記の説明を、図示及び説明の目的で提示した。これらの説明は網羅的であること、又は開示した正確な形式に本発明を限定することを意図するものではなく、上記の教示を踏まえて多くの修正形態及び変形形態が可能であることが明らかである。本技術の原理及び本技術の実際の適用を最もよく説明し、それによって他の当業者が本技術及び様々な実施形態を、熟考された特定の使用に適するような様々な修正形態とともに最もよく利用できるようにするために、実施形態は選択及び記述された。本発明の範囲は、本明細書に添付の特許請求の範囲、及びその同等物によって定義されることが意図される。
【符号の説明】
【００３３】
２１０  メモリコントローラ
２２０  処理装置
２３０  記憶ユニット
３１０  コマンド操作
３２０  プリミティブ
３３０  プリミティブ
３４０  プリミティブ
３５０  プリミティブ
４１０  コマンドバッファ
４２０  フロントエンド
４３０  コントローラメモリ
４３０  プログラムメモリ
４３０  データ構造
４４０  バックエンド
４５０  コントローラファームウェア
４５０  プログラム可能ファームウェア
４６０  パッドインターフェース
４７０  コマンド操作
４８０  プリミティブ
４８０  プリミティブ／マクロ
４９０  ビットストリーム
【図１】
0005787444.tif 000004
【図２】
0005787444.tif 000005
【図３】
0005787444.tif 000006
【図４】
0005787444.tif 000007
【図５】
0005787444.tif 000008
【図６】
0005787444.tif 000009