(57)【要約】【課題】デバッグ用の前記記憶装置を必要としない仮想マルチプロセッサシステムのデバッグ機構を提供する。【解決手段】物理プロセッサ１００と、論理プロセッサ１１０〜１１３の状態を示す状態情報を記憶している保管部１３０〜１３３と、物理プロセッサ１００に対して、複数の論理プロセッサ１１０〜１１３を切り替えながら、当該複数の論理プロセッサ１１０〜１１３のいずれかを割り当てるディスパッチ部１２０と、論理プロセッサ１１０に対してデバッグ割込みを要求することにより、論理プロセッサ１１０で現在実行中の処理を停止させる割込み部１４０とを備え、ディスパッチ部１２０は、物理プロセッサ１００に割り当てられている論理プロセッサ１１０へのデバッグ割込みの要求に応答して、論理プロセッサ１１０に対応する状態情報を保管部１３０へ記憶する。【選択図】図２
2009175960.tif 000002
【特許請求の範囲】
【請求項１】
論理プロセッサが割り当てられ、当該論理プロセッサの処理を実行する物理プロセッサと、
前記物理プロセッサに割り当てられていない前記論理プロセッサの状態を示す状態情報を記憶している保管部と、
前記物理プロセッサに対して、複数の論理プロセッサを切り替えながら、当該複数の論理プロセッサのいずれかを割り当てるとともに、当該切り替えに応答して、当該切り替え前に前記物理プロセッサに割り当てられている前記論理プロセッサに対応する前記状態情報を前記保管部に記憶し、かつ、当該切り替え後に前記物理プロセッサに割り当てられる前記論理プロセッサに対応する前記状態情報を、前記保管部から読出し、前記物理プロセッサに書込むディスパッチ部と、
前記物理プロセッサに割り当てられている前記論理プロセッサに対してデバッグ割込みを要求することにより、当該論理プロセッサで実行中の処理を停止させる割込み部とを備え、
前記ディスパッチ部は、前記物理プロセッサに割り当てられている前記論理プロセッサへの前記デバッグ割込みの要求に応答して、当該論理プロセッサに対応する前記状態情報を前記保管部へ記憶する
ことを特徴とする仮想マルチプロセッサシステム。
【請求項２】
前記物理プロセッサに割り当てられている前記論理プロセッサは、前記割込み部からの前記デバッグ割込みの要求に応答して、デバッグ割込み処理を実行するとともに、当該デバッグ割込み処理が終了すると前記デバッグ割込み処理からの復帰指示を前記ディスパッチ部に出力し、
前記ディスパッチ部は、前記デバッグ割込み処理からの復帰指示に応答して、前記複数の論理プロセッサの中から１つを選択し、選択された前記論理プロセッサを前記物理プロセッサに割り当て、前記物理プロセッサに割り当てられる前記論理プロセッサに対応する前記状態情報を、前記保管部から読出し、前記物理プロセッサに書込む
ことを特徴とする請求項１に記載の仮想マルチプロセッサシステム。
【請求項３】
前記ディスパッチ部は、前記デバッグ割込みの要求が受理されると、前記論理プロセッサの切り替えを禁止する
ことを特徴とする請求項２に記載の仮想マルチプロセッサシステム。
【請求項４】
前記ディスパッチ部は、さらに、前記デバッグ割込み処理実行時の前記論理プロセッサに対応する前記状態情報を前記保管部へ記憶することを禁止する
ことを特徴とする請求項２又は３に記載の仮想マルチプロセッサシステム。
【請求項５】
前記保管部に記憶されている状態情報のうち、前記物理プロセッサ上で処理を実行中の論理プロセッサに対応する状態情報は前記物理プロセッサ上での処理実行に影響を及ぼさない不定状態となる
ことを特徴とする請求項１〜４のいずれか１項に記載の仮想マルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マルチプロセッサシステムにおけるソフトウェア開発又はハードウェア動作解析に用いるデバッグ機構に関する。
【背景技術】
【０００２】
従来、プロセッサにおけるデバッグ手法として、その動作を停止させてプロセッサの状態を参照するという方法が広く一般的に行われている。
【０００３】
その中でも、プロセッサが持つ割込みという仕組みの上に、様々な用途に合わせたデバッグ割込みを定義し、そのデバッグ割込みによってプロセッサのプログラム実行を中断させ、代わりにデバッグ割込み処理用のプログラムを当該プロセッサにおいて実行させる方法が最も広く一般的に用いられている。
【０００４】
この従来からの割込みを用いたプログラム実行の中断を具現化するためには、デバッグという目的の性質上、デバッグ対象となるプロセッサの状態を変えずにデバッグ割込み処理用のプログラムを実行させる必要性がある。そのため割込み発生時のプロセッサの状態を損なわずに退避するための記憶装置を、デバッグ用に独立して設ける必要がある。
【０００５】
この事例として、例えば特許文献１に記載された技術が知られている。特許文献１の図１に示されている「退避用レジスタ」、図５に示されている「オルタネートメモリ」がデバッグ用に設けられた退避用の記憶装置に該当する。
【０００６】
この事例のように割込みを用いたデバッグ機構には、形態は前記事例以外にも様々なものがあるがデバッグ用に割込み時のプロセッサ状態を退避する記憶装置を設けるという共通点がある。
【０００７】
次に、上述した割込みを用いたデバッグ機構を備えるプロセッサを用いて仮想マルチプロセッサシステムを構成する場合について説明する。
【０００８】
まず、仮想マルチプロセッサシステムを構成するには、物理プロセッサに対して複数の論理プロセッサを切り替えながら動作させるために、論理プロセッサが物理プロセッサ上で実行されていない期間中、その状態を保持する必要がある。このために論理プロセッサ毎にプロセッサ状態を保管する専用の保管装置が必要になる。
【０００９】
この従来技術の事例としては、例えば特許文献２に記載された技術が知られている。特許文献２の第２図に示されている「ＶＭＣ専用領域」が論理プロセッサ毎にプロセッサ状態を保管する専用の保管装置に該当する。
【００１０】
この事例のように仮想マルチプロセッサシステムを実現するには、形態は前記事例以外にも様々なものがあるが論理プロセッサ毎にプロセッサ状態を保管する専用の保管装置が必要であるという共通点がある。
【特許文献１】特開平１−９３８３８号公報
【特許文献２】特開昭５９−１６７７５６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上述の従来技術に基づき、割込みを用いたデバッグ機構を備えたプロセッサを物理プロセッサとする仮想マルチプロセッサシステムを構成しようとすると、デバッグ割込み発生時のプロセッサ状態を退避するデバッグ用の記憶装置の内容も論理プロセッサの切り替え時に併せて入れ替える必要がある。
【００１２】
そのため、論理プロセッサ毎のプロセッサ状態保管装置上に、デバッグ用の記憶装置の内容を記憶するための領域が必要となる。
【００１３】
その結果、デバッグ用の記憶装置を設けるために発生する単一の物理プロセッサにおけるコストをＮとすると、その物理プロセッサをＭ個の論理プロセッサとして構成する仮想マルチプロセッサシステムにおけるコストは
Ｎ＋（Ｎ×Ｍ）
となり、Ｍ個の物理プロセッサを並べてマルチプロセッサシステムを構成する場合と比べても必要となるコストが大きいという問題点を有している。
【００１４】
本発明は上記従来の問題点を解決するものであり、割込みを用いたデバッグ機構を備える物理プロセッサを用いて仮想マルチプロセッサシステムを構成する際に、デバッグ用の記憶装置および保管装置上の記憶領域を一切必要としないコスト力の高い仮想マルチプロセッサシステムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記目的を達成するために、本発明に係る仮想マルチプロセッサシステムは、論理プロセッサが割り当てられ、当該論理プロセッサの処理を実行する物理プロセッサと、前記物理プロセッサに割り当てられていない前記論理プロセッサの状態を示す状態情報を記憶している保管部と、前記物理プロセッサに対して、複数の論理プロセッサを切り替えながら、当該複数の論理プロセッサのいずれかを割り当てるとともに、当該切り替えに応答して、当該切り替え前に前記物理プロセッサに割り当てられている前記論理プロセッサに対応する前記状態情報を前記保管部に記憶し、かつ、当該切り替え後に前記物理プロセッサに割り当てられる前記論理プロセッサに対応する前記状態情報を、前記保管部から読出し、前記物理プロセッサに書込むディスパッチ部と、前記物理プロセッサに割り当てられている前記論理プロセッサに対してデバッグ割込みを要求することにより、当該論理プロセッサで実行中の処理を停止させる割込み部とを備え、前記ディスパッチ部は、前記物理プロセッサに割り当てられている前記論理プロセッサへの前記デバッグ割込みの要求に応答して、当該論理プロセッサに対応する前記状態情報を前記保管部へ記憶することを特徴とする。
【００１６】
この構成によると、デバッグ割込みが受理された時のプロセッサ状態を保管部へ退避することによって、従来必要とされていたデバッグ用の特別な記録装置が不要になる。このため、従来必要だったデバッグ用の特別な記憶装置に対して発生する仮想マルチプロセッサシステムにおけるコストを削減することができる。
【００１７】
好ましくは、前記物理プロセッサに割り当てられている前記論理プロセッサは、前記割込み部からの前記デバッグ割込みの要求に応答して、デバッグ割込み処理を実行するとともに、当該デバッグ割込み処理が終了すると前記デバッグ割込み処理からの復帰指示を前記ディスパッチ部に出力し、前記ディスパッチ部は、前記デバッグ割込み処理からの復帰指示に応答して、前記複数の論理プロセッサの中から１つを選択し、選択された前記論理プロセッサを前記物理プロセッサに割り当て、前記物理プロセッサに割り当てられる前記論理プロセッサに対応する前記状態情報を、前記保管部から読出し、前記物理プロセッサに書込むことを特徴とする。
【００１８】
この構成によると、デバッグ割込み処理の完了を示す復帰指示に応答して、論理プロセッサが選択され、選択された論理プロセッサの状態情報が物理プロセッサに書込まれる。このため、デバッグ割込み処理からの復帰が可能となる。
【００１９】
また、前記ディスパッチ部は、前記デバッグ割込みの要求が受理されると、前記論理プロセッサの切り替えを禁止することを特徴とする。
【００２０】
この構成によると、論理プロセッサの切り替えが行なわれないため、保管部に状態情報が書込まれない。このため、デバッグ割込み処理実行中にディスパッチ部による論理プロセッサの切替え動作が発生することによって、デバッグ割込み要求が受理された時に退避された状態情報が上書きされる事を防ぐことができる。
【００２１】
さらに好ましくは、前記ディスパッチ部は、さらに、前記デバッグ割込み処理実行時の前記論理プロセッサに対応する前記状態情報を前記保管部へ記憶することを禁止することを特徴とする。
【００２２】
この構成によると、デバッグ割込み処理からの復帰時にディスパッチ部により行われる論理プロセッサの切替え動作において、保管部に記憶された当該論理プロセッサの復帰後の状態を示す状態情報が上書きされる事を防ぐことができる。
【発明の効果】
【００２３】
本発明によれば、前記デバッグ割込みが受理された時のプロセッサ状態を前記ディスパッチ機構により前記保管装置へ退避することによって、従来必要とされていたデバッグ用の特別な記録装置が不要になり、従来必要だった前記デバッグ用の特別な記憶装置に対して発生する前述の仮想マルチプロセッサシステムにおけるコスト
Ｎ＋（Ｎ×Ｍ）
分のコスト削減効果を得ることができる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の実施の形態について、図面を参照しながら説明する。
図１は、本発明の実施の形態に係る仮想マルチプロセッサシステムの外観図である。図２は、本発明の実施の形態に係る仮想マルチプロセッサシステムの構成を示す機能ブロック図である。
【００２５】
仮想マルチプロセッサシステム１０は、仮想的に実現されたマルチプロセッサシステムであり、物理プロセッサ１００と、論理プロセッサ１１０〜１１３と、保管部１３０〜１３３と、ディスパッチ部１２０と、割込み部１４０とを含む。
【００２６】
物理プロセッサ１００は、通常処理又は割込み処理を実行する実際に存在するプロセッサである。
【００２７】
論理プロセッサ１１０〜１１３の各々は、物理プロセッサ１００上で通常処理又は割込み処理が実行されることにより実現される仮想的なプロセッサである。説明の便宜上、現在、論理プロセッサ１１０が物理プロセッサ１００上で処理を実行中の論理プロセッサとする。
【００２８】
保管部１３０〜１３３は、論理プロセッサの処理が物理プロセッサ１００上で実行されていない間、論理プロセッサの状態を保持するための記憶装置であり、保管部１３０は論理プロセッサ１１０の状態を、保管部１３１は論理プロセッサ１１１の状態を、保管部１３２は論理プロセッサ１１２の状態を、保管部１３３は論理プロセッサ１１３の状態をそれぞれ保持する。
【００２９】
ディスパッチ部１２０は、物理プロセッサ１００への論理プロセッサの割り当て処理を行なう処理部であり、スケジュール部１２１と、コンテキストスイッチ部１２２とを含む。
【００３０】
スケジュール部１２１は、現在物理プロセッサ１００に割り当てられていない論理プロセッサ１１１〜１１３の中から物理プロセッサ１００に対して次に割り当てる論理プロセッサを決定する処理部である。
【００３１】
コンテキストスイッチ部１２２は、物理プロセッサ１００上で処理を実行中の論理プロセッサ１１０とスケジュール部１２１で決定された次に割り当てる論理プロセッサ１１１〜１１３のいずれかとを入れ替える処理部であり、セーブ部１２３と、リストア部１２４とを含む。
【００３２】
セーブ部１２３は、物理プロセッサ１００上で実行中の論理プロセッサ１１０の状態を保管部１３０へ転送する処理部である。リストア部１２４は、物理プロセッサ１００へ次に割り当てる論理プロセッサに対応した保管部１３１〜１３３のいずれかの内容を物理プロセッサ１００へ転送する（書込む）処理部である。
【００３３】
割込み部１４０は、デバッグのために停止させたい論理プロセッサに対しデバッグ割込みの要求を示すデバッグ割込み要求信号１４１を発生させる処理部である。
【００３４】
以上のように構成された仮想マルチプロセッサシステムのデバッグ機構について、以下その動作を説明する。
【００３５】
まず、通常時の仮想マルチプロセッサシステム１０の動作について説明する。
図３は、本実施の形態における通常時の仮想マルチプロセッサシステム１０の動作例を示す図である。
【００３６】
割込み部１４０からのデバッグ割込み要求信号１４１が発生しない通常動作中は、スケジュール部１２１による論理プロセッサの入れ替え動作指示１２５が発生すると、セーブ部１２３は、物理プロセッサ１００上の論理プロセッサ（論理プロセッサ１１０〜１１３のいずれか）のプロセッサ状態１０２をプロセッサ状態保管情報１２６として、当該論理プロセッサに対応した保管部１３０〜１３３のいずれかに保管する。
【００３７】
また同時に、リストア部１２４は、スケジュール部１２１で決定された次に物理プロセッサ１００へ割り当てる論理プロセッサ（論理プロセッサ１１０〜１１３のいずれか）に対応する保管部（保管部１３０〜１３３のいずれか）に記憶されている当該論理プロセッサの状態を、プロセッサ状態復帰情報１２７として取り出す。リストア部１２４は、取り出したプロセッサ状態復帰情報１２７を、次回プロセッサ状態１０３として物理プロセッサ１００へ転送する。
【００３８】
セーブ部１２３及びリストア部１２４は、スケジュール部１２１から出力される入れ替え動作指示１２５に従って、上述の処理を繰り返し行なう。
【００３９】
上記通常時の動作において、物理プロセッサ１００上で論理プロセッサ１１０が実行中の場合には保管部１３０が、論理プロセッサ１１１が実行中の場合には保管部１３１が、論理プロセッサ１１２が実行中の場合には保管部１３２が、論理プロセッサ１１３が実行中の場合には保管部１３３が、それぞれ物理プロセッサ１００上での処理実行動作に対して影響を及ぼさない不定状態になる。
【００４０】
次にデバッグ時の仮想マルチプロセッサシステム１０の動作について説明する。
図４は、本実施の形態におけるデバッグ時の仮想マルチプロセッサシステム１０の動作例を示す図である。図４では、物理プロセッサ１００上で論理プロセッサ１１０が実行中にデバッグ割込み要求信号１４１が発生した場合の動作を示している。
【００４１】
まず、割込み部１４０が、デバッグ割込み要求信号１４１を論理プロセッサ１１０に対して発生させる。これを物理プロセッサ１００が受理する。物理プロセッサ１００がデバッグ割込み要求信号１４１を受理した時点で、物理プロセッサ１００は、デバッグ割込み受理通知１０１をスケジュール部１２１へ出力する。スケジュール部１２１は、デバッグ割込み受理通知１０１を受けると、コンテキストスイッチ部１２２に対して、入れ替え動作指示１２５を発行し、セーブ部１２３を起動する。起動されたセーブ部１２３は、物理プロセッサ１００上で実行中の論理プロセッサ１１０がデバッグ割込み要求信号１４１を受理した時の論理プロセッサ１１０の状態を示すプロセッサ状態１０２を、論理プロセッサ１１０に対応する保管部１３０に、プロセッサ状態保管情報１２６として書込む。ここまでの動作でデバッグ割込み要求信号１４１が受理された時のプロセッサ状態１０２の退避動作が完了する。
【００４２】
プロセッサ状態１０２の退避動作完了後、物理プロセッサ１００上の論理プロセッサ１１０は、デバッグ割込み要求信号１４１に対する割込み処理の実行を継続する。また、これと並行して、スケジュール部１２１は、コンテキストスイッチ部１２２に対する入れ替え動作指示１２５の発行が禁止された状態へ遷移する。なお、この禁止状態の解除はデバッグ割込み処理において任意に行うことが可能である。この動作によって、保管部１３０に保管したプロセッサ状態１０２の情報がデバッグ割込み処理中にディスパッチ部１２０による論理プロセッサ切替え動作によって上書きされる事を防ぐことができる。
【００４３】
デバッグ割込み要求信号１４１に対する割込み処理が完了した事を示すデバッグ割込み処理からの復帰指示１０４が、物理プロセッサ１００（論理プロセッサ１１０）からスケジュール部１２１に対して発行されると、入れ替え動作指示１２５が発行される。入れ替え動作指示１２５を受けたコンテキストスイッチ部１２２は論理プロセッサの切替えを発生させ、リストア部１２４がプロセッサ状態復帰情報１２７を次回プロセッサ状態１０３として物理プロセッサ１００に転送するが、この時セーブ部１２３による保管部１３０へのプロセッサ状態１０２の保管動作が行われないように、スケジュール部１２１がセーブ部１２３へ作用する。これによって、デバッグ割込み処理実行時のプロセッサ状態１０２が保管部１３０へ書込まれるのを防止することができる。
【００４４】
ディスパッチ部１２０による論理プロセッサの切替えが行われてから次回論理プロセッサ１１０が物理プロセッサ１００に割り当てられた時点で、デバッグ割込み要求信号１４１が発生した直前の状態に論理プロセッサ１１０が復帰する。
【００４５】
前述の動作例ではデバッグ割込み要求信号１４１が論理プロセッサ１１０に対して発行される場合について述べたが、論理プロセッサ１１１、論理プロセッサ１１２及び論理プロセッサ１１３に対してデバッグ割込み要求信号１４１が発行された場合にも、対象となる保管装置が保管部１３０ではなく保管部１３１、保管部１３２及び保管部１３３へそれぞれ変わるだけで、他の動作は前述と同等になる。
【００４６】
また、同じく前述の動作例ではデバッグ割込み処理からの復帰指示１０４が発行された後に、論理プロセッサ１１０以外の論理プロセッサへ切替ているが論理プロセッサ１１０を再度割り当てることも可能である。この場合も保管部１３０の内容がリストア部１２４により物理プロセッサ１００へ転送される。
【００４７】
上記動作によって、保管部１３０は物理プロセッサ１００上で行われるデバッグ割込み処理に対して影響を及ぼさずに、デバッグ割込み要求信号１４１発生時からデバッグ割込み処理からの復帰指示１０４が発行されるまでの期間中、デバッグ割込み要求信号１４１が発生した直前の時点での論理プロセッサ１１０の状態を示すことになる。このため、従来のようにデバッグ用にプロセッサ状態１０２を退避するための特別な記憶装置が無くても保管部１３０の内容を以って従来と同等な論理プロセッサ１１０のデバッグを行うことができる。
【００４８】
以上、本発明の実施の形態に係る仮想マルチプロセッサシステムについて説明したが、本発明は、この実施の形態に限定されるものではない。
【００４９】
例えば、図１に示すように仮想マルチプロセッサシステムを１チップのＬＳＩ（Large Scale Integration）で構成するものとしたが、必ずしもこの構成に限定されるものではない。例えば、ＣＰＵとメモリ等を含む通常のコンピュータの構成により仮想プロセッサシステムが実現されていてもよい。
【００５０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【００５１】
本発明は、少ない記憶容量でデバッグ機構を実現することができる仮想マルチプロセッサシステム等に適用できる。
【図面の簡単な説明】
【００５２】
【図１】本発明の実施の形態に係る仮想マルチプロセッサシステムの外観図である。
【図２】本発明の実施の形態に係る仮想マルチプロセッサシステムの構成を示す機能ブロック図である。
【図３】本実施の形態における通常時の仮想マルチプロセッサシステムの動作例を示す図である。
【図４】本実施の形態におけるデバッグ時の仮想マルチプロセッサシステムの動作例を示す図である。
【符号の説明】
【００５３】
１００    物理プロセッサ
１０１    デバッグ割込み受理通知
１０２    プロセッサ状態
１０３    次回プロセッサ状態
１０４    デバッグ割込み処理からの復帰指示
１１０〜１１３    論理プロセッサ
１２０    ディスパッチ部
１２１    スケジュール部
１２２    コンテキストスイッチ部
１２３    セーブ部
１２４    リストア部
１２５    入れ替え動作指示
１２６    プロセッサ状態保管情報
１２７    プロセッサ状態復帰情報
１３０〜１３３    保管部
１４０    割込み部
１４１    デバッグ割込み要求信号
【図１】
2009175960.tif 000003
【図２】
2009175960.tif 000004
【図３】
2009175960.tif 000005
【図４】
2009175960.tif 000006