説明

メモリ書込み制御装置

【課題】メモリへのデータ書込み処理に要する時間の短縮により、システム全体の速度性能の改善をはかる。
【解決手段】エラー検知部31が、CPU1から出力されるライト置情報に基づき、リードデータの特定された個所のエラー訂正の要否を示す制御情報を生成すると同時に、ライトデータ生成部32が、ライト位置情報に基づきメモリ2から読み出されるリードデータにライト要求データをマージしてライトデータを生成する。そして、エラー訂正部33が、その制御情報に基づき、ライトデータ生成部32から出力されるライトデータに対してエラー訂正を行ない、検査ビット生成部34がエラー訂正部33から出力される前記ライトデータからエラー訂正用検査ビットを生成してメモリ2に書き込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、所定のデータ幅を単位にエラー訂正用検査ビット付きのライトデータが書き込まれるメモリに対し、CPU等のメモリ使用装置から所定のデータ幅に満たないライト要求データを書き込む、メモリ書込み制御装置に関する。
【背景技術】
【0002】
半導体技術の進歩によりメモリの高速大容量化が進み、並行して高信頼性が求められるサーバ等の記憶装置やデータ伝送路等のバスには、ECC(Error Check and Correct)対応のメモリが実装されるようになった。ECCとは、メモリからデータを読み出す際に、データの誤りを訂正するために本来のデータとは別に付加される冗長なデータのことをいい、例えば、拡張ハミング符号が用いられる。
【0003】
PC(Personal Computer)等の情報処理装置では、例えば、メモリ64ビットにつき8ビットの誤り訂正用データを対応させ、64ビットのうち1ビットが誤った値になったときに、これを検出して訂正(ビット反転)する。また、2ビット以上の誤りは訂正不可であるが、誤り検出は可能である。このように、データの誤りは検出するが訂正できないパリティと比較してより多くの冗長ビットを必要とする代わりに、データの誤りが発生してもシステムを継続して稼働させることが可能である。
【0004】
ところで、情報処理装置において、CPU・メモリと入出力装置間のデータ転送を効率的に行なう技術が、例えば、特許文献1に開示されている。また、特許文献2には、メモリのデータ幅に満たないデータをCPUや入出力装置等のメモリ使用装置から書き込む場合、バイト単位でマスクをかけ、データ幅中の一部データのみの書込みを行う技術が開示されている。しかしながら、この技術を適用するには、マスクに対応して書込み環制御するマスクライト機能を有する、例えば、DDR−SDRAM(Dual Inline Memory Module - Synchronous Dynamic Random Access Memory)等、高価なメモリが必要になるため、リード・モディファイ・ライト処理を行うのが通例である。このリード・モディファイ・ライト処理では、メモリからデータを読み出し、その一部を書き換えてメモリに書き戻すことで、結果としてメモリのデータ幅の一部書き換えを行う。しかしながら、このリード・モディファイ・ライト処理が実行されると、メモリへのアクセス回数が増加してメモリへの書込み速度の低下を招く。
【0005】
リード・モディファイ・ライト処理について、図3〜図5を用いて具体的に説明する。図3は従来のメモリ書込み制御装置300の構成を、図4、図5は、図3に示す信号線201,202,203,204,205,206のそれぞれを伝播するデータの一例を示す。
【0006】
図3によれば、メモリ書込み制御装置300は、メモリ200とメモリ使用装置としてのCPU100との間にあって、エラー検知部301と、エラー訂正部302と、ライトデータ生成部303と、検査ビット生成部304と、タイミング生成部305と、を含み構成される。ここでは、メモリ書込み制御装置300は、64ビットのデータ幅を単位にエラー訂正用検査ビット付きのライトデータが書き込まれるメモリ200に対し、CPU100からメモリ200のデータ幅に満たない32ビットのライト要求データを書き込む場合の動作を説明する。
【0007】
上記構成において、まず、CPU100は、ライト先のメモリアドレスAを生成して信号線205を介してメモリ200に出力する他、ライト要求データと、ライト位置指示信号とを生成して信号線204を介してライトデータ生成部303へ出力する。このことにより、メモリ200の該当アドレスから信号線201経由でリードデータが読み出され、エラー検知部301へ出力される。
【0008】
具体例として、図4(a)に示されるように、メモリ200から読み出されたメモリアドレスAのリードデータR,K,L,M,N(Rは拡張ハミング符号)は、データKの最上位ビットにエラーがあるものとする。これを受けて、エラー検知部301では、エラー訂正理論である拡張ハミング符号を使用してエラー訂正すべきビットを特定し、信号線202を介してエラー訂正部302へそのエラービット情報を出力する。図4(a)では、最上位ビットが“1”になっており、“1”が訂正要ビット、“0”が訂正不要ビットを示す。
【0009】
次に、エラー訂正部302では、エラー検知部301が検知したメモリ200のメモリアドレスAのデータのエラー箇所を訂正する。例えば、図4(b)に示されるように、エラー訂正部302に入力されるエラー検知部301から出力されるデータは最上位ビットが訂正要を示す“1”になっており、メモリ200からのリードデータは、データKの最上位ビットが“1”になっている。ここで、エラー訂正部302から出力されるデータは、データKの最上位ビットが“0”に訂正されたK‘、およびL,M,Nになっている。ここで訂正されたデータは、信号線203を介してライトデータ生成部303に出力される。
【0010】
続いて、ライトデータ生成部303は、エラー訂正部302から信号線203を介して出力されるエラー訂正済みのリードデータに、CPU100から信号線204を介して出力されるライト要求データを上書きする。例えば、図5に示されるように、ライトデータ生成部303は、CPU100から出力されるライト要求データVをエラー訂正部302から出力される訂正済みリードデータK‘,L,M,Nに上書きする。ここでは、エラー訂正済みのリードデータK‘がCPU100のライト要求データVに置換されている。ここで生成されたデータV.L,M,Nは、検査ビット生成部304へ出力される。
【0011】
検査ビット生成部304では、ライトデータ生成部303から信号線205を介して出力されるデータV.L,M,Nから拡張ハミング符号を利用して新規にエラー訂正用の検査ビットを生成し、信号線206を介してメモリ200にライトする。ここでは図5に示されるように、データV,L,M,Nから検査ビットR‘が生成され、メモリ200に書き込まれる。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】特開平8−278939号公報
【特許文献2】特開2005−182538号公報
【発明の概要】
【発明が解決しようとする課題】
【0013】
上記した従来のメモリ書込み制御装置300によれば、エラー検知部301、エラー訂正部302、ライトデータ生成部303、検査ビット生成部304による、「エラー検出」、「エラー訂正」、「ライトデータ生成」、「検査ビット付きライトデータ生成」のそれぞれの処理が1クロックで動作する範囲であり、メモリ200からデータをリードしてからメモリ200にライトする検査ビット付きライトデータの生成に至るまでに非常に長いパスが存在し、検査ビット付きライトデータをライトするまでのサイクルが長くなってその高速化が困難であった。
【0014】
本発明は上記した課題を解決するためになされたものであり、メモリへのデータ書込み処理に要する時間の短縮により、システム全体の速度性能の改善をはかったメモリ書込み制御装置を提供することを目的とする
【課題を解決するための手段】
【0015】
上記した課題を解決するために本発明は、所定のデータ幅を単位にエラー訂正用検査ビット付きのライトデータが書き込まれるメモリに対し、前記所定のデータ幅に満たないライト要求データを書き込むメモリ書込み制御装置であって、前記メモリから読み出されるリードデータからエラー訂正用検査情報に基づきエラー訂正が必要な個所を特定すると共に、前記メモリを使用するメモリ使用装置から出力されるライト位置情報に基づき前記リードデータの前記特定された個所のエラー訂正の要否を示す制御情報を生成するエラー検知部と、前記ライト位置情報に基づき、前記メモリから読み出されるリードデータに前記メモリ使用装置から出力される前記ライト要求データをマージして前記ライトデータを生成するライトデータ生成部と、前記エラー検知部から出力される前記制御情報に基づき、前記ライトデータ生成部から出力される前記ライトデータに対してエラー訂正を行うエラー訂正部と、前記エラー訂正部から出力される前記ライトデータからエラー訂正用検査ビットを生成して前記メモリに書き込む検査ビット生成部と、を有することを特徴とする。
【0016】
本発明によれば、エラー検知部が、メモリ使用装置から出力されるライト位置情報に基づき、リードデータの特定された個所のエラー訂正の要否を示す制御情報を生成すると同時に、ライトデータ生成部が、ライト位置情報に基づきメモリから読み出されるリードデータにライト要求データをマージしてライトデータを生成する。そして、エラー訂正部が、その制御情報に基づき、ライトデータ生成部から出力されるライトデータに対してエラー訂正を行ない、検査ビット生成部がエラー訂正部から出力される前記ライトデータからエラー訂正用検査ビットを生成してメモリに書き込む。したがって、メモリからデータをリードしてからメモリにライトするエラー訂正用検査ビット付きライトデータの生成に至るまでのサイクル長が短縮され、その結果、メモリへのデータ書込み処理の高速化を実現できる。このように、メモリへのデータ書込み処理に要する時間の短縮によりシステム全体の速度性能の改善がはかれる。
【0017】
本発明において、前記エラー検知部による前記リードデータのエラー訂正個所の特定および前記制御情報の生成と、前記ライトデータ生成部による前記ライトデータの生成とを、並列に実行させるタイミング制御部と、を有することを特徴とする。本発明によれば、リードデータのエラー訂正個所の特定および制御情報の生成と、ライト要求データをマージしたライトデータの生成とを並列に実行させることにより、エラー検出とライトデータの生成とを逐次行なっていた従来例に比較してメモリライトに要する時間が短縮され、システム全体としての速度性能の向上がはかれる。
【発明の効果】
【0018】
本発明のメモリ書込み制御装置によれば、メモリへのデータ書込み処理に要する時間の短縮により、システム全体の速度性能の改善がはかれる。
【図面の簡単な説明】
【0019】
【図1】本発明の実施の形態に係るメモリ書込み制御装置の構成を示すブロック図である。
【図2】本発明の実施の形態に係るメモリ書込み制御装置の動作を、信号線上を伝播するデータの一例によって示した図である。
【図3】従来のメモリ書込み制御装置の構成例を示す図である。
【図4】従来のメモリ書込み制御装置によるエラー訂正の動作を、信号線上を伝播するデータの一例によって示した図である。
【図5】従来のメモリ書込み制御装置によるライトデータ生成動作を、信号線上を伝播するデータの一例によって示した図である。
【発明を実施するための形態】
【0020】
以下、添付図面を参照して本発明を実施するための実施の形態(以下、単に本実施形態という)について詳細に説明する。
【0021】
(実施形態の構成)
図1は、本実施形態に係るメモリ書込み制御装置の構成を示すブロック図である。図1によれば、メモリ書込み制御装置3は、メモリ2とCPU1との間にあって、エラー検知部31と、ライトデータ生成部32と、エラー訂正部33と、検査ビット生成部34と、タイミング生成部35とを含み構成される。
【0022】
エラー検知部31は、CPU1から信号線20を介して出力されるアドレスにしたがい、信号線21を介してメモリ2から出力(読み出し)されるリードデータから、エラー訂正用検査情報に基づきエラー訂正が必要な個所を特定する。また、エラー検知部31は、CPU1から信号線22を介して出力されるライト位置情報に基づきリードデータの特定された個所のエラー訂正の要否を示す制御情報を生成し、信号線23を介してエラー訂正部33へ出力する。
【0023】
ライトデータ生成部32は、CPU1から信号線22を介して出力されるライト位置情報に基づき、メモリ2から読み出されるリードデータに、同じくCPU1から信号線22を介して出力されるライト要求データをマージしてライトデータを生成し、信号線23を介してエラー訂正部33へ出力する。
【0024】
エラー訂正部33は、信号線23を介してエラー検知部31から出力される制御情報に基づき、信号線24を介してライトデータ生成部32から出力されるライトデータに対してエラー訂正を行ない、信号線25を介して検査ビット生成部34に出力する。検査ビット生成部34は、信号線25を介してエラー訂正部33から出力されるライトデータからエラー訂正用検査ビットを生成して信号線26を介してメモリ2に書き込む。
【0025】
なお、タイミング生成部35は、CPU1から信号線27を介して出力されるタイミング制御信号に基づき、エラー検知部31によるエラー検出と、ライトデータ生成部32による補正前のライトデータの生成とを並列に実行させるためのシーケンス制御を行う。
【0026】
(実施形態の動作)
以下、図2に示す信号線上を伝播するデータ例を参照しながら、図1に示す本実施形態のメモリ書込み制御装置3の動作について詳細に説明する。
【0027】
まず、CPU1からメモリ2に対し、信号線20経由でメモリアドレスAに対するデータライト要求が出力されると、メモリ2からアドレスAに該当するデータが信号線21を介して読み出され、エラー検知部31、及びライトデータ生成部32の一方の入力端子に出力される。
【0028】
これを受けてエラー検知部31では、拡張ハミング符号を使用してエラー訂正すべきビットを特定する。また、エラー検知部31では、特定したエラー訂正を行うべきビットが他のビットに置換(反転)され、訂正する必要のないデータであるか否かを判別し、その判別結果を制御情報として信号線23経由でエラー訂正部33の一方の入力端子に出力する。このとき同時に、ライトデータ生成部32では、信号線21を介してメモリ2から読み出されたメモリアドレスAに該当するリードデータと、CPU1から信号線22を介して出力されるライト要求データとをマージしており、このマージした結果をエラー訂正部33の他方の入力端子に出力している。
【0029】
エラー訂正部33では、信号線23を介してエラー検知部31から出力される制御情報に基づき、信号線24を介してライトデータ生成部32から出力されるライトデータに対してエラー訂正を行ない、信号線25を介して検査ビット生成部34に出力する。検査ビット生成部34では、信号線25を介してエラー訂正部33から出力されるライトデータから拡張ハミング符号を用いてエラー訂正用検査ビットを生成して信号線26を介してメモリ2に書き込む。
【0030】
図2を参照しながら具体的な動作について説明する。図2によれば、メモリ2から出力されるリードデータは、最上位ビットがエラー訂正要を示す“1”が設定されている。また、CPU1により生成され出力されるライト位置情報は、下位8ビットが“1”を示している。ここでは、“1”がデータライトされたビット、“0”がデータライトされないビットを示す。
【0031】
ここで、エラー検知部31から信号線23を介して出力されるデータの最上位ビットが訂正要を示す制御情報“1”であり、ライトデータ生成部32から信号線24を介して出力されるライトデータK,L,M,Dのうち、データKの最上位ビットが“1”の場合に、エラー訂正部33から信号線25経由で出力されるデータは、データKの最上位ビットが“1”から“0”に訂正された、K‘、およびL,M,Dになっている。ここで訂正されたライトデータは、信号線25を介して検査ビット生成部34に出力され、検査ビット生成部34では、エラー訂正部33から出力されるライトデータから拡張ハミング符号を用いてエラー訂正用検査ビットを生成して信号線26を介してメモリ2に書き込む。これにより、メモリ2は、該当アドレスに検査ビット付ライトデータを保持することができる。
【0032】
(実施形態の効果)
以上説明のように、本実施形態によるメモリ書込み制御装置3によれば、エラー検知部31が、CPU1から出力されるライト位置情報に基づき、リードデータの特定された個所のエラー訂正の要否を示す制御情報を生成し、同時に、ライトデータ生成部32が、そのライト位置情報に基づきメモリ2から読み出されるリードデータにライト要求データをマージしてライトデータを生成する。そして、エラー訂正部33が、エラー検知部31から出力される制御情報に基づき、ライトデータ生成部32から出力されるライトデータに対してエラー訂正を行ない、検査ビット生成部34がエラー訂正部33から出力されるライトデータからエラー訂正用検査ビットを生成してメモリ2に書き込む。
【0033】
したがって、メモリ2からデータをリードしてからメモリ2にライトするエラー訂正用検査ビット付きライトデータの生成に至るまでのサイクル長が短縮され、その結果、メモリ2へのデータ書込み処理の高速化を実現できる。このように、メモリ2へのデータ書込み処理に要する時間の短縮によりシステム全体の速度性能の改善がはかれる。また、エラー検知部31によるリードデータのエラー訂正個所の特定および制御情報の生成と、ライトデータ生成部32によるライト要求データをマージしたライトデータの生成とを並列に実行させることにより、エラー検出とライトデータの生成とを逐次行なっていた従来例に比較してメモリライトに要する時間が短縮され、システム全体としての速度性能の向上がはかれる。
【0034】
なお、本実施形態では、メモリ使用装置としてCPU1のみ例示したが、メモリ使用装置が入出力装置であっても同様に動作する。また、本実施形態において使用されるエラー検出訂正符号は拡張ハミング符号としたが、他にターボ符号、リードマラー符号等があり、これらの種類に依存するものではくエラー検出訂正符号のいずれの種類にも適用できる。また、本実施形態の図2に示す検査ビットの格納位置、及び訂正箇所データ、ライト位置指定信号、補正データの書式はいずれも一例であり、それぞれにおいて必要なデータが示せればその書式は制限されないものとする。
【0035】
以上、本実施形態について説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されないことは言うまでもない。上記実施形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。またそのような変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【符号の説明】
【0036】
1・・CPU、2・・メモリ、3・・メモリ書込み制御装置、31・・エラー検知部、32・・ライトデータ生成部、33・エラー訂正部、34・・検査ビット生成部、35・・タイミング生成部

【特許請求の範囲】
【請求項1】
所定のデータ幅を単位にエラー訂正用検査ビット付きのライトデータが書き込まれるメモリに対し、前記所定のデータ幅に満たないライト要求データを書き込むメモリ書込み制御装置であって、
前記メモリから読み出されるリードデータからエラー訂正用検査情報に基づきエラー訂正が必要な個所を特定すると共に、前記メモリを使用するメモリ使用装置から出力されるライト位置情報に基づき前記リードデータの前記特定された個所のエラー訂正の要否を示す制御情報を生成するエラー検知部と、
前記ライト位置情報に基づき、前記メモリから読み出されるリードデータに前記メモリ使用装置から出力される前記ライト要求データをマージして前記ライトデータを生成するライトデータ生成部と、
前記エラー検知部から出力される前記制御情報に基づき、前記ライトデータ生成部から出力される前記ライトデータに対してエラー訂正を行うエラー訂正部と、
前記エラー訂正部から出力される前記ライトデータからエラー訂正用検査ビットを生成して前記メモリに書き込む検査ビット生成部と、
を有することを特徴とするメモリ書込み制御装置。
【請求項2】
前記エラー検知部による前記リードデータのエラー訂正個所の特定および前記制御情報の生成と、前記ライトデータ生成部による前記ライトデータの生成とを、並列に実行させるタイミング制御部と、
を有することを特徴とする請求項1記載のメモリ書込み制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2012−190134(P2012−190134A)
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願番号】特願2011−51513(P2011−51513)
【出願日】平成23年3月9日(2011.3.9)
【出願人】(000006507)横河電機株式会社 (4,443)
【Fターム(参考)】