WO2007096997A1 - メモリ制御装置およびメモリ制御方法 - Google Patents

メモリ制御装置およびメモリ制御方法 Download PDF

Info

Publication number
WO2007096997A1
WO2007096997A1 PCT/JP2006/303474 JP2006303474W WO2007096997A1 WO 2007096997 A1 WO2007096997 A1 WO 2007096997A1 JP 2006303474 W JP2006303474 W JP 2006303474W WO 2007096997 A1 WO2007096997 A1 WO 2007096997A1
Authority
WO
WIPO (PCT)
Prior art keywords
error
data
unit
pseudo
memory
Prior art date
Application number
PCT/JP2006/303474
Other languages
English (en)
French (fr)
Inventor
Masanori Doi
Original Assignee
Fujitsu Limited
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 Limited filed Critical Fujitsu Limited
Priority to JP2008501550A priority Critical patent/JP4834721B2/ja
Priority to PCT/JP2006/303474 priority patent/WO2007096997A1/ja
Publication of WO2007096997A1 publication Critical patent/WO2007096997A1/ja
Priority to US12/222,054 priority patent/US8140940B2/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2215Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing

Definitions

  • the present invention relates to a memory control device and a memory control method for controlling input / output of data in a memory for storing data, and in particular, regularly and reliably verifies the correctness of an error correction circuit and validates RAS control.
  • the present invention relates to a memory control device and a memory control method capable of guaranteeing various functions.
  • ECC Error Correcting Code
  • Patent Document 1 Japanese Patent Application Laid-Open No. 7-84889 Disclosure of the invention
  • the present invention has been made in view of the strong point, and it is possible to verify the correctness of the error correction circuit regularly and reliably and to guarantee the proper function of the RAS control and the memory.
  • An object is to provide a control method.
  • the present invention provides a memory control device for controlling input / output of data in a memory for storing data, comprising: a reading means for reading data from the memory; and the reading means.
  • An injection unit that injects a pseudo error into the read data, a specifying unit that specifies an error position in the data in which the pseudo error is injected by the injection unit, and an identification unit that is specified by the specifying unit
  • the error position and the position of the pseudo error injected by the injection means match, and the error position and the position of the pseudo error match as a result of the determination by the determination means
  • output means for outputting data in which the error at the error position is corrected.
  • the injection unit includes a counting unit that counts the number of times data is read by the reading unit, and the number of times counted by the counting unit is a predetermined number. It is characterized in that a pseudo error is injected into the data every time the number is reached.
  • the present invention is characterized in that, in the above invention, the injection means injects a pseudo error by inverting a predetermined bit of the data read by the reading means.
  • the error correction circuit including the specifying means has failed. It further has a notifying means for notifying the outside that it is present.
  • the present invention is characterized in that, in the above-mentioned invention, the specifying means specifies an error position using an error correction code added to data.
  • the present invention is characterized in that, in the above-mentioned invention, the output means includes error correction means for correcting an error by inverting a bit at an error position.
  • the reading unit is not rewritten when a store process for rewriting a part of data stored in the memory is performed. Is read from the memory.
  • the present invention is characterized in that, in the above invention, the injecting means injects a pseudo error into the non-stored data read by the reading means for the second time after the start of the store process.
  • a generation unit that generates an error correction code for each of the non-stored data output by the output unit and the store data after rewriting, and the store generated by the generation unit It further comprises combining means for combining the error correction code of the non-target data and the error correction code of the store data, and writing means for writing the error correction code obtained by combining by the combining means into the memory.
  • the injecting unit injects a pseudo error into data corresponding to any one of the ways. It is characterized by doing.
  • the present invention is a memory control method for controlling input / output of data in a memory for storing data, the reading step for reading data from the memory, and the data read by the reading step.
  • An injection step for injecting a pseudo error a specifying step for specifying an error position in the data in which the pseudo error is injected in the injection step; an error position specified in the specifying step;
  • data is read from the memory, a pseudo error is injected into the read data, and an error position where an error occurs in the data into which the pseudo error is injected is specified and specified.
  • the error position error is corrected when the error position and the pseudo error position match as a result of the determination. Output data. For this reason, data is output only when it is confirmed that error correction including pseudo errors is normally performed when data is read, and the correctness of the error correction circuit is verified regularly and reliably. Function can be guaranteed.
  • the number of times data is read is counted, and a pseudo error is injected into the data every time the counted number reaches a predetermined number. Even when reading is continuously performed, the correctness of the error correction circuit can be periodically verified.
  • the error position and the pseudo error position do not match!
  • the error position is specified using the error correction code added to the data, the bit where the error occurs in the data is specified, and the error position is specified reliably. can do.
  • the error position bit is inverted to correct the error
  • the error bit is corrected and changed to a bit, no error is generated, and data can be obtained. it can.
  • error correction codes for the output non-stored data and the rewritten store data are generated, and the error correction code and the stored data of the generated non-stored data are generated.
  • the error correction code is synthesized, and the error correction code obtained by the synthesis is written in the memory. For this reason, even if part of the data is rewritten by the store process, the error correction code is updated based on the data that has been corrected by the error correction circuit that operates normally, and the error correction code can be updated accurately. it can.
  • the memory when the memory is divided into a plurality of ways, a pseudo error is injected into data corresponding to any one of the ways, so that the memory is, for example, a set-associative cache memory Even in this case, the correctness of the error correction circuit can be verified regularly and reliably, and the proper function of RAS control can be guaranteed.
  • FIG. 1 is a block diagram showing a schematic configuration of a CPU according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing a main configuration of a cache control unit according to one embodiment.
  • FIG. 3 is a flowchart illustrating an operation during a read process of the cache control unit according to the embodiment.
  • FIG. 4 is a flowchart showing an operation at the time of store processing of the cache control unit according to the embodiment.
  • FIG. 1 is a block diagram showing a schematic configuration of a CPU according to an embodiment of the present invention.
  • the CPU shown in FIG. 1 includes a cache control unit 100, a cache 200, an instruction processing unit 300, and an arithmetic processing unit 400. This CPU is connected to the main memory 500.
  • the cache control unit 100 controls writing and reading of data with respect to the cache 200 in accordance with an instruction issued from the instruction processing unit 300. In addition, the cache control unit 100 performs error correction on the data read from the cache 200 and determines whether or not the error correction circuit that performs error correction on the data functions correctly. The specific configuration of the cache control unit 100 will be described in detail later.
  • the cache 200 stores frequently used data on the main memory 500 and also stores ECC (Error Correcting Code) added to the stored data.
  • the cache 200 has a data RAM for storing data and an ECCRAM for storing ECC, and stores the data and ECC in each RAM.
  • the cache 200 may further include a tag RAM for storing tag information of data.
  • the instruction processing unit 300 interprets an instruction such as a program, and instructs the arithmetic processing unit 400 to execute necessary arithmetic processing, and also instructs the cache control unit 100 to read and write necessary data. .
  • the arithmetic processing unit 400 performs arithmetic processing using the data from which the force is read, such as the cache 200.
  • the main memory 500 is a main storage device and stores data programs necessary for processing in the CPU.
  • Main memory 500 has a larger capacity and lower access speed than cache 200.
  • FIG. 2 is a block diagram showing a main configuration of the cache control unit 100 according to the present embodiment.
  • the cache control unit 100 shown in the figure includes a connection unit 101, a read instruction unit 102, a counter unit 103, a read unit 104, a pseudo error injection unit 105, an error position specifying unit 106, an error correction unit 107, a determination unit 108, and ECC generation.
  • Connection unit 101 is connected to instruction processing unit 300, and notifies read instruction unit 102 of an instruction such as a data read instruction from instruction processing unit 300 and rewritten store data. On the other hand, the data read from the cache 200 and the determination result of whether or not the error correction circuit is functioning correctly are output to the instruction processing unit 300.
  • the read instructing unit 102 When a data read instruction or store instruction is issued from the instruction processing unit 300, the read instructing unit 102 notifies the counter unit 103 to that effect and also instructs the read unit 104 to address the data to be read. .
  • Counter unit 103 counts the number of times a read instruction is received from read instruction unit 102, and instructs pseudo error injection unit 105 to inject a pseudo error when the counter value reaches a predetermined threshold value. At the same time, the counter value is reset. Further, upon receiving a store instruction notification from the read instruction unit 102, the counter unit 103 instructs the pseudo error injection unit 105 to inject a pseudo error at the second data read.
  • store data that cannot be rewritten before the store data is stored is read from the cache 200 (first data read), error detection is performed, and an error is detected. If not, the store data is stored, and then the non-stored data is read again from the cache 200 (second data read), and ECC is generated along with the store data. For this reason, the counter unit 103 instructs pseudo error injection at the time of the second data read.
  • the reading unit 104 also reads out the data of the address instructed from the reading instructing unit 102 and outputs it to the pseudo error injecting unit 105. Specifically, the reading unit 104 reads the address data included in the read instruction issued from the instruction processing unit 300 or the non-stored data of the address included in the store instruction.
  • the pseudo error injection unit 105 injects a pseudo error into the data output from the reading unit 104. Specifically, the pseudo error injection unit 105 injects a pseudo error by inverting a predetermined bit of the data output from the reading unit 104. As described above, the pseudo error injection instruction from the counter unit 103 is issued when a predetermined number of read instructions are issued or a store instruction is issued. Each time a read command is issued, a pseudo error is injected once. Further, the pseudo error injection unit 105 reports the position where the pseudo error is injected to the determination unit 108. [0044] The error position specifying unit 106 uses ECC added to the data to specify the position of the bit in which an error occurs in the data, and the specified error position is set to the error correcting unit 107. And notifies the judgment unit 108.
  • the error correction unit 107 When the error correction unit 107 is instructed to continue error correction by the determination unit 108, the error correction unit 107 inverts the bit of the error position notified from the error position specifying unit 106 and corrects the error in the data. To do. Then, error correction section 107 outputs the error-corrected data to connection section 101 or ECC generation section 109. That is, when a read command is issued from the instruction processing unit 300, the error correction unit 107 outputs the data after error correction to the connection unit 101, and when a store command is issued, the error correction unit 107 stores data after error correction. The outside data is output to the ECC generation unit 109.
  • the error position specifying unit 106 and the error correcting unit 107 form an error correcting circuit in the present embodiment.
  • the determination unit 108 determines whether the injection position of the pseudo error reported from the pseudo error injection unit 105 matches the error position notified from the error position specifying unit 106, and the two are identical. If they match, it is determined that the error position specifying unit 106 has specified the error position correctly, and the error correction unit 107 is instructed to continue the error correction. If the pseudo error injection position does not match the error position, the determination unit 108 determines that a failure has occurred in the error position specifying unit 106, and determines that the error correction circuit has failed. Output to connection 101.
  • the ECC generation unit 109 generates ECC for each of the non-stored data output from the error correction unit 107 and the store data output from the store data acquisition unit 111.
  • the ECC generation unit 109 generates each ECC. Output to 110.
  • the ECC synthesis unit 110 performs a store process in which a part of the data is rewritten by synthesizing (merging) the ECC of the non-stored data output from the ECC generation unit 109 and the ECC of the store data. If this happens, a new ECC is generated and output to the writing unit 112.
  • the store data acquisition unit 111 acquires the rewritten store data from the connection unit 101, and sends it to the ECC generation unit 109 and the writing unit 112. Output.
  • the writing unit 112 writes the store data output from the store data acquisition unit 111 into the cache 200. Also, the writing unit 112 receives the new ECC output from the ECC combining unit 110. Write to cache 200.
  • the counter value of the counter unit 103 is reset to 0 (step S101).
  • the read command is input to the read command unit 102 via the connection unit 101.
  • the reading instruction unit 102 instructs the reading unit 104 to specify the address of the data to be read, and notifies the counter unit 103 that the reading process is to be executed.
  • the reading unit 104 reads the data at the instructed address from the cache 200 (step S103) and notifies the execution of the reading process
  • the counter unit 103 sets the counter value to 1. Incremented (step S104).
  • the counter unit 103 determines whether or not the counter value has reached a predetermined threshold value (step S105).
  • step S 105 If the counter value has not reached the predetermined threshold as a result of this determination (No in step S 105), the data read from the cache 200 by the reading unit 104 passes through the pseudo error injection unit 105. Is output to the error correction circuit, the error position is detected by the error position specifying unit 106, and the error correction is performed by inverting the bit at the position where the error is detected by the error correction unit 107 (step S109). The data after error correction is output to the instruction processing unit 300 via the connection unit 101. In other words, if the counter value of the counter unit 103 reaches a predetermined threshold value! /, If the error correction circuit functions normally, error correction of data is performed under the assumption. Read processing is executed. Then, after this read process is executed, the next read command by the command processing unit 300 is waited.
  • step S 102 a data read command is issued again from instruction processing unit 300 to cache control unit 100
  • the read command is input to the read instruction unit 102 via the connection unit 101
  • the data is read from the cache 200 by the read unit 104 according to the instruction from the read instruction unit 102 (step S103) and the counter
  • the counter value is incremented by 1 by the unit 103 (step S104).
  • the counter unit 103 determines whether or not the counter value has reached a predetermined threshold value (step S105).
  • step S105 Yes if the counter value reaches a predetermined threshold value (step S105 Yes), the counter unit 103 instructs the pseudo error injection unit 105 to inject a pseudo error into the data.
  • a pseudo error is injected into the data by the pseudo error injection unit 105 (step S106). This pseudo error is injected by inverting a predetermined bit of data by the pseudo error injection unit 105. The position where the pseudo error is injected by the pseudo error injection unit 105 is reported to the determination unit 108.
  • the injection of the pseudo error to the data read from the cache 200 by the pseudo error injection unit 105 is performed every time the counter value of the counter unit 103 reaches a predetermined threshold value. Since it is executed whenever the number of read instructions issued from the instruction processing unit 300 reaches a predetermined number, even if read instructions are issued continuously from the instruction processing unit 300, the error correction circuit is regularly validated. It can be verified and the proper function of RAS control can be guaranteed.
  • the data in which the pseudo error is injected is output to the error position specifying unit 106 in the error correction circuit, and the error is specified by using the ECC added to the data by the error position specifying unit 106.
  • the occurring error position is identified (step S107).
  • the pseudo error injection unit 105 injects the pseudo error at the position of the pseudo error. An error should be detected. Therefore, when the error position is specified by the error position specifying unit 106, the error position is notified to the determination unit 108 for comparison with the position of the pseudo error. Further, the data and information on the error position are also output to the error correction unit 107.
  • the determination unit 108 compares the error position with the position of the pseudo error reported from the pseudo error injection unit 105 (step S 108). As a result of this comparison, if the error position matches the position of the pseudo error (step S108 Yes), the error position specifying unit 106 is functioning normally and the correctness of the error correction circuit is guaranteed. The error correction unit 107 is instructed to continue error correction.
  • the error correction unit 107 inverts the bit at the error position in the data output from the error position specifying unit 106 to perform error correction of the data (step S109).
  • the data after error correction is output from the error correction unit 107 to the instruction processing unit 300 via the connection unit 101, and the data reading process corresponding to the read command is completed.
  • step S108 No if the error position does not match the position of the pseudo error as a result of the comparison between the error position and the position of the pseudo error (step S108 No), the error position specifying unit 106 is not functioning normally, It is determined that further error will occur in the data due to error correction by the error correction circuit, and the determination result that the error correction circuit has failed is output to the instruction processing unit 300 via the connection unit 101, and the error correction circuit has failed. Notification is made (step S110). By notifying the instruction processing unit 300 of a failure in the error correction circuit, it is possible to take measures such as automatic repair of the error correction circuit or notification of failure to the user, and improve the reliability of RAS control. I'll do it.
  • FIG. 4 the same parts as those in FIG. 3 are denoted by the same reference numerals, and detailed description thereof is omitted.
  • Step S201 the store instruction is input to the read instruction unit 102 via the connection unit 101. Then, the read instructing unit 102 instructs the address of non-stored data, which is data other than the store data to be rewritten, to the reading unit 104 and notifies the counter unit 103 that the store process is executed (step S103). S202).
  • the reading unit 104 reads out the non-stored data whose address has been specified from the cache 200 (step S203), and when it is notified that the store process is executed, the counter unit 103 performs the second time.
  • the pseudo error injection unit 105 is instructed to inject a pseudo error when reading out the non-stored data. For this reason, the non-stored data read this time by the reading unit 104 is specified by the error position specifying unit 106 without being processed by the pseudo error injection unit 105, and the bit of the specified error position is set. Error correction is performed by being inverted by the error correction unit 107 (step S). 204).
  • the store data acquisition unit 111 stores the data output from the instruction processing unit 300 to the connection unit 101.
  • the data is acquired, the store data is output to the writing unit 112 together with a write instruction to the cache 200, and the data is stored by the writing unit 112 (step S205).
  • Store data is output from the store data acquisition unit 111 to the ECC generation unit 109.
  • the non-stored data is read again from the cache 200 by the reading unit 104 (step S206). Then, the read out-of-store data is output to the pseudo error injection unit 105, and since this read is the second time, a pseudo error is injected by the pseudo error injection unit 105 (step S106). In addition, the position where the pseudo wrinkle is injected is reported to the determination unit 108.
  • the non-stored data into which the pseudo error has been injected uses the ECC by the error position specifying unit 106 in the error correction circuit, thereby specifying the error position where the error has occurred (Step S 107), the error position is notified to the determination unit 108 and the error correction unit 107.
  • the determination unit 108 compares the error position with the position of the pseudo error reported from the pseudo error injection unit 105 (step S108). As a result of this comparison, if the error position matches the position of the pseudo error (step S108Yes), it is determined that the error position specifying unit 106 is functioning normally and the correctness of the error correction circuit is guaranteed.
  • the error correction unit 107 is instructed to continue the error correction.
  • the error correction unit 107 inverts the bit at the error position in the non-stored data output from the error position specifying unit 106, thereby performing error correction of the non-stored data (step S109). ).
  • the non-stored data after the error correction is output from the error correction unit 107 to the ECC generation unit 109.
  • the store data and the non-stored data are input to the ECC generation unit 109, and the ECC generation unit 109 generates the ECC of the store data and the ECC of the non-stored data (step S207). ).
  • These ECCs are synthesized (merged) by the ECC synthesis unit 110 (step S208), and the ECC of the data after the store processing is obtained.
  • strike The ECC of the processed data is written into the ECCRAM in the cache 200 by the writing unit 112, and the data store process according to the store instruction and the ECC update according to the store process are completed.
  • step S108 No if the error position does not match the position of the pseudo error as a result of the comparison between the error position and the position of the pseudo error (step S108 No), the error position specifying unit 106 is not functioning normally, Error correction by the error correction circuit causes further errors in the data that is not stored, and it is determined that correct ECC is not generated, and the determination result that the error correction circuit is faulty is sent to the instruction processing unit 300 via the connection unit 101. Is output and a failure of the error correction circuit is notified (step S110). By notifying the instruction processing unit 300 of a failure in the error correction circuit, it is possible to take measures such as automatic repair of the error correction circuit or notification of failure to the user, and improve the reliability of RAS control. it can.
  • a cache error is also injected into the data to be read, and a pseudo error is injected.
  • the error correction circuit specifies the error position of the data into which the error has been injected, and determines whether the specified error position matches the pseudo error position. For this reason, if the error position matches the position of the pseudo error, it can be determined that the error correction circuit is functioning normally. On the other hand, if the error position does not match the position of the pseudo error, the error correction circuit fails. The correctness of the error correction circuit can be verified regularly and reliably, and the proper function of RAS control can be guaranteed.
  • the force used to inject a pseudo error when reading data from the cache memory and a pseudo error is injected when reading data from various other memories. It is also possible to verify the correctness of the error correction circuit.
  • the cache memory is configured by the set associative method, for example, and there are multiple ways, one of the ways is specified at the time of pseudo error injection, and the data of the specified way is specified. A pseudo error may be injected.
  • the present invention can be applied to the case where the correctness of the error correction circuit is verified regularly and reliably and the proper function of RAS control is guaranteed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

 定期的かつ確実に誤り訂正回路の正当性を検証し、RAS制御の正当な機能を保証すること。読出指示部(102)は、データの読み出し命令が出された旨をカウンタ部(103)へ通知するとともに、読み出すデータのアドレスを読出部(104)へ指示する。カウンタ部(103)は、読み出し命令の回数をカウントし、カウンタ値が所定のしきい値に達すると擬似エラー注入部(105)へ擬似エラー注入を指示する。読出部(104)は、データをキャッシュ(200)から読み出す。擬似エラー注入部(105)は、擬似エラー注入が指示されると、読出部(104)から出力されるデータに擬似エラーを注入する。誤り位置特定部(106)は、データ中の誤り位置を特定する。判定部(108)は、擬似エラーの注入位置と誤り位置とが一致するか否かを判定し、両者が一致すれば、誤り位置特定部(106)による誤り位置の特定が正確であると判断する。

Description

明 細 書
メモリ制御装置およびメモリ制御方法
技術分野
[0001] 本発明は、データを記憶するメモリにおけるデータの入出力を制御するメモリ制御 装置およびメモリ制御方法に関し、特に、定期的かつ確実に誤り訂正回路の正当性 を検証し、 RAS制御の正当な機能を保証することができるメモリ制御装置およびメモ リ制御方法に関する。
背景技術
[0002] 近年、半導体技術の微細化および高速化に伴って、 CPU (Central Processing U nit :中央処理演算装置)などのプロセッサに搭載される RAM (Random Access Me mory)の記憶素子も微細化したため、 RAMに記憶される情報においてビット反転な どの故障が発生することがある。このため、故障に自動的に対処する方法として、 RA S (Reliability, Availability, Serviceability:信頼性、可用性、保守性)制御に関する 検討が盛んに行われて!/、る。
[0003] RAS制御においては、例えば ECC (Error Correcting Code :誤り訂正符号)を用 V、た誤り訂正技術などが重要な役割を担って 、る。一般的な誤り訂正技術にぉ 、て は、誤り訂正回路によってデータに付加されている ECCが用いられ、データに発生し たビット反転などの誤りが訂正される。このような誤り訂正においては、誤り訂正回路 が正しく動作することが前提となっているため、誤り訂正回路の信頼性を担保する必 要がある。
[0004] そこで、 RAMにデータが書き込まれる際に、データに故意にエラーを発生させて おき、このデータに対する誤り訂正を実行することにより、誤り訂正回路が正しく動作 している力否かが検証されることがある。また、例えば特許文献 1では、 RAMの特定 のアドレスに正常なデータを書き込む一方で、正常なデータが書き込まれるアドレス を反転させたアドレスにエラーがあるエラーデータを書き込み、反転アドレスに書き込 まれたエラーデータを用いて誤り訂正回路の試験を行うことが開示されている。
[0005] 特許文献 1 :特開平 7— 84889号公報 発明の開示
発明が解決しょうとする課題
[0006] し力しながら、上記の技術では、 RAMにデータが書き込まれる際にのみ故意にェ ラーを発生させるため、 RAMが CPUのキャッシュメモリとして使用される場合には、 例えばエラーを発生させたデータが読み出される前に書き換えられたりして、必ずし も誤り訂正回路の信頼性が保証されないという問題がある。すなわち、上述した誤り 訂正回路の試験においては、 RAMに書き込むデータにエラーを発生させ、このエラ 一データに対する読み出し要求が発行されて誤り訂正を実行したときに、エラーが正 しく検出または訂正されることが確認されるため、読み出し要求が発行される前にェ ラーデータが書き換えられてしまえば、読み出し時に読み出されるのはエラーデータ ではなくなってしまう。
[0007] したがって、例えばキャッシュメモリにエラーデータが書き込まれて力 読み出され るまでの間隔が比較的長い場合は、誤り訂正回路が正しく動作しているか否力を定 期的に検証することができるとは限らず、結果として RAS制御の正当な機能が保証さ れない。
[0008] 本発明は力かる点に鑑みてなされたものであり、定期的かつ確実に誤り訂正回路 の正当性を検証し、 RAS制御の正当な機能を保証することができるメモリ制御装置 およびメモリ制御方法を提供することを目的とする。
課題を解決するための手段
[0009] 上記課題を解決するために、本発明は、データを記憶するメモリにおけるデータの 入出力を制御するメモリ制御装置であって、前記メモリからデータを読み出す読出手 段と、前記読出手段によって読み出されたデータに擬似エラーを注入する注入手段 と、前記注入手段によって擬似エラーが注入されたデータ中のエラーが発生してい る誤り位置を特定する特定手段と、前記特定手段によって特定された誤り位置と前記 注入手段によって注入された擬似エラーの位置とがー致するか否かを判定する判定 手段と、前記判定手段による判定の結果、誤り位置と擬似エラーの位置とがー致する 場合に、誤り位置のエラーが訂正されたデータを出力する出力手段とを有することを 特徴とする。 [0010] また、本発明は、上記発明において、前記注入手段は、前記読出手段によってデ ータが読み出される回数をカウントするカウント手段を含み、前記カウント手段によつ てカウントされた回数が所定回数に達するごとにデータに擬似エラーを注入すること を特徴とする。
[0011] また、本発明は、上記発明において、前記注入手段は、前記読出手段によって読 み出されたデータの所定のビットを反転させることにより擬似エラーを注入することを 特徴とする。
[0012] また、本発明は、上記発明において、前記判定手段による判定の結果、誤り位置と 擬似エラーの位置とがー致しな 、場合に、前記特定手段を含む誤り訂正回路が故 障している旨を外部に通知する通知手段をさらに有することを特徴とする。
[0013] また、本発明は、上記発明において、前記特定手段は、データに付加されている誤 り訂正符号を用いて誤り位置を特定することを特徴とする。
[0014] また、本発明は、上記発明において、前記出力手段は、誤り位置のビットを反転さ せてエラーを訂正する誤り訂正手段を含むことを特徴とする。
[0015] また、本発明は、上記発明において、前記読出手段は、前記メモリに記憶されたデ ータの一部を書き換えるストア処理が行われる際に、書き換えられることがな 、ストア 対象外データを前記メモリから読み出すことを特徴とする。
[0016] また、本発明は、上記発明において、前記注入手段は、ストア処理の開始後 2回目 に前記読出手段によって読み出されたストア対象外データに擬似エラーを注入する ことを特徴とする。
[0017] また、本発明は、上記発明において、前記出力手段によって出力されるストア対象 外データおよび書き換え後のストアデータそれぞれの誤り訂正符号を生成する生成 手段と、前記生成手段によって生成されたストア対象外データの誤り訂正符号および ストアデータの誤り訂正符号を合成する合成手段と、前記合成手段によって合成され て得られた誤り訂正符号を前記メモリに書き込む書込手段とをさらに有することを特 徴とする。
[0018] また、本発明は、上記発明において、前記注入手段は、前記メモリが複数のウェイ に分割されている場合、いずれか 1つのウェイに対応するデータに擬似エラーを注入 することを特徴とする。
[0019] また、本発明は、データを記憶するメモリにおけるデータの入出力を制御するメモリ 制御方法であって、前記メモリからデータを読み出す読出工程と、前記読出工程に て読み出されたデータに擬似エラーを注入する注入工程と、前記注入工程にて擬似 エラーが注入されたデータ中のエラーが発生している誤り位置を特定する特定工程 と、前記特定工程にて特定された誤り位置と前記注入工程にて注入された擬似エラ 一の位置とがー致するか否かを判定する判定工程と、前記判定工程における判定の 結果、誤り位置と擬似エラーの位置とがー致する場合に、誤り位置のエラーが訂正さ れたデータを出力する出力工程とを有することを特徴とする。 発明の効果
[0020] 本発明によれば、メモリからデータを読み出し、読み出されたデータに擬似エラー を注入し、擬似エラーが注入されたデータ中のエラーが発生している誤り位置を特定 し、特定された誤り位置と注入された擬似エラーの位置とがー致する力否かを判定し 、判定の結果、誤り位置と擬似エラーの位置とがー致する場合に、誤り位置のエラー が訂正されたデータを出力する。このため、データの読み出し時に擬似エラーを含む エラーの訂正が正常に行われることが確認された場合のみデータを出力し、定期的 かつ確実に誤り訂正回路の正当性を検証し、 RAS制御の正当な機能を保証すること ができる。
[0021] また、本発明によれば、データが読み出される回数をカウントし、カウントされた回数 が所定回数に達するごとにデータに擬似エラーを注入するため、メモリへのデータの 書き込みが行われずデータの読み出しが連続して実行される場合でも、定期的に誤 り訂正回路の正当性を検証することができる。
[0022] また、本発明によれば、読み出されたデータの所定のビットを反転させることにより 擬似エラーを注入するため、読み出された元のデータとは必ず異なるビットが発生し
、確実に擬似エラーを注入することができる。
[0023] また、本発明によれば、判定の結果、誤り位置と擬似エラーの位置とがー致しな!/、 場合に、誤り訂正回路が故障している旨を外部に通知するため、例えば誤り訂正回 路の自動修復やユーザへの故障通知などの対処を施すことができ、 RAS制御の信 頼性を向上することができる。
[0024] また、本発明によれば、データに付加されている誤り訂正符号を用いて誤り位置を 特定するため、データ中のエラーが発生しているビットを特定し、確実に誤り位置を 特定することができる。
[0025] また、本発明によれば、誤り位置のビットを反転させてエラーを訂正するため、誤つ て 、るビットが正し 、ビットに変更され、エラーがな!、データを得ることができる。
[0026] また、本発明によれば、メモリに記憶されたデータの一部を書き換えるストア処理が 行われる際に、書き換えられることがないストア対象外データをメモリから読み出すた め、ストア対象外データの誤り訂正が正しく行われることを担保することができる。
[0027] また、本発明によれば、ストア処理の開始後 2回目に読み出されたストア対象外デ ータに擬似エラーを注入するため、ストア処理に伴う誤り訂正符号の更新に用いられ るストア対象外データの誤り訂正が正しく行われることを担保することができ、正確な 誤り訂正符号の更新を行うことができる。
[0028] また、本発明によれば、出力されるストア対象外データおよび書き換え後のストアデ ータそれぞれの誤り訂正符号を生成し、生成されたストア対象外データの誤り訂正符 号およびストアデータの誤り訂正符号を合成し、合成されて得られた誤り訂正符号を メモリに書き込む。このため、ストア処理によってデータの一部が書き換えられても、 正常に動作する誤り訂正回路によって誤り訂正されたデータを元に誤り訂正符号が 更新され、正確な誤り訂正符号の更新を行うことができる。
[0029] また、本発明によれば、メモリが複数のウェイに分割されている場合、いずれか 1つ のウェイに対応するデータに擬似エラーを注入するため、メモリが例えばセットァソシ ァティブ方式のキャッシュメモリである場合にも、定期的かつ確実に誤り訂正回路の 正当性を検証し、 RAS制御の正当な機能を保証することができる。
図面の簡単な説明
[0030] [図 1]図 1は、本発明の一実施の形態に係る CPUの概略構成を示すブロック図であ る。
[図 2]図 2は、一実施の形態に係るキャッシュ制御部の要部構成を示すブロック図で ある。 O
[図 3]図 3は、一実施の形態に係るキャッシュ制御部の読み出し処理時の動作を示す フ1ロ—
〇ー図である。
[図 4]図 4は、一実施の形態に係るキャッシュ制御部のストア処理時の動作を示すフロ 一図である。
符号の説明
キャッシュ制御部
101 接続部
102 読出指示部
103 カウンタ咅
104 読出部
105 擬似エラー注入部
106 誤り位置特定部
107 誤り訂正部
108 判定部
109 ECC生成部
110 ECC合成部
111 ストアデータ取得部
112 書込部
200 3fャッシュ
300 命令処理部
400 演算処理部
500 メインメモリ
発明を実施するための最良の形態
[0032] 以下、本発明の一実施の形態について、図面を参照して詳細に説明する。以下に おいては、 CPUにキャッシュメモリが 1つのみ備えられている場合を例に挙げて説明 するが、本発明はこれに限定されず、 2次以上のキャッシュメモリがある場合にも、そ れぞれのキャッシュメモリに対応する誤り訂正回路の検証に適用することができる。
[0033] 図 1は、本発明の一実施の形態に係る CPUの概略構成を示すブロック図である。 図 1に示す CPUは、キャッシュ制御部 100、キャッシュ 200、命令処理部 300、およ び演算処理部 400を有している。また、この CPUは、メインメモリ 500に接続されてい る。
[0034] キャッシュ制御部 100は、命令処理部 300から発行される命令に応じて、キャッシュ 200に対するデータの書き込みおよび読み出しを制御する。また、キャッシュ制御部 100は、キャッシュ 200から読み出されたデータの誤り訂正を行うとともに、データの 誤り訂正を行う誤り訂正回路が正しく機能して!/ヽるカゝ否かを判定する。キャッシュ制御 部 100の具体的な構成については、後に詳述する。
[0035] キャッシュ 200は、メインメモリ 500上の頻繁に使用されるデータを記憶するとともに 、記憶されたデータに付加される ECC (Error Correcting Code)を記憶する。具体 的には、キャッシュ 200は、データを記憶するデータ RAMおよび ECCを記憶する E CCRAMを有しており、それぞれの RAMにデータおよび ECCを記憶する。なお、キ ャッシュ 200は、データのタグ情報を記憶するタグ RAMなどをさらに有して ヽても良 い。
[0036] 命令処理部 300は、プログラムなどの命令を解釈し、必要な演算処理の実行を演 算処理部 400に指示するとともに、必要なデータの読み出しおよび書き込みをキヤッ シュ制御部 100へ指示する。演算処理部 400は、命令処理部 300からの指示に応じ て、キャッシュ 200など力も読み出されたデータを用いた演算処理を行う。
[0037] メインメモリ 500は、主記憶装置であって、 CPUにおける処理に必要なデータゃプ ログラムを記憶している。メインメモリ 500は、キャッシュ 200と比較すると大容量であ る力、アクセス速度が遅い。
[0038] 図 2は、本実施の形態に係るキャッシュ制御部 100の要部構成を示すブロック図で ある。同図に示すキャッシュ制御部 100は、接続部 101、読出指示部 102、カウンタ 部 103、読出部 104、擬似エラー注入部 105、誤り位置特定部 106、誤り訂正部 107 、判定部 108、 ECC生成部 109、 ECC合成部 110、ストアデータ取得部 111、およ び書込部 112を有して 、る。
[0039] 接続部 101は、命令処理部 300と接続され、命令処理部 300からのデータの読み 出し命令などの命令および書き換えられたストアデータを読出指示部 102へ通知す る一方、キャッシュ 200から読み出されたデータおよび誤り訂正回路が正しく機能し ている力否かの判定結果を命令処理部 300へ出力する。
[0040] 読出指示部 102は、命令処理部 300からデータの読み出し命令またはストア命令 が出された場合、その旨をカウンタ部 103へ通知するとともに、読み出すデータのァ ドレスを読出部 104へ指示する。
[0041] カウンタ部 103は、読出指示部 102から読み出し命令の通知を受けた回数をカウン トし、カウンタ値が所定のしきい値に達すると擬似エラー注入部 105へ擬似エラー注 入を指示するとともにカウンタ値をリセットする。また、カウンタ部 103は、読出指示部 102からストア命令の通知を受けると、 2回目のデータ読み出し時に擬似エラー注入 をするよう擬似エラー注入部 105へ指示する。ストア処理時には、ストアデータがスト ァされる前に、書き換えられることがな 、ストア対象外データがー且キャッシュ 200か ら読み出されて(1回目のデータ読み出し)エラー検出が行われ、エラーがなければ ストアデータがストアされ、次 、でストア対象外データがキャッシュ 200から再び読み 出されて(2回目のデータ読み出し)、ストアデータとともに ECCの生成が行われる。こ のため、カウンタ部 103は、 2回目のデータ読み出し時に擬似エラー注入を指示する
[0042] 読出部 104は、読出指示部 102から指示されるアドレスのデータをキャッシュ 200 力も読み出し、擬似エラー注入部 105へ出力する。具体的には、読出部 104は、命 令処理部 300から出される読み出し命令に含まれるアドレスのデータ、または、ストア 命令に含まれるアドレスのストア対象外データを読み出す。
[0043] 擬似エラー注入部 105は、カウンタ部 103から擬似エラー注入が指示されると、読 出部 104から出力されるデータに擬似エラーを注入する。具体的には、擬似エラー 注入部 105は、読出部 104から出力されるデータの所定のビットを反転させることに より、擬似エラーを注入する。上述したように、カウンタ部 103からの擬似エラー注入 の指示は、所定数の読み出し命令が出された場合やストア命令が出された場合に行 われるため、擬似エラー注入部 105は、少なくとも所定数の読み出し命令が出される ごとに 1回擬似エラーを注入することになる。また、擬似エラー注入部 105は、擬似ェ ラーを注入した位置を判定部 108へ報告する。 [0044] 誤り位置特定部 106は、データに付加されている ECCを用いて、データ中のエラ 一が発生して 、るビットの位置を特定し、特定された誤り位置を誤り訂正部 107およ び判定部 108へ通知する。
[0045] 誤り訂正部 107は、誤り訂正を続行する旨が判定部 108から指示された場合、誤り 位置特定部 106から通知された誤り位置のビットを反転させて、データ中の誤りを訂 正する。そして、誤り訂正部 107は、誤り訂正後のデータを接続部 101または ECC生 成部 109へ出力する。すなわち、誤り訂正部 107は、命令処理部 300から読み出し 命令が出された場合は、誤り訂正後のデータを接続部 101へ出力し、ストア命令が 出された場合は、誤り訂正後のストア対象外データを ECC生成部 109へ出力する。 なお、誤り位置特定部 106および誤り訂正部 107は、本実施の形態における誤り訂 正回路を形成している。
[0046] 判定部 108は、擬似エラー注入部 105から報告された擬似エラーの注入位置と誤 り位置特定部 106から通知された誤り位置とがー致する力否かを判定し、両者が一 致すれば、誤り位置特定部 106による誤り位置の特定が正確であると判断し、誤り訂 正続行を誤り訂正部 107へ指示する。また、判定部 108は、擬似エラー注入位置と 誤り位置とがー致しない場合、誤り位置特定部 106に故障が発生していると判定し、 誤り訂正回路が故障している旨の判定結果を接続部 101へ出力する。
[0047] ECC生成部 109は、誤り訂正部 107から出力されるストア対象外データおよびスト ァデータ取得部 111から出力されるストアデータそれぞれにつ 、て ECCを生成し、 それぞれの ECCを ECC合成部 110へ出力する。
[0048] ECC合成部 110は、 ECC生成部 109から出力されるストア対象外データの ECCと ストアデータの ECCとを合成(マージ)することにより、データの一部が書き換えられる ストア処理が行われた場合の新たな ECCを生成し、書込部 112へ出力する。
[0049] ストアデータ取得部 111は、命令処理部 300からストア命令が出された場合に、書 き換えられたストアデータを接続部 101から取得し、 ECC生成部 109および書込部 1 12へ出力する。
[0050] 書込部 112は、ストアデータ取得部 111から出力されるストアデータをキャッシュ 20 0へ書き込む。また、書込部 112は、 ECC合成部 110から出力される新たな ECCを キャッシュ 200へ書き込む。
[0051] 次いで、上記のように構成されたキャッシュ制御部 100の読み出し処理時の動作に ついて、図 3に示すフロー図を参照しながら説明する。
[0052] まず、初期状態では、カウンタ部 103のカウンタ値が 0にリセットされている (ステップ S101)。このとき、命令処理部 300からキャッシュ制御部 100へデータの読み出し命 令が出されると (ステップ S102)、読み出し命令は、接続部 101を介して読出指示部 102へ入力される。そして、読出指示部 102によって、読み出すデータのアドレスが 読出部 104へ指示されるとともに、読み出し処理が実行される旨がカウンタ部 103へ 通知される。
[0053] そして、読出部 104によって、指示されたアドレスのデータがキャッシュ 200から読 み出されるとともに (ステップ S103)、読み出し処理実行の旨が通知されると、カウン タ部 103によってカウンタ値が 1インクリメントされる (ステップ S 104)。カウンタ値が 1 インクリメントされると、カウンタ部 103によって、カウンタ値が所定のしきい値に達した か否かが判定される(ステップ S 105)。
[0054] この判定の結果、カウンタ値が所定のしきい値に達していない場合 (ステップ S 105 No)、読出部 104によってキャッシュ 200から読み出されたデータは、擬似エラー注 入部 105を経由して誤り訂正回路へ出力され、誤り位置特定部 106によってエラー の位置が検出され、誤り訂正部 107によってエラーが検出された位置のビットが反転 されることにより誤り訂正が行われ (ステップ S109)、誤り訂正後のデータが接続部 1 01を介して命令処理部 300へ出力される。すなわち、カウンタ部 103のカウンタ値が 所定のしき!/、値に達して 、な 、場合は、誤り訂正回路が正常に機能して 、ると 、う前 提の下でデータの誤り訂正が行われ、読み出し処理が実行される。そして、この読み 出し処理の実行後、命令処理部 300による次の読み出し命令が待機される。
[0055] ここでは、再び命令処理部 300からキャッシュ制御部 100へデータの読み出し命令 が出された (ステップ S 102)ものとして説明を続ける。この場合も、読み出し命令は、 接続部 101を介して読出指示部 102へ入力され、読出指示部 102からの指示により 、読出部 104によってデータがキャッシュ 200から読み出されるとともに (ステップ S10 3)、カウンタ部 103によってカウンタ値が 1インクリメントされる(ステップ S 104)。そし て、カウンタ部 103によって、カウンタ値が所定のしきい値に達したか否かが判定され る(ステップ S 105)。
[0056] この判定の結果、カウンタ値が所定のしきい値に達した場合 (ステップ S105Yes)、 カウンタ部 103から擬似エラー注入部 105に対して、データに擬似エラーを注入する 旨の指示が出され、読出部 104によってキャッシュ 200から読み出されたデータが擬 似エラー注入部 105へ出力されると、擬似エラー注入部 105によって、データに擬似 エラーが注入される (ステップ S106)。この擬似エラーは、擬似エラー注入部 105に よって、データの所定のビットが反転されることによって注入される。擬似エラー注入 部 105によって擬似エラーが注入された位置は、判定部 108へ報告される。
[0057] ここで、擬似エラー注入部 105によるキャッシュ 200から読み出されたデータへの擬 似エラーの注入は、カウンタ部 103のカウンタ値が所定のしきい値に達するたびに、 換言すれば、命令処理部 300から出される読み出し命令の数が所定数に達するた びに実行されるため、命令処理部 300から連続して読み出し命令が出されても、定 期的に誤り訂正回路の正当性を検証することができ、 RAS制御の正当な機能を保証 することができる。
[0058] そして、擬似エラーが注入されたデータは、誤り訂正回路内の誤り位置特定部 106 へ出力され、誤り位置特定部 106によって、データに付加された ECCが用いられるこ とにより、エラーが発生している誤り位置が特定される (ステップ S107)。ここで、擬似 エラー注入部 105によって擬似エラーが注入されている場合、誤り位置特定部 106 が正しくエラーの位置を特定して 、れば、擬似エラー注入部 105が注入した擬似ェ ラーの位置においてエラーが検出されるはずである。そこで、誤り位置特定部 106に よって誤り位置が特定されると、擬似エラーの位置と比較するために、誤り位置が判 定部 108へ通知される。また、データと誤り位置の情報は、誤り訂正部 107へも出力 される。
[0059] 判定部 108に誤り位置が通知されると、判定部 108によって、誤り位置が擬似エラ 一注入部 105から報告された擬似エラーの位置と比較される (ステップ S 108)。この 比較の結果、誤り位置が擬似エラーの位置と一致していれば (ステップ S108Yes)、 誤り位置特定部 106が正常に機能しており、誤り訂正回路の正当性が保証されると 判断され、誤り訂正の続行が誤り訂正部 107に対して指示される。
[0060] そして、誤り訂正部 107によって、誤り位置特定部 106から出力されたデータにお いて誤り位置のビットが反転されることにより、データの誤り訂正が行われる (ステップ S109)。誤り訂正後のデータは、誤り訂正部 107から接続部 101経由で命令処理部 300へ出力され、読み出し命令に応じたデータの読み出し処理が完了する。
[0061] 一方、誤り位置と擬似エラーの位置との比較の結果、誤り位置が擬似エラーの位置 と一致していなければ (ステップ S108No)、誤り位置特定部 106が正常に機能して おらず、誤り訂正回路による誤り訂正によってデータにさらなるエラーが生じると判断 され、誤り訂正回路が故障している旨の判定結果が接続部 101経由で命令処理部 3 00へ出力され、誤り訂正回路の故障が通知される (ステップ S 110)。誤り訂正回路の 故障が命令処理部 300へ通知されることにより、例えば誤り訂正回路の自動修復や ユーザへの故障通知などの対処を施すことができ、 RAS制御の信頼性を向上するこ とがでさる。
[0062] 次に、本実施の形態に係るキャッシュ制御部 100のストア処理時の動作について、 図 4に示すフロー図を参照しながら説明する。なお、図 4において、図 3と同じ部分に は同じ符号を付し、その詳しい説明を省略する。
[0063] まず、命令処理部 300からキャッシュ制御部 100へデータのストア命令が出されると
(ステップ S201)、ストア命令は、接続部 101を介して読出指示部 102へ入力される 。そして、読出指示部 102によって、書き換えられるストアデータ以外のデータである ストア対象外データのアドレスが読出部 104へ指示されるとともに、ストア処理が実行 される旨がカウンタ部 103へ通知される(ステップ S202)。
[0064] そして、読出部 104によって、アドレスを指示されたストア対象外データがキャッシュ 200から読み出されるとともに (ステップ S 203)、ストア処理実行の旨が通知されると、 カウンタ部 103によって、 2回目のストア対象外データ読み出し時に擬似エラーを注 入するよう擬似エラー注入部 105へ指示が出される。このため、読出部 104によって 今回読み出されたストア対象外データは、擬似エラー注入部 105による処理を受け ることなぐ誤り位置特定部 106によって誤り位置が特定され、特定された誤り位置の ビットが誤り訂正部 107によって反転されることにより誤り訂正が行われる (ステップ S 204)。
[0065] この誤り訂正回路における誤り訂正の過程で、ストア対象外データにエラーがない ことが確認されると、ストアデータ取得部 111によって、命令処理部 300から接続部 1 01へ出力されたストアデータが取得され、ストアデータは、キャッシュ 200への書き込 み指示とともに書込部 112へ出力され、書込部 112によってデータのストアが行われ る(ステップ S205)。また、ストアデータは、ストアデータ取得部 111から ECC生成部 109へ出力される。
[0066] 書込部 112によるデータのストアが完了すると、読出部 104によって再度ストア対象 外データがキャッシュ 200から読み出される (ステップ S206)。そして、読み出された ストア対象外データは、擬似エラー注入部 105へ出力され、今回の読み出しが 2回 目であるため、擬似エラー注入部 105によって擬似エラーが注入される (ステップ S1 06)。また、擬似ヱラーが注入された位置は、判定部 108へ報告される。
[0067] そして、擬似エラーが注入されたストア対象外データは、誤り訂正回路内の誤り位 置特定部 106によって ECCが用いられることにより、エラーが発生している誤り位置 が特定され (ステップ S 107)、誤り位置が判定部 108および誤り訂正部 107へ通知さ れる。判定部 108に誤り位置が通知されると、判定部 108によって、誤り位置が擬似 エラー注入部 105から報告された擬似エラーの位置と比較される (ステップ S 108)。 この比較の結果、誤り位置が擬似エラーの位置と一致していれば (ステップ S108Ye s)、誤り位置特定部 106が正常に機能しており、誤り訂正回路の正当性が保証され ると判断され、誤り訂正の続行が誤り訂正部 107に対して指示される。
[0068] そして、誤り訂正部 107によって、誤り位置特定部 106から出力されたストア対象外 データにおいて誤り位置のビットが反転されることにより、ストア対象外データの誤り 訂正が行われる (ステップ S 109)。誤り訂正後のストア対象外データは、誤り訂正部 1 07から ECC生成部 109へ出力される。
[0069] これにより、 ECC生成部 109には、ストアデータおよびストア対象外データが入力さ れ、 ECC生成部 109によって、ストアデータの ECCおよびストア対象外データの EC Cが生成される(ステップ S207)。これらの ECCは、 ECC合成部 110によって合成( マージ)され (ステップ S208)、ストア処理後のデータの ECCが得られる。そして、スト ァ処理後のデータの ECCは、書込部 112によって、キャッシュ 200内の ECCRAM に書き込まれ、ストア命令に応じたデータのストア処理およびストア処理に応じた EC Cの更新が完了する。
[0070] 一方、誤り位置と擬似エラーの位置との比較の結果、誤り位置が擬似エラーの位置 と一致していなければ (ステップ S108No)、誤り位置特定部 106が正常に機能して おらず、誤り訂正回路による誤り訂正によってストア対象外データにさらなるエラーが 生じ、正しい ECCが生成されないと判断され、誤り訂正回路が故障している旨の判 定結果が接続部 101経由で命令処理部 300へ出力され、誤り訂正回路の故障が通 知される (ステップ S 110)。誤り訂正回路の故障が命令処理部 300へ通知されること により、例えば誤り訂正回路の自動修復やユーザへの故障通知などの対処を施すこ とができ、 RAS制御の信頼性を向上することができる。
[0071] 以上のように、本実施の形態によれば、所定数の読み出し命令が出されるたび、ま たはストア命令が出されるたびに、キャッシュ力も読み出されるデータに擬似エラーを 注入し、擬似エラーが注入されたデータの誤り位置を誤り訂正回路にて特定し、特定 された誤り位置が擬似エラーの位置と一致する力否力判定する。このため、誤り位置 と擬似エラーの位置が一致すれば誤り訂正回路が正常に機能していると判断するこ とができる一方、誤り位置と擬似エラーの位置が一致しなければ誤り訂正回路の故障 と判断することができ、定期的かつ確実に誤り訂正回路の正当性を検証し、 RAS制 御の正当な機能を保証することができる
[0072] なお、上記一実施の形態においては、キャッシュメモリからのデータの読み出し時 に擬似エラーを注入するものとした力 その他の種々のメモリからのデータの読み出 し時に擬似エラーを注入し、誤り訂正回路の正当性を検証することもできる。また、キ ャッシュメモリが例えばセットァソシァティブ方式で構成されており、複数のウェイを有 する場合には、擬似エラー注入時にいずれか 1つのウェイを指定し、指定されたゥェ ィのデータに擬似エラーを注入するようにしても良い。
産業上の利用可能性
[0073] 本発明は、定期的かつ確実に誤り訂正回路の正当性を検証し、 RAS制御の正当 な機能を保証する場合に適用することができる。

Claims

請求の範囲
[1] データを記憶するメモリにおけるデータの入出力を制御するメモリ制御装置であつ て、
前記メモリからデータを読み出す読出手段と、
前記読出手段によって読み出されたデータに擬似エラーを注入する注入手段と、 前記注入手段によって擬似エラーが注入されたデータ中のエラーが発生している 誤り位置を特定する特定手段と、
前記特定手段によって特定された誤り位置と前記注入手段によって注入された擬 似エラーの位置とがー致するか否かを判定する判定手段と、
前記判定手段による判定の結果、誤り位置と擬似エラーの位置とがー致する場合 に、誤り位置のエラーが訂正されたデータを出力する出力手段と
を有することを特徴とするメモリ制御装置。
[2] 前記注入手段は、
前記読出手段によってデータが読み出される回数をカウントするカウント手段を含 み、
前記カウント手段によってカウントされた回数が所定回数に達するごとにデータに 擬似エラーを注入することを特徴とする請求項 1記載のメモリ制御装置。
[3] 前記注入手段は、
前記読出手段によって読み出されたデータの所定のビットを反転させることにより擬 似エラーを注入することを特徴とする請求項 1記載のメモリ制御装置。
[4] 前記判定手段による判定の結果、誤り位置と擬似エラーの位置とがー致しない場 合に、前記特定手段を含む誤り訂正回路が故障している旨を外部に通知する通知 手段をさらに有することを特徴とする請求項 1記載のメモリ制御装置。
[5] 前記特定手段は、
データに付加されている誤り訂正符号を用いて誤り位置を特定することを特徴とす る請求項 1記載のメモリ制御装置。
[6] 前記出力手段は、
誤り位置のビットを反転させてエラーを訂正する誤り訂正手段を含むことを特徴とす る請求項 1記載のメモリ制御装置。
[7] 前記読出手段は、
前記メモリに記憶されたデータの一部を書き換えるストア処理が行われる際に、書き 換えられることがないストア対象外データを前記メモリから読み出すことを特徴とする 請求項 1記載のメモリ制御装置。
[8] 前記注入手段は、
ストア処理の開始後 2回目に前記読出手段によって読み出されたストア対象外デー タに擬似エラーを注入することを特徴とする請求項 7記載のメモリ制御装置。
[9] 前記出力手段によって出力されるストア対象外データおよび書き換え後のストアデ ータそれぞれの誤り訂正符号を生成する生成手段と、
前記生成手段によって生成されたストア対象外データの誤り訂正符号およびストア データの誤り訂正符号を合成する合成手段と、
前記合成手段によって合成されて得られた誤り訂正符号を前記メモリに書き込む書 込手段と
をさらに有することを特徴とする請求項 7記載のメモリ制御装置。
[10] 前記注入手段は、
前記メモリが複数のウェイに分割されている場合、いずれか 1つのウェイに対応する データに擬似エラーを注入することを特徴とする請求項 1記載のメモリ制御装置。
[11] データを記憶するメモリにおけるデータの入出力を制御するメモリ制御方法であつ て、
前記メモリからデータを読み出す読出工程と、
前記読出工程にて読み出されたデータに擬似エラーを注入する注入工程と、 前記注入工程にて擬似エラーが注入されたデータ中のエラーが発生している誤り 位置を特定する特定工程と、
前記特定工程にて特定された誤り位置と前記注入工程にて注入された擬似エラー の位置とがー致する力否かを判定する判定工程と、
前記判定工程における判定の結果、誤り位置と擬似エラーの位置とがー致する場 合に、誤り位置のエラーが訂正されたデータを出力する出力工程と を有することを特徴とするメモリ制御方法。
PCT/JP2006/303474 2006-02-24 2006-02-24 メモリ制御装置およびメモリ制御方法 WO2007096997A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008501550A JP4834721B2 (ja) 2006-02-24 2006-02-24 メモリ制御装置およびメモリ制御方法
PCT/JP2006/303474 WO2007096997A1 (ja) 2006-02-24 2006-02-24 メモリ制御装置およびメモリ制御方法
US12/222,054 US8140940B2 (en) 2006-02-24 2008-07-31 Method and apparatus for controlling memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/303474 WO2007096997A1 (ja) 2006-02-24 2006-02-24 メモリ制御装置およびメモリ制御方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/222,054 Continuation US8140940B2 (en) 2006-02-24 2008-07-31 Method and apparatus for controlling memory

Publications (1)

Publication Number Publication Date
WO2007096997A1 true WO2007096997A1 (ja) 2007-08-30

Family

ID=38437058

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/303474 WO2007096997A1 (ja) 2006-02-24 2006-02-24 メモリ制御装置およびメモリ制御方法

Country Status (3)

Country Link
US (1) US8140940B2 (ja)
JP (1) JP4834721B2 (ja)
WO (1) WO2007096997A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008026568A1 (de) * 2008-06-03 2010-04-08 Qimonda Ag Halbleiterbauelement, Speichermodul und Verfahren zum Testen einer Fehlerkorrektur-Funktionalität beim Zugriff auf ein Speicherbauelement
JP2011108075A (ja) * 2009-11-19 2011-06-02 Yokogawa Electric Corp コントローラ
JP2011192211A (ja) * 2010-03-16 2011-09-29 Fujitsu Ltd 制御装置,試験方法及び試験プログラム
JP2012073678A (ja) * 2010-09-27 2012-04-12 Fujitsu Ltd 擬似エラー発生装置
JP2014146110A (ja) * 2013-01-28 2014-08-14 Nec Corp 情報処理装置、エラー検出機能診断方法およびコンピュータプログラム
JP2017004588A (ja) * 2015-06-10 2017-01-05 インフィネオン テクノロジーズ アクチエンゲゼルシャフトInfineon Technologies AG 誤り訂正能力をテストするための回路および方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5544878B2 (ja) * 2009-12-25 2014-07-09 富士通株式会社 故障制御装置、プロセッサコア、演算処理装置、情報処理装置および擬似故障制御方法
WO2012137323A1 (ja) * 2011-04-06 2012-10-11 富士通株式会社 情報処理装置及び疑似障害発生方法
US8984372B2 (en) * 2012-11-21 2015-03-17 Nvidia Corporation Techniques for storing ECC checkbits in a level two cache
KR20160105625A (ko) * 2015-02-27 2016-09-07 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10706950B1 (en) * 2018-06-19 2020-07-07 Cadence Design Systems, Inc. Testing for memory error correction code logic

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01123345A (ja) * 1987-11-09 1989-05-16 Oki Electric Ind Co Ltd 誤り訂正装置の自己診断回路
JPH04343154A (ja) * 1991-05-20 1992-11-30 Yokogawa Electric Corp メモリ装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61226853A (ja) * 1985-03-30 1986-10-08 Toshiba Corp 半導体メモリにおける誤り検出訂正機能テスト回路
JPH0693231B2 (ja) * 1987-02-16 1994-11-16 日本電気株式会社 キヤツシユ記憶装置の擬似障害発生方式
JPH02177099A (ja) * 1988-12-27 1990-07-10 Nec Corp 半導体記憶装置
JPH06325595A (ja) * 1991-03-27 1994-11-25 Nec Kyushu Ltd 誤り訂正回路付きprom装置
JPH0784889A (ja) 1993-09-17 1995-03-31 Fujitsu Ltd メモリ装置のエラー検出訂正回路の試験方式
JPH08137763A (ja) * 1994-11-04 1996-05-31 Fujitsu Ltd フラッシュメモリ制御装置
US7283380B1 (en) * 2001-08-03 2007-10-16 Netlogic Microsystems, Inc. Content addressable memory with selective error logging
US6971053B1 (en) * 2002-07-30 2005-11-29 Cypress Semiconductor Corp. Method for initiating internal parity operations in a CAM device
US6904587B2 (en) * 2002-12-20 2005-06-07 Synopsys, Inc. Incremental lithography mask layout design and verification
GB0619949D0 (en) * 2006-10-09 2006-11-15 Advanced Risc Mach Ltd Integrated circuit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01123345A (ja) * 1987-11-09 1989-05-16 Oki Electric Ind Co Ltd 誤り訂正装置の自己診断回路
JPH04343154A (ja) * 1991-05-20 1992-11-30 Yokogawa Electric Corp メモリ装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008026568A1 (de) * 2008-06-03 2010-04-08 Qimonda Ag Halbleiterbauelement, Speichermodul und Verfahren zum Testen einer Fehlerkorrektur-Funktionalität beim Zugriff auf ein Speicherbauelement
JP2011108075A (ja) * 2009-11-19 2011-06-02 Yokogawa Electric Corp コントローラ
JP2011192211A (ja) * 2010-03-16 2011-09-29 Fujitsu Ltd 制御装置,試験方法及び試験プログラム
JP2012073678A (ja) * 2010-09-27 2012-04-12 Fujitsu Ltd 擬似エラー発生装置
JP2014146110A (ja) * 2013-01-28 2014-08-14 Nec Corp 情報処理装置、エラー検出機能診断方法およびコンピュータプログラム
JP2017004588A (ja) * 2015-06-10 2017-01-05 インフィネオン テクノロジーズ アクチエンゲゼルシャフトInfineon Technologies AG 誤り訂正能力をテストするための回路および方法

Also Published As

Publication number Publication date
JP4834721B2 (ja) 2011-12-14
US8140940B2 (en) 2012-03-20
US20080301528A1 (en) 2008-12-04
JPWO2007096997A1 (ja) 2009-07-09

Similar Documents

Publication Publication Date Title
WO2007096997A1 (ja) メモリ制御装置およびメモリ制御方法
US7299400B2 (en) Error correction circuit
US7822965B2 (en) BIOS file switching method and controller device thereof
US9619318B2 (en) Memory circuits, method for accessing a memory and method for repairing a memory
JP5162763B2 (ja) メモリアクセスシステム
US8856614B2 (en) Semiconductor memory device detecting error
US8347183B2 (en) Flash memory device using ECC algorithm and method of operating the same
US11099949B2 (en) Method apparatus for resuming and recovery checking from interrupted programming of one-time programmable memory device
JP2009295252A (ja) 半導体記憶装置及びそのエラー訂正方法
CN112559059A (zh) 一种bios选项配置方法及相关装置
US20220413748A1 (en) Semiconductor memory device and operation method
US8286053B2 (en) Method and apparatus for reading data
KR20080114208A (ko) 에러 정정 기능을 갖는 불휘발성 메모리 장치의 카피투프로그램방법
US20100083073A1 (en) Data processing apparatus, memory controlling circuit, and memory controlling method
JP6332134B2 (ja) メモリ診断回路
JP4742553B2 (ja) 記憶装置
JP2014075065A (ja) 半導体装置及びその回路動作開始方法
JP2016122338A (ja) エラー訂正装置
CN117453146B (zh) 数据读取方法、系统、eFlash控制器及存储介质
CN110838314A (zh) 一种存储数据的加固方法及装置
JP2013156821A (ja) データ処理装置、制御ユニット、メモリ制御方法
CN116932275B (zh) 一种数据刷洗控制方法、ddr控制器和片上系统
US11831337B2 (en) Semiconductor device and error detection methods
JP2012059337A (ja) 半導体記憶装置
JP7160860B2 (ja) メモリエラーを訂正するためのシステム及び方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref document number: 2008501550

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 06714613

Country of ref document: EP

Kind code of ref document: A1