JPH05224911A - 動的命令修正制御装置 - Google Patents

動的命令修正制御装置

Info

Publication number
JPH05224911A
JPH05224911A JP4305864A JP30586492A JPH05224911A JP H05224911 A JPH05224911 A JP H05224911A JP 4305864 A JP4305864 A JP 4305864A JP 30586492 A JP30586492 A JP 30586492A JP H05224911 A JPH05224911 A JP H05224911A
Authority
JP
Japan
Prior art keywords
program
execution
instruction
memory
modification
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
JP4305864A
Other languages
English (en)
Inventor
David W Trissel
デビット・ウェスリー・トリッセル
Steven R Menyhert
スティーブン・ロバート・メニーハート
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.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Publication of JPH05224911A publication Critical patent/JPH05224911A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running

Abstract

(57)【要約】 【目的】 動的命令修正制御装置(10、11、または
13)と、この制御装置の汎用コンピュータとの併用方
法を提供する。 【構成】 制御装置は、実行装置(12)とメモリ(1
4)を有している。メモリ(14)内には、制御プログ
ラム(16)が常駐している。制御プログラム(16)
は、導線(22)を介して実行装置(12)と通信す
る。またメモリ(14)内には、目的プログラム(1
8)が常駐し、導線(24)を介して制御プログラム
(16)と通信する。さらにメモリ(14)内には、修
正プログラム(20)が常駐し、導線(28)を介して
制御プログラム(16)と通信する。修正プログラム
(20)は、目的プログラム(18)の実行時間中に目
的プログラム(18)の変更を行い、代替コード群を生
成し組み込む。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般にはコンピュータ技
術に関し、より詳細にはプログラム実行制御装置に関す
るものである。
【0002】
【従来の技術】商用ソフトウェア、社内用または個人用
に開発されたソフトウェアパッケージ、または他の形態
のコンピュータコードの柔軟性、制御性、およびデータ
収集能力を迅速化かつ効率化することは、コンピュータ
のプログラマとユーザが常に希望するところである。ソ
フトウェアの柔軟性と制御性を実現するために、コンピ
ュータのプログラマとユーザは、コンピュータプログラ
ムの変更を目的としたコンピュータコード内のコンパイ
ラオプション、コンピュータハードウェアの例外(ex
ception)と中断点(break poin
t)、およびソフトウェアシミュレーションの使用を増
やしてきた。これらの技術はすべて、プログラマとユー
ザがプログラム実行中の柔軟性、プログラムの実行結果
とフローの制御能力、そしてソフトウェアとその実行に
関する知識獲得能力を得るために使用するものである。
【0003】最も原始的なコンピュータプログラム変更
方法は、コンピュータプログラムの編集、コンピュータ
プログラム内の命令の変更による所望の全修正、そして
この命令変更を反映するためのコンピュータコードのコ
ンパイル、リンク、および実行を行うことである。この
命令変更が十分でない場合、編集、修正、コンパイル、
リンク、および実行の各処理を再度行う必要がある。こ
の方法には、時間がかかる、使いやすくない、いかなる
意味でも柔軟性がないなどの欠点がある。
【0004】コンパイラオプションは、最適化レベルの
決定、およびデバッグ方法または機能の使用可能、およ
び/または統計情報の収拾などのコンパイル処理の過程
を変更するステートメントまたはコマンドである。コン
パイラオプションの変更、削除、または追加により、ユ
ーザまたはプログラマはコンピュータプログラムの性
能、実行フロー、および実行結果を変更することができ
る。コンパイラオプションは大抵の場合他の技術よりも
実現が容易なため、広く使用されている。いったんプロ
グラム実行を中断または完全停止すると、ユーザまたは
プログラマはコンピュータプログラムの編集、コンパイ
ラオプションの変更、コンパイル、リンク、およびプロ
グラム実行の起動をやり直さなければならない。幾つか
の変更や反復を必要とするプログラムの場合、例えばプ
ログラムの最適化の際、このコンパイラオプションの変
更とプログラムの再実行という処理は、時間がかかり、
使いやすくなく、かつ柔軟性に欠ける。
【0005】例外(すなわち割込み)および中断点は、
既存技術のものよりも使いやすいという点で改良されて
いる。例外および中断点は、ユーザまたはプログラマに
よる大幅な介入がなくても、柔軟に設定でき、またこれ
らによりプログラム実行フローと結果を変更することも
できる。例外および中断点により、ユーザおよびプログ
ラマはデバッグガなどのソフトウェアパッケージの利点
を得ることができた。すなわち、通常、デバッグガおよ
び他の同様なソフトウェアパッケージは、例外および/
または中断点に依存するところが多い。しかしながら、
例外および中断点の欠点は、空間的・時間的にハードウ
ェアまたはソフトウェアのオーバヘッドが多くかかるこ
とである。すなわち、例外または中断点のために、メモ
リマップが変更する可能性が生じ、コンピュータまたは
マイクロプロセッサは、幾つかの情報の記憶または移動
を急遽行う必要が生じ、時にはプログラムの実行フロー
またはデータの計算結果が失われ、そして例外から通常
のプログラム実行へ戻ることが簡単にできない可能性が
生じる。
【0006】柔軟性と制御性をより向上を実現するため
に、ソフトウェアのシミュレーションが広く使用される
ようになった。装置またはソフトウェアパッケージをシ
ミュレートすれば、ユーザまたはプログラマはシミュレ
ーション対象ソフトウェアまたは設計の全てのデータ、
実行、および性能評価を完全に制御することができる。
シミュレーションの最大の欠点は、極度に遅く時間がか
かることである。実際、設計またはプログラムをシミュ
レートした場合、この設計またはプログラムだけをシミ
ュレーションのオーバヘッドなしで実行する場合の10
0倍の実行時間がかかる。
【0007】
【発明が解決しようとする課題】従来、「パッケージ化
(canned)」商用ソフトウェアなどの形態のコン
ピュータプログラムの制御方法には以上のものがある
が、これらすべてに共通する特徴は以下の通りである。
(1)時間がかかる手続きを伴うこと、(2)ハードウ
ェアおよび/またはソフトウェアのオーバヘッドが多く
かかること、(3)特にプログラム実行時間中の機能が
動的または開放的(open ended)でないこ
と、(4)ユ−ザにとって使いやすくないこと、(5)
他のソフトウェアパッケージとインタフェース可能な大
規模なデータ解析またはデータ収集が可能でないこと、
(6)生成するコードが最適化または標準生品と互換性
がないこと、および/または(7)広範囲のアプリケー
ションに使用するための柔軟性に欠けることである。
【0008】
【課題を解決するための手段】本発明により、上記の必
要は充足され、他の利点も達成される。本発明の1実施
例は、汎用ディジタルコンピュータと併用する制御装置
から構成される。この制御装置は、メモリシステムから
構成される。このメモリシステムには、実行装置が連結
されている。そして、この実行装置は、メモリシステム
内に常駐する制御プログラムにより制御される。また、
メモリシステム内には目的プログラムも常駐し、実行装
置により実行される。さらに、メモリシステム内には動
的命令修正(dyanamic instructio
n modifying)プログラムも常駐している。
この動的命令修正プログラムは、実行装置による目的プ
ログラムの実行中または直接実行準備中に目的プログラ
ムの解析および変更を行う。この解析および変更によ
り、目的プログラムの実行は修正され、動的命令修正プ
ログラムにより生成される代替コード群の直接実行も包
含するようになる。
【0009】
【実施例】図1に、本発明による動的ソフトウェア命令
修正制御装置10が示されている。制御装置10は実行
装置12を有し、これは例えばマイクロプロセッサ、特
定用途向け集積回路(ASIC)装置、プログラマブル
ロジックアレイ(PLA)、配線論理(hardwir
e logic)、少なくとも部分的にマイクロコード
および/またはナノコードによりソフトウェア駆動され
る単一の実行装置、または複数の実行装置などであって
もよい。実行装置12は、制御装置10の「頭脳」とし
て機能する。ソフトウェアの実行は全て、すなわち殆ど
は計算処理と命令処理(例えばシステム制御)は、実行
装置12の制御の元でハードウェアを介して制御装置1
0内で行われる。実行装置12は、資源(resour
ce)の割当てまたは資源の割当てのためのソフトウェ
アの制御、システム保全性の実現、および制御装置10
との殆どすべての内外通信の制御を行う。
【0010】実行装置12は、メモリシステム、すなわ
ちメモリ14を少なくとも部分的に制御できなければな
らず、メモリ14は、少なくとも1つのコンピュータ記
憶媒体を有していなければならない。また、メモリシス
テム、すなわちメモリ14は、ダイナミックランダムア
クセスメモリ(DRAM)、ランダムアクセスメモリ
(RAM)、高速スタティックランダムアクセスメモリ
(FSRAM)、読取り専用記憶装置(ROM)、消去
可能プログラマブル読取り専用記憶装置(EPRO
M)、電気的消去可能プログラマブル読取り専用記憶装
置(EEPROM)、および周辺記憶装置などの数種類
の記憶装置の任意のものを有していてもよい。例えば図
1では、メモリシステムの第1部分、すなわちメモリ1
4内のメモリ部分17は、FSRAMであってもよい。
メモリシステムの第2部分、すなわちメモリ14内のメ
モリ部分19は、RAMであってもよい。メモリシステ
ムの第3部分、すなわちメモリ14内のメモリ部分15
は、DRAMであってもよい。メモリ14の他の部分
は、メモリマップド装置、周辺装置(例えばディスク駆
動機構、テープ駆動機構、印字装置、入出力(I/O)
ポート、モデム回線)などであってもよい。メモリマッ
プド装置は、メモリ14を介してアクセス可能な読取り
および/または記憶を行う装置である。また、メモリ1
4は、制御装置10のデータとコンピュータプログラム
の記憶にも使用される。
【0011】メモリ14内には、制御プログラム16も
常駐している。制御プログラム16は、実行装置12が
制御装置10を制御するのを援助する。制御プログラム
16は、単一の命令ほど単純なものであってもよい。ま
た、制御プログラム16は、実行装置12に対して複雑
なタスクを行う何100万行ものコードであってもよ
い。制御プログラム16が行えるタスクとしては、
(1)周辺装置の割当てと制御、(2)実行装置12に
対する時分割のスケジューリング、(3)メモリ管理の
実行、(4)メモリ不要部分の整理などの保守機能の提
供、(5)他のプログラムのロードおよび制御、(6)
実行装置12の優先順位の追跡などの有用な機能があ
る。制御プログラム16は、多数の機能を有し複雑化し
た場合、通常はオペレーティングシステムと呼ばれる。
制御プログラム16は、双方向導線22を介して実行装
置12に接続されている。導線22などの殆どの通信用
導線リンクは、通常はデータバス、アドレスバス、およ
び制御信号を有し、ソフトウェアパラメータ、ソフトウ
ェアコード、およびデータなどの情報を伝送することが
できる。
【0012】目的プログラム18は、制御装置10のメ
モリ14内に常駐している。殆どの場合、目的プログラ
ム18は、制御プログラム16または実行装置12によ
りメモリ14にロードされる。さらに、目的プログラム
18は、例えばROM、EPROM、またはEEPRO
Mなどの記憶装置内に常駐し、別の制御装置または外部
動作主体21(external agent)により
RAMに移されてもよい。外部動作主体21とは、コン
ピュータ、マイクロプロセッサ、または制御装置10お
よび制御装置10による収集データを制御できるような
実行装置12以外の実行装置である。外部動作主体21
は、制御装置10と異なるプログラムを実行してもよ
く、また制御装置10と同じメモリシステム内で動作
し、したがってメモリ14に記憶された同じプログラム
を実行してもよい。外部動作主体21は、導体23を介
してメモリ14に対して少なくとも部分的な読取りおよ
び/または書込みアクセスを行う。外部動作主体21に
よる直接記憶アクセス(DMA)などの方法を使用すれ
ば、制御プログラム16または実行装置12による介入
が殆どないか全くなくても、各種プログラムをメモリ1
4に移すことができる。外部動作主体21と類似した外
部動作主体は、ネットワークシステムおよび多重プロセ
ッサシステムで頻繁に使用される。外部動作主体21
は、データアクセスおよびプログラムメモリ割当て・ロ
ードなどのシステム機能を実行するために使用されるた
め、実行装置12などの主実行装置がプログラム実行と
いう重要タスクのためにより使用可能になる。
【0013】目的プログラム18は、コンピュータユー
ザまたはコンピュータプログラマが制御装置10を使用
して実行したいプログラムである。目的プログラム18
は、コンピュータアプリケーション(例えばスプレッド
シート、ワードプロセッサ、ウィルス検出プログラム、
ディスク駆動機構コピープログラム、および他の無数の
プログラム)、ユーザまたはプログラマにより開発され
修正を受けるプログラム、制御プログラム16自体、ま
たはユーザまたはプログラマが実行、修正、情報獲得、
性能向上、解析などを行いたいような全てのプログラム
であってもよい。目的プログラム18と制御プログラム
16は、双方向導線24を介して相互に通信および制御
することができる。目的プログラム18から制御プログ
ラム16へ通信する場合、通常は入出力機能、メモリア
クセス、およびデータの送受信などの操作が目的であ
る。制御プログラム16は目的プログラム18へ通信
し、目的プログラム18から実行装置12へのアクセス
許可、メモリ管理、およびデータの受渡しを行なう。実
行装置12は、導線25を介して目的プログラム18へ
直接実行アクセスを行う。
【0014】メモリ14内には動的命令修正プログラム
20も常駐している。修正プログラム20は、前述され
た目的プログラム18の場合と同様の方法で、メモリ1
4へ移したり常駐させることができる。修正プログラム
20の起動または実行は目的プログラム18の起動時に
起こり、修正プログラム20の起動は任意である。実行
装置12または制御プログラム16がメモリ14内のユ
ーザ定義フラグまたは変数(図示せず)の使用により修
正プログラム20の起動を指示された場合、目的プログ
ラム18の起動時に修正プログラム20が呼び出される
か起動される。実行装置12または制御プログラム16
が修正プログラム20の起動を指示されなかった場合、
修正プログラム20は実行されず、目的プログラム18
は修正プログラム20の干渉を受けずに実行される。
【0015】修正プログラム20が目的プログラム18
と共に起動されたと想定する。この場合、修正プログラ
ム20は、前述された目的プログラム18の場合と同様
の方法で、双方向導線28を介して制御プログラム16
および実行装置12と通信する。これで、修正プログラ
ム20は、次の図面を参照して後述される直接的・動的
方法で、導線26を介して目的プログラム18の修正、
監視、性能向上、制限、またはデータ収集を行うことが
できる。
【0016】図2は、動的命令修正制御装置、すなわち
制御装置11を示す。制御装置11は制御装置10と類
似しているが、図1で前述された制御プログラム16の
オペレーティングシステムが図2ではより詳細に示され
ている。このように図1と図2は類似しているため、図
2の幾つかの構成要素については説明を簡略化する。
【0017】制御装置11は、制御装置10と同様に実
行装置30とメモリ31を有している。制御装置10の
場合と同様に、実行装置30は双方向導線40を介して
オペレーティングシステム32と通信する。オペレーテ
ィングシステム32は、双方向導線42を介して目的プ
ログラム36と通信する。目的プログラム36と実行装
置30は、導線41を介して相互に通信する。導線42
と目的プログラム36は、それぞれに対応する制御装置
10の構成要素と類似している。修正プログラム38
は、制御装置10の修正プログラム20と同様の機能を
する。オペレーティングシステム32は双方向導線42
と50とともに示されているが、双方向導線42と50
はそれぞれ目的プログラム36と修正プログラム38と
接続され通信を行う。双方向導線42と50は、データ
の受渡し、入出力機能などに使用される。オペレーティ
ングシステム32の一部は、実行時ローダ34となって
いる。実行時ローダ34は、目的プログラム36と修正
プログラム38などの各種プログラムをロードし、実行
装置30による実行準備を行う。実行時ローダ34のこ
のロード・実行準備機能は、導線48と49を介して実
行される。
【0018】ユーザ、またはメモリ14内に記憶された
データファイル(図示せず)のような他の動作主体は、
データストリームのようなユーザまたは媒体要求によ
り、オペレーティングシステム32に任意の目的プログ
ラム36または特定の目的プログラム36の起動時に修
正プログラム38も起動するように指示する。オペレー
ティングシステム32は、実行時ローダに修正プログラ
ム38の起動条件を通知する。続いてユーザまたは他の
動作主体は、オペレーティングシステム32に目的プロ
グラム36の起動を指示する。オペレーティングシステ
ム32は、実行時ローダ34に目的プログラム36の起
動または実行を指示する。実行時ローダ34は、記憶装
置(図示せず)から目的プログラム36をロードし、目
的プログラム36の実行準備を行う。実行時ローダ34
は、目的プログラム36の起動のために修正プログラム
38も起動する必要があるか否かを判定する。必要であ
る場合、修正プログラム38は記憶装置からロードさ
れ、実行準備が行われる。これで、修正プログラム38
に制御が渡され、目的プログラム36の修正、監視、性
能向上、制限、またはデータ探索が直接的・動的に目的
プログラム36の実行前と実行時に行われる。修正プロ
グラム38と目的プログラム36の間で双方向導線46
を介してデータとプログラムコードが交換される。
【0019】再び図1と制御装置10について説明する
と、修正プログラム20は一旦起動されると、目的プロ
グラム18の修正方法の情報を受信することができる。
この情報は、2つの方法で受信することができる。第1
の方法は、修正プログラム20がこの情報をメモリ14
または周辺装置(図示せず)からロードするか、ユーザ
から対話形式で受信するというものである。この情報
(図示せず)により、修正プログラム20はその起動時
に目的プログラム18の修正、監視、性能向上、制限、
またはデータ収集を正確に行うことができる。第2の方
法は、目的プログラム18の起動前にユーザが修正プロ
グラム20をプログラムするというものである。
【0020】この情報を使用して、修正プログラム20
は目的プログラム18の実行準備、実行開始、または実
行のいずれかの間に目的プログラム18を走査する。図
3から図5に示されたこの走査機構は、目的プログラム
18の変更に使用される。図3は、図1の目的プログラ
ム18の一部を示している。この示された目的プログラ
ム18の一部をプログラム52と呼ぶことにする。プロ
グラム52は、6つの命令すなわちコンピュータコマン
ドを有し、これらは順に”INST A”から”INS
T F”というラベルが付けられている。これらの命令
は、順に”ADDX A”から”ADDX F”という
物理メモリアドレスから始まる。図1の修正プログラム
20は、プログラム20の”INST B”と”INS
T D”というラベルの付いた命令の修正、監視、性能
向上、制限、またはデータ収集を行うように指示されて
いた。”INST B”と”INST D”をそれぞれ
命令56と58と呼ぶことにする。プログラム52内で
は変更対象として命令56と58と呼ぶ2つの命令しか
選択されていないが、変更可能な命令の数には制限はな
い。また、変更可能な命令の発生回数にも制限はない。
例えば、7つの命令が変更対象として選択され、これら
の命令がそれぞれ10回発生しているとすると、合計1
0回出現する合計7つの命令を変更することができる。
【0021】修正プログラム20は、目的プログラム1
8内の命令を走査しながら、代替コード群54を生成す
る。図4に示された代替コード群54は、ユーザ、記憶
装置、周辺データストリーム、またはデータファイルか
らの入力データに基づいて生成される。代替コード群5
4には、図3の命令56と58の修正、監視、性能向
上、制限、またはデータ収集を直接的または間接的に
(サブルーチン呼出しまたはシステム呼出しにより)行
うためにユーザが使用する全ての命令が含まれている。
コードセクション64は命令56の修正に使用され、コ
ードセクション66は命令58の修正に使用される。
【0022】修正プログラム20は、”INST B”
およびユーザが修正したい他の全ての命令の発生を見つ
けるために、プログラム52を走査する。これらの命令
が一旦見つかると、プログラム52の全ての命令が走査
されるまで、1度に1コードセクションずつ代替コード
群54が形成される。例えば、図3で命令56として示
された命令”INST B”が一旦見つかると、命令5
6は図4の新規生成されたコードセクション64内で”
ADDX G”というラベルの付いたアドレスへの分岐
または飛越し命令に置換される。ここで、修正プログラ
ム20は、ユーザ入力または入力データに基づいて、コ
ードセクション64の最終命令内に復帰アドレスへの飛
越しまたは分岐命令を組み込む。この復帰アドレスは、
図4ではコードセクション64の最終命令として示さ
れ、”JMP/BRNCH ADDX C”というラベ
ルが付けられている。この場合、新規変更された命令5
6の直後の命令は命令”INST C”である。したが
って、命令”INST C”のアドレス”ADDX
C”への飛越し(jump)または分岐命令がコードセ
クション64の終りに追加され、代替コード群54が図
1の目的プログラム18へ適切に実行を戻すようにす
る。
【0023】ユーザ定義置換用代替コードの生成処理、
走査処理、および復帰または実行フロー変更のための飛
越しまたは分岐命令の追加処理は、目的プログラム18
内の修正を必要とする各命令の発生毎に繰り返される。
例えば、命令58はコードセクション66の始め、すな
わち”ADDX L”への飛越しまたは分岐命令に置換
される。コードセクション66は、コードセクション6
4と同様の方法で修正プログラム20により生成され
る。命令”JMP/BRNCH ADDX E”は、コ
ードセクション66の終りに追加され、代替コード群5
4が置換用代替コードの実行後に目的プログラム18へ
実行を戻すようにする。ここで注意すべきことは、全て
の命令が常に別個の単一の代替コードルーチンまたは別
個の複数の代替命令を必要とするとは限らないことであ
る。すなわち、幾つかの命令が代替コード群54の同一
部分へ飛び越すか分岐することも可能である。代替コー
ド群54の生成時には、メモリと時間の節約という点か
ら、幾つかの命令に置換するには代替コード群54の単
一部分を使用することが望ましい。
【0024】前述したように命令の変更および追加が行
われたため、プログラム52は実行時には図5に示され
たように実行する。図5は、修正プログラム20による
全ての修正の完了後に図3と図4の両方のプログラムと
命令を含むプログラム100を示している。分岐の方が
飛越しよりも効率的であり好ましいため、分岐または飛
越し命令は略語”BR”として示されている。図5の矢
印付き線110は、プログラム実行フロー例を示す。コ
ンピュータプログラム内のループ、飛越し、および分岐
の性質上、コードは常に順次(sequential)
または線形に実行されるとは限らない。図5では、簡潔
化のため順次方式が示されている。したがって、図5に
ついての以下の説明では、図1と図3から図5を参照す
ることがある。
【0025】プログラム100の実行は、以下のように
行われる。図3の命令”INSTA”が実行され、実行
装置12はアドレス”ADDX B”の命令”INST
B”の実行準備を行う。命令”INST B”、すなわ
ち命令56は、以前に修正プログラム20により飛越し
または分岐命令に置換されため、図5に示されたように
目的プログラム18の実行経路はアドレス”ADDX
G”へ変更される。この置換のため、目的プログラム5
2の一部を表すプログラム52の実行経路は変更され、
アドレス”ADDX G”で命令”INST G”が実
行されることで実行が継続する。ここで、コードセクシ
ョン64の各命令が何らかの論理的順序で実行され、プ
ログラム52のデータ処理、プログラム52の性能変
更、およびハードウェアまたはソフトウェア機能のトリ
ガなどの無数の機能のような追加機能が実行される。命
令56は飛越しまたは分岐命令に置換されため、ユーザ
または動作主体が目的プログラム18の実行結果を変更
したくない場合、命令56はコードセクション64の終
り近辺で複製しなければならない。ユーザが修正プログ
ラム20に目的プログラム18の実行結果を変更しない
ように指示した場合、修正プログラム20は図3の置換
命令”INST B”、すなわち命令56を複製し、図
4と図5に示されたように命令60としてコードセクシ
ョン64内に組み込む。このような複製機能を簡単に実
行するには、修正プログラム20をそのようにプログラ
ミングしておけばよい。コードセクション64内の命
令”INST G”から”INST B”(命令60)
が一旦実行されると、図5の命令”JMP/BRNCH
ADDX C”は目的プログラム18の命令”INS
T C”へ実行を戻す。したがって、プログラム52の
一部として示された目的プログラム18の修正、監視、
性能向上、または制限が動的・直接的に行われ、また修
正プログラム20と代替コード群54による目的プログ
ラム18の特徴付けにもオーバヘッドが少なくて済むこ
とになる。
【0026】命令”INST C”が図1の実行装置1
2により実行され、命令”INSTD”、すなわち命令
58が次に実行される命令になる。命令58は以前に修
正プログラム20により置換され、現在は図5に示され
たように代替コード群54のコードセクション66内の
アドレス”ADDX L”への飛越しまたは分岐命令と
なっている。命令”INST L”から”INST
O”が実行され、図5の最終命令”JMP/BRNCH
ADDX E”は論理的順序で次に実行可能なプログ
ラム52の命令”INST E ”へ制御を戻す。コー
ドセクション66の場合、コードセクション64の場合
と異なり、プログラム52の置換命令”INST D”
はコードセクション66内に組み込まれていない。この
場合、ユーザがプログラム52の実行に何らかの修正を
行い、またはプログラム52の実行結果の演算用アルゴ
リズムを変更することを意図していたからである。
【0027】目的プログラム18、すなわちプログラム
52を変更した以上の方法によれば、以下のことが可能
になる。(1)手続きの時間的効率化と、その結果とし
て他の方法に比べてプログラム実行の高速化、(2)ハ
ードウェアおよび/またはソフトウェアのオーバヘッド
の最小化、(3)プログラム実行時間中でさえも動的お
よび開放的な機能性、(4)既知の方法にはなかった使
いやすく対話形式の実行時プログラム修正、(5)他の
ソフトウェアパッケージと任意にインタフェース可能な
大規模なデータ解析またはデータ収集、(6)例外の除
去、および(7)柔軟性の増加。
【0028】図6は、目的プログラム18の一部、すな
わちプログラム68を示しているが、このプログラムの
アドレス”ADDX P”から”ADDX U”にはそ
れぞれ命令”INST P”から”INST U”が組
み込まれている。ユーザは修正プログラム20に幾つか
の命令、特に”INST Q”と”INST T”は目
的プログラム18から除去するか実行しないように指示
している。修正プログラム20は、図7の代替コード群
70を生成する。命令76は、図6の命令”INST
R”への飛越しまたは分岐命令である。命令78は、図
6の命令”INST U”への飛越しまたは分岐命令で
ある。図6の命令72と74は、ユーザが目的プログラ
ム18から除去したい命令である。命令72は、図7の
アドレス”ADDX X”の命令76への飛越しまたは
分岐命令に置換される。命令74は、図7のアドレス”
ADDX Y”の命令78への飛越しまたは分岐命令に
置換される。これで、命令72と74は目的プログラム
18から除去される。
【0029】修正プログラム20をもう少しインテリジ
ェント化し、常に目的プログラム18を飛越しまたは分
岐命令に置換する規則に従わないで適宜最適化を行うよ
うに指示すれば、修正プログラム20をより効率化する
ことができる。そうすれば、例えば図7のプログラムを
図6と図7の実施例で作成する必要がなくなる。図6の
命令72と74を「無処理」、すなわち”NOP”とい
う単数または複数の命令に置換できるようになる。この
置換のため、命令72と74は時間的・空間的に効率よ
く目的プログラム18から除去されることになる。同様
にして、命令72と74を1つだけの命令に置換すれ
ば、この命令は、場合によっては、目的プログラム18
内の命令72と74と同一物理空間を占有できるように
なる。上記のNOP命令による置換の場合と、1命令に
よる置換の場合では、図7の代替コード群70は存在し
なくなる。このように代替コード群70の必要性を無く
すことで既に時間的・空間的効率が向上しているが、目
的プログラム18の実行から2つの飛越しまたは分岐命
令を除去することで修正プログラム20はさらに効率化
する。この結果、図6の命令72をアドレス”ADDX
X”へ飛越しまたは分岐させることも、図7の命令7
6を目的プログラム18へ飛越しまたは分岐させること
も必要なくなる。
【0030】図8には、図2の制御装置と類似した制御
装置が示されている。図2と図8は非常に類似している
ため、図8の制御装置の幾つかの構成要素は、図2の制
御装置と同一のラベルが付けられている。制御装置13
では、修正プログラム38は外部データ集合、すなわち
データファイル84へ、またはメモリ31の変更可能部
分へデータを書き出せることが示されている。データフ
ァイル84は、目的プログラム36の情報をいくらでも
含むことができる。ユーザが修正プログラム38に目的
プログラム36の大規模データ解析を行うように指示ま
たはプログラミングするのは困難なことがある。また、
数多くの解析タスクを実行可能なソフトウェアパッケー
ジがある時に、ユーザが修正プログラム38をスプレッ
ドシートまたは統計的解析器などとして動作するように
プログラミングすれば時間の浪費になるであろう。
【0031】ユーザが大規模データ解析を行いたい場
合、修正プログラム38はデータファイル84を周辺装
置82へ書き込むことができる。もう1つできること
は、修正プログラム38をデータ集合85をメモリ31
に書き込むことである。データ集合85、データファイ
ル84、およびこれらの相互接続は概念的に類似してい
るため、データファイル84についてだけ詳細に説明す
る。周辺装置82は、テープ駆動機構、ディスク駆動機
構、および別のコンピュータなどの種々の記憶装置であ
ってもよい。修正プログラム38と代替コード群(通常
は修正プログラム38の一部として生成される)からデ
ータファイル84への読取り書込みは、双方向導線90
を介して行われる。修正プログラム38とデータ集合8
5を接続する導線47も、導線90と同様に機能する。
【0032】ユーザは、オペレーティングシステム32
にスプレッドシートや統計的解析器などのアプリケーシ
ョンプログラム80をロードするように指示することが
できる。すると、オペレーティングシステム32は、実
行時ローダ34にアプリケーションプログラム80をメ
モリ31にロードし実行準備を行うように指示する。ア
プリケーションプログラム80、オペレーティングシス
テム32、および実行時ローダ34は双方向導線86と
87を使用して、データ通信を行ったり入出力とメモリ
アクセスなどの機能を実行する。アプリケーションプロ
グラム80が一旦メモリ31内に入り実行装置30によ
り実行されると、ユーザはアプリケーションプログラム
80を使用して、アプリケーションプログラム80にと
って許容可能な任意の方法でデータファイル84の解析
を行うことができる。双方向導線88は、アプリケーシ
ョンプログラム80とデータファイル84の間の解析用
リンク(analysis link)を示している。
メモリ31内のデータ集合85もデータファイル84と
同様の方法でアプリケーションプログラム80により解
析できるが、この解析を行うための接続は図示されてい
るものに限定されない。
【0033】図9は、本明細書中の図3と図4で説明さ
れた動的・直接的命令修正方法を流れ図の形で示してい
る。図9は、方法99を示す。方法99は、初期設定ス
テップ100から始まる。初期設定ステップ100は、
システムの実行準備に必要な全ステップ、すなわちメモ
リへのソフトウェアのロード、修正プログラムのような
ソフトウェアのプログラミング、オペレーティングシス
テムの適正設定、目的プログラムに必要な全ハードウェ
アの接続などのステップを表している。多くの場合、ユ
ーザが目的プログラムの実行準備を行う前に、全初期設
定はハードウェアまたはソフトウェアにより完了されて
いる。幾つかの場合、全初期設定はユーザの介入なしに
オペレーティングシステムまたは実行装置により行うこ
ともできる。
【0034】初期設定が一旦完了すると、ステップ10
2で制御装置内で目的プログラムの実行準備または実行
開始のいずれかが行われる。次に、ステップ104で修
正プログラムが実行され、修正プログラムは目的プログ
ラムの走査を開始する。走査手順は、ステップ106、
108、および110で示されている。ステップ106
では、修正プログラムは目的プログラム内の修正や変更
などを必要とする命令を見つけるために、目的プログラ
ムの走査を行う。修正するべき命令が目的プログラム内
で一旦見つかると、ステップ108で修正プログラムは
その命令を置換するための代替コード群の一部を生成す
る。この代替コード群の一部は、分岐または飛越命令の
使用により、目的プログラムの実行フロー内に組み込ま
れ、ステップ106で見つけられた目的プログラム内の
命令の置換、変更、修正、監視、または制限を行う。こ
の目的プログラム変更は、ステップ110で説明され
る。
【0035】ステップ106、108、および110
は、変更を必要とする目的プログラム内の全命令が処理
されるまで実行される。目的プログラム内の全命令が一
旦走査または処理されると、代替コード群全体が完了す
る。ステップ112で目的プログラムが実行を完了する
まで、代替コード群全体は目的プログラムの一部として
実行される。ステップ114では、代替コード群と目的
プログラムが実行を完了する。データ解析、およびデー
タ収集などのタスクが、数多くの方法で実行することが
できる。
【0036】本発明による方法は柔軟性があるため、図
1から図8で説明された制御装置と方法は幾つかの用途
に使用でき、幾つかの有用な機能を実行することができ
る。これらの機能の幾つかについて以下に説明する。
【0037】本明細書中に記載された方法と制御装置を
使用すれば、デバッガの生成とデバッガ機能の実行を行
うことができる。ユーザは修正プログラムに、目的プロ
グラムの単一ステップ実行と、目的プログラムへの中断
点の組み込みを指示することができる。単一ステップと
は、目的プログラムの実行中に修正プログラムが命令毎
に新規代替コード群を生成することである。この新規代
替コード群は、演算結果、演算項、アドレス、演算子、
実行装置状態、レジスタ値、およびメモリ内記憶値の表
示または印字などのデバッガの有名な機能を実行するこ
とができる。この方法では例外は避けられ、また既知の
デバッグ方法よりも柔軟性とユーザとの対話が多いた
め、図3と図4の方法を使用するデバッガの方が優れて
いることになる。
【0038】本明細書中に記載された方法と制御装置を
使用すれば、代替コード群を生成し、ハードウェアトリ
ガと呼ばれるハードウェアの始動または同期化、または
ソフトウェア事象のトリガを行うことができる。ユーザ
は、修正プログラムに目的プログラム内の特定命令を変
更するように指示することができる。またユーザは、目
的プログラム内の修正を必要とする命令と置換するため
の命令を修正プログラム内に組み込むことができる。ユ
ーザ情報と修正プログラムによる入力命令とから生成さ
れた代替コード群は、目的プログラム内で発生する事象
に基づいて、外部または内部のハードウェアまたはソフ
トウェアパッケージのトリガまたは同期化を行うことが
できる。
【0039】また、本明細書中に記載された方法と制御
装置を使用すれば、ハードウェア装置を制御するソフト
ウェアインタフェースまたは他のソフトウェアでアクセ
ス可能なインタフェースの障害を解析することができ
る。例えば、ユーザがディスク駆動機構でデータの読取
り書込み時に障害が発生する場合がある。この場合、ユ
ーザは、ディスクの一部を読み取るプログラムを作成す
るか、またはディスク駆動機構にアクセスする「パッケ
ージ化」商用プログラムを使用することができる。する
と、このプログラムが目的プログラムになる。ここでユ
ーザは、修正プログラムに一切のディスク上データの読
取り書込みの実行を遮断するように指示する。またユー
ザは、修正プログラムにディスク上データの読取り書込
みの代替処理またはディスク上データの読取り書込みの
監視方法を指示する。すると修正プログラムは、代替コ
ード群を生成し、ディスク上データの読取り書込みの遮
断およびディスク駆動機構の性能解析をユーザの意図し
た方法で行う。ユーザは、修正プログラムにより遮断さ
れたデータからも代替コード群からも、ディスク駆動機
構障害のソフトウェアまたはハードウェア上の原因を判
別することができる。さらに、本明細書中に記載された
方法と制御装置を使用すれば、ハードウェアとソフトウ
ェアの設計を支援することができる。例えば、特定の環
境で実行するアプリケーションプログラムを使用するた
めには、キャッシュメモリを最適化する必要がある。こ
のアプリケーションプログラムを実行してメモリの読取
り書込みによるデータの収集を行う場合、修正プログラ
ムと代替コード群を使用する方法でアプリケーションプ
ログラムを監視することができる。ここで収集されたデ
ータは、代替コード群および/または修正プログラムに
よりデータファイルに書き込むことができる。そして、
このデータファイルをキャッシュメモリ解析パッケージ
が使用すれば、アプリケーションプログラムによるメモ
リの読取り書込みに最適なキャッシュメモリを設計する
ことができる。
【0040】さらにまた、本明細書中に記載された方法
と制御装置を使用すれば、目的プログラムの実行時性能
データを収集することができる。代替コード群は、アド
レス、演算項、または特定命令の発生回数を数えること
ができる。代替コード群は、カウンタまたはタイマの使
用により特定事象間の時間を追跡することができる。代
替コード群は、ユーザと対話しユーザ変更パラメータを
受け取ることにより、目的プログラムの実行時性能を修
正することができる。例えば、乗算に時間がかかり過ぎ
る場合、ユーザは乗算の代わりに別のアルゴリズムを使
用して性能変化を観察してもよい。
【0041】ソフトウェアの互換性は、多くのマイクロ
プロセッサメーカーとソフトウェア会社にとって重要な
話題であり課題であった。これらの問題の幾つかに対す
る解決策としては、動的命令修正制御装置が考えられ
る。例えば、ユーザがソフトウェアパッケージAをソフ
トウェア会社Bから購入したと想定する。ソフトウェア
パッケージAは、実行装置Cと呼ぶ特定マイクロプロセ
ッサまたは特定コンピュータと互換性のあるソフトウェ
アパッケージである。ユーザは、ソフトウェアパッケー
ジAを実行装置C上で長年使用してきた。そこでユーザ
は、実行装置Cを新規異機種の実行装置Dへグレードア
ップし、かつソフトウェアパッケージA内に蓄積された
全てのデータとオプションを保持することを希望してい
る。しかし、ソフトウェアパッケージAは、ユーザが購
入したい新規上位機種の実行装置Dと互換性がない。図
1から図8に示された動的命令修正制御装置とその操作
方法を使用すれば、ソフトウェアパッケージA内の全て
の互換性のないコードを実行時に実行装置Dと互換性の
あるものに動的・直接的に置換することができる。した
がって、ソフトウェア会社Bは、1つのバージョンのソ
フトウェアを作成すれば、本明細書中に記載された本発
明による方法と制御装置を使用することにより、そのバ
ージョンを多くの異機種の実行装置上で実行させること
ができる。この方法は、実行装置がグレードアップした
り互換性がなくなる毎にソフトウェア会社Bが新規バー
ジョンのコードを作成し直すよりもはるかに優れてい
る。また、この方法によれば、ユーザが購入できるソフ
トウェアパッケージの種類について柔軟性が向上する。
さらに、この方法によれば、ユーザが購入するべき実行
装置の機種を決める際にも柔軟性が向上する。
【0042】以上、本発明を具体的実施例を参照しなが
ら開示および説明したが、当業者はさらに修正および改
良を思い浮かぶであろう。例えば、動的命令修正制御装
置、方法、およびシステムを使用する他の多くのアプリ
ケーションソフトウェア、すなわちウィルス検出ソフト
ウェア、機密保護ソフトウェア、実行時コード最適化ソ
フトウェア、および顧客対応ハードウェアインターフェ
ースソフトウェアなどの有用なソフトウェアを設計する
ことができる。制御プログラムは、制御装置に対する基
本制御機能を有したまま、幾つかの形態で存在し、また
多くの各種機能を有していてもよい。実行装置は、複数
の装置、1台のワークステーション、1台のスーパーコ
ンピュータ、またはマイクロプロセッサなどのいずれで
あってもよい。修正プログラムのユーザインタフェース
には、かなりの種類があってもよい。データ集合または
データファイルへ送信されるデータは、場合によって
は、別のコンピュータシステムまたは受信主体へ送信ま
たは中継されてもよい。このように、本発明は開示され
た具体的形態に限定されるものではなく、添付された特
許請求の範囲内で本発明の精神と範囲とから逸脱しない
全ての修正を包含するものと解釈するべきである。
【図面の簡単な説明】
【図1】本発明による動的命令修正制御装置の1実施例
を示すブロック図である。
【図2】本発明による動的命令修正制御装置の別の実施
例を示すブロック図である。
【図3】本発明による目的プログラムコードセグメント
を示す。
【図4】本発明による代替コード群セグメントを示す。
【図5】本発明によるプログラム実行フローを示す。
【図6】本発明による目的プログラムコードセグメント
の別の実施例を示す。
【図7】本発明による代替コード群セグメントの別の実
施例を示す。
【図8】本発明による動的命令修正制御装置のさらに別
の実施例を示すブロック図である。
【図9】動的命令修正方法の流れ図である。
【符号の説明】
10 制御装置 12 実行装置 14 メモリシステム 16 制御プログラム 18 目的プログラム 20 動的命令修正プログラム

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】ディジタル・コンピュータと共に使用する
    制御装置(10)であって、前記制御装置は:実行装置
    (12);および前記実行装置と結合されたメモリシス
    テム(14)とから構成され、前記メモリシステムは:
    前記メモリシステムの第1部分内に常駐し、前記実行装
    置の動作を制御する制御プログラム(16);前記メモ
    リシステムの第2部分内に常駐し、前記実行装置により
    実行される目的プログラム(18);および前記メモリ
    ・システムの第3部分内に常駐する動的命令修正プログ
    ラム(20)であって、前記目的プログラムが実行装置
    によって実行される間または直接実行のため実行装置に
    よって準備される間、前記動的命令修正プログラムは前
    記目的プログラムを解析および変更し、前記実行装置に
    よる直接実行による直接実行のため前記動的命令修正プ
    ログラムによって生成される代替コード群を組み込む動
    的命令修正プログラム(20);から構成されることを
    特徴とする制御装置。
JP4305864A 1991-11-01 1992-10-21 動的命令修正制御装置 Pending JPH05224911A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/786,628 US5274815A (en) 1991-11-01 1991-11-01 Dynamic instruction modifying controller and operation method
US786628 1991-11-01

Publications (1)

Publication Number Publication Date
JPH05224911A true JPH05224911A (ja) 1993-09-03

Family

ID=25139151

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4305864A Pending JPH05224911A (ja) 1991-11-01 1992-10-21 動的命令修正制御装置

Country Status (3)

Country Link
US (1) US5274815A (ja)
EP (1) EP0539827A3 (ja)
JP (1) JPH05224911A (ja)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930020263A (ko) * 1992-03-06 1993-10-19 윌리암 에이취. 뉴콤 프로그램 로딩 및 기억방법
US5590347A (en) * 1992-12-07 1996-12-31 Microsoft Corporation Method and system for specifying alternate behavior of a software system using alternate behavior indicia
US5604895A (en) * 1994-02-22 1997-02-18 Motorola Inc. Method and apparatus for inserting computer code into a high level language (HLL) software model of an electrical circuit to monitor test coverage of the software model when exposed to test inputs
US5522077A (en) * 1994-05-19 1996-05-28 Ontos, Inc. Object oriented network system for allocating ranges of globally unique object identifiers from a server process to client processes which release unused identifiers
DE69511556D1 (de) * 1994-06-01 1999-09-23 Quantum Leap Innovations Inc Computervirenfalle
US5551051A (en) * 1994-09-20 1996-08-27 Motorola, Inc. Isolated multiprocessing system having tracking circuit for verifyng only that the processor is executing set of entry instructions upon initiation of the system controller program
US5659801A (en) * 1994-12-07 1997-08-19 Emc Corporation Method and apparatus for replacing resident peripheral device control microcode by download via an application program
US5649135A (en) * 1995-01-17 1997-07-15 International Business Machines Corporation Parallel processing system and method using surrogate instructions
US6260057B1 (en) * 1995-03-01 2001-07-10 Sun Microsystems, Inc. Apparatus and method for high performance implementation of system calls
US5802302A (en) * 1995-06-29 1998-09-01 International Business Machines Corporation System and method for response time measurement in high speed data transmission networks
US5862370A (en) * 1995-09-27 1999-01-19 Vlsi Technology, Inc. Data processor system with instruction substitution filter for deimplementing instructions
US6173337B1 (en) * 1996-03-08 2001-01-09 Apple Computer, Inc. Method and apparatus for relaying events intended for a first application program to a second application program
US5812854A (en) * 1996-03-18 1998-09-22 International Business Machines Corporation Mechanism for integrating user-defined instructions with compiler-generated instructions and for optimizing the integrated instruction stream
AU3496797A (en) * 1996-06-21 1998-01-07 Integrated Computing Engines, Inc. Network based programmable media manipulator
US6526456B1 (en) * 1996-07-01 2003-02-25 David Ian Allan Distribution and controlled use of software products
US6199152B1 (en) * 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
JP2002515999A (ja) * 1996-08-28 2002-05-28 ウィンド リヴァー システムズ インコーポレイテッド 複数プロセッサーで分割されるソフトウエア診断のためのツール
US5832208A (en) * 1996-09-05 1998-11-03 Cheyenne Software International Sales Corp. Anti-virus agent for use with databases and mail servers
US5797016A (en) * 1996-10-29 1998-08-18 Cheyenne Software Inc. Regeneration agent for back-up software
US6611878B2 (en) 1996-11-08 2003-08-26 International Business Machines Corporation Method and apparatus for software technology injection for operating systems which assign separate process address spaces
US6145124A (en) * 1997-08-12 2000-11-07 Veronex Technologies, Inc. Software optimization system
US6263489B1 (en) * 1998-04-30 2001-07-17 Hewlett-Packard Company Method and apparatus for debugging of optimized code
US6434741B1 (en) 1998-04-30 2002-08-13 Hewlett-Packard Company Method and apparatus for debugging of optimized code using emulation
JP4253875B2 (ja) 1998-09-30 2009-04-15 ソニー株式会社 送信方法および送信装置、受信方法および受信装置、並びに伝送方法および伝送システム
US6295641B1 (en) * 1998-12-03 2001-09-25 International Business Machines Corporation Method and apparatus for dynamically selecting bytecodes for just in time compiling in a user's environment
US20020135611A1 (en) * 1999-03-04 2002-09-26 Trevor Deosaran Remote performance management to accelerate distributed processes
US6580431B1 (en) 1999-03-04 2003-06-17 Nexmem System, method, and computer program product for intelligent memory to accelerate processes
US7634635B1 (en) 1999-06-14 2009-12-15 Brian Holscher Systems and methods for reordering processor instructions
US7089404B1 (en) 1999-06-14 2006-08-08 Transmeta Corporation Method and apparatus for enhancing scheduling in an advanced microprocessor
US6748589B1 (en) 1999-10-20 2004-06-08 Transmeta Corporation Method for increasing the speed of speculative execution
JP2001125781A (ja) * 1999-10-29 2001-05-11 Matsushita Electric Ind Co Ltd マイクロプロセッサ、およびマイクロプロセッサにおけるプログラム変更方法
JP2001184203A (ja) * 1999-12-24 2001-07-06 Matsushita Electric Ind Co Ltd プログラム修正装置
US6901557B1 (en) * 2000-02-25 2005-05-31 Intel Corporation State/activity indication using icons on an LCD
US6968469B1 (en) 2000-06-16 2005-11-22 Transmeta Corporation System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored
US20030005408A1 (en) * 2001-07-02 2003-01-02 Pradeep Tumati System and method for creating software modifiable without halting its execution
US20030005409A1 (en) * 2001-07-02 2003-01-02 Pradeep Tumati System and method for modifying software without halting its execution
IL150911A0 (en) * 2002-07-25 2003-02-12 Sphera Technologies Ltd A method and apparatus for dynamically allocating and managing resources in a computerized system having multiple consumers
US7051322B2 (en) * 2002-12-06 2006-05-23 @Stake, Inc. Software analysis framework
WO2005098625A1 (en) * 2004-04-07 2005-10-20 Iac Search & Media Inc. Methods and systems for providing functionality to software applications
US20060200827A1 (en) * 2005-02-18 2006-09-07 Sidlosky Jeffrey A J Methods and systems providing desktop search capability to software application
EP1622009A1 (en) * 2004-07-27 2006-02-01 Texas Instruments Incorporated JSM architecture and systems
US8918366B2 (en) * 2005-02-07 2014-12-23 Mimosa Systems, Inc. Synthetic full copies of data and dynamic bulk-to-brick transformation
US8812433B2 (en) * 2005-02-07 2014-08-19 Mimosa Systems, Inc. Dynamic bulk-to-brick transformation of data
US8799206B2 (en) * 2005-02-07 2014-08-05 Mimosa Systems, Inc. Dynamic bulk-to-brick transformation of data
EP1929412A4 (en) * 2005-08-23 2009-10-28 Mimosa Systems Inc MIGRATION ENTERPRISE SERVER VERSION BY PRESERVING IDENTITY
SE531389C2 (sv) * 2006-03-01 2009-03-17 Abb Ab Metod för hantering av olika versioner av en applikation och ett automationssystem
US20080005619A1 (en) * 2006-06-29 2008-01-03 Tamarah Arons Validation of software execution paths
US20100218261A1 (en) * 2009-02-26 2010-08-26 Schneider James P Isolating processes using aspects
US8516229B2 (en) * 2010-02-05 2013-08-20 International Business Machines Corporation Two pass test case generation using self-modifying instruction replacement
CN109190366B (zh) * 2018-09-14 2021-11-19 郑州云海信息技术有限公司 一种程序处理方法以及相关装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2555963C2 (de) * 1975-12-12 1982-10-28 Ibm Deutschland Gmbh, 7000 Stuttgart Einrichtung zur Funktionsmodifizierung
DE2923427A1 (de) * 1979-06-09 1980-12-18 Telefonbau & Normalzeit Gmbh Verfahren zur aenderung von programmen in rechnergesteuerten fernmelde-, insbesondere fernsprechvermittlungsanlagen
US4454579A (en) * 1981-09-11 1984-06-12 Data General Corporation System for performing call and return operations
US5168566A (en) * 1983-11-25 1992-12-01 Sharp Kabushiki Kaisha Multi-task control device for central processor task execution control provided as a peripheral device and capable of prioritizing and timesharing the tasks
JPS6432337A (en) * 1987-07-29 1989-02-02 Hitachi Ltd Method for instructing influence of program change
US4847517A (en) * 1988-02-16 1989-07-11 Ltv Aerospace & Defense Co. Microwave tube modulator

Also Published As

Publication number Publication date
EP0539827A3 (en) 1993-08-11
US5274815A (en) 1993-12-28
EP0539827A2 (en) 1993-05-05

Similar Documents

Publication Publication Date Title
JPH05224911A (ja) 動的命令修正制御装置
US5960198A (en) Software profiler with runtime control to enable and disable instrumented executable
EP0926592B1 (en) Software emulation system
US6164841A (en) Method, apparatus, and product for dynamic software code translation system
US6219832B1 (en) System and method of using annotations to optimize dynamically translated code in the presence of signals
US6263489B1 (en) Method and apparatus for debugging of optimized code
US5870607A (en) Method and apparatus for selective replay of computer programs
CN100555218C (zh) 用于改善片上仿真系统中高级语言的仿真速度的装置和方法
Hofmeister et al. Dynamic reconfiguration in distributed systems: Adapting software modules for replacement
JPH0734178B2 (ja) 変換コードを実行するための効果的エラー報告
JPH02238528A (ja) コンピュータ・プログラムの第一バージョン処理方法
WO2003001373A1 (en) Java rule engine framework
US20040098639A1 (en) Debugging kernel-loadable modules and suspending and replacing functions in non-microkernel operating systems
CN111142918A (zh) 一种可编程器件程序参数配置和流程控制方法
EP3635561B1 (en) Asynchronous operation query
CN109144849B (zh) 一种嵌入式软件调测方法
Sosič A procedural interface for program directing
EP3619612B1 (en) Temporary de-optimization of target functions in a cloud debugger
JP2000112736A (ja) プログラム作成装置
KR950012113B1 (ko) 멀티 아키텍춰 환경내의 다중 코드 실행 및 디버깅 시스템에서 코드 인터페이스 자케팅에 특히 적합한 크로스-도메인 명령 호출 및 데이타 참조를 검출하기 위한 시스템 및 방법
JPH0659908A (ja) プログラム実行装置
CN112802527B (zh) 嵌入式闪存高速编程的实现方法、嵌入式闪存的编程系统
JPH064298A (ja) プログラム開発環境構築システム
JP2005332110A (ja) シミュレーションシステム
JPH04123144A (ja) デバッグ装置