JP2005063311A - プロセッサシステムのパッチ方法およびパッチ適用プログラム - Google Patents
プロセッサシステムのパッチ方法およびパッチ適用プログラム Download PDFInfo
- Publication number
- JP2005063311A JP2005063311A JP2003295404A JP2003295404A JP2005063311A JP 2005063311 A JP2005063311 A JP 2005063311A JP 2003295404 A JP2003295404 A JP 2003295404A JP 2003295404 A JP2003295404 A JP 2003295404A JP 2005063311 A JP2005063311 A JP 2005063311A
- Authority
- JP
- Japan
- Prior art keywords
- program
- patch
- address
- register
- memory
- 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.)
- Withdrawn
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】 パッチレジスタの組の数よりも多くのパッチを実現することができるようにする。
【解決手段】 初期化の時、RAMプログラムエリアの特定の場所に、ROMプログラムエリアの所望の場所へのジャンプ命令に該当するコードデータを書き込んでおく(リターンポイント)。また、そのコードの前の行には、実行して害のないノーオペレーション命令(nop)を置いておくのが良い(エントリポイント)。このエントリポイントとリターンポイントとの間での処理(パッチコントロールプログラム)は、実行状況に応じて適用するパッチを選択する処理であり、ROMにストアされたプログラムを順次実行していく時に、定期的に実行されることとなる。このパッチコントロールプログラムによる処理では、プログラムの実行状態に応じて、パッチアドレスレジスタとパッチデータレジスタとの内容を動的に書き換える。
【選択図】 図1
【解決手段】 初期化の時、RAMプログラムエリアの特定の場所に、ROMプログラムエリアの所望の場所へのジャンプ命令に該当するコードデータを書き込んでおく(リターンポイント)。また、そのコードの前の行には、実行して害のないノーオペレーション命令(nop)を置いておくのが良い(エントリポイント)。このエントリポイントとリターンポイントとの間での処理(パッチコントロールプログラム)は、実行状況に応じて適用するパッチを選択する処理であり、ROMにストアされたプログラムを順次実行していく時に、定期的に実行されることとなる。このパッチコントロールプログラムによる処理では、プログラムの実行状態に応じて、パッチアドレスレジスタとパッチデータレジスタとの内容を動的に書き換える。
【選択図】 図1
Description
本発明は、例えばCPU、DSP(Digital Signal Processor)などのプロセッサを用いる各種のプロセッサシステムにおけるバグを修正するためのプロセッサシステムのパッチ方法およびパッチ適用プログラムに関する。
従来より、CPUやDSPによるプロセッサシステムで、そのプロセッサシステムにおけるプログラムが不揮発性のメモリ(ROM)に格納されている場合、プログラムの間違い(バグ)が大きな問題となっていた。
すなわち、バグのあるプログラムは、その結果が容認できない場合、ROMであるがために変更が利かず、そのROMの交換が必要となる。また、プロセッサが、ROMを内蔵している場合であれば、そのプロセッサごと交換しなければならない。また、改訂する場合でも、そのROMないしはプロセッサ内蔵のROM領域を新たに作り直すことになってしまう。
すなわち、バグのあるプログラムは、その結果が容認できない場合、ROMであるがために変更が利かず、そのROMの交換が必要となる。また、プロセッサが、ROMを内蔵している場合であれば、そのプロセッサごと交換しなければならない。また、改訂する場合でも、そのROMないしはプロセッサ内蔵のROM領域を新たに作り直すことになってしまう。
このため、従来から、「パッチ」という手法によるバグの修復方法が用いられてきた。
この従来のパッチによるバグの修復方法について、図3を参照して説明する。
この従来のパッチによるバグの修復方法について、図3を参照して説明する。
プロセッサは、プログラムカウンタに示されるアドレスのROMの内容を命令コードとして実行する。
パッチアドレスレジスタは、変更したいプログラムがストアされているアドレスを保持する。このアドレスは、外部I/F(不図示)から、プログラム実行を介して、もしくはハードウエアにより任意に書き込めるように構成されている。
パッチアドレスレジスタは、変更したいプログラムがストアされているアドレスを保持する。このアドレスは、外部I/F(不図示)から、プログラム実行を介して、もしくはハードウエアにより任意に書き込めるように構成されている。
プログラムカウンタが発生するアドレスと、パッチアドレスレジスタが発生するパッチアドレスは比較器によって比較される。
この比較器による比較結果が一致したときに、プログラムデコーダへ送る命令コードを、ROMの内容ではなく、パッチプログラムレジスタの内容に切り替えるようにセレクタを動作させる。
このようにして、命令コードを変更することができる。
上述した図3に示す例では、このパッチアドレスレジスタと、パッチプログラムレジスタとを4組持っているので、4カ所のパッチに対応できることになる。
この比較器による比較結果が一致したときに、プログラムデコーダへ送る命令コードを、ROMの内容ではなく、パッチプログラムレジスタの内容に切り替えるようにセレクタを動作させる。
このようにして、命令コードを変更することができる。
上述した図3に示す例では、このパッチアドレスレジスタと、パッチプログラムレジスタとを4組持っているので、4カ所のパッチに対応できることになる。
また、このパッチによるバグの修復を行う場合、1つのパッチあたり、単に1命令の入れ替えでは済まない場合に対応するために、書き込み可能のメモリ(RAM)で構成されたプログラムメモリ領域を準備して、そこに別途書き込んでおいたパッチプログラム(不図示)を実行させるという方法が用いられている。この方法による従来のバグの修復方法について、図4を参照して説明する。
このプログラムのRAM領域への書き込みは、外部I/F(不図示)からプログラム実行を介して、もしくはハードウエアにより任意に書き込めるように構成される。
この場合、パッチプログラムレジスタに書かれる内容は、RAMに書かれたパッチの先頭番地へのジャンプ命令となる。このことにより、パッチ対象アドレスに到達したときに、RAMエリアのパッチプログラムに飛んで、所望の処理をすることができる。
RAM領域のパッチの最終行には、ROMエリアへのジャンプ命令を置いておくことで、パッチ完了後、所定の処理に戻れることになる。
この場合、パッチプログラムレジスタに書かれる内容は、RAMに書かれたパッチの先頭番地へのジャンプ命令となる。このことにより、パッチ対象アドレスに到達したときに、RAMエリアのパッチプログラムに飛んで、所望の処理をすることができる。
RAM領域のパッチの最終行には、ROMエリアへのジャンプ命令を置いておくことで、パッチ完了後、所定の処理に戻れることになる。
また、特開平5−233265号公報(特許文献1)のものは、プロセッサが読み出し専用メモリ部のパッチアドレスを指定した時、そのアドレスを読み書き可能メモリ部のアドレスに変換してパッチプログラムデータを読み出すようにしたものである。
特開平5−233265号公報
しかしながら、上述した従来のバグの修復方法は、パッチレジスタの数が許す範囲内でのパッチを可能とするものであり、パッチレジスタの数を超えたパッチは実現できない問題があった。
例えば、上述した従来例ではパッチレジスタの組(アドレスとプログラム)が4組なので、バグが5箇所以上あると対応できなくなっていた。
例えば、上述した従来例ではパッチレジスタの組(アドレスとプログラム)が4組なので、バグが5箇所以上あると対応できなくなっていた。
また、上述した特許文献1のものは、読み出し専用メモリ部に格納されたプログラムをパッチ可能にする好適なものであるが、パッチレジスタの組の数よりも多くのパッチを実現することについてまで考慮されたものではない。
本発明はこのような状況に鑑みてなされたものであり、パッチレジスタの組の数よりも多くのパッチを実現することができるプロセッサシステムのパッチ方法およびパッチ適用プログラムを提供することを目的とする。
かかる目的を達成するため、本発明の第1の態様としてのプロセッサシステムのパッチ方法は、不揮発性メモリにストアされたプログラムを順次実行するプロセッサシステムで、書き込み可能なプログラムメモリと、パッチアドレスレジスタと、パッチプログラムレジスタと、不揮発性メモリで実行するプログラムアドレスとアドレスレジスタに保存されたデータとを比較する比較手段と、を具備し、パッチアドレスレジスタの内容と不揮発性メモリで実行するプログラムアドレスとが一致した場合には、該不揮発性メモリにストアされたプログラムの代わりにパッチプログラムレジスタの内容を実行するように構成されたプロセッサシステムのパッチ方法であって、不揮発性メモリにストアされたプログラムを順次実行していく時に、定期的に実行状況に応じて適用するパッチを選択する処理を実行することを特徴とする。
また、本発明の第2の態様としてのプロセッサシステムのパッチ方法は、不揮発性メモリにストアされたプログラムを順次実行するプロセッサシステムで、書き込み可能なプログラムメモリと、パッチアドレスレジスタと、パッチプログラムレジスタと、不揮発性メモリで実行するプログラムアドレスとアドレスレジスタに保存されたデータとを比較する比較手段と、を具備し、パッチアドレスレジスタの内容と不揮発性メモリで実行するプログラムアドレスとが一致した場合には、該不揮発性メモリにストアされたプログラムの代わりにパッチプログラムレジスタの内容を実行するように構成されたプロセッサシステムのパッチ方法であって、不揮発性メモリにストアされたプログラムは、実行初期化時に書き込み可能なプログラムメモリの特定のエリアに、不揮発性メモリの所定の番地にジャンプする命令を書き込むように構成されると共に、該プログラムは、通常実行時に定期的に、該書き込み可能なプログラムメモリにおける当該プログラムの実行状況に応じて適用するパッチを選択する処理を行う部分にジャンプするように構成され、書き込み可能なプログラムメモリに書かれたプログラムを逐次実行していく時に、所定の番地に処理をジャンプさせる命令が定期的に実行されることにより、処理を該所定の番地にジャンプさせることを特徴とする。
上記した「実行状況に応じて適用するパッチを選択する処理」では、プログラムの実行状態に応じて、パッチアドレスレジスタとパッチデータレジスタとの内容を動的に書き換えることが好ましい。
また、本発明の第3の態様としてのプロセッサシステムのパッチ適用プログラムは、不揮発性メモリにストアされたプログラムを順次実行するプロセッサシステムで、書き込み可能なプログラムメモリと、パッチアドレスレジスタと、パッチプログラムレジスタと、不揮発性メモリで実行するプログラムアドレスとアドレスレジスタに保存されたデータとを比較する比較手段と、を具備し、パッチアドレスレジスタの内容と不揮発性メモリで実行するプログラムアドレスとが一致した場合には、該不揮発性メモリにストアされたプログラムの代わりにパッチプログラムレジスタの内容を実行するように構成されたプロセッサシステムにおけるパッチ適用プログラムであって、プロセッサシステムに、不揮発性メモリにストアされたプログラムを順次実行させていく時、定期的に実行状況に応じて適用するパッチを選択する処理を実行させることを特徴とする。
また、本発明の第4の態様としてのプロセッサシステムのパッチ適用プログラムは、不揮発性メモリにストアされたプログラムを順次実行するプロセッサシステムで、書き込み可能なプログラムメモリと、パッチアドレスレジスタと、パッチプログラムレジスタと、不揮発性メモリで実行するプログラムアドレスとアドレスレジスタに保存されたデータとを比較する比較手段と、を具備し、パッチアドレスレジスタの内容と不揮発性メモリで実行するプログラムアドレスとが一致した場合には、該不揮発性メモリにストアされたプログラムの代わりにパッチプログラムレジスタの内容を実行するように構成されたプロセッサシステムにおけるパッチ適用プログラムであって、プロセッサシステムに、実行初期化時に書き込み可能なプログラムメモリの特定のエリアに、不揮発性メモリの所定の番地に処理をジャンプさせる命令を書き込む機能を実現させると共に、通常実行時に定期的に、該書き込み可能なプログラムメモリにおける当該プログラムの実行状況に応じて適用するパッチを選択する処理を行う部分に処理をジャンプさせる機能を実現させ、書き込み可能なプログラムメモリに書かれたプログラムを逐次実行させる時、所定の番地に処理をジャンプさせる命令を定期的に実行させることにより、処理を該所定の番地にジャンプさせることを特徴とする。
上記した「実行状況に応じて適用するパッチを選択する処理」では、プログラムの実行状態に応じて、パッチアドレスレジスタとパッチデータレジスタとの内容を動的に書き換えさせることが好ましい。
以上のように、本発明によれば、パッチレジスタの組の数よりも多くのパッチを実現することができる。
このため、プロセッサシステムのハードウエア構成が同様であっても、より多くのバグを修正可能にすることができる。
このため、プロセッサシステムのハードウエア構成が同様であっても、より多くのバグを修正可能にすることができる。
次に、本発明に係るプロセッサシステムのパッチ方法およびパッチ適用プログラムの一実施形態について、図面を用いて詳細に説明する。
本実施形態におけるハードウエア構成は、図3に示す構成と同様であることとする。
本実施形態におけるハードウエア構成は、図3に示す構成と同様であることとする。
本発明の実施形態におけるプロセッサシステムは、図3に示すように、不揮発性メモリ(ROM)にストアされたプログラムを順次実行するプロセッサシステムであり、書き込み可能なプログラムメモリ(RAM)と、そのプログラムメモリに対して外部からプログラムを書き込む外部I/F(不図示)と、パッチアドレスレジスタと、パッチプログラムレジスタと、ROMで実行するプログラムアドレスとアドレスレジスタに保存されたデータとを比較する比較器とを備える。
プロセッサは、プログラムカウンタに示されるアドレスのROMの内容を命令コードとして実行する。
パッチアドレスレジスタは、変更したいプログラムがストアされているアドレスを保持する。このアドレスは、外部I/F(不図示)から、プログラム実行を介して、もしくはハードウエアにより任意に書き込めるように構成されている。
パッチアドレスレジスタは、変更したいプログラムがストアされているアドレスを保持する。このアドレスは、外部I/F(不図示)から、プログラム実行を介して、もしくはハードウエアにより任意に書き込めるように構成されている。
プログラムカウンタが発生するアドレスと、パッチアドレスレジスタが発生するパッチアドレスは比較器によって比較される。
この比較器による比較結果が一致したときに、プログラムデコーダへ送る命令コードを、ROMの内容ではなく、パッチプログラムレジスタの内容に切り替えるようにセレクタを動作させる。
こうして、パッチアドレスレジスタの内容とROMから実行するプログラムアドレスとが一致した場合には、そのROMにストアされたプログラムの代わりに、パッチプログラムレジスタの内容を実行するように構成される。このようにして、命令コードを変更することができる。
この比較器による比較結果が一致したときに、プログラムデコーダへ送る命令コードを、ROMの内容ではなく、パッチプログラムレジスタの内容に切り替えるようにセレクタを動作させる。
こうして、パッチアドレスレジスタの内容とROMから実行するプログラムアドレスとが一致した場合には、そのROMにストアされたプログラムの代わりに、パッチプログラムレジスタの内容を実行するように構成される。このようにして、命令コードを変更することができる。
次に、本発明の実施形態としてのプロセッサシステムにおけるパッチを適用したプログラムの処理について、図1を参照して手順を追って説明する。
まず、プログラムが起動して行うのが初期化であるが、この時、RAMプログラムエリアの特定の場所に、ROMプログラムエリアの所望の場所へのジャンプ命令に該当するコードデータを書き込んでおく。ここを「パッチコントロールプログラムのリターンポイント」と呼ぶことにする。
また、そのコードの前の行には、実行して害のないノーオペレーション命令(nop)を置いておくのが良い。ここを「パッチコントロールプログラムのエントリポイント」とする。
まず、プログラムが起動して行うのが初期化であるが、この時、RAMプログラムエリアの特定の場所に、ROMプログラムエリアの所望の場所へのジャンプ命令に該当するコードデータを書き込んでおく。ここを「パッチコントロールプログラムのリターンポイント」と呼ぶことにする。
また、そのコードの前の行には、実行して害のないノーオペレーション命令(nop)を置いておくのが良い。ここを「パッチコントロールプログラムのエントリポイント」とする。
初期化が終わるとプログラムは通常実行状態となる。通常実行状態では、プログラムのある部分が繰り返し定期的に実行されることがしばしばある。これはイベントラウンドロビンと呼ばれる。
このラウンドロビンの中に、先のRAMエリアのパッチコントロールプログラムのエントリポイントへジャンプするモジュールを置く。そして前述のパッチコントロールプログラムのリターンポイントは、このモジュールの所望の箇所へ戻ってくるようにアドレスを選んでおく。
このようにすれば、通常実行状態になったときに、定期的にRAMエリアの特定のプログラムを実行できる仕組みが整ったことになる。
この特定のプログラムを「パッチコントロールプログラム」と呼ぶことにする。
このラウンドロビンの中に、先のRAMエリアのパッチコントロールプログラムのエントリポイントへジャンプするモジュールを置く。そして前述のパッチコントロールプログラムのリターンポイントは、このモジュールの所望の箇所へ戻ってくるようにアドレスを選んでおく。
このようにすれば、通常実行状態になったときに、定期的にRAMエリアの特定のプログラムを実行できる仕組みが整ったことになる。
この特定のプログラムを「パッチコントロールプログラム」と呼ぶことにする。
このエントリポイントとリターンポイントとの間での処理(パッチコントロールプログラム)は、実行状況に応じて適用するパッチを選択する処理であり、ROMにストアされたプログラムを順次実行していく時に、定期的に実行されることとなる。
この実行状況に応じて適用するパッチを選択するパッチコントロールプログラムによる処理では、プログラムの実行状態に応じて、パッチアドレスレジスタとパッチデータレジスタとの内容を動的に書き換える。
この実行状況に応じて適用するパッチを選択するパッチコントロールプログラムによる処理では、プログラムの実行状態に応じて、パッチアドレスレジスタとパッチデータレジスタとの内容を動的に書き換える。
こうして、パッチが必要になったとき、外部I/Fを通じて、このパッチコントロールプログラムを書き込む。パッチコントロールプログラムの例を図2に示す。
なお、図2に示すプログラム例は、説明用のベーシック的な言語によるものであり、本発明に係るパッチコントロールプログラムは、特定のプログラム言語に特定されるものではない。
なお、図2に示すプログラム例は、説明用のベーシック的な言語によるものであり、本発明に係るパッチコントロールプログラムは、特定のプログラム言語に特定されるものではない。
この図2に示す例では、プログラムの実行状態が「A」と呼ばれる状態の時と、それ以外の場合とで、パッチレジスタの4組を全て書き換えている。
一例を挙げると、
○実行状態「A」の時は、パッチアドレスレジスタ0番は10000番地を指定する。
○同、パッチプログラムレジスタ0番は1234番地へのジャンプ命令とする。
以下同様である。
一例を挙げると、
○実行状態「A」の時は、パッチアドレスレジスタ0番は10000番地を指定する。
○同、パッチプログラムレジスタ0番は1234番地へのジャンプ命令とする。
以下同様である。
この図2に示す例では、2状態に対し、異なる4パッチが実装されている。延べ8パッチが実現できている。
このようにして、図3に示す構成例ではパッチレジスタの組は4個しかないが、8種類のパッチを実現することができる。
対応するRAMエリアには、外部インターフェース全てのパッチのプログラムを事前に書き込んでおけばよい。この例では8カ所になる。
このようにして、図3に示す構成例ではパッチレジスタの組は4個しかないが、8種類のパッチを実現することができる。
対応するRAMエリアには、外部インターフェース全てのパッチのプログラムを事前に書き込んでおけばよい。この例では8カ所になる。
このように、本実施形態では、ROMにストアされたプログラムが、実行初期化時にRAMの特定のエリアにROMの所定(1)の番地(リターンポイントからの復帰位置)にジャンプする命令を書き込むように構成され、また、このプログラムは、通常実行時に定期的にRAMの所定(2)の番地(エントリポイント)にジャンプするように構成され、このRAMに書かれたプログラムを逐次実行し、上記したROMの所定(1)の番地にジャンプする命令の実行によりROMの所定(1)の番地にジャンプする。
また、RAMに書かれて定期的に実行される上記したプログラムは、プログラムの実行状態に応じて、パッチアドレスレジスタとパッチデータレジスタの内容を動的に書き換える。
このことにより、本実施形態によれば、物理的なパッチレジスタの組の数よりも多くのパッチを実現することができる。
また、RAMに書かれて定期的に実行される上記したプログラムは、プログラムの実行状態に応じて、パッチアドレスレジスタとパッチデータレジスタの内容を動的に書き換える。
このことにより、本実施形態によれば、物理的なパッチレジスタの組の数よりも多くのパッチを実現することができる。
以上のように、本実施形態によれば、RAMのプログラムエリアに、パッチレジスタの内容をプログラムの実行状況に応じて動的に書き換えるプログラムを置き、定期的に実行させることにより、パッチレジスタの組の数よりも多くのパッチを実現することができる。
なお、上述した各実施形態は、本発明の好適な実施形態であり、本発明の主旨を逸脱しない範囲内において、種々変形して実施することが可能である。
例えば、プログラムをストアする不揮発性メモリをROMとして説明しているがこのものに限定されず、例えばHDDやメモリカードなどであってもよい。
例えば、プログラムをストアする不揮発性メモリをROMとして説明しているがこのものに限定されず、例えばHDDやメモリカードなどであってもよい。
また、本発明に係るプロセッサシステムは、ROMのプログラムにバグがあった場合に、書き込み可能なメモリ(RAM)にその修復をするパッチプログラムを書き、実行するシステムであれば各種のプロセッサシステムであってよく、応用分野は特に限定されない。
Claims (6)
- 不揮発性メモリにストアされたプログラムを順次実行するプロセッサシステムで、書き込み可能なプログラムメモリと、パッチアドレスレジスタと、パッチプログラムレジスタと、前記不揮発性メモリで実行するプログラムアドレスとアドレスレジスタに保存されたデータとを比較する比較手段と、を具備し、
前記パッチアドレスレジスタの内容と前記不揮発性メモリで実行するプログラムアドレスとが一致した場合には、該不揮発性メモリにストアされたプログラムの代わりにパッチプログラムレジスタの内容を実行するように構成されたプロセッサシステムのパッチ方法であって、
前記不揮発性メモリにストアされたプログラムを順次実行していく時に、定期的に実行状況に応じて適用するパッチを選択する処理を実行することを特徴とするプロセッサシステムのパッチ方法。 - 不揮発性メモリにストアされたプログラムを順次実行するプロセッサシステムで、書き込み可能なプログラムメモリと、パッチアドレスレジスタと、パッチプログラムレジスタと、前記不揮発性メモリで実行するプログラムアドレスとアドレスレジスタに保存されたデータとを比較する比較手段と、を具備し、
前記パッチアドレスレジスタの内容と前記不揮発性メモリで実行するプログラムアドレスとが一致した場合には、該不揮発性メモリにストアされたプログラムの代わりにパッチプログラムレジスタの内容を実行するように構成されたプロセッサシステムのパッチ方法であって、
前記不揮発性メモリにストアされたプログラムは、実行初期化時に前記書き込み可能なプログラムメモリの特定のエリアに、前記不揮発性メモリの所定の番地にジャンプする命令を書き込むように構成されると共に、
該プログラムは、通常実行時に定期的に、該書き込み可能なプログラムメモリにおける当該プログラムの実行状況に応じて適用するパッチを選択する処理を行う部分にジャンプするように構成され、
前記書き込み可能なプログラムメモリに書かれたプログラムを逐次実行していく時に、前記所定の番地に処理をジャンプさせる命令が定期的に実行されることにより、処理を該所定の番地にジャンプさせることを特徴とするプロセッサシステムのパッチ方法。 - 前記実行状況に応じて適用するパッチを選択する処理では、プログラムの実行状態に応じて、前記パッチアドレスレジスタと前記パッチデータレジスタとの内容を動的に書き換えることを特徴とする請求項1または2記載のプロセッサシステムのパッチ方法。
- 不揮発性メモリにストアされたプログラムを順次実行するプロセッサシステムで、書き込み可能なプログラムメモリと、パッチアドレスレジスタと、パッチプログラムレジスタと、前記不揮発性メモリで実行するプログラムアドレスとアドレスレジスタに保存されたデータとを比較する比較手段と、を具備し、
前記パッチアドレスレジスタの内容と前記不揮発性メモリで実行するプログラムアドレスとが一致した場合には、該不揮発性メモリにストアされたプログラムの代わりにパッチプログラムレジスタの内容を実行するように構成されたプロセッサシステムにおけるパッチ適用プログラムであって、
前記プロセッサシステムに、
前記不揮発性メモリにストアされたプログラムを順次実行させていく時、定期的に実行状況に応じて適用するパッチを選択する処理を実行させることを特徴とするプロセッサシステムのパッチ適用プログラム。 - 不揮発性メモリにストアされたプログラムを順次実行するプロセッサシステムで、書き込み可能なプログラムメモリと、パッチアドレスレジスタと、パッチプログラムレジスタと、前記不揮発性メモリで実行するプログラムアドレスとアドレスレジスタに保存されたデータとを比較する比較手段と、を具備し、
前記パッチアドレスレジスタの内容と前記不揮発性メモリで実行するプログラムアドレスとが一致した場合には、該不揮発性メモリにストアされたプログラムの代わりにパッチプログラムレジスタの内容を実行するように構成されたプロセッサシステムにおけるパッチ適用プログラムであって、
前記プロセッサシステムに、
実行初期化時に前記書き込み可能なプログラムメモリの特定のエリアに、前記不揮発性メモリの所定の番地に処理をジャンプさせる命令を書き込む機能を実現させると共に、
通常実行時に定期的に、該書き込み可能なプログラムメモリにおける当該プログラムの実行状況に応じて適用するパッチを選択する処理を行う部分に処理をジャンプさせる機能を実現させ、
前記書き込み可能なプログラムメモリに書かれたプログラムを逐次実行させる時、前記所定の番地に処理をジャンプさせる命令を定期的に実行させることにより、処理を該所定の番地にジャンプさせることを特徴とするプロセッサシステムのパッチ適用プログラム。 - 前記実行状況に応じて適用するパッチを選択する処理では、プログラムの実行状態に応じて、前記パッチアドレスレジスタと前記パッチデータレジスタとの内容を動的に書き換えさせることを特徴とする請求項4または5記載のプロセッサシステムのパッチ適用プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003295404A JP2005063311A (ja) | 2003-08-19 | 2003-08-19 | プロセッサシステムのパッチ方法およびパッチ適用プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003295404A JP2005063311A (ja) | 2003-08-19 | 2003-08-19 | プロセッサシステムのパッチ方法およびパッチ適用プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005063311A true JP2005063311A (ja) | 2005-03-10 |
Family
ID=34371673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003295404A Withdrawn JP2005063311A (ja) | 2003-08-19 | 2003-08-19 | プロセッサシステムのパッチ方法およびパッチ適用プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005063311A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008015792A (ja) * | 2006-07-06 | 2008-01-24 | Fujitsu Ltd | Romパッチ処理方法およびromパッチ装置 |
JP2008237240A (ja) * | 2007-03-23 | 2008-10-09 | Samii Kk | 遊技機 |
US8266597B2 (en) | 2008-06-16 | 2012-09-11 | International Business Machines Corporation | Dynamically patching computer code using breakpoints |
-
2003
- 2003-08-19 JP JP2003295404A patent/JP2005063311A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008015792A (ja) * | 2006-07-06 | 2008-01-24 | Fujitsu Ltd | Romパッチ処理方法およびromパッチ装置 |
JP2008237240A (ja) * | 2007-03-23 | 2008-10-09 | Samii Kk | 遊技機 |
US8266597B2 (en) | 2008-06-16 | 2012-09-11 | International Business Machines Corporation | Dynamically patching computer code using breakpoints |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9348730B2 (en) | Firmware ROM patch method | |
JP2008016020A (ja) | Biosの実行を加速化する方法 | |
JP2005190201A (ja) | 情報処理装置および該装置用のromイメージ生成装置 | |
US20220043700A1 (en) | Stack Safety for Independently Defined Operations | |
EP2940577A1 (en) | Patching of program code executed from one time programmable memory | |
JP2005071303A (ja) | プログラム起動装置 | |
KR100894251B1 (ko) | 다중화된 에스피디 롬을 가지는 메모리 모듈 시스템 및 그부팅 방법 | |
US20070294599A1 (en) | Method for patching a read-only memory and a data processing system comprising a means of patching the read-only memory based on patch contexts | |
US6925522B2 (en) | Device and method capable of changing codes of micro-controller | |
US20070174680A1 (en) | Method for patching built-in code in read only memory | |
JP2005063311A (ja) | プロセッサシステムのパッチ方法およびパッチ適用プログラム | |
US7340561B2 (en) | Computer memory initialization | |
JP2010140167A (ja) | 半導体集積回路 | |
US20070169086A1 (en) | System and method for updating in-system program | |
JP4760607B2 (ja) | プログラマブルコントローラ | |
JP2002055848A (ja) | プログラム実行方式及び当該プログラム実行方式を格納した記憶媒体 | |
JP2008140124A (ja) | データ処理装置 | |
EP1221096A1 (en) | Method and apparatus for modifying microinstructions in a static memory device | |
JPS63156231A (ja) | リ−ドオンリ−メモリ内命令の変更方法 | |
KR20100127492A (ko) | 제어 프로그램 수정 방법을 수행하는 프로그램이 기록된 비휘발성 입력 및 수정 가능 기록 매체 | |
JP2008108048A (ja) | コンピュータ及びそのファームウェア更新方法 | |
JPH11110224A (ja) | 言語処理装置及び方法、並びに情報記憶媒体 | |
JP2008276578A (ja) | 信号処理装置 | |
GB2330428A (en) | ROM program patching in an embedded microprocessor | |
JP2007172331A (ja) | マイクロコンピュータ及び不揮発性メモリの書き換え方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20061107 |