JP2001256044A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JP2001256044A
JP2001256044A JP2000076331A JP2000076331A JP2001256044A JP 2001256044 A JP2001256044 A JP 2001256044A JP 2000076331 A JP2000076331 A JP 2000076331A JP 2000076331 A JP2000076331 A JP 2000076331A JP 2001256044 A JP2001256044 A JP 2001256044A
Authority
JP
Japan
Prior art keywords
program
bug
address
interrupt
data processing
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
JP2000076331A
Other languages
English (en)
Inventor
Akihiko Ko
明彦 黄
Tsutomu Sanpei
勉 三瓶
Nobuhisa Watanabe
信久 渡辺
Akihiro Kikuchi
章浩 菊地
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2000076331A priority Critical patent/JP2001256044A/ja
Priority to US09/802,857 priority patent/US20010052114A1/en
Publication of JP2001256044A publication Critical patent/JP2001256044A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/328Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]

Abstract

(57)【要約】 【課題】回路規模を増大させることなく、製造コストの
増加を抑制しながら、バグを含むプログラム部分に代え
てバグ修正後のプログラムを実行でき、組み込みプログ
ラムのバグを回避できるデータ処理装置を提供する。 【解決手段】 プログラムアドレスが予め設定されたバ
グアドレスと一致した場合、バグ修正回路100から出
力される割り込み要求信号に応じてCPU10が割り込
み処理を行い、バグ修正後のプログラムを実行する。割
り込み処理が終了したあと、バグが存在するプログラム
部分の次のメモリ番地からプログラムコードを読み込み
処理の続行することによって、ROM30に格納されて
いるプログラムのうち、バグの存在する部分が実行され
ることなく、代わりに割り込み処理ルーチンとしてRA
M5に格納されているバグ修正後のプログラムが実行さ
れるので、バグのあるプログラムが回避される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ処理装置、
例えば、少なくともCPU(中央処理装置)とCPUに
プログラムを供給するメモリを含み、製品化の後メモリ
に組み込まれているプログラムのバグを修正できるデー
タ処理装置に関するものである。
【0002】
【従来の技術】一般的なデータ処理装置、例えば、マイ
クロコンピュータ(Micro-Computer)は、演算、制御機
能を持つCPUとプログラムを格納するメモリなどが一
つの半導体チップ上に集積されている。データ処理を行
うとき、CPUは、プログラムカウンタによって指示さ
れたアドレスに応じて上記メモリから命令コードを順次
読み出して、命令コードによって指示された動作を行う
ので、プログラムによって予め設定さた手順で所定の演
算または処理を行うことができる。
【0003】CPUのプログラムを格納するメモリとし
て、通常、読み出し専用メモリ(ROM:Read Only Me
mory)が使われている。プログラムは、製造段階でRO
Mに書き込まれ、製造後にプログラムの書き換えはでき
ない。
【0004】ところが、プログラムは応用機器の開発と
同時に製作され、応用機器が未完成な状態でプログラム
が製作されるものが多い。また、応用機器が製品化のあ
と、仕様の変更などによって、それまでに製作され、す
でにマイクロコンピュータに組み込まれた制御プログラ
ムの一部分には応用機器との整合性が取れなくなること
もある。さらに、大規模なシステムでは、プログラムの
容量も膨大なものになり、製品化前のテストのみではす
べての不具合を発見することが困難であるため、製品化
の後にプログラムのバグ(誤り)が発見されることが多
い。
【0005】マイクロコンピュータを製品化した後にバ
グを発見した場合、プログラムを修正することができな
いため、すでに製造したマイクロコンピュータは使用で
きず、無駄になってしまい、損失を生じることがある。
また、バグを修正したプログラムを製作しても、新たに
マイクロコンピュータを発注して製造するために、コス
トと時間の両面に不利が生じることがある。
【0006】このような欠点を解消するために、マイク
ロコンピュータに予めバグを修正する機能を組み込むこ
とが提案されていた。即ち、従来のマイクロコンピュー
タにバグを発見した場合、バグが含まれるプログラムを
実行せずに、代わりにバグが修正されたプログラムを実
行することによって、製品化した後でもバグの修正を可
能にする。以下、このようなバグ修正機能を有するマイ
クロコンピュータの一例を示し、その構成及び動作を説
明する。
【0007】図6は、バグを修正可能なマイクロコンピ
ュータの一構成例を示すブロック図である。図示のよう
に、このマイクロコンピュータは、CPU10、バグ修
正回路20、ROM30、シリアルインターフェース
(SIO: Serial Input Output)40、ランダムアク
セスメモリ(RAM: Random Access Memory )50及
びバス(Bus)60によって構成されている。
【0008】CPU10は、ROM30から読み出され
たプログラムに従って、所定の演算処理または制御を行
う。バグ修正回路20は、図7に示すように、バグアド
レス設定レジスタ22、一致検出回路24、分岐命令発
生回路26及び選択回路28によって構成されている。
マイクロコンピュータが初期化のとき、SIO40を介
して外部メモリ70からプログラムのバグ部分の先頭ア
ドレス(以下、これをバグアドレスという)が読み出さ
れ、バグアドレス設定レジスタ22に設定される。プロ
グラムが実行されるとき、一致検出回路24によって、
バグアドレスとアドレスバスADRBUSから入力され
るプログラムアドレスとが比較され、比較結果に応じた
選択制御信号SC が発生され、選択回路28に出力され
る。
【0009】分岐命令発生回路26は、絶対分岐命令コ
ードを発生する。CPU10がこの絶対分岐命令を実行
することによって、プログラムカウンタのカウント値が
絶対分岐命令によって指示された分岐先アドレスに設定
され、次にこのアドレスに格納されたプログラムコード
が読み出され、CPU10によって実行される。選択回
路28は、分岐命令発生回路26によって発生された分
岐命令コードまたはROM30から読み出されたプログ
ラムコードの何れかを選択して、データバスDATBU
Sに出力する。一致検出回路24によって、プログラム
アドレスとバグアドレスが一致しないと判断された場
合、選択制御信号SC が論理“0”、例えば、ローレベ
ルに保持される。これに応じて、選択回路28はROM
30から読み出されたプログラムコードを選択して、デ
ータバスに出力する。一方、一致検出回路24によっ
て、プログラムアドレスとバグアドレスが一致したと判
断された場合、選択制御信号SC が論理“1”、例え
ば、ハイレベルに保持される。これに応じて、選択回路
28は分岐命令発生回路26によって発生された分岐命
令を選択して、データバスに出力する。
【0010】即ち、通常動作時に、CPU10はプログ
ラムアドレスに応じて、ROM30からプログラムコー
ドを読み出して、それに従って処理を行う。プログラム
アドレスが予め設定されたバグアドレスに達したとき、
バグ修正回路20によって分岐命令をCPU10に供給
することによって、バグプログラムが実行されず、分岐
命令で示したアドレスに格納されているバグ修正後のプ
ログラムが実行され、バグの回避を実現する。
【0011】ROM30には、CPU10のプログラム
及び処理用データなどが格納されている。なお、これら
のプログラム及びデータが予め製作され、製造時にRO
M30に組み込まれる。SIO40は、マイクロコンピ
ュータと外部に設けられている記憶手段、例えば、外部
メモリ70との間にデータの伝達を行うためのシリアル
通信手段である。マイクロコンピュータが初期化のと
き、SIO40を介して外部メモリ70から、バグを含
むプログラムの先頭アドレス、末尾アドレス及びバグを
含むプログラムを置き換える新しいプログラムを読み込
み、読み込まれたアドレス及びプログラムをそれぞれ所
定のメモリ、例えば、RAM50に格納する。RAM5
0は、マイクロコンピュータが初期化のとき、SIO4
0を介して外部メモリ70から読み込まれたアドレス及
びプログラムを格納する。
【0012】通常、図6に示すようにマイクロコンピュ
ータチップ以外に、プログラム及び処理用データを格納
するメモリ70が設けられている。メモリ70には、C
PU10の初期化プログラム、バグを修正した後のプロ
グラム、さらに、処理用データ、例えば、マイクロコン
ピュータを初期化するための初期化データ、及び特定の
データ処理を行うためのパラメータなどが格納されてい
る。
【0013】以下、図6に示すデータ処理装置の動作に
ついて説明する。初期化のとき、SIO40を介して外
部メモリ70から種々のデータが読み込まれる。例え
ば、ROM30に格納されているプログラムにバグが含
まれる部分の先頭アドレス(バグアドレス)、末尾アド
レス、さらにバグを修正した後のプログラムなどがそれ
ぞれ読み込まれる。バグアドレスがバグ修正回路20に
あるバグアドレス設定レジスタ22に書き込まれ、バグ
を修正した後のプログラムはRAM50の所定の領域に
書き込まれる。バグ修正回路20の分岐命令発生回路2
6は、RAM50にバグ修正後のプログラムが格納され
る領域の先頭に分岐する分岐命令コードを発生する。
【0014】初期化の後、CPU10は、プログラムカ
ウンタによって発生したプログラムアドレスに応じて、
ROM30からプログラムコードを順次読み出して実行
する。そして、バグ修正回路20において、プログラム
アドレスとバグアドレス設定レジスタ22に設定された
バグアドレスとが比較され、プログラムアドレスがバグ
アドレスに達するまでに、一致検出回路24から論理
“0”の選択制御信号SC が出力されるので、ROM3
0から読み出されたプログラムコードが選択回路28に
よって選択され、データバスに出力され、CPU10に
よって、データバスから入力されたプログラムコードが
読み込まれ、実行される。
【0015】プログラムアドレスがバグアドレス設定レ
ジスタ22に設定されたバグアドレスと一致したとき、
バグ修正回路20において一致検出回路24から出力さ
れる選択制御信号SC が論理“1”になる。これに応じ
て、選択回路28によって、分岐命令発生回路26によ
って発生された分岐命令及び分岐先のコードが選択さ
れ、データバスに出力される。CPU10によって、デ
ータバスから分岐命令及び分岐先のコードが入力され、
実行されるので、プログラムカウンタのカウント値が分
岐先のアドレス、例えば、RAM50にバグ修正後のプ
ログラムが格納されている領域の先頭アドレスに設定さ
れる。これに応じて、次の動作周期からRAM50に格
納されているバグ修正後のプログラムのコードが順次デ
ータバスに出力され、CPU10によって読み込まれ、
実行される。バグ修正後のプログラムの末尾に、ROM
30に格納されているバグが含まれるプログラム部分の
最後のアドレスの次のアドレスに分岐する絶対分岐命令
が書き込まれているので、CPU10がこの分岐命令を
実行することによって、プログラムカウンタのカウント
値がROM30のバグある部分の最後のアドレスの次の
アドレスに書き換えられ、次の動作周期からこのアドレ
スからプログラムコードが順次読み出され、CPU10
によって実行される。
【0016】上述した動作によって、ROM30に格納
されているプログラムのうち、バグがある部分が回避さ
れ、バグ修正後のプログラムが実行される。そして、バ
グ修正後のプログラムが実行されたあと、ROM30に
あるバグ部分の次のメモリアドレスに戻り、処理が続行
することができる。
【0017】
【発明が解決しようとする課題】ところで、上述した従
来のマイクロコンピュータにおいて、バグ修正回路に
は、バグアドレス設定レジスタ、一致検出回路のほか、
分岐命令発生回路及び選択回路がそれぞれ組み込まれて
いるので、回路構成が複雑になり、バグ修正回路を組み
込むことによって回路規模が増加する。特に、ROMに
格納されているプログラムに複数のバグが存在した場
合、それぞれのバグを回避するために、バグ設定レジス
タ、一致検出回路、分岐命令発生回路及び選択回路から
なる基本単位を複数組設ける必要があり、バグ修正回路
がさらに大規模なものになってしまうという不利益があ
る。
【0018】また、マイクロコンピュータにプログラム
を格納するメモリとして、ROMの代わりに電気的に書
き換え可能なフラッシュメモリを用いる方法も提案され
ているが、フラッシュメモリを用いたマイクロコンピュ
ータは一般的にチップ単価がROMを用いたものより高
くなり、さらにフラッシュメモリは製造時にプログラム
の組み込みができず、製品が完成したあとプログラムの
書き込み作業によってチップごとにプログラムが書き込
まれるので、製品化まで時間がかかり、コストの増加を
招き、量産化には不向きである。
【0019】本発明は、かかる事情に鑑みてなされたも
のであり、その目的は、回路規模を大幅に増大させるこ
となく、製造コストの増加を抑制しながら、バグを含む
プログラムを実行せず、代わりにバグ修正後のプログラ
ムを実行することによって組み込みプログラムのバグを
回避できるデータ処理装置を提供することにある。
【0020】
【課題を解決するための手段】上記目的を達成するた
め、本発明のデータ処理装置は、プログラムが格納され
いているメモリから読み出した命令コードに従って所定
のデータ処理を行うプログラム実行手段を含むデータ処
理装置であって、上記メモリに格納されているプログラ
ムにおいてバグが含まれる部分の先頭を示すバグアドレ
スを保持するアドレス保持手段と、データ処理を行うと
き、上記メモリからプログラムの読み出しを行うプログ
ラムアドレスと上記アドレス保持手段に保持されている
バグアドレスとを比較し、アドレスが一致した場合、一
致信号を出力する比較手段とを有し、上記プログラム実
行手段は、上記比較手段によって上記一致信号が出力さ
れたとき、現在実行している命令を中断し、予め設定さ
れたアドレステーブルによって指し示されたプログラム
アドレスから命令コードを読み出し、当該読み出した命
令コードに従って処理を行う。
【0021】また、本発明のデータ処理装置では、好適
には、上記比較手段は、上記プログラムアドレスと上記
アドレス保持手段に保持されているバグアドレスとが一
致したとき、上記一致信号として割り込み要求信号を出
力する割り込み要求手段を有する。
【0022】また、本発明では、好適には、初期処理に
よって、外部から入力されたバグ修正用プログラムを格
納する書き込み可能なメモリと、上記バグ修正用プログ
ラムが格納されているメモリ領域の先頭アドレスを格納
する割り込みベクトルと有する。
【0023】また、本発明では、好適には、上記プログ
ラム実行手段は、上記割り込み要求信号を受けたとき、
現在実行されている命令を中断し、上記割り込みベクト
ルによって指し示されたアドレスから上記バグ修正用プ
ログラムを読み込み、それに従って処理を行う割り込み
処理手段を有する。
【0024】また、本発明では、好適には、上記割り込
み処理手段は、上記バグ修正用プログラムの実行を終了
したとき、上記バグ修正用プログラムの最後に格納され
ているアドレスに従って、割り込み処理を終了した後中
断したプログラムへの戻りアドレスを設定する。
【0025】また、本発明のデータ処理装置は、プログ
ラムが格納されいているメモリから読み出した命令コー
ドに従って所定のデータ処理を行うプログラム実行手段
を含むデータ処理装置であって、上記メモリに格納され
ているプログラムにおいてバグが含まれる部分の先頭を
示すバグアドレスを保持するアドレス保持手段と、デー
タ処理を行うとき、上記メモリからプログラムの読み出
しを行うプログラムアドレスと上記アドレス保持手段に
保持されているバグアドレスとを比較し、アドレスが一
致した場合、一致信号を出力する比較手段とを有する基
本単位を上記プログラムに含まれているバグの数分設け
られ、上記プログラム実行手段は、上記複数の比較手段
のうち、何れかの比較手段から上記一致信号が出力され
たとき、現在実行している命令を中断し、予め設定され
たアドレステーブルによって指し示されたプログラムア
ドレスから命令コードを読み出し、当該読み出した命令
コードに従って処理を行う。
【0026】また、本発明では、好適には、上記比較手
段は、上記プログラムアドレスと上記アドレス保持手段
に保持されているバグアドレスとが一致したとき、上記
一致信号として割り込み要求信号を出力する割り込み要
求手段を有する。
【0027】また、本発明では、好適には、初期処理に
よって、外部から入力された複数のバグ修正用プログラ
ムを格納する書き込み可能なメモリと、上記バグ修正用
プログラムが格納されているメモリ領域の先頭アドレス
を格納する割り込みベクトルと有する。
【0028】また、本発明では、好適には、上記割り込
み処理手段は、割り込みが発生した回数を記録する割り
込み回数記録手段と、上記割り込み回数記録手段に記録
されている割り込み回数に応じて、上記メモリに格納さ
れている複数のバグ修正用プログラムのうち、所定のバ
グ修正用プログラムに分岐する分岐手段とを有する。
【0029】さらに、本発明では、上記バグ修正用プロ
グラムの最後に当該バグ修正用プログラムが終了したあ
と、元のプログラムに戻るときの戻り先のアドレスが格
納され、上記割り込み処理手段は、何れかのバグ修正用
プログラムの実行を終了したあと、当該バグ修正用プロ
グラムの最後に格納されている上記戻りアドレスに応じ
て、元のプログラムへ戻るときの戻りアドレスを設定す
る。
【0030】本発明によれば、データ処理装置に、バグ
アドレスを保持する保持手段、例えば、バグアドレス設
定レジスタ及びバグアドレスとプログラムアドレスとを
比較する比較手段が設けられ、プログラムにバグが発見
された場合、バグの部分の先頭アドレスがバグアドレス
保持手段に格納され、プログラムが実行されるとき、比
較手段によってプログラムアドレスと保持手段に保持さ
れているバグアドレスが比較される。比較の結果、プロ
グラムアドレスとバグアドレスが一致したとき一致信号
が発生され、これに応じてプログラム実行手段、例え
ば、CPUは現在実行されている命令を中断し、予め設
定されたアドレステーブルによって指し示されたプログ
ラムアドレスから、バグが修正されたあとのプログラム
を読み出して実行するので、バグのあるプログラムが回
避される。そして、バグが修正されたプログラムの最後
に、もとのプログラムへの戻り番地が設定されるので、
プログラム実行手段は、この戻り番地に分岐することに
よって、プログラムの中バグのある部分の次のプログラ
ムに従って処理を続行することができる。
【0031】
【発明の実施の形態】第1実施形態 図1は本発明に係るデータ処理装置の第1の実施形態を
示す回路図である。図示のように、本実施形態のデータ
処理装置は、CPU10、メモリ(ROM)30、シリ
アルインターフェース(SIO)40、メモリ(RA
M)50、バス(データバスとアドレスバスを含む)6
0及びバグ修正回路100によって構成されている。通
常、これらの部分回路及びバスが一つの半導体チップに
集積され、いわゆるワンチップマイクロコンピュータが
構成される。半導体チップの外に、外部メモリ70が設
けられている。
【0032】以下、それぞれの部分回路の構成について
説明する。CPU10は、図示しないプログラムカウン
タによって出力されるプログラムアドレスに応じて、R
OM30から読み出された命令コードを読み出し、それ
に応じた演算または他の処理を行う。さらに、CPU1
0は、外部から入力された割り込み信号SA に応じて、
所定の割り込み処理を行う割り込み処理機能を有する。
【0033】本発明では、CPU10の割り込み処理機
能を利用して、バグプログラムの処理を行う。なお、C
PU10の割り込み処理機能は、通常のプログラム実行
時に外部から入力される要求信号に応答して、即時に処
理を行う場合に利用される。通常CPU10が処理可能
な複数の割り込みがそれぞれ外部の割り込み要求に割り
当てられている。このため、通常の処理に利用されない
割り込み処理、例えば、マイクロコンピュータのテスト
用に設けられている中断割り込みを利用することで、通
常の割り込み処理に影響を与えることなく、バグ修正後
のプログラムを実行できる。
【0034】ROM30は、CPU10のプログラム及
び処理用データなどを記憶する。ROM30の記憶デー
タは、製造時にROM30に組み込まれ、その後読み出
しのみができ、書き換えはできない。
【0035】SIO40は、マイクロコンピュータと外
部に設けられている記憶手段、例えば、外部メモリ70
との間にデータ伝達を行うためのシリアル通信手段であ
る。通常、マイクロコンピュータが初期化のとき、SI
O40を介して外部メモリ70からROM30に格納さ
れているプログラムの中にバグを含むプログラムの先頭
アドレス、末尾アドレス及びバグが修正されたプログラ
ムを読み込み、読み込まれたアドレス及びプログラムを
それぞれ所定の部分、例えば、RAM50に格納する。
RAM50は、マイクロコンピュータが初期化のとき、
SIO40を介して外部メモリ70から読み込まれたア
ドレス及びバグを修正した後のプログラムを格納する。
【0036】バグ修正回路100は、予め設定されたバ
グアドレスとCPU10が実行されるプログラムアドレ
スとを比較し、当該比較結果に応じてCPU10に割り
込み要求信号SA を発生する。以下、図2を参照しつ
つ、バグ修正回路100の構成について詳細に説明す
る。
【0037】図示に示すように、バグ修正回路100
は、バグアドレス設定レジスタ110及び一致検出回路
120によって構成されている。初期化のとき、上述し
たように、外部メモリ70からSIO40を介してバグ
を含むプログラムの先頭アドレス(以下、これをバグア
ドレスと表記する)が読み込まれる。バグアドレスがデ
ータバスDATBUSに出力され、データバスを介して
バグアドレス設定レジスタ110に書き込まれる。CP
U10がプログラムを実行するとき、プログラムカウン
タのカウント値がプログラムアドレスとして、アドレス
バスADRBUSに出力される。一致検出回路120
は、アドレスバスから入力されるプログラムアドレスと
バグアドレス設定レジスタ110に設定されたバグアド
レスとを比較し、当該比較結果に応じて割り込み要求信
号SA を発生する。例えば、プログラムアドレスとバグ
アドレスが一致しないとき、割り込み要求信号SA がハ
イレベルに保持され、プログラムアドレスとバグアドレ
スが一致したとき、割り込み要求信号SA がローレベル
に保持される。
【0038】CPU10は、一致検出回路120から出
力される割り込み要求信号SA を受けて、割り込み処理
を行う。例えば、割り込み要求信号SA の立ち下がりエ
ッジにおいて、CPU10に割り込み要求が発生され、
CPU10は、現在実行中の命令コードの動作周期が終
了したとき割り込み処理を行う。即ち、一致検出回路1
20によって、プログラムアドレスと予め設定されてい
るバグアドレスとが一致したことが検出され、これに応
じて割り込み要求信号SA がローレベルに保持される。
CPU10は、割り込み信号SA の立ち下がりエッジに
おいて割り込みに応答して、現在実行されているプログ
ラムを中断し、割り込み処理を行う。
【0039】図3は、本実施形態のデータ処理装置にお
けるメモリの内容を示すメモリ配置図であり、図4は、
本実施形態のデータ処理装置の動作を示すフローチャー
トである。以下、図3及び図4を参照しながら、本実施
形態のデータ処理装置の動作について説明する。
【0040】データ処理装置が動作を開始したあと、ま
ず、ステップS1に示すように初期化処理が行われる。
このとき、データ処理装置はSIO40を介して、外部
メモリ70に格納されている初期化プログラム(イニシ
ャルプログラム)を読み出してRAM50の所定のメモ
リ領域に展開する。また、この初期化処理において、外
部メモリ70からROM30に格納されているプログラ
ムの中に、バグのあるプログラムの部分の先頭アドレ
ス、即ち、バグアドレスが読み出され、バグ修正回路1
00のバグアドレス設定レジスタ110に設定される。
【0041】初期化処理によって、例えば、RAM50
の所定のメモリ領域に、初期化データが格納される。図
3に示すように、例えば、RAM50の0000H番地
からリセットベクトル(RESET VECT)、割り
込みベクトル(INT VECT)及び中断処理ベクト
ル(ABORT VECT)がそれぞれ格納される。な
お、この中断処理ベクトルは、バグ修正回路100の一
致検出回路120からローレベルの割り込み要求信号S
A が出力されたとき、CPU10の分岐先を示すアドレ
スである。
【0042】初期化処理が行われたあと、ROM30に
格納されているプログラムが順次読み出され、実行され
る。例えば、図3に示すように、番地0100Hから以
降のプログラムはROM30に格納されているプログラ
ムである。このプログラムのなか、バグアドレスBAD
R0から末尾アドレスBADR1までのプログラムにバ
グが存在する場合、上述した初期化処理によって、バグ
アドレスとして、BADR0がバグ修正回路100のバ
グアドレス設定レジスタ110に書き込まれる。
【0043】アドレスバスに出力されたプログラムアド
レスが更新されるたびに、バグ修正回路100におい
て、プログラムアドレスとバグアドレスとの比較が行わ
れる(ステップS3)。プログラムアドレスとバグアド
レスが一致しない場合、割り込み要求信号SA がハイレ
ベルのままに保持され、CPU10は通常の処理を行
う。即ち、プログラムカウンタによって指し示したRO
M30のアドレスから次のプログラムコードを読み出
し、それに従って所定の処理を行う。
【0044】プログラムアドレスとバグアドレスが一致
した場合、即ち、図3に示すメモリ配置図において、プ
ログラムアドレスがバグが含まれるプログラム部分の先
頭のアドレスBADR0に達したとき、バグ修正回路1
00の一致検出回路120からローレベルの割り込み要
求信号SA が出力される(ステップS4)。これを受け
て、CPU10において割り込みが発生し、図3に示す
ように、中断ベクトル(ABORTVECT)に格納さ
れているベクトル(例えば、F000H)がプログラム
カウンタに設定される(ステップS5)。
【0045】そして、次の動作周期からCPU10は割
り込み処理ルーチンを実行する。図3の例では、割り込
み処理ルーチンは、中断ベクトルによって指し示したF
000H番地からのメモリ領域に格納されている。な
お、このメモリ領域は、RAM50にある領域であり、
ここに格納されているバグ修正後のプログラムは、上述
したように初期化処理のとき、SIO40を介して外部
メモリ70から読み込み、RAM50に格納されたもの
である。
【0046】割り込み処理において、CPU10は、ア
ドレスバスに出力されるプログラムアドレスによって示
したメモリ番地から順次命令コードを読み出して実行す
る。即ち、図3に示すように、RAM50においてメモ
リ番地F000Hからの領域に格納されているバグ修正
後のプログラムが順次実行される(ステップS6)。そ
して、このプログラムの最後に、割り込み終了後の戻り
番地を示す命令コード(例えば、図3の例では、“RE
T BADR+1”)が格納されている。この命令コー
ドを読み込んだCPU10は、割り込み処理を終了さ
せ、そして、プログラムカウンタに戻り番地である“B
ADR1+1”を設定する(ステップS7)。
【0047】図3に示すように、BADR1は、ROM
30に格納されているプログラムのうち、バグが存在す
るプログラム部分の最後のメモリ番地である。このた
め、CPU10に戻り番地として、“BADR1+1”
が設定されることによって、割り込み処理が終了したあ
と、CPU10は、バグが存在するプログラム部分の次
のプログラムコードを読み込み、実行を続行する。
【0048】上述したように、プログラムアドレスが予
め設定されたバグアドレスと一致した場合、CPU10
が割り込み処理を実行し、そして、割り込み処理が終了
したあと、バグが存在するプログラム部分の次のメモリ
番地からプログラムコードを読み込み処理の続行するこ
とによって、ROM30に格納されているプログラムの
うち、バグの存在する部分が実行されることなく、代わ
りに割り込み処理ルーチンとしてRAM5に格納されて
いるバグ修正後のプログラムが実行されるので、バグの
あるプログラムが回避される。
【0049】本実施形態において、マイクロコンピュー
タなどほとんどすべての処理装置に備え付けの割り込み
処理機能を利用して、プログラムのバグの部分を回避す
ることができる。通常、マイクロコンピュータは優先権
レベルの異なる複数の割り込みを処理でき、これらの割
り込み処理のうち適切なものを選択して利用することに
よって、通常の処理にほとんど影響を与えることなくバ
グのあるプログラム部分を回避可能である。例えば、種
々のマイクロコンピュータの中に、テスト時に現在実行
中のプログラムを一次中断させ、その後実行を再開させ
るために設けられている中断(ABORT)割り込み処
理機能を備えたものがある。このようなマイクロコンピ
ュータにおいて、テスト以外のとき、この中断処理機能
がほとんど使用されていないため、これを利用すること
によって、図3に示すように中断ベクトル(ABORT VEC
T)としてバグ修正後のプログラムの格納領域の先頭の
アドレスを格納することによって、プログラムの実行
中、プログラムアドレスがバグアドレスに達したとき、
中断割り込みが発生し、RAM50に格納されている割
り込み処理ルーチン、即ちバグ修正後のプログラムが実
行され、バグのあるプログラム部分が回避される。
【0050】このため、本実施形態のデータ処理装置に
おいて、バグ修正回路100の構成は従来に比べて簡略
化され、バグアドレスを格納するバグアドレス設定レジ
スタ110とアドレスを比較する一致検出回路120の
みによって構成できる。さらに、従来のバグ修正回路の
ように、プログラムアドレスが選択回路などを通すこと
なく、選択回路のゲート遅延によって生じた動作遅延を
回避できる。
【0051】さらに、本実施形態のデータ処理装置にお
いて、ROM30のプログラムに複数のバグがある場
合、バグ修正回路100において、修正するバグの数分
だけバグアドレス設定レジスタ110と一致検出回路1
20からなるユニットを設けることによって対処でき
る。次に、複数のバグを処理できる本発明のデータ処理
装置の第2の実施形態について説明する。
【0052】第2実施形態 図5は本発明に係るデータ処理装置の第2の実施形態を
示す回路図である。本発明の第2の実施形態のデータ処
理装置は、バグ修正回路を除けば、他の各部分は第1の
実施形態のデータ処理装置とほぼ同じである。このた
め、図5は本実施形態のデータ処理装置におけるバグ修
正回路100aの構成のみを示している。
【0053】ここで、例えば、ROM30のプログラム
の中に二つのバグが発見され、これらのバグに対してそ
れぞれバグ修正後のプログラムが製作され、初期化処理
によってRAM50にロードされる。
【0054】図5に示すように、バグ修正回路100a
は、バグアドレス設定レジスタ110−1,110−2
及び一致検出回路120−1,120−2によって構成
されている。初期化処理によって、バグアドレス設定レ
ジスタ110−1には、一つ目のバグアドレスBADR
0−1が格納され、バグアドレス設定レジスタ110−
2には、二つ目のバグアドレスBADR0−2が格納さ
れている。
【0055】一致検出回路120−1と120−2は、
それぞれ二つのバグアドレスとプログラムアドレスとを
比較し、アドレスが一致したとき、ローレベルの信号S
A1とSA2をそれぞれ出力する。CPU10の割り込み処
理に余裕がある場合、一致検出回路120−1と120
−2の出力信号SA1とSA2をそれぞれ異なる割り込み要
求信号としてCPU10に入力し、これに応じてCPU
10はそれぞれ異なる割り込み処理として受け付け、そ
れぞれのバグ修正後のプログラムを実行し、二つのバグ
を修正することが可能できる。しかし、一般的にCPU
10の処理可能な割り込みの数が制限されており、複数
のバグ処理を一つの割り込みに割り当てる必要がある。
この場合、図5に示すように、各一致検出回路120−
1と120−2の出力信号SA1とSA2がANDゲート1
30に入力され、ANDゲート130の出力信号SA
割り込み要求信号としてCPU10に入力される。
【0056】CPU10がプログラム実行するとき、プ
ログラムアドレスが何れかのバグアドレスと一致したと
き、一致検出回路120−1または120−2の出力信
号がローレベルとなり、ANDゲート130の出力信号
A がローレベルとなる。これに応じて、CPU10に
割り込み要求が発生され、CPU10は中断ベクトルに
よって指し示された割り込み処理ルーチンのプログラム
を実行する。
【0057】ここで、複数のバグ修正プログラムが順序
よく実行するために、割り込み処理ルーチンの先頭に、
それぞれのバグ修正プログラムに分岐する分岐処理プロ
グラムが設けられる。例えば、RAM50の所定のメモ
リ番地をカウンタレジスタとして指定し、初期化のとき
当該カウンタレジスタをクリアし(0に設定する)、割
り込みルーチンが実行されるたびに当該カウンタレジス
タの値に1を足す。CPU10はカウンタレジスタの値
に応じて、何回目の割り込み、即ち、何番目のバグを修
正するかを判断できるので、これに応じて正しいバグ修
正プログラムに分岐し、プログラムコードを読み出し所
定の処理を実行する。
【0058】以上説明した本発明の第2の実施形態によ
って、プログラムに複数のバグが発見された場合、バグ
の数に応じてバグ修正回路100aにバグアドレス設定
レジスタと一致検出回路からなるユニットを設けて、複
数の一致検出回路の出力信号に応じて、論理ゲートによ
って割り込み要求信号SA を発生し、CPU10に入力
する。CPU10は、割り込み要求を受けたとき、割り
込みベクトルによって指し示した割り込み処理ルーチン
からプログラムコードを読み出し実行する。割り込み処
理ルーチンの先頭に、割り込み処理の回数をカウントす
るカウンタレジスタの値に応じて、何番目のバグを修正
するかを判断でき、それに応じて複数のバグ修正後のプ
ログラムのうち、正しいものに分岐する。
【0059】本実施形態において、バグ修正回路110
aの基本単位であるバグアドレス設定レジスタと一致検
出回路のユニットが単純な構成を有するので、複数のバ
グを修正する場合、複数のユニットが設けられてもバグ
修正回路110aの構成が小規模に抑えられる。そし
て、複数のバグ修正処理は一つの割り込み処理ルーチン
に割り当てることができ、複数のバグ修正後のプログラ
ムへの分岐処理は、ソフトウェアによって実現できるの
で、ハードウェアの増加が必要最小限に抑えることが可
能であり、また、割り込み処理ルーチンは初期化のとき
外部メモリから、RAMにロードされるので、プログラ
ムの変更を容易に実現でき、複数のバグが発見された場
合、それぞれに対して柔軟に対処することができる。
【0060】本発明のデータ処理装置は、上述したよう
にプログラムに含まれるバグを修正することができる。
なお、本発明は、プログラムに含まれるバグの修正のみ
ならず、例えば、データ領域に含まれているバグを修正
することも可能である。この場合、バグが存在するデー
タ、即ち誤りのあるデータのアドレスがバグアドレス設
定レジスタに記憶され、CPUによってこの誤ったデー
タを読み出そうとするとき、一致検出回路に応じて割り
込みが発生し、CPUは割り込み処理ルーチンにおいて
正しいデータを取得することができる。
【0061】
【発明の効果】以上説明したように、本発明のデータ処
理装置によれば、製品化のあとにROMに組み込まれた
プログラムにバグが発見された場合、チップを作り直す
ことなく、バグの修正を行うことができる。データ処理
装置の初期化において、バグ修正後のプログラムをRA
Mにロードし、プログラム実行時にプログラムアドレス
とバグアドレスが一致したときに割り込みが発生され、
CPUの割り込み処理機能を用いて、バグ修正後のプロ
グラムを実行し、バグのあるプログラム部分を回避でき
るので、バグ修正回路のハードウェア構成を簡略化で
き、バグ修正機能の追加によるコスト増を最小限に抑制
可能である。さらに、複数のバグを修正する場合、RA
Mにロードされている複数のバグ修正後のプログラムへ
の分岐はソフトウェアによって実現でき、ハードウェア
の増加を必要最小限に抑えることができる利点がある。
【図面の簡単な説明】
【図1】本発明に係るデータ処理装置の第1の実施形態
を示すブロック図である。
【図2】本実施形態のバグ修正回路の構成を示すブロッ
ク図である。
【図3】本実施形態のデータ処理装置におけるメモリの
内容を示す図である。
【図4】本実施形態のデータ処理装置の動作を示すフロ
ーチャートである。
【図5】本発明に係るデータ処理装置の第2の実施形態
を示すブロック図であり、バグ修正回路の構成を示すブ
ロック図である。
【図6】従来のデータ処理装置の一例を示すブロック図
である。
【図7】従来のデータ処理装置のバグ修正回路の構成を
示すブロック図である。
【符号の説明】
10…CPU、 20…バグ修正回路、 22…バグアドレス設定レジスタ、 24…一致検出回路、 26…分岐命令発生回路、 28…選択回路、 30…ROM、 40…SIO、 50…RAM、 60…バス、 70…外部メモリ、 100…バグ修正回路、 110…バグアドレス設定レジスタ、 120…一致検出回路。
フロントページの続き (72)発明者 渡辺 信久 東京都品川区北品川6丁目7番35号 ソニ ー株式会社内 (72)発明者 菊地 章浩 東京都品川区北品川6丁目7番35号 ソニ ー株式会社内 Fターム(参考) 5B003 AC07 AD08 AE01 5B025 AD01 AD02 AD05 AD13 AE00 5B076 EB04 EB05

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】プログラムが格納されいているメモリから
    読み出した命令コードに従って所定のデータ処理を行う
    プログラム実行手段を含むデータ処理装置であって、 上記メモリに格納されているプログラムにおいてバグが
    含まれる部分の先頭を示すバグアドレスを保持するアド
    レス保持手段と、 データ処理を行うとき、上記メモリからプログラムの読
    み出しを行うプログラムアドレスと上記アドレス保持手
    段に保持されているバグアドレスとを比較し、アドレス
    が一致した場合、一致信号を出力する比較手段とを有
    し、 上記プログラム実行手段は、上記比較手段によって上記
    一致信号が出力されたとき、現在実行している命令を中
    断し、予め設定されたアドレステーブルによって指し示
    されたプログラムアドレスから命令コードを読み出し、
    当該読み出した命令コードに従って処理を行うデータ処
    理装置。
  2. 【請求項2】上記比較手段は、上記プログラムアドレス
    と上記アドレス保持手段に保持されているバグアドレス
    とが一致したとき、上記一致信号として割り込み要求信
    号を出力する割り込み要求手段を有する請求項1記載の
    データ処理装置。
  3. 【請求項3】初期処理によって、外部から入力されたバ
    グ修正用プログラムを格納する書き込み可能なメモリ
    と、 上記バグ修正用プログラムが格納されているメモリ領域
    の先頭アドレスを格納する割り込みベクトルと有する請
    求項2記載のデータ処理装置。
  4. 【請求項4】上記プログラム実行手段は、上記割り込み
    要求信号を受けたとき、現在実行されている命令を中断
    し、上記割り込みベクトルによって指し示されたアドレ
    スから上記バグ修正用プログラムを読み込み、それに従
    って処理を行う割り込み処理手段を有する請求項3記載
    のデータ処理装置。
  5. 【請求項5】上記割り込み処理手段は、上記バグ修正用
    プログラムの実行を終了したとき、上記バグ修正用プロ
    グラムの最後に格納されているアドレスに従って、割り
    込み処理を終了した後中断したプログラムへの戻りアド
    レスを設定する請求項4記載のデータ処理装置。
  6. 【請求項6】プログラムが格納されいているメモリから
    読み出した命令コードに従って所定のデータ処理を行う
    プログラム実行手段を含むデータ処理装置であって、 上記メモリに格納されているプログラムにおいてバグが
    含まれる部分の先頭を示すバグアドレスを保持するアド
    レス保持手段と、 データ処理を行うとき、上記メモリからプログラムの読
    み出しを行うプログラムアドレスと上記アドレス保持手
    段に保持されているバグアドレスとを比較し、アドレス
    が一致した場合、一致信号を出力する比較手段とを有す
    る基本単位を上記プログラムに含まれているバグの数分
    設けられ、 上記プログラム実行手段は、上記複数の比較手段のう
    ち、何れかの比較手段から上記一致信号が出力されたと
    き、現在実行している命令を中断し、予め設定されたア
    ドレステーブルによって指し示されたプログラムアドレ
    スから命令コードを読み出し、当該読み出した命令コー
    ドに従って処理を行うデータ処理装置。
  7. 【請求項7】上記比較手段は、上記プログラムアドレス
    と上記アドレス保持手段に保持されているバグアドレス
    とが一致したとき、上記一致信号として割り込み要求信
    号を出力する割り込み要求手段を有する請求項6記載の
    データ処理装置。
  8. 【請求項8】初期処理によって、外部から入力された複
    数のバグ修正用プログラムを格納する書き込み可能なメ
    モリと、 上記バグ修正用プログラムが格納されているメモリ領域
    の先頭アドレスを格納する割り込みベクトルと有する請
    求項7記載のデータ処理装置。
  9. 【請求項9】上記プログラム実行手段は、上記割り込み
    要求信号を受けたとき、現在実行されている命令を中断
    し、上記割り込みベクトルによって指し示されたアドレ
    スから上記バグ修正用プログラムを読み込み、それに従
    って処理を行う割り込み処理手段を有する請求項8記載
    のデータ処理装置。
  10. 【請求項10】上記割り込み処理手段は、割り込みが発
    生した回数を記録する割り込み回数記録手段と、 上記割り込み回数記録手段に記録されている割り込み回
    数に応じて、上記メモリに格納されている複数のバグ修
    正用プログラムのうち、所定のバグ修正用プログラムに
    分岐する分岐手段とを有する請求項9記載のデータ処理
    装置。
  11. 【請求項11】上記バグ修正用プログラムの最後に当該
    バグ修正用プログラムが終了したあと、元のプログラム
    に戻るときの戻り先のアドレスが格納され、上記割り込
    み処理手段は、何れかのバグ修正用プログラムの実行を
    終了したあと、当該バグ修正用プログラムの最後に格納
    されている上記戻りアドレスに応じて、元のプログラム
    へ戻るときの戻りアドレスを設定する請求項9記載のデ
    ータ処理装置。
  12. 【請求項12】上記割り込み回数記録手段は、上記バグ
    修正用プログラムを格納する書き込み可能なメモリのう
    ち所定の番地のメモリであり、当該メモリの内容は、上
    記割り込み処理手段によって書き換えられる請求項10
    記載のデータ処理装置。
JP2000076331A 2000-03-14 2000-03-14 データ処理装置 Pending JP2001256044A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000076331A JP2001256044A (ja) 2000-03-14 2000-03-14 データ処理装置
US09/802,857 US20010052114A1 (en) 2000-03-14 2001-03-12 Data processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000076331A JP2001256044A (ja) 2000-03-14 2000-03-14 データ処理装置

Publications (1)

Publication Number Publication Date
JP2001256044A true JP2001256044A (ja) 2001-09-21

Family

ID=18594091

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000076331A Pending JP2001256044A (ja) 2000-03-14 2000-03-14 データ処理装置

Country Status (2)

Country Link
US (1) US20010052114A1 (ja)
JP (1) JP2001256044A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004348677A (ja) * 2003-05-26 2004-12-09 Sony Corp プログラムおよび情報処理方法
JP2016507848A (ja) * 2013-02-22 2016-03-10 マーベル ワールド トレード リミテッド リードオンリメモリのブートコードパッチ

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030009305A1 (en) * 2001-06-12 2003-01-09 Eden John S. Flexible, extensible, and portable testing platform
KR100410557B1 (ko) * 2001-11-19 2003-12-18 주식회사 하이닉스반도체 프로그램 수정 가능한 마이크로컨트롤러 및 구동방법
US7243206B2 (en) * 2003-04-14 2007-07-10 Arm Limited Method and apparatus for using a RAM memory block to remap ROM access requests
CN100470656C (zh) * 2003-10-31 2009-03-18 宇田控股有限公司 摆动时钟信号的产生方法和产生装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4542453A (en) * 1982-02-19 1985-09-17 Texas Instruments Incorporated Program patching in microcomputer
JPH01232447A (ja) * 1988-03-11 1989-09-18 Mitsubishi Electric Corp シングル・チップ・マイクロコンピュータ
US5357627A (en) * 1989-03-28 1994-10-18 Olympus Optical Co., Ltd. Microcomputer having a program correction function
JP3230262B2 (ja) * 1992-01-24 2001-11-19 ソニー株式会社 電子装置及びその固定情報修正方法
JPH06318261A (ja) * 1992-09-18 1994-11-15 Sony Corp 電子装置
JP3563768B2 (ja) * 1994-05-31 2004-09-08 株式会社ルネサステクノロジ Romプログラム変更装置
JPH08166877A (ja) * 1994-12-13 1996-06-25 Olympus Optical Co Ltd 修正プログラムの実行可能なワンチップマイクロコンピュータ及びrom修正可能なマイクロコンピュータ
US5875342A (en) * 1997-06-03 1999-02-23 International Business Machines Corporation User programmable interrupt mask with timeout
US6412081B1 (en) * 1999-01-15 2002-06-25 Conexant Systems, Inc. System and method for providing a trap and patch function to low power, cost conscious, and space constrained applications
US6606677B1 (en) * 2000-03-07 2003-08-12 International Business Machines Corporation High speed interrupt controller

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004348677A (ja) * 2003-05-26 2004-12-09 Sony Corp プログラムおよび情報処理方法
JP2016507848A (ja) * 2013-02-22 2016-03-10 マーベル ワールド トレード リミテッド リードオンリメモリのブートコードパッチ
US9880856B2 (en) 2013-02-22 2018-01-30 Marvell World Trade Ltd. Patching boot code of read-only memory

Also Published As

Publication number Publication date
US20010052114A1 (en) 2001-12-13

Similar Documents

Publication Publication Date Title
US5594890A (en) Emulation system for emulating CPU core, CPU core with provision for emulation and ASIC having the CPU core
EP0464615A2 (en) Microcomputer equipped with DMA controller
JPH02267634A (ja) 割込み処理装置
JPH0430053B2 (ja)
US20100169546A1 (en) Flash memory access circuit
US5146581A (en) Subprogram executing data processing system having bank switching control storing in the same address area in each of memory banks
JP2001027953A (ja) 半導体記憶装置
US5600807A (en) Programmable controller capable of updating a user program during operation by switching between user program memories
JPS61182160A (ja) デ−タ処理装置
JP2001256044A (ja) データ処理装置
US10540222B2 (en) Data access device and access error notification method
US7237099B2 (en) Multiprocessor system having a plurality of control programs stored in a continuous range of addresses of a common memory and having identification registers each corresponding to a processor and containing data used in deriving a starting address of a CPU-linked interrupt handler program to be executed by the corresponding processor
JPH0821009B2 (ja) チャネル制御装置のイニシャライズ方法及びそのイニシャライズのためのシステム
JPH02123442A (ja) 高速化メモリ
US5557772A (en) Data processing apparatus including a register storing a parameter and a microinstruction execution arrangement including a correction arrangement for causing a first value of the parameter to be change to a second, correct value
JP7316613B2 (ja) 異常検出方法、異常検出プログラム、異常検出装置、書き換え方法、書き換えプログラム及び書き換え装置
JPH06324861A (ja) Cpu制御システム及び制御方法
JP3130798B2 (ja) バス転送装置
JPS59218569A (ja) マイクロ・コンピユ−タ
JP3139310B2 (ja) ディジタル信号処理装置
JP3171615B2 (ja) データ転送のリトライ制御方式
JP2876909B2 (ja) 割込みエミュレータ
JPH10312307A (ja) コンピュータシステムに適用するエミュレータ
JPH0555895B2 (ja)
JPH05120155A (ja) マイクロプログラム制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090910

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100119

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100413

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100607

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100629