(57)【要約】【課題】使用可能な割り込み本数の減少やＣＰＵの動作速度の低下をもたらすことなく製造後のＲＯＭデータの訂正を行う。【解決手段】電子装置の初期化時に固定記憶媒体の記憶内容に係る訂正アドレス、訂正命令および訂正許可を書き込み保持する記憶素子と、ＣＰＵコアの命令プリフェッチステージから出力される命令アドレスと記憶素子に保持された訂正アドレスとを比較する比較器と、この比較器の比較結果に基づいて固定記憶媒体からリードされた命令コードと記憶素子に保持された訂正命令のいずれかを選択して出力するセレクタとを有する命令訂正回路をＣＰＵコア内部に備える。【選択図】　　　　図１
2004054618.tif 000002
【特許請求の範囲】
【請求項１】
所定のデータを予め固定的に記録した固定記憶媒体からデータバスを介し読み出したデータに基づいてパイプライン処理を行うＣＰＵコアを備えた電子装置において、
当該電子装置の初期化時に前記固定記憶媒体の記憶内容に係る訂正アドレス、訂正命令および訂正許可を書き込み保持する記憶素子と、
前記ＣＰＵコアの命令プリフェッチステージから出力される命令アドレスと前記記憶素子に保持された訂正アドレスとを比較する比較器と、
この比較器の比較結果に基づいて前記固定記憶媒体からリードされた命令コードと前記記憶素子に保持された訂正命令のいずれかを選択して出力するセレクタとを有する命令訂正回路を前記ＣＰＵコア内部に備えたことを特徴とする電子装置。
【請求項２】
命令訂正回路が、ＣＰＵコア内の命令プリフェッチステージと命令デコードステージの間あるいはメモリバスインタフェースと命令プリフェッチステージの間に配置されたことを特徴とする請求項１記載の電子装置。
【請求項３】
所定のデータを予め固定的に記録した固定記憶媒体からデータバスを介し読み出したデータに基づいてパイプライン処理を行うＣＰＵコアを備えた電子装置において、
当該電子装置の初期化時に前記固定記憶媒体の記憶内容に係る訂正アドレス、訂正データおよび訂正許可を書き込み保持する記憶素子と、
前記ＣＰＵコアのデータ処理ステージから出力されるデータアドレスと前記記憶素子に保持された訂正アドレスとを比較する比較器と、
この比較器の比較結果に基づいて前記固定記憶媒体からリードされたデータと前記記憶素子に保持された訂正データのいずれかを選択して出力するセレクタとを有するデータ訂正回路を前記ＣＰＵコア内部に備えたことを特徴とする電子装置。
【請求項４】
データ訂正回路が、ＣＰＵコア内のメモリアクセスステージとレジスタライトバックステージの間あるいはメモリバスインタフェースとメモリアクセスステージの間に配置されたことを特徴とする請求項３記載の電子装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はソフトウェアプログラムをマスクＲＯＭとして実現した回路において、マスクＲＯＭ中の一部のプログラム内容およびデータ内容を訂正する電子装置に関するものである。
【０００２】
【従来の技術】
ＣＰＵ（Ｃｅｎｔｒａｌ　ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ、以下ＣＰＵとする）を用いてソフトウェア制御を行う電子装置には、ソフトウェアプログラムを格納するための固定記憶媒体が必須である。そして、大量生産する電子装置では、コスト削減のため、固定記憶媒体としてマスクＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）を用いることが多い。製造後に、マスクＲＯＭに格納したソフトウェアに不具合が判明した場合、マスクＲＯＭを再製造する必要がある。この再製造を避けるために、使用時にマスクＲＯＭの一部のデータを訂正する方法が考えられている。
【０００３】
例えば、特開平４−３４６１２７号公報「電子装置」には、マスクＲＯＭのデータの書き換え方法が述べられている。この従来の方法としては、次のような２種類が考えられている。
（１）書き換えが必要なアドレスヘのアクセスがあった場合、マスクＲＯＭからデータバスヘのデータ出力を止め、訂正すべきデータをデータバス上に出力する。
（２）書き換えが必要なアドレスへのアクセスがあった場合に、割り込みを発生させる。割り込み処理ソフトウェアはＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）上に配置し、割り込み処理ソフトウェアの中で、不具合ソフトウェアの回避を行う。
【０００４】
最近のＣＰＵとしては、処理速度を向上させるために、動作クロック周波数を向上させ、より少ないクロック数で複数の処理行程（ステージ）でデータを流れ作業のようにして実行するパイプライン型ＣＰＵコアを用いることが多くなった。
図１４は従来のパイプライン型ＣＰＵコアを用いたＲＯＭ訂正回路の構成を示すブロック図で、特開平４−３４６１２７号公報で述べられている（１）の方法をパイプライン型ＣＰＵコアに組み合わせた電子装置を示す。図において、１０はＬＳＩで構成された電子装置、２０は訂正データを格納した書き換え可能デバイスである。１００はパイプライン型ＣＰＵコア、２００は外部ＩＯデバイス、３００はＳＲＡＭ（Ｓｔａｔｉｃ　Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）、４００はマスクＲＯＭ、５００はＲＯＭデータ訂正回路、１１はデータバス、１２はアドレスバスである。
パイプライン型ＣＰＵコア１００内の構成において、１１０は内部に命令バッファ１１１を有する命令プリフェッチ部、１２０は命令デコード部、１３０はデータ処理部である。１４０は内部にデータバッファ１４１を有するメモリアクセス部、１５０はレジスタライトバック部、１６０はメモリバスＩＦ（インタフェース）である。ＲＯＭデータ訂正回路５００において、５１０はセレクタ（ＳＥＬ）、５２０は訂正アドレス部、５３０は訂正データ部である。
【０００５】
この図のパイプライン型ＣＰＵコア１００の配置は、命令プリフェッチ部１１０、命令デコード部１２０、データ処理部１３０、メモリアクセス部１４０およびレジスタライトバック部１５０からなる５段のパイプラインステージを持つ。パイプライン型ＣＰＵコア１００では、１つの命令に対応する処理をパイプラインステージ対応で分割して処理する。非パイプライン型ＣＰＵコアの場合では、全体の処理を１つの大きな組み合わせ回路で実行するため、ＣＰＵコアの動作周波数の向上が難しかったが、このようなパイプライン型ＣＰＵコア１００を用いることで、個々のパイプラインステージの処理を小さくでき、パイプライン型ＣＰＵコアの動作周波数の向上が容易となる。しかし、パイプライン型ＣＰＵコアを用いる電子装置ではＣＰＵコア以外の部分で動作周波数向上のボトルネックが発生している。それは、図１４で言えば、マスクＲＯＭ４００の出力からデータバス１１を経由してメモリバスＩＦ１６０に至るパスであることが一般的である。
【０００６】
【発明が解決しようとする課題】
従来のマスクＲＯＭ訂正回路は以上のように構成されているので、図１４から分るように、マスクＲＯＭ４００のデータ出力からメモリバスＩＦ１６０に至るパス上に、ＲＯＭデータ訂正回路５００中のセレクタ５１０が挿入されている。このパスは、動作周波数向上時のボトルネックのパスとなる。したがって、（１）の手法には、ＣＰＵの動作速度を低下させるという問題があった。また、パイプライン型ＣＰＵコア１００では、データ処理ステージの負荷を軽くするために、使用可能な割り込み本数を少なく抑えている。したがって、（２）の方法では、使用可能な割り込み本数が不足するという問題があった。
【０００７】
この発明は上記のような問題点を解消するためになされたもので、マスクＲＯＭデータ製造後にＲＯＭデータの訂正手段を実現するとともに、使用可能な割り込み本数の減少やＣＰＵの動作速度の低下をもたらすことなくＲＯＭデータの訂正を行うことが可能な電子装置を得ることを目的とする。
【０００８】
【課題を解決するための手段】
この発明に係る電子装置は、所定のデータを予め固定的に記録した固定記憶媒体からデータバスを介し読み出したデータに基づいてパイプライン処理を行うＣＰＵコアを備えた電子装置において、当該電子装置の初期化時に固定記憶媒体の記憶内容に係る訂正アドレス、訂正命令および訂正許可を書き込み保持する記憶素子と、ＣＰＵコアの命令プリフェッチステージから出力される命令アドレスと記憶素子に保持された訂正アドレスとを比較する比較器と、この比較器の比較結果に基づいて固定記憶媒体からリードされた命令コードと記憶素子に保持された訂正命令のいずれかを選択して出力するセレクタとを有する命令訂正回路をＣＰＵコア内部に備えたものである。
【０００９】
この発明に係る電子装置は、命令訂正回路が、ＣＰＵコア内の命令プリフェッチステージと命令デコードステージの間あるいはメモリバスインタフェースと命令プリフェッチステージの間に配置されたものである。
【００１０】
この発明に係る電子装置は、所定のデータを予め固定的に記録した固定記憶媒体からデータバスを介し読み出したデータに基づいてパイプライン処理を行うＣＰＵコアを備えた電子装置において、当該電子装置の初期化時に固定記憶媒体の記憶内容に係る訂正アドレス、訂正データおよび訂正許可を書き込み保持する記憶素子と、ＣＰＵコアのデータ処理ステージから出力されるデータアドレスと記憶素子に保持された訂正アドレスとを比較する比較器と、この比較器の比較結果に基づいて固定記憶媒体からリードされたデータと記憶素子に保持された訂正データのいずれかを選択して出力するセレクタとを有するデータ訂正回路をＣＰＵコア内部に備えたものである。
【００１１】
この発明に係る電子装置は、データ訂正回路が、ＣＰＵコア内のメモリアクセスステージとレジスタライトバックステージの間あるいはメモリバスインタフェースとメモリアクセスステージの間に配置されたものである。
【００１２】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態１．
図１はこの発明の実施の形態１による電子装置の構成を示すブロック図である。
図において、従来技術で示した図１４と同じ部分には同一符号を付して示す。図１４と異なるところは、マスクＲＯＭ（固定記憶媒体）４００の周辺にあったＲＯＭデータ訂正回路５００を削除し、パイプライン型ＣＰＵコア１００の内部の命令プリフェッチ部１１０と命令デコード部１２０のステージの間に命令訂正回路１７０を配置したことである。すなわち、ここではパイプライン型ＣＰＵコア１００の内部に、命令訂正機能を組み込んだ構成を示す。命令訂正回路１７０の詳細構成については図２に示す。図２において、１７１は訂正アドレス部、１７２は訂正許可部、１７３は比較回路（ＣＯＭＰ）、１７４はアンドゲート、１７５は訂正命令部、１７６はセレクタ（ＳＥＬ）である。
【００１３】
訂正アドレス部１７１、訂正命令部１７５および訂正許可部１７２のブロックは、ＣＰＵにより書き換え可能な記憶素子として実現される。訂正アドレス部１７１には、訂正の必要なマスクＲＯＭ４００のアドレスが格納される。訂正命令部１７５には、訂正後の命令データが格納される。訂正許可部１７２には、訂正が必要なとき“１”、不要なとき“０”がセットされる。比較回路１７３は、命令プリフェッチ部１１０から出力される命令アドレスと訂正アドレス部１７１の値を比較する回路である。セレクタ１７６は、「比較結果が一致」かつ「訂正許可が“１”」であれば訂正命令部１７５のデータを選択し、「比較結果が不一致」または「訂正許可が“０”」であれば、命令バッファ１１１のデータを選択して、命令デコード部１２０のステージに出力する回路である。図２の回路構成を用いることで、命令アドレスが訂正アドレス部１７１に一致した場合、マスクＲＯＭ４００から命令データの信号線を通じて命令バッファ１１１に読み込まれた命令データの代わりに、訂正命令部１７５の命令データが実行されることになる。
【００１４】
図３はマスクＲＯＭ４００の訂正を行うソフトウェアプログラムのフローを示すフローチャートである。
まず、外部ＩＯデバイス２００の初期化を行い、外部ＩＯデバイスに接続してある書き換え可能デバイス２０ヘのアクセスを可能にする。また、命令訂正回路中の訂正許可部を“０”にセットする（ステップＳＴ１）。書き換え可能デバイス２０ヘアクセスし、命令訂正の要否の情報を得る（ステップＳＴ２）。命令訂正が必要であれば、訂正アドレス、訂正命令の情報を、書き換え可能デバイス２０からリードする（ステップＳＴ４）。一方、ステップＳＴ３で、命令訂正が不要であればメインの処理に飛ぶ。ステップＳＴ４でリードした情報を、命令訂正回路１７０中の訂正アドレス部１７１、訂正命令部１７５の記憶素子へ設定し、また訂正許可部１７２を“１”に設定する（ステップＳＴ５）。書き換え可能デバイス２０から、ＳＲＡＭ３００へのデータ転送が必要なバイト数の情報をリードする（ステップＳＴ６）。マスクＲＯＭ４００中のソフトウェアの訂正が１命令の置換では不可能で、命令追加が必要な場合、追加命令をＳＲＡＭ３００中に格納して対応する。この場合、追加命令のサイズに応じたバイト数が読み出される。なお、追加命令がある場合には、訂正命令部１７５に入る命令は、追加命令が格納されたＳＲＡＭ３００の先頭アドレスへのジャンプ命令となる。ステップＳＴ８では、追加命令のバイト数に応じて、書き換え可能デバイス２０からデータが読み出され、ＳＲＡＭ３００に転送される。
【００１５】
以上が、マスクＲＯＭ４００の命令の訂正を可能にするためのソフトウェアフローである。このソフトウェアプログラム自体も、マスクＲＯＭ４００に配置され、電子装置１０のリセット直後に実行される。マスクＲＯＭ４００中のこのソフトウェア部分については訂正不能であるが、メイン処理に比べれば、小さなソフトウェアであり訂正が必要になる可能性は極めて小さい。
【００１６】
以上のように、この実施の形態１によれば、電子装置１０の初期化時にマスクＲＯＭ４００の記憶内容に係る訂正アドレス、訂正命令および訂正許可を書き込み保持する記憶素子と、ＣＰＵコア１００の命令プリフェッチ部１１０から出力される命令アドレスと記憶素子に保持された訂正アドレスとを比較する比較器１７３と、この比較回路１７３の比較結果に基づいてマスクＲＯＭ４００からリードされた命令コードと記憶素子に保持された訂正命令のいずれかを選択して出力するセレクタとを有する命令訂正回路１７０を、ＣＰＵコア１００内の命令プリフェッチ１１０と命令デコード部１２０の間に配置したので、ＣＰＵコア１００の動作速度を低下させずに、またＣＰＵコア１００の外部メモリから命令バッファまでのパスに新たなハードウェアを挿入することなく、ＲＯＭデータの訂正を実現できる効果が得られる。
【００１７】
実施の形態２．
図１の構成では、命令訂正回路１７０のセレクタ１７６の影響で、デコーダステージの遅延が長くなるという問題がある。図１において、メモリバスＩＦ１６０の構成によっては、データバス経由のリードデータが、メモリバスＩＦ１６０内のデータバッファにより、サンプルされるケースがある。そのような構成の場合、データバッファから命令バッファ１１１の間のパスは、単純な組み合わせ回路で実現されており、回路の追加を行っても動作速度を低下させる要因にならない。
図４はこの発明の実施の形態２による電子装置の構成を示すブロック図である。ここでは、メモリバスＩＦ１６０内にデータバッファ１６１がある場合に起こる上記問題の対策についての構成を示す。命令訂正回路１７０はメモリバス１Ｆ１６０と命令プリフェッチ部１１０の間に配置される。命令訂正回路１７０の動作は実施の形態１で述べたと同様である。
【００１８】
この実施の形態２の構成によれば、命令訂正回路１７０を、ＣＰＵコア１００内のメモリバスＩＦ１６０と命令プリフェッチ部１１０の間に配置したので、ＣＰＵコア１００の動作速度を低下させずに、またＣＰＵコア１００の外部メモリから命令バッファまでのパスに新たなハードウェアを挿入することなく、ＲＯＭデータの訂正を実現でき、加えて、命令デコード部１２０の遅延問題も解消する効果が得られる。
【００１９】
実施の形態３．
実施の形態１および実施の形態２の構成により、マスクＲＯＭ中の命令の訂正は可能となる。しかし、ソフトウェアで使用する定数データのようなマスクＲＯＭ中のデータについては、命令プリフェッチステージでフェッチされないため、これらの構成ではデータの訂正は不可能である。この実施の形態３では、データの訂正も可能にする構成について述べる。
図５はこの発明の実施の形態３による電子装置の構成を示すブロック図で、図１の回路において、メモリアクセスステージの後段にデータ訂正回路１８０を配置しており、他の部分の構成は、図１と同様である。データ訂正回路１８０の詳細構成については図６に示す。
【００２０】
図６において、訂正アドレス部１８１、訂正データ部１８５および訂正許可部１８２のブロックは、ＣＰＵから書き換え可能な記憶素子である。訂正アドレス部１８１には、訂正が必要なマスクＲＯＭ４００中のアドレスが格納される。訂正データ部１８５には、訂正後のデータが格納される。また訂正許可部１８２には、訂正が必要なとき“１”、不要なとき“０”がセットされる。比較回路（ＣＯＭＰ）１８３は、データアドレスと訂正アドレスを比較し、一致を検出する。セレクタ（ＳＥＬ）１８６は、「比較結果が一致」かつ「訂正許可が“１”」であれば訂正データを出力し、「不一致」または「訂正許可が“０”」であればデータバッファ１４１の値を出力する。
データ訂正回路１８０を用いることで、訂正アドレスに一致した場合、マスクＲＯＭ４００からリードデータの信号線を通じてデータバッファ１４１に読み込まれたデータの代わりに、訂正データがレジスタライトバック部１５０、あるいはデータ処理部１３０に転送される。
【００２１】
図７は実施の形態３に係るマスクＲＯＭデータの訂正を行うソフトウェアプログラムのフローチャートである。
命令訂正のためのフロー（ステップＳＴ１〜８）に続いて、書き換え可能デバイス２０からデータ訂正の要否の情報をリードする（ステップＳＴ９）。訂正が不要であれば、メインの処理に飛ぶ。訂正が必要な場合には書き換え可能デバイス２０から訂正アドレスと訂正データの情報をリードする（ステップＳＴ１１）。次にステップＳＴ１２にて、データ訂正回路１８０の訂正アドレス部１８１と訂正データ部１８５の記憶素子ヘステップＳＴ１１でリードした値を設定し、訂正許可部１８２へ“１”をセットする。以上のソフトウェアプログラムのフローを追加することにより、データ訂正が可能になる。
【００２２】
以上のように実施の形態３によれば、電子装置１０の初期化時にマスクＲＯＭ４００の記憶内容に係る訂正アドレス、訂正データおよび訂正許可を書き込み保持する記憶素子と、ＣＰＵコア１００のデータ処理部１３０から出力されるデータアドレスと記憶素子に保持された訂正アドレスとを比較する比較回路１８３と、この比較回路１８３の比較結果に基づいてマスクＲＯＭ４００からリードされたデータと記憶素子に保持された訂正データのいずれかを選択して出力するセレクタ１８６とを有するデータ訂正回路１８０を、ＣＰＵコア１００内のメモリアクセス部１４０とレジスタライトバック部１５０の間に配置したので、ＣＰＵコア１００の動作速度を低下させず、マスクＲＯＭ４００の出力からメモリバスＩＦ１６０に至るパスに、新たなハードウェアを挿入することなく、ＲＯＭデータの訂正機能が実現できる効果が得られる。
【００２３】
実施の形態４．
実施の形態２の冒頭でも説明したように、メモリバスＩＦ１６０の構成によっては、データバス１１経由のリードデータが、メモリバスＩＦ１６０内のデータバッファにより、サンプルされるケースがある。この構成の場合、メモリバス１Ｆ１６０内のデータバッファからメモリアクセス部１４０のデータバッファ１４１ヘのパスは、動作速度を低下させる要因のパスとはならない。しかし、実施の形態３の構成では、データ訂正回路１８０のセレクタ１８６を挿入した影響で、レジスタライトバック部１５０およびデータ処理部１３０の遅延が長くなるという問題がある。
【００２４】
図８はこの発明の実施の形態４による電子装置の構成を示すブロック図で、メモリバスＩＦ１６０内にデータバッファ１６１がある場合を考慮した構成を示す。ここでは、図５の場合と異なり、データ訂正回路１８０はメモリバスＩＦ１６０とメモリアクセス部１４０の間に配置される。データ訂正回路１８０の動作は、実施の形態３と同様である。
【００２５】
以上のように、実施の形態４によれば、データ訂正回路１８０を、ＣＰＵコア１００内のメモリバスＩＦ１６０とメモリアクセス部１４０の間に配置したので、ＣＰＵコア１００の動作速度を低下させず、マスクＲＯＭ４００の出力からメモリバスＩＦ１６０に至るパスに、新たなハードウェアを挿入することなく、ＲＯＭデータの訂正機能が実現でき、加えて、レジスタライトバック部１５０、データ処理部１３０の遅延問題を解消する効果が得られる。
【００２６】
実施の形態５．
図９はこの発明の実施の形態５による電子装置の構成を示すブロック図である。図において、図１の命令訂正回路１７０の位置に命令訂正回路１７００を挿入した配置であり、複数箇所（ｎ箇所）の命令を訂正するための回路を構成する。命令訂正回路１７００は、同じタイプのｎ個のブロック１７０１　〜１７０ｎ　を備え、各ブロックは訂正許可部１７２１、訂正アドレス部１７１１、訂正命令部１７５１の記憶素子、アドレスとの一致比較回路（ＣＯＭＰ）１７３１、アンドゲート１７４１のセットを持つ。また、命令訂正回路１７００は、各アンドゲート１７４１の出力が与えられるエンコーダ１７７、エンコーダ１７７のセレクタ信号に応じて訂正命令部１７５１のデータと命令バッファ１１１の出力を選択するセレクタ（ＳＥＬ）１７８を備えている。
【００２７】
命令訂正回路１７００において、比較回路１７３１による命令アドレスと訂正アドレスの一致結果はエンコーダ１７７に送られる。エンコーダ１７７は、あるブロックにおいて一致があった場合、セレクト信号を生成してセレクタ１７８に与え、対応する訂正命令部１７５１からの訂正命令を選択する。また、いずれにも一致しない場合、エンコーダ１７７は、命令バッファ１１１の値を選択するためのセレクト信号を生成する。セレクタ１７８は、エンコーダ１７７からのセレクト信号に従って選択した命令バッファ１１１と該当ブロックの訂正命令部１７５１からの訂正命令の内容を命令デコード部１２０に送る。
【００２８】
以上のように、実施の形態５によれば、実施の形態１の効果に加え、複数箇所の命令の訂正を可能にする効果が得られる。なお、命令訂正回路１７００を図４に示される命令訂正回路１７０の位置に配置してもよく、その場合には実施の形態２の効果も得られる。
【００２９】
実施の形態６．
図１０はこの発明の実施の形態６による電子装置の構成を示すブロック図である。図において、図５のデータ訂正回路１８０の位置にデータ訂正回路１８００を挿入した配置であり、複数箇所（ｎ箇所）のデータを訂正するための回路を構成する。
データ訂正回路１８００は、同じタイプのｎ個のブロック１８０１　〜１８０ｎ　を備え、各ブロックは訂正アドレス部１８１１、訂正許可部１８２１および訂正データ部１８５１の記憶素子、アドレスとの一致比較回路（ＣＯＭＰ）１８３１、アンドゲート１８４１のセットを持つ。また、データ訂正回路１８００は、各アンドゲート１８４１の出力が与えられるエンコーダ１８７、エンコーダ１８７のセレクタ信号に応じて訂正データ部１８５１のデータとデータバッファ１４１の出力を選択するセレクタ（ＳＥＬ）１８８を備えている。
【００３０】
データ訂正回路１８００において、比較回路１８３１によるデータアドレスと訂正アドレスとの一致結果はエンコーダ１８７に送られる。エンコーダ１８７は、あるブロックにおいて一致があった場合、セレクト信号を生成してセレクタ１８８に与え、対応する訂正データ部１８５１の訂正データを選択する。また、いずれにも一致しない場合、エンコーダ１８７は、データバッファ１４１の値を選択するためのセレクト信号を生成する。セレクタ１８８は、エンコーダ１８７からのセレクト信号に従って選択したデータバッファ１４１と該当ブロックの訂正データ部１７５１からの訂正データの内容をレジスタライトバック部１５０、あるいはデータ処理部１３０に送る。
【００３１】
以上のように、実施の形態６によれば、実施の形態３の効果に加え、複数箇所のデータの訂正を可能にする効果が得られる。なお、データ訂正回路１８００を図８に示される命令訂正回路１８０の位置に配置してもよく、その場合には実施の形態４の効果も得られる。
【００３２】
実施の形態７．
実施の形態１乃至６の方法、特に複数箇所の訂正を可能にする実施の形態５および６の方法では、訂正アドレス、訂正命令、訂正データを蓄える記憶素子として大規模な回路を必要とする。例えば、ＣＰＵの自然な命令長が３２ビット、扱えるアドレス範囲が３２ビット、メモリバスのデータ幅が３２ビットの場合を考える。この場合、実施の形態５では、命令訂正回路１７００のｎ個のブロック１７０１〜１７０ｎに必要な記憶素子は、訂正許可部１７２１の１ビット分の記憶素子も含めると、（３２＋３２＋１）×ｎビットの記憶素子が必要である。同様に、実施の形態６のデータ訂正回路１８００においても、同数の記憶素子が必要となる。
この実施の形態７では、上述のように要求される記憶素子のビット数を削減する方式について述べる。
【００３３】
図１１はこの発明の実施の形態７に係る訂正アドレス部の記憶素子の削減方法を示す説明図で、図１１（ａ）はアドレスマッピングを示し、図１１（ｂ）は訂正アドレスのブロックを示す。
ここでは、マスクＲＯＭの訂正が目的なので、訂正アドレスとしては、マスクＲＯＭに割り当てられているアドレス空間が指定可能であれば良い。例えば、マスクＲＯＭの容量が６４Ｋバイトであり、ＣＰＵコアのアドレス空間（３２ビットで表される４ＧＢの空間）の０ｘ００００００００〜０ｘ００００ＦＦＦＦのアドレス空間にマッピングされている場合を考える。この場合、アドレスの上位１６ビットは、常に０に固定可能である。したがって、図１１に示すように、上位１６ビットを０に固定することで、必要とされる記憶素子を削減できる。
【００３４】
図１２はこの発明の実施の形態７に係る訂正命令の記憶素子の削減方法を示す説明図で、図１２（ａ）はジャンプ命令のビット構成を示し、図１２（ｂ）は訂正命令のブロックを示す。
図１２は、訂正命令に必要な記憶索子のヒット数を削減する例である。マスクＲＯＭ中のソフトウェアの改訂では、１命令だけの置換で改訂できる可能性は小さい。したがって、多くの場合、ＳＲＡＭ３００に追加命令を配置し、訂正命令としては、ＳＲＡＭ３００へのジャンプ命令を使用する。また、１命令だけを置換する場合においても、一度、ＳＲＡＭ３００ヘジャンプしてから、訂正命令を実行させることも可能である。そこで、訂正命令として実行される命令は、ジャンプ命令に限定しても、ソフトウェア改訂の目的は達成できる。
【００３５】
通常のＣＰＵコアでは、ジャンプ命令のビット構成は、図１２（ａ）のような構成となる。ジャンプ命令を表すコード部は、ジャンプ先のアドレスに関わらず、定数となる。訂正命令の記憶素子において、このジャンプ命令コードの定数コード部を固定しておくことで、必要な記憶素子のビット数を削減できる。
【００３６】
実施の形態８．
図１３はこの発明の実施の形態８による電子装置の構成を示すブロック図である。ここでは、マスクＲＯＭ４００とＳＲＡＭ３００が、電子装置１０を構成するＬＳＩの外部に配置した状態について示す。実施の形態１乃至７で述べた方法は、マスクＲＯＭ４００やＳＲＡＭ３００が、単一のＬＳＩの内部にない場合にも適用可能である。
【００３７】
【発明の効果】
以上のように、この発明によれば、所定のデータを予め固定的に記録した固定記憶媒体からデータバスを介し読み出したデータに基づいてパイプライン処理を行うＣＰＵコアを備えた電子装置において、当該電子装置の初期化時に固定記憶媒体の記憶内容に係る訂正アドレス、訂正命令および訂正許可を書き込み保持する記憶素子と、ＣＰＵコアの命令プリフェッチステージから出力される命令アドレスと記憶素子に保持された訂正アドレスとを比較する比較器と、この比較器の比較結果に基づいて固定記憶媒体からリードされた命令コードと記憶素子に保持された訂正命令のいずれかを選択して出力するセレクタとを有する命令訂正回路をＣＰＵコア内部に備えるように構成したので、ＣＰＵコアの動作速度を低下させずに、またＣＰＵコアの外部メモリから命令バッファまでのパスに新たなハードウェアを挿入することなく、ＲＯＭデータの訂正を実現できる効果がある。
【００３８】
この発明によれば、所定のデータを予め固定的に記録した固定記憶媒体からデータバスを介し読み出したデータに基づいてパイプライン処理を行うＣＰＵコアを備えた電子装置において、当該電子装置の初期化時に固定記憶媒体の記憶内容に係る訂正アドレス、訂正データおよび訂正許可を書き込み保持する記憶素子と、ＣＰＵコアのデータ処理ステージから出力されるデータアドレスと記憶素子に保持された訂正アドレスとを比較する比較器と、この比較器の比較結果に基づいて固定記憶媒体からリードされたデータと記憶素子に保持された訂正データのいずれかを選択して出力するセレクタとを有するデータ訂正回路をＣＰＵコア内部に備えるように構成したので、ＣＰＵコアの動作速度を低下させず、マスクＲＯＭの出力からメモリバスインタフェースに至るパスに、新たなハードウェアを挿入することなく、ＲＯＭデータの訂正機能を実現できる効果がある。
【図面の簡単な説明】
【図１】この発明の実施の形態１による電子装置の構成を示すブロック図である。
【図２】同実施の形態１に係る命令訂正回路の内部構成を示すブロック図である。
【図３】同実施の形態１に係るマスクＲＯＭの訂正を行うソフトウェアプログラムのフローチャートである。
【図４】同実施の形態２による電子装置の構成を示すブロック図である。
【図５】同実施の形態３による電子装置の構成を示すブロック図である。
【図６】同実施の形態３に係るデータ訂正回路の詳細構成を示すブロック図である。
【図７】同実施の形態３に係るマスクＲＯＭデータの訂正を行うソフトウェアプログラムのフローチャートである。
【図８】同実施の形態４による電子装置の構成を示すブロック図である。
【図９】同実施の形態５による電子装置の構成を示すブロック図である。
【図１０】同実施の形態６による電子装置の構成を示すブロック図である。
【図１１】同実施の形態７に係る訂正アドレスの記憶素子の削減方法を示す説明図である。
【図１２】同実施の形態７に係る訂正命令の記憶素子の削減方法を示す説明図である。
【図１３】同実施の形態８による電子装置の構成を示すブロック図である。
【図１４】従来の訂正回路の構成を示すブロック図である。
【符号の説明】
１０　電子装置、１１　データバス、１２　アドレスバス、２０　書き換え可能デバイス、１００　パイプライン型ＣＰＵコア、１１０　命令プリフェッチ部、１１１　命令バッファ、１２０　命令デコード部、１３０　データ処理部、１４０　メモリアクセス部、１４１　データバッファ、１５０　レジスタライトバック部、１６０　メモリバスＩＦ、１６１　データバッファ、１７０，１７００命令訂正回路、１７０１〜１７０ｎ，１８０１〜１８０ｎ　ブロック、１７１，１７１１，１８１，１８１１　訂正アドレス部、１７２，１７２１，１８２，１８２１　訂正許可部、１７３，１７３１，１８３、１８３１　比較回路（ＣＯＭＰ）、１７４，１７４１，１８４、１８４１　アンドゲート、１７５，１７５１　訂正命令部、１７６，１７８，１８６，１８８　セレクタ（ＳＥＬ）、１７７，１８７　エンコーダ、１８０，１８００　データ訂正回路、１８５，１８５１　訂正データ部、２００　外部ＩＯデバイス、３００　ＳＲＡＭ、４００　マスクＲＯＭ。
【図１】
2004054618.tif 000003
【図２】
2004054618.tif 000004
【図３】
2004054618.tif 000005
【図４】
2004054618.tif 000006
【図５】
2004054618.tif 000007
【図６】
2004054618.tif 000008
【図７】
2004054618.tif 000009
【図８】
2004054618.tif 000010
【図９】
2004054618.tif 000011
【図１０】
2004054618.tif 000012
【図１１】
2004054618.tif 000013
【図１２】
2004054618.tif 000014
【図１３】
2004054618.tif 000015
【図１４】
2004054618.tif 000016