JP2017204269A - フレキシブルなnvmeドライブ管理ソリューション - Google Patents

フレキシブルなnvmeドライブ管理ソリューション Download PDF

Info

Publication number
JP2017204269A
JP2017204269A JP2017081734A JP2017081734A JP2017204269A JP 2017204269 A JP2017204269 A JP 2017204269A JP 2017081734 A JP2017081734 A JP 2017081734A JP 2017081734 A JP2017081734 A JP 2017081734A JP 2017204269 A JP2017204269 A JP 2017204269A
Authority
JP
Japan
Prior art keywords
drive
drives
processor
controller
volatile memory
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
JP2017081734A
Other languages
English (en)
Other versions
JP6549632B2 (ja
Inventor
俊慶 余
Chun-Chin Yu
俊慶 余
舜宏 王
Shuen-Hung Wang
舜宏 王
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 JP2017204269A publication Critical patent/JP2017204269A/ja
Application granted granted Critical
Publication of JP6549632B2 publication Critical patent/JP6549632B2/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/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/325Display of status information by lamps or LED's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • G06F11/2092Techniques of failing over between control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Abstract

【課題】フレキシブルな NVMEドライブ管理ソリューションを提供する。
【解決手段】いくつかの実施態様において、フレキシブルな不揮発性メモリのエクスプレスドライブ管理システムは、第一ドライブレジスタと第二ドライブレジスタを有する第一コントローラー、第一シリアルバスを介して、第一ドライブレジスタと通信可能に結合される第一プロセッサ、および、第二シリアルバスを介して、第二ドライブレジスタに通信可能に結合される第二プロセッサ、を有する。システムは、さらに、第一ドライブレジスタを介して、第一プロセッサに通信可能に結合される不揮発性メモリエクスプレスドライブの第一のセット、および、第二ドライブレジスタと第二シリアルバスを介して、第二プロセッサと通信可能に結合される不揮発性メモリエクスプレスドライブの第二のセットを有する。
【選択図】図2

Description

本発明は、ハードディスクドライブ (HDD)状態表示器となる発光ダイオード(LED)、および、Non Volatile Memory Express (NVMe)ドライブに関するものである。とくに、発明の主題は、追加のLED制御ラインとドライブのトポロジー管理が不要で、複数のLEDの時間管理を行うコントローラーに関するものである。
不揮発性メモリエクスプレス (NVMe)は、PCIe規格を介して接続された半導体ドライブ(SSDs)などの不揮発性ストレージ媒体の論理デバイスインターフェース仕様である。NVMe技術は、不揮発性メモリ装置(たとえば、SSDs)の速度をPCIeによりサポートされる高帯域幅のバス通信を用いて、ストレージパフォーマンス、容量、および、信頼度において著しい改善を提供する。当然のことながら、NVMe 技術の応用は、既に、サーバ、および、データセンター環境中で安定して増加して、これらの展開において、高い性能要求を達成している。
大規模展開は、付加能力に用いる多くの NVMeドライブを含み得る。各NVMeドライブは、通常、特定のプロセッサに割り当てられ、特定のプロセッサは、NVMeドライブを管理、および、監視する。プロセッサは、複数のNVMeドライブに割り当てられることができ、それらの NVMeドライブを管理、および、監視する。プロセッサと複数のNVMeドライブを接続するため、通常、入力/出力拡張チップが設置され、各拡張チップは、NVMeドライブを特定のプロセッサと接続する。プロセッサに割り当てられる各NVMeドライブは、プロセッサに接続される個別の入力/出力拡張チップを必要とし、且つ、各 NVMeドライブは、追加の入力/出力拡張チップを設置する必要がある。したがって、多数のNVMeドライブを有する大規模展開は、NVMeドライブと対応するプロセッサを接続する大量の入力/出力拡張チップを必要とする。その結果、現在のソリューションはコストが高くなり、フレキシブル性がなく、煩雑である。
本発明は、フレキシブルな NVMEドライブ管理ソリューションを提供し、上述の問題を解決することを目的とする。
本発明の追加特徴、および、長所が本明細書で説明され、本発明の特徴、および、長所の一部は、本明細書中の描写から明らかになる、あるいは、本明細書中で開示される理論によって理解することができる。本発明の特徴、および、長所は、添付される請求項中で特別に描写される素子、および、組み合わせの装置により実現、および、獲得される。本発明のこれら、および、その他の特徴は、以下の記述および請求項から明らかになる、あるいは、本明細書で開示される理論により理解できる。
本発明は、不揮発性メモリエクスプレス (NVMe)ドライブを効果的に管理する。たとえば、本発明は、NVMe トポロジーを提供し、複数のNVMeドライブが、レジスタを介して、個別のプロセッサに接続できるようにして、複数の入力/出力拡張チップを必要としない。複数のプロセッサは複数のレジスタに接続され、各レジスタは、一群の NVMeドライブを処理することができる。コントローラーは、ドライブレジスタに接続されて、NVMeドライブおよび複数のプロセッサの群と通信する。その後、コントローラーは、各種群のNVMeドライブを管理、および、監視することができる。コントローラーは、通信障害を検出するとともに、フェイルオーバーパスを起動して、NVMeドライブとプロセッサ間のパスに障害がある時、一群の NVMeドライブを異なるプロセッサと接続する。
フレキシブルな NVMeドライブ管理の技術を開示する。いくつかの例において、システムは、第一ドライブレジスタと第二ドライブレジスタを有する第一コントローラー、第一バスを介して、第一ドライブレジスタに通信可能に結合された第一プロセッサ、および、第二バスを介して、第二ドライブレジスタに通信可能に結合された第二プロセッサを有する。さらに、システムは、第一ドライブレジスタを介して、第一プロセッサと通信可能に結合されたNVMeドライブの第一のセット、および、第二ドライブレジスタと第二シリアルバスを介して、第二プロセッサと通信可能に結合されたNVMeドライブの第二のセットを有する。
システムは、さらに、第二コントローラー、たとえば、第一ドライブレジスタ、および、第二ドライブレジスタに通信可能に結合される基板管理コントローラー (BMC)を有する。第二コントローラーは、ひとつ、あるいは、それ以上のシリアルバスを介して、第一ドライブレジスタ、および、第二ドライブレジスタに結合される。第二コントローラーが設置されて、NVMeドライブの第一のセット、および、NVMeドライブの第二のセットに関する状態情報を決定、記録、および/または、維持する。第二コントローラーは、第一ドライブレジスタ、および、第二ドライブレジスタと通信して、NVMeドライブの第一のセット、および、第二のセットの状態を決定する。たとえば、第二コントローラーは、第一、および、第二ドライブレジスタからステータス信号を受信/第二ドライブレジスタにステータス信号を送信することができる。第二コントローラーは、さらに、制御信号を、第一、および、第二ドライブレジスタに送信して、第一、および、第二ドライブレジスタ、および/または、 NVMeドライブの第一のセット、および、第二のセットを制御することができる。
第一プロセッサが設置されて、第一ドライブレジスタと通信して、 NVMeドライブの第一のセットに関する状態情報を獲得する、および/または、NVMeドライブの第一のセットを制御、および、管理する。さらに、第二プロセッサが設置されて、第二ドライブレジスタと通信して、 NVMeドライブの第二のセットに関する状態情報を獲得する、および/または、NVMeドライブの第二のセットを制御、および、管理する。
第一プロセッサは、さらに、シリアルバスを介して、第二ドライブレジスタと通信可能に接続されて、フェイルオーバーする。同様に、第二プロセッサは、シリアルバスを介して、第一ドライブレジスタと通信可能に接続されて、フェイルオーバーする。第二コントローラーは、第一プロセッサと第一ドライブレジスタ間のリンク、および、第二プロセッサと第二ドライブレジスタ間のリンクを監視して、障害の事象中に、フェイルオーバーパスを提供する。たとえば、第二コントローラーは、第一プロセッサと第一レジスタ間の通信パスの故障を検出するとともに、第二プロセッサをトリガーして、第一ドライブレジスタと通信して、NVMeドライブの第一のセットの管理と監視において、第一プロセッサの役割を代替する
システムは、さらに、第二コントローラー、および、NVMeドライブの第一のセット、あるいは、NVMeドライブの第二のセットと関連する一つ以上の NVMeドライブと通信可能に結合するラッチロジック回路を有する。たとえば、NVMeドライブは、ラッチロジック回路上の個別のピンにより、ラッチロジック回路に結合される。ピンは、対応する電力有効ビットをNVMeドライブに出力して、NVMeドライブに電力を供給するように構成することができる。NVMeドライブにより、第二コントローラー、および/または、ラッチロジック回路に送信される存在ビットに対応して、電力有効ビットがトリガーされる。
ラッチロジック回路は、さらに、対応する入力ピンを有し、対応する入力ピンは、第二コントローラーから、電力イネーブルビットを受信し、且つ、NVMeドライブに送信されて、NVMeドライブに電力を供給する。第二コントローラー は、ラッチロジック回路の対応する入力ピンと通信可能に結合する対応する存在ピンを有する。対応する存在ピンは、NVMeドライブから存在ビットを受信するとともに、一つ以上の電力有効ビットを、ラッチロジック回路の対応する入力ピンに送信し、且つ、NVMeドライブに送信されて、NVMeドライブに電力供給することができる多機能ピンとして機能するように構成することができる。
本発明の上述の記載、および、その他の長所や特徴は、参考図面中の特定の実施形態により、更によく理解することができる。ここで示される図面は、本発明の実施例であり、本発明の範囲を限定するものではないことが理解できる。本発明の原理は、図面を使用することによって、付加特徴、および、詳細により、記述および説明される。
従来のLEDコントローラーを示す図である。 本発明の実施態様によるLEDコントローラーを示す図である。 本発明の実施態様によるLEDコントローラーのタイミング図である。 本発明の実施態様によるカスケード接続されたLEDコントローラーを示す図である。 本発明の実施態様によるカスケード接続されたLEDコントローラーのタイミング図である。 本発明の実施態様によるLEDコントローラーの時分割方法のフローチャートである。 本発明の実施態様によるドライブ管理のシステムを示す図である。 本発明の実施態様によるドライブ電力制御管理のトポロジーを示す図である。 不揮発性メモリエクスプレスドライブの管理方法のフローチャートである。 本発明の実施態様によるLEDコントローラーとドライブ管理システムの組み合わせを示す図である。 本発明の実施態様による可能なシステムの実施態様を示す図である。 本発明の実施態様による可能なシステムの実施態様を示す図である。
本発明の各種実施例は、以下で詳細に討論される。本発明の各種特定の実施態様の描写において、これらの描写が例示であることが理解できる。当業者なら理解できるように、本発明の精神を逸脱しない限り、その他の素子と配置を用いることができる。たとえば、本発明の明細書は、従来の方法、製造工程、素子、回路、および、ネットワークに対し詳細な描写をしておらず、本発明の内容が不明瞭になるのを防止している。
理解できることは、本明細書では、「第一」、「第二」等の用語を使用して各素子を描写しているが、これらの素子は、これらの用語に制限されない。これらの用語は、各素子を区別するために用いられる。たとえば、本発明の精神を逸脱しない条件下で、第一センサーは、第二センサーと呼ばれ、同様に、第二センサーは、第一センサーと呼ばれる。
本明細書で使用される技術用語は、特定の実施例を描写し、且つ、本発明に対し制限を生じない。明細書、および、請求項で使用される「一」、および、「前記」という用語は、上下文にすでにはっきりとした定義がない限り、複数の意味を含む。理解できることは、本明細書で使用される用語「および/または」は、列挙される相関素子の全ての可能な組み合わせに用いられる。理解できることは、明細書で使用される用語「含む」、および/または、「有する」は、特徴、整数、工程、操作、素子、および/または、構成要素の存在に用いられるが、一つ以上のその他の特徴、整数、工程、操作、素子、構成要素、および/または、それらの群の存在、あるいは、付加特性を除外しない。
本明細書で使用される用語 “…である場合” は、文脈に基づいて、「…であるとき」や「一旦」、あるいは、「決定に対応して」という意味であると解釈される。同様に、文脈にしたがって、「判断される場合」や「状況や事象が検出される場合」は、「一旦判断される」「判断に対応する」「状況や事象が一旦検出される」、あるいは、「条件や事象の検出に対応して」であると解釈される。
本明細書で使用される用語「ドライブ」は、ハードディスクドライブ (HDD)、半導体ドライブ (SSD)、あるいは、電子データの保存に用いられるその他の任意のタイプの物理ハードウェア装置を意味すると解釈される。
本発明は、ドライブの大量のLEDを制御することができるLEDコントローラー、たとえば、時分割ハードディスクドライブ発光ダイオードコントローラーの当該技術における必要性に対処する。従来のコントローラーは、各ドライブの各LEDに対し、独立した制御ラインを必要とする。新しい時分割コントローラーは、周期ごとに、特定のドライブ (および、3個のLED)を選択する複数の選択ラインとともに、各ドライブの3個のLED (たとえば、アクティビティ、ロケート、フェイル)に対し、3個の制御ラインを必要とする。新しい時分割コントローラーは、少ない数量の必要な制御ラインに基づいて、より多くのLEDを制御するように構成することができる。
本発明は、さらに、ドライブ (たとえば、不揮発性メモリエクスプレスNVMeドライブ等)の管理の当該技術における必要性に対処する。実施例、および、変形例を含むドライブの管理の詳細が記述される。これらの変形は、明細書中、各種実施例によって記述される。
図2は、大量のLEDを制御する時分割LEDコントローラーの一例を示す図である。コントローラー200は入力202を有する。入力202は、直列の汎用入力/出力 (SGPIO)バスに結合することができる。入力202は、SGPIO バスを介して、ビットのシーケンスを受信するように構成することができる。ビットのシーケンスは、アクティビティ、ロケート、および、フェイルに関連する少なくとも3ビットのデータを有することができる。たとえば、アクティビティLEDが発光するとき、アクティビティに関連するビットは、バイナリーハイ (つまり、1)である。一方、アクティビティLEDが発光しないとき、アクティビティに関連するビットは、バイナリーロウ (つまり、0)である。ビットのシーケンスは、さらに、ドライブの選択に関連する一つ以上のビットのデータを有する。ドライブの選択に関連するビットは、指数関数的に、コントローラー200に接続されるドライブの数量に比例する (つまり、2n = x、ここで、x は、コントローラーに接続されるドライブの数量に等しい)。たとえば、4個のドライブが接続されるとき、選択のために、少なくとも二個のビットが用いられなければならない。8個のドライブが接続されるとき、選択のために、少なくとも3個のビットが用いられなければならない。
コントローラー200は、さらに、複数のドライブ204A、204B、…204N (まとめて 「204」)に結合することができ、複数のドライブは、それぞれ、アクティビティLED206A、206B、…206N (まとめて「206」)、ロケートLED208A、208B、…208N (まとめて「208」)、および、フェイルLED210A、210B、…210N (まとめて「210」)を有することができる。コントローラー200は、アクティビティ制御ライン212、および、複数の選択ライン218A、218B、…218N(まとめて「218」)のひとつにより、各ドライブ204のアクティビティLED206に結合することができる。各選択ライン218は、特定のドライブ204に対応する。たとえば、選択ライン218Aはドライブ204A (および、LED206A、208A、210A)に対応し、選択ライン218Bは、ドライブ204B (および、LED206B、208B、210B)等に対応する。
いくつかの例において、コントローラー200は、SGPIO バスを介して、ドライブコントローラーから、6ビットシーケンスを受信するように構成することができる。3ビット(たとえば、最上位)を選択されたドライブ204の3個のLED206、208、210を設定するために予約することができる。その他の3ビット (たとえば、最下位)をドライブ204のひとつの選択に用いることができる。たとえば、ビットのシーケンスは、100001である。シーケンスの最初の3ビット(つまり、100)はLEDに対応し、ここで、第一ビットがバイナリーハイ (つまり、1)であるので、アクティビティLED206が発光する。残りのビットはバイナリーロウ (つまり、0)であるので、ロケート、および、フェイルLEDは発光しない。その他の3個のビット (つまり、001)は、ドライブ204B (つまり、第二ドライブ)の選択に対応する。よって、アクティビティLED204Bは発光する。バイナリーハイを示すアクティビティビットは、ドライブ中にアクティビティがあることを示す。バイナリーロウを示すアクティビティビットは、ドライブ中にアクティビティがないことを示す。バイナリーハイを示すロケートビットは、ユーザーが、ドライブの位置を特定しようとしていることを示す。バイナリーハイを示すフェイルビットは、ドライブでの故障を示す。ドライブ故障は、さらに、フェイルLEDで表示されるパターンに基づいて決定される。
図3は、一定の期間におけるビットシーケンスを受信するコントローラーのタイミング図である。タイミング図300は期間320で表示することができる。この例において、期間320は、8周期である (つまり、コントローラーで受信される8個のシーケンスビット)。タイミング図300は、それぞれ、行322、324、326により、各制御ライン212、214、216を、バイナリーハイ (つまり、1)、あるいは、バイナリーロウ (つまり、0)として示すことができる。タイミング図300は、それぞれ、行328、330、332により、選択ライン218を、バイナリーハイ (つまり、1) 、あるいは、バイナリーロウ (つまり、0)として示すことができる。第一時間周期での例では、コントローラー200は、ビットのシーケンスを受信する。ビットのシーケンスは、選択ライン218A (たとえば、ドライブ204Aに対応する)のバイナリーハイ (つまり、1)に対応し、タイミング図は、対応する行328をバイナリーハイとして示す。残りの選択の行330、332は、バイナリーロウとして示される。また、第一時間周期中、ビットのシーケンスは、アクティビティ制御ライン212、および、フェイル制御ライン216ではバイナリーハイ (つまり、1)で、且つ、タイミング図は、対応する行322、および、326がバイナリーハイ (つまり、1)を有することを示すことができる。ビットのシーケンスは、ロケート制御ライン214ではバイナリーロウ (つまり、0)であり、且つ、タイミング図は、対応する行324をバイナリーロウとして示すことができる。よって、第一時間周期中、ドライブ204AのアクティビティLED206A、および、フェイルLED210Aは、パターン (たとえば、発光、フラッシュ、異なる色等)を表示する。
図4は、拡張数量のLEDの制御を有効にするカスケードされた配置を示す図である。カスケードされた配置は二個以上のLEDコントローラーを有する。コントローラー200 (図2に示される)は、デバイスアドレス入力434Aも有することができる。デバイスアドレス入力434Aは、デバイスアドレス (たとえば、0x0, 0x1等)を受信するように構成することができる。デバイスアドレスは、コントローラーを、ドライブのサブセットに割り当てることができる。たとえば、コントローラー200は、デバイスアドレス入力434Aで、デバイスアドレス 0x0を受信することができる。デバイスアドレス0x0の受信に応答して、コントローラー200は、サブセット436A中の8個のドライブ204を制御するように構成することができる。
カスケードされた配置は、また、コントローラー400を有することができる。コントローラー400は、コントローラー200 (図2に示される)の類似特徴を有する。さらに、コントローラー400は、ドライブのサブセットを割り当てるためにデバイスアドレス入力434Nで、デバイスアドレスを受信するように構成することができる。たとえば、コントローラー400は、デバイスアドレス入力434Nで、デバイスアドレス 0x1を受信することができる。デバイスアドレス 0x1の受信に応答して、コントローラー200は、サブセット436Aと異なるサブセット436Nの8個のドライブ204を制御するように構成することができる。
図5は、SGPIO バス、および、デバイスアドレスを介して受信されるビットシーケンスにより、複数のコントローラーのうちのひとつにより制御されるドライブのサブセットの選択を説明するタイミング図である。タイミング図500は、期間520中で表示される。タイミング図500は、行522により、ドライブのサブセットの選択を、各周期(つまり、入力202、402を介して受信されたビットシーケンス)で、バイナリーハイ (つまり、1)として表すことができる。たとえば、 第一時間周期で、コントローラー200、400は、SGPIO バスを介して、入力端202、402で、ビットシーケンスを受信することができる。受信されたビットのシーケンスとデバイスアドレスに基づいて、ドライブのサブセットが決定される。たとえば、第一周期で、第一サブセット436Aが決定され、コントローラー200が、受信されたデバイスアドレスに基づいて、判断するとき、そのコントローラー200は、ビットのシーケンスが関連するドライブのサブセット(たとえば、436A)を制御する。よって、行522は、サブセット436Aではバイナリーハイ (つまり、1)である。
図6に示される方法は、方法を実施するための様々な方法があるので、一例として示される。このほか、例示的な方法は、特定の工程順序で表示されているが、当業者なら、図6に示される内容と工程は、本発明の技術特徴を達成できる任意の工程順序によって実行でき、且つ、図6より少ない、あるいは、多い工程を含むことができることを理解できる。
図6に示される各工程は、例示的方法で実行される一つ以上の処理、方法、あるいは、サブルーティンを表す。図6で例示される工程は、図2で例示されるシステムで実行することができる。図6で例示されるフローチャートは、少なくとも、図1に示されるコントローラー200に関連、および、それを参考にして記述される。
方法600は工程610で開始される。工程610において、コントローラー200は、シリアル汎用入力/出力バスを介して、入力端202で、ビットのシーケンスを受信することができる。たとえば、ビットのシーケンスは、アクティビティビット、ロケートビット、フェイルビット、および、一つ以上の選択ビットを有することができる。ビットのシーケンスがすでに受信されているとき、方法600は工程620に進むことができる。
工程620において、複数の制御ライン212、214、216、および、複数の選択ライン218の一つの選択ラインは、ビットのシーケンスに基づいて設定することができる。制御ライン、および、選択ラインは、複数のドライブに接続される複数のLED206、208、210に接続することができる。たとえば、アクティビティビットがバイナリーハイであるとともに、ロケートビットとフェイルビットがバイナリーロウであるとき、制御ライン212はバイナリーハイ信号を有することができ、制御ライン214、216は、バイナリーロウ信号を有することができる。各選択ラインは、バイナリーシーケンス (たとえば、00, 01, 10, 001, 011等)を割り当てることができる。選択ビットが、割り当てられたバイナリーシーケンスのひとつに対応するとき、対応する選択ラインはハイに設定することができる。たとえば、選択ライン218Aが 00を割り当てられ、且つ、選択ビットが 00であるとき、選択ライン218Aは、バイナリーハイに設定することができる。制御ライン、および、選択ラインが設定されるとき、方法600は工程630に進むことができる。
工程630において、LED206、208、210のサブセットは、制御ラインの設定に基づいて、パターンを表示することができる。たとえば、アクティビティ制御ライン212、および、選択ライン218Aがバイナリーハイに設定されるとき、ドライブ204AのLED206Aは、パターン (たとえば、発光、フラッシュ、異なる色等)を表示する。LEDのサブセットがパターンを表示するとき、方法600は終了することができる。
図7は、ドライブ管理システム700の一例を示す図である。コントローラー702は、ドライブ(たとえば、NVMeドライブ)を管理するために用いることができる。コントローラー702は、ドライブレジスタ704、706を有することができる。ドライブレジスタ704、706は、ドライブ718−724と通信して、ドライブ718−724を制御、および/または、監視するように構成することができる。たとえば、ドライブレジスタ704は、ドライブの群714に通信可能に結合することができ、ドライブレジスタ706は、ドライブの群716と通信可能に結合することができる。ドライブレジスタ704は、状態情報、あるいは、状況を、ドライブの群714から得るとともに、ドライブレジスタ706は、ドライブの群716から、状態情報、あるいは、状況を得ることができる。
たとえば、ドライブレジスタ704は、ドライブの群714から存在信号を受信することができる。ドライブレジスタ704は、さらに、制御信号をドライブの群714に送信することができる。同様に、ドライブレジスタ706は、ドライブの群716から存在信号を受信するとともに、制御信号をドライブの群716に送信することができる。
各ドライブレジスタは、複数のドライブをサポートするために複数の入力/出力拡張チップを設置することなしに、複数のドライブを接続して、複数のドライブを監視、および、制御することができる。さらに、ドライブレジスタ704、706はプロセッサ708、710に接続することができ、ドライブの群714、716から状態情報を伝達、あるいは、送信する。たとえば、ドライブレジスタ704は、通信バス726を介して、プロセッサ708に接続することができ、ドライブレジスタ706は、通信バス728を介して、プロセッサ710に接続することができる。
プロセッサ708は、ドライブの群714を監視、および、管理するように構成され、プロセッサ710は、ドライブの群716を監視、および、管理するように構成される。たとえば、プロセッサ708は、ドライブレジスタ704と通信することができ、ドライブの群714に関する状態情報を獲得し、制御信号をドライブの群714に送信する。プロセッサ710は、ドライブレジスタ706と通信することができ、ドライブの群716に関する状態情報を獲得し、制御信号をドライブの群716に送信する。したがって、プロセッサ708は、ドライブレジスタ704を介して、ドライブの群714から、存在信号を受信するとともに、ドライブの群714に制御信号を送信し、および、プロセッサ710は、ドライブレジスタ706を介して、ドライブの群716から存在信号を受信するとともに、制御信号をドライブの群716に送信する。
フェイルオーバーを提供するため、ドライブレジスタ704も、通信バス734を介してプロセッサ710に接続することができ、ドライブレジスタ706は、通信バス736を介して、プロセッサ708に接続することができる。よって、プロセッサ708、あるいは、プロセッサ708とドライブレジスタ704間の通信パス726に障害がある場合、プロセッサ710は、通信バス734を介して、ドライブレジスタ704と通信することができ、ドライブの群714への監視、および/または、 管理操作を継続する。同様に、プロセッサ710、あるいは、プロセッサ710とドライブレジスタ706間の通信バス728に障害がある場合、プロセッサ708は、通信バス736を介して、ドライブレジスタ706と通信することができ、ドライブの群716への監視、および/または、管理操作を継続する。
さらに、コントローラー712は、ドライブレジスタ704、706と結合することができ、ドライブの群714、716中のドライブ718−724を監視、および/または、管理する。たとえば、コントローラー712は、通信バス732を介して、ドライブレジスタ704と通信するとともに、通信バス730を介して、ドライブレジスタ706と通信するこができる。コントローラー712は、ドライブレジスタ704、706からドライブ718−724に関する存在、および、状態情報を獲得するとともに、管理及び実行のための状態情報を維持、あるいは、登録することができる。コントローラー712は、さらに、管理信号をドライブレジスタ704、706、および/または、プロセッサ708、710に送信して、ドライブ718―724を管理することができる。たとえば、コントローラー712は、制御信号を、ドライブレジスタ704、706、および/または、プロセッサ708、710に送信して、ドライブ718−724、および、ホットプラグ操作を管理することができる。
コントローラー712は、さらに、プロセッサ708、710からドライブレジスタ704、706への通信を監視して、任意の通信障害を検出することができる。たとえば、コントローラー712は、通信バス726、728を監視して、通信バス726、728の任意のエラーや問題を検出する。いくつかの例において、コントローラー712は、バス738を介して、プロセッサ708、710に接続して、プロセッサ708、710からドライブレジスタ704、706への通信を監視して、任意の通信障害を検出することができる。
通信バス726、728に対し検出された障害やエラーに対応して、コントローラー712は、ドライブの群714、716の管理と監視操作のフェイルオーバーを提供する。たとえば、プロセッサ708は、通信バス726を介して、ドライブレジスタ704と通信して、ドライブの群714を監視、および/または、管理することができる。コントローラー712が、通信バス726、および/または、プロセッサ708についての問題を検出する場合、コントローラー712は、プロセッサ710、および/または、ドライブレジスタ704に、フェイルオーバー通信バス734を介して、ドライブの群714に関する監視と管理情報を共有するように指示することができる。よって、コントローラー712は、ドライブの群714の監視と管理を、プロセッサ708からプロセッサ710に切り替えることができる。
代替的に、コントローラー712が、通信バス728、および/または、プロセッサ710についての問題を検出する場合、プロセッサ708、および/または、ドライブレジスタ706に、フェイルオーバー通信バス736を介して、ドライブの群716に関する監視と管理情報を共有するように指示することができる。よって、コントローラー712は、ドライブの群716の監視と管理を、プロセッサ710からプロセッサ708に切り替えることができる。
コントローラー712は、マイクロコントローラー、あるいは、プロセッサ (たとえば、BMC等)であることができる。さらに、通信バス726、728、730、734、736は、任意のタイプの通信バス、たとえば、シリアルバス (たとえば、内部集積回路バス等)であることができる。さらに、当業者なら分かるように、プロセッサ708、710は、同じ、あるいは、別々のコンピューティングデバイスの一部である。たとえば、プロセッサ708、710は、単一サーバ、あるいは、異なるサーバに存在することができる。
図7のコントローラー、プロセッサ、ドライブレジスタ、および/または、ドライブ (および、それらの群)の数量は説明の目的であり、限定されない例である。当業者なら理解できるように、その他の例は、より多い、あるいは、少ないコントローラー、プロセッサ、ドライブレジスタ、ドライブ、および/または、ドライブの群を有することができる。
図8は、電力制御管理の例示的なトポロジー800を示す図である。コントローラー702は、ラッチロジック回路802と通信して、電力制御管理をドライブ718−720に提供することができる。ラッチロジック回路802は、状態、あるいは、電力情報、たとえば、ドライブ718−720の存在、あるいは、電力状態を保存することができる。ラッチロジック回路802は、さらに、インターフェース824−830 (たとえば、ピン)を有して、コントローラー702から電力イネーブル信号816−818を受信するとともに、電力イネーブル信号820−822をドライブ718−720に送信することができる。
コントローラー702は、多機能インターフェース808−810を有して、ドライブ718−720から存在信号を受信するとともに、ドライブ718−720に電力イネーブル信号を送信することができる。たとえば、コントローラー702は、多機能インターフェース808で、NVMe718から、存在信号806、および、多機能インターフェース810で、ドライブ720から、存在信号804を受信することができる。多機能インターフェース808−810はそれぞれ、存在および電力イネーブルピン等の多機能ピンにすることができる。
コントローラー702は、多機能インターフェース808−810で受信される存在信号804−806に基づいて、ドライブ718、720の存在状態を決定することができる。コントローラー702は、そして、多機能インターフェース808−810を介して、電力イネーブル信号816−818を、ラッチロジック回路802に送信することができる。ラッチロジック回路802は、インターフェース824−826を介して、電力イネーブル信号816−818を受信するとともに、インターフェース828−830を介して、電力イネーブル信号820−822を、ドライブ718−720に送信する。電力イネーブル信号820−822は、ドライブ718−720に電力供給することができる。
コントローラー702は、さらに、ラッチクロック812を有することができる。ラッチクロック812は、クロック、あるいは、同期信号814をラッチロジック回路802に送信することができる。ラッチロジック回路802は、クロック、あるいは、同期信号814を用いて、電力イネーブル信号820−822を、ドライブ718−720にクロック(clocking)、同期化(synchronizing)、あるいは、計時(timing)することができる。
図9に示される方法は、方法を実施するための様々な方法があるので、一例として示される。このほか、例示的な方法は、特定の工程順序で表示されているが、当業者なら、図9に示される内容と工程は、本発明の技術特徴を達成できる任意の工程順序によって実行でき、且つ、図9より少ない、あるいは、多い工程を含むことができることを理解できる。
図9中に示される各工程は、例示的な方法で実行される一つ以上の処理、方法、あるいは、サブルーティンを表す。図9で例示される工程は、図7で例示されるシステムで実行することができる。図9で例示されるフローチャートは、少なくとも、図7に示されるシステム700に関連、および、それを参考にして記述される。
方法900は工程902から開始され、コントローラー712は、プロセッサ708とドライブレジスタ704間のバス726を監視する。ドライブレジスタ704は、ドライブ718−720含むドライブの群714と通信可能に結合されて、ドライブの群714と、ステータス、および/または、制御信号の送受信を行うことができる。ドライブレジスタ704は、ドライブの群714からプロセッサ708に信号を送信するとともに、プロセッサ708から信号を受信して、ドライブの群714中の特定のドライブにそれらの信号を伝えることができる。プロセッサ708は、バス726を介して、ドライブレジスタ704とこのような信号を交換することにより、ドライブの群714を管理(たとえば、監視、制御、電力供給等)することができる。たとえば、プロセッサ708は、バス726を介して、ドライブレジスタ704から、ドライブの群714に関する状態情報を受信することができる。プロセッサ708は、ドライブの群714の状態情報を監視、および/または、維持し、ドライブの群714中の特定のドライブに、信号、あるいは、命令を送信する。コントローラーがすでにバスを監視しているとき、方法900は、工程904に進むことができる。
工程904において、コントローラー712は、プロセッサ708とレジスタ704間の通信障害を検出する。通信障害は、バス726、および/または、プロセッサ708の障害であり、これは、バス726を介するプロセッサ708との通信を阻害する。たとえば、通信障害は、バス726の問題 (たとえば、接続中断、故障等)により生じる。別の例では、通信障害は、プロセッサ708に関する問題である。コントローラーがすでに通信障害を検出しているとき、方法900は工程906に進むことができる。
工程906において、および、通信障害に対応して、コントローラー712は、プロセッサ710を割り当て、バス734、および、ドライブレジスタ704を介して、ドライブの群714を管理(たとえば、監視、制御、電力供給等)する。たとえば、コントローラー712は、ドライブの群714の監視操作の制御を、プロセッサ708からプロセッサ710に切り替えることができる。よって、コントローラー712は、ドライブの群714の監視を起動して、プロセッサ710によりプロセッサ708を代替する。ドライブレジスタ704は、その後、ドライブの群714中のドライブ718−720に関連する信号を監視、および/または、制御するプロセッサ710と通信する。
ドライブレジスタ704、および、プロセッサ710は、バス734を介して通信し、プロセッサ708と通信できないとき、ドライブレジスタ704に用いるフェイルオーバーパスを提供して、プロセッサ710と、存在、制御、および/または、電力信号を伝達することができる。プロセッサ710は、そして、ドライブの群714の存在、あるいは、状態情報を、ドライブレジスタ704から獲得するとともに、バス734、および、ドライブレジスタ704を介して、信号(たとえば、制御、電力供給等)をドライブの群714に送信する。
コントローラー712は、さらに、あるいは、代わりに、プロセッサ710に関連する任意の通信故障を検出することができる。たとえば、ドライブレジスタ706は、ドライブの群716中のドライブ722−724に結合され、ドライブ722−724と、状態、および/または、制御情報 (たとえば、存在、および/または、制御信号)を通信する。さらに、プロセッサ710は、ドライブレジスタ706と通信して、群716中のドライブ722−724に関する状態情報を監視、および、維持することができる。プロセッサ710、および、ドライブレジスタ706は、バス728を介して、このような情報を伝達する。コントローラー712は、プロセッサ710、および/または、バス728を監視して、ドライブレジスタ706がプロセッサ710と通信可能かどうか判断する。ドライブレジスタ706がプロセッサ710と通信できない場合、コントローラー712は、このような通信障害を検出し、対応して、ドライブの群716の管理 (たとえば、監視、制御等)操作の制御を、プロセッサ710からプロセッサ708に切り替えることができる。
よって、コントローラー712は、ドライブの群716の管理を起動して、プロセッサ708によりプロセッサ710を代替することができる。ドライブレジスタ706は、そして、プロセッサ708と通信して、ドライブの群716中のドライブ722−724を監視することができる。ドライブレジスタ706、および、プロセッサ708は、バス736を介して通信して、ドライブレジスタ706のフェイルオーバーパスを提供して、プロセッサ710と通信できないとき、プロセッサ708と、存在、制御、および/または、電力信号を伝達することができる。プロセッサ708は、そして、ドライブレジスタ706から、ドライブの群716に関する存在、あるいは、状態情報を獲得するとともに、バス736とドライブレジスタ706から、制御信号をドライブの群716に送信することができる。
したがって、ドライブ管理システム、たとえば、システム700において、コントローラー712は、プロセッサとドライブレジスタ間の通信障害を検出することができる。コントローラー712が、ドライブの群に関連するプロセッサとドライブレジスタ間の通信障害(たとえば、ドライブの監視、および/または、管理)を検出するとき、コントローラー712は、ドライブレジスタを起動して、フェイルオーバーパスを介して、異なるプロセッサと通信することができる。ドライブレジスタは、そして、フェイルオーバーパスを介して、異なるプロセッサと、ドライブの群のステータス、および/または、制御情報を交換する。よって、異なるプロセッサは、フェイルオーバーパスを介して、ドライブレジスタと通信して、ドライブの群を監視、および/または、管理する。コントローラーがすでにドライブの群を管理するプロセスを割り当てたとき、方法900は終了することができる。
図10は、例示的な、LEDコントローラー、および、ドライブ管理システムの組み合わせシステム1000を示す図である。図10に示される構成要素は、組み合わせシステム1000を論証するために、簡潔に表示している。図10の構成要素は、さらに、前述の実施例にも示される (たとえば、図2中のLEDコントローラー200、図7のコントローラー702とドライブレジスタ704、706)。図示されない、あるいは、省略される構成要素は、その構成要素が結合システム1000 (たとえば、ドライブレジスタ706)に含むことができない、および、含まないことを意味するものではない。
組み合わせシステム1000は、LEDコントローラー200を有し、複数のLED(206、208、および、210)を制御するように構成することができる。LEDコントローラー200の詳細な操作が図2に示される。組み合わせシステム1000は、さらに、ドライブ1040 (たとえば、ドライブ204、ドライブ718−724、ドライブの群714−716等)を有する。ドライブ1040は、3個のLED (206、208、および、210)を有する単一ドライブとして示されているが、ドライブ1040は、図2と図7に示される複数のディスクドライブ (ドライブ204、ドライブ718…724等)を単に表すものである。
組み合わせシステム1000は、コントローラー702を有して、ドライブ1040を管理することができる。コントローラー702は、一つ以上のドライブレジスタ (704、706)を有することができる。ドライブレジスタ704、706は、ドライブ1040と通信して、ドライブ1040を制御、および/または、監視するように構成することができる。コントローラー702、および、ドライブレジスタ704、706の詳細な操作は図7に示される。
組み合わせシステム1000は、一つ以上のプロセッサ (708、710)を有することができる。プロセッサ (708、710)は、コントローラー702のドライブレジスタ (704、706)から、ドライブ1040に関する状態情報を獲得することができる。状態情報は、ドライブ1040のアクティビティ、ロケート、および、フェイル状態を有する。状態情報の受信に応答して、プロセッサ (708、710)は、ドライブ1040の状態情報が、アクティビティ、ロケート 、および/または、フェイル状態に対応するかどうか判断する。プロセッサ (708、710)が、状態情報が、ドライブ1040のアクティビティ、ロケート、および/または、フェイル状態に対応すると判断するとき、プロセッサ (708、710)は、ビットのシーケンスを、LEDコントローラー200の入力202に送信する。LEDコントローラー200は、その後、図2の相関内容のように、ドライブ1040の状態情報に対応して、ドライブ1040のLED(206、208、および、210)を発光させる。
組み合わせシステム1000は、以下の非限定の例により、最もよく示される。この例において、ドライブ1040が故障する。ドライブレジスタ704はドライブ1040を監視する。ドライブレジスタ704は、ドライブ1040の状態情報を獲得することができ、状態情報は、ドライブ1040が故障していることを示す。ドライブ1040の故障を含む状態情報の獲得に応答して、コントローラー702は状態情報をプロセッサ708に送信する。プロセッサ708は、状態情報に基づいて、ドライブ1040がすでに故障していると判断することができる。プロセッサ708は、その後、ビットのシーケンスを生成する。ビットのシーケンスは、ドライブ1040を示すとともに、フェイルビットをバイナリーハイに示す。いくつかの実施態様において、ドライブ1040がすでに故障し、且つ、代替が必要とされるので、プロセッサ708は、さらに、ロケートビットをバイナリーハイに示すことができる。プロセッサ708は、その後、ビットのシーケンスを、LEDコントローラー200の入力202に送信することができる。ビットのシーケンスの受信に応答して、LEDコントローラー200は、適当なライン (たとえば、ドライブ1040の制御ライン218、ロケートライン214、および、フェイルライン216)を切り替えることができる。その後、ドライブ1040の対応するLED(ロケート08、フェイル210)が点灯する。
図11A、および、図11Bは、可能なシステムの実施態様を示す図である。当業者なら理解できるように、本発明の技術により、更に適当な実施例を実行することができる。さらに、当業者なら、その他のシステムの実施態様も可能であることが理解できる。
図11Aは、従来のシステムバスコンピューティングシステム機構1100を示す図であり、システムの構成要素は、バス1105を用いて、互いに電気的に通信する。例によるシステム1100は、処理ユニット(CPU、あるいは、プロセッサ)1110、および、システムバス1105を有し、システムバス1105は、システムメモリ1115を含む各種システムコンポーネンツ、たとえば、リードオンリーメモリ (ROM)1120とランダムアクセスメモリ(RAM)1125を、プロセッサ1110に結合する。システム1100は、高速メモリのキャッシュを有し、高速メモリは、直接接続する、近接する、あるいは、プロセッサ1110の一部として整合される。システム1100は、メモリ1115、および/または、ストレージデバイス1130からデータをキャッシュ1112に複製して、プロセッサ1110により快速アクセスすることができる。この方法により、キャッシュは、パフォーマンスブーストを提供して、プロセッサ1110がデータを待つ間に遅延するのを回避することができる。これらの、および、その他のモジュールは、様々な動作を実行するためにプロセッサ1110を制御、あるいは、制御するように構成することができる。設その他のシステムメモリ1115も使用できる。メモリ1115は、異なる性能特性を有する複数の異なるタイプのメモリを有することができる。プロセッサ1110は、任意の汎用目的プロセッサ、および、ハードウェアモジュール、あるいは、ソフトウェアモジュール(たとえば、ストレージデバイス1130に保存されるモジュール1 1132、モジュール2 1134、および、モジュール3 1136)を有し、プロセッサ1110、および、ソフトウェア命令が実際のプロセッサ設計に組み込まれる特殊用途プロセッサを制御するように構成することができる。プロセッサ1110は、実質上、完全内蔵タイプのコンピューティングシステムで、マルチコア、あるいは、プロセッサ、バス、メモリコントローラー、キャッシュ等を含む。マルチコアプロセッサは、対称か、あるいは、非対称であってもよい。
コンピューティングデバイス1100とのユーザーインタラクションを有効にするため、入力装置1145は、スピーチ用マイクロフォン、ジェスチャや図形入力用タッチスクリーン、キーボード、マウス、モーション入力、音声等の任意の数の入力メカニズムとすることができる。出力装置1135は、従来の技術で知られている一つ以上の数の出力メカニズムにすることができる。いくつかの実施態様において、マルチモーダルシステムは、ユーザーが複数のタイプの入力を提供して、コンピューティングデバイス1100と通信できるようにする。通信インターフェース1140は、通常、ユーザー入力とシステム出力を調節、および、管理することができる。任意の特定のハードウェア構成での操作において制限がなく、これにより、ここでの基本的機能は、改善されたハードウェア、あるいは、ファームウェア構成が開発されるとき、容易に代用できる。
ストレージデバイス1130は、不揮発性メモリであるとともに、ハードディスク、あるいは、その他のタイプのコンピュータ読み取り可能媒体であり、コンピュータ読み取り可能媒体は、コンピュータによりアクセス可能なデータを保存することができる、たとえば、磁気カセット、フラッシュメモリカード、固体メモリ装置、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAMs)1125、リードオンリーメモリ (ROM)1120、および、それらの混合である。
ストレージデバイス1130は、ソフトウェアモジュール1132、1134、1136を有することができ、プロセッサ1110を制御する。その他のハードウェア、あるいは、ソフトウェアモジュールを検討する。ストレージデバイス1130はシステムバス1105に接続することができる。一態様において、特定の機能を実行するハードウェアモジュールは、機能を実行するために、必要なハードウェア構成部品、たとえば、プロセッサ1110、バス1105、ディスプレイ1135等に関連するコンピュータ読み取り可能媒体中に保存されるソフトウェアコンポーネントを有することができる。
図11Bは、記述した方法を実行し、グラフィカルユーザーインターフェース (GUI)を生成、および、表示するのに用いられるチップセット機構を有するコンピュータシステム1150を示す図である。コンピュータシステム1150は、開示した技術を実行するのに用いられるコンピュータハードウェア、ソフトウェア、および、ファームウェアの一例である。システム1150は、識別された計算を実行するように構成されたソフトウェア、ファームウェア、および、ハードウェアを実行することができる任意の数の物理的、および/または、論理的に区別できるリソースを表すプロセッサ1155を有することができる。プロセッサ1155は、プロセッサ1185からの入出力を制御することができるチップセット1160と通信する。この例において、チップセット1160は、情報を出力1165、たとえば、ディスプレイに出力するとともに、ストレージデバイス1170から情報を読み取ったり、情報を書き込んだりする。ストレージデバイス1170は、たとえば、磁気媒体、および、ソリッドステート媒体を有する。チップセット1160は、RAM1175からデータを読み取ったり、データを書き込んだりすることができる。各種ユーザーインターフェース素子1185と相互作用するブリッジ1180が提供されて、チップセット1160と相互作用する。このようなユーザーインターフェースコンポーネント1185は、キーボード、マイクロフォン、タッチ検出および処理回路、ポインティングデバイス、たとえば、マウス等を有する。一般に、システム1150への入力は、機器が生成、および/または、人が生成する多様なソースのいずれかによってもたらされる。
チップセット1160は、異なる物理インターフェースを有する一つ以上の通信インターフェース1190とも相互作用する。このような通信インターフェースは、有線、あるいは、無線ローカルエリアネットワーク、ブロードバンド無線ネットワーク、および、パーソナルエリアネットワークのインターフェースを有する。ここで開示されるGUIを生成する、表示する、および、用いる方法のいくつかの応用は、物理インターフェースを介して、順序付けられたデータセットを受信する、あるいは、ストレージ1170、あるいは、1175に保存されるデータを分析するプロセッサ1155により、機器自身で生成されることを含む。さらに、機器は、ユーザーインターフェースコンポーネント1185を介して、ユーザーから入力を受信するとともに、プロセッサ1155を用いてこれらの入力を解釈することにより閲覧機能等の適当な機能を実行することができる
例示的なシステム1100と1150は、二つ以上のプロセッサ1110を有することができ、あるいは、より高い処理能力を提供するために、ネットワーク化されたコンピューティングデバイスの群、または、クラスタの一部となることが理解できる。
説明を明確にするため、いくつかの実施態様において、本発明は、ソフトウェア、あるいは、ハードウェアとソフトウェアの組み合わせで実施される方法における装置、装置のコンポーネント、工程、あるいは、ルーティンを有する機能ブロックを含む独立した機能ブロックを含んでいるものとして表示する。いくつかの実施態様において、本発明は、既に、PCIエキスプレスデバイスに相関して記述されている。しかし、上述の例による方法と概念は、その他のタイプの装置のハードウェアリカバリーに実施できる。実質上、ここで記述される概念は、USBデバイスなどのホットプラグ(hot-plug)またはホットスワップ(hot-swap)をサポートする任意のデバイスのホットアド(hot-add)やホットリムーブ(hot-remove)を含むハードウェアリカバリーに実施できる。さらに、PCIエキスプレス装置は、明確にするためと説明のために用いられ、本発明を限定するものではない。
ここで記述した任意の工程、操作、機能、あるいは、プロセスは、ハードウェアとソフトウェアモジュールの組み合わせにより、その他の装置と一緒に、あるいは、組み合わせて実行、あるいは、実現される。一実施態様において、ソフトウェアモジュールは、クライアントデバイス、および/または、コンテンツマネージメントシステムの一つ以上のサーバのメモリ中に存在するソフトウェアであり、且つ、プロセッサがモジュールに関連するソフトウェアを実行するとき、一つ以上の機能を実行する。メモリは、非一時的(non-transitory)コンピュータ読み取り可能媒体である。
いくつかの実施態様において、コンピュータ読み取り可能ストレージデバイス、媒体、および、メモリは、ビットストリーム等を含むケーブル、あるいは、無線信号を有する。しかし、非一時的(non-transitory)コンピュータ読み取り可能ストレージ媒体に言及するとき、明確に、たとえば、エネルギー、キャリア信号、電磁波と信号自身等の媒体を除外する。
上述の例による方法は、コンピュータ読み取り可能媒体に保存される、あるいは、コンピュータ読み取り可能媒体で使用可能であるコンピュータ実行可能命令を用いて実行される。このような命令は、たとえば、引き起こす、あるいは、その他の方式で、汎用コンピュータ、特殊用途コンピュータ、あるいは、特殊用途処理装置を設置し、ある機能、あるいは、一群(グループ)の機能を実行する命令とデータを含む。用いられるコンピュータリソースの一部は、ネットワークによりアクセス可能である。コンピュータ実行可能命令は、たとえば、二進数、中間フォーマット命令、たとえば、アセンブリ言語、ファームウェア、あるいは、ソースコードである。上述の実施例の方法の期間中、命令、使用情報、および/または、生成情報を保存するコンピュータ読み取り可能媒体の例 は、磁気、あるいは、光ディスク、フラッシュメモリ、不揮発性メモリを有するUSB装置、ネットワークストレージデバイスを有する。
これらの開示による方法を実施する装置は、ハードウェア、ファームウェア、および/または、ソフトウェアを含むとともに、各種形式のフォームファクタのいずれかを取ることができる。このようなフォームファクタの例は、通常、ラップトップ、スマートフォン、小さいフォームファクタパーソナルコンピュータ、PDA等である。ここで記述される機能は、さらに、周辺、あるいは、アドインカード(add-in cards)で具体化される。このような機能は、上述の方法により、単一装置中で実行される異なるチップ、あるいは、異なるプロセス間の回路板で実現する。
命令、このような命令を実行する媒体、それらを実行するコンピューティングリソース、および、このようなコンピューティングリソースをサポートするその他の構造は、これらの開示で記述される機能を提供する手段である。
本発明では好ましい実施例を前述の通り開示したが、これらは決して本発明に限定するものではなく、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない範囲内で各種の変動や潤色を加えることができ、従って本発明の保護範囲は、特許請求の範囲で指定した内容を基準とする。
100…ハードドライブ発光ダイオードコントローラー
102、202…入力
104A、104B、104N…ハードドライブ
106A、106B、106N…アクティビティ発光ダイオード
108A、108B、108N…ロケート発光ダイオード
110A、110B、110N…フェイル発光ダイオード
112A、112B、112N…アクティビティ制御ライン
114A、114B、114N…ロケート制御ライン
116A、116B,116N…フェイル制御ライン
200…コントローラー
204A、204B、204N…ドライブ
206A、206B、206N…アクティビティ発光ダイオード
208A、208B、208N…ロケート発光ダイオード
210A、210B、210N…フェイル発光ダイオード
206、208、210…発光ダイオード
212、214、216…制御ライン
218A、218B、218N…選択ライン
300…タイミング図
320…期間
322、324、326…行
328、330、332…行
400…コントローラー
402…入力
434A、434N…デバイスアドレス入力
436A、436N…サブセット
500…タイミング図
520…期間
522…行
600…方法
610-630…工程
700…システム
702、712…コントローラー
704、706…ドライブレジスタ
708、710…プロセッサ
714、716…ドライブの群
718-724…ドライブ
726、728、730、732、734、736、738…通信バス
800…トポロジー
802…ラッチロジック回路
804、806…存在信号
808-810…多機能インターフェース
812…ラッチクロック
814…クロック、あるいは、同期信号
816-818…電力イネーブル信号
820-822…電力イネーブル信号
824-830…インターフェース
900…方法
902-906…工程
1000…組み合わせシステム
1040…ドライブ
1100…コンピューティングシステム
1105…システムバス
1110…プロセッサ
1112…キャッシュ
1115…メモリ
1120…リードオンリーメモリ
1125…ランダムアクセスメモリ
1130…ストレージデバイス
1132…モジュール
1134…モジュール
1135…出力装置
1136…モジュール
1140…通信インターフェース
1145…入力裝置
1150…コンピュータシステム
1155…プロセッサ
1160…チップセット
1165…出力装置
1170…ストレージデバイス
1175…ランダムアクセスメモリ
1180…ブリッジ
1185…ユーザーインターフェースコンポーネント
1190…通信インターフェース

Claims (10)

  1. 管理システムであって、
    第一ドライブレジスタ、および、第二ドライブレジスタを有する第一コントローラーと、
    第一シリアルバスを介して、前記第一ドライブレジスタと通信可能に結合される第一プロセッサと、
    第二シリアルバスを介して、前記第二ドライブレジスタと通信可能に結合される第二プロセッサと、
    前記第一ドライブレジスタ、および、前記第一シリアルバスを介して、前記第一プロセッサに通信可能に結合される不揮発性メモリエクスプレスドライブの第一のセット、および、
    前記第二ドライブレジスタ、および、前記第二シリアルバスを介して、前記第二プロセッサと通信可能に結合される不揮発性メモリエクスプレスドライブの第二のセット、
    を有することを特徴とするシステム。
  2. 第三シリアルバスを介して、前記第一ドライブレジスタに、および、第四シリアルバスを介して、前記第二ドライブレジスタに、それぞれ、通信可能に結合される第二コントローラーをさらに有することを特徴とする請求項1に記載のシステム。
  3. 前記第一プロセッサは、さらに、第五シリアルバスを介して、前記第二ドライブレジスタと通信可能に結合され、および、前記第二プロセッサは、さらに、第六シリアルバスを介して、前記第一ドライブレジスタと通信可能に結合されることを特徴とする請求項2に記載のシステム。
  4. 前記第一プロセッサは、前記第一ドライブレジスタを介して、前記不揮発性メモリエクスプレスドライブの第一のセットから受信した一つ以上の信号に基づいて、前記不揮発性メモリエクスプレスドライブの第一のセットを監視するように構成され、前記第二プロセッサは、前記第二ドライブレジスタを介して、前記不揮発性メモリエクスプレスドライブの第二のセットから受信した一つ以上の信号に基づいて、前記不揮発性メモリエクスプレスドライブの第二のセットを監視するように構成されることを特徴とする請求項3に記載のシステム。
  5. 第三シリアルバスを介して、前記第一ドライブレジスタ、および、前記第二ドライブレジスタと通信可能に結合される第二コントローラーと、
    前記第二コントローラー、および、前記不揮発性メモリエクスプレスドライブの第一のセット、あるいは、前記不揮発性メモリエクスプレスドライブの第二のセットに関連する一つ以上の不揮発性メモリエクスプレスドライブと通信可能に結合されるラッチロジック回路、
    を有することを特徴とする請求項1に記載のシステム。
  6. システムであって、
    不揮発性メモリエクスプレスドライブの第一のセットであって、前記不揮発性メモリエクスプレスドライブの第一のセットから第一存在指示を獲得するように構成される、第一コントローラー中の第一ドライブレジスタに接続される不揮発性メモリエクスプレスドライブの第一のセットと、
    不揮発性メモリエクスプレスドライブの第二のセットであって、前記不揮発性メモリエクスプレスドライブの第二のセットから第二存在指示を獲得するように構成される、前記第一コントローラー中の第二ドライブレジスタに接続される不揮発性メモリエクスプレスドライブの第二のセットと、
    第一シリアルバスを介して、前記第一ドライブレジスタに接続され、前記第一存在指示に応答して、前記第一ドライブレジスタから受信される存在情報に基づいて、前記第不揮発性メモリエクスプレスドライブの第一のセットを監視する第一プロセッサと、
    第二シリアルバスを介して、前記第二ドライブレジスタに接続され、前記第二存在指示に応答して、前記第二ドライブレジスタから受信された存在情報に基づいて、前記不揮発性メモリエクスプレスドライブの第二のセットを監視する第二プロセッサ、および、
    第三シリアルバスを介して、前記第一ドライブレジスタに、および、第四シリアルバスを介して、前記第二ドライブレジスタに接続され、前記第一ドライブレジスタ、および、前記第二ドライブレジスタから受信される個別の状態情報に基づいて、前記不揮発性メモリエクスプレスドライブの第一のセット、および、前記不揮発性メモリエクスプレスドライブの第二のセットの状態を決定する第二コントローラー、
    を有することを特徴とするシステム。
  7. 前記第一プロセッサは、さらに、第五シリアルバスを介して、前記第二ドライブレジスタに接続され、前記第二プロセッサは、さらに、第六シリアルバスを介して、前記第一ドライブレジスタに接続されることを特徴とすることを特徴とする請求項6に記載のシステム。
  8. 前記第二コントローラー、および、前記不揮発性メモリエクスプレスドライブの第一のセット、あるいは、前記不揮発性メモリエクスプレスドライブの第二のセットに関連する一つ以上の不揮発性メモリエクスプレスドライブに結合されるラッチロジックをさらに有し、前記ラッチロジック回路は、
    それぞれの電力イネーブルビットを前記一つ以上の不揮発性メモリエクスプレスドライブのそれぞれ一つに出力する個別の出力ピン、および、
    前記第一コントローラーに関連するそれぞれの存在ピンから、それぞれの前記電力イネーブル信号を受信する個別の入力ピンを有し、前記それぞれの存在ピンは、それぞれ前記一つ以上の不揮発性メモリエクスプレスドライブの対応する一つから存在信号を受信するとともに、それぞれの前記電力イネーブル信号を、前記ラッチロジック回路に関連する前記個別の入力ピンに出力可能な多機能ピンとして機能する
    ことを特徴とすることを特徴とする請求項6に記載のシステム。
  9. 管理方法であって、
    第一コントローラーを介して、第二コントローラー上の第一プロセッサと第一ドライブレジスタ間の第一通信パスを監視し、前記第一ドライブレジスタが複数の不揮発性メモリエクスプレスドライブと通信可能に結合され、前記第一プロセッサが前記第一通信パスを介して、前記第一ドライブレジスタから、前記複数の不揮発性メモリエクスプレスドライブに関する状態情報を得るように構成される工程と、
    前記第一コントローラーにより、前記第一通信パスの通信障害を検出する工程、および、
    前記通信障害に応答して、前記第一コントローラーにより、第二プロセッサを割り当て、前記第二プロセッサと前記第一ドライブレジスタ間の第二通信パスを介して、前記複数の不揮発性メモリエクスプレスドライブに関する前記状態情報を、前記第一ドライブレジスタから受信する工程、
    を有することを特徴とする方法。
  10. 前記第二コントローラーは、第二複数の不揮発性メモリ高速ドライブと結合される第二ドライブレジスタを有し、前記第二ドライブレジスタ は、前記第一コントローラーと前記第二プロセッサの少なくとも一つと通信し、前記ステータス信号は、前記複数の不揮発性メモリエクスプレスドライブに関連することを特徴とする請求項9に記載の方法。
JP2017081734A 2016-05-12 2017-04-18 フレキシブルなnvmeドライブ管理ソリューション Active JP6549632B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/153,014 US10019402B2 (en) 2016-05-12 2016-05-12 Flexible NVME drive management solution via multiple processor and registers without multiple input/output expander chips
US15/153,014 2016-05-12

Publications (2)

Publication Number Publication Date
JP2017204269A true JP2017204269A (ja) 2017-11-16
JP6549632B2 JP6549632B2 (ja) 2019-07-24

Family

ID=58992613

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017081734A Active JP6549632B2 (ja) 2016-05-12 2017-04-18 フレキシブルなnvmeドライブ管理ソリューション

Country Status (5)

Country Link
US (1) US10019402B2 (ja)
EP (1) EP3244319B1 (ja)
JP (1) JP6549632B2 (ja)
CN (1) CN107368401B (ja)
TW (1) TWI587134B (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729220B (zh) * 2017-09-27 2019-06-18 郑州云海信息技术有限公司 一种实现多NVMe硬盘背板点灯的设计方法
CN107870844A (zh) * 2017-10-16 2018-04-03 鸿富锦精密电子(天津)有限公司 硬盘状态侦测装置及方法
TWI665554B (zh) 2018-01-22 2019-07-11 緯穎科技服務股份有限公司 熱插拔控制電路及相關儲存伺服器系統
CN109062771A (zh) * 2018-07-11 2018-12-21 郑州云海信息技术有限公司 一种服务器监控oled模组冗余方法、装置、设备及存储介质
US10795846B1 (en) * 2019-07-15 2020-10-06 Cisco Technology, Inc. Scalable NVMe storage management over system management bus
US20230030168A1 (en) * 2021-07-27 2023-02-02 Dell Products L.P. Protection of i/o paths against network partitioning and component failures in nvme-of environments

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04249263A (ja) * 1991-02-06 1992-09-04 Fuji Xerox Co Ltd 記録装置管理システムにおける記録情報収集方式
JP2015114873A (ja) * 2013-12-12 2015-06-22 富士通株式会社 情報処理装置および監視方法
WO2015162660A1 (ja) * 2014-04-21 2015-10-29 株式会社日立製作所 計算機システム
WO2015200313A1 (en) * 2014-06-23 2015-12-30 Liqid Inc. Modular switched fabric for data storage systems

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7006402B2 (en) * 2003-08-29 2006-02-28 Hynix Semiconductor Inc Multi-port memory device
US20070079032A1 (en) 2005-09-30 2007-04-05 Intel Corporation Serial signal ordering in serial general purpose input output (SGPIO)
KR100655081B1 (ko) * 2005-12-22 2006-12-08 삼성전자주식회사 가변적 액세스 경로를 가지는 멀티 포트 반도체 메모리장치 및 그에 따른 방법
US8078770B1 (en) 2007-08-10 2011-12-13 American Megatrends, Inc. Combining multiple SGPIO streams to provide device status indicators
US8769213B2 (en) 2009-08-24 2014-07-01 Micron Technology, Inc. Multi-port memory and operation
JP5569074B2 (ja) * 2010-03-19 2014-08-13 日本電気株式会社 ストレージシステム
WO2014085268A1 (en) * 2012-11-30 2014-06-05 Intel Corporation Apparatus, method and system for memory device access with a multi-cycle command
WO2015166540A1 (ja) * 2014-04-28 2015-11-05 株式会社日立製作所 ストレージ装置とそのデータ処理方法及びストレージシステム
US9645902B2 (en) * 2014-06-23 2017-05-09 Liqid Inc. Modular switched fabric for data storage systems
KR102309798B1 (ko) * 2015-04-16 2021-10-06 삼성전자주식회사 Sr-iov 기반 비휘발성 메모리 컨트롤러 및 그 비휘발성 메모리 컨트롤러에 의해 큐에 리소스를 동적 할당하는 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04249263A (ja) * 1991-02-06 1992-09-04 Fuji Xerox Co Ltd 記録装置管理システムにおける記録情報収集方式
JP2015114873A (ja) * 2013-12-12 2015-06-22 富士通株式会社 情報処理装置および監視方法
WO2015162660A1 (ja) * 2014-04-21 2015-10-29 株式会社日立製作所 計算機システム
WO2015200313A1 (en) * 2014-06-23 2015-12-30 Liqid Inc. Modular switched fabric for data storage systems

Also Published As

Publication number Publication date
TW201810043A (zh) 2018-03-16
US10019402B2 (en) 2018-07-10
EP3244319A1 (en) 2017-11-15
US20170329736A1 (en) 2017-11-16
CN107368401B (zh) 2020-12-25
TWI587134B (zh) 2017-06-11
JP6549632B2 (ja) 2019-07-24
EP3244319B1 (en) 2021-07-07
CN107368401A (zh) 2017-11-21

Similar Documents

Publication Publication Date Title
JP6549632B2 (ja) フレキシブルなnvmeドライブ管理ソリューション
US10896113B2 (en) Method for implementing backplane lighting for multiple NVMe hard disks
TWI616758B (zh) 遠端多電腦切換技術之儲存裝置、系統及方法
TWI624758B (zh) 指示燈控制系統以及發光二極體控制方法
US8547825B2 (en) Switch fabric management
US10452576B2 (en) NVMe drive detection from a SAS/SATA connector
CN103473167B (zh) 服务器的故障显示方法及装置
US9722859B2 (en) Evaluation of field replaceable unit dependencies and connections
US10783109B2 (en) Device management messaging protocol proxy
TWI659302B (zh) 硬碟監控系統
TW201640363A (zh) 自動硬體恢復方法及自動硬體恢復系統
JP2019139732A (ja) 複数のファンモジュールの管理
US11228518B2 (en) Systems and methods for extended support of deprecated products
US11782810B2 (en) Systems and methods for automated field replacement component configuration
US20200133538A1 (en) System and method for chassis-based virtual storage drive configuration
US11640377B2 (en) Event-based generation of context-aware telemetry reports
TWI804719B (zh) 處理器/端點通信耦合件組態系統
JP6703045B2 (ja) 機器ラック及び機器ラックからの状態報告を保証する方法
US11659695B2 (en) Telemetry system supporting identification of data center zones
TWI588665B (zh) 伺服器
US11836127B2 (en) Unique identification of metric values in telemetry reports
US10409940B1 (en) System and method to proxy networking statistics for FPGA cards
US10997012B2 (en) Identifying defective field-replaceable units that include multi-page, non-volatile memory devices
US20200134118A1 (en) System and method to identify critical fpga card sensors
JP2014029624A (ja) 情報処理装置、収集プログラムおよび収集方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180611

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190524

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: 20190610

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190627

R150 Certificate of patent or registration of utility model

Ref document number: 6549632

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