[go: up one dir, main page]

JP2001043089A - プログラム実行方法 - Google Patents

プログラム実行方法

Info

Publication number
JP2001043089A
JP2001043089A JP11211823A JP21182399A JP2001043089A JP 2001043089 A JP2001043089 A JP 2001043089A JP 11211823 A JP11211823 A JP 11211823A JP 21182399 A JP21182399 A JP 21182399A JP 2001043089 A JP2001043089 A JP 2001043089A
Authority
JP
Japan
Prior art keywords
translator
terminal
program
code
server
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
Application number
JP11211823A
Other languages
English (en)
Inventor
Masahito Matsuzawa
雅人 松澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Victor Company of Japan Ltd
Original Assignee
Victor Company of Japan Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Victor Company of Japan Ltd filed Critical Victor Company of Japan Ltd
Priority to JP11211823A priority Critical patent/JP2001043089A/ja
Priority to EP00305928A priority patent/EP1072974A3/en
Publication of JP2001043089A publication Critical patent/JP2001043089A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】 中間コードを使用した場合、端末がトラ
ンスレータを常時保持しなければならないという問題を
解決する。 【解決手段】 端末1がアプリケーションプログラムを
実行するときに、トランスレータ6を必要に応じて獲得
する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、通信やディスクな
どの媒体を利用して配布及び実行されるプログラムのプ
ログラム実行方法に関し、特に同一の目的でありながら
異なるCPUが使用されている機器に対して単一のバイ
ナリ・アプリケーション・コードでいずれに対しても動
作し得るプログラム実行方法に関する。
【0002】
【従来の技術】マルチメディアシステムは、音声、グラ
フィックス、動画、画像、音声及びフルモーションビデ
オのような様々な情報ソースを、多様なアプリケーショ
ンと結合する。このようなマルチメディアシステムにつ
いては様々な用途における新たな利用方法が見いだされ
ている。
【0003】その例を挙げると、セットトップボックス
(set top box)などがある。マルチメディ
アアプリケーションにおいて使用される大量のデータ、
及びリアルタイム又はリアルタイムに近い状態でのデー
タ処理はハードウェア及びソフトウェアにとって大きな
負担となる。
【0004】ところで、アプリケーションプログラムを
実行するための様々なCPUが存在しているが、アプリ
ケーションプログラムの配布を考慮した場合、同一目的
のアプリケーションプログラムでも端末で使用されてい
るCPUに応じて、そのネイティブなコードをサーバ側
で用意するか、そのソースコードもしくは中間コードを
サーバ側で用意して、要求されるネイティブなコードに
変換して端末に対応することが一般的であった。
【0005】このように、CPUに依存しない中間コー
ドの形態でアプリケーションプログラムを流通させるこ
とで、多様なバイナリコードを必要とすることなく各種
の端末にプログラムを供給することが可能となる。この
方法によれば、ソースコードから生成した1種類のCP
Uに依存しない中間コードを配信システム上に置くだけ
で良く、ソースコードに比べて内容の改変が困難であ
り、セキュリティ上も不都合がない。しかし、この場合
は、個々のコンピュータシステムにおいて、中間コード
をそのプロセッサコードに変換するトランスレータが必
要になる。
【0006】このように、中間コードによって全く同一
のアプリケーションプログラムを配布し、各端末に予め
インストールされているトランスレータを利用して、実
行時にアプリケーションプログラムを実CPUのネイテ
ィブコードに変換してプログラムを実行する方法が考え
られている。
【0007】
【発明が解決しようとする課題】しかしながら、同一目
的のアプリケーションプログラムでも端末で使用されて
いるCPUに応じて、そのネイティブなコードをサーバ
側で用意するか、そのソースコードもしくは中間コード
をサーバ側で用意して、要求されるネイティブなコード
に変換して端末に対応する場合、予め複数のCPUに対
応するために意味的には同一内容の実行コードをCPU
の数に応じてもつか、1つの中間コードをもって端末か
らの要求時に変換しなければならない。
【0008】アプリケーション毎に複数のコードを持つ
ことは記憶容量の関係から困難であり、要求時に変換す
る方法ではサーバの負荷が一時的に増大して端末からの
要求に直ちに応答することができない。
【0009】一方、中間コードによって全く同一のアプ
リケーションプログラムを配布し、各端末に予めインス
トールされているトランスレータを利用して、実行時に
アプリケーションプログラムを実CPUのネイティブコ
ードに変換してプログラムを実行する方法の場合、トラ
ンスレータを常に端末側で持つことで、サーバ側は一つ
のアプリケーションについて一つの実行コードを持てば
良く、前述した従来例よりは遙かに効率的である。しか
し、端末では常にトランスレータのコードを保持しなけ
ればならず、場合によってはメモリ効率が悪くなるとい
う問題がある。
【0010】
【課題を解決するための手段】上述した課題を解決する
ために、特定のCPUを有する端末1とプログラムを有
するサーバ2とがあり、前記特定のCPUに依存しない
中間コードに変換されたプログラムを前記サーバ2から
前記端末1に送出し、前記端末1で前記プログラムを実
行するプログラム実行方法であって、前記中間コードに
変換されたプログラムを前記特定のCPUのコードに変
換するトランスレータ6のコードを、前記プログラムの
実行に先立って前記サーバ2からそのプログラムが実行
される端末1に対して送ることを特徴とするプログラム
実行方法を提供する。
【0011】
【発明の実施の形態】以下、本発明に係るプログラム実
行方法について図面を参照して説明する。
【0012】図1は本発明に係るプログラム実行方法の
処理システムを示す図である。プログラムを実行するた
めの端末は複数あり、その中の一台である端末1は、サ
ーバ2側に対して図示しない通信制御部を介してアプリ
ケーション7の要求を行う。このとき、端末1は自身が
トランスレータ6を保持していない場合、前述したアプ
リケーション7の要求と共に、トランスレータ6の要求
を行う。具体的には、端末1において演算処理を行うC
PUの種類を示し、必要なトランスレータのIDを指定
するCPU−IDとアプリケーションを指定する信号を
サーバ2側に送っている。
【0013】サーバ2側からアプリケーションプログラ
ム7b′が送られてきた場合、端末1がそれ以前にトラ
ンスレータ6を保持していれば、これを実行し、中間コ
ードからなるアプリケーションプログラム7b′を端末
1自身の実CPUコードに変換しアプリケーションプロ
グラム7bを作成する。
【0014】もし、端末1がトランスレータ6をアプリ
ケーションプログラム7b′の実行前に保持していなけ
れば、トランスレータ6が送られてくるまで待機し、ト
ランスレータ6の到着後、アプリケーションプログラム
7b′を実行して、アプリケーションプログラム7b′
を実CPUコードに変換する。なお、アプリケーション
プログラム7b′はトランスレータ6による実CPUコ
ードに変換された後はいつでも実行可能となる(アプリ
ケーションプログラム7a,7b)。
【0015】サーバ2側のトランスレータ選択及び保持
手段3では、予め定義されているバーチャルプロセッサ
コードという仮想のCPUをターゲットとした中間コー
ドを実CPUコードに変換するトランスレータ群を保持
しており、端末1から要求されるトランスレータ6のコ
ードを選択して取り出している。なお、トランスレータ
は1種類の実CPUに対して基本的に1つのコードが対
応し、その実CPU専用のコードで用意されているが、
複数の実CPU間の差異が小さく、同一のトランスレー
タが使用できることもある。
【0016】また、サーバ2側のアプリケーション選択
及び保持手段4では、予め定義されている中間コードに
よって記述されたアプリケーションプログラムを保持し
ており、端末1から要求されたアプリケーションを選択
して提供している。
【0017】次に、サーバ2側におけるトランスレータ
選択及び保持手段3では、端末1からトランスレータ6
のコードの送出を要求された場合、その要求に適合する
トランスレータ6を選択して端末1に送出する。例え
ば、図2は複数のトランスレータの候補があるときに、
最も適合するトランスレータのコードを選択して端末1
に送出する例を示しているが、トランスレータの選択方
法について、この方式に限定されるものではない。
【0018】図2によれば、実CPUの実行コードには
予めそのCPUの種別毎にCPU−IDが付されてい
る。そのCPU種別コードに該当するトランスレータが
存在する場合、そのバックウォード(Backwar
d)のエントリにその番号と同じ番号が存在することを
示し、0の場合はそのCPU種別コードに該当するトラ
ンスレータが用意されていないこと、そして、互換性の
ある(バックウォード・コンパチビリテイ)トランスレ
ータも存在しないことを示している。
【0019】一方、自身のCPU−ID以外の番号が書
かれている場合には、自身のCPU−ID専用のトラン
スレータは存在しないが、バックウォード・コンパチビ
リティのあるトランスレータが存在する可能性があるこ
とを意味している。
【0020】CPU−IDが10であるSHに対して
は、そのバックウォードのエントリに「0」の記述があ
りトランスレータが用意されておらず、しかもバックウ
ォード・コンパチビリテイのあるトランスレータも存在
していないことを示している。一方、CPU−IDが2
7であるVR4300に対しては、そのバックウォード
のエントリに27が設定されており、これがCPU−I
Dの番号と同一であることから専用のトランスレータが
用意されていることを示している。
【0021】また、CPU−IDが30であるPent
iumIIIでは、CPU−IDが30であるが、その
バックウォードのエントリには20が設定されている。
このことから、少なくともPentiumIII専用の
トランスレータが用意されていないことがわかるが、バ
ックウォードのエントリが20であるから、バックウォ
ード・コンパチビリテイのある、CPU−IDが20の
PentiumIIのエントリを検索することが指示さ
れる。
【0022】次に、CPU−IDが20のPentiu
mIIのエントリを見るとバックウォードのエントリが
15であるから、CPU−IDが15を示すPenti
umのエントリを検索することが指示され、Penti
umII専用のトランスレータが用意されていないこと
がわかる。
【0023】続いて、CPU−IDが15のPenti
umのエントリを見ると15であり、Pentium専
用のトランスレータが存在することがわかる。以上の動
作によって、PentiumIIIを要求されたとき、
結果的にはPentiumのトランスレータが選択され
ることとなる。
【0024】なお、存在するトランスレータについては
ハードディスクなどの一般的な記憶手段によってサーバ
内に配置され、前述した第2のトランスレータ選択及び
保持手段によって管理される。
【0025】上述した方法により、端末はトランスレー
タを常に保持する必要がなく、アプリケーションプログ
ラム実行の際に必要に応じて保持すれば良い。そのた
め、従来ではトランスレータを常駐させていたメモリを
有効に活用することが可能となる。
【0026】なお、本発明は、サーバ側が通信衛星など
を使用して一定周期で各種トランスレータのコードを発
信し、端末側が必要に応じてそのコードをダウンロード
する場合にも適用される。この場合、端末では自身の中
にトランスレータ選択手段を有し、適合するトランスレ
ータをダウンロードする。また、アプリケーションにつ
いても同様にアプリケーション選択手段が端末内に存在
することになる。
【0027】
【発明の効果】以上詳述したように、本発明に係るプロ
グラム実行方法によれば、同一内容のプログラムを異な
るCPU毎に作成しなければならないという制作者側の
問題解決の一つの手法である中間コードの抱える問題、
すなわち、端末がトランスレータを常時保持しなければ
ならずメモリ効率が悪いという問題を解決することが可
能である。
【図面の簡単な説明】
【図1】本発明に係るプログラム実行方法の処理システ
ムを示す図である。
【図2】本発明に係るプログラム実行方法において複数
のトランスレータの候補があるときに、最も適合するト
ランスレータのコードを選択して端末に送出する例を示
す図である。
【符号の説明】
1 端末 2 サーバ 3 トランスレータ選択及び保持手段 4 アプリケーションプログラム選択及び保持手段 5 OS 6 トランスレータ 7 アプリケーション

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】特定のCPUを有する端末とプログラムを
    有するサーバとがあり、 前記特定のCPUに依存しない中間コードに変換された
    プログラムを前記サーバから前記端末に送出し、前記端
    末で前記プログラムを実行するプログラム実行方法であ
    って、 前記中間コードに変換されたプログラムを前記特定のC
    PUのコードに変換するトランスレータのコードを、前
    記プログラムの実行に先立って前記サーバからそのプロ
    グラムが実行される端末に対して送ることを特徴とする
    プログラム実行方法。
JP11211823A 1999-07-27 1999-07-27 プログラム実行方法 Pending JP2001043089A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP11211823A JP2001043089A (ja) 1999-07-27 1999-07-27 プログラム実行方法
EP00305928A EP1072974A3 (en) 1999-07-27 2000-07-12 Method and system for executing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11211823A JP2001043089A (ja) 1999-07-27 1999-07-27 プログラム実行方法

Publications (1)

Publication Number Publication Date
JP2001043089A true JP2001043089A (ja) 2001-02-16

Family

ID=16612193

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11211823A Pending JP2001043089A (ja) 1999-07-27 1999-07-27 プログラム実行方法

Country Status (2)

Country Link
EP (1) EP1072974A3 (ja)
JP (1) JP2001043089A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008260304A (ja) * 2008-07-03 2008-10-30 Seiko Epson Corp プリンタおよびこのプリンタを用いた印刷方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0121064D0 (en) 2001-08-31 2001-10-24 Transitive Technologies Ltd Obtaining translation of generic code representation

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276881A (en) * 1990-06-25 1994-01-04 Hewlett-Packard Company ANDF producer using the HPcode-Plus compiler intermediate language
US5761512A (en) * 1995-12-27 1998-06-02 International Business Machines Corporation Automatic client-server complier

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008260304A (ja) * 2008-07-03 2008-10-30 Seiko Epson Corp プリンタおよびこのプリンタを用いた印刷方法

Also Published As

Publication number Publication date
EP1072974A2 (en) 2001-01-31
EP1072974A3 (en) 2003-10-15

Similar Documents

Publication Publication Date Title
US6356932B1 (en) Data processing method and device
JP3484049B2 (ja) 遅延コード化データ伝送
EP0817029B1 (en) A system and method for facilitating avoidance of an exceptional condition of a predetermined type during execution of a program
EP2791787B1 (en) Autonomous network streaming
JP7293314B2 (ja) イーサリアム仮想マシンのトランザクション処理方法、装置、機器、プログラムおよび媒体
US20100153949A1 (en) Live streaming media and data communication hub
TW200305823A (en) Systems and methods for managing drivers in a computing system
US20090187912A1 (en) Method and apparatus for migrating task in multi-processor system
WO2019041765A1 (zh) 一种访问桌面云虚拟机的方法、装置及桌面云控制器
US10834164B2 (en) Virtualizing audio and video devices using synchronous A/V streaming
US20210336994A1 (en) Attestation support for elastic cloud computing environments
WO2024066828A1 (zh) 一种数据处理方法、装置、设备、计算机可读存储介质及计算机程序产品
WO2024082985A1 (zh) 一种安装有加速器的卸载卡
US20200175452A1 (en) Facilitating provisioning in a mixed environment of locales
CN115328679A (zh) 异构函数库的自动化集成方法、计算设备及其系统
US20240311097A1 (en) Cloud Technology-Based Graphics Program Online Development Method and System, and Related Device
JP3993342B2 (ja) 電子計算機における処理の中断/再開方法
JP2001043089A (ja) プログラム実行方法
US11252457B2 (en) Multimedia streaming and routing apparatus and operation method of the same
US7802253B2 (en) System for session management of resources and tasks having records in the lookup table for the session
CN110568996A (zh) 基于设备驱动程序的本地存储容量扩充系统
US10261807B2 (en) Method and system for multiple embedded device links in a host executable
EP3791274B1 (en) Method and node for managing a request for hardware acceleration by means of an accelerator device
CN114528007B (zh) 组件处理方法、装置、电子设备及存储介质
WO2025097772A1 (zh) 编译的方法以及系统