(57)【特許請求の範囲】
【請求項１】
ＮＶＤＩＭＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）と、
第１アプリケーションに対して前記ＮＶＤＩＭＭ内に第１アドレス空間を第１アクセス（Ａｃｃｅｓｓ）モードで割り当て、第２アプリケーションに対して前記ＮＶＤＩＭＭ内に第２アドレス空間を第２アクセスモードで割り当て、少なくとも前記第１アドレス空間に対する第１アドレスマスクをＮＶＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ）コントロールレジスタ内に格納するように動作するＮＶＭガバナ（ｇｏｖｅｒｎｏｒ）と、を有し、
前記第１アドレスマスクは、前記第１アクセスモードと関連し、
前記ＮＶＤＩＭＭ内の前記第１アドレス空間は、第１割り当て要求に応答して前記第１アクセスモードを用いて割り当てられ、第２割り当て要求に応答して前記第２アクセスモードを用いて割り当てられ、
前記ＮＶＭコントロールレジスタは、前記第２アクセスモードを使用して割り当てられたアドレス空間に対するアドレスマスクを格納せず、
前記ＮＶＭガバナは、第２アクセスモードを使用して、アドレスマスクがＮＶＭコントロールレジスタに格納されていないアドレス空間をアドレス空間として扱うように動作可能であり、
複数の前記ＮＶＤＩＭＭと、前記複数のＮＶＤＩＭＭのキャッシュとして動作する複数のＤＩＭＭ（Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）は階層構造的に構成されることを特徴とする不揮発性メモリを含むシステム。
【請求項２】
前記第１アクセスモード及び第２のアクセスモードは、それぞれブロック単位のアドレス可能モード（ｂｌｏｃｋ−ａｄｄｒｅｓｓａｂｌｅ  ｍｏｄｅ）とバイト単位のアドレス可能モード（ｂｙｔｅ−ａｄｄｒｅｓｓａｂｌｅ  ｍｏｄｅ）とを含むセットから引き出されることを特徴とする請求項１に記載の不揮発性メモリを含むシステム。
【請求項３】
前記ＮＶＭガバナは、前記バイト単位のアドレス可能モードを使用してバイトアドレス可能アドレス空間にアクセスするためのバイトアドレス可能ロジックと、
前記ブロック単位のアドレス可能モードを使用してブロックアドレス可能アドレス空間へのアクセスをエミュレートするソフトウェア、と、含み、
前記ソフトウェアは、前記バイトアドレス可能ロジックを使用することを特徴とする請求項２に記載の不揮発性メモリを含むシステム。
【請求項４】
前記ＮＶＭガバナは、前記バイト単位のアドレス可能モードを使用してバイトアドレス可能アドレス空間にアクセスするためのバイトアドレス可能ロジックと、
前記ブロック単位のアドレス可能モードを使用してブロックアドレス可能アドレス空間にアクセスするためのブロックアドレス可能ロジックと、を含むことを特徴とする請求項２に記載の不揮発性メモリを含むシステム。
【請求項５】
前記ＮＶＭガバナは、前記ＮＶＭコントロールレジスタ内のすべてのアドレスマスクに対して並列的なアクセスチェック（ＡｃｃｅｓｓＣｈｅｃｋ）を遂行するように動作し、マッチングしたアドレスマスクと関連するアクセスモードを利用してアドレス要請をスケジュールするように動作することを特徴とする請求項１に記載の不揮発性メモリを含むシステム。
【請求項６】
前記ＮＶＤＩＭＭと接続されるプロセッサをさらに有し、
前記プロセッサは、前記ＮＶＭコントロールレジスタを含むことを特徴とする請求項１に記載の不揮発性メモリを含むシステム。
【請求項７】
前記プロセッサ上で動作可能なオペレーティングシステム（ＯｐｅｒａｔｉｎｇＳｙｓｔｅｍ）をさらに有し、
前記オペレーティングシステムは、前記ＮＶＭガバナを含むことを特徴とする請求項６に記載の不揮発性メモリを含むシステム。
【請求項８】
前記第１アクセスモードは、第１の入出力（Ｉ／Ｏ）要求が前記第１アドレス空間からデータをどのように読み書きするかを指定し、
前記第２アクセスモードは、第２の入出力（Ｉ／Ｏ）要求が前記第１アドレス空間からデータをどのように読み書きするかを指定することを特徴とする請求項１に記載の不揮発性メモリを含むシステム。
【請求項９】
前記第１アドレス空間は、第１サイズを含み、前記第２アドレス空間は、第２サイズを含み、
前記第１サイズは前記第２サイズと異なることを特徴とする請求項１に記載の不揮発性メモリを含むシステム。
【請求項１０】
ＮＶＤＩＭＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）を含むシステムのアクセス方法において、
前記ＮＶＤＩＭＭ内にアドレス空間を割り当てるための要請を受信する段階と、
前記要請されたアドレス空間に対する少なくとも二つのアクセスモードを含むセットから抽出されるアクセスモードを受信する段階と、
前記ＮＶＤＩＭＭ内のアドレス空間を確認する段階と、
前記アクセスモードが第１アクセスモードでない場合、前記アドレス空間に対するアドレスマスク及び前記アドレス空間に対するアクセスモードをＮＶＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ）コントロールレジスタに格納する段階と、
前記要請されたアドレス空間として前記ＮＶＤＩＭＭ内のアドレス空間を返還（ｒｅｔｕｒｎ）する段階と、
前記第１アクセスモードを使用して、アドレスマスクがＮＶＭコントロールレジスタに格納されていないアドレス空間をアドレス空間として処理する段階と、を有し、
複数の前記ＮＶＤＩＭＭと、前記複数のＮＶＤＩＭＭのキャッシュとして動作する複数のＤＩＭＭ（Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）は階層構造的に構成されることを特徴とする不揮発性メモリを含むシステムのアクセス方法。
【請求項１１】
前記アドレス空間に対する前記アドレスマスクを格納する段階は、前記アドレス空間に対する前記アクセスモードがブロック単位のアドレス可能モード（ｂｌｏｃｋ−ａｄｄｒｅｓｓａｂｌｅ  ｍｏｄｅ）である場合に、前記アドレス空間に対する前記アドレスマスクを記憶する段階を含むことを特徴とする請求項１０に記載の不揮発性メモリを含むシステムのアクセス方法。
【請求項１２】
前記アドレス空間に対する前記アドレスマスクを格納する段階は、前記アドレス空間に対する前記アクセスモードがバイト単位のアドレス可能モード（ｂｙｔｅ−ａｄｄｒｅｓｓａｂｌｅ  ｍｏｄｅ）である場合に、前記アドレス空間に対する前記アドレスマスクを記憶する段階を含むことを特徴とする請求項１０に記載の不揮発性メモリを含むシステムのアクセス方法。
【請求項１３】
前記ＮＶＤＩＭＭ内にアドレス空間を割り当てる要求を受信する段階は、アプリケーションから前記ＮＶＤＩＭＭ内にアドレス空間を割り当てる要求を受信する段階を含み、
前記要求されたアドレス空間に対する少なくとも二つのアクセスモードを含むセットから抽出されるアクセスモードを受信する段階は、アプリケーションから前記要求されたアドレス空間に対する前記アクセスモードを受信する段階を含み、
前記ＮＶＤＩＭＭ内のアドレス空間を確認する段階は、前記アクセスモードを使用して前記ＮＶＤＩＭＭ内に前記アドレス空間を割り当てる段階を含み、
前記アドレス空間を前記要求されたアドレス空間として返還する段階は、前記アドレス空間を前記要求されたアドレス空間としてアプリケーションに返還する段階を含み、
前記アドレス空間は、前記アクセスモードを用いてアクセスされるように設計されることを特徴とする請求項１０に記載の不揮発性メモリを含むシステムのアクセス方法。
【請求項１４】
前記アドレス空間は、第１割り当て要求に応答して少なくとも二つのアクセスモードの内の第１アクセスモードを用いて割り当てられ、第２割り当て要求に応答して少なくとも二つのアクセスモードの内の第２アクセスモードを用いて割り当てられることを特徴とする請求項１０に記載の不揮発性メモリを含むシステムのアクセス方法。
【請求項１５】
前記少なくとも二つのアクセスモードのそれぞれは、入出力（Ｉ／Ｏ）要求がアドレス空間からデータをどのように読み書きするかを指定することを特徴とする請求項１０に記載の不揮発性メモリを含むシステムのアクセス方法。
【請求項１６】
前記アドレス空間は第１サイズを含み、前記ＮＶＤＩＭＭ内の第２アドレス空間は第２サイズを含み、
前記第１サイズは前記第２サイズと異なることを特徴とする請求項１０に記載の不揮発性メモリを含むシステムのアクセス方法。
【請求項１７】
ＮＶＤＩＭＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）を含むシステムのアクセス方法において、
前記ＮＶＤＩＭＭからアドレス空間にアクセスするための要請を受信する段階と、
ＮＶＭコントロールレジスタ内のアドレスマスクとアドレス空間をマッチングさせようと試みる段階と、
前記アドレス空間が前記ＮＶＭコントロールレジスタ内のアドレスマスクとマッチングしない場合、前記アドレス空間に対するアクセスモードを第１アクセスモードとして決定する段階と、
前記アドレス空間がＮＶＭコントロールレジスタ内のアドレスマスクとマッチングする場合、前記アドレス空間に対するアクセスモードを前記ＮＶＭコントロールレジスタからマッチングしたアドレスマスクに対応するアクセスモードとして決定する段階と、
前記アクセスモードを利用して前記ＮＶＤＩＭＭから前記アドレス空間にアクセスするための前記要請をスケジュールする段階と、を有し、
前記ＮＶＭコントロールレジスタは、各アドレスマスクに対応するアクセスモードを格納し、
前記アドレス空間は、第１割り当て要求に応答して前記アクセスモードを用いて割り当てられ、第２割り当て要求に応答して第２アクセスモードを用いて割り当てられるように設計され、
複数の前記ＮＶＤＩＭＭと、前記複数のＮＶＤＩＭＭのキャッシュとして動作する複数のＤＩＭＭ（Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）は階層構造的に構成されることを特徴とする不揮発性メモリを含むシステムのアクセス方法。
【請求項１８】
前記アドレス空間に対するアクセスモードを決定する段階は、前記アドレス空間に対してブロック単位のアドレス可能モード及びバイト単位のアドレス可能モードの内の１つとしてアクセスモードを決定する段階を含むことを特徴とする請求項１７に記載の不揮発性メモリを含むシステムのアクセス方法。
【請求項１９】
前記ＮＶＭコントロールレジスタから前記アドレス空間に対する前記アクセスモードを決定する段階は、プロセッサ内の前記ＮＶＭコントロールレジスタから前記アクセスモードを決定する段階を含むことを特徴とする請求項１７に記載の不揮発性メモリを含むシステムのアクセス方法。
【請求項２０】
前記アドレス空間を前記ＮＶＭコントロールレジスタ内のアドレスマスクとマッチングさせるように試みる段階は、前記アドレス空間を前記ＮＶＭコントロールレジスタ内のアドレスマスクの各々と比較する段階を含むことを特徴とする請求項１７に記載の不揮発性メモリを含むシステムのアクセス方法。
【請求項２１】
前記アドレス空間を前記ＮＶＭコントロールレジスタ内のアドレスマスクの各々と比較する段階は、並列的に前記アドレス空間を前記ＮＶＭコントロールレジスタ内の前記アドレスマスクの各々と比較する段階を含むことを特徴とする請求項２０に記載の不揮発性メモリを含むシステムのアクセス方法。
【請求項２２】
前記アクセスモードは、第１の入出力（Ｉ／Ｏ）要求が前記アドレス空間からデータをどのように読み書きするかを指定し、
前記第２アクセスモードは、第２の入出力（Ｉ／Ｏ）要求が前記アドレス空間からデータを読み書きする方法を指定することを特徴とする請求項１７に記載の不揮発性メモリを含むシステムのアクセス方法。
【請求項２３】
前記アドレス空間は第１サイズを含み、前記ＮＶＤＩＭＭ内の第２アドレス空間は第２サイズを含み、
前記第１サイズは前記第２サイズと異なることを特徴とする請求項１７に記載の不揮発性メモリを含むシステムのアクセス方法。
【請求項２４】
ＮＶＤＩＭＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）を含むシステムのアクセス方法において、
前記ＮＶＤＩＭＭ内にアドレス空間を割り当てるための要請を受信する段階と、
前記要請されたアドレス空間に対する厳密に二つのアクセスモードを含むセットから抽出されるアクセスモードを受信する段階と、
前記ＮＶＤＩＭＭ内のアドレス空間を確認する段階と、
前記アクセスモードが第１アクセスモードではない場合、前記アドレス空間に対するアドレスマスクをＮＶＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ）コントロールレジスタに格納する段階と、
前記要請されたアドレス空間として前記アドレス空間を返還（ｒｅｔｕｒｎ）する段階と、を有し、
前記アクセスモードは、前記アドレスマスクがＮＶＭコントロールレジスタに格納されているか否かに応じて決定されることを特徴とする不揮発性メモリを含
み、
複数の前記ＮＶＤＩＭＭと、前記複数のＮＶＤＩＭＭのキャッシュとして動作する複数のＤＩＭＭ（Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）は階層構造的に構成されることを特徴とするシステムのアクセス方法。
【請求項２５】
前記アドレス空間に対する前記アドレスマスクを格納する段階は、前記アドレス空間に対する前記アクセスモードがブロック単位のアドレス可能モードである場合に、前記アドレス空間に対する前記アドレスマスクを格納する段階を含むことを特徴とする請求項２４に記載の不揮発性メモリを含むシステムのアクセス方法。
【請求項２６】
前記アドレス空間に対する前記アドレスマスクを格納する段階は、前記アドレス空間に対する前記アクセスモードがバイト単位のアドレス可能モードである場合に、前記アドレス空間に対する前記アドレスマスクを格納する段階を含むことを特徴とする請求項２４に記載の不揮発性メモリを含むシステムのアクセス方法。
【請求項２７】
前記アドレス空間に対する前記アドレスマスクを前記ＮＶＭコントロールレジスタに格納する段階は、前記アドレス空間に対するアドレスマスク及びアクセスモードをＮＶＭコントロールレジスタに格納する段階を含むことを特徴とする請求項２４に記載の不揮発性メモリを含むシステムのアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリに関し、特に、複数のアクセスモードを支援する不揮発性メモリを含むシステム及びそのアクセス方法に関する。
【背景技術】
【０００２】
ＮＶＤＩＭＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）は、不揮発性メモリをＤＩＭＭ（Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）内のメモリチャンネルに配置する。
しかし、ＮＶＤＩＭＭは、一般的にＤＲＡＭのものからは見られない新しい問題を発生させる。
【０００３】
ＤＩＭＭは、一般的にバイト単位のアドレス化（Ａｄｄｒｅｓｓａｂｌｅ）ストレージを支援する一方、ＮＶＤＩＭＭはバイト単位又はブロック単位のアドレス化ストレージを支援する。
しかし、ＤＩＭＭはＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の支援下にてブロック単位のアドレス化ストレージを支援する。
簡単な解決策としては、ＮＶＤＩＭＭが１つのアドレッシング（Ａｄｄｒｅｓｓｉｎｇ）モードのみを使用するようにすることである。
１つのアドレッシングモードは、バイト単位のアドレス化メーンメモリ／ストレージ又はブロック単位のアドレス化ストレージの中で１つの形態のような特定ＮＶＤＩＭＭの機能である。
しかし、これは単純な解決策である。また、このような単純な解決策ですべての状況に対応することができない。
【０００４】
多様なアプリケーションが異なるメモリ要求事項を有することができるため、ＮＶＤＩＭＭを特定アドレスアドレスモードに制限することは、リソースを最適に活用するように誘導することができないようにし得るという問題がある。
１つのアクセスモードを使用する１つのＮＶＤＩＭＭは過負荷される一方、他のアドレスモードを使用する他のＮＶＤＩＭＭは十分に活用されない。
また、このシナリオでは複数のＮＶＤＩＭＭを含むコンピュータシステムを仮定する。
もし、コンピュータシステムが１つのＮＶＤＩＭＭのみを含む場合、該当ＮＶＤＩＭＭによって支援されないアクセスモードは完全に使用することができない。
したがって、１つのＮＶＤＩＭＭ内で複数のアクセスモードを使用するように支援する方法が必要となっている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第８，８３２，４０８号公報
【特許文献２】米国特許第８，８８０，７７７号公報
【特許文献３】米国特許公開第２００５／０２５１６１７号明細書
【特許文献４】米国特許公開第２０１３／０２７５６６１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
そこで、本発明は上記従来のＮＶＤＩＭＭにおける問題点に鑑みてなされたものであって、本発明の目的は、アドレスマスクを格納するＮＶＭコントロールレジスタを利用して複数のアクセスモードを支援する不揮発性メモリ装置を含むシステム及びそのアクセス方法を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するためになされた本発明による不揮発性メモリを含むシステムは、ＮＶＤＩＭＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）と、第１アプリケーションに対して前記ＮＶＤＩＭＭ内に第１アドレス空間を第１アクセス（Ａｃｃｅｓｓ）モードで割り当て、第２アプリケーションに対して前記ＮＶＤＩＭＭ内に第２アドレス空間を第２アクセスモードで割り当て、少なくとも前記第１アドレス空間に対する第１アドレスマスクをＮＶＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ）コントロールレジスタ内に格納するように動作するＮＶＭガバナ（ｇｏｖｅｒｎｏｒ）と、を有し、前記第１アドレスマスクは、前記第１アクセスモードと関連し、前記ＮＶＤＩＭＭ内の前記第１アドレス空間は、第１割り当て要求に応答して前記第１アクセスモードを用いて割り当てられ、第２割り当て要求に応答して前記第２アクセスモードを用いて割り当てられ、前記ＮＶＭコントロールレジスタは、前記第２アクセスモードを使用して割り当てられたアドレス空間に対するアドレスマスクを格納せず、前記ＮＶＭガバナは、第２アクセスモードを使用して、アドレスマスクがＮＶＭコントロールレジスタに格納されていないアドレス空間をアドレス空間として扱うように動作可能であることを特徴とする。
【０００８】
上記目的を達成するためになされた本発明による不揮発性メモリを含むシステムのアクセス方法は、ＮＶＤＩＭＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）を含むシステムのアクセス方法において、前記ＮＶＤＩＭＭ内にアドレス空間を割り当てるための要請を受信する段階と、前記要請されたアドレス空間に対する少なくとも二つのアクセスモードを含むセットから抽出されるアクセスモードを受信する段階と、前記ＮＶＤＩＭＭ内のアドレス空間を確認する段階と、前記アクセスモードが第１アクセスモードでない場合、前記アドレス空間に対するアドレスマスク及び前記アドレス空間に対するアクセスモードをＮＶＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ）コントロールレジスタに格納する段階と、前記要請されたアドレス空間として前記ＮＶＤＩＭＭ内のアドレス空間を返還（ｒｅｔｕｒｎ）する段階と、前記第１アクセスモードを使用して、アドレスマスクがＮＶＭコントロールレジスタに格納されていないアドレス空間をアドレス空間として処理する段階と、を有することを特徴とする。
【０００９】
また、上記目的を達成するためになされた本発明による不揮発性メモリを含むシステムのアクセス方法は、ＮＶＤＩＭＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）を含むシステムのアクセス方法において、前記ＮＶＤＩＭＭからアドレス空間にアクセスするための要請を受信する段階と、ＮＶＭコントロールレジスタ内のアドレスマスクとアドレス空間をマッチングさせようと試みる段階と、前記アドレス空間が前記ＮＶＭコントロールレジスタ内のアドレスマスクとマッチングしない場合、前記アドレス空間に対するアクセスモードを第１アクセスモードとして決定する段階と、前記アドレス空間がＮＶＭコントロールレジスタ内のアドレスマスクとマッチングする場合、前記アドレス空間に対するアクセスモードを前記ＮＶＭコントロールレジスタからマッチングしたアドレスマスクに対応するアクセスモードとして決定する段階と、前記アクセスモードを利用して前記ＮＶＤＩＭＭから前記アドレス空間にアクセスするための前記要請をスケジュールする段階と、を有し、前記ＮＶＭコントロールレジスタは、各アドレスマスクに対応するアクセスモードを格納し、前記アドレス空間は、第１割り当て要求に応答して前記アクセスモードを用いて割り当てられ、第２割り当て要求に応答して第２アクセスモードを用いて割り当てられるように設計されることを特徴とする。
また、上記目的を達成するためになされた本発明による不揮発性メモリを含むシステムのアクセス方法は、ＮＶＤＩＭＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）を含むシステムのアクセス方法において、前記ＮＶＤＩＭＭ内にアドレス空間を割り当てるための要請を受信する段階と、前記要請されたアドレス空間に対する厳密に二つのアクセスモードを含むセットから抽出されるアクセスモードを受信する段階と、前記ＮＶＤＩＭＭ内のアドレス空間を確認する段階と、前記アクセスモードが第１アクセスモードではない場合、前記アドレス空間に対するアドレスマスクをＮＶＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ）コントロールレジスタに格納する段階と、前記要請されたアドレス空間として前記アドレス空間を返還（ｒｅｔｕｒｎ）する段階と、を有し、前記アクセスモードは、前記アドレスマスクがＮＶＭコントロールレジスタに格納されているか否かに応じて決定されることを特徴とする。
【発明の効果】
【００１０】
本発明に係る複数のアクセスモードを支援する不揮発性メモリを含むシステム及びそのアクセス方法によれば、複数の不揮発性メモリ装置又は複数のＮＶＤＩＭＭの各々に対して個別的なアクセスモードを通じてアクセスすることができるという効果がある。
これを通じて、システムはメモリ等のリソースを効率的に活用することができるという効果がある。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態によるメモリチャンネル上のメモリ又はストレージにＮＶＤＩＭＭを利用したコンピュータシステムを概略的に示すブロック図である。
【図２】図１に示したコンピュータシステムの外部構成を概略的に示す図である。
【図３】図１に示したＮＶＤＩＭＭがアドレス空間に分離される構成を示す図である。
【図４】図１のＮＶＭコントロールレジスタ及び複数のＮＶＤＩＭＭと相互作用する図１に示したＮＶＭガバナを示すブロック図である。
【図５】１６個の異なるアドレスマスク及びアクセスモードを格納する図１に示したＮＶＭコントロールレジスタを示す図である。
【図６】本発明の実施形態による、図１に示したＮＶＭガバナがどのようにしてＮＶＭコントロールレジスタを利用して、要請されたアドレスに対するアクセスモードを決定するかを説明するための図である。
【図７】本発明の実施形態によるアプリケーションに対してＮＶＤＩＭＭ内にアドレス空間を割り当てる方法を説明するためのフローチャートである。
【図８】本発明の実施形態によるＮＶＭガバナがＮＶＤＩＭＭに新たに割り当てられたアドレス空間のために使用されるアクセスモードを決定する方法を説明するためのフローチャートである。
【図９】本発明の実施形態によるＮＶＭガバナが割り当てられるアドレス空間に対する情報をＮＶＭコントロールレジスタ内に格納する方法を説明するためのフローチャートである。
【図１０】本発明の実施形態によるＮＶＭガバナがＮＶＤＩＭＭ内のアドレスにアクセス要請を処理する方法を説明するためのフローチャートである。
【図１１】本発明の実施形態によるＮＶＭガバナが要請されたアドレスに対してアクセスモードを決定する方法を説明するためのフローチャートである。
【図１２】本発明の他の実施形態によるＮＶＭガバナが要請されたアドレスに対してアクセスモードを決定する方法を説明するためのフローチャートである。
【図１３】図１〜図１２に示したメモリ又はストレージのための複数のＮＶＤＩＭＭを使用することができるシステムの概略を示すブロック図である。
【発明を実施するための形態】
【００１２】
次に、本発明に係る複数のアクセスモードを支援する不揮発性メモリを含むシステム及びそのアクセス方法を実施するための形態の具体例を図面を参照しながら説明する。
【００１３】
先の一般的な説明及び次の詳細な説明のすべてが例示的であることを理解しなければならなく、請求された発明の付加的な説明が提供されることとして理解されるべきである。
参照符号が本発明の望ましい実施形態に詳細に表示しており、その例を参照図面に表示している。可能な限り、どのような場合にも、同一な参照番号が同一又は類似な部分を参照するために説明及び図面に使用される。
【００１４】
以下では、不揮発性メモリ装置が本発明の特徴及び機能を説明するための例として使用するものである。
しかし、この技術分野に熟練された人はここに記載される内容によって本発明の他の長所及び性能を容易に理解することができる。また、本発明は他の実施形態を通じて具現されるか、或いは適用されることができる。その上に、詳細な説明は本発明の範囲、技術的思想、及び他の目的から相当に逸脱することなく、観点及び応用によって修正されるか、或いは変更されることができる。
【００１５】
本発明の実施形態は、適応的（Ａｄａｐｔｉｖｅ）アクセスモード及びスマート分割（Ｓｍａｒｔ  Ｐａｒｔｉｏｎｉｎｇ）メカニズムを有するＮＶＤＩＭＭを含む。
スマート分割メカニズムを遂行するために、ＮＶＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ）ガバナ（Ｇｏｖｅｒｎｏｒ）はＮＶＤＩＭＭ内にバイト或いはブロック単位のアドレス化モードにアドレス空間を割り当てるように構成されたハードウェア及び／又はソフトウェアモジュールを含む。
【００１６】
アドレス化モードはアプリケーションによって要請される。
アプリケーションの動作によってランタイム時に、ＮＶＭガバナは動的にＮＶＤＩＭＭをバイト及びブロック単位のアドレス化部分に分割する。
また、スマート分割メカニズムは、複数のアクセスモードを有するアドレス範囲を格納することができるＮＶＭコントロールレジスタを含む。
【００１７】
ＮＶＭガバナは、関係したアクセスモードを有するＮＶＤＩＭＭアドレス空間のためのアプリケーション要請を受信する。
アプリケーションは、多様なアクセスモードを有する１つ以上のアドレス空間を要請する。
ＮＶＭガバナは、情報をＮＶＭコントロールレジスタに格納する。
【００１８】
例えば、情報は要請されたアドレス空間及びモードに対するアクセスモード及びアドレスマスクを含む。
アドレス空間に読み出し及び書き込み要請を遂行するために、ＮＶＭガバナはＮＶＭコントロールレジスタ内のアドレスマスクを確認する。
これは個別的又は並列的に遂行されてもよい。アドレス空間とアクセスモードのマッチングが発見される場合、ＮＶＭガバナは選択されたアクセスモードを有する要請をスケジュールする。
【００１９】
図１は、本発明の実施形態によるメモリチャンネル上のメモリ又はストレージにＮＶＤＩＭＭを利用したコンピュータシステムを概略的に示すブロック図である。
図１にはプロセッサ１０５を示す。
図１を参照すると、プロセッサ１０５は、複数のＮＶＤＩＭＭ（１１０、１１５）のようなメモリモジュールと接続され、他のメモリモジュールと接続される。
また、プロセッサ１０５は複数のＤＩＭＭ１２０、１２５のような他のメモリモジュールと接続される。
【００２０】
他の実施形態では、すべてのメモリモジュールは同等に接続される。
他の実施形態では、複数のＤＩＭＭ（１２０、１２５）は複数のＮＶＤＩＭＭ（１１０、１１５）に対するキャッシュとして動作する。
他の実施形態では、所望する方式によって複数のＮＶＤＩＭＭ（１１０、１１５）、複数のＤＩＭＭ（１２０、１２５）、及び他のメモリ及び／又はストレージ装置が利用される。
例えば、これは装置の特性を最適化する階層構造内に他のメモリ及びストレージ装置を段々に積み重ねて遂行される。
【００２１】
また、プロセッサ１０５は、ストレージ１３０と接続される。
ストレージ１３０は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅｓ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅｓ）、及び／又は他のＮＶＭ技術のような技術を含む何らかの形態のストレージでもなされる。加えて、ストレージ１３０は、ＨＤＤ及びＳＤＤ等の他のストレージが混合されたタイプを含む。
結果的に、ストレージ１３０は、いかなる形態でもプロセッサ１０５と接続される。
例えば、接続形態はバスを通じる直接接続又はＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インターフェイスのようなインターフェイスを通じる外部ストレージとの接続等の形態を含む。
【００２２】
プロセッサ１０５は、オペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ：以下、ＯＳ）１３５の動作を支援する。
ＯＳ１３５は、一度に１つのアプリケーションの動作や並列的に複数のアプリケーションの動作を支援する何らかの形態のオペレーティングシステムであってもよい。
また、ＯＳ１３５は、複数の仮想マシンを支援してもよい。
複数の仮想マシンは、各々の仮想マシンにコンピュータシステム内のすべての資源（リソース）を完全に使用する形態を提供する。
図１を参照すると、ＯＳ１３５によって支援されるｎ個の複数の仮想マシンマシン（１４０〜１４５）を示す。
【００２３】
ＯＳ１３５は、ＮＶＭガバナ１５０を含む。
ＮＶＭガバナ１５０は、複数のＮＶＤＩＭＭ（１１０、１１５）内のアドレス空間割当及び複数のＮＶＤＩＭＭ（１１０、１１５）内のアドレス空間からの読出し／書込み動作の処理を制御する。
ＮＶＭガバナ１５０の動作の支援は、他の可能性の中ではプロセッサ１０５或いはメモリコントローラ内に配置され得るＮＶＭコントロールレジスタ１５５によって遂行される。
以下では、図４〜図６に示すように、ＮＶＭコントロールレジスタ１５５は、アドレス空間が使用された方法に対する情報を格納する。
例えば、このような情報はアドレスマスク及びアクセスモード等を含む。
【００２４】
アドレスマスクは、アドレス空間のすべてのアドレス内の最上位ビットとマッチングされた特定のビット（Ｂｉｔ）パターンを含む。
アクセスモードは、ＮＶＤＩＭＭ内のアドレスにデータが書き込まれるか、或いはアドレスからデータを読み出す方法を指定する。
現在、読出し及び書込み動作はバイト単位のアドレス化モード又はブロック単位のアドレス化モードを利用して遂行される。
現在、二つのアクセスモードのみが存在することを考慮すれば、１つのアクセスモードはシングル（Ｓｉｎｇｌｅ）ビットを使用するとすることができる。
しかし、仮に追加的なアクセスモードがデザインされると、ＮＶＭコントロールレジスタ１５５に格納されたアクセスモードは追加的なビットを使用する。
【００２５】
図２は、図１に示したコンピュータシステムの外部構成を概略的に示す図である。
図２には、コンピュータシステム２０５を示している。
図２を参照すると、コンピュータシステム２０５は、コンピュータ２１０、モニタ２１５、キーボード２２０、及びマウス２２５を含む。
当業者はコンピュータシステム２０５に他の構成要素が含まれることができることを容易に理解できる。
例えば、コンピュータシステム２０５は、プリンタのようなＩ／Ｏ装置等をさらに含む。さらに、コンピュータシステム２０５は、図１に示した既存の内部構成要素を含む。
例えば、既存の内部構成要素は、プロセッサ１０５、複数のＮＶＤＩＭＭ（１１０、１１５）、複数のＤＩＭＭ（１２０、１２５）、及びストレージ１３０等を含む。
【００２６】
図２に示さなかったが、当業者はコンピュータシステム２０５がグラフィックカード、モデム等の他の内部構成要素を含むことを容易に理解できる。
また、当業者はコンピュータシステム２０５が他のコンピュータシステムと直接的に或いは他のタイプのネットワーク（図示せず）を通じて相互作用することができることを容易に理解できる。
また、例えば、図２はコンピュータシステム２０５が既存のデスクトップ（Ｄｅｓｋｔｏｐ）コンピュータとして示したが、当業者はコンピュータシステム２０５がどのような形態のマシン又はコンピューティング装置でもあり得ることを容易に理解できる。
例えば、上述したマシン又はコンピューティング装置はラップトップ（Ｌａｐｔｏｐ）コンピュータ、タブレットコンピュータ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、及びスマートフォン等を含む。
【００２７】
図３は図１に示したＮＶＤＩＭＭがアドレス空間に分離された構成を示す図である。
図３には、ＮＶＤＩＭＭ１１０を示す。しかし、図３に示す内容は図１のＮＶＤＩＭＭ１１５にも同様に適用される。
図３を参照すると、ＮＶＤＩＭＭ１１０は、アドレス空間（３０５、３１０、３１５）を含む１６個の複数のアドレス空間に区分されたものを示す。
【００２８】
アドレス空間（３０５、３１０、３１５）の各々は、一部のアプリケーションに対して割り当てられたＮＶＤＩＭＭ１１０の一部分であってもよい。
また、複数の他のアドレス空間が同一のアプリケーションに割り当てられる。
即ち、個別のアプリケーションは、ＮＶＤＩＭＭ１１０内の単一（Ｓｉｎｇｌｅ）アドレス空間を使用することに限定されない。
加えて、アドレス空間（３０５、３１０、３１５）の各々は、どのアクセスモードでも使用する。
【００２９】
ＮＶＤＩＭＭ１１０のような単一ＮＶＤＩＭＭ内のアドレス空間（３０５、３１０、３１５）又は単一アプリケーションによって使用されたアドレス空間（３０５、３１０、３１５）は、所望する形態のどのようなアクセスモードでも使用される。
アドレス空間（３０５、３１０、３１５）がアプリケーション要請に応答して割り当てられたとき、図１のＮＶＭガバナ１５０は、アドレス空間（３０５、３１０、３１５）のサイズを指定する役割を担当する。
【００３０】
図３では、ＮＶＤＩＭＭ１１０が１６個のアドレス空間に区分されたものを示した。
しかし、ＮＶＤＩＭＭ１１０内に割り当てられるアドレス空間の数が１６より大きいか、或いは小さいことも可能である。
また、図３は、アドレス空間（３０５、３１０、３１５）の各々が同一のサイズを有するものとして示した。
即ち、アドレス空間（３０５、３１０、３１５）の各々がＮＶＤＩＭＭ１１０内に同一の数のアドレスを含むことを示した。
しかし、アドレス空間（３０５、３１０、３１５）は、ＮＶＤＩＭＭ１１０の自体サイズ内のどのようなサイズであってもよい。
例えば、アドレス空間３０５は単なる８Ｋｂのデータのみを格納することができる一方、アドレス空間３１０は４８Ｍｂのデータを格納することができるようにし得る。
アドレス空間（３０５、３１０、３１５）に対して記述したサイズは単なる例示的なことであり、ＮＶＤＩＭＭ１１０内の個別なアドレス空間（３０５、３１０、３１５）のサイズはこれに限定されることではない。
【００３１】
加えて、図１のＮＶＭガバナ１５０は、アドレス空間（３０５、３１０、３１５）の大きさを再調整する。
例えば、アドレス空間３０５が初期において１Ｍｂのデータを格納するように割り当てられたと仮定する。
アドレス空間３０５を使用するアプリケーションが実行されている間に、アプリケーションが図１のＮＶＭガバナ１５０に追加的なメモリ及び／又はストレージを要請する。
図１のＮＶＭガバナ１５０は、単純に追加的なアドレス空間（３１０、３１５）を割り当てし、これを該当アプリケーションに配分する。
しかし、仮に該当アプリケーションによって要請された追加的なメモリ及び／又はストレージがアドレス空間３０５と同一のアクセスモードを使用し、アドレス空間３０５に隣接した可能なアドレスがあれば、アドレス空間３１０は（まだ割り当てされない場合）、図１のＮＶＭガバナ１５０はアドレス空間３０５が隣接アドレスを含むように拡張する。
【００３２】
上述した例は、アドレス空間（３０５、３１０、３１５）のサイズが増加する例を説明したが、アドレス空間（３０５、３１０、３１５）のサイズは、同様な方法で減少することができる。
仮に、アプリケーションが不必要なメモリ及び／又はストレージを解除することを望む場合、該当メモリ及び／又はストレージは、図１のＮＶＭガバナ１５０によって割り当て解除されるように考慮された後のメモリ及び／又はストレージに対する要請を満足するように利用され得る。
【００３３】
後述する図５及び図６で記述するように、図１のＮＶＭコントロールレジスタ１５５はアドレス空間（３０５、３１０、３１５）の各々に対するアドレスマスクを格納する。
このようなアドレスマスクは、どのアドレス空間（３０５、３１０、３１５）が特定のアドレスを含むか否かを判断、決定するのに利用される。
仮に、上述したようにアドレス空間（３０５、３１０、３１５）の空間が再調整されると、アドレス空間（３０５、３１０、３１５）と関連されたアドレスマスクは、新しくサイズが再調整されたアドレス空間（３０５、３１０、３１５）を反映して変更される。
例えば、仮にアドレス空間（３０５、３１０、３１５）が拡張されると、関連するアドレスマスクはより少ない数のビットを含む。
仮に、アドレス空間（３０５、３１０、３１５）が減少された場合、関連するアドレスマスクは追加的なビットを含む。
【００３４】
アドレスマスク内のビット数は、アドレス空間（３０５、３１０、３１５）のサイズに影響を与え得る。
例えば、個別アドレスが６４ビットを含むと仮定する。
仮に４８ビットがアドレスマスクとして使用されると、最下位１６ビットは該当アドレス空間内のアドレスを区分するのに使用される。
これはアドレス空間（３０５、３１０、３１５）が６５５３６ビット、又は８１９２バイトのデータを格納することを意味する。
例えば、仮にアプリケーションがアドレス空間（３０５、３１０、３１５）に１６７７７２１６ビット又は２０９７１５２バイトを格納するために拡張するように要請すれば、アドレスマスクは４８ビットから４０ビットに減少する。
【００３５】
アドレスマスクの長さがアドレス空間（３０５、３１０、３１５）のサイズに影響を与えることができる方法に対する一つの結果は、アドレス空間（３０５、３１０、３１５）が２の累乗の形態のサイズを有するようにする。
しかし、単なるアドレス空間（３０５、３１０、３１５）のサイズが２の累乗の形態であることが該当アプリケーションが全体アドレス空間にアクセス権限を与えることであることを意味しないため、アプリケーションがアクセスし難いアドレス空間の一部は結果的に使用されない。
使用できないメモリ及び／又はストレージを有しないため、仮にアプリケーションが２の累乗形態のサイズにアドレス空間（３０５、３１０、３１５）を拡張することによって適切に得られることができない追加的なメモリ及び／又はストレージを要求する場合、他のサイズを有する他のアドレス空間は図１のＮＶＭコントロールレジスタ（１５５）内の追加的な構成と共に使用される。
【００３６】
図４は、図１のＮＶＭコントロールレジスタ及び複数のＮＶＤＩＭＭと相互作用する図１に示したＮＶＭガバナを示すブロック図である。
図４を参照すると、ＮＶＭガバナ１５０は、割当ロジック４０５、バイトアドレス化ロジック４１０、ブロックアドレス化ロジック４１５、及びソフトウェア４２０を含む。
【００３７】
アプリケーションからの要請に応答して、割当ロジック４０５は、アプリケーションに対して図３のアドレス空間（３０５、３１０、３１５）のようにＮＶＤＩＭＭ１１０からメモリ及び／又はストレージの一部を割り当てる。
バイトアドレス化ロジック４１０は、バイト単位のアドレス化アクセスモードを利用するＮＶＤＩＭＭ１１０内の図３のアドレス空間（３０５、３１０、３１５）からアドレスにアクセスする。
また、ブロックアドレス化ロジック４１５は、ブロック単位のアドレス化アクセスモードを利用するＮＶＤＩＭＭ１１０内の図３のアドレス空間（３０５、３１０、３１５）からアドレスにアクセスする。
【００３８】
最終的に、一部の実施形態では、ブロックアドレス化ロジック４１５を含む代わりに、ソフトウェア４２０はバイトアドレス化ロジック４１０を利用してブロックアドレス化ロジック４１５をエミュレーション（Ｅｍｕｌａｔｉｏｎ）する。
即ち、メモリ及び／又はストレージのブロックアクセスがバイトアドレス化ロジック（４１０）を利用してソフトウェア（４２０）によってエミュレートすることができるので、一部の実施形態ではブロックアドレス化ロジック（４１５）を含む必要がない。
【００３９】
ＮＶＭガバナ１５０は、ＮＶＭコントロールレジスタ１５５にデータを格納するか、或いは格納されたデータにアクセスする。
ＮＶＭガバナ１５０が割当ロジック４０５を利用する場合、ＮＶＭガバナ１５０はＮＶＭコントロールレジスタ１５５内にアドレスマスク及びアクセスモードを格納する。
そうすると、ＮＶＭガバナ１５０がアドレスにアクセスするための要請を受信する場合、ＮＶＭガバナ１５０はＮＶＭコントロールレジスタ１５５内に格納されたアドレスマスク及びアクセスモードを使用する。
これは要請されたアドレスにアクセスする場合に使用されたアクセスモードを判断、決定するためである。
【００４０】
図５は、１６個の異なるアドレスマスク及びアクセスモードを格納する図１に示したＮＶＭコントロールレジスタを示す図である。
図５を参照すると、ＮＶＭコントロールレジスタ１５５は、複数のアドレスマスク（５０５、５１０、５１５）及び複数のアクセスモード（５２０、５２５、５３０）を含む。
アドレスマスク及びアクセスモードの各々のペアは、図１の複数のＮＶＤＩＭＭ（１１０、１１５）内の図３のアドレス空間（３０５、３１０、３１５）と関連する。
【００４１】
図５では、ＮＶＭコントロールレジスタ１５５が１６個の複数のアドレスマスク及びアクセスモードを含むように示した。
但し、これは例示的なものであって、ＮＶＭコントロールレジスタ１５５はこれに限定されない。
ＮＶＭコントロールレジスタ１５５は、いかなる数のアドレスマスク及びアクセスモードも格納できる。
【００４２】
加えて、図５は複数のアドレスマスクが４８ビットの長さを有し、アクセスモードは１つのビットを有することを示した。
但し、これは例示的なものであって、複数のアドレスマスク及びアクセスモードはこれに限定されない。
複数のアドレスマスク（５０５、５１０、５１５）はどのようなサイズも有してもよく、各々異なるサイズであってもよい。
同様に、二つのアクセスモード（バイト単位及びブロック単位のアドレス化）を区分するために１つのビットのみが必要であるが、仮に追加的なアクセスモードが提供された場合、複数のアクセスモード（５２０、５２５、５３０）は１つ以上のビットを含む。
【００４３】
図６は、本発明の実施形態による、図１に示したＮＶＭガバナがどのようにしてＮＶＭコントロールレジスタを利用して、要請されたアドレスに対するアクセスモードを決定するかを説明するための図である。
図６を参照すると、要請されたアドレス６０５は、アプリケーションが読み出すか、或いは書き込みを所望するアドレスであってもよい。
【００４４】
続いて、複数の比較器（６１０、６１５、６２０）は、要請されたアドレス６０５を複数のアドレスマスク（５０５、５１０、５１５）と比較する。
これは図３のアドレス空間（３０５、３１０、３１５）の中でいずれのアドレス空間が要請されたアドレス６０５を含むか否かを判断、決定するためである。
このような比較はいずれのアドレスマスクが要請されたアドレス６０５内の最上位ビットとマッチングされるか否かを確認するためである。
正確なアドレスマスクが確認された場合、エンコーダ（Ｅｎｃｏｄｅｒ）６２５は該当情報を、コントロール信号を生成するために使用する。
コントロール信号は、該当アクセスモード（５２０、５２５、５３０）を選択するためのマルチプレクサ６３０（Ｍｕｌｔｉｐｌｅｘｅｒ）に対する信号である。
このように選択されたアクセスモードは、アクセスモード６３５として出力される。
【００４５】
図７は、本発明の実施形態によるアプリケーションに対してＮＶＤＩＭＭ内にアドレス空間を割り当てる方法を説明するためのフローチャートである。
図７を参照すると、Ｓ７０５段階で、図１のＮＶＭガバナ１５０は、アプリケーションから該当アプリケーションにＮＶＭアドレス空間を割り当てるための要請を受信する。
【００４６】
Ｓ７１０段階で、図１のＮＶＭガバナ１５０は、要請されたアドレス空間に対するアクセスモードを受信する。
Ｓ７１５段階で、図１のＮＶＭガバナ１５０は、図１の複数のＮＶＤＩＭＭ（１１０〜１１５）内の図３のアドレス空間（３０５、３１０、３１５）の中で有効なアドレス空間を確認する。
【００４７】
Ｓ７２０段階で、図１のＮＶＭガバナ１５０は、図１のＮＶＭコントロールレジスタ１５５内に図３の確認されたアドレス空間（３０５、３１０、３１５）に対するアクセスモード及びアドレスマスクを格納する。
Ｓ７２５段階で、図１のＮＶＭガバナ１５０は、要請したアプリケーションに図３のアドレス空間（３０５、３１０、３１５）を返す（ｒｅｔｕｒｎ）。
【００４８】
図７（及び以下に示す他のフローチャート）を参照すると、１つの実施形態が示される。
しかし、当業者は上述した段階の順序を変更するか、一部段階を省略するか、或いは図面で図示されない接続を含んで他の実施形態が具現できることは容易に理解できる。
明示的に説明されたか否かに関係無く、このようなフローチャートの変形は本発明の実施形態として見なされる。
【００４９】
図８は、本発明の実施形態によるＮＶＭガバナがＮＶＤＩＭＭに新たに割り当てられたアドレス空間のために使用されるアクセスモードを決定する方法を説明するためのフローチャートである。
図８では、図７のＳ７１０段階を詳細に説明する。
図８を参照すると、Ｓ８０５段階で、図１のＮＶＭガバナ１５０はバイト単位のアドレス化されたアドレス空間に対してアプリケーションからの要請を受信する。
又は、Ｓ８０５段階の代わりに、Ｓ８１０段階で、図１のＮＶＭガバナ１５０はブロック単位のアドレス化されたアドレス空間に対してアプリケーションからの要請を受信する。
【００５０】
上述したように、一実施形態は、バイト単位のアドレス化及びブロックアドレス化の二つのアクセスモードを考慮する。
図８を参照すると、このような実施形態が反映する。
しかし、仮に追加的なアクセスモードが導入されると、図８は追加的なアクセスモードの使用を反映するように変形される。
【００５１】
図９は、本発明の実施形態によるＮＶＭガバナが割り当てられたアドレス空間に対する情報をＮＶＭコントロールレジスタ内に格納する方法を説明するためのフローチャートである。
図９では、図７のＳ７２０段階の動作を詳細に説明する。
【００５２】
図９を参照すると、Ｓ９０５段階で、図１のＮＶＭガバナ１５０は、図１のＮＶＭコントロールレジスタ１５５内に図３のすべてのアドレス空間（３０５、３１０、３１５）に対するアクセスモード及びアドレスマスクを格納する。
又は、Ｓ９０５段階の代わりに、Ｓ９１０段階で、図１のＮＶＭガバナ１５０は、バイト単位のアドレス化アクセスモードを使用しない図３のアドレス空間（３０５、３１０、３１５）に対するアクセスモード及びアドレスマスクのみを格納する。
【００５３】
そうすると、仮に図６で要請されたアドレス６０５のように要請されたアドレスが図１のＮＶＭコントロールレジスタ１５５のアドレスマスク内で発見されない場合、図３のアドレス空間（３０５、３１０、３１５）は、バイト単位のアドレス化アクセスモードを使用すると仮定される。
つまり、バイト単位のアドレス化アクセスモードは、図１のＮＶＭコントロールレジスタ１５５内のマスクされないすべてのアドレスに対するデフォルト（Ｄｅｆａｕｌｔ）アクセスモードに見なされる。
【００５４】
Ｓ９１０段階に対する二つの内容は言及する価値がある。
最初に、デフォルトアクセスモードとしてバイト単位のアドレス化アクセスモードを設定することは１つの選択である。
しかし、ブロック単位のアドレス化されたアドレス空間と関連されたアドレスマスクが代わりに省略されることができる場合に、ブロック単位のアドレス化アクセスモードのような他のアクセスモードはデフォルトアクセスモードに見なされる。
【００５５】
二番目に、仮に複数のＮＶＤＩＭＭ（１１０、１１５）が、ただバイト及びブロック単位のアドレス化アクセスモードのように二つのアクセスモードのみを提供する場合、該当アクセスモードは全体的に図１のＮＶＭコントロールレジスタ１５５から省略される。
これは図１のＮＶＭコントロールレジスタ１５５内にアドレスマスクが格納されることその自体に適切なアクセスモードを確認できるからである。
【００５６】
図１０は、本発明の実施形態によるＮＶＭガバナがＮＶＤＩＭＭ内のアドレスにアクセス要請を処理する方法を説明するためのフローチャートである。
図１０を参照すると、Ｓ１００５段階で、図１のＮＶＭガバナ１５０は、アプリケーションからアドレスにアクセスするための要請を受信する。
Ｓ１０１０段階で、図１のＮＶＭガバナ１５０は、図１のＮＶＭコントロールレジスタ１５５から該当要請されたアドレスに対する適切なアクセスモードを決定する。
図１のＮＶＭガバナ１５０は、図１のＮＶＭコントロールレジスタ１５５に格納されたアドレスマスクを該当要請されたアドレスと比較して（或いは、並列的に）このような決定を遂行する。
比較によって、マッチングがなされた場合、該当アクセスモードは図１のＮＶＭコントロールレジスタ１５５から決定されたアクセスモードとして選択される。
そして、Ｓ１０１５段階で、アクセスモードを使用して、アドレス空間にアクセスするための要請をスケジュールする。
【００５７】
図１１は、本発明の実施形態によるＮＶＭガバナが要請されたアドレスに対してアクセスモードを決定する方法を説明するためのフローチャートである。
図１１では、図１０のＳ１０１０段階を詳細に説明する。
【００５８】
図１１を参照すると、Ｓ１１０５段階で、図１のＮＶＭガバナ１５０は、アドレス空間（３０５、３１０、３１５）がバイト単位のアドレス化アクセスモードを使用するように決定する。
また、Ｓ１１０５段階の代わりに、Ｓ１１１０段階で、図１のＮＶＭガバナ１５０は、アドレス空間（３０５、３１０、３１５）がブロック単位のアドレス化アクセスモードを使用するように決定する。
付加的に、仮に複数のＮＶＤＩＭＭ（１１０、１１５）が追加的なアクセスモードを支援する場合、図１１は他のアクセスモードを決定する方法を反映して変形される。
【００５９】
図１２は、本発明の他の実施形態によるＮＶＭガバナが要請されたアドレスに対してアクセスモードを決定する方法を説明するためのフローチャートである。
図１２では、図１０のＳ１０１０段階を詳細に説明する。
【００６０】
図１２を参照すると、Ｓ１２０５段階で、図１のＮＶＭガバナ１５０は、要請されたアドレスを図１のＮＶＭコントロールレジスタ１５５内のアドレスマスクと比較する。
Ｓ１２１０段階で、図１のＮＶＭガバナ１５０はマッチング結果が発見されたか否かを判断する。
マッチング結果が発見された場合（「はい」方向）、処理は、Ｓ１２１５段階に進行する。
マッチング結果が発見されない場合（「いいえ」方向）、処理は、Ｓ１２２０段階に進行する。
【００６１】
Ｓ１２１５段階で、図１のＮＶＭガバナ１５０は、要請されたアドレスに対するアクセスモードをマッチングされたアドレスマスクに対応する図１のＮＶＭコントロールレジスタ１５５に格納されたアクセスモードとして決定する。
Ｓ１２２０段階で、図１のＮＶＭガバナ１５０は、アクセスモードをバイト単位のアドレス化アクセスモードとして決定する。
或いは、バイト単位のアドレス化アクセスモードがデフォルトではない場合、どちらかのアクセスモードがデフォルトアクセスモードとして指定される。
【００６２】
以下では、本発明の特定の一側面を適用することができる適切なシステム（又は装置）又はシステム（又は装置）に対する簡略的で一般的な説明が提供する。
図１３は、図１〜図１２に示したメモリ又はストレージのための複数のＮＶＤＩＭＭを使用することができるシステムの概略を示すブロック図である。
【００６３】
図１３を参照すれば、一般的に、システム２０５は、１つ又は１つ以上のプロセッサ１０５、複数のメモリ（ＮＶＤＩＭＭ１１０、１１５、ＤＩＭＭ１２０、１２５）（例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、及び他の状態格納媒体）、ＮＶＭガバナのようなメモリコントローラ１５０、ストレージ１３０、ユーザーインターフェイス１３１０、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）エンジン１３１５、及びＩ／Ｏエンジン１３１５を利用して制御され得るＩ／Ｏインターフェイスポートが付着されたシステムバス１３０５を含む。
また、システム２０５は、例えば、イーサーネット（Ｅｔｈｅｒｎｅｔ）コネクタのようなネットワークコネクタ１３２０を含む。
クロック１３２５は、システムバス１３０５に接続された構成要素の動作を調整するために使用される。
【００６４】
システム２０５は、少なくとも部分的に既存の入力装置からの入力によって制御され得る。
例えば、既存の入力装置はキーボード、マウスを含む。
或いは、このような制御は、他のマシンから受信される指針、ＶＲ（Ｖｉｒｔｕａｌ  Ｒｅａｌｉｔｙ）環境との相互作用、生体認識フィードバック、仮想マシン、又は他の入力信号によって遂行される。
【００６５】
ここで、使用した「システム」という用語は幅広く、単一マシン或いはシステム、仮想マシン、又は通信結合型マシンのシステム、仮想マシン、又は共に動作する装置を含む。
例示的なシステムは、パーソナル（Ｐｅｒｓｏｎａｌ）コンピュータ、ワークステーション、サーバ、ポータブル（Ｐｏｒｔａｂｌｅ）コンピュータ、ハンドヘルド装置（Ｈａｎｄｈｅｌｄ  Ｄｅｖｉｃｅ）、携帯電話、タブレット等を含む。
或いは、例示的なシステムは、自動車、列車、タクシーのような個人用又は大衆交通等のような交通装置を含む。
【００６６】
システム２０５は、内蔵コントローラ等を含む。
例えば、内蔵コントローラは、プログラムが可能又は不可能なロジック装置、又はアレイ（Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔｓ）、内蔵コンピュータ、スマートカード等を含む。
システム２０５は、１つ又は１つ以上の遠隔マシンとの１つ又は１つ以上の接続を使用する。
例えば、このような接続は、ネットワークインターフェイス、モデム、又は他の擬似伝達接続を通じてなされる。
【００６７】
システム２０５は、イントラネット、インターネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のような物理的及び／又は論理的ネットワーク方法によって相互接続される。
当業者はネットワーク通信が多様な有線及び／又は無線近距離、又は長距離キャリヤ及びプロトコルを利用できることを容易に理解できる。
例えば、キャリヤ及びプロトコルは、ＲＦ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ）、衛星（Ｓａｔｅｌｌｉｔｅ）、マイクロウェーブ（Ｍｉｃｒｏｗａｖｅ）、ＩＥＥＥ８０２．１１無線ＬＡＮ規格、Ｂｌｕｅｔｏｏｔｈ（登録商標）、光学、赤外線、ケーブル、レーザー等を含む。
【００６８】
本発明の実施形態は、機能、段階、データ構造、アプリケーションプログラムを含む関連データを参照して説明している。
機能、段階、データ構造、アプリケーションプログラムは、システムによってアクセスされる場合にシステムがタスクを遂行するか、或いは抽象的なデータタイプ又はローレベル（Ｌｏｗ−Ｌｅｖｅｌ）のハードウェアコンテキスト（Ｃｏｎｔｅｘｔ）を定義するようにする。
【００６９】
例えば、上述した関連データは、ＲＡＭ、ＲＯＭのような揮発性及び／又は不揮発性メモリに格納される。
また、関連データは、他のストレージ装置及びその関連ストレージ媒体に格納される。
例えば、関連ストレージ媒体は、ハードドライブ、フロッピー（登録商標）ディスク、光学ストレージ（Ｏｐｔｉｃａｌ  Ｓｔｏｒａｇｅ）、テープ（Ｔａｐｅｓ）、フラッシュメモリ（Ｆｌａｓｈ  Ｍｅｍｏｒｙ）、メモリスティック（登録商標）、デジタルビデオディスク、生体ストレージ（Ｂｉｏｌｏｇｉｃａｌ  Ｓｔｏｒａｇｅ）等を含む。
【００７０】
関連データは、パケット、シリアル（Ｓｅｒｉａｌ）データ、パラレル（Ｐａｒａｌｌｅｌ）データ、伝播信号（ｐｒｏｐａｇａｔｅｄ  ｓｉｇｎａｌ）等の形態に物理的及び／又は論理的ネットワークを含む通信環境を通じて伝送され得る。
また、関連データは、圧縮されるか、或いは暗号化された形態で利用される。
関連データは、分散環境で利用することもでき、システムアクセスに対して近くに及び／又は遠くに格納され得る。
【００７１】
本発明の実施形態は、類型のノントランジトリ（Ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）のシステムリーダブル（Ｒｅａｄａｂｌｅ）媒体を含む。
システムリーダブル媒体は、１つ又は１つ以上のプロセッサによって遂行された命令、ここで記述された本発明の要素を遂行する命令に構成された命令を含む。
【００７２】
本発明の実施形態は、制限無しで次の例示に拡張される。
第１例示において、本発明の実施形態は、システムを含む。システムはＮＶＤＩＭＭ及びＮＶＭガバナを含む。ＮＶＭガバナは第１アプリケーションに対して第１アドレス空間を第１アクセスモードにＮＶＤＩＭＭに割り当て、第２アプリケーションに対して第２アドレス空間を第２アクセスモードにＮＶＤＩＭＭに割り当てるように動作する。また、ＮＶＭガバナは少なくとも第１アドレス空間に対する第１アドレスマスクをＮＶＭコントロールレジスタ内に格納するように動作する。第１アドレスマスクは第１アクセスモードと関連する。
【００７３】
第２例示において、本発明の実施形態は、第１例示によるシステムを含む。第１アクセスモードは第２アクセスモードと異なる。
第３例示において、本発明の実施形態は、第１例示によるシステムを含む。第１アクセスモードはブロック単位のアドレス化モードを含み、第２アクセスモードはバイト単位のアドレス化モードを含む。
第４例示において、本発明の実施形態は、第３例示によるシステムを含む。ＮＶＭコントロールレジスタは複数のアドレスマスクを格納するように動作する。複数のアドレスマスクの各々はブロック単位のアドレス化モードを使用するアドレス空間と関連する。ＮＶＭガバナはＮＶＭコントロールレジスタ内に格納されないアドレスマスクに対するすべてのアドレス空間をバイト単位のアドレス化モードを利用するアドレス空間に処理する。
【００７４】
第５例示において、本発明の実施形態は、第３例示によるシステムを含む。ＮＶＭコントロールレジスタは複数のアドレスマスクを格納するように動作する。複数のアドレスマスクの各々はバイト単位のアドレス化モードを使用するアドレス空間と関連する。ＮＶＭガバナはＮＶＭコントロールレジスタ内に格納されないアドレスマスクに対するすべてのアドレス空間をブロック単位のアドレス化モードを利用するアドレス空間に処理する。
第６例示において、本発明の実施形態は、第３例示によるシステムを含む。ＮＶＭコントロールレジスタは第２アドレス空間に対する第２アドレスマスクを格納するように動作する。第２アドレスマスクは第２アクセスモードと関連する。
第７例示において、本発明の実施形態は、第３例示によるシステムを含む。ＮＶＭコントロールレジスタは１６個のアドレスマスク及び１６個のアクセスモードを格納するように動作する。これはＮＶＤＩＭＭ内の１６個のアドレス空間を支援するためである。１６個のアドレスマスクの各々は４８ビットのサイズを有する。
【００７５】
第８例示において、本発明の実施形態は、第３例示によるシステムを含む。ＮＶＭガバナはバイト単位又はブロック単位のアドレス化モードにＮＶＤＩＭＭ内にアドレス空間を割り当てる割当ロジックを含む。
第９例示において、本発明の実施形態は、第３例示によるシステムを含む。ＮＶＭガバナはバイト単位のアドレス化モードを使用して第１アドレス空間にアクセスするバイトアドレス化ロジックを含む。ＮＶＭガバナはブロック単位のアドレス化モードを利用して第２アドレス空間にアクセスするためにエミュレーションするソフトウェアを含む。ソフトウェアはバイトアドレス化ロジックを利用する。
第１０例示において、本発明の実施形態は、第３例示によるシステムを含む。ＮＶＭガバナはバイト単位のアドレス化モードを利用して第１アドレス空間にアクセスするバイトアドレス化ロジック及びブロック単位のアドレス化モードを利用して第２アドレス空間にアクセスするブロックアドレス化ロジックを含む。
【００７６】
第１１例示において、本発明の実施形態は、第３例示によるシステムを含む。ＮＶＭガバナはＮＶＭコントロールレジスタ内のすべてのアドレスマスクに対して並列的なアクセスチェックを遂行するように動作する。また、ＮＶＭガバナはマッチングされたアドレスマスクと関連したアクセスモードを利用してアドレス要請をスケジュールする。
第１２例示において、本発明の実施形態は、第３例示によるシステムを含む。ＮＶＭコントロールレジスタは複数のアドレスマスクの各々を複数のアクセスモードの中で１つと関連させるように動作する。
第１３例示において、本発明の実施形態は、第３例示によるシステムを含む。システムはＮＶＤＩＭＭと接続されたプロセッサをさらに含む。プロセッサはＮＶＭコントロールレジスタを含む。
第１４例示において、本発明の実施形態は、第３例示によるシステムを含む。システムはプロセッサ上で動作可能なＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）をさらに含む。
ＯＳはＮＶＭガバナを含む。
【００７７】
第１５例示において、本発明の実施形態は、システムのアクセス方法を含む。
システムのアクセス方法は、アドレス空間をＮＶＤＩＭＭに割り当てる要請を受信する段階、
要請されたアドレス空間に対するアクセスモードを受信する段階、
ＮＶＤＩＭＭ内のアドレス空間を確認する段階、及び
要請されたアドレス空間として前記アドレス空間を返還する段階を含み、前記アクセスモードは少なくとも二つのアクセスモードを含むセットから抽出される。
【００７８】
第１６例示において、本発明の実施形態は、第１５例示によるシステムのアクセス方法を含む。システムのアクセス方法はアドレス空間に対するアドレスマスク及びアドレス空間に対するアクセスモードをＮＶＭコントロールレジスタ内に格納する段階をさらに含む。
第１７例示において、本発明の実施形態は、第１６例示によるシステムのアクセス方法を含む。アドレス空間に対するアドレスマスクを格納する段階は、仮に前記アドレス空間に対するアクセスモードがブロック単位のアドレス化モードである場合に前記アドレス空間に対するアドレスマスクのみを格納する段階を含む。
第１８例示において、本発明の実施形態は、第１６例示によるシステムのアクセス方法を含む。アドレス空間に対するアドレスマスクを格納する段階は、仮に前記アドレス空間に対するアクセスモードがバイト単位のアドレス化モードである場合に前記アドレス空間に対するアドレスマスクのみを格納する段階を含む。
【００７９】
第１９例示において、本発明の実施形態は、第１５例示によるシステムのアクセス方法を含む。要請されたアドレス空間に対するアクセスモードを受信する段階は、要請されたアドレス空間に対するブロック単位のアドレス化モードを受信する段階を含む。
第２０例示において、本発明の実施形態は、第１５例示によるシステムのアクセス方法を含む。要請されたアドレス空間に対するアクセスモードを受信する段階は、要請されたアドレス空間に対するバイト単位のアドレス化モードを受信する段階を含む。
【００８０】
第２１例示において、本発明の実施形態は、さらなるシステムのアクセス方法を含む。
システムのアクセス方法は、ＮＶＤＩＭＭからアドレス空間にアクセスするための要請を受信する段階、
前記アドレス空間に対するアクセスモードを決定する段階、及び
前記アクセスモードを利用してＮＶＤＩＭＭから前記アドレス空間にアクセスするための要請をスケジュールする段階を含む。
【００８１】
第２２例示において、本発明の実施形態は、第２１例示によるシステムのアクセス方法を含む。アドレス空間に対するアクセスモードを決定する段階は、前記アドレス空間に対するブロック単位のアドレス化モードを決定する段階を含む。
第２３例示において、本発明の実施形態は、第２１例示によるシステムのアクセス方法を含む。アドレス空間に対するアクセスモードを決定する段階は、前記アドレス空間に対するバイト単位のアドレス化モードを決定する段階を含む。
第２４例示において、本発明の実施形態は、第２１例示によるシステムのアクセス方法を含む。アドレス空間に対するアクセスモードを決定する段階は、プロセッサ内のＮＶＭコントロールレジスタからアクセスモードを決定する段階を含む。
【００８２】
第２５例示において、本発明の実施形態は、第２４例示によるシステムのアクセス方法を含む。ＮＶＭコントロールレジスタから前記アクセスモードを決定する段階は、
前記アドレス空間を前記ＮＶＭコントロールレジスタ内のアドレスマスクとマッチングさせるように試みる段階、及び
前記アドレス空間とマッチングされたＮＶＭコントロールレジスタ内のアドレスマスクに対応するアクセスモードを決定する段階を含む。
第２６例示において、本発明の実施形態は、第２５例示によるシステムのアクセス方法を含む。前記アドレス空間を前記ＮＶＭコントロールレジスタ内のアドレスマスクとマッチングさせるように試みる段階は、前記アドレス空間をＮＶＭコントロールレジスタ内のアドレスマスクの各々と比較する段階を含む。
【００８３】
第２７例示において、本発明の実施形態は、第２６例示による方法を含む。前記アドレス空間をＮＶＭコントロールレジスタ内のアドレスマスクの各々と比較する段階は、並列的に前記アドレス空間をＮＶＭコントロールレジスタ内のアドレスマスクの各々と比較する段階を含む。
第２８例示において、本発明の実施形態は、第２５例示によるシステムのアクセス方法を含む。ＮＶＭコントロールレジスタから前記アクセスモードを決定する段階は、仮に前記アドレス空間が前記ＮＶＭコントロールレジスタ内のアドレスマスクとマッチングしない場合に前記アクセスモードをバイト単位のアドレス化モードとして決定する段階を含む。
第２９例示において、本発明の実施形態は、第２５例示によるシステムのアクセス方法を含む。ＮＶＭコントロールレジスタから前記アクセスモードを決定する段階は、仮に前記アドレス空間が前記ＮＶＭコントロールレジスタ内のアドレスマスクとマッチングしない場合に前記アクセスモードをブロック単位のアドレス化モードとして決定する段階を含む。
【００８４】
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【００８５】
１０５    プロセッサ
１１０、１１５    ＮＶＤＩＭＭ
１２０、１２５    ＤＩＭＭ
１３０    ストレージ
１３５    ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）
１４０、１４５    仮想マシン
１５０    ＮＶＭガバナ（メモリコントローラ）
１５５    ＮＶＭコントロールレジスタ
２０５    コンピュータシステム
２１０    コンピュータ
２１５    モニタ
２２０    キーボード
２２５    マウス
３０５、３１０、３１５    アドレス空間
４０５    割当ロジック
４１０    バイトアドレス化ロジック
４１５    ブロックアドレス化ロジック
４２０    ソフトウェア
５０５、５１０、５１５    アドレスマスク
５２０、５２５、５３０    アクセスモード
６０５    要請されたアドレス
６１０、６１５、６２０    比較器
６２５    エンコーダ
６３０    マルチプレクサ
６３５    アクセスモード
１３０５    システムバス
１３１０    ユーザーインターフェイス
１３１５    Ｉ／Ｏエンジン
１３２０    ネットワークコネクタ
１３２５    クロック
【図１】
0006744768.tif 000002
【図２】
0006744768.tif 000003
【図３】
0006744768.tif 000004
【図４】
0006744768.tif 000005
【図５】
0006744768.tif 000006
【図６】
0006744768.tif 000007
【図７】
0006744768.tif 000008
【図８】
0006744768.tif 000009
【図９】
0006744768.tif 000010
【図１０】
0006744768.tif 000011
【図１１】
0006744768.tif 000012
【図１２】
0006744768.tif 000013
【図１３】
0006744768.tif 000014