JP2014109825A - メモリアクセス装置 - Google Patents
メモリアクセス装置 Download PDFInfo
- Publication number
- JP2014109825A JP2014109825A JP2012262833A JP2012262833A JP2014109825A JP 2014109825 A JP2014109825 A JP 2014109825A JP 2012262833 A JP2012262833 A JP 2012262833A JP 2012262833 A JP2012262833 A JP 2012262833A JP 2014109825 A JP2014109825 A JP 2014109825A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- error
- data
- ecc
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】複数のメモリから構成されるシステムメモリを用いるメモリアクセス装置において故障のおそれのあるメモリを除いてアドレス割り当てを再構成する。
【解決手段】それぞれのメモリからの読み出しデータと読み出しデータのメモリごとに対応付けられた誤り訂正符号とから誤りがあるか否かを検出するECC検出部240と、訂正可能か否かの情報を出力するECC訂正部250と、ECC誤り検出部およびECC訂正部の結果から誤りが発生しているメモリを判定するメモリエラー判定部260と、処理装置からのアクセス要求のアドレスおよびデータに対して割り当てるメモリおよびメモリアドレスを管理し、メモリエラー判定部の結果に基づいて誤りが発生しているメモリを除外して割り当て変更するアドレス変換部210と、その割り当てに基づいて、読み出し要求があったときは、データを結合して出力するデータ並べ替え部220とを備える。
【選択図】図1
【解決手段】それぞれのメモリからの読み出しデータと読み出しデータのメモリごとに対応付けられた誤り訂正符号とから誤りがあるか否かを検出するECC検出部240と、訂正可能か否かの情報を出力するECC訂正部250と、ECC誤り検出部およびECC訂正部の結果から誤りが発生しているメモリを判定するメモリエラー判定部260と、処理装置からのアクセス要求のアドレスおよびデータに対して割り当てるメモリおよびメモリアドレスを管理し、メモリエラー判定部の結果に基づいて誤りが発生しているメモリを除外して割り当て変更するアドレス変換部210と、その割り当てに基づいて、読み出し要求があったときは、データを結合して出力するデータ並べ替え部220とを備える。
【選択図】図1
Description
この発明は、誤り訂正符号を用いたメモリアクセス装置に関する。
近年の電子機器においては、コンピュータプログラムや映像、グラフィックスなどの演算処理データ、または通信データなどのデータを処理するためにDRAM(Dynamic Random Access Memory)のような半導体メモリをシステムメモリとして搭載することが一般的である。また、システムメモリの容量は増加の一途をたどっており、通信機器や画像処理装置によっては、数ギガバイトから数テラバイトの容量が要求されるようになってきている。
システムメモリの容量が大きくなればなるほど、記憶されたデータにエラーが発生する可能性も高くなる。その結果、コンピュータプログラムが解読不能となったり、処理データが本来とるべき値とならなかったりするため、機器の正常運転を妨げることになる。この対策として、メモリチップにエラー訂正回路を内蔵して、データを書き込むときに書き込むデータの誤りを検出、訂正するための誤り検出訂正符号を生成し、データを読み出すときに読み出したデータとそのデータの誤り訂正符号とを照合することにより、1ビットの誤りを訂正でき、2ビットの誤りを検出する方法がある(例えば、特許文献1参照)。誤り検出訂正符号はECC(Error Checking and Correction)とよぶこともある。
特許文献1の方法であれば、一般的にビット幅が2のN乗ビット(Nは正の整数)に対してN+2の誤り訂正符号用の冗長ビットが必要になる。例えば、ビット幅が64ビットの場合であればNは6となるので冗長ビットとしてN+2=8ビットが必要になる。
また、システムメモリへの高速アクセスが必要な電子機器では、複数個の半導体メモリを並列に配置することで、ビット幅の大きいシステムメモリを構成するものがある。このような複数個にまたがる半導体メモリで構成されたシステムメモリの場合は、そのビット幅に対応した誤り検出訂正符号を生成して、誤り検出訂正符号格納用のメモリを別途用意してそこに誤り検出訂正符号用の冗長ビットを格納するというものもある。
上述のような複数個の半導体メモリを用いてビット幅の大きいシステムメモリを構成している場合、半導体メモリごとに1つのアドレスに対応するデータについて1ビットの誤り訂正が可能であり、また、一時的な1ビットのエラーについては、正常なデータを再度書き直すことより、正常にメモリを使用することが可能である。つまり、複数個の半導体メモリのうち、ある半導体メモリの読み出しデータが1ビット誤っていたとしても、他のビットが正常に読み出せればそのまま誤り訂正されたデータを出力することができるので機器装置が正常に動作させることができた。
しかしながら、1つの半導体メモリが故障している場合、1つのアドレスに2ビット以上誤ったものを読み出すおそれが高くなり、システムメモリ全体で正しい読み出しデータを出力することができなくなる。これにより、電子機器装置が正常に動作しなくなる。このような状況になった場合、電子機器装置の動作を一旦停止して半導体メモリの交換または装置の交換を行なう必要が発生するという問題があった。
この発明は、上述のような課題を解決するためになされたもので、複数個の半導体メモリを用いたシステムメモリについて、エラーが発生している半導体メモリを除いてシステムメモリを再構成することができるメモリアクセス装置を得るものである。
この発明に係るメモリアクセス装置においては、処理装置から同じメモリ単位のデータ幅を有する複数のメモリで構成されるシステムメモリへ書き込みデータの書き込み要求があったときに、前記書き込みデータに対して割り当てられた前記メモリごとの誤り訂正符号を生成するECC生成部と、前記誤り訂正符号を格納するECC格納部と、前記処理装置から前記システムメモリへデータ読み出し要求があったときに、前記読み出し要求された前記システムメモリ上のアドレスに割り当てられたそれぞれの前記メモリから読み出したデータおよびそれぞれの前記メモリから読み出したデータごとに対応付けられた前記誤り訂正符号から誤りを検出するECC検出部と、前記ECC検出部が誤りを検出しなかった場合は前記読み出しデータを出力データとし、誤りを検出した場合は前記読み出しデータおよび前記誤り訂正符号に基づいて復号データを生成したものを前記出力データとし、訂正可能であったか否かの情報とともに前記出力データを出力するECC訂正部と、前記ECC検出部およびECC訂正部の結果から誤りが発生しているメモリを判定するメモリエラー判定部と、前記処理装置から前記システムメモリへアクセス要求された前記システムメモリ上のアドレスおよびデータに対して割り当てる前記メモリおよび前記メモリのアドレスを管理するものであって、前記メモリエラー判定部の判定結果に基づいて誤りが発生していると判定されたメモリがある場合はそのメモリを除外して割り当てを変更するアドレス変換部と、前記処理装置からの前記システムメモリへの書き込み要求があったときは、前記アドレス変換部の割り当てに基づいて書き込み要求されたアドレスのデータをそれぞれの前記メモリ単位のデータ幅に分割して前記ECC生成部に出力し、前記処理装置からの前記システムメモリへの読み出し要求があったときは、前記アドレス変換部の割り当てに基づいて、前記ECC訂正部からのそれぞれの前記出力データを結合して前記処理装置へ出力するデータ並べ替え部とを備えたものである。
この発明は、複数のメモリから構成されるシステムメモリに接続されたメモリアクセス装置において、それぞれのメモリについて誤り訂正符号を用いた誤り検出の情報から誤りが発生しているメモリについてそのメモリを除外してアドレス割り当てを変更するので、故障のおそれのあるメモリを除いてシステムメモリを再構成することができる。
実施の形態1.
図1は、この発明を実施するための実施の形態1におけるメモリアクセス装置を備えたシステム構成を示すものである。図1において、100は処理装置、200はメモリアクセス装置、300はシステムメモリである。処理装置100とメモリアクセス装置200とはアドレスバス110とデータバス120とで接続される。アドレスバス110にはメモリアドレス情報を送るためのメモリアドレスバス111とアクセス要求の種類などを示すバス制御信号112とが含まれている。バス制御信号112には書き込み要求を示すライト信号、読み出し要求を示すリード信号、システムメモリへのアクセス要求であるかを示すチップセレクト信号などがある。また、データバス120は双方向バスであって、ここではメモリアクセス装置200にとって入力データバスとなるライトデータバス121と、メモリアクセス装置200にとって出力データバスとなるリードデータバス122とに分けて接続されているものとして説明する。
図1は、この発明を実施するための実施の形態1におけるメモリアクセス装置を備えたシステム構成を示すものである。図1において、100は処理装置、200はメモリアクセス装置、300はシステムメモリである。処理装置100とメモリアクセス装置200とはアドレスバス110とデータバス120とで接続される。アドレスバス110にはメモリアドレス情報を送るためのメモリアドレスバス111とアクセス要求の種類などを示すバス制御信号112とが含まれている。バス制御信号112には書き込み要求を示すライト信号、読み出し要求を示すリード信号、システムメモリへのアクセス要求であるかを示すチップセレクト信号などがある。また、データバス120は双方向バスであって、ここではメモリアクセス装置200にとって入力データバスとなるライトデータバス121と、メモリアクセス装置200にとって出力データバスとなるリードデータバス122とに分けて接続されているものとして説明する。
このシステムでは処理装置100は、複数の半導体メモリで構成されたシステムメモリ300にアクセスして書き込みまたは読み出しを行なう。処理装置100は、例えばシステムメモリ300から読み出したプログラムデータをもとに処理内容を決定して演算、制御等を行うものであったり、システムメモリ300にデータを一時的に書き込むことで保存し、保存したデータを再度読み出して処理を行なったりするものである。
メモリアクセス装置200は、処理装置100からのアクセス要求に応じてシステムメモリ300へ書き込みまたは読み出しを行ない対応する。これにより処理装置100は、あたかも大きなメモリ領域をもつ一つのメモリへアクセスしているように要求することが可能となる。例えば、システムメモリ300としてデータバスが32ビットの半導体メモリを4つを並列に配置して構成している場合、データバスが128ビットバスのメモリのつもりで処理装置100はアクセス要求することができる。
次にメモリアクセス装置200の内部の構成について説明する。本実施の形態にかかるメモリアクセス装置200は、アドレス変換部210、データ並び替え部220、ECC生成部230、ECC誤り検出部240、ECC訂正部250、メモリエラー判定部260を備える。
アドレス変換部210は、処理装置100からのシステムメモリ300へのアクセス要求のメモリアドレスおよびデータに対して割り当てるメモリおよびメモリのアドレス211を管理する。例えば、それぞれのデータ幅がLビットのメモリ0、メモリ1、メモリ2、およびメモリ3の4種類で4Lビットのシステムメモリを構成している場合、処理装置100からのシステムメモリ300へのアクセス要求のメモリアドレス0および4Lビット分のデータについて、メモリ0のアドレス0のLビット分にbit(0)からbit(L−1)までを割り当てる。同様にメモリ1のアドレス0のLビット分にbit(L)からbit(2L−1)までを割り当てる。メモリ2のアドレス0のLビット分にbit(2L)からbit(3L−1)までを割り当てる。メモリ3のアドレス0のLビット分にbit(3L)からbit(4L−1)までを割り当てる。
また、アドレス変換部210は、処理装置100からのシステムメモリ300へのアクセス要求のメモリアドレスおよびデータに対してバス制御信号112の要求に基づいて各メモリへのメモリ制御信号を生成してメモリ制御信号バス212を介して出力する。これは、例えば処理装置100から書き込み要求されているシステムメモリ300上のアドレスのデータが各メモリに一括して書き込めない場合は、該当のメモリに対して複数回書き込むためのメモリ制御信号を出力する。
上述の割り当ては、正常時、つまりメモリ0〜メモリ3全てのメモリが正常に動作している時に割り当てる場合であって、メモリ3を除外して構成する場合は、例えばメモリアドレス0および4Lビット分のデータについて、メモリ3のアドレス0のLビット分にbit(3L)からbit(4L−1)までを割り当てずに、メモリ0のアドレス1のLビット分にbit(3L)からbit(4L−1)までを割り当てるなどすれば、処理装置100からすればメモリ3を除外して構成されていることを気にすることなくメモリアドレス0の4Lビット分をアクセス要求できることになる。ここではメモリ0のアドレス1のLビット分にbit(3L)からbit(4L−1)までを割り当てるとしたが、元々使用頻度の少ないアドレスがある場合または確保している場合はそこに割り当てることにすれば元々の割り当てからの変更量が少なくて済むので望ましい。
データ並べ替え部220は、処理装置100から書き込み要求のあったデータをシステムメモリを構成する個々のメモリ単位に分割し、読み出し要求のあったデータを出力するためにシステムメモリを構成する個々のメモリ単位から読み出されたデータを結合して出力する。アドレス変換部210がアドレス割り当てを変更した場合は、それに対応して処理装置100からのアクセス要求にあうデータ分割または結合を行なう。
ECC生成部230は、データ並べ替え部220が処理装置100から書き込み要求のあったデータを分割したメモリ単位のデータごとに誤り訂正符号を生成する。ここで、メモリ単位のデータ幅を1ワードをよぶこともある。メモリ単位のデータごとに誤り訂正符号は、メモリ単位のデータのビット幅が(2のN乗=)32ビットであればNは5であれば誤り訂正符号は(N+2=)7ビット必要となる。生成されたそれぞれの誤り訂正符号は割り当てたメモリとアドレスとに対応付けて格納される。
また、ECC生成部230は、処理装置100から書き込み要求のあった場合に、各メモリデータバス213を介してアドレス変換部210の割り当てに基づいて、データ並べ替え部220で分割したメモリ単位のデータを各メモリへ出力する。これは、例えば処理装置100から書き込み要求されているシステムメモリ300上のアドレスのデータが各メモリに一括して書き込めない場合は、該当のメモリに対して複数回書き込むため出力されたメモリ制御信号に合わせてデータ列に変換して出力する。データ列への変換はデータ並べ替え部220が行なってもよい。
ECC誤り検出部240は、それぞれのメモリから読み出しがあったときに、各メモリデータバス213を介して読み出された読み出しデータと、その読み出しテータに対応付けて格納されているECC生成部230で生成した誤り訂正符号とからそれぞれのメモリから読み出した読み出しデータに誤りがあったかどうかを検出しその検出結果を出力する。
ECC訂正部250は、ECC誤り検出部240が誤りを検出しなかった場合は、その読み出しデータをそのまま出力し、誤りを検出した場合は、読み出しデータとその読み出しデータに対応付けられた誤り訂正符号とから誤り訂正復号して出力し、訂正可能であったことを示す情報をメモリエラー判定部260に出力する。ただし、誤りを検出された場合であっても訂正不可能な場合は、訂正可能でなかったことを示す情報をメモリエラー判定部260に出力する。
このとき、システムメモリを構成する個々のメモリがECC機能付きのメモリであれば、ECC生成部230、ECC誤り検出部240、およびECC訂正部250は、個々のメモリのECC機能を利用しても構わない。
メモリエラー判定部260は、ECC誤り検出部240の検出結果とECC訂正部250からの訂正可能であったか否かの情報とから誤りが発生しているメモリを判定する。このとき、どのメモリのどのビットに誤りが発生していたかが把握可能な信号としてメモリエラー判定結果を出力する。
上述のアドレス変換部210は、メモリエラー判定部260のメモリエラー判定結果から除外すべきメモリがあれば、処理装置100からのシステムメモリ300へのアクセス要求のメモリアドレスおよびデータに対して割り当てるメモリおよびメモリのアドレス211を変更し、その変更に伴い、データ並べ替え部220は対応することになる。
次に、本実施の形態にかかるメモリアクセス装置200の動作について説明する。まず、処理装置100からシステムメモリ300へ書き込み要求があったときの動作について説明する。
図2は、正常時、つまりメモリ0〜メモリ3全てのメモリが正常に動作している時のメモリのデータ割り当てを示す図である。縦列はそれぞれの個々のメモリのアドレスを示しており、横にそれぞれのメモリのデータ割り当てと、その誤り訂正符号について示している。ここでは、システムメモリのアドレス0のbit(0)からbit(L−1)までをD0、bit(L)からbit(2L−1)までをD1、bit(2L)からbit(3L−1)までをD2、bit(3L)からbit(4L−1)までをD3とする。これに続き、システムメモリのアドレス1のデータをD4〜D7で表し、システムメモリのアドレス2のデータをD8〜D11で表す。このとき、D0〜D11のそれぞれの誤り訂正符号をそれぞれE0〜E11として表している。
このように、初期段階では、アドレス変換部210は、システムメモリのアドレスに対応して個々のアドレスを対応付けて割り当てる。データ並べ替え部220は、割り当てに対応してデータをメモリ単位に分割してECC生成部230に出力する。
ECC生成部230はそれぞれのメモリ単位のデータに対してそれぞれ誤り訂正符号を生成する。生成された誤り訂正符号は、メモリ0〜メモリ3のデータ対応付けて誤り訂正符号の格納領域に書き込まれる。
次に、処理装置100からシステムメモリ300へ読み出し要求があったときの動作について説明する。アドレス変換部210にて処理装置100から読み出し要求があったシステムメモリアドレスに割り当てられたメモリの各アドレスに読み出し要求を行なって各データを読み出す。また、同様に対応付けて格納された誤り訂正符号についても読み出す。
ECC誤り検出部240は、各メモリから読み出されたデータに対して、読み出されたデータ対応付けられた誤り訂正符号を用いて誤りがあるか否かを検出する。
ECC訂正部250は、ECC誤り検出部240で誤りがあると検出しなかった場合は各メモリから読み出されたデータをそのまま出力し、誤りがあると検出した場合は各メモリから読み出されたデータと誤り訂正符号とから誤り訂正を行いその結果を出力する。また、誤りを検出した場合は、訂正可能であったか否かを示す情報を出力する。
データ並べ替え部220は、ECC訂正部250からの各メモリから読み出されたデータに対応した出力からデータを結合してリードデータ122として処理装置100へ出力する。処理装置はこのリードデータ122を取得する。
メモリエラー判定部260は、ECC誤り検出部240の検出結果とECC訂正部250からの訂正可能であったか否かの情報とから誤りが発生しているメモリを判定する。ECC誤り検出部240で誤りがあると検出していてもECC訂正部250から訂正可能であったことを示す情報が取得できていれば、このときの処理装置100からの読み出し要求があったシステムメモリアドレスのデータに関して正常に動作ができていると判断する。ECC誤り検出部240で誤りがあると検出していてECC訂正部250から訂正可能でなかったことを示す情報が取得されれば、どのメモリのどのビットに誤りが発生していたかが把握可能な信号をメモリエラー判定結果として出力する。
ここで、メモリエラー判定部260が出力するメモリエラー判定結果は、ECC誤り検出部240の検出結果とECC訂正部250からの訂正可能であったか否かの情報とが来るたびに出すのではなく、内部で所定の回数以上継続して誤りを発生しているかを判定した上で、所定の回数以上継続して誤りを発生していると判断された場合にメモリエラー判定結果を出力してもよい。このようにすることで、一時的に誤りを発生していると判断されていたが、その後に誤りを発生していると判断されていないメモリについて除外しないので、極力メモリを除外にせずにシステムメモリ容量を確保したい処理システムを構成する場合には、メモリが誤りを発生しているおそれが高くなるまで簡単に除外されずに割り当てができるという効果を奏する。
次に、ECC誤り検出部240で誤りがあると検出していてECC訂正部250から訂正可能でなかったことを示す情報が出力されたときのメモリアクセス装置200の動作について説明する。メモリエラー判定部260は、ECC誤り検出部240が誤りがあると検出していてECC訂正部250から訂正可能でなかったことを示す情報が取得されれば、どのメモリのどのビットに誤りが発生していたかが把握可能な信号をメモリエラー判定結果として出力する。アドレス変換部210は、メモリエラー判定部260からのメモリエラー判定結果に基づいて誤りが発生しているメモリを除外して割り当てを変更する。
図3は、アドレス変換部210が、メモリ3を除外して割り当てをしたときの示す図である。縦列はそれぞれの個々のメモリのアドレスを示しており、横にそれぞれのメモリのデータ割り当てと、その誤り訂正符号について示している。ここでは、システムメモリのアドレス0のbit(0)からbit(L−1)までをD0、bit(L)からbit(2L−1)までをD1、bit(2L)からbit(3L−1)までをD2、bit(3L)からbit(4L−1)までをD3とする。これに続き、システムメモリのアドレス1のデータをD4〜D7で表し、システムメモリのアドレス2のデータをD8〜D11で表す。このとき、D0〜D11のそれぞれの誤り訂正符号をそれぞれE0〜E11として表している。図2の正常時では、システムメモリのアドレス0のD0〜D3について、メモリ0〜メモリ3のアドレス0に割り当てていたが、メモリ3を除外する時は、D3についてメモリ3のアドレス0を使用せずにメモリ0のアドレス1に割り当てている。
データ並べ替え部220は、この割り当てに対応する。つまり、処理装置100からシステムメモリ300のアドレス0へ書き込み要求があった場合は、ライトデータを分割してD3に当たるデータはメモリ0のアドレス1に書き込み要求をするように出力する。逆に、処理装置100からシステムメモリ300のアドレス0のデータについて読み出し要求があった場合は、メモリ0〜メモリ2それぞれのアドレス0を読み出したデータと、メモリ0のアドレス1を読み出したデータについてECC誤り検出部240およびECC訂正部250によりそれぞれ誤り訂正を施したデータを結合してリードデータ122として処理装置100へ出力する。処理装置100はこのリードデータ122を取得する。
次に処理装置100からシステムメモリ300へシステムメモリのアドレス0から8ワード分のデータ、つまりシステムメモリのアドレス0およびアドレス1のデータを読み出し要求した場合の動作について説明する。図4は、図2にある正常時のメモリの割り当てとなっている場合のアクセスの一例を示す図である。ここではシステムメモリ300を構成するメモリをDRAMとする。処理装置100からリードアドレス0から8ワードを読み出す読み出し要求を解析してリードアドレスがアドレス0であり、ワード数が8であることが取得される。これに応じて、アドレス変換部210が割り当てたメモリとそのアドレスを読み出すためのコマンドおよびアドレスをシステムメモリ300に出力する。具体的にはACTコマンドと同時にROWアドレスを出力し、次にREADコマンドと同時にアドレス0を出力し、次にREADコマンドと同時にアドレス1を出力する。
システムメモリ300からは、上記の読み出し指示に対応して各メモリのアドレス0にあたるデータ(D0〜D3)を出力し、次に各メモリのアドレス1にあたるデータ(D4〜D7)を出力する。このとき、各メモリのアドレス0にあたるデータに対応付けて格納された誤り訂正符号(E0〜E3)をシステムメモリ300からのデータ(D0〜D3)と同時に出力されるように読み出され、各メモリのアドレス1にあたるデータに対応付けて格納された誤り訂正符号(E4〜E7)をシステムメモリ300からのデータ(D4〜D7)と同時に出力されるように読み出される。そしてこれらの読み出しデータ(D0〜D7)とそれぞれに対応付けられた誤り訂正符号(E0〜E7)とからECC誤り検出部240およびECC訂正部250によりそれぞれ誤り訂正を施したデータを結合してリードデータ122に出力される。
図5は、図3にあるメモリ3を除外して割り当てをしたときのアクセスの一例を示す図である。この場合、アドレス変換部210が割り当てたメモリとそのアドレスを読み出すためのコマンドおよびアドレスは、ACTコマンドと同時にROWアドレスを出力し、次にREADコマンドと同時にアドレス0を出力し、次にREADコマンドと同時にアドレス1を出力する。そしてさらにREADコマンドと同時にアドレス2を出力する。
システムメモリ300からは、上記の読み出し指示に対応して各メモリのアドレス0にあたるデータ(D0〜D2)を出力し、次に各メモリのアドレス1にあたるデータ(D3〜D5)を出力し、次に各メモリのアドレス2にあたるデータ(D6〜D8)を出力する。このとき、各メモリのアドレス0にあたるデータに対応付けて格納された誤り訂正符号(E0〜E2)をシステムメモリ300からのデータ(D0〜D2)と同時に出力されるように読み出され、各メモリのアドレス1にあたるデータに対応付けて格納された誤り訂正符号(E3〜E5)をシステムメモリ300からのデータ(D3〜D5)と同時に出力され、各メモリのアドレス2にあたるデータに対応付けて格納された誤り訂正符号(E6〜E8)をシステムメモリ300からのデータ(D6〜D8)と同時に出力されるように読み出される。そしてこれらの読み出しデータ(D0〜D8)のうち読み出しデータ(D0〜D7)とそれぞれに対応付けられた誤り訂正符号(E0〜E7)とからECC誤り検出部240およびECC訂正部250によりそれぞれ誤り訂正を施したデータを結合してリードデータ122に出力される。
このようにメモリエラー判定部260からのメモリエラー判定結果に基づいて誤りが発生しているメモリを今後使用しないように除外して割り当てを変更することで、故障のおそれにより誤りが発生しているメモリを除外した状態で処理装置100とのやり取りを継続することができる。これにより、システム全体の動作を一旦停止して故障のおそれのあるメモリの交換または装置の交換を行なう必要が発生しなくなるという効果を奏する。また、除外するメモリは1個に限るものではなく、2個以上を誤りが発生しているメモリと判定した場合においても同様の手順で除外したメモリ構成を再構築することが可能となる。
ここで、アドレス変換部210が割り当てを変更したとき、処理装置100からの指示されることなくメモリアクセス装置200内で割り当て変更前のシステムメモリ上のデータを一旦読み出して、割り当て変更後に割り当てられた各メモリのメモリ領域に書き換えることで、割り当て変更前に書き込まれたデータを割り当て変更後の処理装置100からの読み出し要求に対応して出力することが可能となる。割り当て変更前に不使用であったメモリ領域がある場合は、その不使用であったメモリ領域に新たに割り当てられたデータから移行していくことで割り当て変更前に書き込まれたデータを無駄にすることなくデータを移行することができる。例えば、システムメモリの有効メモリ領域のうち先頭アドレス側から使用している場合は、最後尾アドレスに移行するデータから順に移行していくことで実現できる。さらに、一旦読み出した時に対応付けられた誤り訂正符号を用いてECC誤り検出部240およびECC訂正部250により誤り訂正を施した上で割り当て変更後のアドレスに書き換えることで、割り当て変更時点での誤りを訂正することができる。
また、アドレス変換部210によって割り当てを除外されたメモリについて、所定のデータに対応した誤り訂正符号をECC生成部230により生成しておき、割り当てを除外されたメモリに所定のデータを書き込み、読み出してECC誤り検出部240およびECC訂正部250によって、ECC誤り検出部240で誤りがないと検出するか、またはECC誤り検出部240が誤りがあると検出していてECC訂正部250から訂正可能となったことを示す情報が取得されれば、割り当てを除外されたメモリが正常動作に戻っていると判断してメモリエラー判定部260からのメモリエラー判定結果を変更することで、アドレス変換部210で改めて除外したメモリを割り当てするメモリに復帰させるとしても良い。このようにすることで、一時的に誤りを発生していると判断されていたが、その後に誤りを発生していると判断されていないメモリについて除外しないので、極力メモリを除外にせずにシステムメモリ容量を確保したい処理システムを構成する場合には、メモリが誤りを発生しているおそれが高くなるまで簡単に除外されずに割り当てができるという効果を奏する。
実施の形態2.
実施の形態1では、アドレス変換部で誤りが発生しているメモリを除外して割り当てを変更していたが、実施の形態2では、処理装置100からシステムメモリ300への書き込み要求のデータについて監視を行い、その結果を用いて割り当てを行なう。
実施の形態1では、アドレス変換部で誤りが発生しているメモリを除外して割り当てを変更していたが、実施の形態2では、処理装置100からシステムメモリ300への書き込み要求のデータについて監視を行い、その結果を用いて割り当てを行なう。
図6は、この発明を実施するための実施の形態2におけるメモリアクセス装置を備えたシステム構成を示すものである。本実施の形態は、実施の形態1にかかるメモリアクセス装置に比べて不使用ビット判定部270をさらに備えるものである。
図6において、100は処理装置、200はメモリアクセス装置、300はシステムメモリである。処理装置100とメモリアクセス装置200とはアドレスバス110とデータバス120とで接続される。アドレスバス110にはメモリアドレス情報を送るためのメモリアドレスバス111とアクセス要求の種類などを示すバス制御信号112とが含まれている。バス制御信号112には書き込み要求を示すライト信号、読み出し要求を示すリード信号、システムメモリへのアクセス要求であるかを示すチップセレクト信号などがある。また、データバス120は双方向バスであって、ここではメモリアクセス装置200にとって入力データバスとなるライトデータバス121と、メモリアクセス装置200にとって出力データバスとなるリードデータバス122とに分けて接続されているものとして説明する。
次にメモリアクセス装置200の内部の構成について説明する。本実施の形態にかかるメモリアクセス装置200は、アドレス変換部210、データ並び替え部220、ECC生成部230、ECC誤り検出部240、ECC訂正部250、メモリエラー判定部260、不使用ビット判定部270を備える。ここで、実施の形態1と同じ符号のものに関しては構成及び作用が実施の形態1と同様であるため、説明を省略する。
不使用ビット判定部270は、処理装置100からシステムメモリ300への書き込み要求のデータについて監視を行なう。具体的にはシステムメモリ300のデータ幅(例えば4ワード)のうち、処理装置100が書き込み要求を行なう際に常に「0」を書き込んでいるワードがあるか否かを監視し、常に「0」を書き込んでいるワードの情報をそのシステムメモリアドレスと対応付けた監視結果として出力する。
アドレス変換部210は、メモリエラー判定部260からのメモリエラー判定結果から除外すべきメモリがある場合に、不使用ビット判定部270からの監視結果を参照して処理装置100からのシステムメモリ300へのアクセス要求のメモリアドレスおよびデータに対して割り当てるメモリおよびメモリのアドレス211を変更する。具体的には、不使用ビット判定部270からの監視結果である常に「0」を書き込んでいるワードについては、メモリエラー判定結果から除外すべきメモリとなったメモリに割り当てる。
データ並べ替え部220は、処理装置100から読み出し要求があった場合に、アドレス変換部210が除外すべきメモリとなったメモリに割り当てたデータ領域については、ECC訂正部の結果に関わらずそのワードを「0」として他のワードと結合してリードデータを生成して出力する。
これにより、システム全体で構成しているシステムメモリのデータ幅に対して、処理装置100が一部のみのデータ幅のみ使用しているアドレスがあった場合には、書き込み要求または読み出し要求をしておきながら全てのデータ幅を必要としない場合がある。このような状況がある場合において除外するメモリに処理装置100が必要としないデータの領域を割り当てることで使用できるメモリ領域を有効に使用することができ、メモリの除外によって削減されるメモリ量を抑えることができるという効果を奏する。
また、この場合、ECC生成部230、ECC誤り検出部240、ECC訂正部250、およびメモリエラー判定部260は、除外すべきメモリとなったメモリに割り当てたデータ領域については処理をしないこととしても構わない。このようにすることで処理の簡素化が可能となり処理システム全体の処理速度が向上するという効果を奏する。
100 処理装置
200 メモリアクセス装置
210 アドレス変換部
220 データ並べ替え部
230 ECC生成部
240 ECC誤り検出部
250 ECC訂正部
260 メモリエラー判定部
300システムメモリ
200 メモリアクセス装置
210 アドレス変換部
220 データ並べ替え部
230 ECC生成部
240 ECC誤り検出部
250 ECC訂正部
260 メモリエラー判定部
300システムメモリ
Claims (5)
- 処理装置から同じメモリ単位のデータ幅を有する複数のメモリで構成されるシステムメモリへ書き込みデータの書き込み要求があったときに、前記書き込みデータに対して割り当てられた前記メモリごとの誤り訂正符号を生成するECC生成部と、
前記誤り訂正符号を格納するECC格納部と、
前記処理装置から前記システムメモリへデータ読み出し要求があったときに、前記読み出し要求された前記システムメモリ上のアドレスに割り当てられたそれぞれの前記メモリから読み出したデータおよびそれぞれの前記メモリから読み出したデータごとに対応付けられた前記誤り訂正符号から誤りを検出するECC検出部と、
前記ECC検出部が誤りを検出しなかった場合は前記読み出しデータを出力データとし、誤りを検出した場合は前記読み出しデータおよび前記誤り訂正符号に基づいて復号データを生成したものを前記出力データとし、訂正可能であったか否かの情報とともに前記出力データを出力するECC訂正部と、
前記ECC検出部およびECC訂正部の結果から誤りが発生しているメモリを判定するメモリエラー判定部と、
前記処理装置から前記システムメモリへアクセス要求された前記システムメモリ上のアドレスおよびデータに対して割り当てる前記メモリおよび前記メモリのアドレスを管理するものであって、前記メモリエラー判定部の判定結果に基づいて誤りが発生していると判定されたメモリがある場合はそのメモリを除外して割り当てを変更するアドレス変換部と、
前記処理装置からの前記システムメモリへの書き込み要求があったときは、前記アドレス変換部の割り当てに基づいて書き込み要求されたアドレスのデータをそれぞれの前記メモリ単位のデータ幅に分割して前記ECC生成部に出力し、前記処理装置からの前記システムメモリへの読み出し要求があったときは、前記アドレス変換部の割り当てに基づいて、前記ECC訂正部からのそれぞれの前記出力データを結合して前記処理装置へ出力するデータ並べ替え部と
を備えたメモリアクセス装置。 - 前記メモリエラー判定部は、それぞれの前記メモリに対して、前記ECC検出部が誤りを検出し、前記ECC訂正部から出力された前記訂正可能であったか否かの情報が訂正可能でなかったことを示す場合に、前記メモリが誤りを発生しているか否かを一時判定し、前記一時判定の結果が所定の回数以上継続して誤りを発生しているときに、どのメモリのどのビットに誤りが発生していたかを示す信号をメモリエラー判定結果として出力することを特徴とする請求項1に記載のメモリアクセス装置。
- 前記アドレス変換部が割り当てを変更したとき、割り当て変更前の前記システムメモリ上のデータを一旦読み出し、読み出した前記データに対応付けられた誤り訂正符号を用いて前記ECC誤り検出部および前記ECC訂正部により誤り訂正をしたのち、割り当て変更後に割り当てられたそれぞれの前記メモリのメモリ領域に前記ECC訂正部からの前記出力データを書き込む
ことを特徴とする請求項1または請求項2に記載のメモリアクセス装置。 - 前記メモリエラー判定部は、前記アドレス変換部によって割り当てを除外された前記メモリへ所定のデータを書き込み、前記書き込み後に除外された前記メモリから前記所定のデータを読み出し、前記所定のデータに対応した誤り訂正符号と前記書き込み後に読み出した前記所定のデータとから前記ECC誤り検出部が誤りがないと検出するか、または前記ECC訂正部から出力された前記訂正可能であったか否かの情報が訂正可能であったことを示したときは、割り当てを除外されたメモリが正常動作に戻っていると判定することを特徴とする請求項1から請求項3のいずれか1項に記載のメモリアクセス装置。
- 前記処理装置から前記システムメモリへ同じシステムメモリ上のアドレスに対して書き込みデータの書き込み要求があったときに、前記書き込みデータのビットのうち所定の期間または所定の書き込み回数以上0の書き込みを要求しているビットについて、前記処理装置が使用していない不使用ビットと判定する不使用ビット判定部をさらに備え、
前記メモリエラー判定部は、前記ECC検出部の検出結果が前記不使用ビットと判定したビットによるものであれば、該当のメモリについて誤りが発生していないメモリであると判定することを特徴とする請求項1から請求項4のいずれか1項に記載のメモリアクセス装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012262833A JP2014109825A (ja) | 2012-11-30 | 2012-11-30 | メモリアクセス装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012262833A JP2014109825A (ja) | 2012-11-30 | 2012-11-30 | メモリアクセス装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014109825A true JP2014109825A (ja) | 2014-06-12 |
Family
ID=51030444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012262833A Pending JP2014109825A (ja) | 2012-11-30 | 2012-11-30 | メモリアクセス装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014109825A (ja) |
-
2012
- 2012-11-30 JP JP2012262833A patent/JP2014109825A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8707134B2 (en) | Data storage apparatus and apparatus and method for controlling nonvolatile memories | |
JP6175684B2 (ja) | Nandフラッシュメモリ上のデータの記憶のためのアーキテクチャ | |
TWI501251B (zh) | 區域錯誤檢測及全域錯誤校正技術 | |
US20070268905A1 (en) | Non-volatile memory error correction system and method | |
US8266475B2 (en) | Storage management device, storage management method, and storage system | |
US8402259B2 (en) | Accelerating wake-up time of a system | |
US20160117221A1 (en) | Error detection and correction utilizing locally stored parity information | |
KR20120052251A (ko) | 에러 정정 | |
WO2013080299A1 (ja) | データ管理装置、データコピー方法、およびプログラム | |
US9529547B2 (en) | Memory device and method for organizing a homogeneous memory | |
CN104809031A (zh) | 操作存储器的方法及存储器装置 | |
US8996935B2 (en) | Memory operation of paired memory devices | |
CN109119126B (zh) | 半导体器件和错误管理方法 | |
KR20240112955A (ko) | 스토리지 클래스 메모리, 데이터 프로세싱 방법, 및 프로세서 시스템 | |
JP2014109825A (ja) | メモリアクセス装置 | |
US8964495B2 (en) | Memory operation upon failure of one of two paired memory devices | |
US11030061B2 (en) | Single and double chip spare | |
JP6193112B2 (ja) | メモリアクセス制御装置、メモリアクセス制御システム、メモリアクセス制御方法、及び、メモリアクセス制御プログラム | |
JP5446931B2 (ja) | 誤り検出訂正装置及びメモリ装置 | |
US11360853B2 (en) | Access method | |
US12013752B2 (en) | Host-level error detection and fault correction | |
US20160117218A1 (en) | Monitoring data error status in a memory | |
JP2930239B2 (ja) | 記憶装置の障害検出方法及び記憶制御装置 | |
CN117795466A (zh) | 使用子命令的存取请求管理 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20140326 |