MEMORY, MEMORY MODULE, MEMORY SYSTEM, AND OPERATION METHOD OF MEMORY SYSTEM
20240022263 ยท 2024-01-18
Inventors
Cpc classification
H03M13/611
ELECTRICITY
International classification
Abstract
A memory system may include an error correction code generation circuit configured to generate a first error correction code having a large bit number by using write data and a first H matrix in a first error correction mode, and to generate a second error correction code having a small bit number by using the write data and a second H matrix in a second error correction mode, and a memory core configured to store the first error correction code and the write data in the first error correction mode, and to store the second error correction code and the write data in the second error correction mode.
Claims
1. A memory system comprising: an error correction code generation circuit configured to generate a first error correction code having a large bit number by using write data and a first H matrix in a first error correction mode, and to generate a second error correction code having a small bit number by using the write data and a second H matrix in a second error correction mode; and a memory core configured to store the first error correction code and the write data in the first error correction mode, and to store the second error correction code and the write data in the second error correction mode.
2. The memory system of claim 1, wherein the first H matrix includes the second H matrix.
3. The memory system of claim 2, further comprising an error correction circuit configured to: perform, in the first error correction mode, an error correction operation in units of symbols on data read from the memory core by using the first error correction code read from the memory core; and perform, in the second error correction mode, an error correction operation in units of bits on the data read from the memory core by using the second error correction code read from the memory core.
4. The memory system of claim 2, wherein the first error correction code includes a first parity and a second parity, and the second error correction code includes the first parity, and wherein the first H matrix includes a first parity matrix for generating the first parity and a second parity matrix for generating the second parity and the second H matrix includes the first parity matrix.
5. The memory system of claim 4, wherein the error correction code generation circuit comprises: a first parity generation circuit configured to generate the first parity by using the first parity matrix; and a second parity generation circuit configured to generate the second parity by using the second parity matrix, wherein, in the first error correction mode, the first parity generation circuit and the second parity generation circuit are activated, and wherein, in the second error correction mode, the first parity generation circuit is activated and the second parity generation circuit is deactivated.
6. The memory system of claim 4, wherein the memory core comprises: a first region configured to store the write data; a second region configured to store the first parity; and a third region configured to store the second parity, and wherein the third region is activated in the first error correction mode and is deactivated in the second error correction mode.
7. The memory system of claim 4, further comprising an error correction circuit configured to perform an error correction operation, wherein the error correction circuit comprises: a first syndrome generation circuit configured to generate, in the respective first and second error correction modes, a first syndrome by using the data read from the memory core and the first parity corresponding to the read data; a second syndrome generation circuit configured to generate, in the first error correction mode, a second syndrome by using the read data and the second parity corresponding to the read data; a first corrector configured to correct, in the first error correction mode, an error in the read data by using the first syndrome and the second syndrome; and a second corrector configured to correct, in the second error correction mode, the error in the read data by using the first syndrome.
8. The memory system of claim 7, wherein the first corrector has a higher error correction capability than the second corrector.
9. The memory system of claim 1, wherein the first error correction code includes a Reed-Solomon (RS) code, and the second error correction code includes a single error correction double error detection (SECDED) code.
10. A memory comprising: a first parity generation circuit configured to generate a first parity by using write data in respective first and second error correction modes; a second parity generation circuit configured to generate a second parity by using the write data in the first error correction mode; a first cell array configured to store the write data; a second cell array configured to store the first parity; and a third cell array configured to store the second parity.
11. The memory of claim 10, wherein the third cell array is configured to store therein or reads therefrom the second parity in the first error correction mode.
12. The memory of claim 11, further comprising an error correction circuit configured to: correct, in the first error correction mode, an error in the data read from the first cell array by using the first parity read from the second cell array and the second parity read from the third cell array; and correct, in the second error correction mode, the error in the read data by using the first parity read from the second cell array.
13. The memory of claim 11, further comprising an error correction circuit configured to perform an error correction operation, wherein the error correction circuit comprises: a first syndrome generation circuit configured to generate, in the respective first and second error correction modes, a first syndrome by using the data read from the first cell array and the first parity read from the second cell array; a second syndrome generation circuit configured to generate, in the first error correction mode, a second syndrome by using the read data and the second parity read from the third cell array; a first corrector configured to correct, in the first error correction mode, an error in the read data by using the first syndrome and the second syndrome; and a second corrector configured to correct, in the second error correction mode, the error in the read data by using the first syndrome.
14. The memory of claim 13, wherein the first corrector has a higher error correction capability than the second corrector.
15. A memory module comprising: a module controller including: a first parity generation circuit configured to generate a first parity by using write data in respective first and second error correction modes; and a second parity generation circuit configured to generate a second parity by using the write data in the first error correction mode; one or more first memories configured to store the write data; one or more second memories configured to store the first parity; and one or more third memories configured to store the second parity.
16. The memory module of claim 15, wherein the one or more third memories are configured to store therein or read therefrom the second parity in the first error correction mode.
17. The memory module of claim 16, further comprising an error correction circuit configured to perform an error correction operation, wherein the error correction circuit comprises: a first syndrome generation circuit configured to generate, in the respective first and second error correction modes, a first syndrome by using the data read from the one or more first memories and the first parity read from the one or more second memories; a second syndrome generation circuit configured to generate, in the first error correction mode, a second syndrome by using the read data and the second parity read from the one or more third memories; a first corrector configured to correct, in the first error correction mode, an error in the read data by using the first syndrome and the second syndrome; and a second corrector configured to correct, in the second error correction mode, the error in the read data by using the first syndrome.
18. The memory module of claim 17, wherein the first corrector has a higher error correction capability than the second corrector.
19. A memory system comprising: a memory controller including: a first parity generation circuit configured to generate a first parity by using write data in respective first and second error correction modes; and a second parity generation circuit configured to generate a second parity by using the write data in the first error correction mode; one or more first memories configured to store the write data; one or more second memories configured to store the first parity; and one or more third memories configured to store the second parity.
20. The memory system of claim 19, wherein the one or more third memories are configured to store therein or read therefrom the second parity in the first error correction mod.
21. The memory system of claim 20, further comprising an error correction circuit configured to perform an error correction operation, wherein the error correction circuit comprises: a first syndrome generation circuit configured to generate, in the respective first and second error correction modes, a first syndrome by using the data read from the one or more first memories and the first parity read from the one or more second memories; a second syndrome generation circuit configured to generate, in the first error correction mode, a second syndrome by using the read data and the second parity read from the one or more third memories; a first corrector configured to correct, in the first error correction mode, an error in the read data by using the first syndrome and the second syndrome; and a second corrector configured to correct, in the second error correction mode, the error in the read data by using the first syndrome.
22. The memory system of claim 21, wherein the first corrector has a higher error correction capability than the second corrector.
23. The memory system of claim 20, wherein the one or more first memories, the one or more second memories, and the one or more third memories are included in a memory module, and wherein the memory module further includes a plurality of buffers for transmitting the write data, the first parity, and the second parity between the one or more first memories, second memories, and third memories, and the memory controller.
24. An operation method of a memory system, the operation method comprising: generating a first parity and a second parity corresponding to write data by using the write data to store the write data, the first parity, and the second parity in memory cells selected from a memory core by a write address during a write operation in a first error correction mode; reading data and the first parity from memory cells selected from the memory core by a read address to correct an error in the read data by using the read first parity during a read operation in a second error correction mode.
25, The operation method of claim 24, wherein the memory core includes a first region configured to store the write data, a second region configured to store the first parity, and a third region configured to store the second parity, and wherein the third region is configured to store therein or reads therefrom the second parity in the first error correction mode.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
DETAILED DESCRIPTION
[0024] Hereinafter, in order to describe in detail the present disclosure for a person skilled in the art to which the present disclosure pertains to be able to easily carry out the technical idea of the present disclosure, embodiments of the present disclosure will be described with reference to the accompanying drawings. In describing the present disclosure, publicly-known configurations irrelevant to the subject matter of the present disclosure may be omitted. In adding reference numerals to components of each drawing, it should be noted that only the same components are given the same reference numerals if possible even though they are illustrated in different drawings.
[0025]
[0026] Referring to
[0027] An error correction mode of the memory system 100 may include a first error correction mode and a second error correction mode. The first error correction mode may be a mode having a relatively high error correction capability using a first error correction code ECC_L that is an error correction code having a large bit number (for example, 32 bits). For example, the first error correction mode may have an ability capable of correcting an error in units of symbols (for example, in units of 16 bits) occurring in data DATA (illustrated as 272 bits) read from the memory core 160. An example of such a first error correction code ECC_L may include a Reed-Solomon (RS) code. The second error correction mode may be a mode having a relatively low error correction capability using a second error correction code ECC_S that is an error correction code having a small number of bits (for example, 16 bits). For example, the second error correction mode may have an ability capable of correcting an error in units of bits occurring in the data DATA read from the memory core 160. An example of such a second error correction code ECC_S may include a single error correction double error detection (SECDED) code. When the SECDED code is used, even a 1-bit error may be corrected and even a 2-bit error may be detected. An error correction mode signal ERR_MODE may be a signal that is activated in the first error correction mode and deactivated in the second error correction mode.
[0028] The error correction code generation circuit 110 may generate an error correction code by using data DATA during a write operation of the memory system 100. The error correction code generation circuit 110 may generate the first error correction code ECC_L having a large bit number in the first error correction mode in which the error correction mode signal ERR_MODE is activated. The error correction code generation circuit 110 may generate the second error correction code ECC_S having a small number of bits in the second error correction mode in which the error correction mode signal ERR_MODE is deactivated. During the write operation, since the error correction code is merely generated but no error correction operation is performed, the data DATA inputted to the error correction code generation circuit 110 and the data DATA outputted from the error correction code generation circuit 110 may be substantially identical to each other.
[0029] The error correction circuit 120 may correct an error in the data DATA by using an error correction code read from the memory core 160 during a read operation of the memory system 100. In the first error correction mode in which the error correction mode signal ERR_MODE is activated, the error correction circuit 120 may correct an error in the data DATA by using the first error correction code ECC_L having a large bit number. In the second error correction mode in which the error correction mode signal ERR_MODE is deactivated, the error correction circuit 120 may correct the error in the data DATA by using the second error correction code ECC_S having a small number of bits. Correcting the error may mean detecting the error in the data DATA by using the error correction code and correcting the error when the error is detected. In the first error correction mode, since the error correction circuit 120 uses the first error correction code ECC_L having a large bit number, the error correction capability of the error correction circuit 120 may be relatively high, and in the second error correction mode, since the error correction circuit 120 uses the second error correction code ECC_S having a small number of bits, the error correction capability of the error correction circuit 120 may be relatively low.
[0030] The memory core 160 may receive and store the data DATA and the error correction code generated by the error correction code generation circuit 110, during the write operation. During the read operation, the memory core 160 may output the stored data DATA and error correction code. In the first error correction mode, 272 bits of data DATA and 32 bits of first error correction code ECC_L may be stored in the memory core 160 for each write operation, and the 272 bits of data DATA and the 32 bits of first error correction code ECC_L may be read from the memory core 160 for each read operation. In the second error correction mode, the 272 bits of data DATA and 16 bits of second error correction code ECC_S may be stored in the memory core 160 for each write operation, and the 272 bits of data DATA and the 16 bits of second error correction code ECC_S may be read from the memory core 160 for each read operation. That is, in the first error correction mode, 304 bits of information may be accessed from the memory core 160 during one-time read operation and one-time write operation, and in the second error correction mode, 288 bits of information may be accessed from the memory core 160 during a one-time read operation and a one-time write operation. In the second error correction mode, since the memory core 160 is less used than in the first error correction mode, a part of the memory core 160 may be deactivated.
[0031] The memory core 160 refers to a place where data is stored in the memory system 100. In the memory system 100, data may also be stored in one memory, but may also be distributed and stored in a plurality of memories. Accordingly, the memory core 160 may also refer to a place where data is stored in one memory or a place where data is stored in a plurality of memories. That is, the memory core 160 in
[0032] The error correction code generation circuit 110 may be provided anywhere on a path through which data is transmitted during the write operation in the memory system 100. During the write operation, a memory controller transmits, to memory cells of the memory, write data received from a host, and the error correction code generation circuit 110 may be located anywhere on the path through which the write data is transmitted. For example, the error correction code generation circuit 110 may also be provided in the memory controller or may also be provided in the memory.
[0033] The error correction circuit 120 may be provided anywhere on a path through which data is transmitted during the read operation in the memory system 100. During the read operation, data read from the memory cells of the memory are transmitted to the host through the memory controller, and the error correction circuit 120 may be located anywhere on the path through which the read data are transmitted. For example, the error correction circuit 120 may also be provided in the memory or may also be provided in the memory controller.
[0034]
[0035]
[0036] The error correction code generation circuit 110 may generate the first error correction code ECC_L by using the H matrix 200 illustrated in
[0037] The column vectors of the H matrix 200 may correspond to the bits D0 to D271 of the data DATA, respectively. Referring to
[0038] Hereinafter, how to generate the first error correction code ECC_L by using the H matrix 200 will be described. Bits E0 to E31 of the first error correction code ECC_L may be generated by multiplying the bits D0 to D271 of the data DATA by column vectors corresponding to the bits D0 to D271, respectively, and adding the multiplication results in a horizontal direction.
[0039] For example, E0 may be generated as D0*0+D1*0+D2*0+D3*0+D4*0+D5*0+D6*0+D7*0+D8*1+D9*0+D10*1+D11*1+D12*0+D13*1+D14*0+D15*0+D16*1+D17*0+D18 *0+D19*0+D20*1+D21*0+D22*0+D23*0+D24*0+D25*0+D26*0+D27*0+D28*0+D29*0+D30*0+D31*0+ . . . +D256*1+D257*1+D258*1+D259*0+D260*0+D261*1+D262*0+D2 63*0+D264*0+D265*0+D266*0+D267*0+D268*0+D269*0+D270* 0+D271*1.
[0040] E1 may be generated as D0*0+D1*0+D2*0+D3*0+D4*0+D5*0+D6*0+D7*0+D8*0+D9*1+D10*0+D11*1+D12*1+D13*0+D14*1+D15*0+D16*1+D17* 1+D18*0+D19*0+D20*0+D21*1+D22*0+D23*0+D24*0+D25*0+D 26*0+D27*0+D28*0+D29*0+D30*0+D31*0+ . . . +D256*1+D257*1+D258*1+D259*1+D260*0+D261*0+D262*1+D2 63*0+D264*0+D265*0+D266*0+D267*0+D268*0+D269*0+D270* 0+D271*0.
[0041] Similarly, E31 may be generated as D0*0+D1*0+D2*0+D3*0+D4*0+D5*0+D6*0+D7*0+D8*0+D9*0+D10*0+D11*0+D12*0+D13*0+D14*0+D15*1+D16*0+D17*0+D18 *0+D19*0+D20*0+D21*0+D22*0+D23*0+D24*0+D25*0+D26*0+D27*0+D28*0+D29*0+D30*0+D31*1+ . . . +D256*0+D257*0+D258*0+D259*0+D260*0+D261*0+D262*0+D2 63*0+D264*0+D265*0+D266*0+D267*0+D268*0+D269*0+D270* 0D271*1.
[0042] For reference, in the above equations and in the following description, an addition means an exclusive OR. Accordingly, the result of the addition may be 0 when the number of 1s is even and may be 1 when the number of 1s is odd. For example, 1+1+0+1 may be 1 and 0+1+1+0+1 may be 0.
[0043] The error correction code generation circuit 110 generates the first error correction code ECC_L by using the H matrix 200 in the first error correction mode, but needs to generate the second error correction code ECC_S in the second error correction mode. An H matrix is also required for generating the second error correction code ECC_S, and when the H matrix required for generating the second error correction code ECC_S is included in the H matrix 200 required for generating the first error correction code ECC_L, the error correction code generation circuit 110 may be designed more efficiently.
[0044]
[0045] The error correction code generation circuit 110 may generate the second error correction code ECC_S by using the H matrix 300 illustrated in
[0046] The H matrix 300 may be divided into 17 3232 matrices T0 to T16, and it can be seen that the matrices T0 to T16 of the H matrix 300 are substantially identical to the matrices T0 to T16 of the H matrix 200 in
[0047] Since the matrices T0 to T16 for generating the bits E0 to E15 of the first error correction code ECC_L in the H matrix 300 in
[0048]
[0049] Referring to
[0050] The first parity generation circuit 410 may be activated in the first error correction mode and the second error correction mode, and may generate a first parity PARITY_0 by using the data DATA. As described above, the first parity PARITY_0 may be codes generated using the data DATA and the matrices T0 to T16 (=300), that is, E0 to E15 in
[0051] The second parity generation circuit 420 may be activated in the first error correction mode in which the error correction mode signal ERR_MODE is activated, and may generate a second parity PARITY_1 by using the data DATA. As described above, the second parity PARITY_1 may be codes generated using the data DATA and the matrices I0 to I16, that is, E16 to E31 in
[0052] The first error correction code ECC_L may be a code including the first parity PARITY_0 and the second parity PARITY_1, and the second error correction code ECC_S may be a code including the first parity PARITY_0.
[0053] Since the H matrix 300 for generating the second error correction code is included in the H matrix 200 for generating the first error correction code, the first parity generation circuit 410 may be used to generate the first error correction code ECC_L and the second error correction code ECC_S, and as a result, the area of the error correction code generation circuit 110 may be reduced.
[0054]
[0055] Referring to
[0056] The first syndrome generation circuit 510 may generate a first syndrome SYNDROME_0 by using the data DATA read from the memory core 160 in the first error correction mode and the second error correction mode and the first parity PARITY_0. The first syndrome generation circuit 510 may use the first parity matrix (T0 to T16) to generate the first syndrome SYNDOME_0.
[0057]
[0058] For example, S0 may be generated as D0*0+D1*0+D2*0+D3*0+D4*0+D5*0+D6*0+D7*0+D8*0+D9*0+D10*1+D11*1+D12*030 D13*1+D14*0+D15*0+D16*1+D17*0+D18 *0+D19*0+D20*1+D21*0+D22*0+D23*1+D24*0+D25*0+D26*0+D27*0+D28*0+D29*0+D30*0+D31*0+ . . . +D256*1+D257*1+D258*1+D259*0+D260*0+D261*1+D262*0+D2 63* 0+D264*0+D265*0+D266*0+D267*0+D268*0+D269*0+270*0+D271*1+P0.
[0059] S1 may be generated as D0*0+D1*0+D2*0+D3*0+D4*0+D5*0+D6*0+D7*0+D8*0+D9*1+D10*0+D11*1+D12*1+D13*0+D14*1+D15*0+D16*1+D17*1+D18 *0+D19*0+D20*0+D21*1+D22*0+D23*0+D24*0+D25*0+D26*0+D27*0+D28*0+D29*0+D30*0+D31*0+ . . . +D256*1+D257*1+D258*1+D259*1+D260*0+D261*0+D262*1+D2 63*0+D264*0+D265*0+D266*0+D267*0+D268*0+D269*0+D270* 0+D271*0+P1.
[0060] Similarly, S15 may be generated as D0*0+D1*0+D2*0+D3*0+D4*0+D5*0+D6*0+D7*1+D8*0+D9*1+D10*1+D11*0+D12*1+D13*0+D14*0+D15*0+D16*0+D17*0+D18*0+D19*1+D20*0+D21*0+D22*1+D23*0+D24*0+D25*0+D26 *0+D27*0+D28*0+D29*0+D30*0+D31*1+ . . . +D256*1+D257*1+D258*0+D259*0+D260*1+D261*0+D262*0+D2 63*0+D264*0+D265*0+D266*0+D267*0+D268*0+D269*0+D270* 1+D271*1+P15.
[0061] Referring back to
[0062]
[0063] For example, S16 may be generated as DO*1+D1*0+D2*0+D3*0+D4*0+D5*0+D6*0+D7*0+D8*0+D9*0+D 10*0+D11*0+D12*0+D1 3*0+D14*0+D15*0+D16*1+D17*0+D18*0+D19*0+D20*0+D21*0+D22*0+D23*0+D24*0+D25*0+D26*0+D27*0+D28*0+D29*0+D3 0*0+D31*0+ . . . +D256*1+D257*0+D258*0+D259*0+D260*0+D261*0+D262*0+D263*0+D264*0+D265*0+D266*0+D267*0+D26 8*0+D269*0+D270*0+D271*0+P16.
[0064] S17 may be generated as D0*0+D1*1+D2*0+D3*0+D4*0+D5*0+D6*0+D7*0+D8*0+D9*0+D10*0+D11*0+D12*0+D13*0+D14*0+D15*0+D16*0+D17*1+D18 *0+D19*0+D20*0+D21*0+D22*0+D23*0+D24*0+D25*0+D26*0+D27*0+D28*0+D29*0+D30*0+D31*0+ . . . +D256*0+D257*1+D258*0+D259*0+D260*0+D261*0+D262*0+D2 63*0+D264*0+D265*0+D266*0+D267*0+D268*0+D269*0+D270* 0+D271*0+P17.
[0065] Similarly, S31 may be generated as D0*0+D1*0+D2*0+D3*0+D4*0+D5*0+D6*0+D7*0+D8*0+D9*0+D10*0+D11*0+D12*0+D13*0+D14*0+D15*1+D16*0+D17*0+D18 *0+D19*0+D20*0+D21*0+D22*0+D23*0+D24*0+D25*0+D26*0+D27*0+D28*0+D29*0+D30*0+D31*1+ . . . +D256*0+D257*0+D258*0+D259*0+D260*0+D261*0+D262*0+D2 63*0+D264*0+D265*0+D266*0+D267*0+D268*0+D269*0+D270* 0+D271*1+P31.
[0066] Referring back to
[0067] When the values S0 to S31 of the first syndrome SYNDROME_0 and the second syndrome SYNDROME_1 are all 0, the first corrector 530 may determine that there is no error in the data DATA. In such a case, the input data DATA and the output data DATA of the first corrector 530 may be substantially identical to each other. However, when 1 exists in the values S0 to S31 of the first syndrome SYNDROME_0 and the second syndrome SYNDROME_1, the first corrector 530 may perform an operation of finding a symbol having an error among the symbols Symbol 0 to Symbol 15 of the data DATA, and restoring a value of the symbol having an error.
[0068]
[0069] Referring to
[0070] Referring back to
[0071] The second corrector 540 may be activated in the second error correction mode in which the error correction mode signal ERR_MODE is deactivated, and may correct the error in the data DATA by using the first syndrome SYNDROME_0. The second corrector 540 may have an error correction capability in units of bits. The second corrector 540 may be deactivated in the first error correction mode in which the error correction mode signal ERR_MODE is activated.
[0072] When the values S0 to S15 of the first syndrome SYNDROME_0 are all 0, the second corrector 540 may determine that there is no error in the data DATA. In such a case, the input data DATA and the output data DATA of the second corrector 540 may be identical to each other. When none the values S0 to S15 of the first syndrome SYNDROME_0 are 0, the second corrector 540 may correct the error in the data DATA by inverting the bit of the data DATA corresponding to a column vector having substantially the same value as the first syndrome SYNDROME_0 among the column vectors of the first parity matrix (T0 to T16). For example, when the values S0 to S15 of the first syndrome SYNDROME_0 are 0100010100010000, since the value of a column vector corresponding to the bit D14 of the data DATA among the column vectors of the first parity matrix (T0 to T16) is 0100010100010000 (see
[0073] Since the first syndrome SYNDROME_0 is used in common in the first error correction mode and the second error correction mode, the first syndrome generation circuit 510 may be utilized in the error correction operation of the first error correction mode and the error correction operation of the second error correction mode, and as a result, the area of the error correction circuit 120 may be reduced.
[0074]
[0075] accordance with another embodiment of the present disclosure. An embodiment in which a memory 920 of the memory system 900 includes the error correction code generation circuit 110 and the error correction circuit 120 will be described with reference to
[0076] The memory controller 910 may control operations such as read and write of the memory 920 according to a request from a host. During the write operation, data may be transmitted from the memory controller 910 to the memory 920, and during the read operation, data DATA may be transmitted from the memory 920 to the memory controller 910.
[0077] The memory 920 may include the error correction code generation circuit 110, the error correction circuit 120, and the memory core 160.
[0078] The error correction code generation circuit 110 may generate an error correction code by using the data DATA during the write operation. The error correction code generation circuit 110 may generate the first error correction code ECC_L (=PARITY_0+PARITY_1) in the first error correction mode in which the error correction mode signal ERR_MODE is activated, and generate the second error correction code ECC_S (=PARITY_0) in the second error correction mode in which the error correction mode signal ERR_MODE is deactivated. Since the configuration and the operation of the error correction code generation circuit 110 have been described in detail with reference to
[0079] The error correction circuit 120 may correct the error in the data DATA by using the error correction code during the read operation. The error correction circuit 120 may correct the error in the data DATA by using the first error correction code ECC_L (=PARITY_0+PARITY_1) in the first error correction mode in which the error correction mode signal ERR_MODE is activated, and correct the error in the data DATA by using the second error correction code ECC_S (=PARITY_0) in the second error correction mode in which the error correction mode signal ERR_MODE is deactivated. Since the configuration and the operation of the error correction circuit 120 have been described in detail with reference to
[0080] The memory core 160 may include cell arrays 921 to 923. The cell array 921 may represent a region for storing the data DATA in the memory core 160, the cell array 922 may represent a region for storing the first parity PARITY_0 in the memory core 160, and the cell array 923 may represent a region for storing the second parity PARITY_1 in the memory core 160. The cell arrays 921 and 922 may be used in both the first error correction mode and the second error correction mode. However, in the second error correction mode, since the second parity PARITY_1 is not used, it is not necessary to write the second parity PARITY_1 to the cell array 923 and read the second parity PARITY_1 from the cell array 923. Therefore, in the second error correction mode in which the error correction mode signal ERR_MODE is deactivated, the cell array 923 may be deactivated, which makes it possible to reduce current consumption.
[0081]
[0082] Referring to
[0083] The memory controller 1010 may control operations such as read and write of the memory module 1020 according to a request of a host. During the write operation, data may be transmitted from the memory controller 1010 to the memory module 1020, and during the read operation, data DATA may be transmitted from the memory module 1020 to the memory controller 1010.
[0084] The memory module 1020 may include the module controller 1030 and a plurality of memories 1041 to 1059. The memory module 1020 refers to a module including the plurality of memories 1041 to 1059, and examples of such a memory module 1020 may include a dual in-line memory module (DIMM), a solid-state drive (SSD), and the like. The module controller 1030 may exist for an error correction
[0085] operation of the memory module 1020, and may include the error correction code generation circuit 110 and the error correction circuit 120. The error correction code generation circuit 110 may generate an error correction code by using the data DATA during the write operation. The error correction code generation circuit 110 may generate the first error correction code ECC_L (=PARITY_0+PARITY_1) in the first error correction mode in which the error correction mode signal ERR_MODE is activated, and generate the second error correction code ECC_S (=PARITY_0) in the second error correction mode in which the error correction mode signal ERR_MODE is deactivated. The error correction circuit 120 may correct an error in data DATA by using the error correction code during the read operation. The error correction circuit 120 may correct the error in the data DATA by using the first error correction code ECC_L (=PARITY_0+PARITY_1) in the first error correction mode in which the error correction mode signal ERR_MODE is activated, and correct the error in the data DATA by using the second error correction code ECC_S (=PARITY_0) in the second error correction mode in which the error correction mode signal ERR_MODE is deactivated. Since the configurations and the operations of the error correction code generation circuit 110 and the error correction circuit 120 have been described in detail with reference to
[0086] The memories 1041 to 1059 may distribute and store the data DATA, and the parities PARITY_0 and PARITY_1. For each write operation, 272 bits of data DATA, 32 bits of parity PARITY_0, 32 bits of parity PARITY_1 may be stored in the memories 1041 to 1059 of the memory module 1020, and the 17 memories 1041 to 1059 may each store the data DATA by 16 bits. That is, the 17 memories 1041 to 1057 may store the symbols Symbol 0 to Symbol 16 of the data DATA, respectively. The memory 1058 may store 16 bits of first parity PARITY_0 and the memory 1059 may store 16 bits of second parity PARITY_1. Since it is not necessary to use the second parity PARITY_1 in the second error correction mode, the memory 1059 may be deactivated in the second error correction mode in which the error correction mode signal ERR_MODE is deactivated, which makes it possible to reduce current consumption.
[0087]
[0088]
[0089] Referring to
[0090] The memory controller 1110 may control operations such as read and write of the memory module 1120 according to a request from a host. The memory controller 1110 may include the error correction code generation circuit 110 and the error correction circuit 120. The error correction code generation circuit 110 may generate an error correction code by using the data DATA during the write operation. The error correction code generation circuit 110 may generate the first error correction code ECC_L (=PARITY_0+PARITY_1) in the first error correction mode in which the error correction mode signal ERR_MODE is activated, and generate the second error correction code ECC_S (=PARITY_0) in the second error correction mode in which the error correction mode signal ERR_MODE is deactivated. The error correction circuit 120 may correct an error in data DATA by using the error correction code during the read operation. The error correction circuit 120 may correct the error in the data DATA by using the first error correction code ECC_L (=PARITY_0+PARITY_1) in the first error correction mode in which the error correction mode signal ERR_MODE is activated, and correct the error in the data DATA by using the second error correction code ECC_S (=PARITY_0) in the second error correction mode in which the error correction mode signal ERR_MODE is deactivated. Since the configurations and the operations of the error correction code generation circuit 110 and the error correction circuit 120 have been described in detail with reference to
[0091] The memory module 1120 may include a plurality of memories 1141 to 1159 and buffers 1160 to 1179. The memory module 1120 means a module including the plurality of memories 1141 to 1159, and examples of such a memory module 1120 may include a dual in-line memory module (DIMM), a solid-state drive (SSD), and the like.
[0092] The memories 1141 to 1159 may distributed and store the data DATA and the parities PARITY_0 and PARITY_1. For each write operation, 272 bits of data DATA, 32 bits of parity PARITY_0, and 32 bits of parity PARITY_1 may be stored in the memories 1141 to 1159 of the memory module 1120, and the 17 memories 1141 to 1159 may each store the data DATA by 16 bits. That is, the 17 memories 1141 to 1157 may store the symbols Symbol 0 to Symbol 16 of the data DATA, respectively. The memory 1158 may store 16 bits of first parity PARITY_0 and the memory 1159 may store 16 bits of second parity PARITY_1. Since it is not necessary to use the second parity PARITY_1 in the second error correction mode, the memory 1159 may be deactivated in the second error correction mode in which the error correction mode signal ERR_MODE is deactivated, which makes it possible to reduce current consumption.
[0093] The buffers 1160 to 1179 may be used to buffer the data DATA and the parities PARITY_0 and PARITY_1 transmitted and received between the memory controller 1110 and the memories 1141 to 1159. In the second error correction mode in which the memory 1159 is not used, since it is not necessary to use the buffer 1179, the buffer 1179 may be deactivated in the second error correction mode in which the error correction mode signal ERR_MODE is deactivated, which makes it possible to reduce current consumption. According to an embodiment, the memory controller 1110 and the memories 1141 to 1159 may directly transmit/receive the data DATA and the parities PARITY_0 and PARITY_1 to/from each other without the buffers 1161 to 1179.
[0094]
[0095] In the memory systems 100, 900, 1000, and 1100, switching between the first error correction mode and the second error correction mode may be performed in real time. After the data DATA is written in the first error correction mode, the error correction operation may be normally performed even though the error correction mode is changed to the second error correction mode. In such a case, a region for storing the second parity PARITY_1 in the memory systems 100, 900, 1000, and 1100 may be deactivated according to a mode change from the first error correction mode to the second error correction mode.
[0096] However, when the error correction mode is changed to the first error correction mode after the data DATA is written in the second error correction mode, the second parity PARITY_1 generated during the write operation does not exist. Therefore, the error correction operation in the first error correction mode may not be performed.
[0097] Although the technical spirit of the present disclosure has been specifically described according to the above embodiments, it should be noted that the above embodiments are for description, not for its limitation. Furthermore, those who skilled in the art will understand that various embodiments can be made within the scope of the technical spirit of the present disclosure and the following claims. Furthermore, the embodiments may be combined to form additional embodiments.