(57)【特許請求の範囲】
【請求項１】
マスターコンピュータと、ノードコンピュータのアレイと、を備えており、
前記マスターコンピュータは、複数のノードコンピュータのそれぞれに、前記マスターコンピュータのみが個別の通信チャネルを介して任意のノードコンピュータに直接アクセスするよう、前記個別の通信チャネルによって接続されており、
前記複数のノードコンピュータのそれぞれは、前記マスターコンピュータまたは特定のノードコンピュータによりアクセス可能なメモリセグメントを有し、前記メモリセグメントは、前記マスターコンピュータから前記通信チャネルを介して送信されるコマンドによって前記マスターコンピュータまたは前記特定のノードコンピュータに接続され、他のノードコンピュータからはアクセス不可かつ物理的に分離され、
前記マスターコンピュータまたは前記ノードコンピュータのいずれかによる前記メモリセグメントへの排他的アクセスの選択が、前記マスターコンピュータと前記ノードコンピュータとの間の前記通信チャネルを使用して前記マスターコンピュータによって決定され、
前記複数のノードコンピュータは、前記マスターコンピュータを共通のクライアントとするサーバとして機能し、
前記マスターコンピュータと前記複数のノードコンピュータの両方が、同じエンクロージャを共有する、
階層コンピュータアーキテクチャ。
【請求項２】
前記マスターコンピュータおよび前記複数のノードコンピュータは、自身の電力を前記エンクロージャ内の中央電源から得る、
請求項１の階層コンピュータアーキテクチャ。
【請求項３】
前記マスターコンピュータが、通信独立型データチャネル以外の手段を使用して、コマンドを伝えて前記複数のノードコンピュータからステータスを受信できる、
請求項１の階層コンピュータアーキテクチャ。
【請求項４】
前記複数のノードコンピュータのそれぞれが、前記マスターコンピュータにおける複数のＵＳＢホストポートにインタフェース接続されている、前記ノードコンピュータに存在するＵＳＢデバイスポート、を使用し、
前記マスターコンピュータにおける前記複数のＵＳＢホストポートのそれぞれが、前記ノードコンピュータにアタッチされている物理メモリストアである、前記ノードコンピュータにおけるメモリセグメント、にマッピングされる、
請求項１の階層コンピュータアーキテクチャ。
【請求項５】
前記複数のノードコンピュータの前記ＵＳＢデバイスポートが、１つまたは複数のＵＳＢストレージデバイスおよびＵＳＢ通信チャネルを前記マスターコンピュータに提供するＵＳＢマルチガジェットデバイスとして、前記マスターコンピュータに認識される、
請求項４の階層コンピュータアーキテクチャ。
【請求項６】
前記マスターコンピュータによって認識される、前記複数のノードコンピュータにおける前記ＵＳＢマルチガジェットデバイスが、ＵＳＢ  ローカルエリアネットワーク（ＬＡＮ）ポートを含む、
請求項５の階層コンピュータアーキテクチャ。
【請求項７】
前記マスターコンピュータによって認識される、前記複数のノードコンピュータにおける前記ＵＳＢマルチガジェットデバイスが、ＵＳＢ  ＴＴＹポートを含む、
請求項５の階層コンピュータアーキテクチャ。
【請求項８】
前記複数のノードコンピュータは、前記複数のノードコンピュータに存在するＰＣＩｅポートに接続されているＦＰＧＡから得られる通信ポート、を使用し、
前記ＦＰＧＡ通信ポートは、前記マスターコンピュータに対して互換性の通信ポートをさらに提供し、
前記マスターコンピュータにおける前記互換性の通信ポートのそれぞれが、前記マスターコンピュータから、前記複数のノードコンピュータのそれぞれに個別にアタッチされているメモリセグメントへのアクセスを提供する、
請求項１の階層コンピュータアーキテクチャ。
【請求項９】
前記ノードコンピュータのアレイに接続されている前記マスターコンピュータの前記階層コンピュータアーキテクチャを使用して、分散ストレージメモリアーキテクチャが作成され、
前記複数のノードコンピュータのそれぞれが、前記マスターコンピュータによって、個別にアドレッシング可能なストレージデバイスとしてマッピングできる１つまたは複数のストレージデバイス、を有し、
前記１つまたは複数のストレージデバイスの集まりが、前記マスターコンピュータを対象とする、容易にスケーラブルであり構造的にモジュール式である大きな分散ストレージメモリ、を形成する、
請求項１の階層コンピュータアーキテクチャ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータアーキテクチャに関し、詳細には、階層アレイコンピュータに関する。
【背景技術】
【０００２】
特許文献１に記載されているように、電子メールなどＷｅｂベースのデータを処理するサーバファームにおいて最もしばしば見られるブレードサーバと称される、特定の用途に特化されたコンピュータのアレイが、２１世紀の初めに登場した。ブレードサーバにおけるブレードは、ブレードエンクロージャ（blade enclosure）と称される共通のシャーシ内にグループ化された比較的小型のサーバコンピュータである。一般的なブレードエンクロージャ内では、ブレードが共通の電源およびデータバスを共有し、データバスは、データおよびコマンドを受信および送信する手段をブレードに提供する。さらに、ブレードエンクロージャにはスイッチサーバ（管理モジュールと称されることもある）が含まれており、スイッチサーバは、特許文献２に記載されているように、ブレードのためのジョブコントローラとして機能する。
【０００３】
ブレードサーバの例を図１に示してある。ブレードシャーシ１００は、取り外し可能なサーバブレード１０１ａ〜１０１ｎを含む。ブレード１０１は共通のバックプレーン１０２を共有しており、共通のバックプレーン１０２は、電源１０３からのブレード電力と、通常はＥｔｈｅｒｎｅｔバスである共有通信バス１０４とを提供する。すべての外部コマンドおよび外部データは、内部の通信バス１０４を通じて共有される。１つまたは複数の管理モジュール１０５が、サーバブレードの動作を調整する。通信バスの外部接続部１０６によって、ＮＡＳ（ネットワーク接続ストレージ：Network Attached Storage）ストレージなど共通のメモリソース１０７へのアクセスがブレードに提供される。ブレード１０１ａ〜１０１ｎは、一般には、それぞれのローカルな処理に使用するための自身のプライベートメモリ１０８ａ〜１０８ｎを有する。
【０００４】
その後、特許文献３に記載されているように、ブレードエンクロージャにおけるサーバブレード管理モジュールに修正が加えられ、サーバブレードがＵＳＢメモリデバイスなど共通の一連のＵＳＢデバイスにアクセスできるようになった。引用した特許においては、サーバブレードエンクロージャのＵＳＢホストポートとブレードとの間のブリッジとして機能するブレードサーバ管理モジュールによって、各ブレードを複数の外部ＵＳＢデバイスポートに接続するための手段が提供される。ＵＳＢデバイスにはキーボード、マウス、ＣＤ−ＲＯＭ、ＵＳＢスティックなど多数のタイプがあるため、ブレードサーバは、多くの追加機能を利用することができる。このようにブレードサーバにおいて外部ＵＳＢデバイスを使用する状況の簡略図を図２に示してある。図２の追加のＩ／Ｏネットワーク１１０と、ブレードサーバ管理モジュール１０５の中の追加のハードウェアとによって、ＵＳＢデバイス１１２ａ−１１２ｍはサーバブレード１０１ａ〜１０１ｎと通信することができる。
【０００５】
非特許文献１において論じられているように、ブレードサーバは、コンピュータのアレイとみなすことはできるが、「アレイコンピュータ」とはみなされず、「アレイコンピュータ」は、通常ではハードウェアの実行およびソフトウェアの実行の両方において互いに密結合されているコンピュータのグループを意味する。アレイコンピュータの主たる違いは、アレイを構成している異なるコンピューティングノードの間の相互接続経路を記述するアレイの「アーキテクチャ」である。
【０００６】
非特許文献１におけるアレイコンピュータのアーキテクチャの総説論文には、過去のアレイ処理のソリューションに関連付けられる、ハードウェアおよびソフトウェアの幅広い複雑な実装が示されている。実際のアレイ処理コンピュータの良い例は、１９９０年頃にＪｕｒｇｅｎ  Ｓａｕｅｒｍａｎｎによって構築された並列ＡＰＬマシン（parallel APL machine）（非特許文献２）である。図３は、Ｓａｕｅｒｍａｎｎマシン３００の簡略ブロック図を示している。Ｓａｕｅｒｍａｎｎマシン３００は、アレイコンピュータの要素すべてを有し、すなわちマスタープロセッサ３０１が共通の通信ネットワーク３０３を介してスレーブプロセッサ３０４のアレイに密結合されており、デュアルポートメモリ３０２がマスターコンピュータとスレーブプロセッサとの間で共有されている。スレーブプロセッサは、数学的計算を実行するＦＰＧＡのアレイであるネットワーク３０５にさらに接続されている。Ｓａｕｅｒｍａｎｎマシンは、コンピュータスクリプト言語ＡＰＬで書かれたプログラムを処理するという特定のタスク専用であった。Ｓａｕｅｒｍａｎｎマシンのいくつかは、製造後に独国の郵便局で使用された。
【０００７】
プロジェクトは成功したが、Ｓａｕｅｒｍａｎｎマシンのアーキテクチャを別の用途に適合させることは容易ではない。特定の用途に特化されたハードウェアおよびソフトウェアは、アレイ処理の典型である。このように述べる理由として、本発明は、Ｓａｕｅｒｍａｎｎマシンの対象用途への関心から着想されたものであり、本発明者らの試み、すなわち、ソフトウェアおよびハードウェアの両方の観点から幅広く使用することのできるアレイ処理アーキテクチャを提示すると同時に、コンピュータのハードウェアおよびソフトウェアの今後の進歩に対して柔軟に適合可能であるアーキテクチャを提供することにつながったためである。
【０００８】
大規模な接続されたアレイにコンピューティング要素を配置することに加えて、より最近の方法では、非特許文献３に記載されているように、多数のＣＰＵコアを含む１つの集積化プロセッサが構築された。Ｉｎｔｅｌ社やＡＭＤ社から入手可能なものなど、マルチコアプロセッサは、計算速度を大幅に高めることができる。しかしながらこれらのマルチコアプロセッサには、マルチコア設計を利用するための特殊なハードウェアおよびソフトウェアが要求される。さらに、これらのマルチコアプロセッサには、プログラミングの複雑さを増大させ、計算を遅くする１つの大きな欠点がある。すなわちすべてのコアが１つの物理チャネルを通じて外部ストレージにアクセスする。
【０００９】
アレイコンピュータの主たる目標は、単一のコンピュータの処理能力を使用し、処理速度が単一のコンピュータよりもＮ倍高速である、Ｎ個のコンピュータを有するマシンを作成することである。このシンプルな目標から、ソフトウェアおよびハードウェアの幅広いソリューションが生み出されたが、これらは一般的に複雑および／または高価なソリューションとなった。
【００１０】
本発明は、独立型コンピューティングノード（disjoint computing node）および新規の分散メモリ構造を有する階層コンピュータアーキテクチャを使用することによって、追加のコンピューティングノードにより処理能力において線形利得を達成する、ブレードサーバタイプのエンクロージャ内に格納されるアレイコンピュータを作成する一方で、アレイ処理のための簡単なプログラミングモデルを提供する手段を提供する。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】米国特許第６，４１１，５０６号明細書
【特許文献２】米国特許第７，２０９，３４７号明細書
【特許文献３】米国特許第７，４１２，５４４号明細書
【非特許文献】
【００１２】
【非特許文献１】“A Decade of RCS” Proc. IEEE Conf. on Design, Automation and Test in Europe (2001)
【非特許文献２】“A Parallel APL Machine”1990 ACM 089791-371
【非特許文献３】“Multicore Processors - A Necessity” by Bryan Schauer (csa-discoveryguides-multicore review, 9-2008)
【発明の概要】
【課題を解決するための手段】
【００１３】
メモリセグメントが直接接続されているコンピューティングノードのアレイにマスターコンピュータを接続する独立型高速データチャネルを使用する、セグメント化されている大きなセグメント化メモリを有するマスターコンピュータ、から構成されている階層アレイコンピュータアーキテクチャ。マスターコンピュータは、マスストレージのブロックのアレイとしてメモリセグメントをマッピングし、各メモリセグメントは、マスターコンピュータに、または、メモリセグメントが直接接続されているコンピューティングノードに、排他的にマッピングされる。
【００１４】
コンピューティングノードは、それぞれのクライアントであるマスターコンピュータからのコマンドを待機しているサーバとして機能し、マスターコンピュータからの命令時、それぞれの関連する共有メモリセグメントにおいてデータを処理するために使用される。
【００１５】
説明したアーキテクチャは、ストレージの各メモリセグメントが、マスターコンピュータによって、またはコンピューティングノードのアレイの１つのメンバーのみによって、排他的にアクセス可能である、分散ストレージとみなすこともできる。コンピューティングノードのアレイ内に存在する多数のメモリコントローラによって、極めて高いメモリアクセス速度と、容易にスケーラブルなストレージアレイが提供される。
【図面の簡単な説明】
【００１６】
【図１】従来技術：  一般的なブレードサーバエンクロージャ。
【図２】従来技術：  ＵＳＢポートアクセスをサーバブレードに提供するブレードサーバ。
【図３】従来技術：  Ｓａｕｅｒｍａｎｎ並列ＡＰＬマシン。
【図４】ＤＡＣコンピュータアーキテクチャであり、マスターコンピュータとノードコンピュータとの間の接続を示している。
【図５Ａ】ＤＡＣマスターコンピュータがメモリセグメントのアレイに接続されている状況。
【図５Ｂ】ＤＡＣマスターコンピュータがコンピューティングノードのアレイに接続されている状況。
【図６】２レベルのＤＡＣコンピュータの好ましい実施形態であり、レベル１のマスターコンピュータとレベル２の各ノードコンピュータとの間の１つのＵＳＢマルチガジェットチャネルが、マスターコンピュータおよび接続されているノードプロセッサの間のストレージリンクおよび通信リンクの両方を提供する。
【発明を実施するための形態】
【００１７】
本発明は、一般的には、コンピュータアーキテクチャに関し、詳細には、階層アレイコンピュータに関する。以下の説明は、この技術分野における通常の技能を有する者が本発明を作製および使用することを可能にする目的で提示するものであり、特許出願およびその要件に基づいて提供されている。当業者には、本明細書に記載されている好ましい実施形態へのさまざまな修正ならびに一般的な原理および特徴が容易に理解されるであろう。したがって、本発明は、示した実施形態に制限されるようには意図されておらず、本明細書に記載されている原理および特徴に矛盾しない最も広い範囲が許容されるように意図されている。
【００１８】
本発明を説明するため、短い頭字語「ＤＡＣ」が使用されている。この名前は句「独立型アレイコンピュータ：Disjoint Array Computer」から来ており、なぜならＤＡＣコンピュータは並列アレイコンピュータであり、コンピューティングノードのアレイが、共通のバスを共有しない高速データチャネルを使用してマスターコンピュータに接続されているためである。すなわちコンピューティングノードは互いに独立している。図４は、階層的な２レベルのＤＡＣコンピュータ４００の実施形態を示している。
【００１９】
図４において、高速データ経路４０２ａ〜４０２ｎは、（ａ）マスターコンピュータとノードコンピュータ４０３ａ〜４０３ｎそれぞれとの間の通信チャネルと、（ｂ）マスターコンピュータにＮ個のマスストレージメモリセグメント４０４ａ〜４０４ｎを提供する、というデュアル機能を提供する。各メモリセグメント４０４ａ〜４０４ｎは、マスターコンピュータ４０１によって、または代わりに個々のコンピュータノード４０３ａ〜４０３ｎによって、アドレッシング可能であるのみである。マスターコンピュータとノード（コンピューティングレベルにかかわらず）は、通信チャネル４０２ａ〜４０２ｎを使用することによって、マスストレージメモリセグメント４０４ａ〜４０４ｎに単独でアクセスする。図４のＤＡＣコンピュータ４００は、以下の点で独特なメモリマッピング構造を提供し、すなわちレベル１のマスターコンピュータ４０１を対象とする大きなセグメント化メモリを作成することができ、メモリセグメントには、コンピューティングノード４０３ａ〜４０３ｎに接続されている高速独立型データチャネル４０２ａ〜４０２ｎを使用してアクセスされる。
【００２０】
図５Ａは、マスターコンピュータがＮ個のメモリセグメントすべてに単独でアクセスするときに、この共有メモリがマスターコンピュータからどのように認識されるかを示している。図５Ｂは、すべてのノードがメモリセグメントに単独でアクセスするときに、マスターコンピュータがレベル２のノードのアレイをどのように認識するかを示している。
【００２１】
この実施形態は、それぞれが自身のコントローラを有する多数のメモリブロックが、１つのメモリマネージャによって制御される大きな分散メモリストア（distributed memory store）としてみなされ得るようにすることによって、分散マスストレージアーキテクチャを作成する手段を提供する。したがって、ＤＡＣメモリ構造は、比較的小さいメモリブロックの増大を使用して線形的に拡張する能力を有するメモリストアを提供する。例えば、図４のＤＡＣコンピュータが、それぞれが１ＴＢのＳＳＤフラッシュドライブを有する３２個のノードを有し、これらが４ＴＢのＳＳＤドライブに置き換えられる場合、レベル１のＤＡＣコンピュータによって認識される合計メモリは、３２ＴＢから２５６ＴＢに増大する。
【００２２】
各メモリセグメントが自身のコントローラを有するこのような分散ストレージアーキテクチャの主たる利点として、１つの大きなストア内に存在する同じ量のストレージが１つのメモリコントローラによってアクセスされる場合よりも、各メモリセグメントにずっと高速にアクセスすることができる。
【００２３】
第２の主たる利点として、コンピューティングノードが、それぞれが処理するように課せられているデータに密結合され、この結合によって、別のノードまたはマスターコンピュータとのあらゆる衝突が排除される。
【００２４】
個々のメモリセグメントが、マスターコンピュータによって、または代わりに分離されているコンピューティングノードによって、完全に所有されるというデュアル特性は、ＤＡＣ設計の重要な要素である。これにより、マスターコンピュータおよびノードコンピュータの両方におけるソフトウェアプログラムは、自身がアクセスしているメモリを完全に所有することができ、マルチポートメモリに一般に関連付けられるインタラクティブ問題を処理しなくてよい。
【００２５】
図４、図５Ａ、および図５Ｂに示した上述したアーキテクチャは、本発明者らが、独立型メモリ（disjoint memory）を使用する独立型コンピューティング（disjoint computing）と称するものである。
【００２６】
図４のＤＡＣ共有メモリの同じ領域に、マスターコンピュータ４０１と、コンピューティングノード４０３の１つの両方によって同時にアクセスされるべきではないため、マスターコンピュータが共有メモリへの排他的アクセスを調整できるようにする手段を、マスターコンピュータとすべてのコンピューティングノードとの間に提供しなければならない。
【００２７】
図６は、ＤＡＣコンピュータアーキテクチャの図４の好ましい実施形態の１つのバージョンを示しており、レベル１のコンピュータ６００とレベル２のノード６０３との間の高速データチャネルがＵＳＢシリアルチャネル６０２である。この実施形態においては、コンピューティングノードのＵＳＢデバイスポート６０４が、マスターコンピュータのＵＳＢホストポート６０１に接続されている。ノードのＵＳＢデバイスポートドライバは、スリーウェイＵＳＢマルチガジェットアーキテクチャ（three way USB multi-gadget architecture）をサポートし、このアーキテクチャによってマスターコンピュータは、自身のＵＳＢホストポート６０１が３つの異なるＵＳＢガジェット（すなわちメモリストレージブロックＩ／Ｏデバイス６０４ｂ、Ｅｔｈｅｒｎｅｔポート６０４ａ、およびＴＴＹポート６０４ｃ）に接続されているものと認識することができる。この特定の実施形態においては、ＵＳＢブロックＩ／Ｏデバイス６０４ｂは、コンピューティングノードの物理ストレージドライブ６０６にマッピングされている。ＵＳＢガジェットである仮想Ｅｔｈｅｒｎｅｔポート６０４ａは、マスターコンピュータとコンピューティングノードとの間のコマンドチャネルとして使用することができる。ＵＳＢガジェットであるＴＴＹポート６０４ｃは、コンピューティングノードを識別および初期化する目的にマスターコンピュータによって使用することができる。
【００２８】
上の実施形態では、マスターコンピュータをコンピューティングノードに接続するのにＵＳＢ接続が使用されていたが、サポートソフトウェアドライバを有する別の物理バスを使用して、上述した方法と同じようにマスターコンピュータをノードコンピュータに接続することもできる（マスターコンピュータおよびノードコンピュータにおけるそれぞれのＰＣＩｅバスに接続されるカスタムＦＰＧＡの使用を含む）。
【００２９】
Ｗｅｂブレードサーバは、高速Ｗｅｂトラフィックを処理するのにしばしば使用される。最初の方で説明したブレードサーバアーキテクチャは、図４に示したＤＡＣコンピュータの好ましい実施形態に似ている。いずれの実施形態も、通常では標準のサーバラックに収まるように設計される。いずれも、個々の処理ノードに給電するのに共通の電源を使用する。いずれも、処理ノードを制御するためのマネージャを有する。
【００３０】
しかしながら、標準的なＷｅｂブレードサーバと、提示したＤＡＣコンピュータの好ましい実施形態との間には、大きな違いが存在する。データ転送のための、ブレードサーバの主たる通信チャネルは、ブレード管理モジュールを含むすべてのブレードに接続されている高速バスである。ＤＡＣコンピュータは、代わりに、自身のマスターコンピュータとコンピュータノードとの間の個別のデータチャネルを使用する。これに加えて、ＤＡＣコンピュータのメモリ構造は新規のストレージメモリであり、このストレージメモリを使用して、ＤＡＣマスターコンピュータを対象とする大きなセグメント化メモリと、ＤＡＣコンピューティングノードを対象とする、これに代わるより小さいメインメモリセグメントの両方を提供する。さらには、ＤＡＣノードは、ＤＡＣコンピュータエンクロージャの外側の外部メモリに直接アクセスしないのに対して、Ｗｅｂサーバブレードは、Ｅｔｈｅｒｎｅｔネットワークなどのネットワーク接続を通じて外部メモリを直接アドレッシングする。
【００３１】
階層ＤＡＣコンピュータアーキテクチャでは、ＤＡＣマスターコンピュータとＤＡＣコンピューティングノードとの間の通信およびメモリの完全な直交性を維持することによって、ハードウェア設計およびソフトウェア設計の両方において他に類を見ない単純性が達成される。
【００３２】
これに加えて、セグメント化されたストレージメモリをコンピューティングノードに物理的に配置することによって、極めて大きなストレージを多数のメモリコントローラによって容易に制御することができる。
【００３３】
ここまで本発明について、示した実施形態に従って説明してきたが、これらの実施形態のバリエーションを導くことができ、それらのバリエーションが本発明の趣旨および範囲内であることが、この技術分野における通常の技能を有する者には容易に認識されるであろう。したがって、この技術分野における通常の技能を有する者には、添付の請求項の趣旨および範囲から逸脱することなく、多くの修正を行うことができる。
【図１】
0006738408.tif 000002
【図２】
0006738408.tif 000003
【図３】
0006738408.tif 000004
【図４】
0006738408.tif 000005
【図５Ａ】
0006738408.tif 000006
【図５Ｂ】
0006738408.tif 000007
【図６】
0006738408.tif 000008