JP5510107B2 - Error correction test method - Google Patents
Error correction test method Download PDFInfo
- Publication number
- JP5510107B2 JP5510107B2 JP2010141328A JP2010141328A JP5510107B2 JP 5510107 B2 JP5510107 B2 JP 5510107B2 JP 2010141328 A JP2010141328 A JP 2010141328A JP 2010141328 A JP2010141328 A JP 2010141328A JP 5510107 B2 JP5510107 B2 JP 5510107B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- data string
- bit
- address
- memory
- 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.)
- Expired - Fee Related
Links
- 238000012937 correction Methods 0.000 title claims description 40
- 238000010998 test method Methods 0.000 title claims description 13
- 238000012360 testing method Methods 0.000 description 51
- 238000001514 detection method Methods 0.000 description 21
- 238000012545 processing Methods 0.000 description 12
- 230000000630 rising effect Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 6
- 238000000034 method Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000007689 inspection Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000004088 simulation Methods 0.000 description 3
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
Images
Description
本発明は、エラー訂正試験方法に関する。 The present invention relates to an error correction test method.
DIMM(Dual Inline Memory Module)は、ソケットを介してコンピュータに着脱可能なメモリモジュールである。また、メモリモジュールには、ECC(Error Correcting Code)機能に対応したものがある。ECC対応メモリモジュールは、ECC対応メモリコントローラと連動することで、記憶した情報の誤り検出および誤り訂正を行う。誤り検出および誤り訂正機能の動作を検証するには、データエラーを擬似的に発生させる必要がある。そこで、DIMMから出力された読み出されたデータの中の予め定められた1ビットを接地電位にクランプする。これにより、本来のデータの値を変化させ、データエラーを擬似的に発生させることができる。この擬似的なデータエラーを利用することにより、コンピュータの2ビットのエラー検出及び1ビットのエラー訂正の機能がテストできる。 A DIMM (Dual Inline Memory Module) is a memory module that can be attached to and detached from a computer via a socket. Some memory modules are compatible with an ECC (Error Correcting Code) function. The ECC-compatible memory module performs error detection and error correction of stored information by cooperating with the ECC-compatible memory controller. In order to verify the operation of the error detection and error correction function, it is necessary to generate a data error in a pseudo manner. Therefore, a predetermined 1 bit in the read data output from the DIMM is clamped to the ground potential. Thereby, the value of the original data can be changed and a data error can be generated in a pseudo manner. By utilizing this pseudo data error, it is possible to test the 2-bit error detection and 1-bit error correction functions of the computer.
このような擬似的なデータエラーを利用したECCの検査の一例として、例えば、メモリ擬似故障注入装置において、メモリ制御回路とメモリユニットとの間に挿入接続するアダプタを設け、当該アダプタ内に、外部からのエラー注入指示を受け付ける第1の回路と、第1の回路が受け付けた指示に従いメモリユニットへのデータのエラーを注入する第2の回路とを備えることが提案されている。 As an example of the ECC inspection using such a pseudo data error, for example, in a memory simulated fault injection apparatus, an adapter that is inserted and connected between a memory control circuit and a memory unit is provided. It has been proposed to include a first circuit that receives an error injection instruction from and a second circuit that injects a data error to the memory unit in accordance with the instruction received by the first circuit.
なお、擬似障害発生装置において、擬似障害アドレスレジスタに保持されている主記憶のアドレスと主記憶をアクセスするアドレスの一致を検出する一致回路と、この一致回路のアドレスの一致が検出されたときの出力により擬似障害を発生する擬似障害発生手段とを有することが提案されている。 In the simulated fault generation device, a match circuit that detects a match between the address of the main memory held in the simulated fault address register and an address that accesses the main memory, and a match between the addresses of the match circuit are detected. It has been proposed to have a pseudo fault generating means for generating a pseudo fault by the output.
また、記憶装置において、擬似故障をセットするための擬似故障レジスタと、エラーの発生回数を指示するためのエラー回数セットレジスタと、前記擬似故障レジスタの出力信号とシステム制御装置からの書込み/読出し動作指示信号との論理積を求めるためのANDゲートと、[(最大エラー回数)−1]個の直列に接続された複数のANDゲート付き診断レジスタと、前記エラー回数セットレジスタの出力信号によって前記[(最大エラー回数)−1]個の出力信号の一つを選択するためのエラー回数セレクト回路と、前記擬似故障レジスタの出力信号からエラーを検出するためのエラー検出回路とを具備することが提案されている。 Further, in the storage device, a simulated fault register for setting a simulated fault, an error count set register for indicating the number of occurrences of an error, an output signal of the simulated fault register, and a write / read operation from the system controller An AND gate for obtaining a logical product with the instruction signal, [(maximum error count) -1] multiple diagnostic registers with AND gates connected in series, and an output signal of the error count set register (Maximum number of errors) -1] It is proposed to include an error number selection circuit for selecting one of the output signals, and an error detection circuit for detecting an error from the output signal of the simulated fault register. Has been.
また、故障シミュレーション装置において、故障に対して許容度を有するディジタル処理システムをテストするための装置であって、上記システムに接続され、上記システム中で発生する予定の事象を検出するための手段と、上記検出するための手段に応答して予定の故障条件を上記システムに注入するための手段を具備することが提案されている。 In addition, in the failure simulation apparatus, an apparatus for testing a digital processing system having tolerance for a failure, and means for detecting an event that is connected to the system and is expected to occur in the system; It has been proposed to include means for injecting a predetermined fault condition into the system in response to the means for detecting.
前述したように、コンピュータのエラー検出及びエラー訂正の機能のテストにおいては、メモリから出力されたデータの中の予め定められた1ビットを接地電位に接続することにより、データエラーを擬似的に発生させる。従って、コンピュータのエラー検出及びエラー訂正の機能を正確にテストするためには、メモリの高速な動作に応じて、正確なデータエラーを発生させることが求められる。 As described above, in the error detection and error correction function test of a computer, a data error is generated in a pseudo manner by connecting a predetermined bit in the data output from the memory to the ground potential. Let Therefore, in order to accurately test the error detection and error correction functions of a computer, it is required to generate an accurate data error according to the high-speed operation of the memory.
本発明は、正確なデータエラーに基づいてエラー訂正試験方法を実行することを目的とする。 An object of the present invention is to execute an error correction test method based on an accurate data error.
開示されるエラー訂正試験方法は、エラー訂正に対応したメモリと、エラー訂正回路を有するメモリコントローラと、前記メモリと前記メモリコントローラの間に疑似故障ツールを有するコンピュータのエラー訂正試験方法である。開示されるエラー訂正試験方法において、前記コンピュータが、特定のビットに第1の値が設定された第1のデータを前記メモリの第1のアドレスに書き込み、かつ、前記特定のビットに前記第1の値とは異なる第2の値が設定された第2のデータを前記メモリの第2のアドレスであって前記第1のアドレスと連続しているアドレスに書き込み、前記疑似故障ツールが、前記特定のビットに対応する前記メモリの電極を前記第2の値を示すようにクランプし、前記コンピュータが、前記メモリから、前記第1のデータと前記第2のデータを連続して読出し、前記コンピュータが、前記エラー訂正回路が前記第1のデータのエラーを訂正することを確認する。
The disclosed error correction test method is an error correction test method for a computer having a memory corresponding to error correction, a memory controller having an error correction circuit, and a pseudo failure tool between the memory and the memory controller. In the error correction test method disclosed, the computer writes first data which the first value is set to a particular bit in the first address of the memory, and the said specific bit first The second data set with a second value different from the value is written to the second address of the memory that is continuous with the first address, and the pseudo-fault tool is used to specify the specified data. clamped to the electrode of the memory corresponding to the bit indicating the second value, the computer reads from the memory, successively the first data and the second data, the computer The error correction circuit confirms that the error of the first data is corrected.
開示されるエラー訂正試験方法によれば、メモリの動作速度が高速であっても、正確なデータエラーを発生させることができ、コンピュータのエラー検出及びエラー訂正の機能を正確にテストすることができる。 According to the disclosed error correction test method, an accurate data error can be generated even when the operation speed of the memory is high, and the error detection and error correction functions of the computer can be accurately tested. .
本発明者は、従来の擬似的なデータエラーを利用したエラー訂正試験方法を、DDR SDRAM(Double-Data-Rate Synchronous DRAM)に適用する場合について検討した。本発明者の検討によれば、従来の擬似的なデータエラーを利用したエラー訂正試験方法を、DDR SDRAMに適用した場合には、図7〜図10に示すように、擬似故障が発生される。 The present inventor has examined the case where a conventional error correction test method using a pseudo data error is applied to a DDR SDRAM (Double-Data-Rate Synchronous DRAM). According to the study of the present inventor, when a conventional error correction test method using a pseudo data error is applied to a DDR SDRAM, a pseudo fault is generated as shown in FIGS. .
図7及び図8は、読み出されたデータの中の1ビットが接地電位にクランプされない、換言すれば、ビットクランプ操作が無い場合における、2ビットのエラー検出及び1ビットのエラー訂正について示す。 7 and 8 show 2-bit error detection and 1-bit error correction when one bit in the read data is not clamped to the ground potential, in other words, when there is no bit clamping operation.
なお、実際には、図7及び図8は、コンピュータが市場に出荷されて実際に運用されている場合において、ソフトエラーが生じない場合における、2ビットのエラー検出及び1ビットのエラー訂正を示す。 Actually, FIGS. 7 and 8 show 2-bit error detection and 1-bit error correction when a soft error does not occur when the computer is shipped to the market and actually operated. .
図7に示すように、DDR SDRAMのバースト転送においては、メモリクロックの半周期に同期したタイミングで、データ列#11〜データ列#14が、連続して出力される。この時、メモリクロックの半周期とデータ出力の1周期とは、データ出力の周期の更に半分だけずれている。2個のメモリクロックの周期(メモリクロックの2サイクル)において、4個のデータが出力される。
As shown in FIG. 7, in the burst transfer of the DDR SDRAM, the
これにより、DDR SDRAMのバースト転送においては、メモリクロックの立ち上がり及びメモリクロックの立下りの双方のタイミングで、4個のデータ列#11〜データ列#14を読み出すことができる。具体的には、第1のメモリクロックの立ち上がりに同期してデータ列#11が読み出され、第1のメモリクロックの立下りに同期してデータ列#12が読み出される。第2のメモリクロックの立ち上がりに同期してデータ列#13が読み出され、第2のメモリクロックの立下りに同期してデータ列#14が読み出される。4個のデータ列#11〜データ列#14は、連続して読み出される。
Thereby, in the burst transfer of the DDR SDRAM, the four
なお、図7において、データ列#11〜データ列#14を「リードデータ」と表す。また、図7において、データ列#11〜データ列#14の各々は、64ビットのデータと、8ビットのECC用データとを含むデータとを含む。
In FIG. 7,
図8に示すように、DIMMから読み出されたデータ列#11〜データ列#14の各々は、擬似故障ツールに入力される。データ列#11〜データ列#14において、64ビットのデータは「64bit」と表され、ECC用データは「ECC」と表され、64ビットのデータ及びECC用データは「64bit+ECC」と表される。データ列#11〜データ列#14の各々は、「64bit+ECC」と表される。データ列#21〜データ列#24は、擬似故障ツールに入力されたデータ列#11〜データ列#14である。
As shown in FIG. 8, each of the
擬似故障ツールによるビットクランプ操作が無いとすると、データ列#21〜データ列#24は、そのままマザーボードのメモリコントローラに入力される。データ列#31〜データ列#34は、メモリコントローラに入力されたデータ列#21〜データ列#24である。メモリコントローラは、データ列#31〜データ列#34について、各々に含まれるECC用データを用いて、2ビットのエラー検出及び1ビットのエラー訂正を実行して、誤りを訂正した64ビットのデータをCPU(Central Processing Unit)に入力する。データ列#41〜データ列#44は、CPUに入力されたデータ列#31〜データ列#34である。データ列#41〜データ列#44は、ECC用データが除かれて、64ビットのデータのみを含む。
If there is no bit clamping operation by the simulated fault tool, the
図9及び図10は、図7及び図8に示す場合についてのビットクランプ操作がある場合における、2ビットのエラー検出及び1ビットのエラー訂正について示す。換言すれば、図9及び図10は、読み出されたデータの中の1ビットについてのビットクランプ操作がある場合について示す。 FIGS. 9 and 10 show 2-bit error detection and 1-bit error correction when there is a bit clamp operation for the cases shown in FIGS. In other words, FIG. 9 and FIG. 10 show a case where there is a bit clamp operation for one bit in the read data.
なお、実際には、図9及び図10は、コンピュータを市場に出荷する前に、メーカにおいて実行されるテストを示す。このテストは、コンピュータにおけるメモリのエラーの評価の1つであり、「ソフトエラー(1回のみのエラー)に対して1回のECC訂正が行なわれ、1回のエラーログが報告される」ことを確認するためのテストである。 In practice, FIGS. 9 and 10 show tests performed at the manufacturer before the computer is shipped to the market. This test is one of the evaluations of memory errors in a computer. “One error correction is made for soft errors (only one error) and one error log is reported”. It is a test to confirm.
図9に示すように、DDR SDRAMのバースト転送において、メモリクロックの立ち上がり及びメモリクロックの立下りの双方のタイミングで、4個のデータ列#11〜データ列#14が連続して読み出される。データ列#11〜データ列#14の各々は、64ビットのデータと、8ビットのECC用データとを含む。
As shown in FIG. 9, in the burst transfer of the DDR SDRAM, four data strings # 11 to # 14 are continuously read at both the rising edge of the memory clock and the falling edge of the memory clock. Each of
一方、例えば、読み出されたデータ列#11の中の予め定められた1ビットが、バススイッチにより接地電位にクランプされる。1ビットのクランプは、例えば、データバスの中の当該1ビットの信号が通過する信号線を、クランプ期間中だけ、バススイッチを用いて接地電位に接続することにより行われる。クランプ期間は、図9に示すように、データ列#11が出力される期間とほぼ一致する。図9において、接地電位は、太線で示される。
On the other hand, for example, one predetermined bit in the read
このクランプ操作により、クランプ操作された後のデータ列#21の予め定められた1ビットは、本来の値に拘らず、接地電位、換言すれば、「0」とされる。一方、クランプ期間は、次のデータ列#12の読出しのタイミング以前に終了するので、他のデータ列#22〜データ列#24には影響を与えない。データ列#21〜データ列#24については、図10に示す。
By this clamping operation, one predetermined bit of the
なお、図9において、クランプ操作された後のデータを「クランプ後のリードデータ」と表す。また、図9において、リードデータは、64ビットのデータと8ビットのECC用データとを含む(64bit+ECC)であるのに対して、クランプ後のリードデータは、データ列#21〜データ列#24において、クランプ操作された予め定められた1ビットの値のみを示す。換言すれば、図9のクランプ後のリードデータは、バススイッチにより接地電位にクランプされた信号線を通過した、予め定められた1ビットの信号の値のみを示す。
In FIG. 9, the data after the clamping operation is expressed as “read data after clamping”. In FIG. 9, the read data includes 64-bit data and 8-bit ECC data (64 bits + ECC), whereas the read data after clamping includes the
図10に示すように、DIMMから読み出されたデータ列#11〜データ列#14の各々は、擬似故障ツールに入力される。データ列#21〜データ列#24は、擬似故障ツールに入力されたデータ列#11〜データ列#14である。
As shown in FIG. 10, each of the data strings # 11 to # 14 read from the DIMM is input to the simulated fault tool.
ここで、前述したように、擬似故障ツールによるビットクランプ操作が実行される。具体的には、例えば、先頭のデータ列#21において、図9のクランプ後のリードデータに示すように、予め定められた1ビットが、本来のデータの値に拘らず、接地電位にクランプされる。これにより、結果的に、データ列#21は、1ビットのビットエラーを含むことになる。換言すれば、データ列#21は、1ビットのビットエラーを含む擬似故障データとされる。
Here, as described above, the bit clamping operation by the simulated fault tool is executed. Specifically, for example, in the first
一方、残りのデータ列#22〜データ列#24は、図9のクランプ期間に示すように、クランプ期間の終了後に読み出される。従って、残りのデータ列#22〜データ列#24は、図9のクランプ後のリードデータに示すように、クランプされずに、本来のデータの値のままとされる。換言すれば、残りのデータ列#22〜データ列#24は、そのままマザーボードのメモリコントローラに入力される。
On the other hand, the remaining data strings # 22 to # 24 are read after the end of the clamp period, as shown in the clamp period of FIG. Therefore, the remaining
メモリコントローラは、データ列#31〜データ列#34について、各々に含まれるECC用データを用いて、2ビットのエラー検出及び1ビットのエラー訂正を実行して、誤りを訂正した64ビットのデータをCPUに入力する。換言すれば、メモリコントローラは、データ列#31に含まれる1ビットのビットエラーを訂正して、訂正されたデータ列#31’を生成する。
The memory controller performs 2-bit error detection and 1-bit error correction using the ECC data included in each of the data strings # 31 to # 34, and 64-bit data in which errors are corrected. Is input to the CPU. In other words, the memory controller corrects the 1-bit bit error included in the
メモリコントローラは、訂正したデータ列#31’及びデータ列#32〜データ列#34をCPUに入力する。また、メモリコントローラは、ECCエラー#51を、例えばBIOS(Basic Input Output System)に報告する。換言すれば、メモリコントローラは、データ列#31の1ビットのビットエラーを訂正したことを、報告する。BIOSは、メモリコントローラからの受信した報告を、エラーログとして保持する。これにより、前述したように、「ソフトエラー(1回のみのエラー)に対して1回のECC訂正が行なわれ、1回のエラーログが報告される」ことが、正しく実行されたことが確認される。
The memory controller inputs the corrected data string # 31 'and
しかし、本発明者の検討によれば、従来の疑似故障ツールをより高速化されたメモリに使用して、誤り検出を再現しようとすると、図11〜図13に示すような問題を生じる。 However, according to the study of the present inventor, when error detection is reproduced by using a conventional pseudo-fault tool in a memory having a higher speed, problems as shown in FIGS. 11 to 13 occur.
なお、図11〜図13の状態は、メモリクロックの高速化により、現在のバススイッチのスイッチング速度では、バススイッチのオン/オフの動作が、データ列#11の出力の期間に納まらない場合があることに起因して発生する。
In the states of FIGS. 11 to 13, due to the increase in the memory clock speed, the on / off operation of the bus switch may not be within the output period of the
図11に示すように、DDR SDRAMのバースト転送において、メモリクロックの立ち上がり及びメモリクロックの立下りの双方のタイミングで、4個のデータ列#11〜データ列#14が連続して読み出される。一方、例えば、読み出されたデータ列#11の中の予め定められた1ビットが、バススイッチにより接地電位にクランプされる。このクランプ操作により、クランプ操作された後のデータ列#21の予め定められた1ビットは、本来の値に拘らず、接地電位、換言すれば、「0」とされる。
As shown in FIG. 11, in the burst transfer of the DDR SDRAM, four data strings # 11 to # 14 are continuously read at both the rising edge of the memory clock and the falling edge of the memory clock. On the other hand, for example, one predetermined bit in the read
しかし、クランプ期間は、図11に示すように、データ列#11が出力される期間よりも長い。図11において、接地電位は、太線で示される。このため、クランプ期間は、次のデータ列#12の出力の期間、換言すれば、データ列#22の読出しのタイミングとなっても終了しない。この結果、データ列#21に続けて読み出されるデータ列#22においても、予め定められた1ビットが、バススイッチにより接地電位にクランプされる。このクランプ操作により、クランプ操作された後のデータ列#22の予め定められた1ビットは、本来の値に拘らず、接地電位、換言すれば、「0」とされる。
However, the clamp period is longer than the period during which the
なお、図11において、クランプ操作された後のデータを「クランプ後のリードデータ」と表す。また、図11において、リードデータは、64ビットのデータと8ビットのECC用データとを含むデータ(64bit+ECC)であるのに対して、クランプ後のリードデータは、データ列#21〜データ列#24において、クランプ操作された予め定められた1ビットの値のみを示す。
In FIG. 11, the data after the clamping operation is expressed as “read data after clamping”. In FIG. 11, the read data is data (64 bits + ECC) including 64-bit data and 8-bit ECC data, whereas the read data after clamping is
図12に示すように、DIMMから読み出されたデータ列#11〜データ列#14の各々は、擬似故障ツールに入力される。データ列#21〜データ列#24は、擬似故障ツールに入力されたデータ列#11〜データ列#14である。
As shown in FIG. 12, each of the data strings # 11 to # 14 read from the DIMM is input to the simulated fault tool.
ここで、前述したように、擬似故障ツールによるビットクランプ操作が実行される。具体的には、例えば、先頭のデータ列#21において、図11のクランプ後のリードデータに示すように、予め定められた1ビットが、接地電位にクランプされる。これにより、結果的に、データ列#21は、1ビットのビットエラーを含むことになる。
Here, as described above, the bit clamping operation by the simulated fault tool is executed. Specifically, for example, in the first
しかし、前述したように、クランプ期間は、図11に示すように、データ列#11が出力される期間よりも長いので、データ列#21に続けて読み出されるデータ列#22において、図11のクランプ後のリードデータに示すように、予め定められた1ビットが、接地電位にクランプされてしまう。これにより、結果的に、2個のデータ列#21及びデータ列#22が、1ビットのビットエラーを含むことになる。
However, as described above, the clamp period is longer than the period during which the
このため、メモリコントローラは、データ列#31及びデータ列#32に含まれる1ビットのビットエラーを訂正して、訂正されたデータ列#31’及びデータ列#32’を生成する。また、メモリコントローラは、ECCエラー#51及びECCエラー#52を、例えばBIOSに報告する。
Therefore, the memory controller corrects the 1-bit bit error included in the
図13は、前述のテストにおいて読み出されるデータ列#11〜データ列#14の一例を示し、データ列#11〜データ列#14が図11及び図12に示す処理により変化する状態を示す。
FIG. 13 shows an example of the
なお、図13において、データ列#11〜データ列#14の先頭のアドレスにおける先頭の1ビットが「0」にクランプされるものとする。また、図13において、「1」はデータの値がハイレベルであることを示し、「0」はデータの値がロウレベルであることを示し、「d」はデータの値がドントケアであること、換言すれば、「1」又は「0」のいずれの値であっても良いことを示す。
In FIG. 13, it is assumed that the first 1 bit in the first address of
データ列#11〜データ列#14において、例えば、データ列#11及びデータ列#12の先頭のアドレスにおける先頭の1ビットの値が「1」であるとする。
In the
擬似故障ツールは、データ列#11の先頭のアドレスにおける先頭の1ビットを「0」にクランプして、1回のみのエラー、換言すれば、擬似故障データ列#21を生成する。しかし、前述したように、バススイッチの動作速度が遅いため、データ列#12の先頭のアドレスにおける先頭の1ビットも、「0」にクランプしてしまう。この結果、擬似故障データ列#22が生成される。
The simulated fault tool clamps the leading 1 bit in the leading address of the
これに応じて、メモリコントローラは、データ列#31及びデータ列#32の双方についてビットエラーを検出し、検出したビットエラーを訂正して、訂正されたデータ列#31’及びデータ列#32’を生成する。また、メモリコントローラは、2回のエラー発生をBIOSに報告する。
In response to this, the memory controller detects a bit error for both the
例えば、バススイッチのスイッチング速度は、バスイネーブル時間の最小値である、2.0〜4.0ns(ナノ秒)である。一方、いわゆるDDR3と言われるDDR SDRAMにおいては、メモリクロックの周波数は、1066〜533MHzである。従って、1周期は、0.9nsである。従って、通常のバススイッチのスイッチング速度では、図11に示すように、1回のバススイッチによるクランプの期間が、データ列#11の出力の期間を超えてしまう。
For example, the switching speed of the bus switch is 2.0 to 4.0 ns (nanoseconds), which is the minimum value of the bus enable time. On the other hand, in a DDR SDRAM called so-called DDR3, the frequency of the memory clock is 1066 to 533 MHz. Therefore, one period is 0.9 ns. Therefore, at the normal bus switch switching speed, as shown in FIG. 11, the clamp period by one bus switch exceeds the output period of the
このため、前述したように、実際には、2回のビットエラーが発生し、2回のECCエラーがBIOSに報告されてしまう。 For this reason, as described above, two bit errors actually occur, and two ECC errors are reported to the BIOS.
開示のエラー訂正試験方法は、メモリの動作速度が高速であっても、正確なデータエラーを発生させることができ、コンピュータのエラー検出及びエラー訂正の機能を正確にテストすることができる。 The disclosed error correction test method can generate an accurate data error even when the operation speed of the memory is high, and can accurately test the error detection and error correction functions of the computer.
図1は、メモリ検査装置の構成の一例を示す図である。 FIG. 1 is a diagram illustrating an example of a configuration of a memory inspection device.
メモリ検査装置は、サーバ1と、擬似故障ツール3とを含む。サーバ1は、例えばパーソナルコンピュータであってもよい。サーバ1は、その主メモリとして、例えばDIMM4を有する。本実施例では、DIMM4は、複数のDDR SDRAMから構成される。
The memory inspection device includes a
DIMM4は、サーバ1のマザーボードのメモリソケットに、装着される。
The DIMM 4 is attached to a memory socket on the motherboard of the
図1においては、サーバ1とDIMM4との間に、擬似故障ツール3が接続される。従って、この場合、は、データバス21、アドレスバス22、コントロールバス23は、擬似故障ツール3を介して、サーバ1及びDIMM4を接続する。コントロールバス23は、データバス21及びアドレスバス22以外のバスである。
In FIG. 1, a simulated fault tool 3 is connected between the
図1の例において、データバス21は、後述するように、64+8=72ビットのビット幅を有する。従って、DIMM4から読み出されるデータは、72ビットのデータである。データのビット幅は、これに限られず、種々の値であって良い。
In the example of FIG. 1, the
サーバ1は、CPU11と、メモリコントローラ17と、キャッシュメモリ19とを含む。CPU11、メモリコントローラ17及びキャッシュメモリ19は、サーバ1のマザーボード上に設けられる。CPU11は、OS(オペレーティングシステム)12と、擬似故障処理プログラムを実行する。
The
サーバ1は、例えばハードディスク装置のようなディスク5を含む。ディスク5は、サーバ1のマザーボード外に設けられる。ディスク5は、テストデータ51を格納する。テストデータ51は、予めディスク5に格納される。テストデータ51は、図2を参照して後述するように、予め定められたビットパターンを有する。
The
ディスク5に格納されたテストデータ51は、DIMM4の格納領域41に格納される。格納領域41は、予め定められた複数のアドレスを有する、連続した領域である。OS12が動作している間はDIMM4には種々のデータが格納されるが、このようなデータはメモリ検査に用いることができない。そこで、予め定められたアドレスに、予め定められたビットパターンを有するテストデータ51が格納される。これにより、予め定められたビットパターンを有するテストデータ51を用いてテストを実行することができる。
なお、DIMM4において、OS12を実現するプログラムは、格納領域42に格納される。格納領域42は、OS12を実現するプログラムを格納する専用の領域である。また、DIMM4において、擬似故障処理プログラムは、格納領域43に格納される。格納領域43は、種々のアプリケーションプログラムを格納する領域である。
In the DIMM 4, a program for realizing the
擬似故障ツール3は、DIMM4から読み出されたデータに擬似故障を発生させる。擬似故障ツール3は、バススイッチ31と、アドレス判定部32とを含む。バススイッチ31は、データバス21に挿入される。また、バススイッチ31には、コントロールバス23が接続される。アドレス判定部32には、アドレスバス22及びコントロールバス23が接続される。アドレスバス22及びコントロールバス23は、サーバ1とDIMM4とに接続される。
The simulated fault tool 3 generates a simulated fault in the data read from the DIMM 4. The simulated fault tool 3 includes a
アドレス判定部32は、例えば、予めライトコマンド及びリードコマンドを保持し、これらとコントロールバス23上に出力された信号とを比較して、ライトコマンド及びリードコマンドを検出する。バススイッチ31は、例えば、予めライトコマンド及びリードコマンドを保持し、これらとコントロールバス23上に出力された信号とを比較して、ライトコマンド及びリードコマンドを検出する。
The
アドレス判定部32は、サーバ1からコントロールバス23を介してDIMM4へライトコマンドが出力された場合には、ライトコマンドを検出して、アドレス判定を行わない。また、バススイッチ31は、サーバ1からコントロールバス23を介してDIMM4へライトコマンドが出力された場合には、ライトコマンドを検出して、予め定められたビット位置に対応するスイッチを通過状態とし、クランプ状態としない。他のビット位置に対応するスイッチも、通過状態とされ、クランプ状態とされない。従って、この場合、DIMM4に書き込まれるデータは、そのままバススイッチ31を通過して、DIMM4に入力される。
When a write command is output from the
アドレス判定部32は、サーバ1からコントロールバス23を介してDIMM4へリードコマンドが出力された場合には、リードコマンドを検出して、アドレス判定を行う。また、バススイッチ31は、アドレス判定部32におけるアドレス判定の結果に応じて、予め定められたビット位置に対応するスイッチをクランプ状態とし、通過状態としない。従って、この場合、DIMM4から読み出されたデータ、例えばテストデータ51は、予め定められたビット位置の値がクランプにより変更され、メモリコントローラ17に入力される。
When a read command is output from the
バススイッチ31は、DIMM4に接続され、スイッチ群を含む。このスイッチ群は、DIMM4から読み出されるデータのビット毎に設けられた複数のスイッチを含む。複数のスイッチについては、図4を参照して後述する。従って、バススイッチ31は、予め定められたビット位置に対応するスイッチを含む。
The
各々のスイッチは、クランプ状態又は通過状態のいずれかの状態とされる。クランプ状態は、当該スイッチの出力を、第1の値、例えば「1」とは反対の値である第2の値、例えば「0」にクランプする状態である。通過状態は、当該スイッチの入力を、そのまま出力する状態である。 Each switch is in a clamped state or a passed state. The clamp state is a state in which the output of the switch is clamped to a first value, for example, a second value that is opposite to “1”, for example, “0”. The passing state is a state in which the input of the switch is output as it is.
アドレス判定部32は、予め定められたアドレスを保持する。予め定められたアドレスは固定のアドレスである。固定のアドレスは、例えばアドレス判定部32の有するレジスタ等に固定的に設定される。固定のアドレスとしては、例えば「0番地」が用いられる。アドレス「0番地」は、後述する図2に示すデータ列#11における、先頭のアドレスに相当する。なお、予め定められたアドレスは、例えばディップスイッチ等により、擬似故障ツール3の外部から設定するようにしても良い。
The
アドレス判定部32は、リードコマンドを検出した場合、メモリクロックの立ち上がりに同期して、アドレスバス22上に出力されたアドレスを取込む。アドレス判定部32は、予め定められたアドレスと、取込んだアドレスとを比較することにより、予め定められたアドレスであるか否かを検出する。
When the
アドレス判定部32は、予め定められたアドレスに対するリードコマンドを検出した場合に、コントロールバス23上を転送されるメモリクロックに同期した予め定められたタイミングで、バススイッチ31に各々のスイッチの制御信号を入力する。これにより、バススイッチ31において、予め定められたビット位置に対応するスイッチが、クランプ状態に切替えられ、予め定められたビット位置以外のビット位置に対応するスイッチが、通過状態のままとされる。
When the
また、アドレス判定部32は、予め定められたアドレスを検出しない場合に、コントロールバス23上を転送されるメモリクロックに同期した予め定められたタイミングで、バススイッチ31に各々のスイッチの制御信号を入力する。これにより、バススイッチ31において、予め定められたビット位置に対応するスイッチが、通過状態に切替えられ、予め定められたビット位置以外のビット位置に対応するスイッチが、通過状態のままとされる。
In addition, when the
ここで、DIMM4は、DDR SDRAMから構成されるため、リードコマンド及びアドレスを取込んだメモリクロックから予め定められた時間だけ遅れたタイミングのメモリクロックの立ち上がりに同期して、DIMM4は、テストデータ51の出力を開始する。 Here, since the DIMM 4 is composed of the DDR SDRAM, the DIMM 4 synchronizes with the rising edge of the memory clock at a timing delayed by a predetermined time from the memory clock fetching the read command and the address. Starts output.
一方、DIMM4からテストデータ51の出力が開始されると、前述したように、テストデータ51の出力が開始されるメモリクロックの立下りに同期して、次のデータ列(第2のデータ列#12)が出力される。このため、あるデータ列(データ列#11)の出力期間において予め定められたビット位置に対応するスイッチをクランプ状態にした上で、更に、次のデータ列(データ列#12)の出力に先立って、予め定められたビット位置に対応するスイッチを通過状態に切替えることはできない。これは、バススイッチ31のスイッチの応答速度が遅いことに起因する。以上については、図4を参照して後述する。
On the other hand, when the output of the
サーバ1の電源が投入されて、CPU11がOS12を起動し、擬似故障処理プログラムを起動する。
When the power of the
CPU11は、擬似故障処理プログラムに従って、ディスク5に格納されたテストデータ51を、主メモリであるDIMM4にロードする。テストデータ51は、予め定められたデータパターンを有するデータである。ロード先のアドレスは、予め定められたアドレス、換言すれば、格納領域41のアドレスである。これにより、DIMM4において、特定のアドレスに特定のデータパターンを有するテストデータ51が格納される。
テストデータ51を格納後、キャッシュメモリ19に格納された、データ列#11とデータ列#12〜データ列#14とを、キャッシュメモリ19から追い出す処理を行う。具体的には、テストデータ51を格納したアドレス以外のDIMM4のデータを所定量参照する。
The
After storing the
また、CPU11は、擬似故障処理プログラムに従って、擬似故障ツール3を介して、データ列#11〜データ列#14を、DIMM4から読み出す。
Further, the
CPU11は、擬似故障処理プログラムに従って、メモリコントローラ17に対して、予め定められたアドレスである格納領域41のアドレスを指定して、DIMM4からのデータの読出しを要求する。これに応じて、メモリコントローラ17は、制御信号とアドレス信号を形成して、制御信号をコントロールバス23を介してDIMM4に送信し、アドレス信号をアドレスバス22を介してDIMM4に送信する。
The
これに応じて、DIMM4は、指定されたアドレスである格納領域41からテストデータを読出して、データバス21を介して、メモリコントローラ17に送信する。この時、テストデータは、擬似故障ツール3に入力される。
In response to this, the DIMM 4 reads the test data from the
擬似故障ツール3は、バススイッチ31において、予め定められたビット位置に対応するスイッチを、クランプ状態に切替える。これにより、擬似故障ツール3は、バススイッチ31を用いて、読出したデータ列#11において、予め定められたビット位置の第1の値、例えば「1」を、第2の値、例えば「0」にクランプすることにより、データ列#11についての擬似故障データを生成する。
The simulated fault tool 3 switches the switch corresponding to a predetermined bit position in the
また、擬似故障ツール3は、データ列#12〜データ列#14の読出しと並列して、バススイッチ31における予め定められたビット位置に対応するスイッチを、クランプ状態から、通過状態に切替える。これにより、擬似故障ツール3は、バススイッチ31を用いて、読出したデータ列#12〜データ列#14において、予め定められたビット位置に対応するスイッチがクランプ状態である場合には、予め定められたビット位置の第2の値、例えば「0」を、第2の値、例えば「0」にクランプする。また、擬似故障ツール3は、予め定められたビット位置に対応するスイッチが通過状態である場合には、予め定められたビット位置の第2の値、例えば「0」を、そのまま通過させる。これにより、データ列#12〜データ列#14が出力される。
Further, the simulated fault tool 3 switches the switch corresponding to a predetermined bit position in the
具体的には、アドレス判定部32は、予め定められたアドレスを検出した場合に、バススイッチ31において、予め定められたビット位置に対応するスイッチを、クランプ状態に切替える。これにより、擬似故障データが生成される。
Specifically, when the
一方、アドレス判定部32は、予め定められたアドレスを検出しない場合に、予め定められたビット位置に対応するスイッチを、通過状態に切替える。これにより、擬似故障データは生成されない。これにより、DIMM4から出力されたデータが、そのままメモリコントローラ17に入力される。
On the other hand, when the
メモリコントローラ17は、ECC回路18において、受信したデータに基づいて、2ビットのエラー検出及び1ビットのエラー訂正を実行して、誤りを訂正したデータをCPU11に入力する。また、メモリコントローラ17は、2ビットのエラー検出及び1ビットのエラー訂正を実行した結果を、例えばBIOS13に報告する。
The
図2は、データエラーの擬似発生の説明図である。図2は、前述のテストにおいて読み出される、データ列#11〜データ列#14を含むテストデータの一例を示し、データ列#11〜データ列#14が変化する状態を示す。図2において、「1」はデータの値がハイレベルであることを示し、「0」はデータの値がロウレベルであることを示し、「d」はデータの値がドントケアであること、換言すれば、「1」又は「0」のいずれの値であっても良いことを示す。
FIG. 2 is an explanatory diagram of pseudo occurrence of a data error. FIG. 2 shows an example of test data including the
テストデータ51は、前述したように、DIMM4に格納される。テストデータ51は、複数のデータ列#11〜データ列#14を含む。複数のデータ列#11〜データ列#14の各々は、並列に読み出される複数のビットを含む。
The
テストデータ51は、予め定められたビットパターンを有する。即ち、複数のデータ列#11〜データ列#14の中で、第1のデータ列#11は、予め定められたビット位置に、予め定められた第1の値を有する。また、複数のデータ列#11〜データ列#14の中で、少なくとも第1のデータ列#11の次の第2のデータ列#12は、予め定められたビット位置に、第2の値を有する。
The
第1の値は、例えば2値データにおける「1」、換言すれば、ハイレベルである。第2の値は、第1の値を反転した値である。第2の値は、例えば2値データにおける「0」、換言すれば、ロウレベルである。 The first value is, for example, “1” in binary data, in other words, a high level. The second value is a value obtained by inverting the first value. The second value is, for example, “0” in binary data, in other words, low level.
テストデータ51は、第1のデータ列であるデータ列#11と、複数の第2のデータ列であるデータ列#12〜データ列#14とを含む。データ列#11は、エラー検出又はエラー訂正のための複数のビットを含むデータであって予め定められたビット位置に第1の値、例えば「1」を有する。データ列#12〜データ列#14の各々は、データ列#11に続けて読み出されるデータであって、エラー検出又はエラー訂正のための複数のビットを含むデータであって、予め定められたビット位置に第2の値、例えば「0」を有する。
The
例えば、データ列#11は、DIMM4の予め定められたアドレスに格納される。データ列#12〜データ列#14は、DIMM4において、データ列#11に連続して格納される。換言すれば、データ列#11〜データ列#14は、予め定められた1個の格納領域41に連続して格納される。
For example, the
データ列#11〜データ列#14の各々は、8ビットずつ、換言すれば、1バイトずつ分かち書きされている。1バイト毎にアドレスが割り当てられる。従って、データ列#11の先頭の1バイトのアドレスが「0番地」であるとすると、データ列#11の最後の1バイトのアドレスは「7番地」である。また、データ列#12において、先頭の1バイトのアドレスは「8番地」であり、最後の1バイトのアドレスは「15番地」である。図2に示すデータ列#11〜データ列#14の各々は、64ビットであるので、ECC用データを除いたデータである。データ列#11が、第1のデータ列であって、最初に読み出されるデータである。データ列#12〜データ列#14が、第2のデータ列であって、データ列#11に続けて読み出されるデータである。
Each of the
なお、データ列#11の先頭のアドレスにおける先頭の1ビットは、電源電位、換言すれば、「1(ハイレベル)」にクランプされるようにしても良い。換言すれば、サーバ1における2値信号のいずれか一方の値に固定されるようにすれば良い。
Note that the first bit in the first address of the
また、「0」にクランプされる1ビットは、先頭のアドレスにおける先頭の1ビットに限られない。従って、「0」にクランプされる1ビットは、先頭のアドレス以外のアドレスに存在していても良く、また、いずれかのアドレスにおける先頭の1ビット以外の1ビットであっても良い。
The 1 bit clamped to “0” is not limited to the first 1 bit in the first address. Accordingly, 1 bit clamped to “0” may exist at an address other than the head address, or may be 1 bit other than the
DIMM4に格納されたテストデータ51は、CPU11により、擬似故障ツール3を介して、読み出される。これにより、テストデータ51は、擬似故障ツール3に入力される。
The
擬似故障ツール3において、DIMM4から読み出されたテストデータ51から、擬似的なエラーを含むテストデータが生成される。換言すれば、以下に説明するように、第1のデータ列#11の予め定められたビット位置の第1の値「1」が、第2の値「0」に変更される。
In the simulated fault tool 3, test data including a pseudo error is generated from the
具体的には、前述したように、データ列#11において、先頭のアドレスが、予め定められたアドレスとされる。従って、データ列#11の読出しが指示されると、アドレス判定部32により、予め定められたアドレスが検出され、バススイッチ31において、予め定められたビット位置に対応するスイッチが、クランプ状態に切替えられる。通過状態からクランプ状態に切替えられたスイッチは、スイッチ切替えの最も早いタイミングで、再度、通過状態に切り替えられる。
Specifically, as described above, in the
データ列#11〜データ列#14において、例えば、先頭のデータ列#11において、先頭のアドレスにおける先頭の1ビットの値が「1」、換言すれば、クランプ後の値「0」を反転した値とされる。データ列#11に続けて読み出されるデータ列#12〜データ列#14において、先頭のアドレスにおける先頭の1ビットの値が「0」、換言すれば、クランプ後の値「0」と等しい値とされる。
In the
なお、先頭のアドレスにおける先頭の1ビットの値がクランプ後の値「0」と等しい値とされるデータの数は、3個に限られない。バススイッチ31の動作速度がDIMM4からのデータ読出し速度程度である場合には、データ列#11の次のデータ列#12のみにおいて、先頭のアドレスにおける先頭の1ビットの値が「0」とされるようにすれば良い。従って、データ列#11において先頭のアドレスにおける先頭の1ビットの値が「0」にクランプされる場合、少なくとも、データ列#11に連続して読み出される次の1個のデータ列#12において、先頭のアドレスにおける先頭の1ビットの値が、クランプ後の値「0」とされれば良い。
Note that the number of data in which the value of the first 1 bit in the first address is equal to the value “0” after clamping is not limited to three. When the operation speed of the
逆に、バーストモードにおいて連続して読み出されるデータは、4個のデータ列#11〜データ列#14に限られない。そして、この場合において、バススイッチ31の動作速度がDIMM4からのデータ読出し速度よりもかなり遅い場合には、例えば、データ列#11に続けて読み出される4〜5個のデータにおいて、先頭のアドレスにおける先頭の1ビットの値を「0」とするようにしても良い。
On the contrary, the data continuously read in the burst mode is not limited to the four data strings # 11 to # 14. In this case, when the operation speed of the
擬似故障ツールは、データ列#11の先頭のアドレスにおける先頭の1ビットを「0」にクランプして、1回のみのエラー、換言すれば、擬似故障データ列#21を生成する。この時、前述したように、バススイッチ31の動作速度が遅いため、データ列#12の先頭のアドレスにおける先頭の1ビットも、「0」にクランプしてしまう。しかし、データ列#12の先頭のアドレスにおける先頭の1ビットの値は、元々「0」である。従って、「0」にクランプされても、データ列#12の先頭のアドレスにおける先頭の1ビットの値は「0」で変化せず、クランプの影響はない。
The simulated fault tool clamps the leading 1 bit in the leading address of the
この結果、擬似故障データ列#22が生成されるが、生成された擬似故障データ列#22は、元のデータ列#22と等しい。従って、擬似故障データ列#22は生成されないに等しい。換言すれば、データ列#22に対応するデータ列#32においては、ビットエラーは検出されない。
As a result, a simulated fault
以上のように、テストデータ51は、DIMM4から読み出され、第1のデータ列#11の予め定められたビット位置の値を変更される。この後、テストデータ51は、メモリコントローラ17に入力される。これにより、メモリコントローラ17のECC回路18において、テストデータ51を用いてDIMM4についてのテストが実行される。
As described above, the
具体的には、メモリコントローラ17は、データ列#31のみについてビットエラーを検出し、検出したビットエラーを訂正して、訂正されたデータ列#31’を生成する。また、メモリコントローラ17は、1回のエラー発生をBIOSに報告する。
Specifically, the
これにより、1回のバススイッチ31によるクランプの期間が、データ列#11の出力の期間を超えてしまう場合においても、1回のみのビットエラーが発生し、1回のみのECCエラーがBIOSに報告される。従って、「ソフトエラー(1回のみのエラー)に対して1回のECC訂正が行なわれ、1回のエラーログが報告される」ことが、正しく実行されたことは確認することができる。
As a result, even when the clamping period by one
この後、エラー訂正されたテストデータ51は、擬似故障処理プログラムの読出処理部15により、キャッシュメモリ19に格納される。この後、キャッシュメモリ19に格納されたエラー訂正されたテストデータ51は、擬似故障処理プログラムのキャッシュ処理部16により、キャッシュメモリ19から追い出される。これにより、擬似故障処理プログラムの読出処理部15がテストデータ51の読出コマンドを再度実行した場合であっても、テストデータ51を、キャッシュメモリ19からではなく、DIMM4から読み出すことができる。
After that, the error-corrected
図3は、データエラーの擬似発生の説明図である。 FIG. 3 is an explanatory diagram of a pseudo occurrence of a data error.
図3に示すように、DDR SDRAMのバースト転送において、メモリクロックの立ち上がり及びメモリクロックの立下りの双方に同期して、4個のデータ列#11〜データ列#14が連続して読み出される。 As shown in FIG. 3, in the burst transfer of the DDR SDRAM, four data strings # 11 to # 14 are continuously read out in synchronization with both the rising edge of the memory clock and the falling edge of the memory clock.
読み出されたデータ列#11の中の予め定められた1ビットが、バススイッチ31により接地電位にクランプされる。このクランプ操作により、クランプ操作された後のデータ列#21の予め定められた1ビットは、本来の値に拘らず、接地電位、換言すれば、「0」とされる。
One predetermined bit in the read
なお、データの読出しのモードは、DDR SDRAMのバースト転送以外の読出しモードであっても良い。従って、例えば、メモリクロックの立ち上がりのみ又は立下りのみに同期して、データを読み出す読出しモードであっても良い。また、データを出力するメモリは、DIMM4以外のメモリであっても良い。更に、データを出力するメモリは、DDR SDRAM以外のメモリであっても良い。 Note that the data read mode may be a read mode other than the burst transfer of the DDR SDRAM. Therefore, for example, a read mode in which data is read out in synchronization with only the rising edge or the falling edge of the memory clock may be used. Further, the memory that outputs data may be a memory other than the DIMM 4. Furthermore, the memory that outputs data may be a memory other than the DDR SDRAM.
先頭のデータ列#11において、前述したように、先頭のアドレスにおける先頭の1ビットの値が「1」とされる。一方、前述したように、データ列#11に続けて読み出されるデータ列#12〜データ列#14において、先頭のアドレスにおける先頭の1ビットの値が「0」とされる。
In the first
ここで、クランプ期間は、図3に示すように、データ列#11が出力される期間よりも長い。図3において、接地電位は、太線で示される。このため、クランプ期間は、次のデータ列#12の出力の期間、換言すれば、データ列#22の読出しのタイミングとなっても終了しない。従って、データ列#12の先頭のアドレスにおける先頭の1ビットも、「0」にクランプしてしまう。しかし、前述したように、データ列#12の先頭のアドレスにおける先頭の1ビットの値は、元々「0」である。従って、「0」にクランプされても、データ列#12の先頭のアドレスにおける先頭の1ビットの値は「0」で変化せず、クランプの影響はない。
Here, as shown in FIG. 3, the clamp period is longer than the period in which the
なお、図3において、クランプ操作された後のデータを「クランプ後のリードデータ」と表す。また、図3において、リードデータは、64ビットのデータと8ビットのECC用データとを含むデータ(64bit+ECC)であるのに対して、クランプ後のリードデータは、データ列#21〜データ列#24において、クランプ操作された予め定められた1ビットの値のみを示す。
In FIG. 3, the data after the clamping operation is expressed as “read data after clamping”. In FIG. 3, the read data is data (64 bits + ECC) including 64-bit data and 8-bit ECC data, whereas the read data after clamping is
図4は、データエラーの擬似発生におけるクランプの説明図である。 FIG. 4 is an explanatory diagram of the clamp in the pseudo occurrence of the data error.
例えば、前述したように、データ列#11の先頭のアドレスにおける先頭の1ビットの値「1」は、図4(A)に示すように、「0」にクランプされる。このために、バススイッチ31においてデータ列#11の先頭のアドレスにおける先頭の1ビットに対応するスイッチSWが、プルダウン抵抗Rを介して、接地電位、換言すれば、「0」に接続される。換言すれば、データ列#11の先頭のアドレスにおける先頭の1ビットに対応するスイッチSWが、クランプ状態とされる。これにより、データ列#21において、先頭のアドレスにおける先頭の1ビットの値が「0」とされる。バススイッチ31におけるスイッチSWは、例えば1又は複数のMOSFETにより構成される。
For example, as described above, the leading 1-bit value “1” in the leading address of the
なお、図4(A)において、データ列#21においては、ECC用データを省略している。また、図4(A)において、スイッチSWは、データ列#21において、先頭のアドレスにおける先頭の1ビットに対応するスイッチと、最後のアドレスにおける最後の1ビットに対応するスイッチのみを示す。
In FIG. 4A, ECC data is omitted in the
バススイッチ31のスイッチング速度が遅いので、図4(B)に示すように、データ列#12の読出しのタイミングとなっても、データ列#12の先頭のアドレスにおける先頭の1ビットに対応するスイッチSWが、接地電位に接続された状態である。これにより、データ列#22においても、先頭のアドレスにおける先頭の1ビットの値が「0」とされる。
Since the switching speed of the
この後、バススイッチ31において、データ列#12の先頭のアドレスにおける先頭の1ビットに対応するスイッチSWが、クランプ状態から、当該スイッチSWの入力をそのまま出力する通過状態に切替えられる。これにより、データ列#12の先頭のアドレスにおける先頭の1ビットに対応するスイッチSWは、当該スイッチSWの入力をそのまま出力する。
Thereafter, in the
従って、例えば、データ列#11の読出しのタイミングとなると、データ列#13の先頭のアドレスにおける先頭の1ビットの値「0」は、図4(C)に示すように、「0」にクランプされずに、スイッチSWをそのまま通過する。これにより、データ列#23において、先頭のアドレスにおける先頭の1ビットの値が「0」のままとされる。
Therefore, for example, when the read timing of the
図5は、データエラーの処理の説明図である。 FIG. 5 is an explanatory diagram of data error processing.
図5に示すように、DIMM4から読み出されたデータ列#11〜データ列#14の各々は、擬似故障ツール3に入力される。 As shown in FIG. 5, each of the data strings # 11 to # 14 read from the DIMM 4 is input to the simulated fault tool 3.
ここで、前述したように、擬似故障ツール3によるビットクランプ操作が実行される。具体的には、例えば、先頭のデータ列#21において、図3のクランプ後のリードデータに示すように、先頭のアドレスの先頭の1ビットが、本来のデータの値に拘らず、接地電位にクランプされる。これにより、結果的に、データ列#21は、1ビットのビットエラーを含むことになる。換言すれば、データ列#21は、1ビットのビットエラーを含む擬似故障データとされる。この1ビットのビットエラーは、実際のソフトエラーの代わりに発生させられた擬似的なエラーである。
Here, as described above, the bit clamping operation by the simulated fault tool 3 is executed. Specifically, for example, in the leading
この時、クランプ期間は、図3に示すように、データ列#11が出力される期間よりも長いので、データ列#21に続けて読み出されるデータ列#22において、図3のクランプ後のリードデータに示すように、先頭のアドレスの先頭の1ビットが、接地電位にクランプされる。
At this time, as shown in FIG. 3, the clamp period is longer than the period during which the
しかし、前述したように、データ列#12の先頭のアドレスにおける先頭の1ビットの値は、元々「0」である。従って、「0」にクランプされても、データ列#12の先頭のアドレスにおける先頭の1ビットの値は「0」で変化せず、クランプの影響はない。従って、データ列#22においては、先頭のアドレスにおける先頭の1ビットが「0」にクランプされるが、1ビットのビットエラーを含むことにはならない。この結果、擬似故障データ列#22は生成されるが、生成された擬似故障データ列#22は、元のデータ列#22と等しい。従って、擬似故障データ列#22は生成されないに等しい。
However, as described above, the value of the leading 1 bit in the leading address of the
残りのデータ列#23〜データ列#24は、図3のクランプ期間に示すように、クランプ期間の終了後に読み出される。従って、残りのデータ列#23〜データ列#24は、図3のクランプ後のリードデータに示すように、クランプされずに、本来のデータの値のままとされる。換言すれば、残りのデータ列#23〜データ列#24は、そのままマザーボードのメモリコントローラに入力される。
The remaining
メモリコントローラ17は、ECC回路18において、データ列#31〜データ列#34について、各々に含まれるECC用データを用いて、2ビットのエラー検出及び1ビットのエラー訂正を実行して、誤りを訂正した64ビットのデータをCPUに入力する。図1の例では、メモリコントローラ17は、ECC回路18において、データ列#31に含まれる1ビットのビットエラーを訂正して、訂正されたデータ列#31’を生成する。一方、メモリコントローラ17は、データ列#32にはビットエラーが含まれないので、データ列#32についてはビットエラーの訂正は実行しない。
The
メモリコントローラ17は、訂正したデータ列#31’及びデータ列#32〜データ列#34をCPU11に入力する。また、メモリコントローラ17は、ECCエラー#51を、例えばBIOS13に報告する。換言すれば、メモリコントローラ17は、データ列#31の1ビットのビットエラーを訂正したことを、報告する。BIOS13は、メモリコントローラ17からの受信した報告を、エラーログとして保持する。これにより、前述したように、「ソフトエラー(1回のみのエラー)に対して1回のECC訂正が行なわれ、1回のエラーログが報告される」ことが、正しく実行されたことが確認される。
The
図6は、データエラー擬似発生処理のフローチャートである。 FIG. 6 is a flowchart of the data error simulation generation process.
擬似故障処理プログラムが、主メモリであるDIMM4において、予め定められた物理アドレスを有する格納領域41についてメモリマップし(ステップS1)、この後、メモリマップされた物理アドレスを有する格納領域41に予め定められたテストデータ51を書き込む(ステップS2)。これにより、DIMM4において、予め定められたアドレスにテストデータ51が格納される。
The simulated fault processing program performs memory mapping on the
擬似故障処理プログラムが、キャッシュ処理部16を制御して、DIMM4において、リードエリアとしてキャッシュメモリ19のメモリ容量以上のサイズの領域(仮想メモリ)を獲得する(ステップS3)。
The simulated fault processing program controls the
獲得した仮想メモリの内容を読出して、キャッシュメモリ19上の領域(ダミー領域)にコピーし(ステップS4)、ステップ5を繰り返す。これにより、キャッシュメモリ19にコピーされたテストデータ51がキャッシュメモリ19から追い出される。
The contents of the acquired virtual memory are read and copied to an area (dummy area) on the cache memory 19 (step S4), and step 5 is repeated. As a result, the
擬似故障処理プログラムが、読出処理部15を制御して、予め定められた物理アドレスから、予め定められたテストデータ51を読み出す(ステップS5)。予め定められたアドレスからテストデータ51が、キャッシュメモリ19ではなく、DIMM4から読み出される。
The simulated fault processing program controls the
以上は、メモリコントローラ17が、ECC回路18において、データ列#31に含まれる1ビットのビットエラーを訂正して、訂正されたデータ列#31’を生成する例である。
The above is an example in which the
しかし、メモリコントローラ17が、ECC回路18において、データ列#31に含まれるECC用データを用いて、2ビットのエラー検出を実行して、検出したエラーをBIOSに報告するようにしても良い。
However, the
この場合、第1のデータ列であるデータ列#11は、2ヶ所の予め定められたビット位置に、第1の値、例えば「1」を有するようにされる。また、第2のデータ列であるデータ列#12〜データ列#14は、2ヶ所の予め定められたビット位置に、第2の値、例えば「0」を有するようにされる。
In this case, the
また、擬似故障ツール3において、2ヶ所の予め定められたビット位置に対応するスイッチが、クランプ状態に切替えられる。 Further, in the simulated fault tool 3, the switches corresponding to the two predetermined bit positions are switched to the clamped state.
擬似故障処理プログラムがデータ列#11をDIMM4から読み出すと、擬似故障ツール3は、読出したデータ列#11において、2ヶ所の予め定められたビット位置の第1の値を、各々、第2の値、例えば「0」にクランプする。これにより、2ビットのビットエラーを含む、データ列#11についての擬似故障データが生成される。
When the simulated fault processing program reads the
この後、擬似故障処理プログラムが、第2のデータ列であるデータ列#12〜データ列#14をDIMM4から読み出す。擬似故障ツール3は、データ列#12〜データ列#14の読出しと並列して、複数の予め定められたビット位置に対応するスイッチを、クランプ状態から、通過状態に切替える。
Thereafter, the simulated fault processing program reads
この結果、擬似故障ツール3は、読出したデータ列#12〜データ列#14において、2ヶ所の予め定められたビット位置に対応するスイッチがクランプ状態である場合には、2ヶ所の予め定められたビット位置の第2の値「0」を、各々、第2の値「0」にクランプし、2ヶ所の予め定められたビット位置に対応するスイッチが通過状態である場合には、2ヶ所の予め定められたビット位置の第2の値「0」を、各々、そのまま通過させる。これにより、データ列#12〜データ列#14が出力される。
As a result, the simulated fault tool 3 has two predetermined positions when the switches corresponding to the two predetermined bit positions are clamped in the read
これにより、メモリコントローラ17は、ECC回路18において、データ列#31に含まれるECC用データを用いて、2ビットのエラー検出を実行して、検出したエラーをBIOSに報告することができる。
As a result, the
なお、データ列#11〜データ列#14において、第1の値を有する、予め定められたビット位置の数は、2ヶ所に限られず、3ヶ所以上の複数であっても良い。
Note that, in the
1 サーバ
3 擬似故障ツール
4 DIMM
5 ディスク
11 CPU
12 OS
13 BIOS
14 擬似故障処理部
15 読出処理部
16 キャッシュ処理部
17 メモリコントローラ
18 ECC回路
19 キャッシュメモリ
21 データバス
22 アドレスバス
23 コントロールバス
31 バススイッチ
32 アドレス判定部
51 テストデータ
1 server 3 simulated fault tool 4 DIMM
5
12 OS
13 BIOS
14 Pseudo
Claims (2)
前記コンピュータが、特定のビットに第1の値が設定された第1のデータを前記メモリの第1のアドレスに書き込み、かつ、前記特定のビットに前記第1の値とは異なる第2の値が設定された第2のデータを前記メモリの第2のアドレスであって前記第1のアドレスと連続しているアドレスに書き込み、
前記疑似故障ツールが、前記特定のビットに対応する前記メモリの電極を前記第2の値を示すようにクランプし、
前記コンピュータが、前記メモリから、前記第1のデータと前記第2のデータを連続して読出し、
前記コンピュータが、前記エラー訂正回路が前記第1のデータのエラーを訂正することを確認する
ことを特徴とするエラー訂正試験方法。 In an error correction test method for a computer having a memory corresponding to error correction, a memory controller having an error correction circuit, and a pseudo failure tool between the memory and the memory controller,
The computer writes first data which the first value is set to a particular bit in the first address of the memory, and the second value different from the first value to said particular bit Is written to the second address of the memory that is continuous with the first address ,
The imitation fault tool, clamped to the electrode of the memory corresponding to the particular bit indicates the second value,
The computer continuously reads the first data and the second data from the memory;
An error correction test method, wherein the computer confirms that the error correction circuit corrects an error in the first data.
前記コンピュータが前記第1のデータおよび前記第2のデータを前記メモリに書き込んだ後、前記コンピュータは、前記メモリ内の前記第1のデータおよび前記第2のデータ以外のデータを所定量参照する
ことを特徴とする請求項1記載のエラー訂正試験方法。 The computer further comprises a cache memory for the memory,
After the computer writes the first data and the second data in the memory, the computer, see predetermined amount the first data and the data other than the second data before texture in memory The error correction test method according to claim 1, wherein:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010141328A JP5510107B2 (en) | 2010-06-22 | 2010-06-22 | Error correction test method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010141328A JP5510107B2 (en) | 2010-06-22 | 2010-06-22 | Error correction test method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012008620A JP2012008620A (en) | 2012-01-12 |
JP5510107B2 true JP5510107B2 (en) | 2014-06-04 |
Family
ID=45539124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010141328A Expired - Fee Related JP5510107B2 (en) | 2010-06-22 | 2010-06-22 | Error correction test method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5510107B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6003735B2 (en) * | 2013-03-18 | 2016-10-05 | 富士通株式会社 | DIMM simulated fault generation method and DIMM simulated fault generation apparatus |
JP2016162183A (en) * | 2015-03-02 | 2016-09-05 | 日本電気株式会社 | Computer system, memory failure input method, and memory failure input program |
CN117520063A (en) * | 2022-07-30 | 2024-02-06 | 华为技术有限公司 | Memory testing method, device, equipment, system, chip and board card |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS641198A (en) * | 1987-06-23 | 1989-01-05 | Matsushita Electric Ind Co Ltd | Semiconductor memory |
JP2001351398A (en) * | 2000-06-12 | 2001-12-21 | Nec Corp | Storage device |
JP2002343096A (en) * | 2001-05-17 | 2002-11-29 | Hitachi Ltd | Test system of semiconductor memory module and manufacturing method |
-
2010
- 2010-06-22 JP JP2010141328A patent/JP5510107B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2012008620A (en) | 2012-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9128822B2 (en) | On-chip bad block management for NAND flash memory | |
US7506226B2 (en) | System and method for more efficiently using error correction codes to facilitate memory device testing | |
KR930004330B1 (en) | Data processing system with self-testing memory | |
TWI438776B (en) | Method and apparatus for repairing high capacity/high bandwidth memory devices | |
TWI462108B (en) | Circuit and method for testing multi-device systems | |
US5872790A (en) | ECC memory multi-bit error generator | |
US8001432B2 (en) | Uninitialized memory detection using error correction codes and built-in self test | |
US7808849B2 (en) | Read leveling of memory units designed to receive access requests in a sequential chained topology | |
US8862953B2 (en) | Memory testing with selective use of an error correction code decoder | |
US20090037778A1 (en) | Devices, methods, and apparatuses for detection, sensing, and reporting functionality for semiconductor memory | |
US9087615B2 (en) | Memory margin management | |
US20120079346A1 (en) | Simulated error causing apparatus | |
JP5147942B2 (en) | Programmable diagnostic memory module | |
JP5510107B2 (en) | Error correction test method | |
TWI470637B (en) | Test apparatus and test method | |
US9250992B1 (en) | Test data reporting during memory testing | |
TWI251142B (en) | Semiconductor memory device and its controller | |
US20220107866A1 (en) | Fast memory ecc error correction | |
US8782475B2 (en) | PRBS test memory interface considering DDR burst operation | |
JPWO2012046343A1 (en) | Memory module redundancy method, storage processing device, and data processing device | |
US11550681B2 (en) | System and method for error injection in system-on-chip | |
JP7107696B2 (en) | Failure detection method for semiconductor device and semiconductor memory | |
JP2004021922A (en) | Pseudo memory failure injection device | |
TW201928981A (en) | System for testing whole memory and method thereof | |
JP2004079032A (en) | Test method for semiconductor device, and semiconductor device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130507 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131210 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131217 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140203 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140225 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140310 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5510107 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |