semiconductor memory device
The semiconductor memory device with integrated error correction and refresh processes for multiple banks ensures reliable data handling by correcting errors during refresh operations, addressing the inadequacies of previous technologies.
Patent Information
- Application Number
- JP2021197760
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-12-06
- Publication Date
- 2026-01-21
- Estimated Expiration
- 2041-12-06
AI Technical Summary
Existing semiconductor memory devices with multiple banks do not adequately address refresh and error correction processes, leading to potential performance degradation and decreased data reliability.
A semiconductor memory device with multiple banks that includes error correction code recording and generation units, along with row, column, and bank counters, performs error correction during refresh operations, ensuring all data is corrected and refreshed efficiently.
This approach maintains data reliability by effectively performing error correction on all data during refresh, preventing performance degradation in devices with multiple banks.
Smart Images

Figure 0007803703000001 
Figure 0007803703000002 
Figure 0007803703000003
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to semiconductor memory devices. [Background technology]
[0002] For example, a dynamic random access memory (DRAM) equipped with an error check and correct (ECC) function and capable of autonomously correcting data errors may be used as a semiconductor memory device. However, in such an ECC-enabled DRAM, error correction is only performed on data read upon request from an SoC (system on a chip) or the like, and the corrected read data is not written back to the DRAM, so errors remain in the DRAM.
[0003] In the semiconductor memory device of Patent Document 1 below, an error correction process is performed when the semiconductor memory device is refreshed, and the error-corrected data is written back to the semiconductor memory device, thereby reducing errors within the semiconductor memory device and preventing a decrease in data reliability. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] Japanese Patent Publication No. 2020-71589 Summary of the Invention [Problem to be solved by the invention]
[0005] Some semiconductor memory devices have multiple data storage areas (hereinafter also referred to as "banks") to prevent performance degradation. However, Patent Document 1 does not describe refresh and error correction processes when a semiconductor memory device has multiple banks. Naturally, Patent Document 1 therefore does not describe how to handle both refresh and error correction processes for all of the multiple banks and refresh and error correction processes for only a specified portion of the multiple banks. As such, in the past, refresh and error correction processes in semiconductor memory devices with multiple banks have not been sufficiently considered, and there is room for improvement. [Means for solving the problem]
[0006] The present disclosure can be realized in the following forms.
[0007] According to one embodiment of the present disclosure, there is provided a semiconductor memory device (100) having a refresh function, the semiconductor memory device comprising: a plurality of banks (10) each having a data recording section (20) in which data is recorded and an error correction code recording section (30) in which an error correction code corresponding to the data recorded in the data recording section is recorded; an error correction code generating section (40) generating the error correction code; an error correction section (50) performing an error correction process on the data using the error correction code; a row counter (61) determining a row address to be refreshed; a bank counter (63) determining a bank address to be error-corrected; and a column counter (62) determining a column address to be error-corrected, wherein the error correction section performs the error correction process on data at an address to be error-corrected determined based on the row counter, the bank counter, and the column counter when receiving a refresh command; and the row counter performs the error correction process on all of the plurality of banks as the refresh command. When a first refresh command instructing a refresh to be performed on a specified bank among the plurality of banks is received as the refresh command, the bank counter performs a counting operation each time the first refresh command is issued, and when a second refresh command instructing a refresh to be performed on a specified bank among the plurality of banks is received as the refresh command, the bank counter performs a counting operation each time the second refresh command is issued for all the specified banks, the bank counter performs a counting operation each time the row counter goes around, and the column counter performs a counting operation each time the bank counter goes around. A command reception during refresh execution may occur in which the second refresh command is received while a refresh is being performed in response to the reception of the first refresh command, or the first refresh command is received while a refresh is being performed in response to the reception of the second refresh command, and when the command reception during refresh execution occurs, the row counter, the bank counter, and the column counter , before the refresh execution command is received Maintaining the counter value The counting operation is then carried out in this manner. .
[0008] According to this type of semiconductor memory device, in a semiconductor memory device having multiple banks, when a refresh command is received, the error correction unit performs error correction processing on data at an address to be corrected for errors, which is determined based on the row counter, bank counter, and column counter, thereby suppressing a decrease in data reliability in a semiconductor memory device having multiple banks. [Brief explanation of the drawings]
[0009] [Figure 1] 1 is an explanatory diagram schematically illustrating a configuration of a semiconductor memory device according to an embodiment of the present invention; [Figure 2] FIG. 2 is an explanatory diagram illustrating a schematic configuration of a data recording unit. [Figure 3] 10 is a flowchart illustrating an ABR process. [Figure 4] 10 is a flowchart illustrating a refresh and error correction process. [Figure 5] 10 is a flowchart showing a counting operation. [Figure 6] 10 is a flowchart showing a PBR process. [Figure 7] FIG. 10 is an explanatory diagram showing the first half of a process in which ABR processing and PBR processing are performed alternately. [Figure 8] FIG. 10 is an explanatory diagram showing the latter half of the process in which ABR processing and PBR processing are performed alternately. [Figure 9A] FIG. 8 is an explanatory diagram showing an area where error correction processing has been performed after step S515 in FIG. 7 is completed. [Figure 9B] FIG. 8 is an explanatory diagram showing an area where error correction processing has been performed after step S517 in FIG. 7 is completed. [Figure 9C] FIG. 9 is an explanatory diagram showing an area where error correction processing has been performed after step S533 in FIG. 8 is completed. [Figure 9D] FIG. 9 is an explanatory diagram showing an area where error correction processing has been performed after step S551 in FIG. 8 is completed. DETAILED DESCRIPTION OF THE INVENTION
[0010] A. Implementation: As shown in FIG. 1, the semiconductor memory device 100 of this embodiment includes multiple banks 10, an error correction code generation unit 40, an error correction unit 50, and a counter 60. In this embodiment, each functional unit is configured as hardware and is connected to one another via a bus 70. The semiconductor memory device 100 is, for example, a DRAM, and reads and writes data in response to a request received from an external device such as an SoC. The semiconductor memory device 100 also has a refresh function and autonomously restores data. The semiconductor memory device 100 also performs error correction processing on all banks 10 when a refresh is performed.
[0011] The multiple banks 10 each include a data recording unit 20 and an error correction code recording unit 30. The data recording unit 20 holds data that is read or written in response to a request received from an external device. The error correction code recording unit 30 holds an error correction code that is generated by an error correction code generation unit 40 in response to input data. In this embodiment, the data recording unit 20 and the error correction code recording unit 30 are configured in different banks.
[0012] 2, in this embodiment, the data recording unit 20 includes a bank B0 and a bank B1. Each of the banks B0 and B1 includes a memory cell array 21, a row decoder 23, a column decoder 24, and a sense amplifier 25.
[0013] Banks B0 and B1 are connected to a bus 26, and data is read from and written to the semiconductor memory device 100 by an external device via the bus 26. Data is read from and written to the memory cell array 21 via a sense amplifier 25. The bus 26 is connected to the bus 70 shown in FIG. 1.
[0014] The configuration of the memory cell array 21 is the same as that of a typical DRAM. More specifically, the memory cell array 21 is a matrix of multiple one-transistor, one-capacitor type memory cells 22. Each memory cell 22 is connected to a word line and a bit line (not shown).
[0015] The row decoder 23 activates one of a plurality of word lines in the memory cell array 21 in response to a row address. The column decoder 24 activates one of a plurality of bit lines in the memory cell array 21 in response to a column address. In this way, the memory cell 22 to be accessed is selected by the combination of the word line and bit line activated by the row decoder 23 and the column decoder 24.
[0016] 1 generates an error correction code in accordance with the write data when data is written to the data recording unit 20. The error correction code may be, for example, a Huffman code.
[0017] The error correction unit 50 corrects errors in the data read by the sense amplifier 25 using the error correction code read from the error correction code recording unit 30 not only when data is read from the data recording unit 20 to an external device but also when a refresh is performed. For example, by performing error correction processing using a Huffman code as described above, it is possible to correct a one-bit error in the read data.
[0018] The counter 60 includes a row counter 61, a column counter 62, and a bank counter 63. The counter 60 performs a predetermined counting operation, and the address of the data to be accessed is determined according to the counter value indicated by the counter 60. The counting operation of the counter 60 will be described later.
[0019] The refresh and error correction processes of this embodiment will be described. In this embodiment, the semiconductor memory device 100 performs refresh and error correction processes when it receives either an All Bank Refresh (hereinafter also referred to as "ABR") command or a Per Bank Refresh (hereinafter also referred to as "PBR") command issued from an external device. The external device sends either an ABR command or a PBR command to the semiconductor memory device 100, regardless of the processing status of the semiconductor memory device 100, to instruct it to perform refresh and error correction processes. The ABR command and the PBR command are issued for each page. A page refers to memory cells 22 that belong to a common row address in a certain bank.
[0020] The ABR process shown in Figure 3 will now be described. The ABR process is a process that performs refresh and error correction on all of the multiple banks 10. In this embodiment, the semiconductor memory device 100 executes the ABR process when it receives an ABR command issued by an external device. The ABR command corresponds to the "first refresh command" in this disclosure.
[0021] In the ABR process, all of the banks 10 are designated as banks to be refreshed (step S110). The banks to be refreshed refer to banks on which refresh is to be executed.
[0022] In step S120, the semiconductor memory device 100 determines a page to be refreshed, a bank to be error-corrected, and a memory cell to be error-corrected based on the row counter value Cr, the bank counter value Cb, and the column counter value Cc at the time of issuing the ABR command. The page to be refreshed refers to a page of the bank to be refreshed that is to be refreshed, and is identified by a row address determined by the row counter 61. The bank to be error-corrected refers to a bank to be error-corrected that is to be error-corrected, and is identified by a bank address determined by the bank counter 63. The memory cell to be error-corrected refers to a memory cell 22 of the bank to be error-corrected that is to be error-corrected, and is identified by a column address determined by the column counter 62. The bank to be error-corrected and the memory cell to be error-corrected correspond to the "address to be error-corrected" in this disclosure. Note that the time when the ABR command is issued is not limited to the same time as the ABR command is issued, but also includes, for example, the timing when the semiconductor memory device 100 receives the ABR command.
[0023] In step S130, the semiconductor memory device 100 performs refresh and error correction processing. The detailed procedure of this refresh and error correction processing will be described with reference to FIG.
[0024] In step S210 of FIG. 4, the semiconductor memory device 100 reads data of a page to be refreshed in a bank to be refreshed to the sense amplifier 25.
[0025] In step S220, the semiconductor memory device 100 reads out, from the sense amplifier 25 of the error correction target bank, the data of the memory cell to be corrected, i.e., the data corresponding to the bank address and column address, from the sense amplifier 25 to the error correction unit 50.
[0026] In step S230, the error correction unit 50 corrects the data read by the error correction unit 50. In this embodiment, the error correction is performed using Huffman codes as described above.
[0027] In step S240, the error correction unit 50 writes back the data from the error correction unit 50 to the sense amplifier 25 of the bank to be corrected.
[0028] In step S250, the semiconductor memory device 100 writes back the data from the sense amplifier 25 of the refresh target bank to the refresh target page, and then the refresh and error correction process ends.
[0029] As shown in Fig. 3, in the ABR process, the counter 60 performs a predetermined counting operation each time an ABR command is issued (step S140). More specifically, in this embodiment, the counter 60 performs the counting operation after the refresh and error correction processes are completed. This counting operation will be described with reference to Fig. 5.
[0030] As shown in FIG. 5, if the low counter value Cr is smaller than the low counter maximum value Crmax in step S310, the low counter 61 increments the low counter value Cr by 1 (step S311), and the counting operation ends.
[0031] If the low counter value Cr is equal to the low counter maximum value Crmax in step S310, the low counter 61 resets the low counter value Cr to 0 (step S312).
[0032] If the bank counter value Cb is smaller than the bank counter maximum value Cbmax in step S320, the bank counter 63 increments the bank counter value Cb by 1 (step S321) and ends the counting operation. In other words, the bank counter 63 increments the bank counter value Cb by 1 each time the row counter value Cr is reset from the row counter maximum value Crmax to 0. More specifically, in this embodiment, the bank counter 63 increments the bank counter value Cb by 1 at the same time that the row counter value Cr is reset from the row counter maximum value Crmax to 0.
[0033] If the bank counter value Cb is equal to the bank counter maximum value Cbmax in step S320, the bank counter 63 resets the bank counter value Cb to 0 (step S322).
[0034] If the column counter value Cc is smaller than the column counter maximum value Ccmax in step S330, the column counter 62 increments the column counter value Cc by 1 (step S321) and ends the counting operation. In other words, the column counter 62 increments the column counter value Cc by 1 every time the bank counter value Cb is reset from the bank counter maximum value Cbmax to 0. More specifically, in this embodiment, the column counter 62 increments the column counter value Cc by 1 at the same time that the bank counter value Cb is reset from the bank counter maximum value Cbmax to 0.
[0035] If the column counter value Cc is equal to the column counter maximum value Ccmax in step S330, the column counter 62 resets the column counter value Cc to 0 (step S332), after which the counting operation ends.
[0036] As described above, by performing the ABR process once, it is possible to refresh the data recorded in the page to be refreshed and to perform error correction on the data recorded in the memory cells to be corrected. Furthermore, by repeatedly performing the ABR process in response to ABR commands issued one after another from an external device until all counters 60 have completed a cycle, it is possible to perform refresh and error correction on all data recorded in the data recording unit 20.
[0037] The PBR process shown in FIG. 6 will now be described. The PBR process is a process that performs refresh and error correction on one or more specified banks 10. In this embodiment, the semiconductor memory device 100 executes the PBR process upon receiving a PBR command issued by an external device. The PBR command corresponds to the "second refresh command" in this disclosure.
[0038] In the PBR process, the banks specified by the PBR command are designated as the banks to be refreshed and the banks to be error corrected. In step S410, bank B0 is designated as the bank to be refreshed and the bank to be error corrected.
[0039] In step S420, the semiconductor memory device 100 determines the page to be refreshed and the memory cell to be error corrected based on the row counter value Cr and the column counter value Cc at the time of issuing the PBR command. Note that the time of issuing the PBR command is not limited to the same time as the issuance of the PBR command, but also includes, for example, the timing when the semiconductor memory device 100 receives the PBR command.
[0040] In step S430, the semiconductor memory device 100 performs refresh and error correction processing, which is the same as the refresh and error correction processing in the ABR processing described above.
[0041] 6, after the refresh and error correction processing for bank B0, semiconductor memory device 100 again receives a PBR command issued from an external device. In this case, as in step S410, the bank specified by the PBR command is designated as the bank to be refreshed and the bank to be error corrected. In step S440, bank B1 is designated as the bank to be refreshed and the bank to be error corrected.
[0042] In step S450, the semiconductor memory device 100 determines the page to be refreshed and the memory cell to be error corrected, similarly to step S420.
[0043] In step S460, the semiconductor memory device 100 performs refresh and error correction processing, which is the same as the refresh and error correction processing in the ABR processing described above.
[0044] 6, in the PBR process, the counter 60 performs a predetermined counting operation each time a PBR command is issued to all specified banks (step S470). More specifically, in this embodiment, the counter 60 performs the counting operation after the refresh and error correction processes for all specified banks are completed. The counting operation in the PBR process is the same as the counting operation in the ABR process, but the bank counter value Cb is not used in the PBR process to determine the address to be corrected for errors.
[0045] As described above, by performing the PBR process once, it is possible to refresh the data recorded in the refresh target page of the specified bank and to perform error correction on the data recorded in the error correction target memory cell. Furthermore, by repeatedly performing the PBR process in response to PBR commands issued one after another from an external device until the row counter 61 and the column counter 62 have completed a cycle, it is possible to perform refresh and error correction on all the data in the data recording unit 20.
[0046] 7, 8, and 9A to 9D, an example of processing when a PBR command is issued during ABR processing and when an ABR command is issued during PBR processing is described. Note that although there are reset and increment steps in Figures 7 and 8, these steps are merely extracted and shown as operations when one of the counters 60 goes through one cycle for the sake of explanation, and are not counting operations that are performed in addition to the counting operations performed in ABR processing or PBR processing.
[0047] In step S501, the semiconductor memory device 100 performs ABR processing on the area MC01 in Fig. 9A. When processing is completed up to the final row address of the area MC01, the row counter 61 resets the row counter value Cr (step S503), and the bank counter 63 increments the bank counter value Cb (step S505).
[0048] In step S507, the semiconductor memory device 100 performs ABR processing on area MC11. When the ABR processing is completed up to the final row address of area MC11, the row counter 61 resets the row counter value Cr (step S509), and because the bank counter value Cb is equal to the bank counter maximum value Cbmax, which is 1, the bank counter 63 resets the bank counter value Cb (step S511). Furthermore, because the bank counter value Cb has been reset from the bank counter maximum value Cbmax to 0, the column counter 62 increments the column counter value Cc (step S513).
[0049] In step S515, ABR processing is performed on area MC02, but in the example of Fig. 9A, the issuance of the PBR command starts before the final row address of bank B0 is reached. The PBR command in this processing specifies banks B0 and B1.
[0050] Fig. 9A shows the area where the error correction process has been completed at the end of step S515. The hatched area in Fig. 9A shows the area where the error correction process has been performed once.
[0051] In step S517, the semiconductor memory device 100 performs PBR processing on the areas MC03 and MC13 in Fig. 9B. The PBR processing is alternately performed on the areas MC03 and MC13.
[0052] FIG. 9B shows the error-corrected area at the end of step S517.
[0053] The processes in steps S519 and S521, which are performed after the PBR process for the memory cell 22 at the final row address in area MC13, are the same as the processes in steps S503 and S505. In step S521, the bank counter 63 increments the bank counter value Cb, but since the change is from 0 to 1, the column counter value Cc does not change.
[0054] In step S523, since the column to be refreshed remains unchanged from step S517, the semiconductor memory device 100 performs PBR processing on areas MC02 and MC12. Although ABR processing has already been performed on area MC02, there is no problem in performing error correction processing on the same area again.
[0055] In step S525, the semiconductor memory device 100 again performs PBR processing on the areas MC03 and MC13. The processing in steps S527 to S531 shown in Fig. 8, which is performed after the PBR processing on the memory cell 22 at the final row address of the area MC13, is the same as the processing in steps S509 to S513 shown in Fig. 7.
[0056] In step S533, the semiconductor memory device 100 performs PBR processing on areas MC04 and MC14 in FIG. 9C. In the example of FIG. 9C, however, the issuance of an ABR command begins before the final row address of bank B1 is reached.
[0057] Fig. 9C shows the error correction processed area at the end of step S533. The cross-hatched area in Fig. 9C indicates an area where error correction has been performed twice.
[0058] In step S535, the semiconductor memory device 100 performs ABR processing on the area MC05 in Fig. 9D. The processing in steps S537 and S539, which are performed after the ABR processing on the memory cell 22 at the last row address of the area MC05, is the same as the processing in steps S503 and S505 shown in Fig. 7.
[0059] In step S541, the semiconductor memory device 100 performs ABR processing on area MC14. Because PBR processing has already been performed on area MC14, the ABR processing performed in this step is a second error correction. Next, the semiconductor memory device 100 performs ABR processing on area MC15 (step S543). The processing in steps S545 to S549, which is performed after ABR processing on the memory cell 22 at the last row address of area MC15, is the same as the processing in steps S509 to S513 shown in FIG. 7.
[0060] In step S551, when the ABR processing for area MC06 is completed, the external device no longer issues ABR commands or PBR commands, and this processing ends. Figure 9D shows the error-corrected area after this processing ends. As shown in Figure 9D, even if ABR processing and PBR processing are performed alternately, refresh and error correction processing can be performed without omission as long as a refresh command is issued. If ABR commands are continuously issued after step S551, refresh and error correction processing can be performed on all data recorded in the data recording unit 20.
[0061] According to the semiconductor memory device 100 of the embodiment described above, even in the semiconductor memory device 100 having a plurality of banks 10, error correction processing can be performed on all data recorded in the data recording unit 20 during refresh, thereby suppressing a decrease in data reliability in the semiconductor memory device 100 having a plurality of banks 10. In addition, even when ABR processing and PBR processing are performed alternately, refresh and error correction processing can be performed on all data without omission, which also suppresses a decrease in data reliability.
[0062] B. Other Embodiments: (B1) In the above embodiment, the plurality of banks 10 included in the semiconductor memory device 100 are the bank B0 and the bank B1, but the present disclosure is not limited to this. The number of the plurality of banks 10 may be more than two.
[0063] (B2) In the above embodiment, the row counter 61, the column counter 62, and the bank counter 63 increment their counter values, but the present disclosure is not limited to this. For example, the row counter 61, the column counter 62, and the bank counter 63 may decrement their counter values.
[0064] (B3) In the above embodiment, the counter 60 counts after the refresh and error correction processes are completed, but the present disclosure is not limited to this. For example, the counter 60 may count after issuing a refresh command or after writing back corrected data.
[0065] (B4) In the above embodiment, the bank counter 63 increments the bank counter value Cb by 1 at the same time that the row counter value Cr is reset from the row counter maximum value Crmax to 0, but the present disclosure is not limited to this. For example, the bank counter 63 may increment the bank counter value Cb by 1 after the row counter value Cr is reset from the row counter maximum value Crmax to 0.
[0066] (B5) In the above embodiment, the column counter 62 increments the column counter value Cc by 1 at the same time that the bank counter value Cb is reset from the bank counter maximum value Cbmax to 0, but the present disclosure is not limited to this. For example, the column counter 62 may increment the column counter value Cc by 1 after the bank counter value Cb is reset from the bank counter maximum value Cbmax to 0.
[0067] The present disclosure is not limited to the above-described embodiments and can be realized in various configurations without departing from the spirit thereof. For example, the technical features in each embodiment corresponding to the technical features in the form described in the Summary of the Invention section can be appropriately replaced or combined to solve some or all of the above-described problems or achieve some or all of the above-described effects. Furthermore, if a technical feature is not described as essential in this specification, it can be appropriately deleted. [Explanation of symbols]
[0068] 10...bank, 20...data recording unit, 30...error correction code recording unit, 40...error correction code generation unit, 50...error correction unit, 61...row counter, 62...column counter, 63...bank counter, 100...semiconductor memory device
Claims
[Claim 1] A semiconductor memory device (100) having a refresh function, a plurality of banks (10) each having a data recording section (20) in which data is recorded and an error correction code recording section (30) in which an error correction code corresponding to the data recorded in the data recording section is recorded; an error correction code generation unit (40) for generating the error correction code; an error correction unit (50) that performs error correction processing on data using the error correction code; a row counter (61) for determining a row address to be refreshed; a bank counter (63) for determining a bank address to be subjected to error correction; a column counter (62) for determining a column address to be corrected; Equipped with the error correction unit performs the error correction process on data at an error correction target address determined based on the row counter, the bank counter, and the column counter when receiving a refresh command; the row counter performs a counting operation for each issuance of the first refresh command when a first refresh command instructing a refresh for all of the plurality of banks is received as the refresh command, and performs a counting operation for each issuance of the second refresh command for all of the specified banks when a second refresh command instructing a refresh for a specified bank is received as the refresh command, The bank counter performs a counting operation each time the row counter completes one cycle, the column counter performs a counting operation each time the bank counter completes one cycle; a command reception during refresh execution may occur, which may be receiving the second refresh command while a refresh is being executed in response to the reception of the first refresh command, or receiving the first refresh command while a refresh is being executed in response to the reception of the second refresh command; when the refresh execution command is received, the row counter, the bank counter, and the column counter continue to perform the counting operation so as to maintain the counter values before the refresh execution command is received. Semiconductor memory device.
Citation Information
Patent Citations
In a memory access control device
JP1985500979A
Memory controller and memory check method
JP1997091206A
Dynamic ram
JP1997139074A
Semiconductor device
JP2020071589A
Method for scrubbing and correcting dram memory data with internal error-correcting code (ECC) bits contemporaneously during self-refresh state
US20170161142A1