JP4194310B2 - 電子装置 - Google Patents

電子装置 Download PDF

Info

Publication number
JP4194310B2
JP4194310B2 JP2002211470A JP2002211470A JP4194310B2 JP 4194310 B2 JP4194310 B2 JP 4194310B2 JP 2002211470 A JP2002211470 A JP 2002211470A JP 2002211470 A JP2002211470 A JP 2002211470A JP 4194310 B2 JP4194310 B2 JP 4194310B2
Authority
JP
Japan
Prior art keywords
correction
data
instruction
address
storage medium
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.)
Expired - Fee Related
Application number
JP2002211470A
Other languages
English (en)
Other versions
JP2004054618A (ja
Inventor
基樹 東田
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2002211470A priority Critical patent/JP4194310B2/ja
Priority to US10/330,123 priority patent/US6931476B2/en
Publication of JP2004054618A publication Critical patent/JP2004054618A/ja
Application granted granted Critical
Publication of JP4194310B2 publication Critical patent/JP4194310B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

【0001】
【発明の属する技術分野】
この発明はソフトウェアプログラムをマスクROMとして実現した回路において、マスクROM中の一部のプログラム内容およびデータ内容を訂正する電子装置に関するものである。
【0002】
【従来の技術】
CPU(Central processing Unit、以下CPUとする)を用いてソフトウェア制御を行う電子装置には、ソフトウェアプログラムを格納するための固定記憶媒体が必須である。そして、大量生産する電子装置では、コスト削減のため、固定記憶媒体としてマスクROM(Read Only Memory)を用いることが多い。製造後に、マスクROMに格納したソフトウェアに不具合が判明した場合、マスクROMを再製造する必要がある。この再製造を避けるために、使用時にマスクROMの一部のデータを訂正する方法が考えられている。
【0003】
例えば、特開平4−346127号公報「電子装置」には、マスクROMのデータの書き換え方法が述べられている。この従来の方法としては、次のような2種類が考えられている。
(1)書き換えが必要なアドレスヘのアクセスがあった場合、マスクROMからデータバスヘのデータ出力を止め、訂正すべきデータをデータバス上に出力する。
(2)書き換えが必要なアドレスへのアクセスがあった場合に、割り込みを発生させる。割り込み処理ソフトウェアはRAM(Random Access Memory)上に配置し、割り込み処理ソフトウェアの中で、不具合ソフトウェアの回避を行う。
【0004】
最近のCPUとしては、処理速度を向上させるために、動作クロック周波数を向上させ、より少ないクロック数で複数の処理行程(ステージ)でデータを流れ作業のようにして実行するパイプライン型CPUコアを用いることが多くなった。
図14は従来のパイプライン型CPUコアを用いたROM訂正回路の構成を示すブロック図で、特開平4−346127号公報で述べられている(1)の方法をパイプライン型CPUコアに組み合わせた電子装置を示す。図において、10はLSIで構成された電子装置、20は訂正データを格納した書き換え可能デバイスである。100はパイプライン型CPUコア、200は外部IOデバイス、300はSRAM(Static Random Access Memory)、400はマスクROM、500はROMデータ訂正回路、11はデータバス、12はアドレスバスである。
パイプライン型CPUコア100内の構成において、110は内部に命令バッファ111を有する命令プリフェッチ部、120は命令デコード部、130はデータ処理部である。140は内部にデータバッファ141を有するメモリアクセス部、150はレジスタライトバック部、160はメモリバスIF(インタフェース)である。ROMデータ訂正回路500において、510はセレクタ(SEL)、520は訂正アドレス部、530は訂正データ部である。
【0005】
この図のパイプライン型CPUコア100の配置は、命令プリフェッチ部110、命令デコード部120、データ処理部130、メモリアクセス部140およびレジスタライトバック部150からなる5段のパイプラインステージを持つ。パイプライン型CPUコア100では、1つの命令に対応する処理をパイプラインステージ対応で分割して処理する。非パイプライン型CPUコアの場合では、全体の処理を1つの大きな組み合わせ回路で実行するため、CPUコアの動作周波数の向上が難しかったが、このようなパイプライン型CPUコア100を用いることで、個々のパイプラインステージの処理を小さくでき、パイプライン型CPUコアの動作周波数の向上が容易となる。しかし、パイプライン型CPUコアを用いる電子装置ではCPUコア以外の部分で動作周波数向上のボトルネックが発生している。それは、図14で言えば、マスクROM400の出力からデータバス11を経由してメモリバスIF160に至るパスであることが一般的である。
【0006】
【発明が解決しようとする課題】
従来のマスクROM訂正回路は以上のように構成されているので、図14から分るように、マスクROM400のデータ出力からメモリバスIF160に至るパス上に、ROMデータ訂正回路500中のセレクタ510が挿入されている。このパスは、動作周波数向上時のボトルネックのパスとなる。したがって、(1)の手法には、CPUの動作速度を低下させるという問題があった。また、パイプライン型CPUコア100では、データ処理ステージの負荷を軽くするために、使用可能な割り込み本数を少なく抑えている。したがって、(2)の方法では、使用可能な割り込み本数が不足するという問題があった。
【0007】
この発明は上記のような問題点を解消するためになされたもので、マスクROMデータ製造後にROMデータの訂正手段を実現するとともに、使用可能な割り込み本数の減少やCPUの動作速度の低下をもたらすことなくROMデータの訂正を行うことが可能な電子装置を得ることを目的とする。
【0008】
【課題を解決するための手段】
この発明に係る電子装置は、所定のデータを予め固定的に記録した固定記憶媒体からデータバスを介し読み出したデータに基づいてパイプライン処理を行うCPUコアを備えた電子装置において、当該電子装置の初期化時に固定記憶媒体の記憶内容に係る訂正アドレス、訂正命令および訂正許可を書き込み保持する記憶素子と、CPUコアの命令プリフェッチステージから出力される命令アドレスと記憶素子に保持された訂正アドレスとを比較する比較器と、この比較器の比較結果に基づいて固定記憶媒体からリードされた命令コードと記憶素子に保持された訂正命令のいずれかを選択して出力するセレクタとを有する命令訂正回路をCPUコア内部に備えたものである。
【0009】
この発明に係る電子装置は、命令訂正回路が、CPUコア内の命令プリフェッチステージと命令デコードステージの間あるいはメモリバスインタフェースと命令プリフェッチステージの間に配置されたものである。
【0010】
この発明に係る電子装置は、所定のデータを予め固定的に記録した固定記憶媒体からデータバスを介し読み出したデータに基づいてパイプライン処理を行うCPUコアを備えた電子装置において、当該電子装置の初期化時に固定記憶媒体の記憶内容に係る訂正アドレス、訂正データおよび訂正許可を書き込み保持する記憶素子と、CPUコアのデータ処理ステージから出力されるデータアドレスと記憶素子に保持された訂正アドレスとを比較する比較器と、この比較器の比較結果に基づいて固定記憶媒体からリードされたデータと記憶素子に保持された訂正データのいずれかを選択して出力するセレクタとを有するデータ訂正回路をCPUコア内部に備えたものである。
【0011】
この発明に係る電子装置は、データ訂正回路が、CPUコア内のメモリアクセスステージとレジスタライトバックステージの間あるいはメモリバスインタフェースとメモリアクセスステージの間に配置されたものである。
【0012】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態1.
図1はこの発明の実施の形態1による電子装置の構成を示すブロック図である。
図において、従来技術で示した図14と同じ部分には同一符号を付して示す。図14と異なるところは、マスクROM(固定記憶媒体)400の周辺にあったROMデータ訂正回路500を削除し、パイプライン型CPUコア100の内部の命令プリフェッチ部110と命令デコード部120のステージの間に命令訂正回路170を配置したことである。すなわち、ここではパイプライン型CPUコア100の内部に、命令訂正機能を組み込んだ構成を示す。命令訂正回路170の詳細構成については図2に示す。図2において、171は訂正アドレス部、172は訂正許可部、173は比較回路(COMP)、174はアンドゲート、175は訂正命令部、176はセレクタ(SEL)である。
【0013】
訂正アドレス部171、訂正命令部175および訂正許可部172のブロックは、CPUにより書き換え可能な記憶素子として実現される。訂正アドレス部171には、訂正の必要なマスクROM400のアドレスが格納される。訂正命令部175には、訂正後の命令データが格納される。訂正許可部172には、訂正が必要なとき“1”、不要なとき“0”がセットされる。比較回路173は、命令プリフェッチ部110から出力される命令アドレスと訂正アドレス部171の値を比較する回路である。セレクタ176は、「比較結果が一致」かつ「訂正許可が“1”」であれば訂正命令部175のデータを選択し、「比較結果が不一致」または「訂正許可が“0”」であれば、命令バッファ111のデータを選択して、命令デコード部120のステージに出力する回路である。図2の回路構成を用いることで、命令アドレスが訂正アドレス部171に一致した場合、マスクROM400から命令データの信号線を通じて命令バッファ111に読み込まれた命令データの代わりに、訂正命令部175の命令データが実行されることになる。
【0014】
図3はマスクROM400の訂正を行うソフトウェアプログラムのフローを示すフローチャートである。
まず、外部IOデバイス200の初期化を行い、外部IOデバイスに接続してある書き換え可能デバイス20ヘのアクセスを可能にする。また、命令訂正回路中の訂正許可部を“0”にセットする(ステップST1)。書き換え可能デバイス20ヘアクセスし、命令訂正の要否の情報を得る(ステップST2)。命令訂正が必要であれば、訂正アドレス、訂正命令の情報を、書き換え可能デバイス20からリードする(ステップST4)。一方、ステップST3で、命令訂正が不要であればメインの処理に飛ぶ。ステップST4でリードした情報を、命令訂正回路170中の訂正アドレス部171、訂正命令部175の記憶素子へ設定し、また訂正許可部172を“1”に設定する(ステップST5)。書き換え可能デバイス20から、SRAM300へのデータ転送が必要なバイト数の情報をリードする(ステップST6)。マスクROM400中のソフトウェアの訂正が1命令の置換では不可能で、命令追加が必要な場合、追加命令をSRAM300中に格納して対応する。この場合、追加命令のサイズに応じたバイト数が読み出される。なお、追加命令がある場合には、訂正命令部175に入る命令は、追加命令が格納されたSRAM300の先頭アドレスへのジャンプ命令となる。ステップST8では、追加命令のバイト数に応じて、書き換え可能デバイス20からデータが読み出され、SRAM300に転送される。
【0015】
以上が、マスクROM400の命令の訂正を可能にするためのソフトウェアフローである。このソフトウェアプログラム自体も、マスクROM400に配置され、電子装置10のリセット直後に実行される。マスクROM400中のこのソフトウェア部分については訂正不能であるが、メイン処理に比べれば、小さなソフトウェアであり訂正が必要になる可能性は極めて小さい。
【0016】
以上のように、この実施の形態1によれば、電子装置10の初期化時にマスクROM400の記憶内容に係る訂正アドレス、訂正命令および訂正許可を書き込み保持する記憶素子と、CPUコア100の命令プリフェッチ部110から出力される命令アドレスと記憶素子に保持された訂正アドレスとを比較する比較器173と、この比較回路173の比較結果に基づいてマスクROM400からリードされた命令コードと記憶素子に保持された訂正命令のいずれかを選択して出力するセレクタとを有する命令訂正回路170を、CPUコア100内の命令プリフェッチ110と命令デコード部120の間に配置したので、CPUコア100の動作速度を低下させずに、またCPUコア100の外部メモリから命令バッファまでのパスに新たなハードウェアを挿入することなく、ROMデータの訂正を実現できる効果が得られる。
【0017】
実施の形態2.
図1の構成では、命令訂正回路170のセレクタ176の影響で、デコーダステージの遅延が長くなるという問題がある。図1において、メモリバスIF160の構成によっては、データバス経由のリードデータが、メモリバスIF160内のデータバッファにより、サンプルされるケースがある。そのような構成の場合、データバッファから命令バッファ111の間のパスは、単純な組み合わせ回路で実現されており、回路の追加を行っても動作速度を低下させる要因にならない。
図4はこの発明の実施の形態2による電子装置の構成を示すブロック図である。ここでは、メモリバスIF160内にデータバッファ161がある場合に起こる上記問題の対策についての構成を示す。命令訂正回路170はメモリバス1F160と命令プリフェッチ部110の間に配置される。命令訂正回路170の動作は実施の形態1で述べたと同様である。
【0018】
この実施の形態2の構成によれば、命令訂正回路170を、CPUコア100内のメモリバスIF160と命令プリフェッチ部110の間に配置したので、CPUコア100の動作速度を低下させずに、またCPUコア100の外部メモリから命令バッファまでのパスに新たなハードウェアを挿入することなく、ROMデータの訂正を実現でき、加えて、命令デコード部120の遅延問題も解消する効果が得られる。
【0019】
実施の形態3.
実施の形態1および実施の形態2の構成により、マスクROM中の命令の訂正は可能となる。しかし、ソフトウェアで使用する定数データのようなマスクROM中のデータについては、命令プリフェッチステージでフェッチされないため、これらの構成ではデータの訂正は不可能である。この実施の形態3では、データの訂正も可能にする構成について述べる。
図5はこの発明の実施の形態3による電子装置の構成を示すブロック図で、図1の回路において、メモリアクセスステージの後段にデータ訂正回路180を配置しており、他の部分の構成は、図1と同様である。データ訂正回路180の詳細構成については図6に示す。
【0020】
図6において、訂正アドレス部181、訂正データ部185および訂正許可部182のブロックは、CPUから書き換え可能な記憶素子である。訂正アドレス部181には、訂正が必要なマスクROM400中のアドレスが格納される。訂正データ部185には、訂正後のデータが格納される。また訂正許可部182には、訂正が必要なとき“1”、不要なとき“0”がセットされる。比較回路(COMP)183は、データアドレスと訂正アドレスを比較し、一致を検出する。セレクタ(SEL)186は、「比較結果が一致」かつ「訂正許可が“1”」であれば訂正データを出力し、「不一致」または「訂正許可が“0”」であればデータバッファ141の値を出力する。
データ訂正回路180を用いることで、訂正アドレスに一致した場合、マスクROM400からリードデータの信号線を通じてデータバッファ141に読み込まれたデータの代わりに、訂正データがレジスタライトバック部150、あるいはデータ処理部130に転送される。
【0021】
図7は実施の形態3に係るマスクROMデータの訂正を行うソフトウェアプログラムのフローチャートである。
命令訂正のためのフロー(ステップST1〜8)に続いて、書き換え可能デバイス20からデータ訂正の要否の情報をリードする(ステップST9)。訂正が不要であれば、メインの処理に飛ぶ。訂正が必要な場合には書き換え可能デバイス20から訂正アドレスと訂正データの情報をリードする(ステップST11)。次にステップST12にて、データ訂正回路180の訂正アドレス部181と訂正データ部185の記憶素子ヘステップST11でリードした値を設定し、訂正許可部182へ“1”をセットする。以上のソフトウェアプログラムのフローを追加することにより、データ訂正が可能になる。
【0022】
以上のように実施の形態3によれば、電子装置10の初期化時にマスクROM400の記憶内容に係る訂正アドレス、訂正データおよび訂正許可を書き込み保持する記憶素子と、CPUコア100のデータ処理部130から出力されるデータアドレスと記憶素子に保持された訂正アドレスとを比較する比較回路183と、この比較回路183の比較結果に基づいてマスクROM400からリードされたデータと記憶素子に保持された訂正データのいずれかを選択して出力するセレクタ186とを有するデータ訂正回路180を、CPUコア100内のメモリアクセス部140とレジスタライトバック部150の間に配置したので、CPUコア100の動作速度を低下させず、マスクROM400の出力からメモリバスIF160に至るパスに、新たなハードウェアを挿入することなく、ROMデータの訂正機能が実現できる効果が得られる。
【0023】
実施の形態4.
実施の形態2の冒頭でも説明したように、メモリバスIF160の構成によっては、データバス11経由のリードデータが、メモリバスIF160内のデータバッファにより、サンプルされるケースがある。この構成の場合、メモリバス1F160内のデータバッファからメモリアクセス部140のデータバッファ141ヘのパスは、動作速度を低下させる要因のパスとはならない。しかし、実施の形態3の構成では、データ訂正回路180のセレクタ186を挿入した影響で、レジスタライトバック部150およびデータ処理部130の遅延が長くなるという問題がある。
【0024】
図8はこの発明の実施の形態4による電子装置の構成を示すブロック図で、メモリバスIF160内にデータバッファ161がある場合を考慮した構成を示す。ここでは、図5の場合と異なり、データ訂正回路180はメモリバスIF160とメモリアクセス部140の間に配置される。データ訂正回路180の動作は、実施の形態3と同様である。
【0025】
以上のように、実施の形態4によれば、データ訂正回路180を、CPUコア100内のメモリバスIF160とメモリアクセス部140の間に配置したので、CPUコア100の動作速度を低下させず、マスクROM400の出力からメモリバスIF160に至るパスに、新たなハードウェアを挿入することなく、ROMデータの訂正機能が実現でき、加えて、レジスタライトバック部150、データ処理部130の遅延問題を解消する効果が得られる。
【0026】
実施の形態5.
図9はこの発明の実施の形態5による電子装置の構成を示すブロック図である。図において、図1の命令訂正回路170の位置に命令訂正回路1700を挿入した配置であり、複数箇所(n箇所)の命令を訂正するための回路を構成する。
命令訂正回路1700は、同じタイプのn個のブロック170 〜170 を備え、各ブロックは訂正許可部1721、訂正アドレス部1711、訂正命令部1751の記憶素子、アドレスとの一致比較回路(COMP)1731、アンドゲート1741のセットを持つ。また、命令訂正回路1700は、各アンドゲート1741の出力が与えられるエンコーダ177、エンコーダ177のセレクタ信号に応じて訂正命令部1751のデータと命令バッファ111の出力を選択するセレクタ(SEL)178を備えている。
【0027】
命令訂正回路1700において、比較回路1731による命令アドレスと訂正アドレスの一致結果はエンコーダ177に送られる。エンコーダ177は、あるブロックにおいて一致があった場合、セレクト信号を生成してセレクタ178に与え、対応する訂正命令部1751からの訂正命令を選択する。また、いずれにも一致しない場合、エンコーダ177は、命令バッファ111の値を選択するためのセレクト信号を生成する。セレクタ178は、エンコーダ177からのセレクト信号に従って選択した命令バッファ111と該当ブロックの訂正命令部1751からの訂正命令の内容を命令デコード部120に送る。
【0028】
以上のように、実施の形態5によれば、実施の形態1の効果に加え、複数箇所の命令の訂正を可能にする効果が得られる。なお、命令訂正回路1700を図4に示される命令訂正回路170の位置に配置してもよく、その場合には実施の形態2の効果も得られる。
【0029】
実施の形態6.
図10はこの発明の実施の形態6による電子装置の構成を示すブロック図である。図において、図5のデータ訂正回路180の位置にデータ訂正回路1800を挿入した配置であり、複数箇所(n箇所)のデータを訂正するための回路を構成する。
データ訂正回路1800は、同じタイプのn個のブロック180 〜180 を備え、各ブロックは訂正アドレス部1811、訂正許可部1821および訂正データ部1851の記憶素子、アドレスとの一致比較回路(COMP)1831、アンドゲート1841のセットを持つ。また、データ訂正回路1800は、各アンドゲート1841の出力が与えられるエンコーダ187、エンコーダ187のセレクタ信号に応じて訂正データ部1851のデータとデータバッファ141の出力を選択するセレクタ(SEL)188を備えている。
【0030】
データ訂正回路1800において、比較回路1831によるデータアドレスと訂正アドレスとの一致結果はエンコーダ187に送られる。エンコーダ187は、あるブロックにおいて一致があった場合、セレクト信号を生成してセレクタ188に与え、対応する訂正データ部1851の訂正データを選択する。また、いずれにも一致しない場合、エンコーダ187は、データバッファ141の値を選択するためのセレクト信号を生成する。セレクタ188は、エンコーダ187からのセレクト信号に従って選択したデータバッファ141と該当ブロックの訂正データ部1751からの訂正データの内容をレジスタライトバック部150、あるいはデータ処理部130に送る。
【0031】
以上のように、実施の形態6によれば、実施の形態3の効果に加え、複数箇所のデータの訂正を可能にする効果が得られる。なお、データ訂正回路1800を図8に示される命令訂正回路180の位置に配置してもよく、その場合には実施の形態4の効果も得られる。
【0032】
実施の形態7.
実施の形態1乃至6の方法、特に複数箇所の訂正を可能にする実施の形態5および6の方法では、訂正アドレス、訂正命令、訂正データを蓄える記憶素子として大規模な回路を必要とする。例えば、CPUの自然な命令長が32ビット、扱えるアドレス範囲が32ビット、メモリバスのデータ幅が32ビットの場合を考える。この場合、実施の形態5では、命令訂正回路1700のn個のブロック170〜170に必要な記憶素子は、訂正許可部1721の1ビット分の記憶素子も含めると、(32+32+1)×nビットの記憶素子が必要である。同様に、実施の形態6のデータ訂正回路1800においても、同数の記憶素子が必要となる。
この実施の形態7では、上述のように要求される記憶素子のビット数を削減する方式について述べる。
【0033】
図11はこの発明の実施の形態7に係る訂正アドレス部の記憶素子の削減方法を示す説明図で、図11(a)はアドレスマッピングを示し、図11(b)は訂正アドレスのブロックを示す。
ここでは、マスクROMの訂正が目的なので、訂正アドレスとしては、マスクROMに割り当てられているアドレス空間が指定可能であれば良い。例えば、マスクROMの容量が64Kバイトであり、CPUコアのアドレス空間(32ビットで表される4GBの空間)の0x00000000〜0x0000FFFFのアドレス空間にマッピングされている場合を考える。この場合、アドレスの上位16ビットは、常に0に固定可能である。したがって、図11に示すように、上位16ビットを0に固定することで、必要とされる記憶素子を削減できる。
【0034】
図12はこの発明の実施の形態7に係る訂正命令の記憶素子の削減方法を示す説明図で、図12(a)はジャンプ命令のビット構成を示し、図12(b)は訂正命令のブロックを示す。
図12は、訂正命令に必要な記憶索子のヒット数を削減する例である。マスクROM中のソフトウェアの改訂では、1命令だけの置換で改訂できる可能性は小さい。したがって、多くの場合、SRAM300に追加命令を配置し、訂正命令としては、SRAM300へのジャンプ命令を使用する。また、1命令だけを置換する場合においても、一度、SRAM300ヘジャンプしてから、訂正命令を実行させることも可能である。そこで、訂正命令として実行される命令は、ジャンプ命令に限定しても、ソフトウェア改訂の目的は達成できる。
【0035】
通常のCPUコアでは、ジャンプ命令のビット構成は、図12(a)のような構成となる。ジャンプ命令を表すコード部は、ジャンプ先のアドレスに関わらず、定数となる。訂正命令の記憶素子において、このジャンプ命令コードの定数コード部を固定しておくことで、必要な記憶素子のビット数を削減できる。
【0036】
実施の形態8.
図13はこの発明の実施の形態8による電子装置の構成を示すブロック図である。ここでは、マスクROM400とSRAM300が、電子装置10を構成するLSIの外部に配置した状態について示す。実施の形態1乃至7で述べた方法は、マスクROM400やSRAM300が、単一のLSIの内部にない場合にも適用可能である。
【0037】
【発明の効果】
以上のように、この発明によれば、所定のデータを予め固定的に記録した固定記憶媒体からデータバスを介し読み出したデータに基づいてパイプライン処理を行うCPUコアを備えた電子装置において、当該電子装置の初期化時に固定記憶媒体の記憶内容に係る訂正アドレス、訂正命令および訂正許可を書き込み保持する記憶素子と、CPUコアの命令プリフェッチステージから出力される命令アドレスと記憶素子に保持された訂正アドレスとを比較する比較器と、この比較器の比較結果に基づいて固定記憶媒体からリードされた命令コードと記憶素子に保持された訂正命令のいずれかを選択して出力するセレクタとを有する命令訂正回路をCPUコア内部に備えるように構成したので、CPUコアの動作速度を低下させずに、またCPUコアの外部メモリから命令バッファまでのパスに新たなハードウェアを挿入することなく、ROMデータの訂正を実現できる効果がある。
【0038】
この発明によれば、所定のデータを予め固定的に記録した固定記憶媒体からデータバスを介し読み出したデータに基づいてパイプライン処理を行うCPUコアを備えた電子装置において、当該電子装置の初期化時に固定記憶媒体の記憶内容に係る訂正アドレス、訂正データおよび訂正許可を書き込み保持する記憶素子と、CPUコアのデータ処理ステージから出力されるデータアドレスと記憶素子に保持された訂正アドレスとを比較する比較器と、この比較器の比較結果に基づいて固定記憶媒体からリードされたデータと記憶素子に保持された訂正データのいずれかを選択して出力するセレクタとを有するデータ訂正回路をCPUコア内部に備えるように構成したので、CPUコアの動作速度を低下させず、マスクROMの出力からメモリバスインタフェースに至るパスに、新たなハードウェアを挿入することなく、ROMデータの訂正機能を実現できる効果がある。
【図面の簡単な説明】
【図1】 この発明の実施の形態1による電子装置の構成を示すブロック図である。
【図2】 同実施の形態1に係る命令訂正回路の内部構成を示すブロック図である。
【図3】 同実施の形態1に係るマスクROMの訂正を行うソフトウェアプログラムのフローチャートである。
【図4】 同実施の形態2による電子装置の構成を示すブロック図である。
【図5】 同実施の形態3による電子装置の構成を示すブロック図である。
【図6】 同実施の形態3に係るデータ訂正回路の詳細構成を示すブロック図である。
【図7】 同実施の形態3に係るマスクROMデータの訂正を行うソフトウェアプログラムのフローチャートである。
【図8】 同実施の形態4による電子装置の構成を示すブロック図である。
【図9】 同実施の形態5による電子装置の構成を示すブロック図である。
【図10】 同実施の形態6による電子装置の構成を示すブロック図である。
【図11】 同実施の形態7に係る訂正アドレスの記憶素子の削減方法を示す説明図である。
【図12】 同実施の形態7に係る訂正命令の記憶素子の削減方法を示す説明図である。
【図13】 同実施の形態8による電子装置の構成を示すブロック図である。
【図14】 従来の訂正回路の構成を示すブロック図である。
【符号の説明】
10 電子装置、11 データバス、12 アドレスバス、20 書き換え可能デバイス、100 パイプライン型CPUコア、110 命令プリフェッチ部、111 命令バッファ、120 命令デコード部、130 データ処理部、140 メモリアクセス部、141 データバッファ、150 レジスタライトバック部、160 メモリバスIF、161 データバッファ、170,1700命令訂正回路、170〜170,180〜180 ブロック、171,1711,181,1811 訂正アドレス部、172,1721,182,1821 訂正許可部、173,1731,183、1831 比較回路(COMP)、174,1741,184、1841 アンドゲート、175,1751 訂正命令部、176,178,186,188 セレクタ(SEL)、177,187 エンコーダ、180,1800 データ訂正回路、185,1851 訂正データ部、200 外部IOデバイス、300 SRAM、400 マスクROM。

Claims (2)

  1. 命令を含む所定のデータを予め固定的に記録した固定記憶媒体、データバスおよびアドレスバスを含み前記固定記憶媒体に接続されるメモリバス、および前記メモリバスにメモリバスインタフェースを介して接続されるCPUとを有する電子装置であって、
    前記CPUは前記固定記憶媒体からデータバスを介し読み出した命令に基づいてパイプライン処理を行
    当該電子装置の初期化時に前記固定記憶媒体の記憶内容の一部を訂正するための訂正アドレス、訂正命令および訂正許可を書き込み保持する記憶素子と、
    前記CPUの令フェッチステージから出力される命令アドレスと前記記憶素子に保持された訂正アドレスとを比較する比較器と、
    この比較器の比較結果に基づいて前記固定記憶媒体からリードされた命令コードと前記記憶素子に保持された訂正命令のいずれかを選択して出力するセレクタとを有する命令訂正回路を前記CPU内部に備え
    前記記憶素子、前記比較器、前記命令訂正回路は前記命令フェッチステージと命令デコードステージ間に配置され、前記命令フェッチステージの出力する前記命令アドレスは前記比較器と共に前記CPU外部に接続される前記固定記憶媒体に供給されるよう構成されたことを特徴とする電子装置。
  2. 前記電子装置の初期化時に前記固定記憶媒体の記憶内容の前記記憶素子に格納された訂正アドレスとは別の一部を訂正するための第2訂正アドレス、訂正データおよび訂正許可を書き込み保持する第2記憶素子と、
    前記CPUのデータ処理ステージから出力されるデータアドレスと前記第2記憶素子に保持された第2訂正アドレスとを比較する第2比較器と、
    この比較器の比較結果に基づいて前記固定記憶媒体からリードされたデータと前記記憶素子に保持された訂正データのいずれかを選択して出力する第2セレクタとを有するデータ訂正回路を前記CPU内のメモリアクセスステージとレジスタライトバックステージとの間に備えたことを特徴とする請求項1記載の電子装置。
JP2002211470A 2002-07-19 2002-07-19 電子装置 Expired - Fee Related JP4194310B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002211470A JP4194310B2 (ja) 2002-07-19 2002-07-19 電子装置
US10/330,123 US6931476B2 (en) 2002-07-19 2002-12-30 Electronic apparatus with ROM data correction function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002211470A JP4194310B2 (ja) 2002-07-19 2002-07-19 電子装置

Publications (2)

Publication Number Publication Date
JP2004054618A JP2004054618A (ja) 2004-02-19
JP4194310B2 true JP4194310B2 (ja) 2008-12-10

Family

ID=30437592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002211470A Expired - Fee Related JP4194310B2 (ja) 2002-07-19 2002-07-19 電子装置

Country Status (2)

Country Link
US (1) US6931476B2 (ja)
JP (1) JP4194310B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI469052B (zh) * 2008-12-12 2015-01-11 Genesys Logic Inc 具有複數修正儲存單元的程式更新系統及其方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5262342A (en) * 1988-11-04 1993-11-16 Mitsubishi Denki Kabushiki Kaisha Method of making a semiconductor memory device having error checking/correcting functions
JP2835107B2 (ja) * 1989-11-16 1998-12-14 沖電気工業株式会社 不揮発性半導体記憶装置のエラー訂正回路及びそのエラー訂正方法
JPH04346127A (ja) 1991-05-23 1992-12-02 Sony Corp 電子装置
JPH08166877A (ja) * 1994-12-13 1996-06-25 Olympus Optical Co Ltd 修正プログラムの実行可能なワンチップマイクロコンピュータ及びrom修正可能なマイクロコンピュータ
JP2000347862A (ja) * 1999-06-08 2000-12-15 Nec Corp 命令入換え回路
KR100410557B1 (ko) * 2001-11-19 2003-12-18 주식회사 하이닉스반도체 프로그램 수정 가능한 마이크로컨트롤러 및 구동방법

Also Published As

Publication number Publication date
US6931476B2 (en) 2005-08-16
US20040015639A1 (en) 2004-01-22
JP2004054618A (ja) 2004-02-19

Similar Documents

Publication Publication Date Title
US7055000B1 (en) Disk drive employing enhanced instruction cache management to facilitate non-sequential immediate operands
JP4225851B2 (ja) データ処理装置用トレース要素生成システム
US11183225B2 (en) Memories and methods for performing vector atomic memory operations with mask control and variable data length and data unit size
JP2002244881A (ja) 順序外データのトレーシング
US6848044B2 (en) Circuits and methods for recovering link stack data upon branch instruction mis-speculation
US7640398B2 (en) High-speed interface for high-density flash with two levels of pipelined cache
US20020133689A1 (en) Method and apparatus for executing coprocessor instructions
JP2008165449A (ja) エラー訂正コード生成方法、およびメモリ制御装置
TW202246973A (zh) 硬體處理器及處理器
JP2008090419A (ja) 集積回路装置
JPH1083305A (ja) 自己整合スタック・ポインタを有するデータ処理システムおよびその方法
US6851033B2 (en) Memory access prediction in a data processing apparatus
US6507928B1 (en) Processor cache system with parity protection and method of operation
US6982900B2 (en) Semiconductor integrated circuit device
US20030084232A1 (en) Device and method capable of changing codes of micro-controller
JP4194310B2 (ja) 電子装置
US11126435B2 (en) Branch destination prediction based on accord or discord of previous load data from a data cache line corresponding to a load instruction and present load data
JP5233078B2 (ja) プロセッサ及びその処理方法
TWI793739B (zh) 推測分支模式更新方法和微處理器
US6874117B2 (en) Memory control device and method
JP2006331391A (ja) データ処理装置及びデータ処理方法
JP2005182538A (ja) データ転送装置
US20200364052A1 (en) Branch penalty reduction using memory circuit
JP2010140167A (ja) 半導体集積回路
JP2005537580A (ja) スタックタイプのスナップショットバッファがネスト化されたインタラプトを処理すること

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050714

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060123

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20071101

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080624

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080808

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080916

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080922

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111003

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111003

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111003

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121003

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131003

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees