(57)【要約】      （修正有）【課題】障害の影響を最小限に抑えることができるマルチプロセッサシステムを提供すること。【解決手段】マルチプロセッサシステム１０は、複数のＯＳ１１０〜１１ｎ上でそれぞれ動作する複数のＭＰＵ１２０〜１２ｎと、複数のＭＰＵ１２０〜１２ｎに対してそれぞれ割り当てられた複数のメモリ空間であるＭＥＭ１４０〜１４ｎを有するメモリ部１４とを具備する。複数のＭＰＵ１２０〜１２ｎのうちのＭＰＵ１２０で障害（異常、故障）が発生した場合だけでなく、ＯＳ１１０のストールやＭＥＭ１４０の障害（異常、故障）が発生した場合でも、ＭＰＵ１２１〜１２ｎはその障害の影響を受けることがなく、ＭＰＵ１２１〜１２ｎに割り当てられた資源／ソフトウェア（ＯＳ１１１〜１１ｎ、ＭＥＭ１４１〜１４ｎ）も一切その障害の影響を受けずにすむ。このように、障害（異常、故障）が発生しても、その障害の影響を最小限に抑えることができる。【選択図】図４
2005275629.tif 000002
【特許請求の範囲】
【請求項１】
複数のオペレーティングシステム上でそれぞれ動作する複数のマイクロプロセッサと、
前記複数のマイクロプロセッサに対してそれぞれ割り当てられた複数のメモリ空間を有するメモリ部と
を具備するマルチプロセッサシステム。
【請求項２】
請求項１に記載のマルチプロセッサシステムにおいて、
前記メモリ空間には仮想アドレスと物理アドレスとが割り当てられ、
前記メモリ空間はページテーブルを有し、前記メモリ空間の前記ページテーブルは、前記メモリ空間に割り当てられた前記仮想アドレスと、前記メモリ空間に割り当てられた物理アドレスとを対応付けて格納し、
前記マイクロプロセッサは、選択仮想アドレスに応じて、前記メモリ空間の前記ページテーブルを参照し、前記メモリ空間に割り当てられた前記物理アドレスのうち、前記選択仮想アドレスに対応する選択物理アドレスを選択し、前記選択物理アドレスに基づいて前記メモリ空間にアクセスする
マルチプロセッサシステム。
【請求項３】
請求項２に記載のマルチプロセッサシステムにおいて、
前記メモリ空間の前記ページテーブルは、更に、前記メモリ空間を識別するための識別子を格納し、
前記マイクロプロセッサは、前記メモリ空間の前記ページテーブルを参照して、前記マイクロプロセッサが保持する識別子と前記識別子とを照合し、
前記マイクロプロセッサが保持する識別子と前記識別子とが一致した場合、前記マイクロプロセッサは、前記選択物理アドレスを選択する
マルチプロセッサシステム。
【請求項４】
請求項２又は３に記載のマルチプロセッサシステムにおいて、
前記マイクロプロセッサは、更に、
アドレスチェック回路を有し、
前記マイクロプロセッサが前記選択物理アドレスを選択したとき、前記アドレスチェック回路は、予め決められた条件を前記選択物理アドレスが満たすか否かを表す判定結果を生成し、
前記判定結果が前記条件を前記選択物理アドレスが満たすことを表すとき、前記マイクロプロセッサは、前記選択物理アドレスに基づいて前記メモリ空間にアクセスする
マルチプロセッサシステム。
【請求項５】
請求項４に記載のマルチプロセッサシステムにおいて、
前記条件は、前記メモリ空間に割り当てられた前記物理アドレスのうち、１番目の物理アドレスである上限物理アドレスから、最終番目の物理アドレスである下限物理アドレスまでの範囲を表し、
前記マイクロプロセッサは、更に、
前記条件として前記上限物理アドレスと前記下限物理アドレスとを格納する上限下限物理アドレス格納部を有し、
前記マイクロプロセッサが前記選択物理アドレスを選択したとき、前記アドレスチェック回路は、前記上限下限物理アドレス格納部を参照して、前記範囲に前記選択物理アドレスが含まれるか否かを表す前記判定結果を生成し、
前記判定結果が前記範囲に前記選択物理アドレスが含まれることを表すとき、前記マイクロプロセッサは、前記選択物理アドレスに基づいて前記メモリ空間にアクセスする
マルチプロセッサシステム。
【請求項６】
複数のオペレーティングシステム上でそれぞれ動作する複数のマイクロプロセッサと、前記複数のマイクロプロセッサに対してそれぞれ割り当てられた複数のメモリ空間を有するメモリ部とを具備するマルチプロセッサシステムを提供するステップと、
前記マイクロプロセッサが前記メモリ空間にアクセスするステップと
を具備するメモリアクセス方法。
【請求項７】
請求項６に記載のメモリアクセス方法において、
前記メモリ空間には仮想アドレスと物理アドレスとが割り当てられ、
前記メモリ空間はページテーブルを有し、前記ページテーブルは、前記メモリ空間に割り当てられた前記仮想アドレスと、前記メモリ空間に割り当てられた物理アドレスとを対応付けて格納し、
前記マイクロプロセッサが前記メモリ空間にアクセスするステップは、
前記選択仮想アドレスに応じて、前記メモリ空間の前記ページテーブルを前記マイクロプロセッサが参照し、前記メモリ空間に割り当てられた前記物理アドレスのうち、前記選択仮想アドレスに対応する選択物理アドレスを前記マイクロプロセッサが選択するステップと、
前記マイクロプロセッサが前記選択物理アドレスに基づいて前記メモリ空間にアクセスするステップと
を含むメモリアクセス方法。
【請求項８】
請求項７に記載のメモリアクセス方法において、
前記選択物理アドレスを前記マイクロプロセッサが選択するステップは、
前記メモリ空間を識別するための識別子を更に格納する前記メモリ空間の前記ページテーブルを前記マイクロプロセッサが参照し、前記マイクロプロセッサが保持する識別子と前記識別子とを前記マイクロプロセッサが照合するステップと、
前記マイクロプロセッサが保持する識別子と前記識別子とが一致した場合、前記選択物理アドレスを前記マイクロプロセッサが選択するステップと
を含むメモリアクセス方法。
【請求項９】
請求項７又は８に記載のメモリアクセス方法において、
前記マイクロプロセッサが前記選択物理アドレスに基づいて前記メモリ空間にアクセスするステップは、
前記マイクロプロセッサが、前記選択物理アドレスを選択したとき、予め決められた条件を前記選択物理アドレスが満たすか否かを判定するステップと、
前記選択物理アドレスが前記条件を満たす場合、前記マイクロプロセッサが前記選択物理アドレスに基づいて前記メモリ空間にアクセスするステップと
を含むメモリアクセス方法。
【請求項１０】
請求項９に記載のメモリアクセス方法において、
前記条件は、前記メモリ空間に割り当てられた前記物理アドレスのうち、１番目の物理アドレスである上限物理アドレスから、最終番目の物理アドレスである下限物理アドレスまでの範囲を表し、
前記マイクロプロセッサが前記選択物理アドレスに基づいて前記メモリ空間にアクセスするステップは、
前記マイクロプロセッサが、前記選択物理アドレスを選択したとき、前記条件として前記上限物理アドレスと前記下限物理アドレスとを格納する上限下限物理アドレス格納部を参照して、前記範囲に前記選択物理アドレスが含まれているか否かを判定するステップと、
前記範囲に前記選択物理アドレスが含まれている場合、前記マイクロプロセッサが前記選択物理アドレスに基づいて前記メモリ空間にアクセスするステップと
を含むメモリアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサを搭載したマルチプロセッサシステム、及び、メモリアクセス方法に関する。
【背景技術】
【０００２】
近年の計算機では処理能力を高めるために複数のプロセッサを搭載したマルチプロセッサシステムが開発されている。従来のマルチプロセッサシステムを紹介する。
【０００３】
図１は、従来のマルチプロセッサシステムの概略図を示す。従来のマルチプロセッサシステムは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）と、ＯＳ上で動作する複数のＭＰＵ（ＭｉｃｒｏＰｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）と、メモリとを具備する。複数のＭＰＵは、メモリを共有する。従来のマルチプロセッサシステムは、更に、図示しない入出力デバイス（Ｉ／Ｏデバイス）を具備する。複数のＭＰＵは、Ｉ／Ｏデバイスを共有する。しかし、従来のマルチプロセッサシステムでは、複数のＭＰＵに共有された資源（メモリ、Ｉ／Ｏデバイス）の一部に障害（異常、故障）が発生した場合、その障害の影響がシステム全体に及んでしまうことがある。
【０００４】
単にひとつの計算機上で複数のＯＳを稼動させるという観点では、類似の既存技術として仮想計算機（ＶＭ）方式が挙げられる。図２は、仮想計算機（ＶＭ）方式の概略図を示す。ＶＭ方式は、計算機上で動作するホストＯＳと、仮想計算機上で動作する複数のゲストＯＳとを具備する。ＶＭ方式では、まず、計算機上にＶＭ自体を動作させるホストＯＳを起動する。そのホストＯＳに作られた仮想計算機上に複数のゲストＯＳを動作させる。しかし、ＶＭ方式では、ホストＯＳが動作しているハードウェアに障害（異常、故障）が発生した場合やホストＯＳがストールによる障害が発生した場合、仮想計算機上で動作している複数のゲストＯＳにもその障害の影響を受けることになり、その障害の影響がシステム全体に及んでしまうことがある。
【０００５】
さらに類似の既存技術としては論理分割方式が挙げられる。図３は、論理分割方式の概略図を示す。論理分割方式は、計算機上で動作するＭＰＵと、ＭＰＵ上で動作する複数のＯＳとを具備する。論理分割方式では、ＶＭ方式のようなホストＯＳを必要とせずに、同一計算機上で複数のＯＳを起動できる。しかしながら、論理分割方式では、一つのＭＰＵ上で複数のＯＳが動作するため、そのＭＰＵで障害が発生した場合、複数のＯＳにもその障害の影響を受けることになり、その障害の影響がシステム全体に及んでしまうことがある。
【０００６】
その他に、マルチプロセッサシステムに関連する技術を紹介する。
【０００７】
特許文献１には、仮想計算機システムの制御方式が開示されている。仮想計算機システムの制御方式は、複数のオペレーティングシステムと、この複数のオペレーティングシステムを管理する管理プログラムを備え、この管理プログラムの制御のもとに、複数のオペレーティングシステムを１つの計算機システム上で動作させるようにしたものである。仮想計算機システムの制御方式は、仮想アドレス実アドレス変換手段と、実アドレス絶対アドレス変換手段とを備えていることを特徴としている。仮想アドレス実アドレス変換手段は、複数のオペレーティングシステムの各々に対して、主記憶装置上の連続した空間を複数個わりあて、それを管理するアドレス管理テーブルを持ち、かつオペレーティングシステム内のアドレス変換テーブルにより仮想アドレスから実アドレスに変換する。実アドレス絶対アドレス変換手段は、この仮想アドレス実アドレス変換手段によって得られた実アドレスをアドレス管理テーブルにより主記憶のアドレスに対応付ける。
【０００８】
特許文献２には、異機種ジョブ制御方式が開示されている。異機種ジョブ制御方式は、中央処理装置と、主記憶装置と、入出力処理装置およびこの入出力処理装置に接続された周辺装置を含んだ情報処理装置であり、この情報処理装置で実行される情報処理の制御が主記憶装置の記憶領域に記憶された汎用制御手段に基づいて行なわれるものである。異機種ジョブ制御方式では、汎用制御手段は、この汎用制御手段の下で動作する異機種制御手段のジョブを起動させる手段と、ジョブを起動する際に汎用制御手段の記憶管理領域とは別に主記憶装置に連続的な記憶領域を確保する手段とを備え、確保された記憶領域には、異機種制御手段の下で実行されるサブジョブと、異機種制御手段のジョブ用メモリ管理手段と、異機種制御手段のジョブ用タスク管理手段と、異機種制御手段のジョブ用割込み制御手段とが記憶されることを特徴としている。
【０００９】
特許文献３には、異種ＯＳ間制御によるＯＳ監視方法が開示されている。異種ＯＳ間制御によるＯＳ監視方法は、複数のＯＳを有する計算機におけるソフトウェア障害を起こした事を検出する方法である。異種ＯＳ間制御によるＯＳ監視方法は、ハードウェアからの割り込み又はＣＰＵの処理時間を振り分ける機能を持つ仮想ハードウェアにより複数のＯＳに対しハードウェア資源を分離独立させる機能と、複数ＯＳ間でデータ書込み読み出しを可能とする機能とを具備する。異種ＯＳ間制御によるＯＳ監視方法は、定期的にデータの書き込みと書き込まれたデータを確認する事によりＯＳの動作監視を行ない、障害検知時ＯＳを再ロードすることを特徴としている。
【００１０】
特許文献４には、異種ＯＳ間制御による障害復旧方法が開示されている。異種ＯＳ間制御による障害復旧方法は、ＣＰＵを持つ装置内のオペレーティングシステムで、第一ＯＳであるＯＳ１と第二ＯＳであるＯＳ２又はそれ以上のＯＳが動作する複数ＯＳ同時実行の計算機システムを用いる。異種ＯＳ間制御による障害復旧方法は、第１手段と、第２手段と、第３手段と、第４手段とを持つ。第１手段は、ハードウェア資源を各ＯＳに割り当てて、ハードウェア及びＯＳの障害が他のＯＳの実行に影響を与えずに、ソフトとハードを含めて独立させる仮想的な壁であるファイアーウォールをソフトウェア技術で実現し、各ＯＳ間で情報を伝達する。第２手段は、独立した動作環境からＯＳ及びアプリケーションの動作状態を監視しＯＳの障害又は停止、動作不能状態を検出する。第３手段は、障害ＯＳを正常に或いは強制的に止める。第４手段は、ＯＳの再起動により回復させる。異種ＯＳ間制御による障害復旧方法は、これらを組合せて障害発生時、自動的に回復することを特徴とする。
【００１１】
特許文献５には、仮想クラスタ構成方法が開示されている。仮想クラスタ構成方法は、仮想クラスタ構成手段と、仮想クラスタ間通信手段を有することを特徴としている。仮想クラスタ構成手段は、プロセッサ、物理メモリ、外部デバイス等のハードウェア資源を専有しその上でオペレーティングシステムが動作する複数個の仮想クラスタを１台の計算機上に構成する。仮想クラスタ間通信手段は、異なる仮想クラスタ上で動作するプロセスが相互に通信する。
【００１２】
【特許文献１】特開平５−２０４７６０号公報
【特許文献２】特開平２−９６８３３号号公報
【特許文献３】特開２００１−１０１０３２号公報
【特許文献４】特開２００１−１０１０３４号公報
【特許文献５】特開平１１−８５５４７号号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
本発明の課題は、障害の影響を最小限に抑えることができるマルチプロセッサシステム、及び、メモリアクセス方法を提供することにある。
【課題を解決するための手段】
【００１４】
以下に、［発明を実施するための最良の形態］で使用する番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］の記載との対応関係を明らかにするために付加されたものであるが、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１５】
本発明のマルチプロセッサシステム（１０）は、複数のオペレーティングシステム（１１０〜１１ｎ）上でそれぞれ動作する複数のマイクロプロセッサ（１２０〜１２ｎ）と、複数のマイクロプロセッサ（１２０〜１２ｎ）に対してそれぞれ割り当てられた複数のメモリ空間（１４０〜１４ｎ）を有するメモリ部（１４）とを具備する。
【００１６】
本発明のマルチプロセッサシステム（１０）によれば、複数のマイクロプロセッサ（１２０〜１２ｎ）に対して、それぞれ複数のメモリ空間（１４０〜１４ｎ）が割り当てられている。
このため、本発明のマルチプロセッサシステム（１０）によれば、複数のマイクロプロセッサ（１２０〜１２ｎ）のうちのマイクロプロセッサ（１２０）で障害（異常、故障）が発生した場合でも、複数のマイクロプロセッサ（１２０〜１２ｎ）のうちのマイクロプロセッサ（１２０）以外のマイクロプロセッサ（１２１〜１２ｎ）はその障害の影響を受けることがなく、マイクロプロセッサ（１２１〜１２ｎ）に割り当てられた資源／ソフトウェア｛オペレーティングシステム（１１１〜１１ｎ）、メモリ空間（１４１〜１４ｎ）｝も一切その障害の影響を受けずにすむ。
【００１７】
また、本発明のマルチプロセッサシステム（１０）によれば、マイクロプロセッサ（１２０）の障害だけでなく、マイクロプロセッサ（１２０）が動作するオペレーティングシステム（１１０）のストールや、マイクロプロセッサ（１２０）に割り当てられたメモリ空間（１４０）の障害（異常、故障）が発生した場合でも、マイクロプロセッサ（１２１〜１２ｎ）はその障害の影響を受けることがなく、マイクロプロセッサ（１２１〜１２ｎ）に割り当てられた資源／ソフトウェアも一切その障害の影響を受けずにすむ。
【００１８】
また、本発明のマルチプロセッサシステム（１０）によれば、ユーザは、重要と思われる処理を二重化、三重化、…にさせることができる。例えば、メモリ空間（１４０、１４１）に同じ仮想アドレス、物理アドレスを割り当ておき、マイクロプロセッサ（１２０、１２１）がそれぞれメモリ空間（１４０、１４１）に同時にアクセスするような動作をさせている場合、マイクロプロセッサ（１２０）で障害が発生しても、マイクロプロセッサ（１２１）は、マイクロプロセッサ（１２０）で発生した障害の影響を受けることがなく動作する。
【００１９】
このように、本発明のマルチプロセッサシステム（１０）によれば、障害（異常、故障）が発生しても、その障害の影響を最小限に抑えることができる。
【００２０】
本発明のマルチプロセッサシステム（１０）において、メモリ空間（１４ｊ；ｊ＝０、１、２、…、ｎ）には、仮想アドレスと物理アドレスとが割り当てられている。メモリ空間（１４ｊ）はページテーブル（４ｊ）を有する。メモリ空間（１４ｊ）のページテーブル（４ｊ）は、メモリ空間（１４ｊ）に割り当てられた仮想アドレスと、メモリ空間（１４ｊ）に割り当てられた物理アドレスとを対応付けて格納する。
マイクロプロセッサ（１２ｊ）は、選択仮想アドレスに応じて、メモリ空間（１４ｊ）に割り当てられた物理アドレスのうち、その選択仮想アドレスに対応する選択物理アドレスを選択し、選択物理アドレスに基づいてメモリ空間（１４ｊ）にアクセスする。
【００２１】
本発明のマルチプロセッサシステム（１０）において、メモリ空間（１４ｊ）のページテーブル（４ｊ）は、更に、メモリ空間（１４ｊ）を識別するための識別子（８ｊ）を格納する。
マイクロプロセッサ（１２ｊ）は、メモリ空間（１４ｊ）のページテーブル（４ｊ）を参照して、マイクロプロセッサ（１２ｊ）が保持する識別子（８ｊ）と識別子（８ｊ）とを照合する。マイクロプロセッサ（１２ｊ）が保持する識別子（８ｊ）と識別子（８ｊ）とが一致した場合、マイクロプロセッサ（１２ｊ）は、メモリ空間（１４ｊ）のページテーブル（４ｊ）を参照して、選択物理アドレスを選択する。
【００２２】
本発明のマルチプロセッサシステム（１０）において、マイクロプロセッサ（１２ｊ）は、更に、アドレスチェック回路（６ｊ）を有する。
マイクロプロセッサ（１２ｊ）が選択物理アドレスを選択したとき、アドレスチェック回路（６ｊ）は、予め決められた条件を選択物理アドレスが満たすか否かを表す判定結果を生成する。
マイクロプロセッサ（１２ｊ）は、判定結果が上記の条件を選択物理アドレスが満たすことを表すとき、選択物理アドレスに基づいてメモリ空間（１４ｊ）にアクセスする。
【００２３】
本発明のマルチプロセッサシステム（１０）において、上記の条件は、メモリ空間（１４ｊ）に割り当てられた物理アドレスのうち、１番目の物理アドレスである上限物理アドレスから、最終番目の物理アドレスである下限物理アドレスまでの範囲を表す。
マイクロプロセッサ（１２ｊ）は、更に、上限下限物理アドレス格納部（５ｊ）を有する。上限下限物理アドレス格納部（５ｊ）は、上記の条件として上記の上限物理アドレスと上記の下限物理アドレスとを格納する。
マイクロプロセッサ（１２ｊ）が選択物理アドレスを選択したとき、アドレスチェック回路（６ｊ）は、上限下限物理アドレス格納部（５ｊ）を参照して、判定結果を生成する。この判定結果は、上記の範囲に選択物理アドレスが含まれるか否かを表す。
マイクロプロセッサ（１２ｊ）は、判定結果が上記の範囲に選択物理アドレスが含まれることを表すとき、選択物理アドレスに基づいて前記メモリ空間（１４ｊ）にアクセスする。
【００２４】
本発明のマルチプロセッサシステム（１０）によれば、マイクロプロセッサ（１２ｊ）は、アクセスすべきメモリ空間（１４ｊ）とは異なる他のメモリ空間にアクセスするような不正行為を防ぐことができる。
【００２５】
本発明のマルチプロセッサシステム（１０）によれば、障害の影響を更に最小限に抑えることができる。
【００２６】
本発明のメモリアクセス方法は、複数のオペレーティングシステム（１１０〜１１ｎ）上でそれぞれ動作する複数のマイクロプロセッサ（１２０〜１２ｎ）と、複数のマイクロプロセッサ（１２０〜１２ｎ）に対してそれぞれ割り当てられた複数のメモリ空間（１４０〜１４ｎ）を有するメモリ部（１４）とを具備するマルチプロセッサシステムを提供するステップと、マイクロプロセッサ（１２ｊ；ｊ＝０、１、２、…、ｎ）がメモリ空間（１４ｊ）にアクセスするステップ（Ｓ１〜Ｓ３）とを具備する。
【００２７】
本発明のメモリアクセス方法によれば、複数のマイクロプロセッサ（１２０〜１２ｎ）に対して、それぞれ複数のメモリ空間（１４０〜１４ｎ）が割り当てられている。
このため、本発明のメモリアクセス方法によれば、複数のマイクロプロセッサ（１２０〜１２ｎ）のうちのマイクロプロセッサ（１２０）で障害（異常、故障）が発生した場合でも、複数のマイクロプロセッサ（１２０〜１２ｎ）のうちのマイクロプロセッサ（１２０）以外のマイクロプロセッサ（１２１〜１２ｎ）はその障害の影響を受けることがなく、マイクロプロセッサ（１２１〜１２ｎ）に割り当てられた資源／ソフトウェア｛オペレーティングシステム（１１１〜１１ｎ）、メモリ空間（１４１〜１４ｎ）｝も一切その障害の影響を受けずにすむ。
【００２８】
また、本発明のメモリアクセス方法によれば、マイクロプロセッサ（１２０）の障害だけでなく、マイクロプロセッサ（１２０）が動作するオペレーティングシステム（１１０）のストールや、マイクロプロセッサ（１２０）に割り当てられたメモリ空間（１４０）の障害（異常、故障）が発生した場合でも、マイクロプロセッサ（１２１〜１２ｎ）はその障害の影響を受けることがなく、マイクロプロセッサ（１２１〜１２ｎ）に割り当てられた資源／ソフトウェアも一切その障害の影響を受けずにすむ。
【００２９】
また、本発明のメモリアクセス方法によれば、ユーザは、重要と思われる処理を二重化、三重化、…にさせることができる。例えば、メモリ空間（１４０、１４１）に同じ仮想アドレス、物理アドレスを割り当ておき、マイクロプロセッサ（１２０、１２１）がそれぞれメモリ空間（１４０、１４１）に同時にアクセスするような動作をさせている場合、マイクロプロセッサ（１２０）で障害が発生しても、マイクロプロセッサ（１２１）は、マイクロプロセッサ（１２０）で発生した障害の影響を受けることがなく動作する。
【００３０】
このように、本発明のメモリアクセス方法によれば、障害（異常、故障）が発生しても、その障害の影響を最小限に抑えることができる。
【００３１】
本発明のメモリアクセス方法において、メモリ空間（１４ｊ）には、仮想アドレスと物理アドレスとが割り当てられている。メモリ空間（１４ｊ）はページテーブル（４ｊ）を有する。ページテーブル（４ｊ）は、メモリ空間（１４ｊ）に割り当てられた仮想アドレスと、メモリ空間（１４ｊ）に割り当てられた物理アドレスとを対応付けて格納する。
マイクロプロセッサ（１２ｊ）がメモリ空間（１４ｊ）にアクセスするステップ（Ｓ１〜Ｓ３）は、選択仮想アドレスに応じて、メモリ空間（１４ｊ）のページテーブル（４ｊ）をマイクロプロセッサ（１２ｊ）が参照し、メモリ空間（１４ｊ）に割り当てられた物理アドレスのうち、その選択仮想アドレスに対応する選択物理アドレスをマイクロプロセッサ（１２ｊ）が選択するステップ（Ｓ１、Ｓ２）と、マイクロプロセッサ（１２ｊ）が選択物理アドレスに基づいてメモリ空間（１４ｊ）にアクセスするステップ（Ｓ３）とを含む。
【００３２】
本発明のメモリアクセス方法において、選択物理アドレスをマイクロプロセッサ（１２ｊ）が選択するステップは、メモリ空間（１４ｊ）を識別するための識別子（８ｊ）を更に格納するメモリ空間（１４ｊ）のページテーブル（４ｊ）をマイクロプロセッサ（１２ｊ）が参照し、マイクロプロセッサ（１２ｊ）が保持する識別子（８ｊ）と識別子（８ｊ）とをマイクロプロセッサ（１２ｊ）が照合するステップ（Ｓ１、Ｓ１１）と、マイクロプロセッサ（１２ｊ）が保持する識別子（８ｊ）と識別子（８ｊ）とが一致した場合（Ｓ１１−ＹＥＳ）、選択物理アドレスをマイクロプロセッサ（１２ｊ）が選択するステップ（Ｓ２）とを含む。
【００３３】
本発明のメモリアクセス方法において、マイクロプロセッサ（１２ｊ）が選択物理アドレスに基づいてメモリ空間（１４ｊ）にアクセスするステップは、マイクロプロセッサ（１２ｊ）が、選択物理アドレスを選択したとき、予め決められた条件を選択物理アドレスが満たすか否かを判定するステップ（Ｓ１２、Ｓ１３）と、選択物理アドレスが上記の条件を満たす場合（Ｓ１３−ＹＥＳ）、マイクロプロセッサ（１２ｊ）が選択物理アドレスに基づいてメモリ空間（１４ｊ）にアクセスするステップ（Ｓ３）とを含む。
【００３４】
本発明のメモリアクセス方法において、上記の条件は、メモリ空間（１４ｊ）に割り当てられた物理アドレスのうち、１番目の物理アドレスである上限物理アドレスから、最終番目の物理アドレスである下限物理アドレスまでの範囲を表す。
マイクロプロセッサ（１２ｊ）が選択物理アドレスに基づいてメモリ空間（１４ｊ）にアクセスするステップは、マイクロプロセッサ（１２ｊ）が、選択物理アドレスを選択したとき、上記の上限物理アドレスと上記の下限物理アドレスとを格納する上限下限物理アドレス格納部（５ｊ）を参照して、上記の範囲に選択物理アドレスが含まれているか否かを判定するステップ（Ｓ１２、Ｓ１３）と、上記の範囲に選択物理アドレスが含まれている場合（Ｓ１３−ＹＥＳ）、マイクロプロセッサ（１２ｊ）が選択物理アドレスに基づいてメモリ空間（１４ｊ）にアクセスするステップ（Ｓ３）とを含む。
【００３５】
本発明のメモリアクセス方法によれば、以上のステップ（Ｓ１、Ｓ２、Ｓ１２、Ｓ１３、Ｓ３）により、マイクロプロセッサ（１２ｊ）は、アクセスすべきメモリ空間（１４ｊ）とは異なる他のメモリ空間にアクセスするような不正行為を防ぐことができる。
【００３６】
本発明のメモリアクセス方法によれば、障害の影響を更に最小限に抑えることができる。
【発明の効果】
【００３７】
本発明のマルチプロセッサシステムは、複数のオペレーティングシステム（１１０〜１１ｎ）上でそれぞれ動作する複数のマイクロプロセッサ（１２０〜１２ｎ）と、複数のマイクロプロセッサ（１２０〜１２ｎ）に対してそれぞれ割り当てられた複数のメモリ空間（１４０〜１４ｎ）を有するメモリ部（１４）とを具備しているため、障害（異常、故障）が発生しても、その障害の影響を最小限に抑えることができる。
本発明のメモリアクセス方法は、上記のマルチプロセッサシステムにより、マイクロプロセッサ（１２ｊ；ｊ＝０、１、２、…、ｎ）がメモリ空間（１４ｊ）にアクセスするため、障害（異常、故障）が発生しても、その障害の影響を最小限に抑えることができる。
【発明を実施するための最良の形態】
【００３８】
添付図面を参照して、本発明によるマルチプロセッサシステムを実施するための最良の形態を以下に説明する。
【００３９】
図４は、本発明のマルチプロセッサシステムのハードウェア構成の概略図を示す。本発明のマルチプロセッサシステム１０は、複数のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）１１０〜１１ｎと、複数のＭＰＵ（ＭｉｃｒｏＰｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）１２０〜１２ｎと、チップセット１３と、メモリ部１４と、入出力デバイスコントロール部（ＰＣＩ／ＰＣＩ−Ｘ）１５と、複数の入出力デバイス（ＰＣＩ  Ｄｅｖｉｃｅ）１６０〜１６ｎとを具備する。ｎは１以上の整数である。複数のＭＰＵ１２０〜１２ｎは、仮想アドレスをサポートするマイクロプロセッサである。チップセット１３は、対称型マルチプロセッサシステム（ＳＭＰ）をつなぐコントロール部であり、複数のＭＰＵ１２０〜１２ｎと、メモリ部１４と、入出力デバイスコントロール部１５とに接続されている。メモリ部１４は、主記憶装置を示し、複数のメモリ空間（ＭＥＭ）１４０〜１４ｎを有する。入出力デバイスコントロール部（ＰＣＩ／ＰＣＩ−Ｘ）１５は、ＰＣＩデバイスのコントロール部であり、複数の入出力デバイス（ＰＣＩデバイス）１６０〜１６ｎの配下で動作するＩ／Ｏデバイスである。
【００４０】
複数のＭＰＵ１２０〜１２ｎは、それぞれ複数のＯＳ１１０〜１１ｎ上で動作する。即ち、複数のＭＰＵ１２０〜１２ｎのうちの１番目のＭＰＵ１２０は、複数のＯＳ１１０〜１１ｎのうちの１番目のＯＳ１１０を起動する。複数のＭＰＵ１２０〜１２ｎのうちの２番目のＭＰＵ１２１は、複数のＯＳ１１０〜１１ｎのうちの２番目のＯＳ１１１を起動する。複数のＭＰＵ１２０〜１２ｎのうちのｊ番目（ｊ＝０、１、２、…、ｎ）のＭＰＵ１２ｊは、複数のＯＳ１１０〜１１ｎのうちのｊ番目のＯＳ１１ｊを起動する。
【００４１】
複数のメモリ空間（ＭＥＭ）１４０〜１４ｎは、複数のＭＰＵ１２０〜１２ｎに対してそれぞれ割り当てられている。即ち、ＭＰＵ１２０には、複数のメモリ空間（ＭＥＭ）１４０〜１４ｎのうちの１番目のメモリ区画であるメモリ空間（ＭＥＭ）１４０が割り当てられている。ＭＰＵ１２１には、複数のメモリ空間（ＭＥＭ）１４０〜１４ｎのうちの２番目のメモリ区画であるメモリ空間（ＭＥＭ）１４１が割り当てられている。ＭＰＵ１２ｊには、複数のメモリ空間（ＭＥＭ）１４０〜１４ｎのうちのｊ番目のメモリ区画であるメモリ空間（ＭＥＭ）１４ｊが割り当てられている。
なお、メモリ空間（ＭＥＭ）１４０〜１４ｎが割り当てられた順序（０、１、２、…、ｎ）は、ＭＰＵ１２０〜１２ｎが割り当てられた順序と一致している必要はない。つまり、メモリ空間（ＭＥＭ）１４１をＭＰＵ１２０が使用し、メモリ空間（ＭＥＭ）１４０をＭＰＵ１２１が使用しても構わない。本実施例では、複数のメモリ空間（ＭＥＭ）１４０〜１４ｎは、メモリ空間（ＭＥＭ）１４０〜１４ｎが割り当てられた順に、複数のＭＰＵ１２０〜１２ｎに対してそれぞれ割り当てられているものとする。
【００４２】
複数の入出力デバイスであるＰＣＩデバイス１６０〜１６ｎは、複数のＭＰＵ１２０〜１２ｎに対してそれぞれ割り当てられている。即ち、ＭＰＵ１２０には、複数のＰＣＩデバイス１６０〜１６ｎのうちの１番目のＰＣＩデバイスであるＰＣＩデバイス１６０が割り当てられている。ＭＰＵ１２１には、複数のＰＣＩデバイス１６０〜１６ｎのうちの２番目のＰＣＩデバイスであるＰＣＩデバイス１６１が割り当てられている。ＭＰＵ１２ｊには、複数のＰＣＩデバイス１６０〜１６ｎのうちのｊ番目のＰＣＩデバイスであるＰＣＩデバイス１６ｊが割り当てられている。
上記のＰＣＩデバイスはｎ個であるとは限らず、ｎ個より多くてもよい。例えば、ＰＣＩデバイス１６０は、３個のＰＣＩデバイスを含み、その３個のＰＣＩデバイスは、ＭＰＵ１２０に対して割り当てられている。ＰＣＩデバイス１６１は、５個のＰＣＩデバイスを含み、その５個のＰＣＩデバイスは、ＭＰＵ１２１に対して割り当てられている。
【００４３】
図５は、本発明のマルチプロセッサシステム１０のＭＰＵ１２０〜１２ｎとメモリ部１４の概略図を示す。メモリ空間（ＭＥＭ）１４ｊは、仮想アドレスをサポートし、仮想アドレスを物理アドレスに変換するためのページテーブル４ｊを有する。ＭＰＵ１２ｊは、ページテーブル４ｊを参照するためのページテーブルレジスタ１ｊを有する。ＭＰＵ１２ｊは、更に、アドレステーブルのためのキャッシュの役割を果たすトランスレーション・ルックアサイド・バッファ（ＴＬＢ）２ｊを有する場合もある。
【００４４】
ＯＳを複数稼動するときに問題となるのがメモリ空間の割り当てである。この問題を解決するために上記のページテーブルを使用する。通常、仮想アドレスとは複数プログラム間でメモリを効率よく共有することや主記憶容量の限界に対処するプログラミング上の負荷を軽減する目的で使用されるが、ここでは複数のＯＳを起動するために使用する。
メモリ空間（ＭＥＭ）１４ｊには、仮想アドレスと物理アドレスとが割り当てられている。メモリ空間（ＭＥＭ）１４ｊに割り当てられた仮想アドレスは、仮想ページ番号と、ページ内オフセットとを含む。メモリ空間（ＭＥＭ）１４ｊに割り当てられた物理アドレスは、物理ページ番号と、ページ内オフセットとを含む。
【００４５】
図６は、本発明のマルチプロセッサシステム１０におけるページテーブル４ｊを示す。ページテーブル４ｊは、メモリ空間（ＭＥＭ）１４ｊに割り当てられた仮想アドレスの仮想ページ番号と、メモリ空間（ＭＥＭ）１４ｊに割り当てられた物理アドレスの物理ページ番号とを対応付けて格納する。
【００４６】
上述した構成を具備するマルチプロセッサシステム１０は、ユーザに提供（販売、使用）される。
【００４７】
図７は、本発明のマルチプロセッサシステム１０の動作を示すフローチャートである。各ＭＰＵ１２０〜１２ｎはファームウェアにより起動される。
【００４８】
ＭＰＵ１２ｊは、選択仮想アドレスに応じて、ページテーブルレジスタ１ｊによりメモリ空間（ＭＥＭ）１４ｊのページテーブル４ｊを参照する（ステップＳ１）。選択仮想アドレスは、ＭＰＵ１２ｊの内部で発生する命令により決定される。
【００４９】
ＭＰＵ１２ｊは、メモリ空間（ＭＥＭ）１４ｊに割り当てられた物理アドレスのうち、その選択仮想アドレスに対応する選択物理アドレスを選択する。即ち、ＭＰＵ１２ｊは、その選択仮想アドレスを選択物理アドレスに変換する（ステップＳ２）。
【００５０】
ＭＰＵ１２ｊは、選択物理アドレスに基づいてメモリ空間（ＭＥＭ）１４ｊにアクセスする（ステップＳ３）。
【００５１】
本発明のマルチプロセッサシステム１０によれば、複数のＭＰＵ１２０〜１２ｎに対して、それぞれ複数のメモリ空間（ＭＥＭ）１４０〜１４ｎが割り当てられ、それぞれ複数のＰＣＩデバイス１６０〜１６ｎが割り当てられている。
このため、本発明のマルチプロセッサシステム１０によれば、ＭＰＵ１２０〜１２ｎのうちのＭＰＵ１２０で障害（異常、故障）が発生した場合でも、ＭＰＵ１２０〜１２ｎのうちのＭＰＵ１２１〜１２ｎはその障害の影響を受けることがなく、ＭＰＵ１２１〜１２ｎに割り当てられた資源／ソフトウェア（ここでは、ＯＳ１１１〜１１ｎ、メモリ空間（ＭＥＭ）１４１〜１４ｎ、ＰＣＩデバイス１６１〜１６ｎなど）も一切その障害の影響を受けずにすむ。
【００５２】
また、本発明のマルチプロセッサシステム１０によれば、ＭＰＵ１２０の障害だけでなく、ＯＳ１１０のストール、メモリ空間（ＭＥＭ）１４０の障害やＰＣＩデバイス１６０で障害（異常、故障）が発生した場合でも、ＭＰＵ１２１〜１２ｎはその障害の影響を受けることがなく、ＭＰＵ１２１〜１２ｎに割り当てられた資源／ソフトウェアも一切その障害の影響を受けずにすむ。
【００５３】
また、本発明のマルチプロセッサシステム１０によれば、ユーザは、重要と思われる処理を二重化、三重化、…にさせることができる。例えば、メモリ空間（ＭＥＭ）１４０、１４１に同じ仮想アドレス、物理アドレスを割り当ておき、ＭＰＵ１２０、１２１がそれぞれメモリ空間（ＭＥＭ）１４０、１４１に同時にアクセスするような動作をさせている場合、ＭＰＵ１２０で障害が発生しても、ＭＰＵ１２１は、ＭＰＵ１２０で発生した障害の影響を受けることがなく動作する。
【００５４】
このように、本発明のマルチプロセッサシステム１０によれば、障害（異常、故障）が発生しても、その障害の影響を最小限に抑えることができる。
【００５５】
本発明のマルチプロセッサシステム１０における他の実施例について説明する。本発明の他の実施例に係るマルチプロセッサシステム１０では、障害の影響を更に最小限に抑えることができる。本発明の他の実施例に係るマルチプロセッサシステム１０については、上述と重複する説明を省略する。
【００５６】
図８は、本発明の他の実施例に係るマルチプロセッサシステム１０のＭＰＵ１２０〜１２ｎとメモリ部１４の概略図を示す。ＭＰＵ１２ｊは、更に、上限下限物理アドレス格納部５ｊと、アドレスチェック回路６ｊとを有する。
【００５７】
図９は、本発明の他の実施例に係るマルチプロセッサシステム１０における上限下限物理アドレス格納部５ｊを示す。ＭＰＵ１２ｊの上限下限物理アドレス格納部５ｊは、予め決められた条件として、メモリ空間（ＭＥＭ）１４ｊに割り当てられた１番目の物理アドレスである上限物理アドレスと、メモリ空間（ＭＥＭ）１４ｊに割り当てられた最終番目の物理アドレスである下限物理アドレスとを格納する。上記条件は、メモリ空間１４ｊに割り当てられた物理アドレスのうち、上限物理アドレスから下限物理アドレスまでの範囲を表す。
ＭＰＵ１２ｊのアドレスチェック回路６ｊは、上限下限物理アドレス格納部５ｊを参照して、ＭＰＵ１２ｊにより選択された選択物理アドレスが上記条件を満たすか否かを表す判定結果を生成する。
【００５８】
図１０は、本発明の他の実施例に係るマルチプロセッサシステム１０におけるページテーブル４ｊを示す。ページテーブル４ｊは、メモリ空間（ＭＥＭ）１４ｊに割り当てられた仮想アドレスの仮想ページ番号と、メモリ空間（ＭＥＭ）１４ｊに割り当てられた物理アドレスの物理ページ番号とに対応付けて、ＯＳ番号８ｊ（エントリ）とを更に格納する。ＭＰＵ１２ｊは、メモリ空間（ＭＥＭ）１４ｊのページテーブル４ｊに格納されたＯＳ番号８ｊを予めに認識（保持）している。
ＯＳ番号８ｊ（エントリ）は、メモリ空間（ＭＥＭ）１４ｊを識別するための識別子であり、メモリ空間（ＭＥＭ）１４ｊに割り当てられた物理アドレスがどのＯＳ用なのかをＯＳの一意の番号で示すものとする。このエントリをページテーブル４０〜４ｎに追加するために、メモリ部１４には、（ＯＳ数）≦（２のＮ乗）を満たすＮビットが必要となる。１マイクロプロセッサに１ＯＳずつ割り付けることを想定して（ＭＰＵ数）≦（２のＮ乗）を満たすＮビットが望ましい。
【００５９】
図１１は、本発明の他の実施例に係るマルチプロセッサシステム１０の動作を示すフローチャートである。
【００６０】
ＭＰＵ１２ｊは、選択仮想アドレスに応じて、ページテーブルレジスタ１ｊによりメモリ空間（ＭＥＭ）１４ｊのページテーブル４ｊを参照する（ステップＳ１）。
【００６１】
ＭＰＵ１２ｊは、自己が保持しているＯＳ番号８ｊとメモリ空間（ＭＥＭ）１４ｊのページテーブル４ｊに格納されたＯＳ番号８ｊとが一致しているか否かを照合する（ステップＳ１１）。
【００６２】
照合の結果、例えば、ＭＰＵ１２ｊが保持しているＯＳ番号８ｊとメモリ空間（ＭＥＭ）１４ｊのページテーブル４ｊに格納されたＯＳ番号８ｊとが一致していない。即ち、該当するメモリ空間（ＭＥＭ）１４ｊではない（ステップＳ１１−ＮＯ）。この場合、ＭＰＵ１２ｊは、メモリ空間（ＭＥＭ）１４ｊにアクセスしない。
【００６３】
照合の結果、ＭＰＵ１２ｊが保持しているＯＳ番号８ｊとメモリ空間（ＭＥＭ）１４ｊのページテーブル４ｊに格納されたＯＳ番号８ｊとが一致している。即ち、該当するメモリ空間（ＭＥＭ）１４ｊである（ステップＳ１１−ＹＥＳ）。この場合、ＭＰＵ１２ｊは、メモリ空間（ＭＥＭ）１４ｊに割り当てられた物理アドレスのうち、その選択仮想アドレスに対応する選択物理アドレスを選択する。即ち、ＭＰＵ１２ｊは、その選択仮想アドレスを選択物理アドレスに変換する（ステップＳ２）。
【００６４】
ＭＰＵ１２ｊのアドレスチェック回路６ｊは、上限下限物理アドレス格納部５ｊを参照して、ステップＳ２により選択（変換）された選択物理アドレスが上記条件を満たすか否かを表す判定結果を生成する（ステップＳ１２）。この判定結果は、上限下限物理アドレス格納部５ｊに格納された上限物理アドレスから下限物理アドレスまでの範囲に、選択物理アドレスが含まれるか否かを表す。
【００６５】
例えば、判定結果が上記範囲に選択物理アドレスが含まれていないことを表す。即ち、ステップＳ２により選択（変換）された選択物理アドレスは、上記条件を満たしていないため、適切な物理アドレスではない（ステップＳ１３−ＮＯ）。この場合、ＭＰＵ１２ｊは、メモリ空間（ＭＥＭ）１４ｊにアクセスしない。
【００６６】
判定結果が上記範囲に選択物理アドレスが含まれることを表す。即ち、ステップＳ２により選択（変換）された選択物理アドレスは、上記条件を満たしているため、適切な物理アドレスである（ステップＳ１３−ＹＥＳ）。この場合、ＭＰＵ１２ｊは、適切な物理アドレス（選択物理アドレス）に基づいてメモリ空間（ＭＥＭ）１４ｊにアクセスする（ステップＳ３）。
【００６７】
本発明の他の実施例に係るマルチプロセッサシステム１０によれば、ＭＰＵ１２ｊは、アクセスすべきメモリ空間（ＭＥＭ）１４ｊとは異なる他のメモリ空間（ＭＥＭ）にアクセスするような不正行為を防ぐことができる。
したがって、ＭＰＵ１２０〜１２ｎのうちのＭＰＵ１２０で障害（異常、故障）が発生した場合でも、ＭＰＵ１２０〜１２ｎのうちのＭＰＵ１２１〜１２ｎはその障害の影響を受けることがなく、ＭＰＵ１２１〜１２ｎに割り当てられた資源／ソフトウェア（ここでは、ＯＳ１１１〜１１ｎ、メモリ空間（ＭＥＭ）１４１〜１４ｎ、ＰＣＩデバイス１６１〜１６ｎなど）も一切その障害の影響を受けずにすむ。
【００６８】
このように、本発明の他の実施例に係るマルチプロセッサシステム１０によれば、障害の影響を更に最小限に抑えることができる。
【図面の簡単な説明】
【００６９】
【図１】図１は、従来のマルチプロセッサシステムの概略図を示す。
【図２】図２は、仮想計算機（ＶＭ）方式の概略図を示す。
【図３】図３は、論理分割方式の概略図を示す。
【図４】図４は、本発明のマルチプロセッサシステムのハードウェア構成の概略図を示す。
【図５】図５は、本発明のマルチプロセッサシステムのＭＰＵとメモリ部の概略図を示す。
【図６】図６は、本発明のマルチプロセッサシステムにおけるページテーブルを示す。
【図７】図７は、本発明のマルチプロセッサシステムの動作を示すフローチャートである。
【図８】図８は、本発明の他の実施例に係るマルチプロセッサシステムのＭＰＵとメモリ部の概略図を示す。
【図９】図９は、本発明の他の実施例に係るマルチプロセッサシステムにおける上限下限物理アドレス格納部を示す。
【図１０】図１０は、本発明の他の実施例に係るマルチプロセッサシステムにおけるページテーブルを示す。
【図１１】図１１は、本発明の他の実施例に係るマルチプロセッサシステムの動作を示すフローチャートである。
【符号の説明】
【００７０】
１０    マルチプロセッサシステム
１１０〜１１ｎ    ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）
１２０〜１２ｎ    ＭＰＵ（ＭｉｃｒｏＰｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）
１３    チップセット
１４    メモリ部
１５    入出力デバイスコントロール部（ＰＣＩ／ＰＣＩ−Ｘ）
１６０〜１６ｎ    入出力デバイス（ＰＣＩ  Ｄｅｖｉｃｅ）
１４０〜１４ｎ    メモリ空間（ＭＥＭ）
４０〜４ｎ    ページテーブル
１０〜１ｎ    ページテーブルレジスタ
２０〜２ｎ    トランスレーション・ルックアサイド・バッファ（ＴＬＢ）
５０〜５ｎ    上限下限物理アドレス格納部
６０〜６ｎ    アドレスチェック回路
８０〜８ｎ    ＯＳ番号
【図１】
2005275629.tif 000003
【図２】
2005275629.tif 000004
【図３】
2005275629.tif 000005
【図４】
2005275629.tif 000006
【図５】
2005275629.tif 000007
【図６】
2005275629.tif 000008
【図７】
2005275629.tif 000009
【図８】
2005275629.tif 000010
【図９】
2005275629.tif 000011
【図１０】
2005275629.tif 000012
【図１１】
2005275629.tif 000013