JPH0895946A - マイクロコンピュータ - Google Patents
マイクロコンピュータInfo
- Publication number
- JPH0895946A JPH0895946A JP6252717A JP25271794A JPH0895946A JP H0895946 A JPH0895946 A JP H0895946A JP 6252717 A JP6252717 A JP 6252717A JP 25271794 A JP25271794 A JP 25271794A JP H0895946 A JPH0895946 A JP H0895946A
- Authority
- JP
- Japan
- Prior art keywords
- address
- program
- cpu
- instruction
- microcomputer
- 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
Links
- 238000003860 storage Methods 0.000 claims description 41
- 238000012937 correction Methods 0.000 claims description 14
- 239000004065 semiconductor Substances 0.000 claims description 9
- 239000000758 substrate Substances 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 3
- 101100328887 Caenorhabditis elegans col-34 gene Proteins 0.000 description 13
- 238000000034 method Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 239000013256 coordination polymer Substances 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 101100524639 Toxoplasma gondii ROM3 gene Proteins 0.000 description 1
- RRLHMJHRFMHVNM-BQVXCWBNSA-N [(2s,3r,6r)-6-[5-[5-hydroxy-3-(4-hydroxyphenyl)-4-oxochromen-7-yl]oxypentoxy]-2-methyl-3,6-dihydro-2h-pyran-3-yl] acetate Chemical compound C1=C[C@@H](OC(C)=O)[C@H](C)O[C@H]1OCCCCCOC1=CC(O)=C2C(=O)C(C=3C=CC(O)=CC=3)=COC2=C1 RRLHMJHRFMHVNM-BQVXCWBNSA-N 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Microcomputers (AREA)
- Stored Programmes (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【目的】命令キューを有するROM内蔵型マイクロコン
ピュータにおいて、内蔵ROM上のプログラムにバグが
存在する場合、修正プログラムを実行させ、正常動作さ
せるマイクロコンピュータの提供。 【構成】命令キュー、フェッチポインタ、内蔵ROMの
バグ部分のアドレスを格納するレジスタ、レジスタとフ
ェッチポインタの内容を比較する比較回路の出力結果に
よりメモリ上のプログラム又は特定の分岐命令を出力す
る選択回路を備え、フェッチポインタの内容がレジスタ
の内容と一致した時点で、選択回路から分岐命令を命令
キューへ転送し、CPUは該分岐命令の実行により修正
プログラムに移行し、バグ部分の実行が回避される。
ピュータにおいて、内蔵ROM上のプログラムにバグが
存在する場合、修正プログラムを実行させ、正常動作さ
せるマイクロコンピュータの提供。 【構成】命令キュー、フェッチポインタ、内蔵ROMの
バグ部分のアドレスを格納するレジスタ、レジスタとフ
ェッチポインタの内容を比較する比較回路の出力結果に
よりメモリ上のプログラム又は特定の分岐命令を出力す
る選択回路を備え、フェッチポインタの内容がレジスタ
の内容と一致した時点で、選択回路から分岐命令を命令
キューへ転送し、CPUは該分岐命令の実行により修正
プログラムに移行し、バグ部分の実行が回避される。
Description
【0001】
【産業上の利用分野】本発明は情報処理装置に関し、特
に単一半導体基板上に、演算および制御を行うCPU、
プログラムを格納するためのプログラムメモリ、前記C
PUに取り込むべき命令のプログラムメモリ上のアドレ
スを示すフェッチポインタ、外部からデータを取り込む
ためのインタフェース手段、前記CPUが次以降に実行
すべき命令を先取り(プリフェッチ)して格納しておく
命令キューを集積したマイクロコンピュータに関する。
に単一半導体基板上に、演算および制御を行うCPU、
プログラムを格納するためのプログラムメモリ、前記C
PUに取り込むべき命令のプログラムメモリ上のアドレ
スを示すフェッチポインタ、外部からデータを取り込む
ためのインタフェース手段、前記CPUが次以降に実行
すべき命令を先取り(プリフェッチ)して格納しておく
命令キューを集積したマイクロコンピュータに関する。
【0002】
【従来の技術】マイクロコンピュータは、演算および制
御を行うCPUと、メモリ、タイマーなどの周辺回路を
1チップ上に収めた集積回路であり、家電製品やOA機
器などあらゆる分野で利用されている。
御を行うCPUと、メモリ、タイマーなどの周辺回路を
1チップ上に収めた集積回路であり、家電製品やOA機
器などあらゆる分野で利用されている。
【0003】マイクロコンピュータを制御するためのプ
ログラムは、通常マスクROMと呼ばれる読み出し専用
の記憶回路に書き込まれている。マスクROMへのプロ
グラムの書き込みはマイクロコンピュータの製造工程で
行われており、製造後その内容を変更することはできな
い。
ログラムは、通常マスクROMと呼ばれる読み出し専用
の記憶回路に書き込まれている。マスクROMへのプロ
グラムの書き込みはマイクロコンピュータの製造工程で
行われており、製造後その内容を変更することはできな
い。
【0004】このため、ユーザーが製品を受け取った後
にプログラム中にバグが発見された場合、プログラムの
内容を書き換えることができないため、それらの製品は
すべて無駄となってしまい、再び発注、製造し直さなけ
ればならないことになる。一月当たり膨大な数量の製品
が製造される家電製品等にマイクロコンピュータが搭載
される場合、その損害は莫大なものとなる。
にプログラム中にバグが発見された場合、プログラムの
内容を書き換えることができないため、それらの製品は
すべて無駄となってしまい、再び発注、製造し直さなけ
ればならないことになる。一月当たり膨大な数量の製品
が製造される家電製品等にマイクロコンピュータが搭載
される場合、その損害は莫大なものとなる。
【0005】この膨大な損害を回避するために、本発明
と同一出願人により出願された特願平5−215616
号には、マイクロコンピュータ製造後に、プログラムの
バグが存在するアドレスの実行を回避して、修正後のプ
ログラムを実行できるマイクロコンピュータを提供する
ことを目的として、次のような方法が提案されている。
以下これを従来例として説明する。
と同一出願人により出願された特願平5−215616
号には、マイクロコンピュータ製造後に、プログラムの
バグが存在するアドレスの実行を回避して、修正後のプ
ログラムを実行できるマイクロコンピュータを提供する
ことを目的として、次のような方法が提案されている。
以下これを従来例として説明する。
【0006】図5に、前記特願平5−215616号に
提案されるマイクロコンピュータの概略構成をブロック
図にて示す。
提案されるマイクロコンピュータの概略構成をブロック
図にて示す。
【0007】図5を参照して、プログラムカウンタ23
は、CPU24が実行すべき命令が格納されているアド
レスを順次指し示すカウンタである。ROM3は、読み
出し専用のメモリで、ここにプログラムが書き込まれて
おり、アドレスバス2、データバス11と接続されてい
る。アドレスバス2にはアドレスデータが送出され、デ
ータバス11はデータの転送を行う。
は、CPU24が実行すべき命令が格納されているアド
レスを順次指し示すカウンタである。ROM3は、読み
出し専用のメモリで、ここにプログラムが書き込まれて
おり、アドレスバス2、データバス11と接続されてい
る。アドレスバス2にはアドレスデータが送出され、デ
ータバス11はデータの転送を行う。
【0008】RAM4は、読み書き可能なメモリで、ア
ドレスバス2、データバス11と接続されている。シリ
アルインタフェース10は、メモリ14とデータバス
2、アドレスバス11と接続されており、メモリ14か
らデータを取り込み、そのデータをデータバス11に送
出する。
ドレスバス2、データバス11と接続されている。シリ
アルインタフェース10は、メモリ14とデータバス
2、アドレスバス11と接続されており、メモリ14か
らデータを取り込み、そのデータをデータバス11に送
出する。
【0009】マイクロコンピュータ25の外部に配置さ
れたメモリ14には、プログラムのバグ部分の先頭アド
レスと修正プログラムが格納されている。
れたメモリ14には、プログラムのバグ部分の先頭アド
レスと修正プログラムが格納されている。
【0010】レジスタ6は、バグ部分の先頭アドレスデ
ータを格納しておくための記憶回路である。比較回路5
は、レジスタ6との内容プログラムカウンタ23の内容
とを比較し、これらが一致した場合にハイレベルとさ
れ、一致していない場合にはロウレベルとされる選択信
号12を出力する。
ータを格納しておくための記憶回路である。比較回路5
は、レジスタ6との内容プログラムカウンタ23の内容
とを比較し、これらが一致した場合にハイレベルとさ
れ、一致していない場合にはロウレベルとされる選択信
号12を出力する。
【0011】分岐命令出力回路9は、RAM4に格納さ
れる修正プログラムの先頭アドレスへの分岐命令を選択
回路8へ出力する。選択回路8は、選択信号12を受
け、選択信号12がハイレベルのときは分岐命令出力回
路からの分岐命令を、ロウレベルのときにはROM3又
はRAM4上のプログラムをCPU24へ出力する。C
PU24では入力された命令を解読・実行し、これによ
りプログラムが実行される。
れる修正プログラムの先頭アドレスへの分岐命令を選択
回路8へ出力する。選択回路8は、選択信号12を受
け、選択信号12がハイレベルのときは分岐命令出力回
路からの分岐命令を、ロウレベルのときにはROM3又
はRAM4上のプログラムをCPU24へ出力する。C
PU24では入力された命令を解読・実行し、これによ
りプログラムが実行される。
【0012】次に、図5を参照して、特願平5−215
616号に提案されるマイクロコンピュータの動作を説
明する。
616号に提案されるマイクロコンピュータの動作を説
明する。
【0013】まず、システム初期化時において、メモリ
14からシリアルインタフェース10を介して、バグ部
分の先頭アドレスデータがレジスタ6にセットされ、修
正プログラムがRAM4中にロードされる。
14からシリアルインタフェース10を介して、バグ部
分の先頭アドレスデータがレジスタ6にセットされ、修
正プログラムがRAM4中にロードされる。
【0014】ROM3上のプログラムがCPU24によ
り実行され、それとともにプログラムカウンタ23がカ
ウントアップされる。
り実行され、それとともにプログラムカウンタ23がカ
ウントアップされる。
【0015】そして、プログラムカウンタ23の内容が
レジスタ6にセットされているバグ部分の先頭アドレス
と一致すると、比較回路5からハイレベルの選択信号1
2が出力され、選択回路8は、ROM3又はRAM4上
のプログラムをCPU24への転送することをを中止し
て、分岐命令出力回路9からの分岐命令をCPU24に
転送する。
レジスタ6にセットされているバグ部分の先頭アドレス
と一致すると、比較回路5からハイレベルの選択信号1
2が出力され、選択回路8は、ROM3又はRAM4上
のプログラムをCPU24への転送することをを中止し
て、分岐命令出力回路9からの分岐命令をCPU24に
転送する。
【0016】CPU24は、分岐命令出力回路9からの
分岐命令を実行し、プログラムカウンタ23がRAM4
上の修正プログラムの先頭アドレスにセットされ、CP
U24は修正プログラムを実行することになる。
分岐命令を実行し、プログラムカウンタ23がRAM4
上の修正プログラムの先頭アドレスにセットされ、CP
U24は修正プログラムを実行することになる。
【0017】そして、修正プログラムの最後の部分に、
バグ部分後のアドレスへの分岐命令を挿入しておくこと
により、元のプログラムに戻ることができる。
バグ部分後のアドレスへの分岐命令を挿入しておくこと
により、元のプログラムに戻ることができる。
【0018】このような方法により、ROM3に格納さ
れたプログラムのバグ部分を回避し、RAM4上の修正
プログラムを実行させ、バグの修正を行うことができ
る。
れたプログラムのバグ部分を回避し、RAM4上の修正
プログラムを実行させ、バグの修正を行うことができ
る。
【0019】
【発明が解決しようとする課題】近年、マイクロコンピ
ュータの処理速度を向上させるためのさまざまな設計方
式が開発され利用されており、その一つに命令キューを
利用する方式がある。
ュータの処理速度を向上させるためのさまざまな設計方
式が開発され利用されており、その一つに命令キューを
利用する方式がある。
【0020】通常のマイクロコンピュータでは、CPU
の命令の取り込み、命令の解読、命令の実行という処理
が順次的に行われていた。このため、命令の取り込むた
めに要する時間が命令実行時間の中で比較的大きな比率
を占めていた。
の命令の取り込み、命令の解読、命令の実行という処理
が順次的に行われていた。このため、命令の取り込むた
めに要する時間が命令実行時間の中で比較的大きな比率
を占めていた。
【0021】そこで、CPU内において、命令取込み段
階と命令解読段階との間に複数の命令を格納可能な記憶
回路から成る命令キュー(「命令バッファ」、あるいは
「プリフェッチ・キュー」ともいう)を具備し、CPU
が一の命令を解読・実行している間にバスの空き時間等
を有効に利用して、次の命令を先取り(プリフェッチ)
して命令キューに格納しておくようにする。
階と命令解読段階との間に複数の命令を格納可能な記憶
回路から成る命令キュー(「命令バッファ」、あるいは
「プリフェッチ・キュー」ともいう)を具備し、CPU
が一の命令を解読・実行している間にバスの空き時間等
を有効に利用して、次の命令を先取り(プリフェッチ)
して命令キューに格納しておくようにする。
【0022】これにより、一の命令の実行が終わると直
ちにCPUは命令キューに格納されている次の命令を実
行することが可能とされ、命令をCPUに取り込むため
の時間を短縮することができる。すなわち、一の命令の
実行サイクルと他の命令の命令取り込みサイクルがオー
バラップしてパイプライン化される。
ちにCPUは命令キューに格納されている次の命令を実
行することが可能とされ、命令をCPUに取り込むため
の時間を短縮することができる。すなわち、一の命令の
実行サイクルと他の命令の命令取り込みサイクルがオー
バラップしてパイプライン化される。
【0023】従って、この命令キューの採用により、C
PUの命令実行速度が上がり、マイクロコンピュータの
処理速度は格段に向上している。
PUの命令実行速度が上がり、マイクロコンピュータの
処理速度は格段に向上している。
【0024】ところが、命令キューを有するマイクロコ
ンピュータにおいては、前記従来例を利用することはで
きないという問題がある。以下にその理由を詳説する。
ンピュータにおいては、前記従来例を利用することはで
きないという問題がある。以下にその理由を詳説する。
【0025】もし、従来例をそのまま利用しようとした
場合、プログラムカウンタがバグ部分の先頭アドレスに
到達した時点では、命令キュー内にはすでに先取り(プ
リフェッチ)されたいくつかの命令が取り込まれてお
り、その中にバグ部分も先取りされて当然含まれてしま
っていることになる。
場合、プログラムカウンタがバグ部分の先頭アドレスに
到達した時点では、命令キュー内にはすでに先取り(プ
リフェッチ)されたいくつかの命令が取り込まれてお
り、その中にバグ部分も先取りされて当然含まれてしま
っていることになる。
【0026】このため、バグ部分の命令後に分岐命令が
命令キュー内に取り込まれることになり、CPUはバグ
部分を実行してから、分岐命令を実行することになる。
従って、バグ部分の実行の回避はできない。
命令キュー内に取り込まれることになり、CPUはバグ
部分を実行してから、分岐命令を実行することになる。
従って、バグ部分の実行の回避はできない。
【0027】また、プログラムカウンタがバグ部分の先
頭アドレスに達したときに、命令キューからではなく、
分岐命令出力回路からの信号を直接CPUに入力すれ
ば、バグ部分の実行は確かに回避されるが、命令キュー
はCPUの処理速度を上げるためCPU内に具備された
ものであるため、この方法を実現するにはCPUの大幅
な改造が必要となる。
頭アドレスに達したときに、命令キューからではなく、
分岐命令出力回路からの信号を直接CPUに入力すれ
ば、バグ部分の実行は確かに回避されるが、命令キュー
はCPUの処理速度を上げるためCPU内に具備された
ものであるため、この方法を実現するにはCPUの大幅
な改造が必要となる。
【0028】マイクロコンピュータにおいて、CPUは
最も枢要な回路ユニットであり、基盤となる部分である
ため、回路的な欠陥があるならまだしも、これを改造す
ることは望ましくない。
最も枢要な回路ユニットであり、基盤となる部分である
ため、回路的な欠陥があるならまだしも、これを改造す
ることは望ましくない。
【0029】そのため、CPU自体を改造するのではな
く、周辺回路を追加又は変更することにより、マイクロ
コンピュータの機能追加を行うことが好ましい。
く、周辺回路を追加又は変更することにより、マイクロ
コンピュータの機能追加を行うことが好ましい。
【0030】本発明は、このような問題を鑑みてなされ
たものであり、本発明の目的は、命令の先取り(プリフ
ェッチ)を行うための命令キューを有するROM内蔵型
マイクロコンピュータにおいて、内蔵ROM上のプログ
ラムにバグが存在する場合に、バグ部分の実行を回避
し、それに代わるプログラムを実行させることにより、
正常に動作させることを可能とするマイクロコンピュー
タを提供することにある。
たものであり、本発明の目的は、命令の先取り(プリフ
ェッチ)を行うための命令キューを有するROM内蔵型
マイクロコンピュータにおいて、内蔵ROM上のプログ
ラムにバグが存在する場合に、バグ部分の実行を回避
し、それに代わるプログラムを実行させることにより、
正常に動作させることを可能とするマイクロコンピュー
タを提供することにある。
【0031】
【課題を解決するための手段】前記目的は、本発明によ
れば、プリフェッチされた命令を格納する命令キュー
と、プログラムを格納するROMと、を少なくとも含む
マイクロコンピュータにおいて、所定のアドレス情報を
記憶するレジスタと、所定の分岐命令を出力する分岐命
令出力部と、を備え、命令を先取りするために出力され
るプリフェッチアドレスと前記レジスタの内容とが一致
した際に、前記命令キューに前記分岐命令出力部から出
力される分岐命令を供給するように制御する、ことを特
徴とするマイクロコンピュータによって達成される。
れば、プリフェッチされた命令を格納する命令キュー
と、プログラムを格納するROMと、を少なくとも含む
マイクロコンピュータにおいて、所定のアドレス情報を
記憶するレジスタと、所定の分岐命令を出力する分岐命
令出力部と、を備え、命令を先取りするために出力され
るプリフェッチアドレスと前記レジスタの内容とが一致
した際に、前記命令キューに前記分岐命令出力部から出
力される分岐命令を供給するように制御する、ことを特
徴とするマイクロコンピュータによって達成される。
【0032】本発明においては、前記レジスタには外部
から値が設定されるように構成されたことを特徴とす
る。
から値が設定されるように構成されたことを特徴とす
る。
【0033】また、本発明においては、別の視点におい
て、前記分岐命令出力部が、分岐命令における分岐先ア
ドレスを記憶する分岐先アドレスレジスタを備え、前記
分岐先アドレスレジスタには外部から値が設定されるよ
うに構成されたことを特徴とすることを特徴とする。
て、前記分岐命令出力部が、分岐命令における分岐先ア
ドレスを記憶する分岐先アドレスレジスタを備え、前記
分岐先アドレスレジスタには外部から値が設定されるよ
うに構成されたことを特徴とすることを特徴とする。
【0034】そして、本発明は、好ましい態様として、
単一半導体基板上に、演算および制御を行うCPU、プ
ログラムを格納するためのプログラムメモリ、前記CP
Uに取り込むべき命令のプログラムメモリ上のアドレス
を示すフェッチポインタ、外部からデータを取り込むた
めのインタフェース手段、及び前記CPUが次以降に実
行すべき命令を格納しておく命令キュー、を集積したマ
イクロコンピュータにおいて、前記インタフェース手段
を介してマイクロコンピュータ外部から取り込んだ所定
のアドレス情報を記憶する記憶手段と、前記記憶手段に
記憶されたアドレス情報と前記フェッチポインタの内容
とを比較し、その比較結果に基づき選択信号を出力する
比較手段と、前記CPUの実行すべきプログラムのアド
レスを変更するための分岐命令を出力する分岐命令出力
手段と、前記選択信号が真のとき前記分岐命令を、偽の
とき前記プログラムメモリの内容を、前記命令キューに
出力する選択手段と、を備え、前記CPUが前記プログ
ラムメモリ上のプログラムを実行していく上で、前記イ
ンタフェース手段を介して取り込んだ前記記憶手段のア
ドレス情報と前記フェッチポインタの内容とが一致した
場合、前記CPUが前記分岐命令出力手段から出力され
た分岐命令を実行して、前記CPUが次に実行すべきア
ドレスの変更を行う、ように構成されたことを特徴とす
るマイクロコンピュータを提供する。
単一半導体基板上に、演算および制御を行うCPU、プ
ログラムを格納するためのプログラムメモリ、前記CP
Uに取り込むべき命令のプログラムメモリ上のアドレス
を示すフェッチポインタ、外部からデータを取り込むた
めのインタフェース手段、及び前記CPUが次以降に実
行すべき命令を格納しておく命令キュー、を集積したマ
イクロコンピュータにおいて、前記インタフェース手段
を介してマイクロコンピュータ外部から取り込んだ所定
のアドレス情報を記憶する記憶手段と、前記記憶手段に
記憶されたアドレス情報と前記フェッチポインタの内容
とを比較し、その比較結果に基づき選択信号を出力する
比較手段と、前記CPUの実行すべきプログラムのアド
レスを変更するための分岐命令を出力する分岐命令出力
手段と、前記選択信号が真のとき前記分岐命令を、偽の
とき前記プログラムメモリの内容を、前記命令キューに
出力する選択手段と、を備え、前記CPUが前記プログ
ラムメモリ上のプログラムを実行していく上で、前記イ
ンタフェース手段を介して取り込んだ前記記憶手段のア
ドレス情報と前記フェッチポインタの内容とが一致した
場合、前記CPUが前記分岐命令出力手段から出力され
た分岐命令を実行して、前記CPUが次に実行すべきア
ドレスの変更を行う、ように構成されたことを特徴とす
るマイクロコンピュータを提供する。
【0035】また、本発明は、別の好ましい態様とし
て、単一半導体基板上に、演算および制御を行うCP
U、プログラムを格納するためのプログラムメモリ、前
記CPUに取り込むべき命令のプログラムメモリ上のア
ドレスを示すフェッチポインタ、外部からデータを取り
込むためのインタフェース手段、前記CPUが次以降に
実行すべき命令を格納しておく命令キューを集積したマ
イクロコンピュータにおいて、前記インタフェース手段
を介してマイクロコンピュータ外部から取り込んだ複数
の所定のアドレス情報を記憶する複数の記憶手段と、前
記複数の記憶手段の内容と前記フェッチポインタの内容
とを比較し、その結果に基づき一又は複数の選択信号を
出力する、一又は複数の比較手段と、前記CPUの実行
すべきプログラムのアドレスを変更するための一又は複
数の分岐命令を出力する一又は複数の分岐命令出力手段
と、前記選択信号が全て偽のとき前記プログラムメモリ
の内容を前記命令キューに出力し、それ以外の時は前記
選択信号により選択された一の分岐命令出力手段からの
分岐命令を出力する選択手段と、を備え、前記CPUが
前記プログラムメモリ上のプログラムを実行していく上
で、前記インタフェース手段を介して取り込んだ前記複
数の記憶手段のいずれか一のアドレス情報と前記フェッ
チポインタの内容とが一致した場合、前記CPUが選択
された分岐命令出力手段からの前記分岐命令を実行し、
前記CPUが次に実行すべきアドレスの変更を行う、よ
うに構成されたことを特徴とするマイクロコンピュータ
を提供する。
て、単一半導体基板上に、演算および制御を行うCP
U、プログラムを格納するためのプログラムメモリ、前
記CPUに取り込むべき命令のプログラムメモリ上のア
ドレスを示すフェッチポインタ、外部からデータを取り
込むためのインタフェース手段、前記CPUが次以降に
実行すべき命令を格納しておく命令キューを集積したマ
イクロコンピュータにおいて、前記インタフェース手段
を介してマイクロコンピュータ外部から取り込んだ複数
の所定のアドレス情報を記憶する複数の記憶手段と、前
記複数の記憶手段の内容と前記フェッチポインタの内容
とを比較し、その結果に基づき一又は複数の選択信号を
出力する、一又は複数の比較手段と、前記CPUの実行
すべきプログラムのアドレスを変更するための一又は複
数の分岐命令を出力する一又は複数の分岐命令出力手段
と、前記選択信号が全て偽のとき前記プログラムメモリ
の内容を前記命令キューに出力し、それ以外の時は前記
選択信号により選択された一の分岐命令出力手段からの
分岐命令を出力する選択手段と、を備え、前記CPUが
前記プログラムメモリ上のプログラムを実行していく上
で、前記インタフェース手段を介して取り込んだ前記複
数の記憶手段のいずれか一のアドレス情報と前記フェッ
チポインタの内容とが一致した場合、前記CPUが選択
された分岐命令出力手段からの前記分岐命令を実行し、
前記CPUが次に実行すべきアドレスの変更を行う、よ
うに構成されたことを特徴とするマイクロコンピュータ
を提供する。
【0036】本発明は、別の視点において、好ましい態
様として、単一半導体基板上に、演算および制御を行う
CPU、プログラムを格納するためのプログラムメモ
リ、前記CPUに取り込むべき命令のプログラムメモリ
上のアドレスを示すフェッチポインタ、外部からデータ
を取り込むためのインタフェース手段、前記CPUが次
以降に実行すべき命令を格納しておく命令キューを集積
したマイクロコンピュータにおいて、前記インタフェー
ス手段を介してマイクロコンピュータ外部に配設された
記憶手段から取り込んだ修正アドレス情報と分岐先アド
レス情報とをそれぞれ記憶するための修正アドレス記憶
手段、及び分岐先アドレス記憶手段を備え、さらに、前
記修正アドレス記憶手段と前記フェッチポインタとの内
容を比較し、その比較結果に基づき選択信号を出力する
比較手段と、前記CPUの実行すべきプログラムのアド
レスを前記分岐先アドレス記憶手段の内容に変更するた
めの分岐命令を出力する分岐命令出力手段と、前記選択
信号が真のとき前記分岐命令を、偽のとき前記プログラ
ムメモリの内容を前記命令キューに出力する選択手段
と、を備え、前記CPUが前記プログラムメモリ上のプ
ログラムを実行していく上で、前記インタフェース手段
を介して取り込んだ前記修正アドレス記憶手段の修正ア
ドレス情報と前記フェッチポインタの内容とが一致した
場合、前記CPUが前記分岐先アドレス記憶手段中のア
ドレスへの分岐命令を実行し、前記CPUが次に実行す
べきアドレスの変更を行う、ように構成されたことを特
徴とするマイクロコンピュータを提供する。
様として、単一半導体基板上に、演算および制御を行う
CPU、プログラムを格納するためのプログラムメモ
リ、前記CPUに取り込むべき命令のプログラムメモリ
上のアドレスを示すフェッチポインタ、外部からデータ
を取り込むためのインタフェース手段、前記CPUが次
以降に実行すべき命令を格納しておく命令キューを集積
したマイクロコンピュータにおいて、前記インタフェー
ス手段を介してマイクロコンピュータ外部に配設された
記憶手段から取り込んだ修正アドレス情報と分岐先アド
レス情報とをそれぞれ記憶するための修正アドレス記憶
手段、及び分岐先アドレス記憶手段を備え、さらに、前
記修正アドレス記憶手段と前記フェッチポインタとの内
容を比較し、その比較結果に基づき選択信号を出力する
比較手段と、前記CPUの実行すべきプログラムのアド
レスを前記分岐先アドレス記憶手段の内容に変更するた
めの分岐命令を出力する分岐命令出力手段と、前記選択
信号が真のとき前記分岐命令を、偽のとき前記プログラ
ムメモリの内容を前記命令キューに出力する選択手段
と、を備え、前記CPUが前記プログラムメモリ上のプ
ログラムを実行していく上で、前記インタフェース手段
を介して取り込んだ前記修正アドレス記憶手段の修正ア
ドレス情報と前記フェッチポインタの内容とが一致した
場合、前記CPUが前記分岐先アドレス記憶手段中のア
ドレスへの分岐命令を実行し、前記CPUが次に実行す
べきアドレスの変更を行う、ように構成されたことを特
徴とするマイクロコンピュータを提供する。
【0037】さらに、本発明は、別の好ましい態様とし
て、単一半導体基板上に、演算および制御を行うCP
U、プログラムを格納するためのプログラムメモリ、前
記CPUに取り込むべき命令のプログラムメモリ上のア
ドレスを示すフェッチポインタ、外部からデータを取り
込むためのインタフェース手段、前記CPUが次以降に
実行すべき命令を格納しておく命令キューを集積したマ
イクロコンピュータにおいて、前記インタフェース手段
を介しマイクロコンピュータ外部の記憶手段から取り込
んだ複数の修正アドレス情報と複数の分岐先アドレス情
報とをそれぞれ記憶するための複数の修正アドレス記憶
手段及び複数の修正アドレス記憶手段を備え、さらに、
前記複数の修正アドレス記憶手段とフェッチポインタの
内容を比較し、その結果に基づき一又は複数の選択信号
を出力する一又は複数の比較手段と、前記CPUの実行
すべきプログラムのアドレスを前記分岐先アドレス記憶
手段の内容に変更するための分岐命令を出力する一又は
複数の分岐命令出力手段と、前記複数の選択信号が全て
偽のとき前記プログラムメモリの内容を、それ以外の時
は前記選択信号にて選択された分岐命令出力手段からの
分岐命令を前記命令キューに出力する選択手段と、を備
え、前記CPUが前記プログラムメモリ上のプログラム
を実行していく上で、前記インタフェース手段を介し取
り込んだ前記複数の修正アドレス記憶手段のいずれか一
の修正アドレス情報と前記フェッチポインタの内容とが
一致した場合、前記CPUが前記複数の分岐先アドレス
記憶手段のうち選択された分岐先アドレス記憶手段のア
ドレスへの分岐命令を実行し、前記CPUが次に実行す
べきアドレスの変更を行う、ことを特徴とするマイクロ
コンピュータマイクロコンピュータを提供する。
て、単一半導体基板上に、演算および制御を行うCP
U、プログラムを格納するためのプログラムメモリ、前
記CPUに取り込むべき命令のプログラムメモリ上のア
ドレスを示すフェッチポインタ、外部からデータを取り
込むためのインタフェース手段、前記CPUが次以降に
実行すべき命令を格納しておく命令キューを集積したマ
イクロコンピュータにおいて、前記インタフェース手段
を介しマイクロコンピュータ外部の記憶手段から取り込
んだ複数の修正アドレス情報と複数の分岐先アドレス情
報とをそれぞれ記憶するための複数の修正アドレス記憶
手段及び複数の修正アドレス記憶手段を備え、さらに、
前記複数の修正アドレス記憶手段とフェッチポインタの
内容を比較し、その結果に基づき一又は複数の選択信号
を出力する一又は複数の比較手段と、前記CPUの実行
すべきプログラムのアドレスを前記分岐先アドレス記憶
手段の内容に変更するための分岐命令を出力する一又は
複数の分岐命令出力手段と、前記複数の選択信号が全て
偽のとき前記プログラムメモリの内容を、それ以外の時
は前記選択信号にて選択された分岐命令出力手段からの
分岐命令を前記命令キューに出力する選択手段と、を備
え、前記CPUが前記プログラムメモリ上のプログラム
を実行していく上で、前記インタフェース手段を介し取
り込んだ前記複数の修正アドレス記憶手段のいずれか一
の修正アドレス情報と前記フェッチポインタの内容とが
一致した場合、前記CPUが前記複数の分岐先アドレス
記憶手段のうち選択された分岐先アドレス記憶手段のア
ドレスへの分岐命令を実行し、前記CPUが次に実行す
べきアドレスの変更を行う、ことを特徴とするマイクロ
コンピュータマイクロコンピュータを提供する。
【0038】
【作用】本発明によれば、外部からレジスタにバグ部分
のアドレス情報を与え、プログラムを実行していく過程
でフェッチポインタの内容がレジスタの内容と一致した
時点で、選択回路から予め定められた所定の分岐命令を
命令キューへ転送し、CPUが該分岐命令を実行するこ
とにより、バグ部分の実行を回避し、別のアドレスに予
め格納されている修正プログラムが実行され、バグ部分
の実行が回避される。
のアドレス情報を与え、プログラムを実行していく過程
でフェッチポインタの内容がレジスタの内容と一致した
時点で、選択回路から予め定められた所定の分岐命令を
命令キューへ転送し、CPUが該分岐命令を実行するこ
とにより、バグ部分の実行を回避し、別のアドレスに予
め格納されている修正プログラムが実行され、バグ部分
の実行が回避される。
【0039】本発明は別の視点において、外部からその
値が任意に設定可能な分岐先アドレスを備え、外部RO
Mから修正プログラムをマイクロコンピュータ内に取り
込まなくて済むため、プログラムのイニシャライズルー
チンはバグ先頭アドレスと、分岐先アドレスを各レジス
タに設定するだけでよく、プログラムが簡単化しサイズ
が縮減されると共に、フェッチポインタがバグ部分に達
した際の分岐先アドレスを自由に設定できるため、プロ
グラムや修正プログラムのメモリ上の位置やサイズにつ
いての制約を大幅に緩和し、設計自由度を増大させてい
る。
値が任意に設定可能な分岐先アドレスを備え、外部RO
Mから修正プログラムをマイクロコンピュータ内に取り
込まなくて済むため、プログラムのイニシャライズルー
チンはバグ先頭アドレスと、分岐先アドレスを各レジス
タに設定するだけでよく、プログラムが簡単化しサイズ
が縮減されると共に、フェッチポインタがバグ部分に達
した際の分岐先アドレスを自由に設定できるため、プロ
グラムや修正プログラムのメモリ上の位置やサイズにつ
いての制約を大幅に緩和し、設計自由度を増大させてい
る。
【0040】さらに、本発明においては、マイクロコン
ピュータ内にレジスタと分岐命令発生回路を好ましくは
複数具備することにより、複数のバグに対応して、それ
ぞれ異なる修正を行うことができるようになる。
ピュータ内にレジスタと分岐命令発生回路を好ましくは
複数具備することにより、複数のバグに対応して、それ
ぞれ異なる修正を行うことができるようになる。
【0041】
【実施例】図面を参照して、本発明の実施例を以下に説
明する。
明する。
【0042】
【実施例1】図1は、本発明の第1の実施例の構成を示
すブロック図である。
すブロック図である。
【0043】図1を参照して、フェッチポインタ1は、
ROM3又はRAM4から命令キュー15に取り込むべ
きプログラムのアドレスを示す16ビットのカウンタで
ある。アドレスバス2はアドレスデータを、データバス
11はデータを転送するための16ビットのバスであ
る。
ROM3又はRAM4から命令キュー15に取り込むべ
きプログラムのアドレスを示す16ビットのカウンタで
ある。アドレスバス2はアドレスデータを、データバス
11はデータを転送するための16ビットのバスであ
る。
【0044】ROM3は、読み出し専用のメモリで、ア
ドレス0000H〜EFFFH(Hは16進数を表す)
のメモリ空間に対応し、ここにプログラムが格納され
る。RAM3は、読み書き可能なメモリで、アドレスF
000H〜EFFFHのメモリ空間に対応する。
ドレス0000H〜EFFFH(Hは16進数を表す)
のメモリ空間に対応し、ここにプログラムが格納され
る。RAM3は、読み書き可能なメモリで、アドレスF
000H〜EFFFHのメモリ空間に対応する。
【0045】外部に配置されたメモリ14には、バグ部
分の先頭アドレスと修正プログラムが格納されている。
分の先頭アドレスと修正プログラムが格納されている。
【0046】シリアルインタフェース10は、メモリ1
4内のバグ部分の先頭アドレスと修正プログラムをマイ
クロコンピュータ13内に取り込む。
4内のバグ部分の先頭アドレスと修正プログラムをマイ
クロコンピュータ13内に取り込む。
【0047】レジスタ6は、シリアルインタフェース1
0とデータバス11を介して取り込んだバグ部分の先頭
アドレスを格納記憶する。
0とデータバス11を介して取り込んだバグ部分の先頭
アドレスを格納記憶する。
【0048】比較回路5は、レジスタ6の内容と、アド
レスバス2を介して入力されたフェッチポインタ1の内
容と、を比較し、これらが互いに一致した場合にはハイ
レベルとされ、一致しなかった場合にはロウレベルとさ
れる選択信号12を出力する。
レスバス2を介して入力されたフェッチポインタ1の内
容と、を比較し、これらが互いに一致した場合にはハイ
レベルとされ、一致しなかった場合にはロウレベルとさ
れる選択信号12を出力する。
【0049】分岐命令出力回路9は、RAM4上のアド
レスF000Hへの分岐命令を出力する。
レスF000Hへの分岐命令を出力する。
【0050】選択回路8は、比較回路5からの選択信号
12がハイレベル(=アクティブ)のときに分岐命令出
力回路9からの分岐命令を命令キュー15に出力し、選
択信号12がロウレベル(=インアクティブ)のときに
はROM3又はRAM4上のプログラムを命令キュー1
5に出力する。
12がハイレベル(=アクティブ)のときに分岐命令出
力回路9からの分岐命令を命令キュー15に出力し、選
択信号12がロウレベル(=インアクティブ)のときに
はROM3又はRAM4上のプログラムを命令キュー1
5に出力する。
【0051】命令キュー15は、CPU7が命令を実行
している間に先読み(プリフェッチ)された命令が格納
される5バイトのバッファである。
している間に先読み(プリフェッチ)された命令が格納
される5バイトのバッファである。
【0052】CPU7は、命令キュー15から命令を取
り出し命令デコーダ部(不図示)にて命令を解読し、実
行ユニット(不図示)にて解読された命令を実行する。
り出し命令デコーダ部(不図示)にて命令を解読し、実
行ユニット(不図示)にて解読された命令を実行する。
【0053】次に、本実施例において、ROM3上のプ
ログラム中にバグが存在する場合に、これを回避する動
作原理を説明する。
ログラム中にバグが存在する場合に、これを回避する動
作原理を説明する。
【0054】ここで、図2のメモリマップに示すよう
に、プログラムはROM3上のアドレス1000H〜7
FFFHに存在し、そのうちアドレス4000H〜40
0FHにバグが存在するものと仮定する。
に、プログラムはROM3上のアドレス1000H〜7
FFFHに存在し、そのうちアドレス4000H〜40
0FHにバグが存在するものと仮定する。
【0055】また、図2を参照して、プログラム開始ア
ドレス設定のためのベクター・テーブル0000Hに
は、プログラム開始アドレス1000Hがセットされて
おり、これにより、マイクロコンピュータ13のリセッ
ト解除後、アドレス1000Hがフェッチポインタ1に
セットされ、アドレス1000Hからプログラムの実行
が開始される。
ドレス設定のためのベクター・テーブル0000Hに
は、プログラム開始アドレス1000Hがセットされて
おり、これにより、マイクロコンピュータ13のリセッ
ト解除後、アドレス1000Hがフェッチポインタ1に
セットされ、アドレス1000Hからプログラムの実行
が開始される。
【0056】予め、バグの存在を想定して、プログラム
のイニシャライズ部分には、シリアルインタフェース1
0を介して、メモリ14からバグ部分の先頭アドレスと
修正プログラムをマイクロコンピュータ13内に取り込
むためのルーチンを挿入しておく。
のイニシャライズ部分には、シリアルインタフェース1
0を介して、メモリ14からバグ部分の先頭アドレスと
修正プログラムをマイクロコンピュータ13内に取り込
むためのルーチンを挿入しておく。
【0057】このイニシャライズ部分の実行により、バ
グ部分の先頭アドレス4000Hと修正プログラムがメ
モリ14からマイクロコンピュータ13内に取り込ま
れ、マイクロコンピュータ13内に取り込まれたバグ部
分の先頭アドレスはレジスタ6にセットされ、また修正
プログラムはRAM4のアドレスF000H以降に格納
される。
グ部分の先頭アドレス4000Hと修正プログラムがメ
モリ14からマイクロコンピュータ13内に取り込ま
れ、マイクロコンピュータ13内に取り込まれたバグ部
分の先頭アドレスはレジスタ6にセットされ、また修正
プログラムはRAM4のアドレスF000H以降に格納
される。
【0058】この後、フェッチポインタ1がバグ部分の
先頭アドレスに達するまで、CPU7はROM3上のプ
ログラムを実行し続ける。
先頭アドレスに達するまで、CPU7はROM3上のプ
ログラムを実行し続ける。
【0059】そして、フェッチポインタ1がバグ部分の
先頭アドレスに達すると、すなわちフェッチポインタ1
とレジスタ6の内容とが互いに一致すると、比較回路5
はハイレベルの選択信号12を出力し、選択回路8は選
択信号12を受けてROM3上のプログラムから分岐命
令出力回路9の出力に切り換えて、分岐命令を命令キュ
ー15へ出力する。
先頭アドレスに達すると、すなわちフェッチポインタ1
とレジスタ6の内容とが互いに一致すると、比較回路5
はハイレベルの選択信号12を出力し、選択回路8は選
択信号12を受けてROM3上のプログラムから分岐命
令出力回路9の出力に切り換えて、分岐命令を命令キュ
ー15へ出力する。
【0060】ここで分岐命令出力回路9は、アドレスF
000Hへの分岐命令「BR !F000H」を出力す
るため、CPU7は、命令キュー15からの分岐命令を
受け取り実行する。
000Hへの分岐命令「BR !F000H」を出力す
るため、CPU7は、命令キュー15からの分岐命令を
受け取り実行する。
【0061】一般に、分岐命令の実行により命令キュー
の内容はクリアされるよう構成され手折り、分岐命令に
より命令キュー15の内容はクリアされる。また、フェ
ッチポインタ1はF000Hにセットされ、図2に示す
ように、RAM4上の修正プログラムがCPU7により
実行されることになる。
の内容はクリアされるよう構成され手折り、分岐命令に
より命令キュー15の内容はクリアされる。また、フェ
ッチポインタ1はF000Hにセットされ、図2に示す
ように、RAM4上の修正プログラムがCPU7により
実行されることになる。
【0062】修正プログラムの最後の部分に、アドレス
4010Hへの分岐命令「BR !4010H」を入れ
ておくことにより、修正プログラム実行後、元のROM
3上のプログラムに戻り、本来のプログラムが実行され
るようになる。
4010Hへの分岐命令「BR !4010H」を入れ
ておくことにより、修正プログラム実行後、元のROM
3上のプログラムに戻り、本来のプログラムが実行され
るようになる。
【0063】以上のような手順により、ROM3上のプ
ログラムのアドレス4000H〜400FHのバグ部分
を実行せずに、RAM4上のアドレスF000H〜F0
1FHの修正プログラムを実行し、その後再びROM3
上のプログラムを実行させることができる。
ログラムのアドレス4000H〜400FHのバグ部分
を実行せずに、RAM4上のアドレスF000H〜F0
1FHの修正プログラムを実行し、その後再びROM3
上のプログラムを実行させることができる。
【0064】本実施例によれば、マイクロコンピュータ
のROM3上のプログラムにバグが発生しても、バグの
修正が可能とされるため、それらのマイクロコンピュー
タを廃棄せずに有効に利用することを可能とし、損失を
回避するものである。
のROM3上のプログラムにバグが発生しても、バグの
修正が可能とされるため、それらのマイクロコンピュー
タを廃棄せずに有効に利用することを可能とし、損失を
回避するものである。
【0065】そして、本実施例においては、修正プログ
ラムのプログラムサイズは固定されていないため、単に
バグの修正に対処するためだけでなく、新たなプログラ
ムの追加等に利用することができる。
ラムのプログラムサイズは固定されていないため、単に
バグの修正に対処するためだけでなく、新たなプログラ
ムの追加等に利用することができる。
【0066】
【実施例2】次に本発明の第2の実施例を説明する。図
3は本発明の第2の実施例の構成を示すブロック図であ
る。図3において、図1と同一の機能を有する要素には
同一の参照番号が附されている。
3は本発明の第2の実施例の構成を示すブロック図であ
る。図3において、図1と同一の機能を有する要素には
同一の参照番号が附されている。
【0067】本実施例は、外部メモリ領域をもつマイク
ロコンピュータに本発明を適用したものである。すなわ
ち、本実施例に係るマイクロコンピュータはポートを通
じて外部のメモリとのアクセスが可能とされ、また、分
岐命令の分岐先を全てのメモリ空間へ設定することが可
能とされる構成となっている。
ロコンピュータに本発明を適用したものである。すなわ
ち、本実施例に係るマイクロコンピュータはポートを通
じて外部のメモリとのアクセスが可能とされ、また、分
岐命令の分岐先を全てのメモリ空間へ設定することが可
能とされる構成となっている。
【0068】以下では、本実施例と前記第1の実施例と
の相違点のみを説明する。図3を参照して、外部ROM
21は、専用の装置を使うことによりユーザーが書き込
み可能なメモリであり、外部バス20を通じてポート1
9と接続されている。外部ROM21のメモリ空間は、
アドレス8000H〜FFFFH(図4参照)とされ
る。
の相違点のみを説明する。図3を参照して、外部ROM
21は、専用の装置を使うことによりユーザーが書き込
み可能なメモリであり、外部バス20を通じてポート1
9と接続されている。外部ROM21のメモリ空間は、
アドレス8000H〜FFFFH(図4参照)とされ
る。
【0069】外部バス20は、16ビット幅のバスであ
る。ポート19は、アドレスバス2から受け取ったアド
レス信号を外部ROM21に送り、外部ROM21から
受け取ったデータをデータバス11に出力する。
る。ポート19は、アドレスバス2から受け取ったアド
レス信号を外部ROM21に送り、外部ROM21から
受け取ったデータをデータバス11に出力する。
【0070】分岐先アドレスレジスタ18は、分岐命令
出力回路17から出力される分岐命令の分岐先アドレス
を設定するための記憶回路で、この回路を具備すること
により任意のアドレスに分岐することが可能になる。
出力回路17から出力される分岐命令の分岐先アドレス
を設定するための記憶回路で、この回路を具備すること
により任意のアドレスに分岐することが可能になる。
【0071】次に、本実施例の動作について説明する。
図4に本実施例に係るマイクロコンピュータのメモリマ
ップを示す。
図4に本実施例に係るマイクロコンピュータのメモリマ
ップを示す。
【0072】図4を参照して、マイクロコンピュータ2
2のメモリ空間において、プログラムは、ROM16の
アドレス1000H〜7FFFH、及び外部ROM21
のアドレス8000H〜AFFFHに格納されているも
のとする。
2のメモリ空間において、プログラムは、ROM16の
アドレス1000H〜7FFFH、及び外部ROM21
のアドレス8000H〜AFFFHに格納されているも
のとする。
【0073】また、バグ部分は、ROM16のアドレス
4000H〜400FHに存在するものとし、このバグ
部分を修正する修正プログラムは外部ROM21上のア
ドレスC000H〜C02FHに格納されており、バグ
部分の先頭アドレスデータ「4000H」は外部ROM
21上のアドレスF000H〜F001H(2バイト)
に、修正プログラムの先頭アドレスである分岐先アドレ
スデータ「C000H」は、外部ROM21上のアドレ
スF002H〜F003Hに格納されているものとす
る。
4000H〜400FHに存在するものとし、このバグ
部分を修正する修正プログラムは外部ROM21上のア
ドレスC000H〜C02FHに格納されており、バグ
部分の先頭アドレスデータ「4000H」は外部ROM
21上のアドレスF000H〜F001H(2バイト)
に、修正プログラムの先頭アドレスである分岐先アドレ
スデータ「C000H」は、外部ROM21上のアドレ
スF002H〜F003Hに格納されているものとす
る。
【0074】まず、プログラムのイニシャライズルーチ
ンで外部ROM21上のバグ部分先頭アドレスおよび分
岐先アドレスのデータが、ポート19を介して、それぞ
れレジスタ6、分岐先アドレスレジスタ18に転送され
る。
ンで外部ROM21上のバグ部分先頭アドレスおよび分
岐先アドレスのデータが、ポート19を介して、それぞ
れレジスタ6、分岐先アドレスレジスタ18に転送され
る。
【0075】この結果、レジスタ6には、バグ先頭アド
レス「4000H」、分岐先アドレスレジスタ18には
分岐先アドレスデータ「C000H」がセットされる。
レス「4000H」、分岐先アドレスレジスタ18には
分岐先アドレスデータ「C000H」がセットされる。
【0076】引き続き、通常のプログラムが実行され、
フェッチポインタ1が4000Hに達した時点で、命令
キュー15には分岐命令出力回路17からの分岐命令が
取り込まれる。
フェッチポインタ1が4000Hに達した時点で、命令
キュー15には分岐命令出力回路17からの分岐命令が
取り込まれる。
【0077】この際の分岐命令は、先に設定した分岐先
アドレスレジスタ18の内容に従い、「BR !C00
0H」(アドレスC000Hへの分岐命令)となる。
アドレスレジスタ18の内容に従い、「BR !C00
0H」(アドレスC000Hへの分岐命令)となる。
【0078】CPU7では、この分岐命令を実行するこ
とにより、図4に示すように、アドレスC000H以降
の修正プログラムが実行される。そして、修正プログラ
ムの最後の部分に「BR !4010H」(アドレス4
010Hへの分岐命令)を入れておき、修正プログラム
実行後、元のROM16上のプログラムが実行されるよ
うにする。
とにより、図4に示すように、アドレスC000H以降
の修正プログラムが実行される。そして、修正プログラ
ムの最後の部分に「BR !4010H」(アドレス4
010Hへの分岐命令)を入れておき、修正プログラム
実行後、元のROM16上のプログラムが実行されるよ
うにする。
【0079】以上の方法により、外部ROMを有するマ
イクロコンピュータにおいて、プログラムのバグ部分を
回避し、修正プログラムを実行させることができる。
イクロコンピュータにおいて、プログラムのバグ部分を
回避し、修正プログラムを実行させることができる。
【0080】本発明の第2の実施例によれば、外部RO
Mから修正プログラムをマイクロコンピュータ内に取り
込まなくて済むため、プログラムのイニシャライズルー
チンが簡単化されると共に、フェッチポインタがバグ部
分に達した際の分岐先アドレスを自由に設定できるた
め、プログラムや修正プログラムのメモリ上の位置やサ
イズについての設計自由度を増大させている。
Mから修正プログラムをマイクロコンピュータ内に取り
込まなくて済むため、プログラムのイニシャライズルー
チンが簡単化されると共に、フェッチポインタがバグ部
分に達した際の分岐先アドレスを自由に設定できるた
め、プログラムや修正プログラムのメモリ上の位置やサ
イズについての設計自由度を増大させている。
【0081】また、本発明の第2の実施例においても、
修正プログラムのプログラムサイズは固定されていない
ため、単にバグの修正に対処するためだけでなく、新た
なプログラムの追加等に利用することができる。
修正プログラムのプログラムサイズは固定されていない
ため、単にバグの修正に対処するためだけでなく、新た
なプログラムの追加等に利用することができる。
【0081】なお、上記各実施例では、マイクロコンピ
ュータ内に一のレジスタ6と一の分岐命令発生回路9を
備えた構成に基づき説明したが、バグ先頭アドレスを記
憶するレジスタを複数備えると共に、これに対応した分
岐命令先アドレスを出力する分岐命令出力回路9を複数
具備するように構成してもよいことは勿論である。この
場合、比較回路5はフェッチポインタ1の内容と複数の
レジスタの内容とを比較し、内容が一致したレジスタに
対応する分岐命令出力回路の出力が選択回路8を介して
出力される。このように構成することにより、複数のバ
グに対応して、それぞれ異なる修正を行うことができる
ようになる。
ュータ内に一のレジスタ6と一の分岐命令発生回路9を
備えた構成に基づき説明したが、バグ先頭アドレスを記
憶するレジスタを複数備えると共に、これに対応した分
岐命令先アドレスを出力する分岐命令出力回路9を複数
具備するように構成してもよいことは勿論である。この
場合、比較回路5はフェッチポインタ1の内容と複数の
レジスタの内容とを比較し、内容が一致したレジスタに
対応する分岐命令出力回路の出力が選択回路8を介して
出力される。このように構成することにより、複数のバ
グに対応して、それぞれ異なる修正を行うことができる
ようになる。
【0082】以上本発明を上記実施例に即して説明した
が、本発明は、上記態様にのみに限定されるものでな
く、本発明の原理に準ずる各種態様を含む。例えば、上
記実施例で説明したアドレス、データが16ビット構成
のマイクロコンピュータ及びメモリマップ等はあくまで
本発明の理解を容易にするためだけのものと解釈される
べきであり、また、本発明は例えば32ビットマイクロ
コンピュータ等にも同様にして適用できることは勿論で
ある。
が、本発明は、上記態様にのみに限定されるものでな
く、本発明の原理に準ずる各種態様を含む。例えば、上
記実施例で説明したアドレス、データが16ビット構成
のマイクロコンピュータ及びメモリマップ等はあくまで
本発明の理解を容易にするためだけのものと解釈される
べきであり、また、本発明は例えば32ビットマイクロ
コンピュータ等にも同様にして適用できることは勿論で
ある。
【0083】
【発明の効果】以上説明したように、各請求項に記載さ
れる本発明は下記のような効果を有する。
れる本発明は下記のような効果を有する。
【0084】マイクロコンピュータのROM上のプログ
ラムにバグは発生しても、バグの修正が可能とされるた
め、それらのマイクロコンピュータを廃棄せずに有効に
利用することを可能とし、損失を回避する。
ラムにバグは発生しても、バグの修正が可能とされるた
め、それらのマイクロコンピュータを廃棄せずに有効に
利用することを可能とし、損失を回避する。
【0085】また、デバッグが完全でなくプログラム中
にバグの存在する可能性があっても、後で修正が可能と
されているため、大きな損害の心配なしにマイクロコン
ピュータの発注ができる。
にバグの存在する可能性があっても、後で修正が可能と
されているため、大きな損害の心配なしにマイクロコン
ピュータの発注ができる。
【0086】さらに、修正プログラムのサイズが固定さ
れていないため、単にバグの修正だけでなく、プログラ
ムの追加に本発明を利用することができる。
れていないため、単にバグの修正だけでなく、プログラ
ムの追加に本発明を利用することができる。
【0087】そして、本発明(請求項2、6、9)によ
れば、バグ先頭アドレスが指定するレジスタには、イン
タフェース又はポート等を介して外部からその値が設定
され、バグの発生箇所に対応して適宜対処することがで
きる。
れば、バグ先頭アドレスが指定するレジスタには、イン
タフェース又はポート等を介して外部からその値が設定
され、バグの発生箇所に対応して適宜対処することがで
きる。
【0088】また、本発明の別の視点(請求項3、7)
によれば、外部ROMから修正プログラムをマイクロコ
ンピュータ内に取り込まなくて済むため、プログラムの
イニシャライズルーチンが簡易化される。さらに、フェ
ッチポインタがバグ部分に達した際の分岐先アドレスを
自由に設定できるため、プログラムや修正プログラムの
メモリ上の位置やサイズの制約が緩和され、設計自由度
が増大するため、プログラム設計が容易になる。
によれば、外部ROMから修正プログラムをマイクロコ
ンピュータ内に取り込まなくて済むため、プログラムの
イニシャライズルーチンが簡易化される。さらに、フェ
ッチポインタがバグ部分に達した際の分岐先アドレスを
自由に設定できるため、プログラムや修正プログラムの
メモリ上の位置やサイズの制約が緩和され、設計自由度
が増大するため、プログラム設計が容易になる。
【0089】さらにまた、本発明(請求項5、8)によ
ればマイクロコンピュータ内にレジスタと分岐命令発生
回路を複数具備することにより、複数のバグに対して、
それぞれ異なる修正を行うことができるようになる。
ればマイクロコンピュータ内にレジスタと分岐命令発生
回路を複数具備することにより、複数のバグに対して、
それぞれ異なる修正を行うことができるようになる。
【図1】本発明の第1の実施例に係るマイクロコンピュ
ータの構成を示すブロック図である。
ータの構成を示すブロック図である。
【図2】本発明の第1の実施例に係るマイクロコンピュ
ータのメモリマップを示す図である。
ータのメモリマップを示す図である。
【図3】本発明の第2の実施例に係るマイクロコンピュ
ータの構成を示すブロック図である。
ータの構成を示すブロック図である。
【図4】本発明の第2の実施例に係るマイクロコンピュ
ータのメモリマップである。
ータのメモリマップである。
【図5】先行技術に係るマイクロコンピュータの構成の
一例を示すブロック図である。
一例を示すブロック図である。
1 フェッチポインタ 2 アドレスバス 3、16 ROM 4 RAM 5 比較回路 6 レジスタ 7、24 CPU 8 選択回路 9、17 分岐命令出力命令 10 シリアルインタフェース 11 データバス 12 選択信号 13、22、25 マイクロコンピュータ 14 メモリ 15 命令キュー 18 分岐先アドレスレジスタ 19 ポート 20 外部バス 21 外部ROM 23 プログラムカウンタ
Claims (9)
- 【請求項1】プリフェッチされた命令を格納する命令キ
ューと、プログラムを格納するROMと、を少なくとも
含むマイクロコンピュータにおいて、 所定のアドレス情報を記憶するレジスタと、 所定の分岐命令を出力する分岐命令出力部と、を備え、 命令を先取りするために出力されるプリフェッチアドレ
スと前記レジスタの内容とが一致した際に、前記命令キ
ューに前記分岐命令出力部から出力される分岐命令を供
給するように制御する、ことを特徴とするマイクロコン
ピュータ。 - 【請求項2】前記レジスタには外部から値が設定される
ように構成されたことを特徴とする請求項1記載のマイ
クロコンピュータ。 - 【請求項3】前記分岐命令出力部が、分岐命令における
分岐先アドレスを記憶する分岐先アドレスレジスタを備
え、前記分岐先アドレスレジスタには外部から値が設定
されるように構成されたことを特徴とする請求項1又は
2記載のマイクロコンピュータ。 - 【請求項4】単一半導体基板上に、演算および制御を行
うCPU、プログラムを格納するためのプログラムメモ
リ、前記CPUに取り込むべき命令のプログラムメモリ
上のアドレスを示すフェッチポインタ、外部からデータ
を取り込むためのインタフェース手段、及び前記CPU
が次以降に実行すべき命令を格納しておく命令キュー、
を集積したマイクロコンピュータにおいて、 前記インタフェース手段を介してマイクロコンピュータ
外部から取り込んだ所定のアドレス情報を記憶する記憶
手段と、 前記記憶手段に記憶されたアドレス情報と前記フェッチ
ポインタの内容とを比較し、その比較結果に基づき選択
信号を出力する比較手段と、 前記CPUの実行すべきプログラムのアドレスを変更す
るための分岐命令を出力する分岐命令出力手段と、 前記選択信号が真のとき前記分岐命令を、偽のとき前記
プログラムメモリの内容を、前記命令キューに出力する
選択手段と、を備え、 前記CPUが前記プログラムメモリ上のプログラムを実
行していく上で、前記インタフェース手段を介して取り
込んだ前記記憶手段のアドレス情報と前記フェッチポイ
ンタの内容とが一致した場合、前記CPUが前記分岐命
令出力手段から出力された分岐命令を実行して、前記C
PUが次に実行すべきアドレスの変更を行う、 ように構成されたことを特徴とするマイクロコンピュー
タ。 - 【請求項5】単一半導体基板上に、演算および制御を行
うCPU、プログラムを格納するためのプログラムメモ
リ、前記CPUに取り込むべき命令のプログラムメモリ
上のアドレスを示すフェッチポインタ、外部からデータ
を取り込むためのインタフェース手段、前記CPUが次
以降に実行すべき命令を格納しておく命令キューを集積
したマイクロコンピュータにおいて、 前記インタフェース手段を介してマイクロコンピュータ
外部から取り込んだ複数の所定のアドレス情報を記憶す
る複数の記憶手段と、 前記複数の記憶手段の内容と前記フェッチポインタの内
容とを比較し、その結果に基づき一又は複数の選択信号
を出力する、一又は複数の比較手段と、 前記CPUの実行すべきプログラムのアドレスを変更す
るための一又は複数の分岐命令を出力する一又は複数の
分岐命令出力手段と、 前記選択信号が全て偽のとき前記プログラムメモリの内
容を前記命令キューに出力し、それ以外の時は前記選択
信号により選択された一の分岐命令出力手段からの分岐
命令を出力する選択手段と、を備え、 前記CPUが前記プログラムメモリ上のプログラムを実
行していく上で、前記インタフェース手段を介して取り
込んだ前記複数の記憶手段のいずれか一のアドレス情報
と前記フェッチポインタの内容とが一致した場合、前記
CPUが選択された分岐命令出力手段からの前記分岐命
令を実行し、前記CPUが次に実行すべきアドレスの変
更を行う、 ように構成されたことを特徴とするマイクロコンピュー
タ。 - 【請求項6】前記インタフェース手段の代わりに、マイ
クロコンピュータ外部の記憶装置に対して、データのや
り取りを行うためのポートを有する請求項4又は5記載
のマイクロコンピュータ。 - 【請求項7】単一半導体基板上に、演算および制御を行
うCPU、プログラムを格納するためのプログラムメモ
リ、前記CPUに取り込むべき命令のプログラムメモリ
上のアドレスを示すフェッチポインタ、外部からデータ
を取り込むためのインタフェース手段、前記CPUが次
以降に実行すべき命令を格納しておく命令キューを集積
したマイクロコンピュータにおいて、 前記インタフェース手段を介してマイクロコンピュータ
外部に配設された記憶手段から取り込んだ修正アドレス
情報と分岐先アドレス情報とをそれぞれ記憶するための
修正アドレス記憶手段、及び分岐先アドレス記憶手段を
備え、さらに、前記修正アドレス記憶手段と前記フェッ
チポインタとの内容を比較し、その比較結果に基づき選
択信号を出力する比較手段と、 前記CPUの実行すべきプログラムのアドレスを前記分
岐先アドレス記憶手段の内容に変更するための分岐命令
を出力する分岐命令出力手段と、 前記選択信号が真のとき前記分岐命令を、偽のとき前記
プログラムメモリの内容を前記命令キューに出力する選
択手段と、を備え、 前記CPUが前記プログラムメモリ上のプログラムを実
行していく上で、前記インタフェース手段を介して取り
込んだ前記修正アドレス記憶手段の修正アドレス情報と
前記フェッチポインタの内容とが一致した場合、前記C
PUが前記分岐先アドレス記憶手段中のアドレスへの分
岐命令を実行し、前記CPUが次に実行すべきアドレス
の変更を行う、 ように構成されたことを特徴とするマイクロコンピュー
タ。 - 【請求項8】単一半導体基板上に、演算および制御を行
うCPU、プログラムを格納するためのプログラムメモ
リ、前記CPUに取り込むべき命令のプログラムメモリ
上のアドレスを示すフェッチポインタ、外部からデータ
を取り込むためのインタフェース手段、前記CPUが次
以降に実行すべき命令を格納しておく命令キューを集積
したマイクロコンピュータにおいて、 前記インタフェース手段を介しマイクロコンピュータ外
部の記憶手段から取り込んだ複数の修正アドレス情報と
複数の分岐先アドレス情報とをそれぞれ記憶するための
複数の修正アドレス記憶手段及び複数の修正アドレス記
憶手段を備え、さらに、 前記複数の修正アドレス記憶手段とフェッチポインタの
内容を比較し、その結果に基づき一又は複数の選択信号
を出力する一又は複数の比較手段と、 前記CPUの実行すべきプログラムのアドレスを前記分
岐先アドレス記憶手段の内容に変更するための分岐命令
を出力する一又は複数の分岐命令出力手段と、 前記複数の選択信号が全て偽のとき前記プログラムメモ
リの内容を、それ以外の時は前記選択信号にて選択され
た分岐命令出力手段からの分岐命令を前記命令キューに
出力する選択手段と、を備え、 前記CPUが前記プログラムメモリ上のプログラムを実
行していく上で、前記インタフェース手段を介し取り込
んだ前記複数の修正アドレス記憶手段のいずれか一の修
正アドレス情報と前記フェッチポインタの内容とが一致
した場合、前記CPUが前記複数の分岐先アドレス記憶
手段のうち選択された分岐先アドレス記憶手段のアドレ
スへの分岐命令を実行し、前記CPUが次に実行すべき
アドレスの変更を行う、 ことを特徴とするマイクロコンピュータ。 - 【請求項9】前記インタフェース手段の代わりに、マイ
クロコンピュータ外部の記憶装置に対して、データのや
り取りを行うためのポートを有する請求項7又は8記載
のマイクロコンピュータ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6252717A JPH0895946A (ja) | 1994-09-22 | 1994-09-22 | マイクロコンピュータ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6252717A JPH0895946A (ja) | 1994-09-22 | 1994-09-22 | マイクロコンピュータ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0895946A true JPH0895946A (ja) | 1996-04-12 |
Family
ID=17241281
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6252717A Pending JPH0895946A (ja) | 1994-09-22 | 1994-09-22 | マイクロコンピュータ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0895946A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6829735B1 (en) | 1999-06-08 | 2004-12-07 | Nec Electronics Corporation | Computer system having a ROM correction unit |
| US7203867B2 (en) | 2002-09-30 | 2007-04-10 | Kabushiki Kaisha Toshiba | Processor system, processor and arithmetic processing method |
| CN1485741B (zh) | 2002-06-25 | 2010-10-20 | 精工爱普生株式会社 | 信息处理装置以及电子设备 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01189728A (ja) * | 1988-01-25 | 1989-07-28 | Fujitsu Ltd | 命令プリフェッチアドレスの更新回路 |
| JPH023197A (ja) * | 1988-06-15 | 1990-01-08 | Nec Corp | デュアルポートメモリ |
| JPH0490032A (ja) * | 1990-08-02 | 1992-03-24 | Olympus Optical Co Ltd | マイクロコンピュータ |
| JPH06149559A (ja) * | 1992-11-02 | 1994-05-27 | Kawasaki Steel Corp | ワンチップマイクロコンピュータ |
-
1994
- 1994-09-22 JP JP6252717A patent/JPH0895946A/ja active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01189728A (ja) * | 1988-01-25 | 1989-07-28 | Fujitsu Ltd | 命令プリフェッチアドレスの更新回路 |
| JPH023197A (ja) * | 1988-06-15 | 1990-01-08 | Nec Corp | デュアルポートメモリ |
| JPH0490032A (ja) * | 1990-08-02 | 1992-03-24 | Olympus Optical Co Ltd | マイクロコンピュータ |
| JPH06149559A (ja) * | 1992-11-02 | 1994-05-27 | Kawasaki Steel Corp | ワンチップマイクロコンピュータ |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6829735B1 (en) | 1999-06-08 | 2004-12-07 | Nec Electronics Corporation | Computer system having a ROM correction unit |
| DE10028064B4 (de) * | 1999-06-08 | 2006-03-02 | Nec Electronics Corp., Kawasaki | Computersystem mit ROM-Korrektureinheiten |
| CN1485741B (zh) | 2002-06-25 | 2010-10-20 | 精工爱普生株式会社 | 信息处理装置以及电子设备 |
| US7203867B2 (en) | 2002-09-30 | 2007-04-10 | Kabushiki Kaisha Toshiba | Processor system, processor and arithmetic processing method |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5235686A (en) | Computer system having mixed macrocode and microcode | |
| US4794524A (en) | Pipelined single chip microprocessor having on-chip cache and on-chip memory management unit | |
| TWI541658B (zh) | 資料處理裝置及半導體積體電路裝置 | |
| US12455745B2 (en) | Processor subroutine cache | |
| US20030051122A1 (en) | Trace information generation apparatus for generating branch trace information omitting at least part of branch source information and branch destination information on target processing | |
| JP4226085B2 (ja) | マイクロプロセッサ及びマルチプロセッサシステム | |
| JPH03158928A (ja) | データ処理装置 | |
| US20230022869A1 (en) | Programmable event testing | |
| US4223381A (en) | Lookahead memory address control system | |
| JP3563768B2 (ja) | Romプログラム変更装置 | |
| JP4988082B2 (ja) | マイクロプロセッサ及びデータ処理システム | |
| US6986028B2 (en) | Repeat block with zero cycle overhead nesting | |
| US20050172109A1 (en) | Register pointer trap | |
| JPH07120338B2 (ja) | 共同プロセッサによる命令の実行をデータプロセッサが調整する方法および該データプロセッサ | |
| JPH0764784A (ja) | マイクロコンピュータ | |
| US7243372B2 (en) | Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection | |
| KR19980079596A (ko) | 멀티 프로세서 시스템의 프로세서 정지 상태 구현 방법 및 장치 | |
| JPH0895946A (ja) | マイクロコンピュータ | |
| EP1177499B1 (en) | Processor and method of executing instructions from several instruction sources | |
| KR20000061574A (ko) | 압축 명령을 갖는 마이크로 컴퓨터 시스템 | |
| JP2002157115A (ja) | データ処理装置 | |
| JPS62197831A (ja) | デ−タ処理装置 | |
| JPH06103109A (ja) | データプロセッサ、及びこれを用いるデバッグ装置 | |
| JP3588951B2 (ja) | マイクロコンピュータのプログラム変更装置 | |
| JP3147884B2 (ja) | 記憶装置及び情報処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19971209 |