JP2016095836A - メモリ障害許容率を増加する方法 - Google Patents

メモリ障害許容率を増加する方法 Download PDF

Info

Publication number
JP2016095836A
JP2016095836A JP2015175806A JP2015175806A JP2016095836A JP 2016095836 A JP2016095836 A JP 2016095836A JP 2015175806 A JP2015175806 A JP 2015175806A JP 2015175806 A JP2015175806 A JP 2015175806A JP 2016095836 A JP2016095836 A JP 2016095836A
Authority
JP
Japan
Prior art keywords
memory
physical address
error
memory device
server system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015175806A
Other languages
English (en)
Other versions
JP6152148B2 (ja
Inventor
美琳 蘇
Mei-Lin Su
美琳 蘇
▲い▼羣 王
Wei-Chun Wang
▲い▼羣 王
威宇 錢
Wei-Yu Chien
威宇 錢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Quanta Computer Inc
Original Assignee
Quanta Computer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Quanta Computer Inc filed Critical Quanta Computer Inc
Publication of JP2016095836A publication Critical patent/JP2016095836A/ja
Application granted granted Critical
Publication of JP6152148B2 publication Critical patent/JP6152148B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/006Identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2268Logging of test results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】メモリ障害許容率を増加する方法を提供する。
【解決手段】サーバシステム中になんらかのメモリエラーが発生するかをテストし、サーバシステムの1つ以上のメモリデバイス上で、検出されたメモリエラーに対応する物理メモリーアドレスを決定する工程210と、検出されたメモリエラーに対応する物理メモリーアドレスが、オペレーティングシステム、アプリケーションプログラム及び/又はサーバシステムの別のコンポーネンツによりアクセスされるのを防止する工程240と、を有する。
【選択図】図2

Description

本発明は、サーバシステムに関するものである。
現在のサーバの演算速度は、以前より速くなっている。サーバシステムは、一般に、ハードウェアとソフトウェアコンポーネンツ、アプリケーションプログラム、オペレーティングシステム、プロセッサ、バス、および、メモリの組み合わせを含む。各サーバは、物理メモリ(たとえば、ダイナミックランダムアクセスメモリ(DRAM))に頼って処理している。プロセッサ以外、メモリは、サーバにとって最も性能に影響する(performance−critical)リソースであり、且つ、サーバハードウェアコスト全体の重要な一部分である。
メモリモジュールは、通常、サーバのシステムボード上のプロセッサと組み合わされる。システムボード上のプロセッサが多くなるとき、さらに多くのメモリモジュールが必要とされて、数量が増えたプロセッサの処理要求に応える。しかし、メモリモジュールの数量の増加も、サーバ上のメモリ失敗率を増加させる。これは、明らかなコストの増加を示す。よって、サーバシステム中のメモリ障害許容率を増加させる必要がある。
本発明は、メモリ障害許容率を増加する方法を提供する。
本発明の各種具体例によるシステムと方法は、上述の問題の解決方案を提供する。解決方案は、メモリデバイスで検出された不良ダイに対応する物理メモリーアドレスをマスク(masking)することにより、サーバシステム中のメモリ障害許容率を増加するものである。さらに、本発明の各種具体例による方法は、サーバシステムの1つ以上のメモリデバイス上で、なんらかのメモリエラーが発生するかテストすると共に、1つ以上のメモリデバイスで検出されたメモリエラーに対応する物理メモリーアドレスを決定し、および、検出されたメモリエラーに対応する物理メモリーアドレスが、オペレーティングシステム、アプリケーションプログラム、および/または、サーバシステムの別のコンポーネンツによりアクセスされるのを防止する。従来のサーバシステムにおいて、メモリエラー、または、不良ダイが、メモリデバイスで検出されるとき、メモリデバイス全体は物理的に代替されなければならなかったが、対照的に、本発明の各種具体例では、より早くよりコスト効率が高い方法を提供して、サーバシステム中のメモリデバイスを物理的に代替することなく、メモリ障害許容率を増加させる。
いくつかの実施態様において、サーバシステムは複数のノードを含み、各ノードは、サーバ、基本入出力システム(BIOS)、および、ベースボード管理コントローラー(BMC)を有する。各サーバは、少なくとも1つのプロセッサを有する。BMCが設置されて、対応ノード中のシステムソフトウェアとハードウェアコンポーネンツ間のインターフェースを管理する。いくつかの実行において、対応ノード中のシステムソフトウェアとハードウェアコンポーネンツのパラメータが、ノードの潜在的な欠陥を示すプリセット極限を超えるとき、BMCは、警告を送信する。
いくつかの実施態様において、メモリテストコンポーネントがサーバシステム中に提供されて、メモリエラーが発生するかテストする。メモリテストコンポーネントは、ハードウェア、ソフトウェア、または、両方で、且つ、サーバシステム中のメモリデバイスからのデータと参照データを比較して、メモリエラーが発生するか決定する。いくつかの実施例は、データを、サーバシステム中の1つ以上のメモリデバイスに書き込むことにより、メモリエラーを検出し、メモリデバイスからデータを読み取り、書き込みデータと読み取りデータを比較して、メモリエラーが発生するか決定する。いくつかの実施態様において、1つ以上のメモリデバイスからの読み取りデータが互いに比較されて、メモリデバイス中にメモリエラーが発生するか決定する。
いくつかの実施態様において、サーバシステム中の1つ以上のメモリデバイスで、1つ以上の不良ダイが検出されるとき、メモリデバイスのメモリトポロジーが決定される。以前のトポロジー決定後、メモリトポロジーが変化していない場合、1つ以上の不良ダイに対応する物理メモリーアドレスがアクセスを禁止される。いくつかの実施態様において、メモリトポロジーは、1つ以上のメモリデバイスと少なくとも1つのメモリコントローラー間の接続情報を含む。
いくつかの実施態様において、メモリエラーに対応する物理アドレスに隣接する所定範囲の物理アドレスも、サーバシステムのメモリマスクリストに加えられて、オペレーティングシステム、アプリケーションプログラム、および/または、サーバシステム中のその他のコンポーネンツによるアクセスを禁止する。いくつかの実施例は、検出された不良ダイの隣接するダイの物理アドレスをメモリマスクリストに記録すると共に、物理アドレスを“使用不能”としてマークする。
いくつかの実施態様において、メモリマスクリスト中の物理アドレスがアクセスを禁じられるとき、物理アドレスに対応するページは、エラー訂正スキームを用いてリカバーされる。いくつかの実施態様において、1つ以上のメモリデバイスのいくつかの部分が、予約メモリとして動的に保留され、1つ以上のメモリデバイス中に保存されるデータをミラー(mirror)する。メモリマスクリスト中の物理アドレスがアクセスを禁じられるとき、物理アドレスに対応するページが、1つ以上のメモリデバイスの保留部分から複製される。
いくつかの実施態様において、BIOS、パワーオンセルフテスト(POST)、オペレーティングシステム(OS)、または、メモリセルフテストが実行されるとき、サーバシステム中にメモリエラーがあるかどうかを検出するプロセスが起動される。
サーバシステム中のメモリ障害許容率を増加させることができる。
本発明の一実施態様によるサーバラックのブロック図である。 本発明の一実施態様によるコンピュータシステムのメモリ障害許容率を増加させる実施例の方法を示す図である。 本発明の一実施態様によるセルフテストを実行して、サーバシステム中、メモリ障害許容率を増加する実施例の方法を示す図である。 本技術の各種実行に基づいたコンピュータデバイスを示す図である。 本発明の各種実施例によるシステムを示す図(その1)である。 本発明の各種実施例によるシステムを示す図(その2)である。
本発明の更なる特徴及び利点は、以下の本発明の好ましい実施形態についての説明、添付図面及び特許請求の範囲から明らかになるであろう。
図1は、本発明の一実施態様による通信ネットワークにおけるサーバラック100のブロック図である。この例において、サーバラック100は、複数のノード(たとえば、101と102)、および、マイクロコントローラー105を有する。複数のノードは、互いに独立して操作できる。いくつかの実行において、複数のノードは、類似のコンピュータ能力、および、類似のメモリ容量を有する。別の実行において、複数のノードは、各種異なるサイズ、計算能力、および、メモリ容量を有する。
各ノードは、サーバ(たとえば、1011と1021)、基本入出力システム(BIOS)(たとえば、1015と1025)、および、ベースボード管理コントローラー(BMC)(たとえば、1112と1122)を含む。各サーバは、少なくとも1つのプロセッサ、および、メモリデバイスを含む。この例において、サーバ1011は、プロセッサ1013、および、メモリデバイス1014を含み、サーバ1021は、プロセッサ1023、および、メモリデバイス1024を含む。
本発明の各種具体例において、BMCは、各複数のノードに組み込まれる特殊化したマイクロコントローラー、たとえば、それぞれ、ノード101と102に組み込まれるBMC1112と1122である。BMCは、複数のノードのそれぞれのシステム管理ソフトウェアとハードウェアコンポーネンツ間のインターフェースを管理する。いくつかの実行において、複数のノードのそれぞれに組み込まれる異なる種類のセンサーは、BMCに対応するパラメータ(たとえば、温度、冷却ファン速度、電力状態、および/または、オペレーティングシステム(OS)状態)を報告する。BMCは、対応ノード上で、センサーを監視することもできる。センサー上の任意のパラメータが、ノードの潜在的な欠陥を示すプリセット極限を超えるとき、BMCは、ネットワークにより、マイクロコントローラー105、または、システム管理者に警告を送信する。マイクロコントローラー105、または、管理者は、さらに、BMCと通信して、対応ノード上のハードウェアコンポーネンツを制御するか、または、ある修正動作、たとえば、ノードのリセットや電源循環を実行して、ハングアップしたOSを再起動させる。いくつかの実施態様において、BMCとマイクロコントローラー105間の物理インターフェースは、たとえば、SBMbusバス、RS-232シリアルコンソール、または、インテリジェントプラットフォーム管理バス(IPMB)を含み、BMCが、マイクロコントローラー105、または、サーバラック100、または、通信ネットワーク中の別の管理コントローラーからの要求メッセージを受け入れられるようにする。
この例において、BIOS1015と1025は、直接、それらの対応サーバに接続されて、初期化、および/または、テストする。BIOS104は、リードオンリーメモリ(ROM)、または、その他のストレージデバイス中に保存されるソフトウェアである。BIOS104は、複数のノードのそれぞれにロードされると共に、対応ノードのコンポーネントを初期化、または、テストするように作動し、その後、オペレーティングシステムを呼び出す。BIOS104は、さらに、ハードウェアコンポーネンツ、アプリケーションプログラム、および、オペレーティングシステムを、入力/出力装置(たとえば、キーボード、ディスプレイ)と作用させるための抽象化層を提供する。いくつかの実施態様において、オペレーティングシステムは、BIOS104により提供される抽象化層を無視して、ロード後、直接、対応ノード、または、複数のノードのハードウェアコンポーネンツにアクセスする。マイクロコントローラー105は、スイッチ103と複数のBMC(たとえば、1112と1122)のそれぞれ間で相互接続すると共に、スイッチ103を制御するように作動して、選択的に、複数のサーバの1つに切り換える。
図1中のサーバラック100中には、サーバ1011と1021しか示されていないが、データを処理することができる各種電子、または、コンピュータデバイスは、サーバラック100中に含まれる。さらに、サーバラック中の電子、または、コンピュータデバイスは、各種アプリケーションを実行、および/または、各種オペレーティングシステムを用いることができるように設定される。これらのオペレーティングシステムは、これらに限定されないが、アンドロイド、バークレイソフトウェアディストリビューション(BSD)、iPhone OS (iOS)、Linux(登録商標)、OS X、Unix(登録商標)−like Real−timeオペレーティングシステム(たとえば、QNX)、Microsoft Windows(登録商標)、Windows(登録商標) Phone、および、IBM z/OSを含む。
サーバラック100の所望の実行方式に基づいて、多種のネットワークとメッセージングプロトコルが用いられ、これらに限定されないが、例えばTCP/IP、オープンシステムインターコネクション(OSI)、ファイル転送プロトコル(FTP)、ユニバーサルプラグアンドプレイ(UpnP)、ネットワークファイルシステム(NFS)、コモンインターネットファイルシステム(CIFS)、AppleTalk等を含む。当業者なら理解できるように、図1に示されるサーバラック100は説明目的で用いられる。よって、本発明の各種具体例において、ネットワークシステムは、多種の適当な方式で、本案中のネットワークプラットフォームの配置を提供することができる。
図1の実施例中、複数のノード(たとえば、101と102)も、特定の無線チャネルの演算範囲内で、1つ以上の電子装置と通信する1つ以上のワイヤレスコンポーネンツを含むことができる。無線チャネルは、無線方式で装置を通信させることができる任意の適当なチャネル、たとえば、ブルートゥース、セルラー、NFC、または、Wi−Fiチャネルである。従来簿技術からわかるように、この装置は、1つ以上の従来の有線通信接続を含むことができる。
複数のノード(たとえば、101と102)は、さらに、各種アプローチを用いて電力を供給する(たとえば、従来のプラグインアプローチ、従来のプラグインアプローチにより再充電を行うバッテリー、または、その他のアプローチ、たとえば、パワーマットやその他の装置により無線(たとえば、容量性、または、誘導性)充電を行う)電力コンポーネンツを有する。各種その他の素子、および/または、組み合わせも各種具体例の範囲内である。
図2は、本発明の一実施態様によるコンピュータシステムのメモリ障害許容率を増加する実施例の方法200を説明する。理解できることは、実施例の方法200は説明用であり、本発明のその他の方法中、同じ、または、類似の順序下で、または、同時に、余分の、少ない、または、代替性のステップを含むことができることである。
実施例の方法200は、ステップ210で、コンピュータシステムが、メモリエラーを有するかを検出することから開始される。いくつかの実施態様において、メモリエラーが、メモリテストコンポーネントにより検出される。メモリテストコンポーネントは、メモリデバイスからのデータと参照データを比較すると共に、少なくとも比較結果に基づいて、メモリ障害が発生したか決定する。いくつかの実施態様において、メモリエラーの検出プロセスは、データを複数のメモリデバイスに書き込む工程、複数のメモリデバイスからデータを読み取る工程、読み取りデータと書き込みデータを比較する工程、および、少なくとも1つの読み取りデータが書き込みデータと異なるとき、メモリエラー信号を出力する工程、を有する。いくつかの実行において、複数のメモリデバイスからの読み取りデータが互いに比較される。複数のメモリデバイスの1つからの少なくとも1つの読み取りデータが、別のメモリデバイスからのデータと異なるとき、メモリエラー信号が出力される。
ステップ220で、メモリエラーの検出時、メモリデバイスのメモリトポロジーが決定される。いくつかの実行において、コンピュータシステム中の1つ以上のメモリコントローラーは、メモリデバイスの状態、および/または、その他の情報をチェックする。
いくつかの実施態様において、メモリトポロジーは、メモリデバイスと1つ以上のメモリコントローラー(図示しない)間の接続情報を含む。たとえば、メモリコントローラーは複数のメモリデバイスに接続される。いくつかの実施例は、メモリデバイスをグループ化して、メモリコントローラーのバンド幅に対応する単一指令に応答する。いくつかの実施態様において、メモリトポロジーは、さらに、複製装置を有し、メモリコントローラーからのアドレスと制御情報を受信する。複製装置は、二つ以上の実質複製アドレスと制御情報のコピーを、複数のメモリデバイスに送信する。
いくつかの実施態様において、メモリトポロジーは、サーバラックのサーバ上の1つ以上のローカルメモリデバイス、および/または、1つ以上のリモートメモリデバイスを有する。1つ以上のリモートメモリデバイスは、サーバラック上の複数のサーバによりシェアされる。1つ以上のローカルメモリデバイスは、対応サーバのメインメモリになる。1つ以上のリモートメモリデバイスは、1つ以上のローカルメモリデバイスから強制退去されるページを保存する。一旦、1つ以上のローカルメモリデバイス中でミスが発生すると、1つ以上のリモートメモリデバイスで保存されるリモートページは、ローカルメモリデバイスに移動する。
いくつかの実施態様において、サーバ上の1つ以上のローカルメモリデバイスは、二つ以上のタイプ(たとえば、高パフォーマンス高コスト、および、低パフォーマンス低コスト)を有する。高パフォーマンスのメモリデバイス(たとえば、DRAM)が用いられて、サーバ上のプロセッサにより用いられるアクティブページ/データを保存し、低パフォーマンスのメモリデバイス(たとえば、非揮発性ランダムアクセスメモリ(NVRAM))は、アイドル状態、または、アクセス頻度の低いページ/データを保存する。
ステップ220で、メモリトポロジー決定後、ステップ221で、メモリトポロジーが、以前のメモリトポロジーと比べて変化しているか決定する。いくつかの実施態様において、従来のメモリ診断技術は、システム起動中、新しいメモリトポロジーと、以前に決定されたメモリトポロジーを比較するのに用いられる。
メモリトポロジーが変化していない場合、ステップ230において、メモリエラー詳細がメモリマスクリストにロードされる。メモリマスクリストは、BIOS−可読装置(たとえば、NVRAMやEEPROM)に保存される。
メモリエラー詳細は、メモリエラーに関連する物理アドレスを含む。サーバ上のプロセッサの物理アクセス空間は、プロセッサのOSにより用いられるページテーブルによりアドレスされる仮想空間からマップされる物理アクセス空間になる。いくつかの実施態様において、サーバ上のプロセッサの物理アクセス空間は、サーバ上の1つ以上のローカルメモリデバイス、および/または、1つ以上のリモートメモリデバイスの一部分の集合である。
ステップ240において、メモリエラーに対応する物理アドレスが、サーバのプログラムとハードウェアコンポーネンツによりアクセスされるのを防止する。いくつかの実施態様において、メモリマスクリストに基づいて、システムBIOSは、メモリマスクリスト中で識別されたアドレスを“使用不能”として設定すると共に、OS、アプリケーションソフトウェア、および、別のハードウェアコンポーネンツが、物理アドレスにアクセスするのを防止する。いくつかの実施態様において、メモリエラーに対応する物理アドレスに隣接する所定範囲の物理アドレスもメモリマスクリストに加えられて、アクセスを禁止して、サーバのメモリ障害許容率を増加する。いくつかの実施態様において、メモリエラーに対応するダイ、および/または、隣接するダイの物理アドレスが、すべて、メモリマスクリスト中に含まれて、アクセスを禁止する。
いくつかの実施態様において、メモリエラーに対応する物理アドレスがアクセスを禁じられるとき、物理アドレスに対応するページは、エラー訂正スキーム(たとえば、リードソロモンエラー訂正スキーム)を用いてリカバーされる。いくつかの実施態様において、1つ以上のローカルメモリデバイスの一部が、予約メモリとして動的に保留されて、1つ以上のローカルメモリデバイス中に保存されるデータをミラー、または、複製する。メモリエラーに対応する物理アドレスがアクセスを禁止されるとき、物理アドレスに対応するページは、1つ以上のローカルメモリデバイスの保留部分から回収、または、複製される。
メモリトポロジーが変化している場合、ステップ260で、メモリマスクリストはクリアになり、次のステップで、サーバ上で、メモリエラーが発生するかを検出するプロセスが起動される。いくつかの実施態様において、ユーザーは、指令を送信して、メモリマスクリストをクリアにする。よって、ステップ250で、ユーザーの指令を受信して、メモリマスクリストをクリアにするとき、方法200は、ステップ260中で、メモリマスクリストをクリアにすると共に、方法200をもう一度開始して、サーバ上にメモリエラーがあるか検出する。
図3は、本発明の各種具体例によるセルフテストを実行して、サーバシステム中、メモリ障害許容率を増加する実施例の方法300を説明する。実施例の方法300は、ステップ310で、セルフテストを実行することで開始される。セルフテストは、システムブーティングの一部分、プログラム実行の一部分、または、ユーザー初期化セルフテストプロセスである。セルフテストがシステムブーティングである場合、BIOSが実行される。“ハード”システムブーティングのとき、パワーオンセルフテスト(POST)が、まず、実行されて、サーバのハードウェアコンポーネンツが正常に実行されるか確認する。“ソフト”システムブーティングにおいて、POSTが省略できる。
いくつかの実施態様において、メモリエラーを検出するプロセスは、BIOS、または、POSTが実行されるとき、または、セルフテストがアプリケーションプログラムにより実行されるときに実行される。ステップ320において、サーバシステム中で、メモリエラーがあるかを決定する。メモリエラーが検出されるとき、メモリエラー詳細がBIOS−可読装置(たとえば、NVRAMやEEPROM)にロードされる。メモリエラー詳細はメモリエラーに関連する物理アドレスを含む。メモリマスクリストによると、メモリマスクリスト中で識別された物理アドレスが“使用不能”として設定されると共に、OS、アプリケーションソフトウェア、および、サーバ中のその他のハードウェアコンポーネンツによりアクセスされるのを禁止する。
メモリマスクリスト中で識別された物理アドレスがアクセスを禁止される、または、メモリエラーが検出されないとき、ステップ350で、セルフテストが完了する。いくつかの実施態様において、セルフテストがシステムブーティングの一部分である場合、ブートローダー(boot loader)は、メモリデバイスにロードされて(たとえば、メモリ位置0000:7C00にロードされる)、実行される。ブートローダーは、サーバに、オペレーティングシステム、または、その他のソフトウェアをロードするように操作可能である。いくつかの実施態様において、サーバのいくつかのサブシステムは、システムブーティング期間中、ROMに保存される操作可能なプログラムを簡単に実行することにより機能を開始する。
いくつかの実施態様において、ステップ310で、システムブーティング中に、BIOSがダメージを受ける場合、1つ以上のローカルメモリデバイス、または、その他のストレージデバイスがチェックされて、BIOSのバックアップがあるかどうか探す。BIOSのバックアップファイルが見つかる場合、バックアップファイルがBIOSのメモリに書き込まれる。その後、リブートプロセスが実行される。いくつかの実施態様において、BIOSのダメージ部分が選択的に代替される。BIOSのバックアップファイルが、サーバで見つからない場合、サーバは、リモートメモリデバイスから、バックアップファイルを回収するか、または、インターネットから、サーバに対応するBIOSのバックアップファイルをダウンロードする。サーバのプロセッサは、バックアップBIOSファイルを読み取り、バックアップファイルをBIOSメモリに書き込むことができる。
コンピュータネットワークは、地理的に分散したノードの集合で、これらのノードは、通信リンクとセグメントにより相互接続して、エンドポイント、たとえば、パソコン、および、ワークステーション間のデータを運ぶ。多くのタイプのネットワークは可用で、範囲は、ローカルエリアネットワーク(LAN)と広域ネットワーク(WAN)から、オーバーレイ、および、ソフトウェア定義ネットワーク、たとえば、仮想拡張ローカルエリアネットワーク(VXLAN)までである。
LANは、通常、同じ一般の物理的な位置、たとえば、ビルやキャンパスに位置する専用のプライベート通信リンク上のノードと接続する。一方、WANは、通常、長距離通信リンク、たとえば、コモンキャリアテレフォンライン、光パス、同期光学ネットワーク(SONET)、または、同期デジタル階層(SDH)リンク上で、地理的に分散したノードと接続する。LANとWANは、層2(L2)、および/または、層3(L3)ネットワーク、および、装置を含む。
インターネットはWANの例で、世界をまたぐ異種のネットワークを接続し、各種ネットワーク上のノード間のグローバル通信を提供する。ノードは、通常、所定プロトコル、たとえば、通信制御プロトコル/インターネットプロトコル (TCP/IP)にしたがって、データの離散フレーム、または、パケットを交換することにより、ネットワークで通信する。本説明において、プロトコルは、どのようにノードと互いに作用するかを定義する一組のルールを参照する。コンピュータネットワークは、さらに、中間ネットワークノード、たとえば、ルーターにより相互接続されて、各ネットワークの効果的な“サイズ”を拡張する。
オーバーレイネットワークは、一般に、物理ネットワークインフラで、仮想ネットワークが生成、または、層状になる。ジェネリックルーティングカプセル化(NVGRE)、ネットワーク仮想化オーバーレイ(NVO3)、および、ステートレストランスポートトンネリング(STT)を用いるオーバーレイネットワークプロトコル、たとえば、仮想拡張LAN(VXLAN)、ネットワーク仮想化は、トラフィックカプセル化スキームを提供し、論理トンネルで、ネットワークトラフィックを、L1とL3ネットワークに流す。このような論理トンネルは、仮想トンネルエンドポイント(VTEP)により生成、および、終了する。
さらに、オーバーレイネットワークは仮想セグメント、たとえば、VXLAN オーバーレイネットワーク中のVXLANセグメントを含み、これらのセグメントは、VM通信による仮想L2、および/または、L3オーバーレイネットワークを含む。仮想セグメントは、仮想ネットワーク識別子(VNI)、たとえば、特に、関連する仮想セグメント、または、ドメインを識別することができるVXLANネットワーク識別子により識別される。
ネットワーク仮想化は、ハードウェア、および、ソフトウェアリソースが、仮想ネットワーク中で結合できるようにする。たとえば、ネットワーク仮想化は、対応する仮想LAN(VLAN)により、多くのVMが物理ネットワークに連接されるようにする。VMは、それらの対応するVLANにしたがってグループ化されると共に、その他のVM、および、内部、または、外部ネットワーク上のその他の装置と通信することができる。
ネットワークセグメント、たとえば、物理、または、仮想セグメント、ネットワーク、装置、ポート、物理、論理リンク、および/または、トラフィックは、一般に、ブリッジ、または、フラッドドメインにグループ化される。ブリッジドメイン、または、フラッドドメインは、ブロードキャストドメイン、たとえば、L2ブロードキャストドメインを表す。ブリッジドメイン、または、フラッドドメインは、単一サブネットを含んでいるが、複数のサブネットを含んでもよい。さらに、ブリッジドメインは、ネットワークデバイス、たとえば、スイッチ上のブリッジドメインインターフェースと関連する。ブリッジドメインインターフェースは、L2ブリッジネットワークとL3ルートネットワーク間のトラフィックをサポートする論理的インターフェースである。その上、ブリッジドメインインターフェースは、インターネットプロトコル(IP)終端、VPN終端、アドレス分解処理、MACアドレッシングをサポートすることができる。ブリッジドメイン、および、ブリッジドメインインターフェースは、共に、同一インデックス、または、識別子により識別される。
さらに、エンドポイント群(EPG)がネットワークに用いられて、アプリケーションをネットワークにマッピングする。特に、EPGは、ネットワーク中で、アプリケーションエンドポイントのグループ化を用いて、アプリケーションの群に対し、接続とポリシーを供給する。EPGは、コンテナとして作用し、アプリケーション、または、アプリケーションコンポーネンツを収集し、前述のポリシーロジックを実施する。EPGは、さらに、ネットワークポリシーの分離、セキュリティ、および、論理アプリケーション境界を用いて、前面のアドレスの代替を可能にすることができる。
クラウドコンピューティングも、1つ以上のネットワークに提供されて、共有リソースを用いて、コンピューティングサービスを提供する。クラウドコンピューティングは、一般に、インターネットベースの計算サービスを含み、これらのネットワークリソースは、ネットワーク(たとえば、“クラウド”)により収集された可用リソースの集合による動態規定であり、且つ、クライアント、または、ユーザーコンピュータ、または、その他の装置オンデマンドに分配される。クラウドコンピューティングリソースは、あらゆるタイプのリソース、たとえば、計算、保存、および、ネットワークデバイス、バーチャルマシン(VM)等を含む。たとえば、リソースは、サービス装置(ファームウォール、ディープパケットインスペクター、トラフィックモニター、ロードバランサー等)、計算/処理装置(サーバ、CPUのメモリ、強力処理能力(brute force processing capability))、ストレージデバイス(たとえば、ネットワーク接続ストレージ、ストレージエリアネットワークデバイス)等を含む。その上、このようなリソースが用いられて、仮想ネットワーク、バーチャルマシン(VM)、データベース、アプリケーション(apps)等をサポートする。
クラウドコンピューティングリソースは、“プライベートクラウド”、“パブリッククラウド”、および/または、“ハイブリッドクラウド”を含む。“ハイブリッドクラウド”は、技術により内部操作、または、連合する二つ以上のクラウドからなるクラウドインフラである。本質的に、ハイブリッドクラウドは、プライベート、および、パブリッククラウド間の相互作用で、プライベートクラウドは、パブリッククラウドを加えると共に、安全、且つ、拡張可能な方式で、パブリッククラウドリソースを利用する。クラウドコンピューティングリソースは、オーバーレイネットワーク、たとえば、VXLANで、仮想ネットワークにより規定される。
ネットワークスイッチシステムにおいて、ルックアップデータベースは、スイッチシステムに取り付けられる多数のエンドポイント間のルートの追跡が維持される。しかし、エンドポイントは各種設定を有し、且つ、多くのテナントと関連する。これらのエンドポイントは、各タイプの識別子、たとえば、IPv4、IPv6、または、Layer−2を有する。ルックアップデータベースは、異なるモードで設定されて、異なるタイプのエンドポイント識別子を処理しなければならない。あるルックアップデータベースの容量が刻まれて(carved out)、異なるアドレスタイプの進入パケットを処理する。さらに、ネットワークスイッチシステム上のルックアップデータベースは、通常、1K仮想ルーティングと転送(VRFs)により制限される。よって、改善された検索アルゴリズムで、各タイプのエンドポイント識別子を処理することが望まれる。本発明の技術は、技術的な必要性に取り組んで、通信ネットワーク中の検索に取り組む。本発明は、システム、方法、および、コンピュータ可読ストレージ媒体を提供し、エンドポイント識別子をマッピングすることにより、各タイプのエンドポイント識別子を一様空間に統一すると共に、異なる形式の検索が、均一に処理されるようにする。これらのシステムとネットワークの例は、図4と図5の例中で簡単に紹介されている。これらの変化の例は、各種実施例中で記述される。技術に関する部分は図4に戻る。
図4は、本発明を実行するのに適当なコンピュータデバイス400を示す。コンピュータデバイス400は、マスター中央処理ユニッ(CPU)462、インターフェース468、および、バス415(たとえば、PCIバス)を含む。適切なソフトウェア、または、ファームウェアの制御下で作用するとき、CPU462は、パケット管理、エラー検出、および/または、ルーティング機能、たとえば、ミスケーブリング検出機能の実行を担当している。CPU462は、好ましくは、オペレーティングシステムを含むソフトウェア、および、適切なアプリケーションソフトウェアの制御下で、これらの機能すべてを完成させる。CPU462は、1つ以上のプロセッサ463、たとえば、マイクロプロセッサのモトローラファミリー、または、マイクロプロセッサのMIPSファミリーからのプロセッサを含む。代替実施例において、プロセッサ463は、特別に設計されたハードウェアで、コンピュータデバイス400の操作を制御する。特定の具体例において、メモリ461(たとえば、非揮発性RAM、および/または、ROM)も、CPU462の一部を形成する。しかし、多くの異なる方法があり、メモリは、システムに結合される。
インターフェース468は、一般に、インターフェースカード(時に“ラインカード”と称される)として提供される。一般に、それらは、ネットワーク上で、データパケットの送受信を制御し、時に、コンピュータデバイス400により使用されるその他の周辺設備をサポートする。これらのインターフェースは、イーサネット(登録商標)インターフェース、フレームリレーインターフェース、ケーブルインターフェース、DSLインターフェース、トークンリングインターフェース等である。このほか、各種超高速インターフェースは、たとえば、高速トークンリングインターフェース、ワイヤレスインターフェース、イーサネット(登録商標)インターフェース、ギガビットイーサネット(登録商標)インターフェース、ATMインターフェース、HSSIインターフェース、POSインターフェース、FDDIインターフェース等である。一般に、これらのインターフェースは、適切な媒体との通信に適切なポートを含む。ある実施例において、それらは、独立プロセッサを含み、場合によっては、揮発性RAMを含む。独立プロセッサは、パケット交換、媒体制御と管理など、このような通信集中タスクを制御することができる。通信集中タスクのために、分離したプロセッサを提供することにより、これらのインターフェースは、マスターマイクロプロセッサ462が、ルーティング計算、ネットワーク診断、セキュリティ機能を効果的に実行することができるようにする。
図4に示されるシステムは、本発明の1つの特定ネットワークデバイスであるが、決して、ネットワークデバイス構造だけが、本発明を実行できるのではない。たとえば、ルーティング計算等と同様に、通信を処理する単一プロセッサを有する構造がしばしば用いられる。さらに、別のタイプのインターフェースと媒体も、ルーターと共に用いられる。
ネットワークデバイスがどのように配置されても、1つ以上のメモリ、または、メモリモジュール(メモリ461を含む)を用いて、ローミング、経路最適化、および、ルーティング機能の汎用ネットワーク操作とメカニズムのプログラム命令を保存する。プログラム命令は、たとえば、オペレーティングシステム、および/または、1つ以上のアプリケーションの操作を制御することができる。メモリも、複数の表、たとえば、モビリティバインディング(mobility binding)、登録、および、その他の関連表等を保存することができる。
図5Aと図5Bは、本発明の各種態様による可能なシステムを示す図である。当業者なら理解できるように、本発明を実現するとき、さらに適切な実施例を有するかもしれない。当業者なら、その他のシステムも可能であることが理解できる。
図5Aは、従来のシステムバスコンピュータシステム機構500を示す図で、システムのコンポーネンツは、バス505を用いて互いに電気的に通信する。実施例のシステム500は、処理ユニット(CPU、または、プロセッサ)510とシステムバス505を含み、システムバス505は、システムメモリ515、たとえば、リードオンリーメモリ(ROM)520、および、ランダムアクセスメモリ(RAM)525を含む各種システムコンポーネンツを、プロセッサ510に結合する。システム500は、直接プロセッサ510に接続される、隣接する、または、プロセッサ510の一部として整合される高速メモリのキャッシュメモリを有する。システム500は、メモリ515、および/または、ストレージデバイス530からのデータを、キャッシュメモリ512にコピーして、プロセッサ510により快速アクセスする。これにより、キャッシュメモリは、パフォーマンスブーストを提供して、プロセッサ510がデータを待つときに遅延するのを防止する。これら、および、その他のモジュールは、プロセッサ510を制御する、または、制御するように設定されて、各種動作を実行する。別のシステムメモリ515も、この用途として用いることができる。メモリ515は、異なる性能特徴を有する複数の異なるタイプのメモリを含む。プロセッサ510は、任意の汎用プロセッサ、および、ハードウェアモジュール、または、ソフトウェアモジュール、たとえば、ストレージデバイス530中に保存されるモジュール532、モジュール534、および、モジュール536を有して、プロセッサ510と特殊用途のプロセッサを制御し、ソフトウェア命令は、実際のプロセッサ設計に組み込まれる。プロセッサ510は、本質的に、完全内蔵型コンピュータシステムで、マルチコア、または、プロセッサ、バス、メモリコントローラー、キャッシュメモリ等を含む。マルチコアプロセッサは、対称、または、非対称である。
ユーザーとコンピュータデバイス500を相互作用させるため、入力装置545は、任意の数目の入力メカニズム、たとえば、スピーチ用のマイクロフォン、ジェスチャーや図形入力のタッチスクリーン、キーボード、マウス、動作入力、スピーチなどを示す。出力装置535も、従来の技術として知られている1つ以上の数目の出力メカニズムである。いくつかの実施例にいて、多様なシステムは、ユーザーに、多種のタイプの入力を提供させて、コンピュータデバイス500と通信する。通信用インターフェース540は、一般に、ユーザー入力とシステム出力を調節、および、管理する。特定のハードウェアアレンジにおいて操作上の制限がないので、ここでの基本特徴は、ハードウェア、または、ファームウェアアレンジを改善するために、容易に代替できる。
ストレージデバイス530は非揮発性メモリで、且つ、ハードディスク、または、その他のタイプのコンピュータ可読媒体(たとえば、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)525、リードオンリーメモリ(ROM)520、および、その組み合わせ)で、コンピュータによりアクセスできるデータを保存することができる。
ストレージデバイス530は、ソフトウェアモジュール532、534、536を含み、プロセッサ510を制御する。その他のハードウェア、または、ソフトウェアモジュールが考慮される。ストレージデバイス530はシステムバス505に接続される。一態様において、特定の機能を実行するハードウェアモジュールは、コンピュータ可読媒体に保存されるソフトウェアコンポーネントを含み、必要なハードウェアコンポーネンツ、たとえば、プロセッサ510、バス505、出力装置535(たとえば、ディスプレイ)等と連結されて、この機能を完成する。
図5Bは、上述の方法を実行すると共に、グラフィカルユーザーインターフェース(GUI)を生成、表示するのに用いられるチップセット構造を有するコンピュータシステム550を説明する。コンピュータシステム550は、開示する技術を実行するのに用いられるコンピュータハードウェア、ソフトウェア、および、ファームウェアの例である。システム550は、プロセッサ555を含み、任意の数目の物理的に、および/または、論理的に異なるリソースを表し、これらのリソースは、ソフトウェア、ファームウェア、および、ハードウェアを実行して、識別計算(identified computations)を実行することができる。プロセッサ555は、プロセッサ555との入出力を制御することができるチップセット560と通信することができる。この例において、チップセット560は、情報を、出力装置565、たとえば、ディスプレイに出力すると共に、たとえば、磁気媒体、および、ソリッドステート媒体を含むストレージデバイス570に情報を書き込んだり、情報を読み取ったりすることができる。チップセット560は、また、RAM575からデータを読みとったり、データを書き込んだりすることができる。様々なユーザーインターフェースコンポーネンツ585と作用するブリッジ580が提供されて、チップセット560と相互作用する。このようなユーザーインターフェースコンポーネンツ585は、キーボード、マイクロフォン、タッチ検出処理回路、ポインティングデバイス、たとえば、マウス等を含む。一般に、システム550への入力は、様々なソース(機械生成、および/または、人が生み出す)によるものである。
チップセット560は、異なる物理インターフェースを有する1つ以上の通信インターフェース590と相互作用する。このような通信インターフェースは、有線、または、無線ローカルエリアネットワーク、広帯域無線ネットワーク、および、パーソナルネットワークのインターフェースを含む。ここで開示されるGUIを生成、表示、および、用いる方法のあるアプリケーションは、物理インターフェースにより、順序付けされたデータセットを受信する、または、機器自身により、プロセッサ555を通じて、ストレージ570、または、RAM575に保存されるデータを分析する工程を含む。さらに、機器は、ユーザーインターフェースコンポーネンツ585により、ユーザーから入力を受信すると共に、適切な機能、たとえば、プロセッサ555を用いて、これらの入力を解釈することにより、ブラウジング機能を実行する。
理解すべきことは、例のシステム500と550は、二個以上のプロセッサ510、または、ネットワーク連結のコンピュータデバイスの群、または、クラスタの一部を有して、優れた処理能力を提供する。
説明を明確にするため、場合によっては、本発明は、個々の機能ブロックを含むものとして示され、これらのブロックは、複数の機能ブロックを含み、これらの機能ブロックは、複数の装置、装置コンポーネンツ、ソフトウェア、または、ハードウェアとソフトウェアの組み合わせで実現される方法中のステップや工程を含む。
いくつかの例において、コンピュータ可読ストレージデバイス、媒体、および、メモリは、ビットストリーム等を含む有線、または、無線信号を含む。しかし、注意すべきことは、持続性コンピュータ可読ストレージ媒体は、明白に、媒体、たとえば、エネルギー、キャリア信号、電磁波、および、信号自身の媒体を排除する。
上述の例による方法は、保存されるか、または、そうでなければ、コンピュータ可読媒体から得られるコンピュータ−実行可能命令を用いて実行される。このような命令は、汎用コンピュータ、特殊用途コンピュータ、または、特殊用途の処理装置に、ある機能や機能の群を実行するようにさせる、または、設定する、たとえば、命令、および、データを含む。用いられるコンピュータリソースの部分は、ネットワークによりアクセス可能である。コンピュータ実行可能命令は、たとえば、二元、中間フォーマット命令、たとえば、アセンブリ言語、ファームウェア、または、ソースコードである。記述される例にしたがって、命令、用いられた情報、および/または、方法中で生成される情報を保存するのに用いることができるコンピュータ可読媒体は、磁気、または、光学ディスク、フラッシュメモリ、USBデバイスを含み、非揮発性メモリ、ネットワークストレージデバイスなどを提供する。
これらの開示に基づく方法を実施する装置は、ハードウェア、ファームウェア、および/または、ソフトウェアを含み、様々なフォームファクターを取り込むことができる。このようなフォームファクターの一般的な例は、ラップトップ、スマートフォン、小型フォームファクターパソコン、PDA等を含む。ここで記述される機能性は、また、周辺、または、拡張カードで実施される。このような機能性は、また、異なるチップ、または、異なるプロセスにより、単一デバイス上の過程で、更なる例により回路基板上で実施される。
このような命令を伝達する命令、媒体、それらを実行する計算リソース、および、このような計算リソースをサポートするその他の構造は、これらの開示で記述される機能を提供する手段である。
本発明の各種態様は、エンドポイント識別子を合成アドレスにマッピングすると共に、異なる形式の検索が均一に処理できるようにすることにより、各タイプのエンドポイント識別子を一体化する方法を提供する。特定の例は、どのように、選択的操作が異なる命令で用いられるかを引用し、別の例は選択的操作を異なる命令に組み込むことができる。説明をはっきりさせるため、場合によっては、本発明は、個々の機能ブロックを含むものとして表示され、それらは、ソフトウェア、または、ハードウェアとソフトウェアの組み合わせで具体化される方法中の装置、装置コンポーネンツ、ステップ、または、ルーティンを含む。
各種実施例は、さらに、幅広い操作環境ででき、ある状況下で、任意の数量のアプリケーションを操作するのに用いられる1つ以上のサーバコンピュータ、ユーザーコンピュータ、または、コンピュータデバイスを含む。ユーザー、または、クライアント装置は、任意の数量の汎用パソコン、たとえば、標準のオペレーティングシステムで操作するデスクトップ、または、ラップトップコンピュー、および、モバイルソフトウェアを実行し、複数のネットワークとメッセージングプロトコルをサポートすることができるセルラー、ワイヤレス、および、携帯端末を含む。このようなシステムは、また、任意の様々な市販のオペレーティングシステムを実行する複数のワークステーション、および、たとえば、発展とデータベース管理を目的とするその他の既知のアプリケーションを含む。これらの装置は、別の電子装置、たとえば、ダミー端子、シンクライアント、ゲームシステム、および、ネットワークにより通信することができるその他の装置を含む。
本発明は部分的にハードウェアで実行され、本発明は、以下の任意の技術、または、組み合わせで実行される:データ信号に基づいて論理機能を実行する論理ゲートを有する離散論理回路、適切な組み合わせの論理ゲートを有する特定用途向け集積回路(ASIC)、プログラム可能なハードウェア、たとえば、プログラマブルゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)等。
大部分の例は、当業者に熟知されている少なくとも1つのネットワークを用いて、任意の様々な市販のプロトコル、たとえば、TCP/IP、OSI、FTP、UpnP、NFS、CIFS、AppleTalk等を用いる通信をサポートする。ネットワークは、たとえば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、ワイヤレスネットワーク、および、それらの組み合わせである。
上述の例による方法は、保存されるか、または、そうでなければ、コンピュータ可読媒体から得られるコンピュータ−実行可能命令を用いて実行される。このような命令は、汎用コンピュータ、特殊用途コンピュータ、または、特殊用途の処理装置に、ある機能や機能の群を実行するようにさせる、または、設定する、たとえば、命令、および、データを含む。用いられるコンピュータリソースの部分は、ネットワークによりアクセス可能である。コンピュータ実行可能命令は、たとえば、二元、中間フォーマット命令、たとえば、アセンブリ言語、ファームウェア、または、ソースコードである。記述される例にしたがって、命令、用いられた情報、および/または、方法中で生成される情報を保存するのに用いることができるコンピュータ可読媒体は、磁気、または、光学ディスク、フラッシュメモリ、USBデバイスを含み、非揮発性メモリ、ネットワークストレージデバイスなどを提供する。
これらの技術による装置実行方法は、ハードウェア、ファームウェア、および/または、ソフトウェアを有し、様々なフォームファクターを取り込むことができる。このようなフォームファクターの一般的な例は、サーバコンピュータ、ラップトップ、スマートフォン、小型フォームファクターパソコン、PDA等を含む。ここで記述される機能性は、また、周辺機器、または、拡張カードで具体化される。このような機能性も、異なるチップ、または、異なるプロセスにより、単一装置上の過程で、さらなる例の方式により、回路板上で実施される。
ウェブサーバを用いる例において、ウェブサーバは、HTTPサーバ、FTPサーバ、GCIサーバ、データサーバ、ジャバサーバ、および、ビジネスアプリケーションサーバを含む様々なサーバ、または、中間層アプリケーションを実行することができる。サーバは、たとえば、1つ以上のウェブアプリケーションを実行することにより、ユーザー装置からの要求に対応するプログラム、または、スクリプトを実行することができ、ウェブアプリケーションは、プログラミング言語、たとえば、Java(登録商標)、C、C♯、または、C++、または、任意のスクリプト言語、たとえば、Perl、Python、または、TCL、および、それらの組み合わせに書き込まれる1つ以上のスクリプト、または、プログラムとして実施される。サーバも、データベースサーバを含むことができ、自由市場からのこれらの市販のソフトウェアに限定されない。
サーバファームは、上述のような様々なデータ、および、その他のメモリとストレージ媒体を含む。これらのサーバは、様々な位置、たとえば、1つ以上のコンピュータに接続される(および/または、その中に常駐する)、または、ネットワークにより、任意の、または、すべてのコンピュータから離れているストレージ媒体に存在する。一組の特別な実施例において、情報は、当業者により熟知のストレージエリアネットワーク(SAN)中に存在する。同様に、コンピュータ、サーバ、または、その他のネットワークデバイスに対して貢献する機能を実行する任意の必要なファイルは、局部的、および/または、遠隔で保存される。システムが、コンピュータ化装置を含むとき、このような装置は、バスにより電気的に結合されるハードウェア素子を含み、それらは、たとえば、少なくとも1つの中央処理ユニット(CPU)、少なくとも1つの入力装置(たとえば、マウス、キーボード、コントローラー、タッチパネルディスプレイ素子、または、キーボード)、および、少なくとも1つの出力装置(たとえば、ディスプレイ装置、プリンター、または、スピーカー)を含む。このようなシステムは、さらに、1つ以上のストレージデバイス、たとえば、ディスクドライブ、光学ストレージデバイス、および、ソリッドステートストレージデバイス、たとえば、ランダムアクセスメモリ(RAM)、または、リードオンリーメモリ(ROM)、および、リムーバブル媒体装置、メモリカード、フラッシュカード等を含む。
このような装置は、また、上述のように、コンピュータ可読ストレージ媒体リーダー、通信装置(たとえば、モデム、ネットワークカード(無線、または、有線)、赤外線コンピュータデバイス)、および、ワーキングメモリを含む。コンピュータ可読ストレージ媒体リーダーは、コンピュータ可読ストレージ媒体と接続、または、それを受信するように設定され、コンピュータ可読ストレージ媒体は、リモート、ローカル、混合、および/または、リムーバブルストレージデバイス、および、一時的、および/または、さらに永久的に、コンピュータ可読情報を含有、保存、伝送、および、回収するストレージ媒体を表す。システムと各種装置は、さらに、一般的に、少なくとも1つのワーキングメモリデバイス中に位置する複数のソフトウェアアプリケーション、モジュール、サービス、または、その他の素子を含み、オペレーティングシステム、および、アプリケーションプログラム、たとえば、クライアントアプリケーション、または、ウェブブラウザを含む。理解すべきことは、上述の例は各種変化を有することである。たとえば、専用ハードウェアが用いられる、および/または、特定素子が、ハードウェア、ソフトウェア(ポータブルソフトウェア、たとえば、アプレットを含む)、または、両方で実施される。さらに、その他のコンピュータデバイス、たとえば、ネットワーク入力/出力装置への接続が用いられる。
コード、または、コードの一部を含むストレージ媒体、および、コンピュータ可読媒体は、ストレージ媒体、および、計算媒体を含む従来の任意の適切な媒体を含み、揮発性、および、非揮発性、リムーバブル、および、非リムーバブル媒体に限定されず、任意の方法や技術で実行して、情報、たとえば、コンピュータ可読命令、データ構造、プログラムモジュール、または、その他のデータの保存、および/または、伝送を行い、RAM、ROM、EPROM、EEPROM、フラッシュメモリ、または、その他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、または、その他の光学式記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または、その他の磁気ストレージデバイス、または、所望の情報を保存し、システム装置によりアクセスされる任意の別の媒体を含む。当業者は、ここで提供される技術と教示に基づいて、その他の方法、および/または、技術により、本発明の各種態様を実現することができる。
本発明では好ましい実施例を前述の通り開示したが、これらは決して本発明に限定するものではなく、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない範囲内で各種の変動や潤色を加えることができ、従って本発明の保護範囲は、特許請求の範囲で指定した内容を基準とする。
100 サーバラック
101、102 ノード
1011、1021 サーバ
1013、1023、463、510、555 プロセッサ
1014、1024、461、515 メモリ
1015、1025 基本入出力システム(BIOS)
1112、1122 ベースボード管理コントローラー(BMC)
105 マイクロコントローラー
400 コンピュータデバイス
415、505 バス
462 中央処理ユニット
468 インターフェース
500 コンピュータシステム
512 キャッシュメモリ
520 リードオンリーメモリ(ROM)
525、575 ランダムアクセスメモリ(RAM)
530、570 ストレージデバイス
532、534、536 モジュール
535、565 出力装置
540、590 通信インターフェース
545 入力装置
550 コンピュータシステム
560 チップ
580 ブリッジ
585 ユーザーインターフェースコンポーネンツ

Claims (15)

  1. 少なくとも1つのプロセッサと、命令を含むメモリとを有するサーバシステムであって、
    前記命令が、前記少なくとも1つのプロセッサにより実行されるとき、
    前記サーバシステムの少なくとも1つのメモリデバイス中の少なくとも1つのメモリエラーを検出する工程と、
    前記少なくとも1つのメモリエラーを検出するとき、前記サーバシステムの現在のメモリトポロジーを決定する工程と、
    前記現在のメモリトポロジーが、以前のメモリトポロジーと比べて変化していないとき、前記少なくとも1つのメモリエラーに関連する情報を、メモリマスクリストにロードし、前記情報が、前記少なくとも1つのメモリエラーに関連する前記少なくとも1つのメモリデバイス中の物理アドレスを含む工程と、
    前記少なくとも1つのメモリデバイス中の前記物理アドレスが、前記サーバシステムのソフトウェア、および、その他のハードウェアコンポーネンツによりアクセスされるのを防止する工程と、を前記サーバシステムにさせることを特徴とするサーバシステム。
  2. 前記サーバシステムは1つ以上のノードを有し、各ノードは、ベースボード管理コントローラー(BMC)、基本入出力システム(BIOS)、および、サーバを含み、
    前記サーバは、少なくとも1つのプロセッサを有し、
    前記BMCは、対応ノードのサーバシステムソフトウェアとハードウェアコンポーネンツ間のインターフェースを管理し、
    前記命令が実行されるとき、さらに、前記システムに、前記サーバシステムのノードの前記ソフトウェアとハードウェアコンポーネンツの少なくとも1つのパラメータが、前記ノードの潜在的な欠陥に関連するプリセット極限を超えるとき、前記BMCにより、ネットワークを通じて、前記サーバシステム、または、システム管理者のマイクロコントローラーに警告を送信させることを特徴とする請求項1に記載のサーバシステム。
  3. 前記サーバシステムはメモリテストコンポーネント、および/または1つ以上のノードを含み、
    前記メモリテストコンポーネントは、前記少なくとも1つのメモリデバイスからのデータと参照データを比較し、少なくとも比較結果に基づいて、前記メモリエラーが、前記少なくとも1つのメモリデバイスで発生するか決定し、
    前記1つ以上のノードのそれぞれは、前記少なくとも1つのメモリデバイスを初期化するか、または、少なくとも部分的にテストする基本入出力システム(BIOS)を含むことを特徴とする請求項1または2に記載のシステム。
  4. 前記命令が実行されるとき、さらに、前記システムに、
    データを、前記少なくとも1つのメモリデバイスに書き込む工程と、
    前記データを、前記少なくとも1つのメモリデバイスから読み取る工程と、
    前記書き込んだデータと前記少なくとも1つのメモリデバイスからの前記読み取りデータを比較する工程と、
    少なくとも1つの前記読み取りデータが、前記書き込んだデータと異なるとき、前記メモリエラーが発生したことを示す工程と、を実行させること、および/または、
    データを、前記少なくとも1つのメモリデバイスに書き込む工程と、
    前記少なくとも1つのメモリデバイスから、前記データを読み出す工程と、
    前記少なくとも1つのメモリデバイスからの前記読み取りデータを比較する工程と、
    前記少なくとも1つのメモリデバイスの1つからの少なくとも1つの前記読み取りデータが、前記少なくとも1つのメモリデバイスの別の1つと異なるとき、前記メモリエラーが発生したことを示す工程と、を実行させることを特徴とする請求項3に記載のシステム。
  5. 前記現在のメモリトポロジーは、前記サーバの前記少なくとも1つのメモリデバイスと少なくとも1つのメモリコントローラー間の接続情報を含むことを特徴とする請求項1〜4のいずれか1項に記載のシステム。
  6. 前記命令が実行されるとき、さらに、前記システムに、
    前記メモリエラーに対応する前記物理アドレスに隣接する所定範囲の物理アドレスを、前記メモリマスクリストに加える工程と、
    前記少なくとも1つのメモリデバイス中の前記所定範囲の物理アドレスが、前記サーバシステムの前記ソフトウェア、および、前記ハードウェアコンポーネンツによりアクセスされるのを防止する工程と、を実行させることを特徴とする請求項1〜5のいずれか1項に記載のシステム。
  7. 前記命令が実行されるとき、さらに、前記システムに、
    前記メモリエラーに対応する1つ以上のダイの物理アドレス、および、前記1つ以上のダイの少なくとも1つの隣接ダイの物理アドレスを、前記メモリマスクリストに加える工程と、
    前記メモリエラーに対応する前記1つ以上のダイの前記物理アドレス、および、前記少なくとも1つの隣接ダイの前記物理アドレスが、前記サーバシステムの前記ソフトウェア、および、前記ハードウェアコンポーネンツによりアクセスされるのを防止する工程と、を実行させることを特徴とする請求項1〜6のいずれか1項に記載のシステム。
  8. 前記命令が実行されるとき、さらに、前記システムに、
    前記少なくとも1つのメモリデバイスの少なくとも1つの部分を、予約メモリとして動的に保留し、前記少なくとも1つのメモリデバイス中に保存されるデータを複製する工程と、
    前記メモリエラーに対応する前記物理アドレスが、アクセスを禁止されるとき、前記予約メモリから、前記物理アドレスに対応するデータを回収する工程と、を実行させることを特徴とする請求項1〜7のいずれか1項に記載のシステム。
  9. 前記命令が実行されるとき、さらに、前記システムに、
    前記メモリエラーに対応する前記物理アドレスが、アクセスを禁じられるとき、1つ以上のエラー訂正スキームを用いて、前記物理アドレスに保存されるデータをリカバーすることを実行させることを特徴とする請求項1〜8のいずれか1項に記載のシステム。
  10. 前記命令が実行されるとき、さらに、前記システムに、
    前記現在のメモリトポロジーが、前記以前のメモリトポロジーと比較して変化している、または、ユーザー指令を受信して、前記メモリマスクリストをクリアにするとき、前記メモリマスクリストをクリアにして、新しいプロセスを起動し、新しいメモリエラーを検出することを実行させることを特徴とする請求項1〜9のいずれか1項に記載のシステム。
  11. コンピュータによって実行される、サーバシステム中のメモリ障害許容率を増加する方法であって、
    前記サーバシステムの少なくとも1つのメモリデバイス中で、少なくとも1つのメモリエラーを検出する工程と、
    前記少なくとも1つのメモリエラーを検出するとき、前記サーバシステムの現在のメモリトポロジーを決定する工程と、
    前記現在のメモリトポロジーが、以前のメモリトポロジーと比較して変化していないとき、前記少なくとも1つのメモリエラーに関連する情報を、メモリマスクリストにロードし、前記情報が、前記少なくとも1つのメモリエラーに関連する前記少なくとも1つのメモリデバイス中の物理アドレスを含む工程と、
    前記少なくとも1つのメモリデバイス中の前記物理アドレスが、前記サーバシステムのソフトウェア、および、その他のハードウェアコンポーネンツによりアクセスされるのを禁止する工程と、を有することを特徴とする方法。
  12. さらに、
    前記メモリエラーに対応する前記物理アドレスに隣接する所定範囲の物理アドレスを、前記メモリマスクリストに加える工程と、
    前記少なくとも1つのメモリデバイス中の前記所定範囲の物理アドレスが、前記サーバシステムの前記ソフトウェア、および、前記ハードウェアコンポーネンツによりアクセスされるのを禁止される工程、および/または、
    前記少なくとも1つのメモリデバイスの少なくとも1つの一部を、予約メモリとして動的に保留して、前記少なくとも1つのメモリデバイス中に保存されるデータを複製する工程と、
    前記メモリエラーに対応する前記物理アドレスが、アクセスを禁じられるとき、前記予約メモリから、前記物理アドレスに対応するデータを回収する工程と、を有することを特徴とする請求項11に記載の方法。
  13. さらに、
    前記メモリエラーに対応する1つ以上のダイの物理アドレス、および、前記1つ以上のダイの少なくとも1つの隣接ダイの物理アドレスを、前記メモリマスクリストに追加する工程と、
    前記メモリエラーに対応する前記1つ以上のダイ、および、前記少なくとも1つの隣接ダイの前記物理アドレスが、前記サーバシステムの前記ソフトウェア、および、前記ハードウェアコンポーネンツによりアクセスされるのを禁止する工程と、を有することを特徴とする請求項11または12に記載の方法。
  14. さらに、
    前記メモリエラーに対応する前記物理アドレスが、アクセスを禁止されるとき、1つ以上のエラー訂正スキームを用いて、前記物理アドレス中に保存されるデータをリカバーする工程を含むことを特徴とする請求項11〜13のいずれか1項に記載の方法。
  15. 命令を含む持続性コンピュータ可読ストレージ媒体であって、前記命令がサーバシステムの少なくとも1つのプロセッサにより実行されるとき、前記サーバシステムに、前記の請求項11〜14のいずれか1項に記載の方法を実行させることを特徴とする持続性コンピュータ可読ストレージ媒体。
JP2015175806A 2014-11-14 2015-09-07 メモリ障害許容率を増加する方法 Active JP6152148B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/542,355 2014-11-14
US14/542,355 US9043638B1 (en) 2014-11-14 2014-11-14 Method for enhancing memory fault tolerance

Publications (2)

Publication Number Publication Date
JP2016095836A true JP2016095836A (ja) 2016-05-26
JP6152148B2 JP6152148B2 (ja) 2017-06-21

Family

ID=53176492

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015175806A Active JP6152148B2 (ja) 2014-11-14 2015-09-07 メモリ障害許容率を増加する方法

Country Status (5)

Country Link
US (1) US9043638B1 (ja)
EP (1) EP3021223B1 (ja)
JP (1) JP6152148B2 (ja)
CN (1) CN106201769B (ja)
TW (1) TWI559132B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9621508B2 (en) * 2013-08-20 2017-04-11 Arista Networks, Inc. System and method for sharing VXLAN table information with a network controller
US20170308447A1 (en) * 2016-04-26 2017-10-26 Quanta Computer Inc. Methods and systems for analyzing record and usage in post package repair
CN109901956A (zh) * 2017-12-08 2019-06-18 英业达科技有限公司 内存整体测试的系统及其方法
US10922071B2 (en) * 2019-03-13 2021-02-16 Quanta Computer Inc. Centralized off-board flash memory for server devices
US11301258B2 (en) * 2019-09-24 2022-04-12 Dell Products L.P. Supervised learning based UEFI pre-boot control
US11107549B2 (en) * 2019-12-16 2021-08-31 Microsoft Technology Licensing, Llc At-risk memory location identification and management
US11367499B2 (en) * 2020-08-28 2022-06-21 Rockwell Collins, Inc. Mitigating single-event upsets using containerization

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07182249A (ja) * 1993-12-24 1995-07-21 Fuji Film Micro Device Kk メモリカード
JPH0883218A (ja) * 1994-09-14 1996-03-26 Toshiba Corp 計算機システム
JPH10269150A (ja) * 1997-03-21 1998-10-09 Nec Corp メモリ初期化方法
JP2005234872A (ja) * 2004-02-19 2005-09-02 Seiko Epson Corp コンピュータ、コンピュータ起動方法、biosプログラムおよび情報記憶媒体
JP2006260289A (ja) * 2005-03-17 2006-09-28 Fujitsu Ltd ソフトエラー訂正方法、メモリ制御装置及びメモリシステム
WO2007077595A1 (ja) * 2005-12-28 2007-07-12 Fujitsu Limited メモリ制御方法、プログラム及び装置
JP2012190064A (ja) * 2011-03-08 2012-10-04 Nec Corp 情報処理装置、メモリ管理方法、およびメモリ管理プログラム
JP2013502647A (ja) * 2009-08-21 2013-01-24 ラムバス・インコーポレーテッド インサイチュでのメモリのアニール
JP2013109722A (ja) * 2011-11-24 2013-06-06 Toshiba Corp コンピュータ、コンピュータシステム、および障害情報管理方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228496A (en) 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US6223301B1 (en) 1997-09-30 2001-04-24 Compaq Computer Corporation Fault tolerant memory
US6463550B1 (en) 1998-06-04 2002-10-08 Compaq Information Technologies Group, L.P. Computer system implementing fault detection and isolation using unique identification codes stored in non-volatile memory
US6282622B1 (en) * 1998-08-10 2001-08-28 Joseph Norman Morris System, method, and program for detecting and assuring DRAM arrays
US6564346B1 (en) 1999-12-07 2003-05-13 Infineon Technologies Richmond, Lp. Advanced bit fail map compression with fail signature analysis
US6842867B2 (en) * 2001-01-26 2005-01-11 Dell Products L.P. System and method for identifying memory modules having a failing or defective address
US6948094B2 (en) 2001-09-28 2005-09-20 Intel Corporation Method of correcting a machine check error
US8291176B2 (en) 2003-03-27 2012-10-16 Hewlett-Packard Development Company, L.P. Protection domain groups to isolate access to memory windows
US7251744B1 (en) 2004-01-21 2007-07-31 Advanced Micro Devices Inc. Memory check architecture and method for a multiprocessor computer system
CN101243417B (zh) * 2005-07-15 2011-05-04 松下电器产业株式会社 非易失性存储装置、存储控制器以及不良区域检测方法
CN100468349C (zh) * 2005-08-24 2009-03-11 英业达股份有限公司 存储器测试方法
US8344475B2 (en) * 2006-11-29 2013-01-01 Rambus Inc. Integrated circuit heating to effect in-situ annealing
US7945841B2 (en) 2006-12-06 2011-05-17 Intel Corporation System and method for continuous logging of correctable errors without rebooting
CN101741600B (zh) * 2008-11-27 2012-01-25 英业达股份有限公司 服务器系统与其记录装置
EP2510439B1 (en) 2009-12-08 2022-05-04 Hewlett Packard Enterprise Development LP Managing errors in a data processing system
CN102253879A (zh) * 2010-05-20 2011-11-23 英业达科技有限公司 一种服务器系统
US8463788B2 (en) * 2010-09-03 2013-06-11 Marvell World Trade Ltd. Balancing caching load in a peer-to-peer based network file system
TW201220317A (en) * 2010-11-12 2012-05-16 Hon Hai Prec Ind Co Ltd Memory error detection system and method
US8458514B2 (en) 2010-12-10 2013-06-04 Microsoft Corporation Memory management to accommodate non-maskable failures
US9117552B2 (en) * 2012-08-28 2015-08-25 Kingtiger Technology(Canada), Inc. Systems and methods for testing memory
TWI486761B (zh) * 2012-12-12 2015-06-01 英業達股份有限公司 機櫃伺服器系統及其檢測方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07182249A (ja) * 1993-12-24 1995-07-21 Fuji Film Micro Device Kk メモリカード
JPH0883218A (ja) * 1994-09-14 1996-03-26 Toshiba Corp 計算機システム
JPH10269150A (ja) * 1997-03-21 1998-10-09 Nec Corp メモリ初期化方法
JP2005234872A (ja) * 2004-02-19 2005-09-02 Seiko Epson Corp コンピュータ、コンピュータ起動方法、biosプログラムおよび情報記憶媒体
JP2006260289A (ja) * 2005-03-17 2006-09-28 Fujitsu Ltd ソフトエラー訂正方法、メモリ制御装置及びメモリシステム
WO2007077595A1 (ja) * 2005-12-28 2007-07-12 Fujitsu Limited メモリ制御方法、プログラム及び装置
JP2013502647A (ja) * 2009-08-21 2013-01-24 ラムバス・インコーポレーテッド インサイチュでのメモリのアニール
JP2012190064A (ja) * 2011-03-08 2012-10-04 Nec Corp 情報処理装置、メモリ管理方法、およびメモリ管理プログラム
JP2013109722A (ja) * 2011-11-24 2013-06-06 Toshiba Corp コンピュータ、コンピュータシステム、および障害情報管理方法

Also Published As

Publication number Publication date
CN106201769B (zh) 2019-02-01
JP6152148B2 (ja) 2017-06-21
TWI559132B (zh) 2016-11-21
EP3021223A1 (en) 2016-05-18
US9043638B1 (en) 2015-05-26
EP3021223B1 (en) 2017-10-25
CN106201769A (zh) 2016-12-07
TW201617867A (zh) 2016-05-16

Similar Documents

Publication Publication Date Title
JP6498230B2 (ja) フレキシブルなhdd/ssdストレージサポートのシステムおよび方法
JP6152148B2 (ja) メモリ障害許容率を増加する方法
JP6559842B2 (ja) マルチノードシステムファン制御スイッチ
JP6453965B2 (ja) Biosセットアップオプションを自動的に更新するシステム及び方法
JP6484316B2 (ja) ファームウェアを遠隔更新するシステム及び方法
JP6805116B2 (ja) Psuの待機電源が機能しない場合に動作可能なサーバシステム
JP6462034B2 (ja) ダウンストリームコンポーネンツに新鮮な空気を送る冷却システム
TWI584195B (zh) 伺服器系統中基於iSCSI的裸機OS映像部署及無磁碟啟動的方法
JP6608979B2 (ja) 電圧レギュレータセルフバーンインテストのための方法、システム、及び記憶媒体
TWI626537B (zh) 分析包裝後修復的紀錄與使用的方法及系統
JP6463814B2 (ja) ブートのハードウェア周波数を動的に最適化するシステム及び方法
JP2019030203A (ja) 高効率バッテリバックアップシステム
JP6515162B2 (ja) 電源ユニット(psu)管理
JP6231598B2 (ja) 電源供給ユニットのホールドタイムを延長するためのサーバシステム、方法、および、コンピュータ可読記憶媒体
US11425054B1 (en) User-configured multi-location service deployment and scaling
TWI637611B (zh) 使用wol的系統復原

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160913

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20161212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170213

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170523

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170526

R150 Certificate of patent or registration of utility model

Ref document number: 6152148

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250