(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-18
(45)【発行日】2024-12-26
(54)【発明の名称】マイクロプロセッサに接続された構成可能なメモリデバイス
(51)【国際特許分類】
G06F 12/00 20060101AFI20241219BHJP
【FI】
G06F12/00 572A
(21)【出願番号】P 2021570413
(86)(22)【出願日】2020-05-27
(86)【国際出願番号】 US2020034699
(87)【国際公開番号】W WO2020243171
(87)【国際公開日】2020-12-03
【審査請求日】2023-05-18
(32)【優先日】2020-05-26
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-05-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ブルーマン,タイラー
(72)【発明者】
【氏名】シュウィン,グラハム
(72)【発明者】
【氏名】エドベンソン,グレッグ
【審査官】豊田 真弓
(56)【参考文献】
【文献】特開2012-168623(JP,A)
【文献】特開2003-256266(JP,A)
【文献】米国特許出願公開第2015/0120779(US,A1)
【文献】特開2012-168626(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
メモリを再利用のために準備する、コンピューティングシステムの集合体の装置であって、
第1のユーザの使用期間中は前記第1のユーザの第1のクライアントデバイスがアクセス可能な第1のメモリ部分と、
スイッチに結合されるサービスプロセッサとを備え、前記サービスプロセッサは前記使用期間中に前記第1のメモリ部分と通信し、前記装置はさらに、
前記スイッチに結合されるルートオブトラストプロセッサを備え、前記ルートオブトラストプロセッサには、前記使用期間中は前記第1のユーザの前記第1のクライアントデバイスはアクセス不可能であり、前記装置はさらに、
前記第1のユーザの前記使用期間中は前記第1のユーザの前記第1のクライアントデバイスがアクセス不可能な第2のメモリ部分と、
前記サービスプロセッサが前記第1のメモリ部分と通信している間に前記第2のメモリ部分をデプロイのために準備するように前記ルートオブトラストプロセッサをトリガするための1つ以上の制御信号とを備
え、
前記ルートオブトラストプロセッサは、前記第2のメモリ部分の前のユーザからのデータを消去することによって前記第2のメモリ部分を準備する、装置。
【請求項2】
前記データを消去することは、前記第2のメモリ部分を当初の工場状態に戻すことを含む、請求項
1に記載の装置。
【請求項3】
メモリを再利用のために準備する、コンピューティングシステムの集合体の装置であって、
第1のユーザの使用期間中は前記第1のユーザの第1のクライアントデバイスがアクセス可能な第1のメモリ部分と、
スイッチに結合されるサービスプロセッサとを備え、前記サービスプロセッサは前記使用期間中に前記第1のメモリ部分と通信し、前記装置はさらに、
前記スイッチに結合されるルートオブトラストプロセッサを備え、前記ルートオブトラストプロセッサには、前記使用期間中は前記第1のユーザの前記第1のクライアントデバイスはアクセス不可能であり、前記装置はさらに、
前記第1のユーザの前記使用期間中は前記第1のユーザの前記第1のクライアントデバイスがアクセス不可能な第2のメモリ部分と、
前記サービスプロセッサが前記第1のメモリ部分と通信している間に前記第2のメモリ部分をデプロイのために準備するように前記ルートオブトラストプロセッサをトリガするための1つ以上の制御信号とを備え、
前記ルートオブトラストプロセッサは、第2のユーザが使用できるように前記第2のメモリ部分を再構成することによって前記第2のメモリ部分を準備する
、装置。
【請求項4】
前記ルートオブトラストプロセッサおよび前記スイッチに結合されるコネクタをさらに備え、前記ルートオブトラストプロセッサは、前記コネクタを介して信号を送信して、前記サービスプロセッサおよび前記ルートオブトラストプロセッサと前記第1のメモリ部分および第2のメモリ部分とのアクセスをスワップするように前記スイッチに指示する、請求項
1~3のいずれか1項に記載の装置。
【請求項5】
メモリを再利用のために準備する、コンピューティングシステムの集合体の装置であって、
第1のユーザの使用期間中は前記第1のユーザの第1のクライアントデバイスがアクセス可能な第1のメモリ部分と、
スイッチに結合されるサービスプロセッサとを備え、前記サービスプロセッサは前記使用期間中に前記第1のメモリ部分と通信し、前記装置はさらに、
前記スイッチに結合されるルートオブトラストプロセッサを備え、前記ルートオブトラストプロセッサには、前記使用期間中は前記第1のユーザの前記第1のクライアントデバイスはアクセス不可能であり、前記装置はさらに、
前記第1のユーザの前記使用期間中は前記第1のユーザの前記第1のクライアントデバイスがアクセス不可能な第2のメモリ部分と、
前記サービスプロセッサが前記第1のメモリ部分と通信している間に前記第2のメモリ部分をデプロイのために準備するように前記ルートオブトラストプロセッサをトリガするための1つ以上の制御信号とを備え、
前記ルートオブトラストプロセッサおよび前記スイッチに結合されるコネクタをさらに備え 前記ルートオブトラストプロセッサは、前記コネクタを介して信号を送信して、前記サービスプロセッサおよび前記ルートオブトラストプロセッサと前記第1のメモリ部分および第2のメモリ部分とのアクセスをスワップするように前記スイッチに指示する、装置。
【請求項6】
前記第1のメモリ部分および前記第2のメモリ部分はフラッシュメモリを含む、請求項1~5のいずれか1項に記載の装置。
【請求項7】
前記スイッチは複数の入力ラインおよび複数の出力ラインを有する、請求項1~6のいずれか1項に記載の装置。
【請求項8】
クラウドコンピューティングシステムにおいてメモリを再利用のために提供する方法であって、前記方法は、
ルートオブトラストプロセッサと、第1のユーザが前記クラウドコンピューティングシステムにおけるサービスプロセッサを通じた第1のメモリへのアクセスを終了した後に返された前記第1のメモリとの通信を可能にすることと、
第2のユーザがアクセスできるように前記サービスプロセッサが第2のメモリとの通信を許可されている間、かつ、前記ルートオブトラストプロセッサが前記第2のメモリとの通信を禁止されている間、前記ルートオブトラストプロセッサが、前記第1のメモリを将来の使用のために準備することと、
前記サービスプロセッサおよび前記ルートオブトラストプロセッサと前記第1のメモリおよび第2のメモリとの通信の交換をトリガするためのスイッチ信号を生成することとを備える、方法。
【請求項9】
前記通信の交換は、
前記サービスプロセッサが前記第1のメモリと通信することを許可することと、
前記サービスプロセッサが前記第2のメモリと通信することを禁止することと、
前記ルートオブトラストプロセッサが前記第2のメモリと通信することを許可することと、
前記ルートオブトラストプロセッサが前記第1のメモリと通信することを禁止することとを備える、請求項8に記載の方法。
【請求項10】
前記スイッチ信号を生成することは、前記ルートオブトラストプロセッサが前記スイッチ信号をスイッチコンポーネントに送信することによって行われる、請求項8に記載の方法。
【請求項11】
前記第1のユーザの前記第1のメモリへのアクセスは、前記第1のユーザが前記サービスプロセッサを通じて前記第1のメモリにアクセスする使用期間が終了したという表示を受け取ったことに応じて終了する、請求項8~10のいずれか1項に記載の方法。
【請求項12】
前記第1のメモリを準備することは、前記第1のユーザからのデータを消去することを含む、請求項8~11のいずれか1項に記載の方法。
【請求項13】
前記データを消去することは、前記第1のメモリを当初の工場状態に戻すことを含む、請求項12に記載の方法。
【請求項14】
前記第1のメモリを準備することは、後のユーザのために前記第1のメモリを構成することを含む、請求項8~11のいずれか1項に記載の方法。
【請求項15】
メモリを同時にリサイクルするためのメモリ復元システムを有するクラウドコンピューティングシステムであって、前記クラウドコンピューティングシステムは、
サービスフロントエンドを備え、前記サービスフロントエンドは、
第1のテナントユーザの使用期間中は前記第1のテナントユーザの第1のクライアントデバイスがアクセス可能なサービスプロセッサと、
前記第1のテナントユーザの前記使用期間中は前記第1のテナントユーザの前記第1のクライアントデバイスがアクセス可能な第1のメモリ部分とを備え、前記クラウドコンピューティングシステムはさらに、
復元バックエンドを備え、前記復元バックエンドは、
第2のメモリ部分を備え、前記第2のメモリ部分には、前記第1のテナントユーザの前記使用期間中は前記第1のテナントユーザの前記第1のクライアントデバイスはアクセス不可能であり、前記復元バックエンドはさらに、
前記サービスプロセッサが前記第1のメモリ部分と通信している間、前記第2のメモリ部分を将来のデプロイのために準備するルートオブトラストプロセッサを備え、前記ルートオブトラストプロセッサには、前記第1のテナントユーザの前記第1のクライアントデバイスはアクセス不可能であり、前記クラウドコンピューティングシステムはさらに、
前記サービスフロントエンドおよび前記復元バックエンドに結合されるスイッチを備え、前記スイッチは、前記ルートオブトラストプロセッサからのスイッチ信号に応答して、前記サービスプロセッサおよび前記ルートオブトラストプロセッサと前記第1のメモリ部分および第2のメモリ部分とのアクセスをスワップするように構成されている、クラウドコンピューティングシステム。
【発明の詳細な説明】
【背景技術】
【0001】
関連出願の相互参照
本願は、2020年5月26日に出願され「マイクロプロセッサに接続された構成可能なメモリデバイス(Configurable Memory Device Connected To A Microprocessor)」と題された米国特許出願番号第16/884,002号と、2019年5月28日に出願され「マイクロプロセッサに接続された構成可能なメモリデバイス(Configurable Memory Device Connected To A Microprocessor)」と題された米国特許仮出願番号第62/853,667号とに基づく利益を主張し、上記出願をあらゆる目的で本願中に十分に記載されるように、本明細書に引用により援用する。
【0002】
背景
データセンターは、ユーザが大量のデータにアクセスし、消費し、格納できるように、コンピューティングおよびネットワーキング機器を集中させるための集中型ロケーションを提供する。たとえばクラウドコンピューティングシステムなどのコンピューティングシステムの集合体では、プロセッサおよびメモリなどの共通のリソースは、異なるユーザが順番に利用できるように構成されていることが多い。そのようなコンピューティング集合体では、あるユーザが利用し終わると消去して次のユーザ用に書き換えることができる書き換え可能なメモリ、たとえばフラッシュメモリが利用される。たとえば、クラウドサービスプロバイダは、新しいユーザがクラウドリソースにアクセスし始めると、リソースが後のユーザ用に適切に構成され、前のユーザからの情報はすべて利用できなくなるようにしなければならない。
【0003】
クラウドシステムによっては、クラウド上のユーザのアクティビティの完全性を保護するために、すべてのメモリのハードウェアワイプが必要となる場合がある。そのようなデータの消去には、データの完全な除去を確実に行うためにかなりの時間がかかり得る。任意の起動データを書き換えることによってメモリを再利用のために構成するのにさらに時間が費やされる。古いデータを削除し、次のユーザ用にクラウドリソースを再構成する期間は、いずれのユーザもそのリソースを利用できないオーバーヘッド時間である。メモリのリサイクルに費やされる時間を短縮するまたは最小限にすることが望ましい。
【発明の概要】
【0004】
概要
本願の実装例は、メモリを将来の使用のために同時にリサイクルするためのシステムに関する。いくつかの実装例において、メモリを再利用のために準備する、コンピューティングシステムの集合体における装置が提供される。上記装置は、第1のユーザの使用期間中は上記第1のユーザの第1のクライアントデバイスがアクセス可能な第1のメモリ部分を含む。サービスプロセッサがスイッチに結合され、上記使用期間中に上記第1のメモリと通信する。ルートオブトラストプロセッサが上記スイッチに結合される。上記ルートオブトラストプロセッサには、上記使用期間中は上記第1のユーザの上記第1のクライアントデバイスはアクセス不可能である。上記装置はさらに、上記第1のユーザの上記使用期間中は上記第1のユーザの上記第1のクライアントデバイスがアクセス不可能な第2のメモリ部分を含む。上記サービスプロセッサが上記第1のメモリ部分と通信している間に上記第2のメモリ部分をデプロイのために準備するように上記ルートオブトラストプロセッサをトリガするための1つ以上の制御信号が提供される。上記第1および第2のメモリ部分はフラッシュメモリであってもよい。
【0005】
いくつかの実装例において、上記ルートオブトラストプロセッサは、上記第2のメモリを当初の工場状態に戻すなど、上記第2のメモリの前のユーザからのデータを消去することによって上記第2のメモリ部分を準備するように構成されている。上記ルートオブトラストプロセッサはまた、第2のユーザが使用できるように上記第2のメモリ部分を再構成することによって上記第2のメモリ部分を準備してもよい。
【0006】
いくつかの局面において、上記装置は、上記ルートオブトラストプロセッサおよび上記スイッチに結合されるコネクタをさらに備えてもよい。上記ルートオブトラストプロセッサは、上記コネクタを介して信号を送信して、上記サービスプロセッサおよび上記ルートオブトラストと上記第1のメモリ部分および第2のメモリ部分とのアクセスをスワップするように上記スイッチに指示してもよい。いくつかの実装例において、上記スイッチは複数の入力ラインおよび複数の出力ラインを有してもよい。
【0007】
さらにいくつかの実装例において、クラウドコンピューティングシステムにおいてメモリを再利用のために提供する方法は、ルートオブトラストプロセッサと、第1のユーザが上記クラウドコンピューティングシステムにおけるサービスプロセッサを通じた第1のメモリへのアクセスを終了した後に返された上記第1のメモリとの通信を可能にすることを含む。上記ルートオブトラストプロセッサは、第2のユーザがアクセスできるように上記サービスプロセッサが第2のメモリとの通信を許可されている間、かつ、上記ルートオブトラストプロセッサが上記第2のメモリとの通信を禁止されている間、上記第1のメモリを将来の使用のために準備する。上記サービスプロセッサおよび上記ルートオブトラストと上記第1のメモリおよび第2のメモリとの通信の交換をトリガするためのスイッチ信号を生成する。たとえば、上記ルートオブトラストは、上記スイッチ信号をスイッチコンポーネントに送信してもよい。
【0008】
当該方法のさまざまな実装例および例が記載される。たとえば、上記通信の交換は、上記サービスプロセッサが上記第1のメモリと通信することを許可することと、上記サービスプロセッサが上記第2のメモリと通信することを禁止することと、上記ルートオブトラストプロセッサが上記第2のメモリと通信することを許可することと、上記ルートオブトラストプロセッサが上記第1のメモリと通信することを禁止することとを備えてもよい。
【0009】
いくつかの実装例において、上記第1のユーザの上記第1のメモリへのアクセスは、上記第2のユーザが上記サービスプロセッサを通じて上記第2のメモリにアクセスする使用期間が終了したという表示を受け取ったことに応じて終了する。
【0010】
いくつかの実装例において、上記第1のメモリの準備は、上記第2のメモリを当初の工場状態に戻すなど、上記第1のユーザからのデータを消去することを含む。上記準備はまた、後のユーザのために上記第1のメモリを構成することを含んでもよい。
【0011】
さらにいくつかの実装例において、メモリを同時にリサイクルするためのメモリ復元システムを有するクラウドコンピューティングシステムが提供される。上記クラウドコンピューティングシステムは、サービスフロントエンドおよび復元バックエンドを含む。上記サービスフロントエンドは、第1のテナントユーザの使用期間中は上記第1のテナントユーザの第1のクライアントデバイスがアクセス可能なサービスプロセッサと、上記第1のテナントユーザの上記使用期間中は上記第1のテナントユーザの上記第1のクライアントデバイスがアクセス可能な第1のメモリ部分とを含む。上記復元バックエンドは、上記第1のユーザの上記使用期間中は上記第1のテナントユーザの上記第1のクライアントデバイスがアクセス不可能な第2のメモリ部分と、上記サービスプロセッサが上記第1のメモリ部分と通信している間、上記第2のメモリ部分を将来のデプロイのために準備するルートオブトラストプロセッサとを含む。上記ルートオブトラストプロセッサには、上記第1のテナントユーザの上記第1のクライアントデバイスはアクセス不可能である。上記クラウドコンピューティングシステムは、上記サービスフロントエンドおよび上記復元バックエンドに結合されるスイッチをさらに含む。上記スイッチは、上記ルートオブトラストプロセッサからのスイッチ信号に応答して、上記サービスプロセッサおよび上記ルートオブトラストと上記第1のメモリおよび第2のメモリとのアクセスをスワップするように構成されている。
【0012】
いくつかの実装例において、上記ルートオブトラストプロセッサは、上記第2のメモリ部分の前のユーザからのデータを消去することによって上記第2のメモリ部分を準備する。上記データを消去することは、上記第2のメモリ部分を当初の工場状態に戻すことを含んでもよい。上記ルートオブトラストプロセッサはまた、第2のテナントユーザが使用できるように上記第2のメモリ部分を再構成することによって上記第2のメモリ部分を準備してもよい。
【0013】
上記クラウドコンピューティングシステムのいくつかの局面において、コネクタが上記ルートオブトラストプロセッサおよび上記スイッチに結合される。上記ルートオブトラストプロセッサは、上記コネクタを介して信号を送信して、上記サービスプロセッサおよび上記ルートオブトラストと上記第1のメモリ部分および第2のメモリ部分とのアクセスをスワップするように上記スイッチに指示してもよい。
【0014】
本開示は、限定ではなく例示を目的として図面に示され、これらの図面において同様の参照番号は同様の要素を指すために使用される。
【図面の簡単な説明】
【0015】
【
図1a】いくつかの実装例に従う、メモリ復元システムのさまざまな局面が実装され得る例示的な環境を示す概念図であり、再利用のために準備中の予約メモリを示す図である。
【
図1b】いくつかの実装例に従う、メモリ復元システムのさまざまな局面が実装され得る例示的な環境を示す概念図であり、準備された予約メモリが使用されている状態を示す図である。
【
図2】いくつかの実装例に従う、オペレーショナルシリアル周辺インターフェイスに結合されたルートオブトラスト処理ユニットおよびサービスプロセッサを選択的に接続するためにマルチプレクサを組み込む例示的なメモリ復元システムのブロック図である。
【
図3】いくつかの実装例に従う、2つのオペレーショナルシリアル周辺インターフェイスのうちの1つに結合されたルートオブトラスト処理ユニットおよびサービスプロセッサを選択的に接続するためにクロスバースイッチを組み込む例示的なメモリ復元システムのブロック図である。
【
図4】いくつかの実装例に従う、特定の実装例における制御回路のピン配列の一例を示す、
図3のメモリ復元システムのブロック図である。
【
図5】いくつかの実装例に従う、メモリ予約システムを用いて同時メモリリサイクルを実装する例示的な方法のフロー図である。
【
図6】いくつかの実装例に従う、
図1~
図4のメモリ予約システムにおいて実装するのに使用可能な例示的なコンピューティングデバイスのブロック図である。
【発明を実施するための形態】
【0016】
実施形態の詳細な説明
本メモリ復元システムは、コンピューティングシステムの集合体が、非アクティブ書き換え可能メモリを、予約のために、かつ他のメモリの将来の置換のために、準備することを可能にする。この準備は、他のメモリがアクティブであり、コンピューティングシステムのユーザによるアクセスに利用可能である間に行われる。予約メモリ部分の準備は、アクティブメモリ部分の現在のユーザから分離されてコンピューティングシステムにおいてオフラインで実行される。メモリの準備は、データの消去、再構成等を含む。アクティブメモリ部分が返されると、メモリ復元システムによって予約メモリ部分を簡単に交換することができる。いくつかの実装例において、以前にアクティブであったメモリは、これと同様に将来の再利用のために同時にリサイクルされて予約メモリになることができる。
【0017】
いくつかの実装例において、コンピューティングデバイス、たとえばサーバの集合体が、このメモリ復元システムをクラウドコンピューティング環境に組み込んでもよい。クラウドコンピューティングシステムで使用されるコンピューティングデバイスは、個々のクライアントデバイス、たとえばワークステーションよりも多くのメモリと、ロバストなオペレーティングシステムなどの強力なコンポーネントとを含む。クラウドコンピューティングシステムは、ハイパーバイザのないベアメタルインスタンスなどの各種サーバを含み得る。
【0018】
サービスプロセッサは、2つのメモリ部分、たとえば2つのフラッシュメモリのうちの1つを使用するように切り替わるように構成されている。サービスプロセッサが現在のメモリ部分に接続して現在のメモリ部分を使用している間、ルートオブトラスト(root of trust)処理ユニット(ROT)は、たとえばクラウドサービスアプリケーションにおいて、サーバ上に存在しているユーザと同時に、バックグラウンドで「非アクティブ」メモリ部分を構成することができる。非アクティブメモリ部分は、準備段階の間はサービスプロセッサとの接続が禁止される。クラウドインフラストラクチャは、ユーザがサーバから退出すると、それまで非アクティブであったメモリ部分に「スワップ」することができる。本メモリ復元システムの同時リサイクルプロセスにより、サーバ準備プロセスの大幅な高速化がもたらされ得る。メモリ部分の交換は電気的接続を用いて行われ、スワップ完了まで数ミリ秒~数秒かかる。
【0019】
ユーザがアクセスするコンピューティングデバイスは、クリーンなファームウェアでプロビジョニングされる。バックグラウンドで実行される予約メモリ部分の準備は、予約メモリ部分の前のユーザからのデータを消去して、予約メモリ部分をきれいにワイプすること、たとえば工場出荷時の設定に復元することを含み得る。いくつかの例では、この準備段階はまた、予約メモリ部分に格納されたデータを読み出して、前のユーザがシステム上に存在している間にビットが変更されていないことを確認することを含み得る。
【0020】
準備段階はまた、後のユーザが使用できるように予約メモリ部分を再構成することを含み得る。再構成では、後のユーザの環境またはタスクを開始するために、起動またはブートメモリに適切なデータを書き込むことが必要となる場合がある。たとえば、ルートオブトラストは、準備されたメモリが次のユーザのためにサービスプロセッサに渡される前に、クリーンなフラッシュメモリ上にブートされる新鮮なソフトウェアイメージを準備してもよい。新鮮なイメージは、以前に準備されたメモリデバイスからのものであってもよい。このように、準備プロセスは連続的にメモリ部分のいずれかを保持することができる。
【0021】
本説明で言及されるユーザ、たとえばエンドユーザは、所与のサービスプロセッサおよびアクティブメモリデバイスへの利用可能なアクセスを有すると指定された任意の人物またはエンティティであってもよく、アクティブメモリデバイスはユーザの要求に応じて事前に構成される。たとえば、ユーザは、マルチテナントクラウドアーキテクチャにおけるサーバスペースのテナントであってもよく、当該テナントは分離されており、他のクラウドリソースの他のテナントには見えない。いくつかの実装例において、ユーザはまた、シングルテナントクラウドシステムのテナントであってもよい。たとえば、ユーザは、サーバを現在使用している、たとえばサーバに割り当てられている顧客であってもよい。ユーザは、許可された人物のグループ、1つ以上のエンティティ、たとえば企業もしくは企業内のグループ(事業、大学、政府、軍隊等を含む)、または個人であってもよい。
【0022】
サービスプロセッサおよびアクティブメモリは、割り当てられたコンピュータリソースへの利用可能なアクセスをユーザが有すると指定されている使用期間中は、割り当てられたユーザ専用であってもよい。たとえば、使用期間は、割り当てられたコンピュータリソース、たとえば所与のサービスプロセッサおよび関連メモリへのアクセスがユーザに与えられることで開始してもよく、割り当てられたコンピュータリソースをユーザが放棄したときに終了してもよい。使用期間は、顧客との合意、特定のプロジェクトの継続期間、雇用または契約期間等によって規定されてもよい。
【0023】
特定の種類のリソースまたは動作、たとえばシステムフラッシュメモリに関して特徴を記載している場合があるが、本明細書に記載されている特徴は、他のクラウドコンピューティングリソースおよび動作に適用可能である。さらに、クラウドコンピューティングは、メモリ復元システムがマザーボードによって実装され得る、記載されているコンピューティングシステムの一例であるが、本メモリ復元システムは、メモリデバイスまたは他の電子ハードウェアがバックグラウンドで更新される他のコンピューティング環境で利用されてもよい。たとえば、ネットワークカード、ハードドライブ等は、現在実行中のソフトウェアに干渉することなく更新される場合がある。
【0024】
メモリ復元システムは、大量のデータを含むためにロードに典型的に長時間かかるメモリイメージなどのメモリの更新のために利用されてもよい。更新は、コンピュータデバイスのユーザによって第1のメモリが使用されている間に第2のメモリでバックグラウンドで実行されてもよい。次いで、デバイスは、更新された第2のメモリをロードするために再起動されてもよく、2つのメモリは同じ種類、たとえばフラッシュメモリである。したがって、一方のメモリはたとえば永続的なメモリではなく、他方のメモリはランダムアクセスメモリである。加えて、メモリ復元システムは、たとえば、許可ユーザなどによってメモリ部分が改ざんされたことが疑われる場合、非アクティブメモリ部分に対してフォレンジックを実行することを可能にすることができる。
【0025】
ユーザのために単一のフラッシュメモリデバイスをサービスプロセッサに装着するように構成することが通例である。フラッシュメモリの消去にかなりのダウンタイムを要する場合があり、その間、システムは動作不能である。遅い消去/書込サイクルを補償するために、サービスプロセッサとフラッシュメモリ部分との間の物理的な通信バスを高速化して、フラッシュメモリ部分との通信を高速化することを試みるシステムもある。
【0026】
サービスプロセッサが使用しているメモリを論理的に分割し、たとえば2等分し、一方の部分、たとえば半分を更新しながら他方の部分(複数可)を実行するという別の解決策も試みられている。しかしながら、この分割メモリ方式では、ユーザがサーバに上に存在するようになると、現在実行中のサービスプロセッサソフトウェアが信頼されないとみなされる可能性があるため、セキュリティ上のリスクを課す可能性がある。
【0027】
本メモリ復元システムは、予約メモリをデプロイする準備が整うまで、サービスプロセッサおよび存在しているユーザの予約メモリへのアクセスを制限するスイッチを通じて予約メモリ部分の準備を分離することによって、セキュリティ上の利点を提供する。
【0028】
本メモリ復元システムにより、コンピュータリソースのリサイクル時間が大幅に短縮される。コンピュータリソースの次のユーザは、前のユーザがコンピュータリソースを使い終わった後、コンピュータリソースが準備される(たとえば、データが消去される)のを待つ必要がない。現在存在しているユーザ用の別のアクティブメモリにサービスプロセッサがアクセスするのと同時に、次のユーザ用のメモリワイプの時間のかかる部分を構成することによって、ユーザの切り替え時に経験するワイプ時間を短縮することができる。メモリ復元システムは、サーバ群の弾力性を高めることにより、増加する顧客需要に対応し、常時リサイクルを待っている潜在的に何千ものオフラインサーバを回避する。
【0029】
いくつかの実装例において、次のユーザがサービスプロセッサを使用し始めることができるまでの時間を短縮するために、メモリの2つ以上の物理的なセクションが維持される。サービスプロセッサが現在のユーザによって使用されている間、メモリ(たとえば、フラッシュメモリ、またはその他)の第2のセクションは、ルートオブトラスト処理ユニット(ROT)によってアクセスされる。ROTは、予約メモリの準備、および準備された予約メモリの置換、たとえば再インストールといったジョブ専用であってもよい。いくつかの実装例において、ROTは、ユーザーがアクセスできないことによって信頼される別のハードウェアおよびファームウェアを含み得る。ユーザテナンシー同士の間、ROTを用いて、サービスプロセッサが使用する任意のメモリを安全にワイプする。
【0030】
いくつかの実装例において、ROTまたは任意の他の種類の処理設備を用いて、他の機能を提供してもよい。たとえば、ROTは、次のユーザ用のデータをサニタイズ、ロード、および/または検証してもよい。そして、新しいユーザがクラウドリソース上で動作を開始する時間になると、サービスプロセッサは、準備されたメモリセクションと通信状態になり、直近に使用されたメモリセクションがワイプされるかまたは他の方法で構成されるのを待つことなく処理を開始することができる。
【0031】
図1aに示す使用例の説明では、クラウドコンピューティングシステム100の文脈(コンテキスト)で、予約メモリであるメモリ-1 146が再利用のために準備されるメモリ準備段階が示されている。クラウドコンピューティングシステム100は、コンピューティングデバイス-A 120のサービスフロントエンド122とコンピューティングデバイス-B 140の復元バックエンド142とを有するメモリ復元システム110を含む。一実装例によれば、メモリ復元システム110を利用して、クラウドコンピューティングシステム100のルータ(図示せず)を介してネットワーク164を横断するユーザ104のクライアントデバイス102によってI/Oポート128を通じてメモリ-2 126がアクセスされている間にメモリ-1 146を準備することができる。
【0032】
図1aは、サービスプロセッサ124およびメモリ-2 126を有する、クライアントデバイス102がアクセス可能なサービスフロントエンド122を含むメモリ復元システム110のインスタンスを示す。メモリ復元システム110は、ROT処理ユニット144およびメモリ-1 146を有する、クライアントデバイス102がアクセス不可能な復元バックエンド140を含む。クライアントデバイスは、デスクトップ、ラップトップ、タブレット、スマートフォン、シンクライアント等の、さまざまな異種デバイスであってもよい。
【0033】
いくつかの実装例において、コンピューティングデバイス-A 120およびコンピューティングデバイス-B 140はサーバデバイスであってもよい。たとえば、コンピューティングデバイス-A 120は、ユーザが特定のロックダウンされたコンポーネントを除いてコンピューティングデバイス-A 120の大部分にアクセスできるベアメタルタイプのサーバであってもよい。他の実装例において、コンピューティングデバイス-A 120およびコンピューティングデバイス-B 140は、別個のデバイスではなく、たとえば、ハイパービジョン(Hypervision)ソフトウェアによって管理される仮想化マシンである。いくつかの実装例において、サーバは大規模ブレードサーバである。
【0034】
サービスプロセッサ124は、ユーザデバイス102が接続して機能を実行し得る任意のマイクロプロセッサであってもよい。たとえば、いくつかの実装例において、サービスプロセッサは、コンピューティングデバイス-A 120に埋め込まれたOracle Integrated Lights Out Manager(ILOM)を含み得る。サーバは、高性能プロセッサ、たとえば、Intel XEON(登録商標)およびAMD EPYC(登録商標)プロセッサ等の、各種サービスプロセッサを含み得る。いくつかの実装例において、サービスプロセッサは、ベースボード管理コントローラ(BMC:baseboard management controller)を含み得る。他の種類のサービスプロセッサ(汎用、カスタム、ビットスライス、もしくは他のプロセッサを含む)または処理システムもしくはリソースを使用してもよい。BMCは、センサを用いてサーバの物理的状態を監視し、特別な管理接続を通じてシステム管理者と通信してもよい。
【0035】
スイッチ160は、メモリ-1 146およびメモリ-2 126をそれぞれROTおよびサービスプロセッサに選択的に接続する。当該スイッチは、マルチプレクサ、スイッチの集合体、たとえば複数の入出力ラインを有するクロスバースイッチ等の、さまざまな種類を含み得る。コンピューティングシステムコントローラ162は、メモリ復元システム110のさまざまな局面を制御してもよい。コントローラは、メモリ-1 146をデプロイのために準備するための信号をROTに送信してもよい。制御信号は、サービスプロセッサ124がメモリ-2 126と通信している間にメモリ-1 146を準備して構成するようにROTをトリガしてもよい。
【0036】
いくつかの実装例において、ROTおよび/またはサービスプロセッサをメモリ-2 126またはメモリ-1 146に選択的に接続または切断するようにスイッチ160に指示するために、1つ以上のスイッチ信号がROTからスイッチに送られる。スイッチ信号は、電圧を印加するための、または電圧を印加しないための単一の信号であってよい。いくつかの実装例において、スイッチ信号は、仮想ワイヤ、物理ワイヤ、または他の信号伝送媒体を通じてROTから送信されてもよい。いくつかの実装例において、スイッチ信号はまた、コントローラ162などの他のソースによって送信されてもよい。さらにいくつかの実装例において、スイッチ信号は、スイッチ160を切り替えるための物理的なコンポーネントであってもよい。
【0037】
簡略化のため、
図1aには単一のクライアントデバイス102およびコンピューティングデバイス120、140が示されている。クラウドコンピューティングシステム100は、コンピューティングデバイス120、140の膨大な集合体を含んでもよく、多数のユーザ104の多くのクライアントデバイス102に同時にサービス提供するためにスケーリング能力を有する。加えて、
図1aはROTが準備中の1つのメモリ部分を示しているが、いくつかの実装例において、ROTは、複数の予約メモリを将来のデプロイのために同時にまたは順次準備することができる。
【0038】
クラウドコンピューティングシステム100は、サービスとしてのプラットフォーム(PaaS:platform as a service)、サービスとしてのインフラストラクチャ(IaaS:infrastructure as a service)等のさまざまなサービスを実行する、パブリック、プライベート、仮想プライベート、マルチクラウド、またはパーソナルクラウドシステム、またはその組み合わせであってもよい。メモリ復元システム110は、
図1aではクラウドコンピューティングシステム100の文脈(コンテキスト)で示されているが、メモリ復元システム110は、ダウンタイムの短縮を伴うメモリ部分のスワップによって恩恵を受けることができる他のコンピューティングシステムおよびアプリケーションにおいて、実質的に同じコンポーネントを用いて利用されてもよい。
【0039】
メモリ-1 146およびメモリ-2 126は、フラッシュメモリなどの、格納ならびにサービスプロセッサ124およびROT処理ユニット144との通信に適した任意の書き換え可能なメモリであってもよい。メモリ-1 146およびメモリ-2 126は、典型的に、同じ種類の書き換え可能なメモリ、たとえばフラッシュメモリである。メモリ-1 146およびメモリ-2 126は、それぞれコンピューティングデバイス120、140の構成要素として示されているが、メモリはコンピューティングデバイス120、140から離れて位置していてもよい。たとえば、メモリ-1 146およびメモリ-2 126は、仮想化マネージャ、たとえばハイパービジョンソフトウェアによってサーバ(コンピューティングデバイス120、140)から切り離された仮想化メモリであってもよい。
【0040】
図1aの使用例のさらなる説明において、
図1bは、メモリ-1 146をサービスプロセッサ124とともに再利用するために、完全に準備されたメモリ-1 146をメモリ-2 126とスワップするクラウドコンピューティングシステム100の置換段階を示す。置換段階の間、スイッチ160は、接続を変更するようにスイッチ160をトリガするROT144などからの1つ以上の信号を受信してもよい。スイッチ接続の変更を通じて、ROT144はメモリ-2 126への通信アクセスを取得し、サービスプロセッサ124はメモリ-2 126へのアクセスを失う。同様に、ROT144はメモリ-1 146への接続能力を失い、サービスプロセッサ124はメモリ-2 126への通信アクセスを取得する。直近の先行ユーザとは異なる後のユーザ108の新しいユーザデバイス106は、メモリ-2 126がバックグラウンドで再利用のために準備されている間、メモリ-1 146に接続することができる。
【0041】
置換段階の間、ROTは、ハードウェアホスト、たとえばテナントユーザが使用するサーバの電源切断および再投入をトリガし、既知のファームウェアのインストールを促すことができる。ROTは、プロセスが予想通りに実行されたという確認をハードウェアホストから受けることができる。ファームウェアインストールの準備および置換段階は、永続的なサービス拒否(PDoS:permanent denial of service)攻撃、またはファームウェアにバックドアを埋め込んでデータを盗むかもしくは他の方法で利用できないようにする企てなどの、ファームウェアベースの攻撃のリスクを低下させる。
【0042】
図2の例に示すようなメモリ復元システム200のいくつかの実装例は、マルチプレクサスイッチ202を含み得る。サービスプロセッサ(SP)204は、シリアル周辺インターフェイス(SPI)206を通じてマルチプレクサスイッチ202を介して、SPI210を通じてオペレーショナルシリアル周辺インターフェイス(OSPI)208に選択的に結合される。ROT214は、シリアル周辺インターフェイス(SPI)216を通じてマルチプレクサスイッチ202を介してOSPI208に選択的に結合される。OSPI208は、ROT214によってアクセスされるメモリ-1 220およびSP204によってアクセスされるメモリ-2 222を含むフラッシュメモリシステムとの通信を可能にする。
【0043】
いくつかの実装例において、時間節約または他の有益な結果を提供するために、準備段階における特定のステップまたは動作のみを事前に構成しなければならない場合がある。コネクタ218は、ROT214によって生成された1つ以上の信号をスイッチに送信するための専用経路を提供してもよい。コネクタ218は、ROT214をマルチプレクサスイッチ202に結合するための仮想ワイヤであってもよい。
【0044】
図3は、サービスプロセッサ304がアクティブメモリ、たとえばメモリ-2 322にアクセスすることを可能にしながら同時に予約メモリ、たとえばメモリ-1 320を構成するためのメモリ予約システム300の実装例を説明する図を示す。予約メモリが準備されると、メモリ予約システムは、クロスバースイッチ302を介して、サービスプロセッサ304を予約メモリ、たとえばメモリ-1 320に切り替える。
【0045】
クロスバースイッチ302によって、ROT314またはSP304を、SPIおよびOSPI1 308またはOSPI2 324を介してメモリ-1 320またはメモリ-2 322のいずれかに選択的に接続することができる。クロスバースイッチ302を通じて、ROT314は予約メモリに(OSPI1 308を通じてメモリ-1 320に、またはOSPI2 324を通じてメモリ-2 322に)接続され、SP304はアクティブメモリに(OSPI1 308を通じてメモリ-1 320に、またはOSPI2 324を通じてメモリ-2 322に)接続される。いくつかの実装例において、1つ以上のROTおよび1つ以上のSPは、2つ以上の関連するOSPIを有する2つ以上のメモリ部分の間で接続され得る。いくつかの実装例において、高帯域幅バススイッチを利用してもよい。
【0046】
コネクタ318は、ROT314をクロスバースイッチ302に結合するための物理ワイヤまたは仮想ワイヤであってもよい。ROT314は、コネクタ318を通じてクロスバースイッチ302にスイッチ信号を送信してもよく、たとえば、メモリ-1 320のためのOSPI1 308へのアクセスと、メモリ-2 322のためのOSPI2 324へのアクセスとを選択的にスワップするようにクロスバースイッチ302をトリガするための信号を送信してもよい。
【0047】
特定の実装例において、各メモリ部分は、別々のフラッシュメモリコンポーネントまたはシステムであってもよい。他の実装例において、メモリ部分またはパーティションは、同じ物理システム内にあってもよく、またはバックグラウンドにおいて3つ以上の異なるメモリコンポーネント(もしくは複数ある場合はメモリデバイス)にまたがって編成されてもよい。
【0048】
いくつかの実装例において、ROT314は予約メモリを準備して構成してもよく、これは、OSPI1 308および/またはOSPI2 324をロードして測定することをさらに含み得る。たとえば、OSPI1 308および/またはOSPI2 324の内容を読み出して既知の許容値と比較してもよい。
【0049】
いくつかの実装例において、ROTには、ROTが所与の時間にOSPI1 308およびOSPI2 324を測定して更新することができるように、メモリ-1 320およびメモリ-2 322の両方への交互のアクセスが与えられてもよい。一実装例において、クロスバースイッチ302によって、ROT314は、たとえばコネクタ318を介してROT314から送られる信号を通して、ROT314がOSPI1 308またはOSPI2 324のいずれに接続されるか、およびOSPI1 308またはOSPI2 324のいずれのデバイスがSP304に接続されるかを制御することができる。
【0050】
図4は、
図3に示したメモリ復元システム構成400における可能なコンポーネントの例示的な相互接続のブロック図である。たとえば、ルネサス/Integrated Device Technology社のQS3VH16212バス交換ホットスイッチなどの高帯域幅バススイッチ402を使用してもよい。コネクタ418は、より多くのI/Oを提供するために、Texas Instruments社の16ビットI/OエキスパンダPCA9555などの入出力エキスパンダであってもよい。いくつかの実装例において、信号エキスパンダデバイスは、メモリ復元システム400の特定の構成において物理的なピンが不足している場合に有益であり得る。たとえば、高帯域幅バススイッチは、追加信号のために追加の制御ビットが必要となる場合がある。他の数および種類の信号エキスパンダまたは信号コネクタ構成を使用してもよい。
【0051】
図3に関して上述したように、相互接続は、複数の入力ライン416を通じてROT414を、または複数の出力ライン406を通じてSP404を、複数のライン410、412を通じて2つのOSPIデバイス408、424のいずれかに選択的に接続する複数のピンを有するスイッチ402を含む。OSPIデバイス408、424は、それぞれのメモリ部分(図示せず)への結合を可能にする。
【0052】
図5は、使用済みメモリを再利用のために自動的に準備して構成する例示的な同時リサイクルプロセス500のフローチャートである。この同時リサイクルプロセスは、メモリ復元システム(たとえば、
図1aおよび
図1bの110、
図2の200、または
図3の300)のコンポーネントのうちの少なくともいくつかによって実行される。
【0053】
この同時リサイクルは、ホストに接続された物理的媒体、たとえば前のユーザによって返されたフラッシュメモリを見つけることを含み得る。ブロック502において、コンピューティングリソースの集合体、たとえばクラウドコンピューティングシステムによって以前に使用されていた、返されたメモリ部分が非アクティブであるという表示を受け取る。この表示は、返されたメモリへの特定のユーザのアクセスを終了させるパラメータに達したという、たとえばクラウドコンピューティングシステムによる、内部で生成された通知であってもよい。使用の終了は、特定のユーザの使用期間の満了、返されたメモリの使用禁止の警告、メモリのハードウェアまたはソフトウェアの問題等であってもよい。いくつかの実装例において、当該表示は、ユーザデバイスによって生成されてもよく、たとえば、ユーザが返されたメモリの利用を終了したことがシステムに提出されてもよい。
【0054】
ブロック504において、サービスプロセッサ(
図1a、
図1bの124、
図2の204、および
図3の304など)は、返された非アクティブメモリへのアクセスが一時的に禁止される。サービスプロセッサは、スイッチ(
図1a、
図1bの106、
図2の202、または
図3の302など)によって非アクティブメモリから切断されてもよい。サービスプロセッサは、現在存在しているユーザ(
図1a、
図1bの104など)によって使用される。ブロック506において、現在存在しているユーザのクライアントデバイスのためにSPがアクティブメモリ部分にアクセスできるようにユーザ接続が提供される。アクティブメモリ部分は、すでに準備されており、使用されるように構成されている。
【0055】
ROT(
図1a、
図1bの144、
図2の214、および
図3の314など)は、スイッチ信号をスイッチに送信して、メモリ部分への接続を変更するようにスイッチをトリガしてもよい。ブロック508において、返された非アクティブメモリ部分にROTがアクセスできるように接続が提供される。
【0056】
ROTは、媒体の種類に適用可能な消去コマンドを実行することにより、セキュア消去を開始することができる。ブロック510において、返された非アクティブメモリ部分上のデータは、準備段階中にROTによって消去される。準備段階の間、復元されたメモリにデータが残らないように、物理的破壊および論理データ消去プロセスが利用される。
【0057】
いくつかの実装例において、消去プロセスが完了すると、ROTは、使用済みメモリをその初期の工場状態に戻して、ユーザのための最初のデプロイの前の工場設定にメモリを復元するプロセスを開始することができる。ROTはさらに、使用済みメモリに欠陥がないかどうかをテストすることができる。欠陥が検出された場合、使用済みメモリにさらなる調査のためのフラグを立てることができる。
【0058】
ブロック512において、ROTは、サービスプロセッサの後のユーザのために非アクティブメモリを構成する。コンピューティングリソース、たとえばベアメタルコンピュートサーバインスタンスがユーザまたはサービスによって解放されると、ハードウェアは、返されたメモリが再割り当てのためにインベントリに解放される前に、プロビジョニングプロセスを経る。構成することは、オペレーティングシステムおよびアプリケーションを含むソフトウェアをインストールして構成することを含み得る。
【0059】
決定ブロック514において、アクティブメモリについての使用期間がまだ継続しているか、または当該期間が終了したかを判断する。ブロック516において、使用期間がまだ継続しており、ユーザが依然としてアクティブメモリの使用を許可されている場合は、準備されたアクティブメモリ部分は使用中のままであり、非アクティブメモリ部分はメモリスワップにおける後のユーザのために保留中として維持される。そうでない場合、たとえば、それ以上ユーザがいない場合、メモリがその後の使用には摩耗しすぎていることが判明した場合等、状況によっては、プロセスは終了してもよい。使用期間がもはや継続しておらず、ユーザがアクティブメモリ部分を引き続き使用することが許可されていない場合は、プロセスはブロック502に戻り、メモリをスワップし、最近使用されたメモリ部分を準備/構成する。
【0060】
図6は、本明細書に記載されているメモリ復元システムの実装例とともに使用する例示的なコンピュータデバイス600、たとえばサーバ(
図1aまたは
図1bの120または140など)のブロック図である。コンピュータデバイス600は、コンピュータデバイスの集合体の上述のコンピュータデバイスのうちのいずれかに含まれていてもよい。コンピュータデバイス600は例示に過ぎず、請求項の範囲を限定することを意図していない。当業者であれば、他の変形例、修正例、および代替例を認識するであろう。
【0061】
例示的な一実装例において、コンピュータデバイス600は、さまざまな通信インターフェイス(
図1a、
図1bの128など)の組み合わせを表し得るI/Oインターフェイス610を含む。I/Oインターフェイス610はネットワークインターフェイスを含み得る。ネットワークインターフェイスは、典型的に、ネットワークインターフェイスカード、イーサネット(登録商標)カード、モデム(電話、衛星、ケーブル、ISDN)、および(非同期)デジタル加入者線(DSL)ユニットなどを含む。さらに、ネットワークインターフェイスは、マザーボード上に物理的に統合されてもよく、ソフトDSLなどのソフトウェアプログラムであってもよく、またはその他であってもよい。いくつかの実装例において、コンピュータデバイス600は、物理I/Oコンポーネントの代わりに仮想デバイスを使用してもよい。
【0062】
コンピュータデバイス600はまた、HTTP、TCP/IP、RTP/RTSP、プロトコル、無線アプリケーションプロトコル(WAP)、およびIEEE902.11プロトコルなどの、ネットワーク670上でのI/Oインターフェイス610の通信を可能にするソフトウェアを含み得る。これに加えておよび/またはこれに代えて、他の通信ソフトウェアおよび転送プロトコル、たとえばIPXまたはUDPなどを使用してもよい。通信ネットワーク670は、ローカルエリアネットワーク、ワイドエリアネットワーク、無線ネットワーク、イントラネット、インターネット、プライベートネットワーク、パブリックネットワーク、スイッチドネットワーク、またはたとえばクラウドネットワークなどの任意の他の適切な通信ネットワークを含み得る。ネットワーク670は、多くの相互接続されたコンピュータシステム、および、配線リンク、光リンク、衛星などの任意の適切な通信リンク、もしくはブルートゥース(登録商標)、WIFI、波動伝搬リンクなどの他の無線通信リンク、または情報の通信のための任意の他の適切なメカニズムを含み得る。たとえば、ネットワーク670は、無線トランシーバなどの基地局を介して、携帯電話およびタブレットなどの1つ以上のモバイル無線デバイス956A~Nと通信してもよい。
【0063】
コンピュータデバイス600は、典型的に、上述のようなプロセッサ650(
図1a、
図1bのサービスプロセッサ124およびROT144など)などのコンピュータコンポーネントと、たとえば上述のようなフラッシュメモリなどのメモリ620および記憶媒体640などのメモリストレージデバイスとを含む。バスがコンピュータコンポーネントを相互接続してもよい。いくつかの実装例において、コンピュータデバイス600は、ハードドライブ(複数可)(たとえばSCSI)およびコントローラカード、サーバ対応プロセッサ、ネットワークインターフェイス、およびメモリなどを有するサーバである。コンピュータが示されているが、他の多くのハードウェアおよびソフトウェア構成が本発明とともに使用するのに適していることが、当業者には容易に明らかであろう。
【0064】
メモリ620および記憶媒体640は、データ、ファイル、およびコンピュータプログラムなどを格納するための有形の非一時的なコンピュータ読取可能媒体の一例である。他の種類の有形媒体は、ディスクドライブ、ソリッドステートドライブ、フロッピー(登録商標)ディスク、光記憶媒体およびバーコード、フラッシュドライブなどの半導体メモリ、フラッシュメモリ、ランダムアクセスまたは読出専用タイプのメモリ、バッテリバックアップ式の揮発性メモリ、ネットワーク化されたストレージデバイス、ならびにクラウドストレージなどを含む。データストア632は、ユーザが保存したデータなどの各種データを格納するために使用されてもよい。
【0065】
プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとも呼ばれるアプリケーション634などの1つ以上のコンピュータプログラムはまた、実行されると本明細書に記載されている方法などの1つ以上の方法を実行する命令を含み得る。コンピュータプログラムは、コンピュータまたは機械読取可能媒体などの情報担体、たとえば、メモリ620、プロセッサ650上のストレージデバイスまたはメモリにおいて有形に具体化されてもよい。機械読取可能媒体は、機械命令またはデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラム製品、装置、またはデバイスである。
【0066】
コンピュータデバイス600は、オペレーティングシステム628をさらに含む。フェイルオーバークラスタをサポートする任意のオペレーティングシステム628、たとえばサーバOSを利用することができ、たとえば、Linux(登録商標)、Windows Server(登録商標)、Mac OS等を利用することができる。
【0067】
説明はその特定の実装例に関して記載されてきたが、これらの特定の実装例は例示的なものに過ぎず、限定的なものではない。たとえば、本明細書に記載されている機能を実現する回路またはシステムは、本明細書に例示されている具体的な実施形態とは大きく異なる場合がある。
【0068】
C、C++、Java(登録商標)、アセンブリ言語等を含む任意の適切なプログラミング言語を用いて、特定の実装例のルーチンを実装することができる。手続き型またはオブジェクト指向型などの異なるプログラミング技術を利用することができる。ルーチンは、単一の処理装置上でまたは複数のプロセッサ上で実行可能である。ステップ、動作、または計算は特定の順序で提示されているが、この順序は、異なる特定の実装例では変更されてもよい。いくつかの特定の実装例において、本明細書において逐次的であると示されている複数のステップは同時に実行することができる。
【0069】
特定の実施形態は、命令実行システム、装置、システム、またはデバイスによってまたはそれに関連して使用されるコンピュータ読取可能記憶媒体において実装されてもよい。特定の実施形態は、ソフトウェアまたはハードウェアまたはその両方の組み合わせにおける制御ロジックの形態で実装されてもよい。制御ロジックは、1つ以上のプロセッサによって実行されると、特定の実施形態に記載されているものを実行するように動作可能であってもよい。
【0070】
特定の実施形態は、プログラムされた汎用デジタルコンピュータを用いることによって、特定用途向け集積回路、プログラマブルロジックデバイス、フィールドプログラマブルゲートアレイ、光学的、化学的、生物学的、量子的、またはナノ工学的システム、コンポーネントおよびメカニズムを用いることによって、実装されてもよい。一般に、特定の実施形態の機能は、当技術分野で知られている任意の手段によって達成することができる。分散された、ネットワーク化されたシステム、コンポーネントおよび/または回路を使用することができる。データの通信または転送は、有線、無線、または任意の他の手段によるものであってもよい。
【0071】
また、図面に示されている要素の1つ以上は、より分離したもしくは統合した態様で実装することができ、さらには、特定の用途に従って便利であるように、場合によっては除去することができ、または動作不能にすることができることが理解されるであろう。コンピュータが上記の方法のいずれかを実行できるように、機械読取可能媒体に格納され得るプログラムまたはコードを実装することも、本発明の精神および範囲に含まれる。
【0072】
本明細書中で、かつ添付の請求項全体にわたって使用する「a」、「an」および「the」は、文脈に別段明確な指示がない限り、複数の指示対象を含む。また、本明細書中で、かつ添付の請求項全体にわたって使用する「において(in)」の意味は、文脈に別段明確な指示がない限り、「において(in)」および「の上に(on)」を含む。
【0073】
このように、特定の実施形態を本明細書中に記載してきたが、上記開示において修正、さまざまな変更および置換の許容範囲が意図されており、場合によっては、特定の実施形態のいくつかの特徴は、上述の範囲および精神から逸脱することなく、他の特徴を対応させて使用することなく利用され得ることが理解されるであろう。したがって、特定の状況または材料を本質的な範囲および精神に適合させるために多くの変更がなされてもよい。