Nothing Special   »   [go: up one dir, main page]

CN112420119B - Memory comprising conversion module and array unit module - Google Patents

Memory comprising conversion module and array unit module Download PDF

Info

Publication number
CN112420119B
CN112420119B CN202011449079.8A CN202011449079A CN112420119B CN 112420119 B CN112420119 B CN 112420119B CN 202011449079 A CN202011449079 A CN 202011449079A CN 112420119 B CN112420119 B CN 112420119B
Authority
CN
China
Prior art keywords
module
ecc
array
data
unit
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
Application number
CN202011449079.8A
Other languages
Chinese (zh)
Other versions
CN112420119A (en
Inventor
付妮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Unilc Semiconductors Co Ltd
Original Assignee
Xian Unilc Semiconductors Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xian Unilc Semiconductors Co Ltd filed Critical Xian Unilc Semiconductors Co Ltd
Priority to CN202011449079.8A priority Critical patent/CN112420119B/en
Publication of CN112420119A publication Critical patent/CN112420119A/en
Application granted granted Critical
Publication of CN112420119B publication Critical patent/CN112420119B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

The present invention relates to a memory and an array unit module including a conversion module, wherein the memory and the array unit module are capable of multiplexing peripheral circuits, thereby reducing a peripheral circuit area.

Description

Memory comprising conversion module and array unit module
Technical Field
The present invention relates to the field of memory. In particular, the present invention relates to a memory and an array cell module including a conversion module, wherein the memory and the array cell module are capable of multiplexing peripheral circuits, thereby reducing a peripheral circuit area.
Background
ECC is a method of error detection and correction of data. It uses the addition of extra data, called check bits, on the basis of a certain length of data bits to implement the error detection and correction functions. The length of the check bits is determined according to the selected ECC algorithm.
After the ECC algorithm is selected, the data bits of a certain length have check bits corresponding to them, and these check bits also need to be stored in an array. Therefore, peripheral circuits corresponding to these check bits are required: the device comprises a row decoding module, a column decoding module, a sense amplifier and a write driving module.
Fig. 1 shows a core structure of a common memory that does not contain error correction code (Error Correction Code, ECC) functions. The structure is made up of repeated sections, each section containing a memory array module, a row decode module, a column decode module, sense amplifiers, and a write drive module.
The memory array module is used for storing data, the row decoding module and the column decoding module determine the data storage position through addresses, the write driving module writes the data into the memory array module in the process of writing operation, and the sense amplifier amplifies the data read out from the memory array module in the process of reading operation.
Fig. 2 shows a core structure of a known memory including an ECC function. In this case, although the row decoding block is multiplexed (i.e., the ECC array block and the data array block share the row decoding block), other peripheral circuits such as a column decoding block for the data array, a sense amplifier and a write driving block for the data array, a column decoding block for the ECC array, a sense amplifier and a write driving block for the ECC array, and the like are also required, respectively, which greatly increases the area of the memory.
Therefore, there is a need to solve the above-mentioned technical problems in the prior art.
Disclosure of Invention
The present invention relates to a memory and an array unit module including a conversion module, wherein the memory and the array unit module are capable of multiplexing peripheral circuits, thereby reducing a peripheral circuit area. The inventors of the present invention realized that: the core structure of the memory is made up of repeated parts that are not all active at the same time. For the inactive portion, the peripheral circuits of its memory array are not activated, while the peripheral circuits of the data array or the ECC array of the active portion may be used. Thus, no additional peripheral circuits for ECC arrays or data arrays are required, thereby achieving area reduction. On this basis, the inventors propose to provide in these memories and array cell modules a conversion module that can easily convert between supporting and not supporting ECC functions on the basis of only little change.
According to a first aspect of the present invention there is provided a memory comprising at least:
N data array modules;
the data array module comprises L error correction code ECC array modules, wherein a Kth ECC array module is used for storing ECC codes or used for storing additional data, the ECC codes are check codes obtained by ECC encoding data stored in a data array module corresponding to the Kth ECC array module, and the additional data are additional data of data stored in a data array module corresponding to the Kth ECC array module or additional data of data stored in a data array module different from the data array module corresponding to the Kth ECC array module;
the conversion module is respectively connected with the data array module and the ECC array module, and enables the Kth array module to selectively store the ECC codes or the additional data according to a control instruction;
wherein N is a positive integer greater than or equal to 2, L is a positive integer less than or equal to N, and K is a positive integer less than or equal to L.
According to a preferred embodiment of the memory according to the present invention, the conversion module causes the kth ECC array module to store the additional data according to a first control instruction.
According to a preferred embodiment of the memory according to the invention, the first control instruction indicates that the memory does not support an ECC function.
According to a preferred embodiment of the memory according to the present invention, the conversion module causes the kth ECC array module to store the ECC code according to a second control instruction.
According to a preferred embodiment of the memory according to the invention, the second control instruction instructs the memory to support an ECC function.
According to a preferred embodiment of the memory of the present invention, an mth data array module and a corresponding ECC array module are activated simultaneously, wherein the corresponding ECC array module is used for storing ECC codes, which are check codes obtained by ECC encoding data stored in the mth data array module;
the ECC array module corresponding to the activated Mth data array module uses peripheral circuits for the one or more data array modules that are not activated, or the activated Mth data array module uses peripheral circuits for the one or more ECC array modules that are not activated;
wherein M is a positive integer less than or equal to N.
According to a preferred embodiment of the memory of the present invention, the ECC array module corresponding to the activated mth data array module and the one or more data array modules that are not activated use the same peripheral circuit when activated at different times; or alternatively
The activated mth data array module and the inactive one or more ECC array modules use the same peripheral circuitry when activated at different times;
wherein the peripheral circuitry comprises any one or a combination of: the device comprises a row decoding module, a column decoding module, a sense amplifier and a write driving module.
According to a preferred embodiment of the memory according to the invention, each data array module comprises a plurality of data array sub-modules;
the ECC array module corresponding to the plurality of data array sub-modules of one data array module and the plurality of data array sub-modules of another data array module use the same peripheral circuit when activated at different times; or alternatively
The plurality of data array sub-modules of one data array module and one or more ECC array modules corresponding to the plurality of data array sub-modules of another data array module or other data array modules use the same peripheral circuit when activated at different times;
wherein the peripheral circuitry comprises any one or a combination of the following: the device comprises a row decoding module, a column decoding module, a sense amplifier and a write driving module.
According to a preferred embodiment of the memory according to the present invention, the N data array modules comprise at least: a first data array module and a second data array module;
The L ECC array modules at least comprise: a first ECC array module and a second ECC array module; the first ECC array module is used for storing a first ECC code or used for storing first additional data, the first ECC code is a check code obtained by ECC encoding on the data stored in the first data array module, and the first additional data is the additional data of the data stored in the second data array module or the additional data of the data stored in the first data array module; the second ECC array module is configured to store a second ECC code or is configured to store second additional data, where the second ECC code is a check code obtained by performing ECC encoding on data stored in the second data array module, and the second additional data is additional data of data stored in the first data array module or is additional data of data stored in the second data array module;
the conversion module enables the first ECC array module and the second ECC array module to store the first additional data and the second additional data respectively according to a first control instruction, and enables the first ECC array module and the second ECC array module to store the first ECC code and the second ECC code respectively according to a second control instruction.
According to a preferred embodiment of the memory of the present invention, the conversion module causes the first ECC array module and the second ECC array module to store the first ECC code and the second ECC code, respectively, according to a second control instruction;
the first data array module and the second data array module are activated at different times, wherein the first data array module and the corresponding first ECC array module are activated simultaneously, and the second data array module and the corresponding second ECC array module are activated simultaneously;
the ECC array module corresponding to the activated data array module uses the peripheral circuit for the data array module that is not activated, or the activated data array module uses the peripheral circuit for the ECC array module that is not activated;
wherein the peripheral circuitry comprises any one or a combination of the following: the device comprises a row decoding module, a column decoding module, a sense amplifier and a write driving module.
According to a preferred embodiment of the memory according to the present invention, the first data array module and the second ECC array module use a first column decoding module, or use a first row decoding module, or use both a first column decoding module and a first row decoding module when activated at different times;
The second data array module and the first ECC array module use a second column decode module, or use a second row decode module, or use both a second column decode module and a second row decode module when activated at different times.
According to a preferred embodiment of the memory of the present invention, the conversion module causes the first ECC array module and the second ECC array module to store the first additional data and the second additional data, respectively, according to a first control sub-instruction, wherein the first additional data is additional data of data stored in the second data array module, and the second additional data is additional data of data stored in the first data array module;
the first data array module and the second data array module are activated at different times, the first data array module and the second ECC array module are activated at different times, the second data array module and the first ECC array module are activated at different times;
the activated data array module uses peripheral circuitry for the activated data array module and the activated ECC array module uses peripheral circuitry for the activated ECC array module;
Wherein the peripheral circuitry comprises any one or a combination of the following: the device comprises a row decoding module, a column decoding module, a sense amplifier and a write driving module.
According to a preferred embodiment of the memory according to the invention, the first data array module or the second ECC array module is activated using a first column decoding module, or using a first row decoding module, or using both a first column decoding module and a first row decoding module;
the second data array module or the first ECC array module uses a second column decode module or uses a second row decode module or uses both a second column decode module and a second row decode module when activated.
According to a preferred embodiment of the memory of the present invention, the conversion module causes the first ECC array module and the second ECC array module to store the first additional data and the second additional data, respectively, according to a second control sub-instruction, wherein the first additional data is additional data of data stored in the first data array module, and the second additional data is additional data of data stored in the second data array module;
The first data array module and the second data array module are activated at different times, wherein the first data array module and the first ECC array module are activated simultaneously, and the second data array module and the second ECC array module are activated simultaneously;
the activated data array module and the activated ECC array module use peripheral circuits for the unactivated data array module or use peripheral circuits for the unactivated ECC array module;
wherein the peripheral circuitry comprises any one or a combination of the following: the device comprises a row decoding module, a column decoding module, a sense amplifier and a write driving module.
According to a preferred embodiment of the memory according to the present invention, the first data array module and the second ECC array module use a first column decoding module, or use a first row decoding module, or use both a first column decoding module and a first row decoding module when activated at different times;
the second data array module and the first ECC array module use a second column decode module, or use a second row decode module, or use both a second column decode module and a second row decode module when activated at different times.
According to a preferred embodiment of the memory of the present invention, the first data array module is disposed between the second ECC array module and the first column coding module.
According to a preferred embodiment of the memory of the present invention, the second data array module is arranged between the first ECC array module and the second column coding module.
According to a preferred embodiment of the memory of the present invention, the second ECC array module is disposed between the first data array module and the first column coding module.
According to a preferred embodiment of the memory of the present invention, the first ECC array module is disposed between the second data array module and the second column coding module.
According to a preferred embodiment of the memory of the present invention, the first data array module, the second data array module, the first ECC array module and the second ECC array module are disposed between the first row decoding module and the second row decoding block.
According to a preferred embodiment of the memory according to the invention, the first data array module comprises at least a first data array sub-module and a second data array sub-module, the second data array module comprises at least a third data array sub-module and a fourth data array sub-module;
The second ECC array module is arranged between the first data array sub-module and the second data array sub-module, and the second data array sub-module is arranged between the second ECC array module and the first column decoding module;
the first ECC array module is arranged between the third data array sub-module and the fourth data array sub-module, and the fourth data array sub-module is arranged between the first ECC array module and the second column decoding module;
the first data array sub-module, the second data array sub-module, the third data array sub-module, the fourth data array sub-module, the first ECC array module, and the second ECC array module are disposed between the first row decoding module and the second row decoding module.
According to a second aspect of the present invention, there is provided an array unit module including at least:
n data array units;
l Error Correction Code (ECC) array units, wherein a Kth ECC array unit is used for storing ECC codes or is used for storing additional data, the ECC codes are check codes obtained by ECC encoding data stored in a data array unit corresponding to the Kth ECC array unit, and the additional data are additional data of data stored in a data array unit corresponding to the Kth ECC array unit or additional data of data stored in a data array unit different from the data array unit corresponding to the Kth ECC array unit;
The conversion unit is respectively connected with the data array unit and the ECC array unit, and enables the Kth array unit to selectively store the ECC code or the additional data according to a control instruction;
the total size of each data array unit and the corresponding ECC array unit is determined according to the ECC algorithm adopted, and the total size is equal to P times of the sum of the data bit length required by the ECC algorithm and the generated check bit length;
wherein N is a positive integer greater than or equal to 2, L is a positive integer less than or equal to N, and P is a positive integer greater than or equal to 1.
According to a preferred embodiment of the array unit module of the present invention, the conversion unit causes the kth ECC array unit to store the additional data according to a first control instruction.
According to a preferred embodiment of the array unit module of the present invention, the first control instruction instructs the array unit module not to support an ECC function.
According to a preferred embodiment of the array unit module of the present invention, the conversion unit causes the kth ECC array module to store the ECC code according to a second control instruction.
According to a preferred embodiment of the array unit module of the present invention, the second control instruction instructs the array unit module to support an ECC function.
According to a preferred embodiment of the array unit module of the present invention, the N data array units include at least: a first data array unit and a second data array unit;
the L ECC array units at least comprise: a first ECC array unit and a second ECC array unit; the first ECC array unit is used for storing a first ECC code or used for storing first additional data, the first ECC code is a check code obtained by ECC encoding on the data stored in the first data array unit, and the first additional data is the additional data of the data stored in the second data array unit or the additional data of the data stored in the first data array unit; the second ECC array unit is configured to store a second ECC code or is configured to store second additional data, where the second ECC code is a check code obtained by performing ECC encoding on data stored in the second data array unit, and the second additional data is additional data of data stored in the first data array unit or is additional data of data stored in the second data array unit;
The conversion unit enables the first ECC array unit and the second ECC array unit to store the first additional data and the second additional data respectively according to a first control instruction, and enables the first ECC array unit and the second ECC array unit to store the first ECC code and the second ECC code respectively according to a second control instruction.
According to a preferred embodiment of the array unit module of the present invention, the conversion unit causes the first ECC array unit and the second ECC array unit to store the first ECC code and the second ECC code, respectively, according to a second control instruction;
the first data array unit and the second data array unit are activated at different times, wherein the first data array unit and the corresponding first ECC array unit are activated simultaneously, and the second data array unit and the corresponding second ECC array unit are activated simultaneously;
the ECC array unit corresponding to the activated data array unit uses the row decoding unit for the unactivated data array unit, or the activated data array unit uses the row decoding unit for the unactivated ECC array unit.
According to a preferred embodiment of the array cell module of the present invention, the first data array cell and the second ECC array cell use a first row decoding cell when activated at different times;
the second data array unit and the first ECC array unit use a second row decoding unit when activated at different times.
According to a preferred embodiment of the array unit module of the present invention, the conversion unit causes the first ECC array unit and the second ECC array unit to store the first additional data and the second additional data, respectively, according to a first control sub-instruction, wherein the first additional data is additional data of data stored in the second data array unit, and the second additional data is additional data of data stored in the first data array unit;
the first data array unit and the second data array unit are activated at different times, the first data array unit and the second ECC array unit are activated at different times, and the second data array unit and the first ECC array unit are activated at different times;
the activated data array unit uses row decoding units for the activated data array module, and the activated ECC array unit uses row decoding units for the activated ECC array unit.
According to a preferred embodiment of the array unit module of the present invention, the first data array unit or the second ECC array unit uses a first row decoding unit when activated;
the second data array unit or the first ECC array unit is activated using a second row decoding unit.
According to a preferred embodiment of the array unit module of the present invention, the conversion module causes the first ECC array unit and the second ECC array unit to store the first additional data and the second additional data, respectively, according to a second control sub-instruction, wherein the first additional data is additional data of data stored in the first data array unit, and the second additional data is additional data of data stored in the second data array unit;
the first data array unit and the second data array unit are activated at different times, wherein the first data array unit and the first ECC array unit are activated simultaneously, and the second data array unit and the second ECC array unit are activated simultaneously;
the activated data array unit and the activated ECC array unit use row decoding units for the inactivated data array module or use row decoding units for the inactivated ECC array unit.
According to a preferred embodiment of the array cell module of the present invention, the first data array cell and the second ECC array cell use a first row decoding cell when activated at different times;
the second data array unit and the first ECC array unit use a second row decoding unit when activated at different times.
According to a preferred embodiment of the array unit module of the present invention, the first row decoding unit is disposed between the first data array unit and the second data array unit;
the second row of coding units is disposed between the first ECC array unit and the second ECC array unit.
According to a preferred embodiment of the array unit module of the present invention, the first row decoding unit is disposed between the first data array unit and the first ECC array unit;
the second row decoding unit is disposed between the second data array unit and the second ECC array unit.
According to a preferred embodiment of the array unit module of the present invention, the first row decoding unit is disposed between the first ECC array unit and the second ECC array unit;
The second row decoding unit is disposed between the first data array unit and the second data array unit.
According to a preferred embodiment of the array unit module of the present invention, the first row decoding unit is disposed between the second data array unit and the second ECC array unit;
the second row decoding unit is disposed between the first data array unit and the first ECC array unit.
According to a third aspect of the present invention, there is provided a memory including a plurality of array unit modules according to the second aspect of the present invention, the plurality of array unit modules being stacked in sequence in a column direction.
According to a fourth aspect of the present invention, there is provided a storage method for a memory, the memory comprising at least: n data array modules; l error correction code ECC array modules; the conversion module is respectively connected with the data array module and the ECC array module; the storage method comprises the following steps:
acquiring a control instruction;
according to the control instruction, enabling a Kth array module to selectively store ECC codes or additional data, wherein the ECC codes are check codes obtained by ECC encoding data stored in a data array module corresponding to the Kth ECC array module, and the additional data are additional data of data stored in a data array module corresponding to the Kth ECC array module or additional data of data stored in a data array module different from the data array module corresponding to the Kth ECC array module;
Wherein N is a positive integer greater than or equal to 2, L is a positive integer less than or equal to N, and K is a positive integer less than or equal to L.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
and enabling the L ECC array modules to store the additional data according to a first control instruction.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the first control instruction indicates that the memory does not support ECC functionality.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
and according to a second control instruction, enabling the L ECC array modules to store the ECC codes.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the second control instruction indicates that the memory supports an ECC function.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the M-th data array module and the corresponding ECC array module are activated simultaneously, wherein the corresponding ECC array module is used for storing ECC codes, and the ECC codes are check codes obtained by ECC encoding the data stored in the M-th data array module;
The ECC array module corresponding to the activated Mth data array module uses peripheral circuits for the one or more data array modules that are not activated, or the activated Mth data array module uses peripheral circuits for the one or more ECC array modules that are not activated;
wherein M is a positive integer less than or equal to N.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the ECC array module corresponding to the activated Mth data array module and the one or more data array modules which are not activated use the same peripheral circuit when being activated at different times; or alternatively
The activated mth data array module and the inactive one or more ECC array modules use the same peripheral circuitry when activated at different times;
wherein the peripheral circuitry comprises any one or a combination of: the device comprises a row decoding module, a column decoding module, a sense amplifier and a write driving module.
According to a preferred embodiment of the storage method of the present invention, each data array module comprises a plurality of data array sub-modules; the storage method further comprises the following steps:
the ECC array module corresponding to the plurality of data array sub-modules of one data array module and the plurality of data array sub-modules of another data array module use the same peripheral circuit when activated at different times; or alternatively
The plurality of data array sub-modules of one data array module and one or more ECC array modules corresponding to the plurality of data array sub-modules of another data array module or other data array modules use the same peripheral circuit when activated at different times;
wherein the peripheral circuitry comprises any one or a combination of the following: the device comprises a row decoding module, a column decoding module, a sense amplifier and a write driving module.
According to a preferred embodiment of the storage method of the present invention, the N data array modules include at least: a first data array module and a second data array module; the L ECC array modules at least comprise: a first ECC array module and a second ECC array module; the storage method further comprises the following steps:
the first ECC array module is used for storing a first ECC code or used for storing first additional data, the first ECC code is a check code obtained by ECC encoding the data stored in the first data array module, and the first additional data is the additional data of the data stored in the second data array module or the additional data of the data stored in the first data array module;
the second ECC array module is configured to store a second ECC code or be configured to store second additional data, where the second ECC code is a check code obtained by performing ECC encoding on data stored in the second data array module, and the second additional data is additional data of data stored in the first data array module or additional data of data stored in the second data array module;
The conversion module enables the first ECC array module and the second ECC array module to store the first additional data and the second additional data respectively according to a first control instruction, and enables the first ECC array module and the second ECC array module to store the first ECC code and the second ECC code respectively according to a second control instruction.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the conversion module enables the first ECC array module and the second ECC array module to respectively store the first ECC code and the second ECC code according to a second control instruction;
the first data array module and the second data array module are activated at different times, wherein the first data array module and the corresponding first ECC array module are activated simultaneously, and the second data array module and the corresponding second ECC array module are activated simultaneously;
the ECC array module corresponding to the activated data array module uses the peripheral circuit for the data array module that is not activated, or the activated data array module uses the peripheral circuit for the ECC array module that is not activated;
Wherein the peripheral circuitry comprises any one or a combination of the following: the device comprises a row decoding module, a column decoding module, a sense amplifier and a write driving module.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the first data array module and the second ECC array module use a first column decode module, or use a first row decode module, or use both a first column decode module and a first row decode module when activated at different times;
the second data array module and the first ECC array module use a second column decode module, or use a second row decode module, or use both a second column decode module and a second row decode module when activated at different times.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the conversion module enables the first ECC array module and the second ECC array module to respectively store the first additional data and the second additional data according to a first control sub-instruction, wherein the first additional data is the additional data of the data stored in the second data array module, and the second additional data is the additional data of the data stored in the first data array module;
The first data array module and the second data array module are activated at different times, the first data array module and the second ECC array module are activated at different times, the second data array module and the first ECC array module are activated at different times;
the activated data array module uses peripheral circuitry for the activated data array module and the activated ECC array module uses peripheral circuitry for the activated ECC array module;
wherein the peripheral circuitry comprises any one or a combination of the following: the device comprises a row decoding module, a column decoding module, a sense amplifier and a write driving module.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the first data array module or the second ECC array module uses a first column decode module, or uses a first row decode module, or uses both a first column decode module and a first row decode module when activated;
the second data array module or the first ECC array module uses a second column decode module or uses a second row decode module or uses both a second column decode module and a second row decode module when activated.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the conversion module enables the first ECC array module and the second ECC array module to respectively store the first additional data and the second additional data according to a second control sub-instruction, wherein the first additional data is the additional data of the data stored in the first data array module, and the second additional data is the additional data of the data stored in the second data array module;
the first data array module and the second data array module are activated at different times, wherein the first data array module and the first ECC array module are activated simultaneously, and the second data array module and the second ECC array module are activated simultaneously;
the activated data array module and the activated ECC array module use peripheral circuits for the unactivated data array module or use peripheral circuits for the unactivated ECC array module;
wherein the peripheral circuitry comprises any one or a combination of the following: the device comprises a row decoding module, a column decoding module, a sense amplifier and a write driving module.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the first data array module and the second ECC array module use a first column decode module, or use a first row decode module, or use both a first column decode module and a first row decode module when activated at different times;
the second data array module and the first ECC array module use a second column decode module, or use a second row decode module, or use both a second column decode module and a second row decode module when activated at different times.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the first data array module is disposed between the second ECC array module and the first column decoding module.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the second data array module is disposed between the first ECC array module and the second column coding module.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the second ECC array module is disposed between the first data array module and the first column decoding module.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the first ECC array module is disposed between the second data array module and the second column coding module.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the first data array module, the second data array module, the first ECC array module, and the second ECC array module are disposed between the first row decoding module and the second row decoding block.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the first data array module at least comprises a first data array sub-module and a second data array sub-module, and the second data array module at least comprises a third data array sub-module and a fourth data array sub-module;
the second ECC array module is arranged between the first data array sub-module and the second data array sub-module, and the second data array sub-module is arranged between the second ECC array module and the first column decoding module;
the first ECC array module is arranged between the third data array sub-module and the fourth data array sub-module, and the fourth data array sub-module is arranged between the first ECC array module and the second column decoding module;
The first data array sub-module, the second data array sub-module, the third data array sub-module, the fourth data array sub-module, the first ECC array module, and the second ECC array module are disposed between the first row decoding module and the second row decoding module.
According to a fifth aspect of the present invention, there is provided a storage method for an array unit module including at least: n data array units; l error correction code ECC array units; the conversion unit is respectively connected with the data array unit and the ECC array unit; the storage method comprises the following steps:
acquiring a control instruction;
according to the control instruction, enabling a kth array unit to selectively store an ECC code or additional data, wherein the ECC code is a check code obtained by performing ECC encoding on data stored in a data array unit corresponding to the kth ECC array unit, and the additional data is additional data of data stored in a data array unit corresponding to the kth ECC array unit or additional data of data stored in a data array unit different from the data array unit corresponding to the kth ECC array unit;
The total size of each data array unit and the corresponding ECC array unit is determined according to the ECC algorithm adopted, and the total size is equal to P times of the sum of the data bit length required by the ECC algorithm and the generated check bit length;
wherein N is a positive integer greater than or equal to 2, L is a positive integer less than or equal to N, and P is a positive integer greater than or equal to 1.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
and enabling the L ECC array units to store the additional data according to a first control instruction.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the first control instruction indicates that the array unit module does not support an ECC function.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
and according to a second control instruction, enabling the L ECC array modules to store the ECC codes.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the second control instruction instructs the array unit module to support an ECC function.
According to a preferred embodiment of the storage method of the present invention, the N data array units include at least: a first data array unit and a second data array unit; the L ECC array units at least comprise: a first ECC array unit and a second ECC array unit; the storage method further comprises the following steps:
The first ECC array unit is used for storing a first ECC code or used for storing first additional data, the first ECC code is a check code obtained by ECC encoding the data stored in the first data array unit, and the first additional data is the additional data of the data stored in the second data array unit or the additional data of the data stored in the first data array unit; the second ECC array unit is configured to store a second ECC code or is configured to store second additional data, where the second ECC code is a check code obtained by performing ECC encoding on data stored in the second data array unit, and the second additional data is additional data of data stored in the first data array unit or is additional data of data stored in the second data array unit;
the conversion unit enables the first ECC array unit and the second ECC array unit to store the first additional data and the second additional data respectively according to a first control instruction, and enables the first ECC array unit and the second ECC array unit to store the first ECC code and the second ECC code respectively according to a second control instruction.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the conversion unit enables the first ECC array unit and the second ECC array unit to respectively store the first ECC code and the second ECC code according to a second control instruction;
the first data array unit and the second data array unit are activated at different times, wherein the first data array unit and the corresponding first ECC array unit are activated simultaneously, and the second data array unit and the corresponding second ECC array unit are activated simultaneously;
the ECC array unit corresponding to the activated data array unit uses the row decoding unit for the unactivated data array unit, or the activated data array unit uses the row decoding unit for the unactivated ECC array unit.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the first data array unit and the second ECC array unit use a first row of decoding units when activated at different times;
the second data array unit and the first ECC array unit use a second row decoding unit when activated at different times.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the conversion unit enables the first ECC array unit and the second ECC array unit to respectively store the first additional data and the second additional data according to a first control sub-instruction, wherein the first additional data is the additional data of the data stored in the second data array unit, and the second additional data is the additional data of the data stored in the first data array unit;
the first data array unit and the second data array unit are activated at different times, the first data array unit and the second ECC array unit are activated at different times, and the second data array unit and the first ECC array unit are activated at different times;
the activated data array unit uses row decoding units for the activated data array module, and the activated ECC array unit uses row decoding units for the activated ECC array unit.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
a first row decoding unit is used when the first data array unit or the second ECC array unit is activated;
The second data array unit or the first ECC array unit is activated using a second row decoding unit.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the conversion module enables the first ECC array unit and the second ECC array unit to respectively store the first additional data and the second additional data according to a second control sub-instruction, wherein the first additional data is the additional data of the data stored in the first data array unit, and the second additional data is the additional data of the data stored in the second data array unit;
the first data array unit and the second data array unit are activated at different times, wherein the first data array unit and the first ECC array unit are activated simultaneously, and the second data array unit and the second ECC array unit are activated simultaneously;
the activated data array unit and the activated ECC array unit use row decoding units for the inactivated data array module or use row decoding units for the inactivated ECC array unit.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
The first data array unit and the second ECC array unit use a first row of decoding units when activated at different times;
the second data array unit and the first ECC array unit use a second row decoding unit when activated at different times.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the first row decoding unit is arranged between the first data array unit and the second data array unit;
the second row of coding units is disposed between the first ECC array unit and the second ECC array unit.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the first row of decoding units are arranged between the first data array unit and the first ECC array unit;
the second row decoding unit is disposed between the second data array unit and the second ECC array unit.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the first row of decoding units are arranged between the first ECC array units and the second ECC array units;
The second row decoding unit is disposed between the first data array unit and the second data array unit.
According to a preferred embodiment of the storage method of the present invention, the storage method further comprises:
the first row of decoding units are arranged between the second data array units and the second ECC array units;
the second row decoding unit is disposed between the first data array unit and the first ECC array unit.
According to a sixth aspect of the present invention, there is provided a method of constructing a memory, the method comprising stacking a plurality of array unit modules in sequence in a column direction, the array unit modules being the array unit modules as claimed in any one of claims 20 to 33.
According to a seventh aspect of the present invention, there is provided an electronic device comprising:
at least one memory according to the first aspect of the invention; and
and the processor is connected with the memory, and is communicated with the memory through the bus, and processes the data in the memory.
According to an eighth aspect of the present invention, there is provided an electronic device comprising:
At least one memory according to the third aspect of the invention; and
and the processor is connected with the memory, and is communicated with the memory through the bus, and processes the data in the memory.
According to a ninth aspect of the present invention, there is provided an electronic device comprising:
at least one memory having stored thereon computer-executable instructions; and
at least one processor connected to the memory and in communication with the memory via a bus, which when executed by the processor causes the processor to perform a storage method according to the fourth aspect of the invention.
According to a tenth aspect of the present invention, there is provided an electronic device comprising:
at least one memory having stored thereon computer-executable instructions; and
at least one processor connected to the memory and in communication with the memory via a bus, which when executed by the processor causes the processor to perform a storage method according to the fifth aspect of the invention.
According to an eleventh aspect of the present invention, there is provided an electronic device comprising:
at least one memory having stored thereon computer-executable instructions; and
at least one processor connected to the memory and in communication with the memory over a bus, which when executed by the processor causes the processor to perform a method of constructing a memory according to the sixth aspect of the invention.
Drawings
The invention will be more readily understood from the following description taken in conjunction with the accompanying drawings, in which:
fig. 1 shows a common core structure of a memory that does not contain error correction code functions.
Fig. 2 shows a core structure of a known memory including an ECC function.
Fig. 3 to 8 are schematic diagrams of various embodiments of a memory to which the conversion module of the present invention is applied.
Fig. 9 to 12 are schematic views of various embodiments of an array unit module to which the conversion unit of the present invention is applied.
Fig. 13 is a schematic diagram according to one embodiment of a memory constructed by the array unit modules shown in fig. 9 to 12.
FIG. 14 is a schematic diagram of one embodiment of a memory including a conversion module in accordance with the present invention.
Fig. 15 is a schematic view of one embodiment of an array unit module including a conversion unit according to the present invention.
FIG. 16 illustrates a flow chart of one embodiment of a storage method for a memory.
Figure 17 shows a flow chart of one embodiment of a storage method for an array cell module.
Detailed Description
Embodiments of the present invention will be described in further detail below with reference to the accompanying drawings.
First, a memory and an array unit module to which the conversion module or the conversion unit of the present invention is applied will be described. Illustrated in fig. 3 to 13 are schematic diagrams of a memory and an array cell module in the case of supporting an ECC function.
Fig. 3 to 8 are schematic diagrams of various embodiments of a memory to which the conversion module of the present invention is applied.
The memory shown in fig. 3 includes: two data array modules, namely, a first data array module 310 and a second data array module 320; and two ECC array modules, namely, a first ECC array module 330 and a second ECC array module 340, wherein the first ECC array module 330 is used for storing a check code obtained by ECC encoding data stored in the first data array module 310, and the second ECC array module 340 is used for storing a check code obtained by ECC encoding data stored in the second data array module 320. It should be understood that the memory of the present invention may also include more than two data array modules and more than two ECC array modules.
In fig. 3 to 6 and 8, the memory includes the same number of data array modules and ECC array modules. However, the memory of the present invention may also include a different number of data array modules and ECC array modules, wherein a plurality of data array modules may multiplex one ECC array module. In this context, "multiplexing" refers to the use of both at the same time and at different times.
Referring back to fig. 3, fig. 3 shows a schematic diagram of one embodiment of a memory to which the conversion module of the present invention is applied. In fig. 3, a first data array module 310 is disposed between a second ECC array module 340 and a first column decoding module 350, and a second data array module 320 is disposed between the first ECC array module 330 and a second column decoding module 360. The first data array module 310 and the corresponding first ECC array module 330 are activated simultaneously, and the second data array module 320 and the corresponding second ECC array module 340 are activated simultaneously.
When the first data array module 310 and the corresponding first ECC array module 330 are activated simultaneously, the first data array module 310 uses the first column decoding module 350 and the first ECC array module 330 uses the second column decoding module 360.
When the second data array module 320 and the corresponding second ECC array module 340 are activated simultaneously, the second data array module 320 uses the second column decoding module 360 and the second ECC array module 340 uses the first column decoding module 350.
Accordingly, the first data array module 310 and the second ECC array module 340 multiplex the first column decoding module 350 when activated at different times, and the second data array module 320 and the first ECC array module 330 multiplex the second column decoding module 360 when activated at different times.
When the first column decoding module 350 is specifically configured for the first data array module 310 and can meet the requirement of the second ECC array module 340 for the column decoding module, the second ECC array module 340 is referred to as using the first column decoding module 350 for the first data array module 310; when the first column decoding module 350 is specifically configured for the second ECC array module 340 and is capable of meeting the requirements of the first data array module 310 for the column decoding module, it is referred to as the first data array module 310 using the first column decoding module 350 for the second ECC array module 340.
Similarly, when the second column decode module 360 is specifically configured for the second data array module 320 and is capable of meeting the requirements of the first ECC array module 330 for the column decode module, the first ECC array module 330 uses the second column decode module 360 for the second data array module 320; when the second column decoding module 360 is specifically provided for the first ECC array module 330 and is capable of meeting the requirements of the second data array module 320 for the column decoding module, it is referred to as the second data array module 320 using the second column decoding module 360 for the first ECC array module 330.
In addition, it can also be seen that in fig. 3, the memory multiplexes the first column decode module 350 and the second column decode module 360, as well as the corresponding sense amplifier and write driver modules.
Fig. 4 shows a schematic diagram of another embodiment of a memory to which the conversion module of the invention is applied. In fig. 4, a second ECC array module 440 is disposed between a first data array module 410 and a first column decoding module 450, and a first ECC array module 430 is disposed between the second data array module 420 and a second column decoding module 460. The first data array module 410 and the corresponding first ECC array module 430 are activated simultaneously, and the second data array module 420 and the corresponding second ECC array module 440 are activated simultaneously.
When the first data array module 410 and the corresponding first ECC array module 430 are activated simultaneously, the first data array module 410 uses the first column decoding module 450 and the first ECC array module 430 uses the second column decoding module 460.
When the second data array module 420 and the corresponding second ECC array module 440 are activated simultaneously, the second data array module 420 uses the second column decoding module 460 and the second ECC array module 440 uses the first column decoding module 450.
Thus, the first data array module 410 and the second ECC array module 440 multiplex the first column decode module 450 when activated at different times, and the second data array module 420 and the first ECC array module 430 multiplex the second column decode module 460 when activated at different times.
When the first column decoding module 450 is specifically configured for the first data array module 410 and is capable of meeting the requirements of the second ECC array module 440 for the column decoding module, the first column decoding module 450 for the first data array module 410 is used by the second ECC array module 440; when the first column decoding module 450 is specifically configured for the second ECC array module 440 and is capable of meeting the requirements of the first data array module 410 for the column decoding module, it is referred to as the first data array module 410 using the first column decoding module 450 for the second ECC array module 440.
Similarly, when the second column decode module 460 is specifically configured for the second data array module 420 and is capable of meeting the requirements of the first ECC array module 430 for the column decode module, the first ECC array module 430 uses the second column decode module 460 for the second data array module 420; when the second column decoding module 460 is specifically configured for the first ECC array module 430 and is capable of meeting the requirements of the second data array module 420 for the column decoding module, the second data array module 420 is referred to as a second column decoding module 460 for the first ECC array module 430.
In addition, it can also be seen that in fig. 4, the memory multiplexes the first column decode module 450 and the second column decode module 460 together with the corresponding sense amplifier and write driver modules.
Fig. 5 shows a schematic diagram of another embodiment of a memory to which the conversion module of the invention is applied. In fig. 5, a first data array module 510 is disposed between a second ECC array module 540 and a first column decoding module 550, and a first ECC array module 530 is disposed between a second data array module 520 and a second column decoding module 560. The first data array module 510 and the corresponding first ECC array module 530 are activated simultaneously, and the second data array module 520 and the corresponding second ECC array module 540 are activated simultaneously.
When the first data array module 510 and the corresponding first ECC array module 530 are activated simultaneously, the first data array module 510 uses the first column decoding module 550 and the first ECC array module 530 uses the second column decoding module 560.
When the second data array module 520 and the corresponding second ECC array module 540 are activated simultaneously, the second data array module 520 uses the second column decoding module 560 and the second ECC array module 540 uses the first column decoding module 550.
Thus, the first data array module 510 and the second ECC array module 540 multiplex the first column decode module 550 when activated at different times, and the second data array module 520 and the first ECC array module 530 multiplex the second column decode module 560 when activated at different times.
When the first column decoding module 550 is specifically configured for the first data array module 510 and is capable of meeting the requirements of the second ECC array module 540 for the column decoding module, the second ECC array module 540 is referred to as using the first column decoding module 550 for the first data array module 510; when the first column decoding module 550 is specifically configured for the second ECC array module 540 and is capable of meeting the requirements of the first data array module 510 for the column decoding module, it is referred to as the first data array module 510 using the first column decoding module 550 for the second ECC array module 540.
Similarly, when the second column decode module 560 is specifically configured for the second data array module 520 and is capable of meeting the requirements of the first ECC array module 530 for the column decode module, the first ECC array module 530 uses the second column decode module 560 for the second data array module 520; when the second column decoding module 560 is specifically provided for the first ECC array module 530 and is capable of meeting the requirements of the second data array module 520 for the column decoding module, it is referred to as the second data array module 520 using the second column decoding module 560 for the first ECC array module 530.
In addition, it can also be seen that in fig. 5, the memory multiplexes the first column decode module 550 and the second column decode module 560, as well as the corresponding sense amplifier and write driver modules.
Fig. 6 shows a schematic diagram of another embodiment of a memory to which the conversion module of the invention is applied. In fig. 6, a second ECC array module 640 is disposed between the first data array module 610 and the first column decoding module 650, and a second data array module 620 is disposed between the first ECC array module 630 and the second column decoding module 660. The first data array module 610 and the corresponding first ECC array module 630 are activated simultaneously, and the second data array module 620 and the corresponding second ECC array module 640 are activated simultaneously.
When the first data array module 610 and the corresponding first ECC array module 630 are activated simultaneously, the first data array module 610 uses the first column decoding module 650 and the first ECC array module 630 uses the second column decoding module 660.
When the second data array module 620 and the corresponding second ECC array module 640 are activated simultaneously, the second data array module 620 uses the second column decoding module 660 and the second ECC array module 640 uses the first column decoding module 650.
Thus, the first data array module 610 and the second ECC array module 640 multiplex the first column decoding module 650 when activated at different times, and the second data array module 620 and the first ECC array module 630 multiplex the second column decoding module 660 when activated at different times.
When the first column decode module 650 is specifically configured for the first data array module 610 and is capable of meeting the requirements of the second ECC array module 640 for the column decode module, the second ECC array module 640 uses the first column decode module 650 for the first data array module 610; when the first column decoding module 650 is specifically configured for the second ECC array module 640 and is capable of meeting the requirements of the first data array module 610 for the column decoding module, it is referred to as the first data array module 610 using the first column decoding module 650 for the second ECC array module 640.
Similarly, when the second column decode module 660 is specifically configured for the second data array module 620 and is capable of meeting the requirements of the first ECC array module 630 for the column decode module, the first ECC array module 630 uses the second column decode module 660 for the second data array module 620; when the second column decode module 660 is specifically provided for the first ECC array module 630 and is capable of meeting the requirements of the second data array module 620 for the column decode module, it is referred to as the second data array module 620 using the second column decode module 660 for the first ECC array module 630.
In addition, it can also be seen that in fig. 5, the memory multiplexes the first column decode module 650 and the second column decode module 660 together with the corresponding sense amplifier and write driver modules.
Fig. 7 shows a schematic diagram of another embodiment of a memory to which the conversion module of the invention is applied. In fig. 7, the first data array module includes a first data array sub-module 7101 and a second data array sub-module 7102, and the second data array module includes a third data array sub-module 7201 and a fourth data array sub-module 7202.
For the sake of a clearer explanation of the present invention, only two data array sub-modules are shown in fig. 7 for each data array module. It should be understood that fig. 7 is only illustrative, and that each data array module of the memory of the present invention may also include more than two data array sub-modules.
In fig. 7, a second ECC array module 740 is disposed between the first data array sub-module 7101 and the second data array sub-module 7102, and the second data array sub-module 7102 is disposed between the second ECC array module 740 and the first column decoding module 750. The first ECC array module 730 is disposed between the third data array sub-module 7201 and the fourth data array sub-module 7202, and the fourth data array sub-module 7202 is disposed between the first ECC array module 730 and the second column decoding module 760. The first data array sub-module 7101 and the second data array sub-module 7102 and the corresponding first ECC array module 730 are activated simultaneously, and the third data array sub-module 7201 and the fourth data array sub-module 7202 and the corresponding second ECC array module 740 are activated simultaneously.
When the first data array sub-module 7101 and the second data array sub-module 7102 and the corresponding first ECC array module 730 are activated simultaneously, the first data array sub-module 7101 and the second data array sub-module 7102 use the first column decoding module 750 and the first ECC array module 730 uses the second column decoding module 760.
When the third data array sub-module 7201 and the fourth data array sub-module 7202 and the corresponding second ECC array module 740, the third data array sub-module 7201 and the fourth data array sub-module 7202 use the second column decoding module 760, and the second ECC array module 740 uses the first column decoding module 750.
Thus, the first and second data array sub-modules 7101 and 7102 and the second ECC array module 740 multiplex the first column decode module 750 when activated at different times, and the third and fourth data array sub-modules 7201 and 7202 and the first ECC array module 730 multiplex the second column decode module 760 when activated at different times.
When the first column decode module 750 is specifically configured for the first data array sub-module 7101 and the second data array sub-module 7102 and is capable of meeting the requirements of the second ECC array module 740 for the column decode module, the first column decode module 650 for the first data array sub-module 7101 and the second data array sub-module 7102 is used by the second ECC array module 740; when the first column decode module 750 is specifically configured for the second ECC array module 740 and is capable of meeting the requirements of the first data array sub-module 7101 and the second data array sub-module 7102 for the column decode module, it is referred to as the first data array sub-module 7101 and the second data array sub-module 7102 use the first column decode module 750 for the second ECC array module 740.
Similarly, when the second column decode module 760 is specifically configured for the third data array sub-module 7201 and the fourth data array sub-module 7202 and is capable of meeting the requirements of the first ECC array module 730 for the column decode module, the first ECC array module 730 uses the second column decode module 760 for the third data array sub-module 7201 and the fourth data array sub-module 7202; when the second column decode module 760 is specifically provided for the first ECC array module 730 and is capable of meeting the requirements of the third data array sub-module 7201 and the fourth data array sub-module 7202 for column decode modules, it is referred to as the third data array sub-module 7201 and the fourth data array sub-module 7202 using the second column decode module 760 for the first ECC array module 730.
In addition, it can also be seen that in fig. 7, the memory multiplexes the first column decode module 750 and the second column decode module 760 together with the corresponding sense amplifier and write driver modules.
It should be understood that in fact, fig. 7 also shows a case where the data array sub-modules multiplex the corresponding ECC arrays (the data array sub-modules commonly use the corresponding ECC arrays at the same time). In fig. 7, a first data array sub-module 7101 and a second data array sub-module 7102 multiplex a first ECC array module 730, and a third data array sub-module 7201 and a fourth data array sub-module 7202 multiplex a second ECC array module 740.
Shown in fig. 3 to 7 is the case of a memory multiplexed column decoder and corresponding sense amplifiers and write driver modules, and the arrangement between these modules is merely illustrative. Those skilled in the art will be able to modify these arrangements after reading this application, as long as the conditions that an activated data array module or ECC array module can multiplex an unactivated data array module or ECC array module are met, and all such arrangements are within the scope of the present invention.
Fig. 8 shows a schematic diagram of another embodiment of a memory to which the conversion module of the invention is applied, wherein a multiplexing is performed for the row decoder.
In the embodiments shown in fig. 3 to 7, the ECC array module and the data array module share a column decoding module, a sense amplifier, and a write driving module, but different ECC array modules and data array modules have their corresponding row decoding modules. For fig. 3, for example, when the first data array module 310 and the corresponding first ECC array module 330 are activated, their corresponding row decoding modules are activated, while the second data array module 320 and the corresponding second ECC array module 340 are not activated. Fig. 8 improves this solution and shares the row decoding modules.
In fig. 8, the first data array module 810 and the second ECC array module 840 multiplex the first row decoder 870 and the first column decoder 850 and the corresponding sense amplifiers and write drivers when activated at different times. The second data array module 820 and the first ECC array module 830 multiplex the second row decoder 880 and the second column decoder 860 and the corresponding sense amplifier and write driver module when activated at different times.
In fig. 8, the arrangement of the remaining blocks is the same as that in fig. 3 except for the first row decoder 870 and the second column decoder 880. It will be appreciated that the arrangement shown in fig. 4 to 7 may also be multiplexed with the row decoders by a person skilled in the art after reading the present application.
Since the connection between the column decoding module and the data array module and the ECC array module may be difficult when the column decoding multiplexing is performed. For this, the present invention introduces a minimum-sized array unit module. The specific size of the array unit module is determined by a specific ECC algorithm.
Fig. 9 to 12 are schematic views of various embodiments of an array unit module to which the conversion unit of the present invention is applied.
The array unit module shown in fig. 9 includes: two data array units, namely, a first data array unit 910 and a second data array unit 920; and two ECC array units, namely, a first ECC array unit 930 and a second ECC array unit 940, wherein the first ECC array unit 930 is used for storing a check code obtained by ECC encoding data stored in the first data array unit 910, and the second ECC array unit 940 is used for storing a check code obtained by ECC encoding data stored in the second data array unit 920. It should be understood that the array unit module of the present invention may also include more than two data array units and more than two ECC array units.
In fig. 9 to 12, the array cell module includes the same number of data array cells and ECC array cells. However, the array unit module of the present invention may also include a different number of data array units and ECC array units, wherein a plurality of data array units may multiplex one ECC array unit.
Referring back to fig. 9, fig. 9 is a schematic diagram of one embodiment of an array cell module to which the conversion unit of the present invention is applied. In fig. 9, a first row decoding unit 970 is disposed between the first data array unit 910 and the second data array unit 920, and a second row decoding unit 980 is disposed between the first ECC array unit 930 and the second ECC array unit 940.
The first data array unit 910 and the corresponding first ECC array unit 930 are activated simultaneously. At this time, the first data array unit 910 uses the first row decoding unit 970, and the first ECC array unit 930 uses the second row decoding unit 980. The second data array unit 920 and the corresponding second ECC array unit 940 are activated simultaneously. At this time, the second data array unit 920 uses the second row decoding unit 980, and the second ECC array unit 940 uses the first row decoding unit 970. Accordingly, the first data array unit 910 and the second ECC array unit 940 multiplex the first row decoding unit 970 when activated at different times, and the second data array unit 920 and the first ECC array unit 930 multiplex the second row decoding unit 980 when activated at different times.
As described above with respect to fig. 3 through 8, when the first row decoding unit 970 is specifically provided for the first data array unit 910 and is capable of satisfying the requirement of the second ECC array unit 940 for the row decoding unit, the first row decoding unit 970 for the first data array unit 910 is used for the so-called second ECC array unit 940; when the first row decoding unit 970 is specially provided for the second ECC array unit 940 and is capable of satisfying the requirement of the first data array unit 910 for the row decoding unit, it is called that the first data array unit 910 uses the first row decoding unit 970 for the second ECC array unit 940.
Similarly, when the second row decoding unit 980 is specifically provided for the second data array unit 920 and is capable of meeting the requirement of the first ECC array unit 930 for the row decoding unit, the second row decoding unit 980 for the second data array unit 920 is used by the first ECC array unit 930; when the second row decoding unit 980 is specially provided for the first ECC array unit 930 and is capable of meeting the requirement of the second data array unit 920 for the row decoding unit, the second data array unit 920 is referred to as a second row decoding unit 980 for the first ECC array unit 930.
Fig. 10 is a schematic diagram of another embodiment of an array unit module to which the conversion unit of the present invention is applied. In fig. 10, a first row decoding unit 1070 is disposed between the first data array unit 1010 and the first ECC array unit 1030, and a second row decoding unit 1080 is disposed between the second data array unit 1020 and the second ECC array unit 1040.
The first data array unit 1010 and the corresponding first ECC array unit 1030 are activated simultaneously. At this time, the first data array unit 1010 uses the first row decoding unit 1070, and the first ECC array unit 1030 uses the second row decoding unit 1080. The second data array unit 1020 and the corresponding second ECC array unit 1040 are activated simultaneously. At this time, the second data array unit 1020 uses the second row decoding unit 1080, and the second ECC array unit 1040 uses the first row decoding unit 1070. Accordingly, the first data array unit 1010 and the second ECC array unit 1040 multiplex the first row decoding unit 1070 when activated at different times, and the second data array unit 1020 and the first ECC array unit 1030 multiplex the second row decoding unit 1080 when activated at different times.
As described above with respect to fig. 3-8, when the first row decode unit 1070 is specifically configured for the first data array unit 1010 and is capable of meeting the requirements of the second ECC array unit 1040 for the row decode unit, the first row decode unit 1070 for the first data array unit 1010 is used for the second ECC array unit 1040; when the first row decoding unit 1070 is specifically configured for the second ECC array unit 1040 and is capable of satisfying the requirements of the first data array unit 1010 for the row decoding unit, it is referred to as the first data array unit 1010 using the first row decoding unit 1070 for the second ECC array unit 1040.
Similarly, when the second row decoding unit 1080 is specially provided for the second data array unit 1020 and is capable of meeting the requirements of the first ECC array unit 1030 for the row decoding unit, the second row decoding unit 1080 for the second data array unit 1020 is used for the first ECC array unit 1030; when the second row decoding unit 1080 is specially provided for the first ECC array unit 1030 and is capable of meeting the demand of the second data array unit 1020 for the row decoding unit, the second data array unit 1020 is referred to as a second row decoding unit 1080 for the first ECC array unit 1030.
Fig. 11 is a schematic diagram of another embodiment of an array unit module to which the conversion unit of the present invention is applied. In fig. 11, a first row decoding unit 1170 is disposed between the first ECC array unit 1130 and the second ECC array unit 1140, and a second row decoding unit 1180 is disposed between the first data array unit 1110 and the second data array unit 1120.
The first data array unit 1110 and the corresponding first ECC array unit 1130 are activated simultaneously. At this time, the first data array unit 1110 uses the first row decoding unit 1170, and the first ECC array unit 1130 uses the second row decoding unit 1180. The second data array unit 1120 and the corresponding second ECC array unit 1140 are activated simultaneously. At this time, the second data array unit 1120 uses the second row decoding unit 1180, and the second ECC array unit 1140 uses the first row decoding unit 1170. Accordingly, the first data array unit 1110 and the second ECC array unit 1140 multiplex the first row decoding unit 1170 when activated at different times, and the second data array unit 1120 and the first ECC array unit 1130 multiplex the second row decoding unit 1180 when activated at different times.
As described above with respect to fig. 3-8, when the first row decoding unit 1170 is specifically configured for the first data array unit 1110 and is capable of meeting the requirements of the second ECC array unit 1140 for the row decoding unit, the first row decoding unit 1170 for the first data array unit 1110 is used by the second ECC array unit 1140; when the first row decoding unit 1170 is specifically configured for the second ECC array unit 1140 and is capable of meeting the requirement of the first data array unit 1110 for the row decoding unit, the first data array unit 1110 is referred to as the first row decoding unit 1170 for the second ECC array unit 1140.
Similarly, when the second row decoding unit 1180 is specifically provided for the second data array unit 1120 and is capable of meeting the requirement of the first ECC array unit 1130 for the row decoding unit, the first ECC array unit 1130 uses the second row decoding unit 1180 for the second data array unit 1120; when the second row decoding unit 1180 is specially provided for the first ECC array unit 1130 and is capable of meeting the requirement of the second data array unit 1120 for the row decoding unit, the second data array unit 1120 is referred to as a second row decoding unit 1180 for the first ECC array unit 1130.
Fig. 12 is a schematic diagram of another embodiment of an array unit module to which the conversion unit of the present invention is applied. In fig. 12, a first row decoding unit 1270 is disposed between the second data array unit 1220 and the second ECC array unit 1240, and a second row decoding unit 1280 is disposed between the first data array unit 1210 and the first ECC array unit 1230.
The first data array unit 1210 and the corresponding first ECC array unit 1230 are activated simultaneously. At this time, the first data array unit 1210 uses the first row decoding unit 1270, and the first ECC array unit 1230 uses the second row decoding unit 1280. The second data array unit 1220 and the corresponding second ECC array unit 1240 are activated simultaneously. At this time, the second data array unit 1220 uses the second row decoding unit 1280, and the second ECC array unit 1240 uses the first row decoding unit 1270. Accordingly, the first data array unit 1210 and the second ECC array unit 1240 multiplex the first row decoding unit 1270 when activated at different times, and the second data array unit 1220 and the first ECC array unit 1230 multiplex the second row decoding unit 1280 when activated at different times.
As described above with respect to fig. 3 to 8, when the first row decoding unit 1270 is specially provided for the first data array unit 1210 and is capable of satisfying the demand for the row decoding unit by the second ECC array unit 1240, the first row decoding unit 1270 for the first data array unit 1210 is used by the second ECC array unit 1240; when the first row decoding unit 1270 is specially provided for the second ECC array unit 1240 and can meet the requirements of the first data array unit 1210 for the row decoding unit, it is called that the first data array unit 1210 uses the first row decoding unit 1270 for the second ECC array unit 1240.
Similarly, when the second row decoding unit 1280 is specifically configured for the second data array unit 1220 and is capable of satisfying the requirements of the first ECC array unit 1230 for the row decoding unit, the first ECC array unit 1230 is referred to as the second row decoding unit 1280 for the second data array unit 1220; when the second row decoding unit 1280 is specially provided for the first ECC array unit 1230 and is capable of satisfying the requirements of the second data array unit 1220 for row decoding units, the second data array unit 1220 is referred to as a second row decoding unit 1280 for the first ECC array unit 1230.
In fig. 9 to 12, the total size of the first data array unit and the corresponding first ECC array unit (or the second data array unit and the corresponding second ECC array unit) is determined according to the ECC algorithm employed, and is equal to an integer multiple of the sum of the data bit length required by the ECC algorithm and the generated check bit length. For example, for a common Hamming code (72, 64), where the data bits are 64 bits and the check bits are 8 bits. The total size of the first data array unit and the corresponding first ECC array unit (or the second data array unit and the corresponding second ECC array unit) may be an integer multiple of 72 or 144 or 216, etc. 72.
Fig. 13 is a schematic diagram according to one embodiment of a memory constructed by the array unit modules shown in fig. 9 to 12.
The array unit module 1301 shown in fig. 13 is an array unit module as any one of fig. 9 to 12. The array unit modules may be identical or different. Multiplexing of the row decoding unit, the column decoding module, the sense amplifier, and the write driving module is achieved by stacking these array cell modules in sequence in the column direction.
As in the embodiments illustrated in fig. 3 to 13, the area of the memory can be saved. Again, taking a common Hamming code (72, 64) as an example, the data bits are 64 bits and the check bits are 8 bits. Embodiments of the present invention may save approximately 11.11% (8/72) of the area of the column decode module, sense amplifier, write drive module, row decode module. The area that can be saved for the entire chip depends on the proportion of this part of the circuitry in the entire chip.
In the present invention, a conversion module or a conversion unit is introduced based on the memory and array unit modules shown in fig. 3 to 13.
If the memory or array cell module supports ECC functionality, the ECC codec module is enabled and the corresponding ECC array module or ECC array cell is used to store an ECC code; if the memory or array cell module does not support the ECC function, the ECC codec module is disabled and the corresponding ECC array module or ECC array cell is used to store additional data.
The conversion module and the conversion unit are described in detail below with reference to fig. 14 and 15.
FIG. 14 is a schematic diagram of one embodiment of a memory including a conversion module in accordance with the present invention.
Fig. 14 illustrates a schematic diagram of a memory including a conversion module. The memory in fig. 14 includes: a first data array module 1410; a second data array module 1420; a first ECC array module (or a second additional data array module) 1430; a second ECC array module (or first additional data array module) 1440; the conversion module 1409 is connected to the first data array module 1410, the second data array module 1420, the first ECC array module (or the second additional data array module) 1430, and the second ECC array module (or the first additional data array module) 1440, respectively. In addition, similar to fig. 3, in fig. 14, a first data array module 1410 is disposed between a second ECC array module (or a first additional data array module) 1440 and a first column decoding module 1450, and a second data array module 1420 is disposed between a first ECC array module (or a second additional data array module) 1430 and a second column decoding module 1460.
The memory shown in fig. 14 includes only two data array modules and two ECC array modules. It should be understood that the memory in fig. 14 may also include more than two data array modules and more than two ECC array modules.
In addition, in fig. 14, the memory includes the same number of data array modules and ECC array modules. However, the memory of the present invention may also include a different number of data array modules and ECC array modules, wherein a plurality of data array modules may multiplex one ECC array module.
In the case of the memory support ECC function in fig. 14, the conversion module 1409 obtains a control instruction indicating that the memory support ECC function, enables the ECC codec module, and causes both the first ECC array module (or the second additional data array module) 1430 and the second ECC array module (or the first additional data array module) 1440 to store ECC codes, wherein the first ECC array module (or the second additional data array module) 1430 is to store check codes obtained by ECC encoding data stored in the first data array module 1410, and the second ECC array module (or the first additional data array module) 1440 is to store check codes obtained by ECC encoding data stored in the second data array module 1420.
In this case, the storage operation in fig. 14 is similar to that described for fig. 3. The first data array module 1410 and the corresponding first ECC array module (or second additional data array module) 1430 are activated simultaneously, and the second data array module 1420 and the corresponding second ECC array module (or first additional data array module) 1440 are activated simultaneously.
When the first data array module 1410 and the corresponding first ECC array module (or second additional data array module) 1430 are activated at the same time, the first data array module 1410 uses the first column decoding module 1450, and the first ECC array module (or second additional data array module) 1430 uses the second column decoding module 1460.
When the second data array module 1420 and the corresponding second ECC array module (or first additional data array module) 1440 are activated simultaneously, the second data array module 1420 uses the second column decode module 1460 and the second ECC array module (or first additional data array module) 1440 uses the first column decode module 1450.
Thus, the first data array module 1410 and the second ECC array module (or the first additional data array module) 1440 multiplex the first column decode module 1450 when activated at different times, and the second data array module 1420 and the first ECC array module (or the second additional data array module) 1430 multiplex the second column decode module 1460 when activated at different times.
When the first column decode module 1450 is specifically configured for the first data array module 1410 and is capable of meeting the requirements of the second ECC array module (or the first additional data array module) 1440 for the column decode module, the first column decode module 1450 for the first data array module 1410 is used by the second ECC array module (or the first additional data array module) 1440; when the first column decode module 1450 is specifically configured for the second ECC array module (or the first additional data array module) 1440 and is capable of satisfying the requirements of the first data array module 1410 for the column decode module, the first data array module 1410 uses the first column decode module 1450 for the second ECC array module (or the first additional data array module) 1440.
Similarly, when the second column decode module 1460 is specifically configured for the second data array module 1420 and is capable of meeting the requirements of the first ECC array module (or the second additional data array module) 1430 for the column decode module, the second column decode module 1460 for the second data array module 1420 is used by the first ECC array module (or the second additional data array module) 1430; when the second column decode module 1460 is specifically provided for the first ECC array module (or the second additional data array module) 1430 and is capable of meeting the requirements of the second data array module 1420 for the column decode module, the second data array module 1420 is referred to as a second column decode module 1460 for the first ECC array module (or the second additional data array module) 1430.
In addition, it can also be seen that in fig. 14, the memory multiplexes the first column decode module 1450 and the second column decode module 1460, as well as the corresponding sense amplifier and write driver modules.
In the case where the memory in fig. 14 does not support the ECC function, the conversion module 1409 obtains a control instruction indicating that the memory does not support the ECC function, disables the ECC codec module and causes both the first ECC array module (or the second additional data array module) 1430 and the second ECC array module (or the first additional data array module) 1440 to store additional data, wherein the first ECC array module (or the second additional data array module) 1430 is used to store additional data of data stored in the second data array module 1420 or additional data of data stored in the first data array module 1410, and the second ECC array module (or the first additional data array module) 1440 is used to store additional data of data stored in the first data array module 1410 or additional data of data stored in the second data array module 1420.
In the case where the first ECC array module (or the second additional data array module) 1430 is used to store additional data of data stored in the second data array module 1420 and the second ECC array module (or the first additional data array module) 1440 is used to store additional data of data stored in the first data array module 1410, the first data array module 1410 and the second data array module 1420 are activated at different times, the first data array module 1410 and the second ECC array module (or the first additional data array module) 1440 are activated at different times, and the second data array module 1420 and the first ECC array module (or the second additional data array module) 1430 are activated at different times. In this case, the peripheral circuits are not multiplexed.
The first data array module 1410 or the second ECC array module (or the first additional data array module) 1440 is activated using corresponding peripheral circuits, such as the first column decode module 1450 and corresponding sense amplifiers and write drivers.
The second data array module 1420 or the first ECC array module (or the second additional data array module) 1430 is activated using corresponding peripheral circuitry, such as a second column decode module 1460 and corresponding sense amplifier and write driver modules.
In the case where the first ECC array module (or the second additional data array module) 1430 is used to store additional data of data stored in the first data array module 1410 and the second ECC array module (or the first additional data array module) 1440 is used to store additional data of data stored in the second data array module 1420, the first data array module 1410 and the corresponding first ECC array module (or the second additional data array module) 1430 are activated simultaneously, and the second data array module 1420 and the corresponding second ECC array module (or the first additional data array module) 1440 are activated simultaneously.
When the first data array module 1410 and the corresponding first ECC array module (or second additional data array module) 1430 are activated at the same time, the first data array module 1410 uses the first column decoding module 1450, and the first ECC array module (or second additional data array module) 1430 uses the second column decoding module 1460.
When the second data array module 1420 and the corresponding second ECC array module (or first additional data array module) 1440 are activated simultaneously, the second data array module 1420 uses the second column decode module 1460 and the second ECC array module (or first additional data array module) 1440 uses the first column decode module 1450.
Thus, the first data array module 1410 and the second ECC array module (or the first additional data array module) 1440 multiplex the first column decode module 1450 when activated at different times, and the second data array module 1420 and the first ECC array module (or the second additional data array module) 1430 multiplex the second column decode module 1460 when activated at different times.
In addition, it can also be seen that in fig. 14, the memory multiplexes the first column decode module 1450 and the second column decode module 1460, as well as the corresponding sense amplifier and write driver modules.
The conversion module proposed in fig. 14 enables flexible control so that conversion between supporting an ECC function and not supporting an ECC function can be easily performed on the basis of only a few changes.
It can be seen that the memory in fig. 14 is a modification of the memory based on fig. 3. It should be understood that the conversion module of the present invention is also applicable to the memories shown in fig. 4 to 8.
Fig. 15 is a schematic view of one embodiment of an array unit module including a conversion unit according to the present invention.
Fig. 15 illustrates a schematic diagram of an array unit module including a conversion unit. The array unit module in fig. 15 includes: a first data array unit 1510; a second data array unit 1520; a first ECC array unit (or a second additional data array unit) 1530; a second ECC array unit (or first additional data array unit) 1540; the conversion unit 1509 is connected to the first data array unit 1510, the second data array unit 1520, the first ECC array unit (or the second additional data array unit) 1530, and the second ECC array unit (or the first additional data array unit) 1540, respectively. In addition, similar to fig. 9, a first row decoding unit 1550 is disposed between the first data array unit 1510 and the second data array unit 1520, and a second row decoding unit 1560 is disposed between the first ECC array unit (or the second additional data array unit) 1530 and the second ECC array unit (or the first additional data array unit) 1540.
The array cell module shown in fig. 15 includes only two data array cells and two ECC array cells. It should be understood that the array unit module in fig. 15 may also include more than two data array units and more than two ECC array units.
In addition, in fig. 15, the array unit module includes the same number of data array units and ECC array units. However, the array unit module of the present invention may also include a different number of data array units and ECC array units, wherein a plurality of data array units may multiplex one ECC array unit.
In the case where the array unit module in fig. 15 supports the ECC function, the conversion unit 1509 obtains a control instruction indicating that the array unit module supports the ECC function, enables an ECC codec module (not shown) and causes both the first ECC array unit (or the second additional data array unit) 1530 and the second ECC array unit (or the first additional data array unit) 1540 to store ECC codes, wherein the first ECC array unit (or the second additional data array unit) 1530 is used to store check codes obtained by ECC encoding data stored in the first data array unit 1510 and the second ECC array unit (or the first additional data array unit) 1540 is used to store check codes obtained by ECC encoding data stored in the second data array unit 1520.
In this case, the storage operation in fig. 15 is similar to that described for fig. 9. The first data array unit 1510 and the corresponding first ECC array unit (or second additional data array unit) 1530 are activated at the same time. At this time, the first data array unit 1510 uses the first row decoding unit 1550, and the first ECC array unit (or the second additional data array unit) 1530 uses the second row decoding unit 1560. The second data array unit 1520 and the corresponding second ECC array unit (or first additional data array unit) 1540 are activated at the same time. At this time, the second data array unit 1520 uses the second row decoding unit 1560, and the second ECC array unit (or the first additional data array unit) 1540 uses the first row decoding unit 1550. Accordingly, the first data array unit 1510 and the second ECC array unit (or the first additional data array unit) 1540 multiplex the first row decoding unit 1570 when activated at different times, and the second data array unit 1520 and the first ECC array unit (or the second additional data array unit) 1530 multiplex the second row decoding unit 1560 when activated at different times.
When the first row decoding unit 1550 is specially provided for the first data array unit 1510 and is capable of satisfying the requirement of the second ECC array unit (or the first additional data array unit) 1540 for the row decoding unit, what is called a second ECC array unit (or the first additional data array unit) 1540 uses the first row decoding unit 1550 for the first data array unit 1510; when the first row decoding unit 1550 is provided exclusively for the second ECC array unit (or the first additional data array unit) 1540 and is capable of satisfying the demand of the first data array unit 1510 for the row decoding unit, the first data array unit 1510 uses the first row decoding unit 1550 for the second ECC array unit (or the first additional data array unit) 1540.
Similarly, when the second row decoding unit 1560 is specially provided for the second data array unit 1520 and is capable of satisfying the requirement of the first ECC array unit (or the second additional data array unit) 1530 for the row decoding unit, the second row decoding unit 1560 for the second data array unit 1520 is used by the first ECC array unit (or the second additional data array unit) 1530; when the second row decoding unit 1560 is specially provided for the first ECC array unit (or the second additional data array unit) 1530 and is capable of satisfying the requirement of the second data array unit 1520 for the row decoding unit, it is called that the second data array unit 1520 uses the second row decoding unit 1560 for the first ECC array unit (or the second additional data array unit) 1530.
In the case where the array unit module in fig. 15 does not support the ECC function, the conversion unit 1509 obtains a control instruction indicating that the array unit module does not support the ECC function, disables the ECC codec module (not shown) and causes both the first ECC array unit (or the second additional data array unit) 1530 and the second ECC array unit (or the first additional data array unit) 1540 to store additional data, wherein the first ECC array unit (or the second additional data array unit) 1530 is used to store additional data of data stored in the second data array unit 1520 or additional data of data stored in the first data array unit 1510, and the second ECC array unit (or the first additional data array unit) 1540 is used to store additional data of data stored in the first data array unit 1510 or additional data of data stored in the second data array unit 1520.
In the case where the first ECC array unit (or the second additional data array unit) 1530 is used to store additional data of data stored in the second data array unit 1520 and the second ECC array unit (or the first additional data array unit) 1540 is used to store additional data of data stored in the first data array unit 1510, the first data array unit 1510 and the second data array unit 1520 are activated at different times, the first data array unit 1510 and the second ECC array unit (or the first additional data array unit) 1540 are activated at different times, and the second data array unit 1520 and the first ECC array unit (or the second additional data array unit) 1530 are activated at different times. In this case, the row decoding units are not multiplexed.
The first data array unit 1510 or the second ECC array unit (or the first additional data array unit) 1540 is activated using, for example, the first row decoding unit 1550.
The second data array unit 1520 or the first ECC array unit (or the second additional data array unit) 1530 is activated using, for example, the second row decoding unit 1560.
In the case where the first ECC array unit (or the second additional data array unit) 1530 is used to store additional data of data stored in the first data array unit 1510 and the second ECC array unit (or the first additional data array unit) 1540 is used to store additional data of data stored in the second data array unit 1520, the first data array unit 1510 and the corresponding first ECC array unit (or the second additional data array unit) 1530 are simultaneously activated, and the second data array unit 1520 and the corresponding second ECC array unit (or the first additional data array unit) 1540 are simultaneously activated.
When the first data array unit 1510 and the corresponding first ECC array unit (or second additional data array unit) 1530 are activated at the same time, the first data array unit 1510 uses the first row decoding unit 1550, and the first ECC array unit (or second additional data array unit) 1530 uses the second row decoding unit 1560.
When the second data array unit 1520 and the corresponding second ECC array unit (or first additional data array unit) 1540 are simultaneously activated, the second data array unit 1520 uses the second row decoding unit 1560, and the second ECC array unit (or first additional data array unit) 1540 uses the first row decoding unit 1550.
Accordingly, the first data array unit 1510 and the second ECC array unit (or the first additional data array unit) 1540 multiplex the first row decoding unit 1550 when activated at different times, and the second data array unit 1520 and the first ECC array unit (or the second additional data array unit) 1530 multiplex the second row decoding unit 1560 when activated at different times.
The conversion unit proposed in fig. 15 enables flexible control so that conversion between supporting the ECC function and not supporting the ECC function can be easily performed on the basis of only a few changes.
It can be seen that the array unit module in fig. 15 is based on a modification of the array unit module of fig. 9. It should be understood that the conversion unit of the present invention is also applicable to the array unit modules shown in fig. 9 to 13.
FIG. 16 illustrates a flow chart of one embodiment of a storage method for a memory.
The memory referred to in fig. 16 is any one of the memories described above, and includes at least: n data array modules; l error correction code ECC array modules; the conversion module is respectively connected with the data array module and the ECC array module; wherein N is a positive integer greater than or equal to 2, and L is a positive integer less than or equal to N.
The storage method comprises the following steps:
step 1601: and acquiring a control instruction.
Step 1602: according to the control instruction, the kth array module selectively stores an ECC code or additional data, where the ECC code is a check code obtained by performing ECC encoding on data stored in a data array module corresponding to the kth ECC array module, and the additional data is additional data of data stored in a data array module different from the data array module corresponding to the kth ECC array module, where K is a positive integer less than or equal to L.
Figure 17 shows a flow chart of one embodiment of a storage method for an array cell module.
The array unit module referred to in fig. 17 is any one of the array unit modules described above, and includes at least: n data array units; l error correction code ECC array units; the conversion unit is respectively connected with the data array unit and the ECC array unit; wherein N is a positive integer greater than or equal to 2, and L is a positive integer less than or equal to N. The storage method comprises the following steps:
step 1701: and acquiring a control instruction.
Step 1702: according to the control instruction, the kth array unit selectively stores an ECC code or additional data, wherein the ECC code is a check code obtained by performing ECC encoding on data stored in a data array unit corresponding to the kth ECC array unit, and the additional data is additional data of data stored in a data array unit different from the data array unit corresponding to the kth ECC array unit.
In the storage method, the total size of each data array unit and the corresponding ECC array unit is determined according to the ECC algorithm adopted, and the total size is equal to P times of the sum of the data bit length required by the ECC algorithm and the generated check bit length, wherein P is a positive integer greater than or equal to 1.
The memory proposed in the present invention is a memory chip (e.g., ROM, SDRAM, RAM, DRAM, SRAM, FLASH, EPROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage device) for storing data and/or computer code. The memory may be or include non-transitory volatile memory or non-volatile memory, or the like.
It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. It is to be understood that the scope of the invention is defined by the claims.

Claims (81)

1. A memory, the memory comprising at least:
n data array modules;
the data array module comprises L error correction code ECC array modules, wherein a Kth ECC array module is used for storing ECC codes or used for storing additional data, the ECC codes are check codes obtained by ECC encoding data stored in a data array module corresponding to the Kth ECC array module, and the additional data are additional data of data stored in a data array module corresponding to the Kth ECC array module or additional data of data stored in a data array module different from the data array module corresponding to the Kth ECC array module;
The conversion module is respectively connected with the data array module and the ECC array module, and enables the Kth ECC array module to selectively store the ECC codes or the additional data according to a control instruction;
wherein N is a positive integer greater than or equal to 2, L is a positive integer less than or equal to N, and K is a positive integer less than or equal to L.
2. The memory of claim 1, wherein the conversion module causes the kth ECC array module to store the additional data according to a first control instruction.
3. The memory of claim 2, wherein the first control instruction indicates that the memory does not support ECC functionality.
4. The memory of claim 1, wherein the conversion module causes the kth ECC array module to store the ECC code according to a second control instruction.
5. The memory of claim 4, wherein the second control instruction indicates that the memory supports an ECC function.
6. The memory according to claim 1 or 4, wherein,
the M-th data array module and the corresponding ECC array module are activated simultaneously, wherein the corresponding ECC array module is used for storing ECC codes, and the ECC codes are check codes obtained by ECC encoding the data stored in the M-th data array module;
The ECC array module corresponding to the activated Mth data array module uses peripheral circuits for the one or more data array modules that are not activated, or the activated Mth data array module uses peripheral circuits for the one or more ECC array modules that are not activated;
wherein M is a positive integer less than or equal to N.
7. The memory of claim 6, wherein the memory is configured to store, in the memory,
the ECC array module corresponding to the activated Mth data array module and the one or more data array modules which are not activated use the same peripheral circuit when being activated at different times; or alternatively
The activated mth data array module and the inactive one or more ECC array modules use the same peripheral circuitry when activated at different times;
wherein the peripheral circuitry comprises any one or a combination of: the device comprises a row decoding module, a column decoding module, a sense amplifier and a write driving module.
8. The memory of claim 6, wherein the memory is configured to store, in the memory,
each data array module comprises a plurality of data array sub-modules;
the ECC array module corresponding to the plurality of data array sub-modules of one data array module and the plurality of data array sub-modules of another data array module use the same peripheral circuit when activated at different times; or alternatively
The plurality of data array sub-modules of one data array module and one or more ECC array modules corresponding to the plurality of data array sub-modules of another data array module or other data array modules use the same peripheral circuit when activated at different times;
wherein the peripheral circuitry comprises any one or a combination of the following: the device comprises a row decoding module, a column decoding module, a sense amplifier and a write driving module.
9. The memory of claim 1, wherein the memory is configured to store, in the memory,
the N data array modules at least comprise: a first data array module and a second data array module;
the L error correction code ECC array modules at least comprise: a first ECC array module and a second ECC array module; the first ECC array module is used for storing a first ECC code or used for storing first additional data, the first ECC code is a check code obtained by ECC encoding on the data stored in the first data array module, and the first additional data is the additional data of the data stored in the second data array module or the additional data of the data stored in the first data array module; the second ECC array module is configured to store a second ECC code or is configured to store second additional data, where the second ECC code is a check code obtained by performing ECC encoding on data stored in the second data array module, and the second additional data is additional data of data stored in the first data array module or is additional data of data stored in the second data array module;
The conversion module enables the first ECC array module and the second ECC array module to store the first additional data and the second additional data respectively according to a first control instruction, and enables the first ECC array module and the second ECC array module to store the first ECC code and the second ECC code respectively according to a second control instruction.
10. The memory of claim 9, wherein the conversion module causes the first ECC array module and the second ECC array module to store the first ECC code and the second ECC code, respectively, according to a second control instruction;
the first data array module and the second data array module are activated at different times, wherein the first data array module and the corresponding first ECC array module are activated simultaneously, and the second data array module and the corresponding second ECC array module are activated simultaneously;
the ECC array module corresponding to the activated data array module uses the peripheral circuit for the data array module that is not activated, or the activated data array module uses the peripheral circuit for the ECC array module that is not activated;
Wherein the peripheral circuitry comprises any one or a combination of the following: the device comprises a row decoding module, a column decoding module, a sense amplifier and a write driving module.
11. The memory of claim 10, wherein the memory is configured to store, in the memory,
the first data array module and the second ECC array module use a first column decode module, or use a first row decode module, or use both a first column decode module and a first row decode module when activated at different times;
the second data array module and the first ECC array module use a second column decode module, or use a second row decode module, or use both a second column decode module and a second row decode module when activated at different times.
12. The memory of claim 9, wherein the conversion module causes the first ECC array module and the second ECC array module to store the first additional data and the second additional data, respectively, according to a first control sub-instruction, wherein the first additional data is additional data to the data stored in the second data array module and the second additional data is additional data to the data stored in the first data array module;
The first data array module and the second data array module are activated at different times, the first data array module and the second ECC array module are activated at different times, the second data array module and the first ECC array module are activated at different times;
the activated data array module uses peripheral circuitry for the activated data array module and the activated ECC array module uses peripheral circuitry for the activated ECC array module;
wherein the peripheral circuitry comprises any one or a combination of the following: the device comprises a row decoding module, a column decoding module, a sense amplifier and a write driving module.
13. The memory of claim 12, wherein the memory is configured to store, in the memory,
the first data array module or the second ECC array module uses a first column decode module, or uses a first row decode module, or uses both a first column decode module and a first row decode module when activated;
the second data array module or the first ECC array module uses a second column decode module or uses a second row decode module or uses both a second column decode module and a second row decode module when activated.
14. The memory of claim 9, wherein the conversion module causes the first ECC array module and the second ECC array module to store the first additional data and the second additional data, respectively, according to a second control sub-instruction, wherein the first additional data is additional data to the data stored in the first data array module and the second additional data is additional data to the data stored in the second data array module;
the first data array module and the second data array module are activated at different times, wherein the first data array module and the first ECC array module are activated simultaneously, and the second data array module and the second ECC array module are activated simultaneously;
the activated data array module and the activated ECC array module use peripheral circuits for the unactivated data array module or use peripheral circuits for the unactivated ECC array module;
wherein the peripheral circuitry comprises any one or a combination of the following: the device comprises a row decoding module, a column decoding module, a sense amplifier and a write driving module.
15. The memory of claim 14, wherein the memory is configured to store, in the memory,
The first data array module and the second ECC array module use a first column decode module, or use a first row decode module, or use both a first column decode module and a first row decode module when activated at different times;
the second data array module and the first ECC array module use a second column decode module, or use a second row decode module, or use both a second column decode module and a second row decode module when activated at different times.
16. The memory of claim 11, 13 or 15, wherein the first data array module is disposed between the second ECC array module and the first column decode module.
17. The memory of claim 11, 13 or 15, wherein the second data array module is disposed between the first ECC array module and the second column decode module.
18. The memory of claim 11, 13 or 15, wherein the second ECC array module is disposed between the first data array module and the first column decode module.
19. The memory of claim 11, 13 or 15, wherein the first ECC array module is disposed between the second data array module and the second column decode module.
20. The memory according to claim 11, 13 or 15, wherein,
the first data array module, the second data array module, the first ECC array module, and the second ECC array module are disposed between the first row decoding module and the second row decoding module.
21. The memory according to claim 11, 13 or 15, wherein,
the first data array module at least comprises a first data array sub-module and a second data array sub-module, and the second data array module at least comprises a third data array sub-module and a fourth data array sub-module;
the second ECC array module is arranged between the first data array sub-module and the second data array sub-module, and the second data array sub-module is arranged between the second ECC array module and the first column decoding module;
the first ECC array module is arranged between the third data array sub-module and the fourth data array sub-module, and the fourth data array sub-module is arranged between the first ECC array module and the second column decoding module;
the first data array sub-module, the second data array sub-module, the third data array sub-module, the fourth data array sub-module, the first ECC array module, and the second ECC array module are disposed between the first row decoding module and the second row decoding module.
22. An array unit module, characterized in that the array unit module comprises at least:
n data array units;
l Error Correction Code (ECC) array units, wherein a Kth ECC array unit is used for storing ECC codes or is used for storing additional data, the ECC codes are check codes obtained by ECC encoding data stored in a data array unit corresponding to the Kth ECC array unit, and the additional data are additional data of data stored in a data array unit corresponding to the Kth ECC array unit or additional data of data stored in a data array unit different from the data array unit corresponding to the Kth ECC array unit;
the conversion unit is respectively connected with the data array unit and the ECC array unit, and enables the Kth ECC array unit to selectively store the ECC code or the additional data according to a control instruction;
the total size of each data array unit and the corresponding ECC array unit is determined according to the ECC algorithm adopted, and the total size is equal to P times of the sum of the data bit length required by the ECC algorithm and the generated check bit length;
Wherein N is a positive integer greater than or equal to 2, L is a positive integer less than or equal to N, and P is a positive integer greater than or equal to 1.
23. The array unit module of claim 22, wherein the conversion unit causes the kth ECC array unit to store the additional data according to a first control instruction.
24. The array cell module of claim 23, wherein the first control instruction instructs the array cell module not to support an ECC function.
25. The array unit module of claim 22, wherein the conversion unit causes the kth ECC array unit to store the ECC code according to a second control instruction.
26. The array cell module of claim 25, wherein the second control instruction instructs the array cell module to support an ECC function.
27. The array element module of claim 22, wherein the array element module comprises a plurality of cells,
the N data array units at least include: a first data array unit and a second data array unit;
the L error correction code ECC array units at least comprise: a first ECC array unit and a second ECC array unit; the first ECC array unit is used for storing a first ECC code or used for storing first additional data, the first ECC code is a check code obtained by ECC encoding on the data stored in the first data array unit, and the first additional data is the additional data of the data stored in the second data array unit or the additional data of the data stored in the first data array unit; the second ECC array unit is configured to store a second ECC code or is configured to store second additional data, where the second ECC code is a check code obtained by performing ECC encoding on data stored in the second data array unit, and the second additional data is additional data of data stored in the first data array unit or is additional data of data stored in the second data array unit;
The conversion unit enables the first ECC array unit and the second ECC array unit to store the first additional data and the second additional data respectively according to a first control instruction, and enables the first ECC array unit and the second ECC array unit to store the first ECC code and the second ECC code respectively according to a second control instruction.
28. The array unit module of claim 27, wherein the conversion unit causes the first ECC array unit and the second ECC array unit to store the first ECC code and the second ECC code, respectively, according to a second control instruction;
the first data array unit and the second data array unit are activated at different times, wherein the first data array unit and the corresponding first ECC array unit are activated simultaneously, and the second data array unit and the corresponding second ECC array unit are activated simultaneously;
the ECC array unit corresponding to the activated data array unit uses the row decoding unit for the unactivated data array unit, or the activated data array unit uses the row decoding unit for the unactivated ECC array unit.
29. The array element module of claim 28, wherein,
the first data array unit and the second ECC array unit use a first row of decoding units when activated at different times;
the second data array unit and the first ECC array unit use a second row decoding unit when activated at different times.
30. The array unit module according to claim 27, wherein the conversion unit causes the first ECC array unit and the second ECC array unit to store the first additional data and the second additional data, respectively, according to a first control sub-instruction, wherein the first additional data is additional data of data stored in the second data array unit, and the second additional data is additional data of data stored in the first data array unit;
the first data array unit and the second data array unit are activated at different times, the first data array unit and the second ECC array unit are activated at different times, and the second data array unit and the first ECC array unit are activated at different times;
the activated data array unit uses row decoding units for the activated data array module, and the activated ECC array unit uses row decoding units for the activated ECC array unit.
31. The array element module of claim 30, wherein,
a first row decoding unit is used when the first data array unit or the second ECC array unit is activated;
the second data array unit or the first ECC array unit is activated using a second row decoding unit.
32. The array unit module according to claim 27, wherein the conversion unit causes the first ECC array unit and the second ECC array unit to store the first additional data and the second additional data, respectively, according to a second control sub-instruction, wherein the first additional data is additional data of data stored in the first data array unit, and the second additional data is additional data of data stored in the second data array unit;
the first data array unit and the second data array unit are activated at different times, wherein the first data array unit and the first ECC array unit are activated simultaneously, and the second data array unit and the second ECC array unit are activated simultaneously;
the activated data array unit and the activated ECC array unit use row decoding units for the inactivated data array module or use row decoding units for the inactivated ECC array unit.
33. The array element module of claim 32, wherein,
the first data array unit and the second ECC array unit use a first row of decoding units when activated at different times;
the second data array unit and the first ECC array unit use a second row decoding unit when activated at different times.
34. The array element module of any one of claims 29, 31 and 33,
the first row decoding unit is arranged between the first data array unit and the second data array unit;
the second row of coding units is disposed between the first ECC array unit and the second ECC array unit.
35. The array element module of any one of claims 29, 31 and 33,
the first row of decoding units are arranged between the first data array unit and the first ECC array unit;
the second row decoding unit is disposed between the second data array unit and the second ECC array unit.
36. The array element module of any one of claims 29, 31 and 33,
the first row of decoding units are arranged between the first ECC array units and the second ECC array units;
The second row decoding unit is disposed between the first data array unit and the second data array unit.
37. The array element module of any one of claims 29, 31 and 33,
the first row of decoding units are arranged between the second data array units and the second ECC array units;
the second row decoding unit is disposed between the first data array unit and the first ECC array unit.
38. A memory comprising a plurality of array unit modules according to any one of claims 22 to 37, the plurality of array unit modules being stacked in sequence in a column direction.
39. A storage method for a memory, the memory comprising at least: n data array modules; l error correction code ECC array modules; the conversion module is respectively connected with the data array module and the ECC array module; the storage method comprises the following steps:
acquiring a control instruction;
according to the control instruction, enabling a Kth ECC array module to selectively store ECC codes or additional data, wherein the ECC codes are check codes obtained by ECC encoding data stored in a data array module corresponding to the Kth ECC array module, and the additional data are additional data of data stored in a data array module corresponding to the Kth ECC array module or additional data of data stored in a data array module different from the data array module corresponding to the Kth ECC array module;
Wherein N is a positive integer greater than or equal to 2, L is a positive integer less than or equal to N, and K is a positive integer less than or equal to L.
40. The storage method of claim 39, wherein the storage method further comprises:
and enabling the L error correction code ECC array modules to store the additional data according to a first control instruction.
41. The storage method of claim 40, wherein the storage method further comprises:
the first control instruction indicates that the memory does not support ECC functionality.
42. The storage method of claim 39, wherein the storage method further comprises:
and according to a second control instruction, enabling the L error correction code ECC array modules to store the ECC codes.
43. The storage method of claim 42, wherein the storage method further comprises:
the second control instruction indicates that the memory supports an ECC function.
44. The storage method of claim 39 or 42, wherein the storage method further comprises:
the M-th data array module and the corresponding ECC array module are activated simultaneously, wherein the corresponding ECC array module is used for storing ECC codes, and the ECC codes are check codes obtained by ECC encoding the data stored in the M-th data array module;
The ECC array module corresponding to the activated Mth data array module uses peripheral circuits for the one or more data array modules that are not activated, or the activated Mth data array module uses peripheral circuits for the one or more ECC array modules that are not activated;
wherein M is a positive integer less than or equal to N.
45. The storage method of claim 44, wherein the storage method further comprises:
the ECC array module corresponding to the activated Mth data array module and the one or more data array modules which are not activated use the same peripheral circuit when being activated at different times; or alternatively
The activated mth data array module and the inactive one or more ECC array modules use the same peripheral circuitry when activated at different times;
wherein the peripheral circuitry comprises any one or a combination of: the device comprises a row decoding module, a column decoding module, a sense amplifier and a write driving module.
46. The storage method of claim 44, wherein each data array module comprises a plurality of data array sub-modules; the storage method further comprises the following steps:
The ECC array module corresponding to the plurality of data array sub-modules of one data array module and the plurality of data array sub-modules of another data array module use the same peripheral circuit when activated at different times; or alternatively
The plurality of data array sub-modules of one data array module and one or more ECC array modules corresponding to the plurality of data array sub-modules of another data array module or other data array modules use the same peripheral circuit when activated at different times;
wherein the peripheral circuitry comprises any one or a combination of the following: the device comprises a row decoding module, a column decoding module, a sense amplifier and a write driving module.
47. The storage method of claim 39, wherein said N data array modules comprise at least: a first data array module and a second data array module; the L error correction code ECC array modules at least comprise: a first ECC array module and a second ECC array module; the storage method further comprises the following steps:
the first ECC array module is used for storing a first ECC code or used for storing first additional data, the first ECC code is a check code obtained by ECC encoding the data stored in the first data array module, and the first additional data is the additional data of the data stored in the second data array module or the additional data of the data stored in the first data array module;
The second ECC array module is configured to store a second ECC code or be configured to store second additional data, where the second ECC code is a check code obtained by performing ECC encoding on data stored in the second data array module, and the second additional data is additional data of data stored in the first data array module or additional data of data stored in the second data array module;
the conversion module enables the first ECC array module and the second ECC array module to store the first additional data and the second additional data respectively according to a first control instruction, and enables the first ECC array module and the second ECC array module to store the first ECC code and the second ECC code respectively according to a second control instruction.
48. The storage method of claim 47, further comprising:
the conversion module enables the first ECC array module and the second ECC array module to respectively store the first ECC code and the second ECC code according to a second control instruction;
the first data array module and the second data array module are activated at different times, wherein the first data array module and the corresponding first ECC array module are activated simultaneously, and the second data array module and the corresponding second ECC array module are activated simultaneously;
The ECC array module corresponding to the activated data array module uses the peripheral circuit for the data array module that is not activated, or the activated data array module uses the peripheral circuit for the ECC array module that is not activated;
wherein the peripheral circuitry comprises any one or a combination of the following: the device comprises a row decoding module, a column decoding module, a sense amplifier and a write driving module.
49. The storage method of claim 48, wherein the storage method further comprises:
the first data array module and the second ECC array module use a first column decode module, or use a first row decode module, or use both a first column decode module and a first row decode module when activated at different times;
the second data array module and the first ECC array module use a second column decode module, or use a second row decode module, or use both a second column decode module and a second row decode module when activated at different times.
50. The storage method of claim 47, further comprising:
the conversion module enables the first ECC array module and the second ECC array module to respectively store the first additional data and the second additional data according to a first control sub-instruction, wherein the first additional data is the additional data of the data stored in the second data array module, and the second additional data is the additional data of the data stored in the first data array module;
The first data array module and the second data array module are activated at different times, the first data array module and the second ECC array module are activated at different times, the second data array module and the first ECC array module are activated at different times;
the activated data array module uses peripheral circuitry for the activated data array module and the activated ECC array module uses peripheral circuitry for the activated ECC array module;
wherein the peripheral circuitry comprises any one or a combination of the following: the device comprises a row decoding module, a column decoding module, a sense amplifier and a write driving module.
51. The storage method of claim 50, further comprising:
the first data array module or the second ECC array module uses a first column decode module, or uses a first row decode module, or uses both a first column decode module and a first row decode module when activated;
the second data array module or the first ECC array module uses a second column decode module or uses a second row decode module or uses both a second column decode module and a second row decode module when activated.
52. The storage method of claim 47, further comprising:
the conversion module enables the first ECC array module and the second ECC array module to respectively store the first additional data and the second additional data according to a second control sub-instruction, wherein the first additional data is the additional data of the data stored in the first data array module, and the second additional data is the additional data of the data stored in the second data array module;
the first data array module and the second data array module are activated at different times, wherein the first data array module and the first ECC array module are activated simultaneously, and the second data array module and the second ECC array module are activated simultaneously;
the activated data array module and the activated ECC array module use peripheral circuits for the unactivated data array module or use peripheral circuits for the unactivated ECC array module;
wherein the peripheral circuitry comprises any one or a combination of the following: the device comprises a row decoding module, a column decoding module, a sense amplifier and a write driving module.
53. The storage method of claim 52, wherein the storage method further comprises:
the first data array module and the second ECC array module use a first column decode module, or use a first row decode module, or use both a first column decode module and a first row decode module when activated at different times;
the second data array module and the first ECC array module use a second column decode module, or use a second row decode module, or use both a second column decode module and a second row decode module when activated at different times.
54. The storage method of claim 49, 51 or 53, wherein the storage method further comprises:
the first data array module is disposed between the second ECC array module and the first column decoding module.
55. The storage method of claim 49, 51 or 53, wherein the storage method further comprises:
the second data array module is disposed between the first ECC array module and the second column coding module.
56. The storage method of claim 49, 51 or 53, wherein the storage method further comprises:
The second ECC array module is disposed between the first data array module and the first column decoding module.
57. The storage method of claim 49, 51 or 53, wherein the storage method further comprises:
the first ECC array module is disposed between the second data array module and the second column coding module.
58. The storage method of claim 49, 51 or 53, wherein the storage method further comprises:
the first data array module, the second data array module, the first ECC array module, and the second ECC array module are disposed between the first row decoding module and the second row decoding module.
59. The storage method of claim 49, 51 or 53, wherein the storage method further comprises:
the first data array module at least comprises a first data array sub-module and a second data array sub-module, and the second data array module at least comprises a third data array sub-module and a fourth data array sub-module;
the second ECC array module is arranged between the first data array sub-module and the second data array sub-module, and the second data array sub-module is arranged between the second ECC array module and the first column decoding module;
The first ECC array module is arranged between the third data array sub-module and the fourth data array sub-module, and the fourth data array sub-module is arranged between the first ECC array module and the second column decoding module;
the first data array sub-module, the second data array sub-module, the third data array sub-module, the fourth data array sub-module, the first ECC array module, and the second ECC array module are disposed between the first row decoding module and the second row decoding module.
60. A storage method for an array unit module, wherein the array unit module comprises at least: n data array units; l error correction code ECC array units; the conversion unit is respectively connected with the data array unit and the ECC array unit; the storage method comprises the following steps:
acquiring a control instruction;
according to the control instruction, enabling a Kth ECC array unit to selectively store ECC codes or additional data, wherein the ECC codes are check codes obtained by ECC encoding data stored in a data array unit corresponding to the Kth ECC array unit, and the additional data are additional data of data stored in a data array unit corresponding to the Kth ECC array unit or additional data of data stored in a data array unit different from the data array unit corresponding to the Kth ECC array unit;
The total size of each data array unit and the corresponding ECC array unit is determined according to the ECC algorithm adopted, and the total size is equal to P times of the sum of the data bit length required by the ECC algorithm and the generated check bit length;
wherein N is a positive integer greater than or equal to 2, L is a positive integer less than or equal to N, and P is a positive integer greater than or equal to 1.
61. The storage method of claim 60, further comprising:
and enabling the L error correction code ECC array units to store the additional data according to a first control instruction.
62. The storage method of claim 61, wherein the storage method further comprises:
the first control instruction indicates that the array unit module does not support an ECC function.
63. The storage method of claim 60, further comprising:
and according to a second control instruction, enabling the L error correction code ECC array modules to store the ECC codes.
64. The storage method of claim 63, further comprising:
the second control instruction instructs the array unit module to support an ECC function.
65. The storage method of claim 60, wherein said N data array units comprise at least: a first data array unit and a second data array unit; the L error correction code ECC array units at least comprise: a first ECC array unit and a second ECC array unit; the storage method further comprises the following steps:
the first ECC array unit is used for storing a first ECC code or used for storing first additional data, the first ECC code is a check code obtained by ECC encoding the data stored in the first data array unit, and the first additional data is the additional data of the data stored in the second data array unit or the additional data of the data stored in the first data array unit; the second ECC array unit is configured to store a second ECC code or is configured to store second additional data, where the second ECC code is a check code obtained by performing ECC encoding on data stored in the second data array unit, and the second additional data is additional data of data stored in the first data array unit or is additional data of data stored in the second data array unit;
the conversion unit enables the first ECC array unit and the second ECC array unit to store the first additional data and the second additional data respectively according to a first control instruction, and enables the first ECC array unit and the second ECC array unit to store the first ECC code and the second ECC code respectively according to a second control instruction.
66. The storage method of claim 65, further comprising:
the conversion unit enables the first ECC array unit and the second ECC array unit to respectively store the first ECC code and the second ECC code according to a second control instruction;
the first data array unit and the second data array unit are activated at different times, wherein the first data array unit and the corresponding first ECC array unit are activated simultaneously, and the second data array unit and the corresponding second ECC array unit are activated simultaneously;
the ECC array unit corresponding to the activated data array unit uses the row decoding unit for the unactivated data array unit, or the activated data array unit uses the row decoding unit for the unactivated ECC array unit.
67. The storage method of claim 66, wherein said storage method further comprises:
the first data array unit and the second ECC array unit use a first row of decoding units when activated at different times;
the second data array unit and the first ECC array unit use a second row decoding unit when activated at different times.
68. The storage method of claim 65, further comprising:
the conversion unit enables the first ECC array unit and the second ECC array unit to respectively store the first additional data and the second additional data according to a first control sub-instruction, wherein the first additional data is the additional data of the data stored in the second data array unit, and the second additional data is the additional data of the data stored in the first data array unit;
the first data array unit and the second data array unit are activated at different times, the first data array unit and the second ECC array unit are activated at different times, and the second data array unit and the first ECC array unit are activated at different times;
the activated data array unit uses row decoding units for the activated data array module, and the activated ECC array unit uses row decoding units for the activated ECC array unit.
69. The storage method of claim 68, wherein said storage method further comprises:
a first row decoding unit is used when the first data array unit or the second ECC array unit is activated;
The second data array unit or the first ECC array unit is activated using a second row decoding unit.
70. The storage method of claim 65, further comprising:
the conversion unit enables the first ECC array unit and the second ECC array unit to respectively store the first additional data and the second additional data according to a second control sub-instruction, wherein the first additional data is the additional data of the data stored in the first data array unit, and the second additional data is the additional data of the data stored in the second data array unit;
the first data array unit and the second data array unit are activated at different times, wherein the first data array unit and the first ECC array unit are activated simultaneously, and the second data array unit and the second ECC array unit are activated simultaneously;
the activated data array unit and the activated ECC array unit use row decoding units for the inactivated data array module or use row decoding units for the inactivated ECC array unit.
71. The storage method of claim 70, wherein the storage method further comprises:
The first data array unit and the second ECC array unit use a first row of decoding units when activated at different times;
the second data array unit and the first ECC array unit use a second row decoding unit when activated at different times.
72. The storage method of any one of claims 67, 69, and 71, further comprising:
the first row decoding unit is arranged between the first data array unit and the second data array unit;
the second row of coding units is disposed between the first ECC array unit and the second ECC array unit.
73. The storage method of any one of claims 67, 69, and 71, further comprising:
the first row of decoding units are arranged between the first data array unit and the first ECC array unit;
the second row decoding unit is disposed between the second data array unit and the second ECC array unit.
74. The storage method of any one of claims 67, 69, and 71, further comprising:
the first row of decoding units are arranged between the first ECC array units and the second ECC array units;
The second row decoding unit is disposed between the first data array unit and the second data array unit.
75. The storage method of any one of claims 67, 69, and 71, further comprising:
the first row of decoding units are arranged between the second data array units and the second ECC array units;
the second row decoding unit is disposed between the first data array unit and the first ECC array unit.
76. A method of constructing a memory, characterized in that the method comprises stacking a plurality of array unit modules, which are the array unit modules as claimed in any one of claims 22 to 37, in sequence in a column direction.
77. An electronic device, the electronic device comprising:
at least one memory as claimed in any one of claims 1 to 21; and
and the processor is connected with the memory, and is communicated with the memory through a bus, and processes data in the memory.
78. An electronic device, the electronic device comprising:
At least one memory according to claim 38; and
and the processor is connected with the memory, and is communicated with the memory through a bus, and processes data in the memory.
79. An electronic device, the electronic device comprising:
at least one memory having stored thereon computer-executable instructions; and
at least one processor connected to the memory and in communication with the memory via a bus, which when executed by the processor causes the processor to perform the storage method according to any one of claims 39 to 59.
80. An electronic device, the electronic device comprising:
at least one memory having stored thereon computer-executable instructions; and
at least one processor connected to the memory and in communication with the memory via a bus, which when executed by the processor causes the processor to perform the storage method according to any one of claims 60 to 75.
81. An electronic device, the electronic device comprising:
at least one memory having stored thereon computer-executable instructions; and
at least one processor connected to the memory and in communication with the memory over a bus, which when executed by the processor causes the processor to perform the method of constructing a memory according to claim 76.
CN202011449079.8A 2020-12-11 2020-12-11 Memory comprising conversion module and array unit module Active CN112420119B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011449079.8A CN112420119B (en) 2020-12-11 2020-12-11 Memory comprising conversion module and array unit module

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011449079.8A CN112420119B (en) 2020-12-11 2020-12-11 Memory comprising conversion module and array unit module

Publications (2)

Publication Number Publication Date
CN112420119A CN112420119A (en) 2021-02-26
CN112420119B true CN112420119B (en) 2023-05-30

Family

ID=74776442

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011449079.8A Active CN112420119B (en) 2020-12-11 2020-12-11 Memory comprising conversion module and array unit module

Country Status (1)

Country Link
CN (1) CN112420119B (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6662333B1 (en) * 2000-02-04 2003-12-09 Hewlett-Packard Development Company, L.P. Shared error correction for memory design
CN1728277A (en) * 2004-06-18 2006-02-01 尔必达存储器株式会社 Semiconductor memory device and refresh period controlling method
TW200721177A (en) * 2005-07-25 2007-06-01 Toshiba Kk Semiconductor memory device
CN109767806A (en) * 2017-11-09 2019-05-17 三星电子株式会社 The semiconductor memory system and storage system of adaptive error checking and correction
CN110389851A (en) * 2018-04-20 2019-10-29 三星电子株式会社 Memory devices and its operating method with error correction feature
CN110942798A (en) * 2018-09-25 2020-03-31 三星电子株式会社 Semiconductor memory device, memory system and method of operating semiconductor memory device
CN111489783A (en) * 2019-01-28 2020-08-04 华邦电子股份有限公司 Memory device with hierarchical error correction code layer

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7779334B2 (en) * 2006-06-26 2010-08-17 Taiwan Semiconductor Manufacturing Company, Ltd. Memory having an ECC system
KR101862379B1 (en) * 2013-04-19 2018-07-05 삼성전자주식회사 Memory device with error correction code and redundancy repair operations
KR102193682B1 (en) * 2014-08-01 2020-12-21 삼성전자주식회사 Semiconductor memory device having selective ECC function
KR102204390B1 (en) * 2014-09-12 2021-01-18 삼성전자주식회사 Memory device with fast fail cell repair

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6662333B1 (en) * 2000-02-04 2003-12-09 Hewlett-Packard Development Company, L.P. Shared error correction for memory design
CN1728277A (en) * 2004-06-18 2006-02-01 尔必达存储器株式会社 Semiconductor memory device and refresh period controlling method
TW200721177A (en) * 2005-07-25 2007-06-01 Toshiba Kk Semiconductor memory device
CN109767806A (en) * 2017-11-09 2019-05-17 三星电子株式会社 The semiconductor memory system and storage system of adaptive error checking and correction
CN110389851A (en) * 2018-04-20 2019-10-29 三星电子株式会社 Memory devices and its operating method with error correction feature
CN110942798A (en) * 2018-09-25 2020-03-31 三星电子株式会社 Semiconductor memory device, memory system and method of operating semiconductor memory device
CN111489783A (en) * 2019-01-28 2020-08-04 华邦电子股份有限公司 Memory device with hierarchical error correction code layer

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种支持不同长度数据的ECC存储方法;付妮;《 信息与电脑(理论版) 》;20170223;全文 *

Also Published As

Publication number Publication date
CN112420119A (en) 2021-02-26

Similar Documents

Publication Publication Date Title
JP6181257B2 (en) Apparatus and method including organization of error correction codes
CN107408069B (en) Apparatus and method for detecting and relieving bit line open in flash memory
US8626988B2 (en) System and method for uncoded bit error rate equalization via interleaving
US9886340B2 (en) Memory system and method for error correction of memory
US8266495B2 (en) Systems and methods for performing concatenated error correction
US20200192754A1 (en) Error correction code circuits, semiconductor memory devices and memory systems
US20080235557A1 (en) Semiconductor memory device
US20130294158A1 (en) Multi-level cell memory devices and methods of storing data in and reading data from the memory devices
US8572457B2 (en) Outer code protection for solid state memory devices
US9230684B2 (en) Memory controller, storage device, and memory control method
WO2019136976A1 (en) Method for using various error correction code combinations in encoding and decoding system
US11086718B2 (en) Memory system
US11726670B2 (en) Methods of operating memory controllers, memory controllers performing the methods and memory systems including the memory controllers
CN115994049A (en) Semiconductor memory device and memory system
CN112420119B (en) Memory comprising conversion module and array unit module
US10846168B1 (en) Memory with error correction circuit
CN112397133B (en) Memory, array unit module, storage method and construction method of array unit module
US9654146B2 (en) Bi-directional parity bit generator circuit
KR102194914B1 (en) Memory with error correction circuit
US20170170848A1 (en) Video server device and writing/reading data method
US6958949B2 (en) Decoding structure for a memory device with a control code
US20170075758A1 (en) Memory system and method of controlling nonvolatile memory
JP6862487B2 (en) Memory with error correction circuit
US9715908B2 (en) Controller for a solid-state drive, and related solid-state drive
JP2014134843A (en) Memory system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant