JP2004127154A - 情報処理装置及び命令エミュレーション装置及び命令エミュレーション処理実行方法 - Google Patents
情報処理装置及び命令エミュレーション装置及び命令エミュレーション処理実行方法 Download PDFInfo
- Publication number
- JP2004127154A JP2004127154A JP2002293478A JP2002293478A JP2004127154A JP 2004127154 A JP2004127154 A JP 2004127154A JP 2002293478 A JP2002293478 A JP 2002293478A JP 2002293478 A JP2002293478 A JP 2002293478A JP 2004127154 A JP2004127154 A JP 2004127154A
- Authority
- JP
- Japan
- Prior art keywords
- display
- branch
- processing
- register
- processors
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Multi Processors (AREA)
Abstract
【課題】命令エミュレーション処理のターゲット命令列に並列性がない場合にも、命令エミュレーション処理を並列に実行可能なマルチプロセッサ構成の情報処理装置を実現する。
【解決手段】プロセッサ数判定部3aが情報処理装置を構成するプロセッサ数を判定し、処理分割部3bがプロセッサ数に対応させて命令エミュレーション処理を分割し、処理割付部3cが処理分割部3bにより分割されたそれぞれの処理をプロセッサごとに割付け。各プロセッサは割付けられた処理を並列に実行する。
【選択図】 図1
【解決手段】プロセッサ数判定部3aが情報処理装置を構成するプロセッサ数を判定し、処理分割部3bがプロセッサ数に対応させて命令エミュレーション処理を分割し、処理割付部3cが処理分割部3bにより分割されたそれぞれの処理をプロセッサごとに割付け。各プロセッサは割付けられた処理を並列に実行する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
この発明は、マルチプロセッサ構成の情報処理装置における命令エミュレーション処理の高速化に関するものである。
【0002】
【従来の技術】
図8は例えば、特開平8−221277に示された従来のマルチプロセッサ構成の情報処理装置における命令エミュレーション装置であり、図において10はマルチプロセッサ命令エミュレーション手段、101は並行命令エミュレーション手段、102は実行同期制御手段、102aは実行同期制御手段102に設けられた同期制御テーブル、103a〜103m−1はプロセッサ、T1はターゲット命令列である。
【0003】
次に動作について説明する。
マルチプロセッサ命令エミュレーション手段10がターゲット命令T1列から1命令ずつ命令を取り出し、処理待ち状態にあるプロセッサに割り当てる。複数のターゲット命令を同時にプロセッサ0 103a〜プロセッサM−1 103m−1に割り当て、並行に実行させるため、並行命令エミュレーション手段101および実行同期制御手段102を持ち、各プロセッサから相互に参照可能な同期制御テーブル102aに記載された内容および特開平8−221277に示された手順を実行することにより各プロセッサが取り出すべき命令を算出している。
【0004】
【特許文献1】
特開平8−221277号公報
【0005】
【発明が解決しようとする課題】
従来のマルチプロセッサ構成における命令エミュレーション装置は、本来順次的に行うべきターゲット命令列に対する命令エミュレーション処理を並列に処理するため、ターゲット命令列に並列性が無い場合には各プロセッサにターゲット命令を割り当てても並列に処理できないという問題点があった。
【0006】
この発明は上記のような問題点を解決するためになされたもので、ターゲット命令列に並列性が無い場合でも、命令エミュレーション処理を並列に行うことができるマルチプロセッサ構成の情報処理装置を得ることを目的とする。
【0007】
【課題を解決するための手段】
本発明に係る情報処理装置は、
命令エミュレーション処理を実行可能な複数のプロセッサと、
プロセッサ数を判定するプロセッサ数判定部と、
前記プロセッサ数判定部により判定されたプロセッサ数に対応させて命令エミュレーション処理を分割する処理分割部と、
前記処理分割部により分割されたそれぞれの処理をプロセッサごとに割付ける処理割付部とを有することを特徴とする。
【0008】
【発明の実施の形態】
実施の形態1.
図1はこの発明のマルチプロセッサ構成の情報処理装置の一例を示す構成図である。本図においてMは1以上の整数である。
図において、1a〜1mは情報処理装置を構成するプロセッサ群、2aから2m−1はプロセッサ群1a〜1mの間で情報の受け渡しを行うために使用するリングバッファ、3はプロセッサ数に応じた数に命令エミュレーションを分割し、情報処理装置の各プロセッサに命令エミュレーション処理の一部を割り当てる命令エミュレーション処理分割部、3aは情報処理装置のプロセッサ数を判定するプロセッサ数判定部、3bはプロセッサ数判定部3aの判定結果に応じて命令エミュレーション処理を分割する処理分割部、3cは処理分割部3bで分割した命令エミュレーション処理をプロセッサ群1a〜1mに割り付ける処理割付部、4はプロセッサにより処理されるターゲット命令列である。なお、本明細書では、命令エミュレーション処理分割部3は、命令エミュレーション装置に相当する。
【0009】
次に動作について説明する。
まず、命令エミュレーション処理の対象となるターゲット命令列4の実行が指示されると、情報処理装置は命令エミュレーション処理分割部3を起動する。
命令エミュレーション処理分割部3では、プロセッサ数判定部3aがオペレーティングシステムの管理する情報から情報処理装置を構成するプロセッサ数を読出し、処理分割部3bに伝える。プロセッサ数を受け取った処理分割部3bは、プロセッサ数に応じて命令エミュレーション処理を分割する。例えば2プロセッサ構成の情報処理装置では、例えば、命令取り出し処理と命令デコード処理、および、オペランド生成処理と演算処理と結果格納処理に処理を分割することが想定される。この分割に応じた処理は予め処理分割部3bにプロセッサ数に応じて分割したコンポーネントを格納しておいても良いし、エミュレーション処理を細分化し、細分化された各部からコンポーネントを合成しても良い。処理の分割後、処理割付部3cが、プロセッサ群が独自に管理するメモリ領域に、分割された命令エミュレーション処理の各コンポーネントを格納し、プロセッサ群に起動をかける。
【0010】
次に、例えば2プロセッサ構成の情報処理装置、すなわち図1においてM=1の場合における、プロセッサ0およびプロセッサ1の動作を図2および図3を用いて説明する。図2は2プロセッサ構成におけるプロセッサ0の処理フロー、図3はプロセッサ1の処理フローである。
ここではプロセッサ0には命令取り出し処理と命令デコード処理を割り付け、プロセッサ1にはオペランド生成処理と演算処理と結果格納処理を割り付けているとして説明する。
【0011】
プロセッサ0は起動処理終了後、プログラムカウンタ(PC)に従いターゲット命令列4から命令を1個取り出し、取り出した命令をデコードする。この時PC値を次の命令に変更しておく処理を併せて行う。次にデコード結果をバッファ0の書き込みポインタが示す場所に書き込み、書込みポインタを進める。書込みポインタを進めた結果、読出しポインタと場所が一致した場合、書込み抑止を設定する。後続命令がある場合はPCの示す値に従い後続命令の処理を行う。プロセッサ0の処理時間がプロセッサ1の処理時間より短い場合、バッファ0が満たされる状態になる。この場合は書込みポインタと読出しポインタが一致しており、前記処理ステップにおいて書込み抑止状態が設定されている。書き込み抑止状態ではバッファ0への書込み動作を行わず、書込み抑止状態の解除を待つ。すなわち、読出しポインタの値を監視し、書込みポインタと読出しポインタが不一致になるのを待ち、不一致になったの場合、書込み抑止状態が解除されたと判断し、処理を継続する。
【0012】
プロセッサ1は起動処理終了後に待ち状態となり、その後プロセッサ0の処理が完了した、すなわち書き込みポインタと読出しポインタの不一致を検出すると、実行状態に遷移し、バッファ0を読出しポインタの示す場所からデコード結果データを読出し、演算、結果格納処理を実行後、読出しポインタを進める。プロセッサ1の処理時間がプロセッサ0の処理時間より短い場合、バッファ0が空の状態、すなわち読出しポインタと書込みポインタが一致した状態になる。この場合は、プロセッサ0によって処理された結果が存在しないので、プロセッサ1は待ち状態になる。読出しポインタと書込みポインタが不一致の場合、処理を継続する。
【0013】
以上のように、命令エミュレーションを情報処理装置を構成するプロセッサ数に応じた処理に分割し、マルチプロセッサで並列に命令エミュレーション処理を行うようにしているので、命令エミュレーションの対象となるターゲット命令列に予め並列性がない場合でも、命令エミュレーション処理を並列に実行することができる。
【0014】
実施の形態2.
以上の実施の形態1では、マルチプロセッサ構成の情報処理装置の各プロセッサにプロセッサ数に応じて分割した命令エミュレーション処理の各コンポーネントを割り当て、並列に処理するようにしたものであるが、次に条件分岐命令を実行する場合に分岐方向が決定し、後続命令が確定するまで後続命令に対する命令エミュレーション処理の実行を抑止し、後続命令が確定した後に後続命令に対する命令エミュレーション処理の実行を開始する実施の形態を示す。
図4は、このような場合の情報処理装置の一例を示す構成図である。ここでは3プロセッサに命令エミュレーション処理を分割して割り付けている場合を想定している。
図において、1a〜1cは情報処理装置を構成するプロセッサ群、4はプロセッサにより処理されるターゲット命令列、5は条件分岐命令の実行状況を管理する条件分岐管理テーブル、5aは条件分岐命令の実行有無を示す実行ビット(分岐実行有無表示部)、5bは条件分岐命令の分岐方向を示す方向ビット(分岐方向表示部)、5cは分岐先アドレスを格納する分岐先アドレスフィールド(分岐先アドレス表示部)である。
【0015】
次に動作について説明する。
プロセッサ0 1aでターゲット命令である条件分岐命令を取り出し、デコード処理を行い、条件分岐命令の実行が開始されたことを検出する。プロセッサ01aは条件分岐管理テーブル5の実行ビット5aに条件分岐命令実行中を示す値(分岐実行表示)、例えば1を設定する。プロセッサ0 1aは必要な処理を完了し、結果をバッファ0(図示せず)に書き込み、書き込みポインタを更新する。プロセッサ0 1aは後続命令の取り出し処理を行わず、実行ビット5aを読出し(ポーリングし)、条件分岐命令の実行が解除されたことを示す値(分岐完了表示)、例えば0に切り替わるのを待つ。
バッファ0(図示せず)への書き込みを検出したプロセッサ1 1bはオペランド生成を行う。条件分岐命令では分岐先アドレスを算出する。プロセッサ1 1bは条件分岐管理テーブルの分岐先アドレスフィールド5cに算出した分岐先アドレスを書き込む。プロセッサ1 1bは必要な処理を完了し、結果をバッファ1(図示せず)に書き込み、書き込みポインタを更新する。
バッファ1(図示せず)への書き込みを検出したプロセッサ2 1cは条件分岐命令の分岐条件の成立・不成立の判定を行い、その結果により方向ビット5bを設定する。その後、実行ビットに条件分岐命令実行の解除を示す値(分岐完了表示)、例えば0を設定し、ターゲット命令である条件分岐命令に対するエミュレーション処理を終了する。
プロセッサ0 1aは実行ビット5aが条件分岐命令実行解除を示す値(分岐完了表示)、例えば0になったのをポーリングにより検出すると、方向ビット5bを読出し、分岐成立の場合は分岐先アドレスフィールド5cから分岐先アドレスを読出し、PCに設定する。その後、命令取り出し処理を開始する。
【0016】
以上のように、条件分岐命令実行中を示す手段と、解除する手段、および読み出す手段を設け、条件分岐の分岐条件の成立・不成立が決定するまでは後続命令に対する処理を抑止し、分岐条件の成立・不成立が決した後、後続命令に対する命令エミュレーション処理を再開するようにしたので、命令エミュレーションの対象となるターゲット命令列に予め並列性がない場合でも、命令エミュレーション処理を並列に実行することができ、また、条件分岐命令を正確に処理することができる。
【0017】
実施の形態3.
以上の実施の形態2では、条件分岐命令の実行有無を示す値を読出し(ポーリングし)、判断することにより、条件分岐命令の分岐条件の成立・不成立が決定したことを判定するように構成したものであるが、次に条件分岐命令の分岐条件の成立・不成立が決定した場合に割り込み処理により通知する実施の形態を示す。
図5は、このような場合の情報処理装置の一例を示す構成図である。ここでは3プロセッサに命令エミュレーション処理を分割して割り付けている場合を想定している。
図において、1a〜1cは情報処理装置を構成するプロセッサ群、4はプロセッサにより処理されるターゲット命令列、5は条件分岐命令の実行状況を管理する条件分岐管理テーブル、5aは条件分岐命令の実行有無を示す実行ビット、5bは条件分岐命令の分岐方向を示す方向ビット、5cは分岐先アドレスを格納する分岐先アドレスフィールド、6は割り込み制御装置である。割り込み制御装置は、切替通知部の例に相当する。
【0018】
次に動作について説明する。
プロセッサ0 1aでターゲット命令である条件分岐命令を取り出し、デコード処理を行い、条件分岐命令の実行が開始されたことを検出する。プロセッサ01aは条件分岐管理テーブル5の実行ビット5aに条件分岐命令実行中を示す値(分岐実行表示)、例えば1を設定する。プロセッサ0 1aは必要な処理を完了し、結果をバッファ0(図示せず)に書き込み、書き込みポインタを更新する。プロセッサ0 1aは後続命令の取り出し処理を行わず、割り込み待ち状態になる。
バッファ0(図示せず)への書き込みを検出したプロセッサ1 1bはオペランド生成を行う。条件分岐命令では分岐先アドレスを算出する。プロセッサ1 1bは条件分岐管理テーブルの分岐先アドレスフィールド5cに算出した分岐先アドレスを書き込む。プロセッサ1 1bは必要な処理を完了し、結果をバッファ1(図示せず)に書き込み、書き込みポインタを更新する。
バッファ1(図示せず)への書き込みを検出したプロセッサ2 1cは条件分岐命令の分岐条件の成立・不成立の判定を行い、その結果により方向ビット5bを設定する。その後、実行ビットに条件分岐命令実行の解除を示す値(分岐完了表示)、例えば0を設定し、ターゲット命令である条件分岐命令に対するエミュレーション処理を終了する。その後、割り込み制御装置6に条件分岐命令の分岐条件の成立・不成立が決定したことによる割り込み要因を設定する。
割り込み要因を設定された割り込み制御装置6はプロセッサ0 1aに割り込みを送信し、実行ビットの値が切替わったこと、即ち、条件分岐命令が完了したことを通知する。
プロセッサ0 1aは割り込みを受け取ると、割り込み制御装置6から割り込み要因を読出し、条件分岐命令の分岐条件の成立・不成立が決定したことに起因する割り込みであることを判定すると、方向ビット5bを読出し、分岐成立の場合は分岐先アドレスフィールド5cから分岐先アドレスを読出し、PCに設定する。その後、命令取り出し処理を開始する。
【0019】
以上のように、条件分岐命令実行中を示す手段と解除する手段、プロセッサ間の割り込み手段、条件分岐命令の分岐条件の成立・不成立による割り込み要因とを設け、条件分岐の分岐条件の成立・不成立が決定するまでは後続命令に対する処理を抑止し、分岐条件の成立・不成立が決した後、後続命令に対する命令エミュレーション処理を再開するようにしたので、命令エミュレーションの対象となるターゲット命令列に予め並列性がない場合でも、命令エミュレーション処理を並列に実行することができ、また、条件分岐命令を正確に処理することができる。
【0020】
実施の形態4.
以上の実施の形態1では、マルチプロセッサ構成の情報処理装置の各プロセッサにプロセッサ数に応じて分割した命令エミュレーション処理の各コンポーネントを、各プロセッサに割り当て、並列に処理するようにしたものであるが、次にレジスタの内容を変更するターゲット命令に対する命令エミュレーション処理が終了する前に、後続のターゲット命令が上記先行命令で内容を変更されるレジスタを使用する場合に、レジスタの内容の変更が終了するまで後続命令の命令エミュレーション処理の実行を抑止し、レジスタの内容の変更が終了したら後続命令の命令エミュレーション処理の実行を開始する実施の形態を示す。
図6は、このような場合の情報処理装置の一例を示す構成図である。ここでは3プロセッサに命令エミュレーション処理を分割して割り付けている場合を想定している。
図において、1a〜1cは情報処理装置を構成するプロセッサ群、4はプロセッサにより処理されるターゲット命令列、7はレジスタ変更管理テーブル、7a〜7yはレジスタr0〜rYに対応した変更ビットである。本実施の形態では、レジスタ変更管理テーブル7は、レジスタ変更有無表示部の例に相当する。
【0021】
次に動作について説明する。
プロセッサ0 1aでターゲット命令であるレジスタの内容を変更する命令を取り出し、命令デコード処理を行い、レジスタの内容を変更する命令の実行開始を検出する。それに従い、プロセッサ0 1aはレジスタ変更管理テーブル7に置かれた変更するレジスタ番号rXに対応する変更ビット7xに変更中を示す値(レジスタ変更表示)、例えば1を設定する。プロセッサ0 1aは必要な処理を完了し、結果をバッファ0(図示せず)に書き込み、書き込みポインタを更新し、後続命令の命令取り出し処理を開始し、後続命令の処理を完了すると、結果をバッファ0(図示せず)に書き込むという処理を繰り返し行う。また、内容を変更するレジスタrXに対応する変更ビット7xが既に変更中であることを示す値、例えば1に設定されている場合、変更ビット7xに対する変更中であることを示す値、例えば1を設定する処理を抑止し、変更ビット7xの表示内容が変更の解除を示す値(レジスタ変更完了表示)、例えば0になるまで待ち、解除を確認した後、変更ビット7xに対する変更中であることを示す値、例えば1を設定する処理を開始する。
バッファ0(図示せず)への書き込みを検出したプロセッサ1 1bはオペランド生成を行う。オペランド生成にレジスタを使用する場合には、レジスタ変更管理テーブルの該当するレジスタ番号rXに対応する変更ビット7xを読出し、変更されるか否かを確認する。変更ビット7xが変更中を示す値(レジスタ変更表示)、例えば1になっている場合は、オペランド生成処理を抑止する。その後、繰り返し変更ビット7xを読出し(ポーリングし)、確認する処理を繰り返し、変更ビット7xの表示内容が変更の解除を示す値(レジスタ変更完了表示)、例えば0になるまでオペランド生成の処理を起動しない。変更ビット7xが変更の解除を示す値(レジスタ変更完了表示)、例えば0の場合は、オペランド生成処理を行い、完了後、バッファ1(図示せず)に結果を書き込み、書き込みポインタを更新する。
バッファ1(図示せず)への書き込みを検出したプロセッサ2 1cは演算処理を行い、レジスタの内容を変更する処理の場合、レジスタの値を変更した後、レジスタ変更管理テーブル7の変更したレジスタ番号rXに対応した変更ビット7xにレジスタ変更の解除を示す値(レジスタ変更完了表示)、例えば0を書き込む。
【0022】
以上のように、レジスタの内容を変更中であることを示す手段と、解除する手段、および読み出す手段を設け、レジスタの内容を変更する処理が完了するまでは後続命令に対する処理を抑止し、レジスタの内容を変更する処理が完了した後、後続命令に対する命令エミュレーション処理を再開するようにしたので、命令エミュレーションの対象となるターゲット命令列に予め並列性がない場合でも、命令エミュレーション処理を並列に実行することができ、また、レジスタの内容を変更する命令と後続命令でのレジスタの使用を正確に処理することができる。
【0023】
実施の形態5.
以上の実施の形態4では、レジスタの内容を変更する処理の実行有無を示す値を読出し(ポーリングし)、判断することにより、レジスタの内容を変更する処理が完了したことを判定するように構成したものであるが、次に条件分岐命令の分岐条件の成立・不成立が決定した場合に割り込み処理により通知する実施の形態を示す。
図7は、このような場合の情報処理装置の一例を示す構成図である。ここでは3プロセッサに命令エミュレーション処理を分割して割り付けている場合を想定している。
図において、1a〜1cは情報処理装置を構成するプロセッサ群、4はプロセッサにより処理されるターゲット命令列、6は割り込み制御装置、7はレジスタ変更管理テーブル、7a〜7yはレジスタr0〜rYに対応した変更ビットである。なお、割り込み制御装置6は、切替通知部の例に相当する。
【0024】
次に動作について説明する。プロセッサ0 1aでターゲット命令であるレジスタの内容を変更する命令を取り出し、命令デコード処理を行い、レジスタの内容を変更する命令の実行開始を検出する。それに従い、プロセッサ0 1aはレジスタ変更管理テーブル7に置かれた変更するレジスタ番号rXに対応する変更ビット7xに変更中を示す値(レジスタ変更表示)、例えば1を設定する。プロセッサ0 1aは必要な処理を完了するが、結果をバッファ0(図示せず)に書き込む処理を行わず、割り込み待ち状態に入る。すなわち、後続命令に対する処理は抑止される。
バッファ0(図示せず)への書き込みを検出したプロセッサ1 1bはオペランド生成を行う。レジスタ変更中の場合、後続命令に対する処理は、前段であるプロセッサ0 1aにて抑止されているため、プロセッサ1 1bは常に通常のオペランド生成処理を行い、完了後、バッファ1(図示せず)に結果を書き込み、書き込みポインタを更新する。
バッファ1(図示せず)への書き込みを検出したプロセッサ2 1cは演算処理を行い、レジスタの値を変更した後、レジスタ変更管理テーブル7の変更したレジスタ番号rXに対応した変更ビット7xにレジスタの変更の解除を示す値(レジスタ変更完了表示)、例えば0を書き込み、ターゲット命令であるレジスタの内容を変更する命令に対するエミュレーション処理を終了する。その後、割り込み制御装置6にレジスタの内容の変更が完了したことによる割り込み要因を設定する。
割り込み要因を設定された割り込み制御装置6はプロセッサ0 1aに割り込みを送信し、レジスタ変更管理テーブル7の変更ビットが切り替わったこと、即ち、レジスタ内容の変更が完了したことを通知する。
プロセッサ0 1aは割り込みを受け取ると、割り込み制御装置6から割り込み要因を読出し、レジスタの内容の変更が完了したことに起因する割り込みであることを判定すると、現在処理中のターゲット命令が使用するレジスタ番号に対応した変更ビットがすべてレジスタ変更中ではないという状態を示す値、例えば0であることを確認する。すべてがレジスタ変更中ではない場合、抑止していた処理結果のバッファ0(図示せず)への書き込み処理を行い、さらに後続命令に対する処理を繰り返し行う。また、割り込みに対する処理において使用するレジスタに対応した変更ビットに変更中を示す値、例えば1が存在することが検出された場合には、再び割り込み待ち状態に入る。
【0025】
以上のように、レジスタの内容を変更中であることを示す手段と、解除する手段、および読み出す手段と、レジスタを使用中であることを示す手段とを設け、レジスタの内容を変更する処理が完了するまでは後続命令に対する処理を抑止し、レジスタの内容を変更する処理が完了した後、後続命令に対する命令エミュレーション処理を再開するようにしたので、命令エミュレーションの対象となるターゲット命令列に予め並列性がない場合でも、命令エミュレーション処理を並列に実行することができ、また、レジスタの内容を変更する命令と後続命令でのレジスタの使用を正確に処理することができる。
【0026】
ここで、実施の形態1〜5に示した情報処理装置の特徴を以下にて再現する。
【0027】
実施の形態1に示した情報処理装置は、命令エミュレーションによりターゲット命令を処理するマルチプロセッサ構成の情報処理装置であって、
プロセッサ数を判定する手段と、プロセッサ数に応じた構成に命令エミュレーション処理を分割する手段と、各プロセッサに分割した命令エミュレーションの各処理を割り付ける手段を設け、
命令エミュレーション処理の各ステップを独立的に実行することで、ターゲット命令を並列に処理することを特徴とする。
【0028】
実施の形態2及び実施の形態3に示した情報処理装置は、命令エミュレーションによりターゲット命令を処理するマルチプロセッサ構成の情報処理装置であって、
ターゲット命令として条件分岐命令を実行中であることを設定する手段と、それを保持する手段および解除する手段と、分岐方向を示す手段と、分岐先アドレスを保持する手段とを設け、
条件分岐命令に対する命令エミュレーション処理が開始されると後続命令の命令エミュレーション処理を抑止し、条件分岐命令の実行が完了すると後続命令を条件分岐の方向に従って実行することを特徴とする。
【0029】
実施の形態2に示した情報処理装置は、命令エミュレーションによりターゲット命令を処理するマルチプロセッサ構成の情報処理装置であって、
上記条件分岐命令実行中であることを保持する手段からデータを読み出す手段と、規定値を保持する手段と、条件分岐命令実行中表示手段から読み出したデータと上記規定値を比較する手段を設け、
上記条件分岐命令実行中であることを保持する手段をポーリングすることにより、条件分岐命令に対する命令エミュレーション処理が完了したことを検出し、後続命令を再開することを特徴とすることを特徴とする。
【0030】
実施の形態3に示した情報処理装置は、命令エミュレーションによりターゲット命令を処理するマルチプロセッサ構成の情報処理装置であって、
プロセッサ間の割り込み手段と、条件分岐命令が完了したことを示す割り込み要因とを設け、
条件分岐命令完了を割り込みにより通知することを特徴とする。
【0031】
実施の形態4及び実施の形態5に示した情報処理装置は、命令エミュレーションによりターゲット命令を処理するマルチプロセッサ構成の情報処理装置であって、
ターゲット命令において変更するレジスタ番号を抽出する手段と、抽出したレジスタ番号を保持する手段と、上記変更するレジスタ番号を保持する手段からレジスタ番号を読み出す手段と、ターゲット命令で読み出すレジスタ番号を抽出する手段と、比較手段とを設け、
ターゲット命令でレジスタの内容を変更する命令に対する命令エミュレーション処理を開始した場合、ターゲット命令で変更するレジスタのレジスタ番号と、後続のターゲット命令で読み出すレジスタのレジスタ番号が一致した場合に後続のターゲット命令の命令エミュレーション処理を抑止することを特徴とする。
【0032】
実施の形態4に示した情報処理装置は、命令エミュレーションによりターゲット命令を処理するマルチプロセッサ構成の情報処理装置であって、
上記変更するレジスタ番号を保持する手段に変更が完了したことを示す手段と、完了を設定する手段とを設け、
上記変更するレジスタ番号を保持する手段をポーリングすることにより、ターゲット命令によりレジスタの変更を完了したことを検出し、後続命令を再開することを特徴とする。
【0033】
実施の形態5に示した情報処理装置は、命令エミュレーションによりターゲット命令を処理するマルチプロセッサ構成の情報処理装置であって、
プロセッサ間の割り込み手段と、ターゲット命令によりレジスタの変更が完了したことを示す割り込み要因とを設け、
ターゲット命令によるレジスタ変更の完了を割り込みにより通知することを特徴とする。
【0034】
【発明の効果】
以上のように、この発明によれば、命令エミュレーション処理の命令列に並列性がない場合であっても、命令エミュレーション処理を並列に実行することができる。
【図面の簡単な説明】
【図1】実施の形態1に係る情報処理装置の構成例を示す図。
【図2】実施の形態1に係るプロセッサ0の処理例を示すフローチャート図。
【図3】実施の形態1に係るプロセッサ1の処理例を示すフローチャート図
【図4】実施の形態2に係る情報処理装置の構成例を示す図。
【図5】実施の形態3に係る情報処理装置の構成例を示す図。
【図6】実施の形態4に係る情報処理装置の構成例を示す図。
【図7】実施の形態5に係る情報処理装置の構成例を示す図。
【図8】従来の技術を説明する図。
【符号の説明】
1 プロセッサ、2 バッファ、3 命令エミュレーション処理分割部、4 ターゲット命令列、5 条件分岐管理テーブル、6 割り込み制御装置、7 レジスタ変更管理テーブル。
【発明の属する技術分野】
この発明は、マルチプロセッサ構成の情報処理装置における命令エミュレーション処理の高速化に関するものである。
【0002】
【従来の技術】
図8は例えば、特開平8−221277に示された従来のマルチプロセッサ構成の情報処理装置における命令エミュレーション装置であり、図において10はマルチプロセッサ命令エミュレーション手段、101は並行命令エミュレーション手段、102は実行同期制御手段、102aは実行同期制御手段102に設けられた同期制御テーブル、103a〜103m−1はプロセッサ、T1はターゲット命令列である。
【0003】
次に動作について説明する。
マルチプロセッサ命令エミュレーション手段10がターゲット命令T1列から1命令ずつ命令を取り出し、処理待ち状態にあるプロセッサに割り当てる。複数のターゲット命令を同時にプロセッサ0 103a〜プロセッサM−1 103m−1に割り当て、並行に実行させるため、並行命令エミュレーション手段101および実行同期制御手段102を持ち、各プロセッサから相互に参照可能な同期制御テーブル102aに記載された内容および特開平8−221277に示された手順を実行することにより各プロセッサが取り出すべき命令を算出している。
【0004】
【特許文献1】
特開平8−221277号公報
【0005】
【発明が解決しようとする課題】
従来のマルチプロセッサ構成における命令エミュレーション装置は、本来順次的に行うべきターゲット命令列に対する命令エミュレーション処理を並列に処理するため、ターゲット命令列に並列性が無い場合には各プロセッサにターゲット命令を割り当てても並列に処理できないという問題点があった。
【0006】
この発明は上記のような問題点を解決するためになされたもので、ターゲット命令列に並列性が無い場合でも、命令エミュレーション処理を並列に行うことができるマルチプロセッサ構成の情報処理装置を得ることを目的とする。
【0007】
【課題を解決するための手段】
本発明に係る情報処理装置は、
命令エミュレーション処理を実行可能な複数のプロセッサと、
プロセッサ数を判定するプロセッサ数判定部と、
前記プロセッサ数判定部により判定されたプロセッサ数に対応させて命令エミュレーション処理を分割する処理分割部と、
前記処理分割部により分割されたそれぞれの処理をプロセッサごとに割付ける処理割付部とを有することを特徴とする。
【0008】
【発明の実施の形態】
実施の形態1.
図1はこの発明のマルチプロセッサ構成の情報処理装置の一例を示す構成図である。本図においてMは1以上の整数である。
図において、1a〜1mは情報処理装置を構成するプロセッサ群、2aから2m−1はプロセッサ群1a〜1mの間で情報の受け渡しを行うために使用するリングバッファ、3はプロセッサ数に応じた数に命令エミュレーションを分割し、情報処理装置の各プロセッサに命令エミュレーション処理の一部を割り当てる命令エミュレーション処理分割部、3aは情報処理装置のプロセッサ数を判定するプロセッサ数判定部、3bはプロセッサ数判定部3aの判定結果に応じて命令エミュレーション処理を分割する処理分割部、3cは処理分割部3bで分割した命令エミュレーション処理をプロセッサ群1a〜1mに割り付ける処理割付部、4はプロセッサにより処理されるターゲット命令列である。なお、本明細書では、命令エミュレーション処理分割部3は、命令エミュレーション装置に相当する。
【0009】
次に動作について説明する。
まず、命令エミュレーション処理の対象となるターゲット命令列4の実行が指示されると、情報処理装置は命令エミュレーション処理分割部3を起動する。
命令エミュレーション処理分割部3では、プロセッサ数判定部3aがオペレーティングシステムの管理する情報から情報処理装置を構成するプロセッサ数を読出し、処理分割部3bに伝える。プロセッサ数を受け取った処理分割部3bは、プロセッサ数に応じて命令エミュレーション処理を分割する。例えば2プロセッサ構成の情報処理装置では、例えば、命令取り出し処理と命令デコード処理、および、オペランド生成処理と演算処理と結果格納処理に処理を分割することが想定される。この分割に応じた処理は予め処理分割部3bにプロセッサ数に応じて分割したコンポーネントを格納しておいても良いし、エミュレーション処理を細分化し、細分化された各部からコンポーネントを合成しても良い。処理の分割後、処理割付部3cが、プロセッサ群が独自に管理するメモリ領域に、分割された命令エミュレーション処理の各コンポーネントを格納し、プロセッサ群に起動をかける。
【0010】
次に、例えば2プロセッサ構成の情報処理装置、すなわち図1においてM=1の場合における、プロセッサ0およびプロセッサ1の動作を図2および図3を用いて説明する。図2は2プロセッサ構成におけるプロセッサ0の処理フロー、図3はプロセッサ1の処理フローである。
ここではプロセッサ0には命令取り出し処理と命令デコード処理を割り付け、プロセッサ1にはオペランド生成処理と演算処理と結果格納処理を割り付けているとして説明する。
【0011】
プロセッサ0は起動処理終了後、プログラムカウンタ(PC)に従いターゲット命令列4から命令を1個取り出し、取り出した命令をデコードする。この時PC値を次の命令に変更しておく処理を併せて行う。次にデコード結果をバッファ0の書き込みポインタが示す場所に書き込み、書込みポインタを進める。書込みポインタを進めた結果、読出しポインタと場所が一致した場合、書込み抑止を設定する。後続命令がある場合はPCの示す値に従い後続命令の処理を行う。プロセッサ0の処理時間がプロセッサ1の処理時間より短い場合、バッファ0が満たされる状態になる。この場合は書込みポインタと読出しポインタが一致しており、前記処理ステップにおいて書込み抑止状態が設定されている。書き込み抑止状態ではバッファ0への書込み動作を行わず、書込み抑止状態の解除を待つ。すなわち、読出しポインタの値を監視し、書込みポインタと読出しポインタが不一致になるのを待ち、不一致になったの場合、書込み抑止状態が解除されたと判断し、処理を継続する。
【0012】
プロセッサ1は起動処理終了後に待ち状態となり、その後プロセッサ0の処理が完了した、すなわち書き込みポインタと読出しポインタの不一致を検出すると、実行状態に遷移し、バッファ0を読出しポインタの示す場所からデコード結果データを読出し、演算、結果格納処理を実行後、読出しポインタを進める。プロセッサ1の処理時間がプロセッサ0の処理時間より短い場合、バッファ0が空の状態、すなわち読出しポインタと書込みポインタが一致した状態になる。この場合は、プロセッサ0によって処理された結果が存在しないので、プロセッサ1は待ち状態になる。読出しポインタと書込みポインタが不一致の場合、処理を継続する。
【0013】
以上のように、命令エミュレーションを情報処理装置を構成するプロセッサ数に応じた処理に分割し、マルチプロセッサで並列に命令エミュレーション処理を行うようにしているので、命令エミュレーションの対象となるターゲット命令列に予め並列性がない場合でも、命令エミュレーション処理を並列に実行することができる。
【0014】
実施の形態2.
以上の実施の形態1では、マルチプロセッサ構成の情報処理装置の各プロセッサにプロセッサ数に応じて分割した命令エミュレーション処理の各コンポーネントを割り当て、並列に処理するようにしたものであるが、次に条件分岐命令を実行する場合に分岐方向が決定し、後続命令が確定するまで後続命令に対する命令エミュレーション処理の実行を抑止し、後続命令が確定した後に後続命令に対する命令エミュレーション処理の実行を開始する実施の形態を示す。
図4は、このような場合の情報処理装置の一例を示す構成図である。ここでは3プロセッサに命令エミュレーション処理を分割して割り付けている場合を想定している。
図において、1a〜1cは情報処理装置を構成するプロセッサ群、4はプロセッサにより処理されるターゲット命令列、5は条件分岐命令の実行状況を管理する条件分岐管理テーブル、5aは条件分岐命令の実行有無を示す実行ビット(分岐実行有無表示部)、5bは条件分岐命令の分岐方向を示す方向ビット(分岐方向表示部)、5cは分岐先アドレスを格納する分岐先アドレスフィールド(分岐先アドレス表示部)である。
【0015】
次に動作について説明する。
プロセッサ0 1aでターゲット命令である条件分岐命令を取り出し、デコード処理を行い、条件分岐命令の実行が開始されたことを検出する。プロセッサ01aは条件分岐管理テーブル5の実行ビット5aに条件分岐命令実行中を示す値(分岐実行表示)、例えば1を設定する。プロセッサ0 1aは必要な処理を完了し、結果をバッファ0(図示せず)に書き込み、書き込みポインタを更新する。プロセッサ0 1aは後続命令の取り出し処理を行わず、実行ビット5aを読出し(ポーリングし)、条件分岐命令の実行が解除されたことを示す値(分岐完了表示)、例えば0に切り替わるのを待つ。
バッファ0(図示せず)への書き込みを検出したプロセッサ1 1bはオペランド生成を行う。条件分岐命令では分岐先アドレスを算出する。プロセッサ1 1bは条件分岐管理テーブルの分岐先アドレスフィールド5cに算出した分岐先アドレスを書き込む。プロセッサ1 1bは必要な処理を完了し、結果をバッファ1(図示せず)に書き込み、書き込みポインタを更新する。
バッファ1(図示せず)への書き込みを検出したプロセッサ2 1cは条件分岐命令の分岐条件の成立・不成立の判定を行い、その結果により方向ビット5bを設定する。その後、実行ビットに条件分岐命令実行の解除を示す値(分岐完了表示)、例えば0を設定し、ターゲット命令である条件分岐命令に対するエミュレーション処理を終了する。
プロセッサ0 1aは実行ビット5aが条件分岐命令実行解除を示す値(分岐完了表示)、例えば0になったのをポーリングにより検出すると、方向ビット5bを読出し、分岐成立の場合は分岐先アドレスフィールド5cから分岐先アドレスを読出し、PCに設定する。その後、命令取り出し処理を開始する。
【0016】
以上のように、条件分岐命令実行中を示す手段と、解除する手段、および読み出す手段を設け、条件分岐の分岐条件の成立・不成立が決定するまでは後続命令に対する処理を抑止し、分岐条件の成立・不成立が決した後、後続命令に対する命令エミュレーション処理を再開するようにしたので、命令エミュレーションの対象となるターゲット命令列に予め並列性がない場合でも、命令エミュレーション処理を並列に実行することができ、また、条件分岐命令を正確に処理することができる。
【0017】
実施の形態3.
以上の実施の形態2では、条件分岐命令の実行有無を示す値を読出し(ポーリングし)、判断することにより、条件分岐命令の分岐条件の成立・不成立が決定したことを判定するように構成したものであるが、次に条件分岐命令の分岐条件の成立・不成立が決定した場合に割り込み処理により通知する実施の形態を示す。
図5は、このような場合の情報処理装置の一例を示す構成図である。ここでは3プロセッサに命令エミュレーション処理を分割して割り付けている場合を想定している。
図において、1a〜1cは情報処理装置を構成するプロセッサ群、4はプロセッサにより処理されるターゲット命令列、5は条件分岐命令の実行状況を管理する条件分岐管理テーブル、5aは条件分岐命令の実行有無を示す実行ビット、5bは条件分岐命令の分岐方向を示す方向ビット、5cは分岐先アドレスを格納する分岐先アドレスフィールド、6は割り込み制御装置である。割り込み制御装置は、切替通知部の例に相当する。
【0018】
次に動作について説明する。
プロセッサ0 1aでターゲット命令である条件分岐命令を取り出し、デコード処理を行い、条件分岐命令の実行が開始されたことを検出する。プロセッサ01aは条件分岐管理テーブル5の実行ビット5aに条件分岐命令実行中を示す値(分岐実行表示)、例えば1を設定する。プロセッサ0 1aは必要な処理を完了し、結果をバッファ0(図示せず)に書き込み、書き込みポインタを更新する。プロセッサ0 1aは後続命令の取り出し処理を行わず、割り込み待ち状態になる。
バッファ0(図示せず)への書き込みを検出したプロセッサ1 1bはオペランド生成を行う。条件分岐命令では分岐先アドレスを算出する。プロセッサ1 1bは条件分岐管理テーブルの分岐先アドレスフィールド5cに算出した分岐先アドレスを書き込む。プロセッサ1 1bは必要な処理を完了し、結果をバッファ1(図示せず)に書き込み、書き込みポインタを更新する。
バッファ1(図示せず)への書き込みを検出したプロセッサ2 1cは条件分岐命令の分岐条件の成立・不成立の判定を行い、その結果により方向ビット5bを設定する。その後、実行ビットに条件分岐命令実行の解除を示す値(分岐完了表示)、例えば0を設定し、ターゲット命令である条件分岐命令に対するエミュレーション処理を終了する。その後、割り込み制御装置6に条件分岐命令の分岐条件の成立・不成立が決定したことによる割り込み要因を設定する。
割り込み要因を設定された割り込み制御装置6はプロセッサ0 1aに割り込みを送信し、実行ビットの値が切替わったこと、即ち、条件分岐命令が完了したことを通知する。
プロセッサ0 1aは割り込みを受け取ると、割り込み制御装置6から割り込み要因を読出し、条件分岐命令の分岐条件の成立・不成立が決定したことに起因する割り込みであることを判定すると、方向ビット5bを読出し、分岐成立の場合は分岐先アドレスフィールド5cから分岐先アドレスを読出し、PCに設定する。その後、命令取り出し処理を開始する。
【0019】
以上のように、条件分岐命令実行中を示す手段と解除する手段、プロセッサ間の割り込み手段、条件分岐命令の分岐条件の成立・不成立による割り込み要因とを設け、条件分岐の分岐条件の成立・不成立が決定するまでは後続命令に対する処理を抑止し、分岐条件の成立・不成立が決した後、後続命令に対する命令エミュレーション処理を再開するようにしたので、命令エミュレーションの対象となるターゲット命令列に予め並列性がない場合でも、命令エミュレーション処理を並列に実行することができ、また、条件分岐命令を正確に処理することができる。
【0020】
実施の形態4.
以上の実施の形態1では、マルチプロセッサ構成の情報処理装置の各プロセッサにプロセッサ数に応じて分割した命令エミュレーション処理の各コンポーネントを、各プロセッサに割り当て、並列に処理するようにしたものであるが、次にレジスタの内容を変更するターゲット命令に対する命令エミュレーション処理が終了する前に、後続のターゲット命令が上記先行命令で内容を変更されるレジスタを使用する場合に、レジスタの内容の変更が終了するまで後続命令の命令エミュレーション処理の実行を抑止し、レジスタの内容の変更が終了したら後続命令の命令エミュレーション処理の実行を開始する実施の形態を示す。
図6は、このような場合の情報処理装置の一例を示す構成図である。ここでは3プロセッサに命令エミュレーション処理を分割して割り付けている場合を想定している。
図において、1a〜1cは情報処理装置を構成するプロセッサ群、4はプロセッサにより処理されるターゲット命令列、7はレジスタ変更管理テーブル、7a〜7yはレジスタr0〜rYに対応した変更ビットである。本実施の形態では、レジスタ変更管理テーブル7は、レジスタ変更有無表示部の例に相当する。
【0021】
次に動作について説明する。
プロセッサ0 1aでターゲット命令であるレジスタの内容を変更する命令を取り出し、命令デコード処理を行い、レジスタの内容を変更する命令の実行開始を検出する。それに従い、プロセッサ0 1aはレジスタ変更管理テーブル7に置かれた変更するレジスタ番号rXに対応する変更ビット7xに変更中を示す値(レジスタ変更表示)、例えば1を設定する。プロセッサ0 1aは必要な処理を完了し、結果をバッファ0(図示せず)に書き込み、書き込みポインタを更新し、後続命令の命令取り出し処理を開始し、後続命令の処理を完了すると、結果をバッファ0(図示せず)に書き込むという処理を繰り返し行う。また、内容を変更するレジスタrXに対応する変更ビット7xが既に変更中であることを示す値、例えば1に設定されている場合、変更ビット7xに対する変更中であることを示す値、例えば1を設定する処理を抑止し、変更ビット7xの表示内容が変更の解除を示す値(レジスタ変更完了表示)、例えば0になるまで待ち、解除を確認した後、変更ビット7xに対する変更中であることを示す値、例えば1を設定する処理を開始する。
バッファ0(図示せず)への書き込みを検出したプロセッサ1 1bはオペランド生成を行う。オペランド生成にレジスタを使用する場合には、レジスタ変更管理テーブルの該当するレジスタ番号rXに対応する変更ビット7xを読出し、変更されるか否かを確認する。変更ビット7xが変更中を示す値(レジスタ変更表示)、例えば1になっている場合は、オペランド生成処理を抑止する。その後、繰り返し変更ビット7xを読出し(ポーリングし)、確認する処理を繰り返し、変更ビット7xの表示内容が変更の解除を示す値(レジスタ変更完了表示)、例えば0になるまでオペランド生成の処理を起動しない。変更ビット7xが変更の解除を示す値(レジスタ変更完了表示)、例えば0の場合は、オペランド生成処理を行い、完了後、バッファ1(図示せず)に結果を書き込み、書き込みポインタを更新する。
バッファ1(図示せず)への書き込みを検出したプロセッサ2 1cは演算処理を行い、レジスタの内容を変更する処理の場合、レジスタの値を変更した後、レジスタ変更管理テーブル7の変更したレジスタ番号rXに対応した変更ビット7xにレジスタ変更の解除を示す値(レジスタ変更完了表示)、例えば0を書き込む。
【0022】
以上のように、レジスタの内容を変更中であることを示す手段と、解除する手段、および読み出す手段を設け、レジスタの内容を変更する処理が完了するまでは後続命令に対する処理を抑止し、レジスタの内容を変更する処理が完了した後、後続命令に対する命令エミュレーション処理を再開するようにしたので、命令エミュレーションの対象となるターゲット命令列に予め並列性がない場合でも、命令エミュレーション処理を並列に実行することができ、また、レジスタの内容を変更する命令と後続命令でのレジスタの使用を正確に処理することができる。
【0023】
実施の形態5.
以上の実施の形態4では、レジスタの内容を変更する処理の実行有無を示す値を読出し(ポーリングし)、判断することにより、レジスタの内容を変更する処理が完了したことを判定するように構成したものであるが、次に条件分岐命令の分岐条件の成立・不成立が決定した場合に割り込み処理により通知する実施の形態を示す。
図7は、このような場合の情報処理装置の一例を示す構成図である。ここでは3プロセッサに命令エミュレーション処理を分割して割り付けている場合を想定している。
図において、1a〜1cは情報処理装置を構成するプロセッサ群、4はプロセッサにより処理されるターゲット命令列、6は割り込み制御装置、7はレジスタ変更管理テーブル、7a〜7yはレジスタr0〜rYに対応した変更ビットである。なお、割り込み制御装置6は、切替通知部の例に相当する。
【0024】
次に動作について説明する。プロセッサ0 1aでターゲット命令であるレジスタの内容を変更する命令を取り出し、命令デコード処理を行い、レジスタの内容を変更する命令の実行開始を検出する。それに従い、プロセッサ0 1aはレジスタ変更管理テーブル7に置かれた変更するレジスタ番号rXに対応する変更ビット7xに変更中を示す値(レジスタ変更表示)、例えば1を設定する。プロセッサ0 1aは必要な処理を完了するが、結果をバッファ0(図示せず)に書き込む処理を行わず、割り込み待ち状態に入る。すなわち、後続命令に対する処理は抑止される。
バッファ0(図示せず)への書き込みを検出したプロセッサ1 1bはオペランド生成を行う。レジスタ変更中の場合、後続命令に対する処理は、前段であるプロセッサ0 1aにて抑止されているため、プロセッサ1 1bは常に通常のオペランド生成処理を行い、完了後、バッファ1(図示せず)に結果を書き込み、書き込みポインタを更新する。
バッファ1(図示せず)への書き込みを検出したプロセッサ2 1cは演算処理を行い、レジスタの値を変更した後、レジスタ変更管理テーブル7の変更したレジスタ番号rXに対応した変更ビット7xにレジスタの変更の解除を示す値(レジスタ変更完了表示)、例えば0を書き込み、ターゲット命令であるレジスタの内容を変更する命令に対するエミュレーション処理を終了する。その後、割り込み制御装置6にレジスタの内容の変更が完了したことによる割り込み要因を設定する。
割り込み要因を設定された割り込み制御装置6はプロセッサ0 1aに割り込みを送信し、レジスタ変更管理テーブル7の変更ビットが切り替わったこと、即ち、レジスタ内容の変更が完了したことを通知する。
プロセッサ0 1aは割り込みを受け取ると、割り込み制御装置6から割り込み要因を読出し、レジスタの内容の変更が完了したことに起因する割り込みであることを判定すると、現在処理中のターゲット命令が使用するレジスタ番号に対応した変更ビットがすべてレジスタ変更中ではないという状態を示す値、例えば0であることを確認する。すべてがレジスタ変更中ではない場合、抑止していた処理結果のバッファ0(図示せず)への書き込み処理を行い、さらに後続命令に対する処理を繰り返し行う。また、割り込みに対する処理において使用するレジスタに対応した変更ビットに変更中を示す値、例えば1が存在することが検出された場合には、再び割り込み待ち状態に入る。
【0025】
以上のように、レジスタの内容を変更中であることを示す手段と、解除する手段、および読み出す手段と、レジスタを使用中であることを示す手段とを設け、レジスタの内容を変更する処理が完了するまでは後続命令に対する処理を抑止し、レジスタの内容を変更する処理が完了した後、後続命令に対する命令エミュレーション処理を再開するようにしたので、命令エミュレーションの対象となるターゲット命令列に予め並列性がない場合でも、命令エミュレーション処理を並列に実行することができ、また、レジスタの内容を変更する命令と後続命令でのレジスタの使用を正確に処理することができる。
【0026】
ここで、実施の形態1〜5に示した情報処理装置の特徴を以下にて再現する。
【0027】
実施の形態1に示した情報処理装置は、命令エミュレーションによりターゲット命令を処理するマルチプロセッサ構成の情報処理装置であって、
プロセッサ数を判定する手段と、プロセッサ数に応じた構成に命令エミュレーション処理を分割する手段と、各プロセッサに分割した命令エミュレーションの各処理を割り付ける手段を設け、
命令エミュレーション処理の各ステップを独立的に実行することで、ターゲット命令を並列に処理することを特徴とする。
【0028】
実施の形態2及び実施の形態3に示した情報処理装置は、命令エミュレーションによりターゲット命令を処理するマルチプロセッサ構成の情報処理装置であって、
ターゲット命令として条件分岐命令を実行中であることを設定する手段と、それを保持する手段および解除する手段と、分岐方向を示す手段と、分岐先アドレスを保持する手段とを設け、
条件分岐命令に対する命令エミュレーション処理が開始されると後続命令の命令エミュレーション処理を抑止し、条件分岐命令の実行が完了すると後続命令を条件分岐の方向に従って実行することを特徴とする。
【0029】
実施の形態2に示した情報処理装置は、命令エミュレーションによりターゲット命令を処理するマルチプロセッサ構成の情報処理装置であって、
上記条件分岐命令実行中であることを保持する手段からデータを読み出す手段と、規定値を保持する手段と、条件分岐命令実行中表示手段から読み出したデータと上記規定値を比較する手段を設け、
上記条件分岐命令実行中であることを保持する手段をポーリングすることにより、条件分岐命令に対する命令エミュレーション処理が完了したことを検出し、後続命令を再開することを特徴とすることを特徴とする。
【0030】
実施の形態3に示した情報処理装置は、命令エミュレーションによりターゲット命令を処理するマルチプロセッサ構成の情報処理装置であって、
プロセッサ間の割り込み手段と、条件分岐命令が完了したことを示す割り込み要因とを設け、
条件分岐命令完了を割り込みにより通知することを特徴とする。
【0031】
実施の形態4及び実施の形態5に示した情報処理装置は、命令エミュレーションによりターゲット命令を処理するマルチプロセッサ構成の情報処理装置であって、
ターゲット命令において変更するレジスタ番号を抽出する手段と、抽出したレジスタ番号を保持する手段と、上記変更するレジスタ番号を保持する手段からレジスタ番号を読み出す手段と、ターゲット命令で読み出すレジスタ番号を抽出する手段と、比較手段とを設け、
ターゲット命令でレジスタの内容を変更する命令に対する命令エミュレーション処理を開始した場合、ターゲット命令で変更するレジスタのレジスタ番号と、後続のターゲット命令で読み出すレジスタのレジスタ番号が一致した場合に後続のターゲット命令の命令エミュレーション処理を抑止することを特徴とする。
【0032】
実施の形態4に示した情報処理装置は、命令エミュレーションによりターゲット命令を処理するマルチプロセッサ構成の情報処理装置であって、
上記変更するレジスタ番号を保持する手段に変更が完了したことを示す手段と、完了を設定する手段とを設け、
上記変更するレジスタ番号を保持する手段をポーリングすることにより、ターゲット命令によりレジスタの変更を完了したことを検出し、後続命令を再開することを特徴とする。
【0033】
実施の形態5に示した情報処理装置は、命令エミュレーションによりターゲット命令を処理するマルチプロセッサ構成の情報処理装置であって、
プロセッサ間の割り込み手段と、ターゲット命令によりレジスタの変更が完了したことを示す割り込み要因とを設け、
ターゲット命令によるレジスタ変更の完了を割り込みにより通知することを特徴とする。
【0034】
【発明の効果】
以上のように、この発明によれば、命令エミュレーション処理の命令列に並列性がない場合であっても、命令エミュレーション処理を並列に実行することができる。
【図面の簡単な説明】
【図1】実施の形態1に係る情報処理装置の構成例を示す図。
【図2】実施の形態1に係るプロセッサ0の処理例を示すフローチャート図。
【図3】実施の形態1に係るプロセッサ1の処理例を示すフローチャート図
【図4】実施の形態2に係る情報処理装置の構成例を示す図。
【図5】実施の形態3に係る情報処理装置の構成例を示す図。
【図6】実施の形態4に係る情報処理装置の構成例を示す図。
【図7】実施の形態5に係る情報処理装置の構成例を示す図。
【図8】従来の技術を説明する図。
【符号の説明】
1 プロセッサ、2 バッファ、3 命令エミュレーション処理分割部、4 ターゲット命令列、5 条件分岐管理テーブル、6 割り込み制御装置、7 レジスタ変更管理テーブル。
Claims (10)
- 命令エミュレーション処理を実行可能な複数のプロセッサと、
プロセッサ数を判定するプロセッサ数判定部と、
前記プロセッサ数判定部により判定されたプロセッサ数に対応させて命令エミュレーション処理を分割する処理分割部と、
前記処理分割部により分割されたそれぞれの処理をプロセッサごとに割付ける処理割付部とを有することを特徴とする情報処理装置。 - 前記複数のプロセッサは、
前記処理割付部により割付けられた処理をそれぞれのプロセッサで並列に実行することを特徴とする請求項1に記載の情報処理装置。 - 前記複数のプロセッサは、
条件分岐処理が含まれた命令エミュレーション処理を実行可能であり、
前記情報処理装置は、更に、
条件分岐処理が実行中であることを示す分岐実行表示を表示するとともに、条件分岐処理が完了した場合に、条件分岐処理が完了したことを示す分岐完了表示に切替える分岐実行有無表示部と、
条件分岐処理における分岐方向を表示する分岐方向表示部と、
条件分岐処理における分岐先アドレスを表示する分岐先アドレス表示部とを有し、
前記複数のプロセッサは、
分岐実行有無表示部に分岐実行表示が表示されている間は、条件分岐処理以降の後続処理の実行を停止し、前記分岐実行有無表示部の表示内容が分岐実行表示から分岐完了表示に切替わった場合に、前記分岐方向表示部に表示された分岐方向及び前記分岐先アドレス表示部に表示された分岐先アドレスに基づき条件分岐処理以降の後続処理を実行することを特徴とする請求項1に記載の情報処理装置。 - 前記複数のプロセッサのうちの特定のプロセッサが、前記分岐実行有無表示部に対するポーリングを行い、前記分岐実行有無表示部の表示内容が分岐実行表示から分岐完了表示に切替わったことを検出し、
前記複数のプロセッサは、
前記特定のプロセッサによって前記分岐実行有無表示部の表示内容が分岐実行表示から分岐完了表示に切替わったことが検出された場合に、前記分岐方向表示部に表示された分岐方向及び前記分岐先アドレス表示部に表示された分岐先アドレスに基づき条件分岐処理以降の後続処理を実行することを特徴とする請求項3に記載の情報処理装置。 - 前記情報処理装置は、更に、
前記分岐実行有無表示部の表示内容が分岐実行表示から分岐完了表示に切替わったことを検出するとともに、前記複数のプロセッサのうちの特定のプロセッサに対して前記分岐実行有無表示部の表示内容が分岐実行表示から分岐完了表示へ切替わったことを通知する切替通知部を有し、
前記複数のプロセッサは、
前記切替通知部から前記特定のプロセッサに対して前記分岐実行有無表示部の表示内容が分岐実行表示から分岐完了表示へ切替わったことが通知された場合に、前記分岐方向表示部に表示された分岐方向及び前記分岐先アドレス表示部に表示された分岐先アドレスに基づき条件分岐処理以降の後続処理を実行することを特徴とする請求項3に記載の情報処理装置。 - 前記複数のプロセッサは、
レジスタを用いる処理及びレジスタ内容の変更を伴う処理が含まれた命令エミュレーション処理を実行可能であり、
前記情報処理装置は、更に、
少なくとも一つ以上のレジスタについてレジスタごとに、レジスタ内容が変更中であることを示すレジスタ変更表示を表示するとともに、レジスタ内容の変更が完了した場合に、レジスタ内容の変更が完了したことを示すレジスタ変更完了表示に切替えるレジスタ変更有無表示部を有し、
前記複数のプロセッサは、
いずれかのレジスタについてレジスタ変更表示が前記レジスタ変更有無表示部に表示されている間は、当該レジスタを用いる処理の実行を停止し、当該レジスタについて前記レジスタ変更有無表示部の表示内容がレジスタ変更表示からレジスタ変更完了表示に切替わった場合に、当該レジスタを用いる処理を実行することを特徴とする請求項1に記載の情報処理装置。 - 前記複数のプロセッサのうちの特定のプロセッサが、前記レジスタ変更有無表示部に対するポーリングを行い、前記レジスタ変更有無表示部の表示内容がレジスタ変更表示からレジスタ変更完了表示へ切替わったことを検出し、
前記複数のプロセッサは、
いずれかのレジスタについて前記特定のプロセッサによって前記レジスタ変更有無表示部の表示内容がレジスタ変更表示からレジスタ変更完了表示へ切替わったことが検出された場合に、当該レジスタを用いる処理を実行することを特徴とする請求項6に記載の情報処理装置。 - 前記情報処理装置は、更に、
前記レジスタ変更有無表示部の表示内容がレジスタ変更表示からレジスタ変更完了表示へ切替わったことを検出するとともに、前記複数のプロセッサのうちの特定のプロセッサに対して前記レジスタ変更有無表示部の表示内容がレジスタ変更表示からレジスタ変更完了表示へ切替わったことを通知する切替通知部を有し、
前記複数のプロセッサは、
いずれかのレジスタについて前記切替通知部から前記特定のプロセッサに対して前記レジスタ変更有無表示部の表示内容がレジスタ変更表示からレジスタ変更完了表示へ切替わったことが通知された場合に、当該レジスタを用いる処理を実行することを特徴とする請求項6に記載の情報処理装置。 - 複数のプロセッサに命令エミュレーション処理を実行させる命令エミュレーション装置であって、
プロセッサ数を判定するプロセッサ数判定部と、
前記プロセッサ数判定部により判定されたプロセッサ数に対応させて命令エミュレーション処理を分割する処理分割部と、
前記処理分割部により分割されたそれぞれの処理をプロセッサごとに割付け、割付けた処理をそれぞれのプロセッサに実行させる処理割付部とを有することを特徴とする命令エミュレーション装置。 - 複数のプロセッサに命令エミュレーション処理を実行させる命令エミュレーション処理実行方法であって、
プロセッサ数を判定するプロセッサ数判定ステップと、
前記プロセッサ数判定ステップにより判定されたプロセッサ数に対応させて命令エミュレーション処理を分割する処理分割ステップと、
前記処理分割ステップにより分割されたそれぞれの処理をプロセッサごとに割付け、割付けた処理をそれぞれのプロセッサに実行させる処理割付ステップとを有することを特徴とする命令エミュレーション処理実行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002293478A JP2004127154A (ja) | 2002-10-07 | 2002-10-07 | 情報処理装置及び命令エミュレーション装置及び命令エミュレーション処理実行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002293478A JP2004127154A (ja) | 2002-10-07 | 2002-10-07 | 情報処理装置及び命令エミュレーション装置及び命令エミュレーション処理実行方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004127154A true JP2004127154A (ja) | 2004-04-22 |
Family
ID=32284367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002293478A Pending JP2004127154A (ja) | 2002-10-07 | 2002-10-07 | 情報処理装置及び命令エミュレーション装置及び命令エミュレーション処理実行方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004127154A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006268487A (ja) * | 2005-03-24 | 2006-10-05 | Nec Corp | エミュレーション装置及びエミュレーション方法、並びに、エミュレーションプログラム |
JP2007310546A (ja) * | 2006-05-17 | 2007-11-29 | Nec Computertechno Ltd | エミュレーション方法及びコンピュータシステム |
JP2010191705A (ja) * | 2009-02-18 | 2010-09-02 | Ricoh Co Ltd | 情報処理装置、ソフトウェア動作テストシステム、ソフトウェア動作テスト方法、ソフトウェア動作テストプログラム、及びそのプログラムを記録した記録媒体 |
JP2012083963A (ja) * | 2010-10-12 | 2012-04-26 | Fujitsu Ltd | 情報処理装置、エミュレーション処理プログラム及びエミュレーション処理方法 |
JP2012155582A (ja) * | 2011-01-27 | 2012-08-16 | Toshiba Corp | データ加工・復元システム及びデータ加工・復元方法 |
-
2002
- 2002-10-07 JP JP2002293478A patent/JP2004127154A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006268487A (ja) * | 2005-03-24 | 2006-10-05 | Nec Corp | エミュレーション装置及びエミュレーション方法、並びに、エミュレーションプログラム |
JP2007310546A (ja) * | 2006-05-17 | 2007-11-29 | Nec Computertechno Ltd | エミュレーション方法及びコンピュータシステム |
US8392893B2 (en) | 2006-05-17 | 2013-03-05 | Nec Computertechno, Ltd. | Emulation method and computer system |
JP2010191705A (ja) * | 2009-02-18 | 2010-09-02 | Ricoh Co Ltd | 情報処理装置、ソフトウェア動作テストシステム、ソフトウェア動作テスト方法、ソフトウェア動作テストプログラム、及びそのプログラムを記録した記録媒体 |
JP2012083963A (ja) * | 2010-10-12 | 2012-04-26 | Fujitsu Ltd | 情報処理装置、エミュレーション処理プログラム及びエミュレーション処理方法 |
US8984263B2 (en) | 2010-10-12 | 2015-03-17 | Fujitsu Limited | Information processing device and emulation processing program and method |
JP2012155582A (ja) * | 2011-01-27 | 2012-08-16 | Toshiba Corp | データ加工・復元システム及びデータ加工・復元方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6671827B2 (en) | Journaling for parallel hardware threads in multithreaded processor | |
US20120173849A1 (en) | Methods and Apparatus for Scalable Array Processor Interrupt Detection and Response | |
JPS61107434A (ja) | デ−タ処理装置 | |
US20100050184A1 (en) | Multitasking processor and task switching method thereof | |
JP2007200288A (ja) | 実行スレッドをグループ化するためのシステム及び方法 | |
EP0677188A1 (en) | SYSTEM AND METHOD FOR ASSIGNING LABELS TO INSTRUCTIONS TO CONTROL THE EXECUTION OF INSTRUCTIONS. | |
JP2017037370A (ja) | 計算機、プロセス制御方法およびプロセス制御プログラム | |
JP2019169081A (ja) | 情報処理装置、情報処理方法、プログラム | |
US10379931B2 (en) | Computer system | |
JP3669884B2 (ja) | 処理装置 | |
JP2005050208A (ja) | マルチタスクシステムにおけるメモリ管理方式およびタスク制御装置 | |
KR20070107814A (ko) | 의존성 명령을 패킷으로 그룹핑하여 실행하는 프로세서 및방법 | |
EP2159691A1 (en) | Simultaneous multithreaded instruction completion controller | |
JP2004127154A (ja) | 情報処理装置及び命令エミュレーション装置及び命令エミュレーション処理実行方法 | |
US5634136A (en) | Data processor and method of controlling the same | |
JPS6250934A (ja) | 処理装置の割込制御方式 | |
JP2009175960A (ja) | 仮想マルチプロセッサシステム | |
JP2009193378A (ja) | ベクトル処理装置 | |
EP3591518B1 (en) | Processor and instruction scheduling method | |
US7890740B2 (en) | Processor comprising a first and a second mode of operation and method of operating the same | |
TW201734769A (zh) | 處理向量指令 | |
JP2008140124A (ja) | データ処理装置 | |
JPH07244588A (ja) | データ処理装置 | |
US11681527B2 (en) | Electronic device and multiplexing method of spatial | |
JP2883465B2 (ja) | 電子計算機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040119 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040519 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20041025 |