JP7826853B2 - MEMORY SYSTEM AND DATA CORRECTING METHOD - Patent application - Google Patents
MEMORY SYSTEM AND DATA CORRECTING METHOD - Patent applicationInfo
- Publication number
- JP7826853B2 JP7826853B2 JP2022093839A JP2022093839A JP7826853B2 JP 7826853 B2 JP7826853 B2 JP 7826853B2 JP 2022093839 A JP2022093839 A JP 2022093839A JP 2022093839 A JP2022093839 A JP 2022093839A JP 7826853 B2 JP7826853 B2 JP 7826853B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- unit
- read
- request
- scrubbing
- 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.)
- Active
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Description
本発明は、メモリに格納されたデータの誤りを外部の制御部により訂正するメモリシステムおよびデータ訂正方法に関する。 The present invention relates to a memory system and a data correction method in which errors in data stored in memory are corrected by an external control unit.
従来、ダイナミック・ランダム・アクセス・メモリ(DRAM)とそのデータ管理を行うメモリコントローラ等の制御部とを有し、DRAMに格納されたデータにビット誤り(エラー)が生じた場合に当該誤りを訂正可能なメモリシステムが知られている。この種のメモリシステムは、制御部がDRAMにデータの書き込み処理を行う際に、当該データに対応する誤り訂正コード(ECC)を算出し、当該データと算出したECCをDRAMに格納する。また、この種のメモリシステムは、制御部がDRAMに格納されたデータを読み込む際には、データおよび当該データに対応するECCを読み込むと共に、ECCを使用して照合し、誤りが生じていた場合には訂正もしくは検出を行う。例えば、64ビットのデータに対して8ビットのECCを付加する場合には、制御部は、1ビットの誤りについては訂正し、2ビットの誤りについては検出を行う。制御部は、訂正したデータで読み込んだデータを上書きする処理を行うことで、誤りが生じたDRAMの格納データを正しいデータに修正することができる。 Conventionally, memory systems have been known that include dynamic random access memory (DRAM) and a control unit such as a memory controller that manages the data, and that can correct bit errors (errors) when they occur in data stored in the DRAM. In this type of memory system, when the control unit writes data to the DRAM, it calculates an error correction code (ECC) corresponding to the data and stores the data and the calculated ECC in the DRAM. In addition, when the control unit reads data stored in the DRAM, it reads the data and the ECC corresponding to the data and compares them using the ECC, correcting or detecting any errors that may have occurred. For example, when an 8-bit ECC is added to 64-bit data, the control unit corrects 1-bit errors and detects 2-bit errors. The control unit overwrites the read data with the corrected data, thereby correcting the erroneous data stored in the DRAM.
特許文献1に記載のメモリシステムは、制御部がDRAMに格納された全データを一定期間内にすべて読み込み、ECCを使用して誤りの検出および訂正を行った場合、訂正後の正しいデータをDRAMに書き戻すスクラビング処理を実行する。 In the memory system described in Patent Document 1, the control unit reads all data stored in the DRAM within a certain period of time, and if errors are detected and corrected using ECC, it performs a scrubbing process in which the corrected data is written back to the DRAM.
さて、DRAMの一種として、DRAM内部にECCを生成・格納すると共に、誤り訂正を自律して実行することが可能なもの(以下「ECC対応DRAM」という)が知られている。ECC対応DRAMは、例えば、データ格納領域と、ECC格納領域とを備え、外部の制御部からのリード要求があった場合に、データおよびECCを各領域からリードし、データに誤りがあった場合には誤りを訂正したデータを制御部に返すことができる。ECC対応DRAMは、偶発的な誤りが生じても正しいデータを外部の制御部に返すことができるため、例えば、サーバ向けメモリなどのエラーに強い特性が要求される用途に用いられる。 One type of DRAM known is one that generates and stores ECC codes internally and is also capable of autonomously performing error correction (hereafter referred to as "ECC-enabled DRAM"). ECC-enabled DRAM, for example, has a data storage area and an ECC storage area. When a read request is received from an external control unit, it reads the data and ECC from each area and, if an error is found in the data, returns the corrected data to the control unit. Because ECC-enabled DRAM can return correct data to an external control unit even if an accidental error occurs, it is used in applications that require error-resistant characteristics, such as server memory.
ここで、制御部とECC対応DRAMとを有するメモリシステムについて検討する。ECC対応DRAMは、外部の制御部に誤り訂正後のデータを返すことができるものの、基本的には内部に格納されたデータを訂正後の正しいデータで上書きしないため、データ格納領域には誤りが生じたデータが残ることになる。 Here, we consider a memory system that has a control unit and ECC-compatible DRAM. Although ECC-compatible DRAM can return error-corrected data to an external control unit, it does not generally overwrite the data stored internally with corrected data, meaning that erroneous data remains in the data storage area.
しかし、このメモリシステムは、ECC対応DRAMから読み込まれるデータが内部で訂正された後のデータであるため、外部の制御部がECC対応DRAMに格納されたデータに誤りが生じているか否かを検出することができない。また、このメモリシステムにおいて、ECC対応DRAM外に別途ECCを格納し、上記のスクラビング処理を実行したとしても、外部の制御部がECC対応DRAMから読み込むデータが訂正後のデータであるため、データの誤りを検出することができない。 However, in this memory system, the data read from the ECC-compatible DRAM is data that has been internally corrected, so the external control unit cannot detect whether an error has occurred in the data stored in the ECC-compatible DRAM. Furthermore, even if this memory system stores an ECC separately outside the ECC-compatible DRAM and performs the above-mentioned scrubbing process, the data that the external control unit reads from the ECC-compatible DRAM is corrected data, so data errors cannot be detected.
本発明は、上記の点に鑑み、ECC対応DRAMを用いたメモリシステムにおいて、ECC対応DRAMに格納されたデータに誤りが生じた場合であっても誤り訂正を可能とすることを目的とする。 In view of the above, the present invention aims to enable error correction in a memory system using ECC-compatible DRAM, even if an error occurs in data stored in the ECC-compatible DRAM.
上記目的を達成するため、請求項1に記載のメモリシステムは、データを格納するデータ格納領域(31)と、データに対応する誤り訂正コードを生成するECC生成部(32)と、ECC生成部で生成した誤り訂正コードを格納するECC格納領域(33)と、データに誤りが生じた場合に誤り訂正コードを用いて訂正を行うエラー訂正部(34)とを有する記憶部(3)と、記憶部のデータ格納領域に格納されたデータの読み込みおよび書き込みの処理を行う制御部(2)と、を備え、制御部は、記憶部のスクラビング処理を実行するスクラビング処理回路(4)と、スクラビング処理回路からの記憶部へのアクセス要求と、制御部とは異なる他の領域から記憶部へのアクセス要求との調停を行う調停回路(5)とを有し、スクラビング処理においては記憶部に格納されたデータを読み込むと共に、読み込んだデータをそのまま記憶部に書き戻す処理を実行し、調停回路は、スクラビング処理回路からのリード要求と次のライト要求との間に、記憶部のデータ格納領域のうち所定のアドレス範囲への他の領域からのライト要求であって、所定のアドレス範囲がスクラビング処理回路からの記憶部へのリード要求に対応するアドレス範囲の少なくとも一部を含む場合には、他の領域からのライト要求をスクラビング処理回路からのライト要求による書き込み処理が完了するまで保留する処理を行う。 In order to achieve the above object, the memory system according to claim 1 comprises a memory unit (3) having a data storage area (31) for storing data, an ECC generation unit (32) for generating an error correction code corresponding to the data, an ECC storage area (33) for storing the error correction code generated by the ECC generation unit, and an error correction unit (34) for correcting an error in the data using the error correction code, and a control unit (2) for reading and writing data stored in the data storage area of the memory unit, wherein the control unit is configured to receive a scrubbing process from a scrubbing process circuit (4) for executing a scrubbing process on the memory unit , and to receive an access request from the scrubbing process circuit and an error correction process from another unit different from the control unit. and an arbitration circuit (5) that arbitrates between access requests from the area to the memory unit, and in the scrubbing process, data stored in the memory unit is read and the read data is written back to the memory unit as is, and if there is a write request from another area to a predetermined address range in the data storage area of the memory unit between the read request from the scrubbing process circuit and the next write request, and the predetermined address range includes at least a part of the address range corresponding to the read request from the scrubbing process circuit to the memory unit, the arbitration circuit performs a process of suspending the write request from the other area until the write process based on the write request from the scrubbing process circuit is completed.
このメモリシステムは、内部で自律して誤り訂正が可能な記憶部と、記憶部のうちデータ格納領域に格納されたデータの読み込みおよび書き込みの処理を行う制御部とを備え、制御部が読み込んだデータをそのまま記憶部に書き戻す処理を行う。制御部が記憶部から読み込んだデータは、データに誤りが生じていたとしても記憶部内のエラー訂正部により訂正された後のデータであるため、誤りのない正しいデータと見込まれる。そして、記憶部に格納された誤りが生じたデータは、制御部が読み込んだ訂正後のデータ、すなわち正しいデータによりそのまま書き戻されるため、誤りが生じる前の状態に戻ることとなる。そのため、ECC対応DRAMのように内部で自律して誤りを訂正する記憶部を用い、制御部が記憶部に格納されたデータの誤りを検出できない場合であっても、正しいデータに訂正することが可能なメモリシステムとなる。 This memory system comprises a memory unit capable of internally and autonomously correcting errors, and a control unit that processes reading and writing data stored in the data storage area of the memory unit. The data read by the control unit is written back to the memory unit as is. Even if an error occurs in the data read by the control unit from the memory unit, the data has been corrected by the error correction unit within the memory unit, and is therefore expected to be error-free and correct. The data with an error stored in the memory unit is then written back as is using the corrected data read by the control unit, i.e., the correct data, returning it to the state it was in before the error occurred. Therefore, by using a memory unit that internally and autonomously corrects errors, such as ECC-compatible DRAM, this memory system is capable of correcting the data to be correct even if the control unit cannot detect an error in the data stored in the memory unit.
請求項4に記載のデータ訂正方法は、データを格納するデータ格納領域(31)と、データに対応する誤り訂正コードを生成するECC生成部(32)と、ECC生成部で生成した誤り訂正コードを格納するECC格納領域(33)と、データに誤りが生じた場合に誤り訂正コードを用いて当該誤りの訂正を行うエラー訂正部(34)とを有する記憶部(3)と、記憶部のスクラビング処理を実行するスクラビング処理回路(4)と、スクラビング処理回路からの記憶部へのアクセス要求と、制御部とは異なる他の領域から記憶部へのアクセス要求との調停を行う調停回路(5)とを有し、記憶部のうちデータ格納領域に格納されたデータの読み込みおよび書き込みの処理を行う制御部(2)と、を備えるメモリシステムにおいて、データの誤りを訂正するデータ訂正方法であって、制御部が、所定期間ごとに、記憶部のうちデータ格納領域に格納された全データについてリード要求およびライト要求を行うことと、1回のリード要求において、制御部がデータ格納領域の一部のデータを読み込み、一部のデータを次のライト要求まで保持することと、1回のライト要求において、直前のリード要求により読み込んだ一部のデータをデータ格納領域のうち当該一部のデータが格納された同一のアドレスにそのまま書き込むことと、スクラビング処理回路からのリード要求と次のライト要求との間に、記憶部のデータ格納領域のうち所定のアドレス範囲への他の領域からのライト要求であって、所定のアドレス範囲がスクラビング処理回路からの記憶部へのリード要求に対応するアドレス範囲の少なくとも一部を含む場合には、調停回路が、他の領域からのライト要求をスクラビング処理回路からのライト要求による書き込み処理が完了するまで保留する処理を行うことと、を含む。 A data correction method according to claim 4 is a data correction method for correcting errors in data in a memory system comprising: a storage unit (3) having a data storage area (31) for storing data, an ECC generation unit (32) for generating an error correction code corresponding to the data, an ECC storage area (33) for storing the error correction code generated by the ECC generation unit , and an error correction unit (34) for correcting an error using the error correction code when an error occurs in the data; a scrubbing processing circuit (4) for performing scrubbing processing of the storage unit; and a control unit (2) having an arbitration circuit (5) for arbitrating between an access request from the scrubbing processing circuit to the storage unit and an access request from another area different from the control unit, and for reading and writing data stored in the data storage area of the storage unit, wherein the control unit periodically scrubs the data storage area of the storage unit. the control unit reads a portion of the data in the data storage area in one read request and holds the portion of the data until the next write request; the control unit writes the portion of the data read by the immediately preceding read request directly to the same address in the data storage area where the portion of the data is stored in one write request; and if, between the read request from the scrubbing processing circuit and the next write request, there is a write request from another area to a predetermined address range in the data storage area of the memory unit, and the predetermined address range includes at least a part of the address range corresponding to the read request from the scrubbing processing circuit to the memory unit, the arbitration circuit performs processing to suspend the write request from the other area until the write processing in accordance with the write request from the scrubbing processing circuit is completed .
このエラー訂正方法は、内部で自律して誤り訂正が可能な記憶部と、記憶部のうちデータ格納領域に格納されたデータの読み込みおよび書き込みの処理を行う制御部とを備えるメモリシステムにおいて、当該データの訂正を行う。制御部が1回のリード要求において、制御部がデータ格納領域の一部のデータを読み込んで保持し、次のライト要求において直前のリード要求により保持した一部のデータを記憶部のうち同一のアドレスにそのまま書き込む。記憶部が自律して誤り訂正を行う構成であるため、制御部が1回のリード要求により読み込んだデータは誤りのない正しいデータと見込まれ、その「正しいデータ」をそのまま書き込むことで、データ格納領域は、誤りが訂正されたデータを格納することとなる。この方法によれば、ECC対応DRAMのように内部で自律して誤りを訂正する記憶部を用いたメモリシステムであっても、記憶部内の誤りが生じたデータを訂正することが可能となる。 This error correction method corrects data in a memory system that includes a storage unit capable of internally and autonomously correcting errors, and a control unit that processes reading and writing data stored in a data storage area of the storage unit. In one read request, the control unit reads and stores a portion of the data in the data storage area, and in the next write request, writes the portion of the data stored in the previous read request directly to the same address in the storage unit. Because the storage unit is configured to perform error correction autonomously, the data read by the control unit in one read request is expected to be correct data without errors, and by writing this "correct data" directly, the data storage area stores data with the error corrected. This method makes it possible to correct erroneous data in the storage unit, even in memory systems that use storage units that internally and autonomously correct errors, such as ECC-compatible DRAM.
なお、各構成要素等に付された括弧付きの参照符号は、その構成要素等と後述する実施形態に記載の具体的な構成要素等との対応関係の一例を示すものである。 Note that the reference symbols in parentheses attached to each component indicate an example of the correspondence between that component and the specific components described in the embodiments described below.
以下、本発明の実施形態について図に基づいて説明する。なお、以下の各実施形態相互において、互いに同一もしくは均等である部分には、同一符号を付して説明を行う。 Embodiments of the present invention will be described below with reference to the accompanying drawings. Note that in the following embodiments, identical or equivalent parts will be denoted by the same reference numerals.
(実施形態)
実施形態に係るメモリシステム1について、図面を参照して説明する。
(Embodiment)
A memory system 1 according to an embodiment will be described with reference to the drawings.
〔基本構成〕
例えば、メモリシステム1は、図1に示すように、制御部2と、記憶部3とを備え、業務用サーバや車両における運転支援あるいは自動運転などにおける周辺監視のデータ処理といったエラーに強い特性が要求される用途に適用されると好適である。メモリシステム1は、勿論、上記の用途に限定されるものではなく、他の各種用途にも適用されうる。
[Basic configuration]
1, the memory system 1 includes a control unit 2 and a storage unit 3, and is suitable for use in applications requiring robustness against errors, such as data processing for business servers, driving assistance in vehicles, or periphery monitoring in autonomous driving, etc. The memory system 1 is not limited to the above applications, and can also be used in various other applications.
制御部2は、例えば図1に示すように、複数のDRAMマスタ21と、DRAMコントローラ22と、バス23とを有してなり、DRAMコントローラ22がDRAMマスタ21や記憶部3と各種信号・データのやり取りが可能となっている。制御部2は、例えば、SoCとされ、プロセッサ、CPU、GPU等の各種機能回路を一つの半導体チップに集積した集積回路である。SoC、CPU、GPUとは、それぞれ「System on a Chip」、「Central Processing Unit」、「Graphics Processing Unit」の略称である。 As shown in FIG. 1, the control unit 2 includes multiple DRAM masters 21, a DRAM controller 22, and a bus 23, and the DRAM controller 22 is capable of exchanging various signals and data with the DRAM masters 21 and the memory unit 3. The control unit 2 is, for example, an SoC, an integrated circuit that integrates various functional circuits such as a processor, CPU, and GPU on a single semiconductor chip. SoC, CPU, and GPU are abbreviations for "System on a Chip," "Central Processing Unit," and "Graphics Processing Unit," respectively.
DRAMマスタ21は、例えば、プロセッサ、CPU、GPU等のメモリを必要とする演算処理ブロックである。DRAMマスタ21は、バス23を介して、DRAMコントローラ22と接続されている。DRAMマスタ21の個数や種類については、メモリシステム1の用途に応じて適宜変更されうる。 The DRAM master 21 is a processing block that requires memory, such as a processor, CPU, or GPU. The DRAM master 21 is connected to the DRAM controller 22 via the bus 23. The number and type of DRAM masters 21 can be changed as appropriate depending on the application of the memory system 1.
DRAMコントローラ22は、外部の記憶部3と接続されており、記憶部3に格納された各種データの読み込み(リード)、および書き込み(ライト)の処理を実行する。以下、説明の簡便化のため、DRAMコントローラ22が記憶部3からデータを読み込む処理を「リード」と称し、記憶部3にデータを書き込む処理を「ライト」と称する。DRAMコントローラ22は、例えば、記憶部3からDRAMマスタ21における演算処理に必要な各種データのリード・ライトを実行する。また、DRAMコントローラ22は、前述のリード・ライトとは独立したスクラビング処理として、一定期間ごとに記憶部3に格納された全データについてリードし、リードしたデータを記憶部3の同一アドレスにそのままライトする役割を果たす。DRAMコントローラ22の詳細については後述する。 The DRAM controller 22 is connected to the external storage unit 3 and performs read and write operations on various data stored in the storage unit 3. For ease of explanation, the process of the DRAM controller 22 reading data from the storage unit 3 will be referred to as "read," and the process of writing data to the storage unit 3 will be referred to as "write." The DRAM controller 22 performs read and write operations on various data required for arithmetic processing in the DRAM master 21 from the storage unit 3, for example. Furthermore, as a scrubbing process independent of the aforementioned read and write operations, the DRAM controller 22 reads all data stored in the storage unit 3 at regular intervals and writes the read data directly to the same address in the storage unit 3. Details of the DRAM controller 22 will be described later.
なお、制御部2による1回のスクラビング処理における一定期間は、任意であり、記憶部3のデータ容量やメモリシステム1の用途等に応じて適宜設定される。 The fixed period for one scrubbing process by the control unit 2 is arbitrary and is set appropriately depending on the data capacity of the storage unit 3, the purpose of the memory system 1, etc.
記憶部3は、ECC対応DRAMであり、例えば、DRAMマスタ21における演算処理に用いられる各種データ等を記録する記録媒体である。記憶部3は、例えば図3に示すように、データ格納領域31と、ECC生成部32と、ECC格納領域33と、エラー訂正部34とを備える。記憶部3は、ECC生成部32がデータ格納領域31に格納するデータに対応するECCを生成すると共に、生成したECCをECC格納領域33に格納する。記憶部3は、例えば、DRAMコントローラ22からデータ格納領域31に格納されたデータのリード要求がされた場合、当該データに対応するECCをECC格納領域33から読み込む。そして、記憶部3は、DRAMコントローラ22からリード要求がされたデータについて、エラー訂正部34がECCを用いて誤りを検出した場合にはデータの訂正を行い、訂正をしたデータをDRAMコントローラ22に返す構成となっている。つまり、記憶部3は、リード要求がされたデータに訂正可能な1ビット誤りが生じていたときに誤り訂正をし、訂正後のデータを出力できるが、データ格納領域31に格納されたデータをエラー訂正後のデータに自律して上書きできない構成である。また、記憶部3は、リード要求がされたデータに誤りが生じていない場合には、当該データをそのまま出力する。 The memory unit 3 is an ECC-compatible DRAM, and is, for example, a recording medium that records various data used in arithmetic processing in the DRAM master 21. As shown in FIG. 3, the memory unit 3 includes a data storage area 31, an ECC generation unit 32, an ECC storage area 33, and an error correction unit 34. The ECC generation unit 32 generates an ECC corresponding to the data to be stored in the data storage area 31, and stores the generated ECC in the ECC storage area 33. For example, when the DRAM controller 22 issues a read request for data stored in the data storage area 31, the memory unit 3 reads the ECC corresponding to the data from the ECC storage area 33. If the error correction unit 34 detects an error using the ECC in the data requested to be read by the DRAM controller 22, the memory unit 3 corrects the data and returns the corrected data to the DRAM controller 22. In other words, the memory unit 3 is configured to correct a single-bit error that can be corrected in the data requested to be read and output the corrected data, but is not able to autonomously overwrite the data stored in the data storage area 31 with the error-corrected data. Furthermore, if no error has occurred in the data requested to be read, the memory unit 3 outputs the data as is.
以上が、実施形態にかかるメモリシステム1の基本的な構成である。メモリシステム1は、制御部2が一定期間内に記憶部3(ECC対応DRAM)のデータ格納領域31に格納された全データについて読み込んだ後、読み込んだデータを元の領域にそのまま書き込む処理を行う。つまり、メモリシステム1は、記憶部3のデータ格納領域31に格納されたデータに誤りが生じた場合であっても、記憶部3から出力された訂正後のデータがそのまま元の領域に書き込まれる構成となっている。そのため、メモリシステム1は、誤りが生じたデータがデータ格納領域31に長期間格納され続けること、ひいては訂正不可能な2ビット以上のデータの誤りが生じることを抑制し、エラーに強い特性を有する。 The above is the basic configuration of the memory system 1 according to the embodiment. In the memory system 1, the control unit 2 reads all data stored in the data storage area 31 of the memory unit 3 (ECC-compatible DRAM) within a certain period of time, and then writes the read data directly to the original area. In other words, even if an error occurs in the data stored in the data storage area 31 of the memory unit 3, the memory system 1 is configured so that the corrected data output from the memory unit 3 is written directly to the original area. As a result, the memory system 1 prevents erroneous data from being stored in the data storage area 31 for a long period of time, and ultimately prevents uncorrectable data errors of two or more bits from occurring, making it highly error-resistant.
〔DRAMコントローラ〕
次に、DRAMコントローラ22の詳細について説明する。
[DRAM Controller]
Next, the DRAM controller 22 will be described in detail.
DRAMコントローラ22は、例えば図3に示すように、スクラビング処理回路4と、調停回路5と、プロトコル生成回路6とを有してなる。 As shown in FIG. 3, the DRAM controller 22 includes a scrubbing processing circuit 4, an arbitration circuit 5, and a protocol generation circuit 6.
スクラビング処理回路4は、記憶部3に格納された全データについて一定期間内にリード要求とライト要求を出し、記憶部3からリードしたデータをそのまま同一の領域にライトする役割を果たす。スクラビング処理回路4は、例えば図4に示すように、アドレス生成部41と、アクセス要求部42と、データ保持部43とを有してなる。 The scrubbing processing circuit 4 issues read and write requests for all data stored in the memory unit 3 within a fixed period of time, and writes the data read from the memory unit 3 directly to the same area. As shown in FIG. 4, the scrubbing processing circuit 4 includes an address generation unit 41, an access request unit 42, and a data storage unit 43.
アドレス生成部41は、記憶部3のデータ格納領域31におけるアドレス値を順次生成する。例えば、アドレス生成部41は、スクラビング処理において、1回のリードにおけるデータ量分の値の間隔で、アドレス値を昇順で順次生成する。 The address generation unit 41 sequentially generates address values in the data storage area 31 of the memory unit 3. For example, during scrubbing processing, the address generation unit 41 sequentially generates address values in ascending order at intervals equal to the amount of data in one read.
以下、説明の簡便化のため、スクラビング処理での1回のリードにおけるデータ量を便宜上「リードデータ量」と称する。 For ease of explanation, the amount of data read in one scrubbing process will be referred to as the "read data amount" below.
具体的には、例えば、記憶部3のデータ容量が8GB(ギガバイト)であって、リードデータ量が512B(バイト)である場合には、アドレス生成部41は、0、512、1024、1536、・・・8589934080の順にアドレス値を生成する。この場合において、アドレス値が記憶部3のデータ容量分の値に達したとき、例えば、アドレス生成部41は、最初のアドレス値の「0」を生成し、上記と同様のアドレス値の順次生成を繰り返す。アドレス生成部41が生成したアドレス値は、例えば、アクセス要求部42に出力され、アクセス要求部42によるリード要求・ライト要求に用いられる。 Specifically, for example, if the data capacity of the storage unit 3 is 8 GB (gigabytes) and the amount of read data is 512 B (bytes), the address generation unit 41 generates address values in the order of 0, 512, 1024, 1536, ..., 8589934080. In this case, when the address value reaches the value of the data capacity of the storage unit 3, the address generation unit 41 generates the first address value of "0", for example, and repeats the sequential generation of address values in the same manner as above. The address value generated by the address generation unit 41 is output to the access request unit 42, for example, and is used by the access request unit 42 in read and write requests.
なお、リードデータ量は、予め設定された固定値である。また、記憶部3のデータ容量およびスクラビング処理における1回のリード・ライトのデータ量については、上記した例に限定されるものではなく、メモリシステム1の用途に応じて適宜変更されうる。 The amount of read data is a preset fixed value. Furthermore, the data capacity of the storage unit 3 and the amount of data read/written per scrubbing process are not limited to the above examples, and can be changed as appropriate depending on the application of the memory system 1.
アクセス要求部42は、記憶部3のデータ格納領域31のうちアドレス生成部41で生成したアドレス値に対応する領域へのアクセス要求を、調停回路5に出力する。アクセス要求部42からのアクセス要求は、データ格納領域31に格納されたデータのリード要求およびライト要求である。アクセス要求部42は、DRAMコントローラ22が一定期間内に記憶部3のデータ格納領域31に格納された全データのリード・ライトができるように、所定の間隔で調停回路5に記憶部3へのアクセス要求を出力する。 The access request unit 42 outputs to the arbitration circuit 5 an access request to the area of the data storage area 31 of the memory unit 3 that corresponds to the address value generated by the address generation unit 41. The access requests from the access request unit 42 are read and write requests for data stored in the data storage area 31. The access request unit 42 outputs access requests to the memory unit 3 to the arbitration circuit 5 at predetermined intervals so that the DRAM controller 22 can read and write all data stored in the data storage area 31 of the memory unit 3 within a certain period of time.
以下、「アクセス要求」、「リード要求」および「ライト要求」の語については、特に断りがない場合、記憶部3へのアクセス要求、リード要求およびライト要求を意味する。 Hereinafter, unless otherwise specified, the terms "access request," "read request," and "write request" refer to an access request, read request, and write request to the memory unit 3.
例えば、記憶部3のデータ容量が8GB、リードデータ量が512Bであって、記憶部3に格納された全データを1時間でリード・ライトしたい場合について検討する。この場合、アクセス要求部42による1回のアクセス要求の間隔は、(60×60×1000×1000)/(16×1024×1024)=214.6μsecと設定される。なお、アクセス要求部42によるアクセス要求の間隔については、記憶部3のデータ容量、リードデータ量および1回のスクラビング処理に要する一定期間に応じて適宜変更されうる。 For example, consider the case where the data capacity of the storage unit 3 is 8 GB, the amount of read data is 512 B, and it is desired to read and write all data stored in the storage unit 3 in one hour. In this case, the interval between access requests by the access request unit 42 is set to (60 x 60 x 1000 x 1000) / (16 x 1024 x 1024) = 214.6 μsec. Note that the interval between access requests by the access request unit 42 can be changed as appropriate depending on the data capacity of the storage unit 3, the amount of read data, and the fixed period required for one scrubbing process.
データ保持部43は、アクセス要求部42からのリード要求に基づいてDRAMコントローラ22が記憶部3からリードしたデータを一時的に保持するリードデータバッファである。データ保持部43のデータ容量は、例えば、リードデータ量に応じた容量、すなわちスクラビング処理における1回のデータアクセス分の容量とされる。データ保持部43は、アクセス要求部42からのライト要求がされた場合、保持したデータをライトデータとして出力する。そして、データ保持部43は、アクセス要求部42から次のアドレス値へのリード要求によりDRAMコントローラ22が記憶部3からリードした新たなデータを次のライト要求まで保持する。データ保持部43から出力されたライトデータは、DRAMコントローラ22により、記憶部3のデータ格納領域31のうちリードデータが格納されていた同一の領域に書き込まれる。 The data holding unit 43 is a read data buffer that temporarily holds data read from the memory unit 3 by the DRAM controller 22 based on a read request from the access request unit 42. The data capacity of the data holding unit 43 is, for example, a capacity corresponding to the amount of read data, i.e., the capacity for one data access in scrubbing processing. When a write request is made from the access request unit 42, the data holding unit 43 outputs the held data as write data. The data holding unit 43 then holds new data read from the memory unit 3 by the DRAM controller 22 in response to a read request from the access request unit 42 for the next address value until the next write request. The write data output from the data holding unit 43 is written by the DRAM controller 22 to the same area of the data storage area 31 of the memory unit 3 where the read data was stored.
調停回路5は、バス23からのアクセス要求とスクラビング処理回路4からのアクセス要求とが競合する場合における調停処理を行うものである。調停回路5は、バス23およびスクラビング処理回路4から記憶部3へのアクセス要求が競合する場合、一方のアクセス要求をプロトコル生成回路6に出力し、その処理が完了するまで他方のアクセス要求を保留する。アクセス要求が競合する場合とは、2以上のアクセス要求が行われる記憶部3のデータ格納領域31におけるアドレスの範囲が少なくとも一部重複していることを意味する。調停回路5は、例えば、バス23からのアクセス要求を優先し、スクラビング処理回路4からのアクセス要求を保留するが、これらのアクセス要求がされるアドレスの範囲が重複していない場合には双方のアクセス要求をプロトコル生成回路6に出力する。調停回路5は、プロトコル生成回路6にアクセス要求を発行し、記憶部3からのリードデータをアクセス要求元に返すと共に、アクセス要求元から受け取ったライトデータを記憶部3に送信する。 The arbitration circuit 5 performs arbitration when an access request from the bus 23 conflicts with an access request from the scrubbing processing circuit 4. When access requests to the storage unit 3 from the bus 23 and the scrubbing processing circuit 4 conflict, the arbitration circuit 5 outputs one access request to the protocol generation circuit 6 and suspends the other access request until the first access request is completed. A conflict in access requests means that the address ranges in the data storage area 31 of the storage unit 3 for two or more access requests at least partially overlap. For example, the arbitration circuit 5 prioritizes the access request from the bus 23 and suspends the access request from the scrubbing processing circuit 4. However, if the address ranges for these access requests do not overlap, the arbitration circuit 5 outputs both access requests to the protocol generation circuit 6. The arbitration circuit 5 issues an access request to the protocol generation circuit 6, returns read data from the storage unit 3 to the access request source, and transmits write data received from the access request source to the storage unit 3.
調停回路5は、例えば、バス23およびスクラビング処理回路4からのライト要求が競合し、かつバス23からのライト要求がスクラビング処理回路4からのリード要求とライト要求との間である場合、バス23からのライト要求を保留することが好ましい。これは、スクラビング処理のリード後に、記憶部3の同一アドレスにバス23からのデータのライトが行われるとデータの内容が書き換わり、その後にスクラビング処理のライトが行われると、データの内容が意図したものとは異なるものとなるためである。調停回路5の処理動作については後述する。 For example, when there is a conflict between write requests from the bus 23 and the scrubbing processing circuit 4, and the write request from the bus 23 is between a read request and a write request from the scrubbing processing circuit 4, the arbitration circuit 5 preferably suspends the write request from the bus 23. This is because if data is written from the bus 23 to the same address in the memory unit 3 after a scrubbing processing read, the contents of the data will be rewritten, and if a scrubbing processing write is then performed, the contents of the data will differ from what was intended. The processing operation of the arbitration circuit 5 will be described later.
プロトコル生成回路6は、調停回路5から出力された記憶部3へのアクセス要求を受け取り、当該アクセス要求を記憶部3に発行するコマンドに変換して発行するものである。プロトコル生成回路6は、ECC対応DRAMである記憶部3との通信におけるプロトコルを生成する回路であり、DRAMプロトコル生成回路とも称されうる。 The protocol generation circuit 6 receives access requests to the storage unit 3 output from the arbitration circuit 5, converts the access requests into commands to be issued to the storage unit 3, and issues the commands. The protocol generation circuit 6 is a circuit that generates protocols for communication with the storage unit 3, which is ECC-compatible DRAM, and may also be referred to as a DRAM protocol generation circuit.
以上が、DRAMコントローラ22の基本的な構成である。DRAMコントローラ22は、スクラビング処理回路4によるスクラビング処理とDRAMマスタ21等からのアクセス要求に基づくリード・ライト処理を実行する。 The above is the basic configuration of the DRAM controller 22. The DRAM controller 22 performs scrubbing processing by the scrubbing processing circuit 4 and read/write processing based on access requests from the DRAM master 21, etc.
〔スクラビング処理〕
次に、制御部2による記憶部3のスクラビング処理について説明する。以下、説明の簡便化のため、記憶部3のデータ格納領域31に格納されたデータを便宜上「格納データ」と称することがある。
[Scrubbing process]
Next, a description will be given of the scrubbing process of the storage unit 3 by the control unit 2. For ease of explanation, the data stored in the data storage area 31 of the storage unit 3 will be referred to as "stored data" below.
制御部2は、例えば、メモリシステム1の電源がオン状態になる等の所定の開始条件を満たした場合に、スクラビング処理回路4に図5に示す処理を開始させる。ステップS110では、スクラビング処理回路4において、アドレス生成部41は、記憶部3のデータ格納領域31のアドレス値を生成し、アクセス要求部42に生成したアドレス値を出力する。 When a predetermined start condition is met, such as when the power to the memory system 1 is turned on, the control unit 2 causes the scrubbing processing circuit 4 to start the processing shown in FIG. 5. In step S110, the address generation unit 41 in the scrubbing processing circuit 4 generates an address value for the data storage area 31 of the memory unit 3 and outputs the generated address value to the access request unit 42.
続いて、ステップS120では、アクセス要求部42は、ステップS110で生成されたアドレス値へのリード要求を調停回路5に出力する。その後、調停回路5は、アクセス要求部42から出力されたリード要求をプロトコル生成回路6に出力する。 Next, in step S120, the access request unit 42 outputs a read request for the address value generated in step S110 to the arbitration circuit 5. The arbitration circuit 5 then outputs the read request output from the access request unit 42 to the protocol generation circuit 6.
次に、ステップS130では、プロトコル生成回路6は、調停回路5からのリード要求を受け取り、記憶部3へのリード要求のコマンドに変換し、発行する。 Next, in step S130, the protocol generation circuit 6 receives the read request from the arbitration circuit 5, converts it into a read request command to the memory unit 3, and issues it.
そして、ステップS140では、DRAMコントローラ22は、記憶部3のデータ格納領域31のうちステップS110で生成されたアドレス値から所定のアドレス範囲のデータをリードする。このときのアドレス範囲は、予め設定されたリードデータ量に応じて適宜変更されうる。 Then, in step S140, the DRAM controller 22 reads data from a predetermined address range in the data storage area 31 of the memory unit 3, starting from the address value generated in step S110. The address range can be changed as appropriate depending on the preset amount of data to be read.
続いて、ステップS150では、スクラビング処理回路4は、ステップS140でリードしたデータを受け取り、データ保持部43で保持する。 Next, in step S150, the scrubbing processing circuit 4 receives the data read in step S140 and stores it in the data storage unit 43.
次に、ステップS160では、スクラビング処理回路4は、ステップS110~S130と同様の処理により、記憶部3のうちステップS140でリードしたデータと同一のアドレス範囲へのライト要求を行う。そして、DRAMコントローラ22は、ステップS150でデータ保持部43が保持したデータをライトデータとして出力し、記憶部3のうちリードしたデータが格納されていた領域に当該ライトデータを書き戻す処理を行う。これにより、記憶部3内の格納データは、誤りが生じていない場合にはそのままのデータで、DRAMコントローラ22により上書きされる。一方、記憶部3内の格納データは、誤りが生じていた場合にはエラー訂正部34が誤り訂正した後の「正しいデータ」で、DRAMコントローラ22により上書きされる。いずれの場合であっても、記憶部3は、上記した制御部2によるリード・ライト、すなわちスクラビング処理により外部からは誤り検出ができない格納データが誤りのない状態で保たれることとなる。 Next, in step S160, the scrubbing processing circuit 4 performs processing similar to steps S110 to S130 to request a write to the same address range in the storage unit 3 as the data read in step S140. Then, in step S150, the DRAM controller 22 outputs the data held by the data holding unit 43 as write data and performs processing to write the write data back to the area in the storage unit 3 where the read data was stored. As a result, if no error has occurred, the data stored in the storage unit 3 is overwritten by the DRAM controller 22 with the original data. On the other hand, if an error has occurred, the data stored in the storage unit 3 is overwritten by the DRAM controller 22 with "correct data" after the error correction unit 34 has corrected the error. In either case, the storage unit 3 maintains error-free stored data, which cannot be detected externally, through the read/write processing by the control unit 2, i.e., the scrubbing processing.
そして、ステップS170では、制御部2は、ステップS110で生成されたアドレス値が記憶部3のデータ容量分の値、いわば上限値に達したか否かを判定し、肯定判定の場合には処理をステップS180に進める。一方、ステップS170で否定判定の場合には、制御部2は、処理をステップS190に進める。 Then, in step S170, the control unit 2 determines whether the address value generated in step S110 has reached the value corresponding to the data capacity of the storage unit 3, i.e., the upper limit, and if the determination is affirmative, the process proceeds to step S180. On the other hand, if the determination is negative in step S170, the control unit 2 proceeds to step S190.
ステップS180では、アドレス生成部41は、最初のアドレス値(例えば0)を生成する。そして、制御部2は、処理をステップS120に戻す。 In step S180, the address generation unit 41 generates the first address value (e.g., 0). The control unit 2 then returns the process to step S120.
一方、ステップS190では、アドレス生成部41は、ステップS110で生成したアドレス値にリードデータ量を加えた次のアドレス値を生成する。例えば、ステップS110で生成したアドレス値が「0」、リードデータ量が「512B」である場合、ステップS190では、アドレス生成部41は、「512」のアドレス値を生成する。その後、制御部2は、処理をステップS120に戻す。 On the other hand, in step S190, the address generation unit 41 generates the next address value by adding the amount of read data to the address value generated in step S110. For example, if the address value generated in step S110 is "0" and the amount of read data is "512B," in step S190 the address generation unit 41 generates an address value of "512." The control unit 2 then returns the process to step S120.
制御部2は、以上の処理を設定した所定期間内に記憶部3の全格納データについて行う。これにより、記憶部3は、全格納データについて所定期間ごとに読み込み・書き戻しがされ、何らかの原因で格納データに誤りが生じたとしても訂正されたデータに書き戻される。そのため、メモリシステム1は、ECC対応DRAMのように、外部の制御部2によって直接、誤り検出ができない記憶部3を用いた場合であっても、訂正不可能な2ビット以上の誤りが生じたデータが保持される事態を防ぐことが可能となっている。 The control unit 2 performs the above process on all stored data in the memory unit 3 within a set, predetermined period of time. As a result, all stored data is read from and written back to the memory unit 3 at regular intervals, and even if an error occurs in the stored data for some reason, the corrected data is written back. Therefore, even when using a memory unit 3 that cannot be directly detected by the external control unit 2, such as ECC-compatible DRAM, the memory system 1 can prevent data containing uncorrectable errors of two or more bits from being retained.
〔調停回路〕
次に、調停回路5における調停処理について説明する。
[Arbitration circuit]
Next, the arbitration process in the arbitration circuit 5 will be described.
調停回路5は、スクラビング処理回路4によるスクラビング処理と並行して、例えば図6に示す処理を実行する。 The arbitration circuit 5 executes the process shown in Figure 6, for example, in parallel with the scrubbing process performed by the scrubbing process circuit 4.
ステップS210では、調停回路5は、バス23からライト要求があるか否かを判定し、肯定判定の場合には処理をステップS220に進める。一方、ステップS210で否定判定の場合には、調停回路5は、処理をステップS210に戻す。 In step S210, the arbitration circuit 5 determines whether or not there is a write request from the bus 23, and if the determination is affirmative, the process proceeds to step S220. On the other hand, if the determination is negative in step S210, the arbitration circuit 5 returns the process to step S210.
ステップS220では、調停回路5は、スクラビング処理がステップS120(リード要求)からステップS160(データライト)の間にあるか否かを判定し、肯定判定の場合には処理をステップS230に進める。一方、ステップS220において否定判定の場合には、調停回路5は、処理をステップS290に進める。 In step S220, the arbitration circuit 5 determines whether scrubbing processing is occurring between step S120 (read request) and step S160 (data write), and if the determination is affirmative, the process proceeds to step S230. On the other hand, if the determination is negative in step S220, the arbitration circuit 5 proceeds to step S290.
ステップS290では、調停回路5は、バス23からのライト要求を実行する。その後、調停回路5は、処理をステップS210に戻す。 In step S290, the arbitration circuit 5 executes the write request from the bus 23. The arbitration circuit 5 then returns the process to step S210.
ステップS230では、調停回路5は、バス23からのライト要求のアドレス範囲とスクラビング処理におけるライト要求のアドレス範囲とが重複しているか否かを判定し、肯定判定の場合には処理をステップS240に進める。一方、否定判定の場合には、調停回路5は、処理をステップS270に進める。 In step S230, the arbitration circuit 5 determines whether the address range of the write request from the bus 23 overlaps with the address range of the write request in the scrubbing process, and if the determination is positive, the process proceeds to step S240. On the other hand, if the determination is negative, the arbitration circuit 5 proceeds to step S270.
ステップS240では、調停回路5は、スクラビング処理におけるライト要求を優先し、バス23からのライト要求を保留する処理を行う。続いて、ステップS250では、調停回路5は、スクラビング処理におけるステップS160のライト要求が発行されるまで待ち、当該ライト要求が発行されたら、スクラビング処理のライト要求を実行する。そして、スクラビング処理における書き込み処理が完了した後のステップS260では、調停回路5は、保留していたバス23からのライト要求を実行し、処理をステップS210に戻す。 In step S240, the arbitration circuit 5 prioritizes the write request in the scrubbing process and puts the write request from the bus 23 on hold. Next, in step S250, the arbitration circuit 5 waits until the write request in step S160 in the scrubbing process is issued, and once that write request is issued, executes the write request in the scrubbing process. Then, in step S260 after the write process in the scrubbing process is completed, the arbitration circuit 5 executes the write request from the bus 23 that was on hold, and returns the process to step S210.
一方、ステップS270では、調停回路5は、バス23からのライト要求を保留することなく実行し、処理をステップS280に進める。その後、ステップS280では、調停回路5は、スクラビング処理におけるライト要求を実行し、処理をステップS210に戻す。 On the other hand, in step S270, the arbitration circuit 5 executes the write request from the bus 23 without suspending it, and proceeds to step S280. Then, in step S280, the arbitration circuit 5 executes the write request in the scrubbing process, and returns to step S210.
調停回路5が上記の処理を行うことにより、スクラビング処理でのステップS140(データリード)とステップS160(データライト)の間に、アドレス範囲がステップS160と重複するライト要求がバス23からなされた場合、その処理を保留される。これにより、スクラビング処理における格納データのリードからライトの間に、重複するアドレス範囲内においてバス23からのライトがされることがなくなり、格納データがスクラビング処理に起因して意図しないデータに置き換わることを防ぐことができる。 By performing the above processing, the arbitration circuit 5 puts on hold any write requests made from the bus 23 between step S140 (data read) and step S160 (data write) in the scrubbing process that overlap with the address range of step S160. This prevents writes from the bus 23 within the overlapping address range between the read and write of stored data in the scrubbing process, preventing stored data from being replaced with unintended data due to the scrubbing process.
実施形態に係るメモリシステム1は、ECC対応DRAMを記憶部3として用い、制御部2により記憶部3内の格納データを一定期間内にリードし、リードデータを同一アドレスにライトを行う。記憶部3の格納データは、自律して上書きされないが、誤りが生じていない場合にはそのまま制御部2に出力され、訂正可能な1ビットの誤りが生じた場合には内部のECCを用いて誤り訂正がされた訂正後のデータで出力されることとなる。そして、制御部2が記憶部3からリードしたデータは誤りがない正しいデータである確率が高いため、このリードデータをそのままの形で同一のアドレス範囲に書き戻すことで、訂正できない2ビット以上のエラーが発生する確率を下げることができる。 The memory system 1 according to the embodiment uses an ECC-compatible DRAM as the storage unit 3, and the control unit 2 reads the data stored in the storage unit 3 within a fixed period of time and writes the read data to the same address. The data stored in the storage unit 3 is not overwritten autonomously, but is output to the control unit 2 as is if no error has occurred. If a correctable single-bit error has occurred, the data is corrected using the internal ECC and output as corrected data. Since there is a high probability that the data read by the control unit 2 from the storage unit 3 is correct and free of errors, the read data can be written back to the same address range in its original form to reduce the probability of an uncorrectable error of two or more bits occurring.
よって、このメモリシステム1は、ECC対応DRAMを用いつつ、外部の制御部2がECC対応DRAM内の格納データの誤りを直接検出できなくても、当該格納データをスクラビング処理により誤り訂正後のデータで保つことができる構成となる。その結果、メモリシステム1は、SoCとECC対応DRAM内とによりなる構成でありながらも、実質的な誤り訂正が可能であり、エラーに強い特性が得られる。 Thus, this memory system 1 uses ECC-compatible DRAM, and is configured to retain the stored data as error-corrected data through scrubbing processing, even if the external control unit 2 cannot directly detect errors in the data stored in the ECC-compatible DRAM. As a result, even though the memory system 1 is configured using an SoC and ECC-compatible DRAM, it is capable of substantial error correction and is highly resistant to errors.
(他の実施形態)
本開示は、実施例に準拠して記述されたが、本開示は当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらの一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
(Other embodiments)
Although the present disclosure has been described with reference to the embodiments, it is understood that the present disclosure is not limited to the embodiments or structures. The present disclosure also encompasses various modifications and modifications within the scope of equivalents. In addition, various combinations and forms, as well as other combinations and forms including only one element, more than one, or less than one, are also within the scope and spirit of the present disclosure.
本開示に記載の制御部2及びその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリを構成することによって提供された専用コンピュータにより、実現されてもよい。あるいは、本開示に記載の制御部2及びその手法は、一つ以上の専用ハードウエア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。もしくは、本開示に記載の制御部2及びその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリと一つ以上のハードウエア論理回路によって構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていてもよい。 The control unit 2 and the method described herein may be implemented by a special-purpose computer configured by configuring a processor and memory programmed to perform one or more functions embodied in a computer program. Alternatively, the control unit 2 and the method described herein may be implemented by a special-purpose computer configured by configuring a processor with one or more dedicated hardware logic circuits. Alternatively, the control unit 2 and the method described herein may be implemented by one or more special-purpose computers configured by combining a processor and memory programmed to perform one or more functions with a processor configured with one or more hardware logic circuits. Furthermore, the computer program may be stored as instructions executed by a computer on a computer-readable non-transitory tangible recording medium.
なお、上記各実施形態において、実施形態を構成する要素は、特に必須であると明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。また、上記各実施形態において、実施形態の構成要素の個数、数値、量、範囲等の数値が言及されている場合、特に必須であると明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではない。また、上記各実施形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に特定の形状、位置関係等に限定される場合等を除き、その形状、位置関係等に限定されるものではない。 It goes without saying that in each of the above embodiments, the elements constituting the embodiment are not necessarily essential, except when expressly stated as essential or when they are clearly considered essential in principle. Furthermore, in each of the above embodiments, when the numbers, values, amounts, ranges, etc. of the components of the embodiment are mentioned, they are not limited to that specific number, except when expressly stated as essential or when they are clearly limited to a specific number in principle. Furthermore, in each of the above embodiments, when the shape, positional relationship, etc. of the components, etc. are mentioned, they are not limited to that shape, positional relationship, etc., except when expressly stated as essential or when they are clearly limited to a specific shape, positional relationship, etc. in principle.
2・・・制御部、3・・・記憶部、31・・・データ格納領域、32・・・ECC生成部
33・・・ECC格納領域、34・・・エラー訂正部、4・・・スクラビング処理回路
41・・・アドレス生成部、42・・・アドレス要求部、43・・・データ保持部
5・・・調停回路
2: control unit, 3: memory unit, 31: data storage area, 32: ECC generation unit, 33: ECC storage area, 34: error correction unit, 4: scrubbing processing circuit, 41: address generation unit, 42: address request unit, 43: data holding unit, 5: arbitration circuit
Claims (4)
データを格納するデータ格納領域(31)と、前記データに対応する誤り訂正コードを生成するECC生成部(32)と、前記ECC生成部で生成した前記誤り訂正コードを格納するECC格納領域(33)と、前記データに誤りが生じた場合に前記誤り訂正コードを用いて訂正を行うエラー訂正部(34)とを有する記憶部(3)と、
前記記憶部の前記データ格納領域に格納された前記データの読み込みおよび書き込みの処理を行う制御部(2)と、を備え、
前記制御部は、前記記憶部のスクラビング処理を実行するスクラビング処理回路(4)と、前記スクラビング処理回路からの前記記憶部へのアクセス要求と、前記制御部とは異なる他の領域から前記記憶部へのアクセス要求との調停を行う調停回路(5)とを有し、前記スクラビング処理においては前記記憶部に格納された前記データを読み込むと共に、読み込んだ前記データをそのまま前記記憶部に書き戻す処理を実行し、
前記調停回路は、前記スクラビング処理回路からのリード要求と次のライト要求との間に、前記記憶部の前記データ格納領域のうち所定のアドレス範囲への前記他の領域からのライト要求であって、前記所定のアドレス範囲が前記スクラビング処理回路からの前記記憶部への前記リード要求に対応するアドレス範囲の少なくとも一部を含む場合には、前記他の領域からの前記ライト要求を前記スクラビング処理回路からの前記ライト要求による書き込み処理が完了するまで保留する処理を行う、メモリシステム。 1. A memory system comprising:
a memory unit (3) having a data storage area (31) for storing data, an ECC generation unit (32) for generating an error correction code corresponding to the data, an ECC storage area (33) for storing the error correction code generated by the ECC generation unit, and an error correction unit (34) for correcting an error in the data using the error correction code;
a control unit (2) that performs processing for reading and writing the data stored in the data storage area of the storage unit,
The control unit has a scrubbing processing circuit (4) that executes a scrubbing process on the storage unit , and an arbitration circuit (5) that arbitrates between an access request to the storage unit from the scrubbing processing circuit and an access request to the storage unit from another area different from the control unit, and in the scrubbing process, reads the data stored in the storage unit and executes a process of writing the read data back to the storage unit as is ,
A memory system in which, if a write request from the other area to a specified address range of the data storage area of the memory unit is made between a read request from the scrubbing processing circuit and the next write request, and the specified address range includes at least a portion of the address range corresponding to the read request from the scrubbing processing circuit to the memory unit, the arbitration circuit performs processing to suspend the write request from the other area until the write processing due to the write request from the scrubbing processing circuit is completed .
前記記憶部のスクラビング処理を実行するスクラビング処理回路(4)と、前記スクラビング処理回路からの前記記憶部へのアクセス要求と、前記制御部とは異なる他の領域から前記記憶部へのアクセス要求との調停を行う調停回路(5)とを有し、前記記憶部のうち前記データ格納領域に格納された前記データの読み込みおよび書き込みの処理を行う制御部(2)と、を備えるメモリシステムにおいて、前記データの誤りを訂正するデータ訂正方法であって、
前記制御部が、所定期間ごとに、前記記憶部のうち前記データ格納領域に格納された全データについてリード要求およびライト要求を行うことと、
1回の前記リード要求において、前記制御部が前記データ格納領域の一部のデータを読み込み、前記一部のデータを次の前記ライト要求まで保持することと、
1回の前記ライト要求において、直前の前記リード要求により読み込んだ前記一部のデータを前記データ格納領域のうち当該一部のデータが格納された同一のアドレスにそのまま書き込むことと、
前記スクラビング処理回路からのリード要求と次のライト要求との間に、前記記憶部の前記データ格納領域のうち所定のアドレス範囲への前記他の領域からのライト要求であって、前記所定のアドレス範囲が前記スクラビング処理回路からの前記記憶部への前記リード要求に対応するアドレス範囲の少なくとも一部を含む場合には、前記調停回路が、前記他の領域からの前記ライト要求を前記スクラビング処理回路からの前記ライト要求による書き込み処理が完了するまで保留する処理を行うことと、を含む、データ訂正方法。 a memory unit (3) having a data storage area (31) for storing data, an ECC generation unit (32) for generating an error correction code corresponding to the data, an ECC storage area (33) for storing the error correction code generated by the ECC generation unit, and an error correction unit (34) for correcting an error using the error correction code when an error occurs in the data ;
A data correction method for correcting errors in data in a memory system including a scrubbing circuit (4) that performs scrubbing of the storage unit, an arbitration circuit (5) that arbitrates between an access request from the scrubbing circuit to the storage unit and an access request from another area different from the control unit to the storage unit, and a control unit (2) that performs processing for reading and writing the data stored in the data storage area of the storage unit, comprising:
the control unit issues a read request and a write request for all data stored in the data storage area of the storage unit at predetermined intervals;
In one read request, the control unit reads part of the data in the data storage area and holds the part of the data until the next write request;
In one write request, the part of the data read in the immediately preceding read request is written directly to the same address in the data storage area where the part of the data is stored ;
a data correction method including: if, between a read request from the scrubbing processing circuit and a next write request, there is a write request from the other area to a predetermined address range of the data storage area of the memory unit, and the predetermined address range includes at least a portion of the address range corresponding to the read request from the scrubbing processing circuit to the memory unit, the arbitration circuit performs a process of suspending the write request from the other area until the write process based on the write request from the scrubbing processing circuit is completed .
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022093839A JP7826853B2 (en) | 2022-06-09 | 2022-06-09 | MEMORY SYSTEM AND DATA CORRECTING METHOD - Patent application |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022093839A JP7826853B2 (en) | 2022-06-09 | 2022-06-09 | MEMORY SYSTEM AND DATA CORRECTING METHOD - Patent application |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2023180484A JP2023180484A (en) | 2023-12-21 |
| JP7826853B2 true JP7826853B2 (en) | 2026-03-10 |
Family
ID=89307271
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022093839A Active JP7826853B2 (en) | 2022-06-09 | 2022-06-09 | MEMORY SYSTEM AND DATA CORRECTING METHOD - Patent application |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7826853B2 (en) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2013143075A (en) | 2012-01-12 | 2013-07-22 | Renesas Electronics Corp | Semiconductor device |
| US20170269979A1 (en) | 2016-03-15 | 2017-09-21 | International Business Machines Corporation | Autonomous dram scrub and error counting |
-
2022
- 2022-06-09 JP JP2022093839A patent/JP7826853B2/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2013143075A (en) | 2012-01-12 | 2013-07-22 | Renesas Electronics Corp | Semiconductor device |
| US20170269979A1 (en) | 2016-03-15 | 2017-09-21 | International Business Machines Corporation | Autonomous dram scrub and error counting |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2023180484A (en) | 2023-12-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP3566139B1 (en) | Error-correcting code memory | |
| US9003260B2 (en) | Partial-writes to ECC (error check code) enabled memories | |
| CN102395956B (en) | Processing method and device for system commands during memory backup procedure | |
| US7689895B2 (en) | On-the fly error checking and correction CODEC system and method for supporting non-volatile memory | |
| JP7826853B2 (en) | MEMORY SYSTEM AND DATA CORRECTING METHOD - Patent application | |
| WO2017065802A1 (en) | Scrubbing data in a memory device | |
| EP4481571A2 (en) | Memory controller which implements partial writes with error signaling | |
| US6799293B2 (en) | Sparse byte enable indicator for high speed memory access arbitration method and apparatus | |
| CN115295039A (en) | A method and system for refreshing memory during idle time against accumulation of single event flip effect | |
| CN118069070B (en) | Write-back method and device for reducing memory soft error rate | |
| JP3638729B2 (en) | Data storage control method and apparatus | |
| JP2006155434A (en) | Pci bus controller, and method and program for controlling its operation | |
| JPH0773114A (en) | Memory control circuit for space digital computer | |
| JP2013156821A (en) | Data processor, control unit and memory control method | |
| JP2002259229A (en) | Memory data error correction method | |
| JPH0675864A (en) | Memory error recovery system | |
| JPH06149685A (en) | Memory error recovering circuit | |
| JP2004126911A (en) | Control device | |
| JPH06250936A (en) | Computer system | |
| JPS63278162A (en) | Error correction device in information processor | |
| US7917826B2 (en) | Error correction apparatus and method for data stored in memory | |
| WO2026031468A1 (en) | Memory error correction method, memory controller, memory module, and processor | |
| JPH0484246A (en) | Memory rewrite system | |
| JPS62130444A (en) | Memory access controller | |
| JP2013143075A (en) | Semiconductor device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240909 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20250729 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20250826 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20251002 |
|
| 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: 20260127 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20260209 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7826853 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |