(57)【要約】【課題】１枚の汎用のメモリモジュールのみで高度なエラー訂正を実現し、信頼性の高いメモリシステムを提供すること。【解決手段】ｎビット入出力の第１〜第８半導体メモリを有するメモリモジュールと、外部装置から受け取る４×ｎビットのデータに基づいて、３×ｎビットの誤り検出訂正符号を生成し、４×ｎビットのデータをｎビットずつ第１〜第４半導体メモリのそれぞれに格納し、３×ｎビットの誤り検出訂正符号をｎビットずつ第５〜第７半導体メモリのそれぞれに格納するメモリ制御部とを具備する。メモリ制御部は、第１〜第４半導体メモリに格納された４×ｎビットのデータを読み出すとき、第５〜第７半導体メモリに格納された３×ｎビットの誤り検出訂正符号に基づいて、第１〜第４半導体メモリのうちの１つの半導体メモリの誤り訂正、又は２つの半導体メモリの誤り検出を実行する。改行しないで書き始める。スペース入れない。クレーム１を書き下す。【選択図】図３
2012177964.tif 000002
【特許請求の範囲】
【請求項１】
ｎビット入出力の第１〜第８半導体メモリを有するメモリモジュールと、
外部装置から受け取る４×ｎビットのデータに基づいて、３×ｎビットの誤り検出訂正符号を生成し、前記４×ｎビットのデータをｎビットずつ前記第１〜第４半導体メモリのそれぞれに格納し、前記３×ｎビットの誤り検出訂正符号をｎビットずつ前記第５〜第７半導体メモリのそれぞれに格納するメモリ制御部と
を具備し、
前記メモリ制御部は、前記第１〜第４半導体メモリに格納された前記４×ｎビットのデータを読み出すとき、前記第５〜第７半導体メモリに格納された前記３×ｎビットの誤り検出訂正符号に基づいて、前記第１〜第４半導体メモリのうちの１つの半導体メモリの誤り訂正、又は２つの半導体メモリの誤り検出を実行する
メモリシステム。
【請求項２】
請求項１に記載のメモリシステムであって、
前記メモリ制御部は、１つの半導体メモリの誤り訂正を実行した場合、訂正したデータを前記第８半導体メモリに格納する
メモリシステム。
【請求項３】
請求項２に記載のメモリシステムであって、
前記メモリモジュールは、
ｎビット入出力の第９半導体メモリ
を更に有し、
前記メモリ制御部は、
前記外部装置から前記４×ｎビットのデータと共に１×ｎビットのディレクトリデータを受け取る場合、前記１×ｎビットのディレクトリデータを前記第９半導体メモリに格納する
メモリシステム。
【請求項４】
請求項１乃至３の何れか一項に記載のメモリシステムであって、
ｎは４又は８である
メモリシステム。
【請求項５】
外部装置から受け取る４×ｎビットのデータを、ｎビット入出力の第１〜第８半導体メモリを有するメモリモジュールに書き込むステップと、
前記外部装置の要求に基づいて、前記メモリモジュールから前記４×ｎビットのデータを読み出すステップと
を具備し、
前記書き込むステップは、
前記外部装置から前記４×ｎビットのデータを受け取るステップと、
前記４×ｎビットのデータに基づいて、３×ｎビットの誤り検出訂正符号を生成するステップと、
前記４×ｎビットのデータをｎビットずつ、前記第１〜第４半導体メモリのそれぞれに格納するステップと、
前記３×ｎビットの誤り検出訂正符号をｎビットずつ、前記第５〜第７半導体メモリのそれぞれに格納するステップと
を備え、
前記読み出すステップは、
前記外部装置の要求に基づいて、前記第１〜第４半導体メモリに格納された前記４×ｎビットのデータを読み出すステップと、
前記第５〜第７半導体メモリに格納された前記３×ｎビットの誤り検出訂正符号を読み出すステップと、
読み出された前記４×ｎビットのデータ及び前記３×ｎビットの誤り検出訂正符号に基づいて、前記第１〜第４半導体メモリのうちの１つの半導体メモリの誤り訂正、又は２つの半導体メモリの誤り検出を実行するステップと
を備える
メモリモジュール制御方法。
【請求項６】
請求項５に記載のメモリモジュール制御方法であって、
前記実行するステップは、
１つの半導体メモリの誤り訂正を実行した場合、訂正したデータを前記第８半導体メモリに格納するステップ
を備える
メモリモジュール制御方法。
【請求項７】
請求項６に記載のメモリモジュール制御方法であって、
前記書き込むステップは、
前記外部装置から前記４×ｎビットのデータと、１×ｎビットのディレクトリデータとを受け取るステップと、
前記１×ｎビットのディレクトリデータを、前記メモリモジュールが有するｎビット入出力の第９半導体メモリに格納するステップと
を更に備える
メモリモジュール制御方法。
【請求項８】
請求項５乃至７の何れか一項に記載のメモリモジュール制御方法であって、
ｎは４又は８である
メモリモジュール制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリシステム及びメモリモジュール制御方法に関する。
【背景技術】
【０００２】
サーバ等のミッションクリティカルシステムにおいては、ＤＩＭＭ（Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）のデータエラー対策の為に、ＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋ  ａｎｄ  Ｃｏｒｒｅｃｔｉｏｎ：誤り検出及び訂正）による保護を実施している。図１は、ＥＣＣ付の汎用のＤＩＭＭ１１０を具備するメモリシステム１００を示した図である。図１を参照すると、メモリシステム１００は、ＤＩＭＭ１１０と、メモリ制御部１２０と、汎用ＤＩＭＭインタフェース部１３０とを具備する。メモリシステム１００は、システムインタフェース部３００を介して外部装置２００と接続され、データの受け渡しを行う。
【０００３】
ＤＩＭＭ１１０は９つのＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１１を有し、各ＤＲＡＭ１１１は８ビット入出力である。このＤＩＭＭ１１０は、８つのＤＲＡＭ１１１から構成されるデータ８バイトの汎用ＤＩＭＭに対して、１つのＤＲＡＭ１１１をＥＣＣ１バイト用に追加したものであり、データ８バイトとＥＣＣ１バイトとから構成されている。メモリ制御部１２０は、検出部１２１と、ＤＩＭＭインタフェース部１２２とを備える。
【０００４】
メモリシステム１００の動作方法を説明する。まず、ＤＩＭＭ１１０へのデータ書き込み動作を説明する。外部装置２００は、８バイトのデータ及び書き込み要求を、システムインタフェース部３００を介してメモリシステム１００に提供する。検出部１２１は、８バイトのデータ及び書き込み要求を受け取ると、８バイトのデータに基づいて１バイトの誤り検出訂正符号を生成する。検出部１２１は、８バイトのデータと１バイトの誤り検出訂正符号とをＤＩＭＭインタフェース部１２２に提供する。ＤＩＭＭインタフェース部１２２は、検出部１２１から８バイトのデータ、１バイトの誤り検出訂正符号、及び書き込み要求を受け取ると、汎用ＤＩＭＭインタフェース部１３０を介して、８バイトのデータ及び１バイトの誤り検出訂正符号をメモリモジュール１１０に格納する。詳細には、ＤＩＭＭインタフェース部１２２は、８バイトのデータを１バイトずつ８つのＤＲＡＭ１１１に格納し、１バイトの誤り検出訂正符号を残り１つのＤＲＡＭ１１１に格納する。
【０００５】
次に、ＤＩＭＭ１１０からのデータ読み出し動作を説明する。外部装置２００はデータの読み出し要求を、システムインタフェース部３００を介してメモリシステム１００に提供する。検出部１２１は、データの読み出し要求をＤＩＭＭインタフェース部１２２に提供する。ＤＩＭＭインタフェース部１２２は、検出部１２１から読み出し要求を受け取ると、８つのＤＲＡＭ１１１から８バイトのデータを読み出し、１つのＤＲＡＭ１１１から１バイトの誤り検出訂正符号を読み出す。ＤＩＭＭインタフェース部１２２は、８バイトのデータと１バイトの誤り検出訂正符号とを検出部１２１に提供する。検出部１２１は、１バイトの誤り検出訂正符号に基づいて、１ビット訂正又は２ビットエラー検出を実行する。
【０００６】
エラー訂正及び検出に関連する技術が、特許文献１〜４に開示されている。特許文献１には、汎用のＤＩＭＭ製品を利用でき、チップ故障を含めてデータを訂正するメモリ装置が開示されている。このメモリ装置は、ＥＣＣとして任意のバイト数を指定する手段を有し、データと誤り訂正符号とがメモリ上で同一ワード上に存在することを特徴としている。
【０００７】
特許文献２には、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）のメモリデータ入出力制御方式が開示されている。このメモリデータ入出力制御方式は、書き込むデータをメモリ番地単位で半分のビットを真のデータとし、残り半分のビットは真のデータの論理値を反転させたパリティ情報とすることを特徴としている。
【０００８】
特許文献３には、ローエンドサーバシステムにおいて、コストのかかるカスタムＡＳＩＣチップや追加のメモリモジュール等を必要とせずに、チップキルによるエラー検出を実行可能なメモリシステムが開示されている。
【０００９】
特許文献４には、既存のＳＩＭＭ（Ｓｉｎｇｌｅ  Ｉｎ−ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）等のメモリを用いて、ＥＣＣ誤り訂正検出の可能な記憶回路モジュールが開示されている。この記憶回路モジュールは、データ記憶部と、ＥＣＣ記憶部と、誤り訂正符号を生成する訂正符号生成部と、ＥＣＣ記憶部の誤り訂正符号を利用して誤り訂正・検出を行う訂正・検出部とを備える。そして、ＥＣＣ記憶部が誤り訂正機能を有していない記憶素子から構成されることを特徴としている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００９−２４５２１８号公報
【特許文献２】特開平０２−１２２３４９号公報
【特許文献３】特開２００１−１４２７８９号公報
【特許文献４】特開平１０−１１１８３９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
ＥＣＣコード（誤り検出訂正符号）の１バイトによって実現可能であるのはＳＥＣＤＥＤ（１ビット訂正２ビット検出）までであるため、前述したメモリシステム１００はＳ８ＥＣＤ８ＥＤ（１バイト訂正２バイト検出）を実行することはできない。つまり、メモリシステム１００では、１つのＤＲＡＭ１１１の故障を訂正することができないことを意味している。Ｓ８ＥＣＤ８ＥＤに必要な誤り検出訂正符号は３バイトである。従って、メモリシステム１００がこれを実現しようとすると、３枚のＥＣＣ付の汎用のＤＩＭＭ１１０を同時に用いる必要がある。図２は、３枚のＥＣＣ付の汎用のＤＩＭＭ１１０を具備するメモリシステム１０１を示した図である。尚、図２のメモリシステム１０１の各部は図１のメモリシステム１００と同様であるため詳細な説明は省略する。図２のメモリシステム１０１は、ＥＣＣ無しの汎用ＤＩＭＭに比べて高価なＥＣＣ付の汎用のＤＩＭＭ１１０を３枚必要とすることや、汎用ＤＩＭＭインタフェース１３０が３倍必要となることによって高価となり、しかも設計も困難になるという問題がある。
【００１２】
本発明の目的は、１枚の汎用のメモリモジュールのみで高度なエラー訂正を実現し、信頼性の高いメモリシステムを提供することにある。
【課題を解決するための手段】
【００１３】
本発明のメモリシステムは、ｎビット入出力の第１〜第８半導体メモリを有するメモリモジュールと、外部装置から受け取る４×ｎビットのデータに基づいて、３×ｎビットの誤り検出訂正符号を生成し、４×ｎビットのデータをｎビットずつ第１〜第４半導体メモリのそれぞれに格納し、３×ｎビットの誤り検出訂正符号をｎビットずつ第５〜第７半導体メモリのそれぞれに格納するメモリ制御部とを具備する。メモリ制御部は、第１〜第４半導体メモリに格納された４×ｎビットのデータを読み出すとき、第５〜第７半導体メモリに格納された３×ｎビットの誤り検出訂正符号に基づいて、第１〜第４半導体メモリのうちの１つの半導体メモリの誤り訂正、又は２つの半導体メモリの誤り検出を実行する。
【００１４】
本発明のメモリモジュール制御方法は、外部装置から受け取る４×ｎビットのデータを、ｎビット入出力の第１〜第８半導体メモリを有するメモリモジュールに書き込むステップと、外部装置の要求に基づいて、メモリモジュールから４×ｎビットのデータを読み出すステップとを具備する。書き込むステップは、外部装置から４×ｎビットのデータを受け取るステップと、４×ｎビットのデータに基づいて、３×ｎビットの誤り検出訂正符号を生成するステップと、４×ｎビットのデータをｎビットずつ、第１〜第４半導体メモリのそれぞれに格納するステップと、３×ｎビットの誤り検出訂正符号をｎビットずつ、第５〜第７半導体メモリのそれぞれに格納するステップとを備える。読み出すステップは、外部装置の要求に基づいて、第１〜第４半導体メモリに格納された４×ｎビットのデータを読み出すステップと、第５〜第７半導体メモリに格納された３×ｎビットの誤り検出訂正符号を読み出すステップと、読み出された４×ｎビットのデータ及び３×ｎビットの誤り検出訂正符号に基づいて、第１〜第４半導体メモリのうちの１つの半導体メモリの誤り訂正、又は２つの半導体メモリの誤り検出を実行するステップとを備える。
【発明の効果】
【００１５】
本発明のメモリシステムは、１枚の汎用のメモリモジュールのみで高度なエラー訂正を実現し、高い信頼性を得ることができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、ＥＣＣ付の汎用のＤＩＭＭ１１０を具備するメモリシステム１００を示した図である。
【図２】図２は、３枚のＥＣＣ付の汎用のＤＩＭＭ１１０を具備するメモリシステム１０１を示した図である。
【図３】図３は、本発明の第１の実施の形態によるメモリシステム１を表す図である。
【図４】図４は、本発明の第１の実施の形態によるメモリシステム１のデータ書き込み動作を示したフローチャートである。
【図５】図５は、本発明の第１の実施の形態によるメモリシステム１のデータ読み出し動作を示したフローチャートである。
【図６】図６は、本発明の第２の実施の形態によるメモリシステム１ａを表す図である。
【図７】図７は、本発明の第３の実施の形態によるメモリシステム１ｂを表す図である。
【発明を実施するための形態】
【００１７】
以下、添付図面を参照して本発明の実施の形態によるメモリシステムを説明する。
【００１８】
（第１の実施の形態）
本発明の第１の実施の形態を説明する。図３は、本発明の第１の実施の形態によるメモリシステム１を表す図である。図３を参照すると、メモリシステム１は、メモリモジュール１０と、メモリ制御部２０と、インタフェース部３０とを具備する。メモリシステム１は、外部装置２とシステムインタフェース３を介して接続される。
【００１９】
メモリモジュール１０は、汎用のメモリモジュールであり、プリント基板上に搭載された、少なくとも８つの半導体メモリ１１を有する。メモリモジュール１０は、ＤＩＭＭ（Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）やＳＩＭＭ（Ｓｉｎｇｌｅ  Ｉｎ−ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）が例示される。本発明のメモリモジュール１０は汎用タイプであることが好ましいため、メモリモジュール１０は８つの半導体メモリ１１を有することが好適である。しかし、図１に示したＤＩＭＭ１１０を用いることも可能であり、メモリモジュール１０は９つの半導体メモリ１１を有するものであってもよい。
【００２０】
半導体メモリ１１は、データを記憶可能な半導体素子のチップであり、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）が例示される。図３を参照すると、半導体メモリ１１は８ビット入出力であるが、４ビット入出力であってもよい。本実施の形態では、半導体メモリ１１が８ビット入出力である場合を例に説明する。
【００２１】
メモリ制御部２０は、外部装置２から受け取る４×８ビット（４バイト）のデータをメモリモジュール１０に書き込むとき、４×８ビット（４バイト）のデータに基づいて３×８ビット（３バイト）の誤り検出訂正符号を生成する。尚、３バイトの誤り検出訂正符号は、Ｓ８ＥＣＤ８ＥＤ（１バイト訂正２バイト検出）を実現する符号である。メモリ制御部２０は、４バイトのデータを１バイトずつ、４つの半導体メモリ１１のそれぞれに格納し、３バイトの誤り検出訂正符号を１バイトずつ、他の３つの半導体メモリ１１のそれぞれに格納する。
また、メモリ制御部２０は、メモリモジュール１０の４つの半導体メモリ１１に格納された４バイトのデータを読み出すとき、３つの半導体メモリ１１に格納された３バイトの誤り検出訂正符号に基づいて、１バイトの誤り訂正、又は２バイトの誤り検出を実行する。言い換えると、メモリ制御部２０は、４つの半導体メモリ１１のうちの１つの半導体メモリ１１の誤り訂正、又は２つの半導体メモリ１１の誤り検出を実行する。
【００２２】
メモリ制御部２０の詳細を説明する。メモリ制御部２０は、検出部２１と、インタフェース部２２とを備える。検出部２１は、データの書き込み時、即ち、システムインタフェース部３を介して外部装置２から提供される４バイトのデータ及び書き込み要求を受け取ると、４バイトのデータに基づいて３バイトの誤り検出訂正符号を生成する。検出部２１は、４バイトのデータ、３バイトの誤り検出訂正符号、及び書き込み要求をインタフェース部２２に提供する。
【００２３】
また、検出部２１はデータの読み出し時、即ち、インタフェース部２２から４バイトのデータと３バイトの誤り検出訂正符号とを受け取ると、３バイトの誤り検出訂正符号に基づいて、４つの半導体メモリ１１のうちの１つの半導体メモリ１１の誤り訂正、又は２つの半導体メモリ１１の誤り検出を実行する。詳細には、検出部２１は３バイトの誤り検出訂正符号に基づいて、４つの半導体メモリ１１に誤りがあるか否かを判定する。誤りがないと判定した場合、検出部２１は読み出した４バイトのデータを、システムインタフェース３を介して外部装置２に提供する。一方、誤りがあると判定した場合、検出部２１は３バイトの誤り検出訂正符号に基づいて、４つの半導体メモリ１１のうちの１つの半導体メモリ１１の誤り訂正、又は２つの半導体メモリ１１の誤り検出を実行する。ここで、１つの半導体メモリ１１の誤り訂正を実行した場合、検出部２１は訂正した１バイトのデータを、誤りのデータを格納している半導体メモリ１１に提供するために、インタフェース部２２へ提供する。そして、検出部２１は訂正したデータとして、訂正した１バイトのデータを含む４バイトのデータを、システムインタフェース３を介して外部装置２に提供する。一方、２つの半導体メモリ１１の誤り検出を実行した場合、検出部２１は異常を外部装置２に知らせる。
【００２４】
インタフェース部２２は、データの書き込み時、即ち、検出部２１から４バイトのデータ、３バイトの誤り検出訂正符号、及び書き込み要求を受け取ると、インタフェース部３０を介して、それらをメモリモジュール１０に格納する。詳細には、インタフェース部２２は、４バイトのデータを１バイトずつ４つの半導体メモリ１１に格納し、３バイトの誤り検出訂正符号を１バイトずつ他の３つの半導体メモリ１１に格納する。
【００２５】
また、インタフェース部２２はデータの読み出し時、即ち、検出部２１から読み出し要求を受け取ると、４つの半導体メモリ１１から４バイトのデータを読み出し、３つの半導体メモリ１１から３バイトの誤り検出訂正符号を読み出す。インタフェース部２２は、４バイトのデータと３バイトの誤り検出訂正符号とを検出部２１に提供する。
【００２６】
第１の実施の形態によるメモリシステム１の動作を説明する。図４は、本発明の第１の実施の形態によるメモリシステム１のデータ書き込み動作を示したフローチャートである。図４を参照して、本発明の第１の実施の形態によるデータ書き込み動作を説明する。
【００２７】
［データ書き込み動作］
ステップＳ０１：
外部装置２は、４バイトのデータ及び書き込み要求を、システムインタフェース部３を介してメモリシステム１に提供する。
【００２８】
ステップＳ０２：
検出部２１は、４バイトのデータ及び書き込み要求を受け取ると、４バイトのデータに基づいて３バイトの誤り検出訂正符号を生成する。検出部２１は、４バイトのデータと、３バイトの誤り検出訂正符号と、書き込み要求とをインタフェース部２２に提供する。
【００２９】
ステップＳ０３：
インタフェース部２２は、検出部２１から４バイトのデータ、３バイトの誤り検出訂正符号、及び書き込み要求を受け取ると、インタフェース部３０を介して、それらをメモリモジュール１０に格納する。詳細には、インタフェース部２２は、４バイトのデータを１バイトずつ４つの半導体メモリ１１に格納し、３バイトの誤り検出訂正符号を１バイトずつ他の３つの半導体メモリ１１に格納する。
【００３０】
図５は、本発明の第１の実施の形態によるメモリシステム１のデータ読み出し動作を示したフローチャートである。図５を参照して、本発明の第１の実施の形態によるデータ読み出し動作を説明する。
【００３１】
［データ読み出し動作］
ステップＳ１０：
外部装置２はデータの読み出し要求を、システムインタフェース部３を介してメモリシステム１に提供する。
【００３２】
ステップＳ１１：
検出部２１は、データの読み出し要求をインタフェース部２２に提供する。インタフェース部２２は、検出部２１から読み出し要求を受け取ると、４つの半導体メモリ１１から４バイトのデータを読み出し、３つの半導体メモリ１１から３バイトの誤り検出訂正符号を読み出す。インタフェース部２２は、４バイトのデータと３バイトの誤り検出訂正符号とを検出部２１に提供する。
【００３３】
ステップＳ１２：
検出部２１は、インタフェース部２２から４バイトのデータと３バイトの誤り検出訂正符号とを受け取る。検出部２１は、３バイトの誤り検出訂正符号に基づいて、４つの半導体メモリ１１に誤りがあるか否かを判定する。
【００３４】
ステップＳ１３：
ステップＳ１２において誤りがないと判定した場合、検出部２１は読み出した４バイトのデータを、システムインタフェース３を介して外部装置２に提供する。
【００３５】
ステップＳ１４：
ステップＳ１２において誤りがあると判定した場合、検出部２１は３バイトの誤り検出訂正符号に基づいて、４つの半導体メモリ１１の誤り訂正、又は２つの半導体メモリ１１の誤り検出を実行する。
【００３６】
ステップＳ１５：
ステップＳ１４において、１つの半導体メモリ１１の誤り訂正を実行した場合、検出部２１は訂正した１バイトのデータを、誤りのデータを格納している半導体メモリ１１に提供するために、インタフェース部２２へ提供する。そして、検出部２１は、訂正したデータとして、訂正した１バイトのデータを含む４バイトのデータを、システムインタフェース３を介して外部装置２に提供する。
【００３７】
ステップＳ１６：
ステップＳ１４において、２つの半導体メモリ１１の誤り検出を実行した場合、検出部２１は異常を外部装置２に知らせる。
【００３８】
尚、検出部２１は、メモリモジュール１０の半導体メモリ１１が８ビット入出力の半導体メモリでなく４ビット入出力の半導体メモリである場合、誤り検出訂正符号をＳ８ＥＣＤ８ＥＤではなくＳ４ＥＣＤ４ＥＤ（４ビット訂正８ビット検出）を実現する符号とする。この場合、メモリ制御部２０は、１２ビットの誤り検出訂正符号に基づいて、４ビットの誤り訂正、又は８ビットの誤り検出を実行する。即ち、この場合でも、メモリシステム１は１枚のメモリモジュール１０が有する半導体メモリ１１のうちから、１つの半導体メモリ１１の誤り訂正、又は２つの半導体メモリ１１の誤り検出を実行することができる。
【００３９】
以上のように、本発明のメモリシステム１は、１枚のメモリモジュールのみで１つの半導体メモリ１１の誤り訂正、又は２つの半導体メモリ１１の誤り検出という高度なエラー訂正を実現し、高い信頼性を有することができる。その結果、本発明のメモリシステム１は、インタフェース部３０を増加することなく、単純で安価なシステムを実現できる効果を奏している。特に、メモリモジュール１０としてＥＣＣ無しの汎用のメモリモジュールを使用すると、より安価にメモリシステム１を実現することができる。
【００４０】
（第２の実施の形態）
本発明の第２の実施の形態を説明する。本発明の第２の実施の形態によるメモリシステムは、その基本的構成は第１の実施の形態と同様であり、残った１つの半導体メモリ１１に着目したものである。詳細には、第２の実施の形態のメモリシステムは、残った１つの半導体メモリ１１を他の半導体メモリ１１が故障した場合のスペアとして使用する。
【００４１】
図６は、本発明の第２の実施の形態によるメモリシステム１ａを表す図である。図６を参照すると、メモリシステム１ａは、メモリモジュール１０と、メモリ制御部２０ａと、インタフェース部３０とを具備する。メモリモジュール１０及びインタフェース部３０は、第１の実施の形態のメモリシステム１と同様であるため説明を省略する。
【００４２】
メモリ制御部２０ａは、１つの半導体メモリの誤り訂正を実行した場合、訂正したデータをメモリモジュール１０で使用されていない残りの半導体メモリ１１に格納する。メモリ制御部２０ａは、検出部２１と、インタフェース部２２ａとを備える。検出部２１は、第１の実施の形態と同様である。
【００４３】
インタフェース部２２ａのデータの書き込み動作は、第１の実施の形態のインタフェース部２２と同様であるため、データの読み出し動作について説明する。インタフェース部２２ａは、データの読み出し時、即ち、検出部２１から読み出し要求を受け取ると、４つの半導体メモリ１１から４バイトのデータを読み出し、３つの半導体メモリ１１から３バイトの誤り検出訂正符号を読み出す。インタフェース部２２は、４バイトのデータと３バイトの誤り検出訂正符号とを検出部２１に提供する。その後、検出部２１が１つの半導体メモリ１１の誤り訂正を実行した場合、インタフェース部２２ａは検出部２１から訂正した１バイトのデータを受け取り、故障した半導体メモリ１１の情報を保持する。そして、インタフェース部２２ａは、訂正された１バイトのデータをデータ及び誤り検出訂正符号が格納されていない残りの半導体メモリ１１に格納する。
【００４４】
本発明の第２の実施の形態によるメモリシステム１ａのデータ読み出し動作を説明する。ここでは、前述した図５を参照して、本発明の第２の実施の形態によるデータ読み出し動作を説明する。
【００４５】
［データ読み出し動作］
ステップＳ１０：
外部装置２はデータの読み出し要求を、システムインタフェース部３を介してメモリシステム１に提供する。
【００４６】
ステップＳ１１：
検出部２１は、データの読み出し要求をインタフェース部２２ａに提供する。インタフェース部２２ａは、検出部２１から読み出し要求を受け取ると、４つの半導体メモリ１１から４バイトのデータを読み出し、３つの半導体メモリ１１から３バイトの誤り検出訂正符号を読み出す。インタフェース部２２ａは、４バイトのデータと３バイトの誤り検出訂正符号とを検出部２１に提供する。
【００４７】
ステップＳ１２：
検出部２１は、インタフェース部２２ａから４バイトのデータと３バイトの誤り検出訂正符号とを受け取る。検出部２１は、３バイトの誤り検出訂正符号に基づいて、４つの半導体メモリ１１に誤りがあるか否かを判定する。
【００４８】
ステップＳ１３：
ステップＳ１２において誤りがないと判定した場合、検出部２１は読み出した４バイトのデータを、システムインタフェース３を介して外部装置２に提供する。
【００４９】
ステップＳ１４：
ステップＳ１２において誤りがあると判定した場合、検出部２１は３バイトの誤り検出訂正符号に基づいて、４つの半導体メモリ１１誤り訂正、又は２つの半導体メモリ１１の誤り検出を実行する。
【００５０】
ステップＳ１５：
ステップＳ１４において、１つの半導体メモリ１１の誤り訂正を実行した場合、検出部２１は訂正した１バイトのデータを、誤りのデータを格納している半導体メモリ１１に提供するために、インタフェース部２２ａへ提供する。そして、検出部２１は、訂正した１バイトのデータを含む４バイトのデータを、システムインタフェース３を介して外部装置２に提供する。ここで、インタフェース部２２ａは検出部２１から訂正した１バイトのデータを受け取り、故障した半導体メモリ１１の情報を保持する。そして、インタフェース部２２ａは、訂正された１バイトのデータをデータ及び誤り検出訂正符号が格納されていない残りの半導体メモリ１１に格納する。
【００５１】
ステップＳ１６：
ステップＳ１４において、２つの半導体メモリ１１の誤り検出を実行した場合、検出部２１は異常を外部装置２に知らせる。
【００５２】
以上のように、本発明の第２の実施の形態のメモリシステム１ａは、第１の実施の形態と同様の効果奏すると共に、残った半導体メモリ１１をスペアとして使用することによって、更に信頼性に優れたメモリシステムを実現することができる。尚、第２の実施の形態におけるメモリモジュール１０は、図１のＤＩＭＭ１１０と同様に、９つの半導体メモリ１１を有するものであってもよい。この場合、スペア用に用いる半導体メモリ１１を２つ（２バイト）とすることができるため、信頼性をより高めることができる。
【００５３】
（第３の実施の形態）
本発明の第３の実施の形態を説明する。本発明の第３の実施の形態によるメモリシステムは、その基本的構成は第１の実施の形態と同様であり、残った１つの半導体メモリ１１に着目したものである。第３の実施の形態のメモリシステムは、残った１つの半導体メモリ１１に外部装置２から受け取ったディレクトリ等の補助情報を格納する。
【００５４】
図７は、本発明の第３の実施の形態によるメモリシステム１ｂを表す図である。図７を参照すると、メモリシステム１ｂは、メモリモジュール１０と、メモリ制御部２０ｂと、インタフェース部３０とを具備する。メモリモジュール１０及びインタフェース部３０は、第１の実施の形態のメモリシステム１と同様であるため説明を省略する。
【００５５】
メモリ制御部２０ｂは、外部装置２から４×ｎビットのデータと共に１×ｎビットの補助情報を受け取る場合、１×ｎビットの補助情報をメモリモジュール１０で使用されていない残りの半導体メモリ１１に格納する。メモリ制御部２０ｂは、検出部２１ｂと、インタフェース部２２ｂとを備える。検出部２１ｂは、データの書き込み時、即ち、システムインタフェース部３を介して外部装置２から提供される４バイトのデータと、書き込み要求と、更に１バイトの補助情報とを受け取る。補助情報はディレクトリ等であり、例えば、外部装置２が複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を持つシステムであって、メモリモジュール１０を共有する場合に、どのＣＰＵがデータを持っているかを表す情報である。検出部２１ｂは、第１の実施の形態と同様に、４バイトのデータ及び書き込み要求を受け取ると、４バイトのデータに基づいて３バイトの誤り検出訂正符号を生成する。検出部２１ｂは、４バイトのデータ、３バイトの誤り検出訂正符号、１バイトの補助情報、及び書き込み要求をインタフェース部２２ｂに提供する。
【００５６】
また、検出部２１ｂはデータの読み出し時、即ち、インタフェース部２２ｂから４バイトのデータと、３バイトの誤り検出訂正符号と、１バイトの補助情報とを受け取ると、３バイトの誤り検出訂正符号に基づいて、４つの半導体メモリ１１のうちの１つの半導体メモリ１１の誤り訂正、又は２つの半導体メモリ１１の誤り検出を実行する。尚、誤りの訂正、又は誤りの検出については、第１の実施の形態の検出部２１と同様である。
【００５７】
インタフェース部２２ｂは、データの書き込み時、即ち、検出部２１ｂから４バイトのデータ、３バイトの誤り検出訂正符号、１バイトの補助情報及び書き込み要求を受け取ると、インタフェース部３０を介して、それらをメモリモジュール１０に格納する。詳細には、インタフェース部２２は、４バイトのデータを１バイトずつ４つの半導体メモリ１１に格納し、３バイトの誤り検出訂正符号を１バイトずつ他の３つの半導体メモリ１１に格納し、１バイトの補助情報を残りの半導体メモリ１１に格納する。
【００５８】
また、インタフェース部２２ｂはデータの読み出し時、即ち、検出部２１ｂから読み出し要求を受け取ると、４つの半導体メモリ１１から４バイトのデータを読み出し、３つの半導体メモリ１１から３バイトの誤り検出訂正符号を読み出し、残りの半導体メモリ１１から補助情報を読み出す。インタフェース部２２ｂは、４バイトのデータ、３バイトの誤り検出訂正符号及び１バイトの補助情報を検出部２１ｂに提供する。
【００５９】
本発明の第３の実施の形態によるメモリシステム１ｂのデータ書き込み動作を説明する。ここでは、前述した図４を参照して、本発明の第３の実施の形態によるデータ書き込み動作を説明する。
【００６０】
［データ書き込み動作］
ステップＳ０１：
外部装置２は、４バイトのデータと、書き込み要求と、１バイトの補助情報とを、システムインタフェース部３を介してメモリシステム１に提供する。
【００６１】
ステップＳ０２：
検出部２１ｂは、４バイトのデータ、１バイトの補助情報、及び書き込み要求を受け取ると、４バイトのデータに基づいて３バイトの誤り検出訂正符号を生成する。検出部２１ｂは、４バイトのデータ、３バイトの誤り検出訂正符号、１バイトの補助情報、及び書き込み要求をインタフェース部２２ｂに提供する。
【００６２】
ステップＳ０３：
インタフェース部２２ｂは、検出部２１ｂから４バイトのデータ、３バイトの誤り検出訂正符号、１バイトの補助情報、及び書き込み要求を受け取ると、インタフェース部３０を介して、それらをメモリモジュール１０に格納する。詳細には、インタフェース部２２ｂは、４バイトのデータを１バイトずつ４つの半導体メモリ１１に格納し、３バイトの誤り検出訂正符号を１バイトずつ他の３つの半導体メモリ１１に格納し、更に、１バイトの補助情報を残りの半導体メモリ１１に格納する。
【００６３】
以上のように、本発明の第３の実施の形態のメモリシステム１ｂは、第１の実施の形態と同様の効果奏すると共に、残った半導体メモリ１１に外部装置２から提供される補助情報を格納することができる。つまり、メモリシステム１ｂは、外部装置２が複数のＣＰＵを持つシステムであって、メモリモジュール１０を共有する場合に、どのＣＰＵがデータを持っているかをメモリモジュール１０に格納することができる。その結果、メモリシステム１ｂは、複数のメモリモジュール１０を使用しなくても、１枚のメモリモジュール１０だけで複数のＣＰＵを持つシステムに対応できる効果を奏する。尚、第３の実施の形態におけるメモリモジュール１０は、図１のＤＩＭＭ１１０と同様に、９つの半導体メモリ１１を有するものであってもよい。この場合、補助情報を２バイトとする構成にしても良いし、補助情報を１バイト、スペア用に１バイトとしてもよい。
【００６４】
以上説明した本発明の実施の形態は、矛盾無い範囲で組み合わせることができる。
【符号の説明】
【００６５】
１、１ａ、１ｂ  メモリシステム
２      外部装置
３      システムインタフェース部
１０    メモリモジュール
１１    半導体メモリ
２０    メモリ制御部
２１、２１ｂ  検出部
２２、２２ａ、２２ｂ  インタフェース部
３０    インタフェース部
１００、１０１  メモリシステム
１１０  ＤＩＭＭ
１１１  ＤＲＡＭ
１２０  メモリ制御部
１２１  検出部
１２２  ＤＩＭＭインタフェース部
１３０  汎用ＤＩＭＭインタフェース部
２００  外部装置
３００  システムインタフェース部
【図１】
2012177964.tif 000003
【図２】
2012177964.tif 000004
【図３】
2012177964.tif 000005
【図４】
2012177964.tif 000006
【図５】
2012177964.tif 000007
【図６】
2012177964.tif 000008
【図７】
2012177964.tif 000009