(57)【要約】【課題】メモリへのデータ書込み処理に要する時間の短縮により、システム全体の速度性能の改善をはかる。【解決手段】エラー検知部３１が、ＣＰＵ１から出力されるライト置情報に基づき、リードデータの特定された個所のエラー訂正の要否を示す制御情報を生成すると同時に、ライトデータ生成部３２が、ライト位置情報に基づきメモリ２から読み出されるリードデータにライト要求データをマージしてライトデータを生成する。そして、エラー訂正部３３が、その制御情報に基づき、ライトデータ生成部３２から出力されるライトデータに対してエラー訂正を行ない、検査ビット生成部３４がエラー訂正部３３から出力される前記ライトデータからエラー訂正用検査ビットを生成してメモリ２に書き込む。【選択図】図１
2012190134.tif 000002
【特許請求の範囲】
【請求項１】
所定のデータ幅を単位にエラー訂正用検査ビット付きのライトデータが書き込まれるメモリに対し、前記所定のデータ幅に満たないライト要求データを書き込むメモリ書込み制御装置であって、
前記メモリから読み出されるリードデータからエラー訂正用検査情報に基づきエラー訂正が必要な個所を特定すると共に、前記メモリを使用するメモリ使用装置から出力されるライト位置情報に基づき前記リードデータの前記特定された個所のエラー訂正の要否を示す制御情報を生成するエラー検知部と、
前記ライト位置情報に基づき、前記メモリから読み出されるリードデータに前記メモリ使用装置から出力される前記ライト要求データをマージして前記ライトデータを生成するライトデータ生成部と、
前記エラー検知部から出力される前記制御情報に基づき、前記ライトデータ生成部から出力される前記ライトデータに対してエラー訂正を行うエラー訂正部と、
前記エラー訂正部から出力される前記ライトデータからエラー訂正用検査ビットを生成して前記メモリに書き込む検査ビット生成部と、
を有することを特徴とするメモリ書込み制御装置。
【請求項２】
前記エラー検知部による前記リードデータのエラー訂正個所の特定および前記制御情報の生成と、前記ライトデータ生成部による前記ライトデータの生成とを、並列に実行させるタイミング制御部と、
を有することを特徴とする請求項１記載のメモリ書込み制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定のデータ幅を単位にエラー訂正用検査ビット付きのライトデータが書き込まれるメモリに対し、ＣＰＵ等のメモリ使用装置から所定のデータ幅に満たないライト要求データを書き込む、メモリ書込み制御装置に関する。
【背景技術】
【０００２】
半導体技術の進歩によりメモリの高速大容量化が進み、並行して高信頼性が求められるサーバ等の記憶装置やデータ伝送路等のバスには、ＥＣＣ（Error Check and Correct）対応のメモリが実装されるようになった。ＥＣＣとは、メモリからデータを読み出す際に、データの誤りを訂正するために本来のデータとは別に付加される冗長なデータのことをいい、例えば、拡張ハミング符号が用いられる。
【０００３】
ＰＣ（Personal Computer）等の情報処理装置では、例えば、メモリ６４ビットにつき８ビットの誤り訂正用データを対応させ、６４ビットのうち１ビットが誤った値になったときに、これを検出して訂正（ビット反転）する。また、２ビット以上の誤りは訂正不可であるが、誤り検出は可能である。このように、データの誤りは検出するが訂正できないパリティと比較してより多くの冗長ビットを必要とする代わりに、データの誤りが発生してもシステムを継続して稼働させることが可能である。
【０００４】
ところで、情報処理装置において、ＣＰＵ・メモリと入出力装置間のデータ転送を効率的に行なう技術が、例えば、特許文献１に開示されている。また、特許文献２には、メモリのデータ幅に満たないデータをＣＰＵや入出力装置等のメモリ使用装置から書き込む場合、バイト単位でマスクをかけ、データ幅中の一部データのみの書込みを行う技術が開示されている。しかしながら、この技術を適用するには、マスクに対応して書込み環制御するマスクライト機能を有する、例えば、ＤＤＲ−ＳＤＲＡＭ（Dual Inline Memory Module - Synchronous Dynamic Random Access Memory）等、高価なメモリが必要になるため、リード・モディファイ・ライト処理を行うのが通例である。このリード・モディファイ・ライト処理では、メモリからデータを読み出し、その一部を書き換えてメモリに書き戻すことで、結果としてメモリのデータ幅の一部書き換えを行う。しかしながら、このリード・モディファイ・ライト処理が実行されると、メモリへのアクセス回数が増加してメモリへの書込み速度の低下を招く。
【０００５】
リード・モディファイ・ライト処理について、図３〜図５を用いて具体的に説明する。図３は従来のメモリ書込み制御装置３００の構成を、図４、図５は、図３に示す信号線２０１，２０２，２０３，２０４，２０５，２０６のそれぞれを伝播するデータの一例を示す。
【０００６】
図３によれば、メモリ書込み制御装置３００は、メモリ２００とメモリ使用装置としてのＣＰＵ１００との間にあって、エラー検知部３０１と、エラー訂正部３０２と、ライトデータ生成部３０３と、検査ビット生成部３０４と、タイミング生成部３０５と、を含み構成される。ここでは、メモリ書込み制御装置３００は、６４ビットのデータ幅を単位にエラー訂正用検査ビット付きのライトデータが書き込まれるメモリ２００に対し、ＣＰＵ１００からメモリ２００のデータ幅に満たない３２ビットのライト要求データを書き込む場合の動作を説明する。
【０００７】
上記構成において、まず、ＣＰＵ１００は、ライト先のメモリアドレスＡを生成して信号線２０５を介してメモリ２００に出力する他、ライト要求データと、ライト位置指示信号とを生成して信号線２０４を介してライトデータ生成部３０３へ出力する。このことにより、メモリ２００の該当アドレスから信号線２０１経由でリードデータが読み出され、エラー検知部３０１へ出力される。
【０００８】
具体例として、図４（ａ）に示されるように、メモリ２００から読み出されたメモリアドレスＡのリードデータＲ，Ｋ，Ｌ，Ｍ，Ｎ（Ｒは拡張ハミング符号）は、データＫの最上位ビットにエラーがあるものとする。これを受けて、エラー検知部３０１では、エラー訂正理論である拡張ハミング符号を使用してエラー訂正すべきビットを特定し、信号線２０２を介してエラー訂正部３０２へそのエラービット情報を出力する。図４（ａ）では、最上位ビットが“１”になっており、“１”が訂正要ビット、“０”が訂正不要ビットを示す。
【０００９】
次に、エラー訂正部３０２では、エラー検知部３０１が検知したメモリ２００のメモリアドレスＡのデータのエラー箇所を訂正する。例えば、図４（ｂ）に示されるように、エラー訂正部３０２に入力されるエラー検知部３０１から出力されるデータは最上位ビットが訂正要を示す“１”になっており、メモリ２００からのリードデータは、データＫの最上位ビットが“１”になっている。ここで、エラー訂正部３０２から出力されるデータは、データＫの最上位ビットが“０”に訂正されたＫ‘、およびＬ，Ｍ，Ｎになっている。ここで訂正されたデータは、信号線２０３を介してライトデータ生成部３０３に出力される。
【００１０】
続いて、ライトデータ生成部３０３は、エラー訂正部３０２から信号線２０３を介して出力されるエラー訂正済みのリードデータに、ＣＰＵ１００から信号線２０４を介して出力されるライト要求データを上書きする。例えば、図５に示されるように、ライトデータ生成部３０３は、ＣＰＵ１００から出力されるライト要求データＶをエラー訂正部３０２から出力される訂正済みリードデータＫ‘，Ｌ，Ｍ，Ｎに上書きする。ここでは、エラー訂正済みのリードデータＫ‘がＣＰＵ１００のライト要求データＶに置換されている。ここで生成されたデータＶ．Ｌ，Ｍ，Ｎは、検査ビット生成部３０４へ出力される。
【００１１】
検査ビット生成部３０４では、ライトデータ生成部３０３から信号線２０５を介して出力されるデータＶ．Ｌ，Ｍ，Ｎから拡張ハミング符号を利用して新規にエラー訂正用の検査ビットを生成し、信号線２０６を介してメモリ２００にライトする。ここでは図５に示されるように、データＶ，Ｌ，Ｍ，Ｎから検査ビットＲ‘が生成され、メモリ２００に書き込まれる。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開平８−２７８９３９号公報
【特許文献２】特開２００５−１８２５３８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
上記した従来のメモリ書込み制御装置３００によれば、エラー検知部３０１、エラー訂正部３０２、ライトデータ生成部３０３、検査ビット生成部３０４による、「エラー検出」、「エラー訂正」、「ライトデータ生成」、「検査ビット付きライトデータ生成」のそれぞれの処理が１クロックで動作する範囲であり、メモリ２００からデータをリードしてからメモリ２００にライトする検査ビット付きライトデータの生成に至るまでに非常に長いパスが存在し、検査ビット付きライトデータをライトするまでのサイクルが長くなってその高速化が困難であった。
【００１４】
本発明は上記した課題を解決するためになされたものであり、メモリへのデータ書込み処理に要する時間の短縮により、システム全体の速度性能の改善をはかったメモリ書込み制御装置を提供することを目的とする
【課題を解決するための手段】
【００１５】
上記した課題を解決するために本発明は、所定のデータ幅を単位にエラー訂正用検査ビット付きのライトデータが書き込まれるメモリに対し、前記所定のデータ幅に満たないライト要求データを書き込むメモリ書込み制御装置であって、前記メモリから読み出されるリードデータからエラー訂正用検査情報に基づきエラー訂正が必要な個所を特定すると共に、前記メモリを使用するメモリ使用装置から出力されるライト位置情報に基づき前記リードデータの前記特定された個所のエラー訂正の要否を示す制御情報を生成するエラー検知部と、前記ライト位置情報に基づき、前記メモリから読み出されるリードデータに前記メモリ使用装置から出力される前記ライト要求データをマージして前記ライトデータを生成するライトデータ生成部と、前記エラー検知部から出力される前記制御情報に基づき、前記ライトデータ生成部から出力される前記ライトデータに対してエラー訂正を行うエラー訂正部と、前記エラー訂正部から出力される前記ライトデータからエラー訂正用検査ビットを生成して前記メモリに書き込む検査ビット生成部と、を有することを特徴とする。
【００１６】
本発明によれば、エラー検知部が、メモリ使用装置から出力されるライト位置情報に基づき、リードデータの特定された個所のエラー訂正の要否を示す制御情報を生成すると同時に、ライトデータ生成部が、ライト位置情報に基づきメモリから読み出されるリードデータにライト要求データをマージしてライトデータを生成する。そして、エラー訂正部が、その制御情報に基づき、ライトデータ生成部から出力されるライトデータに対してエラー訂正を行ない、検査ビット生成部がエラー訂正部から出力される前記ライトデータからエラー訂正用検査ビットを生成してメモリに書き込む。したがって、メモリからデータをリードしてからメモリにライトするエラー訂正用検査ビット付きライトデータの生成に至るまでのサイクル長が短縮され、その結果、メモリへのデータ書込み処理の高速化を実現できる。このように、メモリへのデータ書込み処理に要する時間の短縮によりシステム全体の速度性能の改善がはかれる。
【００１７】
本発明において、前記エラー検知部による前記リードデータのエラー訂正個所の特定および前記制御情報の生成と、前記ライトデータ生成部による前記ライトデータの生成とを、並列に実行させるタイミング制御部と、を有することを特徴とする。本発明によれば、リードデータのエラー訂正個所の特定および制御情報の生成と、ライト要求データをマージしたライトデータの生成とを並列に実行させることにより、エラー検出とライトデータの生成とを逐次行なっていた従来例に比較してメモリライトに要する時間が短縮され、システム全体としての速度性能の向上がはかれる。
【発明の効果】
【００１８】
本発明のメモリ書込み制御装置によれば、メモリへのデータ書込み処理に要する時間の短縮により、システム全体の速度性能の改善がはかれる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施の形態に係るメモリ書込み制御装置の構成を示すブロック図である。
【図２】本発明の実施の形態に係るメモリ書込み制御装置の動作を、信号線上を伝播するデータの一例によって示した図である。
【図３】従来のメモリ書込み制御装置の構成例を示す図である。
【図４】従来のメモリ書込み制御装置によるエラー訂正の動作を、信号線上を伝播するデータの一例によって示した図である。
【図５】従来のメモリ書込み制御装置によるライトデータ生成動作を、信号線上を伝播するデータの一例によって示した図である。
【発明を実施するための形態】
【００２０】
以下、添付図面を参照して本発明を実施するための実施の形態（以下、単に本実施形態という）について詳細に説明する。
【００２１】
（実施形態の構成）
図１は、本実施形態に係るメモリ書込み制御装置の構成を示すブロック図である。図１によれば、メモリ書込み制御装置３は、メモリ２とＣＰＵ１との間にあって、エラー検知部３１と、ライトデータ生成部３２と、エラー訂正部３３と、検査ビット生成部３４と、タイミング生成部３５とを含み構成される。
【００２２】
エラー検知部３１は、ＣＰＵ１から信号線２０を介して出力されるアドレスにしたがい、信号線２１を介してメモリ２から出力（読み出し）されるリードデータから、エラー訂正用検査情報に基づきエラー訂正が必要な個所を特定する。また、エラー検知部３１は、ＣＰＵ１から信号線２２を介して出力されるライト位置情報に基づきリードデータの特定された個所のエラー訂正の要否を示す制御情報を生成し、信号線２３を介してエラー訂正部３３へ出力する。
【００２３】
ライトデータ生成部３２は、ＣＰＵ１から信号線２２を介して出力されるライト位置情報に基づき、メモリ２から読み出されるリードデータに、同じくＣＰＵ１から信号線２２を介して出力されるライト要求データをマージしてライトデータを生成し、信号線２３を介してエラー訂正部３３へ出力する。
【００２４】
エラー訂正部３３は、信号線２３を介してエラー検知部３１から出力される制御情報に基づき、信号線２４を介してライトデータ生成部３２から出力されるライトデータに対してエラー訂正を行ない、信号線２５を介して検査ビット生成部３４に出力する。検査ビット生成部３４は、信号線２５を介してエラー訂正部３３から出力されるライトデータからエラー訂正用検査ビットを生成して信号線２６を介してメモリ２に書き込む。
【００２５】
なお、タイミング生成部３５は、ＣＰＵ１から信号線２７を介して出力されるタイミング制御信号に基づき、エラー検知部３１によるエラー検出と、ライトデータ生成部３２による補正前のライトデータの生成とを並列に実行させるためのシーケンス制御を行う。
【００２６】
（実施形態の動作）
以下、図２に示す信号線上を伝播するデータ例を参照しながら、図１に示す本実施形態のメモリ書込み制御装置３の動作について詳細に説明する。
【００２７】
まず、ＣＰＵ１からメモリ２に対し、信号線２０経由でメモリアドレスＡに対するデータライト要求が出力されると、メモリ２からアドレスＡに該当するデータが信号線２１を介して読み出され、エラー検知部３１、及びライトデータ生成部３２の一方の入力端子に出力される。
【００２８】
これを受けてエラー検知部３１では、拡張ハミング符号を使用してエラー訂正すべきビットを特定する。また、エラー検知部３１では、特定したエラー訂正を行うべきビットが他のビットに置換（反転）され、訂正する必要のないデータであるか否かを判別し、その判別結果を制御情報として信号線２３経由でエラー訂正部３３の一方の入力端子に出力する。このとき同時に、ライトデータ生成部３２では、信号線２１を介してメモリ２から読み出されたメモリアドレスＡに該当するリードデータと、ＣＰＵ１から信号線２２を介して出力されるライト要求データとをマージしており、このマージした結果をエラー訂正部３３の他方の入力端子に出力している。
【００２９】
エラー訂正部３３では、信号線２３を介してエラー検知部３１から出力される制御情報に基づき、信号線２４を介してライトデータ生成部３２から出力されるライトデータに対してエラー訂正を行ない、信号線２５を介して検査ビット生成部３４に出力する。検査ビット生成部３４では、信号線２５を介してエラー訂正部３３から出力されるライトデータから拡張ハミング符号を用いてエラー訂正用検査ビットを生成して信号線２６を介してメモリ２に書き込む。
【００３０】
図２を参照しながら具体的な動作について説明する。図２によれば、メモリ２から出力されるリードデータは、最上位ビットがエラー訂正要を示す“１”が設定されている。また、ＣＰＵ１により生成され出力されるライト位置情報は、下位８ビットが“１”を示している。ここでは、“１”がデータライトされたビット、“０”がデータライトされないビットを示す。
【００３１】
ここで、エラー検知部３１から信号線２３を介して出力されるデータの最上位ビットが訂正要を示す制御情報“１”であり、ライトデータ生成部３２から信号線２４を介して出力されるライトデータＫ，Ｌ，Ｍ，Ｄのうち、データＫの最上位ビットが“１”の場合に、エラー訂正部３３から信号線２５経由で出力されるデータは、データＫの最上位ビットが“１”から“０”に訂正された、Ｋ‘、およびＬ，Ｍ，Ｄになっている。ここで訂正されたライトデータは、信号線２５を介して検査ビット生成部３４に出力され、検査ビット生成部３４では、エラー訂正部３３から出力されるライトデータから拡張ハミング符号を用いてエラー訂正用検査ビットを生成して信号線２６を介してメモリ２に書き込む。これにより、メモリ２は、該当アドレスに検査ビット付ライトデータを保持することができる。
【００３２】
（実施形態の効果）
以上説明のように、本実施形態によるメモリ書込み制御装置３によれば、エラー検知部３１が、ＣＰＵ１から出力されるライト位置情報に基づき、リードデータの特定された個所のエラー訂正の要否を示す制御情報を生成し、同時に、ライトデータ生成部３２が、そのライト位置情報に基づきメモリ２から読み出されるリードデータにライト要求データをマージしてライトデータを生成する。そして、エラー訂正部３３が、エラー検知部３１から出力される制御情報に基づき、ライトデータ生成部３２から出力されるライトデータに対してエラー訂正を行ない、検査ビット生成部３４がエラー訂正部３３から出力されるライトデータからエラー訂正用検査ビットを生成してメモリ２に書き込む。
【００３３】
したがって、メモリ２からデータをリードしてからメモリ２にライトするエラー訂正用検査ビット付きライトデータの生成に至るまでのサイクル長が短縮され、その結果、メモリ２へのデータ書込み処理の高速化を実現できる。このように、メモリ２へのデータ書込み処理に要する時間の短縮によりシステム全体の速度性能の改善がはかれる。また、エラー検知部３１によるリードデータのエラー訂正個所の特定および制御情報の生成と、ライトデータ生成部３２によるライト要求データをマージしたライトデータの生成とを並列に実行させることにより、エラー検出とライトデータの生成とを逐次行なっていた従来例に比較してメモリライトに要する時間が短縮され、システム全体としての速度性能の向上がはかれる。
【００３４】
なお、本実施形態では、メモリ使用装置としてＣＰＵ１のみ例示したが、メモリ使用装置が入出力装置であっても同様に動作する。また、本実施形態において使用されるエラー検出訂正符号は拡張ハミング符号としたが、他にターボ符号、リードマラー符号等があり、これらの種類に依存するものではくエラー検出訂正符号のいずれの種類にも適用できる。また、本実施形態の図２に示す検査ビットの格納位置、及び訂正箇所データ、ライト位置指定信号、補正データの書式はいずれも一例であり、それぞれにおいて必要なデータが示せればその書式は制限されないものとする。
【００３５】
以上、本実施形態について説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されないことは言うまでもない。上記実施形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。またそのような変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【符号の説明】
【００３６】
１・・ＣＰＵ、２・・メモリ、３・・メモリ書込み制御装置、３１・・エラー検知部、３２・・ライトデータ生成部、３３・エラー訂正部、３４・・検査ビット生成部、３５・・タイミング生成部
【図１】
2012190134.tif 000003
【図２】
2012190134.tif 000004
【図３】
2012190134.tif 000005
【図４】
2012190134.tif 000006
【図５】
2012190134.tif 000007