特許第6878577号(P6878577)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 華為技術有限公司の特許一覧

特許6878577不揮発性メモリの持続方法およびコンピューティングデバイス
<>
  • 特許6878577-不揮発性メモリの持続方法およびコンピューティングデバイス 図000003
  • 特許6878577-不揮発性メモリの持続方法およびコンピューティングデバイス 図000004
  • 特許6878577-不揮発性メモリの持続方法およびコンピューティングデバイス 図000005
  • 特許6878577-不揮発性メモリの持続方法およびコンピューティングデバイス 図000006
  • 特許6878577-不揮発性メモリの持続方法およびコンピューティングデバイス 図000007
  • 特許6878577-不揮発性メモリの持続方法およびコンピューティングデバイス 図000008
  • 特許6878577-不揮発性メモリの持続方法およびコンピューティングデバイス 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6878577
(24)【登録日】2021年5月6日
(45)【発行日】2021年5月26日
(54)【発明の名称】不揮発性メモリの持続方法およびコンピューティングデバイス
(51)【国際特許分類】
   G06F 12/06 20060101AFI20210517BHJP
   G06F 12/00 20060101ALI20210517BHJP
【FI】
   G06F12/06 550A
   G06F12/00 560B
   G06F12/00 597U
【請求項の数】31
【全頁数】32
(21)【出願番号】特願2019-517220(P2019-517220)
(86)(22)【出願日】2017年9月30日
(65)【公表番号】特表2019-533244(P2019-533244A)
(43)【公表日】2019年11月14日
(86)【国際出願番号】CN2017104743
(87)【国際公開番号】WO2018059572
(87)【国際公開日】20180405
【審査請求日】2019年5月14日
(31)【優先権主張番号】201610878743.8
(32)【優先日】2016年9月30日
(33)【優先権主張国】CN
(73)【特許権者】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100140534
【弁理士】
【氏名又は名称】木内 敬二
(72)【発明者】
【氏名】▲盧▼ 天越
(72)【発明者】
【氏名】▲陳▼ 明宇
(72)【発明者】
【氏名】▲ルアン▼ 元
(72)【発明者】
【氏名】▲楊▼ ▲偉▼
【審査官】 酒井 恭信
(56)【参考文献】
【文献】 特表2016−514320(JP,A)
【文献】 中国特許出願公開第104981872(CN,A)
【文献】 米国特許出願公開第2015/0149735(US,A1)
【文献】 特表2008−547089(JP,A)
【文献】 特開2002−026968(JP,A)
【文献】 特開2014−230072(JP,A)
【文献】 特開2016−018382(JP,A)
【文献】 特開2006−309579(JP,A)
【文献】 米国特許出願公開第2006/0282573(US,A1)
【文献】 特開2003−067318(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00 − 12/06
(57)【特許請求の範囲】
【請求項1】
不揮発性メモリ(NVM)の持続方法であって、メモリ内の書き込まれるべきデータを前記不揮発性メモリ(NVM)に書き込むプロセスに適用され、前記NVMのアドレス範囲が、複数のアドレスセクションに分割され、前記方法は、
メモリコントローラにより、書き込み命令を受信するステップであって、前記書き込み命令が、前記書き込まれるべきデータの書き込みアドレスを含む、ステップと、
前記メモリコントローラにより、実行されるべき書き込み命令を記憶するための少なくとも2つのメモリ書き込み命令セットから前記書き込みアドレスを含むアドレスセクションに対応する目標メモリ書き込み命令セットを選択し、前記書き込み命令を前記目標メモリ書き込み命令セットに記憶し、前記目標メモリ書き込み命令セットのクレジット値を指定された値だけ減らすステップと、
前記メモリコントローラにより、前記目標メモリ書き込み命令セット内の前記書き込み命令をメディアコントローラに送信するステップと、
前記書き込み命令を受信した後、前記メディアコントローラにより、実行されるべき書き込み命令を記憶するための少なくとも2つのメディア書き込み命令セットから前記書き込みアドレスを含むアドレスセクションに対応する目標メディア書き込み命令セットを決定し、前記書き込み命令を前記目標メディア書き込み命令セットに記憶し、前記目標メディア書き込み命令セットのクレジット値を前記指定された値だけ減らすステップと、
前記メディアコントローラにより、前記目標メディア書き込み命令セット内の前記書き込み命令を前記NVMに送信し、前記NVMが前記書き込み命令を実行することに成功した後、前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を前記指定された値だけ増やすステップと、
前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を前記メモリコントローラに送信するステップと、
前記目標メディア書き込み命令セットの前記クレジット値を受信した後、前記メモリコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値に基づいて前記目標メモリ書き込み命令セットの前記クレジット値を更新するステップと、
を含む方法。
【請求項2】
前記少なくとも2つのメモリ書き込み命令セットの各々が、前記NVMのアドレスセクションに関連付けられ、
前記メモリコントローラにより、実行されるべき書き込み命令を記憶するための少なくとも2つのメモリ書き込み命令セットから前記書き込みアドレスを含むアドレスセクションに対応する目標メモリ書き込み命令セットを選択し、前記書き込み命令を前記目標メモリ書き込み命令セットに記憶し、前記目標メモリ書き込み命令セットのクレジット値を指定された値だけ減らす前記ステップが、
前記メモリコントローラにより、前記書き込みアドレスが位置する目標アドレスセクションを決定し、前記目標アドレスセクションに関連付けられるメモリ書き込み命令セットを前記目標メモリ書き込み命令セットとして使用するステップと、
前記メモリコントローラにより、前記書き込み命令を前記目標メモリ書き込み命令セットに記憶し、前記目標メモリ書き込み命令セットの前記クレジット値を1だけ減らすステップと、
を含む、請求項1に記載の方法。
【請求項3】
前記NVMのアドレスセクションが、前記少なくとも2つのメディア書き込み命令セットの各々のために構成され、
前記メディアコントローラにより、実行されるべき書き込み命令を記憶するための少なくとも2つのメディア書き込み命令セットから前記書き込みアドレスを含むアドレスセクションに対応する目標メディア書き込み命令セットを決定し、前記書き込み命令を前記目標メディア書き込み命令セットに記憶し、前記目標メディア書き込み命令セットのクレジット値を前記指定された値だけ減らす前記ステップが、
前記メディアコントローラにより、前記書き込みアドレスが位置する前記目標アドレスセクションを決定し、前記目標アドレスセクションに関連付けられるメディア書き込み命令セットを前記目標メディア書き込み命令セットとして使用するステップと、
前記メディアコントローラにより、前記書き込み命令を前記目標メディア書き込み命令セットに記憶し、前記目標メディア書き込み命令セットの前記クレジット値を1だけ減らすステップと、を含む、請求項2に記載の方法。
【請求項4】
メモリコントローラにより、書き込み命令を受信する前記ステップの前に、
前記メモリコントローラにより、ライブラリ関数を呼び出すことによって前記少なくとも2つのメモリ書き込み命令セットの各々の前記アドレスセクションを構成し、前記少なくとも2つのメディア書き込み命令セットの各々の前記アドレスセクションを構成するステップであって、前記少なくとも2つのメモリ書き込み命令セットおよび前記少なくとも2つのメディア書き込み命令セットが、1対1のマッピング関係を有し、互いに関連付けられるメモリ書き込み命令セットおよびメディア書き込み命令セットが、同じアドレスセクションを有する、ステップをさらに含む、請求項3に記載の方法。
【請求項5】
前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を前記メモリコントローラに送信する前記ステップが、
前記メディアコントローラにより、前記メモリコントローラによって送信された問い合わせ要求を受信するステップであって、前記問い合わせ要求が、前記目標メディア書き込み命令セットの前記クレジット値を問い合わせるために使用される、ステップと、
前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を運ぶ問い合わせ応答を前記メモリコントローラに送信するステップと、を含む、請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を前記メモリコントローラに送信する前記ステップが、
前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を前記メモリコントローラに周期的に能動的に送信するステップを含む、請求項1から4のいずれか一項に記載の方法。
【請求項7】
前記メモリコントローラにより、前記目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信し、前記持続の問い合わせ命令の受信の瞬間を取得するステップと、
前記メモリコントローラにより、前記目標メモリ書き込み命令セットに入るべき書き込み命令を前記受信の瞬間の後に遮断するステップと、
前記メモリコントローラにより、前記目標メモリ書き込み命令セットの前記クレジット値を読み取るステップと、
前記読み取られたクレジット値が予め設定された最大値に等しい場合、前記メモリコントローラにより、前記目標メモリ書き込み命令セット内の前記書き込み命令の持続が完了していると判定するステップと、をさらに含む、請求項1に記載の方法。
【請求項8】
前記メモリコントローラにより、前記目標メモリ書き込み命令セットに入るべき書き込み命令を前記受信の瞬間の後に遮断する前記ステップが、
前記メモリコントローラにより、前記目標メモリ書き込み命令セットに入るべき前記書き込み命令を前記受信の瞬間の後にキャッシュするステップ、または
前記メモリコントローラにより、前記受信の瞬間において前記目標メモリ書き込み命令セットにソフトウェアミューテックスを追加するステップ、を含む、請求項7に記載の方法。
【請求項9】
前記メディアコントローラにより、前記目標メディア書き込み命令セットに関する持続の問い合わせ命令を受信するステップと、
前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を読み取るステップと、
前記読み取られたクレジット値が予め設定された最大値に等しい場合、前記メディアコントローラにより、前記目標メディア書き込み命令セット内の前記書き込み命令の持続の動作が完了していると判定するステップと、をさらに含む、請求項1に記載の方法。
【請求項10】
メモリコントローラ、メディアコントローラ、および不揮発性メモリ(NVM)を含むコンピューティングデバイスであって、前記メモリコントローラが、バッファ空間を含み、前記メモリコントローラの前記バッファ空間が、実行されるべき書き込み命令を記憶するための少なくとも2つのメモリ書き込み命令セットを記憶するために使用され、クレジット値が、前記少なくとも2つのメモリ書き込み命令セットの各々のために構成され、前記メディアコントローラが、バッファ空間を含み、前記メディアコントローラの前記バッファ空間が、実行されるべき書き込み命令を記憶するための少なくとも2つのメディア書き込み命令セットを記憶するために使用され、クレジット値が、前記少なくとも2つのメディア書き込み命令セットの各々のために構成され、前記NVMのアドレス範囲が、複数のアドレスセクションに分割され、
前記メモリコントローラが、
書き込み命令を受信するように構成され、前記書き込み命令が、書き込まれるべきデータの書き込みアドレスを含み、
前記メモリコントローラが、前記メモリコントローラの前記バッファ空間内に記憶された前記少なくとも2つのメモリ書き込み命令セットから前記書き込みアドレスを含むアドレスセクションに対応する目標メモリ書き込み命令セットを選択し、前記書き込み命令を前記目標メモリ書き込み命令セットに記憶し、前記目標メモリ書き込み命令セットのクレジット値を指定された値だけ減らし、
前記目標メモリ書き込み命令セット内の前記書き込み命令を前記メディアコントローラに送信し、
前記メディアコントローラによって送信される、目標メディア書き込み命令セットのクレジット値を受信し、
前記目標メディア書き込み命令セットの前記クレジット値に基づいて前記目標メモリ書き込み命令セットの前記クレジット値を更新するように構成され、
前記メディアコントローラが、
前記メモリコントローラによって送信された前記書き込み命令を受信し、
前記メディアコントローラの前記バッファ空間内に記憶された前記少なくとも2つのメディア書き込み命令セットから前記書き込みアドレスを含むアドレスセクションに対応する目標メディア書き込み命令セットを決定し、
前記書き込み命令を前記目標メディア書き込み命令セットに記憶し、前記目標メディア書き込み命令セットの前記クレジット値を前記指定された値だけ減らし、
前記目標メディア書き込み命令セット内の前記書き込み命令を前記NVMに送信し、前記NVMが前記書き込み命令を実行することに成功した後、前記目標メディア書き込み命令セットの前記クレジット値を前記指定された値だけ増やし、
前記目標メディア書き込み命令セットの前記クレジット値を前記メモリコントローラに送信するように構成される、コンピューティングデバイス。
【請求項11】
前記メモリコントローラが、レシーバ、キャッシュコントローラ、複数のカウンタ、およびトランスミッタをさらに含み、1つのカウンタが、各メモリ書き込み命令セットのために構成され、
前記メディアコントローラが、レシーバ、キャッシュコントローラ、複数のカウンタ、およびトランスミッタをさらに含み、1つのカウンタが、各メディア書き込み命令セットのために構成され、
前記メモリコントローラの前記レシーバが、前記書き込みアドレスを運ぶ前記書き込み命令を受信するように構成され、
前記メモリコントローラの前記キャッシュコントローラが、前記メモリコントローラの前記バッファ空間内に記憶された前記少なくとも2つのメモリ書き込み命令セットから前記目標メモリ書き込み命令セットを前記書き込みアドレスに基づいて選択し、前記書き込み命令を前記目標メモリ書き込み命令セットに記憶し、前記目標メモリ書き込み命令セットの前記クレジット値を前記指定された値だけ減らすように前記目標メモリ書き込み命令セットに対応するカウンタに命じるように構成され、
前記メモリコントローラの前記トランスミッタが、前記目標メモリ書き込み命令セット内の前記書き込み命令を前記メディアコントローラの前記レシーバに送信するように構成され、
前記メモリコントローラの前記レシーバが、前記メディアコントローラの前記トランスミッタによって送信される、前記目標メディア書き込み命令セットの前記クレジット値を受信するようにさらに構成され、
前記メモリコントローラの前記キャッシュコントローラが、前記目標メディア書き込み命令セットの前記クレジット値に基づいて前記目標メモリ書き込み命令セットの前記クレジット値を更新するように前記メモリコントローラに対応するカウンタに命じるようにさらに構成され、
前記メディアコントローラの前記レシーバが、前記メモリコントローラの前記トランスミッタによって送信された前記書き込み命令を受信するように構成され、
前記メディアコントローラの前記キャッシュコントローラが、前記メディアコントローラの前記バッファ空間内に記憶された前記少なくとも2つのメディア書き込み命令セットから前記目標メディア書き込み命令セットを前記書き込みアドレスに基づいて決定し、前記書き込み命令を前記目標メディア書き込み命令セットに記憶し、前記目標メディア書き込み命令セットの前記クレジット値を前記指定された値だけ減らすように前記目標メディア書き込み命令セットに対応するカウンタに命じるように構成され、
前記メディアコントローラの前記トランスミッタが、前記目標メディア書き込み命令セット内の前記書き込み命令を前記NVMに送信するように構成され、
前記メディアコントローラの前記キャッシュコントローラが、前記NVMが前記書き込み命令を実行することに成功した後、前記目標メディア書き込み命令セットの前記クレジット値を前記指定された値だけ増やすように前記目標メディア書き込み命令セットに対応する前記カウンタに命じるようにさらに構成され、
前記メディアコントローラの前記トランスミッタが、前記目標メディア書き込み命令セットの前記クレジット値を前記メモリコントローラの前記レシーバに送信するようにさらに構成された、請求項10に記載のコンピューティングデバイス。
【請求項12】
前記NVMのアドレスセクションが、前記少なくとも2つのメモリ書き込み命令セットの各々のために構成され、
前記メモリコントローラの前記キャッシュコントローラが、
前記書き込みアドレスが位置する目標アドレスセクションを決定し、前記目標アドレスセクションに関連付けられるメモリ書き込み命令セットを前記目標メモリ書き込み命令セットとして使用し、
前記書き込み命令を前記目標メモリ書き込み命令セットに記憶し、前記目標メモリ書き込み命令セットの前記クレジット値を1だけ減らすように前記目標メモリ書き込み命令セットに対応する前記カウンタに命じるように構成された、請求項11に記載のコンピューティングデバイス。
【請求項13】
前記NVMのアドレスセクションが、前記少なくとも2つのメディア書き込み命令セットの各々のために構成され、
前記メディアコントローラの前記キャッシュコントローラが、
前記書き込みアドレスが位置する前記目標アドレスセクションを決定し、前記目標アドレスセクションに関連付けられるメディア書き込み命令セットを前記目標メディア書き込み命令セットとして使用し、
前記書き込み命令を前記目標メディア書き込み命令セットに記憶し、前記目標メディア書き込み命令セットの前記クレジット値を1だけ減らすように前記目標メディア書き込み命令セットに対応する前記カウンタに命じるように構成された、請求項12に記載のコンピューティングデバイス。
【請求項14】
前記メモリコントローラの前記キャッシュコントローラが、
ライブラリ関数を呼び出すことによって前記少なくとも2つのメモリ書き込み命令セットの各々の前記アドレスセクションを構成し、前記少なくとも2つのメディア書き込み命令セットの各々の前記アドレスセクションを構成するようにさらに構成され、前記少なくとも2つのメモリ書き込み命令セットおよび前記少なくとも2つのメディア書き込み命令セットが、1対1のマッピング関係を有し、互いに関連付けられるメモリ書き込み命令セットおよびメディア書き込み命令セットが、同じアドレスセクションを有する、請求項13に記載のコンピューティングデバイス。
【請求項15】
前記メディアコントローラの前記トランスミッタが、
前記目標メディア書き込み命令セットの前記クレジット値を運ぶ問い合わせ応答を、前記メモリコントローラの前記トランスミッタによって送信されたクレジット値の問い合わせ要求に従って前記メモリコントローラの前記レシーバに返すように構成された、請求項11から14のいずれか一項に記載のコンピューティングデバイス。
【請求項16】
前記メディアコントローラの前記トランスミッタが、
前記目標メディア書き込み命令セットの前記クレジット値を前記メモリコントローラの前記レシーバに周期的に能動的に送信するように構成された、請求項11から14のいずれか一項に記載のコンピューティングデバイス。
【請求項17】
前記メモリコントローラの前記キャッシュコントローラが、
前記目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信し、前記持続の問い合わせ命令の受信の瞬間を取得し、前記受信の瞬間の後に前記目標メモリ書き込み命令セットに入るべき書き込み命令を遮断し、前記目標メモリ書き込み命令セットに対応する前記カウンタから前記目標メモリ書き込み命令セットの前記クレジット値を読み取り、前記読み取られたクレジット値が予め設定された最大値に等しい場合、前記目標メモリ書き込み命令セット内の前記書き込み命令の持続が完了していると判定するようにさらに構成された、請求項11に記載のコンピューティングデバイス。
【請求項18】
前記メディアコントローラの前記キャッシュコントローラが、
前記目標メディア書き込み命令セットに対応する前記カウンタから前記目標メディア書き込み命令セットの前記クレジット値を、前記目標メディア書き込み命令セットに関する受信された持続の問い合わせ命令に従って読み取り、前記読み取られたクレジット値が予め設定された最大値に等しい場合、前記目標メディア書き込み命令セット内の前記書き込み命令の持続の動作が完了していると判定するようにさらに構成された、請求項11に記載のコンピューティングデバイス。
【請求項19】
メモリコントローラ、メディアコントローラ、および前記メディアコントローラに接続された不揮発性メモリ(NVM)を含むコンピュータシステムに適用されるデータの持続確認方法であって、前記NVMのアドレス範囲が、複数のアドレスセクションに分割され、前記方法は、
前記メモリコントローラにより、前記メディアコントローラから、書き込み命令に含まれる書き込みアドレスを含むアドレスセクションに対応する目標メディア書き込み命令セットのクレジット値を受信するステップであって、前記メディアコントローラが、実行されるべき書き込み命令を記憶するための複数のメディア書き込み命令セットに関連付けられ、前記メモリコントローラが、実行されるべき書き込み命令を記憶するための複数のメモリ書き込み命令セットに関連付けられ、前記目標メディア書き込み命令セットの書き込み命令の各々が、前記メモリコントローラ内の前記書き込みアドレスを含むアドレスセクションに対応する目標メモリ書き込み命令セットからのものであり、前記目標メディア書き込み命令セットが、前記複数のメディア書き込み命令セットのうちの1つであり、前記目標メモリ書き込み命令セットが、前記複数のメモリ書き込み命令セットのうちの1つであり、前記目標メモリ書き込み命令セットおよび前記目標メディア書き込み命令セットのクレジット値が、同じ最大値を有し、前記目標メディア書き込み命令セットの前記クレジット値が、前記目標メディア書き込み命令セットに入ることを許される書き込み命令の数を示す、ステップと、
前記メモリコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値に基づいて前記目標メモリ書き込み命令セットのクレジット値を更新するステップであって、前記目標メモリ書き込み命令セットの前記クレジット値が、前記目標メモリ書き込み命令セットに入ることを許される書き込み命令の数を示す、ステップと、
前記目標メモリ書き込み命令セットの前記更新されたクレジット値が前記最大値に等しいとき、前記メモリコントローラにより、前記目標メモリ書き込み命令セット内の前記書き込み命令のデータの持続が完了していると判定するステップと、
を含む方法。
【請求項20】
受信する前記ステップの前に、前記方法は、
前記メモリコントローラにより、第1のデータの書き込みアドレスを含む第1の書き込み命令を受信するステップと、
前記メモリコントローラにより、前記第1の書き込み命令を前記書き込みアドレスに対応する前記目標メモリ書き込み命令セットに記憶するステップと、
前記メモリコントローラにより、前記目標メモリ書き込み命令セットの第1のクレジット値を指定された値だけ減らして第2のクレジット値を取得するステップと、
前記メモリコントローラにより、前記目標メモリ書き込み命令セット内の前記第1の書き込み命令を前記メディアコントローラに送信するステップと、
前記メディアコントローラにより、前記第1の書き込み命令を前記書き込みアドレスに対応する前記目標メディア書き込み命令セットに記憶するステップと、
前記目標メディア書き込み命令セットの第3のクレジット値を前記指定された値だけ減らして第4のクレジット値を取得するステップと、
前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記第4のクレジット値を前記指定された値だけ増やして、前記第1のデータを前記NVMに書き込んだ後の前記目標メディア書き込み命令セットの前記クレジット値を取得するステップと、
をさらに含む、請求項19に記載の方法。
【請求項21】
前記複数のメモリ書き込み命令セットの各々が、前記NVMのアドレスセクションに関連付けられ、前記複数のメディア書き込み命令セットの各々が、前記NVMのアドレスセクションに関連付けられ、
前記メモリコントローラにより、前記第1の書き込み命令を前記書き込みアドレスに対応する前記目標メモリ書き込み命令セットに記憶するステップが、
前記メモリコントローラにより、前記第1の書き込み命令を前記書き込みアドレスが属する目標アドレスセクションに関連付けられる前記目標メモリ書き込み命令セットに記憶するステップを含み、
前記メディアコントローラにより、前記第1の書き込み命令を前記書き込みアドレスに対応する前記目標メディア書き込み命令セットに記憶するステップが、
前記メディアコントローラにより、前記第1の書き込み命令を前記書き込みアドレスが属する前記目標アドレスセクションに関連付けられる前記目標メディア書き込み命令セットに記憶するステップを含む、請求項20に記載の方法。
【請求項22】
前記メモリコントローラにより、前記目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信するステップと、
前記メモリコントローラにより、前記持続の問い合わせ命令が受信された後、第2の書き込み命令が前記目標メモリ書き込み命令セットに記憶されるのを遮断するステップと、
前記メモリコントローラにより、前記持続の問い合わせ命令を前記メディアコントローラに送信するステップと、をさらに含み、
目標メディア書き込み命令セットのクレジット値を受信する前記ステップが、
前記メモリコントローラにより、前記持続の問い合わせ命令に応答して前記メディアコントローラによって送信される前記目標メディア書き込み命令セットの前記クレジット値を前記メディアコントローラから受信するステップを含む、請求項19から21のいずれか一項に記載の方法。
【請求項23】
前記メディアコントローラにより、前記メモリコントローラによって送信された前記持続の問い合わせ命令を受信するステップと、
前記メディアコントローラにより、前記目標メディア書き込み命令セットの前記クレジット値を読み取るステップと、
前記目標メディア書き込み命令セットの前記読み取られたクレジット値が前記最大値に等しいとき、前記メディアコントローラにより、前記目標メディア書き込み命令セット内の前記書き込み命令の前記データの持続が完了していると判定するステップと、
をさらに含む、請求項22に記載の方法。
【請求項24】
前記メモリコントローラにより、前記複数のメモリ書き込み命令セットの各々に関連付けられる前記アドレスセクションを構成するステップと、
前記メモリコントローラにより、前記複数のメディア書き込み命令セットの各々に関連付けられる前記アドレスセクションを構成するステップと、をさらに含み、
前記目標メモリ書き込み命令セットおよび前記目標メディア書き込み命令セットが、同じアドレスセクションに関連付けられる、請求項19から23のいずれか一項に記載の方法。
【請求項25】
コンピュータシステムであって、
不揮発性メモリ(NVM)であって、前記NVMのアドレス範囲が、複数のアドレスセクションに分割された、NVMと、
前記NVMに接続されたメディアコントローラであって、実行されるべき書き込み命令を記憶するための複数のメディア書き込み命令セットが、前記メディアコントローラのバッファ空間内に記憶され、クレジット値が、前記複数のメディア書き込み命令セットの各々のために構成された、メディアコントローラと、
前記メディアコントローラに接続されたメモリコントローラと、を含み、
前記メモリコントローラが、書き込み命令に含まれる書き込みアドレスを含むアドレスセクションに対応する目標メディア書き込み命令セットのクレジット値を前記メディアコントローラから受信するように構成され、実行されるべき書き込み命令を記憶するための複数のメモリ書き込み命令セットが、前記メモリコントローラのバッファ空間内に記憶され、クレジット値が、前記複数のメモリ書き込み命令セットの各々のために構成され、前記目標メディア書き込み命令セットの書き込み命令の各々が、前記メモリコントローラ内の前記書き込みアドレスを含むアドレスセクションに対応する目標メモリ書き込み命令セットからのものであり、前記目標メディア書き込み命令セットが、前記複数のメディア書き込み命令セットのうちの1つであり、前記目標メモリ書き込み命令セットが、前記複数のメモリ書き込み命令セットのうちの1つであり、前記目標メモリ書き込み命令セットおよび前記目標メディア書き込み命令セットのクレジット値が、同じ最大値を有し、前記目標メディア書き込み命令セットの前記クレジット値が、前記目標メディア書き込み命令セットに入ることを許される書き込み命令の数を示し、
前記メモリコントローラが、前記目標メディア書き込み命令セットの前記クレジット値に基づいて前記目標メモリ書き込み命令セットのクレジット値を更新するように構成され、前記目標メモリ書き込み命令セットの前記クレジット値が、前記目標メモリ書き込み命令セットに入ることを許される書き込み命令の数を示し、
前記メモリコントローラが、前記目標メモリ書き込み命令セットの前記更新されたクレジット値が前記最大値に等しいとき、前記目標メモリ書き込み命令セット内の前記書き込み命令のデータの持続が完了していると判定するように構成された、コンピュータシステム。
【請求項26】
前記メモリコントローラが、
第1のデータの書き込みアドレスを含む第1の書き込み命令を受信し、
前記第1の書き込み命令を前記書き込みアドレスに対応する前記目標メモリ書き込み命令セットに記憶し、
前記目標メモリ書き込み命令セットの第1のクレジット値を指定された値だけ減らして第2のクレジット値を取得し、
前記目標メモリ書き込み命令セット内の前記第1の書き込み命令を前記メディアコントローラに送信するようにさらに構成され、
前記メディアコントローラが、
前記第1の書き込み命令を前記書き込みアドレスに対応する前記目標メディア書き込み命令セットに記憶し、
前記目標メディア書き込み命令セットの第3のクレジット値を前記指定された値だけ減らして第4のクレジット値を取得し、
前記目標メディア書き込み命令セットの前記第4のクレジット値を前記指定された値だけ増やして、前記第1のデータを前記NVMに書き込んだ後の前記目標メディア書き込み命令セットの前記クレジット値を取得するようにさらに構成された、請求項25に記載のコンピュータシステム。
【請求項27】
前記複数のメモリ書き込み命令セットの各々が、前記NVMのアドレスセクションに関連付けられ、前記複数のメディア書き込み命令セットの各々が、前記NVMのアドレスセクションに関連付けられ、
前記メモリコントローラが、前記第1の書き込み命令を前記書き込みアドレスが属する目標アドレスセクションに関連付けられる前記目標メモリ書き込み命令セットに記憶するように構成され、
前記メディアコントローラが、前記第1の書き込み命令を前記書き込みアドレスが属する前記目標アドレスセクションに関連付けられる前記目標メディア書き込み命令セットに記憶するように構成された、請求項26に記載のコンピュータシステム。
【請求項28】
前記メモリコントローラが、
前記目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信し、
前記持続の問い合わせ命令が受信された後、第2の書き込み命令が前記目標メモリ書き込み命令セットに記憶されるのを遮断し、
前記持続の問い合わせ命令を前記メディアコントローラに送信し、
前記持続の問い合わせ命令に応答して前記メディアコントローラによって送信される前記目標メディア書き込み命令セットの前記クレジット値を受信するようにさらに構成された、請求項25から27のいずれか一項に記載のコンピュータシステム。
【請求項29】
前記メディアコントローラが、
前記メモリコントローラから前記持続の問い合わせ命令を受信し、
前記目標メディア書き込み命令セットの前記クレジット値を読み取り、
前記目標メディア書き込み命令セットの前記読み取られたクレジット値が前記最大値に等しいとき、前記目標メディア書き込み命令セット内の前記書き込み命令の前記データの持続が完了していると判定するように構成された、請求項28に記載のコンピュータシステム。
【請求項30】
前記メモリコントローラが、
前記複数のメモリ書き込み命令セットの各々に関連付けられる前記アドレスセクションを構成し、
前記複数のメディア書き込み命令セットの各々に関連付けられる前記アドレスセクションを構成するようにさらに構成され、
前記目標メモリ書き込み命令セットおよび前記目標メディア書き込み命令セットが、同じアドレスセクションに関連付けられる、請求項25から29のいずれか一項に記載のコンピュータシステム。
【請求項31】
コンピュータ読み取り可能な記憶媒体であって、1つ以上のコンピュータ実行可能な命令を含み、前記1つ以上のコンピュータ実行可能な命令がコンピュータ上で作動するとき、前記コンピュータが、請求項19から24のいずれか一項に記載の方法を実行する、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータの分野、詳細には、不揮発性メモリ(Non-Volatile Memory、NVM)の持続方法およびコンピューティングデバイスに関する。
【背景技術】
【0002】
データの持続は、持続的な不揮発性メモリNVMに書き込まれることに成功したデータが、システムがクラッシュするかまたは電力障害が起こるときでも失われないことを示す。たとえば、アプリケーションプログラムのデータが持続の特質を有するとき、アプリケーションプログラムは、NVM内に記憶されたデータに基づいて、システムがクラッシュしたかまたは電力障害が起こった後に正常な作動状態に復元されることができる。現在の応用において、NVMは、システムがクラッシュしたかまたは電力障害が起こった後にアプリケーションプログラムの作動がメモリから直接復元されることができるように通常はメモリとして使用される。しかし、NVMがメモリとして使用されるとき、既存のダブルデータレート(Double Data Rate、DDR)メモリプロトコルは、データの持続の確認をサポートすることができない。理由は、既存のDDRメモリプロトコルにおいては、書き込み命令が、データが中央処理ユニット(Central Processing Unit、CPU)のキャッシュに書き込まれた後ただちにコミットされ、CPUおよびアプリケーションプログラムが、書き込み命令のデータが本当にメモリに書き込まれているかどうかを引き続き追跡し、知ることができないことである。
【0003】
書き込み命令のデータがメモリに書き込まれているかどうかを判定するために、持続の確認の解決策が現在提案されており、つまり、PCOMMIT命令およびCLFLUSH命令が持続の確認を実装するために使用される。CLFLUSH命令は、CPUキャッシュ内で指定されたデータを書き戻すために使用されることができ、書き込み命令が、生成され、メモリコントローラに送信される。PCOMMIT命令を用いて、メモリコントローラ内のすべての書き込み命令が、メモリに強制的に書き込まれる。PCOMMIT命令の実行プロセスにおいて、メモリコントローラは、メモリコントローラ内のすべての書き込み命令がメモリチップに送信されるまで、メモリコントローラに入るべきである新しい書き込み命令を遮断し続ける。上述の方法によれば、データがメモリに書き込まれることに成功し、データの持続が完了していることが確認されることができる。
【0004】
現在の持続の確認の解決策においては、PCOMMIT命令がメモリコントローラ内のすべての書き込み命令に対して持続の動作が完了されるように命じるために使用される。PCOMMIT命令の実行プロセスにおいては、メモリコントローラに入るすべての書き込み命令が遮断される。これは、PCOMMIT命令の実行に影響することを避けるために、メモリコントローラに送信される新しい書き込み命令を減少させる。しかし、上述の効果が達成される間、すべてのアプリケーションプログラムの書き込み命令が、しばらくは、メモリコントローラに送信されることができない。したがって、PCOMMIT命令を呼び出すアプリケーションプログラムは、他のアプリケーションプログラムの性能に大きく影響し、全体のシステム作動効率が低くなる。
【発明の概要】
【課題を解決するための手段】
【0005】
本発明の実施形態は、NVMの持続方法およびコンピューティングデバイスを提供することである。ローカルの遮断がメモリ書き込み命令セット毎の最小粒度に基づいて実装され、それによりメモリコントローラの並列処理の効率を改善するように、複数のメモリ書き込み命令セットが設定される。
【0006】
第1の態様によれば、この出願は、不揮発性メモリNVMの持続方法を提供する。
【0007】
メモリコントローラが、少なくとも2つのメモリ書き込み命令セットに関連付けられ、少なくとも2つのメモリ書き込み命令セットは、メモリコントローラ内に設定されてもよい。たとえば、少なくとも2つのメモリ書き込み命令セットは、メモリコントローラのバッファ空間内に位置する。クレジット値が、少なくとも2つのメモリ書き込み命令セットの各々のために構成され、クレジット値は、メモリ書き込み命令セットに入ることを許される書き込み命令の数を示す。メモリ書き込み命令セットのクレジット値が0に等しいとき、書き込み命令は、メモリ書き込み命令セットに入ることを許されず、各メモリ書き込み命令セットは、最大クレジット値を有する。
【0008】
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に等しいとき、書き込み命令は、メディア書き込み命令セットに入ることを許されず、各メディア書き込み命令セットは、最大クレジット値を有する。メモリ書き込み命令セットおよびメディア書き込み命令セットのデータ構造は、キュー、配列、リンクされたリスト、スタック、または同様のものであってもよい。これは、この出願において限定されない。
【0009】
少なくとも2つのメモリ書き込み命令セット内のメモリ書き込み命令セットの数は、少なくとも2つのメディア書き込み命令セット内のメディア書き込み命令セットの数に等しく、少なくとも2つのメモリ書き込み命令セットおよび少なくとも2つのメディア書き込み命令セットは、1対1のマッピング関係を有し、互いに関連付けられるメモリ書き込み命令セットおよびメディア書き込み命令セットの最大クレジット値は等しい。
【0010】
この出願における持続方法は、メモリ内の書き込まれるべきデータをNVMに書き込むプロセスに適用され、次を含む。メモリコントローラが、まず書き込み命令を受信し、書き込み命令が、書き込まれるべきデータの書き込みアドレスを含み、書き込み命令が、プロセッサによって送信されてもよく、メモリコントローラが、書き込みアドレスに基づいて少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを決定し、書き込み命令を選択された目標メモリ書き込み命令セットに記憶し、目標メモリ書き込み命令セットが、少なくとも2つのメモリ書き込み命令セットのうちの1つであり、メモリコントローラが、目標メモリ書き込み命令セットのクレジット値を指定された値だけ減らし、指定された値が、予め設定された値であり、指定された値の具体的な値は、限定されない。
【0011】
メモリコントローラは、予め設定された選択規則に従って少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを選択し、目標メモリ書き込み命令セットから書き込み命令をフェッチし、フェッチされた書き込み命令をメディアコントローラに送信してもよい。
【0012】
メディアコントローラは、書き込み命令を受信し、書き込みアドレスに基づいて少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを決定し、目標メディア書き込み命令セットおよび目標メモリ書き込み命令セットは、結合関係を有し、目標メディア書き込み命令セットは、少なくとも2つのメディア書き込み命令セットのうちの1つであり、メディアコントローラは、書き込み命令を目標メディア書き込み命令セットに記憶し、目標メディア書き込み命令セットのクレジット値を指定された値だけ減らす。
【0013】
メディアコントローラは、予め設定された選択規則に従って少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを選択し、目標メディア書き込み命令セットから書き込み命令をフェッチしてもよい。
【0014】
メディアコントローラは、書き込み命令内で運ばれる書き込みアドレスを取得し、書き込みアドレスに関連付けられる、NVMの物理ブロックアドレスを、予め設定されたアドレスマッピングテーブルに基づいて問い合わせ、書き込み命令に対応する書き込まれるべきデータを物理ブロックアドレスに対応する物理ブロックに書き込み、物理ブロックアドレスがアドレスマッピングテーブル内で見出されない場合、つまり、物理ブロックアドレスが割り振られていない場合、メディアコントローラは、割り振りのために空き物理ブロックリストから物理ブロックを選択し、選択された物理ブロックの物理ブロックアドレスと書き込みアドレスとの間のマッピング関係をアドレスマッピングテーブル内に確定する。
【0015】
書き込まれるべきデータがNVMに書き込まれることに成功したと判定した後、メディアコントローラは、目標メディア書き込み命令セットのクレジット値を指定された値だけ増やし、メディアコントローラは、目標メモリ書き込み命令セットのクレジット値および目標メディア書き込み命令セットのクレジット値が同期を維持されるように、目標メディア書き込み命令セットのクレジット値をメモリコントローラに送信する。
【0016】
上述の実施形態において、複数の指定されたメモリ書き込み命令セットにそれぞれ対応するクレジット値は、メディアコントローラ内の複数の指定されたメディア書き込み命令セットにそれぞれ対応するクレジット値と同期を維持される。メディアコントローラは、各メディア書き込み命令セットのクレジット値に基づいて書き込み命令の実行ステータスを判定することができ、したがって、メモリコントローラおよびメディアコントローラのクレジット値が同期を維持された後、書き込み命令の持続が完了しているかどうかが、クレジット値に基づいて正確に見出されることができる。加えて、複数のメモリ書き込み命令セットを設定することは、メモリコントローラの並列処理の効率を改善するために、持続の問い合わせ中にローカルの遮断をメモリ書き込み命令セットの粒度で実装することができる。
【0017】
この態様の可能な実装においては、NVMの全体のアドレスセクションが、前もって複数の重ならないアドレスセクションに分割され、NVMのアドレスセクションが、少なくとも2つのメモリ書き込み命令セットの各々のために構成され、少なくとも2つのメモリ書き込み命令セットの各々が、異なるアドレスセクションを有する。メモリコントローラが、書き込みアドレスに基づいて少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを決定し、書き込み命令を目標メモリ書き込み命令セットに記憶し、目標メモリ書き込み命令セットのクレジット値を指定された値だけ減らすことは、メモリコントローラにより、書き込み命令内で運ばれる書き込みアドレスが位置する目標アドレスセクションを決定するステップであって、目標アドレスセクションが、少なくとも2つのメモリ書き込み命令セットのためにそれぞれ予め構成されるアドレスセクションのうちの1つである、ステップと、目標アドレスセクションに関連付けられるメモリ書き込み命令セットを目標メモリ書き込み命令セットとして使用するステップであって、指定された値が1である、ステップと、メモリコントローラにより、書き込み命令を目標メモリ書き込み命令セットに記憶し、目標メモリ書き込み命令セットのクレジット値を1だけ減らすステップと、を含む。上述の実施形態において、目標メモリ書き込み命令セットは、書き込み命令が迅速かつ正確に記憶されることができ、それにより処理効率を改善するように、書き込みアドレスが位置するアドレスセクションに基づいて決定される。
【0018】
この態様の可能な実装においては、NVMの全体のアドレスセクションが、前もって複数の重ならないアドレスセクションに分割され、アドレスセクションの数が、少なくとも2つのメディア書き込み命令セット内のメディア書き込み命令セットの数に等しく、異なるアドレスセクションが、少なくとも2つのメディア書き込み命令セットの各々のために構成される。メディアコントローラが、書き込みアドレスに基づいて少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを決定し、書き込み命令を目標メディア書き込み命令セットに記憶し、目標メディア書き込み命令セットのクレジット値を指定された値だけ減らすことは、メディアコントローラにより、書き込み命令内で運ばれる書き込みアドレスを取得し、書き込みアドレスが位置する目標アドレスセクションを決定するステップであって、目標アドレスセクションが、少なくとも2つのメディア書き込み命令セットのためにそれぞれ構成されたアドレスセクションのうちの1つである、ステップと、メディアコントローラにより、書き込み命令を目標メディア書き込み命令セットに記憶するステップと、を含む。たとえば、目標メディア書き込み命令セットのデータ構造がキューである場合、メディアコントローラは、キューの末尾に書き込み命令を記憶する。別の例として、目標メディア書き込み命令セットのデータ構造がスタックである場合、メディアコントローラは、スタックの一番上に書き込み命令を記憶する。予め設定された指定された値が1である場合、書き込み命令を記憶した後、メディアコントローラは、目標メディア書き込み命令セットのクレジット値を1だけ減らす。上述の実施形態において、目標メディア書き込み命令セットは、書き込み命令が迅速かつ正確に記憶されることができ、それにより処理効率を改善するように、書き込みアドレスが入る目標アドレスセクションを使用することによって決定される。
【0019】
この態様の可能な実装においては、予め設定された指定された値が1である場合、目標メモリ書き込み命令セットを決定した後、メモリコントローラは、目標メモリ書き込み命令セットの現在のクレジット値を取得し、現在のクレジット値が0より大きいかどうかを判定し、判定の結果が現在のクレジット値が0より大きいことである場合、書き込み命令を目標メモリ書き込み命令セットに記憶し、または判定の結果が現在のクレジット値が0より大きくないことである場合、書き込み命令をキャッシュし、予め設定された期間に基づいて目標メモリ書き込み命令セットのクレジット値を問い合わせ、目標メモリ書き込み命令セットのクレジット値が0より大きいことを見出すとき、キャッシュされた書き込み命令を目標メモリ書き込み命令セットに記憶する。上述の実施形態においては、メモリコントローラが適時な方式で書き込み命令を処理することができないために引き起こされる過負荷を避けるために、メモリコントローラに入る書き込み命令の数がクレジット値を使用することによって制御される。
【0020】
この態様の可能な実装においては、目標メディア書き込み命令セットを決定した後、メディアコントローラは、目標メディア書き込み命令セットの現在のクレジット値を取得し、現在のクレジット値が0より大きいかどうかを判定し、判定の結果が現在のクレジット値が0より大きいことである場合、書き込み命令を目標メディア書き込み命令セットに記憶し、または判定の結果が現在のクレジット値が0より大きくないことである場合、書き込み命令をキャッシュし、予め設定された期間に基づいて目標メディア書き込み命令セットのクレジット値を問い合わせ、目標メディア書き込み命令セットのクレジット値が0より大きいことを見出すとき、キャッシュされた書き込み命令を目標メディア書き込み命令セットに記憶する。上述の実施形態においては、メディアコントローラが適時な方式で書き込み命令を処理することができないために引き起こされる過負荷を避けるために、メディアコントローラに入る書き込み命令の数がクレジット値を使用することによって制御される。
【0021】
この態様の可能な実装においては、メモリコントローラが書き込みアドレスを運ぶ書き込み命令を受信する前に、方法は、前もってNVMの全体のアドレスセクションを複数の重ならないアドレスセクションに分割するステップであって、アドレスセクションの数が、メモリ書き込み命令セットの数に等しく、メモリ書き込み命令セットの数が、メディア書き込み命令セットの数に等しい、ステップをさらに含む。メモリコントローラは、ライブラリ関数を呼び出すことによって少なくとも2つのメモリ書き込み命令セットの各々のアドレスセクションを構成し、各メモリ書き込み命令セットは、異なるアドレスセクションを有し、メモリコントローラは、少なくとも2つのメディア書き込み命令セットの各々のアドレスセクションを構成し、各メディア書き込み命令セットは、異なるアドレスセクションを有し、結合関係を有するメモリ書き込み命令セットおよびメディア書き込み命令セットは、同じアドレスセクションを有する。上述の実施形態において、少なくとも2つのメモリ書き込み命令セットおよび少なくとも2つのメディア書き込み命令セットのアドレスセクションは、目標メモリ書き込み命令セットおよび目標メディア書き込み命令セットが書き込み命令の書き込みアドレスに基づいて決定されるようにライブラリ関数を呼び出すことによって構成される。
【0022】
この態様の可能な実装において、メディアコントローラが目標メディア書き込み命令セットのクレジット値をメモリコントローラに送信することは、メディアコントローラにより、メモリコントローラによって送信された問い合わせ要求を受信するステップであって、問い合わせ要求が、目標メディア書き込み命令セットのクレジット値を問い合わせるために使用される、ステップを含む。メディアコントローラは、目標メディア書き込み命令セットのクレジット値をレジスタ内に記憶してもよく、目標メディア書き込み命令セットのクレジット値が更新されることを見出すとき、メディアコントローラは、レジスタ内に記憶される、目標メディア書き込み命令セットのクレジット値をただちに更新する。メモリコントローラは、目標メディア書き込み命令セットのクレジット値についてレジスタに直接問い合わせてもよい。問い合わせ要求を受信した後、メディアコントローラは、目標メディア書き込み命令セットのクレジット値を運ぶ問い合わせ応答をメモリコントローラに送信する。
【0023】
この態様の可能な実装において、メディアコントローラが目標メディア書き込み命令セットのクレジット値をメモリコントローラに送信することは、メディアコントローラにより、目標メディア書き込み命令セットのクレジット値をメモリコントローラに周期的に能動的に送信することを含む。
【0024】
この態様の可能な実装において、方法は、メモリコントローラにより、目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信し、持続の問い合わせ命令の受信の瞬間を取得するステップと、メモリコントローラにより、受信の瞬間の後に目標メモリ書き込み命令セットに入るべき書き込み命令を遮断するステップと、メモリコントローラにより、目標メモリ書き込み命令セットのクレジット値を読み取るステップと、読み取られたクレジット値が予め設定された最大値に等しい場合、メモリコントローラにより、目標メモリ書き込み命令セット内の書き込み命令の持続が完了していると判定するステップと、をさらに含む。上述の実施形態において、メモリコントローラは、持続の問い合わせ命令を受信し、メモリコントローラの並列処理の効率を改善するために、メモリ書き込み命令セットの粒度でのローカルの遮断が実装されるように、別のメモリ書き込み命令セットを遮断する必要なしに、1つのメモリ書き込み命令セットのみが問い合わせされることを遮断する必要がある。
【0025】
この態様の可能な実装において、メモリコントローラが、受信の瞬間の後に目標メモリ書き込み命令セットに入るべき書き込み命令を遮断するステップは、受信の瞬間の後に目標メモリ書き込み命令セットに入るべき書き込み命令をキャッシュするステップ、またはメモリコントローラにより、受信の瞬間に目標メモリ書き込み命令セットにソフトウェアミューテックスを追加するステップを含む。
【0026】
この態様の可能な実装において、方法は、メディアコントローラにより、目標メディア書き込み命令セットに関する持続の問い合わせ命令を受信するステップと、メディアコントローラにより、目標メディア書き込み命令セットのクレジット値を読み取るステップと、読み取られたクレジット値が予め設定された最大値に等しい場合、メディアコントローラにより、目標メディア書き込み命令セット内の書き込み命令の持続の動作が完了していると判定するステップと、をさらに含む。上述の実施形態において、メディアコントローラは、持続の問い合わせ命令を受信し、メモリコントローラの並列処理の効率を改善するために、メモリ書き込み命令セットの粒度でのローカルの遮断が実装されるように、別のメディア書き込み命令セットを遮断する必要なしに、1つのメディア書き込み命令セットのみが問い合わせされることを遮断する必要がある。
【0027】
第2の態様によれば、この出願は、コンピューティングデバイスをさらに提供し、コンピューティングデバイスは、メモリコントローラ、メディアコントローラ、および不揮発性メモリNVMを含み、コンピューティングデバイスは、データセンターサーバ、ネットワークサーバ、ビデオサーバ、ワークステーション、パーソナルコンピュータ、または同様のものを含むがこれらに限定されない。メモリコントローラは、バッファ空間を含み、バッファ空間は、少なくとも2つのメモリ書き込み命令セットを記憶するために使用され、クレジット値が、少なくとも2つのメモリ書き込み命令セットの各々のために構成され、メディアコントローラは、バッファ空間を含み、バッファ空間は、少なくとも2つのメディア書き込み命令セットを記憶するために使用され、メディアコントローラは、少なくとも2つのメディア書き込み命令セットに関連付けられ、クレジット値が、少なくとも2つのメディア書き込み命令セットの各々のために構成される。メモリ書き込み命令セットおよびメディア書き込み命令セットのデータ構造は、キュー、配列、スタック、リンクされたリスト、または同様のものであってもよい。これは、この出願において限定されない。少なくとも2つのメモリ書き込み命令セット内のメモリ書き込み命令セットの数は、少なくとも2つのメディア書き込み命令セット内のメディア書き込み命令セットの数に等しくてもよく、少なくとも2つのメモリ書き込み命令セットおよび少なくとも2つのメディア書き込み命令は、1対1のマッピング関係を有し、関連付けの関係を有するメモリ書き込み命令セットおよびメディア書き込み命令セットのクレジット値は、等しい。
【0028】
メモリコントローラは、
書き込み命令を受信するように構成され、書き込み命令が、書き込まれるべきデータの書き込みアドレスを含み、
メモリコントローラは、メモリコントローラのバッファ空間内に記憶された少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを書き込みアドレスに基づいて選択し、書き込み命令を目標メモリ書き込み命令セットに記憶し、目標メモリ書き込み命令セットのクレジット値を指定された値だけ減らし、
目標メモリ書き込み命令セット内の書き込み命令をメディアコントローラに送信し、
メディアコントローラによって送信される、目標メディア書き込み命令セットのクレジット値を受信し、
目標メディア書き込み命令セットのクレジット値に基づいて目標メモリ書き込み命令セットのクレジット値を更新するように構成される。
【0029】
メディアコントローラは、
メモリコントローラによって送信された書き込み命令を受信し、
メディアコントローラのバッファ空間内に記憶された少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを書き込みアドレスに基づいて決定し、
書き込み命令を目標メディア書き込み命令セットに記憶し、目標メディア書き込み命令セットのクレジット値を指定された値だけ減らし、
目標メディア書き込み命令セット内の書き込み命令をNVMに送信し、NVMが書き込み命令を実行することに成功した後、目標メディア書き込み命令セットのクレジット値を指定された値だけ増やし、
目標メディア書き込み命令セットのクレジット値をメモリコントローラに送信するように構成される。
【0030】
上述の実施形態において、複数の指定されたメモリ書き込み命令セットにそれぞれ対応するクレジット値は、複数の指定されたメディア書き込み命令セットにそれぞれ対応するクレジット値と同期を維持される。メディアコントローラは、各メディア書き込み命令セットのクレジット値に基づいて書き込み命令の実行ステータスを判定することができ、したがって、メモリコントローラおよびメディアコントローラのクレジット値が同期を維持された後、書き込み命令の持続が完了しているかどうかが、クレジット値に基づいて正確に見出されることができる。加えて、複数のメモリ書き込み命令セットを設定することは、メモリコントローラの並列処理の効率を改善するために、持続の問い合わせ中にローカルの遮断をメモリ書き込み命令セットの粒度で実装することができる。
【0031】
この態様の可能な実装において、メモリコントローラは、レシーバ、キャッシュコントローラ、複数のカウンタ、およびトランスミッタをさらに含み、1つのカウンタが、各メモリ書き込み命令セットのために構成され、
メディアコントローラは、レシーバ、キャッシュコントローラ、複数のカウンタ、およびトランスミッタをさらに含み、1つのカウンタが、各メディア書き込み命令セットのために構成され、
メモリコントローラのレシーバは、書き込みアドレスを運ぶ書き込み命令を受信するように構成され、
メモリコントローラのキャッシュコントローラは、メモリコントローラのバッファ空間内に記憶された少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを書き込みアドレスに基づいて選択し、書き込み命令を目標メモリ書き込み命令セットに記憶し、目標メモリ書き込み命令セットのクレジット値を指定された値だけ減らすように目標メモリ書き込み命令セットに対応するカウンタに命じるように構成され、
メモリコントローラのトランスミッタは、目標メモリ書き込み命令セット内の書き込み命令をメディアコントローラのレシーバに送信するように構成され、
メモリコントローラのレシーバは、メディアコントローラのトランスミッタによって送信される、目標メディア書き込み命令セットのクレジット値を受信するようにさらに構成され、
メモリコントローラのキャッシュコントローラは、目標メディア書き込み命令セットのクレジット値に基づいて目標メモリ書き込み命令セットのクレジット値を更新するようにメモリコントローラに対応するカウンタに命じるようにさらに構成され、
メディアコントローラのレシーバは、メモリコントローラのトランスミッタによって送信された書き込み命令を受信するように構成され、
メディアコントローラのキャッシュコントローラは、メディアコントローラのバッファ空間内に記憶された少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを書き込みアドレスに基づいて決定し、書き込み命令を目標メディア書き込み命令セットに記憶し、目標メディア書き込み命令セットのクレジット値を指定された値だけ減らすように目標メディア書き込み命令セットに対応するカウンタに命じるように構成され、
メディアコントローラのトランスミッタは、目標メディア書き込み命令セット内の書き込み命令をNVMに送信するように構成され、
メディアコントローラのキャッシュコントローラは、NVMが書き込み命令を実行することに成功した後、目標メディア書き込み命令セットのクレジット値を指定された値だけ増やすように目標メディア書き込み命令セットに対応するカウンタに命じるようにさらに構成され、
メディアコントローラのトランスミッタは、目標メディア書き込み命令セットのクレジット値をメモリコントローラのレシーバに送信するようにさらに構成される。
【0032】
この態様の可能な実装においては、NVMのアドレスセクションが、少なくとも2つのメモリ書き込み命令セットの各々のために構成され、
メモリコントローラのキャッシュコントローラは、
書き込みアドレスが位置する目標アドレスセクションを決定し、目標アドレスセクションに関連付けられるメモリ書き込み命令セットを目標メモリ書き込み命令セットとして使用し、
書き込み命令を目標メモリ書き込み命令セットに記憶し、目標メモリ書き込み命令セットのクレジット値を1だけ減らすように目標メモリ書き込み命令セットに対応するカウンタに命じるように構成される。
【0033】
この態様の可能な実装においては、NVMのアドレスセクションが、少なくとも2つのメディア書き込み命令セットの各々のために構成され、
メディアコントローラのキャッシュコントローラは、
書き込みアドレスが位置する目標アドレスセクションを決定し、目標アドレスセクションに関連付けられるメディア書き込み命令セットを目標メディア書き込み命令セットとして使用し、
書き込み命令を目標メディア書き込み命令セットに記憶し、目標メディア書き込み命令セットのクレジット値を1だけ減らすように目標メディア書き込み命令セットに対応するカウンタに命じるように構成される。
【0034】
この態様の可能な実装において、メモリコントローラのキャッシュコントローラは、
ライブラリ関数を呼び出すことによって少なくとも2つのメモリ書き込み命令セットの各々のアドレスセクションを構成し、少なくとも2つのメディア書き込み命令セットの各々のアドレスセクションを構成するようにさらに構成され、少なくとも2つのメモリ書き込み命令セットおよび少なくとも2つのメディア書き込み命令セットは、1対1のマッピング関係を有し、互いに関連付けられるメモリ書き込み命令セットおよびメディア書き込み命令セットは、同じアドレスセクションを有する。
【0035】
この態様の可能な実装において、メディアコントローラのトランスミッタは、
目標メディア書き込み命令セットのクレジット値を運ぶ問い合わせ応答を、メモリコントローラのトランスミッタによって送信されたクレジット値の問い合わせ要求に従ってメモリコントローラのレシーバに返すように構成される。
【0036】
この態様の可能な実装において、メディアコントローラのトランスミッタは、
目標メディア書き込み命令セットのクレジット値をメモリコントローラのレシーバに周期的に能動的に送信するように構成される。
【0037】
この態様の可能な実装において、メモリコントローラのキャッシュコントローラは、
目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信し、持続の問い合わせ命令の受信の瞬間を取得し、受信の瞬間の後に目標メモリ書き込み命令セットに入るべき書き込み命令を遮断し、目標メモリ書き込み命令セットに対応するカウンタから目標メモリ書き込み命令セットのクレジット値を読み取り、読み取られたクレジット値が予め設定された最大値に等しい場合、目標メモリ書き込み命令セット内の書き込み命令の持続が完了していると判定するようにさらに構成される。
【0038】
この態様の可能な実装において、メディアコントローラのキャッシュコントローラは、
目標メディア書き込み命令セットに対応するカウンタから目標メディア書き込み命令セットのクレジット値を、目標メディア書き込み命令セットに関する受信された持続の問い合わせ命令に従って読み取り、読み取られたクレジット値が予め設定された最大値に等しい場合、目標メディア書き込み命令セット内の書き込み命令の持続の動作が完了していると判定するようにさらに構成される。
【0039】
以下は、実施形態を説明するために要求される添付の図面を簡単に説明する。
【図面の簡単な説明】
【0040】
図1】本発明の実施形態によるコンピューティングデバイスの概略的な構造図である。
図2a】本発明の実施形態によるNVMの持続方法の概略的なフローチャートである。
図2b】本発明の実施形態によるメモリコントローラおよびメディアコントローラのクレジット値の調整原理の概略図である。
図2c】本発明の実施形態によるメモリコントローラおよびメディアコントローラのクレジット値の調整原理の概略図である。
図2d】本発明の実施形態によるメモリコントローラおよびメディアコントローラのクレジット値の調整原理の概略図である。
図2e】本発明の実施形態によるメモリコントローラおよびメディアコントローラのクレジット値の調整原理の概略図である。
図3】本発明の実施形態によるコンピューティングデバイスの別の概略的な構造図である。
【発明を実施するための形態】
【0041】
以下は、本発明の実施形態における技術的解決策を、本発明の実施形態における添付の図面を参照して明確に説明する。
【0042】
図1を参照すると、図1は、本発明の実施形態によるコンピューティングデバイスの概略的な構造図である。本発明のこの実施形態において、コンピューティングデバイスは、メモリコントローラ10、メディアコントローラ11、およびNVM 12を含み、コンピューティングデバイスは、データセンターサーバ、ネットワークサーバ、ビデオサーバ、ゲートウェイサーバ、パーソナルコンピュータ、モバイル端末、または同様のものを含むがこれらに限定されない。NVMは、電力障害が起こった後にデータを依然として保持することができるメモリであり、NVMは、ROM、PROM、EAROM、EPROM、EEPROM、またはFlash Memoryを含むがこれらに限定されない。
【0043】
メモリコントローラ10は、少なくとも2つのメモリ書き込み命令セットに関連付けられ、少なくとも2つのメモリ書き込み命令セットは、メモリコントローラ内に設定されてもよい。たとえば、少なくとも2つのメモリ書き込み命令セットは、メモリコントローラのバッファ空間100内に設定される。クレジット値が、少なくとも2つのメモリ書き込み命令セットの各々のために構成され、クレジット値は、メモリ書き込み命令セットに入ることを許される書き込み命令の数を示す。
【0044】
メディアコントローラ11は、少なくとも2つのメディア書き込み命令セットに関連付けられ、少なくとも2つのメディア書き込み命令セットは、メディアコントローラ内に設定されてもよい。たとえば、少なくとも2つのメディア書き込み命令セットは、バッファ空間110内に位置する。クレジット値が、少なくとも2つのメディア書き込み命令セットの各々のために構成され、クレジット値は、メディア書き込み命令セットに入ることを許される書き込み命令の数を示す。メモリ書き込み命令セットおよびメディア書き込み命令セットのデータ構造は、キューであってもよい。
【0045】
少なくとも2つのメモリ書き込み命令セット内のメモリ書き込み命令セットの数は、少なくとも2つのメディア書き込み命令セット内のメディア書き込み命令セットの数に等しい。メモリ書き込み命令セットの数はnであり、メディア書き込み命令セットの数はnであり、nは1より大きい整数であると仮定される。n個のメモリ書き込み命令セットおよびn個のメディア書き込み命令セットが、1対1のマッピング関係を有し、1つのメモリ書き込み命令セットおよび1つのメディア書き込み命令セットが、結合関係を有する。初期状態において、n個のメモリ書き込み命令セットの各々は、最大クレジット値を有し、n個のメディア書き込み命令セットの各々は、最大クレジット値を有し、結合関係を有するメモリ書き込み命令セットおよびメディア書き込み命令セットは、同じ最大クレジット値を有する。
【0046】
コンピューティングデバイスの作動プロセスは、
メモリコントローラにより、書き込み命令を受信するステップであって、書き込み命令が、書き込まれるべきデータの書き込みアドレスを含む、ステップと、
メモリコントローラにより、書き込みアドレスに基づいて少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを決定し、書き込み命令を目標メモリ書き込み命令セットに記憶し、目標メモリ書き込み命令セットのクレジット値を指定された値だけ減らすステップと、
メモリコントローラにより、目標メモリ書き込み命令セット内の書き込み命令をメディアコントローラに送信するステップと、
メディアコントローラにより、メモリコントローラによって送信された書き込み命令を受信するステップと、
メディアコントローラにより、書き込みアドレスに基づいて少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを決定し、書き込み命令を目標メディア書き込み命令セットに記憶し、目標メディア書き込み命令セットのクレジット値を指定された値だけ減らすステップと、
メディアコントローラにより、書き込みアドレスに関連付けられる、NVMの物理ブロックアドレスを、予め設定されたアドレスマッピングテーブルに基づいて問い合わせ、書き込み命令に対応する書き込まれるべきデータを物理ブロックアドレスに対応する物理ブロックに書き込み、物理ブロックアドレスがアドレスマッピングテーブル内で見出されない場合、つまり、物理ブロックアドレスが割り振られていない場合、メディアコントローラにより、割り振りのために空き物理ブロックリストから物理ブロックを選択し、選択された物理ブロックの物理ブロックアドレスと書き込みアドレスとの間のマッピング関係をアドレスマッピングテーブル内に確定するステップと、
NVMが書き込み命令を実行することに成功し、書き込まれるべきデータを対応する物理ブロックに書き込んだ後、メディアコントローラにより、目標メディア書き込み命令セットのクレジット値を指定された値だけ増やし、つまり、NVMが書き込み命令の持続を完了していることを確認した後、メディアコントローラにより、目標メディア書き込み命令セットのクレジット値を最大値に復元し、メディアコントローラにより、目標メディア書き込み命令セットのクレジット値をメモリコントローラに送信し、メディアコントローラによって送信される、目標メディア書き込み命令セットのクレジット値をメモリコントローラによって受信し、目標メモリ書き込み命令セットのクレジット値および関連付けられる目標メディア書き込み命令セットのクレジット値が同期を維持されるように、メモリコントローラにより、目標メディア書き込み命令セットのクレジット値に基づいて目標メモリ書き込み命令セットのクレジット値を更新するステップと、を含む。
【0047】
可能な実装において、NVMの全体のアドレスセクションは、前もって複数の重ならないアドレスセクションに分割される。メモリコントローラに関連付けられる少なくとも2つのメモリ書き込み命令セットの数は複数のアドレスセクションの数に等しく、各メモリ書き込み命令セットにアドレスセクションが割り振られる。同様に、メディアコントローラに関連付けられる少なくとも2つのメディア書き込み命令セットの数は複数のアドレスセクションの数に等しく、各メディア書き込み命令セットにアドレスセクションが割り振られる。このようにして、書き込み命令を受信するとき、メモリコントローラおよびメディアコントローラは、書き込みアドレスが入るアドレスセクションに基づいて、目標メモリ書き込み命令セットおよび目標メディア書き込み命令セットを決定してもよい。
【0048】
3つのメモリ書き込み命令キュー、すなわち、メモリ書き込み命令キュー1、メモリ書き込み命令キュー2、およびメモリ書き込み命令キュー3が、メモリコントローラのバッファ空間内に設定される。3つのメディア書き込み命令キュー、すなわち、メディア書き込み命令キュー1、メディア書き込み命令キュー2、およびメディア書き込み命令キュー3が、メディアコントローラのバッファ空間内に設定される。メモリ書き込み命令キュー1およびメディア書き込み命令キュー1に割り振られるアドレスセクションは、0x90000000から0x90ffffffであり、0x90000000は、アドレスセクションの開始アドレスであり、0x90ffffffは、アドレスセクションの終了アドレスである。メモリ書き込み命令キュー2に割り振られるアドレスセクションは、0x856000000から0x857fffffであり、0x856000000は、開始アドレスであり、0x857fffffは、終了アドレスである。メモリ書き込み命令キュー3に割り振られるアドレスセクションは、0x65600000から0x657fffffであり、0x65600000は、開始アドレスであり、0x657fffffは、終了アドレスである。
【0049】
上述の実施形態の実装によって、複数の指定されたメモリ書き込み命令セットにそれぞれ対応するクレジット値が、複数の指定されたメディア書き込み命令セットにそれぞれ対応するクレジット値と同期を維持される。メディアコントローラは、各メディア書き込み命令セットのクレジット値に基づいて書き込み命令の実行ステータスを判定することができ、したがって、メモリコントローラおよびメディアコントローラのクレジット値が同期を維持された後、書き込み命令の持続が完了しているかどうかが、クレジット値に基づいて正確に見出されることができる。加えて、複数のメモリ書き込み命令セットを設定することは、メモリコントローラの並列処理の効率を改善するために、持続の問い合わせ中にローカルの遮断をメモリ書き込み命令セットの粒度で実装することができる。
【0050】
図2を参照すると、図2は、本発明の実施形態による不揮発性メモリの持続方法の概略的なフローチャートである。本発明のこの実施形態において、方法は、以下のステップを含む。
【0051】
S201. メモリコントローラが、書き込み命令を受信する。
【0052】
具体的には、書き込み命令は、書き込まれるべきデータの書き込みアドレスを含み、書き込み命令は、プロセッサによって送信されてもよい。メモリコントローラは、プロセッサによって送信された書き込みアドレスを、アドレスバスを使用することによって受信し、プロセッサによって送信された書き込まれるべきデータを、データバスを使用することによって受信してもよい。
【0053】
S202. メモリコントローラが、書き込みアドレスに基づいて少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを決定する。
【0054】
具体的には、メモリコントローラは、少なくとも2つのメモリ書き込み命令セットに関連付けられる。メモリ書き込み命令セットは、書き込み命令を記憶するために使用される。メモリ書き込み命令セットのデータ構造は、キュー、配列、スタック、またはリンクされたリストであってもよい。少なくとも2つのメモリ書き込み命令セットは、メモリコントローラ内に設定されてもよい。たとえば、少なくとも2つのメモリ書き込み命令セットは、メモリコントローラのバッファ空間内に設定される。メモリコントローラは、書き込みアドレスに基づいて少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを決定する。
【0055】
可能な実装において、メモリコントローラが書き込みアドレスに基づいて少なくとも2つのメモリ書き込み命令セットから目標メモリ書き込み命令セットを決定することは、前もってNVMの全体のアドレスセクションを少なくとも2つのアドレスセクションに分割するステップであって、分割されたアドレスセクションの数が、メモリ書き込み命令セットの数に等しく、少なくとも2つのアドレスセクションの各々が、1つのメモリ書き込み命令セットに関連付けられる、ステップと、メモリコントローラにより、書き込みアドレスが入るアドレスセクションを決定し、書き込みアドレスが入るアドレスセクションに関連付けられるメモリ書き込み命令セットを目標メモリ書き込み命令セットとして使用するステップと、を含む。
【0056】
たとえば、図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に表わされる。
【0057】
【表1】
【0058】
メモリコントローラが、書き込み命令を受信する。書き込み命令が、書き込まれるべきデータの書き込みアドレス0x656033feを含み、メモリコントローラは、書き込みアドレスが入るアドレスセクション0x65600000から0x657fffffを4つのアドレスセクションに基づいて決定すると仮定される。アドレスセクションは、メモリ書き込み命令セット3に対応し、メモリ書き込み命令セット3が、目標メモリ書き込み命令セットであり、メモリコントローラは、書き込み命令をメモリ書き込み命令セット3に記憶する。
【0059】
S203. メモリコントローラは、書き込み命令を目標メモリ書き込み命令セットに記憶し、目標メモリ書き込み命令セットのクレジット値を指定された値だけ減らす。
【0060】
具体的には、クレジット値は、目標メモリ書き込み命令セットに入ることを許される書き込み命令の数を示す。目標メモリ書き込み命令セットのクレジット値が予め設定された値より小さいとき、書き込み命令は、目標メモリ書き込み命令セットに入ることを許されない。目標メモリ書き込み命令セットは、最大クレジット値を有し、最大値は、目標メモリ書き込み命令セットに入ることを許される書き込み命令の最大数を示す。メモリコントローラは、書き込み命令を目標メモリ書き込み命令セットに記憶する。たとえば、目標メモリ書き込み命令セットのデータ構造がキューである場合、メモリコントローラは、目標メモリ書き込み命令セットのキューの末尾において書き込み命令を記憶し、または目標メモリ書き込み命令セットのデータ構造がスタックである場合、メモリコントローラは、目標メモリ書き込み命令セットのスタックの一番上において書き込み命令を記憶する。メモリコントローラは、書き込み命令を目標メモリ書き込み命令セットに記憶し、そしてメモリ書き込み命令セットのクレジット値を指定された値だけ減らす。指定された値の具体的な値は、限定されず、必要に応じて設定されてもよい。
【0061】
上述の例の続きとして、図2cを参照すると、メモリコントローラは、メモリ書き込み命令セット3の4のクレジット値を1だけ減らし、メモリ書き込み命令セット3の更新されたクレジット値は、3である。
【0062】
S204. メモリコントローラが、目標メモリ書き込み命令セットから書き込み命令をフェッチする。
【0063】
具体的には、メモリコントローラは、予め設定された選択規則に従って少なくとも2つのメモリ書き込み命令セットからメモリ書き込み命令セットを選択してもよい。選択されたメモリ書き込み命令セットがS203における目標メモリ書き込み命令セットであるとき、およびS203における書き込み命令がフェッチの瞬間に来るとき、メモリコントローラは、目標メモリ書き込み命令セットから書き込み命令をフェッチする。選択規則は、ランダム選択、メモリ書き込み命令セットの数に基づくポーリング、メモリ書き込み命令セットの優先度に基づくポーリング、または同様のものであってもよい。
【0064】
S205. メモリコントローラが、書き込み命令をメディアコントローラに送信する。
【0065】
書き込み命令は、書き込まれるべきデータの書き込みアドレスを運ぶ。
【0066】
S206. メディアコントローラは、書き込み命令内で運ばれる書き込みアドレスに基づいて少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを決定する。
【0067】
具体的には、メディア書き込み命令セットは、書き込み命令を記憶するために使用される。メディア書き込み命令セットのデータ構造は、キュー、リンクされたリスト、配列、またはスタックを含むがこれらに限定されず、少なくとも2つのメディア書き込み命令セットは、メディアコントローラ内に設定されてもよい。たとえば、少なくとも2つのメディア書き込み命令セットは、メディアコントローラのバッファ空間内に設定される。メディアコントローラは、書き込み命令内で運ばれる書き込みアドレスに基づいて少なくとも2つのメディア書き込み命令セットから目標メディア書き込み命令セットを決定する。
【0068】
可能な実装においては、メディアコントローラによって目標メディア書き込み命令セットを決定するための方法が、NVMの全体のアドレスセクションを少なくとも2つの連続する重ならないアドレスセクションに分割するステップであって、少なくとも2つのアドレスセクションの各々が、1つのメディア書き込み命令セットに関連付けられ、少なくとも2つのメディア書き込み命令セット内のメディア書き込み命令セットの数が、少なくとも2つのメモリ書き込み命令セット内のメモリ書き込み命令セットの数に等しく、互いに関連付けられるメモリ書き込み命令セットおよびメディア書き込み命令セットに関して構成されたアドレスセクションが、同じである、ステップ、および、メディアコントローラにより、書き込みアドレスが入るアドレスセクションを決定し、書き込みアドレスが入るセクションに対応するメディア書き込み命令セットを目標メディア書き込み命令セットとして使用するステップであってもよい。
【0069】
上述の例の続きとして、図2cを参照すると、メモリコントローラは、メモリ書き込み命令セット3から書き込み命令をフェッチし、書き込み命令をメディアコントローラに送信する。メディアコントローラは、書き込みアドレスが入るアドレスセクション0x65600000から0x657fffffを、書き込み命令の書き込みアドレス0x656033feに基づいて決定する。アドレスセクションは、メディア書き込み命令セット3に対応し、メディア書き込み命令セット3が、目標メディア書き込み命令セットであり、メディアコントローラは、書き込み命令をメディア書き込み命令セット3に記憶する。
【0070】
S207. メディアコントローラは、書き込み命令を目標メディア書き込み命令セットに記憶し、目標メディア書き込み命令セットのクレジット値を指定された値だけ減らす。
【0071】
具体的には、クレジット値は、目標メディア書き込み命令セットに入ることを許される書き込み命令の数を示す。目標メディア書き込み命令セットのクレジット値が予め設定された値より小さいとき、書き込み命令は、目標メディア書き込み命令セットに入ることを許されない。目標メディア書き込み命令セットは、最大クレジット値を有し、最大値は、目標メディア書き込み命令セットに入ることを許される書き込み命令の最大数を示す。関連付けの関係を有するメモリ書き込み命令セットおよびメディア書き込み命令セットの最大クレジット値が等しいので、目標メモリ書き込み命令セットおよび目標メディア書き込み命令セットの最大クレジット値は、等しい。目標メディア書き込み命令セットのデータ構造は、配列、リンクされたリスト、キュー、またはスタックを含むがこれらに限定されない。メディアコントローラは、書き込み命令を目標メディア書き込み命令セットに記憶し、そして目標メディア書き込み命令セットのクレジット値を指定された値だけ減らす。指定された値の具体的な値は、限定されず、必要に応じて設定されてもよい。
【0072】
上述の例の続きとして、図2cを参照すると、メディアコントローラは、書き込み命令をメディア書き込み命令セット3に記憶し、メディアコントローラは、メディア書き込み命令セット3の4のクレジット値を1だけ減らし、メディア書き込み命令セット3の更新されたクレジット値は、3である。
【0073】
S208. メディアコントローラが、目標メディア書き込み命令セットから書き込み命令をフェッチする。
【0074】
具体的には、メディアコントローラは、予め設定された選択規則に従って少なくとも2つのメディア書き込み命令セットから1つのメディア書き込み命令セットを選択してもよい。選択されたメディア書き込み命令セットがS207における目標メディア書き込み命令セットであるとき、およびそれがS207における目標メディア書き込み命令セット内の書き込み命令をフェッチするための瞬間に来るとき、メディアコントローラは、目標メディア書き込み命令セットから書き込み命令をフェッチする。少なくとも2つのメディア書き込み命令セットからメディア書き込み命令セットを選択するための選択規則は、ランダム選択、メディア書き込み命令セットの数に基づくポーリング、またはメディア書き込み命令セットの優先度に基づくポーリングであってもよい。
【0075】
S209. メディアコントローラが、書き込み命令をNVMに送信する。
【0076】
具体的には、メディアコントローラは、書き込み命令内で運ばれる書き込みアドレスを取得し、予め設定されたアドレスマッピングテーブルに基づいて書き込みアドレスを物理ブロックアドレスに変換し、メディアコントローラは、物理ブロックアドレスを運ぶ書き込み命令をNVMに送信する。
【0077】
S210. NVMが、持続の動作を完了するために書き込み命令を実行する。
【0078】
具体的には、NVMは、書き込まれるべきデータを物理ブロックアドレスが指す物理ブロックに書き込み、書き込まれるべきデータが書き込まれた後、持続の動作が、完了している。
【0079】
S211. NVMが、メディアコントローラに応答メッセージを返し、応答メッセージは、書き込み命令の持続の動作がNVMに対して完了していることをメディアコントローラに通知するために使用される。
【0080】
S212. メディアコントローラが、目標メディア書き込み命令セットのクレジット値を指定された値だけ増やす。
【0081】
書き込み命令の持続の動作がNVMに対して完了していると判定するとき、メディアコントローラは、目標メディア書き込み命令セットのクレジット値を指定された値だけ増やす。このようにして、書き込み命令が目標メディア書き込み命令セットに入り、そしてクレジット値が指定された値だけ減らされるS207の後、および書き込み命令の持続の動作が完了し、そして目標メディア書き込み命令セットのクレジット値が指定された値だけ増やされた後、目標メディア書き込み命令セットのクレジット値は、最大値に復元される。
【0082】
上述の例の続きとして、図2dを参照すると、メディアコントローラは、メディア書き込み命令セット3から書き込み命令をフェッチし、書き込み命令をNVMに送信する。NVMは、予め設定されたアドレスマッピングテーブルに基づいて書き込みアドレスを物理ブロックアドレスにマッピングし、書き込まれるべきデータを物理ブロックアドレスに対応する物理ブロックに書き込む。NVMが持続の動作を完了するために書き込まれるべきデータを物理ブロックに書き込むことに成功した後、NVMは、メディアコントローラに応答メッセージを返してもよい。書き込み命令の持続の動作が完了していると判定した後、メディアコントローラは、メディア書き込み命令セット3のクレジット値を1だけ増やし、そしてメディア書き込み命令セット3のクレジット値は、4になる。
【0083】
S213. 目標メモリ書き込み命令セットのクレジット値を目標メディア書き込み命令セットのクレジット値と同期させる。
【0084】
具体的には、クレジット値を同期させるための方法が、メモリコントローラにより、予め設定された期間に基づいて目標メディア書き込み命令セットのクレジット値についてメディアコントローラに能動的に問い合わせるステップであって、目標メディア書き込み命令セットのクレジット値が、メディアコントローラのレジスタ内に記憶されてもよく、メモリコントローラが、目標メモリ書き込み命令セットのクレジット値を、見出されたクレジット値に基づいて更新する、ステップ、またはメモリコントローラが通知されたクレジット値に基づいて目標メモリ書き込み命令セットのクレジット値を更新するように、メディアコントローラにより、目標メディア書き込み命令セットのクレジット値が更新されることをメモリコントローラに能動的に通知するステップ、または書き込み命令の応答メッセージに目標メディア書き込み命令セットのクレジット値を追加するステップであってもよい。
【0085】
上述の例の続きとして、図2eを参照すると、メディアコントローラは、メディア書き込み命令セット3の4の更新されたクレジット値をメモリコントローラに送信し、メモリコントローラは、メディア書き込み命令セット3の4のクレジット値に基づいてメモリ書き込み命令セット3のクレジット値を4に更新する。
【0086】
任意選択で、予め設定された指定された値が1である場合、目標メモリ書き込み命令セットを決定した後、メモリコントローラは、目標メモリ書き込み命令セットの現在のクレジット値を取得し、現在のクレジット値が0より大きいかどうかを判定し、判定の結果が現在のクレジット値が0より大きいことである場合、書き込み命令を目標メモリ書き込み命令セットに記憶し、または判定の結果が現在のクレジット値が0より大きくないことである場合、書き込み命令をキャッシュし、予め設定された期間に基づいて目標メモリ書き込み命令セットのクレジット値を問い合わせ、目標メモリ書き込み命令セットのクレジット値が0より大きいことを見出すとき、キャッシュされた書き込み命令を目標メモリ書き込み命令セットに記憶する。上述の実施形態においては、メモリコントローラが適時な方式で書き込み命令を処理することができないために引き起こされる過負荷を避けるために、メモリコントローラに入る書き込み命令の数がクレジット値を使用することによって制御される。
【0087】
任意選択で、目標メディア書き込み命令セットを決定した後、メディアコントローラは、目標メディア書き込み命令セットの現在のクレジット値を取得し、現在のクレジット値が0より大きいかどうかを判定し、判定の結果が現在のクレジット値が0より大きいことである場合、書き込み命令を目標メディア書き込み命令セットに記憶し、または判定の結果が現在のクレジット値が0より大きくないことである場合、書き込み命令をキャッシュし、予め設定された期間に基づいて目標メモリ書き込み命令セットのクレジット値を問い合わせ、目標メディア書き込み命令セットのクレジット値が0より大きいことを見出すとき、キャッシュされた書き込み命令を目標メディア書き込み命令セットに記憶する。上述の実施形態においては、メディアコントローラが適時な方式で書き込み命令を処理することができないために引き起こされる過負荷を避けるために、メディアコントローラに入る書き込み命令の数がクレジット値を使用することによって制御される。
【0088】
任意選択で、この出願の不揮発性メモリの持続方法は、
メモリコントローラにより、目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信し、持続の問い合わせ命令の受信の瞬間を取得するステップと、
メモリコントローラにより、目標メモリ書き込み命令セットに入るべき書き込み命令を受信の瞬間の後に遮断するステップと、
メモリコントローラにより、目標メモリ書き込み命令セットのクレジット値を読み取るステップと、
読み取られたクレジット値が予め設定された最大値に等しい場合、メモリコントローラにより、目標メモリ書き込み命令セット内の書き込み命令の持続が完了していると判定するステップと、をさらに含む。
【0089】
具体的には、メモリコントローラは、目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信する。持続の問い合わせ命令は、プロセッサによって送信されてもよく、持続の問い合わせ命令は、CPU命令または呼び出し関数であってもよい。CPU命令または呼び出し関数は、目標メモリ書き込み命令セットの識別子を運ぶ。持続の問い合わせ命令を受信する受信の瞬間の後、メモリコントローラは、目標メモリ書き込み命令セットに入るべき書き込み命令を遮断する。メモリコントローラは、少なくとも2つの目標メモリ書き込み命令セット内の目標メモリ書き込み命令セットと異なる別のメモリ書き込み命令セットに対して遮断する動作を実行しない。メモリコントローラは、目標メモリ書き込み命令セットのクレジット値を読み取る。読み取られたクレジット値が予め設定された最大値に等しい場合、それは目標メモリ書き込み命令セット内の書き込み命令がクレジット値を占めていないことを示し、目標メモリ書き込み命令セット内の書き込み命令の持続の動作が完了している。
【0090】
上述の例の続きとして、図2eを参照すると、メモリコントローラがメモリ書き込み命令セット3に関する持続の問い合わせ命令を受信するとき、メモリコントローラは、持続の問い合わせ命令の受信の瞬間t0を取得し、メモリコントローラは、瞬間t0の後、メモリ書き込み命令セット3に入るべき書き込み命令を遮断する。遮断する方法は、瞬間t0の後、メモリ書き込み命令セット3に入るべき書き込み命令をキャッシュすること、またはメモリ書き込み命令セット3にソフトミューテックスを追加することであってもよく、書き込み命令は、メモリ書き込み命令セット1、2、および4に依然として正常に入ることができる。メモリコントローラがメモリ書き込み命令セット3のクレジット値を取得し、メモリ書き込み命令セット3のクレジット値が4の最大値に等しいことを見出すとき、メモリコントローラは、メモリ書き込み命令セット3内の書き込み命令がクレジット値を占めていないと判定し、メモリ書き込み命令セット3の持続の動作が完了している。
【0091】
別の例として、メディアコントローラがメディア書き込み命令セット3に関する持続の問い合わせ命令を受信し、メディア書き込み命令セット3のクレジット値を取得し、メディア書き込み命令セット3のクレジット値が4の最大値に等しいことを見出すとき、メディア書き込み命令セット3内の書き込み命令は、クレジット値を占めず、メディア書き込み命令セット3内の書き込み命令の持続の動作が完了している。
【0092】
任意選択で、メモリコントローラにより、目標メモリ書き込み命令セットに入るべき書き込み命令を受信の瞬間の後に遮断するステップは、
メモリコントローラにより、目標メモリ書き込み命令セットに入るべき書き込み命令を受信の瞬間の後にキャッシュするステップ、または
メモリコントローラにより、受信の瞬間に目標メモリ書き込み命令セットにソフトウェアミューテックスを追加するステップを含む。
【0093】
具体的には、メモリコントローラにより、目標メモリ書き込み命令セットに入るべき書き込み命令を受信の瞬間の後に遮断するための方法は、メモリコントローラにより、目標メモリ書き込み命令セットに入るべき書き込み命令を受信の瞬間の後にキャッシュし、目標メモリ書き込み命令セットのクレジット値が予め設定された最大値に等しいと判定するとき、メモリコントローラにより、キャッシュされた書き込み命令を目標メモリ書き込み命令セットに送信するステップ、または目標メモリ書き込み命令セットに入るべき書き込み命令を遮断するために、メモリコントローラにより、目標メモリ書き込み命令セットにソフトミューテックスを追加するステップを含む。
【0094】
任意選択で、この出願の不揮発性メモリの持続方法は、
メディアコントローラにより、目標メディア書き込み命令セットに関する持続の問い合わせ命令を受信するステップと、
メディアコントローラにより、目標メディア書き込み命令セットのクレジット値を読み取るステップと、
メディアコントローラにより、読み取られたクレジット値が予め設定された最大値に等しい場合、目標メディア書き込み命令セット内の書き込み命令の持続の動作が完了していると判定するステップと、をさらに含む。
【0095】
具体的には、メディアコントローラは、目標メディア書き込み命令セットに関する持続の問い合わせ命令を受信し、持続の問い合わせ命令は、プロセッサによって送信されてもよく、持続の問い合わせ命令は、CPU命令または呼び出し関数であってもよく、CPU命令または呼び出し関数は、目標メディア書き込み命令セットの識別子を運ぶ。メディアコントローラは、目標メディア書き込み命令セットのクレジット値を読み取り、読み取られたクレジット値が予め設定された最大値に等しい場合、それは目標メディア書き込み命令セット内の書き込み命令がクレジット値を占めていないことを示し、目標メディア書き込み命令セット内の書き込み命令の持続の動作が完了している。
【0096】
上述の実施形態において、複数の指定されたメモリ書き込み命令セットにそれぞれ対応するクレジット値は、複数の指定されたメディア書き込み命令セットにそれぞれ対応するクレジット値と同期を維持される。メディアコントローラは、各メディア書き込み命令セットのクレジット値に基づいて書き込み命令の実行ステータスを判定することができ、したがって、メモリコントローラおよびメディアコントローラのクレジット値が同期を維持された後、書き込み命令の持続が完了しているかどうかが、クレジット値に基づいて正確に見出されることができる。加えて、複数のメモリ書き込み命令セットを設定することは、メモリコントローラの並列処理の効率を改善するために、持続の問い合わせ中にローカルの遮断をメモリ書き込み命令セットの粒度で実装することができる。
【0097】
図3を参照すると、図3は、この出願の実施形態によるコンピューティングデバイスの別の概略的な構造図である。この実施形態において、コンピューティングデバイスは、メモリコントローラ10、メディアコントローラ11、およびNVM 12を含む。メモリコントローラ10は、バッファ空間100、レシーバ101、キャッシュコントローラ102、n個のカウンタ、およびトランスミッタ103を含み、n個のメモリ書き込み命令セットが、バッファ空間100内に設定され、1つのカウンタが、各メモリ書き込み命令セットのために構成され、nは、1より大きい整数である。
【0098】
メディアコントローラ11は、バッファ空間110、レシーバ111、キャッシュコントローラ112、n個のカウンタ、およびトランスミッタ113を含み、n個のメディア書き込み命令セットが、バッファ空間110内に設定され、1つのカウンタが、各メディア書き込み命令セットのために構成される。
【0099】
NVM 12の全体のアドレスセクションは、n個のアドレスセクションに分割され、n個のメモリ書き込み命令セットおよびn個のアドレスセクションは、1対1のマッピング関係を有し、n個のメディア書き込み命令セットおよびn個のアドレスセクションは、1対1のマッピング関係を有する。
【0100】
メモリコントローラ10およびメディアコントローラ11に含まれる構成要素は、特定用途向け集積回路(英語: Application-Specific Integrated Circuit、略してASIC)を使用することによって実装されてもよく、またはプログラマブル・ロジック・デバイス(英語: Programmable Logic Device、略してPLD)を使用することによって実装されてもよいことが留意されるべきである。PLDは、複合プログラマブル・ロジック・デバイス(英語: Complex Programmable Logic Device、略してCPLD)、FPGA、または汎用アレイ・ロジック(英語: Generic Array Logic、略してGAL)、またはこれらの任意の組合せであってもよい。
【0101】
コンピューティングデバイスの作動プロセスは、
メモリコントローラ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が、目標メディア書き込み命令セットのクレジット値をメモリコントローラのレシーバに送信するようにさらに構成されることを含む。
【0102】
可能な実装において、NVMのアドレスセクションは、少なくとも2つのメモリ書き込み命令セットの各々のために構成される。
【0103】
メモリコントローラ10のキャッシュコントローラ102は、
書き込みアドレスが位置する目標アドレスセクションを決定し、目標アドレスセクションに関連付けられるメモリ書き込み命令セットを目標メモリ書き込み命令セットとして使用し、
書き込み命令を目標メモリ書き込み命令セットに記憶し、目標メモリ書き込み命令セットのクレジット値を1だけ減らすように目標メモリ書き込み命令セットに対応するカウンタに命じるように構成される。
【0104】
可能な実装において、NVMのアドレスセクションは、少なくとも2つのメディア書き込み命令セットの各々のために構成される。
【0105】
メディアコントローラ11のキャッシュコントローラ112は、
書き込みアドレスが位置する目標アドレスセクションを決定し、目標アドレスセクションに関連付けられるメディア書き込み命令セットを目標メディア書き込み命令セットとして使用し、
書き込み命令を目標メディア書き込み命令セットに記憶し、目標メディア書き込み命令セットのクレジット値を1だけ減らすように目標メディア書き込み命令セットに対応するカウンタに命じるように構成される。
【0106】
可能な実装において、メモリコントローラ10のキャッシュコントローラ102は、
ライブラリ関数を呼び出すことによって少なくとも2つのメモリ書き込み命令セットの各々のアドレスセクションを構成し、少なくとも2つのメディア書き込み命令セットの各々のアドレスセクションを構成するようにさらに構成され、少なくとも2つのメモリ書き込み命令セットおよび少なくとも2つのメディア書き込み命令セットは、1対1のマッピング関係を有し、互いに関連付けられるメモリ書き込み命令セットおよびメディア書き込み命令セットは、同じアドレスセクションを有する。
【0107】
可能な実装において、メディアコントローラ11のトランスミッタ113は、
目標メディア書き込み命令セットのクレジット値を運ぶ問い合わせ応答を、メモリコントローラのトランスミッタによって送信されたクレジット値の問い合わせ要求に従ってメモリコントローラのレシーバに返すように構成される。
【0108】
可能な実装において、メディアコントローラ11のトランスミッタ113は、
目標メディア書き込み命令セットのクレジット値をメモリコントローラのレシーバに周期的に能動的に送信するように構成される。
【0109】
可能な実装において、メモリコントローラ10のキャッシュコントローラ102は、
目標メモリ書き込み命令セットに関する持続の問い合わせ命令を受信し、持続の問い合わせ命令の受信の瞬間を取得し、受信の瞬間の後に目標メモリ書き込み命令セットに入るべき書き込み命令を遮断し、目標メモリ書き込み命令セットに対応するカウンタから目標メモリ書き込み命令セットのクレジット値を読み取り、読み取られたクレジット値が予め設定された最大値に等しい場合、目標メモリ書き込み命令セット内の書き込み命令の持続が完了していると判定するようにさらに構成される。
【0110】
可能な実装において、メディアコントローラ11のキャッシュコントローラ112は、
目標メディア書き込み命令セットに対応するカウンタから目標メディア書き込み命令セットのクレジット値を、目標メディア書き込み命令セットに関する受信された持続の問い合わせ命令に従って読み取り、読み取られたクレジット値が予め設定された最大値に等しい場合、目標メディア書き込み命令セット内の書き込み命令の持続の動作が完了していると判定するようにさらに構成される。
【0111】
上述の実施形態において、複数の指定されたメモリ書き込み命令セットにそれぞれ対応するクレジット値は、複数の指定されたメディア書き込み命令セットにそれぞれ対応するクレジット値と同期を維持される。メディアコントローラは、各メディア書き込み命令セットのクレジット値に基づいて書き込み命令の実行ステータスを判定することができ、したがって、メモリコントローラおよびメディアコントローラのクレジット値が同期を維持された後、書き込み命令の持続が完了しているかどうかが、クレジット値に基づいて正確に見出されることができる。加えて、複数のメモリ書き込み命令セットを設定することは、メモリコントローラの並列処理の効率を改善するために、持続の問い合わせ中にローカルの遮断をメモリ書き込み命令セットの粒度で実装することができる。
【0112】
この技術分野の当業者は、実施形態における方法のプロセスのすべてまたはいくつかが、関連するハードウェアに命じるコンピュータプログラムによって実装されてもよいことを理解し得る。プログラムは、コンピュータ読み取り可能な記憶媒体に記憶されてもよい。プログラムが作動するとき、実施形態における方法のプロセスが実行される。上述の記憶媒体は、磁気ディスク、コンパクトディスク、リード・オンリ・メモリ(Read-Only Memory、ROM)、またはランダム・アクセス・メモリ(Random Access Memory、RAM)を含み得る。
【0113】
上記で開示されているのは、単に本発明の実施形態であり、もちろん本発明の保護範囲を限定するように意図されていない。この技術分野の当業者は、上述の実施形態を実装するプロセスのすべてまたはいくつかと本発明の請求項に従ってなされる等価な変更とが本発明の範囲内に入ることを理解し得る。
【符号の説明】
【0114】
10 メモリコントローラ
11 メディアコントローラ
12 NVM
100 バッファ空間
101 レシーバ
102 キャッシュコントローラ
103 トランスミッタ
110 バッファ空間
111 レシーバ
112 キャッシュコントローラ
113 トランスミッタ
図1
図2a
図2b
図2c
図2d
図2e
図3