JP2003178596A - 半導体集積回路 - Google Patents
半導体集積回路Info
- Publication number
- JP2003178596A JP2003178596A JP2001377630A JP2001377630A JP2003178596A JP 2003178596 A JP2003178596 A JP 2003178596A JP 2001377630 A JP2001377630 A JP 2001377630A JP 2001377630 A JP2001377630 A JP 2001377630A JP 2003178596 A JP2003178596 A JP 2003178596A
- Authority
- JP
- Japan
- Prior art keywords
- alternative
- address
- rom
- code
- program code
- 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
Landscapes
- Memory System (AREA)
- Read Only Memory (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
(57)【要約】
【課題】 最終的な製品段階でバグが発現した場合で
も、短時間に且つ低コストに不具合の解消を行なうこと
が可能な半導体集積回路を提供する。 【解決手段】 プログラムが記憶されるROM21と、
該ROM21から読み出されたプログラムコードを実行
するプロセッサとが設けられた半導体集積回路におい
て、上記プログラムコードの代替となる代替コードが格
納される代替コードレジスタ31と、プログラムコード
の代替を行なうアドレスが格納される代替アドレス指定
レジスタ32と、アドレスバス11に出力されるリード
アドレスと上記代替アドレス指定レジスタ32に格納さ
れるアドレスとを比較する比較器34と、比較器43に
よる比較結果に基づき上記プロセッサで実行されるプロ
グラムコードをROM21側から供給するか代替コード
レジスタ33側から供給するか選択するセレクタ35と
を備えたものである。
も、短時間に且つ低コストに不具合の解消を行なうこと
が可能な半導体集積回路を提供する。 【解決手段】 プログラムが記憶されるROM21と、
該ROM21から読み出されたプログラムコードを実行
するプロセッサとが設けられた半導体集積回路におい
て、上記プログラムコードの代替となる代替コードが格
納される代替コードレジスタ31と、プログラムコード
の代替を行なうアドレスが格納される代替アドレス指定
レジスタ32と、アドレスバス11に出力されるリード
アドレスと上記代替アドレス指定レジスタ32に格納さ
れるアドレスとを比較する比較器34と、比較器43に
よる比較結果に基づき上記プロセッサで実行されるプロ
グラムコードをROM21側から供給するか代替コード
レジスタ33側から供給するか選択するセレクタ35と
を備えたものである。
Description
【0001】
【発明の属する技術分野】この発明は、ROM内蔵の各
種プロセッサやDSP(Digital Signal Processor)、
並びに、ワンチップマイクロコンピュータなどの半導体
集積回路に適用して有用な技術に関する。
種プロセッサやDSP(Digital Signal Processor)、
並びに、ワンチップマイクロコンピュータなどの半導体
集積回路に適用して有用な技術に関する。
【0002】
【従来の技術】自動車や家電製品などにおいて電子制御
を行うコントローラICや、携帯電話やデジタルビデオ
装置などで様々な信号処理を行なうDSPの中には、制
御プログラムが格納されたROMを内蔵するものがあ
る。このような半導体集積回路では、開発過程では書換
え可能なフラッシュROMを用いて制御プログラムのデ
バッグを行なうが、最終的な製品段階では、製造コスト
の面から、書き換えできないマスクROMを用いてLS
Iを製造すると云う手法がとられることが多い。
を行うコントローラICや、携帯電話やデジタルビデオ
装置などで様々な信号処理を行なうDSPの中には、制
御プログラムが格納されたROMを内蔵するものがあ
る。このような半導体集積回路では、開発過程では書換
え可能なフラッシュROMを用いて制御プログラムのデ
バッグを行なうが、最終的な製品段階では、製造コスト
の面から、書き換えできないマスクROMを用いてLS
Iを製造すると云う手法がとられることが多い。
【0003】
【発明が解決しようとする課題】しかしながら、上記の
ように開発段階でデバッグを行なったとしても、バグが
完全に取り除かれずに、マスクROMを用いた最終的な
製品段階でバグが発現することもありうる。従来のマス
クROMを用いたLSIでは、このような場合に、最終
的な製品が全て無駄になったり、或いは、外部から内蔵
のRAMにバグを取り除いた制御プログラムを全て読み
込ませてROMのプログラムに代替させて実行させるな
どの措置をとらなければならなかった。
ように開発段階でデバッグを行なったとしても、バグが
完全に取り除かれずに、マスクROMを用いた最終的な
製品段階でバグが発現することもありうる。従来のマス
クROMを用いたLSIでは、このような場合に、最終
的な製品が全て無駄になったり、或いは、外部から内蔵
のRAMにバグを取り除いた制御プログラムを全て読み
込ませてROMのプログラムに代替させて実行させるな
どの措置をとらなければならなかった。
【0004】この発明の目的は、上記のように最終的な
製品段階でバグが発現した場合でも、短時間に且つ低コ
ストに不具合の解消を行なうことが可能な半導体集積回
路を提供することにある。この発明の前記ならびにその
ほかの目的と新規な特徴については、本明細書の記述お
よび添附図面から明らかになるであろう。
製品段階でバグが発現した場合でも、短時間に且つ低コ
ストに不具合の解消を行なうことが可能な半導体集積回
路を提供することにある。この発明の前記ならびにその
ほかの目的と新規な特徴については、本明細書の記述お
よび添附図面から明らかになるであろう。
【0005】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を説明すれば、下記のと
おりである。すなわち、プログラムが記憶されるROM
と、該ROMから読み出されたプログラムコードを実行
するプロセッサとが設けられた半導体集積回路におい
て、上記ROMに記憶されたプログラムコードの代替と
なる代替コードが格納される代替コード記憶手段と、上
記プログラムコードの代替を行なうアドレスに関する情
報が格納される代替アドレス記憶手段と、上記プログラ
ムコードを読み出すために上記ROMに供給されるリー
ドアドレスと上記代替アドレス記憶手段に格納された情
報とを比較する比較手段と、該比較手段による比較結果
に基づき上記プロセッサで実行されるプログラムコード
を上記ROM側から供給するか上記代替コード記憶手段
側から供給するか選択するコード選択手段とを備えたも
のである。上記した手段によれば、ROMの製造後にバ
グが発見された場合に、そのバグの部分のプログラムコ
ードを代替させるコードを与えることができる。
発明のうち代表的なものの概要を説明すれば、下記のと
おりである。すなわち、プログラムが記憶されるROM
と、該ROMから読み出されたプログラムコードを実行
するプロセッサとが設けられた半導体集積回路におい
て、上記ROMに記憶されたプログラムコードの代替と
なる代替コードが格納される代替コード記憶手段と、上
記プログラムコードの代替を行なうアドレスに関する情
報が格納される代替アドレス記憶手段と、上記プログラ
ムコードを読み出すために上記ROMに供給されるリー
ドアドレスと上記代替アドレス記憶手段に格納された情
報とを比較する比較手段と、該比較手段による比較結果
に基づき上記プロセッサで実行されるプログラムコード
を上記ROM側から供給するか上記代替コード記憶手段
側から供給するか選択するコード選択手段とを備えたも
のである。上記した手段によれば、ROMの製造後にバ
グが発見された場合に、そのバグの部分のプログラムコ
ードを代替させるコードを与えることができる。
【0006】
【発明の実施の形態】以下、本発明の好適な実施例を図
面に基づいて説明する。図1は、本発明の実施例である
コントロールICの要部を示すブロック図、図2は、図
1中の3つのレジスタのバス接続構造を示すブロック図
である。この実施例の半導体集積回路は、例えば、電気
装置に搭載されて装置の電子制御を行うコントロールI
Cであり、内部に、制御プログラムが記録されたマスク
ROM(Read Only Memory)21や、この制御プログラ
ムを実行する図示略のCPU(Central Processing Uni
t)を備えたものである。
面に基づいて説明する。図1は、本発明の実施例である
コントロールICの要部を示すブロック図、図2は、図
1中の3つのレジスタのバス接続構造を示すブロック図
である。この実施例の半導体集積回路は、例えば、電気
装置に搭載されて装置の電子制御を行うコントロールI
Cであり、内部に、制御プログラムが記録されたマスク
ROM(Read Only Memory)21や、この制御プログラ
ムを実行する図示略のCPU(Central Processing Uni
t)を備えたものである。
【0007】さらに、この実施例の半導体集積回路に
は、上記ROM21に記憶されている制御プログラムに
僅かなバグがあった場合に、プログラムの一部のコード
を代替させてバグを修正することを可能とするための代
替コードレジスタ31、アドレス指定レジスタ32、制
御レジスタ33、比較手段としての比較器34、並び
に、コード選択手段としてのセレクタ35などが設けら
れている。
は、上記ROM21に記憶されている制御プログラムに
僅かなバグがあった場合に、プログラムの一部のコード
を代替させてバグを修正することを可能とするための代
替コードレジスタ31、アドレス指定レジスタ32、制
御レジスタ33、比較手段としての比較器34、並び
に、コード選択手段としてのセレクタ35などが設けら
れている。
【0008】図3には、内蔵ROMの格納データの構成
図を示す。内蔵ROM21は、例えば32ビットのアド
レスが供給されるアドレスバス11に接続されており、
CPUにより指定されたアドレスに対応する32ビット
のプログラムコードをデータ線13に出力する。内蔵R
OM21は、図3に示すように、1個のアドレスに8ビ
ット、連続する4アドレスに32ビットのプログラムコ
ードを格納する構成であり、且つ、アドレスの下位第1
および第2ビットが例えばマスクされるなどして、1回
のアドレス指定で4アドレス分の32ビットのプログラ
ムコードが同時に読み出され、出力されるように構成さ
れている。また、この実施例においては、例えば、内蔵
ROM21の開始アドレスは「H(16進数)’000
00090」、最終アドレスは「H’0000010
C」に設定されている。
図を示す。内蔵ROM21は、例えば32ビットのアド
レスが供給されるアドレスバス11に接続されており、
CPUにより指定されたアドレスに対応する32ビット
のプログラムコードをデータ線13に出力する。内蔵R
OM21は、図3に示すように、1個のアドレスに8ビ
ット、連続する4アドレスに32ビットのプログラムコ
ードを格納する構成であり、且つ、アドレスの下位第1
および第2ビットが例えばマスクされるなどして、1回
のアドレス指定で4アドレス分の32ビットのプログラ
ムコードが同時に読み出され、出力されるように構成さ
れている。また、この実施例においては、例えば、内蔵
ROM21の開始アドレスは「H(16進数)’000
00090」、最終アドレスは「H’0000010
C」に設定されている。
【0009】図4には、上記アドレス指定レジスタ3
2、制御レジスタ33、代替コードレジスタ31のビッ
ト構成を説明する図を示す。代替コードレジスタ31
は、内蔵ROM21に記録されている制御プログラムの
うちバグを取り除いた代替プログラムコードが格納され
るレジスタである。図4に示すように、この実施例で
は、例えば32ビットの代替プログラムコードが4セッ
ト格納できるように構成されている。
2、制御レジスタ33、代替コードレジスタ31のビッ
ト構成を説明する図を示す。代替コードレジスタ31
は、内蔵ROM21に記録されている制御プログラムの
うちバグを取り除いた代替プログラムコードが格納され
るレジスタである。図4に示すように、この実施例で
は、例えば32ビットの代替プログラムコードが4セッ
ト格納できるように構成されている。
【0010】アドレス指定レジスタ32は、プログラム
コードの代替を行なう内蔵ROM21のアドレスを格納
するレジスタである。図4に示すように、この実施例で
は、例えば32ビットのアドレスを1個格納できるよう
に構成されている。
コードの代替を行なう内蔵ROM21のアドレスを格納
するレジスタである。図4に示すように、この実施例で
は、例えば32ビットのアドレスを1個格納できるよう
に構成されている。
【0011】制御レジスタ33は、プログラムコードの
代替の実行又は非実行を決めるイネーブルビットEや、
代替を行なうアドレスの範囲を1個〜連続する4個にす
るアドレスマスクビットMAを設定するレジスタであ
る。図4に示すように、この実施例では、例えば32ビ
ットのうち31番ビットがイネーブルビットEに、1番
と0番の2ビットがアドレスマスクビットMAに設定さ
れている。
代替の実行又は非実行を決めるイネーブルビットEや、
代替を行なうアドレスの範囲を1個〜連続する4個にす
るアドレスマスクビットMAを設定するレジスタであ
る。図4に示すように、この実施例では、例えば32ビ
ットのうち31番ビットがイネーブルビットEに、1番
と0番の2ビットがアドレスマスクビットMAに設定さ
れている。
【0012】比較器34は、制御レジスタ33のイネー
ブルビットEに“1”が設定され、それによりイネーブ
ル信号が供給されている場合にアクティブにされる。そ
して、アクティブの場合には、アドレス指定レジスタ3
2に設定されているアドレスと、CPU側から指定され
アドレスバス11に出力されたアドレスとを比較して、
その比較結果をセレクト信号としてセレクタ35に出力
する。また、この比較時において、制御レジスタ33の
アドレスマスクビットMAの設定値が“00”の場合に
はそのまま比較を行ない、“01”の場合には下位第3
ビットをマスクして比較を行ない、“11”の場合には
下位第3ビットと下位第4ビットをマスクして比較を行
なうように構成されている。
ブルビットEに“1”が設定され、それによりイネーブ
ル信号が供給されている場合にアクティブにされる。そ
して、アクティブの場合には、アドレス指定レジスタ3
2に設定されているアドレスと、CPU側から指定され
アドレスバス11に出力されたアドレスとを比較して、
その比較結果をセレクト信号としてセレクタ35に出力
する。また、この比較時において、制御レジスタ33の
アドレスマスクビットMAの設定値が“00”の場合に
はそのまま比較を行ない、“01”の場合には下位第3
ビットをマスクして比較を行ない、“11”の場合には
下位第3ビットと下位第4ビットをマスクして比較を行
なうように構成されている。
【0013】なお、アドレスマスクが下位第3ビットと
第4ビットに作用し、下位第1ビットと第2ビットに作
用しないようにしているのは、この実施例の内蔵ROM
21が連続する4アドレス毎にプログラムコードが読み
出されるように設定され、プログラムの実行中において
CPUから指定されるアドレスの下位第1ビットと第2
ビットは常に“00”とされるからである。従って、こ
のようなROMの設定と異なる場合には、設定に合わせ
てアドレスマスクを作用させるビット位置を変更すれば
良い。
第4ビットに作用し、下位第1ビットと第2ビットに作
用しないようにしているのは、この実施例の内蔵ROM
21が連続する4アドレス毎にプログラムコードが読み
出されるように設定され、プログラムの実行中において
CPUから指定されるアドレスの下位第1ビットと第2
ビットは常に“00”とされるからである。従って、こ
のようなROMの設定と異なる場合には、設定に合わせ
てアドレスマスクを作用させるビット位置を変更すれば
良い。
【0014】セレクタ35は、通常時においては内蔵R
OM21側のデータ線13側のパス選択されるように設
定されており、それにより内蔵ROM21から読み出さ
れたプログラムコードはデータバス12を介してCPU
側に出力される。一方、比較器34から比較一致を示す
セレクト信号が入力された場合には、代替コードレジス
タ31側のデータ線14側のパスが選択され代替コード
レジスタ31のプログラムコードがデータバス12を介
してCPU側に出力されるように構成されている。
OM21側のデータ線13側のパス選択されるように設
定されており、それにより内蔵ROM21から読み出さ
れたプログラムコードはデータバス12を介してCPU
側に出力される。一方、比較器34から比較一致を示す
セレクト信号が入力された場合には、代替コードレジス
タ31側のデータ線14側のパスが選択され代替コード
レジスタ31のプログラムコードがデータバス12を介
してCPU側に出力されるように構成されている。
【0015】また、制御レジスタ33でアドレスマスク
が設定されている場合においては、比較器34は、CP
U側から出力されたアドレスのうち、マスクしたビット
の信号をセレクト信号としてセレクタ35に出力するよ
うになっている。このセレクト信号により、4セット分
のプログラムコードが格納される代替コードレジスタ3
1のうち、何れのプログラムコードが出力されるか選択
されるように構成されている。
が設定されている場合においては、比較器34は、CP
U側から出力されたアドレスのうち、マスクしたビット
の信号をセレクト信号としてセレクタ35に出力するよ
うになっている。このセレクト信号により、4セット分
のプログラムコードが格納される代替コードレジスタ3
1のうち、何れのプログラムコードが出力されるか選択
されるように構成されている。
【0016】また、図2に示すように、上記の代替コー
ドレジスタ31、アドレス指定レジスタ32、制御レジ
スタ33は、図1に示されているアドレスバス11とデ
ータバス12に接続されており、CPU側から各レジス
タのアドレスを指定して書込みコマンドとデータを送出
することで、各レジスタにデータを書き込むことが可能
なように構成されている。
ドレジスタ31、アドレス指定レジスタ32、制御レジ
スタ33は、図1に示されているアドレスバス11とデ
ータバス12に接続されており、CPU側から各レジス
タのアドレスを指定して書込みコマンドとデータを送出
することで、各レジスタにデータを書き込むことが可能
なように構成されている。
【0017】また、この実施例のコントロールICに
は、起動時にプログラムの実行を開始するアドレスを選
択するための制御ピン(外部端子)が設けられており、
この制御ピンに入力する信号に基づき、内蔵のROM2
1に記録されている制御プログラムから実行が開始され
るか、或いは、外部に接続されたROMのプログラムか
ら実行が開始されるか、一方を選択することが可能にな
っている。具体的には、上記制御ピンの信号により、C
PUのプログラムカウンタの初期値が内蔵ROM21の
先頭アドレス「H’00000090」に設定される
か、或いは、外部ROMに設定される先頭アドレス「例
えばH’00000000」に設定されるか、何れかが
選択されるようになっている。
は、起動時にプログラムの実行を開始するアドレスを選
択するための制御ピン(外部端子)が設けられており、
この制御ピンに入力する信号に基づき、内蔵のROM2
1に記録されている制御プログラムから実行が開始され
るか、或いは、外部に接続されたROMのプログラムか
ら実行が開始されるか、一方を選択することが可能にな
っている。具体的には、上記制御ピンの信号により、C
PUのプログラムカウンタの初期値が内蔵ROM21の
先頭アドレス「H’00000090」に設定される
か、或いは、外部ROMに設定される先頭アドレス「例
えばH’00000000」に設定されるか、何れかが
選択されるようになっている。
【0018】この選択は、例えばコントロールICが搭
載されるシステムの設計時に何れかに設定されるもので
ある。すなわち、内蔵ROM21の制御プログラムにバ
グはなくプログラムコードの代替が必要ない場合には、
起動時に内蔵ROM21の制御プログラムから実行が開
始されるように制御ピンに入力される信号を設定する一
方、プログラムにバグがあってプログラムコードの代替
が必要な場合には、システムに外部ROMを搭載すると
ともに、コントロールICの起動時にこの外部ROMの
制御プログラムから実行が開始されるように制御ピンに
入力される信号を設定する。
載されるシステムの設計時に何れかに設定されるもので
ある。すなわち、内蔵ROM21の制御プログラムにバ
グはなくプログラムコードの代替が必要ない場合には、
起動時に内蔵ROM21の制御プログラムから実行が開
始されるように制御ピンに入力される信号を設定する一
方、プログラムにバグがあってプログラムコードの代替
が必要な場合には、システムに外部ROMを搭載すると
ともに、コントロールICの起動時にこの外部ROMの
制御プログラムから実行が開始されるように制御ピンに
入力される信号を設定する。
【0019】次に、内蔵プログラムにバグがあってプロ
グラムコードの代替を行なうように設定されている場合
において、実施例のコントロールICにより起動時に行
なわれるレジスタ設定処理について説明する。図5は、
実施例のコントロールICの起動時に実行されるレジス
タ設定処理の手順を示すフローチャートである。このレ
ジスタ設定処理のプログラムは、外部ROMに格納さ
れ、コントロールICの起動時に開始されるものであ
る。このレジスタ設定処理は、プログラムコードの代替
に必要なデータを、アドレス指定レジスタ32、制御レ
ジスタ33、および代替コードレジスタ31へ書き込む
のが主な処理である(ステップS1〜S4)。
グラムコードの代替を行なうように設定されている場合
において、実施例のコントロールICにより起動時に行
なわれるレジスタ設定処理について説明する。図5は、
実施例のコントロールICの起動時に実行されるレジス
タ設定処理の手順を示すフローチャートである。このレ
ジスタ設定処理のプログラムは、外部ROMに格納さ
れ、コントロールICの起動時に開始されるものであ
る。このレジスタ設定処理は、プログラムコードの代替
に必要なデータを、アドレス指定レジスタ32、制御レ
ジスタ33、および代替コードレジスタ31へ書き込む
のが主な処理である(ステップS1〜S4)。
【0020】これらステップS1〜S4の処理は、各レ
ジスタはアドレスバス11とデータバス12にそれぞれ
接続されているので、各レジスタのアドレスを指定し、
書き込むデータを与えると云った単純な処理である。書
込みデータは、内蔵ROM21のバグの箇所に応じて予
め外部ROMに設定されている。そして、各レジスタへ
データを書き込んだら、次に、プログラムカウンタの値
を内蔵ROM21の先頭アドレスに設定して、そこから
次のプログラムコードが実行されるようにする(ステッ
プS5)。以上の処理により、外部ROMに格納された
レジスタ設定処理は完了となる。上記のように、このレ
ジスタ設定処理のプログラムは非常に短いものなので、
システムに付加する上記外部ROMも小さなものにする
ことが出来る。
ジスタはアドレスバス11とデータバス12にそれぞれ
接続されているので、各レジスタのアドレスを指定し、
書き込むデータを与えると云った単純な処理である。書
込みデータは、内蔵ROM21のバグの箇所に応じて予
め外部ROMに設定されている。そして、各レジスタへ
データを書き込んだら、次に、プログラムカウンタの値
を内蔵ROM21の先頭アドレスに設定して、そこから
次のプログラムコードが実行されるようにする(ステッ
プS5)。以上の処理により、外部ROMに格納された
レジスタ設定処理は完了となる。上記のように、このレ
ジスタ設定処理のプログラムは非常に短いものなので、
システムに付加する上記外部ROMも小さなものにする
ことが出来る。
【0021】図6には、図5のレジスタ設定処理の後に
行なわれるコントロールICの実働時の動作の説明図を
示す。CPUの実行が内部ROM21のプログラムに移
行されると、プログラムカウンタが指し示しているアド
レスからプログラムコードが読み出されてCPUにより
実行されていく。ここで、上記レジスタ設定処理により
制御レジスタ33の31番ビットは“1”に設定されて
いるので、それにより比較器34はアクティブにされて
いる。従って、CPUが内部ROM21にプログラムコ
ードを読みにいく度に、比較器34においてアドレスバ
ス11に出力されるアドレスとアドレス指定レジスタ3
2に格納されたアドレス「H’00000100」との
比較が行なわれる。
行なわれるコントロールICの実働時の動作の説明図を
示す。CPUの実行が内部ROM21のプログラムに移
行されると、プログラムカウンタが指し示しているアド
レスからプログラムコードが読み出されてCPUにより
実行されていく。ここで、上記レジスタ設定処理により
制御レジスタ33の31番ビットは“1”に設定されて
いるので、それにより比較器34はアクティブにされて
いる。従って、CPUが内部ROM21にプログラムコ
ードを読みにいく度に、比較器34においてアドレスバ
ス11に出力されるアドレスとアドレス指定レジスタ3
2に格納されたアドレス「H’00000100」との
比較が行なわれる。
【0022】また、制御レジスタ33のマスクビットが
“01”に設定されているので、このときアドレスの下
位第3ビットがマスクされた状態で比較が行なわれる。
すなわち、16進数で表わせば1桁目が「0又は4」の
どちらでも一致とされるような比較が行なわれる。
“01”に設定されているので、このときアドレスの下
位第3ビットがマスクされた状態で比較が行なわれる。
すなわち、16進数で表わせば1桁目が「0又は4」の
どちらでも一致とされるような比較が行なわれる。
【0023】従って、図6に示すように、CPUからア
ドレス「H’00000100」と「H’000001
04」へ読み出しが行なわれたときに、比較器34にお
ける比較の結果が一致となってセレクタ35に一致信号
が出力される。また、制御レジスタ33のマスクビット
が“01”に設定されているので、比較時にアドレスバ
ス11側から入力されているアドレスの下位第3ビット
の信号がセレクタ35に選択信号として出力される。
ドレス「H’00000100」と「H’000001
04」へ読み出しが行なわれたときに、比較器34にお
ける比較の結果が一致となってセレクタ35に一致信号
が出力される。また、制御レジスタ33のマスクビット
が“01”に設定されているので、比較時にアドレスバ
ス11側から入力されているアドレスの下位第3ビット
の信号がセレクタ35に選択信号として出力される。
【0024】セレクタ35では、上記の一致信号により
パスの選択状態が内蔵ROM21のデータ線13から、
代替コードレジスタ31側のデータ線14に切り換えら
れる。また、比較器34から入力されたアドレスの下位
第3ビットの信号により、代替コードレジスタ31の4
セットのデータのうち、アドレス「H’0000010
0」のときには第0番セットのデータが選択され、ま
た、アドレス「H’00000104」のときには第1
番セットのデータが選択される。
パスの選択状態が内蔵ROM21のデータ線13から、
代替コードレジスタ31側のデータ線14に切り換えら
れる。また、比較器34から入力されたアドレスの下位
第3ビットの信号により、代替コードレジスタ31の4
セットのデータのうち、アドレス「H’0000010
0」のときには第0番セットのデータが選択され、ま
た、アドレス「H’00000104」のときには第1
番セットのデータが選択される。
【0025】すなわち、図6に示すように、CPUから
アドレス「H’00000100」と「H’00000
104」へ読み出しが行なわれたときには、内蔵ROM
21のプログラムコード「SSSSSSSS」、「TT
TTTTTT」の換わりに代替コードレジスタ31のプ
ログラムコード「LLLLLLLL」、「MMMMMM
MM」がデータバス12に出力されてCPUにより実行
される。
アドレス「H’00000100」と「H’00000
104」へ読み出しが行なわれたときには、内蔵ROM
21のプログラムコード「SSSSSSSS」、「TT
TTTTTT」の換わりに代替コードレジスタ31のプ
ログラムコード「LLLLLLLL」、「MMMMMM
MM」がデータバス12に出力されてCPUにより実行
される。
【0026】以上のように、この実施例のコントロール
ICによれば、最終的な製品段階において内蔵ROM2
1のプログラムにバグが発現された場合でも、コントロ
ールICが搭載されるシステムにおいて、レジスタ設定
処理のプログラムを格納した外付けROM等を付加する
だけで、内蔵プログラムのバグを取り除いて正常な動作
を行なわせることが出来る。
ICによれば、最終的な製品段階において内蔵ROM2
1のプログラムにバグが発現された場合でも、コントロ
ールICが搭載されるシステムにおいて、レジスタ設定
処理のプログラムを格納した外付けROM等を付加する
だけで、内蔵プログラムのバグを取り除いて正常な動作
を行なわせることが出来る。
【0027】また、制御レジスタ33のイネーブルビッ
トEの設定によりプログラムコードの代替処理を実行す
るか否かを制御できるので、プログラムにバグが無くて
プログラムコードの代替の必要がない場合には、比較器
が非アクティブにされるなど無駄な動作が停止されて消
費電力の低減が図れる。
トEの設定によりプログラムコードの代替処理を実行す
るか否かを制御できるので、プログラムにバグが無くて
プログラムコードの代替の必要がない場合には、比較器
が非アクティブにされるなど無駄な動作が停止されて消
費電力の低減が図れる。
【0028】また、制御レジスタ33のマスクビットM
Aの設定により1個の比較器34で、複数アドレスの範
囲でアドレス比較とプログラムコードの代替とを行なう
ことが出来るという効果も得られる。
Aの設定により1個の比較器34で、複数アドレスの範
囲でアドレス比較とプログラムコードの代替とを行なう
ことが出来るという効果も得られる。
【0029】以上本発明者によってなされた発明を実施
例に基づき具体的に説明したが、本発明は上記実施例に
限定されるものではなく、その要旨を逸脱しない範囲で
種々変更可能であることはいうまでもない。例えば、上
記実施例では、比較器34やアドレス指定レジスタ32
は1個のアドレスに対応するものであるが、 アドレス
指定レジスタや比較器を複数設けて、パラレルにアドレ
ス比較を行なうことで、処理速度を低下させることなく
プログラムコードの代替を行なうアドレス数を増加する
ことが出来る。
例に基づき具体的に説明したが、本発明は上記実施例に
限定されるものではなく、その要旨を逸脱しない範囲で
種々変更可能であることはいうまでもない。例えば、上
記実施例では、比較器34やアドレス指定レジスタ32
は1個のアドレスに対応するものであるが、 アドレス
指定レジスタや比較器を複数設けて、パラレルにアドレ
ス比較を行なうことで、処理速度を低下させることなく
プログラムコードの代替を行なうアドレス数を増加する
ことが出来る。
【0030】また、上記実施例では、レジスタ設定プロ
グラムが書き込まれた外部ROMをシステムに搭載し、
コントロールICのCPUがこのプログラムを実行する
ことで、代替コードレジスタ31、アドレス指定レジス
タ32および制御レジスタ33の各値が設定されると説
明したが、システムに別の制御処理を行う制御ICなど
が設けられているような場合には、この制御ICに本発
明に係るコントロールICのレジスタ設定を行なわせる
ように構成することも出来る。
グラムが書き込まれた外部ROMをシステムに搭載し、
コントロールICのCPUがこのプログラムを実行する
ことで、代替コードレジスタ31、アドレス指定レジス
タ32および制御レジスタ33の各値が設定されると説
明したが、システムに別の制御処理を行う制御ICなど
が設けられているような場合には、この制御ICに本発
明に係るコントロールICのレジスタ設定を行なわせる
ように構成することも出来る。
【0031】また、上記実施例では、内蔵ROM21と
データバス12との間にセレクタ35を設けて代替用の
プログラムコードの選択を行なっていたが、このような
選択が行なわれる箇所は内蔵ROM21からCPUの命
令実行部までの間であれば、何処にでも設定することが
出来る。
データバス12との間にセレクタ35を設けて代替用の
プログラムコードの選択を行なっていたが、このような
選択が行なわれる箇所は内蔵ROM21からCPUの命
令実行部までの間であれば、何処にでも設定することが
出来る。
【0032】図7には、本発明の第1の変形例を示すC
PU内部のブロック図を示す。例えば、図7の例は、内
蔵ROM側のプログラムコードか代替用のプログラムコ
ードかの選択をCPU40内部の命令実行部45の直前
で行なっているものである。すなわち、CPU40内部
のプログラムコードをデコードして命令解析を行なう命
令解析部41,42や、プログラムコードが入力される
バス43,44を2系統設け、第1系統のバス43に内
蔵ROM21のプログラムコードが、第2系統のバス4
4に代替コードレジスタ31のプログラムコードが、そ
れぞれ供給されるように構成しておく。さらに、命令実
行部45にアドレス比較の結果信号等が入力されるよう
に構成する。そして、両方のプログラムコードについて
命令解析まで行なっておき、命令実行部45でコマンド
の実行を行なう直前にどちらの命令コードを実行するか
選択されるようにしたものである。
PU内部のブロック図を示す。例えば、図7の例は、内
蔵ROM側のプログラムコードか代替用のプログラムコ
ードかの選択をCPU40内部の命令実行部45の直前
で行なっているものである。すなわち、CPU40内部
のプログラムコードをデコードして命令解析を行なう命
令解析部41,42や、プログラムコードが入力される
バス43,44を2系統設け、第1系統のバス43に内
蔵ROM21のプログラムコードが、第2系統のバス4
4に代替コードレジスタ31のプログラムコードが、そ
れぞれ供給されるように構成しておく。さらに、命令実
行部45にアドレス比較の結果信号等が入力されるよう
に構成する。そして、両方のプログラムコードについて
命令解析まで行なっておき、命令実行部45でコマンド
の実行を行なう直前にどちらの命令コードを実行するか
選択されるようにしたものである。
【0033】このように命令実行部45の直前まで両方
のコマンドコードの処理を並行して行なうことで、プロ
グラムコードが読み出されてから実行されるまでのクリ
ティカルパスの遅延時間を短くして、集積回路を高速な
動作に対応させることが出来るという利点が得られる。
のコマンドコードの処理を並行して行なうことで、プロ
グラムコードが読み出されてから実行されるまでのクリ
ティカルパスの遅延時間を短くして、集積回路を高速な
動作に対応させることが出来るという利点が得られる。
【0034】また、上記実施例では、代替処理を行なう
アドレスや代替用のプログラムコードを記憶する手段と
してレジスタを例示したが、その他、種々の記憶手段を
用いても良い。また、上記実施例では、比較器の結果信
号により代替処理の制御を行う構成を説明したが、その
制御方法や制御手段は種々の構成に変更可能である。
アドレスや代替用のプログラムコードを記憶する手段と
してレジスタを例示したが、その他、種々の記憶手段を
用いても良い。また、上記実施例では、比較器の結果信
号により代替処理の制御を行う構成を説明したが、その
制御方法や制御手段は種々の構成に変更可能である。
【0035】図8には、本発明の第2の変形例を示す半
導体集積回路の要部のブロック図を示す。例えば、図8
の例は、代替のプログラムコードや代替処理を行なうア
ドレスに関する情報が格納される記憶手段としてRAM
51を使用するとともに、アドレス比較を行なってプロ
グラムコードの代替制御を行う回路として、CPUやシ
ーケンサなどの制御回路50を使用し、代替制御をRA
M51内のプログラムにより行なわせるようにしたもの
である。そして、この代替制御により、CPU48から
出力されたアドレスがコマンドコードを代替させるアド
レスに該当すると制御回路50に判断された場合には、
代替するプログラムコードをRAM51から読み出して
データ線14に出力するとともに、セレクタ35の選択
を代替プログラムコード側に切り換えてCPU48に供
給するものである。
導体集積回路の要部のブロック図を示す。例えば、図8
の例は、代替のプログラムコードや代替処理を行なうア
ドレスに関する情報が格納される記憶手段としてRAM
51を使用するとともに、アドレス比較を行なってプロ
グラムコードの代替制御を行う回路として、CPUやシ
ーケンサなどの制御回路50を使用し、代替制御をRA
M51内のプログラムにより行なわせるようにしたもの
である。そして、この代替制御により、CPU48から
出力されたアドレスがコマンドコードを代替させるアド
レスに該当すると制御回路50に判断された場合には、
代替するプログラムコードをRAM51から読み出して
データ線14に出力するとともに、セレクタ35の選択
を代替プログラムコード側に切り換えてCPU48に供
給するものである。
【0036】この例では、回路規模が大きくなるという
欠点が生じるが、代替制御がプログラムにより行なわ
れ、且つ、そのプログラムを外部から入力することが出
来るので、より柔軟性の高い代替制御が可能となる。例
えば、個々のアドレスを比較して代替制御を行なうので
はなく、2個のアドレスを指定しておきその間のアドレ
ス範囲の全てを代替させるような制御も可能であるし、
前段に行なわれた処理のアドレス範囲を記憶しておき、
前段の処理との兼ね合いを判断してプログラムコードの
代替を行なわせることも出来る。
欠点が生じるが、代替制御がプログラムにより行なわ
れ、且つ、そのプログラムを外部から入力することが出
来るので、より柔軟性の高い代替制御が可能となる。例
えば、個々のアドレスを比較して代替制御を行なうので
はなく、2個のアドレスを指定しておきその間のアドレ
ス範囲の全てを代替させるような制御も可能であるし、
前段に行なわれた処理のアドレス範囲を記憶しておき、
前段の処理との兼ね合いを判断してプログラムコードの
代替を行なわせることも出来る。
【0037】以上の説明では主として本発明者によって
なされた発明をその背景となった利用分野であるコント
ローラICについて説明したがこの発明はそれに限定さ
れるものでなく、ワンチップ・マイクロコンピュータや
DSP(Digital Signal Processor)など、内部プログ
ラムに従って処理を行なう半導体集積回路に広く利用す
ることができる。
なされた発明をその背景となった利用分野であるコント
ローラICについて説明したがこの発明はそれに限定さ
れるものでなく、ワンチップ・マイクロコンピュータや
DSP(Digital Signal Processor)など、内部プログ
ラムに従って処理を行なう半導体集積回路に広く利用す
ることができる。
【0038】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
のとおりである。すなわち、本発明に従うと、最終的な
製品段階において内蔵ROMのプログラムにバグが発現
された場合でも、代替コード記憶手段にプログラムコー
ドの代替となる代替コードを格納し、且つ、代替アドレ
ス記憶手段にそのプログラムコードの代替を行なうアド
レスを格納することで、内蔵プログラムのバグの部分を
正常なプログラムコードに代替させて、半導体集積回路
に正常な動作を行なわせることが出来ると云う効果があ
る。
的なものによって得られる効果を簡単に説明すれば下記
のとおりである。すなわち、本発明に従うと、最終的な
製品段階において内蔵ROMのプログラムにバグが発現
された場合でも、代替コード記憶手段にプログラムコー
ドの代替となる代替コードを格納し、且つ、代替アドレ
ス記憶手段にそのプログラムコードの代替を行なうアド
レスを格納することで、内蔵プログラムのバグの部分を
正常なプログラムコードに代替させて、半導体集積回路
に正常な動作を行なわせることが出来ると云う効果があ
る。
【0039】また、制御レジスタの設定によりプログラ
ムコードの代替処理を実行するか否かを制御できるの
で、プログラムにバグが無くプログラムコードの代替の
必要がない場合には、比較器が非アクティブにされるな
ど無駄な動作が停止されて消費電力の低減が図れるとい
う効果がある。
ムコードの代替処理を実行するか否かを制御できるの
で、プログラムにバグが無くプログラムコードの代替の
必要がない場合には、比較器が非アクティブにされるな
ど無駄な動作が停止されて消費電力の低減が図れるとい
う効果がある。
【0040】また、制御レジスタのマスクビットの設定
により、1アドレス分の代替アドレス記憶手段や比較手
段しか設けなくても、複数アドレスの範囲でアドレス比
較とプログラムコードの代替とを行なうことが出来ると
いう効果がある。
により、1アドレス分の代替アドレス記憶手段や比較手
段しか設けなくても、複数アドレスの範囲でアドレス比
較とプログラムコードの代替とを行なうことが出来ると
いう効果がある。
【図1】本発明の実施例であるコントロールICの要部
を示すブロック図である。
を示すブロック図である。
【図2】図1中の3つのレジスタのバス接続構造を示す
ブロック図である。
ブロック図である。
【図3】内蔵ROMの格納データ構成を示すデータチャ
ートである。
ートである。
【図4】本発明に係る3つのレジスタのビット構成を示
す図である。
す図である。
【図5】実施例のコントロールICの起動時に実行され
るレジスタ設定処理の手順を示すフローチャートであ
る。
るレジスタ設定処理の手順を示すフローチャートであ
る。
【図6】図5のレジスタ設定処理の後に実行されるコン
トロールICの実働時の動作を説明する図である。
トロールICの実働時の動作を説明する図である。
【図7】本発明の第1の変形例を示すCPU内部のブロ
ック図である。
ック図である。
【図8】本発明の第2の変形例を示す半導体集積回路の
要部を示すブロック図である。
要部を示すブロック図である。
11 アドレスバス
12 データバス
21 内蔵ROM
31 代替コードレジスタ
32 アドレス指定レジスタ
33 制御レジスタ
34 比較器
35 セレクタ
41,42 命令解析部
45 命令実行部
48 CPU
50 制御回路(比較手段)
51 RAM
Claims (5)
- 【請求項1】 プログラムが記憶されるROMと、該R
OMから読み出されたプログラムコードを実行するプロ
セッサとが設けられた半導体集積回路において、 上記ROMに記憶されたプログラムコードの代替となる
代替コードが格納される代替コード記憶手段と、上記プ
ログラムコードの代替を行なうアドレスに関する情報が
格納される代替アドレス記憶手段と、上記プログラムコ
ードを読み出すために上記ROMに供給されるリードア
ドレスと上記代替アドレス記憶手段に格納された情報と
を比較する比較手段と、該比較手段による比較結果に基
づき上記プロセッサで実行されるプログラムコードを上
記ROM側から供給するか上記代替コード記憶手段側か
ら供給するか選択するコード選択手段とを備えているこ
とを特徴とする半導体集積回路。 - 【請求項2】 上記代替コード記憶手段および上記代替
アドレス記憶手段は、上記プロセッサによりデータの書
込みが可能に構成されていることを特徴とする請求項1
記載の半導体集積回路。 - 【請求項3】 上記比較手段の動作又は非動作の制御内
容を決定するデータが格納される制御レジスタを有する
ことを特徴とする請求項1又は2に記載の半導体集積回
路。 - 【請求項4】 所定ビットについてアドレス比較を行な
うか行なわないかを指示する情報が格納されるマスクビ
ットを有する制御レジスタを備え、上記比較手段は上記
マスクビットに比較を行なわないことを示す情報が設定
された場合に該マスクビットに対応する部分を除いてア
ドレスの比較を行なうように構成されていることを特徴
とする請求項1〜3の何れかに記載の半導体集積回路。 - 【請求項5】 上記ROMは書換え不可能なマスクRO
Mであることを特徴とする請求項1〜4の何れかに記載
の半導体集積回路。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001377630A JP2003178596A (ja) | 2001-12-11 | 2001-12-11 | 半導体集積回路 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001377630A JP2003178596A (ja) | 2001-12-11 | 2001-12-11 | 半導体集積回路 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2003178596A true JP2003178596A (ja) | 2003-06-27 |
Family
ID=19185545
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2001377630A Pending JP2003178596A (ja) | 2001-12-11 | 2001-12-11 | 半導体集積回路 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2003178596A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007058450A (ja) * | 2005-08-23 | 2007-03-08 | Freescale Semiconductor Inc | 半導体集積回路 |
-
2001
- 2001-12-11 JP JP2001377630A patent/JP2003178596A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007058450A (ja) * | 2005-08-23 | 2007-03-08 | Freescale Semiconductor Inc | 半導体集積回路 |
| US7484147B2 (en) | 2005-08-23 | 2009-01-27 | Freescale Semiconductor, Inc | Semiconductor integrated circuit |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH08137763A (ja) | フラッシュメモリ制御装置 | |
| US20080016415A1 (en) | Evaluation system and method | |
| JP2010500682A (ja) | フラッシュメモリアクセス回路 | |
| KR970011215B1 (ko) | 마이크로컴퓨터 | |
| US20100287426A1 (en) | Memory checking system and method | |
| US7047444B2 (en) | Address selection for testing of a microprocessor | |
| US20010052114A1 (en) | Data processing apparatus | |
| JP2003178596A (ja) | 半導体集積回路 | |
| JP2009205277A (ja) | 工作機械の制御装置 | |
| US7222219B2 (en) | Memory control method and memory control apparatus for pipeline processing | |
| US20080133838A1 (en) | Data processing device | |
| JPWO2010029682A1 (ja) | 情報処理装置 | |
| JP2004126658A (ja) | プロセッサシステム | |
| US7028146B2 (en) | Method of verifying a system in which a plurality of master devices share a storage region | |
| JP2022520914A (ja) | メモリ組込み自己テストコントローラを用いる読み出し専用メモリのテスト | |
| CN111221701A (zh) | 一种芯片及其电路逻辑重构系统 | |
| JP2002006910A (ja) | 更新機能付きプログラマブルコントローラおよびプログラマブルコントローラの機能拡張ユニットの機能更新方法 | |
| JP4853620B2 (ja) | マルチプロセッサシステムと初期立ち上げ方法およびプログラム | |
| JP3105822B2 (ja) | マイクロプログラム制御装置 | |
| JP2006221606A (ja) | データプロセッサ | |
| JP3588951B2 (ja) | マイクロコンピュータのプログラム変更装置 | |
| JP3130798B2 (ja) | バス転送装置 | |
| JPH1039958A (ja) | リセット装置 | |
| JP2009070195A (ja) | プログラム処理システムおよびプログラム処理装置 | |
| JP2000155702A (ja) | マイクロコンピュータ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20040311 |