説明

プログラム可能メモリコントローラ

【課題】異なるコマンドセット、プロトコル、及びインターフェース、並びに将来の新しいコマンドセット、プロトコル、及びインターフェースをサポートするプログラム可能メモリコントローラ技術を提供する。
【解決手段】メモリコントローラ210はコマンド変換データ構造430、フロントエンド420、及びバックエンド440を含む。コマンド変換データ構造430は、コマンド操作をプリミティブにマッピングし、プリミティブは1つ又は複数の記憶装置について決定されたコマンド操作から分解される。フロントエンド420は、処理装置からコマンド操作を受信し、コマンド変換データ構造を使用して、それぞれの受信したコマンド操作を1つ又は複数の対応するプリミティブのセットに変換する。バックエンド440は、受信したコマンド操作ごとに所与の記憶装置に1つ又は複数の対応するプリミティブのセットを出力する。

【発明の詳細な説明】
【背景技術】
【0001】
従来の電子装置は、通常1つ又は複数のタイプのメモリを含む。一般に、メモリコントローラは電子装置の1つ又は複数の処理装置と1つ又は複数の記憶ユニットと間のデータの流れを管理するために利用される。従来の電子装置における一般的なタイプのメモリはフラッシュメモリである。フラッシュメモリは、メモリの大きなセクション内で消去及びプログラムされるように設計されている。
【0002】
従来技術では、記憶装置について、複数のアーキテクチャ、コマンドセット、プロトコル、バスインターフェース、及び同様の基準がある。例えば、フラッシュメモリ装置についても、例えばONFI、サムスン、及びJEDECといったレガシーなどの複数の基準がある。このようなフラッシュメモリ基準はそれぞれわずかに異なり、それぞれの基準によってベンダー独自のコマンドが可能になる。従来のメモリコントローラは、一般的に単一のメモリ基準、又は基準の小さなサブセットで機能する。異なるアーキテクチャ、コマンドセット、プロトコル、信号インターフェース定義、及び同様のものは、従来のメモリコントローラが異なる記憶装置へのメモリアクセスをサポートするのを妨げる。従って、複数の基準をサポートするためのメモリコントローラ技術が継続的に求められている。
【発明の概要】
【0003】
本技術は、以下の説明、及び本技術の実施形態を示すために使用される添付の図面を参照することによって、最もよく理解できる。
【0004】
本技術の実施形態は、プログラム可能メモリコントローラ、並びにそのセットアップ及び操作を対象とする。セットアップの実施形態では、1つ又は複数の記憶装置のためのコマンドセットが決定される。1つ又は複数の記憶装置は、1つ又は複数の異なるアーキテクチャを有し、異なる基準を満たし、異なる通信プロトコルを利用し、異なるインターフェース及び/又は同様のものを有する、1つ又は複数のフラッシュメモリ装置を含むことができる。それぞれのコマンド操作は、1つ又は複数のプリミティブに分解される。プリミティブは、コマンドサイクル、アドレスサイクル、及び/又はデータサイクルを含むことができる。コマンド操作と1つ又は複数のプリミティブとの間のマッピングは、メモリコントローラのコマンド変換データ構造に格納される。
【0005】
操作の実施形態では、メモリコントローラのコマンド変換データ構造は、1つ又は複数のコマンド操作と1つ又は複数のプリミティブとの間のマッピングとともにプログラムされる。1つ又は複数のプリミティブは、1つ又は複数の記憶装置について決定された1つ又は複数のコマンド操作から分解される。その後、メモリコントローラは1つ又は複数の処理装置からコマンド操作を受信する。それぞれの受信したコマンド操作は、メモリコントローラによって、コマンド変換データ構造を使用して1つ又は複数の対応するプリミティブのセットに変換される。次いで、メモリコントローラは、受信したコマンド操作ごとに1つ又は複数の対応するプリミティブのセットを出力する。適切なプリミティブが、適切な記憶装置及び/又は適切な処理装置に出力される。
【0006】
添付の図面の図において、本技術の実施形態を限定するためではなく例として示す。図面において同様の参照番号は類似の要素を指す。
【図面の簡単な説明】
【0007】
【図1】本技術の一実施形態による、メモリコントローラセットアップ処理の流れ図である。
【図2】本技術の一実施形態による、メモリコントローラを含む例示的なシステムのブロック図である。
【図3】本技術の一実施形態による、コマンド操作のプリミティブへの分解の例を示す図である。
【図4】本技術の一実施形態による、例示的なメモリコントローラのブロック図である。
【図5】本技術の一実施形態による、メモリコントローラの操作の流れ図である。
【図6】本技術の一実施形態による、プリミティブ及び/又はマクロの1つ又は複数のセットのインタリーブの例を示す図である。
【本発明の詳細な説明】
【0008】
次に、本技術の実施形態を詳細に参照する。本技術の実施形態の例は添付の図面に示されている。本技術をこれらの実施形態と併せて説明するが、これらの実施形態は本発明をこれらの実施形態に限定することを意図するものではないことが理解されよう。反対に、本発明は代替、修正、及び同等物をカバーすることを意図し、それらの代替、修正、及び同等物は添付の特許請求の範囲によって定義される本発明の範囲内に含まれ得る。更に、以下の本技術の詳細な説明では、本技術の完全な理解を可能にするために数々の特定の詳細を説明する。しかし、本技術はこれらの特定の詳細なしに実施できることが理解されよう。他の例では、本技術の態様を無用に不明瞭にしないために、よく知られている方法、手順、コンポーネント、及び回路は詳細に説明しない。
【0009】
本技術の実施形態は、異なるコマンドセット、プロトコル、及びインターフェース、並びに将来の新しいコマンドセット、プロトコル、及びインターフェースをサポートするプログラム可能メモリコントローラ技術を対象とする。更に、実施形態はコマンドごとにプロセッサとメモリコントローラとの間で渡されるデータの量を減少させる。
【0010】
図1を参照すると、本技術の一実施形態によるメモリコントローラセットアップ処理が示されている。メモリコントローラのセットアップ処理は、メモリコントローラを含む例示的なシステムを示す図2を参照して更に説明される。メモリコントローラ210は、1つ又は複数の処理装置220と1つ又は複数の記憶ユニット230との間のデータの流れを管理する。処理装置200は、マイクロプロセッサ、中央処理装置(CPU)、グラフィック処理装置(GPU)、マイクロコントローラ、又は他の何らかの類似の処理装置である場合がある。一実装形態では、記憶ユニット230は、フラッシュメモリアレイ、回路、チップ、カード、モジュール、又は同様のものである場合がある。一実装形態では、メモリコントローラ210は別々の回路である場合がある。他の実装形態では、メモリコントローラ210は処理装置220に不可欠な場合がある。
【0011】
再び図1を参照すると、セットアップ処理は、110で、1つ又は複数の記憶装置のコマンド操作を決定するステップを含む。一実装形態では、記憶装置は1つ又は複数の異なるフラッシュメモリ装置である場合がある。コマンド操作は、例えばONFI、JEDEC及び/又は同等のものなどの1つ又は複数のメモリ基準についてのページ読取り、ページ書込み、及び同等のものを含むことができる。コマンド操作は、1つ又は複数のプロトコルを構成する1つ又は複数のコマンド操作の1つ又は複数のセットを含むことができる。コマンド操作を1つ又は複数の信号インターフェース定義に関連付けることもできる。
【0012】
120で、コマンド操作はそれぞれ1つ又は複数のサイクルの1つ又は複数のプリミティブに分解される。プリミティブは、1つ若しくは複数のコマンド(CMD)サイクル、1つ若しくは複数のアドレス(ADDR)サイクル、及び/又は1つ若しくは複数のデータ(DATA)サイクルを含むことができる。コマンド操作は、1つ又は複数のコマンド操作の1つ又は複数のセットに対応する1つ又は複数のプロトコルごとに、プリミティブのうちの1つ又は複数についての1つ又は複数の持続時間に分解することもできる。コマンド操作は、1つ又は複数のコマンド操作の1つ又は複数のセットに対応する1つ又は複数のプロトコルごとに、1つ又は複数のプリミティブの後で1つ又は複数の遅延に分解することもできる。1つ又は複数のプリミティブの前の持続時間及び/又は1つ又は複数のプリミティブの後の遅延は、1つ又は複数のプロトコルのタイミングパラメータを実装できる。コマンド操作は、コマンド操作の1つ又は複数のセットについての1つ又は複数の信号インターフェース定義に分解することもできる。信号インターフェース定義は、プリミティブ及び/又はプロトコルごとに、様々なピンの状態及び/又は使用を定義できる。
【0013】
次に図3を参照すると、コマンド操作310のプリミティブ320〜350への例示的な分解が示されている。コマンド操作310は、例えばページ読取りコマンド操作である場合があり、プリミティブは「読取り」プリミティブ(例えば、CMD1)320、「アドレス」プリミティブ(例えば、ADDR)330、及び「ゴー(go)」プリミティブ(例えば、CMD2)340、並びに「データアウト」プリミティブ(例えば、DOUT)350を含むことができる。他の例では、ページ書込み操作は、「書込み」プリミティブ(例えば、CMD3)、「アドレス」プリミティブ(例えば、ADDR)、「データイン」プリミティブ(例えば、DIN)、及び「ゴー」プリミティブ(例えば、CMD2)に分解され得る。「読取り」プリミティブ(例えば、CMD1)、「ゴー」プリミティブ(例えば、CMD2)、及び「書込み」プリミティブ(例えば、CMD3)は、コマンドサイクルプリミティブの例である。「アドレス」プリミティブ(例えば、ADDR)は、アドレスサイクルプリミティブの例である。「データイン」プリミティブ(例えば、DIN)、及び「データアウト」プリミティブ(例えば、DOUT)は、データサイクルプリミティブの例である。
【0014】
メモリプロトコルをプリミティブに分解することによって、プリミティブを構成要素としてつなげることにより複雑なシーケンスを任意で構築できる。130で、1つ又は複数のコマンド操作の少なくとも一部を指定するためにプリミティブの1つ又は複数のシーケンスを任意で決定できる。一実装形態では、1つ又は複数の共通で使用されるプリミティブのシーケンスごとにマクロを指定できる。所与のシーケンスについてのマクロは、1つ若しくは複数のプリミティブ、1つ若しくは複数の持続時間、及び/又は1つ若しくは複数の遅延から生成される。一実装形態では、持続時間及び遅延は、「ビジー」及び/又は「ポーリング」の概念によって実装され得る。ビジー、及び/又はポーリングの概念は、プリミティブ間にタイミングを実装するために利用される。しかし、ビジーはバス上には乗せられない。プリミティブ及びマクロの例示的なセットは表1に示されている。
【0015】
【表1】

【0016】
140で、1つ又は複数のプリミティブがメモリコントローラのコマンド変換データ構造に格納される。コマンド変換データ構造は、プログラム可能メモリコントローラのコマンド操作とプリミティブとの間のマッピングとともにプログラムされ得る。1つ又は複数のコマンド操作とプリミティブの1つ又は複数のシーケンスとの間のマッピングは、1つ又は複数の記憶装置の1つ又は複数のコマンド操作の1つ又は複数のセットに対応する1つ又は複数のプロトコルごとに、1つ又は複数のプリミティブについての1つ又は複数の持続時間も含むことができる。1つ又は複数のコマンド操作とプリミティブの1つ又は複数のシーケンスとの間のマッピングは、1つ又は複数の記憶装置のコマンド操作の1つ又は複数のセットに対応する1つ又は複数のプロトコルごとに、1つ又は複数のプリミティブの後の1つ又は複数の遅延も含むことができる。1つ又は複数のコマンド操作とプリミティブの1つ又は複数のシーケンスとの間のマッピングは、1つ又は複数の記憶装置のコマンド操作の1つ又は複数のセットについての1つ又は複数の信号インターフェース定義も含むことができる。データ構造は、マイクロコード又は同様のものとして、ブート開始時にメモリコントローラにプログラムされ得る。マイクロコードは、異なる記憶装置基準、異なるプロトコル、及び/又は1つ若しくは複数の異なる記憶装置の特定の特徴に適合するために、メモリコントローラに書き込まれてプログラムされる。
【0017】
プリミティブの1つ又は複数のシーケンスも130で決定された場合には、シーケンスもマクロとしてコマンド変換データ構造に格納され得る。このような場合、データ構造は、操作コマンドと、プリミティブ及び基準ごとの任意なマクロとの間にマッピングを提供する。他の実装形態では、メモリコントローラのファームウェアが、プリミティブの1つ又は複数のシーケンスを選択的に実行するようにプログラムされ得る。
【0018】
上述のセットアップ処理は、ハードウェア、ソフトウェア(例えば、1つ又は複数のコンピューティングデバイス可読メディアに格納されたコンピューティングデバイス実行可能命令)、ファームウェア(例えば、コンピューティングデバイスプログラム可能回路)、或いはハードウェア、ソフトウェア、及び/又はファームウェアの1つ又は複数の組合せに実装され得る。
【0019】
次に図4を参照すると、本技術の一実施形態による例示的なメモリコントローラが示されている。例示的なメモリコントローラの操作は、図5を参照して更に説明される。メモリコントローラ210は、コマンドバッファ410、フロントエンド420、コントローラメモリ(例えば、コンピューティングデバイス可読メディア)430、バックエンド440、コントローラファームウェア450、及びパッドインターフェース460を含むことができる。コントローラも、コマンド先入れ先出し(FIFO)バッファ、データ及びアドレスFIFOバッファ、シーケンサFIFOバッファ、ステータスレジスタ、コンフィギュレーションレジスタ、制御ロジック、及び/又は同様のものなどの、他の複数の要素を含むことが理解される。更に、1つ又は複数の要素は、書込みバックエンド及び読取りバックエンドなどの複数のサブ要素として構成され得る。同様に、フロントエンド420はプログラムメモリ430を含むことができ、及び/又はバックエンド440はプログラム可能ファームウェア450を含むことができる。
【0020】
次に図5を参照すると、510で、メモリコントローラのコマンド変換データ構造が、1つ又は複数の記憶装置について決定された1つ又は複数のコマンド操作から分解された1つ又は複数のプリミティブとともにプログラムされる。一実装形態では、コマンド変換データ構造はコントローラメモリ430に格納される。コマンド変換データ構造は、ブート開始時などセットアップ処理においてプログラムされ得る。コマンド変換データ構造は、1つ又は複数のコマンド操作と1つ又は複数のプリミティブとの間にマッピングを含むことができる。コマンド変換データ構造は、1つ又は複数のコマンド操作と1つ又は複数のプリミティブの1つ又は複数のシーケンスとの間にもマッピングを含むことができる。コマンド変換データ構造のマッピングは、1つ又は複数の記憶装置の1つ又は複数のコマンド操作の1つ又は複数のセットに対応する1つ又は複数のプロトコルごとに、1つ又は複数のプリミティブについての1つ又は複数の持続時間も含むことができる。コマンド変換データ構造のマッピングは、1つ又は複数の記憶装置のコマンド操作の1つ又は複数のセットに対応する1つ又は複数のプロトコルごとに、1つ又は複数のプリミティブの後の1つ又は複数の遅延も含むことができる。コマンド変換データ構造のマッピングは、1つ又は複数の記憶装置のコマンド操作の1つ又は複数のセットについての1つ又は複数の信号インターフェース定義も含むことができる。
【0021】
その後、520で、1つ又は複数の処理装置220からメモリコントローラ210によってコマンド操作470が受信される。一実装形態では、受信されたコマンド操作470はメモリコントローラ210のコマンドバッファ410でバッファされ得る。コマンドバッファ410は先入れ先出し(FIFO)バッファである場合がある。
【0022】
530で、コマンド操作470は、メモリコントローラによって、コマンド変換データ構造を使用して1つ又は複数の対応するプリミティブ480のセットにそれぞれ変換される。所与のコマンド操作の一部も、コマンド変換データ構造を使用して、本明細書でマクロと呼ばれる1つ又は複数のプリミティブの1つ又は複数のシーケンスに変換され得る。コマンド操作の1つ若しくは複数の対応するプリミティブ及び/又は1つ若しくは複数のプリミティブのシーケンスへの変換は、プリミティブのうちの1つ又は複数の持続時間も含むことができる。コマンド操作の変換は、1つ又は複数のプリミティブの後の1つ又は複数の遅延も含むことができる。コマンド操作の1つ又は複数の対応するプリミティブ及び/又はシーケンスへの変換は、1つ又は複数の信号インターフェース定義も含むことができる。一実装形態では、フロントエンド420は、プログラムメモリ430内のコマンド操作プリミティブデータ構造にマップされたように、受信したコマンド操作470をプリミティブ及び/又はマクロ480のセットに変換する。
【0023】
一実装形態では、ページ読取りを実行するために、メモリコントローラのフロントエンドは表1を使用して「1」プリミティブコードが続く「0」プリミティブコードを発行することができ、また、同じタスクを達成するために「2」プリミティブコードを発行することもできる。また一方で、前者によって可能とされた柔軟性は、メモリセルアレイの異なるチップイネーブル(CE)又は論理ユニット(LUN)にわたる操作のインタリービングを可能にする。このようなプリミティブのインタリービングによってパフォーマンスを改善できる。他の例では、この手法によって、たとえハードウェアが4KBだけをサポートするように設計されていても、8KBページデバイスのサポートが可能になる。これは、6、8、及び0を発行することによって行うことができる。
【0024】
別の実装形態では、プリミティブは、マイクロ命令セットの一部として使用され、及び、ポインタの表又は実質的なマイクロコードとして構成され得るメモリコントローラコマンドのセットの一部として使用される。例示的なマイクロ命令セット及び対応するメモリコントローラコマンドのセットは、表2に示される。
【0025】
【表2】

【0026】
540で、メモリコントローラから1つ若しくは複数の記憶装置及び/又は1つ若しくは複数の処理装置にプリミティブのセットが出力される。一実装形態では、バックエンド440は、いかなる適用可能な持続時間及び/又は遅延も含む、プリミティブ及び/又はマクロ480の適切なパラメータを符号化する。次いで、バックエンド440は、それぞれの受信したコマンド操作470に対応するプリミティブ及び/又はマクロ480のセットを、何らかの適用可能な信号インターフェース定義に従って対応するビットストリーム490に変換する。パッドインターフェース460は適切なタイミングでビットストリーム490を出力する。
【0027】
別の実装形態では、選択されたプリミティブ及び/又はマクロはハードウェアシーケンスに組み込まれ得る。ハードウェアシーケンスはバックエンド440のプログラム可能ファームウェア450に実装され得る。
【0028】
図6に示されるように、バックエンド450もプリミティブ及び/又はマクロの1つ若しくは複数のセットをインタリーブできる。例えば、それぞれのページ読取りは第1コマンドプリミティブ(例えば、CMD1)並びにアドレスプリミティブ(例えば、ADDR)、第2コマンドプリミティブ(例えば、CMD2)、遅延(例えば、ビジー)、及びデータプリミティブ(例えば、DOUT)に変換され得る。2つのページ読取りは、第1ページ読取りにおける遅延(例えば、ビジー)の間に、第2ページ読取りのプリミティブの一部が発行されるようにインタリーブできる。このような場合、第1ページ読取り(例えば、PAGE1)の遅延(例えば、ビジー)の間に、第2ページ読取り(例えば、PAGE2)についての第1コマンドプリミティブが発行されることができる。インタリーブされたページ読取りの結果、記憶ユニットから返されたデータは連続して返され、したがって対応するデータプリミティブ(例えば、DOUT)を何らかの適用可能な遅延(例えば、POLL)でインタリーブできる。
【0029】
上記に示したように、それぞれのプリミティブはプリミティブ後の持続時間及び/又は遅延(クロックサイクルにおける)とともにプログラムされ得る。これにより、メモリコントローラ210はどのような必要なタイミングパラメータにも合わせることができる。例えば、フラッシュデバイスに対処する共通操作はある種のレディステータスについてのポーリングである。このポーリングを手動で行わなければならず、したがってクロックサイクルを消費してしまうことから、ファームウェアを開放するために、構築されたシーケンスの一部としてこのチェックを自律的に実行するためのサポートが利用できる。
【0030】
上述のように、プリミティブごとに様々なピンの状態及び/又は使用を定義するためにコマンド変換データ構造を拡張して、それによって可変信号インターフェース定義に対処できる。例えばある基準では、ピンAはフラッシュからのデータをクロックインするために使用されるクロックのような信号を参照し、他の基準では代わりにピンBが使用される。同様にダブルデータレート(DDR)、及びシングルデータレート(SDR)プロトコルも、プリミティブごとに指定され得る。
【0031】
上述のメモリコントローラ及び/又はメモリコントローラによって実行される機能は、ハードウェア、ソフトウェア(例えば、1つ又は複数のコンピューティングデバイス可読メディアに格納されたコンピューティングデバイス実行可能命令)、ファームウェア(例えば、コンピューティングデバイスプログラム可能回路)、或いはハードウェア、ソフトウェア、及び/又はファームウェアの1つ又は複数の組合せに実装され得る。
【0032】
本技術の特定の実施形態の上記の説明を、図示及び説明の目的で提示した。これらの説明は網羅的であること、又は開示した正確な形式に本発明を限定することを意図するものではなく、上記の教示を踏まえて多くの修正形態及び変形形態が可能であることが明らかである。本技術の原理及び本技術の実際の適用を最もよく説明し、それによって他の当業者が本技術及び様々な実施形態を、熟考された特定の使用に適するような様々な修正形態とともに最もよく利用できるようにするために、実施形態は選択及び記述された。本発明の範囲は、本明細書に添付の特許請求の範囲、及びその同等物によって定義されることが意図される。
【符号の説明】
【0033】
210 メモリコントローラ
220 処理装置
230 記憶ユニット
310 コマンド操作
320 プリミティブ
330 プリミティブ
340 プリミティブ
350 プリミティブ
410 コマンドバッファ
420 フロントエンド
430 コントローラメモリ
430 プログラムメモリ
430 データ構造
440 バックエンド
450 コントローラファームウェア
450 プログラム可能ファームウェア
460 パッドインターフェース
470 コマンド操作
480 プリミティブ
480 プリミティブ/マクロ
490 ビットストリーム

【特許請求の範囲】
【請求項1】
1つ又は複数の記憶装置のそれぞれについて1つ又は複数のコマンド操作を決定するステップ110と、
それぞれの前記1つ又は複数のコマンド操作を1つ又は複数のサイクルの1つ又は複数のプリミティブに分解するステップ120と、
前記1つ又は複数のプリミティブをメモリコントローラのコマンド変換データ構造に格納するステップ140と
を含む、方法。
【請求項2】
前記1つ又は複数のサイクルが、コマンドサイクル、アドレスサイクル、及びデータサイクルで構成されるグループから選択された1つ又は複数を含む、請求項1に記載の方法。
【請求項3】
1つ又は複数のコマンド操作の少なくとも一部を指定するためにプリミティブの1つ又は複数のシーケンスを決定するステップ130と、
前記コマンド変換データ構造内のプリミティブの前記1つ又は複数のシーケンスをメモリコントローラに格納するステップ140と
を更に含む、請求項1に記載の方法。
【請求項4】
1つ又は複数のコマンド操作の少なくとも一部を指定するためにプリミティブの1つ又は複数のシーケンスを決定するステップ130と、
プリミティブの前記1つ又は複数のシーケンスのそれぞれを選択的に実行するためにメモリコントローラ内のシーケンサのファームウェアをプログラムするステップと
を更に含む、請求項1に記載の方法。
【請求項5】
前記コマンド変換データ構造が、1つ又は複数の記憶装置の前記1つ又は複数のコマンド操作の1つ又は複数のセットに対応する1つ又は複数のプロトコルごとに、前記プリミティブのうちの1つ又は複数についての1つ又は複数の持続時間を含む、請求項1に記載の方法。
【請求項6】
前記コマンド変換データ構造が、1つ又は複数の記憶装置の前記コマンド操作の1つ又は複数のセットに対応する1つ又は複数のプロトコルごとに、1つ又は複数の前記プリミティブの後の1つ又は複数の遅延を含む、請求項1に記載の方法。
【請求項7】
前記コマンド変換データ構造が、1つ又は複数の記憶装置のコマンド操作の1つ又は複数のセットについての1つ又は複数の信号インターフェース定義を含む、請求項1に記載の方法。
【請求項8】
前記1つ又は複数の記憶装置が少なくとも2つの異なるフラッシュメモリ装置を含む、請求項1に記載の方法。
【請求項9】
1つ又は複数の記憶装置について決定された、1つ又は複数のコマンド操作から分解された1つ又は複数のプリミティブを備えるメモリコントローラのコマンド変換データ構造をプログラムするステップ510と、
前記メモリコントローラによって処理装置からコマンド操作を受信するステップ520と、
前記メモリコントローラによって、前記コマンド変換データ構造を使用して、それぞれのコマンド操作を1つ又は複数の対応するプリミティブのセットに変換するステップ530と、
前記メモリコントローラから所与の記憶装置に1つ又は複数の対応するプリミティブの前記セットを出力するステップ540と
を含む、方法。
【請求項10】
前記コマンド変換データ構造が前記メモリコントローラのセットアップ処理でプログラムされる、請求項9に記載の方法。
【請求項11】
所与のコマンド操作の一部が1つ又は複数のプリミティブの対応するシーケンスに変換される、請求項9に記載の方法。
【請求項12】
所与のコマンド操作の1つ又は複数の対応するプリミティブへの前記変換が所与のプリミティブの持続時間を含む、請求項9に記載の方法。
【請求項13】
所与のコマンド操作の1つ又は複数の対応するプリミティブへの前記変換が所与のプリミティブの後の遅延を含む、請求項9に記載の方法。
【請求項14】
所与のコマンド操作の1つ又は複数の対応するプリミティブへの前記変換が1つ又は複数の信号インターフェース定義を含む、請求項9に記載の方法。
【請求項15】
前記1つ又は複数のプリミティブが、コマンドサイクル、アドレスサイクル、及びデータサイクルで構成されるグループから選択された1つ又は複数を含む、請求項9に記載の方法。
【請求項16】
コマンド操作をプリミティブにマッピングするコマンド変換データ構造430であって、前記プリミティブが、1つ又は複数の記憶装置について決定されたコマンド操作から分解されるコマンド変換データ構造430と、
処理装置からコマンド操作を受信して、前記コマンド変換データ構造を使用して、それぞれの受信したコマンド操作を1つ又は複数の対応するプリミティブのセットに変換するためのフロントエンド420と、
受信したコマンド操作ごとに、所与の記憶装置に1つ又は複数の対応するプリミティブの前記セットを出力するためのバックエンド440と
を備える、メモリコントローラ。
【請求項17】
前記コマンド変換データ構造430が、コマンド操作を、プリミティブ、1つ又は複数のプリミティブの持続時間、及び1つ又は複数のプリミティブの後の遅延にマッピングし、
前記フロントエンド420が、前記コマンド変換データ構造を使用して、それぞれの受信したコマンド操作を、1つ又は複数の対応するプリミティブの前記セット、対応する持続時間のうちの1つ又は複数、及び対応する遅延に変換し、
前記バックエンド440が、1つ又は複数の対応するプリミティブの前記セット、並びに前記対応する持続時間、及び前記対応する遅延のうちの1つ又は複数を、受信したコマンド操作ごとに出力する、請求項16に記載のメモリコントローラ。
【請求項18】
前記コマンド変換データ構造430が、1つ又は複数のコマンド操作の少なくとも一部を、プリミティブのシーケンス、前記プリミティブのうちの1つ又は複数の持続時間、及び1つ又は複数の前記プリミティブの後の遅延にマッピングし、
前記フロントエンド420が、所与の受信したコマンド操作の少なくとも一部を、プリミティブの所与のシーケンス、前記プリミティブのうちの1つ又は複数の前記持続時間、及び前記所与のシーケンス内の1つ又は複数の前記プリミティブの後の前記遅延に変換し、
前記バックエンド440が、プリミティブの前記所与のシーケンス、及び前記プリミティブのうちの1つ又は複数の前記持続時間、並びに前記所与の受信されたコマンド操作についての前記所与のシーケンス内の1つ又は複数の前記プリミティブの後の前記遅延を出力する、請求項16に記載のメモリコントローラ。
【請求項19】
前記1つ又は複数の記憶装置が少なくとも2つの異なるフラッシュメモリ装置を含む、請求項16に記載のメモリコントローラ。
【請求項20】
前記プリミティブが、コマンドサイクル、アドレスサイクル、及びデータサイクルで構成されるグループから選択された1つ又は複数を含む、請求項16に記載のメモリコントローラ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−99096(P2012−99096A)
【公開日】平成24年5月24日(2012.5.24)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−225919(P2011−225919)
【出願日】平成23年10月13日(2011.10.13)
【出願人】(501261300)エヌヴィディア コーポレイション (166)
【Fターム(参考)】