(57)【要約】【課題】命令エミュレーション処理のターゲット命令列に並列性がない場合にも、命令エミュレーション処理を並列に実行可能なマルチプロセッサ構成の情報処理装置を実現する。【解決手段】プロセッサ数判定部３ａが情報処理装置を構成するプロセッサ数を判定し、処理分割部３ｂがプロセッサ数に対応させて命令エミュレーション処理を分割し、処理割付部３ｃが処理分割部３ｂにより分割されたそれぞれの処理をプロセッサごとに割付け。各プロセッサは割付けられた処理を並列に実行する。【選択図】　　　　図１
2004127154.tif 000002
【特許請求の範囲】
【請求項１】
命令エミュレーション処理を実行可能な複数のプロセッサと、
プロセッサ数を判定するプロセッサ数判定部と、
前記プロセッサ数判定部により判定されたプロセッサ数に対応させて命令エミュレーション処理を分割する処理分割部と、
前記処理分割部により分割されたそれぞれの処理をプロセッサごとに割付ける処理割付部とを有することを特徴とする情報処理装置。
【請求項２】
前記複数のプロセッサは、
前記処理割付部により割付けられた処理をそれぞれのプロセッサで並列に実行することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記複数のプロセッサは、
条件分岐処理が含まれた命令エミュレーション処理を実行可能であり、
前記情報処理装置は、更に、
条件分岐処理が実行中であることを示す分岐実行表示を表示するとともに、条件分岐処理が完了した場合に、条件分岐処理が完了したことを示す分岐完了表示に切替える分岐実行有無表示部と、
条件分岐処理における分岐方向を表示する分岐方向表示部と、
条件分岐処理における分岐先アドレスを表示する分岐先アドレス表示部とを有し、
前記複数のプロセッサは、
分岐実行有無表示部に分岐実行表示が表示されている間は、条件分岐処理以降の後続処理の実行を停止し、前記分岐実行有無表示部の表示内容が分岐実行表示から分岐完了表示に切替わった場合に、前記分岐方向表示部に表示された分岐方向及び前記分岐先アドレス表示部に表示された分岐先アドレスに基づき条件分岐処理以降の後続処理を実行することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記複数のプロセッサのうちの特定のプロセッサが、前記分岐実行有無表示部に対するポーリングを行い、前記分岐実行有無表示部の表示内容が分岐実行表示から分岐完了表示に切替わったことを検出し、
前記複数のプロセッサは、
前記特定のプロセッサによって前記分岐実行有無表示部の表示内容が分岐実行表示から分岐完了表示に切替わったことが検出された場合に、前記分岐方向表示部に表示された分岐方向及び前記分岐先アドレス表示部に表示された分岐先アドレスに基づき条件分岐処理以降の後続処理を実行することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記情報処理装置は、更に、
前記分岐実行有無表示部の表示内容が分岐実行表示から分岐完了表示に切替わったことを検出するとともに、前記複数のプロセッサのうちの特定のプロセッサに対して前記分岐実行有無表示部の表示内容が分岐実行表示から分岐完了表示へ切替わったことを通知する切替通知部を有し、
前記複数のプロセッサは、
前記切替通知部から前記特定のプロセッサに対して前記分岐実行有無表示部の表示内容が分岐実行表示から分岐完了表示へ切替わったことが通知された場合に、前記分岐方向表示部に表示された分岐方向及び前記分岐先アドレス表示部に表示された分岐先アドレスに基づき条件分岐処理以降の後続処理を実行することを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記複数のプロセッサは、
レジスタを用いる処理及びレジスタ内容の変更を伴う処理が含まれた命令エミュレーション処理を実行可能であり、
前記情報処理装置は、更に、
少なくとも一つ以上のレジスタについてレジスタごとに、レジスタ内容が変更中であることを示すレジスタ変更表示を表示するとともに、レジスタ内容の変更が完了した場合に、レジスタ内容の変更が完了したことを示すレジスタ変更完了表示に切替えるレジスタ変更有無表示部を有し、
前記複数のプロセッサは、
いずれかのレジスタについてレジスタ変更表示が前記レジスタ変更有無表示部に表示されている間は、当該レジスタを用いる処理の実行を停止し、当該レジスタについて前記レジスタ変更有無表示部の表示内容がレジスタ変更表示からレジスタ変更完了表示に切替わった場合に、当該レジスタを用いる処理を実行することを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記複数のプロセッサのうちの特定のプロセッサが、前記レジスタ変更有無表示部に対するポーリングを行い、前記レジスタ変更有無表示部の表示内容がレジスタ変更表示からレジスタ変更完了表示へ切替わったことを検出し、
前記複数のプロセッサは、
いずれかのレジスタについて前記特定のプロセッサによって前記レジスタ変更有無表示部の表示内容がレジスタ変更表示からレジスタ変更完了表示へ切替わったことが検出された場合に、当該レジスタを用いる処理を実行することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記情報処理装置は、更に、
前記レジスタ変更有無表示部の表示内容がレジスタ変更表示からレジスタ変更完了表示へ切替わったことを検出するとともに、前記複数のプロセッサのうちの特定のプロセッサに対して前記レジスタ変更有無表示部の表示内容がレジスタ変更表示からレジスタ変更完了表示へ切替わったことを通知する切替通知部を有し、
前記複数のプロセッサは、
いずれかのレジスタについて前記切替通知部から前記特定のプロセッサに対して前記レジスタ変更有無表示部の表示内容がレジスタ変更表示からレジスタ変更完了表示へ切替わったことが通知された場合に、当該レジスタを用いる処理を実行することを特徴とする請求項６に記載の情報処理装置。
【請求項９】
複数のプロセッサに命令エミュレーション処理を実行させる命令エミュレーション装置であって、
プロセッサ数を判定するプロセッサ数判定部と、
前記プロセッサ数判定部により判定されたプロセッサ数に対応させて命令エミュレーション処理を分割する処理分割部と、
前記処理分割部により分割されたそれぞれの処理をプロセッサごとに割付け、割付けた処理をそれぞれのプロセッサに実行させる処理割付部とを有することを特徴とする命令エミュレーション装置。
【請求項１０】
複数のプロセッサに命令エミュレーション処理を実行させる命令エミュレーション処理実行方法であって、
プロセッサ数を判定するプロセッサ数判定ステップと、
前記プロセッサ数判定ステップにより判定されたプロセッサ数に対応させて命令エミュレーション処理を分割する処理分割ステップと、
前記処理分割ステップにより分割されたそれぞれの処理をプロセッサごとに割付け、割付けた処理をそれぞれのプロセッサに実行させる処理割付ステップとを有することを特徴とする命令エミュレーション処理実行方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、マルチプロセッサ構成の情報処理装置における命令エミュレーション処理の高速化に関するものである。
【０００２】
【従来の技術】
図８は例えば、特開平８−２２１２７７に示された従来のマルチプロセッサ構成の情報処理装置における命令エミュレーション装置であり、図において１０はマルチプロセッサ命令エミュレーション手段、１０１は並行命令エミュレーション手段、１０２は実行同期制御手段、１０２ａは実行同期制御手段１０２に設けられた同期制御テーブル、１０３ａ〜１０３ｍ−１はプロセッサ、Ｔ１はターゲット命令列である。
【０００３】
次に動作について説明する。
マルチプロセッサ命令エミュレーション手段１０がターゲット命令Ｔ１列から１命令ずつ命令を取り出し、処理待ち状態にあるプロセッサに割り当てる。複数のターゲット命令を同時にプロセッサ０　１０３ａ〜プロセッサＭ−１　１０３ｍ−１に割り当て、並行に実行させるため、並行命令エミュレーション手段１０１および実行同期制御手段１０２を持ち、各プロセッサから相互に参照可能な同期制御テーブル１０２ａに記載された内容および特開平８−２２１２７７に示された手順を実行することにより各プロセッサが取り出すべき命令を算出している。
【０００４】
【特許文献１】
特開平８−２２１２７７号公報
【０００５】
【発明が解決しようとする課題】
従来のマルチプロセッサ構成における命令エミュレーション装置は、本来順次的に行うべきターゲット命令列に対する命令エミュレーション処理を並列に処理するため、ターゲット命令列に並列性が無い場合には各プロセッサにターゲット命令を割り当てても並列に処理できないという問題点があった。
【０００６】
この発明は上記のような問題点を解決するためになされたもので、ターゲット命令列に並列性が無い場合でも、命令エミュレーション処理を並列に行うことができるマルチプロセッサ構成の情報処理装置を得ることを目的とする。
【０００７】
【課題を解決するための手段】
本発明に係る情報処理装置は、
命令エミュレーション処理を実行可能な複数のプロセッサと、
プロセッサ数を判定するプロセッサ数判定部と、
前記プロセッサ数判定部により判定されたプロセッサ数に対応させて命令エミュレーション処理を分割する処理分割部と、
前記処理分割部により分割されたそれぞれの処理をプロセッサごとに割付ける処理割付部とを有することを特徴とする。
【０００８】
【発明の実施の形態】
実施の形態１．
図１はこの発明のマルチプロセッサ構成の情報処理装置の一例を示す構成図である。本図においてＭは１以上の整数である。
図において、１ａ〜１ｍは情報処理装置を構成するプロセッサ群、２ａから２ｍ−１はプロセッサ群１ａ〜１ｍの間で情報の受け渡しを行うために使用するリングバッファ、３はプロセッサ数に応じた数に命令エミュレーションを分割し、情報処理装置の各プロセッサに命令エミュレーション処理の一部を割り当てる命令エミュレーション処理分割部、３ａは情報処理装置のプロセッサ数を判定するプロセッサ数判定部、３ｂはプロセッサ数判定部３ａの判定結果に応じて命令エミュレーション処理を分割する処理分割部、３ｃは処理分割部３ｂで分割した命令エミュレーション処理をプロセッサ群１ａ〜１ｍに割り付ける処理割付部、４はプロセッサにより処理されるターゲット命令列である。なお、本明細書では、命令エミュレーション処理分割部３は、命令エミュレーション装置に相当する。
【０００９】
次に動作について説明する。
まず、命令エミュレーション処理の対象となるターゲット命令列４の実行が指示されると、情報処理装置は命令エミュレーション処理分割部３を起動する。
命令エミュレーション処理分割部３では、プロセッサ数判定部３ａがオペレーティングシステムの管理する情報から情報処理装置を構成するプロセッサ数を読出し、処理分割部３ｂに伝える。プロセッサ数を受け取った処理分割部３ｂは、プロセッサ数に応じて命令エミュレーション処理を分割する。例えば２プロセッサ構成の情報処理装置では、例えば、命令取り出し処理と命令デコード処理、および、オペランド生成処理と演算処理と結果格納処理に処理を分割することが想定される。この分割に応じた処理は予め処理分割部３ｂにプロセッサ数に応じて分割したコンポーネントを格納しておいても良いし、エミュレーション処理を細分化し、細分化された各部からコンポーネントを合成しても良い。処理の分割後、処理割付部３ｃが、プロセッサ群が独自に管理するメモリ領域に、分割された命令エミュレーション処理の各コンポーネントを格納し、プロセッサ群に起動をかける。
【００１０】
次に、例えば２プロセッサ構成の情報処理装置、すなわち図１においてＭ＝１の場合における、プロセッサ０およびプロセッサ１の動作を図２および図３を用いて説明する。図２は２プロセッサ構成におけるプロセッサ０の処理フロー、図３はプロセッサ１の処理フローである。
ここではプロセッサ０には命令取り出し処理と命令デコード処理を割り付け、プロセッサ１にはオペランド生成処理と演算処理と結果格納処理を割り付けているとして説明する。
【００１１】
プロセッサ０は起動処理終了後、プログラムカウンタ（ＰＣ）に従いターゲット命令列４から命令を１個取り出し、取り出した命令をデコードする。この時ＰＣ値を次の命令に変更しておく処理を併せて行う。次にデコード結果をバッファ０の書き込みポインタが示す場所に書き込み、書込みポインタを進める。書込みポインタを進めた結果、読出しポインタと場所が一致した場合、書込み抑止を設定する。後続命令がある場合はＰＣの示す値に従い後続命令の処理を行う。プロセッサ０の処理時間がプロセッサ１の処理時間より短い場合、バッファ０が満たされる状態になる。この場合は書込みポインタと読出しポインタが一致しており、前記処理ステップにおいて書込み抑止状態が設定されている。書き込み抑止状態ではバッファ０への書込み動作を行わず、書込み抑止状態の解除を待つ。すなわち、読出しポインタの値を監視し、書込みポインタと読出しポインタが不一致になるのを待ち、不一致になったの場合、書込み抑止状態が解除されたと判断し、処理を継続する。
【００１２】
プロセッサ１は起動処理終了後に待ち状態となり、その後プロセッサ０の処理が完了した、すなわち書き込みポインタと読出しポインタの不一致を検出すると、実行状態に遷移し、バッファ０を読出しポインタの示す場所からデコード結果データを読出し、演算、結果格納処理を実行後、読出しポインタを進める。プロセッサ１の処理時間がプロセッサ０の処理時間より短い場合、バッファ０が空の状態、すなわち読出しポインタと書込みポインタが一致した状態になる。この場合は、プロセッサ０によって処理された結果が存在しないので、プロセッサ１は待ち状態になる。読出しポインタと書込みポインタが不一致の場合、処理を継続する。
【００１３】
以上のように、命令エミュレーションを情報処理装置を構成するプロセッサ数に応じた処理に分割し、マルチプロセッサで並列に命令エミュレーション処理を行うようにしているので、命令エミュレーションの対象となるターゲット命令列に予め並列性がない場合でも、命令エミュレーション処理を並列に実行することができる。
【００１４】
実施の形態２．
以上の実施の形態１では、マルチプロセッサ構成の情報処理装置の各プロセッサにプロセッサ数に応じて分割した命令エミュレーション処理の各コンポーネントを割り当て、並列に処理するようにしたものであるが、次に条件分岐命令を実行する場合に分岐方向が決定し、後続命令が確定するまで後続命令に対する命令エミュレーション処理の実行を抑止し、後続命令が確定した後に後続命令に対する命令エミュレーション処理の実行を開始する実施の形態を示す。
図４は、このような場合の情報処理装置の一例を示す構成図である。ここでは３プロセッサに命令エミュレーション処理を分割して割り付けている場合を想定している。
図において、１ａ〜１ｃは情報処理装置を構成するプロセッサ群、４はプロセッサにより処理されるターゲット命令列、５は条件分岐命令の実行状況を管理する条件分岐管理テーブル、５ａは条件分岐命令の実行有無を示す実行ビット（分岐実行有無表示部）、５ｂは条件分岐命令の分岐方向を示す方向ビット（分岐方向表示部）、５ｃは分岐先アドレスを格納する分岐先アドレスフィールド（分岐先アドレス表示部）である。
【００１５】
次に動作について説明する。
プロセッサ０　１ａでターゲット命令である条件分岐命令を取り出し、デコード処理を行い、条件分岐命令の実行が開始されたことを検出する。プロセッサ０１ａは条件分岐管理テーブル５の実行ビット５ａに条件分岐命令実行中を示す値（分岐実行表示）、例えば１を設定する。プロセッサ０　１ａは必要な処理を完了し、結果をバッファ０（図示せず）に書き込み、書き込みポインタを更新する。プロセッサ０　１ａは後続命令の取り出し処理を行わず、実行ビット５ａを読出し（ポーリングし）、条件分岐命令の実行が解除されたことを示す値（分岐完了表示）、例えば０に切り替わるのを待つ。
バッファ０（図示せず）への書き込みを検出したプロセッサ１　１ｂはオペランド生成を行う。条件分岐命令では分岐先アドレスを算出する。プロセッサ１　１ｂは条件分岐管理テーブルの分岐先アドレスフィールド５ｃに算出した分岐先アドレスを書き込む。プロセッサ１　１ｂは必要な処理を完了し、結果をバッファ１（図示せず）に書き込み、書き込みポインタを更新する。
バッファ１（図示せず）への書き込みを検出したプロセッサ２　１ｃは条件分岐命令の分岐条件の成立・不成立の判定を行い、その結果により方向ビット５ｂを設定する。その後、実行ビットに条件分岐命令実行の解除を示す値（分岐完了表示）、例えば０を設定し、ターゲット命令である条件分岐命令に対するエミュレーション処理を終了する。
プロセッサ０　１ａは実行ビット５ａが条件分岐命令実行解除を示す値（分岐完了表示）、例えば０になったのをポーリングにより検出すると、方向ビット５ｂを読出し、分岐成立の場合は分岐先アドレスフィールド５ｃから分岐先アドレスを読出し、ＰＣに設定する。その後、命令取り出し処理を開始する。
【００１６】
以上のように、条件分岐命令実行中を示す手段と、解除する手段、および読み出す手段を設け、条件分岐の分岐条件の成立・不成立が決定するまでは後続命令に対する処理を抑止し、分岐条件の成立・不成立が決した後、後続命令に対する命令エミュレーション処理を再開するようにしたので、命令エミュレーションの対象となるターゲット命令列に予め並列性がない場合でも、命令エミュレーション処理を並列に実行することができ、また、条件分岐命令を正確に処理することができる。
【００１７】
実施の形態３．
以上の実施の形態２では、条件分岐命令の実行有無を示す値を読出し（ポーリングし）、判断することにより、条件分岐命令の分岐条件の成立・不成立が決定したことを判定するように構成したものであるが、次に条件分岐命令の分岐条件の成立・不成立が決定した場合に割り込み処理により通知する実施の形態を示す。
図５は、このような場合の情報処理装置の一例を示す構成図である。ここでは３プロセッサに命令エミュレーション処理を分割して割り付けている場合を想定している。
図において、１ａ〜１ｃは情報処理装置を構成するプロセッサ群、４はプロセッサにより処理されるターゲット命令列、５は条件分岐命令の実行状況を管理する条件分岐管理テーブル、５ａは条件分岐命令の実行有無を示す実行ビット、５ｂは条件分岐命令の分岐方向を示す方向ビット、５ｃは分岐先アドレスを格納する分岐先アドレスフィールド、６は割り込み制御装置である。割り込み制御装置は、切替通知部の例に相当する。
【００１８】
次に動作について説明する。
プロセッサ０　１ａでターゲット命令である条件分岐命令を取り出し、デコード処理を行い、条件分岐命令の実行が開始されたことを検出する。プロセッサ０１ａは条件分岐管理テーブル５の実行ビット５ａに条件分岐命令実行中を示す値（分岐実行表示）、例えば１を設定する。プロセッサ０　１ａは必要な処理を完了し、結果をバッファ０（図示せず）に書き込み、書き込みポインタを更新する。プロセッサ０　１ａは後続命令の取り出し処理を行わず、割り込み待ち状態になる。
バッファ０（図示せず）への書き込みを検出したプロセッサ１　１ｂはオペランド生成を行う。条件分岐命令では分岐先アドレスを算出する。プロセッサ１　１ｂは条件分岐管理テーブルの分岐先アドレスフィールド５ｃに算出した分岐先アドレスを書き込む。プロセッサ１　１ｂは必要な処理を完了し、結果をバッファ１（図示せず）に書き込み、書き込みポインタを更新する。
バッファ１（図示せず）への書き込みを検出したプロセッサ２　１ｃは条件分岐命令の分岐条件の成立・不成立の判定を行い、その結果により方向ビット５ｂを設定する。その後、実行ビットに条件分岐命令実行の解除を示す値（分岐完了表示）、例えば０を設定し、ターゲット命令である条件分岐命令に対するエミュレーション処理を終了する。その後、割り込み制御装置６に条件分岐命令の分岐条件の成立・不成立が決定したことによる割り込み要因を設定する。
割り込み要因を設定された割り込み制御装置６はプロセッサ０　１ａに割り込みを送信し、実行ビットの値が切替わったこと、即ち、条件分岐命令が完了したことを通知する。
プロセッサ０　１ａは割り込みを受け取ると、割り込み制御装置６から割り込み要因を読出し、条件分岐命令の分岐条件の成立・不成立が決定したことに起因する割り込みであることを判定すると、方向ビット５ｂを読出し、分岐成立の場合は分岐先アドレスフィールド５ｃから分岐先アドレスを読出し、ＰＣに設定する。その後、命令取り出し処理を開始する。
【００１９】
以上のように、条件分岐命令実行中を示す手段と解除する手段、プロセッサ間の割り込み手段、条件分岐命令の分岐条件の成立・不成立による割り込み要因とを設け、条件分岐の分岐条件の成立・不成立が決定するまでは後続命令に対する処理を抑止し、分岐条件の成立・不成立が決した後、後続命令に対する命令エミュレーション処理を再開するようにしたので、命令エミュレーションの対象となるターゲット命令列に予め並列性がない場合でも、命令エミュレーション処理を並列に実行することができ、また、条件分岐命令を正確に処理することができる。
【００２０】
実施の形態４．
以上の実施の形態１では、マルチプロセッサ構成の情報処理装置の各プロセッサにプロセッサ数に応じて分割した命令エミュレーション処理の各コンポーネントを、各プロセッサに割り当て、並列に処理するようにしたものであるが、次にレジスタの内容を変更するターゲット命令に対する命令エミュレーション処理が終了する前に、後続のターゲット命令が上記先行命令で内容を変更されるレジスタを使用する場合に、レジスタの内容の変更が終了するまで後続命令の命令エミュレーション処理の実行を抑止し、レジスタの内容の変更が終了したら後続命令の命令エミュレーション処理の実行を開始する実施の形態を示す。
図６は、このような場合の情報処理装置の一例を示す構成図である。ここでは３プロセッサに命令エミュレーション処理を分割して割り付けている場合を想定している。
図において、１ａ〜１ｃは情報処理装置を構成するプロセッサ群、４はプロセッサにより処理されるターゲット命令列、７はレジスタ変更管理テーブル、７ａ〜７ｙはレジスタｒ０〜ｒＹに対応した変更ビットである。本実施の形態では、レジスタ変更管理テーブル７は、レジスタ変更有無表示部の例に相当する。
【００２１】
次に動作について説明する。
プロセッサ０　１ａでターゲット命令であるレジスタの内容を変更する命令を取り出し、命令デコード処理を行い、レジスタの内容を変更する命令の実行開始を検出する。それに従い、プロセッサ０　１ａはレジスタ変更管理テーブル７に置かれた変更するレジスタ番号ｒＸに対応する変更ビット７ｘに変更中を示す値（レジスタ変更表示）、例えば１を設定する。プロセッサ０　１ａは必要な処理を完了し、結果をバッファ０（図示せず）に書き込み、書き込みポインタを更新し、後続命令の命令取り出し処理を開始し、後続命令の処理を完了すると、結果をバッファ０（図示せず）に書き込むという処理を繰り返し行う。また、内容を変更するレジスタｒＸに対応する変更ビット７ｘが既に変更中であることを示す値、例えば１に設定されている場合、変更ビット７ｘに対する変更中であることを示す値、例えば１を設定する処理を抑止し、変更ビット７ｘの表示内容が変更の解除を示す値（レジスタ変更完了表示）、例えば０になるまで待ち、解除を確認した後、変更ビット７ｘに対する変更中であることを示す値、例えば１を設定する処理を開始する。
バッファ０（図示せず）への書き込みを検出したプロセッサ１　１ｂはオペランド生成を行う。オペランド生成にレジスタを使用する場合には、レジスタ変更管理テーブルの該当するレジスタ番号ｒＸに対応する変更ビット７ｘを読出し、変更されるか否かを確認する。変更ビット７ｘが変更中を示す値（レジスタ変更表示）、例えば１になっている場合は、オペランド生成処理を抑止する。その後、繰り返し変更ビット７ｘを読出し（ポーリングし）、確認する処理を繰り返し、変更ビット７ｘの表示内容が変更の解除を示す値（レジスタ変更完了表示）、例えば０になるまでオペランド生成の処理を起動しない。変更ビット７ｘが変更の解除を示す値（レジスタ変更完了表示）、例えば０の場合は、オペランド生成処理を行い、完了後、バッファ１（図示せず）に結果を書き込み、書き込みポインタを更新する。
バッファ１（図示せず）への書き込みを検出したプロセッサ２　１ｃは演算処理を行い、レジスタの内容を変更する処理の場合、レジスタの値を変更した後、レジスタ変更管理テーブル７の変更したレジスタ番号ｒＸに対応した変更ビット７ｘにレジスタ変更の解除を示す値（レジスタ変更完了表示）、例えば０を書き込む。
【００２２】
以上のように、レジスタの内容を変更中であることを示す手段と、解除する手段、および読み出す手段を設け、レジスタの内容を変更する処理が完了するまでは後続命令に対する処理を抑止し、レジスタの内容を変更する処理が完了した後、後続命令に対する命令エミュレーション処理を再開するようにしたので、命令エミュレーションの対象となるターゲット命令列に予め並列性がない場合でも、命令エミュレーション処理を並列に実行することができ、また、レジスタの内容を変更する命令と後続命令でのレジスタの使用を正確に処理することができる。
【００２３】
実施の形態５．
以上の実施の形態４では、レジスタの内容を変更する処理の実行有無を示す値を読出し（ポーリングし）、判断することにより、レジスタの内容を変更する処理が完了したことを判定するように構成したものであるが、次に条件分岐命令の分岐条件の成立・不成立が決定した場合に割り込み処理により通知する実施の形態を示す。
図７は、このような場合の情報処理装置の一例を示す構成図である。ここでは３プロセッサに命令エミュレーション処理を分割して割り付けている場合を想定している。
図において、１ａ〜１ｃは情報処理装置を構成するプロセッサ群、４はプロセッサにより処理されるターゲット命令列、６は割り込み制御装置、７はレジスタ変更管理テーブル、７ａ〜７ｙはレジスタｒ０〜ｒＹに対応した変更ビットである。なお、割り込み制御装置６は、切替通知部の例に相当する。
【００２４】
次に動作について説明する。プロセッサ０　１ａでターゲット命令であるレジスタの内容を変更する命令を取り出し、命令デコード処理を行い、レジスタの内容を変更する命令の実行開始を検出する。それに従い、プロセッサ０　１ａはレジスタ変更管理テーブル７に置かれた変更するレジスタ番号ｒＸに対応する変更ビット７ｘに変更中を示す値（レジスタ変更表示）、例えば１を設定する。プロセッサ０　１ａは必要な処理を完了するが、結果をバッファ０（図示せず）に書き込む処理を行わず、割り込み待ち状態に入る。すなわち、後続命令に対する処理は抑止される。
バッファ０（図示せず）への書き込みを検出したプロセッサ１　１ｂはオペランド生成を行う。レジスタ変更中の場合、後続命令に対する処理は、前段であるプロセッサ０　１ａにて抑止されているため、プロセッサ１　１ｂは常に通常のオペランド生成処理を行い、完了後、バッファ１（図示せず）に結果を書き込み、書き込みポインタを更新する。
バッファ１（図示せず）への書き込みを検出したプロセッサ２　１ｃは演算処理を行い、レジスタの値を変更した後、レジスタ変更管理テーブル７の変更したレジスタ番号ｒＸに対応した変更ビット７ｘにレジスタの変更の解除を示す値（レジスタ変更完了表示）、例えば０を書き込み、ターゲット命令であるレジスタの内容を変更する命令に対するエミュレーション処理を終了する。その後、割り込み制御装置６にレジスタの内容の変更が完了したことによる割り込み要因を設定する。
割り込み要因を設定された割り込み制御装置６はプロセッサ０　１ａに割り込みを送信し、レジスタ変更管理テーブル７の変更ビットが切り替わったこと、即ち、レジスタ内容の変更が完了したことを通知する。
プロセッサ０　１ａは割り込みを受け取ると、割り込み制御装置６から割り込み要因を読出し、レジスタの内容の変更が完了したことに起因する割り込みであることを判定すると、現在処理中のターゲット命令が使用するレジスタ番号に対応した変更ビットがすべてレジスタ変更中ではないという状態を示す値、例えば０であることを確認する。すべてがレジスタ変更中ではない場合、抑止していた処理結果のバッファ０（図示せず）への書き込み処理を行い、さらに後続命令に対する処理を繰り返し行う。また、割り込みに対する処理において使用するレジスタに対応した変更ビットに変更中を示す値、例えば１が存在することが検出された場合には、再び割り込み待ち状態に入る。
【００２５】
以上のように、レジスタの内容を変更中であることを示す手段と、解除する手段、および読み出す手段と、レジスタを使用中であることを示す手段とを設け、レジスタの内容を変更する処理が完了するまでは後続命令に対する処理を抑止し、レジスタの内容を変更する処理が完了した後、後続命令に対する命令エミュレーション処理を再開するようにしたので、命令エミュレーションの対象となるターゲット命令列に予め並列性がない場合でも、命令エミュレーション処理を並列に実行することができ、また、レジスタの内容を変更する命令と後続命令でのレジスタの使用を正確に処理することができる。
【００２６】
ここで、実施の形態１〜５に示した情報処理装置の特徴を以下にて再現する。
【００２７】
実施の形態１に示した情報処理装置は、命令エミュレーションによりターゲット命令を処理するマルチプロセッサ構成の情報処理装置であって、
プロセッサ数を判定する手段と、プロセッサ数に応じた構成に命令エミュレーション処理を分割する手段と、各プロセッサに分割した命令エミュレーションの各処理を割り付ける手段を設け、
命令エミュレーション処理の各ステップを独立的に実行することで、ターゲット命令を並列に処理することを特徴とする。
【００２８】
実施の形態２及び実施の形態３に示した情報処理装置は、命令エミュレーションによりターゲット命令を処理するマルチプロセッサ構成の情報処理装置であって、
ターゲット命令として条件分岐命令を実行中であることを設定する手段と、それを保持する手段および解除する手段と、分岐方向を示す手段と、分岐先アドレスを保持する手段とを設け、
条件分岐命令に対する命令エミュレーション処理が開始されると後続命令の命令エミュレーション処理を抑止し、条件分岐命令の実行が完了すると後続命令を条件分岐の方向に従って実行することを特徴とする。
【００２９】
実施の形態２に示した情報処理装置は、命令エミュレーションによりターゲット命令を処理するマルチプロセッサ構成の情報処理装置であって、
上記条件分岐命令実行中であることを保持する手段からデータを読み出す手段と、規定値を保持する手段と、条件分岐命令実行中表示手段から読み出したデータと上記規定値を比較する手段を設け、
上記条件分岐命令実行中であることを保持する手段をポーリングすることにより、条件分岐命令に対する命令エミュレーション処理が完了したことを検出し、後続命令を再開することを特徴とすることを特徴とする。
【００３０】
実施の形態３に示した情報処理装置は、命令エミュレーションによりターゲット命令を処理するマルチプロセッサ構成の情報処理装置であって、
プロセッサ間の割り込み手段と、条件分岐命令が完了したことを示す割り込み要因とを設け、
条件分岐命令完了を割り込みにより通知することを特徴とする。
【００３１】
実施の形態４及び実施の形態５に示した情報処理装置は、命令エミュレーションによりターゲット命令を処理するマルチプロセッサ構成の情報処理装置であって、
ターゲット命令において変更するレジスタ番号を抽出する手段と、抽出したレジスタ番号を保持する手段と、上記変更するレジスタ番号を保持する手段からレジスタ番号を読み出す手段と、ターゲット命令で読み出すレジスタ番号を抽出する手段と、比較手段とを設け、
ターゲット命令でレジスタの内容を変更する命令に対する命令エミュレーション処理を開始した場合、ターゲット命令で変更するレジスタのレジスタ番号と、後続のターゲット命令で読み出すレジスタのレジスタ番号が一致した場合に後続のターゲット命令の命令エミュレーション処理を抑止することを特徴とする。
【００３２】
実施の形態４に示した情報処理装置は、命令エミュレーションによりターゲット命令を処理するマルチプロセッサ構成の情報処理装置であって、
上記変更するレジスタ番号を保持する手段に変更が完了したことを示す手段と、完了を設定する手段とを設け、
上記変更するレジスタ番号を保持する手段をポーリングすることにより、ターゲット命令によりレジスタの変更を完了したことを検出し、後続命令を再開することを特徴とする。
【００３３】
実施の形態５に示した情報処理装置は、命令エミュレーションによりターゲット命令を処理するマルチプロセッサ構成の情報処理装置であって、
プロセッサ間の割り込み手段と、ターゲット命令によりレジスタの変更が完了したことを示す割り込み要因とを設け、
ターゲット命令によるレジスタ変更の完了を割り込みにより通知することを特徴とする。
【００３４】
【発明の効果】
以上のように、この発明によれば、命令エミュレーション処理の命令列に並列性がない場合であっても、命令エミュレーション処理を並列に実行することができる。
【図面の簡単な説明】
【図１】実施の形態１に係る情報処理装置の構成例を示す図。
【図２】実施の形態１に係るプロセッサ０の処理例を示すフローチャート図。
【図３】実施の形態１に係るプロセッサ１の処理例を示すフローチャート図
【図４】実施の形態２に係る情報処理装置の構成例を示す図。
【図５】実施の形態３に係る情報処理装置の構成例を示す図。
【図６】実施の形態４に係る情報処理装置の構成例を示す図。
【図７】実施の形態５に係る情報処理装置の構成例を示す図。
【図８】従来の技術を説明する図。
【符号の説明】
１　プロセッサ、２　バッファ、３　命令エミュレーション処理分割部、４　ターゲット命令列、５　条件分岐管理テーブル、６　割り込み制御装置、７　レジスタ変更管理テーブル。
【図１】
2004127154.tif 000003
【図２】
2004127154.tif 000004
【図３】
2004127154.tif 000005
【図４】
2004127154.tif 000006
【図５】
2004127154.tif 000007
【図６】
2004127154.tif 000008
【図７】
2004127154.tif 000009
【図８】
2004127154.tif 000010