(57)【特許請求の範囲】
【請求項１】
メモリ部と、
複数ビットのデータを受け取り、前記データ内のエラーが検出された第１ビットを、エラーが検出されない第２ビットに並び替えて前記メモリ部へ格納する第１並び替え回路と、
前記メモリ部から読み出されたデータを受け取り、前記第２ビットのデータを、前記第１ビットのデータと並び替えて出力する第２並び替え回路と、を有し、
前記第１ビットは、前記第２ビットよりも上位のビットであり、
前記第２ビットは、前記データの内の最下位ビットであり、
前記第１ビットが複数ビット存在する場合、
前記第２ビットは、前記最下位ビットから上位に向かって順に選択される、
ことを特徴とする半導体記憶装置。
【請求項２】
さらに、
前記メモリ部から読み出されたデータを受け取り、前記メモリ部におけるエラーを検出するエラー検出回路を有し、
前記エラー検出回路の出力に基づいて、前記第１および第２並び替え回路が動作する、
ことを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
前記複数ビットのデータは、画像データであり、
前記メモリ部は、ＲＡＭである、
ことを特徴とする請求項１または請求項２に記載の半導体記憶装置。
【請求項４】
メモリ部に対する複数ビットのデータを受け取り、前記データの内のエラーが検出された第１ビットを、エラーが検出されない第２ビットに並び替えて前記メモリ部へ格納し、
前記メモリ部から読み出されたデータを受け取り、前記第２ビットのデータを、前記第１ビットのデータと並び替えて出力し、
前記第１ビットは、前記第２ビットよりも上位のビットであり、
前記第２ビットは、前記データの内の最下位ビットであり、
前記第１ビットが複数ビット存在する場合、
前記第２ビットは、前記最下位ビットから上位に向かって順に選択される、
ことを特徴とする半導体記憶装置のアクセス制御方法。
【請求項５】
さらに、
前記メモリ部から読み出されたデータを受け取り、前記メモリ部におけるエラーを検出し、
前記エラー検出回路の出力に基づいて、前記第１および第２並び替え回路が動作する、
ことを特徴とする請求項４に記載の半導体記憶装置のアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で言及する実施例は、半導体記憶装置および半導体記憶装置のアクセス制御方法に関する。
【背景技術】
【０００２】
従来、半導体記憶装置(例えば、ＲＡＭ(Random Access Memory)やフラッシュメモリ(Flash Electrically Erasable Programmable Read-Only Memory))には、エラー検出・訂正(ＥＣＣ：Error checking and Correction)機能が設けられたものがある。
【０００３】
すなわち、エラー検出・訂正回路(ＥＣＣ回路)を設けることにより、メモリ(例えば、ＲＡＭ)に誤った値が記録されているのを検出し、正しい値に訂正して出力することができる。なお、ＥＣＣは、"Error Correcting Code"または"Error Check and Correct"の略語とされることもある。
【０００４】
このように、例えば、ＲＡＭにおいて、読み出しデータにソフトエラーが発生し、或いは、経年劣化等に起因したデータエラーが発生した場合、そのエラーをＥＣＣ回路で検出および訂正し、エラー訂正したデータを出力することが可能になる。
【０００５】
ところで、従来、ＥＣＣ機能の簡略化、或いは、冗長となるデータおよび回路の低減を図ることのできる半導体記憶装置として、様々な提案がなされている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−０４００３６号公報
【特許文献２】特許第４１６０６２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したように、ＥＣＣ機能を有する半導体記憶装置として、例えば、ＲＡＭにＥＣＣ回路を搭載し、ＲＡＭからの読み出しデータを、ＥＣＣ回路を経由して出力することで、エラーデータの検出および訂正を行うものが実用化されている。
【０００８】
しかしながら、そのような構成のＲＡＭでは、データを読み出す毎にＥＣＣ回路を経由することになるため、ＥＣＣ回路を設けずに直接データ読み出しを行うＲＡＭと比較すると、レイテンシが大きくなる。さらに、エラーデータの訂正には、冗長なＥＣＣデータを使用するため、例えば、ＲＡＭの容量を余計に消費し、実際に使用可能なメモリ容量が低減することになる。
【課題を解決するための手段】
【０００９】
一実施形態によれば、メモリ部と、第１並び替え回路と、第２並び替え回路と、を有する半導体記憶装置が提供される。前記第１並び替え回路は、複数ビットのデータを受け取り、前記データ内のエラーが検出された第１ビットを、エラーが検出されない第２ビットに並び替えて前記メモリ部へ格納する。
【００１０】
前記第２並び替え回路は、前記メモリ部から読み出されたデータを受け取り、前記第２ビットのデータを、前記第１ビットのデータと並び替えて出力する。前記第１ビットは、前記第２ビットよりも上位のビットであり、前記第２ビットは、前記データの内の最下位ビットであり、前記第１ビットが複数ビット存在する場合、前記第２ビットは、前記最下位ビットから上位に向かって順に選択される。
【発明の効果】
【００１１】
開示の半導体記憶装置および半導体記憶装置のアクセス制御方法は、レイテンシの増大およびメモリの実際に使用可能なデータ容量の低下を抑えることができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、半導体記憶装置の一例を示すブロック図である。
【図２】図２は、本実施例に係る半導体記憶装置の一例を示すブロック図である。
【図３】図３は、図２に示す半導体記憶装置における処理を説明するためのフローチャート(その１)である。
【図４】図４は、図２に示す半導体記憶装置における処理を説明するためのフローチャート(その２)である。
【図５】図５は、図２に示す半導体記憶装置における処理を説明するためのフローチャート(その３)である。
【図６】図６は、図２に示す半導体記憶装置における処理の一例を説明するための図(その１)である。
【図７】図７は、図２に示す半導体記憶装置における処理の一例を説明するための図(その２)である。
【図８】図８は、図２に示す半導体記憶装置における処理の一例を説明するための図(その３)である。
【発明を実施するための形態】
【００１３】
まず、本実施例の半導体記憶装置および半導体記憶装置のアクセス制御方法の実施例を詳述する前に、図１を参照して、半導体記憶装置の一例、並びに、その半導体記憶装置における課題を説明する。
【００１４】
図１は、半導体記憶装置の一例を示すブロック図であり、ＥＣＣ機能を設けたＲＡＭの一例を示すものである。図１に示されるように、半導体記憶装置１００は、ＲＡＭ(メモリ部)１０１およびエラー検出・訂正回路(ＥＣＣ回路)１０２を含む。
【００１５】
まず、ＲＡＭ１０１に対してデータを書き込む場合、書き込みデータ(ｗｒｉｔｅ)は、ＲＡＭ１０１に入力されて書き込まれる。また、ＲＡＭ１０１に書き込まれたデータを読み出す場合、ＲＡＭ１０１からのデータは、ＥＣＣ回路１０２に入力されて、エラーの検出および訂正が行われ、エラー訂正された読み出しデータ(ｒｅａｄ)がＥＣＣ回路１０２から出力される。
【００１６】
このように、図１に示す半導体記憶装置１００は、ＲＡＭ１０１から読み出したデータを、ＥＣＣ回路１０２を介して出力することにより、エラー訂正された正しいデータ(ｒｅａｄ)を出力することができる。ここで、ＲＡＭ１０１から読み出したデータのエラーは、例えば、ＲＡＭ１０１におけるソフトエラー、或いは、経年劣化等によるデータエラー等の様々な要因により発生する。
【００１７】
しかしながら、図１に示す半導体記憶装置１００では、例えば、ＲＡＭ１０１からデータを読み出す場合、常に、ＥＣＣ回路１０２を経由することになり、ＥＣＣ回路を設けずに直接データ読み出しを行うものよりも、レイテンシが大きくなってしまう。
【００１８】
さらに、ＥＣＣ回路１０２によりエラーデータを訂正するには、冗長なＥＣＣデータを使用するため、例えば、ＲＡＭ１０１の容量を余計に消費することになる。すなわち、ＥＣＣデータを使用することで、実際に使用可能なメモリ容量の低下を来すことになる。なお、このような課題は、ＲＡＭに限定されるものではなく、フラッシュメモリを始めとして、他の様々な半導体記憶装置でも同様に存在する。
【００１９】
以下、半導体記憶装置および半導体記憶装置のアクセス制御方法の実施例を、添付図面を参照して詳述する。図２は、本実施例に係る半導体記憶装置の一例を示すブロック図である。
【００２０】
図２に示されるように、半導体記憶装置１は、ＲＡＭ(メモリ部)１１，書き込み側ビット並び替え回路(第１並び替え回路)２１、エラー検出回路２２および並び替え情報生成回路２３を含む。さらに、半導体記憶装置１は、情報格納レジスタ２４、情報反映レジスタ２５および読み出し側ビット並び替え回路(第２並び替え回路)２６を含む。
【００２１】
書き込み側ビット並び替え回路２１は、ＲＡＭ１１に書き込むデータを受け取り、後に詳述するビットの並び替え(データの並び替え)を行って、書き込みデータ(ｗｒｉｔｅ)をＲＡＭ１１に出力する。
【００２２】
エラー検出回路２２は、ＲＡＭ１１から読み出されるデータのエラー検出を行い、並び替え情報生成回路２３は、エラー検出回路２２の出力に基づいて並び替え情報を生成し、情報格納レジスタ２４に保存する。
【００２３】
ここで、エラー検出および並び替え情報の生成は、常に行ってもよいが、例えば、所定の期間ごとに行うこともできる。なお、エラー検出および並び替え情報の生成を行う期間は、ＲＡＭ１１が使用される環境等に応じて設定することができる。
【００２４】
情報反映レジスタ２５は、情報格納レジスタ２４に保存された並び替え情報を受け取り、書き込み側ビット並び替え回路２１にフィードバックすると共に、読み出し側ビット並び替え回路２６に出力する。
【００２５】
ここで、ＲＡＭ１１から読み出したデータは、図１を参照して説明したようなＥＣＣ回路１０２を経由させることなく、単なるビットの並び替え処理を行う読み出し側ビット並び替え回路２６を経由するのみなので高速化することができる。また、エラー検出回路１１は、ＲＡＭ１１からのデータ読み出し処理とは、別に動作させてＲＡＭ１１における不良ビットの特定を行う。
【００２６】
なお、エラー検出回路１１により特定された不良ビット情報は、並び替え情報生成回路２３に出力され、例えば、次回にＲＡＭ１１を使用するときのために利用される。すなわち、並び替え情報生成回路２３は、例えば、不良ビットが多ビットデータの上位に位置する場合のみ、下位の正常なビットと入れ替えるといった並び替え情報を生成し、情報格納レジスタ２４に保存する。
【００２７】
さらに、例えば、次回にＲＡＭ１１を使用するとき、ＲＡＭ１１に対してデータ書き込みを開始する前に、情報格納レジスタ２４に保存されている前回生成した並び替え情報を情報反映レジスタ２５にロードする。
【００２８】
そして、情報反映レジスタ２５にロードされた前回生成した並び替え情報を、書き込み側ビット並び替え回路２１および読み出し側ビット並び替え回路２６に出力し、その並び替え情報を反映させる。
【００２９】
なお、並び替え情報生成回路２３により生成された並び替え情報(前回の並び替え情報)を、例えば、フラッシュメモリ等の不揮発性記憶装置に退避しておき、その不揮発性記憶装置のデータを情報反映レジスタ２５にロードするようにしてもよい。この場合、例えば、電源立ち上げ直後からビット並び替え処理を行うことが可能になる。
【００３０】
ここで、本実施例の適用は、例えば、画像データ等の単ビット不良が全体に対して大きく影響しないデータの処理に限定される。すなわち、本実施例では、後に詳述するように、多ビットデータのうち上位ビットでエラーが生じると、そのエラービットをエラーの生じていない下位ビットに置き替えるといったビット並び替え処理を行うためである。
【００３１】
また、例えば、画像データ等において、エラー検出を行うエラー検出対象ビットは、多ビットデータのうちデータの質に大きく影響する上位ビット(例えば、１６ビットデータにおける上位８ビット等)のみとするのが、処理を高速化する上で好ましい。次に、上述した各処理を、図３〜図５を参照して詳述する。
【００３２】
図３〜５は、図２に示す半導体記憶装置における処理を説明するためのフローチャートである。ここで、図３は、ＲＡＭ(メモリ部)１１へのデータ書き込み処理の一例を説明するためのものであり、図４は、ＲＡＭ１１からのデータ読み出し処理の一例を説明するためのものである。また、図５は、ＲＡＭ１１から読み出したデータに基づいて並び替え情報を生成する処理の一例を説明するためのものである。
【００３３】
まず、図３に示されるように、ＲＡＭ１１へのデータ書き込み処理が開始すると、ステップＳＴ１１において、ビット並び替え情報を情報格納レジスタから各並び回路に反映し、ステップＳＴ１２に進む。
【００３４】
すなわち、ステップＳＴ１１では、情報格納レジスタ２４に保存されている並び替え情報を、情報反映レジスタ２５にロードし、書き込み側ビット並び替え回路２１および読み出し側ビット並び替え回路２６に反映させる。
【００３５】
ステップＳＴ１２では、ビット並び替え情報(書き込み側)が存在するかどうかを判定し、ビット並び替え情報(書き込み側)が存在しないと判定した場合には、そのままステップＳＴ１４に進んで、ＲＡＭに対してデータ書き込みを行う。
【００３６】
例えば、ＲＡＭ１１の１回目の書き込み処理、或いは、ＲＡＭ１１の上位ビットには不良が存在しない等により、書き込み側ビット並び替え回路２１が処理するビット並び替え情報が存在しない場合、入力された書き込みデータを、そのままＲＡＭ１１に書き込む。
【００３７】
ステップＳＴ１２において、ビット並び替え情報(書き込み側)が存在すると判定した場合には、ステップＳＴ１３に進んで、ビット並び替えを行った後、ステップＳＴ１４に進んで、ビット並び替えを行ったデータをＲＡＭ１１に書き込む。
【００３８】
例えば、ＲＡＭ１１の１回目の書き込み処理で上位ビットに不良が検出された等によりビット並び替え情報が存在すれば、書き込み側ビット並び替え回路２１は、そのビット並び替え情報に従ってビット並び替え処理を行った後、ＲＡＭ１１にデータを書き込む。そして、ステップＳＴ１４において、ＲＡＭ１１に対するデータ書き込みを行うと、ＲＡＭ１１へのデータ書き込み処理が終了することになる。
【００３９】
次に、図４に示されるように、ＲＡＭ１１からのデータ読み出し処理が開始すると、ステップＳＴ２１において、エラー検出回路にてＲＡＭ読み出しデータをチェックし、ステップＳＴ２２に進む。
【００４０】
すなわち、ステップＳＴ２１では、ＲＡＭ１１から読み出したデータをエラー検出回路２２によりチェックし、ステップＳＴ２２に進んで、読み出しデータにビットエラーがあるかどうかを判定する。
【００４１】
ステップＳＴ２２において、読み出しデータにビットエラーがないと判定すると、ステップＳＴ２５に進み、一方、読み出しデータにビットエラーがあると判定すると、ステップＳＴ２３に進んで、ビットエラーが上位ビットに存在するかどうかを判定する。
【００４２】
ステップＳＴ２３において、ビットエラーが上位ビットに存在しないと判定すると、ステップＳＴ２５に進み、一方、ビットエラーが上位ビットに存在すると判定すると、ステップＳＴ２４に進む。
【００４３】
ステップＳＴ２４では、エラー対象ビットと正常ビットの並び替え情報を生成し、情報格納レジスタに保存して、ステップＳＴ２５に進む。なお、ステップＳＴ２４におけるエラー対象ビットと正常ビットの並び替え情報の生成に関しては、後に、図６〜図８を参照して詳述する。
【００４４】
そして、ステップＳＴ２４において、データ読み出しは終了かどうかを判定し、終了していないと判定すれば、ステップＳＴ２１に戻って同様の処理を繰り返し、そうでなければ、ＲＡＭ１１からのデータ読み出し処理を終了する。
【００４５】
さらに、図５に示されるように、ＲＡＭ１１から読み出したデータに基づいて並び替え情報を生成する処理開始すると、ステップＳＴ３１において、ビット並び替え情報を情報格納レジスタから各並び回路に反映し、ステップＳＴ３２に進む。
【００４６】
すなわち、ステップＳＴ３１では、情報格納レジスタ２４に保存されている並び替え情報を、情報反映レジスタ２５にロードし、書き込み側ビット並び替え回路２１および読み出し側ビット並び替え回路２６に反映させる。
【００４７】
ステップＳＴ３２では、ビット並び替え情報(読み出し側)が存在するかどうかを判定し、ビット並び替え情報(読み出し側)が存在しないと判定した場合には、そのままステップＳＴ３４に進んで、後段にデータ送信する。
【００４８】
例えば、ＲＡＭ１１には不良ビットが存在しない、或いは、ＲＡＭ１１の上位ビットには不良が存在しない等により、読み出し側ビット並び替え回路２６が処理するビット並び替え情報が存在しない場合、読み出されたデータを、そのまま後段に出力する。
【００４９】
ステップＳＴ３２において、ビット並び替え情報(読み出し側)が存在すると判定した場合には、ステップＳＴ３３に進んで、ビット並び替えを行った後、ステップＳＴ３４に進んで、後段にデータ送信する。
【００５０】
例えば、ＲＡＭ１１の上位ビットに不良が存在し、読み出し側ビット並び替え回路２６が処理するビット並び替え情報が存在する場合、読み出し側ビット並び替え回路２６は、そのビット並び替え情報に従ってビット並び替え処理を行う。
【００５１】
この読み出し側ビット並び替え回路２６によるビット並び替え処理に関しては、ステップＳＴ２４におけるエラー対象ビットと正常ビットの並び替え情報の生成と共に、図６〜図８を参照して、以下に詳述する。
【００５２】
図６〜図８は、図２に示す半導体記憶装置における処理の一例を説明するための図である。すなわち、図６〜図８は、並び替え情報生成回路２３による並び替え情報の生成、並びに、書き込み側ビット並び替え回路２１および読み出し側ビット並び替え回路２６による並び替え処理の一例を説明するためのものである。
【００５３】
ここで、図６〜図８は、１６進数『５５５５』の書き込みデータを、メモリ部(ＲＡＭ１１)に書き込み／読み出しする場合の処理を説明するためのものであるが、これは単なる一例を示すだけのものであり、様々な変形および変更が可能なのはいうまでもない。なお、１６進数『５５５５』は、２進数『０１０１０１０１０１０１０１０１』に対応する。
【００５４】
図６は、１６進数『５５５５』に対応する２進数『０１０１０１０１０１０１０１０１』を表示するためのメモリ(ＲＡＭ１１)における１６ビットデータの格納領域を示す。以下の説明では、１６ビットのうち、上位８ビット(ｂｉｔ：「１５」〜「８」)に対してエラー検出・対処を実施し、下位８ビット(ｂｉｔ：「７」〜「０」)はエラー検出の対象外として説明する。
【００５５】
具体的に、例えば、ＹＣＢＣＲ方式では、「人間の目は明るさの変化には敏感だが、色の変化には鈍感である」という性質に基づいて、色度信号の情報量を減らすことができる。そのような比較的重要度の低くなる画像パラメータに対しては、ある程度の上位ビットにエラー検出を絞っても、画質に与える影響は小さいと考えられる。また、動画では、例えば、毎秒数十フレーム分の１の画像の中に画素のエラーが存在しても、判別するのは難しいことが知られている。
【００５６】
そのため、例えば、画像の連続データに対して、エラービット検出範囲をある程度の上位ビットに絞っても、見た目には気づき難いと考えられる。すなわち、ビットエラーを検出した場合、次のフレームでは、ビットの並び替えが行われるため、ほとんど気にならない。また、静止画において、撮影前のライブビューとして使用する場合も同様のことがいえる。
【００５７】
すなわち、エラー検出および並び替え情報の生成を常に行う場合、例えば、フレーム毎に補正(ビットの並び替え)がかかることで、フレーム内の画素エラーが連続にならず、目立たないことになる。
【００５８】
また、カメラでは、例えば、撮影前にライブビュー表示がなされるので、その際の画素のエラーは記録に残らず、その面からも問題になることはない。なお、例えば、ライブビューの先頭数フレームが流れれば、最適な状態(全てのエラーが下位ビットにあつまる)に落ち着くため、動画を録画するときや静止画の撮影時には、エラーが目立たない状態になる。
【００５９】
このように、本実施例の適用は、多ビットデータ(例えば、１６ビットデータ)のうち、上位ビット(例えば、上位８ビット)はデータ品質に大きく影響するが、下位ビット(例えば、最下位ビット等)はデータ品質に殆ど影響を与えない画像データ等が好ましい。
【００６０】
また、上述のように、エラー訂正とするビット数(エラー対象ビット)は、さらに減らすことができ、例えば、１６ビットのＲＡＭにおけるエラー発生の確率を多く見積もって４ビットとしても、例えば、ライブビュー時に４分割してチェックしておけば、４フレームで最適状態に維持することができる。なお、本実施例の適用は、このようなカメラのライブビューの画像データに限定されるものではない。
【００６１】
このように、例えば、画像データは、ビットエラーが生じても、そのエラーが上位ビットであるほど画質に対する影響が大きく、下位ビットになればなるほど画質に対する影響は小さくなる。これを踏まえて、以下の説明では、１６ビットの画像データのうち、画質に対する影響が大きい上位８ビットに対してエラー検出・対処を行うものとする。
【００６２】
すなわち、図７および図８では、１６ビットのメモリ領域(ＲＡＭ１１)における最上位から２ビット目(ｂｉｔ：「１４」)が故障ビット、具体的に、データが『０』に固定の場合を例として説明する。
【００６３】
図７は、ＲＡＭ１１に対する１回目の処理(１回目のアクセス)を示すものであり、ＲＡＭ１１(１６ビットのメモリ領域)に対して１６進数『５５５５』を書き込み、その後、読み出しを行った場合を示す。
【００６４】
まず、１回目の処理では、図７(a)に示されるように、例えば、１６進数『００００』が書き込まれている、或いは、初期状態の１６ビットメモリ領域(１１)に対して、図７(b)に示されるように、１６進数データ『５５５５』を書き込む。
【００６５】
このとき、図７(c)に示されるように、最上位から２ビット目(ｂｉｔ：「１４」)が故障(『０』に固定)しているため、本来の２進数データ『０１０１０１０１０１０１０１０１』は、『０００１０１０１０１０１０１０１』としてメモリ領域に保存される。
【００６６】
さらに、図７(d)に示されるように、読み出しを行うと、メモリ領域からは、最上位から２ビット目のデータが『０』になっている『０００１０１０１０１０１０１０１』が読み出される。なお、この２進数データ『０００１０１０１０１０１０１０１』は、１６進数データ『１５５５』に対応する。
【００６７】
この１回目の処理により、上位ビット(最上位から２ビット目)にエラーがあることを確認することができる。なお、エラービットは、エラー検出回路２２(例えば、ＥＣＣ回路におけるエラー検出部)により検出することができる。或いは、初期処理として、書き込みデータ『５５５５』と読み出しデータ『１５５５』の比較を行うことにより、容易にエラービットの検出を行うことができる。
【００６８】
そして、１回目の処理で上位ビットの故障を検出すると、その故障の上位ビットを、正常な下位ビットに置き替えるための並び替え情報を生成する。そして、２回目以降の処理(２回目以降のアクセス)で、書き込み側ビット並び替え回路２１および読み出し側ビット並び替え回路２６に反映させる。
【００６９】
すなわち、本実施例において、エラー検出回路２２は、単にエラービットを検出するだけで、ＥＣＣ回路のようなエラービットの訂正機能が不要なため、簡単な回路構成で実現可能である。また、読み出しデータを、毎回ＥＣＣ回路を経由して出力しなくてもよいため、レイテンシの増大を低減することができる。
【００７０】
なお、書き込み側ビット並び替え回路２１および読み出し側ビット並び替え回路２６による並び替え情報の反映は、ＥＣＣ回路によるエラー検出・訂正処理とは異なり、以下に詳述するように、単なるビット(データ)の並べ替えで済むことになる。
【００７１】
図８は、ＲＡＭ１１に対する２回目以降の処理を示すものである。なお、例えば、１回目の処理で並び替え情報生成回路２３により生成された並び替え情報を、例えば、フラッシュメモリ等の不揮発性記憶装置に退避しておけば、その並び替え情報を利用することで最初(起動時)からビットの並べ替えを行うことができる。
【００７２】
また、図８においても、図７を参照して説明したメモリ領域に対する１回目の処理と同様に、１６進数データ『５５５５』を書き込み、その後、読み出しを行った場合の処理が示されている。
【００７３】
まず、２回目以降の処理では、図８(a)〜図８(c)に示されるように、例えば、故障(『０』に固定)している最上位から２ビット目(ｂｉｔ：「１４」)のデータ(『１』)を、正常な最下位ビット(ｂｉｔ：「０」)に書き込む。なお、本来、最下位ビットに書き込むデータ(『１』)は、故障している最上位から２ビット目に書き込む。
【００７４】
すなわち、並び替え情報生成回路２３は、例えば、エラー検出回路２２により検出された最上位から２ビット目がエラービットであるという情報に基づいて、最上位から２ビット目と、最下位ビットの入れ替え(並び替え)を行うための並び替え情報を生成する。
【００７５】
この並び替え情報生成回路２３により生成された並び替え情報は、情報格納レジスタ２４に保存され、２回目以降の処理を行う場合、情報格納レジスタ２４から情報反映レジスタ２５にロードされる。
【００７６】
そして、データを書き込む場合、書き込み側ビット並び替え回路２１は、情報反映レジスタ２５に保持された並び替え情報に基づいて、最上位から２ビット目と最下位ビットを並び替えてからデータ書き込みを行う。
【００７７】
なお、エラービットが複数、例えば、ｂｉｔ：「１４」と「１３」の２つ検出された場合には、上述したビット「１４」と「０」の並び替えと共に、ビット「１３」と「１」の並び替えも行う。
【００７８】
ここで、検出された上位のエラービットを置き替える下位のビット(並び替え用のビット)としては、最下位ビット「０」から上位に向かって「１，２，…」設定(選択)するのが好ましい。ただし、エラー発生確率からすると、通常、最下位ビット「０」による並び替えだけで済むのが大半である。
【００７９】
再び、ビット「１４」)のみが不良のときに戻って説明すると、例えば、１６進数データ『５５５５』を書き込む場合、ビット「１４」と「０」の並び替えを行った２進数データ『０１０１０１０１０１０１０１０１』が書き込まれる。
【００８０】
ここで、図８(d)に示されるように、１６ビットのメモリ領域におけるビット「１４」(最上位から２ビット目)は、エラービットでそのデータは『０』に固定される。すなわち、図８(e)に示されるように、メモリ領域に保存されたデータは、『０００１０１０１０１０１０１０１』になっている。
【００８１】
そして、図８(f)に示されるように、読み出しを行う場合、メモリ領域(ＲＡＭ１１)から読み出されたデータ『０００１０１０１０１０１０１０１』は、読み出し側ビット並び替え回路２６に入力され、ビット「１４」と「０」の並び替えが行われる。
【００８２】
すなわち、読み出し側ビット並び替え回路２６は、情報反映レジスタ２５に保持された並び替え情報に基づいて、書き込み時における並び替えを元に戻すための並び替え、すなわち、ビット「１４」と「０」のデータの入れ替えを行って出力する。
【００８３】
これにより、読み出し側ビット並び替え回路２６から出力されるデータ(２進数データ)は『０１０１０１０１０１０１０１００』になる。これは、１６進数データ『５５５４』に対応する。
【００８４】
このように、情報反映レジスタ２５に保持された並び替え情報を、書き込み側ビット並び替え回路２１および読み出し側ビット並び替え回路２６に反映させることで、１６進数データ『５５５５』を『５５５４』として読み出すことができる。
【００８５】
本実施例によれば、書き込み側および読み出し側のビット並び替え回路は、単にビットの並び替え(データの並び替え)を行うのみであるため、例えば、ＥＣＣ回路を経由してエラーの検出・訂正を行うよりもはるかに高速にデータ読み出しを行うことができる。
【００８６】
また、多ビットデータのうち、影響の小さい下位ビットをエラー検出の対象外とすることで、ＥＣＣ用のＲＡＭに保存する冗長データを削減することができ、結果的に、搭載ＲＡＭの容量を削減することが可能になる。
【００８７】
すなわち、本実施例によれば、ＲＡＭデータの読み出し高速化、並びに、搭載ＲＡＭの削減による回路の占有面積の削減および消費電力の低減を図ることができる。さらに、例えば、使用中に経年劣化等でＲＡＭの特定ビットが使えなくなった場合にも、データのビット並び替えにより、次回使用時にデータ品質への影響を抑えることが可能になる。
【００８８】
なお、本実施例の適用は、ＲＡＭに対する書き込み／読み出し処理に限定されるものではなく、フラッシュメモリ等の他の様々な半導体記憶装置に対しても適用することができる。
【００８９】
さらに、本実施例が適用されるデータとしては、画像データに限定されず、例えば、単ビット不良が全体に対して大きく影響せず、その影響も、多ビットデータのうち上位ビットが大きく下位ビットが小さいといった様々なデータであってもよい。
【００９０】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き替え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【００９１】
以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
（付記１）
メモリ部と、
複数ビットのデータを受け取り、前記データ内のエラーが検出された第１ビットを、エラーが検出されない第２ビットに並び替えて前記メモリ部へ格納する第１並び替え回路と、
前記メモリ部から読み出されたデータを受け取り、前記第２ビットのデータを、前記第１ビットのデータと並び替えて出力する第２並び替え回路と、を有する、
ことを特徴とする半導体記憶装置。
【００９２】
（付記２）
前記第１ビットは、前記第２ビットよりも上位のビットである、
ことを特徴とする付記１に記載の半導体記憶装置。
【００９３】
（付記３）
前記第２ビットは、前記データの内の最下位ビットである、
ことを特徴とする付記２に記載の半導体記憶装置。
【００９４】
（付記４）
前記第１ビットが複数ビット存在する場合、
前記第２ビットは、前記最下位ビットから上位に向かって順に選択される、
ことを特徴とする付記３に記載の半導体記憶装置。
【００９５】
（付記５）
さらに、
前記メモリ部から読み出されたデータを受け取り、前記メモリ部におけるエラーを検出するエラー検出回路を有し、
前記エラー検出回路の出力に基づいて、前記第１および第２並び替え回路が動作する、
ことを特徴とする付記１乃至付記４のいずれか１項に記載の半導体記憶装置。
【００９６】
（付記６）
さらに、
前記エラー検出回路の出力に基づいて、前記第１および第２並び替え回路の動作を制御する、並び替え情報を生成する並び替え情報生成回路と、
前記並び替え情報生成回路により生成された前記並び替え情報を保存する情報格納レジスタを有する、
ことを特徴とする付記５に記載の半導体記憶装置。
【００９７】
（付記７）
さらに、
前記情報格納レジスタに保存された前記並び替え情報を読み出し、前記第１並び替え回路および前記第２並び替え回路に前記並び替え情報を反映させる情報反映レジスタを有する、
ことを特徴とする付記６に記載の半導体記憶装置。
【００９８】
（付記８）
前記複数ビットのデータは、画像データであり、
前記メモリ部は、ＲＡＭである、
ことを特徴とする付記１乃至付記７のいずれか１項に記載の半導体記憶装置。
【００９９】
（付記９）
メモリ部に対する複数ビットのデータを受け取り、前記データの内のエラーが検出された第１ビットを、エラーが検出されない第２ビットに並び替えて前記メモリ部へ格納し、
前記メモリ部から読み出されたデータを受け取り、前記第２ビットのデータを、前記第１ビットのデータと並び替えて出力する、
ことを特徴とする半導体記憶装置のアクセス制御方法。
【０１００】
（付記１０）
前記第１ビットは、前記第２ビットよりも上位のビットである、
ことを特徴とする付記９に記載の半導体記憶装置のアクセス制御方法。
【０１０１】
（付記１１）
前記第２ビットは、前記データの内の最下位ビットである、
ことを特徴とする付記１０に記載の半導体記憶装置のアクセス制御方法。
【０１０２】
（付記１２）
前記第１ビットが複数ビット存在する場合、
前記第２ビットは、前記最下位ビットから上位に向かって順に選択される、
ことを特徴とする付記１１に記載の半導体記憶装置のアクセス制御方法。
【０１０３】
（付記１３）
さらに、
前記メモリ部から読み出されたデータを受け取り、前記メモリ部におけるエラーを検出し、
前記エラー検出回路の出力に基づいて、前記第１および第２並び替え回路が動作する、
ことを特徴とする付記９乃至付記１２のいずれか１項に記載の半導体記憶装置のアクセス制御方法。
【０１０４】
（付記１４）
前記複数ビットのデータは、画像データであり、
前記メモリ部は、ＲＡＭである、
ことを特徴とする付記９乃至付記１３のいずれか１項に記載の半導体記憶装置のアクセス制御方法。
【符号の説明】
【０１０５】
１，１００    半導体記憶装置
１１，１０１    ＲＡＭ(メモリ部)
２１    書き込み側ビット並び替え回路(第１並び替え回路)
２２    エラー検出回路
２３    並び替え情報生成回路
２４    情報格納レジスタ
２５    情報反映レジスタ
２６    読み出し側ビット並び替え回路(第２並び替え回路)
１０２    エラー検出・訂正回路
【図１】
0006497258.tif 000002
【図２】
0006497258.tif 000003
【図３】
0006497258.tif 000004
【図４】
0006497258.tif 000005
【図５】
0006497258.tif 000006
【図６】
0006497258.tif 000007
【図７】
0006497258.tif 000008
【図８】
0006497258.tif 000009