(57)【特許請求の範囲】
【請求項１】
命令の種類に基づいてリソース競合の対象となる命令を抽出するための命令抽出手段と、
前記命令抽出手段によって抽出された命令のリソース競合の対象となるステージ数を抽出するためのステージ数抽出手段と、
前記命令抽出手段によって抽出された命令のアドレスと前記ステージ数抽出手段によって抽出されたステージ数とに基づいてリソース競合が発生するか否かを判定するための競合判定手段とを含むリソース競合チェック装置。
【請求項２】
前記競合判定手段は、前記命令抽出手段によって抽出された命令のアドレスからトレースを開始し、前記ステージ数抽出手段によって抽出されたステージ数分トレースしてリソース競合のチェックポイントを抽出するためのトレース手段と、
前記トレース手段によって抽出されたチェックポイントに基づいてリソース競合が発生するポイントを抽出するためのチェック手段とを含む、請求項１記載のリソース競合チェック装置。
【請求項３】
前記リソース競合チェック装置はさらに、リソース競合の対象命令の情報を登録するための命令登録手段を含み、
前記命令抽出手段は、命令の種類に基づいてリソース競合の対象命令を前記命令登録手段に登録された情報の中から抽出し、
前記ステージ数抽出手段は、前記命令抽出手段によって抽出された命令のリソース競合の対象ステージ数を前記命令登録手段に登録された情報の中から抽出する、請求項１または２記載のリソース競合チェック装置。
【請求項４】
前記命令抽出手段は、マイクロコードを構成する命令の種類に基づいてリソース競合の対象となる命令を抽出する、請求項１〜３のいずれかに記載のリソース競合チェック装置。
【請求項５】
アセンブリ言語で記述されたプログラムを機械語に変換するためのアセンブリ処理手段と、
前記アセンブリ処理手段によって変換されるアセンブリ言語で記述されたプログラムの命令の種類に基づいてリソース競合の対象となる命令を抽出するための命令抽出手段と、
前記命令抽出手段によって抽出された命令のリソース競合の対象となるステージ数を抽出するためのステージ数抽出手段と、
前記命令抽出手段によって抽出された命令のアドレスと前記ステージ数抽出手段によって抽出されたステージ数とに基づいてリソース競合が発生するか否かを判定するための競合判定手段とを含むアセンブル装置。
【請求項６】
機械語に変換されたプログラムをオブジェクトコードに変換するためのリンク処理手段と、
前記リンク処理手段によってオブジェクトコードに変換されるプログラムの命令の種類に基づいてリソース競合の対象となる命令を抽出するための命令抽出手段と、
前記命令抽出手段によって抽出された命令のリソース競合の対象となるステージ数を抽出するためのステージ数抽出手段と、
前記命令抽出手段によって抽出された命令のアドレスと前記ステージ数抽出手段によって抽出されたステージ数とに基づいてリソース競合が発生するか否かを判定するための競合判定手段とを含むリンク装置。
【請求項７】
プログラム中の命令を更新するためのデバッグ手段と、
前記デバッグ手段によって更新されたプログラムの命令の種類に基づいてリソース競合の対象となる命令を抽出するための命令抽出手段と、
前記命令抽出手段によって抽出された命令のリソース競合の対象となるステージ数を抽出するためのステージ数抽出手段と、
前記命令抽出手段によって抽出された命令のアドレスと前記ステージ数抽出手段によって抽出されたステージ数とに基づいてリソース競合が発生するか否かを判定するための競合判定手段と、
前記デバッグ手段によって更新されたプログラムの命令パイプラインにおける動作をシミュレートするためのシミュレーション手段とを含む命令パイプラインシミュレーション装置。
【請求項８】
命令の種類に基づいてリソース競合の対象となる命令を抽出するステップと、
前記抽出された命令のリソース競合の対象となるステージ数を抽出するステップと、
前記抽出された命令のアドレスと前記抽出されたステージ数とに基づいてリソース競合が発生するか否かを判定するステップとを含むリソース競合チェック方法。
【請求項９】
命令の種類に基づいてリソース競合の対象となる命令を抽出するステップと、
前記抽出された命令のリソース競合の対象となるステージ数を抽出するステップと、
前記抽出された命令のアドレスと前記抽出されたステージ数とに基づいてリソース競合が発生するか否かを判定するステップとを含むリソース競合チェックプログラムを記録した媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、命令パイプラインにより動作するＣＰＵ（Central Processing Unit ）、ＤＳＰ（Digital Signal Processor）等のマイクロコードのリソース競合に関し、特に、命令パイプラインで発生するリソース競合を予め検出するためのリソース競合チェック装置、アセンブル装置、リンク装置、命令パイプラインシミュレーション装置、リソース競合チェック方法、およびリソース競合チェックプログラムを記録した媒体に関する。
【０００２】
【従来の技術】
近年、高性能のコンピュータを実現するために、ハードウェア技術およびソフトウェア技術において種々の機能向上がなされている。ハードウェア技術としては、ＣＰＵ、ＤＳＰ等のプロセッサのクロック周波数の向上等が挙げられる。また、ソフトウェア技術においては、オブジェクトプログラムの実行命令ステップ数の低減を図るためのコンパイラ技術の高度化等が挙げられる。
【０００３】
これらの技術と並んで、１命令当りの平均実行サイクル数を低減させる手法であるパイプライン制御が最も重要な技術の１つとして挙げられる。
【０００４】
【発明が解決しようとする課題】
命令パイプライン方式において、１マシンサイクルごとに１命令の実行が理想であるが、実際にはリソース競合のようなパイプラインの乱れと呼ばれる現象が生じる。この現象として、たとえば、同一のキャッシュメモリへのアクセス要求の競合や同一の演算器の使用による競合等が挙げられる。この現象が起こらないようにマイクロコードを作成しないと、意図した動作を実際のハードウェアで実現することができないか、または性能の低下が起こるという問題が生じる。
【０００５】
本発明は、上記問題点を解決するためになされたものであり、請求項１〜４記載の発明の目的は、リソース競合が発生するか否かを自動的に判定できるリソース競合チェック装置を提供することである。
【０００６】
請求項５に記載の発明の目的は、リソース競合が発生するか否かを自動的に判定できるアセンブル装置を提供することである。
【０００７】
請求項６に記載の発明の目的は、リソース競合が発生するか否かを自動的に判定できるリンク装置を提供することである。
【０００８】
請求項７〜８に記載の発明の目的は、リソース競合が発生するか否かを自動的に判定できる命令パイプラインシミュレーション装置を提供することである。
【０００９】
請求項９記載の発明の目的は、リソース競合が発生するか否かを自動的に判定できるリソース競合チェック方法を提供することである。
【００１０】
請求項１０記載の発明の目的は、リソース競合が発生するか否かを自動的に判定できるリソース競合チェックプログラムを記録した媒体を提供することである。
【００１１】
【課題を解決するための手段】
請求項１に記載のリソース競合チェック装置は、命令の種類に基づいてリソース競合の対象となる命令を抽出するための命令抽出手段と、命令抽出手段によって抽出された命令のリソース競合の対象となるステージ数を抽出するためのステージ数抽出手段と、命令抽出手段によって抽出された命令のアドレスとステージ数抽出手段によって抽出されたステージ数とに基づいてリソース競合が発生するか否かを判定するための競合判定手段とを含む。
【００１２】
競合判定手段は、リソース競合の対象となる命令のアドレスとリソース競合の対象となるステージ数とに基づいてリソース競合が発生するか否かを判定するので、プログラム中の各命令において命令パイプラインにおけるリソース競合が発生するポイントを抽出することが可能となる。
【００１３】
請求項２に記載のリソース競合チェック装置は、請求項１記載のリソース競合チェック装置であって、競合判定手段は命令抽出手段によって抽出された命令のアドレスからトレースを開始し、ステージ数抽出手段によって抽出されたステージ数分トレースしてリソース競合のチェックポイントを抽出するためのトレース手段と、トレース手段によって抽出されたチェックポイントに基づいてリソース競合が発生するポイントを抽出するためのチェック手段とを含む。
【００１４】
請求項３に記載のリソース競合チェック装置は、請求項１または２記載のリソース競合チェック装置であって、リソース競合チェック装置はさらにリソース競合の対象命令の情報を登録するための命令登録手段を含み、命令抽出手段は命令の種類に基づいてリソース競合の対象命令を命令登録手段に登録された情報の中から抽出し、ステージ数抽出手段は命令抽出手段によって抽出された命令のリソース競合の対象ステージ数を命令登録手段に登録された情報の中から抽出する。
【００１５】
請求項４に記載のリソース競合チェック装置は、請求項１〜３のいずれかに記載のリソース競合チェック装置であって、命令抽出手段はマイクロコードを構成する命令の種類に基づいてリソース競合の対象となる命令を抽出する。
【００１６】
請求項５に記載のアセンブル装置は、アセンブリ言語で記述されたプログラムを機械語に変換するためのアセンブリ処理手段と、アセンブリ処理手段によって変換されるアセンブリ言語で記述されたプログラムの命令の種類に基づいてリソース競合の対象となる命令を抽出するための命令抽出手段と、命令抽出手段によって抽出された命令のリソース競合の対象となるステージ数を抽出するためのステージ数抽出手段と、命令抽出手段によって抽出された命令のアドレスとステージ数抽出手段によって抽出されたステージ数とに基づいてリソース競合が発生するか否かを判定するための競合判定手段とを含む。
【００１７】
競合判定手段は、アセンブリ言語で記述されたプログラム中のリソース競合の対象となる命令とリソース競合の対象となるステージ数とに基づいてリソース競合が発生するか否かを判定するので、アセンブリ言語で記述されたプログラムを機械語に変換する前にリソース競合が発生するポイントを抽出することが可能になる。
【００１８】
請求項６に記載のリンク装置は、機械語に変換されたプログラムをオブジェクトコードに変換するためのリンク処理手段と、リンク処理手段によってオブジェクトコードに変換されるプログラムの命令の種類に基づいてリソース競合の対象となる命令を抽出するための命令抽出手段と、命令抽出手段によって抽出された命令のリソース競合の対象となるステージ数を抽出するためのステージ数抽出手段と、命令抽出手段によって抽出された命令のアドレスとステージ数抽出手段によって抽出されたステージ数とに基づいてリソース競合が発生するか否かを判定するための競合判定手段とを含む。
【００１９】
競合判定手段は、オブジェクトコードに変換されるプログラム中のリソース競合の対象となる命令のアドレスとリソース競合の対象となるステージ数とに基づいてリソース競合が発生するか否かを判定するので、機械語に変換されたプログラムをオブジェクトコードに変換する前にリソース競合が発生するポイントを抽出することが可能となる。
【００２０】
請求項７に記載の命令パイプラインシミュレーション装置は、プログラム中の命令を更新するためのデバッグ手段と、デバッグ手段によって更新されたプログラムの命令の種類に基づいてリソース競合の対象となる命令を抽出するための命令抽出手段と、命令抽出手段によって抽出された命令のリソース競合の対象となるステージ数を抽出するためのステージ数抽出手段と、命令抽出手段によって抽出された命令のアドレスとステージ数抽出手段によって抽出されたステージ数とに基づいてリソース競合が発生するか否かを判定するための競合判定手段と、デバッグ手段によって更新されたプログラムの命令パイプラインにおける動作をシミュレートするためのシミュレーション手段とを含む。
【００２１】
競合判定手段によってリソース競合が発生すると判定された命令を、デバッグ手段によって更新することが可能となる。したがって、リソース競合が発生する箇所を改善したプログラムによって、命令パイプラインにおける動作をシミュレートすることが可能となる。
【００２４】
請求項８に記載のリソース競合チェック方法は、命令の種類に基づいてリソース競合の対象となる命令を抽出するステップと、抽出された命令のリソース競合の対象となるステージ数を抽出するステップと、抽出された命令のアドレスと抽出されたステージ数とに基づいてリソース競合が発生するか否かを判定するステップとを含む。
【００２５】
請求項９に記載のリソース競合チェックプログラムを記録した媒体は、命令の種類に基づいてリソース競合の対象となる命令を抽出するステップと、抽出された命令のリソース競合の対象となるステージ数を抽出するステップと、抽出された命令のアドレスと抽出されたステージ数とに基づいてリソース競合が発生するか否かを判定するステップとを含む。
【００２６】
【発明の実施の形態】
図１は、本発明のリソース競合チェック装置の外観を示す図である。リソース競合チェック装置は、コンピュータ本体１、グラフィックディスプレイ装置２、磁気テープ装置３、磁気テープ４、キーボード５、マウス６、ＣＤ−ＲＯＭ（Compact Disk-Reat Only Memory ）装置７、ＣＤ−ＲＯＭ８、および通信モデム９を含む。リソース競合チェックプログラムは、磁気テープ４またはＣＤ−ＲＯＭ８等の記録媒体によって供給される。リソース競合チェックプログラムはコンピュータ本体１によって実行され、操作者はグラフィックディスプレイ装置２を見ながらキーボード５またはマウス６を操作することによってリソース競合のチェックを行なう。また、リソース競合チェックプログラムは他のコンピュータにより通信回線を経由し、通信モデム９を介してコンピュータ本体１に供給されてもよい。
【００２７】
図２は、本発明のリソース競合チェック装置の構成を示すブロック図である。図１に示すコンピュータ本体１は、ＣＰＵ１０、ＲＯＭ（Read Only Memory）１１、ＲＡＭ（Random Access Memory）１２およびハードディスク１３を含む。ＣＰＵ１０は、グラフィックディスプレイ装置２、磁気テープ装置３、キーボード５、マウス６、ＣＤ−ＲＯＭ装置７、通信モデム９、ＲＯＭ１１、ＲＡＭ１２またはハードディスク１３との間でデータを入出力しながら処理を行なう。磁気テープ４またはＣＤ−ＲＯＭ８に記録されたリソース競合チェックプログラムは、ＣＰＵ１０によって磁気テープ装置３またはＣＤ−ＲＯＭ装置７を介して一旦ハードディスク１３に格納される。ＣＰＵ１０は、ハードディスク１３から適宜リソース競合チェックプログラムをＲＡＭ１２にロードして実行することによってリソース競合のチェックが行なわれる。以下、本発明の各実施の形態におけるリソース競合チェック装置について説明するが、図１に示すリソース競合チェック装置の外観および図２に示すリソース競合チェック装置の構成ブロック図は各実施の形態において共通である。
【００２８】
［実施の形態１］
図３は、本発明の実施の形態１におけるリソース競合チェック装置の概略構成を示す図である。リソース競合チェック装置は、マイクロコードが入力される入力部３１、マイクロコードを構成する命令のリソース競合をチェックするためのリソース競合チェック部３２、リソース競合チェック部３２によってチェックされた結果を出力するための出力部３３、および各種テーブルの情報を記憶するための記憶部３４を含む。
【００２９】
入力部３１は、マイクロコードが入力されるマイクロコード入力部３５を含む。リソース競合チェック部３２は、入力部３１に入力されたマイクロコードを構成する命令の中からリソース競合のチェックが必要な命令を抽出し、当該命令のアドレスおよび競合の起こり得るステージ数等の始点情報を設定するための始点情報設定部３６、始点情報設定部３６によって設定された始点情報に基づいてトレースを行なうためのトレース部３７、およびリソース競合が発生するか否かを判定するためのチェック部３８を含む。記憶部３４は、マイクロコードを構成する命令および当該命令の次にフェッチされる命令を格納するための命令情報格納テーブル３９、リソース競合が発生し得る命令のチェック項目およびステージ数を格納するためのリソース競合チェック対応テーブル４０、始点情報設定部３６によって設定された始点情報を格納するための始点情報格納テーブル４１、およびリソース競合が発生する命令のチェックポイントおよびチェック項目を格納するためのチェックポイント設定テーブル４２を含む。
【００３０】
マイクロコード入力部３５は、入力されたマイクロコードを構成する命令を命令情報格納テーブル３９に格納する。始点情報設定部３６は、マイクロコード入力部３５に入力されたマイクロコードを構成する命令が入力され、各命令の次のサイクルでフェッチされる命令の情報を命令情報格納テーブル３９に格納するとともに、リソース競合チェック対応テーブル４０を参照することにより、リソース競合のチェックが必要な命令を抽出し、当該命令のアドレス、チェック項目、および競合の起こり得るステージ数を始点情報格納テーブル４１に格納し、トレース部３７におけるトレースの始点情報としてスタックに格納する。
【００３１】
トレース部３７は、始点情報設定部３６によってスタックに格納された始点情報に基づいて、当該命令のアドレスからリソース競合の起こり得るステージ数までトレースし、トレース結果をチェックポイントとしてチェックポイント設定テーブル４２に設定する。チェック部３８は、トレース部３７によって設定されたチェックポイントに基づいて、リソース競合が発生するか否かを判定し、その判定結果を出力部３３に出力する。
【００３２】
図４は、本発明の実施の形態１におけるリソース競合チェック装置の処理手順を示すフローチャートである。まず、マイクロコード入力部３５は、マイクロコードを構成する命令を入力し、命令を命令情報格納テーブル３９に格納する（Ｓ１）。始点情報設定部３６は、命令情報格納テーブル３９に格納された命令に基づいて、次のサイクルでフェッチされる命令の情報を命令情報格納テーブル３９に追加する。そして、リソース競合チェック対応テーブル４０を参照してリソース競合のチェックの必要な命令を抽出し、当該命令のチェック項目、競合の起こり得るステージ数をリソース競合チェック対応テーブル４０から抽出し、始点情報格納テーブル４１に格納するとともに、トレースの始点情報としてスタックに格納する（Ｓ２）。
【００３３】
次に、トレース部３７は、ステップＳ２でスタックに格納された命令に基づいて、当該命令のアドレスからリソース競合が発生するステージ数だけトレースし、トレース結果であるチェックポイントをチェックポイント設定テーブル４２に格納する（Ｓ３）。そして、チェック部３８は、ステップＳ３で設定されたチェックポイントに基づいて、リソース競合が発生するか否かを判定する（Ｓ４）。最後に、出力部３３は、ステップＳ４における判定結果を出力する。
【００３４】
図５は、図４のステップＳ１をより詳細に説明するためのフローチャートである。マイクロコード入力部３５は、入力されたマイクロコードを構成する命令を命令情報格納テーブル３９に格納する。また、始点情報設定部３６は、図６に示すように命令と命令のアドレスとから、次にフェッチされる命令を決定し命令情報格納テーブル３９に格納する（Ｓ１１）。
【００３５】
図７は、図４のステップＳ２の処理手順をより詳細に示すフローチャートである。始点情報設定部３６は、命令情報格納テーブル３９から命令を１つ取出し（Ｓ２１）、取出すべき命令がない場合は、すべての命令について処理したと判断し（Ｓ２２，Ｙｅｓ）、図４のステップＳ３に処理が進む。ステップＳ２１において取出された命令が最後の命令でない場合は（Ｓ２２，Ｎｏ）、当該命令がリソース競合のチェック対象命令であるか否かを判断する。
【００３６】
当該命令がリソース競合のチェック対象命令である場合（Ｓ２３，Ｙｅｓ）は、リソース競合のチェック項目およびリソース競合が発生し得るステージ数を始点情報格納テーブル４１に設定し、その情報をスタックに格納し、ステップＳ２５へ進む。また、取出した命令がリソース競合のチェック対象命令でない場合（Ｓ２３，Ｎｏ）、次にフェッチされる命令の情報を命令情報格納テーブル３９に格納し、ステップＳ２１に戻り以上の処理を繰返す。
【００３７】
図８は、図４のステップＳ３の処理手順をより詳細に説明するためのフローチャートである。まず、スタックから始点情報を１つ取出す（Ｓ３１）。スタックが空の場合（Ｓ３２，Ｙｅｓ）、図４のステップＳ４へ進む。また、スタックが空でない場合（Ｓ３２，Ｎｏ）、スタックからチェック項目を取出し（Ｓ３３）、チェック項目があるか否かを判定する（Ｓ３４）。
【００３８】
スタックにチェック項目がない場合（Ｓ３４，Ｎｏ）、ステップＳ３１へ戻り以上の処理を繰返す。また、スタックにチェック項目がある場合（Ｓ３４，Ｙｅｓ）、当該命令のアドレスからリソース競合が発生し得るステージ数だけトレースし（Ｓ３５）、このポイントをチェックポイントとしてチェックポイント設定テーブル４２に登録し（Ｓ３６）、ステップＳ３３へ戻り以上の処理を繰返す。
【００３９】
図９は、図４のステップＳ４の処理手順をより詳細に説明するためのフローチャートである。まず、チェック部３８は、チェックポイント設定テーブル４２からチェックポイント情報を取出す（Ｓ４１）。チェックポイント設定テーブル４２にチェックポイントがない場合（Ｓ４２，Ｎｏ）、図４のステップＳ５へ進む。また、チェックポイント設定テーブル４２にチェックポイントがある場合（Ｓ４２，Ｙｅｓ）、チェック項目を取出す（Ｓ４３）。
【００４０】
チェックポイント設定テーブル４２にチェック項目がない場合（Ｓ４４，Ｎｏ）、ステップＳ４１へ戻り以上の処理を繰返す。また、チェックポイント設定テーブル４２にチェック項目がある場合（Ｓ４４，Ｙｅｓ）、チェックポイントに基づいてリソース競合が発生するか否かのチェックを行ない（Ｓ４５）、ステップＳ４３へ戻り以上の処理を繰返す。
【００４１】
次に、図１０に示すマイクロコードがマイクロコード入力部３５に入力された場合のリソース競合チェック装置の具体的な処理を、図１１〜図１５に示す各種テーブルの内容を適宜参照しながら説明する。
【００４２】
マイクロコード入力部３５は、図１０に示すマイクロコードを構成する命令が入力された場合、図１２に示す命令情報格納テーブルにアドレスと命令を格納する。また、始点情報設定部３６は、図１０のマイクロコードを構成する命令に基づいて、図１２に示すように次にフェッチされる命令の情報を命令情報格納テーブル３９に格納する。
【００４３】
図１２に示す命令の中で、０番地および５番地のＭＶ命令は、図１１に示すようにステージ数３で書込競合が発生する命令である。また１番地のＡＤＤ命令は、図１１に示すようにステージ数６において演算器競合が発生し、ステージ数７において書込競合が発生する命令である。
【００４４】
まず、マイクロコード入力部３５は、図１０に示すマイクロコードが入力され、命令情報格納テーブル３９に図１２に示すアドレスおよび命令を格納する（Ｓ１１）。
【００４５】
始点情報設定部３６は、命令情報格納テーブル３９から０番地のＭＶ命令を取出す（Ｓ２１）。始点情報設定部３６は、図１１に示すリソース競合チェック対応テーブル４０を参照することにより、０番地のＭＶ命令がリソース競合のチェック対象命令であると判定し（Ｓ２３，Ｙｅｓ）、図１３に示すように始点情報格納テーブル４１に、アドレス“０”、命令“ＭＶ”、チェック項目“書込競合”、およびステージ数“３”を設定し、スタックに格納する（Ｓ２４）。
【００４６】
そして、０番地のＭＶ命令の次にフェッチされる命令は、ＡＤＤ命令であるので、次にフェッチされる命令としてＡＤＤを命令情報格納テーブル３９に格納する（Ｓ２５）。そして、ステップＳ２１に戻り、命令情報格納テーブル３９から１番地のＡＤＤ命令を取出す（Ｓ２１）。始点情報設定部３６は、リソース競合チェック対応テーブル４０を参照することにより、ＡＤＤ命令がリソース競合のチェック対象命令であると判定し、始点情報格納テーブル４１に、アドレス“１”、命令“ＡＤＤ”、チェック項目“演算器競合”、およびステージ数“６”を格納する。また、ＡＤＤ命令は書込競合も発生し得る命令であるので、始点情報格納テーブル４１に、チェック項目“書込競合”、およびステージ数“７”を設定し、スタックに格納する（Ｓ２４）。そして、始点情報設定部３６は、ＡＤＤ命令の次にフェッチされる命令として、ＪＡ命令を命令情報格納テーブル３９に格納する（Ｓ２５）。
【００４７】
次に、始点情報設定部３６は、命令情報格納テーブル３９から２番地のＪＡ命令を取出す（Ｓ２１）。始点情報設定部３６は、リソース競合チェック対応テーブル４０を参照することにより、ＪＡ命令がリソース競合のチェック対象命令でないと判定し（Ｓ２３，Ｎｏ）、次にフェッチされる５番地のＭＶ命令を命令情報格納テーブル３９に格納する（Ｓ２５）。
【００４８】
以上の処理を繰返し、始点情報設定部３６は、図１２に示す命令情報格納テーブル３９および図１３に示す始点情報格納テーブル４１を作成し記憶部３４にそれぞれ格納する。このときスタックに格納される情報を図１４に示す。
【００４９】
次に、トレース部３７は、スタックから始点情報Ｇ１を取出す（Ｓ３１）。そして、トレース部３７は、チェック項目としてＧ１に対応する書込競合を取出す（Ｓ３３）。そして、トレース部３７は、アドレス０からステージ数３だけトレースし、書込競合が発生し得るポイントとして、チェックポイント“２”をチェックポイント設定テーブル４２に登録する。トレース部３７は、図１２に示す命令情報格納テーブルに格納される次にフェッチされる命令の情報に基づいてトレースを行なう。
【００５０】
次に、トレース部３７は、スタックからＧ２の始点情報を取出し（Ｓ３１）、ＡＤＤ命令のトレースを行ない（Ｓ３５）、チェック項目である演算器競合のチェックポイント“６”および書込競合のチェックポイント“７”をチェックポイント設定テーブル４２に登録する（Ｓ３６）。
【００５１】
同様に、トレース部３７は、スタックからＧ３のＭＶ命令を取出し（Ｓ３１）、トレースを行ない（Ｓ３５）、ＭＶ命令のチェックポイント“７”を図１５に示すようにチェックポイント設定テーブル４２に登録する（Ｓ３６）。
【００５２】
次に、チェック部３８は、チェックポイント設定テーブル４２からチェックポイント“２”のデータを取出す（Ｓ４１）。チェックポイントが“２”のデータは、チェックポイント設定テーブル４２内には１つのみであるので、リソース競合は発生しないと判定される（Ｓ４５）。また、チェックポイント“６”のデータもチェックポイント設定テーブル４２内に１つのみであるので、チェックポイント“６”においてリソース競合が発生しないと判定される。しかし、チェックポイント“７”のデータは、チェックポイント設定テーブル４２内にＡＤＤ命令の“書込競合”とＭＶ命令の“書込競合”の２つがあるので、リソース競合が発生するポイントとして抽出される（Ｓ４５）。
【００５３】
出力部３３は、チェック部３８で抽出されたリソース競合が発生するポイントを出力する（Ｓ５）。そして処理を終了する。
【００５４】
本実施の形態においては、リソース競合のチェック対象としてマイクロコードを構成する命令を例にとって説明したが、通常のアセンブラ言語で作成された命令あるいは高級言語で作成されたプログラムをコンパイルしたプログラム等に適用することも可能である。
【００５５】
以上説明したように、本実施の形態におけるリソース競合チェック装置は、従来人手で行なっていたリソース競合のチェックを自動的に行なえるようにしたので、マイクロコードの開発期間の短縮が可能となった。
【００５６】
［実施の形態２］
図１６は、本発明の実施の形態２におけるリソース競合チェック装置の概略構成を示すブロック図である。本実施の形態におけるリソース競合チェック装置は、図３に示す実施の形態１におけるリソース競合チェック装置と比較して、入力部にリソース競合情報入力部４３を追加した点においてのみ異なる。したがって、本実施の形態における入力部の参照符号を３１′とする。また、それ以外の部分の構成および機能は図３に示す実施の形態１におけるリソース競合チェック装置の部分と同じであるので、詳細な説明は繰返さない。
【００５７】
図１７は、本実施の形態におけるリソース競合チェック装置の入力部３１′における処理手順（図４のステップＳ１）の詳細を説明するためのフローチャートである。まず、マイクロコード入力部３５はマイクロコードを構成する命令を入力し、リソース競合情報入力部４３はリソース競合情報を入力する（Ｓ１２）。リソース競合情報とは、図１１に示すリソース競合チェック対応テーブル４０の内容を更新するための情報であり、リソース競合が起こり得るステージ数やチェック項目等が変更になった場合に、容易に変更できる情報である。
【００５８】
次に、マイクロコード入力部３５は、マイクロコードを構成する命令を命令情報格納テーブル３９に格納する。リソース競合情報入力部４３は、リソース競合情報をリソース競合チェック対応テーブル４０に格納する（Ｓ１３）。そして、図４のステップＳ２へ進み、以下の処理を行なう。
【００５９】
リソース競合情報入力部４３は、図１１に示すリソース競合チェック対応テーブル４０の内容を、図１８に示すリソース競合チェック情報に更新した場合、図４のステップＳ２〜Ｓ４の処理によって、図１９に示す始点情報が始点情報格納テーブル４１に格納され、図２０に示すチェックポイントがチェックポイント設定テーブル４２に格納される。図２０のチェックポイント設定テーブル４２に格納される情報に示すとおり、重複するチェックポイントがないので、チェック部３８はリソース競合が発生しないことを出力し、出力部３３はその旨を出力する。
【００６０】
以上説明したように、本実施の形態におけるリソース競合チェック装置は、リソース競合が発生し得るステージ数やチェック項目等を容易に変更して再チェックすることが可能となるので、マイクロコードの開発期間の短縮が可能となる。
【００６１】
［実施の形態３］
図２１は、本発明の実施の形態３におけるアセンブル装置の概略構成を示すブロック図である。アセンブル装置は、アセンブリ言語で記述されたプログラムを機械語に変換するためのアセンブリ処理部５２、およびリソース競合が発生するか否かを判定するためのリソース競合チェック装置３０を含む。リソース競合チェック装置３０は図３に示す実施の形態１におけるリソース競合チェック装置３０と構成および機能が同じであるので、詳細な説明は繰返さない。
【００６２】
アセンブリ言語で記述されたプログラムは、リソース競合チェック装置３０に入力されリソース競合が発生するか否かが判定される。また、アセンブリ言語で記述されたプログラムは、アセンブリ処理部５２によって機械語に変換され、リンク装置５３に入力される。リンク装置５３内のリンク処理部５４は、入力された機械語からオブジェクトコードを生成し出力する。
【００６３】
以上説明したように、本実施の形態におけるアセンブル装置は、アセンブラ言語でプログラムを記述する際に、同時にリソース競合のチェックが行なえ、プログラムの開発期間の短縮が可能となる。
【００６４】
［実施の形態４］
実施の形態４におけるアセンブル装置は、図２１に示す実施の形態３におけるアセンブル装置の構成と同じである。ただし、リソース競合チェック装置は、図１６に示す実施の形態２におけるリソース競合チェック装置３０′である点においてのみ異なる。したがって、重複する部分の構成および機能の詳細な説明は繰返さない。
【００６５】
本実施の形態におけるアセンブル装置は、実施の形態３において説明した効果に加えて、命令パイプラインの動作の変更を容易に行なえるという効果を奏する。
【００６６】
［実施の形態５］
図２２は、実施の形態５におけるリンク装置の概略構成を示すブロック図である。リンク装置５６は、入力された機械語からオブジェクトコードを生成するためのリンク処理部５４、およびリソース競合が発生するか否かを判定するためのリソース競合チェック装置３０を含む。
【００６７】
リンク装置５６内のリンク処理部５４は、アセンブル装置５５から入力された機械語からオブジェクトコードを生成する。生成されたオブジェクトコードは、リソース競合チェック装置３０に入力され、リソース競合が発生するか否かが判定される。このように、本実施の形態におけるリンク装置５６は、オブジェクトコード全体に対してリソースの競合が発生するか否かをチェックできる。
【００６８】
たとえば図２３に示すマイクロコードと、図１０に示すマイクロコードがリンク装置５６に入力された場合、図２４に示すオブジェクトコードを生成し、リソース競合チェック装置３０は図２４のオブジェクトコードの０番地のＡＤＤ命令と３番地のＭＶ命令とで書込競合が発生することを検出することが可能となる。
【００６９】
以上説明したように、本実施の形態におけるリンク装置は、生成されたオブジェクトコード全体に対してリソース競合が発生するか否かを判定することが可能となり、マイクロコードの開発期間の短縮が可能となる。
【００７０】
［実施の形態６］
本発明の実施の形態６におけるリンク装置は、図２２に示す実施の形態５におけるリンク装置の構成と同じである。ただし、リソース競合チェック装置が図１６に示す実施の形態２におけるリソース競合チェック装置３０′に置換されている点においてのみ異なる。したがって、重複する構成および機能の詳細な説明は繰返さない。
【００７１】
本実施の形態のおけるリンク装置は、実施の形態５で説明した効果に加えて、命令パイプラインにおける動作の変更が容易に行なえるという効果を奏する。
【００７２】
［実施の形態７］
図２５は、本発明の実施の形態７におけるアセンブル装置およびリンク装置の概略構成を示すブロック図である。アセンブル装置５１は、図２１に示す実施の形態３におけるアセンブル装置と、リンク装置５６は図２２に示す実施の形態５におけるリンク装置と構成および機能が同じであるので、詳細な説明は繰返さない。図２５に示す構成にすることによって、アセンブリ言語でプログラムを作成する際にリソース競合のチェックが可能となるとともに、生成されたオブジェクトコード全体に対するリソース競合のチェックも行なえるという効果を奏する。
【００７３】
［実施の形態８］
本発明の実施の形態８におけるアセンブル装置およびリンク装置は、図２５に示す実施の形態７におけるアセンブル装置およびリンク装置の構成と同じである。ただし、リソース競合チェック装置３０が図１６に示す実施の形態２におけるリソース競合チェック装置３０′に置換されている点においてのみ異なる。したがって、重複する構成および機能の詳細な説明は繰返さない。
【００７４】
本実施の形態におけるアセンブル装置およびリンク装置は、実施の形態７において説明した効果に加えて、命令パイプラインの動作を容易に変更することができるという効果を奏する。
【００７５】
［実施の形態９］
図２６は、実施の形態９における命令パイプラインシミュレーション装置の概略構成を示すブロック図である。命令パイプラインシミュレーション装置は、プログラム中の命令を更新するためのデバッグ部６２、命令パイプラインの動作をシミュレートするためのシミュレーション部６３、およびリソース競合が発生するか否かを判定するためのリソース競合チェック装置３０を含む。リソース競合チェック装置３０は、図３に示す実施の形態１におけるリソース競合チェック装置と構成および機能は同じであるので、詳細な説明は繰返さない。
【００７６】
プログラマは、作成したプログラムを実行して、レジスタの内容表示等を参照しながらプログラムのデバッグを行なう。デバッグ部６２によって更新されたプログラムは、リソース競合チェック装置３０に入力され、実施の形態１において説明したリソース競合のチェックを行なう。そして、プログラマはデバッグが終了した時点で、作成されたプログラムをシミュレーション部６３に入力し、命令パイプラインの動作をシミュレートする。
【００７７】
以上説明したように、本実施の形態における命令パイプラインシミュレーション装置は、プログラムの変更時にリソース競合のチェックが行なえ、リソース競合チェック後のプログラムをシミュレートできるという効果を奏する。
【００７８】
［実施の形態１０］
実施の形態１０における命令パイプラインシミュレーション装置は、図２６に示す実施の形態９における命令パイプラインシミュレーション装置の構成と同じである。ただし、リソース競合チェック装置３０が図１６に示す実施の形態２におけるリソース競合チェック装置３０′に置換された点においてのみ異なる。したがって、重複する部分の構成および機能は同じであるので、詳細な説明は繰返さない。
【００７９】
本実施の形態における命令パイプラインシミュレーション装置は、実施の形態９で説明した効果に加えて、命令パイプラインの動作の変更を容易に行なえるという効果を奏する。
【００８０】
［実施の形態１１］
図２７は、本発明の実施の形態１１における命令パイプラインシミュレーション装置の概略構成を示すブロック図である。命令パイプラインシミュレーション装置は、マイクロコードを構成する命令を更新するためのデバッグ部６２、および命令パイプラインの動作をシミュレートするためのシミュレーション部７２を含む。また、シミュレーション部７２は、プログラムカウンタが示しているアドレスの命令を設定するための命令設定部７３、および命令パイプラインにおける各ステージの処理を解析するための命令解析部７４を含む。
【００８１】
図２９は、本発明の実施の形態１１における命令パイプラインシミュレーション装置の処理手順を示すフローチャートである。まず、命令設定部７３はプログラムカウンタに０を設定する（Ｓ５０）。命令設定部７３は、プログラムカウンタが示すアドレスから命令を読出し（Ｓ５１）、命令があるか否かを判定する（Ｓ５２）。
【００８２】
プログラムカウンタが示すアドレスに命令がなければ（Ｓ５２，Ｎｏ）、処理を終了する。また、プログラムカウンタが示すアドレスに命令があれば（Ｓ５２，Ｙｅｓ）、読出した命令をリストへ登録する（Ｓ５３）。そして、命令設定部７３は、プログラムカウンタの値をインクリメントする（Ｓ５４）。
【００８３】
次に、命令解析部７４は、リストから命令を取出し（Ｓ５５）、解析が終了していない命令があるか否かを判定する（Ｓ５６）。
【００８４】
命令解析部７４は、解析の終了していない命令がない場合は（Ｓ５６，Ｎｏ）、ステップＳ５１に戻り以上の処理を繰返す。また、命令解析部７４は、解析が終了していない命令がある場合（Ｓ５６，Ｙｅｓ）、命令に対応する処理を実行する（Ｓ５７）。そして、命令解析部７４は、命令の解析においてリソースの競合が発生するか否かを判定する（Ｓ５８）。
【００８５】
命令解析部７４は、次ステージの処理を設定し（Ｓ５９）、命令の命令パイプラインにおける処理が終了したか否かを判定する（Ｓ６０）。
【００８６】
命令パイプラインにおける命令の処理が終了した場合（Ｓ６０，Ｙｅｓ）、リストから当該命令を削除し（Ｓ６１）、ステップＳ５５に戻り以上の処理を繰返す。また、命令パイプラインにおける命令の処理が終了していない場合（Ｓ６０，Ｎｏ）、ステップＳ５５に戻り以上の処理を繰返す。
【００８７】
次に、図２９に示すフローチャートの処理を、図３０を用いて具体的に説明する。図３０（ａ）〜（ｈ）は、図１０に示すプログラムの命令の命令パイプラインにおける各ステージの処理を示す図である。
【００８８】
（１）  １サイクル目（ＰＣ＝０）
まず、プログラムカウンタに０を設定する（Ｓ５０）。そして、命令設定部７３は、アドレス０番地からＭＶ命令を取出す（Ｓ５１）。命令設定部７３は、ＭＶ命令をリストに登録し（Ｓ５３）、プログラムカウンタをインクリメントする（Ｓ５４）。このときの命令パイプラインにおける各ステージの状態は図３０（ａ）に示すものとなる。
【００８９】
（２）  ２サイクル目（ＰＣ＝１）
命令設定部７３は、プログラムカウンタが示す１番地からＡＤＤ命令を取出し（Ｓ５１）、ＡＤＤ命令をリストへ登録する（Ｓ５３）。命令解析部７４は、リストからＭＶ命令を取出し（Ｓ５５）、ＭＶ命令に対応する第２ステージの処理を行なう（Ｓ５７）。この時点で命令パイプラインにおける各ステージの状態は図３０（ｂ）に示すものとなる。
【００９０】
（３）  ３サイクル目（ＰＣ＝２）
命令設定部７３は、プログラムカウンタが示す２番地からＪＡ命令を読出し（Ｓ５１）、ＪＡ命令をリストへ登録する（Ｓ５３）。命令解析部７４は、リストからＭＶ命令を取出し（Ｓ５５）、ＭＶ命令の第３ステージの処理を行なう（Ｓ５７）。ＭＶ命令の処理は、第３ステージで終了するので、命令解析部７４はリストからＭＶ命令を削除する（Ｓ６１）。また、命令解析部７４は、リストからＡＤＤ命令を取出し（Ｓ５５）、ＡＤＤ命令の第２ステージの処理を行なう（Ｓ５７）。このときの命令パイプラインにおける各ステージの状態は図３０（ｃ）となる。
【００９１】
（４）  ４サイクル目（ＰＣ＝３）
命令設定部７３は、プログラムカウンタが示す３番地からＮＯＰ命令を読出し（Ｓ５１）、ＮＯＰ命令をリストへ登録する（Ｓ５３）。命令解析部７４は、リストからＡＤＤ命令を取出し（Ｓ５５）、ＡＤＤ命令の第３ステージの処理を行なう（Ｓ５７）。また、命令解析部７４は、リストからＪＡ命令を取出し（Ｓ５５）、ＪＡ命令の第２ステージの処理を行なう（Ｓ５７）。命令解析部７４は、ＪＡ命令を処理することによってプログラムカウンタに５を設定する。また、ＪＡ命令は第２ステージで終了する命令であるので、命令解析部７４はリストからＪＡ命令を削除する。このときの命令パイプラインにおける各ステージの状態は、図３０（ｄ）となる。
【００９２】
（５）  ５サイクル目（ＰＣ＝５）
命令設定部７３は、プログラムカウンタが示す５番地からＭＶ命令を取出し（Ｓ５１）、ＭＶ命令をリストへ登録する（Ｓ５３）。命令解析部７４は、リストからＡＤＤ命令を取出し（Ｓ５５）、ＡＤＤ命令の第４ステージの処理を行なう。また、命令解析部７４は、リストからＮＯＰ命令を取出し（Ｓ５５）、ＮＯＰ命令の第２ステージの処理を行なう。ＮＯＰ命令は第２ステージで処理を終了する命令であるので、命令解析部７４はＮＯＰ命令をリストから削除する（Ｓ６１）。このときの命令パイプラインにおける各ステージの状態は、図３０（ｅ）に示すものとなる。
【００９３】
（６）  ６サイクル目（ＰＣ＝６）
命令設定部７３は、プログラムカウンタが示す６番地からＮＯＰ命令を読出し（Ｓ５１）、ＮＯＰ命令をリストへ登録する（Ｓ５３）。命令解析部７４は、リストからＡＤＤ命令を取出し（Ｓ５５）、ＡＤＤ命令の第５ステージの処理を行なう（Ｓ５７）。また、命令解析部７４は、リストからＭＶ命令を取出し（Ｓ５５）、ＭＶ命令の第２ステージの処理を行なう（Ｓ５７）。このときの命令パイプラインにおける各ステージの状態は図３０（ｆ）に示すものとなる。
【００９４】
（７）  ７サイクル目（ＰＣ＝７）
命令設定部７３は、プログラムカウンタが示す７番地からＮＯＰ命令を読出し（Ｓ５１）、ＮＯＰ命令をリストへ登録する（Ｓ５３）。命令解析部７４は、リストからＡＤＤ命令を取出し（Ｓ５５）、ＡＤＤ命令の第６ステージの処理を行なう。ＡＤＤ命令は第６ステージで処理を終了するので、命令解析部７４はＡＤＤ命令をリストから削除する（Ｓ６１）。また、命令解析部７４は、リストからＭＶ命令を取出し（Ｓ５５）、ＭＶ命令の第３ステージの処理を行なう（Ｓ５７）。命令解析部７４は、ＭＶ命令の第３ステージの書込とＡＤＤ命令の第６ステージの書込とにおいて競合が発生するのを検出し、その結果を出力する（Ｓ５８）。また、命令解析部７４は、リストからＮＯＰ命令を取出し（Ｓ５５）、ＮＯＰ命令の第２ステージの処理を行なう（Ｓ５７）。ＮＯＰ命令は第２ステージで処理を終了する命令であるので、命令解析部７４はリストからＮＯＰ命令を削除する（Ｓ６１）。このときの命令パイプラインにおける各ステージの状態を図３０（ｇ）に示す。
【００９５】
（８）  ８サイクル目（ＰＣ＝８）
命令設定部７３は、プログラムカウンタが示す８番地からＮＯＰ命令を読出し（Ｓ５１）、ＮＯＰ命令をリストへ登録する（Ｓ５３）。命令解析部７４は、リストからＮＯＰ命令を取出し（Ｓ５５）、ＮＯＰ命令の第２ステージの処理を行なう（Ｓ５７）。ＮＯＰ命令は第２ステージで処理を終了するので、命令解析部７４はリストからＮＯＰ命令を削除する（Ｓ６１）。
【００９６】
（９）  ９サイクル目（ＰＣ＝９）
命令設定部７３は、プログラムカウンタが示す９番地に命令が格納されていないことを検出し（Ｓ５２，Ｎｏ）、処理を終了する。
【００９７】
以上説明したように、本実施の形態における命令パイプラインシミュレーション装置は、命令を解析しながら命令パイプラインにおける処理をシミュレートするので、データに依存するようなリソース競合を検出することが可能となる。
【００９８】
［実施の形態１２］
図２８は、本発明の実施の形態１２における命令パイプラインシミュレーション装置の概略構成を示す図である。リソース競合チェック装置３０は、図３に示す実施の形態１におけるリソース競合チェック装置と同じ構成および機能であるので詳細な説明は繰返さない。また、デバッグ部６２およびシミュレーション部７２は、図２７に示す実施の形態１１における命令パイプラインシミュレーション装置のデバッグ部およびシミュレーション部と同じ構成および機能を有するので、詳細な説明は繰返さない。
【００９９】
本実施の形態における命令パイプラインシミュレーション装置は、実施の形態１において説明したのと同じくデータに依存しないリソース競合を検出することが可能であり、また実施の形態１１において説明したデータに依存して発生するリソース競合をも検出することが可能であるという効果を奏する。
【０１００】
［実施の形態１３］
本発明の実施の形態１３における命令パイプラインシミュレーション装置は、図２８に示す実施の形態１２における命令パイプラインシミュレーション装置の構成および機能と同じである。ただし、リソース競合チェック装置は、図１６に示す実施の形態２におけるリソース競合チェック装置３０′に置換されている点においてのみ異なる。
【０１０１】
本実施の形態における命令パイプラインシミュレーション装置は、実施の形態１２において説明した効果に加えて、命令パイプラインの動作の変更が容易に行なえるという効果も奏する。
【０１０２】
【発明の効果】
請求項１〜４におけるリソース競合チェック装置によれば、命令のアドレスとリソース競合の対象となるステージ数とに基づいてリソース競合が発生するか否かを判定するようにしたので、従来人手てチェックを行なっていたリソース競合を自動的に行なえ、プログラムの開発期間の短縮が可能となった。
【０１０３】
請求項５におけるアセンブル装置によれば、命令のアドレスとリソース競合の対象となるステージ数とに基づいてリソース競合が発生するか否かを判定するようにしたので、アセンブル言語で作成されるプログラムにおいて発生するリソース競合を早期に検出することが可能となった。
【０１０４】
請求項６におけるリンク装置によれば、命令のアドレスと命令のリソース競合の対象となるステージ数とに基づいてリソース競合が発生するか否かを判定するようにしたので、作成されたオブジェクトコードにおいて発生するリソース競合を早期に検出することが可能となった。
【０１０５】
請求項７における命令パイプラインシミュレート装置によれば、命令のアドレスと命令のリソース競合の対象となるステージ数とに基づいてリソース競合が発生するか否かを判定するようにしたので、プログラムのデバッグ時に適宜リソース競合が発生するか否かを判定することが可能となり、プログラムの開発の早期においてリソース競合の検出が可能となった。
【０１０７】
請求項８におけるリソース競合チェック方法によれば、命令のアドレスと命令のリソース競合の対象となるステージ数とに基づいてリソース競合が発生するか否かを判定するようにしたので、従来人手でチェックしていたリソース競合を自動的に行なえるようになり、プログラムの開発期間の短縮が可能となった。
【０１０８】
請求項９におけるリソース競合チェックプログラムを記録した媒体によれば、命令のアドレスと命令のリソース競合の対象となるステージ数とに基づいてリソース競合が発生するか否かを判定するようにしたので、従来人手でチェックを行なっていたリソース競合が自動的に行なえるようになり、プログラムの開発期間の短縮が可能となった。
【図面の簡単な説明】
【図１】  本発明のリソース競合チェック装置の外観を示す図である。
【図２】  本発明のリソース競合チェック装置の構成を示すブロック図である。
【図３】  本発明の実施の形態１におけるリソース競合チェック装置の構成を示すブロック図である。
【図４】  実施の形態１におけるリソース競合チェック装置の処理手順を示すフローチャートである。
【図５】  図４のステップＳ１の詳細を説明するためのフローチャートである。
【図６】  命令情報格納テーブルを説明するための図である。
【図７】  図４のステップＳ２の詳細を説明するためのフローチャートである。
【図８】  図４のステップＳ３の詳細を説明するためのフローチャートである。
【図９】  図４のステップＳ４の詳細を説明するためのフローチャートである。
【図１０】  マイクロコードの一例を示す図である。
【図１１】  リソース競合チェック対応テーブルの一例を示す図である。
【図１２】  命令情報格納テーブルの一例を示す図である。
【図１３】  始点情報格納テーブルの内容の一例を示す図である。
【図１４】  スタックの説明をするための図である。
【図１５】  チェックポイント設定テーブルの内容の一例を示す図である。
【図１６】  本発明の実施の形態２におけるリソース競合チェック装置の概略構成を示すブロック図である。
【図１７】  図４のステップＳ１の詳細を説明するためのフローチャートである。
【図１８】  リソース競合チェック情報の一例を示す図である。
【図１９】  始点情報の一例を示す図である。
【図２０】  チェックポイントの一例を示す図である。
【図２１】  本発明の実施の形態３および実施の形態４におけるアセンブル装置の概略構成を示すブロック図である。
【図２２】  本発明の実施の形態５および実施の形態６におけるリンク装置の概略構成を示すブロック図である。
【図２３】  マイクロコードの一例を示す図である。
【図２４】  マイクロコードのオブジェクトコードの一例を示す図である。
【図２５】  本発明の実施の形態７および実施の形態８におけるアセンブル装置およびリンク装置の概略構成を示すブロック図である。
【図２６】  本発明の実施の形態９における命令パイプラインシミュレーション装置の概略構成を示すブロック図である。
【図２７】  本発明の実施の形態１１における命令パイプラインシミュレーション装置の概略構成を示すブロック図である。
【図２８】  本発明の実施の形態１２および実施の形態１３における命令パイプラインシミュレーション装置の概略構成を示すブロック図である。
【図２９】  本発明の実施の形態１１における命令パイプラインシミュレーション装置の処理手順を示すフローチャートである。
【図３０】  命令パイプラインにおける各ステージの状態を示す図である。
【符号の説明】
１  コンピュータ本体、２  グラフィックディスプレイ装置、３  磁気テープ装置、４  磁気テープ、５  キーボード、６  マウス、７  ＣＤ−ＲＯＭ装置、８  ＣＤ−ＲＯＭ、９  通信モデム、１０  ＣＰＵ、１１  ＲＯＭ、１２  ＲＡＭ、１３  ハードディスク装置、３０，３０′  リソース競合チェック装置、３１  入力部、３２  リソース競合チェック部、３３  出力部、３４  記憶部、３５  マイクロコード入力部、３６  始点情報設定部、３７  トレース部、３８チェック部、３９  命令情報格納テーブル、４０  リソース競合チェック対応テーブル、４１  始点情報格納テーブル、４２  チェックポイント設定テーブル、４３  リソース競合情報入力部、５１，５５  アセンブル装置、５２  アセンブリ処理部、５３，５６  リンク装置、５４  リンク処理部、６１，７１，８１命令パイプラインシミュレーション装置、６２  デバッグ部、６３，７２  シミュレーション部、７３  命令設定部、７４  命令解析部。
【図１】
0003728368.tif 000002
【図２】
0003728368.tif 000003
【図３】
0003728368.tif 000004
【図４】
0003728368.tif 000005
【図５】
0003728368.tif 000006
【図６】
0003728368.tif 000007
【図７】
0003728368.tif 000008
【図８】
0003728368.tif 000009
【図９】
0003728368.tif 000010
【図１０】
0003728368.tif 000011
【図１１】
0003728368.tif 000012
【図１２】
0003728368.tif 000013
【図１３】
0003728368.tif 000014
【図１４】
0003728368.tif 000015
【図１５】
0003728368.tif 000016
【図１６】
0003728368.tif 000017
【図１７】
0003728368.tif 000018
【図１８】
0003728368.tif 000019
【図１９】
0003728368.tif 000020
【図２０】
0003728368.tif 000021
【図２１】
0003728368.tif 000022
【図２２】
0003728368.tif 000023
【図２３】
0003728368.tif 000024
【図２４】
0003728368.tif 000025
【図２５】
0003728368.tif 000026
【図２６】
0003728368.tif 000027
【図２７】
0003728368.tif 000028
【図２８】
0003728368.tif 000029
【図２９】
0003728368.tif 000030
【図３０】
0003728368.tif 000031