JPH1139153A - プログラムがromに記録されているマイコンシステムにおけるメンテナンス方法、そのマイコンシステムに用いられる中央処理装置、キャッシュシステム、及びマイコンシステムの応用装置 - Google Patents

プログラムがromに記録されているマイコンシステムにおけるメンテナンス方法、そのマイコンシステムに用いられる中央処理装置、キャッシュシステム、及びマイコンシステムの応用装置

Info

Publication number
JPH1139153A
JPH1139153A JP9190220A JP19022097A JPH1139153A JP H1139153 A JPH1139153 A JP H1139153A JP 9190220 A JP9190220 A JP 9190220A JP 19022097 A JP19022097 A JP 19022097A JP H1139153 A JPH1139153 A JP H1139153A
Authority
JP
Japan
Prior art keywords
address
read
instruction
break
ram
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
JP9190220A
Other languages
English (en)
Inventor
Toyoji Kuroda
豊治 黒田
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP9190220A priority Critical patent/JPH1139153A/ja
Publication of JPH1139153A publication Critical patent/JPH1139153A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 ROMに記録されたアプリケーションプログ
ラム実行時のいかなるタイミングからでも、パッチ処理
を起動することができるマイコンシステムを提供する。 【解決手段】 メインモジュール12は通信回線インタ
ーフェィス2を介してブレークポイントと、ジャンプ命
令と、パッチ処理ユーティリティとからなるバージョン
アップデータをRAM5のスーパーバイザエントリー領
域6上にダウンロードする。パッチ初期化モジュール1
3は、そのブレークポイントのアドレスにおいてハード
ウェアブレークを発生させるよう、ブレークポイントを
CPU4に設定する。ブレークポイントが設定された
後、CPU4はアプリケーションプログラム14を一命
令ずつ実行する。命令実行においてブレークポイントに
到達すると、CPU4はハードウェアブレークを行い、
RAM5上のスーパーバイザエントリー領域6に配置さ
れたジャンプ命令を介してパッチ処理ユーティリティを
実行する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、バージョンアップ
データのダウンロードを用いて、ROMに記録されたプ
ログラムをメンテナンスすることができるマイコンシス
テムにおけるメンテナンス方法、そのマイコンシステム
に用いられる中央処理装置、キャッシュシステム、マイ
コンシステムの応用装置
【0002】
【従来の技術】近年、エレクトロニクス業界の技術者が
最も苦心しているのは、より高度で複雑な制御を実現す
る組込型マイコンシステムの開発である。一般に組込型
マイコンシステムとは、ファームウェアからアプリケー
ションプログラムまでの制御用プログラム全般をマスク
ROMに記録し、これと中央処理装置とを一体型に構成
したコンピュ−タシステムをいい、その応用製品は家電
製品、工作機械、情報機器、通信機器等さまざまな分野
に活躍の場を広げている。
【0003】組込型マイコンシステムは、制御用プログ
ラムをマスクROMに記録しているので、応用製品の出
荷後に制御用プログラムを直接書き換えることは不可能
である。応用製品を出荷する際の開発者の心構えとして
は、出荷前のデバッグ及びテストを徹底することは当然
のことであるが、出荷後にバグの潜在が明らかになった
り、仕様変更の必然性が生じた場合の備えを万全にして
おくことも忘れてはならない。後日のメンテナンスに備
えて、ROMに記録される制御用プログラムのうち、メ
ンテナンスの必要性が高いアプリケーションプログラム
に予めパッチ処理対応を施すことはもはや開発者の常識
になっている。
【0004】パッチ処理とは、ROMに記録されたアプ
リケーションプログラム内のバグを処置する処理やアプ
リケーションプログラムの仕様を変更する処理であっ
て、外付けユーティリティを用いて"つぎあて式"に行わ
れるものをいう。また外付けユーティリティの"外"と
は、パッチ処理用のユーティリティがアプリケーション
プログラムと完全に分離しており、ROM外部のRAM
等に配置されることを意味する。
【0005】パッチ処理用の外付けユーティリティ(以
下パッチ処理ユーティリティとよぶ)は、バグを処置す
る処理やアプリケーションプログラムの仕様を変更する
処理を行う機械語命令からなる命令列を含み、その末尾
にスキップ用ジャンプ命令を配置している。スキップ用
ジャンプ命令とは、そのジャンプ先が、アプリケーショ
ンプログラムのうち、バグや仕様変更が存在した問題部
分をスキップするよう規定されたジャンプ命令をいう。
スキップ用ジャンプ命令により、アプリケーションプロ
グラムにパッチ処理が施されると共に問題部分の実行が
スキップされ、バグ処置及び仕様変更が可能となる。
【0006】パッチ処理対応のアプリケーションプログ
ラムとは、パッチ処理ユーティリティへとジャンプする
ためのルーチンが予め組み込まれた状態でマスクROM
に記録されたアプリケーションプログラムをいう。パッ
チ処理ユーティリティへとジャンプするためのルーチン
(以下トラップルーチンという)には、様々な形態のも
のが存在するが、以下の機能を具備している点は共通し
ている。その共通機能とは、パッチ処理ユーティリティ
へとトラップするか、アプリケーションプログラムの処
理を続行するかをRAM内容に応じて決定する機能であ
る。即ちトラップルーチンはパッチ処理ユーティリティ
へとジャンプするためのジャンプテーブルが存在してい
る筈のRAM領域をチェックし、領域に内容が存在しな
ければ、何もしないでROM上のアプリケーションプロ
グラムの処理を続行し、領域に内容が存在すれば、パッ
チ処理を実行する。
【0007】図15はパッチ処理対応されたアプリケー
ションプログラムの一例を示す図である。本図は、RO
M上に記録されたアプリケーションプログラムが縦方向
に記録されている。その内部には、ハッチングを付した
トラップルーチンが4本も記録されている。図面右側で
は、各トラップルーチンの構成を命令レベルにまで詳細
化している。
【0008】トラップルーチン1は、第1行目の『cmp
(label1),00 00 00』においてパッチルーチンが存在し
ている筈のRAM領域をチェックしている。メモリラベ
ルlabel1の内容が00列であるかを判定し、もし00列コー
ドであれば、中央処理装置がその内部に有しているゼロ
フラグをONにする。第2行目の『jne label1』は、第
1行目における内容チェックの結果に応じたジャンプを
行う条件付きジャンプ命令である。『jne』の『ne』は
『Not Equal 』の略であり、中央処理装置内部のゼロフ
ラグがOFFであればラベル『label1』へとジャンプす
る。即ち、ラベルlabel1で指示されるメモリの内容が
『00 00 00』であれば、ラベル『label1』へとジャンプ
する。
【0009】トラップルーチン2も、トラップルーチン
1と同様、トラップルーチンであるが、第1行目におけ
るチェック対象及び第2行目における条件付きジャンプ
命令のジャンプ先が『label1』ではなく『label2』を対
象にして行われる点が異なる。トラップルーチン3、4
も、トラップルーチン1と同様、トラップルーチンであ
るが、第1行目におけるチェック対象及び第2行目にお
ける条件付きジャンプ命令のジャンプ先が『label1』で
はなく『label3』『label4』を対象にして行われる点が
異なる。
【0010】『label1:』〜『label4:』とは、バージョ
ンアップデータがインストールされるべきRAMに付さ
れたラベルである。バージョンアップデータとは、バグ
処置及び仕様変更の必然性が生じた場合のみ、開発者に
より提供されるデータであり、複数のパッチ処理ユーテ
ィリティと、ジャンプテーブルとを含む。図16は、バ
ージョンアップが未インストールである際のRAM上の
内容を示す図であり、図17は、バージョンアップがイ
ンストールされた際のRAM上の内容を示す図である。
図16のようにバージョンアップデータが未インストー
ルである場合には、『label1:』〜『label4:』の内容は
00列であることがわかる。このようにバージョンアップ
データが未インストールであり、『label1:』〜『label
4:』の内容が00列であると、トラップルーチン1〜4で
は、第1行目の『cmp (label1),00 00 00』におけるチ
ェックが"イコール(=)"となる。このように"イコール
(=)"となると、何の処理も行わないままトラップルーチ
ンは終了する。
【0011】一方図17のようにバージョンアップデー
タがインストールされている場合には、『label1:』〜
『label4:』にはジャンプ命令『jmp PATCH_UTILITY
1』,『jmp PATCH_UTILITY2』,『jmp PATCH_UTILITY
3』,『jmp PATCH_UTILITY4』が記録されている。これ
らのジャンプ命令はバージョンアップデータに含まれて
いたものであり、本バージョンアップデータのインスト
ール時にこれら『label1:』〜『label4:』に配されてい
る。
【0012】このようにバージョンアップデータがイン
ストール済みであり、『label1:』〜『label4:』にジャ
ンプ命令が記録されていると、トラップルーチン1〜4
では、第1行目の『label1:』〜『label4:』を対象とし
た比較命令における比較結果がノットイコールとなる。
このようにノットイコールとなると、第2行目のジャン
プ命令によりラベル『label1:』〜『label4:』の何れか
へのジャンプが行われる。
【0013】『label1:』〜『label4:』に記録されたジ
ャンプ命令のジャンプ先『PATCH_UTILITY1』『PATCH_UT
ILITY2』『PATCH_UTILITY3』『PATCH_UTILITY4』は、バ
ージョンアップデータが未インストールの状態では00列
であるが、バージョンアップデータインストール時に
は、『PATCH_UTILITY1:』にはバグ処置ユーティリティ
及び仕様変更ユーティリティといったパッチ処理ユーテ
ィリティが配置される。
【0014】このようにアプリケーションプログラムの
トラップルーチンはパッチ処理ユーティリティを直接コ
ールせずにRAM上に配置されたジャンプテーブルを介
してパッチ処理ユーティリティをコールしている。これ
はパッチを施すか否かの切り換えが、ジャンプテーブル
の内容を書き換えにより行われていることを意味する。
またトラップルーチンから何れのパッチ処理ユーティリ
ティにジャンプするかが『label1:』『label2:』『labe
l3:』『label4:』に配置されるべきジャンプ命令のジャ
ンプ先により決定される。これらのジャンプ命令によ
り、バグ処置や仕様変更をどのようなパッチ処理ユーテ
ィリティを用いて行うかをROM出荷後に決定すること
ができる。
【0015】
【発明が解決しようとする課題】ところで上記のパッチ
処理対応では、パッチ処理を起動するタイミングが、ト
ラップルーチンを挿入した位置に限られてしまう。その
ため『アプリケーションプログラムのトラップルーチン
を挿入していない位置にバグ原因が存在する場合、対処
のしようがない』という心理的不安に開発者は悩まされ
ることになる。このような心理的不安にかられるよう
に、開発者は、アプリケーションプログラムのあらゆる
箇所にトラップルーチンを挿入し、アプリケーションプ
ログラムがどのようなルートで実行されても、パッチ処
理を実行できるようにしておくという配慮を行ってい
た。しかしこの配慮によりアプリケーションプログラム
とは異質のトラップルーチンがROM上の多くの領域を
占めてしまう。また、パッチ処理の必要性が存在しない
場合でも、絶えずトラップルーチンが実行されるので、
オーバーヘッドが発生してしまう。
【0016】また別の問題点としては、過去に出荷され
た各マイコンシステムがその所有者によって任意にカス
タマイズされており、メーカー側がそれら様々にカスタ
マイズされているマイコンシステムを一律にメンテナン
スしようとする場合、マイコンシステムは不要なパッチ
処理ユーティリティでさえ優先して実行してしまうもの
がある。
【0017】マイコンシステムのカスタマイズとは、マ
イコンシステムのメーカーが販売しているマイコンシス
テム用の複数種類の拡張ROMの何れかをマイコンシス
テムの所有者が購入し、マイコンシステムに接続してい
ることをいう。また、『一律なメンテナンス』とは、全
拡張ROM向けのパッチ処理ユーティリティを含んだバ
ージョンアップデータを配信することにより、出荷され
た各マイコンシステムをメンテナンスすることをいう。
【0018】全拡張ROM向けのパッチ処理ユーティリ
ティを含んだバージョンアップデータが配信され、各マ
イコンシステムがこれをダウンロードすると、マイコン
システムはアプリケーションプログラムよりもバージョ
ンアップデータ内のパッチ処理ユーティリティを優先し
て実行しようとする。そのアプリケーションプログラム
にとって必要なパッチ処理ユーティリティのみがバージ
ョンアップデータに含まれている場合はこれでもよい
が、マイコンシステムは、自身に接続されていない拡張
ROM用のパッチ処理ユーティリティさえも、優先して
実行しようとする。自身に接続されていない拡張ROM
用のパッチ処理ユーティリティの実行により、マイコン
システムは不具合を負ってしまう。
【0019】本発明の第1の目的は、アプリケーション
プログラムのいかなるタイミングからでも、パッチ処理
を起動することができるマイコンシステムを提供するこ
とができるマイコンシステムを提供することである。本
発明の第2の目的は、過去に出荷された各マイコンシス
テムがその所有者によって任意にカスタマイズされてお
り、メーカー側がそれら様々にカスタマイズされている
マイコンシステムを一律にメンテナンスしようとする場
合でも、マイコンシステムが不具合を負うことがないマ
イコンシステムを提供することである。
【0020】
【課題を解決するための手段】上記課題を招いているの
は、アプリケーションプログラムのどのタイミングでパ
ッチ処理に移行するかの指定をトラップルーチンの挿入
位置に頼っているからである。パッチ処理移行を挿入位
置に頼らない手法で指示すれば、上記課題の解決は可能
である。
【0021】挿入位置に頼らないパッチ処理移行指示の
一つにハードウェアブレークがある。ハードウェアブレ
ークとは、近年中央処理装置(CPU)が有する機能の
一つである。ハードウェアブレークが可能な中央処理装
置は、その内部に存在するブレークポイント設定レジス
タを有し、そのレジスタにアドレスが設定されれば、中
央処理装置はその処理対象をユーザ空間からスーパバイ
ザ空間へと切り換える。即ち、ブレークポイント設定レ
ジスタの設定次第で、アプリケーションプログラムの任
意の位置からスーパバイザ空間へのジャンプが可能とな
る。スーパバイザ空間にパッチ処理を記述しておけば、
上記のジャンプの後にパッチ処理が実行されることにな
る。このようにして実行されるパッチ処理は、トラップ
ルーチンの挿入位置に束縛されないものとなる。
【0022】このような点に着眼して本発明に係るマイ
コンシステムにおけるメンテナンス方法は、複数の命令
からなる制御用プログラムが記録されたROMと、RA
Mと、所定の第1アドレスにおいてブレークし、第2ア
ドレスへと分岐するブレーク機能を備える中央処理装置
とを有するマイコンシステムにおけるメンテナンス方法
であって、ROMにおいて制御用プログラムが記録され
ている領域内の何れかのアドレスと、パッチ処理ユーテ
ィリティとを含むバージョンアップデータを外部からダ
ウンロードするダウンロードステップと、バージョンア
ップデータが外部からダウンロードされると、それに含
まれているブレークアドレスを第1アドレスとして中央
処理装置に設定するブレークアドレス設定ステップと、
バージョンアップデータに含まれているパッチ処理ユー
ティリティをRAM上の第2アドレスから始まる領域に
書き込む書込ステップとを有することを特徴としてい
る。
【0023】
【発明の実施の形態】マイコンシステムの実施形態とし
て、リモートメンテナンス方式の組込型マイコンシステ
ムについて説明する。リモートメンテナンス方式とは、
サーバから有線又は無線の通信回線を介してダウンロー
ドされたバージョンアップデータを用いて行われる方式
のメンテナンスをいい、近年、ディジタル衛星放送受信
機やディジタルCATV放送受信機に応用されている。
【0024】図1にマイコンシステムの構成を示す。図
1に示すように、マイコンシステムはROM1、通信回
線インターフェィス2、不揮発性メモリ3、CPU4、
及びRAM5からなる。ROM1は、制御用プログラム
10が記録されたマスクROMである。通信回線インタ
ーフェィス2は、通信回線との間で各種データの送受信
を行う。
【0025】不揮発性メモリ3は、通信回線インターフ
ェィス2が受信したデータのうち、バージョンアップデ
ータ及びバージョン情報を保持する。不揮発性メモリで
あるため、不揮発性メモリ3により保持されるバージョ
ンアップデータ及びバージョン情報はたとえ、本システ
ムの電源が断たれても失われることはない。バージョン
情報とは、本マイコンシステムにおける制御用プログラ
ムのバージョンが第何版であるかを示す。
【0026】CPU4は、ROM1上に記録された制御
用プログラム10を実行する中央処理装置であるが、ハ
ードウェアブレーク機能を有する点が特徴的である。C
PU4は、その内部にブレークポイント1からブレーク
ポイント4までの4本ものブレークポイントが設定可能
なブレークポイント設定専用のレジスタファイル31を
有し、そのレジスタにアドレスが設定され、且つプログ
ラムカウンタと合致すれば、CPU4はその処理対象を
ユーザ空間からスーパバイザ空間へと切り換える。即
ち、ブレークポイント設定レジスタの設定次第で、制御
用プログラムの任意の位置からスーパバイザ空間へのジ
ャンプが可能となる。
【0027】CPU4にとってのユーザ空間はROM1
上の制御用プログラム10が占めている領域である。一
方CPU4にとってのスーパバイザ空間はRAM5上の
スーパーバイザエントリー領域6となる。ブレークポイ
ントはユーザ空間内の何れかのアドレスに設定される。
RAM5は本システムが稼働している間、制御用プログ
ラム10のワークエリアとして用いられ、その内部にス
ーパーバイザエントリー領域6を有する。
【0028】スーパーバイザエントリー領域6は、CP
U4がハードウェアブレークを行った際、CPU4によ
り実行される命令が配される領域である。図2(a)
は、スーパーバイザエントリー領域6の内部を示す図で
ある。スーパーバイザエントリー領域6は、BP1用エン
トリー領域61、BP2用エントリー領域62、BP3用エン
トリー領域63、BP4用エントリー領域64、インスト
ールエリアから構成される。BP1用エントリー領域61
〜BP4用エントリー領域64は、ブレークポイント毎に
個別に設けられたジャンプ先領域である。BP1用エント
リー領域61は、ブレークポイント1によりCPU4が
ブレークした際そのジャンプ先となり、BP2用エントリ
ー領域62は、ブレークポイント2によりCPU4がブ
レークした際そのジャンプ先となる。BP1用エントリー
領域61〜BP4用エントリー領域64のサイズは、何れ
も0x10バイトである。
【0029】次にバージョンアップデータの内部につい
て説明する。バージョンアップデータの具体的な記載例
を図3に示す。バージョンアップデータは、ブレークポ
イントテーブル71、ジャンプテーブル72、パッチ処
理ユーティリィティ群73から構成される。ブレークポ
イントテーブル71は、ブレークポイントレジスタファ
イル31に設定されるべきブレークポイントが複数記録
されたテーブルである。図3におけるBP1:0x0A00は、R
OM1内のアドレス0x0A00をブレークポイント1として
設定する旨を示す。BP2:0x1200は、ROM1内のアドレ
ス0x1200をブレークポイント2として設定する旨を示
す。
【0030】ジャンプテーブル72は、スーパーバイザ
エントリー領域6内のBP1用エントリー領域61、BP2用
エントリー領域62、BP3用エントリー領域63、BP4用
エントリー領域64に配置されるべきジャンプ命令が複
数記録されたテーブルである。図3中のジャンプ命令
『jmp PATCH_UTILITY1』、『jmp PATCH_UTILITY2』、
『jmp PATCH_UTILITY3』、『jmp PATCH_UTILITY4:』
は、BP1用エントリー領域61〜BP4用エントリー領域6
4に個別に配置されるべきジャンプ命令である。
【0031】パッチ処理ユーティリィティ群73は、複
数のパッチ処理ユーティリティから構成される。図3の
一例では、パッチ処理ユーティリィティ群73はバグ処
置ユーティリティ1、仕様変更ユーティリティ1、バグ
処置ユーティリティ2、仕様変更ユーティリティ2とい
う4つのパッチ処理ユーティリティから構成される。個
々のパッチ処理ユーティリティには、『PATCH_UTILITY
1:』『PATCH_UTILITY2:』『PATCH_UTILITY3:』『PATCH_
UTILITY4:』といったラベルが付されている。
【0032】CPU4の内部構成を図4に示す。図4に
おいてCPU4は、プログラムカウンタ21、インクリ
メンタ22、汎用レジスタファイル23、プロセッサス
テータスレジスタ25、オペランドアドレスバッファ2
6、オペランドデータバッファ27、命令アドレスバッ
ファ28、命令データバッファ29、バス制御部30、
ブレークポイントレジスタファイル31、比較部32、
ブレーク制御部33、命令実行制御部34、算術論理演
算ユニット35、及び割込制御部36からなる。
【0033】図5は、図4に示したCPU4の構成要素
のうち、ハードウェアブレークとの係りが深いものを抜
粋して配置した図である(ブレークと係りがあるものと
して図5上に配置されている構成要素は、プログラムカ
ウンタ21、ブレークポイントレジスタファイル31、
比較部32、ブレーク制御部33、命令実行制御部3
4、プロセッサステータスレジスタ25、命令データバ
ッファ29である。)。図5はこれらの構成要素が互い
に連携して動作している様子を表現している。から
までの数値が付された矢印は、各構成要素の挙動がどの
ような順序で行われるかを示す。
【0034】プログラムカウンタ21は、制御用プログ
ラム10内の命令の読出先アドレスを保持する。インク
リメンタ22は、プログラムカウンタ21に保持されて
いる命令読出先アドレスをクロック信号に従ってインク
リメントする。汎用レジスタファイル23は、汎用レジ
スタR1〜R4からなる。
【0035】プロセッサステータスレジスタ(PSR)25
は、CPU4内部の状態を示す各種フラグから構成さ
れ、モードフラグを有する。モードフラグとは、ONに
設定された際にCPU4のモードがスーパバイザモード
であることを示し、OFFが設定された際にユーザモー
ドであることを示す。スーパバイザモードとは、CPU
4のアクセス先がスーパバイザ空間に設定されている状
態をいい、ユーザモードとは、CPU4のアクセス先が
ユーザ空間に設定されている状態をいう。
【0036】オペランドアドレスバッファ26は、算術
論理演算ユニット35による演算により得られたアドレ
スを一時的に保持してバス制御部30に出力する。オペ
ランドデータバッファ27は、算術論理演算ユニット3
5による演算により得られたデータを一時的に保持して
バス制御部30に出力する。またバス制御部30がデー
タバスを制御した際、データが読み出されると、読み出
されたデータを一時的に保持し、プログラムカウンタ2
1、汎用レジスタファイル23、プロセッサステータス
レジスタ25に出力する。
【0037】命令アドレスバッファ28は、プログラム
カウンタ21に配置されている読み出し先アドレスをバ
ス制御部30に受け渡す際、読み出し先アドレスを一時
的に保持するためのバッファである。命令データバッフ
ァ29は、バス制御部30の制御によりデータバスを介
して読み出された命令を保持し、命令実行制御部34に
出力する。
【0038】バス制御部30は、命令アドレスバッファ
28及びオペランドアドレスバッファ26が命令の読出
先アドレスを出力した場合は、当該アドレスをアドレス
バスに出力するよう制御する。読出先アドレスの出力に
よりデータバスに命令が読み出されるとバス制御部30
はこれを命令データバッファ29に出力するよう制御す
る。
【0039】データバスからデータが読み出された際に
は、これをオペランドデータバッファ27に出力するよ
う制御し、オペランドデータバッファ27に汎用レジス
タファイル23の保持値が出力された際は、これをデー
タバス上に出力するよう制御する。ブレークポイントレ
ジスタファイル31は、ブレークポイント1,2,3,4
を保持する。
【0040】比較部32は、プログラムカウンタ21に
保持されている読み出し先アドレスと、ブレークポイン
トレジスタファイル31に保持されているブレークポイ
ント1〜ブレークポイント4とを比較する比較器が四本
接続されて構成される。各比較器は、プログラムカウン
タ21に保持されている読み出し先アドレスが更新され
たタイミングで、更新後のアドレスとブレークポイント
1〜ブレークポイント4の何れに保持されているブレー
クポイントとを比較する。何れかの比較器が両アドレス
の一致を判定すれば、一致を判定した比較器は、その旨
をブレーク制御部33に通知する。比較部32内の比較
器によりアドレス比較が行われている様子は図5の矢
印に示されている。また、両アドレスの一致時にアドレ
ス一致及びブレーク番号が通知されている様子は、図5
において矢印に示されている。
【0041】ブレーク制御部33は、プログラムカウン
タ21に記録されている読み出し先アドレスとブレーク
ポイントの一致を比較部32を比較器の何れかが判定す
ると、どのブレークポイントがブレークしたかを示すブ
レーク番号を命令実行制御部34に通知する。ブレーク
制御部33によるブレーク番号通知は、図5において
矢印に示されている。
【0042】命令実行制御部34は、読み出された機械
語命令を解読し、解読結果に応じた全体制御を行う。読
み出し先アドレスとブレークポイントとの一致が判定さ
れた場合、命令実行制御部34は、プロセッサステータ
スレジスタ25内のスーパバイザフラグをONに設定す
る(命令実行制御部34によるフラグ設定は、図5にお
いて矢印に示されている)。それと共に、ジャンプア
ドレス計算を行うよう算術論理演算ユニット35に指示
する。
【0043】算術論理演算ユニット35は、解読結果が
演算命令である場合に汎用レジスタR1〜R4の保持値を用
いてその演算命令の演算を行い、解読結果が間接アドレ
ス指定命令である場合にそのアドレス計算を行う。ジャ
ンプアドレス計算を行うよう命令実行制御部34から指
示された際、算術論理演算ユニット35はスーパーバイ
ザエントリー領域6のベースアドレス、BP1用エントリ
ー領域61のサイズ、ブレーク制御部33から通知され
たブレーク番号からジャンプアドレスを計算し、計算結
果をオペランドアドレスバッファ26に出力する。命令
実行制御部34によるフラグ設定とは、図5において
矢印に示されている。ジャンプアドレスの計算式を以下
に示す。 {計算式} ジャンプアドレス←スーパーバイザエントリー領域6の
ベースアドレス+一エントリサイズ×ブレーク番号 ここでベースアドレスが0x1000であり、BP1用エントリ
ー領域61のサイズが0x10、ブレーク制御部33から通
知されたブレーク番号が2番である場合、ジャンプアド
レスとして0x1020が計算され、プログラムカウンタ21
に保持される。
【0044】オペランドアドレスバッファ26は、算術
論理演算ユニット35によるアドレス計算により得られ
た読み出しアドレスを一時的に保持し、プログラムカウ
ンタ21に出力する。オペランドアドレスバッファ26
によるアドレス出力は、図5において矢印に示されて
いる。割込制御部36は、割り込み番号と、その割り込
み番号の割り込みについてのサービスルーチンのエント
リーアドレスとを対応づけたベクタテーブルを有し、周
辺機器制御用のI/Oコントローラがハードウェア割り込
みを発生した場合及び制御用プログラム10の解読時に
CPU4が制御用プログラム割り込みを発生した場合
に、それらの割り込みの割り込み番号に対応するサービ
スルーチンのエントリーアドレスをベクタテーブルから
取り出し、そのアドレスを命令実行制御部34に通知す
る。
【0045】続いて制御用プログラム10の構成につい
て説明する。制御用プログラム10は、メインモジュー
ル11、ダウンロードモジュール12、パッチ初期化モ
ジュール13、及びアプリケーションプログラム14か
ら構成される。図6〜図8は制御用プログラム10の処
理内容の全容を示すフロ−チャ−トである。そのうち図
6はメインモジュール11の処理を示すフロ−チャ−ト
である。
【0046】マイコンシステムが起動されると、図6の
ステップS1においてCPU4はBP1用エントリー領域
61〜BP4用エントリー領域64を個別に初期化する。
ステップS1における初期化により図2(a)において
BP1用エントリー領域61〜BP4用エントリー領域64は
全て00列コードで充填される。初期化後、ステップS2
に移行する。ステップS2はダウンロードモジュール1
2をサブルーチンコールする呼出ステップであり、ステ
ップS2が実行されると、プログラムカウンタ21には
ダウンロードモジュール12の先頭アドレスが設定され
る。
【0047】ダウンロードモジュール12の先頭アドレ
スがプログラムカウンタ21に設定されると、ステップ
S3においてCPU4はバージョン情報を送信する旨の
送信要求を通信回線を介してサーバへ依頼する。ここで
要求されるバージョン情報とは、サーバに存在する最新
バージョン情報が第何版であるかを示す。サーバが当該
送信要求を受信すると、サーバはバージョン情報を通信
回線を介してマイコンシステムを送信する。
【0048】その一方、CPU4はステップS4におい
てバージョン情報の受信待ちを行っている。サーバから
バージョン情報が送信されると、ステップS4がYesと
なり、ステップS5に移行する。ステップS5では、受
信したバージョン情報と不揮発性メモリに保存している
バージョン情報とを比較する。不揮発性メモリ3に保存
しているバージョン情報側が新しい場合何も行わずにメ
インモジュール11へとリターンするが、受信したバー
ジョンの方が新しい場合、ステップS6において送信要
求を発行する。この送信要求はバージョンアップデータ
の転送を通信回線を介してサーバへ依頼する旨を示す。
【0049】送信要求を発行すると、ステップS7にお
いてCPU4はバージョンアップデータの受信待ちを行
う。バージョンアップデータが通信回線を介して送信さ
れてくると、CPU4は、ステップS8において図1の
参照符号r1に示すように、これらバージョンアップデー
タを通信回線インターフェィス2から不揮発性メモリ3
へと転送し、不揮発性メモリに保存する。保存後ステッ
プS81において不揮発性メモリ3に格納されているバ
ージョン情報を更新した後、メインモジュール11にリ
ターンする。このようにリターンした状態において、不
揮発性メモリ3には最新のバージョンアップデータが記
録されたことになる。
【0050】メインモジュール11にリターンすると、
ステップS2の次ステップ、即ちステップS9に移行す
る。ステップS9はパッチ初期化モジュール13をサブ
ルーチンコールする呼出ステップである。ステップS9
によりサブルーチンコールされると、CPU4内のプロ
グラムカウンタ21には、パッチ初期化モジュール13
の先頭アドレスが設定され、図8のフロ−チャ−トの処
理を開始する。図8は、パッチ初期化モジュール13の
処理内容を示すフロ−チャ−トであり、本フロ−チャ−
トに移行すると、ステップS10においてCPU4はバ
ージョンアップデータを不揮発性メモリ3からRAM5
へとコピーする。図1の経路r2は、ステップS10にお
いてバージョンアップデータが転送されている様子を示
す。
【0051】転送後、ステップS11において変数iを
初期化する。ここで変数iとは、ブレークポイントテー
ブル71内の個々のブレークポイントを指示する変数で
あり、ステップS11では、これに1が代入される。変
数iの初期化後、ステップS12においてCPU4は、
変数iがブレークポイント総数に達したかを判定する。
このように変数iをブレークポイント総数と比較するの
は、以降のステップS12からステップS16までの一
連のステップがループ処理を形成し、この変数iは当該
ループ処理の制御変数としての役割を有するからであ
る。変数iがブレークポイント総数に達しない場合は、
ステップS13においてCPU4は、ブレークポイント
テーブル71内のi個目のブレークポイントが00列コー
ドであるかを判定する。00列コードであれば。ステップ
S18に移行して、CPU4が有しているブレークポイ
ントレジスタファイル31のi個目のブレークポイント
レジスタに0を代入するが、図3の一例のように各ブレ
ークポイントが設定されている場合は、ステップS14
に移行する。
【0052】ステップS14では、ブレークポイントテ
ーブル71のi個目のブレークポイントを読み出し、ブ
レークポイントレジスタファイル31内のi個目のブレ
ークポイントレジスタに格納する。格納後、ステップS
15では、ジャンプテーブル72内のi個目のジャンプ
命令を読み出し、CPU4のi個目のBP1用エントリー領
域61に格納する。格納後、ステップS16に移行し
て、変数iをインクリメントする。インクリメント後、
ステップS12に移行する。
【0053】変数iが1の場合、即ち、ループ処理の一巡
目では、ブレークポイントテーブル71の1個目のブレ
ークポイント0x0A00が読み出され、CPU4の1個目の
ブレークポイントレジスタに格納される。格納後、ステ
ップS15では、ジャンプテーブル72内の1個目のジ
ャンプ命令「jmp PATCH_UTILITY1」が読み出され、CP
U4のBP1用エントリー領域61に格納される。格納
後、ステップS16に移行して、変数iを2にインクリメ
ントする。インクリメント後、ステップS12に移行す
る。
【0054】変数iが2の場合、即ち、ループ処理の二巡
目では、ブレークポイントテーブル71の2個目のブレ
ークポイント0x1200が読み出され、CPU4の2個目の
ブレークポイントレジスタに格納される。格納後、ステ
ップS15では、ジャンプテーブル72内の2個目のジ
ャンプ命令「jmp PATCH_UTILITY2」が読み出され、CP
U4のBP2用エントリー領域62に格納する。格納後、
ステップS16に移行して、変数iを3にインクリメント
する。インクリメント後、ステップS12に移行する。
【0055】変数iが3の場合、即ち、ループ処理の三巡
目では、ブレークポイントテーブル71の3個目のブレ
ークポイント0x1C00が読み出され、CPU4の3個目の
ブレークポイントレジスタに格納される。格納後、ステ
ップS15では、パッチ処理ユーティリィティ群73内
の3個目のジャンプ命令「jmp PATCH_UTILITY3」が読み
出され、CPU4のBP3用エントリー領域63に格納さ
れる。格納後、ステップS16に移行して、変数iを3に
インクリメントする。インクリメント後、ステップS1
2に移行する。
【0056】変数iが4の場合、即ち、ループ処理の四巡
目では、ブレークポイントテーブル71の4個目のブレ
ークポイント0x2300が読み出され、CPU4の4個目の
ブレークポイントレジスタに格納される。格納後、ステ
ップS15では、パッチ処理ユーティリィティ群73内
の4個目のジャンプ命令「jmp PATCH_UTILITY4」が読み
出され、CPU4のBP4用エントリー領域64に格納さ
れる。
【0057】ステップS12〜ステップS16の繰り返
しが四回行われた後のスーパーバイザエントリー領域6
の内容を図2(b)に示す。図2(b)において、BP1
用エントリー領域61〜BP4用エントリー領域64に
は、PATCH_UTILITY1〜4をジャンプ先にしたジャンプ命
令が配されている。またCPU4においては、ブレーク
ポイントレジスタファイル31に『0x0A00』『0x1200』
『0x1C00』『0x2300』が設定されている。
【0058】その後、CPU4はステップS16に移行
して、変数iを4にインクリメントする。インクリメント
後、ステップS12に移行すると、ステップS12にお
ける変数iとブレークポイントの総数との一致判定にお
いてYesと判定され、メインモジュール11にリターン
する。メインモジュール11にリターンすると、ステッ
プS9の次ステップ、即ちステップS17に移行する。
ステップS17はアプリケーションプログラム14をサ
ブルーチンコールする呼出ステップである。ステップS
9によりサブルーチンコールされると、アプリケーショ
ンプログラム14の先頭アドレスがプログラムカウンタ
21に設定される。
【0059】CPU4がアプリケーションプログラム1
4の処理を開始すると、ジャンプテーブル72はCPU
4内の制御用プログラムカウントのカウント値がブレー
クポイントテーブル71に設定されている何れかのブレ
ークポイントと一致したかを監視する。ここでプログラ
ムカウンタ21のカウント値がブレークポイント2の0x
1200と一致すると、CPU4はブレークポイント2のブ
レーク先となるBP2用エントリー領域62にジャンプす
る。パッチ初期化モジュール13の処理時においてBP2
用エントリー領域62にはジャンプ命令『jmp PATCH_UT
ILITY2:』が書き込まれている。このようにBP2用エント
リー領域62にはジャンプ命令が書き込まれているの
で、CPU4は本ジャンプ命令に従い、ジャンプを行
う。そのジャンプ先は PATCH_UTILITY2:であり、図3で
は、"仕様変更ユーティリティ"が配置されている。BP2
用エントリー領域62に書き込まれたジャンプ命令より
CPU4は"仕様変更ユーティリティ"へとジャンプする
ので、仕様変更ユーティリティが実行されることにな
る。
【0060】以上の処理を要約すると、ROMに記録さ
れているアプリケーションプログラム14の動作が一時
的にブレークし、そのブレーク時にバージョンアップデ
ータに含まれているパッチ処理ユーティリティが実行さ
れている。ROM記録されたアプリケーションプログラ
ム14のブレークから、パッチ処理ユーティリティの起
動までの一連の処理が全てバージョンアップデータによ
り行われたことがわかる。
【0061】以上のように本実施形態によれば、アプリ
ケーションプログラム14の実行のどのタイミングでパ
ッチ処理ユーティリティを起動するかが、バージョンア
ップデータに含まれているブレークポイントに基づいて
行われるので、従来技術のようにトラップルーチンが介
入する余地は一切無い。そのためアプリケーションプロ
グラム内の随所に配置されていたトラップルーチンを一
掃することができる。このようにトラップルーチンを一
掃することにより、制御用プログラムの実行時間を向上
させることができ、プログラムサイズの縮小化を図るこ
とができる。
【0062】また開発者は製品出荷後のメンテナンスの
ためにやむなく行われていたパッチ処理対応という処理
が必要でなくなり、『アプリケーションプログラム内の
トラップルーチンを挿入していない位置にバグ原因が存
在する場合、対処のしようがない』という心理的不安か
ら開発者を解放することができる。更にCPU4は、自
身のアプリケーションプログラム14の欠落を補うため
のバージョンアップデータが登録されているかをその起
動時に通信回線を介してサーバに問い合わせ、登録され
ていると、上記のようなバージョンアップを行うので、
マイコンシステムを開発した開発者は、バグ処置や仕様
変更の必然性がマイコンシステム出荷後に生じた際、バ
グ処置や仕様変更を行うためのパッチ処理ユーティリテ
ィを含むバージョンアップデータをサーバに登録してお
けばよい。サーバへのバージョンアップデータ登録とい
う手軽な処理で、マイコンシステムは自動的にバックア
ップを行うので、メンテナンスが容易に行うことができ
る。
【0063】(第2実施形態)第2実施形態は、ソフト
ウェアブレークを用いてパッチ処理への移行を行う実施
形態である。ソフトウェアブレークとは、アプリケーシ
ョンプログラム14に記入されている割込信号発生命令
を中央処理装置が実行して時点で行われるブレークをい
う。
【0064】ソフトウェアブレーク型のマイコンシステ
ムの構成図を図9に示す。図9が図1に示した第1実施
形態における構成図と異なるのは、CPU4がCPU8
5に置き換えられ、キャッシュメモリ82、タグテーブ
ル83、キャッシュコントローラ84が新規に追加され
ている点である。キャッシュメモリ82は、複数のキャ
ッシュデータが配置されている。ここでキャッシュデー
タとは、ROM1に記録されている制御用プログラム1
0を構成する命令列のうち、所定単位のものの写しをい
う。
【0065】タグテーブル83は、キャッシュメモリ8
2に配置されている各キャッシュデータのタグと、固定
ビットとを含む。タグとは、キャッシュデータに対応す
る命令列のエントリーアドレスをいう。固定ビットと
は、そのタグに対応するキャッシュデータの入替を禁止
するか許可するかを示すビットをいう。キャッシュコン
トローラ84は、キャッシュメモリ82上の領域管理を
行うと共にリードヒットの発生を監視する。領域管理と
は、演算処理性能を向上させるためのキャッシュメモリ
82におけるキャッシュデータの入替処理等をいう(タ
グテーブル83において固定ビットがONに設定されて
いるキャッシュデータは、入替の対象外となる。)。ま
たリードヒットとは、CPU4がアドレスバスに出力す
る読出先アドレスがキャッシュタグの何れかに合致する
ことをいう。もしヒットした場合、そのタグをエントリ
ーアドレスとするキャッシュデータをキャッシュメモリ
82からCPU4へと読み出す。
【0066】CPU85は、CPU4内部に設けられて
いたブレークポイントレジスタファイル31、比較部3
2、ブレーク制御部33が排された中央処理装置であ
る。その一方、ソフトウェアブレークのために割込制御
部36が多少改良されている。その改良とは、割込制御
部36内のベクタテーブルにおいて4つの割込番号w
[1],w[2],w[3],w[4]がブレークポイント1〜ブレークポ
イント4に割り当てられ、割込番号w[1]〜w[4]のジャン
プ先アドレスとして、BP1用エントリー領域61〜BP4用
エントリー領域64が割り当てられていることをいう。
【0067】上記改良に鑑みて、第2実施形態において
CPU85は割込信号発生命令を解読し、これに応じた
制御を行う。割込信号発生命令とは、そのオペランドに
割込番号w[1],w[2],w[3],w[4]の何れかが指定され、こ
れらの割り込み番号の割り込みを発生する旨を求めてい
る命令をいう。命令実行制御部34がこのような割込信
号発生命令を解読した際、命令実行制御部34はこれら
の割り込み番号の割り込みを発生する。割込番号w[1],w
[2],w[3],w[4]の割り込みを発生した際、割込制御部3
6は、割込番号w[1]〜w[4]のジャンプ先アドレスとし
て、BP1用エントリー領域61〜BP4用エントリー領域6
4の先頭アドレスを算術論理演算ユニット35を介して
プログラムカウンタ21に格納する。
【0068】制御用プログラム10の構成要素におい
て、ソフトウェアブレークのために変更が加えられてい
るのはパッチ初期化モジュール13である。パッチ初期
化モジュール13に対して加えられた変更は、図8のス
テップS15である。ステップS15とは、ブレークポ
イントテーブル51に格納されているブレークポイント
を個別にブレークポイントレジスタファイル31に転送
する処理である。第2実施形態では、ブレークポイント
レジスタファイル31が排除されているので、これに代
えてソフトウェアブレーク用のブレークポイントを設定
する処理が設けられている。
【0069】変更が加えられたパッチ初期化モジュール
13の処理内容を図10に示す。図10では、ステップ
S15がステップS21〜ステップS25に置き換えら
れている。このステップS21〜ステップS25がソフ
トウェアブレーク用のブレークポイントを設定する処理
である。ステップS21では、ROM1に記録されてい
るアプリケーションプログラム14内部であって、ブレ
ークポイントテーブル[i]のアドレスに記録されている
命令列を読み出す。読み出し後ステップS22では、ブ
レークポイントテーブル[i]のアドレスをキャッシュタ
グ[i]に登録する。ステップS22では読み出された命
令列をキャッシュデータ[i]としてキャッシュメモリ8
2に配置する。以上で、ブレークポイントテーブル[i]
のアドレスから始まる命令列がi個目のキャッシュデー
タとしてキャッシュメモリ82上に用意されたことにな
る。ここで留意すべきは、本来ROM1に記録されてお
り、書き換えが絶対不可能な筈のアプリケーションプロ
グラム14内の命令列がキャッシュメモリ82上に配置
されたため、書き換えが可能になった点である。即ち、
キャッシュメモリ82上にキャッシュデータとして配置
されている限り、アプリケーションプログラム14を直
接書き換えることも、別の命令を配置することも可能で
ある。
【0070】このようにアプリケーションプログラム1
4の直接書き換えが可能となった状態で、ステップS2
4では、割込信号w[i]を発生させる割込信号発生命令を
キャッシュデータ[i]の先頭に書き込む。ステップS2
4における割込信号発生命令の書き込みにより、ブレー
クポイントテーブル[i]のアドレスがデータバスに出力
されたタイミングで、割込信号w[i]を発生させることが
できる。割込信号発生命令の書き込んだ後、ステップS
25においてCPU4はキャッシュタグ[i]の固定ビッ
ト[i]をONに設定する。固定ビット[i]を設定したのは、
割込信号発生命令が書き込まれたキャッシュデータをキ
ャッシュコントローラ84が勝手に廃棄しないようにす
るためである。全てのブレークポイントテーブル71に
含まれている4つのブレークポイントに対して以上の処
理が行われると、キャッシュメモリ82上には、割込信
号w[i]を発生させる割込信号発生命令が書き込まれたキ
ャッシュデータが4本配置されることになる。
【0071】ここで4本のブレークポイントが図3に示
したバージョンアップデータに含まれていたものである
とすると、アプリケーションプログラム14内部のう
ち、0x0A00から配置された命令列、0x1200から配置され
た命令列、0x1C00から配置にされた命令列、BP3:0x2300
から配置された命令列がそれぞれ、キャッシュデータ
[1][2][3][4]としてキャッシュメモリ82上に配置され
たことになる。
【0072】割込信号w[i]を発生させる割込信号発生命
令が書き込まれたキャッシュデータがキャッシュメモリ
82に存在する状態で、CPU4がアプリケーションプ
ログラム14をどう実行するかについて説明する。。C
PU4がアプリケーションプログラム14の処理を開始
すると、キャッシュコントローラ84は、アドレスバス
に出力されている読出先アドレスがタグテーブル83中
の4本のキャッシュタグの何れにヒットするかを監視し
ている。ここでアドレスバスに出力されている読出先ア
ドレスがキャッシュタグ[2]とヒットしたとすると、キ
ャッシュコントローラ84はキャッシュメモリ82に配
置されているキャッシュデータ[2]の先頭命令をデータ
バスを介してCPU4に読み出す。
【0073】読み出された命令は命令データバッファ2
9に配置され、命令実行制御部34により解読される。
ここでキャッシュデータ[2]の先頭命令は、パッチ初期
化モジュール13の実行時に書き込まれた割込信号発生
命令である。この割込信号発生命令はw[2]番目の割り込
みを発生する旨を規定しているので、CPU4はその通
りにw[2]番目の割り込みを発生する。w[2]番目の割り込
みを発生すると、割込制御部36は、w[2]番目の割り込
みに対応するジャンプ先アドレスをベクタテーブルを読
み出す。このジャンプ先では、BP2用エントリー領域6
2であり、CPU4はここにジャンプする。BP2用エン
トリー領域62にはジャンプ命令『jmp PATCH_UTILITY
2:』が書き込まれているので、CPU4は本ジャンプ命
令に従い、ジャンプを行う。ジャンプ先ラベルPATCH_UT
ILITY2にはパッチ処理ユーティリティ"仕様変更ユーテ
ィリティ"が配置されているので、BP2用エントリー領域
62に書き込まれたジャンプ命令よりCPU4は"仕様
変更ユーティリティ"へとジャンプするので、仕様変更
ユーティリティが実行されることになる。
【0074】以上のように本実施形態によれば、アプリ
ケーションプログラム14上の命令列がキャッシュメモ
リ82に読み出された段階で割込信号発生命令を書き込
み、この割込信号発生命令に従いソフトウェアブレーク
を行わせてパッチ処理ユーティリティを起動させること
ができる。アプリケーションプログラム14実行のどの
タイミングでパッチ処理ユーティリティを起動するか
が、バージョンアップデータに含まれているブレークポ
イントに基づいて行われるので、従来技術のようにトラ
ップルーチンが介入する余地は一切無い。そのためアプ
リケーションプログラム内の随所に配置されていたトラ
ップルーチンを制御用プログラムから一掃することがで
きる。このようにトラップルーチンを一掃することによ
り、制御用プログラムの実行時間を向上させることがで
き、プログラムサイズの縮小化を図ることができる。
【0075】(第3実施形態)第3実施形態はその所有
者によって任意にカスタマイズされているマイコンシス
テムを、サーバが一律にメンテナンスするための実施形
態である。マイコンシステムのカスタマイズとは、マイ
コンシステムのメーカーが販売しているマイコンシステ
ム用の複数種類の拡張ROMの何れかをマイコンシステ
ムの所有者が購入し、マイコンシステムに接続している
ことをいう。
【0076】ここでメーカーが拡張ROM101、拡張ROM
102、拡張ROM103、拡張ROM104、拡張ROM10
5という五種類の拡張ROMのラインナップを販売して
いるものとする。そしてこれらの拡張ROMのうち、マ
イコンシステムの所有者が拡張ROM103、拡張ROM10
5を購入して、図11に示すようにマイコンシステム内
部に接続したものとする。
【0077】このようにマイコンシステムが任意がカス
タマイズされ得る場合に、メーカがメンテナンス用に作
成したバージョンアップデータを図12に示す。図12
のバージョンアップデータは、拡張ROM101用のパッ
チ処理ユーティリティと、拡張ROM102用のパッチ処
理ユーティリティと、拡張ROM103用のパッチ処理ユ
ーティリティと、拡張ROM104用のパッチ処理ユーテ
ィリティと、拡張ROM105用のパッチ処理ユーティリ
ティとを含んでいる。またこれらのパッチ処理ユーティ
リティをアプリケーションプログラム14起動中のどの
タイミングで起動させるかを示すブレークポイント1〜
5を有し、これらのブレークポイントによるハードウェ
アブレーク時に5つのパッチ処理ユーティリティに個別
にジャンプするためのジャンプ命令を有する。
【0078】図12中の『PATCH_UTILITY_FOR_ROM10
1:』、『PATCH_UTILITY_FOR_ROM102:』、『PATCH_UTILI
TY_FOR_ROM103:』、『PATCH_UTILITY_FOR_ROM104:』、
『PATCH_UTILITY_FOR_ROM105:』は、5つのパッチ処理
ユーティリティに付された5つのラベルの一例であり、
図12中の『jmp PATCH_UTILITY_FOR_ROM101:』、『jm
pPATCH_UTILITY_FOR_ROM102:』、『jmp PATCH_UTILITY
_FOR_ROM103:』、『jmpPATCH_UTILITY_FOR_ROM104:』、
『jmp PATCH_UTILITY_FOR_ROM105:』は、5つのパッチ
処理ユーティリティへと個別にジャンプするためのジャ
ンプ命令である。
【0079】第3実施形態では、このような構成を有す
るバージョンアップデータがメーカーにより作成され、
サーバに格納されている。第3実施形態において改良さ
れたのは、パッチ初期化モジュール13に示したフロ−
チャ−トのステップS10とステップS11との間であ
る。図14に示すように、このステップS10−ステッ
プS11間に第3実施形態特有の処理を行うステップ群
が挿入されている。パッチ初期化モジュール13とは、
ブレークポイントテーブル51内のブレークポイントを
ブレークポイントレジスタファイル31に転送し、ジャ
ンプテーブル52をBP1用エントリー領域61に転送す
るモジュールであり、そのフロ−チャ−トのステップS
10とは、不揮発性メモリ3上に存在するバージョンア
ップデータを一時的にRAM5に転送するステップであ
る。
【0080】図14のフロ−チャ−トにおいて、ステッ
プS10が実行されると、ステップS31が実行され
る。ステップS31では、バージョンアップデータ内に
含まれているn本のパッチ処理ユーティリティ内にm個(n
>m)の拡張ROM向けのm本のパッチ処理ユーティリティが
含まれているかを判定する。含まれているなら、ステッ
プS32において変数jを初期化する。ここで変数jと
は、バージョンアップデータに含まれているm個(n>m)の
拡張ROM向けのm本のパッチ処理ユーティリティを個別に
指示する変数であり、ステップS32では、これに1が
代入される。変数iの初期化後、マイコンシステムに拡
張ROM(j)が接続されているかを判定する。
【0081】もし拡張ROM(j)が接続されておらず、本来
拡張ROM(j)が存在するべきアドレスの内容が00列なら
ば、ジャンプテーブル72に含まれているジャンプ命令
のうち、拡張ROM(j)用のパッチ処理ユーティリティへと
ジャンプするジャンプ命令(j)を00列にて上書きするこ
とにより抹消する。ジャンプ命令(j)が抹消されると、
ステップS35においてCPU4は、変数jが拡張RO
M総数に達したかを判定する。このように変数jをブレ
ークポイント総数と比較するのは、以降のステップS3
2からステップS35までの一連のステップがループ処
理を形成し、この変数jは当該ループ処理の制御変数と
しての役割を有するからである。変数iが拡張ROM総
数に達しない場合は、ステップS36において変数jを
インクリメントし、ステップS33に移行する。以上の
ステップS31〜ステップS36の繰り返しが図12に
示したジャンプテーブル72について行われると、マイ
コンシステムと接続されている拡張ROM103、拡張ROM
105用のパッチ処理ユーティリティについてはステッ
プS33がNoとなるが、マイコンシステムに接続されて
いない拡張ROM101、拡張ROM102、拡張ROM104
用のパッチ処理ユーティリティについてはステップS3
3がYesとなり、ジャンプテーブル72内の拡張ROM10
1、拡張ROM102、拡張ROM104用のパッチ処理ユー
ティリティへとジャンプするジャンプ命令が00列に書き
換えられる。
【0082】ジャンプ命令が00列に書き換えられたパッ
チ処理ユーティリティは、ステップS13がYesとな
る。ステップS13がYesになると、ブレークポイント
レジスタファイル31内のそのジャンプ命令に対応する
ブレークポイントレジスタには00列が書き込まれ、バー
ジョンアップデータに含まれていたブレークポイントは
ブレークポイントレジスタファイル31に書き込まれな
い。
【0083】以上のように本実施形態によれば、自シス
テムのカスタマイズ形態において実装されていない拡張
ROM用のパッチ処理ユーティリティがバージョンアッ
プデータ内に含まれていても、その拡張ROMをジャン
プ先にしたジャンプ命令を00列に書き換えるので、実装
されていない拡張ROM用のパッチ処理ユーティリティ
が誤って起動されるという現象を防止することができ
る。
【0084】上記実施形態に基づいて説明してきたが、
現状において最善の効果が期待できるシステム例として
提示したに過ぎない。本発明は、その要旨を逸脱しない
範囲で変更実施することができる。ハードウェア環境の
切り換えを意図したであればどのようなシステムに適用
できることはいうまでもない。以下(a)(b)(c)
に示すような変更実施が可能である。
【0085】(a)サーバは、圧縮された状態でバージ
ョンアップデータを管理し、マイコンシステムからの送
信要求に応じてこれを配信してもよい。このようなバー
ジョンアップデータをCPU4がダウンロードした場
合、不揮発性メモリ3には、バージョンアップデータが
圧縮された状態で格納されることになる。このように格
納されたバージョンアップデータを伸長するための伸長
ステップを制御用プログラム10内に設け、バージョン
アップデータを伸長させつつもRAMにコピーさせる。
このような伸長処理により、第1実施形態同様、ブレー
クポイントを用いてパッチ処理ユーティリティを起動さ
せることができる。圧縮された状態で不揮発性メモリに
格納されたバージョンアップデータを伸長してからパッ
チ処理を起動するので、不揮発性メモリの記憶容量が小
さくてもパッチプログラムのサイズを増大させることが
可能となる。
【0086】(b)通信回線を通じてバージョンアップ
データをダウンロードする構成例で説明を行ったが、フ
ロッピィディスク、や、CD−ROM等、持ち運び可能
な記録媒体を用いてバージョンアップデータのダウンロ
ードを行うよう構成してもよい。 (c)第3実施形態において拡張用ROMが供給される場
合について説明を行ったが、マイコンシステムの拡張が
記録領域単位で行われるシステムにおいて適用してよい
ことはいうまでもない。
【0087】ここでいう記録領域の一例には、フラッシ
ュメモリ内部のセクタという単位がある。フラッシュメ
モリにセクタという単位でシステム用ソフトウェアが格
納される場合、システムはこのセクタという単位でソフ
トウェアを拡張する。このようにシステムがセクタ単位
に拡張され、通信サーバが全セクタ向けのバージョンア
ップデータを送信してくる場合、本システムは、セクタ
単位毎のパッチ処理ユーティリティの要否を判定し、ジ
ャンプ命令の削除を行う。そうすると、自システムに必
要の無いパッチ処理ユーティリティが送信されてきて
も、それを用いないように処理を行うことができる。
【0088】上記記録領域における他の一例には、ハー
ドディスクがあるが、本ディスクにおいても、上記のよ
うに記録領域単位毎のパッチ処理ユーティリティの要否
を判定し、ジャンプ命令の削除を行えばよい。
【0089】
【発明の効果】上記課題を解決するためのマイコンシス
テムにおけるメンテナンス方法は、複数の命令からなる
制御用プログラムが記録されたROMと、RAMと、所
定の第1アドレスにおいてブレークし、第2アドレスへ
と分岐するブレーク機能を備える中央処理装置とを有す
るマイコンシステムにおけるメンテナンス方法であっ
て、ROMにおいて制御用プログラムが記録されている
領域内の何れかのアドレスと、パッチ処理ユーティリテ
ィとを含むバージョンアップデータを外部からダウンロ
ードするダウンロードステップと、バージョンアップデ
ータが外部からダウンロードされると、それに含まれて
いるブレークアドレスを第1アドレスとして中央処理装
置に設定するブレークアドレス設定ステップと、バージ
ョンアップデータに含まれているパッチ処理ユーティリ
ティをRAM上の第2アドレスから始まる領域に書き込
む書込ステップとを有することを特徴としている。
【0090】このように構成されたメンテナンス方法に
よれば、アプリケーションプログラムの実行のどのタイ
ミングでパッチ処理ユーティリティを起動するかが、バ
ージョンアップデータに含まれているブレークポイント
に基づいて行われるので、従来技術のようにトラップル
ーチンが介入する余地は一切無い。そのためアプリケー
ションプログラム内の随所に配置されていたトラップル
ーチンを一掃することができる。このようにトラップル
ーチンを一掃することにより、アプリケーションプログ
ラムの実行時間を向上させることができ、プログラムサ
イズの縮小化を図ることができる。
【0091】一方開発者は製品出荷後のメンテナンスの
ためにやむなく行われていたパッチ処理対応という処理
が必要でなくなり、『アプリケーションプログラム内の
トラップルーチンを挿入していない位置にバグ原因が存
在する場合、対処のしようがない』という心理的不安か
ら開発者を解放することができる。また、複数の命令か
らなる制御用プログラムが記録されたROMと、RAM
と、割込信号発生命令を解読した際ブレークし、所定ア
ドレスに分岐するブレーク機能を備える中央処理装置
と、キャッシュメモリと、中央処理装置が読出先アドレ
スを出力した際、その読出先アドレスに存在すべき命令
列がキャッシュメモリ上に配置されているなら、キャッ
シュメモリ上の命令列を中央処理装置に読み出させて実
行させるキャッシュコントローラとを有するマイコンシ
ステムにおけるメンテナンス方法であって、ブレークア
ドレスと、パッチ処理ユーティリティとを含むバージョ
ンアップデータを外部からRAMにダウンロードするダ
ウンロードステップと、ダウンロードされたバージョン
アップデータに含まれているパッチ処理ユーティリティ
をRAM上の所定アドレスに書き込む第1書込ステップ
と、パッチ処理ユーティリティがRAM上の所定アドレ
スに書き込まれると、バージョンアップデータに含まれ
ているブレークアドレスを先頭とした所定サイズの命令
列をROMから読み出して、キャッシュメモリに書き込
む第2書込ステップと、命令列が書き込まれたキャッシ
ュメモリの内容を固定に設定する設定ステップと、命令
列がキャッシュメモリに書き込まれると、キャッシュメ
モリに書き込まれた状態の命令列に割込信号発生命令を
書き込む第3書込ステップとを備えることを特徴として
いる。
【0092】本構成によれば、アプリケーションプログ
ラムの命令列がキャッシュメモリに読み出された段階で
割込信号発生命令を書き込み、この割込信号発生命令に
従いソフトウェアブレークを行わせてパッチ処理ユーテ
ィリティを起動させることができる。アプリケーション
プログラム実行のどのタイミングでパッチ処理ユーティ
リティを起動するかが、バージョンアップデータに含ま
れているブレークポイントに基づいて行われるので、従
来技術のようにトラップルーチンが介入する余地は一切
無い。そのためアプリケーションプログラム内の随所に
配置されていたトラップルーチンをアプリケーションプ
ログラムから一掃することができる。このようにトラッ
プルーチンを一掃することにより、アプリケーションプ
ログラムの実行時間を向上させることができ、プログラ
ムサイズの縮小化を図ることができる。
【0093】また、複数の命令からなる制御用プログラ
ムが記録されたm個の記録領域のうち、n個(m>n)の記録
領域と、RAMと、所定のブレークアドレスから所定の
分岐先アドレスへと分岐する中央処理装置とを有するマ
イコンシステムにおけるメンテナンス方法であって、複
数のブレークアドレスと、個々のブレークアドレスに対
応するパッチ処理ユーティリティと、パッチ処理ユーテ
ィリティをジャンプ先に指定したジャンプ命令とを含む
バージョンアップデータを外部からRAMにダウンロー
ドするダウンロードステップと、ダウンロードされたバ
ージョンアップデータのうち、複数のブレークアドレス
を中央処理装置に設定する設定ステップと、ダウンロー
ドされたバージョンアップデータに含まれているジャン
プ命令とパッチ処理ユーティリティとの複数の組みをR
AM上の所定の分岐先アドレスに書き込む書込ステップ
と、RAM上の分岐先アドレスに書き込まれたパッチ処
理ユーティリティのうち、n個の記録領域以外の(m-n)個
の記録領域に対応するものを検出する検出ステップと、
RAMに書き込まれたジャンプ命令のうち、検出された
(m-n)個の記録領域からパッチ処理ユーティリティへと
ジャンプするためのジャンプ命令を削除する削除ステッ
プとにより構成してもよい。
【0094】本構成によれば、自システムのカスタマイ
ズ形態において実装されていない拡張ROM用のパッチ
処理ユーティリティがバージョンアップデータ内に含ま
れていても、その拡張ROMをジャンプ先にしたジャン
プ命令を削除するので、実装されていない拡張ROM用
のパッチ処理ユーティリティが誤って起動されるという
現象を防止することができる。
【0095】また、複数の命令からなる制御用プログラ
ムが記録されたROMと、RAMとを備えるマイコンシ
ステムの応用装置であって、ブレークアドレスと、パッ
チ処理ユーティリティとを含むバージョンアップデータ
を外部からダウンロードするダウンロード手段と、バー
ジョンアップデータが外部からダウンロードされると、
それに含まれているブレークアドレスを保持するブレー
クアドレス保持手段と、バージョンアップデータに含ま
れているパッチ処理ユーティリティをRAMに書き込む
書込手段と、パッチ処理ユーティリティがRAM上に書
き込まれると、ROM上の何れかのアドレスを読出先ア
ドレスとして保持する読出先アドレス保持手段と、読出
先アドレス保持手段に保持されている読出先アドレスを
更新する第1更新手段と、読出先アドレスが更新される
度に、読出先アドレスから命令を読み出して実行する実
行手段と、読出先アドレスが更新される度に、読出先ア
ドレスと、ブレークアドレスとが合致するかを判定する
判定手段と、合致すると、読出先アドレス保持手段に保
持されている読出先アドレスをRAM上のパッチ処理ユ
ーティリティが記録されている先頭アドレスに更新する
第2更新手段とを備えるように構成してもよい。
【0096】このように構成された応用装置によれば、
アプリケーションプログラムの実行のどのタイミングで
パッチ処理ユーティリティを起動するかが、バージョン
アップデータに含まれているブレークポイントに基づい
て行われるので、従来技術のようにトラップルーチンが
介入する余地は一切無い。そのためアプリケーションプ
ログラム内の随所に配置されていたトラップルーチンを
一掃することができる。このようにトラップルーチンを
一掃することにより、アプリケーションプログラムの実
行時間を向上させることができ、プログラムサイズの縮
小化を図ることができる。
【0097】一方開発者は製品出荷後のメンテナンスの
ためにやむなく行われていたパッチ処理対応という処理
が必要でなくなり、『アプリケーションプログラム内の
トラップルーチンを挿入していない位置にバグ原因が存
在する場合、対処のしようがない』という心理的不安か
ら開発者を解放することができる。また前記ダウンロー
ド手段は、通信インターフェィスと、通信インターフェ
ィスを介して制御用プログラムのバージョンアップの新
旧をサーバに問い合わせることにより、制御用プログラ
ムのメンテナンスの要否を判定する判定部と、メンテナ
ンスの必要が有る場合、バージョンアップ情報を送信さ
せる旨の送信要求をサーバに送信する送信部と、通信イ
ンターフェィスを介してサーバから送信されてくるバー
ジョンアップ情報を受信する受信部とを備え、前記書込
手段は、ダウンロードされたバージョンアップデータに
含まれているパッチ処理ユーティリティをRAMに書き
込むように構成されている。
【0098】この構成において応用装置は、バージョン
アップの要否を通信回線を介してサーバに問い合わせ、
その必要があるならば上記のようなバージョンアップを
行うので、マイコンシステムを開発した開発者は、バグ
処置や仕様変更の必然性がマイコンシステム出荷後に生
じた際、バグ処置や仕様変更を行うためのパッチ処理ユ
ーティリティを含むバージョンアップデータをサーバに
登録しておけばよい。サーバへのバージョンアップデー
タ登録という手軽な処理で、マイコンシステムは自動的
にバックアップを行うので、メンテナンスが容易に行う
ことができる。通信インターフェィスを介して受信部が
受信したバージョンアップ情報が所定方式により圧縮さ
れていれば、これを伸長する伸長部を備え、書込手段
は、伸長されたバージョンアップデータに含まれている
パッチ処理ユーティリティをRAMに書き込むように構
成されている。この構成によれば、バージョンアップデ
ータを一時的に記憶するための不揮発性メモリの記憶容
量が小さくてもサイズが大きいバージョンアップデータ
を転送させることが可能となる。
【図面の簡単な説明】
【図1】第1実施形態に係るマイコンシステムの構成を
示すブロック図である。
【図2】(a)バージョンアップデータが未配置である
際のスーパーバイザエントリー領域6の内容を示す図で
ある。 (b)バージョンアップデータが配置された際のスーパ
ーバイザエントリー領域6の内容を示す図である。
【図3】ブレークポイントテーブル71、ジャンプテー
ブル72、パッチユーティリィティ73の一例を示す図
である。
【図4】CPU4の内部構成を示す図である。
【図5】ハードウェアブレーク時において、CPU4内
の構成要素がどのように挙動するかを示す図に示してい
る。
【図6】メインモジュール11の処理内容を示すフロ−
チャ−トである。
【図7】ダウンロードモジュール12の処理内容を示す
フロ−チャ−トである。
【図8】パッチ初期化モジュール13の処理内容を示す
フロ−チャ−トである。
【図9】第2実施形態に係るマイコンシステムの構成を
示すブロック図である。
【図10】第2実施形態に係るパッチ初期化モジュール
13の処理内容を示すフロ−チャ−トである。
【図11】第3実施形態に係るマイコンシステムの構成
を示すブロック図である。
【図12】バージョンアップデータの具体的な内容を示
す図に示している。
【図13】バージョンアップデータの具体的な内容を示
す図に示している。
【図14】第3実施形態に係るパッチ初期化モジュール
13の処理内容を示すフロ−チャ−トである。
【図15】トラップルーチンがアプリケーションプログ
ラム内にどのように配置されているかを示す図である。
【図16】バージョンアップが未配置である際のRAM
上の内容を示す図である。
【図17】バージョンアップが配置された際のRAM上
の内容を示す図である。
【符号の説明】 1 ROM 2 通信回線インターフェィス 3 不揮発性メモリ 4 CPU 5 RAM 6 スーパーバイザエントリー領域 10 制御用プログラム 11 メインモジュール 12 ダウンロードモジュール 13 パッチ初期化モジュール 14 アプリケーションプログラム 21 プログラムカウンタ 22 インクリメンタ 23 汎用レジスタファイル 25 プロセッサステータスレジスタ 26 オペランドアドレスバッファ 27 オペランドデータバッファ 28 命令アドレスバッファ 29 命令データバッファ 30 バス制御部 31 ブレークポイントレジスタファイル 32 比較部 33 ブレーク制御部 34 命令実行制御部 35 算術論理演算ユニット 36 割込制御部 51 ブレークポイントテーブル 52 ジャンプテーブル 82 キャッシュメモリ 83 タグテーブル 84 キャッシュコントローラ 84 キャッシュメモリ 85 CPU

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 複数の命令からなる制御用プログラムが
    記録されたROMと、RAMと、所定の第1アドレスに
    おいてブレークし、第2アドレスへと分岐するブレーク
    機能を備える中央処理装置とを有するマイコンシステム
    におけるメンテナンス方法であって、 ROMにおいて制御用プログラムが記録されている領域
    内の何れかのアドレスと、パッチ処理ユーティリティと
    を含むバージョンアップデータを外部からダウンロード
    するダウンロードステップと、 バージョンアップデータが外部からダウンロードされる
    と、それに含まれているブレークアドレスを第1アドレ
    スとして中央処理装置に設定するブレークアドレス設定
    ステップと、 バージョンアップデータに含まれているパッチ処理ユー
    ティリティをRAM上の第2アドレスから始まる領域に
    書き込む書込ステップとを有することを特徴とするメン
    テナンス方法。
  2. 【請求項2】 複数の命令からなる制御用プログラムが
    記録されたROMと、RAMと、割込信号発生命令を解
    読した際ブレークし、所定アドレスに分岐するブレーク
    機能を備える中央処理装置と、キャッシュメモリと、中
    央処理装置が読出先アドレスを出力した際、その読出先
    アドレスに存在すべき命令列がキャッシュメモリ上に配
    置されているなら、キャッシュメモリ上の命令列を中央
    処理装置に読み出させて実行させるキャッシュコントロ
    ーラとを有するマイコンシステムにおけるメンテナンス
    方法であって、 ブレークアドレスと、パッチ処理ユーティリティとを含
    むバージョンアップデータを外部からRAMにダウンロ
    ードするダウンロードステップと、 ダウンロードされたバージョンアップデータに含まれて
    いるパッチ処理ユーティリティをRAM上の所定アドレ
    スに書き込む第1書込ステップと、 パッチ処理ユーティリティがRAM上の所定アドレスに
    書き込まれると、バージョンアップデータに含まれてい
    るブレークアドレスを先頭とした所定サイズの命令列を
    ROMから読み出して、キャッシュメモリに書き込む第
    2書込ステップと、 命令列が書き込まれたキャッシュメモリの内容を固定に
    設定する設定ステップと、 命令列がキャッシュメモリに書き込まれると、キャッシ
    ュメモリに書き込まれた状態の命令列に割込信号発生命
    令を書き込む第3書込ステップと、 を備えることを特徴とするメンテナンス方法。
  3. 【請求項3】 複数の命令からなる制御用プログラムが
    記録されたm個の記録領域のうち、n個(m>n)の記録領域
    と、RAMと、所定のブレークアドレスから所定の分岐
    先アドレスへと分岐する中央処理装置とを有するマイコ
    ンシステムにおけるメンテナンス方法であって、 複数のブレークアドレスと、個々のブレークアドレスに
    対応するパッチ処理ユーティリティと、パッチ処理ユー
    ティリティをジャンプ先に指定したジャンプ命令とを含
    むバージョンアップデータを外部からRAMにダウンロ
    ードするダウンロードステップと、 ダウンロードされたバージョンアップデータのうち、複
    数のブレークアドレスを中央処理装置に設定する設定ス
    テップと、 ダウンロードされたバージョンアップデータに含まれて
    いるジャンプ命令とパッチ処理ユーティリティとの複数
    の組みをRAM上の所定の分岐先アドレスに書き込む書
    込ステップと、 RAM上の分岐先アドレスに書き込まれたパッチ処理ユ
    ーティリティのうち、n個の記録領域以外の(m-n)個の記
    録領域に対応するものを検出する検出ステップと、 RAMに書き込まれたジャンプ命令のうち、検出された
    (m-n)個の記録領域からパッチ処理ユーティリティへと
    ジャンプするためのジャンプ命令を削除する削除ステッ
    プと、 を備えることを特徴とするメンテナンス方法。
  4. 【請求項4】 複数の命令からなる制御用プログラムが
    記録されたROMと、RAMとを備え、ブレークアドレ
    スと、パッチ処理ユーティリティとを含むバージョンア
    ップデータが外部からRAMにダウンロードされるマイ
    コンシステムにおける中央処理装置であって、 バージョンアップデータが外部からダウンロードされる
    と、それに含まれているブレークアドレスを保持するブ
    レークアドレスレジスタと、 パッチ処理ユーティリティがRAMに書き込まれると、
    ROM上の何れかのアドレスを読出先アドレスとして保
    持し、これをインクリメントするプログラムカウンタ
    と、 読出先アドレスがインクリメントされる度に、読出先ア
    ドレスから命令を読み出して実行する命令実行手段と、 読出先アドレスがインクリメントされる度に、プログラ
    ムカウンタにより保持されている読出先アドレスと、ブ
    レークアドレスレジスタにより保持されているブレーク
    アドレスとを比較する比較器と、 比較器による比較によりアドレス合致が判定されると、
    RAM上のパッチ処理ユーティリティが記録されている
    先頭アドレスをプログラムカウンタに設定することによ
    り、パッチ処理ユーティリティへと分岐する分岐手段と
    を備えることを特徴とする中央処理装置。
  5. 【請求項5】 複数の命令からなる制御用プログラムが
    記録されたROMと、RAMと、割込信号発生命令を解
    読した際、所定アドレスへとブレークするブレーク機能
    を備える中央処理装置とを有し、ブレークアドレスと、
    パッチ処理ユーティリティとを含むバージョンアップデ
    ータが外部からダウンロードされるマイコンシステムに
    おけるキャッシュシステムであって、 キャッシュメモリと、 ROM上のブレークアドレスから配置されている命令列
    をキャッシュメモリに書き込む第1書込手段と、 命令列が書き込まれたキャッシュメモリの内容を固定に
    設定する設定手段と、 キャッシュメモリに書き込まれた命令列の先頭に割込信
    号発生命令を書き込む第2書込手段と、 ダウンロードされたバージョンアップデータに含まれて
    いるパッチ処理ユーティリティをRAM上の所定アドレ
    スに書き込む第3書込手段と、 中央処理装置が読出先アドレスを出力した際、その読出
    先アドレスがブレークアドレスに合致するなら、キャッ
    シュメモリ上の命令列を中央処理装置に読み出させて実
    行させるキャッシュコントローラとを備えることを特徴
    とするキャッシュシステム。
  6. 【請求項6】 複数の命令からなる制御用プログラムが
    記録されたROMと、RAMとを備えるマイコンシステ
    ムの応用装置であって、 ブレークアドレスと、パッチ処理ユーティリティとを含
    むバージョンアップデータを外部からダウンロードする
    ダウンロード手段と、 バージョンアップデータが外部からダウンロードされる
    と、それに含まれているブレークアドレスを保持するブ
    レークアドレス保持手段と、 バージョンアップデータに含まれているパッチ処理ユー
    ティリティをRAMに書き込む書込手段と、 パッチ処理ユーティリティがRAM上に書き込まれる
    と、ROM上の何れかのアドレスを読出先アドレスとし
    て保持する読出先アドレス保持手段と、 読出先アドレス保持手段に保持されている読出先アドレ
    スを更新する第1更新手段と、 読出先アドレスが更新される度に、読出先アドレスから
    命令を読み出して実行する実行手段と、 読出先アドレスが更新される度に、読出先アドレスと、
    ブレークアドレスとが合致するかを判定する判定手段
    と、 合致すると、読出先アドレス保持手段に保持されている
    読出先アドレスをRAM上のパッチ処理ユーティリティ
    が記録されている先頭アドレスに更新する第2更新手段
    とを備えることを特徴とする応用装置。
  7. 【請求項7】 複数の命令からなる制御用プログラムが
    記録されたROMと、RAMとを備えるマイコンシステ
    ムの応用装置であって、 ブレークアドレスと、パッチ処理ユーティリティとを含
    むバージョンアップデータを外部からダウンロードする
    ダウンロード手段と、 ダウンロードされたバージョンアップデータに含まれて
    いるパッチ処理ユーティリティをRAMに書き込む書込
    手段と、 パッチ処理ユーティリティがRAM上に書き込まれる
    と、ROM上の何れかのアドレスを読出先アドレスとし
    て保持する読出先アドレス保持手段と、 キャッシュメモリと、 パッチ処理ユーティリティがRAM上に書き込まれる
    と、それに含まれているブレークアドレスを先頭とした
    所定サイズの命令列をROMから読み出し、キャッシュ
    メモリに書き込む第1書込手段と、 書込手段によりキャッシュメモリに命令列が書き込まれ
    ると、キャッシュメモリ上の命令列に割込信号発生命令
    を書き込む第2書込手段と、割込信号発生命令が書き込
    まれたキャッシュメモリの内容を固定に設定する設定手
    段と、 読出先アドレス保持手段に保持されている読出先アドレ
    スを更新する更新手段と、 読出先アドレスが更新される度に、ROM上の読出先ア
    ドレスから命令を読み出して実行する実行手段と、 更新手段により読出先アドレスが更新される度に、読出
    先アドレスと、ブレークアドレスとが合致するかを判定
    する判定手段と、 合致すると、当該読出先アドレスにおける命令をキャッ
    シュメモリから読み出させる切換手段とを備え、 実行手段は、 切換手段の切り換えによりキャッシュメモリから読み出
    された命令が割込信号発生命令であるかを解読するか検
    出部と、 割込信号発生命令であれば、読出先アドレス保持手段に
    保持されている読出先アドレスをRAM上のパッチ処理
    ユーティリティが記録されている先頭アドレスに更新す
    る更新部とを備えることを特徴とする応用装置。
  8. 【請求項8】 複数の命令からなる制御用プログラムが
    記録されたm個の記録領域のうち、n個(m>n)の記録領域
    を実装し、RAMを実装しているマイコンシステムの応
    用装置であって、 複数のブレークアドレスと、個々のブレークアドレスに
    対応するパッチ処理ユーティリティと、パッチ処理ユー
    ティリティをジャンプ先に指定したジャンプ命令とを含
    むバージョンアップデータを外部からダウンロードする
    ダウンロード手段と、 ダウンロードされたバージョンアップデータに含まれて
    いるジャンプ命令とパッチ処理ユーティリティとの複数
    の組みをRAMに書き込む書込手段と、 バージョンアップデータに含まれているパッチ処理ユー
    ティリティのうち、n個の記録領域以外の(m-n)個の記録
    領域に対応するものを検出する検出手段と、 RAMに書き込まれたジャンプ命令のうち、検出された
    (m-n)個の記録領域からパッチ処理ユーティリティへと
    ジャンプするためのジャンプ命令を削除する削除手段
    と、 ジャンプ命令が削除されると、n個の記録領域のうち、
    何れかのアドレスを読出先アドレスとして保持する読出
    先アドレス保持手段と、 読出先アドレス保持手段に保持されている読出先アドレ
    スを更新する第1更新手段と、 読出先アドレスが更新される度に、記録領域上の読出先
    アドレスから命令を読み出して実行する実行手段と、 読出先アドレスが更新される度に、読出先アドレスと、
    ブレークアドレスとが合致するかを判定する判定手段
    と、 合致すると、読出先アドレス保持手段に保持されている
    読出先アドレスをRAM上のジャンプ命令が記録されて
    いる先頭アドレスに更新する更新手段とを備えることを
    特徴とする応用装置。
  9. 【請求項9】 前記ダウンロード手段は、 通信インターフェィスと、 通信インターフェィスを介して制御用プログラムのバー
    ジョンアップの新旧をサーバに問い合わせることによ
    り、制御用プログラムのメンテナンスの要否を判定する
    判定部と、 メンテナンスの必要が有る場合、バージョンアップ情報
    を送信させる旨の送信要求をサーバに送信する送信部
    と、 通信インターフェィスを介してサーバから送信されてく
    るバージョンアップ情報を受信する受信部とを備え、 前記書込手段は、 ダウンロードされたバージョンアップデータに含まれて
    いるパッチ処理ユーティリティをRAMに書き込むこと
    を特徴とする請求項6〜8の何れかに記載の応用装置。
  10. 【請求項10】 前記ダウンロード手段は、 通信インターフェィスを介して受信部が受信したバージ
    ョンアップ情報が所定方式により圧縮されていれば、こ
    れを伸長する伸長部を備え、 書込手段は、 伸長されたバージョンアップデータに含まれているパッ
    チ処理ユーティリティをRAMに書き込むことを特徴と
    する請求項9記載の応用装置。
JP9190220A 1997-07-15 1997-07-15 プログラムがromに記録されているマイコンシステムにおけるメンテナンス方法、そのマイコンシステムに用いられる中央処理装置、キャッシュシステム、及びマイコンシステムの応用装置 Pending JPH1139153A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9190220A JPH1139153A (ja) 1997-07-15 1997-07-15 プログラムがromに記録されているマイコンシステムにおけるメンテナンス方法、そのマイコンシステムに用いられる中央処理装置、キャッシュシステム、及びマイコンシステムの応用装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9190220A JPH1139153A (ja) 1997-07-15 1997-07-15 プログラムがromに記録されているマイコンシステムにおけるメンテナンス方法、そのマイコンシステムに用いられる中央処理装置、キャッシュシステム、及びマイコンシステムの応用装置

Publications (1)

Publication Number Publication Date
JPH1139153A true JPH1139153A (ja) 1999-02-12

Family

ID=16254483

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9190220A Pending JPH1139153A (ja) 1997-07-15 1997-07-15 プログラムがromに記録されているマイコンシステムにおけるメンテナンス方法、そのマイコンシステムに用いられる中央処理装置、キャッシュシステム、及びマイコンシステムの応用装置

Country Status (1)

Country Link
JP (1) JPH1139153A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005100034A (ja) * 2003-09-24 2005-04-14 Matsushita Electric Ind Co Ltd 情報処理制御システム
JP2018028819A (ja) * 2016-08-18 2018-02-22 株式会社東芝 半導体集積回路
JP2021528780A (ja) * 2018-06-27 2021-10-21 マイクロソフト テクノロジー ライセンシング,エルエルシー 予約タグ・フィールド・ビットを使用するキャッシュ・ベースのブレークポイント・トレース/リプレイ(trace replay breakpoint)
WO2023020333A1 (zh) * 2021-08-20 2023-02-23 花瓣云科技有限公司 一种应用控制方法、系统及电子设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005100034A (ja) * 2003-09-24 2005-04-14 Matsushita Electric Ind Co Ltd 情報処理制御システム
JP2018028819A (ja) * 2016-08-18 2018-02-22 株式会社東芝 半導体集積回路
JP2021528780A (ja) * 2018-06-27 2021-10-21 マイクロソフト テクノロジー ライセンシング,エルエルシー 予約タグ・フィールド・ビットを使用するキャッシュ・ベースのブレークポイント・トレース/リプレイ(trace replay breakpoint)
WO2023020333A1 (zh) * 2021-08-20 2023-02-23 花瓣云科技有限公司 一种应用控制方法、系统及电子设备

Similar Documents

Publication Publication Date Title
US10642596B2 (en) Embedded device and program updating method
US6735642B2 (en) DMA doorbell
US6536038B1 (en) Dynamic update of non-upgradeable memory
US7912053B2 (en) Method and system for decreasing routing latency for switching platforms with variable configuration
KR100541781B1 (ko) 정보처리장치및방법
US6148441A (en) Method for reprogramming flash ROM in a personal computer implementing an EISA bus system
US7644406B2 (en) Update system capable of updating software across multiple FLASH chips
US5802549A (en) Method and apparatus for patching pages of ROM
US20030221092A1 (en) Method and system of switching between two or more images of firmware on a host device
JPH07117920B2 (ja) 電気的に消去可能なプログラマブル読み出し専用メモリーに常駐するファームウェアを更新する方法及び装置
JPH1115674A (ja) 異なるランタイム環境において実行するための実行可能プログラムにおいて機能的に類似したコードシーケンスを発生するコンパイラ
WO2011104825A1 (ja) 更新方法、更新装置、および更新プログラム
JPH1115673A (ja) 異なるランタイム環境において実行するための実行可能プログラムにおけるコードシーケンスを機能的に類似したコードシーケンスと条件付きで置き換えるローダ
US7984432B2 (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
JPH1139153A (ja) プログラムがromに記録されているマイコンシステムにおけるメンテナンス方法、そのマイコンシステムに用いられる中央処理装置、キャッシュシステム、及びマイコンシステムの応用装置
EP3584697B1 (en) Information processing device
KR100558394B1 (ko) 전자장치 및 그 프로그램 업데이트 방법
JPH09128267A (ja) データ処理装置およびデータ処理方法
KR100316584B1 (ko) 시스템에서 부팅 및 수행 프로그램을 공유하는 플래시메모리 및 그 메모리 갱신 방법
GB2292470A (en) Rom patching
JP2004078294A (ja) 信号処理装置
KR20020029921A (ko) 정적 기억 장치 내의 마이크로 명령어를 수정하는 방법 및장치
JP2005064709A (ja) 通信装置
KR100222620B1 (ko) 다중 프로그램의 다운로드 방법