(57)【要約】  この出願は、不揮発性メモリNVMの持続方法およびコンピューティングデバイスを開示する。クレジット値が、メモリコントローラに関連付けられる少なくとも2つのメモリ書き込み命令セットの各々のために構成され、クレジット値が、メディアコントローラに関連付けられる少なくとも2つのメディア書き込み命令セットの各々のために構成され、クレジット値が、書き込み命令の送信および受信ステータスならびに実行ステータスに基づいて変更され、複数のメモリ書き込み命令セットにそれぞれ対応するクレジット値が、メディアコントローラ内の複数の指定されたメディア書き込み命令セットにそれぞれ対応するクレジット値と同期を維持され、メモリコントローラおよびメディアコントローラのクレジット値が同期を維持された後、書き込み命令の持続が完了しているかどうかが、クレジット値に基づいて正確に見出されることができる。加えて、複数のメモリ書き込み命令セットを設定することは、メモリコントローラの並列処理の効率を改善するために、持続の問い合わせ中にローカルの遮断をメモリ書き込み命令セットの粒度で実装することができる。
2019533244.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリNVMの持続方法であって、メモリ内の書き込まれるべきデータを前記不揮発性メモリNVMに書き込むプロセスに適用され、前記方法は、
メモリコントローラにより、書き込み命令を受信するステップであって、前記書き込み命令が、前記書き込まれるべきデータの書き込みアドレスを含む、ステップと、
前記メモリコントローラにより、前記書き込みアドレスに基づいて少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを選択し、前記書き込み命令を前記目標メモリ書き込み命令セットに記憶し、前記目標メモリ書き込み命令セットに関連付けられるクレジット値を指定された値だけ減らすステップと、
前記メモリコントローラにより、前記目標メモリ書き込み命令セット内の前記書き込み命令を前記メディアコントローラに送信するステップと、
前記書き込み命令を受信した後、前記メディアコントローラにより、前記書き込みアドレスに基づいて前記少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを決定し、前記書き込み命令を前記目標メディア書き込み命令セットに記憶し、前記目標メディア書き込み命令セットのクレジット値を前記指定された値だけ減らすステップと、
前記メディアコントローラにより、前記目標メディア書き込み命令セット内の前記書き込み命令を前記NVMに送信し、前記NVMが前記書き込み命令を実行することに成功した後、前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を前記指定された値だけ増やすステップと、
前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を前記メモリコントローラに送信するステップと、
前記目標メディア書き込み命令セットの前記クレジット値を受信した後、前記メモリコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値に基づいて前記目標メモリ書き込み命令セットの前記クレジット値を更新するステップと、
を含む方法。
【請求項２】
前記少なくとも2つのメモリ書き込み命令セットの各々が、前記NVMのアドレスセクションに関連付けられ、
前記メモリコントローラにより、前記書き込みアドレスに基づいて前記少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを選択し、前記書き込み命令を前記目標メモリ書き込み命令セットに記憶し、前記目標メモリ書き込み命令セットのクレジット値を指定された値だけ減らす前記ステップが、
前記メモリコントローラにより、前記書き込みアドレスが位置する目標アドレスセクションを決定し、前記目標アドレスセクションに関連付けられるメモリ書き込み命令セットを前記目標メモリ書き込み命令セットとして使用するステップと、
前記メモリコントローラにより、前記書き込み命令を前記目標メモリ書き込み命令セットに記憶し、前記目標メモリ書き込み命令セットの前記クレジット値を1だけ減らすステップと、
を含む、請求項1に記載の方法。
【請求項３】
前記NVMのアドレスセクションが、前記少なくとも2つのメディア書き込み命令セットの各々のために構成され、
前記メディアコントローラにより、前記書き込みアドレスに基づいて前記少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを決定し、前記書き込み命令を前記目標メディア書き込み命令セットに記憶し、前記目標メディア書き込み命令セットのクレジット値を前記指定された値だけ減らす前記ステップが、
前記メディアコントローラにより、前記書き込みアドレスが位置する前記目標アドレスセクションを決定し、前記目標アドレスセクションに関連付けられるメディア書き込み命令セットを前記目標メディア書き込み命令セットとして使用するステップと、
前記メディアコントローラにより、前記書き込み命令を前記目標メディア書き込み命令セットに記憶し、前記目標メディア書き込み命令セットの前記クレジット値を1だけ減らすステップと、を含む、請求項2に記載の方法。
【請求項４】
メモリコントローラにより、書き込み命令を受信する前記ステップの前に、
前記メモリコントローラにより、ライブラリ関数を呼び出すことによって前記少なくとも2つのメモリ書き込み命令セットの各々の前記アドレスセクションを構成し、前記少なくとも2つのメディア書き込み命令セットの各々の前記アドレスセクションを構成するステップであって、前記少なくとも2つのメモリ書き込み命令セットおよび前記少なくとも2つのメディア書き込み命令セットが、1対1のマッピング関係を有し、互いに関連付けられるメモリ書き込み命令セットおよびメディア書き込み命令セットが、同じアドレスセクションを有する、ステップをさらに含む、請求項3に記載の方法。
【請求項５】
前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を前記メモリコントローラに送信する前記ステップが、
前記メディアコントローラにより、前記メモリコントローラによって送信された問い合わせ要求を受信するステップであって、前記問い合わせ要求が、前記目標メディア書き込み命令セットの前記クレジット値を問い合わせるために使用される、ステップと、
前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を運ぶ問い合わせ応答を前記メモリコントローラに送信するステップと、を含む、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を前記メモリコントローラに送信する前記ステップが、
前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を前記メモリコントローラに周期的に能動的に送信するステップを含む、請求項1から4のいずれか一項に記載の方法。
【請求項７】
前記メモリコントローラにより、前記目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信し、前記持続の問い合わせ命令の受信の瞬間を取得するステップと、
前記メモリコントローラにより、前記目標メモリ書き込み命令セットに入るべき書き込み命令を前記受信の瞬間の後に遮断するステップと、
前記メモリコントローラにより、前記目標メモリ書き込み命令セットの前記クレジット値を読み取るステップと、
前記読み取られたクレジット値が予め設定された最大値に等しい場合、前記メモリコントローラにより、前記目標メモリ書き込み命令セット内の前記書き込み命令の持続が完了していると判定するステップと、をさらに含む、請求項1に記載の方法。
【請求項８】
前記メモリコントローラにより、前記目標メモリ書き込み命令セットに入るべき書き込み命令を前記受信の瞬間の後に遮断する前記ステップが、
前記メモリコントローラにより、前記目標メモリ書き込み命令セットに入るべき前記書き込み命令を前記受信の瞬間の後にキャッシュするステップ、または
前記メモリコントローラにより、前記受信の瞬間において前記目標メモリ書き込み命令セットにソフトウェアミューテックスを追加するステップ、を含む、請求項7に記載の方法。
【請求項９】
前記メディアコントローラにより、前記目標メディア書き込み命令セットに関する持続の問い合わせ命令を受信するステップと、
前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を読み取るステップと、
前記読み取られたクレジット値が予め設定された最大値に等しい場合、前記メディアコントローラにより、前記目標メディア書き込み命令セット内の前記書き込み命令の持続の動作が完了していると判定するステップと、をさらに含む、請求項1に記載の方法。
【請求項１０】
メモリコントローラ、メディアコントローラ、および不揮発性メモリNVMを含むコンピューティングデバイスであって、前記メモリコントローラが、バッファ空間を含み、前記メモリコントローラの前記バッファ空間が、少なくとも2つのメモリ書き込み命令セットを記憶するために使用され、クレジット値が、前記少なくとも2つのメモリ書き込み命令セットの各々のために構成され、前記メディアコントローラが、バッファ空間を含み、前記メディアコントローラの前記バッファ空間が、少なくとも2つのメディア書き込み命令セットを記憶するために使用され、クレジット値が、前記少なくとも2つのメモリ書き込み命令セットの各々のために構成され、
前記メモリコントローラが、
書き込み命令を受信するように構成され、前記書き込み命令が、書き込まれるべきデータの書き込みアドレスを含み、
前記メモリコントローラが、前記メモリコントローラの前記バッファ空間内に記憶された前記少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを前記書き込みアドレスに基づいて決定し、前記書き込み命令を前記目標メモリ書き込み命令セットに記憶し、前記目標メモリ書き込み命令セットのクレジット値を指定された値だけ減らし、
前記目標メモリ書き込み命令セット内の前記書き込み命令を前記メディアコントローラに送信し、
前記メディアコントローラによって送信される、前記目標メディア書き込み命令セットのクレジット値を受信し、
前記目標メディア書き込み命令セットの前記クレジット値に基づいて前記目標メモリ書き込み命令セットの前記クレジット値を更新するように構成され、
前記メディアコントローラが、
前記メモリコントローラによって送信された前記書き込み命令を受信し、
前記メディアコントローラの前記バッファ空間内に記憶された前記少なくとも2つのメディア書き込み命令セットから前記目標メディア書き込み命令セットを前記書き込みアドレスに基づいて決定し、
前記書き込み命令を前記目標メディア書き込み命令セットに記憶し、前記目標メディア書き込み命令セットの前記クレジット値を前記指定された値だけ減らし、
前記目標メディア書き込み命令セット内の前記書き込み命令を前記NVMに送信し、前記NVMが前記書き込み命令を実行することに成功した後、前記目標メディア書き込み命令セットの前記クレジット値を前記指定された値だけ増やし、
前記目標メディア書き込み命令セットの前記クレジット値を前記メモリコントローラに送信するように構成される、コンピューティングデバイス。
【請求項１１】
前記メモリコントローラが、レシーバ、キャッシュコントローラ、複数のカウンタ、およびトランスミッタをさらに含み、1つのカウンタが、各メモリ書き込み命令セットのために構成され、
前記メディアコントローラが、レシーバ、キャッシュコントローラ、複数のカウンタ、およびトランスミッタをさらに含み、1つのカウンタが、各メディア書き込み命令セットのために構成され、
前記メモリコントローラの前記レシーバが、前記書き込みアドレスを運ぶ前記書き込み命令を受信するように構成され、
前記メモリコントローラの前記キャッシュコントローラが、前記メモリコントローラの前記バッファ空間内に記憶された前記少なくとも2つのメモリ書き込み命令セットから前記目標メモリ書き込み命令セットを前記書き込みアドレスに基づいて選択し、前記書き込み命令を前記目標メモリ書き込み命令セットに記憶し、前記目標メモリ書き込み命令セットの前記クレジット値を前記指定された値だけ減らすように前記目標書き込み命令セットに対応するカウンタに命じるように構成され、
前記メモリコントローラの前記トランスミッタが、前記目標メモリ書き込み命令セット内の前記書き込み命令を前記メディアコントローラの前記レシーバに送信するように構成され、
前記メモリコントローラの前記レシーバが、前記メディアコントローラの前記トランスミッタによって送信される、前記目標メディア書き込み命令セットの前記クレジット値を受信するようにさらに構成され、
前記メモリコントローラの前記キャッシュコントローラが、前記目標メディア書き込み命令セットの前記クレジット値に基づいて前記目標メモリ書き込み命令セットの前記クレジット値を更新するように前記メモリコントローラに対応するカウンタに命じるようにさらに構成され、
前記メディアコントローラの前記レシーバが、前記メモリコントローラの前記トランスミッタによって送信された前記書き込み命令を受信するように構成され、
前記メディアコントローラの前記キャッシュコントローラが、前記メディアコントローラの前記バッファ空間内に記憶された前記少なくとも2つのメディア書き込み命令セットから前記目標メディア書き込み命令セットを前記書き込みアドレスに基づいて決定し、前記書き込み命令を前記目標メディア書き込み命令セットに記憶し、前記目標メディア書き込み命令セットの前記クレジット値を前記指定された値だけ減らすように前記目標メディア書き込み命令セットに対応するカウンタに命じるように構成され、
前記メディアコントローラの前記トランスミッタが、前記目標メディア書き込み命令セット内の前記書き込み命令を前記NVMに送信するように構成され、
前記メディアコントローラの前記キャッシュコントローラが、前記NVMが前記書き込み命令を実行することに成功した後、前記目標メディア書き込み命令セットの前記クレジット値を前記指定された値だけ増やすように前記目標メディア書き込み命令セットに対応する前記カウンタに命じるようにさらに構成され、
前記メディアコントローラの前記トランスミッタが、前記目標メディア書き込み命令セットの前記クレジット値を前記メモリコントローラの前記レシーバに送信するようにさらに構成された、請求項10に記載のコンピューティングデバイス。
【請求項１２】
前記NVMのアドレスセクションが、前記少なくとも2つのメモリ書き込み命令セットの各々のために構成され、
前記メモリコントローラの前記キャッシュコントローラが、
前記書き込みアドレスが位置する目標アドレスセクションを決定し、前記目標アドレスセクションに関連付けられるメモリ書き込み命令セットを前記目標メモリ書き込み命令セットとして使用し、
前記書き込み命令を前記目標メモリ書き込み命令セットに記憶し、前記目標メモリ書き込み命令セットの前記クレジット値を1だけ減らすように前記目標メディア書き込み命令セットに対応する前記カウンタに命じるように構成された、請求項11に記載のコンピューティングデバイス。
【請求項１３】
前記NVMのアドレスセクションが、前記少なくとも2つのメディア書き込み命令セットの各々のために構成され、
前記メディアコントローラの前記キャッシュコントローラが、
前記書き込みアドレスが位置する前記目標アドレスセクションを決定し、前記目標アドレスセクションに関連付けられるメディア書き込み命令セットを前記目標メディア書き込み命令セットとして使用し、
前記書き込み命令を前記目標メディア書き込み命令セットに記憶し、前記目標メディア書き込み命令セットの前記クレジット値を1だけ減らすように前記目標メディア書き込み命令セットに対応する前記カウンタに命じるように構成された、請求項12に記載のコンピューティングデバイス。
【請求項１４】
前記メモリコントローラの前記キャッシュコントローラが、
ライブラリ関数を呼び出すことによって前記少なくとも2つのメモリ書き込み命令セットの各々の前記アドレスセクションを構成し、前記少なくとも2つのメディア書き込み命令セットの各々の前記アドレスセクションを構成するようにさらに構成され、前記少なくとも2つのメモリ書き込み命令セットおよび前記少なくとも2つのメディア書き込み命令セットが、1対1のマッピング関係を有し、互いに関連付けられるメモリ書き込み命令セットおよびメディア書き込み命令セットが、同じアドレスセクションを有する、請求項13に記載のコンピューティングデバイス。
【請求項１５】
前記メディアコントローラの前記トランスミッタが、
前記目標メディア書き込み命令セットの前記クレジット値を運ぶ問い合わせ応答を、前記メモリコントローラの前記トランスミッタによって送信された前記クレジット値の問い合わせ要求に従って前記メモリコントローラの前記レシーバに返すように構成された、請求項11から14のいずれか一項に記載のコンピューティングデバイス。
【請求項１６】
前記メディアコントローラの前記トランスミッタが、
前記目標メディア書き込み命令セットの前記クレジット値を前記メモリコントローラの前記レシーバに周期的に能動的に送信するように構成された、請求項11から14のいずれか一項に記載のコンピューティングデバイス。
【請求項１７】
前記メモリコントローラの前記キャッシュコントローラが、
前記目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信し、前記持続の問い合わせ命令の受信の瞬間を取得し、前記受信の瞬間の後に前記目標メモリ書き込み命令セットに入るべき書き込み命令を遮断し、前記目標メモリ書き込み命令セットに対応する前記カウンタから前記目標メモリ書き込み命令セットの前記クレジット値を読み取り、前記読み取られたクレジット値が予め設定された最大値に等しい場合、前記目標メモリ書き込み命令セット内の前記書き込み命令の持続が完了していると判定するようにさらに構成された、請求項11に記載のコンピューティングデバイス。
【請求項１８】
前記メディアコントローラの前記コントローラが、
前記目標メディア書き込み命令セットに対応する前記カウンタから前記目標メディア書き込み命令セットの前記クレジット値を、前記目標メディア書き込み命令セットに関する受信された持続の問い合わせ命令に従って読み取り、前記読み取られたクレジット値が予め設定された最大値に等しい場合、前記目標メディア書き込み命令セット内の前記書き込み命令の持続の動作が完了していると判定するようにさらに構成された、請求項11に記載のコンピューティングデバイス。
【請求項１９】
データの持続確認方法であって、前記方法はコンピュータシステムに適用され、前記コンピュータシステムは、メモリコントローラ、メディアコントローラ、および前記メディアコントローラに接続された不揮発性メモリNVMを含み、前記方法は、
前記メモリコントローラにより、前記メディアコントローラによって送信される、目標メディア書き込み命令セットのクレジット値を受信するステップであって、前記メディアコントローラが、複数のメディア書き込み命令セットに関連付けられ、前記メモリコントローラが、複数のメモリ書き込み命令セットに関連付けられ、前記目標メディア書き込み命令セットの書き込み命令が、前記メモリコントローラ内の目標メモリ書き込み命令セットからのものであり、前記目標メディア書き込み命令セットが、前記複数のメディア書き込み命令セットのうちの1つであり、前記目標メモリ書き込み命令セットが、前記複数のメモリ書き込み命令セットのうちの1つであり、前記目標メモリ書き込み命令セットおよび前記目標メディア書き込み命令セットが、同じ最大クレジット値を有し、前記目標メディア書き込み命令セットの前記クレジット値が、前記目標メディア書き込み命令セットに入ることを許される書き込み命令の数を示すために使用される、ステップと、
前記メモリコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値に基づいて前記目標メモリ書き込み命令セットのクレジット値を更新するステップであって、前記目標メモリ書き込み命令セットの前記クレジット値が、前記メモリ書き込み命令セットに入ることを許される書き込み命令の数を示すために使用される、ステップと、
前記目標メモリ書き込み命令セットの前記更新されたクレジット値が前記最大値に等しいとき、前記メモリコントローラにより、前記目標メモリ書き込み命令セット内の前記書き込み命令の書き込まれるべきデータの持続が完了していると判定するステップと、
を含む方法。
【請求項２０】
前記メモリコントローラにより、前記メディアコントローラによって送信される、目標メディア書き込み命令セットのクレジット値を受信する前記ステップの前に、前記方法は、
前記メモリコントローラにより、前記書き込み命令を受信するステップであって、前記書き込み命令が、前記書き込まれるべきデータの書き込みアドレスを含む、ステップと、
前記メモリコントローラにより、前記書き込み命令を前記書き込みアドレスに対応する前記目標メモリ書き込み命令セットに記憶し、前記目標メモリ書き込み命令セットの前記クレジット値を指定された値だけ減らすステップと、
前記メモリコントローラにより、前記目標メモリ書き込み命令セット内の前記書き込み命令を前記メディアコントローラに送信するステップと、
前記メディアコントローラにより、前記書き込み命令を前記書き込みアドレスに対応する前記目標メディア書き込み命令セットに記憶し、前記目標メディア書き込み命令セットの前記クレジット値を前記指定された値だけ減らすステップと、
前記目標メディア書き込み命令セット内の前記書き込み命令の前記書き込まれるべきデータを前記NVMに書き込んだ後、前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を前記指定された値だけ増やすステップと、
をさらに含む、請求項19に記載の方法。
【請求項２１】
前記複数のメモリ書き込み命令セットの各々が、前記NVMのアドレスセクションに関連付けられ、前記複数のメディア書き込み命令セットの各々が、前記NVMのアドレスセクションに関連付けられ、
前記メモリコントローラにより、前記書き込み命令を前記書き込みアドレスに対応する前記目標メモリ書き込み命令セットに記憶することが、
前記メモリコントローラにより、前記書き込み命令を前記書き込みアドレスが属する目標アドレスセクションに関連付けられる前記目標メモリ書き込み命令セットに記憶することを含み、
前記メディアコントローラにより、前記書き込み命令を前記書き込みアドレスに対応する前記目標メディア書き込み命令セットに記憶することが、
前記メディアコントローラにより、前記書き込み命令を前記書き込みアドレスが属する前記目標アドレスセクションに関連付けられる前記目標メディア書き込み命令セットに記憶することを含む、請求項20に記載の方法。
【請求項２２】
前記メモリコントローラにより、前記目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信するステップと、
前記メモリコントローラにより、前記持続の問い合わせ命令が受信された後、書き込み命令が前記目標メモリ書き込み命令セットに記憶されるのを遮断するステップと、
前記メモリコントローラにより、前記持続の問い合わせ命令を前記メディアコントローラに送信するステップと、をさらに含み、
前記メモリコントローラにより、前記メディアコントローラによって送信される、目標メディア書き込み命令セットのクレジット値を受信する前記ステップが、
前記メモリコントローラにより、前記持続の問い合わせ命令に応答して前記メディアコントローラによって前記メモリコントローラに送信される、前記目標メディア書き込み命令セットの前記クレジット値を受信するステップを含む、請求項19から21のいずれか一項に記載の方法。
【請求項２３】
前記メモリコントローラにより、前記メディアコントローラによって送信される、目標メディア書き込み命令セットのクレジット値を受信する前記ステップが、
前記メモリコントローラにより、前記メディアコントローラによって前記メモリコントローラに周期的に送信される、前記目標メディア書き込み命令セットの前記クレジット値を受信するステップを含む、請求項19から21のいずれか一項に記載の方法。
【請求項２４】
前記メディアコントローラにより、前記メモリコントローラによって送信された前記持続の問い合わせ命令を受信するステップと、
前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を読み取るステップと、
前記目標メディア書き込み命令セットの前記読み取られたクレジット値が前記最大値に等しいとき、前記メディアコントローラにより、前記目標メディア書き込み命令セット内の前記書き込み命令の前記データの持続が完了していると判定するステップと、
をさらに含む、請求項22に記載の方法。
【請求項２５】
前記メモリコントローラにより、前記複数のメモリ書き込み命令セットの各々に関連付けられる前記アドレスセクションを構成するステップと、
前記メモリコントローラにより、前記複数のメディア書き込み命令セットの各々に関連付けられる前記アドレスセクションを構成するステップと、をさらに含み、
前記複数のメモリ書き込み命令セットおよび前記複数のメディア書き込み命令セットが、1対1のマッピング関係を有し、マッピング関係を有するメモリ書き込み命令セットおよびメディア書き込み命令セットが、同じアドレスセクションに関連付けられる、請求項19から24のいずれか一項に記載の方法。
【請求項２６】
コンピュータシステムであって、メモリコントローラ、メディアコントローラ、および前記メディアコントローラに接続された不揮発性メモリNVMを含み、
複数のメモリ書き込み命令セットが、前記メモリコントローラのバッファ空間内に記憶され、クレジット値が、前記少なくとも2つのメモリ書き込み命令セットの各々のために構成され、
複数のメディア書き込み命令セットが、前記メディアコントローラのバッファ空間内に記憶され、クレジット値が、前記少なくとも2つのメディア書き込み命令セットの各々のために構成され、
前記メモリコントローラが、
前記メディアコントローラによって送信される、目標メディア書き込み命令セットのクレジット値を受信するように構成され、前記メディアコントローラが、前記複数のメディア書き込み命令セットに関連付けられ、前記メモリコントローラが、前記複数のメモリ書き込み命令セットに関連付けられ、前記目標メディア書き込み命令セットの書き込み命令が、前記メモリコントローラ内の目標メモリ書き込み命令セットからのものであり、前記目標メディア書き込み命令セットが、前記複数のメディア書き込み命令セットのうちの1つであり、前記目標メモリ書き込み命令セットが、前記複数のメモリ書き込み命令セットのうちの1つであり、前記目標メモリ書き込み命令セットおよび前記目標メディア書き込み命令セットが、同じ最大クレジット値を有し、前記目標メディア書き込み命令セットの前記クレジット値が、前記目標メディア書き込み命令セットに入ることを許される書き込み命令の数を示すために使用され、
前記メモリコントローラが、前記目標メディア書き込み命令セットの前記クレジット値に基づいて前記目標メモリ書き込み命令セットのクレジット値を更新するように構成され、前記目標メモリ書き込み命令セットの前記クレジット値が、前記メモリ書き込み命令セットに入ることを許される書き込み命令の数を示すために使用され、
前記メモリコントローラが、前記目標メモリ書き込み命令セットの前記更新されたクレジット値が前記最大値に等しいとき、前記目標メモリ書き込み命令セット内の前記書き込み命令の書き込まれるべきデータの持続が完了していると判定するように構成された、コンピュータシステム。
【請求項２７】
前記メモリコントローラが、
前記書き込み命令を受信するようにさらに構成され、前記書き込み命令が、前記書き込まれるべきデータの書き込みアドレスを含み、
前記メモリコントローラが、前記書き込み命令を前記書き込みアドレスに対応する前記目標メモリ書き込み命令セットに記憶し、前記目標メモリ書き込み命令セットの前記クレジット値を指定された値だけ減らし、
前記目標メモリ書き込み命令セット内の前記書き込み命令を前記メディアコントローラに送信するようにさらに構成され、
前記メディアコントローラが、
前記書き込み命令を前記書き込みアドレスに対応する前記目標メディア書き込み命令セットに記憶し、前記目標メディア書き込み命令セットの前記クレジット値を前記指定された値だけ減らし、
前記目標メディア書き込み命令セット内の前記書き込み命令の前記書き込まれるべきデータを前記NVMに書き込んだ後、前記目標メディア書き込み命令セットの前記クレジット値を前記指定された値だけ増やすようにさらに構成された、請求項26に記載のコンピュータシステム。
【請求項２８】
前記複数のメモリ書き込み命令セットの各々が、前記NVMのアドレスセクションに関連付けられ、前記複数のメディア書き込み命令セットの各々が、前記NVMのアドレスセクションに関連付けられ、
前記メモリコントローラが、前記書き込み命令を前記書き込みアドレスが属する目標アドレスセクションに関連付けられる前記目標メモリ書き込み命令セットに記憶するように構成され、
前記メディアコントローラが、前記書き込み命令を前記書き込みアドレスが属する前記目標アドレスセクションに関連付けられる前記目標メディア書き込み命令セットに記憶するように構成された、請求項27に記載のコンピュータシステム。
【請求項２９】
前記メモリコントローラが、
前記目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信し、
前記持続の問い合わせ命令が受信された後、書き込み命令が前記目標メモリ書き込み命令セットに記憶されるのを遮断し、
前記持続の問い合わせ命令を前記メディアコントローラに送信し、
前記持続の問い合わせ命令に応答して前記メディアコントローラによって前記メモリコントローラに送信される、前記目標メディア書き込み命令セットの前記クレジット値を受信するようにさらに構成された、請求項26から28のいずれか一項に記載のコンピュータシステム。
【請求項３０】
前記メモリコントローラが、
前記メディアコントローラによって前記メモリコントローラに周期的に送信される、前記目標メディア書き込み命令セットの前記クレジット値を受信するように構成された、請求項26から28のいずれか一項に記載のコンピュータシステム。
【請求項３１】
前記メディアコントローラが、
前記メモリコントローラによって送信された前記持続の問い合わせ命令を受信し、
前記目標メディア書き込み命令セットの前記クレジット値を読み取り、
前記目標メディア書き込み命令セットの前記読み取られたクレジット値が前記最大値に等しいとき、前記目標メディア書き込み命令セット内の前記書き込み命令の前記データの持続が完了していると判定するように構成された、請求項29に記載のコンピュータシステム。
【請求項３２】
前記メモリコントローラが、
前記複数のメモリ書き込み命令セットの各々に関連付けられる前記アドレスセクションを構成し、
前記複数のメディア書き込み命令セットの各々に関連付けられる前記アドレスセクションを構成するようにさらに構成され、
前記複数のメモリ書き込み命令セットおよび前記複数のメディア書き込み命令セットが、1対1のマッピング関係を有し、マッピング関係を有するメモリ書き込み命令セットおよびメディア書き込み命令セットが、同じアドレスセクションに関連付けられる、請求項26から31のいずれか一項に記載のコンピュータシステム。
【請求項３３】
コンピュータ読み取り可能な記憶媒体であって、1つ以上のコンピュータ実行可能な命令を含み、前記1つ以上のコンピュータ実行可能な命令がコンピュータ上で作動するとき、前記コンピュータが、請求項19から25のいずれか一項に記載の方法を実行する、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータの分野、詳細には、不揮発性メモリ(Non-Volatile Memory、略してNVM)の持続方法およびコンピューティングデバイスに関する。
【背景技術】
【０００２】
データの持続は、持続的な不揮発性メモリNVMに書き込まれることに成功したデータが、システムがクラッシュするかまたは電力障害が起こるときでも失われないことを示す。たとえば、アプリケーションプログラムのデータが持続の特質を有するとき、アプリケーションプログラムは、NVM内に記憶されたデータに基づいて、システムがクラッシュしたかまたは電力障害が起こった後に正常な作動状態に復元されることができる。現在の応用において、NVMは、システムがクラッシュしたかまたは電力障害が起こった後にアプリケーションプログラムの作動がメモリから直接復元されることができるように通常はメモリとして使用される。しかし、NVMがメモリとして使用されるとき、既存のDDR(Double Data Rate、ダブルデータレート)メモリプロトコルは、データの持続の確認をサポートすることができない。理由は、既存のDDRメモリプロトコルにおいては、書き込み命令が、データがCPU(Central Processing Unit、中央処理ユニット)のキャッシュに書き込まれた後ただちにコミットされ、CPUおよびアプリケーションプログラムが、書き込み命令のデータが本当にメモリに書き込まれているかどうかを引き続き追跡し、知ることができないことである。
【０００３】
書き込み命令のデータがメモリに書き込まれているかどうかを判定するために、持続の確認の解決策が現在提案されており、つまり、PCOMMIT命令およびCLFLUSH命令が持続の確認を実装するために使用される。CLFLUSH命令は、CPUキャッシュ内で指定されたデータを書き戻すために使用されることができ、書き込み命令が、生成され、メモリコントローラに送信される。PCOMMIT命令を用いて、メモリコントローラ内のすべての書き込み命令が、メモリに強制的に書き込まれる。PCOMMIT命令の実行プロセスにおいて、メモリコントローラは、メモリコントローラ内のすべての書き込み命令がメモリチップに送信されるまで、メモリコントローラに入るべきである新しい書き込み命令を遮断し続ける。上述の方法によれば、データがメモリに書き込まれることに成功し、データの持続が完了していることが確認されることができる。
【０００４】
現在の持続の確認の解決策においては、PCOMMIT命令がメモリコントローラ内のすべての書き込み命令に対して持続の動作が完了されるように命じるために使用される。PCOMMIT命令の実行プロセスにおいては、メモリコントローラに入るすべての書き込み命令が遮断される。これは、PCOMMIT命令の実行に影響することを避けるために、メモリコントローラに送信される新しい書き込み命令を減少させる。しかし、上述の効果が達成される間、すべてのアプリケーションプログラムの書き込み命令が、しばらくは、メモリコントローラに送信されることができない。したがって、PCOMMIT命令を呼び出すアプリケーションプログラムは、他のアプリケーションプログラムの性能に大きく影響し、全体のシステム作動効率が低くなる。
【発明の概要】
【課題を解決するための手段】
【０００５】
本発明の実施形態は、NVMの持続方法およびコンピューティングデバイスを提供することである。ローカルの遮断がメモリ書き込み命令セット毎の最小粒度に基づいて実装され、それによりメモリコントローラの並列処理の効率を改善するように、複数のメモリ書き込み命令セットが設定される。
【０００６】
第1の態様によれば、この出願は、不揮発性メモリNVMの持続方法を提供する。
【０００７】
メモリコントローラが、少なくとも2つのメモリ書き込み命令セットに関連付けられ、少なくとも2つのメモリ書き込み命令セットは、メモリコントローラ内に設定されてもよい。たとえば、少なくとも2つのメモリ書き込み命令セットは、メモリコントローラのバッファ空間内に位置する。クレジット値が、少なくとも2つのメモリ書き込み命令セットの各々のために構成され、クレジット値は、メモリ書き込み命令セットに入ることを許される書き込み命令の数を示す。メモリ書き込み命令のクレジット値が0に等しいとき、書き込み命令は、メモリ書き込み命令セットに入ることを許されず、各メモリ書き込み命令セットは、最大クレジット値を有する。
【０００８】
NVMは、電力障害が起こった後にデータを依然として保持することができるメモリであり、NVMは、リード・オンリ・メモリ(Read-Only Memory、ROM)、プログラマブル・リード・オンリ・メモリ(Programmable Read-Only Memory、PROM)、電気的変更可能リード・オンリ・メモリ(Electrically Alterable Read Only Memory、EAROM)、消去可能プログラマブル・リード・オンリ・メモリ(Erasable Programmable Read-Only Memory、EPROM)、電気的消去可能プログラマブル・リード・オンリ・メモリ(Electrically Erasable Programmable Read-Only Memory、EEPROM)、またはフラッシュメモリ(Flash Memory)を含むがこれらに限定されない。NVMのメディアコントローラが、少なくとも2つのメディア書き込み命令セットに関連付けられ、少なくとも2つのメディア書き込み命令セットは、メディアコントローラ内に設定されてもよい。たとえば、少なくとも2つのメディア書き込み命令セットは、メディアコントローラのバッファ空間内に位置する。クレジット値が、少なくとも2つのメディア書き込み命令セットの各々のために構成され、クレジット値は、メディア書き込み命令セットに入ることを許される書き込み命令の数を示す。メディア書き込み命令セットのクレジット値が0に等しいとき、書き込み命令は、メディア書き込み命令セットに入ることを許されず、各メディア書き込み命令セットは、最大クレジット値を有する。メモリ書き込み命令セットおよびメディア書き込み命令セットのデータ構造は、キュー、配列、リンクされたリスト、スタック、または同様のものであってもよい。これは、この出願において限定されない。
【０００９】
少なくとも2つのメモリ書き込み命令セット内のメモリ書き込み命令セットの数は、少なくとも2つのメディア書き込み命令セット内のメディア書き込み命令セットの数に等しく、少なくとも2つのメモリ書き込み命令セットおよび少なくとも2つのメディア書き込み命令は、1対1のマッピング関係を有し、互いに関連付けられるメモリ書き込み命令セットおよびメディア書き込み命令セットの最大クレジット値は等しい。
【００１０】
この出願における持続方法は、メモリ内の書き込まれるべきデータをNVMに書き込むプロセスに適用され、次を含む。メモリコントローラが、まず書き込み命令を受信し、書き込み命令が、書き込まれるべきデータの書き込みアドレスを含み、書き込み命令が、プロセッサによって送信されてもよく、メモリコントローラが、書き込みアドレスに基づいて少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを決定し、書き込み命令を選択された目標メモリ書き込み命令セットに記憶し、目標メモリ書き込み命令セットが、少なくとも2つのメモリ書き込み命令セットのうちの1つであり、メモリコントローラが、目標メモリ書き込み命令セットのクレジット値を指定された値だけ減らし、指定された値が、予め設定された値であり、指定された値の具体的な値は、限定されない。
【００１１】
メモリコントローラは、予め設定された選択規則に従って少なくとも2つのメモリ命令セットから目標メモリ書き込み命令セットを選択し、目標メモリ書き込み命令セットから書き込み命令をフェッチし、フェッチされた書き込み命令をメディアコントローラに送信してもよい。
【００１２】
メディアコントローラは、書き込み命令を受信し、書き込み命令に基づいて少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを決定し、目標メディア書き込み命令セットおよび目標メモリ書き込み命令セットは、結合関係を有し、目標メディア書き込み命令セットは、少なくとも2つのメディア書き込み命令セットのうちの1つであり、メディアコントローラは、書き込み命令を目標メディア書き込み命令セットに記憶し、目標メディア書き込み命令セットのクレジット値を指定された値だけ減らす。
【００１３】
メディアコントローラは、予め設定された選択規則に従って少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを選択し、目標書き込み命令セットから書き込み命令をフェッチしてもよい。
【００１４】
メディアコントローラは、書き込み命令内で運ばれる書き込みアドレスを取得し、書き込みアドレスに関連付けられる、NVMの物理ブロックアドレスを、予め設定されたアドレスマッピングテーブルに基づいて問い合わせ、書き込み命令に対応する書き込まれるべきデータを物理ブロックアドレスに対応する物理ブロックに書き込み、物理ブロックアドレスがアドレスマッピングテーブル内で見出されない場合、つまり、物理ブロックアドレスが割り振られていない場合、メディアコントローラは、割り振りのために空き物理ブロックリストから物理ブロックを選択し、選択された物理ブロックの物理ブロックアドレスと書き込みアドレスとの間のマッピング関係をアドレスマッピングテーブル内に確定する。
【００１５】
書き込まれるべきデータがNVMに書き込まれることに成功したと判定した後、メディアコントローラは、目標メディア書き込み命令セットのクレジット値を指定された値だけ増やし、メディアコントローラは、目標メモリ書き込み命令セットのクレジット値および目標メディア書き込み命令セットのクレジット値が同期を維持されるように、目標メディア書き込み命令セットのクレジット値をメモリコントローラに送信する。
【００１６】
上述の実施形態において、複数の指定されたメモリ書き込み命令セットにそれぞれ対応するクレジット値は、メディアコントローラ内の複数の指定されたメディア書き込み命令セットにそれぞれ対応するクレジット値と同期を維持される。メディアコントローラは、各メディア書き込み命令セットのクレジット値に基づいて書き込み命令の実行ステータスを判定することができ、したがって、メモリコントローラおよびメディアコントローラのクレジット値が同期を維持された後、書き込み命令の持続が完了しているかどうかが、クレジット値に基づいて正確に見出されることができる。加えて、複数のメモリ書き込み命令セットを設定することは、メモリコントローラの並列処理の効率を改善するために、持続の問い合わせ中にローカルの遮断をメモリ書き込み命令セットの粒度で実装することができる。
【００１７】
この態様の可能な実装においては、NVMの全体のアドレスセクションが、前もって複数の重ならないアドレスセクションに分割され、NVMのアドレスセクションが、少なくとも2つのメモリ書き込み命令セットの各々のために構成され、少なくとも2つのメモリ書き込み命令セットの各々が、異なるアドレスセクションを有する。メモリコントローラが、書き込みアドレスに基づいて少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを決定し、書き込み命令を目標メモリ書き込み命令セットに記憶し、目標メモリ書き込み命令セットのクレジット値を指定された値だけ減らすことは、メモリコントローラにより、書き込み命令内で運ばれる書き込みアドレスが位置する目標アドレスセクションを決定するステップであって、目標アドレスセクションが、少なくとも2つのメモリ書き込み命令セットのためにそれぞれ予め構成されるアドレスセクションのうちの1つである、ステップと、目標アドレスセクションに関連付けられるメモリ書き込み命令セットを目標メモリ書き込み命令セットとして使用するステップであって、指定された値が1である、ステップと、メモリコントローラにより、書き込み命令を目標メモリ書き込み命令セットに記憶し、目標メモリ書き込み命令セットのクレジット値を1だけ減らすステップと、を含む。上述の実施形態において、目標メモリ書き込み命令セットは、書き込み命令が迅速かつ正確に記憶されることができ、それにより処理効率を改善するように、書き込みアドレスが位置するアドレスセクションに基づいて決定される。
【００１８】
この態様の可能な実装においては、NVMの全体のアドレスセクションが、前もって複数の重ならないアドレスセクションに分割され、アドレスセクションの数が、少なくとも2つのメディア書き込み命令セット内のメディア書き込み命令セットの数に等しく、異なるアドレスセクションが、少なくとも2つのメディア書き込み命令セットの各々のために構成される。メディアコントローラが、書き込みアドレスに基づいて少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを決定し、書き込み命令を目標メディア書き込み命令セットに記憶し、目標メディア書き込み命令セットのクレジット値を指定された値だけ減らすことは、メディアコントローラにより、書き込み命令内で運ばれる書き込みアドレスを取得し、書き込みアドレスが位置する目標アドレスセクションを決定するステップであって、目標アドレスセクションが、少なくとも2つのメディア書き込み命令セットのためにそれぞれ構成されたアドレスセクションのうちの1つである、ステップと、メディアコントローラにより、書き込み命令を目標メディア書き込み命令セットに記憶するステップと、を含む。たとえば、目標メディア書き込み命令セットのデータ構造がキューである場合、メディアコントローラは、キューの末尾に書き込み命令を記憶する。別の例として、目標メディア書き込み命令セットのデータ構造がスタックである場合、メディアコントローラは、スタックの一番上に書き込み命令を記憶する。予め設定された指定された値が1である場合、書き込み命令を記憶した後、メディアコントローラは、目標メディア書き込み命令セットのクレジット値を1だけ減らす。上述の実施形態において、目標メディア書き込み命令セットは、書き込み命令が迅速かつ正確に記憶されることができ、それにより処理効率を改善するように、書き込みアドレスが入る目標アドレスセクションを使用することによって決定される。
【００１９】
この態様の可能な実装においては、予め設定された指定された値が1である場合、目標メモリ書き込み命令セットを決定した後、メモリコントローラは、目標メモリ書き込み命令セットの現在のクレジット値を取得し、現在のクレジット値が0より大きいかどうかを判定し、判定の結果が現在のクレジット値が0より大きいことである場合、書き込み命令を目標メモリ書き込み命令セットに記憶し、または判定の結果が現在のクレジット値が0より大きくないことである場合、書き込み命令をキャッシュし、予め設定された期間に基づいて目標メモリ書き込み命令セットのクレジット値を問い合わせ、目標メモリ書き込み命令セットのクレジット値が0より大きいことを見出すとき、キャッシュされた書き込み命令を目標メモリ書き込み命令セットに記憶する。上述の実施形態においては、メモリコントローラが適時な方式で書き込み命令を処理することができないために引き起こされる過負荷を避けるために、メモリコントローラに入る書き込み命令の数がクレジット値を使用することによって制御される。
【００２０】
この態様の可能な実装においては、目標メディア書き込み命令セットを決定した後、メディアコントローラは、目標メディア書き込み命令セットの現在のクレジット値を取得し、現在のクレジット値が0より大きいかどうかを判定し、判定の結果が現在のクレジット値が0より大きいことである場合、書き込み命令を目標メディア書き込み命令セットに記憶し、または判定の結果が現在のクレジット値が0より大きくないことである場合、書き込み命令をキャッシュし、予め設定された期間に基づいて目標メディア書き込み命令セットのクレジット値を問い合わせ、目標メディア書き込み命令セットのクレジット値が0より大きいことを見出すとき、キャッシュされた書き込み命令を目標メディア書き込み命令セットに記憶する。上述の実施形態においては、メディアコントローラが適時な方式で書き込み命令を処理することができないために引き起こされる過負荷を避けるために、メディアコントローラに入る書き込み命令の数がクレジット値を使用することによって制御される。
【００２１】
この態様の可能な実装においては、メモリコントローラが書き込みアドレスを運ぶ書き込み命令を受信する前に、方法は、前もってNVMの全体のアドレスセクションを複数の重ならないアドレスセクションに分割するステップであって、アドレスセクションの数が、メモリコントローラの数に等しく、メモリコントローラの数が、メディアコントローラの数に等しい、ステップをさらに含む。メモリコントローラは、ライブラリ関数を呼び出すことによって少なくとも2つのメモリ書き込み命令セットの各々のアドレスセクションを構成し、各メモリ書き込み命令セットは、異なるアドレスセクションを有し、メモリコントローラは、少なくとも2つのメディア書き込み命令セットの各々のアドレスセクションを構成し、各メディア書き込み命令セットは、異なるアドレスセクションを有し、結合関係を有するメモリ書き込み命令セットおよびメディア書き込み命令セットは、同じアドレスセクションを有する。上述の実施形態において、少なくとも2つのメモリ書き込み命令セットおよび少なくとも2つのメディア書き込み命令セットのアドレスセクションは、目標メモリ書き込み命令セットおよび目標メディア書き込み命令セットが書き込み命令の書き込みアドレスに基づいて決定されるようにライブラリ関数を呼び出すことによって構成される。
【００２２】
この態様の可能な実装において、メディアコントローラが目標メディア書き込み命令セットのクレジット値をメモリコントローラに送信することは、メディアコントローラにより、メモリコントローラによって送信された問い合わせ要求を受信するステップであって、問い合わせ要求が、目標メディア書き込み命令セットのクレジット値を問い合わせるために使用される、ステップを含む。メディアコントローラは、目標メディア書き込み命令セットのクレジット値をレジスタ内に記憶してもよく、目標メディア書き込み命令セットのクレジット値が更新されることを見出すとき、メディアコントローラは、レジスタ内に記憶される、目標メディア書き込み命令セットのクレジット値をただちに更新する。メモリコントローラは、目標メディア書き込み命令セットのクレジット値についてレジスタに直接問い合わせてもよい。問い合わせ要求を受信した後、メディアコントローラは、目標メディア書き込み命令セットのクレジット値を運ぶ問い合わせ応答をメモリコントローラに送信する。
【００２３】
この態様の可能な実装において、メディアコントローラが目標メディア書き込み命令セットのクレジット値をメモリコントローラに送信することは、メディアコントローラにより、目標メディア書き込み命令セットのクレジット値をメモリコントローラに周期的に能動的に送信することを含む。
【００２４】
この態様の可能な実装において、方法は、メモリコントローラにより、目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信し、持続の問い合わせ命令の受信の瞬間を取得するステップと、メモリコントローラにより、受信の瞬間の後に目標メモリ書き込み命令セットに入るべき書き込み命令を遮断するステップと、メモリコントローラにより、目標メモリ書き込み命令セットのクレジット値を読み取るステップと、読み取られたクレジット値が予め設定された最大値に等しい場合、メモリコントローラにより、目標メモリ書き込み命令セット内の書き込み命令の持続が完了していると判定するステップと、をさらに含む。上述の実施形態において、メモリコントローラは、持続の問い合わせ命令を受信し、メモリコントローラの並列処理の効率を改善するために、メモリ書き込み命令セットの粒度でのローカルの遮断が実装されるように、別のメモリ書き込み命令セットを遮断する必要なしに、1つのメモリ書き込み命令セットのみが問い合わせされることを遮断する必要がある。
【００２５】
この態様の可能な実装において、メモリコントローラが、受信の瞬間の後に目標メモリ書き込み命令セットに入るべき書き込み命令を遮断するステップは、受信の瞬間の後に目標メモリ書き込み命令セットに入るべき書き込み命令をキャッシュするステップ、またはメモリコントローラにより、受信の瞬間に目標メモリ書き込み命令セットにソフトウェアミューテックスを追加するステップを含む。
【００２６】
この態様の可能な実装において、方法は、メディアコントローラにより、目標メディア書き込み命令セットに関する持続の問い合わせ命令を受信するステップと、メディアコントローラにより、目標メディア書き込み命令セットのクレジット値を読み取るステップと、読み取られたクレジット値が予め設定された最大値に等しい場合、メディアコントローラにより、目標メディア書き込み命令セット内の書き込み命令の持続の動作が完了していると判定するステップと、をさらに含む。上述の実施形態において、メディアコントローラは、持続の問い合わせ命令を受信し、メディアコントローラの並列処理の効率を改善するために、メモリ書き込み命令セットの粒度でのローカルの遮断が実装されるように、別のメディア書き込み命令セットを遮断する必要なしに、1つのメディア書き込み命令セットのみが問い合わせされることを遮断する必要がある。
【００２７】
第2の態様によれば、この出願は、コンピューティングデバイスをさらに提供し、コンピューティングデバイスは、メモリコントローラ、メディアコントローラ、および不揮発性メモリNVMを含み、コンピューティングデバイスは、データセンターサーバ、ネットワークサーバ、ビデオサーバ、ワークステーション、パーソナルコンピュータ、または同様のものを含むがこれらに限定されない。メモリコントローラは、バッファ空間を含み、バッファ空間は、少なくとも2つのメモリ書き込み命令セットを記憶するために使用され、クレジット値が、少なくとも2つのメモリ書き込み命令セットの各々のために構成され、メディアコントローラは、バッファ空間を含み、バッファ空間は、少なくとも2つのメディア書き込み命令セットを記憶するために使用され、メディアコントローラは、少なくとも2つのメディア書き込み命令セットに関連付けられ、クレジット値が、少なくとも2つのメディア書き込み命令セットの各々のために構成される。メモリ書き込み命令セットおよびメディア書き込み命令セットのデータ構造は、キュー、配列、スタック、リンクされたリスト、または同様のものであってもよい。これは、この出願において限定されない。少なくとも2つのメモリ書き込み命令セット内のメモリ書き込み命令セットの数は、少なくとも2つのメディア書き込み命令セット内のメディア書き込み命令セットの数に等しくてもよく、少なくとも2つのメモリ書き込み命令セットおよび少なくとも2つのメディア書き込み命令は、1対1のマッピング関係を有し、関連付けの関係を有するメモリ書き込み命令セットおよびメディア書き込み命令セットのクレジット値は、等しい。
【００２８】
メモリコントローラは、
書き込み命令を受信するように構成され、書き込み命令が、書き込まれるべきデータの書き込みアドレスを含み、
メモリコントローラは、メモリコントローラのバッファ空間内に記憶された少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを書き込みアドレスに基づいて選択し、書き込み命令を目標メモリ書き込み命令セットに記憶し、目標メモリ書き込み命令セットのクレジット値を指定された値だけ減らし、
目標メモリ書き込み命令セット内の書き込み命令をメディアコントローラに送信し、
メディアコントローラによって送信される、目標メディア書き込み命令セットのクレジット値を受信し、
目標メディア書き込み命令セットのクレジット値に基づいて目標メモリ書き込み命令セットのクレジット値を更新するように構成される。
【００２９】
メディアコントローラは、
メモリコントローラによって送信された書き込み命令を受信し、
メディアコントローラのバッファ空間内に記憶された少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを書き込みアドレスに基づいて決定し、
書き込み命令を目標メディア書き込み命令セットに記憶し、目標メディア書き込み命令セットのクレジット値を指定された値だけ減らし、
目標メディア書き込み命令セット内の書き込み命令をNVMに送信し、NVMが書き込み命令を実行することに成功した後、目標メディア書き込み命令セットのクレジット値を指定された値だけ増やし、
目標メディア書き込み命令セットのクレジット値をメモリコントローラに送信するように構成される。
【００３０】
上述の実施形態において、複数の指定されたメモリ書き込み命令セットにそれぞれ対応するクレジット値は、複数の指定されたメディア書き込み命令セットにそれぞれ対応するクレジット値と同期を維持される。メディアコントローラは、各メディア書き込み命令セットのクレジット値に基づいて書き込み命令の実行ステータスを判定することができ、したがって、メモリコントローラおよびメディアコントローラのクレジット値が同期を維持された後、書き込み命令の持続が完了しているかどうかが、クレジット値に基づいて正確に見出されることができる。加えて、複数のメモリ書き込み命令セットを設定することは、メモリコントローラの並列処理の効率を改善するために、持続の問い合わせ中にローカルの遮断をメモリ書き込み命令セットの粒度で実装することができる。
【００３１】
この態様の可能な実装において、メモリコントローラは、レシーバ、キャッシュコントローラ、複数のカウンタ、およびトランスミッタをさらに含み、1つのカウンタが、各メモリ書き込み命令セットのために構成され、
メディアコントローラは、レシーバ、キャッシュコントローラ、複数のカウンタ、およびトランスミッタをさらに含み、1つのカウンタが、各メディア書き込み命令セットのために構成され、
メモリコントローラのレシーバは、書き込みアドレスを運ぶ書き込み命令を受信するように構成され、
メモリコントローラのキャッシュコントローラは、メモリコントローラのバッファ空間内に記憶された少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを書き込みアドレスに基づいて選択し、書き込み命令を目標メモリ書き込み命令セットに記憶し、目標メモリ書き込み命令セットのクレジット値を指定された値だけ減らすように目標メモリ書き込み命令セットに対応するカウンタに命じるように構成され、
メモリコントローラのトランスミッタは、目標メモリ書き込み命令セット内の書き込み命令をメディアコントローラのレシーバに送信するように構成され、
メモリコントローラのレシーバは、メディアコントローラのトランスミッタによって送信される、目標メディア書き込み命令セットのクレジット値を受信するようにさらに構成され、
メモリコントローラのキャッシュコントローラは、目標メディア書き込み命令セットのクレジット値に基づいて目標メモリ書き込み命令セットのクレジット値を更新するようにメモリコントローラに対応するカウンタに命じるようにさらに構成され、
メディアコントローラのレシーバは、メモリコントローラのトランスミッタによって送信された書き込み命令を受信するように構成され、
メディアコントローラのキャッシュコントローラは、メディアコントローラのバッファ空間内に記憶された少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを書き込みアドレスに基づいて決定し、書き込み命令を目標メディア書き込み命令セットに記憶し、目標メディア書き込み命令セットのクレジット値を指定された値だけ減らすように目標メディア書き込み命令セットに対応するカウンタに命じるように構成され、
メディアコントローラのトランスミッタは、目標メディア書き込み命令セット内の書き込み命令をNVMに送信するように構成され、
メディアコントローラのキャッシュコントローラは、NVMが書き込み命令を実行することに成功した後、目標メディア書き込み命令セットのクレジット値を指定された値だけ増やすように目標メディア書き込み命令セットに対応するカウンタに命じるようにさらに構成され、
メディアコントローラのトランスミッタは、目標メディア書き込み命令セットのクレジット値をメモリコントローラのレシーバに送信するようにさらに構成される。
【００３２】
この態様の可能な実装においては、NVMのアドレスセクションが、少なくとも2つのメモリ書き込み命令セットの各々のために構成され、
メモリコントローラのキャッシュコントローラは、
書き込みアドレスが位置する目標アドレスセクションを決定し、目標アドレスセクションに関連付けられるメモリ書き込み命令セットを目標メモリ書き込み命令セットとして使用し、
書き込み命令を目標メモリ書き込み命令セットに記憶し、目標メモリ書き込み命令セットのクレジット値を1だけ減らすように目標メディア書き込み命令セットに対応するカウンタに命じるように構成される。
【００３３】
この態様の可能な実装においては、NVMのアドレスセクションが、少なくとも2つのメディア書き込み命令セットの各々のために構成され、
メディアコントローラのキャッシュコントローラは、
書き込みアドレスが位置する目標アドレスセクションを決定し、目標アドレスセクションに関連付けられるメディア書き込み命令セットを目標メディア書き込み命令セットとして使用し、
書き込み命令を目標メディア書き込み命令セットに記憶し、目標メディア書き込み命令セットのクレジット値を1だけ減らすように目標メディア書き込み命令セットに対応するカウンタに命じるように構成される。
【００３４】
この態様の可能な実装において、メモリコントローラのキャッシュコントローラは、
ライブラリ関数を呼び出すことによって少なくとも2つのメモリ書き込み命令セットの各々のアドレスセクションを構成し、少なくとも2つのメディア書き込み命令セットの各々のアドレスセクションを構成するようにさらに構成され、少なくとも2つのメモリ書き込み命令セットおよび少なくとも2つのメディア書き込み命令セットは、1対1のマッピング関係を有し、互いに関連付けられるメモリ書き込み命令セットおよびメディア書き込み命令セットは、同じアドレスセクションを有する。
【００３５】
この態様の可能な実装において、メディアコントローラのトランスミッタは、
目標メディア書き込み命令セットのクレジット値を運ぶ問い合わせ応答を、メモリコントローラのトランスミッタによって送信されたクレジット値の問い合わせ要求に従ってメモリコントローラのレシーバに返すように構成される。
【００３６】
この態様の可能な実装において、メディアコントローラのトランスミッタは、
目標メディア書き込み命令セットのクレジット値をメモリコントローラのレシーバに周期的に能動的に送信するように構成される。
【００３７】
この態様の可能な実装において、メモリコントローラのキャッシュコントローラは、
目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信し、持続の問い合わせ命令の受信の瞬間を取得し、受信の瞬間の後に目標メモリ書き込み命令セットに入るべき書き込み命令を遮断し、目標メディア書き込み命令セットに対応するカウンタから目標メモリ書き込み命令セットのクレジット値を読み取り、読み取られたクレジット値が予め設定された最大値に等しい場合、目標メモリ書き込み命令セット内の書き込み命令の持続が完了していると判定するようにさらに構成される。
【００３８】
この態様の可能な実装において、メディアコントローラのコントローラは、
目標メディア書き込み命令セットに対応するカウンタから目標メディア書き込み命令セットのクレジット値を、目標メディア書き込み命令セットに関する受信された持続の問い合わせ命令に従って読み取り、読み取られたクレジット値が予め設定された最大値に等しい場合、目標メディア書き込み命令セット内の書き込み命令の持続の動作が完了していると判定するようにさらに構成される。
【００３９】
以下は、実施形態または先行技術を説明するために要求される添付の図面を簡単に説明する。
【図面の簡単な説明】
【００４０】
【図１】本発明の実施形態によるコンピューティングデバイスの概略的な構造図である。
【図２ａ】本発明の実施形態によるNVMの持続方法の概略的なフローチャートである。
【図２ｂ】本発明の実施形態によるメモリコントローラおよびメディアコントローラのクレジット値の調整原理の概略図である。
【図２ｃ】本発明の実施形態によるメモリコントローラおよびメディアコントローラのクレジット値の調整原理の概略図である。
【図２ｄ】本発明の実施形態によるメモリコントローラおよびメディアコントローラのクレジット値の調整原理の概略図である。
【図２ｅ】本発明の実施形態によるメモリコントローラおよびメディアコントローラのクレジット値の調整原理の概略図である。
【図３】本発明の実施形態によるコンピューティングデバイスの別の概略的な構造図である。
【発明を実施するための形態】
【００４１】
以下は、本発明の実施形態における技術的解決策を、本発明の実施形態における添付の図面を参照して明確に説明する。
【００４２】
図1を参照すると、図1は、本発明の実施形態によるコンピューティングデバイスの概略的な構造図である。本発明のこの実施形態において、コンピューティングデバイスは、メモリコントローラ10、メディアコントローラ11、およびNVM 12を含み、コンピューティングデバイスは、データセンターサーバ、ネットワークサーバ、ビデオサーバ、ゲートウェイサーバ、パーソナルコンピュータ、モバイル端末、または同様のものを含むがこれらに限定されない。NVMは、電力障害が起こった後にデータを依然として保持することができるメモリであり、NVMは、ROM、PROM、EAROM、EPROM、EEPROM、またはFlash Memoryを含むがこれらに限定されない。
【００４３】
メモリコントローラ10は、少なくとも2つのメモリ書き込み命令セットに関連付けられ、少なくとも2つのメモリ書き込み命令セットは、メモリコントローラ内に設定されてもよい。たとえば、少なくとも2つのメモリ書き込み命令セットは、メモリコントローラのバッファ空間100内に設定される。クレジット値が、少なくとも2つのメモリ書き込み命令セットの各々のために構成され、クレジット値は、メモリ書き込み命令セットに入ることを許される書き込み命令の数を示す。
【００４４】
メディアコントローラ12は、少なくとも2つのメディア書き込み命令セットに関連付けられ、少なくとも2つのメディア書き込み命令セットは、メディアコントローラ内に設定されてもよい。たとえば、少なくとも2つのメディアコントローラは、バッファ空間110内に位置する。クレジット値が、少なくとも2つのメディア書き込み命令セットの各々のために構成され、クレジット値は、メディア書き込み命令セットに入ることを許される書き込み命令の数を示す。メモリ書き込み命令セットおよびメディア書き込み命令セットは、キューであってもよい。
【００４５】
少なくとも2つのメモリ書き込み命令セット内のメモリ書き込み命令セットの数は、少なくとも2つのメディア書き込み命令セット内のメディア書き込み命令セットの数に等しい。メモリ書き込み命令セットの数はnであり、メディア書き込み命令セットの数はnであり、nは1より大きい整数であると仮定される。n個のメモリ書き込み命令セットおよびn個のメディア書き込み命令セットが、1対1のマッピング関係を有し、1つのメモリ書き込み命令セットおよび1つのメディア書き込み命令セットが、結合関係を有する。初期状態において、n個のメモリ書き込み命令セットの各々は、最大クレジット値を有し、n個のメディア書き込み命令セットの各々は、最大クレジット値を有し、結合関係を有するメモリ書き込み命令セットおよびメディア書き込み命令セットは、同じ最大クレジット値を有する。
【００４６】
コンピューティングデバイスの作動プロセスは、
メモリコントローラにより、書き込み命令を受信するステップであって、書き込み命令が、書き込まれるべきデータの書き込みアドレスを含む、ステップと、
メモリコントローラにより、書き込みアドレスに基づいて少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを決定し、書き込み命令を目標メモリ書き込み命令セットに記憶し、目標メモリ書き込み命令セットのクレジット値を指定された値だけ減らすステップと、
メモリコントローラにより、目標メモリ書き込み命令セット内の書き込み命令をメディアコントローラに送信するステップと、
メディアコントローラにより、メモリコントローラによって送信された書き込み命令を受信するステップと、
メディアコントローラにより、書き込みアドレスに基づいて少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを決定し、書き込み命令を目標メディア書き込み命令セットに記憶し、目標メディア書き込み命令セットのクレジット値を指定された値だけ減らすステップと、
メディアコントローラにより、書き込みアドレスに関連付けられる、NVMの物理ブロックアドレスを、予め設定されたアドレスマッピングテーブルに基づいて問い合わせ、書き込み命令に対応する書き込まれるべきデータを物理ブロックアドレスに対応する物理ブロックに書き込み、物理ブロックアドレスがアドレスマッピングテーブル内で見出されない場合、つまり、物理ブロックアドレスが割り振られていない場合、メディアコントローラにより、割り振りのために空き物理ブロックリストから物理ブロックを選択し、選択された物理ブロックの物理ブロックアドレスと書き込みアドレスとの間のマッピング関係をアドレスマッピングテーブル内に確定するステップと、
NVMが書き込み命令を実行することに成功し、書き込まれるべきデータを対応する物理ブロックに書き込んだ後、メディアコントローラにより、目標メディア書き込み命令セットのクレジット値を指定された値だけ増やし、つまり、NVMが書き込み命令の持続を完了していることを確認した後、メディアコントローラにより、目標メディア書き込み命令セットのクレジット値を最大値に復元し、メディアコントローラにより、目標メディア書き込み命令セットのクレジット値をメモリコントローラに送信し、メディアコントローラによって送信される、目標メディア書き込み命令セットのクレジット値をメモリコントローラによって受信し、目標メモリ書き込み命令セットのクレジット値および関連付けられる目標メディア書き込み命令セットのクレジット値が同期を維持されるように、メモリコントローラにより、目標メディア書き込み命令セットのクレジット値に基づいて目標メモリ書き込み命令セットのクレジット値を更新するステップと、を含む。
【００４７】
可能な実装において、NVMの全体のアドレスセクションは、前もって複数の重ならないアドレスセクションに分割される。メモリコントローラに関連付けられる少なくとも2つのメモリ書き込み命令セットの数は複数のアドレスセクションの数に等しく、各メモリ書き込み命令セットにアドレスセクションが割り振られる。同様に、メディアコントローラに関連付けられる少なくとも2つのメディア書き込み命令セットの数は複数のアドレスセクションの数に等しく、各メディア書き込み命令セットにアドレスセクションが割り振られる。このようにして、書き込み命令を受信するとき、メモリコントローラおよびメディアコントローラは、書き込み命令が入るアドレスセクションに基づいて、目標メモリ書き込み命令セットおよびメディア書き込み命令セットを決定してもよい。
【００４８】
3つのメモリ書き込み命令キュー、すなわち、メモリ書き込み命令キュー1、メモリ書き込み命令キュー2、およびメモリ書き込み命令キュー3が、メモリコントローラのバッファ空間内に設定される。3つのメディア書き込み命令キュー、すなわち、メモリ書き込み命令キュー1、メモリ書き込み命令キュー2、およびメモリ書き込み命令キュー3が、メディアコントローラのバッファ空間内に設定される。メモリ書き込み命令キュー1およびメディア書き込み命令キュー1に割り振られるアドレスセクションは、0x90000000から0x90ffffffであり、0x90000000は、アドレスセクションの開始アドレスであり、0x90ffffffは、アドレスセクションの終了アドレスである。メモリ書き込み命令キュー2に割り振られるアドレスセクションは、0x856000000から0x857fffffであり、0x856000000は、開始アドレスであり、0x857fffffは、終了アドレスである。メモリ書き込み命令キュー3に割り振られるアドレスセクションは、0x65600000から0x657fffffであり、0x65600000は、開始アドレスであり、0x657fffffは、終了アドレスである。
【００４９】
上述の実施形態の実装によって、複数の指定されたメモリ書き込み命令セットにそれぞれ対応するクレジット値が、複数の指定されたメディア書き込み命令セットにそれぞれ対応するクレジット値と同期を維持される。メディアコントローラは、各メディア書き込み命令セットのクレジット値に基づいて書き込み命令の実行ステータスを判定することができ、したがって、メモリコントローラおよびメディアコントローラのクレジット値が同期を維持された後、書き込み命令の持続が完了しているかどうかが、クレジット値に基づいて正確に見出されることができる。加えて、複数のメモリ書き込み命令セットを設定することは、メモリコントローラの並列処理の効率を改善するために、持続の問い合わせ中にローカルの遮断をメモリ書き込み命令セットの粒度で実装することができる。
【００５０】
図2を参照すると、図2は、本発明の実施形態による不揮発性メモリの持続方法の概略的なフローチャートである。本発明のこの実施形態において、方法は、以下のステップを含む。
【００５１】
S201.  メモリコントローラが、書き込み命令を受信する。
【００５２】
具体的には、書き込み命令は、書き込まれるべきデータの書き込みアドレスを含み、書き込み命令は、プロセッサによって送信されてもよい。メモリコントローラは、プロセッサによって送信された書き込みアドレスを、アドレスバスを使用することによって受信し、プロセッサによって送信された書き込まれるべきデータを、データバスを使用することによって受信してもよい。
【００５３】
S202.  メモリコントローラが、書き込みアドレスに基づいて少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを決定する。
【００５４】
具体的には、メモリコントローラは、少なくとも2つのメモリ書き込み命令セットに関連付けられる。メモリ書き込み命令セットは、書き込み命令を記憶するために使用される。メモリ書き込み命令セットのデータ構造は、キュー、配列、スタック、またはリンクされたリストであってもよい。少なくとも2つのメモリ書き込み命令セットは、メモリコントローラ内に設定されてもよい。たとえば、少なくとも2つのメモリ書き込み命令セットは、メモリコントローラのバッファ空間内に設定される。メモリコントローラは、書き込みアドレスに基づいて少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを決定する。
【００５５】
可能な実装において、メモリコントローラが書き込みアドレスに基づいて少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを決定することは、前もってNVMの全体のアドレスセクションを少なくとも2つのアドレスセクションに分割するステップであって、分割されたアドレスセクションの数が、メモリ書き込み命令セットの数に等しく、少なくとも2つのアドレスセクションの各々が、1つのメモリ書き込み命令セットに関連付けられる、ステップと、メモリコントローラにより、書き込みアドレスが入るアドレスセクションを決定し、書き込みアドレスが入るアドレスセクションに関連付けられるメモリ書き込み命令セットを目標メモリ書き込み命令セットとして使用するステップと、を含む。
【００５６】
たとえば、図2bを参照すると、指定された値は、1に等しく、4つのメモリ書き込み命令セット、すなわち、それぞれ5、4、4、および3の最大クレジット値に対応する、メモリ書き込み命令セット1、メモリ書き込み命令セット2、メモリ書き込み命令セット3、およびメモリ書き込み命令セット4が、メモリコントローラ内に設定され、4つのメディア書き込み命令セット、すなわち、メディア書き込み命令セット1、メディア書き込み命令セット2、メディア書き込み命令セット3、およびメディア書き込み命令セット4が、メディアコントローラ内に設定される。4つのメモリ書き込み命令セットおよび4つのメディア書き込み命令セットは、1対1のマッピング関係を有する。マッピング関係は、すなわち、メモリ書き込み命令セット1がメディア書き込み命令セット1に関連付けられ、メモリ書き込み命令セット2がメディア書き込み命令セット2に関連付けられ、メモリ書き込み命令セット3がメディア書き込み命令セット3に関連付けられ、メモリ書き込み命令セット4がメディア書き込み命令セット4に関連付けられ、互いに関連付けられるメモリ命令セットおよびメディア書き込みキューセットのクレジット値が等しいことである。4つのメモリ書き込み命令セットおよび4つのメディア書き込み命令セットに関して構成されるアドレスセクションおよびクレジット値が、表1に表わされる。
【００５７】
【表１】
2019533244.tif 000003
【００５８】
メモリコントローラが、書き込み命令を受信する。書き込み命令が、書き込まれるべきデータの書き込みアドレス0x656033feを含み、メモリコントローラは、書き込みアドレスが入るアドレスセクション0x65600000から0x657fffffを4つのアドレスセクションに基づいて決定すると仮定される。アドレスセクションは、メモリ書き込み命令セット3に対応し、メモリ書き込み命令セット3が、目標メモリ書き込み命令セットであり、メモリコントローラは、書き込み命令をメモリ書き込み命令セット3に記憶する。
【００５９】
S203.  メモリコントローラは、書き込み命令を目標メモリ書き込み命令セットに記憶し、目標メモリ書き込み命令セットのクレジット値を指定された値だけ減らす。
【００６０】
具体的には、クレジット値は、目標メモリ書き込み命令セットに入ることを許される書き込み命令の数を示す。目標メモリ書き込み命令セットのクレジット値が予め設定された値より小さいとき、書き込み命令は、目標メモリ書き込み命令セットに入ることを許されない。目標メモリ書き込み命令セットは、最大クレジット値を有し、最大値は、目標メモリ書き込み命令セットに入ることを許される書き込み命令の最大数を示す。メモリコントローラは、書き込み命令を目標メモリ書き込み命令セットに記憶する。たとえば、目標メモリ書き込み命令セットのデータ構造がキューである場合、メモリコントローラは、目標メモリ書き込み命令セットのキューの末尾において書き込み命令を記憶し、または目標メモリ書き込み命令セットのデータ構造がスタックである場合、メモリコントローラは、目標メモリ書き込み命令セットのスタックの一番上において書き込み命令を記憶する。メモリコントローラは、書き込み命令を目標メモリ書き込み命令セットに記憶し、そしてメモリ書き込み命令セットのクレジット値を指定された値だけ減らす。指定された値の具体的な値は、限定されず、必要に応じて設定されてもよい。
【００６１】
上述の例の続きとして、図2cを参照すると、メモリコントローラは、メモリ書き込み命令セットの4のクレジット値を1だけ減らし、メモリ書き込み命令セット3の更新されたクレジット値は、3である。
【００６２】
S204.  メモリコントローラが、目標メモリ書き込み命令セットから書き込み命令をフェッチする。
【００６３】
具体的には、メモリコントローラは、予め設定された選択規則に従って少なくとも2つのメモリ書き込み命令セットからメモリ書き込み命令セットを選択してもよい。選択されたメモリ書き込み命令セットがS203における目標メモリ書き込み命令セットであるとき、およびS203における書き込み命令がフェッチの瞬間に来るとき、メモリコントローラは、目標メモリ書き込み命令セットから書き込み命令をフェッチする。選択規則は、ランダム選択、メモリ書き込み命令セットの数に基づくポーリング、メモリ書き込み命令セットの優先度に基づくポーリング、または同様のものであってもよい。
【００６４】
S205.  メモリコントローラが、書き込み命令をメディアコントローラに送信する。
【００６５】
書き込み命令は、書き込まれるべきデータの書き込みアドレスを運ぶ。
【００６６】
S206.  メディアコントローラは、書き込み命令内で運ばれる書き込みアドレスに基づいて少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを決定する。
【００６７】
具体的には、メディア書き込み命令セットは、書き込み命令を記憶するために使用される。メディア書き込み命令セットのデータ構造は、キュー、リンクされたリスト、配列、またはスタックを含むがこれらに限定されず、少なくとも2つのメディア書き込み命令セットは、メディアコントローラ内に設定されてもよい。たとえば、少なくとも2つのメディア書き込み命令セットは、メディアコントローラのバッファ空間内に設定される。メディアコントローラは、書き込み命令内で運ばれる書き込みアドレスに基づいて少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを決定する。
【００６８】
可能な実装においては、メディアコントローラによって目標メディア書き込み命令セットを決定するための方法が、NVMの全体のアドレスセクションを少なくとも2つの連続する重ならないアドレスセクションに分割するステップであって、少なくとも2つのアドレスセクションの各々が、1つのメディア書き込み命令セットに関連付けられ、少なくとも2つのメディア書き込み命令セット内のメディア書き込み命令セットの数が、少なくとも2つのメモリ書き込み命令セット内のメモリ書き込み命令セットの数に等しく、互いに関連付けられるメモリ書き込み命令セットおよびメディア書き込み命令セットに関して構成されたアドレスセクションが、同じである、ステップ、および、メディアコントローラにより、書き込みアドレスが入るアドレスセクションを決定し、書き込みアドレスが入るセクションに対応するメディア書き込み命令セットを目標メディア書き込み命令セットとして使用するステップであってもよい。
【００６９】
上述の例の続きとして、図2cを参照すると、メモリコントローラは、メモリ書き込み命令セット3から書き込み命令をフェッチし、書き込み命令をメディアコントローラに送信する。メディアコントローラは、書き込みアドレスが入るアドレスセクション0x65600000から0x657fffffを、書き込み命令の書き込みアドレス0x656033feに基づいて決定する。アドレスセクションは、メディア書き込み命令セット3に対応し、メディア書き込み命令セット3が、目標メディア書き込み命令セットであり、メディアコントローラは、書き込み命令をメディア書き込み命令セット3に記憶する。
【００７０】
S207.  メディアコントローラは、書き込み命令を目標メディア書き込み命令セットに記憶し、目標メディア書き込み命令セットのクレジット値を指定された値だけ減らす。
【００７１】
具体的には、クレジット値は、目標メディア書き込み命令セットに入ることを許される書き込み命令の数を示す。目標メディア書き込み命令セットのクレジット値が予め設定された値より小さいとき、書き込み命令は、目標メディア書き込み命令セットに入ることを許されない。目標メディア書き込み命令セットは、最大クレジット値を有し、最大値は、目標メディア書き込み命令セットに入ることを許される書き込み命令の最大数を示す。関連付けの関係を有するメモリ書き込み命令セットおよびメディア書き込み命令セットの最大クレジット値が等しいので、目標メモリ書き込み命令セットおよび目標メディア書き込み命令セットの最大クレジット値は、等しい。目標メディア書き込み命令セットのデータ構造は、配列、リンクされたリスト、キュー、またはスタックを含むがこれらに限定されない。メディアコントローラは、書き込み命令を目標メディア書き込み命令セットに記憶し、そして目標メディア書き込み命令セットのクレジット値を指定された値だけ減らす。指定された値の具体的な値は、限定されず、必要に応じて設定されてもよい。
【００７２】
上述の例の続きとして、図2cを参照すると、メディアコントローラは、書き込み命令をメディア書き込み命令セット3に記憶し、メディアコントローラは、メディア書き込み命令セット3の4のクレジット値を1だけ減らし、メディア書き込み命令セット3の更新されたクレジット値は、3である。
【００７３】
S208.  メディアコントローラが、目標メディア書き込み命令セットから書き込み命令をフェッチする。
【００７４】
具体的には、メディアコントローラは、予め設定された選択規則に従って少なくとも2つのメディア書き込み命令セットから1つのメディア書き込み命令セットを選択してもよい。選択されたメディア書き込み命令セットがS207における目標メディア書き込み命令セットであるとき、およびそれがS207における目標メディア書き込み命令セット内の書き込み命令をフェッチするための瞬間に来るとき、メディアコントローラは、目標メディア書き込み命令セットから書き込み命令をフェッチする。少なくとも2つのメディア書き込み命令セットからメディア書き込み命令セットを選択するための選択規則は、ランダム選択、メディア書き込み命令セットの数に基づくポーリング、またはメディア書き込み命令セットの優先度に基づくポーリングであってもよい。
【００７５】
S209.  メディアコントローラが、書き込み命令をNVMに送信する。
【００７６】
具体的には、メディアコントローラは、書き込み命令内で運ばれる書き込みアドレスを取得し、予め設定されたアドレスマッピングテーブルに基づいて書き込みアドレスを物理ブロックアドレスに変換し、メディアコントローラは、物理ブロックアドレスを運ぶ書き込み命令をNVMに送信する。
【００７７】
S210.  NVMが、持続の動作を完了するために書き込み命令を実行する。
【００７８】
具体的には、NVMは、書き込まれるべきデータを物理ブロックアドレスが指すアドレスブロックに書き込み、書き込まれるべきデータが書き込まれた後、持続の動作が、完了している。
【００７９】
S211.  NVMが、メディアコントローラに応答メッセージを返し、応答メッセージは、書き込み命令の持続の動作がNVMに対して完了していることをメディアコントローラに通知するために使用される。
【００８０】
S212.  メディアコントローラが、目標メディア書き込み命令セットのクレジット値を指定された値だけ増やす。
【００８１】
書き込み命令の持続の動作がNVMに対して完了していると判定するとき、メディアコントローラは、目標メディア書き込み命令セットのクレジット値を指定された値だけ増やす。このようにして、書き込み命令が目標メディア書き込み命令セットに入り、そしてクレジット値が指定された値だけ減らされるS207の後、および書き込み命令の持続の動作が完了し、そして目標メディア書き込み命令セットのクレジット値が指定された値だけ増やされた後、メディア書き込み命令セットのクレジット値は、最大値に復元される。
【００８２】
上述の例の続きとして、図2dを参照すると、メディアコントローラは、メディア書き込み命令セット3から書き込み命令をフェッチし、書き込み命令をNVMに送信する。NVMは、予め設定されたアドレスマッピングテーブルに基づいて書き込みアドレスを物理ブロックアドレスにマッピングし、書き込まれるべきデータを物理ブロックアドレスに対応する物理ブロックに書き込む。NVMが持続の動作を完了するために書き込まれるべきデータを物理ブロックに書き込むことに成功した後、NVMは、メディアコントローラに応答メッセージを返してもよい。書き込み命令の持続の動作が完了していると判定した後、メディアコントローラは、メディア書き込み命令セット3のクレジット値を1だけ増やし、そしてメディア書き込み命令セット3のクレジット値は、4になる。
【００８３】
S213.  目標メモリ書き込み命令セットのクレジット値を目標メディア書き込み命令セットのクレジット値と同期させる。
【００８４】
具体的には、クレジット値を同期させるための方法が、メモリコントローラにより、予め設定された期間に基づいて目標メディア書き込み命令セットのクレジット値についてメディアコントローラに能動的に問い合わせるステップであって、目標メディア書き込み命令セットのクレジット値が、メディアコントローラのレジスタ内に記憶されてもよく、メモリコントローラが、目標メモリ書き込み命令セットのクレジット値を、見出されたクレジット値に基づいて更新する、ステップ、またはメモリコントローラが通知されたクレジット値に基づいて目標メモリ書き込み命令セットのクレジット値を更新するように、メディアコントローラにより、目標メディア書き込み命令セットのクレジット値が更新されることをメモリコントローラに能動的に通知するステップ、または書き込み命令の応答メッセージに目標メディア書き込み命令セットのクレジット値を追加するステップであってもよい。
【００８５】
上述の例の続きとして、図2eを参照すると、メディアコントローラは、メディア書き込み命令セット3の4の更新されたクレジット値をメモリコントローラに送信し、メモリコントローラは、メディア書き込み命令セット3の4のクレジット値に基づいてメモリ書き込み命令セット3のクレジット値を4に更新する。
【００８６】
任意選択で、予め設定された指定された値が1である場合、目標メモリ書き込み命令セットを決定した後、メモリコントローラは、目標メモリ書き込み命令セットの現在のクレジット値を取得し、現在のクレジット値が0より大きいかどうかを判定し、判定の結果が現在のクレジット値が0より大きいことである場合、書き込み命令を目標メモリ書き込み命令セットに記憶し、または判定の結果が現在のクレジット値が0より大きくないことである場合、書き込み命令をキャッシュし、予め設定された期間に基づいて目標メモリ書き込み命令セットのクレジット値を問い合わせ、目標メモリ書き込み命令セットのクレジット値が0より大きいことを見出すとき、キャッシュされた書き込み命令を目標メモリ書き込み命令セットに記憶する。上述の実施形態においては、メモリコントローラが適時な方式で書き込み命令を処理することができないために引き起こされる過負荷を避けるために、メモリコントローラに入る書き込み命令の数がクレジット値を使用することによって制御される。
【００８７】
任意選択で、目標メディア書き込み命令セットを決定した後、メディアコントローラは、目標メディア書き込み命令セットの現在のクレジット値を取得し、現在のクレジット値が0より大きいかどうかを判定し、判定の結果が現在のクレジット値が0より大きいことである場合、書き込み命令を目標メディア書き込み命令セットに記憶し、または判定の結果が現在のクレジット値が0より大きくないことである場合、書き込み命令をキャッシュし、予め設定された期間に基づいて目標メモリ書き込み命令セットのクレジット値を問い合わせ、目標メディア書き込み命令セットのクレジット値が0より大きいことを見出すとき、キャッシュされた書き込み命令を目標メディア書き込み命令セットに記憶する。上述の実施形態においては、メディアコントローラが適時な方式で書き込み命令を処理することができないために引き起こされる過負荷を避けるために、メディアコントローラに入る書き込み命令の数がクレジット値を使用することによって制御される。
【００８８】
任意選択で、この出願の不揮発性メモリの持続方法は、
メモリコントローラにより、目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信し、持続の問い合わせ命令の受信の瞬間を取得するステップと、
メモリコントローラにより、目標メモリ書き込み命令セットに入るべき書き込み命令を受信の瞬間の後に遮断するステップと、
メモリコントローラにより、目標メモリ書き込み命令セットのクレジット値を読み取るステップと、
読み取られたクレジット値が予め設定された最大値に等しい場合、メモリコントローラにより、目標メモリ書き込み命令セット内の書き込み命令の持続が完了していると判定するステップと、をさらに含む。
【００８９】
具体的には、メモリコントローラは、目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信する。持続の問い合わせ命令は、プロセッサによって送信されてもよく、持続の問い合わせ命令は、CPU命令または呼び出し関数であってもよい。CPU命令または呼び出し関数は、目標メモリ書き込み命令セットの識別子を運ぶ。持続の問い合わせ命令を受信する受信の瞬間の後、メモリコントローラは、目標メモリ書き込み命令セットに入るべき書き込み命令を受信の瞬間の後に遮断する。メモリコントローラは、少なくとも2つの目標メモリ書き込み命令セット内の目標メモリ書き込み命令セットと異なる別のメモリ書き込み命令セットに対して遮断する動作を実行しない。メモリコントローラは、目標メモリ書き込み命令セットのクレジット値を読み取る。読み取られたクレジット値が予め設定された最大値に等しい場合、それは目標メモリ書き込み命令セット内の書き込み命令がクレジット値を占めていないことを示し、目標メモリ書き込み命令セット内の書き込み命令の持続の動作が完了している。
【００９０】
上述の例の続きとして、図2eを参照すると、メモリコントローラがメモリ書き込み命令セット3に関する持続の問い合わせ命令を受信するとき、メモリコントローラは、持続の問い合わせ命令の受信の瞬間t0を取得し、メモリコントローラは、瞬間t0の後、メモリ書き込み命令セット3に入るべき書き込み命令を遮断する。遮断する方法は、瞬間t0の後、メモリ書き込み命令セット3に入るべき書き込み命令をキャッシュすること、またはメモリ書き込み命令セットにソフトミューテックスを追加することであってもよく、書き込み命令は、メモリ書き込み命令セット1、2、および4に依然として正常に入ることができる。メモリコントローラがメモリ書き込み命令セット3のクレジット値を取得し、メモリ書き込み命令セット3のクレジット値が4の最大値に等しいことを見出すとき、メモリコントローラは、メモリ書き込み命令セット3内の書き込み命令がクレジット値を占めていないと判定し、メモリ書き込み命令セット3の持続の動作が完了している。
【００９１】
別の例として、メディアコントローラがメディア書き込み命令セット3に関する持続の問い合わせ命令を受信し、メディア書き込み命令セット3のクレジット値を取得し、メディア書き込み命令セット3のクレジット値が4の最大値に等しいことを見出すとき、メディア書き込み命令セット3内の書き込み命令は、クレジット値を占めず、メディア書き込み命令セット3内の書き込み命令の持続の動作が完了している。
【００９２】
任意選択で、メモリコントローラにより、目標メモリ書き込み命令セットに入るべき書き込み命令を受信の瞬間の後に遮断するステップは、
メモリコントローラにより、目標メモリ書き込み命令セットに入るべき書き込み命令を受信の瞬間の後にキャッシュするステップ、または
メモリコントローラにより、受信の瞬間に目標メモリ書き込み命令セットにソフトウェアミューテックスを追加するステップを含む。
【００９３】
具体的には、メモリコントローラにより、目標書き込み命令セットに入るべき書き込み命令を受信の瞬間の後に遮断するための方法は、メモリコントローラにより、目標メモリ書き込み命令セットに入るべき書き込み命令を受信の瞬間の後にキャッシュし、目標メモリ書き込み命令セットのクレジット値が予め設定された最大値に等しいと判定するとき、メモリコントローラにより、キャッシュされた書き込み命令を目標メモリ書き込み命令セットに送信するステップ、または目標メモリ書き込み命令セットに入るべき書き込み命令を遮断するために、メモリコントローラにより、目標メモリ書き込み命令セットにソフトミューテックスを追加するステップを含む。
【００９４】
任意選択で、この出願の不揮発性メモリの持続方法は、
メディアコントローラにより、目標メディア書き込み命令セットに関する持続の問い合わせ命令を受信するステップと、
メディアコントローラにより、目標メディア書き込み命令セットのクレジット値を読み取るステップと、
メディアコントローラにより、読み取られたクレジット値が予め設定された最大値に等しい場合、目標メディア書き込み命令セット内の書き込み命令の持続の動作が完了していると判定するステップと、をさらに含む。
【００９５】
具体的には、メディアコントローラは、目標メディア書き込み命令セットに関する持続の問い合わせ命令を受信し、持続の問い合わせ命令は、プロセッサによって送信されてもよく、持続の問い合わせ命令は、CPU命令または呼び出し関数であってもよく、CPU命令または呼び出し関数は、目標メディア書き込み命令セットの識別子を運ぶ。メディアコントローラは、目標メディア書き込み命令セットのクレジット値を読み取り、読み取られたクレジット値が予め設定された最大値に等しい場合、それは目標メディア書き込み命令セット内の書き込み命令がクレジット値を占めていないことを示し、目標メディア書き込み命令セット内の書き込み命令の持続の動作が完了している。
【００９６】
上述の実施形態において、複数の指定されたメモリ書き込み命令セットにそれぞれ対応するクレジット値は、複数の指定されたメディア書き込み命令セットにそれぞれ対応するクレジット値と同期を維持される。メディアコントローラは、各メディア書き込み命令セットのクレジット値に基づいて書き込み命令の実行ステータスを判定することができ、したがって、メモリコントローラおよびメディアコントローラのクレジット値が同期を維持された後、書き込み命令の持続が完了しているかどうかが、クレジット値に基づいて正確に見出されることができる。加えて、複数のメモリ書き込み命令セットを設定することは、メモリコントローラの並列処理の効率を改善するために、持続の問い合わせ中にローカルの遮断をメモリ書き込み命令セットの粒度で実装することができる。
【００９７】
図3を参照すると、図3は、この出願の実施形態によるコンピューティングデバイスの別の概略的な構造図である。この実施形態において、コンピューティングデバイスは、メモリコントローラ10、メディアコントローラ11、およびNVM 12を含む。メモリコントローラ10は、バッファ空間100、レシーバ101、キャッシュコントローラ102、n個のカウンタ、およびトランスミッタ103を含み、n個のメモリ書き込み命令セットが、バッファ空間100内に設定され、1つのカウンタが、各メモリ書き込み命令セットのために構成され、nは、1より大きい整数である。
【００９８】
メディアコントローラ11は、バッファ空間110、レシーバ111、キャッシュコントローラ112、n個のカウンタ、およびトランスミッタ113を含み、n個のメディア書き込み命令セットが、バッファ空間110内に設定され、1つのカウンタが、各メディア書き込み命令セットのために構成される。
【００９９】
NVM 12の全体のアドレスセクションは、n個のアドレスセクションに分割され、n個のメモリ書き込み命令セットおよびn個のアドレスセクションは、1対1のマッピング関係を有し、n個のメディア書き込み命令セットおよびn個のアドレスセクションは、1対1のマッピング関係を有する。
【０１００】
メモリコントローラ10およびメディアコントローラ11に含まれる構成要素は、特定用途向け集積回路(英語: Application-Specific Integrated Circuit、略してASIC)を使用することによって実装されてもよく、またはプログラマブル・ロジック・デバイス(英語: Programmable Logic Device、略してPLD)を使用することによって実装されてもよいことが留意されるべきである。PLDは、複合プログラマブル・ロジック・デバイス(英語: Complex Programmable Logic Device、略してCPLD)、FPGA、または汎用アレイ・ロジック(英語: Generic Array Logic、略してGAL)、またはこれらの任意の組合せであってもよい。
【０１０１】
コンピューティングデバイスの作動プロセスは、
メモリコントローラ10のレシーバ101が、書き込みアドレスを運ぶ書き込み命令を受信するように構成され、
メモリコントローラ10のキャッシュコントローラ102が、メモリコントローラのバッファ空間内に記憶された少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを書き込みアドレスに基づいて選択し、書き込み命令を目標メモリ書き込み命令セットに記憶し、目標メモリ書き込み命令セットのクレジット値を指定された値だけ減らすように目標書き込み命令セットに対応するカウンタに命じるように構成され、
メモリコントローラ10のトランスミッタ103が、目標メモリ書き込み命令セット内の書き込み命令をメディアコントローラのレシーバに送信するように構成され、
メモリコントローラ10のレシーバ101が、メディアコントローラのトランスミッタによって送信される、目標メディア書き込み命令セットのクレジット値を受信するようにさらに構成され、
メモリコントローラ10のキャッシュコントローラ102が、目標メディア書き込み命令セットのクレジット値に基づいて目標メモリ書き込み命令セットのクレジット値を更新するようにメモリコントローラに対応するカウンタに命じるようにさらに構成され、
メディアコントローラ11のレシーバ111が、メモリコントローラのトランスミッタによって送信された書き込み命令を受信するように構成され、
メディアコントローラ11のキャッシュコントローラ112が、メディアコントローラのバッファ空間内に記憶された少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを書き込みアドレスに基づいて決定し、書き込み命令を目標メディア書き込み命令セットに記憶し、目標メディア書き込み命令セットのクレジット値を指定された値だけ減らすように目標メディア書き込み命令セットに対応するカウンタに命じるように構成され、
メディアコントローラ11のトランスミッタ113が、目標メディア書き込み命令セット内の書き込み命令をNVM 12に送信するように構成され、
メディアコントローラ11のキャッシュコントローラ112が、NVMが書き込み命令を実行することに成功した後、目標メディア書き込み命令セットのクレジット値を指定された値だけ増やすように目標メディア書き込み命令セットに対応するカウンタに命じるようにさらに構成され、
メディアコントローラ11のトランスミッタ113が、目標メディア書き込み命令セットのクレジット値をメモリコントローラのレシーバに送信するようにさらに構成されることを含む。
【０１０２】
可能な実装において、NVMのアドレスセクションは、少なくとも2つのメモリ書き込み命令セットの各々のために構成される。
【０１０３】
メモリコントローラ10のキャッシュコントローラ102は、
書き込みアドレスが位置する目標アドレスセクションを決定し、目標アドレスセクションに関連付けられるメモリ書き込み命令セットを目標メモリ書き込み命令セットとして使用し、
書き込み命令を目標メモリ書き込み命令セットに記憶し、目標メモリ書き込み命令セットのクレジット値を1だけ減らすように目標メディア書き込み命令セットに対応するカウンタに命じるように構成される。
【０１０４】
可能な実装において、NVMのアドレスセクションは、少なくとも2つのメディア書き込み命令セットの各々のために構成される。
【０１０５】
メディアコントローラ11のキャッシュコントローラ112は、
書き込みアドレスが位置する目標アドレスセクションを決定し、目標アドレスセクションに関連付けられるメディア書き込み命令セットを目標メディア書き込み命令セットとして使用し、
書き込み命令を目標メディア書き込み命令セットに記憶し、目標メディア書き込み命令セットのクレジット値を1だけ減らすように目標メディア書き込み命令セットに対応するカウンタに命じるように構成される。
【０１０６】
可能な実装において、メモリコントローラ10のキャッシュコントローラ102は、
ライブラリ関数を呼び出すことによって少なくとも2つのメモリ書き込み命令セットの各々のアドレスセクションを構成し、少なくとも2つのメディア書き込み命令セットの各々のアドレスセクションを構成するようにさらに構成され、少なくとも2つのメモリ書き込み命令セットおよび少なくとも2つのメディア書き込み命令セットは、1対1のマッピング関係を有し、互いに関連付けられるメモリ書き込み命令セットおよびメディア書き込み命令セットは、同じアドレスセクションを有する。
【０１０７】
可能な実装において、メディアコントローラ11のトランスミッタ113は、
目標メディア書き込み命令セットのクレジット値を運ぶ問い合わせ応答を、メモリコントローラのトランスミッタによって送信されたクレジット値の問い合わせ要求に従ってメモリコントローラのレシーバに返すように構成される。
【０１０８】
可能な実装において、メディアコントローラ11のトランスミッタ113は、
目標メディア書き込み命令セットのクレジット値をメモリコントローラのレシーバに周期的に能動的に送信するように構成される。
【０１０９】
可能な実装において、メモリコントローラ10のキャッシュコントローラ102は、
目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信し、持続の問い合わせ命令の受信の瞬間を取得し、受信の瞬間の後に目標メモリ書き込み命令セットに入るべき書き込み命令を遮断し、目標メモリ書き込み命令セットに対応するカウンタから目標メモリ書き込み命令セットのクレジット値を読み取り、読み取られたクレジット値が予め設定された最大値に等しい場合、目標メモリ書き込み命令セット内の書き込み命令の持続が完了していると判定するようにさらに構成される。
【０１１０】
可能な実装において、メディアコントローラ11のキャッシュコントローラ112は、
目標メディア書き込み命令セットに対応するカウンタから目標メディア書き込み命令セットのクレジット値を、目標メディア書き込み命令セットに関する受信された持続の問い合わせ命令に従って読み取り、読み取られたクレジット値が予め設定された最大値に等しい場合、目標メディア書き込み命令セット内の書き込み命令の持続の動作が完了していると判定するようにさらに構成される。
【０１１１】
上述の実施形態において、複数の指定されたメモリ書き込み命令セットにそれぞれ対応するクレジット値は、複数の指定されたメディア書き込み命令セットにそれぞれ対応するクレジット値と同期を維持される。メディアコントローラは、各メディア書き込み命令セットのクレジット値に基づいて書き込み命令の実行ステータスを判定することができ、したがって、メモリコントローラおよびメディアコントローラのクレジット値が同期を維持された後、書き込み命令の持続が完了しているかどうかが、クレジット値に基づいて正確に見出されることができる。加えて、複数のメモリ書き込み命令セットを設定することは、メモリコントローラの並列処理の効率を改善するために、持続の問い合わせ中にローカルの遮断をメモリ書き込み命令セットの粒度で実装することができる。
【０１１２】
この技術分野の当業者は、実施形態における方法のプロセスのすべてまたはいくつかが、関連するハードウェアに命じるコンピュータプログラムによって実装されてもよいことを理解し得る。プログラムは、コンピュータ読み取り可能な記憶媒体に記憶されてもよい。プログラムが作動するとき、実施形態における方法のプロセスが実行される。上述の記憶媒体は、磁気ディスク、コンパクトディスク、リード・オンリ・メモリ(Read-Only Memory、ROM)、またはランダム・アクセス・メモリ(Random Access Memory、RAM)を含み得る。
【０１１３】
上記で開示されているのは、単に本発明の好ましい実施形態であり、もちろん本発明の保護範囲を限定するように意図されていない。この技術分野の当業者は、上述の実施形態を実装するプロセスのすべてまたはいくつかと本発明の請求項に従ってなされる等価な変更とが本発明の範囲内に入ることを理解し得る。
【符号の説明】
【０１１４】
10  メモリコントローラ
11  メディアコントローラ
12  NVM
100  バッファ空間
101  レシーバ
102  キャッシュコントローラ
103  トランスミッタ
110  バッファ空間
111  レシーバ
112  キャッシュコントローラ
113  トランスミッタ
【図１】
2019533244.tif 000004
【図２ａ】
2019533244.tif 000005
【図２ｂ】
2019533244.tif 000006
【図２ｃ】
2019533244.tif 000007
【図２ｄ】
2019533244.tif 000008
【図２ｅ】
2019533244.tif 000009
【図３】
2019533244.tif 000010
【手続補正書】
【提出日】令和1年5月14日(2019.5.14)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、コンピュータの分野、詳細には、不揮発性メモリ(Non-Volatile Memory、NVM)の持続方法およびコンピューティングデバイスに関する。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００２
【補正方法】変更
【補正の内容】
【０００２】
データの持続は、持続的な不揮発性メモリNVMに書き込まれることに成功したデータが、システムがクラッシュするかまたは電力障害が起こるときでも失われないことを示す。たとえば、アプリケーションプログラムのデータが持続の特質を有するとき、アプリケーションプログラムは、NVM内に記憶されたデータに基づいて、システムがクラッシュしたかまたは電力障害が起こった後に正常な作動状態に復元されることができる。現在の応用において、NVMは、システムがクラッシュしたかまたは電力障害が起こった後にアプリケーションプログラムの作動がメモリから直接復元されることができるように通常はメモリとして使用される。しかし、NVMがメモリとして使用されるとき、既存のダブルデータレート(Double Data Rate、DDR)メモリプロトコルは、データの持続の確認をサポートすることができない。理由は、既存のDDRメモリプロトコルにおいては、書き込み命令が、データが中央処理ユニット(Central Processing Unit、CPU)のキャッシュに書き込まれた後ただちにコミットされ、CPUおよびアプリケーションプログラムが、書き込み命令のデータが本当にメモリに書き込まれているかどうかを引き続き追跡し、知ることができないことである。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
メモリコントローラが、少なくとも2つのメモリ書き込み命令セットに関連付けられ、少なくとも2つのメモリ書き込み命令セットは、メモリコントローラ内に設定されてもよい。たとえば、少なくとも2つのメモリ書き込み命令セットは、メモリコントローラのバッファ空間内に位置する。クレジット値が、少なくとも2つのメモリ書き込み命令セットの各々のために構成され、クレジット値は、メモリ書き込み命令セットに入ることを許される書き込み命令の数を示す。メモリ書き込み命令セットのクレジット値が0に等しいとき、書き込み命令は、メモリ書き込み命令セットに入ることを許されず、各メモリ書き込み命令セットは、最大クレジット値を有する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
NVMは、電力障害が起こった後にデータを依然として保持することができるメモリであり、NVMは、リード・オンリ・メモリ(Read-Only Memory、ROM)、プログラマブル・リード・オンリ・メモリ(Programmable Read-Only Memory、PROM)、電気的変更可能リード・オンリ・メモリ(Electrically Alterable Read-Only Memory、EAROM)、消去可能プログラマブル・リード・オンリ・メモリ(Erasable Programmable Read-Only Memory、EPROM)、電気的消去可能プログラマブル・リード・オンリ・メモリ(Electrically Erasable Programmable Read-Only Memory、EEPROM)、またはフラッシュメモリ(Flash Memory)を含むがこれらに限定されない。NVMのメディアコントローラが、少なくとも2つのメディア書き込み命令セットに関連付けられ、少なくとも2つのメディア書き込み命令セットは、メディアコントローラ内に設定されてもよい。たとえば、少なくとも2つのメディア書き込み命令セットは、メディアコントローラのバッファ空間内に位置する。クレジット値が、少なくとも2つのメディア書き込み命令セットの各々のために構成され、クレジット値は、メディア書き込み命令セットに入ることを許される書き込み命令の数を示す。メディア書き込み命令セットのクレジット値が0に等しいとき、書き込み命令は、メディア書き込み命令セットに入ることを許されず、各メディア書き込み命令セットは、最大クレジット値を有する。メモリ書き込み命令セットおよびメディア書き込み命令セットのデータ構造は、キュー、配列、リンクされたリスト、スタック、または同様のものであってもよい。これは、この出願において限定されない。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
少なくとも2つのメモリ書き込み命令セット内のメモリ書き込み命令セットの数は、少なくとも2つのメディア書き込み命令セット内のメディア書き込み命令セットの数に等しく、少なくとも2つのメモリ書き込み命令セットおよび少なくとも2つのメディア書き込み命令セットは、1対1のマッピング関係を有し、互いに関連付けられるメモリ書き込み命令セットおよびメディア書き込み命令セットの最大クレジット値は等しい。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
メモリコントローラは、予め設定された選択規則に従って少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを選択し、目標メモリ書き込み命令セットから書き込み命令をフェッチし、フェッチされた書き込み命令をメディアコントローラに送信してもよい。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
メディアコントローラは、書き込み命令を受信し、書き込みアドレスに基づいて少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを決定し、目標メディア書き込み命令セットおよび目標メモリ書き込み命令セットは、結合関係を有し、目標メディア書き込み命令セットは、少なくとも2つのメディア書き込み命令セットのうちの1つであり、メディアコントローラは、書き込み命令を目標メディア書き込み命令セットに記憶し、目標メディア書き込み命令セットのクレジット値を指定された値だけ減らす。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
メディアコントローラは、予め設定された選択規則に従って少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを選択し、目標メディア書き込み命令セットから書き込み命令をフェッチしてもよい。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】変更
【補正の内容】
【００２１】
この態様の可能な実装においては、メモリコントローラが書き込みアドレスを運ぶ書き込み命令を受信する前に、方法は、前もってNVMの全体のアドレスセクションを複数の重ならないアドレスセクションに分割するステップであって、アドレスセクションの数が、メモリ書き込み命令セットの数に等しく、メモリ書き込み命令セットの数が、メディア書き込み命令セットの数に等しい、ステップをさらに含む。メモリコントローラは、ライブラリ関数を呼び出すことによって少なくとも2つのメモリ書き込み命令セットの各々のアドレスセクションを構成し、各メモリ書き込み命令セットは、異なるアドレスセクションを有し、メモリコントローラは、少なくとも2つのメディア書き込み命令セットの各々のアドレスセクションを構成し、各メディア書き込み命令セットは、異なるアドレスセクションを有し、結合関係を有するメモリ書き込み命令セットおよびメディア書き込み命令セットは、同じアドレスセクションを有する。上述の実施形態において、少なくとも2つのメモリ書き込み命令セットおよび少なくとも2つのメディア書き込み命令セットのアドレスセクションは、目標メモリ書き込み命令セットおよび目標メディア書き込み命令セットが書き込み命令の書き込みアドレスに基づいて決定されるようにライブラリ関数を呼び出すことによって構成される。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】変更
【補正の内容】
【００２６】
この態様の可能な実装において、方法は、メディアコントローラにより、目標メディア書き込み命令セットに関する持続の問い合わせ命令を受信するステップと、メディアコントローラにより、目標メディア書き込み命令セットのクレジット値を読み取るステップと、読み取られたクレジット値が予め設定された最大値に等しい場合、メディアコントローラにより、目標メディア書き込み命令セット内の書き込み命令の持続の動作が完了していると判定するステップと、をさらに含む。上述の実施形態において、メディアコントローラは、持続の問い合わせ命令を受信し、メモリコントローラの並列処理の効率を改善するために、メモリ書き込み命令セットの粒度でのローカルの遮断が実装されるように、別のメディア書き込み命令セットを遮断する必要なしに、1つのメディア書き込み命令セットのみが問い合わせされることを遮断する必要がある。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００３２
【補正方法】変更
【補正の内容】
【００３２】
この態様の可能な実装においては、NVMのアドレスセクションが、少なくとも2つのメモリ書き込み命令セットの各々のために構成され、
メモリコントローラのキャッシュコントローラは、
書き込みアドレスが位置する目標アドレスセクションを決定し、目標アドレスセクションに関連付けられるメモリ書き込み命令セットを目標メモリ書き込み命令セットとして使用し、
書き込み命令を目標メモリ書き込み命令セットに記憶し、目標メモリ書き込み命令セットのクレジット値を1だけ減らすように目標メモリ書き込み命令セットに対応するカウンタに命じるように構成される。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００３７
【補正方法】変更
【補正の内容】
【００３７】
この態様の可能な実装において、メモリコントローラのキャッシュコントローラは、
目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信し、持続の問い合わせ命令の受信の瞬間を取得し、受信の瞬間の後に目標メモリ書き込み命令セットに入るべき書き込み命令を遮断し、目標メモリ書き込み命令セットに対応するカウンタから目標メモリ書き込み命令セットのクレジット値を読み取り、読み取られたクレジット値が予め設定された最大値に等しい場合、目標メモリ書き込み命令セット内の書き込み命令の持続が完了していると判定するようにさらに構成される。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】変更
【補正の内容】
【００３８】
この態様の可能な実装において、メディアコントローラのキャッシュコントローラは、
目標メディア書き込み命令セットに対応するカウンタから目標メディア書き込み命令セットのクレジット値を、目標メディア書き込み命令セットに関する受信された持続の問い合わせ命令に従って読み取り、読み取られたクレジット値が予め設定された最大値に等しい場合、目標メディア書き込み命令セット内の書き込み命令の持続の動作が完了していると判定するようにさらに構成される。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００３９
【補正方法】変更
【補正の内容】
【００３９】
以下は、実施形態を説明するために要求される添付の図面を簡単に説明する。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００４４
【補正方法】変更
【補正の内容】
【００４４】
メディアコントローラ11は、少なくとも2つのメディア書き込み命令セットに関連付けられ、少なくとも2つのメディア書き込み命令セットは、メディアコントローラ内に設定されてもよい。たとえば、少なくとも2つのメディア書き込み命令セットは、バッファ空間110内に位置する。クレジット値が、少なくとも2つのメディア書き込み命令セットの各々のために構成され、クレジット値は、メディア書き込み命令セットに入ることを許される書き込み命令の数を示す。メモリ書き込み命令セットおよびメディア書き込み命令セットのデータ構造は、キューであってもよい。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００４７
【補正方法】変更
【補正の内容】
【００４７】
可能な実装において、NVMの全体のアドレスセクションは、前もって複数の重ならないアドレスセクションに分割される。メモリコントローラに関連付けられる少なくとも2つのメモリ書き込み命令セットの数は複数のアドレスセクションの数に等しく、各メモリ書き込み命令セットにアドレスセクションが割り振られる。同様に、メディアコントローラに関連付けられる少なくとも2つのメディア書き込み命令セットの数は複数のアドレスセクションの数に等しく、各メディア書き込み命令セットにアドレスセクションが割り振られる。このようにして、書き込み命令を受信するとき、メモリコントローラおよびメディアコントローラは、書き込みアドレスが入るアドレスセクションに基づいて、目標メモリ書き込み命令セットおよび目標メディア書き込み命令セットを決定してもよい。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】００４８
【補正方法】変更
【補正の内容】
【００４８】
3つのメモリ書き込み命令キュー、すなわち、メモリ書き込み命令キュー1、メモリ書き込み命令キュー2、およびメモリ書き込み命令キュー3が、メモリコントローラのバッファ空間内に設定される。3つのメディア書き込み命令キュー、すなわち、メディア書き込み命令キュー1、メディア書き込み命令キュー2、およびメディア書き込み命令キュー3が、メディアコントローラのバッファ空間内に設定される。メモリ書き込み命令キュー1およびメディア書き込み命令キュー1に割り振られるアドレスセクションは、0x90000000から0x90ffffffであり、0x90000000は、アドレスセクションの開始アドレスであり、0x90ffffffは、アドレスセクションの終了アドレスである。メモリ書き込み命令キュー2に割り振られるアドレスセクションは、0x856000000から0x857fffffであり、0x856000000は、開始アドレスであり、0x857fffffは、終了アドレスである。メモリ書き込み命令キュー3に割り振られるアドレスセクションは、0x65600000から0x657fffffであり、0x65600000は、開始アドレスであり、0x657fffffは、終了アドレスである。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】００５６
【補正方法】変更
【補正の内容】
【００５６】
たとえば、図2bを参照すると、指定された値は、1に等しく、4つのメモリ書き込み命令セット、すなわち、それぞれ5、4、4、および3の最大クレジット値に対応する、メモリ書き込み命令セット1、メモリ書き込み命令セット2、メモリ書き込み命令セット3、およびメモリ書き込み命令セット4が、メモリコントローラ内に設定され、4つのメディア書き込み命令セット、すなわち、メディア書き込み命令セット1、メディア書き込み命令セット2、メディア書き込み命令セット3、およびメディア書き込み命令セット4が、メディアコントローラ内に設定される。4つのメモリ書き込み命令セットおよび4つのメディア書き込み命令セットは、1対1のマッピング関係を有する。マッピング関係は、すなわち、メモリ書き込み命令セット1がメディア書き込み命令セット1に関連付けられ、メモリ書き込み命令セット2がメディア書き込み命令セット2に関連付けられ、メモリ書き込み命令セット3がメディア書き込み命令セット3に関連付けられ、メモリ書き込み命令セット4がメディア書き込み命令セット4に関連付けられ、互いに関連付けられるメモリ書き込み命令セットおよびメディア書き込み命令セットのクレジット値が等しいことである。4つのメモリ書き込み命令セットおよび4つのメディア書き込み命令セットに関して構成されるアドレスセクションおよびクレジット値が、表1に表わされる。
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】００６１
【補正方法】変更
【補正の内容】
【００６１】
上述の例の続きとして、図2cを参照すると、メモリコントローラは、メモリ書き込み命令セット3の4のクレジット値を1だけ減らし、メモリ書き込み命令セット3の更新されたクレジット値は、3である。
【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】００７８
【補正方法】変更
【補正の内容】
【００７８】
具体的には、NVMは、書き込まれるべきデータを物理ブロックアドレスが指す物理ブロックに書き込み、書き込まれるべきデータが書き込まれた後、持続の動作が、完了している。
【手続補正２１】
【補正対象書類名】明細書
【補正対象項目名】００８１
【補正方法】変更
【補正の内容】
【００８１】
書き込み命令の持続の動作がNVMに対して完了していると判定するとき、メディアコントローラは、目標メディア書き込み命令セットのクレジット値を指定された値だけ増やす。このようにして、書き込み命令が目標メディア書き込み命令セットに入り、そしてクレジット値が指定された値だけ減らされるS207の後、および書き込み命令の持続の動作が完了し、そして目標メディア書き込み命令セットのクレジット値が指定された値だけ増やされた後、目標メディア書き込み命令セットのクレジット値は、最大値に復元される。
【手続補正２２】
【補正対象書類名】明細書
【補正対象項目名】００８９
【補正方法】変更
【補正の内容】
【００８９】
具体的には、メモリコントローラは、目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信する。持続の問い合わせ命令は、プロセッサによって送信されてもよく、持続の問い合わせ命令は、CPU命令または呼び出し関数であってもよい。CPU命令または呼び出し関数は、目標メモリ書き込み命令セットの識別子を運ぶ。持続の問い合わせ命令を受信する受信の瞬間の後、メモリコントローラは、目標メモリ書き込み命令セットに入るべき書き込み命令を遮断する。メモリコントローラは、少なくとも2つの目標メモリ書き込み命令セット内の目標メモリ書き込み命令セットと異なる別のメモリ書き込み命令セットに対して遮断する動作を実行しない。メモリコントローラは、目標メモリ書き込み命令セットのクレジット値を読み取る。読み取られたクレジット値が予め設定された最大値に等しい場合、それは目標メモリ書き込み命令セット内の書き込み命令がクレジット値を占めていないことを示し、目標メモリ書き込み命令セット内の書き込み命令の持続の動作が完了している。
【手続補正２３】
【補正対象書類名】明細書
【補正対象項目名】００９０
【補正方法】変更
【補正の内容】
【００９０】
上述の例の続きとして、図2eを参照すると、メモリコントローラがメモリ書き込み命令セット3に関する持続の問い合わせ命令を受信するとき、メモリコントローラは、持続の問い合わせ命令の受信の瞬間t0を取得し、メモリコントローラは、瞬間t0の後、メモリ書き込み命令セット3に入るべき書き込み命令を遮断する。遮断する方法は、瞬間t0の後、メモリ書き込み命令セット3に入るべき書き込み命令をキャッシュすること、またはメモリ書き込み命令セット3にソフトミューテックスを追加することであってもよく、書き込み命令は、メモリ書き込み命令セット1、2、および4に依然として正常に入ることができる。メモリコントローラがメモリ書き込み命令セット3のクレジット値を取得し、メモリ書き込み命令セット3のクレジット値が4の最大値に等しいことを見出すとき、メモリコントローラは、メモリ書き込み命令セット3内の書き込み命令がクレジット値を占めていないと判定し、メモリ書き込み命令セット3の持続の動作が完了している。
【手続補正２４】
【補正対象書類名】明細書
【補正対象項目名】００９３
【補正方法】変更
【補正の内容】
【００９３】
具体的には、メモリコントローラにより、目標メモリ書き込み命令セットに入るべき書き込み命令を受信の瞬間の後に遮断するための方法は、メモリコントローラにより、目標メモリ書き込み命令セットに入るべき書き込み命令を受信の瞬間の後にキャッシュし、目標メモリ書き込み命令セットのクレジット値が予め設定された最大値に等しいと判定するとき、メモリコントローラにより、キャッシュされた書き込み命令を目標メモリ書き込み命令セットに送信するステップ、または目標メモリ書き込み命令セットに入るべき書き込み命令を遮断するために、メモリコントローラにより、目標メモリ書き込み命令セットにソフトミューテックスを追加するステップを含む。
【手続補正２５】
【補正対象書類名】明細書
【補正対象項目名】０１０１
【補正方法】変更
【補正の内容】
【０１０１】
コンピューティングデバイスの作動プロセスは、
メモリコントローラ10のレシーバ101が、書き込みアドレスを運ぶ書き込み命令を受信するように構成され、
メモリコントローラ10のキャッシュコントローラ102が、メモリコントローラのバッファ空間内に記憶された少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを書き込みアドレスに基づいて選択し、書き込み命令を目標メモリ書き込み命令セットに記憶し、目標メモリ書き込み命令セットのクレジット値を指定された値だけ減らすように目標メモリ書き込み命令セットに対応するカウンタに命じるように構成され、
メモリコントローラ10のトランスミッタ103が、目標メモリ書き込み命令セット内の書き込み命令をメディアコントローラのレシーバに送信するように構成され、
メモリコントローラ10のレシーバ101が、メディアコントローラのトランスミッタによって送信される、目標メディア書き込み命令セットのクレジット値を受信するようにさらに構成され、
メモリコントローラ10のキャッシュコントローラ102が、目標メディア書き込み命令セットのクレジット値に基づいて目標メモリ書き込み命令セットのクレジット値を更新するようにメモリコントローラに対応するカウンタに命じるようにさらに構成され、
メディアコントローラ11のレシーバ111が、メモリコントローラのトランスミッタによって送信された書き込み命令を受信するように構成され、
メディアコントローラ11のキャッシュコントローラ112が、メディアコントローラのバッファ空間内に記憶された少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを書き込みアドレスに基づいて決定し、書き込み命令を目標メディア書き込み命令セットに記憶し、目標メディア書き込み命令セットのクレジット値を指定された値だけ減らすように目標メディア書き込み命令セットに対応するカウンタに命じるように構成され、
メディアコントローラ11のトランスミッタ113が、目標メディア書き込み命令セット内の書き込み命令をNVM 12に送信するように構成され、
メディアコントローラ11のキャッシュコントローラ112が、NVMが書き込み命令を実行することに成功した後、目標メディア書き込み命令セットのクレジット値を指定された値だけ増やすように目標メディア書き込み命令セットに対応するカウンタに命じるようにさらに構成され、
メディアコントローラ11のトランスミッタ113が、目標メディア書き込み命令セットのクレジット値をメモリコントローラのレシーバに送信するようにさらに構成されることを含む。
【手続補正２６】
【補正対象書類名】明細書
【補正対象項目名】０１０３
【補正方法】変更
【補正の内容】
【０１０３】
メモリコントローラ10のキャッシュコントローラ102は、
書き込みアドレスが位置する目標アドレスセクションを決定し、目標アドレスセクションに関連付けられるメモリ書き込み命令セットを目標メモリ書き込み命令セットとして使用し、
書き込み命令を目標メモリ書き込み命令セットに記憶し、目標メモリ書き込み命令セットのクレジット値を1だけ減らすように目標メモリ書き込み命令セットに対応するカウンタに命じるように構成される。
【手続補正２７】
【補正対象書類名】明細書
【補正対象項目名】０１１３
【補正方法】変更
【補正の内容】
【０１１３】
上記で開示されているのは、単に本発明の実施形態であり、もちろん本発明の保護範囲を限定するように意図されていない。この技術分野の当業者は、上述の実施形態を実装するプロセスのすべてまたはいくつかと本発明の請求項に従ってなされる等価な変更とが本発明の範囲内に入ることを理解し得る。
【手続補正２８】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
不揮発性メモリ(NVM)の持続方法であって、メモリ内の書き込まれるべきデータを前記不揮発性メモリNVMに書き込むプロセスに適用され、前記方法は、
メモリコントローラにより、書き込み命令を受信するステップであって、前記書き込み命令が、前記書き込まれるべきデータの書き込みアドレスを含む、ステップと、
前記メモリコントローラにより、前記書き込みアドレスに基づいて少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを選択し、前記書き込み命令を前記目標メモリ書き込み命令セットに記憶し、前記目標メモリ書き込み命令セットのクレジット値を指定された値だけ減らすステップと、
前記メモリコントローラにより、前記目標メモリ書き込み命令セット内の前記書き込み命令をメディアコントローラに送信するステップと、
前記書き込み命令を受信した後、前記メディアコントローラにより、前記書き込みアドレスに基づいて少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを決定し、前記書き込み命令を前記目標メディア書き込み命令セットに記憶し、前記目標メディア書き込み命令セットのクレジット値を前記指定された値だけ減らすステップと、
前記メディアコントローラにより、前記目標メディア書き込み命令セット内の前記書き込み命令を前記NVMに送信し、前記NVMが前記書き込み命令を実行することに成功した後、前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を前記指定された値だけ増やすステップと、
前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を前記メモリコントローラに送信するステップと、
前記目標メディア書き込み命令セットの前記クレジット値を受信した後、前記メモリコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値に基づいて前記目標メモリ書き込み命令セットの前記クレジット値を更新するステップと、
を含む方法。
【請求項２】
前記少なくとも2つのメモリ書き込み命令セットの各々が、前記NVMのアドレスセクションに関連付けられ、
前記メモリコントローラにより、前記書き込みアドレスに基づいて少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを選択し、前記書き込み命令を前記目標メモリ書き込み命令セットに記憶し、前記目標メモリ書き込み命令セットのクレジット値を指定された値だけ減らす前記ステップが、
前記メモリコントローラにより、前記書き込みアドレスが位置する目標アドレスセクションを決定し、前記目標アドレスセクションに関連付けられるメモリ書き込み命令セットを前記目標メモリ書き込み命令セットとして使用するステップと、
前記メモリコントローラにより、前記書き込み命令を前記目標メモリ書き込み命令セットに記憶し、前記目標メモリ書き込み命令セットの前記クレジット値を1だけ減らすステップと、
を含む、請求項1に記載の方法。
【請求項３】
前記NVMのアドレスセクションが、前記少なくとも2つのメディア書き込み命令セットの各々のために構成され、
前記メディアコントローラにより、前記書き込みアドレスに基づいて前記少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを決定し、前記書き込み命令を前記目標メディア書き込み命令セットに記憶し、前記目標メディア書き込み命令セットのクレジット値を前記指定された値だけ減らす前記ステップが、
前記メディアコントローラにより、前記書き込みアドレスが位置する前記目標アドレスセクションを決定し、前記目標アドレスセクションに関連付けられるメディア書き込み命令セットを前記目標メディア書き込み命令セットとして使用するステップと、
前記メディアコントローラにより、前記書き込み命令を前記目標メディア書き込み命令セットに記憶し、前記目標メディア書き込み命令セットの前記クレジット値を1だけ減らすステップと、を含む、請求項2に記載の方法。
【請求項４】
メモリコントローラにより、書き込み命令を受信する前記ステップの前に、
前記メモリコントローラにより、ライブラリ関数を呼び出すことによって前記少なくとも2つのメモリ書き込み命令セットの各々の前記アドレスセクションを構成し、前記少なくとも2つのメディア書き込み命令セットの各々の前記アドレスセクションを構成するステップであって、前記少なくとも2つのメモリ書き込み命令セットおよび前記少なくとも2つのメディア書き込み命令セットが、1対1のマッピング関係を有し、互いに関連付けられるメモリ書き込み命令セットおよびメディア書き込み命令セットが、同じアドレスセクションを有する、ステップをさらに含む、請求項3に記載の方法。
【請求項５】
前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を前記メモリコントローラに送信する前記ステップが、
前記メディアコントローラにより、前記メモリコントローラによって送信された問い合わせ要求を受信するステップであって、前記問い合わせ要求が、前記目標メディア書き込み命令セットの前記クレジット値を問い合わせるために使用される、ステップと、
前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を運ぶ問い合わせ応答を前記メモリコントローラに送信するステップと、を含む、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を前記メモリコントローラに送信する前記ステップが、
前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を前記メモリコントローラに周期的に能動的に送信するステップを含む、請求項1から4のいずれか一項に記載の方法。
【請求項７】
前記メモリコントローラにより、前記目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信し、前記持続の問い合わせ命令の受信の瞬間を取得するステップと、
前記メモリコントローラにより、前記目標メモリ書き込み命令セットに入るべき書き込み命令を前記受信の瞬間の後に遮断するステップと、
前記メモリコントローラにより、前記目標メモリ書き込み命令セットの前記クレジット値を読み取るステップと、
前記読み取られたクレジット値が予め設定された最大値に等しい場合、前記メモリコントローラにより、前記目標メモリ書き込み命令セット内の前記書き込み命令の持続が完了していると判定するステップと、をさらに含む、請求項1に記載の方法。
【請求項８】
前記メモリコントローラにより、前記目標メモリ書き込み命令セットに入るべき書き込み命令を前記受信の瞬間の後に遮断する前記ステップが、
前記メモリコントローラにより、前記目標メモリ書き込み命令セットに入るべき前記書き込み命令を前記受信の瞬間の後にキャッシュするステップ、または
前記メモリコントローラにより、前記受信の瞬間において前記目標メモリ書き込み命令セットにソフトウェアミューテックスを追加するステップ、を含む、請求項7に記載の方法。
【請求項９】
前記メディアコントローラにより、前記目標メディア書き込み命令セットに関する持続の問い合わせ命令を受信するステップと、
前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を読み取るステップと、
前記読み取られたクレジット値が予め設定された最大値に等しい場合、前記メディアコントローラにより、前記目標メディア書き込み命令セット内の前記書き込み命令の持続の動作が完了していると判定するステップと、をさらに含む、請求項1に記載の方法。
【請求項１０】
メモリコントローラ、メディアコントローラ、および不揮発性メモリNVMを含むコンピューティングデバイスであって、前記メモリコントローラが、バッファ空間を含み、前記メモリコントローラの前記バッファ空間が、少なくとも2つのメモリ書き込み命令セットを記憶するために使用され、クレジット値が、前記少なくとも2つのメモリ書き込み命令セットの各々のために構成され、前記メディアコントローラが、バッファ空間を含み、前記メディアコントローラの前記バッファ空間が、少なくとも2つのメディア書き込み命令セットを記憶するために使用され、クレジット値が、前記少なくとも2つのメディア書き込み命令セットの各々のために構成され、
前記メモリコントローラが、
書き込み命令を受信するように構成され、前記書き込み命令が、書き込まれるべきデータの書き込みアドレスを含み、
前記メモリコントローラが、前記メモリコントローラの前記バッファ空間内に記憶された前記少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを前記書き込みアドレスに基づいて決定し、前記書き込み命令を前記目標メモリ書き込み命令セットに記憶し、前記目標メモリ書き込み命令セットのクレジット値を指定された値だけ減らし、
前記目標メモリ書き込み命令セット内の前記書き込み命令を前記メディアコントローラに送信し、
前記メディアコントローラによって送信される、目標メディア書き込み命令セットのクレジット値を受信し、
前記目標メディア書き込み命令セットの前記クレジット値に基づいて前記目標メモリ書き込み命令セットの前記クレジット値を更新するように構成され、
前記メディアコントローラが、
前記メモリコントローラによって送信された前記書き込み命令を受信し、
前記メディアコントローラの前記バッファ空間内に記憶された前記少なくとも2つのメディア書き込み命令セットから前記目標メディア書き込み命令セットを前記書き込みアドレスに基づいて決定し、
前記書き込み命令を前記目標メディア書き込み命令セットに記憶し、前記目標メディア書き込み命令セットの前記クレジット値を前記指定された値だけ減らし、
前記目標メディア書き込み命令セット内の前記書き込み命令を前記NVMに送信し、前記NVMが前記書き込み命令を実行することに成功した後、前記目標メディア書き込み命令セットの前記クレジット値を前記指定された値だけ増やし、
前記目標メディア書き込み命令セットの前記クレジット値を前記メモリコントローラに送信するように構成される、コンピューティングデバイス。
【請求項１１】
前記メモリコントローラが、レシーバ、キャッシュコントローラ、複数のカウンタ、およびトランスミッタをさらに含み、1つのカウンタが、各メモリ書き込み命令セットのために構成され、
前記メディアコントローラが、レシーバ、キャッシュコントローラ、複数のカウンタ、およびトランスミッタをさらに含み、1つのカウンタが、各メディア書き込み命令セットのために構成され、
前記メモリコントローラの前記レシーバが、前記書き込みアドレスを運ぶ前記書き込み命令を受信するように構成され、
前記メモリコントローラの前記キャッシュコントローラが、前記メモリコントローラの前記バッファ空間内に記憶された前記少なくとも2つのメモリ書き込み命令セットから前記目標メモリ書き込み命令セットを前記書き込みアドレスに基づいて選択し、前記書き込み命令を前記目標メモリ書き込み命令セットに記憶し、前記目標メモリ書き込み命令セットの前記クレジット値を前記指定された値だけ減らすように前記目標メモリ書き込み命令セットに対応するカウンタに命じるように構成され、
前記メモリコントローラの前記トランスミッタが、前記目標メモリ書き込み命令セット内の前記書き込み命令を前記メディアコントローラの前記レシーバに送信するように構成され、
前記メモリコントローラの前記レシーバが、前記メディアコントローラの前記トランスミッタによって送信される、前記目標メディア書き込み命令セットの前記クレジット値を受信するようにさらに構成され、
前記メモリコントローラの前記キャッシュコントローラが、前記目標メディア書き込み命令セットの前記クレジット値に基づいて前記目標メモリ書き込み命令セットの前記クレジット値を更新するように前記メモリコントローラに対応するカウンタに命じるようにさらに構成され、
前記メディアコントローラの前記レシーバが、前記メモリコントローラの前記トランスミッタによって送信された前記書き込み命令を受信するように構成され、
前記メディアコントローラの前記キャッシュコントローラが、前記メディアコントローラの前記バッファ空間内に記憶された前記少なくとも2つのメディア書き込み命令セットから前記目標メディア書き込み命令セットを前記書き込みアドレスに基づいて決定し、前記書き込み命令を前記目標メディア書き込み命令セットに記憶し、前記目標メディア書き込み命令セットの前記クレジット値を前記指定された値だけ減らすように前記目標メディア書き込み命令セットに対応するカウンタに命じるように構成され、
前記メディアコントローラの前記トランスミッタが、前記目標メディア書き込み命令セット内の前記書き込み命令を前記NVMに送信するように構成され、
前記メディアコントローラの前記キャッシュコントローラが、前記NVMが前記書き込み命令を実行することに成功した後、前記目標メディア書き込み命令セットの前記クレジット値を前記指定された値だけ増やすように前記目標メディア書き込み命令セットに対応する前記カウンタに命じるようにさらに構成され、
前記メディアコントローラの前記トランスミッタが、前記目標メディア書き込み命令セットの前記クレジット値を前記メモリコントローラの前記レシーバに送信するようにさらに構成された、請求項10に記載のコンピューティングデバイス。
【請求項１２】
前記NVMのアドレスセクションが、前記少なくとも2つのメモリ書き込み命令セットの各々のために構成され、
前記メモリコントローラの前記キャッシュコントローラが、
前記書き込みアドレスが位置する目標アドレスセクションを決定し、前記目標アドレスセクションに関連付けられるメモリ書き込み命令セットを前記目標メモリ書き込み命令セットとして使用し、
前記書き込み命令を前記目標メモリ書き込み命令セットに記憶し、前記目標メモリ書き込み命令セットの前記クレジット値を1だけ減らすように前記目標メモリ書き込み命令セットに対応する前記カウンタに命じるように構成された、請求項11に記載のコンピューティングデバイス。
【請求項１３】
前記NVMのアドレスセクションが、前記少なくとも2つのメディア書き込み命令セットの各々のために構成され、
前記メディアコントローラの前記キャッシュコントローラが、
前記書き込みアドレスが位置する前記目標アドレスセクションを決定し、前記目標アドレスセクションに関連付けられるメディア書き込み命令セットを前記目標メディア書き込み命令セットとして使用し、
前記書き込み命令を前記目標メディア書き込み命令セットに記憶し、前記目標メディア書き込み命令セットの前記クレジット値を1だけ減らすように前記目標メディア書き込み命令セットに対応する前記カウンタに命じるように構成された、請求項12に記載のコンピューティングデバイス。
【請求項１４】
前記メモリコントローラの前記キャッシュコントローラが、
ライブラリ関数を呼び出すことによって前記少なくとも2つのメモリ書き込み命令セットの各々の前記アドレスセクションを構成し、前記少なくとも2つのメディア書き込み命令セットの各々の前記アドレスセクションを構成するようにさらに構成され、前記少なくとも2つのメモリ書き込み命令セットおよび前記少なくとも2つのメディア書き込み命令セットが、1対1のマッピング関係を有し、互いに関連付けられるメモリ書き込み命令セットおよびメディア書き込み命令セットが、同じアドレスセクションを有する、請求項13に記載のコンピューティングデバイス。
【請求項１５】
前記メディアコントローラの前記トランスミッタが、
前記目標メディア書き込み命令セットの前記クレジット値を運ぶ問い合わせ応答を、前記メモリコントローラの前記トランスミッタによって送信されたクレジット値の問い合わせ要求に従って前記メモリコントローラの前記レシーバに返すように構成された、請求項11から14のいずれか一項に記載のコンピューティングデバイス。
【請求項１６】
前記メディアコントローラの前記トランスミッタが、
前記目標メディア書き込み命令セットの前記クレジット値を前記メモリコントローラの前記レシーバに周期的に能動的に送信するように構成された、請求項11から14のいずれか一項に記載のコンピューティングデバイス。
【請求項１７】
前記メモリコントローラの前記キャッシュコントローラが、
前記目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信し、前記持続の問い合わせ命令の受信の瞬間を取得し、前記受信の瞬間の後に前記目標メモリ書き込み命令セットに入るべき書き込み命令を遮断し、前記目標メモリ書き込み命令セットに対応する前記カウンタから前記目標メモリ書き込み命令セットの前記クレジット値を読み取り、前記読み取られたクレジット値が予め設定された最大値に等しい場合、前記目標メモリ書き込み命令セット内の前記書き込み命令の持続が完了していると判定するようにさらに構成された、請求項11に記載のコンピューティングデバイス。
【請求項１８】
前記メディアコントローラの前記キャッシュコントローラが、
前記目標メディア書き込み命令セットに対応する前記カウンタから前記目標メディア書き込み命令セットの前記クレジット値を、前記目標メディア書き込み命令セットに関する受信された持続の問い合わせ命令に従って読み取り、前記読み取られたクレジット値が予め設定された最大値に等しい場合、前記目標メディア書き込み命令セット内の前記書き込み命令の持続の動作が完了していると判定するようにさらに構成された、請求項11に記載のコンピューティングデバイス。
【請求項１９】
メモリコントローラ、メディアコントローラ、および前記メディアコントローラに接続された不揮発性メモリ(NVM)を含むコンピュータシステムに適用されるデータの持続確認方法であって、前記方法は、
前記メモリコントローラにより、前記メディアコントローラから目標メディア書き込み命令セットのクレジット値を受信するステップであって、前記メディアコントローラが、複数のメディア書き込み命令セットに関連付けられ、前記メモリコントローラが、複数のメモリ書き込み命令セットに関連付けられ、前記目標メディア書き込み命令セットの書き込み命令の各々が、前記メモリコントローラ内の目標メモリ書き込み命令セットからのものであり、前記目標メディア書き込み命令セットが、前記複数のメディア書き込み命令セットのうちの1つであり、前記目標メモリ書き込み命令セットが、前記複数のメモリ書き込み命令セットのうちの1つであり、前記目標メモリ書き込み命令セットおよび前記目標メディア書き込み命令セットが、同じ最大クレジット値を有し、前記目標メディア書き込み命令セットの前記クレジット値が、前記目標メディア書き込み命令セットに入ることを許される書き込み命令の数を示す、ステップと、
前記メモリコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値に基づいて前記目標メモリ書き込み命令セットのクレジット値を更新するステップであって、前記目標メモリ書き込み命令セットの前記クレジット値が、前記目標メモリ書き込み命令セットに入ることを許される書き込み命令の数を示す、ステップと、
前記目標メモリ書き込み命令セットの前記更新されたクレジット値が前記最大値に等しいとき、前記メモリコントローラにより、前記目標メモリ書き込み命令セット内の前記書き込み命令のデータの持続が完了していると判定するステップと、
を含む方法。
【請求項２０】
受信する前記ステップの前に、前記方法は、
前記メモリコントローラにより、第1のデータの書き込みアドレスを含む第1の書き込み命令を受信するステップと、
前記メモリコントローラにより、前記第1の書き込み命令を前記書き込みアドレスに対応する前記目標メモリ書き込み命令セットに記憶するステップと、
前記メモリコントローラにより、前記目標メモリ書き込み命令セットの第1のクレジット値を指定された値だけ減らして第2のクレジット値を取得するステップと、
前記メモリコントローラにより、前記目標メモリ書き込み命令セット内の前記第1の書き込み命令を前記メディアコントローラに送信するステップと、
前記メディアコントローラにより、前記第1の書き込み命令を前記書き込みアドレスに対応する前記目標メディア書き込み命令セットに記憶するステップと、
前記目標メディア書き込み命令セットの第3のクレジット値を前記指定された値だけ減らして第4のクレジット値を取得するステップと、
前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記第4のクレジット値を前記指定された値だけ増やして、前記第1のデータを前記NVMに書き込んだ後の前記目標メディア書き込み命令セットの前記クレジット値を取得するステップと、
をさらに含む、請求項19に記載の方法。
【請求項２１】
前記複数のメモリ書き込み命令セットの各々が、前記NVMのアドレスセクションに関連付けられ、前記複数のメディア書き込み命令セットの各々が、前記NVMのアドレスセクションに関連付けられ、
前記メモリコントローラにより、前記第1の書き込み命令を前記書き込みアドレスに対応する前記目標メモリ書き込み命令セットに記憶するステップが、
前記メモリコントローラにより、前記第1の書き込み命令を前記書き込みアドレスが属する目標アドレスセクションに関連付けられる前記目標メモリ書き込み命令セットに記憶するステップを含み、
前記メディアコントローラにより、前記第1の書き込み命令を前記書き込みアドレスに対応する前記目標メディア書き込み命令セットに記憶するステップが、
前記メディアコントローラにより、前記第1の書き込み命令を前記書き込みアドレスが属する前記目標アドレスセクションに関連付けられる前記目標メディア書き込み命令セットに記憶するステップを含む、請求項20に記載の方法。
【請求項２２】
前記メモリコントローラにより、前記目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信するステップと、
前記メモリコントローラにより、前記持続の問い合わせ命令が受信された後、第2の書き込み命令が前記目標メモリ書き込み命令セットに記憶されるのを遮断するステップと、
前記メモリコントローラにより、前記持続の問い合わせ命令を前記メディアコントローラに送信するステップと、をさらに含み、
目標メディア書き込み命令セットのクレジット値を受信する前記ステップが、
前記メモリコントローラにより、前記持続の問い合わせ命令に応答して前記メディアコントローラによって送信される前記目標メディア書き込み命令セットの前記クレジット値を前記メディアコントローラから受信するステップを含む、請求項19から21のいずれか一項に記載の方法。
【請求項２３】
前記メディアコントローラにより、前記メモリコントローラによって送信された前記持続の問い合わせ命令を受信するステップと、
前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を読み取るステップと、
前記目標メディア書き込み命令セットの前記読み取られたクレジット値が前記最大値に等しいとき、前記メディアコントローラにより、前記目標メディア書き込み命令セット内の前記書き込み命令の前記データの持続が完了していると判定するステップと、
をさらに含む、請求項22に記載の方法。
【請求項２４】
前記メモリコントローラにより、前記複数のメモリ書き込み命令セットの各々に関連付けられる前記アドレスセクションを構成するステップと、
前記メモリコントローラにより、前記複数のメディア書き込み命令セットの各々に関連付けられる前記アドレスセクションを構成するステップと、をさらに含み、
前記目標メモリ書き込み命令セットおよび前記目標メディア書き込み命令セットが、同じアドレスセクションに関連付けられる、請求項19から23のいずれか一項に記載の方法。
【請求項２５】
コンピュータシステムであって、
不揮発性メモリ(NVM)と、
前記NVMに接続されたメディアコントローラであって、複数のメディア書き込み命令セットが、前記メディアコントローラのバッファ空間内に記憶され、クレジット値が、前記複数のメディア書き込み命令セットの各々のために構成された、メディアコントローラと、
前記メディアコントローラに接続されたメモリコントローラと、を含み、
前記メモリコントローラが、目標メディア書き込み命令セットのクレジット値を前記メディアコントローラから受信するように構成され、複数のメモリ書き込み命令セットが、前記メモリコントローラのバッファ空間内に記憶され、クレジット値が、前記複数のメモリ書き込み命令セットの各々のために構成され、前記目標メディア書き込み命令セットの書き込み命令の各々が、前記メモリコントローラ内の目標メモリ書き込み命令セットからのものであり、前記目標メディア書き込み命令セットが、前記複数のメディア書き込み命令セットのうちの1つであり、前記目標メモリ書き込み命令セットが、前記複数のメモリ書き込み命令セットのうちの1つであり、前記目標メモリ書き込み命令セットおよび前記目標メディア書き込み命令セットが、同じ最大クレジット値を有し、前記目標メディア書き込み命令セットの前記クレジット値が、前記目標メディア書き込み命令セットに入ることを許される書き込み命令の数を示し、
前記メモリコントローラが、前記目標メディア書き込み命令セットの前記クレジット値に基づいて前記目標メモリ書き込み命令セットのクレジット値を更新するように構成され、前記目標メモリ書き込み命令セットの前記クレジット値が、前記目標メモリ書き込み命令セットに入ることを許される書き込み命令の数を示し、
前記メモリコントローラが、前記目標メモリ書き込み命令セットの前記更新されたクレジット値が前記最大値に等しいとき、前記目標メモリ書き込み命令セット内の前記書き込み命令のデータの持続が完了していると判定するように構成された、コンピュータシステム。
【請求項２６】
前記メモリコントローラが、
第1のデータの書き込みアドレスを含む第1の書き込み命令を受信し、
前記第1の書き込み命令を前記書き込みアドレスに対応する前記目標メモリ書き込み命令セットに記憶し、
前記目標メモリ書き込み命令セットの第1のクレジット値を指定された値だけ減らして第2のクレジット値を取得し、
前記目標メモリ書き込み命令セット内の前記第1の書き込み命令を前記メディアコントローラに送信するようにさらに構成され、
前記メディアコントローラが、
前記第1の書き込み命令を前記書き込みアドレスに対応する前記目標メディア書き込み命令セットに記憶し、
前記目標メディア書き込み命令セットの第3のクレジット値を前記指定された値だけ減らして第4のクレジット値を取得し、
前記目標メディア書き込み命令セットの前記第4のクレジット値を前記指定された値だけ増やして、前記第1のデータを前記NVMに書き込んだ後の前記目標メディア書き込み命令セットの前記クレジット値を取得するようにさらに構成された、請求項25に記載のコンピュータシステム。
【請求項２７】
前記複数のメモリ書き込み命令セットの各々が、前記NVMのアドレスセクションに関連付けられ、前記複数のメディア書き込み命令セットの各々が、前記NVMのアドレスセクションに関連付けられ、
前記メモリコントローラが、前記第1の書き込み命令を前記書き込みアドレスが属する目標アドレスセクションに関連付けられる前記目標メモリ書き込み命令セットに記憶するように構成され、
前記メディアコントローラが、前記第1の書き込み命令を前記書き込みアドレスが属する前記目標アドレスセクションに関連付けられる前記目標メディア書き込み命令セットに記憶するように構成された、請求項26に記載のコンピュータシステム。
【請求項２８】
前記メモリコントローラが、
前記目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信し、
前記持続の問い合わせ命令が受信された後、第2の書き込み命令が前記目標メモリ書き込み命令セットに記憶されるのを遮断し、
前記持続の問い合わせ命令を前記メディアコントローラに送信し、
前記持続の問い合わせ命令に応答して前記メディアコントローラによって送信される前記目標メディア書き込み命令セットの前記クレジット値を受信するようにさらに構成された、請求項25から27のいずれか一項に記載のコンピュータシステム。
【請求項２９】
前記メディアコントローラが、
前記メモリコントローラから前記持続の問い合わせ命令を受信し、
前記目標メディア書き込み命令セットの前記クレジット値を読み取り、
前記目標メディア書き込み命令セットの前記読み取られたクレジット値が前記最大値に等しいとき、前記目標メディア書き込み命令セット内の前記書き込み命令の前記データの持続が完了していると判定するように構成された、請求項28に記載のコンピュータシステム。
【請求項３０】
前記メモリコントローラが、
前記複数のメモリ書き込み命令セットの各々に関連付けられる前記アドレスセクションを構成し、
前記複数のメディア書き込み命令セットの各々に関連付けられる前記アドレスセクションを構成するようにさらに構成され、
前記目標メモリ書き込み命令セットおよび前記目標メディア書き込み命令セットが、同じアドレスセクションに関連付けられる、請求項25から29のいずれか一項に記載のコンピュータシステム。
【請求項３１】
コンピュータ読み取り可能な記憶媒体であって、1つ以上のコンピュータ実行可能な命令を含み、前記1つ以上のコンピュータ実行可能な命令がコンピュータ上で作動するとき、前記コンピュータが、請求項19から24のいずれか一項に記載の方法を実行する、コンピュータ読み取り可能な記憶媒体。
【国際調査報告】
2019533244.tif 000011
2019533244.tif 000012
2019533244.tif 000013
2019533244.tif 000014