(57)【特許請求の範囲】
【請求項１】
メモリとプロセッサとを含むデータバックアップ装置であり、前記メモリは、揮発性メモリユニットと、不揮発性メモリユニットと、マイクロプロセッサと、バックアップ電源とを含むデータバックアップ装置であって、
前記揮発性メモリユニットは、M個のキャッシュブロックセットを含み、各キャッシュブロックセットは、N個のキャッシュブロックを含み、M≧1、N＞1であり、各キャッシュブロックは、アクセス順序識別子を有し、前記アクセス順序識別子は、キャッシュブロックがキャッシュブロックセット内でアクセスされる順序を示すために使用され、前記M個のキャッシュブロックセットの全てのキャッシュブロックセット内で同じアクセス順序を有するキャッシュブロックは、同じアクセス順序識別子を有し、
前記データバックアップ装置が時点T0において電源オンになった後に、前記プロセッサは、前記不揮発性メモリユニット内にバックアップされたデータを前記揮発性メモリユニットに回復し、前記揮発性メモリユニット上でデータ操作を実行し、現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初にアクセスされる場合、前記現在のデータ操作に対応する前記キャッシュブロックが生存キャッシュブロックであると決定し、前記時点T0において前記現在のデータ操作に対応する前記キャッシュブロックの初期アクセス順序識別子に対応する生存キャッシュブロックをカウントし、前記現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初に追い出される場合、前記現在のデータ操作に対応する前記キャッシュブロックが死亡キャッシュブロックであると決定し、前記時点T0において前記現在のデータ操作に対応する前記キャッシュブロックの初期アクセス順序識別子に対応する死亡キャッシュブロックをカウントするように構成され、
前記データバックアップ装置が時点T1において電源オフになった後に、前記マイクロプロセッサは、前記メモリに給電するために前記バックアップ電源を開始し、前記時点T0における前記初期アクセス順序識別子に対応する前記死亡キャッシュブロックの数量及び前記時点T0における前記初期アクセス順序識別子に対応する前記生存キャッシュブロックの数量に従って、前記時点T0における各初期アクセス順序識別子に対応するキャッシュブロック状態比を計算し、前記時点T0における各初期アクセス順序識別子に対応するキャッシュブロック状態比を予め設定された閾値と比較し、前記時点T0における各初期アクセス順序識別子に対応する比較結果に従って、前記時点T0における初期アクセス順序識別子ごとに、前記不揮発性メモリユニット内の同じ初期アクセス順序識別子を有するキャッシュブロックのそれぞれが前記時点T1において生存キャッシュブロックであるか死亡キャッシュブロックであるかを予測し、前記生存キャッシュブロックであると予測されたキャッシュブロックのデータを前記不揮発性メモリユニットにバックアップするように構成されるデータバックアップ装置。
【請求項２】
各キャッシュブロックは、状態識別子で構成され、前記不揮発性メモリユニット内にバックアップされた前記データを前記揮発性メモリユニットに回復した後に、前記プロセッサは、前記揮発性メモリユニット内の各キャッシュブロックの状態識別子を未サンプリングであるように設定し、いずれかのカウントを実行した後に、前記現在のデータ操作に対応するキャッシュブロックの状態識別子を、前記キャッシュブロックがサンプリング済であることに変更するように更に構成され、
前記プロセッサは、前記現在のデータ操作に対応する前記キャッシュブロックがアクセスされ、前記現在のデータ操作に対応する前記キャッシュブロックの前記状態識別子が未サンプリングである場合、前記現在のデータ操作に対応する前記キャッシュブロックが電源オンの後に最初にアクセスされると決定するか、或いは、前記現在のデータ操作に対応する前記キャッシュブロックが追い出され、前記現在のデータ操作に対応する前記キャッシュブロックの前記状態識別子が未サンプリングである場合、前記現在のデータ操作に対応する前記キャッシュブロックが電源オンの後に最初に追い出されると決定するように更に構成される、請求項１に記載のデータバックアップ装置。
【請求項３】
前記時点T0における各初期アクセス順序識別子に対応する比較結果に従って、前記時点T0における初期アクセス順序識別子ごとに、前記不揮発性メモリユニット内の同じ初期アクセス順序識別子を有するキャッシュブロックのそれぞれが前記時点T1において生存キャッシュブロックであるか死亡キャッシュブロックであるかを予測する間に、前記マイクロプロセッサは、
前記時点T0における前記N個の初期アクセス順序識別子のうち第１アクセス順序識別子に対応する比較結果が前記予め設定された閾値より小さくない場合、前記第１アクセス順序識別子を有するキャッシュブロックが前記死亡キャッシュブロックであると予測し、
前記時点T0における前記N個の初期アクセス順序識別子のうち第２アクセス順序識別子に対応する比較結果が前記予め設定された閾値より小さい場合、前記第２アクセス順序識別子を有するキャッシュブロックが前記生存キャッシュブロックであると予測するように構成される、請求項１又は２に記載のデータバックアップ装置。
【請求項４】
各キャッシュブロックは、有効ブロック識別子とダーティブロック識別子とを更に含み、前記有効ブロック識別子は、前記キャッシュブロックが有効であるか否かを識別するために使用され、前記ダーティブロック識別子は、前記キャッシュブロックがダーティブロックであるか否かを識別するために使用され、
前記第１アクセス順序識別子を有するキャッシュブロックが前記死亡キャッシュブロックであると予測した後に、前記マイクロプロセッサは、前記第１アクセス順序識別子を有しており、前記死亡キャッシュブロックであると予測されたキャッシュブロックの中で、ダーティブロック識別子が有効であるキャッシュブロックが前記生存キャッシュブロックであると更に決定し、
前記第２アクセス順序識別子を有するキャッシュブロックが前記生存キャッシュブロックであると予測した後に、前記マイクロプロセッサは、前記第２アクセス順序識別子を有しており、前記生存キャッシュブロックであると予測されたキャッシュブロックの中で、有効ブロック識別子が無効であるキャッシュブロックが前記死亡キャッシュブロックであると更に決定する、請求項３に記載のデータバックアップ装置。
【請求項５】
前記マイクロプロセッサにより、前記生存キャッシュブロックであると予測されたキャッシュブロックのデータを前記不揮発性メモリユニットにバックアップすることは、前記マイクロプロセッサにより、前記死亡キャッシュブロックであると予測されたキャッシュブロックについての情報を死亡キャッシュブロック記録テーブルに記録し、前記死亡キャッシュブロック記録テーブルに記録された、前記死亡キャッシュブロックであると予測された前記キャッシュブロックについての前記情報に従って、現在のバックアップ対象のキャッシュブロックが前記死亡キャッシュブロックであると予測されたキャッシュブロックであるか、前記生存キャッシュブロックであると予測されたキャッシュブロックであるかを決定し、前記現在のバックアップ対象のキャッシュブロックが前記生存キャッシュブロックであると予測されたキャッシュブロックである場合、前記現在のバックアップ対象のキャッシュブロック内のデータをバックアップするか、或いは、前記現在のバックアップ対象のキャッシュブロックが前記死亡キャッシュブロックであると予測されたキャッシュブロックである場合、前記現在のバックアップ対象のキャッシュブロック内のデータのバックアップをスキップすることを含む、請求項１乃至４のうちいずれか１項に記載のデータバックアップ装置。
【請求項６】
前記予め設定された閾値は0.5である、請求項５に記載のデータバックアップ装置。
【請求項７】
メモリとプロセッサとを含むデータバックアップ装置であり、前記メモリは、揮発性メモリユニットと、不揮発性メモリユニットと、マイクロプロセッサと、バックアップ電源とを含むデータバックアップ装置であって、
前記揮発性メモリユニットは、M個のキャッシュブロックセットを含み、各キャッシュブロックセットは、N個のキャッシュブロックを含み、M≧1、N＞1であり、各キャッシュブロックは、アクセス順序識別子を有し、前記アクセス順序識別子は、キャッシュブロックがキャッシュブロックセット内でアクセスされる順序を示すために使用され、前記M個のキャッシュブロックセットの全てのキャッシュブロックセット内で同じアクセス順序を有するキャッシュブロックは、同じアクセス順序識別子を有し、
前記データバックアップ装置が時点T0において電源オンになった後に、前記プロセッサは、前記不揮発性メモリユニット内にバックアップされたデータを前記揮発性メモリユニットに回復し、前記揮発性メモリユニット上でデータ操作を実行し、現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初にアクセスされる場合、前記現在のデータ操作に対応する前記キャッシュブロックが生存キャッシュブロックであると決定し、前記時点T0において前記現在のデータ操作に対応する前記キャッシュブロックの初期アクセス順序識別子に対応する生存キャッシュブロックをカウントし、前記現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初に追い出される場合、前記現在のデータ操作に対応する前記キャッシュブロックが死亡キャッシュブロックであると決定し、前記時点T0において前記現在のデータ操作に対応する前記キャッシュブロックの初期アクセス順序識別子に対応する死亡キャッシュブロックをカウントするように構成され、
前記データバックアップ装置が時点T1において電源オフになった後に、前記マイクロプロセッサは、前記メモリに給電するために前記バックアップ電源を開始し、前記時点T0における前記初期アクセス順序識別子に対応する前記死亡キャッシュブロックの数量及び前記時点T0における前記初期アクセス順序識別子に対応する前記生存キャッシュブロックの数量に従って、前記時点T0における各初期アクセス順序識別子に対応するキャッシュブロック状態比を計算し、前記時点T0における前記N個の初期アクセス順序識別子と、前記時点T0における前記N個の初期アクセス順序識別子にそれぞれ対応する前記計算されたキャッシュブロック状態比との間の関係に従って、共通アクセス順序識別子と共通比との間の共通関係を確立し、前記共通関係に従って、前記共通比が1対2であるときの対応する共通アクセス順序識別子を決定し、前記時点T0における各初期アクセス順序識別子を前記決定された共通アクセス順序識別子と比較し、前記時点T0における各初期アクセス順序識別子に対応する比較結果に従って、前記時点T0における初期アクセス順序識別子ごとに、前記不揮発性メモリユニット内の同じ初期アクセス順序識別子を有するキャッシュブロックのそれぞれが時点T1において生存キャッシュブロックであるか死亡キャッシュブロックであるかを予測し、前記生存キャッシュブロックであると予測されたキャッシュブロックのデータを前記不揮発性メモリユニットにバックアップするように構成され、前記時点T1は、前記データバックアップ装置が電源オフになった時点であるデータバックアップ装置。
【請求項８】
各キャッシュブロックは、状態識別子で構成され、前記不揮発性メモリユニット内にバックアップされた前記データを前記揮発性メモリユニットに回復した後に、前記プロセッサは、前記揮発性メモリユニット内の各キャッシュブロックの状態識別子を未サンプリングであるように設定し、いずれかのカウントを実行した後に、前記現在のデータ操作に対応するキャッシュブロックの状態識別子を、前記キャッシュブロックがサンプリング済であることに変更するように更に構成され、
前記プロセッサは、前記現在のデータ操作に対応する前記キャッシュブロックがアクセスされ、前記現在のデータ操作に対応する前記キャッシュブロックの前記状態識別子が未サンプリングである場合、前記現在のデータ操作に対応する前記キャッシュブロックが電源オンの後に最初にアクセスされると決定するか、或いは、前記現在のデータ操作に対応する前記キャッシュブロックが追い出され、前記現在のデータ操作に対応する前記キャッシュブロックの前記状態識別子が未サンプリングである場合、前記現在のデータ操作に対応する前記キャッシュブロックが電源オンの後に最初に追い出されると決定するように更に構成される、請求項７に記載のデータバックアップ装置。
【請求項９】
前記時点T0における各初期アクセス順序識別子に対応する比較結果に従って、前記不揮発性メモリユニット内のキャッシュブロックが前記時点T1において前記生存キャッシュブロックであるか前記死亡キャッシュブロックであるかを予測する間に、前記マイクロプロセッサは、
前記時点T0における前記N個の初期アクセス順序識別子のうち第１アクセス順序識別子に対応する比較結果が前記決定された共通アクセス順序識別子より小さくない場合、前記第１アクセス順序識別子を有するキャッシュブロックが前記死亡キャッシュブロックであると予測し、
前記時点T0における前記N個の初期アクセス順序識別子のうち第２アクセス順序識別子に対応する比較結果が前記決定された共通アクセス順序識別子より小さい場合、前記第２アクセス順序識別子を有するキャッシュブロックが前記生存キャッシュブロックであると予測するように構成される、請求項７又は８に記載のデータバックアップ装置。
【請求項１０】
各キャッシュブロックは、有効ブロック識別子とダーティブロック識別子とを更に含み、前記有効ブロック識別子は、前記キャッシュブロックが有効であるか否かを識別するために使用され、前記ダーティブロック識別子は、前記キャッシュブロックがダーティブロックであるか否かを識別するために使用され、
前記第１アクセス順序識別子を有するキャッシュブロックが前記死亡キャッシュブロックであると予測した後に、前記マイクロプロセッサは、前記第１アクセス順序識別子を有しており、前記死亡キャッシュブロックであると予測されたキャッシュブロックの中で、ダーティブロック識別子が有効であるキャッシュブロックが前記生存キャッシュブロックであると更に決定し、
前記第２アクセス順序識別子を有するキャッシュブロックが前記生存キャッシュブロックであると予測した後に、前記マイクロプロセッサは、前記第２アクセス順序識別子を有しており、前記生存キャッシュブロックであると予測されたキャッシュブロックの中で、有効ブロック識別子が無効であるキャッシュブロックが前記死亡キャッシュブロックであると更に決定する、請求項９に記載のデータバックアップ装置。
【請求項１１】
前記マイクロプロセッサにより、前記生存キャッシュブロックであると予測されたキャッシュブロックのデータを前記不揮発性メモリユニットにバックアップすることは、前記マイクロプロセッサにより、前記死亡キャッシュブロックであると予測されたキャッシュブロックについての情報を死亡キャッシュブロック記録テーブルに記録し、前記死亡キャッシュブロック記録テーブルに記録された、前記死亡キャッシュブロックであると予測された前記キャッシュブロックについての前記情報に従って、現在のバックアップ対象のキャッシュブロックが前記死亡キャッシュブロックであると予測されたキャッシュブロックであるか、前記生存キャッシュブロックであると予測されたキャッシュブロックであるかを決定し、前記現在のバックアップ対象のキャッシュブロックが前記生存キャッシュブロックであると予測されたキャッシュブロックである場合、前記現在のバックアップ対象のキャッシュブロック内のデータをバックアップするか、或いは、前記現在のバックアップ対象のキャッシュブロックが前記死亡キャッシュブロックであると予測されたキャッシュブロックである場合、前記現在のバックアップ対象のキャッシュブロック内のデータのバックアップをスキップすることを含む、請求項７乃至１０のうちいずれか１項に記載のデータバックアップ装置。
【請求項１２】
データバックアップ装置に適用されるデータバックアップ方法であり、前記データバックアップ装置は、メモリを含み、前記メモリは、揮発性メモリユニットと、不揮発性メモリユニットと、バックアップ電源とを含むデータバックアップ方法であって、
前記揮発性メモリユニットは、M個のキャッシュブロックセットを含み、各キャッシュブロックセットは、N個のキャッシュブロックを含み、M≧1、N＞1であり、各キャッシュブロックは、アクセス順序識別子を有し、前記アクセス順序識別子は、キャッシュブロックがキャッシュブロックセット内でアクセスされる順序を示すために使用され、前記M個のキャッシュブロックセットの全てのキャッシュブロックセット内で同じアクセス順序を有するキャッシュブロックは、同じアクセス順序識別子を有し、
前記方法は、
前記データバックアップ装置が時点T0において電源オンになった後に、
前記不揮発性メモリユニット内にバックアップされたデータを前記揮発性メモリユニットに回復し、前記揮発性メモリユニット上でデータ操作を実行し、現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初にアクセスされる場合、前記現在のデータ操作に対応する前記キャッシュブロックが生存キャッシュブロックであると決定し、前記時点T0において前記現在のデータ操作に対応する前記キャッシュブロックの初期アクセス順序識別子に対応する生存キャッシュブロックをカウントし、前記現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初に追い出される場合、前記現在のデータ操作に対応する前記キャッシュブロックが死亡キャッシュブロックであると決定し、前記時点T0において前記現在のデータ操作に対応する前記キャッシュブロックの初期アクセス順序識別子に対応する死亡キャッシュブロックをカウントするステップと、
前記データバックアップ装置が時点T1において電源オフになった後に、
前記メモリに給電するために前記バックアップ電源を開始するステップと、
前記時点T0における前記初期アクセス順序識別子に対応する前記死亡キャッシュブロックの数量及び前記時点T0における前記初期アクセス順序識別子に対応する前記生存キャッシュブロックの数量に従って、前記時点T0における各初期アクセス順序識別子に対応するキャッシュブロック状態比を計算するステップと、
前記時点T0における各初期アクセス順序識別子に対応するキャッシュブロック状態比を予め設定された閾値と比較するステップと、
前記時点T0における各初期アクセス順序識別子に対応する比較結果に従って、前記時点T0における初期アクセス順序識別子ごとに、前記不揮発性メモリユニット内の同じ初期アクセス順序識別子を有するキャッシュブロックのそれぞれが前記時点T1において生存キャッシュブロックであるか死亡キャッシュブロックであるかを予測し、前記生存キャッシュブロックであると予測されたキャッシュブロックのデータを前記不揮発性メモリユニットにバックアップするステップと
を含むデータバックアップ方法。
【請求項１３】
各キャッシュブロックは、状態識別子で構成され、前記不揮発性メモリユニット内にバックアップされた前記データを前記揮発性メモリユニットに回復した後に、前記方法は、
前記揮発性メモリユニット内の各キャッシュブロックの状態識別子を未サンプリングであるように設定し、いずれかのカウントを実行した後に、前記現在のデータ操作に対応するキャッシュブロックの状態識別子をサンプリング済であるように変更するステップを更に含み、
前記現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初にアクセスされると決定することは、
前記現在のデータ操作に対応する前記キャッシュブロックがアクセスされ、前記現在のデータ操作に対応する前記キャッシュブロックの前記状態識別子が未サンプリングである場合、前記現在のデータ操作に対応する前記キャッシュブロックが電源オンの後に最初にアクセスされると決定することであり、
前記現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初に追い出されると決定することは、
前記現在のデータ操作に対応する前記キャッシュブロックが追い出され、前記現在のデータ操作に対応する前記キャッシュブロックの前記状態識別子が未サンプリングである場合、前記現在のデータ操作に対応する前記キャッシュブロックが電源オンの後に最初に追い出されると決定することを含む、請求項１２に記載のデータバックアップ方法。
【請求項１４】
前記時点T0における各初期アクセス順序識別子に対応する比較結果に従って、前記不揮発性メモリユニット内のキャッシュブロックが時点T1において前記生存キャッシュブロックであるか前記死亡キャッシュブロックであるかを予測することは、
前記時点T0における前記N個の初期アクセス順序識別子のうち第１アクセス順序識別子に対応する比較結果が予め設定された閾値より小さくない場合、前記第１アクセス順序識別子を有するキャッシュブロックが前記死亡キャッシュブロックであると予測し、或いは、
前記時点T0における前記N個の初期アクセス順序識別子のうち第２アクセス順序識別子に対応する比較結果が前記予め設定された閾値より小さい場合、前記第２アクセス順序識別子を有するキャッシュブロックが前記生存キャッシュブロックであると予測することを含む、請求項１２又は１３に記載のデータバックアップ方法。
【請求項１５】
各キャッシュブロックは、有効ブロック識別子とダーティブロック識別子とを更に含み、前記有効ブロック識別子は、前記キャッシュブロックが有効であるか否かを識別するために使用され、前記ダーティブロック識別子は、前記キャッシュブロックがダーティブロックであるか否かを識別するために使用され、
前記アクセス順序識別子を有するキャッシュブロックが前記死亡キャッシュブロックであると予測した後に、前記方法は、前記アクセス順序識別子を有しており、前記死亡キャッシュブロックであると予測されたキャッシュブロックの中で、ダーティブロック識別子が有効であるキャッシュブロックが前記生存キャッシュブロックであると決定するステップを更に含み、
前記アクセス順序識別子を有する前記キャッシュブロックが前記生存キャッシュブロックであると予測した後に、前記方法は、前記アクセス順序識別子を有しており、前記生存キャッシュブロックであると予測されたキャッシュブロックの中で、有効ブロック識別子が無効であるキャッシュブロックが前記死亡キャッシュブロックであると決定するステップを更に含む、請求項１４に記載のデータバックアップ方法。
【請求項１６】
前記生存キャッシュブロックであると予測されたキャッシュブロックのデータを前記不揮発性メモリユニットにバックアップするステップは、
前記死亡キャッシュブロックであると予測されたキャッシュブロックについての情報を死亡キャッシュブロック記録テーブルに記録し、前記死亡キャッシュブロック記録テーブルに記録された、前記死亡キャッシュブロックであると予測された前記キャッシュブロックについての前記情報に従って、現在のバックアップ対象のキャッシュブロックが前記死亡キャッシュブロックであると予測されたキャッシュブロックであるか、前記生存キャッシュブロックであると予測されたキャッシュブロックであるかを決定するステップと、
前記現在のバックアップ対象のキャッシュブロックが前記生存キャッシュブロックであると予測されたキャッシュブロックである場合、前記現在のバックアップ対象のキャッシュブロック内のデータをバックアップするステップ、又は、
前記現在のバックアップ対象のキャッシュブロックが前記死亡キャッシュブロックであると予測されたキャッシュブロックである場合、前記現在のバックアップ対象のキャッシュブロック内のデータのバックアップをスキップするステップと
を含む、請求項１２乃至１５のうちいずれか１項に記載のデータバックアップ方法。
【請求項１７】
前記予め設定された閾値は0.5である、請求項１４に記載のデータバックアップ方法。
【請求項１８】
データバックアップ装置に適用されるデータバックアップ方法であり、前記データバックアップ装置は、メモリを含み、前記メモリは、揮発性メモリユニットと、不揮発性メモリユニットと、バックアップ電源とを含むデータバックアップ方法であって、
前記揮発性メモリユニットは、M個のキャッシュブロックセットを含み、各キャッシュブロックセットは、N個のキャッシュブロックを含み、M≧1、N＞1であり、各キャッシュブロックは、アクセス順序識別子を有し、前記アクセス順序識別子は、キャッシュブロックがキャッシュブロックセット内でアクセスされる順序を示すために使用され、前記M個のキャッシュブロックセットの全てのキャッシュブロックセット内で同じアクセス順序を有するキャッシュブロックは、同じアクセス順序識別子を有し、
前記方法は、
前記データバックアップ装置が時点T0において電源オンになった後に、
前記不揮発性メモリユニット内にバックアップされたデータを前記揮発性メモリユニットに回復し、前記揮発性メモリユニット上でデータ操作を実行し、現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初にアクセスされる場合、前記現在のデータ操作に対応する前記キャッシュブロックが生存キャッシュブロックであると決定し、前記時点T0において前記現在のデータ操作に対応する前記キャッシュブロックの初期アクセス順序識別子に対応する生存キャッシュブロックをカウントするか、或いは、前記現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初に追い出される場合、前記現在のデータ操作に対応する前記キャッシュブロックが死亡キャッシュブロックであると決定し、前記時点T0において前記現在のデータ操作に対応する前記キャッシュブロックの初期アクセス順序識別子に対応する死亡キャッシュブロックをカウントするステップと、
前記データバックアップ装置が時点T1において電源オフになった後に、
前記メモリに給電するために前記バックアップ電源を開始するステップと、
前記時点T0における前記初期アクセス順序識別子に対応する前記死亡キャッシュブロックの数量及び前記時点T0における前記初期アクセス順序識別子に対応する前記生存キャッシュブロックの数量に従って、前記時点T0における各初期アクセス順序識別子に対応するキャッシュブロック状態比を計算するステップと、
前記時点T0における前記N個の初期アクセス順序識別子と、前記時点T0における前記N個の初期アクセス順序識別子にそれぞれ対応する前記計算されたキャッシュブロック状態比との間の関係に従って、共通アクセス順序識別子と共通比との間の共通関係を確立し、前記共通関係に従って、前記共通比が1対2であるときの対応する共通アクセス順序識別子を決定するステップと、
前記時点T0における各初期アクセス順序識別子を前記決定された共通アクセス順序識別子と比較し、前記時点T0における各初期アクセス順序識別子に対応する比較結果に従って、前記時点T0における初期アクセス順序識別子ごとに、前記不揮発性メモリユニット内の同じ初期アクセス順序識別子を有するキャッシュブロックのそれぞれが時点T1において生存キャッシュブロックであるか死亡キャッシュブロックであるかを予測し、前記生存キャッシュブロックであると予測されたキャッシュブロックのデータを前記不揮発性メモリユニットにバックアップするステップであり、前記時点T1は、前記データバックアップ装置が電源オフになった時点であるステップと
を含むデータバックアップ方法。
【請求項１９】
各キャッシュブロックは、状態識別子で構成され、前記不揮発性メモリユニット内にバックアップされた前記データを前記揮発性メモリユニットに回復した後に、前記方法は、
前記揮発性メモリユニット内の各キャッシュブロックの状態識別子を未サンプリングであるように設定し、いずれかのカウントを実行した後に、前記現在のデータ操作に対応するキャッシュブロックの状態識別子をサンプリング済に変更するステップを更に含み、
前記現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初にアクセスされると決定することは、
前記現在のデータ操作に対応する前記キャッシュブロックがアクセスされ、前記現在のデータ操作に対応する前記キャッシュブロックの前記状態識別子が未サンプリングである場合、前記現在のデータ操作に対応する前記キャッシュブロックが電源オンの後に最初にアクセスされると決定することであり、
前記現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初に追い出されると決定することは、
前記現在のデータ操作に対応する前記キャッシュブロックが追い出され、前記現在のデータ操作に対応する前記キャッシュブロックの前記状態識別子が未サンプリングである場合、前記現在のデータ操作に対応する前記キャッシュブロックが電源オンの後に最初に追い出されると決定することである、請求項１８に記載のデータバックアップ方法。
【請求項２０】
前記時点T0における各初期アクセス順序識別子に対応する比較結果に従って、前記不揮発性メモリユニット内のキャッシュブロックが時点T1において前記生存キャッシュブロックであるか前記死亡キャッシュブロックであるかを予測することは、
前記時点T0における前記N個の初期アクセス順序識別子のうち第１アクセス順序識別子に対応する比較結果が前記決定された共通アクセス順序識別子より小さくない場合、前記第１アクセス順序識別子を有するキャッシュブロックが前記死亡キャッシュブロックであると予測し、
前記時点T0における前記N個の初期アクセス順序識別子のうち第２アクセス順序識別子に対応する比較結果が前記決定された共通アクセス順序識別子より小さい場合、前記第２アクセス順序識別子を有するキャッシュブロックが前記生存キャッシュブロックであると予測することを含む、請求項１８又は１９に記載のデータバックアップ方法。
【請求項２１】
各キャッシュブロックは、有効ブロック識別子とダーティブロック識別子とを更に含み、前記有効ブロック識別子は、前記キャッシュブロックが有効であるか否かを識別するために使用され、前記ダーティブロック識別子は、前記キャッシュブロックがダーティブロックであるか否かを識別するために使用され、
前記アクセス順序識別子を有する前記キャッシュブロックが前記死亡キャッシュブロックであると予測した後に、前記方法は、前記アクセス順序識別子を有しており、前記死亡キャッシュブロックであると予測されたキャッシュブロックの中で、ダーティブロック識別子が有効であるキャッシュブロックが前記生存キャッシュブロックであると決定するステップを更に含み、
前記アクセス順序識別子を有する前記キャッシュブロックが前記生存キャッシュブロックであると予測した後に、前記方法は、前記アクセス順序識別子を有しており、前記生存キャッシュブロックであると予測されたキャッシュブロックの中で、有効ブロック識別子が無効であるキャッシュブロックが前記死亡キャッシュブロックであると決定するステップを更に含み、
各キャッシュブロックは、状態識別子で構成され、前記不揮発性メモリユニット内にバックアップされた前記データを前記揮発性メモリユニットに回復した後に、前記方法は、
前記揮発性メモリユニット内の各キャッシュブロックの状態識別子を未サンプリングであるように設定し、いずれかのカウントを実行した後に、前記現在のデータ操作に対応するキャッシュブロックの状態識別子を、前記キャッシュブロックがサンプリング済であることに変更するステップを更に含み、
前記現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初にアクセスされると決定することは、
前記現在のデータ操作に対応する前記キャッシュブロックがアクセスされ、前記現在のデータ操作に対応する前記キャッシュブロックの前記状態識別子が未サンプリングである場合、前記現在のデータ操作に対応する前記キャッシュブロックが電源オンの後に最初にアクセスされると決定することであり、
前記現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初に追い出されると決定することは、
前記現在のデータ操作に対応する前記キャッシュブロックが追い出され、前記現在のデータ操作に対応する前記キャッシュブロックの前記状態識別子が未サンプリングである場合、前記現在のデータ操作に対応する前記キャッシュブロックが電源オンの後に最初に追い出されると決定することである、請求項２０に記載のデータバックアップ方法。
【請求項２２】
前記生存キャッシュブロックであると予測されたキャッシュブロックのデータを前記不揮発性メモリユニットにバックアップするステップは、
前記死亡キャッシュブロックであると予測されたキャッシュブロックについての情報を死亡キャッシュブロック記録テーブルに記録し、前記死亡キャッシュブロック記録テーブルに記録された、前記死亡キャッシュブロックであると予測された前記キャッシュブロックについての前記情報に従って、現在のバックアップ対象のキャッシュブロックが前記死亡キャッシュブロックであると予測されたキャッシュブロックであるか、前記生存キャッシュブロックであると予測されたキャッシュブロックであるかを決定するステップと、
前記現在のバックアップ対象のキャッシュブロックが前記生存キャッシュブロックであると予測されたキャッシュブロックである場合、前記現在のバックアップ対象のキャッシュブロック内のデータをバックアップするステップ、又は、
前記現在のバックアップ対象のキャッシュブロックが前記死亡キャッシュブロックであると予測されたキャッシュブロックである場合、前記現在のバックアップ対象のキャッシュブロック内のデータのバックアップをスキップするステップを含む、請求項１８乃至２１のうちいずれか１項に記載のデータバックアップ方法。
【請求項２３】
メモリとプロセッサとを含むデータバックアップ装置であり、前記メモリは、揮発性メモリユニットと、不揮発性メモリユニットと、マイクロプロセッサと、バックアップ電源とを含むデータバックアップ装置であって、
前記揮発性メモリユニットは、M個のキャッシュブロックセットを含み、各キャッシュブロックセットは、N個のキャッシュブロックを含み、M≧1、N＞1であり、各キャッシュブロックは、アクセス順序識別子を有し、前記アクセス順序識別子は、キャッシュブロックがキャッシュブロックセット内でアクセスされる順序を示すために使用され、前記M個のキャッシュブロックセットの全てのキャッシュブロックセット内で同じアクセス順序を有するキャッシュブロックは、同じアクセス順序識別子を有し、
前記メモリは、
第１アドレッシングデバイス及び第２アドレッシングデバイスであり、前記第１アドレッシングデバイス及び前記第２アドレッシングデバイスの入力端は、共に各キャッシュブロックに接続される第１アドレッシングデバイス及び第２アドレッシングデバイスと、
カウントユニットであり、前記カウントユニットは、N個のカウンタグループを含み、前記N個のカウンタグループは、前記N個のアクセス順序識別子と１対１の対応にあり、各カウンタグループは、１つの第１カウンタと１つの第２カウンタとを含み、前記第１カウンタの入力端は、前記第１アドレッシングデバイスの出力端に接続され、前記第２カウンタの入力端は、前記第２アドレッシングデバイスの出力端に接続されるカウントユニットと
を更に含み、
前記データバックアップ装置が電源オンになった後に、
前記プロセッサは、前記不揮発性メモリユニット内にバックアップされたデータを前記揮発性メモリユニットに回復し、時点T0において各キャッシュブロックセット内の各キャッシュブロックの初期アクセス順序識別子を取得し、前記初期アクセス順序識別子を前記キャッシュブロックの最近使用ビットRUBに記録し、前記揮発性メモリユニット内の各キャッシュブロックの状態ビットを無効に設定するように構成され、前記時点T0は、前記データバックアップ装置が電源オンになった時点であり、
前記プロセッサは、前記揮発性メモリユニット上でデータ操作を実行し、現在のデータ操作に対応するキャッシュブロックの状態識別子が未サンプリングであり、前記データ操作に対応する前記キャッシュブロックがアクセスされると決定した場合、前記プロセッサは、前記現在のデータ操作に対応する前記キャッシュブロックが生存キャッシュブロックであると決定し、次に、前記現在のデータ操作に対応する前記キャッシュブロックのアドレスに従って、前記対応するキャッシュブロックを見つけるために前記第１アドレッシングデバイスを制御し、前記時点T0において前記見つかったキャッシュブロックのアクセス順序識別子を取得し、前記時点T0における前記取得されたアクセス順序識別子に従って、前記時点T0における前記アクセス順序識別子に対応する第１カウンタを取得し、前記第１カウンタ上でカウントを実行するように更に構成され、前記プロセッサは、前記キャッシュブロックの前記状態識別子を、サンプリング済に変更するか、或いは、前記現在のデータ操作に対応するキャッシュブロックの状態識別子が未サンプリングであり、前記データ操作に対応する前記キャッシュブロックが追い出されると決定した場合、前記現在のデータ操作に対応する前記キャッシュブロックが死亡キャッシュブロックであると決定し、前記第２アドレッシングデバイスは、前記現在のデータ操作に対応する前記キャッシュブロックのアドレスに従って、前記対応するキャッシュブロックを見つけ、前記時点T0における前記見つかったキャッシュブロックのアクセス順序識別子を取得し、前記時点T0における前記取得されたアクセス順序識別子に従って、前記時点T0における前記アクセス順序識別子に対応する第２カウンタを取得し、前記第２カウンタ上でカウントを実行し、前記プロセッサは、前記キャッシュブロックの前記状態識別子を、前記キャッシュブロックがサンプリング済であることに変更し、
前記メモリは、
前記N個のカウンタグループ内の第１カウンタの出力端にそれぞれ接続されたN個のシフト器と、
N個の比較器であり、各比較器は、カウンタグループ内の第２カウンタの出力端及び前記カウンタグループ内の第１カウンタに接続されたシフト器の出力端にそれぞれ接続された２つの入力端を有するN個の比較器と
を更に含み、
前記データバックアップ装置が電源オフになった後に、前記マイクロプロセッサは、前記メモリに給電するために前記バックアップ電源を開始するように構成され、各シフト器は、予め設定された閾値に従って、前記シフト器に接続された第１カウンタをシフトし、各比較器は、前記比較器に接続された第２カウンタからの入力と、前記比較器に接続されたシフト器からの入力とを比較し、前記マイクロプロセッサは、各アクセス順序識別子に対応する比較器の出力結果に従って、前記時点T0における初期アクセス順序識別子ごとに、前記不揮発性メモリユニット内の同じ初期アクセス順序識別子を有するキャッシュブロックのそれぞれが時点T1において前記生存キャッシュブロックであるか前記死亡キャッシュブロックであるかを予測し、前記生存キャッシュブロックであると予測されたキャッシュブロックのデータを前記不揮発性メモリユニットにバックアップし、前記時点T1は、前記データバックアップ装置が電源オフになった時点であるデータバックアップ装置。
【請求項２４】
前記第１アドレッシングデバイスは、第１データセレクタと第１デコーダとを含み、前記第２アドレッシングデバイスは、第２データセレクタと第２デコーダとを含み、前記第１データセレクタ及び前記第２データセレクタの入力端は、共に各キャッシュブロックに接続され、前記第１デコーダ及び前記第２デコーダの入力端は、それぞれ前記第１データセレクタ及び前記第２データセレクタの出力端に接続され、前記第１デコーダ及び前記第２デコーダの出力端は、それぞれ各カウンタグループ内の第１カウンタ及び第２カウンタの入力端に接続され、
前記現在のデータ操作に対応する前記キャッシュブロックが前記生存キャッシュブロックであると前記プロセッサが決定した場合、前記第１データセレクタは、前記現在のデータ操作に対応する前記キャッシュブロックの前記アドレスに従って、前記対応するキャッシュブロックを見つけ、前記時点T0における前記見つかったキャッシュブロックの前記アクセス順序識別子を取得し、前記第１デコーダは、前記アクセス順序識別子に対応する第１カウンタを取得するために、前記時点T0における前記取得されたアクセス順序識別子をデコードし、
前記現在のデータ操作に対応する前記キャッシュブロックが前記死亡キャッシュブロックであると前記プロセッサが決定した場合、前記第２データセレクタは、前記現在のデータ操作に対応する前記キャッシュブロックの前記アドレスに従って、前記対応するキャッシュブロックを見つけ、前記時点T0における前記見つかったキャッシュブロックの前記アクセス順序識別子を取得し、前記第２デコーダは、前記アクセス順序識別子に対応する第２カウンタを取得するために、前記時点T0における前記取得されたアクセス順序識別子をデコードし、次に、前記第２カウンタ上でカウントを実行する、請求項２３に記載のデータバックアップ装置。
【請求項２５】
プログラムコードを記憶したコンピュータ読み取り可能記憶媒体であって、
前記プログラムコードに含まれる命令は、請求項１２乃至１７のうちいずれか１項に記載の方法を実行するために使用されるコンピュータ読み取り可能記憶媒体。
【請求項２６】
プログラムコードを記憶したコンピュータ読み取り可能記憶媒体であって、
前記プログラムコードに含まれる命令は、請求項１８乃至２２のうちいずれか１項に記載の方法を実行するために使用されるコンピュータ読み取り可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データバックアップ技術の分野に関し、特にメモリデータバックアップ装置及び方法に関する。
【背景技術】
【０００２】
近年、大型マルチコアコンピューティングシステム（例えば、マルチコアGPU）の進展により、高密度且つ高性能オンチップキャッシュの要求が増加している。比較的高い漏れ電流及び比較的低い集積度のため、スタティックランダムアクセスメモリ（static  random  access  memory、SRAM）に基づく従来のキャッシュ構造は、高性能処理システムの進展を制限するボトルネックになっている。対照的に、新型の不揮発性メモリ（Nonvolatile  Memory、NVM）は、コンポーネントの抵抗を使用することによりデータを記憶し、理論的には、より高い集積度を達成し、極めて低い漏れ電流も達成することができ、したがって、従来のSRAMに取って代わる理想的な材料として考えられている。
【０００３】
しかし、NVMがキャッシュ材料として直接使用される場合、書き込み電力消費、書き込み待ち時間及び書き込み耐久性の問題が生じる可能性があり、これらは、高速キャッシュへのNVMの適用を制限する。SRAM及びNVMの双方を含むメモリ構造として、不揮発性SRAMは、作業モードでデータを記憶するためにSRAMを使用し、電力停止時にデータをNVMユニットにバックアップすることができる。しかし、電力停止後に、不揮発性SRAMは、データをバックアップするための電力を供給するために、比較的大きいオンチップエネルギー蓄積コンデンサを必要とし、このコンデンサは、比較的高いチップ面積オーバーヘッド及びコストオーバーヘッドをもたらす可能性がある。さらに、大きい記憶容量は、並列バックアップ処理において生成される高いピーク電流を伴い、これは、システム安定性を低減する。他方、直列バックアップ方式では、バックアップデータ量が増加すると共に、バックアップ時間が増加し、システム性能に影響を与え、バックアップ処理において比較的高いデータ冗長性を引き起こす。
【０００４】
既存のバックアップ方法では、図１に示すようなセグメンテーション並列圧縮アーキテクチャ（SPaC）が使用される。SRAM内のデータは、複数のセグメントに分割され、次に、圧縮モジュールがランレングス符号化を用いることによりデータの各セグメントを圧縮し、次に、圧縮されたデータがNVMユニットに記憶される。この圧縮バックアップ方法では、SRAM内の全てのデータが圧縮され、したがって、比較的高い程度のデータ冗長性が存在する。さらに、この方法が使用される場合、それぞれデータバックアップの前及びデータ回復の前に圧縮及び解凍操作が必要となる。したがって、データ量がより大きく増加すると、より長い圧縮及び解凍時間が必要となり、これは、システム性能に影響を与える。
【発明の概要】
【０００５】
本発明の実施例は、バックバップデータ量を低減し、バックアップ効率を改善するためのデータバックアップ装置及び方法を提供する。
【０００６】
本発明の実施例の第１態様は、データバックアップ装置を提供し、データバックアップ装置は、メモリとプロセッサとを含み、メモリは、揮発性メモリユニットと、不揮発性メモリユニットと、マイクロプロセッサと、バックアップ電源とを含み、
揮発性メモリユニットは、M個のキャッシュブロックセットを含み、各キャッシュブロックセットは、N個のキャッシュブロックを含み、M≧1、N＞1であり、各キャッシュブロックセットは、キャッシュブロックがキャッシュブロックセット内でアクセスされる順序を示すために、同じグループのN個のアクセス順序識別子を使用し、各キャッシュブロックのアクセス順序識別子は、キャッシュブロックがキャッシュブロックセット内でアクセスされる順序の変更と共に更新され、各キャッシュブロックは、状態識別子で更に構成され、各状態識別子は、キャッシュブロックがサンプリング済であるか否かを識別するために使用され、
データバックアップ装置は、カウントユニットを更に含み、カウントユニットは、N個のカウンタグループを含み、各カウンタグループは、１つの第１カウンタと１つの第２カウンタとを含み、N個のカウンタグループは、N個のアクセス順序識別子と１対１の対応にあり、
データバックアップ装置が電源オンになった後に、プロセッサは、不揮発性メモリユニット内にバックアップされたデータを揮発性メモリユニットに回復し、時点T0において各キャッシュブロックセット内の各キャッシュブロックの初期アクセス順序識別子を取得及び記録し、揮発性メモリユニット内の各キャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済でないことに設定するように構成され、時点T0は、データバックアップ装置が電源オンになった時点であり、プロセッサは、揮発性メモリユニット上でデータ操作を実行し、現在のデータ操作に対応するキャッシュブロックの状態識別子が、キャッシュブロックがサンプリング済でないことであり、データ操作に対応するキャッシュブロックがアクセスされる場合、現在のデータ操作に対応するキャッシュブロックが生存状態にあると決定し、時点T0において現在のデータ操作に対応するキャッシュブロックの初期アクセス順序識別子に対応する第１カウンタ上でカウントを実行するか、或いは、現在のデータ操作に対応するキャッシュブロックの状態識別子が、キャッシュブロックがサンプリング済でないことであり、データ操作に対応するキャッシュブロックが追い出される場合、現在のデータ操作に対応するキャッシュブロックが死亡状態にあると決定し、時点T0において現在のデータ操作に対応するキャッシュブロックの初期アクセス順序識別子に対応する第２カウンタ上でカウントを実行し、カウンタ上でのいずれかのカウントの後に、現在のデータ操作に対応するキャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済であることに変更するように構成され、
データバックアップ装置が電源オフになった後に、マイクロプロセッサは、メモリに給電するためにバックアップ電源を開始し、N個のカウンタグループのカウントを読み取り、時点T0における各初期アクセス順序識別子に対応するカウンタグループ内の第２カウンタのカウントの、時点T0における初期アクセス順序識別子に対応するカウンタグループ内にある第１カウンタ及び第２カウンタの和に対する比を計算し、時点T0における各初期アクセス順序識別子に対応する比を予め設定された閾値と比較し、時点T0における各初期アクセス順序識別子に対応する比較結果に従って、不揮発性メモリユニット内のキャッシュブロックが時点T1において生存状態にあるか死亡状態にあるかを予測し、生存状態にあると予測されたキャッシュブロックのデータを不揮発性メモリユニットにバックアップするように構成され、時点T1は、データバックアップ装置が電源オフになった時点である。
【０００７】
時点T0における各初期アクセス順序識別子に対応する比較結果に従って、不揮発性メモリユニット内のキャッシュブロックが時点T1において生存状態にあるか死亡状態にあるかを予測することは、
時点T0におけるN個の初期アクセス順序識別子のうちアクセス順序識別子に対応する比較結果が予め設定された閾値より小さくない場合、マイクロプロセッサにより、アクセス順序識別子を有するキャッシュブロックが死亡状態にあると予測すること、又は
時点T0におけるN個の初期アクセス順序識別子のうちアクセス順序識別子に対応する比較結果が予め設定された閾値より大きくない場合、マイクロプロセッサにより、アクセス順序識別子を有するキャッシュブロックが生存状態にあると予測することを含む。
【０００８】
さらに、本発明の実施例の第１態様によれば、各キャッシュブロックは、有効ブロック識別子とダーティブロック識別子とを更に含み、有効ブロック識別子は、キャッシュブロックが有効であるか否かを識別するために使用され、ダーティブロック識別子は、キャッシュブロックがダーティブロックであるか否かを識別するために使用され、
アクセス順序識別子を有するキャッシュブロックが死亡状態にあると予測した後に、マイクロプロセッサは、アクセス順序識別子を有しており、死亡状態にあると予測されたキャッシュブロックの中で、ダーティブロック識別子が有効であるキャッシュブロックが生存状態にあると更に決定し、
アクセス順序識別子を有するキャッシュブロックが生存状態にあると予測した後に、マイクロプロセッサは、アクセス順序識別子を有しており、生存状態にあると予測されたキャッシュブロックの中で、有効ブロック識別子が無効であるキャッシュブロックが死亡状態にあると更に決定する。
【０００９】
さらに、本発明の実施例の第１態様によれば、マイクロプロセッサにより、生存状態にあると予測されたキャッシュブロックのデータを不揮発性メモリユニットにバックアップすることは、マイクロプロセッサにより、死亡状態にあると予測されたキャッシュブロックについての情報を死亡キャッシュブロック記録テーブルに記録し、死亡キャッシュブロック記録テーブルに記録された、死亡状態にあると予測されたキャッシュブロックについての情報に従って、現在のバックアップ対象のキャッシュブロックが死亡状態にあると予測されたキャッシュブロックであるか、生存状態にあると予測されたキャッシュブロックであるかを決定し、現在のバックアップ対象のキャッシュブロックが生存状態にあると予測されたキャッシュブロックである場合、現在のバックアップ対象のキャッシュブロック内のデータをバックアップするか、或いは、現在のバックアップ対象のキャッシュブロックが死亡状態にあると予測されたキャッシュブロックである場合、現在のバックアップ対象のキャッシュブロック内のデータのバックアップをスキップすることを含む。
【００１０】
さらに、本発明の実施例の第１態様によれば、予め設定された閾値は0.5である。
【００１１】
本発明の実施例の第２態様は、データバックアップ装置を提供し、データバックアップ装置は、メモリとプロセッサとを含み、メモリは、揮発性メモリユニットと、不揮発性メモリユニットと、マイクロプロセッサと、バックアップ電源とを含み、
揮発性メモリユニットは、M個のキャッシュブロックセットを含み、各キャッシュブロックセットは、N個のキャッシュブロックを含み、M≧1、N＞1であり、各キャッシュブロックセットは、キャッシュブロックがキャッシュブロックセット内でアクセスされる順序を示すために、同じグループのN個のアクセス順序識別子を使用し、各キャッシュブロックのアクセス順序識別子は、キャッシュブロックがキャッシュブロックセット内でアクセスされる順序の変更と共に更新され、各キャッシュブロックは、状態識別子で更に構成され、各状態識別子は、キャッシュブロックがサンプリング済であるか否かを識別するために使用され、
データバックアップ装置は、カウントユニットを更に含み、カウントユニットは、N個のカウンタグループを含み、各カウンタグループは、１つの第１カウンタと１つの第２カウンタとを含み、N個のカウンタグループは、N個のアクセス順序識別子と１対１の対応にあり、
データバックアップ装置が電源オンになった後に、プロセッサは、不揮発性メモリユニット内にバックアップされたデータを揮発性メモリユニットに回復し、時点T0において各キャッシュブロックセット内の各キャッシュブロックの初期アクセス順序識別子を取得及び記録し、揮発性メモリユニット内の各キャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済でないことに設定するように構成され、時点T0は、データバックアップ装置が電源オンになった時点であり、プロセッサは、揮発性メモリユニット上でデータ操作を実行し、現在のデータ操作に対応するキャッシュブロックの状態識別子が、キャッシュブロックがサンプリング済でないことであり、データ操作に対応するキャッシュブロックがアクセスされる場合、現在のデータ操作に対応するキャッシュブロックが生存状態にあると決定し、時点T0において現在のデータ操作に対応するキャッシュブロックの初期アクセス順序識別子に対応する第１カウンタ上でカウントを実行するか、或いは、現在のデータ操作に対応するキャッシュブロックの状態識別子が、キャッシュブロックがサンプリング済でないことであり、データ操作に対応するキャッシュブロックが追い出される場合、現在のデータ操作に対応するキャッシュブロックが死亡状態にあると決定し、時点T0において現在のデータ操作に対応するキャッシュブロックの初期アクセス順序識別子に対応する第２カウンタ上でカウントを実行し、カウンタ上でのいずれかのカウントの後に、現在のデータ操作に対応するキャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済であることに変更するように構成され、
データバックアップ装置が電源オフになった後に、マイクロプロセッサは、メモリに給電するためにバックアップ電源を開始し、N個のカウンタグループのカウントを読み取り、時点T0における各初期アクセス順序識別子に対応するカウンタグループ内の第２カウンタのカウントの、時点T0における初期アクセス順序識別子に対応するカウンタグループ内にある第１カウンタ及び第２カウンタの和に対する比を計算し、時点T0におけるN個の初期アクセス順序識別子にそれぞれ対応する比に従って、比が1対2であるときの対応するアクセス順序識別子閾値を決定し、時点T0における各初期アクセス順序識別子をアクセス順序識別子閾値と比較し、時点T0における各初期アクセス順序識別子に対応する比較結果に従って、不揮発性メモリユニット内のキャッシュブロックが時点T1において生存状態にあるか死亡状態にあるかを予測し、生存状態にあると予測されたキャッシュブロックのデータを不揮発性メモリユニットにバックアップするように構成され、時点T1は、データバックアップ装置が電源オフになった時点である。
【００１２】
さらに、本発明の実施例の第２態様によれば、時点T0における各初期アクセス順序識別子に対応する比較結果に従って、不揮発性メモリユニット内のキャッシュブロックが時点T1において生存状態にあるか死亡状態にあるかを予測することは、
時点T0におけるN個の初期アクセス順序識別子のうちアクセス順序識別子に対応する比較結果がアクセス順序識別子閾値より小さくない場合、マイクロプロセッサにより、アクセス順序識別子を有するキャッシュブロックが死亡状態にあると予測すること、又は
時点T0におけるN個の初期アクセス順序識別子のうちアクセス順序識別子に対応する比較結果がアクセス順序識別子閾値より大きくない場合、マイクロプロセッサにより、アクセス順序識別子を有するキャッシュブロックが生存状態にあると予測することを含む。
【００１３】
さらに、本発明の実施例の第２態様によれば、各キャッシュブロックは、有効ブロック識別子とダーティブロック識別子とを更に含み、有効ブロック識別子は、キャッシュブロックが有効であるか否かを識別するために使用され、ダーティブロック識別子は、キャッシュブロックがダーティブロックであるか否かを識別するために使用され、アクセス順序識別子を有するキャッシュブロックが死亡状態にあると予測した後に、マイクロプロセッサは、アクセス順序識別子を有しており、死亡状態にあると予測されたキャッシュブロックの中で、ダーティブロック識別子が有効であるキャッシュブロックが生存状態にあると更に決定し、
アクセス順序識別子を有するキャッシュブロックが生存状態にあると予測した後に、マイクロプロセッサは、アクセス順序識別子を有しており、生存状態にあると予測されたキャッシュブロックの中で、有効ブロック識別子が無効であるキャッシュブロックが死亡状態にあると更に決定する。
【００１４】
さらに、本発明の実施例の第２態様によれば、マイクロプロセッサにより、生存状態にあると予測されたキャッシュブロックのデータを不揮発性メモリユニットにバックアップすることは、マイクロプロセッサにより、死亡状態にあると予測されたキャッシュブロックについての情報を死亡キャッシュブロック記録テーブルに記録し、死亡キャッシュブロック記録テーブルに記録された、死亡状態にあると予測されたキャッシュブロックについての情報に従って、現在のバックアップ対象のキャッシュブロックが死亡状態にあると予測されたキャッシュブロックであるか、生存状態にあると予測されたキャッシュブロックであるかを決定し、現在のバックアップ対象のキャッシュブロックが生存状態にあると予測されたキャッシュブロックである場合、現在のバックアップ対象のキャッシュブロック内のデータをバックアップするか、或いは、現在のバックアップ対象のキャッシュブロックが死亡状態にあると予測されたキャッシュブロックである場合、現在のバックアップ対象のキャッシュブロック内のデータのバックアップをスキップすることを含む。
【００１５】
本発明の実施例の第３態様は、データバックアップ装置を提供し、データバックアップ装置は、メモリとプロセッサとを含み、メモリは、揮発性メモリユニットと、不揮発性メモリユニットと、マイクロプロセッサと、バックアップ電源とを含み、
揮発性メモリユニットは、M個のキャッシュブロックセットを含み、各キャッシュブロックセットは、N個のキャッシュブロックを含み、M≧1、N＞1であり、各キャッシュブロックセットは、キャッシュブロックがキャッシュブロックセット内でアクセスされる順序を示すために、同じグループのN個のアクセス順序識別子を使用し、各キャッシュブロックのアクセス順序識別子は、キャッシュブロックがキャッシュブロックセット内でアクセスされる順序の変更と共に更新され、各キャッシュブロックは、最近使用ビットRUBと状態ビットとを含み、最近使用ビットRUBは、キャッシュブロックのアクセス順序識別子を記憶するために使用され状態ビットは、状態識別子を記憶し、状態識別子は、キャッシュブロックがサンプリング済であるか否かを識別し、
メモリは、
第１アドレッシングデバイス及び第２アドレッシングデバイスであり、第１アドレッシングデバイス及び第２アドレッシングデバイスの入力端は、共に各キャッシュブロックに接続される第１アドレッシングデバイス及び第２アドレッシングデバイスと、
カウントユニットであり、カウントユニットは、N個のカウンタグループを含み、N個のカウンタグループは、N個のアクセス順序識別子と１対１の対応にあり、各カウンタグループは、１つの第１カウンタと１つの第２カウンタとを含み、第１カウンタの入力端は、第１アドレッシングデバイスの出力端に接続され、第２カウンタの入力端は、第２アドレッシングデバイスの出力端に接続されるカウントユニットと
を更に含み、
データバックアップ装置が電源オンになった後に、
プロセッサは、不揮発性メモリユニット内にバックアップされたデータを揮発性メモリユニットに回復し、時点T0において各キャッシュブロックセット内の各キャッシュブロックの初期アクセス順序識別子を取得し、初期アクセス順序識別子をキャッシュブロックの最近使用ビットRUBに記録し、揮発性メモリユニット内の各キャッシュブロックの状態ビットを無効に設定するように構成され、時点T0は、データバックアップ装置が電源オンになった時点であり、
プロセッサは、揮発性メモリユニット上でデータ操作を実行し、現在のデータ操作に対応するキャッシュブロックの状態識別子が、キャッシュブロックがサンプリング済でないことであり、データ操作に対応するキャッシュブロックがアクセスされると決定した場合、プロセッサは、現在のデータ操作に対応するキャッシュブロックが生存状態にあると決定し、次に、現在のデータ操作に対応するキャッシュブロックのアドレスに従って、対応するキャッシュブロックを見つけるために第１アドレッシングデバイスを制御し、時点T0において見つかったキャッシュブロックのアクセス順序識別子を取得し、時点T0における取得されたアクセス順序識別子に従って、時点T0におけるアクセス順序識別子に対応する第１カウンタを取得し、第１カウンタ上でカウントを実行するように更に構成され、プロセッサは、キャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済であることに変更するか、或いは、現在のデータ操作に対応するキャッシュブロックの状態識別子が、キャッシュブロックがサンプリング済でないことであり、データ操作に対応するキャッシュブロックが追い出されると決定した場合、現在のデータ操作に対応するキャッシュブロックが死亡状態にあると決定し、第２アドレッシングデバイスは、現在のデータ操作に対応するキャッシュブロックのアドレスに従って、対応するキャッシュブロックを見つけ、時点T0における見つかったキャッシュブロックのアクセス順序識別子を取得し、時点T0における取得されたアクセス順序識別子に従って、時点T0におけるアクセス順序識別子に対応する第２カウンタを取得し、第２カウンタ上でカウントを実行し、プロセッサは、キャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済であることに変更し、
メモリは、
N個のカウンタグループ内の第１カウンタの出力端にそれぞれ接続されたN個のシフト器と、
N個の比較器であり、各比較器は、カウンタグループ内の第２カウンタの出力端及びカウンタグループ内の第１カウンタに接続されたシフト器の出力端にそれぞれ接続された２つの入力端を有するN個の比較器と
を更に含み、
データバックアップ装置が電源オフになった後に、マイクロプロセッサは、メモリに給電するためにバックアップ電源を開始するように構成され、各シフト器は、予め設定された閾値に従って、シフト器に接続された第１カウンタをシフトし、各比較器は、比較器に接続された第２カウンタからの入力と、比較器に接続されたシフト器からの入力とを比較し、マイクロプロセッサは、各アクセス順序識別子に対応する比較器の出力結果に従って、不揮発性メモリユニット内の各キャッシュブロックが時点T1において生存状態にあるか死亡状態にあるかを予測し、生存状態にあると予測されたキャッシュブロックのデータを不揮発性メモリユニットにバックアップし、時点T1は、データバックアップ装置が電源オフになった時点である。
【００１６】
本発明の実施例の第３態様では、第１アドレッシングデバイスは、第１データセレクタと第１デコーダとを含み、第２アドレッシングデバイスは、第２データセレクタと第２デコーダとを含み、第１データセレクタ及び第２データセレクタの入力端は、共に各キャッシュブロックに接続され、第１デコーダ及び第２デコーダの入力端は、それぞれ第１データセレクタ及び第２データセレクタの出力端に接続され、第１デコーダ及び第２デコーダの出力端は、それぞれ各カウンタグループ内の第１カウンタの入力端及びカウンタグループ内の第２カウンタの入力端に接続され、
現在のデータ操作に対応するキャッシュブロックが生存状態にあるとプロセッサが決定した場合、第１データセレクタは、現在のデータ操作に対応するキャッシュブロックのアドレスに従って、対応するキャッシュブロックを見つけ、時点T0における見つかったキャッシュブロックのアクセス順序識別子を取得し、第１デコーダは、アクセス順序識別子に対応する第１カウンタを取得するために、取得されたアクセス順序識別子をデコードするか、或いは、
現在のデータ操作に対応するキャッシュブロックが死亡状態にあるとプロセッサが決定した場合、第２データセレクタは、現在のデータ操作に対応するキャッシュブロックのアドレスに従って、対応するキャッシュブロックを見つけ、時点T0における見つかったキャッシュブロックのアクセス順序識別子を取得し、第２デコーダは、アクセス順序識別子に対応する第２カウンタを取得するために、時点T0における取得されたアクセス順序識別子をデコードし、次に、第２カウンタ上でカウントを実行する。
【００１７】
本発明の実施例の第４態様は、データバックアップ装置に適用されるデータバックアップ方法を提供し、データバックアップ装置は、メモリを含み、メモリは、揮発性メモリユニットと、不揮発性メモリユニットと、バックアップ電源とを含み、
揮発性メモリユニットは、M個のキャッシュブロックセットを含み、各キャッシュブロックセットは、N個のキャッシュブロックを含み、M≧1、N＞1であり、各キャッシュブロックセットは、キャッシュブロックがキャッシュブロックセット内でアクセスされる順序を示すために、同じグループのN個のアクセス順序識別子を使用し、各キャッシュブロックのアクセス順序識別子は、キャッシュブロックがキャッシュブロックセット内でアクセスされる順序の変更と共に更新され、各キャッシュブロックは、状態識別子で更に構成され、各状態識別子は、キャッシュブロックがサンプリング済であるか否かを識別するために使用され、
データバックアップ装置は、カウントユニットを更に含み、カウントユニットは、N個のカウンタグループを含み、各カウンタグループは、１つの第１カウンタと１つの第２カウンタとを含み、N個のカウンタグループは、N個のアクセス順序識別子と１対１の対応にあり、
この方法は、
データバックアップ装置が電源オンになった後に、
不揮発性メモリユニット内にバックアップされたデータを揮発性メモリユニットに回復し、時点T0において各キャッシュブロックセット内の各キャッシュブロックの初期アクセス順序識別子を取得及び記録し、揮発性メモリユニット内の各キャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済でないことに設定するステップであり、時点T0は、データバックアップ装置が電源オンになった時点であるステップと、
揮発性メモリユニット上でデータ操作を実行し、現在のデータ操作に対応するキャッシュブロックの状態識別子が、キャッシュブロックがサンプリング済でないことであり、データ操作に対応するキャッシュブロックがアクセスされる場合、現在のデータ操作に対応するキャッシュブロックが生存状態にあると決定し、時点T0において現在のデータ操作に対応するキャッシュブロックの初期アクセス順序識別子に対応する第１カウンタ上でカウントを実行し、現在のデータ操作に対応するキャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済であることに更新するか、或いは、現在のデータ操作に対応するキャッシュブロックの状態識別子が、キャッシュブロックがサンプリング済でないことであり、データ操作に対応するキャッシュブロックが追い出される場合、現在のデータ操作に対応するキャッシュブロックが死亡状態にあると決定し、時点T0において現在のデータ操作に対応するキャッシュブロックの初期アクセス順序識別子に対応する第２カウンタ上でカウントを実行し、現在のデータ操作に対応するキャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済であることに更新するステップと、
データバックアップ装置が電源オフになった後に、
メモリに給電するためにバックアップ電源を開始するステップと、
N個のカウンタグループのカウントを読み取り、時点T0における各初期アクセス順序識別子に対応するカウンタグループ内の第２カウンタのカウントの、時点T0における初期アクセス順序識別子に対応するカウンタグループ内にある第１カウンタ及び第２カウンタの和に対する比を計算するステップと、
時点T0における各初期アクセス順序識別子に対応する比を予め設定された閾値と比較し、時点T0における各初期アクセス順序識別子に対応する比較結果に従って、不揮発性メモリユニット内のキャッシュブロックが生存状態にあるか死亡状態にあるかを予測するステップであり、時点T1は、データバックアップ装置が電源オフになった時点であるステップと、
生存状態にあると予測されたキャッシュブロックのデータを不揮発性メモリユニットにバックアップするステップと
を含む。
【００１８】
さらに、本発明の実施例の第４態様によれば、時点T0における各初期アクセス順序識別子に対応する比較結果に従って、不揮発性メモリユニット内のキャッシュブロックが時点T1において生存状態にあるか死亡状態にあるかを予測するステップは、
時点T0におけるN個の初期アクセス順序識別子のうちアクセス順序識別子に対応する比較結果が予め設定された閾値より小さくない場合、アクセス順序識別子を有するキャッシュブロックが死亡状態にあると予測するステップ、又は
時点T0におけるN個の初期アクセス順序識別子のうちアクセス順序識別子に対応する比較結果が予め設定された閾値より大きくない場合、アクセス順序識別子を有するキャッシュブロックが生存状態にあると予測するステップを含む。
【００１９】
さらに、本発明の実施例の第４態様によれば、各キャッシュブロックは、有効ブロック識別子とダーティブロック識別子とを更に含み、有効ブロック識別子は、キャッシュブロックが有効であるか否かを識別するために使用され、ダーティブロック識別子は、キャッシュブロックがダーティブロックであるか否かを識別するために使用され、
アクセス順序識別子を有するキャッシュブロックが死亡状態にあると予測した後に、アクセス順序識別子を有しており、死亡状態にあると予測されたキャッシュブロックの中で、ダーティブロック識別子が有効であるキャッシュブロックが生存状態にあると更に決定され、
アクセス順序識別子を有するキャッシュブロックが生存状態にあると予測した後に、アクセス順序識別子を有しており、生存状態にあると予測されたキャッシュブロックの中で、有効ブロック識別子が無効であるキャッシュブロックが死亡状態にあると更に決定される。
【００２０】
さらに、本発明の実施例の第４態様によれば、生存状態にあると予測されたキャッシュブロックのデータを不揮発性メモリユニットにバックアップするステップは、
死亡状態にあると予測されたキャッシュブロックについての情報を死亡キャッシュブロック記録テーブルに記録し、死亡キャッシュブロック記録テーブルに記録された、死亡状態にあると予測されたキャッシュブロックについての情報に従って、現在のバックアップ対象のキャッシュブロックが死亡状態にあると予測されたキャッシュブロックであるか、生存状態にあると予測されたキャッシュブロックであるかを決定するステップと、
現在のバックアップ対象のキャッシュブロックが生存状態にあると予測されたキャッシュブロックである場合、現在のバックアップ対象のキャッシュブロック内のデータをバックアップするステップ、又は、
現在のバックアップ対象のキャッシュブロックが死亡状態にあると予測されたキャッシュブロックである場合、現在のバックアップ対象のキャッシュブロック内のデータのバックアップをスキップするステップと
を含む。
【００２１】
さらに、本発明の実施例の第４態様によれば、予め設定された閾値は0.5である。
【００２２】
本発明の実施例の第５態様は、データバックアップ装置に適用されるデータバックアップ方法を提供し、データバックアップ装置は、メモリを含み、メモリは、揮発性メモリユニットと、不揮発性メモリユニットと、バックアップ電源とを含み、
揮発性メモリユニットは、M個のキャッシュブロックセットを含み、各キャッシュブロックセットは、N個のキャッシュブロックを含み、M≧1、N＞1であり、各キャッシュブロックセットは、キャッシュブロックがキャッシュブロックセット内でアクセスされる順序を示すために、同じグループのN個のアクセス順序識別子を使用し、各キャッシュブロックのアクセス順序識別子は、キャッシュブロックがキャッシュブロックセット内でアクセスされる順序の変更と共に更新され、各キャッシュブロックは、状態識別子で更に構成され、各状態識別子は、キャッシュブロックがサンプリング済であるか否かを識別するために使用され、
データバックアップ装置は、カウントユニットを更に含み、カウントユニットは、N個のカウンタグループを含み、各カウンタグループは、１つの第１カウンタと１つの第２カウンタとを含み、N個のカウンタグループは、N個のアクセス順序識別子と１対１の対応にあり、
この方法は、
データバックアップ装置が電源オンになった後に、
不揮発性メモリユニット内にバックアップされたデータを揮発性メモリユニットに回復し、時点T0において各キャッシュブロックセット内の各キャッシュブロックの初期アクセス順序識別子を取得及び記録し、揮発性メモリユニット内の各キャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済でないことに設定するステップであり、時点T0は、データバックアップ装置が電源オンになった時点であるステップと、
揮発性メモリユニット上でデータ操作を実行し、現在のデータ操作に対応するキャッシュブロックの状態識別子が、キャッシュブロックがサンプリング済でないことであり、データ操作に対応するキャッシュブロックがアクセスされる場合、現在のデータ操作に対応するキャッシュブロックが生存状態にあると決定し、時点T0において現在のデータ操作に対応するキャッシュブロックの初期アクセス順序識別子に対応する第１カウンタ上でカウントを実行し、現在のデータ操作に対応するキャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済であることに更新するか、或いは、現在のデータ操作に対応するキャッシュブロックの状態識別子が、キャッシュブロックがサンプリング済でないことであり、データ操作に対応するキャッシュブロックが追い出される場合、現在のデータ操作に対応するキャッシュブロックが死亡状態にあると決定し、時点T0において現在のデータ操作に対応するキャッシュブロックの初期アクセス順序識別子に対応する第２カウンタ上でカウントを実行し、現在のデータ操作に対応するキャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済であることに更新するステップと、
データバックアップ装置が電源オフになった後に、
メモリに給電するためにバックアップ電源を開始するステップと、
N個のカウンタグループのカウントを読み取り、時点T0における各初期アクセス順序識別子に対応するカウンタグループ内の第２カウンタのカウントの、時点T0における初期アクセス順序識別子に対応するカウンタグループ内にある第１カウンタ及び第２カウンタの和に対する比を計算するステップと、
時点T0におけるN個の初期アクセス順序識別子にそれぞれ対応する比に従って、比が1対2であるときの対応するアクセス順序識別子閾値を決定し、時点T0における各初期アクセス順序識別子をアクセス順序識別子閾値と比較するステップと、
時点T0における各初期アクセス順序識別子に対応する比較結果に従って、不揮発性メモリユニット内のキャッシュブロックが生存状態にあるか死亡状態にあるかを予測するステップであり、時点T1は、データバックアップ装置が電源オフになった時点であるステップと、
生存状態にあると予測されたキャッシュブロックのデータを不揮発性メモリユニットにバックアップするステップと
を含む。
【００２３】
さらに、本発明の実施例の第５態様によれば、時点T0における各初期アクセス順序識別子に対応する比較結果に従って、不揮発性メモリユニット内のキャッシュブロックが時点T1において生存状態にあるか死亡状態にあるかを予測するステップは、
時点T0におけるN個の初期アクセス順序識別子のうちアクセス順序識別子に対応する比較結果がアクセス順序識別子閾値より小さくない場合、アクセス順序識別子を有するキャッシュブロックが死亡状態にあると予測するステップ、又は
時点T0におけるN個の初期アクセス順序識別子のうちアクセス順序識別子に対応する比較結果がアクセス順序識別子閾値より大きくない場合、アクセス順序識別子を有するキャッシュブロックが生存状態にあると予測するステップを含む。
【００２４】
さらに、本発明の実施例の第５態様によれば、各キャッシュブロックは、有効ブロック識別子とダーティブロック識別子とを更に含み、有効ブロック識別子は、キャッシュブロックが有効であるか否かを識別するために使用され、ダーティブロック識別子は、キャッシュブロックがダーティブロックであるか否かを識別するために使用され、
アクセス順序識別子を有するキャッシュブロックが死亡状態にあると予測した後に、アクセス順序識別子を有しており、死亡状態にあると予測されたキャッシュブロックの中で、ダーティブロック識別子が有効であるキャッシュブロックが生存状態にあると更に決定され、
アクセス順序識別子を有するキャッシュブロックが生存状態にあると予測した後に、アクセス順序識別子を有しており、生存状態にあると予測されたキャッシュブロックの中で、有効ブロック識別子が無効であるキャッシュブロックが死亡状態にあると更に決定される。
【００２５】
さらに、本発明の実施例の第５態様によれば、生存状態にあると予測されたキャッシュブロックのデータを不揮発性メモリユニットにバックアップするステップは、
死亡状態にあると予測されたキャッシュブロックについての情報を死亡キャッシュブロック記録テーブルに記録し、死亡キャッシュブロック記録テーブルに記録された、死亡状態にあると予測されたキャッシュブロックについての情報に従って、現在のバックアップ対象のキャッシュブロックが死亡状態にあると予測されたキャッシュブロックであるか、生存状態にあると予測されたキャッシュブロックであるかを決定するステップと、
現在のバックアップ対象のキャッシュブロックが生存状態にあると予測されたキャッシュブロックである場合、現在のバックアップ対象のキャッシュブロック内のデータをバックアップするステップ、又は、
現在のバックアップ対象のキャッシュブロックが死亡状態にあると予測されたキャッシュブロックである場合、現在のバックアップ対象のキャッシュブロック内のデータのバックアップをスキップするステップと
を含む。
【００２６】
本発明の実施例の第６態様は、メモリとプロセッサとを含むデータバックアップ装置を提供し、メモリは、揮発性メモリユニットと、不揮発性メモリユニットと、マイクロプロセッサと、バックアップ電源とを含み、
揮発性メモリユニットは、M個のキャッシュブロックセットを含み、各キャッシュブロックセットは、N個のキャッシュブロックを含み、M≧1、N＞1であり、各キャッシュブロックは、アクセス順序識別子を有し、アクセス順序識別子は、キャッシュブロックがキャッシュブロックセット内でアクセスされる順序を示すために使用され、M個のキャッシュブロックセットの全てのキャッシュブロックセット内で同じアクセス順序を有するキャッシュブロックは、同じアクセス順序識別子を有し、
データバックアップ装置が時点T0において電源オンになった後に、プロセッサは、不揮発性メモリユニット内にバックアップされたデータを揮発性メモリユニットに回復し、揮発性メモリユニット上でデータ操作を実行し、現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初にアクセスされる場合、現在のデータ操作に対応するキャッシュブロックが生存キャッシュブロックであると決定し、時点T0において現在のデータ操作に対応するキャッシュブロックの初期アクセス順序識別子に対応する生存キャッシュブロックをカウントするか、或いは、現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初に追い出される場合、現在のデータ操作に対応するキャッシュブロックが死亡キャッシュブロックであると決定し、時点T0において現在のデータ操作に対応するキャッシュブロックの初期アクセス順序識別子に対応する死亡キャッシュブロックをカウントするように構成され、
データバックアップ装置が時点T1において電源オフになった後に、マイクロプロセッサは、メモリに給電するためにバックアップ電源を開始し、時点T0における初期アクセス順序識別子に対応する死亡キャッシュブロックの数量及び時点T0における初期アクセス順序識別子に対応する生存キャッシュブロックの数量に従って、時点T0における各初期アクセス順序識別子に対応するキャッシュブロック状態比を計算し、時点T0における各初期アクセス順序識別子に対応するキャッシュブロック状態比を予め設定された閾値と比較し、時点T0における各初期アクセス順序識別子に対応する比較結果に従って、不揮発性メモリユニット内のキャッシュブロックが時点T1において生存キャッシュブロックであるか死亡キャッシュブロックであるかを予測し、生存状態にあると予測されたキャッシュブロックのデータを不揮発性メモリユニットにバックアップするように構成される。
【００２７】
さらに、本発明の実施例の第６態様によれば、各キャッシュブロックは、状態識別子で構成され、不揮発性メモリユニット内にバックアップされたデータを揮発性メモリユニットに回復した後に、プロセッサは、揮発性メモリユニット内の各キャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済でないことに設定し、いずれかのカウントの後に、現在のデータ操作に対応するキャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済であることに変更するように更に構成され、
プロセッサは、現在のデータ操作に対応するキャッシュブロックがアクセスされ、現在のデータ操作に対応するキャッシュブロックの状態識別子が、キャッシュブロックがサンプリング済でないことである場合、現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初にアクセスされると決定するか、或いは、現在のデータ操作に対応するキャッシュブロックが追い出され、現在のデータ操作に対応するキャッシュブロックの状態識別子が、キャッシュブロックがサンプリング済でないことである場合、現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初に追い出されると決定するように更に構成される。
【００２８】
さらに、本発明の実施例の第６態様によれば、時点T0における各初期アクセス順序識別子に対応する比較結果に従って、不揮発性メモリユニット内のキャッシュブロックが時点T1において生存キャッシュブロックであるか死亡キャッシュブロックであるかを予測する間に、マイクロプロセッサは、
時点T0におけるN個の初期アクセス順序識別子のうち第１アクセス順序識別子に対応する比較結果が予め設定された閾値より小さくない場合、第１アクセス順序識別子を有するキャッシュブロックが死亡状態にあると予測し、或いは、
時点T0におけるN個の初期アクセス順序識別子のうち第２アクセス順序識別子に対応する比較結果が予め設定された閾値より小さい場合、第２アクセス順序識別子を有するキャッシュブロックが生存状態にあると予測するように具体的に構成される。
【００２９】
さらに、本発明の実施例の第６態様によれば、各キャッシュブロックは、有効ブロック識別子とダーティブロック識別子とを更に含み、有効ブロック識別子は、キャッシュブロックが有効であるか否かを識別するために使用され、ダーティブロック識別子は、キャッシュブロックがダーティブロックであるか否かを識別するために使用され、
第１アクセス順序識別子を有するキャッシュブロックが死亡状態にあると予測した後に、マイクロプロセッサは、第１アクセス順序識別子を有しており、死亡状態にあると予測されたキャッシュブロックの中で、ダーティブロック識別子が有効であるキャッシュブロックが生存状態にあると更に決定し、
第２アクセス順序識別子を有するキャッシュブロックが生存状態にあると予測した後に、マイクロプロセッサは、第２アクセス順序識別子を有しており、生存状態にあると予測されたキャッシュブロックの中で、有効ブロック識別子が無効であるキャッシュブロックが死亡状態にあると更に決定する。
【００３０】
さらに、本発明の実施例の第６態様によれば、マイクロプロセッサにより、生存状態にあると予測されたキャッシュブロックのデータを不揮発性メモリユニットにバックアップすることは、マイクロプロセッサにより、死亡状態にあると予測されたキャッシュブロックについての情報を死亡キャッシュブロック記録テーブルに記録し、死亡キャッシュブロック記録テーブルに記録された、死亡状態にあると予測されたキャッシュブロックについての情報に従って、現在のバックアップ対象のキャッシュブロックが死亡状態にあると予測されたキャッシュブロックであるか、生存状態にあると予測されたキャッシュブロックであるかを決定し、現在のバックアップ対象のキャッシュブロックが生存状態にあると予測されたキャッシュブロックである場合、現在のバックアップ対象のキャッシュブロック内のデータをバックアップするか、或いは、現在のバックアップ対象のキャッシュブロックが死亡状態にあると予測されたキャッシュブロックである場合、現在のバックアップ対象のキャッシュブロック内のデータのバックアップをスキップすることを含む。
【００３１】
さらに、本発明の実施例の第６態様によれば、予め設定された閾値は0.5である。
【００３２】
本発明の実施例の第７態様は、データバックアップ装置を提供し、データバックアップ装置は、メモリとプロセッサとを含み、メモリは、揮発性メモリユニットと、不揮発性メモリユニットと、マイクロプロセッサと、バックアップ電源とを含み、
揮発性メモリユニットは、M個のキャッシュブロックセットを含み、各キャッシュブロックセットは、N個のキャッシュブロックを含み、M≧1、N＞1であり、各キャッシュブロックは、アクセス順序識別子を有し、アクセス順序識別子は、キャッシュブロックがキャッシュブロックセット内でアクセスされる順序を示すために使用され、M個のキャッシュブロックセットの全てのキャッシュブロックセット内で同じアクセス順序を有するキャッシュブロックは、同じアクセス順序識別子を有し、
データバックアップ装置が時点T0において電源オンになった後に、プロセッサは、不揮発性メモリユニット内にバックアップされたデータを揮発性メモリユニットに回復し、揮発性メモリユニット上でデータ操作を実行し、現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初にアクセスされる場合、現在のデータ操作に対応するキャッシュブロックが生存キャッシュブロックであると決定し、時点T0において現在のデータ操作に対応するキャッシュブロックの初期アクセス順序識別子に対応する生存キャッシュブロックをカウントするか、或いは、現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初に追い出される場合、現在のデータ操作に対応するキャッシュブロックが死亡キャッシュブロックであると決定し、時点T0において現在のデータ操作に対応するキャッシュブロックの初期アクセス順序識別子に対応する死亡キャッシュブロックをカウントするように構成され、
データバックアップ装置が時点T1において電源オフになった後に、マイクロプロセッサは、メモリに給電するためにバックアップ電源を開始し、時点T0における初期アクセス順序識別子に対応する死亡キャッシュブロックの数量及び時点T0における初期アクセス順序識別子に対応する生存キャッシュブロックの数量に従って、時点T0における各初期アクセス順序識別子に対応するキャッシュブロック状態比を計算し、時点T0におけるN個の初期アクセス順序識別子及び時点T0におけるN個の初期アクセス順序識別子にそれぞれ対応する計算された比に従って、共通アクセス順序識別子と共通比との間の共通関係を確立し、共通関係に従って、共通比が1対2であるときの対応する共通アクセス順序識別子を決定し、時点T0における各初期アクセス順序識別子を決定された共通アクセス順序識別子と比較し、時点T0における各初期アクセス順序識別子に対応する比較結果に従って、不揮発性メモリユニット内のキャッシュブロックが時点T1において生存状態にあるか死亡状態にあるかを予測し、生存状態にあると予測されたキャッシュブロックのデータを不揮発性メモリユニットにバックアップするように構成され、時点T1は、データバックアップ装置が電源オフになった時点である。
【００３３】
さらに、本発明の実施例の第７態様によれば、各キャッシュブロックは、状態識別子で構成され、不揮発性メモリユニット内にバックアップされたデータを揮発性メモリユニットに回復した後に、プロセッサは、揮発性メモリユニット内の各キャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済でないことに設定し、いずれかのカウントの後に、現在のデータ操作に対応するキャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済であることに変更するように更に構成され、
プロセッサは、現在のデータ操作に対応するキャッシュブロックがアクセスされ、現在のデータ操作に対応するキャッシュブロックの状態識別子が、キャッシュブロックがサンプリング済でないことである場合、現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初にアクセスされると決定するか、或いは、現在のデータ操作に対応するキャッシュブロックが追い出され、現在のデータ操作に対応するキャッシュブロックの状態識別子が、キャッシュブロックがサンプリング済でないことである場合、現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初に追い出されると決定するように更に構成される。
【００３４】
さらに、本発明の実施例の第７態様によれば、時点T0における各初期アクセス順序識別子に対応する比較結果に従って、不揮発性メモリユニット内のキャッシュブロックが時点T1において生存状態にあるか死亡状態にあるかを予測する間に、マイクロプロセッサは、
時点T0におけるN個の初期アクセス順序識別子のうち第１アクセス順序識別子に対応する比較結果が決定された共通アクセス順序識別子より小さくない場合、第１アクセス順序識別子を有するキャッシュブロックが死亡状態にあると予測し、
時点T0におけるN個の初期アクセス順序識別子のうち第２アクセス順序識別子に対応する比較結果が決定された共通アクセス順序識別子より小さい場合、アクセス順序識別子を有するキャッシュブロックが生存状態にあると予測するように具体的に構成される。
【００３５】
さらに、本発明の実施例の第７態様によれば、各キャッシュブロックは、有効ブロック識別子とダーティブロック識別子とを更に含み、有効ブロック識別子は、キャッシュブロックが有効であるか否かを識別するために使用され、ダーティブロック識別子は、キャッシュブロックがダーティブロックであるか否かを識別するために使用され、
第１アクセス順序識別子を有するキャッシュブロックが死亡状態にあると予測した後に、マイクロプロセッサは、第１アクセス順序識別子を有しており、死亡状態にあると予測されたキャッシュブロックの中で、ダーティブロック識別子が有効であるキャッシュブロックが生存状態にあると更に決定し、
第２アクセス順序識別子を有するキャッシュブロックが生存状態にあると予測した後に、マイクロプロセッサは、第２アクセス順序識別子を有しており、生存状態にあると予測されたキャッシュブロックの中で、有効ブロック識別子が無効であるキャッシュブロックが死亡状態にあると更に決定する。
【００３６】
さらに、本発明の実施例の第７態様によれば、マイクロプロセッサにより、生存状態にあると予測されたキャッシュブロックのデータを不揮発性メモリユニットにバックアップすることは、マイクロプロセッサにより、死亡状態にあると予測されたキャッシュブロックについての情報を死亡キャッシュブロック記録テーブルに記録し、死亡キャッシュブロック記録テーブルに記録された、死亡状態にあると予測されたキャッシュブロックについての情報に従って、現在のバックアップ対象のキャッシュブロックが死亡状態にあると予測されたキャッシュブロックであるか、生存状態にあると予測されたキャッシュブロックであるかを決定し、現在のバックアップ対象のキャッシュブロックが生存状態にあると予測されたキャッシュブロックである場合、現在のバックアップ対象のキャッシュブロック内のデータをバックアップするか、或いは、現在のバックアップ対象のキャッシュブロックが死亡状態にあると予測されたキャッシュブロックである場合、現在のバックアップ対象のキャッシュブロック内のデータのバックアップをスキップすることを含む。
【００３７】
本発明の実施例の第８態様は、データバックアップ装置に適用されるデータバックアップ方法を提供し、データバックアップ装置は、メモリを含み、メモリは、揮発性メモリユニットと、不揮発性メモリユニットと、バックアップ電源とを含み、
揮発性メモリユニットは、M個のキャッシュブロックセットを含み、各キャッシュブロックセットは、N個のキャッシュブロックを含み、M≧1、N＞1であり、各キャッシュブロックは、アクセス順序識別子を有し、アクセス順序識別子は、キャッシュブロックがキャッシュブロックセット内でアクセスされる順序を示すために使用され、M個のキャッシュブロックセットの全てのキャッシュブロックセット内で同じアクセス順序を有するキャッシュブロックは、同じアクセス順序識別子を有し、
この方法は、
データバックアップ装置が時点T0において電源オンになった後に、
不揮発性メモリユニット内にバックアップされたデータを揮発性メモリユニットに回復し、揮発性メモリユニット上でデータ操作を実行し、現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初にアクセスされる場合、現在のデータ操作に対応するキャッシュブロックが生存キャッシュブロックであると決定し、時点T0において現在のデータ操作に対応するキャッシュブロックの初期アクセス順序識別子に対応する生存キャッシュブロックをカウントするか、或いは、現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初に追い出される場合、現在のデータ操作に対応するキャッシュブロックが死亡キャッシュブロックであると決定し、時点T0において現在のデータ操作に対応するキャッシュブロックの初期アクセス順序識別子に対応する死亡キャッシュブロックをカウントするステップと、
データバックアップ装置が時点T1において電源オフになった後に、
メモリに給電するためにバックアップ電源を開始するステップと、
時点T0における初期アクセス順序識別子に対応する死亡キャッシュブロックの数量及び時点T0における初期アクセス順序識別子に対応する生存キャッシュブロックの数量に従って、時点T0における各初期アクセス順序識別子に対応するキャッシュブロック状態比を計算するステップと、
時点T0における各初期アクセス順序識別子に対応する比較結果に従って、不揮発性メモリユニット内のキャッシュブロックが時点T1において生存キャッシュブロックであるか死亡キャッシュブロックであるかを予測し、生存状態にあると予測されたキャッシュブロックのデータを不揮発性メモリユニットにバックアップするステップと
を含む。
【００３８】
さらに、本発明の実施例の第８態様によれば、各キャッシュブロックは、状態識別子で構成され、不揮発性メモリユニット内にバックアップされたデータを揮発性メモリユニットに回復した後に、この方法は、
揮発性メモリユニット内の各キャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済でないことに設定し、いずれかのカウントの後に、現在のデータ操作に対応するキャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済であることに変更するステップを更に含み、
現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初にアクセスされると決定することは、具体的には、
現在のデータ操作に対応するキャッシュブロックがアクセスされ、現在のデータ操作に対応するキャッシュブロックの状態識別子が、キャッシュブロックがサンプリング済でないことである場合、現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初にアクセスされると決定することであり、
現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初に追い出されると決定することは、具体的には、
現在のデータ操作に対応するキャッシュブロックが追い出され、現在のデータ操作に対応するキャッシュブロックの状態識別子が、キャッシュブロックがサンプリング済でないことである場合、現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初に追い出されると決定することである。
【００３９】
さらに、本発明の実施例の第８態様によれば、時点T0における各初期アクセス順序識別子に対応する比較結果に従って、不揮発性メモリユニット内のキャッシュブロックが時点T1において生存状態にあるか死亡状態にあるかを予測することは、
時点T0におけるN個の初期アクセス順序識別子のうち第１アクセス順序識別子に対応する比較結果が予め設定された閾値より小さくない場合、第１アクセス順序識別子を有するキャッシュブロックが死亡状態にあると予測し、或いは、
時点T0におけるN個の初期アクセス順序識別子のうち第２アクセス順序識別子に対応する比較結果が予め設定された閾値より小さい場合、第２アクセス順序識別子を有するキャッシュブロックが生存状態にあると予測することを含む。
【００４０】
さらに、本発明の実施例の第８態様によれば、各キャッシュブロックは、有効ブロック識別子とダーティブロック識別子とを更に含み、有効ブロック識別子は、キャッシュブロックが有効であるか否かを識別するために使用され、ダーティブロック識別子は、キャッシュブロックがダーティブロックであるか否かを識別するために使用され、
アクセス順序識別子を有するキャッシュブロックが死亡状態にあると予測した後に、アクセス順序識別子を有しており、死亡状態にあると予測されたキャッシュブロックの中で、ダーティブロック識別子が有効であるキャッシュブロックが生存状態にあると更に決定され、
アクセス順序識別子を有するキャッシュブロックが生存状態にあると予測した後に、アクセス順序識別子を有しており、生存状態にあると予測されたキャッシュブロックの中で、有効ブロック識別子が無効であるキャッシュブロックが死亡状態にあると更に決定される。
【００４１】
さらに、本発明の実施例の第８態様によれば、生存状態にあると予測されたキャッシュブロックのデータを不揮発性メモリユニットにバックアップするステップは、
死亡状態にあると予測されたキャッシュブロックについての情報を死亡キャッシュブロック記録テーブルに記録し、死亡キャッシュブロック記録テーブルに記録された、死亡状態にあると予測されたキャッシュブロックについての情報に従って、現在のバックアップ対象のキャッシュブロックが死亡状態にあると予測されたキャッシュブロックであるか、生存状態にあると予測されたキャッシュブロックであるかを決定するステップと、
現在のバックアップ対象のキャッシュブロックが生存状態にあると予測されたキャッシュブロックである場合、現在のバックアップ対象のキャッシュブロック内のデータをバックアップするステップ、又は、
現在のバックアップ対象のキャッシュブロックが死亡状態にあると予測されたキャッシュブロックである場合、現在のバックアップ対象のキャッシュブロック内のデータのバックアップをスキップするステップと
を含む。
【００４２】
さらに、本発明の実施例の第８態様によれば、予め設定された閾値は0.5である。
【００４３】
本発明の実施例の第９態様は、データバックアップ装置に適用されるデータバックアップ方法を提供し、データバックアップ装置は、メモリを含み、メモリは、揮発性メモリユニットと、不揮発性メモリユニットと、バックアップ電源とを含み、
揮発性メモリユニットは、M個のキャッシュブロックセットを含み、各キャッシュブロックセットは、N個のキャッシュブロックを含み、M≧1、N＞1であり、各キャッシュブロックは、アクセス順序識別子を有し、アクセス順序識別子は、キャッシュブロックがキャッシュブロックセット内でアクセスされる順序を示すために使用され、M個のキャッシュブロックセットの全てのキャッシュブロックセット内で同じアクセス順序を有するキャッシュブロックは、同じアクセス順序識別子を有し、
この方法は、
データバックアップ装置が時点T0において電源オンになった後に、
不揮発性メモリユニット内にバックアップされたデータを揮発性メモリユニットに回復し、揮発性メモリユニット上でデータ操作を実行し、現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初にアクセスされる場合、現在のデータ操作に対応するキャッシュブロックが生存キャッシュブロックであると決定し、時点T0において現在のデータ操作に対応するキャッシュブロックの初期アクセス順序識別子に対応する生存キャッシュブロックをカウントするか、或いは、現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初に追い出される場合、現在のデータ操作に対応するキャッシュブロックが死亡キャッシュブロックであると決定し、時点T0において現在のデータ操作に対応するキャッシュブロックの初期アクセス順序識別子に対応する死亡キャッシュブロックをカウントするステップと、
メモリに給電するためにバックアップ電源を開始するステップと、
時点T0における初期アクセス順序識別子に対応する死亡キャッシュブロックの数量及び時点T0における初期アクセス順序識別子に対応する生存キャッシュブロックの数量に従って、時点T0における各初期アクセス順序識別子に対応するキャッシュブロック状態比を計算するステップと、
時点T0におけるN個の初期アクセス順序識別子及び時点T0におけるN個の初期アクセス順序識別子にそれぞれ対応する計算された比に従って、共通アクセス順序識別子と共通比との間の共通関係を確立し、共通関係に従って、共通比が1対2であるときの対応する共通アクセス順序識別子を決定するステップと、
時点T0における各初期アクセス順序識別子を決定された共通アクセス順序識別子と比較し、時点T0における各初期アクセス順序識別子に対応する比較結果に従って、不揮発性メモリユニット内のキャッシュブロックが時点T1において生存状態にあるか死亡状態にあるかを予測し、生存状態にあると予測されたキャッシュブロックのデータを不揮発性メモリユニットにバックアップするステップであり、時点T1は、データバックアップ装置が電源オフになった時点であるステップと
を含む。
【００４４】
さらに、本発明の実施例の第９態様によれば、各キャッシュブロックは、状態識別子で構成され、不揮発性メモリユニット内にバックアップされたデータを揮発性メモリユニットに回復した後に、この方法は、
揮発性メモリユニット内の各キャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済でないことに設定し、いずれかのカウントの後に、現在のデータ操作に対応するキャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済であることに変更するステップを更に含み、
現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初にアクセスされると決定することは、具体的には、
現在のデータ操作に対応するキャッシュブロックがアクセスされ、現在のデータ操作に対応するキャッシュブロックの状態識別子が、キャッシュブロックがサンプリング済でないことである場合、現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初にアクセスされると決定することであり、
現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初に追い出されると決定することは、具体的には、
現在のデータ操作に対応するキャッシュブロックが追い出され、現在のデータ操作に対応するキャッシュブロックの状態識別子が、キャッシュブロックがサンプリング済でないことである場合、現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初に追い出されると決定することである。
【００４５】
さらに、本発明の実施例の第９態様によれば、時点T0における各初期アクセス順序識別子に対応する比較結果に従って、不揮発性メモリユニット内のキャッシュブロックが時点T1において生存状態にあるか死亡状態にあるかを予測することは、
時点T0におけるN個の初期アクセス順序識別子のうち第１アクセス順序識別子に対応する比較結果が決定された共通アクセス順序識別子より小さくない場合、マイクロプロセッサにより、第１アクセス順序識別子を有するキャッシュブロックが死亡状態にあると予測し、
時点T0におけるN個の初期アクセス順序識別子のうち第２アクセス順序識別子に対応する比較結果が決定された共通アクセス順序識別子より小さい場合、マイクロプロセッサにより、第２アクセス順序識別子を有するキャッシュブロックが生存状態にあると予測することを具体的に含む。
【００４６】
さらに、本発明の実施例の第９態様によれば、各キャッシュブロックは、有効ブロック識別子とダーティブロック識別子とを更に含み、有効ブロック識別子は、キャッシュブロックが有効であるか否かを識別するために使用され、ダーティブロック識別子は、キャッシュブロックがダーティブロックであるか否かを識別するために使用され、
アクセス順序識別子を有するキャッシュブロックが死亡状態にあると予測した後に、アクセス順序識別子を有しており、死亡状態にあると予測されたキャッシュブロックの中で、ダーティブロック識別子が有効であるキャッシュブロックが生存状態にあると更に決定され、
アクセス順序識別子を有するキャッシュブロックが生存状態にあると予測した後に、アクセス順序識別子を有しており、生存状態にあると予測されたキャッシュブロックの中で、有効ブロック識別子が無効であるキャッシュブロックが死亡状態にあると更に決定され、
各キャッシュブロックは、状態識別子で構成され、不揮発性メモリユニット内にバックアップされたデータを揮発性メモリユニットに回復した後に、この方法は、
揮発性メモリユニット内の各キャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済でないことに設定し、いずれかのカウントの後に、現在のデータ操作に対応するキャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済であることに変更するステップを更に含み、
現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初にアクセスされると決定することは、具体的には、
現在のデータ操作に対応するキャッシュブロックがアクセスされ、現在のデータ操作に対応するキャッシュブロックの状態識別子が、キャッシュブロックがサンプリング済でないことである場合、現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初にアクセスされると決定することであり、
現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初に追い出されると決定することは、具体的には、
現在のデータ操作に対応するキャッシュブロックが追い出され、現在のデータ操作に対応するキャッシュブロックの状態識別子が、キャッシュブロックがサンプリング済でないことである場合、現在のデータ操作に対応するキャッシュブロックが電源オンの後に最初に追い出されると決定することである。
【００４７】
さらに、本発明の実施例の第９態様によれば、生存状態にあると予測されたキャッシュブロックのデータを不揮発性メモリユニットにバックアップするステップは、
死亡状態にあると予測されたキャッシュブロックについての情報を死亡キャッシュブロック記録テーブルに記録し、死亡キャッシュブロック記録テーブルに記録された、死亡状態にあると予測されたキャッシュブロックについての情報に従って、現在のバックアップ対象のキャッシュブロックが死亡状態にあると予測されたキャッシュブロックであるか、生存状態にあると予測されたキャッシュブロックであるかを決定するステップと、
現在のバックアップ対象のキャッシュブロックが生存状態にあると予測されたキャッシュブロックである場合、現在のバックアップ対象のキャッシュブロック内のデータをバックアップするステップ、又は、
現在のバックアップ対象のキャッシュブロックが死亡状態にあると予測されたキャッシュブロックである場合、現在のバックアップ対象のキャッシュブロック内のデータのバックアップをスキップするステップを含む。
【００４８】
本発明の実施例におけるデータバックアップ装置及び方法によれば、データバックアップ装置が電源オンになった場合、死亡ブロックの数量及び生存ブロックの数量がカウントされ、死亡ブロック及び生存ブロックは、データバックアップ装置が電源オンになった時点での順序アクセス識別子に対応することが認識され得る。データバックアップ装置が電源オフになった後に、順序アクセス識別子に対応するサンプリング済のキャッシュブロックの総量の中で電源オン時点に各順序アクセス識別子に対応する死亡ブロックにより占有される割合は、データバックアップ装置が電源オンになった時点における順序アクセス識別子に対応する死亡ブロック及び生存ブロックのカウントされた数量に従って計算される。計算された割合は、予め設定された閾値と比較され、揮発性メモリユニット内の死亡ブロックは、比較結果に従って予測される。バックアップ中に、死亡ブロックであると予測されたキャッシュブロックはバックアップされず、これは、バックアップデータ量を低減し、バックアップ効率を改善する。
【図面の簡単な説明】
【００４９】
本発明の実施例又は従来技術における技術的解決策をより明確に説明するために、以下に、実施例又は従来技術を説明するために必要な添付図面について簡単に説明する。明らかに、以下の説明における添付図面は、本発明の単にいくつかの実施例を示しているに過ぎず、当業者は、依然として創造的取り組みなしにこれらの添付図面から他の図面を導き得る。
【図１】従来技術において不揮発性スタティックランダムアクセスメモリ内の揮発性メモリユニット内のデータを不揮発性スタティックランダムアクセスメモリ内の不揮発性メモリユニットにバックアップするための方法の概略図である。
【図２】４ウェイ・セットアソシアティブ・メモリにおける順序アクセス識別子の概略図である。
【図３】キャッシュブロックがアクセスされた後の４ウェイ・セットアソシアティブ・メモリにおける変更された順序アクセス識別子の概略図である。
【図４】本発明の実施例１において提供されるデータバックアップ装置の構成図である。
【図５】本発明の実施例１に従ってデータバックアップ装置が電源オンになったときに計算される、各アクセス順序識別子に対応する、割合により表される比の概略図である。
【図６】本発明の実施例２に従ってアクセス順序識別子に対応する計算された割合の分布に基づいてアクセス順序識別子閾値を決定する概略図である。
【図７】本発明の実施例３において提供されるデータバックアップ装置の構成図である。
【図８】本発明の実施例３において提供されるデータバックアップ装置の予測モジュールの構成図である。
【図９】本発明の実施例４において提供されるデータバックアップ方法に従ったデータ統計のための方法のフローチャートである。
【図１０】本発明の実施例４において提供されるデータバックアップ方法に従ってデータをバックアップするための方法のフローチャートである。
【図１１】本発明の実施例５において提供されるデータバックアップ方法に従ってデータをバックアップするための方法のフローチャートである。
【発明を実施するための形態】
【００５０】
以下に、本発明の実施例における添付図面を参照して、本発明の実施例における技術的解決策について明確且つ完全に説明する。明らかに、説明する実施例は、本発明の実施例の単なる一部であり、全部ではない。創造的取り組みなしに本発明の実施例に基づいて当業者により取得される全ての他の実施例は、本発明の保護範囲内に入るものとする。
【００５１】
本発明の実施例において提供される技術的解決策は、主に、不揮発性メモリユニット及び揮発性メモリユニットの双方を有するメモリ、例えば、不揮発性スタティックランダムアクセスメモリ（Nonvolatile  Static  Random  Access  Memory、NV-SRAM）に適用される。メモリとしてこのような構造のメモリを使用する電子装置が電源オフになった後に、揮発性メモリユニット内のデータを不揮発性メモリユニットにバックアップするために、バックアップ電源がメモリに給電するために使用されてもよい。便宜的な説明のため、本発明について説明するために、NV-SRAMが以下の実施例における例として使用される。しかし、本発明が適用されるメモリは、NV-SRAMに限定されず、同じ構造の他のメモリもまた、本発明に開示された範囲に含まれる点に留意すべきである。
【００５２】
NV-SRAMでは、揮発性メモリユニットは、スタティックランダムアクセスメモリ（Static  Random  Access  Memory、SRAM）であり、不揮発性メモリユニットは、相変化ランダムアクセスメモリ（Phase-change  Random  Access  memory、PCM）であり、バックアップ電源は、オンチップエネルギー蓄積コンデンサである。
【００５３】
本発明の実施例による揮発性メモリユニットの構成図である図２に示すように、揮発性メモリユニットは、Nウェイ・セットアソシアティブ・メモリである。Nウェイ・セットアソシアティブは、揮発性メモリユニットのキャッシュブロックがN個のウェイ及びM個のセットにグループ化され、各セットがN個のキャッシュブロックを有し、Nは1より大きく、Mは1以上であることを意味する。便宜的な説明のため、４ウェイ・セットアソシアティブ揮発性メモリユニットが、ここでの説明のための例として使用され、すなわち、各セットは、４つのキャッシュブロックを有する。一般的に、Nウェイ・セットアソシアティブ・メモリユニットは、最長時間未使用（Least  Recently  Used、LRU）置換アルゴリズムを使用し、すなわち、各セット内の全てのキャッシュブロックがデータで完全に書き込まれたときに、新たなデータが揮発性メモリユニットに書き込まれる必要がある場合、キャッシュブロック内で最近最も使用されていないデータが低クラスメモリに置換される。データが低クラスメモリに置換されたキャッシュブロックは、追い出された（evicted）キャッシュブロックとして考えられてもよい。実施例では、追い出されたキャッシュブロックは、死亡状態のキャッシュブロック、すなわち、死亡ブロック（Dead  block）として考えられる。さらに、無効なブロックとしてマーキングされたいくつかのキャッシュブロックは、有効なデータを記憶せず、これらのキャッシュブロックもまた、死亡ブロックとして考えられてもよい。メモリ内のキャッシュブロックがデータ上の読み取り／書き込み操作のためにアクセス（reference）される場合、アクセスされるキャッシュブロックは、生存状態のキャッシュブロック、すなわち、生存ブロック（Live  block）であると考えられてもよい。
【００５４】
LRUアルゴリズムでは、一般的に、各セット内のキャッシュブロックのアクセス順序を識別するために、アクセス順序識別子が使用される。アクセス順序識別子は、各キャッシュブロックの最近使用ビット（recently  used  bit、RUB）を使用することにより設定されてもよい。メモリがNウェイ・セットアソシアティブ・メモリである場合、キャッシュブロックセット内の同じアクセス順序を有するキャッシュブロックは、同じアクセス順序識別子を有する。各キャッシュブロックのアクセス順序識別子は、キャッシュブロックがキャッシュブロックセット内でアクセスされる順序の変更と共に更新される。より大きいアクセス順序識別子の値は、最後のアクセス時点と現在の時点との間のより長い間隔を示す。しかし、反対の順序もまた、異なる実施例において使用されてもよく、すなわち、より大きいアクセス順序識別子の値は、最後のアクセス時点と現在の時点との間のより短い間隔を示す。具体的な設定は、実際の状況に従って実行されてもよい。図１に示すように、各キャッシュブロック上の数字は、各セット内のキャッシュブロックのアクセス順序を示し、アクセス順序識別子の値は、各キャッシュブロックのアクセス状態に従って動的に変更されてもよい。図３に示すように、第１セット内のキャッシュブロックのアクセス順序が例として使用される。アクセス前に、キャッシュブロックのアクセス順序識別子は、第１ウェイから第４ウェイへの順序に従って、それぞれ0、1、2及び3であり、第３ウェイのキャッシュブロックがアクセスされる場合、キャッシュブロックのアクセス順序識別子は、1、2、0及び3に変更される。
【００５５】
本発明の実施例における揮発性メモリユニットは、代替として、フルアソシアティブ構造のメモリでもよい。すなわち、揮発性メモリユニット内の全てのキャッシュブロックは、キャッシュブロックの１つのセットとして使用されてもよい。
【００５６】
一般的に、電子装置が電源オフになった後に、揮発性メモリユニット内の死亡ブロック内のデータをバックアップすることは不要である。これらの死亡ブロックが事前に認識されることができれば、電子装置が電源オフになった後に、バックアップされる必要のあるデータの量が低減されることができ、これは、バックアップ効率を改善する。本発明の実施例において提供される技術的解決策では、電子装置が電源オフになった後に、揮発性メモリユニット内の死亡ブロックは、電子装置が電源オンであるときに取得された統計値に従って予測されることができ、死亡ブロック内のデータは、データバックアップ中にバックアップされず、これは、バックアップデータ量を低減し、バックアップ効率を改善する。
【００５７】
以下に、本発明において提供される技術的解決策を異なる観点から説明するために、異なる実施例を使用する。
【００５８】
実施例１
実施例１は、図４に示すデータバックアップ装置30を提供する。データバックアップ装置30は、メモリ31とプロセッサ32とを含み、メモリ31は、揮発性メモリユニット310と、不揮発性メモリユニット311と、バックアップ電源312と、マイクロプロセッサ315と、カウントユニット316とを含む。データバックアップ装置30が電源オフになった後に、バックアップ電源312がメモリ30に給電するために開始され、これにより、揮発性メモリユニット310内のデータを不揮発性メモリユニット311にバックアップする。
【００５９】
揮発性メモリユニット310は、M個（M≧1）のキャッシュブロックセット313を含み、各キャッシュブロックセット313は、N個（N＞1）のキャッシュブロック314を含む。キャッシュブロックセット313内で同じアクセス順序を有するキャッシュブロック314は、同じアクセス順序識別子を有し、各キャッシュブロック314のアクセス順序識別子は、キャッシュブロック314がキャッシュブロックセット313内でアクセスされる順序の変更と共に更新される。各キャッシュブロックのアクセス順序識別子は、キャッシュブロック314のRUBに記憶されてもよく、或いはテーブルに記録されてもよい。
【００６０】
各キャッシュブロック314は、状態識別子で更に構成され、各状態識別子は、キャッシュブロック314がサンプリング済であるか否かを識別するために使用される。この実施例では、サンプリング統計は、揮発性メモリユニット310内のキャッシュブロック314上で収集される必要があり、各キャッシュブロック314は、一回のみサンプリングされることができる。キャッシュブロック314がサンプリング済であるか否かは、状態識別子を設定することにより識別される。サンプリングされているキャッシュブロックについては、キャッシュブロックの状態識別子は、キャッシュブロックがサンプリング済であることに変更されてもよい。状態識別子がサンプリング済であるキャッシュブロック314は、もはやサンプリングされない。
【００６１】
カウントユニット316は、N個のカウンタグループ317を含み、各カウンタグループ317は、１つの第１カウンタ318と１つの第２カウンタ319とを含み、N個のカウンタグループ317は、N個のアクセス順序識別子と１対１の対応にある。カウントユニット316により実行される機能は、以下に詳細に記載される。
【００６２】
データバックアップ装置30が電源オンになった後に、プロセッサ32は、不揮発性メモリユニット311内にバックアップされたデータを揮発性メモリユニット310に回復し、時点T0において各キャッシュブロックセット313内の各キャッシュブロック314のアクセス順序識別子を取得及び記録し、揮発性メモリユニット310内の各キャッシュブロック314の状態識別子を、キャッシュブロックがサンプリング済でないことに設定し、時点T0は、データバックアップ装置が電源オンになった時点である。
【００６３】
この実施例では、各キャッシュブロック314の時点T0におけるアクセス順序識別子は、データバックアップ装置30が最後に電源オフになったときのキャッシュブロック314のアクセス順序識別子である。すなわち、電源オンになった後に毎回、データバックアップ装置30は、不揮発性メモリユニット311内にバックアップされたデータを揮発性メモリユニット310に回復するだけでなく、データバックアップ装置30が最後に電源オフになった時間の各キャッシュブロック314のアクセス順序識別子も回復する。さらに、電源オンになった後に毎回、データバックアップ装置30はまた、各キャッシュブロック314の状態識別子を、キャッシュブロックがサンプリング済でないこととして初期化してもよい。
【００６４】
プロセッサ32は、揮発性メモリユニット310上でデータ操作を実行するように更に構成される。データ操作は、読み取り、書き込み、削除又は置換のような、揮発性メモリユニット310内のキャッシュブロック314に記憶されたデータ上で実行される操作である。データ操作を実行するときに、プロセッサ32は、データ操作に対応するデータ操作要求内のアドレス情報に従って、データ操作に対応するキャッシュブロック314を取得する。データ操作に対応するキャッシュブロック314が決定された後に、キャッシュブロックの状態識別子が決定されてもよい。
【００６５】
現在のデータ操作に対応するキャッシュブロック314の状態識別子が、キャッシュブロックがサンプリング済でないことであり、データ操作に対応するキャッシュブロック314がアクセスされる場合、現在のデータ操作に対応するキャッシュブロック314は、生存状態にあり、時点T0において現在のデータ操作に対応するキャッシュブロック314の初期アクセス順序識別子に対応する第１カウンタ318上でカウントが実行され、キャッシュブロック314の状態識別子は、キャッシュブロックがサンプリング済であることに更新される。現在のデータ操作に対応するキャッシュブロック314の状態識別子が、キャッシュブロックがサンプリング済でないことであり、データ操作に対応するキャッシュブロック314が追い出される場合、現在のデータ操作に対応するキャッシュブロック314は、死亡状態にあり、時点T0において現在のデータ操作に対応するキャッシュブロックの初期アクセス順序識別子に対応する第２カウンタ319上でカウントが実行され、現在のデータ操作に対応するキャッシュブロック314の状態識別子は、キャッシュブロックがサンプリング済であることに変更される。
【００６６】
この実施例では、生存状態のキャッシュブロック314は、生存ブロックであり、死亡状態のキャッシュブロック314は、死亡ブロックである。生存ブロック及び死亡ブロックの定義については、前述の説明を参照し、詳細はここでは再び説明しない。さらに、この実施例におけるサンプリング済のキャッシュブロック314は、データバックアップ装置30が電源オンになった後に最初にアクセスされるキャッシュブロック314と、データバックアップ装置30が電源オンになった後に最初に追い出されるキャッシュブロック314である。
【００６７】
この実施例では、図２に示すように、各キャッシュブロック314は、キャッシュブロックセット313内のキャッシュブロック314のアクセス順序を識別するために使用されるアクセス順序識別子を有し、したがって、複数のキャッシュブロックセット内の複数のキャッシュブロック314は、同じアクセス順序識別子を有する。各アクセス順序識別子に対応する第１カウンタ318は、アクセス順序識別子を有するサンプリング済のキャッシュブロック314の中で生存ブロックの数量をカウントするために使用され、各アクセス順序識別子に対応する第２カウンタは、アクセス順序識別子を有するサンプリング済のキャッシュブロック314の中で死亡ブロックの数量をカウントするために使用される。
【００６８】
図２から、特定のキャッシュブロック314のアクセス順序識別子が、キャッシュブロックがアクセスされる前に「3」である場合、キャッシュブロック314のアクセス順序識別子は、キャッシュブロックがアクセスされた後に「0」に更新されることが認識され得る。サンプリング済のキャッシュブロック314は、まだアクセスされていないため、アクセスの初回に、キャッシュブロック314のアクセス順序識別子は、依然として時点T0におけるアクセス順序識別子であり、「3」であると想定される。キャッシュブロックがアクセスされた後に、キャッシュブロック314のアクセス順序識別子は、「0」に変更される。ここで、プロセッサ32は、時点T0においてまだ変更されていないアクセス順序識別子、すなわち、「0」ではなく「3」を取得する。
【００６９】
この実施例では、第１カウンタ318及び第２カウンタ319により収集された統計は、データバックアップ装置30が電源オフになった後にゼロにリセットされない。したがって、データバックアップ装置30が次回電源オンになった後に、統計は、今回収集された統計に基づいて収集され得る。このように、より多くのキャッシュブロック314がサンプリングされてもよく、したがって、より正確な予測結果が取得される。
【００７０】
データバックアップ装置30が電源オフになった後に、マイクロプロセッサ315は、メモリ31に給電するためにバックアップ電源312を開始し、N個のカウンタグループ317のカウントを読み取り、各アクセス順序識別子に対応するカウンタグループ317内の第２カウンタ319のカウントの、アクセス順序識別子に対応するカウンタグループ317内にある第１カウンタ318及び第２カウンタ319の和に対する比を計算し、各アクセス順序識別子に対応する比を予め設定された閾値と比較し、各アクセス順序識別子に対応する比較結果に従って、比較結果に対応するアクセス順序識別子を有する各キャッシュブロック314が生存状態にあるか死亡状態にあるかを予測し、生存状態にあると予測されたキャッシュブロックのデータを不揮発性メモリユニット311にバックアップする。
【００７１】
この実施例では、第１カウンタ318及び第２カウンタ319の和は、各アクセス順序識別子に対応するカウントされた死亡ブロックと、アクセス順序識別子に対応するカウントされた生存ブロックとの和、すなわち、順序アクセス識別子を有するサンプリング済のキャッシュブロック314の総量である。したがって、マイクロプロセッサ315が計算するものは、同じアクセス順序識別子を有するサンプリング済のキャッシュブロックの中で死亡ブロックにより占有される割合である。
【００７２】
図５に示すように、図５は、各アクセス順序識別子に対応する、割合により表される計算された比の概略図である。アクセス順序識別子0に対応する死亡ブロックにより占有される割合は5%であり、アクセス順序識別子1に対応する死亡ブロックにより占有される割合は25%であり、アクセス順序識別子2に対応する死亡ブロックにより占有される割合は45%であり、アクセス順序識別子3に対応する死亡ブロックにより占有される割合は95%である。
【００７３】
各アクセス順序識別子に対応するカウンタグループ317内の第２カウンタ319のカウントの、アクセス順序識別子に対応するカウンタグループ317内にある第１カウンタ318及び第２カウンタ319の和に対する比の計算に加えて、代替として、各アクセス順序識別子に対応するカウンタグループ317内の第２カウンタ319のカウントの、アクセス順序識別子に対応するカウンタグループ317の第１カウンタ318に対する比、すなわち、死亡ブロックの生存ブロックに対する比が計算されてもよく、或いは、各アクセス順序識別子に対応するカウンタグループ317内の第１カウンタ318の、アクセス順序識別子に対応するカウンタグループ317内にある第１カウンタ318及び第２カウンタ319の和に対する比、すなわち、同じアクセス順序識別子を有するサンプリング済のキャッシュブロックの中で生存ブロックにより占有される割合が計算されてもよい。異なる比の計算方式に従って、異なる予め設定された閾値が選択されてもよい。すなわち、この実施例では、各初期アクセス順序識別子に対応するキャッシュブロック状態比は、初期アクセス順序に対応する死亡キャッシュブロックの数量と、初期アクセス順序に対応する生存キャッシュブロックの数量とに従って計算されてもよい。キャッシュブロック状態比は、死亡ブロックの生存ブロックに対する比、死亡ブロックにより占有される割合、又は生存ブロックにより占有される割合でもよい。
【００７４】
図５に示す例では、同じアクセス順序識別子を有するサンプリング済のキャッシュブロックの中で死亡ブロックにより占有される割合が計算され、予め設定された閾値が80%である場合、各アクセス順序識別子に対応する割合が予め設定された閾値と比較された後に、アクセス順序識別子0、1及び2に対応する比較結果が、全て予め設定された閾値より小さく、アクセス順序識別子3に対応する比較結果が、予め設定された閾値より小さくないことが認識され得る。
【００７５】
各アクセス順序識別子に対応する比較結果に従って、比較結果に対応するアクセス順序識別子を有する各キャッシュブロック314が生存状態にあるか死亡状態にあるかを予測するための１つの方式は以下の通りである。
【００７６】
N個のアクセス順序識別子のうちアクセス順序識別子に対応する比較結果が予め設定された閾値より小さくない場合、マイクロプロセッサ315により、アクセス順序識別子を有するキャッシュブロック314が死亡状態にあると予測し、N個のアクセス順序識別子のうちアクセス順序識別子に対応する比較結果が予め設定された閾値より小さい場合、マイクロプロセッサ315により、アクセス順序識別子を有するキャッシュブロックが生存状態にあると予測する。
【００７７】
図５に示す例では、アクセス順序識別子4に対応する比較結果が予め設定された閾値より小さくないため、揮発性メモリユニット310内でアクセス順序識別子4を有するキャッシュブロック314が全て死亡ブロックであると予測されてもよい。
【００７８】
前述の実施例における技術的解決策は、死亡ブロックのための予測であるため、誤差が必然的に存在する。一般的に、誤差は、２つの種類、すなわち、偽陰性誤差及び偽陽性誤差に分類されてもよい。偽陰性誤差は、死亡ブロックが生存ブロックとして決定されることを意味する。この種類の誤差は、電気エネルギーの不要な消費を生じる。電源の電気エネルギーが限られている場合、これは、生存ブロックをバックアップするために電気エネルギーを浪費し、生存ブロックの喪失は、データの喪失を引き起こし、これは、システム性能に影響を与える。偽陽性誤差は、生存ブロックが死亡ブロックとして決定されることを意味する。この種類の誤差は、生存ブロック内のデータのドロップを引き起こし、これは、システム性能に影響を与える。したがって、ユーザは、異なる要件に従って予め設定された閾値を選択してもよく、具体的には、以下の要件に従って設定を実行してもよい。
【００７９】
バックアップ電源の電気エネルギーがデータバックアップをサポートするのに十分であり、システム性能に高い要件が存在する場合、偽陰性誤差を制御し、より多くのキャッシュブロックをバックアップし、データ喪失を低減するために、より高い予め設定された閾値が選択されてもよい。
【００８０】
システムのリアルタイム性能の要件が比較的低い一方で、バックアップ電源の電気エネルギーが十分でなく、場合によってはデータの完全バックアップをサポートすることができない場合、偽陽性誤差を制御し、できるだけ多くの死亡ブロックをドロップし、バックアップ電源の電気エネルギーがデータバックアップをサポートできないときに引き起こされるバックアップ障害を防止するために、より低い予め設定された閾値が選択される。
【００８１】
全体誤差が最小化され、すなわち、偽陰性誤差及び偽陽性誤差の和が最小化される。理論的分析によれば、死亡ブロックにより占有される割合が50%である場合、全体誤差は最低である。
【００８２】
誤差を更に低減するために、各アクセス順序識別子に対応する比較結果に従って、比較結果に対応するアクセス順序識別子を有する各キャッシュブロック314が生存状態にあるか死亡状態にあるかを予測するために、他の方式が提供され、すなわち、以下の通りである。
【００８３】
各キャッシュブロック314は、有効ブロック識別子とダーティブロック識別子とを更に含む。有効ブロック識別子は、キャッシュブロックが有効であるか否かを識別するために使用され、ダーティブロック識別子は、キャッシュブロックがダーティブロックであるか否かを識別するために使用される。
【００８４】
N個のアクセス順序識別子のうちアクセス順序識別子に対応する比較結果が、死亡ブロックにより占有される割合が予め設定された閾値より小さくないことである場合、マイクロプロセッサ315は、アクセス順序識別子を有するキャッシュブロック314を取得し、アクセス順序識別子を有するキャッシュブロック314の中で、ダーティブロック識別子が有効であるキャッシュブロックが生存状態にあり、ダーティブロック識別子が無効であるキャッシュブロックが死亡状態にあると予測する。
【００８５】
N個のアクセス順序識別子のうちアクセス順序識別子に対応する比較結果が、死亡ブロックにより占有される割合が予め設定された閾値より小さいことである場合、マイクロプロセッサ315は、アクセス順序識別子を有するキャッシュブロック314を取得し、アクセス順序識別子を有するキャッシュブロック314の中で、有効ブロック識別子が有効であるキャッシュブロック314が生存状態にあり、有効ブロック識別子が無効であるキャッシュブロック314が死亡状態にあると予測する。
【００８６】
このように、いくつかの死亡ブロックは、生存ブロックとして前もって決定されたキャッシュブロックから、有効ブロック識別子に従って見つけられ、いくつかの生存ブロックは、死亡ブロックとして前もって決定されたキャッシュブロックから、ダーティブロック識別子に従って見つけられ、これにより、予測誤差が更に低減される。
【００８７】
さらに、マイクロプロセッサ315により、生存状態にあると予測されたキャッシュブロック314のデータを不揮発性メモリユニット311にバックアップすることは、マイクロプロセッサ315により、死亡状態にあると予測されたキャッシュブロック314についての情報を死亡キャッシュブロック記録テーブルに記録し、死亡キャッシュブロック記録テーブルに記録された、死亡状態にあると予測されたキャッシュブロック314についての情報に従って、現在のバックアップ対象のキャッシュブロック314が死亡状態にあると予測されたキャッシュブロックであるか、生存状態にあると予測されたキャッシュブロックであるかを決定し、現在のバックアップ対象のキャッシュブロックが生存状態にあると予測されたキャッシュブロックである場合、現在のバックアップ対象のキャッシュブロック内のデータをバックアップするか、或いは、現在のバックアップ対象のキャッシュブロック314が死亡状態にあると予測されたキャッシュブロックである場合、現在のバックアップ対象のキャッシュブロック内のデータのバックアップをスキップすることを含む。
【００８８】
実施例２
実施例２は、データバックアップ装置を提供する。実施例２において提供されるデータバックアップ装置は、実施例１におけるデータバックアップ装置と類似している。相違は、マイクロプロセッサ315が各アクセス順序識別子に対応するカウンタグループ317内の第２カウンタ319のカウントの、アクセス順序識別子に対応するカウンタグループ317内にある第１カウンタ318及び第２カウンタ319の和に対する比を計算した後に、時点T0におけるN個のアクセス順序識別子及び時点T0におけるN個のアクセス順序識別子にそれぞれ対応する計算された比に従って、共通アクセス順序識別子と共通比との間の共通関係が確立される点にある。図６に示すように、まず、共通アクセス順序識別子がX軸であり、共通比（百分率）がY軸である座標系が確立される。共通アクセス順序識別子は、アクセス順序識別子0、1、2及び3を含み、他の対応する比も含む。共通比は、Y軸上の5%、25%、45%及び95%のように、アクセス順序識別子0、1、2及び3にそれぞれ対応する計算された比を含み、他の値も含む。(0,5%)、(1,25%)、(2,45%)及び(3,95%)の点が座標系から取得される。これらの点は、共通順序識別子及び共通比のための共通関係曲線601を形成するように接続される。このように、関係曲線601を使用することにより、共通比が1対2（50%、すなわち、比が50%であるときに全体誤差が最低である）であるときの対応する共通アクセス順序識別子THが決定されてもよい。各アクセス順序識別子は、決定された共通アクセス順序識別子THと比較され、比較結果に対応するアクセス順序識別子を有するキャッシュブロックが生存状態のキャッシュブロックであるか、死亡状態のキャッシュブロックであるかは、各アクセス順序識別子に対応する比較結果に従って決定される。具体的には、アクセス順序識別子のうち第１アクセス順序識別子が共通アクセス順序識別子THより小さくない場合、マイクロプロセッサは、第１アクセス順序識別子を有するキャッシュブロックが死亡状態にあると予測する。アクセス順序識別子のうち第２アクセス順序識別子が共通アクセス順序識別子THより小さい場合、マイクロプロセッサは、第２アクセス順序識別子を有するキャッシュブロックが生存状態にあると予測する。他のコンポーネントの機能は、実施例１のものと同じであり、詳細はここでは再び説明しない。
【００８９】
実施例３
実施例３は、データバックアップ装置70を提供する。図７に示すように、データバックアップ装置70は、メモリ71とプロセッサ72とを含む。プロセッサ72は、メモリ71内のデータへのアクセスを制御する。メモリ71は、揮発性メモリユニット710と、不揮発性メモリユニット711と、バックアップ電源712と、予測モジュール713とを含む。データバックアップ装置70が電源オンになった後に、不揮発性メモリユニット711内にバックアップされたデータが回復される。データバックアップ装置70が電源オフになった後に、バックアップ電源712は、メモリ70に給電するために開始される。予測モジュール713は、揮発性メモリユニット710内の死亡ブロックを予測するように構成される。
揮発性メモリユニット710は、実施例１における揮発性メモリユニット310と同じ構造であり、詳細はここでは再び説明しない。
【００９０】
揮発性メモリユニット710は、実施例１における揮発性メモリユニット310と同じ構造であり、詳細はここでは再び説明しない。
【００９１】
図８に示すように、各キャッシュブロック714は、RUB715と、有効性ビット716と、ダーティブロックビット717と、状態ビット718と、タグ719とを含む。RUB715は、アクセス順序識別子を記憶するために使用される。有効性ビット716は、キャッシュブロックの有効性識別子を記憶するために使用される。ダーティブロックビット717は、ダーティブロック識別子を記憶するために使用され、状態ビット718は、状態識別子を記憶するために使用される。タグ719は、キャッシュブロックのタグである。データアクセス要求が存在する場合、対応するキャッシュブロック714は、アクセス要求内のデータアドレスをタグとマッチングさせることにより見つけられてもよい。
【００９２】
予測モジュール713は、揮発性メモリユニット710に接続され、揮発性メモリユニット710内の死亡ブロックを予測するように構成される。予測モジュール713は、第１アドレッシングデバイス721と第２アドレッシングデバイス720とを含む。第１アドレッシングデバイス721及び第２アドレッシングデバイス720の入力端は、共に各キャッシュブロック714に接続される。
【００９３】
予測モジュール713は、カウントユニット（図面に図示せず）を更に含む。カウントユニットは、N個のカウンタグループ（図面に図示せず）を含む。N個のカウンタグループは、N個のアクセス順序識別子と１対１の対応を有する。各カウンタグループは、１つの第１カウンタ7136と１つの第２カウンタ7135とを含む。第１カウンタ7136の入力端は、第１アドレッシングデバイス721の出力端に接続され、第２カウンタ7135の入力端は、第２アドレッシングデバイス720の出力端に接続される。
【００９４】
データバックアップ装置70が電源オンになった後に、
プロセッサ72は、不揮発性メモリユニット711内にバックアップされたデータを揮発性メモリユニット710に回復し、時点T0において各キャッシュブロックセット内の各キャッシュブロック714の初期アクセス順序識別子を取得し、初期アクセス順序識別子をキャッシュブロック714の最近使用ビットRUBに記録し、揮発性メモリユニット710内の各キャッシュブロック714の状態ビットを無効に設定するように構成され、時点T0は、データバックアップ装置70が電源オンになった時点であり、
プロセッサ72は、揮発性メモリユニット上でデータ操作を実行し、
現在のデータ操作に対応するキャッシュブロック714の状態識別子が、キャッシュブロックがサンプリング済でないことであり、データ操作に対応するキャッシュブロック714がアクセスされると決定した場合、プロセッサ72は、現在のデータ操作に対応するキャッシュブロック714が生存状態にあると決定し、次に、現在のデータ操作に対応するキャッシュブロック714のアドレスに従って、対応するキャッシュブロック714を見つけるために第１アドレッシングデバイス721を制御し、時点T0において見つかったキャッシュブロック714のアクセス順序識別子を取得し、時点T0における取得されたアクセス順序識別子に従って、順序アクセス識別子に対応する第１カウンタ7136を取得し、第１カウンタ7136上でカウントを実行するように更に構成され、プロセッサ72は、キャッシュブロック714の状態識別子を、キャッシュブロックがサンプリング済であることに変更するか、或いは、
現在のデータ操作に対応するキャッシュブロック714の状態識別子が、キャッシュブロックがサンプリング済でないことであり、データ操作に対応するキャッシュブロック714が追い出されると決定した場合、現在のデータ操作に対応するキャッシュブロック714が死亡状態にあると決定し、第２アドレッシングデバイス720は、現在のデータ操作に対応するキャッシュブロック714のアドレスに従って、対応するキャッシュブロック714を見つけ、時点T0における見つかったキャッシュブロック714のアクセス順序識別子を取得し、時点T0における取得されたアクセス順序識別子に従って、順序アクセス識別子に対応する第２カウンタ7135を取得し、第２カウンタ7135上でカウントを実行し、プロセッサ72は、キャッシュブロック714の状態識別子を、キャッシュブロックがサンプリング済であることに変更する。
【００９５】
予測モジュール713は、N個のシフト器7137とN個の比較器7138とを更に含む。N個のシフト器7137は、第１カウンタ7136の出力端にそれぞれ接続される。N個の比較器7138の各比較器7138は、カウンタグループ内の第２カウンタ7135の出力端及びカウンタグループ内の第１カウンタ7136に接続されたシフト器7137の出力端にそれぞれ接続された２つの入力端を有する。
【００９６】
データバックアップ装置70が電源オフになった後に、マイクロプロセッサ7139は、メモリ71に給電するためにバックアップ電源712を開始し、各シフト器7137は、予め設定された閾値に従って、シフト器に接続された第１カウンタ7136をシフトし、各比較器7138は、比較器に接続された第２カウンタ7135からの入力と、比較器に接続されたシフト器7137からの入力とを比較し、マイクロプロセッサ7139は、各アクセス順序識別子に対応する比較器7138の出力結果に従って、比較器7138に対応するアクセス順序識別子を有する各キャッシュブロック714が生存状態にあるか死亡状態にあるかを予測し、生存状態にあると予測されたキャッシュブロック714内のデータを不揮発性メモリユニット711にバックアップする。
【００９７】
この実施例では、第１アドレッシングデバイス721は、第１データセレクタ7132と第１デコーダ7134とを含み、第２アドレッシングデバイス720は、第２データセレクタ7131と第２デコーダ7133とを含み、第１データセレクタ7132及び第２データセレクタ7131の入力端は、共に各キャッシュブロック714に接続され、第１デコーダ7134及び第２デコーダ7133の入力端は、それぞれ第１データセレクタ7132及び第２データセレクタ7131の出力端に接続され、第１デコーダ7134及び第２デコーダ7133の出力端は、それぞれ各カウンタグループ内の第１カウンタ7136の入力端及びカウンタグループ内の第２カウンタグループ7135の入力端に接続される。
【００９８】
現在のデータ操作に対応するキャッシュブロック714が生存状態にあるとプロセッサ72が決定した場合、第１データセレクタ7132は、現在のデータ操作に対応するキャッシュブロック714のアドレスに従って、対応するキャッシュブロックを見つけ、時点T0における見つかったキャッシュブロック714のアクセス順序識別子を取得し、第１デコーダ7134は、順序アクセス識別子に対応する第１カウンタ7136を取得するために、取得されたアクセス順序識別子をデコードする。
【００９９】
現在のデータ操作に対応するキャッシュブロック714が死亡状態にあるとプロセッサ72が決定した場合、第２データセレクタ7131は、現在のデータ操作に対応するキャッシュブロックのアドレスに従って、対応するキャッシュブロック714を見つけ、時点T0における見つかったキャッシュブロックのアクセス順序識別子を取得し、第２デコーダは、順序アクセス識別子に対応する第２カウンタ7135を取得するために、時点T0における取得されたアクセス順序識別子をデコードし、次に、第２カウンタ7135上でカウントを実行する。
【０１００】
実施例４
実施例４は、データバックアップ装置に適用されるデータバックアップ方法を提供する。データバックアップ装置の構造は、実施例１におけるデータバックアップ装置の構造と同じであり、詳細はここでは再び説明しない。
【０１０１】
データバックアップ方法は、２つの部分を含む。１つの部分は、データ統計であり、１つの部分は、データバックアップである。データ統計は、データバックアップ装置が電源オンになったときに実行され、データバックアップは、データバックアップ装置が電源オフになったときに実行される。
【０１０２】
図９に示すように、図９は、データバックアップ装置が電源オンになったときに実行されるデータ統計のフローチャートである。データ統計部分は以下を含む。
【０１０３】
ステップS901：不揮発性メモリユニット内にバックアップされたデータを揮発性メモリユニットに回復し、時点T0において各キャッシュブロックセット内の各キャッシュブロックの初期アクセス順序識別子を取得及び記録し、揮発性メモリユニット内の各キャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済でないことに設定し、時点T0は、データバックアップ装置が電源オンになった時点である。
【０１０４】
ステップS902：揮発性メモリユニット上でデータ操作を実行し、現在のデータ操作に対応するキャッシュブロックの状態識別子が、キャッシュブロックがサンプリング済でないことであり、データ操作に対応するキャッシュブロックがアクセスされる場合、現在のデータ操作に対応するキャッシュブロックが生存状態にあると決定し、時点T0において現在のデータ操作に対応するキャッシュブロックの初期アクセス順序識別子に対応する第１カウンタ上でカウントを実行し、現在のデータ操作に対応するキャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済であることに更新する。
【０１０５】
ステップS903：現在のデータ操作に対応するキャッシュブロックの状態識別子が、キャッシュブロックがサンプリング済でないことであり、データ操作に対応するキャッシュブロックが追い出される場合、現在のデータ操作に対応するキャッシュブロックが死亡状態にあると決定し、時点T0において現在のデータ操作に対応するキャッシュブロックの初期アクセス順序識別子に対応する第２カウンタ上でカウントを実行し、現在のデータ操作に対応するキャッシュブロックの状態識別子を、キャッシュブロックがサンプリング済であることに更新する。
【０１０６】
図１０に示すように、図１０は、データバックアップ装置が電源オフになったときに実行されるデータバックアップ方法のフローチャートである。データバックアップ方法は以下を含む。
【０１０７】
ステップS1001：メモリに給電するためにバックアップ電源を開始する。
【０１０８】
ステップS1002：N個のカウンタグループのカウントを読み取り、初期アクセス順序に対応する死亡キャッシュブロックの数量及び初期アクセス順序に対応する生存キャッシュブロックの数量に従って、時点T0における各初期アクセス順序識別子に対応するキャッシュブロック状態比を計算し、キャッシュブロック状態比は、死亡ブロックの生存ブロックに対する比、死亡ブロックにより占有される割合、又は生存ブロックにより占有される割合でもよい。
【０１０９】
ステップS1003：時点T0における各初期アクセス順序識別子に対応する比を予め設定された閾値と比較し、時点T0における各初期アクセス順序識別子に対応する比較結果に従って、不揮発性メモリユニット内のキャッシュブロックが時点T1において生存状態にあるか死亡状態にあるかを予測し、時点T1は、データバックアップ装置が電源オフになった時点である。
【０１１０】
ステップS1004：生存状態にあると予測されたキャッシュブロックのデータを不揮発性メモリユニットにバックアップする。
【０１１１】
さらに、ステップS1003において、時点T0における各初期アクセス順序識別子に対応する比較結果に従って、不揮発性メモリユニット内のキャッシュブロックが生存状態にあるか死亡状態にあるかを予測することは、
時点T0におけるN個の初期アクセス順序識別子のうち第１アクセス順序識別子に対応する比較結果が、死亡ブロックにより占有される割合が予め設定された閾値より小さくないことである場合、アクセス順序識別子を有するキャッシュブロックが死亡状態にあると予測すること、又は
時点T0におけるN個の初期アクセス順序識別子のうち第２アクセス順序識別子に対応する比較結果が、死亡ブロックにより占有される割合が予め設定された閾値より小さい場合、アクセス順序識別子を有するキャッシュブロックが生存状態にあると予測することを含む。
【０１１２】
さらに、各キャッシュブロックは、有効ブロック識別子とダーティブロック識別子とを更に含む。有効ブロック識別子は、キャッシュブロックが有効であるか否かを識別するために使用され、ダーティブロック識別子は、キャッシュブロックがダーティブロックであるか否かを識別するために使用され、
アクセス順序識別子を有するキャッシュブロックが死亡状態にあると予測した後に、アクセス順序識別子を有しており、死亡状態にあると予測されたキャッシュブロックの中で、ダーティブロック識別子が有効であるキャッシュブロックが生存状態にあると更に決定され、
アクセス順序識別子を有するキャッシュブロックが生存状態にあると予測した後に、アクセス順序識別子を有しており、生存状態にあると予測されたキャッシュブロックの中で、有効性識別子が無効であるキャッシュブロックが死亡状態にあると更に決定される。
【０１１３】
実施例５
実施例５は、データバックアップ装置に適用されるデータバックアップ方法を提供する。データバックアップ装置の構造は、実施例２におけるデータバックアップ装置の構造と同じであり、詳細はここでは再び説明しない。
【０１１４】
データバックアップ方法は、２つの部分を含む。１つの部分は、データ統計方法であり、１つの部分は、データバックアップ方法である。データ統計方法は、データバックアップ装置が電源オンになったときに実行され、実施例４で説明したデータ統計方法と同じである。詳細はここでは再び説明しない。
【０１１５】
データバックアップ方法は、データバックアップ装置が電源オフになったときに実行される。
【０１１６】
図１１に示すように、図１１は、データバックアップ装置が電源オフになったときに実行されるデータバックアップ方法のフローチャートである。この実施例におけるデータバックアップ方法内のステップS1101、S1102及びS1104は、実施例４におけるデータバックアップ方法内のステップS1001、S1002及びS1004と同じである。相違はステップS1103のみにある。この実施例では、ステップS1103において、時点T0におけるN個のアクセス順序識別子及び時点T0におけるN個のアクセス順序識別子にそれぞれ対応する計算された比に従って、共通アクセス順序識別子と共通比との間の共通関係が確立され、共通比が1対2（50%、すなわち、比が50%であるときに全体誤差が最低である）であるときの対応する共通アクセス順序識別子THが、共通関係に従って決定される。共通関係の決定については、実施例６における図６の関係する説明を参照し、詳細はここでは再び説明しない。時点T0における各初期アクセス順序識別子は、共通アクセス順序識別子THと比較され、次に、時点T1において不揮発性メモリユニット内のキャッシュブロックが生存状態にあるか死亡状態にあるかは、時点T0における各初期アクセス順序識別子に対応する比較結果に従って予測され、時点T1は、データバックアップ装置が電源オフになった時点である。具体的には、アクセス順序識別子のうち第１アクセス順序識別子が共通アクセス順序識別子THより小さくない場合、マイクロプロセッサは、第１アクセス順序識別子を有するキャッシュブロックが死亡状態にあると予測し、初期アクセス順序識別子のうち第２アクセス順序識別子が共通アクセス順序識別子THより小さい場合、マイクロプロセッサは、第２アクセス順序識別子を有するキャッシュブロックが生存状態にあると予測する。他の部分は、実施例４におけるものと同じであり、詳細はここでは再び説明しない。当業者は、実施例における方法のステップの全部又は一部が関係するハードウェアに命令するプログラムにより実現されてもよいことを理解し得る。プログラムは、コンピュータ読み取り可能記憶媒体に記憶されてもよい。記憶媒体は、ROM、RAM、磁気ディスク又は光ディスクを含んでもよい。
【０１１７】
本発明の実施例において提供されるデータバックアップ装置及び方法について詳細に説明した。本発明の原理及び実現方式は、具体的な例を使用することによりここに記載されている。前述の実施例についての説明は、単に本発明の方法及び核心の概念を理解することに役立てるために提供されている。さらに、当業者は、本発明の概念に基づいて具体的な実現方式及び適用範囲に変更を行うことができる。したがって、この明細書の内容は、本発明における限定として解釈されないものとする。
【図１】
0006527951.tif 000002
【図２】
0006527951.tif 000003
【図３】
0006527951.tif 000004
【図４】
0006527951.tif 000005
【図５】
0006527951.tif 000006
【図６】
0006527951.tif 000007
【図７】
0006527951.tif 000008
【図８】
0006527951.tif 000009
【図９】
0006527951.tif 000010
【図１０】
0006527951.tif 000011
【図１１】
0006527951.tif 000012