JP5510107B2 - Error correction test method - Google Patents

Error correction test method Download PDF

Info

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
Application number
JP2010141328A
Other languages
Japanese (ja)
Other versions
JP2012008620A (en
Inventor
進 宮澤
享祐 吉津
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010141328A priority Critical patent/JP5510107B2/en
Publication of JP2012008620A publication Critical patent/JP2012008620A/en
Application granted granted Critical
Publication of JP5510107B2 publication Critical patent/JP5510107B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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.

特開2004−021922号公報JP 2004-021922 A 特開昭60−239838号公報JP 60-239838 A 特開昭62−047750号公報JP-A-62-047750 特開昭63−027931号公報JP 63-027931 A

前述したように、コンピュータのエラー検出及びエラー訂正の機能のテストにおいては、メモリから出力されたデータの中の予め定められた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. .

メモリ検査装置の構成の一例を示す図である。It is a figure which shows an example of a structure of a memory test | inspection apparatus. データエラーの擬似発生の説明図である。It is explanatory drawing of pseudo generation | occurrence | production of a data error. データエラーの擬似発生の説明図である。It is explanatory drawing of pseudo generation | occurrence | production of a data error. データエラーの擬似発生におけるクランプの説明図である。It is explanatory drawing of the clamp in the pseudo occurrence of a data error. データエラーの処理の説明図である。It is explanatory drawing of a process of a data error. データエラー擬似発生処理のフローチャートである。It is a flowchart of a data error simulation generation process. 本発明者が検討したデータエラーの擬似発生の説明図である。It is explanatory drawing of the pseudo generation | occurrence | production of the data error which this inventor examined. 本発明者が検討したデータエラーの処理の説明図である。It is explanatory drawing of the process of the data error which this inventor examined. 本発明者が検討したデータエラーの擬似発生の説明図である。It is explanatory drawing of the pseudo generation | occurrence | production of the data error which this inventor examined. 本発明者が検討したデータエラーの処理の説明図である。It is explanatory drawing of the process of the data error which this inventor examined. 本発明者が検討したデータエラーの擬似発生の説明図である。It is explanatory drawing of the pseudo generation | occurrence | production of the data error which this inventor examined. 本発明者が検討したデータエラーの処理の説明図である。It is explanatory drawing of the process of the data error which this inventor examined. 本発明者が検討したデータエラーの擬似発生の説明図である。It is explanatory drawing of the pseudo generation | occurrence | production of the data error which this inventor examined.

本発明者は、従来の擬似的なデータエラーを利用したエラー訂正試験方法を、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 data string # 11 to the data string # 14 are continuously output at a timing synchronized with the half cycle of the memory clock. At this time, the half cycle of the memory clock and one cycle of data output are shifted by a further half of the cycle of data output. In the period of two memory clocks (two memory clock cycles), four data are output.

これにより、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 data strings # 11 to # 14 can be read at both the rising edge of the memory clock and the falling edge of the memory clock. Specifically, the data string # 11 is read in synchronization with the rising edge of the first memory clock, and the data string # 12 is read in synchronization with the falling edge of the first memory clock. The data string # 13 is read in synchronization with the rising edge of the second memory clock, and the data string # 14 is read in synchronization with the falling edge of the second memory clock. The four data strings # 11 to # 14 are continuously read out.

なお、図7において、データ列#11〜データ列#14を「リードデータ」と表す。また、図7において、データ列#11〜データ列#14の各々は、64ビットのデータと、8ビットのECC用データとを含むデータとを含む。   In FIG. 7, data string # 11 to data string # 14 are represented as “read data”. In FIG. 7, each of data string # 11 to data string # 14 includes 64-bit data and data including 8-bit ECC data.

図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 data strings # 11 to # 14 read from the DIMM is input to the simulated fault tool. In the data sequence # 11 to the data sequence # 14, 64-bit data is represented as “64 bits”, ECC data is represented as “ECC”, and 64-bit data and ECC data is represented as “64 bits + ECC”. . Each of the data string # 11 to the data string # 14 is represented as “64 bits + ECC”. Data string # 21 to data string # 24 are data string # 11 to data string # 14 input to the simulated fault tool.

擬似故障ツールによるビットクランプ操作が無いとすると、データ列#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 data string # 21 to the data string # 24 are input as they are to the memory controller of the motherboard. Data string # 31 to data string # 34 are data string # 21 to data string # 24 input to the memory controller. 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 a CPU (Central Processing Unit). Data string # 41 to data string # 44 are data string # 31 to data string # 34 input to the CPU. Data sequence # 41 to data sequence # 44 excludes ECC data and includes only 64-bit data.

図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 data string # 11 to data string # 14 includes 64-bit data and 8-bit ECC data.

一方、例えば、読み出されたデータ列#11の中の予め定められた1ビットが、バススイッチにより接地電位にクランプされる。1ビットのクランプは、例えば、データバスの中の当該1ビットの信号が通過する信号線を、クランプ期間中だけ、バススイッチを用いて接地電位に接続することにより行われる。クランプ期間は、図9に示すように、データ列#11が出力される期間とほぼ一致する。図9において、接地電位は、太線で示される。   On the other hand, for example, one predetermined bit in the read data string # 11 is clamped to the ground potential by the bus switch. The 1-bit clamping is performed, for example, by connecting a signal line through which the 1-bit signal in the data bus passes to the ground potential using a bus switch only during the clamping period. As shown in FIG. 9, the clamp period substantially coincides with the period in which the data string # 11 is output. In FIG. 9, the ground potential is indicated by a bold line.

このクランプ操作により、クランプ操作された後のデータ列#21の予め定められた1ビットは、本来の値に拘らず、接地電位、換言すれば、「0」とされる。一方、クランプ期間は、次のデータ列#12の読出しのタイミング以前に終了するので、他のデータ列#22〜データ列#24には影響を与えない。データ列#21〜データ列#24については、図10に示す。   By this clamping operation, one predetermined bit of the data string # 21 after the clamping operation is set to the ground potential, in other words, “0” regardless of the original value. On the other hand, since the clamp period ends before the next data string # 12 is read, the other data strings # 22 to # 24 are not affected. The data string # 21 to the data string # 24 are illustrated in FIG.

なお、図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 data string # 21 to the data string # 24. , Only a predetermined 1-bit value that has been clamped is shown. In other words, the read data after clamping in FIG. 9 shows only the value of a predetermined 1-bit signal that has passed through the signal line clamped to the ground potential by the bus switch.

図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. Data string # 21 to data string # 24 are data string # 11 to data string # 14 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 data string # 21, as shown in the read data after clamping in FIG. 9, one predetermined bit is clamped to the ground potential regardless of the original data value. The As a result, the data string # 21 includes a 1-bit bit error. In other words, the data string # 21 is simulated fault data including a 1-bit bit error.

一方、残りのデータ列#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 data string # 22 to data string # 24 are not clamped and remain at the original data values as shown in the read data after clamping in FIG. In other words, the remaining data string # 22 to data string # 24 are directly input to the memory controller of the motherboard.

メモリコントローラは、データ列#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 data string # 31 and generates a corrected data string # 31 '.

メモリコントローラは、訂正したデータ列#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 data string # 32 to data string # 34 to the CPU. Further, the memory controller reports ECC error # 51 to, for example, a basic input output system (BIOS). In other words, the memory controller reports that the 1-bit bit error of the data string # 31 has been corrected. The BIOS holds the report received from the memory controller as an error log. As a result, as described above, it is confirmed that "one error correction is performed for a soft error (one error only) and one error log is reported" is correctly executed. Is done.

しかし、本発明者の検討によれば、従来の疑似故障ツールをより高速化されたメモリに使用して、誤り検出を再現しようとすると、図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 data string # 11 at the current bus switch switching speed. Occurs due to being.

図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 data string # 11 is clamped to the ground potential by the bus switch. By this clamping operation, one predetermined bit of the data string # 21 after the clamping operation is set to the ground potential, in other words, “0” regardless of the original value.

しかし、クランプ期間は、図11に示すように、データ列#11が出力される期間よりも長い。図11において、接地電位は、太線で示される。このため、クランプ期間は、次のデータ列#12の出力の期間、換言すれば、データ列#22の読出しのタイミングとなっても終了しない。この結果、データ列#21に続けて読み出されるデータ列#22においても、予め定められた1ビットが、バススイッチにより接地電位にクランプされる。このクランプ操作により、クランプ操作された後のデータ列#22の予め定められた1ビットは、本来の値に拘らず、接地電位、換言すれば、「0」とされる。   However, the clamp period is longer than the period during which the data string # 11 is output, as shown in FIG. In FIG. 11, the ground potential is indicated by a bold line. For this reason, the clamp period does not end even when the next data string # 12 is output, in other words, the timing of reading the data string # 22. As a result, also in the data string # 22 read after the data string # 21, a predetermined 1 bit is clamped to the ground potential by the bus switch. By this clamping operation, one predetermined bit of the data string # 22 after the clamping operation is set to the ground potential, in other words, “0” regardless of the original value.

なお、図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 data string # 21 to data string #. At 24, only a predetermined 1-bit value clamped is shown.

図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. Data string # 21 to data string # 24 are data string # 11 to data string # 14 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 data string # 21, as shown in the read data after clamping in FIG. 11, one predetermined bit is clamped to the ground potential. As a result, the data string # 21 includes a 1-bit bit error.

しかし、前述したように、クランプ期間は、図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 data string # 11 is output, as shown in FIG. 11, and therefore, in the data string # 22 read after the data string # 21, as shown in FIG. As shown in the read data after clamping, one predetermined bit is clamped to the ground potential. As a result, the two data strings # 21 and # 22 contain a 1-bit bit error.

このため、メモリコントローラは、データ列#31及びデータ列#32に含まれる1ビットのビットエラーを訂正して、訂正されたデータ列#31’及びデータ列#32’を生成する。また、メモリコントローラは、ECCエラー#51及びECCエラー#52を、例えばBIOSに報告する。   Therefore, the memory controller corrects the 1-bit bit error included in the data string # 31 and the data string # 32, and generates the corrected data string # 31 'and data string # 32'. Further, the memory controller reports ECC error # 51 and ECC error # 52 to, for example, the BIOS.

図13は、前述のテストにおいて読み出されるデータ列#11〜データ列#14の一例を示し、データ列#11〜データ列#14が図11及び図12に示す処理により変化する状態を示す。   FIG. 13 shows an example of the data string # 11 to data string # 14 read out in the above-described test, and shows a state in which the data string # 11 to data string # 14 are changed by the processing shown in FIGS.

なお、図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 data string # 11 to data string # 14 is clamped to “0”. In FIG. 13, “1” indicates that the data value is high level, “0” indicates that the data value is low level, and “d” indicates that the data value is don't care, In other words, it indicates that the value may be either “1” or “0”.

データ列#11〜データ列#14において、例えば、データ列#11及びデータ列#12の先頭のアドレスにおける先頭の1ビットの値が「1」であるとする。   In the data string # 11 to the data string # 14, for example, it is assumed that the value of the first 1 bit at the head addresses of the data string # 11 and the data string # 12 is “1”.

擬似故障ツールは、データ列#11の先頭のアドレスにおける先頭の1ビットを「0」にクランプして、1回のみのエラー、換言すれば、擬似故障データ列#21を生成する。しかし、前述したように、バススイッチの動作速度が遅いため、データ列#12の先頭のアドレスにおける先頭の1ビットも、「0」にクランプしてしまう。この結果、擬似故障データ列#22が生成される。   The simulated fault tool clamps the leading 1 bit in the leading address of the data string # 11 to “0” and generates an error only once, in other words, the simulated fault data string # 21. However, as described above, since the operation speed of the bus switch is slow, the first bit in the first address of the data string # 12 is also clamped to “0”. As a result, a simulated fault data string # 22 is generated.

これに応じて、メモリコントローラは、データ列#31及びデータ列#32の双方についてビットエラーを検出し、検出したビットエラーを訂正して、訂正されたデータ列#31’及びデータ列#32’を生成する。また、メモリコントローラは、2回のエラー発生をBIOSに報告する。   In response to this, the memory controller detects a bit error for both the data string # 31 and the data string # 32, corrects the detected bit error, and corrects the corrected data string # 31 ′ and data string # 32 ′. Is generated. The memory controller also reports the occurrence of two errors to the BIOS.

例えば、バススイッチのスイッチング速度は、バスイネーブル時間の最小値である、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 data string # 11.

このため、前述したように、実際には、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 server 1 and a simulated fault tool 3. The server 1 may be a personal computer, for example. The server 1 has, for example, a DIMM 4 as its main memory. In this embodiment, the DIMM 4 is composed of a plurality of DDR SDRAMs.

DIMM4は、サーバ1のマザーボードのメモリソケットに、装着される。   The DIMM 4 is attached to a memory socket on the motherboard of the server 1.

図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 server 1 and the DIMM 4. Therefore, in this case, the data bus 21, the address bus 22, and the control bus 23 connect the server 1 and the DIMM 4 via the simulated fault tool 3. The control bus 23 is a bus other than the data bus 21 and the address bus 22.

図1の例において、データバス21は、後述するように、64+8=72ビットのビット幅を有する。従って、DIMM4から読み出されるデータは、72ビットのデータである。データのビット幅は、これに限られず、種々の値であって良い。   In the example of FIG. 1, the data bus 21 has a bit width of 64 + 8 = 72 bits, as will be described later. Therefore, data read from the DIMM 4 is 72-bit data. The bit width of data is not limited to this, and may be various values.

サーバ1は、CPU11と、メモリコントローラ17と、キャッシュメモリ19とを含む。CPU11、メモリコントローラ17及びキャッシュメモリ19は、サーバ1のマザーボード上に設けられる。CPU11は、OS(オペレーティングシステム)12と、擬似故障処理プログラムを実行する。   The server 1 includes a CPU 11, a memory controller 17, and a cache memory 19. The CPU 11, memory controller 17 and cache memory 19 are provided on the motherboard of the server 1. The CPU 11 executes an OS (Operating System) 12 and a simulated fault processing program.

サーバ1は、例えばハードディスク装置のようなディスク5を含む。ディスク5は、サーバ1のマザーボード外に設けられる。ディスク5は、テストデータ51を格納する。テストデータ51は、予めディスク5に格納される。テストデータ51は、図2を参照して後述するように、予め定められたビットパターンを有する。   The server 1 includes a disk 5 such as a hard disk device. The disk 5 is provided outside the motherboard of the server 1. The disk 5 stores test data 51. Test data 51 is stored in the disk 5 in advance. The test data 51 has a predetermined bit pattern as will be described later with reference to FIG.

ディスク5に格納されたテストデータ51は、DIMM4の格納領域41に格納される。格納領域41は、予め定められた複数のアドレスを有する、連続した領域である。OS12が動作している間はDIMM4には種々のデータが格納されるが、このようなデータはメモリ検査に用いることができない。そこで、予め定められたアドレスに、予め定められたビットパターンを有するテストデータ51が格納される。これにより、予め定められたビットパターンを有するテストデータ51を用いてテストを実行することができる。   Test data 51 stored in the disk 5 is stored in the storage area 41 of the DIMM 4. The storage area 41 is a continuous area having a plurality of predetermined addresses. While the OS 12 is operating, various data are stored in the DIMM 4, but such data cannot be used for memory inspection. Therefore, test data 51 having a predetermined bit pattern is stored at a predetermined address. As a result, a test can be executed using the test data 51 having a predetermined bit pattern.

なお、DIMM4において、OS12を実現するプログラムは、格納領域42に格納される。格納領域42は、OS12を実現するプログラムを格納する専用の領域である。また、DIMM4において、擬似故障処理プログラムは、格納領域43に格納される。格納領域43は、種々のアプリケーションプログラムを格納する領域である。   In the DIMM 4, a program for realizing the OS 12 is stored in the storage area 42. The storage area 42 is a dedicated area for storing a program for realizing the OS 12. In the DIMM 4, the simulated fault processing program is stored in the storage area 43. The storage area 43 is an area for storing various application programs.

擬似故障ツール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 bus switch 31 and an address determination unit 32. The bus switch 31 is inserted into the data bus 21. A control bus 23 is connected to the bus switch 31. An address bus 22 and a control bus 23 are connected to the address determination unit 32. The address bus 22 and the control bus 23 are connected to the server 1 and the DIMM 4.

アドレス判定部32は、例えば、予めライトコマンド及びリードコマンドを保持し、これらとコントロールバス23上に出力された信号とを比較して、ライトコマンド及びリードコマンドを検出する。バススイッチ31は、例えば、予めライトコマンド及びリードコマンドを保持し、これらとコントロールバス23上に出力された信号とを比較して、ライトコマンド及びリードコマンドを検出する。   The address determination unit 32 holds, for example, a write command and a read command in advance, compares these with a signal output on the control bus 23, and detects the write command and the read command. For example, the bus switch 31 holds a write command and a read command in advance, and compares these with a signal output on the control bus 23 to detect the write command and the read command.

アドレス判定部32は、サーバ1からコントロールバス23を介してDIMM4へライトコマンドが出力された場合には、ライトコマンドを検出して、アドレス判定を行わない。また、バススイッチ31は、サーバ1からコントロールバス23を介してDIMM4へライトコマンドが出力された場合には、ライトコマンドを検出して、予め定められたビット位置に対応するスイッチを通過状態とし、クランプ状態としない。他のビット位置に対応するスイッチも、通過状態とされ、クランプ状態とされない。従って、この場合、DIMM4に書き込まれるデータは、そのままバススイッチ31を通過して、DIMM4に入力される。   When a write command is output from the server 1 to the DIMM 4 via the control bus 23, the address determination unit 32 detects the write command and does not perform address determination. In addition, when a write command is output from the server 1 to the DIMM 4 via the control bus 23, the bus switch 31 detects the write command and sets a switch corresponding to a predetermined bit position to a passing state. Do not clamp. The switches corresponding to the other bit positions are also passed and not clamped. Therefore, in this case, the data written to the DIMM 4 passes through the bus switch 31 and is input to the DIMM 4 as it is.

アドレス判定部32は、サーバ1からコントロールバス23を介してDIMM4へリードコマンドが出力された場合には、リードコマンドを検出して、アドレス判定を行う。また、バススイッチ31は、アドレス判定部32におけるアドレス判定の結果に応じて、予め定められたビット位置に対応するスイッチをクランプ状態とし、通過状態としない。従って、この場合、DIMM4から読み出されたデータ、例えばテストデータ51は、予め定められたビット位置の値がクランプにより変更され、メモリコントローラ17に入力される。   When a read command is output from the server 1 to the DIMM 4 via the control bus 23, the address determination unit 32 detects the read command and performs address determination. Further, the bus switch 31 puts a switch corresponding to a predetermined bit position in a clamped state according to the result of the address determination in the address determining unit 32, and does not pass it. Accordingly, in this case, the data read from the DIMM 4, for example, the test data 51 is input to the memory controller 17 with the value of a predetermined bit position changed by clamping.

バススイッチ31は、DIMM4に接続され、スイッチ群を含む。このスイッチ群は、DIMM4から読み出されるデータのビット毎に設けられた複数のスイッチを含む。複数のスイッチについては、図4を参照して後述する。従って、バススイッチ31は、予め定められたビット位置に対応するスイッチを含む。   The bus switch 31 is connected to the DIMM 4 and includes a switch group. This switch group includes a plurality of switches provided for each bit of data read from the DIMM 4. The plurality of switches will be described later with reference to FIG. Accordingly, the bus switch 31 includes a switch corresponding to a predetermined bit position.

各々のスイッチは、クランプ状態又は通過状態のいずれかの状態とされる。クランプ状態は、当該スイッチの出力を、第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 address determination unit 32 holds a predetermined address. The predetermined address is a fixed address. The fixed address is fixedly set in, for example, a register included in the address determination unit 32. As the fixed address, for example, “address 0” is used. The address “address 0” corresponds to the head address in the data string # 11 shown in FIG. The predetermined address may be set from the outside of the simulated fault tool 3 by using, for example, a dip switch.

アドレス判定部32は、リードコマンドを検出した場合、メモリクロックの立ち上がりに同期して、アドレスバス22上に出力されたアドレスを取込む。アドレス判定部32は、予め定められたアドレスと、取込んだアドレスとを比較することにより、予め定められたアドレスであるか否かを検出する。   When the address determination unit 32 detects a read command, the address determination unit 32 takes in the address output on the address bus 22 in synchronization with the rising edge of the memory clock. The address determination unit 32 detects whether or not the address is a predetermined address by comparing the predetermined address with the fetched address.

アドレス判定部32は、予め定められたアドレスに対するリードコマンドを検出した場合に、コントロールバス23上を転送されるメモリクロックに同期した予め定められたタイミングで、バススイッチ31に各々のスイッチの制御信号を入力する。これにより、バススイッチ31において、予め定められたビット位置に対応するスイッチが、クランプ状態に切替えられ、予め定められたビット位置以外のビット位置に対応するスイッチが、通過状態のままとされる。   When the address determination unit 32 detects a read command for a predetermined address, the control signal of each switch is sent to the bus switch 31 at a predetermined timing synchronized with the memory clock transferred on the control bus 23. Enter. Thereby, in the bus switch 31, the switch corresponding to the predetermined bit position is switched to the clamped state, and the switch corresponding to the bit position other than the predetermined bit position is kept in the passing state.

また、アドレス判定部32は、予め定められたアドレスを検出しない場合に、コントロールバス23上を転送されるメモリクロックに同期した予め定められたタイミングで、バススイッチ31に各々のスイッチの制御信号を入力する。これにより、バススイッチ31において、予め定められたビット位置に対応するスイッチが、通過状態に切替えられ、予め定められたビット位置以外のビット位置に対応するスイッチが、通過状態のままとされる。   In addition, when the address determination unit 32 does not detect a predetermined address, the control signal of each switch is sent to the bus switch 31 at a predetermined timing synchronized with the memory clock transferred on the control bus 23. input. Thereby, in the bus switch 31, the switch corresponding to the predetermined bit position is switched to the passing state, and the switch corresponding to the bit position other than the predetermined bit position is left in the passing state.

ここで、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 test data 51 is started from the DIMM 4, as described above, the next data string (second data string # 2) is synchronized with the falling edge of the memory clock at which the output of the test data 51 is started. 12) is output. For this reason, a switch corresponding to a predetermined bit position is set in a clamped state in an output period of a certain data string (data string # 11), and further, prior to output of the next data string (data string # 12). Thus, the switch corresponding to the predetermined bit position cannot be switched to the passing state. This is because the response speed of the switch of the bus switch 31 is slow. The above will be described later with reference to FIG.

サーバ1の電源が投入されて、CPU11がOS12を起動し、擬似故障処理プログラムを起動する。   When the power of the server 1 is turned on, the CPU 11 activates the OS 12 and activates the simulated fault processing program.

CPU11は、擬似故障処理プログラムに従って、ディスク5に格納されたテストデータ51を、主メモリであるDIMM4にロードする。テストデータ51は、予め定められたデータパターンを有するデータである。ロード先のアドレスは、予め定められたアドレス、換言すれば、格納領域41のアドレスである。これにより、DIMM4において、特定のアドレスに特定のデータパターンを有するテストデータ51が格納される。
テストデータ51を格納後、キャッシュメモリ19に格納された、データ列#11とデータ列#12〜データ列#14とを、キャッシュメモリ19から追い出す処理を行う。具体的には、テストデータ51を格納したアドレス以外のDIMM4のデータを所定量参照する。
The CPU 11 loads the test data 51 stored in the disk 5 into the DIMM 4 as the main memory according to the simulated fault processing program. The test data 51 is data having a predetermined data pattern. The load destination address is a predetermined address, in other words, the address of the storage area 41. As a result, test data 51 having a specific data pattern at a specific address is stored in the DIMM 4.
After storing the test data 51, the data string # 11 and the data string # 12 to the data string # 14 stored in the cache memory 19 are expelled from the cache memory 19. Specifically, a predetermined amount of data of the DIMM 4 other than the address storing the test data 51 is referred to.

また、CPU11は、擬似故障処理プログラムに従って、擬似故障ツール3を介して、データ列#11〜データ列#14を、DIMM4から読み出す。   Further, the CPU 11 reads the data string # 11 to the data string # 14 from the DIMM 4 via the simulated fault tool 3 according to the simulated fault processing program.

CPU11は、擬似故障処理プログラムに従って、メモリコントローラ17に対して、予め定められたアドレスである格納領域41のアドレスを指定して、DIMM4からのデータの読出しを要求する。これに応じて、メモリコントローラ17は、制御信号とアドレス信号を形成して、制御信号をコントロールバス23を介してDIMM4に送信し、アドレス信号をアドレスバス22を介してDIMM4に送信する。   The CPU 11 requests the memory controller 17 to read data from the DIMM 4 by designating the address of the storage area 41 that is a predetermined address to the memory controller 17 according to the simulated fault processing program. In response to this, the memory controller 17 forms a control signal and an address signal, transmits the control signal to the DIMM 4 via the control bus 23, and transmits the address signal to the DIMM 4 via the address bus 22.

これに応じて、DIMM4は、指定されたアドレスである格納領域41からテストデータを読出して、データバス21を介して、メモリコントローラ17に送信する。この時、テストデータは、擬似故障ツール3に入力される。   In response to this, the DIMM 4 reads the test data from the storage area 41 that is the designated address, and transmits it to the memory controller 17 via the data bus 21. At this time, the test data is input to the simulated fault tool 3.

擬似故障ツール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 bus switch 31 to the clamped state. As a result, the simulated fault tool 3 uses the bus switch 31 to change the first value of a predetermined bit position, for example “1”, into the second value, for example “0”, in the read data string # 11. To generate false fault data for the data string # 11.

また、擬似故障ツール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 bus switch 31 from the clamped state to the passing state in parallel with the reading of the data row # 12 to the data row # 14. As a result, the simulated fault tool 3 uses the bus switch 31 to determine in advance when the switch corresponding to the predetermined bit position is in the clamped state in the read data string # 12 to data string # 14. The second value of the assigned bit position, eg “0”, is clamped to the second value, eg “0”. Further, when the switch corresponding to the predetermined bit position is in the passing state, the simulated fault tool 3 passes the second value of the predetermined bit position, for example, “0” as it is. As a result, data string # 12 to data string # 14 are output.

具体的には、アドレス判定部32は、予め定められたアドレスを検出した場合に、バススイッチ31において、予め定められたビット位置に対応するスイッチを、クランプ状態に切替える。これにより、擬似故障データが生成される。   Specifically, when the address determination unit 32 detects a predetermined address, the bus switch 31 switches the switch corresponding to the predetermined bit position to the clamped state. Thereby, simulated fault data is generated.

一方、アドレス判定部32は、予め定められたアドレスを検出しない場合に、予め定められたビット位置に対応するスイッチを、通過状態に切替える。これにより、擬似故障データは生成されない。これにより、DIMM4から出力されたデータが、そのままメモリコントローラ17に入力される。   On the other hand, when the address determination unit 32 does not detect a predetermined address, the address determination unit 32 switches the switch corresponding to the predetermined bit position to the passing state. As a result, simulated fault data is not generated. As a result, the data output from the DIMM 4 is input to the memory controller 17 as it is.

メモリコントローラ17は、ECC回路18において、受信したデータに基づいて、2ビットのエラー検出及び1ビットのエラー訂正を実行して、誤りを訂正したデータをCPU11に入力する。また、メモリコントローラ17は、2ビットのエラー検出及び1ビットのエラー訂正を実行した結果を、例えばBIOS13に報告する。   The memory controller 17 executes 2-bit error detection and 1-bit error correction based on the received data in the ECC circuit 18 and inputs the error-corrected data to the CPU 11. Further, the memory controller 17 reports the result of executing 2-bit error detection and 1-bit error correction to, for example, the BIOS 13.

図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 data string # 11 to the data string # 14 read in the above-described test, and shows a state in which the data string # 11 to the data string # 14 change. In FIG. 2, “1” indicates that the data value is high level, “0” indicates that the data value is low level, and “d” indicates that the data value is don't care. For example, it indicates that the value may be either “1” or “0”.

テストデータ51は、前述したように、DIMM4に格納される。テストデータ51は、複数のデータ列#11〜データ列#14を含む。複数のデータ列#11〜データ列#14の各々は、並列に読み出される複数のビットを含む。   The test data 51 is stored in the DIMM 4 as described above. Test data 51 includes a plurality of data strings # 11 to # 14. Each of the plurality of data strings # 11 to # 14 includes a plurality of bits read in parallel.

テストデータ51は、予め定められたビットパターンを有する。即ち、複数のデータ列#11〜データ列#14の中で、第1のデータ列#11は、予め定められたビット位置に、予め定められた第1の値を有する。また、複数のデータ列#11〜データ列#14の中で、少なくとも第1のデータ列#11の次の第2のデータ列#12は、予め定められたビット位置に、第2の値を有する。   The test data 51 has a predetermined bit pattern. That is, among the plurality of data strings # 11 to # 14, the first data string # 11 has a predetermined first value at a predetermined bit position. Further, among the plurality of data strings # 11 to # 14, at least the second data string # 12 next to the first data string # 11 has the second value at a predetermined bit position. Have.

第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 test data 51 includes a data string # 11 that is a first data string, and a data string # 12 to a data string # 14 that are a plurality of second data strings. The data string # 11 is data including a plurality of bits for error detection or error correction, and has a first value, for example, “1” at a predetermined bit position. Each of the data string # 12 to data string # 14 is data that is read after the data string # 11, and includes data including a plurality of bits for error detection or error correction, and is a predetermined bit. The position has a second value, for example “0”.

例えば、データ列#11は、DIMM4の予め定められたアドレスに格納される。データ列#12〜データ列#14は、DIMM4において、データ列#11に連続して格納される。換言すれば、データ列#11〜データ列#14は、予め定められた1個の格納領域41に連続して格納される。   For example, the data string # 11 is stored at a predetermined address of the DIMM 4. Data string # 12 to data string # 14 are continuously stored in data string # 11 in DIMM4. In other words, the data string # 11 to the data string # 14 are continuously stored in one predetermined storage area 41.

データ列#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 data string # 11 to data string # 14 is written by 8 bits, in other words, 1 byte. An address is assigned for each byte. Therefore, if the address of the first byte of the data string # 11 is “0 address”, the address of the last 1 byte of the data string # 11 is “7 address”. In the data string # 12, the address of the first 1 byte is “8th address”, and the address of the last 1 byte is “15th address”. Since each of the data string # 11 to data string # 14 shown in FIG. 2 is 64 bits, it is data excluding ECC data. Data string # 11 is the first data string and is the data read first. Data string # 12 to data string # 14 are the second data string, and are data read after data string # 11.

なお、データ列#11の先頭のアドレスにおける先頭の1ビットは、電源電位、換言すれば、「1(ハイレベル)」にクランプされるようにしても良い。換言すれば、サーバ1における2値信号のいずれか一方の値に固定されるようにすれば良い。   Note that the first bit in the first address of the data string # 11 may be clamped to the power supply potential, in other words, “1 (high level)”. In other words, what is necessary is just to fix to any one value of the binary signal in the server 1.

また、「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 head 1 bit at any address.

DIMM4に格納されたテストデータ51は、CPU11により、擬似故障ツール3を介して、読み出される。これにより、テストデータ51は、擬似故障ツール3に入力される。   The test data 51 stored in the DIMM 4 is read by the CPU 11 via the simulated fault tool 3. As a result, the test data 51 is input to the simulated fault tool 3.

擬似故障ツール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 test data 51 read from the DIMM 4. In other words, as described below, the first value “1” of the predetermined bit position of the first data string # 11 is changed to the second value “0”.

具体的には、前述したように、データ列#11において、先頭のアドレスが、予め定められたアドレスとされる。従って、データ列#11の読出しが指示されると、アドレス判定部32により、予め定められたアドレスが検出され、バススイッチ31において、予め定められたビット位置に対応するスイッチが、クランプ状態に切替えられる。通過状態からクランプ状態に切替えられたスイッチは、スイッチ切替えの最も早いタイミングで、再度、通過状態に切り替えられる。   Specifically, as described above, in the data string # 11, the head address is a predetermined address. Accordingly, when reading of the data string # 11 is instructed, the address determination unit 32 detects a predetermined address, and the bus switch 31 switches the switch corresponding to the predetermined bit position to the clamped state. It is done. The switch switched from the passing state to the clamped state is again switched to the passing state at the earliest timing of switch switching.

データ列#11〜データ列#14において、例えば、先頭のデータ列#11において、先頭のアドレスにおける先頭の1ビットの値が「1」、換言すれば、クランプ後の値「0」を反転した値とされる。データ列#11に続けて読み出されるデータ列#12〜データ列#14において、先頭のアドレスにおける先頭の1ビットの値が「0」、換言すれば、クランプ後の値「0」と等しい値とされる。   In the data string # 11 to the data string # 14, for example, in the leading data string # 11, the value of the leading 1 bit at the leading address is “1”, in other words, the value “0” after clamping is inverted. Value. In the data string # 12 to the data string # 14 read after the data string # 11, the value of the first 1 bit at the head address is “0”, in other words, the value equal to the value “0” after clamping. Is done.

なお、先頭のアドレスにおける先頭の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 bus switch 31 is about the data reading speed from the DIMM 4, only in the data string # 12 next to the data string # 11, the value of the leading 1 bit at the leading address is set to “0”. You should do so. Therefore, when the value of the leading 1 bit at the leading address in the data string # 11 is clamped to “0”, at least in the next one data string # 12 read continuously in the data string # 11, The value of the first 1 bit in the first address may be a value “0” after clamping.

逆に、バーストモードにおいて連続して読み出されるデータは、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 bus switch 31 is considerably slower than the data reading speed from the DIMM 4, for example, in the 4 to 5 data read after the data string # 11, The value of the first 1 bit may be “0”.

擬似故障ツールは、データ列#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 data string # 11 to “0” and generates an error only once, in other words, the simulated fault data string # 21. At this time, as described above, since the operation speed of the bus switch 31 is low, the leading 1 bit in the leading address of the data string # 12 is also clamped to “0”. However, the value of the leading 1 bit at the leading address of the data string # 12 is originally “0”. Therefore, even if it is clamped to “0”, the value of the first 1 bit in the first address of the data string # 12 does not change to “0”, and there is no influence of clamping.

この結果、擬似故障データ列#22が生成されるが、生成された擬似故障データ列#22は、元のデータ列#22と等しい。従って、擬似故障データ列#22は生成されないに等しい。換言すれば、データ列#22に対応するデータ列#32においては、ビットエラーは検出されない。   As a result, a simulated fault data string # 22 is generated. The generated simulated fault data string # 22 is equal to the original data string # 22. Therefore, the simulated fault data sequence # 22 is equivalent to not generated. In other words, no bit error is detected in the data string # 32 corresponding to the data string # 22.

以上のように、テストデータ51は、DIMM4から読み出され、第1のデータ列#11の予め定められたビット位置の値を変更される。この後、テストデータ51は、メモリコントローラ17に入力される。これにより、メモリコントローラ17のECC回路18において、テストデータ51を用いてDIMM4についてのテストが実行される。   As described above, the test data 51 is read from the DIMM 4 and the value of the predetermined bit position of the first data string # 11 is changed. Thereafter, the test data 51 is input to the memory controller 17. As a result, the test on the DIMM 4 is executed using the test data 51 in the ECC circuit 18 of the memory controller 17.

具体的には、メモリコントローラ17は、データ列#31のみについてビットエラーを検出し、検出したビットエラーを訂正して、訂正されたデータ列#31’を生成する。また、メモリコントローラ17は、1回のエラー発生をBIOSに報告する。   Specifically, the memory controller 17 detects a bit error only for the data string # 31, corrects the detected bit error, and generates a corrected data string # 31 '. Further, the memory controller 17 reports the occurrence of one error to the BIOS.

これにより、1回のバススイッチ31によるクランプの期間が、データ列#11の出力の期間を超えてしまう場合においても、1回のみのビットエラーが発生し、1回のみのECCエラーがBIOSに報告される。従って、「ソフトエラー(1回のみのエラー)に対して1回のECC訂正が行なわれ、1回のエラーログが報告される」ことが、正しく実行されたことは確認することができる。   As a result, even when the clamping period by one bus switch 31 exceeds the output period of the data string # 11, only one bit error occurs, and only one ECC error occurs in the BIOS. To be reported. Therefore, it can be confirmed that “one error correction is performed for a soft error (one error only) and one error log is reported” is correctly executed.

この後、エラー訂正されたテストデータ51は、擬似故障処理プログラムの読出処理部15により、キャッシュメモリ19に格納される。この後、キャッシュメモリ19に格納されたエラー訂正されたテストデータ51は、擬似故障処理プログラムのキャッシュ処理部16により、キャッシュメモリ19から追い出される。これにより、擬似故障処理プログラムの読出処理部15がテストデータ51の読出コマンドを再度実行した場合であっても、テストデータ51を、キャッシュメモリ19からではなく、DIMM4から読み出すことができる。   After that, the error-corrected test data 51 is stored in the cache memory 19 by the read processing unit 15 of the simulated fault processing program. Thereafter, the error-corrected test data 51 stored in the cache memory 19 is evicted from the cache memory 19 by the cache processing unit 16 of the simulated fault processing program. Thereby, even when the read processing unit 15 of the simulated fault processing program executes the read command for the test data 51 again, the test data 51 can be read from the DIMM 4 instead of from the cache memory 19.

図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 data string # 11 is clamped to the ground potential by the bus switch 31. By this clamping operation, one predetermined bit of the data string # 21 after the clamping operation is set to the ground potential, in other words, “0” regardless of the original value.

なお、データの読出しのモードは、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 data string # 11, as described above, the value of the first 1 bit in the first address is set to “1”. On the other hand, as described above, in the data string # 12 to data string # 14 read after the data string # 11, the value of the first 1 bit in the head address is set to “0”.

ここで、クランプ期間は、図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 data string # 11 is output. In FIG. 3, the ground potential is indicated by a bold line. For this reason, the clamp period does not end even when the next data string # 12 is output, in other words, the timing of reading the data string # 22. Therefore, the first 1 bit in the first address of the data string # 12 is also clamped to “0”. However, as described above, the value of the leading 1 bit in the leading address of the data string # 12 is originally “0”. Therefore, even if it is clamped to “0”, the value of the first 1 bit in the first address of the data string # 12 does not change to “0”, and there is no influence of clamping.

なお、図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 data string # 21 to data string #. At 24, only a predetermined 1-bit value clamped is shown.

図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 data string # 11 is clamped to “0” as shown in FIG. Therefore, the switch SW corresponding to the first bit in the first address of the data string # 11 in the bus switch 31 is connected to the ground potential, in other words, “0” via the pull-down resistor R. In other words, the switch SW corresponding to the first 1 bit in the first address of the data string # 11 is set to the clamped state. As a result, in the data string # 21, the value of the leading 1 bit at the leading address is set to “0”. The switch SW in the bus switch 31 is composed of, for example, one or a plurality of MOSFETs.

なお、図4(A)において、データ列#21においては、ECC用データを省略している。また、図4(A)において、スイッチSWは、データ列#21において、先頭のアドレスにおける先頭の1ビットに対応するスイッチと、最後のアドレスにおける最後の1ビットに対応するスイッチのみを示す。   In FIG. 4A, ECC data is omitted in the data string # 21. In FIG. 4A, the switch SW indicates only the switch corresponding to the first 1 bit in the first address and the switch corresponding to the last 1 bit in the last address in the data string # 21.

バススイッチ31のスイッチング速度が遅いので、図4(B)に示すように、データ列#12の読出しのタイミングとなっても、データ列#12の先頭のアドレスにおける先頭の1ビットに対応するスイッチSWが、接地電位に接続された状態である。これにより、データ列#22においても、先頭のアドレスにおける先頭の1ビットの値が「0」とされる。   Since the switching speed of the bus switch 31 is slow, as shown in FIG. 4B, the switch corresponding to the leading 1 bit in the leading address of the data string # 12 even when the timing of reading the data string # 12 is reached. SW is connected to the ground potential. As a result, also in the data string # 22, the value of the leading 1 bit at the leading address is set to “0”.

この後、バススイッチ31において、データ列#12の先頭のアドレスにおける先頭の1ビットに対応するスイッチSWが、クランプ状態から、当該スイッチSWの入力をそのまま出力する通過状態に切替えられる。これにより、データ列#12の先頭のアドレスにおける先頭の1ビットに対応するスイッチSWは、当該スイッチSWの入力をそのまま出力する。   Thereafter, in the bus switch 31, the switch SW corresponding to the first 1 bit in the first address of the data string # 12 is switched from the clamped state to a passing state in which the input of the switch SW is output as it is. As a result, the switch SW corresponding to the first bit in the first address of the data string # 12 outputs the input of the switch SW as it is.

従って、例えば、データ列#11の読出しのタイミングとなると、データ列#13の先頭のアドレスにおける先頭の1ビットの値「0」は、図4(C)に示すように、「0」にクランプされずに、スイッチSWをそのまま通過する。これにより、データ列#23において、先頭のアドレスにおける先頭の1ビットの値が「0」のままとされる。   Therefore, for example, when the read timing of the data string # 11 is reached, the value of the leading 1 bit “0” at the leading address of the data string # 13 is clamped to “0” as shown in FIG. Instead, it passes through the switch SW as it is. As a result, in the data string # 23, the value of the first 1 bit at the first address remains “0”.

図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 data string # 21, as shown in the read data after clamping in FIG. 3, the leading one bit of the leading address is set to the ground potential regardless of the original data value. Clamped. As a result, the data string # 21 includes a 1-bit bit error. In other words, the data string # 21 is simulated fault data including a 1-bit bit error. This 1-bit bit error is a pseudo error generated instead of an actual soft error.

この時、クランプ期間は、図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 data string # 11 is output. Therefore, in the data string # 22 read after the data string # 21, the read after clamping shown in FIG. As shown in the data, the first bit of the first address is clamped to the ground potential.

しかし、前述したように、データ列#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 data string # 12 is originally “0”. Therefore, even if it is clamped to “0”, the value of the first 1 bit in the first address of the data string # 12 does not change to “0”, and there is no influence of clamping. Therefore, in the data string # 22, the first 1 bit in the first address is clamped to “0”, but it does not include a 1-bit bit error. As a result, the simulated fault data sequence # 22 is generated, but the generated simulated fault data sequence # 22 is equal to the original data sequence # 22. Therefore, the simulated fault data sequence # 22 is equivalent to not generated.

残りのデータ列#23〜データ列#24は、図3のクランプ期間に示すように、クランプ期間の終了後に読み出される。従って、残りのデータ列#23〜データ列#24は、図3のクランプ後のリードデータに示すように、クランプされずに、本来のデータの値のままとされる。換言すれば、残りのデータ列#23〜データ列#24は、そのままマザーボードのメモリコントローラに入力される。   The remaining data string # 23 to data string # 24 are read after the end of the clamp period, as shown in the clamp period of FIG. Therefore, the remaining data string # 23 to data string # 24 are not clamped as shown in the read data after clamping in FIG. In other words, the remaining data string # 23 to data string # 24 are directly input to the memory controller of the motherboard.

メモリコントローラ17は、ECC回路18において、データ列#31〜データ列#34について、各々に含まれるECC用データを用いて、2ビットのエラー検出及び1ビットのエラー訂正を実行して、誤りを訂正した64ビットのデータをCPUに入力する。図1の例では、メモリコントローラ17は、ECC回路18において、データ列#31に含まれる1ビットのビットエラーを訂正して、訂正されたデータ列#31’を生成する。一方、メモリコントローラ17は、データ列#32にはビットエラーが含まれないので、データ列#32についてはビットエラーの訂正は実行しない。   The memory controller 17 performs 2-bit error detection and 1-bit error correction using the ECC data included in each of the data string # 31 to data string # 34 in the ECC circuit 18, and corrects the error. The corrected 64-bit data is input to the CPU. In the example of FIG. 1, the memory controller 17 corrects a 1-bit bit error included in the data string # 31 in the ECC circuit 18 to generate a corrected data string # 31 '. On the other hand, since the data string # 32 does not include a bit error, the memory controller 17 does not correct the bit error for the data string # 32.

メモリコントローラ17は、訂正したデータ列#31’及びデータ列#32〜データ列#34をCPU11に入力する。また、メモリコントローラ17は、ECCエラー#51を、例えばBIOS13に報告する。換言すれば、メモリコントローラ17は、データ列#31の1ビットのビットエラーを訂正したことを、報告する。BIOS13は、メモリコントローラ17からの受信した報告を、エラーログとして保持する。これにより、前述したように、「ソフトエラー(1回のみのエラー)に対して1回のECC訂正が行なわれ、1回のエラーログが報告される」ことが、正しく実行されたことが確認される。   The memory controller 17 inputs the corrected data string # 31 'and data string # 32 to data string # 34 to the CPU 11. Further, the memory controller 17 reports the ECC error # 51 to, for example, the BIOS 13. In other words, the memory controller 17 reports that the 1-bit bit error of the data string # 31 has been corrected. The BIOS 13 holds the report received from the memory controller 17 as an error log. As a result, as described above, it is confirmed that "one error correction is performed for a soft error (one error only) and one error log is reported" is correctly executed. Is done.

図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 storage area 41 having a predetermined physical address in the DIMM 4 which is the main memory (step S1), and then determines the storage area 41 having the physical address mapped in memory. The written test data 51 is written (step S2). As a result, the test data 51 is stored in the DIMM 4 at a predetermined address.

擬似故障処理プログラムが、キャッシュ処理部16を制御して、DIMM4において、リードエリアとしてキャッシュメモリ19のメモリ容量以上のサイズの領域(仮想メモリ)を獲得する(ステップS3)。   The simulated fault processing program controls the cache processing unit 16 and acquires an area (virtual memory) having a size larger than the memory capacity of the cache memory 19 as a read area in the DIMM 4 (step S3).

獲得した仮想メモリの内容を読出して、キャッシュメモリ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 test data 51 copied to the cache memory 19 is evicted from the cache memory 19.

擬似故障処理プログラムが、読出処理部15を制御して、予め定められた物理アドレスから、予め定められたテストデータ51を読み出す(ステップS5)。予め定められたアドレスからテストデータ51が、キャッシュメモリ19ではなく、DIMM4から読み出される。   The simulated fault processing program controls the reading processing unit 15 to read predetermined test data 51 from a predetermined physical address (step S5). Test data 51 is read from the DIMM 4 instead of the cache memory 19 from a predetermined address.

以上は、メモリコントローラ17が、ECC回路18において、データ列#31に含まれる1ビットのビットエラーを訂正して、訂正されたデータ列#31’を生成する例である。   The above is an example in which the memory controller 17 corrects a 1-bit bit error included in the data string # 31 and generates a corrected data string # 31 'in the ECC circuit 18.

しかし、メモリコントローラ17が、ECC回路18において、データ列#31に含まれるECC用データを用いて、2ビットのエラー検出を実行して、検出したエラーをBIOSに報告するようにしても良い。   However, the memory controller 17 may execute 2-bit error detection using the ECC data included in the data string # 31 in the ECC circuit 18 and report the detected error to the BIOS.

この場合、第1のデータ列であるデータ列#11は、2ヶ所の予め定められたビット位置に、第1の値、例えば「1」を有するようにされる。また、第2のデータ列であるデータ列#12〜データ列#14は、2ヶ所の予め定められたビット位置に、第2の値、例えば「0」を有するようにされる。   In this case, the data string # 11 that is the first data string has a first value, for example, “1” at two predetermined bit positions. The data string # 12 to data string # 14, which are the second data strings, have a second value, for example “0”, at two predetermined bit positions.

また、擬似故障ツール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 data string # 11 from the DIMM 4, the simulated fault tool 3 sets the first values at two predetermined bit positions in the read data string # 11 to the second value, respectively. Clamp to a value, eg "0". Thereby, simulated fault data for the data string # 11 including a 2-bit bit error is generated.

この後、擬似故障処理プログラムが、第2のデータ列であるデータ列#12〜データ列#14をDIMM4から読み出す。擬似故障ツール3は、データ列#12〜データ列#14の読出しと並列して、複数の予め定められたビット位置に対応するスイッチを、クランプ状態から、通過状態に切替える。   Thereafter, the simulated fault processing program reads data string # 12 to data string # 14, which are the second data string, from the DIMM 4. The simulated fault tool 3 switches the switches corresponding to a plurality of predetermined bit positions from the clamped state to the passing state in parallel with the reading of the data row # 12 to the data row # 14.

この結果、擬似故障ツール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 data string # 12 to data string # 14. If the second value “0” of each bit position is clamped to the second value “0”, and the switches corresponding to the two predetermined bit positions are in the passing state, the two positions The second value “0” of the predetermined bit position is passed as it is. As a result, data string # 12 to data string # 14 are output.

これにより、メモリコントローラ17は、ECC回路18において、データ列#31に含まれるECC用データを用いて、2ビットのエラー検出を実行して、検出したエラーをBIOSに報告することができる。   As a result, the memory controller 17 can execute 2-bit error detection using the ECC data included in the data string # 31 in the ECC circuit 18 and report the detected error to the BIOS.

なお、データ列#11〜データ列#14において、第1の値を有する、予め定められたビット位置の数は、2ヶ所に限られず、3ヶ所以上の複数であっても良い。   Note that, in the data string # 11 to the data string # 14, the number of predetermined bit positions having the first value is not limited to two, and may be a plurality of three or more.

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 disks 11 CPU
12 OS
13 BIOS
14 Pseudo Fault Processing Unit 15 Read Processing Unit 16 Cache Processing Unit 17 Memory Controller 18 ECC Circuit 19 Cache Memory 21 Data Bus 22 Address Bus 23 Control Bus 31 Bus Switch 32 Address Determination Unit 51 Test Data

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:
JP2010141328A 2010-06-22 2010-06-22 Error correction test method Expired - Fee Related JP5510107B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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