MLchartDataset catalogue

Patent · US6058047A · A · US

Semiconductor memory device having error detection and correction

(11) Publication number
US6058047A
(21) Application number
09/051,094
(22) Filing date
1997-08-08
(30) Priority date
1996-08-16
(43) Publication date
2000-05-02
(45) Date of grant
2000-05-02
(51) IPC
G06F 11/10; G06F 11/16; G06F 12/16; G11C 29/00
(52) CPC
  • G11C Static stores: 29/765
  • G06F Electric digital data processing: 11/1068, 11/20, 2201/88
(73) Assignee
Tokyo Electron Ltd
(72) Inventors
Shuichi Kikuchi
(54) Title
Semiconductor memory device having error detection and correction
(57) Abstract

A semiconductor memory device including a semiconductor memory having a memory region divided into a plurality of blocks including backup blocks, the number of writes to each block being limited, and a memory controller for reading data from the semiconductor memory so as to check an error in the data read from each block, and correcting the error if it is correctable. The memory controller includes a counter for counting the number of correctable errors detected for each block, transferring the data of the corresponding block to the backup block when the number of errors detected reaches a preset value, and inhibiting re-use of the block regarding it as that the life time of the block is almost over.

Full text
View on Google Patents

Claims (20)

  1. A semiconductor memory device comprising: a semiconductor memory having a memory region divided into a plurality of blocks including backup blocks, the number of times data is written to each block being limited; and a memory controller for reading data from the semiconductor memory, performing an error check of the read data for each block, and correcting only the error detected by the error check of the read data if it is correctable, said memory controller including means for counting the number of correctable errors detected for each block, transferring the data of the corresponding block to the backup blocks when the number of errors detected reaches a preset value, and inhibiting re-use of the block regarding it as a defective block.
  2. The semiconductor memory device according to claim 1, wherein said semiconductor memory includes a plurality of flash memories having a plurality of main blocks each storing data to be error-checked by said memory controller, and said backup blocks.
  3. The semiconductor memory device according to claim 2, wherein each of said plurality of blocks includes a data region in which data is written, and a redundant region in which management information is written, said redundant region having a first region in which an ECC corresponding to the data written in said data region, is written, a second region for storing a count corresponding to the number of 1-bit errors detected when reading the data written in said block, and a third region for storing identification information for identifying if said block is good.
  4. The semiconductor memory device according to claim 3, wherein said memory controller checks if an error is contained in the data on the basis of the ECC stored in said first region, and updates the count of said second region for each time a 1-bit error is detected.
  5. The semiconductor memory device according to claim 4, wherein said memory controller sets an initial value which corresponds to a life time, in said second region, and updates the count by counting it clown.
  6. The semiconductor memory device according to claim 3, wherein said controller, when the count is updated and it reaches the preset value, transfers the data in said block to the data region of at least one of the backup blocks, and erases the identification information of said third region of said block in order to inhibit further use of said block.
  7. The semiconductor memory device according to claim 6, wherein said memory controller sets the count of said second region of the at least one of said backup blocks used for the transfer of the data, to an initial value.
  8. The semiconductor memory device according to claim 1, wherein said memory controller carries out an error check immediately after writing data in said semiconductor memory, and updates the number of errors detected in response to detection of an error.
  9. The semiconductor memory device according to claim 1, wherein said semiconductor memory includes a flash memory used exclusively for the main block and a flash memory used exclusively for said backup blocks.
  10. The semiconductor memory device according to claim 1, wherein said semiconductor memory and said memory controller each have at least one flash memory built in an electronic camera, and a memory device storing a program used for controlling the flash memory.
  11. A semiconductor memory device comprising: a semiconductor memory having a memory region divided into a plurality of blocks, the number of times data is written to each block being limited; and a memory controller for reading data from said blocks, error-checking the data read from each block, and correcting only the error detected by the error check of the read data if it is correctable, said each block including account storage region for storing a count corresponding to the number of correctable errors detected regarding the data written in said block, and said memory controller including means for updating the count when a correctable error is detected regarding the data written in a block, and means for monitoring as to whether the count reached a preset value, and when the count reached the preset value, transferring the data to the backup block, and inhibiting re-use of the block regarding it as a defective block.
  12. A method of writing/reading data with regard to a semiconductor memory having a memory region divided into a plurality of blocks including backup blocks, the number of times data is written to each block being limited, said method comprising the steps of: reading data from said semiconductor memory; performing an error-check on the read data for each block; counting only the number of correctable errors detected by the error check of the read data, for each block and rewriting the data of a corresponding block to at least one of said backup blocks when the number of errors detected reached a preset value; and inhibiting reuse of said block as a defective block.
  13. The method according to claim 12, wherein a plurality of main blocks each having data to be subjected to an error-check, and a plurality of flash memories are used as said semiconductor memory.
  14. The method according to claim 13, wherein each of said plurality of blocks is assigned as a date region in which data is written, or a redundant region in which management information is written, and said redundant region is divided into a first region in which an ECC corresponding to the data written in said data region, is written; a second region for storing a count corresponding to the number of 1-bit errors detected when reading the data written in said block; and a third region for storing identification information for identifying if said block is good.
  15. The method according to claim 14, wherein said error-check step checks if an error is contained in the data on the basis of the ECC stored in said first region, and updates the count of said second region each time a 1-bit error is detected.
  16. The method according to claim 15, wherein said updating step sets an initial value which corresponds to a life time, in said second region, and updates the count by counting it down.
  17. The method according to claim 14, wherein said rewriting step rewrites, when the count is updated and it reaches the preset value, the data in said block, to the data region of at least one of the backup blocks, and said erasing step erases the identification information of said third region of said block in order to inhibit further use of said block.
  18. The method to claim 17, wherein the count of said second region of the at least one of said backup blocks used for the transfer of the data, is set to an initial value.
  19. The method according to claim 12, wherein said error-check step carries out an error check immediately after writing data in said semiconductor memory, and updates the number of errors detected in response to detection of an error.
  20. The method according to claim 12, wherein a flash memory used exclusively for the main block and a flash memory used exclusively for said backup block are used as said semiconductor memory.

Description

The present invention relates to a semiconductor memory device including a semiconductor memory in which a memory area thereof is divided into a plurality of blocks, the number of times data can be written to each block being limited, and a memory controller for detecting an error in data read out from each block, and correcting the data in the case where correctable error is detected and a method for reading data from and writing data in the semiconductor memory device.

There has been a trial in which a semiconductor hard disk is used in place of a mechanical hard disk. The mechanical hard disk is advantageous in terms of cost and capacity, whereas the semiconductor hard disk is superior in terms of speed, power consumption, impact resistance, resistance to vibration, weight, size and noise. There have been studies of using a DRAM or SRAM as a semiconductor hard disk; however, more recently, the flash memory (EEPROM: Electrically Erasable Programmable ROM) is becoming more popular. This is because the flash memory entails some advantages, namely, it does not require a battery backup, the element structure thereof is simple, thus making it possible to increase the degree of integration, and the flash memory can be mass-produced at low cost.

The flash memory is a batch erasable and electrically rewritable element; therefore data cannot be over-written thereon, and data cannot be written in a block unless previously-written data are erased therefrom. For example, the writing is performed by 264 to 528 bytes per unit, whereas the erasing is performed by 528 bytes to 64 k bytes per unit.

Citations (5)

  • US4959774A
  • US5524230A
  • US5644539A
  • US5802551A
  • US5724285A
Record as JSON
{
  "publication_number": "US6058047A",
  "country": "US",
  "kind": "A",
  "title": "Semiconductor memory device having error detection and correction",
  "abstract": "A semiconductor memory device including a semiconductor memory having a memory region divided into a plurality of blocks including backup blocks, the number of writes to each block being limited, and a memory controller for reading data from the semiconductor memory so as to check an error in the data read from each block, and correcting the error if it is correctable. The memory controller includes a counter for counting the number of correctable errors detected for each block, transferring the data of the corresponding block to the backup block when the number of errors detected reaches a preset value, and inhibiting re-use of the block regarding it as that the life time of the block is almost over.",
  "claims": [
    "1. A semiconductor memory device comprising: a semiconductor memory having a memory region divided into a plurality of blocks including backup blocks, the number of times data is written to each block being limited; and a memory controller for reading data from the semiconductor memory, performing an error check of the read data for each block, and correcting only the error detected by the error check of the read data if it is correctable, said memory controller including means for counting the number of correctable errors detected for each block, transferring the data of the corresponding block to the backup blocks when the number of errors detected reaches a preset value, and inhibiting re-use of the block regarding it as a defective block.",
    "2. The semiconductor memory device according to claim 1, wherein said semiconductor memory includes a plurality of flash memories having a plurality of main blocks each storing data to be error-checked by said memory controller, and said backup blocks.",
    "3. The semiconductor memory device according to claim 2, wherein each of said plurality of blocks includes a data region in which data is written, and a redundant region in which management information is written, said redundant region having a first region in which an ECC corresponding to the data written in said data region, is written, a second region for storing a count corresponding to the number of 1-bit errors detected when reading the data written in said block, and a third region for storing identification information for identifying if said block is good.",
    "4. The semiconductor memory device according to claim 3, wherein said memory controller checks if an error is contained in the data on the basis of the ECC stored in said first region, and updates the count of said second region for each time a 1-bit error is detected.",
    "5. The semiconductor memory device according to claim 4, wherein said memory controller sets an initial value which corresponds to a life time, in said second region, and updates the count by counting it clown.",
    "6. The semiconductor memory device according to claim 3, wherein said controller, when the count is updated and it reaches the preset value, transfers the data in said block to the data region of at least one of the backup blocks, and erases the identification information of said third region of said block in order to inhibit further use of said block.",
    "7. The semiconductor memory device according to claim 6, wherein said memory controller sets the count of said second region of the at least one of said backup blocks used for the transfer of the data, to an initial value.",
    "8. The semiconductor memory device according to claim 1, wherein said memory controller carries out an error check immediately after writing data in said semiconductor memory, and updates the number of errors detected in response to detection of an error.",
    "9. The semiconductor memory device according to claim 1, wherein said semiconductor memory includes a flash memory used exclusively for the main block and a flash memory used exclusively for said backup blocks.",
    "10. The semiconductor memory device according to claim 1, wherein said semiconductor memory and said memory controller each have at least one flash memory built in an electronic camera, and a memory device storing a program used for controlling the flash memory.",
    "11. A semiconductor memory device comprising: a semiconductor memory having a memory region divided into a plurality of blocks, the number of times data is written to each block being limited; and a memory controller for reading data from said blocks, error-checking the data read from each block, and correcting only the error detected by the error check of the read data if it is correctable, said each block including account storage region for storing a count corresponding to the number of correctable errors detected regarding the data written in said block, and said memory controller including means for updating the count when a correctable error is detected regarding the data written in a block, and means for monitoring as to whether the count reached a preset value, and when the count reached the preset value, transferring the data to the backup block, and inhibiting re-use of the block regarding it as a defective block.",
    "12. A method of writing/reading data with regard to a semiconductor memory having a memory region divided into a plurality of blocks including backup blocks, the number of times data is written to each block being limited, said method comprising the steps of: reading data from said semiconductor memory; performing an error-check on the read data for each block; counting only the number of correctable errors detected by the error check of the read data, for each block and rewriting the data of a corresponding block to at least one of said backup blocks when the number of errors detected reached a preset value; and inhibiting reuse of said block as a defective block.",
    "13. The method according to claim 12, wherein a plurality of main blocks each having data to be subjected to an error-check, and a plurality of flash memories are used as said semiconductor memory.",
    "14. The method according to claim 13, wherein each of said plurality of blocks is assigned as a date region in which data is written, or a redundant region in which management information is written, and said redundant region is divided into a first region in which an ECC corresponding to the data written in said data region, is written; a second region for storing a count corresponding to the number of 1-bit errors detected when reading the data written in said block; and a third region for storing identification information for identifying if said block is good.",
    "15. The method according to claim 14, wherein said error-check step checks if an error is contained in the data on the basis of the ECC stored in said first region, and updates the count of said second region each time a 1-bit error is detected.",
    "16. The method according to claim 15, wherein said updating step sets an initial value which corresponds to a life time, in said second region, and updates the count by counting it down.",
    "17. The method according to claim 14, wherein said rewriting step rewrites, when the count is updated and it reaches the preset value, the data in said block, to the data region of at least one of the backup blocks, and said erasing step erases the identification information of said third region of said block in order to inhibit further use of said block.",
    "18. The method to claim 17, wherein the count of said second region of the at least one of said backup blocks used for the transfer of the data, is set to an initial value.",
    "19. The method according to claim 12, wherein said error-check step carries out an error check immediately after writing data in said semiconductor memory, and updates the number of errors detected in response to detection of an error.",
    "20. The method according to claim 12, wherein a flash memory used exclusively for the main block and a flash memory used exclusively for said backup block are used as said semiconductor memory."
  ],
  "description_excerpt": "The present invention relates to a semiconductor memory device including a semiconductor memory in which a memory area thereof is divided into a plurality of blocks, the number of times data can be written to each block being limited, and a memory controller for detecting an error in data read out from each block, and correcting the data in the case where correctable error is detected and a method for reading data from and writing data in the semiconductor memory device.\n\nThere has been a trial in which a semiconductor hard disk is used in place of a mechanical hard disk. The mechanical hard disk is advantageous in terms of cost and capacity, whereas the semiconductor hard disk is superior in terms of speed, power consumption, impact resistance, resistance to vibration, weight, size and noise. There have been studies of using a DRAM or SRAM as a semiconductor hard disk; however, more recently, the flash memory (EEPROM: Electrically Erasable Programmable ROM) is becoming more popular. This is because the flash memory entails some advantages, namely, it does not require a battery backup, the element structure thereof is simple, thus making it possible to increase the degree of integration, and the flash memory can be mass-produced at low cost.\n\nThe flash memory is a batch erasable and electrically rewritable element; therefore data cannot be over-written thereon, and data cannot be written in a block unless previously-written data are erased therefrom. For example, the writing is performed by 264 to 528 bytes per unit, whereas the erasing is performed by 528 bytes to 64 k bytes per unit.",
  "cpc": [
    "G11C 29/765",
    "G06F 11/1068",
    "G06F 11/20",
    "G06F 2201/88"
  ],
  "ipc": [
    "G06F 11/10",
    "G06F 11/16",
    "G06F 12/16",
    "G11C 29/00"
  ],
  "assignees": [
    "Tokyo Electron Ltd"
  ],
  "inventors": [
    "Shuichi Kikuchi"
  ],
  "filing_date": "1997-08-08",
  "publication_date": "2000-05-02",
  "grant_date": "2000-05-02",
  "priority_date": "1996-08-16",
  "application_number": "US-5109498-A",
  "family_id": "16974802",
  "cited_by_count": 130,
  "citations": [
    "US4959774A",
    "US5524230A",
    "US5644539A",
    "US5802551A",
    "US5724285A"
  ]
}

Record 6,589 of 8,000 in Patents full text (MLC-0201). Request the full dataset.