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

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

▶ ▲ホア▼▲ウェイ▼技術有限公司の特許一覧

特許6064237メモリデータを移行するための方法、コンピュータ、および装置
<>
  • 特許6064237-メモリデータを移行するための方法、コンピュータ、および装置 図000002
  • 特許6064237-メモリデータを移行するための方法、コンピュータ、および装置 図000003
  • 特許6064237-メモリデータを移行するための方法、コンピュータ、および装置 図000004
  • 特許6064237-メモリデータを移行するための方法、コンピュータ、および装置 図000005
  • 特許6064237-メモリデータを移行するための方法、コンピュータ、および装置 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6064237
(24)【登録日】2017年1月6日
(45)【発行日】2017年1月25日
(54)【発明の名称】メモリデータを移行するための方法、コンピュータ、および装置
(51)【国際特許分類】
   G06F 12/00 20060101AFI20170116BHJP
   G06F 12/16 20060101ALI20170116BHJP
【FI】
   G06F12/00 531M
   G06F12/16 310P
【請求項の数】22
【全頁数】38
(21)【出願番号】特願2016-504454(P2016-504454)
(86)(22)【出願日】2013年11月22日
(65)【公表番号】特表2016-512912(P2016-512912A)
(43)【公表日】2016年5月9日
(86)【国際出願番号】CN2013087650
(87)【国際公開番号】WO2015074235
(87)【国際公開日】20150528
【審査請求日】2015年9月29日
【早期審査対象出願】
(73)【特許権者】
【識別番号】504277388
【氏名又は名称】▲ホア▼▲ウェイ▼技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
(74)【代理人】
【識別番号】100146835
【弁理士】
【氏名又は名称】佐伯 義文
(74)【代理人】
【識別番号】100140534
【弁理士】
【氏名又は名称】木内 敬二
(72)【発明者】
【氏名】▲楊▼ ▲麗▼萍
(72)【発明者】
【氏名】▲呂▼ ▲騰▼
(72)【発明者】
【氏名】▲孫▼ ▲紅▼▲偉▼
【審査官】 田中 幸雄
(56)【参考文献】
【文献】 特開2003−208358(JP,A)
【文献】 特開2007−264976(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06F 12/16
(57)【特許請求の範囲】
【請求項1】
プロセッサと、
基本入出力システムと、
前記基本入出力システムの命令とオペレーティングシステムの命令とをコンピュータにロードするように構成され、2つ以上のメモリカードを備えているメインメモリと、
メモリコントローラとを備えているコンピュータにおいて、対応するメモリコントローラは、各メモリカードのために構成されていて、
前記プロセッサは、前記オペレーティングシステムの命令を実行して、前記オペレーティングシステムの命令を実行する時に第1のトリガ命令を受信し、かつ前記第1のトリガ命令に従って前記基本入出力システムのメモリデータ移行命令を実行するように構成されていて、前記プロセッサは、前記基本入出力システムのメモリデータ移行命令に従って、移行されるべきメモリデータのソースメモリカードを決定するオペレーションと、前記ソースメモリカードに対するバックアップメモリカードを決定するオペレーションと、前記ソースメモリカードのメモリコントローラに、前記メモリデータを移行することを命令するオペレーションとを実行し、
前記ソースメモリカードのメモリコントローラは、前記プロセッサの命令を受信して、前記プロセッサの命令に従って前記ソースメモリカードのメモリデータを前記バックアップメモリカードに移行するように構成されている
ことを特徴とするコンピュータ。
【請求項2】
前記プロセッサは、前記ソースメモリカードおよびバックアップメモリカードをミラーモードに設定して、前記ソースメモリカードのメモリコントローラに、前記ソースメモリカードのメモリデータを読み出すことを命令するために使用されるデータ読み出し命令を前記ソースメモリカードのメモリコントローラに送信し、かつ前記ソースメモリカードのメモリコントローラに、読み出されたデータを前記ソースメモリカードに書き戻すことを命令するために使用されるデータ書き込み命令を前記ソースメモリカードのメモリコントローラに送信するように構成されていて、
前記ソースメモリカードのメモリコントローラは、前記プロセッサのデータ読み出し命令に従って前記ソースメモリカードのメモリデータを読み出して、前記プロセッサによって送信されたデータ書き込み命令を受信し、かつ前記ソースメモリカードおよびバックアップメモリカードのミラーモードに従って前記ソースメモリカードの読み出されたメモリデータを前記バックアップメモリカードのメモリコントローラに送信するように構成されていて、
前記バックアップメモリカードのメモリコントローラは、前記ソースメモリカードの受信されたメモリデータを前記バックアップメモリカードに書き込むように構成されていることを特徴とする請求項1に記載のコンピュータ。
【請求項3】
前記プロセッサは、複数の移行のポリシーを取得して、前記複数の移行のポリシーに従って、前記ソースメモリカードのメモリコントローラに、前記メモリデータに対する複数の移行を実行することを命令するように構成されていることを特徴とする請求項1または2に記載のコンピュータ。
【請求項4】
前記プロセッサは、前記ソースメモリカードのメモリデータが前記バックアップメモリカードに完全に移行されるまで、前記複数の移行のポリシーに従って、
(a)現在の移行のデータの量を決定して、前記ソースメモリカードのメモリコントローラに、前記現在の移行のデータの量を前記バックアップメモリカードに移行することを命令するか、または現在の移行の持続時間を決定して、前記ソースメモリカードのメモリコントローラに、前記現在の移行の持続時間内に前記メモリデータを移行することを命令するステップと、
(b)前記ソースメモリカードのメモリコントローラが現在の移行を完了したと判定した後に、前記基本入出力システムを終了して、前記オペレーティングシステムの命令を実行するステップと、
(c)前記プロセッサに、前記基本入出力システムのメモリデータ移行命令の実行に戻るように命令するために使用される第2のトリガ命令を受信するステップと、
(d)前記基本入出力システムのメモリデータ移行命令に従ってステップ(a)の実行に戻るステップとを含むオペレーションを実行するように構成されている
ことを特徴とする請求項3に記載のコンピュータ。
【請求項5】
前記複数の移行のポリシーは、各移行のデータの指定された量または各移行の持続時間を含み、
前記プロセッサは、前記各移行のデータの指定された量に従って前記現在の移行のデータの量を決定するか、または前記各移行の持続時間に従って前記現在の移行の持続時間を決定することを特徴とする請求項4に記載のコンピュータ。
【請求項6】
前記複数の移行のポリシーは、各移行の間隔または中央演算処理装置の稼働状況をさらに含み、前記第2のトリガ命令は、前記各移行の間隔または前記中央演算処理装置の稼働状況に従ってトリガされる、ことを特徴とする請求項5に記載のコンピュータ。
【請求項7】
前記ソースメモリカードのメモリコントローラは、前記ソースメモリカード内の誤りのあるデータを監視して、誤りのあるデータの量が閾値を超えた場合に前記第1のトリガ命令をトリガするようにさらに構成されていて、
前記プロセッサは、前記ソースメモリカードのメモリコントローラによってトリガされた前記第1のトリガ命令を受信するように構成されている、ことを特徴とする請求項1から6のいずれか一項に記載のコンピュータ。
【請求項8】
前記ソースメモリカードのメモリコントローラは、前記メモリコントローラのレジスタ内に、前記ソースメモリカード内の誤りのあるデータの量が閾値を超えたことを記録するようにさらに構成されていて、
前記プロセッサは、前記ソースメモリカードのメモリコントローラのレジスタにクエリを実行して、前記ソースメモリカードを決定するように構成されている、ことを特徴とする請求項7に記載のコンピュータ。
【請求項9】
前記オペレーティングシステムは、メモリデータ移行開始ポリシーを設定するか、またはユーザによって送信されたメモリデータ移行開始命令を受信するようにさらに構成されていて、前記オペレーティングシステムは、前記メモリデータ移行開始ポリシーまたは前記メモリデータ移行開始命令に従って、前記プロセッサに、前記第1のトリガ命令を生成することを命令する、ことを特徴とする請求項1から6のいずれか一項に記載のコンピュータ。
【請求項10】
前記メモリデータ移行開始ポリシーまたは前記メモリデータ移行開始命令は、前記ソースメモリカードの識別子をさらに含み、
前記オペレーティングシステムは、前記プロセッサに、前記ソースメモリカードの識別子をストレージモジュールに記録することを命令するようにさらに構成されていて、
前記プロセッサは、前記ストレージモジュールにクエリを実行して、前記基本入出力システムのメモリデータ移行命令に従って前記ソースメモリカードの識別子を決定するように構成されている、ことを特徴とする請求項9に記載のコンピュータ。
【請求項11】
前記プロセッサは、前記オペレーティングシステムの命令または前記基本入出力システムの命令に従って、ストレージモジュール内に、前記バックアップメモリカードの識別子を事前構成するようにさらに構成されていて、
前記プロセッサが前記基本入出力システムのメモリデータ移行命令を実行した後に、前記プロセッサは、前記ストレージモジュールにクエリを実行して、前記バックアップメモリカードの事前構成された識別子を決定するように構成されている、ことを特徴とする請求項7から8のいずれか一項に記載のコンピュータ。
【請求項12】
コンピュータにおいてメモリデータを移行するために使用される、メモリデータを移行するための方法において、
前記コンピュータ内のプロセッサによって、オペレーティングシステムの命令を実行する時に第1のトリガ命令を受信するステップと、
前記プロセッサによって、前記第1のトリガ命令に従って基本入出力システムのメモリデータ移行命令を実行するステップと、
前記プロセッサによって、前記基本入出力システムのメモリデータ移行命令に従って、
移行されるべきメモリデータのソースメモリカードを決定するオペレーションと、
前記ソースメモリカードに対するバックアップメモリカードを決定するオペレーションと、
前記ソースメモリカードのメモリコントローラに、前記メモリデータを移行することを命令して、これにより前記ソースメモリカードのメモリコントローラが、前記プロセッサの命令に従って前記ソースメモリカードのメモリデータを前記バックアップメモリカードに移行するオペレーションとを実行するステップと
を含むことを特徴とする方法。
【請求項13】
前記プロセッサによって、前記ソースメモリカードおよびバックアップメモリカードをミラーモードに設定するステップをさらに含み、
前記プロセッサによって、前記ソースメモリカードのメモリコントローラに、前記メモリデータを移行することを命令して、これにより前記ソースメモリカードのメモリコントローラが、前記プロセッサの命令に従って前記ソースメモリカードのメモリデータを前記バックアップメモリカードに移行することは、
前記プロセッサによって、前記ソースメモリカードのメモリコントローラに、前記ソースメモリカードのメモリデータを読み出すことを命令するために使用されるデータ読み出し命令を前記ソースメモリカードのメモリコントローラに送信することと、
前記ソースメモリカードのメモリコントローラによって、前記プロセッサのデータ読み出し命令に従って前記ソースメモリカードのメモリデータを読み出すことと、
前記プロセッサによって、前記ソースメモリカードのメモリコントローラに、読み出されたデータを前記ソースメモリカードに書き戻すことを命令するために使用されるデータ書き込み命令を前記ソースメモリカードのメモリコントローラに送信することと、
前記ソースメモリカードのメモリコントローラによって、前記プロセッサによって送信されたデータ書き込み命令を受信し、かつ前記ソースメモリカードおよびバックアップメモリカードのミラーモードに従って前記ソースメモリカードの読み出されたメモリデータを前記バックアップメモリカードのメモリコントローラに送信し、これにより前記バックアップメモリカードのメモリコントローラが、前記ソースメモリカードの受信されたメモリデータを前記バックアップメモリカードに書き込むこととをさらに含む
ことを特徴とする請求項12に記載の方法。
【請求項14】
前記プロセッサによって、前記ソースメモリカードのメモリコントローラに、前記メモリデータを移行することを命令する前に、
前記プロセッサによって、複数の移行のポリシーを取得することと、
前記プロセッサによって、前記複数の移行のポリシーに従って、前記ソースメモリカードのメモリコントローラに、前記メモリデータに対する複数の移行を実行することを命令することとをさらに含む、
ことを特徴とする請求項12または13に記載の方法。
【請求項15】
前記プロセッサによって、前記複数の移行のポリシーに従って、前記ソースメモリカードのメモリコントローラに、前記メモリデータに対する複数の移行を実行することを命令することは、
(a)前記プロセッサによって、現在の移行のデータの量を決定して、前記ソースメモリカードのメモリコントローラに、前記現在の移行のデータの量を前記バックアップメモリカードに移行することを命令するか、または前記プロセッサによって、現在の移行の持続時間を決定して、前記ソースメモリカードのメモリコントローラに、前記現在の移行の持続時間内に前記メモリデータを移行することを命令するステップと、
(b)前記ソースメモリカードのメモリコントローラが現在の移行を完了したと判定した後に、前記プロセッサによって、前記基本入出力システムを終了して、前記オペレーティングシステムの命令を実行するステップと、
(c)前記プロセッサによって、前記プロセッサに、前記基本入出力システムのメモリデータ移行命令の実行に戻るように命令するために使用される第2のトリガ命令を受信するステップと、
(d)前記プロセッサによって、前記ソースメモリカードのメモリデータが前記バックアップメモリカードに完全に移行されるまで、前記基本入出力システムのメモリデータ移行命令に従ってステップ(a)の実行に戻るステップとを含む、
ことを特徴とする請求項14に記載の方法。
【請求項16】
前記複数の移行のポリシーは、各移行のデータの指定された量または各移行の持続時間を含み、
前記プロセッサは、前記各移行のデータの指定された量に従って前記現在の移行のデータの量を決定するか、または前記各移行の持続時間に従って前記現在の移行の持続時間を決定する、ことを特徴とする請求項15に記載の方法。
【請求項17】
前記複数の移行のポリシーは、各移行の間隔または中央演算処理装置の稼働状況をさらに含み、前記第2のトリガ命令は、前記各移行の間隔または前記中央演算処理装置の稼働状況に従ってトリガされる、ことを特徴とする請求項16に記載の方法。
【請求項18】
前記ソースメモリカードのメモリコントローラによって、前記ソースメモリカード内の誤りのあるデータを監視して、前記ソースメモリカードのメモリコントローラによって、誤りのあるデータの量が閾値を超えた場合に前記第1のトリガ命令をトリガするステップと、
前記プロセッサによって、前記ソースメモリカードのメモリコントローラによってトリガされた前記第1のトリガ命令を受信するステップとをさらに含む、
ことを特徴とする請求項12から17のいずれか一項に記載の方法。
【請求項19】
前記ソースメモリカードのメモリコントローラによって、前記メモリコントローラのレジスタ内に、前記ソースメモリカード内の誤りのあるデータの量が閾値を超えたことを記録するステップをさらに含み、
前記プロセッサによって、ソースメモリカードを決定することは、
前記プロセッサによって、前記ソースメモリカードのメモリコントローラのレジスタにクエリを実行して、前記ソースメモリカードを決定することを含む、
ことを特徴とする請求項18に記載の方法。
【請求項20】
前記コンピュータ内のプロセッサが、前記オペレーティングシステムの命令を実行する時に、前記方法は、
前記オペレーティングシステムによって、事前構成されたメモリデータ移行開始ポリシーまたはユーザのメモリデータ移行開始命令に従って、前記プロセッサに、前記第1のトリガ命令を生成することを命令するステップと、
前記プロセッサによって、前記プロセッサによって生成された前記第1のトリガ命令を受信するステップとをさらに含む、
ことを特徴とする請求項12から17のいずれか一項に記載の方法。
【請求項21】
前記事前構成されたメモリデータ移行開始ポリシーまたは前記メモリデータ移行開始命令は、前記ソースメモリカードの識別子をさらに含み、
前記方法は、前記プロセッサによって、前記ソースメモリカードの識別子をストレージモジュールに書き込むステップをさらに含み、
前記プロセッサによって、ソースメモリカードを決定することは、
前記プロセッサによって、前記ストレージモジュールにクエリを実行して、前記基本入出力システムのメモリデータ移行命令に従って前記ソースメモリカードを決定することを含む、
ことを特徴とする請求項20に記載の方法。
【請求項22】
前記プロセッサによって、前記ストレージモジュール内に、前記バックアップメモリカードの識別子を事前構成するステップをさらに含み、
前記プロセッサによって、バックアップメモリカードを決定することは、
前記プロセッサによって、前記ストレージモジュールにクエリを実行して、前記基本入出力システムのメモリデータ移行命令に従って、前記バックアップメモリカードの事前構成された識別子を決定することを含む、
ことを特徴とする請求項21に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ技術に関するものであり、特に、メモリデータを移行するための方法、コンピュータ、および装置に関するものである。
【背景技術】
【0002】
メモリ(Memory)は、メインメモリとも称され、コンピュータの重要なコンポーネントのうちの1つである。コンピュータ内のすべてのプログラムは、メモリ内で実行され、したがって、メモリの性能がコンピュータに大きな影響を及ぼす。メモリは、プロセッサの計算データ、およびハードディスクなどの外部メモリと交換されるデータを一時的に格納するために使用され得る。コンピュータが稼働している限り、プロセッサは、計算されるべきデータを計算のためにメモリに転送し、計算が完了した後に、プロセッサは、結果をメモリから転送する。メモリの稼働も、コンピュータの安定した稼働を決定する。
【0003】
X86アーキテクチャでは、サーバーはより多くのメモリをサポートする。最新のIntel E7 V2プロセッサについては、単一の最新のIntel E7 V2プロセッサは最大で2枚のメモリライザーをサポートすることができ、それぞれのメモリライザーは、最大で12枚のメモリモジュールをサポートすることができ、8Pシステム内のメモリモジュールの量は、192枚に達し得る。しかしながら、システム内のメモリの故障率は、現在、最大0.1%になることもあり、メモリ障害は、システムの不安定な動作を引き起こすだけでなく、システムのクラッシュをも引き起こし得る。
【0004】
従来技術では、コンピュータ内のメモリデータの移行は、実現され得ない。システム内でメモリ障害が発生した場合、障害のあるメモリライザーまたは障害のあるメモリモジュール内のデータの移行は、コンピュータが正常に稼働している場合、実現され得ない。その結果、オンラインメンテナンスは、障害のあるメモリ上では実行され得ず、障害のあるメモリライザーまたは障害のあるメモリモジュールは、最初にコンピュータの電源を切ってからでないと交換できない。
【発明の概要】
【課題を解決するための手段】
【0005】
本発明の実施形態は、コンピュータの電源が切られていない場合にメモリデータの移行を実現することができる、メモリデータを移行するための方法、コンピュータ、および装置を提供するものである。
【0006】
第1の態様によれば、本発明の一実施形態は、
プロセッサと、
基本入出力システムと、
基本入出力システムに格納されている命令とオペレーティングシステムの命令とをコンピュータにロードするように構成され、1つ以上のメモリカードを備えているメインメモリと、
メモリコントローラとを備えているコンピュータにおいて、対応するメモリコントローラは、各メモリカードのために構成されていて、
コンピュータ内で、プロセッサは、オペレーティングシステムの命令を実行して、オペレーティングシステムの命令を実行する時に第1のトリガ命令を受信し、かつ第1のトリガ命令に従って基本入出力システムのメモリデータ移行命令を実行するように構成されていて、プロセッサは、基本入出力システムのメモリデータ移行命令に従って、移行されるべきメモリデータのソースメモリカードを決定するオペレーションと、ソースメモリカードに対するバックアップメモリカードを決定するオペレーションと、ソースメモリカードのメモリコントローラに、メモリデータを移行することを命令するオペレーションとを実行し、
ソースメモリカードのメモリコントローラは、プロセッサの命令を受信して、プロセッサの命令に従ってソースメモリカードのメモリデータをバックアップメモリカードに移行するように構成されている、コンピュータを提供する。
【0007】
第1の態様に関して、第1の可能な実現方法において、プロセッサは、ソースメモリカードおよびバックアップメモリカードをミラーモードに設定して、ソースメモリカードのメモリコントローラに、ソースメモリカードのメモリデータを読み出すことを命令するために使用されるデータ読み出し命令をソースメモリカードのメモリコントローラに送信し、かつソースメモリカードのメモリコントローラに、読み出されたデータをソースメモリカードに書き戻すことを命令するために使用されるデータ書き込み命令をソースメモリカードのメモリコントローラに送信するように特に構成されていて、ソースメモリカードのメモリコントローラは、プロセッサのデータ読み出し命令に従ってソースメモリカードのメモリデータを読み出して、プロセッサによって送信されたデータ書き込み命令を受信し、かつソースメモリカードおよびバックアップメモリカードのミラーモードに従ってソースメモリカードの読み出されたメモリデータをバックアップメモリカードのメモリコントローラに送信するように特に構成されていて、バックアップメモリカードのメモリコントローラは、ソースメモリカードの受信されたメモリデータをバックアップメモリカードに書き込むように構成されている。
【0008】
第1の態様、または第1の態様の第1の可能な実現方法に関して、第2の可能な実現方法において、プロセッサは、複数の移行のポリシーを取得して、複数の移行のポリシーに従って、ソースメモリカードのメモリコントローラに、メモリデータに対する複数の移行を実行することを命令するように特に構成されている。
【0009】
第1の態様の第2の可能な実現方法に関して、第3の可能な実現方法において、プロセッサは、ソースメモリカードのメモリデータがバックアップメモリカードに完全に移行されるまで、複数の移行のポリシーに従って、(a)現在の移行のデータの量を決定して、ソースメモリカードのメモリコントローラに、現在の移行のデータの量をバックアップメモリカードに移行することを命令するか、または現在の移行の持続時間を決定して、ソースメモリカードのメモリコントローラに、現在の移行の持続時間内にメモリデータを移行することを命令するステップと、(b)ソースメモリカードのメモリコントローラが現在の移行を完了したと判定した後に、基本入出力システムを終了して、オペレーティングシステムの命令を実行するステップと、(c)プロセッサに、基本入出力システムのメモリデータ移行命令の実行に戻るように命令するために使用される第2のトリガ命令を受信するステップと、(d)基本入出力システムのメモリデータ移行命令に従ってステップ(a)の実行に戻るステップとを含むオペレーションを実行するように特に構成されている。
【0010】
第1の態様または第1の態様の第1の可能な実現方法、第2の可能な実現方法、もしくは第3の可能な実現方法に関して、第4の可能な実現方法において、ソースメモリカードのメモリコントローラは、ソースメモリカード内の誤りのあるデータを監視して、誤りのあるデータの量が閾値を超えた場合に第1のトリガ命令をトリガするようにさらに構成されていて、プロセッサは、ソースメモリカードのメモリコントローラによってトリガされた第1のトリガ命令を受信するように特に構成されている。
【0011】
第1の態様または第1の態様の第1の可能な実現方法、第2の可能な実現方法、もしくは第3の可能な実現方法に関して、第5の可能な実現方法において、オペレーティングシステムは、メモリデータ移行開始ポリシーを設定するか、またはユーザによって送信されたメモリデータ移行開始命令を受信するようにさらに構成されていて、オペレーティングシステムは、開始ポリシーまたは開始命令に従って、プロセッサに、第1のトリガ命令を生成することを命令する。
【0012】
第2の態様によれば、本発明の一実施形態は、コンピュータにおいてメモリデータを移行するために使用される、メモリデータを移行するための方法を提供し、この方法は、
コンピュータ内のプロセッサによって、オペレーティングシステムの命令を実行する時に第1のトリガ命令を受信するステップと、
プロセッサによって、第1のトリガ命令に従って基本入出力システムのメモリデータ移行命令を実行するステップと、
プロセッサによって、基本入出力システムのメモリデータ移行命令に従って、
移行されるべきメモリデータのソースメモリカードを決定するオペレーションと、
ソースメモリカードに対するバックアップメモリカードを決定するオペレーションと、
ソースメモリカードのメモリコントローラに、メモリデータを移行することを命令して、これによりソースメモリカードのメモリコントローラが、プロセッサの命令に従ってソースメモリカードのメモリデータをバックアップメモリカードに移行するオペレーションとを実行するステップとを含む。
【0013】
第2の態様に関して、第1の可能な実現方法において、この方法は、プロセッサによって、ソースメモリカードおよびバックアップメモリカードをミラーモードに設定するステップをさらに含み、プロセッサによって、ソースメモリカードのメモリコントローラに、メモリデータを移行することを命令して、これによりプロセッサの命令に従ってソースメモリカードのメモリコントローラがソースメモリカードのメモリデータを読み出して、ソースメモリカードの読み出されたメモリデータをバックアップメモリカードに書き込むことは、
プロセッサによって、ソースメモリカードのメモリコントローラに、ソースメモリカードのメモリデータを読み出すことを命令するために使用されるデータ読み出し命令をソースメモリカードのメモリコントローラに送信することと、
ソースメモリカードのメモリコントローラによって、プロセッサのデータ読み出し命令に従ってソースメモリカードのメモリデータを読み出すことと、
プロセッサによって、ソースメモリカードのメモリコントローラに、読み出されたデータをソースメモリカードに書き戻すことを命令するために使用されるデータ書き込み命令をソースメモリカードのメモリコントローラに送信することと、
ソースメモリカードのメモリコントローラによって、プロセッサによって送信されたデータ書き込み命令を受信し、かつソースメモリカードおよびバックアップメモリカードのミラーモードに従ってソースメモリカードの読み出されたメモリデータをバックアップメモリカードのメモリコントローラに送信し、これによりバックアップメモリカードのメモリコントローラが、ソースメモリカードの受信されたメモリデータをバックアップメモリカードに書き込むこととを含む。
【0014】
第2の態様、または第2の態様の第1の可能な実現方法に関して、第2の可能な実現方法において、プロセッサによって、ソースメモリカードのメモリコントローラに、メモリデータを移行することを命令する前に、この方法は、プロセッサによって、複数の移行のポリシーを取得することと、プロセッサによって、複数の移行のポリシーに従って、ソースメモリカードのメモリコントローラに、メモリデータに対する複数の移行を実行することを命令することとをさらに含む。
【0015】
第2の態様の第2の可能な実現方法に関して、第3の可能な実現方法において、プロセッサによって、複数の移行のポリシーに従って、ソースメモリカードのメモリコントローラに、メモリデータに対する複数の移行を実行することを命令することは、(a)プロセッサによって、現在の移行のデータの量を決定して、ソースメモリカードのメモリコントローラに、現在の移行のデータの量をバックアップメモリカードに移行することを命令するか、またはプロセッサによって、現在の移行の持続時間を決定して、ソースメモリカードのメモリコントローラに、現在の移行のその持続時間内にメモリデータを移行することを命令するステップと、(b)ソースメモリカードのメモリコントローラが現在の移行を完了したと判定した後に、プロセッサによって、基本入出力システムを終了して、オペレーティングシステムの命令を実行するステップと、(c)プロセッサによって、プロセッサに、基本入出力システムのメモリデータ移行命令の実行に戻るように命令するために使用される第2のトリガ命令を受信するステップと、(d)プロセッサによって、ソースメモリカードのメモリデータがバックアップメモリカードに完全に移行されるまで、基本入出力システムのメモリデータ移行命令に従ってステップ(a)の実行に戻るステップとを含む。
【0016】
第2の態様または第2の態様の第1の可能な実現方法、第2の可能な実現方法、もしくは第3の可能な実現方法に関して、第4の可能な実現方法において、ソースメモリカードのメモリコントローラは、ソースメモリカード内の誤りのあるデータを監視して、ソースメモリカードのメモリコントローラは、誤りのあるデータの量が閾値を超えた場合に第1のトリガ命令をトリガし、プロセッサは、ソースメモリカードのメモリコントローラによってトリガされた第1のトリガ命令を受信する。
【0017】
第2の態様または第2の態様の第1の可能な実現方法、第2の可能な実現方法、もしくは第3の可能な実現方法に関して、第5の可能な実現方法において、コンピュータ内のプロセッサが、オペレーティングシステムの命令を実行する時に、この方法は、オペレーティングシステムによって、事前構成されたメモリデータ移行開始ポリシーまたはユーザのメモリデータ移行開始命令に従って、プロセッサに、第1のトリガ命令を生成することを命令するステップと、プロセッサによって、プロセッサによって生成された第1のトリガ命令を受信するステップとをさらに含む。
【0018】
第3の態様により、本発明の一実施形態は、基本入出力システムを提供し、基本入出力システムは、コンピュータ実行可能命令を備え、コンピュータ内のプロセッサがコンピュータ実行可能命令を実行したときに、プロセッサは、
移行されるべきメモリデータのソースメモリカードを決定し、
ソースメモリカードに対するバックアップメモリカードを決定し、
ソースメモリカードのメモリコントローラに、メモリデータを移行することを命令して、これによりソースメモリカードのメモリコントローラが、プロセッサの命令に従ってソースメモリカードのメモリデータをバックアップメモリカードに移行する方法を実行する。
【0019】
第3の態様に関して、プロセッサは、コンピュータ実行可能命令に従って、ソースメモリカードおよびバックアップメモリカードをミラーモードに設定する方法をさらに実行し、ソースメモリカードのメモリコントローラに、メモリデータを移行することを命令して、これにより、命令に従って、ソースメモリカードのメモリコントローラがソースメモリカードのメモリデータを読み出して、ソースメモリカードの読み出されたメモリデータをバックアップメモリカードに書き込むことは、
ソースメモリカードのメモリコントローラに、ソースメモリカードのメモリデータを読み出すことを命令するために使用されるデータ読み出し命令をソースメモリカードのメモリコントローラに送信するステップと、
ソースメモリカードのメモリコントローラに、読み出されたデータをソースメモリカードに書き戻すことを命令するために使用されるデータ書き込み命令をソースメモリカードのメモリコントローラに送信して、これにより、ソースメモリカードのメモリコントローラが、プロセッサのデータ読み出し命令に従ってソースメモリカードのメモリデータを読み出して、データ書き込み命令を受信した後に、ソースメモリカードおよびバックアップメモリカードのミラーモードに従ってソースメモリカードの読み出されたメモリデータをバックアップメモリカードのメモリコントローラに送信するステップとを含む。
【0020】
第3の態様または第3の態様の第1の可能な実現方法に関して、第2の可能な実現方法において、プロセッサは、コンピュータ実行可能命令に従って、複数の移行のポリシーを取得し、複数の移行のポリシーに従って、ソースメモリカードのメモリコントローラに、メモリデータに対する複数の移行を実行することを命令する方法をさらに実行する。
【0021】
第3の態様の第2の可能な実現方法に関して、第3の可能な実現方法において、プロセッサによって、複数の移行のポリシーに従って、ソースメモリカードのメモリコントローラに、メモリデータに対する複数の移行を実行することを命令することは、現在の移行のデータの量を決定して、ソースメモリカードのメモリコントローラに、現在の移行のデータの量をバックアップメモリカードに移行することを命令するか、または現在の移行の持続時間を決定して、ソースメモリカードのメモリコントローラに、現在の移行の持続時間内にメモリデータを移行することを命令するステップと、ソースメモリカードのメモリコントローラが現在の移行を完了したと判定した後に、基本入出力システムを終了して、オペレーティングシステムの命令を実行するステップとを含む。
【0022】
第3の態様、または第1の可能な実現方法、第2の可能な実現方法、または第3の可能な実現方法に関して、第4の可能な実現方法において、基本入出力システムは、ソースメモリカードのメモリデータがバックアップメモリカードに完全に移行されたと判定した後に、ソースメモリカードのシステムアドレスで指し示されているターゲットメモリカードをバックアップメモリカードに変更するステップをさらに含む。
【0023】
本発明の実施形態では、第1のトリガ命令を受信した後に、プロセッサはオペレーティングシステムを終了して、基本入出力システムのメモリデータ移行命令を実行し、基本入出力システムのメモリデータ移行命令は、プロセッサが移行されるべきメモリデータのソースメモリカードを決定するステップと、ソースメモリカードに対するバックアップメモリカードを決定するステップと、ソースメモリカードのメモリコントローラに、ソースメモリカードのメモリデータを読み出し、ソースメモリカードの読み出されたメモリデータをバックアップメモリカードに書き込み、ソースメモリカードのメモリデータを移行できるようにすることを命令するステップとを実行することを可能にする。これは、コンピュータの電源が切られていない場合に障害のあるメモリカードのオンラインメンテナンスを実現し、コンピュータ全体の電源が切られている場合しか障害のあるメモリカードを交換またはメンテナンスできないという従来技術における問題点を解決する。
【0024】
本発明の実施形態における技術的解決策をより明確に説明するために、以下において、従来技術または実施形態の説明に必要な添付図面を簡単に紹介する。明らかに、以下の説明の添付図面は、本発明のいくつかの実施形態を示しているにすぎず、当業者であれば、創造的労力を費やすことなくこれらの添付図面から他の図面を導き出すことができる。
【図面の簡単な説明】
【0025】
図1】本発明の一実施形態によるコンピュータのシステムブロック図である。
図2】本発明の一実施形態によるメモリデータを移行するための方法の流れ図である。
図3】本発明の一実施形態によるメモリデータを移行するための別の方法の流れ図である。
図4】本発明の一実施形態によるメモリデータを移行するためのさらに別の方法の流れ図である。
図5】本発明の一実施形態による装置の構成図である。
【発明を実施するための形態】
【0026】
発明の実施形態は、コンピュータが正常に稼働している場合にメモリデータの移行を実現することができる、メモリデータを移行するための方法、コンピュータ、および装置を提供するものである。
【0027】
メモリデータの移行を実現するためのコンピュータ
図1は、本発明の一実施形態によるコンピュータの一例を示しており、コンピュータは、メインメモリ101、メモリコントローラ102、プロセッサ105、基本入出力(Basic Input Output System、BIOS)104、およびハードディスク(図1に図示せず)を備えることができる。メインメモリ101は、少なくとも1枚のメモリカードを備え、図1では、3つのメモリカードが一例として使用されており、これらはメモリカード101-A、101-B、および101-Cである。メモリコントローラ102は、メインメモリ101を制御するように構成され、対応するメモリコントローラ102は、メインメモリ101内のそれぞれのメモリカードに対して構成されるものとしてよく、たとえば、メモリコントローラ102-Aはメモリカード101-Aに対して、メモリコントローラ102-Bはメモリカード101-Bに対して、メモリコントローラ102-Cはメモリカード101-Cに対して構成され得る。特に、この実施形態におけるメモリカードは、メモリライザーまたはメモリモジュールなどの、メモリとして使用され得るストレージ媒体であってよく、1枚のメモリカードは、1枚のメモリモジュールまたは1枚のメモリライザーを指すものとしてよく、また複数のメモリモジュールのセットまたは複数のメモリライザーのセットを指していてもよい。対応するメモリコントローラは、それぞれのメモリカードについて構成される。メモリカードとメモリコントローラの間には、一対一、一対多、または多対一の対応関係があり得る。図1は、本発明の実現の例の1つにすぎない。
【0028】
コンピュータの電源が投入された後、メインメモリ101は、コンピュータの電源が投入され、起動されたときにコンピュータ内にBIOS104の命令とオペレーティングシステム(Operating System、OS)103の、ハードディスクに格納されている命令とをロードすることができる。プロセッサ105は、コンピュータにおいてBIOS104の命令またはオペレーティングシステム(Operating System、OS)103の命令を実行することができる。たとえば、プロセッサ105は、BIOS104の命令を実行して、コンピュータ内のデバイスを初期化し、OS103の命令を実行して、メモリカード上で読み出し/書き込みオペレーションを実行することができる。プロセッサ105は、もっぱら、CPUコア部を指しており、1つのCPUコアであるか、または複数のCPUコアのセットであってよい。本発明のこの実施形態では、プロセッサ105は、複数のCPUコアのセットである。BIOS104は、処理チップであってよく、複数の処理命令が処理チップに登録されており、プロセッサ105は、これらの処理命令を実行することができる。
【0029】
この実施形態では、メモリデータの移行を実現するために、バックアップメモリカードがコンピュータ内でソースメモリカードのメモリデータの移行先であるターゲットメモリカードとして働くように構成される必要があり、それに加えて、メモリデータの移行元のメモリカードは、この実施形態では、ソースメモリカードと称される。図1に示されている実施形態では、メモリカード101-Aおよび101-Bは、ソースメモリカードであり、メモリカード101-Cは、本発明のこの実施形態において構成されているバックアップメモリカードである。この実施形態では、コンピュータに対して1枚のバックアップメモリカード101-Cが指定されている一例が使用されているが、実際には、コンピュータに対して複数のバックアップメモリカードが指定され得る。本発明のこの実施形態で言及されているメモリデータの移行の目的は、バックアップメモリカードでソースメモリカードのメモリデータを取得することを可能にすることであり、移行の目的を達成するために、メモリデータを複製、コピー、または移行するなどの方法が、特定の実現において使用され得る。すべての前述の特定の実現方法は、移行の目的、すなわち、バックアップメモリカードでソースメモリカードのメモリデータを取得することを可能にすることが達成される限り、本発明のこの実施形態において「移行」の範囲内にある。
【0030】
本発明のこの実施形態では、BIOS104は、改善することができ、たとえば、新しいメモリデータ移行命令をBIOS104に登録することができ、これにより、プロセッサは、BIOS104のメモリデータ移行命令を実行して、メモリデータの移行を実現する。
【0031】
本発明のこの実施形態におけるコンピュータのコンポーネントは、以下のオペレーションを実行することができる。
【0032】
プロセッサ105は、OS103の命令を実行するときにメモリデータ移行トリガ命令を受信し、メモリデータ移行トリガ命令に従ってOS103を終了して、BIOS104のメモリデータ移行命令を実行するように構成され、BIOS104のメモリデータ移行命令は、プロセッサが、移行されるべきメモリデータのソースメモリカード、たとえば、ソースメモリカード101-Aを決定するオペレーションと、ソースメモリカードに対するバックアップメモリカード、たとえば、バックアップメモリカード101-Cを決定するオペレーションと、ソースメモリカードのメモリコントローラ102-Aに、メモリデータを移行することを命令するオペレーションとを実行することを可能にする。
【0033】
ソースメモリカードのメモリコントローラ102-Aは、プロセッサの命令を受信し、プロセッサの命令に従ってソースメモリカード101-Aのメモリデータを読み出し、ソースメモリカード101-Aの読み出されたメモリデータをバックアップメモリカードに書き込み、ソースメモリカード101-Aのデータのバックアップメモリカード101-Cへの移行を実現するように構成される。
【0034】
本発明のこの実施形態では、プロセッサ105は、OSの命令を実行しているときにメモリデータ移行トリガ命令を受信し、メモリデータ移行トリガ命令に従ってOS103を終了して、BIOS104のメモリデータ移行命令を実行し、ソースメモリカード101-Aのデータがバックアップメモリカード101-Cに書き込まれるように実現することができる。このようにして、ソースメモリカード101-Aのメモリデータは、コンピュータの電源が切られていない場合に移行することができ、これにより、障害のあるメモリカードのオンラインメンテナンスを実現し、障害のあるメモリカードは、コンピュータ全体の電源が切られているときしか交換またはメンテナンスを行えないという従来技術における問題点を解決することができる。それに加えて、プロセッサは、BIOSの命令を実行してメモリデータの移行を完了させ、したがって、OSカーネルモジュールが配置されているメモリカードのデータの移行を実現することができ、OSオペレーションを用いたのではOSカーネルモジュールのデータを移行できないという問題が回避される。
【0035】
以下では、本発明のこの実施形態を詳細に紹介する。
【0036】
バックアップメモリカードの構成について
この実施形態では、メモリデータ移行命令が正しく実行されることを保証するために、移行されるべきメモリデータのターゲットデバイスとして使用されるバックアップメモリカードには、コンピュータ内の別のメモリカードと異なる点がある。たとえば、バックアップメモリカードは、メモリデータの移行が完了する前には、OS103には不可視である、すなわち、OS103は、バックアップメモリカード上で読み出し/書き込みオペレーションを実行することができない。プロセッサ105は、BIOS104の命令を実行して、バックアップメモリカード101-C上で特別な初期化を実行することができ、これにより、バックアップメモリカード101-Cは準備が整い、通常のように使用され得る。しかしながら、初期化プロセスは、システムアドレスをバックアップメモリカード101-Cに割り当てることを回避し、したがって、OS103は、バックアップメモリカード101-C上で読み出し/書き込みオペレーションを実行することができない。このようにして、ソースメモリカードのメモリデータが、バックアップメモリカードに完全に移行されることが保証され、また移行されたデータが移行プロセスにおいて他のデータによって上書きされず、したがって移行されたメモリデータの破損を回避することが保証され得る。
【0037】
バックアップメモリカードの構成は以下を含み得る。
【0038】
1.バックアップメモリカードの識別子を指定し、記録する。バックアップメモリカードの識別子は、ユーザがバックアップメモリカードをハードウェアスロット内に挿入した後にOS103を使用することによってコンピュータ内のストレージモジュールに記録され、たとえば、高度構成および電源故障管理インターフェース(Advanced Configuration and Power Management Interface、ACPI)リストに記録され、ACPIリストは、OS103とBIOS104との間で交換される情報テーブルのセットであり、OS103およびBIOS104は両方とも、ACPIリスト上でクエリオペレーションを実行することができることがあり得る。この場合、コンピュータ内にハードウェアとして存在するメモリカードは、バックアップメモリカードとして指定される。また、ユーザは、バックアップメモリカードをハードウェアスロット内に挿入せず、その代わりに、バックアップメモリカードがその後挿入されることになるハードウェアスロットのスロット番号が指定され、指定されたスロット番号が、バックアップメモリカードの識別子として記録されることもあり得る。この場合、コンピュータ内にハードウェアとして存在しなくなったメモリカードは、バックアップメモリカードとして指定される。
【0039】
バックアップメモリカードの識別子が指定され、記録されるが、プロセッサ105は、その後、バックアップメモリカードを記録するために使用されるストレージモジュール、たとえば、ACPIリストにクエリを実行して、バックアップメモリカードを決定することができる。
【0040】
2.バックアップメモリカード上で特別な初期化を実行する。バックアップメモリカードが指定された後、特別な初期化が、バックアップメモリカード上で実行されるものとしてよく、これにより、バックアップメモリカードは準備が整い、コンピュータは、ソースメモリカードのメモリデータをバックアップメモリカードに書き込むことができる。バックアップメモリカードを初期化するために、メモリカードがハードウェアスロット内に挿入される必要がある。実際、バックアップメモリカードをハードウェアスロット内に挿入するための時間は、非常にフレキシブルであるものとしてよい。バックアップメモリカードは、バックアップメモリカードが指定される前、バックアップメモリカードが指定された後、またはメモリデータが移行される前に随時、挿入され得る。特に、初期化シナリオは、2つの種類に分類され得る。1つの種類では、メモリデータの移行が開始される前に、ユーザーがバックアップメモリカード上のボタンを押すと、ボタンが初期化割り込みを発生させ、これにより、BIOS104がバックアップメモリカード上で特別な初期化を実行する。他の種類では、メモリデータの移行が開始された後、バックアップメモリカードが初期化されていないことをBIOSが検出した場合、バックアップメモリカードの初期化が一時的に起動され得る。
【0041】
バックアップメモリカード上で実行される特別な初期化は、バックアップメモリカードの構成を参照し、したがって、バックアップメモリカードの準備が整い、通常どおり使用され得るが、OS103には不可視である。初期化プロセスは、初期化プロセスにおけるバックアップメモリカードへのシステムアドレスの割り当てを除き、通常の初期化のさまざまなアクションを含む。たとえば、バックアップメモリカードの初期化は、バックアップメモリカードに電力を供給するステップ、関係する性能などのパラメータを構成するステップ、バックアップメモリカードとコンピュータ内のプロセッサとの間の通信接続を構成するステップ、通常の読み出し/書き込みオペレーションがバックアップメモリカード上で実行され得るかどうかを検出するステップ、および同様のステップを含み得る。バックアップメモリカードが初期化されるときに、バックアップメモリカードへのシステムアドレスの割り当ては、回避され、したがって、OS103はバックアップメモリカードのシステムアドレスを取得することができず、バックアップメモリカード上で呼び出し/書き込みオペレーションを実行することができない。すなわち、バックアップメモリカードの準備が整っているが、OSには不可視であり、この場合、OSは、バックアップメモリカードを使用することができない。
【0042】
メモリデータの移行のトリガについて
本発明のこの実施形態では、メモリデータの移行の開始は、ソースメモリカードの故障条件またはユーザの要求条件に従ってトリガされる。すなわち、コンピュータの電源が投入され、起動された後、コンピュータは、通常、OS103の命令を実行し、受信されたメモリデータ移行トリガ命令に従って、BIOS104に切り替えて、BIOS104の命令を実行し、メモリデータの移行を実現する。本発明のこの実施形態では、プロセッサ105は、メモリデータ移行トリガ命令を受信したときのみメモリデータを移行する。すなわち、メモリデータは、ユーザによって指定されたソースメモリカードまたは特定の障害を有するソースメモリカードについて、固定されたソースメモリカードを予め指定する必要も、またソースメモリカードとバックアップメモリカードとのミラー関係を事前構成する必要のいずれもなく、移行される。したがって、本発明のこの実施形態において、メモリデータの移行は、特定のソースメモリカードについてトリガされ、これは、障害の適切なタイミングでの処理を保証するだけでなく、コンピュータのリソースを節約し、コンピュータの高い効率も保証する。
【0043】
本発明のこの実施形態では、メモリデータ移行トリガ命令は、プロセッサ105に、OS103を終了して、BIOS104のメモリデータ移行命令を実行し、メモリデータの移行を実現することを命令するために使用される。本発明のこの実施形態では、メモリデータの1回限りの移行が実現されるが、メモリデータの複数回の移行も実現されるものとしてよく、したがって、本発明のこの実施形態において、メモリデータ移行トリガ命令は、第1のトリガ命令および第2のトリガ命令を含むことができ、メモリデータの最初の移行を開始するためのメモリデータ移行トリガ命令は、第1のトリガ命令と称され、メモリデータの後続の移行をトリガするためのメモリデータ移行トリガ命令は、第2のトリガ命令と称される。
【0044】
第1のトリガ命令は、フレキシブルにトリガされ得る。たとえば、第1のトリガ命令は、OS103の命令に従ってプロセッサ105によってトリガされ、第1のトリガ命令は、ソースメモリカードのメモリコントローラ102-Aによってもトリガされ得る。特に、たとえば、以下のことが言える。
【0045】
(1)ソースメモリカードのメモリコントローラ102-Aおよび102-Bは、それぞれソースメモリカード101-Aおよび101-B内の誤りのあるデータをさらに監視することができ、ソースメモリカード101-Aおよび101-B内の誤りのあるデータの量が閾値を超えた場合、対応するメモリコントローラは、第1のトリガ命令をトリガし得る。たとえば、ソースメモリカード101-A内の誤りのあるデータの量が閾値を超えた場合、メモリコントローラ102-Aは、第1のトリガ命令をトリガし、プロセッサ105は、ソースメモリカードのメモリコントローラ102-Aによってトリガされた第1のトリガ命令を受信し、OS103を終了して、BIOS104のメモリデータ移行命令を実行することができる。特に、第1のトリガ命令は、システムマネジメント割り込み(System Management Interrupt、SMI)であってよい。
【0046】
(2)第1のトリガ命令は、ユーザによって送信されたメモリデータ移行開始命令に従ってOSによって直接トリガされるプロセッサによって生成され、またOSにおいてユーザによって事前構成されたメモリデータ移行開始ポリシーに従ってOSによっても生成され得る。たとえば、ユーザは、命令をOSに直接送信し、OSは、ユーザの命令に従って、プロセッサに、第1のトリガ命令を生成することを命令するか、または、たとえば、ユーザは、プロセッサの時間または稼働状況に応じてメモリデータ移行が開始されるという開始ポリシーをOSにおいて事前構成し、OSは、プロセッサに、開始ポリシーの条件が満たされたときに第1のトリガ命令を生成することを命令する。プロセッサ105は、プロセッサ105によってトリガされた第1のトリガ命令を受信し、OS103を終了して、BIOS104のメモリデータ移行命令を実行することができる。
【0047】
メモリデータの複数回の移行の実現について
本発明の実施形態のうちの好ましい実施形態において、メモリデータは、複数回移行される。メモリデータを移行するプロセスにおいて、プロセッサ105が、メモリデータを移行するためにBIOS104の命令をずっと実行し続けている場合、プロセッサ105は、比較的長い時間にわたってサービスを処理するOS103の命令を実行できず、そのため、コンピュータの通常の稼働に影響を及ぼし、その結果、他のサービスの処理が長時間中断状態に置かれ、ユーザエクスペリエンスに影響を及ぼし、したがって、プロセッサ105は、メモリデータについては移行を複数に分けて実行することができる。たとえば、メモリデータの1回の移行が完了した後、プロセッサ105は、BIOS104を終了して、OS103の命令を実行し、通常のサービス処理を実行することができ、メモリデータの次の移行までに、プロセッサ105は、OS103を終了して、BIOS104のメモリデータ移行命令を再び実行し、メモリデータの移行を継続する。メモリデータを複数回で移行するこの方法により、プロセッサは、OS103およびBIOS104の命令を交互に実行して、メモリデータの移行を最終的に完了することができ、それによって、システムサービスの長時間の中断を回避し、システムの通常の稼働を保証する。
【0048】
メモリデータを複数回で移行する方法について本発明の別の実施形態において、BIOS104のメモリデータ移行命令はさらに改善されるものとしてよく、プロセッサ105は、BIOS104のメモリデータ移行命令を実行するときに複数の移行のポリシーを取得し、複数の移行のポリシーに従って、ソースメモリカードのメモリコントローラ102-Aに、メモリデータに対する複数の移行を実行することを命令することができる。複数の移行のポリシーは、ユーザによって構成され得る。たとえば、ユーザは、要求条件に従ってそれぞれの移行のデータの量またはそれぞれの移行の持続時間を指定することができ、プロセッサ105が、BIOS104のメモリデータ移行命令を実行するときに、プロセッサ105は、ソースメモリカード101-Aのメモリデータがバックアップメモリカード101-Cに完全に移行されるまで、それぞれの移行のデータの指定された量またはそれぞれの移行の指定された持続時間に従って以下のオペレーション(a)から(d)を実行することができる。これらのオペレーション(a)から(d)は、
(a)それぞれの移行のデータの指定された量に従って現在の移行のデータの量を決定し、ソースメモリカードのメモリコントローラ102-Aに、現在の移行のその量のデータをバックアップメモリカード101-Cに移行することを命令するか、またはそれぞれの移行の持続時間に従って現在の移行の持続時間を決定し、ソースメモリカードのメモリコントローラ102-Aに、現在の移行の持続時間内にメモリデータを移行することを命令するか、またはプロセッサの稼働状況に従って、ソースメモリカードのメモリコントローラ102-Aに、プロセッサの稼働状況がアイドル状態である期間内にメモリデータを移行することを命令するステップであって、プロセッサの稼働状況がアイドル状態であるということは、プロセッサの使用度が設定された閾値より低いことであるとしてよい、ステップと、
(b)ソースメモリカードのメモリコントローラ102-Aが現在の移行を完了したと判定した後に、BIOS104を終了して、OS103の命令を実行するステップと、
(c)第2のトリガ命令を受信するステップであって、第2のトリガ命令は、プロセッサに、BIOS104の命令を実行し、メモリデータの移行を継続することに戻るように命令するために使用される、ステップと、
(d)ステップ(a)を実行することに戻るステップとを含む。
【0049】
プロセッサ105は、前述のオペレーション(a)から(d)を実行することによって、複数回、ソースメモリカード101-Aのデータをバックアップメモリカード101-Cに移行する。
【0050】
第2のトリガ命令は、OS103の命令に従ってプロセッサ105によってトリガされ、また、第2のトリガ命令の事前構成されたトリガ条件に従ってトリガされ得る。たとえば、第2のトリガ命令のトリガ条件は、移行ポリシーにおいて構成され、第2のトリガ命令のトリガ条件は、それぞれの移行の間隔またはプロセッサの稼働状況を含み得る。プロセッサ105は、それぞれの移行の間隔に従ってメモリ移行タイマーを構成することができ、これにより、メモリ移行タイマーは、それぞれの移行の間隔に従って第2のトリガ命令をトリガし、たとえば、メモリ移行タイマーは、コンピュータ内のサウスブリッジにおいて構成され得る。代替的に、プロセッサ105は、プロセッサ105の稼働状況に従って第2のトリガ命令をトリガし、たとえば、プロセッサ105は、プロセッサ105の稼働状況がアイドル状態である場合に第2のトリガ命令をトリガする。
【0051】
本発明のこの実施形態では、プロセッサ105は、複数の移行のポリシーに従って、ソースメモリカードのメモリコントローラ102-Aに、ソースメモリカードのメモリデータをバックアップメモリカードに複数回で移行することを命令することができ、これにより、メモリデータを移行するプロセスにおいて、要求条件に従って、プロセッサ105は、OS103を終了して、BIOS104のメモリデータ移行命令を実行するか、またはBIOS104を終了して、OS103の命令を実行し、サービス処理を実行することができる。このようにして、コンピュータのサービスは時間どおりに処理することができ、大量のメモリデータの移行によって引き起こされるコンピュータのサービスの長時間にわたる中断は回避され、コンピュータの通常の稼働が保証される。
【0052】
ソースメモリカードおよびバックアップメモリカードをミラーモードに設定するステップについて
メモリデータが移行される前に、プロセッサ105は、ソースメモリカードおよびバックアップメモリカードをミラーモードにさらに設定することができ、これにより、ソースメモリカードのメモリコントローラ102-Aは、プロセッサ105の命令およびミラーモードに従ってソースメモリカードのメモリデータをバックアップメモリカードに書き込むことができる。
【0053】
特に、プロセッサ105が、BIOS104のメモリデータ移行命令を実行し、ソースメモリカード101-Aおよびバックアップメモリカード101-Cを決定した後に、バックアップメモリカードの識別子は、ソースメモリカードのメモリコントローラ102-Aにおいて構成され、ソースメモリカードの識別子は、バックアップメモリカードのメモリコントローラ102-Cにおいて構成され、これにより、ソースメモリカード101-Aおよびバックアップメモリカード101-Cは、ミラーモードに設定される。確かに、ミラーモードを設定するステップは、ソースメモリカード101-Aとバックアップメモリカード101-Cとの間のデータ伝送路を確立するなどの、オペレーションをさらに含んでおり、特定の実現については、ここで詳しく説明しない。
【0054】
BIOS104のメモリデータ移行命令を実行するときに、プロセッサ105は、BIOS104の命令に従ってデータ読み出し命令をソースメモリカードのメモリコントローラにさらに送信することができ、データ読み出し命令は、ソースメモリカードのメモリコントローラ102-Aに、ソースメモリカード101-Aのデータを読み出すことを命令するために使用され、データ読み出し命令のメッセージであり、ソースメモリカードのメモリコントローラ102-Aによって送信される応答メッセージを受信した後に、プロセッサ105は、データ書き込み命令をソースメモリカードのメモリコントローラ102-Aにさらに送信することができ、データ書き込み命令は、ソースメモリカードのメモリコントローラ102-Aに、読み出されたデータをソースメモリカード101-Aに書き戻すことを命令するために使用される。したがって、ソースメモリカードのメモリコントローラ102-Aは、プロセッサ105によって送信されたデータ読み出し命令に従ってソースメモリカード101-Aのデータを読み出し、読み出されたデータを、プロセッサ105によって送信されたデータ書き込み命令に従ってソースメモリカード101-Aに書き戻し、バックアップメモリカードのものである識別子に従って、読み出されたデータをバックアップメモリカードのメモリコントローラ102-Cに書き込み、これはソースメモリカードのメモリコントローラ102-Aにおいて構成され、バックアップメモリカードのメモリコントローラ102-Cは、受信されたデータをバックアップメモリカード101-Cに書き込み、これにより、ソースメモリカード101-Aのデータのバックアップメモリカード101-Cへの移行を実現する。
【0055】
前述の方法を用いて、プロセッサ105は、ソースメモリカード101-Aのすべてのデータをバックアップメモリカード101-Cに移行することができ、これはメモリデータの完全な移行を保証する。それに加えて、ソースメモリカードおよびバックアップメモリカードは、ミラーモードに設定されるので、プロセッサ105が、BIOSを終了して、OSの命令を実行するときに、ソースメモリカード上でOSによって実行された書き込みオペレーションも、バックアップメモリカードに書き込まれ、これはバックアップメモリカードに移行されたメモリデータの正確さを保証する。
【0056】
誤りのないデータの移行について
メモリカード内に誤りのあるデータが過剰にあると、メモリカードの障害またはコンピュータの再起動を引き起こす可能性があり、したがって、誤りのないデータのみが、メモリデータの移行のプロセスにおいて移行され得る。
【0057】
BIOS104のメモリデータ移行命令を実行してメモリデータを移行する場合、プロセッサは、ソースメモリカードのメモリコントローラ102-Aに、ソースメモリカード101-A内の誤りのないデータを判定することをさらに命令し、検出結果に従って検出マークを付けることができる。たとえば、ソースメモリカードのメモリコントローラ102-Aによって判定された誤りのないデータに関する情報が取得され、これにより、ソースメモリカードのメモリコントローラ102-Aは、検出マークに従って、誤りのないデータを移行することを命令され、これにより、ソースメモリカード101-A内の誤りのあるデータをバックアップメモリカード101-Cに移行することによって引き起こされ得るコンピュータの再起動またはバックアップメモリカード101-C内の障害の発生を回避することができる。
【0058】
移行条件について
メモリデータが正常に移行されることを保証するために、メモリデータが移行される前に、プロセッサ105は、バックアップメモリカード101-Cが移行条件を満たしているかどうか、すなわち、バックアップメモリカード101-Cがソースメモリカード101-Aのデータの移行先であるターゲットデバイスとして使用され得るかどうかをチェックして、バックアップメモリカード101-Cの初期化が完了していない、記憶容量が不十分である、または同様の場合によって引き起こされるデータ移行失敗を防止することができる。
【0059】
特に、BIOS104のメモリデータ移行命令を実行するときに、プロセッサは、ソースメモリカードのメモリコントローラ102-Aに、ソースメモリカード101-Aのデータをバックアップメモリカード101-Cに移行することを命令する前に、バックアップメモリカード101-Cの初期化が完了しているかどうかを判定するオペレーションと、バックアップメモリカード101-Cの初期化が完了している場合に、ソースメモリカード101-Aおよびバックアップメモリカード101-Cをミラーモードに設定し、その後、メモリデータを移行するオペレーションとをさらに実行することができる。
【0060】
BIOS104のメモリデータ移行命令を実行するときに、プロセッサ105は、バックアップメモリカード101-Cの記憶容量が、ソースメモリカード101-Aの記憶容量よりも大きいかどうかをさらに判定することができ、バックアップメモリカード101-Cの記憶容量が、ソースメモリカード101-Aの記憶容量よりも大きい場合、移行条件が満たされていると判定され、ソースメモリカード101-Aのメモリデータは、その後、バックアップメモリカード101-Cに移行され得る。
【0061】
BIOS104のメモリデータ移行命令を実行するときに、プロセッサ105は、ソースメモリカード101-Aおよびバックアップメモリカード101-Cが同じプロセッサによって制御されているかどうかをさらに判定することができ、制御されていなければ、ソースメモリカード101-Aのデータは、バックアップメモリカード101-Cに移行され得ることが指示され、これにより、ソースメモリカード101-Aおよびバックアップメモリカード101-Cをミラーモードに設定し、その後、メモリデータを移行する。
【0062】
メモリデータの移行が完了した後のバックアップメモリカードおよびソースメモリカードの交換について
ソースメモリカードのメモリコントローラ102-Aが、ソースメモリカード101-Aのデータをバックアップメモリカード101-Cに完全に移行した後、プロセッサ105が、BIOS104のメモリデータ移行命令を実行するときに、ソースメモリカード101-Aのシステムアドレスとバックアップメモリカード101-Cとの間のマッピング関係がさらに確立されるものとしてよく、ソースメモリカードのシステムアドレスによって指し示されているターゲットメモリカードは、バックアップメモリカードに変更され、これにより、バックアップメモリカード101-Cは、ソースメモリカード101-Aを交換し、ソースメモリカード101-A上でOS103によって実行されるすべての読み出し/書き込みオペレーションを引き継ぐことができる。
【0063】
ソースメモリカードが、バックアップメモリカードと交換された後、プロセッサ105は、ソースメモリカード101-A上で電源遮断オペレーションをさらに実行することができ、これにより、ソースメモリカード101-Aは、コンピュータの電源が切られていない場合に取り外しまたは交換が行われ、これにより、コンピュータ全体の電源が切られている場合しか障害のあるメモリカードを交換またはメンテナンスできないという従来技術における問題点を解決することができる。
【0064】
メモリデータを移行するための方法
図1に示されているコンピュータに関して、本発明の一実施形態は、コンピュータにおいてメモリデータを移行するために使用される、メモリデータを移行するための方法を提供し、メモリデータ移行命令は、コンピュータ内の基本入出力システムに格納されている。図2に示されているように、この方法は、以下のステップを含む。
【0065】
S201:コンピュータ内のプロセッサは、OSの命令を実行するときに第1のトリガ命令を受信する。
【0066】
第1のトリガ命令は、ソースメモリカードの障害条件に従ってソースメモリカードのメモリコントローラによってトリガされ得る。たとえば、ソースメモリカードのメモリコントローラが、ソースメモリカード内にエラーが複数回発生したことを検出し、プリセットされた閾値に達した場合に、第1のトリガ命令がトリガされて、プロセッサに、エラーが複数回発生しているソースメモリカードに対するメモリデータ移行を開始することを命令することができる。また、OSは、ユーザの命令に従って、第1のトリガ命令をトリガするようにプロセッサをトリガすることもあり得る。たとえば、ユーザが移行を必要としている場合、ユーザは、開始命令をOSにアクティブに送信することができ、OSは、開始命令に従って、プロセッサに、第1のトリガ命令をトリガすることを命令する。別の例では、ユーザは、OSにおいて開始ポリシーを事前構成することができ、開始ポリシーの条件が満たされたときに、プロセッサは、第1のトリガ命令をトリガするようにトリガされる。
【0067】
S202:プロセッサは、第1のトリガ命令に従って、BIOSのメモリデータ移行命令を実行する。
【0068】
第1のトリガ命令を取得した後、プロセッサは、オペレーティングシステムを終了して、BIOSのメモリデータ移行命令を実行し、BIOSのメモリデータ移行命令は、プロセッサがステップS203からステップS205を実行することを可能にする。
【0069】
S203:プロセッサは、BIOSのメモリデータ移行命令に従って移行されるべきメモリデータのソースメモリカードを決定する。
【0070】
S204:プロセッサは、BIOSのメモリデータ移行命令に従ってソースメモリカードに対するバックアップメモリカードを決定する。
【0071】
プロセッサは、ソースメモリカードのターゲットメモリカードを決定することができ、一般的に、ターゲットメモリカードは、バックアップメモリカードである。バックアップメモリカードは、事前構成され得る。
【0072】
S205:プロセッサは、BIOSのメモリデータ移行命令に従って、ソースメモリカードのメモリコントローラに、メモリデータを移行することを命令し、これにより、ソースメモリカードのメモリコントローラが、プロセッサの命令に従ってソースメモリカードのメモリデータをバックアップメモリカードに移行する。
【0073】
ソースメモリカードおよびバックアップメモリカードを決定した後、プロセッサは、BIOSのメモリデータ移行命令に従って、ソースメモリカードのメモリコントローラに、ソースメモリカードのメモリデータを読み出し、読み出されたデータをバックアップメモリカードに書き込むことを命令し、これにより、ソースメモリカードのメモリデータのバックアップメモリカードへの移行を実現することができる。本発明のこの実施形態では、プロセッサは、第1のトリガ命令を受信し、第1のトリガ命令に従って、オペレーティングシステムを終了して、BIOSのメモリデータ移行命令を実行することができ、BIOSのメモリデータ移行命令は、プロセッサが移行されるべきメモリデータのソースメモリカードおよびソースメモリカードのバックアップメモリカードを決定し、ソースメモリカードのメモリコントローラに、ソースメモリカードのメモリデータをバックアップメモリカードに書き込むことを命令することを可能にし、これにより、ソースメモリカードのメモリデータは、コンピュータの電源が切られていない場合に移行することができ、これにより、障害のあるメモリカードのオンラインメンテナンスを実現し、障害のあるメモリカードは、コンピュータ全体の電源が切られているときしか交換またはメンテナンスを行えないという従来技術における問題点を解決することができる。それに加えて、プロセッサは、BIOSの命令を実行してメモリデータの移行を完了させ、したがって、OSカーネルモジュールが配置されているメモリカードのデータの移行を実現することができ、OSカーネルモジュールのデータを移行できないという問題が回避される。
【0074】
方法の特定の実施形態1
図1に示されているコンピュータに関して、図3に示されているように、本発明の一実施形態は、コンピュータにおいてメモリデータを移行するために使用される、メモリデータを移行するための方法を提供し、メモリデータ移行命令は、コンピュータ内のBIOSに格納される。たとえば、ソースメモリカードのメモリデータは、バックアップメモリカードに移行され、ソースメモリカードは、メモリカード101-Aであってよく、バックアップメモリカードは、メモリカード101-Cであってよく、メモリカード101-Cは、コンピュータの電源が投入される前にはハードウェアスロット内に挿入されているメモリカードであってよく、また一時的に追加されるメモリカードであってもよく、メモリデータが移行される前に、メモリカード101-Cの識別子は、ACPIリスト内に構成され、移行が実行される前に、特別な初期化のプロセスが完了している必要がある。本発明のこの実施形態でメモリデータを移行するための方法は、以下を含み得る。
【0075】
S301:プロセッサは、バックアップメモリカードの指定された識別子を取得し、BIOSの命令に従ってACPIリストに識別子を構成する。
【0076】
コンピュータの電源が投入され、起動されると、プロセッサは、BIOSの命令を実行し、BIOSの起動メニューをユーザに提示することができる。ユーザは、BIOSの起動メニューを使用することによってバックアップメモリカードの指定された識別子を構成し、プロセッサは、ユーザによって構成されたバックアップメモリカードの識別子を取得し、その識別子をACPIリストに記録することができ、これにより、バックアップメモリカードに関する情報は、ACPIリストを読み出すことによってその後取得され得る。確かに、プロセッサは、プロセッサがバックアップメモリカードの記録されている識別子をその後取得することができる限り、バックアップメモリカードの識別子を別のストレージユニットまたはリストに記録することもできるが、これは本発明のこの実施形態によって本明細書で制限されていない。
【0077】
バックアップメモリカードの識別子は、バックアップメモリカードが挿入されるスロットのスロット番号またはそのスロットに関係する番号であってよい。本発明のこの実施形態では、バックアップメモリカードは、コンピュータの電源が投入され起動される前にスロットに挿入されていてもよく、また、コンピュータの電源が投入され起動された後にスロットに挿入されてもよい。バックアップメモリカードが、スロットに挿入されている場合、バックアップメモリカードの識別子は、バックアップメモリカードが現在挿入されているスロットのスロット番号であり、バックアップメモリカードが、スロットに挿入されていない場合、バックアップメモリカードの識別子は、ユーザによって指定されたスロットのスロット番号であってよく、バックアップカードは、その後、ユーザによって指定されたスロット内に直接挿入され得る。
【0078】
ステップS301は、オプションのステップである。ユーザは、コンピュータの電源が投入され起動されたときに、プロセッサに対してバックアップメモリカードの識別子を必ずしも供給することはなく、コンピュータの電源が投入され起動された後に、プロセッサに対してバックアップメモリカードの識別子を供給することができ、この場合、プロセッサは、OSの命令を実行し、ユーザは、OSを使用することによってプロセッサに対してバックアップメモリカードの識別子を供給することができる。
【0079】
S302:プロセッサは、BIOSの命令に従ってバックアップメモリカードを初期化し、この初期化プロセスは、システムアドレスをバックアップメモリカードに割り当てることを回避する。
【0080】
プロセッサが、ユーザによって指定されたバックアップメモリカードの識別子を取得した後、コンピュータは、再起動されるものとしてよく、バックアップメモリカード上で特別な初期化を実行するためにBIOSの命令が実行される。すなわち、初期化プロセスは、システムアドレスをバックアップメモリカードに割り当てることを回避し、これにより、バックアップメモリカードの準備が整っているが、OSには不可視である。
【0081】
特に、コンピュータが再起動されるときに、プロセッサは、BIOSの初期化命令を実行し、BIOSの初期化命令は、プロセッサが、バックアップメモリカードが、スロットに挿入されているかどうかを判定し、バックアップメモリカードが、スロットに挿入されている場合にバックアップメモリカードがハードウェアとして存在していると判定し、バックアップメモリカード上で初期化を実行することを可能にすることができる。
【0082】
確かに、このステップは、オプションのステップである。実際、プロセッサは、コンピュータを再起動してバックアップメモリカード上で初期化を実行することができないが、バックアップメモリカードがその後使用される必要があるとき、たとえば、移行の前に、またバックアップメモリカードの初期化が完了していないと判定されたときに、バックアップメモリカード上で初期化を実行することができる。
【0083】
S303:ソースメモリカードのメモリコントローラは、ソースメモリカード内の誤りのあるデータを監視し、誤りのあるデータの量が閾値を超えたかどうかを判定し、誤りのあるデータの量が閾値を超えた場合に、ソースメモリカードのメモリコントローラは、第1のトリガ命令をトリガする。
【0084】
メモリカード内の誤りのあるデータの量がある値を超えた場合、これは、メモリカードに障害を引き起こし、またコンピュータの再起動を引き起こすことすらあり得、したがって、コンピュータの電源が投入され、起動されると、プロセッサは、ソースメモリカードのメモリコントローラを構成するBIOSの命令を実行することができ、これにより、ソースメモリカードのメモリコントローラは、ソースメモリカード内の誤りのあるデータを監視し、ソースメモリカード内の誤りのあるデータの量が閾値を超えた場合に、第1のトリガ命令をトリガすることができる。第1のトリガ命令は、プロセッサに、OSを終了して、BIOSのメモリデータ移行命令を実行し、メモリデータの移行を開始することを命令するために使用される。閾値は、コンピュータの電源が投入され、起動されたときにソースメモリカードのメモリコントローラ内にプロセッサによって構成されるものとしてよく、これにより、ソースメモリカードのメモリコントローラは、コンピュータの電源が投入され、起動された後にソースメモリカード内の誤りのあるデータに関する統計量を収集し、ソースメモリカードをリアルタイムで監視することができる。
【0085】
コンピュータ内に複数のソースメモリカードがある場合、それぞれのソースメモリカード内の誤りのあるデータが監視され得る。ソースメモリカードのうちのどれか1つのカード内の誤りのあるデータの量が閾値を超えたことが検出された場合、第1のトリガ命令がトリガされて、BIOSに、メモリカード内のメモリデータの移行を開始することを命令する。
【0086】
ソースメモリカードのメモリコントローラが、第1のトリガ命令をトリガするということは、特に、ソースメモリカードのメモリコントローラがコンピュータシステムマネジメント割り込みSMIをトリガし、ソースメモリカードのメモリコントローラによってトリガされたSMI割り込みを受信した後に、プロセッサは、システムマネジメント(System Management、SM)モードに入り、この場合、プロセッサは、OSを終了して、BIOSの命令を実行するということであってよい。
【0087】
本発明のこの実施形態では、コンピュータ内のソースメモリカードは、監視され、プロセッサが、メモリデータの問題があるソースメモリカードに対する第1のトリガ命令をトリガしてメモリデータの移行を実行することができ、これにより、障害は時間内に解決され、メモリデータはソースメモリカード内で障害が発生した場合にのみ移行されることを保証されるものとしてよく、それにより、システムリソースが節約される。
【0088】
さらに、ソースメモリカードのメモリコントローラは、メモリコントローラのレジスタ内に、ソースメモリカード内の誤りのあるデータの量が閾値を超えたことを記録することができ、これにより、その後、プロセッサに、問題があるメモリカードがソースメモリカードであると判定することを命令する。
【0089】
S304:プロセッサは、第1のトリガ命令を取得し、第1のトリガ命令に従って、オペレーティングシステムを終了して、BIOSのメモリデータ移行命令を実行する。
【0090】
SMI割り込みを受信した後に、プロセッサは、システムマネジメントモードに入り、この場合、プロセッサは、OSを終了して、BIOSのメモリデータ移行命令を実行し、メモリデータ移行命令は、プロセッサがステップS305からステップS312を実行することを可能にすることができる。
【0091】
S305:プロセッサは、BIOSのメモリデータ移行命令に従ってソースメモリカードのメモリコントローラにクエリを実行し、ソースメモリカードを決定する。
【0092】
メモリデータの移行を開始した後、プロセッサは、移行されるべきデータのメモリカード、すなわち、ソースメモリカードを決定する必要がある。プロセッサは、BIOSのメモリデータ移行命令を実行して、第1のトリガ命令をトリガするソースメモリコントローラに対応するメモリカードがソースメモリカードであると判定し、たとえば、コンピュータ内のメモリコントローラのレジスタにクエリを実行し、ソースメモリカードのメモリコントローラのレジスタ内に記録されている情報を使用することによってソースメモリカードを決定することができる。
【0093】
さらに、ソースメモリカードを決定した後に、プロセッサは、ACPIリスト内にソースメモリカードの識別子をさらに記録することができ、これにより、ソースメモリカードに関する情報は、ACPIリストを読み出すことによってその後取得され得る。
【0094】
S306:プロセッサは、BIOSのメモリデータ移行命令に従ってACPIリストにクエリを実行し、バックアップメモリカードの識別子を決定する。
【0095】
プロセッサは、ACPIリストからバックアップメモリカードの記録されている識別子を取得することができる。1つまたは複数のバックアップメモリカードの1つまたは複数の識別子があり得、バックアップメモリカードの識別子が複数ある場合、プロセッサは、ACPIリストからバックアップメモリカードの複数の識別子を取得し、ソースメモリカードに関する情報に従ってバックアップメモリカードの複数の識別子からバックアップメモリカードの識別子として1つ選択することができる。たとえば、プロセッサは、複数のバックアップメモリカードから、ソースメモリカードの記憶容量に従って、記憶容量がソースメモリカードの記憶容量よりも大きいメモリカードを選択し、メモリカードの識別子をバックアップメモリカードの識別子として決定する。別の例として、プロセッサは、複数のバックアップメモリカードから、ソースメモリカードが属しているプロセッサに関する情報に従って、ソースメモリカードと同じプロセッサによって制御されていないメモリカードを選択し、メモリカードの識別子をバックアップメモリカードの識別子として決定することができる。
【0096】
S307:プロセッサは、BIOSのメモリデータ移行命令に従って、バックアップメモリカードが移行条件を満たしているかどうかを判定する。
【0097】
ソースメモリカードのメモリデータを移行する前に、プロセッサは、バックアップメモリカードが移行条件を満たしているかどうかを判定し、バックアップメモリカードが移行条件を満たしている場合にのみソースメモリカードのメモリデータを移行する必要がある。これは、メモリデータが正常に移行されることを保証し、バックアップメモリカードの記憶得容量が不足しているという問題、または同様の問題によって引き起こされるデータ移行失敗を防ぐ。
【0098】
プロセッサがバックアップメモリカードが移行条件を満たしているかどうかを判定するステップは、特に、バックアップメモリカードの初期化が完了しているかどうかを判定するステップであって、バックアップメモリカードの初期化が完了している場合、これはバックアップメモリカードの準備が整っており、移行条件を満たしていることを示す、ステップであってよく、ステップS302が、このステップが実行される前に実行されない場合、すなわち、バックアップメモリカードの初期化が完了していない場合に、プロセッサは、このときにBIOSの初期化命令を実行して、バックアップメモリカード上で特別な初期化を実行することができ、これにより、バックアップメモリカードは準備が整い、移行条件を満たす。
【0099】
さらに、バックアップメモリカードが移行条件を満たしているかどうかを判定するステップは、バックアップメモリカードの記憶容量が、ソースメモリカードの記憶容量よりも大きいかどうかを判定するステップであって、バックアップメモリカードの記憶容量が、ソースメモリカードの記憶容量よりも大きい場合に、これはソースメモリカードのメモリデータがバックアップメモリカードに移行され得ることを示し、バックアップメモリカードが移行条件を満たす、ステップ、または
ソースメモリカードおよびバックアップメモリカードが同じプロセッサによって制御されているかどうかを判定するステップであって、ソースメモリカードおよびバックアップメモリカードが同じプロセッサによって制御されていないと判定された場合に、これはソースメモリカードのメモリデータがバックアップメモリカードに移行され得ることを示し、バックアップメモリボードが移行条件を満たす、ステップでさらにあり得る。
【0100】
S308:バックアップメモリカードが、移行条件を満たしている場合、プロセッサは、BIOSのメモリデータ移行命令に従って、ソースメモリカードのメモリコントローラに、メモリパトロールオペレーションを実行してソースメモリカード内の誤りのないデータを判定することを命令する。
【0101】
メモリデータを移行する前に、プロセッサは、ソースメモリカードのメモリコントローラに、メモリパトロールオペレーションを実行してソースメモリカード内の誤りのないデータを判定し、検出結果に従って検出マークを付けることを命令することができ、これにより、ソースメモリカードのメモリデータが、その後、バックアップメモリカードに移行されるときに、ソースメモリカード内の誤りのないデータのみが、検出マークに従って移行され、これにより、誤りのあるデータをバックアップメモリカードに移行することによって引き起こされるコンピュータの再起動などの問題を回避する。
【0102】
ソースメモリカードのメモリコントローラは、プロセッサの命令に従ってメモリパトロールオペレーションを開始することができ、メモリパトロールオペレーションは、特に、設定された検出メカニズムに従ってソースメモリカードのメモリデータをチェックして、ソースメモリカード内のどのデータが誤りのあるデータであるかを判定するステップと、誤りのあるデータのシステムアドレスにマークを付ける、すなわち、検出結果に従って検出マークを付けるステップであって、これにより、メモリデータがその後移行されるときに、プロセッサが、誤りのあるデータのマークを付けられたシステムアドレスに従ってソースメモリカード内の誤りのないデータを移行することができるようにするステップとであってよい。
【0103】
パトロールオペレーションを完了した後、ソースメモリカードのメモリコントローラは、メモリコントローラのレジスタを構成することができる。プロセッサは、レジスタにクエリを実行することによって、パトロールオペレーションが完了しているかどうかを判定し、パトロールオペレーションが完了した後、プロセッサは、メモリデータを移行するために、ステップ309を実行する、すなわち、ソースメモリカードおよびバックアップメモリカードをミラーモードに設定することができる。
【0104】
このステップは、オプションのステップであり、プロセッサは、ソースメモリコントローラに、メモリパトロールオペレーションを実行することを必ずしも命令しない。
【0105】
S309:バックアップメモリカードが移行条件を満たしている場合、プロセッサは、BIOSのメモリデータ移行命令に従って、ソースメモリカードおよびバックアップメモリカードをミラーモードに設定する。
【0106】
メモリデータの移行を実現するために、プロセッサは、ソースメモリカードおよびバックアップメモリカードをミラーモードに設定することができ、ミラーモードが設定された後、ソースメモリカードのメモリコントローラは、プロセッサの命令に従ってソースメモリカードのメモリデータをバックアップメモリカードに書き込むことができる。
【0107】
特に、BIOSのメモリデータ移行命令を実行したときに、プロセッサは、バックアップメモリカードの識別子をソースメモリカードのメモリコントローラ内に構成し、ソースメモリカードの識別子をバックアップメモリカードのメモリコントローラ内に構成して、ソースメモリカードおよびバックアップメモリカードがミラーモードに設定されるようにできる。したがって、ソースメモリカードは、プロセッサの命令に従ってソースメモリカードのメモリデータをバックアップメモリカードのメモリコントローラに送信することができ、これにより、バックアップメモリカードのメモリコントローラは、ソースメモリカードのメモリデータをバックアップメモリカードに書き込む。
【0108】
それに加えて、ソースメモリカードおよびバックアップメモリカードをミラーモードに設定するということは、プロセッサが、ソースメモリカードのメモリコントローラのアドレス構成情報をバックアップメモリカードのメモリコントローラに複製し、これにより、システムアドレスが、ソースメモリカードのアドレス割り当て方法に従ってバックアップメモリカードに割り当てられるということをさらに含み得る。
【0109】
S310:プロセッサは、BIOSのメモリデータ移行命令に従って、ソースメモリカードのメモリコントローラに、メモリデータを移行することを命令する。
【0110】
ソースメモリカードおよびバックアップメモリカードのミラーモードを構成した後に、プロセッサは、ソースメモリカードのメモリコントローラに、ソースメモリカードのメモリデータを移行することを命令するものとしてよい。
【0111】
特に、プロセッサは、データ読み出し命令をソースメモリカードのメモリコントローラに送信することができ、データ読み出し命令は、ソースメモリカードのメモリコントローラに、ソースメモリカードのメモリデータを読み出すことを命令するために使用され、ソースメモリカードのメモリコントローラがデータ読み出し命令を完了したと判定した後に、プロセッサは、データ書き込み命令をソースメモリカードのメモリコントローラに送信することができ、データ書き込み命令は、ソースメモリカードのメモリコントローラに、読み出されたデータをソースメモリカードに書き戻すことを命令するために使用され、これにより、ソースメモリカードのメモリコントローラが、データ読み出し命令に従ってソースメモリカードのメモリデータを読み出し、次いで、データ書き込み命令に従って、読み出されたデータをソースメモリカードに書き込み、ミラーモードに従って読み出されたデータをバックアップメモリカードのメモリコントローラに送信することを可能にし、またバックアップメモリカードのメモリコントローラが読み出されたデータをバックアップメモリカードに書き込むことを可能にする。これは、メモリデータの移行を実現し、ソースメモリカードのすべてのメモリデータは、メモリデータの移行が開始した後にソースメモリカードに新しく書き込まれたデータのみを移行する代わりに、バックアップメモリカードに移行され得る。
【0112】
メモリデータを移行するプロセスにおいて、プロセッサが、メモリデータを移行するためにBIOSの命令をずっと実行し続けている場合、プロセッサは、比較的長い時間にわたってサービスを処理するOSの命令を実行できず、そのため、コンピュータの通常の稼働に影響を及ぼし、その結果、他のサービスの処理が長時間中断状態に置かれ、したがって、プロセッサは、メモリデータについては移行を複数に分けて実行することができる。たとえば、メモリデータの1回の移行が完了した後、プロセッサは、BIOSを終了して、OSの命令を実行し、通常のサービス処理を実行することができ、メモリデータの次の移行まで、プロセッサは、OSを終了して、BIOSのメモリデータ移行命令を再び実行してメモリデータの移行を継続する。メモリデータを複数回で移行するこの方法により、プロセッサは、OSおよびBIOSの命令を交互に実行して、メモリデータの移行を最終的に完了することができ、それによって、システムサービスの長時間の中断を回避し、システムの通常の稼働を保証する。本発明のこの実施形態では、メモリデータを複数回で移行するための方法を実現するために、BIOSのメモリデータ移行命令がさらに改善されるものとしてよく、たとえば、BIOSのメモリデータ移行命令において、それぞれの移行のデータの量またはそれぞれの移行の持続時間を事前構成する、すなわち、複数の移行のポリシーを事前構成することで、BIOSのメモリデータ移行命令を実行するときに、プロセッサは、複数の移行のポリシーに従って、ソースメモリカードのメモリコントローラに、メモリデータに対する複数の移行を実行することを命令することができる。特に、プロセッサは、ソースメモリカードのメモリコントローラに、メモリデータに対する複数の移行を実行することを命令することを、
(a)プロセッサが、それぞれの移行のデータの指定された量に従って現在の移行のデータの量を決定し、ソースメモリカードのメモリコントローラに、現在の移行のその量のデータをバックアップメモリカードに移行することを命令するか、またはプロセッサが、それぞれの移行の持続時間に従って現在の移行の持続時間を決定し、ソースメモリカードのメモリコントローラに、現在の移行の持続時間内にメモリデータを移行することを命令するか、またはプロセッサの稼働状況に従って、ソースメモリカードのメモリコントローラ102-Aが、プロセッサの稼働状況がアイドル状態である期間内にメモリデータを移行することを命令され、プロセッサの稼働状況がアイドル状態であるということは、プロセッサの使用度が設定された閾値より低いことであるとしてよい、ステップと、
(b)ソースメモリカードのメモリコントローラが現在の移行を完了したと判定した後に、プロセッサがBIOSを終了して、OSの命令を実行するステップと、
(c)プロセッサが、第2のトリガ命令を受信し、第2のトリガ命令は、プロセッサに、BIOSの命令を実行し、メモリデータの移行を継続することに戻るように命令するために使用される、ステップと、
(d)プロセッサが、BIOSの命令に従ってステップ(a)を、ソースメモリカードのメモリデータがバックアップメモリカードに完全に移行されるまで実行することに戻るステップとを使用することによって行うことができる。
【0113】
ステップ(b)において、BIOSを終了して、OSの命令を実行し、サービス処理を実行するときに、プロセッサは、ソースメモリ上で読み出し/書き込みオペレーションを実行することができ、OSがプロセッサを使用して移行されているソースメモリカード内のデータブロックA上でデータ書き込みオペレーションを実行するとしても、ソースメモリカードのメモリコントローラは、それでも、ミラーモードが設定されているので、書き込みオペレーションが実行されるデータをバックアップメモリカード内のデータブロックAに書き込むことができる。これは、データの喪失を回避し、バックアップメモリカードとソースメモリカードとの間のデータ整合性を保証する。
【0114】
それに加えて、ユーザは、複数の移行のポリシーにおいて第2のトリガ命令のトリガ条件をさらに構成することができ、第2のトリガ命令のトリガ条件は、それぞれの移行の間隔であってよい。この場合、プロセッサは、移行ポリシーからそれぞれの移行の間隔を取得し、それぞれの移行の間隔に従ってメモリ移行タイマーを構成することができ、これにより、メモリ移行タイマーは、それぞれの移行の間隔に従って第2のトリガ命令をトリガする、すなわち、それぞれの移行の間隔に従って、プロセッサに、メモリデータの移行を継続することを命令する、たとえば、プロセッサは、コンピュータ内のサウスブリッジ内でメモリ移行タイマーを設定するものとしてよい。
【0115】
第2のトリガ命令のトリガ条件は、プロセッサの稼働状況であってもよい。プロセッサは、プロセッサの稼働状況に従って第2のトリガ命令をトリガすることができる、たとえば、プロセッサの稼働状況は、プロセッサがアイドル状態にあること、またはプロセッサの使用度が特定の閾値未満であることとしてよい。OSの命令を実行するときに、プロセッサは、プロセッサの稼働情報をリアルタイムで監視することができ、プロセッサの使用度が、設定された特定の閾値未満である場合に、第2のトリガ命令がトリガされ、これにより、プロセッサは、OSを終了して、プロセッサによってトリガされた第2のトリガ命令に従ってBIOSの命令を実行し、メモリデータの移行を継続する。確かに、プロセッサは、ベースメインボードコントローラ(Base Mainboard Controller、BMC)をさらに使用してプロセッサの稼働状況を監視し、第2のトリガ命令をトリガすることができるが、これはここでは本発明のこの実施形態によって制限されない。
【0116】
さらに、ソースメモリカードのメモリコントローラに、メモリデータを移行することを命令するときに、プロセッサは、誤りのあるデータのアドレスであり、ソースメモリカードのメモリコントローラに記録されているアドレスに従って、ソースメモリカードのメモリコントローラに、ソースメモリカード内の誤りのないデータをバックアップメモリカードに移行することを命令することができ、これにより、ソースメモリカード内の誤りのあるデータをバックアップメモリカードに移行することによって引き起こされ得るコンピュータの再起動を回避する。
【0117】
S311:プロセッサは、BIOSのメモリデータ移行命令に従って、ソースメモリカードのシステムアドレスによって指し示されているターゲットメモリカードをバックアップメモリカードに変更する。
【0118】
メモリデータの移行が完了した後に、プロセッサは、ソースメモリカードのシステムアドレスをバックアップメモリカードにマッピングすることができ、これにより、ソースメモリカードのシステムアドレスによって指し示されているターゲットメモリカードがバックアップメモリカードに変更され、バックアップメモリカードは、ソースメモリカードを交換し、ソースメモリカード上ですべての読み出し/書き込みオペレーションを引き継ぐことができる。
【0119】
S312:プロセッサは、BIOSのメモリデータ移行命令に従ってソースメモリカード上で電源遮断オペレーションを実行する。
【0120】
ソースメモリカードのメモリデータの移行が完了した後に、プロセッサは、ソースメモリカード上で電源遮断オペレーションを実行することができ、これにより、ソースメモリカードは、コンピュータの電源が切られていない場合に取り外しまたは交換が行われ、これにより、コンピュータ全体の電源が切られている場合しか障害のあるメモリカードを交換またはメンテナンスできないという従来技術における問題点を解決することができる。
【0121】
本発明のこの実施形態では、プロセッサは、第1のトリガ命令を取得し、第1のトリガ命令に従って、OSを終了して、BIOSのメモリデータ移行命令を実行することができ、BIOSのメモリデータ移行命令は、プロセッサがソースメモリカードおよびバックアップメモリカードを決定し、バックアップメモリカードが移行条件を満たしていると判定した後に、ソースメモリカードおよびバックアップメモリカードをミラーモードに設定し、ミラーモードに従って、ソースメモリカードのメモリコントローラに、ソースメモリカードのメモリデータをバックアップメモリカードに書き込むことを命令することを可能にし、これにより、ソースメモリカードのメモリデータは、コンピュータの電源が切られていない場合に移行することができ、これにより、障害のあるメモリカードのオンラインメンテナンスを実現し、障害のあるメモリカードは、コンピュータ全体の電源が切られているときしか交換またはメンテナンスを行えないという従来技術における問題点を解決することができる。それに加えて、プロセッサは、トリガされる第1のトリガ命令に従ってメモリデータの移行を開始し、メモリデータは、ソースメモリカード内に障害が発生したとき、またはメモリデータの移行が必要になったときのみ移行され、これによりシステムリソースが効果的に節減される。それに加えて、プロセッサは、BIOSの命令を実行してメモリデータの移行を完了させ、したがって、OSカーネルモジュールが配置されているメモリカードのデータの移行を実現することができ、OSカーネルモジュールのデータを移行できないという問題が回避される。
【0122】
本発明のこの実施形態では、プロセッサは、メモリデータの移行が開始した後にソースメモリカード内に新しく書き込まれるメモリデータのみを移行する代わりに、ソースメモリカードのすべてのデータをバックアップメモリカードにさらに移行することができ、これにより、メモリデータの完全な移行が保証される。さらに、プロセッサは、複数の移行のポリシーに従って、ソースメモリカードのメモリコントローラに、ソースメモリカードのメモリデータをバックアップメモリカードに複数回で移行することをさらに命令することができ、これにより、メモリデータを移行するプロセスにおいて、要求条件に従って、プロセッサは、OSを終了して、BIOSのメモリデータ移行命令を実行するか、またはBIOSを終了して、OSの命令を実行し、サービス処理を実行して、コンピュータのサービスを時間どおりに処理することができ、大量のメモリデータの移行によって引き起こされるコンピュータのサービスの長時間にわたる中断が回避されることを保証し、コンピュータが正常に稼働することを保証することができる。さらに、プロセッサは、ソースメモリカードのメモリコントローラに、ソースメモリカード内の誤りのないデータを判定することをさらに命令し、ソースメモリカードのメモリコントローラに、誤りのないデータをバックアップメモリカードに移行することを命令し、これにより、ソースメモリカード内の誤りのあるデータをバックアップメモリカードに移行することによって引き起こされ得るコンピュータの再起動を回避することができる。
【0123】
さらに、本発明のこの実施形態において、メモリデータが移行される前に、プロセッサは、バックアップメモリカードが移行条件を満たしているかどうかをさらに判定し、バックアップメモリカードが移行条件を満たしている場合にのみソースメモリカードのメモリデータを移行することができる。これは、メモリデータが正常に移行されることを保証し、バックアップメモリカードの初期化が完了していない、バックアップメモリカードの記憶容量が不十分である、または同様の問題によって引き起こされるデータ移行失敗を防止する。
【0124】
特定の実施形態2
図1に示されているコンピュータに関して、図3に示されているように、本発明の一実施形態は、コンピュータにおいてメモリデータを移行するために使用される、メモリデータを移行するための方法を提供し、メモリデータ移行命令は、コンピュータ内のBIOSに格納される。たとえば、ソースメモリカードのメモリデータは、バックアップメモリカードに移行されてもよく、ソースメモリカードは、メモリカード101-Aであってよく、バックアップメモリカードは、メモリカード101-Cであってよく、メモリカード101-Cは、コンピュータの電源が投入される前にはハードウェアスロット内に挿入されているメモリカードであってよく、また一時的に追加されるメモリカードであってもよく、メモリデータが移行される前に、メモリカード101-Cの識別子は、ACPIリスト内に構成され、移行が実行される前に、初期化プロセスが完了している必要がある。本発明のこの実施形態でメモリデータを移行するための方法は、以下を含み得る。
【0125】
S401:プロセッサは、OSの命令に従ってACPIリスト内でバックアップメモリカードの指定された識別子を構成する。
【0126】
コンピュータの電源が投入され、起動された後、プロセッサは、OSの命令を実行し、ユーザは、OSに対するバックアップメモリカードの指定された識別子を供給することができ、プロセッサは、OSの命令に従って、ユーザによって指定されたバックアップメモリカードの識別子を取得し、その識別子をACPIリスト内で構成することができる。ACPIリストは、BIOSおよびOSの両方からアクセス可能なリストであり、したがって、BIOSのコードをその後実行するときに、プロセッサは、ACPIリストを読み出すことによってバックアップメモリカードに関する情報を取得することができる。確かに、バックアップメモリカードの識別子は、プロセッサがストレージユニットにアクセスできることが保証されている限り、別のストレージユニットまたはリストに、またはプロセッサがOSの命令およびBIOSの命令を実行するときにリストに、記録することもできるが、これは本発明のこの実施形態によって本明細書で制限されていない。
【0127】
このステップは、オプションのステップである。ユーザーは、コンピュータの電源が投入され起動されたときにバックアップメモリカードの識別子を指定することもでき、この場合、プロセッサは、BIOSの命令を実行し、ユーザーは、BIOSに対するバックアップメモリカードの識別子を供給することができ、プロセッサは、BIOSの命令に従って、ユーザーによって指定されたバックアップメモリカードの識別子を取得することができる。
【0128】
バックアップメモリカードの識別子は、バックアップメモリカードが挿入されるスロットのスロット番号またはそのスロットに関係する番号であってよい。本発明のこの実施形態では、バックアップメモリカードは、コンピュータの電源が投入され起動される前にスロットに挿入されていてもよく、また、コンピュータの電源が投入され起動された後にスロットに挿入されてもよい。バックアップメモリカードが、スロットに挿入されている場合、バックアップメモリカードの識別子は、バックアップメモリカードが現在挿入されているスロットのスロット番号であり、バックアップメモリカードが、スロットに挿入されていない場合、バックアップメモリカードの識別子は、ユーザーによって指定されたスロットのスロット番号であってよく、バックアップカードは、その後、ユーザーによって指定されたスロット内に直接挿入され得る。
【0129】
さらに、プロセッサは、BIOSの命令に従ってバックアップメモリカードをさらに初期化することができ、これにより、バックアップメモリカードの準備が整い、通常どおり使用できるが、OSには不可視である、すなわち、プロセッサは、OSの命令を実行しているときにバックアップメモリカード上で読み出し/書き込みオペレーションを実行することができない。特に、指定されたバックアップメモリカードが、コンピュータの電源が投入され起動された後にスロットに挿入される場合、プロセッサは、バックアップメモリカードがスロットに挿入されたときにバックアップメモリカード上のトリガボタンを使用することによってトリガされて、BIOSの初期化命令を実行し、バックアップメモリカードを初期化することができ、確かに、プロセッサは、バックアップメモリカードがその後使用される必要がある場合にBIOSの初期化命令を実行してバックアップメモリカードを初期化することもでき、指定されたバックアップメモリカードが、コンピュータの電源が投入され起動される前にスロットに挿入された場合、プロセッサは、コンピュータの電源が投入され起動されたときにBIOSの命令を実行し、ユーザは、BIOSの起動メニューを使用することによってバックアップメモリカードの識別子を構成する必要があり、これにより、プロセッサがBISOの命令を実行し、バックアップメモリカードがハードウェアとして存在していると判定した場合に、プロセッサは、バックアップメモリカード上で特別な初期化を実行する。
【0130】
S402:プロセッサは、OSの命令に従ってACPIリスト内でソースメモリカードの指定された識別子を構成する。
【0131】
コンピュータの電源が投入され、起動された後、プロセッサが、OSの命令を実行したとき、および性能が不安定である、作業時間が極端に長い、または別の状態が生じているためメモリカードの交換が必要であるとユーザが気づいたときに、ユーザは、メモリカードを、移行されるべきデータのメモリカード、すなわち、ソースメモリカードとして指定し、OSに対するソースメモリカードの識別子を供給することができる。プロセッサは、OSの命令に従って、ユーザによって指定されたソースメモリカードの識別子を取得し、ソースメモリカードの識別子をACPIリスト内で構成することができ、これにより、プロセッサが、その後、BIOSのメモリデータ移行命令を実行するときに、プロセッサは、ACPIリストを読み出すことによってソースメモリカードに関する情報を取得することができる。
【0132】
本発明のこの実施形態では、ユーザは、OSに対してソースメモリカードの識別子およびバックアップメモリカードの識別子を別々に供給することができ、また、OSに対してソースメモリカードの識別子をバックアップメモリカードの識別子と一緒に供給することもでき、これにより、プロセッサは、ACPIリストにおいてソースメモリカードの識別子およびバックアップメモリカードの識別子を別々に構成することができる。たとえば、ソースメモリカードの識別子およびバックアップメモリカードの識別子は、ステップ401およびステップ402を使用することによってACPIリスト内で構成され、またソースメモリカードの識別子およびバックアップメモリカードの識別子は、ACPIリスト内で一緒に構成されてもよく、これは本発明のこの実施形態によって本明細書において制限されない。
【0133】
S403:プロセッサは、OSの命令に従って第1のトリガ命令をトリガする。
【0134】
プロセッサが、OSの命令を実行してサービス処理を実行するときに、ユーザ側でメモリデータ移行を行う要求がある場合、ユーザは、メモリデータ移行命令、すなわち、開始命令をOSに送信することができ、OSは、ユーザによって送信されたメモリデータ移行命令に従って、プロセッサに、第1のトリガ命令を生成することを命令し、プロセッサは、OSの命令に従って第1のトリガ命令を生成し、第1のトリガ命令は、プロセッサに、OSを終了してBIOSのメモリデータ移行命令を実行することを命令するために使用される。
【0135】
第1のトリガ命令は、特にSMIであってよい。たとえば、プロセッサは、OSの命令に従ってGPIOピンのレベルを変更することができ、これにより、コンピュータ内のサウスブリッジチップ(South Bridge)は、SMIをトリガし、プロセッサは、SMIを受信することができ、別の例では、プロセッサは、OSの命令に従ってコンピュータ内のサウスブリッジ内のレジスタを構成することができ、これにより、コンピュータ内のサウスブリッジは、SMIをトリガし、プロセッサは、SMIを受信することができる。本発明のこの実施形態では、プロセッサは、別の方法で第1のトリガ命令をトリガすることもできるが、これは、本発明のこの実施形態によって本明細書において制限されない。
【0136】
S404:プロセッサは、オペレーティングシステムを終了して、第1のトリガ命令に従って、BIOSのメモリデータ移行命令を実行する。
【0137】
SMI割り込みを受信した後に、プロセッサは、システムマネジメントモードに入り、この場合、プロセッサは、OSを終了して、BIOSのメモリデータ移行命令を実行し、メモリデータ移行命令は、プロセッサがステップS405からステップS411を実行することを可能にすることができる。
【0138】
S405:プロセッサは、ACPIリストにクエリを実行し、ソースメモリカードおよびバックアップメモリカードを決定する。
【0139】
プロセッサは、予め、ACPIリストに、ソースメモリカードの識別子およびバックアップメモリカードの識別子を記録するので、プロセッサは、ACPIリストにクエリを実行し、ソースメモリカードの記録された識別子およびバックアップメモリカードの記録された識別子を取得し、ソースメモリカードの識別子およびバックアップメモリカードの識別子に従ってソースメモリカードおよびバックアップメモリカードを決定することができる。
【0140】
バックアップメモリカードが複数ある場合、プロセッサは、ACPIリストから複数のバックアップメモリカードの識別子を取得し、ソースメモリカードに関する情報に従って複数のバックアップメモリカードの識別子からバックアップメモリカードの識別子として1つ選択することができる。たとえば、プロセッサは、複数のバックアップメモリカードから、ソースメモリカードの記憶容量に従って、記憶容量がソースメモリカードの記憶容量よりも大きいメモリカードを選択し、メモリカードの識別子をバックアップメモリカードの識別子として決定する。別の例として、プロセッサは、複数のバックアップメモリカードから、ソースメモリカードが属しているプロセッサに関する情報に従って、ソースメモリカードと同じプロセッサによって制御されていないメモリカードを選択し、メモリカードの識別子をバックアップメモリカードの識別子として決定することができる。
【0141】
S406:プロセッサは、バックアップメモリカードが移行条件を満たしているかどうかを判定する。
【0142】
S407:バックアップメモリカードが移行条件を満たしている場合、プロセッサは、ソースメモリカードのメモリコントローラに、メモリパトロールオペレーションを実行してソースメモリカード内の誤りのないデータを判定することを命令する。
【0143】
S408:バックアップメモリカードが移行条件を満たしている場合、プロセッサは、ソースメモリカードおよびバックアップメモリカードをミラーモードに設定する。
【0144】
S409:プロセッサは、ソースメモリカードのメモリコントローラに、メモリデータを移行することを命令する。
【0145】
S410:プロセッサは、ソースメモリカードのシステムアドレスとバックアップメモリカードとの間のマッピング関係を確立する。
【0146】
S411:プロセッサは、ソースメモリカード上で電源遮断オペレーションを実行する。
【0147】
本発明のこの実施形態では、ステップS406からステップS411の特定の実現方法は、ステップS307からステップS312の実現方法に類似しており、ここで再び詳細を説明することはしない。
【0148】
ソースメモリカードのメモリデータの移行が完了した後に、プロセッサは、ソースメモリカード上で電源遮断オペレーションを実行することができ、これにより、ソースメモリカードは、コンピュータの電源が切られていない場合に取り外しまたは交換が行われ、これにより、コンピュータ全体の電源が切られている場合しか障害のあるメモリカードを交換またはメンテナンスできないという従来技術における問題点を解決することができる。
【0149】
本発明のこの実施形態では、プロセッサは、第1のトリガ命令を取得し、第1のトリガ命令に従って、OSを終了して、BIOSのメモリデータ移行命令を実行することができ、BIOSのメモリデータ移行命令は、プロセッサがソースメモリカードおよびバックアップメモリカードを決定し、バックアップメモリカードが移行条件を満たしていると判定した後に、ソースメモリカードおよびバックアップメモリカードをミラーモードに設定し、ミラーモードに従って、ソースメモリカードのメモリコントローラに、ソースメモリカードのメモリデータをバックアップメモリカードに書き込むことを命令することを可能にし、これにより、ソースメモリカードのメモリデータは、コンピュータの電源が切られていない場合に移行することができ、これにより、障害のあるメモリカードのオンラインメンテナンスを実現し、障害のあるメモリカードは、コンピュータ全体の電源が切られているときしか交換またはメンテナンスを行えないという従来技術における問題点を解決することができる。それに加えて、プロセッサは、トリガされる第1のトリガ命令に従ってメモリデータの移行を開始し、メモリデータは、ソースメモリカード内に障害が発生したとき、またはメモリデータの移行が必要になったときのみ移行され、これによりシステムリソースが効果的に節減される。それに加えて、プロセッサは、BIOSの命令を実行してメモリデータの移行を完了させ、したがって、OSカーネルモジュールが配置されているメモリカードのデータの移行を実現することができ、OSカーネルモジュールのデータを移行できないという問題が回避される。
【0150】
本発明のこの実施形態では、プロセッサは、メモリデータの移行が開始した後にソースメモリカード内に新しく書き込まれるメモリデータのみを移行する代わりに、ソースメモリカードのすべてのデータをバックアップメモリカードにさらに移行することができ、これにより、メモリデータの完全な移行が保証される。さらに、プロセッサは、複数の移行のポリシーに従って、ソースメモリカードのメモリコントローラに、ソースメモリカードのメモリデータをバックアップメモリカードに複数回で移行することをさらに命令することができ、これにより、メモリデータを移行するプロセスにおいて、要求条件に従って、プロセッサは、OSを終了して、BIOSのメモリデータ移行命令を実行するか、またはBIOSを終了して、OSの命令を実行し、サービス処理を実行して、コンピュータのサービスを時間どおりに処理することができ、大量のメモリデータの移行によって引き起こされるコンピュータのサービスの長時間にわたる中断が回避されることを保証し、コンピュータが正常に稼働することを保証することができる。さらに、プロセッサは、ソースメモリカードのメモリコントローラに、ソースメモリカード内の誤りのないデータを判定することをさらに命令し、ソースメモリカードのメモリコントローラに、誤りのないデータをバックアップメモリカードに移行することを命令し、これにより、ソースメモリカード内の誤りのあるデータをバックアップメモリカードに移行することによって引き起こされ得るコンピュータの再起動を回避することができる。
【0151】
さらに、本発明のこの実施形態において、メモリデータが移行される前に、プロセッサは、バックアップメモリカードが移行条件を満たしているかどうかをさらに判定し、バックアップメモリカードが移行条件を満たしている場合にのみソースメモリカードのメモリデータを移行することができる。これは、メモリデータが正常に移行されることを保証し、バックアップメモリカードの初期化が完了していない、バックアップメモリカードの記憶容量が不十分である、または同様の問題によって引き起こされるデータ移行失敗を防止する。
【0152】
本発明の一実施形態は、基本入出力システムを提供する。図5に示されているように、基本入出力システムは、コンピュータ実行可能命令501を備え、基本入出力システムは、処理チップであってよく、コンピュータ内のプロセッサがコンピュータ実行可能命令501を実行したときに、コンピュータは、
移行されるべきメモリデータのソースメモリカードを決定し、
ソースメモリカードに対するバックアップメモリカードを決定し、
ソースメモリカードのメモリコントローラに、メモリデータを移行することを命令し、これにより、ソースメモリカードのメモリコントローラが、プロセッサの命令に従ってソースメモリカードのメモリデータをバックアップメモリカードに移行する方法を実行する。
【0153】
さらに、コンピュータは、コンピュータ実行可能命令501に従って、
ソースメモリカードおよびバックアップメモリカードをミラーモードに設定する方法をさらに実行することができ、
プロセッサによって、ソースメモリカードのメモリコントローラに、メモリデータを移行することを命令し、これによりプロセッサの命令に従ってソースメモリカードのメモリコントローラがソースメモリカードのメモリデータを読み出して、ソースメモリカードの読み出されたメモリデータをバックアップメモリカードに書き込むことは、
プロセッサによって、ソースメモリカードのメモリコントローラに、ソースメモリカードのメモリデータを読み出すことを命令するために使用されるデータ読み出し命令をソースメモリカードのメモリコントローラに送信するステップと、
プロセッサによって、ソースメモリカードのメモリコントローラに、読み出されたデータをソースメモリカードに書き戻すことを命令するために使用されるデータ書き込み命令をソースメモリカードのメモリコントローラに送信して、これにより、ソースメモリカードのメモリコントローラが、プロセッサのデータ読み出し命令に従ってソースメモリカードのメモリデータを読み出して、データ書き込み命令を受信した後に、ソースメモリカードおよびバックアップメモリカードのミラーモードに従ってソースメモリカードの読み出されたメモリデータをバックアップメモリカードのメモリコントローラに送信するステップとを含む。
【0154】
さらに、コンピュータは、コンピュータ実行可能命令501に従って、
コンピュータによって、複数の移行のポリシーを取得し、
コンピュータによって、複数の移行のポリシーに従って、ソースメモリカードのメモリコントローラに、メモリデータに対する複数の移行を実行することを命令する方法であって、さらに、コンピュータによって、複数の移行のポリシーに従って、ソースメモリカードのメモリコントローラに、メモリデータに対する複数の移行を実行することを命令することが、
コンピュータによって、現在の移行のデータの量を決定して、ソースメモリカードのメモリコントローラに、現在の移行のデータの量をバックアップメモリカードに移行することを命令するか、またはコンピュータによって、現在の移行の持続時間を決定して、ソースメモリカードのメモリコントローラに、現在の移行のその持続時間内にメモリデータを移行することを命令するステップと、
ソースメモリカードのメモリコントローラが現在の移行を完了したと判定した後に、コンピュータによって基本入出力システムを終了して、オペレーティングシステムの命令を実行するステップとを含む、方法とをさらに実行することができる。
【0155】
さらに、コンピュータは、コンピュータ実行可能命令501に従って、
コンピュータによって、バックアップメモリカードが移行条件を満たしているかどうかを判定し、バックアップメモリカードが移行条件を満たしている場合に、ソースメモリカードのメモリコントローラに、メモリデータを移行することを命令するステップを実行する、方法であって、移行条件は、限定はしないが、バックアップメモリカードの初期化が完了している、およびバックアップボードの記憶容量が、ソースメモリカードの記憶容量以上であるという条件のうちの1つまたは任意の組み合わせを含む、方法をさらに実行することができる。
【0156】
それに加えて、コンピュータは、バックアップメモリカードの初期化が完了していないときにコンピュータ実行可能命令501に従ってバックアップメモリカードをさらに初期化することができ、この初期化は、システムアドレスをバックアップメモリカードに割り当てることを回避する。
【0157】
さらに、コンピュータ内のプロセッサが、コンピュータ実行可能命令501を実行するときに、コンピュータが、ソースメモリカードのメモリコントローラに、メモリデータを移行することを命令する前に、コンピュータは、
コンピュータによって、ソースメモリカードのメモリコントローラに、ソースメモリカード内の誤りのないデータを検出して、マークを付けることを命令し、
コンピュータによって、基本入出力システムのメモリデータ移行命令に従って、ソースメモリカードのメモリコントローラに、マークに従って誤りのないデータを移行することを命令する方法をさらに実行することができる。
【0158】
さらに、ソースメモリカードのメモリデータがバックアップメモリカードに完全に移行されたと判定した後に、コンピュータは、コンピュータ実行可能命令501に従って、ソースメモリカードのシステムアドレスによって指し示されているターゲットメモリカードをバックアップメモリカードにさらに変更することができる。
【0159】
本発明のこの実施形態では、基本入出力システムは、コンピュータ実行可能命令501を備え、これにより、コンピュータがコンピュータ実行可能命令501を実行するときに、コンピュータは、移行されるべきメモリデータのソースメモリカードを決定し、ソースメモリカードに対するバックアップメモリカードを決定し、ソースメモリカードおよびバックアップメモリカードをミラーモードに設定し、ミラーモードに従って、ソースメモリカードのメモリコントローラに、ソースメモリカードのメモリデータをバックアップメモリカードに書き込むことを命令し、これにより、ソースメモリカードのメモリデータは、コンピュータの電源が切られていない場合に移行することができ、これにより、障害のあるメモリカードのオンラインメンテナンスを実現し、障害のあるメモリカードは、コンピュータ全体の電源が切られているときしか交換またはメンテナンスを行えないという従来技術における問題点を解決することができる。それに加えて、コンピュータ内のプロセッサは、BIOSのコンピュータ実行可能命令501を実行してメモリデータの移行を完了させ、したがって、OSカーネルモジュールが配置されているメモリカードのデータの移行を実現することができ、OSカーネルモジュールのデータを移行できないという問題が回避される。
【0160】
本発明のこの実施形態では、メモリデータの移行が開始した後にソースメモリカード内に新しく書き込まれるメモリデータのみを移行する代わりに、ソースメモリカード内のすべてのデータがバックアップメモリカードにさらに移行されるものとしてよく、これにより、メモリデータの完全な移行が保証される。さらに、コンピュータ実行可能命令501を実行するときに、コンピュータ内のプロセッサは、複数の移行のポリシーに従って、ソースメモリカードのメモリコントローラに、ソースメモリカードのメモリデータをバックアップメモリカードに複数回で移行することをさらに命令することができ、これにより、メモリデータを移行するプロセスにおいて、要求条件に従って、プロセッサは、OSを終了して、BIOSのコンピュータ実行可能命令501を実行するか、またはBIOSを終了して、OSの命令を実行し、サービス処理を実行し、これにより、コンピュータのサービスを時間どおりに処理することができ、大量のメモリデータの移行によって引き起こされるコンピュータのサービスの長時間にわたる中断が回避されることを保証し、コンピュータが正常に稼働することを保証することができる。さらに、プロセッサは、ソースメモリカードのメモリコントローラに、ソースメモリカード内の誤りのないデータを判定することをさらに命令し、ソースメモリカードのメモリコントローラに、誤りのないデータをバックアップメモリカードに移行することを命令し、これにより、ソースメモリカード内の誤りのあるデータをバックアップメモリカードに移行することによって引き起こされ得るコンピュータの再起動を回避することができる。
【0161】
さらに、本発明のこの実施形態において、メモリデータが移行される前に、プロセッサは、プロセッサがコンピュータ実行可能命令501を実行するときにバックアップメモリカードが移行条件を満たしているかどうかをさらに判定し、バックアップメモリカードが移行条件を満たしている場合にのみソースメモリカードのメモリデータを移行することができる。これは、メモリデータが正常に移行されることを保証し、バックアップメモリカードの初期化が完了していない、バックアップメモリカードの記憶容量が不十分である、または同様の問題によって引き起こされるデータ移行失敗を防止する。
【0162】
本発明のそれぞれの態様またはそれぞれの態様の可能な実現方法は、コンピュータプログラム製品の形態をとるものとしてよく、ただし、コンピュータプログラム製品とは、コンピュータ可読媒体に格納されているコンピュータ可読プログラムコードのことである。
【0163】
コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読ストレージ媒体であってよい。コンピュータ可読ストレージ媒体は、限定はしないが、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラム可能リードオンリーメモリ(EPROMまたはフラッシュメモリ)、光ファイバー、およびコンパクトディスクリードオンリーメモリ(CD-ROM)などの、電子的な、磁気的な、光学的な、電磁気的な、赤外線の、もしくは半導体のシステム、デバイス、もしくは装置、またはこれらの適切な任意の組み合わせを含む。
【0164】
コンピュータ内のプロセッサは、コンピュータ可読媒体内に格納されているコンピュータ可読プログラムコードを読み出し、これにより、プロセッサは、流れ図内のそれぞれのステップまたはステップの組み合わせで指定された機能およびアクションを実行することができ、装置は、ブロック図内のそれぞれのブロックまたはブロックの組み合わせで指定された機能およびアクションを実現するように製作される。
【0165】
すべてのコンピュータ可読プログラムコードは、ユーザコンピュータ上で実行され得るか、または一部がユーザコンピュータ上でスタンドアロンソフトウェアパッケージとして実行され得るか、または一部がリモートコンピュータ上で実行されている間に、一部がユーザのコンピュータ上で実行され得るか、またはすべてのコードがリモートコンピュータもしくはサーバー上で実行され得る。いくつかの代替的な実現の解決手段において、ブロック図内のそれぞれのブロックで指定されている流れ図または機能におけるそれぞれのステップは、図示されている順序で行われないことがあることにも留意されたい。たとえば、関わる機能に依存している、図中の2つの逐次的ステップまたは2つのブロックは、実際には、実質的に同時に実行され得るか、またはこれらのブロックがときには逆の順序で実行され得る。
【0166】
当業者であれば、本明細書で開示されている実施形態で説明されている例と組み合わせることで、ユニットおよびアルゴリズムステップは、電子ハードウェアまたはコンピュータソフトウェアと電子ハードウェアとの組み合わせによって実現され得ることに気づくことができる。これらの機能が、ハードウェアによって実行されるのか、ソフトウェアによって実行されるのかは、特定の用途および技術的解決手段の設計上の制約条件で決まる。当業者は、それぞれの特定の用途に対して説明されている機能を実現するために異なる方法を使用することができるが、その実現は、本発明の範囲を超えるものと考えられるべきでない。
【0167】
前述の説明は、本発明の単なる特定の実現方法の説明にすぎず、本発明の保護範囲を制限することを意図されていない。本発明において開示されている技術の範囲内で当業者が容易に考え付く変更形態または代替的形態は、本発明の保護範囲内にあるものとする。したがって、本発明の保護範囲は、請求項の保護範囲に従うものとする。
【符号の説明】
【0168】
101 メインメモリ
101-A、101-B、101-C メモリカード
102 メモリコントローラ
102-A、102-B、102-C メモリコントローラ
103 オペレーティングシステム(Operating System、OS)
104 基本入出力(Basic Input Output System、BIOS)
105 プロセッサ
106 ソースメモリカード
107 バックアップメモリカード
501 コンピュータ実行命令
図1
図2
図3
図4
図5