(57)【特許請求の範囲】
【請求項１】
記憶装置の誤り訂正機能を確認する誤り訂正機能確認回路において、
書き込みデータに誤り訂正データを加えて前記記憶装置に格納するＥＣＣ生成回路と、
前記記憶装置の出力データを上位側Ｎビットと下位側Ｎビットに２分割し、前記出力データの上位側Ｎビットまたは下位側Ｎビットの一方と前記書き込みデータの下位側Ｎビットとを排他的論理和演算し、当該排他的論理和演算結果と前記出力データの上位側Ｎビットまたは下位側Ｎビットの他方を結合して生成したデータを、前記記憶装置の前記ＥＣＣ生成回路が格納したデータに上書きするデータ反転回路と、
前記データ反転回路が前記上書きをした後に、前記記憶装置の出力データから誤りが発生しているビットを検出するＥＣＣ誤り検出回路とを有することを特徴とする誤り訂正機能確認回路。
【請求項２】
前記記憶装置の出力データを一時的に保存し、前記データ反転回路へ出力する保持レジスタを有することを特徴とする請求項１の誤り訂正機能確認回路。
【請求項３】
前記ＥＣＣ生成回路の出力と前記データ反転回路の出力を受け、前記ＥＣＣ生成回路の出力または前記データ反転回路の出力を選択し、前記記憶装置へ格納するセレクタを有することを特徴とする請求項１の誤り訂正機能確認回路。
【請求項４】
記憶装置の誤り訂正機能を確認する誤り訂正機能確認方法において、
書き込みデータに誤り訂正データを加え前記記憶装置に格納するステップと、
前記記憶装置の出力データを上位側Ｎビットと下位側Ｎビットに２分割し、前記出力データの上位側Ｎビットまたは下位側Ｎビットの一方と前記書き込みデータの下位側Ｎビットとを排他的論理和演算し、当該排他的論理和演算結果と前記出力データの上位側Ｎビットまたは下位側Ｎビットの他方を結合して生成したデータを、前記記憶装置の前記ＥＣＣ生成回路が格納したデータに上書きするステップと、
前記データ反転回路が前記上書きをした後に、前記記憶装置の出力データから誤りが発生しているビットを検出するステップとを有することを特徴とする誤り訂正機能確認方法。
【請求項５】
請求項１乃至３の何れか１項に記載の誤り訂正機能確認回路を備えることを特徴とする記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ランダムアクセスメモリ（Random Access Memory、以下、ＲＡＭと表記する。）などの記憶装置に関する。特に、記憶装置における誤り訂正符号（Error Correcting Code、以下、ＥＣＣと表記する。）回路のＥＣＣ機能を確認する回路及び方法等に関する。
【背景技術】
【０００２】
ＲＡＭなどの記憶装置においては、α線などを原因としたソフトエラーが生じることがある。そのため、このようなエラーを訂正できるＥＣＣ回路が備えられることがある。
【０００３】
ＥＣＣ回路のＥＣＣ機能を確認する技術としては、例えば特許文献１がある。特許文献１に開示された背景技術では、本来のデータである実データと、データの誤りを訂正するために実データとは別に付加されるＥＣＣデータとのそれぞれに、データ反転回路が備えられる。予め設定されたビット反転データにしたがって、データ反転回路により書き込みデータの所定ビットが反転される。これにより擬似的なエラーが生じる。
【０００４】
【特許文献１】特開２００７−４１６６５号公報
【０００５】
この他、ＥＣＣ回路を介さずＲＡＭに直接データを書き込みできるような機能を設けて、ソフトウェアにより擬似的なエラーを発生させるという方法も考えられる。例えば、ソフトウェアにより、ＲＡＭから一旦読み出されたデータをもとに任意のビットのみが反転されたデータが生成され、ＥＣＣ回路を介さずＲＡＭに直接書き込みし直される。これにより擬似的なエラーが生じる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示された技術では、例えばフリップフロップなど、データ反転を指示するためのビット反転データを設定・記憶する回路を余計に設ける必要がある。
【０００７】
また、一般にＥＣＣ機能を確認する際には、多様なパターンのエラーに対して確認を行うために、反転されるビットが頻繁に変更される必要がある。特許文献１に記載の技術と、上述されたソフトウェアによる方法との何れにおいても、反転されるビットを変更するためには、レジスタを書き換える必要がある。ＥＣＣ機能の確認を容易に効率よく行いたいところ、これは非常に手間である。
【０００８】
本発明は上記の課題に鑑み提案されたものである。本発明は、ＥＣＣ機能の確認を容易に、かつ効率よく行うことが可能なＥＣＣ機能確認回路及びＥＣＣ機能確認方法とそのコンピュータプログラム、並びに記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明にかかるＥＣＣ機能確認回路は、記憶装置の誤り訂正機能を確認するためのものである。ＥＣＣ生成回路と、データ反転回路と、ＥＣＣ誤り検出回路とを有する。ＥＣＣ生成回路は、書き込みデータに誤り訂正データを加えて記憶装置に格納する。データ反転回路は、記憶装置の出力データを上位側Ｎビットと下位側Ｎビットに２分割し、出力データの上位側Ｎビットまたは下位側Ｎビットの一方と書き込みデータの下位側Ｎビットとを排他的論理和演算する。排他的論理和演算結果と出力データの上位側Ｎビットまたは下位側Ｎビットの他方を結合して生成したデータを、記憶装置のＥＣＣ生成回路が格納したデータに上書きする。ＥＣＣ誤り検出回路は、データ反転回路が上書きをした後に、記憶装置の出力データから誤りが発生しているビットを検出することを特徴とする。
【００１０】
また、本発明にかかるＥＣＣ機能確認方法は、上記の誤り訂正機能確認回路を用いてＥＣＣ機能を確認するものである。
【００１１】
まず、記憶装置の誤り訂正機能を確認する誤り訂正機能確認方法において、書き込みデータに誤り訂正データを加え記憶装置に格納し、記憶装置の出力データを上位側Ｎビットと下位側Ｎビットに２分割し、出力データの上位側Ｎビットまたは下位側Ｎビットの一方と書き込みデータの下位側Ｎビットとを排他的論理和演算し、排他的論理和演算結果と出力データの上位側Ｎビットまたは下位側Ｎビットの他方を結合して生成したデータを、記憶装置のＥＣＣ生成回路が格納したデータに上書きし、データ反転回路が上書きをした後に、記憶装置の出力データから誤りが発生しているビットを検出する。
【００１２】
また、本発明にかかる記憶装置は、上記の誤り訂正機能確認回路を備える。
【００１３】
これらにより、本発明では、データ反転を指示するためのビット反転データを設定・記憶する回路を特許文献１のように余計に設ける必要がなくなる。データ反転の指示は記憶装置への書き込みデータにより与えられるので、反転されるビットを変更するための頻繁なレジスタの書き換えが必要でなくなる。
【発明の効果】
【００１４】
本発明にかかるＥＣＣ機能確認回路及びＥＣＣ機能確認方法とそのコンピュータプログラム、並びに記憶装置によれば、ＥＣＣ機能の確認を容易に、かつ効率よく行うことが可能となる。
【発明を実施するための最良の形態】
【００１５】
図１は本発明にかかるＥＣＣ機能確認回路の全体構成について、第１実施形態を示すブロック図である。ＣＰＵ１の出力は、ＥＣＣ生成回路２の入力及びデータ反転回路３の入力と、それぞれ３２ビットのバスで接続される。ＣＰＵ１は、書き込みデータであるＷＤＡＴＡ［３１：０］を出力する。
【００１６】
ＥＣＣ生成回路２の出力及びデータ反転回路３の出力は、それぞれセレクタ４の入力と４８ビットのバスで接続される。第１実施形態では、ＷＤＡＴＡ［３１：０］の８ビットごとに誤り訂正用データ４ビットが付加されて、１ビットの誤りが訂正される。そのため、ＥＣＣ生成回路２では、ＷＤＡＴＡ［３１：０］に対応する誤り訂正用データであるＥＣＣＤＡＴＡ［１５：０］が生成され、ＷＤＡＴＡ［３１：０］＋ＥＣＣＤＡＴＡ［１５：０］が出力される。
【００１７】
一方、データ反転回路３には、ＷＤＡＴＡ［３１：０］の他に、４８ビット保持レジスタ７の出力データであるＫＤＡＴＡ［４７：０］が入力され、ＣＤＡＴＡ［４７：０］が出力される。
【００１８】
セレクタ４の出力は、ＥＣＣＲＡＭ５の入力と４８ビットのバスで接続される。セレクタ４では、ＥＣＣＯＦＦ信号に応じて、入力端子０からの入力ＷＤＡＴＡ［３１：０］＋ＥＣＣＤＡＴＡ［１５：０］と、入力端子１からの入力ＣＤＡＴＡ［４７：０］との２つの入力のうちどちらかが選択され、出力される。
【００１９】
ＥＣＣＲＡＭ５の出力は、ＥＣＣ誤り検出訂正回路６の入力及び４８ビット保持レジスタ７の入力と、それぞれ４８ビットのバスで接続される。ＥＣＣＲＡＭ５はＣＰＵ１の主記憶装置であり、ＷＤＡＴＡ［３１：０］とそれに対応するＥＣＣＤＡＴＡ［１５：０］とを格納する。ＣＰＵ１からのリード指示に応じて、ＥＣＣＲＡＭ５に格納されているデータが読み出される。
【００２０】
ＥＣＣ誤り検出訂正回路６の出力は、ＣＰＵ１の入力と３２ビットのバスで接続される。ＥＣＣ誤り検出訂正回路６では、ＥＣＣＲＡＭ５から読み出されたデータの誤りが検出され、誤りが訂正されたデータであるＲＤＡＴＡ［３１：０］が出力される。
【００２１】
４８ビット保持レジスタ７の出力は、データ反転回路３の入力と４８ビットのバスで接続される。４８ビット保持レジスタ７では、ＥＣＣＲＡＭ５からの読み出しデータが保持され、保持されたデータであるＫＤＡＴＡ［４７：０］が出力される。
【００２２】
このように構成された第１実施形態の作用について説明する。ＥＣＣＲＡＭ５への書き込みデータＷＤＡＴＡ［３１：０］が、ＣＰＵ１から出力される。ＥＣＣ生成回路２は、ＷＤＡＴＡ［３１：０］に対応するＥＣＣＤＡＴＡ［１５：０］を生成する。ＷＤＡＴＡ［３１：０］にＥＣＣＤＡＴＡ［１５：０］が付加されたＷＤＡＴＡ［３１：０］＋ＥＣＣＤＡＴＡ［１５：０］が出力される。通常、ＥＣＣ機能は有効とされるため、ＥＣＣＯＦＦ信号は０（Ｌレベル）である。そのため、セレクタ４は入力端子０からの入力ＷＤＡＴＡ［３１：０］＋ＥＣＣＤＡＴＡ［１５：０］を選択して出力する。ＥＣＣＲＡＭ５には、ＷＤＡＴＡ［３１：０］＋ＥＣＣＤＡＴＡ［１５：０］が書き込まれる。
【００２３】
ＥＣＣ機能を確認する際は、擬似的なエラーを発生させるために、一旦ＥＣＣ機能は無効とされるので、ＥＣＣＯＦＦ信号は１（Ｈレベル）とされる。ＥＣＣＲＡＭ５に格納されているＷＤＡＴＡ［３１：０］＋ＥＣＣＤＡＴＡ［１５：０］が読み出され、４８ビット保持レジスタ７により保持される。データ反転を指示するＷＤＡＴＡ［３１：０］が、ＣＰＵ１から出力される。データ反転回路３は、ＷＤＡＴＡ［３１：０］によりデータ反転の指示が与えられて、４８ビット保持レジスタ７から出力されるＫＤＡＴＡ［４７：０］の所定ビットを反転する。データ反転回路３は、ＫＤＡＴＡ［４７：０］の所定ビットが反転されたデータであるＣＤＡＴＡ［４７：０］を出力する。ＥＣＣＯＦＦ信号は１であるので、セレクタ４は入力端子１からの入力ＣＤＡＴＡ［４７：０］を選択して出力する。ＥＣＣＲＡＭ５には、ＣＤＡＴＡ［４７：０］が上書きされる。これにより、擬似的なエラーが生じる。
【００２４】
ＥＣＣＯＦＦ信号が０（Ｌレベル）に戻され、ＥＣＣ機能が有効とされる。ＥＣＣＲＡＭ５に格納されているＣＤＡＴＡ［４７：０］が読み出され、ＥＣＣ誤り検出訂正回路６に入力される。ＣＤＡＴＡ［４７：０］は所定ビットが反転されているため、ＥＣＣ誤り検出訂正回路６により誤りが検出され、誤りが訂正されたデータであるＲＤＡＴＡ［３１：０］が出力される。ＲＤＡＴＡ［３１：０］と元の書き込みデータであるＷＤＡＴＡ［３１：０］とが一致するか否かを確認するなどすれば、ＥＣＣ機能が正しく動作したか否かを確認することができる。
【００２５】
図２を参照して、データ反転回路３について詳細に説明する。図２はデータ反転回路３の内部構成の一例を示すブロック図である。図１で説明されたように、データ反転回路３には、ＷＤＡＴＡ［３１：０］とＫＤＡＴＡ［４７：０］とが入力される。３２ビットのＷＤＡＴＡ［３１：０］によりデータ反転の指示が与えられて、４８ビットのＫＤＡＴＡ［４７：０］の所定ビットが反転される。そのため、ＫＤＡＴＡ［４７：０］は、データ反転回路３の内部で、上位２４ビットのＫＤＡＴＡ［４７：２４］と下位２４ビットのＫＤＡＴＡ［２３：０］とに分割される。２４ビットずつに分割されたＫＤＡＴＡ［４７：２４］とＫＤＡＴＡ［２３：０］とに対して、ＷＤＡＴＡ［３１：０］の下位２４ビットであるＷＤＡＴＡ［２３：０］により反転されるビットが指示される。
【００２６】
データ反転回路３は、ＥＯＲゲート３１、３２を備える。ＥＯＲゲート３１には、ＷＤＡＴＡ［２３：０］とＫＤＡＴＡ［４７：２４］とが入力される。ＥＯＲゲート３２には、ＷＤＡＴＡ［２３：０］とＫＤＡＴＡ［２３：０］とが入力される。ＥＯＲゲート３１の出力はセレクタ３３の入力端子１に、ＥＯＲゲート３２の出力はセレクタ３４の入力端子０にそれぞれ入力される。セレクタ３３の他方の入力端子０にはＫＤＡＴＡ［４７：２４］が、セレクタ３４の他方の入力端子１にはＫＤＡＴＡ［２３：０］がそれぞれ入力される。セレクタ３３、３４はともにＷＤＡＴＡ［３１：０］の最上位ビットであるＷＤＡＴＡ［３１］に応じて、２つの入力のうちどちらかを選択して、出力する。セレクタ３３の出力ＣＤＡＴＡ［４７：２４］と、セレクタ３４の出力ＣＤＡＴＡ［２３：０］とが、データ反転回路３の出力ＣＤＡＴＡ［４７：０］となる。
【００２７】
例えば、ＫＤＡＴＡ［４７：２４］に含まれるビットが反転される場合、ＷＤＡＴＡ［３１：０］は、最上位ビットＷＤＡＴＡ［３１］が１（Ｈレベル）で、下位２４ビットＷＤＡＴＡ［２３：０］のうち反転されるＫＤＡＴＡ［４７：２４］のビットに対応するビットが１（Ｈレベル）であるＷＤＡＴＡ［３１：０］がＣＰＵ１から出力される。ＥＯＲゲート３１により、ＷＤＡＴＡ［２３：０］の１（Ｈレベル）となっているビットに対応するＫＤＡＴＡ［４７：２４］のビットが反転される。ＷＤＡＴＡ［３１：０］の最上位ビットＷＤＡＴＡ［３１］は１（Ｈレベル）なので、セレクタ３３は入力端子１からの入力を選択して、出力する。したがって、ＥＯＲゲート３１の出力、すなわち、ＫＤＡＴＡ［４７：２４］の所定ビットが反転されたデータが選択されて、出力される。一方、セレクタ３４はＫＤＡＴＡ［２３：０］を選択して、出力する。
【００２８】
図１に示されたように、第１実施形態は、ＣＰＵ１のデータバス幅３２ビットを超える４８ビットのＥＣＣＲＡＭ５を搭載した構成となっている。しかし、図２に示されるように、ＫＤＡＴＡ［４７：０］が上位２４ビット、下位２４ビットに分割される。ＷＤＡＴＡ［３１：０］の最上位ビットＷＤＡＴＡ［３１］により、ＫＤＡＴＡ［４７：０］の上位、下位のどちらに含まれるビットが反転されるのかが切り替えられる。これにより、ＫＤＡＴＡ［４７：０］の任意のビットを反転させることができる。したがって、ＥＣＣＲＡＭ５に格納されているデータに対して、任意のエラーを擬似的に発生させることが可能となる。データ反転の指示はＷＤＡＴＡ［３１：０］により与えられるため、データ反転を指示するためのビット反転データを設定・記憶する回路を特許文献１のように余計に設ける必要がなくなる。また、反転されるビットを変更するために頻繁にレジスタを書き換える必要がなくなる。
【００２９】
図３は本発明にかかるＥＣＣ機能確認回路の全体構成について、第２実施形態を示すブロック図である。第２実施形態では、書き込み動作時におけるＥＣＣＲＡＭ５は、直前の読み出しデータを保持し、出力する。そのため、第２実施形態では、ＥＣＣＲＡＭ５からの読み出しデータが保持される４８ビット保持レジスタ７が不要であり、ＥＣＣＲＡＭ５の出力はデータ反転回路３の入力と接続される。
【００３０】
図３に示される第２実施形態は、制御信号生成部８を備える。制御信号生成部８には、ＣＰＵ１からＣＰＵ．ＡＤＤ信号とＣＰＵ．ＷＲＸ信号とが入力される。制御信号生成部８は、ＥＣＣＯＦＦ信号に応じて、ＲＥＡＤＹ信号をＣＰＵ１に出力する。また、制御信号生成部８は、ＥＣＣＲＡＭ５にＲＡＭ．ＡＤＤ信号とＲＡＭ．ＷＲＸ信号とを出力する。その他の構成は図１に示される第１実施形態と同様なため、説明を省略する。
【００３１】
このように構成された第２実施形態の作用について、図４のタイミング図を参照しながら説明する。図４は、図３に示される第２実施形態でのＥＣＣ機能の確認において、ＥＣＣＲＡＭ５から読み出しデータＫＤＡＴＡ［４７：０］が読み出され、データ反転回路３により所定ビットが反転されたデータＣＤＡＴＡ［４７：０］がＥＣＣＲＡＭ５に上書きされて擬似的なエラーが生じるまでのタイミング図を示す。ここで、図４は、Advanced High-performance Bus（以下、ＡＨＢと表記する。）を例としたタイミング図である。ＡＨＢとは、バスの仕様として規定されているものである。なお、図４のタイミング図は、一般的にＡＨＢで使用される信号名ではなく、図３にあわせた信号名を用いて記載されている。ＡＨＢで一般的に使用される信号名への置き換えは、それぞれ、ＣＫをＨＣＬＫ、ＣＰＵ．ＡＤＤＲをＣＰＵ．ＨＡＤＤＲ、ＣＰＵ．ＷＲＸをＣＰＵ．ＨＷＲＩＴＥの反転、ＲＥＡＤＹをＨＲＥＡＤＹとすることで可能である。
【００３２】
既に説明されたように、擬似的なエラーを発生させるために、ＥＣＣＲＡＭ５は読み出し動作の後、書き込み動作を行う。したがって、ＣＰＵ１はＥＣＣＲＡＭ５に対して、リード→ライトと指示する。そのとき、ＣＰＵ１によってはダミーリードが入る場合がある。ダミーリードが入ってしまった場合、意図されていないデータが読み出されてしまうおそれがある。そのため、図３に示される第２実施形態では、ＣＰＵ１からのライト指示のみによってＥＣＣＲＡＭ５が読み出し動作の後、書き込み動作を行う構成となっている。
【００３３】
図４において、ＣＫ信号はクロックであり、ｃｙｃ１〜ｃｙｃ５はその周期である。ＣＰＵ．ＡＤＤ信号はＣＰＵ１がアドレスを示す信号であり、ＣＰＵ．ＷＲＸ信号はＣＰＵ１がライトを指示する信号である。ＣＰＵ．ＷＤＡＴＡ信号は、図３においてＣＰＵ１が出力する書き込みデータＷＤＡＴＡ［３１：０］に対応する。ＲＥＡＤＹ信号は、ＣＰＵ１にウェイトをかける信号である。すなわち、ＲＥＡＤＹ信号が出ている間は、ＣＰＵ１は次の指示を出さない。ＲＡＭ．ＣＥ信号は図３には図示されていないが、一般的なアドレスデコーダからＥＣＣＲＡＭ５に入力される信号である。ＲＡＭ．ＡＤＤ信号はＥＣＣＲＡＭ５がアドレスを示される信号であり、ＲＡＭ．ＷＲＸ信号はＥＣＣＲＡＭ５がライトを指示される信号である。第２実施形態では、ＥＣＣＲＡＭ５はＲＡＭ．ＣＥ信号がＬレベル、かつＲＡＭ．ＷＲＸ信号がＬレベルで書き込み動作を行う。ＥＣＣＲＡＭ５はＲＡＭ．ＣＥ信号がＬレベル、かつＲＡＭ．ＷＲＸ信号がＨレベルで読み出し動作を行う。ＲＡＭ．ＲＤＡＴＡ信号は、図３においてＥＣＣＲＡＭ５が出力する読み出しデータＫＤＡＴＡ［４７：０］に対応する。ＲＡＭ．ＷＤＡＴＡ信号は、図３においてデータ反転回路３が出力するデータＣＤＡＴＡ［４７：０］に対応する。
【００３４】
前述の通り、ＥＣＣ機能を確認する際は、擬似的なエラーを発生させるために、ＥＣＣＯＦＦ信号が１（Ｈレベル）とされる（ｃｙｃ１〜ｃｙｃ５）。ＣＰＵ１は、ＣＰＵ．ＡＤＤ信号によりＥＣＣ機能確認対象アドレスＡＡを示し（ｃｙｃ２）、ＣＰＵ．ＷＲＸ信号によりライトを指示し（ｃｙｃ２）、ＣＰＵ．ＷＤＡＴＡ信号を書き込みデータＷＡとする（ｃｙｃ３）。ＥＣＣＯＦＦ信号が１（Ｈレベル）のとき、制御信号生成部８は、ＣＰＵ．ＷＲＸ信号によるライト指示を受けて、ＣＰＵ１に対してＲＥＡＤＹ信号を出力する（ｃｙｃ３）。そのため、ＣＰＵ１は次の指示を出さず、ＣＰＵ．ＷＤＡＴＡ信号が書き込みデータＷＡのまま維持される（ｃｙｃ４）。また、ＥＣＣＲＡＭ５は制御信号生成部８から、ＲＡＭ．ＡＤＤ信号によりアドレスＡＡを示され（ｃｙｃ３〜ｃｙｃ４）、ＲＡＭ．ＷＲＸ信号によりｃｙｃ３ではリードを、ｃｙｃ４ではライトを指示される（ｃｙｃ３〜ｃｙｃ４）。一方、ＲＡＭ．ＣＥ信号がＥＣＣＲＡＭ５に入力される（ｃｙｃ３〜ｃｙｃ４）。
【００３５】
周期ｃｙｃ３において、ＲＡＭ．ＣＥ信号がＬレベル、かつＲＡＭ．ＷＲＸ信号がＨレベルなので、ＥＣＣＲＡＭ５はＲＡＭ．ＡＤＤ信号により示されるアドレスＡＡから読み出し動作を行う。ＲＡＭ．ＲＤＡＴＡ信号は、アドレスＡＡから読み出されたデータＲＡとなる。
【００３６】
周期ｃｙｃ４において、ＲＡＭ．ＣＥ信号がＬレベル、かつＲＡＭ．ＷＲＸ信号がＬレベルなので、ＥＣＣＲＡＭ５はＲＡＭ．ＡＤＤ信号により示されるアドレスＡＡに書き込み動作を行う。前述の通り、第２実施形態では、書き込み動作時におけるＥＣＣＲＡＭ５は、直前の読み出しデータを保持し、出力する。そのため、ＲＡＭ．ＲＤＡＴＡ信号は、データＲＡのままである。したがって、データ反転回路３は、ＣＰＵ．ＷＤＡＴＡ信号の書き込みデータＷＡによりデータ反転の指示が与えられて、データＲＡの所定ビットが反転されたデータＷＡ＾ＲＡを出力する。すなわち、ＲＡＭ．ＷＤＡＴＡ信号は、データＷＡ＾ＲＡとなる。ＥＣＣＯＦＦ信号は１（Ｈレベル）であるので、データＷＡ＾ＲＡがセレクタ４を介してＥＣＣＲＡＭ５のアドレスＡＡに書き込まれる。
【００３７】
このように、ＥＣＣＯＦＦ信号が１（Ｈレベル）のとき、制御信号生成部８がＣＰＵ．ＷＲＸ信号によるライト指示を受けて、ＣＰＵ１に対してＲＥＡＤＹ信号を出力し、ＣＰＵ１にウェイトをかける。ＲＥＡＤＹ信号が出ている間ＣＰＵ１は次の指示を出さず、ＣＰＵ．ＷＤＡＴＡ信号が書き込みデータＷＡのまま周期ｃｙｃ４まで維持される。制御信号生成部８がＲＡＭ．ＷＲＸ信号によるライト指示を周期ｃｙｃ３ではなく、周期ｃｙｃ４に出力することで、ＣＰＵ１からのライト指示のみによってＥＣＣＲＡＭ５が読み出し動作（ｃｙｃ３）の後、書き込み動作（ｃｙｃ４）を行うことが可能となる。その結果、ダミーリードにより意図されていないデータが読み出されてしまうおそれがなくなる。
【００３８】
なお、ＣＰＵ１からのライト指示のみによってＥＣＣＲＡＭ５が読み出し動作の後、書き込み動作を行う構成であっても、ＣＰＵ１は通常のリード指示を出すことは可能である。ＣＰＵ１が通常のリード指示を出した場合、ＣＰＵ１にはＥＣＣ誤り検出訂正回路６による誤り検出訂正を経たデータＲＤＡＴＡ［３１：０］が入力される。そのため、ＥＣＣＲＡＭ５のＥＣＣ機能確認対象となっている領域以外からＥＣＣ機能確認プログラムなどを読み出す際には、ＥＣＣ機能が有効とされる。したがって、ＥＣＣ機能確認の際、ＥＣＣ機能確認対象となっている領域以外でソフトエラーが生じても問題はない。
【００３９】
また、書き込み動作時におけるＥＣＣＲＡＭ５は、直前の読み出しデータを保持し、出力するようにしたため、第２実施形態では、４８ビット保持レジスタ７が不要である。したがって、回路が小さくて済むという効果がある。
【００４０】
図５を参照して、第２実施形態におけるＥＣＣ機能確認方法について説明する。図５は、第２実施形態のＥＣＣ機能確認のフローを示す。最初は反転指示モードがオフとされる（Ｓ１）。このステップＳ１は、ＥＣＣＯＦＦ信号が０（Ｌレベル）とされることで実行される。
【００４１】
ＥＣＣ機能確認対象アドレスに対して、任意の書き込みデータＷＤＡＴＡ［３１：０］のライトが指示される（Ｓ２）。ＥＣＣＯＦＦ信号は０（Ｌレベル）とされているので、ＥＣＣ生成回路２によりＥＣＣＤＡＴＡ［１５：０］が付加されたＷＤＡＴＡ［３１：０］＋ＥＣＣＤＡＴＡ［１５：０］が、セレクタ４を介してＥＣＣＲＡＭ５に書き込まれる。
【００４２】
ＥＣＣＯＦＦ信号が１（Ｈレベル）とされて、反転指示モードがオンとされる（Ｓ３）。
【００４３】
データリード（Ｓ４）と反転指示データライト（Ｓ５）は、ＥＣＣ機能確認対象アドレスに対して、任意のビットを反転させるような書き込みデータＷＤＡＴＡ［３１：０］のライトが指示されることで実行される。これにより、図４で説明されたように、制御信号生成部８に従って、ＥＣＣＲＡＭ５は読み出し動作の後、書き込み動作を行う。つまり、ＥＣＣＲＡＭ５から読み出しデータＫＤＡＴＡ［４７：０］が読み出される。ＥＣＣＲＡＭ５への書き込みデータＷＤＡＴＡ［３１：０］によりデータ反転の指示が与えられて、読み出しデータＫＤＡＴＡ［４７：０］の所定ビットが反転されたデータＣＤＡＴＡ［４７：０］が、セレクタ４を介してＥＣＣＲＡＭ５に上書きされる。なお、ステップＳ４、Ｓ５は、その後にレジスタ書き換え等の他の処理を挟むことなく、任意のアドレス、任意のデータに対し繰り返し行うことができる。
【００４４】
ＥＣＣＯＦＦ信号が０（Ｌレベル）とされて、反転指示モードがオフとされる（Ｓ６）。
【００４５】
ＥＣＣ機能確認対象アドレスに対して、リードが指示される（Ｓ７）。読み出しデータＫＤＡＴＡ［４７：０］の所定ビットの反転により生じた擬似的なエラーについて、ＥＣＣ誤り検出訂正回路６により誤りが検出され、誤りが訂正されたデータであるＲＤＡＴＡ［３１：０］が出力される。
【００４６】
ＥＣＣ機能が正しく動作したか否かが確認される（Ｓ８）。このステップＳ８は、例えば、ＲＤＡＴＡ［３１：０］と準備された期待値とを比較し、一致不一致を確認することで実行されたり、一般的なエラー発生ビットにより確認することで実行されたりする。
【００４７】
このように、第２実施形態においても第1実施形態と同様に、任意のエラーを擬似的に発生させることが可能となる。データ反転の指示はＷＤＡＴＡ［３１：０］により与えられるため、データ反転を指示するためのビット反転データを設定・記憶する回路を特許文献１のように余計に設ける必要がなく、反転されるビットを変更するために頻繁にレジスタを書き換える必要がなくなる。
【００４８】
ここで、特許請求の範囲との対応は以下の通りである。
ＥＣＣＲＡＭ５は、記憶装置の一例である。
ＥＣＣ生成回路２、ＥＣＣＲＡＭ５、及びＥＣＣ誤り検出訂正回路６は、誤り訂正回路の一例である。
ＷＤＡＴＡ［３１：０］は、書き込みデータの一例である。
ＫＤＡＴＡ［４７：０］は、読み出しデータの一例である。
ＣＤＡＴＡ［４７：０］は、所定ビットが反転されたデータの一例である。
データ反転回路３は、データ反転回路の一例である。
セレクタ４は、選択する回路の一例である。
４８ビット保持レジスタ７は、保持する回路の一例である。
ＥＯＲゲート３１、３２は、データ反転回路が備えるＥＯＲゲートの一例である。
データライトのステップＳ２は、記憶装置に書き込みデータが書き込まれるステップの一例である。
データリードのステップＳ４は、記憶装置から読み出しデータが読み出されるステップの一例である。
反転指示データライトのステップＳ５は、所定ビットが反転されたデータが記憶装置に上書きされるステップの一例である。
データリードのステップＳ７とＥＣＣ機能確認のステップＳ８とは、記憶装置から上書きされたデータが読み出されて、誤り訂正回路の誤り訂正機能が確認されるステップの一例である。
【００４９】
以上、詳細に説明したように、本発明の第1実施形態によれば、ＥＣＣ機能を確認する際には、ＥＣＣＲＡＭ５からの読み出しデータＫＤＡＴＡ［４７：０］の所定ビットを反転するデータ反転回路３により擬似的なエラーが生じる。このデータ反転回路３に対して、ＥＣＣＲＡＭ５への書き込みデータＷＤＡＴＡ［３１：０］によりデータ反転の指示が与えられる。
【００５０】
また、データ反転回路３では、ＥＣＣＲＡＭ５からの４８ビットの読み出しデータＫＤＡＴＡ［４７：０］が上位２４ビット、下位２４ビットに分割される。３２ビットの書き込みデータＷＤＡＴＡ［３１：０］の最上位ビットＷＤＡＴＡ［３１］により、ＫＤＡＴＡ［４７：０］の上位、下位のどちらに含まれるビットが反転されるのかが切り替えられる。
【００５１】
これにより、ＫＤＡＴＡ［４７：０］の任意のビットを反転させることができる。第１実施形態のようにＣＰＵ１のデータバス幅３２ビットを超える４８ビットのＥＣＣＲＡＭ５を搭載した構成においても、ＥＣＣＲＡＭ５に格納されているデータに対して、任意のエラーを擬似的に発生させることが可能となる。データ反転の指示はＷＤＡＴＡ［３１：０］により与えられるため、データ反転を指示するためのビット反転データを設定・記憶する回路を特許文献１のように余計に設ける必要がなくなる。また、反転されるビットを変更するために頻繁にレジスタを書き換える必要がなくなる。ＥＣＣ機能の確認を容易に、かつ効率よく行うことが可能となる。
【００５２】
また、本発明の第２実施形態によっても、第１実施形態と同様の効果が得られる。加えて、第２実施形態では、制御信号生成部８がＣＰＵ１からのＣＰＵ．ＷＲＸ信号によるライト指示を受けて、ＣＰＵ１に対してＲＥＡＤＹ信号を出力し、ＣＰＵ１にウェイトをかける。これにより、ＣＰＵ１からのライト指示のみによってＥＣＣＲＡＭ５が読み出し動作の後、書き込み動作を行うことが可能となる。その結果、ダミーリードにより意図されていないデータが読み出されてしまうおそれがなくなる。第２実施形態では、書き込み動作時におけるＥＣＣＲＡＭ５は、直前の読み出しデータを保持し、出力するようにしたため、４８ビット保持レジスタ７が不要である。したがって、回路が小さくて済むという効果がある。
【００５３】
なお、本発明は前記実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内での種々の改良、変更が可能であることは言うまでもない。
例えば、図５に示される第２実施形態のＥＣＣ機能確認のフローでは、ステップＳ２において、任意の書き込みデータＷＤＡＴＡ［３１：０］のライトが指示されるが、これに限られるものではない。通常は、起動時に記憶装置の全面ライトによって初期化が行われるので、それを用いてもよい。
【００５４】
図１に示される第１実施形態と図３に示される第２実施形態とはともに、ＥＣＣ生成回路２、及びＥＣＣ誤り検出訂正回路６がＥＣＣＲＡＭ５とは別にされた構成で示されている。しかし、これに限られない。ＥＣＣＲＡＭ５がＥＣＣ生成及びＥＣＣ誤り検出訂正を含むような構成であってもよい。
【００５５】
また、データ反転回路３に入力される読み出しデータＫＤＡＴＡ［４７：０］はＥＣＣＲＡＭ５の出力から取られているが、ＥＣＣ誤り検出訂正回路６の出力から取られるようにされてもよい。この構成の場合は、ＥＣＣＯＦＦ信号に応じてＥＣＣ誤り検出訂正の有効、無効を切り替えるようなセレクタをＥＣＣ誤り検出訂正回路６の後段に設けるなどすれば、前記実施形態と同様の効果が得られる。さらに、そのセレクタにライト指示を示すような信号を入力すれば、ＣＰＵ１からのライト指示のみによってＥＣＣＲＡＭ５が読み出し動作の後、書き込み動作を行う構成であっても、ＥＣＣ機能を有効にした読み出し動作が可能になる。したがって、ＥＣＣ機能確認の際、ＥＣＣ機能確認対象となっている領域以外でソフトエラーが生じても前記第２実施形態と同様に問題がない。
【図面の簡単な説明】
【００５６】
【図１】第1実施形態のブロック図である。
【図２】データ反転回路の内部構成の一例を示すブロック図である。
【図３】第２実施形態のブロック図である。
【図４】第２実施形態のタイミング図である。
【図５】第２実施形態のＥＣＣ機能確認のフロー図である。
【符号の説明】
【００５７】
１    ＣＰＵ
２    ＥＣＣ生成回路
３    データ反転回路
４    セレクタ
５    ＥＣＣＲＡＭ
６    ＥＣＣ誤り検出訂正回路
７    ４８ビット保持レジスタ
８    制御信号生成部
３１、３２    ＥＯＲゲート
３３、３４    セレクタ
ＣＤＡＴＡ［４７：０］    所定ビットが反転されたデータ
ＥＣＣＤＡＴＡ［１５：０］    誤り訂正用データ
ＫＤＡＴＡ［４７：０］    読み出しデータ
ＲＤＡＴＡ［３１：０］    誤りが訂正されたデータ
ＷＤＡＴＡ［３１：０］    書き込みデータ
【図１】
0005176646.tif 000002
【図２】
0005176646.tif 000003
【図３】
0005176646.tif 000004
【図４】
0005176646.tif 000005
【図５】
0005176646.tif 000006