(57)【特許請求の範囲】
【請求項１】
ＣＰＵにより一定のデータバスサイズでアクセスが行われる記憶回路装置であって、
前記データバスサイズの複数倍のバスサイズによってアクセスが行われるように構成される記憶回路部と、
この記憶回路部に記憶されている情報データが読み出される場合には、該情報データに対応して生成され記憶されている検査データを同時に読み出して前記情報データに誤りがあるか否かを検出し、訂正可能な誤りを検出するとその誤りの訂正を行う誤り訂正回路部と、
前記ＣＰＵが前記記憶回路部より情報データを読み出そうとする場合に、前記情報データを含む複数倍のバスサイズで該記憶回路部より情報データを読み出し、それらのデータから前記ＣＰＵが読み出そうとしている情報データを選択して前記ＣＰＵのデータバス上に出力するように制御するアクセス制御部とを備え、
前記アクセス制御部は、誤り訂正回路部によるデータの訂正処理が完了するまで、前記ＣＰＵに対して出力するアクノリッジ信号のタイミングを遅延させることを特徴とする記憶回路装置。
【請求項２】
前記アクセス制御部は、前記ＣＰＵが前記記憶回路部に情報データを新たに書き込もうとする場合には、前記ＣＰＵがデータバス上に出力する情報データを保持し、前記記憶回路部のデータバスサイズに等しい情報データが保持されると、該情報データと前記誤り訂正回路部によって生成される検査データとを前記記憶回路部に記憶させることを特徴とする請求項１記載の記憶回路装置。
【請求項３】
前記アクセス制御部は、前記ＣＰＵが前記記憶回路部に記憶されている情報データを書き直そうとする場合に、前記記憶回路部に対してリードモディファイライトサイクルを実行することを特徴とする請求項１または２記載の記憶回路装置。
【請求項４】
前記記憶回路部は、フラッシュメモリで構成されていることを特徴とする請求項１乃至３の何れかに記載の記憶回路装置。
【請求項５】
前記記憶回路部と、前記誤り訂正回路部と、前記アクセス制御部とを同一の半導体基板上に形成したことを特徴とする請求項１乃至４の何れかに記載の記憶回路装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＰＵにより一定のデータバスサイズでアクセスが行われる記憶回路装置であって、記憶されているデータが読み出される場合に訂正可能な誤りを検出すると、その誤りの訂正を行う誤り訂正回路部を備えたものに関する。
【０００２】
【従来の技術】
例えば、ＣＰＵがＤＲＡＭなどのメモリに記憶されているデータを読み出すメモリシステムにおいては、ＤＲＡＭのメモリセルにα線が入射することによってランダムにエラー（所謂ソフトエラー）が発生する可能性がある。そこで、斯様なメモリシステムに高い信頼性が要求される場合には、ＥＣＣ(Error Chcking and Correcting)回路を付加する場合がある。
【０００３】
ＥＣＣ回路は、ＣＰＵがメモリからデータを読み出す場合にそれらのデータビットの一定の組合せについて排他的論理和をとることで複数の検査データ（シンドロームビット）を生成する。生成されたシンドロームビットは、メモリの前記データと同じアドレスに記憶される。
【０００４】
そして、ＣＰＵがメモリからデータ（情報データと称す）を読み出す場合には、該情報データに対応して生成された検査データも同時に読み出される。この時、ＥＣＣ回路は、読み出された情報データと検査データからエラーコードを生成し、そのエラーコードの値に基づいて該情報データに誤りがあるか否かを検出する。そして、訂正可能である１ビット誤りを検出するとその誤りの訂正を行う。また、読み出したデータに２ビット以上の誤りが生じていることを検出することもできる。
【０００５】
【発明が解決しようとする課題】
ところで、以上述べたようなＥＣＣ機能をメモリシステムに付加する場合には、検査データを記憶させるためにメモリの容量を余分に必要とすることになる。例えば、１６ビット（２バイト）の情報データバスサイズについて検査データが５ビットで生成される場合には、データバスサイズが３２ビット（４バイト）になると検査データは６ビットで生成される。従って、容量の増加によってシステムが大型化し、コストアップしてしまうという問題があった。
【０００６】
本発明は上記事情に鑑みてなされたものであり、その目的は、誤り訂正回路部を設ける場合に、記憶回路部の容量の増加を抑制することができる記憶回路装置を提供することにある。
【０００７】
【課題を解決するための手段】
請求項１記載の記憶回路装置によれば、記憶回路部を、ＣＰＵがアクセスを行う場合のデータバスサイズに対して複数倍のバスサイズによってアクセスが行われるように構成し、この記憶回路部について誤り訂正を行う誤り訂正回路部を備える。そして、アクセス制御部は、ＣＰＵが記憶回路部より情報データを読み出そうとする場合に、そのデータを含む複数倍のバスサイズで記憶回路部より情報データを読み出し、それらの情報データからＣＰＵが読み出そうとしているデータを選択してＣＰＵのデータバス上に出力する。また、アクセス制御部は、誤り訂正回路部によるデータの訂正処理が完了するまで、ＣＰＵに対して出力するアクノリッジ信号のタイミングを遅延させる。
【０００８】
即ち、誤り訂正回路部によって生成される検査データのビット数は、情報データ（実際に必要とされる、検査データ以外のデータを称す）のビット数が倍になると１ビット増加するため、同一の情報データ容量について生成される検査データのビット数は、書込み及び読み出しを行うデータバスサイズが増加する程トータルで減少する。
【０００９】
例えば、情報データのバスサイズが１バイト（Ｂ）であり、ワード数をＷとするとその容量はＢ×Ｗとなる。ここで、誤り訂正回路部が１バイトについて生成する検査データのビット数がｓであるとすると、検査データに必要な容量は、ｓ×Ｗとなる。そして、情報データのバスサイズを２ｘバイト（ｘは自然数）とするとワード数はＷ／２ｘとなり、検査データに必要なビット数は“ｘ”増加するので、検査データに必要な容量は（ｓ＋ｘ）×Ｗ／２ｘとなる。
【００１０】
この場合、分子にはＷの係数にｘが加算されるのに対して分母は２のｘ乗で増加するので、検査データに必要な容量は確実に減少する。従って、請求項１のように構成することにより、誤り訂正回路部を備えて記憶回路部に記憶される情報データに対する信頼性の向上を図る場合でも、記憶回路部に必要な容量を従来よりも減少させ、回路面積を縮小して全体を小型に構成することができ、製造コストを削減することが可能となる。
【００１１】
請求項２記載の記憶回路装置によれば、アクセス制御部は、ＣＰＵが記憶回路部に情報データを新たに書き込もうとする場合には、ＣＰＵがデータバス上に出力する情報データを保持する。そして、記憶回路部のデータバスサイズに等しい情報データが保持されると、該情報データと誤り訂正回路部によって生成される検査データとを記憶回路部に記憶させる。
【００１２】
即ち、ＣＰＵが、情報データが全く記憶されていない状態にある記憶回路部に対して情報データを新たに書き込もうとする場合、アクセス制御部は、ＣＰＵがデータバス上に出力する情報データを１アドレス毎に保持する。そして、記憶回路部のデータバスサイズに等しい情報データが保持されれば、誤り訂正回路部によって対応する検査データが生成されるので、ＣＰＵと記憶回路部とのデータバスサイズが異なる場合であっても、情報データと検査データとを記憶回路部に記憶させることができる。
【００１３】
請求項３記載の記憶回路装置によれば、アクセス制御部は、ＣＰＵが記憶回路部に記憶されている情報データを書き直そうとする場合にリードモディファイライトサイクルを実行する。即ち、ＣＰＵが書き直そうとするデータ部分を含むアドレスを以て記憶回路部より情報データを一旦読み出し、ＣＰＵが出力したデータ部分を入れ替えることによって、誤り訂正回路部は必要なデータバスサイズに対する検査データを生成することができる。
【００１４】
請求項４記載の記憶回路装置によれば、記憶回路部をフラッシュメモリで構成する。従来、誤り訂正機能はＤＲＡＭのようなメモリの信頼性を向上させるために付加されることが一般的である。フラッシュメモリは、近年、ＣＰＵのプログラムメモリとして使用される場合が多く、その場合、開発段階などにおいて比較的高い頻度で書き換えが行われる。すると、各セルトランジスタのしきい値電圧ＶT にばらつきが生じるおそれがあり、そのばらつきが生じることによってデータに誤りが発生する可能性が出てくる。従って、記憶回路部をフラッシュメモリで構成する場合にも誤り訂正回路部を付加することで、信頼性を向上させることが有効となる。
【００１５】
請求項５記載の記憶回路装置によれば、記憶回路部と、誤り訂正回路部と、アクセス制御部とを同一の半導体基板上に形成する。即ち、誤り訂正回路部やアクセス制御部が記憶回路部と共に内蔵されたワンチップのＩＣとして構成されるようになり、その外部において接続されるＣＰＵは、記憶回路装置を通常のメモリと同様に扱うことが可能となる。従って、機能を付加したことによる回路面積の増大を極力抑制することができる。
【００１６】
【発明の実施の形態】
以下、本発明の一実施例について図面を参照して説明する。図１は、記憶回路装置の電気的構成を示す機能ブロック図である。記憶回路装置１は、フラッシュメモリ（記憶回路部）２，ＥＣＣ回路部（誤り訂正回路部）３，コントローラ  （アクセス制御部）４，読出し用のバッファ（以下、Ｒバッファと称す，アクセス制御部）５Ｕ，５Ｌ及び書込み用のラッチ（以下、Ｗラッチと称す，アクセス制御部）６Ｕ，６Ｌを備えており、これらが同一の半導体基板上に形成されてワンチップのＩＣとして構成されている。
【００１７】
また、記憶回路装置１の外部にはＣＰＵ７が接続されている。ＣＰＵ７のデータバスサイズは８ビットであり、その８ビットのデータバス（Ｄ７〜Ｄ０）が記憶回路装置１に接続されている。
【００１８】
フラッシュメモリ２は、書き換え可能な不揮発性の記憶手段であり、ブロック単位でのデータ消去とページ単位でのデータの書き換みが可能となっている。フラッシュメモリ２の容量は、情報データの記憶領域として１６ビット×６４ワード構成の１ｋビットを有していると共に、情報データの値に基づいてＥＣＣ回路部３により生成される５ビットの検査データの記憶領域として、５ビット×６４ワード構成の３２０ビットを有している。また、フラッシュメモリ２は、ＣＰＵより出力されるアドレスに基づいて行列状に配置されているメモリセルを選択するための行選択回路２Ｌ及び列選択回路２Ｃを備えている。
【００１９】
ここで、１ｋビットを８ビット（１バイト）×１２８ワード構成としてアドレスを割り付けるとＡ６〜Ａ０（１２７〜０）の７ビットとなる。これに対して、フラッシュメモリ２のデータバスサイズは１６ビット（２バイト）であるから、フラッシュメモリ２にはアドレスの上位６ビット（Ａ６〜Ａ１）が与えられている。
【００２０】
尚、フラッシュメモリ２には、ＣＰＵ７の制御プログラムが情報データとしてＷラッチ６Ｕ，６Ｌを介してＣＰＵ７により予め書き込まれている。即ち、コントローラ４は、Ｗラッチ６Ｕ，６Ｌにラッチ信号やイネーブル信号を出力することで、ＣＰＵ７がＡ０＝０のアドレスに書き込む情報データを出力した場合には、その８ビットデータをＷラッチ６Ｌによりラッチさせ、Ａ０＝１のアドレスに書き込む情報データを出力した場合には、その８ビットデータをＷラッチ６Ｕによりラッチさせる。それから、これらのＷラッチ６Ｕ，６ＬをイネーブルにしてＥＣＣ回路部３に５ビットの検査用データを生成させて情報データと検査データとをフラッシュメモリ２に同時に書き込ませる。
そして、ＣＰＵ７はフラッシュメモリ２に記憶されている制御プログラムを読み出して実行することで、図示しない外部装置の制御を行うようになっている。
【００２１】
Ｒバッファ５Ｕ，５Ｌは、８ビット構成であり、ＣＰＵ７がフラッシュメモリ２から情報データを読み出す場合に、ＣＰＵ７の８ビットデータバス上に出力するデータを選択するために使用される（詳細は後述する）。即ち、Ｒバッファ５Ｕの入力側はフラッシュメモリ２の１６ビットデータバスの上位側（Ｄ１５〜Ｄ８）に接続されており、Ｒバッファ５Ｌの入力側は同データバスの下位側（Ｄ７〜Ｄ０）に接続されている。そして、Ｒバッファ５Ｕ，５Ｌの出力側は、ＣＰＵ７の８ビットデータバス（Ｄ７〜Ｄ０）に接続されている。
【００２２】
コントローラ４は、ＣＰＵ７によってフラッシュメモリ２より情報データが読み出される場合に、その情報データと共に検査データをフラッシュメモリ２から読み出す。そして、ＥＣＣ回路部３は、読み出された情報データと検査データからエラーコードを生成すると、該情報データに誤りがあるか否かを検出する。即ち、エラーコードの値が“０”であれば情報データに誤りはない。エラーコードが“０”以外であり、予め定義されているエラーコードと一致する場合は情報データに１ビットの誤り（１ビットエラー）が生じており、また、前記エラーコードと一致しない場合は情報データに２ビット以上の誤り（２ビットエラー）が生じていることになる。
【００２３】
そして、ＥＣＣ回路部３は、以上のようにして１ビットエラーを検出すると、その誤りの訂正処理（ビット値の反転）を行う。また、２ビットエラーについては検出のみが可能である。
【００２４】
コントローラ４には、ＣＰＵ７が出力するアドレスや各種の制御信号が与えられており、フラッシュメモリ２やＥＣＣ回路部３に制御信号を出力したり、Ｒバッファ５Ｕ，５Ｌに対してイネーブル信号を出力する。また、ＣＰＵ７が記憶回路装置１に対してリードサイクルを行った場合に、適当なタイミングでアクノリッジ信号（ＡＣＫ）を出力するようになっている。
【００２５】
また、コントローラ４には、ＥＣＣ回路部３からの１ビットエラー検出信号ERR1が与えられており、情報データに１ビットエラーが検出された場合には、ＥＣＣ回路部３によるデータの訂正処理が完了するまで、アクノリッジ信号の出力タイミングを遅延させるようになっている。
【００２６】
次に、本実施例の作用について説明する。ＣＰＵ７が、記憶回路装置１に対してリードサイクルを行う場合、そのサイクルは以下のように進行する。但し、実際に使用される全ての信号について言及しているわけではなく、本発明の要旨に係る部分についてのみ説明する。
【００２７】
＜情報データに誤りが無い場合＞
▲１▼ＣＰＵ７が、アドレスＡ６〜Ａ０を出力してリードサイクルを開始すると、コントローラ４はそのアドレスをデコードして記憶回路装置１に対するリードアクセスであると判定する。そして、フラッシュメモリ２に読み出し制御信号（Chip Enable,Output Enable など）を出力する。
【００２８】
▲２▼すると、フラッシュメモリ２からは、アドレスの上位６ビット（Ａ６〜Ａ１）が与えられて１６ビットの情報データが読み出される。
▲３▼ＥＣＣ回路部３は、フラッシュメモリ２から読み出された１６ビットの情報データと５ビットの検査データとに基づいて誤り検出を行う。
【００２９】
▲４▼コントローラ４は、ＥＣＣ回路部３が所定期間内に１ビットエラー検出信号ERR1を出力しなければ、アドレスＡ０の値に応じてＲバッファ５Ｕ，５Ｌの何れか一方にイネーブル信号を出力する。即ち、ＣＰＵ７のアクセスアドレスが××××××０（バイナリ）であれば、Ｒバッファ５Ｌがイネーブルとなってフラッシュメモリ２のデータバスの下位側（Ｄ７〜Ｄ０）のデータがＣＰＵ７の８ビットデータバスに出力される。また、アクセスアドレスが××××××１であれば、Ｒバッファ５Ｕがイネーブルとなってフラッシュメモリ２のデータバスの上位側（Ｄ１５〜Ｄ８）のデータがＣＰＵ７の８ビットデータバスに出力される。
【００３０】
▲５▼続いて、コントローラ４は、ＣＰＵ７に対してアクノリッジ信号を出力する。ＣＰＵ７は、アクノリッジ信号を認識すると記憶回路装置１より読み出されたデータをラッチして読み込む。そして、アドレスの出力を停止してリードサイクルを終了する。
【００３１】
＜情報データに誤りがある場合＞
▲１▼〜▲３▼までは、誤りが無い場合と同様であり、▲４▼において、ＥＣＣ回路部３が所定期間内に１ビットエラー検出信号ERR1を出力する。それから、ＥＣＣ回路部３は１ビットエラーが発生しているデータ値を訂正する。そして、コントローラ４は、▲５▼において、ＣＰＵ７に対してアクノリッジ信号を出力するタイミングをＥＣＣ回路部３が誤り訂正を行う時間分だけ遅延させて出力する。
【００３２】
尚、以上において、ＥＣＣ回路部３の動作は周知のものであり、誤り検出や誤り訂正のタイミングチャートなどは、ＥＣＣ用ＩＣのデータシートなどに開示されているものと代わることがない。
【００３３】
ここで、フラッシュメモリ２において検査データを記憶させるために必要な容量は、ビット数５に対してワード数６４であるから、５×６４＝３２０ビットである。また、従来のように、ＣＰＵ７のデータバスサイズ８ビットに対して、記憶回路部のデータバスサイズを同一の８ビットとした場合には、ビット数４に対してワード数１２８であるから４×１２８＝５１２ビットが必要である。
【００３４】
従って、トータルでの容量削減率は、
（１０２４＋３２０）／（１０２４＋５１２）
＝１３４４／１５３６＝１２．５（％）
となる。即ち、フラッシュメモリ２の容量は約１２．５％削減されていることになる。
【００３５】
以上のように本実施例によれば、フラッシュメモリ２を、ＣＰＵ７のデータバスサイズ８ビットに対して１６ビットでアクセスが行われるように構成し、コントローラ４は、ＣＰＵ７がフラッシュメモリ２よりデータを読み出そうとする場合に、１６ビットでフラッシュメモリ２よりデータを読み出し、それらのデータからＣＰＵ７が読み出そうとしているデータを選択してＣＰＵ７のデータバス上に出力するようにした。また、上記１６ビットの情報データに対応する５ビットの検査データをもフラッシュメモリ２より読み出して、情報データに１ビットエラーが発生している場合にはＥＣＣ回路部３に訂正させるようにした。
【００３６】
従って、ＥＣＣ回路部３を備えてフラッシュメモリ２に記憶される情報データに対する信頼性の向上を図る場合でも、フラッシュメモリ２に必要な容量を従来よりも減少させて、回路面積を縮小して全体を小型に構成することができ、製造コストを削減することが可能となる。また、フラッシュメモリ２に対して高い頻度で書込みが行われたり、或いは、大容量化の影響によって信頼性が低下するおそれがある場合に、ＥＣＣ回路部３を付加することで、信頼性を向上させることが可能となる。
【００３７】
また、本実施例によれば、コントローラ４は、ＣＰＵ７がフラッシュメモリ２に情報データを予め書き込む場合に、ＣＰＵ７がデータバス上に出力する情報データをＷラッチ６Ｕ，６Ｌによって保持し、ＥＣＣ回路部３によって生成される検査データと共にフラッシュメモリ２に記憶させるので、ＣＰＵ７とフラッシュメモリ２とのデータバスサイズが異なる場合であっても、情報データと検査データとをフラッシュメモリ２に記憶させることができる。
【００３８】
更に、本実施例によれば、記憶回路装置１を構成するフラッシュメモリ２，ＥＣＣ回路部３，コントローラ４，Ｒバッファ５及びＷラッチ６を同一の半導体基板上に形成したので、その外部に接続されるＣＰＵ７は、記憶回路装置１を通常のメモリと同様に扱うことが可能となる。そして、機能を付加したことによる回路面積の増大を極力抑制することができる。
【００３９】
本発明は上記し且つ図面に記載した実施例にのみ限定されるものではなく、次のような変形または拡張が可能である。
ＣＰＵ７と記憶回路装置１とを、同一の半導体基板上に形成することで、ワンチップの制御用ＬＳＩを構成しても良い。
記憶回路装置は、各構成部を同一の半導体基板上に形成するものに限らず、夫々をディスクリートのＩＣで通常の回路基板（プリント基板など）上に構成しても良い。また、この時、記憶回路部がフラッシュメモリで構成され、ソケットなどを使用することでフラッシュメモリが回路基板より着脱可能に構成される場合には、フラッシュメモリに対する情報データ及び検査データの書込みをＲＯＭライタで行っても良い。その場合、書込み用のＷラッチ６Ｕ，６Ｌに相当する構成は不要となる。
【００４０】
データバスサイズは上記実施例に限らず、例えば、ＣＰＵ７のバスサイズが１６ビットである場合に、フラッシュメモリ２のバスサイズを３２ビットにするなどしても良い。
フラッシュメモリ２は、フラッシュメモリ２に限らず、ＥＥＰＲＯＭやＤＲＡＭでも良い。また、ＤＲＡＭを用いた場合のように、ＣＰＵが記憶回路部のデータを書き直すことがある場合は、データの書込み時にはリードモディファイライトサイクルを行い１６ビットデータを読み出して、その何れか一方の８ビットデータをＣＰＵが出力したデータに入れ替えた状態で新たな検査データを生成し、記憶回路部に書き戻すようにすれば良い。
また、リードサイクル時に１ビットエラーを検出した場合にもリードモディファイライトサイクルを行うことで、訂正したデータ値を書き戻すようにしても良い。
ＥＣＣ回路部３によって出力される１ビットエラーや２ビットエラーの検出信号をＣＰＵ７に与えて、これらのエラーが発生する頻度が一定以上に高くなった場合に、外部に報知する手段（例えば、ＬＥＤ）を設けて、記憶回路装置１、或いはフラッシュメモリ２またはそれに相当する記憶回路部の交換をユーザに促すようにしても良い。
【図面の簡単な説明】
【図１】本発明の一実施例であり、記憶回路装置の電気的構成を示す機能ブロック図
【符号の説明】
１は記憶回路装置、２はフラッシュメモリ（記憶回路部）、３はＥＣＣ回路部（誤り訂正回路部）、４はコントローラ（アクセス制御部）、５Ｕ，５Ｌはバッファ（アクセス制御部）、６Ｕ，６Ｌはラッチ（アクセス制御部）、７はＣＰＵを示す。
【図１】
0004352584.tif 000002