(57)【要約】【課題】プロセッサと、書き換え不可能な不揮発性メモリとを内蔵する半導体集積回路に関し、不揮発性メモリのデータに誤りがあった場合に、簡単な回路で修正データを割付可能な半導体集積回路を提供する。【解決手段】プロセッサ（１１１）を有する半導体集積回路（１０１）であって、前記プロセッサ用のデータが格納された、書き換え不可能な不揮発性メモリ（１３１）と、前記不揮発性メモリへのアクセスを制御するメモリ制御回路（１３２）とを備え、前記制御回路は、パッチアドレスを格納するためのアドレスレジスタ（３０１）と、パッチデータを格納するためのデータレジスタ（３０２）と、前記不揮発性メモリからの読み出し位置を示す読み出しアドレスと前記パッチアドレスとを比較して、比較結果を出力する比較回路（３０３）と、前記比較結果に応じて、前記不揮発性メモリからの読み出しデータ又は前記パッチデータを選択し、選択したデータを出力する選択回路（３０４）とを備える。【選択図】図２
2010140167.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサを有する半導体集積回路であって、
前記プロセッサ用のデータが格納された、書き換え不可能な不揮発性メモリと、
前記不揮発性メモリへのアクセスを制御するメモリ制御回路とを備え、
前記メモリ制御回路は、
前記不揮発性メモリの修正箇所を示すアドレスを格納するためのアドレスレジスタと、
前記不揮発性メモリ用の修正データを格納するためのデータレジスタと、
前記不揮発性メモリからの読み出し位置を示す読み出しアドレスと、前記アドレスレジスタに格納されたアドレスとを比較して、前記読み出しアドレスと前記アドレスレジスタに格納されたアドレスとの比較結果を出力する比較回路と、
前記比較結果に応じて、前記不揮発性メモリからの読み出しデータ又は前記データレジスタに格納された修正データを選択し、選択したデータを出力する選択回路と、
を備えることを特徴とする半導体集積回路。
【請求項２】
プロセッサを有する半導体集積回路であって、
前記プロセッサ用のデータが格納された、書き換え不可能な不揮発性メモリと、
前記不揮発性メモリへのアクセスと、前記半導体集積回路の内部又は外部に設けられ、前記不揮発性メモリ用の修正データを格納可能な揮発性メモリへのアクセスとを制御するメモリ制御回路とを備え、
前記メモリ制御回路は、
前記不揮発性メモリの修正箇所を示すアドレス又はアドレス領域を格納するためのアドレスレジスタと、
前記不揮発性メモリからの読み出し位置を示す読み出しアドレス又は読み出しアドレス領域と、前記アドレスレジスタに格納されたアドレス又はアドレス領域とを比較して、前記読み出しアドレス又は前記読み出しアドレス領域と前記アドレスレジスタに格納されたアドレス又はアドレス領域との比較結果を出力する比較回路と、
前記比較結果に応じて、前記不揮発性メモリからの読み出しデータ又は前記揮発性メモリに格納された修正データを選択し、選択したデータを出力する選択回路と、
を備えることを特徴とする半導体集積回路。
【請求項３】
前記アドレスレジスタ、前記データレジスタ、前記比較回路をそれぞれ、Ｎ個（Ｎは１以上の整数）備えることを特徴とする請求項１に記載の半導体集積回路。
【請求項４】
更に、前記半導体集積回路と前記半導体集積回路の外部のホストとのインタフェースとなるホストインタフェースを備え、
前記不揮発性メモリの修正箇所を示すアドレス又はアドレス領域と前記修正データは、前記ホストにより、前記ホストインタフェースを介して、前記アドレスレジスタと、前記データレジスタ又は前記揮発性メモリとにそれぞれ格納されることを特徴とする請求項１から３のいずれか１項に記載の半導体集積回路。
【請求項５】
更に、前記半導体集積回路の外部に位置する外部メモリからデータを読み込むハードウェアシーケンサを備え、
前記不揮発性メモリの修正箇所を示すアドレス又はアドレス領域と前記修正データは、前記ハードウェアシーケンサにより、前記外部メモリから読み込まれ、前記アドレスレジスタと、前記データレジスタ又は前記揮発性メモリとにそれぞれ格納されることを特徴とする請求項１から３のいずれか１項に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関し、例えば、プロセッサと、書き換え不可能な不揮発性メモリとを内蔵する半導体集積回路に使用されるものである。
【背景技術】
【０００２】
プロセッサを内蔵するＬＳＩは、命令コードや係数の保持に、ＮＯＲフラッシュメモリ等の書き換え可能な不揮発性メモリを利用することが多い。ＬＳＩが搭載される電子機器の部品点数やコストを削減する観点からは、このような不揮発性メモリはＬＳＩに内蔵することが好ましい。しかしながら、書き換え可能な不揮発性メモリをＬＳＩに内蔵することには、ＬＳＩの回路面積、製造プロセス、製造コストの面で難点もある。よって、上記のような命令コードや係数は、ＬＳＩに内蔵したマスクＲＯＭで保持するのがコスト的に有利である。
【０００３】
しかしながら、これらをマスクＲＯＭで保持すると、ＲＯＭデータに誤りがあった場合に、マスクの再作成やＬＳＩの再製造の費用と期間が必要となる。
【０００４】
プロセッサによっては、プログラムアドレス指定での割り込み発生や、専用回路による命令差し替え等、プログラムのバグに対するパッチ機構を有するものもあるが、割り込み機構や命令差し替え機構は、プロセッサに内蔵されている必要がある。しかしながら、既存のプロセッサに機能を追加することは、容易なことではない。更には、この場合には、プロセッサ固有の決められた仕組みをＬＳＩに実装する必要があり、パッチプログラムの書き込み等の仕組みに柔軟性を持たせることが難しい。
【０００５】
なお、特許文献１には、プログラム命令及びジャンプ命令が格納されたＲＯＭと、前記ＲＯＭ内のプログラム命令のパッチング用のパッチプログラムと、前記パッチプログラムを格納可能なＲＡＭと、前記パッチプログラムのロケーションを示すパッチベクトルテーブルとを備えるプロセッシングデバイスが記載されている。
【０００６】
また、特許文献２には、マイクロコードのパッチング用のＲＡＭを備えるプロセッサの例が記載されている。
【特許文献１】米国特許第６２６０１５７号
【特許文献２】米国特許第６４３８６６４号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、プロセッサと、書き換え不可能な不揮発性メモリとを内蔵する半導体集積回路に関し、不揮発性メモリのデータに誤りがあった場合に、簡単な回路で修正データを割り付け可能な半導体集積回路を提供することを課題とする。
【課題を解決するための手段】
【０００８】
本発明の一の態様は例えば、プロセッサを有する半導体集積回路であって、前記プロセッサ用のデータが格納された、書き換え不可能な不揮発性メモリと、前記不揮発性メモリへのアクセスを制御するメモリ制御回路とを備え、前記メモリ制御回路は、前記不揮発性メモリの修正箇所を示すアドレスを格納するためのアドレスレジスタと、前記不揮発性メモリ用の修正データを格納するためのデータレジスタと、前記不揮発性メモリからの読み出し位置を示す読み出しアドレスと、前記アドレスレジスタに格納されたアドレスとを比較して、前記読み出しアドレスと前記アドレスレジスタに格納されたアドレスとの比較結果を出力する比較回路と、前記比較結果に応じて、前記不揮発性メモリからの読み出しデータ又は前記データレジスタに格納された修正データを選択し、選択したデータを出力する選択回路と、を備えることを特徴とする半導体集積回路である。
【０００９】
本発明の別の態様は例えば、プロセッサを有する半導体集積回路であって、前記プロセッサ用のデータが格納された、書き換え不可能な不揮発性メモリと、前記不揮発性メモリへのアクセスと、前記半導体集積回路の内部又は外部に設けられ、前記不揮発性メモリ用の修正データを格納可能な揮発性メモリへのアクセスとを制御するメモリ制御回路とを備え、前記メモリ制御回路は、前記不揮発性メモリの修正箇所を示すアドレス又はアドレス領域を格納するためのアドレスレジスタと、前記不揮発性メモリからの読み出し位置を示す読み出しアドレス又は読み出しアドレス領域と、前記アドレスレジスタに格納されたアドレス又はアドレス領域とを比較して、前記読み出しアドレス又は前記読み出しアドレス領域と前記アドレスレジスタに格納されたアドレス又はアドレス領域との比較結果を出力する比較回路と、前記比較結果に応じて、前記不揮発性メモリからの読み出しデータ又は前記揮発性メモリに格納された修正データを選択し、選択したデータを出力する選択回路と、を備えることを特徴とする半導体集積回路である。
【発明の効果】
【００１０】
本発明によれば、プロセッサと、書き換え不可能な不揮発性メモリとを内蔵する半導体集積回路に関し、不揮発性メモリのデータに誤りがあった場合に、簡単な回路で修正データを割り付け可能な半導体集積回路を提供することができる。
【発明を実施するための最良の形態】
【００１１】
本発明の実施形態を、図面に基づいて説明する。
【００１２】
（第１実施形態）
図１は、第１実施形態の半導体集積回路１０１の構成を示すブロック図である。
【００１３】
図１の半導体集積回路１０１は、プロセッサ１１１と、種々の周辺装置１１２とを備える。このように、図１の半導体集積回路１０１は、プロセッサ１１１を内蔵している。プロセッサ１１１と周辺装置１１２は、図１に示すように、半導体集積回路１０１内のバス１２１に接続されている。図１には更に、プロセッサ１１１に設けられたＩキャッシュとＤキャッシュが示されている。
【００１４】
図１の半導体集積回路１０１は更に、ＲＯＭ（Read Only Memory）１３１と、ＲＯＭコントローラ１３２と、ＳＲＡＭ（Static Random Access Memory）１４１と、ＳＲＡＭコントローラ１４２とを備える。ＲＯＭ１３１及びＳＲＡＭ１４１はそれぞれ、図１に示すように、ＲＯＭコントローラ１３２及びＳＲＡＭコントローラ１４２を介して、バス１２１に接続されている。
【００１５】
ＲＯＭ１３１には、命令コードや係数など、プロセッサ１１１用のデータが格納されている。図１のＲＯＭ１３１は、マスクＲＯＭであり、本発明の書き換え不可能な不揮発性メモリの例である。ＲＯＭ１３１へのアクセスは、ＲＯＭコントローラ１３２により制御される。ＲＯＭコントローラ１３２は、本発明のメモリ制御回路の例である。同様に、ＳＲＡＭ１４１へのアクセスは、ＳＲＡＭコントローラ１４２により制御される。
【００１６】
図１の半導体集積回路１０１は更に、ホストＩ／Ｆ（Interface）１５１を備える。ホストＩ／Ｆ１５１は、半導体集積回路１０１とその外部に存在するホストＣＰＵ（Central Processing Unit）２０１とのインタフェースとして使用される。ホストＩ／Ｆ１５１は、図１に示すように、バス１２１に接続されている。
【００１７】
図１の半導体集積回路１０１は、ＬＳＩ（Large Scale Integrated Circuit）に相当する。以下、図１の半導体集積回路１０１を、ＬＳＩ１０１と表記する。
【００１８】
図２は、図１のＲＯＭコントローラ１３２の構成を示すブロック図である。
【００１９】
本実施形態では、ＲＯＭコントローラ１３２に、ＲＯＭデータの修正機能を持たせている。ＲＯＭコントローラ１３２は、ＲＯＭデータの修正機能を担う構成要素として、アドレスレジスタ３０１と、データレジスタ３０２と、比較回路３０３と、選択回路３０４とを備える。
【００２０】
アドレスレジスタ３０１は、ＲＯＭ１３１の修正箇所を示すパッチアドレスを格納するためのレジスタである。また、データレジスタ３０２は、ＲＯＭ１３１用のパッチデータを格納するためのレジスタである。アドレスレジスタ３０１に格納されるパッチアドレスは、データレジスタ３０２に格納されるパッチデータの適用箇所を示す。パッチアドレス及びパッチデータは、本発明のアドレス及び修正データの例である。
【００２１】
本実施形態では、ＬＳＩ１０１が設けられたシステムが起動すると、ホストＣＰＵ２０１が、パッチアドレスとパッチデータをそれぞれアドレスレジスタ３０１とデータレジスタ３０２に格納し、その後、プロセッサ１１１を起動させる。この際、ホストＣＰＵ２０１は、ホストＩ／Ｆ１５１を介して、ＬＳＩ１０１にアクセスする。プロセッサ１１１の起動前にパッチアドレス及びパッチデータが格納されることで、バグのあるコードがパッチ処理の前に実行されてしまうのを防ぐことができる。
【００２２】
なお、本実施形態では、システム起動時に、プロセッサ１１１が、そのスタートルーチンでパッチ情報の有無を判定するようにしてもよい。パッチ情報は例えば、ホストＣＰＵ２０１が所定のレジスタに設定しておくものとする。そして、プロセッサ１１１は、必要に応じて、パッチアドレスとパッチデータをそれぞれアドレスレジスタ３０１とデータレジスタ３０２に格納し、その後、続く処理ルーチンに移行する。これにより、バグのあるコードがパッチ処理の前に実行されてしまうのを防ぐことができる。この方法には、ホストＣＰＵ２０１がアドレスレジスタ３０１及びデータレジスタ３０２にアクセスする仕組みが不要になるという利点がある。
【００２３】
比較回路３０３は、ＲＯＭ１３１からの読み出し位置を示す読み出しアドレスと、アドレスレジスタ３０１に格納されたパッチアドレスとを比較して、読み出しアドレスとパッチアドレスとの比較結果を出力する。比較結果は、読み出しアドレスとパッチアドレスとが一致したか否かを示す。出力された比較結果は、選択回路３０４に入力される。
【００２４】
選択回路３０４は、比較結果に応じて、ＲＯＭ１３１からの読み出しデータ又はデータレジスタ３０２に格納されたパッチデータを選択し、選択したデータを出力する。選択回路３０４は、比較結果が「不一致」の場合には読み出しデータを出力し、比較結果が「一致」の場合にはパッチデータを出力する。出力されたデータは、バス１２１に渡される。
【００２５】
このようにして、本実施形態では、ＲＯＭデータの誤りを修正することができる。本実施形態では、プロセッサ１１１ではなく、ＲＯＭコントローラ１３２に、ＲＯＭデータの修正機能を持たせている。上述したように、既存のプロセッサに機能を追加することは、容易なことではない。これに対し、本実施形態では、ＲＯＭコントローラ１３２にＲＯＭデータの修正機能を持たせるため、ＲＯＭデータの修正機能を比較的簡単にＬＳＩ１０１に実装することができる。本実施形態には例えば、プロセッサ１１１として、任意のプロセッサを採用できるという利点がある。プロセッサ１１１に、ＲＯＭデータの修正機能を追加する必要がないからである。
【００２６】
また、本実施形態では、ＲＯＭデータの修正機能が、アドレスレジスタ３０１、データレジスタ３０２、比較回路３０３、及び選択回路３０４により実現されている。このように、本実施形態によれば、ＲＯＭデータの修正機能を、簡単な回路構成で実現することができる。
【００２７】
また、本実施形態では、ＲＯＭ１３１内のデータの書き換えではなく、読み出しデータをパッチデータに差し替えることで、ＲＯＭデータの修正を行う。よって、本実施形態では、ＲＯＭ１３１がマスクＲＯＭであっても、ＲＯＭデータの修正を行うことができる。
【００２８】
これにより、本実施形態では、プロセッサ１１１用のデータを、ＬＳＩ１０１に内蔵したマスクＲＯＭ１３１で保持する場合であっても、ＲＯＭデータを修正することが可能になる。よって、本実施形態によれば、ＬＳＩ１０１の回路面積、製造プロセス、製造コストの面で有利という、マスクＲＯＭの利点と、ＲＯＭデータに誤りがあった場合に、マスクの再作成やＬＳＩ１０１の再製造を行う必要がなくなるという、ＲＯＭデータの修正機能の利点の両方を享受することができる。本実施形態によれば、マスクの再作成やＬＳＩ１０１の再製造の費用や期間が不要となる。
【００２９】
ここで、図１に戻り、ＲＯＭデータの修正処理の一例を説明する。
【００３０】
ＲＯＭコントローラ１３２の回路規模を増大を抑えるために、ＲＯＭデータの修正は例えば、１ワード単位で行うことが現実的である。この場合、ＲＯＭ１３１内の命令コードにパッチを当てる際には、ＲＯＭコントローラ１３２は、修正箇所の先頭をＳＲＡＭ領域へのジャンプ命令に置き換える。この場合、修正箇所の先頭のアドレスがパッチアドレスとなり、ＳＲＡＭ領域へのジャンプ命令がパッチデータとなる。
【００３１】
一方、ホストＣＰＵ２０１は、システム起動時に、パッチアドレス及びパッチデータをそれぞれアドレスレジスタ３０１及びデータレジスタ３０２に格納すると共に、修正コードをＳＲＡＭ１４１に格納する。上記のジャンプ命令以降は、この修正コードがＳＲＡＭ１４１から実行される。この修正コードの処理が終了すると、再びＲＯＭ領域にジャンプする。このようにして、ＲＯＭデータの修正処理が完了する。
【００３２】
なお、ホストＣＰＵ２０１は、修正コードをＳＲＡＭ１４１に格納する際には、ホストＩ／Ｆ１５１を介して、ＬＳＩ１０１にアクセスする。
【００３３】
図３は、図１のＬＳＩ１０１の変形例の構成を示すブロック図である。図１のＬＳＩ１０１が、ホストＩ／Ｆ１５１を備えているのに対し、図３のＬＳＩ１０１は、ハードウェアシーケンサ１６１を備えている。
【００３４】
ハードウェアシーケンサ１６１は、ＬＳＩ１０１の外部に位置するシリアルＲＯＭ２１１からデータを読み込むことが可能である。シリアルＲＯＭ２１１は、本発明の外部メモリの例である。当該外部メモリは、シリアルＲＯＭとする代わりに、パラレルＲＯＭとしても構わない。ハードウェアシーケンサ１６１は、図３に示すように、バス１２１に接続されている。
【００３５】
図３のＬＳＩ１０１では、システム起動時に、ハードウェアシーケンサ１６１が最初に起動する。そして、ハードウェアシーケンサ１６１は、パッチアドレス、パッチデータ、及び修正コードを、シリアルＲＯＭ２１１から読み込み、アドレスレジスタ３０１、データレジスタ３０２、及びＳＲＡＭ１４１にそれぞれ格納する。なお、シリアルＲＯＭ２１１には、パッチアドレス、パッチデータ、及び修正コードが予め記憶されているとする。
【００３６】
このように、図１のＬＳＩ１０１では、パッチアドレス、パッチデータ、及び修正コードの格納処理が、外部のホストＣＰＵ２１１により行われるのに対し、図３のＬＳＩ１０１では、内部のハードウェアシーケンサ１６１により行われる。図１の方式は、プロセッサ１１１の性能が比較的低い場合に有効であり、図３の方式は、プロセッサ１１１の性能が比較的高い場合に有効である。図３のＬＳＩ１０１では、上記の格納処理を、外部のホストＣＰＵ２１１の助けを借りずに行うことができる。
【００３７】
以上のように、本実施形態では、プロセッサ１１１とマスクＲＯＭ１３１とを内蔵するＬＳＩ１０１において、ＲＯＭデータの修正機能がＲＯＭコントローラ１３２により実現される。これにより、本実施形態によれば、ＲＯＭデータに誤りがあった場合に、簡単な回路で修正データを割り付け可能なＬＳＩ１０１を提供することができる。
【００３８】
以下、第２から第４実施形態の半導体集積回路１０１について説明する。第２から第４実施形態は、第１実施形態の変形例であり、第２から第４実施形態については、第１実施形態との相違点を中心に説明する。
【００３９】
（第２実施形態）
図４は、第２実施形態のＲＯＭコントローラ１３２の構成を示すブロック図である。本実施形態のＲＯＭコントローラ１３２は、図１のＬＳＩ１０１に設けられていても、図３のＬＳＩ１０１に設けられていてもよい。
【００４０】
本実施形態では、第１実施形態と同様、ＲＯＭコントローラ１３２に、ＲＯＭデータの修正機能を持たせている。図４のＲＯＭコントローラ１３２は、ＲＯＭデータの修正機能を担う構成要素として、Ｎ個のアドレスレジスタ３０１と、Ｎ個のデータレジスタ３０２と、Ｎ個の比較回路３０３と、１個の選択回路３０４とを備えている。但し、Ｎは２以上の整数であり、ここではＮ＝２である。
【００４１】
図４には、２個のアドレスレジスタ３０１Ａ及びＢと、２個のデータレジスタ３０２Ａ及びＢが示されている。
【００４２】
アドレスレジスタ３０１Ａとデータレジスタ３０２Ａは、ペアとして使用される。アドレスレジスタ３０１Ａに格納されるパッチアドレスは、データレジスタ３０２Ａに格納されるパッチデータの適用箇所を示す。
【００４３】
同様に、アドレスレジスタ３０１Ｂとデータレジスタ３０２Ｂは、ペアとして使用される。アドレスレジスタ３０１Ｂに格納されるパッチアドレスは、データレジスタ３０２Ｂに格納されるパッチデータの適用箇所を示す。
【００４４】
このように、図４のＲＯＭコントローラ１３２は、Ｎ組（ここでは２組）のアドレスレジスタ３０１とデータレジスタ３０２とを備える。これにより、本実施形態では、Ｎ箇所のＲＯＭデータを修正することができる。本実施形態では、Ｎは２であるが、Ｎは３以上の整数でも構わない。
【００４５】
図４には更に、２個の比較回路３０３Ａ及びＢが示されている。
【００４６】
比較回路３０３Ａは、ＲＯＭ１３１からの読み出し位置を示す読み出しアドレスと、アドレスレジスタ３０１Ａに格納されたパッチアドレスとを比較して、読み出しアドレスとパッチアドレスとの比較結果を出力する。このように、比較回路３０３Ａは、アドレスレジスタ３０１Ａ用の比較処理に使用される。
【００４７】
同様に、比較回路３０３Ｂは、ＲＯＭ１３１からの読み出し位置を示す読み出しアドレスと、アドレスレジスタ３０１Ｂに格納されたパッチアドレスとを比較して、読み出しアドレスとパッチアドレスとの比較結果を出力する。このように、比較回路３０３Ｂは、アドレスレジスタ３０１Ｂ用の比較処理に使用される。
【００４８】
選択回路３０４には、比較回路３０３Ａ及びＢから比較結果が入力される。
【００４９】
選択回路３０４は、比較回路３０３Ａ及びＢからの比較結果に応じて、ＲＯＭ１３１からの読み出しデータ、データレジスタ３０２Ａに格納されたパッチデータ、又はデータレジスタ３０２Ｂに格納されたパッチデータを選択し、選択したデータを出力する。
【００５０】
選択回路３０４は、比較回路３０３Ａ及びＢからの比較結果が共に「不一致」の場合には、読み出しデータを出力する。一方、比較回路３０３Ａからの比較結果が「一致」の場合には、データレジスタ３０２Ａに格納されたパッチデータを出力する。同様に、比較回路３０３Ｂからの比較結果が「一致」の場合には、データレジスタ３０２Ｂに格納されたパッチデータを出力する。
【００５１】
なお、各アドレスレジスタ３０１や各データレジスタ３０２の記憶内容は、プロセッサ１１１から書き換え可能としてもよい。これにより、プロセッサ１１１で実行されるプログラム自身が、パッチアドレスやパッチデータを設定できるようになり、ＲＯＭデータの修正箇所の個数の制限を、事実上なくすことができる。なお、本段落で説明した事項は、第２実施形態だけでなく、第１実施形態にも適用可能である。
【００５２】
以上のように、本実施形態では、ＲＯＭコントローラ１３２に、複数組のアドレスレジスタ３０１とデータレジスタ３０２が設けられる。これにより、本実施形態では、複数箇所のＲＯＭデータを修正することが可能になる。
【００５３】
（第３実施形態）
図５は、第３実施形態の半導体集積回路１０１の構成を示すブロック図である。以下、図５の半導体集積回路１０１を、ＬＳＩ１０１と表記する。
【００５４】
図１のＬＳＩ１０１が、ＲＯＭコントローラ１３２とＳＲＡＭコントローラ１４２を備えているのに対し、図５のＬＳＩ１０１は、メモリコントローラ１７１を備えている。
【００５５】
本実施形態では、ＲＯＭ１３１へのアクセスと、ＳＲＡＭ１４１へのアクセスは、共にメモリコントローラ１７１により制御される。ＲＯＭ１３１は、本発明の書き換え不可能な不揮発性メモリの例であり、ＳＲＡＭ１４１は、本発明の揮発性メモリの例である。また、メモリコントローラ１７１は、本発明のメモリ制御回路の例である。ＲＯＭ１３１とＳＲＡＭ１４１は、図５に示すように、メモリコントローラ１７１を介して、バス１２１に接続されている。
【００５６】
図６は、図５のメモリコントローラ１７１の構成を示すブロック図である。
【００５７】
本実施形態では、メモリコントローラ１７１に、ＲＯＭデータの修正機能を持たせている。これにより、本実施形態では、命令コードの修正処理の自由度を、第１実施形態よりも更に高めることができる。メモリコントローラ１７１は、ＲＯＭデータの修正機能を担う構成要素として、アドレスレジスタ３０１と、比較回路３０３と、選択回路３０４とを備える。
【００５８】
本実施形態では、ＲＯＭ１３１の修正箇所を示すパッチアドレスが、アドレスレジスタ３０１に格納される。また、本実施形態では、ＲＯＭ１３１用の修正データが、ＳＲＡＭ１４１に格納される。当該修正データの例としては、ＲＯＭ１３１内の命令コードと差し替えるための修正コードが挙げられる。アドレスレジスタ３０１に格納されるパッチアドレスは、ＳＲＡＭ１４１に格納される修正データの適用箇所を示す。
【００５９】
本実施形態では、ＬＳＩ１０１が設けられたシステムが起動すると、ホストＣＰＵ２０１が、パッチアドレスと修正データをそれぞれアドレスレジスタ３０１とＳＲＡＭ１４１に格納し、その後、プロセッサ１１１を起動させる。この際、ホストＣＰＵ２０１は、ホストＩ／Ｆ１５１を介して、ＬＳＩ１０１にアクセスする。なお、本実施形態では、上述のように、システム起動時に、プロセッサ１１１が、そのスタートルーチンでパッチ情報の有無を判定するようにしてもよい。
【００６０】
比較回路３０３は、ＲＯＭ１３１からの読み出し位置を示す読み出しアドレスと、アドレスレジスタ３０１に格納されたパッチアドレスとを比較して、読み出しアドレスとパッチアドレスとの比較結果を出力する。比較結果は、読み出しアドレスとパッチアドレスとが一致したか否かを示す。出力された比較結果は、選択回路３０４に入力される。
【００６１】
選択回路３０４は、比較結果に応じて、ＲＯＭ１３１からの読み出しデータ又はＳＲＡＭ１４１に格納された修正データを選択し、選択したデータを出力する。選択回路３０４は、比較結果が「不一致」の場合には読み出しデータを出力し、比較結果が「一致」の場合には修正データを出力する。出力されたデータは、バス１２１に渡される。
【００６２】
このようにして、本実施形態では、ＲＯＭデータの誤りを修正することができる。本実施形態では、メモリコントローラ１７１にＲＯＭデータの修正機能を持たせるため、第１実施形態と同様に、ＲＯＭデータの修正機能を比較的簡単にＬＳＩ１０１に実装することができる。
【００６３】
また、本実施形態では、ＲＯＭデータの修正処理を、ＳＲＡＭ１４１へのアクセスを制御可能なメモリコントローラ１７１が行う。よって、本実施形態によれば、ＲＯＭ１３１内の命令コードを修正コードに差し替える処理を、第１実施形態よりも簡単に行うことができる。
【００６４】
ここで、パッチアドレスについて説明する。
【００６５】
本実施形態では、修正データが、データレジスタ３０２ではなく、ＳＲＡＭ１４１に格納される。そのため、アドレスレジスタ３０１は、パッチアドレスの全ビットを持つ必要はなく、パッチアドレスの上位ビットのみを持つようにしてもよい。この場合、比較回路３０３は、読み出しアドレスの上位ビットと、パッチアドレスの上位ビットとを比較し、その比較結果を出力する。そして、選択回路３０４は、読み出しアドレスの上位ビットとパッチアドレスの上位ビットが一致する場合、修正データを出力する。これにより、この上位ビットを有するアドレスからなるアドレス領域では、ＲＯＭデータが全て修正データに差し替えられる。
【００６６】
アドレスレジスタ３０１にパッチアドレスの上位ビットのみを格納することは、アドレスレジスタ３０１に、修正箇所を示すアドレス領域を格納することに相当する。また、読み出しアドレスの上位ビットとパッチアドレスの上位ビットを比較することは、読み出しアドレス領域と、修正箇所を示すアドレス領域とを比較することに相当する。パッチアドレスの上位ビットは、本発明のアドレス領域の例である。また、読み出しアドレスの上位ビットは、本発明の読み出しアドレス領域の例である。
【００６７】
このような領域単位での修正処理によれば、ある程度まとまった領域のＲＯＭデータをまとめて修正データに差し替えることができる。この処理は例えば、係数テーブルを修正する場合等に有効である。
【００６８】
なお、本実施形態では、修正データは、ＬＳＩ１０１の内部に設けられたＲＡＭ１４１ではなく、ＬＳＩ１０１の外部に設けられたＲＡＭに格納してもよい。このようなＲＡＭの例としては、ＳＤＲＡＭ（Synchronous Dynamic RAM）が挙げられる。当該ＳＤＲＡＭへのアクセスは、メモリコントローラ１７１が制御する。当該ＳＤＲＡＭは、本発明の揮発性メモリの例である。
【００６９】
図７は、図５のＬＳＩ１０１の変形例の構成を示すブロック図である。図５のＬＳＩ１０１が、ホストＩ／Ｆ１５１を備えているのに対し、図７のＬＳＩ１０１は、ハードウェアシーケンサ１６１を備えている。図７のＬＳＩ１０１の動作及び利点は、図３のＬＳＩ１０１と同様である。
【００７０】
以上のように、本実施形態では、プロセッサ１１１とマスクＲＯＭ１３１とを内蔵するＬＳＩ１０１において、ＲＯＭデータの修正機能がメモリコントローラ１７１により実現される。これにより、本実施形態によれば、ＲＯＭデータに誤りがあった場合に、簡単な回路で修正データを割り付け可能なＬＳＩ１０１を提供することができる。
【００７１】
（第４実施形態）
図８は、第４実施形態のメモリコントローラ１７１の構成を示すブロック図である。本実施形態のメモリコントローラ１７１は、図５のＬＳＩ１０１に設けられていても、図７のＬＳＩ１０１に設けられていてもよい。
【００７２】
本実施形態では、第３実施形態と同様、メモリコントローラ１７１に、ＲＯＭデータの修正機能を持たせている。図８のメモリコントローラ１７１は、ＲＯＭデータの修正機能を担う構成要素として、Ｎ個のアドレスレジスタ３０１と、Ｎ個の比較回路３０３と、１個の選択回路３０４とを備えている。但し、Ｎは２以上の整数であり、ここではＮ＝２である。
【００７３】
図８には、２個のアドレスレジスタ３０１Ａ及びＢが示されている。
【００７４】
本実施形態では、ＲＯＭ１３１の修正箇所を示すパッチアドレスが、アドレスレジスタ３０１Ａ及びＢに格納される。また、本実施形態では、ＲＯＭ１３１用の修正データが、ＳＲＡＭ１４１に格納される。アドレスレジスタ３０１Ａ及びＢに格納されるパッチアドレスは、ＳＲＡＭ１４１に格納される修正データの適用箇所を示す。
【００７５】
このように、図８のメモリコントローラ１７１は、Ｎ個（ここでは２個）のアドレスレジスタ３０１を備える。これにより、本実施形態では、Ｎ箇所のＲＯＭデータを修正することができる。本実施形態では、Ｎは２であるが、Ｎは３以上の整数でも構わない。
【００７６】
図８には更に、２個の比較回路３０３Ａ及びＢが示されている。
【００７７】
比較回路３０３Ａは、ＲＯＭ１３１からの読み出し位置を示す読み出しアドレスと、アドレスレジスタ３０１Ａに格納されたパッチアドレスとを比較して、読み出しアドレスとパッチアドレスとの比較結果を出力する。このように、比較回路３０３Ａは、アドレスレジスタ３０１Ａ用の比較処理に使用される。
【００７８】
同様に、比較回路３０３Ｂは、ＲＯＭ１３１からの読み出し位置を示す読み出しアドレスと、アドレスレジスタ３０１Ｂに格納されたパッチアドレスとを比較して、読み出しアドレスとパッチアドレスとの比較結果を出力する。このように、比較回路３０３Ｂは、アドレスレジスタ３０１Ｂ用の比較処理に使用される。
【００７９】
選択回路３０４には、比較回路３０３Ａ及びＢから比較結果が入力される。
【００８０】
選択回路３０４は、比較回路３０３Ａ及びＢからの比較結果に応じて、ＲＯＭ１３１からの読み出しデータ又はＳＲＡＭ１４１に格納された修正データを選択し、選択したデータを出力する。
【００８１】
選択回路３０４は、比較回路３０３Ａ及びＢからの比較結果が共に「不一致」の場合には、読み出しデータを出力する。一方、比較回路３０３Ａからの比較結果が「一致」の場合には、アドレスレジスタ３０２Ａに格納されたパッチアドレスに対応する修正データを出力する。同様に、比較回路３０３Ｂからの比較結果が「一致」の場合には、アドレスレジスタ３０２Ｂに格納されたパッチアドレスに対応する修正データを出力する。
【００８２】
なお、アドレスレジスタ３０１Ａ及びＢは、パッチアドレスの上位ビットのみを持つようにしてもよい。この場合、比較回路３０３Ａ及びＢは、読み出しアドレスの上位ビットと、パッチアドレスの上位ビットとを比較し、その比較結果を出力する。そして、選択回路３０４は、読み出しアドレスの上位ビットとパッチアドレスの上位ビットが一致する場合、修正データを出力する。
【００８３】
以上のように、本実施形態では、メモリコントローラ１７１に、複数個のアドレスレジスタ３０１が設けられる。これにより、本実施形態では、複数箇所のＲＯＭデータを修正することが可能になる。
【００８４】
以上、本発明の具体的な態様の例を、第１から第４実施形態により説明したが、本発明は、これらの実施形態に限定されるものではない。
【図面の簡単な説明】
【００８５】
【図１】第１実施形態の半導体集積回路の構成を示すブロック図である。
【図２】第１実施形態のＲＯＭコントローラの構成を示すブロック図である。
【図３】第１実施形態の半導体集積回路の変形例の構成を示すブロック図である。
【図４】第２実施形態のＲＯＭコントローラの構成を示すブロック図である。
【図５】第３実施形態の半導体集積回路の構成を示すブロック図である。
【図６】第３実施形態のメモリコントローラの構成を示すブロック図である。
【図７】第３実施形態の半導体集積回路の変形例の構成を示すブロック図である。
【図８】第４実施形態のメモリコントローラの構成を示すブロック図である。
【符号の説明】
【００８６】
１０１  半導体集積回路
１１１  プロセッサ
１１２  周辺装置
１２１  バス
１３１  ＲＯＭ
１３２  ＲＯＭコントローラ
１４１  ＳＲＡＭ
１４２  ＳＲＡＭコントローラ
１５１  ホストＩ／Ｆ
１６１  ハードウェアシーケンサ
１７１  メモリコントローラ
２０１  ホストＣＰＵ
２１１  シリアルＲＯＭ
３０１  アドレスレジスタ
３０２  データレジスタ
３０３  比較回路
３０４  選択回路
【図１】
2010140167.tif 000003
【図２】
2010140167.tif 000004
【図３】
2010140167.tif 000005
【図４】
2010140167.tif 000006
【図５】
2010140167.tif 000007
【図６】
2010140167.tif 000008
【図７】
2010140167.tif 000009
【図８】
2010140167.tif 000010