JPH09319569A - マイクロコンピュータ - Google Patents

マイクロコンピュータ

Info

Publication number
JPH09319569A
JPH09319569A JP8139138A JP13913896A JPH09319569A JP H09319569 A JPH09319569 A JP H09319569A JP 8139138 A JP8139138 A JP 8139138A JP 13913896 A JP13913896 A JP 13913896A JP H09319569 A JPH09319569 A JP H09319569A
Authority
JP
Japan
Prior art keywords
rom
data
output
queue buffer
address
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
JP8139138A
Other languages
English (en)
Inventor
Masao Mio
雅夫 三尾
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP8139138A priority Critical patent/JPH09319569A/ja
Priority to US08/757,751 priority patent/US5799144A/en
Priority to DE19652290A priority patent/DE19652290C2/de
Priority to KR1019970000104A priority patent/KR100252432B1/ko
Publication of JPH09319569A publication Critical patent/JPH09319569A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]
    • 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
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • 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

Abstract

(57)【要約】 【課題】 命令を先取りするキューバッファが設けられ
ていると、ROM内のプログラムに生じた不具合を解消
する機構がうまく動かない。 【解決手段】 比較回路46は、レジスタ44に格納さ
れているアドレス情報とアドレスバス48上のアドレス
データとを比較する。ラッチ回路14は、比較回路46
からの一致信号でセット状態になり分岐発生信号68ま
たはJMP命令コード終了信号70によってリセット状
態になる。リセット状態で、JMP命令コードROM1
20からデータバス50へのデータ出力は禁止される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、プログラムを格
納するROMを備えROM内のデータの先取り処理を行
うマイクロコンピュータであって、ROM内のプログラ
ムに生じた不具合を解消することができるマイクロコン
ピュータに関するものである。
【0002】
【従来の技術】図8は従来のROM内のプログラムに生
じた不具合を解消することができるシングルチップマイ
クロコンピュータを外部機器とともに示すブロック図で
ある。図において、100はシングルチップマイクロコ
ンピュータ(以下、単にマイクロコンピュータともい
う)、200は修正プログラムが設定されたEEPRO
Mである。マイクロコンピュータ100において、40
はプログラムが固定されたROM、42は書き込み可能
なメモリであるRAM、44は特定アドレスデータが設
定されるレジスタ、46はアドレスバス48上のデータ
とレジスタ44の内容とを比較する比較回路、50はデ
ータバス、52はシリアルデータ出力のためのシリアル
出力端子、54はシリアルデータ入力のためのシリアル
入力端子、110はCPU、120は分岐命令(JMP
命令)が格納されているJMP命令コードROMであ
る。なお、CPU110とシリアル出力端子52および
シリアル入力端子54との間にはシリアル入出力回路が
設けられているが、図8では省略されている。
【0003】次に動作について説明する。このマイクロ
コンピュータ100におけるROM40は、製造時に内
容が固定され、以後、書き換え不可能ないわゆるマスク
ROMである。従って、一旦製造されたら、その内容を
変更することはできない。しかし、現実には、ROM4
0内に固定されたプログラムの不具合が製造後に発見さ
れることがある。
【0004】マイクロコンピュータ100を製造した後
にROM40内のプログラムにおいて不具合が発見され
た状況に対処するための手法として、例えば、特開昭6
3−156231号公報や特開平1−232447号公
報に示された手法がある。図9は、その手法を説明する
ための説明図である。図9において、(a)は不具合を
含むプログラムを示し、(b)は不具合が修正されたプ
ログラムの流れを示す。その手法によると、マイクロコ
ンピュータ100内に、レジスタ44が用意される。レ
ジスタ44には、例えば、シリアル入力端子54を介し
て入力されたデータが設定される。JMP命令コードR
OM120には、JMP命令コード(jmp1〜jmp
4)が設定される。なお、jmp1〜jmp4は、JM
P命令を構成する4バイトのデータを示す。JMP命令
のオペランドは、RAM42内の所定の領域の先頭アド
レスに対応した値を示す。
【0005】ROM40内のプログラムの不具合が発見
された場合に、レジスタ44に、不具合部分の先頭アド
レスが設定される。図9(a)において、不具合部分の
先頭の番地に設定されている命令がop1〜op4で示
されている。そして、EEPROM200内に書き込ま
れた正しいプログラムが、シリアル出力端子52を介し
たデータによるアドレッシングによって、シリアル入力
端子54を介して順次マイクロコンピュータ100に取
り込まれる。そして、RAM42の所定の領域に設定さ
れる。所定の領域の先頭アドレスは、JMP命令コード
ROM120内のJMP命令のオペランドが指すアドレ
スである。このようにして、外部バスを持たないマイク
ロコンピュータ100においても、正しいプログラムが
取り込まれる。なお、正しいプログラムを有する媒体は
EEPROM200に限られない。他の媒体を用いるこ
ともできる。
【0006】その後、マイクロコンピュータ100は実
稼働される。比較回路46は、マイクロコンピュータ1
00の実稼働時に、アドレスバス48に現れるアドレス
データとレジスタ44内の値とを比較する。それらが一
致すると、比較回路46は、一致信号をJMP命令コー
ドROM120に対して出力する。一致信号に応じて、
JMP命令コードROM120内のJMP命令コードが
データバス50に出力される。このとき、ROM40か
らデータバス50へのデータ出力は禁止される。そし
て、CPU110は、データバス50からJMP命令コ
ードを取り込む。そして、内部に有するプログラムカウ
ンタの値をJMP命令のオペランドが示す値にする。従
って、以後、RAM42に書き込まれた正しいプログラ
ムが実行される。RAM42に書き込まれた正しいプロ
グラムの実行後ROM40のプログラムに戻るために、
RAM42内の正しいプログラムの最後の部分に、プロ
グラムカウンタを変更するような分岐命令が格納され
る。
【0007】以上の処理によって、図9(a)に示すよ
うにROM40内の不具合部分に記載されている命令に
よる処理が行われる段階に達すると、不具合のあるプロ
グラムに代わって、図9(b)に示すようにRAM42
内の正しいプログラムが実行される。
【0008】マイクロコンピュータ100として、命令
を先取りして一時格納し格納された命令をCPU110
に供給するキューバッファを備えたものがある。そのよ
うなマイクロコンピュータ100では、キューバッファ
が命令コードを構成するデータをROM40から入力す
る。そして、所定数を越える数のデータを保持すると、
先取り処理を中断する。
【0009】比較回路46が一致信号を出力すると、キ
ューバッファがJMP命令コードROM120内のJM
P命令コードを入力することになるが、そのとき、RO
M40からデータバス50へのデータ出力は禁止され
る。すなわち、ROM40とデータバス50との接続は
切り離される。JMP命令コードが複数バイトのデータ
で構成されている場合には、JMP命令コードを構成す
る複数データのうちの一部のみがキューバッファに取り
込まれた状態で、先取り処理が中断されることがある。
すると、キューバッファはJMP命令コード中の残りの
データを欲しいためにJMP命令コードROM120と
データバス50との接続を維持することを要求している
が、CPU110は他の分岐命令を実行するためにRO
M40をデータバス50に接続することを要求するとい
った事態が生ずる。例えば、JMP命令コードを構成す
る複数データのうちの一部のみがキューバッファに取り
込まれた状態で、マイクロコンピュータ100が割込み
処理を実行しなければならないといった事態がある。ソ
フトウェア割込みの場合には、ROM40に格納されて
いる割込み命令が、JMP命令コードROM120内の
JMP命令コードの読み込み以前にキューバッファに読
み込まれていることになる。また、ハードウェアによる
割込みの要求があると、CPU110が任意の命令を実
行開始しようとすると、いつでもその命令の実行に代え
て割込み処理が実行される。このように、キューバッフ
ァを備えたマイクロコンピュータ100では、JMP命
令コードROM120内のJMP命令コードの読み出し
要求と割込み処理等が競合すると制御不能に陥る。
【0010】
【発明が解決しようとする課題】従来のマイクロコンピ
ュータは以上のように構成されているので、命令を先取
りするキューバッファが設けられていると、ROM内の
プログラムに生じた不具合を解消する機構の制御が困難
になるという課題があった。
【0011】この発明は上記のような課題を解決するた
めになされたもので、キューバッファを有する場合に、
内蔵するROM内のプログラムの不具合に確実に対処す
ることができるマイクロコンピュータを得ることを目的
とする。
【0012】
【課題を解決するための手段】請求項1記載の発明に係
るマイクロコンピュータは、アドレス情報格納部に格納
されているアドレス情報とキューバッファのプログラム
カウンタ値とが一致したときに、第1のROMのアドレ
ス空間以外のアドレス空間に分岐する命令を固定した第
2のROMからのデータ出力を許可するとともにプログ
ラムが固定されている第1のROMからのデータ出力を
禁止し、分岐発生信号または第2のROMが命令を出力
したことを示す命令コード終了信号を入力して第1のR
OMからのデータ出力を許可するとともに第2のROM
からのデータ出力を禁止するROM出力切換部を備えた
ものである。
【0013】請求項2記載の発明に係るマイクロコンピ
ュータは、ROM出力切換部が、アドレス情報格納部に
格納されているアドレス情報とアドレスバス上のアドレ
スデータとを比較する比較回路と、比較回路からの一致
信号でセット状態になり分岐発生信号または命令コード
終了信号によってリセット状態になるラッチ回路とを含
むものである。
【0014】請求項3記載の発明に係るマイクロコンピ
ュータは、ラッチ回路がリセット状態になるとROMリ
ード信号を通過させる第1の論理回路と、第1のROM
の出力を入力し第1の論理回路の出力によって入力信号
の通過状態が制御される第2の論理回路と、ラッチ回路
がセット状態になるとROMリード信号を通過させる第
3の論理回路と、第2のROMの出力を入力し第3の論
理回路の出力によって入力信号の通過状態が制御される
第4の論理回路とをさらに含むものである。
【0015】請求項4記載の発明に係るマイクロコンピ
ュータは、比較回路がアドレス情報格納部に格納されて
いるアドレス情報とCPUのプログラムカウンタ値との
一致を示す一致信号を出力するとセット状態になり、第
2のROMが命令を出力したことを示す命令コード終了
信号によってリセット状態になるラッチ回路と、ラッチ
回路がセット状態であるときにキューバッファからCP
Uへの命令の入力を禁止するとともに第2のROMから
CPUへの命令の入力を許可するスイッチ回路とを備え
たものである。
【0016】
【発明の実施の形態】以下、この発明の実施の一形態を
説明する。 実施の形態1.図1はこの発明の実施の形態1によるマ
イクロコンピュータの構成を示すブロック図である。こ
こでは、シングルチップマイクロコンピュータを例示す
る。図において、2は命令を先取りして一時格納するキ
ューバッファ、4はアドレスバス48上のデータをデコ
ードしアドレスデータに対応したROM(第1のRO
M)40の番地からデータを出力させるアドレスデコー
ダ、6はLレベルの制御信号によって信号通過状態にな
りROM40から出力されたデータをデータバス50に
通過させるスリーステートバッファ、7はHレベルの制
御信号によって信号通過状態になりJMP命令コードR
OM(第2のROM)120から出力されたデータをデ
ータバス50に通過させるスリーステートバッファ、8
はJMP命令コードROM120に格納されている命令
コードの出力順序を制御する制御回路、13はCPU1
10からの分岐発生信号68と制御回路8からのJMP
命令コード終了信号70との論理和をとる論理和回路
(以下、OR回路と記す)、14は比較回路46からの
一致信号でセット状態になりOR回路13からの信号で
リセット状態になるラッチ回路、15はキューバッファ
2からのROMリード信号66がインバータ回路17で
反転された信号とラッチ回路14の出力との論理和をと
る論理和回路(以下、OR回路と記す)、16はラッチ
回路14の出力とROMリード信号66との論理積を制
御回路8およびスリーステートバッファ7に出力する論
理積回路(以下、AND回路と記す)、44は特定アド
レスデータが設定されるレジスタである。62はCPU
110がキューバッファ2に対して出力するアドレスデ
ータを示し、64はキューバッファ2からCPU110
へ与えられるデータを示す。
【0017】なお、ROM出力切換部は、この場合に
は、比較回路46、ラッチ回路14、OR回路15、A
ND回路16、スリーステートバッファ6およびスリー
ステートバッファ7で実現される。また、アドレス情報
格納部は、レジスタ44で実現される。第1〜第4の論
理回路は、それぞれ、OR回路15、スリーステートバ
ッファ6、AND回路16、スリーステートバッファ7
で実現される。
【0018】図2はマイクロコンピュータの動作を説明
するためのタイミング図である。図において、(a)
は、クロック信号を示す。(b)は、キューバッファ2
内のデータ数を示す。(c)は、CPU110の動作を
示す。括弧内は、キューバッファ2からCPU110に
入力されたデータを示す。(d)は、CPU110がキ
ューバッファ2に対して出力するアドレスデータ62を
示す。CPU110が有するプログラムカウンタの値で
もある。(e)は、データバス50からキューバッファ
2に入るデータを示す。(f)は、ROMリード信号6
6を示す。(g)は、キューバッファ2がアドレスバス
48に出力するアドレスデータを示す。キューバッファ
2が有するプログラムカウンタの値でもある。(h)
は、比較回路46から出力される一致信号を示す。
(i)は、JMP命令コード終了信号70を示す。
(j)は、ラッチ回路14の出力を示す。(k)は、分
岐発生信号68示す。
【0019】次に動作について説明する。アドレスバス
48へのアドレスデータの出力は、キューバッファ2に
よって行われる。キューバッファ2は、格納しているデ
ータ数が「1」または「0」バイトになるとROM40
から命令コードを読み出す。命令コードは、2バイト単
位でROM40から読み出されるとする。なお、CPU
110は、命令実行中にメモリアクセスが必要になる
と、直接、該当アドレスをアクセスする。
【0020】このマイクロコンピュータが製造されたと
きには、ROM40には所定のプログラムが固定されて
いる。また、JMP命令コードROM120には、RA
M(図示せず)内の特定領域の先頭番地に分岐するJM
P命令が固定される。なお、JMP命令は、4バイトの
データで構成されているとする。特定領域とは、不具合
プログラムに代わる正しいプログラムを設定するために
ユーザに開放されたRAM内の領域である。ROM40
内のプログラムにおいて不具合が発見されると、ユーザ
は、例えば図8に示されたEEPROM200を用いた
機構によって、レジスタ44に不具合プログラムの先頭
番地を設定するとともに、RAM内の特定領域に正しい
プログラムを書き込む。ここでは、レジスタ44には、
特定アドレスデータとして「PC1+2 」が設定されると
する。すなわち、「PC1+2 」が不具合プログラムの先
頭番地である。
【0021】以下、レジスタ44に不具合プログラムの
先頭番地が設定され、RAM内の特定領域に正しいプロ
グラムが書き込まれた状態でマイクロコンピュータが動
作する場合について説明する。図2に示すサイクル#1
に入る前では、キューバッファ2は初期状態であったと
する。すなわち、キューバッファ2内のデータ数は
「0」であり、キューバッファ2のプログラムカウンタ
はアドレスデータ62によって設定される状態である。
そして、CPU110は、キューバッファ2に対してア
ドレス「PC1 」のデータを要求したとする。すると、
キューバッファ2は「PC1 」をプログラムカウンタに
設定する。そして、「PC1 」をアドレスバス48に出
力するとともに、ROMリード信号66を有意なレベル
であるHレベルにする。ラッチ回路14の初期出力状態
はリセット状態であるとする。すなわち、ラッチ回路1
4の出力はLレベルであるとする。すると、OR回路1
5の入力はともにLレベルであるから、スリーステート
バッファ6が信号通過状態になる。アドレスデコーダ4
は、アドレスバス48上の「PC1 」をデコードして、
該当番地に格納されている命令コードをROM40に出
力させる。スリーステートバッファ6が信号通過状態に
あるので、命令コードはデータバス50に出力される。
キューバッファ2は、データバス50から命令コードを
入力する。命令コードは2バイト単位で読み出されるの
で、ROM40はアドレス「PC1 ,PC1+1 」に格納
されている2バイトのデータop1,op2を出力し、
キューバッファ2は、データバス50を介してデータo
p1,op2を入力する。すなわち、サイクル#1にお
いて、キューバッファ2内のデータ数は「2」になる
(図2(b)参照)。
【0022】CPU110からアドレス「PC1 」のデ
ータの要求があったので、キューバッファ2は、データ
op1をCPU110に対して出力する。よって、キュ
ーバッファ2内のデータ数は「1」になる(図2(b)
のサイクル#2参照)。データ数が「1」になったの
で、キューバッファ2は、命令の先取り処理を実行す
る。すなわち、「PC1+2 」をアドレスバス48に出力
するとともに、ROMリード信号66を有意なレベルで
あるHレベルにする。一方、データop1が1つの命令
コードのオペコードであることをCPU110が認識す
ると(図2(c)のサイクル#2参照)、キューバッフ
ァ2による命令の先取り処理の間、CPU110は、オ
ペランドが格納されているアドレス「PC1+1 」のデー
タをキューバッファ2に要求する(図2(d)のサイク
ル#2〜#4参照)。キューバッファ2は、その要求に
応じて、保持しているデータop2をCPU110に出
力する。よって、キューバッファ2内のデータ数は
「0」になる(図2(b)のサイクル#3参照)。
【0023】CPU110は、サイクル#5〜#8にお
いて、データop1,op2からなる命令に応じた処理
を行う。図2(c)では、アドレス「PC2 」からデー
タを読み込んで加工を行い、結果をアドレス「PC2 」
に書き込む処理が例示されている。この間、CPU11
0は直接にアドレス「PC2 」をアクセスする(図2
(d)のサイクル#4〜#8参照)。なお、図2(e)
における斜線は、データバス50が命令コードの転送以
外に用いられている期間を示す。
【0024】レジスタ44には不具合プログラムの先頭
番地として「PC1+2 」が設定されているので、キュー
バッファ2が「PC1+2 」をアドレスバス48に出力す
ると、比較回路46は、一致信号をHレベルにする(図
2(h)参照)。すると、ラッチ回路14の出力がHレ
ベルになる(図2(j)参照)。ラッチ回路14のHレ
ベルの出力によってOR回路15の出力がHレベルにな
るので、スリーステートバッファ6が閉じる。従って、
ROM40からのデータはデータバス50に出力されな
い。ラッチ回路14の出力はAND回路16の一方の入
力となるので、AND回路16はROMリード信号66
を通過させうる状態になる。キューバッファ2はROM
リード信号66をHレベルにしているので、AND回路
16の出力はHレベルになる。よって、スリーステート
バッファ7は信号通過状態になる。制御回路8は、AN
D回路16の出力がHレベルになると起動し、JMP命
令コードROM120から、JMP命令を順序立てて出
力させる。
【0025】JMP命令コードROM120から、ま
ず、命令コードの最初の2バイトであるデータjmp
1,jmp2がクロック信号に同期して順次出力され
る。データjmp1,jmp2は、データバス50を介
してキューバッファ2に入力する(図2(e)のサイク
ル#3,#4参照)。キューバッファ2内のデータ数が
「2」になるので(図2(b)のサイクル#4参照)、
キューバッファ2は、命令の先取り処理を中断する。
【0026】CPU110は、データop1,op2で
構成される命令コードの処理が終了すると、キューバッ
ファ2に、アドレス「PC1+1 」の次のアドレス「PC
1+2」の命令コードを要求する。その要求に応じて、キ
ューバッファ2は、保持しているデータjmp1をCP
U110に出力する。この結果、キューバッファ2内の
データ数が「1」になるので、キューバッファ2は、命
令の先取り処理を再開する。すなわち、キューバッファ
2は「PC1+4 」をアドレスバス48に出力するととも
に、ROMリード信号66をHレベルにする(図2
(f),(g)のサイクル#9〜#11参照)。ROM
リード信号66に応じてJMP命令コードROM120
からJMP命令の後半の2バイトのデータjmp3,j
mp4が出力される。これらのデータjmp3,jmp
4は、データバス50を介してキューバッファ2に入力
する(図2(e)のサイクル#10,#11参照)。
【0027】一方、CPU110は、データjmp1が
JMP命令のオペコードであったことを知り、JMP命
令のオペランドを得るために、キューバッファ2に「P
C1+3 」のデータを要求する(図2(d)のサイクル#
9〜#11)。キューバッファ2は、その要求に応じて
保持しているデータjmp2,jmp3をCPU110
に転送する(図2(c)のサイクル#10,#11参
照)。従って、キューバッファ2内のデータ数は「1」
になる。なお、その前に、キューバッファ2内のデータ
数は、データjmp3,jmp4を入力したときに
「2」増えて「3」になっていた(図2(b)のサイク
ル#10参照)。JMP命令は4バイトで構成されてい
るので、CPU110は、残りの1バイトを要求するた
めに、アドレスデータ62として「PC1+5 」を出力す
る。キューバッファ2は、この要求に応じて、保持して
いるデータjmp4をCPU110に転送する。従っ
て、キューバッファ2内のデータ数は「0」になる。
【0028】制御回路8は、JMP命令コードがJMP
命令コードROM120から出力され終わった時点で、
JMP命令コード終了信号70をHレベルに立ち上げる
(図2(i)参照)。ラッチ回路14は、OR回路13
を介して入力されたJMP命令コード終了信号70の立
ち上がりによってリセット状態になる(図2(j)参
照)。すなわち、その出力はLレベルになる。従って、
OR回路15はROMリード信号66を通過させうる状
態になるので、以後、ROMリード信号66がHレベル
になると、ROM40からのデータが、データバス50
を介してキューバッファ2に入力する。ラッチ回路14
の出力を導入するAND回路16の一方の入力がLレベ
ルになるので、AND回路16はLレベルになる。よっ
て、スリーステートバッファ7は信号通過禁止状態にな
る。すなわち、以後、JMP命令コードROM120の
データは、データバス50に出力されない。
【0029】キューバッファ2は、サイクル#11にお
いて、命令コードを先取りするために「PC1+6 」をア
ドレスバス48に出力するとともにROMリード信号6
6をHレベルにする(図2(f),(g)のサイクル#
11〜#13参照)。この時点では既にスリーステート
バッファ6が信号通過状態になってるので、Hレベルの
ROMリード信号66に応じて、ROM40から、アド
レス「PC1+6 ,PC1+7 」のデータ「op7,op
8」がデータバス50に出力される。キューバッファ2
は、データバス50からデータ「op7,op8」を取
り込む。
【0030】しかし、CPU110から、JMP命令の
実行完了時に分岐発生信号68が出力される(図2
(k)参照)。キューバッファ2は、分岐発生信号68
によってクリアされる。従って、データ「op7,op
8」はキューバッファ2において消滅する。よって、キ
ューバッファ2内のデータ数は「0「になる。また、キ
ューバッファ2のプログラムカウンタは、次にCPU1
10からデータを要求されたときに、アドレスデータ6
2が示す値に設定される。なお、CPU110のプログ
ラムカウンタは、JMP命令コードのオペランドが示す
値に更新される。
【0031】以上のようにして、正しいプログラムに分
岐するためのJMP命令コードをJMP命令コードRO
M120からデータバス50に出力させたいときにの
み、JMP命令コードROM120からのデータを入力
とするスリーステートバッファ7が信号通過状態にな
り、スリーステートバッファ6が信号通過禁止状態にな
る。そして、CPU110が正しいプログラムに分岐す
るためのJMP命令(jmp1〜jmp4)を実行した
ら、ROM40からのデータを入力とするスリーステー
トバッファ6が信号通過状態になり、スリーステートバ
ッファ7が信号通過禁止状態になる。以後、RAMに設
定された正しいプログラムが実行されるが、そのプログ
ラムの最後にある分岐命令によって、CPU110を、
ROM40内のプログラムを実行する状態に戻す。その
とき、ROM40からのデータを入力とするスリーステ
ートバッファ6が信号通過状態になっているので、問題
なくROM40内のプログラム実行が再開される。
【0032】次に、図3のタイミング図を参照して、J
MP命令コードROM120からのJMP命令コードの
出力が完了する前にハードウェアによる割込みが発生し
た場合について説明する。レジスタ44には、特定アド
レスデータとして「PC1+2」が設定されているとす
る。図3(m)に示すように、サイクル#1で割込み要
求が発生したとする。このとき、CPU110は命令実
行中であるから、割込み要求は、その命令の実行後に受
け付けられる。従って、マイクロコンピュータにおい
て、図3におけるサイクル#1〜#8間で、割込み要求
が発生しなかった場合と同様の処理が行われる。すなわ
ち、図3におけるサイクル#1〜#8でのマイクロコン
ピュータの処理は、図2におけるサイクル#1〜#8で
の処理と同じである。なお、この場合のマイクロコンピ
ュータの各部分の処理を示す図3(a)〜(k)は、そ
れぞれ、図2(a)〜(k)に対応する。サイクル#8
の終了時にCPU110のプログラムカウンタは「PC
1+2 」を示す(図3(d)参照)。
【0033】キューバッファ2は、サイクル#2〜#4
において、命令の先取り処理を行うためにアドレスバス
48にアドレス「PC1+2 」を出力する(図3(g)参
照)。よって、比較回路46は、一致信号をHレベルに
する。すると、ラッチ回路14はセット状態になり出力
がHレベルになるので、OR回路15は、ROMリード
信号66を通過させない状態になる。すなわち、ROM
40からデータバス50へのデータ出力は禁止される。
同時に、AND回路16がROMリード信号66を通過
させる状態になる。従って、HレベルのROMリード信
号66に応じてデータjmp1,jmp2がJMP命令
コードROM120からデータバス50に出力される。
キューバッファ2は、データバス50からデータjmp
1,jmp2を取り込む(図3(e)のサイクル#3,
#4参照)。キューバッファ2内のデータ数は「2」に
なるので、キューバッファ2は、命令の先取り処理を中
断する。よって、サイクル#8において、キューバッフ
ァ2には、JMP命令コードの一部であるデータjmp
1,jmp2が格納されている。また、この時点で、ラ
ッチ回路14はセット状態である。
【0034】割込み要求が既に発生していたので、一命
令の実行が完了したサイクル#8の終了時において、C
PU110は割込みによる分岐を開始する。この分岐を
実行するために数サイクルの時間がかかるが、この分岐
における最後のサイクルで、CPU110は、分岐発生
信号68をHレベルにする。(図3(k)参照)。分岐
発生信号68は、OR回路13を介してラッチ回路14
をリセット状態にする。従って、OR回路15は、RO
Mリード信号66を通過させる状態になる。すなわち、
ROM40からデータバス50へのデータ出力が可能な
状態になる。同時に、AND回路16がROMリード信
号66を通過させない状態になる。また、分岐発生信号
68によって、キューバッファ2はクリアされる。
【0035】割込み分岐後に実行される割込み処理プロ
グラムは、ROM40に格納されている。上述した処理
によって、割込み処理プログラムの実行開始前に、RO
M40からデータバス50へのデータ出力が可能な状態
に戻される。また、キューバッファ2はクリアされてい
るので、CPU110が割込み処理プログラムの先頭ア
ドレスのデータをキューバッファ2に要求すると、キュ
ーバッファ2は、プログラムカウンタを処理プログラム
の先頭アドレスに設定する。
【0036】仮に、ラッチ回路14を分岐発生信号68
によってリセット状態にする上述した処理が行われない
とすると、ROM40からデータバス50へのデータ出
力が禁止されJMP命令コードROM120からデータ
バス50へのデータ出力が許可された状態のままであ
る。その場合には、JMP命令コードROM120が出
力することになる命令jmp3,jmp4が、割込み分
岐後の割込み処理プログラムの先頭でキューバッファ2
を介してCPU110に読み込まれることになり、割込
み処理プログラムを正常に実行することができない。し
かし、この実施の形態1においては、そのようなことは
ない。
【0037】割込み処理プログラムが終了すると、CP
U110のプログラムカウンタは元の状態に戻される。
すなわち、「PC1+2 」になる。よって、CPU110
はアドレスデータ62として「PC1+2 」を要求する。
割込み処理プログラムの終了時には一般に分岐命令が実
行されるので、キューバッファ2はクリアされている。
よって、アドレス「PC1+2 」の要求に応じて、キュー
バッファ2は、プログラムカウンタを「PC1+2 」に設
定し、アドレスバスに「PC1+2 」を出力する。する
と、比較回路46がHレベルの一致信号を出力するの
で、再度、JMP命令コードROM120からデータバ
ス50にJMP命令コードが出力される。よって、正し
いプログラムを実行するための処理が行われる。
【0038】以上のように、この実施の形態1によれ
ば、命令の先取り処理を行うキューバッファ2を有する
マイクロコンピュータにおいて、キューバッファ2がJ
MP命令コードROM120からJMP命令コードを読
み出しているときに割込みが発生しても、処理上何等の
矛盾も生じない。すなわち、そのような場合には、JM
P命令コードROM120からのJMP命令コードの読
み出しが中断され、割込み処理プログラムの先頭アドレ
スの命令コードから順次命令コードがROM40からキ
ューバッファ2に供給される。
【0039】なお、CPU110がプログラム中の分岐
命令を実行しているときにキューバッファ2がアドレス
バス48に「PC1+2 」を出力することがあり得る。そ
の場合、比較回路46がHレベルの一致信号を出力して
ラッチ回路14がセット状態にされるので、ROM40
からデータバス50へのデータ出力が禁止される。その
ままでは、ROM40からデータバス50へのデータ出
力禁止状態が継続するので、分岐命令による飛び先のプ
ログラムが実行できない。しかし、この実施の形態1に
よれば、分岐命令の実行完了時に分岐発生信号68によ
ってラッチ回路14がリセットされるので、分岐命令に
よる飛び先のプログラムが実行できなくなるといった事
態は生じない。
【0040】実施の形態2.図4はこの発明の実施の形
態2によるマイクロコンピュータの構成を示すブロック
図である。図において、122は図1におけるJMP命
令コードROM120に代えて設けられたソフトウェア
割込み命令コードROM(第2のROM)である。その
他の構成要素は、図1に示された構成要素と同じもので
ある。
【0041】次に動作について説明する。ソフトウェア
割込み命令コードROM122には、特定番地に分岐す
る命令であるソフトウェア割込み命令があらかじめ固定
されている。ソフトウェア割込み命令は、複数バイトで
構成されているとする。比較回路46がHレベルの一致
信号を出力すると、実施の形態1の場合と同様に、RO
M40からデータバス50へのデータ出力が禁止される
とともに、ソフトウェア割込み命令コードROM122
からデータバス50へのデータ出力が許可される。従っ
て、ROMリード信号66がHレベルになると、ソフト
ウェア割込み命令コードが、ソフトウェア割込み命令コ
ードROM122からデータバス50に出力される。ソ
フトウェア割込み命令コードの出力が完了すると、制御
回路8は、JMP命令コード終了信号70をHレベルに
する。その他の動作は、実施の形態1における動作と同
じである。
【0042】よって、この実施の形態2では、CPU1
10はJMP命令コードROM120に格納されたJM
P命令を実行する代わりにソフトウェア割込み命令を実
行するが、実施の形態1の場合と同様の効果を生じさせ
る。すなわち、正しいプログラムに分岐するためのソフ
トウェア割込み命令コードをソフトウェア割込み命令コ
ードROM122からデータバス50に出力させたいと
きにのみ、ソフトウェア割込みコードROM122から
のデータを入力とするスリーステートバッファ7が信号
通過状態になり、スリーステートバッファ6が信号通過
禁止状態になる。そして、CPU110が正しいプログ
ラムに分岐するためのソフトウェア割込み命令を実行し
たら、ROM40からのデータを入力とするスリーステ
ートバッファ6が信号通過状態になり、スリーステート
バッファ7が信号通過禁止状態になる。
【0043】また、キューバッファ2がソフトウェア割
込み命令コードROM122からソフトウェア割込み命
令コードを読み出しているときに割込みが発生しても、
処理上何等の矛盾も生じない。すなわち、そのような場
合には、ソフトウェア割込み命令コードROM122か
らのソフトウェア割込み命令コードの読み出しが中断さ
れ、割込み処理プログラムの先頭アドレスの命令コード
から順次命令コードがROM40からキューバッファ2
に供給される。
【0044】実施の形態3.図5はこの発明の実施の形
態3によるマイクロコンピュータの構成を示すブロック
図である。ここでも、シングルチップマイクロコンピュ
ータを例にする。図において、18はCPU110への
データの入力元としてキューバッファ2とJMP命令コ
ードROM120とのうちのいずれかを選択するスイッ
チ回路、61はROMリード信号66がHレベルになる
と信号通過状態になりROM40から出力されたデータ
をデータバス50に通過させるスリーステートバッファ
である。その他の構成要素は、図1に示された構成要素
と同じものである。この場合には、比較回路46には、
レジスタ44の出力とCPU110が出力するアドレス
データ62とが入力される。また、ラッチ回路14は、
JMP命令コード終了信号70のみによってリセット状
態にされる。ラッチ回路14の出力は、スリーステート
バッファ7および制御回路8に直接入力する。そして、
スイッチ回路18は、ラッチ回路14の出力がLレベル
のときにキューバッファ2の出力がCPU110に供給
されるように切り換えられる。
【0045】図6は実施の形態3によるマイクロコンピ
ュータの動作を説明するためのタイミング図である。こ
の場合のマイクロコンピュータの各部分の処理を示す図
6(a)〜(k)は、それぞれ、図2(a)〜(k)に
対応する。ただし、図6(c)の括弧内は、キューバッ
ファ2からCPU110に入力されたデータまたはJM
P命令コードROM120からCPU110に入力され
たデータを示す。
【0046】次に動作について説明する。レジスタ44
には、「PC1+2 」が設定されているとする。図6に示
すサイクル#1に入る前では、キューバッファ2は初期
状態であったとする。また、ラッチ回路14の出力はL
レベルであって、CPU110は、キューバッファ2か
らのデータが入力する状態にあるとする。そして、CP
U110は、キューバッファ2に対してアドレス「PC
1 」のデータを要求したとする(図6(d)のサイクル
#1参照)。すると、キューバッファ2は「PC1 」を
アドレスバス48に出力するとともに、ROMリード信
号66を有意なレベルであるHレベルにする。ラッチ回
路14の出力はLレベルであるから、スリーステートバ
ッファ7は信号通過禁止状態である。アドレスデコーダ
4は、アドレスバス48上の「PC1」をデコードし
て、該当番地に格納されている命令コードをROM40
に出力させる。スリーステートバッファ61はHレベル
のROMリード信号66によって信号通過状態となるの
で、命令コードはデータバス50に出力される。キュー
バッファ2は、データバス50から命令コードを入力す
る。命令コードは2バイト単位で読み出されるので、R
OM40は2バイトのデータop1,op2を出力し、
キューバッファ2は、データop1,op2を入力する
(図6(e)のサイクル#1,#2参照)。すなわち、
キューバッファ2内のデータ数は「2」になる(図6
(b)のサイクル#1,#2参照)。
【0047】CPU110からアドレス「PC1 」のデ
ータの要求があったので、キューバッファ2は、データ
op1をCPU110に対して出力する。よって、キュ
ーバッファ2内のデータ数は「1」になる(図6(b)
のサイクル#2参照)。データ数が「1」になったの
で、キューバッファ2は、命令の先取り処理を実行す
る。すなわち、「PC1+2 」をアドレスバス48に出力
するとともに、ROMリード信号66をHレベルにす
る。一方、データop1が1つの命令コードのオペコー
ドであることをCPU110が認識すると(図6(c)
のサイクル#2参照)、キューバッファ2による命令の
先取り処理の間、CPU110は、オペランドが格納さ
れているアドレス「PC1+1 」のデータをキューバッフ
ァ2に要求する(図6(d)のサイクル#2〜#4参
照)。キューバッファ2は、その要求に応じて、保持し
ているデータop2をCPU110に出力する。よっ
て、キューバッファ2内のデータ数は「0」になる(図
6(b)のサイクル#3参照)。CPU110は、サイ
クル#5〜#8において、データop1,op2からな
る命令に応じた処理を行う。
【0048】キューバッファ2が「PC1+2 」をアドレ
スバス48に出力するとともにROMリード信号をHレ
ベルにしたので、該当番地のデータop3,op4がR
OM40からデータバス50に出力される。キューバッ
ファ2は、データバス50からデータop3,op4を
入力する(図6(e)のサイクル#3,#4参照)。よ
って、キューバッファ2内のデータ数は「2」になる
(図6(b)のサイクル#4参照)。データ数は「2」
になったので、キューバッファ2は、命令先取り処理を
中断する。なお、レジスタ44には「PC1+2 」が設定
されているが、比較回路46はアドレスバス48を導入
していないので、この時点で、一致信号はHレベルにな
らない。
【0049】CPU110は、データop1,op2で
構成される命令コードの処理が終了すると、キューバッ
ファ2に、アドレス「PC1+1 」の次のアドレス「PC
1+2」の命令コードを要求する(図6(d)のサイクル
#8,#9参照)。すると、比較回路46の一方の入力
にも「PC1+2 」が供給されるので、比較回路46は、
Hレベルの一致信号を出力する(図6(h)参照)。従
って、ラッチ回路14がセットされる(図6(j)のサ
イクル#9参照)。ラッチ回路14の出力がHレベルに
なるので、スリーステートバッファ7は信号通過状態に
なる。同時に、スイッチ回路18が、CPU110とス
リーステートバッファ7とを接続するように切り換えら
れる。
【0050】制御回路8は、ラッチ回路14の出力がH
レベルになると起動し、JMP命令コードROM120
から、JMP命令を順序立てて出力させる。JMP命令
コードROM120から、まず、命令コードの最初の1
バイトであるデータjmp1が出力される。データjm
p1は、スリーステートバッファ7およびスイッチ回路
18を介してCPU110に入力する(図6(c)のサ
イクル#9参照)。
【0051】一方、キューバッファ2は、CPU110
からアドレス「PC1+2 」の命令コードを要求されたの
で、保持しているデータop3をCPU110側に出力
する。しかし、スイッチ回路18はCPU110とキュ
ーバッファ2とを切り離しているので、このデータop
3はCPU110には渡らない。キューバッファ2が1
バイトのデータをCPU110側に出力したので、キュ
ーバッファ2内のデータ数は「1」になる(図6(b)
のサイクル#9参照)。従って、キューバッファ2は、
命令の先取り処理を再開する。よって、アドレス「PC
1+4 ,PC1+5」にあるデータop5,op6がROM
40からデータバス50を介してキューバッファ2に入
力する(図6(g)のサイクル#9〜#11および図6
(e)のサイクル#10,#11参照)。この結果、キ
ューバッファ2内のデータ数は「3」になる(図6
(b)のサイクル#10参照)。
【0052】CPU110は、データjmp1がJMP
命令のオペコードであったことを知り、JMP命令のオ
ペランドを得るために、キューバッファ2に「PC1+3
」のデータを要求する(図6(d)のサイクル#9〜
#11)。キューバッファ2は、その要求に応じて保持
しているデータop4,op5をCPU110側に出力
する。スイッチ回路18はCPU110とキューバッフ
ァ2とを切り離しているので、データop4,op5は
CPU110には渡らない。しかし、キューバッファ2
内のデータ数は「1」になる(図6(b)のサイクル#
11参照)。CPU110は、JMP命令コードの残り
の1バイトを要求するために、アドレスデータ62とし
て「PC1+5 」を出力する。キューバッファ2は、この
要求に応じて、保持しているデータop6をCPU11
0に転送する。スイッチ回路18はCPU110とキュ
ーバッファ2とを切り離しているので、データop6は
CPU110には渡らない。しかし、キューバッファ2
内のデータ数は「0」になる(図6(b)のサイクル#
12参照)。
【0053】この間、CPU110には、スリーステー
トバッファ7およびスイッチ回路18を介してデータj
mp2〜jmp4が入力される。よって、CPU110
のプログラムカウンタの値は、JMP命令のオペランド
による値になる。また、CPU110は、分岐発生信号
68を出力する(図6(k)参照)。制御回路8は、J
MP命令コードがJMP命令コードROM120から出
力され終わった時点で、JMP命令コード終了信号70
をHレベルに立ち上げる(図6(i)参照)。ラッチ回
路14は、JMP命令コード終了信号70の立ち上がり
によってリセット状態にされる。すなわち、その出力は
Lレベルになる(図6(j)のサイクル#14参照)。
従って、スリーステートバッファ7は信号通過禁止状態
になる。同時に、スイッチ回路18は、JMP命令コー
ドROM120をCPU110から切り離し、キューバ
ッファ2をCPU110に接続する。
【0054】キューバッファ2は、サイクル#11にお
いて、命令コードを先取りするために「PC1+6 」をア
ドレスバス48に出力するとともにROMリード信号6
6をHレベルにする(図6(f),(g)のサイクル#
11〜#13参照)。HレベルのROMリード信号66
に応じて、ROM40から、アドレス「PC1+6 ,PC
1+7 」のデータ「op,op8」がデータバス50に出
力される。キューバッファ2は、データバス50からデ
ータ「op7,op8」を取り込む。しかし、キューバ
ッファ2は分岐発生信号68によってクリアされるの
で、マイクロコンピュータは、実施の形態1の場合と同
様に、JMP命令による飛び先にあるプログラムを実行
する状態になる。
【0055】次に、図7のタイミング図を参照して、J
MP命令コードROM120からのJMP命令コードの
出力が完了する前に割込みが発生した場合について説明
する。レジスタ44には、特定アドレスデータとして
「PC1+2 」が設定されているとする。図7(m)に示
すように、サイクル#1で割込み要求が発生したとす
る。このとき、CPU110は命令実行中であるから、
割込み要求は、その命令の実行後に受け付けられる。従
って、マイクロコンピュータにおいて、図7におけるサ
イクル#1〜#8間で、割込み要求が発生しなかった場
合と同様の処理が行われる。すなわち、図7におけるサ
イクル#1〜#8でのマイクロコンピュータの処理は、
図6におけるサイクル#1〜#8での処理と同じであ
る。なお、この場合のマイクロコンピュータの各部分の
処理を示す図7(a)〜(k)は、それぞれ、図6
(a)〜(k)に対応する。図6に示す場合と同様に、
サイクル#8の終了時にCPU110のプログラムカウ
ンタは「PC1+2 」を示す(図7(d)参照)。
【0056】割込み要求が既に発生していたので、一命
令の実行が完了したサイクル#8の終了時において、C
PU110は割込み要求による分岐を開始する。プログ
ラムカウンタの値である「PC1+2 」は退避され、割込
み処理プログラムの先頭番地の値がプログラムカウンタ
に設定される。従って、実際には、アドレスデータ62
として「PC1+2 」は出力されない。また、分岐発生信
号68によって、キューバッファ2はクリアされる。割
込み処理プログラムは、ROM40に格納されている。
以後、キューバッファ2は、CPU110から要求され
た割込み処理プログラムにおける命令コードをROM4
0から入力し、CPU110に転送する。
【0057】この実施の形態3では、CPU110から
のアドレスデータ62が比較回路46に直接入力されて
いるので、アドレス「PC1+2 」の直前の番地にある命
令を実行しているときに割込みが発生しても、比較回路
46からの一致信号はHレベルにならない。よって、ラ
ッチ回路14の出力Hレベルにならない。従って、CP
U110がJMP命令コードROM120に接続される
状態にならないので、ROM40内の割込み処理プログ
ラムは問題なくCPU110において実行される。
【0058】割込み処理プログラムが終了すると、CP
U110のプログラムカウンタは元の状態に戻される。
すなわち、「PC1+2 」になる。よって、CPU110
はアドレスデータ62として「PC1+2 」を出力する。
すると、比較回路46がHレベルの一致信号を出力する
ので、JMP命令コードROM120からCPU110
にJMP命令コードが出力される処理が開始される。
【0059】以上のように、この実施の形態3によれ
ば、命令の先取り処理を行うキューバッファ2を有する
マイクロコンピュータにおいて、JMP命令コードRO
M120からJMP命令コードが読み出される際に割込
みが発生しても、処理上何等の矛盾も生じない。すなわ
ち、そのような場合には、JMP命令コードROM12
0からのJMP命令コードの読み出しが待たされ、割込
み処理プログラムの先頭アドレスの命令コードから順次
命令コードがROM40からキューバッファ2に供給さ
れる。
【0060】上記の各実施の形態では、JMP命令コー
ドROM120またはソフトウェア割込み命令コードR
OM122に分岐命令のみが格納されている場合につい
て説明したが、必要に応じて他の命令も併せて格納する
ようにしてもよい。また、レジスタ44を複数のアドレ
ス情報が格納できるようにし、複数のJMP命令コード
ROM120またはソフトウェア割込み命令コードRO
M122を設けてもよい。なお、レジスタ44のビット
長は必ずしもアドレスバス48のビット長に一致してい
る必要はない。ROMの全アドレス空間をアドレスバス
48のビット長よりも短いビット長でアクセスできる場
合には、レジスタ44のビット長はアドレスバス48の
ビット長よりも短くてよい。
【0061】上記の各実施の形態ではROM40が内蔵
されたマイクロコンピュータを例にしたが、ROM40
が外付けされるマイクロコンピュータであっても同様の
効果を奏する。また、レジスタ44に不具合プログラム
の先頭番地を設定するとともにRAM内の特定領域に正
しいプログラムを書き込むためのEEPROMは、マイ
クロコンピュータに内蔵されていてもよい。
【0062】
【発明の効果】以上のように、請求項1記載の発明によ
れば、マイクロコンピュータを、分岐発生信号または命
令コード終了信号を入力して第1のROMからのデータ
出力を許可するとともに第2のROMからのデータ出力
を禁止するROM出力切換部を備えるように構成したの
で、キューバッファを有する場合であっても、内蔵する
ROM内のプログラムの不具合を解消する機構を確実に
動作させることができる効果がある。
【0063】請求項2記載の発明によれば、マイクロコ
ンピュータを、アドレス情報格納部に格納されているア
ドレス情報とアドレスバス上のアドレスデータとを比較
する比較回路からの一致信号でセット状態になり分岐発
生信号または命令コード終了信号によってリセット状態
になるラッチ回路とを含むように構成したので、一致信
号、分岐発生信号および命令コード終了信号で制御され
るラッチ回路の出力によって第1のROMおよび第2の
POMのデータ出力状態が制御され、キューバッファを
有する場合であっても、内蔵するROM内のプログラム
の不具合を解消する機構を確実に動作させることができ
る効果がある。
【0064】請求項3記載の発明によれば、マイクロコ
ンピュータを、ラッチ回路のリセット状態の出力によっ
て第1のROMのデータ出力状態を制御する論理回路
と、ラッチ回路のセット状態の出力によって第2のRO
Mのデータ出力状態を制御する論理回路とをさらに含む
ように構成したので、一致信号、分岐発生信号および命
令コード終了信号が反映された第2の論理回路および第
4の論理回路によって第1のROMと第2のROMのデ
ータ出力状態が制御され、キューバッファを有する場合
であっても、内蔵するROM内のプログラムの不具合を
解消する機構を確実に動作させることができる効果があ
る。
【0065】請求項4記載の発明によれば、マイクロコ
ンピュータを、アドレス情報格納部に格納されているア
ドレス情報とCPUのプログラムカウンタ値とが一致し
たことを示す一致信号を比較回路が出力するとセット状
態になり、第2のROMが命令を出力したことを示す命
令コード終了信号によってリセット状態になるラッチ回
路と、ラッチ回路がセット状態であるときにキューバッ
ファからCPUへの命令の入力を禁止するとともに第2
のROMからCPUへの命令の入力を許可するスイッチ
回路とを備えるように構成したので、第2のROMから
データが読み出される際に割込み等が発生しても、処理
に矛盾が生ずることはなく、キューバッファを有する場
合であっても、内蔵するROM内のプログラムの不具合
を解消する機構を確実に動作させることができる効果が
ある。
【図面の簡単な説明】
【図1】 この発明の実施の形態1によるマイクロコン
ピュータの構成を示すブロック図である。
【図2】 実施の形態1によるマイクロコンピュータの
動作を説明するためのタイミング図である。
【図3】 実施の形態1によるマイクロコンピュータの
他の動作を説明するためのタイミング図である。
【図4】 この発明の実施の形態2によるマイクロコン
ピュータの構成を示すブロック図である。
【図5】 この発明の実施の形態3によるマイクロコン
ピュータの構成を示すブロック図である。
【図6】 実施の形態3によるマイクロコンピュータの
動作を説明するためのタイミング図である。
【図7】 実施の形態3によるマイクロコンピュータの
他の動作を説明するためのタイミング図である。
【図8】 従来のシングルチップマイクロコンピュータ
の構成を示すブロック図である。
【図9】 ROM内のプログラムにおいて不具合が発見
された状況に対処するための手法を説明するための図で
ある。
【符号の説明】
2 キューバッファ、6 スリーステートバッファ(R
OM出力切換部、第2の論理回路)、7 スリーステー
トバッファ(ROM出力切換部、第4の論理回路)、1
4 ラッチ回路(ROM出力切換部)、15 論理和回
路(ROM出力切換部、第1の論理回路)、16 論理
積回路(ROM出力切換部、第3の論理回路)、18
スイッチ回路、40 ROM(第1のROM)、44
レジスタ(アドレス情報格納部)、46 比較回路(R
OM出力切換部)、120 JMP命令コードROM
(第2のROM)、122 ソフトウェア割込み命令コ
ードROM(第2のROM)。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 第1のROMに固定されたプログラムの
    各命令をCPUの実行に先立って先取りするとともに前
    記CPUが分岐命令を実行したことを示す分岐発生信号
    によってクリアされるキューバッファと、前記第1のR
    OMのアドレス空間以外のアドレス空間に分岐する命令
    を固定した第2のROMと、アドレス情報を格納するア
    ドレス情報格納部とを備えたマイクロコンピュータにお
    いて、前記アドレス情報格納部に格納されているアドレ
    ス情報と前記キューバッファのプログラムカウンタ値と
    を比較してそれらが一致したときに前記第2のROMか
    らのデータ出力を許可するとともに前記第1のROMか
    らのデータ出力を禁止し、前記分岐発生信号または前記
    第2のROMが命令を出力したことを示す命令コード終
    了信号を入力して前記第1のROMからのデータ出力を
    許可するとともに前記第2のROMからのデータ出力を
    禁止するROM出力切換部を備えたことを特徴とするマ
    イクロコンピュータ。
  2. 【請求項2】 ROM出力切換部は、アドレス情報格納
    部に格納されているアドレス情報とアドレスバス上のア
    ドレスデータとを比較する比較回路と、前記比較回路か
    らの一致信号でセット状態になり、分岐発生信号または
    命令コード終了信号によってリセット状態になるラッチ
    回路とを備えたことを特徴とする請求項1記載のマイク
    ロコンピュータ。
  3. 【請求項3】 ROM出力切換部は、ラッチ回路がリセ
    ット状態になるとキューバッファからのROMリード信
    号を通過させる第1の論理回路と、第1のROMの出力
    を入力し前記第1の論理回路の出力によって入力信号の
    通過状態が制御される第2の論理回路と、前記ラッチ回
    路がセット状態になると前記キューバッファからのRO
    Mリード信号を通過させる第3の論理回路と、第2のR
    OMの出力を入力し前記第3の論理回路の出力によって
    入力信号の通過状態が制御される第4の論理回路とをさ
    らに備えたことを特徴とする請求項2記載のマイクロコ
    ンピュータ。
  4. 【請求項4】 第1のROMに固定されたプログラムの
    各命令をCPUの実行に先立って先取りするとともに前
    記CPUが分岐命令を実行したことを示す分岐発生信号
    によってクリアされるキューバッファと、前記第1のR
    OMのアドレス空間以外のアドレス空間に分岐する命令
    を固定した第2のROMと、アドレス情報を格納するア
    ドレス情報格納部と、前記アドレス情報格納部に格納さ
    れているアドレス情報とCPUのプログラムカウンタ値
    とを比較する比較回路とを備えたマイクロコンピュータ
    において、前記比較回路が前記アドレス情報と前記CP
    Uのプログラムカウンタ値との一致を示す一致信号を出
    力するとセット状態になり、第2のROMが命令を出力
    したことを示す命令コード終了信号によってリセット状
    態になるラッチ回路と、前記ラッチ回路がセット状態で
    あるときに前記キューバッファから前記CPUへの命令
    の入力を禁止するとともに前記第2のROMから前記C
    PUへの命令の入力を許可するスイッチ回路とを備えた
    ことを特徴とするマイクロコンピュータ。
JP8139138A 1996-05-31 1996-05-31 マイクロコンピュータ Pending JPH09319569A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP8139138A JPH09319569A (ja) 1996-05-31 1996-05-31 マイクロコンピュータ
US08/757,751 US5799144A (en) 1996-05-31 1996-11-26 Microcomputer for resolving problems found in a program stored in a ROM
DE19652290A DE19652290C2 (de) 1996-05-31 1996-12-16 Mikrocomputer
KR1019970000104A KR100252432B1 (ko) 1996-05-31 1997-01-06 마이크로컴퓨터

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8139138A JPH09319569A (ja) 1996-05-31 1996-05-31 マイクロコンピュータ

Publications (1)

Publication Number Publication Date
JPH09319569A true JPH09319569A (ja) 1997-12-12

Family

ID=15238437

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8139138A Pending JPH09319569A (ja) 1996-05-31 1996-05-31 マイクロコンピュータ

Country Status (4)

Country Link
US (1) US5799144A (ja)
JP (1) JPH09319569A (ja)
KR (1) KR100252432B1 (ja)
DE (1) DE19652290C2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
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

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6049672A (en) * 1996-03-08 2000-04-11 Texas Instruments Incorporated Microprocessor with circuits, systems, and methods for operating with patch micro-operation codes and patch microinstruction codes stored in multi-purpose memory structure
US6141740A (en) * 1997-03-03 2000-10-31 Advanced Micro Devices, Inc. Apparatus and method for microcode patching for generating a next address
US5983337A (en) * 1997-06-12 1999-11-09 Advanced Micro Devices, Inc. Apparatus and method for patching an instruction by providing a substitute instruction or instructions from an external memory responsive to detecting an opcode of the instruction
US6158018A (en) * 1997-11-25 2000-12-05 Philips Semiconductor, Inc. Integrated circuit including patching circuitry to bypass portions of an internally flawed read only memory and a method therefore
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
US6438664B1 (en) 1999-10-27 2002-08-20 Advanced Micro Devices, Inc. Microcode patch device and method for patching microcode using match registers and patch routines
AU2000264226A1 (en) * 2000-08-17 2002-02-25 Xemics Sa Control module comprising a read-only memory with reduced power consumption
KR100410557B1 (ko) * 2001-11-19 2003-12-18 주식회사 하이닉스반도체 프로그램 수정 가능한 마이크로컨트롤러 및 구동방법
US7197358B2 (en) * 2002-06-18 2007-03-27 Cambridge Heart, Inc. Identifying infants at risk for sudden infant death syndrome
US7464248B2 (en) 2005-04-25 2008-12-09 Mediatek Incorporation Microprocessor systems and bus address translation methods
US8156486B2 (en) * 2008-10-29 2012-04-10 Mediatek Inc. Patching devices and methods thereof for patching firmware functions
US8438558B1 (en) 2009-03-27 2013-05-07 Google Inc. System and method of updating programs and data

Family Cites Families (16)

* 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
US4769767A (en) * 1984-01-03 1988-09-06 Ncr Corporation Memory patching system
US4751703A (en) * 1986-09-16 1988-06-14 International Business Machines Corp. Method for storing the control code of a processor allowing effective code modification and addressing circuit therefor
JPS6393038A (ja) * 1986-10-07 1988-04-23 Mitsubishi Electric Corp 計算機
JPS63156231A (ja) * 1986-12-19 1988-06-29 Fujitsu Ltd リ−ドオンリ−メモリ内命令の変更方法
JPS63304563A (ja) * 1987-06-03 1988-12-12 Hitachi Ltd イオン注入装置
JPH0769812B2 (ja) * 1987-12-29 1995-07-31 富士通株式会社 データ処理装置
JPH01232447A (ja) * 1988-03-11 1989-09-18 Mitsubishi Electric Corp シングル・チップ・マイクロコンピュータ
US5072364A (en) * 1989-05-24 1991-12-10 Tandem Computers Incorporated Method and apparatus for recovering from an incorrect branch prediction in a processor that executes a family of instructions in parallel
JPH05143476A (ja) * 1991-11-20 1993-06-11 Fujitsu Ltd 命令キユーの診断方式
US5623665A (en) * 1992-01-13 1997-04-22 Sony Corporation Electronic apparatus for patching a read-only memory
US5251174A (en) * 1992-06-12 1993-10-05 Acer Incorporated Memory system
JPH06318261A (ja) * 1992-09-18 1994-11-15 Sony Corp 電子装置
DE69421379T2 (de) * 1994-03-31 2000-05-11 St Microelectronics Inc Wiederverwendbarer Mehrwegsatz assoziativer Cache-Speicher
US5652858A (en) * 1994-06-06 1997-07-29 Hitachi, Ltd. Method for prefetching pointer-type data structure and information processing apparatus therefor
US5664135A (en) * 1994-09-28 1997-09-02 Hewlett-Packard Company Apparatus and method for reducing delays due to branches

Cited By (1)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
DE19652290A1 (de) 1997-12-04
KR100252432B1 (ko) 2000-04-15
KR970076274A (ko) 1997-12-12
US5799144A (en) 1998-08-25
DE19652290C2 (de) 2000-08-17

Similar Documents

Publication Publication Date Title
US5613078A (en) Microprocessor and microprocessor system with changeable effective bus width
JPH09319569A (ja) マイクロコンピュータ
KR100335785B1 (ko) 데이타처리명령의실행
US20050210284A1 (en) Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection
JP3563768B2 (ja) Romプログラム変更装置
JPH07129413A (ja) 割込み処理装置
JPS6125169B2 (ja)
KR19980069757A (ko) 마이크로프로세서 및 멀티프로세서 시스템
JPH0237600A (ja) 読取り専用記憶装置の試験方法とその方法を実行するデバイス
KR100321745B1 (ko) 외부메모리액세스를위한마이크로컨트롤러유닛
US5625808A (en) Read only store as part of cache store for storing frequently used millicode instructions
JPH04305735A (ja) マイクロプログラム制御回路
JP3462245B2 (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
US7058777B2 (en) Microcontroller device for extending memory address by inserting a waiting state and the operation method for the device
US20040103267A1 (en) Data processor having cache memory
JP3105822B2 (ja) マイクロプログラム制御装置
JP3097602B2 (ja) データ処理装置
JP3190945B2 (ja) マイクロプログラム制御回路
JP2685727B2 (ja) データ処理装置
JP2850377B2 (ja) マイクロコンピュータ
JP2002229776A (ja) 複数組の命令組を実行するためのデータ処理装置
JPH0683986A (ja) シングルチップ・マイクロコンピュータ
JPH06222917A (ja) 電子装置
JP2004062427A (ja) マイクロプロセッサ

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051115

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060123

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060124

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060404