(57)【要約】【課題】実使用時におけるＲＡＭの未書き込みアドレスからの読み出しというユーザプログラムミスによる異常動作を防ぐことができる半導体集積回路を提供する。【解決手段】外部リセット信号ＲＳＴが解除されると、内部リセット信号発生部２は内部リセット信号ＲＳＴ＿ＩＮを解除する。ＲＡＭ初期化コントロール部１０は、内部リセット信号ＲＳＴ＿ＩＮが解除されると、アドレス生成カウンタ部１１、データ生成部１２およびＷＥ生成部１３にＲＡＭ６−０、６−１、タグＲＡＭ２１−Ｉ、２１−Ｄの初期化に必要な動作を開始させると共に、ＲＡＭ６−０、６−１、タグＲＡＭ２１−Ｉ、２１−Ｄの初期化が完了するまで、ＣＰＵ９に初期状態を維持させる。【選択図】          図１
2006350889.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵとＲＡＭを有する半導体集積回路であって、
前記半導体集積回路の初期化を指示する外部信号が解除されると、前記ＲＡＭを自動的に初期化するＲＡＭ初期化手段を備える
ことを特徴とする半導体集積回路。
【請求項２】
前記外部信号を遅らせて、前記ＲＡＭが初期化された後に、前記ＣＰＵの初期化の解除を指示する制御部を備える
ことを特徴とする請求項１記載の半導体集積回路。
【請求項３】
前記ＲＡＭ初期化手段は、前記ＲＡＭを自動的に初期化するほか、前記ＣＰＵ内のタグＲＡＭを自動的に初期化する
ことを特徴とする請求項１又は２記載の半導体集積回路。
【請求項４】
ＣＰＵとＲＡＭを有する半導体集積回路であって、
前記ＲＡＭの初期化を指示する値が書き込み可能とされた所定のレジスタを有し、前記ＣＰＵが前記所定のレジスタに前記ＲＡＭの初期化を指示する値を書き込んだときは、前記ＲＡＭを初期化するＲＡＭ初期化手段を有することを特徴とする半導体集積回路。
【請求項５】
ＣＰＵとＲＡＭを有する半導体集積回路であって、
前記ＲＡＭを初期化するためのＲＡＭ初期化プログラムを格納する記憶手段を有し、
前記半導体集積回路の初期化を指示する外部信号が解除されると、前記ＣＰＵが前記ＲＡＭ初期化プログラムを使用して前記ＲＡＭの初期化を行うように構成されている
ことを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ（central processing unit：中央演算処理装置）とＲＡＭ（random access memory：随時書き込み読み出し可能メモリ）を有する半導体集積回路に関する。より具体的には、半導体集積回路が有するＲＡＭの初期化技術に関する。
【背景技術】
【０００２】
ＣＰＵとＲＡＭを有するＬＳＩ（large scale integrated circuit：大規模集積回路）では、ＣＰＵによるＲＡＭからのデータの読み出しは、書き込みを行ったアドレスのみから行うべきであるが、ユーザプログラムのミスにより、意図しないにも関わらず、未書き込みのアドレスからの読み出しを行ってしまう場合がある。通常、このようなユーザプログラムミスの多くは、実ＬＳＩを使用したユーザプログラム開発までの段階で、ＬＳＩの異常動作として発見できることが多い。
【０００３】
しかし、稀に、このようなユーザプログラムミスがＬＳＩの実使用の段階まで発見できない場合がある。なぜなら、実際のＬＳＩでは、ＲＡＭの書き込み前のアドレスの各記憶ビットは“０”又は“１”に値が転んでいるが、ユーザプログラムミスにより読み出しを行った未書き込みアドレスの各記憶ビットが、ＬＳＩのプロセス条件やユーザプログラム評価時の温度・電圧条件などにより、たまたま正常動作にとって都合の良い値に転んでいて、未書き込みアドレスからの読み出しというユーザプログラムミスがＬＳＩの異常動作として見えない場合があるからであり、このような場合、ＬＳＩの実使用の或る条件下で初めて異常動作が見つかるという事態が発生する。
【特許文献１】特開２００２−２２９８１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このように、ＣＰＵとＲＡＭを有するＬＳＩにおいては、ユーザプログラムミスにより、ＣＰＵがＲＡＭの未書き込みアドレスから読み出しを行ってしまう場合があり、そして、このようなユーザプログラムミスがＬＳＩの実使用の段階まで発見できない場合があることから、このような事態の発生を防ぐことが必要となる。
【０００５】
本発明は、かかる点に鑑み、実使用時におけるＲＡＭの未書き込みアドレスからの読み出しというユーザプログラムミスによる異常動作を防ぐことができるようにした半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、ＣＰＵとＲＡＭを有する半導体集積回路であって、前記半導体集積回路の初期化を指示する外部信号が解除されると、前記ＲＡＭを自動的に初期化するＲＡＭ初期化手段を備えるものである。
【発明の効果】
【０００７】
本発明によれば、半導体集積回路の初期化を指示する外部信号が解除されると、ＲＡＭ初期化手段によりＲＡＭの初期化を自動的に行い、ＲＡＭの未書き込みアドレスの記憶値を所定の初期値に設定することができる。したがって、ユーザプログラム評価時に、ユーザプログラムミスにより、ＲＡＭの未書き込みアドレスから読み出しを行った場合、常に所定の初期値が読み出されることになる。
【０００８】
この場合、初期値が正常動作に都合の悪い値である場合には、ユーザプログラム評価時に、ＲＡＭの未書き込みアドレスからの読み出しというユーザプログラムミスを半導体集積回路の異常動作として発見することができ、ユーザプログラムの修正の機会を得ることができ、これにより、半導体集積回路の実使用時におけるＲＡＭの未書き込みアドレスからの読み出しというユーザプログラムミスによる異常動作を防ぐことができる。
【０００９】
これに対して、初期値がたまたま正常動作に都合の良い値であった場合には、ユーザプログラム評価時に、ＲＡＭの未書き込みアドレスからの読み出しというユーザプログラムミスは半導体集積回路の異常動作として発見することができないが、この場合には、半導体集積回路の実使用時にも異常動作とはならず、ユーザプログラムミスは何ら問題とならない。
【００１０】
このように、本発明によれば、ＲＡＭ初期化手段がＲＡＭに書き込む初期値が正常動作に都合の悪い値であっても、都合の良い値であっても、半導体集積回路の実使用時におけるＲＡＭの未書き込みアドレスからの読み出しというユーザプログラムミスによる異常動作を防ぐことができる。
【発明を実施するための最良の形態】
【００１１】
（第１実施形態）
図１は本発明の第１実施形態の要部を示す回路図である。本発明の第１実施形態は、外部から与えられるＣＰＵの初期化（ＣＰＵ内の各レジスタ、各ステートマシーンの値を初期状態に設定すること）を指示する初期化信号である外部リセット信号ＲＳＴが解除されると、即ち、外部リセット信号ＲＳＴがＨレベル（活性レベル）からＬレベル（非活性レベル）とされてＣＰＵの初期状態の解除が指示されると、ＲＡＭ初期化専用のハードウエアにより、ＲＡＭおよびＣＰＵ内のキャッシュのタグ（ＴＡＧ）ＲＡＭの初期化を自動的に行うものである。
【００１２】
図１中、１は外部端子である外部リセット信号（ＲＳＴ）入力端子、２は内部リセット信号（ＲＳＴ＿ＩＮ）発生部、３はＲＡＭ初期化専用のハードウエアであるＲＡＭ初期化ユニット、４はアドレスバス、５はデータバス、６−０、６−１はＲＡＭ、７−０、７−１はＯＲ回路、８−０、８−１はインバータとＡＮＤ回路を組み合わせてなる組合せ論理回路、９はＣＰＵである。
【００１３】
ＲＡＭ初期化ユニット３は、ＲＡＭ初期化コントロール部１０と、アドレス生成カウンタ部１１と、データ生成部１２と、ＷＥ生成部１３を有している。ＣＰＵ９は、整数演算ユニット１４と、バスインタフェース１５と、命令キャッシュ１６−Ｉと、命令用アドレスバス１７−Ｉと、命令用データバス１８−Ｉと、データキャッシュ１６−Ｄと、データ用アドレスバス１７−Ｄと、データ用データバス１８−Ｄと、ＯＲ回路１９−Ｉ、１９−Ｄと、インバータとＡＮＤ回路を組み合わせてなる組合せ論理回路２０−Ｉ、２０−Ｄを有している。命令キャッシュ１６−ＩはタグＲＡＭ２１−Ｉを有し、データキャッシュ１６−ＤはタグＲＡＭ２１−Ｄを有している。
【００１４】
内部リセット信号発生部２は、外部リセット信号入力端子１を介して与えられる外部リセット信号ＲＳＴを入力して内部リセット信号ＲＳＴ＿ＩＮを発生するものであり、外部リセット信号ＲＳＴがＨレベル（活性レベル）からＬレベル（非活性レベル）に遷移してＣＰＵ９の初期状態の解除が指示されたときは、クロックＣＬＫを生成するための水晶振動子の発振が安定する期間だけ遅延させて内部リセット信号ＲＳＴ＿ＩＮをＨレベル（活性レベル）からＬレベル（非活性レベル）に遷移させるものである。この内部リセット信号発生部２は必須のものではない。
【００１５】
ＲＡＭ初期化ユニット３は、内部リセット信号発生部２が出力する内部リセット信号ＲＳＴ＿ＩＮがＨレベル（活性レベル）からＬレベル（非活性レベル）に遷移すると、内部リセット信号ＲＳＴ＿ＩＮを遅延してなる内部リセットディレイ信号ＲＳＴ＿ＩＮ＿ＤＬＹによりＣＰＵ９の初期状態解除を遅延させて、ＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄの初期化を自動的に行うものである。
【００１６】
ＲＡＭ初期化コントロール部１０は、アドレス生成カウンタ部１１、データ生成部１２およびＷＥ生成部１３の制御と、ＣＰＵ９のリセット信号入力端子２２に内部リセット信号ＲＳＴ＿ＩＮを遅延してなる内部リセットディレイ信号ＲＳＴ＿ＩＮ＿ＤＬＹを与えてＣＰＵ９の初期化制御を行うものである。
【００１７】
具体的には、ＲＡＭ初期化コントロール部１０は、内部リセット信号発生部２が出力する内部リセット信号ＲＳＴ＿ＩＮを入力し、内部リセット信号ＲＳＴ＿ＩＮがＨレベル（活性レベル）からＬレベル（非活性レベル）に遷移すると、アドレス生成カウンタ部１１、データ生成部１２およびＷＥ生成部１３にＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄの初期化に必要な動作を開始させると共に、ＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄの初期化が完了するまで、内部リセットディレイ信号ＲＳＴ＿ＩＮ＿ＤＬＹのレベルをＨレベル（活性レベル）に維持してＣＰＵ９に初期状態を維持させ、そして、ＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄの初期化が完了すると、内部リセットディレイ信号ＲＳＴ＿ＩＮ＿ＤＬＹのレベルをＬレベル（非活性レベル）とすることにより、ＣＰＵ９の初期状態を解除する。
【００１８】
アドレス生成カウンタ部１１は、ＲＡＭ初期化コントロール部１０により制御され、ＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄに与える初期化のためのアドレスＡＤＲ＿ＩＮＩを生成してアドレスバス４、命令用アドレスバス１７−Ｉおよびデータ用アドレスバス１７−Ｄに出力するものである。
【００１９】
データ生成部１２は、ＲＡＭ初期化コントロール部１０により制御され、ＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄに与える初期化のためのデータＤＡＴＡ＿ＩＮＩを生成してデータバス５、命令用データバス１８−Ｉおよびデータ用データバス１８−Ｄに出力するものである。
【００２０】
ＷＥ生成部１３は、ＲＡＭ初期化コントロール部１０により制御され、ＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄに対する初期化のためのデータＤＡＴＡ＿ＩＮＩの書き込みを可能とするためのＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩを生成して出力するものである。ここで、ＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩ＝Ｈレベル（活性レベル）の場合、ＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄに対する初期化のためのデータＤＡＴＡ＿ＩＮＩの書き込みが可能となる。
【００２１】
そこで、ＷＥ生成部１３は、ＲＡＭ初期化コントロール部１０からＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄの初期化開始を指示されると、ＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄの初期化が完了するまで、ＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩ＝Ｈレベル（活性レベル）とし、それ以外の期間は、ＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩ＝Ｌレベル（非活性レベル）とする。
【００２２】
ＲＡＭ６−０において、２３−０はライトイネーブル信号入力端子であり、ＯＲ回路７−０の出力端子は、ＲＡＭ６−０のライトイネーブル信号入力端子２３−０に接続され、ＯＲ回路７−０の一方の入力端子にＣＰＵ９が出力するＲＡＭ６−０用のＲＡＭライトイネーブル信号ＷＥ＿０が与えられ、ＯＲ回路７−０の他方の入力端子にＷＥ生成部１３が出力するＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩが与えられるように構成されている。
【００２３】
また、ＲＡＭ６−０において、２４−０はクロックインヒビット信号入力端子であり、組合せ論理回路８−０の出力端子は、ＲＡＭ６−０のクロックインヒビット信号入力端子２４−０に接続され、組合せ論理回路８−０の一方の入力端子にＣＰＵ９が出力するＲＡＭ６−０用のＲＡＭクロックインヒビット信号ＩＨ＿０が与えられ、組合せ論理回路８−０の他方の入力端子にＷＥ生成部１３が出力するＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩが与えられるように構成されている。
【００２４】
したがって、ＲＡＭライトイネーブル信号ＷＥ＿０＝Ｈレベル（活性レベル）、ＲＡＭクロックインヒビット信号ＩＨ＿０＝Ｌレベル（非活性レベル）の場合には、ＲＡＭ６−０においては、ライトイネーブル信号入力端子２３−０はＨレベル（活性レベル）、クロックインヒビット信号入力端子２４−０はＬレベル（非活性レベル）となり、ＣＰＵ９からＲＡＭ６−０に対する書き込みが可能となる。
【００２５】
これに対して、ＲＡＭライトイネーブル信号ＷＥ＿０＝Ｌレベル（非活性レベル）、ＲＡＭクロックインヒビット信号ＩＨ＿０＝Ｈレベル（活性レベル）とし、ＣＰＵ９がＲＡＭ６−０への書き込みを自己禁止している場合であっても、ＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩ＝Ｈレベル（活性レベル）の場合には、ライトイネーブル信号入力端子２３−０はＨレベル（活性レベル）、クロックインヒビット信号入力端子２４−０はＬレベル（非活性レベル）となり、ＲＡＭ初期化ユニット３によるＲＡＭ６−０に対する書き込みが可能となる。
【００２６】
ＲＡＭ６−１において、２３−１はライトイネーブル信号入力端子であり、ＯＲ回路７−１の出力端子は、ＲＡＭ６−１のライトイネーブル信号入力端子２３−１に接続され、ＯＲ回路７−１の一方の入力端子にＣＰＵ９が出力するＲＡＭ６−１用のＲＡＭライトイネーブル信号ＷＥ＿１が与えられ、ＯＲ回路７−１の他方の入力端子にＷＥ生成部１３が出力するＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩが与えられるように構成されている。
【００２７】
また、ＲＡＭ６−１において、２４−１はクロックインヒビット信号入力端子であり、組合せ論理回路８−１の出力端子は、ＲＡＭ６−１のクロックインヒビット信号入力端子２４−１に接続され、組合せ論理回路８−１の一方の入力端子にＣＰＵ９が出力するＲＡＭ６−１用のＲＡＭクロックインヒビット信号ＩＨ＿１が与えられ、組合せ論理回路８−１の他方の入力端子にＷＥ生成部１３が出力するＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩが与えられるように構成されている。
【００２８】
したがって、ＲＡＭライトイネーブル信号ＷＥ＿１＝Ｈレベル（活性レベル）、ＲＡＭクロックインヒビット信号ＩＨ＿１＝Ｌレベル（非活性レベル）の場合には、ＲＡＭ６−１においては、ライトイネーブル信号入力端子２３−１はＨレベル（活性レベル）、クロックインヒビット信号入力端子２４−１はＬレベル（非活性レベル）となり、ＣＰＵ９からＲＡＭ６−１に対する書き込みが可能となる。
【００２９】
これに対して、ＲＡＭライトイネーブル信号ＷＥ＿１＝Ｌレベル（非活性レベル）、ＲＡＭクロックインヒビット信号ＩＨ＿１＝Ｈレベル（活性レベル）とし、ＣＰＵ９がＲＡＭ６−１への書き込みを自己禁止している場合であっても、ＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩ＝Ｈレベル（活性レベル）の場合には、ライトイネーブル信号入力端子２３−１はＨレベル（活性レベル）、クロックインヒビット信号入力端子２４−１はＬレベル（非活性レベル）となり、ＲＡＭ初期化ユニット３によるＲＡＭ６−１に対する書き込みが可能となる。
【００３０】
命令キャッシュ１６−Ｉにおいて、２５−Ｉはライトイネーブル信号入力端子であり、ＯＲ回路１９−Ｉの出力端子は、命令キャッシュ１６−Ｉのライトイネーブル信号入力端子２５−Ｉに接続され、ＯＲ回路１９−Ｉの一方の入力端子にバスインタフェース１５が出力するタグＲＡＭ２１−Ｉ用の命令キャッシュ・タグＲＡＭライトイネーブル信号ＷＥ＿Ｉが与えられ、ＯＲ回路１９−Ｉの他方の入力端子にＷＥ生成部１３が出力するＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩが与えられるように構成されている。
【００３１】
また、命令キャッシュ１６−Ｉにおいて、２６−Ｉはクロックインヒビット信号入力端子であり、組合せ論理回路２０−Ｉの出力端子は、命令キャッシュ１６−Ｉのクロックインヒビット入力端子２６−Ｉに接続され、組合せ論理回路２０−Ｉの一方の入力端子にバスインタフェース１５が出力するタグＲＡＭ２１−Ｉ用の命令キャッシュ・タグＲＡＭクロックインヒビット信号ＩＨ＿Ｉが与えられ、組合せ論理回路２０−Ｉの他方の入力端子にＷＥ生成部１３が出力するＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩが与えられるように構成されている。
【００３２】
したがって、命令キャッシュ・タグＲＡＭライトイネーブル信号ＷＥ＿Ｉ＝Ｈレベル（活性レベル）、命令キャッシュ・タグＲＡＭクロックインヒビット信号ＩＨ＿Ｉ＝Ｌレベル（非活性レベル）の場合には、命令キャッシュ１６−Ｉにおいては、ライトイネーブル信号入力端子２５−ＩはＨレベル（活性レベル）、クロックインヒビット信号入力端子２６−ＩはＬレベル（非活性レベル）となり、ＣＰＵ９の内部動作によるタグＲＡＭ２１−Ｉに対する書き込みが可能となる。
【００３３】
これに対して、命令キャッシュ・タグＲＡＭライトイネーブル信号ＷＥ＿Ｉ＝Ｌレベル（非活性レベル）、命令キャッシュ・タグＲＡＭクロックインヒビット信号ＩＨ＿Ｉ＝Ｈレベル（活性レベル）とし、ＣＰＵ９の内部動作によるタグＲＡＭ２１−Ｉへの書き込みが禁止される場合でも、ＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩ＝Ｈレベル（活性レベル）の場合には、ライトイネーブル信号入力端子２５−ＩはＨレベル（活性レベル）、クロックインヒビット信号入力端子２６−ＩはＬレベル（非活性レベル）となり、ＲＡＭ初期化ユニット３によるタグＲＡＭ２１−Ｉに対する書き込みが可能となる。
【００３４】
データキャッシュ１６−Ｄにおいて、２５−Ｄはライトイネーブル信号入力端子であり、ＯＲ回路１９−Ｄの出力端子は、データキャッシュ１６−Ｄのライトイネーブル信号入力端子２５−Ｄに接続され、ＯＲ回路１９−Ｄの一方の入力端子にバスインタフェース１５が出力するタグＲＡＭ２１−Ｄ用のデータキャッシュ・タグＲＡＭライトイネーブル信号ＷＥ＿Ｄが与えられ、ＯＲ回路１９−Ｄの他方の入力端子にＷＥ生成部１３が出力するＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩが与えられるように構成されている。
【００３５】
また、データキャッシュ１６−Ｄにおいて、２６−Ｄはクロックインヒビット信号入力端子であり、組合せ論理回路２０−Ｄの出力端子は、データキャッシュ１６−Ｄのクロックインヒビット信号入力端子２６−Ｄに接続され、組合せ論理回路２０−Ｄの一方の入力端子にバスインタフェース１５が出力するタグＲＡＭ２１−Ｄ用のデータキャッシュ・タグＲＡＭクロックインヒビット信号ＩＨ＿Ｄが与えられ、組合せ論理回路２０−Ｄの他方の入力端子にＷＥ生成部１３が出力するＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩが与えられるように構成されている。
【００３６】
したがって、データキャッシュ・タグＲＡＭライトイネーブル信号ＷＥ＿Ｄ＝Ｈレベル（活性レベル）、データキャッシュ・タグＲＡＭクロックインヒビット信号ＩＨ＿Ｄ＝Ｌレベル（非活性レベル）の場合には、データキャッシュ１６−Ｄにおいては、ライトイネーブル信号入力端子２５−ＤはＨレベル（活性レベル）、クロックインヒビット信号入力端子２６−ＤはＬレベル（非活性レベル）となり、ＣＰＵ９の内部動作によるタグＲＡＭ２１−Ｄに対する書き込みが可能となる。
【００３７】
これに対して、データキャッシュ・タグＲＡＭライトイネーブル信号ＷＥ＿Ｄ＝Ｌレベル（非活性レベル）、データキャッシュ・タグＲＡＭクロックインヒビット信号ＩＨ＿Ｄ＝Ｈレベル（活性レベル）とし、ＣＰＵ９の内部動作によるタグＲＡＭ２１−Ｄへの書き込みが禁止される場合でも、ＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩ＝Ｈレベル（活性レベル）の場合には、ライトイネーブル信号入力端子２５−ＤはＨレベル（活性レベル）、クロックインヒビット信号入力端子２６−ＤはＬレベル（非活性レベル）となり、ＲＡＭ初期化ユニット３によるタグＲＡＭ２１−Ｄに対する書き込みが可能となる。
【００３８】
図２は本発明の第１実施形態におけるＲＡＭ初期化動作を示すタイミングチャートである。即ち、本発明の第１実施形態においては、外部リセット信号ＲＳＴがＨレベル（活性レベル）からＬレベル（非活性レベル）に遷移してＣＰＵ９の初期状態解除が指示されると、内部リセット信号発生部２は、クロックＣＬＫを生成するための水晶振動子の発振が安定する期間だけ遅延させて内部リセット信号ＲＳＴ＿ＩＮをＨレベル（活性レベル）からＬレベル（非活性レベル）に遷移させる。
【００３９】
そして、ＲＡＭ初期化コントロール部１０は、内部リセット信号ＲＳＴ＿ＩＮがＨレベル（活性レベル）からＬレベル（非活性レベル）に遷移すると、アドレス生成カウンタ部１１、データ生成部１２およびＷＥ生成部１３にＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄの初期化に必要な動作を開始させると共に、ＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄの初期化が完了するまで、内部リセットディレイ信号ＲＳＴ＿ＩＮ＿ＤＬＹをＨレベル（活性レベル）に維持し、ＣＰＵ９に初期状態を維持させる。
【００４０】
ここに、アドレス生成カウンタ部１１は、ＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄに与える初期化のためのアドレスＡＤＲ＿ＩＮＩを生成してアドレスバス４および命令用アドレスバス１７−Ｉ、１７−Ｄに出力し、データ生成部１２は、ＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄに与える初期化のためのデータＤＡＴＡ＿ＩＮＩとして、“０ｘ００００００００”（但し、０ｘは１６進数表記を示す）を生成してデータバス５およびデータ用データバス１８−Ｉ、１８−Ｄに出力し、ＷＥ生成部１３は、ＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄの初期化が完了するまで、ＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩ＝Ｈレベル（活性レベル）とする。
【００４１】
ＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩ＝Ｈレベル（活性レベル）となることから、ＲＡＭ６−０、６−１、命令キャッシュ１６−Ｉ、データキャッシュ１６−Ｄのライトイネーブル信号入力端子２３−０、２３−１、２５−Ｉ、２５−ＤはＨレベル（活性レベル）、クロックインヒビット信号入力端子２４−０、２４−１、２６−Ｉ、２６−ＤはＬレベル（非活性レベル）になる。この結果、ＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄの初期化が可能となる。
【００４２】
そして、ＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄの初期化が完了すると、ＷＥ生成部１３は、ＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩ＝Ｌレベル（非活性レベル）にすると共に、内部リセットディレイ信号ＲＳＴ＿ＩＮ＿ＤＬＹをＬレベル（非活性レベル）に遷移させ、ＣＰＵ９のリセット信号入力端子２２をＬレベル（非活性レベル）にしてＣＰＵ９の初期状態を解除する。この結果、ＣＰＵ９は、通常動作に移行する。
【００４３】
ここで、例えば、タグＲＡＭ２１−Ｉにアドレス０ｘ０００１＿００００〜０ｘ０００１＿３ｆｆｃを割り当て、タグＲＡＭ２１−Ｄにアドレス０ｘ０００２＿００００〜０ｘ０００２＿７ｆｆｃを割り当て、ＲＡＭ６−０にアドレス０ｘ０００３＿００００〜０ｘ０００３＿ｆｆｆｃを割り当て、ＲＡＭ６−１にアドレス０ｘ０００４＿００００〜０ｘ０００４＿ｆｆｆｃを割り当てるものとする。
【００４４】
また、バスインタフェース１５は、通常動作時、アドレスの上位１６ビットが０ｘ０００１であれば、命令キャッシュ・タグＲＡＭクロックインヒビット信号ＩＨ＿Ｉ＝０とし、０ｘ０００２であれば、データキャッシュ・タグＲＡＭクロックインヒビット信号ＩＨ＿Ｄ＝０とし、０ｘ０００３であれば、ＲＡＭクロックインヒビット信号ＩＨ＿０＝０とし、０ｘ０００４であれば、ＲＡＭクロックインヒビット信号ＩＨ＿１＝０とするように動作し、ＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄの中から１個のＲＡＭを選択するように動作するものとする。
【００４５】
このようにする場合には、ＲＡＭ初期化時には、ＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩ＝Ｈレベル、ＲＡＭ６−０、６−１、命令キャッシュ１６−Ｉ、データキャッシュ１６−Ｄのライトイネーブル信号入力端子２３−０、２３−１、２５−Ｉ、２５−ＤはＨレベル（活性レベル）、クロックインヒビット信号入力端子２４−０、２４−１、２６−Ｉ、２６−ＤはＬレベル（非活性レベル）になるので、初期化のためのアドレスＡＤＲ＿ＩＮＩを０ｘ００００から０ｘｆｆｆｃまで順にインクリメントすることで、ＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄの初期化を同時に行うことができる。
【００４６】
以上のように、本発明の第１実施形態によれば、ＲＡＭ初期化ユニット３によりＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄの初期化を自動的に行い、ＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄの未書き込みアドレスの記憶値を初期値“０ｘ００００００００”に設定することができる。したがって、ユーザプログラム評価時に、ユーザプログラムミスにより、ＲＡＭ６−０、６−１、タグＲＡＭ２１−Ｉ、２１−Ｄの未書き込みアドレスからの読み出しを行った場合、常に初期値“０ｘ００００００００”が読み出されることになる。
【００４７】
この場合、初期値“０ｘ００００００００”が正常動作に都合の悪い値である場合には、ユーザプログラム評価時に、ＲＡＭ６−０、６−１、タグＲＡＭ２１−Ｉ、２１−Ｄの未書き込みアドレスからの読み出しというユーザプログラムミスをＬＳＩの異常動作として発見することができ、ユーザプログラムの修正の機会を得ることができ、これにより、ＬＳＩの実使用時におけるＲＡＭ６−０、６−１、タグＲＡＭ２１−Ｉ、２１−Ｄの未書き込みアドレスからの読み出しというユーザプログラムミスによる異常動作を防ぐことができる。
【００４８】
これに対して、初期値“０ｘ００００００００”がたまたま正常動作に都合の良い値であった場合には、ユーザプログラム評価時に、ＲＡＭ６−０、６−１、タグＲＡＭ２１−Ｉ、２１−Ｄの未書き込みアドレスからの読み出しというユーザプログラムミスはＬＳＩの異常動作として発見することができないが、この場合には、ＬＳＩの実使用時にも異常動作とはならず、ユーザプログラムミスは何ら問題とならない。
【００４９】
このように、本発明の第１実施形態によれば、ＲＡＭ初期化ユニット３がＲＡＭ６−０、６−１、タグＲＡＭ２１−Ｉ、２１−Ｄに書き込む初期値“０ｘ００００００００”が正常動作に都合の悪い値であっても、都合の良い値であっても、ＬＳＩの実使用時におけるＲＡＭ６−０、６−１、タグＲＡＭ２１−Ｉ、２１−Ｄの未書き込みアドレスからの読み出しというユーザプログラムミスによる異常動作を防ぐことができる。
【００５０】
（第２実施形態）
図３は本発明の第２実施形態の要部を示す回路図である。本発明の第２実施形態は、外部リセット信号ＲＳＴが解除されたことによるＲＡＭの自動初期化を行うか否かを選択することができ、また、ＲＡＭ初期化レジスタに所定値を書き込むことによりＲＡＭの初期化を自動的に行うことができ、また、キャッシュ・オン直後にタグＲＡＭの初期化を自動的に行うことができるようにしたものである。
【００５１】
本発明の第２実施形態は、外部リセット信号入力端子１と、内部リセット信号発生部２と、外部リセット信号ＲＳＴが解除された直後のＲＡＭの自動初期化を抑止するＲＡＭ初期化抑止信号（ＮＯＴ＿ＲＡＭ＿ＩＮＩ）を入力するためのＲＡＭ初期化抑止信号入力端子２７と、ＲＡＭ初期化専用のハードウエアであるＲＡＭ初期化ユニット２８と、アドレスバス４、データバス５と、ＲＡＭ６−０、６−１と、ＯＲ回路７−０、７−１と、組合せ論理回路８−０、８−１と、ＣＰＵ２９を有している。なお、外部リセット信号入力端子１と、内部リセット信号発生部２と、アドレスバス４、データバス５と、ＲＡＭ６−０、６−１と、ＯＲ回路７−０、７−１と、組合せ論理回路８−０、８−１は、本発明の第１実施形態が備えるものと同様のものである。
【００５２】
ＲＡＭ初期化ユニット２８は、ＲＡＭ初期化コントロール部３０と、アドレス生成カウンタ部３１と、データ生成部３２と、ＷＥ生成部３３と、ＲＡＭ初期化レジスタ３４を有している。ＣＰＵ２９は、図１に示すＣＰＵ９と同様に、整数演算ユニット１４と、バスインタフェース１５と、命令キャッシュ１６−Ｉと、命令用アドレスバス１７−Ｉと、命令用データバス１８−Ｉと、データキャッシュ１６−Ｄと、データ用アドレスバス１７−Ｄと、データ用データバス１８−Ｄと、ＯＲ回路１９−Ｉ、１９−Ｄと、組合せ論理回路２０−Ｉ、２０−Ｄを有しており、命令キャッシュ１６−ＩはタグＲＡＭ２１−１を有し、データキャッシュ１６−ＤはタグＲＡＭ２１−Ｄを有している。
【００５３】
ＣＰＵ２９がＣＰＵ９と異なる点は、ＣＰＵ２９のリセット信号入力端子３５に内部リセット信号発生部２が出力する内部リセット信号ＲＳＴ＿ＩＮが与えられる点、ＲＡＭ初期化コントロール部３０からＲＡＭ初期化リクエスト信号ＲＡＭ＿ＩＮＩ＿ＲＥＱを受ける機能を有している点、ＲＡＭ初期化コントロール部３０にＲＡＭ初期化アクノリッジ信号ＲＡＭ＿ＩＮＩ＿ＡＣＫ、命令キャッシュ・オン信号ＩＣＡＣＨＥ＿ＯＮおよびデータキャッシュ・オン信号ＤＣＡＣＨＥ＿ＯＮを与える機能を有している点などである。
【００５４】
ＲＡＭ初期化コントロール部３０は、アドレス生成カウンタ部３１、データ生成部３２、ＷＥ生成部３３およびＣＰＵ２９を制御し、ＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄの初期化を制御するものであり、内部リセット信号発生部２が出力する内部リセット信号ＲＳＴ＿ＩＮを受ける機能、ＲＡＭ初期化抑止信号ＮＯＴ＿ＲＡＭ＿ＩＮＩを受ける機能、ＣＰＵ２９が出力する命令キャッシュ・オン信号ＩＣＡＣＨＥ＿ＯＮと、データキャッシュ・オン信号ＤＣＡＣＨＥ＿ＯＮと、ＲＡＭ初期化アクノリッジ信号ＲＡＭ＿ＩＮＩ＿ＡＣＫを受ける機能、ＣＰＵ２９にＲＡＭ初期化リクエスト信号ＲＡＭ＿ＩＮＩ＿ＲＥＱを与える機能などを有している。
【００５５】
具体的には、ＲＡＭ初期化コントロール部３０は、ＲＡＭ初期化抑止信号ＮＯＴ＿ＲＡＭ＿ＩＮＩ＝Ｌレベル（非活性レベル）の場合には、内部リセット信号ＲＳＴ＿ＩＮがＬレベル（非活性レベル）に遷移すると、ＲＡＭ６−０、６−１の初期化制御を開始し、又は、ＲＡＭ初期化抑止信号ＮＯＴ＿ＲＡＭ＿ＩＮＩ＝Ｈレベル（活性レベル）の場合には、内部リセット信号ＲＳＴ＿ＩＮがＬレベル（非活性レベル）に遷移しても、ＲＡＭ６−０、６−１の初期化制御を行わず、また、ＲＡＭ初期化レジスタ３４に“１”が書き込まれることにより、ＲＡＭ６−０、６−１の初期化制御を開始し、また、命令キャッシュ・オン信号ＩＣＡＣＨＥ＿ＯＮがＨレベル（活性レベル）になると、タグＲＡＭ２１−Ｉの初期化制御を開始し、また、データキャッシュ・オン信号ＤＣＡＣＨＥ＿ＯＮがＨレベル（活性レベル）になると、タグＲＡＭ２１−Ｄの初期化制御を開始する。
【００５６】
アドレス生成カウンタ部３１は、ＲＡＭ初期化コントロール部３０により制御され、ＲＡＭ６−０、６−１の初期化時には、ＲＡＭ６−０、６−１に与える初期化のためのアドレスＡＤＲ＿ＩＮＩを生成してアドレスバス４に出力し、また、タグＲＡＭ２１−Ｉの初期化時には、タグＲＡＭ２１−Ｉに与える初期化のためのアドレスＡＤＲ＿Ｃ＿ＩＮＩを生成して命令用アドレスバス１７−Ｉおよびデータ用アドレスバス１７−Ｄに出力し、また、タグＲＡＭ２１−Ｄの初期化時には、タグＲＡＭ２１−Ｄに与える初期化のためのアドレスＡＤＲ＿Ｃ＿ＩＮＩを生成して命令用アドレスバス１７−Ｉおよびデータ用アドレスバス１７−Ｄに出力するものである。
【００５７】
データ生成部３２は、ＲＡＭ初期化コントロール部３０により制御され、ＲＡＭ６−０、６−１の初期化時には、ＲＡＭ６−０、６−１に与える初期化のためのデータＤＡＴＡ＿ＩＮＩを生成してデータバス５、命令用データバス１８−Ｉおよびデータ用データバス１８−Ｄに出力し、また、タグＲＡＭ２１−Ｉの初期化時には、タグＲＡＭ２１−Ｉに与える初期化のためのデータＤＡＴＡ＿ＩＮＩを生成してデータバス５、命令用データバス１８−Ｉおよびデータ用データバス１８−Ｄに出力し、また、タグＲＡＭ２１−Ｄの初期化時には、タグＲＡＭ２１−Ｄに与える初期化のためのデータＤＡＴＡ＿ＩＮＩを生成してデータバス５、命令用データバス１８−Ｉおよびデータ用データバス１８−Ｄに出力するものである。
【００５８】
ＷＥ生成部３３は、ＲＡＭ初期化コントロール部３０により制御され、ＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩ、命令キャッシュ・タグＲＡＭ初期化ライトイネーブル信号ＷＥ＿Ｉ＿ＩＮＩ、データキャッシュ・タグＲＡＭ初期化ライトイネーブル信号ＷＥ＿Ｄ＿ＩＮＩを生成し、ＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩをＯＲ回路７−０、７−１、組合せ論理回路８−０、８−１に与え、命令キャッシュ・タグＲＡＭ初期化ライトイネーブル信号ＷＥ＿Ｉ＿ＩＮＩをＯＲ回路１９−Ｉ、組合せ論理回路２０−Ｉに与え、データキャッシュ・タグＲＡＭ初期化ライトイネーブル信号ＷＥ＿Ｄ＿ＩＮＩをＯＲ回路１９−Ｄ、組合せ論理回路２０−Ｄに与えるものである。
【００５９】
即ち、本実施形態では、ＯＲ回路１９−Ｉの一方の入力端子にはバスインタフェース１５が出力するタグＲＡＭ２１−Ｉ用の命令キャッシュ・タグＲＡＭライトイネーブル信号ＷＥ＿Ｉが与えられるが、ＯＲ回路１９−Ｉの他方の入力端子にはＷＥ生成部３３が出力する命令キャッシュ・タグＲＡＭ初期化ライトイネーブル信号ＷＥ＿Ｉ＿ＩＮＩが与えられる。また、組合せ論理回路２０−Ｉの一方の入力端子にはバスインタフェース１５が出力するタグＲＡＭ２１−Ｉ用の命令キャッシュ・タグＲＡＭクロックインヒビット信号ＩＨ＿Ｉが与えられるが、組合せ論理回路２０−Ｉの他方の入力端子にはＷＥ生成部３３が出力する命令キャッシュ・タグＲＡＭ初期化ライトイネーブル信号ＷＥ＿Ｉ＿ＩＮＩが与えられる。
【００６０】
また、ＯＲ回路１９−Ｄの一方の入力端子にはバスインタフェース１５が出力するタグＲＡＭ２１−Ｄ用のデータキャッシュ・タグＲＡＭライトイネーブル信号ＷＥ＿Ｄが与えられるが、ＯＲ回路１９−Ｄの他方の入力端子にはＷＥ生成部３３が出力するデータキャッシュ・タグＲＡＭ初期化ライトイネーブル信号ＷＥ＿Ｄ＿ＩＮＩが与えられる。また、組合せ論理回路２０−Ｄの一方の入力端子にはバスインタフェース１５が出力するタグＲＡＭ２１−Ｄ用のデータキャッシュ・タグＲＡＭクロックインヒビット信号ＩＨ＿Ｄが与えられるが、組合せ論理回路２０−Ｄの他方の入力端子にはＷＥ生成部３３が出力するデータキャッシュ・タグＲＡＭ初期化ライトイネーブル信号ＷＥ＿Ｄ＿ＩＮＩが与えられる。
【００６１】
したがって、ＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩ＝Ｈレベル（活性レベル）の場合、ＲＡＭ６−０、６−１に対する初期化データＤＡＴＡ＿ＩＮＩの書き込みが可能となる。また、命令キャッシュ・タグＲＡＭ初期化ライトイネーブル信号ＷＥ＿Ｉ＿ＩＮＩ＝Ｈレベル（活性レベル）の場合、タグＲＡＭ２１−Ｉに対する初期化データＤＡＴＡ＿ＩＮＩの書き込みが可能となる。また、データキャッシュ・タグＲＡＭ初期化ライトイネーブル信号ＷＥ＿Ｄ＿ＩＮＩ＝Ｈレベル（活性レベル）の場合、タグＲＡＭ２１−Ｄに対する初期化データＤＡＴＡ＿ＩＮＩの書き込みが可能となる。
【００６２】
そこで、ＷＥ生成部３３は、ＲＡＭ初期化コントロール部３０からＲＡＭ６−０、６−１の初期化開始を指示されると、ＲＡＭ６−０、６−１の初期化が完了するまで、ＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩ＝Ｈレベル（活性レベル）とし、それ以外の期間は、ＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩ＝Ｌレベル（非活性レベル）とする。
【００６３】
また、ＷＥ生成部３３は、ＲＡＭ初期化コントロール部３０からタグＲＡＭ２１−Ｉの初期化開始を指示されると、タグＲＡＭ２１−Ｉの初期化が完了するまで、命令キャッシュ・タグＲＡＭ初期化ライトイネーブル信号ＷＥ＿Ｉ＿ＩＮＩ＝Ｈレベル（活性レベル）とし、それ以外の期間は、命令キャッシュ・タグＲＡＭ初期化ライトイネーブル信号ＷＥ＿Ｉ＿ＩＮＩ＝Ｌレベル（非活性レベル）とする。
【００６４】
また、ＷＥ生成部３３は、ＲＡＭ初期化コントロール部３０からタグＲＡＭ２１−Ｄの初期化開始を指示されると、タグＲＡＭ２１−Ｄの初期化が完了するまで、データキャッシュ・タグＲＡＭ初期化ライトイネーブル信号ＷＥ＿Ｄ＿ＩＮＩ＝Ｈレベル（活性レベル）とし、それ以外の期間は、データキャッシュ・タグＲＡＭ初期化ライトイネーブル信号ＷＥ＿Ｄ＿ＩＮＩ＝Ｌレベル（非活性レベル）とする。
【００６５】
ＲＡＭ初期化レジスタ３４は、１ビット構成のレジスタであり、その格納値ＲＡＭ＿ＩＮＩ＿ＲＥＧをＲＡＭ初期化コントロール部３０に与えるものであり、その格納値ＲＡＭ＿ＩＮＩ＿ＲＥＧの初期値を“０”とし、ユーザにより“１”が書き込まれると、ＲＡＭ初期化コントロール部３０は、ＲＡＭ６−０、６−１の初期化制御を開始する。
【００６６】
図４は本発明の第２実施形態における外部リセット信号解除直後のＲＡＭ初期化動作を示すタイミングチャートである。本発明の第２実施形態においては、外部リセット信号ＲＳＴがＨレベル（活性レベル）からＬレベル（非活性レベル）に遷移してＣＰＵ２９の初期状態解除が指示されると、内部リセット信号発生部２は、クロックＣＬＫを生成するための水晶振動子の発振が安定する期間だけ遅延させて内部リセット信号ＲＳＴ＿ＩＮをＨレベル（活性レベル）からＬレベル（非活性レベル）に遷移させる。
【００６７】
ＲＡＭ初期化コントロール部３０は、ＲＡＭ初期化抑止信号ＮＯＴ＿ＲＡＭ＿ＩＮＩ＝Ｌレベル（非活性レベル）とされている場合には、内部リセットＲＳＴ＿ＩＮがＨレベル（活性レベル）からＬレベル（非活性レベル）に遷移すると、ＣＰＵ２９に与えるＲＡＭ初期化リクエスト信号ＲＡＭ＿ＩＮＩ＿ＲＥＱをＬレベル（非活性レベル）からＨレベル（活性レベル）に遷移させ、ＣＰＵ２９に対してアドレスバス４およびデータバス５の使用禁止を要求する。
【００６８】
ＣＰＵ２９は、ＲＡＭ初期化リクエスト信号ＲＡＭ＿ＩＮＩ＿ＲＥＱがＬレベル（非活性レベル）からＨレベル（活性レベル）に遷移すると、ＲＡＭ初期化アクノリッジ信号ＲＡＭ＿ＩＮＩ＿ＡＣＫをＬレベル（非活性レベル）からＨレベル（活性レベル）に遷移させて、アドレスバス４およびデータバス５の使用禁止要求を承認する。
【００６９】
そして、ＲＡＭ初期化コントロール部３０は、ＲＡＭ初期化アクノリッジ信号ＲＡＭ＿ＩＮＩ＿ＡＣＫがＬレベル（非活性レベル）からＨレベル（活性レベル）に遷移すると、ＲＡＭ６−０、６−１の初期化制御を開始し、アドレス生成カウンタ部３１、データ生成部３２およびＷＥ生成部３３にＲＡＭ初期化動作を開始させる。
【００７０】
ここに、アドレス生成カウンタ部３１は、ＲＡＭ６−０、６−１に与える初期化のためのアドレスＡＤＲ＿ＩＮＩを生成してアドレスバス４に出力し、データ生成部３２は、ＲＡＭ６−０、６−１に与える初期化のためのデータＤＡＴＡ＿ＩＮＩとして、“０ｘ００００００００”を生成してデータバス５、データ用データバス１８−Ｉ、１８−Ｄに出力し、ＷＥ生成部３３は、ＲＡＭ６−０、６−１の初期化が完了するまで、ＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩ＝Ｈレベル（活性レベル）とする。
【００７１】
ここで、ＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩ＝Ｈレベル（活性レベル）となることから、ＲＡＭ６−０、６−１のライトイネーブル信号入力端子２３−０、２３−１はＨレベル（活性レベル）、クロックインヒビット信号入力端子２４−０、２４−１はＬレベル（非活性レベル）になる。この結果、ＲＡＭ初期化ユニット２８によるＲＡＭ６−０、６−１の初期化が可能となる。
【００７２】
そして、ＲＡＭ６−０、６−１の初期化が完了すると、ＷＥ生成部３３は、ＲＡＭ初期化ライトイネーブル信号ＷＥ＿ＩＮＩ＝Ｌレベル（非活性レベル）にすると共に、ＲＡＭ初期化コントロール部３０は、ＲＡＭ初期化リクエスト信号ＲＡＭ＿ＩＮＩ＿ＲＥＱをＨレベル（活性レベル）からＬレベル（非活性レベル）に遷移させ、ＣＰＵ２９は、これを受けて、ＲＡＭ初期化アクノリッジ信号ＲＡＭ＿ＩＮＩ＿ＡＣＫをＨレベル（活性レベル）からＬレベル（非活性レベル）に遷移させ、通常動作に移行する。
【００７３】
なお、外部リセット信号ＲＳＴがＨレベル（活性レベル）からＬレベル（非活性レベル）に遷移し、内部リセット信号発生部２が内部リセット信号ＲＳＴ＿ＩＮをＨレベル（活性レベル）からＬレベル（非活性レベル）に遷移させた場合においても、ＲＡＭ初期化コントロール部３０は、ＲＡＭ初期化抑止信号ＮＯＴ＿ＲＡＭ＿ＩＮＩ＝Ｈレベル（活性レベル）とされている場合には、ＣＰＵ２９に与えるＲＡＭ初期化リクエスト信号ＲＡＭ＿ＩＮＩ＿ＲＥＱをＬレベルに維持し、ＲＡＭ６−０、６−１の初期化制御を実行しない。
【００７４】
図５は本発明の第２実施形態におけるＲＡＭ初期化レジスタ３４への“１”の書き込みによるＲＡＭ初期化動作を示すタイミングチャートである。本発明の第２実施形態においては、通常動作時に、ＲＡＭ初期化レジスタ３４に“１”が書き込まれると、ＲＡＭ初期化抑止信号ＮＯＴ＿ＲＡＭ＿ＩＮＩのレベルに関係なく、ＲＡＭ初期化コントロール部３０は、ＣＰＵ２９に与えるＲＡＭ初期化リクエスト信号ＲＡＭ＿ＩＮＩ＿ＲＥＱをＬレベル（非活性レベル）からＨレベル（活性レベル）に遷移させ、ＣＰＵ２９に対してアドレスバス４およびデータバス５の使用禁止を要求する。
【００７５】
ＣＰＵ２９は、ＲＡＭ初期化リクエスト信号ＲＡＭ＿ＩＮＩ＿ＲＥＱがＬレベル（非活性レベル）からＨレベル（活性レベル）に遷移すると、ＲＡＭ初期化アクノリッジ信号ＲＡＭ＿ＩＮＩ＿ＡＣＫをＬレベル（非活性レベル）からＨレベル（活性レベル）に遷移し、アドレスバス４およびデータバス５の使用禁止要求を承認する。以下、内部リセット信号ＲＳＴ＿ＩＮがＨレベル（活性レベル）からＬレベル（非活性レベル）に遷移した場合と同様に、ＲＡＭ初期化ユニット２８によるＲＡＭ６−０、６−１の初期化が自動的に行われる。
【００７６】
図６は本発明の第２実施形態における命令キャッシュ・オン信号（データキャッシュ・オン信号）によるタグＲＡＭ初期化動作を示すタイミングチャートである。本発明の第２実施形態においては、通常動作時に、命令キャッシュ１６−Ｉがオンとされたことを示す命令キャッシュ・オン信号ＩＣＡＣＨＥ＿ＯＮがＬレベル（非活性レベル）からＨレベル（活性レベル）に遷移すると、ＲＡＭ初期化抑止信号ＮＯＴ＿ＲＡＭ＿ＩＮＩのレベルに関係なく、ＲＡＭ初期化コントロール部３０は、ＣＰＵ２９に対して、ＲＡＭ初期化リクエスト信号ＲＡＭ＿ＩＮＩ＿ＲＥＱをＬレベル（非活性レベル）からＨレベル（活性レベル）に遷移させ、ＣＰＵ２９に対して命令用アドレスバス１７−Ｉ、命令用データバス１８−Ｉおよびデータ用アドレスバス１７−Ｄ、データ用データバス１８−Ｄの使用禁止を要求する。
【００７７】
ＣＰＵ２９は、ＲＡＭ初期化リクエスト信号ＲＡＭ＿ＩＮＩ＿ＲＥＱがＬレベル（非活性レベル）からＨレベル（活性レベル）に遷移すると、ＲＡＭ初期化アクノリッジ信号ＲＡＭ＿ＩＮＩ＿ＡＣＫをＬレベル（非活性レベル）からＨレベル（活性レベル）に遷移し、命令用アドレスバス１７−Ｉ、命令用データバス１８−Ｉおよびデータ用アドレスバス１７−Ｄ、データ用データバス１８−Ｄの使用禁止要求を承認する。
【００７８】
そして、ＲＡＭ初期化コントロール部３０は、ＲＡＭ初期化アクノリッジ信号ＲＡＭ＿ＩＮＩ＿ＡＣＫがＬレベル（非活性レベル）からＨレベル（活性レベル）に遷移すると、タグＲＡＭ２１−Ｉの初期化制御を開始し、アドレス生成カウンタ部３１、データ生成部３２およびＷＥ生成部３３にタグＲＡＭ２１−Ｉの初期化動作を開始させる。
【００７９】
ここに、アドレス生成カウンタ部３１は、タグＲＡＭ２１−Ｉに与える初期化のためのアドレスＡＤＲ＿Ｃ＿ＩＮＩを生成して命令用アドレスバス１７−Ｉおよびデータ用アドレスバス１７−Ｄ上に出力し、データ生成部３２は、タグＲＡＭ２１−Ｉに与える初期化データＤＡＴＡ＿ＩＮＩとして、“０ｘ００００００００”を生成してデータバス５、データ用データバス１８−Ｉ、１８−Ｄに出力し、ＷＥ生成部３３は、タグＲＡＭ２１−Ｉの初期化が完了するまで、命令キャッシュ・タグＲＡＭ初期化ライトイネーブル信号ＷＥ＿Ｉ＿ＩＮＩ＝Ｈレベル（活性レベル）とする。
【００８０】
ここで、命令キャッシュ・タグＲＡＭ初期化ライトイネーブル信号ＷＥ＿Ｉ＿ＩＮＩ＝Ｈレベル（活性レベル）となることから、タグＲＡＭ２１−Ｉのライトイネーブル信号入力端子２５−ＩはＨレベル（活性レベル）、クロックインヒビット信号入力端子２６−１はＬレベル（非活性レベル）になる。この結果、ＲＡＭ初期化ユニット２８によるタグＲＡＭ２１−Ｉの初期化が可能となる。
【００８１】
そして、タグＲＡＭ２１−Ｉの初期化が完了すると、ＷＥ生成部３３は、命令キャッシュ・タグＲＡＭ初期化ライトイネーブル信号ＷＥ＿Ｉ＿ＩＮＩ＝Ｌレベル（非活性レベル）にすると共に、ＲＡＭ初期化コントロール部３０は、ＲＡＭ初期化リクエスト信号ＲＡＭ＿ＩＮＩ＿ＲＥＱをＨレベル（活性レベル）からＬレベル（非活性レベル）に遷移させ、ＣＰＵ２９は、これを受けて、ＲＡＭ初期化アクノリッジ信号ＲＡＭ＿ＩＮＩ＿ＡＣＫをＨレベル（活性レベル）からＬレベル（非活性レベル）に遷移させ、通常動作に移行する。
【００８２】
なお、通常動作時に、データキャッシュ１６−Ｄがオンとされたことを示すデータキャッシュ・オン信号ＤＣＡＣＨＥ＿ＯＮがＬレベル（非活性レベル）からＨレベル（活性レベル）に遷移した場合には、ＲＡＭ初期化コントロール部３０の制御により、命令キャッシュ・オン信号ＩＣＡＣＨＥ＿ＯＮがＬレベル（非活性レベル）からＨレベル（活性レベル）に遷移した場合と同様にして、ＲＡＭ初期化ユニット２８によるタグＲＡＭ２１−Ｄの初期化が自動的に行われる。但し、この場合には、ＷＥ生成部３３は、タグＲＡＭ２１−Ｄの初期化が完了するまで、データキャッシュ・タグＲＡＭ初期化ライトイネーブル信号ＷＥ＿Ｄ＿ＩＮＩ＝Ｈレベル（活性レベル）とする。
【００８３】
以上のように、本発明の第２実施形態によれば、ＲＡＭ初期化ユニット２８によりＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄの初期化を自動的に行い、ＲＡＭ６−０、６−１およびタグＲＡＭ２１−Ｉ、２１−Ｄの未書き込みアドレスの記憶値を初期値“０ｘ００００００００”に設定することができる。したがって、ユーザプログラム評価時に、ユーザプログラムミスにより、ＲＡＭ６−０、６−１、タグＲＡＭ２１−Ｉ、２１−Ｄの未書き込みアドレスからの読み出しを行った場合、常に初期値“０ｘ００００００００”が読み出されることになる。
【００８４】
この場合、初期値“０ｘ００００００００”が正常動作に都合の悪い値である場合には、ユーザプログラム評価時に、ＲＡＭ６−０、６−１、タグＲＡＭ２１−Ｉ、２１−Ｄの未書き込みアドレスからの読み出しというユーザプログラムミスをＬＳＩの異常動作として発見することができ、ユーザプログラムの修正の機会を得ることができ、これにより、ＬＳＩの実使用時におけるＲＡＭ６−０、６−１、タグＲＡＭ２１−Ｉ、２１−Ｄの未書き込みアドレスからの読み出しというユーザプログラムミスによる異常動作を防ぐことができる。
【００８５】
これに対して、初期値“０ｘ００００００００”がたまたま正常動作に都合の良い値であった場合には、ユーザプログラム評価時に、ＲＡＭ６−０、６−１、タグＲＡＭ２１−Ｉ、２１−Ｄの未書き込みアドレスからの読み出しというユーザプログラムミスはＬＳＩの異常動作として発見することができないが、この場合には、ＬＳＩの実使用時にも異常動作とはならず、ユーザプログラムミスは何ら問題とならない。
【００８６】
このように、本発明の第２実施形態によれば、ＲＡＭ初期化ユニット２８がＲＡＭ６−０、６−１、タグＲＡＭ２１−Ｉ、２１−Ｄに書き込む初期値“０ｘ００００００００”が正常動作に都合の悪い値であっても、都合の良い値であっても、ＬＳＩの実使用時におけるＲＡＭ６−０、６−１、タグＲＡＭ２１−Ｉ、２１−Ｄの未書き込みアドレスからの読み出しというユーザプログラムミスによる異常動作を防ぐことができる。
【００８７】
なお、本発明の第２実施形態においては、外部リセット信号解除直後にＲＡＭ６−０、６−１の初期化を自動的に行うか否かを選択することができるようにした場合について説明したが、選択によらず、外部リセット信号解除直後のＲＡＭ６−０、６−１の初期化を自動的に行うことができないようにすることもできる。この場合には、ＲＡＭ初期化抑止信号入力端子２７は不要であり、また、ＲＡＭ初期化コントロール部３０は、ＲＡＭ初期化レジスタ３４に“１”が書き込まれた場合に、ＲＡＭ６−０、６−１の初期化制御を行い、また、命令キャッシュ・オン信号ＩＣＡＣＨＥ＿ＯＮがＨレベル（活性レベル）にされた場合に、タグＲＡＭ２１−Ｉの初期化制御を行い、また、データキャッシュ・オン信号ＤＣＡＣＨＥ＿ＯＮがＨレベル（活性レベル）にされた場合に、タグＲＡＭ２１−Ｄの初期化制御を行うように構成する。
【００８８】
（第３実施形態）
図７は本発明の第３実施形態の要部を示す回路図である。本発明の第３実施形態は、外部リセット信号ＲＳＴが解除されると、即ち、外部リセット信号ＲＳＴがＨレベル（活性レベル）からＬレベル（非活性レベル）とされてＣＰＵの初期状態の解除が指示されると、ＲＡＭ初期化プログラムによりＲＡＭの初期化を自動的に行うものである。
【００８９】
図７中、３７は外部端子である外部リセット信号（ＲＳＴ）入力端子、３８は内部リセット信号（ＲＳＴ＿ＩＮ）発生部、３９はＲＡＭ初期化ユニット、４０はユーザプログラムが格納されたユーザＲＯＭ、４１はバス（アドレスバスおよびデータバス）、４２−０、４２−１はＲＡＭ、４３はＣＰＵ、４４はＣＰＵ４３のリセット信号入力端子である。本実施形態では、ＲＡＭ初期化ユニット３９とＣＰＵ４３とでＲＡＭ４２−０、４２−２の初期化を行うＲＡＭ初期化手段が構成されている。
【００９０】
内部リセット信号発生部３８は、外部リセット信号入力端子３７を介して与えられる外部リセット信号ＲＳＴを入力して内部リセット信号ＲＳＴ＿ＩＮを発生するものであり、外部リセット信号ＲＳＴがＨレベル（活性レベル）からＬレベル（非活性レベル）に遷移してＣＰＵ４３の初期状態の解除が指示されたときは、クロックＣＬＫを生成するための水晶振動子の発振が安定する期間だけ遅延させて内部リセット信号ＲＳＴ＿ＩＮをＨレベル（活性レベル）からＬレベル（非活性レベル）に遷移させるものである。この内部リセット信号発生部３８は必須のものではない。
【００９１】
ＲＡＭ初期化ユニット３９は、ＲＡＭ初期化ＲＯＭ４５と、セレクタ４６と、ＲＡＭ初期化コントロール部４７を有している。ＲＡＭ初期化ＲＯＭ４５は、ＲＡＭ４２−０、４２−１の初期化に必要なＲＡＭ初期化プログラムを格納するものである。なお、ＲＡＭ初期化プログラムの最後の番地には、ソフトウエアリセット発生命令が格納されている。ソフトウエアリセット発生命令は、外部からＣＰＵ４３にリセット信号が入力された場合と同様に、ＣＰＵ４３に初期化することを命令するものであり、ＣＰＵ４３は、ソフトウエアリセット発生命令を実行するときは、ソフトウエアリセット発生信号ＲＳＴ＿ＳＯＦＴをＲＡＭ初期化コントロール部４７にアサートする。
【００９２】
セレクタ４６は、ＣＰＵ４３がＲＡＭ初期化ＲＯＭ４５又はユーザＲＯＭ４０のいずれかにアクセスできるようにするものであり、ＲＡＭ初期化コントロール部４７により制御され、ＲＡＭ初期化ＲＯＭ４５のアドレス入力端子およびデータ入出力端子又はユーザＲＯＭ４０のアドレス入力端子およびデータ入出力端子と、バス４１との接続を図るものである。
【００９３】
ＲＡＭ初期化コントロール部４７は、内部リセット信号発生部３８が出力する内部リセット信号ＲＳＴ＿ＩＮと、ＣＰＵ４３が出力するソフトウエアリセット発生信号ＲＳＴ＿ＳＯＦＴを入力し、セレクタ４６の選択動作を制御するものである。具体的には、ＲＡＭ初期化コントロール部４７は、内部リセット信号ＲＳＴ＿ＩＮがＨレベル（活性レベル）からＬレベル（非活性レベル）に遷移すると、セレクタ４６がＲＡＭ初期化ＲＯＭ４５を選択するようにセレクタ４６を制御し、その後、ソフトウエアリセット発生信号ＲＳＴ＿ＳＯＦＴがＬレベル（非活性レベル）からＨレベル（活性レベル）に遷移すると、セレクタ４６がユーザＲＯＭ４０を選択するようにセレクタ４６を制御する。
【００９４】
図８は本発明の第３実施形態におけるＲＡＭ初期化動作を示すフローチャートである。本発明の第３実施形態においては、外部リセット信号ＲＳＴが解除されると、即ち、外部リセット信号ＲＳＴがＨレベル（活性レベル）からＬレベル（非活性レベル）に遷移すると（ステップＳ１）、クロックＣＬＫを生成するための水晶振動子の発振安定が判断され（ステップＳ２）、発振が安定すると、内部リセット信号発生部３８は、内部リセット信号ＲＳＴ＿ＩＮを解除し、即ち、内部リセット信号ＲＳＴ＿ＩＮをＨレベル（活性レベル）からＬレベル（非活性レベル）に遷移させる（ステップＳ３）。この結果、ＣＰＵ４３の初期状態が解除される。
【００９５】
ＲＡＭ初期化コントロール部４７は、内部リセット信号ＲＳＴ＿ＩＮがＨレベル（活性レベル）からＬレベル（非活性レベル）に遷移すると、セレクタ４６がＲＡＭ初期化ＲＯＭ４５を選択するようにセレクタ４６を制御する（ステップＳ４）。この結果、ＣＰＵ４３は、ＲＡＭ初期化ＲＯＭ４５から命令をフェッチし、ＲＡＭ初期化プログラムを実行し、ＲＡＭ４２−０、４２−１に初期値を書き込み、最後に、ソフトウエアリセット発生命令を実行する（ステップＳ５）。
【００９６】
ＣＰＵ４３は、ソフトウエアリセット発生命令をフェッチし、ソフトウエアリセット発生命令を実行してＣＰＵ４３自身を初期化するときは、ソフトウエアリセット発生信号ＲＳＴ＿ＳＯＦＴをＬレベル（非活性レベル）からＨレベル（活性レベル）に遷移させる。この結果、ＲＡＭ初期化コントロール部４７は、セレクタ４６がユーザＲＯＭ４０を選択するようにセレクタ４６を制御する（ステップＳ６）。
【００９７】
そして、ＣＰＵ４３においては、ソフトウエアリセットが解除されたか否かが判断され（ステップＳ７）、ソフトウエアリセットが解除され、ＣＰＵ４３の初期状態が解除され、ＣＰＵ４３は、ユーザＲＯＭ４０から命令をフェッチし、ユーザプログラムを実行することになる（ステップＳ８）。
【００９８】
以上のように、本発明の第３実施形態によれば、ＲＡＭ初期化ユニット３９によりＲＡＭ４２−０、４２−１の初期化を自動的に行い、ＲＡＭ４２−０、４２−１の未書き込みアドレスの記憶値を所定の初期値（例えば、“０ｘ００００００００”）に設定することができる。したがって、ユーザプログラム評価時に、ユーザプログラムミスにより、ＲＡＭ４２−０、４２−１の未書き込みアドレスからの読み出しを行った場合にも、常に所定の初期値が読み出されることになる。
【００９９】
この場合、初期値が正常動作に都合の悪い値である場合には、ユーザプログラム評価時に、ＲＡＭ４２−０、４２−１の未書き込みアドレスからの読み出しというユーザプログラムミスをＬＳＩの異常動作として発見することができ、ユーザプログラムの修正の機会を得ることができ、これにより、ＬＳＩの実使用時におけるＲＡＭ４２−０、４２−１の未書き込みアドレスからの読み出しというユーザプログラムミスによる異常動作を防ぐことができる。
【０１００】
これに対して、初期値がたまたま正常動作に都合の良い値であった場合には、ユーザプログラム評価時に、ＲＡＭ４２−０、４２−１の未書き込みアドレスからの読み出しというユーザプログラムミスはＬＳＩの異常動作として発見することができないが、この場合には、ＬＳＩの実使用時にも異常動作とはならず、ユーザプログラムミスは何ら問題とならない。
【０１０１】
このように、本発明の第３実施形態によれば、ＲＡＭ初期化ユニット３９がＲＡＭ４２−０、４２−１に書き込む初期値が正常動作に都合の悪い値であっても、都合の良い値であっても、ＬＳＩの実使用時におけるＲＡＭ４２−０、４２−１の未書き込みアドレスからの読み出しというユーザプログラムミスによる異常動作を防ぐことができる。
【０１０２】
なお、本発明の第３実施形態においては、ＲＡＭ初期化ＲＯＭ４５がＲＡＭ４２−０、４２−１の初期化に必要なプログラムを格納している場合について説明したが、更に、ＣＰＵ４３内のキャッシュのタグＲＡＭの初期化に必要なプログラムを格納しておくこともでき、このようにする場合には、ＲＡＭ４２−０、４２−１のほか、キャッシュのタグＲＡＭの初期化も自動的に行うことができる。
【０１０３】
ここで、本発明を整理すると、本発明には、少なくとも、以下の半導体集積回路が含まれる。
【０１０４】
（付記１）ＣＰＵとＲＡＭを有する半導体集積回路であって、前記半導体集積回路の初期化を指示する外部信号が解除されると、前記ＲＡＭを自動的に初期化するＲＡＭ初期化手段を備えることを特徴とする半導体集積回路。
【０１０５】
（付記２）前記ＲＡＭ初期化手段は、前記ＲＡＭに与える初期化のためのアドレスを生成するアドレス生成部と、前記ＲＡＭに与える初期化のためのデータを生成するデータ生成部と、前記第１の外部信号が解除されると、前記アドレス生成部を制御して前記初期化のためのアドレスを生成させると共に、前記データ生成部を制御して前記初期化のためのデータを生成させるＲＡＭ初期化コントロール部を備えることを特徴とする付記１記載の半導体集積回路。
【０１０６】
（付記３）前記ＲＡＭ初期化コントロール部は、前記ＲＡＭの初期化が完了するまで、前記ＣＰＵの初期状態解除を遅延させることを特徴とする付記２記載の半導体集積回路。
【０１０７】
（付記４）前記ＲＡＭ初期化手段は、前記ＲＡＭに対する初期化のためのデータの書き込みを可能にするための制御信号を生成する手段を備えることを特徴とする付記２又は３記載の半導体集積回路。
【０１０８】
（付記５）前記ＲＡＭ初期化手段は、前記ＲＡＭを自動的に初期化するほか、前記ＣＰＵ内のタグＲＡＭを自動的に初期化することを特徴とする付記１記載の半導体集積回路。
【０１０９】
（付記６）前記ＲＡＭ初期化手段は、前記ＲＡＭおよび前記タグＲＡＭに与える初期化のためのアドレスを生成するアドレス生成部と、前記ＲＡＭおよび前記タグＲＡＭに与える初期化のためのデータを生成するデータ生成部と、前記第１の外部信号が解除されると、前記アドレス生成部を制御して前記初期化のためのアドレスを生成させると共に、前記データ生成部を制御して前記初期化のためのデータを生成させるＲＡＭ初期化コントロール部を備えることを特徴とする付記５記載の半導体集積回路。
【０１１０】
（付記７）前記ＲＡＭ初期化コントロール部は、前記ＲＡＭおよび前記タグＲＡＭの初期化が完了するまで、前記ＣＰＵの初期状態解除を遅延させることを特徴とする付記６記載の半導体集積回路。
【０１１１】
（付記８）前記ＲＡＭ初期化手段は、前記ＲＡＭおよび前記タグＲＡＭに対する前記初期化のためのデータの書き込みを可能にするための制御信号を生成する手段を備えることを特徴とする付記６又は７記載の半導体集積回路。
【０１１２】
（付記９）前記ＲＡＭ初期化手段は、前記第１の外部信号が解除されたことによる前記ＲＡＭの自動的初期化を第２の外部信号により抑止されるように構成されていることを特徴とする付記１又は５に記載の半導体集積回路。
【０１１３】
（付記１０）前記ＲＡＭ初期化手段は、前記ＲＡＭに与える初期化のためのアドレスを生成するアドレス生成部と、前記ＲＡＭに与える初期化のためのデータを生成するデータ生成部と、前記ＲＡＭの初期化を指示する値が書き込み可能とされたＲＡＭ初期化レジスタと、前記ＲＡＭの自動的初期化が前記第２の外部信号により抑止されていない場合には、前記第１の外部信号が解除されると、前記アドレス生成部を制御して前記初期化のためのアドレスを生成させると共に、前記データ生成部を制御して前記初期化のためのデータを生成させ、また、前記ＲＡＭ初期化レジスタに前記ＲＡＭの初期化を指示する値が書き込まれたときは、前記アドレス生成部を制御して前記初期化のためのアドレスを生成させると共に、前記データ生成部を制御して前記初期化のためのデータを生成させるＲＡＭ初期化コントロール部を有することを特徴とする付記９記載の半導体集積回路。
【０１１４】
（付記１１）前記ＲＡＭ初期化コントロール部は、前記ＲＡＭの初期化が完了するまで、前記ＣＰＵが前記ＲＡＭにアクセスするためのバスの使用を制限するように前記ＣＰＵを制御する機能を有することを特徴とする付記１０記載の半導体集積回路。
【０１１５】
（付記１２）前記ＲＡＭ初期化手段は、前記ＲＡＭに対する初期化データの書き込みを可能にするための制御信号を生成する手段を有することを特徴とする付記１０又は１１記載の半導体集積回路。
【０１１６】
（付記１３）前記アドレス生成部は、前記ＲＡＭに与える初期化のためのアドレスのほか、前記キャッシュ内のタグＲＡＭに与える初期化のためのアドレスを生成する機能を有し、前記ＲＡＭ初期化コントロール部は、前記ＣＰＵから前記ＣＰＵ内のキャッシュをオンとしたことを示す信号を受けた場合には、前記アドレス生成部を制御して前記タグＲＡＭに与える初期化のためのアドレスを生成させると共に、前記データ生成部を制御して初期化のためのデータを出力させ、前記タグＲＡＭは、前記タグＲＡＭに与える初期化のためのアドレスおよび初期化のためのデータを受けるように構成されていることを特徴とする付記１０、１１又は１２記載の半導体集積回路。
【０１１７】
（付記１４）前記ＲＡＭ初期化手段は、前記タグＲＡＭに対する初期化のためのデータの書き込みを可能にするための制御信号を生成する手段を有することを特徴とする付記１３記載の半導体集積回路。
【０１１８】
（付記１５）ＣＰＵとＲＡＭを有する半導体集積回路であって、前記ＲＡＭの初期化を指示する値が書き込み可能とされた所定のレジスタを有し、前記ＣＰＵが前記所定のレジスタに前記ＲＡＭの初期化を指示する値を書き込んだときは、前記ＲＡＭを初期化するＲＡＭ初期化手段を有することを特徴とする半導体集積回路。
【０１１９】
（付記１６）ＣＰＵとＲＡＭを有する半導体集積回路であって、前記ＲＡＭを初期化するためのＲＡＭ初期化プログラムを格納するＲＡＭ初期化ＲＯＭを有し、前記半導体集積回路の初期化を指示する外部信号が解除されると、前記ＣＰＵが前記ＲＡＭ初期化プログラムを使用して前記ＲＡＭの初期化を行うように構成されていることを特徴とする半導体集積回路。
【０１２０】
（付記１７）前記ＣＰＵによる前記ＲＡＭ初期化ＲＯＭ又はユーザプログラムを格納するユーザＲＯＭのいずれかへのアクセスを可能とするセレクタと、前記セレクタの選択動作を制御する選択制御手段を有し、前記ＲＡＭ初期化プログラムの最後の番地には前記ＣＰＵの初期化命令が存在し、前記ＣＰＵが前記初期化命令を実行するときは、その旨を前記選択制御手段に通知し、前記選択制御手段は、前記第１の外部信号が解除されると、前記ＣＰＵが前記ＲＡＭ初期化ＲＯＭにアクセスするように前記セレクタを制御し、前記ＣＰＵから前記初期化命令を実行する旨の通知を受けると、前記ＣＰＵが前記初期化命令実行後に前記ユーザＲＯＭにアクセスするように前記セレクタを制御することを特徴とする付記１６記載の半導体集積回路。
【図面の簡単な説明】
【０１２１】
【図１】本発明の第１実施形態の要部を示す回路図である。
【図２】本発明の第１実施形態におけるＲＡＭ初期化動作を示すタイミングチャートである。
【図３】本発明の第２実施形態の要部を示す回路図である。
【図４】本発明の第２実施形態における外部リセット信号解除直後のＲＡＭ初期化動作を示すタイミングチャートである。
【図５】本発明の第２実施形態におけるＲＡＭ初期化レジスタへの所定値の書き込みによるＲＡＭ初期化動作を示すタイミングチャートである。
【図６】本発明の第２実施形態における命令キャッシュ・オン信号（データキャッシュ・オン信号）によるタグＲＡＭ初期化動作を示すタイミングチャートである。
【図７】本発明の第３実施形態の要部を示す回路図である。
【図８】本発明の第３実施形態におけるＲＡＭ初期化動作を示すフローチャートである。
【符号の説明】
【０１２２】
１、３７…外部リセット信号入力端子
２、３８…内部リセット信号発生部
３、２８、３９…ＲＡＭ初期化ユニット
４…アドレスバス
５…データバス
６−０、６−１、４２−０、４２−１…ＲＡＭ
７−０、７−１、１９−Ｉ、１９−Ｄ…ＯＲ回路
８−０、８−１、２０−Ｉ、２０−Ｄ…組合せ論理回路
９、２９、４３…ＣＰＵ
１０、３０、４７…ＲＡＭ初期化コントロール部
１１、３１…アドレス生成カウンタ部
１２、３２…データ生成部
１３、３３…ＷＥ生成部
１４…整数演算ユニット
１５…バスインタフェース
１６−Ｉ…命令キャッシュ
１６−Ｄ…データキャッシュ
１７−Ｉ…命令用アドレスバス
１７−Ｄ…データ用アドレスバス
１８−Ｉ…命令用データバス
１８−Ｄ…データ用データバス
２１−Ｉ、２１−Ｄ…タグＲＡＭ
２２、３５、４４…リセット信号入力端子
２３−０、２３−１、２５−Ｉ、２５−Ｄ…ライトイネーブル信号入力端子
２４−０、２４−１、２６−Ｉ、２６−Ｄ…クロックインヒビット信号入力端子
３４…ＲＡＭ初期化レジスタ
４０…ユーザＲＯＭ
４１…バス
４５…ＲＡＭ初期化ＲＯＭ
４６…セレクタ
【図１】
2006350889.tif 000003
【図２】
2006350889.tif 000004
【図３】
2006350889.tif 000005
【図４】
2006350889.tif 000006
【図５】
2006350889.tif 000007
【図６】
2006350889.tif 000008
【図７】
2006350889.tif 000009
【図８】
2006350889.tif 000010