(57)【要約】本開示は、ソリッドステート装置（ＳＳＤ）用の多重アドレスレジスタに関連する装置、システム、および方法を含む。例示的な装置は、各々が同じメモリリソース中のデータ格納用の同じアドレスを含む、複数のベースアドレスレジスタ（ＢＡＲ）を含むコントローラと、同じメモリリソースを含むＳＳＤを含む。【選択図】図１
2019509554.tif 000002
【特許請求の範囲】
【請求項１】
各々が同じメモリリソース中のデータ格納用の同じアドレスを含む、複数のベースアドレスレジスタ（ＢＡＲ）を含むコントローラと、
前記同じメモリリソースを含むソリッドステート装置（ＳＳＤ）
を含む装置。
【請求項２】
前記コントローラは、複数のタイプの動作のうちのいずれの１つが要求されたかの判定によって、前記複数のＢＡＲの１つに動作を割り当てるように構成される
請求項１に記載の装置。
【請求項３】
書き込み動作の性能のために選択された第１のキャッシュ属性を有する第１のＢＡＲに書き込み動作が割り当てられ、
読み出し動作の性能のために選択された第２のキャッシュ属性を有する第２のＢＡＲに読み出し動作が割り当てられる
請求項１に記載の装置。
【請求項４】
前記複数のＢＡＲの各々は異なるキャッシュ属性を含み、
個々のＢＡＲの前記異なるキャッシュ属性は要求された動作のタイプに対応する
請求項１に記載の装置。
【請求項５】
前記ＳＳＤは不揮発性メモリリソースとしてＮＡＮＤフラッシュメモリを含む
請求項１に記載の装置。
【請求項６】
前記ＳＳＤは揮発性メモリリソースとしてダイナミックランダムアクセスメモリ（ＤＲＡＭ）をさらに含む
請求項５に記載の装置。
【請求項７】
前記ＳＳＤは不揮発性メモリリソースとして３Ｄクロスポイントメモリを含む
請求項１に記載の装置。
【請求項８】
前記コントローラは、前記ＳＳＤに配置された複数のＢＡＲを含む
請求項１〜７のいずれか１項に記載の装置。
【請求項９】
ソリッドステート装置（ＳＳＤ）ドライバと、
各々が同じメモリリソース中のデータ格納用の同じアドレスを含む、複数のベースアドレスレジスタ（ＢＡＲ）を含むコントローラ
を含み、
前記コントローラは前記ＳＳＤドライバに選択的に結合される
装置。
【請求項１０】
前記ＳＳＤドライバは
動作の実行のための要求を受信し、
前記要求された動作は読み出し動作タイプと書き込み動作タイプのいずれであるかを判定し、
前記判定された動作タイプでの使用に適するようなＢＡＲを前記複数のＢＡＲから選択し、
前記判定された動作タイプの実行の際に前記選択されたＢＡＲによって使用されるキャッシュ属性を有効にする
ように構成される請求項９に記載の装置。
【請求項１１】
有効にされたキャッシュ属性が選択されたＢＡＲに割り当てられ、
前記有効にされたキャッシュ属性は選択されていないＢＡＲに割り当てられたキャッシュ属性とは異なる
請求項９〜１０のいずれか１項に記載の装置。
【請求項１２】
前記装置は、１次メモリリソースを含むホストコンピューティング装置をさらに含む
請求項９〜１０のいずれか１項に記載の装置。
【請求項１３】
前記複数のＢＡＲは、同じ２次メモリリソースに選択的に結合された２つのＢＡＲである
請求項１２に記載の装置。
【請求項１４】
前記装置は、同じメモリリソースを含むＳＳＤをさらに含み、
前記複数のＢＡＲは前記同じメモリリソースに選択的に結合される
請求項９〜１０のいずれか１項に記載の装置。
【請求項１５】
２次メモリリソース中のデータ格納用のアドレスをマッピングし、当該マッピングは読み出し要求用のキャッシュ可能な属性としてライトプロテクトを設定し、
同じ２次メモリリソース中のデータ格納用のアドレスをマッピングし、当該マッピングは書き込み要求用のキャッシュ属性としてライトコンバイニングを設定する
方法。
【請求項１６】
前記方法は、
要求された動作が読み出し要求と書き込み要求のいずれであるかを、ソリッドステート装置（ＳＳＤ）ドライバが判定すること
を含む請求項１５に記載の方法。
【請求項１７】
前記ＳＳＤドライバは、前記キャッシュ属性としてライトプロテクトに設定されたマップされたアドレスを含む第１のベースアドレスレジスタ（ＢＡＲ）に、要求された読み出し動作を割り当て、
前記ＳＳＤドライバは、前記キャッシュ属性としてライトコンバイニングに設定されたマップされたアドレスを含む第２のＢＡＲに、要求された書き込み動作を割り当てる
ことをさらに含む請求項１６に記載の方法
【請求項１８】
ソリッドステート装置（ＳＳＤ）ドライバが、マップされたアドレスを含む第１のベースアドレスレジスタ（ＢＡＲ）と共に使用するために、読み出し動作タイプのために選択した第１のキャッシュ属性としてライトプロテクトを有効にすることと、
ＳＳＤドライバが、マップされたアドレスを含む第２のＢＡＲと共に使用するために、書き込み動作タイプのために選択した第２のキャッシュ属性としてライトコンバイニングを有効にすること、
をさらに含み、
前記第１のＢＡＲと共に使用するための前記第１のキャッシュ属性と、前記第２のＢＡＲと共に使用するための前記第２のキャッシュ属性は異なるキャッシュ属性タイプである
請求項１５〜１７のいずれか１項に記載の方法。
【請求項１９】
中央処理装置（ＣＰＵ）および１次メモリリソースを含むホストコンピューティング装置と、
前記ＣＰＵに選択的に結合されたソリッドステート装置（ＳＳＤ）ドライバと、
各々が同じ２次メモリリソース中へのデータ格納用の同じアドレスを含む、複数のベースアドレスレジスタ（ＢＡＲ）を含むコントローラであって、前記ＳＳＤドライバに選択的に結合される前記コントローラと、
前記同じ２次メモリリソースを含むＳＳＤ
を含み、
前記複数のＢＡＲは前記同じ２次メモリリソースに選択的に結合される
装置。
【請求項２０】
揮発性メモリリソースが前記１次メモリリソースである
請求項１９に記載の装置。
【請求項２１】
不揮発性３Ｄクロスポイントメモリが前記同じ２次メモリリソースである
請求項１９に記載の装置。
【請求項２２】
ペリフェラルコンポーネント・インターコネクト・エクスプレス（ＰＣＩｅ）回路を形成するために、前記ホストコンピューティング装置、前記ＳＳＤドライバ、前記同じ２次メモリリソースを含むペリフェラルＳＳＤ、および前記コントローラの間の通信インタフェースとして、ＰＣＩｅバス
をさらに含む請求項１９に記載の装置。
【請求項２３】
前記ＳＳＤドライバは前記ホストコンピューティング装置に配置される
請求項１９に記載の装置。
【請求項２４】
前記ホストコンピューティング装置中のキャッシュは、読み出し動作タイプの実行での前記ＣＰＵによる使用のための前記同じ２次メモリリソースから転送されたデータ値の格納のために選択され、
前記キャッシュは有効にされたキャッシュ属性によって制御される
請求項１９〜２３のいずれか１項に記載の装置。
【請求項２５】
前記ホストコンピューティング装置中のバッファは、書き込み動作タイプの実行での前記ＣＰＵによる使用のための前記同じ２次メモリリソースに転送されるデータ値の格納のために選択され、
前記バッファは有効にされたライトコンバイニングキャッシュ属性によって制御される
請求項１９〜２３のいずれか１項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は概してソリッドステート装置に関連し、より具体的にはソリッドステート装置のための多重アドレスレジスタ用の装置および方法に関する。
【背景技術】
【０００２】
コンポーネントインタフェース回路は、相互接続またはリンクと称される論理接続（２つのポート間でポイントツーポイント通信チャネルを提供し得る）を介して通信でき、それによって両方のポートが要求（他の要求の中でも、コンフィギュレーション読み出し／書き込み、Ｉ／Ｏ読み出し／書き込み、メモリ読み出し／書き込みなど）を送信および／または受信できるようにする。例えば、ペリフェラルコンポーネント・インターコネクト・エクスプレス（ＰＣＩｅ）バスを用いるシステムでは、ＰＣＩｅ周辺メモリ装置をアドレス可能にするために、周辺メモリ装置は最初にシステムのＩ／Ｏポートアドレス空間もしくはメモリマップされたアドレス空間にマッピングされる。システムのファームウェア、デバイスドライバおよび／またはオペレーティングシステムは、周辺メモリ装置にそのアドレスマッピングを知らせるために、ＰＣＩｅコントローラへのコンフィギュレーションコマンドを書き込むことにより、周辺メモリ装置のマッピングをベースアドレスレジスタにプログラムできる。
【図面の簡単な説明】
【０００３】
【図１】本開示のいくつかの実施形態に従った、ソリッドステート装置用の多重アドレスレジスタ用のシステムのブロック図である。
【図２】本開示のいくつかの実施形態に従った、読み出し動作パスを説明する図である。
【図３】本開示のいくつかの実施形態に従った、書き込み動作パスを説明する図である。
【発明を実施するための形態】
【０００４】
＜詳細な説明＞
本開示は、ソリッドステート装置（ＳＳＤ）のための多重アドレスレジスタに関する装置および方法を含む。例示的な装置は、各々が同じメモリリソース中のデータ格納用の同じアドレスを含む、複数のベースアドレスレジスタ（ＢＡＲ）を含むコントローラ、および同じメモリリソースを含むＳＳＤを含む。
【０００５】
分散コンピューティングアーキテクチャは、分散システムの分散されたコンポーネントを相互接続するインタフェース回路の使用を含み得る。例えばＰＣＩｅは、とりわけ、例えばＰＣＩ、ＰＣＩ−ＸおよびＡＧＰ（アクセラレーテッド・グラフィックス・ポート）バス規格を改善し得るシリアルコンピュータ拡張回路（バス）であり得る。このような改善は、より高いシステムバススループット、より低いＩ／Ｏピンカウントおよびより小さい物理的なフットプリント、バス装置に対するより良い性能スケール、より詳しいエラー検出および通知メカニズム、および／または本来のホットプラグ機能（native hot-plug function functionality）を含み得る。本明細書に記載した実施形態は分かりやすくするためにＰＣＩｅに言及する。しかしながら、当業者が理解するであろうように、他のインタフェースおよび／または相互接続システム（特にＰＣＩなど）も考慮される。
【０００６】
例えば、ＰＣＩｅバスは、共有のアドレス／データ線を用いた高速シリアル相互接続バスであっても良い。従って、ＰＣＩｅバスは、そのバストポロジにおいて他のＰＣＩバスと異なり得る。例えば、ＰＣＩは、ＰＣＩホストおよび全ての装置がアドレス／データ／制御ラインの共通セットを共有する共有パラレルバスアーキテクチャを用いることができる。この共有バストポロジのため、ＰＣＩバスへのアクセスは、多重のマスタの場合に調停され得、一度に1つの方向の１つのマスタに限定され得る。それに対して、ＰＣＩｅバスは、すべての装置をルートコンプレックス（もしくはホスト）に接続する別個のシリアルリンクを用いるポイントツーポイントトポロジに基づき得る。
【０００７】
本明細書に記載するように、キャッシュ属性は、プロセッサによる動作の性能のために記憶媒体（１つ以上のキャッシュ）中に一時的にデータのコピーを格納するためのいくつかのキャッシングオプションのうちの１つを指す。ある実施形態では、本明細書に記載されているように、プロセッサは中央処理装置（ＣＰＵ）であり得る。１つ以上のキャッシュは、データのバルク記憶装置（例えば、ＳＳＤの不揮発性メモリ中の）よりも、プロセッサにより簡単にアクセス可能であっても良くかつ／またはプロセッサのローカルなキャッシュであっても良い。キャッシュ属性の例は、本分野で知られている他のオプションのうちでもとりわけ、ライトコンバイニング（ＷＣ）、ライトプロテクト（ＷＰ）、ライトバック（ＷＢ）、ライトスルー（ＷＴ）、ライトアラウンド（ＷＡ）、ストロング・アンキャッシャブル（strong uncacheable、ＵＣ）、および／またはアンキャッシャブル（ＵＣ−）を含む。
【０００８】
二次メモリ（例えば、ＰＣＩｅ周辺メモリ装置の）のいくつかの実施例では、１つのＢＡＲの全体の物理メモリリソース領域（ＳＳＤ中の不揮発性中に設置され得る）への１対１対応のマッピングが行われ得るし、マッピングされた全体の領域には同じキャッシュ属性が割り当てられ得る。従って、ＳＳＤマッピングへのこのようなアプローチは、アドレスマッピングへの要求タイプを区別（例えば、要求タイプのうち、読み出し要求を書き込み要求から区別）しないし、場合によっては、ＳＳＤは１つのＢＡＲ中で１つのマッピング機能しかないため、キャッシングのための異なるプロパティ（キャッシュ属性）を含んでいない。このアプローチは、例えば、物理メモリリソース領域にアクセスするための、様々な要求タイプのうちで１つの要求タイプに偏らされた読み出しもしくは書き込みレイテンシに制限し得る。物理メモリリソース領域は、例えばｍｍａｐ（ファイルまたは装置をメモリにマッピングできるメモリマップされたファイルＩ／Ｏ呼び出し）を用いてアクセスされ得る。
【０００９】
さらに、ＳＳＤからアクセスされた（例えば、読み出し動作中）および／またはＳＳＤ中への格納のために送信された（例えば、書き込み動作中）データの処理スピードは、プロセッサが容易にアクセスでき、かつ／またはプロセッサのローカルなキャッシュにデータが格納されないような、アンキャッシャブル（ＵＣおよび／またはＵＣ−）であるデータにより削減され得る。例えば、本明細書のうちでもとりわけ図１に関連付けて図示され記載されるインタフェース（例えばＰＣＩｅ）回路１０８のＳＳＤ１０４に関連するコントローラ１２０は、キャッシュコヒーレンスプロトコルをサポートしなくてもよい。いくつかの例では、メモリマップされたＩ／Ｏレジスタもしくはメモリ領域は、インタフェース回路のシステムのデフォルト設定によりアンキャッシャブルにマークされ得るし、かつ／または、インタフェース回路はデータをキャッシュするように構成されなくても良い。
【００１０】
他の可能性のうちでもとりわけ、ＣＰＵプロセッサのキャッシュコントローラおよび／またはダイナミックランダムアクセスメモリ（ＤＲＡＭ）コントローラは、ＣＰＵのプロセッサと組み合わせてキャッシュコヒーレンスプロトコルをサポートするように構成され得る。しかし、コヒーレンスプロトコルをサポートするように構成されていないＳＳＤコントローラ（例えば、ＰＣＩｅ用の）は、ＳＳＤのメモリ領域をアンキャッシャブルにマークすることになり得る。ＳＳＤコントローラがＣＰＵプロセッサのキャッシュコヒーレントプロトコルに従うことができない場合、ＳＳＤメモリアドレス領域中のデータはプロセッサのキャッシュメモリに直接キャッシュされなくなり得る。このことはＳＳＤの性能を限定し得る。ＳＳＤ中の領域へのアクセスは、例えばＤＲＡＭメモリとプロセッサのキャッシュメモリの両方に同時にコピーされるよりもむしろ、まずＤＲＡＭメモリにコピーされ、その後、キャッシュ可能なＤＲＡＭメモリ領域を経由してＤＲＡＭメモリからプロセッサのキャッシュメモリにコピーされることになり得るためである。このようなインタフェース回路は、動作（読み出し動作タイプもしくは書き込み動作タイプなど）の実行中にプロセッサが使用するデータを直接キャッシュすることができるように構成されていない可能性がある。
【００１１】
本開示は、例えば、同じ（同一の）物理メモリリソースの読み出しＢＡＲ（ＲＤ−ＢＡＲ）および別の書き込みＢＡＲ（ＷＲ−ＢＡＲ）の使用を通じて、インタフェース回路１０８（例えばＰＣＩｅ回路）の性能についてのこれらの潜在的な限界に対処する。例えば、物理メモリリソースのマッピングは、ＲＤ−ＢＡＲに割り当てられた読み出し要求に対してキャッシュ可能（例えば、他の可能なキャッシュ属性のうちのＷＰ）に設定され得、同時に、ＷＲ−ＢＡＲに割り当てられた書き込み要求に対するマッピングが１つのキャッシュ属性（例えば、他の可能なキャッシュ属性のうちでもとりわけＷＣ）に設定され得る。いくつかの実施形態では、ＲＤ−ＢＡＲに割り当てられたキャッシュ属性は、ＷＲ−ＢＡＲに割り当てられたキャッシュ属性と異なっても良い。
【００１２】
データがアンキャッシャブルな実装および／または1つの要求タイプに対して１種類のキャッシュ属性に偏っている実装とは対照的に、本開示は同じ物理メモリリソースが要求タイプに応じて、例えば、ＷＰキャッシャブルであるとして、またはＷＣアンキャッシャブルであるとして使用され得る。要求タイプに応じて選択可能であるキャッシュ属性は、個々に特定の要求タイプ用の特定のキャッシュ属性が割り当てられた多重（この例では２つ）のＢＡＲに、選択的に同じ物理メモリリソースを結合することで有効にされる。そのようにして、プロセッサによって容易にアクセスされ、かつ／またはプロセッサのローカルであるキャッシュ、および／または、特定の動作の実行のために選択されるキャッシュ属性に関連付けられる個々のキャッシュは、他の利点の中でも、例えば処理のために２次メモリ（例えば、ＮＡＮＤフラッシュメモリ）からデータを取得することに関連するこのような動作の実行のレイテンシを削減し得る。
【００１３】
本明細書に記載するように、読み出し要求タイプは、物理メモリリソースからのデータの取得（例えば、処理のために）を含み得る読み出し動作タイプの実行のためのコマンドであり得る。書き込み要求タイプは、物理メモリリソースに送信されるデータの蓄積および／または転送（例えば、格納のために）を含み得る書き込み動作タイプの実行のためのコマンドであり得る。読み出し要求はＷＰキャッシュ属性に関連付けてキャッシュされ得る（例えば、プロセッサに関連付けられた、キャッシュのタイプのうちでもとりわけレベル１（Ｌ１）、レベル２（Ｌ２）、レベル３（Ｌ３）および／またはレベル４（Ｌ４）キャッシュを用いて）。書き込み要求はＷＣキャッシュ属性に関連してアンキャッシャブルであり得る（例えば、プロセッサに関連付けられたバッファを用いて）。また、例えば、より間接的なＷＣバッファ、ＤＲＡＭ、２次メモリＳＳＤを通る動作よりもむしろ、図３に関連付けて記載されているように、特定の２次メモリＳＳＤ（例えば、ＰＣＩｅ回路中の周辺メモリ装置）にそのコントローラによって指示された書き込み動作のために送信され得る。書き込み要求は、ＷＣキャッシュ属性を用いてアンキャッシャブルなＳＳＤメモリに実行され得る。これは、他にもある理由のうちでもとりわけ、例えば、ＤＲＡＭメモリコントローラが受信するメモリ要求の数を削減し得、かつ／または、データ書き込み動作をＳＳＤの書き込み粒度をより好ましくし得るためである。
【００１４】
異なる要求タイプにより、２つ（または、より多くの）別個のキャッシュ属性が同じ物理メモリリソースに同時に割り当てられることができる。本明細書に記載するように、多重ＢＡＲの実装は、物理メモリリソースへの直接のアクセスのスピードを上げることができ、かつ／または物理メモリリソースからのデータ取得および／または格納のための物理メモリリソースへのデータ送信の処理速度をあげることができる。
【００１５】
以下の本開示の詳細な説明では、本明細書の一部を形成し本開示の１つ以上の実施形態をどのように実施できるかの説明として示された添付図面を参照する。これらの実施形態は、当業者がこの開示の実施形態を実施することができるように十分に詳しく記載されており、処理、電気的および／または構造的変更が行われた他の実施形態が本開示の範囲から逸脱することなく使用され得ることは理解される。本明細書で使用するように、「いくつかの（a number of）」特定のものは、そのようなものの１つ以上を称し得る（例えば、いくつかのメモリアレイは、１つ以上のメモリアレイを称しえる）。「複数の（plurality of）」の語は、そのようなものの１つより多くを称し得る。さらに、「ｃａｎ」および「ｍａｙ」は、本明細書を通して許容の意味（すなわち、可能性を有する、可能である）で使用され、必須である意味（すなわち、必須である（must））で使用されない。「含む（include）」という語とその派生語は「含むがそれに限定しない」という意味である。「結合した（coupled）」および「結合（coupling）」の語は、文脈に応じて、直接的もしくは間接的に物理的にまたはアクセスのために接続されること、ならびに、コマンドおよび／またはデータの移動（送信）を意味する。
【００１６】
本明細書での数字は、最初の１つまたは複数の数字は図面番号に対応し残りの数字は図面での要素またはコンポーネントを識別するナンバリング上の慣例に従う。異なる図の間における同様の要素またはコンポーネントは同様の数字の使用によって識別され得る。例えば、１１０は図１での「１０」を参照する場合があり、同様の要素は図２では２１０として参照される場合がある。理解されるであろうように、本明細書での様々な実施形態において示される要素は本開示のいくつかの追加の実施形態を提供できるように、追加、交換および／または除去されることが可能である。加えて、理解されるであろうように、図面で提供される要素の比率および相対的な大きさは本発明の実施形態を説明することが意図されており、限定の意味で取られるべきでない。
【００１７】
図１は、本開示のいくつかの実施形態に従う、ＳＳＤ用の多重アドレスレジスタのためのシステムのブロック図である。図１に図示するように、システム１００はホストコンピューティング装置１０２を含み得る。様々な実施形態において、ホストコンピューティング装置１０２は、本明細書に記載するようにいくつかのコンポーネントを含むことができる。システム１００は、バス１０６でホストコンピューティング装置１０２に接続された少なくとも１つのＳＳＤ１０４も含み得る。様々な実施形態において、ＳＳＤ１０４は、本明細書に記載するようにいくつかのコンポーネントを含むことができる。いくつかの実施形態では、本明細書に記載するように、ホストコンピューティング装置１０２およびバス１０６は、２次メモリを含むいくつかのメモリ装置の１つを代表する少なくとも１つのＳＳＤ１０４と共にインタフェース回路１０８（例えば、ＰＣＩｅ回路）として動作し得る。本明細書で使用されるように、ホストコンピューティング装置１０２、ＣＰＵ１１０、ＣＰＵ１１０中のいくつかのキャッシュ１１２、ＣＰＵ１１０の外部のいくつかのキャッシュ１１４、不揮発性メモリ１１６、バッファ１１７、ＳＳＤドライバ１１８、少なくとも１つのＳＳＤ１０４、バス１０６、コントローラ１２０、複数のＢＡＲ１２２、揮発性メモリ１２４、および／または不揮発性メモリ１２６は、個別にもしくは集合的に「装置（apparatus）」としてみなされ得る。
【００１８】
明確にするために、本開示に特に関連する部分の構造に重点を置くために、システム１００の記載は簡略化されている。例えば、様々な実施形態では、例えば、ＰＣＩｅ回路の周辺メモリ装置の中に、１つ以上のホストコンピューティング装置１０２および／または２次メモリとして動作する１つ以上のＳＳＤ１０４があり得る。ＳＳＤ１０４の物理メモリリソースは、３Ｄクロスポイントアレイ、ＤＲＡＭアレイ、ＳＲＡＭアレイ、ＳＴＴ  ＲＡＭアレイ、ＰＣＲＡＭアレイ、ＴＲＡＭアレイ、ＲＲＡＭアレイ、ＮＡＮＤフラッシュアレイ、および／またはＮＯＲフラッシュアレイであり得る。例えば、様々な実施形態では、ＳＳＤ１０４の物理メモリリソースは、組み合わせて、揮発性メモリ１２４および／または不揮発性メモリ１２６の物理メモリリソースとして動作できる。このような物理メモリリソースは、アクセス線（ワード線もしくはセレクト線として称され得る）に結合された行、およびセンス線（sense lines、データ線もしくはデジット線と称され得る）に結合された列に配置されたメモリセルを含むことができる。いくつかの実施形態では、本明細書に記載するように、物理メモリリソースの複数のメモリアレイは分割され得る。
【００１９】
本明細書に記載するように、３Ｄクロスポイントアレイは、不揮発にデータを格納するように、且つデータのアクセスおよび／または取得のレイテンシを削減するように構成されたＳＳＤ用のメモリセルの３次元クロスポイントアレイを意味することが意図される。レイテンシは他の不揮発性メモリ（例えば、ＮＡＮＤフラッシュメモリ）と比較して、揮発性メモリ（例えば、ＤＲＡＭメモリ）で達成される比較的短いレイテンシに近づくレベルまで、削減され得る。
【００２０】
本明細書には「同じ」物理メモリリソースとして明細書で参照されることができる物理メモリリソースの１つの実施形態が説明され（例えば、図２の２２８および図３の３２８に関連して「ＳＳＤメモリリソース」が示され、記載され）ているが、実施形態はそのように限定されない。例えば、図１の１０４に示され、図２、図３の参照番号に関連付けて記載されたＳＳＤは、個々のいくつかのサブアレイに加えて、複数のメモリアレイおよび／または複数のタイプのメモリアレイを含み得る（例えば、１つ以上のＤＲＡＭアレイ、１つ以上のＮＡＮＤフラッシュアレイ、および／または１つ以上の３Ｄクロスポイントアレイなど）。メモリアレイおよび／またはメモリアレイの種類の数に関係なく、１つの物理メモリリソースのＳＳＤメモリリソース中に格納されたデータに対するアドレスは、同じ物理メモリリソースに選択的に結合された同じ（同一の）複数のＢＡＲに登録される。いくつかの実施例では、不揮発性メモリ１２６（例えば、ＮＡＮＤフラッシュアレイおよび／または３Ｄクロスポイントアレイなど）は、複数のＢＡＲ中に同じアドレスが登録され得るＳＳＤメモリリソース中の２次メモリであり得る。例えば、いくつかの実施形態では、揮発性メモリ１２４（例えば、ＤＲＡＭ）のアドレスはＢＡＲに登録されない可能性がある。
【００２１】
少なくとも１つの実施形態では、ホストコンピューティング装置１０２は、様々な動作（本明細書に記載した読み出し動作タイプおよび書き込み動作タイプなど）の実行を命令（要求）および／またはその実行に寄与（１つ以上のプロセッサを介して）するためのＣＰＵ１１０を含み得る。様々な実施形態では、本開示は、Ｌ１キャッシュに加えて、他の３つのレベル（Ｌ２、Ｌ３、および／またはＬ４など）の少なくとも１つのキャッシュの組み合わせを使用する。Ｌ１、Ｌ２、Ｌ３、および／またはＬ４キャッシュは、速いＣＰＵ１１０とより遅い２次メモリ（例えば周辺メモリ装置のＰＣＩｅの）の間の差を縮めるのに個々に寄与する。いくつかの実施形態では、ホストコンピューティング装置１０２は、ＣＰＵ１１０の一部としていくつかの内部キャッシュ１１２を含むことができる。Ｌ１、Ｌ２、および／またはＬ３キャッシュは、（内部キャッシュ１１２として）ＣＰＵ中に形成され得る。様々な実施形態では、Ｌ２キャッシュもしくはＬ３キャッシュは内部キャッシュ１１２の階層中のラストレベルキャッシュ（ＬＬＣ）であり得る。
【００２２】
代替的もしくは追加的に、ホストコンピューティング装置１０２はＣＰＵ１１０の外部にある外部キャッシュ１１４をいくつか含むことができる。内部および／または外部キャッシュは、本明細書に記載された読み出し動作タイプなどのいくつかの動作の実行中にＣＰＵ１１０によって使用されるために、ＳＳＤ１０４の物理メモリリソースから取得したデータを少なくとも一時的に格納するためのメモリとして構成され得る。例えば、内部キャッシュ１１２中のＬ１、Ｌ２、および／またはＬ３キャッシュ階層は、ＣＰＵ１１０によって頻繁にかつ／または最近アクセスされたデータを格納できる。ＣＰＵ１１０によって要求されたデータが個々の内部キャッシュ階層中で見つからない場合、要求されたデータがキャッシュされているかを判定するために外部キャッシュ１１４がチェックされる。様々な実施形態では、外部キャッシュ１１４は１つ以上の様々なタイプのキャッシュを含むことができる。外部キャッシュ１１４はコンピュータの性能を改善するためのマルチレベル格納ストラテジーに寄与しうる。Ｌ４などのキャッシュはＣＰＵの外部に（外部キャッシュ１１４として）、例えば、他の位置の中でも特に、オフチップおよび／またはマザーボード中に組み込まれて設置され得る。
【００２３】
要求されたデータが外部キャッシュ１１４にキャッシュされていない場合、データを例えば不揮発性メモリ１２６から取得するために、メモリアクセス要求がＳＳＤドライバ１１８および／またはＳＳＤ中の１つ以上のコントローラ１２０に送信され得る。いくつかの実施形態では、ホストコンピューティング装置１０２は追加メモリを含み得る。追加メモリは、例えば、他の種類の揮発性メモリのうちでもとりわけＤＲＡＭなどの揮発性メモリ１１６であり得る。
【００２４】
いくつかの実施形態では、ホストコンピューティング装置１０２は、ＣＰＵ１１０の一部としてもしくは外部に、いくつかのバッファ１１７を含むことができる。バッファ１１７は、例えば、いくつかの動作（本明細書で記載する書き込み要求タイプなどの）の実行中にＣＰＵ１１０から受信したデータを蓄積して、そのデータをＳＳＤ１０４の物理メモリリソースに転送するように構成されたメモリであり得る。
【００２５】
本明細書に記載したように、ホストコンピューティング装置１０２は、内部キャッシュ１１２、外部キャッシュ１１４、バッファ１１７、および／または揮発性メモリ１１６を含み得る１次メモリリソースを含み得る。それに対して、ＳＳＤ１０４は、２次メモリリソースとしてみなされ、且つ例えば、本明細書に記載したように揮発性メモリ１２４および／または不揮発性メモリ１２６の組み合わせを含むことができる同じ物理メモリリソースを含む。
【００２６】
いくつかの実施形態において、システム１００はＳＳＤドライバ１１８を含むことができる。ＳＳＤドライバ１１８は、例えばＳＳＤ１０４上に設置された多重ＢＡＲ１２２に関連して、少なくとも本明細書に記載した機能を実行できるように構成され得る。いくつかの実施形態では、ホストコンピューティング装置１０２はＳＳＤドライバ１１８を含むことができるが、実施形態はそのように限定されない。例えば、ＳＳＤ１０４用のＳＳＤドライバ１１８は、ＳＳＤ１０４自身上もしくはシステム１００の他の場所に配置され得る。ＳＳＤドライバ１１８がホストコンピューティング装置１０２上に配置された実施形態では、ＳＳＤドライバ１１８は選択的にＣＰＵ１１０に結合されることができ、さらに、バス１０６を介して選択的にＳＳＤ１０４に結合されることができる。例えば、少なくとも１つのＳＳＤドライバ１１８は、本明細書に記載したように多重ＢＡＲ１２２、キャッシュ１１２、１１４、バッファ１１７および／またはキャッシュ属性の使用に関連した指示を提供するために、選択的に個々のＳＳＤ１０４（例えば、ＰＣＩｅ回路の周辺メモリ装置）中のコントローラ１２０に結合されるように構成され得る。いくつかの実施形態ではコントローラ１２０は、そのコントローラ１２０が設置されているＳＳＤ１０４用のＢＡＲ１２２を含み得る。さらに、コントローラ１２０は、本明細書に記載したように、個々のＳＳＤ１０４の同じ物理メモリリソースへのアクセスを制御するように構成され得る。
【００２７】
少なくとも１つの実施形態では、本開示は以下のように実装され得る。ＳＳＤ１０４は、ＳＳＤ中の同じ物理メモリリソースのアドレス指定のための２つの別個のＢＡＲ１２２を含むことができる。いくつかの実施形態では、２つの別個のＢＡＲ１２２はＳＳＤのコントローラ１２０に位置し、かつ／またはＳＳＤのコントローラ１２０に関連付けられ得る（配置され得る）。様々な実施形態では、同じ物理メモリリソースは不揮発性メモリ１２６（例えば、他の不揮発性メモリのタイプの中でも、ＮＡＮＤフラッシュメモリおよび／または３Ｄクロスポイントメモリ）を含む可能性があり、いくつかの実施形態では揮発性メモリ１２４（例えば、他の揮発性メモリのタイプの中でも、ＤＲＡＭ）を含む可能性がある。
【００２８】
システムの初期化の間、同じ物理リソース用のメモリアドレス領域は多重ＢＡＲ１２２に登録され得る。例えば、同じ２次メモリリソース中のデータ格納用の同じアドレスは、ＳＳＤが初期化されるときにＳＳＤ１０４のコントローラ１０２中の第１のＢＡＲおよび第２のＢＡＲに登録され得る。読み出し要求のためにＲＤ−ＢＡＲ（例えば図２に関連して記載され、２２２−１で示されるような）に割り当てられたキャッシュ属性は、ＷＰキャッシャブル（例えば、ＣＰＵ１１０に関連付けた内部キャッシュ１１２および／または外部キャッシュ１１４中に）に設定され得る。書き込み要求のためにＷＲ−ＢＡＲ（例えば図３に関連して記載され、３２２−２で示されるような）に割り当てられたキャッシュ属性は、例えば、ＣＰＵ１１０に関連付けられたライトコンバイニングバッファ（例えば、図２中の２１７で図示するような）で用いるためのＷＣに設定され得る。
【００２９】
読み出し動作が要求されると、ＳＳＤドライバ１１８は読み出し要求が発行されたと判定でき、読み出し動作の実行のためのコマンドをＲＤ−ＢＡＲ２２２−１用のアドレスを用いて中継できる。例えば、ユーザアプリケーションおよび／またはシステムプログラムを介して書き込み動作が要求された場合は、ＳＳＤドライバ１１８は書き込み要求が発行されたと判定でき、書き込み動作の実行のためのコマンドをＷＲ−ＢＡＲ３２２−２用のアドレスを用いて中継できる。
【００３０】
例えばＳＳＤ１０４の不揮発性メモリ１２６から取得された読み出し動作タイプのためのデータはＣＰＵ１１０に関連付けられたキャッシュ（内部キャッシュ１１２および／または外部キャッシュ１１４中）にキャッシュされる可能性があるので、データの処理速度は改善され得る。例えば、処理速度は揮発性メモリ（例えば、ホストコンピューティング装置１１０中に設置されたＤＲＡＭ１１６および／またはＳＳＤ１０４に設置されたＤＲＡＭ１２６）からプロセッサにデータが提供されるスピードに近くなり得る。ＣＰＵ１１０に関連付けられたＷＣバッファ１１７を用いた書き込み動作タイプに対する処理速度も同様の改善が達成され得る。
【００３１】
図２は、本開示のいくつかの実施形態に従った読み出し動作パスを説明する図である。いくつかの実施形態では、図２で説明する読み出し動作パス２３０は、図１中に参照番号１０８で示したようなインタフェース（例えばＰＣＩｅ）回路に実装され得る。従って、図１中の参照部号と関連付けて記載したように、読み出し動作パス２３０の実装は、例えば、ホストコンピューティング装置２０２および少なくとも１つのＳＳＤ２０４を用いて実行され得る。
【００３２】
ＣＰＵ２１０は、読み出し動作タイプの実行のための要求２３１をＳＳＤドライバ２１８に発行できる。ＳＳＤドライバ２１８は、その要求２３１が読み出し動作タイプの実行のためのものと判定２３２できるように構成される。このような判定は、同じ２次メモリリソース２２８中に格納されたデータ上の読み出し動作タイプの実行におけるＣＰＵ２１０による使用のために、特定のＳＳＤ２０４のコントローラ２２０に関連付けられたＲＤ−ＢＡＲ２２２−１が選択２４２されるように、指示と共にＣＰＵ２１０に中継２３３され得る。いくつかの実施形態では、コントローラ２２０に関連付けられたＲＤ−ＢＡＲ２２２−１は、装置ＳＳＤドライバ２１８によって選択され得る。
【００３３】
特定のＳＳＤ２０４は、コントローラ２２０に関連付けられたＲＤ−ＢＡＲ２２２−１およびＷＲ−ＢＡＲ（図２に図示せず）の両方を含むことができる。しかし、ＳＳＤドライバ２１８は、要求された読み出し動作を、例えば、割り当てられたキャッシュ属性としてＷＰキャッシャブルに設定されマップされたアドレスを含むＲＤ−ＢＡＲ２２２−１に割り当てる。ＳＳＤメモリリソース２２８の物理メモリアドレス２２９のマップされたアドレス２４４を用いて、データは同じ２次物理メモリリソースから論理パス２４８中に取得２４６され得る。本明細書で用いられているように、ＷＰキャッシャブル属性は、ＣＰＵ２１０などのプロセッサに関連付けてデータをキャッシュする技術を意味することを意図している。ＷＰキャッシュ属性は、キャッシュされたデータに任意のオーダーで読み出し動作もしくはその一部が実行され得るが、そのデータに書き込み動作が行われないようにキャッシュを制御できる。
【００３４】
様々な実施形態において、取得したデータはホストコンピューティング装置２０２に送信され、読み出し動作タイプの実行の間、少なくとも一時的に１つ以上の内部キャッシュ２１２（例えば、Ｌ１、Ｌ２および／またはＬ３キャッシュ）、ＣＰＵ２１０の外部の１つ以上のキャッシュ２１４（例えば、Ｌ４キャッシュ）および／またはＣＰＵ２１０による使用のための１次メモリリソースの揮発性メモリ２１６（例えばＤＲＡＭ）中に格納され得る。従って、ホストコンピューティング装置２０２中の１次メモリリソースの特定のメモリは、ＣＰＵ２１０によって使用される同じ２次メモリリソースから転送されたデータ値の格納のために選択されることができる。１次メモリリソース（例えば、内部キャッシュ２１２および／または外部キャッシュ２１４）は、例えばＷＰのような有効にされたキャッシュ属性によって制御され得る。
【００３５】
従って、様々な実施形態中で本明細書に記載するように、ＳＳＤドライバ２１８は、動作を実行するために、かつ要求された動作が例えば読み出し動作タイプもしくは書き込み動作タイプであるかを判定するために、ＣＰＵ２１０からの要求を受信するように構成され得る。ＳＳＤドライバ２１８は、判定された動作タイプと共に適宜使用するために複数のＢＡＲからＢＡＲを適切に選択し、複数の動作タイプのうちのどれが要求されているかによって判定された特定のＢＡＲに動作を割り当てるようにさらに構成され得る。様々な実施形態では、複数のＢＡＲの各々には異なるキャッシュ属性タイプが割り当てられ得る。ここで、個々のＢＡＲの異なるキャッシュ属性タイプは要求された動作のタイプに対応し得る。
【００３６】
ＳＳＤドライバ２１８は、判定された動作タイプの実行中に、選択されたＢＡＲによって使用されるキャッシュ属性を有効にするようにさらに構成され得る。有効にされたキャッシュ属性は選択されたＢＡＲに割り当てられる可能性があり、有効にされたキャッシュ属性は選択されていないＢＡＲに割り当てられたキャッシュ属性と異なっている可能性がある。例えば、図２に示し関連して記載したように、第１のＢＡＲ（ＲＤ−ＢＡＲ２２２−１）は、読み出し動作タイプのために選択される可能性があり、有効にされたキャッシュ属性はＷＰである可能性がある。図３に示し関連して記載したように、第２のＢＡＲ（ＷＲ−ＢＡＲ３２２−１）は、書き込み動作タイプのために選択される可能性があり、有効にされたキャッシュ属性はＷＣである可能性がある。
【００３７】
このように、第１の動作は、ＳＳＤドライバ２１８により、第１の動作が読み出し動作タイプであることに基づいて第１のＢＡＲに選択的に割り当てられ得、第２の動作は、ＳＳＤドライバ２１８により、第２の動作が書き込み動作タイプであることに基づいて第２のＢＡＲに選択的に割り当てられ得る。ＳＳＤドライバ２１８は、読み出し動作中に第１のＢＡＲと共に使用するために読み出し動作タイプ用に選択される第１のキャッシュ属性（例えばＷＰ）を有効にすることができ、書き込み動作中に第２のＢＡＲと共に使用するために書き込み動作タイプ用に選択される第２のキャッシュ属性（例えばＷＣ）を有効にすることができる。第１のＢＡＲと共に使用するための第１のキャッシュ属性、および第２のＢＡＲと共に使用するための第２のキャッシュ属性は、異なるキャッシュ属性タイプであり得る。
【００３８】
このように、複数のＢＡＲは、同じ２次メモリリソースに選択的に結合した２つのＢＡＲであり得る。しかし、様々な実施形態では、複数のＢＡＲは、分割された同じ２次メモリリソース中の複数のパーティションに選択的に結合した２つよりも多いＢＡＲであり得る。例えば、セキュリティ上の理由などのために、異なる機能でデータが入手可能になるようにするため、同じ２次メモリリソースは、多数のパーティション（領域）に分割され得る。このような状態では、コントローラ２２０に関連付けられた２つ（または２つより多く）の異なるＢＡＲは、第１のパーティションに選択的に結合され得るし、少なくとも１つのＢＡＲは少なくとも１つの他のパーティションに選択的に結合され得る。２つより多くのＢＡＲが使用される場合、いくつかの実施形態では、２つより多い異なるキャッシュ属性が割り当てられ得る。例えば、ＷＰおよびＷＣの代わりもしくはそれらに加えて、ＷＢ、ＷＴ、ＷＡ、ＵＣ、および／またはＵＣ−などのキャッシュ属性が少なくとも１つのＢＡＲに割り当てられ得る。
【００３９】
図３は、本開示のいくつかの実施形態に従った書き込み動作パスを説明する図である。いくつかの実施形態では、図３で説明する書き込み動作パス３４０は、図１中に参照番号１０８で示したようなインタフェース（例えばＰＣＩｅ）回路に実装され得る。従って、図１中の参照部号と関連付けて記載したように、書き込み動作パス３４０の実装は、例えば、ホストコンピューティング装置３０２および少なくとも１つのＳＳＤ３０４を用いて実行され得る。
【００４０】
ＣＰＵ３１０は、例えば書き込み動作タイプの実行のための要求３３１をＳＳＤドライバ３１８に発行できる。ＳＳＤドライバ３１８は、その要求３３１が書き込み動作タイプの実行のためのものと判定３３２できるように構成される。このような判定は、書き込み動作タイプの実行中にＣＰＵ３１０によって使用される同じ２次メモリリソース３２８に転送されるデータ値の蓄積および格納のために、ホストコンピューティング装置３１０のバッファ３１７が選択３３４されるような指示と共にＣＰＵ３１０に中継３３３され得る。いくつかの実施形態では、ホストコンピューティング装置３０２中のバッファ３１７は、データの転送のためにＣＰＵ３１０によって使用されるために、装置ＳＳＤドライバ３１８によって選択され得る。
【００４１】
バッファ３１７は、有効にされたＷＣキャッシュ属性によって制御されるＷＣバッファであり得る。本明細書で使用するように、ＷＣキャッシュ属性は、書き込みが行われるようにデータを直ちに同じ物理メモリリソースに送信する代わりに、同じ物理メモリリソースに転送するために、データが蓄積されてバーストモードで放出されることを許容する技術を意味することを意図している。例えば、可能な閾値のうちでもとりわけバッファ３１７のデータ収容能力、１ページのデータ、完全なデータファイルなどの閾値にデータの量（ビット）が達したとき、データはバッファ３１７から放出され得る。ＷＣキャッシュ属性は、書き込み動作に関して読み出し動作が命令されるように、ＷＣバッファを制御できる。
【００４２】
バッファ３１７からデータが放出される前、放出中もしくは放出後に、ＳＳＤドライバ３１８は、そのコントローラ３２０により指示された書き込み動作のために、データが特定の２次メモリＳＳＤ３０４（例えば、ＰＣＩｅ回路中の周辺メモリ装置）に送信３３５されることを決定できる。特定のＳＳＤ３０４は、コントローラ３２０に関連付けられたＷＲ−ＢＡＲ３２２−１およびＲＤ−ＢＡＲ（図３に図示せず）の両方を含むことができる。しかし、ＳＳＤドライバ３１８は、要求された書き込み動作を、割り当てられたキャッシュ属性としてＷＣに設定されマップされたアドレスを含むＷＲ−ＢＡＲ３２２−１に割り当てる。ＳＳＤメモリリソース３２８（例えば、揮発性メモリ３２４および／または不揮発性メモリ３２６）の物理メモリアドレス３２９のマップされたアドレス３３６を用いて、データは論理パス３３８中でバッファ３１７からＳＳＤメモリリソース３２８の意図した物理メモリアドレス３２９に書き込まれ得る。
【００４３】
本開示は、読み出し動作を同じＳＳＤリソースへの書き込み動作と分離することにより、他の周辺コンポーネント・インターコネクト・システムのアプローチ（例えば、中でもＰＣＩ、ＰＣＩｅ、ＰＣＩ−Ｘ、およびＡＧＰ）と比較して利点を提供できる。バッファおよび／またはキャッシュが例えば閾値に達して、バッファおよび／またはキャッシュ中のより多くのメモリを使用可能にするためにそのデータが送信されるときにのみデータが書き込まれ得るので、データの書き込みはシステムの性能に大きく影響しない可能性がある。さらに、書き込みデータがＳＳＤメモリリソース３２８に到着したとき、データは最初にＳＳＤの内部揮発性メモリ３２４（例えば、ＤＲＡＭおよび／またはスタティックランダムアクセスメモリ（ＳＲＡＭ））書き込みバッファに配置され得るので、不揮発性メモリ３２６レイテンシは効果的に隠され得る。
【００４４】
一方、要求されたデータが取得されて送られてくるまでＣＰＵ２１０の動作が遅れる可能性があるので、ＳＳＤメモリリソース２２８からのデータの読み出しは、システム性能により影響を与え得る。他の周辺コンポーネント・インターコネクトシステムのアプローチでは、アドレス空間用の１つのＢＡＲを書き込み動作と共有するため、書き込み動作が読み出されたデータをキャッシュ可能にすることを阻害し得るので、読み出し動作性能も遅延し得る。そのように、読み出し動作のスピードおよび／または効率の改善は、そのようなシステムの性能を引き上げる。従って、本開示は、同じＳＳＤ物理メモリリソース用の少なくとも２つのＢＡＲ（読み出し動作と書き込み動作で別個のＢＡＲが使用される）を提供することにより、別個にキャッシュ可能になるような読み出し動作を可能にすることを記載する。
【００４５】
本明細書において特定の実施形態が図示され記載されてきたが、同様の結果を達成するように推定される仕組み（ａｒｒａｎｇｅｍｅｎｔ）は示された特定の実施形態の代用となることが可能であるということを当業者は理解するだろう。この開示は本開示のいくつかの実施形態の適合または変形を網羅することが意図されている。上記記載は説明の方法でなされ、限定の方法でなされたものではないということが理解されるべきである。上記実施形態の組み合わせおよび本明細書に具体的には記載されない他の実施形態が、上記記載を検討することで当業者に明らかになるだろう。本開示のいくつかの実施形態の範囲は上記の構造および方法が使用される他の用途を含む。従って、本開示のいくつかの実施形態の範囲は添付の特許請求の範囲およびそれら特許請求の範囲が権利を与えられる均等物の最大限の範囲を参照して決定されるべきである。
【００４６】
前述の詳細な説明において、開示を効率的にする目的で、いくつかの特徴が単一の実施形態にまとめられている。開示のこの方法は本開示の開示される実施形態が各請求項で明確に記載されているものより多くの特徴を使用しなければならないという意図を反映するものとして解釈されるべきでない。むしろ、以下の特許請求の範囲が反映するように、発明の主題は単一の開示の実施形態の全ての特徴より少ないものにある。従って、以下の特許請求の範囲は、各請求項が別個の実施形態としてそれ自身存在する状態で、詳細な説明にここで組みこまれる。
【図１】
2019509554.tif 000003
【図２】
2019509554.tif 000004
【図３】
2019509554.tif 000005
【手続補正書】
【提出日】平成30年10月10日(2018.10.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
各々が同じメモリリソース中のデータ格納用の同じアドレスを含む、複数のベースアドレスレジスタ（ＢＡＲ）を含むコントローラと、
前記同じメモリリソースを含むソリッドステート装置（ＳＳＤ）
を含み、
書き込み動作の実行を有効にするために、前記書き込み動作は選択された第１のキャッシュ属性を有する第１のＢＡＲに割り当てられ、
前記書き込み動作の実行中、前記書き込み動作のデータ値は前記ＳＳＤに転送される前にプロセッサのローカルな特定のバッファに格納のために割り当てられ、前記特定のバッファは前記選択された第１のキャッシュ属性によって制御され、
読み出し動作の実行を有効にするために、前記読み出し動作は選択された第２のキャッシュ属性を有する第２のＢＡＲに割り当てられ、
前記読み出し動作の実行中、前記読み出し動作のデータ値は前記ＳＳＤからの転送の後にプロセッサのローカルな特定のキャッシュに格納のために割り当てられ、前記特定のキャッシュは前記選択された第２のキャッシュ属性によって制御される
メモリ動作を実行するための装置。
【請求項２】
前記コントローラは、複数のタイプの動作のうちのいずれの１つが要求されたかの判定によって、前記複数のＢＡＲの１つに動作を割り当てるように構成される
請求項１に記載の装置。
【請求項３】
前記複数のＢＡＲの各々は異なるキャッシュ属性を含み、
各々のＢＡＲの前記異なるキャッシュ属性は要求された動作のタイプに対応する
請求項１〜２のいずれか１項に記載の装置。
【請求項４】
前記コントローラは、前記ＳＳＤに配置された前記複数のＢＡＲを含む
請求項１〜３のいずれか１項に記載の装置。
【請求項５】
前記コントローラに選択的に結合するソリッドステート装置（ＳＳＤ）ドライバ
をさらに含み、
前記ＳＳＤドライバは、前記コントローラと組み合わせて
前記書き込み動作の実行を有効にするために前記割り当てにより有効にされた前記選択された第１のキャッシュ属性を有する選択された第１のＢＡＲに、書き込み動作タイプが割り当てられ、
前記読み出し動作の実行を有効にするために前記割り当てにより有効にされた選択された第２のキャッシュ属性を有する選択された第２のＢＡＲに、読み出し動作タイプが割り当てられる
ことを管理するように構成され、
前記第１のキャッシュ属性は前記第２のキャッシュ属性と異なる
請求項１〜４のいずれか１項に記載の装置。
【請求項６】
前記ＳＳＤドライバは
動作の実行のための要求を受信し、
前記要求された動作は前記読み出し動作タイプと前記書き込み動作タイプのいずれであるかを判定し、
前記判定された動作タイプで使用に適するようなＢＡＲを前記複数のＢＡＲから選択する
ように構成される請求項１〜５のいずれか１項に記載の装置。
【請求項７】
前記複数のＢＡＲは、同じメモリリソースに選択的に結合される
請求項１〜６のいずれか１項に記載の装置。
【請求項８】
中央処理装置（ＣＰＵ）およびホストコンピューティング装置に設置されたソリッドステート装置（ＳＳＤ）ドライバに選択的に結合された１次メモリリソースを含む前記ホストコンピューティング装置と、
各々が同じ２次メモリリソース中へのデータ格納用の同じアドレスを含む、複数のベースアドレスレジスタ（ＢＡＲ）を含むように構成され、ＳＳＤに設置されたコントローラであって、前記ＳＳＤドライバに選択的に結合される前記コントローラと、
前記同じ２次メモリリソースを含む前記ＳＳＤ
を含み、
前記複数のＢＡＲは前記同じ２次メモリリソースに選択的に結合され、
前記ＳＳＤドライバは、前記コントローラと組み合わせて
読み出し動作の実行を有効にするために、前記読み出し動作は選択された第１のキャッシュ属性を有する第１のＢＡＲに割り当てられ、
前記読み出し動作の実行中、前記ホストコンピューティング装置中の特定のキャッシュは、前記ＣＰＵによる使用のために前記同じ２次メモリリソースから転送されたデータ値の格納に割り当てられ、前記特定のキャッシュは前記選択された第１のキャッシュ属性によって制御され、
書き込み動作の実行を有効にするために、前記書き込み動作は選択された第２のキャッシュ属性を有する第２のＢＡＲに割り当てられ、
前記書き込み動作の実行中、前記ホストコンピューティング装置中の特定のバッファは、前記同じ２次メモリリソースに転送されるデータ値の格納のために前記ＣＰＵによる使用に割り当てられ、前記特定のバッファは前記選択された第２のキャッシュ属性によって制御される
ことを管理するように構成され、
前記第１のＢＡＲの前記選択された第１のキャッシュ属性、および前記第２のＢＡＲの前記選択された第２のキャッシュ属性は、異なるキャッシュ属性タイプである
メモリ動作の実行用のシステム。
【請求項９】
揮発性メモリリソースが前記１次メモリリソースであり、
不揮発性メモリリソースが前記同じ２次メモリリソースである
請求項８に記載のシステム。
【請求項１０】
前記ホストコンピューティング装置中の前記特定のキャッシュは前記装置ＳＳＤドライバによって、前記同じ２次メモリリソースから転送されたデータ値の格納に割り当てられ、
前記特定のキャッシュは、有効にされた第１のキャッシュ属性によって制御され、
前記有効にされた第１のキャッシュ属性は前記読み出し動作のためのライトプロテクトである
請求項１〜９のいずれか１項に記載のシステム。
【請求項１１】
前記ホストコンピューティング装置中の前記特定のキャッシュは前記装置ＳＳＤドライバによって、前記読み出し動作の実行中に前記ＣＰＵによる使用のために選択され、
前記特定のキャッシュは、前記ＣＰＵの一部である内部キャッシュおよび前記ＣＰＵの外部のキャッシュから選択される
請求項１〜１０のいずれか１項に記載のシステム。
【請求項１２】
前記ホストコンピューティング装置中の前記特定のバッファは前記装置ＳＳＤドライバによって、前記同じ２次メモリリソースに転送されるデータ値の格納用に割り当てられ、
前記特定のバッファは前記第２のキャッシュ属性として有効にされたライトコンバイニングによって制御される
請求項１〜１１のいずれか１項に記載のシステム。
【請求項１３】
２次メモリリソース中のデータ格納用のアドレスをマッピングすること、ここで当該マッピングは読み出し動作要求用に第１のキャッシュ属性を設定し、
前記第１のキャッシュ属性に設定された前記マップされたアドレスを含む第１のベースアドレスレジスタ（ＢＡＲ）に割り当てることにより、前記要求された読み出し動作の実行を有効にすること、
前記有効にされた読み出し動作の実行中、ソリッドステート装置（ＳＳＤ）からの転送の後に、前記読み出し動作のデータ値を格納のためにホストプロセッサのローカルな特定のキャッシュに割り当てること、ここで前記特定のキャッシュは有効にされた第１のキャッシュ属性によって制御され、
同じ２次メモリリソース中のデータ格納用のアドレスをマッピングすること、ここで当該マッピングは書き込み動作要求用に第２のキャッシュ属性を設定し、
前記第２のキャッシュ属性に設定された前記マップされたアドレスを含む第２のＢＡＲに割り当てることにより、前記要求された書き込み動作の実行を有効にすること、
前記有効にされた書き込み動作の実行中、ＳＳＤへの転送の前に、前記書き込み動作のデータ値を格納のために前記ホストプロセッサのローカルな特定のバッファに割り当てること、ここで前記特定のバッファは有効にされた第２のキャッシュ属性によって制御され、
を含み、
前記有効にされた第１または第２のキャッシュ属性は、選択されていないＢＡＲに割り当てられたキャッシュ属性とは異なる
メモリ装置を動作させるための方法。
【請求項１４】
前記ＳＳＤドライバは、前記第１のキャッシュ属性としてライトプロテクトに設定された前記マップされたアドレスを含む前記第１のＢＡＲに、前記要求された読み出し動作を割り当て、
前記ＳＳＤドライバは、前記第２のキャッシュ属性としてライトコンバイニングに設定された前記マップされたアドレスを含む前記第２のＢＡＲに、前記要求された書き込み動作を割り当てる
ことをさらに含む請求項１３に記載の方法
【請求項１５】
ＳＳＤドライバが、前記マップされたアドレスを含む前記第１のＢＡＲと共に使用するために、前記要求された読み出し動作のために割り当てたライトプロテクトの第１のキャッシュ属性を有効にすることと、
ＳＳＤドライバが、前記マップされたアドレスを含む前記第２のＢＡＲと共に使用するために、前記要求された書き込み動作のために割り当てたライトコンバイニングの第２のキャッシュ属性を有効にすること、
をさらに含み、
前記第１のＢＡＲと共に使用するための前記第１のキャッシュ属性と、前記第２のＢＡＲと共に使用するための前記第２のキャッシュ属性は異なるキャッシュ属性タイプである
請求項１３〜１４のいずれか１項に記載の方法。
【国際調査報告】
2019509554.tif 000006
2019509554.tif 000007