(57)【要約】      （修正有）【課題】メモリ障害許容率を増加する方法を提供する。【解決手段】サーバシステム中になんらかのメモリエラーが発生するかをテストし、サーバシステムの１つ以上のメモリデバイス上で、検出されたメモリエラーに対応する物理メモリーアドレスを決定する工程２１０と、検出されたメモリエラーに対応する物理メモリーアドレスが、オペレーティングシステム、アプリケーションプログラム及び／又はサーバシステムの別のコンポーネンツによりアクセスされるのを防止する工程２４０と、を有する。【選択図】図２
2016095836.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサと、命令を含むメモリとを有するサーバシステムであって、
前記命令が、前記少なくとも１つのプロセッサにより実行されるとき、
前記サーバシステムの少なくとも１つのメモリデバイス中の少なくとも１つのメモリエラーを検出する工程と、
前記少なくとも１つのメモリエラーを検出するとき、前記サーバシステムの現在のメモリトポロジーを決定する工程と、
前記現在のメモリトポロジーが、以前のメモリトポロジーと比べて変化していないとき、前記少なくとも１つのメモリエラーに関連する情報を、メモリマスクリストにロードし、前記情報が、前記少なくとも１つのメモリエラーに関連する前記少なくとも１つのメモリデバイス中の物理アドレスを含む工程と、
前記少なくとも１つのメモリデバイス中の前記物理アドレスが、前記サーバシステムのソフトウェア、および、その他のハードウェアコンポーネンツによりアクセスされるのを防止する工程と、を前記サーバシステムにさせることを特徴とするサーバシステム。
【請求項２】
前記サーバシステムは１つ以上のノードを有し、各ノードは、ベースボード管理コントローラー（ＢＭＣ）、基本入出力システム（ＢＩＯＳ）、および、サーバを含み、
前記サーバは、少なくとも１つのプロセッサを有し、
前記ＢＭＣは、対応ノードのサーバシステムソフトウェアとハードウェアコンポーネンツ間のインターフェースを管理し、
前記命令が実行されるとき、さらに、前記システムに、前記サーバシステムのノードの前記ソフトウェアとハードウェアコンポーネンツの少なくとも１つのパラメータが、前記ノードの潜在的な欠陥に関連するプリセット極限を超えるとき、前記ＢＭＣにより、ネットワークを通じて、前記サーバシステム、または、システム管理者のマイクロコントローラーに警告を送信させることを特徴とする請求項１に記載のサーバシステム。
【請求項３】
前記サーバシステムはメモリテストコンポーネント、および／または１つ以上のノードを含み、
前記メモリテストコンポーネントは、前記少なくとも１つのメモリデバイスからのデータと参照データを比較し、少なくとも比較結果に基づいて、前記メモリエラーが、前記少なくとも１つのメモリデバイスで発生するか決定し、
前記１つ以上のノードのそれぞれは、前記少なくとも１つのメモリデバイスを初期化するか、または、少なくとも部分的にテストする基本入出力システム（ＢＩＯＳ）を含むことを特徴とする請求項１または２に記載のシステム。
【請求項４】
前記命令が実行されるとき、さらに、前記システムに、
データを、前記少なくとも１つのメモリデバイスに書き込む工程と、
前記データを、前記少なくとも１つのメモリデバイスから読み取る工程と、
前記書き込んだデータと前記少なくとも１つのメモリデバイスからの前記読み取りデータを比較する工程と、
少なくとも１つの前記読み取りデータが、前記書き込んだデータと異なるとき、前記メモリエラーが発生したことを示す工程と、を実行させること、および／または、
データを、前記少なくとも１つのメモリデバイスに書き込む工程と、
前記少なくとも１つのメモリデバイスから、前記データを読み出す工程と、
前記少なくとも１つのメモリデバイスからの前記読み取りデータを比較する工程と、
前記少なくとも１つのメモリデバイスの１つからの少なくとも１つの前記読み取りデータが、前記少なくとも１つのメモリデバイスの別の１つと異なるとき、前記メモリエラーが発生したことを示す工程と、を実行させることを特徴とする請求項３に記載のシステム。
【請求項５】
前記現在のメモリトポロジーは、前記サーバの前記少なくとも１つのメモリデバイスと少なくとも１つのメモリコントローラー間の接続情報を含むことを特徴とする請求項１〜４のいずれか１項に記載のシステム。
【請求項６】
前記命令が実行されるとき、さらに、前記システムに、
前記メモリエラーに対応する前記物理アドレスに隣接する所定範囲の物理アドレスを、前記メモリマスクリストに加える工程と、
前記少なくとも１つのメモリデバイス中の前記所定範囲の物理アドレスが、前記サーバシステムの前記ソフトウェア、および、前記ハードウェアコンポーネンツによりアクセスされるのを防止する工程と、を実行させることを特徴とする請求項１〜５のいずれか１項に記載のシステム。
【請求項７】
前記命令が実行されるとき、さらに、前記システムに、
前記メモリエラーに対応する１つ以上のダイの物理アドレス、および、前記１つ以上のダイの少なくとも１つの隣接ダイの物理アドレスを、前記メモリマスクリストに加える工程と、
前記メモリエラーに対応する前記１つ以上のダイの前記物理アドレス、および、前記少なくとも１つの隣接ダイの前記物理アドレスが、前記サーバシステムの前記ソフトウェア、および、前記ハードウェアコンポーネンツによりアクセスされるのを防止する工程と、を実行させることを特徴とする請求項１〜６のいずれか１項に記載のシステム。
【請求項８】
前記命令が実行されるとき、さらに、前記システムに、
前記少なくとも１つのメモリデバイスの少なくとも１つの部分を、予約メモリとして動的に保留し、前記少なくとも１つのメモリデバイス中に保存されるデータを複製する工程と、
前記メモリエラーに対応する前記物理アドレスが、アクセスを禁止されるとき、前記予約メモリから、前記物理アドレスに対応するデータを回収する工程と、を実行させることを特徴とする請求項１〜７のいずれか１項に記載のシステム。
【請求項９】
前記命令が実行されるとき、さらに、前記システムに、
前記メモリエラーに対応する前記物理アドレスが、アクセスを禁じられるとき、１つ以上のエラー訂正スキームを用いて、前記物理アドレスに保存されるデータをリカバーすることを実行させることを特徴とする請求項１〜８のいずれか１項に記載のシステム。
【請求項１０】
前記命令が実行されるとき、さらに、前記システムに、
前記現在のメモリトポロジーが、前記以前のメモリトポロジーと比較して変化している、または、ユーザー指令を受信して、前記メモリマスクリストをクリアにするとき、前記メモリマスクリストをクリアにして、新しいプロセスを起動し、新しいメモリエラーを検出することを実行させることを特徴とする請求項１〜９のいずれか１項に記載のシステム。
【請求項１１】
コンピュータによって実行される、サーバシステム中のメモリ障害許容率を増加する方法であって、
前記サーバシステムの少なくとも１つのメモリデバイス中で、少なくとも１つのメモリエラーを検出する工程と、
前記少なくとも１つのメモリエラーを検出するとき、前記サーバシステムの現在のメモリトポロジーを決定する工程と、
前記現在のメモリトポロジーが、以前のメモリトポロジーと比較して変化していないとき、前記少なくとも１つのメモリエラーに関連する情報を、メモリマスクリストにロードし、前記情報が、前記少なくとも１つのメモリエラーに関連する前記少なくとも１つのメモリデバイス中の物理アドレスを含む工程と、
前記少なくとも１つのメモリデバイス中の前記物理アドレスが、前記サーバシステムのソフトウェア、および、その他のハードウェアコンポーネンツによりアクセスされるのを禁止する工程と、を有することを特徴とする方法。
【請求項１２】
さらに、
前記メモリエラーに対応する前記物理アドレスに隣接する所定範囲の物理アドレスを、前記メモリマスクリストに加える工程と、
前記少なくとも１つのメモリデバイス中の前記所定範囲の物理アドレスが、前記サーバシステムの前記ソフトウェア、および、前記ハードウェアコンポーネンツによりアクセスされるのを禁止される工程、および／または、
前記少なくとも１つのメモリデバイスの少なくとも１つの一部を、予約メモリとして動的に保留して、前記少なくとも１つのメモリデバイス中に保存されるデータを複製する工程と、
前記メモリエラーに対応する前記物理アドレスが、アクセスを禁じられるとき、前記予約メモリから、前記物理アドレスに対応するデータを回収する工程と、を有することを特徴とする請求項１１に記載の方法。
【請求項１３】
さらに、
前記メモリエラーに対応する１つ以上のダイの物理アドレス、および、前記１つ以上のダイの少なくとも１つの隣接ダイの物理アドレスを、前記メモリマスクリストに追加する工程と、
前記メモリエラーに対応する前記１つ以上のダイ、および、前記少なくとも１つの隣接ダイの前記物理アドレスが、前記サーバシステムの前記ソフトウェア、および、前記ハードウェアコンポーネンツによりアクセスされるのを禁止する工程と、を有することを特徴とする請求項１１または１２に記載の方法。
【請求項１４】
さらに、
前記メモリエラーに対応する前記物理アドレスが、アクセスを禁止されるとき、１つ以上のエラー訂正スキームを用いて、前記物理アドレス中に保存されるデータをリカバーする工程を含むことを特徴とする請求項１１〜１３のいずれか１項に記載の方法。
【請求項１５】
命令を含む持続性コンピュータ可読ストレージ媒体であって、前記命令がサーバシステムの少なくとも１つのプロセッサにより実行されるとき、前記サーバシステムに、前記の請求項１１〜１４のいずれか１項に記載の方法を実行させることを特徴とする持続性コンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバシステムに関するものである。
【背景技術】
【０００２】
現在のサーバの演算速度は、以前より速くなっている。サーバシステムは、一般に、ハードウェアとソフトウェアコンポーネンツ、アプリケーションプログラム、オペレーティングシステム、プロセッサ、バス、および、メモリの組み合わせを含む。各サーバは、物理メモリ（たとえば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ））に頼って処理している。プロセッサ以外、メモリは、サーバにとって最も性能に影響する（ｐｅｒｆｏｒｍａｎｃｅ−ｃｒｉｔｉｃａｌ）リソースであり、且つ、サーバハードウェアコスト全体の重要な一部分である。
【０００３】
メモリモジュールは、通常、サーバのシステムボード上のプロセッサと組み合わされる。システムボード上のプロセッサが多くなるとき、さらに多くのメモリモジュールが必要とされて、数量が増えたプロセッサの処理要求に応える。しかし、メモリモジュールの数量の増加も、サーバ上のメモリ失敗率を増加させる。これは、明らかなコストの増加を示す。よって、サーバシステム中のメモリ障害許容率を増加させる必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、メモリ障害許容率を増加する方法を提供する。
【課題を解決するための手段】
【０００５】
本発明の各種具体例によるシステムと方法は、上述の問題の解決方案を提供する。解決方案は、メモリデバイスで検出された不良ダイに対応する物理メモリーアドレスをマスク（ｍａｓｋｉｎｇ）することにより、サーバシステム中のメモリ障害許容率を増加するものである。さらに、本発明の各種具体例による方法は、サーバシステムの１つ以上のメモリデバイス上で、なんらかのメモリエラーが発生するかテストすると共に、１つ以上のメモリデバイスで検出されたメモリエラーに対応する物理メモリーアドレスを決定し、および、検出されたメモリエラーに対応する物理メモリーアドレスが、オペレーティングシステム、アプリケーションプログラム、および／または、サーバシステムの別のコンポーネンツによりアクセスされるのを防止する。従来のサーバシステムにおいて、メモリエラー、または、不良ダイが、メモリデバイスで検出されるとき、メモリデバイス全体は物理的に代替されなければならなかったが、対照的に、本発明の各種具体例では、より早くよりコスト効率が高い方法を提供して、サーバシステム中のメモリデバイスを物理的に代替することなく、メモリ障害許容率を増加させる。
【０００６】
いくつかの実施態様において、サーバシステムは複数のノードを含み、各ノードは、サーバ、基本入出力システム（ＢＩＯＳ）、および、ベースボード管理コントローラー（ＢＭＣ）を有する。各サーバは、少なくとも１つのプロセッサを有する。ＢＭＣが設置されて、対応ノード中のシステムソフトウェアとハードウェアコンポーネンツ間のインターフェースを管理する。いくつかの実行において、対応ノード中のシステムソフトウェアとハードウェアコンポーネンツのパラメータが、ノードの潜在的な欠陥を示すプリセット極限を超えるとき、ＢＭＣは、警告を送信する。
【０００７】
いくつかの実施態様において、メモリテストコンポーネントがサーバシステム中に提供されて、メモリエラーが発生するかテストする。メモリテストコンポーネントは、ハードウェア、ソフトウェア、または、両方で、且つ、サーバシステム中のメモリデバイスからのデータと参照データを比較して、メモリエラーが発生するか決定する。いくつかの実施例は、データを、サーバシステム中の１つ以上のメモリデバイスに書き込むことにより、メモリエラーを検出し、メモリデバイスからデータを読み取り、書き込みデータと読み取りデータを比較して、メモリエラーが発生するか決定する。いくつかの実施態様において、１つ以上のメモリデバイスからの読み取りデータが互いに比較されて、メモリデバイス中にメモリエラーが発生するか決定する。
【０００８】
いくつかの実施態様において、サーバシステム中の１つ以上のメモリデバイスで、１つ以上の不良ダイが検出されるとき、メモリデバイスのメモリトポロジーが決定される。以前のトポロジー決定後、メモリトポロジーが変化していない場合、１つ以上の不良ダイに対応する物理メモリーアドレスがアクセスを禁止される。いくつかの実施態様において、メモリトポロジーは、１つ以上のメモリデバイスと少なくとも１つのメモリコントローラー間の接続情報を含む。
【０００９】
いくつかの実施態様において、メモリエラーに対応する物理アドレスに隣接する所定範囲の物理アドレスも、サーバシステムのメモリマスクリストに加えられて、オペレーティングシステム、アプリケーションプログラム、および／または、サーバシステム中のその他のコンポーネンツによるアクセスを禁止する。いくつかの実施例は、検出された不良ダイの隣接するダイの物理アドレスをメモリマスクリストに記録すると共に、物理アドレスを“使用不能”としてマークする。
【００１０】
いくつかの実施態様において、メモリマスクリスト中の物理アドレスがアクセスを禁じられるとき、物理アドレスに対応するページは、エラー訂正スキームを用いてリカバーされる。いくつかの実施態様において、１つ以上のメモリデバイスのいくつかの部分が、予約メモリとして動的に保留され、１つ以上のメモリデバイス中に保存されるデータをミラー（ｍｉｒｒｏｒ）する。メモリマスクリスト中の物理アドレスがアクセスを禁じられるとき、物理アドレスに対応するページが、１つ以上のメモリデバイスの保留部分から複製される。
【００１１】
いくつかの実施態様において、ＢＩＯＳ、パワーオンセルフテスト（ＰＯＳＴ）、オペレーティングシステム（ＯＳ）、または、メモリセルフテストが実行されるとき、サーバシステム中にメモリエラーがあるかどうかを検出するプロセスが起動される。
【発明の効果】
【００１２】
サーバシステム中のメモリ障害許容率を増加させることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施態様によるサーバラックのブロック図である。
【図２】本発明の一実施態様によるコンピュータシステムのメモリ障害許容率を増加させる実施例の方法を示す図である。
【図３】本発明の一実施態様によるセルフテストを実行して、サーバシステム中、メモリ障害許容率を増加する実施例の方法を示す図である。
【図４】本技術の各種実行に基づいたコンピュータデバイスを示す図である。
【図５Ａ】本発明の各種実施例によるシステムを示す図（その１）である。
【図５Ｂ】本発明の各種実施例によるシステムを示す図（その２）である。
【発明を実施するための形態】
【００１４】
本発明の更なる特徴及び利点は、以下の本発明の好ましい実施形態についての説明、添付図面及び特許請求の範囲から明らかになるであろう。
【００１５】
図１は、本発明の一実施態様による通信ネットワークにおけるサーバラック１００のブロック図である。この例において、サーバラック１００は、複数のノード（たとえば、１０１と１０２）、および、マイクロコントローラー１０５を有する。複数のノードは、互いに独立して操作できる。いくつかの実行において、複数のノードは、類似のコンピュータ能力、および、類似のメモリ容量を有する。別の実行において、複数のノードは、各種異なるサイズ、計算能力、および、メモリ容量を有する。
【００１６】
各ノードは、サーバ（たとえば、１０１１と１０２１）、基本入出力システム（ＢＩＯＳ）（たとえば、１０１５と１０２５）、および、ベースボード管理コントローラー（ＢＭＣ）（たとえば、１１１２と１１２２）を含む。各サーバは、少なくとも１つのプロセッサ、および、メモリデバイスを含む。この例において、サーバ１０１１は、プロセッサ１０１３、および、メモリデバイス１０１４を含み、サーバ１０２１は、プロセッサ１０２３、および、メモリデバイス１０２４を含む。
【００１７】
本発明の各種具体例において、ＢＭＣは、各複数のノードに組み込まれる特殊化したマイクロコントローラー、たとえば、それぞれ、ノード１０１と１０２に組み込まれるＢＭＣ１１１２と１１２２である。ＢＭＣは、複数のノードのそれぞれのシステム管理ソフトウェアとハードウェアコンポーネンツ間のインターフェースを管理する。いくつかの実行において、複数のノードのそれぞれに組み込まれる異なる種類のセンサーは、ＢＭＣに対応するパラメータ（たとえば、温度、冷却ファン速度、電力状態、および／または、オペレーティングシステム（ＯＳ）状態）を報告する。ＢＭＣは、対応ノード上で、センサーを監視することもできる。センサー上の任意のパラメータが、ノードの潜在的な欠陥を示すプリセット極限を超えるとき、ＢＭＣは、ネットワークにより、マイクロコントローラー１０５、または、システム管理者に警告を送信する。マイクロコントローラー１０５、または、管理者は、さらに、ＢＭＣと通信して、対応ノード上のハードウェアコンポーネンツを制御するか、または、ある修正動作、たとえば、ノードのリセットや電源循環を実行して、ハングアップしたＯＳを再起動させる。いくつかの実施態様において、ＢＭＣとマイクロコントローラー１０５間の物理インターフェースは、たとえば、ＳＢＭｂｕｓバス、ＲＳ-２３２シリアルコンソール、または、インテリジェントプラットフォーム管理バス（ＩＰＭＢ）を含み、ＢＭＣが、マイクロコントローラー１０５、または、サーバラック１００、または、通信ネットワーク中の別の管理コントローラーからの要求メッセージを受け入れられるようにする。
【００１８】
この例において、ＢＩＯＳ１０１５と１０２５は、直接、それらの対応サーバに接続されて、初期化、および／または、テストする。ＢＩＯＳ１０４は、リードオンリーメモリ（ＲＯＭ）、または、その他のストレージデバイス中に保存されるソフトウェアである。ＢＩＯＳ１０４は、複数のノードのそれぞれにロードされると共に、対応ノードのコンポーネントを初期化、または、テストするように作動し、その後、オペレーティングシステムを呼び出す。ＢＩＯＳ１０４は、さらに、ハードウェアコンポーネンツ、アプリケーションプログラム、および、オペレーティングシステムを、入力／出力装置（たとえば、キーボード、ディスプレイ）と作用させるための抽象化層を提供する。いくつかの実施態様において、オペレーティングシステムは、ＢＩＯＳ１０４により提供される抽象化層を無視して、ロード後、直接、対応ノード、または、複数のノードのハードウェアコンポーネンツにアクセスする。マイクロコントローラー１０５は、スイッチ１０３と複数のＢＭＣ（たとえば、１１１２と１１２２）のそれぞれ間で相互接続すると共に、スイッチ１０３を制御するように作動して、選択的に、複数のサーバの１つに切り換える。
【００１９】
図１中のサーバラック１００中には、サーバ１０１１と１０２１しか示されていないが、データを処理することができる各種電子、または、コンピュータデバイスは、サーバラック１００中に含まれる。さらに、サーバラック中の電子、または、コンピュータデバイスは、各種アプリケーションを実行、および／または、各種オペレーティングシステムを用いることができるように設定される。これらのオペレーティングシステムは、これらに限定されないが、アンドロイド、バークレイソフトウェアディストリビューション（ＢＳＤ）、ｉＰｈｏｎｅ  ＯＳ  （ｉＯＳ）、Ｌｉｎｕｘ（登録商標）、ＯＳ  Ｘ、Ｕｎｉｘ（登録商標）−ｌｉｋｅ  Ｒｅａｌ−ｔｉｍｅオペレーティングシステム（たとえば、ＱＮＸ）、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）  Ｐｈｏｎｅ、および、ＩＢＭ  ｚ／ＯＳを含む。
【００２０】
サーバラック１００の所望の実行方式に基づいて、多種のネットワークとメッセージングプロトコルが用いられ、これらに限定されないが、例えばＴＣＰ／ＩＰ、オープンシステムインターコネクション（ＯＳＩ）、ファイル転送プロトコル（ＦＴＰ）、ユニバーサルプラグアンドプレイ（ＵｐｎＰ）、ネットワークファイルシステム（ＮＦＳ）、コモンインターネットファイルシステム（ＣＩＦＳ）、ＡｐｐｌｅＴａｌｋ等を含む。当業者なら理解できるように、図１に示されるサーバラック１００は説明目的で用いられる。よって、本発明の各種具体例において、ネットワークシステムは、多種の適当な方式で、本案中のネットワークプラットフォームの配置を提供することができる。
【００２１】
図１の実施例中、複数のノード（たとえば、１０１と１０２）も、特定の無線チャネルの演算範囲内で、１つ以上の電子装置と通信する１つ以上のワイヤレスコンポーネンツを含むことができる。無線チャネルは、無線方式で装置を通信させることができる任意の適当なチャネル、たとえば、ブルートゥース、セルラー、ＮＦＣ、または、Ｗｉ−Ｆｉチャネルである。従来簿技術からわかるように、この装置は、１つ以上の従来の有線通信接続を含むことができる。
【００２２】
複数のノード（たとえば、１０１と１０２）は、さらに、各種アプローチを用いて電力を供給する（たとえば、従来のプラグインアプローチ、従来のプラグインアプローチにより再充電を行うバッテリー、または、その他のアプローチ、たとえば、パワーマットやその他の装置により無線（たとえば、容量性、または、誘導性）充電を行う）電力コンポーネンツを有する。各種その他の素子、および／または、組み合わせも各種具体例の範囲内である。
【００２３】
図２は、本発明の一実施態様によるコンピュータシステムのメモリ障害許容率を増加する実施例の方法２００を説明する。理解できることは、実施例の方法２００は説明用であり、本発明のその他の方法中、同じ、または、類似の順序下で、または、同時に、余分の、少ない、または、代替性のステップを含むことができることである。
【００２４】
実施例の方法２００は、ステップ２１０で、コンピュータシステムが、メモリエラーを有するかを検出することから開始される。いくつかの実施態様において、メモリエラーが、メモリテストコンポーネントにより検出される。メモリテストコンポーネントは、メモリデバイスからのデータと参照データを比較すると共に、少なくとも比較結果に基づいて、メモリ障害が発生したか決定する。いくつかの実施態様において、メモリエラーの検出プロセスは、データを複数のメモリデバイスに書き込む工程、複数のメモリデバイスからデータを読み取る工程、読み取りデータと書き込みデータを比較する工程、および、少なくとも１つの読み取りデータが書き込みデータと異なるとき、メモリエラー信号を出力する工程、を有する。いくつかの実行において、複数のメモリデバイスからの読み取りデータが互いに比較される。複数のメモリデバイスの１つからの少なくとも１つの読み取りデータが、別のメモリデバイスからのデータと異なるとき、メモリエラー信号が出力される。
【００２５】
ステップ２２０で、メモリエラーの検出時、メモリデバイスのメモリトポロジーが決定される。いくつかの実行において、コンピュータシステム中の１つ以上のメモリコントローラーは、メモリデバイスの状態、および／または、その他の情報をチェックする。
【００２６】
いくつかの実施態様において、メモリトポロジーは、メモリデバイスと１つ以上のメモリコントローラー（図示しない）間の接続情報を含む。たとえば、メモリコントローラーは複数のメモリデバイスに接続される。いくつかの実施例は、メモリデバイスをグループ化して、メモリコントローラーのバンド幅に対応する単一指令に応答する。いくつかの実施態様において、メモリトポロジーは、さらに、複製装置を有し、メモリコントローラーからのアドレスと制御情報を受信する。複製装置は、二つ以上の実質複製アドレスと制御情報のコピーを、複数のメモリデバイスに送信する。
【００２７】
いくつかの実施態様において、メモリトポロジーは、サーバラックのサーバ上の１つ以上のローカルメモリデバイス、および／または、１つ以上のリモートメモリデバイスを有する。１つ以上のリモートメモリデバイスは、サーバラック上の複数のサーバによりシェアされる。１つ以上のローカルメモリデバイスは、対応サーバのメインメモリになる。１つ以上のリモートメモリデバイスは、１つ以上のローカルメモリデバイスから強制退去されるページを保存する。一旦、１つ以上のローカルメモリデバイス中でミスが発生すると、１つ以上のリモートメモリデバイスで保存されるリモートページは、ローカルメモリデバイスに移動する。
【００２８】
いくつかの実施態様において、サーバ上の１つ以上のローカルメモリデバイスは、二つ以上のタイプ（たとえば、高パフォーマンス高コスト、および、低パフォーマンス低コスト）を有する。高パフォーマンスのメモリデバイス（たとえば、ＤＲＡＭ）が用いられて、サーバ上のプロセッサにより用いられるアクティブページ／データを保存し、低パフォーマンスのメモリデバイス（たとえば、非揮発性ランダムアクセスメモリ（ＮＶＲＡＭ））は、アイドル状態、または、アクセス頻度の低いページ／データを保存する。
【００２９】
ステップ２２０で、メモリトポロジー決定後、ステップ２２１で、メモリトポロジーが、以前のメモリトポロジーと比べて変化しているか決定する。いくつかの実施態様において、従来のメモリ診断技術は、システム起動中、新しいメモリトポロジーと、以前に決定されたメモリトポロジーを比較するのに用いられる。
【００３０】
メモリトポロジーが変化していない場合、ステップ２３０において、メモリエラー詳細がメモリマスクリストにロードされる。メモリマスクリストは、ＢＩＯＳ−可読装置（たとえば、ＮＶＲＡＭやＥＥＰＲＯＭ）に保存される。
【００３１】
メモリエラー詳細は、メモリエラーに関連する物理アドレスを含む。サーバ上のプロセッサの物理アクセス空間は、プロセッサのＯＳにより用いられるページテーブルによりアドレスされる仮想空間からマップされる物理アクセス空間になる。いくつかの実施態様において、サーバ上のプロセッサの物理アクセス空間は、サーバ上の１つ以上のローカルメモリデバイス、および／または、１つ以上のリモートメモリデバイスの一部分の集合である。
【００３２】
ステップ２４０において、メモリエラーに対応する物理アドレスが、サーバのプログラムとハードウェアコンポーネンツによりアクセスされるのを防止する。いくつかの実施態様において、メモリマスクリストに基づいて、システムＢＩＯＳは、メモリマスクリスト中で識別されたアドレスを“使用不能”として設定すると共に、ＯＳ、アプリケーションソフトウェア、および、別のハードウェアコンポーネンツが、物理アドレスにアクセスするのを防止する。いくつかの実施態様において、メモリエラーに対応する物理アドレスに隣接する所定範囲の物理アドレスもメモリマスクリストに加えられて、アクセスを禁止して、サーバのメモリ障害許容率を増加する。いくつかの実施態様において、メモリエラーに対応するダイ、および／または、隣接するダイの物理アドレスが、すべて、メモリマスクリスト中に含まれて、アクセスを禁止する。
【００３３】
いくつかの実施態様において、メモリエラーに対応する物理アドレスがアクセスを禁じられるとき、物理アドレスに対応するページは、エラー訂正スキーム（たとえば、リードソロモンエラー訂正スキーム）を用いてリカバーされる。いくつかの実施態様において、１つ以上のローカルメモリデバイスの一部が、予約メモリとして動的に保留されて、１つ以上のローカルメモリデバイス中に保存されるデータをミラー、または、複製する。メモリエラーに対応する物理アドレスがアクセスを禁止されるとき、物理アドレスに対応するページは、１つ以上のローカルメモリデバイスの保留部分から回収、または、複製される。
【００３４】
メモリトポロジーが変化している場合、ステップ２６０で、メモリマスクリストはクリアになり、次のステップで、サーバ上で、メモリエラーが発生するかを検出するプロセスが起動される。いくつかの実施態様において、ユーザーは、指令を送信して、メモリマスクリストをクリアにする。よって、ステップ２５０で、ユーザーの指令を受信して、メモリマスクリストをクリアにするとき、方法２００は、ステップ２６０中で、メモリマスクリストをクリアにすると共に、方法２００をもう一度開始して、サーバ上にメモリエラーがあるか検出する。
【００３５】
図３は、本発明の各種具体例によるセルフテストを実行して、サーバシステム中、メモリ障害許容率を増加する実施例の方法３００を説明する。実施例の方法３００は、ステップ３１０で、セルフテストを実行することで開始される。セルフテストは、システムブーティングの一部分、プログラム実行の一部分、または、ユーザー初期化セルフテストプロセスである。セルフテストがシステムブーティングである場合、ＢＩＯＳが実行される。“ハード”システムブーティングのとき、パワーオンセルフテスト（ＰＯＳＴ）が、まず、実行されて、サーバのハードウェアコンポーネンツが正常に実行されるか確認する。“ソフト”システムブーティングにおいて、ＰＯＳＴが省略できる。
【００３６】
いくつかの実施態様において、メモリエラーを検出するプロセスは、ＢＩＯＳ、または、ＰＯＳＴが実行されるとき、または、セルフテストがアプリケーションプログラムにより実行されるときに実行される。ステップ３２０において、サーバシステム中で、メモリエラーがあるかを決定する。メモリエラーが検出されるとき、メモリエラー詳細がＢＩＯＳ−可読装置（たとえば、ＮＶＲＡＭやＥＥＰＲＯＭ）にロードされる。メモリエラー詳細はメモリエラーに関連する物理アドレスを含む。メモリマスクリストによると、メモリマスクリスト中で識別された物理アドレスが“使用不能”として設定されると共に、ＯＳ、アプリケーションソフトウェア、および、サーバ中のその他のハードウェアコンポーネンツによりアクセスされるのを禁止する。
【００３７】
メモリマスクリスト中で識別された物理アドレスがアクセスを禁止される、または、メモリエラーが検出されないとき、ステップ３５０で、セルフテストが完了する。いくつかの実施態様において、セルフテストがシステムブーティングの一部分である場合、ブートローダー（ｂｏｏｔ  ｌｏａｄｅｒ）は、メモリデバイスにロードされて（たとえば、メモリ位置００００：７Ｃ００にロードされる）、実行される。ブートローダーは、サーバに、オペレーティングシステム、または、その他のソフトウェアをロードするように操作可能である。いくつかの実施態様において、サーバのいくつかのサブシステムは、システムブーティング期間中、ＲＯＭに保存される操作可能なプログラムを簡単に実行することにより機能を開始する。
【００３８】
いくつかの実施態様において、ステップ３１０で、システムブーティング中に、ＢＩＯＳがダメージを受ける場合、１つ以上のローカルメモリデバイス、または、その他のストレージデバイスがチェックされて、ＢＩＯＳのバックアップがあるかどうか探す。ＢＩＯＳのバックアップファイルが見つかる場合、バックアップファイルがＢＩＯＳのメモリに書き込まれる。その後、リブートプロセスが実行される。いくつかの実施態様において、ＢＩＯＳのダメージ部分が選択的に代替される。ＢＩＯＳのバックアップファイルが、サーバで見つからない場合、サーバは、リモートメモリデバイスから、バックアップファイルを回収するか、または、インターネットから、サーバに対応するＢＩＯＳのバックアップファイルをダウンロードする。サーバのプロセッサは、バックアップＢＩＯＳファイルを読み取り、バックアップファイルをＢＩＯＳメモリに書き込むことができる。
【００３９】
コンピュータネットワークは、地理的に分散したノードの集合で、これらのノードは、通信リンクとセグメントにより相互接続して、エンドポイント、たとえば、パソコン、および、ワークステーション間のデータを運ぶ。多くのタイプのネットワークは可用で、範囲は、ローカルエリアネットワーク（ＬＡＮ）と広域ネットワーク（ＷＡＮ）から、オーバーレイ、および、ソフトウェア定義ネットワーク、たとえば、仮想拡張ローカルエリアネットワーク（ＶＸＬＡＮ）までである。
【００４０】
ＬＡＮは、通常、同じ一般の物理的な位置、たとえば、ビルやキャンパスに位置する専用のプライベート通信リンク上のノードと接続する。一方、ＷＡＮは、通常、長距離通信リンク、たとえば、コモンキャリアテレフォンライン、光パス、同期光学ネットワーク（ＳＯＮＥＴ）、または、同期デジタル階層（ＳＤＨ）リンク上で、地理的に分散したノードと接続する。ＬＡＮとＷＡＮは、層２（Ｌ２）、および／または、層３（Ｌ３）ネットワーク、および、装置を含む。
【００４１】
インターネットはＷＡＮの例で、世界をまたぐ異種のネットワークを接続し、各種ネットワーク上のノード間のグローバル通信を提供する。ノードは、通常、所定プロトコル、たとえば、通信制御プロトコル／インターネットプロトコル （ＴＣＰ／ＩＰ）にしたがって、データの離散フレーム、または、パケットを交換することにより、ネットワークで通信する。本説明において、プロトコルは、どのようにノードと互いに作用するかを定義する一組のルールを参照する。コンピュータネットワークは、さらに、中間ネットワークノード、たとえば、ルーターにより相互接続されて、各ネットワークの効果的な“サイズ”を拡張する。
【００４２】
オーバーレイネットワークは、一般に、物理ネットワークインフラで、仮想ネットワークが生成、または、層状になる。ジェネリックルーティングカプセル化（ＮＶＧＲＥ）、ネットワーク仮想化オーバーレイ（ＮＶＯ３）、および、ステートレストランスポートトンネリング（ＳＴＴ）を用いるオーバーレイネットワークプロトコル、たとえば、仮想拡張ＬＡＮ（ＶＸＬＡＮ）、ネットワーク仮想化は、トラフィックカプセル化スキームを提供し、論理トンネルで、ネットワークトラフィックを、Ｌ１とＬ３ネットワークに流す。このような論理トンネルは、仮想トンネルエンドポイント（ＶＴＥＰ）により生成、および、終了する。
【００４３】
さらに、オーバーレイネットワークは仮想セグメント、たとえば、ＶＸＬＡＮ オーバーレイネットワーク中のＶＸＬＡＮセグメントを含み、これらのセグメントは、ＶＭ通信による仮想Ｌ２、および／または、Ｌ３オーバーレイネットワークを含む。仮想セグメントは、仮想ネットワーク識別子（ＶＮＩ）、たとえば、特に、関連する仮想セグメント、または、ドメインを識別することができるＶＸＬＡＮネットワーク識別子により識別される。
【００４４】
ネットワーク仮想化は、ハードウェア、および、ソフトウェアリソースが、仮想ネットワーク中で結合できるようにする。たとえば、ネットワーク仮想化は、対応する仮想ＬＡＮ（ＶＬＡＮ）により、多くのＶＭが物理ネットワークに連接されるようにする。ＶＭは、それらの対応するＶＬＡＮにしたがってグループ化されると共に、その他のＶＭ、および、内部、または、外部ネットワーク上のその他の装置と通信することができる。
【００４５】
ネットワークセグメント、たとえば、物理、または、仮想セグメント、ネットワーク、装置、ポート、物理、論理リンク、および／または、トラフィックは、一般に、ブリッジ、または、フラッドドメインにグループ化される。ブリッジドメイン、または、フラッドドメインは、ブロードキャストドメイン、たとえば、Ｌ２ブロードキャストドメインを表す。ブリッジドメイン、または、フラッドドメインは、単一サブネットを含んでいるが、複数のサブネットを含んでもよい。さらに、ブリッジドメインは、ネットワークデバイス、たとえば、スイッチ上のブリッジドメインインターフェースと関連する。ブリッジドメインインターフェースは、Ｌ２ブリッジネットワークとＬ３ルートネットワーク間のトラフィックをサポートする論理的インターフェースである。その上、ブリッジドメインインターフェースは、インターネットプロトコル（ＩＰ）終端、ＶＰＮ終端、アドレス分解処理、ＭＡＣアドレッシングをサポートすることができる。ブリッジドメイン、および、ブリッジドメインインターフェースは、共に、同一インデックス、または、識別子により識別される。
【００４６】
さらに、エンドポイント群（ＥＰＧ）がネットワークに用いられて、アプリケーションをネットワークにマッピングする。特に、ＥＰＧは、ネットワーク中で、アプリケーションエンドポイントのグループ化を用いて、アプリケーションの群に対し、接続とポリシーを供給する。ＥＰＧは、コンテナとして作用し、アプリケーション、または、アプリケーションコンポーネンツを収集し、前述のポリシーロジックを実施する。ＥＰＧは、さらに、ネットワークポリシーの分離、セキュリティ、および、論理アプリケーション境界を用いて、前面のアドレスの代替を可能にすることができる。
【００４７】
クラウドコンピューティングも、１つ以上のネットワークに提供されて、共有リソースを用いて、コンピューティングサービスを提供する。クラウドコンピューティングは、一般に、インターネットベースの計算サービスを含み、これらのネットワークリソースは、ネットワーク（たとえば、“クラウド”）により収集された可用リソースの集合による動態規定であり、且つ、クライアント、または、ユーザーコンピュータ、または、その他の装置オンデマンドに分配される。クラウドコンピューティングリソースは、あらゆるタイプのリソース、たとえば、計算、保存、および、ネットワークデバイス、バーチャルマシン（ＶＭ）等を含む。たとえば、リソースは、サービス装置（ファームウォール、ディープパケットインスペクター、トラフィックモニター、ロードバランサー等）、計算／処理装置（サーバ、ＣＰＵのメモリ、強力処理能力（ｂｒｕｔｅ  ｆｏｒｃｅ  ｐｒｏｃｅｓｓｉｎｇ  ｃａｐａｂｉｌｉｔｙ））、ストレージデバイス（たとえば、ネットワーク接続ストレージ、ストレージエリアネットワークデバイス）等を含む。その上、このようなリソースが用いられて、仮想ネットワーク、バーチャルマシン（ＶＭ）、データベース、アプリケーション（ａｐｐｓ）等をサポートする。
【００４８】
クラウドコンピューティングリソースは、“プライベートクラウド”、“パブリッククラウド”、および／または、“ハイブリッドクラウド”を含む。“ハイブリッドクラウド”は、技術により内部操作、または、連合する二つ以上のクラウドからなるクラウドインフラである。本質的に、ハイブリッドクラウドは、プライベート、および、パブリッククラウド間の相互作用で、プライベートクラウドは、パブリッククラウドを加えると共に、安全、且つ、拡張可能な方式で、パブリッククラウドリソースを利用する。クラウドコンピューティングリソースは、オーバーレイネットワーク、たとえば、ＶＸＬＡＮで、仮想ネットワークにより規定される。
【００４９】
ネットワークスイッチシステムにおいて、ルックアップデータベースは、スイッチシステムに取り付けられる多数のエンドポイント間のルートの追跡が維持される。しかし、エンドポイントは各種設定を有し、且つ、多くのテナントと関連する。これらのエンドポイントは、各タイプの識別子、たとえば、ＩＰｖ４、ＩＰｖ６、または、Ｌａｙｅｒ−２を有する。ルックアップデータベースは、異なるモードで設定されて、異なるタイプのエンドポイント識別子を処理しなければならない。あるルックアップデータベースの容量が刻まれて（ｃａｒｖｅｄ  ｏｕｔ）、異なるアドレスタイプの進入パケットを処理する。さらに、ネットワークスイッチシステム上のルックアップデータベースは、通常、１Ｋ仮想ルーティングと転送（ＶＲＦｓ）により制限される。よって、改善された検索アルゴリズムで、各タイプのエンドポイント識別子を処理することが望まれる。本発明の技術は、技術的な必要性に取り組んで、通信ネットワーク中の検索に取り組む。本発明は、システム、方法、および、コンピュータ可読ストレージ媒体を提供し、エンドポイント識別子をマッピングすることにより、各タイプのエンドポイント識別子を一様空間に統一すると共に、異なる形式の検索が、均一に処理されるようにする。これらのシステムとネットワークの例は、図４と図５の例中で簡単に紹介されている。これらの変化の例は、各種実施例中で記述される。技術に関する部分は図４に戻る。
【００５０】
図４は、本発明を実行するのに適当なコンピュータデバイス４００を示す。コンピュータデバイス４００は、マスター中央処理ユニッ（ＣＰＵ）４６２、インターフェース４６８、および、バス４１５（たとえば、ＰＣＩバス）を含む。適切なソフトウェア、または、ファームウェアの制御下で作用するとき、ＣＰＵ４６２は、パケット管理、エラー検出、および／または、ルーティング機能、たとえば、ミスケーブリング検出機能の実行を担当している。ＣＰＵ４６２は、好ましくは、オペレーティングシステムを含むソフトウェア、および、適切なアプリケーションソフトウェアの制御下で、これらの機能すべてを完成させる。ＣＰＵ４６２は、１つ以上のプロセッサ４６３、たとえば、マイクロプロセッサのモトローラファミリー、または、マイクロプロセッサのＭＩＰＳファミリーからのプロセッサを含む。代替実施例において、プロセッサ４６３は、特別に設計されたハードウェアで、コンピュータデバイス４００の操作を制御する。特定の具体例において、メモリ４６１（たとえば、非揮発性ＲＡＭ、および／または、ＲＯＭ）も、ＣＰＵ４６２の一部を形成する。しかし、多くの異なる方法があり、メモリは、システムに結合される。
【００５１】
インターフェース４６８は、一般に、インターフェースカード（時に“ラインカード”と称される）として提供される。一般に、それらは、ネットワーク上で、データパケットの送受信を制御し、時に、コンピュータデバイス４００により使用されるその他の周辺設備をサポートする。これらのインターフェースは、イーサネット（登録商標）インターフェース、フレームリレーインターフェース、ケーブルインターフェース、ＤＳＬインターフェース、トークンリングインターフェース等である。このほか、各種超高速インターフェースは、たとえば、高速トークンリングインターフェース、ワイヤレスインターフェース、イーサネット（登録商標）インターフェース、ギガビットイーサネット（登録商標）インターフェース、ＡＴＭインターフェース、ＨＳＳＩインターフェース、ＰＯＳインターフェース、ＦＤＤＩインターフェース等である。一般に、これらのインターフェースは、適切な媒体との通信に適切なポートを含む。ある実施例において、それらは、独立プロセッサを含み、場合によっては、揮発性ＲＡＭを含む。独立プロセッサは、パケット交換、媒体制御と管理など、このような通信集中タスクを制御することができる。通信集中タスクのために、分離したプロセッサを提供することにより、これらのインターフェースは、マスターマイクロプロセッサ４６２が、ルーティング計算、ネットワーク診断、セキュリティ機能を効果的に実行することができるようにする。
【００５２】
図４に示されるシステムは、本発明の１つの特定ネットワークデバイスであるが、決して、ネットワークデバイス構造だけが、本発明を実行できるのではない。たとえば、ルーティング計算等と同様に、通信を処理する単一プロセッサを有する構造がしばしば用いられる。さらに、別のタイプのインターフェースと媒体も、ルーターと共に用いられる。
【００５３】
ネットワークデバイスがどのように配置されても、１つ以上のメモリ、または、メモリモジュール（メモリ４６１を含む）を用いて、ローミング、経路最適化、および、ルーティング機能の汎用ネットワーク操作とメカニズムのプログラム命令を保存する。プログラム命令は、たとえば、オペレーティングシステム、および／または、１つ以上のアプリケーションの操作を制御することができる。メモリも、複数の表、たとえば、モビリティバインディング（ｍｏｂｉｌｉｔｙ  ｂｉｎｄｉｎｇ）、登録、および、その他の関連表等を保存することができる。
【００５４】
図５Ａと図５Ｂは、本発明の各種態様による可能なシステムを示す図である。当業者なら理解できるように、本発明を実現するとき、さらに適切な実施例を有するかもしれない。当業者なら、その他のシステムも可能であることが理解できる。
【００５５】
図５Ａは、従来のシステムバスコンピュータシステム機構５００を示す図で、システムのコンポーネンツは、バス５０５を用いて互いに電気的に通信する。実施例のシステム５００は、処理ユニット（ＣＰＵ、または、プロセッサ）５１０とシステムバス５０５を含み、システムバス５０５は、システムメモリ５１５、たとえば、リードオンリーメモリ（ＲＯＭ）５２０、および、ランダムアクセスメモリ（ＲＡＭ）５２５を含む各種システムコンポーネンツを、プロセッサ５１０に結合する。システム５００は、直接プロセッサ５１０に接続される、隣接する、または、プロセッサ５１０の一部として整合される高速メモリのキャッシュメモリを有する。システム５００は、メモリ５１５、および／または、ストレージデバイス５３０からのデータを、キャッシュメモリ５１２にコピーして、プロセッサ５１０により快速アクセスする。これにより、キャッシュメモリは、パフォーマンスブーストを提供して、プロセッサ５１０がデータを待つときに遅延するのを防止する。これら、および、その他のモジュールは、プロセッサ５１０を制御する、または、制御するように設定されて、各種動作を実行する。別のシステムメモリ５１５も、この用途として用いることができる。メモリ５１５は、異なる性能特徴を有する複数の異なるタイプのメモリを含む。プロセッサ５１０は、任意の汎用プロセッサ、および、ハードウェアモジュール、または、ソフトウェアモジュール、たとえば、ストレージデバイス５３０中に保存されるモジュール５３２、モジュール５３４、および、モジュール５３６を有して、プロセッサ５１０と特殊用途のプロセッサを制御し、ソフトウェア命令は、実際のプロセッサ設計に組み込まれる。プロセッサ５１０は、本質的に、完全内蔵型コンピュータシステムで、マルチコア、または、プロセッサ、バス、メモリコントローラー、キャッシュメモリ等を含む。マルチコアプロセッサは、対称、または、非対称である。
【００５６】
ユーザーとコンピュータデバイス５００を相互作用させるため、入力装置５４５は、任意の数目の入力メカニズム、たとえば、スピーチ用のマイクロフォン、ジェスチャーや図形入力のタッチスクリーン、キーボード、マウス、動作入力、スピーチなどを示す。出力装置５３５も、従来の技術として知られている１つ以上の数目の出力メカニズムである。いくつかの実施例にいて、多様なシステムは、ユーザーに、多種のタイプの入力を提供させて、コンピュータデバイス５００と通信する。通信用インターフェース５４０は、一般に、ユーザー入力とシステム出力を調節、および、管理する。特定のハードウェアアレンジにおいて操作上の制限がないので、ここでの基本特徴は、ハードウェア、または、ファームウェアアレンジを改善するために、容易に代替できる。
【００５７】
ストレージデバイス５３０は非揮発性メモリで、且つ、ハードディスク、または、その他のタイプのコンピュータ可読媒体（たとえば、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ（ＲＡＭ）５２５、リードオンリーメモリ（ＲＯＭ）５２０、および、その組み合わせ）で、コンピュータによりアクセスできるデータを保存することができる。
【００５８】
ストレージデバイス５３０は、ソフトウェアモジュール５３２、５３４、５３６を含み、プロセッサ５１０を制御する。その他のハードウェア、または、ソフトウェアモジュールが考慮される。ストレージデバイス５３０はシステムバス５０５に接続される。一態様において、特定の機能を実行するハードウェアモジュールは、コンピュータ可読媒体に保存されるソフトウェアコンポーネントを含み、必要なハードウェアコンポーネンツ、たとえば、プロセッサ５１０、バス５０５、出力装置５３５（たとえば、ディスプレイ）等と連結されて、この機能を完成する。
【００５９】
図５Ｂは、上述の方法を実行すると共に、グラフィカルユーザーインターフェース（ＧＵＩ）を生成、表示するのに用いられるチップセット構造を有するコンピュータシステム５５０を説明する。コンピュータシステム５５０は、開示する技術を実行するのに用いられるコンピュータハードウェア、ソフトウェア、および、ファームウェアの例である。システム５５０は、プロセッサ５５５を含み、任意の数目の物理的に、および／または、論理的に異なるリソースを表し、これらのリソースは、ソフトウェア、ファームウェア、および、ハードウェアを実行して、識別計算（ｉｄｅｎｔｉｆｉｅｄ  ｃｏｍｐｕｔａｔｉｏｎｓ）を実行することができる。プロセッサ５５５は、プロセッサ５５５との入出力を制御することができるチップセット５６０と通信することができる。この例において、チップセット５６０は、情報を、出力装置５６５、たとえば、ディスプレイに出力すると共に、たとえば、磁気媒体、および、ソリッドステート媒体を含むストレージデバイス５７０に情報を書き込んだり、情報を読み取ったりすることができる。チップセット５６０は、また、ＲＡＭ５７５からデータを読みとったり、データを書き込んだりすることができる。様々なユーザーインターフェースコンポーネンツ５８５と作用するブリッジ５８０が提供されて、チップセット５６０と相互作用する。このようなユーザーインターフェースコンポーネンツ５８５は、キーボード、マイクロフォン、タッチ検出処理回路、ポインティングデバイス、たとえば、マウス等を含む。一般に、システム５５０への入力は、様々なソース（機械生成、および／または、人が生み出す）によるものである。
【００６０】
チップセット５６０は、異なる物理インターフェースを有する１つ以上の通信インターフェース５９０と相互作用する。このような通信インターフェースは、有線、または、無線ローカルエリアネットワーク、広帯域無線ネットワーク、および、パーソナルネットワークのインターフェースを含む。ここで開示されるＧＵＩを生成、表示、および、用いる方法のあるアプリケーションは、物理インターフェースにより、順序付けされたデータセットを受信する、または、機器自身により、プロセッサ５５５を通じて、ストレージ５７０、または、ＲＡＭ５７５に保存されるデータを分析する工程を含む。さらに、機器は、ユーザーインターフェースコンポーネンツ５８５により、ユーザーから入力を受信すると共に、適切な機能、たとえば、プロセッサ５５５を用いて、これらの入力を解釈することにより、ブラウジング機能を実行する。
【００６１】
理解すべきことは、例のシステム５００と５５０は、二個以上のプロセッサ５１０、または、ネットワーク連結のコンピュータデバイスの群、または、クラスタの一部を有して、優れた処理能力を提供する。
【００６２】
説明を明確にするため、場合によっては、本発明は、個々の機能ブロックを含むものとして示され、これらのブロックは、複数の機能ブロックを含み、これらの機能ブロックは、複数の装置、装置コンポーネンツ、ソフトウェア、または、ハードウェアとソフトウェアの組み合わせで実現される方法中のステップや工程を含む。
【００６３】
いくつかの例において、コンピュータ可読ストレージデバイス、媒体、および、メモリは、ビットストリーム等を含む有線、または、無線信号を含む。しかし、注意すべきことは、持続性コンピュータ可読ストレージ媒体は、明白に、媒体、たとえば、エネルギー、キャリア信号、電磁波、および、信号自身の媒体を排除する。
【００６４】
上述の例による方法は、保存されるか、または、そうでなければ、コンピュータ可読媒体から得られるコンピュータ−実行可能命令を用いて実行される。このような命令は、汎用コンピュータ、特殊用途コンピュータ、または、特殊用途の処理装置に、ある機能や機能の群を実行するようにさせる、または、設定する、たとえば、命令、および、データを含む。用いられるコンピュータリソースの部分は、ネットワークによりアクセス可能である。コンピュータ実行可能命令は、たとえば、二元、中間フォーマット命令、たとえば、アセンブリ言語、ファームウェア、または、ソースコードである。記述される例にしたがって、命令、用いられた情報、および／または、方法中で生成される情報を保存するのに用いることができるコンピュータ可読媒体は、磁気、または、光学ディスク、フラッシュメモリ、ＵＳＢデバイスを含み、非揮発性メモリ、ネットワークストレージデバイスなどを提供する。
【００６５】
これらの開示に基づく方法を実施する装置は、ハードウェア、ファームウェア、および／または、ソフトウェアを含み、様々なフォームファクターを取り込むことができる。このようなフォームファクターの一般的な例は、ラップトップ、スマートフォン、小型フォームファクターパソコン、ＰＤＡ等を含む。ここで記述される機能性は、また、周辺、または、拡張カードで実施される。このような機能性は、また、異なるチップ、または、異なるプロセスにより、単一デバイス上の過程で、更なる例により回路基板上で実施される。
【００６６】
このような命令を伝達する命令、媒体、それらを実行する計算リソース、および、このような計算リソースをサポートするその他の構造は、これらの開示で記述される機能を提供する手段である。
【００６７】
本発明の各種態様は、エンドポイント識別子を合成アドレスにマッピングすると共に、異なる形式の検索が均一に処理できるようにすることにより、各タイプのエンドポイント識別子を一体化する方法を提供する。特定の例は、どのように、選択的操作が異なる命令で用いられるかを引用し、別の例は選択的操作を異なる命令に組み込むことができる。説明をはっきりさせるため、場合によっては、本発明は、個々の機能ブロックを含むものとして表示され、それらは、ソフトウェア、または、ハードウェアとソフトウェアの組み合わせで具体化される方法中の装置、装置コンポーネンツ、ステップ、または、ルーティンを含む。
【００６８】
各種実施例は、さらに、幅広い操作環境ででき、ある状況下で、任意の数量のアプリケーションを操作するのに用いられる１つ以上のサーバコンピュータ、ユーザーコンピュータ、または、コンピュータデバイスを含む。ユーザー、または、クライアント装置は、任意の数量の汎用パソコン、たとえば、標準のオペレーティングシステムで操作するデスクトップ、または、ラップトップコンピュー、および、モバイルソフトウェアを実行し、複数のネットワークとメッセージングプロトコルをサポートすることができるセルラー、ワイヤレス、および、携帯端末を含む。このようなシステムは、また、任意の様々な市販のオペレーティングシステムを実行する複数のワークステーション、および、たとえば、発展とデータベース管理を目的とするその他の既知のアプリケーションを含む。これらの装置は、別の電子装置、たとえば、ダミー端子、シンクライアント、ゲームシステム、および、ネットワークにより通信することができるその他の装置を含む。
【００６９】
本発明は部分的にハードウェアで実行され、本発明は、以下の任意の技術、または、組み合わせで実行される：データ信号に基づいて論理機能を実行する論理ゲートを有する離散論理回路、適切な組み合わせの論理ゲートを有する特定用途向け集積回路（ＡＳＩＣ）、プログラム可能なハードウェア、たとえば、プログラマブルゲートアレイ（ＰＧＡ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）等。
【００７０】
大部分の例は、当業者に熟知されている少なくとも１つのネットワークを用いて、任意の様々な市販のプロトコル、たとえば、ＴＣＰ／ＩＰ、ＯＳＩ、ＦＴＰ、ＵｐｎＰ、ＮＦＳ、ＣＩＦＳ、ＡｐｐｌｅＴａｌｋ等を用いる通信をサポートする。ネットワークは、たとえば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、ワイヤレスネットワーク、および、それらの組み合わせである。
【００７１】
上述の例による方法は、保存されるか、または、そうでなければ、コンピュータ可読媒体から得られるコンピュータ−実行可能命令を用いて実行される。このような命令は、汎用コンピュータ、特殊用途コンピュータ、または、特殊用途の処理装置に、ある機能や機能の群を実行するようにさせる、または、設定する、たとえば、命令、および、データを含む。用いられるコンピュータリソースの部分は、ネットワークによりアクセス可能である。コンピュータ実行可能命令は、たとえば、二元、中間フォーマット命令、たとえば、アセンブリ言語、ファームウェア、または、ソースコードである。記述される例にしたがって、命令、用いられた情報、および／または、方法中で生成される情報を保存するのに用いることができるコンピュータ可読媒体は、磁気、または、光学ディスク、フラッシュメモリ、ＵＳＢデバイスを含み、非揮発性メモリ、ネットワークストレージデバイスなどを提供する。
【００７２】
これらの技術による装置実行方法は、ハードウェア、ファームウェア、および／または、ソフトウェアを有し、様々なフォームファクターを取り込むことができる。このようなフォームファクターの一般的な例は、サーバコンピュータ、ラップトップ、スマートフォン、小型フォームファクターパソコン、ＰＤＡ等を含む。ここで記述される機能性は、また、周辺機器、または、拡張カードで具体化される。このような機能性も、異なるチップ、または、異なるプロセスにより、単一装置上の過程で、さらなる例の方式により、回路板上で実施される。
【００７３】
ウェブサーバを用いる例において、ウェブサーバは、ＨＴＴＰサーバ、ＦＴＰサーバ、ＧＣＩサーバ、データサーバ、ジャバサーバ、および、ビジネスアプリケーションサーバを含む様々なサーバ、または、中間層アプリケーションを実行することができる。サーバは、たとえば、１つ以上のウェブアプリケーションを実行することにより、ユーザー装置からの要求に対応するプログラム、または、スクリプトを実行することができ、ウェブアプリケーションは、プログラミング言語、たとえば、Ｊａｖａ（登録商標）、Ｃ、Ｃ♯、または、Ｃ＋＋、または、任意のスクリプト言語、たとえば、Ｐｅｒｌ、Ｐｙｔｈｏｎ、または、ＴＣＬ、および、それらの組み合わせに書き込まれる１つ以上のスクリプト、または、プログラムとして実施される。サーバも、データベースサーバを含むことができ、自由市場からのこれらの市販のソフトウェアに限定されない。
【００７４】
サーバファームは、上述のような様々なデータ、および、その他のメモリとストレージ媒体を含む。これらのサーバは、様々な位置、たとえば、１つ以上のコンピュータに接続される（および／または、その中に常駐する）、または、ネットワークにより、任意の、または、すべてのコンピュータから離れているストレージ媒体に存在する。一組の特別な実施例において、情報は、当業者により熟知のストレージエリアネットワーク（ＳＡＮ）中に存在する。同様に、コンピュータ、サーバ、または、その他のネットワークデバイスに対して貢献する機能を実行する任意の必要なファイルは、局部的、および／または、遠隔で保存される。システムが、コンピュータ化装置を含むとき、このような装置は、バスにより電気的に結合されるハードウェア素子を含み、それらは、たとえば、少なくとも１つの中央処理ユニット（ＣＰＵ）、少なくとも１つの入力装置（たとえば、マウス、キーボード、コントローラー、タッチパネルディスプレイ素子、または、キーボード）、および、少なくとも１つの出力装置（たとえば、ディスプレイ装置、プリンター、または、スピーカー）を含む。このようなシステムは、さらに、１つ以上のストレージデバイス、たとえば、ディスクドライブ、光学ストレージデバイス、および、ソリッドステートストレージデバイス、たとえば、ランダムアクセスメモリ（ＲＡＭ）、または、リードオンリーメモリ（ＲＯＭ）、および、リムーバブル媒体装置、メモリカード、フラッシュカード等を含む。
【００７５】
このような装置は、また、上述のように、コンピュータ可読ストレージ媒体リーダー、通信装置（たとえば、モデム、ネットワークカード（無線、または、有線）、赤外線コンピュータデバイス）、および、ワーキングメモリを含む。コンピュータ可読ストレージ媒体リーダーは、コンピュータ可読ストレージ媒体と接続、または、それを受信するように設定され、コンピュータ可読ストレージ媒体は、リモート、ローカル、混合、および／または、リムーバブルストレージデバイス、および、一時的、および／または、さらに永久的に、コンピュータ可読情報を含有、保存、伝送、および、回収するストレージ媒体を表す。システムと各種装置は、さらに、一般的に、少なくとも１つのワーキングメモリデバイス中に位置する複数のソフトウェアアプリケーション、モジュール、サービス、または、その他の素子を含み、オペレーティングシステム、および、アプリケーションプログラム、たとえば、クライアントアプリケーション、または、ウェブブラウザを含む。理解すべきことは、上述の例は各種変化を有することである。たとえば、専用ハードウェアが用いられる、および／または、特定素子が、ハードウェア、ソフトウェア（ポータブルソフトウェア、たとえば、アプレットを含む）、または、両方で実施される。さらに、その他のコンピュータデバイス、たとえば、ネットワーク入力／出力装置への接続が用いられる。
【００７６】
コード、または、コードの一部を含むストレージ媒体、および、コンピュータ可読媒体は、ストレージ媒体、および、計算媒体を含む従来の任意の適切な媒体を含み、揮発性、および、非揮発性、リムーバブル、および、非リムーバブル媒体に限定されず、任意の方法や技術で実行して、情報、たとえば、コンピュータ可読命令、データ構造、プログラムモジュール、または、その他のデータの保存、および／または、伝送を行い、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または、その他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、または、その他の光学式記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または、その他の磁気ストレージデバイス、または、所望の情報を保存し、システム装置によりアクセスされる任意の別の媒体を含む。当業者は、ここで提供される技術と教示に基づいて、その他の方法、および／または、技術により、本発明の各種態様を実現することができる。
【００７７】
本発明では好ましい実施例を前述の通り開示したが、これらは決して本発明に限定するものではなく、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない範囲内で各種の変動や潤色を加えることができ、従って本発明の保護範囲は、特許請求の範囲で指定した内容を基準とする。
【符号の説明】
【００７８】
１００  サーバラック
１０１、１０２  ノード
１０１１、１０２１  サーバ
１０１３、１０２３、４６３、５１０、５５５  プロセッサ
１０１４、１０２４、４６１、５１５  メモリ
１０１５、１０２５  基本入出力システム（ＢＩＯＳ）
１１１２、１１２２  ベースボード管理コントローラー（ＢＭＣ）
１０５  マイクロコントローラー
４００  コンピュータデバイス
４１５、５０５  バス
４６２  中央処理ユニット
４６８  インターフェース
５００  コンピュータシステム
５１２  キャッシュメモリ
５２０  リードオンリーメモリ（ＲＯＭ）
５２５、５７５  ランダムアクセスメモリ（ＲＡＭ）
５３０、５７０  ストレージデバイス
５３２、５３４、５３６  モジュール
５３５、５６５  出力装置
５４０、５９０  通信インターフェース
５４５  入力装置
５５０  コンピュータシステム
５６０  チップ
５８０  ブリッジ
５８５  ユーザーインターフェースコンポーネンツ
【図１】
2016095836.tif 000003
【図２】
2016095836.tif 000004
【図３】
2016095836.tif 000005
【図４】
2016095836.tif 000006
【図５Ａ】
2016095836.tif 000007
【図５Ｂ】
2016095836.tif 000008