JP5201597B2 - Memory initialization circuit, memory initialization method, and information processing apparatus - Google Patents

Memory initialization circuit, memory initialization method, and information processing apparatus Download PDF

Info

Publication number
JP5201597B2
JP5201597B2 JP2009151141A JP2009151141A JP5201597B2 JP 5201597 B2 JP5201597 B2 JP 5201597B2 JP 2009151141 A JP2009151141 A JP 2009151141A JP 2009151141 A JP2009151141 A JP 2009151141A JP 5201597 B2 JP5201597 B2 JP 5201597B2
Authority
JP
Japan
Prior art keywords
memory
initialization
data
memory initialization
software
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
JP2009151141A
Other languages
Japanese (ja)
Other versions
JP2011008518A (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.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno 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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2009151141A priority Critical patent/JP5201597B2/en
Publication of JP2011008518A publication Critical patent/JP2011008518A/en
Application granted granted Critical
Publication of JP5201597B2 publication Critical patent/JP5201597B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、メモリ初期化回路、メモリ初期化方法、及び情報処理装置に関する。   The present invention relates to a memory initialization circuit, a memory initialization method, and an information processing apparatus.

従来、メモリデータの初期化は、システム立ち上げ時にECC(Error Correcting Code:誤り訂正符号)とデータパターンをメモリの全ワード(Word)に書き込むことによって実施され、初期化完了後、システム運用を始めていた。   Conventionally, initialization of memory data is performed by writing ECC (Error Correcting Code) and data pattern to all words (Word) in the memory at the time of system startup. It was.

しかし、従来のメモリ初期化方法では、ソフトウエアにバグがあり、メモリにデータを書き込む前に、メモリリードを行った場合、初期化時に既にECCとデータが正しく書き込まれているため、運用中にソフトウエアが未書き込みワードを読み出してもハードウエア(HW)ではバグを検出できず、ソフトウエア(SW)にデータチェック記述がなければ、誤動作したままとなり、ソフトウエアのバグは発見されなかった。   However, in the conventional memory initialization method, there is a bug in the software, and if the memory read is performed before data is written to the memory, the ECC and data are already correctly written at the time of initialization. Even if the software reads an unwritten word, the hardware (HW) cannot detect a bug, and if the software (SW) does not have a data check description, it remains malfunctioning and no software bug has been found.

これに関し、特許文献1には、FB−DIMM(Fully Buffered Dual Inline Memory Module)のメモリコントローラを使用して、パラレルにメモリ初期化を実施する方法が記載されている。また、特許文献2には、個別識別番号と誤り訂正符号を使用して、変換したデータを記憶手段に保持させることで、異なる個別識別番号からのアクセスを保護する装置が記載されている。   In this regard, Patent Document 1 describes a method of performing memory initialization in parallel using a memory controller of FB-DIMM (Fully Buffered Dual Inline Memory Module). Patent Document 2 describes an apparatus that protects access from different individual identification numbers by using an individual identification number and an error correction code to store converted data in a storage unit.

特開2008−262325号公報JP 2008-262325 A 特開平04−310026号公報Japanese Patent Laid-Open No. 04-310026

メモリ初期化に関しては、高速化が求められており、特許文献1は、メモリの初期化の高速化機能を実現するものであるが、ソフトウエアバグをハードウエア(HW)的に検出するものではない。また、特許文献2は、データ書き込み時に個別識別番号を用いて、データを符号化することにより、データ破壊を防ぐものであり、ソフトウエアバグをハードウエア的に検出するものではない。   With regard to memory initialization, high speed is required, and Patent Document 1 realizes a high speed function of memory initialization, but does not detect a software bug in hardware (HW). Absent. Further, Patent Document 2 prevents data destruction by encoding data using an individual identification number when writing data, and does not detect software bugs in hardware.

本発明の目的は、上記課題を解決し、ソフトウエアのバグをハードウエアで検出することができるメモリ初期化回路を提供することにある。   An object of the present invention is to provide a memory initialization circuit capable of solving the above-described problems and detecting a software bug with hardware.

上記目的を達成するため、本発明に係るメモリ初期化回路は、特定のデータパターンを持つ初期化データを生成し、メモリにECCとデータを書き込んで初期化するときにそのデータとして前記初期化データを書き込むようにメモリ初期化動作を制御するメモリ初期化制御手段と、前記初期化データの判別により、ソフトウエアのバグを検出する手段とを備え、前記検出する手段は、ECCエラーと前記初期化データの判別により検出したエラーとの何れのエラーが生じたかを更に判別し、前記メモリ初期化制御手段は、運用中のソフトウエアがメモリを開放するときに、ソフトウエアが使用していたメモリ領域のメモリアドレス情報を保持しておくことで、使用したアドレスのみ前記初期化データを書き込むようにメモリ初期化動作を制御することを特徴とする。 To achieve the above object, the memory initialization circuit according to the present invention generates initialization data having a specific data pattern, writes the ECC and data in the memory, and initializes the initialization data as the data. Memory initialization control means for controlling the memory initialization operation so as to write data, and means for detecting a software bug by determining the initialization data, wherein the detection means includes an ECC error and the initialization. Further determining which of the errors detected by the data determination has occurred , the memory initialization control means is a memory area used by the software when the operating software releases the memory memory address information that holds the control memory initialization operation to write the initialization data only address using And wherein the Rukoto.

本発明に係るメモリ初期化方法は、特定のデータパターンを持つ初期化データを生成し、メモリにECCとデータを書き込んで初期化するときにそのデータとして前記初期化データを書き込むようにメモリ初期化動作を制御し、前記初期化データの判別により、ソフトウエアのバグを検出し、ECCエラーと前記初期化データの判別により検出したエラーとの何れのエラーが生じたかを更に判別し、更に、運用中のソフトウエアがメモリを開放するときに、ソフトウエアが使用していたメモリ領域のメモリアドレス情報を保持しておくことで、使用したアドレスのみ前記初期化データを書き込むようにメモリ初期化動作を制御することを特徴とする。 The memory initialization method according to the present invention generates initialization data having a specific data pattern, and initializes the memory so that the initialization data is written as the data when ECC and data are written to the memory for initialization. Control the operation, detect a bug in the software by determining the initialization data, further determine whether an error has occurred between the ECC error and the error detected by the determination of the initialization data , When the internal software releases the memory, the memory initialization operation is performed so that the initialization data is written only to the used address by holding the memory address information of the memory area used by the software. It is characterized by controlling .

本発明に係る情報処理装置は、上記に記載のメモリ初期化回路と、前記メモリ初期化回路により初期化されるメモリとを有することを特徴とする。   An information processing apparatus according to the present invention includes the memory initialization circuit described above and a memory initialized by the memory initialization circuit.

本発明によれば、メモリを初期化する際にメモリにECCとデータを書き込むときに特定のデータパターンを持つ初期化データを書き込むことにより、ソフトウエアのバグをハードウエアで検出することができる。   According to the present invention, a software bug can be detected by hardware by writing initialization data having a specific data pattern when ECC and data are written to the memory when the memory is initialized.

本発明の実施の形態に係るメモリ初期化回路を備えた情報処理装置の主要部の構成を示す図である。It is a figure which shows the structure of the principal part of the information processing apparatus provided with the memory initialization circuit which concerns on embodiment of this invention. 図1に示すメモリ初期化回路によるシステム立ち上げ時の初期化後のエラー検出に関する動作を説明する図である。It is a figure explaining the operation | movement regarding the error detection after the initialization at the time of system starting by the memory initialization circuit shown in FIG. 図1に示すメモリ初期化回路による運用中のアプリケーション終了後のメモリ初期化に関する動作を説明する図である。It is a figure explaining the operation | movement regarding the memory initialization after completion | finish of the application in operation by the memory initialization circuit shown in FIG.

次に、本発明の実施の形態について、図面を参照して詳細に説明する。   Next, embodiments of the present invention will be described in detail with reference to the drawings.

図1を参照すると、本発明の実施の形態に係る情報処理装置は、メモリ600と、このメモリ600を初期化するためのメモリ初期化回路とを有している。メモリ初期化回路は、メモリ(MEM)初期化制御回路100、メモリコントローラ(MEM Controller)200、ライトイネーブルセレクタ300、ポイズン化データ(Poisoning Data)生成回路400、書き込みデータセレクタ500、ECCチェック(ECC check)回路700、アドレスバッファ(Address Buffer)アドレスセレクタ800、アドレスバッファ900、及びアドレスセレクタ1000から構成される。   Referring to FIG. 1, an information processing apparatus according to an embodiment of the present invention includes a memory 600 and a memory initialization circuit for initializing the memory 600. The memory initialization circuit includes a memory (MEM) initialization control circuit 100, a memory controller (MEM Controller) 200, a write enable selector 300, a poisoning data generation circuit 400, a write data selector 500, an ECC check (ECC check). ) Circuit 700, address buffer (Address Buffer), address selector 800, address buffer 900, and address selector 1000.

メモリ初期化制御回路100は、診断プロセッサ(非図示)からのメモリ初期化信号、またはOS(Operating System)(非図示)からアプリケーション終了信号を入力して、メモリ初期化制御回路100のデータセレクト信号、アドレスセレクト信号、アドレスバッファ900のアドレスセレクト信号を生成する。   The memory initialization control circuit 100 receives a memory initialization signal from a diagnostic processor (not shown) or an application end signal from an OS (Operating System) (not shown) and receives a data select signal from the memory initialization control circuit 100. The address select signal and the address select signal of the address buffer 900 are generated.

メモリコントローラ200は、通常動作時の通常アドレス、ライトイネーブル、書き込みデータを生成する。   The memory controller 200 generates a normal address, write enable, and write data during normal operation.

ライトイネーブルセレクタ300は、データセレクト信号をセレクト信号として、通常動作時のメモリライトイネーブルか初期化時のメモリライトイネーブルか選択する。   The write enable selector 300 selects a memory write enable during normal operation or a memory write enable during initialization using the data select signal as a select signal.

ポイズン化データ生成回路400は、メモリ600にECCとデータを書き込むときに、特定のデータパターンを持つ初期化データとしてポイズン化したデータ(以下、「ポイズン化データ」という。)を生成する。   The poisoned data generation circuit 400 generates poisoned data (hereinafter referred to as “poisoned data”) as initialization data having a specific data pattern when writing ECC and data in the memory 600.

書き込みデータセレクタ500は、メモリ600への書き込みデータをセレクトする。   The write data selector 500 selects write data to the memory 600.

ECCチェック回路700は、ハードウエア障害によるECCエラーとポイズン化データとを判別する。   The ECC check circuit 700 determines an ECC error due to a hardware failure and poisoned data.

アドレスバッファアドレスセレクタ800は、アドレスバッファ900の入力を選択する。   Address buffer address selector 800 selects an input of address buffer 900.

アドレスバッファ900は、通常運用時のアドレスを保持する。   The address buffer 900 holds an address during normal operation.

アドレスセレクタ1000は、アドレスバッファ900の出力か通常運用時のアドレスか初期化時のインクリメントアドレスか選択する。   The address selector 1000 selects whether the output of the address buffer 900 is an address during normal operation or an increment address at initialization.

次に、図1〜図3を用いて、動作の説明を行う。以下の説明では、便宜上、メモリ600は0からc−1ワード(Word)のcワード幅を持つとする。   Next, the operation will be described with reference to FIGS. In the following description, for the sake of convenience, it is assumed that the memory 600 has a c word width of 0 to c-1 words (Word).

図2において、フェーズ(Phase)0は、メモリ600の初期化を実施する前のメモリ600の全ワード未初期化の状態を示す。   In FIG. 2, Phase 0 indicates a state in which all words in the memory 600 are not initialized before the memory 600 is initialized.

まず、図2のシステム立ち上げ時の初期化フェーズのうち未初期化のフェーズ0とその次の初期化完了のフェーズ1において、運用開始前に診断プロセッサからのメモリ初期化信号の受信を契機に、メモリ600の全ワードについて、未初期化の状態からポイズン化データを書き込んだ状態に初期化する動作を説明する。   First, in the initialization phase at the time of system startup in FIG. 2, in the uninitialized phase 0 and the next initialization completion phase 1, the reception of the memory initialization signal from the diagnostic processor before the start of operation is triggered. An operation for initializing all words in the memory 600 from an uninitialized state to a state in which poisoned data is written will be described.

メモリ初期化制御回路100は、診断プロセッサからメモリ初期化信号を受信すると、データセレクト信号と、アドレスバッファアドレスセレクト信号と、アドレスセレクト信号と、メモリ初期化ライトイネーブル信号を出力する。   When the memory initialization control circuit 100 receives a memory initialization signal from the diagnostic processor, the memory initialization control circuit 100 outputs a data select signal, an address buffer address select signal, an address select signal, and a memory initialization write enable signal.

ライトイネーブルセレクタ300は、データセレクト信号によりメモリ初期化ライトイネーブルが選択され、メモリ600に送出される。また、書き込みデータセレクタ500では、データセレクト信号より、ポイズン化データ生成回路400で生成されるポイズン化データが選択され、メモリ600に送出される。   The write enable selector 300 selects the memory initialization write enable in response to the data select signal and sends it to the memory 600. Also, the write data selector 500 selects the poisoned data generated by the poisoned data generation circuit 400 from the data select signal and sends it to the memory 600.

メモリ初期化制御回路100からのアドレスセレクト信号により、アドレスセレクタ1000で+1インクリメント信号を選択する。アドレスセレクタ1000では、メモリ600の1ワードを初期化するサイクル毎にアドレスが+1インクリメントされ、メモリ600のワード[c−1]まで書き込むことにより、メモリ600の全ワードにポイズン化データが書き込まれ、フェーズ1のメモリ初期化完了となる。   In response to an address select signal from the memory initialization control circuit 100, the address selector 1000 selects a +1 increment signal. In the address selector 1000, the address is incremented by +1 every cycle for initializing one word of the memory 600, and by writing up to the word [c-1] of the memory 600, poisoned data is written to all the words of the memory 600, Phase 1 memory initialization is complete.

次に、図2のシステム立ち上げ時の初期化完了のフェーズ1後の運用中のフェーズ2とその次のフェーズ3でソフトウエアのバグが検出される動作を説明する。その一例として、フェーズ2においてメモリ600のワード[a]にデータAを書き込んだ後に、その次のフェーズ3において、本来は、メモリ600の同一ワード[a]を読み出すところ、ソフトウエアバグでメモリ600のワード[b]を読んでしまった場合を説明する。   Next, an operation for detecting a software bug in phase 2 during operation after phase 1 of completion of initialization at the time of starting the system in FIG. 2 and phase 3 after that will be described. As an example, after data A is written in word [a] of memory 600 in phase 2, the same word [a] in memory 600 is originally read in phase 3 that follows. The case where the word [b] is read will be described.

まず、図2の運用中のフェーズ2時に、メモリ初期化制御回路100からのデータセレクト信号は、ライトイネーブルセレクタ300で通常動作時のライトイネーブル信号を、書き込みデータセレクタ500では通常データを、それぞれ選択するように送出される。   First, during phase 2 in operation of FIG. 2, the data select signal from the memory initialization control circuit 100 selects the write enable signal during normal operation by the write enable selector 300 and the normal data by the write data selector 500, respectively. To be sent out.

通常動作時のアドレス、データ制御を行うメモリコントローラ200からのライトイネーブル、書き込みデータ、通常アドレスにより、メモリ600のワード[a]にデータAが書き込まれる。   Data A is written to the word [a] of the memory 600 by an address during normal operation, a write enable from the memory controller 200 that controls data, write data, and a normal address.

次いで、図2の運用中のフェーズ3では、正しくはメモリ600のワード[a]を読み出すところ、ソフトウエアのバグでメモリ600のワード[b]が読み出されたとする。この場合、メモリ600のワード[b]は、未書き込みのためメモリ初期化時のポイズン化データが書き込まれており、メモリ600から読み出されたメモリ読み出しデータは、ポイズン化データとなる。ポイズン化データは、ECCチェック回路700に入力され、ポイズン検出がアサートされる。   Next, in phase 3 during operation of FIG. 2, it is assumed that the word [a] in the memory 600 is correctly read, but the word [b] in the memory 600 is read due to a software bug. In this case, since the word [b] in the memory 600 is not written, the poisoned data at the time of memory initialization is written, and the memory read data read from the memory 600 becomes poisoned data. The poisoned data is input to the ECC check circuit 700, and poison detection is asserted.

ECCチェック回路700は、ポイズン以外のハードウエア障害によるECCエラーとポイズン化データを判別可能である。未書き込みのワード[b]を読み出すと、ECCチェック回路700でポイズン検出されることにより、書き込みを行っていないワードに対する読み出しが発生したことが検出される。この結果、図2のフェーズ3でソフトウエアのバグが存在することが検出可能となる。   The ECC check circuit 700 can discriminate an ECC error and poisoned data caused by a hardware failure other than poisoning. When an unwritten word [b] is read, the ECC check circuit 700 detects a poison, thereby detecting that a read to a word that has not been written has occurred. As a result, the presence of a software bug can be detected in phase 3 of FIG.

次に、図3を用いて運用開始前のメモリ初期化時以降の運用中のアプリケーションソフトウエア(以下、「アプリケーション」という。)終了を契機とした実行メモリ空間初期化方法について説明する。   Next, an execution memory space initialization method triggered by the end of application software in operation (hereinafter referred to as “application”) after the memory initialization before the operation start will be described with reference to FIG.

運用開始前のメモリ初期化では、メモリ600の全ワードがポイズン化されているため、初期化直後に実行されるアプリケーションについては、ソフトウエアのバグが検出されるが、その後アプリケーション実行により書き込み済みワードが増えていき、ポイズン化されたワードが少なくなると、エラー検出可能なメモリ空間が減少していく。エラー検出をメモリ初期化直後と同等に可能にするため、アプリケーションが通常の運用で使用したアドレスを保持するアドレスバッファ900と、アドレスバッファアドレスセレクタ800を設ける。   In the memory initialization before the start of operation, since all words in the memory 600 are poisoned, a software bug is detected for an application executed immediately after the initialization. As the number of poisoned words decreases, the memory space in which errors can be detected decreases. In order to enable error detection as soon as memory initialization, an address buffer 900 that holds an address used by an application in normal operation and an address buffer address selector 800 are provided.

ここで、図3の運用中のアプリケーション終了のフェーズ4とその次のフェーズ5において、メモリ初期化以降の通常アプリケーション実行後、次のアプリケーションがメモリ空間を使用する前に、メモリ600の全ワードをメモリ初期化直後と同様にポイズン化する動作を説明する。   Here, in the phase 4 and the next phase 5 of the application termination in operation of FIG. 3, after executing the normal application after the memory initialization, before the next application uses the memory space, all the words in the memory 600 are read. A poisoning operation will be described in the same manner as immediately after memory initialization.

先ず、図3の運用中のアプリケーション終了のフェーズ4では、メモリ600のワード[1、3、a、b]の4ワードが書き込み済みとなっているとする。図1のアドレスバッファ900は、通常運用時にメモリコントローラ200からの通常アドレスを入力し保持する。   First, it is assumed that four words of words [1, 3, a, b] in the memory 600 have been written in the phase 4 of the application termination in operation of FIG. The address buffer 900 in FIG. 1 receives and holds a normal address from the memory controller 200 during normal operation.

メモリ初期化制御回路100は、OSからアプリケーション終了信号を受信すると、アドレスバッファアドレスをクリア後、+1インクリメント選択するようにアドレスバッファアドレスセレクト信号をアドレスバッファアドレスセレクタ800に送る。   When the memory initialization control circuit 100 receives the application end signal from the OS, the memory initialization control circuit 100 clears the address buffer address and then sends an address buffer address select signal to the address buffer address selector 800 so as to select +1 increment.

アドレスバッファ900は、運用中に使用されたアドレスのみをアドレスセレクタ1000に送出する。   The address buffer 900 sends only addresses used during operation to the address selector 1000.

メモリ初期化制御回路100は、アドレスバッファ900の出力を選択するようにアドレスセレクト信号をアドレスセレクタ1000に送出する。   The memory initialization control circuit 100 sends an address select signal to the address selector 1000 so as to select the output of the address buffer 900.

アドレスセレクタ1000は、アドレスバッファ900の出力をメモリ600に送出する。   The address selector 1000 sends the output of the address buffer 900 to the memory 600.

ライトイネーブルセレクタ300は、メモリ初期化制御回路100からのデータセレクト信号により、メモリ初期化ライトイネーブル信号を選択し、メモリ600にライトイネーブル信号を送出する。   The write enable selector 300 selects a memory initialization write enable signal according to a data select signal from the memory initialization control circuit 100 and sends the write enable signal to the memory 600.

書き込みデータセレクタ500は、メモリ初期化制御回路100からのデータセレクト信号により、ポイズン化データを選択し、メモリ600に送出する。この動作は、図3のフェーズ4後の次のフェーズ5のステップ1、2、3、4でメモリ600のワード[1、3、a、b]に対して実行される。   The write data selector 500 selects poisoned data according to the data select signal from the memory initialization control circuit 100 and sends it to the memory 600. This operation is performed on word [1, 3, a, b] of memory 600 in steps 1, 2, 3, 4 of the next phase 5 after phase 4 of FIG.

このように、アプリケーション終了後に、メモリ600の全ワードを初期化することなく、書き込み済みの4ワードのみをアドレスバッファ900と、アドレスバッファアドレスセレクタ800を用いて選択的に、図3のフェーズ5のステップ1、2、3、4のようにポイズン化することにより、運用中に高速にメモリ初期化することが可能となる。   As described above, after the application is completed, only the written four words are selectively used by the address buffer 900 and the address buffer address selector 800 without initializing all the words in the memory 600, and the phase 5 in FIG. By performing poisoning as in steps 1, 2, 3, and 4, memory initialization can be performed at high speed during operation.

図3では、アプリケーション終了を契機として、運用中にメモリ初期化動作を行う例を説明したが、プロセスロールアウトを契機にしたメモリ初期化動作も同一動作となる。   FIG. 3 illustrates an example in which the memory initialization operation is performed during operation when the application ends, but the memory initialization operation triggered by the process rollout is the same operation.

上記のように、ECCチェック回路700は、ハードウエア障害によるECCエラーとポイズンエラーを判別できる。本来、ソフトウエアでは、メモリデータはライト後に参照されるはずであるため、ソフトウエアバグのためライトシーケンスを誤って実行しなかったとき、ポイズン化データが読み出され、ポイズンエラーが検出される。ポイズンエラーが検出された時、該当するリードシーケンスのステップの前にソフトウエアバグがあったことが分かる。   As described above, the ECC check circuit 700 can discriminate between an ECC error and a poison error due to a hardware failure. Originally, in the software, the memory data should be referred to after writing. Therefore, when the write sequence is not executed erroneously due to a software bug, poisoned data is read and a poison error is detected. When a poison error is detected, it can be seen that there was a software bug before the corresponding read sequence step.

以上説明したように、本実施の形態では、メモリ初期化時、ECCとデータを書き込むときにそのデータとして特定のデータパターンを持つポイズン化データ(初期化データ)を書き込む手段として、メモリ初期化制御回路100と、ポイズン化データ生成回路400と、ECCチェック回路700と、アプリケーションがメモリ600を開放するときにOSからアプリケーション終了情報を受信しアプリケーションが使用していたメモリ領域についてメモリアドレス情報を保持するアドレスバッファ900を有している。   As described above, in this embodiment, memory initialization control is performed as means for writing poisoned data (initialized data) having a specific data pattern as data when ECC and data are written at the time of memory initialization. The circuit 100, the poisoned data generation circuit 400, the ECC check circuit 700, and the application end information received from the OS when the application releases the memory 600, and holds the memory address information for the memory area used by the application. An address buffer 900 is included.

これにより、本実施の形態に係るメモリ初期化回路は、メモリ初期化時、メモリ600にECCとデータを書き込むときにそのデータとして特定のデータパターンを持つポイズン化データを書き込むことにより、従来ハードウエアでは検出できなかった、ソフトウエアのバグを検出できる。   Thereby, the memory initialization circuit according to the present embodiment writes the poisoned data having a specific data pattern as the data when the ECC and data are written into the memory 600 at the time of memory initialization. Software bugs that could not be detected can be detected.

また、本実施の形態では、更にシステム立ち上げ時のメモリ初期化時以外に、アプリケーションがメモリ600を開放するときに、OSからアプリケーション終了情報を受信し、アプリケーションが使用していたメモリ領域について、アドレスバッファ900に使用済みアドレス情報を保持し、使用したアドレスのみポイズン化データを書き込む手段を有することにより、高速にメモリ600のポイズン化が可能且つ、継続してソフトウエアバグを検出することが可能である。   Further, in this embodiment, in addition to the memory initialization at the time of system startup, when the application releases the memory 600, the application end information is received from the OS, and the memory area used by the application is By having means for holding used address information in the address buffer 900 and writing poisoned data only for the used addresses, the memory 600 can be poisoned at high speed and software bugs can be detected continuously. It is.

なお、上述したメモリ初期化回路のハードウェア構成は特に限定されるものではなく、上述した各構成要素の機能を実現可能であれば、いずれの構成でも適用可能である。   Note that the hardware configuration of the above-described memory initialization circuit is not particularly limited, and any configuration can be applied as long as the functions of the above-described components can be realized.

以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。   Although the present invention has been described with reference to the embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.

本発明は、メモリ初期化回路に適用することにより、ハードウエア機構によってソフトウエアバグを検出できる。特に、本発明は、高信頼性を求められる情報処理装置に適用することで信頼性を向上させることが可能である。   By applying the present invention to a memory initialization circuit, a software bug can be detected by a hardware mechanism. In particular, the present invention can be improved in reliability by being applied to an information processing apparatus that requires high reliability.

100 メモリ初期化制御回路
200 メモリコントローラ
300 ライトイネーブルセレクタ
400 ポイズン化データ生成回路
500 書き込みデータセレクタ
600 メモリ
700 ECCチェック回路
800 アドレスバッファアドレスセレクタ
900 アドレスバッファ
1000 アドレスセレクタ
100 memory initialization control circuit 200 memory controller 300 write enable selector 400 poisoned data generation circuit 500 write data selector 600 memory 700 ECC check circuit 800 address buffer address selector 900 address buffer 1000 address selector

Claims (8)

特定のデータパターンを持つ初期化データを生成し、メモリにECCとデータを書き込んで初期化するときにそのデータとして前記初期化データを書き込むようにメモリ初期化動作を制御するメモリ初期化制御手段と、
前記初期化データの判別により、ソフトウエアのバグを検出する手段とを備え、
前記検出する手段は、ECCエラーと前記初期化データの判別により検出したエラーとの何れのエラーが生じたかを更に判別し、
前記メモリ初期化制御手段は、運用中のソフトウエアがメモリを開放するときに、ソフトウエアが使用していたメモリ領域のメモリアドレス情報を保持しておくことで、使用したアドレスのみ前記初期化データを書き込むようにメモリ初期化動作を制御することを特徴とするメモリ初期化回路。
Memory initialization control means for generating initialization data having a specific data pattern, and controlling the memory initialization operation so that the initialization data is written as the data when ECC and data are written to the memory for initialization. ,
Means for detecting a software bug by determining the initialization data;
The means for detecting further determines whether an error has occurred between an ECC error and an error detected by determining the initialization data,
When the operating software releases the memory, the memory initialization control means holds the memory address information of the memory area used by the software so that only the used address is the initialization data. features and to Rume memory initialization circuit to control the memory initialization operation to write.
前記初期化データ判別により検出するエラーとはソフトウェアバグのためライトシーケンスを誤って実行しなかったというエラーであることを特徴とする請求項1に記載のメモリ初期化回路。   2. The memory initialization circuit according to claim 1, wherein the error detected by the initialization data discrimination is an error that a write sequence is not executed erroneously due to a software bug. 前記メモリ初期化制御手段は、前記ソフトウエアが使用していたメモリ領域のメモリアドレス情報を保持するアドレスバッファを有する請求項1又は2に記載のメモリ初期化回路。 3. The memory initialization circuit according to claim 1, wherein the memory initialization control means includes an address buffer that holds memory address information of a memory area used by the software. 前記メモリ初期化制御手段は、
前記初期化データとしてポイズン化した特定のデータパターンを持つポイズン化データを生成するポイズン化データ生成回路と、
前記初期化データとして前記ポイズン化データを書き込むようにメモリ初期化動作を制御するメモリ初期化制御回路とを有することを特徴とする請求項1からの何れか1項に記載のメモリ初期化回路。
The memory initialization control means includes
A poisoned data generation circuit for generating poisoned data having a specific data pattern poisoned as the initialization data;
Memory initialization circuit according to any one of claims 1 3, characterized in that it comprises a memory initialization control circuit for controlling the memory initialization operation to write the poison data as said initialization data .
特定のデータパターンを持つ初期化データを生成し、メモリにECCとデータを書き込んで初期化するときにそのデータとして前記初期化データを書き込むようにメモリ初期化動作を制御し、
前記初期化データの判別により、ソフトウエアのバグを検出し、
ECCエラーと前記初期化データの判別により検出したエラーとの何れのエラーが生じたかを更に判別し、
更に、運用中のソフトウエアがメモリを開放するときに、ソフトウエアが使用していたメモリ領域のメモリアドレス情報を保持しておくことで、使用したアドレスのみ前記初期化データを書き込むようにメモリ初期化動作を制御することを特徴とするメモリ初期化方法。
Generating initialization data having a specific data pattern, and controlling the memory initialization operation so that the initialization data is written as the data when ECC and data are written to the memory and initialized;
By detecting the initialization data, a software bug is detected,
Further discriminating which of the ECC error and the error detected by the discrimination of the initialization data has occurred;
Furthermore, when the operating software releases the memory, the memory address information of the memory area used by the software is retained, so that the initialization data is written so that only the used address writes the initialization data. features and to Rume Mori initialization method to control the reduction operation.
前記初期化データ判別により検出するエラーとはソフトウェアバグのためライトシーケンスを誤って実行しなかったというエラーであることを特徴とする請求項に記載のメモリ初期化方法。 6. The memory initialization method according to claim 5 , wherein the error detected by the initialization data discrimination is an error that a write sequence is not executed erroneously due to a software bug. 前記初期化データとしてポイズン化した特定のデータパターンを持つポイズン化データを生成し、
前記初期化データとして前記ポイズン化データを書き込むようにメモリ初期化動作を制御することを特徴とする請求項5又は6に記載のメモリ初期化方法。
Generating poisoned data having a specific data pattern poisoned as the initialization data;
7. The memory initialization method according to claim 5 , wherein a memory initialization operation is controlled so that the poisoned data is written as the initialization data.
請求項1からの何れか1項に記載のメモリ初期化回路と、
前記メモリ初期化回路により初期化されるメモリとを有することを特徴とする情報処理装置。
A memory initialization circuit according to any one of claims 1 to 4 ,
An information processing apparatus comprising: a memory initialized by the memory initialization circuit.
JP2009151141A 2009-06-25 2009-06-25 Memory initialization circuit, memory initialization method, and information processing apparatus Expired - Fee Related JP5201597B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009151141A JP5201597B2 (en) 2009-06-25 2009-06-25 Memory initialization circuit, memory initialization method, and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009151141A JP5201597B2 (en) 2009-06-25 2009-06-25 Memory initialization circuit, memory initialization method, and information processing apparatus

Publications (2)

Publication Number Publication Date
JP2011008518A JP2011008518A (en) 2011-01-13
JP5201597B2 true JP5201597B2 (en) 2013-06-05

Family

ID=43565100

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009151141A Expired - Fee Related JP5201597B2 (en) 2009-06-25 2009-06-25 Memory initialization circuit, memory initialization method, and information processing apparatus

Country Status (1)

Country Link
JP (1) JP5201597B2 (en)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5856292A (en) * 1981-09-29 1983-04-02 Fujitsu Ltd Initializing system of memory
JPH0275031A (en) * 1988-09-12 1990-03-14 Hitachi Ltd Program for electronic computer
JPH0594336A (en) * 1991-10-02 1993-04-16 Hitachi Ltd Display device
JPH08314811A (en) * 1995-05-22 1996-11-29 Mitsubishi Electric Corp Memory interface device
JP3190867B2 (en) * 1997-12-04 2001-07-23 甲府日本電気株式会社 Apparatus and method for detecting memory rewrite operation error
JP3610574B2 (en) * 2001-08-15 2005-01-12 日本電気株式会社 Disk array device
JP2003178518A (en) * 2001-12-12 2003-06-27 Ricoh Co Ltd Optical disk recording and reproducing device and its recording method

Also Published As

Publication number Publication date
JP2011008518A (en) 2011-01-13

Similar Documents

Publication Publication Date Title
CN102135927B (en) Method and device for system booting based on NAND FLASH
CN100485619C (en) A method and related device for booting from a non-xip memory
KR101249693B1 (en) Selecting subroutine return mechanisms
US7356684B2 (en) Booting system and/or method for initializing peripherals
US7694193B2 (en) Systems and methods for implementing a stride value for accessing memory
JPWO2007116487A1 (en) MEMORY DEVICE, ERROR CORRECTION SUPPORT METHOD, ITS SUPPORT PROGRAM, MEMORY CARD, CIRCUIT BOARD AND ELECTRONIC DEVICE
JP2008009721A (en) Evaluation system and evaluation method thereof
US20160364280A1 (en) Circuitry and method for testing an error-correction capability
JP2008262325A (en) Memory control device, memory control method, information processing system, and program and storage medium thereof
US20090327838A1 (en) Memory system and operating method for it
US7430683B2 (en) Method and apparatus for enabling run-time recovery of a failed platform
JP2005149501A (en) System and method for testing memory with expansion card using dma
JP5201597B2 (en) Memory initialization circuit, memory initialization method, and information processing apparatus
JP2005149503A (en) System and method for testing memory using dma
US8176250B2 (en) System and method for testing a memory
US20100146224A1 (en) Request processing device, request processing system, and access testing method
KR102165928B1 (en) Electronic device, a method of compiling in an electronic device and a method of operating an electronic device
US7475212B2 (en) Method for reallocation of a memory of a subsystem, and subsystem
US8953393B2 (en) Semiconductor device and operating method thereof
EP4394776A1 (en) Memory controller, mirrored memory modules and associated built-in self-test
JP2006277133A (en) Semiconductor integrated circuit and memory data checking method
CN117724938A (en) Memory control method
US20050204089A1 (en) Method and related system for accessing lpc memory or firmware memory in a computer system
JP2019185276A (en) Application program and function program module
CN116820860A (en) Processor and testing method thereof

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120806

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120813

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121221

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: 20130115

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130205

R150 Certificate of patent or registration of utility model

Ref document number: 5201597

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160222

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees