JP2003099254A - 異種実行環境における計算機システム構成方法、および、異種実行環境で実行させるためのプログラム - Google Patents
異種実行環境における計算機システム構成方法、および、異種実行環境で実行させるためのプログラムInfo
- Publication number
- JP2003099254A JP2003099254A JP2001290986A JP2001290986A JP2003099254A JP 2003099254 A JP2003099254 A JP 2003099254A JP 2001290986 A JP2001290986 A JP 2001290986A JP 2001290986 A JP2001290986 A JP 2001290986A JP 2003099254 A JP2003099254 A JP 2003099254A
- Authority
- JP
- Japan
- Prior art keywords
- program
- execution
- error code
- execution environment
- code
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45537—Provision of facilities of other operating environments, e.g. WINE
Abstract
るときのアプリケーション・プログラムにエラーコード
を返す際に、既存の命令セットの体系を活かしながら、
その共通化コードのインプリメントのためのROM効率
を良くし、むだな命令を挿入することのないようにす
る。 【解決手段】実行環境差異吸収プログラムから、アプリ
ケーション・プログラムに対応する実行プログラムに返
すための共通化エラーコードを、CPUの命令セットと
定義されているImmediateロード命令で設定可
能な数値範囲内の値として定めて、共通化エラーコード
を、Immediateロード命令の命令コード内に保
持するようにする。特に、共通化エラーコードの値をI
mmediateロード命令の設定部のMSBを0とな
る範囲内に収まるようにする。
Description
ける計算機システム構成方法に係り、アプリケーション
・プログラムに、異なった実行環境の共通のエラーコー
ドを返すようにするときに、実行プログラムのメモリ効
率がよく、実行速度を低下させることなく、計算機シス
テムを実装できるような計算機システム構成方法に関す
る。
テムを実行させるために、開発や移植を容易におこなう
ための技術が提案されている。
3363号公報の「仮想実行環境システム」がある。
システムについて説明する。図1は、特開平8―633
63号公報の「仮想実行環境システム」のシステム概要
図である。
ーション・ソフトウェアのソースコードとしては、プロ
グラム本体11と置換情報記述部12がある。
フトウェアの目的ごとに異なるソースコードであり、置
換情報記述部12は、プログラム本体11中に記述され
た情報を、仮想実行環境が実現される既存オペレーティ
ング・システム60の機種毎に対応して適切な情報に置
換える部分である。
るためには、これらのプログラム本体11と置換情報記
述部12に記述された置換情報を、既存オペレーティン
グ・システム用コンパイラを利用して、実行可能プログ
ラム30にし、それを実行部22が実行する。翻訳部2
1は、そのための仮想実行環境上で実行可能な実行可能
プログラムに翻訳する部分である。
述するときには、置換情報記述部12は、コンパイラの
プリプロセッサとして処理されるマクロ定義を利用する
ことができる。
ウェア10のプログラム本体11を変更する事無く、様
々な環境用に作成された実行可能プログラム30を既存
オペレーティング・システム60上で動作させることが
可能となる。
環境において従来技術の計算機システムを構成し、実行
する場合について説明する。図2は、異種実行環境にお
いてソフトウェア開発をおこなうときの概念図である。
ンを開発する場合を想定する。図1の置換情報記述部1
2にあたる部分に、C言語の共通関数102が提供され
る。
ム−A105a、計算機システム−B105bがあり、
そこでプログラムを実行する環境を実行環境−A104
a、実行環境−B104bと言うことにする。実行環境
−A104aは、具体的には、ハードウェア−A106
aと、ハードウェアを制御しアプリケーションプログラ
ムとハードウェアの仲立ちをするOS−A107aであ
る。
個々のアプリケーションを記述するソースコードであ
り、システムから機能の提供を受けるときには、共通化
関数102を呼出す。ここで、注意することは、アプリ
ケーション本体100を記述するユーザは、共通化関数
インタフェース101を意識すればよく、個々の環境に
よってコーディングを変えなくても良いことである。し
たがって、アプリケーション本体100は、ソースレベ
ルでの互換性が保たれることになる。
として提供され、ユーザには、共通化関数インタフェー
スが公開されることになる。共通化関数は、この様に環
境に依らない統一したインタフェースをユーザに提供す
るためのものである。
イル・リンク作業をおこなって、実行形式を作成するこ
とになるが、実行環境−A104aで実行させるときに
は、図2に示される様に、コンパイラ−A108aでコ
ンパイルし、実行環境−B104bで実行させるときに
は、コンパイラ−B108bでコンパイルする。
09aにより、実行環境プログラム−A103aをリン
クする。実行環境プログラム−A103aは、実行環境
−A104aで実行させるためのプログラムであり、こ
のなかで、OS−A107aのシステムコールがコール
されることになる。実行環境−B104bについても同
様である。
ョン本体100に対して、コンパイル、リンクがおこな
われ、この例では、実行環境−A104aと実行環境−
B104b用に、それぞれ実行プログラム−A110a
と、実行プログラム−B110bが生成される。
たモジュールと、実行環境プログラム−A103a、実
行環境プログラム−B103bは、コンパイル・リンク
の作業を経て、それぞれの固有の実行環境で実行可能な
実行環境差異吸収プログラム−A111aと実行環境差
異吸収プログラム−B111bになる。
ラムを、計算機システムの実行環境のもとで動作させる
場合について概説する。
実行環境−Aのもとで実行するときには以下のようにな
る。すなわち、実行プログラム−A110aでは、共通
化インターフェース102により、実行環境差異吸収プ
ログラム−A111aを呼出す。この実行環境差異吸収
プログラム−A111aは、アプリケーションから見た
OSの差異を吸収し、インターフェースを共通化される
ために設けられるモジュールである。呼び出された実行
環境差異吸収プログラム−A111aは、OS−A10
7aの機能を実現するためのシステムコールを呼出し
て、所望のOSの機能をハードウェア−A106aによ
り実現する。ハードウェア−A106aの動作が終了す
ると、OS−A107aは、実行環境差異吸収プログラ
ム−A111aに制御を戻す。最後に、実行環境差異吸
収プログラム−A111aは、制御を実行プログラム−
A110aに戻す。
−B104bのもとで実行させるときも、同様の動作を
するが、実行環境−B104bは、計算機システム−B
でさせるときの環境であるので、前提となるOSやハー
ドウェアが異なっている。例えば、ハードウェア−A1
06aとハードウェア−B106bでは、機械語命令体
系が異なり、実行環境プログラム−A103aと実行環
境プログラム−B103bでは、OSの機能を呼出すた
めのシステムコールが異なっている。
ム本体11に変更を加える事無く、異なるOS上に実装
してもプログラム本体11から、ほぼ同一のOS機能を
呼び出して、異なるOS107に依存しない共通化エラ
ーコードをプログラム本体11に伝えることを可能にす
るものである。なお、ここで、共通化エラーコードと言
っているのは、OSに依存するエラーコードを、実行環
境差異吸収プログラムで、そのまま、あるいは、書き換
えて、アプリケーションから見たときには、環境によら
ない共通化されたエラーコードにするためである。
することでOS機能の呼び出し方やプログラミング記述
が統一され、プログラム本体11を別のアプリケーショ
ンソフトウェアに再利用させることが容易になる。
った計算機システムの環境に、アプリケーションソフト
ウェアを開発して実行するシステムに関するものであっ
た。
技術の動作において、エラーコードの取扱いに関し問題
点が生ずることを説明する。図3は、計算機システム−
A105aで取扱われるデータ、プログラムコードと、
レジスタ、メモリなどの関連をあらわす図である。
ェア−A106aと、OS−A107aと、実行環境差
異吸収プログラム−A111aと、実行プログラム−A
110aで構成されることは前述した。
されるように命令を実行するCPU−A121aと、プ
ログラムやデータを格納するROM−A122aとRA
M−A123aが搭載されている。そして、CPU−A
121aは、複数の汎用レジスタを有している。
た引数を渡すための引数格納用途レジスタ124、一時
変数を格納する一時変数格納用途レジスタ125、C関
数の戻り値を返すための戻り値格納用途レジスタ12
6、ユーザに提供されるユーザ使用汎用レジスタ127
などがある。
123a上に実装されているスタック領域130内の番
地を指すスタックポインタレジスタ128、ROM−A
122aまたはRAM−A123a上に実装されたプロ
グラムの現在実行中の命令の次のアドレスを指すプログ
ラムカウンタレジスタ129を有している。
Uの汎用レジスタをデータや引数に割り付けるときに
は、大別してユーザに対してある関数を呼出した前後の
値の存在を保証して、ユーザが使用しても良いとする
(すなわち、アセンブラでレジスタの値を直接操作をし
ても良い)レジスタと、システム上で利用する汎用レジ
スタがある。この汎用レジスタは、ユーザに対しては、
ある関数を呼出した前後の値の存在は保証していない。
前後で値の一貫性を保証しないレジスタとして、引数格
納用途レジスタ124、一時変数格納用途レジスタ12
5、戻り値格納用途レジスタ126がある。また、一
方、値の一貫性を保証するレジスタは、ユーザ使用汎用
レジスタ127、スタックポインタレジスタ128、プ
ログラムカウンタレジスタ129がある。
納用途レジスタ125、戻り値格納用途レジスタ12
6、ユーザ使用汎用レジスタ127、スタックポインタ
レジスタ128は、通常は、それぞれ、同じ大きさの値
を扱える分のレジスタ長になっている。
ログラム−A110aのプログラムコードである実行プ
ログラムコード−A131aと、実行環境差異吸収プロ
グラム−A111aのプログラムコードである実行環境
差異吸収プログラムコード−A132aと、OS−A1
07aのプログラムコードであるOSプログラムコード
−A133aが格納されるものとする。これは、図2に
示した様に、コンパイラA108aにより、実行環境−
A用にコンパイルされたものである。そして、実行プロ
グラム−A110aを実行させるためには、実行プログ
ラムコード−A131aの命令語が解釈・実行される。
また、同様に、実行環境差異吸収プログラム−A111
aを実行させるためには、実行環境差異吸収プログラム
コード−A132a命令語が、 OS−A107aのプ
ログラムを実行するためには、OSプログラムコード−
A133aが、それぞれ解釈・実行される。
領域−A134aが実装されており、OS−A107a
の機能に依存したOS依存エラーコード135aと、実
行環境差異吸収プログラムで共通化されて提供される共
通化エラーコード136が格納されている。
のようにスタック領域130が実装されている。
するときには、CPU−A121aにより、実行プログ
ラム開始番地137から始まり、実行プログラム終了番
地138までにある命令語が解釈・実行される。その
際、プログラムカウンタレジスタ129は、現在動作さ
せている機械語命令の次に動作させる機械語命令の格納
番地を指しており、スタックポインタレジスタ128
は、現在使用しているスタック領域130内の任意のメ
モリ番地を指している。
行プログラムコード−A131a内にプログラムされた
共通化インターフェース102部の入口部に到達する
と、ジャンプ命令139によって、その共通化インター
フェース102に対応する実行環境差異吸収プログラム
コード−A132aの先頭番地を指してCPU−A12
1aを実行する。
9は、実行環境差異吸収プログラムコード−A132a
内にプログラムされたOS−A107aのシステムコー
ルの入口部に到達すると、ソフトウェア割り込み命令ま
たはジャンプ命令140により、そのシステムコールに
対応するOSプログラムコード−A133aの先頭番地
を指して、CPU−A121aを実行する。
の機能を実行し終えると、実行環境差異吸収プログラム
−A111aに伝えるため、OS−A107a依存エラ
ーコード135aを、戻り値格納用途レジスタ126に
戻り値を格納する。OS−A107a依存エラーコード
135aは、OS107aのプログラムが正常終了した
のか、 OS107aのプログラムや計算機システム−
A105a内部でどのような異常が発生したかを示すた
めの情報である。
よる戻り値の格納作業を終えると、プログラムカウンタ
レジスタ129は、実行環境差異吸収プログラムコード
−A132aへの戻り先番地142を指して、リターン
命令141を実行することにより、実行環境差異吸収プ
ログラムコード−A132aに制御を移す。
32aに制御が戻ると、戻り値格納用途レジスタ126
には、OS−A107a依存エラーコード135aが戻
り値として入っている。一方、ROM−A122a内の
或るOS−A107a依存エラーコード135aを一時
変数格納用途レジスタ125にロードして、そして比較
命令144で戻り値格納用途レジスタ126と一時変数
格納用途レジスタ125に格納されている値を比較す
る。そして、全く等価なエラーコードが見つかったとき
には、実行環境差異吸収プログラムコード−A132a
から、実行プログラムコード−A131aに制御が戻る
ときに、その全く等価なエラーコードに対応する共通化
エラーコード136を、戻り値格納用途レジスタ126
に格納して、実行プログラム−A110aに渡すことに
する。見つからなかったときには、次の或るOS−A1
07a依存エラーコード135aを一時変数格納用途レ
ジスタ125にロードして、比較命令144を繰りかえ
す。ここで、言う等価なエラーコードを見つけるとは、
例えば、OS−A107a依存エラーコード135a
が、「メモリエラー」を意味するときには、同じ「メモ
リエラー」を意味する共通化エラーコードを見つけると
言うことである。
A104aと実行環境−B104bとは、エラーコード
は、共通化されており、実行プログラム−A110aと
実行プログラム−B110bには、同じエラーコードが
渡されると言うことである。そのため、アプリケーショ
ンを記述する者にとっては、環境の差異により返される
エラーコードが変わると言うことがなくなり、環境の差
異によるコーディングの変更を気にしなくても良いと言
うメリットが生ずる。
S依存エラーコード135と共通化エラーコード136
は、それぞれ、定数格納領域134内ではなく、実行プ
ログラムコード131、実行環境差異吸収プログラムコ
ード132の途中等に実装されることもある。
するレイヤを設けたため、OSに依存しない共通化エラ
ーコードを定義して、ユーザにアプリケーションの移植
・記述の容易性を提供することができた。しかしなが
ら、エラーコードのインプリメントに関しては、考慮さ
れていない。
は、ROM−A122aの定数格納領域134、そし
て、実行プログラムコード131、および、実行環境差
異吸収プログラムコード132の内部に格納されるため
に、ROM効率が悪くなるためである。この問題点は、
共通化エラーコード136を大きな格納領域を要する値
で定義した場合には、より大きくなるためである。
値を小さくすることが有効であるが、そのようにする
と、CPUの命令セットの仕様から新たな問題点を生じ
る。以下、それについて、図4ないし図7を用いて説明
する。図4は、汎用レジスタでゼロ拡張する際の説明図
である。図5は、ゼロ拡張された汎用レジスタの値を負
にする際の説明図である。図6は、汎用レジスタで符号
拡張する際の説明図である。図7は、符号拡張された汎
用レジスタの値をもとに戻す際の説明図である。
レジスタに格納可能な範囲より比較的小さな値を格納す
る際に先ずゼロ拡張するもの、同じく先ず符号拡張する
ものが現存する。
小さな値を汎用レジスタにロードするときには、ゼロ拡
張されるものがある。このときには、上の例では、CP
U121αは、小さな正の値である定数データを、戻り
値格納用途レジスタ126または一時変数格納用途レジ
スタ125の下位部161に格納し、上位部162をゼ
ロ拡張する作業を1命令でおこなうことになる。
た汎用レジスタの値を負にするためには、上位部に0を
2の補数変換処理命令163を施すなどの処理が必要に
なる。
値を小さくしても、共通化エラーコード136の値を負
のコードで定義して、しかも、レジスタにロードすると
きの命令セットの仕様が、上記のようにゼロ拡張するも
のであるときには、2の補数変換処理命令163等が追
加することが必要になり、その分だけ、実行プログラム
コード−A131aや実行環境差異吸収プログラムコー
ド−A132aの命令数が増え、ROM効率が悪くなる
と言う問題点が生ずる。
して、小さな値を汎用レジスタにロードするときには、
符号拡張されるものがある。このときには、上の例で
は、CPU121βは、小さな正の値である定数データ
を、戻り値格納用途レジスタ126または一時変数格納
用途レジスタ125の下位部161に格納する。そし
て、小さな値の符号ビットが0(正)のときには、レジ
スタの上位部を0にし、1(負)のときには、レジスタ
の上位部を1にする。この一連の動作は、一命令でおこ
なわれることになる。
の値を、もとに戻す処理を示している。もし、小さな値
の定数データのMSB(Most Significant Bit)が1で
あるとする。このときに、この定数データを符号無しデ
ータとみなすか、符号付きデータでみなすかで表してい
る数値の意味が異なってくる。
が1の符号無しデータであり、かつ、図6に示したよう
に符号拡張されたときには、上位部の1を再び0にする
必要が生じる。
値を小さくして、共通化エラーコード136の値を符号
無しのコードで定義しても、レジスタにロードするとき
の命令セットの仕様が、上記のように符号拡張するもの
であるときには、上位部に0をパックする命令165等
が追加することが必要になり、その分だけ、実行プログ
ラムコード−A131aや実行環境差異吸収プログラム
コード−A132aの命令数が増え、ROM効率が悪く
なると言う問題点が生ずる。
されたもので、その目的は、計算機システムの異なった
実行環境で実行させるときのアプリケーション・プログ
ラムにエラーコードを返す際に、既存の命令セットの体
系を活かしながら、その共通化コードのインプリメント
のためのROM効率を良くし、むだな命令を挿入するこ
とのない計算機システム構成方法を提供することにあ
る。
差異を吸収するために定義されている共通化エラーコー
ド136を、定数格納領域134に格納しなくても良い
ようにするため、実行環境差異吸収プログラムコード1
32からの戻り値と共通化エラーコード136の値を同
じ値にし、CPU121の実行できるImmediat
eロード命令181に埋め込める範囲内とするという手
段を採る。
を汎用レジスタにロードするときには、ゼロ拡張される
ようになっているとき、2の補数変換処理命令163等
を追加しなくても良いようにするために、共通化エラー
コード136を符号無しの正のデータとして定義する。
号無しの正のデータと定義することで、2の補数変換処
理命令163を追加しなくても良くなる。
や実行環境差異吸収プログラムコード132において、
そのような命令を追加しなくても良くなり、ROM効率
を良くすることができ、そのような命令を実行しなくて
良いため、性能の低下も防止できる。
を汎用レジスタにロードするときには、符号拡張される
ようになっているとき、ゼロ埋め込み命令165を追加
しなくても良いようにするため、共通化エラーコード1
36の値を、Immediate設定部182のMSB
をゼロとして表せる数値範囲内にする。
を、Immediate設定部182のMSBをゼロと
して表せる数値範囲内にすることで、ゼロ埋め込み命令
165を追加しなくても良くなる。
を、Immediate設定部182のMSBをゼロと
して表せる範囲の値に定義することで、ゼロ埋め込み命
令165の追加は考慮せずに済むことが可能となる。
や実行環境差異吸収プログラムコード132において、
そのような命令を追加しなくても良くなり、ROM効率
を良くすることができ、そのような命令を実行しなくて
良いため、性能の低下も防止できる。
設定することで、命令セットとして、 Immedia
teロード命令を備えるCPU121に対し、実行プロ
グラムコード131や実行環境差異吸収プログラムコー
ド132に、機械語命令を追加したり、定数格納領域1
34の容量を増加させることなく、ROM効率を向上さ
せることが可能になる。
を、図8ないし図16を用いて説明する。 〔開発環境とハードウェア〕先ず、図8および図9を用
いて本発明に係る異種実行環境における計算機システム
構成方法のソフトウェア開発環境と、それを動作させる
ためのハードウェアについて説明する。なお、本実施形
態では、ソースプログラムの記述を、C言語でおこなっ
た場合を想定するものとする。図8は、本発明に係る異
種実行環境における計算機システム構成方法のソフトウ
ェア開発環境の処理の流れを説明するための図である。
図9は、本発明に係る異種実行環境における計算機シス
テム構成方法を実行するためのハードウェア構成図であ
る。
境210を前提としている。
ンのプログラムが記述したアプリケーション本体100
と、共通化関数102のソースコードを入力して、通常
の開発手順の通り、プリプロセッサ211、Cコンパイ
ラ212、アセンブラ213、リンカ214と言うソフ
トウェアツールにより、実行プログラムを作成する。
工したり、読み飛ばしたり、他プログラムを組み込んだ
りマクロ定義処理などをおこなうCコンパイラに入る前
の前処理のためのツールである。Cコンパイラ212
は、記述されたテキストコードに対して、構文解析・意
味解析などをおこない、適当なアセンブラコードを生成
するものである。アセンブラ213は、アセンブラコー
ドをCPU121で実行させる機械語に変換するツール
である。
当なプログラムコードを選び、数種のプログラムコード
ファイルを結合して最終的にハードウェア上で実行させ
る実行プログラムを作成する。本実施形態の例では、ア
プリケーション本体100をコンパイルした実行プログ
ラムコード131、実行環境差異吸収プログラムコード
132、および、OSのコードといった必要なモジュー
ルと、定数格納領域134、スタック領域130などの
データ部分とを結合させて、実際にCPU121に実行
させる実行形式のモジュールを作成する。このライブラ
リ190には、実効環境に依存する実行環境プログラム
コードが含まれていて、機能に応じてリンカ214によ
り適当なプログラムが取りこまれて結合される。
ーションソフトウェア開発者に、ターゲットとするOS
107の諸機能を選択および設定させカスタマイズ化さ
れたOS107のプログラムコードを作成するソフトウ
ェアツールである。
evice201、ワーキングメモリ202から構成さ
れている。
ログラムとOS107は、ワーキングメモリ202に配
置される。
Mであり、実行形式のモジュールとして、ユーザの実行
プログラムと実行環境差異吸収プログラム、OSのモジ
ュールが格納される。また、データとしては、定数格納
領域134、スタック領域130が格納される。
インフレーム、パーソナルコンピュータやワークステー
ション等の汎用計算機上に実装することが可能である。
のできるハードウェア106を作成する手順を示すと以
下の様になる。
開発者は、汎用計算機上に定義されているターゲットの
OS107に対応するOS別プログラム開発環境210
を選択する。そして、選択されたOS別プログラム開発
環境210に付随しているOSコンフィグレータ191
を用いてカスタマイズしたOS107のプログラムコー
ドを作成する。
ード133と実行プログラムコード131と実行環境差
異吸収プログラムコード132をリンクしてできあがっ
たプログラムコード全体をワーキングメモリ202に組
み込む。また、予めOS107のOSプログラムコード
133が搭載されたワーキングメモリ202に、後から
実行プログラムコード131と実行環境差異プログラム
コード132をリンクしてできあがったプログラムコー
ドを組み込み、動的にリンクしながら実行させるように
しても良い。
グラムを実行できるような機構を備えていれば良いが、
本実施形態では、主にプログラムをワーキングメモリに
組み込んだシステムLSIなどを想定している。
6の構成の例について詳細に説明する。
こなうハードウェア106のメインのコンポーネントで
あり、図3で説明したような汎用レジスタ群222を備
えている。汎用レジスタ群222に含まれるのは、引数
格納用途レジスタ124、一時変数格納用途レジスタ1
25と、戻り値格納用途レジスタ126、ユーザ使用汎
用レジスタ127、スタックポインタレジスタ128、
プログラムカウンタレジスタ129などである。
なメモリエリアである。このRAM123に、スタック
領域205が実装されている。ROM122は、通常は
書きこむことができず、読みだし専用のメモリエリアで
ある。例えば、LSIの製造時にのみ情報を書きこみ、
通常の実行時には、このメモリエリアからは、情報を読
むだけである。ROM122には、定数格納領域134
が実装される。そして、ROM203bまたはRAM1
23の一部には、実行プログラム110と実行環境差異
プログラム111とOSのプログラムコードが組み込ま
れ、CPU121に読み出されて実行される。
ウェア106のコンポーネントであり、ハードウェア1
06がシステムLSIの場合には、LSI上に構成され
る特殊機能の処理回路である。具体的には、I/O(In
put/Output),ASIC(Application Specific Integ
rated Circuits),FPGA(Field Programmable Gat
e Arrays),DSP(Digital Signal Processor)など
が考えられる。
変換器、RS232−C処理回路、SCSI処理回路で
ある。ASICは、例えば、MPEG Video符号
器、MP3復号器等の専用処理回路である。FPGA
は、ハードウェア構成を可変にできるICを言う。DS
Pは、ディジタル信号処理専用のICである。
通り道であるバス203により、情報のやり取りをす
る。 〔Immediateロード命令〕本発明は、実行環境
の差異を吸収するレイヤにおいて、共通エラーコードを
返すときに、Immediateロード命令を用いるこ
とに特徴がある。そのため、次に、図10ないし図12
を用いてImmediateロード命令の形式と機能に
ついて説明する。図10は、Immediateロード
命令の形式を示した図である。図11は、Immedi
ateロード命令の他の形式を示した図である。図12
は、本発明に係る計算機システム構成方法において、共
通化エラーコードとImmediateロード命令の関
係を示す図である。
は、Immediate値(即値、定数データ)を、指
定されたレジスタに持ってくる命令である。その命令語
としての形式は、例えば、図10に示されるようにIm
mediate設定部182と汎用レジスタ選択部18
3とオペコード部184で構成される。オペコード部1
84は、命令の種類および機能を表すコードが入る部分
である。汎用レジスタ選択部183は、ロードするレジ
スタの番号を指定する。Immediate設定部18
2は、Immediate値を保持する部分である。
ら、命令の種類および機能がImmediateロード
命令181であることを判別し、Immediate設
定部182に指定されたImmediate値を、汎用
レジスタ選択部183で指定された汎用レジスタに格納
する。
エラーコード136の値と実行環境差異吸収プログラム
コード132の戻り値をImmediate設定部18
2の扱える範囲の数値と定義しておくと、例えば、Cコ
ンパイラ108は、定数格納領域データロード命令14
3の代わりに、実行環境の差異を吸収するための共通化
エラーコード136を、ユーザが記述したアプリケーシ
ョンに返すために、戻り値格納レジスタに設定する命令
などについて、その共通化エラーコード136をImm
ediate設定部182に保持するImmediat
eロード命令181を作成してくれる。
mediateロード命令181のImmediate
設定部182に共通化エラーコード136を定義してお
き、そのImmediate設定部182のMSBを0
として表せる正の値の範囲に設定する。
に示した形式のImmediateロード命令181i
の他に、図11に示した形式を持ち、ロードする汎用レ
ジスタを複数設定できるImmediateロード命令
181jを有することもあるが、このImmediat
eロード命令181jを、共通化エラーコード136の
設定のために、Immediateロード命令181i
と全く同様に使用することができる。 〔共通化エラーコードの具体例〕次に、図13を用いて
本発明で設定する共通化エラーコードの具体例について
説明する。図13は、本発明の計算機システム構成方法
に係る共通化エラーコードの具体例を示す図である。
mmediateロード命令181のImmediat
e選択部182として、例えば、1バイト長、2バイト
長の場合が想定できる。 〔プログラムコードとImmediateロード命令の
関係〕次に、図14を用いてプログラムコードとImm
ediateロード命令の関係を説明する。図14は、
プログラムコードにImmediateロード命令が埋
め込まれているときの計算機システム−A105aで取
扱われるデータ、プログラムコードと、レジスタ、メモ
リなどの関連をあらわす図である。
ーション本体をコンパイルして作られる実行形式のモジ
ュールであり、実行環境差異吸収プログラムコード13
2は、共通関数をコンパイルしてり、必要なモジュール
をリンクして得られる実行形式のモジュールである。こ
れらの実行形式のモジュールは、ハードウェア106の
ROM122またはRAM123上に実装される。
31および実行環境差異吸収プログラムコード132に
は、図4により説明した定数格納領域データロード命令
143の代わりに、Immediateロード命令18
1が利用される。そのImmediateロード命令1
81内部のImmediate選択部182は、MSB
164が0になっている。そして、MSB164以外の
Immediate部281には、共通化インターフェ
ース102により定められている共通化エラーコード1
36が埋め込まれている。
ードを定数格納領域に保持する必要がなくなる。 〔Cソースプログラムの例〕次に、図15および図16
を用いて本発明の計算機システム構成方法の開発環境で
準備されるCソースプログラムの例について説明する。
図15は、本発明の開発環境の共通化関数のCソースプ
ログラムの例を示した図である。図16は、本発明の開
発環境のアプリケーションソフトウェアのCソースプロ
グラムの例を示した図である。
機能を提供する関数であり、ユーザに対する関数インタ
フェースとしては、共通化インターフェース102を公
開する。共通化インターフェース102は、実質上、C
言語仕様でいう関数定義のことであり、インターフェー
ス機能名称242、引数のデータ型243、戻り値のデ
ータ型244を定義している。この図15に示す例で
は、インターフェース機能名称242は、「WPR_Wait_M
ail」であり、引数は二つであり、引数のデータ型24
3として、共に「int」型、戻り値のデータ型244
は、「unsigned int」型である。
は、実行環境の差異を吸収するためのコーディングがな
される。例えば、計算機システム−A105aの実行開
発環境−A104a上で動作させる場合には、そのOS
−A107aのシステムコール245aをコールするコ
ーディングがなされる。また、計算機システム−B10
5bの実行開発環境−B104b上で動作させる場合に
は、そのOS−B107bのシステムコール245aを
コールするコーディングがなされる。
により、ユーザに対して実行環境の差異を隠蔽すること
が可能であり、ユーザのアプリケーションからすると共
通化インタフェース102とその関数の機能のみを意識
すれば良い。
共通化関数101の内部の処理としては、図15に示さ
れるように、例えばシステムコール245aを介して所
望の処理をおこない、その結果、OS−A107aから
戻されるシステムコールのOS−A107a依存エラー
コード135u,135vを判別して、共通化インター
フェース102定義の共通化エラーコード136u,1
36v,136wを共通化関数101から戻り値として
返すことにする。これまで述べてきたように、共通化エ
ラーコード136の数値は、実行開発環境104および
計算機システム105に全く依存しないように、共通化
した定義を用いる。
を、Immediateロード命令181におけるIm
mediate設定部182のMSBを0として表せる
数値範囲であり、かつ、符号無しと定義するので、戻り
値のデータ型244と共に少なくともC言語仕様でデー
タ型として用いられるunsigned型で宣言する。図15の
共通化関数101では、汎用レジスタ群222と同じb
it長とし、unsigned int型で記述しているが、共通化
エラーコード136をunsigned short型、 unsigned ch
ar型といった汎用レジスタ群222のbit長よりも短
く定義しても構わない。
リケーションソフトウェアのCソースプログラムを示す
と、図16のようになる。この例では、アプリケーショ
ンプログラム関数261「ApplicationTask」が、共通
化関数101「WPR_Wait_Mail」を呼出している。
1は、内部で共通化関数101を呼出すだけであり、実
行環境に依存するコーディング入れないため、アプリケ
ーションレベルの開発においては、全く実行環境、O
S、実行される計算機を意識する必要はない。
プログラム関数261「ApplicationTask」が、共通化
関数101「WPR_Wait_Mail」を呼出し、戻り値をerror
_stateという変数263に入れて、その後、それが共通
化エラーコード136u,136vのどれにあたるを判
定し、その処理を分岐させている。戻り値をerror_stat
eと言う変数の型は、当然、共通化関数101「WPR_Wai
t_Mail」の戻り値の型と同じであり、共通化エラーコー
ド136の定義した型であるunsigned int型である。ま
た、共通化エラーコード136の型が、他のunsigned s
hort型、unsigned char型等のときには、その宣言した変
数263に格納する。変数263は、アプリケーション
プログラム関数261でC言語仕様のローカル変数宣言
またはグローバル変数宣言されているかどうかに従い、
OS別プログラム開発環境201によりそれぞれ、局所
変数及び一時変数としてスタック領域130またはグロ
ーバル変数としてスタック領域130以外のRAM領域
に実装される。
った実行環境で実行させるときのアプリケーション・プ
ログラムにエラーコードを返す際に、既存の命令セット
の体系を活かしながら、その共通化コードのインプリメ
ントのためのROM効率を良くし、むだな命令を挿入す
ることのない計算機システム構成方法を提供することが
できる。
システム」のシステム概要図である。
なうときの概念図である。
タ、プログラムコードと、レジスタ、メモリなどの関連
をあらわす図である。
る。
の説明図である。
る。
際の説明図である。
テム構成方法のソフトウェア開発環境の処理の流れを説
明するための図である。
テム構成方法を実行するためのハードウェア構成図であ
る。
た図である。
示した図である。
て、共通化エラーコードとImmediateロード命
令の関係を示す図である。
化エラーコードの具体例を示す図である。
ド命令が埋め込まれているときの計算機システム−A1
05aで取扱われるデータ、プログラムコードと、レジ
スタ、メモリなどの関連をあらわす図である。
ログラムの例を示した図である。
ウェアのCソースプログラムの例を示した図である。
番地 143…定数格納領域データロード命令 144…比較命令 145…実行プログラムへの戻り先番地 161…下位部 162…上位部 163…2の補数変換処理命令 164…MSB 165…ゼロ埋め込み命令 181…Immediateロード命令 182…Immediate設定部 183…汎用レジスタ選択部 184…オペコード部 190…ライブラリ 191…OSコンフィグレータ 201…デバイス 202…ワーキングメモリ 203…バス 210…OS別プログラム開発環境 211…プリプロセッサ 212…Cコンパイラ 213…アセンブラ 214…リンカ 222…汎用レジスタ群 241…共通化関数のCソースプログラム 242…インターフェース機能名称 243…引数のデータ型 244…戻り値のデータ型 245…システムコール 261…アプリケーションプログラム関数 262…引数 263…変数 281…MSB以外のImmediate部
Claims (5)
- 【請求項1】 計算機システムの異なった実行環境で実
行させるときのアプリケーション・プログラムにエラー
コードを返す際の異種実行環境における計算機システム
構成方法において、 この計算機システムは、ハードウェアとして汎用レジス
タを有するCPUと、そのハードウェア上で実行させる
オペレーティングシステムとを持ち、 前記CPUの命令セットとしては、前記汎用レジスタに
Immediate値を格納するImmediateロ
ード命令を含み、 前記オペレーティングシステム上で実行させる実行プロ
グラムとしては、前記アプリケーション・プログラムに
対応する実行プログラムと、異なった実行環境の差異を
吸収する実行環境差異吸収プログラムとからなり、 前記実行環境差異吸収プログラムから前記アプリケーシ
ョン・プログラムに対応する実行プログラムに、制御が
戻るときに返すエラーコードを実行環境によらない共通
化エラーコードとして定義しておき、 しかも、この共通化エラーコードを、前記Immedi
ateロード命令で設定可能な数値範囲内の値として定
め、 前記共通化エラーコードを、前記Immediateロ
ード命令の命令コード内に保持することを特徴とする異
種実行環境における計算機システム構成方法。 - 【請求項2】 前記共通化エラーコードを、前記Imm
ediate値のMSBをゼロとした数値範囲内で定め
ることを特徴とする請求項1記載の異種実行環境におけ
る計算機システム構成方法。 - 【請求項3】 前記命令セットの仕様として、前記汎用
レジスタのビット数より小さいデータを、前記汎用レジ
スタにロードするときに、そのデータの先頭部を自動的
にゼロ拡張するようになっているときに、 前記共通化エラーコードを、符号無しの正の数で定める
ことを特徴とする請求項1記載の異種実行環境における
計算機システム構成方法。 - 【請求項4】 前記命令セットの仕様として、前記汎用
レジスタのビット数より小さいデータを、前記汎用レジ
スタにロードするときに、そのデータの先頭部を自動的
に符号拡張するようになっているときに、 前記共通化エラーコードを、前記Immediate値
のMSBをゼロとした数値範囲内で定めることを特徴と
する請求項1記載の異種実行環境における計算機システ
ム構成方法。 - 【請求項5】 計算機システムの異なった実行環境で実
行させるときのアプリケーション・プログラムにエラー
コードを返す際の異種実行環境で実行させるためのプロ
グラムにおいて、 この計算機システムは、ハードウェアとして汎用レジス
タを有するCPUと、そのハードウェア上で実行させる
オペレーティングシステムとを持ち、 前記CPUの命令セットとしては、前記汎用レジスタに
Immediate値を格納するImmediateロ
ード命令を含み、 前記オペレーティングシステム上で実行させる実行プロ
グラムとしては、前記アプリケーション・プログラムに
対応する実行プログラムと、異なった実行環境の差異を
吸収する実行環境差異吸収プログラムとからなり、 前記実行環境差異吸収プログラムから前記アプリケーシ
ョン・プログラムに対応する実行プログラムに、制御が
戻るときに返すエラーコードを実行環境によらない共通
化エラーコードとして定義しておき、 しかも、この共通化エラーコードを、前記Immedi
ateロード命令で設定可能な数値範囲内の値として定
め、 前記共通化エラーコードを、前記Immediateロ
ード命令の命令コード内に保持して、 前記アプリケーション・プログラムに対応する実行プロ
グラム内のコードと前記実行環境差異吸収プログラム内
のコードにのみ共通化エラーコードの情報を含むことを
特徴とする異種実行環境で実行させるためのプログラ
ム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001290986A JP4755371B2 (ja) | 2001-09-25 | 2001-09-25 | 計算機システム |
US10/075,381 US6934892B2 (en) | 2001-09-25 | 2002-02-15 | Computing system construction method under execution environment to be dependent on OS |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001290986A JP4755371B2 (ja) | 2001-09-25 | 2001-09-25 | 計算機システム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2003099254A true JP2003099254A (ja) | 2003-04-04 |
JP2003099254A5 JP2003099254A5 (ja) | 2006-03-16 |
JP4755371B2 JP4755371B2 (ja) | 2011-08-24 |
Family
ID=19113205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001290986A Expired - Fee Related JP4755371B2 (ja) | 2001-09-25 | 2001-09-25 | 計算機システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US6934892B2 (ja) |
JP (1) | JP4755371B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012194845A (ja) * | 2011-03-17 | 2012-10-11 | Fujitsu Semiconductor Ltd | ラッパープログラム及び集積回路装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102006024233B4 (de) * | 2006-05-23 | 2016-11-10 | Fujitsu Technology Solutions Intellectual Property Gmbh | Verfahren und Vorrichtung für ein Fehlertoleranzmanagement einer Softwarekomponente |
WO2014158161A1 (en) * | 2013-03-28 | 2014-10-02 | Hewlett-Packard Development Company, L.P. | Error coordination message for a blade device having a logical processor in another system firmware domain |
CN110096339B (zh) * | 2019-05-10 | 2020-08-04 | 重庆八戒电子商务有限公司 | 一种基于系统负载实现的扩缩容配置推荐系统及方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0863363A (ja) | 1994-08-25 | 1996-03-08 | Fujitsu Ltd | 仮想実行環境実現システム |
JP2001101033A (ja) * | 1999-09-27 | 2001-04-13 | Hitachi Ltd | オペレーティングシステム及びアプリケーションプログラムの障害監視方法 |
US6523137B1 (en) * | 1999-10-12 | 2003-02-18 | Cisco Technology, Inc. | Method and system for remote testing of application program interfaces |
US6769115B1 (en) * | 2000-05-01 | 2004-07-27 | Emc Corporation | Adaptive interface for a software development environment |
US7496896B2 (en) * | 2003-07-17 | 2009-02-24 | Computer Associates Think, Inc. | Accessing return values and exceptions |
-
2001
- 2001-09-25 JP JP2001290986A patent/JP4755371B2/ja not_active Expired - Fee Related
-
2002
- 2002-02-15 US US10/075,381 patent/US6934892B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012194845A (ja) * | 2011-03-17 | 2012-10-11 | Fujitsu Semiconductor Ltd | ラッパープログラム及び集積回路装置 |
US8898524B2 (en) | 2011-03-17 | 2014-11-25 | Fujitsu Semiconductor Limited | Computer-readable medium storing wrapper program and integrated circuit apparatus |
Also Published As
Publication number | Publication date |
---|---|
JP4755371B2 (ja) | 2011-08-24 |
US20030061543A1 (en) | 2003-03-27 |
US6934892B2 (en) | 2005-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8423976B2 (en) | Extreme pipeline and optimized reordering technology | |
US8832672B2 (en) | Ensuring register availability for dynamic binary optimization | |
US5586328A (en) | Module dependency based incremental compiler and method | |
US5933642A (en) | Compiling system and method for reconfigurable computing | |
US9495136B2 (en) | Using aliasing information for dynamic binary optimization | |
EP1145111B1 (en) | Method for directly inlining virtual calls without on-stack replacement | |
JPH0731604B2 (ja) | 目標コンピュータ・システム、異なるコンピュータ・システム間でプログラムを実行する方法 | |
KR20070118663A (ko) | 고유 명령어를 이용한 레지스터 화일로서의 오퍼랜드스택에 대한 마이크로프로세서 엑세스 | |
JPH0731605B2 (ja) | コンピュータ・プログラムの第一バージョン処理方法 | |
US20040003377A1 (en) | Converting byte code instructions to a new instruction set | |
JP4041248B2 (ja) | コンパイラ装置、コンパイルプログラムが記録されたコンピュータ読み取り可能な記録媒体及びコンパイル方法 | |
Jones et al. | Programming issues raised by a multiprocessor | |
Conway et al. | Code generation for Mercury | |
US8549466B2 (en) | Tiered register allocation | |
JP2003099254A (ja) | 異種実行環境における計算機システム構成方法、および、異種実行環境で実行させるためのプログラム | |
JP2002182927A (ja) | 異種実行環境におけるレジスタの割当て方法、異種実行環境におけるソフトウェア開発方法、および、それを実行するプログラムが組み込まれたlsi | |
US6941549B1 (en) | Communicating between programs having different machine context organizations | |
Engel et al. | Using a low-level virtual machine to improve dynamic aspect support in operating system kernels | |
Anderson et al. | Supporting high level language semantics within hardware resident threads | |
Iliasov | Templates-based portable just-in-time compiler | |
Kaur et al. | Role of Compilers in Computer Architecture | |
CN116932085A (zh) | 一种启动WebAssembly程序的方法、计算机设备及存储介质 | |
CN116909652A (zh) | 一种启动WebAssembly程序的方法、计算机设备及存储介质 | |
Cores | IAR C/C++ Compiler | |
Family | IAR C/C++ Development Guide |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060130 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060130 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20060130 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080502 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090217 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090409 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090519 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090810 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20090825 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20090911 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110414 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110527 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140603 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |