(57)【要約】      （修正有）【課題】異種計算機システムを動作させる方法を提供する。【解決手段】１つ以上の高性能プロセッサ６２０と、高性能プロセッサ６２０のソフトウェアのタスク実行を支援するプロセッサ支援論理回路６４１０と、高性能プロセッサ６２０より少電力なハイパーバイザプロセッサ６１０を有し、ハイパーバイザプロセッサ６１０は、自身が処理するのに十分な処理能力を有するソフトウェアのタスクを実行し、高性能プロセッサ６２０を電力節約状態にするか、又は高性能プロセッサ６２０を電力節約状態から抜け出させて、自身が処理するのに不十分な処理能力を有するソフトウェアのタスクを実行させるか、又は高性能プロセッサ６２０とハイパーバイザプロセッサ６１０とが全てのプロセッサの結合された処理能力を必要とするソフトウェアのタスクを同時に実行する。【選択図】図８
2012256308.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上の高性能プロセッサと、該１つ以上の高性能プロセッサがソフトウェアのタスクを実行するのを支援するプロセッサ支援論理回路と、該１つ以上の高性能プロセッサより少ない電力を消費するハイパーバイザプロセッサとを有し、該ソフトウェアを実行するための異種計算機システムにおいて、該異種計算機システムを動作させる方法であって、
ｉ）該ハイパーバイザプロセッサを起動するステップと、
ｉｉ）該ハイパーバイザプロセッサの後、該１つ以上の高性能プロセッサを起動するステップと、
ｉｉｉ）該１つ以上の高性能プロセッサを起動するステップと、
ｉｖ）該１つ以上の高性能プロセッサの後、該ハイパーバイザプロセッサを起動するステップと、のうち１つを含み、
該プロセッサ支援論理回路に支援された該ハイパーバイザプロセッサは、自身が処理するのに十分な処理能力を有する該ソフトウェアのタスクを実行し、該１つ以上の高性能プロセッサを電力節約状態にするか、又は
該ハイパーバイザプロセッサは該１つ以上の高性能プロセッサを該電力節約状態から抜け出させて、自身が処理するのに不十分な処理能力を有する該ソフトウェアのタスクを実行させるか、又は
該１つ以上の高性能プロセッサと該ハイパーバイザプロセッサとが全てのプロセッサの結合された処理能力を必要とする該ソフトウェアのタスクを同時に実行するか、することを特徴とする方法。
【請求項２】
前記１つ以上の高性能プロセッサのそれぞれと、前記ハイパーバイザプロセッサはｘ８６プロセッサであり、同じ半導体チップ上に存在する請求項１に記載の方法。
【請求項３】
前記１つ以上の高性能プロセッサのそれぞれはｘ８６プロセッサであり、前記ハイパーバイザプロセッサはＡＲＭプロセッサであり、全て同じ半導体チップ上に存在する請求項１に記載の方法。
【請求項４】
ローカルプロセッサバスを有する１つ以上の高性能プロセッサと、該１つ以上の高性能プロセッサがソフトウェアのタスクを実行するのを支援するプロセッサ支援論理回路と、該１つ以上の高性能プロセッサより少ない電力を消費するハイパーバイザプロセッサと、該ハイパーバイザプロセッサを該プロセッサ支援論理回路に該ローカルプロセッサバスを介して接続するブリッジ論理回路とを有し、該ソフトウェアを実行するための異種計算機システムにおいて、該異種計算機システムを動作させる方法であって、
ｉ）該ハイパーバイザプロセッサを起動するステップと、
ｉｉ）該ハイパーバイザプロセッサの後、該１つ以上の高性能プロセッサを起動するステップと、
ｉｉｉ）該１つ以上の高性能プロセッサを起動するステップと、
ｉｖ）該１つ以上の高性能プロセッサの後、該ハイパーバイザプロセッサを起動するステップと、のうち１つを含み、
該プロセッサ支援論理回路に支援された該ハイパーバイザプロセッサは、自身が処理するのに十分な処理能力を有する該ソフトウェアのタスクを実行し、該１つ以上の高性能プロセッサを電力節約状態にするか、又は
該ハイパーバイザプロセッサは該１つ以上の高性能プロセッサを該電力節約状態から抜け出させて、自身が処理するのに不十分な処理能力を有する該ソフトウェアのタスクを実行させるか、又は
該１つ以上の高性能プロセッサと該ハイパーバイザプロセッサとが全てのプロセッサの結合された処理能力を必要とする該ソフトウェアのタスクを同時に実行するか、することを特徴とする方法。
【請求項５】
前記ブリッジ論理回路は独立した半導体チップ上に存在する請求項４に記載の方法。
【請求項６】
前記ブリッジ論理回路は前記ハイパーバイザプロセッサと同じ半導体チップ上に存在する請求項４に記載の方法。
【請求項７】
前記ブリッジ論理回路、前記ハイパーバイザプロセッサ、及び前記１つ以上の高性能プロセッサは同じ半導体チップ上に存在する請求項４に記載の方法。
【請求項８】
前記１つ以上の高性能プロセッサのそれぞれはｘ８６プロセッサである請求項４〜７のいずれかに記載の方法。
【請求項９】
前記ハイパーバイザプロセッサはＡＲＭプロセッサである請求項４〜７のいずれかに記載の方法。
【請求項１０】
１つ以上の第１プロセッサと、該１つ以上の第１プロセッサがソフトウェアのタスクを実行するのを支援するプロセッサ支援論理回路と、該１つ以上の第１プロセッサより少ない電力を消費する第２プロセッサとを有し、該ソフトウェアを実行するための異種計算機システムにおいて、該異種計算機システムを動作させる方法であって、
ｉ）該第２プロセッサを起動するステップと、
ｉｉ）該第２プロセッサの後、該１つ以上の第１プロセッサを起動するステップと、
ｉｉｉ）該１つ以上の第１プロセッサを起動するステップと、
ｉｖ）該１つ以上の第１プロセッサの後、該第２プロセッサを起動するステップと、のうち１つを含み、
該プロセッサ支援論理回路に支援された該第２プロセッサは、自身が処理するのに十分な処理能力を有する該ソフトウェアのタスクを実行し、該１つ以上の第１プロセッサを電力節約状態にすることを特徴とする方法。
【請求項１１】
前記第２プロセッサは前記１つ以上の第１プロセッサと異なる位置に存在する請求項１０に記載の方法。
【請求項１２】
前記第１プロセッサのうち１つ以上は前記第１と第２プロセッサの残りと異なる位置に存在する請求項１０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、環境に配慮した演算処理、即ち演算消費電力の最小化に概ね関する。特に、本発明は、最小の演算消費電力で高性能演算処理する異種計算機システムを実現するよう標準のｘ８６アーキテクチャに加えられた低電力マスタープロセッサを有する異種計算機を動作させる方法に関する。
【背景技術】
【０００２】
様々な種類の計算機が現代文明の不可欠な装置となっている。インテルｘ８６（元のアーキテクチャは米国インテル社により設計され米国ＡＭＤ社により最新の６４ビットＣＩＳＣアーキテクチャに進化している）は長く計算機の主流を支配してきた。一方、商業上重要性のある非ｘ８６計算機の世界は、スマートフォン及びタッチスクリーン装置を含む携帯演算装置においてＡＲＭプロセッサ（英国ＡＲＭ社により開発されたＲＩＳＣ・ＡＲＭアーキテクチャ）が現在優勢である。環境に配慮した（グリーンな）演算処理の観点から、ｘ８６と非ｘ８６演算処理の両者の問題は下記の通りである。
【０００３】
ｘ８６デスクトップの休止消費電力を削減するグリーンな演算処理が必要とされている。ｘ８６演算処理は演算能力を必要とするアプリケーションに適している。数億の家庭及びオフィスのデスクトップ及び携帯計算機、専門家用の高性能ワークステーション、及び様々なネット商取引用のサーバーが全世界で設置されており、演算エネルギー消費が環境問題となっている。主要な問題の１つは、演算処理アイドリング（計算機は使用されていないが遮断されていない状態）に関する。
【０００４】
消費電力削減の努力、例えば米国で始まり多くの国で採用されあるレベルの省電力を達成する国際規格であるエネルギースターが存在する。ｘ８６系主流計算機業界も標準電力管理を有する。例えば、オープン業界標準であるＡＣＰＩ（Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ）はオペレーティングシステムが計算機ハードウェアの省電力機能を直接制御するのを可能にする。
【０００５】
しかし、ｘ８６系主流デスクトップ及びラップトップは、内蔵された不便で限定された電力管理機能のため、大多数のユーザにとって真にグリーンな動作を実現するのがしばしば困難である。多くの計算機ユーザにとって、ＡＣＰＩのスリープ／スタンバイ／ハイバネーション電力管理モードは複雑で、計算機が使用に便利で省電力であるよう最良パラメータ設定に調整する仕方を理解しづらい。一方、より高性能な演算処理、例えば複数のセッションの仮想演算処理を含む演算処理の場合、円滑な電力管理をできず、ＡＣＰＩは計算機をクラッシュさせるかＶＭセッションを扱うのが困難であり易い。
従って、その巨大な数のためにデスクトップによる大幅なエネルギー節約の大きな余地が存在する。
【０００６】
ｘ８６系スマート携帯装置を実用的にするグリーンな演算処理が必要とされている。また、標準ｘ８６業界において入手可能な電力管理技術の不完全さのために、ｘ８６系スマートパーソナル装置（例えば、ｘ８６系携帯電話）はバッテリー持続時間が短く実用的でない。実際、商業上のｘ８６系スマートフォンは存在しない。大多数のｘ８６系ラップトップ計算機は移動中バッテリーで一生懸命に丸一日働き続けるのに問題が生じる。その結果、移動中、ｘ８６アプリケーションソフトウェアにアクセスするのが不便である。
【０００７】
ｘ８６ソフトウェアベースにアクセスできる非ｘ８６装置が必要とされている。ＡＲＭプロセッサは携帯のために必要な省電力アプリケーション、特にスマートフォンアプリケーションのために開発されたが、重要な計算アプリケーションのためではない。本質的に、ｘ８６ソフトウェアベースへの実際的な直接アクセスはできない。ウィンドウズ（登録商標）・ソフトウェアは日常生活及びビジネスの多くの面において依然優勢であるので、ｘ８６アプリケーションへの非ｘ８６のアクセスの困難さは不便を引き起こす。移動中か事務所にいるユーザは、ＡＲＭ優勢携帯及びｘ８６優勢ウィンドウズ・アプリケーションの両方にアクセスできるよう両方のハードウェアを手元に持つ必要がある。
【０００８】
混在アプリケーションへの同時の、統合された、継ぎ目のないアクセスのためのクロスＯＳ計算機システムが必要とされている。ｘ８６ウィンドウズとＡＲＭスマートフォンとのアプリケーションの両方へのアクセスが、多くの人にとって日常より必要になるとともに、両方への同時アクセスを提供する計算機装置の必要性が現実になっている。現在のｘ８６系アーキテクチャ（及び幾つかの非ｘ８６）は、仮想演算処理技術によりウィンドウズと非ウィンドウズとのソフトウェアアプリケーションを同じ計算機ハードウェア上で同時に実行可能である。例えば、ｘ８６計算機は、複数のオペレーティングシステムの１つをそれぞれ実行する複数のゲスト仮想計算機を支援するＬｉｎｕｘ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）、又は他のホストオペレーティングシステムを有してよい。しかし、非ｘ８６ゲストＯＳの命令セットのホストプロセッサによるエミュレーションは、処理能力を消費する。これはデスクトップにとって許容できるが、スマート携帯装置にとってバッテリー持続時間のため許容できない。
【０００９】
特に、携帯電話とパソコンとの機能を結合するために、Ｃｕｐｐｓらは一連の米国特許及び特許出願においてｘ８６系アーキテクチャとＡＲＭプロセッサ系組込みシステムとのハードウェアを結合した電子装置を開示している。例えば、特許文献１において、ＣｕｐｐｓらはＡＲＭ等の低電力システムプロセッサを本質的にｘ８６系計算機である装置全体のコントローラとして働くよう使用する装置を開示している。
【００１０】
特許文献１の電子装置は、本質的にＰＣプロセッサを備えるｘ８６計算機に携帯電話組込みＡＲＭプロセッサを組み込んだ電子装置である。ＡＲＭプロセッサは元のＰＣプロセッサと同様にｘ８６アーキテクチャのノースブリッジとサウスブリッジに接続されている。特許文献１は、低電力ＡＲＭシステムプロセッサが電子装置のｘ８６アーキテクチャの高性能ＰＣプロセッサの上位のマスタープロセッサとして働くことが出来ることを開示している。
【００１１】
しかし、ノースブリッジの高速バス（ＰＣＩ‐ｅ）にｘ８６アーキテクチャの表示コントローラ及びメモリサブシステムと同様にＡＲＭプロセッサを配置することで、特許文献１の電子装置は装置全体に対して限定されたマスター制御を有する。実際、装置内でのＡＲＭプロセッサのバス接続は、ＡＲＭプロセッサを電子装置全体の最高マスタープロセッサではなく、標準ｘ８６アーキテクチャにおけるバスマスターに分類する。このシステムアーキテクチャでは、ＰＣプロセッサの下のメインｘ８６アーキテクチャは、例えばＡＣＰＩの下で完全で適切な電力管理ステータスを維持しなければならないので、ステータスの完全性を破る僅かな中断もデータ喪失を引き起こし且つ再起動が必要になる。頻繁に、特許文献１の装置内のＡＲＭプロセッサは、ＰＣプロセッサの処理能力を必要とする重いタスクの場合、ＰＣプロセッサメインｘ８６システムを再起動する。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】米国特許出願公開第２００２／０１７３３４４号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１３】
従って、演算能力を犠牲にすることなく演算消費電力を最小化しグリーンなｘ８６コンピュータを実現するよう異種計算機システムを動作させる方法が必要とされている。
また、演算消費電力を最小化し、１回の充電でバッテリーで１日以上動作する実用的なｘ８６系スマート携帯装置を実現するよう異種計算機システムを動作させる方法が必要とされている。
【００１４】
また、ｘ８６ソフトウェアベースにアクセスできる非ｘ８６スマート携帯装置を実現するよう異種計算機システムを動作させる方法が必要とされている。
また、様々なＯＳのソフトウェアアプリケーションへの同時の、統合された、継ぎ目のないアクセスを提供するようクロスＯＳ異種計算機システムを動作させる方法が必要とされている。
【課題を解決するための手段】
【００１５】
本発明は上記及び他の目的を達成するために、ｘ８６プロセッサとｘ８６演算処理アーキテクチャとを有するｘ８６コアと、ｘ８６プロセッサより低い性能を有するハイパーバイザプロセッサと、該ハイパーバイザプロセッサをｘ８６コアにｘ８６プロセッサのローカルバスを介して接続するブリッジ論理回路とを備え、該ハイパーバイザプロセッサは、自身が処理するのに十分な処理能力を有するソフトウェアタスクを実行し、該ｘ８６プロセッサを休止（スリープ／ハイバネーション／遮断）にし、該ハイパーバイザプロセッサはｘ８６プロセッサを起こして自身が処理するのに不十分な処理能力を有するソフトウェアタスクを実行させる異種計算機システムを提供する。
【００１６】
更に本発明は上記及び他の目的を達成するために、ソフトウェアを実行するための異種計算機システムを動作させる方法を提供する。該異種計算機システムは、１つ以上の第１プロセッサと、該１つ以上の第１プロセッサがソフトウェアのタスクを実行するのを支援するプロセッサ支援論理回路と、該１つ以上の第１プロセッサより少ない電力を消費する第２プロセッサとを有する。この異種計算機システムを動作させる方法は、ｉ）該第２プロセッサを起動するステップと、ｉｉ）該第２プロセッサの後、該１つ以上の第１プロセッサを起動するステップと、ｉｉｉ）該１つ以上の第１プロセッサを起動するステップと、ｉｖ）該１つ以上の第１プロセッサの後、該第２プロセッサを起動するステップと、のうち１つを含む。起動後、該プロセッサ支援論理回路に支援された該第２プロセッサは、自身が処理するのに十分な処理能力を有する該ソフトウェアのタスクを実行し、該１つ以上の第１プロセッサを電力節約状態にする。
【００１７】
更に本発明は上記及び他の目的を達成するために、ソフトウェアを実行するための異種計算機システムを動作させる方法を提供する。該異種計算機システムは、１つ以上の高性能プロセッサと、該１つ以上の高性能プロセッサがソフトウェアのタスクを実行するのを支援するプロセッサ支援論理回路と、該１つ以上の高性能プロセッサより少ない電力を消費するハイパーバイザプロセッサとを有する。この異種計算機システムを動作させる方法は、ｉ）該ハイパーバイザプロセッサを起動するステップと、ｉｉ）該ハイパーバイザプロセッサの後、該１つ以上の高性能プロセッサを起動するステップと、ｉｉｉ）該１つ以上の高性能プロセッサを起動するステップと、ｉｖ）該１つ以上の高性能プロセッサの後、該ハイパーバイザプロセッサを起動するステップと、のうち１つを含む。起動後、該ハイパーバイザプロセッサは、自身が処理するのに十分な処理能力を有する該ソフトウェアのタスクを実行し、該１つ以上の高性能プロセッサを電力節約状態にするか、又は該ハイパーバイザプロセッサは該１つ以上の高性能プロセッサを該電力節約状態から抜け出させて、自身が処理するのに不十分な処理能力を有する該ソフトウェアのタスクを実行させるか、又は該１つ以上の高性能プロセッサと該ハイパーバイザプロセッサとが全てのプロセッサの結合された処理能力を必要とする該ソフトウェアのタスクを同時に実行する。
【００１８】
更に本発明は上記及び他の目的を達成するために、ソフトウェアを実行するための異種計算機システムを動作させる方法を提供する。該異種計算機システムは、ローカルプロセッサバスを有する１つ以上の高性能プロセッサと、該１つ以上の高性能プロセッサがソフトウェアのタスクを実行するのを支援するプロセッサ支援論理回路と、該１つ以上の高性能プロセッサより少ない電力を消費するハイパーバイザプロセッサと、該ハイパーバイザプロセッサを該プロセッサ支援論理回路に該ローカルプロセッサバスを介して接続するブリッジ論理回路とを有する。この異種計算機システムを動作させる方法は、ｉ）該ハイパーバイザプロセッサを起動するステップと、ｉｉ）該ハイパーバイザプロセッサの後、該１つ以上の高性能プロセッサを起動するステップと、ｉｉｉ）該１つ以上の高性能プロセッサを起動するステップと、ｉｖ）該１つ以上の高性能プロセッサの後、該ハイパーバイザプロセッサを起動するステップと、のうち１つを含む。起動後、該プロセッサ支援論理回路に支援された該ハイパーバイザプロセッサは、自身が処理するのに十分な処理能力を有する該ソフトウェアのタスクを実行し、該１つ以上の高性能プロセッサを電力節約状態にするか、又は該ハイパーバイザプロセッサは該１つ以上の高性能プロセッサを該電力節約状態から抜け出させて、自身が処理するのに不十分な処理能力を有する該ソフトウェアのタスクを実行させるか、又は該１つ以上の高性能プロセッサと該ハイパーバイザプロセッサとが全てのプロセッサの結合された処理能力を必要とする該ソフトウェアのタスクを同時に実行する。
【図面の簡単な説明】
【００１９】
【図１】標準ｘ８６アーキテクチャにブリッジ回路チップを介して付加されたハイパーバイザプロセッサを有する本発明の異種計算機システムの実施形態のブロック図を概略的に示す。
【図２】本発明の異種計算機システムの別の実施形態、標準ｘ８６アーキテクチャに付加されるハイパーバイザプロセッサコア及びその必要なブリッジ論理回路が同じ半導体チップ上に作られた実施形態のブロック図を概略的に示す。
【図３】本発明の異種計算機システムの更に別の実施形態、標準ｘ８６コンピュータボードのＣＰＵソケットに直接差し込まれる多コアｘ８６プロセッサの同じ半導体上に作られたハイパーバイザプロセッサコア及び必要なブリッジ論理回路を有する実施形態のブロック図を概略的に示す。
【図４】本発明の異種計算機システムの別の実施形態、標準ｘ８６コンピュータボードのＣＰＵソケットに直接差し込まれる多コアｘ８６プロセッサの同じ半導体上でハイパーバイザプロセッサとして働く低電力ｘ８６コアを有する実施形態のブロック図を概略的に示す。
【図５】本発明の計算機システムの別の実施形態、ｘ８６系スマート携帯装置のブロック図を概略的に示す。
【図６】本発明の計算機システムの別の実施形態、ｘ８６系スマート携帯装置のブロック図を概略的に示す。
【図７】本発明の異種計算機システムの構成のために使用されるブリッジの概念を概略的に示す。
【図８】本異種計算機システムにおけるハイパーバイザプロセッサとｘ８６アーキテクチャの主プロセッサとのブリッジ論理回路によるｘ８６チップセットの前側バスへの接続を概略的に示す。
【図９】本発明の好適な実施形態に係るブリッジ論理回路の基本機能要素を概略的に示す。
【図１０】図９のブリッジ論理回路の論理回路要素をより詳細に概略的に示す。
【図１１】本発明の好適な実施形態に係る異種計算機システムの回路ブロック図を概略的に示す。
【図１２】本発明の好適な実施形態に係るブリッジ論理回路内の論理回路要素を概略的に示す。
【図１３】図８〜図１２の異種計算機システムの動作モードを示す。
【図１４】図８〜図１２の異種計算機システムの動作モードを示す。
【図１５】図８〜図１２の異種計算機システムの動作モードを示す。
【図１６】本異種計算機システムを起動するための制御アルゴリズムを示す。
【図１７】本異種計算機システムを起動するための制御アルゴリズムを示す。
【図１８】本異種計算機システムを起動するための制御アルゴリズムを示す。
【図１９】本異種計算機システムを起動するための制御アルゴリズムを示す。
【図２０】継ぎ目のないクロスＯＳソフトウェアアプリケーションのために本異種計算機システムを動作させるスーパーＯＳを概略的に示す。
【図２１】図８〜図１２に示した異種計算機システムの継ぎ目のないクロスＯＳソフトウェアアプリケーションを支援する動作モードを示す。
【図２２】図８〜図１２に示した異種計算機システムの継ぎ目のないクロスＯＳソフトウェアアプリケーションを支援する動作モードを示す。
【図２３】図８〜図１２に示した異種計算機システムの継ぎ目のないクロスＯＳソフトウェアアプリケーションを支援する動作モードを示す。
【図２４】図８〜図１２に示した異種計算機システムの継ぎ目のないクロスＯＳソフトウェアアプリケーションを支援する動作モードを示す。
【発明を実施するための形態】
【００２０】
本発明の独創的な計算機システムは深くグリーンな演算処理を提供する異種プロセッサシステムに基づいている。低電力マスター「ハイパーバイザ」プロセッサを主流標準ｘ８６アーキテクチャにブリッジ論理回路を介して加えて、グリーンで高性能な演算処理のための高性能で省エネルギーの異種計算機システムを構成する。
【００２１】
この独創的な計算機システムはｘ８６演算処理における消費電力を可能な限り削減して、（１）ｘ８６優勢主流演算処理全体が大幅な炭素排出削減に貢献でき、（２）膨大なｘ８６ソフトウェアベースが真に実際上、携帯での使用のために携帯ユーザからアクセス可能となるようにする。この独創的な異種計算機システムはクロスＯＳ演算処理も実現して、異なるＯＳからソフトウェアアプリケーションへの同時の、統合された、継ぎ目のないアクセスを可能にする。
【００２２】
言い換えると、本発明の異種計算機システムは、これらの課題に対処し２つ以上の主な目的を達成する。第１に、この計算機システムは携帯スマート装置への解決策、具体的には新タイプのスマートフォンを提供する。このスマートフォンは膨大な既存のｘ８６アプリケーションソフトウェアベースへのアクセスが可能であり、同時に十分に省電力で丸一日以上バッテリーで動作できる。多くの商用旅行者にとって、このような携帯装置は重いスマートフォンとラップトップとのペアを置き換えるであろう。
【００２３】
第２に、より重要であるが、本計算機システムはデスクトップ、ワークステーション、及びサーバーを含む主流計算機において深くグリーンな演算処理を実現できる。世界中の各計算機が寄与する省電力は集まると消費電力の巨大な削減になる。
【００２４】
一方、これらの目的を達成すると同時に、本発明の異種計算機システムは、同じハードウェアを使用する異なるＯＳからソフトウェアアプリケーションへの同時の、統合された、継ぎ目のないアクセスを可能にする。
【００２５】
なお、本明細書において用語「ｘ８６アプリケーション」は、ｘ８６ハードウェアアーキテクチャで使用可能な様々なＯＳの下で実行可能な広義の意味のｘ８６ソフトウェアアプリケーション全てを指す。従って、この用語は現在ｘ８６アーキテクチャでサポートされているＷｉｎｄｏｗｓ、Ｌｉｎｕｘ、Ｍａｃ  ＯＳ、Ｓｏｌａｒｉｓ等のＯＳ用に書かれた全てのソフトウェアアプリケーションを意味する。
【００２６】
また、演算処理における「ハイパーバイザ」は通常、仮想マシンモニター（ＶＭＭ）（ハードウェアよりもソフトウェア技術である）を意味する。しかし、本明細書においてこの用語は、本発明の非対称異種プロセッサシステムにおけるマスタープロセッサ、即ち低電力ＡＲＭを指すのにも使用される。マスタープロセッサは、システムの高性能であるが高電力消費の構成要素であるｘ８６プロセッサ（基本的にマスターＡＲＭの下のスレーブプロセッサ）を監督する。この用語は、マスタープロセッサは実際本発明のソフトウェアシステムに必然的に組み込まれた仮想マシンを監視し制御するので選択されている。
【００２７】
ＡＲＭマスタープロセッサは、概念的に本発明の異種計算機システムの主ハードウェアであるｘ８６ハードウェアを監督するｘ８６プロセッサより１レベル高いので、そう呼ばれる。これは、マスターＡＲＭはそのスレーブｘ８６（主ｘ８６ハードウェアを監督する）を「ハイパーバイズ」する事を意味する。
【００２８】
また、用語「高性能プロセッサ」は標準ｘ８６アーキテクチャ内の主ｘ８６プロセッサを指すために使用される。こう呼ばれるのは本異種計算機システムにおけるｘ８６プロセッサは大量の数字を処理するジョブを担当する事実を反映する。
【００２９】
計算機が処理能力を犠牲にすることなく電力消費を最小化できるための解決策を見つけ出すことは、勿論既知の技術課題であり、既知の方策がある。携帯演算処理（ラップトップ、タッチスクリーンコンピュータ、スマートフォン等）では、出来るだけ長く動作を続ける（移動中、一日以上働き続ける）ために電力管理にうまく対処しなければならない。主流デスクトップコンピュータは、多量に世界中に設置されているので電力管理は重要であり、乗用車のＭＰＧ（燃費）性能に匹敵する世界的な環境問題である。
【００３０】
しかし、従来の電力管理はｘ８６アーキテクチャを実際の移動時アプリケーションのために十分に省電力で動かせるという目標を達成できない。これは今日のｘ８６の限界であり、ｘ８６はそのようには設計されていない。
【００３１】
解決策は異種プロセッサという概念に存在する。このような異種計算機システムが商業上成功するためには、計算機システムは出来る限り既存の業界標準と互換性がなければならない。非常に大きな勢力を有するＷｉｎｔｅｌを変える事を考えるのは実際的でない。異種計算機システムという解決策は既存物と適合し、その逆であってはならない。これはハードウェアとソフトウェアの両方において調整は出来る限り僅かでなければならない事を意味する。
【００３２】
Ａ：ブリッジ論理回路を含む異種計算機システム
システムハードウェア・アーキテクチャの観点から、本発明の異種計算機システムは、標準ｘ８６アーキテクチャのローカル（前側）バスに存在するハイパーバイザプロセッサを有する。図１〜図４を参照。これは上記した特許文献１の電子装置（システムプロセッサをシステムバスを介してｘ８６アーキテクチャのノースブリッジに接続する）とは基本的に異なる。
【００３３】
図１は標準ｘ８６アーキテクチャにブリッジ回路チップを介して付加されたハイパーバイザプロセッサを有する本発明の異種計算機システムの実施形態のブロック図を概略的に示す。本発明の好適な実施形態において、異種計算機システム１００は、ｘ８６ＣＰＵ１２０と支援ｘ８６チップセット１６２とを含む完全なｘ８６コンピュータを自身だけで構成する標準ｘ８６アーキテクチャ１６０を有する。
【００３４】
ハイパーバイザプロセッサ１１０が標準ｘ８６アーキテクチャ１６０にブリッジチップ１４０を介して付加されている。ブリッジチップ１４０はｘ８６アーキテクチャ１６０にｘ８６ＣＰＵの前側バス（ＦＳＢ）１３４を介して挿入されるハイパーバイザプロセッサ１１０、即ちＡＲＭ、又は低電力ｘ８６プロセッサ（例えば、３８６又は２８６でも）のためのデジタル電子回路を含む。
【００３５】
図７は本発明の異種計算機システムの構成のために使用されるこの概念のブリッジを概略的に示す。ブリッジ論理回路は、例えば図１のシステムにおいてハイパーバイザＡＲＭプロセッサ１１０を既存のｘ８６系計算機システム１６０に接続するブリッジ素子（論理回路）を意味する。本発明の記載中、図７に概略的に示したブリッジ素子４０７は３方向データスイッチ４０８として機能する。言い換えると、データスイッチ４０８は多方向スイッチ、即ち３つのうちいずれかから残りの２つのどれかにデータを通過させる３方向Ｔ又はＹスイッチ素子である。ブリッジ論理回路がハイパーバイザプロセッサをｘ８６アーキテクチャに挿入する方法の詳細を下記に説明する。
【００３６】
図２は本発明の異種計算機システムの別の実施形態、標準ｘ８６アーキテクチャに付加されるハイパーバイザプロセッサコア及びその必要なブリッジ論理回路が同じ半導体チップ上に作られた実施形態のブロック図を概略的に示す。本実施形態において、異種計算機システム２００は、ｘ８６ＣＰＵ２２０と支援ｘ８６チップセット２６２とを含む完全なｘ８６コンピュータを自身だけで構成する標準ｘ８６アーキテクチャ２６０を有する。
【００３７】
ＡＲＭ又はｘ８６コアの形態のハイパーバイザプロセッサ２１０を標準ｘ８６アーキテクチャ２６０にブリッジ論理回路２４０を介して付加されている。ブリッジ論理回路２４０はｘ８６アーキテクチャ２６０にｘ８６ＣＰＵの前側バス（ＦＳＢ）２３４を介して挿入されるハイパーバイザプロセッサ２１０のためのデジタル電子回路を含む。本実施形態ではハイパーバイザプロセッサ２１０及び必要なブリッジ論理回路２４０は同じ半導体集積チップ、ハイパーバイザチップ２４２上に作られている。
【００３８】
図３は本発明の異種計算機システムの更に別の実施形態のブロック図を概略的に示す。このシステムは標準ｘ８６コンピュータボードのＣＰＵソケットに直接差し込まれる多コアｘ８６プロセッサの同じ半導体上に作られたハイパーバイザプロセッサコア及び必要なブリッジ論理回路を有する。
【００３９】
本実施形態では、異種計算機システム３００はそれ自身、標準ｘ８６アーキテクチャであり、ｘ８６ＣＰＵ３４４と支援ｘ８６チップセット３６２とを含む完全なｘ８６コンピュータを自身だけで構成する。ｘ８６ＣＰＵ３４４は従来のものの改良型であり、同じ半導体ダイ上のｘ８６高性能プロセッサ、例えば最新多コアｘ８６プロセッサ３２０と、ハイパーバイザＡＲＭ又は低性能ｘ８６コア３１０と、ハイパーバイザと高性能コアとを前側バス３３４を介して橋渡しするブリッジ論理回路３４０とから基本的に構成されている。
【００４０】
図４は本発明の異種計算機システムの別の実施形態、標準ｘ８６コンピュータボードのＣＰＵソケットに直接差し込まれる多コアｘ８６プロセッサの同じ半導体上でハイパーバイザプロセッサとして働く低電力ｘ８６コアを有する実施形態のブロック図を概略的に示す。
【００４１】
本実施形態では、異種計算機システム４００はそれ自身、標準ｘ８６アーキテクチャであり、ｘ８６ＣＰＵ４４６と支援ｘ８６チップセット４６２とを含む完全なｘ８６コンピュータを構成する。ｘ８６ＣＰＵ４４６は従来のものの別の改良型であり、同じ半導体ダイ上のｘ８６高性能プロセッサコア４２１、４２２と、ハイパーバイザ低電力ｘ８６コア４１０とから基本的に構成されている。ハイパーバイザコア４１０が高性能コア４２１、４２２の縮小された命令セットを実行し同じ内部バスを共有するので、ブリッジ論理回路は必要ない。ハイパーバイザを備える高性能プロセッサ４４６は標準ｘ８６コンピュータボードと同様、標準ＦＳＢ４３４を介してｘ８６チップセット４６２に接続されている。
【００４２】
図１〜図４に示すように、本発明の異種計算機システムを構成する概念は、低電力マスター、現在最も適切そうな、ＡＲＭをｘ８６コンピュータに付加することである。この概念は、低電力ハイパーバイザプロセッサを高電力消費で主力のｘ８６をハイパーバイズするよう常時起こしておくことである。この概念では、ｘ８６はＡＲＭハイパーバイザプロセッサの下の純粋なスレーブであり、エネルギーを節約するために深い休止状態にされ、相対的に低性能プロセッサがシステムに割り当てられたタスクを処理できないか、不十分な時だけ活動させられる。
【００４３】
異種計算機システムの使用の主目的に依り、ｘ８６システムは、例えば、ＣＡＤ／ＣＡＭワークステーション用の最新のインテル第２世代Ｃｏｒｅ（登録商標）技術プロセッサ系高性能システムであってもよい。または、選択されたｘ８６は、頻繁に出張する人用のスマートフォン・ラップトップのペアを置き換える目的の携帯装置用のＡｔｏｍ（登録商標）系低電力システムであってもよい。
【００４４】
既存のｘ８６アーキテクチャを使用して、このような異種計算機システムハードウェアは容易に構成できる。商業用途の場合、図１〜図４に示す下記の解決策は、計算機業界サプライチェーンに沿って様々な計算機ハードウェア製造業者に適切である。
【００４５】
図１及び図２の計算機システムアーキテクチャは、現在の計算機マザーボード及びシステムメーカにビジネスとなる。彼らはＡＲＭプロセッサとブリッジチップを調達して製品を製造することが出来る。しかし、図３のアーキテクチャは、現在のｘ８６及び互換プロセッサメーカのどれもがこの技術を採用し彼らのプロセッサ半導体チップに調整を加えて彼らのバージョンの異種計算機システムＣＰＵを作るか否かに依存する。
【００４６】
これはビジネスの観点から可能である。現在のどのＣＰＵメーカにとっても、この概念は既存の多コア製品への半導体変更をほとんど含まないが、この新しい概念のＣＰＵによりコンピュータの性能に大きなインパクト（グリーン演算処理）がある可能性がある。図４は主流デスクトップ／ワークステーション演算処理に最も適切なこのようなアーキテクチャのイメージを示す。
【００４７】
図５及び図６は本発明の計算機システムの別の実施形態、ｘ８６系スマート携帯装置のブロック図を概略的に示す。このようなｘ８６スマート装置は携帯電話とｘ８６系コンピュータの両方の機能を有し、携帯電話とラップトップ計算機との商用旅行者にとって必須のペアを置き換えることが出来る。
【００４８】
本実施形態では、図１の例と同様に、異種計算機システムのスマートフォン＋ラップトップバージョン５００は、ｘ８６ＣＰＵ５２０と支援ｘ８６チップセット５６２とを含む完全なｘ８６コンピュータを自身だけで構成するｘ８６アーキテクチャ５６０を有する。携帯電話機能を提供するために、携帯電話通信ユニット５７０がｘ８６アーキテクチャの一部として含まれてよい。
【００４９】
ハイパーバイザプロセッサ５１０は、ｘ８６アーキテクチャ５６０にｘ８６ＣＰＵの前側バス（ＦＳＢ）５３４を介して挿入されるハイパーバイザプロセッサ５１０、即ちＡＲＭのためのデジタル電子回路を含むブリッジチップ５４０を介してｘ８６アーキテクチャ５６０に接続されている。
【００５０】
図５に閉じた破線で示したように、ｘ８６スマート携帯装置５００が携帯電話機能を働かせる時、ｘ８６ＣＰＵ５２０と主ｘ８６チップセット５６２とを含むｘ８６コア５６０全体を、ハイパーバイザＡＲＭプロセッサ５１０の下で動作する携帯電話通信ユニット５７０を除いて休止させることが出来る。
【００５１】
一方、装置５００がその携帯コンピュータを動作させ、例えば図６に示したようにウィンドウズ・アプリケーションを実行させる時、装置５００の携帯電話通信ユニット５７０を除く全構成要素は活性化される。例えば、ネット決済アプリケーションはＡＲＭの監督の下のｘ８６システムにより実行されうる。低電力ＡＲＭは常時監視を行い、バッテリーエネルギーの節約のために装置のｘ８６部分を休止させうる時を決定する。
【００５２】
グリーン演算処理を実現して図１〜図４に示した異種計算機システムのデスクトップ実施形態がエネルギーを節約でき、図５及び図６に示したｘ８６スマート携帯装置がバッテリーエネルギーを少しずつ消費して移動中、丸一日働き続け、両方が同時の、統合された、継ぎ目のない混合ＯＳソフトウェアアプリケーション群を有するために、上記ハードウェアは対応するシステムソフトウェアを有し上記の全てを実現する必要がある。このようなソフトウェアシステムを下記に詳細に説明する。
【００５３】
Ｂ：異種計算機システムのためのブリッジ論理回路
図８は本異種計算機システムにおけるハイパーバイザプロセッサ６１０と主ｘ８６プロセッサ６２０とのブリッジ論理回路６４００によるｘ８６チップセット６６２の前側バス（ＦＳＢ）への接続を概略的に示す。本発明の異種計算機システムの基本概念は監督マイクロプロセッサ、即ちハイパーバイザプロセッサを高能力のマイクロプロセッサ、即ちｘ８６プロセッサを既に有する高性能コンピュータに導入することである。この概念はハイパーバイザプロセッサは出来るだけ少ない電力を消費して、本異種計算機システムの電源がＯＮの間、常時活性であり高性能ｘ８６サブシステムの計算処理を管理する。この異種計算機システムでは、ハイパーバイザプロセッサが割り当てられた演算タスクが低電力ハイパーバイザプロセッサの能力を超えていると判断した時だけ、高性能ｘ８６サブシステムを休止から抜け出させて働かせる。
【００５４】
そうするために、図１〜図４の実施形態で説明し、図８でより詳細に示すように、ブリッジ論理回路６４００は、ｘ８６高性能プロセッサ６２０と標準ｘ８６コンピュータの前側バス上のｘ８６チップセット６６２との間に存在する。標準ｘ８６コンピュータ内の前側バスを介するｘ８６プロセッサのｘ８６チップセットのノースブリッジへの直接接続は、ブリッジ論理回路６４００により遮られる。ｘ８６プロセッサ６２０とノースブリッジ６６２４との間の元のＦＳＢ接続は、なお存在するが、ブリッジ論理回路６４００の制御の下で２つの部分、ｘ８６プロセッサ側のＦＳＢ６４５２とチップセット側のＦＳＢ６３４に分割されている。一方、同様にブリッジ論理回路６４００は付加されたハイパーバイザプロセッサ６１０とｘ８６チップセット６６２のノースブリッジ６６２４に接続されたＦＳＢ６３４との間に存在する。
【００５５】
ブリッジ論理回路６４００はハイパーバイザ動作論理回路６４１０、プロセッサ命令セット／計算機コマンド翻訳論理回路又はプロセッサ言語翻訳論理回路６４３０、及び高速バススイッチ６４０７を含む。バススイッチ６４０７はｘ８６プロセッサＦＳＢに適合した切替え速度を有する。図７に示すように、バススイッチ６４０７は３方向スイッチであるのが好ましく、うち１つのポート（図ではＡ）はｘ８６プロセッサ６２０のＦＳＢ６４５２に直接接続されている。バススイッチ６４０７の第２ポート（Ｂ）はプロセッサ言語翻訳論理回路６４３０を介してハイパーバイザプロセッサ６１０のプロセッサバス６４５４に接続されている。バススイッチ６４０７の第３ポート（Ｃ）はチップセット６６２のノースブリッジのＦＳＢ６３４に直接接続されている。
【００５６】
高速バススイッチ６４０７によるこのような接続はｘ８６高性能プロセッサ６２０と低電力ハイパーバイザプロセッサ６１０の両方がｘ８６アーキテクチャのノースブリッジ６６２４にＦＳＢ６３４を介してアクセスするのを可能にする。バススイッチ６４０７がポートＡとＣを接続するよう設定されると、ｘ８６高性能プロセッサ６２０は通常のｘ８６コンピュータにおけるのと同様にノースブリッジに直接接続できる。
【００５７】
一方、バススイッチ６４０７がポートＢとＣを接続するよう設定されると、低電力ハイパーバイザプロセッサ６１０はｘ８６チップセット６６２にアクセスできる。ハイパーバイザプロセッサ６１０が高性能ｘ８６プロセッサと同じ命令セットかｘ８６プロセッサ命令セットのサブセットを実行する低電力ｘ８６プロセッサである場合、プロセッサ言語翻訳論理回路６４３０はｘ８６命令セットの異なるレベル間の簡単な変換を提供しさえすればよい。
【００５８】
しかし、低電力ハイパーバイザプロセッサ６１０が完全に異なる命令セットを実行するプロセッサ、例えばＡＲＭ又はＭＩＰＳである場合、ハイパーバイザプロセッサ６１０はプロセッサ言語翻訳論理回路６４３０を使用して高性能ｘ８６プロセッサをエミュレートする必要がある。この場合、翻訳論理回路６４３０はハイパーバイザプロセッサ６１０個有コマンドを高性能ｘ８６プロセッサ６２０の等価なコマンド（高性能プロセッサ６２０個有命令）に翻訳又は変換する。
【００５９】
本質的に、プロセッサ言語翻訳論理回路６４３０はｘ８６プロセッサ言語（命令）とハイパーバイザ（例えばＡＲＭ）プロセッサ言語（命令）との間の翻訳を行うことで、ハイパーバイザ６１０が計算機システムにおけるｘ８６の活動を理解し完全に監視し、ｘ８６プロセッサ６２０はハイパーバイザ６１０から命令を受け取れる。また、翻訳論理回路６４３０は高速ｘ８６ＦＳＢ６３４と低電力ハイパーバイザプロセッサ６１０の比較的低速のバス、例えばＡＲＭ装置が通常採用するＡＭＢＡ（Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏｃｏｎｔｒｏｌｌｅｒ  Ｂｕｓ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バスとの間のデータ交換を同期させる。
【００６０】
言い換えると、通常、より低い性能のハイパーバイザプロセッサの高性能ｘ８６アーキテクチャへのアクセスを可能にするために、ブリッジ論理回路６４００は（１）プロセッサ言語と（２）バス通信電気信号との翻訳をするよう構成されなければならない。図９及び図１０の例におけるようにバスラッパー６４１４はバスプロトコル変換を担当し、データバス幅、アドレスバス長、及びバス信号電気レベル、タイミング等の変換を実行する。
【００６１】
図８に示した好適な実施形態では、全てのこのような変換をハイパーバイザ動作論理回路６４１０と一緒に実行できる。ハイパーバイザ動作論理回路６４１０はｘ８６プロセッサの全活動を監視し、ｘ８６プロセッサが目覚めた後、動作を継ぎ目なく引き継げるようシステムステータスのコピーを維持する。ハイパーバイザ動作論理回路６４１０も、ｘ８６プロセッサ６２０が休止にされＡＲＭが仮想マシン、実行時コマンド／命令翻訳等の技術によりｘ８６コードを実行する時、ＡＲＭコマンドをｘ８６コマンドに翻訳できてもよい。
【００６２】
なお、ブリッジ論理回路６４００は低電力ハイパーバイザプロセッサ（ＡＲＭ）により動作させられる受動デジタル論理回路か又はマイクロプロセッサベース能動論理回路であってよい。また、高性能ｘ８６プロセッサはインテル、ＡＭＤ、又はＣｙｒｉｘプロセッサであってよく、低電力ハイパーバイザプロセッサはＡＲＭ、ＭＩＰＳ、又は縮小ｘ８６コアであってよい。
【００６３】
まとめると、ブリッジ論理回路スイッチ６４０７、及び論理回路６４１０、６４３０は一緒に働いてブリッジ機能を提供し、ｘ８６プロセッサ６２０はハイパーバイザプロセッサ６１０の制御の下でｘ８６アーキテクチャ６６２に直接アクセスして本異種計算機システムに割り当てられた高性能タスクを実行する。一方、ｘ８６プロセッサ６２０が必要とされていない時、ハイパーバイザプロセッサ６１０はｘ８６アーキテクチャ６６２に間接アクセスしてもよい。
【００６４】
なお、本明細書中、本異種計算機システムのハイパーバイザ又は高性能プロセッサの、例えば「マイクロプロセッサ命令セット」における用語「命令セット」は、コンピュータアーキテクチャのプログラミングに関する部分であって、固有データタイプ、命令、レジスタ、アドレッシングモード、メモリアーキテクチャ、割込み・例外処理、及び外部Ｉ／Ｏを含む部分を意味する。また、本明細書中、本異種計算機システムのハイパーバイザ又は高性能プロセッサの、例えば「計算機コマンド」における用語「コマンド」は、計算機システムが実行できる演算処理を表す人工言語を意味する。
【００６５】
図９は本発明の好適な実施形態に係るブリッジ論理回路の基本機能要素を概略的に示す。ブリッジ論理回路６４００のプロセッサ命令セット翻訳論理回路６４３０の機能は周辺装置ステータス保守部６４３６、周辺装置ステータステーブル６４３２、及び周辺装置ＩＲＱ制御部６４３４により提供される。これは本異種計算機システムに取り付けられた周辺装置のステータスの記録を常に保持する。
【００６６】
一方、ブリッジ論理回路６４００のハイパーバイザ動作論理回路６４１０の機能はＦＳＢコマンドハンドラー６４１２とバスラッパー６４１４とにより提供される。基本的にＦＳＢコマンドハンドラー６４１２は高性能プロセッサ６２０により実行される計算機コマンドを監視して、上述のように周辺装置ステータスセットを維持して本異種計算機システムの周辺装置（通常、ｘ８６チップセット６６２のサウスブリッジに取り付けられる）の記録を保持することで、高性能ｘ８６プロセッサが休止している時、目覚めた後、正しいステータスを引き継ぐことが出来る。
【００６７】
一方、高性能ｘ８６プロセッサ６２０が休止している時、ハイパーバイザプロセッサ６１０はＦＳＢコマンドハンドラー６４１２とバスラッパー６４１４とによりそのコマンドをｘ８６コマンドに翻訳してｘ８６チップセットにアクセスする。基本的に、バスラッパー６４１４は非ｘ８６ハイパーバイザプロセッサ６１０が固有ｘ８６コマンドを「話す」よう通訳の役割をする。これはハイパーバイザプロセッサ６１０がｘ８６アーキテクチャ資源に直接アクセスするのを、高性能プロセッサ６２０が休止しているか否かにかかわらず可能にする。
【００６８】
図１１は本発明の好適な実施形態に係る異種計算機システムの回路ブロック図を概略的に示す。この実施形態では、ブリッジ論理回路７４００は僅かに異なる論理回路構成を有する。バススイッチ７４０７は４方向スイッチであり、ハイパーバイザプロセッサ７１０と高性能ｘ８６プロセッサの両方のｘ８６アーキテクチャへの直接アクセスをなお提供する。しかし、コマンド翻訳論理回路としてのコマンドハンドラー７４１２とハイパーバイザ動作論理回路としての周辺装置ステータスマップ部７４３８はバススイッチ７４０７の第４ポートに接続されている。この例ではコマンドハンドラー７４１２は下記のタスクを担当する。
１．コマンド待ち行列管理とコマンド解析
２．ｘ８６コマンドの対応するＡＲＭコマンドへの翻訳
３．ＡＲＭコマンドの対応するｘ８６コマンドへの翻訳
４．ｘ８６ステータス保守
５．周辺装置への直接又は間接アクセス
【００６９】
周辺装置ステータスマップ部７４３８は下記のタスクを担当する。
１．ＡＲＭプロセッサのための周辺装置マッピング
２．周辺装置ステータスの保守
【００７０】
バススイッチ７４０７は下記のタスクを担当する。
１．高速ＦＳＢ（インテル、ＡＭＤ、又はＶｉａ−Ｃｙｒｉｘ高性能プロセッサの）と比較的低速ＡＭＢＡバス（ＡＲＭの）間のブリッジ
２．ｘ８６アーキテクチャへのｘ８６直接又は間接アクセスのためのブリッジ
【００７１】
高性能ｘ８６プロセッサは自身の作業ＲＡＭ７２４を有してもよく、ハイパーバイザプロセッサ７１０は組込みプロセッサ７１２であり、自身の作業ＲＡＭ７１４と内蔵ブートローダー７１６とを有してもよい。
【００７２】
図１２は本発明の好適な実施形態に係るブリッジ論理回路内の論理回路要素を概略的に示す。ブリッジ論理回路７４００がｘ８６チップセット及びシステムの２つのプロセッサと協働していることが示されている。ブリッジ論理回路７４００は、ｘ８６コードを低電力ＡＲＭハイパーバイザのコードに翻訳及びその逆の翻訳をする図１１と同じコマンドハンドラー７４１２を含む。コマンドハンドラー７４１２はＡＲＭ制御下のダム論理回路かプロセッサベースコマンドハンドラーであってよい。
【００７３】
図１２の実施形態の周辺装置ステータス保守部７４３６は図１１の周辺装置ステータスマップ部７４３８と僅かに異なる。自身のメモリ及び／又はレジスタを有し、周辺装置ステータス保守部７４３６はＡＲＭハイパーバイザがｘ８６メインシステムの正確なステータスを完全に把握するのを可能にする同期部である。ステータス保守により（１）ＡＲＭがいつでも正しいシステムステータスを持ってｘ８６のタスクを引き継ぐ（例えば、仮想演算処理技術により）ことが出来る（２）休止（スタンバイ／スリープ／ハイバネーション）から戻った時、ｘ８６プロセッサは正しいステータスを持ってＡＲＭのタスクを引き継ぐことが出来る（例えば、ＡＲＭがタスクに対して能力不足である場合）。周辺装置ステータス保守部７４３６はＡＲＭ制御下で動作するダム論理回路かプロセッサベース保守部であってよい。
【００７４】
図１０は図９のブリッジ論理回路の論理回路要素の別の例をより詳細に概略的に示す。
図８〜図１２を用いて上記で説明した異種計算機システムの全実施形態は、図１３〜図１５に示す３つのモードの１つで動作する。図１３に示す第１モードは従来のデスクトップコンピュータの動作とかなり類似する。高性能ｘ８６プロセッサ６２０に複雑で処理能力が必要なＣＡＤ又は迫真のゲームジョブ（ｘ８６プロセッサ６２０はフル動作する）が割り当てられる場合がある。一方、ハイパーバイザプロセッサ６１０も活性で、計算機システムステータスを監視し保守して高性能ｘ８６プロセッサをいつでも休止させられるようにする。
【００７５】
図において、ＦＳＢに沿いプロセッサ６２０とｘ８６チップセット６６２とを指す２つ矢先の矢印は、プロセッサ６２０はｘ８６システムへの通常のアクセスをすることを示す。一方、ＦＳＢに沿いハイパーバイザプロセッサ６１０とｘ８６チップセット６６２とを指す２つ矢先の点線矢印は、ハイパーバイザ６１０は全システムの監視を継続していることを示す。
【００７６】
図１４に示す異種計算機システム動作モード２は、例えば内蔵ハイパーバイザＡＲＭプロセッサにより携帯アプリケーションを実行可能なｘ８６ベーススマート携帯装置の場合を示す。スマート携帯装置がＡＲＭを使用して携帯コールする時、高性能ｘ８６プロセッサを休止にできる（幻のプロセッサ６２０で表わす）。
【００７７】
図１５に示す異種計算機システム動作モード３は、例えば移動時、ＡＲＭを使用して携帯コールすると同時にＡｃｔｉｖｅ−Ｘを必要とする遠隔決済ウィンドウズ・アプリケーションを実行するｘ８６ベーススマート携帯装置の場合を示す。この場合、ハイパーバイザプロセッサ６１０は活性で、軽い通信タスクを実行しながら、同時にシステムステータスを監視し保守する。一方、高性能ｘ８６プロセッサ６２０も活性で、割り当てられた遠隔決済タスクを実行する。ＡＲＭアプリケーションとｘ８６アプリケーションがそれぞれ、例えばＡｎｄｒｏｉｄとＷｉｎｄｏｗｓ  ＯＳの下で同じ異種計算機システム表示画面上で同時に実行され、互いにデータを交換することも出来る（同じハードウェア上に統合され継ぎ目なく同時に実行される混合ＯＳソフトウェアアプリケーションのシナリオ、下記で説明する）。
【００７８】
Ｃ：本異種計算機システムのための起動アルゴリズム
図１６〜図１９は本異種計算機システムを起動するための制御アルゴリズムを示す。電源切断状態から本計算機システムを起動する４つのルートが可能である。
モードＡ：低電力ハイパーバイザプロセッサシステムだけが起動される。
モードＢ：ハイパーバイザプロセッサシステムが活性化された後、高性能ｘ８６プロセッサが起動する。
モードＣ：高性能ｘ８６プロセッサシステムだけが起動される。
モードＤ：高性能ｘ８６システムが活性化された後、ハイパーバイザプロセッサシステムが起動する。
【００７９】
モードＡ：
ハイパーバイザプロセッサだけを起動するシーケンスを図１６に示す。
ステップ１：
１ａ：第１に周辺装置ステータス保守部（ＰＳＭ）がＢＩＯＳをアクセスする。
１ｂ：次に周辺装置リスト及びマップテーブルがシステムＢＩＯＳ情報に基づいて更新される。
１ｃ：次に低電力ハイパーバイザが起動し、内部バス上の周辺装置を起動し、周辺装置割込みサービスを開始する。
ステップ２：
２ａ：第１にＰＳＭがＩＲＱを低電力ハイパーバイザプロセッサへ送信する。
２ｂ：次に低電力ハイパーバイザプロセッサは周辺装置保守サービスを開始する。
ステップ３：
３ａ：低電力ハイパーバイザプロセッサは本システムに接続された全周辺装置を起動する。
【００８０】
モードＢ：
ハイパーバイザプロセッサシステムが活性化された後、高性能ｘ８６プロセッサが起動するシーケンスを図１７に示す。
ステップ１：
１ａ：低電力ハイパーバイザが起動信号をＦＳＢコマンドハンドラーに送信する。
１ｂ：ＦＳＢコマンドハンドラーはリセット命令を高性能ｘ８６に送信する。
ステップ２：
２ａ：ＦＳＢコマンドハンドラーはＰＳＭに必要なシステム情報を要求する（ＰＳＭはｘ８６プロセッサにとってＢＩＯＳ）。
２ｂ：ＦＳＢコマンドハンドラーは必要な情報を高性能ｘ８６プロセッサの起動中に高性能ｘ８６プロセッサに提供する。
ステップ３‐１：間接アクセス
３‐１ａ：高性能ｘ８６は間接アクセスのためのＦＳＢコマンドを送信する。
３‐１ｂ：低電力ハイパーバイザプロセッサはプロクシとして働き、高速ｘ８６間接アクセスコマンドを実行する。
ステップ３‐２：直接アクセス
３‐２ａ：高性能ｘ８６は直接アクセスのためのＦＳＢコマンドを送信する。
３‐２ｂ：ＰＳＭは直接アクセスを監視する。
【００８１】
モードＣ：
高性能ｘ８６プロセッサだけを起動するシーケンスを図１８に示す。これは本異種計算機システムが高性能ｘ８６だけを起動させる場合、起動のデフォルトモードであり、ファームウェア制御なしで純粋なハードウェアで実現できる。
ステップ１：
１ａ：高速データスイッチはモードをリセットしバイパス混成ブリッジサブシステムとして働く（これは本異種システムが高性能ｘ８６だけを起動させる場合のデフォルトモードであり、ファームウェア制御なしで純粋なハードウェアで実現できる）。
ステップ２：
２ａ：高性能ｘ８６は通常どおり起動する。
【００８２】
モードＤ：
高性能ｘ８６システムが活性化された後、ハイパーバイザプロセッサシステムが起動するシーケンスを図１９に示す。
ステップ１：
１ａ：ＰＳＭはＢＩＯＳと情報を同期する。
１ｂ：ＰＳＭは周辺装置リスト及びマップテーブルを更新する。
ステップ２：
２ａ：低電力ハイパーバイザが起動し、内部バスに接続された周辺装置を起動し、割込みサービスを開始する。
ステップ３：
３ａ：ＰＳＭがＩＲＱを低電力ハイパーバイザへ送信する。
３ｂ：低電力ハイパーバイザは周辺装置保守サービスを開始する。
ステップ４：
４ａ：低電力ハイパーバイザはブリッジ論理回路に通知し、システムサービスを引き継ぐよう要求する。
【００８３】
Ｄ：本異種計算機システムのためのスーパーオペレーティングシステム
ソフトウェアの観点から、本発明の異種計算機システムの実施形態は、ｘ８６‐ＯＳ（例えばＷｉｎｄｏｗｓ又はＬｉｎｕｘ）とＡＲＭ‐ＯＳ（例えばＡｎｄｒｏｉｄ）の両方の元のバージョンをソフトウェアシステム内の異種ハイパーバイザ層上で実行する。この異種ハイパーバイザ層の機能は、本計算機システムのハードウェア上の２つの活性なＯＳの共存を可能にし、両方のアプリケーションの同時実行のために２つのＯＳ間の継ぎ目のない通信を可能にする事である。
【００８４】
これを実現するために、ｘ８６‐ＡＲＭ上で動く一般的なＯＳのための異種ハイパーバイザ層ソフトウェアの試験的なバージョンが作成されて試験に成功した。ｘ８６用Ｗｉｎｄｏｗｓ及びＡＲＭ用Ａｎｄｒｏｉｄのためのハイパーバイザ層のバージョンが試験された。これらの試験的な異種ハイパーバイザ層ソフトウェアの改訂バージョン、即ちスーパーＯＳは異種計算機システムハードウェアのＡＲＭとｘ８６プロセッサを並列に動作させることができ、２つの異なるＯＳのソフトウェアアプリケーションを支援する。
【００８５】
従って、本発明の異種計算機システム上で、２つの異なるＯＳが起動され、同時に動作し、それぞれ自身のアプリケーションを支援できる。１つのＯＳのアプリケーションを他のＯＳ上で実行でき、異なるＯＳの２つのアプリケーションが互いに継ぎ目なく直接対話できる。
【００８６】
図２０は本発明の異種計算機システムのためのスーパーＯＳを概略的に示す。このようなスーパーＯＳは従来のＯＳ、例えばＷｉｎｄｏｗｓ、Ｌｉｎｕｘ、Ｓｏｌａｒｉｓ、スマート携帯装置用のＡｎｄｒｏｉｄなどを自身の下にサブＯＳとして配置する。これらの従来のＯＳはスーパーＯＳの下で動作する場合、変更される必要がない。これらのＯＳにとって、これらが実行される異種計算機システムハードウェアは、これらが通常実行される従来のｘ８６ハードウェアと全く変わらない。スーパーＯＳが本異種計算機システム上で起動した後、２つの異なるＯＳが同じハードウェア上で同時に活性であり、両方のＯＳのソフトウェアアプリケーションを継ぎ目なく同時に支援することが出来、両者間のデータ交換を可能にする。
【００８７】
スーパーＯＳの構成のために、異種ハイパーバイザ層が作成され、ＯＳとハードウェア層の間に挿入され、その２つを繋ぐ。本異種計算機システム技術のこのソフトウェアアーキテクチャにより、継ぎ目のないクロスＯＳソフトウェアアプリケーションが可能である。例えば、ウィンドウズ・ワードはｘ８６ハードウェア上のＷｉｎｄｏｗｓＯＳ上で直接動作できる。また、ＡＲＭプロセッサは異種ハイパーバイザ層を介する仮想演算処理によりワードを実行できる。これを実現するために、既存のソフトウェア技術、例えばオープンソース仮想演算処理技術を完全に利用する。
【００８８】
図２１〜図２４は図８〜図１２に示した異種計算機システムの継ぎ目のないクロスＯＳソフトウェアアプリケーションを支援する動作モードを示す。図２０のスーパーＯＳが立ち上げる自身の４つのモードは下記を含む。
モードＡ：低電力ハイパーバイザプロセッサシステムだけが起動される。
モードＢ：ハイパーバイザプロセッサシステムが活性化された後、高性能ｘ８６プロセッサが起動する。
モードＣ：高性能ｘ８６プロセッサシステムだけが起動される。
モードＤ：高性能ｘ８６システムが活性化された後、ハイパーバイザプロセッサシステムが起動する。
【００８９】
ハイパーバイザプロセッサＯＳだけを起動するシーケンスを図２１に示す。このモードはハイパーバイザプロセッサだけ用のソフトウェアアプリケーションを動作させる。起動手順は本異種計算機システムを準備してソフトウェアアプリケーション、例えばＡｎｄｒｏｉｄ又はＬｉｎｕｘを実行できるようにする。起動シーケンスは下記を含む。
１．ハイパーバイザプロセッサ（ＡＲＭ）を電源投入する。
２．ブリッジは自身に直接接続された全周辺装置、例えば作業ＲＡＭ（ｘ８６チップセットのサウスブリッジに通常接続されるコンピュータ周辺装置と区別される）を初期化する。
３．ハイパーバイザプロセッサ（ＡＲＭ）がブートローダーをロードする。
４．ブートローダーが異種ハイパーバイザ層パートＡをロードする。
５．異種ハイパーバイザ層パートＡがＯＳ1をロードする。
【００９０】
ハイパーバイザプロセッサＯＳが活性化された後、高性能ｘ８６プロセッサＯＳを起動するシーケンスを図２２に示す。このモードはハイパーバイザプロセッサＯＳ及び高性能ｘ８６プロセッサＯＳ用のソフトウェアアプリケーションを動作させる。起動手順は本異種計算機システムを準備して同時で継ぎ目のないクロスＯＳソフトウェアアプリケーションを可能にする。起動シーケンスは下記を含む。
１．ハイパーバイザプロセッサを電源投入する。
２．ブリッジは自身に直接接続された全周辺装置を起動する。
３．ハイパーバイザプロセッサがブートローダーをロードする。
４．ブートローダーが異種ハイパーバイザ層パートＡをロードする。
５．異種ハイパーバイザ層パートＡがＯＳ1をロードする。
６．異種ハイパーバイザ層パートＡが高速ｘ８６を電源投入する。
７．高速ｘ８６が異種ハイパーバイザ層パートＢをロードする。
８．異種ハイパーバイザ層パートＢがＯＳ2をロードする。
【００９１】
高性能ｘ８６プロセッサＯＳだけを起動するシーケンスを図２３に示す。起動シーケンスは下記を含む。
１．高性能ｘ８６を電源投入する。
２．ブリッジがバイパス混成ブリッジサブシステムとして働く。
３．高性能ｘ８６がＢＩＯＳ、ＥＦＩ、又はＵＥＦＩをロードする。
４．高性能ｘ８６が異種ハイパーバイザ層パートＢをロードする。
５．異種ハイパーバイザ層パートＢがＯＳ2をロードする。
【００９２】
高性能ｘ８６プロセッサＯＳが活性化された後、ハイパーバイザプロセッサＯＳを起動するシーケンスを図２４に示す。このモードはハイパーバイザプロセッサＯＳ及び高性能ｘ８６プロセッサＯＳ用のソフトウェアアプリケーションを動作させる。起動手順は本異種計算機システムを準備して同時で継ぎ目のないクロスＯＳソフトウェアアプリケーションを可能にする。起動シーケンスは下記を含む。
１．高性能ｘ８６を電源投入する。
２．ブリッジがバイパス混成ブリッジサブシステムとして働く。
３．高性能ｘ８６がＢＩＯＳ又はＥＦＩ又はＵＥＦＩをロードする。
４．高性能ｘ８６が異種ハイパーバイザ層パートＢをロードする。
５．異種ハイパーバイザ層パートＢがＯＳ2をロードする。
６．ブリッジ（ＰＳＭ）はＢＩＯＳと同期し自身に接続されたｘ８６チップセットを除く全周辺装置を起動する。
７．異種ハイパーバイザ層パートＢがハイパーバイザプロセッサを電源投入する。
８．ハイパーバイザプロセッサがブートローダーをロードする。
９．ブートローダーが異種ハイパーバイザ層パートＡをロードする。
１０．異種ハイパーバイザ層パートＡが異種ハイパーバイザ層パートＢにハイパーバイザサービスを引き継ぐよう知らせる。
１１．異種ハイパーバイザ層パートＡがＯＳ1をロードする。
１２．ＯＳ1がシステムサービスを引き継ぐ。
【００９３】
上記は特定の実施形態の完全な説明であるが、様々な変形、代替え構成、及び等価物を使用してもよい。従って、上記説明及び図は本発明の範囲を限定すると解釈されるべきでない。
【符号の説明】
【００９４】
１００、２００、３００  異種計算機システム
１１０、２１０、３１０  ハイパーバイザプロセッサ
１２０、２２０、３２０  高性能プロセッサ
１３４、２３４、３３４  ローカルプロセッサバス（ＦＳＢ）
１４０、２４０、３４０  ブリッジ論理回路
１６２、２６２、３６２  プロセッサ支援論理回路
【図１】
2012256308.tif 000003
【図２】
2012256308.tif 000004
【図３】
2012256308.tif 000005
【図４】
2012256308.tif 000006
【図５】
2012256308.tif 000007
【図６】
2012256308.tif 000008
【図７】
2012256308.tif 000009
【図８】
2012256308.tif 000010
【図９】
2012256308.tif 000011
【図１０】
2012256308.tif 000012
【図１１】
2012256308.tif 000013
【図１２】
2012256308.tif 000014
【図１３】
2012256308.tif 000015
【図１４】
2012256308.tif 000016
【図１５】
2012256308.tif 000017
【図１６】
2012256308.tif 000018
【図１７】
2012256308.tif 000019
【図１８】
2012256308.tif 000020
【図１９】
2012256308.tif 000021
【図２０】
2012256308.tif 000022
【図２１】
2012256308.tif 000023
【図２２】
2012256308.tif 000024
【図２３】
2012256308.tif 000025
【図２４】
2012256308.tif 000026