(57)【要約】【課題】  適切なクランプを実現することができるＤＩＭＭ擬似故障発生方法およびＤＩＭＭ擬似故障発生装置を提供する。【解決手段】  ＤＩＭＭ擬似故障発生方法は、ＣＰＵがリードコマンドを出力した後にリードデータが読みだされるＤＩＭＭに対して擬似故障を発生させるＤＩＭＭ擬似故障発生方法であって、リードコマンドの間隔を判定し、所定間隔以内にリードコマンドが複数回出力された場合にはクランプを禁止する。【選択図】  図８
2014182499.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵがリードコマンドを出力した後にリードデータが読みだされるＤＩＭＭに対して擬似故障を発生させるＤＩＭＭ擬似故障発生方法であって、
リードコマンドの間隔を判定し、
所定間隔以内にリードコマンドが複数回出力された場合にはクランプを禁止する、ことを特徴とするＤＩＭＭ擬似故障発生方法。
【請求項２】
前記所定間隔は、１回のクランプの期間であることを特徴とする請求項１記載のＤＩＭＭ擬似故障発生方法。
【請求項３】
前記リードデータは、「１」を１つ含み、他は「０」であることを特徴とする請求項１または２記載のＤＩＭＭ擬似故障発生方法。
【請求項４】
ＣＰＵがリードコマンドを出力した後にリードデータが読みだされるＤＩＭＭに対して擬似故障を発生させるＤＩＭＭ擬似故障発生装置であって、
リードコマンドの間隔を判定するコマンド間隔判定部と、
所定間隔以内にリードコマンドが複数回出力された場合にはクランプを禁止するクランプ実行部と、を備えることを特徴とするＤＩＭＭ擬似故障発生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＩＭＭ擬似故障発生方法およびＤＩＭＭ擬似故障発生装置に関する。
【背景技術】
【０００２】
メモリに擬似故障を発生させる技術が開示されている（例えば、特許文献１〜４参照）。特許文献４では、メモリコントローラの誤り訂正機能の検証のために、メモリの出力信号をクランプすることによって、メモリの障害を再現する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１３８２１１号公報
【特許文献２】特開２０１０−２１１３４４号公報
【特許文献３】特開２００８−２１７８４８号公報
【特許文献４】特開２０１２−００８６２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
クランプの動作速度は、メモリとの通信速度に追随させる必要がある。しかしながら、近年の通信速度向上により、従来のクランプの動作速度がメモリとの通信速度に追随できなくなっている。特に、連続したリードコマンドに対して、最初のリードデータのみクランプさせたいにもかかわらず、クランプさせたくない次のリードデータまでクランプするおそれがある。
【０００５】
本発明は上記課題に鑑みなされたものであり、適切なクランプを実現することができるＤＩＭＭ擬似故障発生方法およびＤＩＭＭ擬似故障発生装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、明細書開示のＤＩＭＭ擬似故障発生方法は、ＣＰＵがリードコマンドを出力した後にリードデータが読みだされるＤＩＭＭに対して擬似故障を発生させるＤＩＭＭ擬似故障発生方法であって、リードコマンドの間隔を判定し、所定間隔以内にリードコマンドが複数回出力された場合にはクランプを禁止する。
【発明の効果】
【０００７】
明細書開示のＤＩＭＭ擬似故障発生装置およびＤＩＭＭ擬似故障発生方法によれば、適切なクランプを実現することができる。
【図面の簡単な説明】
【０００８】
【図１】クランプについて説明するための図である。
【図２】クランプについて説明するための図である。
【図３】実施例１に係るＤＩＭＭ擬似故障発生装置のブロック図である。
【図４】リードコマンドおよびリードデータの例を表す図である。
【図５】リードコマンドおよびリードデータの例を表す図である。
【図６】リードコマンドおよびリードデータの例を表す図である。
【図７】リードコマンドおよびリードデータの例を表す図である。
【図８】ＤＩＭＭ擬似故障発生装置の動作を表すフローチャートの一例である。
【発明を実施するための形態】
【０００９】
実施例の説明に先立って、クランプについて説明する。多くの情報処理装置では、１つ以上のＣＰＵ（Central Processing Unit）に接続されるＤＩＭＭ(Dual Inline Memory Module)が搭載されている。ＤＩＭＭには、メモリ容量、動作速度、実装形状、動作方式、データ長の違い等により、さまざまな種類がある。ＤＩＭＭのメモリ容量は、搭載するメモリ素子の容量、数量等によって決まる。ＤＩＭＭの動作速度は、搭載するメモリ素子の動作可能速度、ＣＰＵやＤＩＭＭを搭載するマザーボードが供給するクロック周波数等によって決まる。ＤＩＭＭの実装形状は、マザーボードに実装するコネクタの種類によって決まる。ＤＩＭＭの動作方式は、メモリ素子の動作規格であるＤＤＲ２，ＤＤＲ３，ＳＤＲＡＭに基づいて決まる。ＤＩＭＭのデータ長は、ＥＣＣ(Error Check and Correction)付きは７２ビット、ＥＣＣなしは６４ビットである。
【００１０】
高信頼性を求めるマザーボードに搭載するＤＩＭＭはＥＣＣ付きであり、読み出しデータ６４ビットに加えて８ビットのＥＣＣを付加し、読み出し７２ビット中の１ビットの誤りと位置を検出し、２ビット以上の誤りを検出する機能を持つ。また、近年では、１ビット誤りの連続発生が２ビット誤りの可能性を高めるため、単位時間当たりに発生する１ビット誤りの回数が閾値を越えた場合には、該当のＤＩＭＭを切り離し、メモリ容量を減少させて安定動作を継続する機能を持たせている。この機能は、ＤＩＭＭを接続するＣＰＵまたはＤＩＭＭを制御する専用回路ＭＡＣ(Memory Access Controller)やＢＩＯＳ(Basic Input Output System)で行われており、製品開発において、ＥＣＣ機能が正しく動作することをテストしている。
【００１１】
ＥＣＣ機能は、ＤＩＭＭから読み出されるリードデータをクランプによって１から０に反転させることで動作テストを行っている。図１は、クランプについて説明するための図である。図１を参照して、ＤＩＭＭから「１０００」がエラー試験用のリードデータとして読み出されている。このリードデータを含む期間（図１では２ｎｓ）をクランプすることによって、１ビットデータが出力される時間以上にクランプが行われても、最初の１ビットデータのみを縮退させることができる。
【００１２】
ＤＩＭＭの動作速度は、実装されるメモリ素子が動作できる速度のクロックをマザーボードから供給することによって決まる。近年、メモリ素子の動作速度は高速化されており、当該高速化の傾向は継続している。メモリ素子の高速化によってクロック周波数が高速になると、クランプ期間が固定されていれば、図２のように、リードデータに対して相対的にクランプ期間が延長されることになる。クランプ期間は、クランプを行う半導体素子の動作速度によって決まり、図２では、一例として２ｎｓである。
【００１３】
図２において、エラー試験用のリードデータ１の（１）〜（４）は、あらかじめ準備されており、一例として「１０００」である。なお、エラー試験用のリードデータは、いずれか１つが「１」であって、他が「０」であればよい。リードデータ１の次に読み出されるリードデータ２は、あらかじめ準備されたものではなく、（５）〜（８）は、ＤＩＭＭにアクセスするＣＰＵが示すアドレス位置のデータである。図２の例では、リードデータ１の（１）からクランプした場合に、リードデータ２の（５）および（６）までクランプ期間が継続することになる。この場合、（５）および（６）に「１」が含まれていれば、クランプによって当該「１」が反転によって誤りデータとなる。この結果、誤りデータは１回発生するべきところ、２回以上発生することになる。すなわち、連続したリードコマンドに対して、最初のリードデータのみクランプさせたいにもかかわらず、クランプさせたくない次のリードデータまでクランプされることになる。
【００１４】
以下の実施例では、適切なクランプを実現することができるＤＩＭＭ擬似故障発生装置およびＤＩＭＭ擬似故障発生方法について説明する。
【００１５】
図３は、実施例１に係るＤＩＭＭ擬似故障発生装置１００のブロック図である。図３を参照して、ＣＰＵ−ＤＩＭＭインタフェース２００は、マザーボードに実装されるＤＩＭＭコネクタである。ＤＩＭＭ擬似故障発生装置１００は、論理回路などによって構成され、ＣＰＵ−ＤＩＭＭインタフェース２００に実装される。ＤＩＭＭ擬似故障発生装置１００は、ＤＩＭＭコネクタ１０を備える。ＤＩＭＭ３００は、ＤＩＭＭコネクタ１０に実装される。
【００１６】
また、ＤＩＭＭ擬似故障発生装置１００は、アドレス判定部２０、コマンド判定部３０、コマンド間隔判定部４０、テスト制御部５０、クランプ実行部６０、およびＢＵＳスイッチ７０を備える。アドレス判定部２０は、ＣＰＵからのリードコマンドが所望アドレスであるかを判定する。コマンド判定部３０は、ＣＳ信号（ＣＳ＃）とＲＡＳ信号（ＲＡＳ＃）とＣＡＳ信号（ＣＡＳ＃）とＷＥ信号（ＷＥ＃）との組み合わせが一例として「０１０１」である場合に、リードコマンドが出力されたと判定する。
【００１７】
コマンド間隔判定部４０は、リードコマンドが出力されたとコマンド判定部３０が判定した後に、所定間隔（本実施例では一例として４クロック）をクロック信号（＃ＣＬＫ）の数で計測し、その間に複数のリードコマンドが出力されていないことを判定する。テスト制御部５０は、ＣＰＵからのリードコマンドが所望アドレスであるとアドレス判定部２０が判定したことと、コマンド間隔判定部４０が上記所定間隔内にリードコマンドが複数出力されていないことを確認する。テスト制御部５０で当該確認がなされると、クランプ実行部６０は、テスト制御部５０の指示に従って、リードコマンドが出力されてから所定時間経過後に、クランプ期間だけＢＵＳスイッチ７０をオンする。ＢＵＳスイッチ７０がオンすると、リードデータの一部（一例として４ビット）が接地されることによってクランプが実施される。また、テスト制御部５０は、エラー試験に関する情報をパネル部４００に表示させる。
【００１８】
続いて、ＤＩＭＭ擬似故障発生装置１００の動作の詳細について説明する。なお、一例として、クロック間隔を０．６２５ｎｓとし、クランプ期間を２ｎｓとし、リードコマンドの時間幅を０．３１ｎｓとし、リードコマンドが出力されてからリードデータが出力されるまでの所定時間が５τで固定されているとする。
【００１９】
ＣＰＵがＤＩＭＭに対してデータの読み出しを行う場合（リードコマンドが出力される場合）、信号の組み合わせで表される（ＣＳ＃，ＲＡＳ＃，ＣＡＳ＃，ＷＥ＃）が「０１０１」になる。図４の例では、リードコマンドaが出力されてから５τ後にリードデータａ１〜ａ４が出力されている。また、リードコマンドaが出力されてから３τ後にリードコマンドｂが出力され、リードコマンドｂが出力されてから５τ後にリードデータｂ１〜ｂ４が出力されている。図４の例では、リードコマンドａが、データ誤りを所望するアドレスを有している。
【００２０】
この場合、リードコマンドａにて（ａ１，ａ２，ａ３，ａ４）＝「１０００」の読み出しにクランプを行うことによって（ａ１，ａ２，ａ３，ａ４）＝「００００」となってデータ誤りが発生する。図４の例では、リードコマンドａとリードコマンドｂとの間隔がクランプ期間よりも小さいため、図５のように、リードデータｂ１〜ｂ４にもデータ誤りが発生しうる。しかしながら、本実施例においては、コマンド間隔判定部４０がクランプ期間内に複数回リードコマンドが出力されたと判定した場合には、図６のように、クランプ実行部６０はクランプを実行しない。それにより、リードデータｂ１〜ｂ４にデータ誤りが発生することが防止される。
【００２１】
図７の例では、リードコマンドａとリードコマンドｂとの間隔がクランプ期間よりも大きいため、クランプ期間内にリードデータｂ１〜ｂ４が出力されない。この場合には、コマンド間隔判定部４０がクランプ期間内に１回だけリードコマンドが出力されたと判定するため、クランプ実行部６０はクランプを実行する。このように、リードコマンドａがＣＰＵから出力されてからクランプ期間以内にリードコマンドｂが出力された場合にはクランプは禁止され、リードコマンドａがＣＰＵから出力されてからクランプ期間以上の後にリードコマンドｂが出力された場合にはクランプが行われる。このように、本実施例によれば、適切なクランプを実現することができる。その結果、ＤＩＭＭの動作速度が高速化しても、確実にデータ誤りを指定回数発生させることが可能である。また、マザーボードのデータ誤り検出・修正機能、誤り回数係数機能などの確認を容易に行うことができるようになる。
【００２２】
図８は、ＤＩＭＭ擬似故障発生装置１００の動作を表すフローチャートの一例である。図８を参照して、コマンド判定部３０は、ＣＳ＃が「０」であるか否かを判定する（ステップＳ１）。ステップＳ１で「Ｙｅｓ」と判定された場合、コマンド判定部３０は、ＲＡＳ＃が「１」であるか否かを判定する（ステップＳ２）。ステップＳ２で「Ｙｅｓ」と判定された場合、コマンド判定部３０は、ＣＡＳ＃が「０」であるか否かを判定する（ステップＳ３）。ステップＳ３で「Ｙｅｓ」と判定された場合、コマンド判定部３０は、ＷＥ＃が「１」であるか否かを判定する（ステップＳ４）。ステップＳ１〜Ｓ４の実行によって、リードコマンドが出力されたか否かを判定することができる。なお、ステップＳ１〜ステップＳ４で「Ｎｏ」と判定された場合、ステップＳ１が再度実行される。
【００２３】
ステップＳ４で「Ｙｅｓ」と判定された場合、アドレス判定部２０は、リードコマンドのアドレスＡＤＲがデータ誤りを所望するアドレスであるか否かを判定する（ステップＳ５）。ステップＳ５で「Ｎｏ」と判定された場合、ステップＳ１が再度実行される。ステップＳ５で「Ｙｅｓ」と判定された場合、コマンド間隔判定部４０は、パラメータＴｉｍｅｒに「４」を格納する（ステップＳ６）。パラメータＴｉｍｅｒは、クロック数をカウントするためのパラメータである。
【００２４】
次に、コマンド間隔判定部４０は、ＣＬＫ＃が「０」であるか否かを判定する（ステップＳ７）。ステップＳ７の実行によって、１クロックが経過したか否かを判定することができる。ステップＳ７で「Ｎｏ」と判定された場合（ＣＬＫ＃＝１）、ステップＳ７が再度実行される。ステップＳ７で「Ｙｅｓ」と判定された場合、コマンド間隔判定部４０は、パラメータＴｉｍｅｒから「１」を減ずる（ステップＳ８）。
【００２５】
次に、コマンド間隔判定部４０は、ＣＳ＃が「０」であるか否かを判定する（ステップＳ９）。ステップＳ９で「Ｙｅｓ」と判定された場合、コマンド間隔判定部４０は、ＲＡＳ＃が「１」であるか否かを判定する（ステップＳ１０）。ステップＳ１０で「Ｙｅｓ」と判定された場合、コマンド間隔判定部４０は、ＣＡＳ＃が「０」であるか否かを判定する（ステップＳ１１）。ステップＳ１１で「Ｙｅｓ」と判定された場合、コマンド間隔判定部４０は、ＷＥ＃が「１」であるか否かを判定する（ステップＳ１２）。ステップＳ９〜Ｓ１２の実行によって、４クロックの間にリードコマンドが再度出力されたか否かを判定することができる。
【００２６】
ステップＳ１２で「Ｙｅｓ」と判定された場合、コマンド間隔判定部４０は、パラメータＴｉｍｅｒに「４」を格納する（ステップＳ１３）。次に、コマンド間隔判定部４０は、ＣＬＫ＃が「０」であるか否かを判定する（ステップＳ１４）。ステップＳ１４の実行によって、１クロックが経過したか否かを判定することができる。ステップＳ１４で「Ｎｏ」と判定された場合、ステップＳ１４が再度実行される。ステップＳ１４で「Ｙｅｓ」と判定された場合、コマンド間隔判定部４０は、パラメータＴｉｍｅｒから「１」を減ずる（ステップＳ１５）。次に、コマンド間隔判定部４０は、パラメータＴｉｍｅｒが１以上であるか否かを判定する（ステップＳ１６）。ステップＳ１６で「Ｙｅｓ」と判定された場合、ステップＳ１４が再度実行される。ステップＳ１６で「Ｎｏ」と判定された場合、ステップＳ１が再度実行される。
【００２７】
ステップＳ９〜ステップＳ１２で「Ｎｏ」と判定された場合、クランプ実行部６０は、パラメータＴｉｍｅｒが１以上であるか否かを判定する（ステップＳ１７）。ステップＳ１７で「Ｙｅｓ」と判定された場合、ステップ７が再度実行される。ステップＳ１７で「Ｎｏ」と判定された場合、クランプ実行部６０は、リードコマンドが出力されてから所定時間経過後（例えば５τ後）、ＢＵＳスイッチ７０をクランプ期間だけオンする（ステップＳ１８）。ステップＳ１７，Ｓ１８の実行によって、４クロックの期間にリードコマンドが１回出力された場合に、クランプが実行される。その後、フローチャートの実行が終了する。
【００２８】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００２９】
１０  ＤＩＭＭコネクタ
２０  アドレス判定部
３０  コマンド判定部
４０  コマンド間隔判定部
５０  テスト制御部
６０  クランプ実行部
７０  ＢＵＳスイッチ
１００  ＤＩＭＭ擬似故障発生装置
２００  ＣＰＵ−ＤＩＭＭインタフェース
３００  ＤＩＭＭ
４００  パネル部
【図１】
2014182499.tif 000003
【図２】
2014182499.tif 000004
【図３】
2014182499.tif 000005
【図４】
2014182499.tif 000006
【図５】
2014182499.tif 000007
【図６】
2014182499.tif 000008
【図７】
2014182499.tif 000009
【図８】
2014182499.tif 000010