(57)【要約】【課題】簡易な構成によりメモリ障害を隠蔽して、メモリの信頼性を向上させることを可能とする。【解決手段】メモリアクセス制御装置３０は、複数のビットを包含するメモリ２０において、論理的に値が固定されたビットである論理固定ビットを識別する識別子と、障害により値が前記論理固定ビットが示す値に固定されたビットである障害ビットを識別する識別子と、を関連付けたビット入れ替え情報３１０を記憶する入れ替え情報記憶部３１と、ビット入れ替え情報３１０に基づき、論理固定ビットと障害ビットとを入れ替えてから、メモリへ２０のアクセスを処理するアクセス制御部３２と、を備える。【選択図】      図８
2015121944.tif 000002
【特許請求の範囲】
【請求項１】
複数のビットを包含するメモリにおいて、論理的に値が固定されたビットである論理固定ビットを識別する識別子と、障害により値が前記論理固定ビットが示す値に固定されたビットである障害ビットを識別する識別子と、を関連付けたビット入れ替え情報を記憶する入れ替え情報記憶手段と、
前記ビット入れ替え情報に基づき、前記論理固定ビットと前記障害ビットとを入れ替えてから、前記メモリへのアクセスを処理するアクセス制御手段と、
を備えるメモリアクセス制御装置。
【請求項２】
前記入れ替え情報記憶手段は、前記障害ビットが検出される前から、１以上の前記論理固定ビットを識別する識別子を、前記論理固定ビットが示す値と関連付けて記憶し、
前記障害ビットを検出したのち、当該障害ビットが示す値と等しい値を示す、前記入れ替え情報記憶手段に記憶された何れかの前記論理固定ビットを選択して、当該障害ビットを識別する識別子と当該論理固定ビットを識別する識別子とを関連付けて、前記ビット入れ替え情報として前記入れ替え情報記憶手段に登録する登録手段を、
さらに備える、請求項１に記載のメモリアクセス制御装置。
【請求項３】
前記登録手段は、特定の前記障害ビットに関して、前記障害が発生した回数をカウントし、前記回数が閾値に到達したときに、前記特定の障害ビットに関する前記ビット入れ替え情報を、前記入れ替え情報記憶手段に登録する、
請求項１または２に記載のメモリアクセス制御装置。
【請求項４】
前記特定の障害ビットを識別する識別子と、特定の前記障害ビットに関する前記障害が発生した回数と、を関連付けた障害情報を記憶する障害情報記憶手段をさらに備え、
前記登録手段は、前記特定の障害ビットを検出した際に、前記特定の障害ビットに関する前記障害情報を、前記障害情報検出手段に登録する、
請求項３に記載のメモリアクセス制御装置。
【請求項５】
前記メモリが包含する所定の数のビットに関する１ビットエラーを訂正するエラー訂正手段をさらに備え、
前記登録手段は、前記エラー訂正手段への入力データが示す値と、前記エラー訂正手段から出力された出力データが示す値を比較することによって、前記障害ビットを検出する、
請求項２乃至４のいずれかに記載のメモリアクセス制御装置。
【請求項６】
請求項１乃至５のいずれかに記載のメモリアクセス制御装置と、前記メモリとを有するメモリアクセス制御システム。
【請求項７】
情報処理装置によって、
複数のビットを包含するメモリにおいて、論理的に値が固定されたビットである論理固定ビットを識別する識別子と、障害により値が前記論理固定ビットが示す値に固定されたビットである障害ビットを識別する識別子と、を関連付けたビット入れ替え情報が記憶されている記憶手段を参照することにより、前記ビット入れ替え情報に基づき、前記論理固定ビットと前記障害ビットとを入れ替えてから、前記メモリへのアクセスを処理する、
メモリアクセス制御方法。
【請求項８】
前記障害ビットが検出される前に１以上の前記論理固定ビットを識別する識別子を前記論理固定ビットが示す値と関連付けて記憶した前記記憶手段に対して、前記障害ビットを検出したのち、当該障害ビットが示す値と等しい値を示す、前記記憶域に記憶された何れかの前記論理固定ビットを選択して、当該障害ビットを識別する識別子と当該論理固定ビットを識別する識別子とを関連付けて、前記ビット入れ替え情報として登録する、
請求項７に記載のメモリアクセス制御方法。
【請求項９】
複数のビットを包含するメモリにおいて、論理的に値が固定されたビットである論理固定ビットを識別する識別子と、障害により値が前記論理固定ビットが示す値に固定されたビットである障害ビットを識別する識別子と、を関連付けたビット入れ替え情報が記憶されている記憶手段を参照することにより、前記ビット入れ替え情報に基づき、前記論理固定ビットと前記障害ビットとを入れ替えてから、前記メモリへのアクセスを処理するアクセス制御処理
をコンピュータに実行させるメモリアクセス制御プログラム。
【請求項１０】
前記障害ビットが検出される前に１以上の前記論理固定ビットを識別する識別子を前記論理固定ビットが示す値と関連付けて記憶した前記記憶手段に対して、前記障害ビットを検出して、当該障害ビットが示す値と等しい値を示す、前記記憶域に記憶された何れかの前記論理固定ビットを選択して、当該障害ビットを識別する識別子と当該論理固定ビットを識別する識別子とを関連付けて、前記ビット入れ替え情報として登録する登録処理
をコンピュータに実行させる請求項９に記載のメモリアクセス制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、障害が発生した半導体メモリに対して、障害を隠蔽したアクセス制御を行うメモリアクセス制御装置等に関する。
【背景技術】
【０００２】
ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ） やＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の半導体メモリを含む回路においては、α 線や中性子線により発生するソフトエラーに対応するため、一般的に、１ビットエラーを訂正し２ビットエラーを検出するＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋｉｎｇ  ａｎｄ  Ｃｏｒｒｅｃｔｉｎｇ）回路が設けられている。
【０００３】
また、ソフトエラー以外にも、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）製造不良あるいは経年劣化等により、メモリが故障した１ビットエラーが発生する場合がある。メモリが故障した１ビットエラーは、一時的で復旧可能なソフトエラーとは異なり、復旧することがない固定障害として扱われる。係る固定障害による１ビットエラーは、ＥＣＣ回路により訂正されるものの、常に１ビットエラーが発生している状態となっているため、ソフトエラーが併発した場合は２ビットエラーに発展する。特にシステム構成上重要な役割を担っているメモリにおいて２ビットエラーが発生した場合は、システムが停止する可能性がある。したがって、メモリの信頼性を向上させる技術に対する期待が高まってきている。
【０００４】
上述した技術に関連する技術として、特許文献１には、ＥＣＣデータワード内におけるデータビットごとに障害の発生回数をカウントし、発生回数が閾値を超えた場合に予備のメモリチップと交換し、その後は、予備のメモリチップと並列に障害メモリチップへのデータ書き込みを継続するようにしたシステムが開示されている。
【０００５】
また、特許文献２には、複数のメモリセルアレイブロックにおけるデータ入出力線群の各入出力線と、係るメモリセルアレイブロックに対応する複数の誤り検出及び訂正系のデータ入出力線群の各入出力線との１対１の対応関係を、プログラム素子を有するデータ入出力線アドレス変換手段によりプログラム可能とした装置が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平05-210595号公報
【特許文献２】特開平01-165099号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１が開示した技術では、メモリの信頼性を向上させるために、予備のメモリチップが必要となる。また、特許文献２が開示した技術では、メモリの信頼性向上させるために、プログラム素子を有するデータ入出力線アドレス変換手段が必要となる。すなわち、いずれの技術においても、メモリの信頼性を向上させるためにハードウェアが増大する問題がある。したがって、より簡易な構成により、メモリの信頼性を向上させることが課題となる。
【０００８】
本願発明の主たる目的は、この課題を解決した、メモリアクセス制御装置、メモリアクセス制御システム、メモリアクセス制御方法、及び、メモリアクセス制御プログラムを提供することである。
【課題を解決するための手段】
【０００９】
本願発明に係るメモリアクセス制御装置は、複数のビットを包含するメモリにおいて、論理的に値が固定されたビットである論理固定ビットを識別する識別子と、障害により値が前記論理固定ビットが示す値に固定されたビットである障害ビットを識別する識別子と、を関連付けたビット入れ替え情報を記憶する入れ替え情報記憶手段と、前記ビット入れ替え情報に基づき、前記論理固定ビットと前記障害ビットとを入れ替えてから、前記メモリへのアクセスを処理するアクセス制御手段と、備えることを特徴とする。
【００１０】
上記目的を達成する他の見地において、本願発明のメモリアクセス制御方法は、情報処理装置によって、複数のビットを包含するメモリにおいて、論理的に値が固定されたビットである論理固定ビットを識別する識別子と、障害により値が前記論理固定ビットが示す値に固定されたビットである障害ビットを識別する識別子と、を関連付けたビット入れ替え情報が記憶されている記憶手段を参照することにより、前記ビット入れ替え情報に基づき、前記論理固定ビットと前記障害ビットとを入れ替えてから、前記メモリへのアクセスを処理することを特徴とする。
【００１１】
また、上記目的を達成する更なる見地において、本願発明に係るメモリアクセス制御プログラムは、複数のビットを包含するメモリにおいて、論理的に値が固定されたビットである論理固定ビットを識別する識別子と、障害により値が前記論理固定ビットが示す値に固定されたビットである障害ビットを識別する識別子と、を関連付けたビット入れ替え情報が記憶されている記憶手段を参照することにより、前記ビット入れ替え情報に基づき、前記論理固定ビットと前記障害ビットとを入れ替えてから、前記メモリへのアクセスを処理するアクセス制御処理と、をコンピュータに実行させることを特徴とする。
【００１２】
更に、本発明は、係る情報読取プログラム（コンピュータプログラム）が格納された、コンピュータ読み取り可能な、不揮発性の記憶媒体によっても実現可能である。
【発明の効果】
【００１３】
本願発明は、簡易な構成によりメモリ障害を隠蔽して、メモリの信頼性を向上させることを可能とする。
【図面の簡単な説明】
【００１４】
【図１】本願発明の第１の実施形態に係るメモリアクセス制御システムの構成を示すブロック図である。
【図２】本願発明の第１の実施形態に係るメモリアクセス制御装置がビット入れ替え情報を登録する動作を示すフローチャートである。
【図３】本願発明の第１の実施形態に係るメモリアクセス制御装置がビット入れ替えによるメモリへのアクセス制御を行う動作を示すフローチャートである。
【図４】本願発明の第１の実施形態に係るビット入れ替え情報を例示する図である。
【図５】本願発明の第１の実施形態に係るアクセス制御部が行うビット入れ替え動作を例示する図である。
【図６】本願発明の第１の実施形態に係るエラー訂正部がエラー訂正を行う動作を例示する図である。
【図７】本願発明の第１の実施形態に係る障害情報を例示する図である。
【図８】本願発明の第２の実施形態に係るメモリアクセス制御装置の構成を示すブロック図である。
【図９】本願発明の各実施形態のメモリアクセス制御装置を実行可能な情報処理装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
【００１６】
＜第１の実施形態＞
図１は第１の実施形態のメモリアクセス制御システム１の構成を概念的に示すブロック図である。本実施形態のメモリアクセス制御システム１は、メモリアクセス制御装置１０、及び、メモリ２０を有する。メモリアクセス制御装置１０は、中央処理装置（不図示）から受信したメモリアクセス入力情報に従ってメモリ２０へアクセスし、アクセスした結果をメモリアクセス出力情報として、中央処理装置へ送信する。メモリ２０は、１以上のＲＡＭモジュールを有し、複数のビットを包含するメモリである。メモリ２０は、主記憶メモリである場合もあれば、キャッシュメモリである場合もある。尚、メモリアクセス制御システム１は、１つの情報処理装置に内蔵される場合もある。
【００１７】
メモリアクセス制御装置１０は、入れ替え情報記憶部１１、アクセス制御部１２、登録部１３、障害情報記憶部１４、及び、エラー訂正部１５を備えている。アクセス制御部１２、登録部１３、及び、エラー訂正部１５は、電子回路の場合もあれば、コンピュータプログラムとそのコンピュータプログラムに従って動作するプロセッサによって実現される場合もある。入れ替え情報記憶部１１、及び、障害情報記憶部１４は、電子回路、あるいは、コンピュータプログラムとそのコンピュータプログラムに従って動作するプロセッサによりアクセス制御される、電子メモリ等の記憶デバイスである。
【００１８】
入れ替え情報記憶部１１は、ビット入れ替え情報１１０を記憶している。ビット入れ替え情報１１０の構成例を図４に示す。ビット入れ替え情報１１０における論理固定ビットは、メモリ２０において、値が論理的に“０”あるいは“１”のいずれかに固定されていることが判明しているビットである。ビット入れ替え情報１１０における障害ビットは、メモリ２０において固定障害が発生したビットである。ビット入れ替え情報１１０は、論理固定ビットが示す値と、当該論理固定ビットを識別可能なビット位置と、障害ビットを識別可能なビット位置と、を関連付けたレコードを包含している。
【００１９】
ビット入れ替え情報１１０における論理固定ビットに関する値及びビット位置は、メモリアクセス制御システム１のシステム管理者により事前に登録されている。障害ビットは、メモリアクセス制御システム１の運用中に障害が発生した際に、登録部１３により登録される。図４に示す例の場合、ビット入れ替え情報１１０は、論理的に“０”に固定されたｂｉｔ２と、障害により“０”に固定されたｂｉｔ３とを関連付けている。尚、ビット入れ替え情報１１０は、論理的に“１”に固定されたｂｉｔ６、及び、論理的に“０”に固定されたｂｉｔ８については、障害ビットを関連付けていない。
【００２０】
アクセス制御部１２は、メモリアクセス入力情報に従ってメモリ２０へアクセスする際に、ビット入れ替え情報１１０を参照する。そして、アクセス制御部１２は、メモリ２０におけるアクセス先のビットが、ビット入れ替え情報１１０における障害ビットとして何れかのレコードに登録されている場合は、当該レコードが示す論理固定ビットと障害ビットとを入れ替えて、メモリ２０へアクセスする。
【００２１】
ビット入れ替え情報１１０が図４に例示する情報である場合に、アクセス制御部１２が行うビット入れ替え動作の詳細を図５に示す。アクセス制御部１２は、メモリ２０に対する書き込みアクセスの場合、メモリアクセス入力情報に包含されるメモリ２０への入力データ１２０を入手する。図５に示す例では、メモリ２０への入力データ１２０が示す値は“１０１１０１０００”（内１ビットがパリティビット）である。アクセス制御部１２は、ビット入れ替え情報１１０に基づき、論理的に“０”に固定された論理固定ビットであるｂｉｔ２と、障害により“０”に固定されたｂｉｔ３とを入れ替えて、メモリ２０に格納されるデータ１２１として、メモリ２０への書き込みを行う。このとき、メモリ２０に格納されるデータ１２１が示す値は、“１１０１０１０００”（内１ビットがパリティビット）となる。
【００２２】
アクセス制御部１２は、メモリ２０からの読み出しアクセスの場合、ビット入れ替え情報１１０に基づき、メモリ２０から読み出したメモリ２０に格納されるデータ１２１におけるｂｉｔ２とｂｉｔ３とを入れ替えて、エラー訂正部１５への入力データ１２２として、メモリ２０から読み出す。このとき、エラー訂正部１５への入力データ１２２が示す値は、“１０１１０１０００”（内１ビットがパリティビット）となり、元々のデータであるメモリ２０への入力データ１２０が示す値と等しくなる。アクセス制御部１２は、エラー訂正部１５への入力データ１２２を、エラー訂正部１５へ入力する。
【００２３】
エラー訂正部１５は、ＥＣＣ回路１５０を備えている。ＥＣＣ回路１５０は、アクセス制御部１２がメモリ２０から読み出したデータについて、１ビットエラーを訂正し、２ビットエラーを検出する。エラー訂正部１５が行うエラー訂正動作を図６に示す。エラー訂正部１５は、アクセス制御部１２がメモリ２０から読み出したエラー訂正前入力データ１５１を入手する。このとき、メモリ２０におけるｂｉｔ３には障害が発生しており、エラー訂正前入力データ１５１におけるｂｉｔ３が示す値は、本来の値から反転しているものとする。ＥＣＣ回路１５０は、エラー訂正前入力データ１５１に対して１ビットエラー訂正処理を行うことにより、ｂｉｔ３が示す値を“０”から“１”に訂正したエラー訂正後出力データ１５２を出力する。エラー訂正部１５は、エラー訂正前入力データ１５１、及び、エラー訂正後出力データ１５２を、登録部１３へ入力する。エラー訂正部１５は、また、エラー訂正後出力データ１５２をメモリアクセス出力情報として、中央処理装置に送信する。
【００２４】
障害情報記憶部１４は、メモリ２０において発生した障害を管理する情報である障害情報１４０を記憶している。障害情報１４０の構成例を図７に示す。障害情報１４０におけるビット位置の項目は、メモリ２０において障害が発生した障害ビットを識別する情報である。障害情報１４０における故障値の項目は、当該故障ビットが示す値である。例えば、当該故障ビットにおいて値が“０”に固定される固定障害が発生している場合、係る故障値が示す値は“０”となる。
【００２５】
障害情報１４０における検出回数の項目は、当該故障ビットが示す値が当該故障値となる障害が発生した回数である。障害情報１４０における閾値の項目は、当該故障ビットにおいて固定障害が発生していることを登録部１３が判定する際の基準となる、検出回数に関する閾値である。図７に示す例の場合、係る閾値は“１０”に設定されているが、閾値は１０以外の値であってもよい。障害情報１４０における故障判定の項目は、当該故障ビットにおいて固定障害が発生していることを示す情報であり、係る固定障害が発生している場合は、登録部１３により“１”に設定される。障害情報１４０は、ビット位置、故障値、検出回数、閾値、及び、故障判定に係る各項目を関連付けたレコードを包含している。
【００２６】
登録部１３は、エラー訂正部１５から入力された、エラー訂正前入力データ１５１、及び、エラー訂正後出力データ１５２について、ビット位置が同じビット同士で、例えば排他的論理和を算出するなどにより、値を比較する。登録部１３は、この比較の結果、何れかのビットに関して値が異なる場合、当該ビットにおいて障害が発生していると判定して、障害情報１４０を参照する。登録部１３は、当該ビットがエラー訂正前入力データ１５１における値であるレコードが既に障害情報１４０に登録されている場合、当該レコードにおける検出回数が示す値に１を加算する。登録部１３は、当該ビットがエラー訂正前入力データ１５１における値であるレコードが障害情報１４０に登録されていない場合、係る障害の内容を示すレコードを、障害情報１４０に新たに登録する。
【００２７】
登録部１３は、上述した処理により検出回数が示す値を更新したレコードについて、係る検出回数が示す値が、当該レコードにおける閾値に達した場合、当該故障ビットにおいて固定障害が発生していると判定して、故障判定が示す値を１に設定する。そして、登録部１３は、ビット入れ替え情報１１０を参照して、論理固定ビットが示す値が当該故障ビットが示す値と等しく、かつ、障害ビットが関連付けされていないレコードをサーチする。登録部１３は、１以上のレコードがヒットした場合、ヒットしたレコードの何れかを所定の基準に基づいて選択し、当該レコードにおける障害ビットとして、当該故障ビットを設定する。登録部１３が当該レコードを選択する基準としては、最初にヒットしたレコードを選択するようにしてもよいし、その他の基準であってもよい。登録部１３は、ヒットしたレコードが存在しない場合は、ビット入れ替えにより障害を隠蔽することができないことを、メモリアクセス制御システム１を管理するシステム管理者へ通知する。
【００２８】
次に図２乃至３のフローチャートを参照して、本実施形態に係るメモリアクセス制御システム１の動作（処理）について詳細に説明する。
【００２９】
図２は、メモリアクセス制御装置１０がビット入れ替え情報１１０を登録する動作を示すフローチャートである。
【００３０】
登録部１３は、エラー訂正前入力データ１５１と、エラー訂正後出力データ１５２とを比較する（ステップＳ１０１）。比較結果が一致している場合（ステップＳ１０２でＹｅｓ）、全体の処理は終了する。比較結果が一致していない場合（ステップＳ１０２でＮｏ）、登録部１３は、障害情報１４０を参照し、比較結果が一致していないビットに関するレコードであって、故障値がエラー訂正前の当該ビットが示す値と等しいレコードが登録されているかどうかを確認する（ステップＳ１０３）。レコードが登録されている場合（ステップＳ１０４でＹｅｓ）、登録部１３は、当該レコードにおける検出回数を１加算する（ステップＳ１０５）。レコードが登録されていない場合（ステップＳ１０４でＮｏ）、登録部１３は、検出した障害の内容を示すレコードを新たに登録する（ステップＳ１０６）。
【００３１】
障害情報１４０において、当該レコードにおける検出回数が閾値に達していない場合（ステップＳ１０７でＮｏ）、全体の処理は終了する。当該レコードにおける検出回数が閾値に達した場合（ステップＳ１０７でＹｅｓ）、登録部１３は、当該レコードにおける故障判定を“１”に設定したのち、ビット入れ替え情報１１０を参照し、論理固定ビットにおける値が故障値と等しく、かつ、障害ビットが登録されていないレコードが存在するかどうかを確認する（ステップＳ１０８）。ヒットしたレコードが少なくとも１以上存在する場合（ステップＳ１０９でＹｅｓ）、登録部１３は、ヒットしたレコードの何れかに、検出した障害ビットを登録し（ステップＳ１１０）、全体の処理は終了する。ヒットしたレコードが１つも存在しない場合（ステップＳ１０９でＮｏ）、登録部１３は、ビット入れ替えにより障害を隠蔽することができないことを、システム管理者へ通知し（ステップＳ１１１）、全体の処理は終了する。
【００３２】
図３は、メモリアクセス制御装置１０がビット入れ替えによるメモリ２０へのアクセス制御を行う動作を示すフローチャートである。
【００３３】
アクセス制御部１２は、メモリアクセス入力情報により指定された、メモリ２０へのアクセスビットに関するレコードが、ビット入れ替え情報１１０に存在するかどうかを確認する（ステップＳ２０１）。ヒットしたレコードが１つも存在しない場合（ステップＳ２０２でＮｏ）、アクセス制御部１２は、メモリアクセス入力情報が指定する内容に従い、メモリ２０へアクセスし（ステップＳ２０４）、全体の処理は終了する。
【００３４】
ヒットしたレコードが少なくとも１以上存在する場合であり（ステップＳ２０２でＹｅｓ）、メモリ２０へのアクセスが書き込みアクセスである場合（ステップＳ２０４でＹｅｓ）アクセス制御部１２は、ヒットしたレコードが示す情報に基づき、メモリ２０への入力データ１２０における論理固定ビットと障害ビットとを入れ替えたデータを、メモリ２０へ書き込み（ステップＳ２０５）、全体の処理は終了する。メモリ２０へのアクセスが書き込みアクセスでない（すなわち読み出しアクセスである）場合（ステップＳ２０４でＹｅｓ）、アクセス制御部１２は、ヒットしたレコードが示す情報に基づき、メモリ２０から読み出したメモリ２０に格納されるデータ１２１における論理固定ビットと障害ビットとを入れ替えたデータを、エラー訂正部１５へ入力し（ステップＳ２０６）、全体の処理は終了する。
【００３５】
本実施形態に係るメモリアクセス制御システム１は、簡易な構成によりメモリ障害を隠蔽することによって、メモリの信頼性を向上させることができる。その理由は、入れ替え情報記憶部１１が、論理的に値が固定された論理固定ビットと障害により値が固定された障害ビットを関連付けたビット入れ替え情報１１０を記憶し、アクセス制御部１２が、ビット入れ替え情報１１０に基づいて、論理固定ビットと障害ビットとを入れ替えてから、メモリ２０へアクセスするからである。
【００３６】
例えば、一般的な情報処理装置が備えている命令キャッシュのようなメモリの場合、アプリケーションプログラム、あるいは、ハードウェアに関する論理的な構成によっては、格納される命令コードが、全命令コードの中の限られた命令コードに集中することがある。この場合、命令キャッシュ内の特定のビットに関して、常に“０”もしくは“１”が格納されるような偏りが発生している。また、システムにおける動作モード等の環境設定情報を記憶するメモリなどに関しても、記憶する値が固定されている場合が多い。
【００３７】
このような論理的に値が固定された論理固定ビットに関してメモリ障害が発生した場合、係るメモリ障害が、論理的に固定された値に固定される障害であれば、その障害は隠蔽されることになる。したがって、論理的に値が固定されていない通常のビットについて、値が固定される障害が発生した場合は、障害が発生した障害ビットと、係る障害ビットが障害により固定された値しか論理的に取りえない論理固定ビットとを入れ替えてメモリアクセスを行うことにより、係る障害を隠蔽することができる。
【００３８】
本実施形態に係るメモリアクセス制御装置１０は、メモリ障害発生時に、メモリ内に存在する論理固定ビットを活用し、障害ビットと論理固定ビットとを入れ替えることにより、例えば予備のメモリのようなハードウェアを備えることなく、メモリ障害を隠蔽することができる。
【００３９】
また、本実施形態に係るメモリアクセス制御装置１０における入れ替え情報記憶部１１は、メモリ２０においてメモリ障害が発生する前から、メモリ２０内に存在することが判明している論理固定ビットに関する情報を、ビット入れ替え情報１１０として記憶している。そして、メモリ２０において固定障害が発生した場合に、登録部１３が、障害ビットを、ビット入れ替え情報１１０に登録された何れかの論理固定ビットに関連付けて、ビット入れ替え情報１１０に登録する。すなわち、メモリ２０における障害発生時に、ビット入れ替え処理の対象となる論理固定ビットと障害ビットとの関連付けを、システム管理者が行うのではなく、メモリアクセス制御装置１０が行う。したがって、メモリアクセス制御装置１０は、システム管理者がメモリアクセス制御システム１を管理する際の負担を軽減することができる。
【００４０】
さらに、本実施形態に係るメモリアクセス制御装置１０における障害情報記憶部１４は、
メモリ２０におけるビット毎の障害発生状況を管理する情報である障害情報１４０を記憶する。登録部１３は、メモリ２０における障害が発生するたびに、障害ビットに関する検出回数に１を加算する。メモリ障害には、固定障害の他、α 線や中性子線により発生するソフトエラーがあり、例えば特定のビットにおいて１乃至２回程度障害が発生したとしても、固定障害が発生しているとは限らない。
【００４１】
もし、メモリアクセス制御装置１０が、障害ビットにおいて発生したソフトエラーを固定障害と誤認識して、係る障害ビットに関して論理固定ビットとのビット入れ替え処理を行うようにした場合、固定障害が発生した障害ビットとのビット入れ替えを行う論理固定ビットを割り当てることができなくなる虞がある。本実施形態に係る登録部１３は、検出回数が閾値に達するまでは、係る障害ビットにおいて固定障害が発生したと判定しないため、ソフトエラーを固定障害と誤認識してビット入れ替えを行う論理固定ビットを必要以上に割り当てることを回避できる。
【００４２】
尚、本実施形態は、メモリアクセス制御装置１０及びメモリ２０が独立した構成をとっているが、メモリ２０が、メモリアクセス制御装置１０の一部あるいは全ての機能を備えるようにしてもよい。
【００４３】
＜第２の実施形態＞
図８は第２の実施形態のメモリアクセス制御装置３０の構成を概念的に示すブロック図である。
【００４４】
本実施形態のメモリアクセス制御装置３０は、入れ替え情報記憶部３１、及び、アクセス制御部３２を備えている。
【００４５】
入れ替え情報記憶部３１は、複数のビットを包含するメモリ２０において、論理的に値が固定されたビットである論理固定ビットを識別する識別子と、障害により値が前記論理固定ビットが示す値に固定されたビットである障害ビットを識別する識別子と、を関連付けたビット入れ替え情報３１０を記憶する。
【００４６】
アクセス制御部３２は、ビット入れ替え情報３１０に基づき、論理固定ビットと障害ビットとを入れ替えてから、メモリ２０へのアクセスを処理する。
【００４７】
本実施形態に係るメモリアクセス制御装置３０は、簡易な構成によりメモリ障害を隠蔽して、メモリの信頼性を向上させることができる。その理由は、入れ替え情報記憶部３１が、論理的に値が固定された論理固定ビットと障害により値が固定された障害ビットを関連付けたビット入れ替え情報３１０を記憶し、アクセス制御部３２が、ビット入れ替え情報３１０に基づいて、論理固定ビットと障害ビットとを入れ替えてから、メモリ２０へアクセスするからである。
【００４８】
＜ハードウェア構成例＞
上述した各実施形態において図１、及び、図８に示した各部は、専用のＨＷ（電子回路）によって実現することができる。また、当該各部は、ソフトウェアプログラムの機能（処理）単位（ソフトウェアモジュール）と捉えることができる。但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図９を参照して説明する。
【００４９】
図９は、本発明の模範的な実施形態に係るメモリアクセス制御装置を実行可能な情報処理装置９００（コンピュータ）の構成を例示的に説明する図である。即ち、図９は、図１、及び、図８に示したメモリアクセス制御装置を実現可能なコンピュータ（情報処理装置）の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
【００５０】
図９に示した情報処理装置９００は、ＣＰＵ９０１（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ）、ＲＯＭ９０２（Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）、ＲＡＭ９０３（Ｒａｎｄｏｍ＿Ａｃｃｅｓｓ＿Ｍｅｍｏｒｙ）、ハードディスク９０４（記憶装置）、外部装置との通信インタフェース９０５（Ｉｎｔｅｒｆａｃｅ：以降、「Ｉ／Ｆ」と称する）、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ＿Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）等の記憶媒体９０７に格納されたデータを読み書き可能なリーダライタ９０８、及び、入出力インタフェース９０９を備え、これらの構成がバス９０６（通信線）を介して接続された一般的なコンピュータである。
【００５１】
そして、上述した実施形態を例に説明した本発明は、図９に示した情報処理装置９００に対して、その実施形態の説明において参照したブロック構成図（図１、及び、図８）或いはフローチャート（図２乃至３）の機能を実現可能なコンピュータプログラムを供給した後、そのコンピュータプログラムを、当該ハードウェアのＣＰＵ９０１に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性の記憶メモリ（ＲＡＭ９０３）またはハードディスク９０４等の不揮発性の記憶デバイスに格納すれば良い。
【００５２】
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、ＣＤ−ＲＯＭ等の各種記憶媒体９０７を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。そして、このような場合において、本発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記憶媒体９０７によって構成されると捉えることができる。
【００５３】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【００５４】
１    メモリアクセス制御システム
１０    メモリアクセス制御装置
１１    入れ替え情報記憶部
１１０    ビット入れ替え情報
１２    アクセス制御部
１２０    メモリ２０への入力データ
１２１    メモリ２０に格納されるデータ
１２２    エラー訂正部１５への入力データ
１３    登録部
１４    障害情報記憶部
１４０    障害情報
１５    エラー訂正部
１５０    ＥＣＣ回路
１５１    エラー訂正前入力データ
１５２    エラー訂正後出力データ
２０    メモリ
３０    メモリアクセス制御装置
３１    入れ替え情報記憶部
３１０    ビット入れ替え情報
３２    アクセス制御部
９００    情報処理装置
９０１    ＣＰＵ
９０２    ＲＯＭ
９０３    ＲＡＭ
９０４    ハードディスク
９０５    通信インタフェース
９０６    バス
９０７    記憶媒体
９０８    リーダライタ
９０９    入出力インタフェース
【図１】
2015121944.tif 000003
【図２】
2015121944.tif 000004
【図３】
2015121944.tif 000005
【図４】
2015121944.tif 000006
【図５】
2015121944.tif 000007
【図６】
2015121944.tif 000008
【図７】
2015121944.tif 000009
【図８】
2015121944.tif 000010
【図９】
2015121944.tif 000011