(57)【要約】【課題】  セキュリティ技術と分散計算機資源管理技術の問題を解決することにより、グリッドコンピューティング利用の効率化及び普及を促進することを目的とする。【解決手段】  本発明は、グリッドコンピューティングの効率化及び普及に関して問題となるセキュリティ技術と分散計算機資源管理技術とを改善するものである。そのために本発明は、マイクロプロセッサレベルに、これらの制御技術をサポートする仕組みが必要であるという考えに基づいて、ハードウェア部分とソフトウェア部分から成るマイクロプロセッサにおいて、そのソフトウェア部分にセキュリティ技術や分散計算機資源管理をサポートするシステムを備えたことを特徴とするものである。【選択図】  図９
2005056408.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェア部分とソフトウェア部分とから構成され、
前記ソフトウェア部分に、グリッドコンピューティングを構築する場合にセキュリティを維持する為の補助システムが備えられていることを特徴とするマイクロプロセッサ。
【請求項２】
ハードウェア部分とソフトウェア部分とから構成され、
前記ソフトウェア部分に、グリッドコンピューティングを構築する場合に計算機資源管理の補助システムが備えられていることを特徴とするマイクロプロセッサ。
【請求項３】
請求項２において、前記計算機資源管理の補助システムは、計算機資源の性能及び計算機資源の状態のモニタリング、ジョブ及び計算機資源のスケジューリング、実行方式のうち少なくとも一を補助するものであることを特徴とするマイクロプロセッサ。
【請求項４】
ハードウェア部分とソフトウェア部分から構成され、
前記ソフトウェア部分に、グリッドコンピューティングを構築する場合の消費電力制御システムを有することを特徴とするマイクロプロセッサ。
【請求項５】
ハードウェア部分とソフトウェア部分から構成されたマイクロプロセッサを有し、
前記ソフトウェア部分にグリッドコンピューティングを構築する場合のセキュリティを維持する為の補助システムを有し、
前記補助システムと、ミドルウェアに存在するグリッドコンピューティング構築支援ソフトウェアとが連携することによって、セキュリティの性能を向上させることを特徴とするグリッドコンピューティングシステム。
【請求項６】
ハードウェア部分とソフトウェア部分から構成されたマイクロプロセッサを有し、
前記ソフトウェア部分にグリッドコンピューティングを構築する場合の計算機資源管理の補助システムを有し、
前記補助システムと、ミドルウェアに存在するグリッドコンピューティング構築支援ソフトウェアとが連携することによって、グリッドコンピューティングの性能を向上させることを特徴とするグリッドコンピューティングシステム。
【請求項７】
ハードウェア部分とソフトウェア部分から構成されたマイクロプロセッサを有し、
前記ソフトウェア部分にグリッドコンピューティングを構築する場合の消費電力制御システムを有し、
前記消費電力補助システムと、ミドルウェアに存在するグリッドコンピューティング構築支援ソフトウェアとが連携することによって、グリッドコンピューティングの全体の消費電力を低減させることを特徴とするグリッドコンピューティングシステム。
【請求項８】
ハードウェア部分とソフトウェア部分から構成されたマイクロプロセッサを有し、
前記ソフトウェア部分にグリッドコンピューティングを構築する場合のセキュリティを維持する為の補助システムを有し、
前記補助システムと、センターサーバーに存在するグリッドコンピューティング構築支援ソフトウェアとが連携することによって、セキュリティの性能を向上させることを特徴とするグリッドコンピューティングシステム。
【請求項９】
ハードウェア部分とソフトウェア部分から構成されたマイクロプロセッサを有し、
前記ソフトウェア部分にグリッドコンピューティングを構築する場合の計算機資源管理の補助システムを有し、
前記補助システムと、センターサーバーに存在するグリッドコンピューティング構築支援ソフトウェアとが連携することによって、グリッドコンピューティングの性能を向上させることを特徴とするグリッドコンピューティングシステム。
【請求項１０】
ハードウェア部分とソフトウェア部分から構成されたマイクロプロセッサを有し、
前記ソフトウェア部分にグリッドコンピューティングを構築する場合の消費電力制御システムを有し、
前記消費電力制御システムと、センターサーバーに存在するグリッドコンピューティング構築支援ソフトウェアとが連携することによって、グリッドコンピューティングの全体の消費電力を低減させることを特徴とするグリッドコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グリッドコンピューティングを利用する上で、重要となるセキュリティ技術や分散計算機資源管理技術を補助するシステムをマイクロプロセッサレベルに構成する技術に関する。
【背景技術】
【０００２】
グリッドコンピューティングという技術が、IT(Information Technology)のキーワードとして、取り上げられることが多くなってきている。「グリッド」とは"power grid"（高圧線送電網）から来た言葉であり、地理的に分散したコンピュータを組み合わせることで、その処理能力を、あたかも電気のようにその発生場所を気にせずに使用できるようにしようという発想から来ている。グリッドという言葉が登場したのは、1998年に米国アルゴンヌ国立研究所のIan Fosterにより記されている（非特許文献１参照。）。但し、その内容は、それまでにも培われてきた分散コンピューティング、或いは、クラスタコンピューティング技術の流れをくむものである。
【非特許文献１】Ian Foster, "The Grid: Blueprint for a New Computing Infrastructure", Morgan-Kaufmann, July 1998 インターネット <URL: http://www.bh.com//mk/default.asp?isbn=1558604758>
【０００３】
グリッドコンピューティングを構築する為の仕組み作りは、現在のところ主にミドルウェアレベルで行われており、Globus ToolKitがある種のデファクトスタンダードとなっている。Globus ToolKitは、米国アルゴンヌ国立研究所と南カリフォルニア大学を中心とした米国の大学、及び、IBM社、マイクロソフト社といった企業が参加するGlobusプロジェクトチームによって開発された。Globus ToolKitは、グリッドコンピューティングに必要なプリミティブな機能、即ち、オペレーティングシステム(OS)などのプラットフォームに直結した資源管理、資源情報サービス、データ管理の機能だけを用意している。
【０００４】
従って、Globus ToolKitだけを使ってグリッドコンピューティングを運用することは容易ではないが、グリッドコンピューティング運用を目的としたGlobus ToolKitと連携を図るミドルウェアが増えている。一言でグリッドコンピューティングといっても様々な利用方法があるので、まず、ここでは、技術的背景を明確にする為に、代表的な利用方法として、メタコンピューティング、ハイスループットコンピューティング、メガコンピューティング、グリッドポータル、データグリッド、アクセスグリッドについて簡単に紹介する。
【０００５】
最初に、メタコンピューティングと呼ばれている方法は、グリッド環境で接続された計算機を複数利用し、１台では扱えない大規模な問題を解く試みである。MPI（Message Passing Interface）を用いた複数の計算機間での並列処理は、メタコンピューティングの一つの実施方法である。複数計算機間でのMPIを実現するミドルウェアの多くは、計算機内ではベンダ提供のMPIを用い、計算機間はTCP/IPにより通信を実装している。これらのミドルウェアを用いることにより、MPIで開発された並列プログラムを、大きな変更を加えずにグリッド環境で稼働させることが可能となる。
【０００６】
ハイスループットコンピューティングは、多数の処理をグリッド上の計算資源に分散し、高速に実行する方法である。具体的な実現方法としては、多数のジョブをスケジューリングして複数の資源に投入する方法と、RPC（Remote Procedure Call）と呼ばれる遠隔の計算機に処理を依頼する方法が挙げられる。Globus Toolkitにも、ローカルな資源に対してジョブを作成する機能はあるが、RSL（Resource Specification Language）と呼ばれる煩雑なAPIでジョブの情報を指定しなければならない。また、資源を複数同時に確保する機能（DUROC：Dynamically Updated Request Online Co-allocator）はあるが、資源間におけるジョブの負荷分散を行うスケジューリング機能はない。ローカルな資源に対するジョブマネージャと、資源間の動的負荷分散を行うスケジューラをGlobusと組み合わせることが、ハイスループットコンピューティングの簡便な実現方法である。
【０００７】
メガコンピューティングとは、アイドル状態にある世界中のパソコン等の計算機を有効利用して、さまざまなデータ解析を進める利用方法であって、その利用する計算機の数は、文字通り数百万台以上を想定している。代表的な利用例として、地球外知的生命体の探索プロジェクト"SETI@home(Search for Extra-Terrestrial Intelligence)"がある。このプロジェクトは、カリフォルニア大学のDavid Andersonにより1997年からシステムの検討が行われて、1999年5月より一般のパソコンの参加による実験が開始されており、そのパソコンの数は400万台以上という巨大プロジェクトである。
【０００８】
グリッドポータルは、一度のログインで複数のサイトへのアクセスを可能にするシングルサインオンなどを活用し、グリッド上のさまざまな資源、サービスの利用を簡便にすることができる方法である。
【０００９】
計算資源そのものへのアクセス手段を提供するポータルや機能へのアクセスを提供するポータルが存在する。ポータルは、単なるサービスの入り口ではなく、スケジューリング、過去の計算結果の検索や比較、複数のサイトのサービス連携などの機能を加えることによって、さらに利便性を向上することができる。Webサービスの世界でもポータルに関する技術開発は進められており、WSIA（Web Services for Interaction Applications）、WSRP（Web Services for Remote Portals）、WSXL（Web Services eXperience Language）など、さまざまな仕様が共存している状態である。
【００１０】
情報資源として膨大なデータに焦点を当てたグリッドをデータグリッドと呼ぶ。高エネルギー物理学や天体物理、バイオインフォマティクスなどの分野では、測定されたデータの共有に対するニーズが高く、観測装置の数が少ないが得られるデータが膨大な場合や、装置の数が多くても測定対象が非常に多いためにデータが膨大となる場合には、解析に大勢の研究者の協力が必要となるのでデータグリッドは有用である。科学技術の分野では、データサイズが大規模であるが故に、一カ所に集中できず、分散ファイルとして取り扱うニーズがある。また、グリッド上でのデータベースの取扱いについても研究開発が進んでいる。
【００１１】
アクセスグリッドは、グリッド上のヒューマンインタラクション支援を目的とした、米アルゴンヌ国立研究所が中心のプロジェクトおよびソフトウェアであり、遠隔地の研究者と視覚や聴覚のイメージを共有することにより、高度な共同研究を行うことができる方法である。従来のテレビ会議システムに対し臨場感が良いほか、コモディティパーソナルコンピュータとソフトウェアで実現している点が大きく異なる。このため、画面やカメラ、マイクの数を容易に増やすことができ、任意の規模のアクセスグリッドノードを構築できる。また、IPマルチキャストと広帯域のバックボーンを用いることにより、高いスケーラビリティを実現しており、数十以上の地点でのコラボレーションが可能となっている。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上記で述べた様に、グリッドコンピューティングは、様々な多様性と急速なネットワーク技術の普及に伴う将来性を秘めている。また、ビジネスとしての期待も非常に大きい。但し、グリッドコンピューティングの普及を促進する為には、解決しなければならない幾つかの課題を残している。特に重要な課題は、下記の二つである。
【００１３】
第一の課題は、セキュリティである。グリッドコンピューティングにおいて、セキュリティは特に難しく、悩ましい問題である。使用されている計算機資源が非常に高価なものであるならば、多くの場合その計算機資源は別個の管理領域に属している。また、実行されているアプリケーションが企業の機密事項を含んでいる場合や、重要な資産として扱われている場合もある。したがって、ユーザは一定の認証と認可のメカニズムと共に、それぞれの計算機資源およびデータに対して「鍵」を持つ必要がある。しかしその一方、一つの複雑な問題を解決するために何百、或いは何百万にも分散された計算機資源を使用する場合においても、利用する手順は単一であるべきと考えられる。SSLとX.509のような既存のソフトウェアセキュリティの標準は、これらの要求を満たすために改善されつつあり、また、Globusのような既存のグリッドコンピューティング環境では、すでにこのようなグリッドコンピューティングにおけるセキュリティ・インフラストラクチャを含んではいる。
【００１４】
第二の課題は、資源管理技術に関するものである。グリッドコンピューティング環境における困難な問題は、分散した計算機資源の管理（DRM）であり、ネットワークで接続された計算資源やデータ資源の状態モニタリング、ジョブと資源のスケジューリング、実行方式などに関する。特に、メガコンピューティングに代表される様に多数の有休資源を用いる場合には、その消費電力を低減する課題も十分考慮する必要がある。
【００１５】
本発明が解決しようとする課題は、上記のセキュリティ技術と分散計算機資源管理技術の問題を解決することにより、グリッドコンピューティング利用の効率化及び普及を促進することにある。この二つの解決すべき問題は、OS等のプラットフォーム上のミドルウェアレベルでの制御技術による解決案がほとんどであり、現在のところまだ多くの課題が残されている。
【課題を解決するための手段】
【００１６】
本発明は、グリッドコンピューティングの効率化及び普及に関して問題となるセキュリティ技術と分散計算機資源管理技術とを改善するものである。そのために本発明は、マイクロプロセッサレベルに、これらの制御技術をサポートする仕組みが必要であるという考えに基づいて、ハードウェア部分とソフトウェア部分から成るマイクロプロセッサにおいて、そのソフトウェア部分にセキュリティ技術や分散計算機資源管理をサポートするシステムを備えたことを特徴とするものである。
【００１７】
本発明は、ハードウェア部分とソフトウェア部分とから構成されたマイクロプロセッサに関するものであり、特に以下に示す特徴を有している。
【００１８】
前記したソフトウェア部分に、グリッドコンピューティングを構築する場合にセキュリティを維持する為の補助システムが備えられていること。
【００１９】
前記したソフトウェア部分に、グリッドコンピューティングを構築する場合に計算機資源管理の補助システムが備えられていること。この計算機資源管理の補助システムは、計算機資源の性能及び計算機資源の状態のモニタリング、ジョブ及び計算機資源のスケジューリング、実行方式などを補助するものである。
【００２０】
前記したソフトウェア部分に、グリッドコンピューティングを構築する場合の消費電力制御システムが備えられていること。
【００２１】
また、上記した本発明において、前記したソフトウェア部分には、上記した補助システム又は制御システムが複数種組み合わされた構成とすることもできる。
【００２２】
本発明は、ハードウェア部分とソフトウェア部分とから構成されたマイクロプロセッサを用いて構築されるグリッドコンピューティングシステムに関するものであり、特に以下に示す特徴を有している。
【００２３】
前記したソフトウェア部分に、グリッドコンピューティングを構築する場合のセキュリティを維持する為の補助システムを有し、その補助システムと、ミドルウェアに存在するグリッドコンピューティング構築支援ソフトウェアとが連携するものであり、セキュリティの性能を向上させることを可能としている。
【００２４】
前記したソフトウェア部分に、グリッドコンピューティングを構築する場合の計算機資源管理の補助システムを有し、その補助システムと、ミドルウェアに存在するグリッドコンピューティング構築支援ソフトウェアとが連携するものであり、グリッドコンピューティングの性能を向上させることを可能としている。
【００２５】
前記したソフトウェア部分に、グリッドコンピューティングを構築する場合の消費電力制御システムを有し、その消費電力補助システムと、ミドルウェアに存在するグリッドコンピューティング構築支援ソフトウェアとが連携するものであり、グリッドコンピューティングの全体の消費電力を低減させることを可能としている。
【００２６】
前記したソフトウェア部分に、グリッドコンピューティングを構築する場合のセキュリティを維持する為の補助システムを有し、その補助システムと、センターサーバーに存在するグリッドコンピューティング構築支援ソフトウェアとが連携するものであり、セキュリティの性能を向上させることを可能としている。
【００２７】
前記したソフトウェア部分に、グリッドコンピューティングを構築する場合の計算機資源管理の補助システムを有し、その補助システムと、センターサーバーに存在するグリッドコンピューティング構築支援ソフトウェアとが連携するものであり、グリッドコンピューティングの性能を向上させることを可能としている。
【００２８】
前記したソフトウェア部分に、グリッドコンピューティングを構築する場合の消費電力制御システムを有し、その消費電力制御システムと、センターサーバーに存在するグリッドコンピューティング構築支援ソフトウェアとが連携することを特徴とするものであり、グリッドコンピューティングの全体の消費電力を低減させることを可能としている。
【００２９】
また、本発明において、前記したソフトウェア部分には、上記した補助システム又は制御システムが複数種組み合わされた構成とすることもできる。
【発明の効果】
【００３０】
本発明は、ハードウェアとソフトウェアから構成されたマイクロプロセッサにおいて、そのソフトウェア部分にセキュリティ技術、或いは、計算機資源管理技術の補助システムを有することによって、グリッドコンピューティングの効率化とセキュリティを保証することが可能となる。
【００３１】
また、本発明は、ハードウェアとソフトウェアから構成されたマイクロプロセッサを用いたグリッドコンピューティングシステムにおいて、そのマイクロプロセッサのソフトウェア部分にセキュリティ技術、或いは、計算機資源管理技術の補助システムを有することによって、セキュリティの性能を向上、グリッドコンピューティングの性能を向上、グリッドコンピューティングの全体の消費電力を低減などの効果を得ることができる。
【発明を実施するための最良の形態】
【００３２】
本発明の実施の形態について図面を用いて詳細に説明する。ただし、本発明は以下の説明に限定されず、本発明の趣旨及びその範囲から逸脱することなくその形態及び詳細を様々に変更し得ることは当業者であれば容易に理解される。従って、本発明は以下に示す実施の形態の記述内容に限定して解釈されるものではない。
【００３３】
まず、ここでは、技術的な事柄を明確にする為に、グリッドコンピューティングを構成する仕組みを、マイクロプロセッサレベルから、説明することとする。例えば、一台の計算機に一つのマルチプロセッサが、搭載されている場合は、一つのプロセッサでシステム全体の処理を行うことになる。これに対して、複数のマイクロプロセッサを同時に使用することによって、システム全体の処理能力を上げるシステムをマルチプロセッサシステムと呼ぶ。マルチプロセッサシステムは、MIMD(Multiple Instruction/Multi Data)型の並列計算機として、UMA(Uniform Memory Access)モデル、NUMA(Non-Uniform Memory Access)モデル、NORA(No Remote Memory Access)があげられる。
【００３４】
UMAモデルのマルチプロセッサシステム１５は、すべてのマイクロプロセッサがアドレス空間を共有し、同一時間でアクセス可能な共有メモリのモデル、或いは、その様なメモリをもつアーキテクチャーのことである。このアーキテクチャーは、図１に示される様に、均一なアクセスを前提としており、共有メモリ（ＭＥＭ）１２は、すべてのマイクロプロセッサ（ＭＰＵ）１１から等距離にあり、プロセッサ能力にも差がないシステムでなければならない。基本的に共有メモリへのアクセスは、共有バス１３を介して行われる。また、一つのOSで共有メモリ空間を管理しているので、比較的制御が簡単である。但し、均一なアクセスを要求する為に、スケーラビリティに欠ける。図１中１４は、スヌープキャッシュを示している。NUMAモデルのマルチプロセッサシステム２５は、すべてのマイクロプロセッサがアドレス空間を共有するメモリを持つが、あるマイクロプロセッサから見たアクセススピードは、メモリ番地によって異なるモデル、或いは、その様なメモリをもつアーキテクチャーのことである。このアーキテクチャーは、不均一なアクセスを許しており、スケーラビリティが高い。図２に示す様に、共有メモリはマイクロプロセッサ（ＭＰＵ）２１の能力や距離に依存せず、分散共有メモリ（ＭＥＭ）２２としてとして配置されている。マイクロプロセッサ、或いは、複数のマイクロプロセッサで一つのサブシステムをなし、OSは、それぞれ独立に稼働する。それぞれのサブシステムは、共有メモリに対する固有アドレス空間を持ち、他のサブシステムにあるある共有メモリ部分にアクセスする場合は、そのアドレス変換等を行う。サブシステムは、クロスバー・スイッチ等の結合網２３で連結されている。NORAモデルは、各プロセッサは、互いに独立したアドレス空間のメモリを持ち、メッセージのやりとりによって計算を進めていくモデルである。
【００３５】
図３に示されている様に、これらのシングルプロセッサシステム（ＳＰＳ）３１やマルチプロセッサシステム（ＭＰＳ）３２をイーサーネット等のネットワーク（Ｎｅｔｗｏｒｋ）３３によって、連結したシステムをクラスターシステムと呼ぶ。ネットワークによって接続されたプロセッサ間の通信速度は、マルチプロセッサ内の通信速度に比べて、通常、一桁から二桁小さい。また、プロセッサ間の通信は、MPI等のミドルウェアによって制御されている。更に、グリッドコンピューティングというのは、図４に示される様に、シングルプロセッサシステム（ＳＰＳ）４１、マルチプロセッサシステム（ＭＰＳ）４２、及び、クラスターシステム（ｃｌｕｓｔｅｒ）４３が、ネットワーク（Ｎｅｔｗｏｒｋ）４５によって、有機的に接続された分散コンピューティングアーキテクチャーとして理解出来る。場合によっては、グリッドシステム（ｇｒｉｄ）４４自体が接続されることもある。
【００３６】
次に、本発明の構成要因となるソフトウェアとハードウェアから成るマイクロプロセッサに関して、発明の特徴を明確にする目的で、現在市販されている同様な構成のマイクロプロセッサについても説明する。
【００３７】
２０００年１月に米Transmeta社によって、リリースされたx86互換プロセッサCrusoeは、ソフトウェアとハードウェアから構成されており、そのハードウェア部分が、VLIW型アーキテクチャーを有することを特徴とした、それまでのCISC(Complex Instruction Set Computer)やRISC(Reduced Instruction Set Computer)アーキテクチャーと異なるマイクロプロセッサである。
【００３８】
それまで多く使われていたx86互換プロセッサは、Out-of-Order型スーパースカラ・アーキテクチャーである。ここで、Out-of-Orderとは、オブジェクト・コードで記述された命令の実行順序にかかわりなく命令を実行する機能であって、命令間に依存関係がないことを検証する機能、及び、実行済み命令の演算結果をオブジェクト・コードで記述された順番に並び直す機能を必要とする。また、スーパースカラとは、２個以上の命令を同時に実行する機能。１サイクルで実行する平均命令数が多くなるので、１命令しか実行しないマイクロプロセッサに比べて、同じ動作周波数でも高い演算機能を発揮することが可能となる。
【００３９】
Crusoeのプロセッサアーキテクチャは、VLIW(Very Long Instruction Word)を採用して、x86互換性をCode Morphing Softwareと呼ばれるランタイム・ソフトウェアプログラムによりX86オブジェクト・コードを実行時にVLIWコードに変換し、VLIWプロセッサでエミュレーションすることを特徴としている。これに、付随する特徴としては、低消費電力性がある。複雑な、Out-of-Order型スーパースカラ・アーキテクチャから単純なVLIWアーキテクチャーにしたことで、必要とするトランジスタ数を半減することに加えて、Transmeta社で"LongRun Technology"と呼ぶ動的電源電圧最適化を採用している。
【００４０】
ここで、VLIW技術とは、128ビット、或いは、256ビットといった長いフォーマットの命令で、複数の演算ユニットを使った処理を並列に記述するアーキテクチャーであり、例えば、１命令で、32ビット命令を４個分、或いは、８個分の処理が可能となる。この技術は、Josh Fisherが、1978年に初めて発表した技術である。
【００４１】
さて、上記で述べた要素技術であるVLIW技術やソフトウェアを用いたコード変換技術は、注目には値するが、個々の技術そのものは、それほど目新しい技術ではない。Crusoeで注目されている技術的価値は、動的コンパイラを備えたVLIW型マイクロプロセッサであることが重要である。なぜならば、VLIW技術とコード変換技術の単なる組み合わせを行う場合には、技術的問題点を抱えることになる。問題点とは、コード変換の時間的、及び、空間的オーバーヘッドである。時間的オーバーヘッドとは、例えば、x86オブジェクト・コードをネイティブのVLIWコードに変換するのに要する時間であり、空間的オーバーヘッドとは、コード変換ソフト自身が主記憶に占める大きさ、及び、変換後のVLIWコードを主記憶上にキャッシングするのに要するメモリサイズである。特に、時間的オーバーヘッドの問題は重要であり、せいぜい直接実行するプロセッサの数十％の性能しか出ないのが通常である。
【００４２】
Transmeta社は、動的バイナリ・コード変換技術を採用することによって、これらのオーバーヘッドの問題解決をはかっている。これらの動的コンパイラ技術は、従来の静的コンパイラ技術による最適化を補完するものである。動的コンパイル技術とは、あるプログラムのオブジェクト・コードに命令スケジューリングを施すことで、特定のマイクロプロセッサに対して最適化したオブジェクト・コードに変換するソフトウェアを呼ぶ。
【００４３】
ハードウェアのボトルネックをソフトウェアで解消するこれらの技術について、より具体的に図５を用いて説明する。図５（a）のスーパースカラ型マイクロプロセッサでは、命令スケジューリングがハードウェアで構成されており、ボトルネックとなっていた。それに対して、図５（b）の様な動的コンパイラを備えたVLIW型プロセッサは、ソフトウェアで命令スケジューリングを担っているので、ハードウェアでの命令スケジュール回路は、不要になる。ハードウェアとしては、その分回路が単純となり、動作周波数を上げることが容易となる。ちなみにプロセッサの演算性能は、次式１で表現される。
【００４４】
（式１）
演算性能＝動作周波数×１サイクルに実行する命令の平均数
【００４５】
１サイクルに実行する命令の平均数という観点からも、動的コンパイラを備えたVLIW型プロセッサは、より優れている。最大の利点は、スケジューリングの自由度が大きいことである。このことを図６を用いて説明する。図６（a）の様に、スーパースカラ構造を有するマイクロプロセッサでは、主記憶からフェッチした命令をリオーダ・バッファと呼ばれるバッファにいったん格納する。Out-of-order実行機能によって、格納した命令の中から同時に実行できるものを選択して演算ユニットに送り込む。ところが、リオーダ・バッファに格納出来る命令数は、数十個〜百数十個程度しかないので、同時に実行出来る命令を見つけにくい。すなわち、ハードウェアによるスケジューリングでは、マイクロプロセッサに集積可能なリオーダ・バッファの容量によってスケジューリングの自由度が制限されてしまう。
【００４６】
これに対して、図６（b）の様に、主記憶に格納した多くの命令の中から同時に実行できる命令を選択する動的コンパイラならば、同時に実行出来る命令を発見する確率が高くなる。すなわち、同じオブジェクト・コードを実行する場合、スーパースカラ型プロセッサに比べて、動的コンパイラを備えたVLIWプロセッサでは、１サイクルに実行する命令の平均数を増やすことが可能となる。１サイクルに実行する命令の平均数は、次式２の様に、IPC、TCM、DCOによって表現されるが、上記で述べたことは、IPCの低減を意味する。ここで、IPCとは１命令の実行に必要なサイクル数、TCMとはトランスレーション・キャッシュのミス率、DCOとは動的コンパイラのオーバーヘッドを意味する。
【００４７】
（式２）
１サイクルに実行する命令の平均数＝１/(IPC＋TCM×DCO)
【００４８】
TCMは、キャッシュ容量の増大で低減可能である。DCOの低減も動的コンパイラにとって、有利なところである。プログラムの実行状況に応じて、繰り返し実行する命令パスを検出し、その部分を重点的にスケジューリングして最適化することで、動的コンパイラのオーバーヘッドを低減できる。しかも、一度最適化したオブジェクト・コードをキャッシュに蓄えることを行えば、次に実行する時には、動的コンパイラも使う必要が無くなり、その後のオーバーヘッドを激減することが可能となり、Crusoeでは、この辺りも考慮されている。Crusoeでは、更に、動的コンパイラの効率を上げるために幾つかのハードウェアの補助機能を追加している。シャドウ・レジスタ機能とゲート付きストア・バッファ機能である。これにより、スペキュレーション処理時の例外を正確に行うことが可能となる。詳細は、米国特許第6,031,992号等に記載されている。また、Crusoeはエイリアス・ディテクションのメカニズムやトランスレイティド・ビットをもっている。
【００４９】
ここで、述べたCrusoeの様に、これまでのソフトウェアとハードウェアから構成されたマイクロプロセッサは、ハードウェア部分を簡略化することによって、設計の簡素化、及び、低消費電力化を図ることを目的としており、ハードウェア部分は、VLIW型アーキテクチャーであることも特徴である。
【００５０】
これに対して、本発明のマイクロプロセッサは、ソフトウェアとハードウェアから構成されているが、そのソフトウェア部分には、グリッドコンピューティングにおけるセキュリティや分散した資源管理を補助するシステムを有することを特徴としている。また、ハードウェア部分は、VLIW型アーキテクチャーに限定する必要はない。
【００５１】
まず、グリッドコンピューティングを構成する計算機内における各階層の位置づけを図７に示す。マイクロプロセッサ（ＭＰＵ）７５やネットワーク機器（Ｎｅｔｗｏｒｋ）７６といったマザーボードやI/O関連で構成される最下層７１の上に、OS等を含むプラットフォーム層（Ｐｌａｔｆｏｒｍ）７２が存在する。例えば、Windows、Linux、Unixといったオペレーティングシステムは、この層に相当する。その上には、ミドルウェア（Ｍｉｄｄｌｅ  ｗａｒｅ）７３呼ばれている層であり、大きく下位レベルミドルウェア（Ｌｏｗ  Ｌｅｖｅｌ）７７と上位レベルミドルウェア（Ｈｉｇｈ  Ｌｅｖｅｌ）７８に分けられる。下位レベルミドルウェアには、先述したGlobus７９等のグリッドコンピューティングにおけるセキュリティや計算機資源管理をつかさどるソフトウェアが存在する。上位ミドルウェア層には、Globusとの連携をとって、グリッドコンピューティング環境を構築するソフトウェアも存在する。ここでは、現在のデファクトスタンダードとして、Globusを例にあげているが、OGSA(Open Grid Services Architecture)などその他のミドルウェアであっても良い。最上位層に通常のアプリケーションの層（Ａｐｐｌｉ）７４が存在する。
【００５２】
次に、グリッドコンピューティングを構成した場合の計算機間の通信において、階層間でやりとりが行われている概念図を図８に示す。イーサーネットに代表されるネットワークの層（Ｎｅｔｗｏｒｋ）８１の上に計算機間の通信の基本プロトコルであるTCP/IPと計算機内のプロセッサ間通信を行う為のMPIの層（MPI）８２が存在する。その上にGlobusに代表される下位レベルのミドルウェア層（Globus）８３、上位レベルミドルウェア（ＨＬＭＷ）８４、MPIアプリケーション層（MPIアプリ）８５が順に存在する。先述した様に、Globusに限らずその他のグリッドコンピューティング構築ソフトウェアでも良い。
【００５３】
次に、本発明の特徴となるソフトウェア部分とハードウェア部分から成り、図７のMPU７５に相当するマイクロプロセッサの構成について説明する。図９に本発明のマイクロプロセッサを含む周辺の構成図を示す。
【００５４】
図９（a）（b） (c) (d)で示されるように、本発明のマイクロプロセッサ９３は、ハードウェア部分（PHW）９１とソフトウェア部分（PSW）９２からなっており、ソフトウェア部分に、グリッドコンピューティングを構築する場合に必要となるセキュリティ技術、或いは、計算機分散管理技術を補助するシステムを含んでいる。本発明の主要な部分である。ソフトウェア部分の上に、オペレーションシステム（OS）９４が存在し、その上に一般のアプリケーション（AP）９５が存在する。ここでのアプリケーションとは、ミドルウェア等も含む。場合によっては、図９（b）の様に、直接オペレーションシステムが、ハードウェア部分をアクセスする場合も考えられる。また、(c)(d)の様にマイクロプロセッサのソフトウェア部分を直接アプリケーションがアクセスする場合も考えられる。
【００５５】
図９のソフトウェア部分の構成を図１０に示す。マイクロプロセッサのソフトウェア部分（ＰＳＷ）１０１に、セキュリティ補助システム（ＳＥＣ）１０２、或いは、計算機資源管理補助システムを含んでいる。消費電力制御システムは、計算機資源管理補助システムに含まれても良いし、独立に、マイクロプロセッサのソフトウェア部分に構築されても良い。このまた、このソフトウェア部分には、動的コンパイラ（ＤＣ）１０４を含むことも可能である。
【００５６】
実際の手続きとしては、セキュリティ補助システムとミドルウェアに存在するグリッドコンピューティング構築支援ソフトウェアと連携することによって、セキュリティの性能を向上させたり、計算機資源管理補助システムをミドルウェアに存在するグリッドコンピューティング構築支援ソフトウェアと連携することによって、グリッドコンピューティングの性能を向上させたり、消費電力制御機能のシステムをミドルウェアに存在するグリッドコンピューティング構築支援ソフトウェアと連携することによって、グリッドコンピューティングの全体の消費電力を低減させることが可能となる。
【００５７】
更に、グリッドシステム全体から見ると、セキュリティ補助システムとグリッドシステムのセンターサーバーに存在するグリッドコンピューティング構築支援ソフトウェアと連携することによって、セキュリティの性能を向上させたり、計算機資源管理補助システムをグリッドシステムのセンターサーバーに存在するグリッドコンピューティング構築支援ソフトウェアと連携することによって、グリッドコンピューティングの性能を向上させたり、消費電力制御機能のシステムをグリッドシステムのセンターサーバーに存在するグリッドコンピューティング構築支援ソフトウェアと連携することによって、グリッドコンピューティングの全体の消費電力を低減させることが更に効率的に可能となる。
【００５８】
セキュリティ補助システムとは、具体的には、例えば、マイクロプロセッサを認証するシステムであったり、マイクロプロセッサIDだったりする。計算機資源管理補助システムは、マイクロプロセッサの性能表であったり、キャッシュしているジョブスケジューリングや命令パスであったりする。消費電力制御機能は、電源電圧を多段階に変更するシステムや割り込み時間の可変システム、理想的なスリープ状態のオンオフシステム等が含まれている。
【実施例】
【００５９】
ソフトウェア部分にセキュリティ補助システム、或いは、計算機資源管理補助システムを備えたマイクロプロセッサは、低消費電力化にも適しているため、メガコンピューティングに適している。
【００６０】
メガコンピューティング構築の流れの例を以下に記す。メガコンピューティングは、グリッド接続用専用ソフトをインストールした計算機とグリッド全体を管理するセンターサーバーによって構築される。
（１）配布された、或いは、Webなどでダウンロードしたグリッド接続専用ソフトを計算機にインストールする。
（２）優先順位の低いタスクとして計算機に常駐している専用ソフトが、アプリケーションやデータの送信をセンターサーバーに要求する。
（３）センターサーバーから、グリッドシステムが並列処理すべき作業の命令となるプログラムを計算機に送信する。
（４）センターサーバーが、データを計算機で処理するのに適切な大きさに分割して、計算機に送信する。
（５）計算機の専用ソフトが、アプリケーションやデータの配信をセンターサーバーから受信し、計算機、或いは、マイクロプロセッサの空き時間に処理を実行する。
（６）計算機の専用ソフトは、処理が終了次第、結果をセンターサーバーへ送信する。また、新たなデータの送信をセンターサーバーへ要求する。
（７）センターサーバーが、各計算機の処理結果を統合して、その統合された処理結果をグリッドシステムとしての処理結果にする。
【００６１】
グリッドシステムが処理すべきデータの全てが処理されるまで（３）から（５）を繰り返す。図１１に上記の流れの概念図を示す。センターサーバー１１１と多数の計算機１１２からグリッドが構築されている。図１１中の（１）〜（６）は、上記流れの番号と対応させている。
【００６２】
多数の有休状態の計算機の中から、処理速度の速い、或いは、適切な計算機を選んだり、個々の計算機で処理するのに適切な大きさにデータを分割する際に、マイクロプロセッサレベルでの性能を確認できることは、非常に効率的である。また、マイクロプロセッサレベルでの認証は、セキュリティ上非常に有効である。多くの計算機の電源を切ることなく、有休状態で保持する場合に、その消費電力の削減は、重要な課題となる。
【００６３】
ある程度、繰り返してデータ処理の依頼がくる場合とそうでない場合において、マイクロプロセッサの有休の仕方を変えることが可能であるのも、このマイクロプロセッサの特徴である。
【００６４】
以上の様に、本発明のマイクロプロセッサは、グリッドコンピューティング構築の上で、非常に効率的、且つ、安全なシステムである。
【図面の簡単な説明】
【００６５】
【図１】UMAモデルの構成を示す概念図。
【図２】NUMAモデルの構成を示す概念図。
【図３】クラスターシステムの構成を示す概念図。
【図４】グリッドコンピューティングの構成を示す概念図。
【図５】スーパースカラ型と動的コンパイラを備えたVLIW型マイクロプロセッサに関するハードウェア構成の比較（日経エレクトロニクス2001.2.26号参照）。
【図６】スーパースカラ型と動的コンパイラを備えたVLIW型マイクロプロセッサに関する命令スケジューリングの比較（日経エレクトロニクス2001.2.26号参照）。
【図７】グリッドコンピューティングを構築する計算機内の構成概念図。
【図８】グリッドコンピューティングを構築する計算機間の通信概念図。
【図９】ソフトウェア部分とハードウェア部分から構成されたマイクロプロセッサ、及び、その周辺の構成図。
【図１０】プロセッサのソフトウェア部分の構成を示す図。
【図１１】メガコンピューティングを構築する流れの概念図。
【図１】
2005056408.tif 000003
【図２】
2005056408.tif 000004
【図３】
2005056408.tif 000005
【図４】
2005056408.tif 000006
【図５】
2005056408.tif 000007
【図６】
2005056408.tif 000008
【図７】
2005056408.tif 000009
【図８】
2005056408.tif 000010
【図９】
2005056408.tif 000011
【図１０】
2005056408.tif 000012
【図１１】
2005056408.tif 000013