(57)【要約】【課題】  プログラムコードの動作を逐次的に検証するときに、当該検証用のインストラクションシミュレータの生成にかかる手間を軽減すること。【解決手段】  マシンディスクリプションを選択することで、ターゲットプロセッサの実仕様のモデル（第１のモデル）のインストラクションシミュレータや、当該ターゲットプロセッサとインストラクションのアーキテクチャの一部が異なるモデル（第２のモデル）のインストラクションシミュレータを生成できるようにした（ステップＳ３、Ｓ４）。そのため、例えば、プログラムコードの動作を逐次的に検証するときに、第２のモデルのマシンディスクリプションを選択することで、当該検証用の（第２のモデルの）インストラクションシミュレータを生成することができ、その結果、インストラクションシミュレータの生成にかかる手間を軽減することができる。【選択図】  図２
2006215617.tif 000002
【特許請求の範囲】
【請求項１】
所定のプロセッサにおけるインストラクションの実行に関連するアーキテクチャを示すマシンディスクリプションに基づいて、前記プロセッサのインストラクションシミュレータを生成するインストラクションシミュレータ生成装置であって、
前記プロセッサのインストラクションセットに含まれる各インストラクションの実行を実仕様に従って定義されたアーキテクチャに基づく実仕様マシンディスクリプション、及び当該アーキテクチャに含まれる要素の少なくとも一部を簡略化したアーキテクチャに基づく簡易仕様マシンディスクリプションのいずれかを提供するマシンディスクリプション提供手段と、そのマシンディスクリプション提供手段によって提供されたマシンディスクリプションに基づいて、前記プロセッサのインストラクションシミュレータを生成するインストラクションシミュレータ生成手段とを備えたことを特徴とするインストラクションシミュレータ生成装置。
【請求項２】
前記簡易仕様マシンディスクリプションは、前記実仕様に従って定義されたアーキテクチャからディレイ要素を削除したアーキテクチャを示すことを特徴とする請求項１に記載のインストラクションシミュレータ生成装置。
【請求項３】
指示入力に応じて前記マシンディスクリプション提供手段に提供させるマシンディスクリプションを選択する選択手段を備えたことを特徴とする請求項１又は２に記載のインストラクションシミュレータ生成装置。
【請求項４】
所定のプロセッサにおけるインストラクションの実行に関連するアーキテクチャを示すマシンディスクリプションに基づいて、前記プロセッサのインストラクションシミュレータを生成するインストラクションシミュレータ生成プログラムであって、
前記プロセッサのインストラクションセットに含まれる各インストラクションの実行を実仕様に従って定義されたアーキテクチャに基づく実仕様マシンディスクリプション、及び当該アーキテクチャに含まれる要素の少なくとも一部を簡略化したアーキテクチャに基づく簡易仕様マシンディスクリプションのいずれかを提供し、その提供されたマシンディスクリプションに基づいて、前記プロセッサのインストラクションシミュレータを生成することを特徴とするインストラクションシミュレータ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ターゲットとなるプロセッサのインストラクションシミュレータを生成するインストラクションシミュレータ生成装置及びインストラクションシミュレータ生成プログラムに関する。
【背景技術】
【０００２】
従来、この種の技術としては、ターゲットプロセッサにおけるインストラクションの実行に関連するアーキテクチャを示す情報（マシンディスクリプション）に基づいて、前記ターゲットプロセッサのインストラクションシミュレータを生成するシミュレータ生成ツールがある（特許文献１参照）。この特許文献１のシミュレータ生成ツールによれば、ターゲットプロセッサのマシンディスクリプションを生成するだけで、インストラクションシミュレータを生成することができ、ターゲットプロセッサのインストラクションシミュレータ生成に要する手間を軽減することができるようになっている。
【０００３】
ところで、このようなシミュレータ生成ツールは、一般に、組み込み型プロセッサ等のターゲットプロセッサ上で動作するソフトウエアの開発の支援に用いられる。具体的には、まず、組み込み型プロセッサのインストラクションセットに含まれる各インストラクション（例えば、Multiply命令やBranch命令）の実行を忠実に再現したアーキテクチャに従うマシンディスクリプションに基づいて、前記組み込み型プロセッサのインストラクションシミュレータを生成する。次に、その生成されたインストラクションシミュレータでプログラムコードの動作を検証し、その検証によって、前記プログラムコードが正常に機能すると判定した場合、そのプログラムコードをそのまま採用する。
【０００４】
また、プログラムコードが正常に機能しないと判定した場合には、そのプログラムコードをそのまま採用せず、より簡略化したアーキテクチャに従う適切なマシンディスクリプションに変更し、検証対象となるプログラムを、そのマシンディスクリプションに対応する簡略な記述に変更した上で再度動作の検証を行う。具体的には、Multiply命令やBranch命令の後にNOPのない簡略化した形式（コード構成が理解しやすい形式）にプログラムコードを修正させ、前記組み込み型プロセッサのBranch命令やMultiply命令を０ステップDelayedとしたモデルのマシンディスクリプションに変更して、インストラクションシミュレータを生成する。そして、その生成されたインストラクションシミュレータで、前記修正させたプログラムコードの動作を逐次的に検証する。
【特許文献１】特開２００２−７１４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来の技術にあっては、プログラムコードの動作の逐次的な検証をする場合には、ソフトウエア開発者が、本来の検証のために用いるマシンディスクリプションを、より簡略化したアーキテクチャに従う適切なマシンディスクリプションに変更する必要があり、その結果、ソフトウエアの開発効率が低下してしまう恐れがある。
本発明は、上記従来の技術の未解決の問題を解決することを目的としてなされたものであって、プログラムコードの動作を検証するためのインストラクションシミュレータの生成にかかる手間を軽減することができるインストラクションシミュレータ生成装置、及びインストラクションシミュレータ生成プログラムを提供することを課題とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のインストラクションシミュレータ生成装置は、所定のプロセッサにおけるインストラクションの実行に関連するアーキテクチャを示すマシンディスクリプションに基づいて、前記プロセッサのインストラクションシミュレータを生成するインストラクションシミュレータ生成装置であって、前記プロセッサのインストラクションセットに含まれる各インストラクションの実行を実仕様に従って定義されたアーキテクチャに基づく実仕様マシンディスクリプション、及び当該アーキテクチャに含まれる要素の少なくとも一部を簡略化したアーキテクチャに基づく簡易仕様マシンディスクリプションのいずれかを提供するマシンディスクリプション提供手段と、そのマシンディスクリプション提供手段によって提供されたマシンディスクリプションに基づいて、前記プロセッサのインストラクションシミュレータを生成するインストラクションシミュレータ生成手段とを備えたことを特徴とする。
【０００７】
また、前記簡易仕様マシンディスクリプションは、前記実仕様に従って定義されたアーキテクチャからディレイ要素を削除したアーキテクチャを示すようにしてもよい。
さらに、指示入力に応じて前記マシンディスクリプション提供手段に提供させるマシンディスクリプションを選択する選択手段を備えるようにしてもよい。
一方、上記課題を解決するために、本発明のインストラクションシミュレータ生成プログラムは、所定のプロセッサにおけるインストラクションの実行に関連するアーキテクチャを示すマシンディスクリプションに基づいて、前記プロセッサのインストラクションシミュレータを生成するインストラクションシミュレータ生成プログラムであって、前記プロセッサのインストラクションセットに含まれる各インストラクションの実行を実仕様に従って定義されたアーキテクチャに基づく実仕様マシンディスクリプション、及び当該アーキテクチャに含まれる要素の少なくとも一部を簡略化したアーキテクチャに基づく簡易仕様マシンディスクリプションのいずれかを提供し、その提供されたマシンディスクリプションに基づいて、前記プロセッサのインストラクションシミュレータを生成することを特徴とする。
【０００８】
このような構成によれば、例えば、プログラムコードの動作を逐次的に検証するときに、Delayed機能等のない簡略化されたマシンディスクリプションを提供することで、当該検証用のインストラクションシミュレータを容易に生成することができ、その結果、インストラクションシミュレータの生成にかかる手間を軽減することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明のインストラクションシミュレータ生成装置を、ソフトウエアの開発を支援するソフトウエア開発支援装置に適用した一実施形態を、図面に基づいて説明する。
このソフトウエア開発支援装置は、組み込み型プロセッサ上で動作するソフトウエアを開発するためのものである。具体的には、ソフトウエア開発支援装置は、組み込み型プロセッサにおけるインストラクションの実行に関連するアーキテクチャを示す情報（以下、「マシンディスクリプション」とも呼ぶ。）を、アーキテクチャに含まれる要素を種々変更した状態で複数記憶している。そして、組み込み型プロセッサの実仕様のモデル（以下、「第１のモデル」とも呼ぶ。）のインストラクションセットに含まれる各インストラクション（例えば、Multiply命令やBranch命令）の実行を忠実に再現したアーキテクチャに従うマシンディスクリプションを読み出し、そのマシンディスクリプションに基づいて、前記組み込み型プロセッサのインストラクションシミュレータを生成する。次に、利用者が、その生成されたインストラクションシミュレータでプログラムコードの動作を検証し、その検証によって、前記プログラムコードが正常に機能すると判定された場合には、そのプログラムコードをそのまま採用する。
【００１０】
また、プログラムコードが正常に機能しないと判定された場合には、そのプログラムコードをそのまま採用せず、利用者が、Multiply命令やBranch命令の後にNOPのない形式（コード構成が理解しやすい形式）にプログラムコードを修正すると共に、前記組み込み型プロセッサのBranch命令（遅延分岐命令）やMultiply命令（遅延乗算命令）を０ステップDelayedとしたモデル（前記実仕様に従って定義されたアーキテクチャからディレイ要素を削除したアーキテクチャによるモデル、以下、「第２のモデル」とも呼ぶ。）のマシンディスクリプションを読み出し、そのマシンディスクリプションに基づいて、インストラクションシミュレータを生成する。そして、その生成されたインストラクションシミュレータで、利用者が、前記修正されたプログラムコードの動作を逐次的に検証するようになっている。
【００１１】
＜ソフトウエア開発支援装置の構成＞
図１は、本実施形態のソフトウエア開発支援装置の概略構成を示すブロック図である。この図１に示すように、ソフトウエア開発支援装置１は、ＣＰＵ（Central Processing Unit ）２、ＲＡＭ（Random Access Memory）３、記憶装置４、入力装置５及び表示装置６を含み、それら各部２〜６は、バス７を介して互いにデータ授受可能に接続される。
【００１２】
ＣＰＵ２は、記憶装置４から基本制御プログラム等の各種プログラム及びデータを読み出し、その読み出した各種プログラム及びデータを、ＲＡＭ３内に設けられるワークエリアに展開して実行し、ソフトウエア開発支援装置１が備える各部２〜６の制御を実行する。また、ＣＰＵ２は、利用者によってプログラムコード検証処理のためのキー操作がされるとプログラムコード検証処理（後述）を実行する。そして、このプログラムコード検証処理が実行されると、まず、組み込み型プロセッサの第１及び第２のモデルのマシンディスクリプションのいずれかを利用者に選択させ、その選択されたマシンディスクリプションに応じたインストラクションシミュレータを生成する。次に、その生成されたインストラクションシミュレータで、利用者により指定されたプログラムコードの動作を検証する。
【００１３】
ＲＡＭ３は、各種プログラムを展開するワークエリアを形成するとともに、ＣＰＵ２により実行される各種処理に係るデータを格納するためのメモリ領域を形成する。
記憶装置４は、ＣＰＵ２により実行される基本制御プログラム、各種アプリケーションプログラム及びこれら各プログラムに係るデータ（検証対象であるプログラムコード、第１及び第２モデルのマシンディスクリプション）等を格納する。そして、記憶装置４は、ＣＰＵ２からの読み出し要求に従って、各種プログラムやデータをＣＰＵ２に出力する。
【００１４】
入力装置５は、文字キー、数字キー及び各種機能キー等を備えたキーボードや、カーソル操作のためのマウス等を備えている。そして、入力装置５は、キーボードのキーが押下操作されると、その押下操作されたキーに対応する押下信号をＣＰＵ２に出力する。
表示装置６は、第１の表示指令或いは第２の表示指令（後述）がＣＰＵ２から出力されると、その出力された表示指令に応じた画像（メッセージ）を表示画面に表示する。
【００１５】
＜プログラムコード検証処理の内容＞
図２は、ＣＰＵ２で実行されるプログラムコード検証処理のフローチャートである。このプログラムコード検証処理は、利用者によってプログラムコード検証処理のためのキー操作がされると実行される処理であって、まず、そのステップＳ１で、インストラクションシミュレータで動作を検証するプログラムコードの指定を促す画像（メッセージ）の表示指令（以下、「第１の表示指令」とも呼ぶ。）を表示装置６に出力する。次に、プログラムコードを指定するキーの押下信号が入力装置５から出力されると、その押下信号で指定されたプログラムコードを記憶装置４から読み出す。
【００１６】
次にステップＳ２に移行して、前記ステップＳ１で読み出されたプログラムコードをコンパイルして、シミュレータで実行可能な形式のシミュレータ実行ファイルを生成する。
次にステップＳ３に移行して、前記ステップＳ１で指定させたプログラムコードの動作を検証するためのモデル（第１のモデル、第２のモデル）をプログラムコードの種類に応じて選択させる。具体的には、まず、第１のモデル（実仕様のモデル。Branchアーキテクチャが２ステップDelayedであり、Multiplyアーキテクチャが１ステップDelayedであるモデル）と、第２のモデル（インストラクションの一部が簡略化されたモデル。Branchアーキテクチャ及びMultiplyアーキテクチャが共に０ステップDelayedであるモデル）とのいずれかの選択を促す画像（メッセージ）の表示指令（以下、「第２の表示指令」とも呼ぶ。）を表示装置６に出力する。次に、第１或いは第２のモデルを選択するキーの押下信号が入力装置５から出力されると、その押下信号で選択されたモデルのマシンディスクリプションを記憶装置４から読み出す。
【００１７】
次にステップＳ４に移行して、前記ステップＳ１で指定されたプログラムコードの動作を検証する。具体的には、前記ステップＳ３で読み出されたマシンディスクリプションに基づいてインストラクションシミュレータを生成し、その生成されたインストラクションシミュレータで、前記ステップＳ２で生成されたシミュレータ実行ファイルを実行する。
次にステップＳ５に移行して、前記ステップＳ４の検証によってプログラムコードが正常に機能したか否かを判定する。具体的には、まず、プログラムコードが正常に機能したか否かの入力を促す画像（メッセージ）の表示指令（以下、「第３の表示指令」とも呼ぶ。）を表示装置６に出力する。次に、プログラムコードが正常に機能したことを示すキーの押下信号が入力装置５から出力された場合には（Ｙｅｓ）ステップＳ６に移行し、正常には機能しなかったことを示すキーの押下信号が入力装置５から出力された場合には（Ｎｏ）前記ステップＳ１に移行する。
【００１８】
前記ステップＳ６では、前記ステップＳ４で動作検証に用いられたモデルが実仕様のモデルであったか否かを判定する。具体的には、前記ステップＳ３で選択されたモデルが第２モデルであったか否かを判定する。そして、選択されたモデルが第２のモデルであった場合には（Ｙｅｓ）この演算処理をそのまま終了し、第１のモデル（インストラクションの一部が簡略化されたモデル）である場合には（Ｎｏ）前記ステップＳ３に移行する。
【００１９】
＜ソフトウエア開発支援装置の具体的な動作＞
まず、ターゲットとなる組み込み型プロセッサ上で動作するプログラムコードを生成して記憶装置４に記録させた後に、そのプログラムコードの動作を検証するために、利用者がプログラムコード検証処理のためのキー操作をしたとする。すると、ＣＰＵ２によって、プログラムコード検証処理が実行され、まず、そのステップＳ１で、第１の表示指令が表示装置６に出力される。そして、表示装置６によって、インストラクションシミュレータで動作を検証するプログラムコードの指定を促すメッセージが表示画面に表示される。
【００２０】
ここで、そのメッセージを見た利用者が、プログラムコードを指定するキー操作をしたとする。すると、そのキー操作に応じたキーの押下信号が入力装置５から出力され、ＣＰＵ２によって、その押下信号で指定されたプログラムコード、つまり、利用者のキー操作によって動作の検証が指示されたプログラムコードが記憶装置４から読み出される。
また、ステップＳ２によって、その読み出されたプログラムコードがコンパイルされて、シミュレータで実行可能な形式のシミュレータ実行ファイルが生成される。さらに、ステップＳ３によって、まず、第２の表示指令が表示装置６に出力される。すると、表示装置６によって、プログラムコードの動作を検証するためのモデルとして、第１のモデルと第２のモデルとのいずれかの選択を促す画像（メッセージ）が表示画面に表示される。
【００２１】
ここで、そのメッセージを見た利用者が、第１のモデル、つまり、実使用のモデルを選択するキー操作をしたとする。すると、そのキー操作に応じたキーの押下信号が入力装置５から出力され、ＣＰＵ２によって、その押下信号で選択されたモデルのマシンディスクリプション、つまり、実仕様のモデルのインストラクションセットに含まれる各インストラクションのアーキテクチャを示す情報が記憶装置４から読み出される。また、ステップＳ４によって、まず、その読み出されたマシンディスクリプションに基づいて、前記実仕様の組み込みプロセッサのインストラクションシミュレータが生成される。次に、その生成されたインストラクションシミュレータで、前記生成されたシミュレータ実行ファイルが実行されて、前記指定されたプログラムコードの動作が検証される。なお、この第１のモデルのマシンディスクリプションによれば、Multiply命令のアーキテクチャは、１ステップDelayedであるため、Multiply命令の演算結果は、Multiply命令の次の行には反映されない。また同様に、Branch命令のアーキテクチャは、２ステップDelayedであるため、Branch命令の２行後の命令までは無視されない（実行される）。
【００２２】
また、プログラムコードの動作の検証が終了すると、ステップＳ５によって、まず、第３の表示指令が表示装置６に出力される。すると、表示装置６によって、プログラムコードが正常に機能したか否かの入力を促す画像（メッセージ）が表示装置６に表示される。ここで、その検証されたプログラムコードが正常には機能せず、そのメッセージを見た利用者が、正常には機能しなかったことを示すキー操作をしたとする。すると、前記ステップＳ５の判定が「Ｎｏ」となり、前記ステップＳ１に再び戻る。また、利用者が、前記プログラムコードのBranch命令を２ステップDelayedから０ステップDelayedとし、Multiply命令を１ステップDelayedから０ステップDelayedとしてプログラムコードをシンプルな形式に修正して記憶装置４に記録させたとする。そして、前記ステップＳ１によって、その修正されたプログラムコードが利用者によって指定されると、前記修正されたプログラムコードが記憶装置４から読み出される。また、前記ステップＳ２を経て、前記ステップＳ３で、利用者によって第２のモデル、つまり、Branch命令やMultiply命令を０ステップDelayedとしたモデルが選択されたとする。すると、その選択されたモデルのマシンディスクリプションが記憶装置４から読み出される。また、前記ステップＳ４によって、まず、その読み出されたマシンディスクリプションに基づいて、逐次検証用の組み込みプロセッサのインストラクションシミュレータが生成され、そのインストラクションシミュレータで、前記修正されたプログラムコード（シミュレータ実行ファイル）が１行ずつ実行されて、各行における動作が逐次検証される。そして、その逐次検証で不具合が発見され、前記ステップＳ５で、利用者によってプログラムコードが正常には機能しなかったことを示すキー操作がされ、判定が「Ｎｏ」となり、その不具合が発見された行を利用者が修正して、前記ステップＳ１から上記フローが繰り返し実行される。
【００２３】
上記フローが繰り返し実行されて、図３（ａ）に示すように、修正が繰り返されるうちに、プログラムコードが正常に機能するようになったとする。すると、前記ステップＳ５で、利用者によってプログラムコードが正常に機能したことを示すキー操作がされ、判定が「Ｙｅｓ」となり、また、第２のモデルが選択されているため、ステップＳ６の判定が「Ｎｏ」となり、再び前記ステップＳ３に移行する。そして、前記ステップＳ３で、利用者によって、第１のモデル、つまり、実仕様のモデルが選択されたとする。すると、前記ステップＳ４を経て、プログラムコードの形式と前記選択されたモデルとが適合しないため、当該ステップＳ４の逐次検証で不具合が発見され、前記ステップＳ５で、利用者によってプログラムコードが正常には機能しなかったことを示すキー操作がされ、判定が「Ｎｏ」となり、前記ステップＳ１に再び戻る。そして、図３（ｂ）に示すように、前記プログラムコードのBranch命令「B」を０ステップDelayedから２ステップDelayedとし（Branch命令の２行後ろまでＮＯＰを挿入し）、Multiply命令「MUL」を０ステップDelayedから１ステップDelayedとして（Multiply命令の１行後ろにＮＯＰを挿入して）プログラムコードを実仕様の形式に修正して記憶装置４に記録させたとする。すると、前記ステップＳ１、Ｓ２、Ｓ３及びＳ４を経て、そのプログラムコードが正常に機能するために、前記ステップＳ５で、利用者によってプログラムコードが正常に機能したことを示すキー操作がされ、判定が「Ｙｅｓ」となり、また、前記ステップＳ６の判定が「Ｎｏ」となり、この演算処理が終了する。そして、この演算処理の終了後、図３（ｃ）に示すように、前記修正されたプログラムコードを利用者が最適化することで、最終的なプログラムコードが生成される。
【００２４】
このように、本実施形態のソフトウエア開発支援装置にあっては、マシンディスクリプションを選択することで、ターゲットプロセッサの実仕様のモデル（第１のモデル）のインストラクションシミュレータや、当該ターゲットプロセッサとインストラクションのアーキテクチャの一部が異なるモデル（第２のモデル）のインストラクションシミュレータを生成できるようにした。そのため、例えば、プログラムコードの動作を逐次的に検証するときに、第２のモデルのマシンディスクリプションを選択することで、当該検証用の（第２のモデルの）インストラクションシミュレータを生成することができ、その結果、インストラクションシミュレータの生成にかかる手間を軽減することができる。
【００２５】
以上、図１のＣＰＵ２及び記憶装置４、図２のステップＳ３が特許請求の範囲に記載のマシンディスクリプション提供手段を構成し、以下同様に、図１のＣＰＵ２、図２のステップＳ３がインストラクションシミュレータ生成手段を構成し、図１のＣＰＵ２及び入力装置５、図２のステップＳ３が選択手段を構成する。
なお、本発明のインストラクションシミュレータ生成装置は、上記実施の形態の内容に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
【００２６】
上記実施形態では、２ステップDelayedのBranchアーキテクチャと、１ステップDelayedのMultiplyアーキテクチャとをそれぞれ０ステップDelayedとすることができるようにした例を示したが、これに限られるものではない。例えば、ｍ（ｍは自然数）ステップDelayedのShiftアーキテクチャを０ステップDelayとすることができるようにしてもよい。そのようにすれば、例えば、２ステップDelayedのShiftアーキテクチャを０ステップDelayedとした場合には、図４（ａ）の５行目及び６行目に示すように、Shift命令「SHL」の２行後まで挿入されているＮＯＰをプログラムコードからそれぞれ取り除くことで、図４（ｂ）に示すように、プログラムコードをシンプルな形式（Shift命令に引き続く命令を実行順に並べた形式）に修正することができる。
【００２７】
また、ｎ（ｎは自然数）ステップDelayedのメモリアクセスアーキテクチャを０ステップDelayedとすることができるようにしてもよい。そのようにすれば、例えば、１ステップDelayedのメモリアクセスアーキテクチャを０ステップDelayedとした場合には、図５（ａ）の４行目に示すように、メモリアクセス命令「LDR」の次の行に挿入されているＮＯＰをプログラムコードから取り除くことで、図５（ｂ）に示すように、プログラムコードをシンプルな形式（メモリアクセス命令に引き続く命令を実行順に並べた形式）に修正することができ、その結果、ソフトウエアを逐次的に実行することができる。
【図面の簡単な説明】
【００２８】
【図１】本発明のインストラクションシミュレータ生成装置を示すブロック図である。
【図２】ＣＰＵ２で実行されるプログラムコード検証処理のフローチャートである。
【図３】ソフトウエア開発支援装置の動作を説明するための説明図である。
【図４】本発明の変形例を説明する説明図である。
【図５】本発明の変形例を説明する説明図である。
【符号の説明】
【００２９】
１はソフトウエア開発支援装置、２はＣＰＵ、３はＲＡＭ、４は記憶装置、５は入力装置、６は表示装置、７はバス
【図１】
2006215617.tif 000003
【図２】
2006215617.tif 000004
【図３】
2006215617.tif 000005
【図４】
2006215617.tif 000006
【図５】
2006215617.tif 000007